From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-1.0 required=5.0 tests=ALL_TRUSTED autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 24168 invoked from network); 12 Jan 2023 20:38:59 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 12 Jan 2023 20:38:59 -0000 Content-Type: multipart/mixed; boundary="===============1440185691561564373==" MIME-Version: 1.0 Subject: =?utf8?q?Re=3A_=5BPR_PATCH=5D_=5BUpdated=5D_chromium=3A_update_to_109=2E0=2E5414=2E74=2E?= To: ml@inbox.vuxu.org From: Duncaen Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Thu, 12 Jan 2023 21:38:58 +0100 List-Id: Message-ID: <20230112203858.berKH_5k_ERHji7XV5w3kYTV3Jg3NEjmhG2Mmnc4dss@z> GitHub notification mails are now in MIME to allow UTF8. --===============1440185691561564373== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgRHVuY2FlbiBhZ2FpbnN0IG1hc3Rl ciBvbiB0aGUgdm9pZC1wYWNrYWdlcyByZXBvc2l0b3J5CgpodHRwczovL2dpdGh1Yi5jb20vRHVu Y2Flbi92b2lkLXBhY2thZ2VzIGNocm9taXVtLTEwOQpodHRwczovL2dpdGh1Yi5jb20vdm9pZC1s aW51eC92b2lkLXBhY2thZ2VzL3B1bGwvNDE1NzAKCmNocm9taXVtOiB1cGRhdGUgdG8gMTA5LjAu NTQxNC43NC4KW2NpIHNraXBdDQoNCiogW3hdIHg4Nl82NC1nbGliYw0KKiBbeF0geDg2XzY0LW11 c2wNCiogWyBdIGFhcmNoNjQtbXVzbA0KKiBbIF0gaTY4NgoKQSBwYXRjaCBmaWxlIGZyb20gaHR0 cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9pZC1wYWNrYWdlcy9wdWxsLzQxNTcwLnBhdGNo IGlzIGF0dGFjaGVk --===============1440185691561564373== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-chromium-109-41570.patch" RnJvbSA1N2IxNzU2M2E4YjQwZmFjN2YyZjUxYTc5ZDY0YTIzZGUxOTI4YWUzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEdW5jYWVuIDxkdW5jYWVuQHZvaWRsaW51eC5vcmc+CkRhdGU6 IFdlZCwgMTEgSmFuIDIwMjMgMDE6Mjg6NDAgKzAxMDAKU3ViamVjdDogW1BBVENIXSBjaHJvbWl1 bTogdXBkYXRlIHRvIDEwOS4wLjU0MTQuNzQuCgotLS0KIC4uLi9tdXNsLXBhdGNoZXMveHh4LXBw YzY0bGUtc3VwcG9ydC5wYXRjaCAgICB8ICAxODcgLQogLi4uL3BhdGNoZXMvYnVpbGQtYWRkLXVz ZV9jeHgxNy5wYXRjaCAgICAgICAgIHwgICAzOCArLQogLi4uL3BhdGNoZXMvZml4LWJ1aWxkLXdp dGgtb2xkLWNsYW5nLnBhdGNoICAgIHwgICAyMCArCiAuLi4vcGF0Y2hlcy9maXgtY29uc3RleHBy LW5hcnJvd2luZy5wYXRjaCAgICAgfCAgIDIxICsKIC4uLi9wYXRjaGVzL2ZpeC1tdXNsLW5vLW1h bGxpbmZvLnBhdGNoICAgICAgICB8ICAgMTEgKwogLi4uL3BhdGNoZXMvZml4LW11c2wtcHRocmVh ZC1zdGFja3NpemUucGF0Y2ggIHwgICA0MCAtCiAuLi4vY2hyb21pdW0vcGF0Y2hlcy9maXgtbmFy cm93aW5nLWNhc3QucGF0Y2ggfCAgIDM5ICstCiAuLi4vcGF0Y2hlcy9maXgtbmFzbS1tdXNsLWNv bmZpZy5wYXRjaCAgICAgICAgfCAgIDEyIC0KIC4uLi9wYXRjaGVzL211c2wtcGFydGl0aW9uLWF0 Zm9yay5wYXRjaCAgICAgICB8ICAgMTEgKwogLi4udWlsZC1lcnJvci1vbi1saW51eC13aXRoLXN5 c3RlbS16bGliLnBhdGNoIHwgICA0MSAtCiAuLi4vcGF0Y2hlcy9yZW1vdmUtc3RyaXBfYmluYXJ5 LnBhdGNoICAgICAgICAgfCAgIDMyIC0KIC4uLi9wYXRjaGVzL3h4eC1wcGM2NGxlLTRrLXBhZ2Vz LnBhdGNoICAgICAgICB8ICAgNjAgLQogLi4uL2Nocm9taXVtL3BhdGNoZXMveHh4LXBwYzY0bGUt bGlidnB4LnBhdGNoIHwgICAzMyAtCiAuLi4veHh4LXBwYzY0bGUtc2FuZGJveC1saW51eC1zdGF0 LnBhdGNoICAgICAgfCAgIDMxIC0KIC4uLi9wYXRjaGVzL3h4eC1wcGM2NGxlLXN1cHBvcnQucGF0 Y2ggICAgICAgICB8IDM1OTAgLS0tLS0tLS0tLS0tLS0tLS0KIC4uLi9wYXRjaGVzL3h4eC1wcGM2 NGxlLXN3aWZ0c2hhZGVyLnBhdGNoICAgICB8ICAgMTggLQogc3JjcGtncy9jaHJvbWl1bS90ZW1w bGF0ZSAgICAgICAgICAgICAgICAgICAgIHwgICA0NSArLQogMTcgZmlsZXMgY2hhbmdlZCwgODkg aW5zZXJ0aW9ucygrKSwgNDE0MCBkZWxldGlvbnMoLSkKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNw a2dzL2Nocm9taXVtL2ZpbGVzL211c2wtcGF0Y2hlcy94eHgtcHBjNjRsZS1zdXBwb3J0LnBhdGNo CiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2ZpeC1idWlsZC13 aXRoLW9sZC1jbGFuZy5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvY2hyb21pdW0v cGF0Y2hlcy9maXgtY29uc3RleHByLW5hcnJvd2luZy5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0 IHNyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9maXgtbXVzbC1uby1tYWxsaW5mby5wYXRjaAogZGVs ZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9maXgtbXVzbC1wdGhyZWFk LXN0YWNrc2l6ZS5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvY2hyb21pdW0vcGF0 Y2hlcy9maXgtbmFzbS1tdXNsLWNvbmZpZy5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3Br Z3MvY2hyb21pdW0vcGF0Y2hlcy9tdXNsLXBhcnRpdGlvbi1hdGZvcmsucGF0Y2gKIGRlbGV0ZSBt b2RlIDEwMDY0NCBzcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvcmUtZml4LVRGTGl0ZS1idWlsZC1l cnJvci1vbi1saW51eC13aXRoLXN5c3RlbS16bGliLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQg c3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL3JlbW92ZS1zdHJpcF9iaW5hcnkucGF0Y2gKIGRlbGV0 ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMveHh4LXBwYzY0bGUtNGstcGFn ZXMucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMveHh4 LXBwYzY0bGUtbGlidnB4LnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9jaHJvbWl1 bS9wYXRjaGVzL3h4eC1wcGM2NGxlLXNhbmRib3gtbGludXgtc3RhdC5wYXRjaAogZGVsZXRlIG1v ZGUgMTAwNjQ0IHNyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy94eHgtcHBjNjRsZS1zdXBwb3J0LnBh dGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL3h4eC1wcGM2 NGxlLXN3aWZ0c2hhZGVyLnBhdGNoCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9jaHJvbWl1bS9maWxl cy9tdXNsLXBhdGNoZXMveHh4LXBwYzY0bGUtc3VwcG9ydC5wYXRjaCBiL3NyY3BrZ3MvY2hyb21p dW0vZmlsZXMvbXVzbC1wYXRjaGVzL3h4eC1wcGM2NGxlLXN1cHBvcnQucGF0Y2gKZGVsZXRlZCBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU1NWY2OWMwNzJjOC4uMDAwMDAwMDAwMDAwCi0tLSBhL3Ny Y3BrZ3MvY2hyb21pdW0vZmlsZXMvbXVzbC1wYXRjaGVzL3h4eC1wcGM2NGxlLXN1cHBvcnQucGF0 Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxODcgKzAsMCBAQAotZGlmZiAtLWdpdCBzYW5kYm94L2xp bnV4L2JwZl9kc2wvc2VjY29tcF9tYWNyb3MuaCBzYW5kYm94L2xpbnV4L2JwZl9kc2wvc2VjY29t cF9tYWNyb3MuaAotaW5kZXggYTZhZWM1NDRlLi4yYTRhN2YxYmMgMTAwNjQ0Ci0tLS0gc2FuZGJv eC9saW51eC9icGZfZHNsL3NlY2NvbXBfbWFjcm9zLmgKLSsrKyBzYW5kYm94L2xpbnV4L2JwZl9k c2wvc2VjY29tcF9tYWNyb3MuaAotQEAgLTE2LDcgKzE2LDcgQEAKLSAjaWYgZGVmaW5lZChfX21p cHNfXykKLSAvLyBzeXMvdXNlci5oIGluIGVnbGliYyBtaXNzZXMgc2l6ZV90IGRlZmluaXRpb24K LSAjaW5jbHVkZSA8c3RkZGVmLmg+Ci0tI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotKyNl bGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykgJiYgZGVmaW5lZChfX0dMSUJDX18pCi0gLy8gTWFu dWFsbHkgZGVmaW5lIGdyZWdfdCBvbiBwcGM2NAotIHR5cGVkZWYgdW5zaWduZWQgbG9uZyBsb25n IGdyZWdfdDsKLSAjZW5kaWYKLUBAIC0zNjEsMTEgKzM2MSwxMSBAQCB0eXBlZGVmIHN0cnVjdCBw dF9yZWdzIHJlZ3Nfc3RydWN0OwotICNkZWZpbmUgU0VDQ09NUF9BUkNIIEFVRElUX0FSQ0hfUFBD NjQKLSAjZW5kaWYKLSAKLS0jZGVmaW5lIFNFQ0NPTVBfUkVHKF9jdHgsIF9yZWcpICgoX2N0eCkt PnVjX21jb250ZXh0LnJlZ3MtPmdwcltfcmVnXSkKLSsjZGVmaW5lIFNFQ0NPTVBfUkVHKF9jdHgs IF9yZWcpICgoKHN0cnVjdCBwdF9yZWdzICopKF9jdHgpLT51Y19tY29udGV4dC5yZWdzKS0+Z3By W19yZWddKQotIAotICNkZWZpbmUgU0VDQ09NUF9SRVNVTFQoX2N0eCkgU0VDQ09NUF9SRUcoX2N0 eCwgMykKLSAjZGVmaW5lIFNFQ0NPTVBfU1lTQ0FMTChfY3R4KSBTRUNDT01QX1JFRyhfY3R4LCAw KQotLSNkZWZpbmUgU0VDQ09NUF9JUChfY3R4KSAoX2N0eCktPnVjX21jb250ZXh0LnJlZ3MtPm5p cAotKyNkZWZpbmUgU0VDQ09NUF9JUChfY3R4KSAoKHN0cnVjdCBwdF9yZWdzICopKF9jdHgpLT51 Y19tY29udGV4dC5yZWdzKS0+bmlwCi0gI2RlZmluZSBTRUNDT01QX1BBUk0xKF9jdHgpIFNFQ0NP TVBfUkVHKF9jdHgsIDMpCi0gI2RlZmluZSBTRUNDT01QX1BBUk0yKF9jdHgpIFNFQ0NPTVBfUkVH KF9jdHgsIDQpCi0gI2RlZmluZSBTRUNDT01QX1BBUk0zKF9jdHgpIFNFQ0NPTVBfUkVHKF9jdHgs IDUpCi1kaWZmIC0tZ2l0IHNhbmRib3gvbGludXgvc2VjY29tcC1icGYvc3lzY2FsbC5jYyBzYW5k Ym94L2xpbnV4L3NlY2NvbXAtYnBmL3N5c2NhbGwuY2MKLWluZGV4IGQ1M2E3ZmY1Ni4uYzI5MGYw ZTkyIDEwMDY0NAotLS0tIHNhbmRib3gvbGludXgvc2VjY29tcC1icGYvc3lzY2FsbC5jYwotKysr IHNhbmRib3gvbGludXgvc2VjY29tcC1icGYvc3lzY2FsbC5jYwotQEAgLTQ5OSw5ICs0OTksOSBA QCB2b2lkIFN5c2NhbGw6OlB1dFZhbHVlSW5VY29udGV4dChpbnRwdHJfdCByZXRfdmFsLCB1Y29u dGV4dF90KiBjdHgpIHsKLSAgIC8vIFNhbWUgYXMgTUlQUywgbmVlZCB0byBpbnZlcnQgcmV0IGFu ZCBzZXQgZXJyb3IgcmVnaXN0ZXIgKGNyMC5TTykKLSAgIGlmIChyZXRfdmFsIDw9IC0xICYmIHJl dF92YWwgPj0gLTQwOTUpIHsKLSAgICAgcmV0X3ZhbCA9IC1yZXRfdmFsOwotLSAgICBjdHgtPnVj X21jb250ZXh0LnJlZ3MtPmNjciB8PSAoMSA8PCAyOCk7Ci0rICAgICgoc3RydWN0IHB0X3JlZ3Mg KiljdHgtPnVjX21jb250ZXh0LnJlZ3MpLT5jY3IgfD0gKDEgPDwgMjgpOwotICAgfSBlbHNlIHsK LS0gICAgY3R4LT51Y19tY29udGV4dC5yZWdzLT5jY3IgJj0gfigxIDw8IDI4KTsKLSsgICAgKChz dHJ1Y3QgcHRfcmVncyAqKWN0eC0+dWNfbWNvbnRleHQucmVncyktPmNjciAmPSB+KDEgPDwgMjgp OwotICAgfQotICNlbmRpZgotICAgU0VDQ09NUF9SRVNVTFQoY3R4KSA9IHN0YXRpY19jYXN0PGdy ZWdfdD4ocmV0X3ZhbCk7Ci0tLS0gdGhpcmRfcGFydHkvYWJzZWlsLWNwcC9hYnNsL2Jhc2UvaW50 ZXJuYWwvdW5zY2FsZWRjeWNsZWNsb2NrX2NvbmZpZy5oCi0rKysgdGhpcmRfcGFydHkvYWJzZWls LWNwcC9hYnNsL2Jhc2UvaW50ZXJuYWwvdW5zY2FsZWRjeWNsZWNsb2NrX2NvbmZpZy5oCi1AQCAt MjIsNiArMjIsNyBAQAotIC8vIFRoZSBmb2xsb3dpbmcgcGxhdGZvcm1zIGhhdmUgYW4gaW1wbGVt ZW50YXRpb24gb2YgYSBoYXJkd2FyZSBjb3VudGVyLgotICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8 fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19hYXJjaDY0X18pIHx8IFwKLSAgICAg ZGVmaW5lZChfX3Bvd2VycGNfXykgfHwgZGVmaW5lZChfX3BwY19fKSB8fCBkZWZpbmVkKF9fcmlz Y3YpIHx8ICAgICBcCi0rICAgICgoZGVmaW5lZChfX3Bvd2VycGNfXykgfHwgZGVmaW5lZChfX3Bw Y19fKSkgJiYgZGVmaW5lZChfX0dMSUJDX18pKSB8fCBkZWZpbmVkKF9fcmlzY3YpIHx8ICAgICBc Ci0gICAgIGRlZmluZWQoX01fSVg4NikgfHwgKGRlZmluZWQoX01fWDY0KSAmJiAhZGVmaW5lZChf TV9BUk02NEVDKSkKLSAjZGVmaW5lIEFCU0xfSEFWRV9VTlNDQUxFRF9DWUNMRUNMT0NLX0lNUExF TUVOVEFUSU9OIDEKLSAjZWxzZQotLS0tIHRoaXJkX3BhcnR5L2Fic2VpbC1jcHAvYWJzbC9kZWJ1 Z2dpbmcvaW50ZXJuYWwvc3RhY2t0cmFjZV9jb25maWcuaAotKysrIHRoaXJkX3BhcnR5L2Fic2Vp bC1jcHAvYWJzbC9kZWJ1Z2dpbmcvaW50ZXJuYWwvc3RhY2t0cmFjZV9jb25maWcuaAotQEAgLTY0 LDcgKzY0LDcgQEAKLSAjZWxpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0 X18pCi0gI2RlZmluZSBBQlNMX1NUQUNLVFJBQ0VfSU5MX0hFQURFUiBcCi0gICAiYWJzbC9kZWJ1 Z2dpbmcvaW50ZXJuYWwvc3RhY2t0cmFjZV94ODYtaW5sLmluYyIKLS0jZWxpZiBkZWZpbmVkKF9f cHBjX18pIHx8IGRlZmluZWQoX19QUENfXykKLSsjZWxpZiAoZGVmaW5lZChfX3BwY19fKSB8fCBk ZWZpbmVkKF9fUFBDX18pKSAmJiBkZWZpbmVkKF9fR0xJQkNfXykKLSAjZGVmaW5lIEFCU0xfU1RB Q0tUUkFDRV9JTkxfSEVBREVSIFwKLSAgICJhYnNsL2RlYnVnZ2luZy9pbnRlcm5hbC9zdGFja3Ry YWNlX3Bvd2VycGMtaW5sLmluYyIKLSAjZWxpZiBkZWZpbmVkKF9fYWFyY2g2NF9fKQotZGlmZiAt LWdpdCB0aGlyZF9wYXJ0eS9icmVha3BhZC9CVUlMRC5nbiB0aGlyZF9wYXJ0eS9icmVha3BhZC9C VUlMRC5nbgotaW5kZXggZjlhNjBlMzcuLjI1ZjNhMGI3IDEwMDY0NAotLS0tIHRoaXJkX3BhcnR5 L2JyZWFrcGFkL0JVSUxELmduCi0rKysgdGhpcmRfcGFydHkvYnJlYWtwYWQvQlVJTEQuZ24KLUBA IC02MzcsNiArNjM3LDcgQEAgaWYgKGlzX2xpbnV4IHx8IGlzX2FuZHJvaWQpIHsKLSAKLSAgICAg aWYgKGN1cnJlbnRfY3B1ID09ICJwcGM2NCIpIHsKLSAgICAgICAgIGRlZmluZXMgPSBbICJIQVZF X0dFVENPTlRFWFQiIF0KLSsgICAgICAgIGxpYnMgKz0gWyAidWNvbnRleHQiIF0KLSAgICAgfSBl bHNlIHsKLSAgICAgICAgIHNvdXJjZXMgKz0gWwotICAgICAgICAgICAgICJicmVha3BhZC9zcmMv Y29tbW9uL2xpbnV4L2JyZWFrcGFkX2dldGNvbnRleHQuUyIKLWRpZmYgLS1naXQgdGhpcmRfcGFy dHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21tb24v dGhyZWFkX2luZm8uY2MgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9s aW51eC9kdW1wX3dyaXRlcl9jb21tb24vdGhyZWFkX2luZm8uY2MKLWluZGV4IDAzYWZlYzdhLi4w MjY0ZWNmMSAxMDA2NDQKLS0tLSB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xp ZW50L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1vbi90aHJlYWRfaW5mby5jYwotKysrIHRoaXJkX3Bh cnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvZHVtcF93cml0ZXJfY29tbW9u L3RocmVhZF9pbmZvLmNjCi1AQCAtMjczLDYgKzI3Myw5IEBAIHZvaWQgVGhyZWFkSW5mbzo6Rmls bENQVUNvbnRleHQoUmF3Q29udGV4dENQVSogb3V0KSBjb25zdCB7Ci0gCi0gI2VsaWYgZGVmaW5l ZChfX3Bvd2VycGM2NF9fKQotIAotKyNpbmNsdWRlIDxhc20vZWxmLmg+Ci0rI2luY2x1ZGUgPGFz bS9wdHJhY2UuaD4KLSsKLSB1aW50cHRyX3QgVGhyZWFkSW5mbzo6R2V0SW5zdHJ1Y3Rpb25Qb2lu dGVyKCkgY29uc3QgewotICAgICByZXR1cm4gbWNvbnRleHQuZ3BfcmVnc1tQVF9OSVBdOwotIH0K LUBAIC0yOTAsOSArMjkzLDkgQEAgdm9pZCBUaHJlYWRJbmZvOjpGaWxsQ1BVQ29udGV4dChSYXdD b250ZXh0Q1BVKiBvdXQpIGNvbnN0IHsKLSAgICAgb3V0LT5jdHIgPSBtY29udGV4dC5ncF9yZWdz W1BUX0NUUl07Ci0gICAgIAotICAgICBmb3IgKGludCBpID0gMDsgaSA8IE1EX0ZMT0FUSU5HU0FW RUFSRUFfUFBDX0ZQUl9DT1VOVDsgaSsrKQotLSAgICAgICAgb3V0LT5mbG9hdF9zYXZlLmZwcmVn c1tpXSA9IG1jb250ZXh0LmZwX3JlZ3NbaV07Ci0rICAgICAgICBvdXQtPmZsb2F0X3NhdmUuZnBy ZWdzW2ldID0gKCh1aW50NjRfdCAqKSZtY29udGV4dC5mcF9yZWdzKVtpXTsKLSAKLS0gICAgb3V0 LT5mbG9hdF9zYXZlLmZwc2NyID0gbWNvbnRleHQuZnBfcmVnc1tORlBSRUctMV07Ci0rICAgIG91 dC0+ZmxvYXRfc2F2ZS5mcHNjciA9ICgodWludDY0X3QgKikmbWNvbnRleHQuZnBfcmVncylbRUxG X05GUFJFRy0xXTsKLSAKLSAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBNRF9WRUNUT1JTQVZFQVJF QV9QUENfVlJfQ09VTlQ7IGkrKykKLSAgICAgICAgIG91dC0+dmVjdG9yX3NhdmUuc2F2ZV92cltp XSA9IFwKLWRpZmYgLS1naXQgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVu dC9saW51eC9kdW1wX3dyaXRlcl9jb21tb24vdWNvbnRleHRfcmVhZGVyLmNjIHRoaXJkX3BhcnR5 L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvZHVtcF93cml0ZXJfY29tbW9uL3Vj b250ZXh0X3JlYWRlci5jYwotaW5kZXggMTA5MDQ3MGYuLmU1ODAyMzNkIDEwMDY0NAotLS0tIHRo aXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvZHVtcF93cml0ZXJf Y29tbW9uL3Vjb250ZXh0X3JlYWRlci5jYwotKysrIHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFr cGFkL3NyYy9jbGllbnQvbGludXgvZHVtcF93cml0ZXJfY29tbW9uL3Vjb250ZXh0X3JlYWRlci5j YwotQEAgLTI1Nyw2ICsyNTcsOSBAQCB2b2lkIFVDb250ZXh0UmVhZGVyOjpGaWxsQ1BVQ29udGV4 dChSYXdDb250ZXh0Q1BVICpvdXQsIGNvbnN0IHVjb250ZXh0X3QgKnVjKSB7Ci0gCi0gI2VsaWYg ZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotIAotKyNpbmNsdWRlIDxhc20vZWxmLmg+Ci0rI2luY2x1 ZGUgPGFzbS9wdHJhY2UuaD4KLSsKLSB1aW50cHRyX3QgVUNvbnRleHRSZWFkZXI6OkdldFN0YWNr UG9pbnRlcihjb25zdCB1Y29udGV4dF90KiB1YykgewotICAgICByZXR1cm4gdWMtPnVjX21jb250 ZXh0LmdwX3JlZ3NbTURfQ09OVEVYVF9QUEM2NF9SRUdfU1BdOwotIH0KLUBAIC0yODAsOSArMjgz LDkgQEAgdm9pZCBVQ29udGV4dFJlYWRlcjo6RmlsbENQVUNvbnRleHQoUmF3Q29udGV4dENQVSog b3V0LCBjb25zdCB1Y29udGV4dF90KiB1YywKLSAgICAgb3V0LT5jdHIgPSB1Yy0+dWNfbWNvbnRl eHQuZ3BfcmVnc1tQVF9DVFJdOwotICAgICAKLSAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBNRF9G TE9BVElOR1NBVkVBUkVBX1BQQ19GUFJfQ09VTlQ7IGkrKykKLS0gICAgICAgIG91dC0+ZmxvYXRf c2F2ZS5mcHJlZ3NbaV0gPSB1Yy0+dWNfbWNvbnRleHQuZnBfcmVnc1tpXTsKLSsgICAgICAgIG91 dC0+ZmxvYXRfc2F2ZS5mcHJlZ3NbaV0gPSAoKHVpbnQ2NF90ICopJnVjLT51Y19tY29udGV4dC5m cF9yZWdzKVtpXTsKLSAKLS0gICAgb3V0LT5mbG9hdF9zYXZlLmZwc2NyID0gdWMtPnVjX21jb250 ZXh0LmZwX3JlZ3NbTkZQUkVHLTFdOwotKyAgICBvdXQtPmZsb2F0X3NhdmUuZnBzY3IgPSAoKHVp bnQ2NF90ICopJnVjLT51Y19tY29udGV4dC5mcF9yZWdzKVtFTEZfTkZQUkVHLTFdOwotIAotICAg ICBmb3IgKGludCBpID0gMDsgaSA8IE1EX1ZFQ1RPUlNBVkVBUkVBX1BQQ19WUl9DT1VOVDsgaSsr KQotICAgICAgICAgb3V0LT52ZWN0b3Jfc2F2ZS5zYXZlX3ZyW2ldID0KLWRpZmYgLS1naXQgdGhp cmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9oYW5kbGVyL2V4Y2Vw dGlvbl9oYW5kbGVyLmNjIHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQv bGludXgvaGFuZGxlci9leGNlcHRpb25faGFuZGxlci5jYwotaW5kZXggNWE3YWI1MGMuLmVlOGI4 NThjIDEwMDY0NAotLS0tIHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQv bGludXgvaGFuZGxlci9leGNlcHRpb25faGFuZGxlci5jYwotKysrIHRoaXJkX3BhcnR5L2JyZWFr cGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvaGFuZGxlci9leGNlcHRpb25faGFuZGxlci5j YwotQEAgLTEwNSw2ICsxMDUsMTEgQEAKLSAjZGVmaW5lIFBSX1NFVF9QVFJBQ0VSIDB4NTk2MTZk NjEKLSAjZW5kaWYKLSAKLSsvKiBtdXNsIGhhY2ssIGNhbid0IGluY2x1ZGUgYXNtL3B0cmFjZS5o IGFzIHRoYXQgY2F1c2VzIGNvbmZsaWN0cyAqLwotKyNpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18p ICYmICFkZWZpbmVkKFBUX05JUCkKLSsjZGVmaW5lIFBUX05JUCAzMgotKyNlbmRpZgotKwotIG5h bWVzcGFjZSBnb29nbGVfYnJlYWtwYWQgewotIAotIG5hbWVzcGFjZSB7Ci1kaWZmIC0tZ2l0IHRo aXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L3NpZ25hbF9jb250ZXh0 LmggdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvc2lnbmFsX2Nv bnRleHQuaAotaW5kZXggOGUzMzVhMDkuLmIyYTBmMTU1IDEwMDY0NAotLS0tIHRoaXJkX3BhcnR5 L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L3NpZ25hbF9jb250ZXh0LmgKLSsrKyB0 aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9zaWduYWxfY29udGV4 dC5oCi1AQCAtNDY5LDcgKzQ2OSw3IEBAIHN0cnVjdCBNQ29udGV4dDY0IHsKLSAgIFNpZ25hbFRo cmVhZENvbnRleHQ2NCBncF9yZWdzOwotICAgU2lnbmFsRmxvYXRDb250ZXh0NjQgIGZwX3JlZ3M7 Ci0gICBTaWduYWxWZWN0b3JDb250ZXh0NjQgKnZfcmVnczsKLS0gIGludDY0X3Qgdm14X3Jlc2Vy dmVbNjldOwotKyAgaW50NjRfdCB2bXhfcmVzZXJ2ZVsxMDFdOwotIH07Ci0gCi0gc3RydWN0IENv bnRleHRUcmFpdHM2NCA6IHB1YmxpYyBUcmFpdHM2NCB7Ci1kaWZmIC0tZ2l0IHRoaXJkX3BhcnR5 L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbGludXgvdGhyZWFkX2luZm8uaCB0aGlyZF9wYXJ0eS9j cmFzaHBhZC9jcmFzaHBhZC91dGlsL2xpbnV4L3RocmVhZF9pbmZvLmgKLWluZGV4IGRlYTBkMWYz Li5iMjAzZTViMiAxMDA2NDQKLS0tLSB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGls L2xpbnV4L3RocmVhZF9pbmZvLmgKLSsrKyB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91 dGlsL2xpbnV4L3RocmVhZF9pbmZvLmgKLUBAIC0zMCw2ICszMCw3IEBACi0gCi0gI2lmIGRlZmlu ZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQotICNpbmNsdWRlIDxzeXMvdWNvbnRleHQuaD4KLSsj aW5jbHVkZSA8YXNtL3B0cmFjZS5oPgotICNlbmRpZgotIAotIG5hbWVzcGFjZSBjcmFzaHBhZCB7 Ci1kaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2xzcy9saW51eF9zeXNjYWxsX3N1cHBvcnQuaCB0aGly ZF9wYXJ0eS9sc3MvbGludXhfc3lzY2FsbF9zdXBwb3J0LmgKLWluZGV4IDk5NTVjZTQ0Li40YzFj YzQ4OCAxMDA2NDQKLS0tLSB0aGlyZF9wYXJ0eS9sc3MvbGludXhfc3lzY2FsbF9zdXBwb3J0LmgK LSsrKyB0aGlyZF9wYXJ0eS9sc3MvbGludXhfc3lzY2FsbF9zdXBwb3J0LmgKLUBAIC00MjE2LDkg KzQyMTYsMTMgQEAgc3RydWN0IGtlcm5lbF9zdGF0ZnMgewotICAgICB9Ci0gICAjZW5kaWYKLSAg ICNpZiBkZWZpbmVkKF9fTlJfZnN0YXRhdDY0KQotKyAgICAvLyBtdXNsIGRvZXMgI2RlZmluZSBm c3RhdGF0NjQgZnN0YXRhdAotKyAgICAjdW5kZWYgZnN0YXRhdDY0Ci0gICAgIExTU19JTkxJTkUg X3N5c2NhbGw0KGludCwgICBmc3RhdGF0NjQsICAgICAgICBpbnQsICAgZCwKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgY29uc3QgY2hhciAqLCAgICAgIHAsCi0gICAgICAgICAgICAgICAgICAg ICAgICAgIHN0cnVjdCBrZXJuZWxfc3RhdDY0ICosICAgYiwgICAgaW50LCAgIGYpCi0rICAgIC8v IHNldCBpdCBiYWNrIGxpa2UgaXQgd2FzCi0rICAgICNkZWZpbmUgZnN0YXRhdDY0IGZzdGF0YXQK LSAgICNlbmRpZgotICAgI2lmIGRlZmluZWQoX19OUl93YWl0cGlkKQotICAgICAvLyB3YWl0cGlk IGlzIHBvbHlmaWxsZWQgYmVsb3cgd2hlbiBub3QgYXZhaWxhYmxlLgpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9jaHJvbWl1bS9wYXRjaGVzL2J1aWxkLWFkZC11c2VfY3h4MTcucGF0Y2ggYi9zcmNwa2dz L2Nocm9taXVtL3BhdGNoZXMvYnVpbGQtYWRkLXVzZV9jeHgxNy5wYXRjaAppbmRleCAwOTFiMWM1 NTM3MjcuLmI1MDgyNWZiN2UyYyAxMDA2NDQKLS0tIGEvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVz L2J1aWxkLWFkZC11c2VfY3h4MTcucGF0Y2gKKysrIGIvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVz L2J1aWxkLWFkZC11c2VfY3h4MTcucGF0Y2gKQEAgLTEsMjYgKzEsMjIgQEAKIC0tLSBhL2J1aWxk L2NvbmZpZy9jb21waWxlci9CVUlMRC5nbgogKysrIGIvYnVpbGQvY29uZmlnL2NvbXBpbGVyL0JV SUxELmduCi1AQCAtMTY3LDYgKzE2NywxMCBAQAotICAgIyBFbmFibGUgLUgsIHdoaWNoIHByaW50 cyB0aGUgaW5jbHVkZSB0cmVlIGR1cmluZyBjb21waWxhdGlvbi4KLSAgICMgRm9yIHVzZSBieSB0 b29scy9jbGFuZy9zY3JpcHRzL2FuYWx5emVfaW5jbHVkZXMucHkKLSAgIHNob3dfaW5jbHVkZXMg PSBmYWxzZQotKwotKyAgIyBBbGxvdyBwcm9qZWN0cyB0aGF0IHdpc2ggdG8gc3RheSBvbiBDKysx NyB0byBvdmVycmlkZSBDaHJvbWl1bSdzIGRlZmF1bHQuCi0rICAjIFRPRE8oY3JidWcuY29tLzE0 MDIyNDkpOiBldmFsdWF0ZSByZW1vdmluZyB0aGlzIGVuZCBvZiAyMDIzCi0rICB1c2VfY3h4MTcg PSBmYWxzZQorQEAgLTE5MSw2ICsxOTEsMTAgQEAKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudF9jcHUgPT0gIng2NCIpKSkpCiAg fQogIAotIGRlY2xhcmVfYXJncygpIHsKLUBAIC01OTYsNyArNjAwLDExIEBACi0gICAgIH0gZWxz ZSBpZiAoaXNfbGludXgpIHsKLSAgICAgICAjIFRPRE8oY3JidWcuY29tLzEyODQyNzUpOiBTd2l0 Y2ggdG8gQysrMjAgb24gYWxsIHBsYXRmb3Jtcy4KLSAgICAgICBpZiAoaXNfY2xhbmcpIHsKLS0g ICAgICAgIGNmbGFnc19jYyArPSBbICItc3RkPSR7c3RhbmRhcmRfcHJlZml4fSsrMjAiIF0KLSsg ICAgICAgIGlmICh1c2VfY3h4MTcpIHsKLSsgICAgICAgICAgY2ZsYWdzX2NjICs9IFsgIi1zdGQ9 JHtzdGFuZGFyZF9wcmVmaXh9KysxNyIgXQotKyAgICAgICAgfSBlbHNlIHsKLSsgICAgICAgICAg Y2ZsYWdzX2NjICs9IFsgIi1zdGQ9JHtzdGFuZGFyZF9wcmVmaXh9KysyMCIgXQotKyAgICAgICAg fQorK2RlY2xhcmVfYXJncygpIHsKKysgIHVzZV9jeHgxNyA9IGZhbHNlCisrfQorKworIGlmIChp c19hbmRyb2lkIHx8IChpc19jaHJvbWVvc19hc2ggJiYgaXNfY2hyb21lb3NfZGV2aWNlKSkgewor ICAgIyBTZXQgdGhlIHBhdGggdG8gdXNlIG9yZGVyZmlsZSBmb3IgbGlua2luZyBDaHJvbWUKKyAg ICMgTm90ZSB0aGF0IHRoaXMgaXMgZm9yIHVzaW5nIG9ubHkgb25lIG9yZGVyZmlsZSBmb3IgbGlu a2luZworQEAgLTYwNSw3ICs2MDksNyBAQAorICAgICAgICAgY2ZsYWdzX2NjICs9IFsgIi1mbm8t dHJpZ3JhcGhzIiBdCisgICAgICAgfQorICAgICB9IGVsc2UgaWYgKGlzX2NsYW5nKSB7CistICAg ICAgaWYgKGlzX2Nocm9tZW9zX2RldmljZSkgeworKyAgICAgIGlmIChpc19jaHJvbWVvc19kZXZp Y2UgfHwgdXNlX2N4eDE3KSB7CisgICAgICAgICAjIFRPRE8oY3JidWcuY29tLzEzOTI0NzEpOiBT dXBwb3J0IEMrKzIwIGluIENyT1MgdG9vbGNoYWluLgorICAgICAgICAgY2ZsYWdzX2NjICs9IFsg Ii1zdGQ9JHtzdGFuZGFyZF9wcmVmaXh9KysxNyIgXQogICAgICAgIH0gZWxzZSB7Ci0gICAgICAg ICAjIFRoZSBnY2MgYm90cyBhcmUgY3VycmVudGx5IHVzaW5nIEdDQyA5LCB3aGljaCBpcyBub3Qg bmV3IGVub3VnaCB0bwotICAgICAgICAgIyBzdXBwb3J0ICJjKysyMCIvImdudSsrMjAiLgpkaWZm IC0tZ2l0IGEvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2ZpeC1idWlsZC13aXRoLW9sZC1jbGFu Zy5wYXRjaCBiL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9maXgtYnVpbGQtd2l0aC1vbGQtY2xh bmcucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5mMjMyMThl NzFlNGQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvZml4LWJ1 aWxkLXdpdGgtb2xkLWNsYW5nLnBhdGNoCkBAIC0wLDAgKzEsMjAgQEAKKy0tLSBhL2J1aWxkL2Nv bmZpZy9jb21waWxlci9CVUlMRC5nbgorKysrIGIvYnVpbGQvY29uZmlnL2NvbXBpbGVyL0JVSUxE LmduCitAQCAtODA1LDE3ICs4MDUsNiBAQAorICAgICBjZmxhZ3MgKz0gWyAiLWZjb21wbGV0ZS1t ZW1iZXItcG9pbnRlcnMiIF0KKyAgIH0KKyAKKy0gICMgVXNlIERXQVJGIHNpbXBsZSB0ZW1wbGF0 ZSBuYW1lcywgd2l0aCB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbnM6CistICAjCistICAjICogV2lu ZG93cyBpcyBub3Qgc3VwcG9ydGVkIGFzIGl0IGRvZXNuJ3QgdXNlIERXQVJGLgorLSAgIyAqIEFw cGxlIHBsYXRmb3JtcyAoZS5nLiBNYWNPUywgaVBob25lLCBpUGFkKSBhcmVuJ3Qgc3VwcG9ydGVk IGJlY2F1c2UgeGNvZGUKKy0gICMgICBsbGRiIGRvZXNuJ3QgaGF2ZSB0aGUgbmVlZGVkIGNoYW5n ZXMgeWV0LgorLSAgIyAqIEZ1Y2hzaWEgaXNuJ3Qgc3VwcG9ydGVkIGFzIHp4ZGIgZG9lc24ndCBz dXBwb3J0IHNpbXBsZSB0ZW1wbGF0ZSBuYW1lcyB5ZXQuCistICAjIFRPRE8oY3JidWcuY29tLzEz NzkwNzApOiBSZW1vdmUgaWYgdGhlIHVwc3RyZWFtIGRlZmF1bHQgZXZlciBjaGFuZ2VzLgorLSAg aWYgKGlzX2NsYW5nICYmICFpc19uYWNsICYmICFpc193aW4gJiYgIWlzX2FwcGxlICYmICFpc19m dWNoc2lhKSB7CistICAgIGNmbGFnc19jYyArPSBbICItZ3NpbXBsZS10ZW1wbGF0ZS1uYW1lcyIg XQorLSAgfQorLQorICAgIyBNTEdPIHNwZWNpZmljIGZsYWdzLiBUaGVzZSBmbGFncyBlbmFibGUg YW4gTUwtYmFzZWQgaW5saW5lciB0cmFpbmVkIG9uCisgICAjIENocm9tZSBvbiBBbmRyb2lkIChh cm0zMikgd2l0aCBUaGluTFRPIGVuYWJsZWQsIG9wdGltaXppbmcgZm9yIHNpemUuCisgICAjIFRo ZSAicmVsZWFzZSIgTUwgbW9kZWwgaXMgZW1iZWRkZWQgaW50byBjbGFuZyBhcyBwYXJ0IG9mIGl0 cyBidWlsZC4KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9maXgtY29uc3Rl eHByLW5hcnJvd2luZy5wYXRjaCBiL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9maXgtY29uc3Rl eHByLW5hcnJvd2luZy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw MDAuLjU3MGNhNmU2OWE4MAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvY2hyb21pdW0vcGF0 Y2hlcy9maXgtY29uc3RleHByLW5hcnJvd2luZy5wYXRjaApAQCAtMCwwICsxLDIxIEBACistLS0g YS90aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9wbGF0Zm9ybS9tZWRpYS93ZWJfbWVkaWFfcGxh eWVyX2ltcGwuY2Mub3JpZworKysrIGIvdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvcGxhdGZv cm0vbWVkaWEvd2ViX21lZGlhX3BsYXllcl9pbXBsLmNjCitAQCAtMzg4MSwxNSArMzg4MSwxNSBA QAorICAgICBjb25zdCBUJi4uLiB2YWx1ZXMpIHsKKyAgIHN0ZDo6c3RyaW5nIHN0cmtleSA9IHN0 ZDo6c3RyaW5nKGtleSk7CisgCistICBpZiBjb25zdGV4cHIgKEZsYWdzICYga0VuY3J5cHRlZCkg eworKyAgaWYgY29uc3RleHByIChGbGFncyAmIGtFbmNyeXB0ZWQgIT0gMCkgeworICAgICBpZiAo aXNfZW5jcnlwdGVkXykKKyAgICAgICBVbWFGdW5jdGlvbihzdHJrZXkgKyAiLkVNRSIsIHZhbHVl cy4uLik7CisgICB9CisgCistICBpZiBjb25zdGV4cHIgKEZsYWdzICYga1RvdGFsKQorKyAgaWYg Y29uc3RleHByIChGbGFncyAmIGtUb3RhbCAhPSAwKQorICAgICBVbWFGdW5jdGlvbihzdHJrZXkg KyAiLkFsbCIsIHZhbHVlcy4uLik7CisgCistICBpZiBjb25zdGV4cHIgKEZsYWdzICYga1BsYXli YWNrVHlwZSkgeworKyAgaWYgY29uc3RleHByIChGbGFncyAmIGtQbGF5YmFja1R5cGUgIT0gMCkg eworICAgICBhdXRvIGRlbXV4ZXJfdHlwZSA9IEdldERlbXV4ZXJUeXBlKCk7CisgICAgIGlmICgh ZGVtdXhlcl90eXBlLmhhc192YWx1ZSgpKQorICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9maXgtbXVzbC1uby1tYWxsaW5mby5wYXRjaCBiL3NyY3Br Z3MvY2hyb21pdW0vcGF0Y2hlcy9maXgtbXVzbC1uby1tYWxsaW5mby5wYXRjaApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjE3MThlY2NiMjIwNAotLS0gL2Rldi9udWxs CisrKyBiL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9maXgtbXVzbC1uby1tYWxsaW5mby5wYXRj aApAQCAtMCwwICsxLDExIEBACistLS0gYS9iYXNlL2FsbG9jYXRvci9wYXJ0aXRpb25fYWxsb2Nh dG9yL3NoaW0vYWxsb2NhdG9yX3NoaW1fZGVmYXVsdF9kaXNwYXRjaF90b19wYXJ0aXRpb25fYWxs b2MuY2MKKysrKyBiL2Jhc2UvYWxsb2NhdG9yL3BhcnRpdGlvbl9hbGxvY2F0b3Ivc2hpbS9hbGxv Y2F0b3Jfc2hpbV9kZWZhdWx0X2Rpc3BhdGNoX3RvX3BhcnRpdGlvbl9hbGxvYy5jYworQEAgLTcx Nyw3ICs3MTcsNyBAQAorIAorICNlbmRpZiAgLy8gIUJVSUxERkxBRyhJU19BUFBMRSkgJiYgIUJV SUxERkxBRyhJU19BTkRST0lEKQorIAorLSNpZiBCVUlMREZMQUcoSVNfTElOVVgpIHx8IEJVSUxE RkxBRyhJU19DSFJPTUVPUykKKysjaWYgKEJVSUxERkxBRyhJU19MSU5VWCkgJiYgZGVmaW5lZChf X0dMSUJDX18pKSB8fCBCVUlMREZMQUcoSVNfQ0hST01FT1MpCisgU0hJTV9BTFdBWVNfRVhQT1JU IHN0cnVjdCBtYWxsaW5mbyBtYWxsaW5mbyh2b2lkKSBfX1RIUk9XIHsKKyAgIGJhc2U6OlNpbXBs ZVBhcnRpdGlvblN0YXRzRHVtcGVyIGFsbG9jYXRvcl9kdW1wZXI7CisgICBBbGxvY2F0b3IoKS0+ RHVtcFN0YXRzKCJtYWxsb2MiLCB0cnVlLCAmYWxsb2NhdG9yX2R1bXBlcik7CmRpZmYgLS1naXQg YS9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvZml4LW11c2wtcHRocmVhZC1zdGFja3NpemUucGF0 Y2ggYi9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvZml4LW11c2wtcHRocmVhZC1zdGFja3NpemUu cGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNkNTUzMzE5MGRiOS4uMDAwMDAw MDAwMDAwCi0tLSBhL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9maXgtbXVzbC1wdGhyZWFkLXN0 YWNrc2l6ZS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDQwICswLDAgQEAKLS0tLSBhL2Jhc2Uv dGhyZWFkaW5nL3BsYXRmb3JtX3RocmVhZF9saW51eC5jYwotKysrIGIvYmFzZS90aHJlYWRpbmcv cGxhdGZvcm1fdGhyZWFkX2xpbnV4LmNjCi1AQCAtNDM2LDggKzQzNiwxMyBAQAotIAotIHNpemVf dCBHZXREZWZhdWx0VGhyZWFkU3RhY2tTaXplKGNvbnN0IHB0aHJlYWRfYXR0cl90JiBhdHRyaWJ1 dGVzKSB7Ci0gI2lmICFkZWZpbmVkKFRIUkVBRF9TQU5JVElaRVIpCi0rI2lmIGRlZmluZWQoX19H TElCQ19fKQotICAgcmV0dXJuIDA7Ci0gI2Vsc2UKLSsgIC8vIG11c2wgbGliY3MgZGVmYXVsdCBp cyB0b28gc21hbGwsIHVzZSA4bWIgbGlrZSBnbGliYwotKyAgcmV0dXJuICgxIDw8IDIzKTsKLSsj ZW5kaWYKLSsjZWxzZQotICAgLy8gVGhyZWFkU2FuaXRpemVyIGJsb2F0cyB0aGUgc3RhY2sgaGVh dmlseS4gRXZpZGVuY2UgaGFzIGJlZW4gdGhhdCB0aGUKLSAgIC8vIGRlZmF1bHQgc3RhY2sgc2l6 ZSBpc24ndCBlbm91Z2ggZm9yIHNvbWUgYnJvd3NlciB0ZXN0cy4KLSAgIHJldHVybiAyICogKDEg PDwgMjMpOyAgLy8gMiB0aW1lcyA4MTkySyAodGhlIGRlZmF1bHQgc3RhY2sgc2l6ZSBvbiBMaW51 eCkuCi0tLS0gYS9jaHJvbWUvYnJvd3Nlci9zaHV0ZG93bl9zaWduYWxfaGFuZGxlcnNfcG9zaXgu Y2MKLSsrKyBiL2Nocm9tZS9icm93c2VyL3NodXRkb3duX3NpZ25hbF9oYW5kbGVyc19wb3NpeC5j YwotQEAgLTE4OCwxMSArMTg4LDIxIEBACi0gICBnX3NodXRkb3duX3BpcGVfcmVhZF9mZCA9IHBp cGVmZFswXTsKLSAgIGdfc2h1dGRvd25fcGlwZV93cml0ZV9mZCA9IHBpcGVmZFsxXTsKLSAjaWYg IWRlZmluZWQoQUREUkVTU19TQU5JVElaRVIpCi0rI2lmIGRlZmluZWQoX19HTElCQ19fKQotICAg Y29uc3Qgc2l6ZV90IGtTaHV0ZG93bkRldGVjdG9yVGhyZWFkU3RhY2tTaXplID0gUFRIUkVBRF9T VEFDS19NSU4gKiAyOwotICNlbHNlCi0rICAvLyBtYXRjaCB1cCBtdXNscyAyayBQVEhSRUFEX1NU QUNLX01JTiB3aXRoIGdsaWJjcyAxNmsKLSsgIGNvbnN0IHNpemVfdCBrU2h1dGRvd25EZXRlY3Rv clRocmVhZFN0YWNrU2l6ZSA9IFBUSFJFQURfU1RBQ0tfTUlOICogMiAqIDg7Ci0rI2VuZGlmCi0r I2Vsc2UKLSAgIC8vIEFTYW4gaW5zdHJ1bWVudGF0aW9uIGJsb2F0cyB0aGUgc3RhY2sgZnJhbWVz LCBzbyB3ZSBuZWVkIHRvIGluY3JlYXNlIHRoZQotICAgLy8gc3RhY2sgc2l6ZSB0byBhdm9pZCBo aXR0aW5nIHRoZSBndWFyZCBwYWdlLgotKyNpZiBkZWZpbmVkKF9fR0xJQkNfXykKLSAgIGNvbnN0 IHNpemVfdCBrU2h1dGRvd25EZXRlY3RvclRocmVhZFN0YWNrU2l6ZSA9IFBUSFJFQURfU1RBQ0tf TUlOICogNDsKLSsjZWxzZQotKyAgY29uc3Qgc2l6ZV90IGtTaHV0ZG93bkRldGVjdG9yVGhyZWFk U3RhY2tTaXplID0gUFRIUkVBRF9TVEFDS19NSU4gKiA0ICogODsKLSsgIC8vIG1hdGNoIHVwIG11 c2xzIDJrIFBUSFJFQURfU1RBQ0tfTUlOIHdpdGggZ2xpYmNzIDE2awotKyNlbmRpZgotICNlbmRp ZgotICAgU2h1dGRvd25EZXRlY3RvciogZGV0ZWN0b3IgPSBuZXcgU2h1dGRvd25EZXRlY3RvcigK LSAgICAgICBnX3NodXRkb3duX3BpcGVfcmVhZF9mZCwgc3RkOjptb3ZlKHNodXRkb3duX2NhbGxi YWNrKSwgdGFza19ydW5uZXIpOwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVz L2ZpeC1uYXJyb3dpbmctY2FzdC5wYXRjaCBiL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9maXgt bmFycm93aW5nLWNhc3QucGF0Y2gKaW5kZXggYWZkNDJhMTQ4OWFlLi4xYTI0N2U1NGZlN2MgMTAw NjQ0Ci0tLSBhL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9maXgtbmFycm93aW5nLWNhc3QucGF0 Y2gKKysrIGIvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2ZpeC1uYXJyb3dpbmctY2FzdC5wYXRj aApAQCAtMSw0MyArMSw2IEBACi0tLS0gYS9iYXNlL2ZpbGVzL2ZpbGVfdXRpbF9saW51eC5jYwot KysrIGIvYmFzZS9maWxlcy9maWxlX3V0aWxfbGludXguY2MKLUBAIC0yMywxNCArMjMsMTQgQEAK LSAKLSAgIC8vIE5vdCBhbGwgcG9zc2libGUgfHN0YXRmc19idWYuZl90eXBlfCB2YWx1ZXMgYXJl IGluIGxpbnV4L21hZ2ljLmguCi0gICAvLyBNaXNzaW5nIHZhbHVlcyBhcmUgY29waWVkIGZyb20g dGhlIHN0YXRmcyBtYW4gcGFnZS4KLS0gIHN3aXRjaCAoc3RhdGZzX2J1Zi5mX3R5cGUpIHsKLSsg IHN3aXRjaCAoc3RhdGljX2Nhc3Q8dWludG1heF90PihzdGF0ZnNfYnVmLmZfdHlwZSkpIHsKLSAg ICAgY2FzZSAwOgotICAgICAgICp0eXBlID0gRklMRV9TWVNURU1fMDsKLSAgICAgICBicmVhazsK LSAgICAgY2FzZSBFWFQyX1NVUEVSX01BR0lDOiAgLy8gQWxzbyBleHQzIGFuZCBleHQ0Ci0gICAg IGNhc2UgTVNET1NfU1VQRVJfTUFHSUM6Ci0gICAgIGNhc2UgUkVJU0VSRlNfU1VQRVJfTUFHSUM6 Ci0tICAgIGNhc2Ugc3RhdGljX2Nhc3Q8aW50PihCVFJGU19TVVBFUl9NQUdJQyk6Ci0rICAgIGNh c2UgQlRSRlNfU1VQRVJfTUFHSUM6Ci0gICAgIGNhc2UgMHg1MzQ2NTQ0RTogIC8vIE5URlMKLSAg ICAgY2FzZSAweDU4NDY1MzQyOiAgLy8gWEZTCi0gICAgIGNhc2UgMHgzMTUzNDY0QTogIC8vIEpG UwotQEAgLTQwLDE0ICs0MCwxNCBAQAotICAgICAgICp0eXBlID0gRklMRV9TWVNURU1fTkZTOwot ICAgICAgIGJyZWFrOwotICAgICBjYXNlIFNNQl9TVVBFUl9NQUdJQzoKLS0gICAgY2FzZSBzdGF0 aWNfY2FzdDxpbnQ+KDB4RkY1MzRENDIpOiAgLy8gQ0lGUwotKyAgICBjYXNlIDB4RkY1MzRENDI6 ICAvLyBDSUZTCi0gICAgICAgKnR5cGUgPSBGSUxFX1NZU1RFTV9TTUI7Ci0gICAgICAgYnJlYWs7 Ci0gICAgIGNhc2UgQ09EQV9TVVBFUl9NQUdJQzoKLSAgICAgICAqdHlwZSA9IEZJTEVfU1lTVEVN X0NPREE7Ci0gICAgICAgYnJlYWs7Ci0tICAgIGNhc2Ugc3RhdGljX2Nhc3Q8aW50PihIVUdFVExC RlNfTUFHSUMpOgotLSAgICBjYXNlIHN0YXRpY19jYXN0PGludD4oUkFNRlNfTUFHSUMpOgotKyAg ICBjYXNlIEhVR0VUTEJGU19NQUdJQzoKLSsgICAgY2FzZSBSQU1GU19NQUdJQzoKLSAgICAgY2Fz ZSBUTVBGU19NQUdJQzoKLSAgICAgICAqdHlwZSA9IEZJTEVfU1lTVEVNX01FTU9SWTsKLSAgICAg ICBicmVhazsKIC0tLSBhL2Jhc2Uvc3lzdGVtL3N5c19pbmZvX3Bvc2l4LmNjCiArKysgYi9iYXNl L3N5c3RlbS9zeXNfaW5mb19wb3NpeC5jYwotQEAgLTEwMCwxMCArMTAwLDEwIEBACitAQCAtNjIs MTAgKzYyLDEwIEBACiAgICBpZiAoSEFORExFX0VJTlRSKHN0YXRmcyhwYXRoLnZhbHVlKCkuY19z dHIoKSwgJnN0YXRzKSkgIT0gMCkKICAgICAgcmV0dXJuIGZhbHNlOwogIApkaWZmIC0tZ2l0IGEv c3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2ZpeC1uYXNtLW11c2wtY29uZmlnLnBhdGNoIGIvc3Jj cGtncy9jaHJvbWl1bS9wYXRjaGVzL2ZpeC1uYXNtLW11c2wtY29uZmlnLnBhdGNoCmRlbGV0ZWQg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3YTAzMzdmM2JmM2IuLjAwMDAwMDAwMDAwMAotLS0gYS9z cmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvZml4LW5hc20tbXVzbC1jb25maWcucGF0Y2gKKysrIC9k ZXYvbnVsbApAQCAtMSwxMiArMCwwIEBACi0tLS0gYS90aGlyZF9wYXJ0eS9uYXNtL2NvbmZpZy9j b25maWctbGludXguaAotKysrIGIvdGhpcmRfcGFydHkvbmFzbS9jb25maWcvY29uZmlnLWxpbnV4 LmgKLUBAIC0xMzksNyArMTM5LDkgQEAKLSAjZGVmaW5lIEhBVkVfQUNDRVNTIDEKLSAKLSAvKiBE ZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGNhbm9uaWNhbGl6ZV9maWxlX25hbWUnIGZ1bmN0 aW9uLiAqLwotKyNpZmRlZiBfX0dMSUJDX18KLSAjZGVmaW5lIEhBVkVfQ0FOT05JQ0FMSVpFX0ZJ TEVfTkFNRSAxCi0rI2VuZGlmCi0gCi0gLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBj cHVfdG9fbGUxNicgaW50cmluc2ljIGZ1bmN0aW9uLiAqLwotIC8qICN1bmRlZiBIQVZFX0NQVV9U T19MRTE2ICovCmRpZmYgLS1naXQgYS9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvbXVzbC1wYXJ0 aXRpb24tYXRmb3JrLnBhdGNoIGIvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL211c2wtcGFydGl0 aW9uLWF0Zm9yay5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAu LjI5MTBhYTJiYmY5YgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hl cy9tdXNsLXBhcnRpdGlvbi1hdGZvcmsucGF0Y2gKQEAgLTAsMCArMSwxMSBAQAorLS0tIGEvYmFz ZS9hbGxvY2F0b3IvcGFydGl0aW9uX2FsbG9jYXRvci9wYXJ0aXRpb25fcm9vdC5jYworKysrIGIv YmFzZS9hbGxvY2F0b3IvcGFydGl0aW9uX2FsbG9jYXRvci9wYXJ0aXRpb25fcm9vdC5jYworQEAg LTIzOSw3ICsyMzksNyBAQAorICAgaWYgKCFnX2dsb2JhbF9pbml0X2NhbGxlZC5jb21wYXJlX2V4 Y2hhbmdlX3N0cm9uZyhleHBlY3RlZCwgdHJ1ZSkpCisgICAgIHJldHVybjsKKyAKKy0jaWYgQlVJ TERGTEFHKElTX0xJTlVYKSB8fCBCVUlMREZMQUcoSVNfQ0hST01FT1MpCisrI2lmIChCVUlMREZM QUcoSVNfTElOVVgpICYmIGRlZmluZWQoX19HTElCQ19fKSkgfHwgQlVJTERGTEFHKElTX0NIUk9N RU9TKQorICAgLy8gV2hlbiBmb3JrKCkgaXMgY2FsbGVkLCBvbmx5IHRoZSBjdXJyZW50IHRocmVh ZCBjb250aW51ZXMgdG8gZXhlY3V0ZSBpbiB0aGUKKyAgIC8vIGNoaWxkIHByb2Nlc3MuIElmIHRo ZSBsb2NrIGlzIGhlbGQsIGJ1dCAqbm90KiBieSB0aGlzIHRocmVhZCB3aGVuIGZvcmsoKSBpcwor ICAgLy8gY2FsbGVkLCB3ZSBoYXZlIGEgZGVhZGxvY2suCmRpZmYgLS1naXQgYS9zcmNwa2dzL2No cm9taXVtL3BhdGNoZXMvcmUtZml4LVRGTGl0ZS1idWlsZC1lcnJvci1vbi1saW51eC13aXRoLXN5 c3RlbS16bGliLnBhdGNoIGIvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL3JlLWZpeC1URkxpdGUt YnVpbGQtZXJyb3Itb24tbGludXgtd2l0aC1zeXN0ZW0temxpYi5wYXRjaApkZWxldGVkIGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMTNkNTA0ZDNlNzkyLi4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtn cy9jaHJvbWl1bS9wYXRjaGVzL3JlLWZpeC1URkxpdGUtYnVpbGQtZXJyb3Itb24tbGludXgtd2l0 aC1zeXN0ZW0temxpYi5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDQxICswLDAgQEAKLUZyb20g ZGRhMDFhNzA2NDUzZGVkOGMwMWM0MTc3NTcwN2NiNWVmNGUzMTZmOCBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKLUZyb206IEFuZHJlcyBTYWxvbW9uIDxkaWxpbmdlckBxdWV1ZWQubmV0PgotRGF0 ZTogVHVlLCAyNSBPY3QgMjAyMiAyMToxMTo0NiArMDAwMAotU3ViamVjdDogW1BBVENIXSBSZS1m aXggVEZMaXRlIGJ1aWxkIGVycm9yIG9uIGxpbnV4IHdoZW4gdXNpbmcgdGhlIHN5c3RlbSB6bGli Ci0KLUluIGNvbW1pdCBhZTBmOWFkYjdlMTRjMGQxOWNhNjk1ZWY2YWQ0MGIzMjFhOGNiNjRjLCBJ IGZpeGVkIHNvbWUgYnVpbGQKLWVycm9ycyByZWxhdGVkIHRvIG1pbml6aXAgcGF0Y2ggaW5jbHVz aW9uIGluIFRGTGl0ZS4gSG93ZXZlciwgYWZ0ZXIgdGhhdAotd2hlbiBURkxpdGUgU3VwcG9ydCB3 YXMgcm9sbGVkIHRvIEhFQUQsIGEgc21hbGwgcGFydCBvZiB0aGF0IHBhdGNoIGdvdAotZHJvcHBl ZC4gVGhlIHJlc3VsdCBpcyB0aGUgZm9sbG93aW5nIGJ1aWxkIGVycm9yIHdpdGggMTA3LjAuNTMw NC42MjoKLQotLi4vLi4vdGhpcmRfcGFydHkvdGZsaXRlX3N1cHBvcnQvc3JjL3RlbnNvcmZsb3df bGl0ZV9zdXBwb3J0L21ldGFkYXRhL2NjL3V0aWxzL3ppcF9yZWFkb25seV9tZW1fZmlsZS5jYzoy MjoxMDogZmF0YWwgZXJyb3I6ICdjb250cmliL21pbml6aXAvaW9hcGkuaCcgZmlsZSBub3QgZm91 bmQKLSAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KLTEgZXJyb3IgZ2VuZXJhdGVk LgotCi1UaGlzIGNvbW1pdCByZS1hZGRzIHRoZSBsb3N0IGZpeC4KLQotUj1qdW56b3VAY2hyb21p dW0ub3JnCi0KLUNoYW5nZS1JZDogSWU5NmMzNTcxODk0YjUxMDBhMWUyYTI3NzFkYTI5Njk5ZWZm MGJlYjMKLVJldmlld2VkLW9uOiBodHRwczovL2Nocm9taXVtLXJldmlldy5nb29nbGVzb3VyY2Uu Y29tL2MvY2hyb21pdW0vc3JjLysvMzk3MjA4NwotUmV2aWV3ZWQtYnk6IFJvYmVydCBPZ2RlbiA8 cm9iZXJ0b2dkZW5AY2hyb21pdW0ub3JnPgotQ29tbWl0LVF1ZXVlOiBSb2JlcnQgT2dkZW4gPHJv YmVydG9nZGVuQGNocm9taXVtLm9yZz4KLUF1dG8tU3VibWl0OiBBbmRyZXMgU2Fsb21vbiA8ZGls aW5nZXJAcXVldWVkLm5ldD4KLUNyLUNvbW1pdC1Qb3NpdGlvbjogcmVmcy9oZWFkcy9tYWluQHsj MTA2MzQ3OH0KLS0tLQotIC4uLi9tZXRhZGF0YS9jYy91dGlscy96aXBfcmVhZG9ubHlfbWVtX2Zp bGUuY2MgICAgICAgICAgICAgICAgICB8IDIgKy0KLSAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRp b24oKyksIDEgZGVsZXRpb24oLSkKLQotZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3RmbGl0ZV9z dXBwb3J0L3NyYy90ZW5zb3JmbG93X2xpdGVfc3VwcG9ydC9tZXRhZGF0YS9jYy91dGlscy96aXBf cmVhZG9ubHlfbWVtX2ZpbGUuY2MgYi90aGlyZF9wYXJ0eS90ZmxpdGVfc3VwcG9ydC9zcmMvdGVu c29yZmxvd19saXRlX3N1cHBvcnQvbWV0YWRhdGEvY2MvdXRpbHMvemlwX3JlYWRvbmx5X21lbV9m aWxlLmNjCi1pbmRleCAzOTJiNmI0MTFmZS4uNTI1YWU0YTJiNDUgMTAwNjQ0Ci0tLS0gYS90aGly ZF9wYXJ0eS90ZmxpdGVfc3VwcG9ydC9zcmMvdGVuc29yZmxvd19saXRlX3N1cHBvcnQvbWV0YWRh dGEvY2MvdXRpbHMvemlwX3JlYWRvbmx5X21lbV9maWxlLmNjCi0rKysgYi90aGlyZF9wYXJ0eS90 ZmxpdGVfc3VwcG9ydC9zcmMvdGVuc29yZmxvd19saXRlX3N1cHBvcnQvbWV0YWRhdGEvY2MvdXRp bHMvemlwX3JlYWRvbmx5X21lbV9maWxlLmNjCi1AQCAtMTksNyArMTksNyBAQCBsaW1pdGF0aW9u cyB1bmRlciB0aGUgTGljZW5zZS4KLSAjaW5jbHVkZSA8Y3N0ZGlvPgotIAotICNpbmNsdWRlICJh YnNsL3N0cmluZ3Mvc3RyaW5nX3ZpZXcuaCIgIC8vIGZyb20gQGNvbV9nb29nbGVfYWJzbAotLSNp bmNsdWRlICJjb250cmliL21pbml6aXAvaW9hcGkuaCIKLSsjaW5jbHVkZSAidGhpcmRfcGFydHkv emxpYi9jb250cmliL21pbml6aXAvaW9hcGkuaCIKLSAKLSBuYW1lc3BhY2UgdGZsaXRlIHsKLSBu YW1lc3BhY2UgbWV0YWRhdGEgewpkaWZmIC0tZ2l0IGEvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVz L3JlbW92ZS1zdHJpcF9iaW5hcnkucGF0Y2ggYi9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvcmVt b3ZlLXN0cmlwX2JpbmFyeS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGIx M2M2YTA1NmE4Li4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL3Jl bW92ZS1zdHJpcF9iaW5hcnkucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwzMiArMCwwIEBACi0t LS0gYS9jaHJvbWUvdGVzdC9jaHJvbWVkcml2ZXIvQlVJTEQuZ24ub3JpZwotKysrIGIvY2hyb21l L3Rlc3QvY2hyb21lZHJpdmVyL0JVSUxELmduCi1AQCAtMzA4LDExICszMDgsNyBAQAotICAgfQot IH0KLSAKLS1pZiAoaXNfbGludXgpIHsKLS0gIGNocm9tZWRyaXZlcl9vdXRwdXQgPSAiY2hyb21l ZHJpdmVyLnVuc3RyaXBwZWQiCi0tfSBlbHNlIHsKLS0gIGNocm9tZWRyaXZlcl9vdXRwdXQgPSAi Y2hyb21lZHJpdmVyIgotLX0KLStjaHJvbWVkcml2ZXJfb3V0cHV0ID0gImNocm9tZWRyaXZlciIK LSAKLSBleGVjdXRhYmxlKCIkY2hyb21lZHJpdmVyX291dHB1dCIpIHsKLSAgIHRlc3Rvbmx5ID0g dHJ1ZQotQEAgLTMzNiwxNiArMzMyLDYgQEAKLSAgIH0KLSB9Ci0gCi0taWYgKGlzX2xpbnV4KSB7 Ci0tICBzdHJpcF9iaW5hcnkoImNocm9tZWRyaXZlciIpIHsKLS0gICAgdGVzdG9ubHkgPSB0cnVl Ci0tICAgIGJpbmFyeV9pbnB1dCA9ICIkcm9vdF9vdXRfZGlyLyRjaHJvbWVkcml2ZXJfb3V0cHV0 IgotLSAgICBzeW1ib2xfb3V0cHV0ID0gIiRyb290X291dF9kaXIvY2hyb21lZHJpdmVyLmRlYnVn IgotLSAgICBzdHJpcHBlZF9iaW5hcnlfb3V0cHV0ID0gIiRyb290X291dF9kaXIvY2hyb21lZHJp dmVyIgotLSAgICBkZXBzID0gWyAiOiRjaHJvbWVkcml2ZXJfb3V0cHV0IiBdCi0tICB9Ci0tfQot LQotIHB5dGhvbl9saWJyYXJ5KCJjaHJvbWVkcml2ZXJfcHlfdGVzdHMiKSB7Ci0gICB0ZXN0b25s eSA9IHRydWUKLSAgIGRlcHMgPSBbCmRpZmYgLS1naXQgYS9zcmNwa2dzL2Nocm9taXVtL3BhdGNo ZXMveHh4LXBwYzY0bGUtNGstcGFnZXMucGF0Y2ggYi9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMv eHh4LXBwYzY0bGUtNGstcGFnZXMucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDI4YzRhZDM1ZjE0ZS4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hl cy94eHgtcHBjNjRsZS00ay1wYWdlcy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDYwICswLDAg QEAKLWNvbW1pdCA0NTgwOWY4NWJjMzUyNGY4NjdlNmU5NTRmNDQ0ZmRkZDIzMzMyNDVhCi1BdXRo b3I6IHE2NiA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+Ci1EYXRlOiAgIEZyaSBKYW4gNyAxODoxODo1 MiAyMDIyICswMTAwCi0KLSAgICBzd2l0Y2ggcHBjNjQgdG8gNGsgcGFnZXMKLSAgICAKLSAgICBz aW5jZSB0aGUgcGFydGl0aW9uIGFsbG9jYXRvciBhcHBlYXJzIHRvIGhhdGUgbGFyZ2VyIGNvbnN0 YW50cwotICAgIGFuZCBhdCB0aGlzIHBvaW50IGVycm9ycyBhdCBjb21waWxlIHRpbWUgYW5kIGkg YW0gbm90IHdpbGxpbmcKLSAgICB0byB3YWRlIHRocm91Z2ggdGhpcyBwaWxlIG9mIGN1cnNlIGFu ZCB3ZSB1c2UgNGsga2VybmVscyBhbnl3YXksCi0gICAgYXNzdW1lIDRLIHBhZ2VzIGZvciBwcGM2 NAotCi1kaWZmIC0tZ2l0IGEvYmFzZS9hbGxvY2F0b3IvcGFydGl0aW9uX2FsbG9jYXRvci9wYWdl X2FsbG9jYXRvcl9jb25zdGFudHMuaCBiL2Jhc2UvYWxsb2NhdG9yL3BhcnRpdGlvbl9hbGxvY2F0 b3IvcGFnZV9hbGxvY2F0b3JfY29uc3RhbnRzLmgKLWluZGV4IGJmZDU3NTMuLjA0NTA4MmIgMTAw NjQ0Ci0tLS0gYS9iYXNlL2FsbG9jYXRvci9wYXJ0aXRpb25fYWxsb2NhdG9yL3BhZ2VfYWxsb2Nh dG9yX2NvbnN0YW50cy5oCi0rKysgYi9iYXNlL2FsbG9jYXRvci9wYXJ0aXRpb25fYWxsb2NhdG9y L3BhZ2VfYWxsb2NhdG9yX2NvbnN0YW50cy5oCi1AQCAtNjksNyArNjksNyBAQCBuYW1lc3BhY2Ug YmFzZSB7Ci0KLSBQQUdFX0FMTE9DQVRPUl9DT05TVEFOVFNfREVDTEFSRV9DT05TVEVYUFIgUEFf QUxXQVlTX0lOTElORSBzaXplX3QKLSBQYWdlQWxsb2NhdGlvbkdyYW51bGFyaXR5U2hpZnQoKSB7 Ci0tI2lmIEJVSUxERkxBRyhJU19XSU4pIHx8IGRlZmluZWQoQVJDSF9DUFVfUFBDNjQpCi0rI2lm IEJVSUxERkxBRyhJU19XSU4pCi0gICAvLyBNb2Rlcm4gcHBjNjQgc3lzdGVtcyBzdXBwb3J0IDRr QiAoc2hpZnQgPSAxMikgYW5kIDY0a0IgKHNoaWZ0ID0gMTYpIHBhZ2UKLSAgIC8vIHNpemVzLiAg U2luY2UgNjRrQiBpcyB0aGUgZGUgZmFjdG8gc3RhbmRhcmQgb24gdGhlIHBsYXRmb3JtIGFuZCBi aW5hcmllcwotICAgLy8gY29tcGlsZWQgZm9yIDY0a0IgYXJlIGxpa2VseSB0byB3b3JrIG9uIDRr QiBzeXN0ZW1zLCA2NGtCIGlzIGEgZ29vZCBjaG9pY2UKLWRpZmYgLS1naXQgYS9iYXNlL2FsbG9j YXRvci9wYXJ0aXRpb25fYWxsb2NhdG9yL3BhcnRpdGlvbl9hbGxvY19jb25zdGFudHMuaCBiL2Jh c2UvYWxsb2NhdG9yL3BhcnRpdGlvbl9hbGxvY2F0b3IvcGFydGl0aW9uX2FsbG9jX2NvbnN0YW50 cy5oCi1pbmRleCAwYjkyNjBkLi4zZTA1NGVjIDEwMDY0NAotLS0tIGEvYmFzZS9hbGxvY2F0b3Iv cGFydGl0aW9uX2FsbG9jYXRvci9wYXJ0aXRpb25fYWxsb2NfY29uc3RhbnRzLmgKLSsrKyBiL2Jh c2UvYWxsb2NhdG9yL3BhcnRpdGlvbl9hbGxvY2F0b3IvcGFydGl0aW9uX2FsbG9jX2NvbnN0YW50 cy5oCi1AQCAtOTAsMTEgKzkwLDYgQEAKLSBQYXJ0aXRpb25QYWdlU2hpZnQoKSB7Ci0gICByZXR1 cm4gMTY7ICAvLyA2NCBLaUIKLSB9Ci0tI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NCkKLS1Q QUdFX0FMTE9DQVRPUl9DT05TVEFOVFNfREVDTEFSRV9DT05TVEVYUFIgUEFfQUxXQVlTX0lOTElO RSBzaXplX3QKLS1QYXJ0aXRpb25QYWdlU2hpZnQoKSB7Ci0tICByZXR1cm4gMTg7ICAvLyAyNTYg S2lCCi0tfQotICNlbGlmIChCVUlMREZMQUcoSVNfQVBQTEUpICYmIGRlZmluZWQoQVJDSF9DUFVf NjRfQklUUykpIHx8IFwKLSAgICAgKEJVSUxERkxBRyhJU19MSU5VWCkgJiYgZGVmaW5lZChBUkNI X0NQVV9BUk02NCkpCi0gUEFHRV9BTExPQ0FUT1JfQ09OU1RBTlRTX0RFQ0xBUkVfQ09OU1RFWFBS IFBBX0FMV0FZU19JTkxJTkUgc2l6ZV90Ci0tLS0gYS9iYXNlL2FsbG9jYXRvci9wYXJ0aXRpb25f YWxsb2NhdG9yL3BhcnRpdGlvbl9hbGxvY19mb3J3YXJkLmgKLSsrKyBiL2Jhc2UvYWxsb2NhdG9y L3BhcnRpdGlvbl9hbGxvY2F0b3IvcGFydGl0aW9uX2FsbG9jX2ZvcndhcmQuaAotQEAgLTI1LDEy ICsyNSwxNyBAQAotIC8vIHRoZSBzZWNvbmQgb25lIDE2LiBXZSBjb3VsZCB0ZWNobmljYWxseSBy ZXR1cm4gc29tZXRoaW5nIGRpZmZlcmVudCBmb3IKLSAvLyBtYWxsb2MoKSBhbmQgb3BlcmF0b3Ig bmV3KCksIGJ1dCB0aGlzIHdvdWxkIGNvbXBsaWNhdGUgdGhpbmdzLCBhbmQgbW9zdCBvZgotIC8v IG91ciBhbGxvY2F0aW9ucyBhcmUgcHJlc3VtYWJseSBjb21pbmcgZnJvbSBvcGVyYXRvciBuZXco KSBhbnl3YXkuCi0rI2lmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSsvKiB3ZSB3YW50IHRoaXMg dG8gYmUgMTYgaGVyZSBhbHdheXMgKi8KLStjb25zdGV4cHIgc2l6ZV90IGtBbGlnbm1lbnQgPSAx NjsKLSsjZWxzZQotIGNvbnN0ZXhwciBzaXplX3Qga0FsaWdubWVudCA9Ci0gICAgIHN0ZDo6bWF4 KGFsaWdub2YobWF4X2FsaWduX3QpLAotICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxzaXplX3Q+ KF9fU1REQ1BQX0RFRkFVTFRfTkVXX0FMSUdOTUVOVF9fKSk7Ci0gc3RhdGljX2Fzc2VydChrQWxp Z25tZW50IDw9IDE2LAotICAgICAgICAgICAgICAgIlBhcnRpdGlvbkFsbG9jIGRvZXNuJ3Qgc3Vw cG9ydCBhIGZ1bmRhbWVudGFsIGFsaWdubWVudCBsYXJnZXIgIgotICAgICAgICAgICAgICAgInRo YW4gMTYgYnl0ZXMuIik7Ci0rI2VuZGlmCi0gCi0gY29uc3RleHByIGJvb2wgVGhyZWFkU2FmZSA9 IHRydWU7Ci0gCmRpZmYgLS1naXQgYS9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMveHh4LXBwYzY0 bGUtbGlidnB4LnBhdGNoIGIvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL3h4eC1wcGM2NGxlLWxp YnZweC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGMwM2FkNGE2NWViLi4w MDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL3h4eC1wcGM2NGxlLWxp YnZweC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDMzICswLDAgQEAKLWNvbW1pdCA5ODE0Mzdi Yzg0NmZjZGI4NTQwNjJlODlmZDNkODZmMTEyZTVmNDI2Ci1BdXRob3I6IHE2NiA8ZGFuaWVsQG9j dGFmb3JnZS5vcmc+Ci1EYXRlOiAgIFNhdCBKdW4gMjUgMTI6MzU6MzcgMjAyMiArMDIwMAotCi0g ICAgVXNlIGdlbmVyaWMgdGFyZ2V0IGZvciBub3cuCi0gICAgCi0gICAgVGhpcyBpcyBiZWNhdXNl IHRoZSBzb3VyY2UgdHJlZSBpcyBtaXNzaW5nIHZzeCBvcHRpbWl6YXRpb25zIHRoYXQKLSAgICB0 aGVuIGRvIG5vdCBnZXQgaW5jbHVkZWQgYW5kIHJlc3VsdCBpbiBmYWlsZWQgbGlua2luZyBzdWNo IGFzOgotICAgIAotICAgIGxkLmxsZDogZXJyb3I6IHVuZGVmaW5lZCBzeW1ib2w6IHZweF9tc2Ux NngxNl92c3gKLQotZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2xpYnZweC9nZW5lcmF0ZV9nbmku c2ggYi90aGlyZF9wYXJ0eS9saWJ2cHgvZ2VuZXJhdGVfZ25pLnNoCi1pbmRleCA3NDI5MDgwLi40 M2VlMjlhIDEwMDc1NQotLS0tIGEvdGhpcmRfcGFydHkvbGlidnB4L2dlbmVyYXRlX2duaS5zaAot KysrIGIvdGhpcmRfcGFydHkvbGlidnB4L2dlbmVyYXRlX2duaS5zaAotQEAgLTQwNSw3ICs0MDUs NyBAQAotIGdlbl9jb25maWdfZmlsZXMgbGludXgvbWlwczY0ZWwgIi0tdGFyZ2V0PW1pcHM2NC1s aW51eC1nY2MgJHthbGxfcGxhdGZvcm1zfSIKLSBnZW5fY29uZmlnX2ZpbGVzIGxpbnV4L2xvb25n YXJjaCBcCi0gICAiLS10YXJnZXQ9bG9vbmdhcmNoNjQtbGludXgtZ2NjICR7YWxsX3BsYXRmb3Jt c30iCi0tZ2VuX2NvbmZpZ19maWxlcyBsaW51eC9wcGM2NCAiLS10YXJnZXQ9cHBjNjRsZS1saW51 eC1nY2MgJHthbGxfcGxhdGZvcm1zfSIKLStnZW5fY29uZmlnX2ZpbGVzIGxpbnV4L3BwYzY0ICIt LXRhcmdldD1nZW5lcmljLWdudSAke2FsbF9wbGF0Zm9ybXN9IgotIGdlbl9jb25maWdfZmlsZXMg bGludXgvZ2VuZXJpYyAiLS10YXJnZXQ9Z2VuZXJpYy1nbnUgJEhJR0hCRCAke2FsbF9wbGF0Zm9y bXN9IgotIGdlbl9jb25maWdfZmlsZXMgd2luL2FybTY0IFwKLSAgICItLXRhcmdldD1hcm02NC13 aW42NC12czE1ICR7YWxsX3BsYXRmb3Jtc30gJHtISUdIQkR9IgotQEAgLTQ2OCw3ICs0NjgsNyBA QAotIGdlbl9ydGNkX2hlYWRlciBsaW51eC9taXBzZWwgbWlwc2VsCi0gZ2VuX3J0Y2RfaGVhZGVy IGxpbnV4L21pcHM2NGVsIG1pcHM2NGVsCi0gZ2VuX3J0Y2RfaGVhZGVyIGxpbnV4L2xvb25nYXJj aCBsb29uZ2FyY2gKLS1nZW5fcnRjZF9oZWFkZXIgbGludXgvcHBjNjQgcHBjCi0rZ2VuX3J0Y2Rf aGVhZGVyIGxpbnV4L3BwYzY0IGdlbmVyaWMKLSBnZW5fcnRjZF9oZWFkZXIgbGludXgvZ2VuZXJp YyBnZW5lcmljCi0gZ2VuX3J0Y2RfaGVhZGVyIHdpbi9hcm02NCBhcm12OAotIGdlbl9ydGNkX2hl YWRlciB3aW4vaWEzMiB4ODYgIiR7cmVxdWlyZV9zc2UyfSIKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv Y2hyb21pdW0vcGF0Y2hlcy94eHgtcHBjNjRsZS1zYW5kYm94LWxpbnV4LXN0YXQucGF0Y2ggYi9z cmNwa2dzL2Nocm9taXVtL3BhdGNoZXMveHh4LXBwYzY0bGUtc2FuZGJveC1saW51eC1zdGF0LnBh dGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0YmZiNWQ0OTRiMDYuLjAwMDAwMDAw MDAwMAotLS0gYS9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMveHh4LXBwYzY0bGUtc2FuZGJveC1s aW51eC1zdGF0LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMzEgKzAsMCBAQAotLS0tIGEvc2Fu ZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9saW51eF9zdGF0LmgKLSsrKyBiL3NhbmRib3gvbGlu dXgvc3lzdGVtX2hlYWRlcnMvbGludXhfc3RhdC5oCi1AQCAtMTU1LDYgKzE1NSwyOCBAQCBzdHJ1 Y3Qga2VybmVsX3N0YXQgewotICAgdW5zaWduZWQgaW50IF9fdW51c2VkNDsKLSAgIHVuc2lnbmVk IGludCBfX3VudXNlZDU7Ci0gfTsKLSsjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rc3Ry dWN0IGtlcm5lbF9zdGF0IHsKLSsgIHVuc2lnbmVkIGxvbmcJc3RfZGV2OwotKyAgdW5zaWduZWQg bG9uZwlzdF9pbm87Ci0rICB1bnNpZ25lZCBsb25nCXN0X25saW5rOwotKyAgdW5zaWduZWQgaW50 CXN0X21vZGU7Ci0rICB1bnNpZ25lZCBpbnQJc3RfdWlkOwotKyAgdW5zaWduZWQgaW50CXN0X2dp ZDsKLSsgIHVuc2lnbmVkIGxvbmcJc3RfcmRldjsKLSsgIGxvbmcJCXN0X3NpemU7Ci0rICB1bnNp Z25lZCBsb25nCXN0X2Jsa3NpemU7Ci0rICB1bnNpZ25lZCBsb25nCXN0X2Jsb2NrczsKLSsgIHVu c2lnbmVkIGxvbmcJc3RfYXRpbWVfOwotKyAgdW5zaWduZWQgbG9uZwlzdF9hdGltZV9uc2VjXzsK LSsgIHVuc2lnbmVkIGxvbmcJc3RfbXRpbWVfOwotKyAgdW5zaWduZWQgbG9uZwlzdF9tdGltZV9u c2VjXzsKLSsgIHVuc2lnbmVkIGxvbmcJc3RfY3RpbWVfOwotKyAgdW5zaWduZWQgbG9uZwlzdF9j dGltZV9uc2VjXzsKLSsgIHVuc2lnbmVkIGxvbmcJX191bnVzZWQ0OwotKyAgdW5zaWduZWQgbG9u ZwlfX3VudXNlZDU7Ci0rICB1bnNpZ25lZCBsb25nCV9fdW51c2VkNjsKLSt9OwotICNlbmRpZgot IAotIC8vIE9uIDMyLWJpdCBzeXN0ZW1zLCB3ZSBkZWZhdWx0IHRvIHRoZSA2NC1iaXQgc3RhdCBz dHJ1Y3QgbGlrZSBsaWJjCmRpZmYgLS1naXQgYS9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMveHh4 LXBwYzY0bGUtc3VwcG9ydC5wYXRjaCBiL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy94eHgtcHBj NjRsZS1zdXBwb3J0LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwYmM1MDUz NTg5MTYuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMveHh4LXBw YzY0bGUtc3VwcG9ydC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDM1OTAgKzAsMCBAQAotY29t bWl0IDJjMDEzYTMxN2IxMTE0ZWY2N2NkYmJjMzA4MjRiMjg5MDdiOWVhOTQKLUF1dGhvcjogRGFu aWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+Ci1EYXRlOiAgIFdlZCBNYXIgMyAxOTow ODoyOSAyMDIxICswMTAwCi0KLSAgICBwcGM2NGxlIHN1cHBvcnQKLQotZGlmZiAtLWdpdCBhL2J1 aWxkL2Rvd25sb2FkX25hY2xfdG9vbGNoYWlucy5weSBiL2J1aWxkL2Rvd25sb2FkX25hY2xfdG9v bGNoYWlucy5weQotaW5kZXggMjg2YTkyYTI3Li5lYzM2YTg1ZDMgMTAwNzU1Ci0tLS0gYS9idWls ZC9kb3dubG9hZF9uYWNsX3Rvb2xjaGFpbnMucHkKLSsrKyBiL2J1aWxkL2Rvd25sb2FkX25hY2xf dG9vbGNoYWlucy5weQotQEAgLTEzLDYgKzEzLDEwIEBAIGltcG9ydCBzeXMKLSAKLSAKLSBkZWYg TWFpbihhcmdzKToKLSsgICMgSWYgYGRpc2FibGVfbmFjbD0xYCBpcyBpbiBHWVBfREVGSU5FUywg ZXhpdAotKyAgaWYgJ2Rpc2FibGVfbmFjbD0xJyBpbiBvcy5lbnZpcm9uLmdldCgnR1lQX0RFRklO RVMnLCAnJyk6Ci0rICAgIHJldHVybiAwCi0rCi0gICBzY3JpcHRfZGlyID0gb3MucGF0aC5kaXJu YW1lKG9zLnBhdGguYWJzcGF0aChfX2ZpbGVfXykpCi0gICBzcmNfZGlyID0gb3MucGF0aC5kaXJu YW1lKHNjcmlwdF9kaXIpCi0gICBuYWNsX2RpciA9IG9zLnBhdGguam9pbihzcmNfZGlyLCAnbmF0 aXZlX2NsaWVudCcpCi0tLS0gYS9jaHJvbWUvaW5zdGFsbGVyL2xpbnV4L0JVSUxELmduCi0rKysg Yi9jaHJvbWUvaW5zdGFsbGVyL2xpbnV4L0JVSUxELmduCi1AQCAtOTcsOCArOTcsNiBAQAotICAg ICAgICAgICAgICAgICAgICAgIiRyb290X291dF9kaXIveGRnLW1pbWUiLAotICAgICAgICAgICAg ICAgICAgICAgIiRyb290X291dF9kaXIveGRnLXNldHRpbmdzIiwKLSAgICAgICAgICAgICAgICAg ICAgICIkcm9vdF9vdXRfZGlyL2xvY2FsZXMvZW4tVVMucGFrIiwKLS0gICAgICAgICAgICAgICAg ICAgICIkcm9vdF9vdXRfZGlyL01FSVByZWxvYWQvbWFuaWZlc3QuanNvbiIsCi0tICAgICAgICAg ICAgICAgICAgICAiJHJvb3Rfb3V0X2Rpci9NRUlQcmVsb2FkL3ByZWxvYWRlZF9kYXRhLnBiIiwK LSAgICAgICAgICAgICAgICAgICBdCi0gCi0gYWN0aW9uX2ZvcmVhY2goImNhbGN1bGF0ZV9kZWJf ZGVwZW5kZW5jaWVzIikgewotQEAgLTM3Nyw3ICszNzcsNiBAQAotICAgICAiLy9jaHJvbWUiLAot ICAgICAiLy9jaHJvbWU6cGFja2VkX3Jlc291cmNlcyIsCi0gICAgICIvL2Nocm9tZS9icm93c2Vy L2VudGVycHJpc2UvY29ubmVjdG9ycy9kZXZpY2VfdHJ1c3Qva2V5X21hbmFnZW1lbnQvaW5zdGFs bGVyL21hbmFnZW1lbnRfc2VydmljZTpjaHJvbWVfbWFuYWdlbWVudF9zZXJ2aWNlIiwKLS0gICAg Ii8vY2hyb21lL2Jyb3dzZXIvcmVzb3VyY2VzL21lZGlhL21laV9wcmVsb2FkOmNvbXBvbmVudCIs Ci0gICAgICIvL2NvbXBvbmVudHMvY3Jhc2gvY29yZS9hcHA6Y2hyb21lX2NyYXNocGFkX2hhbmRs ZXIiLAotICAgICAiLy9zYW5kYm94L2xpbnV4OmNocm9tZV9zYW5kYm94IiwKLSAgIF0KLWRpZmYg LS1naXQgYS9zYW5kYm94L2ZlYXR1cmVzLmduaSBiL3NhbmRib3gvZmVhdHVyZXMuZ25pCi1pbmRl eCBkYjMwYWU2ZDYuLjlkYzA5YmY1MyAxMDA2NDQKLS0tLSBhL3NhbmRib3gvZmVhdHVyZXMuZ25p Ci0rKysgYi9zYW5kYm94L2ZlYXR1cmVzLmduaQotQEAgLTExLDcgKzExLDggQEAgaW1wb3J0KCIv L2J1aWxkL2NvbmZpZy9uYWNsL2NvbmZpZy5nbmkiKQotIHVzZV9zZWNjb21wX2JwZiA9IChpc19s aW51eCB8fCBpc19jaHJvbWVvcyB8fCBpc19hbmRyb2lkKSAmJgotICAgICAgICAgICAgICAgICAg IChjdXJyZW50X2NwdSA9PSAieDg2IiB8fCBjdXJyZW50X2NwdSA9PSAieDY0IiB8fAotICAgICAg ICAgICAgICAgICAgICBjdXJyZW50X2NwdSA9PSAiYXJtIiB8fCBjdXJyZW50X2NwdSA9PSAiYXJt NjQiIHx8Ci0tICAgICAgICAgICAgICAgICAgIGN1cnJlbnRfY3B1ID09ICJtaXBzZWwiIHx8IGN1 cnJlbnRfY3B1ID09ICJtaXBzNjRlbCIpCi0rICAgICAgICAgICAgICAgICAgIGN1cnJlbnRfY3B1 ID09ICJtaXBzZWwiIHx8IGN1cnJlbnRfY3B1ID09ICJtaXBzNjRlbCIgfHwKLSsgICAgICAgICAg ICAgICAgICAgY3VycmVudF9jcHUgPT0gInBwYzY0IikKLSAKLSB1c2Vfc2VjY29tcF9icGYgPSB1 c2Vfc2VjY29tcF9icGYgfHwgaXNfbmFjbF9ub25zZmkKLSAKLWRpZmYgLS1naXQgYS9zYW5kYm94 L2xpbnV4L0JVSUxELmduIGIvc2FuZGJveC9saW51eC9CVUlMRC5nbgotaW5kZXggZTlhOTRiNDYx Li5jY2ExYTVkYTUgMTAwNjQ0Ci0tLS0gYS9zYW5kYm94L2xpbnV4L0JVSUxELmduCi0rKysgYi9z YW5kYm94L2xpbnV4L0JVSUxELmduCi1AQCAtNDI3LDYgKzQyNyw4IEBAIGNvbXBvbmVudCgic2Fu ZGJveF9zZXJ2aWNlcyIpIHsKLSAKLSBzb3VyY2Vfc2V0KCJzYW5kYm94X3NlcnZpY2VzX2hlYWRl cnMiKSB7Ci0gICBzb3VyY2VzID0gWwotKyAgICAic3lzdGVtX2hlYWRlcnMvcHBjNjRfbGludXhf c3lzY2FsbHMuaCIsCi0rICAgICJzeXN0ZW1faGVhZGVycy9wcGM2NF9saW51eF91Y29udGV4dC5o IiwKLSAgICAgInN5c3RlbV9oZWFkZXJzL2FybTY0X2xpbnV4X3N5c2NhbGxzLmgiLAotICAgICAi c3lzdGVtX2hlYWRlcnMvYXJtX2xpbnV4X3N5c2NhbGxzLmgiLAotICAgICAic3lzdGVtX2hlYWRl cnMvYXJtX2xpbnV4X3Vjb250ZXh0LmgiLAotZGlmZiAtLWdpdCBhL3NhbmRib3gvbGludXgvYnBm X2RzbC9saW51eF9zeXNjYWxsX3Jhbmdlcy5oIGIvc2FuZGJveC9saW51eC9icGZfZHNsL2xpbnV4 X3N5c2NhbGxfcmFuZ2VzLmgKLWluZGV4IDMxMzUxMWYyMi4uMGNhM2EzMjZmIDEwMDY0NAotLS0t IGEvc2FuZGJveC9saW51eC9icGZfZHNsL2xpbnV4X3N5c2NhbGxfcmFuZ2VzLmgKLSsrKyBiL3Nh bmRib3gvbGludXgvYnBmX2RzbC9saW51eF9zeXNjYWxsX3Jhbmdlcy5oCi1AQCAtNTYsNiArNTYs MTMgQEAKLSAjZGVmaW5lIE1BWF9QVUJMSUNfU1lTQ0FMTCBfX05SX3N5c2NhbGxzCi0gI2RlZmlu ZSBNQVhfU1lTQ0FMTCBNQVhfUFVCTElDX1NZU0NBTEwKLSAKLSsjZWxpZiBkZWZpbmVkKF9fcG93 ZXJwYzY0X18pCi0rCi0rI2luY2x1ZGUgPGFzbS1nZW5lcmljL3VuaXN0ZC5oPgotKyNkZWZpbmUg TUlOX1NZU0NBTEwgMHUKLSsjZGVmaW5lIE1BWF9QVUJMSUNfU1lTQ0FMTCBfX05SX3N5c2NhbGxz Ci0rI2RlZmluZSBNQVhfU1lTQ0FMTCBNQVhfUFVCTElDX1NZU0NBTEwKLSsKLSAjZWxzZQotICNl cnJvciAiVW5zdXBwb3J0ZWQgYXJjaGl0ZWN0dXJlIgotICNlbmRpZgotZGlmZiAtLWdpdCBhL3Nh bmRib3gvbGludXgvYnBmX2RzbC9zZWNjb21wX21hY3Jvcy5oIGIvc2FuZGJveC9saW51eC9icGZf ZHNsL3NlY2NvbXBfbWFjcm9zLmgKLWluZGV4IDFhNDA3Yjk1Mi4uYTZhZWM1NDRlIDEwMDY0NAot LS0tIGEvc2FuZGJveC9saW51eC9icGZfZHNsL3NlY2NvbXBfbWFjcm9zLmgKLSsrKyBiL3NhbmRi b3gvbGludXgvYnBmX2RzbC9zZWNjb21wX21hY3Jvcy5oCi1AQCAtMTYsNiArMTYsOSBAQAotICNp ZiBkZWZpbmVkKF9fbWlwc19fKQotIC8vIHN5cy91c2VyLmggaW4gZWdsaWJjIG1pc3NlcyBzaXpl X3QgZGVmaW5pdGlvbgotICNpbmNsdWRlIDxzdGRkZWYuaD4KLSsjZWxpZiBkZWZpbmVkKF9fcG93 ZXJwYzY0X18pCi0rLy8gTWFudWFsbHkgZGVmaW5lIGdyZWdfdCBvbiBwcGM2NAotK3R5cGVkZWYg dW5zaWduZWQgbG9uZyBsb25nIGdyZWdfdDsKLSAjZW5kaWYKLSAjZW5kaWYKLSAKLUBAIC0zNDYs NiArMzQ5LDUxIEBAIHN0cnVjdCByZWdzX3N0cnVjdCB7Ci0gI2RlZmluZSBTRUNDT01QX1BUX1BB Uk00KF9yZWdzKSAoX3JlZ3MpLnJlZ3NbM10KLSAjZGVmaW5lIFNFQ0NPTVBfUFRfUEFSTTUoX3Jl Z3MpIChfcmVncykucmVnc1s0XQotICNkZWZpbmUgU0VDQ09NUF9QVF9QQVJNNihfcmVncykgKF9y ZWdzKS5yZWdzWzVdCi0rCi0rI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotKyNpbmNsdWRl IDxhc20vcHRyYWNlLmg+Ci0rCi0rdHlwZWRlZiBzdHJ1Y3QgcHRfcmVncyByZWdzX3N0cnVjdDsK LSsKLSsjaWZkZWYgQVJDSF9DUFVfTElUVExFX0VORElBTgotKyNkZWZpbmUgU0VDQ09NUF9BUkNI IEFVRElUX0FSQ0hfUFBDNjRMRQotKyNlbHNlCi0rI2RlZmluZSBTRUNDT01QX0FSQ0ggQVVESVRf QVJDSF9QUEM2NAotKyNlbmRpZgotKwotKyNkZWZpbmUgU0VDQ09NUF9SRUcoX2N0eCwgX3JlZykg KChfY3R4KS0+dWNfbWNvbnRleHQucmVncy0+Z3ByW19yZWddKQotKwotKyNkZWZpbmUgU0VDQ09N UF9SRVNVTFQoX2N0eCkgU0VDQ09NUF9SRUcoX2N0eCwgMykKLSsjZGVmaW5lIFNFQ0NPTVBfU1lT Q0FMTChfY3R4KSBTRUNDT01QX1JFRyhfY3R4LCAwKQotKyNkZWZpbmUgU0VDQ09NUF9JUChfY3R4 KSAoX2N0eCktPnVjX21jb250ZXh0LnJlZ3MtPm5pcAotKyNkZWZpbmUgU0VDQ09NUF9QQVJNMShf Y3R4KSBTRUNDT01QX1JFRyhfY3R4LCAzKQotKyNkZWZpbmUgU0VDQ09NUF9QQVJNMihfY3R4KSBT RUNDT01QX1JFRyhfY3R4LCA0KQotKyNkZWZpbmUgU0VDQ09NUF9QQVJNMyhfY3R4KSBTRUNDT01Q X1JFRyhfY3R4LCA1KQotKyNkZWZpbmUgU0VDQ09NUF9QQVJNNChfY3R4KSBTRUNDT01QX1JFRyhf Y3R4LCA2KQotKyNkZWZpbmUgU0VDQ09NUF9QQVJNNShfY3R4KSBTRUNDT01QX1JFRyhfY3R4LCA3 KQotKyNkZWZpbmUgU0VDQ09NUF9QQVJNNihfY3R4KSBTRUNDT01QX1JFRyhfY3R4LCA4KQotKwot KyNkZWZpbmUgU0VDQ09NUF9OUl9JRFggKG9mZnNldG9mKHN0cnVjdCBhcmNoX3NlY2NvbXBfZGF0 YSwgbnIpKQotKyNkZWZpbmUgU0VDQ09NUF9BUkNIX0lEWCAob2Zmc2V0b2Yoc3RydWN0IGFyY2hf c2VjY29tcF9kYXRhLCBhcmNoKSkKLSsjZGVmaW5lIFNFQ0NPTVBfSVBfTVNCX0lEWCBcCi0rICAo b2Zmc2V0b2Yoc3RydWN0IGFyY2hfc2VjY29tcF9kYXRhLCBpbnN0cnVjdGlvbl9wb2ludGVyKSAr IDQpCi0rI2RlZmluZSBTRUNDT01QX0lQX0xTQl9JRFggXAotKyAgKG9mZnNldG9mKHN0cnVjdCBh cmNoX3NlY2NvbXBfZGF0YSwgaW5zdHJ1Y3Rpb25fcG9pbnRlcikgKyAwKQotKyNkZWZpbmUgU0VD Q09NUF9BUkdfTVNCX0lEWChucikgXAotKyAgKG9mZnNldG9mKHN0cnVjdCBhcmNoX3NlY2NvbXBf ZGF0YSwgYXJncykgKyA4ICogKG5yKSArIDQpCi0rI2RlZmluZSBTRUNDT01QX0FSR19MU0JfSURY KG5yKSBcCi0rICAob2Zmc2V0b2Yoc3RydWN0IGFyY2hfc2VjY29tcF9kYXRhLCBhcmdzKSArIDgg KiAobnIpICsgMCkKLSsKLSsjZGVmaW5lIFNFQ0NPTVBfUFRfUkVTVUxUKF9yZWdzKSAoX3JlZ3Mp LmdwclszXQotKyNkZWZpbmUgU0VDQ09NUF9QVF9TWVNDQUxMKF9yZWdzKSAoX3JlZ3MpLmdwclsw XQotKyNkZWZpbmUgU0VDQ09NUF9QVF9JUChfcmVncykgKF9yZWdzKS5uaXAKLSsjZGVmaW5lIFNF Q0NPTVBfUFRfUEFSTTEoX3JlZ3MpIChfcmVncykuZ3ByWzNdCi0rI2RlZmluZSBTRUNDT01QX1BU X1BBUk0yKF9yZWdzKSAoX3JlZ3MpLmdwcls0XQotKyNkZWZpbmUgU0VDQ09NUF9QVF9QQVJNMyhf cmVncykgKF9yZWdzKS5ncHJbNV0KLSsjZGVmaW5lIFNFQ0NPTVBfUFRfUEFSTTQoX3JlZ3MpIChf cmVncykuZ3ByWzZdCi0rI2RlZmluZSBTRUNDT01QX1BUX1BBUk01KF9yZWdzKSAoX3JlZ3MpLmdw cls3XQotKyNkZWZpbmUgU0VDQ09NUF9QVF9QQVJNNihfcmVncykgKF9yZWdzKS5ncHJbOF0KLSsK LSAjZWxzZQotICNlcnJvciBVbnN1cHBvcnRlZCB0YXJnZXQgcGxhdGZvcm0KLSAKLWRpZmYgLS1n aXQgYS9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvYmFzZWxpbmVfcG9saWN5LmNj IGIvc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL2Jhc2VsaW5lX3BvbGljeS5jYwot aW5kZXggNmExZWMyMzg5Li5mMjBjNTgyZGQgMTAwNjQ0Ci0tLS0gYS9zYW5kYm94L2xpbnV4L3Nl Y2NvbXAtYnBmLWhlbHBlcnMvYmFzZWxpbmVfcG9saWN5LmNjCi0rKysgYi9zYW5kYm94L2xpbnV4 L3NlY2NvbXAtYnBmLWhlbHBlcnMvYmFzZWxpbmVfcG9saWN5LmNjCi1AQCAtODgsNyArODgsOCBA QCBib29sIElzQmFzZWxpbmVQb2xpY3lXYXRjaGVkKGludCBzeXNubykgewotICAgICAgICAgIFN5 c2NhbGxTZXRzOjpJc1ByY3RsKHN5c25vKSB8fAotICAgICAgICAgIFN5c2NhbGxTZXRzOjpJc1By b2Nlc3NHcm91cE9yU2Vzc2lvbihzeXNubykgfHwKLSAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwg XAotLSAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQ VV8zMl9CSVRTKSkKLSsgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmlu ZWQoQVJDSF9DUFVfMzJfQklUUykpIHx8IFwKLSsgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQot ICAgICAgICAgIFN5c2NhbGxTZXRzOjpJc1NvY2tldENhbGwoc3lzbm8pIHx8Ci0gI2VuZGlmCi0g I2lmIGRlZmluZWQoX19hcm1fXykKLUBAIC0yMjcsNyArMjI4LDcgQEAgUmVzdWx0RXhwciBFdmFs dWF0ZVN5c2NhbGxJbXBsKGludCBmc19kZW5pZWRfZXJybm8sCi0gICB9Ci0gCi0gI2lmIGRlZmlu ZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX21pcHNfXykg fHwgXAotLSAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKQotKyAgICBkZWZpbmVkKF9fYWFyY2g2NF9f KSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICBpZiAoc3lzbm8gPT0gX19OUl9tbWFwKQot ICAgICByZXR1cm4gUmVzdHJpY3RNbWFwRmxhZ3MoKTsKLSAjZW5kaWYKLUBAIC0yNDUsNyArMjQ2 LDcgQEAgUmVzdWx0RXhwciBFdmFsdWF0ZVN5c2NhbGxJbXBsKGludCBmc19kZW5pZWRfZXJybm8s Ci0gICAgIHJldHVybiBSZXN0cmljdFByY3RsKCk7Ci0gCi0gI2lmIGRlZmluZWQoX194ODZfNjRf XykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBcCi0tICAgIGRl ZmluZWQoX19hYXJjaDY0X18pCi0rICAgIGRlZmluZWQoX19hYXJjaDY0X18pIHx8IGRlZmluZWQo X19wb3dlcnBjNjRfXykKLSAgIGlmIChzeXNubyA9PSBfX05SX3NvY2tldHBhaXIpIHsKLSAgICAg Ly8gT25seSBhbGxvdyBBRl9VTklYLCBQRl9VTklYLiBDcmFzaCBpZiBhbnl0aGluZyBlbHNlIGlz IHNlZW4uCi0gICAgIHN0YXRpY19hc3NlcnQoQUZfVU5JWCA9PSBQRl9VTklYLAotQEAgLTI4NSw3 ICsyODYsOCBAQCBSZXN1bHRFeHByIEV2YWx1YXRlU3lzY2FsbEltcGwoaW50IGZzX2RlbmllZF9l cnJubywKLSAgIH0KLSAKLSAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgXAotLSAgICAoZGVmaW5l ZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkKLSsg ICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJf QklUUykpIHx8IFwKLSsgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgaWYgKFN5c2NhbGxT ZXRzOjpJc1NvY2tldENhbGwoc3lzbm8pKQotICAgICByZXR1cm4gUmVzdHJpY3RTb2NrZXRjYWxs Q29tbWFuZCgpOwotICNlbmRpZgotZGlmZiAtLWdpdCBhL3NhbmRib3gvbGludXgvc2VjY29tcC1i cGYtaGVscGVycy9iYXNlbGluZV9wb2xpY3lfdW5pdHRlc3QuY2MgYi9zYW5kYm94L2xpbnV4L3Nl Y2NvbXAtYnBmLWhlbHBlcnMvYmFzZWxpbmVfcG9saWN5X3VuaXR0ZXN0LmNjCi1pbmRleCAwMWMw NDZkZGEuLjdlNWE2YmU4MiAxMDA2NDQKLS0tLSBhL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYt aGVscGVycy9iYXNlbGluZV9wb2xpY3lfdW5pdHRlc3QuY2MJMjAyMS0wNC0xNSAxMzoxMToxMC40 ODE1Nzk0NzAgLTA0MDAKLSsrKyBiL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9i YXNlbGluZV9wb2xpY3lfdW5pdHRlc3QuY2MJMjAyMS0wNC0xNSAxMzoxMjo0My41MjQ4MzEzNzYg LTA0MDAKLUBAIC0zMDIsNyArMzAyLDcgQEAKLSBURVNUX0JBU0VMSU5FX1NJR1NZUyhfX05SX3N5 c2xvZykKLSBURVNUX0JBU0VMSU5FX1NJR1NZUyhfX05SX3RpbWVyX2NyZWF0ZSkKLSAKLS0jaWYg IWRlZmluZWQoX19hYXJjaDY0X18pCi0rI2lmICFkZWZpbmVkKF9fYWFyY2g2NF9fKSAmJiAhZGVm aW5lZChfX3Bvd2VycGM2NF9fKQotIFRFU1RfQkFTRUxJTkVfU0lHU1lTKF9fTlJfaW5vdGlmeV9p bml0KQotIFRFU1RfQkFTRUxJTkVfU0lHU1lTKF9fTlJfdnNlcnZlcikKLSAjZW5kaWYKLWRpZmYg LS1naXQgYS9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc2lnc3lzX2hhbmRsZXJz LmNjIGIvc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3NpZ3N5c19oYW5kbGVycy5j YwotaW5kZXggMDFjMDQ2ZGRhLi43ZTVhNmJlODIgMTAwNjQ0Ci0tLS0gYS9zYW5kYm94L2xpbnV4 L3NlY2NvbXAtYnBmLWhlbHBlcnMvc2lnc3lzX2hhbmRsZXJzLmNjCi0rKysgYi9zYW5kYm94L2xp bnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc2lnc3lzX2hhbmRsZXJzLmNjCi1AQCAtMzU4LDcgKzM1 OCwxNiBAQAotICAgaWYgKGFyZ3MubnIgPT0gX19OUl9mc3RhdGF0X2RlZmF1bHQpIHsKLSAgICAg aWYgKCpyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihhcmdzLmFyZ3NbMV0pID09ICdcMCcg JiYKLSAgICAgICAgIGFyZ3MuYXJnc1szXSA9PSBzdGF0aWNfY2FzdDx1aW50NjRfdD4oQVRfRU1Q VFlfUEFUSCkpIHsKLS0gICAgICByZXR1cm4gc3lzY2FsbChfX05SX2ZzdGF0X2RlZmF1bHQsIHN0 YXRpY19jYXN0PGludD4oYXJncy5hcmdzWzBdKSwKLSsgICAgICAgICAgaW50IGZkID0gc3RhdGlj X2Nhc3Q8aW50PihhcmdzLmFyZ3NbMF0pOwotKyNpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0r ICAgICAgLy8gT24gcHBjNjQrZ2xpYmMsIHNvbWUgc3lzY2FsbHMgc2VlbSB0byBhY2NpZGVudGFs bHkgbmVnYXRlIHRoZSBmaXJzdAotKyAgICAgIC8vIHBhcmFtZXRlciB3aGljaCBjYXVzZXMgY2hl Y2tzIGFnYWluc3QgaXQgdG8gZmFpbC4gRm9yIG5vdywgbWFudWFsbHkKLSsgICAgICAvLyBuZWdh dGUgdGhlbSBiYWNrLgotKyAgICAgIC8vIFRPRE86IEludmVzdGlnYXRlIHRoZSByb290IGNhdXNl IGFuZCBmaXggaW4gZ2xpYmMKLSsgICAgICBpZiAoZmQgPCAwKQotKyAgICAgICAgZmQgPSAtZmQ7 Ci0rI2VuZGlmCi0rICAgICAgcmV0dXJuIHN5c2NhbGwoX19OUl9mc3RhdF9kZWZhdWx0LCBmZCwK LSAgICAgICAgICAgICAgICAgICAgICByZWludGVycHJldF9jYXN0PGRlZmF1bHRfc3RhdF9zdHJ1 Y3QqPihhcmdzLmFyZ3NbMl0pKTsKLSAgICAgfQotICAgICByZXR1cm4gLXJlaW50ZXJwcmV0X2Nh c3Q8aW50cHRyX3Q+KGZzX2RlbmllZF9lcnJubyk7Ci1kaWZmIC0tZ2l0IGEvc2FuZGJveC9saW51 eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5c2NhbGxfcGFyYW1ldGVyc19yZXN0cmljdGlvbnMuY2Mg Yi9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc3lzY2FsbF9wYXJhbWV0ZXJzX3Jl c3RyaWN0aW9ucy5jYwotaW5kZXggMmE5N2QzOTE2Li44ZTgxYWE2Y2YgMTAwNjQ0Ci0tLS0gYS9z YW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc3lzY2FsbF9wYXJhbWV0ZXJzX3Jlc3Ry aWN0aW9ucy5jYwkyMDIxLTA0LTE0IDE0OjQxOjA4LjAwMDAwMDAwMCAtMDQwMAotKysrIGIvc2Fu ZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5c2NhbGxfcGFyYW1ldGVyc19yZXN0cmlj dGlvbnMuY2MJMjAyMS0wNC0xNSAxMzoxNzo1Ny44MDg3MTU3MzMgLTA0MDAKLUBAIC0zNyw3ICsz Nyw4IEBACi0gCi0gI2lmIChCVUlMREZMQUcoSVNfTElOVVgpIHx8IEJVSUxERkxBRyhJU19DSFJP TUVPU19MQUNST1MpKSAmJiBcCi0gICAgICFkZWZpbmVkKF9fYXJtX18pICYmICFkZWZpbmVkKF9f YWFyY2g2NF9fKSAmJiAgICAgICAgICAgICBcCi0tICAgICFkZWZpbmVkKFBUUkFDRV9HRVRfVEhS RUFEX0FSRUEpCi0rICAgICFkZWZpbmVkKFBUUkFDRV9HRVRfVEhSRUFEX0FSRUEpICYmICAgICAg ICAgICAgICAgICAgICAgICBcCi0rICAgICFkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gLy8gQWxz byBpbmNsdWRlIGFzbS9wdHJhY2UtYWJpLmggc2luY2UgcHRyYWNlLmggaW4gb2xkZXIgbGliYyAo Zm9yIGluc3RhbmNlCi0gLy8gdGhlIG9uZSBpbiBVYnVudHUgMTYuMDQgTFRTKSBpcyBtaXNzaW5n IFBUUkFDRV9HRVRfVEhSRUFEX0FSRUEuCi0gLy8gYXNtL3B0cmFjZS1hYmkuaCBkb2Vzbid0IGV4 aXN0IG9uIGFybTMyIGFuZCBQVFJBQ0VfR0VUX1RIUkVBRF9BUkVBIGlzbid0Ci1AQCAtNDUsNiAr NDYsMTEgQEAKLSAjaW5jbHVkZSA8YXNtL3B0cmFjZS1hYmkuaD4KLSAjZW5kaWYKLSAKLSsvLyBP biBQUEM2NCwgVENHRVRTIGlzIGRlZmluZWQgaW4gdGVybXMgb2Ygc3RydWN0IHRlcm1pb3MsIHNv IHdlIG11c3QgaW5jbHVkZSB0ZXJtaW9zLmgKLSsjaWZkZWYgX19wb3dlcnBjNjRfXwotKyNpbmNs dWRlIDx0ZXJtaW9zLmg+Ci0rI2VuZGlmCi0rCi0gI2lmIEJVSUxERkxBRyhJU19BTkRST0lEKQot IAotICNpZiAhZGVmaW5lZChGX0RVUEZEX0NMT0VYRUMpCi1AQCAtOTksNiArMTA1LDE0IEBACi0g ICByZXR1cm4gdHJ1ZTsKLSAjZWxzZQotICAgcmV0dXJuIGZhbHNlOwotKyNlbmRpZgotK30KLSsK LStpbmxpbmUgYm9vbCBJc0FyY2hpdGVjdHVyZVBQQzY0KCkgewotKyNpZiBkZWZpbmVkKF9fcG93 ZXJwYzY0X18pCi0rICByZXR1cm4gdHJ1ZTsKLSsjZWxzZQotKyAgcmV0dXJuIGZhbHNlOwotICNl bmRpZgotIH0KLSAKLUBAIC0yMzksNiArMjU0LDggQEAKLSAgIHVpbnQ2NF90IGtPTGFyZ2VGaWxl RmxhZyA9IE9fTEFSR0VGSUxFOwotICAgaWYgKElzQXJjaGl0ZWN0dXJlWDg2XzY0KCkgfHwgSXNB cmNoaXRlY3R1cmVJMzg2KCkgfHwgSXNBcmNoaXRlY3R1cmVNaXBzKCkpCi0gICAgIGtPTGFyZ2VG aWxlRmxhZyA9IDAxMDAwMDA7Ci0rICBlbHNlIGlmIChJc0FyY2hpdGVjdHVyZVBQQzY0KCkpCi0r ICAgIGtPTGFyZ2VGaWxlRmxhZyA9IDAyMDAwMDA7Ci0gCi0gICBjb25zdCBBcmc8aW50PiBjbWQo MSk7Ci0gICBjb25zdCBBcmc8bG9uZz4gbG9uZ19hcmcoMik7Ci1AQCAtMjU2LDcgKzI3MywxNiBA QAotICAgICAgICAgICAgICAgRl9TRVRMS1csCi0gICAgICAgICAgICAgICBGX0dFVExLLAotICAg ICAgICAgICAgICAgRl9EVVBGRCwKLS0gICAgICAgICAgICAgIEZfRFVQRkRfQ0xPRVhFQyksCi0r ICAgICAgICAgICAgICBGX0RVUEZEX0NMT0VYRUMKLSsjaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9f KQotKy8vIE9uIFBQQzY0LCBGX1NFVExLLCBGX0dFVExLLCBGX1NFVExLVyBhcmUgZGVmaW5lZCBh cyB0aGUgNjQtYml0IHZhcmlhbnRzCi0rLy8gYnV0IGdsaWJjIHdpbGwgc29tZXRpbWVzIHN0aWxs IHVzZSB0aGUgMzItYml0IHZlcnNpb25zLiBBbGxvdyBib3RoLgotKyAgICAgICAgICAgICAgLAot KyAgICAgICAgICAgICAgNSwgLyogRl9HRVRMSyAoMzIpICovCi0rICAgICAgICAgICAgICA2LCAv KiBGX1NFVExLICgzMikgKi8KLSsgICAgICAgICAgICAgIDcgIC8qIEZfU0VUTEtXICgzMikgKi8K LSsjZW5kaWYKLSsJICAgICApLAotICAgICAgICAgICAgICBBbGxvdygpKQotICAgICAgIC5DYXNl KEZfU0VURkwsCi0gICAgICAgICAgICAgSWYoKGxvbmdfYXJnICYgfmtBbGxvd2VkTWFzaykgPT0g MCwgQWxsb3coKSkuRWxzZShDcmFzaFNJR1NZUygpKSkKLUBAIC0yNjYsNyArMjkyLDcgQEAKLSAg IC8vIGNsYW5nLWZvcm1hdCBvbgotIH0KLSAKLS0jaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVm aW5lZChfX21pcHNfXykKLSsjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX21pcHNf XykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotIFJlc3VsdEV4cHIgUmVzdHJpY3RTb2NrZXRj YWxsQ29tbWFuZCgpIHsKLSAgIC8vIFVuZm9ydHVuYXRlbHksIHdlIGFyZSB1bmFibGUgdG8gcmVz dHJpY3QgdGhlIGZpcnN0IHBhcmFtZXRlciB0bwotICAgLy8gc29ja2V0cGFpcigyKS4gV2hpbHN0 IGluaXRpYWxseSBzb3VuZGluZyBiYWQsIGl0J3Mgbm90ZXdvcnRoeSB0aGF0IHZlcnkKLUBAIC00 MTksNyArNDQ1LDcgQEAKLSAjZW5kaWYKLSAgIHJldHVybiBTd2l0Y2gocmVxdWVzdCkKLSAgICAg ICAuQ0FTRVMoKAotLSNpZiAhZGVmaW5lZChfX2FhcmNoNjRfXykKLSsjaWYgIWRlZmluZWQoX19h YXJjaDY0X18pICYmICFkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAgICAgICAgICAgICAgICBQ VFJBQ0VfR0VUUkVHUywgUFRSQUNFX0dFVEZQUkVHUywgUFRSQUNFX0dFVF9USFJFQURfQVJFQSwK LSAgICAgICAgICAgICAgICAgIFBUUkFDRV9HRVRSRUdTRVQsCi0gI2VuZGlmCi1kaWZmIC0tZ2l0 IGEvc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5c2NhbGxfcGFyYW1ldGVyc19y ZXN0cmljdGlvbnMuaCBiL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9zeXNjYWxs X3BhcmFtZXRlcnNfcmVzdHJpY3Rpb25zLmgKLWluZGV4IGJhNDI4OWYwNS4uOWE0ZDVhYjJkIDEw MDY0NAotLS0tIGEvc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5c2NhbGxfcGFy YW1ldGVyc19yZXN0cmljdGlvbnMuaAotKysrIGIvc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1o ZWxwZXJzL3N5c2NhbGxfcGFyYW1ldGVyc19yZXN0cmljdGlvbnMuaAotQEAgLTQ4LDcgKzQ4LDcg QEAgU0FOREJPWF9FWFBPUlQgYnBmX2RzbDo6UmVzdWx0RXhwciBSZXN0cmljdE1wcm90ZWN0Rmxh Z3MoKTsKLSAvLyBPX05PTkJMT0NLIHwgT19TWU5DIHwgT19MQVJHRUZJTEUgfCBPX0NMT0VYRUMg fCBPX05PQVRJTUUuCi0gU0FOREJPWF9FWFBPUlQgYnBmX2RzbDo6UmVzdWx0RXhwciBSZXN0cmlj dEZjbnRsQ29tbWFuZHMoKTsKLSAKLS0jaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChf X21pcHNfXykKLSsjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX21pcHNfXykgfHwg ZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotIC8vIFJlc3RyaWN0IHNvY2tldGNhbGwoMikgdG8gb25s eSBhbGxvdyBzb2NrZXRwYWlyKDIpLCBzZW5kKDIpLCByZWN2KDIpLAotIC8vIHNlbmR0bygyKSwg cmVjdmZyb20oMiksIHNodXRkb3duKDIpLCBzZW5kbXNnKDIpIGFuZCByZWN2bXNnKDIpLgotIFNB TkRCT1hfRVhQT1JUIGJwZl9kc2w6OlJlc3VsdEV4cHIgUmVzdHJpY3RTb2NrZXRjYWxsQ29tbWFu ZCgpOwotZGlmZiAtLWdpdCBhL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9zeXNj YWxsX3NldHMuY2MgYi9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc3lzY2FsbF9z ZXRzLmNjCi1pbmRleCA2NDJkZjcyMDcuLjM0ZjQ3ZWI3MyAxMDA2NDQKLS0tLSBhL3NhbmRib3gv bGludXgvc2VjY29tcC1icGYtaGVscGVycy9zeXNjYWxsX3NldHMuY2MKLSsrKyBiL3NhbmRib3gv bGludXgvc2VjY29tcC1icGYtaGVscGVycy9zeXNjYWxsX3NldHMuY2MKLUBAIC0yOSw3ICsyOSw4 IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzQWxsb3dlZEdldHRpbWUoaW50IHN5c25vKSB7Ci0gICBz d2l0Y2ggKHN5c25vKSB7Ci0gICAgIGNhc2UgX19OUl9nZXR0aW1lb2ZkYXk6Ci0gI2lmIGRlZmlu ZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgXAotLSAgICAoZGVmaW5lZChB UkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkKLSsgICAg KGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklU UykpIHx8IFwKLSsgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgICBjYXNlIF9fTlJfdGlt ZToKLSAjZW5kaWYKLSAgICAgICByZXR1cm4gdHJ1ZTsKLUBAIC01MiwxMiArNTMsMTQgQEAgYm9v bCBTeXNjYWxsU2V0czo6SXNBbGxvd2VkR2V0dGltZShpbnQgc3lzbm8pIHsKLSAgICAgY2FzZSBf X05SX2Nsb2NrX25hbm9zbGVlcF90aW1lNjQ6ICAvLyBQYXJhbWV0ZXJzIGZpbHRlcmVkIGJ5IFJl c3RyaWN0Q2xvY2tJRCgpLgotICNlbmRpZgotICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBcCi0t ICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMy X0JJVFMpKQotKyAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChB UkNIX0NQVV8zMl9CSVRTKSkgfHwgXAotKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAg IGNhc2UgX19OUl9mdGltZTogIC8vIE9ic29sZXRlLgotICNlbmRpZgotICAgICBjYXNlIF9fTlJf c2V0dGltZW9mZGF5OiAgLy8gUHJpdmlsZWdlZC4KLSAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwg XAotLSAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQ VV8zMl9CSVRTKSkKLSsgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmlu ZWQoQVJDSF9DUFVfMzJfQklUUykpIHx8IFwKLSsgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQot ICAgICBjYXNlIF9fTlJfc3RpbWU6Ci0gI2VuZGlmCi0gICAgIGRlZmF1bHQ6Ci1AQCAtMTM1LDcg KzEzOCw3IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzRmlsZVN5c3RlbShpbnQgc3lzbm8pIHsKLSAg ICAgY2FzZSBfX05SX2ZhY2Nlc3NhdDogIC8vIEVQRVJNIG5vdCBhIHZhbGlkIGVycm5vLgotICAg ICBjYXNlIF9fTlJfZmNobW9kYXQ6Ci0gICAgIGNhc2UgX19OUl9mY2hvd25hdDogIC8vIFNob3Vs ZCBiZSBjYWxsZWQgY2hvd25hdCA/Ci0tI2lmIGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5l ZChfX2FhcmNoNjRfXykKLSsjaWYgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fYWFy Y2g2NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19OUl9uZXdmc3Rh dGF0OiAgLy8gZnN0YXRhdCgpLiBFUEVSTSBub3QgYSB2YWxpZCBlcnJuby4KLSAjZWxpZiBkZWZp bmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8IFwKLSAgICAgKGRlZmluZWQoQVJD SF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpCi1AQCAtMTU0 LDcgKzE1Nyw3IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzRmlsZVN5c3RlbShpbnQgc3lzbm8pIHsK LSAgICAgY2FzZSBfX05SX21lbWZkX2NyZWF0ZToKLSAgICAgY2FzZSBfX05SX21rZGlyYXQ6Ci0g ICAgIGNhc2UgX19OUl9ta25vZGF0OgotLSNpZiBkZWZpbmVkKF9faTM4Nl9fKQotKyNpZiBkZWZp bmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19OUl9v bGRsc3RhdDoKLSAgICAgY2FzZSBfX05SX29sZHN0YXQ6Ci0gI2VuZGlmCi1AQCAtMTY4LDcgKzE3 MSw4IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzRmlsZVN5c3RlbShpbnQgc3lzbm8pIHsKLSAjZW5k aWYKLSAgICAgY2FzZSBfX05SX3N0YXRmczogIC8vIEVQRVJNIG5vdCBhIHZhbGlkIGVycm5vLgot ICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8IFwKLS0gICAgKGRl ZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykp Ci0rICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BV XzMyX0JJVFMpKSB8fCBcCi0rICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2FzZSBf X05SX3N0YXRmczY0OgotICNlbmRpZgotICAgICBjYXNlIF9fTlJfc3ltbGlua2F0OgotQEAgLTE3 OCw3ICsxODIsOCBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0ZpbGVTeXN0ZW0oaW50IHN5c25vKSB7 Ci0gICAgIGNhc2UgX19OUl90cnVuY2F0ZTY0OgotICNlbmRpZgotICAgICBjYXNlIF9fTlJfdW5s aW5rYXQ6Ci0tI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwg ZGVmaW5lZChfX21pcHNfXykKLSsjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4 Nl82NF9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBcCi0rICAgIGRlZmluZWQoX19wb3dlcnBj NjRfXykKLSAgICAgY2FzZSBfX05SX3V0aW1lOgotICNlbmRpZgotICAgICBjYXNlIF9fTlJfdXRp bWVuc2F0OiAgLy8gTmV3LgotQEAgLTIwMyw3ICsyMDgsOCBAQCBib29sIFN5c2NhbGxTZXRzOjpJ c0FsbG93ZWRGaWxlU3lzdGVtQWNjZXNzVmlhRmQoaW50IHN5c25vKSB7Ci0gI2VuZGlmCi0gICAg ICAgcmV0dXJuIHRydWU7Ci0gLy8gVE9ETyhqbG4pOiB0aGVzZSBzaG91bGQgYmUgZGVuaWVkIGdy YWNlZnVsbHkgYXMgd2VsbCAobW92ZWQgYmVsb3cpLgotLSNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8 fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19taXBzX18pCi0rI2lmIGRlZmluZWQo X19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX21pcHNfXykgfHwg XAotKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19OUl9mYWR2aXNlNjQ6 ICAvLyBFUEVSTSBub3QgYSB2YWxpZCBlcnJuby4KLSAjZW5kaWYKLSAjaWYgZGVmaW5lZChfX2kz ODZfXykKLUBAIC0yMTYsMTEgKzIyMiwxMiBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRG aWxlU3lzdGVtQWNjZXNzVmlhRmQoaW50IHN5c25vKSB7Ci0gICAgIGNhc2UgX19OUl9mbG9jazog ICAgICAvLyBFUEVSTSBub3QgYSB2YWxpZCBlcnJuby4KLSAgICAgY2FzZSBfX05SX2ZzdGF0ZnM6 ICAgIC8vIEdpdmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHdob2xlIGZpbGVzeXN0ZW0uCi0gI2lm IGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwgXAotLSAgICAoZGVmaW5l ZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkKLSsg ICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJf QklUUykpIHx8IFwKLSsgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgICBjYXNlIF9fTlJf ZnN0YXRmczY0OgotICNlbmRpZgotICAgICBjYXNlIF9fTlJfZnN5bmM6ICAvLyBFUEVSTSBub3Qg YSB2YWxpZCBlcnJuby4KLS0jaWYgZGVmaW5lZChfX2kzODZfXykKLSsjaWYgZGVmaW5lZChfX2kz ODZfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgICBjYXNlIF9fTlJfb2xkZnN0YXQ6 Ci0gI2VuZGlmCi0gI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykg fHwgZGVmaW5lZChfX21pcHNfXykgfHwgXAotQEAgLTIyOCw2ICsyMzUsOCBAQCBib29sIFN5c2Nh bGxTZXRzOjpJc0FsbG93ZWRGaWxlU3lzdGVtQWNjZXNzVmlhRmQoaW50IHN5c25vKSB7Ci0gICAg IGNhc2UgX19OUl9zeW5jX2ZpbGVfcmFuZ2U6ICAvLyBFUEVSTSBub3QgYSB2YWxpZCBlcnJuby4K LSAjZWxpZiBkZWZpbmVkKF9fYXJtX18pCi0gICAgIGNhc2UgX19OUl9hcm1fc3luY19maWxlX3Jh bmdlOiAgLy8gRVBFUk0gbm90IGEgdmFsaWQgZXJybm8uCi0rI2VsaWYgZGVmaW5lZChfX3Bvd2Vy cGM2NF9fKQotKyAgICBjYXNlIF9fTlJfc3luY19maWxlX3JhbmdlMjogLy8gRVBFUk0gbm90IGEg dmFsaWQgZXJybm8uCi0gI2VuZGlmCi0gICAgIGRlZmF1bHQ6Ci0gICAgICAgcmV0dXJuIGZhbHNl OwotQEAgLTI0OCw3ICsyNTcsOCBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0RlbmllZEZpbGVTeXN0 ZW1BY2Nlc3NWaWFGZChpbnQgc3lzbm8pIHsKLSAjZW5kaWYKLSAgICAgY2FzZSBfX05SX2dldGRl bnRzNjQ6ICAvLyBFUEVSTSBub3QgYSB2YWxpZCBlcnJuby4KLSAjaWYgZGVmaW5lZChfX2kzODZf XykgfHwgXAotLSAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChB UkNIX0NQVV8zMl9CSVRTKSkKLSsgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYm IGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpIHx8IFwKLSsgICAgZGVmaW5lZChfX3Bvd2VycGM2 NF9fKQotICAgICBjYXNlIF9fTlJfcmVhZGRpcjoKLSAjZW5kaWYKLSAgICAgICByZXR1cm4gdHJ1 ZTsKLUBAIC0yODksNyArMjk5LDcgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNHZXRTaW1wbGVJZChp bnQgc3lzbm8pIHsKLSBib29sIFN5c2NhbGxTZXRzOjpJc1Byb2Nlc3NQcml2aWxlZ2VDaGFuZ2Uo aW50IHN5c25vKSB7Ci0gICBzd2l0Y2ggKHN5c25vKSB7Ci0gICAgIGNhc2UgX19OUl9jYXBzZXQ6 Ci0tI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykKLSsjaWYgZGVm aW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJw YzY0X18pCi0gICAgIGNhc2UgX19OUl9pb3Blcm06ICAvLyBJbnRlbCBwcml2aWxlZ2UuCi0gICAg IGNhc2UgX19OUl9pb3BsOiAgICAvLyBJbnRlbCBwcml2aWxlZ2UuCi0gI2VuZGlmCi1AQCAtMzQw LDggKzM1MCwxMSBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRTaWduYWxIYW5kbGluZyhp bnQgc3lzbm8pIHsKLSAgICAgY2FzZSBfX05SX3J0X3NpZ3JldHVybjoKLSAgICAgY2FzZSBfX05S X3J0X3NpZ3RpbWVkd2FpdDoKLSAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX2Fy bV9fKSB8fCBcCi0tICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVk KEFSQ0hfQ1BVXzMyX0JJVFMpKQotKyAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkg JiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkgfHwgXAotKyAgICBkZWZpbmVkKF9fcG93ZXJw YzY0X18pCi0rI2lmbmRlZiBfX3Bvd2VycGM2NF9fCi0gICAgIGNhc2UgX19OUl9ydF9zaWd0aW1l ZHdhaXRfdGltZTY0OgotKyNlbmRpZgotICAgICBjYXNlIF9fTlJfc2lnYWN0aW9uOgotICAgICBj YXNlIF9fTlJfc2lncHJvY21hc2s6Ci0gICAgIGNhc2UgX19OUl9zaWdyZXR1cm46Ci1AQCAtMzU3 LDcgKzM3MCw4IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzQWxsb3dlZFNpZ25hbEhhbmRsaW5nKGlu dCBzeXNubykgewotICNlbmRpZgotICAgICBjYXNlIF9fTlJfc2lnbmFsZmQ0OgotICNpZiBkZWZp bmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8IFwKLS0gICAgKGRlZmluZWQoQVJD SF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpCi0rICAgIChk ZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMp KSB8fCBcCi0rICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2FzZSBfX05SX3NpZ3Bl bmRpbmc6Ci0gICAgIGNhc2UgX19OUl9zaWdzdXNwZW5kOgotICNlbmRpZgotQEAgLTM4MSw3ICsz OTUsNyBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRPcGVyYXRpb25PbkZkKGludCBzeXNu bykgewotICNlbmRpZgotICAgICBjYXNlIF9fTlJfZHVwMzoKLSAjaWYgZGVmaW5lZChfX3g4Nl82 NF9fKSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8IGRlZmluZWQoX19taXBzX18pIHx8IFwKLS0gICAg ZGVmaW5lZChfX2FhcmNoNjRfXykKLSsgICAgZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgZGVmaW5l ZChfX3Bvd2VycGM2NF9fKQotICAgICBjYXNlIF9fTlJfc2h1dGRvd246Ci0gI2VuZGlmCi0gICAg ICAgcmV0dXJuIHRydWU7Ci1AQCAtNDE0LDcgKzQyOCw3IEBAIGJvb2wgU3lzY2FsbFNldHM6Oklz QWxsb3dlZFByb2Nlc3NTdGFydE9yRGVhdGgoaW50IHN5c25vKSB7Ci0gICAgIGNhc2UgX19OUl9l eGl0X2dyb3VwOgotICAgICBjYXNlIF9fTlJfd2FpdDQ6Ci0gICAgIGNhc2UgX19OUl93YWl0aWQ6 Ci0tI2lmIGRlZmluZWQoX19pMzg2X18pCi0rI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmlu ZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2FzZSBfX05SX3dhaXRwaWQ6Ci0gI2VuZGlmCi0gICAg ICAgcmV0dXJuIHRydWU7Ci1AQCAtNDMxLDcgKzQ0NSw3IEBAIGJvb2wgU3lzY2FsbFNldHM6Oklz QWxsb3dlZFByb2Nlc3NTdGFydE9yRGVhdGgoaW50IHN5c25vKSB7Ci0gI2VuZGlmCi0gICAgIGNh c2UgX19OUl9zZXRfdGlkX2FkZHJlc3M6Ci0gICAgIGNhc2UgX19OUl91bnNoYXJlOgotLSNpZiAh ZGVmaW5lZChfX21pcHNfXykgJiYgIWRlZmluZWQoX19hYXJjaDY0X18pCi0rI2lmICFkZWZpbmVk KF9fbWlwc19fKSAmJiAhZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2 NF9fKQotICAgICBjYXNlIF9fTlJfdmZvcms6Ci0gI2VuZGlmCi0gICAgIGRlZmF1bHQ6Ci1AQCAt NDg0LDcgKzQ5OCw3IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzQWxsb3dlZEdldE9yTW9kaWZ5U29j a2V0KGludCBzeXNubykgewotICAgICAgIHJldHVybiB0cnVlOwotICAgICBkZWZhdWx0OgotICNp ZiBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwgZGVmaW5lZChfX21p cHNfXykgfHwgXAotLSAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKQotKyAgICBkZWZpbmVkKF9fYWFy Y2g2NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19OUl9zb2NrZXRw YWlyOiAgLy8gV2Ugd2lsbCB3YW50IHRvIGluc3BlY3QgaXRzIGFyZ3VtZW50LgotICNlbmRpZgot ICAgICAgIHJldHVybiBmYWxzZTsKLUBAIC00OTQsNyArNTA4LDcgQEAgYm9vbCBTeXNjYWxsU2V0 czo6SXNBbGxvd2VkR2V0T3JNb2RpZnlTb2NrZXQoaW50IHN5c25vKSB7Ci0gYm9vbCBTeXNjYWxs U2V0czo6SXNEZW5pZWRHZXRPck1vZGlmeVNvY2tldChpbnQgc3lzbm8pIHsKLSAgIHN3aXRjaCAo c3lzbm8pIHsKLSAjaWYgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8 IGRlZmluZWQoX19taXBzX18pIHx8IFwKLS0gICAgZGVmaW5lZChfX2FhcmNoNjRfXykKLSsgICAg ZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgICBjYXNl IF9fTlJfYWNjZXB0OgotICAgICBjYXNlIF9fTlJfYWNjZXB0NDoKLSAgICAgY2FzZSBfX05SX2Jp bmQ6Ci1AQCAtNTA5LDcgKzUyMyw4IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzRGVuaWVkR2V0T3JN b2RpZnlTb2NrZXQoaW50IHN5c25vKSB7Ci0gfQotIAotICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8 fCBcCi0tICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hf Q1BVXzMyX0JJVFMpKQotKyAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVm aW5lZChBUkNIX0NQVV8zMl9CSVRTKSkgfHwgXAotKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18p Ci0gLy8gQmlnIG11bHRpcGxleGluZyBzeXN0ZW0gY2FsbCBmb3Igc29ja2V0cy4KLSBib29sIFN5 c2NhbGxTZXRzOjpJc1NvY2tldENhbGwoaW50IHN5c25vKSB7Ci0gICBzd2l0Y2ggKHN5c25vKSB7 Ci1AQCAtNTIzLDcgKzUzOCw4IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzU29ja2V0Q2FsbChpbnQg c3lzbm8pIHsKLSB9Ci0gI2VuZGlmCi0gCi0tI2lmIGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVm aW5lZChfX2FybV9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKQotKyNpZiBkZWZpbmVkKF9feDg2XzY0 X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwgZGVmaW5lZChfX21pcHNfXykgfHwgXAotKyAgICBk ZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gYm9vbCBTeXNjYWxsU2V0czo6SXNOZXR3b3JrU29ja2V0 SW5mb3JtYXRpb24oaW50IHN5c25vKSB7Ci0gICBzd2l0Y2ggKHN5c25vKSB7Ci0gICAgIGNhc2Ug X19OUl9nZXRwZWVybmFtZToKLUBAIC01NDgsNyArNTY0LDcgQEAgYm9vbCBTeXNjYWxsU2V0czo6 SXNBbGxvd2VkQWRkcmVzc1NwYWNlQWNjZXNzKGludCBzeXNubykgewotICAgICBjYXNlIF9fTlJf bWluY29yZToKLSAgICAgY2FzZSBfX05SX21sb2NrYWxsOgotICNpZiBkZWZpbmVkKF9faTM4Nl9f KSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19taXBzX18pIHx8IFwKLS0gICAg ZGVmaW5lZChfX2FhcmNoNjRfXykKLSsgICAgZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgZGVmaW5l ZChfX3Bvd2VycGM2NF9fKQotICAgICBjYXNlIF9fTlJfbW1hcDoKLSAjZW5kaWYKLSAjaWYgZGVm aW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBcCi1AQCAtNTc4LDcgKzU5NCw4 IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzQWxsb3dlZEdlbmVyYWxJbyhpbnQgc3lzbm8pIHsKLSAg IHN3aXRjaCAoc3lzbm8pIHsKLSAgICAgY2FzZSBfX05SX2xzZWVrOgotICNpZiBkZWZpbmVkKF9f aTM4Nl9fKSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8IFwKLS0gICAgKGRlZmluZWQoQVJDSF9DUFVf TUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpCi0rICAgIChkZWZpbmVk KEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKSB8fCBc Ci0rICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2FzZSBfX05SX19sbHNlZWs6Ci0g I2VuZGlmCi0gI2lmICFkZWZpbmVkKF9fYWFyY2g2NF9fKQotQEAgLTU5OCwyNiArNjE1LDI4IEBA IGJvb2wgU3lzY2FsbFNldHM6OklzQWxsb3dlZEdlbmVyYWxJbyhpbnQgc3lzbm8pIHsKLSAgICAg Y2FzZSBfX05SX3JlYWR2OgotICAgICBjYXNlIF9fTlJfcHJlYWQ2NDoKLSAjaWYgZGVmaW5lZChf X2FybV9fKSB8fCBcCi0tICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZp bmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQotKyAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlM WSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkgfHwgXAotKyAgICBkZWZpbmVkKF9fcG93 ZXJwYzY0X18pCi0gICAgIGNhc2UgX19OUl9yZWN2OgotICNlbmRpZgotICNpZiBkZWZpbmVkKF9f eDg2XzY0X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwgZGVmaW5lZChfX21pcHNfXykgfHwgXAot LSAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKQotKyAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKSB8fCBk ZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19OUl9yZWN2ZnJvbTogIC8vIENvdWxk IHNwZWNpZnkgc291cmNlLgotICAgICBjYXNlIF9fTlJfcmVjdm1zZzogICAvLyBDb3VsZCBzcGVj aWZ5IHNvdXJjZS4KLSAjZW5kaWYKLS0jaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChf X3g4Nl82NF9fKQotKyNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18p IHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2FzZSBfX05SX3NlbGVjdDoKLSAjZW5k aWYKLS0jaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBkZWZpbmVk KF9fbWlwc19fKQotKyNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8 IGRlZmluZWQoX19taXBzX18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2FzZSBf X05SX19uZXdzZWxlY3Q6Ci0gI2VuZGlmCi0gI2lmIGRlZmluZWQoX19hcm1fXykgfHwgXAotLSAg ICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9C SVRTKSkKLSsgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJD SF9DUFVfMzJfQklUUykpIHx8IFwKLSsgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgICBj YXNlIF9fTlJfc2VuZDoKLSAjZW5kaWYKLSAjaWYgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZp bmVkKF9fYXJtX18pIHx8IGRlZmluZWQoX19taXBzX18pIHx8IFwKLS0gICAgZGVmaW5lZChfX2Fh cmNoNjRfXykKLSsgICAgZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2 NF9fKQotICAgICBjYXNlIF9fTlJfc2VuZG1zZzogIC8vIENvdWxkIHNwZWNpZnkgZGVzdGluYXRp b24uCi0gICAgIGNhc2UgX19OUl9zZW5kdG86ICAgLy8gQ291bGQgc3BlY2lmeSBkZXN0aW5hdGlv bi4KLSAjZW5kaWYKLUBAIC02NzMsNyArNjkyLDggQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNBbGxv d2VkQmFzaWNTY2hlZHVsZXIoaW50IHN5c25vKSB7Ci0gICAgICAgcmV0dXJuIHRydWU7Ci0gICAg IGNhc2UgX19OUl9nZXRwcmlvcml0eToKLSAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5l ZChfX2FybV9fKSB8fCBcCi0tICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBk ZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQotKyAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZB TUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkgfHwgXAotKyAgICBkZWZpbmVkKF9f cG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19OUl9uaWNlOgotICNlbmRpZgotICAgICBjYXNlIF9f TlJfc2V0cHJpb3JpdHk6Ci1AQCAtNjg1LDcgKzcwNSw4IEBAIGJvb2wgU3lzY2FsbFNldHM6Oklz QWxsb3dlZEJhc2ljU2NoZWR1bGVyKGludCBzeXNubykgewotIGJvb2wgU3lzY2FsbFNldHM6Oklz QWRtaW5PcGVyYXRpb24oaW50IHN5c25vKSB7Ci0gICBzd2l0Y2ggKHN5c25vKSB7Ci0gI2lmIGRl ZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwgXAotLSAgICAoZGVmaW5lZChB UkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkKLSsgICAg KGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklU UykpIHx8IFwKLSsgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgICBjYXNlIF9fTlJfYmRm bHVzaDoKLSAjZW5kaWYKLSAgICAgY2FzZSBfX05SX2tleGVjX2xvYWQ6Ci1AQCAtNzAxLDcgKzcy Miw4IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzQWRtaW5PcGVyYXRpb24oaW50IHN5c25vKSB7Ci0g Ci0gYm9vbCBTeXNjYWxsU2V0czo6SXNLZXJuZWxNb2R1bGUoaW50IHN5c25vKSB7Ci0gICBzd2l0 Y2ggKHN5c25vKSB7Ci0tI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRf XykgfHwgZGVmaW5lZChfX21pcHNfXykKLSsjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5l ZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBcCi0rICAgIGRlZmluZWQoX19w b3dlcnBjNjRfXykKLSAgICAgY2FzZSBfX05SX2NyZWF0ZV9tb2R1bGU6Ci0gICAgIGNhc2UgX19O Ul9nZXRfa2VybmVsX3N5bXM6ICAvLyBTaG91bGQgRU5PU1lTLgotICAgICBjYXNlIF9fTlJfcXVl cnlfbW9kdWxlOgotQEAgLTczNCw3ICs3NTYsOCBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0ZzQ29u dHJvbChpbnQgc3lzbm8pIHsKLSAgICAgY2FzZSBfX05SX3N3YXBvZmY6Ci0gICAgIGNhc2UgX19O Ul9zd2Fwb246Ci0gI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IFwKLS0gICAgKGRlZmluZWQoQVJD SF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpCi0rICAgIChk ZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMp KSB8fCBcCi0rICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2FzZSBfX05SX3Vtb3Vu dDoKLSAjZW5kaWYKLSAgICAgY2FzZSBfX05SX3Vtb3VudDI6Ci1AQCAtNzUwLDcgKzc3Myw3IEBA IGJvb2wgU3lzY2FsbFNldHM6OklzTnVtYShpbnQgc3lzbm8pIHsKLSAgICAgY2FzZSBfX05SX2dl dGNwdToKLSAgICAgY2FzZSBfX05SX21iaW5kOgotICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBk ZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19taXBzX18pIHx8IFwKLS0gICAgZGVmaW5l ZChfX2FhcmNoNjRfXykKLSsgICAgZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgZGVmaW5lZChfX3Bv d2VycGM2NF9fKQotICAgICBjYXNlIF9fTlJfbWlncmF0ZV9wYWdlczoKLSAjZW5kaWYKLSAgICAg Y2FzZSBfX05SX21vdmVfcGFnZXM6Ci1AQCAtNzg1LDE0ICs4MDgsMTUgQEAgYm9vbCBTeXNjYWxs U2V0czo6SXNHbG9iYWxQcm9jZXNzRW52aXJvbm1lbnQoaW50IHN5c25vKSB7Ci0gICBzd2l0Y2gg KHN5c25vKSB7Ci0gICAgIGNhc2UgX19OUl9hY2N0OiAgLy8gUHJpdmlsZWdlZC4KLSAjaWYgZGVm aW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fbWlwc19f KSB8fCBcCi0tICAgIGRlZmluZWQoX19hYXJjaDY0X18pCi0rICAgIGRlZmluZWQoX19hYXJjaDY0 X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2FzZSBfX05SX2dldHJsaW1pdDoK LSAjZW5kaWYKLS0jaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX2FybV9fKQotKyNp ZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8IGRlZmluZWQoX19wb3dl cnBjNjRfXykKLSAgICAgY2FzZSBfX05SX3VnZXRybGltaXQ6Ci0gI2VuZGlmCi0gI2lmIGRlZmlu ZWQoX19pMzg2X18pIHx8IFwKLS0gICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYm IGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpCi0rICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNf RkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKSB8fCBcCi0rICAgIGRlZmluZWQo X19wb3dlcnBjNjRfXykKLSAgICAgY2FzZSBfX05SX3VsaW1pdDoKLSAjZW5kaWYKLSAgICAgY2Fz ZSBfX05SX2dldHJ1c2FnZToKLUBAIC04MjYsNyArODUwLDcgQEAgYm9vbCBTeXNjYWxsU2V0czo6 SXNHbG9iYWxTeXN0ZW1TdGF0dXMoaW50IHN5c25vKSB7Ci0gI2VuZGlmCi0gICAgIGNhc2UgX19O Ul9zeXNpbmZvOgotICAgICBjYXNlIF9fTlJfdW5hbWU6Ci0tI2lmIGRlZmluZWQoX19pMzg2X18p Ci0rI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAg Y2FzZSBfX05SX29sZHVuYW1lOgotICAgICBjYXNlIF9fTlJfb2xkb2xkdW5hbWU6Ci0gI2VuZGlm Ci1AQCAtODkyLDggKzkxNiwxNiBAQCBib29sIFN5c2NhbGxTZXRzOjpJc1N5c3RlbVZTZW1hcGhv cmVzKGludCBzeXNubykgewotIH0KLSAjZW5kaWYKLSAKLSsvKiBzaGl0dHkgaGFjayBhcm91bmQg Vm9pZCdzIDQuMTkga2VybmVsIGhlYWRlcnMgbWlzc2luZyB0aG9zZSBudW1iZXJzICovCi0rI2lm IGRlZmluZWQoX19wb3dlcnBjNjRfXykgJiYgIWRlZmluZWQoX19OUl9zaG1nZXQpCi0rI2RlZmlu ZSBfX05SX3NobWdldCAzOTUKLSsjZGVmaW5lIF9fTlJfc2htY3RsIDM5NgotKyNkZWZpbmUgX19O Ul9zaG1hdCAzOTcKLSsjZGVmaW5lIF9fTlJfc2htZHQgMzk4Ci0rI2VuZGlmCi0rCi0gI2lmIGRl ZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX2FybV9f KSB8fCBcCi0tICAgIGRlZmluZWQoX19hYXJjaDY0X18pIHx8ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBcCi0rICAgIGRlZmluZWQoX19hYXJjaDY0X18pIHx8IGRlZmlu ZWQoX19wb3dlcnBjNjRfXykgfHwgXAotICAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlM WSkgJiYgZGVmaW5lZChBUkNIX0NQVV82NF9CSVRTKSkKLSAvLyBUaGVzZSBnaXZlIGEgbG90IG9m IGFtYmllbnQgYXV0aG9yaXR5IGFuZCBieXBhc3MgdGhlIHNldHVpZCBzYW5kYm94LgotIGJvb2wg U3lzY2FsbFNldHM6OklzU3lzdGVtVlNoYXJlZE1lbW9yeShpbnQgc3lzbm8pIHsKLUBAIC05MjUs NyArOTU3LDggQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNTeXN0ZW1WTWVzc2FnZVF1ZXVlKGludCBz eXNubykgewotICNlbmRpZgotIAotICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBcCi0tICAgIChk ZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMp KQotKyAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQ VV8zMl9CSVRTKSkgfHwgXAotKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gLy8gQmlnIHN5 c3RlbSBWIG11bHRpcGxleGluZyBzeXN0ZW0gY2FsbC4KLSBib29sIFN5c2NhbGxTZXRzOjpJc1N5 c3RlbVZJcGMoaW50IHN5c25vKSB7Ci0gICBzd2l0Y2ggKHN5c25vKSB7Ci1AQCAtOTQ1LDcgKzk3 OCw4IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzQW55U3lzdGVtVihpbnQgc3lzbm8pIHsKLSAgIHJl dHVybiBJc1N5c3RlbVZNZXNzYWdlUXVldWUoc3lzbm8pIHx8IElzU3lzdGVtVlNlbWFwaG9yZXMo c3lzbm8pIHx8Ci0gICAgICAgICAgSXNTeXN0ZW1WU2hhcmVkTWVtb3J5KHN5c25vKTsKLSAjZWxp ZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBcCi0tICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFN SUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQotKyAgICAoZGVmaW5lZChBUkNIX0NQ VV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkgfHwgXAotKyAgICBk ZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICByZXR1cm4gSXNTeXN0ZW1WSXBjKHN5c25vKTsKLSAj ZW5kaWYKLSB9Ci1AQCAtMTAwMiw3ICsxMDM2LDggQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNGYU5v dGlmeShpbnQgc3lzbm8pIHsKLSBib29sIFN5c2NhbGxTZXRzOjpJc1RpbWVyKGludCBzeXNubykg ewotICAgc3dpdGNoIChzeXNubykgewotICAgICBjYXNlIF9fTlJfZ2V0aXRpbWVyOgotLSNpZiBk ZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19taXBz X18pCi0rI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVm aW5lZChfX21pcHNfXykgfHwgXAotKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAgIGNh c2UgX19OUl9hbGFybToKLSAjZW5kaWYKLSAgICAgY2FzZSBfX05SX3NldGl0aW1lcjoKLUBAIC0x MDg0LDE4ICsxMTE5LDIyIEBAIGJvb2wgU3lzY2FsbFNldHM6OklzTWlzYyhpbnQgc3lzbm8pIHsK LSAgICAgY2FzZSBfX05SX3N5bmNmczoKLSAgICAgY2FzZSBfX05SX3ZoYW5ndXA6Ci0gLy8gVGhl IHN5c3RlbSBjYWxscyBiZWxvdyBhcmUgbm90IGltcGxlbWVudGVkLgotLSNpZiBkZWZpbmVkKF9f aTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19taXBzX18pCi0rI2lm IGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX21p cHNfXykgfHwgXAotKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19OUl9h ZnNfc3lzY2FsbDoKLSAjZW5kaWYKLSAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgXAotLSAgICAo ZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRT KSkKLSsgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9D UFVfMzJfQklUUykpIHx8IFwKLSsgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgICBjYXNl IF9fTlJfYnJlYWs6Ci0gI2VuZGlmCi0tI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQo X194ODZfNjRfXykgfHwgZGVmaW5lZChfX21pcHNfXykKLSsjaWYgZGVmaW5lZChfX2kzODZfXykg fHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBcCi0rICAgIGRl ZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2FzZSBfX05SX2dldHBtc2c6Ci0gI2VuZGlmCi0g I2lmIGRlZmluZWQoX19pMzg2X18pIHx8IFwKLS0gICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19G QU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpCi0rICAgIChkZWZpbmVkKEFSQ0hf Q1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKSB8fCBcCi0rICAg IGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2FzZSBfX05SX2d0dHk6Ci0gICAgIGNhc2Ug X19OUl9pZGxlOgotICAgICBjYXNlIF9fTlJfbG9jazoKLUBAIC0xMTAzLDIwICsxMTQyLDIyIEBA IGJvb2wgU3lzY2FsbFNldHM6OklzTWlzYyhpbnQgc3lzbm8pIHsKLSAgICAgY2FzZSBfX05SX3By b2Y6Ci0gICAgIGNhc2UgX19OUl9wcm9maWw6Ci0gI2VuZGlmCi0tI2lmIGRlZmluZWQoX19pMzg2 X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX21pcHNfXykKLSsjaWYgZGVm aW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fbWlwc19f KSB8fCBcCi0rICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2FzZSBfX05SX3B1dHBt c2c6Ci0gI2VuZGlmCi0gI2lmIGRlZmluZWQoX194ODZfNjRfXykKLSAgICAgY2FzZSBfX05SX3Nl Y3VyaXR5OgotICNlbmRpZgotICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBcCi0tICAgIChkZWZp bmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQot KyAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8z Ml9CSVRTKSkgfHwgXAotKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19O Ul9zdHR5OgotICNlbmRpZgotLSNpZiBkZWZpbmVkKF9feDg2XzY0X18pCi0rI2lmIGRlZmluZWQo X194ODZfNjRfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgICBjYXNlIF9fTlJfdHV4 Y2FsbDoKLSAjZW5kaWYKLS0jaWYgIWRlZmluZWQoX19hYXJjaDY0X18pCi0rI2lmICFkZWZpbmVk KF9fYWFyY2g2NF9fKSAmJiAhZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgICBjYXNlIF9fTlJf dnNlcnZlcjoKLSAjZW5kaWYKLSAgICAgICByZXR1cm4gdHJ1ZTsKLWRpZmYgLS1naXQgYS9zYW5k Ym94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc3lzY2FsbF9zZXRzLmggYi9zYW5kYm94L2xp bnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc3lzY2FsbF9zZXRzLmgKLWluZGV4IDkyMzUzM2VjOS4u NDExZjcyYWNkIDEwMDY0NAotLS0tIGEvc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJz L3N5c2NhbGxfc2V0cy5oCi0rKysgYi9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMv c3lzY2FsbF9zZXRzLmgKLUBAIC00MywxMyArNDMsMTQgQEAgY2xhc3MgU0FOREJPWF9FWFBPUlQg U3lzY2FsbFNldHMgewotICAgc3RhdGljIGJvb2wgSXNEZW5pZWRHZXRPck1vZGlmeVNvY2tldChp bnQgc3lzbm8pOwotIAotICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBcCi0tICAgIChkZWZpbmVk KEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQotKyAg ICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9C SVRTKSkgfHwgXAotKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAvLyBCaWcgbXVsdGlw bGV4aW5nIHN5c3RlbSBjYWxsIGZvciBzb2NrZXRzLgotICAgc3RhdGljIGJvb2wgSXNTb2NrZXRD YWxsKGludCBzeXNubyk7Ci0gI2VuZGlmCi0gCi0gI2lmIGRlZmluZWQoX194ODZfNjRfXykgfHwg ZGVmaW5lZChfX2FybV9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBcCi0tICAgIGRlZmluZWQo X19hYXJjaDY0X18pCi0rICAgIGRlZmluZWQoX19hYXJjaDY0X18pIHx8IGRlZmluZWQoX19wb3dl cnBjNjRfXykKLSAgIHN0YXRpYyBib29sIElzTmV0d29ya1NvY2tldEluZm9ybWF0aW9uKGludCBz eXNubyk7Ci0gI2VuZGlmCi0gCi1AQCAtNzYsNyArNzcsNyBAQCBjbGFzcyBTQU5EQk9YX0VYUE9S VCBTeXNjYWxsU2V0cyB7Ci0gICBzdGF0aWMgYm9vbCBJc1N5c3RlbVZTZW1hcGhvcmVzKGludCBz eXNubyk7Ci0gI2VuZGlmCi0gI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZf NjRfXykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBcCi0tICAgIGRlZmluZWQoX19hYXJjaDY0X18p IHx8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0rICAgIGRlZmlu ZWQoX19hYXJjaDY0X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykgfHwgXAotICAgICAoZGVm aW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV82NF9CSVRTKSkK LSAgIC8vIFRoZXNlIGdpdmUgYSBsb3Qgb2YgYW1iaWVudCBhdXRob3JpdHkgYW5kIGJ5cGFzcyB0 aGUgc2V0dWlkIHNhbmRib3guCi0gICBzdGF0aWMgYm9vbCBJc1N5c3RlbVZTaGFyZWRNZW1vcnko aW50IHN5c25vKTsKLUBAIC04OCw3ICs4OSw4IEBAIGNsYXNzIFNBTkRCT1hfRVhQT1JUIFN5c2Nh bGxTZXRzIHsKLSAjZW5kaWYKLSAKLSAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgXAotLSAgICAo ZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRT KSkKLSsgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9D UFVfMzJfQklUUykpIHx8IFwKLSsgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgLy8gQmln IHN5c3RlbSBWIG11bHRpcGxleGluZyBzeXN0ZW0gY2FsbC4KLSAgIHN0YXRpYyBib29sIElzU3lz dGVtVklwYyhpbnQgc3lzbm8pOwotICNlbmRpZgotZGlmZiAtLWdpdCBhL3NhbmRib3gvbGludXgv c2VjY29tcC1icGYvc3lzY2FsbC5jYyBiL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYvc3lzY2Fs bC5jYwotaW5kZXggZTQ3ZTk4YmY1Li5kNTNhN2ZmNTYgMTAwNjQ0Ci0tLS0gYS9zYW5kYm94L2xp bnV4L3NlY2NvbXAtYnBmL3N5c2NhbGwuY2MKLSsrKyBiL3NhbmRib3gvbGludXgvc2VjY29tcC1i cGYvc3lzY2FsbC5jYwotQEAgLTE4LDcgKzE4LDcgQEAgbmFtZXNwYWNlIHNhbmRib3ggewotIG5h bWVzcGFjZSB7Ci0gCi0gI2lmIGRlZmluZWQoQVJDSF9DUFVfWDg2X0ZBTUlMWSkgfHwgZGVmaW5l ZChBUkNIX0NQVV9BUk1fRkFNSUxZKSB8fCBcCi0tICAgIGRlZmluZWQoQVJDSF9DUFVfTUlQU19G QU1JTFkpCi0rICAgIGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpIHx8IGRlZmluZWQgKEFS Q0hfQ1BVX1BQQzY0X0ZBTUlMWSkKLSAvLyBOdW1iZXIgdGhhdCdzIG5vdCBjdXJyZW50bHkgdXNl ZCBieSBhbnkgTGludXgga2VybmVsIEFCSXMuCi0gY29uc3QgaW50IGtJbnZhbGlkU3lzY2FsbE51 bWJlciA9IDB4MzUxZDM7Ci0gI2Vsc2UKLUBAIC0zMTAsMTIgKzMxMCw1NiBAQCBhc20oLy8gV2Ug bmVlZCB0byBiZSBhYmxlIHRvIHRlbGwgdGhlIGtlcm5lbCBleGFjdGx5IHdoZXJlIHdlIG1hZGUg YQotICAgICAvLyBFbnRlciB0aGUga2VybmVsCi0gICAgICJzdmMgMFxuIgotICAgICAiMjpyZXRc biIKLSsgICAgIi5jZmlfZW5kcHJvY1xuIgotKyAgICAiLnNpemUgU3lzY2FsbEFzbSwgLi1TeXNj YWxsQXNtXG4iCi0rI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotKyAgICAiLnRleHRcbiIK LSsgICAgIi5hbGlnbiA0XG4iCi0rICAgICIudHlwZSBTeXNjYWxsQXNtIEBmdW5jdGlvblxuIgot KyAgICAiU3lzY2FsbEFzbTpcbiIKLSsgICAgIi5jZmlfc3RhcnRwcm9jXG4iCi0rCi0rICAgIC8v IENoZWNrIGlmIHIzIGlzIG5lZ2F0aXZlCi0rICAgICJjbXBkaSAzLCAwXG4iCi0rICAgICJiZ3Qg MmZcbiIKLSsKLSsgICAgLy8gTG9hZCBhZGRyZXNzIG9mIDNmIGludG8gcjMgYW5kIHJldHVybgot KyAgICAibWZsciAxMFxuIgotKyAgICAiYmwgMWZcbiIKLSsgICAgIjE6IG1mbHIgM1xuIgotKyAg ICAibXRsciAxMFxuIgotKyAgICAiYWRkaSAzLCAzLCA0KjEzXG4iCi0rICAgICJibHJcbiIKLSsK LSsgICAgLy8gTG9hZCBhcmd1bWVudHMgZnJvbSBhcnJheSBpbnRvIHIzLTgKLSsgICAgLy8gc2F2 ZSBwYXJhbSAzIGluIHIxMAotKyAgICAiMjpcbiIKLSsgICAgIm1yIDAsIDNcbiIKLSsgICAgImxk IDMsIDAoNClcbiIKLSsgICAgImxkIDUsIDE2KDQpXG4iCi0rICAgICJsZCA2LCAyNCg0KVxuIgot KyAgICAibGQgNywgMzIoNClcbiIKLSsgICAgImxkIDgsIDQwKDQpXG4iCi0rICAgICJsZCA0LCA4 KDQpXG4iCi0rICAgICJsaSA5LCAwXG4iCi0rCi0rICAgIC8vIEVudGVyIGtlcm5lbAotKyAgICAi c2NcbiIKLSsKLSsgICAgLy8gTWFnaWMgcmV0dXJuIGFkZHJlc3MKLSsgICAgIjM6XG4iCi0rICAg IC8vIExpa2UgTUlQUywgcHBjNjQgcmV0dXJuIHZhbHVlcyBhcmUgYWx3YXlzIHBvc2l0aXZlLgot KyAgICAvLyBDaGVjayBmb3IgZXJyb3IgaW4gY3IwLlNPIGFuZCBuZWdhdGUgdXBvbiBlcnJvcgot KyAgICAiYmMgNCwgMywgNGZcbiIKLSsgICAgIm5lZyAzLCAzXG4iCi0rICAgICI0OiBibHJcbiIK LSsKLSAgICAgIi5jZmlfZW5kcHJvY1xuIgotICAgICAiLnNpemUgU3lzY2FsbEFzbSwgLi1TeXNj YWxsQXNtXG4iCi0gI2VuZGlmCi0gICAgICk7ICAvLyBhc20KLSAKLS0jaWYgZGVmaW5lZChfX3g4 Nl82NF9fKQotKyNpZiBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRf XykKLSBleHRlcm4gIkMiIHsKLSBpbnRwdHJfdCBTeXNjYWxsQXNtKGludHB0cl90IG5yLCBjb25z dCBpbnRwdHJfdCBhcmdzWzZdKTsKLSB9Ci1AQCAtNDI5LDYgKzQ3Myw4IEBAIGludHB0cl90IFN5 c2NhbGw6OkNhbGwoaW50IG5yLAotICAgICByZXQgPSBpbm91dDsKLSAgIH0KLSAKLSsjZWxpZiBk ZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rICBpbnRwdHJfdCByZXQgPSBTeXNjYWxsQXNtKG5yLCBh cmdzKTsKLSAjZWxzZQotICNlcnJvciAiVW5pbXBsZW1lbnRlZCBhcmNoaXRlY3R1cmUiCi0gI2Vu ZGlmCi1AQCAtNDQ1LDggKzQ5MSwxOCBAQCB2b2lkIFN5c2NhbGw6OlB1dFZhbHVlSW5VY29udGV4 dChpbnRwdHJfdCByZXRfdmFsLCB1Y29udGV4dF90KiBjdHgpIHsKLSAgICAgLy8gbmVlZHMgdG8g YmUgY2hhbmdlZCBiYWNrLgotICAgICByZXRfdmFsID0gLXJldF92YWw7Ci0gICAgIFNFQ0NPTVBf UEFSTTQoY3R4KSA9IDE7Ci0tICB9IGVsc2UKLSsgIH0gZWxzZSB7Ci0gICAgIFNFQ0NPTVBfUEFS TTQoY3R4KSA9IDA7Ci0rICB9Ci0rI2VuZGlmCi0rI2lmIGRlZmluZWQoX19wb3dlcnBjNjRfXykK LSsgIC8vIFNhbWUgYXMgTUlQUywgbmVlZCB0byBpbnZlcnQgcmV0IGFuZCBzZXQgZXJyb3IgcmVn aXN0ZXIgKGNyMC5TTykKLSsgIGlmIChyZXRfdmFsIDw9IC0xICYmIHJldF92YWwgPj0gLTQwOTUp IHsKLSsgICAgcmV0X3ZhbCA9IC1yZXRfdmFsOwotKyAgICBjdHgtPnVjX21jb250ZXh0LnJlZ3Mt PmNjciB8PSAoMSA8PCAyOCk7Ci0rICB9IGVsc2UgewotKyAgICBjdHgtPnVjX21jb250ZXh0LnJl Z3MtPmNjciAmPSB+KDEgPDwgMjgpOwotKyAgfQotICNlbmRpZgotICAgU0VDQ09NUF9SRVNVTFQo Y3R4KSA9IHN0YXRpY19jYXN0PGdyZWdfdD4ocmV0X3ZhbCk7Ci0gfQotZGlmZiAtLWdpdCBhL3Nh bmRib3gvbGludXgvc2VjY29tcC1icGYvdHJhcC5jYyBiL3NhbmRib3gvbGludXgvc2VjY29tcC1i cGYvdHJhcC5jYwotaW5kZXggZjViODZhNzNhLi41ZTZjNGEwNjggMTAwNjQ0Ci0tLS0gYS9zYW5k Ym94L2xpbnV4L3NlY2NvbXAtYnBmL3RyYXAuY2MKLSsrKyBiL3NhbmRib3gvbGludXgvc2VjY29t cC1icGYvdHJhcC5jYwotQEAgLTIzMiw2ICsyMzIsMjAgQEAgdm9pZCBUcmFwOjpTaWdTeXMoaW50 IG5yLCBMaW51eFNpZ0luZm8qIGluZm8sIHVjb250ZXh0X3QqIGN0eCkgewotICAgICAgIFNldElz SW5TaWdIYW5kbGVyKCk7Ci0gICAgIH0KLSAKLSsjaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQot KyAgICAvLyBPbiBwcGM2NCtnbGliYywgc29tZSBzeXNjYWxscyBzZWVtIHRvIGFjY2lkZW50YWxs eSBuZWdhdGUgdGhlIGZpcnN0Ci0rICAgIC8vIHBhcmFtZXRlciB3aGljaCBjYXVzZXMgY2hlY2tz IGFnYWluc3QgaXQgdG8gZmFpbC4gRm9yIG5vdywgbWFudWFsbHkKLSsgICAgLy8gbmVnYXRlIHRo ZW0gYmFjay4KLSsgICAgLy8gVE9ETyhzaGF3bkBhbmFzdGFzLmlvKTogaW52ZXN0aWdhdGUgdGhp cyBpc3N1ZSBmdXJ0aGVyCi0rICAgIGF1dG8gbnIgPSBTRUNDT01QX1NZU0NBTEwoY3R4KTsKLSsg ICAgaWYgKG5yID09IF9fTlJfb3BlbmF0IHx8IG5yID09IF9fTlJfbWtkaXJhdCB8fCBuciA9PSBf X05SX2ZhY2Nlc3NhdCB8fCBuciA9PSBfX05SX3JlYWRsaW5rYXQgfHwKLSsgICAgICAgIG5yID09 IF9fTlJfcmVuYW1lYXQgfHwgbnIgPT0gX19OUl9yZW5hbWVhdDIgfHwgbnIgPT0gX19OUl9uZXdm c3RhdGF0IHx8IG5yID09IF9fTlJfdW5saW5rYXQpIHsKLSsgICAgICAgIGlmIChzdGF0aWNfY2Fz dDxpbnQ+KFNFQ0NPTVBfUEFSTTEoY3R4KSkgPiAwKSB7Ci0rICAgICAgICAgICAgU0VDQ09NUF9Q QVJNMShjdHgpID0gLVNFQ0NPTVBfUEFSTTEoY3R4KTsKLSsgICAgICAgIH0KLSsgICAgfQotKyNl bmRpZgotKwotICAgICAvLyBDb3B5IHRoZSBzZWNjb21wLXNwZWNpZmljIGRhdGEgaW50byBhIGFy Y2hfc2VjY29tcF9kYXRhIHN0cnVjdHVyZS4gVGhpcwotICAgICAvLyBpcyB3aGF0IHdlIGFyZSBz aG93aW5nIHRvIFRyYXBGbmMgY2FsbGJhY2tzIHRoYXQgdGhlIHN5c3RlbSBjYWxsCi0gICAgIC8v IGV2YWx1YXRvciByZWdpc3RlcmVkIHdpdGggdGhlIHNhbmRib3guCi1kaWZmIC0tZ2l0IGEvc2Fu ZGJveC9saW51eC9zZXJ2aWNlcy9jcmVkZW50aWFscy5jYyBiL3NhbmRib3gvbGludXgvc2Vydmlj ZXMvY3JlZGVudGlhbHMuY2MKLWluZGV4IGQ3YjVkOGM0NC4uNGFkYzZkMGQ0IDEwMDY0NAotLS0t IGEvc2FuZGJveC9saW51eC9zZXJ2aWNlcy9jcmVkZW50aWFscy5jYwotKysrIGIvc2FuZGJveC9s aW51eC9zZXJ2aWNlcy9jcmVkZW50aWFscy5jYwotQEAgLTgxLDcgKzgxLDcgQEAgYm9vbCBDaHJv b3RUb1NhZmVFbXB0eURpcigpIHsKLSAgIHBpZF90IHBpZCA9IC0xOwotICAgYWxpZ25hcygxNikg Y2hhciBzdGFja19idWZbUFRIUkVBRF9TVEFDS19NSU5dOwotICNpZiBkZWZpbmVkKEFSQ0hfQ1BV X1g4Nl9GQU1JTFkpIHx8IGRlZmluZWQoQVJDSF9DUFVfQVJNX0ZBTUlMWSkgfHwgXAotLSAgICBk ZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKQotKyAgICBkZWZpbmVkKEFSQ0hfQ1BVX01JUFNf RkFNSUxZKSB8fCBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKLSAgIC8vIFRoZSBzdGFj ayBncm93cyBkb3dud2FyZC4KLSAgIHZvaWQqIHN0YWNrID0gc3RhY2tfYnVmICsgc2l6ZW9mKHN0 YWNrX2J1Zik7Ci0gI2Vsc2UKLUBAIC05MCw3ICs5MCw5IEBACi0gCi0gICBpbnQgY2xvbmVfZmxh Z3MgPSBDTE9ORV9GUyB8IExJTlVYX1NJR0NITEQ7Ci0gICB2b2lkKiB0bHMgPSBudWxscHRyOwot LSNpZiAoZGVmaW5lZChBUkNIX0NQVV9YODZfNjQpIHx8IGRlZmluZWQoQVJDSF9DUFVfQVJNX0ZB TUlMWSkpICYmIFwKLSsvLyBSQUpBIHRoaXMgbWlnaHQgYmUgaXQuLi4KLSsjaWYgKGRlZmluZWQo QVJDSF9DUFVfWDg2XzY0KSB8fCBkZWZpbmVkKEFSQ0hfQ1BVX0FSTV9GQU1JTFkpIHx8IFwKLSsg ICAgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpKSAmJiBcCi0gICAgICFkZWZpbmVkKE1F TU9SWV9TQU5JVElaRVIpCi0gICAvLyBVc2UgQ0xPTkVfVk0gfCBDTE9ORV9WRk9SSyBhcyBhbiBv cHRpbWl6YXRpb24gdG8gYXZvaWQgY29weWluZyBwYWdlIHRhYmxlcy4KLSAgIC8vIFNpbmNlIGNs b25lIHdyaXRlcyB0byB0aGUgbmV3IGNoaWxkJ3MgVExTIGJlZm9yZSByZXR1cm5pbmcsIHdlIG11 c3Qgc2V0IGEKLUBAIC05OCw2ICsxMDAsMTEgQEAKLSAgIC8vIGdsaWJjIHBlcmZvcm1zIHN5c2Nh bGxzIGJ5IGNhbGxpbmcgYSBmdW5jdGlvbiBwb2ludGVyIGluIFRMUywgc28gd2UgZG8gbm90Ci0g ICAvLyBhdHRlbXB0IHRoaXMgb3B0aW1pemF0aW9uLgotICAgLy8gVE9ETyhjcmJ1Zy5jb20vMTI0 NzQ1OCkgQnJva2VuIGluIE1TYW4gYnVpbGRzIGFmdGVyIExMVk0gZjFiYjMwYTQ5NTZmLgotKyAg Ly8KLSsgIC8vIE5PVEU6IFdpdGhvdXQgQ0xPTkVfVk0sIGZvbnRjb25maWcgd2lsbCBhdHRlbXB0 IHRvIHJlbG9hZCBjb25maWd1cmF0aW9uCi0rICAvLyBpbiBldmVyeSB0aHJlYWQuICBTaW5jZSB0 aGUgcmVuZGVyZWQgdGhyZWFkcyBhcmUgc2FuZGJveGVkIHdpdGhvdXQKLSsgIC8vIGZpbGVzeXN0 ZW0gYWNjZXNzIChlLmcuIHRvIC9ldGMvZm9udHMvZm9udHMuY29uZikgdGhpcyB3aWxsIGNhdXNl IGZvbnQKLSsgIC8vIGNvbmZpZ3VyYWl0b24gbG9hZGluZyBmYWlsdXJlcyBhbmQgbm8gZm9udHMg d2lsbCBiZSBkaXNwbGF5ZWQhCi0gICBjbG9uZV9mbGFncyB8PSBDTE9ORV9WTSB8IENMT05FX1ZG T1JLIHwgQ0xPTkVfU0VUVExTOwotIAotICAgY2hhciB0bHNfYnVmW1BUSFJFQURfU1RBQ0tfTUlO XSA9IHswfTsKLWRpZmYgLS1naXQgYS9zYW5kYm94L2xpbnV4L3NlcnZpY2VzL3N5c2NhbGxfd3Jh cHBlcnMuY2MgYi9zYW5kYm94L2xpbnV4L3NlcnZpY2VzL3N5c2NhbGxfd3JhcHBlcnMuY2MKLWlu ZGV4IGZjZmQyYWExMi4uZjZlYjMyZmI3IDEwMDY0NAotLS0tIGEvc2FuZGJveC9saW51eC9zZXJ2 aWNlcy9zeXNjYWxsX3dyYXBwZXJzLmNjCi0rKysgYi9zYW5kYm94L2xpbnV4L3NlcnZpY2VzL3N5 c2NhbGxfd3JhcHBlcnMuY2MKLUBAIC01OCw3ICs1OCw3IEBAIGxvbmcgc3lzX2Nsb25lKHVuc2ln bmVkIGxvbmcgZmxhZ3MsCi0gI2lmIGRlZmluZWQoQVJDSF9DUFVfWDg2XzY0KQotICAgcmV0dXJu IHN5c2NhbGwoX19OUl9jbG9uZSwgZmxhZ3MsIGNoaWxkX3N0YWNrLCBwdGlkLCBjdGlkLCB0bHMp OwotICNlbGlmIGRlZmluZWQoQVJDSF9DUFVfWDg2KSB8fCBkZWZpbmVkKEFSQ0hfQ1BVX0FSTV9G QU1JTFkpIHx8IFwKLS0gICAgZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkKLSsgICAgZGVm aW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgfHwgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1J TFkpCi0gICAvLyBDT05GSUdfQ0xPTkVfQkFDS1dBUkRTIGRlZmluZWQuCi0gICByZXR1cm4gc3lz Y2FsbChfX05SX2Nsb25lLCBmbGFncywgY2hpbGRfc3RhY2ssIHB0aWQsIHRscywgY3RpZCk7Ci0g I2VuZGlmCi1kaWZmIC0tZ2l0IGEvc2FuZGJveC9saW51eC9zeXNjYWxsX2Jyb2tlci9icm9rZXJf cHJvY2Vzcy5jYyBiL3NhbmRib3gvbGludXgvc3lzY2FsbF9icm9rZXIvYnJva2VyX3Byb2Nlc3Mu Y2MKLWluZGV4IGQ3MmM5ZDIzOC4uNzdmMWQ5NWY1IDEwMDY0NAotLS0tIGEvc2FuZGJveC9saW51 eC9zeXNjYWxsX2Jyb2tlci9icm9rZXJfcHJvY2Vzcy5jYwotKysrIGIvc2FuZGJveC9saW51eC9z eXNjYWxsX2Jyb2tlci9icm9rZXJfcHJvY2Vzcy5jYwotQEAgLTE2OSw3ICsxNjksNyBAQCBib29s IEJyb2tlclByb2Nlc3M6OklzU3lzY2FsbEJyb2tlcmFibGUoaW50IHN5c25vLCBib29sIGZhc3Rf Y2hlY2spIGNvbnN0IHsKLSAjaWYgZGVmaW5lZChfX05SX2ZzdGF0YXQ2NCkKLSAgICAgY2FzZSBf X05SX2ZzdGF0YXQ2NDoKLSAjZW5kaWYKLS0jaWYgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZp bmVkKF9fYWFyY2g2NF9fKQotKyNpZiBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19h YXJjaDY0X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2FzZSBfX05SX25ld2Zz dGF0YXQ6Ci0gI2VuZGlmCi0gICAgICAgcmV0dXJuICFmYXN0X2NoZWNrIHx8IGFsbG93ZWRfY29t bWFuZF9zZXRfLnRlc3QoQ09NTUFORF9TVEFUKTsKLWRpZmYgLS1naXQgYS9zYW5kYm94L2xpbnV4 L3N5c3RlbV9oZWFkZXJzL2xpbnV4X3NlY2NvbXAuaCBiL3NhbmRib3gvbGludXgvc3lzdGVtX2hl YWRlcnMvbGludXhfc2VjY29tcC5oCi1pbmRleCAxZmE0N2VkMDkuLjM5Y2M5YWI1MyAxMDA2NDQK LS0tLSBhL3NhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvbGludXhfc2VjY29tcC5oCi0rKysg Yi9zYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL2xpbnV4X3NlY2NvbXAuaAotQEAgLTQxLDYg KzQxLDkgQEAKLSAjaWZuZGVmIEVNX0FBUkNINjQKLSAjZGVmaW5lIEVNX0FBUkNINjQgMTgzCi0g I2VuZGlmCi0rI2lmbmRlZiBFTV9QUEM2NAotKyNkZWZpbmUgRU1fUFBDNjQgMjEKLSsjZW5kaWYK LSAKLSAjaWZuZGVmIF9fQVVESVRfQVJDSF82NEJJVAotICNkZWZpbmUgX19BVURJVF9BUkNIXzY0 QklUIDB4ODAwMDAwMDAKLUBAIC03Myw2ICs3NiwxMiBAQAotICNpZm5kZWYgQVVESVRfQVJDSF9B QVJDSDY0Ci0gI2RlZmluZSBBVURJVF9BUkNIX0FBUkNINjQgKEVNX0FBUkNINjQgfCBfX0FVRElU X0FSQ0hfNjRCSVQgfCBfX0FVRElUX0FSQ0hfTEUpCi0gI2VuZGlmCi0rI2lmbmRlZiBBVURJVF9B UkNIX1BQQzY0Ci0rI2RlZmluZSBBVURJVF9BUkNIX1BQQzY0IChFTV9QUEM2NCB8IF9fQVVESVRf QVJDSF82NEJJVCkKLSsjZW5kaWYKLSsjaWZuZGVmIEFVRElUX0FSQ0hfUFBDNjRMRQotKyNkZWZp bmUgQVVESVRfQVJDSF9QUEM2NExFIChFTV9QUEM2NCB8IF9fQVVESVRfQVJDSF82NEJJVCB8IF9f QVVESVRfQVJDSF9MRSkKLSsjZW5kaWYKLSAKLSAvLyBGb3IgcHJjdGwuaAotICNpZm5kZWYgUFJf U0VUX1NFQ0NPTVAKLWRpZmYgLS1naXQgYS9zYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL2xp bnV4X3NpZ25hbC5oIGIvc2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9saW51eF9zaWduYWwu aAotaW5kZXggZjVhNzM2NzYxLi41MTViMjFhNWYgMTAwNjQ0Ci0tLS0gYS9zYW5kYm94L2xpbnV4 L3N5c3RlbV9oZWFkZXJzL2xpbnV4X3NpZ25hbC5oCi0rKysgYi9zYW5kYm94L2xpbnV4L3N5c3Rl bV9oZWFkZXJzL2xpbnV4X3NpZ25hbC5oCi1AQCAtMTMsNyArMTMsNyBAQAotIC8vIChub3QgdW5k ZWZpbmVkLCBidXQgZGVmaW5lZCBkaWZmZXJlbnQgdmFsdWVzIGFuZCBpbiBkaWZmZXJlbnQgbWVt b3J5Ci0gLy8gbGF5b3V0cykuIFNvLCBmaWxsIHRoZSBnYXAgaGVyZS4KLSAjaWYgZGVmaW5lZChf X2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8IFwK LS0gICAgZGVmaW5lZChfX2FhcmNoNjRfXykKLSsgICAgZGVmaW5lZChfX2FhcmNoNjRfXykgfHwg ZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotIAotICNkZWZpbmUgTElOVVhfU0lHSFVQIDEKLSAjZGVm aW5lIExJTlVYX1NJR0lOVCAyCi1kaWZmIC0tZ2l0IGEvc2FuZGJveC9saW51eC9zeXN0ZW1faGVh ZGVycy9saW51eF9zeXNjYWxscy5oIGIvc2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9saW51 eF9zeXNjYWxscy5oCi1pbmRleCAyYjc4YTBjYzMuLjBhNzBmNWVhNSAxMDA2NDQKLS0tLSBhL3Nh bmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvbGludXhfc3lzY2FsbHMuaAotKysrIGIvc2FuZGJv eC9saW51eC9zeXN0ZW1faGVhZGVycy9saW51eF9zeXNjYWxscy5oCi1AQCAtMzUsNSArMzUsOSBA QAotICNpbmNsdWRlICJzYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL2FybTY0X2xpbnV4X3N5 c2NhbGxzLmgiCi0gI2VuZGlmCi0gCi0rI2lmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSsjaW5j bHVkZSAic2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9wcGM2NF9saW51eF9zeXNjYWxscy5o IgotKyNlbmRpZgotKwotICNlbmRpZiAgLy8gU0FOREJPWF9MSU5VWF9TWVNURU1fSEVBREVSU19M SU5VWF9TWVNDQUxMU19IXwotIAotZGlmZiAtLWdpdCBhL3NhbmRib3gvbGludXgvc3lzdGVtX2hl YWRlcnMvcHBjNjRfbGludXhfc3lzY2FsbHMuaCBiL3NhbmRib3gvbGludXgvc3lzdGVtX2hlYWRl cnMvcHBjNjRfbGludXhfc3lzY2FsbHMuaAotbmV3IGZpbGUgbW9kZSAxMDA2NDQKLWluZGV4IDAw MDAwMDAwMC4uY2NhY2ZmZTIyCi0tLS0gL2Rldi9udWxsCi0rKysgYi9zYW5kYm94L2xpbnV4L3N5 c3RlbV9oZWFkZXJzL3BwYzY0X2xpbnV4X3N5c2NhbGxzLmgKLUBAIC0wLDAgKzEsMTIgQEAKLSsv LyBDb3B5cmlnaHQgMjAxNCBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZl ZC4KLSsvLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHls ZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi0rLy8gZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLSsK LSsjaWZuZGVmIFNBTkRCT1hfTElOVVhfU1lTVEVNX0hFQURFUlNfUFBDNjRfTElOVVhfU1lTQ0FM TFNfSF8KLSsjZGVmaW5lIFNBTkRCT1hfTElOVVhfU1lTVEVNX0hFQURFUlNfUFBDNjRfTElOVVhf U1lTQ0FMTFNfSF8KLSsKLSsjaW5jbHVkZSA8YXNtL3VuaXN0ZC5oPgotKwotKy8vVE9ETzogaXMg aXQgbmVjZXNzYXJ5IHRvIHJlZGVmaW5lIHN5c2NhbGwgbnVtYmVycyBmb3IgUFBDNjQ/Ci0rCi0r I2VuZGlmICAvLyBTQU5EQk9YX0xJTlVYX1NZU1RFTV9IRUFERVJTX1BQQzY0X0xJTlVYX1NZU0NB TExTX0hfCi1kaWZmIC0tZ2l0IGEvc2FuZGJveC9wb2xpY3kvbGludXgvYnBmX3V0aWxpdHlfcG9s aWN5X2xpbnV4LmNjIGIvc2FuZGJveC9wb2xpY3kvbGludXgvYnBmX3V0aWxpdHlfcG9saWN5X2xp bnV4LmNjCi1pbmRleCAyNTg4ZmM3OTIuLmQ0NTVjNDYwMSAxMDA2NDQKLS0tLSBhL3NhbmRib3gv cG9saWN5L2xpbnV4L2JwZl91dGlsaXR5X3BvbGljeV9saW51eC5jYwotKysrIGIvc2FuZGJveC9w b2xpY3kvbGludXgvYnBmX3V0aWxpdHlfcG9saWN5X2xpbnV4LmNjCi1AQCAtMzQsNyArMzQsNyBA QAotICAgICBjYXNlIF9fTlJfZmRhdGFzeW5jOgotICAgICBjYXNlIF9fTlJfZnN5bmM6Ci0gI2lm IGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX21p cHNfXykgfHwgXAotLSAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKQotKyAgICBkZWZpbmVkKF9fYWFy Y2g2NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19OUl9nZXRybGlt aXQ6Ci0gI2VuZGlmCi0gI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX19hcm1fXykK LWRpZmYgLS1naXQgYS9zYW5kYm94L3BvbGljeS9saW51eC9icGZfcmVuZGVyZXJfcG9saWN5X2xp bnV4LmNjIGIvc2FuZGJveC9wb2xpY3kvbGludXgvYnBmX3JlbmRlcmVyX3BvbGljeV9saW51eC5j YwotaW5kZXggMjU4OGZjNzkyLi5kNDU1YzQ2MDEgMTAwNjQ0Ci0tLS0gYS9zYW5kYm94L3BvbGlj eS9saW51eC9icGZfcmVuZGVyZXJfcG9saWN5X2xpbnV4LmNjCi0rKysgYi9zYW5kYm94L3BvbGlj eS9saW51eC9icGZfcmVuZGVyZXJfcG9saWN5X2xpbnV4LmNjCi1AQCAtMTUsNiArMTUsMTEgQEAK LSAjaW5jbHVkZSAic2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9saW51eF9zeXNjYWxscy5o IgotICNpbmNsdWRlICJzYW5kYm94L3BvbGljeS9saW51eC9zYW5kYm94X2xpbnV4LmgiCi0gCi0r Ly8gT24gUFBDNjQsIFRDR0VUUyBpcyBkZWZpbmVkIGluIHRlcm1zIG9mIHN0cnVjdCB0ZXJtaW9z LCBzbyB3ZSBtdXN0IGluY2x1ZGUgdGVybWlvcy5oCi0rI2lmZGVmIF9fcG93ZXJwYzY0X18KLSsj aW5jbHVkZSA8dGVybWlvcy5oPgotKyNlbmRpZgotKwotIC8vIFRPRE8odmlnbmF0dGkpOiByZXBs YWNlIHRoZSBsb2NhbCBkZWZpbml0aW9ucyBiZWxvdyB3aXRoICNpbmNsdWRlCi0gLy8gPGxpbnV4 L2RtYS1idWYuaD4gb25jZSBrZXJuZWwgdmVyc2lvbiA0LjYgYmVjb21lcyB3aWRlbHkgdXNlZC4K LSAjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KLUBAIC03Nyw3ICs3Nyw3IEBACi0gICAgIGNhc2Ug X19OUl9mdHJ1bmNhdGU2NDoKLSAjZW5kaWYKLSAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVm aW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBcCi0tICAgIGRlZmluZWQo X19hYXJjaDY0X18pCi0rICAgIGRlZmluZWQoX19hYXJjaDY0X18pIHx8IGRlZmluZWQoX19wb3dl cnBjNjRfXykKLSAgICAgY2FzZSBfX05SX2dldHJsaW1pdDoKLSAgICAgY2FzZSBfX05SX3NldHJs aW1pdDoKLSAvLyBXZSBhbGxvdyBzZXRybGltaXQgdG8gZHluYW1pY2FsbHkgYWRqdXN0IHRoZSBh ZGRyZXNzIHNwYWNlIGxpbWl0IGFzCi1kaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvYW5nbGUvc3Jj L2NvbXBpbGVyL3RyYW5zbGF0b3IvSW5mb1NpbmsuaCBiL3RoaXJkX3BhcnR5L2FuZ2xlL3NyYy9j b21waWxlci90cmFuc2xhdG9yL0luZm9TaW5rLmgKLWluZGV4IDNhODA3ZTFlMy4uNTI1ODYxN2E3 IDEwMDY0NAotLS0tIGEvdGhpcmRfcGFydHkvYW5nbGUvc3JjL2NvbXBpbGVyL3RyYW5zbGF0b3Iv SW5mb1NpbmsuaAotKysrIGIvdGhpcmRfcGFydHkvYW5nbGUvc3JjL2NvbXBpbGVyL3RyYW5zbGF0 b3IvSW5mb1NpbmsuaAotQEAgLTkyLDcgKzkyLDE2IEBAIGNsYXNzIFRJbmZvU2lua0Jhc2UKLSAg ICAgICAgICAgICBzdHJlYW0ucHJlY2lzaW9uKDgpOwotICAgICAgICAgICAgIHN0cmVhbSA8PCBm OwotICAgICAgICAgfQotLSAgICAgICAgc2luay5hcHBlbmQoc3RyZWFtLnN0cigpKTsKLSsKLSsg ICAgICAgIC8vIEhhY2sgdG8gd29yayBhcm91bmQgYSBidWcgd2hlcmUgbmVnYXRpdmUgZmxvYXRp bmcgcG9pbnQgdmFsdWVzCi0rICAgICAgICAvLyBhcmUgcmVuZGVyZWQgbGlrZSAnLjAuNScgaW5z dGVhZCBvZiAnLTAuNScKLSsgICAgICAgIHN0ZDo6c3RyaW5nIHJlcyhzdHJlYW0uc3RyKCkpOwot KwotKyAgICAgICAgaWYgKHNpZ25iaXQoZikpIHsgLy8gdGVzdCBpZiBmIGlzIG5lZ2F0aXZlCi0r ICAgICAgICAgICAgcmVzWzBdID0gJy0nOwotKyAgICAgICAgfQotKwotKyAgICAgICAgc2luay5h cHBlbmQocmVzKTsKLSAgICAgICAgIHJldHVybiAqdGhpczsKLSAgICAgfQotICAgICAvLyBXcml0 ZSBib29sZWFuIHZhbHVlcyBhcyB0aGVpciBuYW1lcyBpbnN0ZWFkIG9mIGludGVncmFsIHZhbHVl LgotZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2FuZ2xlL3NyYy9saWJBTkdMRS9Db25zdGFudHMu aCBiL3RoaXJkX3BhcnR5L2FuZ2xlL3NyYy9saWJBTkdMRS9Db25zdGFudHMuaAotaW5kZXggZmNi YzkyNDZhLi4zOWFlNjYxNDggMTAwNjQ0Ci0tLS0gYS90aGlyZF9wYXJ0eS9hbmdsZS9zcmMvbGli QU5HTEUvQ29uc3RhbnRzLmgKLSsrKyBiL3RoaXJkX3BhcnR5L2FuZ2xlL3NyYy9saWJBTkdMRS9D b25zdGFudHMuaAotQEAgLTksNiArOSw3IEBACi0gI2lmbmRlZiBMSUJBTkdMRV9DT05TVEFOVFNf SF8KLSAjZGVmaW5lIExJQkFOR0xFX0NPTlNUQU5UU19IXwotIAotKyNpbmNsdWRlIDxjc3RkZGVm PgotICNpbmNsdWRlICJjb21tb24vcGxhdGZvcm0uaCIKLSAKLSAjaW5jbHVkZSA8c3RkaW50Lmg+ Ci1kaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvYm9yaW5nc3NsL0JVSUxELmduIGIvdGhpcmRfcGFy dHkvYm9yaW5nc3NsL0JVSUxELmduCi1pbmRleCAxN2NmOWNkYTkuLjhjZTk2YmQzMiAxMDA2NDQK LS0tLSBhL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9CVUlMRC5nbgotKysrIGIvdGhpcmRfcGFydHkv Ym9yaW5nc3NsL0JVSUxELmduCi1AQCAtMTAzLDYgKzEwMywxMyBAQCBpZiAoaXNfd2luICYmICFp c19tc2FuICYmIGN1cnJlbnRfY3B1ICE9ICJhcm02NCIpIHsKLSAgICAgICB9IGVsc2UgewotICAg ICAgICAgcHVibGljX2NvbmZpZ3MgPSBbICI6bm9fYXNtX2NvbmZpZyIgXQotICAgICAgIH0KLSsg ICAgfSBlbHNlIGlmIChjdXJyZW50X2NwdSA9PSAicHBjNjQiKSB7Ci0rICAgICAgaWYgKGlzX2xp bnV4KSB7Ci0rICAgICAgICAjIFRPRE86IHBwYzY0IChiZSkgY2hlY2sKLSsgICAgICAgIHNvdXJj ZXMgKz0gY3J5cHRvX3NvdXJjZXNfbGludXhfcHBjNjRsZQotKyAgICAgIH0gZWxzZSB7Ci0rICAg ICAgICBwdWJsaWNfY29uZmlncyA9IFsgIjpub19hc21fY29uZmlnIiBdCi0rICAgICAgfQotICAg ICB9IGVsc2UgewotICAgICAgIHB1YmxpY19jb25maWdzID0gWyAiOm5vX2FzbV9jb25maWciIF0K LSAgICAgfQotZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2JyZWFrcGFkL0JVSUxELmduIGIvdGhp cmRfcGFydHkvYnJlYWtwYWQvQlVJTEQuZ24KLWluZGV4IDRhZjNkN2JiZi4uYWRiZjU0MTU5IDEw MDY0NAotLS0tIGEvdGhpcmRfcGFydHkvYnJlYWtwYWQvQlVJTEQuZ24KLSsrKyBiL3RoaXJkX3Bh cnR5L2JyZWFrcGFkL0JVSUxELmduCi1AQCAtNTk2LDcgKzU5Niw2IEBAIGlmIChpc19saW51eCB8 fCBpc19jaHJvbWVvcyB8fCBpc19hbmRyb2lkKSB7Ci0gICAgICAgImJyZWFrcGFkL3NyYy9jbGll bnQvbWluaWR1bXBfZmlsZV93cml0ZXIuaCIsCi0gICAgICAgImJyZWFrcGFkL3NyYy9jb21tb24v Y29udmVydF9VVEYuY2MiLAotICAgICAgICJicmVha3BhZC9zcmMvY29tbW9uL2NvbnZlcnRfVVRG LmgiLAotLSAgICAgICJicmVha3BhZC9zcmMvY29tbW9uL2xpbnV4L2JyZWFrcGFkX2dldGNvbnRl eHQuUyIsCi0gICAgICAgImJyZWFrcGFkL3NyYy9jb21tb24vbGludXgvZWxmX2NvcmVfZHVtcC5j YyIsCi0gICAgICAgImJyZWFrcGFkL3NyYy9jb21tb24vbGludXgvZWxmX2NvcmVfZHVtcC5oIiwK LSAgICAgICAiYnJlYWtwYWQvc3JjL2NvbW1vbi9saW51eC9lbGZ1dGlscy5jYyIsCi1AQCAtNjM0 LDYgKzYzMywxNCBAQCBpZiAoaXNfbGludXggfHwgaXNfY2hyb21lb3MgfHwgaXNfYW5kcm9pZCkg ewotIAotICAgICBsaWJzID0gWyAiZGwiIF0KLSAKLSsgICAgaWYgKGN1cnJlbnRfY3B1ID09ICJw cGM2NCIpIHsKLSsgICAgICAgIGRlZmluZXMgPSBbICJIQVZFX0dFVENPTlRFWFQiIF0KLSsgICAg fSBlbHNlIHsKLSsgICAgICAgIHNvdXJjZXMgKz0gWwotKyAgICAgICAgICAgICJicmVha3BhZC9z cmMvY29tbW9uL2xpbnV4L2JyZWFrcGFkX2dldGNvbnRleHQuUyIKLSsgICAgICAgIF0KLSsgICAg fQotKwotICAgICBpbmNsdWRlX2RpcnMgPSBbCi0gICAgICAgIi4iLAotICAgICAgICJicmVha3Bh ZC9zcmMiLAotQEAgLTY4Miw3ICs2ODksNiBAQCBpZiAoaXNfbGludXggfHwgaXNfY2hyb21lb3Mg fHwgaXNfYW5kcm9pZCkgewotICAgICAgICJicmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlk dW1wX3dyaXRlci9taW5pZHVtcF93cml0ZXJfdW5pdHRlc3QuY2MiLAotICAgICAgICJicmVha3Bh ZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9taW5pZHVtcF93cml0ZXJfdW5pdHRl c3RfdXRpbHMuY2MiLAotICAgICAgICJicmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1w X3dyaXRlci9wcm9jX2NwdWluZm9fcmVhZGVyX3VuaXR0ZXN0LmNjIiwKLS0gICAgICAiYnJlYWtw YWQvc3JjL2NvbW1vbi9saW51eC9icmVha3BhZF9nZXRjb250ZXh0X3VuaXR0ZXN0LmNjIiwKLSAg ICAgICAiYnJlYWtwYWQvc3JjL2NvbW1vbi9saW51eC9lbGZfY29yZV9kdW1wX3VuaXR0ZXN0LmNj IiwKLSAgICAgICAiYnJlYWtwYWQvc3JjL2NvbW1vbi9saW51eC9maWxlX2lkX3VuaXR0ZXN0LmNj IiwKLSAgICAgICAiYnJlYWtwYWQvc3JjL2NvbW1vbi9saW51eC9saW51eF9saWJjX3N1cHBvcnRf dW5pdHRlc3QuY2MiLAotZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFk L3NyYy9jbGllbnQvbGludXgvZHVtcF93cml0ZXJfY29tbW9uL3Jhd19jb250ZXh0X2NwdS5oIGIv dGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRl cl9jb21tb24vcmF3X2NvbnRleHRfY3B1LmgKLWluZGV4IDA3ZDkxNzFhMC4uOWFlZDRjYjM2IDEw MDY0NAotLS0tIGEvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51 eC9kdW1wX3dyaXRlcl9jb21tb24vcmF3X2NvbnRleHRfY3B1LmgKLSsrKyBiL3RoaXJkX3BhcnR5 L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvZHVtcF93cml0ZXJfY29tbW9uL3Jh d19jb250ZXh0X2NwdS5oCi1AQCAtNDQsNiArNDQsOCBAQCB0eXBlZGVmIE1EUmF3Q29udGV4dEFS TSBSYXdDb250ZXh0Q1BVOwotIHR5cGVkZWYgTURSYXdDb250ZXh0QVJNNjRfT2xkIFJhd0NvbnRl eHRDUFU7Ci0gI2VsaWYgZGVmaW5lZChfX21pcHNfXykKLSB0eXBlZGVmIE1EUmF3Q29udGV4dE1J UFMgUmF3Q29udGV4dENQVTsKLSsjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rdHlwZWRl ZiBNRFJhd0NvbnRleHRQUEM2NCBSYXdDb250ZXh0Q1BVOwotICNlbHNlCi0gI2Vycm9yICJUaGlz IGNvZGUgaGFzIG5vdCBiZWVuIHBvcnRlZCB0byB5b3VyIHBsYXRmb3JtIHlldC4iCi0gI2VuZGlm Ci1kaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9s aW51eC9kdW1wX3dyaXRlcl9jb21tb24vdGhyZWFkX2luZm8uY2MgYi90aGlyZF9wYXJ0eS9icmVh a3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1vbi90aHJlYWRf aW5mby5jYwotaW5kZXggYWFlMWRjMTNiLi4wM2FmZWM3YTUgMTAwNjQ0Ci0tLS0gYS90aGlyZF9w YXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1v bi90aHJlYWRfaW5mby5jYwotKysrIGIvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3Jj L2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21tb24vdGhyZWFkX2luZm8uY2MKLUBAIC0yNzAs NyArMjcwLDQyIEBAIHZvaWQgVGhyZWFkSW5mbzo6RmlsbENQVUNvbnRleHQoUmF3Q29udGV4dENQ VSogb3V0KSBjb25zdCB7Ci0gICBvdXQtPmZsb2F0X3NhdmUuZmlyID0gbWNvbnRleHQuZnBjX2Vp cjsKLSAjZW5kaWYKLSB9Ci0tI2VuZGlmICAvLyBfX21pcHNfXwotKwotKyNlbGlmIGRlZmluZWQo X19wb3dlcnBjNjRfXykKLSsKLSt1aW50cHRyX3QgVGhyZWFkSW5mbzo6R2V0SW5zdHJ1Y3Rpb25Q b2ludGVyKCkgY29uc3QgewotKyAgICByZXR1cm4gbWNvbnRleHQuZ3BfcmVnc1tQVF9OSVBdOwot K30KLSsKLSt2b2lkIFRocmVhZEluZm86OkZpbGxDUFVDb250ZXh0KFJhd0NvbnRleHRDUFUqIG91 dCkgY29uc3QgewotKyAgICBvdXQtPmNvbnRleHRfZmxhZ3MgPSBNRF9DT05URVhUX1BQQzY0X0ZV TEw7Ci0rICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTURfQ09OVEVYVF9QUEM2NF9HUFJfQ09VTlQ7 IGkrKykKLSsgICAgICAgIG91dC0+Z3ByW2ldID0gbWNvbnRleHQuZ3BfcmVnc1tpXTsKLSsKLSsg ICAgb3V0LT5sciA9IG1jb250ZXh0LmdwX3JlZ3NbUFRfTE5LXTsKLSsgICAgb3V0LT5zcnIwID0g bWNvbnRleHQuZ3BfcmVnc1tQVF9OSVBdOwotKyAgICBvdXQtPnNycjEgPSBtY29udGV4dC5ncF9y ZWdzW1BUX01TUl07Ci0rICAgIG91dC0+Y3IgPSBtY29udGV4dC5ncF9yZWdzW1BUX0NDUl07Ci0r ICAgIG91dC0+eGVyID0gbWNvbnRleHQuZ3BfcmVnc1tQVF9YRVJdOwotKyAgICBvdXQtPmN0ciA9 IG1jb250ZXh0LmdwX3JlZ3NbUFRfQ1RSXTsKLSsgICAgCi0rICAgIGZvciAoaW50IGkgPSAwOyBp IDwgTURfRkxPQVRJTkdTQVZFQVJFQV9QUENfRlBSX0NPVU5UOyBpKyspCi0rICAgICAgICBvdXQt PmZsb2F0X3NhdmUuZnByZWdzW2ldID0gbWNvbnRleHQuZnBfcmVnc1tpXTsKLSsKLSsgICAgb3V0 LT5mbG9hdF9zYXZlLmZwc2NyID0gbWNvbnRleHQuZnBfcmVnc1tORlBSRUctMV07Ci0rCi0rICAg IGZvciAoaW50IGkgPSAwOyBpIDwgTURfVkVDVE9SU0FWRUFSRUFfUFBDX1ZSX0NPVU5UOyBpKysp Ci0rICAgICAgICBvdXQtPnZlY3Rvcl9zYXZlLnNhdmVfdnJbaV0gPSBcCi0rICAgICAgICAgICAg eygoKHVpbnQ2NF90KXZyZWdzLnZycmVnc1tpXVswXSkgPDwgMzIpIAotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgfCB2cmVncy52cnJlZ3NbaV1bMV0sIAotKyAgICAgICAgICAgICgoKHVpbnQ2 NF90KXZyZWdzLnZycmVnc1tpXVsyXSkgPDwgMzIpCi0rICAgICAgICAgICAgICAgICAgICAgICAg IHwgdnJlZ3MudnJyZWdzW2ldWzNdfTsKLSsKLSsgICAgb3V0LT52cnNhdmUgPSB2cmVncy52cnNh dmU7Ci0rICAgIG91dC0+dmVjdG9yX3NhdmUuc2F2ZV92c2NyID0gezAsIHZyZWdzLnZzY3IudnNj cl93b3JkfTsKLSsgICAgb3V0LT52ZWN0b3Jfc2F2ZS5zYXZlX3ZydmFsaWQgPSAweEZGRkZGRkZG OyAKLSt9Ci0rI2VuZGlmICAvLyBfX3Bvd2VycGM2NF9fCi0gCi0gdm9pZCBUaHJlYWRJbmZvOjpH ZXRHZW5lcmFsUHVycG9zZVJlZ2lzdGVycyh2b2lkKiogZ3BfcmVncywgc2l6ZV90KiBzaXplKSB7 Ci0gICBhc3NlcnQoZ3BfcmVncyB8fCBzaXplKTsKLUBAIC0yNzksNiArMzE0LDExIEBAIHZvaWQg VGhyZWFkSW5mbzo6R2V0R2VuZXJhbFB1cnBvc2VSZWdpc3RlcnModm9pZCoqIGdwX3JlZ3MsIHNp emVfdCogc2l6ZSkgewotICAgICAqZ3BfcmVncyA9IG1jb250ZXh0LmdyZWdzOwotICAgaWYgKHNp emUpCi0gICAgICpzaXplID0gc2l6ZW9mKG1jb250ZXh0LmdyZWdzKTsKLSsjZWxpZiBkZWZpbmVk KF9fcG93ZXJwYzY0X18pCi0rICBpZiAoZ3BfcmVncykKLSsgICAgKmdwX3JlZ3MgPSBtY29udGV4 dC5ncF9yZWdzOwotKyAgaWYgKHNpemUpCi0rICAgICpzaXplID0gc2l6ZW9mKG1jb250ZXh0Lmdw X3JlZ3MpOwotICNlbHNlCi0gICBpZiAoZ3BfcmVncykKLSAgICAgKmdwX3JlZ3MgPSAmcmVnczsK LUBAIC0yOTQsNiArMzM0LDExIEBAIHZvaWQgVGhyZWFkSW5mbzo6R2V0RmxvYXRpbmdQb2ludFJl Z2lzdGVycyh2b2lkKiogZnBfcmVncywgc2l6ZV90KiBzaXplKSB7Ci0gICAgICpmcF9yZWdzID0g Jm1jb250ZXh0LmZwcmVnczsKLSAgIGlmIChzaXplKQotICAgICAqc2l6ZSA9IHNpemVvZihtY29u dGV4dC5mcHJlZ3MpOwotKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSsgIGlmIChmcF9y ZWdzKQotKyAgICAqZnBfcmVncyA9ICZtY29udGV4dC5mcF9yZWdzOwotKyAgaWYgKHNpemUpCi0r ICAgICpzaXplID0gc2l6ZW9mKG1jb250ZXh0LmZwX3JlZ3MpOwotICNlbHNlCi0gICBpZiAoZnBf cmVncykKLSAgICAgKmZwX3JlZ3MgPSAmZnByZWdzOwotQEAgLTMwMiw0ICszNDcsMTMgQEAgdm9p ZCBUaHJlYWRJbmZvOjpHZXRGbG9hdGluZ1BvaW50UmVnaXN0ZXJzKHZvaWQqKiBmcF9yZWdzLCBz aXplX3QqIHNpemUpIHsKLSAjZW5kaWYKLSB9Ci0gCi0rI2lmIGRlZmluZWQoX19wb3dlcnBjNjRf XykKLSt2b2lkIFRocmVhZEluZm86OkdldFZlY3RvclJlZ2lzdGVycyh2b2lkKiogdl9yZWdzLCBz aXplX3QqIHNpemUpIHsKLSsgICAgaWYgKHZfcmVncykKLSsgICAgICAgICp2X3JlZ3MgPSAmdnJl Z3M7Ci0rICAgIGlmIChzaXplKQotKyAgICAgICAgKnNpemUgPSBzaXplb2YodnJlZ3MpOwotK30K LSsjZW5kaWYKLSsKLSB9ICAvLyBuYW1lc3BhY2UgZ29vZ2xlX2JyZWFrcGFkCi1kaWZmIC0tZ2l0 IGEvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dy aXRlcl9jb21tb24vdGhyZWFkX2luZm8uaCBiL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFk L3NyYy9jbGllbnQvbGludXgvZHVtcF93cml0ZXJfY29tbW9uL3RocmVhZF9pbmZvLmgKLWluZGV4 IGZiMjE2ZmE2ZC4uNTkzYWFjODIyIDEwMDY0NAotLS0tIGEvdGhpcmRfcGFydHkvYnJlYWtwYWQv YnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21tb24vdGhyZWFkX2luZm8u aAotKysrIGIvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9k dW1wX3dyaXRlcl9jb21tb24vdGhyZWFkX2luZm8uaAotQEAgLTY4LDYgKzY4LDEwIEBAIHN0cnVj dCBUaHJlYWRJbmZvIHsKLSAgIC8vIFVzZSB0aGUgc3RydWN0dXJlcyBkZWZpbmVkIGluIDxzeXMv dXNlci5oPgotICAgc3RydWN0IHVzZXJfcmVnc19zdHJ1Y3QgcmVnczsKLSAgIHN0cnVjdCB1c2Vy X2Zwc2ltZF9zdHJ1Y3QgZnByZWdzOwotKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSsg IC8vIFVzZSB0aGUgc3RydWN0dXJlcyBkZWZpbmVkIGluIDxzeXMvdWNvbnRleHQuaD4uCi0rICBt Y29udGV4dF90IG1jb250ZXh0OwotKyAgdnJyZWdzZXRfdCB2cmVnczsKLSAjZWxpZiBkZWZpbmVk KF9fbWlwc19fKQotICAgLy8gVXNlIHRoZSBzdHJ1Y3R1cmUgZGVmaW5lZCBpbiA8c3lzL3Vjb250 ZXh0Lmg+LgotICAgbWNvbnRleHRfdCBtY29udGV4dDsKLUBAIC04NCw2ICs4OCwxMSBAQCBzdHJ1 Y3QgVGhyZWFkSW5mbyB7Ci0gCi0gICAvLyBSZXR1cm5zIHRoZSBwb2ludGVyIGFuZCBzaXplIG9m IGZsb2F0IHBvaW50IHJlZ2lzdGVyIGFyZWEuCi0gICB2b2lkIEdldEZsb2F0aW5nUG9pbnRSZWdp c3RlcnModm9pZCoqIGZwX3JlZ3MsIHNpemVfdCogc2l6ZSk7Ci0rCi0rI2lmIGRlZmluZWQoX19w b3dlcnBjNjRfXykKLSsgIC8vIFJldHVybnMgdGhlIHBvaW50ZXIgYW5kIHNpemUgb2YgdGhlIHZl Y3RvciByZWdpc3RlciBhcmVhLiAoUFBDNjQgb25seSkKLSsgIHZvaWQgR2V0VmVjdG9yUmVnaXN0 ZXJzKHZvaWQqKiB2X3JlZ3MsIHNpemVfdCogc2l6ZSk7Ci0rI2VuZGlmCi0gfTsKLSAKLSB9ICAv LyBuYW1lc3BhY2UgZ29vZ2xlX2JyZWFrcGFkCi1kaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvYnJl YWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21tb24vdWNvbnRl eHRfcmVhZGVyLmNjIGIvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9s aW51eC9kdW1wX3dyaXRlcl9jb21tb24vdWNvbnRleHRfcmVhZGVyLmNjCi1pbmRleCA2ZWVjMWJl MjQuLjc0MTk4M2ExYSAxMDA2NDQKLS0tLSBhL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFk L3NyYy9jbGllbnQvbGludXgvZHVtcF93cml0ZXJfY29tbW9uL3Vjb250ZXh0X3JlYWRlci5jYwot KysrIGIvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1w X3dyaXRlcl9jb21tb24vdWNvbnRleHRfcmVhZGVyLmNjCi1AQCAtMjU0LDYgKzI1NCw0OCBAQCB2 b2lkIFVDb250ZXh0UmVhZGVyOjpGaWxsQ1BVQ29udGV4dChSYXdDb250ZXh0Q1BVKiBvdXQsIGNv bnN0IHVjb250ZXh0X3QqIHVjKSB7Ci0gICBvdXQtPmZsb2F0X3NhdmUuZmlyID0gdWMtPnVjX21j b250ZXh0LmZwY19laXI7ICAvLyBVbnVzZWQuCi0gI2VuZGlmCi0gfQotKwotKyNlbGlmIGRlZmlu ZWQoX19wb3dlcnBjNjRfXykKLSsKLSt1aW50cHRyX3QgVUNvbnRleHRSZWFkZXI6OkdldFN0YWNr UG9pbnRlcihjb25zdCB1Y29udGV4dF90KiB1YykgewotKyAgICByZXR1cm4gdWMtPnVjX21jb250 ZXh0LmdwX3JlZ3NbTURfQ09OVEVYVF9QUEM2NF9SRUdfU1BdOwotK30KLSsKLSt1aW50cHRyX3Qg VUNvbnRleHRSZWFkZXI6OkdldEluc3RydWN0aW9uUG9pbnRlcihjb25zdCB1Y29udGV4dF90KiB1 YykgewotKyAgICByZXR1cm4gdWMtPnVjX21jb250ZXh0LmdwX3JlZ3NbUFRfTklQXTsKLSt9Ci0r Ci0rdm9pZCBVQ29udGV4dFJlYWRlcjo6RmlsbENQVUNvbnRleHQoUmF3Q29udGV4dENQVSogb3V0 LCBjb25zdCB1Y29udGV4dF90KiB1YywKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBjb25zdCB2cnJlZ3NldF90KiB2cmVncykgewotKyAgICBvdXQtPmNvbnRleHRfZmxhZ3Mg PSBNRF9DT05URVhUX1BQQzY0X0ZVTEw7Ci0rCi0rICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTURf Q09OVEVYVF9QUEM2NF9HUFJfQ09VTlQ7IGkrKykKLSsgICAgICAgIG91dC0+Z3ByW2ldID0gdWMt PnVjX21jb250ZXh0LmdwX3JlZ3NbaV07Ci0rCi0rICAgIG91dC0+bHIgPSB1Yy0+dWNfbWNvbnRl eHQuZ3BfcmVnc1tQVF9MTktdOyAgICAKLSsgICAgb3V0LT5zcnIwID0gdWMtPnVjX21jb250ZXh0 LmdwX3JlZ3NbUFRfTklQXTsKLSsgICAgb3V0LT5zcnIxID0gdWMtPnVjX21jb250ZXh0LmdwX3Jl Z3NbUFRfTVNSXTsKLSsgICAgb3V0LT5jciA9IHVjLT51Y19tY29udGV4dC5ncF9yZWdzW1BUX0ND Ul07Ci0rICAgIG91dC0+eGVyID0gdWMtPnVjX21jb250ZXh0LmdwX3JlZ3NbUFRfWEVSXTsKLSsg ICAgb3V0LT5jdHIgPSB1Yy0+dWNfbWNvbnRleHQuZ3BfcmVnc1tQVF9DVFJdOwotKyAgICAKLSsg ICAgZm9yIChpbnQgaSA9IDA7IGkgPCBNRF9GTE9BVElOR1NBVkVBUkVBX1BQQ19GUFJfQ09VTlQ7 IGkrKykKLSsgICAgICAgIG91dC0+ZmxvYXRfc2F2ZS5mcHJlZ3NbaV0gPSB1Yy0+dWNfbWNvbnRl eHQuZnBfcmVnc1tpXTsKLSsKLSsgICAgb3V0LT5mbG9hdF9zYXZlLmZwc2NyID0gdWMtPnVjX21j b250ZXh0LmZwX3JlZ3NbTkZQUkVHLTFdOwotKwotKyAgICBmb3IgKGludCBpID0gMDsgaSA8IE1E X1ZFQ1RPUlNBVkVBUkVBX1BQQ19WUl9DT1VOVDsgaSsrKQotKyAgICAgICAgb3V0LT52ZWN0b3Jf c2F2ZS5zYXZlX3ZyW2ldID0KLSsgICAgICAgICAgICB7KCgodWludDY0X3QpdnJlZ3MtPnZycmVn c1tpXVswXSkgPDwgMzIpIAotKyAgICAgICAgICAgICAgICAgICAgICAgICB8IHZyZWdzLT52cnJl Z3NbaV1bMV0sIAotKyAgICAgICAgICAgICAoKCh1aW50NjRfdCl2cmVncy0+dnJyZWdzW2ldWzJd KSA8PCAzMikKLSsgICAgICAgICAgICAgICAgICAgICAgICAgfCB2cmVncy0+dnJyZWdzW2ldWzNd fTsKLSsKLSsgICAgb3V0LT52cnNhdmUgPSB2cmVncy0+dnJzYXZlOwotKyAgICBvdXQtPnZlY3Rv cl9zYXZlLnNhdmVfdnNjciA9IHswLCB2cmVncy0+dnNjci52c2NyX3dvcmR9OwotKyAgICBvdXQt PnZlY3Rvcl9zYXZlLnNhdmVfdnJ2YWxpZCA9IDB4RkZGRkZGRkY7IAotK30KLSsKLSAjZW5kaWYK LSAKLSB9ICAvLyBuYW1lc3BhY2UgZ29vZ2xlX2JyZWFrcGFkCi1kaWZmIC0tZ2l0IGEvdGhpcmRf cGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21t b24vdWNvbnRleHRfcmVhZGVyLmggYi90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMv Y2xpZW50L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1vbi91Y29udGV4dF9yZWFkZXIuaAotaW5kZXgg N2Q0MTAwODgxLi5jMTIyYWM5MmUgMTAwNjQ0Ci0tLS0gYS90aGlyZF9wYXJ0eS9icmVha3BhZC9i cmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1vbi91Y29udGV4dF9yZWFk ZXIuaAotKysrIGIvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51 eC9kdW1wX3dyaXRlcl9jb21tb24vdWNvbnRleHRfcmVhZGVyLmgKLUBAIC01NSw2ICs1NSw5IEBA IHN0cnVjdCBVQ29udGV4dFJlYWRlciB7Ci0gI2VsaWYgZGVmaW5lZChfX2FhcmNoNjRfXykKLSAg IHN0YXRpYyB2b2lkIEZpbGxDUFVDb250ZXh0KFJhd0NvbnRleHRDUFUqIG91dCwgY29uc3QgdWNv bnRleHRfdCogdWMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3Qg ZnBzaW1kX2NvbnRleHQqIGZwcmVncyk7Ci0rI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQot KyAgc3RhdGljIHZvaWQgRmlsbENQVUNvbnRleHQoUmF3Q29udGV4dENQVSAqb3V0LCBjb25zdCB1 Y29udGV4dF90ICp1YywKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZycmVn c2V0X3QqIHZyZWdzKTsKLSAjZWxzZQotICAgc3RhdGljIHZvaWQgRmlsbENQVUNvbnRleHQoUmF3 Q29udGV4dENQVSogb3V0LCBjb25zdCB1Y29udGV4dF90KiB1Yyk7Ci0gI2VuZGlmCi1kaWZmIC0t Z2l0IGEvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9oYW5k bGVyL2V4Y2VwdGlvbl9oYW5kbGVyLmNjIGIvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQv c3JjL2NsaWVudC9saW51eC9oYW5kbGVyL2V4Y2VwdGlvbl9oYW5kbGVyLmNjCi1pbmRleCBhNmNi NWY5ODQuLmFlMTZiNjRkOSAxMDA2NDQKLS0tLSBhL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFr cGFkL3NyYy9jbGllbnQvbGludXgvaGFuZGxlci9leGNlcHRpb25faGFuZGxlci5jYwotKysrIGIv dGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9oYW5kbGVyL2V4 Y2VwdGlvbl9oYW5kbGVyLmNjCi1AQCAtNDYxLDkgKzQ2MSwxNiBAQCBib29sIEV4Y2VwdGlvbkhh bmRsZXI6OkhhbmRsZVNpZ25hbChpbnQgLypzaWcqLywgc2lnaW5mb190KiBpbmZvLCB2b2lkKiB1 YykgewotICAgICBtZW1jcHkoJmdfY3Jhc2hfY29udGV4dF8uZmxvYXRfc3RhdGUsIGZwX3B0ciwK LSAgICAgICAgICAgIHNpemVvZihnX2NyYXNoX2NvbnRleHRfLmZsb2F0X3N0YXRlKSk7Ci0gICB9 Ci0rI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotKyAgLy8gT24gUFBDNjQsIHdlIG11c3Qg Y29weSBWUiBzdGF0ZQotKyAgdWNvbnRleHRfdCogdWNfcHRyID0gKHVjb250ZXh0X3QqKXVjOwot KyAgaWYgKHVjX3B0ci0+dWNfbWNvbnRleHQudl9yZWdzKSB7Ci0rICAgIG1lbWNweSgmZ19jcmFz aF9jb250ZXh0Xy52ZWN0b3Jfc3RhdGUsIHVjX3B0ci0+dWNfbWNvbnRleHQudl9yZWdzLAotKyAg ICAgICAgICAgc2l6ZW9mKGdfY3Jhc2hfY29udGV4dF8udmVjdG9yX3N0YXRlKSk7Ci0rICB9Ci0g I2VsaWYgIWRlZmluZWQoX19BUk1fRUFCSV9fKSAmJiAhZGVmaW5lZChfX21pcHNfXykKLSAgIC8v IEZQIHN0YXRlIGlzIG5vdCBwYXJ0IG9mIHVzZXIgQUJJIG9uIEFSTSBMaW51eC4KLS0gIC8vIElu IGNhc2Ugb2YgTUlQUyBMaW51eCBGUCBzdGF0ZSBpcyBhbHJlYWR5IHBhcnQgb2YgdWNvbnRleHRf dAotKyAgLy8gSW4gY2FzZSBvZiBNSVBTLCBMaW51eCBGUCBzdGF0ZSBpcyBhbHJlYWR5IHBhcnQg b2YgdWNvbnRleHRfdAotICAgLy8gYW5kICdmbG9hdF9zdGF0ZScgaXMgbm90IGEgbWVtYmVyIG9m IENyYXNoQ29udGV4dC4KLSAgIHVjb250ZXh0X3QqIHVjX3B0ciA9ICh1Y29udGV4dF90Kil1YzsK LSAgIGlmICh1Y19wdHItPnVjX21jb250ZXh0LmZwcmVncykgewotQEAgLTcwOCwxMSArNzE1LDE5 IEBAIGJvb2wgRXhjZXB0aW9uSGFuZGxlcjo6V3JpdGVNaW5pZHVtcCgpIHsKLSAgIH0KLSAjZW5k aWYKLSAKLS0jaWYgIWRlZmluZWQoX19BUk1fRUFCSV9fKSAmJiAhZGVmaW5lZChfX2FhcmNoNjRf XykgJiYgIWRlZmluZWQoX19taXBzX18pCi0rI2lmICFkZWZpbmVkKF9fQVJNX0VBQklfXykgJiYg IWRlZmluZWQoX19hYXJjaDY0X18pICYmICFkZWZpbmVkKF9fbWlwc19fKSBcCi0rICAgICYmICFk ZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAvLyBGUFUgc3RhdGUgaXMgbm90IHBhcnQgb2YgQVJN IEVBQkkgdWNvbnRleHRfdC4KLSAgIG1lbWNweSgmY29udGV4dC5mbG9hdF9zdGF0ZSwgY29udGV4 dC5jb250ZXh0LnVjX21jb250ZXh0LmZwcmVncywKLSAgICAgICAgICBzaXplb2YoY29udGV4dC5m bG9hdF9zdGF0ZSkpOwotICNlbmRpZgotKwotKyNpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0r ICAvLyBWZWN0b3IgcmVnaXN0ZXJzIG11c3QgYmUgY29waWVkIG9uIFBQQzY0Ci0rICBtZW1jcHko JmNvbnRleHQudmVjdG9yX3N0YXRlLCBjb250ZXh0LmNvbnRleHQudWNfbWNvbnRleHQudl9yZWdz LAotKyAgICAgICAgIHNpemVvZihjb250ZXh0LnZlY3Rvcl9zdGF0ZSkpOwotKyNlbmRpZgotKwot ICAgY29udGV4dC50aWQgPSBzeXNfZ2V0dGlkKCk7Ci0gCi0gICAvLyBBZGQgYW4gZXhjZXB0aW9u IHN0cmVhbSB0byB0aGUgbWluaWR1bXAgZm9yIGJldHRlciByZXBvcnRpbmcuCi1AQCAtNzMzLDYg Kzc0OCw5IEBAIGJvb2wgRXhjZXB0aW9uSGFuZGxlcjo6V3JpdGVNaW5pZHVtcCgpIHsKLSAjZWxp ZiBkZWZpbmVkKF9fbWlwc19fKQotICAgY29udGV4dC5zaWdpbmZvLnNpX2FkZHIgPQotICAgICAg IHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KGNvbnRleHQuY29udGV4dC51Y19tY29udGV4dC5wYyk7 Ci0rI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotKyAgY29udGV4dC5zaWdpbmZvLnNpX2Fk ZHIgPQotKyAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KGNvbnRleHQuY29udGV4dC51Y19t Y29udGV4dC5ncF9yZWdzW1BUX05JUF0pOwotICNlbHNlCi0gI2Vycm9yICJUaGlzIGNvZGUgaGFz IG5vdCBiZWVuIHBvcnRlZCB0byB5b3VyIHBsYXRmb3JtIHlldC4iCi0gI2VuZGlmCi1kaWZmIC0t Z2l0IGEvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9oYW5k bGVyL2V4Y2VwdGlvbl9oYW5kbGVyLmggYi90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9z cmMvY2xpZW50L2xpbnV4L2hhbmRsZXIvZXhjZXB0aW9uX2hhbmRsZXIuaAotaW5kZXggZjgwODQz ZWE3Li4yNjBkZDEwZjcgMTAwNjQ0Ci0tLS0gYS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3Bh ZC9zcmMvY2xpZW50L2xpbnV4L2hhbmRsZXIvZXhjZXB0aW9uX2hhbmRsZXIuaAotKysrIGIvdGhp cmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9oYW5kbGVyL2V4Y2Vw dGlvbl9oYW5kbGVyLmgKLUBAIC0xOTIsNyArMTkyLDExIEBAIGNsYXNzIEV4Y2VwdGlvbkhhbmRs ZXIgewotICAgICBzaWdpbmZvX3Qgc2lnaW5mbzsKLSAgICAgcGlkX3QgdGlkOyAgLy8gdGhlIGNy YXNoaW5nIHRocmVhZC4KLSAgICAgdWNvbnRleHRfdCBjb250ZXh0OwotLSNpZiAhZGVmaW5lZChf X0FSTV9FQUJJX18pICYmICFkZWZpbmVkKF9fbWlwc19fKQotKyNpZiBkZWZpbmVkKF9fcG93ZXJw YzY0X18pCi0rICAgIC8vIFBQQzY0J3MgRlAgc3RhdGUgaXMgYSBwYXJ0IG9mIHVjb250ZXh0X3Qg bGlrZSBNSVBTIGJ1dCB0aGUgdmVjdG9yCi0rICAgIC8vIHN0YXRlIGlzIG5vdCwgc28gYSBzdHJ1 Y3QgaXMgbmVlZGVkLgotKyAgICB2c3RhdGVfdCB2ZWN0b3Jfc3RhdGU7Ci0rI2VsaWYgIWRlZmlu ZWQoX19BUk1fRUFCSV9fKSAmJiAhZGVmaW5lZChfX21pcHNfXykKLSAgICAgLy8gI2lmZGVmIHRo aXMgb3V0IGJlY2F1c2UgRlAgc3RhdGUgaXMgbm90IHBhcnQgb2YgdXNlciBBQkkgZm9yIExpbnV4 IEFSTS4KLSAgICAgLy8gSW4gY2FzZSBvZiBNSVBTIExpbnV4IEZQIHN0YXRlIGlzIGFscmVhZHkg cGFydCBvZiB1Y29udGV4dF90IHNvCi0gICAgIC8vICdmbG9hdF9zdGF0ZScgaXMgbm90IHJlcXVp cmVkLgotZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGll bnQvbGludXgvaGFuZGxlci9leGNlcHRpb25faGFuZGxlcl91bml0dGVzdC5jYyBiL3RoaXJkX3Bh cnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvaGFuZGxlci9leGNlcHRpb25f aGFuZGxlcl91bml0dGVzdC5jYwotaW5kZXggMzVkY2JmZDRkLi43OTM0MzcwZmQgMTAwNjQ0Ci0t LS0gYS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2hhbmRs ZXIvZXhjZXB0aW9uX2hhbmRsZXJfdW5pdHRlc3QuY2MKLSsrKyBiL3RoaXJkX3BhcnR5L2JyZWFr cGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvaGFuZGxlci9leGNlcHRpb25faGFuZGxlcl91 bml0dGVzdC5jYwotQEAgLTMwNyw3ICszMDcsNyBAQCBURVNUKEV4Y2VwdGlvbkhhbmRsZXJUZXN0 LCBQYXJhbGxlbENoaWxkQ3Jhc2hlc0RvbnRIYW5nKSB7Ci0gICB9Ci0gCi0gICAvLyBXYWl0IGEg d2hpbGUgdW50aWwgdGhlIGNoaWxkIHNob3VsZCBoYXZlIGNyYXNoZWQuCi0tICB1c2xlZXAoMTAw MDAwMCk7Ci0rICB1c2xlZXAoMjAwMDAwMCk7Ci0gICAvLyBLaWxsIHRoZSBjaGlsZCBpZiBpdCBp cyBzdGlsbCBydW5uaW5nLgotICAga2lsbChjaGlsZCwgU0lHS0lMTCk7Ci0gCi1AQCAtNTU5LDYg KzU1OSw4IEBAIGNvbnN0IHVuc2lnbmVkIGNoYXIga0lsbGVnYWxJbnN0cnVjdGlvbltdID0gewot ICNpZiBkZWZpbmVkKF9fbWlwc19fKQotICAgLy8gbWZjMiB6ZXJvLEltcGwgLSB1c3VhbGx5IGls bGVnYWwgaW4gdXNlcnNwYWNlLgotICAgMHg0OCwgMHgwMCwgMHgwMCwgMHg0OAotKyNlbGlmIGRl ZmluZWQoX19wb3dlcnBjNjRfXykKLSsgIDB4MDEsIDB4MDEsIDB4MDEsIDB4MDEgLy8gQ3Jhc2hl cyBvbiBhIHRlc3RlZCBQT1dFUjkgY3B1Ci0gI2Vsc2UKLSAgIC8vIFRoaXMgY3Jhc2hlcyB3aXRo IFNJR0lMTCBvbiB4ODYveDg2LTY0L2FybS4KLSAgIDB4ZmYsIDB4ZmYsIDB4ZmYsIDB4ZmYKLUBA IC03NTQsMTAgKzc1NiwxMCBAQCBURVNUKEV4Y2VwdGlvbkhhbmRsZXJUZXN0LCBJbnN0cnVjdGlv blBvaW50ZXJNZW1vcnlNYXhCb3VuZCkgewotIAotICAgLy8gVGhlc2UgYXJlIGRlZmluZWQgaGVy ZSBzbyB0aGUgcGFyZW50IGNhbiB1c2UgdGhlbSB0byBjaGVjayB0aGUKLSAgIC8vIGRhdGEgZnJv bSB0aGUgbWluaWR1bXAgYWZ0ZXJ3YXJkcy4KLS0gIC8vIFVzZSA0ayBoZXJlIGJlY2F1c2UgdGhl IE9TIHdpbGwgaGFuZCBvdXQgYSBzaW5nbGUgcGFnZSBldmVuCi0rICAvLyBVc2UgdGhlIHBhZ2Ug c2l6ZSBoZXJlIGJlY2F1c2UgdGhlIE9TIHdpbGwgaGFuZCBvdXQgYSBzaW5nbGUgcGFnZSBldmVu Ci0gICAvLyBpZiBhIHNtYWxsZXIgc2l6ZSBpcyByZXF1ZXN0ZWQsIGFuZCB0aGlzIHRlc3Qgd2Fu dHMgdG8KLSAgIC8vIHRlc3QgdGhlIHVwcGVyIGJvdW5kIG9mIHRoZSBtZW1vcnkgcmFuZ2UuCi0t ICBjb25zdCB1aW50MzJfdCBrTWVtb3J5U2l6ZSA9IDQwOTY7ICAvLyBieXRlcwotKyAgY29uc3Qg dWludDMyX3Qga01lbW9yeVNpemUgPSBnZXRwYWdlc2l6ZSgpOyAgLy8gYnl0ZXMKLSAgIGNvbnN0 IGludCBrT2Zmc2V0ID0ga01lbW9yeVNpemUgLSBzaXplb2Yoa0lsbGVnYWxJbnN0cnVjdGlvbik7 Ci0gCi0gICBjb25zdCBwaWRfdCBjaGlsZCA9IGZvcmsoKTsKLWRpZmYgLS1naXQgYS90aGlyZF9w YXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pY3JvZHVtcF93cml0ZXIv bWljcm9kdW1wX3dyaXRlci5jYyBiL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9j bGllbnQvbGludXgvbWljcm9kdW1wX3dyaXRlci9taWNyb2R1bXBfd3JpdGVyLmNjCi1pbmRleCBm YTNjMTcxM2EuLjZjZTcwOWUyZiAxMDA2NDQKLS0tLSBhL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2Jy ZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWljcm9kdW1wX3dyaXRlci9taWNyb2R1bXBfd3JpdGVy LmNjCi0rKysgYi90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4 L21pY3JvZHVtcF93cml0ZXIvbWljcm9kdW1wX3dyaXRlci5jYwotQEAgLTEzOCw3ICsxMzgsOSBA QCBjbGFzcyBNaWNyb2R1bXBXcml0ZXIgewotICAgICAgICAgICAgICAgICAgIGNvbnN0IE1pY3Jv ZHVtcEV4dHJhSW5mbyYgbWljcm9kdW1wX2V4dHJhX2luZm8sCi0gICAgICAgICAgICAgICAgICAg TGludXhEdW1wZXIqIGR1bXBlcikKLSAgICAgICA6IHVjb250ZXh0Xyhjb250ZXh0ID8gJmNvbnRl eHQtPmNvbnRleHQgOiBOVUxMKSwKLS0jaWYgIWRlZmluZWQoX19BUk1fRUFCSV9fKSAmJiAhZGVm aW5lZChfX21pcHNfXykKLSsjaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotKyAgICAgICAgdmVj dG9yX3N0YXRlXyhjb250ZXh0ID8gJmNvbnRleHQtPnZlY3Rvcl9zdGF0ZSA6IE5VTEwpLAotKyNl bGlmICFkZWZpbmVkKF9fQVJNX0VBQklfXykgJiYgIWRlZmluZWQoX19taXBzX18pCi0gICAgICAg ICBmbG9hdF9zdGF0ZV8oY29udGV4dCA/ICZjb250ZXh0LT5mbG9hdF9zdGF0ZSA6IE5VTEwpLAot ICNlbmRpZgotICAgICAgICAgZHVtcGVyXyhkdW1wZXIpLAotQEAgLTMzNyw2ICszMzksOCBAQCBj bGFzcyBNaWNyb2R1bXBXcml0ZXIgewotICMgZWxzZQotICMgIGVycm9yICJUaGlzIG1pcHMgQUJJ IGlzIGN1cnJlbnRseSBub3Qgc3VwcG9ydGVkIChuMzIpIgotICNlbmRpZgotKyNlbGlmIGRlZmlu ZWQoX19wb3dlcnBjNjRfXykKLSsgICAgY29uc3QgY2hhciBrQXJjaFtdID0gInBwYzY0IjsKLSAj ZWxzZQotICNlcnJvciAiVGhpcyBjb2RlIGhhcyBub3QgYmVlbiBwb3J0ZWQgdG8geW91ciBwbGF0 Zm9ybSB5ZXQiCi0gI2VuZGlmCi1AQCAtNDA5LDcgKzQxMyw5IEBAIGNsYXNzIE1pY3JvZHVtcFdy aXRlciB7Ci0gICB2b2lkIER1bXBDUFVTdGF0ZSgpIHsKLSAgICAgUmF3Q29udGV4dENQVSBjcHU7 Ci0gICAgIG15X21lbXNldCgmY3B1LCAwLCBzaXplb2YoUmF3Q29udGV4dENQVSkpOwotLSNpZiAh ZGVmaW5lZChfX0FSTV9FQUJJX18pICYmICFkZWZpbmVkKF9fbWlwc19fKQotKyNpZiBkZWZpbmVk KF9fcG93ZXJwYzY0X18pCi0rICAgIFVDb250ZXh0UmVhZGVyOjpGaWxsQ1BVQ29udGV4dCgmY3B1 LCB1Y29udGV4dF8sIHZlY3Rvcl9zdGF0ZV8pOwotKyNlbGlmICFkZWZpbmVkKF9fQVJNX0VBQklf XykgJiYgIWRlZmluZWQoX19taXBzX18pCi0gICAgIFVDb250ZXh0UmVhZGVyOjpGaWxsQ1BVQ29u dGV4dCgmY3B1LCB1Y29udGV4dF8sIGZsb2F0X3N0YXRlXyk7Ci0gI2Vsc2UKLSAgICAgVUNvbnRl eHRSZWFkZXI6OkZpbGxDUFVDb250ZXh0KCZjcHUsIHVjb250ZXh0Xyk7Ci1AQCAtNjA1LDcgKzYx MSw5IEBAIGNsYXNzIE1pY3JvZHVtcFdyaXRlciB7Ci0gICB2b2lkKiBBbGxvYyh1bnNpZ25lZCBi eXRlcykgeyByZXR1cm4gZHVtcGVyXy0+YWxsb2NhdG9yKCktPkFsbG9jKGJ5dGVzKTsgfQotIAot ICAgY29uc3QgdWNvbnRleHRfdCogY29uc3QgdWNvbnRleHRfOwotLSNpZiAhZGVmaW5lZChfX0FS TV9FQUJJX18pICYmICFkZWZpbmVkKF9fbWlwc19fKQotKyNpZiBkZWZpbmVkKF9fcG93ZXJwYzY0 X18pCi0rICBjb25zdCBnb29nbGVfYnJlYWtwYWQ6OnZzdGF0ZV90KiBjb25zdCB2ZWN0b3Jfc3Rh dGVfOwotKyNlbGlmICFkZWZpbmVkKF9fQVJNX0VBQklfXykgJiYgIWRlZmluZWQoX19taXBzX18p Ci0gICBjb25zdCBnb29nbGVfYnJlYWtwYWQ6OmZwc3RhdGVfdCogY29uc3QgZmxvYXRfc3RhdGVf OwotICNlbmRpZgotICAgTGludXhEdW1wZXIqIGR1bXBlcl87Ci1kaWZmIC0tZ2l0IGEvdGhpcmRf cGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taWNyb2R1bXBfd3JpdGVy L21pY3JvZHVtcF93cml0ZXJfdW5pdHRlc3QuY2MgYi90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVh a3BhZC9zcmMvY2xpZW50L2xpbnV4L21pY3JvZHVtcF93cml0ZXIvbWljcm9kdW1wX3dyaXRlcl91 bml0dGVzdC5jYwotaW5kZXggNjMzOWFjMGNkLi4yOTFhZjEwNmIgMTAwNjQ0Ci0tLS0gYS90aGly ZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pY3JvZHVtcF93cml0 ZXIvbWljcm9kdW1wX3dyaXRlcl91bml0dGVzdC5jYwotKysrIGIvdGhpcmRfcGFydHkvYnJlYWtw YWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taWNyb2R1bXBfd3JpdGVyL21pY3JvZHVtcF93 cml0ZXJfdW5pdHRlc3QuY2MKLUBAIC0yNzksMTAgKzI3OSwxOSBAQCBURVNUKE1pY3JvZHVtcFdy aXRlclRlc3QsIEJhc2ljV2l0aE1hcHBpbmdzKSB7Ci0gICBDcmFzaEFuZEdldE1pY3JvZHVtcCht YXBwaW5ncywgTWljcm9kdW1wRXh0cmFJbmZvKCksICZidWYpOwotICAgQVNTRVJUX1RSVUUoQ29u dGFpbnNNaWNyb2R1bXAoYnVmKSk7Ci0gCi0rICBpbnQgcGFnZV9zaXplID0gZ2V0cGFnZXNpemUo KTsKLSAjaWZkZWYgX19MUDY0X18KLS0gIEFTU0VSVF9ORShzdGQ6OnN0cmluZzo6bnBvcywKLS0g ICAgICAgICAgICBidWYuZmluZCgiTSAwMDAwMDAwMDAwMDAxMDAwIDAwMDAwMDAwMDAwMDAwMkEg MDAwMDAwMDAwMDAwMTAwMCAiCi0tICAgICAgICAgICAgICAgICAgICAgIjMzMjIxMTAwNTU0NDc3 NjY4ODk5QUFCQkNDRERFRUZGMCBsaWJmb28uc28iKSk7Ci0rICAvLyBUaGlzIHRlc3QgaXMgb25s eSBhdmFpbGFibGUgZm9yIHRoZSBmb2xsb3dpbmcgcGFnZSBzaXplcwotKyAgQVNTRVJUX1RSVUUo KHBhZ2Vfc2l6ZSA9PSA0MDk2KSB8fCAocGFnZV9zaXplID09IDY1NTM2KSk7Ci0rICBpZiAocGFn ZV9zaXplID09IDQwOTYpIHsgCi0rICAgIEFTU0VSVF9ORShzdGQ6OnN0cmluZzo6bnBvcywKLSsg ICAgICAgICAgICAgIGJ1Zi5maW5kKCJNIDAwMDAwMDAwMDAwMDEwMDAgMDAwMDAwMDAwMDAwMDAy QSAwMDAwMDAwMDAwMDAxMDAwICIKLSsgICAgICAgICAgICAgICAgICAgICAgICIzMzIyMTEwMDU1 NDQ3NzY2ODg5OUFBQkJDQ0RERUVGRjAgbGliZm9vLnNvIikpOwotKyAgfSBlbHNlIHsKLSsgICAg QVNTRVJUX05FKHN0ZDo6c3RyaW5nOjpucG9zLAotKyAgICAgICAgICAgICAgYnVmLmZpbmQoIk0g MDAwMDAwMDAwMDAxMDAwMCAwMDAwMDAwMDAwMDAwMDJBIDAwMDAwMDAwMDAwMTAwMDAgIgotKyAg ICAgICAgICAgICAgICAgICAgICAgIjMzMjIxMTAwNTU0NDc3NjY4ODk5QUFCQkNDRERFRUZGMCBs aWJmb28uc28iKSk7Ci0rICB9Ci0gI2Vsc2UKLSAgIEFTU0VSVF9ORShzdGQ6OnN0cmluZzo6bnBv cywKLSAgICAgICAgICAgICBidWYuZmluZCgiTSAwMDAwMTAwMCAwMDAwMDAyQSAwMDAwMTAwMCAi Ci1kaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9s aW51eC9taW5pZHVtcF93cml0ZXIvbGludXhfY29yZV9kdW1wZXIuY2MgYi90aGlyZF9wYXJ0eS9i cmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9saW51eF9j b3JlX2R1bXBlci5jYwotaW5kZXggNDE1MDY4OTgzLi5iOTNlNGFmY2YgMTAwNjQ0Ci0tLS0gYS90 aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dy aXRlci9saW51eF9jb3JlX2R1bXBlci5jYwotKysrIGIvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJl YWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbGludXhfY29yZV9kdW1wZXIu Y2MKLUBAIC0xMTIsNiArMTEyLDkgQEAgYm9vbCBMaW51eENvcmVEdW1wZXI6OkdldFRocmVhZElu Zm9CeUluZGV4KHNpemVfdCBpbmRleCwgVGhyZWFkSW5mbyogaW5mbykgewotICNlbGlmIGRlZmlu ZWQoX19taXBzX18pCi0gICBzdGFja19wb2ludGVyID0KLSAgICAgICByZWludGVycHJldF9jYXN0 PHVpbnQ4X3QqPihpbmZvLT5tY29udGV4dC5ncmVnc1tNRF9DT05URVhUX01JUFNfUkVHX1NQXSk7 Ci0rI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotKyAgc3RhY2tfcG9pbnRlciA9Ci0rICAg ICAgcmVpbnRlcnByZXRfY2FzdDx1aW50OF90Kj4oaW5mby0+bWNvbnRleHQuZ3BfcmVnc1tNRF9D T05URVhUX1BQQzY0X1JFR19TUF0pOwotICNlbHNlCi0gI2Vycm9yICJUaGlzIGNvZGUgaGFzbid0 IGJlZW4gcG9ydGVkIHRvIHlvdXIgcGxhdGZvcm0geWV0LiIKLSAjZW5kaWYKLUBAIC0xOTcsNyAr MjAwLDEwIEBAIGJvb2wgTGludXhDb3JlRHVtcGVyOjpFbnVtZXJhdGVUaHJlYWRzKCkgewotICAg ICAgICAgbWVtc2V0KCZpbmZvLCAwLCBzaXplb2YoVGhyZWFkSW5mbykpOwotICAgICAgICAgaW5m by50Z2lkID0gc3RhdHVzLT5wcl9wZ3JwOwotICAgICAgICAgaW5mby5wcGlkID0gc3RhdHVzLT5w cl9wcGlkOwotLSNpZiBkZWZpbmVkKF9fbWlwc19fKQotKyNpZiBkZWZpbmVkKF9fcG93ZXJwYzY0 X18pCi0rICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IDMxOyBpKyspCi0rICAgICAgICAgICAg aW5mby5tY29udGV4dC5ncF9yZWdzW2ldID0gc3RhdHVzLT5wcl9yZWdbaV07Ci0rI2VsaWYgZGVm aW5lZChfX21pcHNfXykKLSAjaWYgZGVmaW5lZChfX0FORFJPSURfXykKLSAgICAgICAgIGZvciAo aW50IGkgPSBFRl9SMDsgaSA8PSBFRl9SMzE7IGkrKykKLSAgICAgICAgICAgaW5mby5tY29udGV4 dC5ncmVnc1tpIC0gRUZfUjBdID0gc3RhdHVzLT5wcl9yZWdbaV07Ci1kaWZmIC0tZ2l0IGEvdGhp cmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0 ZXIvbGludXhfZHVtcGVyLmNjIGIvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2Ns aWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbGludXhfZHVtcGVyLmNjCi1pbmRleCA3ZmQ2NTMy YWQuLjE5OWNiZmZmZCAxMDA2NDQKLS0tLSBhL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFk L3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL2xpbnV4X2R1bXBlci5jYwotKysrIGIv dGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93 cml0ZXIvbGludXhfZHVtcGVyLmNjCi1AQCAtNzY1LDcgKzc2NSw5IEBAIGJvb2wgTGludXhEdW1w ZXI6OkdldFN0YWNrSW5mbyhjb25zdCB2b2lkKiogc3RhY2ssIHNpemVfdCogc3RhY2tfbGVuLAot ICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8dWludDhfdCo+KGludF9zdGFja19wb2ludGVyICYgfihw YWdlX3NpemUgLSAxKSk7Ci0gCi0gICAvLyBUaGUgbnVtYmVyIG9mIGJ5dGVzIG9mIHN0YWNrIHdo aWNoIHdlIHRyeSB0byBjYXB0dXJlLgotLSAgc3RhdGljIGNvbnN0IHB0cmRpZmZfdCBrU3RhY2tU b0NhcHR1cmUgPSAzMiAqIDEwMjQ7Ci0rICAvLyBUaGlzIG5vdyBkZXBlbmRzIG9uIHBhZ2Vfc2l6 ZSB0byBhdm9pZCBtaXNzaW5nIGRhdGEKLSsgIC8vIG9uIHN5c3RlbXMgd2l0aCBsYXJnZXIgcGFn ZSBzaXplcy4KLSsgIHN0YXRpYyBjb25zdCBwdHJkaWZmX3Qga1N0YWNrVG9DYXB0dXJlID0gOCAq IHBhZ2Vfc2l6ZTsKLSAKLSAgIGNvbnN0IE1hcHBpbmdJbmZvKiBtYXBwaW5nID0gRmluZE1hcHBp bmcoc3RhY2tfcG9pbnRlcik7Ci0gICBpZiAoIW1hcHBpbmcpCi1kaWZmIC0tZ2l0IGEvdGhpcmRf cGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIv bGludXhfZHVtcGVyLmggYi90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50 L2xpbnV4L21pbmlkdW1wX3dyaXRlci9saW51eF9kdW1wZXIuaAotaW5kZXggN2JlZTE2MGYxLi4w N2JiMmI4MWEgMTAwNjQ0Ci0tLS0gYS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMv Y2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9saW51eF9kdW1wZXIuaAotKysrIGIvdGhpcmRf cGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIv bGludXhfZHVtcGVyLmgKLUBAIC02Myw3ICs2Myw4IEBAIG5hbWVzcGFjZSBnb29nbGVfYnJlYWtw YWQgewotICAoZGVmaW5lZChfX21pcHNfXykgJiYgX01JUFNfU0lNID09IF9BQklPMzIpCi0gdHlw ZWRlZiBFbGYzMl9hdXh2X3QgZWxmX2F1eF9lbnRyeTsKLSAjZWxpZiBkZWZpbmVkKF9feDg2XzY0 KSB8fCBkZWZpbmVkKF9fYWFyY2g2NF9fKSB8fCBcCi0tICAgICAoZGVmaW5lZChfX21pcHNfXykg JiYgX01JUFNfU0lNICE9IF9BQklPMzIpCi0rICAgICAoZGVmaW5lZChfX21pcHNfXykgJiYgX01J UFNfU0lNICE9IF9BQklPMzIpIHx8IFwKLSsgICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSB0 eXBlZGVmIEVsZjY0X2F1eHZfdCBlbGZfYXV4X2VudHJ5OwotICNlbmRpZgotIAotZGlmZiAtLWdp dCBhL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1 bXBfd3JpdGVyL2xpbnV4X2R1bXBlcl91bml0dGVzdF9oZWxwZXIuY2MgYi90aGlyZF9wYXJ0eS9i cmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9saW51eF9k dW1wZXJfdW5pdHRlc3RfaGVscGVyLmNjCi1pbmRleCAzMzFmNGJiMzQuLjNmNzIyOTQ3ZiAxMDA2 NDQKLS0tLSBhL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgv bWluaWR1bXBfd3JpdGVyL2xpbnV4X2R1bXBlcl91bml0dGVzdF9oZWxwZXIuY2MKLSsrKyBiL3Ro aXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3Jp dGVyL2xpbnV4X2R1bXBlcl91bml0dGVzdF9oZWxwZXIuY2MKLUBAIC01MSw2ICs1MSw4IEBACi0g I2RlZmluZSBUSURfUFRSX1JFR0lTVEVSICJyY3giCi0gI2VsaWYgZGVmaW5lZChfX21pcHNfXykK LSAjZGVmaW5lIFRJRF9QVFJfUkVHSVNURVIgIiQxIgotKyNlbGlmIGRlZmluZWQoX19wb3dlcnBj NjRfXykKLSsjZGVmaW5lIFRJRF9QVFJfUkVHSVNURVIgInI4IgotICNlbHNlCi0gI2Vycm9yIFRo aXMgdGVzdCBoYXMgbm90IGJlZW4gcG9ydGVkIHRvIHRoaXMgcGxhdGZvcm0uCi0gI2VuZGlmCi1k aWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51 eC9taW5pZHVtcF93cml0ZXIvbGludXhfcHRyYWNlX2R1bXBlci5jYyBiL3RoaXJkX3BhcnR5L2Jy ZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL2xpbnV4X3B0 cmFjZV9kdW1wZXIuY2MKLWluZGV4IGUzZGRiODFhNi4uZmEyODU3NWVmIDEwMDY0NAotLS0tIGEv dGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93 cml0ZXIvbGludXhfcHRyYWNlX2R1bXBlci5jYwotKysrIGIvdGhpcmRfcGFydHkvYnJlYWtwYWQv YnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbGludXhfcHRyYWNlX2R1 bXBlci5jYwotQEAgLTE0OSwxOSArMTQ5LDI3IEBAIGJvb2wgTGludXhQdHJhY2VEdW1wZXI6OkNv cHlGcm9tUHJvY2Vzcyh2b2lkKiBkZXN0LCBwaWRfdCBjaGlsZCwKLSAgIHJldHVybiB0cnVlOwot IH0KLSAKLS1ib29sIExpbnV4UHRyYWNlRHVtcGVyOjpSZWFkUmVnaXN0ZXJTZXQoVGhyZWFkSW5m byogaW5mbywgcGlkX3QgdGlkKQotLXsKLStib29sIExpbnV4UHRyYWNlRHVtcGVyOjpSZWFkUmVn aXN0ZXJTZXQoVGhyZWFkSW5mbyogaW5mbywgcGlkX3QgdGlkKSB7Ci0gI2lmZGVmIFBUUkFDRV9H RVRSRUdTRVQKLSAgIHN0cnVjdCBpb3ZlYyBpbzsKLSAgIGluZm8tPkdldEdlbmVyYWxQdXJwb3Nl UmVnaXN0ZXJzKCZpby5pb3ZfYmFzZSwgJmlvLmlvdl9sZW4pOwotLSAgaWYgKHN5c19wdHJhY2Uo UFRSQUNFX0dFVFJFR1NFVCwgdGlkLCAodm9pZCopTlRfUFJTVEFUVVMsICh2b2lkKikmaW8pID09 IC0xKSB7Ci0rICBpZiAocHRyYWNlKFBUUkFDRV9HRVRSRUdTRVQsIHRpZCwgKHZvaWQqKU5UX1BS U1RBVFVTLCAodm9pZCopJmlvKSA9PSAtMSkgewotICAgICByZXR1cm4gZmFsc2U7Ci0gICB9Ci0g Ci0gICBpbmZvLT5HZXRGbG9hdGluZ1BvaW50UmVnaXN0ZXJzKCZpby5pb3ZfYmFzZSwgJmlvLmlv dl9sZW4pOwotLSAgaWYgKHN5c19wdHJhY2UoUFRSQUNFX0dFVFJFR1NFVCwgdGlkLCAodm9pZCop TlRfRlBSRUdTRVQsICh2b2lkKikmaW8pID09IC0xKSB7Ci0rICBpZiAocHRyYWNlKFBUUkFDRV9H RVRSRUdTRVQsIHRpZCwgKHZvaWQqKU5UX0ZQUkVHU0VULCAodm9pZCopJmlvKSA9PSAtMSkgewot ICAgICByZXR1cm4gZmFsc2U7Ci0gICB9Ci0rCi0rI2lmIGRlZmluZWQoX19wb3dlcnBjNjRfXykK LSsgIC8vIEdyYWIgdGhlIHZlY3RvciByZWdpc3RlcnMgb24gUFBDNjQgdG9vCi0rICBpbmZvLT5H ZXRWZWN0b3JSZWdpc3RlcnMoJmlvLmlvdl9iYXNlLCAmaW8uaW92X2xlbik7Ci0rICBpZiAocHRy YWNlKFBUUkFDRV9HRVRSRUdTRVQsIHRpZCwgKHZvaWQqKU5UX1BQQ19WTVgsICh2b2lkKikmaW8p ID09IC0xKSB7Ci0rICAgIHJldHVybiBmYWxzZTsKLSsgIH0KLSsjZW5kaWYgLy8gZGVmaW5lZChf X3Bvd2VycGM2NF9fKQotKwotICAgcmV0dXJuIHRydWU7Ci0gI2Vsc2UKLSAgIHJldHVybiBmYWxz ZTsKLUBAIC0yOTgsNiArMzA2LDkgQEAgYm9vbCBMaW51eFB0cmFjZUR1bXBlcjo6R2V0VGhyZWFk SW5mb0J5SW5kZXgoc2l6ZV90IGluZGV4LCBUaHJlYWRJbmZvKiBpbmZvKSB7Ci0gI2VsaWYgZGVm aW5lZChfX21pcHNfXykKLSAgIHN0YWNrX3BvaW50ZXIgPQotICAgICAgIHJlaW50ZXJwcmV0X2Nh c3Q8dWludDhfdCo+KGluZm8tPm1jb250ZXh0LmdyZWdzW01EX0NPTlRFWFRfTUlQU19SRUdfU1Bd KTsKLSsjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rICBzdGFja19wb2ludGVyID0KLSsg ICAgICByZWludGVycHJldF9jYXN0PHVpbnQ4X3QqPihpbmZvLT5tY29udGV4dC5ncF9yZWdzW01E X0NPTlRFWFRfUFBDNjRfUkVHX1NQXSk7Ci0gI2Vsc2UKLSAjZXJyb3IgIlRoaXMgY29kZSBoYXNu J3QgYmVlbiBwb3J0ZWQgdG8geW91ciBwbGF0Zm9ybSB5ZXQuIgotICNlbmRpZgotZGlmZiAtLWdp dCBhL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1 bXBfd3JpdGVyL2xpbnV4X3B0cmFjZV9kdW1wZXJfdW5pdHRlc3QuY2MgYi90aGlyZF9wYXJ0eS9i cmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9saW51eF9w dHJhY2VfZHVtcGVyX3VuaXR0ZXN0LmNjCi1pbmRleCBkYTcxZTE1ZGMuLjEyYmZiMzE3YSAxMDA2 NDQKLS0tLSBhL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgv bWluaWR1bXBfd3JpdGVyL2xpbnV4X3B0cmFjZV9kdW1wZXJfdW5pdHRlc3QuY2MKLSsrKyBiL3Ro aXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3Jp dGVyL2xpbnV4X3B0cmFjZV9kdW1wZXJfdW5pdHRlc3QuY2MKLUBAIC00NjIsNiArNDYyLDkgQEAg VEVTVChMaW51eFB0cmFjZUR1bXBlclRlc3QsIFZlcmlmeVN0YWNrUmVhZFdpdGhNdWx0aXBsZVRo cmVhZHMpIHsKLSAjZWxpZiBkZWZpbmVkKF9fbWlwc19fKQotICAgICBwaWRfdCogcHJvY2Vzc190 aWRfbG9jYXRpb24gPQotICAgICAgICAgcmVpbnRlcnByZXRfY2FzdDxwaWRfdCo+KG9uZV90aHJl YWQubWNvbnRleHQuZ3JlZ3NbMV0pOwotKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSsg ICAgcGlkX3QqIHByb2Nlc3NfdGlkX2xvY2F0aW9uID0KLSsgICAgICAgIHJlaW50ZXJwcmV0X2Nh c3Q8cGlkX3QqPihvbmVfdGhyZWFkLm1jb250ZXh0LmdwX3JlZ3NbOF0pOwotICNlbHNlCi0gI2Vy cm9yIFRoaXMgdGVzdCBoYXMgbm90IGJlZW4gcG9ydGVkIHRvIHRoaXMgcGxhdGZvcm0uCi0gI2Vu ZGlmCi1AQCAtNTU5LDYgKzU2Miw4IEBAIFRFU1RfRihMaW51eFB0cmFjZUR1bXBlclRlc3QsIFNh bml0aXplU3RhY2tDb3B5KSB7Ci0gICB1aW50cHRyX3QgaGVhcF9hZGRyID0gdGhyZWFkX2luZm8u cmVncy5yY3g7Ci0gI2VsaWYgZGVmaW5lZChfX21pcHNfXykKLSAgIHVpbnRwdHJfdCBoZWFwX2Fk ZHIgPSB0aHJlYWRfaW5mby5tY29udGV4dC5ncmVnc1sxXTsKLSsjZWxpZiBkZWZpbmVkKF9fcG93 ZXJwYzY0X18pCi0rICB1aW50cHRyX3QgaGVhcF9hZGRyID0gdGhyZWFkX2luZm8ubWNvbnRleHQu Z3BfcmVnc1s4XTsKLSAjZWxzZQotICNlcnJvciBUaGlzIHRlc3QgaGFzIG5vdCBiZWVuIHBvcnRl ZCB0byB0aGlzIHBsYXRmb3JtLgotICNlbmRpZgotZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2Jy ZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL21pbmlkdW1w X3dyaXRlci5jYyBiL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGlu dXgvbWluaWR1bXBfd3JpdGVyL21pbmlkdW1wX3dyaXRlci5jYwotaW5kZXggMzI2MzRlZjAwLi4y YTU2OTQ4ZGUgMTAwNjQ0Ci0tLS0gYS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMv Y2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9taW5pZHVtcF93cml0ZXIuY2MKLSsrKyBiL3Ro aXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3Jp dGVyL21pbmlkdW1wX3dyaXRlci5jYwotQEAgLTEzNiw3ICsxMzYsOSBAQCBjbGFzcyBNaW5pZHVt cFdyaXRlciB7Ci0gICAgICAgOiBmZF8obWluaWR1bXBfZmQpLAotICAgICAgICAgcGF0aF8obWlu aWR1bXBfcGF0aCksCi0gICAgICAgICB1Y29udGV4dF8oY29udGV4dCA/ICZjb250ZXh0LT5jb250 ZXh0IDogTlVMTCksCi0tI2lmICFkZWZpbmVkKF9fQVJNX0VBQklfXykgJiYgIWRlZmluZWQoX19t aXBzX18pCi0rI2lmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSsgICAgICAgIHZlY3Rvcl9zdGF0 ZV8oY29udGV4dCA/ICZjb250ZXh0LT52ZWN0b3Jfc3RhdGUgOiBOVUxMKSwKLSsjZWxpZiAhZGVm aW5lZChfX0FSTV9FQUJJX18pICYmICFkZWZpbmVkKF9fbWlwc19fKQotICAgICAgICAgZmxvYXRf c3RhdGVfKGNvbnRleHQgPyAmY29udGV4dC0+ZmxvYXRfc3RhdGUgOiBOVUxMKSwKLSAjZW5kaWYK LSAgICAgICAgIGR1bXBlcl8oZHVtcGVyKSwKLUBAIC00NjgsNyArNDcwLDkgQEAgY2xhc3MgTWlu aWR1bXBXcml0ZXIgewotICAgICAgICAgaWYgKCFjcHUuQWxsb2NhdGUoKSkKLSAgICAgICAgICAg cmV0dXJuIGZhbHNlOwotICAgICAgICAgbXlfbWVtc2V0KGNwdS5nZXQoKSwgMCwgc2l6ZW9mKFJh d0NvbnRleHRDUFUpKTsKLS0jaWYgIWRlZmluZWQoX19BUk1fRUFCSV9fKSAmJiAhZGVmaW5lZChf X21pcHNfXykKLSsjaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotKyAgICAgICAgVUNvbnRleHRS ZWFkZXI6OkZpbGxDUFVDb250ZXh0KGNwdS5nZXQoKSwgdWNvbnRleHRfLCB2ZWN0b3Jfc3RhdGVf KTsKLSsjZWxpZiAhZGVmaW5lZChfX0FSTV9FQUJJX18pICYmICFkZWZpbmVkKF9fbWlwc19fKQot ICAgICAgICAgVUNvbnRleHRSZWFkZXI6OkZpbGxDUFVDb250ZXh0KGNwdS5nZXQoKSwgdWNvbnRl eHRfLCBmbG9hdF9zdGF0ZV8pOwotICNlbHNlCi0gICAgICAgICBVQ29udGV4dFJlYWRlcjo6Rmls bENQVUNvbnRleHQoY3B1LmdldCgpLCB1Y29udGV4dF8pOwotQEAgLTg5Nyw3ICs5MDEsNyBAQCBj bGFzcyBNaW5pZHVtcFdyaXRlciB7Ci0gICAgIGRpcmVudC0+bG9jYXRpb24ucnZhID0gMDsKLSAg IH0KLSAKLS0jaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBk ZWZpbmVkKF9fbWlwc19fKQotKyNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2 XzY0X18pIHx8IGRlZmluZWQoX19taXBzX18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAg IGJvb2wgV3JpdGVDUFVJbmZvcm1hdGlvbihNRFJhd1N5c3RlbUluZm8qIHN5c19pbmZvKSB7Ci0g ICAgIGNoYXIgdmVuZG9yX2lkW3NpemVvZihzeXNfaW5mby0+Y3B1Lng4Nl9jcHVfaW5mby52ZW5k b3JfaWQpICsgMV0gPSB7MH07Ci0gICAgIHN0YXRpYyBjb25zdCBjaGFyIHZlbmRvcl9pZF9uYW1l W10gPSAidmVuZG9yX2lkIjsKLUBAIC05MTcsNyArOTIxLDkgQEAgY2xhc3MgTWluaWR1bXBXcml0 ZXIgewotIAotICAgICAvLyBwcm9jZXNzb3JfYXJjaGl0ZWN0dXJlIHNob3VsZCBhbHdheXMgYmUg c2V0LCBkbyB0aGlzIGZpcnN0Ci0gICAgIHN5c19pbmZvLT5wcm9jZXNzb3JfYXJjaGl0ZWN0dXJl ID0KLS0jaWYgZGVmaW5lZChfX21pcHNfXykKLSsjaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQot KyAgICAgICAgTURfQ1BVX0FSQ0hJVEVDVFVSRV9QUEM2NDsKLSsjZWxpZiBkZWZpbmVkKF9fbWlw c19fKQotICMgaWYgX01JUFNfU0lNID09IF9BQklPMzIKLSAgICAgICAgIE1EX0NQVV9BUkNISVRF Q1RVUkVfTUlQUzsKLSAjIGVsaWYgX01JUFNfU0lNID09IF9BQkk2NAotQEAgLTEzMzMsNyArMTMz OSw5IEBAIGNsYXNzIE1pbmlkdW1wV3JpdGVyIHsKLSAgIGNvbnN0IGNoYXIqIHBhdGhfOyAgLy8g UGF0aCB0byB0aGUgZmlsZSB3aGVyZSB0aGUgbWluaWR1bSBzaG91bGQgYmUgd3JpdHRlbi4KLSAK LSAgIGNvbnN0IHVjb250ZXh0X3QqIGNvbnN0IHVjb250ZXh0XzsgIC8vIGFsc28gZnJvbSB0aGUg c2lnbmFsIGhhbmRsZXIKLS0jaWYgIWRlZmluZWQoX19BUk1fRUFCSV9fKSAmJiAhZGVmaW5lZChf X21pcHNfXykKLSsjaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotKyAgY29uc3QgZ29vZ2xlX2Jy ZWFrcGFkOjp2c3RhdGVfdCogY29uc3QgdmVjdG9yX3N0YXRlXzsKLSsjZWxpZiAhZGVmaW5lZChf X0FSTV9FQUJJX18pICYmICFkZWZpbmVkKF9fbWlwc19fKQotICAgY29uc3QgZ29vZ2xlX2JyZWFr cGFkOjpmcHN0YXRlX3QqIGNvbnN0IGZsb2F0X3N0YXRlXzsgIC8vIGRpdHRvCi0gI2VuZGlmCi0g ICBMaW51eER1bXBlciogZHVtcGVyXzsKLWRpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9icmVha3Bh ZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9taW5pZHVtcF93cml0 ZXIuaCBiL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWlu aWR1bXBfd3JpdGVyL21pbmlkdW1wX3dyaXRlci5oCi1pbmRleCBlM2IwYjE2ZGEuLmNjZDhhYTBh NCAxMDA2NDQKLS0tLSBhL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQv bGludXgvbWluaWR1bXBfd3JpdGVyL21pbmlkdW1wX3dyaXRlci5oCi0rKysgYi90aGlyZF9wYXJ0 eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9taW5p ZHVtcF93cml0ZXIuaAotQEAgLTQ4LDYgKzQ4LDggQEAgY2xhc3MgRXhjZXB0aW9uSGFuZGxlcjsK LSAKLSAjaWYgZGVmaW5lZChfX2FhcmNoNjRfXykKLSB0eXBlZGVmIHN0cnVjdCBmcHNpbWRfY29u dGV4dCBmcHN0YXRlX3Q7Ci0rI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotK3R5cGVkZWYg dnJyZWdzZXRfdCB2c3RhdGVfdDsKLSAjZWxpZiAhZGVmaW5lZChfX0FSTV9FQUJJX18pICYmICFk ZWZpbmVkKF9fbWlwc19fKQotIHR5cGVkZWYgc3RkOjpyZW1vdmVfcG9pbnRlcjxmcHJlZ3NldF90 Pjo6dHlwZSBmcHN0YXRlX3Q7Ci0gI2VuZGlmCi1kaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvYnJl YWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbWluaWR1bXBf d3JpdGVyX3VuaXR0ZXN0LmNjIGIvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2Ns aWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbWluaWR1bXBfd3JpdGVyX3VuaXR0ZXN0LmNjCi1p bmRleCBkMTkyZTVjYmIuLmZjMWJmYThkNyAxMDA2NDQKLS0tLSBhL3RoaXJkX3BhcnR5L2JyZWFr cGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL21pbmlkdW1wX3dy aXRlcl91bml0dGVzdC5jYwotKysrIGIvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3Jj L2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbWluaWR1bXBfd3JpdGVyX3VuaXR0ZXN0LmNj Ci1AQCAtNzE1LDYgKzcxNSw5IEBAIFRFU1QoTWluaWR1bXBXcml0ZXJUZXN0LCBJbnZhbGlkU3Rh Y2tQb2ludGVyKSB7Ci0gI2VsaWYgZGVmaW5lZChfX21pcHNfXykKLSAgIGNvbnRleHQuY29udGV4 dC51Y19tY29udGV4dC5ncmVnc1tNRF9DT05URVhUX01JUFNfUkVHX1NQXSA9Ci0gICAgICAgaW52 YWxpZF9zdGFja19wb2ludGVyOwotKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSsgIGNv bnRleHQuY29udGV4dC51Y19tY29udGV4dC5ncF9yZWdzW01EX0NPTlRFWFRfUFBDNjRfUkVHX1NQ XSA9Ci0rICAgICAgaW52YWxpZF9zdGFja19wb2ludGVyOwotICNlbHNlCi0gIyBlcnJvciAiVGhp cyBjb2RlIGhhcyBub3QgYmVlbiBwb3J0ZWQgdG8geW91ciBwbGF0Zm9ybSB5ZXQuIgotICNlbmRp ZgotZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jb21tb24v bGludXgvbWVtb3J5X21hcHBlZF9maWxlLmNjIGIvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtw YWQvc3JjL2NvbW1vbi9saW51eC9tZW1vcnlfbWFwcGVkX2ZpbGUuY2MKLWluZGV4IDk5MzYyOTQ1 Yy4uYzU0YmE3MTQ1IDEwMDY0NAotLS0tIGEvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQv c3JjL2NvbW1vbi9saW51eC9tZW1vcnlfbWFwcGVkX2ZpbGUuY2MKLSsrKyBiL3RoaXJkX3BhcnR5 L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jb21tb24vbGludXgvbWVtb3J5X21hcHBlZF9maWxlLmNj Ci1AQCAtNjUsOCArNjUsNyBAQCBib29sIE1lbW9yeU1hcHBlZEZpbGU6Ok1hcChjb25zdCBjaGFy KiBwYXRoLCBzaXplX3Qgb2Zmc2V0KSB7Ci0gICB9Ci0gCi0gI2lmIGRlZmluZWQoX194ODZfNjRf XykgfHwgZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgXAotLSAgIChkZWZpbmVkKF9fbWlwc19fKSAm JiBfTUlQU19TSU0gPT0gX0FCSTY0KQotLQotKyAgIChkZWZpbmVkKF9fbWlwc19fKSAmJiBfTUlQ U19TSU0gPT0gX0FCSTY0KSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICBzdHJ1Y3Qga2Vy bmVsX3N0YXQgc3Q7Ci0gICBpZiAoc3lzX2ZzdGF0KGZkLCAmc3QpID09IC0xIHx8IHN0LnN0X3Np emUgPCAwKSB7Ci0gI2Vsc2UKLWRpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVh a3BhZC9zcmMvY29tbW9uL2xpbnV4L21lbW9yeV9tYXBwZWRfZmlsZV91bml0dGVzdC5jYyBiL3Ro aXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jb21tb24vbGludXgvbWVtb3J5X21hcHBl ZF9maWxlX3VuaXR0ZXN0LmNjCi1pbmRleCBmYWQ1OWY0MGMuLjYxNjQ5NmQ2NyAxMDA2NDQKLS0t LSBhL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jb21tb24vbGludXgvbWVtb3J5 X21hcHBlZF9maWxlX3VuaXR0ZXN0LmNjCi0rKysgYi90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVh a3BhZC9zcmMvY29tbW9uL2xpbnV4L21lbW9yeV9tYXBwZWRfZmlsZV91bml0dGVzdC5jYwotQEAg LTE3Niw5ICsxNzYsMTAgQEAgVEVTVF9GKE1lbW9yeU1hcHBlZEZpbGVUZXN0LCBSZW1hcEFmdGVy TWFwKSB7Ci0gVEVTVF9GKE1lbW9yeU1hcHBlZEZpbGVUZXN0LCBNYXBXaXRoT2Zmc2V0KSB7Ci0g ICAvLyBQdXQgbW9yZSBkYXRhIGluIHRoZSB0ZXN0IGZpbGUgdGhpcyB0aW1lLiBPZmZzZXRzIGNh biBvbmx5IGJlCi0gICAvLyBkb25lIG9uIHBhZ2UgYm91bmRhcmllcywgc28gd2UgbmVlZCBhIHR3 byBwYWdlIGZpbGUgdG8gdGVzdCB0aGlzLgotLSAgY29uc3QgaW50IHBhZ2Vfc2l6ZSA9IDQwOTY7 Ci0tICBjaGFyIGRhdGExWzIgKiBwYWdlX3NpemVdOwotLSAgc2l6ZV90IGRhdGExX3NpemUgPSBz aXplb2YoZGF0YTEpOwotKyAgY29uc3QgaW50IHBhZ2Vfc2l6ZSA9IGdldHBhZ2VzaXplKCk7Ci0r ICBjaGFyICpkYXRhMSA9IHN0YXRpY19jYXN0PGNoYXIqPihtYWxsb2MoMiAqIHBhZ2Vfc2l6ZSkp OwotKyAgRVhQRUNUX1RSVUUoZGF0YTEgIT0gTlVMTCk7Ci0rICBzaXplX3QgZGF0YTFfc2l6ZSA9 ICgyICogcGFnZV9zaXplKTsKLSAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgZGF0YTFfc2l6ZTsg KytpKSB7Ci0gICAgIGRhdGExW2ldID0gaSAmIDB4N2Y7Ci0gICB9Ci1kaWZmIC0tZ2l0IGEvdGhp cmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NvbW1vbi9tZW1vcnlfYWxsb2NhdG9yX3Vu aXR0ZXN0LmNjIGIvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NvbW1vbi9tZW1v cnlfYWxsb2NhdG9yX3VuaXR0ZXN0LmNjCi1pbmRleCA1ODAzYjkwZDUuLjJhMWNmMTRmMCAxMDA2 NDQKLS0tLSBhL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jb21tb24vbWVtb3J5 X2FsbG9jYXRvcl91bml0dGVzdC5jYwotKysrIGIvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtw YWQvc3JjL2NvbW1vbi9tZW1vcnlfYWxsb2NhdG9yX3VuaXR0ZXN0LmNjCi1AQCAtNTcsOCArNTcs OSBAQCBURVNUKFBhZ2VBbGxvY2F0b3JUZXN0LCBMYXJnZU9iamVjdCkgewotIAotICAgRVhQRUNU X0VRKDBVLCBhbGxvY2F0b3IucGFnZXNfYWxsb2NhdGVkKCkpOwotICAgdWludDhfdCogcCA9IHJl aW50ZXJwcmV0X2Nhc3Q8dWludDhfdCo+KGFsbG9jYXRvci5BbGxvYygxMDAwMCkpOwotKyAgdWlu dDY0X3QgZXhwZWN0ZWRfcGFnZXMgPSAxICsgKCgxMDAwMCAtIDEpIC8gZ2V0cGFnZXNpemUoKSk7 Ci0gICBBU1NFUlRfRkFMU0UocCA9PSBOVUxMKTsKLS0gIEVYUEVDVF9FUSgzVSwgYWxsb2NhdG9y LnBhZ2VzX2FsbG9jYXRlZCgpKTsKLSsgIEVYUEVDVF9FUShleHBlY3RlZF9wYWdlcywgYWxsb2Nh dG9yLnBhZ2VzX2FsbG9jYXRlZCgpKTsKLSAgIGZvciAodW5zaWduZWQgaSA9IDE7IGkgPCAxMDsg KytpKSB7Ci0gICAgIHVpbnQ4X3QqIHAgPSByZWludGVycHJldF9jYXN0PHVpbnQ4X3QqPihhbGxv Y2F0b3IuQWxsb2MoaSkpOwotICAgICBBU1NFUlRfRkFMU0UocCA9PSBOVUxMKTsKLWRpZmYgLS1n aXQgYS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvcHJvY2Vzc29yL2V4cGxvaXRh YmlsaXR5X2xpbnV4LmNjIGIvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL3Byb2Nl c3Nvci9leHBsb2l0YWJpbGl0eV9saW51eC5jYwotaW5kZXggNzk4MDU2ZGZhLi4yMmJkODFmZmYg MTAwNjQ0Ci0tLS0gYS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvcHJvY2Vzc29y L2V4cGxvaXRhYmlsaXR5X2xpbnV4LmNjCi0rKysgYi90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVh a3BhZC9zcmMvcHJvY2Vzc29yL2V4cGxvaXRhYmlsaXR5X2xpbnV4LmNjCi1AQCAtMjAyLDEyICsy MDIsMTQgQEAgYm9vbCBFeHBsb2l0YWJpbGl0eUxpbnV4OjpFbmRlZE9uSWxsZWdhbFdyaXRlKHVp bnQ2NF90IGluc3RydWN0aW9uX3B0cikgewotICAgLy8gQ2hlY2sgYXJjaGl0ZWN0dXJlIGFuZCBz ZXQgYXJjaGl0ZWN0dXJlIHZhcmlhYmxlIHRvIGNvcnJlc3BvbmRpbmcgZmxhZwotICAgLy8gaW4g b2JqZHVtcC4KLSAgIHN3aXRjaCAoY29udGV4dC0+R2V0Q29udGV4dENQVSgpKSB7Ci0rI2lmIGRl ZmluZWQoX19pMzg2KSB8fCBkZWZpbmVkKF9feDg2XzY0KQotICAgICBjYXNlIE1EX0NPTlRFWFRf WDg2OgotICAgICAgIGFyY2hpdGVjdHVyZSA9ICJpMzg2IjsKLSAgICAgICBicmVhazsKLSAgICAg Y2FzZSBNRF9DT05URVhUX0FNRDY0OgotICAgICAgIGFyY2hpdGVjdHVyZSA9ICJpMzg2Ong4Ni02 NCI7Ci0gICAgICAgYnJlYWs7Ci0rI2VuZGlmCi0gICAgIGRlZmF1bHQ6Ci0gICAgICAgLy8gVW5z dXBwb3J0ZWQgYXJjaGl0ZWN0dXJlLiBOb3RlIHRoYXQgQVJNIGFyY2hpdGVjdHVyZXMgYXJlIG5v dAotICAgICAgIC8vIHN1cHBvcnRlZCBiZWNhdXNlIG9iamR1bXAgZG9lcyBub3Qgc3VwcG9ydCBB Uk0uCi1kaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL3Byb2Nl c3Nvci9leHBsb2l0YWJpbGl0eV91bml0dGVzdC5jYyBiL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2Jy ZWFrcGFkL3NyYy9wcm9jZXNzb3IvZXhwbG9pdGFiaWxpdHlfdW5pdHRlc3QuY2MKLWluZGV4IDUy OGVlNWYyMS4uNzI3NjRkNmMxIDEwMDY0NAotLS0tIGEvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJl YWtwYWQvc3JjL3Byb2Nlc3Nvci9leHBsb2l0YWJpbGl0eV91bml0dGVzdC5jYwotKysrIGIvdGhp cmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL3Byb2Nlc3Nvci9leHBsb2l0YWJpbGl0eV91 bml0dGVzdC5jYwotQEAgLTEwNCw2ICsxMDQsOCBAQCBFeHBsb2l0YWJpbGl0eUZvcihjb25zdCBz dHJpbmcmIGZpbGVuYW1lKSB7Ci0gfQotIAotIFRFU1QoRXhwbG9pdGFiaWxpdHlUZXN0LCBUZXN0 V2luZG93c0VuZ2luZSkgewotKy8vIFRoZSBmb2xsb3dpbmcgdGVzdHMgYXJlIG9ubHkgZXhlY3V0 YWJsZSBvbiBhbiB4ODYtY2xhc3MgbGludXggbWFjaGluZS4KLSsjaWYgIWRlZmluZWQoX1dJTjMy KSAmJiAoZGVmaW5lZChfX2kzODYpIHx8IGRlZmluZWQoX194ODZfNjQpKQotICAgQVNTRVJUX0VR KGdvb2dsZV9icmVha3BhZDo6RVhQTE9JVEFCSUxJVFlfSElHSCwKLSAgICAgICAgICAgICBFeHBs b2l0YWJpbGl0eUZvcigiYXNjaWlfcmVhZF9hdi5kbXAiKSk7Ci0gICBBU1NFUlRfRVEoZ29vZ2xl X2JyZWFrcGFkOjpFWFBMT0lUQUJJTElUWV9ISUdILAotQEAgLTEzNiw5ICsxMzgsMTIgQEAgVEVT VChFeHBsb2l0YWJpbGl0eVRlc3QsIFRlc3RXaW5kb3dzRW5naW5lKSB7Ci0gICAgICAgICAgICAg RXhwbG9pdGFiaWxpdHlGb3IoInJlYWRfYXZfY2xvYmJlcl93cml0ZS5kbXAiKSk7Ci0gICBBU1NF UlRfRVEoZ29vZ2xlX2JyZWFrcGFkOjpFWFBMT0lUQUJJTElUWV9MT1csCi0gICAgICAgICAgICAg RXhwbG9pdGFiaWxpdHlGb3IoInJlYWRfYXZfY29uZGl0aW9uYWwuZG1wIikpOwotKyNlbmRpZgot IH0KLSAKLSBURVNUKEV4cGxvaXRhYmlsaXR5VGVzdCwgVGVzdExpbnV4RW5naW5lKSB7Ci0rLy8g VGhlIGZvbGxvd2luZyB0ZXN0cyBhcmUgb25seSBleGVjdXRhYmxlIG9uIGFuIHg4Ni1jbGFzcyBs aW51eCBtYWNoaW5lLgotKyNpZiBkZWZpbmVkKF9faTM4NikgfHwgZGVmaW5lZChfX3g4Nl82NCkK LSAgIEFTU0VSVF9FUShnb29nbGVfYnJlYWtwYWQ6OkVYUExPSVRBQklMSVRZX0lOVEVSRVNUSU5H LAotICAgICAgICAgICAgIEV4cGxvaXRhYmlsaXR5Rm9yKCJsaW51eF9udWxsX3JlYWRfYXYuZG1w IikpOwotICAgQVNTRVJUX0VRKGdvb2dsZV9icmVha3BhZDo6RVhQTE9JVEFCSUxJVFlfSElHSCwK LUBAIC0xNzEsNyArMTc2LDggQEAgVEVTVChFeHBsb2l0YWJpbGl0eVRlc3QsIFRlc3RMaW51eEVu Z2luZSkgewotICAgICAgICAgICAgIEV4cGxvaXRhYmlsaXR5Rm9yKCJsaW51eF9leGVjdXRhYmxl X2hlYXAuZG1wIikpOwotICAgQVNTRVJUX0VRKGdvb2dsZV9icmVha3BhZDo6RVhQTE9JVEFCSUxJ VFlfSElHSCwKLSAgICAgICAgICAgICBFeHBsb2l0YWJpbGl0eUZvcigibGludXhfam1wX3RvX21v ZHVsZV9ub3RfZXhlX3JlZ2lvbi5kbXAiKSk7Ci0tI2lmbmRlZiBfV0lOMzIKLSsjZW5kaWYKLSsj aWYgIWRlZmluZWQoX1dJTjMyKSAmJiAoZGVmaW5lZChfX2kzODYpIHx8IGRlZmluZWQoX194ODZf NjQpKQotICAgQVNTRVJUX0VRKGdvb2dsZV9icmVha3BhZDo6RVhQTE9JVEFCSUxJVFlfSElHSCwK LSAgICAgICAgICAgICBFeHBsb2l0YWJpbGl0eUZvcigibGludXhfd3JpdGVfdG9fbm9ud3JpdGFi bGVfbW9kdWxlLmRtcCIpKTsKLSAgIEFTU0VSVF9FUShnb29nbGVfYnJlYWtwYWQ6OkVYUExPSVRB QklMSVRZX0hJR0gsCi1AQCAtMTgyLDEwICsxODgsMTAgQEAgVEVTVChFeHBsb2l0YWJpbGl0eVRl c3QsIFRlc3RMaW51eEVuZ2luZSkgewotICAgICAgICAgICAgIEV4cGxvaXRhYmlsaXR5Rm9yKCJs aW51eF93cml0ZV90b19vdXRzaWRlX21vZHVsZV92aWFfbWF0aC5kbXAiKSk7Ci0gICBBU1NFUlRf RVEoZ29vZ2xlX2JyZWFrcGFkOjpFWFBMT0lUQUJJTElUWV9JTlRFUkVTVElORywKLSAgICAgICAg ICAgICBFeHBsb2l0YWJpbGl0eUZvcigibGludXhfd3JpdGVfdG9fdW5kZXJfNGsuZG1wIikpOwot LSNlbmRpZiAgLy8gX1dJTjMyCi0rI2VuZGlmICAvLyAhZGVmaW5lZChfV0lOMzIpICYmICghZGVm aW5lZChfX2kzODYpICYmICFkZWZpbmVkKF9feDg2XzY0KSkKLSB9Ci0gCi0tI2lmbmRlZiBfV0lO MzIKLSsjaWYgIWRlZmluZWQoX1dJTjMyKSAmJiAoZGVmaW5lZChfX2kzODYpIHx8IGRlZmluZWQo X194ODZfNjQpKQotIFRFU1QoRXhwbG9pdGFiaWxpdHlMaW51eFV0aWxzVGVzdCwgRGlzYXNzZW1i bGVCeXRlc1Rlc3QpIHsKLSAgIEFTU0VSVF9GQUxTRShFeHBsb2l0YWJpbGl0eUxpbnV4VGVzdDo6 RGlzYXNzZW1ibGVCeXRlcygiIiwgTlVMTCwgNSwgTlVMTCkpOwotICAgdWludDhfdCBieXRlc1s2 XSA9IHsweGM3LCAweDAsIDB4NSwgMHgwLCAweDAsIDB4MH07Ci1AQCAtMzAxLDYgKzMwNyw3IEBA IFRFU1QoRXhwbG9pdGFiaWxpdHlMaW51eFV0aWxzVGVzdCwgQ2FsY3VsYXRlQWRkcmVzc1Rlc3Qp IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBjb250ZXh0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICZ3cml0ZV9hZGRyZXNzKSk7Ci0gfQotLSNlbmRpZiAgLy8gX1dJTjMy Ci0rI2VuZGlmICAvLyAhZGVmaW5lZChfV0lOMzIpICYmIChkZWZpbmVkKF9faTM4NikgfHwgZGVm aW5lZChfX3g4Nl82NCkpCi0rCi0gCi0gfSAgLy8gbmFtZXNwYWNlCi1kaWZmIC0tZ2l0IGEvdGhp cmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL3Rvb2xzL2xpbnV4L21kMmNvcmUvbWluaWR1 bXAtMi1jb3JlLmNjIGIvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL3Rvb2xzL2xp bnV4L21kMmNvcmUvbWluaWR1bXAtMi1jb3JlLmNjCi1pbmRleCBhYWRlODJjOTkuLjE5NWFhNzNm MyAxMDA2NDQKLS0tLSBhL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy90b29scy9s aW51eC9tZDJjb3JlL21pbmlkdW1wLTItY29yZS5jYwotKysrIGIvdGhpcmRfcGFydHkvYnJlYWtw YWQvYnJlYWtwYWQvc3JjL3Rvb2xzL2xpbnV4L21kMmNvcmUvbWluaWR1bXAtMi1jb3JlLmNjCi1A QCAtNzcsNiArNzcsOCBAQAotICAgI2RlZmluZSBFTEZfQVJDSCAgRU1fTUlQUwotICNlbGlmIGRl ZmluZWQoX19hYXJjaDY0X18pCi0gICAjZGVmaW5lIEVMRl9BUkNIICBFTV9BQVJDSDY0Ci0rI2Vs aWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotKyAgI2RlZmluZSBFTEZfQVJDSCAgRU1fUFBDNjQK LSAjZW5kaWYKLSAKLSAjaWYgZGVmaW5lZChfX2FybV9fKQotQEAgLTg3LDYgKzg5LDggQEAgdHlw ZWRlZiB1c2VyX3JlZ3MgdXNlcl9yZWdzX3N0cnVjdDsKLSAjZWxpZiBkZWZpbmVkIChfX21pcHNf XykKLSAvLyBUaGlzIGZpbGUtbG9jYWwgdHlwZWRlZiBzaW1wbGlmaWVzIHRoZSBzb3VyY2UgY29k ZS4KLSB0eXBlZGVmIGdyZWdzZXRfdCB1c2VyX3JlZ3Nfc3RydWN0OwotKyNlbGlmIGRlZmluZWQo X19wb3dlcnBjNjRfXykKLSt0eXBlZGVmIHN0cnVjdCBwdF9yZWdzIHVzZXJfcmVnc19zdHJ1Y3Q7 Ci0gI2VuZGlmCi0gCi0gdXNpbmcgZ29vZ2xlX2JyZWFrcGFkOjpNRFR5cGVIZWxwZXI7Ci1AQCAt MzIxLDYgKzMyNSw5IEBAIHN0cnVjdCBDcmFzaGVkUHJvY2VzcyB7Ci0gI2VuZGlmCi0gI2lmIGRl ZmluZWQoX19hYXJjaDY0X18pCi0gICAgIHVzZXJfZnBzaW1kX3N0cnVjdCBmcHJlZ3M7Ci0rI2Vu ZGlmCi0rI2lmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSsgICAgbWNvbnRleHRfdCBtY29udGV4 dDsKLSAjZW5kaWYKLSAgICAgdWludHB0cl90IHN0YWNrX2FkZHI7Ci0gICAgIGNvbnN0IHVpbnQ4 X3QqIHN0YWNrOwotQEAgLTUzNSw2ICs1NDIsMzggQEAgUGFyc2VUaHJlYWRSZWdpc3RlcnMoQ3Jh c2hlZFByb2Nlc3M6OlRocmVhZCogdGhyZWFkLAotICAgdGhyZWFkLT5tY29udGV4dC5mcGNfZWly ID0gcmF3cmVncy0+ZmxvYXRfc2F2ZS5maXI7Ci0gI2VuZGlmCi0gfQotKyNlbGlmIGRlZmluZWQo X19wb3dlcnBjNjRfXykKLStzdGF0aWMgdm9pZAotK1BhcnNlVGhyZWFkUmVnaXN0ZXJzKENyYXNo ZWRQcm9jZXNzOjpUaHJlYWQqIHRocmVhZCwKLSsgICAgICAgICAgICAgICAgICAgICBjb25zdCBN aW5pZHVtcE1lbW9yeVJhbmdlJiByYW5nZSkgewotKyAgY29uc3QgTURSYXdDb250ZXh0UFBDNjQq IHJhd3JlZ3MgPSByYW5nZS5HZXREYXRhPE1EUmF3Q29udGV4dFBQQzY0PigwKTsKLSsKLSsgIGZv ciAoaW50IGkgPSAwOyBpIDwgTURfQ09OVEVYVF9QUEM2NF9HUFJfQ09VTlQ7IGkrKykKLSsgICAg dGhyZWFkLT5tY29udGV4dC5ncF9yZWdzW2ldID0gcmF3cmVncy0+Z3ByW2ldOwotKwotKyAgdGhy ZWFkLT5tY29udGV4dC5ncF9yZWdzW1BUX0xOS10gPSByYXdyZWdzLT5scjsKLSsgIHRocmVhZC0+ bWNvbnRleHQuZ3BfcmVnc1tQVF9OSVBdID0gcmF3cmVncy0+c3JyMDsKLSsgIHRocmVhZC0+bWNv bnRleHQuZ3BfcmVnc1tQVF9NU1JdID0gcmF3cmVncy0+c3JyMTsKLSsgIHRocmVhZC0+bWNvbnRl eHQuZ3BfcmVnc1tQVF9DQ1JdID0gcmF3cmVncy0+Y3I7Ci0rICB0aHJlYWQtPm1jb250ZXh0Lmdw X3JlZ3NbUFRfWEVSXSA9IHJhd3JlZ3MtPnhlcjsKLSsgIHRocmVhZC0+bWNvbnRleHQuZ3BfcmVn c1tQVF9DVFJdID0gcmF3cmVncy0+Y3RyOwotKyAgdGhyZWFkLT5tY29udGV4dC52X3JlZ3MtPnZy c2F2ZSA9IHJhd3JlZ3MtPnZyc2F2ZTsKLSsKLSsgIGZvciAoaW50IGkgPSAwOyBpIDwgTURfRkxP QVRJTkdTQVZFQVJFQV9QUENfRlBSX0NPVU5UOyBpKyspCi0rICAgICAgdGhyZWFkLT5tY29udGV4 dC5mcF9yZWdzW2ldID0gcmF3cmVncy0+ZmxvYXRfc2F2ZS5mcHJlZ3NbaV07Ci0rCi0rICB0aHJl YWQtPm1jb250ZXh0LmZwX3JlZ3NbTkZQUkVHLTFdID0gcmF3cmVncy0+ZmxvYXRfc2F2ZS5mcHNj cjsKLSsKLSsgIGZvciAoaW50IGkgPSAwOyBpIDwgTURfVkVDVE9SU0FWRUFSRUFfUFBDX1ZSX0NP VU5UOyBpKyspIHsKLSsgICAgICB0aHJlYWQtPm1jb250ZXh0LnZfcmVncy0+dnJyZWdzW2ldWzBd ID0gcmF3cmVncy0+dmVjdG9yX3NhdmUuc2F2ZV92cltpXS5oaWdoID4+IDMyOwotKyAgICAgIHRo cmVhZC0+bWNvbnRleHQudl9yZWdzLT52cnJlZ3NbaV1bMV0gPSByYXdyZWdzLT52ZWN0b3Jfc2F2 ZS5zYXZlX3ZyW2ldLmhpZ2g7Ci0rICAgICAgdGhyZWFkLT5tY29udGV4dC52X3JlZ3MtPnZycmVn c1tpXVsyXSA9IHJhd3JlZ3MtPnZlY3Rvcl9zYXZlLnNhdmVfdnJbaV0ubG93ID4+IDMyOwotKyAg ICAgIHRocmVhZC0+bWNvbnRleHQudl9yZWdzLT52cnJlZ3NbaV1bM10gPSByYXdyZWdzLT52ZWN0 b3Jfc2F2ZS5zYXZlX3ZyW2ldLmxvdzsKLSsgIH0KLSsKLSsgIHRocmVhZC0+bWNvbnRleHQudl9y ZWdzLT52c2NyLnZzY3Jfd29yZCA9IHJhd3JlZ3MtPnZlY3Rvcl9zYXZlLnNhdmVfdnNjci5sb3cg JiAweEZGRkZGRkZGOwotK30KLSsKLSAjZWxzZQotICNlcnJvciAiVGhpcyBjb2RlIGhhcyBub3Qg YmVlbiBwb3J0ZWQgdG8geW91ciBwbGF0Zm9ybSB5ZXQiCi0gI2VuZGlmCi1AQCAtNjIzLDYgKzY2 MiwxMiBAQCBQYXJzZVN5c3RlbUluZm8oY29uc3QgT3B0aW9ucyYgb3B0aW9ucywgQ3Jhc2hlZFBy b2Nlc3MqIGNyYXNoaW5mbywKLSAjIGVsc2UKLSAjICBlcnJvciAiVGhpcyBtaXBzIEFCSSBpcyBj dXJyZW50bHkgbm90IHN1cHBvcnRlZCAobjMyKSIKLSAjIGVuZGlmCi0rI2VsaWYgZGVmaW5lZChf X3Bvd2VycGM2NF9fKQotKyAgaWYgKHN5c2luZm8tPnByb2Nlc3Nvcl9hcmNoaXRlY3R1cmUgIT0g TURfQ1BVX0FSQ0hJVEVDVFVSRV9QUEM2NCkgewotKyAgICBmcHJpbnRmKHN0ZGVyciwKLSsgICAg ICAgICAgICAiVGhpcyB2ZXJzaW9uIG9mIG1pbmlkdW1wLTItY29yZSBvbmx5IHN1cHBvcnRzIFBQ QzY0LlxuIik7Ci0rICAgIGV4aXQoMSk7Ci0rICB9Ci0gI2Vsc2UKLSAjZXJyb3IgIlRoaXMgY29k ZSBoYXMgbm90IGJlZW4gcG9ydGVkIHRvIHlvdXIgcGxhdGZvcm0geWV0IgotICNlbmRpZgotZGlm ZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL0NPTlRSSUJVVE9SUyBiL3Ro aXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL0NPTlRSSUJVVE9SUwotaW5kZXggODcyNGI3ZjMy Li44ZTI5NDI0ZWYgMTAwNjQ0Ci0tLS0gYS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9D T05UUklCVVRPUlMKLSsrKyBiL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL0NPTlRSSUJV VE9SUwotQEAgLTEzLDMgKzEzLDQgQEAgTWFyayBNZW50b3ZhaSA8bWFya0BjaHJvbWl1bS5vcmc+ Ci0gUm9iZXJ0IFNlc2VrIDxyc2VzZWtAY2hyb21pdW0ub3JnPgotIFNjb3R0IEdyYWhhbSA8c2Nv dHRtZ0BjaHJvbWl1bS5vcmc+Ci0gSm9zaHVhIFBlcmF6YSA8anBlcmF6YUBjaHJvbWl1bS5vcmc+ Ci0rU2hhd24gQW5hc3Rhc2lvIDxzaGF3bkBhbmFzdGFzLmlvPgotZGlmZiAtLWdpdCBhL3RoaXJk X3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL2NvbXBhdC9saW51eC9zeXMvdXNlci5oIGIvdGhpcmRf cGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvY29tcGF0L2xpbnV4L3N5cy91c2VyLmgKLWluZGV4IDZl ZDc3YTk4ZS4uMWZkODM0NjlhIDEwMDY0NAotLS0tIGEvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jh c2hwYWQvY29tcGF0L2xpbnV4L3N5cy91c2VyLmgKLSsrKyBiL3RoaXJkX3BhcnR5L2NyYXNocGFk L2NyYXNocGFkL2NvbXBhdC9saW51eC9zeXMvdXNlci5oCi1AQCAtMTUsNiArMTUsNyBAQAotICNp Zm5kZWYgQ1JBU0hQQURfQ09NUEFUX0xJTlVYX1NZU19VU0VSX0hfCi0gI2RlZmluZSBDUkFTSFBB RF9DT01QQVRfTElOVVhfU1lTX1VTRVJfSF8KLSAKLSsjaW5jbHVkZSA8Y3N0ZGRlZj4KLSAjaW5j bHVkZV9uZXh0IDxzeXMvdXNlci5oPgotIAotICNpbmNsdWRlIDxmZWF0dXJlcy5oPgotZGlmZiAt LWdpdCBhL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL21pbmlkdW1wL21pbmlkdW1wX2Nv bnRleHQuaCBiL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL21pbmlkdW1wL21pbmlkdW1w X2NvbnRleHQuaAotaW5kZXggM2EzZTYwM2NiLi4zMTE4ZDllOWYgMTAwNjQ0Ci0tLS0gYS90aGly ZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9taW5pZHVtcC9taW5pZHVtcF9jb250ZXh0LmgKLSsr KyBiL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL21pbmlkdW1wL21pbmlkdW1wX2NvbnRl eHQuaAotQEAgLTU5Miw2ICs1OTIsNzAgQEAgc3RydWN0IE1pbmlkdW1wQ29udGV4dE1JUFM2NCB7 Ci0gICB1aW50NjRfdCBmaXI7Ci0gfTsKLSAKLSsvLyEgXGJyaWVmIHBwYzY0LXNwZWNpZmljIGZs YWdzIGZvciBNaW5pZHVtcFBQQzY0Ojpjb250ZXh0X2ZsYWdzCi0rLy8hIEJhc2VkIG9uIG1pbmlk dW1wX2NwdV9wcGM2NC5oIGZyb20gYnJlYWtwYWQKLStlbnVtIE1pbmlkdW1wQ29udGV4dFBQQzY0 RmxhZ3MgOiB1aW50MzJfdCB7Ci0rICAvLyEgXGJyaWVmIElkZW50aWZpZXMgdGhlIGNvbnRleHQg YXMgUFBDNjQuCi0rICBrTWluaWR1bXBDb250ZXh0UFBDNjQgPSAweDAxMDAwMDAwLAotKwotKyAg Ly8hIFxicmllZiBJbmRpY2F0ZXMgdGhlIHZhbGlkaXR5IG9mIGdlbmVyYWwgcHVycG9zZSByZWdp c3RlcnMuCi0rICAvLyEKLSsgIC8vISBSZWdpc3RlcnMgYHIwYC1gcjMxYCwgYG5pcGAsIGBtc3Jg LCBgbHJgLCBldGMuIGFyZSB2YWxpZC4KLSsgIGtNaW5pZHVtcENvbnRleHRQUEM2NEJhc2UgPSBr TWluaWR1bXBDb250ZXh0UFBDNjQgfCAweDAwMDAwMDAxLAotKwotKyAgLy8hIFxicmllZiBJbmRp Y2F0ZXMgdGhlIHZhbGlkaXR5IG9mIGZsb2F0aW5nIHBvaW50IHJlZ2lzdGVycy4KLSsgIC8vIQot KyAgLy8hIFJlZ2lzdGVycyBgZnAwYC1gZnAzMWAsIGBmcHNjcmAgYXJlIHZhbGlkLgotKyAga01p bmlkdW1wQ29udGV4dFBQQzY0RmxvYXRpbmcgPSBrTWluaWR1bXBDb250ZXh0UFBDNjQgfCAweDAw MDAwMDA4LAotKwotKyAgLy8hIFxicmllZiBJbmRpY2F0ZXMgdGhlIHZhbGlkaXR5IG9mIEFsdGl2 ZWMvVk1YIHJlZ2lzdGVycy4KLSsgIC8vIQotKyAgLy8hIFJlZ2lzdGVycyBgdjBgLWB2MzFgLCBg dnNjcmAsIGB2cnNhdmVgLgotKyAga01pbmlkdW1wQ29udGV4dFBQQzY0VmVjdG9yID0ga01pbmlk dW1wQ29udGV4dFBQQzY0IHwgMHgwMDAwMDAyMCwKLSsKLSsgIC8vISBcYnJpZWYgSW5kaWNhdGVz IHRoZSB2YWxpZGl0eSBvZiBhbGwgcmVnaXN0ZXJzCi0rICBrTWluaWR1bXBDb250ZXh0UFBDNjRB bGwgPSBrTWluaWR1bXBDb250ZXh0UFBDNjRCYXNlICAgICB8Ci0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBrTWluaWR1bXBDb250ZXh0UFBDNjRGbG9hdGluZyB8Ci0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBrTWluaWR1bXBDb250ZXh0UFBDNjRWZWN0b3IKLSt9OwotKwotKy8v ISBcYnJpZWYgQSBQUEM2NCBDUFUgY29udGV4dCBjYXJyaWVkIGluIGEgbWluaWR1bXAgZmlsZS4K LSsvLyEgQmFzZWQgb24gbWluaWR1bXBfY3B1X3BwYzY0LmggZnJvbSBicmVha3BhZC4KLStzdHJ1 Y3QgTWluaWR1bXBDb250ZXh0UFBDNjQgewotKyAgdWludDY0X3QgY29udGV4dF9mbGFnczsKLSsK LSsgIC8vISBcYnJpZWYgR2VuZXJhbCBwdXJwb3NlIHJlZ2lzdGVycy4KLSsgIHVpbnQ2NF90IG5p cDsKLSsgIHVpbnQ2NF90IG1zcjsKLSsgIHVpbnQ2NF90IHJlZ3NbMzJdOwotKyAgdWludDY0X3Qg Y2NyOwotKyAgdWludDY0X3QgeGVyOwotKyAgdWludDY0X3QgbG5rOwotKyAgdWludDY0X3QgY3Ry OwotKwotKyAgLy8hIFxicmllZiBGbG9hdGluZyBwb2ludCByZWdpc3RlcnMuCi0rICBkb3VibGUg ZnByZWdzWzMyXTsKLSsKLSsgIC8vISBcYnJpZWYgRlBVIHN0YXR1cyByZWdpc3Rlci4KLSsgIGRv dWJsZSBmcHNjcjsKLSsKLSsgIC8vISBcYnJpZWYgQWx0aXZlYy9WTVggdmVjdG9yIHJlZ2lzdGVy cy4KLSsgIHN0cnVjdCB7Ci0rICAgICAgLy8hIFxicmllZiBWZWN0b3IgcmVnaXN0ZXJzIGFyZSAx MjhiaXRzLgotKyAgICAgIHVpbnQxMjhfc3RydWN0IHNhdmVfdnJbMzJdOwotKyAgICAgIHVpbnQx Mjhfc3RydWN0IHNhdmVfdnNjcjsKLSsKLSsgICAgICAvLyEgXGJyaWVmIFBhZGRpbmcgaW5jbHVk ZWQgZm9yIGJyZWFrcGFkIGNvbXBhdGliaWx0aXkuCi0rICAgICAgdWludDMyX3Qgc2F2ZV9wYWQ1 WzRdOwotKwotKyAgICAgIC8vISBcYnJpZWYgVlJTQVZFIHJlZ2lzdGVyLgotKyAgICAgIHVpbnQz Ml90IHNhdmVfdnJzYXZlOwotKwotKyAgICAgIC8vISBcYnJpZWYgUGFkZGluZyBpbmNsdWRlZCBm b3IgYnJlYWtwYWQgY29tcGF0aWJpbHRpeS4KLSsgICAgICB1aW50MzJfdCBzYXZlX3BhZDZbN107 Ci0rICB9IHZyZWdzOwotK307Ci0rCi0gfSAgLy8gbmFtZXNwYWNlIGNyYXNocGFkCi0gCi0gI2Vu ZGlmICAvLyBDUkFTSFBBRF9NSU5JRFVNUF9NSU5JRFVNUF9DT05URVhUX0hfCi1kaWZmIC0tZ2l0 IGEvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvbWluaWR1bXAvbWluaWR1bXBfY29udGV4 dF93cml0ZXIuY2MgYi90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9taW5pZHVtcC9taW5p ZHVtcF9jb250ZXh0X3dyaXRlci5jYwotaW5kZXggZDdlNTNhNDkzLi5kODllYjllMDEgMTAwNjQ0 Ci0tLS0gYS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9taW5pZHVtcC9taW5pZHVtcF9j b250ZXh0X3dyaXRlci5jYwotKysrIGIvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvbWlu aWR1bXAvbWluaWR1bXBfY29udGV4dF93cml0ZXIuY2MKLUBAIC0xMDEsNiArMTAxLDEzIEBAIE1p bmlkdW1wQ29udGV4dFdyaXRlcjo6Q3JlYXRlRnJvbVNuYXBzaG90KGNvbnN0IENQVUNvbnRleHQq IGNvbnRleHRfc25hcHNob3QpIHsKLSAgICAgICBicmVhazsKLSAgICAgfQotIAotKyAgICBjYXNl IGtDUFVBcmNoaXRlY3R1cmVQUEM2NDogewotKyAgICAgIGNvbnRleHQgPSBzdGQ6Om1ha2VfdW5p cXVlPE1pbmlkdW1wQ29udGV4dFBQQzY0V3JpdGVyPigpOwotKyAgICAgIHJlaW50ZXJwcmV0X2Nh c3Q8TWluaWR1bXBDb250ZXh0UFBDNjRXcml0ZXIqPihjb250ZXh0LmdldCgpKQotKyAgICAgICAg ICAtPkluaXRhbGl6ZUZyb21TbmFwc2hvdChjb250ZXh0X3NuYXBzaG90LT5wcGM2NCk7Ci0rICAg ICAgYnJlYWs7Ci0rICAgIH0KLSsKLSAgICAgZGVmYXVsdDogewotICAgICAgIExPRyhFUlJPUikg PDwgInVua25vd24gY29udGV4dCBhcmNoaXRlY3R1cmUgIgotICAgICAgICAgICAgICAgICAgPDwg Y29udGV4dF9zbmFwc2hvdC0+YXJjaGl0ZWN0dXJlOwotQEAgLTQ1Myw0ICs0NjAsNDcgQEAgc2l6 ZV90IE1pbmlkdW1wQ29udGV4dE1JUFM2NFdyaXRlcjo6Q29udGV4dFNpemUoKSBjb25zdCB7Ci0g ICByZXR1cm4gc2l6ZW9mKGNvbnRleHRfKTsKLSB9Ci0gCi0rTWluaWR1bXBDb250ZXh0UFBDNjRX cml0ZXI6Ok1pbmlkdW1wQ29udGV4dFBQQzY0V3JpdGVyKCkKLSsgIDogTWluaWR1bXBDb250ZXh0 V3JpdGVyKCksIGNvbnRleHRfKCkgewotKyAgICBjb250ZXh0Xy5jb250ZXh0X2ZsYWdzID0ga01p bmlkdW1wQ29udGV4dFBQQzY0OwotK30KLSsKLStNaW5pZHVtcENvbnRleHRQUEM2NFdyaXRlcjo6 fk1pbmlkdW1wQ29udGV4dFBQQzY0V3JpdGVyKCkgPSBkZWZhdWx0OwotKwotK3ZvaWQgTWluaWR1 bXBDb250ZXh0UFBDNjRXcml0ZXI6OkluaXRhbGl6ZUZyb21TbmFwc2hvdCgKLSsgICAgY29uc3Qg Q1BVQ29udGV4dFBQQzY0KiBjb250ZXh0X3NuYXBzaG90KSB7Ci0rICBEQ0hFQ0tfRVEoc3RhdGUo KSwga1N0YXRlTXV0YWJsZSk7Ci0rICBEQ0hFQ0tfRVEoY29udGV4dF8uY29udGV4dF9mbGFncywg a01pbmlkdW1wQ29udGV4dFBQQzY0KTsKLSsKLSsgIGNvbnRleHRfLmNvbnRleHRfZmxhZ3MgPSBr TWluaWR1bXBDb250ZXh0UFBDNjRBbGw7Ci0rCi0rICBtZW1jcHkoY29udGV4dF8ucmVncywgY29u dGV4dF9zbmFwc2hvdC0+cmVncywgc2l6ZW9mKGNvbnRleHRfLnJlZ3MpKTsKLSsgIGNvbnRleHRf Lm5pcCA9IGNvbnRleHRfc25hcHNob3QtPm5pcDsKLSsgIGNvbnRleHRfLm1zciA9IGNvbnRleHRf c25hcHNob3QtPm1zcjsKLSsgIGNvbnRleHRfLmNjciA9IGNvbnRleHRfc25hcHNob3QtPmNjcjsK LSsgIGNvbnRleHRfLnhlciA9IGNvbnRleHRfc25hcHNob3QtPnhlcjsKLSsgIGNvbnRleHRfLmxu ayA9IGNvbnRleHRfc25hcHNob3QtPmxuazsKLSsgIGNvbnRleHRfLmN0ciA9IGNvbnRleHRfc25h cHNob3QtPmN0cjsKLSsKLSsgIG1lbWNweShjb250ZXh0Xy5mcHJlZ3MsIGNvbnRleHRfc25hcHNo b3QtPmZwcmVncywgc2l6ZW9mKGNvbnRleHRfLmZwcmVncykpOwotKyAgY29udGV4dF8uZnBzY3Ig PSBjb250ZXh0X3NuYXBzaG90LT5mcHNjcjsKLSsKLSsgIG1lbWNweShjb250ZXh0Xy52cmVncy5z YXZlX3ZyLCBjb250ZXh0X3NuYXBzaG90LT52cmVncy5zYXZlX3ZyLAotKyAgICAgICAgIHNpemVv Zihjb250ZXh0Xy52cmVncy5zYXZlX3ZyKSk7Ci0rICBtZW1jcHkoJmNvbnRleHRfLnZyZWdzLnNh dmVfdnNjciwgJmNvbnRleHRfc25hcHNob3QtPnZyZWdzLnNhdmVfdnNjciwKLSsgICAgICAgICBz aXplb2YoY29udGV4dF8udnJlZ3Muc2F2ZV92c2NyKSk7Ci0rICBjb250ZXh0Xy52cmVncy5zYXZl X3Zyc2F2ZSA9IGNvbnRleHRfc25hcHNob3QtPnZyZWdzLnNhdmVfdnJzYXZlOwotK30KLSsKLSti b29sIE1pbmlkdW1wQ29udGV4dFBQQzY0V3JpdGVyOjpXcml0ZU9iamVjdCgKLSsgICAgRmlsZVdy aXRlckludGVyZmFjZSogZmlsZV93cml0ZXIpIHsKLSsgIERDSEVDS19FUShzdGF0ZSgpLCBrU3Rh dGVXcml0YWJsZSk7Ci0rICByZXR1cm4gZmlsZV93cml0ZXItPldyaXRlKCZjb250ZXh0Xywgc2l6 ZW9mKGNvbnRleHRfKSk7Ci0rfQotKwotK3NpemVfdCBNaW5pZHVtcENvbnRleHRQUEM2NFdyaXRl cjo6Q29udGV4dFNpemUoKSBjb25zdCB7Ci0rICBEQ0hFQ0tfR0Uoc3RhdGUoKSwga1N0YXRlRnJv emVuKTsKLSsgIHJldHVybiBzaXplb2YoY29udGV4dF8pOwotK30KLSsKLSB9ICAvLyBuYW1lc3Bh Y2UgY3Jhc2hwYWQKLWRpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9t aW5pZHVtcC9taW5pZHVtcF9jb250ZXh0X3dyaXRlci5oIGIvdGhpcmRfcGFydHkvY3Jhc2hwYWQv Y3Jhc2hwYWQvbWluaWR1bXAvbWluaWR1bXBfY29udGV4dF93cml0ZXIuaAotaW5kZXggZDRhYjkz NmVlLi4xZDIyZmM1OWMgMTAwNjQ0Ci0tLS0gYS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBh ZC9taW5pZHVtcC9taW5pZHVtcF9jb250ZXh0X3dyaXRlci5oCi0rKysgYi90aGlyZF9wYXJ0eS9j cmFzaHBhZC9jcmFzaHBhZC9taW5pZHVtcC9taW5pZHVtcF9jb250ZXh0X3dyaXRlci5oCi1AQCAt MzE1LDYgKzMxNSw0MyBAQCBjbGFzcyBNaW5pZHVtcENvbnRleHRNSVBTNjRXcml0ZXIgZmluYWwg OiBwdWJsaWMgTWluaWR1bXBDb250ZXh0V3JpdGVyIHsKLSAgIE1pbmlkdW1wQ29udGV4dE1JUFM2 NCBjb250ZXh0XzsKLSB9OwotIAotK2NsYXNzIE1pbmlkdW1wQ29udGV4dFBQQzY0V3JpdGVyIGZp bmFsIDogcHVibGljIE1pbmlkdW1wQ29udGV4dFdyaXRlciB7Ci0rIHB1YmxpYzoKLSsgIE1pbmlk dW1wQ29udGV4dFBQQzY0V3JpdGVyKCk7Ci0rICB+TWluaWR1bXBDb250ZXh0UFBDNjRXcml0ZXIo KSBvdmVycmlkZTsKLSsKLSsgIC8vISBcYnJpZWYgSW5pdGFsaXplcyB0aGUgTWluaWR1bXBDb250 ZXh0UFBDNjQgYmFzZWQgb24gXGEgY29udGV4dF9zbmFwc2hvdC4KLSsgIC8vIQotKyAgLy8hIFxw YXJhbVtpbl0gY29udGV4dF9zbmFwc2hvdCBUaGUgY29udGV4dCBzbmFwc2hvdCB0byB1c2UgYXMg c291cmNlIGRhdGEuCi0rICAvLyEKLSsgIC8vISBcbm90ZSBWYWxpZCBpbiAja1N0YXRlTXV0YWJs ZS4gTm8gbXV0YXRpb24gb2YgY29udGV4dCgpIG1heSBiZSBkb25lIGJlZm9yZQotKyAgLy8hICAg ICBjYWxsaW5nIHRoaXMgbWV0aG9kLCBhbmQgaXQgaXMgbm90IG5vcm1hbGx5IG5lY2Vzc2FyeSB0 byBhbHRlcgotKyAgLy8hICAgICBjb250ZXh0KCkgYWZ0ZXIgY2FsbGluZyB0aGlzIG1ldGhvZC4K LSsgIHZvaWQgSW5pdGFsaXplRnJvbVNuYXBzaG90KGNvbnN0IENQVUNvbnRleHRQUEM2NCogY29u dGV4dF9zbmFwc2hvdCk7Ci0rCi0rICAvLyEgXGJyaWVmIFJldHVybnMgYSBwb2ludGVyIHRvIHRo ZSBjb250ZXh0IHN0cnVjdHVyZSB0aGF0IHRoaXMgb2JqZWN0IHdpbGwKLSsgIC8vISAgICAgd3Jp dGUuCi0rICAvLyEKLSsgIC8vISBcYXR0ZW50aW9uIFRoaXMgcmV0dXJucyBhIG5vbi1gY29uc3Rg IHBvaW50ZXIgdG8gdGhpcyBvYmplY3TigJlzIHByaXZhdGUKLSsgIC8vISAgICAgZGF0YSBzbyB0 aGF0IGEgY2FsbGVyIGNhbiBwb3B1bGF0ZSB0aGUgY29udGV4dCBzdHJ1Y3R1cmUgZGlyZWN0bHku Ci0rICAvLyEgICAgIFRoaXMgaXMgZG9uZSBiZWNhdXNlIHByb3ZpZGluZyBzZXR0ZXIgaW50ZXJm YWNlcyB0byBlYWNoIGZpZWxkIGluIHRoZQotKyAgLy8hICAgICBjb250ZXh0IHN0cnVjdHVyZSB3 b3VsZCBiZSB1bndpZWxkeSBhbmQgY3VtYmVyc29tZS4gQ2FyZSBtdXN0IGJlIHRha2VuCi0rICAv LyEgICAgIHRvIHBvcHVsYXRlIHRoZSBjb250ZXh0IHN0cnVjdHVyZSBjb3JyZWN0bHkuIFRoZSBj b250ZXh0IHN0cnVjdHVyZQotKyAgLy8hICAgICBtdXN0IG9ubHkgYmUgbW9kaWZpZWQgd2hpbGUg dGhpcyBvYmplY3QgaXMgaW4gdGhlICNrU3RhdGVNdXRhYmxlCi0rICAvLyEgICAgIHN0YXRlLgot KyAgTWluaWR1bXBDb250ZXh0UFBDNjQqIGNvbnRleHQoKSB7IHJldHVybiAmY29udGV4dF87IH0K LSsKLSsgcHJvdGVjdGVkOgotKyAgLy8gTWluaWR1bXBXcml0YWJsZToKLSsgIGJvb2wgV3JpdGVP YmplY3QoRmlsZVdyaXRlckludGVyZmFjZSogZmlsZV93cml0ZXIpIG92ZXJyaWRlOwotKwotKyAg Ly8gTWluaWR1bXBDb250ZXh0V3JpdGVyOgotKyAgc2l6ZV90IENvbnRleHRTaXplKCkgY29uc3Qg b3ZlcnJpZGU7Ci0rCi0rIHByaXZhdGU6Ci0rICBNaW5pZHVtcENvbnRleHRQUEM2NCBjb250ZXh0 XzsKLSt9OwotKwotIH0gIC8vIG5hbWVzcGFjZSBjcmFzaHBhZAotIAotICNlbmRpZiAgLy8gQ1JB U0hQQURfTUlOSURVTVBfTUlOSURVTVBfQ09OVEVYVF9XUklURVJfSF8KLWRpZmYgLS1naXQgYS90 aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9taW5pZHVtcC9taW5pZHVtcF9jb250ZXh0X3dy aXRlcl90ZXN0LmNjIGIvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvbWluaWR1bXAvbWlu aWR1bXBfY29udGV4dF93cml0ZXJfdGVzdC5jYwotaW5kZXggMzIxNmE5MDZiLi5hOWZjYmU5ZDgg MTAwNjQ0Ci0tLS0gYS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9taW5pZHVtcC9taW5p ZHVtcF9jb250ZXh0X3dyaXRlcl90ZXN0LmNjCi0rKysgYi90aGlyZF9wYXJ0eS9jcmFzaHBhZC9j cmFzaHBhZC9taW5pZHVtcC9taW5pZHVtcF9jb250ZXh0X3dyaXRlcl90ZXN0LmNjCi1AQCAtMjEz LDYgKzIxMywyMSBAQCBURVNUKE1pbmlkdW1wQ29udGV4dFdyaXRlciwgTUlQUzY0X0Zyb21TbmFw c2hvdCkgewotICAgICAgIGNvbnRleHQsIEV4cGVjdE1pbmlkdW1wQ29udGV4dE1JUFM2NCwga1Nl ZWQpOwotIH0KLSAKLStURVNUKE1pbmlkdW1wQ29udGV4dFdyaXRlciwgUFBDNjRfWmVyb3MpIHsK LSsgIEVtcHR5Q29udGV4dFRlc3Q8TWluaWR1bXBDb250ZXh0UFBDNjRXcml0ZXIsIE1pbmlkdW1w Q29udGV4dFBQQzY0PigKLSsgICAgRXhwZWN0TWluaWR1bXBDb250ZXh0UFBDNjQpOwotK30KLSsK LStURVNUKE1pbmlkdW1wQ29udGV4dFdyaXRlciwgUFBDNjRfRnJvbVNuYXBzaG90KSB7Ci0rICBj b25zdGV4cHIgdWludDMyX3Qga1NlZWQgPSA2NDsKLSsgIENQVUNvbnRleHRQUEM2NCBjb250ZXh0 X3BwYzY0OwotKyAgQ1BVQ29udGV4dCBjb250ZXh0OwotKyAgY29udGV4dC5wcGM2NCA9ICZjb250 ZXh0X3BwYzY0OwotKyAgSW5pdGlhbGl6ZUNQVUNvbnRleHRQUEM2NCgmY29udGV4dCwga1NlZWQp OwotKyAgRnJvbVNuYXBzaG90VGVzdDxNaW5pZHVtcENvbnRleHRQUEM2NFdyaXRlciwgTWluaWR1 bXBDb250ZXh0UFBDNjQ+KAotKyAgICAgIGNvbnRleHQsIEV4cGVjdE1pbmlkdW1wQ29udGV4dFBQ QzY0LCBrU2VlZCk7Ci0rfQotKwotIH0gIC8vIG5hbWVzcGFjZQotIH0gIC8vIG5hbWVzcGFjZSB0 ZXN0Ci0gfSAgLy8gbmFtZXNwYWNlIGNyYXNocGFkCi1kaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkv Y3Jhc2hwYWQvY3Jhc2hwYWQvbWluaWR1bXAvbWluaWR1bXBfbWlzY19pbmZvX3dyaXRlci5jYyBi L3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL21pbmlkdW1wL21pbmlkdW1wX21pc2NfaW5m b193cml0ZXIuY2MKLWluZGV4IDA5NzRlM2RkZi4uYjcxZWM1ODgwIDEwMDY0NAotLS0tIGEvdGhp cmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvbWluaWR1bXAvbWluaWR1bXBfbWlzY19pbmZvX3dy aXRlci5jYwotKysrIGIvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvbWluaWR1bXAvbWlu aWR1bXBfbWlzY19pbmZvX3dyaXRlci5jYwotQEAgLTEzNSw2ICsxMzUsOCBAQCBzdGQ6OnN0cmlu ZyBNaW5pZHVtcE1pc2NJbmZvRGVidWdCdWlsZFN0cmluZygpIHsKLSAgIHN0YXRpYyBjb25zdGV4 cHIgY2hhciBrQ1BVW10gPSAibWlwcyI7Ci0gI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9NSVBTNjRF TCkKLSAgIHN0YXRpYyBjb25zdGV4cHIgY2hhciBrQ1BVW10gPSAibWlwczY0IjsKLSsjZWxpZiBk ZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0KQotKyAgc3RhdGljIGNvbnN0ZXhwciBjaGFyIGtDUFVbXSA9 ICJwcGM2NCI7Ci0gI2Vsc2UKLSAjZXJyb3IgZGVmaW5lIGtDUFUgZm9yIHRoaXMgQ1BVCi0gI2Vu ZGlmCi1kaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3Qv Y2FwdHVyZV9tZW1vcnkuY2MgYi90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hv dC9jYXB0dXJlX21lbW9yeS5jYwotaW5kZXggN2ExYjI3NjNjLi5iZWRhOGRhOWUgMTAwNjQ0Ci0t LS0gYS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9jYXB0dXJlX21lbW9y eS5jYwotKysrIGIvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvY2FwdHVy ZV9tZW1vcnkuY2MKLUBAIC0xMTIsNiArMTEyLDExIEBAIHZvaWQgQ2FwdHVyZU1lbW9yeTo6UG9p bnRlZFRvQnlDb250ZXh0KGNvbnN0IENQVUNvbnRleHQmIGNvbnRleHQsCi0gICBmb3IgKHNpemVf dCBpID0gMDsgaSA8IHN0ZDo6c2l6ZShjb250ZXh0Lm1pcHNlbC0+cmVncyk7ICsraSkgewotICAg ICBNYXliZUNhcHR1cmVNZW1vcnlBcm91bmQoZGVsZWdhdGUsIGNvbnRleHQubWlwc2VsLT5yZWdz W2ldKTsKLSAgIH0KLSsjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKLSsgIE1h eWJlQ2FwdHVyZU1lbW9yeUFyb3VuZChkZWxlZ2F0ZSwgY29udGV4dC5wcGM2NC0+bmlwKTsKLSsg IGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc3RkOjpzaXplKGNvbnRleHQucHBjNjQtPnJlZ3MpOyAr K2kpIHsKLSsgICAgTWF5YmVDYXB0dXJlTWVtb3J5QXJvdW5kKGRlbGVnYXRlLCBjb250ZXh0LnBw YzY0LT5yZWdzW2ldKTsKLSsgIH0KLSAjZWxzZQotICNlcnJvciBQb3J0LgotICNlbmRpZgotZGlm ZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2NwdV9hcmNo aXRlY3R1cmUuaCBiL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2NwdV9h cmNoaXRlY3R1cmUuaAotaW5kZXggODExYTcyMDk1Li5mNGY4Mzk4MWQgMTAwNjQ0Ci0tLS0gYS90 aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9jcHVfYXJjaGl0ZWN0dXJlLmgK LSsrKyBiL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2NwdV9hcmNoaXRl Y3R1cmUuaAotQEAgLTQzLDcgKzQzLDEwIEBAIGVudW0gQ1BVQXJjaGl0ZWN0dXJlIHsKLSAgIGtD UFVBcmNoaXRlY3R1cmVNSVBTRUwsCi0gCi0gICAvLyEgXGJyaWVmIDY0LWJpdCBNSVBTRUwuCi0t ICBrQ1BVQXJjaGl0ZWN0dXJlTUlQUzY0RUwKLSsgIGtDUFVBcmNoaXRlY3R1cmVNSVBTNjRFTCwK LSsKLSsgIC8vISBcYnJpZWYgNjQtYml0IFBQQzY0LgotKyAga0NQVUFyY2hpdGVjdHVyZVBQQzY0 Ci0gfTsKLSAKLSB9ICAvLyBuYW1lc3BhY2UgY3Jhc2hwYWQKLWRpZmYgLS1naXQgYS90aGlyZF9w YXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9jcHVfY29udGV4dC5jYyBiL3RoaXJkX3Bh cnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2NwdV9jb250ZXh0LmNjCi1pbmRleCBjNzVi NTU1NWUuLmFlYWRlNTc3YSAxMDA2NDQKLS0tLSBhL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNo cGFkL3NuYXBzaG90L2NwdV9jb250ZXh0LmNjCi0rKysgYi90aGlyZF9wYXJ0eS9jcmFzaHBhZC9j cmFzaHBhZC9zbmFwc2hvdC9jcHVfY29udGV4dC5jYwotQEAgLTE2OSw2ICsxNjksOCBAQCB1aW50 NjRfdCBDUFVDb250ZXh0OjpJbnN0cnVjdGlvblBvaW50ZXIoKSBjb25zdCB7Ci0gICAgICAgcmV0 dXJuIGFybS0+cGM7Ci0gICAgIGNhc2Uga0NQVUFyY2hpdGVjdHVyZUFSTTY0OgotICAgICAgIHJl dHVybiBhcm02NC0+cGM7Ci0rICAgIGNhc2Uga0NQVUFyY2hpdGVjdHVyZVBQQzY0OgotKyAgICAg IHJldHVybiBwcGM2NC0+bmlwOwotICAgICBkZWZhdWx0OgotICAgICAgIE5PVFJFQUNIRUQoKTsK LSAgICAgICByZXR1cm4gfjB1bGw7Ci1AQCAtMTg1LDYgKzE4Nyw4IEBAIHVpbnQ2NF90IENQVUNv bnRleHQ6OlN0YWNrUG9pbnRlcigpIGNvbnN0IHsKLSAgICAgICByZXR1cm4gYXJtLT5zcDsKLSAg ICAgY2FzZSBrQ1BVQXJjaGl0ZWN0dXJlQVJNNjQ6Ci0gICAgICAgcmV0dXJuIGFybTY0LT5zcDsK LSsgICAgY2FzZSBrQ1BVQXJjaGl0ZWN0dXJlUFBDNjQ6Ci0rICAgICAgcmV0dXJuIHBwYzY0LT5y ZWdzWzFdOwotICAgICBkZWZhdWx0OgotICAgICAgIE5PVFJFQUNIRUQoKTsKLSAgICAgICByZXR1 cm4gfjB1bGw7Ci1AQCAtMTk2LDYgKzIwMCw3IEBAIGJvb2wgQ1BVQ29udGV4dDo6SXM2NEJpdCgp IGNvbnN0IHsKLSAgICAgY2FzZSBrQ1BVQXJjaGl0ZWN0dXJlWDg2XzY0OgotICAgICBjYXNlIGtD UFVBcmNoaXRlY3R1cmVBUk02NDoKLSAgICAgY2FzZSBrQ1BVQXJjaGl0ZWN0dXJlTUlQUzY0RUw6 Ci0rICAgIGNhc2Uga0NQVUFyY2hpdGVjdHVyZVBQQzY0OgotICAgICAgIHJldHVybiB0cnVlOwot ICAgICBjYXNlIGtDUFVBcmNoaXRlY3R1cmVYODY6Ci0gICAgIGNhc2Uga0NQVUFyY2hpdGVjdHVy ZUFSTToKLWRpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hv dC9jcHVfY29udGV4dC5oIGIvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3Qv Y3B1X2NvbnRleHQuaAotaW5kZXggZmIyM2M0Njc5Li5lZWJlZGU2M2MgMTAwNjQ0Ci0tLS0gYS90 aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9jcHVfY29udGV4dC5oCi0rKysg Yi90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9jcHVfY29udGV4dC5oCi1A QCAtMzUyLDYgKzM1MiwyNCBAQCBzdHJ1Y3QgQ1BVQ29udGV4dE1JUFM2NCB7Ci0gICB1aW50NjRf dCBmaXI7Ci0gfTsKLSAKLSsvLyEgXGJyaWVmIEEgY29udGV4dCBzdHJ1Y3R1cmUgY2Fycnlpbmcg UFBDNjQgQ1BVIHN0YXRlLgotK3N0cnVjdCBDUFVDb250ZXh0UFBDNjQgewotKyAgdWludDY0X3Qg bmlwOwotKyAgdWludDY0X3QgbXNyOwotKyAgdWludDY0X3QgcmVnc1szMl07Ci0rICB1aW50NjRf dCBjY3I7Ci0rICB1aW50NjRfdCB4ZXI7Ci0rICB1aW50NjRfdCBsbms7Ci0rICB1aW50NjRfdCBj dHI7Ci0rICBkb3VibGUgZnByZWdzWzMyXTsKLSsgIGRvdWJsZSBmcHNjcjsKLSsgIHN0cnVjdCB7 Ci0rICAgIHVpbnQxMjhfc3RydWN0IHNhdmVfdnJbMzJdOwotKyAgICB1aW50MTI4X3N0cnVjdCBz YXZlX3ZzY3I7Ci0rICAgIHVpbnQzMl90IHNhdmVfdnJzYXZlOwotKyAgfSB2cmVnczsKLSt9Owot KwotIC8vISBcYnJpZWYgQSBjb250ZXh0IHN0cnVjdHVyZSBjYXBhYmxlIG9mIGNhcnJ5aW5nIHRo ZSBjb250ZXh0IG9mIGFueSBzdXBwb3J0ZWQKLSAvLyEgICAgIENQVSBhcmNoaXRlY3R1cmUuCi0g c3RydWN0IENQVUNvbnRleHQgewotQEAgLTM4Miw2ICs0MDAsNyBAQCBzdHJ1Y3QgQ1BVQ29udGV4 dCB7Ci0gICAgIENQVUNvbnRleHRBUk02NCogYXJtNjQ7Ci0gICAgIENQVUNvbnRleHRNSVBTKiBt aXBzZWw7Ci0gICAgIENQVUNvbnRleHRNSVBTNjQqIG1pcHM2NDsKLSsgICAgQ1BVQ29udGV4dFBQ QzY0KiBwcGM2NDsKLSAgIH07Ci0gfTsKLSAKLWRpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9jcmFz aHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9jcHVfY29udGV4dF9saW51eC5oIGIvdGhpcmRf cGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvY3B1X2NvbnRleHRfbGludXgu aAotaW5kZXggOWY0NmE0ODk3Li5hYTY3N2M0ZWIgMTAwNjQ0Ci0tLS0gYS90aGlyZF9wYXJ0eS9j cmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9jcHVfY29udGV4dF9saW51eC5oCi0rKysg Yi90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9jcHVfY29udGV4 dF9saW51eC5oCi1AQCAtMTUsNiArMTUsNyBAQAotICNpZm5kZWYgQ1JBU0hQQURfU05BUFNIT1Rf TElOVVhfQ1BVX0NPTlRFWFRfTElOVVhfSF8KLSAjZGVmaW5lIENSQVNIUEFEX1NOQVBTSE9UX0xJ TlVYX0NQVV9DT05URVhUX0xJTlVYX0hfCi0gCi0rI2luY2x1ZGUgPGNzdHJpbmc+Ci0gI2luY2x1 ZGUgImJ1aWxkL2J1aWxkX2NvbmZpZy5oIgotICNpbmNsdWRlICJzbmFwc2hvdC9jcHVfY29udGV4 dC5oIgotICNpbmNsdWRlICJzbmFwc2hvdC9saW51eC9zaWduYWxfY29udGV4dC5oIgotQEAgLTE3 NCw2ICsxNzUsNzggQEAgdm9pZCBJbml0aWFsaXplQ1BVQ29udGV4dE1JUFMoCi0gCi0gI2VuZGlm ICAvLyBBUkNIX0NQVV9NSVBTX0ZBTUlMWSB8fCBET1hZR0VOCi0gCi0rI2lmIGRlZmluZWQoQVJD SF9DUFVfUFBDNjRfRkFNSUxZKSB8fCBET1hZR0VOCi0rCi0rLy8hIFxicmllZiBJbml0YWxpemVz IGEgQ1BVQ29udGV4dFBQQzY0IHN0cnVjdHVyZSBmcm9tIG5hdGl2ZSBjb250ZXh0Ci0rLy8hICAg ICBzdHJ1Y3R1cmVzIG9uIExpbnV4LgotKy8vIQotKy8vISBccGFyYW1baW5dIHRocmVhZF9jb250 ZXh0IFRoZSBuYXRpdmUgdGhyZWFkIGNvbnRleHQuCi0rLy8hIFxwYXJhbVtpbl0gZmxvYXRfY29u dGV4dCBUaGUgbmF0aXZlIGZsb2F0IGNvbnRleHQuCi0rLy8hIFxwYXJhbVtpbl0gdmVjdG9yX2Nv bnRleHQgVGhlIG5hdGl2ZSB2ZWN0b3IgY29udGV4dC4KLSsvLyEgXHBhcmFtW291dF0gY29udGV4 dCBUaGUgQ1BVQ29udGV4dFBQQzY0IHN0cnVjdHVyZSB0byBpbml0YWxpemUuCi0rdGVtcGxhdGUg PHR5cGVuYW1lIFRyYWl0cz4KLSt2b2lkIEluaXRpYWxpemVDUFVDb250ZXh0UFBDNjQoCi0rICAg IGNvbnN0IFRocmVhZENvbnRleHQ6OnQ2NF90JiB0aHJlYWRfY29udGV4dCwKLSsgICAgY29uc3Qg RmxvYXRDb250ZXh0OjpmNjRfdCYgZmxvYXRfY29udGV4dCwKLSsgICAgY29uc3QgVmVjdG9yQ29u dGV4dDo6djY0X3QmIHZlY3Rvcl9jb250ZXh0LAotKyAgICB0eXBlbmFtZSBUcmFpdHM6OkNQVUNv bnRleHQqIGNvbnRleHQpIHsKLSsKLSsgIG1lbWNweShjb250ZXh0LT5yZWdzLCB0aHJlYWRfY29u dGV4dC5ncHIsIHNpemVvZihjb250ZXh0LT5yZWdzKSk7Ci0rICBjb250ZXh0LT5uaXAgPSB0aHJl YWRfY29udGV4dC5uaXA7Ci0rICBjb250ZXh0LT5tc3IgPSB0aHJlYWRfY29udGV4dC5tc3I7Ci0r ICBjb250ZXh0LT5jY3IgPSB0aHJlYWRfY29udGV4dC5jY3I7Ci0rICBjb250ZXh0LT54ZXIgPSB0 aHJlYWRfY29udGV4dC54ZXI7Ci0rICBjb250ZXh0LT5sbmsgPSB0aHJlYWRfY29udGV4dC5sbms7 Ci0rICBjb250ZXh0LT5jdHIgPSB0aHJlYWRfY29udGV4dC5jdHI7Ci0rCi0rICBtZW1jcHkoY29u dGV4dC0+ZnByZWdzLCBmbG9hdF9jb250ZXh0LmZwcmVncywgc2l6ZW9mKGNvbnRleHQtPmZwcmVn cykpOwotKyAgY29udGV4dC0+ZnBzY3IgPSBmbG9hdF9jb250ZXh0LmZwc2NyOwotKwotKyAgZm9y ICh1aW50OF90IGkgPSAwOyBpIDwgMzI7IGkrKykgewotKyAgICBjb250ZXh0LT52cmVncy5zYXZl X3ZyW2ldID0gewotKyAgICAgICgoKHVpbnQ2NF90KXZlY3Rvcl9jb250ZXh0LnZycmVnc1tpXVsw XSkgPDwgMzIpIHwKLSsgICAgICAgIHZlY3Rvcl9jb250ZXh0LnZycmVnc1tpXVsxXSwKLSsgICAg ICAoKCh1aW50NjRfdCl2ZWN0b3JfY29udGV4dC52cnJlZ3NbaV1bMl0pIDw8IDMyKSB8Ci0rICAg ICAgICB2ZWN0b3JfY29udGV4dC52cnJlZ3NbaV1bM10KLSsgICAgfTsKLSsgIH0KLSsgIGNvbnRl eHQtPnZyZWdzLnNhdmVfdnJzYXZlID0gdmVjdG9yX2NvbnRleHQudnJzYXZlOwotKyAgY29udGV4 dC0+dnJlZ3Muc2F2ZV92c2NyID0gezAsICh1aW50NjRfdCl2ZWN0b3JfY29udGV4dC52c2NyLnZz Y3Jfd29yZH07Ci0rfQotKwotK3RlbXBsYXRlIDx0eXBlbmFtZSBUcmFpdHM+Ci0rdm9pZCBJbml0 aWFsaXplQ1BVQ29udGV4dFBQQzY0KAotKyAgICBjb25zdCBTaWduYWxUaHJlYWRDb250ZXh0NjQg JnRocmVhZF9jb250ZXh0LAotKyAgICBjb25zdCBTaWduYWxGbG9hdENvbnRleHQ2NCAmZmxvYXRf Y29udGV4dCwKLSsgICAgY29uc3QgU2lnbmFsVmVjdG9yQ29udGV4dDY0ICZ2ZWN0b3JfY29udGV4 dCwKLSsgICAgdHlwZW5hbWUgVHJhaXRzOjpDUFVDb250ZXh0KiBjb250ZXh0KSB7Ci0rCi0rICBt ZW1jcHkoY29udGV4dC0+cmVncywgdGhyZWFkX2NvbnRleHQucmVncywgc2l6ZW9mKGNvbnRleHQt PnJlZ3MpKTsKLSsgIGNvbnRleHQtPm5pcCA9IHRocmVhZF9jb250ZXh0Lm5pcDsKLSsgIGNvbnRl eHQtPm1zciA9IHRocmVhZF9jb250ZXh0Lm1zcjsKLSsgIGNvbnRleHQtPmNjciA9IHRocmVhZF9j b250ZXh0LmNjcjsKLSsgIGNvbnRleHQtPnhlciA9IHRocmVhZF9jb250ZXh0LnhlcjsKLSsgIGNv bnRleHQtPmxuayA9IHRocmVhZF9jb250ZXh0LmxuazsKLSsgIGNvbnRleHQtPmN0ciA9IHRocmVh ZF9jb250ZXh0LmN0cjsKLSsKLSsgIG1lbWNweShjb250ZXh0LT5mcHJlZ3MsIGZsb2F0X2NvbnRl eHQucmVncywgc2l6ZW9mKGNvbnRleHQtPmZwcmVncykpOwotKyAgY29udGV4dC0+ZnBzY3IgPSBm bG9hdF9jb250ZXh0LmZwc2NyOwotKwotKyAgZm9yICh1aW50OF90IGkgPSAwOyBpIDwgMzI7IGkr KykgewotKyAgICBjb250ZXh0LT52cmVncy5zYXZlX3ZyW2ldID0gewotKyAgICAgICgoKHVpbnQ2 NF90KXZlY3Rvcl9jb250ZXh0LnZycmVnc1tpXVswXSkgPDwgMzIpIHwKLSsgICAgICAgIHZlY3Rv cl9jb250ZXh0LnZycmVnc1tpXVsxXSwKLSsgICAgICAoKCh1aW50NjRfdCl2ZWN0b3JfY29udGV4 dC52cnJlZ3NbaV1bMl0pIDw8IDMyKSB8Ci0rICAgICAgICB2ZWN0b3JfY29udGV4dC52cnJlZ3Nb aV1bM10KLSsgICAgfTsKLSsgIH0KLSsgIGNvbnRleHQtPnZyZWdzLnNhdmVfdnJzYXZlID0gdmVj dG9yX2NvbnRleHQudnJzYXZlOwotKyAgY29udGV4dC0+dnJlZ3Muc2F2ZV92c2NyID0gezAsICh1 aW50NjRfdCl2ZWN0b3JfY29udGV4dC52c2NyLnZzY3Jfd29yZH07Ci0rfQotKwotKwotKyNlbmRp ZgotKwotIH0gIC8vIG5hbWVzcGFjZSBpbnRlcm5hbAotIH0gIC8vIG5hbWVzcGFjZSBjcmFzaHBh ZAotIAotZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90 L2xpbnV4L2RlYnVnX3JlbmRlenZvdXNfdGVzdC5jYyBiL3RoaXJkX3BhcnR5L2NyYXNocGFkL2Ny YXNocGFkL3NuYXBzaG90L2xpbnV4L2RlYnVnX3JlbmRlenZvdXNfdGVzdC5jYwotaW5kZXggZDMy YmQxOTM3Li4yZGQ1MzhjMmIgMTAwNjQ0Ci0tLS0gYS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFz aHBhZC9zbmFwc2hvdC9saW51eC9kZWJ1Z19yZW5kZXp2b3VzX3Rlc3QuY2MKLSsrKyBiL3RoaXJk X3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L2RlYnVnX3JlbmRlenZvdXNf dGVzdC5jYwotQEAgLTE5Miw2ICsxOTIsOCBAQCB2b2lkIFRlc3RBZ2FpbnN0VGFyZ2V0KFB0cmFj ZUNvbm5lY3Rpb24qIGNvbm5lY3Rpb24pIHsKLSAgICAgICAgICAgICAgIGRldmljZSA9PSAwICYm IGlub2RlID09IDAgJiYgbWFwcGluZ19uYW1lID09ICJbdmRzb10iOwotICNpZiBkZWZpbmVkKEFS Q0hfQ1BVX1g4NikKLSAgICAgICAgICAgc3RhdGljIGNvbnN0ZXhwciBjaGFyIGtQcmVmaXhbXSA9 ICJsaW51eC1nYXRlLnNvLiI7Ci0rI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NCkKLSsgICAg ICAgICAgc3RhdGljIGNvbnN0ZXhwciBjaGFyIGtQcmVmaXhbXSA9ICJsaW51eC12ZHNvNjQuc28u IjsKLSAjZWxzZQotICAgICAgICAgICBzdGF0aWMgY29uc3RleHByIGNoYXIga1ByZWZpeFtdID0g ImxpbnV4LXZkc28uc28uIjsKLSAjZW5kaWYKLWRpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9jcmFz aHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9leGNlcHRpb25fc25hcHNob3RfbGludXguY2Mg Yi90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9leGNlcHRpb25f c25hcHNob3RfbGludXguY2MKLWluZGV4IGNkNDBiM2IxMi4uNmJjZjIzYjZmIDEwMDY0NAotLS0t IGEvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvZXhjZXB0aW9u X3NuYXBzaG90X2xpbnV4LmNjCi0rKysgYi90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9z bmFwc2hvdC9saW51eC9leGNlcHRpb25fc25hcHNob3RfbGludXguY2MKLUBAIC0zMjMsNiArMzIz LDY5IEBAIGJvb2wgRXhjZXB0aW9uU25hcHNob3RMaW51eDo6UmVhZENvbnRleHQ8Q29udGV4dFRy YWl0czY0PigKLSAgICAgICByZWFkZXIsIGNvbnRleHRfYWRkcmVzcywgY29udGV4dF8ubWlwczY0 KTsKLSB9Ci0gCi0rI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCi0rCi0rdGVt cGxhdGUgPHR5cGVuYW1lIFRyYWl0cz4KLStzdGF0aWMgYm9vbCBSZWFkQ29udGV4dChQcm9jZXNz UmVhZGVyTGludXgqIHJlYWRlciwKLSsgICAgICAgICAgICAgICAgICAgICAgICBMaW51eFZNQWRk cmVzcyBjb250ZXh0X2FkZHJlc3MsCi0rICAgICAgICAgICAgICAgICAgICAgICAgdHlwZW5hbWUg VHJhaXRzOjpDUFVDb250ZXh0KiBkZXN0X2NvbnRleHQpIHsKLSsgIGNvbnN0IFByb2Nlc3NNZW1v cnkqIG1lbW9yeSA9IHJlYWRlci0+TWVtb3J5KCk7Ci0rCi0rICBMaW51eFZNQWRkcmVzcyBncF9y ZWdzX2FkZHJlc3MgPSBjb250ZXh0X2FkZHJlc3MgKwotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgb2Zmc2V0b2YoVUNvbnRleHQsIG1jb250ZXh0KSArCi0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRvZih0eXBlbmFtZSBUcmFpdHM6Ok1Db250ZXh0 LCBncF9yZWdzKTsKLSsKLSsgIHR5cGVuYW1lIFRyYWl0czo6U2lnbmFsVGhyZWFkQ29udGV4dCB0 aHJlYWRfY29udGV4dDsKLSsgIGlmICghbWVtb3J5LT5SZWFkKGdwX3JlZ3NfYWRkcmVzcywgc2l6 ZW9mKHRocmVhZF9jb250ZXh0KSwgJnRocmVhZF9jb250ZXh0KSkgewotKyAgICBMT0coRVJST1Ip IDw8ICJDb3VsZG4ndCByZWFkIGdwX3JlZ3MhIjsKLSsgICAgcmV0dXJuIGZhbHNlOwotKyAgfQot KwotKyAgTGludXhWTUFkZHJlc3MgZnBfcmVnc19hZGRyZXNzID0gY29udGV4dF9hZGRyZXNzICsK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldG9mKFVDb250ZXh0LCBt Y29udGV4dCkgKwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0b2Yo dHlwZW5hbWUgVHJhaXRzOjpNQ29udGV4dCwgZnBfcmVncyk7Ci0rCi0rICB0eXBlbmFtZSBUcmFp dHM6OlNpZ25hbEZsb2F0Q29udGV4dCBmcF9jb250ZXh0OwotKyAgaWYgKCFtZW1vcnktPlJlYWQo ZnBfcmVnc19hZGRyZXNzLCBzaXplb2YoZnBfY29udGV4dCksICZmcF9jb250ZXh0KSkgewotKyAg ICBMT0coRVJST1IpIDw8ICJDb3VsZG4ndCByZWFkIGZwX3JlZ3MhIjsKLSsgICAgcmV0dXJuIGZh bHNlOwotKyAgfQotKwotKyAgTGludXhWTUFkZHJlc3Mgdl9yZWdzX3B0cl9hZGRyZXNzID0gY29u dGV4dF9hZGRyZXNzICsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0 b2YoVUNvbnRleHQsIG1jb250ZXh0KSArCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIG9mZnNldG9mKHR5cGVuYW1lIFRyYWl0czo6TUNvbnRleHQsIHZteF9yZXNlcnZlKSArIDg7 Ci0rCi0rICB0eXBlbmFtZSBUcmFpdHM6OlNpZ25hbFZlY3RvckNvbnRleHQgdl9jb250ZXh0Owot KyAgaWYgKCFtZW1vcnktPlJlYWQodl9yZWdzX3B0cl9hZGRyZXNzLCBzaXplb2Yodl9jb250ZXh0 KSwgJnZfY29udGV4dCkpIHsKLSsgICAgTE9HKEVSUk9SKSA8PCAiQ291bGRuJ3QgcmVhZCB2X3Jl Z3MhIjsKLSsgICAgcmV0dXJuIGZhbHNlOwotKyAgfQotKwotKyAgSW5pdGlhbGl6ZUNQVUNvbnRl eHRQUEM2NDxDb250ZXh0VHJhaXRzNjQ+KHRocmVhZF9jb250ZXh0LCBmcF9jb250ZXh0LAotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICB2X2NvbnRleHQsIGRlc3RfY29udGV4dCk7Ci0rCi0r ICByZXR1cm4gdHJ1ZTsKLSt9Ci0rCi0rdGVtcGxhdGU8PgotK2Jvb2wgRXhjZXB0aW9uU25hcHNo b3RMaW51eDo6UmVhZENvbnRleHQ8Q29udGV4dFRyYWl0czY0PigKLSsgICAgUHJvY2Vzc1JlYWRl ckxpbnV4KiByZWFkZXIsCi0rICAgIExpbnV4Vk1BZGRyZXNzIGNvbnRleHRfYWRkcmVzcykgewot KyAgY29udGV4dF8uYXJjaGl0ZWN0dXJlID0ga0NQVUFyY2hpdGVjdHVyZVBQQzY0OwotKyAgY29u dGV4dF8ucHBjNjQgPSAmY29udGV4dF91bmlvbl8ucHBjNjQ7Ci0rCi0rICByZXR1cm4gaW50ZXJu YWw6OlJlYWRDb250ZXh0PENvbnRleHRUcmFpdHM2ND4oCi0rICAgICAgcmVhZGVyLCBjb250ZXh0 X2FkZHJlc3MsIGNvbnRleHRfLnBwYzY0KTsKLSt9Ci0rCi0rdGVtcGxhdGU8PgotK2Jvb2wgRXhj ZXB0aW9uU25hcHNob3RMaW51eDo6UmVhZENvbnRleHQ8Q29udGV4dFRyYWl0czMyPigKLSsgICAg UHJvY2Vzc1JlYWRlckxpbnV4KiByZWFkZXIsCi0rICAgIExpbnV4Vk1BZGRyZXNzIGNvbnRleHRf YWRkcmVzcykgewotKyAgLy8gUFBDNjQgaXMgNjQtYml0Ci0rICByZXR1cm4gZmFsc2U7Ci0rfQot KwotICNlbmRpZiAgLy8gQVJDSF9DUFVfWDg2X0ZBTUlMWQotIAotIGJvb2wgRXhjZXB0aW9uU25h cHNob3RMaW51eDo6SW5pdGlhbGl6ZShQcm9jZXNzUmVhZGVyTGludXgqIHByb2Nlc3NfcmVhZGVy LAotZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xp bnV4L2V4Y2VwdGlvbl9zbmFwc2hvdF9saW51eC5oIGIvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jh c2hwYWQvc25hcHNob3QvbGludXgvZXhjZXB0aW9uX3NuYXBzaG90X2xpbnV4LmgKLWluZGV4IGVh MGNkMjEwNi4uZTQyZGY1MjBmIDEwMDY0NAotLS0tIGEvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jh c2hwYWQvc25hcHNob3QvbGludXgvZXhjZXB0aW9uX3NuYXBzaG90X2xpbnV4LmgKLSsrKyBiL3Ro aXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L2V4Y2VwdGlvbl9zbmFw c2hvdF9saW51eC5oCi1AQCAtODQsNiArODQsOCBAQCBjbGFzcyBFeGNlcHRpb25TbmFwc2hvdExp bnV4IGZpbmFsIDogcHVibGljIEV4Y2VwdGlvblNuYXBzaG90IHsKLSAjZWxpZiBkZWZpbmVkKEFS Q0hfQ1BVX01JUFNfRkFNSUxZKQotICAgICBDUFVDb250ZXh0TUlQUyBtaXBzZWw7Ci0gICAgIENQ VUNvbnRleHRNSVBTNjQgbWlwczY0OwotKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFN SUxZKQotKyAgICBDUFVDb250ZXh0UFBDNjQgcHBjNjQ7Ci0gI2VuZGlmCi0gICB9IGNvbnRleHRf dW5pb25fOwotICAgQ1BVQ29udGV4dCBjb250ZXh0XzsKLWRpZmYgLS1naXQgYS90aGlyZF9wYXJ0 eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9leGNlcHRpb25fc25hcHNob3RfbGlu dXhfdGVzdC5jYyBiL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4 L2V4Y2VwdGlvbl9zbmFwc2hvdF9saW51eF90ZXN0LmNjCi1pbmRleCBjMTcxNzBiNDMuLmI2YTcx NGNjNiAxMDA2NDQKLS0tLSBhL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90 L2xpbnV4L2V4Y2VwdGlvbl9zbmFwc2hvdF9saW51eF90ZXN0LmNjCi0rKysgYi90aGlyZF9wYXJ0 eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9leGNlcHRpb25fc25hcHNob3RfbGlu dXhfdGVzdC5jYwotQEAgLTI5Niw3ICsyOTYsMjggQEAgdm9pZCBFeHBlY3RDb250ZXh0KGNvbnN0 IENQVUNvbnRleHQmIGFjdHVhbCwgY29uc3QgTmF0aXZlQ1BVQ29udGV4dCYgZXhwZWN0ZWQpIHsK LSAgICAgICAgICAgICAwKTsKLSAjdW5kZWYgQ1BVX0FSQ0hfTkFNRQotIH0KLSsjZWxpZiBkZWZp bmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKLSt1c2luZyBOYXRpdmVDUFVDb250ZXh0ID0gdWNv bnRleHRfdDsKLSsKLSt2b2lkIEluaXRpYWxpemVDb250ZXh0KE5hdGl2ZUNQVUNvbnRleHQqIGNv bnRleHQpIHsKLSsgIGZvciAoc2l6ZV90IHJlZyA9IDA7IHJlZyA8IDMyOyArK3JlZykgewotKyAg ICBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzW3JlZ10gPSByZWc7Ci0rICB9Ci0rCi0rICBt ZW1zZXQoJmNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3MsIDQ0LAotKyAgICAgIHNpemVvZihj b250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzKSk7Ci0rfQotIAotK3ZvaWQgRXhwZWN0Q29udGV4 dChjb25zdCBDUFVDb250ZXh0JiBhY3R1YWwsIGNvbnN0IE5hdGl2ZUNQVUNvbnRleHQmIGV4cGVj dGVkKSB7Ci0rICBFWFBFQ1RfRVEoYWN0dWFsLmFyY2hpdGVjdHVyZSwga0NQVUFyY2hpdGVjdHVy ZVBQQzY0KTsKLSsKLSsgIGZvciAoc2l6ZV90IHJlZyA9IDA7IHJlZyA8IDMyOyArK3JlZykgewot KyAgICBFWFBFQ1RfRVEoYWN0dWFsLnBwYzY0LT5yZWdzW3JlZ10sIGV4cGVjdGVkLnVjX21jb250 ZXh0LmdwX3JlZ3NbcmVnXSk7Ci0rICB9Ci0rCi0rICBFWFBFQ1RfRVEobWVtY21wKGFjdHVhbC5w cGM2NC0+ZnByZWdzLCBleHBlY3RlZC51Y19tY29udGV4dC5mcF9yZWdzLAotKyAgICAgICAgICAg IHNpemVvZihhY3R1YWwucHBjNjQtPmZwcmVncykpLCAwKTsKLSt9Ci0gI2Vsc2UKLSAjZXJyb3Ig UG9ydC4KLSAjZW5kaWYKLWRpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBh ZC9zbmFwc2hvdC9saW51eC9wcm9jZXNzX3JlYWRlcl9saW51eC5jYyBiL3RoaXJkX3BhcnR5L2Ny YXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L3Byb2Nlc3NfcmVhZGVyX2xpbnV4LmNjCi1p bmRleCBlZTI0NmU4YmMuLjk1NTVkY2UwNCAxMDA2NDQKLS0tLSBhL3RoaXJkX3BhcnR5L2NyYXNo cGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L3Byb2Nlc3NfcmVhZGVyX2xpbnV4LmNjCi0rKysg Yi90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9wcm9jZXNzX3Jl YWRlcl9saW51eC5jYwotQEAgLTEwOCw2ICsxMDgsOCBAQCB2b2lkIFByb2Nlc3NSZWFkZXJMaW51 eDo6VGhyZWFkOjpJbml0aWFsaXplU3RhY2soUHJvY2Vzc1JlYWRlckxpbnV4KiByZWFkZXIpIHsK LSAjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKQotICAgc3RhY2tfcG9pbnRlciA9 IHJlYWRlci0+SXM2NEJpdCgpID8gdGhyZWFkX2luZm8udGhyZWFkX2NvbnRleHQudDY0LnJlZ3Nb MjldCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB0aHJlYWRfaW5mby50 aHJlYWRfY29udGV4dC50MzIucmVnc1syOV07Ci0rI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2 NF9GQU1JTFkpCi0rICBzdGFja19wb2ludGVyID0gdGhyZWFkX2luZm8udGhyZWFkX2NvbnRleHQu dDY0LmdwclsxXTsKLSAjZWxzZQotICNlcnJvciBQb3J0LgotICNlbmRpZgotZGlmZiAtLWdpdCBh L3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L3NpZ25hbF9jb250 ZXh0LmggYi90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9zaWdu YWxfY29udGV4dC5oCi1pbmRleCAxMTAwMjQ2ODAuLmExZjJkYTI1OSAxMDA2NDQKLS0tLSBhL3Ro aXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L3NpZ25hbF9jb250ZXh0 LmgKLSsrKyBiL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L3Np Z25hbF9jb250ZXh0LmgKLUBAIC00MjIsNiArNDIyLDg5IEBAIHN0YXRpY19hc3NlcnQob2Zmc2V0 b2YoVUNvbnRleHQ8Q29udGV4dFRyYWl0czY0PiwgbWNvbnRleHQuZnByZWdzKSA9PQotICAgICAg ICAgICAgICAgImNvbnRleHQgb2Zmc2V0IG1pc21hdGNoIik7Ci0gI2VuZGlmCi0gCi0rI2VsaWYg ZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCi0rCi0rc3RydWN0IFNpZ25hbFRocmVhZENv bnRleHQ2NCB7Ci0rICB1aW50NjRfdCByZWdzWzMyXTsKLSsgIHVpbnQ2NF90IG5pcDsKLSsgIHVp bnQ2NF90IG1zcjsKLSsgIHVpbnQ2NF90IG9yaWdfcjM7Ci0rICB1aW50NjRfdCBjdHI7Ci0rICB1 aW50NjRfdCBsbms7Ci0rICB1aW50NjRfdCB4ZXI7Ci0rICB1aW50NjRfdCBjY3I7Ci0rICB1aW50 NjRfdCBzb2Z0ZTsKLSsgIHVpbnQ2NF90IHRyYXA7Ci0rICB1aW50NjRfdCBkYXI7Ci0rICB1aW50 NjRfdCBkc2lzcjsKLSsgIHVpbnQ2NF90IHJlc3VsdDsKLSsgIHVpbnQ2NF90IGRzY3I7Ci0rICB1 aW50NjRfdCBmcHIwWzNdOwotK307Ci0rCi0rc3RydWN0IFNpZ25hbEZsb2F0Q29udGV4dDY0IHsK LSsgIGRvdWJsZSByZWdzWzMyXTsKLSsgIGRvdWJsZSBmcHNjcjsKLSt9OwotKwotK3N0cnVjdCBT aWduYWxWZWN0b3JDb250ZXh0NjQgewotKyAgaW50MzJfdCB2cnJlZ3NbMzJdWzRdOwotKyAgc3Ry dWN0IHsKLSsgICAgaW50MzJfdCBfX3BhZFszXTsKLSsgICAgaW50MzJfdCB2c2NyX3dvcmQ7Ci0r ICB9IHZzY3I7Ci0rICBpbnQzMl90IHZyc2F2ZTsKLSsgIGludDMyX3QgX19wYWRbM107Ci0rfSBf X2F0dHJpYnV0ZV9fKChfX2FsaWduZWRfXygxNikpKTsKLSsKLSsKLSsjcHJhZ21hIHBhY2socG9w KQotK3N0cnVjdCBNQ29udGV4dDY0IHsKLSsgIHVpbnQ2NF90IHJlc2VydmVkWzRdOwotKyAgaW50 MzJfdCBzaWduYWw7Ci0rICBpbnQzMl90IF9fcGFkMDsKLSsgIHVpbnQ2NF90IGhhbmRsZXI7Ci0r ICB1aW50NjRfdCBvbGRtYXNrOwotKyAgdWludDY0X3QgcHRfcmVnc19wdHI7Ci0rICBTaWduYWxU aHJlYWRDb250ZXh0NjQgZ3BfcmVnczsKLSsgIFNpZ25hbEZsb2F0Q29udGV4dDY0ICBmcF9yZWdz OwotKyAgU2lnbmFsVmVjdG9yQ29udGV4dDY0ICp2X3JlZ3M7Ci0rICBpbnQ2NF90IHZteF9yZXNl cnZlWzY5XTsKLSt9OwotKwotK3N0cnVjdCBDb250ZXh0VHJhaXRzNjQgOiBwdWJsaWMgVHJhaXRz NjQgewotKyAgdXNpbmcgTUNvbnRleHQgPSBNQ29udGV4dDY0OwotKyAgdXNpbmcgU2lnbmFsVGhy ZWFkQ29udGV4dCA9IFNpZ25hbFRocmVhZENvbnRleHQ2NDsKLSsgIHVzaW5nIFNpZ25hbEZsb2F0 Q29udGV4dCA9IFNpZ25hbEZsb2F0Q29udGV4dDY0OwotKyAgdXNpbmcgU2lnbmFsVmVjdG9yQ29u dGV4dCA9IFNpZ25hbFZlY3RvckNvbnRleHQ2NDsKLSsgIHVzaW5nIENQVUNvbnRleHQgPSBDUFVD b250ZXh0UFBDNjQ7Ci0rfTsKLSsKLStzdHJ1Y3QgQ29udGV4dFRyYWl0czMyIDogcHVibGljIFRy YWl0czMyIHt9OwotKwotK3N0cnVjdCBVQ29udGV4dCB7Ci0rICB1aW50NjRfdCBmbGFnczsKLSsg IHVpbnQ2NF90IGxpbms7Ci0rICBTaWduYWxTdGFjazxDb250ZXh0VHJhaXRzNjQ+IHN0YWNrOwot KyAgU2lnc2V0PENvbnRleHRUcmFpdHM2ND4gc2lnbWFzazsKLSsgIE1Db250ZXh0NjQgbWNvbnRl eHQ7Ci0rfTsKLSsjcHJhZ21hIHBhY2socHVzaCwgMSkKLSsKLStzdGF0aWNfYXNzZXJ0KHNpemVv ZihVQ29udGV4dCkgPT0gc2l6ZW9mKHVjb250ZXh0X3QpLAotKyAgICAgICAgICAgICAgInVjb250 ZXh0X3Qgc2l6ZSBtaXNtYXRjaCIpOwotK3N0YXRpY19hc3NlcnQoc2l6ZW9mKE1Db250ZXh0NjQp ID09IHNpemVvZihtY29udGV4dF90KSwKLSsgICAgICAgICAgICAgICJtY29udGV4dF90IHNpemUg bWlzbWF0Y2giKTsKLStzdGF0aWNfYXNzZXJ0KHNpemVvZihTaWduYWxUaHJlYWRDb250ZXh0NjQp ID09IHNpemVvZihncmVnc2V0X3QpLAotKyAgICAgICAgICAgICAgImdyZWdzZXRfdCBzaXplIG1p c21hdGNoIik7Ci0rc3RhdGljX2Fzc2VydChzaXplb2YoU2lnbmFsRmxvYXRDb250ZXh0NjQpID09 IHNpemVvZihmcHJlZ3NldF90KSwKLSsgICAgICAgICAgICAgICJmcHJlZ3NldF90IHNpemUgbWlz bWF0Y2giKTsKLStzdGF0aWNfYXNzZXJ0KHNpemVvZihTaWduYWxWZWN0b3JDb250ZXh0NjQpID09 IHNpemVvZih2cnJlZ3NldF90KSwKLSsgICAgICAgICAgICAgICJ2cnJlZ3NldF90IHNpemUgbWlz bWF0Y2giKTsKLStzdGF0aWNfYXNzZXJ0KG9mZnNldG9mKFVDb250ZXh0LCBtY29udGV4dCkgPT0K LSsgICAgICAgICAgICAgIG9mZnNldG9mKHVjb250ZXh0X3QsIHVjX21jb250ZXh0KSwgIm1jb250 ZXh0IG9mZnNldCBtaXNtYXRjaCIpOwotK3N0YXRpY19hc3NlcnQob2Zmc2V0b2YoTUNvbnRleHQ2 NCwgZ3BfcmVncykgPT0KLSsgICAgICAgICAgICAgIG9mZnNldG9mKG1jb250ZXh0X3QsIGdwX3Jl Z3MpLCAiZ3BfcmVncyBvZmZzZXQgbWlzbWF0Y2giKTsKLSAjZWxzZQotICNlcnJvciBQb3J0Lgot ICNlbmRpZiAgLy8gQVJDSF9DUFVfWDg2X0ZBTUlMWQotZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5 L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L3N5c3RlbV9zbmFwc2hvdF9saW51eC5j YyBiL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L3N5c3RlbV9z bmFwc2hvdF9saW51eC5jYwotaW5kZXggYTk5ZGEzZTRiLi4wM2I5NzMwODMgMTAwNjQ0Ci0tLS0g YS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9zeXN0ZW1fc25h cHNob3RfbGludXguY2MKLSsrKyBiL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBz aG90L2xpbnV4L3N5c3RlbV9zbmFwc2hvdF9saW51eC5jYwotQEAgLTIwNCw2ICsyMDQsOCBAQCBD UFVBcmNoaXRlY3R1cmUgU3lzdGVtU25hcHNob3RMaW51eDo6R2V0Q1BVQXJjaGl0ZWN0dXJlKCkg Y29uc3QgewotICNlbGlmIGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpCi0gICByZXR1cm4g cHJvY2Vzc19yZWFkZXJfLT5JczY0Qml0KCkgPyBrQ1BVQXJjaGl0ZWN0dXJlTUlQUzY0RUwKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGtDUFVBcmNoaXRlY3R1cmVNSVBT RUw7Ci0rI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCi0rICByZXR1cm4ga0NQ VUFyY2hpdGVjdHVyZVBQQzY0OwotICNlbHNlCi0gI2Vycm9yIHBvcnQgdG8geW91ciBhcmNoaXRl Y3R1cmUKLSAjZW5kaWYKLUBAIC0yMTksNiArMjIxLDkgQEAgdWludDMyX3QgU3lzdGVtU25hcHNo b3RMaW51eDo6Q1BVUmV2aXNpb24oKSBjb25zdCB7Ci0gI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9N SVBTX0ZBTUlMWSkKLSAgIC8vIE5vdCBpbXBsZW1lbnRhYmxlIG9uIE1JUFMKLSAgIHJldHVybiAw OwotKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQotKyAgLy8gTm90IHlldCBp bXBsZW1lbnRlZCBvbiBQUEM2NAotKyAgcmV0dXJuIDA7Ci0gI2Vsc2UKLSAjZXJyb3IgcG9ydCB0 byB5b3VyIGFyY2hpdGVjdHVyZQotICNlbmRpZgotQEAgLTIzOSw2ICsyNDQsOSBAQCBzdGQ6OnN0 cmluZyBTeXN0ZW1TbmFwc2hvdExpbnV4OjpDUFVWZW5kb3IoKSBjb25zdCB7Ci0gI2VsaWYgZGVm aW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkKLSAgIC8vIE5vdCBpbXBsZW1lbnRhYmxlIG9uIE1J UFMKLSAgIHJldHVybiBzdGQ6OnN0cmluZygpOwotKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfUFBD NjRfRkFNSUxZKQotKyAgLy8gTm90IHlldCBpbXBsZW1lbnRlZCBvbiBQUEM2NAotKyAgcmV0dXJu IHN0ZDo6c3RyaW5nKCk7Ci0gI2Vsc2UKLSAjZXJyb3IgcG9ydCB0byB5b3VyIGFyY2hpdGVjdHVy ZQotICNlbmRpZgotQEAgLTM3Miw2ICszODAsOSBAQCBib29sIFN5c3RlbVNuYXBzaG90TGludXg6 Ok5YRW5hYmxlZCgpIGNvbnN0IHsKLSAjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZ KQotICAgLy8gTm90IGltcGxlbWVudGFibGUgb24gTUlQUwotICAgcmV0dXJuIGZhbHNlOwotKyNl bGlmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQotKyAgLy8gTm90IHlldCBpbXBsZW1l bnRlZCBvbiBQUEM2NAotKyAgcmV0dXJuIGZhbHNlOwotICNlbHNlCi0gI2Vycm9yIFBvcnQuCi0g I2VuZGlmICAvLyBBUkNIX0NQVV9YODZfRkFNSUxZCi1kaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkv Y3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvdGVzdF9tb2R1bGVzLmNjIGIvdGhpcmRf cGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvdGVzdF9tb2R1bGVzLmNjCi1p bmRleCBiMjQ1MGMyMDYuLjdiYTc4YjJhZSAxMDA2NDQKLS0tLSBhL3RoaXJkX3BhcnR5L2NyYXNo cGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L3Rlc3RfbW9kdWxlcy5jYwotKysrIGIvdGhpcmRf cGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvdGVzdF9tb2R1bGVzLmNjCi1A QCAtMTEwLDYgKzExMCw4IEBAIGJvb2wgV3JpdGVUZXN0TW9kdWxlKGNvbnN0IGJhc2U6OkZpbGVQ YXRoJiBtb2R1bGVfcGF0aCwKLSAgIG1vZHVsZS5laGRyLmVfbWFjaGluZSA9IEVNX0FBUkNINjQ7 Ci0gI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9NSVBTRUwpIHx8IGRlZmluZWQoQVJDSF9DUFVfTUlQ UzY0RUwpCi0gICBtb2R1bGUuZWhkci5lX21hY2hpbmUgPSBFTV9NSVBTOwotKyNlbGlmIGRlZmlu ZWQoQVJDSF9DUFVfUFBDNjQpCi0rICBtb2R1bGUuZWhkci5lX21hY2hpbmUgPSBFTV9QUEM2NDsK LSAjZW5kaWYKLSAKLSAgIG1vZHVsZS5laGRyLmVfdmVyc2lvbiA9IEVWX0NVUlJFTlQ7Ci1kaWZm IC0tZ2l0IGEvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvdGhy ZWFkX3NuYXBzaG90X2xpbnV4LmNjIGIvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25h cHNob3QvbGludXgvdGhyZWFkX3NuYXBzaG90X2xpbnV4LmNjCi1pbmRleCBlM2UyYmViZGQuLjhl ZjQzNzUyZSAxMDA2NDQKLS0tLSBhL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBz aG90L2xpbnV4L3RocmVhZF9zbmFwc2hvdF9saW51eC5jYwotKysrIGIvdGhpcmRfcGFydHkvY3Jh c2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvdGhyZWFkX3NuYXBzaG90X2xpbnV4LmNjCi1A QCAtMTg2LDYgKzE4NiwxNCBAQCBib29sIFRocmVhZFNuYXBzaG90TGludXg6OkluaXRpYWxpemUo UHJvY2Vzc1JlYWRlckxpbnV4KiBwcm9jZXNzX3JlYWRlciwKLSAgICAgICAgIHRocmVhZC50aHJl YWRfaW5mby5mbG9hdF9jb250ZXh0LmYzMiwKLSAgICAgICAgIGNvbnRleHRfLm1pcHNlbCk7Ci0g ICB9Ci0rI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCi0rICBjb250ZXh0Xy5h cmNoaXRlY3R1cmUgPSBrQ1BVQXJjaGl0ZWN0dXJlUFBDNjQ7Ci0rICBjb250ZXh0Xy5wcGM2NCA9 ICZjb250ZXh0X3VuaW9uXy5wcGM2NDsKLSsgIEluaXRpYWxpemVDUFVDb250ZXh0UFBDNjQ8Q29u dGV4dFRyYWl0czY0PigKLSsgICAgICB0aHJlYWQudGhyZWFkX2luZm8udGhyZWFkX2NvbnRleHQu dDY0LAotKyAgICAgIHRocmVhZC50aHJlYWRfaW5mby5mbG9hdF9jb250ZXh0LmY2NCwKLSsgICAg ICB0aHJlYWQudGhyZWFkX2luZm8udmVjdG9yX2NvbnRleHQudjY0LAotKyAgICAgIGNvbnRleHRf LnBwYzY0KTsKLSAjZWxzZQotICNlcnJvciBQb3J0LgotICNlbmRpZgotZGlmZiAtLWdpdCBhL3Ro aXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L3RocmVhZF9zbmFwc2hv dF9saW51eC5oIGIvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgv dGhyZWFkX3NuYXBzaG90X2xpbnV4LmgKLWluZGV4IDQ0Y2M2ZjZkOS4uZDQxMzY0NjFlIDEwMDY0 NAotLS0tIGEvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvdGhy ZWFkX3NuYXBzaG90X2xpbnV4LmgKLSsrKyBiL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFk L3NuYXBzaG90L2xpbnV4L3RocmVhZF9zbmFwc2hvdF9saW51eC5oCi1AQCAtNjgsNiArNjgsOCBA QCBjbGFzcyBUaHJlYWRTbmFwc2hvdExpbnV4IGZpbmFsIDogcHVibGljIFRocmVhZFNuYXBzaG90 IHsKLSAjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKQotICAgICBDUFVDb250ZXh0 TUlQUyBtaXBzZWw7Ci0gICAgIENQVUNvbnRleHRNSVBTNjQgbWlwczY0OwotKyNlbGlmIGRlZmlu ZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQotKyAgICBDUFVDb250ZXh0UFBDNjQgcHBjNjQ7Ci0g I2Vsc2UKLSAjZXJyb3IgUG9ydC4KLSAjZW5kaWYgIC8vIEFSQ0hfQ1BVX1g4Nl9GQU1JTFkKLS0t LSBhL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbmV0L2h0dHBfdHJhbnNwb3J0 X2xpYmN1cmwuY2MKLSsrKyBiL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbmV0 L2h0dHBfdHJhbnNwb3J0X2xpYmN1cmwuY2MKLUBAIC0yMzYsNiArMjM2LDEyIEBACi0gI2VsaWYg ZGVmaW5lZChBUkNIX0NQVV9CSUdfRU5ESUFOKQotICAgICBzdGF0aWMgY29uc3RleHByIGNoYXIg YXJjaFtdID0gImFhcmNoNjRfYmUiOwotICNlbmRpZgotKyNlbGlmIGRlZmluZWQoX19wb3dlcnBj NjRfXykKLSsjaWYgZGVmaW5lZChBUkNIX0NQVV9MSVRUTEVfRU5ESUFOKQotKyAgICBzdGF0aWMg Y29uc3RleHByIGNoYXIgYXJjaFtdID0gInBwYzY0bGUiOwotKyNlbGlmIGRlZmluZWQoQVJDSF9D UFVfQklHX0VORElBTikKLSsgICAgc3RhdGljIGNvbnN0ZXhwciBjaGFyIGFyY2hbXSA9ICJwcGM2 NCI7Ci0rI2VuZGlmCi0gI2Vsc2UKLSAjZXJyb3IgUG9ydAotICNlbmRpZgotZGlmZiAtLWdpdCBh L3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbGludXgvYXV4aWxpYXJ5X3ZlY3Rv ci5jYyBiL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbGludXgvYXV4aWxpYXJ5 X3ZlY3Rvci5jYwotaW5kZXggZDNkNWViZGZiLi4zZmQ3MzBjYjUgMTAwNjQ0Ci0tLS0gYS90aGly ZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL2xpbnV4L2F1eGlsaWFyeV92ZWN0b3IuY2MK LSsrKyBiL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbGludXgvYXV4aWxpYXJ5 X3ZlY3Rvci5jYwotQEAgLTU2LDYgKzU2LDExIEBAIGJvb2wgQXV4aWxpYXJ5VmVjdG9yOjpSZWFk KFB0cmFjZUNvbm5lY3Rpb24qIGNvbm5lY3Rpb24pIHsKLSAgICAgaWYgKHR5cGUgPT0gQVRfSUdO T1JFKSB7Ci0gICAgICAgY29udGludWU7Ci0gICAgIH0KLSsjaWYgZGVmaW5lZChBUkNIX0NQVV9Q UEM2NF9GQU1JTFkpCi0rICAgIGlmICh0eXBlID09IEFUX0lHTk9SRVBQQykgewotKyAgICAgIGNv bnRpbnVlOwotKyAgICB9Ci0rI2VuZGlmCi0gICAgIGlmICghTWFwSW5zZXJ0T3JSZXBsYWNlKCZ2 YWx1ZXNfLCB0eXBlLCB2YWx1ZSwgbnVsbHB0cikpIHsKLSAgICAgICBMT0coRVJST1IpIDw8ICJk dXBsaWNhdGUgYXV4diBlbnRyeSI7Ci0gICAgICAgcmV0dXJuIGZhbHNlOwotZGlmZiAtLWdpdCBh L3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbGludXgvcHRyYWNlci5jYyBiL3Ro aXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbGludXgvcHRyYWNlci5jYwotaW5kZXgg NTU3ZTBkMzYzLi4wOGFlNDM0YjggMTAwNjQ0Ci0tLS0gYS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9j cmFzaHBhZC91dGlsL2xpbnV4L3B0cmFjZXIuY2MKLSsrKyBiL3RoaXJkX3BhcnR5L2NyYXNocGFk L2NyYXNocGFkL3V0aWwvbGludXgvcHRyYWNlci5jYwotQEAgLTM5OCw2ICszOTgsNjQgQEAgYm9v bCBHZXRUaHJlYWRBcmVhNjQocGlkX3QgdGlkLAotICAgcmV0dXJuIHRydWU7Ci0gfQotIAotKyNl bGlmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQotKy8vIFBQQzY0IGhhcyBoYWQgSEFW RV9BUkNIX1RSQUNFSE9PSyBzZXQgc2luY2UgMi42LjI3IChldmVuIGJlZm9yZSB4ODYgaGFkIGl0 KS4KLSsvLyBUaGF0IG1lYW5zIHdlIGNhbiBzaW1wbHkgdXNlIFBUUkFDRV9HRVRSRUdFU0VULgot KwotK3RlbXBsYXRlIDx0eXBlbmFtZSBEZXN0aW5hdGlvbj4KLStib29sIEdldFJlZ2lzdGVyU2V0 KHBpZF90IHRpZCwgaW50IHNldCwgRGVzdGluYXRpb24qIGRlc3QsIGJvb2wgY2FuX2xvZykgewot KyAgaW92ZWMgaW92OwotKyAgaW92Lmlvdl9iYXNlID0gcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4o ZGVzdCk7Ci0rICBpb3YuaW92X2xlbiA9IHNpemVvZigqZGVzdCk7Ci0rICBpZiAocHRyYWNlKFBU UkFDRV9HRVRSRUdTRVQsIHRpZCwgcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oc2V0KSwgJmlvdikg IT0gMCkgewotKyAgICBQTE9HX0lGKEVSUk9SLCBjYW5fbG9nKSA8PCAicHRyYWNlIjsKLSsgICAg cmV0dXJuIGZhbHNlOwotKyAgfQotKyAgaWYgKGlvdi5pb3ZfbGVuICE9IHNpemVvZigqZGVzdCkp IHsKLSsgICAgTE9HX0lGKEVSUk9SLCBjYW5fbG9nKSA8PCAiVW5leHBlY3RlZCByZWdpc3RlcnMg c2l6ZSI7Ci0rICAgIHJldHVybiBmYWxzZTsKLSsgIH0KLSsgIHJldHVybiB0cnVlOwotK30KLSsK LStib29sIEdldFZlY3RvclJlZ2lzdGVyczY0KHBpZF90IHRpZCwKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgIFZlY3RvckNvbnRleHQqIGNvbnRleHQsCi0rICAgICAgICAgICAgICAgICAgICAg ICAgICBib29sIGNhbl9sb2cpIHsKLSsgIHJldHVybiBHZXRSZWdpc3RlclNldCh0aWQsIE5UX1BQ Q19WTVgsICZjb250ZXh0LT52NjQsIGNhbl9sb2cpOwotK30KLSsKLStib29sIEdldEZsb2F0aW5n UG9pbnRSZWdpc3RlcnM2NChwaWRfdCB0aWQsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgRmxvYXRDb250ZXh0KiBjb250ZXh0LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGJvb2wgY2FuX2xvZykgewotKyAgcmV0dXJuIEdldFJlZ2lzdGVyU2V0KHRpZCwgTlRf UFJGUFJFRywgJmNvbnRleHQtPmY2NCwgY2FuX2xvZyk7Ci0rfQotKwotK2Jvb2wgR2V0VGhyZWFk QXJlYTY0KHBpZF90IHRpZCwKLSsgICAgICAgICAgICAgICAgICAgICBjb25zdCBUaHJlYWRDb250 ZXh0JiBjb250ZXh0LAotKyAgICAgICAgICAgICAgICAgICAgIExpbnV4Vk1BZGRyZXNzKiBhZGRy ZXNzLAotKyAgICAgICAgICAgICAgICAgICAgIGJvb2wgY2FuX2xvZykgewotKyAgLy8gUFBDNjQg ZG9lc24ndCBoYXZlIFBUUkFDRV9HRVRfVEhSRUFEX0FSRUEgc2luY2UgdGhlIHRocmVhZCBwb2lu dGVyCi0rICAvLyBpcyBzdG9yZWQgaW4gR1BSIDEzLgotKyAgVGhyZWFkQ29udGV4dDo6dDY0X3Qg dGM7Ci0rICBpZiAoIUdldFJlZ2lzdGVyU2V0KHRpZCwgTlRfUFJTVEFUVVMsICZ0YywgY2FuX2xv ZykpIHsKLSsgICAgTE9HX0lGKEVSUk9SLCBjYW5fbG9nKSA8PCAiVW5hYmxlIHRvIGdldCB0aHJl YWQgcG9pbnRlciEiOwotKyAgICByZXR1cm4gZmFsc2U7Ci0rICB9Ci0rCi0rICAqYWRkcmVzcyA9 IHRjLmdwclsxM107Ci0rCi0rICByZXR1cm4gdHJ1ZTsKLSt9Ci0rCi0rLy8gU3R1YnMgZm9yIDMy LWJpdCBmdW5jdGlvbnMgbm90IGFwcGxpY2FibGUgb24gUFBDNjQKLStib29sIEdldEZsb2F0aW5n UG9pbnRSZWdpc3RlcnMzMihwaWRfdCB0aWQsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgRmxvYXRDb250ZXh0KiBjb250ZXh0LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGJvb2wgY2FuX2xvZykgeyByZXR1cm4gZmFsc2U7IH0KLStib29sIEdldFRocmVhZEFy ZWEzMihwaWRfdCB0aWQsCi0rICAgICAgICAgICAgICAgICAgICAgY29uc3QgVGhyZWFkQ29udGV4 dCAmY29udGV4dCwKLSsgICAgICAgICAgICAgICAgICAgICBMaW51eFZNQWRkcmVzcyAqYWRkcmVz cywKLSsgICAgICAgICAgICAgICAgICAgICBib29sIGNhbl9sb2cpIHsgcmV0dXJuIGZhbHNlOyB9 Ci0rCi0gI2Vsc2UKLSAjZXJyb3IgUG9ydC4KLSAjZW5kaWYgIC8vIEFSQ0hfQ1BVX1g4Nl9GQU1J TFkKLUBAIC00OTQsNiArNTUyLDkgQEAgYm9vbCBQdHJhY2VyOjpHZXRUaHJlYWRJbmZvKHBpZF90 IHRpZCwgVGhyZWFkSW5mbyogaW5mbykgewotICAgaWYgKGlzXzY0X2JpdF8pIHsKLSAgICAgcmV0 dXJuIEdldEdlbmVyYWxQdXJwb3NlUmVnaXN0ZXJzNjQodGlkLCAmaW5mby0+dGhyZWFkX2NvbnRl eHQsIGNhbl9sb2dfKSAmJgotICAgICAgICAgICAgR2V0RmxvYXRpbmdQb2ludFJlZ2lzdGVyczY0 KHRpZCwgJmluZm8tPmZsb2F0X2NvbnRleHQsIGNhbl9sb2dfKSAmJgotKyNpZiBkZWZpbmVkKEFS Q0hfQ1BVX1BQQzY0X0ZBTUlMWSkKLSsgICAgICAgICAgIEdldFZlY3RvclJlZ2lzdGVyczY0KHRp ZCwgJmluZm8tPnZlY3Rvcl9jb250ZXh0LCBjYW5fbG9nXykgJiYKLSsjZW5kaWYKLSAgICAgICAg ICAgIEdldFRocmVhZEFyZWE2NCh0aWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5m by0+dGhyZWFkX2NvbnRleHQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgJmluZm8tPnRo cmVhZF9zcGVjaWZpY19kYXRhX2FkZHJlc3MsCi1kaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvY3Jh c2hwYWQvY3Jhc2hwYWQvdXRpbC9saW51eC90aHJlYWRfaW5mby5oIGIvdGhpcmRfcGFydHkvY3Jh c2hwYWQvY3Jhc2hwYWQvdXRpbC9saW51eC90aHJlYWRfaW5mby5oCi1pbmRleCA1YjU1YzI0YTcu LmRlYTBkMWYzOSAxMDA2NDQKLS0tLSBhL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0 aWwvbGludXgvdGhyZWFkX2luZm8uaAotKysrIGIvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hw YWQvdXRpbC9saW51eC90aHJlYWRfaW5mby5oCi1AQCAtMjgsNiArMjgsMTAgQEAKLSAjaW5jbHVk ZSA8YW5kcm9pZC9hcGktbGV2ZWwuaD4KLSAjZW5kaWYKLSAKLSsjaWYgZGVmaW5lZChBUkNIX0NQ VV9QUEM2NF9GQU1JTFkpCi0rI2luY2x1ZGUgPHN5cy91Y29udGV4dC5oPgotKyNlbmRpZgotKwot IG5hbWVzcGFjZSBjcmFzaHBhZCB7Ci0gCi0gLy8hIFxicmllZiBUaGUgc2V0IG9mIGdlbmVyYWwg cHVycG9zZSByZWdpc3RlcnMgZm9yIGFuIGFyY2hpdGVjdHVyZSBmYW1pbHkuCi1AQCAtNzksNiAr ODMsOCBAQCB1bmlvbiBUaHJlYWRDb250ZXh0IHsKLSAgICAgdWludDMyX3QgY3AwX3N0YXR1czsK LSAgICAgdWludDMyX3QgY3AwX2NhdXNlOwotICAgICB1aW50MzJfdCBwYWRkaW5nMV87Ci0rI2Vs aWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCi0rICAgIC8vIFBQQzY0IGlzIDY0LWJp dAotICNlbHNlCi0gI2Vycm9yIFBvcnQuCi0gI2VuZGlmICAvLyBBUkNIX0NQVV9YODZfRkFNSUxZ Ci1AQCAtMTMyLDYgKzEzOCwyMSBAQCB1bmlvbiBUaHJlYWRDb250ZXh0IHsKLSAgICAgdWludDY0 X3QgY3AwX2JhZHZhZGRyOwotICAgICB1aW50NjRfdCBjcDBfc3RhdHVzOwotICAgICB1aW50NjRf dCBjcDBfY2F1c2U7Ci0rI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCi0rICAg IC8vIFJlZmxlY3RzIHN0cnVjdCBwdF9yZWdzIGluIGFzbS9wdHJhY2UuaC4KLSsgICAgdWludDY0 X3QgZ3ByWzMyXTsKLSsgICAgdWludDY0X3QgbmlwOwotKyAgICB1aW50NjRfdCBtc3I7Ci0rICAg IHVpbnQ2NF90IG9yaWdfZ3ByMzsKLSsgICAgdWludDY0X3QgY3RyOwotKyAgICB1aW50NjRfdCBs bms7Ci0rICAgIHVpbnQ2NF90IHhlcjsKLSsgICAgdWludDY0X3QgY2NyOwotKyAgICB1aW50NjRf dCBzb2Z0ZTsKLSsgICAgdWludDY0X3QgdHJhcDsKLSsgICAgdWludDY0X3QgZGFyOwotKyAgICB1 aW50NjRfdCBkc2lzcjsKLSsgICAgdWludDY0X3QgcmVzdWx0OwotICNlbHNlCi0gI2Vycm9yIFBv cnQuCi0gI2VuZGlmICAvLyBBUkNIX0NQVV9YODZfRkFNSUxZCi1AQCAtMTQzLDYgKzE2NCw4IEBA IHVuaW9uIFRocmVhZENvbnRleHQgewotICAgdXNpbmcgTmF0aXZlVGhyZWFkQ29udGV4dCA9IHVz ZXJfcmVnczsKLSAjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKQotIC8vIE5vIGFw cHJvcHJpYXRlIE5hdGl2ZVRocmVhZHNDb250ZXh0IHR5cGUgYXZhaWxhYmxlIGZvciBNSVBTCi0r I2VsaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCi0rICB1c2luZyBOYXRpdmVUaHJl YWRDb250ZXh0ID0gc3RydWN0IHB0X3JlZ3M7Ci0gI2Vsc2UKLSAjZXJyb3IgUG9ydC4KLSAjZW5k aWYgIC8vIEFSQ0hfQ1BVX1g4Nl9GQU1JTFkgfHwgQVJDSF9DUFVfQVJNNjQKLUBAIC0yMTgsNiAr MjQxLDkgQEAgdW5pb24gRmxvYXRDb250ZXh0IHsKLSAgICAgfSBmcHJlZ3NbMzJdOwotICAgICB1 aW50MzJfdCBmcGNzcjsKLSAgICAgdWludDMyX3QgZnB1X2lkOwotKyNlbGlmIGRlZmluZWQoQVJD SF9DUFVfUFBDNjRfRkFNSUxZKQotKyAgICAvLyBDcmFzaHBhZCdzIFBQQyBzdXBwb3J0IGlzIDY0 LWJpdCBvbmx5LCBzbyB0aGlzCi0rICAgIC8vIDMyYml0LW9ubHkgc3RydWN0IGlzIGRlY2xhcmVk IGFzIGVtcHR5LgotICNlbHNlCi0gI2Vycm9yIFBvcnQuCi0gI2VuZGlmICAvLyBBUkNIX0NQVV9Y ODZfRkFNSUxZCi1AQCAtMjUyLDYgKzI3OCwxMCBAQCB1bmlvbiBGbG9hdENvbnRleHQgewotICAg ICBkb3VibGUgZnByZWdzWzMyXTsKLSAgICAgdWludDMyX3QgZnBjc3I7Ci0gICAgIHVpbnQzMl90 IGZwdV9pZDsKLSsjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKLSsgICAgLy8g UmVmbGVjdHMgZnByZWdzZXRfdCBpbiBzeXMvdWNvbnRleHQuaAotKyAgICBkb3VibGUgZnByZWdz WzMyXTsKLSsgICAgZG91YmxlIGZwc2NyOwotICNlbHNlCi0gI2Vycm9yIFBvcnQuCi0gI2VuZGlm ICAvLyBBUkNIX0NQVV9YODZfRkFNSUxZCi1AQCAtMjgwLDYgKzMxMCw4IEBAIHVuaW9uIEZsb2F0 Q29udGV4dCB7Ci0gICBzdGF0aWNfYXNzZXJ0KHNpemVvZihmNjQpID09IHNpemVvZih1c2VyX2Zw c2ltZF9zdHJ1Y3QpLCAiU2l6ZSBtaXNtYXRjaCIpOwotICNlbGlmIGRlZmluZWQoQVJDSF9DUFVf TUlQU19GQU1JTFkpCi0gLy8gTm8gYXBwcm9wcmlhdGUgZmxvYXRpbmcgcG9pbnQgY29udGV4dCBu YXRpdmUgdHlwZSBmb3IgYXZhaWxhYmxlIE1JUFMuCi0rI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9Q UEM2NF9GQU1JTFkpCi0rICBzdGF0aWNfYXNzZXJ0KHNpemVvZihmNjQpID09IHNpemVvZihmcHJl Z3NldF90KSwgIlNpemUgbWlzbWF0Y2giKTsKLSAjZWxzZQotICNlcnJvciBQb3J0LgotICNlbmRp ZiAgLy8gQVJDSF9DUFVfWDg2Ci1AQCAtMjg3LDYgKzMxOSwyNiBAQCB1bmlvbiBGbG9hdENvbnRl eHQgewotIHN0YXRpY19hc3NlcnQoc3RkOjppc19zdGFuZGFyZF9sYXlvdXQ8RmxvYXRDb250ZXh0 Pjo6dmFsdWUsCi0gICAgICAgICAgICAgICAiTm90IHN0YW5kYXJkIGxheW91dCIpOwotIAotKy8v ISBcYnJpZWYgVGhlIHZlY3RvciByZWdpc3RlcnMgdXNlZCBmb3IgYW4gYXJjaGl0ZWN0dXJlIGZh bWlseQotK3VuaW9uIFZlY3RvckNvbnRleHQgewotKyAgc3RydWN0IHYzMl90IHt9IHYzMjsKLSsj aWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCi0rICBfX2F0dHJpYnV0ZV9fKChfX2Fs aWduZWRfXygxNikpKSAvLyBWZWN0b3IgY29udGV4dCBtdXN0IGJlIGRvdWJsZXdvcmQgYWxpZ25l ZC4KLSsjZW5kaWYKLSsgIHN0cnVjdCB2NjRfdCB7Ci0rI2lmIGRlZmluZWQoQVJDSF9DUFVfUFBD NjRfRkFNSUxZKQotKyAgICAvLyBSZWZsZWN0cyB2cnJlZ3NldF90IGluIHN5cy91Y29udGV4dC5o Ci0rICAgIHVpbnQzMl90IHZycmVnc1szMl1bNF07Ci0rICAgIHN0cnVjdCB7Ci0rICAgICAgdWlu dDMyX3QgX19wYWRbM107Ci0rICAgICAgdWludDMyX3QgdnNjcl93b3JkOwotKyAgICB9IHZzY3I7 Ci0rICAgIHVpbnQzMl90IHZyc2F2ZTsKLSsgICAgdWludDMyX3QgX19wYWRbM107Ci0rI2VuZGlm Ci0rICB9IHY2NDsKLSt9OwotKwotIC8vISBcYnJpZWYgQSBjb2xsZWN0aW9uIG9mIGBwdHJhY2Vg LWFibGUgaW5mb3JtYXRpb24gYWJvdXQgYSB0aHJlYWQuCi0gc3RydWN0IFRocmVhZEluZm8gewot ICAgVGhyZWFkSW5mbygpOwotQEAgLTI5OCw2ICszNTAsOSBAQCBzdHJ1Y3QgVGhyZWFkSW5mbyB7 Ci0gICAvLyEgXGJyaWVmIFRoZSBmbG9hdGluZyBwb2ludCByZWdpc3RlcnMgZm9yIHRoZSB0aHJl YWQuCi0gICBGbG9hdENvbnRleHQgZmxvYXRfY29udGV4dDsKLSAKLSsgIC8vISBcYnJpZWYgKE9w dGlvbmFsKSBUaGUgdmVjdG9yIHJlZ2lzdGVycyB1c2VkIGZvciB0aGUgdGhyZWFkLgotKyAgVmVj dG9yQ29udGV4dCB2ZWN0b3JfY29udGV4dDsKLSsKLSAgIC8vISBcYnJpZWYgVGhlIHRocmVhZC1s b2NhbCBzdG9yYWdlIGFkZHJlc3MgZm9yIHRoZSB0aHJlYWQuCi0gICBMaW51eFZNQWRkcmVzcyB0 aHJlYWRfc3BlY2lmaWNfZGF0YV9hZGRyZXNzOwotIH07Ci1kaWZmIC0tZ2l0IGEvdGhpcmRfcGFy dHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9taXNjL2NhcHR1cmVfY29udGV4dC5oIGIvdGhpcmRf cGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9taXNjL2NhcHR1cmVfY29udGV4dC5oCi1pbmRl eCBkMjFhMjRmMTkuLmFjYzMyNTM0OSAxMDA2NDQKLS0tLSBhL3RoaXJkX3BhcnR5L2NyYXNocGFk L2NyYXNocGFkL3V0aWwvbWlzYy9jYXB0dXJlX2NvbnRleHQuaAotKysrIGIvdGhpcmRfcGFydHkv Y3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9taXNjL2NhcHR1cmVfY29udGV4dC5oCi1AQCAtNjksNiAr NjksNyBAQCB1c2luZyBOYXRpdmVDUFVDb250ZXh0ID0gdWNvbnRleHRfdDsKLSAvLyEgICAgIG1h Y09TL0xpbnV4L0Z1Y2hzaWEgfCB4ODZfNjQgICAgICAgfCBgJSVyZGlgCi0gLy8hICAgICBMaW51 eCAgICAgICAgICAgICAgIHwgQVJNL0FSTTY0ICAgIHwgYHIwYC9geDBgCi0gLy8hICAgICBMaW51 eCAgICAgICAgICAgICAgIHwgTUlQUy9NSVBTNjQgIHwgYCRhMGAKLSsvLyEgICAgIExpbnV4ICAg ICAgICAgICAgICAgfCBQUEM2NCAgICAgICAgfCBgcjNgCi0gLy8hCi0gLy8hICAgICBBZGRpdGlv bmFsbHksIHRoZSB2YWx1ZSBgTFJgIG9uIEFSTS9BUk02NCB3aWxsIGJlIHRoZSByZXR1cm4gYWRk cmVzcyBvZgotIC8vISAgICAgdGhpcyBmdW5jdGlvbi4KLWRpZmYgLS1naXQgYS90aGlyZF9wYXJ0 eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL21pc2MvY2FwdHVyZV9jb250ZXh0X2xpbnV4LlMgYi90 aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL21pc2MvY2FwdHVyZV9jb250ZXh0X2xp bnV4LlMKLWluZGV4IDUyMjE1ZWU1ZC4uYjNlNGEzZWM3IDEwMDY0NAotLS0tIGEvdGhpcmRfcGFy dHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9taXNjL2NhcHR1cmVfY29udGV4dF9saW51eC5TCi0r KysgYi90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL21pc2MvY2FwdHVyZV9jb250 ZXh0X2xpbnV4LlMKLUBAIC0zMiw3ICszMiw3IEBACi0gICAuYmFsaWduIDQsIDB4MAotICAgLnR5 cGUgQ0FQVFVSRUNPTlRFWFRfU1lNQk9MLCAlZnVuY3Rpb24KLSAgIC50eXBlIENBUFRVUkVDT05U RVhUX1NZTUJPTDIsICVmdW5jdGlvbgotLSNlbGlmIGRlZmluZWQoX19taXBzX18pCi0rI2VsaWYg ZGVmaW5lZChfX21pcHNfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgLmJhbGlnbiA0 LCAweDAKLSAjZW5kaWYKLSAKLUBAIC00MjMsNCArNDIzLDIxNCBAQCBDQVBUVVJFQ09OVEVYVF9T WU1CT0wyOgotICAganIgJHJhCi0gCi0gICAuc2V0IGF0Ci0rI2VsaWYgZGVmaW5lZChfX3Bvd2Vy cGM2NF9fKQotKyAgLy8gU3RvcmUgcjAtcjMxCi0rICBzdGQgMCwgMHhlOCgzKSAgIC8vIGNvbnRl eHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbMF0KLSsgIHN0ZCAxLCAweGYwKDMpICAgLy8gY29udGV4 dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1sxXQotKyAgc3RkIDIsIDB4ZjgoMykgICAvLyBjb250ZXh0 LT51Y19tY29udGV4dC5ncF9yZWdzWzJdCi0rICAvLyBub3RlIHRoYXQgcjMncyBvcmlnaW5hbCB2 YWx1ZSB3YXMgbG9zdAotKyAgc3RkIDMsIDB4MTAwKDMpICAvLyBjb250ZXh0LT51Y19tY29udGV4 dC5ncF9yZWdzWzNdCi0rICBzdGQgNCwgMHgxMDgoMykgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0 LmdwX3JlZ3NbNF0KLSsgIHN0ZCA1LCAweDExMCgzKSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQu Z3BfcmVnc1s1XQotKyAgc3RkIDYsIDB4MTE4KDMpICAvLyBjb250ZXh0LT51Y19tY29udGV4dC5n cF9yZWdzWzZdCi0rICBzdGQgNywgMHgxMjAoMykgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0Lmdw X3JlZ3NbN10KLSsgIHN0ZCA4LCAweDEyOCgzKSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3Bf cmVnc1s4XQotKyAgc3RkIDksIDB4MTMwKDMpICAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9y ZWdzWzldCi0rICBzdGQgMTAsIDB4MTM4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3Jl Z3NbMTBdCi0rICBzdGQgMTEsIDB4MTQwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3Jl Z3NbMTFdCi0rICBzdGQgMTIsIDB4MTQ4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3Jl Z3NbMTJdCi0rICBzdGQgMTMsIDB4MTUwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3Jl Z3NbMTNdCi0rICBzdGQgMTQsIDB4MTU4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3Jl Z3NbMTRdCi0rICBzdGQgMTUsIDB4MTYwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3Jl Z3NbMTVdCi0rICBzdGQgMTYsIDB4MTY4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3Jl Z3NbMTZdCi0rICBzdGQgMTcsIDB4MTcwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3Jl Z3NbMTddCi0rICBzdGQgMTgsIDB4MTc4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3Jl Z3NbMThdCi0rICBzdGQgMTksIDB4MTgwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3Jl Z3NbMTldCi0rICBzdGQgMjAsIDB4MTg4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3Jl Z3NbMjBdCi0rICBzdGQgMjEsIDB4MTkwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3Jl Z3NbMjFdCi0rICBzdGQgMjIsIDB4MTk4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3Jl Z3NbMjJdCi0rICBzdGQgMjMsIDB4MWEwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3Jl Z3NbMjNdCi0rICBzdGQgMjQsIDB4MWE4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3Jl Z3NbMjRdCi0rICBzdGQgMjUsIDB4MWIwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3Jl Z3NbMjVdCi0rICBzdGQgMjYsIDB4MWI4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3Jl Z3NbMjZdCi0rICBzdGQgMjcsIDB4MWMwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3Jl Z3NbMjddCi0rICBzdGQgMjgsIDB4MWM4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3Jl Z3NbMjhdCi0rICBzdGQgMjksIDB4MWQwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3Jl Z3NbMjldCi0rICBzdGQgMzAsIDB4MWQ4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3Jl Z3NbMzBdCi0rICBzdGQgMzEsIDB4MWUwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3Jl Z3NbMzFdCi0rCi0rICAvLyBGb3IgTklQLCB3ZSBjYW4gdXNlIHRoZSB2YWx1ZSBpbiB0aGUgbGlu ayByZWdpc3RlcgotKyAgbWZsciAwCi0rICBzdGQgMCwgMHgxZTgoMykgLy8gY29udGV4dC0+dWNf bWNvbnRleHQuZ3BfcmVnc1tQVF9OSVBdCi0rCi0rICAvLyBDVFIKLSsgIG1mY3RyIDAKLSsgIHN0 ZCAwLCAweDIwMCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzW1BUX0NUUl0KLSsK LSsgIC8vIEZvciBMTkssIHdlJ2xsIHVzZSB0aGUgY2FsbGVyJ3MgTFIgc2F2ZSBhcmVhICgyIHN0 YWNrIGZyYW1lcyB1cCkuCi0rICAvLyByNCBjYW4gYmUgdXNlZCBhcyBhIHNjcmF0Y2ggcmVnaXN0 ZXIgc2luY2UgaXQgaGFzIGFscmVhZHkgYmVlbiBzYXZlZC4KLSsgIGxkIDQsIDAoMSkKLSsgIGxk IDQsIDE2KDQpCi0rICBzdGQgNCwgMHgyMDgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3Bf cmVnc1tQVF9MTktdCi0rCi0rICAvLyBYRVIKLSsgIG1meGVyIDAKLSsgIHN0ZCAwLCAweDIxMCgz KSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzW1BUX1hFUl0KLSsKLSsgIC8vIENDUgot KyAgbWZjciAwCi0rICBzdGQgMCwgMHgyMTgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3Bf cmVnc1tQVF9DQ1JdCi0rCi0rICAvLyBNU1IsIG9yaWdfcjMsIE1RLCBUUkFQLCBEQVIsIERTSVNS LCBSRVNVTFQsIERTQ1IsCi0rICAvLyBub3QgdXNlZCBvciBub3QgcmVsZXZhbnQsICB6ZXJvIHRo ZW0gb3V0LgotKyAgbGkgNCwgMAotKyAgc3RkIDQsIDB4MWYwKDMpIC8vIGNvbnRleHQtPnVjX21j b250ZXh0LmdwX3JlZ3NbUFRfTVNSXQotKyAgc3RkIDQsIDB4MWY4KDMpIC8vIGNvbnRleHQtPnVj X21jb250ZXh0LmdwX3JlZ3NbUFRfT1JJR19SM10KLSsgIHN0ZCA0LCAweDIyMCgzKSAvLyBjb250 ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzW1BUX01RXQotKyAgc3RkIDQsIDB4MjI4KDMpIC8vIGNv bnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbUFRfVFJBUF0KLSsgIHN0ZCA0LCAweDIzMCgzKSAv LyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzW1BUX0RBUl0KLSsgIHN0ZCA0LCAweDIzOCgz KSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzW1BUX0RTSVNSXQotKyAgc3RkIDQsIDB4 MjQwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbUFRfUkVTVUxUXQotKyAgc3Rk IDQsIDB4MjQ4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbUFRfRFNDUl0KLSsK LSsgIC8vIFVwZGF0ZSBjb250ZXh0LT51Y19tY29udGV4dC5yZWdzIHRvIHBvaW50IHRvIGdwX3Jl Z3MKLSsgIGFkZGkgMCwgMywgMHhlOAotKyAgc3RkIDAsIDB4ZTAoMykKLSsKLSsgIC8vIFNhdmUg ZmxvYXRpbmcgcG9pbnQgcmVnaXN0ZXJzIDAtMzEKLSsgIHN0ZmQgMCwgMHgyNjgoMykgIC8vIGNv bnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbMF0KLSsgIHN0ZmQgMSwgMHgyNzAoMykgIC8vIGNv bnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbMV0KLSsgIHN0ZmQgMiwgMHgyNzgoMykgIC8vIGNv bnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbMl0KLSsgIHN0ZmQgMywgMHgyODAoMykgIC8vIGNv bnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbM10KLSsgIHN0ZmQgNCwgMHgyODgoMykgIC8vIGNv bnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbNF0KLSsgIHN0ZmQgNSwgMHgyOTAoMykgIC8vIGNv bnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbNV0KLSsgIHN0ZmQgNiwgMHgyOTgoMykgIC8vIGNv bnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbNl0KLSsgIHN0ZmQgNywgMHgyYTAoMykgIC8vIGNv bnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbN10KLSsgIHN0ZmQgOCwgMHgyYTgoMykgIC8vIGNv bnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbOF0KLSsgIHN0ZmQgOSwgMHgyYjAoMykgIC8vIGNv bnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbOV0KLSsgIHN0ZmQgMTAsIDB4MmI4KDMpIC8vIGNv bnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbMTBdCi0rICBzdGZkIDExLCAweDJjMCgzKSAvLyBj b250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzExXQotKyAgc3RmZCAxMiwgMHgyYzgoMykgLy8g Y29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1sxMl0KLSsgIHN0ZmQgMTMsIDB4MmQwKDMpIC8v IGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbMTNdCi0rICBzdGZkIDE0LCAweDJkOCgzKSAv LyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzE0XQotKyAgc3RmZCAxNSwgMHgyZTAoMykg Ly8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1sxNV0KLSsgIHN0ZmQgMTYsIDB4MmU4KDMp IC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbMTZdCi0rICBzdGZkIDE3LCAweDJmMCgz KSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzE3XQotKyAgc3RmZCAxOCwgMHgyZjgo MykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1sxOF0KLSsgIHN0ZmQgMTksIDB4MzAw KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbMTldCi0rICBzdGZkIDIwLCAweDMw OCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzIwXQotKyAgc3RmZCAyMSwgMHgz MTAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1syMV0KLSsgIHN0ZmQgMjIsIDB4 MzE4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbMjJdCi0rICBzdGZkIDIzLCAw eDMyMCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzIzXQotKyAgc3RmZCAyNCwg MHgzMjgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1syNF0KLSsgIHN0ZmQgMjUs IDB4MzMwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbMjVdCi0rICBzdGZkIDI2 LCAweDMzOCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzI2XQotKyAgc3RmZCAy NywgMHgzNDAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1syN10KLSsgIHN0ZmQg MjgsIDB4MzQ4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbMjhdCi0rICBzdGZk IDI5LCAweDM1MCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzI5XQotKyAgc3Rm ZCAzMCwgMHgzNTgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1szMF0KLSsgIHN0 ZmQgMzEsIDB4MzYwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbMzFdCi0rCi0r ICAvLyBGUFNDUgotKyAgbWZmcyAwCi0rICBzdGZkIDAsIDB4MzY4KDMpIC8vIGNvbnRleHQtPnVj X21jb250ZXh0LmZwX3JlZ3NbMzJdCi0rCi0rICAvLyBTYXZlIFZNWCBWZWN0b3IgcmVnaXN0ZXJz Ci0rICAvLyBVcGRhdGUgcjQgdG8gY29udGFpbiB0aGUgYmFzZSBhZGRyZXNzIG9mIHZteF9yZXNl cnZlCi0rICBhZGRpIDQsIDMsIDB4Mzc4Ci0rICAvLyBFbnN1cmUgdGhhdCBpdCBpcyBxdWFkd29y ZCBhbGlnbmVkCi0rICBhbmRpLiA1LCA0LCAweEYKLSsgIGJlcSAxZiAvLyBObyBhbGlnbm1lbnQg aXMgbmVjZXNzYXJ5Ci0rICAvLyBBZGRyZXNzIGlzIGRvdWJsZXdvcmQgYWxpZ25lZCBhbmQgbm90 IHF1YWR3b3JkIGFsaWduZWQsIGFkZCA4Ci0rICBhZGRpIDQsIDQsIDgKLSsKLSsxOgotKyAgLy8g U3RvcmUgVk1YIHJlZ2lzdGVycyAwLTMxCi0rICAvLyByNCB3aWxsIGNvbnRhaW4gdGhlIGJhc2Ug YWRkcmVzcwotKyAgLy8gcjUgd2lsbCBjb250YWluIHRoZSBpbmRleAotKyAgbGkgNSwgMAotKyAg c3R2eCAwLCA0LCA1ICAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWdu KSArIDBdCi0rICBhZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDEsIDQsIDUgICAvLyBjb250ZXh0LT51 Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMV0KLSsgIGFkZGkgNSwgNSwgMTYKLSsg IHN0dnggMiwgNCwgNSAgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZlWyhhbGln bikgKyAyXQotKyAgYWRkaSA1LCA1LCAxNgotKyAgc3R2eCAzLCA0LCA1ICAgLy8gY29udGV4dC0+ dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWduKSArIDNdCi0rICBhZGRpIDUsIDUsIDE2Ci0r ICBzdHZ4IDQsIDQsIDUgICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxp Z24pICsgNF0KLSsgIGFkZGkgNSwgNSwgMTYKLSsgIHN0dnggNSwgNCwgNSAgIC8vIGNvbnRleHQt PnVjX21jb250ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikgKyA1XQotKyAgYWRkaSA1LCA1LCAxNgot KyAgc3R2eCA2LCA0LCA1ICAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFs aWduKSArIDZdCi0rICBhZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDcsIDQsIDUgICAvLyBjb250ZXh0 LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgN10KLSsgIGFkZGkgNSwgNSwgMTYK LSsgIHN0dnggOCwgNCwgNSAgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZlWyhh bGlnbikgKyA4XQotKyAgYWRkaSA1LCA1LCAxNgotKyAgc3R2eCA5LCA0LCA1ICAgLy8gY29udGV4 dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWduKSArIDldCi0rICBhZGRpIDUsIDUsIDE2 Ci0rICBzdHZ4IDEwLCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVso YWxpZ24pICsgMTBdCi0rICBhZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDExLCA0LCA1ICAvLyBjb250 ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMTFdCi0rICBhZGRpIDUsIDUs IDE2Ci0rICBzdHZ4IDEyLCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2 ZVsoYWxpZ24pICsgMTJdCi0rICBhZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDEzLCA0LCA1ICAvLyBj b250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMTNdCi0rICBhZGRpIDUs IDUsIDE2Ci0rICBzdHZ4IDE0LCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVz ZXJ2ZVsoYWxpZ24pICsgMTRdCi0rICBhZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDE1LCA0LCA1ICAv LyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMTVdCi0rICBhZGRp IDUsIDUsIDE2Ci0rICBzdHZ4IDE2LCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhf cmVzZXJ2ZVsoYWxpZ24pICsgMTZdCi0rICBhZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDE3LCA0LCA1 ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMTddCi0rICBh ZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDE4LCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52 bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMThdCi0rICBhZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDE5LCA0 LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMTldCi0r ICBhZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDIwLCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4 dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMjBdCi0rICBhZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDIx LCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMjFd Ci0rICBhZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDIyLCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29u dGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMjJdCi0rICBhZGRpIDUsIDUsIDE2Ci0rICBzdHZ4 IDIzLCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsg MjNdCi0rICBhZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDI0LCA0LCA1ICAvLyBjb250ZXh0LT51Y19t Y29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMjRdCi0rICBhZGRpIDUsIDUsIDE2Ci0rICBz dHZ4IDI1LCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24p ICsgMjVdCi0rICBhZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDI2LCA0LCA1ICAvLyBjb250ZXh0LT51 Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMjZdCi0rICBhZGRpIDUsIDUsIDE2Ci0r ICBzdHZ4IDI3LCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxp Z24pICsgMjddCi0rICBhZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDI4LCA0LCA1ICAvLyBjb250ZXh0 LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMjhdCi0rICBhZGRpIDUsIDUsIDE2 Ci0rICBzdHZ4IDI5LCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVso YWxpZ24pICsgMjldCi0rICBhZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDMwLCA0LCA1ICAvLyBjb250 ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMzBdCi0rICBhZGRpIDUsIDUs IDE2Ci0rICBzdHZ4IDMxLCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2 ZVsoYWxpZ24pICsgMzFdCi0rICBhZGRpIDUsIDUsIDE2Ci0rCi0rICAvLyBWU0NSCi0rICBtZnZz Y3IgMAotKyAgc3R2eCAwLCA0LCA1Ci0rICBhZGRpIDUsIDUsIDE2Ci0rCi0rICAvLyBWUlNBVkUK LSsgIG1mdnJzYXZlIDAKLSsgIHN0d3ggMCwgNCwgNQotKwotKyAgLy8gVXBkYXRlIGNvbnRleHQt PnVjX21jb250ZXh0LnZfcmVncyB0byBwb2ludCB0byB2bXhfcmVzZXJ2ZSArIGFsaWdubWVudC4K LSsgIHN0ZCA0LCAweDM3MCgzKQotKwotKyAgLy8gWmVybyBvdXQgYWxsIHVudXNlZCBmaWVsZHMK LSsgIGxpIDQsIDAKLSsgIHN0ZCA0LCAweGM4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnNp Z25hbAotKyAgc3RkIDQsIDB4ZDAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuaGFuZGxlcgot KyAgc3RkIDQsIDB4ZDgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQub2xkbWFzawotKwotKyAg YmxyCi0gI2VuZGlmICAvLyBfX2kzODZfXwotZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2NyYXNo cGFkL2NyYXNocGFkL3V0aWwvbWlzYy9jYXB0dXJlX2NvbnRleHRfdGVzdC5jYyBiL3RoaXJkX3Bh cnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbWlzYy9jYXB0dXJlX2NvbnRleHRfdGVzdC5jYwot aW5kZXggY2YyM2MyZGVmLi41ZjI2NGJjOTIgMTAwNjQ0Ci0tLS0gYS90aGlyZF9wYXJ0eS9jcmFz aHBhZC9jcmFzaHBhZC91dGlsL21pc2MvY2FwdHVyZV9jb250ZXh0X3Rlc3QuY2MKLSsrKyBiL3Ro aXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbWlzYy9jYXB0dXJlX2NvbnRleHRfdGVz dC5jYwotQEAgLTU3LDcgKzU3LDcgQEAgdm9pZCBUZXN0Q2FwdHVyZUNvbnRleHQoKSB7Ci0gICB1 aW50cHRyX3QgcGMgPSBQcm9ncmFtQ291bnRlckZyb21Db250ZXh0KGNvbnRleHRfMSk7Ci0gCi0g I2lmICFkZWZpbmVkKEFERFJFU1NfU0FOSVRJWkVSKSAmJiAhZGVmaW5lZChBUkNIX0NQVV9NSVBT X0ZBTUlMWSkgJiYgXAotLSAgICAhZGVmaW5lZChNRU1PUllfU0FOSVRJWkVSKQotKyAgICAhZGVm aW5lZChNRU1PUllfU0FOSVRJWkVSKSAmJiAhZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkp Ci0gICAvLyBTYW5pdGl6ZXJzIGNhbiBjYXVzZSBlbm91Z2ggY29kZSBibG9hdCB0aGF0IHRoZSDi gJxuZWFyYnnigJ0gY2hlY2sgd291bGQKLSAgIC8vIGxpa2VseSBmYWlsLgotICAgY29uc3QgdWlu dHB0cl90IGtSZWZlcmVuY2VQQyA9Ci1kaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvY3Jhc2hwYWQv Y3Jhc2hwYWQvdXRpbC9taXNjL2NhcHR1cmVfY29udGV4dF90ZXN0X3V0aWxfbGludXguY2MgYi90 aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL21pc2MvY2FwdHVyZV9jb250ZXh0X3Rl c3RfdXRpbF9saW51eC5jYwotaW5kZXggMzBhMmFiMjFkLi42MDUwOWYyMWQgMTAwNjQ0Ci0tLS0g YS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL21pc2MvY2FwdHVyZV9jb250ZXh0 X3Rlc3RfdXRpbF9saW51eC5jYwotKysrIGIvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQv dXRpbC9taXNjL2NhcHR1cmVfY29udGV4dF90ZXN0X3V0aWxfbGludXguY2MKLUBAIC0zNSw2ICsz NSw4IEBAIHZvaWQgU2FuaXR5Q2hlY2tDb250ZXh0KGNvbnN0IE5hdGl2ZUNQVUNvbnRleHQmIGNv bnRleHQpIHsKLSAgIEVYUEVDVF9FUShjb250ZXh0LnVjX21jb250ZXh0LnJlZ3NbMF0sIEZyb21Q b2ludGVyQ2FzdDx1aW50cHRyX3Q+KCZjb250ZXh0KSk7Ci0gI2VsaWYgZGVmaW5lZChBUkNIX0NQ VV9NSVBTX0ZBTUlMWSkKLSAgIEVYUEVDVF9FUShjb250ZXh0LnVjX21jb250ZXh0LmdyZWdzWzRd LCBGcm9tUG9pbnRlckNhc3Q8dWludHB0cl90PigmY29udGV4dCkpOwotKyNlbGlmIGRlZmluZWQo QVJDSF9DUFVfUFBDNjRfRkFNSUxZKQotKyAgRVhQRUNUX0VRKGNvbnRleHQudWNfbWNvbnRleHQu Z3BfcmVnc1szXSwgRnJvbVBvaW50ZXJDYXN0PHVpbnRwdHJfdD4oJmNvbnRleHQpKTsKLSAjZW5k aWYKLSB9Ci0gCi1AQCAtNDksNiArNTEsOCBAQCB1aW50cHRyX3QgUHJvZ3JhbUNvdW50ZXJGcm9t Q29udGV4dChjb25zdCBOYXRpdmVDUFVDb250ZXh0JiBjb250ZXh0KSB7Ci0gICByZXR1cm4gY29u dGV4dC51Y19tY29udGV4dC5wYzsKLSAjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZ KQotICAgcmV0dXJuIGNvbnRleHQudWNfbWNvbnRleHQucGM7Ci0rI2VsaWYgZGVmaW5lZChBUkNI X0NQVV9QUEM2NF9GQU1JTFkpCi0rICByZXR1cm4gY29udGV4dC51Y19tY29udGV4dC5ncF9yZWdz W1BUX05JUF07Ci0gI2VuZGlmCi0gfQotIAotQEAgLTYzLDYgKzY3LDggQEAgdWludHB0cl90IFN0 YWNrUG9pbnRlckZyb21Db250ZXh0KGNvbnN0IE5hdGl2ZUNQVUNvbnRleHQmIGNvbnRleHQpIHsK LSAgIHJldHVybiBjb250ZXh0LnVjX21jb250ZXh0LnNwOwotICNlbGlmIGRlZmluZWQoQVJDSF9D UFVfTUlQU19GQU1JTFkpCi0gICByZXR1cm4gY29udGV4dC51Y19tY29udGV4dC5ncmVnc1syOV07 Ci0rI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCi0rICByZXR1cm4gY29udGV4 dC51Y19tY29udGV4dC5ncF9yZWdzWzFdOwotICNlbmRpZgotIH0KLSAKLWRpZmYgLS1naXQgYS90 aGlyZF9wYXJ0eS9kYXYxZC9jb25maWcvbGludXgvcHBjNjQvY29uZmlnLmggYi90aGlyZF9wYXJ0 eS9kYXYxZC9jb25maWcvbGludXgvcHBjNjQvY29uZmlnLmgKLW5ldyBmaWxlIG1vZGUgMTAwNjQ0 Ci1pbmRleCAwMDAwMDAwMDAuLjlmYmJmNzVjYwotLS0tIC9kZXYvbnVsbAotKysrIGIvdGhpcmRf cGFydHkvZGF2MWQvY29uZmlnL2xpbnV4L3BwYzY0L2NvbmZpZy5oCi1AQCAtMCwwICsxLDM5IEBA Ci0rLyoKLSsgKiBBdXRvZ2VuZXJhdGVkIGJ5IHRoZSBNZXNvbiBidWlsZCBzeXN0ZW0uCi0rICog RG8gbm90IGVkaXQsIHlvdXIgY2hhbmdlcyB3aWxsIGJlIGxvc3QuCi0rICovCi0rCi0rI3ByYWdt YSBvbmNlCi0rCi0rI2RlZmluZSBBUkNIX0FBUkNINjQgMAotKwotKyNkZWZpbmUgQVJDSF9BUk0g MAotKwotKyNkZWZpbmUgQVJDSF9QUEM2NExFIDEKLSsKLSsjZGVmaW5lIEFSQ0hfWDg2IDAKLSsK LSsjZGVmaW5lIEFSQ0hfWDg2XzMyIDAKLSsKLSsjZGVmaW5lIEFSQ0hfWDg2XzY0IDAKLSsKLSsj ZGVmaW5lIENPTkZJR18xNkJQQyAxCi0rCi0rI2RlZmluZSBDT05GSUdfOEJQQyAxCi0rCi0rLy8g I2RlZmluZSBDT05GSUdfTE9HIDEgLS0gTG9nZ2luZyBpcyBjb250cm9sbGVkIGJ5IENocm9taXVt Ci0rCi0rI2RlZmluZSBFTkRJQU5ORVNTX0JJRyAwCi0rCi0rI2RlZmluZSBIQVZFX0FTTSAxCi0r Ci0rI2RlZmluZSBIQVZFX0NMT0NLX0dFVFRJTUUgMQotKwotKyNkZWZpbmUgSEFWRV9ETFNZTSAx Ci0rCi0rI2RlZmluZSBIQVZFX0dFVEFVWFZBTCAxCi0rCi0rI2RlZmluZSBIQVZFX1BPU0lYX01F TUFMSUdOIDEKLSsKLSsjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQotKwotZGlmZiAtLWdpdCBhL3Ro aXJkX3BhcnR5L2RhdjFkL2xpYmRhdjFkL3NyYy9wcGMvZGF2MWRfdHlwZXMuaCBiL3RoaXJkX3Bh cnR5L2RhdjFkL2xpYmRhdjFkL3NyYy9wcGMvZGF2MWRfdHlwZXMuaAotaW5kZXggMGI0YmQ3MmYw Li5hMGNhYTVlNzEgMTAwNjQ0Ci0tLS0gYS90aGlyZF9wYXJ0eS9kYXYxZC9saWJkYXYxZC9zcmMv cHBjL2RhdjFkX3R5cGVzLmgKLSsrKyBiL3RoaXJkX3BhcnR5L2RhdjFkL2xpYmRhdjFkL3NyYy9w cGMvZGF2MWRfdHlwZXMuaAotQEAgLTUxLDQgKzUxLDE5IEBACi0gI2RlZmluZSB1MTZsX3RvX2kz Mih2KSAoKGkzMng0KSB2ZWNfbWVyZ2VsKCh1MTZ4OCkgdiwgdmVjX3NwbGF0X3UxNigwKSkpCi0g I2RlZmluZSBpMTZsX3RvX2kzMih2KSAoKGkzMng0KSB2ZWNfdW5wYWNrbCgoaTE2eDgpdikpCi0g Ci0rI2lmIGRlZmluZWQoX19jbGFuZ19fKQotKyN1bmRlZiB2ZWNfc3BsYXRzCi0rI2RlZmluZSB2 ZWNfc3BsYXRzKE4pICAgICAgICAgICAgICAgICAgICAgXAotKyAgICBfR2VuZXJpYygoTiksICAg ICAgICAgICAgICAgICAgICAgICAgIFwKLSsgICAgICAgIHVuc2lnbmVkIGNoYXI6ICAgICAgKCh1 OHgxNikoTikpLCBcCi0rICAgICAgICBzaWduZWQgY2hhcjogICAgICAgICgoaTh4MTYpKE4pKSwg XAotKyAgICAgICAgdW5zaWduZWQgc2hvcnQ6ICAgICAoKHUxNng4KShOKSksIFwKLSsgICAgICAg IHNpZ25lZCBzaG9ydDogICAgICAgKChpMTZ4OCkoTikpLCBcCi0rICAgICAgICB1bnNpZ25lZCBp bnQ6ICAgICAgICgodTMyeDQpKE4pKSwgXAotKyAgICAgICAgc2lnbmVkIGludDogICAgICAgICAo KGkzMng0KShOKSksIFwKLSsgICAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZzogKCh1NjR4MikoTikp LCBcCi0rICAgICAgICBzaWduZWQgbG9uZyBsb25nOiAgICgoaTY0eDIpKE4pKSAgXAotKyAgICAp Ci0rI2VuZGlmCi0rCi0gI2VuZGlmIC8qIERBVjFEX1NSQ19QUENfVFlQRVNfSCAqLwotZGlmZiAt LWdpdCBhL3RoaXJkX3BhcnR5L2VpZ2VuMy9CVUlMRC5nbiBiL3RoaXJkX3BhcnR5L2VpZ2VuMy9C VUlMRC5nbgotaW5kZXggMGQ0ZTE4NC4uZjJjZTQ4NCAxMDA2NDQKLS0tLSBhL3RoaXJkX3BhcnR5 L2VpZ2VuMy9CVUlMRC5nbgotKysrIGIvdGhpcmRfcGFydHkvZWlnZW4zL0JVSUxELmduCi1AQCAt MjIsNCArMjIsOCBAQCBjb25maWcoImVpZ2VuX2luY2x1ZGVzIikgewotICAgICAjIGZvciB0aGlz IGNvbXBvbmVudCBvbiBXaW5kb3dzIG9uIEFybSBkdWUgdG8gY29tcGlsYXRpb24gZXJyb3JzLgot ICAgICBkZWZpbmVzICs9IFsgIkVJR0VOX0RPTlRfVkVDVE9SSVpFIiBdCi0gICB9Ci0rCi0rICBp ZiAodGFyZ2V0X2NwdSA9PSAicHBjNjQiKSB7Ci0rICAgIGRlZmluZXMgKz0gWyAiRUlHRU5fRE9O VF9WRUNUT1JJWkUiIF0KLSsgIH0KLSB9Ci0KLWRpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9saWJh b20vQlVJTEQuZ24gYi90aGlyZF9wYXJ0eS9saWJhb20vQlVJTEQuZ24KLWluZGV4IDliMDY1YmQu LmRmM2FmMDIgMTAwNjQ0Ci0tLS0gYS90aGlyZF9wYXJ0eS9saWJhb20vQlVJTEQuZ24KLSsrKyBi L3RoaXJkX3BhcnR5L2xpYmFvbS9CVUlMRC5nbgotQEAgLTQwLDYgKzQwLDggQEAKLSAgIGNwdV9h cmNoX2Z1bGwgPSAiZ2VuZXJpYyIKLSB9IGVsc2UgaWYgKGN1cnJlbnRfY3B1ID09ICJsb29uZzY0 IikgewotICAgY3B1X2FyY2hfZnVsbCA9ICJnZW5lcmljIgotK30gZWxzZSBpZiAoY3VycmVudF9j cHUgPT0gInBwYzY0IikgewotKyAgY3B1X2FyY2hfZnVsbCA9ICJnZW5lcmljIgotIH0gZWxzZSB7 Ci0gICBjcHVfYXJjaF9mdWxsID0gY3VycmVudF9jcHUKLSB9Ci1kaWZmIC0tZ2l0IGEvdGhpcmRf cGFydHkvbHNzL2xpbnV4X3N5c2NhbGxfc3VwcG9ydC5oIGIvdGhpcmRfcGFydHkvbHNzL2xpbnV4 X3N5c2NhbGxfc3VwcG9ydC5oCi1pbmRleCBlNGFjMjI2NDQuLjFjNTcwMTVkYiAxMDA2NDQKLS0t LSBhL3RoaXJkX3BhcnR5L2xzcy9saW51eF9zeXNjYWxsX3N1cHBvcnQuaAotKysrIGIvdGhpcmRf cGFydHkvbHNzL2xpbnV4X3N5c2NhbGxfc3VwcG9ydC5oCi1AQCAtMzk0Nyw3ICszOTQ3LDcgQEAg c3RydWN0IGtlcm5lbF9zdGF0ZnMgewotICAgICAgIExTU19SRUcoMiwgYnVmKTsKLSAgICAgICBM U1NfQk9EWSh2b2lkKiwgbW1hcDIsICIwIihfX3IyKSk7Ci0gICAgIH0KLS0jZWxzZQotKyNlbGlm ICFkZWZpbmVkKF9fcG93ZXJwYzY0X18pIC8qIHBwYzY0IGRvZXNuJ3QgaGF2ZSBtbWFwMiAqLwot ICAgICAjZGVmaW5lIF9fTlJfX21tYXAyIF9fTlJfbW1hcDIKLSAgICAgTFNTX0lOTElORSBfc3lz Y2FsbDYodm9pZCosIF9tbWFwMiwgICAgICAgICAgICB2b2lkKiwgcywKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgc2l6ZV90LCAgICAgICAgICAgICAgICAgICBsLCBpbnQsICAgICAgICAgICAg ICAgcCwKLUBAIC00MDU4LDcgKzQwNTgsNyBAQCBzdHJ1Y3Qga2VybmVsX3N0YXRmcyB7Ci0gICAj aWYgZGVmaW5lZChfX2kzODZfXykgfHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXAotICAgICAgIGRlZmluZWQoX19BUk1fQVJDSF8zX18pIHx8IGRl ZmluZWQoX19BUk1fRUFCSV9fKSB8fCAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgIChkZWZp bmVkKF9fbWlwc19fKSAmJiBfTUlQU19TSU0gPT0gX01JUFNfU0lNX0FCSTMyKSB8fCAgICAgICAg ICAgICAgICAgICBcCi0tICAgICAgZGVmaW5lZChfX1BQQ19fKSB8fCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotKyAgICAgKGRlZmluZWQoX19Q UENfXykgJiYgIWRlZmluZWQoX19wb3dlcnBjNjRfXykpIHx8ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAoZGVmaW5lZChfX3MzOTBf XykgJiYgIWRlZmluZWQoX19zMzkweF9fKSkKLSAgICAgLyogT24gdGhlc2UgYXJjaGl0ZWN0dXJl cywgaW1wbGVtZW50IG1tYXAoKSB3aXRoIG1tYXAyKCkuICovCi0gICAgIExTU19JTkxJTkUgdm9p ZCogTFNTX05BTUUobW1hcCkodm9pZCAqcywgc2l6ZV90IGwsIGludCBwLCBpbnQgZiwgaW50IGQs Ci1AQCAtNDg3MiwxMSArNDg3MiwxMSBAQCBzdHJ1Y3Qga2VybmVsX3N0YXR4IHsKLSAgICAgICBM U1NfU0NfQk9EWSg0LCBpbnQsIDgsIGQsIHR5cGUsIHByb3RvY29sLCBzdik7Ci0gICAgIH0KLSAg ICNlbmRpZgotLSAgI2lmIGRlZmluZWQoX19OUl9yZWN2bXNnKQotKyAgI2lmIGRlZmluZWQoX19O Ul9yZWN2bXNnKSAmJiAhZGVmaW5lZChfX1BQQ19fKQotICAgICBMU1NfSU5MSU5FIF9zeXNjYWxs Myhzc2l6ZV90LCByZWN2bXNnLCBpbnQsIHMsIHN0cnVjdCBrZXJuZWxfbXNnaGRyKiwgbXNnLAot ICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQsIGZsYWdzKQotICAgI2VuZGlmCi0tICAjaWYg ZGVmaW5lZChfX05SX3NlbmRtc2cpCi0rICAjaWYgZGVmaW5lZChfX05SX3NlbmRtc2cpICYmICFk ZWZpbmVkKF9fUFBDX18pCi0gICAgIExTU19JTkxJTkUgX3N5c2NhbGwzKHNzaXplX3QsIHNlbmRt c2csIGludCwgcywgY29uc3Qgc3RydWN0IGtlcm5lbF9tc2doZHIqLAotICAgICAgICAgICAgICAg ICAgICAgICAgICBtc2csIGludCwgZmxhZ3MpCi0gICAjZW5kaWYKLUBAIC00ODg1LDEzICs0ODg1 LDEzIEBAIHN0cnVjdCBrZXJuZWxfc3RhdHggewotICAgICAgICAgICAgICAgICAgICAgICAgICBp bnQsIGZsYWdzLCBjb25zdCBzdHJ1Y3Qga2VybmVsX3NvY2thZGRyKiwgdG8sCi0gICAgICAgICAg ICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCwgdG9sZW4pCi0gICAjZW5kaWYKLS0gICNpZiBk ZWZpbmVkKF9fTlJfc2h1dGRvd24pCi0rICAjaWYgZGVmaW5lZChfX05SX3NodXRkb3duKSAmJiAh ZGVmaW5lZChfX1BQQ19fKQotICAgICBMU1NfSU5MSU5FIF9zeXNjYWxsMihpbnQsIHNodXRkb3du LCBpbnQsIHMsIGludCwgaG93KQotICAgI2VuZGlmCi0tICAjaWYgZGVmaW5lZChfX05SX3NvY2tl dCkKLSsgICNpZiBkZWZpbmVkKF9fTlJfc29ja2V0KSAmJiAhZGVmaW5lZChfX1BQQ19fKQotICAg ICBMU1NfSU5MSU5FIF9zeXNjYWxsMyhpbnQsIHNvY2tldCwgaW50LCBkb21haW4sIGludCwgdHlw ZSwgaW50LCBwcm90b2NvbCkKLSAgICNlbmRpZgotLSAgI2lmIGRlZmluZWQoX19OUl9zb2NrZXRw YWlyKQotKyAgI2lmIGRlZmluZWQoX19OUl9zb2NrZXRwYWlyKSAmJiAhZGVmaW5lZChfX1BQQ19f KQotICAgICBMU1NfSU5MSU5FIF9zeXNjYWxsNChpbnQsIHNvY2tldHBhaXIsIGludCwgZCwgaW50 LCB0eXBlLCBpbnQsIHByb3RvY29sLAotICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQqLCBz dikKLSAgICNlbmRpZgotZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3BkZml1bS90aGlyZF9wYXJ0 eS9saWJwbmcxNi9wbmdwcml2LmggYi90aGlyZF9wYXJ0eS9wZGZpdW0vdGhpcmRfcGFydHkvbGli cG5nMTYvcG5ncHJpdi5oCi1pbmRleCA1ODNjMjZmLi5lMDNkNjk3IDEwMDY0NAotLS0tIGEvdGhp cmRfcGFydHkvcGRmaXVtL3RoaXJkX3BhcnR5L2xpYnBuZzE2L3BuZ3ByaXYuaAotKysrIGIvdGhp cmRfcGFydHkvcGRmaXVtL3RoaXJkX3BhcnR5L2xpYnBuZzE2L3BuZ3ByaXYuaAotQEAgLTE5Niwx MSArMTk2LDcgQEAKLSAjZW5kaWYKLSAKLSAjaWZuZGVmIFBOR19QT1dFUlBDX1ZTWF9PUFQKLS0j ICBpZiBkZWZpbmVkKF9fUFBDNjRfXykgJiYgZGVmaW5lZChfX0FMVElWRUNfXykgJiYgZGVmaW5l ZChfX1ZTWF9fKQotLSMgICAgIGRlZmluZSBQTkdfUE9XRVJQQ19WU1hfT1BUIDIKLS0jICBlbHNl Ci0tIyAgICAgZGVmaW5lIFBOR19QT1dFUlBDX1ZTWF9PUFQgMAotLSMgIGVuZGlmCi0rIyAgZGVm aW5lIFBOR19QT1dFUlBDX1ZTWF9PUFQgMAotICNlbmRpZgotIAotICNpZm5kZWYgUE5HX0lOVEVM X1NTRV9PUFQKLWRpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9wZmZmdC9zcmMvcGZmZnQuYyBiL3Ro aXJkX3BhcnR5L3BmZmZ0L3NyYy9wZmZmdC5jCi1pbmRleCBiZGFjNGQ3ODQuLjUxZTBmMmNhYyAx MDA2NDQKLS0tLSBhL3RoaXJkX3BhcnR5L3BmZmZ0L3NyYy9wZmZmdC5jCi0rKysgYi90aGlyZF9w YXJ0eS9wZmZmdC9zcmMvcGZmZnQuYwotQEAgLTEwMCw2ICsxMDAsNyBAQAotICAgIEFsdGl2ZWMg c3VwcG9ydCBtYWNyb3MgCi0gKi8KLSAjaWYgIWRlZmluZWQoUEZGRlRfU0lNRF9ESVNBQkxFKSAm JiAoZGVmaW5lZChfX3BwY19fKSB8fCBkZWZpbmVkKF9fcHBjNjRfXykpCi0rI2luY2x1ZGUgPGFs dGl2ZWMuaD4KLSB0eXBlZGVmIHZlY3RvciBmbG9hdCB2NHNmOwotICMgIGRlZmluZSBTSU1EX1Na IDQKLSAjICBkZWZpbmUgVlpFUk8oKSAoKHZlY3RvciBmbG9hdCkgdmVjX3NwbGF0X3U4KDApKQot ZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3NxbGl0ZS9zcmMvYW1hbGdhbWF0aW9uL3NxbGl0ZTMu YyBiL3RoaXJkX3BhcnR5L3NxbGl0ZS9zcmMvYW1hbGdhbWF0aW9uL3NxbGl0ZTMuYwotaW5kZXgg NmI0YTc4OTlkLi5iOGM3ZmU0MTQgMTAwNjQ0Ci0tLS0gYS90aGlyZF9wYXJ0eS9zcWxpdGUvc3Jj L2FtYWxnYW1hdGlvbi9zcWxpdGUzLmMKLSsrKyBiL3RoaXJkX3BhcnR5L3NxbGl0ZS9zcmMvYW1h bGdhbWF0aW9uL3NxbGl0ZTMuYwotQEAgLTE0NDc0LDcgKzE0NDc0LDggQEAgdHlwZWRlZiBJTlQx Nl9UWVBFIExvZ0VzdDsKLSAjIGlmIGRlZmluZWQoaTM4NikgICAgICB8fCBkZWZpbmVkKF9faTM4 Nl9fKSAgICAgIHx8IGRlZmluZWQoX01fSVg4NikgfHwgICAgXAotICAgICAgZGVmaW5lZChfX3g4 Nl82NCkgIHx8IGRlZmluZWQoX194ODZfNjRfXykgICAgfHwgZGVmaW5lZChfTV9YNjQpICB8fCAg ICBcCi0gICAgICBkZWZpbmVkKF9NX0FNRDY0KSAgfHwgZGVmaW5lZChfTV9BUk0pICAgICAgICB8 fCBkZWZpbmVkKF9feDg2KSAgIHx8ICAgIFwKLS0gICAgIGRlZmluZWQoX19BUk1FTF9fKSB8fCBk ZWZpbmVkKF9fQUFSQ0g2NEVMX18pIHx8IGRlZmluZWQoX01fQVJNNjQpCi0rICAgICBkZWZpbmVk KF9fQVJNRUxfXykgfHwgZGVmaW5lZChfX0FBUkNINjRFTF9fKSB8fCBkZWZpbmVkKF9NX0FSTTY0 KSB8fCAgIFwKLSsgICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykgJiYgKF9fQllURV9PUkRFUl9f ID09IF9fT1JERVJfTElUVExFX0VORElBTl9fKQotICMgICBkZWZpbmUgU1FMSVRFX0JZVEVPUkRF UiAgICAxMjM0Ci0gIyBlbGlmIGRlZmluZWQoc3BhcmMpICAgICB8fCBkZWZpbmVkKF9fcHBjX18p IHx8IFwKLSAgICAgICAgZGVmaW5lZChfX0FSTUVCX18pIHx8IGRlZmluZWQoX19BQVJDSDY0RUJf XykKLWRpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9zcWxpdGUvc3JjL2FtYWxnYW1hdGlvbl9kZXYv c3FsaXRlMy5jIGIvdGhpcmRfcGFydHkvc3FsaXRlL3NyYy9hbWFsZ2FtYXRpb25fZGV2L3NxbGl0 ZTMuYwotaW5kZXggZDMwYzliN2RlLi5jZjc1YTY5ZDkgMTAwNjQ0Ci0tLS0gYS90aGlyZF9wYXJ0 eS9zcWxpdGUvc3JjL2FtYWxnYW1hdGlvbl9kZXYvc3FsaXRlMy5jCi0rKysgYi90aGlyZF9wYXJ0 eS9zcWxpdGUvc3JjL2FtYWxnYW1hdGlvbl9kZXYvc3FsaXRlMy5jCi1AQCAtMTQ0ODcsNyArMTQ0 ODcsOCBAQCB0eXBlZGVmIElOVDE2X1RZUEUgTG9nRXN0OwotICMgaWYgZGVmaW5lZChpMzg2KSAg ICAgIHx8IGRlZmluZWQoX19pMzg2X18pICAgICAgfHwgZGVmaW5lZChfTV9JWDg2KSB8fCAgICBc Ci0gICAgICBkZWZpbmVkKF9feDg2XzY0KSAgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSAgICB8fCBk ZWZpbmVkKF9NX1g2NCkgIHx8ICAgIFwKLSAgICAgIGRlZmluZWQoX01fQU1ENjQpICB8fCBkZWZp bmVkKF9NX0FSTSkgICAgICAgIHx8IGRlZmluZWQoX194ODYpICAgfHwgICAgXAotLSAgICAgZGVm aW5lZChfX0FSTUVMX18pIHx8IGRlZmluZWQoX19BQVJDSDY0RUxfXykgfHwgZGVmaW5lZChfTV9B Uk02NCkKLSsgICAgIGRlZmluZWQoX19BUk1FTF9fKSB8fCBkZWZpbmVkKF9fQUFSQ0g2NEVMX18p IHx8IGRlZmluZWQoX01fQVJNNjQpIHx8ICAgXAotKyAgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9f KSAmJiAoX19CWVRFX09SREVSX18gPT0gX19PUkRFUl9MSVRUTEVfRU5ESUFOX18pCi0gIyAgIGRl ZmluZSBTUUxJVEVfQllURU9SREVSICAgIDEyMzQKLSAjIGVsaWYgZGVmaW5lZChzcGFyYykgICAg IHx8IGRlZmluZWQoX19wcGNfXykgfHwgXAotICAgICAgICBkZWZpbmVkKF9fQVJNRUJfXykgfHwg ZGVmaW5lZChfX0FBUkNINjRFQl9fKQotZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3NxbGl0ZS9z cmMvZXh0L3J0cmVlL3J0cmVlLmMgYi90aGlyZF9wYXJ0eS9zcWxpdGUvc3JjL2V4dC9ydHJlZS9y dHJlZS5jCi1pbmRleCBmNWI1N2E1ZTIuLjgwYTJkMGFkOCAxMDA2NDQKLS0tLSBhL3RoaXJkX3Bh cnR5L3NxbGl0ZS9zcmMvZXh0L3J0cmVlL3J0cmVlLmMKLSsrKyBiL3RoaXJkX3BhcnR5L3NxbGl0 ZS9zcmMvZXh0L3J0cmVlL3J0cmVlLmMKLUBAIC00NTAsNyArNDUwLDcgQEAgc3RydWN0IFJ0cmVl TWF0Y2hBcmcgewotICNpZiBkZWZpbmVkKGkzODYpICAgICB8fCBkZWZpbmVkKF9faTM4Nl9fKSAg IHx8IGRlZmluZWQoX01fSVg4NikgfHwgICAgXAotICAgICBkZWZpbmVkKF9feDg2XzY0KSB8fCBk ZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX01fWDY0KSAgfHwgICAgXAotICAgICBkZWZp bmVkKF9NX0FNRDY0KSB8fCBkZWZpbmVkKF9NX0FSTSkgICAgIHx8IGRlZmluZWQoX194ODYpICAg fHwgICAgXAotLSAgICBkZWZpbmVkKF9fYXJtX18pCi0rICAgIGRlZmluZWQoX19hcm1fXykgfHwg ZGVmaW5lZChfX3Bvd2VycGM2NF9fKSAmJiAoX19CWVRFX09SREVSX18gPT0gX19PUkRFUl9MSVRU TEVfRU5ESUFOX18pCi0gIyBkZWZpbmUgU1FMSVRFX0JZVEVPUkRFUiAgICAxMjM0Ci0gI2VsaWYg ZGVmaW5lZChzcGFyYykgICAgfHwgZGVmaW5lZChfX3BwY19fKQotICMgZGVmaW5lIFNRTElURV9C WVRFT1JERVIgICAgNDMyMQotZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3NxbGl0ZS9zcmMvc3Jj L3NxbGl0ZUludC5oIGIvdGhpcmRfcGFydHkvc3FsaXRlL3NyYy9zcmMvc3FsaXRlSW50LmgKLWlu ZGV4IDI0NTA3MGQ0Zi4uYjI1MTY0ZTk1IDEwMDY0NAotLS0tIGEvdGhpcmRfcGFydHkvc3FsaXRl L3NyYy9zcmMvc3FsaXRlSW50LmgKLSsrKyBiL3RoaXJkX3BhcnR5L3NxbGl0ZS9zcmMvc3JjL3Nx bGl0ZUludC5oCi1AQCAtODc3LDcgKzg3Nyw4IEBAIHR5cGVkZWYgSU5UMTZfVFlQRSBMb2dFc3Q7 Ci0gIyBpZiBkZWZpbmVkKGkzODYpICAgICAgfHwgZGVmaW5lZChfX2kzODZfXykgICAgICB8fCBk ZWZpbmVkKF9NX0lYODYpIHx8ICAgIFwKLSAgICAgIGRlZmluZWQoX194ODZfNjQpICB8fCBkZWZp bmVkKF9feDg2XzY0X18pICAgIHx8IGRlZmluZWQoX01fWDY0KSAgfHwgICAgXAotICAgICAgZGVm aW5lZChfTV9BTUQ2NCkgIHx8IGRlZmluZWQoX01fQVJNKSAgICAgICAgfHwgZGVmaW5lZChfX3g4 NikgICB8fCAgICBcCi0tICAgICBkZWZpbmVkKF9fQVJNRUxfXykgfHwgZGVmaW5lZChfX0FBUkNI NjRFTF9fKSB8fCBkZWZpbmVkKF9NX0FSTTY0KQotKyAgICAgZGVmaW5lZChfX0FSTUVMX18pIHx8 IGRlZmluZWQoX19BQVJDSDY0RUxfXykgfHwgZGVmaW5lZChfTV9BUk02NCkgfHwgXAotKyAgICAg ZGVmaW5lZChfX3Bvd2VycGM2NF9fKSAmJiAoX19CWVRFX09SREVSX18gPT0gX19PUkRFUl9MSVRU TEVfRU5ESUFOX18pCi0gIyAgIGRlZmluZSBTUUxJVEVfQllURU9SREVSICAgIDEyMzQKLSAjIGVs aWYgZGVmaW5lZChzcGFyYykgICAgIHx8IGRlZmluZWQoX19wcGNfXykgfHwgXAotICAgICAgICBk ZWZpbmVkKF9fQVJNRUJfXykgfHwgZGVmaW5lZChfX0FBUkNINjRFQl9fKQotZGlmZiAtLWdpdCBh L3RoaXJkX3BhcnR5L3dlYnJ0Yy9ydGNfYmFzZS9zeXN0ZW0vYXJjaC5oIGIvdGhpcmRfcGFydHkv d2VicnRjL3J0Y19iYXNlL3N5c3RlbS9hcmNoLmgKLWluZGV4IGJlMjM2N2I4NS4uYmU0ZWU0MjMz IDEwMDY0NAotLS0tIGEvdGhpcmRfcGFydHkvd2VicnRjL3J0Y19iYXNlL3N5c3RlbS9hcmNoLmgK LSsrKyBiL3RoaXJkX3BhcnR5L3dlYnJ0Yy9ydGNfYmFzZS9zeXN0ZW0vYXJjaC5oCi1AQCAtNzks NiArNzksMTggQEAKLSAjZWxpZiBkZWZpbmVkKF9fRU1TQ1JJUFRFTl9fKQotICNkZWZpbmUgV0VC UlRDX0FSQ0hfMzJfQklUUwotICNkZWZpbmUgV0VCUlRDX0FSQ0hfTElUVExFX0VORElBTgotKyNl bGlmIGRlZmluZWQoX19QUENfXykKLSsjZGVmaW5lIFdFQlJUQ19BUkNIX1BQQ19GQU1JTFkKLSsj aWYgX19CWVRFX09SREVSX18gPT0gX19PUkRFUl9MSVRUTEVfRU5ESUFOX18KLSsjZGVmaW5lIFdF QlJUQ19BUkNIX0xJVFRMRV9FTkRJQU4KLSsjZWxzZQotKyNkZWZpbmUgV0VCUlRDX0FSQ0hfQklH X0VORElBTgotKyNlbmRpZgotKyNpZiBkZWZpbmVkKF9fTFA2NF9fKQotKyNkZWZpbmUgV0VCUlRD X0FSQ0hfNjRfQklUUwotKyNlbHNlCi0rI2RlZmluZSBXRUJSVENfQVJDSF8zMl9CSVRTCi0rI2Vu ZGlmCi0gI2Vsc2UKLSAjZXJyb3IgUGxlYXNlIGFkZCBzdXBwb3J0IGZvciB5b3VyIGFyY2hpdGVj dHVyZSBpbiBydGNfYmFzZS9zeXN0ZW0vYXJjaC5oCi0gI2VuZGlmCi1kaWZmIC0tZ2l0IGEvdjgv QlVJTEQuZ24gYi92OC9CVUlMRC5nbgotaW5kZXggZjM5NTI5YTNhLi5lODRmYzQ0OWUgMTAwNjQ0 Ci0tLS0gYS92OC9CVUlMRC5nbgotKysrIGIvdjgvQlVJTEQuZ24KLUBAIC04NTAsNiArODUwLDEy IEBAIGNvbmZpZygidG9vbGNoYWluIikgewotICAgICB9Ci0gICAgIGlmIChob3N0X2J5dGVvcmRl ciA9PSAibGl0dGxlIikgewotICAgICAgIGRlZmluZXMgKz0gWyAiVjhfVEFSR0VUX0FSQ0hfUFBD X0xFIiBdCi0rICAgICAgY2ZsYWdzICs9IFsKLSsgICAgICAgICMgRW5hYmxlIHVzYWdlIG9mIEFs dGlWZWMsIFZTWCwgYW5kIG90aGVyIFBPV0VSOCBhbmQgaGlnaGVyIGZlYXR1cmVzCi0rICAgICAg ICAiLW1jcHU9cG93ZXI4IiwKLSsgICAgICAgICItbWFsdGl2ZWMiLAotKyAgICAgICAgIi1tdnN4 IiwKLSsgICAgICBdCi0gICAgIH0gZWxzZSBpZiAoaG9zdF9ieXRlb3JkZXIgPT0gImJpZyIpIHsK LSAgICAgICBkZWZpbmVzICs9IFsgIlY4X1RBUkdFVF9BUkNIX1BQQ19CRSIgXQotICAgICAgIGlm IChjdXJyZW50X29zID09ICJhaXgiKSB7Ci0tLS0gYS91aS9nbC9mZWF0dXJlcy5nbmkKLSsrKyBi L3VpL2dsL2ZlYXR1cmVzLmduaQotQEAgLTMzLDUgKzMzLDUgQEAKLSAgICAgICAgaXNfY2hyb21l b3NfYXNoIHx8IGlzX2Z1Y2hzaWEpICYmCi0gICAgICAgKHRhcmdldF9jcHUgPT0gIng4NiIgfHwg dGFyZ2V0X2NwdSA9PSAieDY0IiB8fCB0YXJnZXRfY3B1ID09ICJhcm0iIHx8Ci0gICAgICAgIHRh cmdldF9jcHUgPT0gImFybTY0IiB8fCB0YXJnZXRfY3B1ID09ICJtaXBzZWwiIHx8Ci0tICAgICAg IHRhcmdldF9jcHUgPT0gIm1pcHM2NGVsIiB8fCB0YXJnZXRfY3B1ID09ICJyaXNjdjY0IikKLSsg ICAgICAgdGFyZ2V0X2NwdSA9PSAibWlwczY0ZWwiIHx8IHRhcmdldF9jcHUgPT0gInJpc2N2NjQi IHx8IHRhcmdldF9jcHUgPT0gInBwYzY0IikKLSB9Ci1kaWZmIC0tZ2l0IGEvdjgvdGVzdC9CVUlM RC5nbiBiL3Y4L3Rlc3QvQlVJTEQuZ24KLWluZGV4IGZiODcyYWQzOS4uNDVmYzU4NWRkIDEwMDY0 NAotLS0tIGEvdjgvdGVzdC9CVUlMRC5nbgotKysrIGIvdjgvdGVzdC9CVUlMRC5nbgotQEAgLTQy LDcgKzQyLDcgQEAgZ3JvdXAoImduX2FsbCIpIHsKLSAgICAgICAiYmVuY2htYXJrcy9jcHA6Z25f YWxsIiwKLSAgICAgICAiY2N0ZXN0OmNjdGVzdCIsCi0gICAgICAgInVuaXR0ZXN0czpnZW5lcmF0 ZS1ieXRlY29kZS1leHBlY3RhdGlvbnMiLAotLSAgICAgICJ1bml0dGVzdHM6dW5pdHRlc3RzIiwK LSsgICAgICAjInVuaXR0ZXN0czp1bml0dGVzdHMiLAotICAgICBdCi0gICB9Ci0gfQotQEAgLTg0 LDcgKzg0LDcgQEAKLSAgICAgIm1lc3NhZ2U6djhfbWVzc2FnZSIsCi0gICAgICJtanN1bml0OnY4 X21qc3VuaXQiLAotICAgICAibWtncm9rZHVtcDpta2dyb2tkdW1wIiwKLS0gICAgInVuaXR0ZXN0 czp1bml0dGVzdHMiLAotKyAgICAjInVuaXR0ZXN0czp1bml0dGVzdHMiLAotICAgICAid2Via2l0 OnY4X3dlYmtpdCIsCi0gICBdCi0gCi1AQCAtMTA5LDcgKzEwOSw3IEBACi0gICAgICJtZXNzYWdl OnY4X21lc3NhZ2UiLAotICAgICAibWpzdW5pdDp2OF9tanN1bml0IiwKLSAgICAgIm1rZ3Jva2R1 bXA6bWtncm9rZHVtcCIsCi0tICAgICJ1bml0dGVzdHM6dW5pdHRlc3RzIiwKLSsgICAgIyJ1bml0 dGVzdHM6dW5pdHRlc3RzIiwKLSAgIF0KLSAKLSAgIGlmICh2OF9lbmFibGVfd2ViYXNzZW1ibHkp IHsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy94eHgtcHBjNjRsZS1zd2lm dHNoYWRlci5wYXRjaCBiL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy94eHgtcHBjNjRsZS1zd2lm dHNoYWRlci5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGY0NTNmNDkxZDhj Li4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL3h4eC1wcGM2NGxl LXN3aWZ0c2hhZGVyLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTggKzAsMCBAQAotLS0tIGEv dGhpcmRfcGFydHkvc3dpZnRzaGFkZXIvdGhpcmRfcGFydHkvbGx2bS0xMC4wL0JVSUxELmduCi0r KysgYi90aGlyZF9wYXJ0eS9zd2lmdHNoYWRlci90aGlyZF9wYXJ0eS9sbHZtLTEwLjAvQlVJTEQu Z24KLUBAIC01NzQsNiArNTc0LDcgQEAgc3dpZnRzaGFkZXJfbGx2bV9zb3VyY2Vfc2V0KCJzd2lm dHNoYWRlcgotICAgICAibGx2bS9saWIvTUMvTUNBc21JbmZvQ09GRi5jcHAiLAotICAgICAibGx2 bS9saWIvTUMvTUNBc21JbmZvRGFyd2luLmNwcCIsCi0gICAgICJsbHZtL2xpYi9NQy9NQ0FzbUlu Zm9FTEYuY3BwIiwKLSsgICAgImxsdm0vbGliL01DL01DQXNtSW5mb1hDT0ZGLmNwcCIsCi0gICAg ICJsbHZtL2xpYi9NQy9NQ0FzbU1hY3JvLmNwcCIsCi0gICAgICJsbHZtL2xpYi9NQy9NQ0FzbVN0 cmVhbWVyLmNwcCIsCi0gICAgICJsbHZtL2xpYi9NQy9NQ0Fzc2VtYmxlci5jcHAiLAotQEAgLTYy OSw2ICs2MzAsNyBAQCBzd2lmdHNoYWRlcl9sbHZtX3NvdXJjZV9zZXQoInN3aWZ0c2hhZGVyCi0g ICAgICJsbHZtL2xpYi9NQy9NQ1dpbkNPRkZTdHJlYW1lci5jcHAiLAotICAgICAibGx2bS9saWIv TUMvTUNXaW5FSC5jcHAiLAotICAgICAibGx2bS9saWIvTUMvTUNYQ09GRlN0cmVhbWVyLmNwcCIs Ci0rICAgICJsbHZtL2xpYi9NQy9NQ1hDT0ZGT2JqZWN0VGFyZ2V0V3JpdGVyLmNwcCIsCi0gICAg ICJsbHZtL2xpYi9NQy9NYWNoT2JqZWN0V3JpdGVyLmNwcCIsCi0gICAgICJsbHZtL2xpYi9NQy9T dHJpbmdUYWJsZUJ1aWxkZXIuY3BwIiwKLSAgICAgImxsdm0vbGliL01DL1N1YnRhcmdldEZlYXR1 cmUuY3BwIiwKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY2hyb21pdW0vdGVtcGxhdGUgYi9zcmNwa2dz L2Nocm9taXVtL3RlbXBsYXRlCmluZGV4IDdkZWE4YmJlNTBkMy4uNGE3ZmFhYjllZWJkIDEwMDY0 NAotLS0gYS9zcmNwa2dzL2Nocm9taXVtL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvY2hyb21pdW0v dGVtcGxhdGUKQEAgLTEsOSArMSw5IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdjaHJvbWl1bScK IHBrZ25hbWU9Y2hyb21pdW0KICMgU2VlIGh0dHBzOi8vY2hyb21pdW1kYXNoLmFwcHNwb3QuY29t L3JlbGVhc2VzP3BsYXRmb3JtPUxpbnV4IGZvciB0aGUgbGF0ZXN0IHZlcnNpb24KLXZlcnNpb249 MTA4LjAuNTM1OS4xMjQKK3ZlcnNpb249MTA5LjAuNTQxNC43NAogcmV2aXNpb249MQotYXJjaHM9 Imk2ODYqIHg4Nl82NCogYWFyY2g2NCogYXJtdjdsKiBwcGM2NGxlKiIKK2FyY2hzPSJpNjg2KiB4 ODZfNjQqIGFhcmNoNjQqIGFybXY3bCoiCiBob3N0bWFrZWRlcGVuZHM9IgogICQodm9wdF9pZiBj bGFuZyAiY2xhbmcgbGxkIGxsdm0xMiIpCiAgJCh2b3B0X2lmIGpzX29wdGltaXplIG9wZW5qZGsp CkBAIC0yOCw3ICsyOCw3IEBAIG1haW50YWluZXI9IkR1bmNhZW4gPGR1bmNhZW5Adm9pZGxpbnV4 Lm9yZz4iCiBsaWNlbnNlPSJCU0QtMy1DbGF1c2UiCiBob21lcGFnZT0iaHR0cHM6Ly93d3cuY2hy b21pdW0ub3JnLyIKIGRpc3RmaWxlcz0iaHR0cHM6Ly9jb21tb25kYXRhc3RvcmFnZS5nb29nbGVh cGlzLmNvbS9jaHJvbWl1bS1icm93c2VyLW9mZmljaWFsLyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50 YXIueHoiCi1jaGVja3N1bT1kNDhkZmFjMmE2MWIxNGE1ZDdkMmY0NjBiMDliNzBlZjNhYjg4ZTI3 YjgyZTMxNzM5MzhjYjU0ZWFhNjEyYTc1CitjaGVja3N1bT1lZGVkMjMzYzI2YWI2MzFiZTMyNWFk NDljYjMwNmMzMzg1MTNiNmE2NTI4MTk3ZDQyNjUzZTY2MTg3NTQ4ZTVkCiAKIGxpYjMyZGlzYWJs ZWQ9eWVzCiAKQEAgLTM5LDEwICszOSw5IEBAIGRlc2Nfb3B0aW9uX2RlYnVnPSJCdWlsZCB3aXRo IGRlYnVnIHN5bWJvbHMiCiBkZXNjX29wdGlvbl9qc19vcHRpbWl6ZT0iT3B0aW1pemUgdGhlIEpT IHVzZWQgZm9yIENocm9taXVtJ3MgVUkiCiBkZXNjX29wdGlvbl9waXBld2lyZT0iRW5hYmxlIHN1 cHBvcnQgZm9yIHNjcmVlbiBzaGFyaW5nIGZvciBXZWJSVEMgdmlhIFBpcGVXaXJlIgogCi0KLWNh c2UgIiRYQlBTX1RBUkdFVF9NQUNISU5FIiBpbgotCXBwYzY0Ki1tdXNsKSBtYWtlZGVwZW5kcys9 IiBsaWJ1Y29udGV4dC1kZXZlbCIgOzsKLWVzYWMKK2lmIFsgIiRYQlBTX1RBUkdFVF9MSUJDIiA9 ICJtdXNsIiBdOyB0aGVuCisJbWFrZWRlcGVuZHMrPSIgbXVzbC1sZWdhY3ktY29tcGF0IgorZmkK IAogaWYgWyAiJENST1NTX0JVSUxEIiBdOyB0aGVuCiAJaG9zdG1ha2VkZXBlbmRzKz0iIGxpYlgx MS1kZXZlbCBsaWJ4Y2ItZGV2ZWwgcGNpdXRpbHMtZGV2ZWwgbGliWGV4dC1kZXZlbCBsaWJnbHZu ZC1kZXZlbApAQCAtNjUsMTAgKzY0LDYgQEAgaWYgWyAiJENST1NTX0JVSUxEIiBdOyB0aGVuCiAJ ZXNhYwogZmkKIAotY2FzZSAiJHtYQlBTX1RBUkdFVF9NQUNISU5FfSIgaW4KLQlpNjg2KikgYnJv a2VuPSJodHRwczovL2J1aWxkLnZvaWRsaW51eC5vcmcvYnVpbGRlcnMvaTY4Nl9idWlsZGVyL2J1 aWxkcy80MDI1OC9zdGVwcy9zaGVsbF8zL2xvZ3Mvc3RkaW8iIDs7Ci1lc2FjCi0KIHBvc3RfcGF0 Y2goKSB7CiAJaWYgWyAiJFhCUFNfVEFSR0VUX0xJQkMiID0gIm11c2wiIF07IHRoZW4KIAkJZm9y IGYgaW4gIiR7RklMRVNESVJ9Ii9tdXNsLXBhdGNoZXMvKi5wYXRjaDsgZG8KQEAgLTEzNSwyMCAr MTMwLDYgQEAgZG9fY29uZmlndXJlKCkgewogCQlDRkxBR1M9JENGTEFHU19GT1JfQlVJTEQgQ1hY RkxBR1M9JENYWEZMQUdTX0ZPUl9CVUlMRCBMREZMQUdTPSRMREZMQUdTX0ZPUl9CVUlMRCBcCiAJ CXRvb2xzL2duL2Jvb3RzdHJhcC9ib290c3RyYXAucHkgLS1za2lwLWdlbmVyYXRlLWJ1aWxkZmls ZXMKIAotCSMgd2UgbmVlZCB0byBnZW5lcmF0ZSBwcGM2NCBzdHVmZiBmb3IgbGlidnB4IGFzIGl0 J3Mgbm90IHNoaXBwZWQKLQkjIHRoaXMgaGFzIHRvIGJlIGRvbmUgYmVmb3JlIHVuYnVuZGxpbmcs IGJ1dCBhZnRlciBnbiBpcyBidWlsdAotCSMgY29tbWVudCBvdXQgaWYgd2Ugc3dpdGNoIGJhY2sg dG8gc3lzdGVtIGxpYnZweCBhZ2FpbiBsYXRlcgotCWNhc2UgIiRYQlBTX1RBUkdFVF9NQUNISU5F IiBpbgotCQlwcGM2NCopCi0JCQlwdXNoZCB0aGlyZF9wYXJ0eS9saWJ2cHgKLQkJCW1rZGlyIC1w IHNvdXJjZS9jb25maWcvbGludXgvcHBjNjQKLQkJCSMgbmVlZCBQQVRIIHRvIGZpbmQgZ24KLQkJ CVBBVEg9IiR7d3Jrc3JjfS9vdXQvUmVsZWFzZTokUEFUSCIgLi9nZW5lcmF0ZV9nbmkuc2ggfHwg XAotCQkJCW1zZ19lcnJvciAiZmFpbGVkIHRvIGdlbmVyYXRlIGxpYnZweCBnbmkiCi0JCQlwb3Bk Ci0JCQk7OwotCWVzYWMKLQogCSMgVXNlIHN5c3RlbS1wcm92aWRlZCBsaWJyYXJpZXMuCiAJIyBU T0RPOiB1c2Vfc3lzdGVtX2h1bnNwZWxsICh1cHN0cmVhbSBjaGFuZ2VzIG5lZWRlZCkuCiAJIyBU T0RPOiB1c2Vfc3lzdGVtX2xpYnNydHAuCkBAIC0yMjAsOSArMjAxLDYgQEAgZG9fY29uZmlndXJl KCkgewogCiAJCSdpY3VfdXNlX2RhdGFfZmlsZT10cnVlJwogCi0JCSd1c2VfYWxsb2NhdG9yPSJu b25lIicKLQkJJ3VzZV9hbGxvY2F0b3Jfc2hpbT1mYWxzZScKLQogCQknZW5hYmxlX3dpZGV2aW5l PXRydWUnCiAJCSdlbmFibGVfaGFuZ291dF9zZXJ2aWNlc19leHRlbnNpb249dHJ1ZScKIApAQCAt Mjg2LDExICsyNjQsNiBAQCBkb19jb25maWd1cmUoKSB7CiAJCSkKIAlmaQogCi0JIyB0aGlzIGRv ZXMgbm90IHdvcmsgb24gcHBjNjQgeWV0Ci0JY2FzZSAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiIGlu Ci0JCXBwYzY0KikgY29uZis9KCAiZW5hYmxlX2p4bF9kZWNvZGVyPWZhbHNlIiApOzsKLQllc2Fj Ci0KIAlpZiBbICIkWEJQU19UQVJHRVRfTElCQyIgPSAibXVzbCIgXTsgdGhlbgogCQljb25mKz0o ICdpc19tdXNsPXRydWUnICkKIAlmaQpAQCAtMzAwLDcgKzI3Myw2IEBAIGRvX2NvbmZpZ3VyZSgp IHsKIAkJaTY4NiopIGNvbmYrPSggJ3RhcmdldF9jcHU9Ing4NiInICkgOzsKIAkJYXJtKikgY29u Zis9KCAndGFyZ2V0X2NwdT0iYXJtIicgKSA7OwogCQlhYXJjaDY0KikgY29uZis9KCAndGFyZ2V0 X2NwdT0iYXJtNjQiJyApIDs7Ci0JCXBwYzY0KikgY29uZis9KCAndGFyZ2V0X2NwdT0icHBjNjQi JyApIDs7CiAJZXNhYwogCiAJaWYgWyAiJENST1NTX0JVSUxEIiBdOyB0aGVuCkBAIC0zMDksNyAr MjgxLDYgQEAgZG9fY29uZmlndXJlKCkgewogCQkJaTY4NiopIGNvbmYrPSggJ2hvc3RfY3B1PSJ4 ODYiJyApIDs7CiAJCQlhcm0qKSBjb25mKz0oICdob3N0X2NwdT0iYXJtIicgKSA7OwogCQkJYWFy Y2g2NCopIGNvbmYrPSggJ2hvc3RfY3B1PSJhcm02NCInICkgOzsKLQkJCXBwYzY0KikgY29uZis9 KCAnaG9zdF9jcHU9InBwYzY0IicgKSA7OwogCQllc2FjCiAJZmkKIAlfc2V0dXBfdG9vbGNoYWlu CkBAIC0zMTgsMTMgKzI4OSwxMyBAQCBkb19jb25maWd1cmUoKSB7CiAKIGRvX2J1aWxkKCkgewog CV9zZXR1cF90b29sY2hhaW4KLQlDQ0FDSEVfU0xPUFBJTkVTUz1pbmNsdWRlX2ZpbGVfbXRpbWUg bmluamEgLUMgb3V0L1JlbGVhc2UgJHttYWtlam9ic30gY2hyb21lIGNocm9tZWRyaXZlciBjaHJv bWVfY3Jhc2hwYWRfaGFuZGxlcgorCUNDQUNIRV9TTE9QUElORVNTPWluY2x1ZGVfZmlsZV9tdGlt ZSBuaW5qYSAtQyBvdXQvUmVsZWFzZSAke21ha2Vqb2JzfSBjaHJvbWUgY2hyb21lZHJpdmVyLnVu c3RyaXBwZWQgY2hyb21lX2NyYXNocGFkX2hhbmRsZXIKIH0KIAogZG9faW5zdGFsbCgpIHsKIAl2 aW5zdGFsbCBvdXQvUmVsZWFzZS9jaHJvbWUgNzU1IHVzci9saWIvJHtwa2duYW1lfSAke3BrZ25h bWV9CiAJdmluc3RhbGwgb3V0L1JlbGVhc2UvY2hyb21lX2NyYXNocGFkX2hhbmRsZXIgNzU1IHVz ci9saWIvJHtwa2duYW1lfSBjaHJvbWVfY3Jhc2hwYWRfaGFuZGxlcgotCXZpbnN0YWxsIG91dC9S ZWxlYXNlL2Nocm9tZWRyaXZlciA3NTUgdXNyL2xpYi8ke3BrZ25hbWV9IGNocm9tZWRyaXZlcgor CXZpbnN0YWxsIG91dC9SZWxlYXNlL2Nocm9tZWRyaXZlci51bnN0cmlwcGVkIDc1NSB1c3IvbGli LyR7cGtnbmFtZX0gY2hyb21lZHJpdmVyCiAJdmluc3RhbGwgb3V0L1JlbGVhc2UvbGliRUdMLnNv IDc1NSB1c3IvbGliLyR7cGtnbmFtZX0gbGliRUdMLnNvCiAJdmluc3RhbGwgb3V0L1JlbGVhc2Uv bGliR0xFU3YyLnNvIDc1NSB1c3IvbGliLyR7cGtnbmFtZX0gbGliR0xFU3YyLnNvCiAJdmluc3Rh bGwgb3V0L1JlbGVhc2UvbGlidmtfc3dpZnRzaGFkZXIuc28gNzU1IHVzci9saWIvJHtwa2duYW1l fSBsaWJ2a19zd2lmdHNoYWRlci5zbwo= --===============1440185691561564373==--