drm: Branch 'master' - 7 commits
[email protected] (GitLab Mirror) Thu, 16 May 2019 10:08:04 +0000 (UTC)
| Newsgroups | gmane.comp.video.dri.patches |
|---|---|
| Message-ID | <[email protected]> |
IGFtZGdwdS9hbWRncHUtc3ltYm9sLWNoZWNrICAgfCAgICA1IAogYW1kZ3B1L2FtZGdwdS5oICAg ICAgICAgICAgICB8ICAxMTIgKysrKysrKysrKysrKysrKwogYW1kZ3B1L2FtZGdwdV9jcy5jICAg ICAgICAgICB8ICAxMDcgKysrKysrKysrKysrKysrCiBpbmNsdWRlL2RybS9hbWRncHVfZHJtLmgg ICAgIHwgICAgOSArCiB0ZXN0cy9hbWRncHUvTWFrZWZpbGUuYW0gICAgIHwgICAgMyAKIHRlc3Rz L2FtZGdwdS9hbWRncHVfdGVzdC5jICAgfCAgIDExICsKIHRlc3RzL2FtZGdwdS9hbWRncHVfdGVz dC5oICAgfCAgIDIxICsrKwogdGVzdHMvYW1kZ3B1L21lc29uLmJ1aWxkICAgICB8ICAgIDIgCiB0 ZXN0cy9hbWRncHUvc3luY29ial90ZXN0cy5jIHwgIDI5MCArKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrCiB4Zjg2ZHJtLmMgICAgICAgICAgICAgICAgICAgIHwgICA3 NyArKysrKysrKysrKwogeGY4NmRybS5oICAgICAgICAgICAgICAgICAgICB8ICAgMTIgKwogMTEg ZmlsZXMgY2hhbmdlZCwgNjQ3IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpOZXcgY29t bWl0czoKY29tbWl0IDdhYjQ3MWVkODUxNjkyN2ZiNmI5OGQ2OGYyZjE4ZjBkZDEzY2U3MTkKQXV0 aG9yOiBDaHVubWluZyBaaG91IDxkYXZpZDEuemhvdUBhbWQuY29tPgpEYXRlOiAgIFRodSBNYXkg MTYgMTY6MDc6MTQgMjAxOSArMDgwMAoKICAgIGFkZCBzeW5jb2JqIHRpbWVsaW5lIHRlc3RzIHYz CiAgICAKICAgIHYyOiBkcm9wIERSTV9TWU5DT0JKX0NSRUFURV9UWVBFX1RJTUVMSU5FLCBmaXgg dGltZW91dCBjYWxjdWxhdGlvbiwKICAgICAgICBmaXggc29tZSB3YXJuaW5ncwogICAgdjM6IGFk ZCBleHBvcnQvaW1wb3J0IGFuZCBjcHUgc2lnbmFsIHRlc3RpbmcgY2FzZXMKICAgIAogICAgU2ln bmVkLW9mZi1ieTogQ2h1bm1pbmcgWmhvdSA8ZGF2aWQxLnpob3VAYW1kLmNvbT4KICAgIEFja2Vk LWJ5OiBDaHJpc3RpYW4gS8O2bmlnIDxjaHJpc3RpYW4ua29lbmlnQGFtZC5jb20+CiAgICBBY2tl ZC1ieTogTGlvbmVsIExhbmR3ZXJsaW4gPGxpb25lbC5nLmxhbmR3ZXJsaW5AaW50ZWwuY29tPgoK ZGlmZiAtLWdpdCBhL3Rlc3RzL2FtZGdwdS9NYWtlZmlsZS5hbSBiL3Rlc3RzL2FtZGdwdS9NYWtl ZmlsZS5hbQppbmRleCA0ODI3ODg0OC4uOTIwODgyZDAgMTAwNjQ0Ci0tLSBhL3Rlc3RzL2FtZGdw dS9NYWtlZmlsZS5hbQorKysgYi90ZXN0cy9hbWRncHUvTWFrZWZpbGUuYW0KQEAgLTM0LDQgKzM0 LDUgQEAgYW1kZ3B1X3Rlc3RfU09VUkNFUyA9IFwKIAl1dmVfaWIuaCBcCiAJZGVhZGxvY2tfdGVz dHMuYyBcCiAJdm1fdGVzdHMuYwlcCi0JcmFzX3Rlc3RzLmMKKwlyYXNfdGVzdHMuYyBcCisJc3lu Y29ial90ZXN0cy5jCmRpZmYgLS1naXQgYS90ZXN0cy9hbWRncHUvYW1kZ3B1X3Rlc3QuYyBiL3Rl c3RzL2FtZGdwdS9hbWRncHVfdGVzdC5jCmluZGV4IDM1YzhiZjZjLi43MzQwM2ZiNCAxMDA2NDQK LS0tIGEvdGVzdHMvYW1kZ3B1L2FtZGdwdV90ZXN0LmMKKysrIGIvdGVzdHMvYW1kZ3B1L2FtZGdw dV90ZXN0LmMKQEAgLTU3LDYgKzU3LDcgQEAKICNkZWZpbmUgREVBRExPQ0tfVEVTVFNfU1RSICJE ZWFkbG9jayBUZXN0cyIKICNkZWZpbmUgVk1fVEVTVFNfU1RSICJWTSBUZXN0cyIKICNkZWZpbmUg UkFTX1RFU1RTX1NUUiAiUkFTIFRlc3RzIgorI2RlZmluZSBTWU5DT0JKX1RJTUVMSU5FX1RFU1RT X1NUUiAiU1lOQ09CSiBUSU1FTElORSBUZXN0cyIKIAogLyoqCiAgKiAgT3BlbiBoYW5kbGVzIGZv ciBhbWRncHUgZGV2aWNlcwpAQCAtMTIzLDYgKzEyNCwxMiBAQCBzdGF0aWMgQ1VfU3VpdGVJbmZv IHN1aXRlc1tdID0gewogCQkucENsZWFudXBGdW5jID0gc3VpdGVfcmFzX3Rlc3RzX2NsZWFuLAog CQkucFRlc3RzID0gcmFzX3Rlc3RzLAogCX0sCisJeworCQkucE5hbWUgPSBTWU5DT0JKX1RJTUVM SU5FX1RFU1RTX1NUUiwKKwkJLnBJbml0RnVuYyA9IHN1aXRlX3N5bmNvYmpfdGltZWxpbmVfdGVz dHNfaW5pdCwKKwkJLnBDbGVhbnVwRnVuYyA9IHN1aXRlX3N5bmNvYmpfdGltZWxpbmVfdGVzdHNf Y2xlYW4sCisJCS5wVGVzdHMgPSBzeW5jb2JqX3RpbWVsaW5lX3Rlc3RzLAorCX0sCiAKIAlDVV9T VUlURV9JTkZPX05VTEwsCiB9OwpAQCAtMTc2LDYgKzE4MywxMCBAQCBzdGF0aWMgU3VpdGVzX0Fj dGl2ZV9TdGF0dXMgc3VpdGVzX2FjdGl2ZV9zdGF0W10gPSB7CiAJCQkucE5hbWUgPSBSQVNfVEVT VFNfU1RSLAogCQkJLnBBY3RpdmUgPSBzdWl0ZV9yYXNfdGVzdHNfZW5hYmxlLAogCQl9LAorCQl7 CisJCQkucE5hbWUgPSBTWU5DT0JKX1RJTUVMSU5FX1RFU1RTX1NUUiwKKwkJCS5wQWN0aXZlID0g c3VpdGVfc3luY29ial90aW1lbGluZV90ZXN0c19lbmFibGUsCisJCX0sCiB9OwogCiAKZGlmZiAt LWdpdCBhL3Rlc3RzL2FtZGdwdS9hbWRncHVfdGVzdC5oIGIvdGVzdHMvYW1kZ3B1L2FtZGdwdV90 ZXN0LmgKaW5kZXggYmNkMGJjN2UuLjM2Njc1ZWEzIDEwMDY0NAotLS0gYS90ZXN0cy9hbWRncHUv YW1kZ3B1X3Rlc3QuaAorKysgYi90ZXN0cy9hbWRncHUvYW1kZ3B1X3Rlc3QuaApAQCAtMjE3LDYg KzIxNywyNyBAQCBleHRlcm4gQ1VfVGVzdEluZm8gcmFzX3Rlc3RzW107CiAKIAogLyoqCisgKiBJ bml0aWFsaXplIHN5bmNvYmogdGltZWxpbmUgdGVzdCBzdWl0ZQorICovCitpbnQgc3VpdGVfc3lu Y29ial90aW1lbGluZV90ZXN0c19pbml0KCk7CisKKy8qKgorICogRGVpbml0aWFsaXplIHN5bmNv YmogdGltZWxpbmUgdGVzdCBzdWl0ZQorICovCitpbnQgc3VpdGVfc3luY29ial90aW1lbGluZV90 ZXN0c19jbGVhbigpOworCisvKioKKyAqIERlY2lkZSBpZiB0aGUgc3VpdGUgaXMgZW5hYmxlZCBi eSBkZWZhdWx0IG9yIG5vdC4KKyAqLworQ1VfQk9PTCBzdWl0ZV9zeW5jb2JqX3RpbWVsaW5lX3Rl c3RzX2VuYWJsZSh2b2lkKTsKKworLyoqCisgKiBUZXN0cyBpbiBzeW5jb2JqIHRpbWVsaW5lIHRl c3Qgc3VpdGUKKyAqLworZXh0ZXJuIENVX1Rlc3RJbmZvIHN5bmNvYmpfdGltZWxpbmVfdGVzdHNb XTsKKworCisvKioKICAqIEhlbHBlciBmdW5jdGlvbnMKICAqLwogc3RhdGljIGlubGluZSBhbWRn cHVfYm9faGFuZGxlIGdwdV9tZW1fYWxsb2MoCmRpZmYgLS1naXQgYS90ZXN0cy9hbWRncHUvbWVz b24uYnVpbGQgYi90ZXN0cy9hbWRncHUvbWVzb24uYnVpbGQKaW5kZXggOTVlZDkzMDUuLjE3MjZj YjQzIDEwMDY0NAotLS0gYS90ZXN0cy9hbWRncHUvbWVzb24uYnVpbGQKKysrIGIvdGVzdHMvYW1k Z3B1L21lc29uLmJ1aWxkCkBAIC0yNCw3ICsyNCw3IEBAIGlmIGRlcF9jdW5pdC5mb3VuZCgpCiAg ICAgZmlsZXMoCiAgICAgICAnYW1kZ3B1X3Rlc3QuYycsICdiYXNpY190ZXN0cy5jJywgJ2JvX3Rl c3RzLmMnLCAnY3NfdGVzdHMuYycsCiAgICAgICAndmNlX3Rlc3RzLmMnLCAndXZkX2VuY190ZXN0 cy5jJywgJ3Zjbl90ZXN0cy5jJywgJ2RlYWRsb2NrX3Rlc3RzLmMnLAotICAgICAgJ3ZtX3Rlc3Rz LmMnLCAncmFzX3Rlc3RzLmMnLAorICAgICAgJ3ZtX3Rlc3RzLmMnLCAncmFzX3Rlc3RzLmMnLCAn c3luY29ial90ZXN0cy5jJywKICAgICApLAogICAgIGRlcGVuZGVuY2llcyA6IFtkZXBfY3VuaXQs IGRlcF90aHJlYWRzXSwKICAgICBpbmNsdWRlX2RpcmVjdG9yaWVzIDogW2luY19yb290LCBpbmNf ZHJtLCBpbmNsdWRlX2RpcmVjdG9yaWVzKCcuLi8uLi9hbWRncHUnKV0sCmRpZmYgLS1naXQgYS90 ZXN0cy9hbWRncHUvc3luY29ial90ZXN0cy5jIGIvdGVzdHMvYW1kZ3B1L3N5bmNvYmpfdGVzdHMu YwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMC4uYTBjNjI3ZDcKLS0tIC9kZXYv bnVsbAorKysgYi90ZXN0cy9hbWRncHUvc3luY29ial90ZXN0cy5jCkBAIC0wLDAgKzEsMjkwIEBA CisvKgorICogQ29weXJpZ2h0IDIwMTcgQWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5jLgorICoK KyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkg cGVyc29uIG9idGFpbmluZyBhCisgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0 ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAorICogdG8gZGVhbCBpbiB0 aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRh dGlvbgorICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gs IGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCisgKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNv ZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKKyAqIFNvZnR3YXJlIGlz IGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6 CisgKgorICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBu b3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4KKyAqIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwg cG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURF RCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCisgKiBJ TVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1F UkNIQU5UQUJJTElUWSwKKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBO T05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAorICogVEhFIENPUFlSSUdIVCBIT0xE RVIoUykgT1IgQVVUSE9SKFMpIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SCisg KiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JU IE9SIE9USEVSV0lTRSwKKyAqIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04g V0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUgorICogT1RIRVIgREVBTElOR1MgSU4gVEhF IFNPRlRXQVJFLgorICoKKyovCisKKyNpbmNsdWRlICJDVW5pdC9CYXNpYy5oIgorCisjaW5jbHVk ZSAiYW1kZ3B1X3Rlc3QuaCIKKyNpbmNsdWRlICJhbWRncHVfZHJtLmgiCisjaW5jbHVkZSAiYW1k Z3B1X2ludGVybmFsLmgiCisjaW5jbHVkZSA8cHRocmVhZC5oPgorCitzdGF0aWMgIGFtZGdwdV9k ZXZpY2VfaGFuZGxlIGRldmljZV9oYW5kbGU7CitzdGF0aWMgIHVpbnQzMl90ICBtYWpvcl92ZXJz aW9uOworc3RhdGljICB1aW50MzJfdCAgbWlub3JfdmVyc2lvbjsKKworc3RhdGljIHZvaWQgYW1k Z3B1X3N5bmNvYmpfdGltZWxpbmVfdGVzdCh2b2lkKTsKKworQ1VfQk9PTCBzdWl0ZV9zeW5jb2Jq X3RpbWVsaW5lX3Rlc3RzX2VuYWJsZSh2b2lkKQoreworCXJldHVybiBDVV9UUlVFOworfQorCitp bnQgc3VpdGVfc3luY29ial90aW1lbGluZV90ZXN0c19pbml0KHZvaWQpCit7CisJaW50IHI7CisK KwlyID0gYW1kZ3B1X2RldmljZV9pbml0aWFsaXplKGRybV9hbWRncHVbMF0sICZtYWpvcl92ZXJz aW9uLAorCQkJCSAgICZtaW5vcl92ZXJzaW9uLCAmZGV2aWNlX2hhbmRsZSk7CisKKwlpZiAocikg eworCQlpZiAoKHIgPT0gLUVBQ0NFUykgJiYgKGVycm5vID09IEVBQ0NFUykpCisJCQlwcmludGYo IlxuXG5FcnJvcjolcy4gIgorCQkJCSJIaW50OlRyeSB0byBydW4gdGhpcyB0ZXN0IHByb2dyYW0g YXMgcm9vdC4iLAorCQkJCXN0cmVycm9yKGVycm5vKSk7CisJCXJldHVybiBDVUVfU0lOSVRfRkFJ TEVEOworCX0KKworCXJldHVybiBDVUVfU1VDQ0VTUzsKK30KKworaW50IHN1aXRlX3N5bmNvYmpf dGltZWxpbmVfdGVzdHNfY2xlYW4odm9pZCkKK3sKKwlpbnQgciA9IGFtZGdwdV9kZXZpY2VfZGVp bml0aWFsaXplKGRldmljZV9oYW5kbGUpOworCisJaWYgKHIgPT0gMCkKKwkJcmV0dXJuIENVRV9T VUNDRVNTOworCWVsc2UKKwkJcmV0dXJuIENVRV9TQ0xFQU5fRkFJTEVEOworfQorCisKK0NVX1Rl c3RJbmZvIHN5bmNvYmpfdGltZWxpbmVfdGVzdHNbXSA9IHsKKwl7ICJzeW5jb2JqIHRpbWVsaW5l IHRlc3QiLCAgYW1kZ3B1X3N5bmNvYmpfdGltZWxpbmVfdGVzdCB9LAorCUNVX1RFU1RfSU5GT19O VUxMLAorfTsKKworI2RlZmluZSBHRlhfQ09NUFVURV9OT1AgIDB4ZmZmZjEwMDAKKyNkZWZpbmUg U0RNQV9OT1AgIDB4MAorc3RhdGljIGludCBzeW5jb2JqX2NvbW1hbmRfc3VibWlzc2lvbl9oZWxw ZXIodWludDMyX3Qgc3luY29ial9oYW5kbGUsIGJvb2wKKwkJCQkJICAgICB3YWl0X29yX3NpZ25h bCwgdWludDY0X3QgcG9pbnQpCit7CisJYW1kZ3B1X2NvbnRleHRfaGFuZGxlIGNvbnRleHRfaGFu ZGxlOworCWFtZGdwdV9ib19oYW5kbGUgaWJfcmVzdWx0X2hhbmRsZTsKKwl2b2lkICppYl9yZXN1 bHRfY3B1OworCXVpbnQ2NF90IGliX3Jlc3VsdF9tY19hZGRyZXNzOworCXN0cnVjdCBkcm1fYW1k Z3B1X2NzX2NodW5rIGNodW5rc1syXTsKKwlzdHJ1Y3QgZHJtX2FtZGdwdV9jc19jaHVua19kYXRh IGNodW5rX2RhdGE7CisJc3RydWN0IGRybV9hbWRncHVfY3NfY2h1bmtfc3luY29iaiBzeW5jb2Jq X2RhdGE7CisJc3RydWN0IGFtZGdwdV9jc19mZW5jZSBmZW5jZV9zdGF0dXM7CisJYW1kZ3B1X2Jv X2xpc3RfaGFuZGxlIGJvX2xpc3Q7CisJYW1kZ3B1X3ZhX2hhbmRsZSB2YV9oYW5kbGU7CisJdWlu dDMyX3QgZXhwaXJlZCwgZmxhZ3M7CisJaW50IGksIHI7CisJdWludDY0X3Qgc2VxX25vOworCXN0 YXRpYyB1aW50MzJfdCAqcHRyOworCisJciA9IGFtZGdwdV9jc19jdHhfY3JlYXRlKGRldmljZV9o YW5kbGUsICZjb250ZXh0X2hhbmRsZSk7CisJQ1VfQVNTRVJUX0VRVUFMKHIsIDApOworCisJciA9 IGFtZGdwdV9ib19hbGxvY19hbmRfbWFwKGRldmljZV9oYW5kbGUsIDQwOTYsIDQwOTYsCisJCQkJ ICAgIEFNREdQVV9HRU1fRE9NQUlOX0dUVCwgMCwKKwkJCQkgICAgJmliX3Jlc3VsdF9oYW5kbGUs ICZpYl9yZXN1bHRfY3B1LAorCQkJCSAgICAmaWJfcmVzdWx0X21jX2FkZHJlc3MsICZ2YV9oYW5k bGUpOworCUNVX0FTU0VSVF9FUVVBTChyLCAwKTsKKworCXIgPSBhbWRncHVfZ2V0X2JvX2xpc3Qo ZGV2aWNlX2hhbmRsZSwgaWJfcmVzdWx0X2hhbmRsZSwgTlVMTCwKKwkJCSAgICAgICAmYm9fbGlz dCk7CisJQ1VfQVNTRVJUX0VRVUFMKHIsIDApOworCisJcHRyID0gaWJfcmVzdWx0X2NwdTsKKwor CWZvciAoaSA9IDA7IGkgPCAxNjsgKytpKQorCQlwdHJbaV0gPSB3YWl0X29yX3NpZ25hbCA/IEdG WF9DT01QVVRFX05PUDogU0RNQV9OT1A7CisKKwljaHVua3NbMF0uY2h1bmtfaWQgPSBBTURHUFVf Q0hVTktfSURfSUI7CisJY2h1bmtzWzBdLmxlbmd0aF9kdyA9IHNpemVvZihzdHJ1Y3QgZHJtX2Ft ZGdwdV9jc19jaHVua19pYikgLyA0OworCWNodW5rc1swXS5jaHVua19kYXRhID0gKHVpbnQ2NF90 KSh1aW50cHRyX3QpJmNodW5rX2RhdGE7CisJY2h1bmtfZGF0YS5pYl9kYXRhLl9wYWQgPSAwOwor CWNodW5rX2RhdGEuaWJfZGF0YS52YV9zdGFydCA9IGliX3Jlc3VsdF9tY19hZGRyZXNzOworCWNo dW5rX2RhdGEuaWJfZGF0YS5pYl9ieXRlcyA9IDE2ICogNDsKKwljaHVua19kYXRhLmliX2RhdGEu aXBfdHlwZSA9IHdhaXRfb3Jfc2lnbmFsID8gQU1ER1BVX0hXX0lQX0dGWCA6CisJCUFNREdQVV9I V19JUF9ETUE7CisJY2h1bmtfZGF0YS5pYl9kYXRhLmlwX2luc3RhbmNlID0gMDsKKwljaHVua19k YXRhLmliX2RhdGEucmluZyA9IDA7CisJY2h1bmtfZGF0YS5pYl9kYXRhLmZsYWdzID0gMDsKKwor CWNodW5rc1sxXS5jaHVua19pZCA9IHdhaXRfb3Jfc2lnbmFsID8KKwkJQU1ER1BVX0NIVU5LX0lE X1NZTkNPQkpfVElNRUxJTkVfV0FJVCA6CisJCUFNREdQVV9DSFVOS19JRF9TWU5DT0JKX1RJTUVM SU5FX1NJR05BTDsKKwljaHVua3NbMV0ubGVuZ3RoX2R3ID0gc2l6ZW9mKHN0cnVjdCBkcm1fYW1k Z3B1X2NzX2NodW5rX3N5bmNvYmopIC8gNDsKKwljaHVua3NbMV0uY2h1bmtfZGF0YSA9ICh1aW50 NjRfdCkodWludHB0cl90KSZzeW5jb2JqX2RhdGE7CisJc3luY29ial9kYXRhLmhhbmRsZSA9IHN5 bmNvYmpfaGFuZGxlOworCXN5bmNvYmpfZGF0YS5wb2ludCA9IHBvaW50OworCXN5bmNvYmpfZGF0 YS5mbGFncyA9IERSTV9TWU5DT0JKX1dBSVRfRkxBR1NfV0FJVF9GT1JfU1VCTUlUOworCisJciA9 IGFtZGdwdV9jc19zdWJtaXRfcmF3KGRldmljZV9oYW5kbGUsCisJCQkJIGNvbnRleHRfaGFuZGxl LAorCQkJCSBib19saXN0LAorCQkJCSAyLAorCQkJCSBjaHVua3MsCisJCQkJICZzZXFfbm8pOwor CUNVX0FTU0VSVF9FUVVBTChyLCAwKTsKKworCisJbWVtc2V0KCZmZW5jZV9zdGF0dXMsIDAsIHNp emVvZihzdHJ1Y3QgYW1kZ3B1X2NzX2ZlbmNlKSk7CisJZmVuY2Vfc3RhdHVzLmNvbnRleHQgPSBj b250ZXh0X2hhbmRsZTsKKwlmZW5jZV9zdGF0dXMuaXBfdHlwZSA9IHdhaXRfb3Jfc2lnbmFsID8g QU1ER1BVX0hXX0lQX0dGWDoKKwkJQU1ER1BVX0hXX0lQX0RNQTsKKwlmZW5jZV9zdGF0dXMuaXBf aW5zdGFuY2UgPSAwOworCWZlbmNlX3N0YXR1cy5yaW5nID0gMDsKKwlmZW5jZV9zdGF0dXMuZmVu Y2UgPSBzZXFfbm87CisKKwlyID0gYW1kZ3B1X2NzX3F1ZXJ5X2ZlbmNlX3N0YXR1cygmZmVuY2Vf c3RhdHVzLAorCQkJQU1ER1BVX1RJTUVPVVRfSU5GSU5JVEUsMCwgJmV4cGlyZWQpOworCUNVX0FT U0VSVF9FUVVBTChyLCAwKTsKKworCXIgPSBhbWRncHVfYm9fbGlzdF9kZXN0cm95KGJvX2xpc3Qp OworCUNVX0FTU0VSVF9FUVVBTChyLCAwKTsKKworCXIgPSBhbWRncHVfYm9fdW5tYXBfYW5kX2Zy ZWUoaWJfcmVzdWx0X2hhbmRsZSwgdmFfaGFuZGxlLAorCQkJCSAgICAgaWJfcmVzdWx0X21jX2Fk ZHJlc3MsIDQwOTYpOworCUNVX0FTU0VSVF9FUVVBTChyLCAwKTsKKworCXIgPSBhbWRncHVfY3Nf Y3R4X2ZyZWUoY29udGV4dF9oYW5kbGUpOworCUNVX0FTU0VSVF9FUVVBTChyLCAwKTsKKworCXJl dHVybiByOworfQorCitzdHJ1Y3Qgc3luY29ial9wb2ludCB7CisJdWludDMyX3Qgc3luY29ial9o YW5kbGU7CisJdWludDY0X3QgcG9pbnQ7Cit9OworCitzdGF0aWMgdm9pZCAqc3luY29ial93YWl0 KHZvaWQgKmRhdGEpCit7CisJc3RydWN0IHN5bmNvYmpfcG9pbnQgKnNwID0gKHN0cnVjdCBzeW5j b2JqX3BvaW50ICopZGF0YTsKKwlpbnQgcjsKKworCXIgPSBzeW5jb2JqX2NvbW1hbmRfc3VibWlz c2lvbl9oZWxwZXIoc3AtPnN5bmNvYmpfaGFuZGxlLCB0cnVlLAorCQkJCQkgICAgICBzcC0+cG9p bnQpOworCUNVX0FTU0VSVF9FUVVBTChyLCAwKTsKKworCXJldHVybiAodm9pZCAqKShsb25nKXI7 Cit9CisKK3N0YXRpYyB2b2lkICpzeW5jb2JqX3NpZ25hbCh2b2lkICpkYXRhKQoreworCXN0cnVj dCBzeW5jb2JqX3BvaW50ICpzcCA9IChzdHJ1Y3Qgc3luY29ial9wb2ludCAqKWRhdGE7CisJaW50 IHI7CisKKwlyID0gc3luY29ial9jb21tYW5kX3N1Ym1pc3Npb25faGVscGVyKHNwLT5zeW5jb2Jq X2hhbmRsZSwgZmFsc2UsCisJCQkJCSAgICAgIHNwLT5wb2ludCk7CisJQ1VfQVNTRVJUX0VRVUFM KHIsIDApOworCisJcmV0dXJuICh2b2lkICopKGxvbmcpcjsKK30KKworc3RhdGljIHZvaWQgYW1k Z3B1X3N5bmNvYmpfdGltZWxpbmVfdGVzdCh2b2lkKQoreworCXN0YXRpYyBwdGhyZWFkX3Qgd2Fp dF90aHJlYWQ7CisJc3RhdGljIHB0aHJlYWRfdCBzaWduYWxfdGhyZWFkOworCXN0YXRpYyBwdGhy ZWFkX3QgY190aHJlYWQ7CisJc3RydWN0IHN5bmNvYmpfcG9pbnQgc3AxLCBzcDIsIHNwMzsKKwl1 aW50MzJfdCBzeW5jb2JqX2hhbmRsZTsKKwl1aW50NjRfdCBwYXlsb2FkOworCXVpbnQ2NF90IHdh aXRfcG9pbnQsIHNpZ25hbF9wb2ludDsKKwl1aW50NjRfdCB0aW1lb3V0OworCXN0cnVjdCB0aW1l c3BlYyB0cDsKKwlpbnQgciwgc3luY19mZDsKKwl2b2lkICp0bXA7CisKKwlyID0gIGFtZGdwdV9j c19jcmVhdGVfc3luY29iajIoZGV2aWNlX2hhbmRsZSwgMCwgJnN5bmNvYmpfaGFuZGxlKTsKKwlD VV9BU1NFUlRfRVFVQUwociwgMCk7CisKKwkvLyB3YWl0IG9uIHBvaW50IDUKKwlzcDEuc3luY29i al9oYW5kbGUgPSBzeW5jb2JqX2hhbmRsZTsKKwlzcDEucG9pbnQgPSA1OworCXIgPSBwdGhyZWFk X2NyZWF0ZSgmd2FpdF90aHJlYWQsIE5VTEwsIHN5bmNvYmpfd2FpdCwgJnNwMSk7CisJQ1VfQVNT RVJUX0VRVUFMKHIsIDApOworCisJLy8gc2lnbmFsIG9uIHBvaW50IDEwCisJc3AyLnN5bmNvYmpf aGFuZGxlID0gc3luY29ial9oYW5kbGU7CisJc3AyLnBvaW50ID0gMTA7CisJciA9IHB0aHJlYWRf Y3JlYXRlKCZzaWduYWxfdGhyZWFkLCBOVUxMLCBzeW5jb2JqX3NpZ25hbCwgJnNwMik7CisJQ1Vf QVNTRVJUX0VRVUFMKHIsIDApOworCisJciA9IHB0aHJlYWRfam9pbih3YWl0X3RocmVhZCwgJnRt cCk7CisJQ1VfQVNTRVJUX0VRVUFMKHIsIDApOworCUNVX0FTU0VSVF9FUVVBTCh0bXAsIDApOwor CisJciA9IHB0aHJlYWRfam9pbihzaWduYWxfdGhyZWFkLCAmdG1wKTsKKwlDVV9BU1NFUlRfRVFV QUwociwgMCk7CisJQ1VfQVNTRVJUX0VRVUFMKHRtcCwgMCk7CisKKwkvL3F1ZXJ5IHRpbWVsaW5l IHBheWxvYWQKKwlyID0gYW1kZ3B1X2NzX3N5bmNvYmpfcXVlcnkoZGV2aWNlX2hhbmRsZSwgJnN5 bmNvYmpfaGFuZGxlLAorCQkJCSAgICAmcGF5bG9hZCwgMSk7CisJQ1VfQVNTRVJUX0VRVUFMKHIs IDApOworCUNVX0FTU0VSVF9FUVVBTChwYXlsb2FkLCAxMCk7CisKKwkvL3NpZ25hbCBvbiBwb2lu dCAxNgorCXNwMy5zeW5jb2JqX2hhbmRsZSA9IHN5bmNvYmpfaGFuZGxlOworCXNwMy5wb2ludCA9 IDE2OworCXIgPSBwdGhyZWFkX2NyZWF0ZSgmY190aHJlYWQsIE5VTEwsIHN5bmNvYmpfc2lnbmFs LCAmc3AzKTsKKwlDVV9BU1NFUlRfRVFVQUwociwgMCk7CisJLy9DUFUgd2FpdCBvbiBwb2ludCAx NgorCXdhaXRfcG9pbnQgPSAxNjsKKwl0aW1lb3V0ID0gMDsKKwljbG9ja19nZXR0aW1lKENMT0NL X01PTk9UT05JQywgJnRwKTsKKwl0aW1lb3V0ID0gdHAudHZfc2VjICogMTAwMDAwMDAwMFVMTCAr IHRwLnR2X25zZWM7CisJdGltZW91dCArPSAweDEwMDAwMDAwMDAwOyAvLzEwcworCXIgPSBhbWRn cHVfY3Nfc3luY29ial90aW1lbGluZV93YWl0KGRldmljZV9oYW5kbGUsICZzeW5jb2JqX2hhbmRs ZSwKKwkJCQkJICAgICZ3YWl0X3BvaW50LCAxLCB0aW1lb3V0LAorCQkJCQkgICAgRFJNX1NZTkNP QkpfV0FJVF9GTEFHU19XQUlUX0FMTCB8CisJCQkJCSAgICBEUk1fU1lOQ09CSl9XQUlUX0ZMQUdT X1dBSVRfRk9SX1NVQk1JVCwKKwkJCQkJICAgIE5VTEwpOworCisJQ1VfQVNTRVJUX0VRVUFMKHIs IDApOworCXIgPSBwdGhyZWFkX2pvaW4oY190aHJlYWQsICZ0bXApOworCUNVX0FTU0VSVF9FUVVB TChyLCAwKTsKKwlDVV9BU1NFUlRfRVFVQUwodG1wLCAwKTsKKworCS8vIGV4cG9ydCBwb2ludCAx NiBhbmQgaW1wb3J0IHRvIHBvaW50IDE4CisJciA9IGFtZGdwdV9jc19zeW5jb2JqX2V4cG9ydF9z eW5jX2ZpbGUyKGRldmljZV9oYW5kbGUsIHN5bmNvYmpfaGFuZGxlLAorCQkJCQkJMTYsCisJCQkJ CQlEUk1fU1lOQ09CSl9XQUlUX0ZMQUdTX1dBSVRfRk9SX1NVQk1JVCwKKwkJCQkJCSZzeW5jX2Zk KTsKKwlDVV9BU1NFUlRfRVFVQUwociwgMCk7CisJciA9IGFtZGdwdV9jc19zeW5jb2JqX2ltcG9y dF9zeW5jX2ZpbGUyKGRldmljZV9oYW5kbGUsIHN5bmNvYmpfaGFuZGxlLAorCQkJCQkJMTgsIHN5 bmNfZmQpOworCUNVX0FTU0VSVF9FUVVBTChyLCAwKTsKKwlyID0gYW1kZ3B1X2NzX3N5bmNvYmpf cXVlcnkoZGV2aWNlX2hhbmRsZSwgJnN5bmNvYmpfaGFuZGxlLAorCQkJCSAgICAmcGF5bG9hZCwg MSk7CisJQ1VfQVNTRVJUX0VRVUFMKHIsIDApOworCUNVX0FTU0VSVF9FUVVBTChwYXlsb2FkLCAx OCk7CisKKwkvLyBDUFUgc2lnbmFsIG9uIHBvaW50IDIwCisJc2lnbmFsX3BvaW50ID0gMjA7CisJ ciA9IGFtZGdwdV9jc19zeW5jb2JqX3RpbWVsaW5lX3NpZ25hbChkZXZpY2VfaGFuZGxlLCAmc3lu Y29ial9oYW5kbGUsCisJCQkJCSAgICAgICZzaWduYWxfcG9pbnQsIDEpOworCUNVX0FTU0VSVF9F UVVBTChyLCAwKTsKKwlyID0gYW1kZ3B1X2NzX3N5bmNvYmpfcXVlcnkoZGV2aWNlX2hhbmRsZSwg JnN5bmNvYmpfaGFuZGxlLAorCQkJCSAgICAmcGF5bG9hZCwgMSk7CisJQ1VfQVNTRVJUX0VRVUFM KHIsIDApOworCUNVX0FTU0VSVF9FUVVBTChwYXlsb2FkLCAyMCk7CisKKwlyID0gYW1kZ3B1X2Nz X2Rlc3Ryb3lfc3luY29iaihkZXZpY2VfaGFuZGxlLCBzeW5jb2JqX2hhbmRsZSk7CisJQ1VfQVNT RVJUX0VRVUFMKHIsIDApOworCit9CmNvbW1pdCA2YTcyNjYxYzMzYTlmY2RmYmI1NDQ5Y2M2YzBj OTI4MTBlZDIxN2ZkCkF1dGhvcjogQ2h1bm1pbmcgWmhvdSA8ZGF2aWQxLnpob3VAYW1kLmNvbT4K RGF0ZTogICBUaHUgTWF5IDE2IDE2OjA3OjEzIDIwMTkgKzA4MDAKCiAgICB3cmFwIHRyYW5zZmVy IGludGVyZmFjZXMKICAgIAogICAgU2lnbmVkLW9mZi1ieTogQ2h1bm1pbmcgWmhvdSA8ZGF2aWQx Lnpob3VAYW1kLmNvbT4KICAgIEFja2VkLWJ5OiBDaHJpc3RpYW4gS8O2bmlnIDxjaHJpc3RpYW4u a29lbmlnQGFtZC5jb20+CiAgICBBY2tlZC1ieTogTGlvbmVsIExhbmR3ZXJsaW4gPGxpb25lbC5n LmxhbmR3ZXJsaW5AaW50ZWwuY29tPgoKZGlmZiAtLWdpdCBhL2FtZGdwdS9hbWRncHUuaCBiL2Ft ZGdwdS9hbWRncHUuaAppbmRleCBkMjQ4MGRiZS4uOWQ5YjA4MzIgMTAwNjQ0Ci0tLSBhL2FtZGdw dS9hbWRncHUuaAorKysgYi9hbWRncHUvYW1kZ3B1LmgKQEAgLTE2ODUsNiArMTY4NSwyOCBAQCBp bnQgYW1kZ3B1X2NzX3N5bmNvYmpfaW1wb3J0X3N5bmNfZmlsZTIoYW1kZ3B1X2RldmljZV9oYW5k bGUgZGV2LAogCQkJCQl1aW50MzJfdCBzeW5jb2JqLAogCQkJCQl1aW50NjRfdCBwb2ludCwKIAkJ CQkJaW50IHN5bmNfZmlsZV9mZCk7CisKKy8qKgorICogIHRyYW5zZmVyIGJldHdlZW4gc3luY2Jv anMuCisgKgorICogXHBhcmFtICAgZGV2CQktIFxjIFtpbl0gZGV2aWNlIGhhbmRsZQorICogXHBh cmFtICAgZHN0X2hhbmRsZQktIFxjIFtpbl0gc3luYyBvYmplY3QgaGFuZGxlCisgKiBccGFyYW0g ICBkc3RfcG9pbnQJLSBcYyBbaW5dIHRpbWVsaW5lIHBvaW50LCAwIHByZXNlbnRzIGRzdCBpcyBi aW5hcnkKKyAqIFxwYXJhbSAgIHNyY19oYW5kbGUJLSBcYyBbaW5dIHN5bmMgb2JqZWN0IGhhbmRs ZQorICogXHBhcmFtICAgc3JjX3BvaW50CS0gXGMgW2luXSB0aW1lbGluZSBwb2ludCwgMCBwcmVz ZW50cyBzcmMgaXMgYmluYXJ5CisgKiBccGFyYW0gICBmbGFncwktIFxjIFtpbl0gZmxhZ3MKKyAq CisgKiBccmV0dXJuICAgMCBvbiBzdWNjZXNzXG4KKyAqICAgICAgICAgIDwwIC0gTmVnYXRpdmUg UE9TSVggRXJyb3IgY29kZQorICoKKyAqLworaW50IGFtZGdwdV9jc19zeW5jb2JqX3RyYW5zZmVy KGFtZGdwdV9kZXZpY2VfaGFuZGxlIGRldiwKKwkJCSAgICAgICB1aW50MzJfdCBkc3RfaGFuZGxl LAorCQkJICAgICAgIHVpbnQ2NF90IGRzdF9wb2ludCwKKwkJCSAgICAgICB1aW50MzJfdCBzcmNf aGFuZGxlLAorCQkJICAgICAgIHVpbnQ2NF90IHNyY19wb2ludCwKKwkJCSAgICAgICB1aW50MzJf dCBmbGFncyk7CisKIC8qKgogICogRXhwb3J0IGFuIGFtZGdwdSBmZW5jZSBhcyBhIGhhbmRsZSAo c3luY29iaiBvciBmZCkuCiAgKgpkaWZmIC0tZ2l0IGEvYW1kZ3B1L2FtZGdwdV9jcy5jIGIvYW1k Z3B1L2FtZGdwdV9jcy5jCmluZGV4IGRhY2E0NDIxLi45NzdmYTNjZiAxMDA2NDQKLS0tIGEvYW1k Z3B1L2FtZGdwdV9jcy5jCisrKyBiL2FtZGdwdS9hbWRncHVfY3MuYwpAQCAtODE3LDYgKzgxNywy MiBAQCBvdXQ6CiAJcmV0dXJuIHJldDsKIH0KIAorZHJtX3B1YmxpYyBpbnQgYW1kZ3B1X2NzX3N5 bmNvYmpfdHJhbnNmZXIoYW1kZ3B1X2RldmljZV9oYW5kbGUgZGV2LAorCQkJCQkgIHVpbnQzMl90 IGRzdF9oYW5kbGUsCisJCQkJCSAgdWludDY0X3QgZHN0X3BvaW50LAorCQkJCQkgIHVpbnQzMl90 IHNyY19oYW5kbGUsCisJCQkJCSAgdWludDY0X3Qgc3JjX3BvaW50LAorCQkJCQkgIHVpbnQzMl90 IGZsYWdzKQoreworCWlmIChOVUxMID09IGRldikKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlyZXR1 cm4gZHJtU3luY29ialRyYW5zZmVyKGRldi0+ZmQsCisJCQkJICBkc3RfaGFuZGxlLCBkc3RfcG9p bnQsCisJCQkJICBzcmNfaGFuZGxlLCBzcmNfcG9pbnQsCisJCQkJICBmbGFncyk7Cit9CisKIGRy bV9wdWJsaWMgaW50IGFtZGdwdV9jc19zdWJtaXRfcmF3KGFtZGdwdV9kZXZpY2VfaGFuZGxlIGRl diwKIAkJCQkgICAgYW1kZ3B1X2NvbnRleHRfaGFuZGxlIGNvbnRleHQsCiAJCQkJICAgIGFtZGdw dV9ib19saXN0X2hhbmRsZSBib19saXN0X2hhbmRsZSwKY29tbWl0IDZiYjVjYzE3NGJhMDRkODFm NWQ4NDBjZDA4Y2ZhOTlkOWRjMzI3NGMKQXV0aG9yOiBDaHVubWluZyBaaG91IDxkYXZpZDEuemhv dUBhbWQuY29tPgpEYXRlOiAgIFRodSBNYXkgMTYgMTY6MDc6MTIgMjAxOSArMDgwMAoKICAgIGV4 cG9zZSB0aW1lbGluZSBzaWduYWwvZXhwb3J0L2ltcG9ydCBpbnRlcmZhY2VzIHYyCiAgICAKICAg IHYyOiBhZGFwdCB0byBuZXcgb25lIHRyYW5zZmVyIGlvY3RsCiAgICAKICAgIFNpZ25lZC1vZmYt Ynk6IENodW5taW5nIFpob3UgPGRhdmlkMS56aG91QGFtZC5jb20+CiAgICBBY2tlZC1ieTogQ2hy aXN0aWFuIEvDtm5pZyA8Y2hyaXN0aWFuLmtvZW5pZ0BhbWQuY29tPgogICAgQWNrZWQtYnk6IExp b25lbCBMYW5kd2VybGluIDxsaW9uZWwuZy5sYW5kd2VybGluQGludGVsLmNvbT4KCmRpZmYgLS1n aXQgYS9hbWRncHUvYW1kZ3B1LXN5bWJvbC1jaGVjayBiL2FtZGdwdS9hbWRncHUtc3ltYm9sLWNo ZWNrCmluZGV4IGQzYzViYjg5Li4yNzRiNGM2ZCAxMDA3NTUKLS0tIGEvYW1kZ3B1L2FtZGdwdS1z eW1ib2wtY2hlY2sKKysrIGIvYW1kZ3B1L2FtZGdwdS1zeW1ib2wtY2hlY2sKQEAgLTUyLDEwICs1 MiwxMyBAQCBhbWRncHVfY3Nfc3VibWl0CiBhbWRncHVfY3Nfc3VibWl0X3JhdwogYW1kZ3B1X2Nz X3N1Ym1pdF9yYXcyCiBhbWRncHVfY3Nfc3luY29ial9leHBvcnRfc3luY19maWxlCithbWRncHVf Y3Nfc3luY29ial9leHBvcnRfc3luY19maWxlMgogYW1kZ3B1X2NzX3N5bmNvYmpfaW1wb3J0X3N5 bmNfZmlsZQorYW1kZ3B1X2NzX3N5bmNvYmpfaW1wb3J0X3N5bmNfZmlsZTIKIGFtZGdwdV9jc19z eW5jb2JqX3F1ZXJ5CiBhbWRncHVfY3Nfc3luY29ial9yZXNldAogYW1kZ3B1X2NzX3N5bmNvYmpf c2lnbmFsCithbWRncHVfY3Nfc3luY29ial90aW1lbGluZV9zaWduYWwKIGFtZGdwdV9jc19zeW5j b2JqX3RpbWVsaW5lX3dhaXQKIGFtZGdwdV9jc19zeW5jb2JqX3dhaXQKIGFtZGdwdV9jc193YWl0 X2ZlbmNlcwpkaWZmIC0tZ2l0IGEvYW1kZ3B1L2FtZGdwdS5oIGIvYW1kZ3B1L2FtZGdwdS5oCmlu ZGV4IDVlYmZlMWUzLi5kMjQ4MGRiZSAxMDA2NDQKLS0tIGEvYW1kZ3B1L2FtZGdwdS5oCisrKyBi L2FtZGdwdS9hbWRncHUuaApAQCAtMTUxNyw2ICsxNTE3LDIzIEBAIGludCBhbWRncHVfY3Nfc3lu Y29ial9zaWduYWwoYW1kZ3B1X2RldmljZV9oYW5kbGUgZGV2LAogCQkJICAgICBjb25zdCB1aW50 MzJfdCAqc3luY29ianMsIHVpbnQzMl90IHN5bmNvYmpfY291bnQpOwogCiAvKioKKyAqIFNpZ25h bCBrZXJuZWwgdGltZWxpbmUgc3luYyBvYmplY3RzLgorICoKKyAqIFxwYXJhbSBkZXYgICAgICAg ICAgIC0gXGMgW2luXSBkZXZpY2UgaGFuZGxlCisgKiBccGFyYW0gc3luY29ianMgICAgICAtIFxj IFtpbl0gYXJyYXkgb2Ygc3luYyBvYmplY3QgaGFuZGxlcworICogXHBhcmFtIHBvaW50cwktIFxj IFtpbl0gYXJyYXkgb2YgdGltZWxpbmUgcG9pbnRzCisgKiBccGFyYW0gc3luY29ial9jb3VudCAt IFxjIFtpbl0gbnVtYmVyIG9mIGhhbmRsZXMgaW4gc3luY29ianMKKyAqCisgKiBccmV0dXJuICAg MCBvbiBzdWNjZXNzXG4KKyAqICAgICAgICAgIDwwIC0gTmVnYXRpdmUgUE9TSVggRXJyb3IgY29k ZQorICoKKyovCitpbnQgYW1kZ3B1X2NzX3N5bmNvYmpfdGltZWxpbmVfc2lnbmFsKGFtZGdwdV9k ZXZpY2VfaGFuZGxlIGRldiwKKwkJCQkgICAgICBjb25zdCB1aW50MzJfdCAqc3luY29ianMsCisJ CQkJICAgICAgdWludDY0X3QgKnBvaW50cywKKwkJCQkgICAgICB1aW50MzJfdCBzeW5jb2JqX2Nv dW50KTsKKworLyoqCiAgKiAgV2FpdCBmb3Igb25lIG9yIGFsbCBzeW5jIG9iamVjdHMgdG8gc2ln bmFsLgogICoKICAqIFxwYXJhbSAgIGRldgkgICAgLSBcYyBbaW5dIHNlbGYtZXhwbGFuYXRvcnkK QEAgLTE2MzMsOCArMTY1MCw0MiBAQCBpbnQgYW1kZ3B1X2NzX3N5bmNvYmpfZXhwb3J0X3N5bmNf ZmlsZShhbWRncHVfZGV2aWNlX2hhbmRsZSBkZXYsCiBpbnQgYW1kZ3B1X2NzX3N5bmNvYmpfaW1w b3J0X3N5bmNfZmlsZShhbWRncHVfZGV2aWNlX2hhbmRsZSBkZXYsCiAJCQkJICAgICAgIHVpbnQz Ml90IHN5bmNvYmosCiAJCQkJICAgICAgIGludCBzeW5jX2ZpbGVfZmQpOworLyoqCisgKiAgRXhw b3J0IGtlcm5lbCB0aW1lbGluZSBzeW5jIG9iamVjdCB0byBhIHN5bmNfZmlsZS4KKyAqCisgKiBc cGFyYW0gICBkZXYJCS0gXGMgW2luXSBkZXZpY2UgaGFuZGxlCisgKiBccGFyYW0gICBzeW5jb2Jq CS0gXGMgW2luXSBzeW5jIG9iamVjdCBoYW5kbGUKKyAqIFxwYXJhbSAgIHBvaW50CS0gXGMgW2lu XSB0aW1lbGluZSBwb2ludAorICogXHBhcmFtICAgZmxhZ3MJLSBcYyBbaW5dIGZsYWdzCisgKiBc cGFyYW0gICBzeW5jX2ZpbGVfZmQgLSBcYyBbb3V0XSBzeW5jX2ZpbGUgZmlsZSBkZXNjcmlwdG9y LgorICoKKyAqIFxyZXR1cm4gICAwIG9uIHN1Y2Nlc3NcbgorICogICAgICAgICAgPDAgLSBOZWdh dGl2ZSBQT1NJWCBFcnJvciBjb2RlCisgKgorICovCitpbnQgYW1kZ3B1X2NzX3N5bmNvYmpfZXhw b3J0X3N5bmNfZmlsZTIoYW1kZ3B1X2RldmljZV9oYW5kbGUgZGV2LAorCQkJCQl1aW50MzJfdCBz eW5jb2JqLAorCQkJCQl1aW50NjRfdCBwb2ludCwKKwkJCQkJdWludDMyX3QgZmxhZ3MsCisJCQkJ CWludCAqc3luY19maWxlX2ZkKTsKIAogLyoqCisgKiAgSW1wb3J0IGtlcm5lbCB0aW1lbGluZSBz eW5jIG9iamVjdCBmcm9tIGEgc3luY19maWxlLgorICoKKyAqIFxwYXJhbSAgIGRldgkJLSBcYyBb aW5dIGRldmljZSBoYW5kbGUKKyAqIFxwYXJhbSAgIHN5bmNvYmoJLSBcYyBbaW5dIHN5bmMgb2Jq ZWN0IGhhbmRsZQorICogXHBhcmFtICAgcG9pbnQJLSBcYyBbaW5dIHRpbWVsaW5lIHBvaW50Cisg KiBccGFyYW0gICBzeW5jX2ZpbGVfZmQgLSBcYyBbaW5dIHN5bmNfZmlsZSBmaWxlIGRlc2NyaXB0 b3IuCisgKgorICogXHJldHVybiAgIDAgb24gc3VjY2Vzc1xuCisgKiAgICAgICAgICA8MCAtIE5l Z2F0aXZlIFBPU0lYIEVycm9yIGNvZGUKKyAqCisgKi8KK2ludCBhbWRncHVfY3Nfc3luY29ial9p bXBvcnRfc3luY19maWxlMihhbWRncHVfZGV2aWNlX2hhbmRsZSBkZXYsCisJCQkJCXVpbnQzMl90 IHN5bmNvYmosCisJCQkJCXVpbnQ2NF90IHBvaW50LAorCQkJCQlpbnQgc3luY19maWxlX2ZkKTsK Ky8qKgogICogRXhwb3J0IGFuIGFtZGdwdSBmZW5jZSBhcyBhIGhhbmRsZSAoc3luY29iaiBvciBm ZCkuCiAgKgogICogXHBhcmFtIHdoYXQJCUFNREdQVV9GRU5DRV9UT19IQU5ETEVfR0VUX3tTWU5D T0JKLCBGRH0KZGlmZiAtLWdpdCBhL2FtZGdwdS9hbWRncHVfY3MuYyBiL2FtZGdwdS9hbWRncHVf Y3MuYwppbmRleCA5ZmNhZjJjNC4uZGFjYTQ0MjEgMTAwNjQ0Ci0tLSBhL2FtZGdwdS9hbWRncHVf Y3MuYworKysgYi9hbWRncHUvYW1kZ3B1X2NzLmMKQEAgLTY3NCw2ICs2NzQsMTggQEAgZHJtX3B1 YmxpYyBpbnQgYW1kZ3B1X2NzX3N5bmNvYmpfc2lnbmFsKGFtZGdwdV9kZXZpY2VfaGFuZGxlIGRl diwKIAlyZXR1cm4gZHJtU3luY29ialNpZ25hbChkZXYtPmZkLCBzeW5jb2Jqcywgc3luY29ial9j b3VudCk7CiB9CiAKK2RybV9wdWJsaWMgaW50IGFtZGdwdV9jc19zeW5jb2JqX3RpbWVsaW5lX3Np Z25hbChhbWRncHVfZGV2aWNlX2hhbmRsZSBkZXYsCisJCQkJCQkgY29uc3QgdWludDMyX3QgKnN5 bmNvYmpzLAorCQkJCQkJIHVpbnQ2NF90ICpwb2ludHMsCisJCQkJCQkgdWludDMyX3Qgc3luY29i al9jb3VudCkKK3sKKwlpZiAoTlVMTCA9PSBkZXYpCisJCXJldHVybiAtRUlOVkFMOworCisJcmV0 dXJuIGRybVN5bmNvYmpUaW1lbGluZVNpZ25hbChkZXYtPmZkLCBzeW5jb2JqcywKKwkJCQkJcG9p bnRzLCBzeW5jb2JqX2NvdW50KTsKK30KKwogZHJtX3B1YmxpYyBpbnQgYW1kZ3B1X2NzX3N5bmNv Ympfd2FpdChhbWRncHVfZGV2aWNlX2hhbmRsZSBkZXYsCiAJCQkJICAgICAgdWludDMyX3QgKmhh bmRsZXMsIHVuc2lnbmVkIG51bV9oYW5kbGVzLAogCQkJCSAgICAgIGludDY0X3QgdGltZW91dF9u c2VjLCB1bnNpZ25lZCBmbGFncywKQEAgLTc0OSw2ICs3NjEsNjIgQEAgZHJtX3B1YmxpYyBpbnQg YW1kZ3B1X2NzX3N5bmNvYmpfaW1wb3J0X3N5bmNfZmlsZShhbWRncHVfZGV2aWNlX2hhbmRsZSBk ZXYsCiAJcmV0dXJuIGRybVN5bmNvYmpJbXBvcnRTeW5jRmlsZShkZXYtPmZkLCBzeW5jb2JqLCBz eW5jX2ZpbGVfZmQpOwogfQogCitkcm1fcHVibGljIGludCBhbWRncHVfY3Nfc3luY29ial9leHBv cnRfc3luY19maWxlMihhbWRncHVfZGV2aWNlX2hhbmRsZSBkZXYsCisJCQkJCQkgICB1aW50MzJf dCBzeW5jb2JqLAorCQkJCQkJICAgdWludDY0X3QgcG9pbnQsCisJCQkJCQkgICB1aW50MzJfdCBm bGFncywKKwkJCQkJCSAgIGludCAqc3luY19maWxlX2ZkKQoreworCXVpbnQzMl90IGJpbmFyeV9o YW5kbGU7CisJaW50IHJldDsKKworCWlmIChOVUxMID09IGRldikKKwkJcmV0dXJuIC1FSU5WQUw7 CisKKwlpZiAoIXBvaW50KQorCQlyZXR1cm4gZHJtU3luY29iakV4cG9ydFN5bmNGaWxlKGRldi0+ ZmQsIHN5bmNvYmosIHN5bmNfZmlsZV9mZCk7CisKKwlyZXQgPSBkcm1TeW5jb2JqQ3JlYXRlKGRl di0+ZmQsIDAsICZiaW5hcnlfaGFuZGxlKTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OworCisJ cmV0ID0gZHJtU3luY29ialRyYW5zZmVyKGRldi0+ZmQsIGJpbmFyeV9oYW5kbGUsIDAsCisJCQkJ IHN5bmNvYmosIHBvaW50LCBmbGFncyk7CisJaWYgKHJldCkKKwkJZ290byBvdXQ7CisJcmV0ID0g ZHJtU3luY29iakV4cG9ydFN5bmNGaWxlKGRldi0+ZmQsIGJpbmFyeV9oYW5kbGUsIHN5bmNfZmls ZV9mZCk7CitvdXQ6CisJZHJtU3luY29iakRlc3Ryb3koZGV2LT5mZCwgYmluYXJ5X2hhbmRsZSk7 CisJcmV0dXJuIHJldDsKK30KKworZHJtX3B1YmxpYyBpbnQgYW1kZ3B1X2NzX3N5bmNvYmpfaW1w b3J0X3N5bmNfZmlsZTIoYW1kZ3B1X2RldmljZV9oYW5kbGUgZGV2LAorCQkJCQkJICAgdWludDMy X3Qgc3luY29iaiwKKwkJCQkJCSAgIHVpbnQ2NF90IHBvaW50LAorCQkJCQkJICAgaW50IHN5bmNf ZmlsZV9mZCkKK3sKKwl1aW50MzJfdCBiaW5hcnlfaGFuZGxlOworCWludCByZXQ7CisKKwlpZiAo TlVMTCA9PSBkZXYpCisJCXJldHVybiAtRUlOVkFMOworCisJaWYgKCFwb2ludCkKKwkJcmV0dXJu IGRybVN5bmNvYmpJbXBvcnRTeW5jRmlsZShkZXYtPmZkLCBzeW5jb2JqLCBzeW5jX2ZpbGVfZmQp OworCisJcmV0ID0gZHJtU3luY29iakNyZWF0ZShkZXYtPmZkLCAwLCAmYmluYXJ5X2hhbmRsZSk7 CisJaWYgKHJldCkKKwkJcmV0dXJuIHJldDsKKwlyZXQgPSBkcm1TeW5jb2JqSW1wb3J0U3luY0Zp bGUoZGV2LT5mZCwgYmluYXJ5X2hhbmRsZSwgc3luY19maWxlX2ZkKTsKKwlpZiAocmV0KQorCQln b3RvIG91dDsKKwlyZXQgPSBkcm1TeW5jb2JqVHJhbnNmZXIoZGV2LT5mZCwgc3luY29iaiwgcG9p bnQsCisJCQkJIGJpbmFyeV9oYW5kbGUsIDAsIDApOworb3V0OgorCWRybVN5bmNvYmpEZXN0cm95 KGRldi0+ZmQsIGJpbmFyeV9oYW5kbGUpOworCXJldHVybiByZXQ7Cit9CisKIGRybV9wdWJsaWMg aW50IGFtZGdwdV9jc19zdWJtaXRfcmF3KGFtZGdwdV9kZXZpY2VfaGFuZGxlIGRldiwKIAkJCQkg ICAgYW1kZ3B1X2NvbnRleHRfaGFuZGxlIGNvbnRleHQsCiAJCQkJICAgIGFtZGdwdV9ib19saXN0 X2hhbmRsZSBib19saXN0X2hhbmRsZSwKY29tbWl0IDEyNzEyZWI2ZTMxM2M5OTBkODZlNTM2NTdi OGJjMzcyMmRhM2E2ZWMKQXV0aG9yOiBDaHVubWluZyBaaG91IDxkYXZpZDEuemhvdUBhbWQuY29t PgpEYXRlOiAgIFRodSBNYXkgMTYgMTY6MDc6MTEgMjAxOSArMDgwMAoKICAgIGFkZCB0aW1lbGlu ZSBzaWduYWwvdHJhbnNmZXIgaW9jdGxzIHYyCiAgICAKICAgIHYyOiB1c2Ugb25lIHRyYW5zZmVy IGlvY3RsCiAgICAKICAgIFNpZ25lZC1vZmYtYnk6IENodW5taW5nIFpob3UgPGRhdmlkMS56aG91 QGFtZC5jb20+CiAgICBSZXZpZXdlZC1ieTogTGlvbmVsIExhbmR3ZXJsaW4gPGxpb25lbC5nLmxh bmR3ZXJsaW5AaW50ZWwuY29tPgoKZGlmZiAtLWdpdCBhL3hmODZkcm0uYyBiL3hmODZkcm0uYwpp bmRleCAxYTcxN2YwMi4uOTUzZmM3NjIgMTAwNjQ0Ci0tLSBhL3hmODZkcm0uYworKysgYi94Zjg2 ZHJtLmMKQEAgLTQyNTcsNiArNDI1NywyMSBAQCBkcm1fcHVibGljIGludCBkcm1TeW5jb2JqU2ln bmFsKGludCBmZCwgY29uc3QgdWludDMyX3QgKmhhbmRsZXMsCiAgICAgcmV0dXJuIHJldDsKIH0K IAorZHJtX3B1YmxpYyBpbnQgZHJtU3luY29ialRpbWVsaW5lU2lnbmFsKGludCBmZCwgY29uc3Qg dWludDMyX3QgKmhhbmRsZXMsCisJCQkJCXVpbnQ2NF90ICpwb2ludHMsIHVpbnQzMl90IGhhbmRs ZV9jb3VudCkKK3sKKyAgICBzdHJ1Y3QgZHJtX3N5bmNvYmpfdGltZWxpbmVfYXJyYXkgYXJnczsK KyAgICBpbnQgcmV0OworCisgICAgbWVtY2xlYXIoYXJncyk7CisgICAgYXJncy5oYW5kbGVzID0g KHVpbnRwdHJfdCloYW5kbGVzOworICAgIGFyZ3MucG9pbnRzID0gKHVpbnRwdHJfdClwb2ludHM7 CisgICAgYXJncy5jb3VudF9oYW5kbGVzID0gaGFuZGxlX2NvdW50OworCisgICAgcmV0ID0gZHJt SW9jdGwoZmQsIERSTV9JT0NUTF9TWU5DT0JKX1RJTUVMSU5FX1NJR05BTCwgJmFyZ3MpOworICAg IHJldHVybiByZXQ7Cit9CisKIGRybV9wdWJsaWMgaW50IGRybVN5bmNvYmpUaW1lbGluZVdhaXQo aW50IGZkLCB1aW50MzJfdCAqaGFuZGxlcywgdWludDY0X3QgKnBvaW50cywKIAkJCQkgICAgICB1 bnNpZ25lZCBudW1faGFuZGxlcywKIAkJCQkgICAgICBpbnQ2NF90IHRpbWVvdXRfbnNlYywgdW5z aWduZWQgZmxhZ3MsCkBAIC00Mjk5LDQgKzQzMTQsMjIgQEAgZHJtX3B1YmxpYyBpbnQgZHJtU3lu Y29ialF1ZXJ5KGludCBmZCwgdWludDMyX3QgKmhhbmRsZXMsIHVpbnQ2NF90ICpwb2ludHMsCiAg ICAgcmV0dXJuIDA7CiB9CiAKK2RybV9wdWJsaWMgaW50IGRybVN5bmNvYmpUcmFuc2ZlcihpbnQg ZmQsCisJCQkJICB1aW50MzJfdCBkc3RfaGFuZGxlLCB1aW50NjRfdCBkc3RfcG9pbnQsCisJCQkJ ICB1aW50MzJfdCBzcmNfaGFuZGxlLCB1aW50NjRfdCBzcmNfcG9pbnQsCisJCQkJICB1aW50MzJf dCBmbGFncykKK3sKKyAgICBzdHJ1Y3QgZHJtX3N5bmNvYmpfdHJhbnNmZXIgYXJnczsKKyAgICBp bnQgcmV0OworCisgICAgbWVtY2xlYXIoYXJncyk7CisgICAgYXJncy5zcmNfaGFuZGxlID0gc3Jj X2hhbmRsZTsKKyAgICBhcmdzLmRzdF9oYW5kbGUgPSBkc3RfaGFuZGxlOworICAgIGFyZ3Muc3Jj X3BvaW50ID0gc3JjX3BvaW50OworICAgIGFyZ3MuZHN0X3BvaW50ID0gZHN0X3BvaW50OworICAg IGFyZ3MuZmxhZ3MgPSBmbGFnczsKKworICAgIHJldCA9IGRybUlvY3RsKGZkLCBEUk1fSU9DVExf U1lOQ09CSl9UUkFOU0ZFUiwgJmFyZ3MpOwogCisgICAgcmV0dXJuIHJldDsKK30KZGlmZiAtLWdp dCBhL3hmODZkcm0uaCBiL3hmODZkcm0uaAppbmRleCA2MGM3YTg0Zi4uM2ZiMWQxY2EgMTAwNjQ0 Ci0tLSBhL3hmODZkcm0uaAorKysgYi94Zjg2ZHJtLmgKQEAgLTg3NiwxMiArODc2LDE4IEBAIGV4 dGVybiBpbnQgZHJtU3luY29ialdhaXQoaW50IGZkLCB1aW50MzJfdCAqaGFuZGxlcywgdW5zaWdu ZWQgbnVtX2hhbmRsZXMsCiAJCQkgIHVpbnQzMl90ICpmaXJzdF9zaWduYWxlZCk7CiBleHRlcm4g aW50IGRybVN5bmNvYmpSZXNldChpbnQgZmQsIGNvbnN0IHVpbnQzMl90ICpoYW5kbGVzLCB1aW50 MzJfdCBoYW5kbGVfY291bnQpOwogZXh0ZXJuIGludCBkcm1TeW5jb2JqU2lnbmFsKGludCBmZCwg Y29uc3QgdWludDMyX3QgKmhhbmRsZXMsIHVpbnQzMl90IGhhbmRsZV9jb3VudCk7CitleHRlcm4g aW50IGRybVN5bmNvYmpUaW1lbGluZVNpZ25hbChpbnQgZmQsIGNvbnN0IHVpbnQzMl90ICpoYW5k bGVzLAorCQkJCSAgICB1aW50NjRfdCAqcG9pbnRzLCB1aW50MzJfdCBoYW5kbGVfY291bnQpOwog ZXh0ZXJuIGludCBkcm1TeW5jb2JqVGltZWxpbmVXYWl0KGludCBmZCwgdWludDMyX3QgKmhhbmRs ZXMsIHVpbnQ2NF90ICpwb2ludHMsCiAJCQkJICB1bnNpZ25lZCBudW1faGFuZGxlcywKIAkJCQkg IGludDY0X3QgdGltZW91dF9uc2VjLCB1bnNpZ25lZCBmbGFncywKIAkJCQkgIHVpbnQzMl90ICpm aXJzdF9zaWduYWxlZCk7CiBleHRlcm4gaW50IGRybVN5bmNvYmpRdWVyeShpbnQgZmQsIHVpbnQz Ml90ICpoYW5kbGVzLCB1aW50NjRfdCAqcG9pbnRzLAogCQkJICAgdWludDMyX3QgaGFuZGxlX2Nv dW50KTsKK2V4dGVybiBpbnQgZHJtU3luY29ialRyYW5zZmVyKGludCBmZCwKKwkJCSAgICAgIHVp bnQzMl90IGRzdF9oYW5kbGUsIHVpbnQ2NF90IGRzdF9wb2ludCwKKwkJCSAgICAgIHVpbnQzMl90 IHNyY19oYW5kbGUsIHVpbnQ2NF90IHNyY19wb2ludCwKKwkJCSAgICAgIHVpbnQzMl90IGZsYWdz KTsKIAogI2lmIGRlZmluZWQoX19jcGx1c3BsdXMpCiB9CmNvbW1pdCA0NmY5MzBkOTYyYjYwMTA5 ZDM4NzYzMjRjOTVhOWZmMWI4MGEzZjRlCkF1dGhvcjogQ2h1bm1pbmcgWmhvdSA8ZGF2aWQxLnpo b3VAYW1kLmNvbT4KRGF0ZTogICBUaHUgTWF5IDE2IDE2OjA3OjEwIDIwMTkgKzA4MDAKCiAgICB3 cmFwIHN5bmNvYmogdGltZWxpbmUgcXVlcnkvd2FpdCBBUElzIGZvciBhbWRncHUgdjMKICAgIAog ICAgdjI6IHN5bWJvcyBhcmUgc3RvcmVkIGluIGxleGljYWwgb3JkZXIuCiAgICB2MzogZHJvcCBl eHBvcnQvaW1wb3J0IGFuZCBleHRyYSBxdWVyeSBpbmRpcmVjdGlvbgogICAgCiAgICBTaWduZWQt b2ZmLWJ5OiBDaHVubWluZyBaaG91IDxkYXZpZDEuemhvdUBhbWQuY29tPgogICAgQWNrZWQtYnk6 IENocmlzdGlhbiBLw7ZuaWcgPGNocmlzdGlhbi5rb2VuaWdAYW1kLmNvbT4KICAgIEFja2VkLWJ5 OiBMaW9uZWwgTGFuZHdlcmxpbiA8bGlvbmVsLmcubGFuZHdlcmxpbkBpbnRlbC5jb20+CgpkaWZm IC0tZ2l0IGEvYW1kZ3B1L2FtZGdwdS1zeW1ib2wtY2hlY2sgYi9hbWRncHUvYW1kZ3B1LXN5bWJv bC1jaGVjawppbmRleCA0ZDgwNjkyMi4uZDNjNWJiODkgMTAwNzU1Ci0tLSBhL2FtZGdwdS9hbWRn cHUtc3ltYm9sLWNoZWNrCisrKyBiL2FtZGdwdS9hbWRncHUtc3ltYm9sLWNoZWNrCkBAIC01Myw4 ICs1MywxMCBAQCBhbWRncHVfY3Nfc3VibWl0X3JhdwogYW1kZ3B1X2NzX3N1Ym1pdF9yYXcyCiBh bWRncHVfY3Nfc3luY29ial9leHBvcnRfc3luY19maWxlCiBhbWRncHVfY3Nfc3luY29ial9pbXBv cnRfc3luY19maWxlCithbWRncHVfY3Nfc3luY29ial9xdWVyeQogYW1kZ3B1X2NzX3N5bmNvYmpf cmVzZXQKIGFtZGdwdV9jc19zeW5jb2JqX3NpZ25hbAorYW1kZ3B1X2NzX3N5bmNvYmpfdGltZWxp bmVfd2FpdAogYW1kZ3B1X2NzX3N5bmNvYmpfd2FpdAogYW1kZ3B1X2NzX3dhaXRfZmVuY2VzCiBh bWRncHVfY3Nfd2FpdF9zZW1hcGhvcmUKZGlmZiAtLWdpdCBhL2FtZGdwdS9hbWRncHUuaCBiL2Ft ZGdwdS9hbWRncHUuaAppbmRleCBjNDRhNDk1YS4uNWViZmUxZTMgMTAwNjQ0Ci0tLSBhL2FtZGdw dS9hbWRncHUuaAorKysgYi9hbWRncHUvYW1kZ3B1LmgKQEAgLTE1MzcsNiArMTUzNyw0NSBAQCBp bnQgYW1kZ3B1X2NzX3N5bmNvYmpfd2FpdChhbWRncHVfZGV2aWNlX2hhbmRsZSBkZXYsCiAJCQkg ICB1aW50MzJfdCAqZmlyc3Rfc2lnbmFsZWQpOwogCiAvKioKKyAqICBXYWl0IGZvciBvbmUgb3Ig YWxsIHN5bmMgb2JqZWN0cyBvbiB0aGVpciBwb2ludHMgdG8gc2lnbmFsLgorICoKKyAqIFxwYXJh bSAgIGRldgkgICAgLSBcYyBbaW5dIHNlbGYtZXhwbGFuYXRvcnkKKyAqIFxwYXJhbSAgIGhhbmRs ZXMgLSBcYyBbaW5dIGFycmF5IG9mIHN5bmMgb2JqZWN0IGhhbmRsZXMKKyAqIFxwYXJhbSAgIHBv aW50cyAtIFxjIFtpbl0gYXJyYXkgb2Ygc3luYyBwb2ludHMgdG8gd2FpdAorICogXHBhcmFtICAg bnVtX2hhbmRsZXMgLSBcYyBbaW5dIHNlbGYtZXhwbGFuYXRvcnkKKyAqIFxwYXJhbSAgIHRpbWVv dXRfbnNlYyAtIFxjIFtpbl0gc2VsZi1leHBsYW5hdG9yeQorICogXHBhcmFtICAgZmxhZ3MgICAt IFxjIFtpbl0gYSBiaXRtYXNrIG9mIERSTV9TWU5DT0JKX1dBSVRfRkxBR1NfKgorICogXHBhcmFt ICAgZmlyc3Rfc2lnbmFsZWQgLSBcYyBbaW5dIHNlbGYtZXhwbGFuYXRvcnkKKyAqCisgKiBccmV0 dXJuICAgMCBvbiBzdWNjZXNzXG4KKyAqICAgICAgICAgIC1FVElNRSAtIFRpbWVvdXQKKyAqICAg ICAgICAgIDwwIC0gTmVnYXRpdmUgUE9TSVggRXJyb3IgY29kZQorICoKKyAqLworaW50IGFtZGdw dV9jc19zeW5jb2JqX3RpbWVsaW5lX3dhaXQoYW1kZ3B1X2RldmljZV9oYW5kbGUgZGV2LAorCQkJ CSAgICB1aW50MzJfdCAqaGFuZGxlcywgdWludDY0X3QgKnBvaW50cywKKwkJCQkgICAgdW5zaWdu ZWQgbnVtX2hhbmRsZXMsCisJCQkJICAgIGludDY0X3QgdGltZW91dF9uc2VjLCB1bnNpZ25lZCBm bGFncywKKwkJCQkgICAgdWludDMyX3QgKmZpcnN0X3NpZ25hbGVkKTsKKy8qKgorICogIFF1ZXJ5 IHN5bmMgb2JqZWN0cyBwYXlsb2Fkcy4KKyAqCisgKiBccGFyYW0gICBkZXYJICAgIC0gXGMgW2lu XSBzZWxmLWV4cGxhbmF0b3J5CisgKiBccGFyYW0gICBoYW5kbGVzIC0gXGMgW2luXSBhcnJheSBv ZiBzeW5jIG9iamVjdCBoYW5kbGVzCisgKiBccGFyYW0gICBwb2ludHMgLSBcYyBbb3V0XSBhcnJh eSBvZiBzeW5jIHBvaW50cyByZXR1cm5lZCwgd2hpY2ggcHJlc2VudHMKKyAqIHN5bmNvYmogcGF5 bG9hZC4KKyAqIFxwYXJhbSAgIG51bV9oYW5kbGVzIC0gXGMgW2luXSBzZWxmLWV4cGxhbmF0b3J5 CisgKgorICogXHJldHVybiAgIDAgb24gc3VjY2Vzc1xuCisgKiAgICAgICAgICAtRVRJTUUgLSBU aW1lb3V0CisgKiAgICAgICAgICA8MCAtIE5lZ2F0aXZlIFBPU0lYIEVycm9yIGNvZGUKKyAqCisg Ki8KK2ludCBhbWRncHVfY3Nfc3luY29ial9xdWVyeShhbWRncHVfZGV2aWNlX2hhbmRsZSBkZXYs CisJCQkgICAgdWludDMyX3QgKmhhbmRsZXMsIHVpbnQ2NF90ICpwb2ludHMsCisJCQkgICAgdW5z aWduZWQgbnVtX2hhbmRsZXMpOworCisvKioKICAqICBFeHBvcnQga2VybmVsIHN5bmMgb2JqZWN0 IHRvIHNoYXJlYWJsZSBmZC4KICAqCiAgKiBccGFyYW0gICBkZXYJICAgICAgIC0gXGMgW2luXSBk ZXZpY2UgaGFuZGxlCmRpZmYgLS1naXQgYS9hbWRncHUvYW1kZ3B1X2NzLmMgYi9hbWRncHUvYW1k Z3B1X2NzLmMKaW5kZXggN2M1YjlkMTMuLjlmY2FmMmM0IDEwMDY0NAotLS0gYS9hbWRncHUvYW1k Z3B1X2NzLmMKKysrIGIvYW1kZ3B1L2FtZGdwdV9jcy5jCkBAIC02ODYsNiArNjg2LDI5IEBAIGRy bV9wdWJsaWMgaW50IGFtZGdwdV9jc19zeW5jb2JqX3dhaXQoYW1kZ3B1X2RldmljZV9oYW5kbGUg ZGV2LAogCQkJICAgICAgZmxhZ3MsIGZpcnN0X3NpZ25hbGVkKTsKIH0KIAorZHJtX3B1YmxpYyBp bnQgYW1kZ3B1X2NzX3N5bmNvYmpfdGltZWxpbmVfd2FpdChhbWRncHVfZGV2aWNlX2hhbmRsZSBk ZXYsCisJCQkJCSAgICAgICB1aW50MzJfdCAqaGFuZGxlcywgdWludDY0X3QgKnBvaW50cywKKwkJ CQkJICAgICAgIHVuc2lnbmVkIG51bV9oYW5kbGVzLAorCQkJCQkgICAgICAgaW50NjRfdCB0aW1l b3V0X25zZWMsIHVuc2lnbmVkIGZsYWdzLAorCQkJCQkgICAgICAgdWludDMyX3QgKmZpcnN0X3Np Z25hbGVkKQoreworCWlmIChOVUxMID09IGRldikKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlyZXR1 cm4gZHJtU3luY29ialRpbWVsaW5lV2FpdChkZXYtPmZkLCBoYW5kbGVzLCBwb2ludHMsIG51bV9o YW5kbGVzLAorCQkJCSAgICAgIHRpbWVvdXRfbnNlYywgZmxhZ3MsIGZpcnN0X3NpZ25hbGVkKTsK K30KKworZHJtX3B1YmxpYyBpbnQgYW1kZ3B1X2NzX3N5bmNvYmpfcXVlcnkoYW1kZ3B1X2Rldmlj ZV9oYW5kbGUgZGV2LAorCQkJCSAgICAgICB1aW50MzJfdCAqaGFuZGxlcywgdWludDY0X3QgKnBv aW50cywKKwkJCQkgICAgICAgdW5zaWduZWQgbnVtX2hhbmRsZXMpCit7CisJaWYgKE5VTEwgPT0g ZGV2KQorCQlyZXR1cm4gLUVJTlZBTDsKKworCXJldHVybiBkcm1TeW5jb2JqUXVlcnkoZGV2LT5m ZCwgaGFuZGxlcywgcG9pbnRzLCBudW1faGFuZGxlcyk7Cit9CisKIGRybV9wdWJsaWMgaW50IGFt ZGdwdV9jc19leHBvcnRfc3luY29iaihhbWRncHVfZGV2aWNlX2hhbmRsZSBkZXYsCiAJCQkJCXVp bnQzMl90IGhhbmRsZSwKIAkJCQkJaW50ICpzaGFyZWRfZmQpCmNvbW1pdCBlYzZhZTUxZTgwN2Ux N2YwMDQ1N2M5N2ZjNjBiYzVhYzU1ZDMwMjFkCkF1dGhvcjogQ2h1bm1pbmcgWmhvdSA8ZGF2aWQx Lnpob3VAYW1kLmNvbT4KRGF0ZTogICBUaHUgTWF5IDE2IDE2OjA3OjA5IDIwMTkgKzA4MDAKCiAg ICBhZGQgdGltZWxpbmUgd2FpdC9xdWVyeSBpb2N0bCB2MgogICAgCiAgICB2MjogZHJvcCBleHBv cnQvaW1wb3J0CiAgICAKICAgIFNpZ25lZC1vZmYtYnk6IENodW5taW5nIFpob3UgPGRhdmlkMS56 aG91QGFtZC5jb20+CiAgICBSZXZpZXdlZC1ieTogTGlvbmVsIExhbmR3ZXJsaW4gPGxpb25lbC5n LmxhbmR3ZXJsaW5AaW50ZWwuY29tPgoKZGlmZiAtLWdpdCBhL3hmODZkcm0uYyBiL3hmODZkcm0u YwppbmRleCAyYzE5Mzc2Yi4uMWE3MTdmMDIgMTAwNjQ0Ci0tLSBhL3hmODZkcm0uYworKysgYi94 Zjg2ZHJtLmMKQEAgLTQyNTYsMyArNDI1Niw0NyBAQCBkcm1fcHVibGljIGludCBkcm1TeW5jb2Jq U2lnbmFsKGludCBmZCwgY29uc3QgdWludDMyX3QgKmhhbmRsZXMsCiAgICAgcmV0ID0gZHJtSW9j dGwoZmQsIERSTV9JT0NUTF9TWU5DT0JKX1NJR05BTCwgJmFyZ3MpOwogICAgIHJldHVybiByZXQ7 CiB9CisKK2RybV9wdWJsaWMgaW50IGRybVN5bmNvYmpUaW1lbGluZVdhaXQoaW50IGZkLCB1aW50 MzJfdCAqaGFuZGxlcywgdWludDY0X3QgKnBvaW50cywKKwkJCQkgICAgICB1bnNpZ25lZCBudW1f aGFuZGxlcywKKwkJCQkgICAgICBpbnQ2NF90IHRpbWVvdXRfbnNlYywgdW5zaWduZWQgZmxhZ3Ms CisJCQkJICAgICAgdWludDMyX3QgKmZpcnN0X3NpZ25hbGVkKQoreworICAgIHN0cnVjdCBkcm1f c3luY29ial90aW1lbGluZV93YWl0IGFyZ3M7CisgICAgaW50IHJldDsKKworICAgIG1lbWNsZWFy KGFyZ3MpOworICAgIGFyZ3MuaGFuZGxlcyA9ICh1aW50cHRyX3QpaGFuZGxlczsKKyAgICBhcmdz LnBvaW50cyA9ICh1aW50cHRyX3QpcG9pbnRzOworICAgIGFyZ3MudGltZW91dF9uc2VjID0gdGlt ZW91dF9uc2VjOworICAgIGFyZ3MuY291bnRfaGFuZGxlcyA9IG51bV9oYW5kbGVzOworICAgIGFy Z3MuZmxhZ3MgPSBmbGFnczsKKworICAgIHJldCA9IGRybUlvY3RsKGZkLCBEUk1fSU9DVExfU1lO Q09CSl9USU1FTElORV9XQUlULCAmYXJncyk7CisgICAgaWYgKHJldCA8IDApCisgICAgICAgIHJl dHVybiAtZXJybm87CisKKyAgICBpZiAoZmlyc3Rfc2lnbmFsZWQpCisgICAgICAgICpmaXJzdF9z aWduYWxlZCA9IGFyZ3MuZmlyc3Rfc2lnbmFsZWQ7CisgICAgcmV0dXJuIHJldDsKK30KKworCitk cm1fcHVibGljIGludCBkcm1TeW5jb2JqUXVlcnkoaW50IGZkLCB1aW50MzJfdCAqaGFuZGxlcywg dWludDY0X3QgKnBvaW50cywKKwkJCSAgICAgICB1aW50MzJfdCBoYW5kbGVfY291bnQpCit7Cisg ICAgc3RydWN0IGRybV9zeW5jb2JqX3RpbWVsaW5lX2FycmF5IGFyZ3M7CisgICAgaW50IHJldDsK KworICAgIG1lbWNsZWFyKGFyZ3MpOworICAgIGFyZ3MuaGFuZGxlcyA9ICh1aW50cHRyX3QpaGFu ZGxlczsKKyAgICBhcmdzLnBvaW50cyA9ICh1aW50cHRyX3QpcG9pbnRzOworICAgIGFyZ3MuY291 bnRfaGFuZGxlcyA9IGhhbmRsZV9jb3VudDsKKworICAgIHJldCA9IGRybUlvY3RsKGZkLCBEUk1f SU9DVExfU1lOQ09CSl9RVUVSWSwgJmFyZ3MpOworICAgIGlmIChyZXQpCisgICAgICAgIHJldHVy biByZXQ7CisgICAgcmV0dXJuIDA7Cit9CisKKwpkaWZmIC0tZ2l0IGEveGY4NmRybS5oIGIveGY4 NmRybS5oCmluZGV4IDg4N2VjYzc2Li42MGM3YTg0ZiAxMDA2NDQKLS0tIGEveGY4NmRybS5oCisr KyBiL3hmODZkcm0uaApAQCAtODc2LDYgKzg3NiwxMiBAQCBleHRlcm4gaW50IGRybVN5bmNvYmpX YWl0KGludCBmZCwgdWludDMyX3QgKmhhbmRsZXMsIHVuc2lnbmVkIG51bV9oYW5kbGVzLAogCQkJ ICB1aW50MzJfdCAqZmlyc3Rfc2lnbmFsZWQpOwogZXh0ZXJuIGludCBkcm1TeW5jb2JqUmVzZXQo aW50IGZkLCBjb25zdCB1aW50MzJfdCAqaGFuZGxlcywgdWludDMyX3QgaGFuZGxlX2NvdW50KTsK IGV4dGVybiBpbnQgZHJtU3luY29ialNpZ25hbChpbnQgZmQsIGNvbnN0IHVpbnQzMl90ICpoYW5k bGVzLCB1aW50MzJfdCBoYW5kbGVfY291bnQpOworZXh0ZXJuIGludCBkcm1TeW5jb2JqVGltZWxp bmVXYWl0KGludCBmZCwgdWludDMyX3QgKmhhbmRsZXMsIHVpbnQ2NF90ICpwb2ludHMsCisJCQkJ ICB1bnNpZ25lZCBudW1faGFuZGxlcywKKwkJCQkgIGludDY0X3QgdGltZW91dF9uc2VjLCB1bnNp Z25lZCBmbGFncywKKwkJCQkgIHVpbnQzMl90ICpmaXJzdF9zaWduYWxlZCk7CitleHRlcm4gaW50 IGRybVN5bmNvYmpRdWVyeShpbnQgZmQsIHVpbnQzMl90ICpoYW5kbGVzLCB1aW50NjRfdCAqcG9p bnRzLAorCQkJICAgdWludDMyX3QgaGFuZGxlX2NvdW50KTsKIAogI2lmIGRlZmluZWQoX19jcGx1 c3BsdXMpCiB9CmNvbW1pdCA2NDJlYzdmYzM0NGZhZjExYTI5MzNkMDk0Y2MzMTg0YzJiOGYwMTI2 CkF1dGhvcjogQ2h1bm1pbmcgWmhvdSA8ZGF2aWQxLnpob3VAYW1kLmNvbT4KRGF0ZTogICBUaHUg TWF5IDE2IDE2OjA3OjA4IDIwMTkgKzA4MDAKCiAgICBhZGQgY3MgY2h1bmsgZm9yIHN5bmNvYmog dGltZWxpbmUKICAgIAogICAgU2lnbmVkLW9mZi1ieTogQ2h1bm1pbmcgWmhvdSA8ZGF2aWQxLnpo b3VAYW1kLmNvbT4KICAgIEFja2VkLWJ5OiBMaW9uZWwgTGFuZHdlcmxpbiA8bGlvbmVsLmcubGFu ZHdlcmxpbkBpbnRlbC5jb20+CgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vYW1kZ3B1X2RybS5o IGIvaW5jbHVkZS9kcm0vYW1kZ3B1X2RybS5oCmluZGV4IGQwNzAxZmZjLi4zZDAzMThlNiAxMDA2 NDQKLS0tIGEvaW5jbHVkZS9kcm0vYW1kZ3B1X2RybS5oCisrKyBiL2luY2x1ZGUvZHJtL2FtZGdw dV9kcm0uaApAQCAtNTI4LDYgKzUyOCw4IEBAIHN0cnVjdCBkcm1fYW1kZ3B1X2dlbV92YSB7CiAj ZGVmaW5lIEFNREdQVV9DSFVOS19JRF9TWU5DT0JKX09VVCAgICAgMHgwNQogI2RlZmluZSBBTURH UFVfQ0hVTktfSURfQk9fSEFORExFUyAgICAgIDB4MDYKICNkZWZpbmUgQU1ER1BVX0NIVU5LX0lE X1NDSEVEVUxFRF9ERVBFTkRFTkNJRVMJMHgwNworI2RlZmluZSBBTURHUFVfQ0hVTktfSURfU1lO Q09CSl9USU1FTElORV9XQUlUICAgIDB4MDgKKyNkZWZpbmUgQU1ER1BVX0NIVU5LX0lEX1NZTkNP QkpfVElNRUxJTkVfU0lHTkFMICAweDA5CiAKIHN0cnVjdCBkcm1fYW1kZ3B1X2NzX2NodW5rIHsK IAlfX3UzMgkJY2h1bmtfaWQ7CkBAIC02MDgsNiArNjEwLDEzIEBAIHN0cnVjdCBkcm1fYW1kZ3B1 X2NzX2NodW5rX3NlbSB7CiAJX191MzIgaGFuZGxlOwogfTsKIAorc3RydWN0IGRybV9hbWRncHVf Y3NfY2h1bmtfc3luY29iaiB7CisJX191MzIgaGFuZGxlOworCV9fdTMyIGZsYWdzOworCV9fdTY0 IHBvaW50OworfTsKKworCiAjZGVmaW5lIEFNREdQVV9GRU5DRV9UT19IQU5ETEVfR0VUX1NZTkNP QkoJMAogI2RlZmluZSBBTURHUFVfRkVOQ0VfVE9fSEFORExFX0dFVF9TWU5DT0JKX0ZECTEKICNk ZWZpbmUgQU1ER1BVX0ZFTkNFX1RPX0hBTkRMRV9HRVRfU1lOQ19GSUxFX0ZECTIKCgotLQpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpEcmktcGF0Y2hlcyBt YWlsaW5nIGxpc3QKRHJpLXBhdGNoZXNAbGlzdHMuc291cmNlZm9yZ2UubmV0Cmh0dHBzOi8vbGlz dHMuc291cmNlZm9yZ2UubmV0L2xpc3RzL2xpc3RpbmZvL2RyaS1wYXRjaGVzCg==