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=-0.2 required=5.0 tests=ALL_TRUSTED, DKIM_ADSP_NXDOMAIN autolearn=no autolearn_force=no version=3.4.4 Received: (qmail 5580 invoked from network); 21 Nov 2020 20:36:51 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 21 Nov 2020 20:36:51 -0000 Content-Type: multipart/mixed; boundary="===============5902752568046354949==" MIME-Version: 1.0 Subject: =?utf8?b?W1BSIFBBVENIXSBbV2lQXSBxdDU6IHVwZGF0ZSB0byA1LjE1LjIu?= To: ml@inbox.vuxu.org From: Johnnynator Reply-to: ml@inbox.vuxu.org Message-ID: Date: Sat, 21 Nov 2020 21:36:47 +0100 List-Id: GitHub notification mails are now in MIME to allow UTF8. --===============5902752568046354949== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYSBuZXcgcHVsbCByZXF1ZXN0IGJ5IEpvaG5ueW5hdG9yIGFnYWluc3QgbWFzdGVy IG9uIHRoZSB2b2lkLXBhY2thZ2VzIHJlcG9zaXRvcnkKCmh0dHBzOi8vZ2l0aHViLmNvbS9Kb2hu bnluYXRvci92b2lkLXBhY2thZ2VzIHF0NS4xNS4yCmh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxp bnV4L3ZvaWQtcGFja2FnZXMvcHVsbC8yNjU3NAoKW1dpUF0gcXQ1OiB1cGRhdGUgdG8gNS4xNS4y LgpUb2RvOg0KLSBbIF0gZml4IHF0NS13ZWJlbmdpbmUgY3Jvc3MgYnVpbGRzDQotIFsgXSByZWJh c2UgcHBjIHBhdGNoc2V0DQoNClRlc3QgcmVwb3M6DQpodHRwczovL3ZvaWQuam9obm55bmF0b3Iu ZGV2L3F0NS4xNS4yLw0KaHR0cHM6Ly92b2lkLmpvaG5ueW5hdG9yLmRldi9xdDUuMTUuMi1zbmRp by8NCg0KS2V5IGZpbmdlcnByaW50OiBgNmI6N2U6YmQ6MzU6NjA6MjA6MDg6ZTk6NWE6ZjU6OGI6 YWQ6MzI6Zjk6YTQ6NDJgCgpBIHBhdGNoIGZpbGUgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vdm9p ZC1saW51eC92b2lkLXBhY2thZ2VzL3B1bGwvMjY1NzQucGF0Y2ggaXMgYXR0YWNoZWQ= --===============5902752568046354949== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-qt5.15.2-26574.patch" RnJvbSA5NzdmOGVhODA5NTA5MzBiMmEzNWY5ZmQzM2I0MzA2NDdkYjNmYzM1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKb2huIDxtZUBqb2hubnluYXRvci5kZXY+CkRhdGU6IEZyaSwg MjAgTm92IDIwMjAgMjM6MDI6NDkgKzAxMDAKU3ViamVjdDogW1BBVENIIDEvNl0gcXQ1OiB1cGRh dGUgdG8gNS4xNS4yLgoKLS0tCiAuLi4vcXQ1L3BhdGNoZXMvMDA2MC11cHN0cmVhbS02NTI0M2Fk Ny5wYXRjaCAgfCA4NyAtLS0tLS0tLS0tLS0tLS0tLS0tCiAuLi4vcGF0Y2hlcy9xdG5ldHdvcmst NS4xNS4wLWxpYnJlc3NsLnBhdGNoICAgfCA3NCArKysrKysrKysrKy0tLS0tCiBzcmNwa2dzL3F0 NS90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNiArLQogMyBmaWxlcyBjaGFu Z2VkLCA1NCBpbnNlcnRpb25zKCspLCAxMTMgZGVsZXRpb25zKC0pCiBkZWxldGUgbW9kZSAxMDA2 NDQgc3JjcGtncy9xdDUvcGF0Y2hlcy8wMDYwLXVwc3RyZWFtLTY1MjQzYWQ3LnBhdGNoCgpkaWZm IC0tZ2l0IGEvc3JjcGtncy9xdDUvcGF0Y2hlcy8wMDYwLXVwc3RyZWFtLTY1MjQzYWQ3LnBhdGNo IGIvc3JjcGtncy9xdDUvcGF0Y2hlcy8wMDYwLXVwc3RyZWFtLTY1MjQzYWQ3LnBhdGNoCmRlbGV0 ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkMTFhZTFkODg2NS4uMDAwMDAwMDAwMDAKLS0tIGEv c3JjcGtncy9xdDUvcGF0Y2hlcy8wMDYwLXVwc3RyZWFtLTY1MjQzYWQ3LnBhdGNoCisrKyAvZGV2 L251bGwKQEAgLTEsODcgKzAsMCBAQAotRnJvbSA2NTI0M2FkN2FlZjQ4YWY0Njg5ZWE0NDU0OTE2 YjUwNDAyNWI1MDUxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogRnJpZWRlbWFubiBL bGVpbnQgPEZyaWVkZW1hbm4uS2xlaW50QHF0LmlvPgotRGF0ZTogRnJpLCAyNSBTZXAgMjAyMCAx NDoxMDo1OCArMDIwMAotU3ViamVjdDogRW1pdCBRU2NyZWVuOjpnZW9tZXRyeUNoYW5nZWQgd2hl biB0aGUgbG9naWNhbCBEUEkgY2hhbmdlcwotCi1BZGQgdGhlIG1pc3NpbmcgY2FsbCB0byBRU2Ny ZWVuUHJpdmF0ZTo6ZW1pdEdlb21ldHJ5Q2hhbmdlU2lnbmFscygpCi1hbG9uZyB3aXRoIGFuIGVt aXNzaW9uIG9mIHBoeXNpY2FsRG90c1BlckluY2hDaGFuZ2VkKCkKLXNpbmNlIHRoYXQgaXMgY2Fs Y3VsYXRlZCBmcm9tIGdlb21ldHJ5IGFuZCBwaHlzaWNhbCBzaXplLgotCi1SZWFycmFuZ2UgdGhl IGNvZGUgaW4KLVFHdWlBcHBsaWNhdGlvblByaXZhdGU6OnByb2Nlc3NTY3JlZW5HZW9tZXRyeUNo YW5nZSgpCi10byBwcmV2ZW50IGR1cGxpY2F0ZSBlbWlzc2lvbnMgb2YgZ2VvbWV0cnlDaGFuZ2Vk KCksCi1waHlzaWNhbERvdHNQZXJJbmNoQ2hhbmdlZCgpIHdoaWNoIHRoaXMgY2hhbmdlIHdvdWxk IGludHJvZHVjZS4KLQotQW1lbmRzIDUyOTAwMjdlM2JhYjc1ZjE0ZmMwYTJiN2MyMDY1OTRkOWNi OTFlNzYuCi0KLVRhc2stbnVtYmVyOiBRVEJVRy03NjkwMgotVGFzay1udW1iZXI6IFFUQlVHLTc5 MjQ4Ci1GaXhlczogUVRCVUctODY2MDQKLUNoYW5nZS1JZDogSTNkYzJlYzVjY2Q5YzY0MTNlOTJm OTI0NjI0MmYzMjNlOGFmYzVlNTcKLVJldmlld2VkLWJ5OiBEYXZpZCBFZG11bmRzb24gPGRhdmlk ZWRtdW5kc29uQGtkZS5vcmc+Ci0oY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCA1YzczMDc3NzVk MzJhZTBhNTRhY2FkOGFlN2ExYzlkM2NmZjdkNDVlKQotUmV2aWV3ZWQtYnk6IFF0IENoZXJyeS1w aWNrIEJvdCA8Y2hlcnJ5cGlja19ib3RAcXQtcHJvamVjdC5vcmc+Ci0tLS0KLSBzcmMvZ3VpL2tl cm5lbC9xZ3VpYXBwbGljYXRpb24uY3BwIHwgMTEgKysrKystLS0tLS0KLSBzcmMvZ3VpL2tlcm5l bC9xc2NyZWVuLmNwcCAgICAgICAgIHwgIDYgKysrKysrCi0gMiBmaWxlcyBjaGFuZ2VkLCAxMSBp bnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvc3JjL2d1aS9rZXJu ZWwvcWd1aWFwcGxpY2F0aW9uLmNwcCBiL3NyYy9ndWkva2VybmVsL3FndWlhcHBsaWNhdGlvbi5j cHAKLWluZGV4IDIzOWE3ODMxM2MuLmVmMDkwNjA1ODEgMTAwNjQ0Ci0tLS0gcXRiYXNlL3NyYy9n dWkva2VybmVsL3FndWlhcHBsaWNhdGlvbi5jcHAKLSsrKyBxdGJhc2Uvc3JjL2d1aS9rZXJuZWwv cWd1aWFwcGxpY2F0aW9uLmNwcAotQEAgLTMxNjIsMTMgKzMxNjIsMTQgQEAgdm9pZCBRR3VpQXBw bGljYXRpb25Qcml2YXRlOjpwcm9jZXNzU2NyZWVuR2VvbWV0cnlDaGFuZ2UoUVdpbmRvd1N5c3Rl bUludGVyZmFjZVAKLSAgICAgYm9vbCBhdmFpbGFibGVHZW9tZXRyeUNoYW5nZWQgPSBlLT5hdmFp bGFibGVHZW9tZXRyeSAhPSBzLT5kX2Z1bmMoKS0+YXZhaWxhYmxlR2VvbWV0cnk7Ci0gICAgIHMt PmRfZnVuYygpLT5hdmFpbGFibGVHZW9tZXRyeSA9IGUtPmF2YWlsYWJsZUdlb21ldHJ5OwotIAot LSAgICBpZiAoZ2VvbWV0cnlDaGFuZ2VkKSB7Ci0tICAgICAgICBRdDo6U2NyZWVuT3JpZW50YXRp b24gcHJpbWFyeU9yaWVudGF0aW9uID0gcy0+cHJpbWFyeU9yaWVudGF0aW9uKCk7Ci0rICAgIGNv bnN0IFF0OjpTY3JlZW5PcmllbnRhdGlvbiBwcmltYXJ5T3JpZW50YXRpb24gPSBzLT5wcmltYXJ5 T3JpZW50YXRpb24oKTsKLSsgICAgaWYgKGdlb21ldHJ5Q2hhbmdlZCkKLSAgICAgICAgIHMtPmRf ZnVuYygpLT51cGRhdGVQcmltYXJ5T3JpZW50YXRpb24oKTsKLSAKLS0gICAgICAgIGVtaXQgcy0+ Z2VvbWV0cnlDaGFuZ2VkKHMtPmdlb21ldHJ5KCkpOwotKyAgICBzLT5kX2Z1bmMoKS0+ZW1pdEdl b21ldHJ5Q2hhbmdlU2lnbmFscyhnZW9tZXRyeUNoYW5nZWQsIGF2YWlsYWJsZUdlb21ldHJ5Q2hh bmdlZCk7Ci0rCi0rICAgIGlmIChnZW9tZXRyeUNoYW5nZWQpIHsKLSAgICAgICAgIGVtaXQgcy0+ cGh5c2ljYWxTaXplQ2hhbmdlZChzLT5waHlzaWNhbFNpemUoKSk7Ci0tICAgICAgICBlbWl0IHMt PnBoeXNpY2FsRG90c1BlckluY2hDaGFuZ2VkKHMtPnBoeXNpY2FsRG90c1BlckluY2goKSk7Ci0g ICAgICAgICBlbWl0IHMtPmxvZ2ljYWxEb3RzUGVySW5jaENoYW5nZWQocy0+bG9naWNhbERvdHNQ ZXJJbmNoKCkpOwotIAotICAgICAgICAgaWYgKHMtPnByaW1hcnlPcmllbnRhdGlvbigpICE9IHBy aW1hcnlPcmllbnRhdGlvbikKLUBAIC0zMTc4LDggKzMxNzksNiBAQCB2b2lkIFFHdWlBcHBsaWNh dGlvblByaXZhdGU6OnByb2Nlc3NTY3JlZW5HZW9tZXRyeUNoYW5nZShRV2luZG93U3lzdGVtSW50 ZXJmYWNlUAotICAgICAgICAgICAgIHVwZGF0ZUZpbHRlcmVkU2NyZWVuT3JpZW50YXRpb24ocyk7 Ci0gICAgIH0KLSAKLS0gICAgcy0+ZF9mdW5jKCktPmVtaXRHZW9tZXRyeUNoYW5nZVNpZ25hbHMo Z2VvbWV0cnlDaGFuZ2VkLCBhdmFpbGFibGVHZW9tZXRyeUNoYW5nZWQpOwotLQotICAgICByZXNl dENhY2hlZERldmljZVBpeGVsUmF0aW8oKTsKLSB9Ci0gCi1kaWZmIC0tZ2l0IGEvc3JjL2d1aS9r ZXJuZWwvcXNjcmVlbi5jcHAgYi9zcmMvZ3VpL2tlcm5lbC9xc2NyZWVuLmNwcAotaW5kZXggZGY2 MjhmY2M3My4uYTFhZmMxYmExNCAxMDA2NDQKLS0tLSBxdGJhc2Uvc3JjL2d1aS9rZXJuZWwvcXNj cmVlbi5jcHAKLSsrKyBxdGJhc2Uvc3JjL2d1aS9rZXJuZWwvcXNjcmVlbi5jcHAKLUBAIC04OCw2 ICs4OCw5IEBAIHZvaWQgUVNjcmVlblByaXZhdGU6OnVwZGF0ZUdlb21ldHJpZXNXaXRoU2lnbmFs cygpCi0gdm9pZCBRU2NyZWVuUHJpdmF0ZTo6ZW1pdEdlb21ldHJ5Q2hhbmdlU2lnbmFscyhib29s IGdlb21ldHJ5Q2hhbmdlZCwgYm9vbCBhdmFpbGFibGVHZW9tZXRyeUNoYW5nZWQpCi0gewotICAg ICBRX1EoUVNjcmVlbik7Ci0rICAgIGlmIChnZW9tZXRyeUNoYW5nZWQpCi0rICAgICAgICBlbWl0 IHEtPmdlb21ldHJ5Q2hhbmdlZChnZW9tZXRyeSk7Ci0rCi0gICAgIGlmIChhdmFpbGFibGVHZW9t ZXRyeUNoYW5nZWQpCi0gICAgICAgICBlbWl0IHEtPmF2YWlsYWJsZUdlb21ldHJ5Q2hhbmdlZChh dmFpbGFibGVHZW9tZXRyeSk7Ci0gCi1AQCAtOTYsNiArOTksOSBAQCB2b2lkIFFTY3JlZW5Qcml2 YXRlOjplbWl0R2VvbWV0cnlDaGFuZ2VTaWduYWxzKGJvb2wgZ2VvbWV0cnlDaGFuZ2VkLCBib29s IGF2YWlsYQotICAgICAgICAgZm9yIChRU2NyZWVuKiBzaWJsaW5nIDogc2libGluZ3MpCi0gICAg ICAgICAgICAgZW1pdCBzaWJsaW5nLT52aXJ0dWFsR2VvbWV0cnlDaGFuZ2VkKHNpYmxpbmctPnZp cnR1YWxHZW9tZXRyeSgpKTsKLSAgICAgfQotKwotKyAgICBpZiAoZ2VvbWV0cnlDaGFuZ2VkKQot KyAgICAgICAgZW1pdCBxLT5waHlzaWNhbERvdHNQZXJJbmNoQ2hhbmdlZChxLT5waHlzaWNhbERv dHNQZXJJbmNoKCkpOwotIH0KLSAKLSB2b2lkIFFTY3JlZW5Qcml2YXRlOjpzZXRQbGF0Zm9ybVNj cmVlbihRUGxhdGZvcm1TY3JlZW4gKnNjcmVlbikKLS0tIAotY2dpdCB2MS4yLjEKLQpkaWZmIC0t Z2l0IGEvc3JjcGtncy9xdDUvcGF0Y2hlcy9xdG5ldHdvcmstNS4xNS4wLWxpYnJlc3NsLnBhdGNo IGIvc3JjcGtncy9xdDUvcGF0Y2hlcy9xdG5ldHdvcmstNS4xNS4wLWxpYnJlc3NsLnBhdGNoCmlu ZGV4IDgzOGQ2ZjA1OTc1Li45OTdlNjgxNTZjNiAxMDA2NDQKLS0tIGEvc3JjcGtncy9xdDUvcGF0 Y2hlcy9xdG5ldHdvcmstNS4xNS4wLWxpYnJlc3NsLnBhdGNoCisrKyBiL3NyY3BrZ3MvcXQ1L3Bh dGNoZXMvcXRuZXR3b3JrLTUuMTUuMC1saWJyZXNzbC5wYXRjaApAQCAtMSwxOSArMSwyMCBAQAot RnJvbSA0Nzc0ZmNkMzFhNDlmNmYxOTNiZjEwOTkwNjAxYWQ0OTRmYWIyMDEzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQorRnJvbSAyYWE0NDgxMjFmZjYyZTEwNGQzMzNmMTkyYTdmMTlmYzc2ZDBj ZjE5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQogRnJvbTogU3RlZmFuIFN0cm9naW4gPHN0ZWls c0BnZW50b28ub3JnPgogRGF0ZTogV2VkLCA1IEZlYiAyMDIwIDAzOjQ5OjM1ICswMjAwCi1TdWJq ZWN0OiBbUEFUQ0hdIFFTc2xTb2NrZXQgLSBhZGQgTGlicmVTU0wgc3VwcG9ydAorU3ViamVjdDog W1BBVENIXSBbUEFUQ0hdIFFTc2xTb2NrZXQgLSBhZGQgTGlicmVTU0wgc3VwcG9ydAogCiBVcHN0 cmVhbS1TdGF0dXM6IEluYXBwcm9wcmlhdGUKIFtVcHN0cmVhbSBpcyBub3Qgd2lsbGluZyB0byBh Y2NlcHQgYW55IHBhdGNoZXMgZm9yIExpYnJlU1NMIHN1cHBvcnRdCiBTaWduZWQtb2ZmLWJ5OiBT dGVmYW4gU3Ryb2dpbiA8c3RlaWxzQGdlbnRvby5vcmc+CiAtLS0KICBzcmMvbmV0d29yay9zc2wv cXNzbGNlcnRpZmljYXRlX29wZW5zc2wuY3BwICAgfCAgMiArLQotIHNyYy9uZXR3b3JrL3NzbC9x c3NsY29udGV4dF9vcGVuc3NsLmNwcCAgICAgICB8IDE3ICsrKysrKystCisgc3JjL25ldHdvcmsv c3NsL3Fzc2xjb250ZXh0X29wZW5zc2wuY3BwICAgICAgIHwgMTkgKysrKysrKy0KICBzcmMvbmV0 d29yay9zc2wvcXNzbGNvbnRleHRfb3BlbnNzbF9wLmggICAgICAgfCAgNyArKysKKyBzcmMvbmV0 d29yay9zc2wvcXNzbGtleV9vcGVuc3NsLmNwcCAgICAgICAgICAgfCAgMiArLQogIHNyYy9uZXR3 b3JrL3NzbC9xc3Nsc29ja2V0X29wZW5zc2wuY3BwICAgICAgICB8ICAyICstCi0gLi4uL3NzbC9x c3Nsc29ja2V0X29wZW5zc2xfc3ltYm9scy5jcHAgICAgICAgIHwgMjUgKysrKysrKysrKysKLSAu Li4vc3NsL3Fzc2xzb2NrZXRfb3BlbnNzbF9zeW1ib2xzX3AuaCAgICAgICAgfCA0MyArKysrKysr KysrKysrKysrKysrCi0gNiBmaWxlcyBjaGFuZ2VkLCA5MyBpbnNlcnRpb25zKCspLCAzIGRlbGV0 aW9ucygtKQorIC4uLi9zc2wvcXNzbHNvY2tldF9vcGVuc3NsX3N5bWJvbHMuY3BwICAgICAgICB8 IDM3ICsrKysrKysrKysrKysrLQorIC4uLi9zc2wvcXNzbHNvY2tldF9vcGVuc3NsX3N5bWJvbHNf cC5oICAgICAgICB8IDQ1ICsrKysrKysrKysrKysrKysrKy0KKyA3IGZpbGVzIGNoYW5nZWQsIDEw NyBpbnNlcnRpb25zKCspLCA3IGRlbGV0aW9ucygtKQogCiBkaWZmIC0tZ2l0IHF0YmFzZS9zcmMv bmV0d29yay9zc2wvcXNzbGNlcnRpZmljYXRlX29wZW5zc2wuY3BwIHF0YmFzZS9zcmMvbmV0d29y ay9zc2wvcXNzbGNlcnRpZmljYXRlX29wZW5zc2wuY3BwCiBpbmRleCBjYTlkNjFjY2IxLi4xOTc3 NDQzMmNlIDEwMDY0NApAQCAtMjksMTAgKzMwLDIyIEBAIGluZGV4IGNhOWQ2MWNjYjEuLjE5Nzc0 NDMyY2UgMTAwNjQ0CiAgI2Vsc2UKICAgICAgICAgIHFfQ1JZUFRPX2ZyZWUoZGF0YSk7CiBkaWZm IC0tZ2l0IHF0YmFzZS9zcmMvbmV0d29yay9zc2wvcXNzbGNvbnRleHRfb3BlbnNzbC5jcHAgcXRi YXNlL3NyYy9uZXR3b3JrL3NzbC9xc3NsY29udGV4dF9vcGVuc3NsLmNwcAotaW5kZXggYWJjMzk4 YjIwOS4uYzJmOTBiZTAwOSAxMDA2NDQKK2luZGV4IGM5ZjIwMmY1NzMuLjJlY2RiYmI3ZTUgMTAw NjQ0CiAtLS0gcXRiYXNlL3NyYy9uZXR3b3JrL3NzbC9xc3NsY29udGV4dF9vcGVuc3NsLmNwcAog KysrIHF0YmFzZS9zcmMvbmV0d29yay9zc2wvcXNzbGNvbnRleHRfb3BlbnNzbC5jcHAKLUBAIC0z OTcsMTYgKzM5NywyOCBAQCBpbml0X2NvbnRleHQ6CitAQCAtMzUxLDkgKzM1MSwxMSBAQCBpbml0 X2NvbnRleHQ6CisgICAgICAgICByZXR1cm47CisgICAgIH0KKyAKKysjaWZuZGVmIExJQlJFU1NM X1ZFUlNJT05fTlVNQkVSCisgICAgIC8vIEEgbmFzdHkgaGFja2VkIE9wZW5TU0wgdXNpbmcgYSBs ZXZlbCB0aGF0IHdpbGwgbWFrZSBvdXIgYXV0by10ZXN0cyBmYWlsOgorICAgICBpZiAocV9TU0xf Q1RYX2dldF9zZWN1cml0eV9sZXZlbChzc2xDb250ZXh0LT5jdHgpID4gMSAmJiAqZm9yY2VTZWN1 cml0eUxldmVsKCkpCisgICAgICAgICBxX1NTTF9DVFhfc2V0X3NlY3VyaXR5X2xldmVsKHNzbENv bnRleHQtPmN0eCwgMSk7CisrI2VuZGlmCisgCisgICAgIGNvbnN0IGxvbmcgYW55VmVyc2lvbiA9 CisgI2lmIFFUX0NPTkZJRyhkdGxzKQorQEAgLTQwOCwxNiArNDEwLDI4IEBAIGluaXRfY29udGV4 dDoKICAgICAgICAgIG1heFZlcnNpb24gPSBEVExTMV9WRVJTSU9OOwogICAgICAgICAgYnJlYWs7 CiAgICAgIGNhc2UgUVNzbDo6RHRsc1YxXzBPckxhdGVyOgpAQCAtNjEsNyArNzQsNyBAQCBpbmRl eCBhYmMzOThiMjA5Li5jMmY5MGJlMDA5IDEwMDY0NAogICAgICAgICAgYnJlYWs7CiAgICAgIGNh c2UgUVNzbDo6VGxzVjFfM09yTGF0ZXI6CiAgI2lmZGVmIFRMUzFfM19WRVJTSU9OCi1AQCAtNzEx LDYgKzcyMyw3IEBAIHZvaWQgUVNzbENvbnRleHQ6OmFwcGx5QmFja2VuZENvbmZpZyhRU3NsQ29u dGV4dCAqc3NsQ29udGV4dCkKK0BAIC03MjIsNiArNzM2LDcgQEAgdm9pZCBRU3NsQ29udGV4dDo6 YXBwbHlCYWNrZW5kQ29uZmlnKFFTc2xDb250ZXh0ICpzc2xDb250ZXh0KQogICAgICB9CiAgI2Vu ZGlmIC8vIG9jc3AKICAKQEAgLTY5LDcgKzgyLDcgQEAgaW5kZXggYWJjMzk4YjIwOS4uYzJmOTBi ZTAwOSAxMDA2NDQKICAgICAgUVNoYXJlZFBvaW50ZXI8U1NMX0NPTkZfQ1RYPiBjY3R4KHFfU1NM X0NPTkZfQ1RYX25ldygpLCAmcV9TU0xfQ09ORl9DVFhfZnJlZSk7CiAgICAgIGlmIChjY3R4KSB7 CiAgICAgICAgICBxX1NTTF9DT05GX0NUWF9zZXRfc3NsX2N0eChjY3R4LmRhdGEoKSwgc3NsQ29u dGV4dC0+Y3R4KTsKLUBAIC03NTcsNyArNzcwLDkgQEAgdm9pZCBRU3NsQ29udGV4dDo6YXBwbHlC YWNrZW5kQ29uZmlnKFFTc2xDb250ZXh0ICpzc2xDb250ZXh0KQorQEAgLTc2OCw3ICs3ODMsOSBA QCB2b2lkIFFTc2xDb250ZXh0OjphcHBseUJhY2tlbmRDb25maWcoUVNzbENvbnRleHQgKnNzbENv bnRleHQpCiAgICAgICAgICAgICAgc3NsQ29udGV4dC0+ZXJyb3JTdHIgPSBtc2dFcnJvclNldHRp bmdCYWNrZW5kQ29uZmlnKFFTc2xTb2NrZXQ6OnRyKCJTU0xfQ09ORl9maW5pc2goKSBmYWlsZWQi KSk7CiAgICAgICAgICAgICAgc3NsQ29udGV4dC0+ZXJyb3JDb2RlID0gUVNzbEVycm9yOjpVbnNw ZWNpZmllZEVycm9yOwogICAgICAgICAgfQpAQCAtMTI1LDcgKzEzOCw3IEBAIGluZGV4IDI3NzAz N2U1OWMuLmY1OTk0OThkZjUgMTAwNjQ0CiAgICAgIGlmIChtb2RlID09IFFTc2xTb2NrZXQ6OlNz bENsaWVudE1vZGUKICAgICAgICAgICYmIFFTc2xTb2NrZXQ6OnNzbExpYnJhcnlCdWlsZFZlcnNp b25OdW1iZXIoKSA+PSAweDEwMTAxMDA2TCkgewogZGlmZiAtLWdpdCBxdGJhc2Uvc3JjL25ldHdv cmsvc3NsL3Fzc2xzb2NrZXRfb3BlbnNzbF9zeW1ib2xzLmNwcCBxdGJhc2Uvc3JjL25ldHdvcmsv c3NsL3Fzc2xzb2NrZXRfb3BlbnNzbF9zeW1ib2xzLmNwcAotaW5kZXggMmY1Nzk5OGNlYS4uYTNl YjM2MzM4NSAxMDA2NDQKK2luZGV4IGVkODBmYzE0YmQuLmJhZDJlZTJlNDEgMTAwNjQ0CiAtLS0g cXRiYXNlL3NyYy9uZXR3b3JrL3NzbC9xc3Nsc29ja2V0X29wZW5zc2xfc3ltYm9scy5jcHAKICsr KyBxdGJhc2Uvc3JjL25ldHdvcmsvc3NsL3Fzc2xzb2NrZXRfb3BlbnNzbF9zeW1ib2xzLmNwcAog QEAgLTE0NiwxMCArMTQ2LDEzIEBAIERFRklORUZVTkMyKGludCwgQk5faXNfd29yZCwgQklHTlVN ICphLCBhLCBCTl9VTE9ORyB3LCB3LCByZXR1cm4gMCwgcmV0dXJuKQpAQCAtMTQyLDcgKzE1NSw3 IEBAIGluZGV4IDJmNTc5OThjZWEuLmEzZWIzNjMzODUgMTAwNjQ0CiAgREVGSU5FRlVOQyhpbnQs IERTQV9iaXRzLCBEU0EgKmEsIGEsIHJldHVybiAwLCByZXR1cm4pCiAgREVGSU5FRlVOQyhpbnQs IE9QRU5TU0xfc2tfbnVtLCBPUEVOU1NMX1NUQUNLICphLCBhLCByZXR1cm4gLTEsIHJldHVybikK ICBERUZJTkVGVU5DMih2b2lkLCBPUEVOU1NMX3NrX3BvcF9mcmVlLCBPUEVOU1NMX1NUQUNLICph LCBhLCB2b2lkICgqYikodm9pZCopLCBiLCByZXR1cm4sIERVTU1ZQVJHKQotQEAgLTE1Nyw2ICsx NjAsMTQgQEAgREVGSU5FRlVOQyhPUEVOU1NMX1NUQUNLICosIE9QRU5TU0xfc2tfbmV3X251bGws IERVTU1ZQVJHLCBEVU1NWUFSRywgcmV0dXJuIG51bGwKK0BAIC0xNTcsMTAgKzE2MCwyMCBAQCBE RUZJTkVGVU5DKE9QRU5TU0xfU1RBQ0sgKiwgT1BFTlNTTF9za19uZXdfbnVsbCwgRFVNTVlBUkcs IERVTU1ZQVJHLCByZXR1cm4gbnVsbAogIERFRklORUZVTkMyKHZvaWQsIE9QRU5TU0xfc2tfcHVz aCwgT1BFTlNTTF9TVEFDSyAqYSwgYSwgdm9pZCAqYiwgYiwgcmV0dXJuLCBEVU1NWUFSRykKICBE RUZJTkVGVU5DKHZvaWQsIE9QRU5TU0xfc2tfZnJlZSwgT1BFTlNTTF9TVEFDSyAqYSwgYSwgcmV0 dXJuLCBEVU1NWUFSRykKICBERUZJTkVGVU5DMih2b2lkICosIE9QRU5TU0xfc2tfdmFsdWUsIE9Q RU5TU0xfU1RBQ0sgKmEsIGEsIGludCBiLCBiLCByZXR1cm4gbnVsbHB0ciwgcmV0dXJuKQpAQCAt MTU2LDggKzE2OSwxNCBAQCBpbmRleCAyZjU3OTk4Y2VhLi5hM2ViMzYzMzg1IDEwMDY0NAogKyNl bmRpZiAvLyBMSUJSRVNTTF9WRVJTSU9OX05VTUJFUgogIERFRklORUZVTkMoaW50LCBTU0xfc2Vz c2lvbl9yZXVzZWQsIFNTTCAqYSwgYSwgcmV0dXJuIDAsIHJldHVybikKICBERUZJTkVGVU5DMih1 bnNpZ25lZCBsb25nLCBTU0xfQ1RYX3NldF9vcHRpb25zLCBTU0xfQ1RYICpjdHgsIGN0eCwgdW5z aWduZWQgbG9uZyBvcCwgb3AsIHJldHVybiAwLCByZXR1cm4pCisrI2lmbmRlZiBMSUJSRVNTTF9W RVJTSU9OX05VTUJFUgorIERFRklORUZVTkMoaW50LCBTU0xfQ1RYX2dldF9zZWN1cml0eV9sZXZl bCwgY29uc3QgU1NMX0NUWCAqY3R4LCBjdHgsIHJldHVybiAtMSwgcmV0dXJuKQorIERFRklORUZV TkMyKHZvaWQsIFNTTF9DVFhfc2V0X3NlY3VyaXR5X2xldmVsLCBTU0xfQ1RYICpjdHgsIGN0eCwg aW50IGxldmVsLCBsZXZlbCwgcmV0dXJuLCByZXR1cm4pCisrI2VuZGlmCiAgI2lmZGVmIFRMUzFf M19WRVJTSU9OCi1AQCAtMTgyLDcgKzE5MywxMSBAQCBERUZJTkVGVU5DMih2b2lkLCBYNTA5X1NU T1JFX3NldF92ZXJpZnlfY2IsIFg1MDlfU1RPUkUgKmEsIGEsIFg1MDlfU1RPUkVfQ1RYX3Zlcgor IERFRklORUZVTkMyKGludCwgU1NMX0NUWF9zZXRfY2lwaGVyc3VpdGVzLCBTU0xfQ1RYICpjdHgs IGN0eCwgY29uc3QgY2hhciAqc3RyLCBzdHIsIHJldHVybiAwLCByZXR1cm4pCisgREVGSU5FRlVO QzIodm9pZCwgU1NMX3NldF9wc2tfdXNlX3Nlc3Npb25fY2FsbGJhY2ssIFNTTCAqc3NsLCBzc2ws IHFfU1NMX3Bza191c2Vfc2Vzc2lvbl9jYl9mdW5jX3QgY2FsbGJhY2ssIGNhbGxiYWNrLCByZXR1 cm4sIERVTU1ZQVJHKQorQEAgLTE4NCw3ICsxOTcsMTEgQEAgREVGSU5FRlVOQzIodm9pZCwgWDUw OV9TVE9SRV9zZXRfdmVyaWZ5X2NiLCBYNTA5X1NUT1JFICphLCBhLCBYNTA5X1NUT1JFX0NUWF92 ZXIKICBERUZJTkVGVU5DMyhpbnQsIFg1MDlfU1RPUkVfc2V0X2V4X2RhdGEsIFg1MDlfU1RPUkUg KmEsIGEsIGludCBpZHgsIGlkeCwgdm9pZCAqZGF0YSwgZGF0YSwgcmV0dXJuIDAsIHJldHVybikK ICBERUZJTkVGVU5DMih2b2lkICosIFg1MDlfU1RPUkVfZ2V0X2V4X2RhdGEsIFg1MDlfU1RPUkUg KnIsIHIsIGludCBpZHgsIGlkeCwgcmV0dXJuIG51bGxwdHIsIHJldHVybikKICBERUZJTkVGVU5D KFNUQUNLX09GKFg1MDkpICosIFg1MDlfU1RPUkVfQ1RYX2dldDBfY2hhaW4sIFg1MDlfU1RPUkVf Q1RYICphLCBhLCByZXR1cm4gbnVsbHB0ciwgcmV0dXJuKQpAQCAtMTY5LDcgKzE4OCw3IEBAIGlu ZGV4IDJmNTc5OThjZWEuLmEzZWIzNjMzODUgMTAwNjQ0CiAgREVGSU5FRlVOQyhsb25nLCBPcGVu U1NMX3ZlcnNpb25fbnVtLCB2b2lkLCBEVU1NWUFSRywgcmV0dXJuIDAsIHJldHVybikKICBERUZJ TkVGVU5DKGNvbnN0IGNoYXIgKiwgT3BlblNTTF92ZXJzaW9uLCBpbnQgYSwgYSwgcmV0dXJuIG51 bGxwdHIsIHJldHVybikKICBERUZJTkVGVU5DKHVuc2lnbmVkIGxvbmcsIFNTTF9TRVNTSU9OX2dl dF90aWNrZXRfbGlmZXRpbWVfaGludCwgY29uc3QgU1NMX1NFU1NJT04gKnNlc3Npb24sIHNlc3Np b24sIHJldHVybiAwLCByZXR1cm4pCi1AQCAtMjIyLDcgKzIzNyw5IEBAIERFRklORUZVTkM1KGlu dCwgT0NTUF9pZF9nZXQwX2luZm8sIEFTTjFfT0NURVRfU1RSSU5HICoqcGlOYW1lSGFzaCwgcGlO YW1lSGFzaCwKK0BAIC0yMjQsNyArMjQxLDkgQEAgREVGSU5FRlVOQzUoaW50LCBPQ1NQX2lkX2dl dDBfaW5mbywgQVNOMV9PQ1RFVF9TVFJJTkcgKipwaU5hbWVIYXNoLCBwaU5hbWVIYXNoLAogICAg ICAgICAgICAgIEFTTjFfT0NURVRfU1RSSU5HICoqcGlLZXlIYXNoLCBwaUtleUhhc2gsIEFTTjFf SU5URUdFUiAqKnBzZXJpYWwsIHBzZXJpYWwsIE9DU1BfQ0VSVElEICpjaWQsIGNpZCwKICAgICAg ICAgICAgICByZXR1cm4gMCwgcmV0dXJuKQogIERFRklORUZVTkMyKE9DU1BfUkVTUE9OU0UgKiwg T0NTUF9yZXNwb25zZV9jcmVhdGUsIGludCBzdGF0dXMsIHN0YXR1cywgT0NTUF9CQVNJQ1JFU1Ag KmJzLCBicywgcmV0dXJuIG51bGxwdHIsIHJldHVybikKQEAgLTE3OSw3ICsxOTgsNyBAQCBpbmRl eCAyZjU3OTk4Y2VhLi5hM2ViMzYzMzg1IDEwMDY0NAogIERFRklORUZVTkMyKGludCwgT0NTUF9p ZF9jbXAsIE9DU1BfQ0VSVElEICphLCBhLCBPQ1NQX0NFUlRJRCAqYiwgYiwgcmV0dXJuIC0xLCBy ZXR1cm4pCiAgREVGSU5FRlVOQzcoT0NTUF9TSU5HTEVSRVNQICosIE9DU1BfYmFzaWNfYWRkMV9z dGF0dXMsIE9DU1BfQkFTSUNSRVNQICpyLCByLCBPQ1NQX0NFUlRJRCAqYywgYywgaW50IHMsIHMs CiAgICAgICAgICAgICAgaW50IHJlLCByZSwgQVNOMV9USU1FICpydCwgcnQsIEFTTjFfVElNRSAq dCwgdCwgQVNOMV9USU1FICpuLCBuLCByZXR1cm4gbnVsbHB0ciwgcmV0dXJuKQotQEAgLTI2Nyw3 ICsyODQsNyBAQCBERUZJTkVGVU5DMihpbnQsIEVWUF9DSVBIRVJfQ1RYX3NldF9rZXlfbGVuZ3Ro LCBFVlBfQ0lQSEVSX0NUWCAqY3R4LCBjdHgsIGludCBrZQorQEAgLTI2OSw3ICsyODgsNyBAQCBE RUZJTkVGVU5DMihpbnQsIEVWUF9DSVBIRVJfQ1RYX3NldF9rZXlfbGVuZ3RoLCBFVlBfQ0lQSEVS X0NUWCAqY3R4LCBjdHgsIGludCBrZQogIERFRklORUZVTkM1KGludCwgRVZQX0NpcGhlckluaXQs IEVWUF9DSVBIRVJfQ1RYICpjdHgsIGN0eCwgY29uc3QgRVZQX0NJUEhFUiAqdHlwZSwgdHlwZSwg Y29uc3QgdW5zaWduZWQgY2hhciAqa2V5LCBrZXksIGNvbnN0IHVuc2lnbmVkIGNoYXIgKml2LCBp diwgaW50IGVuYywgZW5jLCByZXR1cm4gMCwgcmV0dXJuKQogIERFRklORUZVTkM2KGludCwgRVZQ X0NpcGhlckluaXRfZXgsIEVWUF9DSVBIRVJfQ1RYICpjdHgsIGN0eCwgY29uc3QgRVZQX0NJUEhF UiAqY2lwaGVyLCBjaXBoZXIsIEVOR0lORSAqaW1wbCwgaW1wbCwgY29uc3QgdW5zaWduZWQgY2hh ciAqa2V5LCBrZXksIGNvbnN0IHVuc2lnbmVkIGNoYXIgKml2LCBpdiwgaW50IGVuYywgZW5jLCBy ZXR1cm4gMCwgcmV0dXJuKQogIERFRklORUZVTkM1KGludCwgRVZQX0NpcGhlclVwZGF0ZSwgRVZQ X0NJUEhFUl9DVFggKmN0eCwgY3R4LCB1bnNpZ25lZCBjaGFyICpvdXQsIG91dCwgaW50ICpvdXRs LCBvdXRsLCBjb25zdCB1bnNpZ25lZCBjaGFyICppbiwgaW4sIGludCBpbmwsIGlubCwgcmV0dXJu IDAsIHJldHVybikKQEAgLTE4OCw3ICsyMDcsNyBAQCBpbmRleCAyZjU3OTk4Y2VhLi5hM2ViMzYz Mzg1IDEwMDY0NAogIERFRklORUZVTkMoY29uc3QgRVZQX01EICosIEVWUF9nZXRfZGlnZXN0Ynlu YW1lLCBjb25zdCBjaGFyICpuYW1lLCBuYW1lLCByZXR1cm4gbnVsbHB0ciwgcmV0dXJuKQogICNp Zm5kZWYgT1BFTlNTTF9OT19ERVMKICBERUZJTkVGVU5DKGNvbnN0IEVWUF9DSVBIRVIgKiwgRVZQ X2Rlc19jYmMsIERVTU1ZQVJHLCBEVU1NWUFSRywgcmV0dXJuIG51bGxwdHIsIHJldHVybikKLUBA IC0zNTQsMTIgKzM3MSwxNCBAQCBERUZJTkVGVU5DMihpbnQsIFNTTF9DVFhfdXNlX1ByaXZhdGVL ZXksIFNTTF9DVFggKmEsIGEsIEVWUF9QS0VZICpiLCBiLCByZXR1cm4gLQorQEAgLTM1NiwxMiAr Mzc1LDE0IEBAIERFRklORUZVTkMyKGludCwgU1NMX0NUWF91c2VfUHJpdmF0ZUtleSwgU1NMX0NU WCAqYSwgYSwgRVZQX1BLRVkgKmIsIGIsIHJldHVybiAtCiAgREVGSU5FRlVOQzIoaW50LCBTU0xf Q1RYX3VzZV9SU0FQcml2YXRlS2V5LCBTU0xfQ1RYICphLCBhLCBSU0EgKmIsIGIsIHJldHVybiAt MSwgcmV0dXJuKQogIERFRklORUZVTkMzKGludCwgU1NMX0NUWF91c2VfUHJpdmF0ZUtleV9maWxl LCBTU0xfQ1RYICphLCBhLCBjb25zdCBjaGFyICpiLCBiLCBpbnQgYywgYywgcmV0dXJuIC0xLCBy ZXR1cm4pCiAgREVGSU5FRlVOQyhYNTA5X1NUT1JFICosIFNTTF9DVFhfZ2V0X2NlcnRfc3RvcmUs IGNvbnN0IFNTTF9DVFggKmEsIGEsIHJldHVybiBudWxscHRyLCByZXR1cm4pCkBAIC0yMDMsNyAr MjIyLDcgQEAgaW5kZXggMmY1Nzk5OGNlYS4uYTNlYjM2MzM4NSAxMDA2NDQKICBERUZJTkVGVU5D KHZvaWQsIFNTTF9mcmVlLCBTU0wgKmEsIGEsIHJldHVybiwgRFVNTVlBUkcpCiAgREVGSU5FRlVO QyhTVEFDS19PRihTU0xfQ0lQSEVSKSAqLCBTU0xfZ2V0X2NpcGhlcnMsIGNvbnN0IFNTTCAqYSwg YSwgcmV0dXJuIG51bGxwdHIsIHJldHVybikKICBERUZJTkVGVU5DKGNvbnN0IFNTTF9DSVBIRVIg KiwgU1NMX2dldF9jdXJyZW50X2NpcGhlciwgU1NMICphLCBhLCByZXR1cm4gbnVsbHB0ciwgcmV0 dXJuKQotQEAgLTg0NCwxNiArODYzLDIwIEBAIGJvb2wgcV9yZXNvbHZlT3BlblNzbFN5bWJvbHMo KQorQEAgLTg0NiwyMCArODY3LDI2IEBAIGJvb2wgcV9yZXNvbHZlT3BlblNzbFN5bWJvbHMoKQog ICAgICBSRVNPTFZFRlVOQyhFVlBfQ0lQSEVSX0NUWF9yZXNldCkKICAgICAgUkVTT0xWRUZVTkMo RVZQX1BLRVlfdXBfcmVmKQogICAgICBSRVNPTFZFRlVOQyhFVlBfUEtFWV9DVFhfbmV3KQpAQCAt MjIzLDggKzI0MiwxNCBAQCBpbmRleCAyZjU3OTk4Y2VhLi5hM2ViMzYzMzg1IDEwMDY0NAogKyNl bmRpZgogICAgICBSRVNPTFZFRlVOQyhESF9nZXQwX3BxZykKICAgICAgUkVTT0xWRUZVTkMoU1NM X0NUWF9zZXRfb3B0aW9ucykKLSAKLUBAIC04OTUsNyArOTE4LDkgQEAgYm9vbCBxX3Jlc29sdmVP cGVuU3NsU3ltYm9scygpCisrI2lmbmRlZiBMSUJSRVNTTF9WRVJTSU9OX05VTUJFUgorICAgICBS RVNPTFZFRlVOQyhTU0xfQ1RYX2dldF9zZWN1cml0eV9sZXZlbCkKKyAgICAgUkVTT0xWRUZVTkMo U1NMX0NUWF9zZXRfc2VjdXJpdHlfbGV2ZWwpCisrI2VuZGlmCisgI2lmZGVmIFRMUzFfM19WRVJT SU9OCisgICAgIFJFU09MVkVGVU5DKFNTTF9DVFhfc2V0X2NpcGhlcnN1aXRlcykKKyAgICAgUkVT T0xWRUZVTkMoU1NMX3NldF9wc2tfdXNlX3Nlc3Npb25fY2FsbGJhY2spCitAQCAtODk4LDcgKzky NSw5IEBAIGJvb2wgcV9yZXNvbHZlT3BlblNzbFN5bWJvbHMoKQogIAogICAgICBSRVNPTFZFRlVO QyhTU0xfU0VTU0lPTl9nZXRfdGlja2V0X2xpZmV0aW1lX2hpbnQpCiAgICAgIFJFU09MVkVGVU5D KERIX2JpdHMpCkBAIC0yMzQsNyArMjU5LDcgQEAgaW5kZXggMmY1Nzk5OGNlYS4uYTNlYjM2MzM4 NSAxMDA2NDQKICAKICAjaWYgUVRfQ09ORklHKGR0bHMpCiAgICAgIFJFU09MVkVGVU5DKERUTFN2 MV9saXN0ZW4pCi1AQCAtOTI1LDcgKzk1MCw5IEBAIGJvb2wgcV9yZXNvbHZlT3BlblNzbFN5bWJv bHMoKQorQEAgLTkyOCw3ICs5NTcsOSBAQCBib29sIHFfcmVzb2x2ZU9wZW5Tc2xTeW1ib2xzKCkK ICAgICAgUkVTT0xWRUZVTkMoT0NTUF9jaGVja192YWxpZGl0eSkKICAgICAgUkVTT0xWRUZVTkMo T0NTUF9jZXJ0X3RvX2lkKQogICAgICBSRVNPTFZFRlVOQyhPQ1NQX2lkX2dldDBfaW5mbykKQEAg LTI0NCw3ICsyNjksNyBAQCBpbmRleCAyZjU3OTk4Y2VhLi5hM2ViMzYzMzg1IDEwMDY0NAogICAg ICBSRVNPTFZFRlVOQyhPQ1NQX2Jhc2ljX3NpZ24pCiAgICAgIFJFU09MVkVGVU5DKE9DU1BfcmVz cG9uc2VfY3JlYXRlKQogICAgICBSRVNPTFZFRlVOQyhpMmRfT0NTUF9SRVNQT05TRSkKLUBAIC05 NzYsNyArMTAwMyw3IEBAIGJvb2wgcV9yZXNvbHZlT3BlblNzbFN5bWJvbHMoKQorQEAgLTk3OSw3 ICsxMDEwLDcgQEAgYm9vbCBxX3Jlc29sdmVPcGVuU3NsU3ltYm9scygpCiAgICAgIFJFU09MVkVG VU5DKEVWUF9DaXBoZXJJbml0KQogICAgICBSRVNPTFZFRlVOQyhFVlBfQ2lwaGVySW5pdF9leCkK ICAgICAgUkVTT0xWRUZVTkMoRVZQX0NpcGhlclVwZGF0ZSkKQEAgLTI1Myw3ICsyNzgsNyBAQCBp bmRleCAyZjU3OTk4Y2VhLi5hM2ViMzYzMzg1IDEwMDY0NAogICAgICBSRVNPTFZFRlVOQyhFVlBf Z2V0X2RpZ2VzdGJ5bmFtZSkKICAjaWZuZGVmIE9QRU5TU0xfTk9fREVTCiAgICAgIFJFU09MVkVG VU5DKEVWUF9kZXNfY2JjKQotQEAgLTEwNTUsMTIgKzEwODIsMTQgQEAgYm9vbCBxX3Jlc29sdmVP cGVuU3NsU3ltYm9scygpCitAQCAtMTA1OCwxMiArMTA4OSwxNCBAQCBib29sIHFfcmVzb2x2ZU9w ZW5Tc2xTeW1ib2xzKCkKICAgICAgUkVTT0xWRUZVTkMoU1NMX0NUWF91c2VfUlNBUHJpdmF0ZUtl eSkKICAgICAgUkVTT0xWRUZVTkMoU1NMX0NUWF91c2VfUHJpdmF0ZUtleV9maWxlKQogICAgICBS RVNPTFZFRlVOQyhTU0xfQ1RYX2dldF9jZXJ0X3N0b3JlKTsKQEAgLTI2OSw3ICsyOTQsNyBAQCBp bmRleCAyZjU3OTk4Y2VhLi5hM2ViMzYzMzg1IDEwMDY0NAogICAgICBSRVNPTFZFRlVOQyhTU0xf Y2xlYXIpCiAgICAgIFJFU09MVkVGVU5DKFNTTF9jb25uZWN0KQogZGlmZiAtLWdpdCBxdGJhc2Uv c3JjL25ldHdvcmsvc3NsL3Fzc2xzb2NrZXRfb3BlbnNzbF9zeW1ib2xzX3AuaCBxdGJhc2Uvc3Jj L25ldHdvcmsvc3NsL3Fzc2xzb2NrZXRfb3BlbnNzbF9zeW1ib2xzX3AuaAotaW5kZXggMDE4OTYy YmNjMS4uODk3N2Y0MjhlMCAxMDA2NDQKK2luZGV4IGM0NmFmY2Y1M2UuLjM5NDViYWRhNWYgMTAw NjQ0CiAtLS0gcXRiYXNlL3NyYy9uZXR3b3JrL3NzbC9xc3Nsc29ja2V0X29wZW5zc2xfc3ltYm9s c19wLmgKICsrKyBxdGJhc2Uvc3JjL25ldHdvcmsvc3NsL3Fzc2xzb2NrZXRfb3BlbnNzbF9zeW1i b2xzX3AuaAogQEAgLTgwLDYgKzgwLDEzIEBAIFFUX0JFR0lOX05BTUVTUEFDRQpAQCAtMzkwLDMg KzQxNSw2IEBAIGluZGV4IDAxODk2MmJjYzEuLjg5NzdmNDI4ZTAgMTAwNjQ0CiAgUV9BVVRPVEVT VF9FWFBPUlQgT0NTUF9DRVJUSUQgKnFfT0NTUF9jZXJ0X3RvX2lkKGNvbnN0IEVWUF9NRCAqZGdz dCwgWDUwOSAqc3ViamVjdCwgWDUwOSAqaXNzdWVyKTsKICBRX0FVVE9URVNUX0VYUE9SVCB2b2lk IHFfT0NTUF9DRVJUSURfZnJlZShPQ1NQX0NFUlRJRCAqY2lkKTsKICBpbnQgcV9PQ1NQX2lkX2Nt cChPQ1NQX0NFUlRJRCAqYSwgT0NTUF9DRVJUSUQgKmIpOworLS0gCisyLjI5LjIKKwpkaWZmIC0t Z2l0IGEvc3JjcGtncy9xdDUvdGVtcGxhdGUgYi9zcmNwa2dzL3F0NS90ZW1wbGF0ZQppbmRleCBi NzE3NDM4ZDRkZC4uMTZjZjY4OTgwNzUgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvcXQ1L3RlbXBsYXRl CisrKyBiL3NyY3BrZ3MvcXQ1L3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBm aWxlIGZvciAncXQ1JwogcGtnbmFtZT1xdDUKLXZlcnNpb249NS4xNS4xCi1yZXZpc2lvbj0zCit2 ZXJzaW9uPTUuMTUuMgorcmV2aXNpb249MQogd3Jrc3JjPSJxdC1ldmVyeXdoZXJlLXNyYy0ke3Zl cnNpb259IgogYnVpbGRfc3R5bGU9bWV0YQogaG9zdG1ha2VkZXBlbmRzPSJjbWFrZSBjbGFuZyBm bGV4IHBlcmwgZ2xpYi1kZXZlbCBwa2ctY29uZmlnCkBAIC0yMiw3ICsyMiw3IEBAIG1haW50YWlu ZXI9IkpvaG4gPG1lQGpvaG5ueW5hdG9yLmRldj4iCiBsaWNlbnNlPSJHUEwtMy4wLW9yLWxhdGVy LCBMR1BMLTMuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3F0LmlvLyIKIGRpc3RmaWxl cz0iaHR0cDovL2Rvd25sb2FkLnF0LmlvL29mZmljaWFsX3JlbGVhc2VzL3F0LyR7dmVyc2lvbiUu Kn0vJHt2ZXJzaW9ufS9zaW5nbGUvcXQtZXZlcnl3aGVyZS1zcmMtJHt2ZXJzaW9ufS50YXIueHoi Ci1jaGVja3N1bT00NGRhODc2MDU3ZTIxZTFiZTQyZGUzMWZhY2Q5OWJlN2Q1ZjlmMDc4OTNlMWVh NzYyMzU5YmNlZTBlZjY0ZWU5CitjaGVja3N1bT0zYTUzMGQxYjI0M2I1ZGVjMDBiYzU0OTM3NDU1 NDcxYWFhM2U1Njg0OWQyNTkzZWRiOGRlZDA3MjI4MjAyMjQwCiBweXRob25fdmVyc2lvbj0yICN1 bnZlcmlmaWVkCiByZXBsYWNlcz0icXQ1LWRvYzw1LjYuMCBxdDUtcXVpY2sxPDUuNi4wIHF0NS1x dWljazEtZGV2ZWw8NS42LjAgcXQ1LXdlYmtpdDw1LjYuMCBxdDUtd2Via2l0LWRldmVsPDUuNi4w CiAgcXQ1LWVuZ2luaW88NS43LjEgcXQ1LWVuZ2luaW8tZGV2ZWw8NS43LjEgcXQ1LXBsdWdpbi1n dGs8NS43LjEgcXQ1LWNhbnZhczNkPDUuMTMuMCIKCkZyb20gYzFlMTk5YTI1NjIwMTBjMTU0OTJm YWI0ZWVjZmMyMmEyNDE1ZTc3OCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSm9obiA8 bWVAam9obm55bmF0b3IuZGV2PgpEYXRlOiBGcmksIDIwIE5vdiAyMDIwIDIzOjAyOjUxICswMTAw ClN1YmplY3Q6IFtQQVRDSCAyLzZdIHF0NS13ZWJ2aWV3OiB1cGRhdGUgdG8gNS4xNS4yLgoKLS0t CiBzcmNwa2dzL3F0NS13ZWJ2aWV3L3RlbXBsYXRlIHwgNCArKy0tCiAxIGZpbGUgY2hhbmdlZCwg MiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ1 LXdlYnZpZXcvdGVtcGxhdGUgYi9zcmNwa2dzL3F0NS13ZWJ2aWV3L3RlbXBsYXRlCmluZGV4IDU0 NWViMTNkZTczLi5mYzIyNjUyOTZmYyAxMDA2NDQKLS0tIGEvc3JjcGtncy9xdDUtd2Vidmlldy90 ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3F0NS13ZWJ2aWV3L3RlbXBsYXRlCkBAIC0xLDYgKzEsNiBA QAogIyBUZW1wbGF0ZSBmaWxlIGZvciAncXQ1LXdlYnZpZXcnCiBwa2duYW1lPXF0NS13ZWJ2aWV3 Ci12ZXJzaW9uPTUuMTUuMQordmVyc2lvbj01LjE1LjIKIHJldmlzaW9uPTEKIHdya3NyYz0icXR3 ZWJ2aWV3LWV2ZXJ5d2hlcmUtc3JjLSR7dmVyc2lvbn0iCiBidWlsZF9zdHlsZT1xbWFrZQpAQCAt MTIsNyArMTIsNyBAQCBtYWludGFpbmVyPSJKb2huIDxtZUBqb2hubnluYXRvci5kZXY+IgogbGlj ZW5zZT0iR1BMLTMuMC1vci1sYXRlciwgTEdQTC0zLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0 cHM6Ly9xdC5pby8iCiBkaXN0ZmlsZXM9Imh0dHA6Ly9kb3dubG9hZC5xdC5pby9vZmZpY2lhbF9y ZWxlYXNlcy9xdC8ke3ZlcnNpb24lLip9LyR7dmVyc2lvbn0vc3VibW9kdWxlcy9xdHdlYnZpZXct ZXZlcnl3aGVyZS1zcmMtJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT00MjY4NTJhM2Y1Njlk YTgyYWE4NGRmZDdmMDZjNmFlYjA2NDg4YTkyN2I2NjM0MmE2MTI0MDFiNDEzOTJiMjYwCitjaGVj a3N1bT1iZTlmNDYxNjdlNDk3N2VhZDVlZjVlY2Y4ODNmZGI4MTJhNDEyMGYyNDM2MzgzNTgzNzky ZjY1NTU3ZTQ4MWU3CiAKIGJ1aWxkX29wdGlvbnM9IndlYmVuZ2luZSIKIGlmIFsgIiRYQlBTX1RB UkdFVF9FTkRJQU4iID0gImxlIiBdICYmIFsgIiRYQlBTX1dPUkRTSVpFIiA9ICIkWEJQU19UQVJH RVRfV09SRFNJWkUiIF07IHRoZW4KCkZyb20gMmU5ZjY3ZDI2NmVmNjYyZDc0ZTc4YTM5ZDQzZDYy OThlMjNjNTFmMSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSm9obiA8bWVAam9obm55 bmF0b3IuZGV2PgpEYXRlOiBGcmksIDIwIE5vdiAyMDIwIDIzOjAyOjU1ICswMTAwClN1YmplY3Q6 IFtQQVRDSCAzLzZdIHF0NS13ZWJlbmdpbmU6IHVwZGF0ZSB0byA1LjE1LjIuCgotLS0KIC4uLi9w YXRjaGVzLzAwMTAtbXVzbC1zdGFja3N0YXJ0LnBhdGNoICAgICAgICB8ICAgIDYgKy0KIC4uLi9w YXRjaGVzLzAwOTAtcXR3ZWJlbmdpbmUtcHBjNjQucGF0Y2ggICAgICB8IDM1ODAgLS0tLS0tLS0t LS0tLS0tLS0KIC4uLi9wYXRjaGVzLzAwOTEtY2hyb21pdW0tcHBjNjRsZS1tdXNsLnBhdGNoICB8 ICAxNzQgLQogc3JjcGtncy9xdDUtd2ViZW5naW5lL3RlbXBsYXRlICAgICAgICAgICAgICAgIHwg ICAgNiArLQogNCBmaWxlcyBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKyksIDM3NjAgZGVsZXRpb25z KC0pCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDUtd2ViZW5naW5lL3BhdGNoZXMvMDA5 MC1xdHdlYmVuZ2luZS1wcGM2NC5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ1 LXdlYmVuZ2luZS9wYXRjaGVzLzAwOTEtY2hyb21pdW0tcHBjNjRsZS1tdXNsLnBhdGNoCgpkaWZm IC0tZ2l0IGEvc3JjcGtncy9xdDUtd2ViZW5naW5lL3BhdGNoZXMvMDAxMC1tdXNsLXN0YWNrc3Rh cnQucGF0Y2ggYi9zcmNwa2dzL3F0NS13ZWJlbmdpbmUvcGF0Y2hlcy8wMDEwLW11c2wtc3RhY2tz dGFydC5wYXRjaAppbmRleCA1NzEzNmJjMmJjZC4uYTlmOGFiNmMyNTIgMTAwNjQ0Ci0tLSBhL3Ny Y3BrZ3MvcXQ1LXdlYmVuZ2luZS9wYXRjaGVzLzAwMTAtbXVzbC1zdGFja3N0YXJ0LnBhdGNoCisr KyBiL3NyY3BrZ3MvcXQ1LXdlYmVuZ2luZS9wYXRjaGVzLzAwMTAtbXVzbC1zdGFja3N0YXJ0LnBh dGNoCkBAIC00LDExICs0LDExIEBACiAgLy8gRklYTUU6IE9uIE1hYyBPU1ggYW5kIExpbnV4LCB0 aGlzIG1ldGhvZCBjYW5ub3QgZXN0aW1hdGUgc3RhY2sgc2l6ZQogIC8vIGNvcnJlY3RseSBmb3Ig dGhlIG1haW4gdGhyZWFkLgogIAotLSNpZiBkZWZpbmVkKF9fR0xJQkNfXykgfHwgZGVmaW5lZChP U19BTkRST0lEKSB8fCBkZWZpbmVkKE9TX0ZSRUVCU0QpIHx8IFwKLSsjaWYgZGVmaW5lZChPU19M SU5VWCkgfHwgZGVmaW5lZChPU19BTkRST0lEKSB8fCBkZWZpbmVkKE9TX0ZSRUVCU0QpIHx8IFwK Ky0jZWxpZiBkZWZpbmVkKF9fR0xJQkNfXykgfHwgZGVmaW5lZChPU19BTkRST0lEKSB8fCBkZWZp bmVkKE9TX0ZSRUVCU0QpIHx8IFwKKysjZWxpZiBkZWZpbmVkKE9TX0xJTlVYKSB8fCBkZWZpbmVk KE9TX0FORFJPSUQpIHx8IGRlZmluZWQoT1NfRlJFRUJTRCkgfHwgXAogICAgICBkZWZpbmVkKE9T X0ZVQ0hTSUEpCiAgICAvLyBwdGhyZWFkX2dldGF0dHJfbnAoKSBjYW4gZmFpbCBpZiB0aGUgdGhy ZWFkIGlzIG5vdCBpbnZva2VkIGJ5Ci0gICAvLyBwdGhyZWFkX2NyZWF0ZSgpIChlLmcuLCB0aGUg bWFpbiB0aHJlYWQgb2Ygd2Via2l0X3VuaXRfdGVzdHMpLgorICAgLy8gcHRocmVhZF9jcmVhdGUo KSAoZS5nLiwgdGhlIG1haW4gdGhyZWFkIG9mIGJsaW5rX3VuaXR0ZXN0cykuCiBAQCAtOTYsNyAr OTYsNyBAQAogIH0KICAKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ1LXdlYmVuZ2luZS9wYXRjaGVz LzAwOTAtcXR3ZWJlbmdpbmUtcHBjNjQucGF0Y2ggYi9zcmNwa2dzL3F0NS13ZWJlbmdpbmUvcGF0 Y2hlcy8wMDkwLXF0d2ViZW5naW5lLXBwYzY0LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAyMTk1NzQyNWUzMS4uMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9xdDUtd2ViZW5n aW5lL3BhdGNoZXMvMDA5MC1xdHdlYmVuZ2luZS1wcGM2NC5wYXRjaAorKysgL2Rldi9udWxsCkBA IC0xLDM1ODAgKzAsMCBAQAotZGlmZiAtLWdpdCBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9jaHJv bWUvaW5zdGFsbGVyL2xpbnV4L0JVSUxELmduIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL2Nocm9t ZS9pbnN0YWxsZXIvbGludXgvQlVJTEQuZ24KLWluZGV4IDY0YmE5M2Y0NC4uMGNiM2QxNjIzIDEw MDY0NAotLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL2Nocm9tZS9pbnN0YWxsZXIvbGludXgv QlVJTEQuZ24KLSsrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9jaHJvbWUvaW5zdGFsbGVyL2xp bnV4L0JVSUxELmduCi1AQCAtNjIsOCArNjIsNiBAQCBwYWNrYWdpbmdfZmlsZXMgPSBwYWNrYWdp bmdfZmlsZXNfYmluYXJpZXMgKyBbCi0gICAgICAgICAgICAgICAgICAgICAiJHJvb3Rfb3V0X2Rp ci94ZGctbWltZSIsCi0gICAgICAgICAgICAgICAgICAgICAiJHJvb3Rfb3V0X2Rpci94ZGctc2V0 dGluZ3MiLAotICAgICAgICAgICAgICAgICAgICAgIiRyb290X291dF9kaXIvbG9jYWxlcy9lbi1V Uy5wYWsiLAotLSAgICAgICAgICAgICAgICAgICAgIiRyb290X291dF9kaXIvTUVJUHJlbG9hZC9t YW5pZmVzdC5qc29uIiwKLS0gICAgICAgICAgICAgICAgICAgICIkcm9vdF9vdXRfZGlyL01FSVBy ZWxvYWQvcHJlbG9hZGVkX2RhdGEucGIiLAotICAgICAgICAgICAgICAgICAgIF0KLSAKLSBhY3Rp b25fZm9yZWFjaCgiY2FsY3VsYXRlX2RlYl9kZXBlbmRlbmNpZXMiKSB7Ci1AQCAtMzUwLDcgKzM0 OCw2IEBAIGdyb3VwKCJpbnN0YWxsZXJfZGVwcyIpIHsKLSAgICAgIjp0aGVtZV9maWxlcyIsCi0g ICAgICIvL2Nocm9tZSIsCi0gICAgICIvL2Nocm9tZTpwYWNrZWRfcmVzb3VyY2VzIiwKLS0gICAg Ii8vY2hyb21lL2Jyb3dzZXIvcmVzb3VyY2VzL21lZGlhL21laV9wcmVsb2FkOmNvbXBvbmVudCIs Ci0gICAgICIvL3NhbmRib3gvbGludXg6Y2hyb21lX3NhbmRib3giLAotICAgICAiLy90aGlyZF9w YXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9oYW5kbGVyOmNyYXNocGFkX2hhbmRsZXIiLAotICAgXQot ZGlmZiAtLWdpdCBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9tZWRpYS9ncHUvdmFhcGkvdmFhcGlf cGljdHVyZV90ZnAuY2MgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vbWVkaWEvZ3B1L3ZhYXBpL3Zh YXBpX3BpY3R1cmVfdGZwLmNjCi1pbmRleCBmNjVkNTgwZGEuLmFiZDlhYTk2OSAxMDA2NDQKLS0t LSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9tZWRpYS9ncHUvdmFhcGkvdmFhcGlfcGljdHVyZV90 ZnAuY2MKLSsrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9tZWRpYS9ncHUvdmFhcGkvdmFhcGlf cGljdHVyZV90ZnAuY2MKLUBAIC01NSw3ICs1NSw3IEBAIGJvb2wgVmFhcGlURlBQaWN0dXJlOjpJ bml0aWFsaXplKCkgewotICAgaWYgKG1ha2VfY29udGV4dF9jdXJyZW50X2NiXyAmJiAhbWFrZV9j b250ZXh0X2N1cnJlbnRfY2JfLlJ1bigpKQotICAgICByZXR1cm4gZmFsc2U7Ci0gCi0tICBnbHhf aW1hZ2VfID0gbmV3IGdsOjpHTEltYWdlR0xYKHNpemVfLCBHTF9SR0IpOwotKyAgZ2x4X2ltYWdl XyA9IG5ldyBnbDo6R0xJbWFnZUdMWChzaXplXywgZ2Z4OjpCdWZmZXJGb3JtYXQ6OkJHUlhfODg4 OCk7Ci0gICBpZiAoIWdseF9pbWFnZV8tPkluaXRpYWxpemUoeF9waXhtYXBfKSkgewotICAgICAv LyB4X3BpeG1hcF8gd2lsbCBiZSBmcmVlZCBpbiB0aGUgZGVzdHJ1Y3Rvci4KLSAgICAgRExPRyhF UlJPUikgPDwgIkZhaWxlZCBjcmVhdGluZyBhIEdMWCBQaXhtYXAgZm9yIFRGUCI7Ci1kaWZmIC0t Z2l0IGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvZmVhdHVyZXMuZ25pIGIvc3JjLzNy ZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvZmVhdHVyZXMuZ25pCi1pbmRleCA4OTY5M2M1NGMuLjYw MTdjN2VlYSAxMDA2NDQKLS0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2ZlYXR1 cmVzLmduaQotKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvZmVhdHVyZXMuZ25p Ci1AQCAtMTIsNiArMTIsNiBAQCB1c2Vfc2VjY29tcF9icGYgPQotICAgICAoaXNfbGludXggfHwg aXNfYW5kcm9pZCkgJiYKLSAgICAgKGN1cnJlbnRfY3B1ID09ICJ4ODYiIHx8IGN1cnJlbnRfY3B1 ID09ICJ4NjQiIHx8IGN1cnJlbnRfY3B1ID09ICJhcm0iIHx8Ci0gICAgICBjdXJyZW50X2NwdSA9 PSAiYXJtNjQiIHx8IGN1cnJlbnRfY3B1ID09ICJtaXBzZWwiIHx8Ci0tICAgICBjdXJyZW50X2Nw dSA9PSAibWlwczY0ZWwiKQotKyAgICAgY3VycmVudF9jcHUgPT0gIm1pcHM2NGVsIiB8fCBjdXJy ZW50X2NwdSA9PSAicHBjNjQiKQotIAotIHVzZV9zZWNjb21wX2JwZiA9IHVzZV9zZWNjb21wX2Jw ZiB8fCBpc19uYWNsX25vbnNmaQotZGlmZiAtLWdpdCBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9z YW5kYm94L2xpbnV4L0JVSUxELmduIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvbGlu dXgvQlVJTEQuZ24KLWluZGV4IGIwMGE4OGNmYS4uYjNlNTVkNWNiIDEwMDY0NAotLS0tIGEvc3Jj LzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvbGludXgvQlVJTEQuZ24KLSsrKyBiL3NyYy8zcmRw YXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L0JVSUxELmduCi1AQCAtNDE2LDYgKzQxNiw4IEBA IGNvbXBvbmVudCgic2FuZGJveF9zZXJ2aWNlcyIpIHsKLSAKLSBzb3VyY2Vfc2V0KCJzYW5kYm94 X3NlcnZpY2VzX2hlYWRlcnMiKSB7Ci0gICBzb3VyY2VzID0gWwotKyAgICAic3lzdGVtX2hlYWRl cnMvcHBjNjRfbGludXhfc3lzY2FsbHMuaCIsCi0rICAgICJzeXN0ZW1faGVhZGVycy9wcGM2NF9s aW51eF91Y29udGV4dC5oIiwKLSAgICAgInN5c3RlbV9oZWFkZXJzL2FybTY0X2xpbnV4X3N5c2Nh bGxzLmgiLAotICAgICAic3lzdGVtX2hlYWRlcnMvYXJtX2xpbnV4X3N5c2NhbGxzLmgiLAotICAg ICAic3lzdGVtX2hlYWRlcnMvYXJtX2xpbnV4X3Vjb250ZXh0LmgiLAotZGlmZiAtLWdpdCBhL3Ny Yy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L2JwZl9kc2wvbGludXhfc3lzY2FsbF9y YW5nZXMuaCBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L2JwZl9kc2wvbGlu dXhfc3lzY2FsbF9yYW5nZXMuaAotaW5kZXggMzEzNTExZjIyLi4wY2EzYTMyNmYgMTAwNjQ0Ci0t LS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9icGZfZHNsL2xpbnV4X3N5 c2NhbGxfcmFuZ2VzLmgKLSsrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4 L2JwZl9kc2wvbGludXhfc3lzY2FsbF9yYW5nZXMuaAotQEAgLTU2LDYgKzU2LDEzIEBACi0gI2Rl ZmluZSBNQVhfUFVCTElDX1NZU0NBTEwgX19OUl9zeXNjYWxscwotICNkZWZpbmUgTUFYX1NZU0NB TEwgTUFYX1BVQkxJQ19TWVNDQUxMCi0gCi0rI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQot KwotKyNpbmNsdWRlIDxhc20vdW5pc3RkLmg+Ci0rI2RlZmluZSBNSU5fU1lTQ0FMTCAwdQotKyNk ZWZpbmUgTUFYX1BVQkxJQ19TWVNDQUxMIDM4NnUKLSsjZGVmaW5lIE1BWF9TWVNDQUxMIE1BWF9Q VUJMSUNfU1lTQ0FMTAotKwotICNlbHNlCi0gI2Vycm9yICJVbnN1cHBvcnRlZCBhcmNoaXRlY3R1 cmUiCi0gI2VuZGlmCi1kaWZmIC0tZ2l0IGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gv bGludXgvYnBmX2RzbC9zZWNjb21wX21hY3Jvcy5oIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3Nh bmRib3gvbGludXgvYnBmX2RzbC9zZWNjb21wX21hY3Jvcy5oCi1pbmRleCAxYTQwN2I5NTIuLmE2 YWVjNTQ0ZSAxMDA2NDQKLS0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4 L2JwZl9kc2wvc2VjY29tcF9tYWNyb3MuaAotKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3Nh bmRib3gvbGludXgvYnBmX2RzbC9zZWNjb21wX21hY3Jvcy5oCi1AQCAtMTYsNiArMTYsOSBAQAot ICNpZiBkZWZpbmVkKF9fbWlwc19fKQotIC8vIHN5cy91c2VyLmggaW4gZWdsaWJjIG1pc3NlcyBz aXplX3QgZGVmaW5pdGlvbgotICNpbmNsdWRlIDxzdGRkZWYuaD4KLSsjZWxpZiBkZWZpbmVkKF9f cG93ZXJwYzY0X18pCi0rLy8gTWFudWFsbHkgZGVmaW5lIGdyZWdfdCBvbiBwcGM2NAotK3R5cGVk ZWYgdW5zaWduZWQgbG9uZyBsb25nIGdyZWdfdDsKLSAjZW5kaWYKLSAjZW5kaWYKLSAKLUBAIC0z NDYsNiArMzQ5LDUxIEBAIHN0cnVjdCByZWdzX3N0cnVjdCB7Ci0gI2RlZmluZSBTRUNDT01QX1BU X1BBUk00KF9yZWdzKSAoX3JlZ3MpLnJlZ3NbM10KLSAjZGVmaW5lIFNFQ0NPTVBfUFRfUEFSTTUo X3JlZ3MpIChfcmVncykucmVnc1s0XQotICNkZWZpbmUgU0VDQ09NUF9QVF9QQVJNNihfcmVncykg KF9yZWdzKS5yZWdzWzVdCi0rCi0rI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotKyNpbmNs dWRlIDxhc20vcHRyYWNlLmg+Ci0rCi0rdHlwZWRlZiBzdHJ1Y3QgcHRfcmVncyByZWdzX3N0cnVj dDsKLSsKLSsjaWZkZWYgQVJDSF9DUFVfTElUVExFX0VORElBTgotKyNkZWZpbmUgU0VDQ09NUF9B UkNIIEFVRElUX0FSQ0hfUFBDNjRMRQotKyNlbHNlCi0rI2RlZmluZSBTRUNDT01QX0FSQ0ggQVVE SVRfQVJDSF9QUEM2NAotKyNlbmRpZgotKwotKyNkZWZpbmUgU0VDQ09NUF9SRUcoX2N0eCwgX3Jl ZykgKChfY3R4KS0+dWNfbWNvbnRleHQucmVncy0+Z3ByW19yZWddKQotKwotKyNkZWZpbmUgU0VD Q09NUF9SRVNVTFQoX2N0eCkgU0VDQ09NUF9SRUcoX2N0eCwgMykKLSsjZGVmaW5lIFNFQ0NPTVBf U1lTQ0FMTChfY3R4KSBTRUNDT01QX1JFRyhfY3R4LCAwKQotKyNkZWZpbmUgU0VDQ09NUF9JUChf Y3R4KSAoX2N0eCktPnVjX21jb250ZXh0LnJlZ3MtPm5pcAotKyNkZWZpbmUgU0VDQ09NUF9QQVJN MShfY3R4KSBTRUNDT01QX1JFRyhfY3R4LCAzKQotKyNkZWZpbmUgU0VDQ09NUF9QQVJNMihfY3R4 KSBTRUNDT01QX1JFRyhfY3R4LCA0KQotKyNkZWZpbmUgU0VDQ09NUF9QQVJNMyhfY3R4KSBTRUND T01QX1JFRyhfY3R4LCA1KQotKyNkZWZpbmUgU0VDQ09NUF9QQVJNNChfY3R4KSBTRUNDT01QX1JF RyhfY3R4LCA2KQotKyNkZWZpbmUgU0VDQ09NUF9QQVJNNShfY3R4KSBTRUNDT01QX1JFRyhfY3R4 LCA3KQotKyNkZWZpbmUgU0VDQ09NUF9QQVJNNihfY3R4KSBTRUNDT01QX1JFRyhfY3R4LCA4KQot KwotKyNkZWZpbmUgU0VDQ09NUF9OUl9JRFggKG9mZnNldG9mKHN0cnVjdCBhcmNoX3NlY2NvbXBf ZGF0YSwgbnIpKQotKyNkZWZpbmUgU0VDQ09NUF9BUkNIX0lEWCAob2Zmc2V0b2Yoc3RydWN0IGFy Y2hfc2VjY29tcF9kYXRhLCBhcmNoKSkKLSsjZGVmaW5lIFNFQ0NPTVBfSVBfTVNCX0lEWCBcCi0r ICAob2Zmc2V0b2Yoc3RydWN0IGFyY2hfc2VjY29tcF9kYXRhLCBpbnN0cnVjdGlvbl9wb2ludGVy KSArIDQpCi0rI2RlZmluZSBTRUNDT01QX0lQX0xTQl9JRFggXAotKyAgKG9mZnNldG9mKHN0cnVj dCBhcmNoX3NlY2NvbXBfZGF0YSwgaW5zdHJ1Y3Rpb25fcG9pbnRlcikgKyAwKQotKyNkZWZpbmUg U0VDQ09NUF9BUkdfTVNCX0lEWChucikgXAotKyAgKG9mZnNldG9mKHN0cnVjdCBhcmNoX3NlY2Nv bXBfZGF0YSwgYXJncykgKyA4ICogKG5yKSArIDQpCi0rI2RlZmluZSBTRUNDT01QX0FSR19MU0Jf SURYKG5yKSBcCi0rICAob2Zmc2V0b2Yoc3RydWN0IGFyY2hfc2VjY29tcF9kYXRhLCBhcmdzKSAr IDggKiAobnIpICsgMCkKLSsKLSsjZGVmaW5lIFNFQ0NPTVBfUFRfUkVTVUxUKF9yZWdzKSAoX3Jl Z3MpLmdwclszXQotKyNkZWZpbmUgU0VDQ09NUF9QVF9TWVNDQUxMKF9yZWdzKSAoX3JlZ3MpLmdw clswXQotKyNkZWZpbmUgU0VDQ09NUF9QVF9JUChfcmVncykgKF9yZWdzKS5uaXAKLSsjZGVmaW5l IFNFQ0NPTVBfUFRfUEFSTTEoX3JlZ3MpIChfcmVncykuZ3ByWzNdCi0rI2RlZmluZSBTRUNDT01Q X1BUX1BBUk0yKF9yZWdzKSAoX3JlZ3MpLmdwcls0XQotKyNkZWZpbmUgU0VDQ09NUF9QVF9QQVJN MyhfcmVncykgKF9yZWdzKS5ncHJbNV0KLSsjZGVmaW5lIFNFQ0NPTVBfUFRfUEFSTTQoX3JlZ3Mp IChfcmVncykuZ3ByWzZdCi0rI2RlZmluZSBTRUNDT01QX1BUX1BBUk01KF9yZWdzKSAoX3JlZ3Mp Lmdwcls3XQotKyNkZWZpbmUgU0VDQ09NUF9QVF9QQVJNNihfcmVncykgKF9yZWdzKS5ncHJbOF0K LSsKLSAjZWxzZQotICNlcnJvciBVbnN1cHBvcnRlZCB0YXJnZXQgcGxhdGZvcm0KLSAKLWRpZmYg LS1naXQgYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1o ZWxwZXJzL2Jhc2VsaW5lX3BvbGljeS5jYyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94 L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvYmFzZWxpbmVfcG9saWN5LmNjCi1pbmRleCA3Njgw MjVjZTEuLmU0MzY5MTBjMCAxMDA2NDQKLS0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5k Ym94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvYmFzZWxpbmVfcG9saWN5LmNjCi0rKysgYi9z cmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL2Jh c2VsaW5lX3BvbGljeS5jYwotQEAgLTg4LDcgKzg4LDggQEAgYm9vbCBJc0Jhc2VsaW5lUG9saWN5 V2F0Y2hlZChpbnQgc3lzbm8pIHsKLSAgICAgICAgICBTeXNjYWxsU2V0czo6SXNQcmN0bChzeXNu bykgfHwKLSAgICAgICAgICBTeXNjYWxsU2V0czo6SXNQcm9jZXNzR3JvdXBPclNlc3Npb24oc3lz bm8pIHx8Ci0gI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IFwKLS0gICAgKGRlZmluZWQoQVJDSF9D UFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpCi0rICAgIChkZWZp bmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKSB8 fCBcCi0rICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgICAgICBTeXNjYWxsU2V0czo6 SXNTb2NrZXRDYWxsKHN5c25vKSB8fAotICNlbmRpZgotICNpZiBkZWZpbmVkKF9fYXJtX18pCi1A QCAtMjEwLDcgKzIxMSw3IEBAIFJlc3VsdEV4cHIgRXZhbHVhdGVTeXNjYWxsSW1wbChpbnQgZnNf ZGVuaWVkX2Vycm5vLAotICAgfQotIAotICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVk KF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19taXBzX18pIHx8IFwKLS0gICAgZGVmaW5lZChfX2Fh cmNoNjRfXykKLSsgICAgZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2 NF9fKQotICAgaWYgKHN5c25vID09IF9fTlJfbW1hcCkKLSAgICAgcmV0dXJuIFJlc3RyaWN0TW1h cEZsYWdzKCk7Ci0gI2VuZGlmCi1AQCAtMjI4LDcgKzIyOSw3IEBAIFJlc3VsdEV4cHIgRXZhbHVh dGVTeXNjYWxsSW1wbChpbnQgZnNfZGVuaWVkX2Vycm5vLAotICAgICByZXR1cm4gUmVzdHJpY3RQ cmN0bCgpOwotIAotICNpZiBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19hcm1fXykg fHwgZGVmaW5lZChfX21pcHNfXykgfHwgXAotLSAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKQotKyAg ICBkZWZpbmVkKF9fYWFyY2g2NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICBpZiAo c3lzbm8gPT0gX19OUl9zb2NrZXRwYWlyKSB7Ci0gICAgIC8vIE9ubHkgYWxsb3cgQUZfVU5JWCwg UEZfVU5JWC4gQ3Jhc2ggaWYgYW55dGhpbmcgZWxzZSBpcyBzZWVuLgotICAgICBzdGF0aWNfYXNz ZXJ0KEFGX1VOSVggPT0gUEZfVU5JWCwKLUBAIC0yNjgsNyArMjY5LDggQEAgUmVzdWx0RXhwciBF dmFsdWF0ZVN5c2NhbGxJbXBsKGludCBmc19kZW5pZWRfZXJybm8sCi0gICB9Ci0gCi0gI2lmIGRl ZmluZWQoX19pMzg2X18pIHx8IFwKLS0gICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkp ICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpCi0rICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01J UFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKSB8fCBcCi0rICAgIGRlZmlu ZWQoX19wb3dlcnBjNjRfXykKLSAgIGlmIChTeXNjYWxsU2V0czo6SXNTb2NrZXRDYWxsKHN5c25v KSkKLSAgICAgcmV0dXJuIFJlc3RyaWN0U29ja2V0Y2FsbENvbW1hbmQoKTsKLSAjZW5kaWYKLWRp ZmYgLS1naXQgYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9zZWNjb21wLWJw Zi1oZWxwZXJzL2Jhc2VsaW5lX3BvbGljeV91bml0dGVzdC5jYyBiL3NyYy8zcmRwYXJ0eS9jaHJv bWl1bS9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvYmFzZWxpbmVfcG9saWN5X3Vu aXR0ZXN0LmNjCi1pbmRleCA0MWZkZGUzYmYuLjdhMzhlNzNjMCAxMDA2NDQKLS0tLSBhL3NyYy8z cmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvYmFzZWxp bmVfcG9saWN5X3VuaXR0ZXN0LmNjCi0rKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJv eC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL2Jhc2VsaW5lX3BvbGljeV91bml0dGVzdC5jYwot QEAgLTI5MSw4ICsyOTEsMTAgQEAgVEVTVF9CQVNFTElORV9TSUdTWVMoX19OUl90aW1lcl9jcmVh dGUpCi0gI2lmICFkZWZpbmVkKF9fYWFyY2g2NF9fKQotIFRFU1RfQkFTRUxJTkVfU0lHU1lTKF9f TlJfZXZlbnRmZCkKLSBURVNUX0JBU0VMSU5FX1NJR1NZUyhfX05SX2lub3RpZnlfaW5pdCkKLSsj aWYgIWRlZmluZWQoX19wb3dlcnBjNjRfXykKLSBURVNUX0JBU0VMSU5FX1NJR1NZUyhfX05SX3Zz ZXJ2ZXIpCi0gI2VuZGlmCi0rI2VuZGlmCi0gCi0gI2lmIGRlZmluZWQoTElCQ19HTElCQykgJiYg IWRlZmluZWQoT1NfQ0hST01FT1MpCi0gQlBGX1RFU1RfQyhCYXNlbGluZVBvbGljeSwgRnV0ZXhF SU5WQUwsIEJhc2VsaW5lUG9saWN5KSB7Ci1kaWZmIC0tZ2l0IGEvc3JjLzNyZHBhcnR5L2Nocm9t aXVtL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9zeXNjYWxsX3BhcmFtZXRlcnNf cmVzdHJpY3Rpb25zLmNjIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvbGludXgvc2Vj Y29tcC1icGYtaGVscGVycy9zeXNjYWxsX3BhcmFtZXRlcnNfcmVzdHJpY3Rpb25zLmNjCi1pbmRl eCBkOTc4OWE3MTMuLjZmZjQwYzliMCAxMDA2NDQKLS0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1 bS9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc3lzY2FsbF9wYXJhbWV0ZXJzX3Jl c3RyaWN0aW9ucy5jYwotKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvbGludXgv c2VjY29tcC1icGYtaGVscGVycy9zeXNjYWxsX3BhcmFtZXRlcnNfcmVzdHJpY3Rpb25zLmNjCi1A QCAtMzYsNyArMzYsOCBAQAotICNpbmNsdWRlIDxzeXMvaW9jdGwuaD4KLSAjaW5jbHVkZSA8c3lz L3B0cmFjZS5oPgotICNpZiBkZWZpbmVkKE9TX0xJTlVYKSAmJiAhZGVmaW5lZChPU19DSFJPTUVP UykgJiYgIWRlZmluZWQoX19hcm1fXykgJiYgXAotLSAgICAhZGVmaW5lZChfX2FhcmNoNjRfXykg JiYgIWRlZmluZWQoUFRSQUNFX0dFVF9USFJFQURfQVJFQSkKLSsgICAgIWRlZmluZWQoX19hYXJj aDY0X18pICYmICFkZWZpbmVkKFBUUkFDRV9HRVRfVEhSRUFEX0FSRUEpICYmIFwKLSsgICAgIWRl ZmluZWQoX19wb3dlcnBjNjRfXykKLSAvLyBBbHNvIGluY2x1ZGUgYXNtL3B0cmFjZS1hYmkuaCBz aW5jZSBwdHJhY2UuaCBpbiBvbGRlciBsaWJjIChmb3IgaW5zdGFuY2UKLSAvLyB0aGUgb25lIGlu IFVidW50dSAxNi4wNCBMVFMpIGlzIG1pc3NpbmcgUFRSQUNFX0dFVF9USFJFQURfQVJFQS4KLSAv LyBhc20vcHRyYWNlLWFiaS5oIGRvZXNuJ3QgZXhpc3Qgb24gYXJtMzIgYW5kIFBUUkFDRV9HRVRf VEhSRUFEX0FSRUEgaXNuJ3QKLUBAIC00NSw2ICs0NiwxMSBAQAotICNlbmRpZgotICNlbmRpZiAg Ly8gIU9TX05BQ0xfTk9OU0ZJCi0gCi0rLy8gT24gUFBDNjQsIFRDR0VUUyBpcyBkZWZpbmVkIGlu IHRlcm1zIG9mIHN0cnVjdCB0ZXJtaW9zLCBzbyB3ZSBtdXN0IGluY2x1ZGUgdGVybWlvcy5oCi0r I2lmZGVmIF9fcG93ZXJwYzY0X18KLSsjaW5jbHVkZSA8dGVybWlvcy5oPgotKyNlbmRpZgotKwot ICNpZiBkZWZpbmVkKE9TX0FORFJPSUQpCi0gCi0gI2lmICFkZWZpbmVkKEZfRFVQRkRfQ0xPRVhF QykKLUBAIC0xMDcsNiArMTEzLDE1IEBAIGlubGluZSBib29sIElzQXJjaGl0ZWN0dXJlTWlwcygp IHsKLSAjZW5kaWYKLSB9Ci0gCi0raW5saW5lIGJvb2wgSXNBcmNoaXRlY3R1cmVQUEM2NCgpIHsK LSsjaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotKyAgcmV0dXJuIHRydWU7Ci0rI2Vsc2UKLSsg IHJldHVybiBmYWxzZTsKLSsjZW5kaWYKLSt9Ci0rCi0rCi0gLy8gVWJ1bnR1J3MgdmVyc2lvbiBv ZiBnbGliYyBoYXMgYSByYWNlIGNvbmRpdGlvbiBpbiBzZW1fcG9zdCB0aGF0IGNhbiBjYXVzZQot IC8vIGl0IHRvIGNhbGwgZnV0ZXgoMikgd2l0aCBib2d1cyBvcCBhcmd1bWVudHMuIFRvIHdvcmth cm91bmQgdGhpcywgd2UgbmVlZAotIC8vIHRvIGFsbG93IHRob3NlIGZ1dGV4KDIpIGNhbGxzIHRv IGZhaWwgd2l0aCBFSU5WQUwsIGluc3RlYWQgb2YgY3Jhc2hpbmcgdGhlCi1AQCAtMjU5LDYgKzI3 NCw4IEBAIFJlc3VsdEV4cHIgUmVzdHJpY3RGY250bENvbW1hbmRzKCkgewotICAgdWludDY0X3Qg a09MYXJnZUZpbGVGbGFnID0gT19MQVJHRUZJTEU7Ci0gICBpZiAoSXNBcmNoaXRlY3R1cmVYODZf NjQoKSB8fCBJc0FyY2hpdGVjdHVyZUkzODYoKSB8fCBJc0FyY2hpdGVjdHVyZU1pcHMoKSkKLSAg ICAga09MYXJnZUZpbGVGbGFnID0gMDEwMDAwMDsKLSsgIGVsc2UgaWYgKElzQXJjaGl0ZWN0dXJl UFBDNjQoKSkKLSsgICAga09MYXJnZUZpbGVGbGFnID0gMDIwMDAwMDsKLSAKLSAgIGNvbnN0IEFy ZzxpbnQ+IGNtZCgxKTsKLSAgIGNvbnN0IEFyZzxsb25nPiBsb25nX2FyZygyKTsKLUBAIC0yNzMs MTQgKzI5MCwyMyBAQCBSZXN1bHRFeHByIFJlc3RyaWN0RmNudGxDb21tYW5kcygpIHsKLSAgICAg ICAgICAgICAgIEZfU0VUTEtXLAotICAgICAgICAgICAgICAgRl9HRVRMSywKLSAgICAgICAgICAg ICAgIEZfRFVQRkQsCi0tICAgICAgICAgICAgICBGX0RVUEZEX0NMT0VYRUMpLAotLSAgICAgICAg ICAgICBBbGxvdygpKQotKyAgICAgICAgICAgICAgRl9EVVBGRF9DTE9FWEVDCi0rI2lmIGRlZmlu ZWQoX19wb3dlcnBjNjRfXykKLSsvLyBPbiBQUEM2NCwgRl9TRVRMSywgRl9HRVRMSywgRl9TRVRM S1cgYXJlIGRlZmluZWQgYXMgdGhlIDY0LWJpdCB2YXJpYW50cwotKy8vIGJ1dCBnbGliYyB3aWxs IHNvbWV0aW1lcyBzdGlsbCB1c2UgdGhlIDMyLWJpdCB2ZXJzaW9ucy4gQWxsb3cgYm90aC4KLSsg ICAgICAgICAgICAgICwKLSsgICAgICAgICAgICAgIDUsIC8qIEZfR0VUTEsgKDMyKSAqLwotKyAg ICAgICAgICAgICAgNiwgLyogRl9TRVRMSyAoMzIpICovCi0rICAgICAgICAgICAgICA3ICAvKiBG X1NFVExLVyAoMzIpICovCi0rI2VuZGlmCi0rICAgICAgICAgICAgICApLAotKyAgICAgICAgICAg IEFsbG93KCkpCi0gICAgICAgLkNhc2UoRl9TRVRGTCwKLSAgICAgICAgICAgICBJZigobG9uZ19h cmcgJiB+a0FsbG93ZWRNYXNrKSA9PSAwLCBBbGxvdygpKS5FbHNlKENyYXNoU0lHU1lTKCkpKQot ICAgICAgIC5EZWZhdWx0KENyYXNoU0lHU1lTKCkpOwotIH0KLSAKLS0jaWYgZGVmaW5lZChfX2kz ODZfXykgfHwgZGVmaW5lZChfX21pcHNfXykKLSsjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVm aW5lZChfX21pcHNfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotIFJlc3VsdEV4cHIgUmVz dHJpY3RTb2NrZXRjYWxsQ29tbWFuZCgpIHsKLSAgIC8vIFVuZm9ydHVuYXRlbHksIHdlIGFyZSB1 bmFibGUgdG8gcmVzdHJpY3QgdGhlIGZpcnN0IHBhcmFtZXRlciB0bwotICAgLy8gc29ja2V0cGFp cigyKS4gV2hpbHN0IGluaXRpYWxseSBzb3VuZGluZyBiYWQsIGl0J3Mgbm90ZXdvcnRoeSB0aGF0 IHZlcnkKLUBAIC00MjAsNyArNDQ2LDcgQEAgUmVzdWx0RXhwciBSZXN0cmljdFBybGltaXQocGlk X3QgdGFyZ2V0X3BpZCkgewotIFJlc3VsdEV4cHIgUmVzdHJpY3RQdHJhY2UoKSB7Ci0gICBjb25z dCBBcmc8aW50PiByZXF1ZXN0KDApOwotICAgcmV0dXJuIFN3aXRjaChyZXF1ZXN0KS5DQVNFUygo Ci0tI2lmICFkZWZpbmVkKF9fYWFyY2g2NF9fKQotKyNpZiAhZGVmaW5lZChfX2FhcmNoNjRfXykg JiYgIWRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgICAgIFBUUkFDRV9HRVRSRUdTLAotICAg ICAgICAgUFRSQUNFX0dFVEZQUkVHUywKLSAgICAgICAgIFBUUkFDRV9HRVRfVEhSRUFEX0FSRUEs Ci1kaWZmIC0tZ2l0IGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvbGludXgvc2VjY29t cC1icGYtaGVscGVycy9zeXNjYWxsX3BhcmFtZXRlcnNfcmVzdHJpY3Rpb25zLmggYi9zcmMvM3Jk cGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5c2NhbGxf cGFyYW1ldGVyc19yZXN0cmljdGlvbnMuaAotaW5kZXggMTU0NDI4OTJiLi41MGZhNTU5ZjMgMTAw NjQ0Ci0tLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9zZWNjb21wLWJw Zi1oZWxwZXJzL3N5c2NhbGxfcGFyYW1ldGVyc19yZXN0cmljdGlvbnMuaAotKysrIGIvc3JjLzNy ZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9zeXNjYWxs X3BhcmFtZXRlcnNfcmVzdHJpY3Rpb25zLmgKLUBAIC00OCw3ICs0OCw3IEBAIFNBTkRCT1hfRVhQ T1JUIGJwZl9kc2w6OlJlc3VsdEV4cHIgUmVzdHJpY3RNcHJvdGVjdEZsYWdzKCk7Ci0gLy8gT19O T05CTE9DSyB8IE9fU1lOQyB8IE9fTEFSR0VGSUxFIHwgT19DTE9FWEVDIHwgT19OT0FUSU1FLgot IFNBTkRCT1hfRVhQT1JUIGJwZl9kc2w6OlJlc3VsdEV4cHIgUmVzdHJpY3RGY250bENvbW1hbmRz KCk7Ci0gCi0tI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX19taXBzX18pCi0rI2lm IGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX19taXBzX18pIHx8IGRlZmluZWQoX19wb3dl cnBjNjRfXykKLSAvLyBSZXN0cmljdCBzb2NrZXRjYWxsKDIpIHRvIG9ubHkgYWxsb3cgc29ja2V0 cGFpcigyKSwgc2VuZCgyKSwgcmVjdigyKSwKLSAvLyBzZW5kdG8oMiksIHJlY3Zmcm9tKDIpLCBz aHV0ZG93bigyKSwgc2VuZG1zZygyKSBhbmQgcmVjdm1zZygyKS4KLSBTQU5EQk9YX0VYUE9SVCBi cGZfZHNsOjpSZXN1bHRFeHByIFJlc3RyaWN0U29ja2V0Y2FsbENvbW1hbmQoKTsKLWRpZmYgLS1n aXQgYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxw ZXJzL3N5c2NhbGxfc2V0cy5jYyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4 L3NlY2NvbXAtYnBmLWhlbHBlcnMvc3lzY2FsbF9zZXRzLmNjCi1pbmRleCBkOWQxODgyMmYuLjRj ZTQyNjNmZiAxMDA2NDQKLS0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4 L3NlY2NvbXAtYnBmLWhlbHBlcnMvc3lzY2FsbF9zZXRzLmNjCi0rKysgYi9zcmMvM3JkcGFydHkv Y2hyb21pdW0vc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5c2NhbGxfc2V0cy5j YwotQEAgLTI5LDcgKzI5LDggQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNBbGxvd2VkR2V0dGltZShp bnQgc3lzbm8pIHsKLSAgIHN3aXRjaCAoc3lzbm8pIHsKLSAgICAgY2FzZSBfX05SX2dldHRpbWVv ZmRheToKLSAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBc Ci0tICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BV XzMyX0JJVFMpKQotKyAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5l ZChBUkNIX0NQVV8zMl9CSVRTKSkgfHwgXAotKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0g ICAgIGNhc2UgX19OUl90aW1lOgotICNlbmRpZgotICAgICAgIHJldHVybiB0cnVlOwotQEAgLTQx LDEyICs0MiwxNCBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRHZXR0aW1lKGludCBzeXNu bykgewotICAgICBjYXNlIF9fTlJfY2xvY2tfbmFub3NsZWVwOiAgLy8gUGFyYW1ldGVycyBmaWx0 ZXJlZCBieSBSZXN0cmljdENsb2NrSUQoKS4KLSAgICAgY2FzZSBfX05SX2Nsb2NrX3NldHRpbWU6 ICAgIC8vIFByaXZpbGVnZWQuCi0gI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IFwKLS0gICAgKGRl ZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykp Ci0rICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BV XzMyX0JJVFMpKSB8fCBcCi0rICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2FzZSBf X05SX2Z0aW1lOiAgLy8gT2Jzb2xldGUuCi0gI2VuZGlmCi0gICAgIGNhc2UgX19OUl9zZXR0aW1l b2ZkYXk6ICAvLyBQcml2aWxlZ2VkLgotICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBcCi0tICAg IChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJ VFMpKQotKyAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNI X0NQVV8zMl9CSVRTKSkgfHwgXAotKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAgIGNh c2UgX19OUl9zdGltZToKLSAjZW5kaWYKLSAgICAgZGVmYXVsdDoKLUBAIC0xMTIsNyArMTE1LDcg QEAgYm9vbCBTeXNjYWxsU2V0czo6SXNGaWxlU3lzdGVtKGludCBzeXNubykgewotICAgICBjYXNl IF9fTlJfZmFjY2Vzc2F0OiAgLy8gRVBFUk0gbm90IGEgdmFsaWQgZXJybm8uCi0gICAgIGNhc2Ug X19OUl9mY2htb2RhdDoKLSAgICAgY2FzZSBfX05SX2ZjaG93bmF0OiAgLy8gU2hvdWxkIGJlIGNh bGxlZCBjaG93bmF0ID8KLS0jaWYgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fYWFy Y2g2NF9fKQotKyNpZiBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19hYXJjaDY0X18p IHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2FzZSBfX05SX25ld2ZzdGF0YXQ6ICAv LyBmc3RhdGF0KCkuIEVQRVJNIG5vdCBhIHZhbGlkIGVycm5vLgotICNlbGlmIGRlZmluZWQoX19p Mzg2X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwgXAotICAgICAoZGVmaW5lZChBUkNIX0NQVV9N SVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkKLUBAIC0xMzEsNyArMTM0 LDcgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNGaWxlU3lzdGVtKGludCBzeXNubykgewotICAgICBj YXNlIF9fTlJfbWVtZmRfY3JlYXRlOgotICAgICBjYXNlIF9fTlJfbWtkaXJhdDoKLSAgICAgY2Fz ZSBfX05SX21rbm9kYXQ6Ci0tI2lmIGRlZmluZWQoX19pMzg2X18pCi0rI2lmIGRlZmluZWQoX19p Mzg2X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2FzZSBfX05SX29sZGxzdGF0 OgotICAgICBjYXNlIF9fTlJfb2xkc3RhdDoKLSAjZW5kaWYKLUBAIC0xNDUsNyArMTQ4LDggQEAg Ym9vbCBTeXNjYWxsU2V0czo6SXNGaWxlU3lzdGVtKGludCBzeXNubykgewotICNlbmRpZgotICAg ICBjYXNlIF9fTlJfc3RhdGZzOiAgLy8gRVBFUk0gbm90IGEgdmFsaWQgZXJybm8uCi0gI2lmIGRl ZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwgXAotLSAgICAoZGVmaW5lZChB UkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkKLSsgICAg KGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklU UykpIHx8IFwKLSsgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgICBjYXNlIF9fTlJfc3Rh dGZzNjQ6Ci0gI2VuZGlmCi0gICAgIGNhc2UgX19OUl9zeW1saW5rYXQ6Ci1AQCAtMTU1LDcgKzE1 OSw4IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzRmlsZVN5c3RlbShpbnQgc3lzbm8pIHsKLSAgICAg Y2FzZSBfX05SX3RydW5jYXRlNjQ6Ci0gI2VuZGlmCi0gICAgIGNhc2UgX19OUl91bmxpbmthdDoK LS0jaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVk KF9fbWlwc19fKQotKyNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18p IHx8IGRlZmluZWQoX19taXBzX18pIHx8IFwKLSsgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQot ICAgICBjYXNlIF9fTlJfdXRpbWU6Ci0gI2VuZGlmCi0gICAgIGNhc2UgX19OUl91dGltZW5zYXQ6 ICAvLyBOZXcuCi1AQCAtMTc0LDcgKzE3OSw4IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzQWxsb3dl ZEZpbGVTeXN0ZW1BY2Nlc3NWaWFGZChpbnQgc3lzbm8pIHsKLSAjZW5kaWYKLSAgICAgICByZXR1 cm4gdHJ1ZTsKLSAvLyBUT0RPKGpsbik6IHRoZXNlIHNob3VsZCBiZSBkZW5pZWQgZ3JhY2VmdWxs eSBhcyB3ZWxsIChtb3ZlZCBiZWxvdykuCi0tI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmlu ZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX21pcHNfXykKLSsjaWYgZGVmaW5lZChfX2kzODZf XykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBcCi0rICAg IGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2FzZSBfX05SX2ZhZHZpc2U2NDogIC8vIEVQ RVJNIG5vdCBhIHZhbGlkIGVycm5vLgotICNlbmRpZgotICNpZiBkZWZpbmVkKF9faTM4Nl9fKQot QEAgLTE4NywxMSArMTkzLDEyIEBAIGJvb2wgU3lzY2FsbFNldHM6OklzQWxsb3dlZEZpbGVTeXN0 ZW1BY2Nlc3NWaWFGZChpbnQgc3lzbm8pIHsKLSAgICAgY2FzZSBfX05SX2Zsb2NrOiAgICAgIC8v IEVQRVJNIG5vdCBhIHZhbGlkIGVycm5vLgotICAgICBjYXNlIF9fTlJfZnN0YXRmczogICAgLy8g R2l2ZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgd2hvbGUgZmlsZXN5c3RlbS4KLSAjaWYgZGVmaW5l ZChfX2kzODZfXykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBcCi0tICAgIChkZWZpbmVkKEFSQ0hf Q1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQotKyAgICAoZGVm aW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkg fHwgXAotKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19OUl9mc3RhdGZz NjQ6Ci0gI2VuZGlmCi0gICAgIGNhc2UgX19OUl9mc3luYzogIC8vIEVQRVJNIG5vdCBhIHZhbGlk IGVycm5vLgotLSNpZiBkZWZpbmVkKF9faTM4Nl9fKQotKyNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8 fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19OUl9vbGRmc3RhdDoKLSAjZW5k aWYKLSAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZp bmVkKF9fbWlwc19fKSB8fCBcCi1AQCAtMTk5LDYgKzIwNiw4IEBAIGJvb2wgU3lzY2FsbFNldHM6 OklzQWxsb3dlZEZpbGVTeXN0ZW1BY2Nlc3NWaWFGZChpbnQgc3lzbm8pIHsKLSAgICAgY2FzZSBf X05SX3N5bmNfZmlsZV9yYW5nZTogIC8vIEVQRVJNIG5vdCBhIHZhbGlkIGVycm5vLgotICNlbGlm IGRlZmluZWQoX19hcm1fXykKLSAgICAgY2FzZSBfX05SX2FybV9zeW5jX2ZpbGVfcmFuZ2U6ICAv LyBFUEVSTSBub3QgYSB2YWxpZCBlcnJuby4KLSsjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18p Ci0rICAgIGNhc2UgX19OUl9zeW5jX2ZpbGVfcmFuZ2UyOiAvLyBFUEVSTSBub3QgYSB2YWxpZCBl cnJuby4KLSAjZW5kaWYKLSAgICAgZGVmYXVsdDoKLSAgICAgICByZXR1cm4gZmFsc2U7Ci1AQCAt MjI0LDcgKzIzMyw4IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzRGVuaWVkRmlsZVN5c3RlbUFjY2Vz c1ZpYUZkKGludCBzeXNubykgewotICNlbmRpZgotICAgICBjYXNlIF9fTlJfZ2V0ZGVudHM2NDog IC8vIEVQRVJNIG5vdCBhIHZhbGlkIGVycm5vLgotICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBc Ci0tICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BV XzMyX0JJVFMpKQotKyAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5l ZChBUkNIX0NQVV8zMl9CSVRTKSkgfHwgXAotKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0g ICAgIGNhc2UgX19OUl9yZWFkZGlyOgotICNlbmRpZgotICAgICAgIHJldHVybiB0cnVlOwotQEAg LTI2NSw3ICsyNzUsNyBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0dldFNpbXBsZUlkKGludCBzeXNu bykgewotIGJvb2wgU3lzY2FsbFNldHM6OklzUHJvY2Vzc1ByaXZpbGVnZUNoYW5nZShpbnQgc3lz bm8pIHsKLSAgIHN3aXRjaCAoc3lzbm8pIHsKLSAgICAgY2FzZSBfX05SX2NhcHNldDoKLS0jaWYg ZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKQotKyNpZiBkZWZpbmVkKF9f aTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykK LSAgICAgY2FzZSBfX05SX2lvcGVybTogIC8vIEludGVsIHByaXZpbGVnZS4KLSAgICAgY2FzZSBf X05SX2lvcGw6ICAgIC8vIEludGVsIHByaXZpbGVnZS4KLSAjZW5kaWYKLUBAIC0zMTYsNyArMzI2 LDggQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNBbGxvd2VkU2lnbmFsSGFuZGxpbmcoaW50IHN5c25v KSB7Ci0gICAgIGNhc2UgX19OUl9ydF9zaWdyZXR1cm46Ci0gICAgIGNhc2UgX19OUl9ydF9zaWd0 aW1lZHdhaXQ6Ci0gI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwg XAotLSAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQ VV8zMl9CSVRTKSkKLSsgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmlu ZWQoQVJDSF9DUFVfMzJfQklUUykpIHx8IFwKLSsgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQot ICAgICBjYXNlIF9fTlJfc2lnYWN0aW9uOgotICAgICBjYXNlIF9fTlJfc2lncHJvY21hc2s6Ci0g ICAgIGNhc2UgX19OUl9zaWdyZXR1cm46Ci1AQCAtMzMyLDcgKzM0Myw4IEBAIGJvb2wgU3lzY2Fs bFNldHM6OklzQWxsb3dlZFNpZ25hbEhhbmRsaW5nKGludCBzeXNubykgewotICNlbmRpZgotICAg ICBjYXNlIF9fTlJfc2lnbmFsZmQ0OgotICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVk KF9fYXJtX18pIHx8IFwKLS0gICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRl ZmluZWQoQVJDSF9DUFVfMzJfQklUUykpCi0rICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFN SUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKSB8fCBcCi0rICAgIGRlZmluZWQoX19w b3dlcnBjNjRfXykKLSAgICAgY2FzZSBfX05SX3NpZ3BlbmRpbmc6Ci0gICAgIGNhc2UgX19OUl9z aWdzdXNwZW5kOgotICNlbmRpZgotQEAgLTM1Niw3ICszNjgsNyBAQCBib29sIFN5c2NhbGxTZXRz OjpJc0FsbG93ZWRPcGVyYXRpb25PbkZkKGludCBzeXNubykgewotICNlbmRpZgotICAgICBjYXNl IF9fTlJfZHVwMzoKLSAjaWYgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fYXJtX18p IHx8IGRlZmluZWQoX19taXBzX18pIHx8IFwKLS0gICAgZGVmaW5lZChfX2FhcmNoNjRfXykKLSsg ICAgZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgICBj YXNlIF9fTlJfc2h1dGRvd246Ci0gI2VuZGlmCi0gICAgICAgcmV0dXJuIHRydWU7Ci1AQCAtMzg5 LDcgKzQwMSw3IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzQWxsb3dlZFByb2Nlc3NTdGFydE9yRGVh dGgoaW50IHN5c25vKSB7Ci0gICAgIGNhc2UgX19OUl9leGl0X2dyb3VwOgotICAgICBjYXNlIF9f TlJfd2FpdDQ6Ci0gICAgIGNhc2UgX19OUl93YWl0aWQ6Ci0tI2lmIGRlZmluZWQoX19pMzg2X18p Ci0rI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAg Y2FzZSBfX05SX3dhaXRwaWQ6Ci0gI2VuZGlmCi0gICAgICAgcmV0dXJuIHRydWU7Ci1AQCAtNDA2 LDcgKzQxOCw3IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzQWxsb3dlZFByb2Nlc3NTdGFydE9yRGVh dGgoaW50IHN5c25vKSB7Ci0gI2VuZGlmCi0gICAgIGNhc2UgX19OUl9zZXRfdGlkX2FkZHJlc3M6 Ci0gICAgIGNhc2UgX19OUl91bnNoYXJlOgotLSNpZiAhZGVmaW5lZChfX21pcHNfXykgJiYgIWRl ZmluZWQoX19hYXJjaDY0X18pCi0rI2lmICFkZWZpbmVkKF9fbWlwc19fKSAmJiAhZGVmaW5lZChf X2FhcmNoNjRfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgICBjYXNlIF9fTlJfdmZv cms6Ci0gI2VuZGlmCi0gICAgIGRlZmF1bHQ6Ci1AQCAtNDU1LDcgKzQ2Nyw3IEBAIGJvb2wgU3lz Y2FsbFNldHM6OklzQWxsb3dlZEdldE9yTW9kaWZ5U29ja2V0KGludCBzeXNubykgewotICAgICAg IHJldHVybiB0cnVlOwotICAgICBkZWZhdWx0OgotICNpZiBkZWZpbmVkKF9feDg2XzY0X18pIHx8 IGRlZmluZWQoX19hcm1fXykgfHwgZGVmaW5lZChfX21pcHNfXykgfHwgXAotLSAgICBkZWZpbmVk KF9fYWFyY2g2NF9fKQotKyAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKSB8fCBkZWZpbmVkKF9fcG93 ZXJwYzY0X18pCi0gICAgIGNhc2UgX19OUl9zb2NrZXRwYWlyOiAgLy8gV2Ugd2lsbCB3YW50IHRv IGluc3BlY3QgaXRzIGFyZ3VtZW50LgotICNlbmRpZgotICAgICAgIHJldHVybiBmYWxzZTsKLUBA IC00NjUsNyArNDc3LDcgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNBbGxvd2VkR2V0T3JNb2RpZnlT b2NrZXQoaW50IHN5c25vKSB7Ci0gYm9vbCBTeXNjYWxsU2V0czo6SXNEZW5pZWRHZXRPck1vZGlm eVNvY2tldChpbnQgc3lzbm8pIHsKLSAgIHN3aXRjaCAoc3lzbm8pIHsKLSAjaWYgZGVmaW5lZChf X3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8IGRlZmluZWQoX19taXBzX18pIHx8IFwK LS0gICAgZGVmaW5lZChfX2FhcmNoNjRfXykKLSsgICAgZGVmaW5lZChfX2FhcmNoNjRfXykgfHwg ZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgICBjYXNlIF9fTlJfYWNjZXB0OgotICAgICBjYXNl IF9fTlJfYWNjZXB0NDoKLSAgICAgY2FzZSBfX05SX2JpbmQ6Ci1AQCAtNDgwLDcgKzQ5Miw4IEBA IGJvb2wgU3lzY2FsbFNldHM6OklzRGVuaWVkR2V0T3JNb2RpZnlTb2NrZXQoaW50IHN5c25vKSB7 Ci0gfQotIAotICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBcCi0tICAgIChkZWZpbmVkKEFSQ0hf Q1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQotKyAgICAoZGVm aW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkg fHwgXAotKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gLy8gQmlnIG11bHRpcGxleGluZyBz eXN0ZW0gY2FsbCBmb3Igc29ja2V0cy4KLSBib29sIFN5c2NhbGxTZXRzOjpJc1NvY2tldENhbGwo aW50IHN5c25vKSB7Ci0gICBzd2l0Y2ggKHN5c25vKSB7Ci1AQCAtNDk0LDcgKzUwNyw4IEBAIGJv b2wgU3lzY2FsbFNldHM6OklzU29ja2V0Q2FsbChpbnQgc3lzbm8pIHsKLSB9Ci0gI2VuZGlmCi0g Ci0tI2lmIGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBkZWZpbmVk KF9fbWlwc19fKQotKyNpZiBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19hcm1fXykg fHwgZGVmaW5lZChfX21pcHNfXykgfHwgXAotKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0g Ym9vbCBTeXNjYWxsU2V0czo6SXNOZXR3b3JrU29ja2V0SW5mb3JtYXRpb24oaW50IHN5c25vKSB7 Ci0gICBzd2l0Y2ggKHN5c25vKSB7Ci0gICAgIGNhc2UgX19OUl9nZXRwZWVybmFtZToKLUBAIC01 MTksNyArNTMzLDcgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNBbGxvd2VkQWRkcmVzc1NwYWNlQWNj ZXNzKGludCBzeXNubykgewotICAgICBjYXNlIF9fTlJfbWluY29yZToKLSAgICAgY2FzZSBfX05S X21sb2NrYWxsOgotICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18p IHx8IGRlZmluZWQoX19taXBzX18pIHx8IFwKLS0gICAgZGVmaW5lZChfX2FhcmNoNjRfXykKLSsg ICAgZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgICBj YXNlIF9fTlJfbW1hcDoKLSAjZW5kaWYKLSAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5l ZChfX2FybV9fKSB8fCBcCi1AQCAtNTQ5LDcgKzU2Myw4IEBAIGJvb2wgU3lzY2FsbFNldHM6Oklz QWxsb3dlZEdlbmVyYWxJbyhpbnQgc3lzbm8pIHsKLSAgIHN3aXRjaCAoc3lzbm8pIHsKLSAgICAg Y2FzZSBfX05SX2xzZWVrOgotICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9fYXJt X18pIHx8IFwKLS0gICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQo QVJDSF9DUFVfMzJfQklUUykpCi0rICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAm JiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKSB8fCBcCi0rICAgIGRlZmluZWQoX19wb3dlcnBj NjRfXykKLSAgICAgY2FzZSBfX05SX19sbHNlZWs6Ci0gI2VuZGlmCi0gI2lmICFkZWZpbmVkKF9f YWFyY2g2NF9fKQotQEAgLTU2MSwyNiArNTc2LDI4IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzQWxs b3dlZEdlbmVyYWxJbyhpbnQgc3lzbm8pIHsKLSAgICAgY2FzZSBfX05SX3JlYWR2OgotICAgICBj YXNlIF9fTlJfcHJlYWQ2NDoKLSAjaWYgZGVmaW5lZChfX2FybV9fKSB8fCBcCi0tICAgIChkZWZp bmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQot KyAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8z Ml9CSVRTKSkgfHwgXAotKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19O Ul9yZWN2OgotICNlbmRpZgotICNpZiBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19h cm1fXykgfHwgZGVmaW5lZChfX21pcHNfXykgfHwgXAotLSAgICBkZWZpbmVkKF9fYWFyY2g2NF9f KQotKyAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0g ICAgIGNhc2UgX19OUl9yZWN2ZnJvbTogIC8vIENvdWxkIHNwZWNpZnkgc291cmNlLgotICAgICBj YXNlIF9fTlJfcmVjdm1zZzogICAvLyBDb3VsZCBzcGVjaWZ5IHNvdXJjZS4KLSAjZW5kaWYKLS0j aWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKQotKyNpZiBkZWZpbmVk KF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRf XykKLSAgICAgY2FzZSBfX05SX3NlbGVjdDoKLSAjZW5kaWYKLS0jaWYgZGVmaW5lZChfX2kzODZf XykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKQotKyNpZiBkZWZpbmVk KF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8IGRlZmluZWQoX19taXBzX18pIHx8IGRl ZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2FzZSBfX05SX19uZXdzZWxlY3Q6Ci0gI2VuZGlm Ci0gI2lmIGRlZmluZWQoX19hcm1fXykgfHwgXAotLSAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBT X0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkKLSsgICAgKGRlZmluZWQoQVJD SF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpIHx8IFwKLSsg ICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgICBjYXNlIF9fTlJfc2VuZDoKLSAjZW5kaWYK LSAjaWYgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8IGRlZmluZWQo X19taXBzX18pIHx8IFwKLS0gICAgZGVmaW5lZChfX2FhcmNoNjRfXykKLSsgICAgZGVmaW5lZChf X2FhcmNoNjRfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgICBjYXNlIF9fTlJfc2Vu ZG1zZzogIC8vIENvdWxkIHNwZWNpZnkgZGVzdGluYXRpb24uCi0gICAgIGNhc2UgX19OUl9zZW5k dG86ICAgLy8gQ291bGQgc3BlY2lmeSBkZXN0aW5hdGlvbi4KLSAjZW5kaWYKLUBAIC02MzcsNyAr NjU0LDggQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNBbGxvd2VkQmFzaWNTY2hlZHVsZXIoaW50IHN5 c25vKSB7Ci0gICAgICAgcmV0dXJuIHRydWU7Ci0gICAgIGNhc2UgX19OUl9nZXRwcmlvcml0eToK LSAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBcCi0tICAgIChk ZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMp KQotKyAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQ VV8zMl9CSVRTKSkgfHwgXAotKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAgIGNhc2Ug X19OUl9uaWNlOgotICNlbmRpZgotICAgICBjYXNlIF9fTlJfc2V0cHJpb3JpdHk6Ci1AQCAtNjQ5 LDcgKzY2Nyw4IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzQWxsb3dlZEJhc2ljU2NoZWR1bGVyKGlu dCBzeXNubykgewotIGJvb2wgU3lzY2FsbFNldHM6OklzQWRtaW5PcGVyYXRpb24oaW50IHN5c25v KSB7Ci0gICBzd2l0Y2ggKHN5c25vKSB7Ci0gI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmlu ZWQoX19hcm1fXykgfHwgXAotLSAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYg ZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkKLSsgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19G QU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpIHx8IFwKLSsgICAgZGVmaW5lZChf X3Bvd2VycGM2NF9fKQotICAgICBjYXNlIF9fTlJfYmRmbHVzaDoKLSAjZW5kaWYKLSAgICAgY2Fz ZSBfX05SX2tleGVjX2xvYWQ6Ci1AQCAtNjY1LDcgKzY4NCw4IEBAIGJvb2wgU3lzY2FsbFNldHM6 OklzQWRtaW5PcGVyYXRpb24oaW50IHN5c25vKSB7Ci0gCi0gYm9vbCBTeXNjYWxsU2V0czo6SXNL ZXJuZWxNb2R1bGUoaW50IHN5c25vKSB7Ci0gICBzd2l0Y2ggKHN5c25vKSB7Ci0tI2lmIGRlZmlu ZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX21pcHNfXykK LSsjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVk KF9fbWlwc19fKSB8fCBcCi0rICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2FzZSBf X05SX2NyZWF0ZV9tb2R1bGU6Ci0gICAgIGNhc2UgX19OUl9nZXRfa2VybmVsX3N5bXM6ICAvLyBT aG91bGQgRU5PU1lTLgotICAgICBjYXNlIF9fTlJfcXVlcnlfbW9kdWxlOgotQEAgLTY5OCw3ICs3 MTgsOCBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0ZzQ29udHJvbChpbnQgc3lzbm8pIHsKLSAgICAg Y2FzZSBfX05SX3N3YXBvZmY6Ci0gICAgIGNhc2UgX19OUl9zd2Fwb246Ci0gI2lmIGRlZmluZWQo X19pMzg2X18pIHx8IFwKLS0gICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRl ZmluZWQoQVJDSF9DUFVfMzJfQklUUykpCi0rICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFN SUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKSB8fCBcCi0rICAgIGRlZmluZWQoX19w b3dlcnBjNjRfXykKLSAgICAgY2FzZSBfX05SX3Vtb3VudDoKLSAjZW5kaWYKLSAgICAgY2FzZSBf X05SX3Vtb3VudDI6Ci1AQCAtNzE0LDcgKzczNSw3IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzTnVt YShpbnQgc3lzbm8pIHsKLSAgICAgY2FzZSBfX05SX2dldGNwdToKLSAgICAgY2FzZSBfX05SX21i aW5kOgotICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRl ZmluZWQoX19taXBzX18pIHx8IFwKLS0gICAgZGVmaW5lZChfX2FhcmNoNjRfXykKLSsgICAgZGVm aW5lZChfX2FhcmNoNjRfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgICBjYXNlIF9f TlJfbWlncmF0ZV9wYWdlczoKLSAjZW5kaWYKLSAgICAgY2FzZSBfX05SX21vdmVfcGFnZXM6Ci1A QCAtNzQzLDE0ICs3NjQsMTUgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNHbG9iYWxQcm9jZXNzRW52 aXJvbm1lbnQoaW50IHN5c25vKSB7Ci0gICBzd2l0Y2ggKHN5c25vKSB7Ci0gICAgIGNhc2UgX19O Ul9hY2N0OiAgLy8gUHJpdmlsZWdlZC4KLSAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5l ZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBcCi0tICAgIGRlZmluZWQoX19h YXJjaDY0X18pCi0rICAgIGRlZmluZWQoX19hYXJjaDY0X18pIHx8IGRlZmluZWQoX19wb3dlcnBj NjRfXykKLSAgICAgY2FzZSBfX05SX2dldHJsaW1pdDoKLSAjZW5kaWYKLS0jaWYgZGVmaW5lZChf X2kzODZfXykgfHwgZGVmaW5lZChfX2FybV9fKQotKyNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBk ZWZpbmVkKF9fYXJtX18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2FzZSBfX05S X3VnZXRybGltaXQ6Ci0gI2VuZGlmCi0gI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IFwKLS0gICAg KGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklU UykpCi0rICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hf Q1BVXzMyX0JJVFMpKSB8fCBcCi0rICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2Fz ZSBfX05SX3VsaW1pdDoKLSAjZW5kaWYKLSAgICAgY2FzZSBfX05SX2dldHJ1c2FnZToKLUBAIC03 ODQsNyArODA2LDcgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNHbG9iYWxTeXN0ZW1TdGF0dXMoaW50 IHN5c25vKSB7Ci0gI2VuZGlmCi0gICAgIGNhc2UgX19OUl9zeXNpbmZvOgotICAgICBjYXNlIF9f TlJfdW5hbWU6Ci0tI2lmIGRlZmluZWQoX19pMzg2X18pCi0rI2lmIGRlZmluZWQoX19pMzg2X18p IHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2FzZSBfX05SX29sZHVuYW1lOgotICAg ICBjYXNlIF9fTlJfb2xkb2xkdW5hbWU6Ci0gI2VuZGlmCi1AQCAtODc5LDcgKzkwMiw4IEBAIGJv b2wgU3lzY2FsbFNldHM6OklzU3lzdGVtVk1lc3NhZ2VRdWV1ZShpbnQgc3lzbm8pIHsKLSAjZW5k aWYKLSAKLSAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgXAotLSAgICAoZGVmaW5lZChBUkNIX0NQ VV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkKLSsgICAgKGRlZmlu ZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpIHx8 IFwKLSsgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotIC8vIEJpZyBzeXN0ZW0gViBtdWx0aXBs ZXhpbmcgc3lzdGVtIGNhbGwuCi0gYm9vbCBTeXNjYWxsU2V0czo6SXNTeXN0ZW1WSXBjKGludCBz eXNubykgewotICAgc3dpdGNoIChzeXNubykgewotQEAgLTg5OSw3ICs5MjMsOCBAQCBib29sIFN5 c2NhbGxTZXRzOjpJc0FueVN5c3RlbVYoaW50IHN5c25vKSB7Ci0gICByZXR1cm4gSXNTeXN0ZW1W TWVzc2FnZVF1ZXVlKHN5c25vKSB8fCBJc1N5c3RlbVZTZW1hcGhvcmVzKHN5c25vKSB8fAotICAg ICAgICAgIElzU3lzdGVtVlNoYXJlZE1lbW9yeShzeXNubyk7Ci0gI2VsaWYgZGVmaW5lZChfX2kz ODZfXykgfHwgXAotLSAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5l ZChBUkNIX0NQVV8zMl9CSVRTKSkKLSsgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkp ICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpIHx8IFwKLSsgICAgZGVmaW5lZChfX3Bvd2Vy cGM2NF9fKQotICAgcmV0dXJuIElzU3lzdGVtVklwYyhzeXNubyk7Ci0gI2VuZGlmCi0gfQotQEAg LTk1Miw3ICs5NzcsOCBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0ZhTm90aWZ5KGludCBzeXNubykg ewotIGJvb2wgU3lzY2FsbFNldHM6OklzVGltZXIoaW50IHN5c25vKSB7Ci0gICBzd2l0Y2ggKHN5 c25vKSB7Ci0gICAgIGNhc2UgX19OUl9nZXRpdGltZXI6Ci0tI2lmIGRlZmluZWQoX19pMzg2X18p IHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX21pcHNfXykKLSsjaWYgZGVmaW5l ZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8 fCBcCi0rICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2FzZSBfX05SX2FsYXJtOgot ICNlbmRpZgotICAgICBjYXNlIF9fTlJfc2V0aXRpbWVyOgotQEAgLTEwMTEsMTggKzEwMzcsMjIg QEAgYm9vbCBTeXNjYWxsU2V0czo6SXNNaXNjKGludCBzeXNubykgewotICAgICBjYXNlIF9fTlJf c3luY2ZzOgotICAgICBjYXNlIF9fTlJfdmhhbmd1cDoKLSAvLyBUaGUgc3lzdGVtIGNhbGxzIGJl bG93IGFyZSBub3QgaW1wbGVtZW50ZWQuCi0tI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmlu ZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX21pcHNfXykKLSsjaWYgZGVmaW5lZChfX2kzODZf XykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBcCi0rICAg IGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2FzZSBfX05SX2Fmc19zeXNjYWxsOgotICNl bmRpZgotICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBcCi0tICAgIChkZWZpbmVkKEFSQ0hfQ1BV X01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQotKyAgICAoZGVmaW5l ZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkgfHwg XAotKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19OUl9icmVhazoKLSAj ZW5kaWYKLS0jaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBk ZWZpbmVkKF9fbWlwc19fKQotKyNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2 XzY0X18pIHx8IGRlZmluZWQoX19taXBzX18pIHx8IFwKLSsgICAgZGVmaW5lZChfX3Bvd2VycGM2 NF9fKQotICAgICBjYXNlIF9fTlJfZ2V0cG1zZzoKLSAjZW5kaWYKLSAjaWYgZGVmaW5lZChfX2kz ODZfXykgfHwgXAotLSAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5l ZChBUkNIX0NQVV8zMl9CSVRTKSkKLSsgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkp ICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpIHx8IFwKLSsgICAgZGVmaW5lZChfX3Bvd2Vy cGM2NF9fKQotICAgICBjYXNlIF9fTlJfZ3R0eToKLSAgICAgY2FzZSBfX05SX2lkbGU6Ci0gICAg IGNhc2UgX19OUl9sb2NrOgotQEAgLTEwMzAsMjAgKzEwNjAsMjIgQEAgYm9vbCBTeXNjYWxsU2V0 czo6SXNNaXNjKGludCBzeXNubykgewotICAgICBjYXNlIF9fTlJfcHJvZjoKLSAgICAgY2FzZSBf X05SX3Byb2ZpbDoKLSAjZW5kaWYKLS0jaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChf X3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKQotKyNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8 fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19taXBzX18pIHx8IFwKLSsgICAgZGVm aW5lZChfX3Bvd2VycGM2NF9fKQotICAgICBjYXNlIF9fTlJfcHV0cG1zZzoKLSAjZW5kaWYKLSAj aWYgZGVmaW5lZChfX3g4Nl82NF9fKQotICAgICBjYXNlIF9fTlJfc2VjdXJpdHk6Ci0gI2VuZGlm Ci0gI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IFwKLS0gICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQ U19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpCi0rICAgIChkZWZpbmVkKEFS Q0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKSB8fCBcCi0r ICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2FzZSBfX05SX3N0dHk6Ci0gI2VuZGlm Ci0tI2lmIGRlZmluZWQoX194ODZfNjRfXykKLSsjaWYgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBk ZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19OUl90dXhjYWxsOgotICNlbmRpZgot LSNpZiAhZGVmaW5lZChfX2FhcmNoNjRfXykKLSsjaWYgIWRlZmluZWQoX19hYXJjaDY0X18pICYm ICFkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19OUl92c2VydmVyOgotICNlbmRp ZgotICAgICAgIHJldHVybiB0cnVlOwotZGlmZiAtLWdpdCBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1 bS9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc3lzY2FsbF9zZXRzLmggYi9zcmMv M3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5c2Nh bGxfc2V0cy5oCi1pbmRleCA5MjM1MzNlYzkuLjk5MTg0YTdmOSAxMDA2NDQKLS0tLSBhL3NyYy8z cmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc3lzY2Fs bF9zZXRzLmgKLSsrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L3NlY2Nv bXAtYnBmLWhlbHBlcnMvc3lzY2FsbF9zZXRzLmgKLUBAIC00MywxMyArNDMsMTQgQEAgY2xhc3Mg U0FOREJPWF9FWFBPUlQgU3lzY2FsbFNldHMgewotICAgc3RhdGljIGJvb2wgSXNEZW5pZWRHZXRP ck1vZGlmeVNvY2tldChpbnQgc3lzbm8pOwotIAotICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBc Ci0tICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BV XzMyX0JJVFMpKQotKyAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5l ZChBUkNIX0NQVV8zMl9CSVRTKSkgfHwgXAotKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0g ICAvLyBCaWcgbXVsdGlwbGV4aW5nIHN5c3RlbSBjYWxsIGZvciBzb2NrZXRzLgotICAgc3RhdGlj IGJvb2wgSXNTb2NrZXRDYWxsKGludCBzeXNubyk7Ci0gI2VuZGlmCi0gCi0gI2lmIGRlZmluZWQo X194ODZfNjRfXykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBc Ci0tICAgIGRlZmluZWQoX19hYXJjaDY0X18pCi0rICAgIGRlZmluZWQoX19hYXJjaDY0X18pIHx8 IGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgIHN0YXRpYyBib29sIElzTmV0d29ya1NvY2tldElu Zm9ybWF0aW9uKGludCBzeXNubyk7Ci0gI2VuZGlmCi0gCi1AQCAtODgsNyArOTAsOCBAQCBjbGFz cyBTQU5EQk9YX0VYUE9SVCBTeXNjYWxsU2V0cyB7Ci0gI2VuZGlmCi0gCi0gI2lmIGRlZmluZWQo X19pMzg2X18pIHx8IFwKLS0gICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRl ZmluZWQoQVJDSF9DUFVfMzJfQklUUykpCi0rICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFN SUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKSB8fCBcCi0rICAgIGRlZmluZWQoX19w b3dlcnBjNjRfXykKLSAgIC8vIEJpZyBzeXN0ZW0gViBtdWx0aXBsZXhpbmcgc3lzdGVtIGNhbGwu Ci0gICBzdGF0aWMgYm9vbCBJc1N5c3RlbVZJcGMoaW50IHN5c25vKTsKLSAjZW5kaWYKLWRpZmYg LS1naXQgYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi9z eXNjYWxsLmNjIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvbGludXgvc2VjY29tcC1i cGYvc3lzY2FsbC5jYwotaW5kZXggMzRlZGFiZDJiLi4xMGZhNWZkMDcgMTAwNjQ0Ci0tLS0gYS9z cmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi9zeXNjYWxsLmNj Ci0rKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi9z eXNjYWxsLmNjCi1AQCAtMTYsNyArMTYsNyBAQCBuYW1lc3BhY2Ugc2FuZGJveCB7Ci0gbmFtZXNw YWNlIHsKLSAKLSAjaWYgZGVmaW5lZChBUkNIX0NQVV9YODZfRkFNSUxZKSB8fCBkZWZpbmVkKEFS Q0hfQ1BVX0FSTV9GQU1JTFkpIHx8IFwKLS0gICAgZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlM WSkKLSsgICAgZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgfHwgZGVmaW5lZCAoQVJDSF9D UFVfUFBDNjRfRkFNSUxZKQotIC8vIE51bWJlciB0aGF0J3Mgbm90IGN1cnJlbnRseSB1c2VkIGJ5 IGFueSBMaW51eCBrZXJuZWwgQUJJcy4KLSBjb25zdCBpbnQga0ludmFsaWRTeXNjYWxsTnVtYmVy ID0gMHgzNTFkMzsKLSAjZWxzZQotQEAgLTMwOCwxMiArMzA4LDU2IEBAIGFzbSgvLyBXZSBuZWVk IHRvIGJlIGFibGUgdG8gdGVsbCB0aGUga2VybmVsIGV4YWN0bHkgd2hlcmUgd2UgbWFkZSBhCi0g ICAgIC8vIEVudGVyIHRoZSBrZXJuZWwKLSAgICAgInN2YyAwXG4iCi0gICAgICIyOnJldFxuIgot KyAgICAiLmNmaV9lbmRwcm9jXG4iCi0rICAgICIuc2l6ZSBTeXNjYWxsQXNtLCAuLVN5c2NhbGxB c21cbiIKLSsjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rICAgICIudGV4dFxuIgotKyAg ICAiLmFsaWduIDRcbiIKLSsgICAgIi50eXBlIFN5c2NhbGxBc20gQGZ1bmN0aW9uXG4iCi0rICAg ICJTeXNjYWxsQXNtOlxuIgotKyAgICAiLmNmaV9zdGFydHByb2NcbiIKLSsKLSsgICAgLy8gQ2hl Y2sgaWYgcjMgaXMgbmVnYXRpdmUKLSsgICAgImNtcGRpIDMsIDBcbiIKLSsgICAgImJndCAyZlxu IgotKwotKyAgICAvLyBMb2FkIGFkZHJlc3Mgb2YgM2YgaW50byByMyBhbmQgcmV0dXJuCi0rICAg ICJtZmxyIDEwXG4iCi0rICAgICJibCAxZlxuIgotKyAgICAiMTogbWZsciAzXG4iCi0rICAgICJt dGxyIDEwXG4iCi0rICAgICJhZGRpIDMsIDMsIDQqMTNcbiIKLSsgICAgImJsclxuIgotKwotKyAg ICAvLyBMb2FkIGFyZ3VtZW50cyBmcm9tIGFycmF5IGludG8gcjMtOAotKyAgICAvLyBzYXZlIHBh cmFtIDMgaW4gcjEwCi0rICAgICIyOlxuIgotKyAgICAibXIgMCwgM1xuIgotKyAgICAibGQgMywg MCg0KVxuIgotKyAgICAibGQgNSwgMTYoNClcbiIKLSsgICAgImxkIDYsIDI0KDQpXG4iCi0rICAg ICJsZCA3LCAzMig0KVxuIgotKyAgICAibGQgOCwgNDAoNClcbiIKLSsgICAgImxkIDQsIDgoNClc biIKLSsgICAgImxpIDksIDBcbiIKLSsKLSsgICAgLy8gRW50ZXIga2VybmVsCi0rICAgICJzY1xu IgotKwotKyAgICAvLyBNYWdpYyByZXR1cm4gYWRkcmVzcwotKyAgICAiMzpcbiIKLSsgICAgLy8g TGlrZSBNSVBTLCBwcGM2NCByZXR1cm4gdmFsdWVzIGFyZSBhbHdheXMgcG9zaXRpdmUuCi0rICAg IC8vIENoZWNrIGZvciBlcnJvciBpbiBjcjAuU08gYW5kIG5lZ2F0ZSB1cG9uIGVycm9yCi0rICAg ICJiYyA0LCAzLCA0ZlxuIgotKyAgICAibmVnIDMsIDNcbiIKLSsgICAgIjQ6IGJsclxuIgotKwot ICAgICAiLmNmaV9lbmRwcm9jXG4iCi0gICAgICIuc2l6ZSBTeXNjYWxsQXNtLCAuLVN5c2NhbGxB c21cbiIKLSAjZW5kaWYKLSAgICAgKTsgIC8vIGFzbQotIAotLSNpZiBkZWZpbmVkKF9feDg2XzY0 X18pCi0rI2lmIGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQot IGV4dGVybiAiQyIgewotIGludHB0cl90IFN5c2NhbGxBc20oaW50cHRyX3QgbnIsIGNvbnN0IGlu dHB0cl90IGFyZ3NbNl0pOwotIH0KLUBAIC00MjcsNiArNDcxLDggQEAgaW50cHRyX3QgU3lzY2Fs bDo6Q2FsbChpbnQgbnIsCi0gICAgIHJldCA9IGlub3V0OwotICAgfQotIAotKyNlbGlmIGRlZmlu ZWQoX19wb3dlcnBjNjRfXykKLSsgIGludHB0cl90IHJldCA9IFN5c2NhbGxBc20obnIsIGFyZ3Mp OwotICNlbHNlCi0gI2Vycm9yICJVbmltcGxlbWVudGVkIGFyY2hpdGVjdHVyZSIKLSAjZW5kaWYK LUBAIC00NDMsOCArNDg5LDE4IEBAIHZvaWQgU3lzY2FsbDo6UHV0VmFsdWVJblVjb250ZXh0KGlu dHB0cl90IHJldF92YWwsIHVjb250ZXh0X3QqIGN0eCkgewotICAgICAvLyBuZWVkcyB0byBiZSBj aGFuZ2VkIGJhY2suCi0gICAgIHJldF92YWwgPSAtcmV0X3ZhbDsKLSAgICAgU0VDQ09NUF9QQVJN NChjdHgpID0gMTsKLS0gIH0gZWxzZQotKyAgfSBlbHNlIHsKLSAgICAgU0VDQ09NUF9QQVJNNChj dHgpID0gMDsKLSsgIH0KLSsjZW5kaWYKLSsjaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotKyAg Ly8gU2FtZSBhcyBNSVBTLCBuZWVkIHRvIGludmVydCByZXQgYW5kIHNldCBlcnJvciByZWdpc3Rl ciAoY3IwLlNPKQotKyAgaWYgKHJldF92YWwgPD0gLTEgJiYgcmV0X3ZhbCA+PSAtNDA5NSkgewot KyAgICByZXRfdmFsID0gLXJldF92YWw7Ci0rICAgIGN0eC0+dWNfbWNvbnRleHQucmVncy0+Y2Ny IHw9ICgxIDw8IDI4KTsKLSsgIH0gZWxzZSB7Ci0rICAgIGN0eC0+dWNfbWNvbnRleHQucmVncy0+ Y2NyICY9IH4oMSA8PCAyOCk7Ci0rICB9Ci0gI2VuZGlmCi0gICBTRUNDT01QX1JFU1VMVChjdHgp ID0gc3RhdGljX2Nhc3Q8Z3JlZ190PihyZXRfdmFsKTsKLSB9Ci1kaWZmIC0tZ2l0IGEvc3JjLzNy ZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYvdHJhcC5jYyBiL3NyYy8z cmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmL3RyYXAuY2MKLWluZGV4 IDAwMzcwOGQyYy4uOGY5YjNhZjRlIDEwMDY0NAotLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVt L3NhbmRib3gvbGludXgvc2VjY29tcC1icGYvdHJhcC5jYwotKysrIGIvc3JjLzNyZHBhcnR5L2No cm9taXVtL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYvdHJhcC5jYwotQEAgLTIyNSw2ICsyMjUs MjAgQEAgdm9pZCBUcmFwOjpTaWdTeXMoaW50IG5yLCBMaW51eFNpZ0luZm8qIGluZm8sIHVjb250 ZXh0X3QqIGN0eCkgewotICAgICAgIFNldElzSW5TaWdIYW5kbGVyKCk7Ci0gICAgIH0KLSAKLSsj aWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotKyAgICAvLyBPbiBwcGM2NCtnbGliYywgc29tZSBz eXNjYWxscyBzZWVtIHRvIGFjY2lkZW50YWxseSBuZWdhdGUgdGhlIGZpcnN0Ci0rICAgIC8vIHBh cmFtZXRlciB3aGljaCBjYXVzZXMgY2hlY2tzIGFnYWluc3QgaXQgdG8gZmFpbC4gRm9yIG5vdywg bWFudWFsbHkKLSsgICAgLy8gbmVnYXRlIHRoZW0gYmFjay4KLSsgICAgLy8gVE9ETyhzaGF3bkBh bmFzdGFzLmlvKTogaW52ZXN0aWdhdGUgdGhpcyBpc3N1ZSBmdXJ0aGVyCi0rICAgIGF1dG8gbnIg PSBTRUNDT01QX1NZU0NBTEwoY3R4KTsKLSsgICAgaWYgKG5yID09IF9fTlJfb3BlbmF0IHx8IG5y ID09IF9fTlJfbWtkaXJhdCB8fCBuciA9PSBfX05SX2ZhY2Nlc3NhdCB8fCBuciA9PSBfX05SX3Jl YWRsaW5rYXQgfHwKLSsgICAgICAgIG5yID09IF9fTlJfcmVuYW1lYXQgfHwgbnIgPT0gX19OUl9y ZW5hbWVhdDIgfHwgbnIgPT0gX19OUl9uZXdmc3RhdGF0IHx8IG5yID09IF9fTlJfdW5saW5rYXQp IHsKLSsgICAgICAgIGlmIChzdGF0aWNfY2FzdDxpbnQ+KFNFQ0NPTVBfUEFSTTEoY3R4KSkgPiAw KSB7Ci0rICAgICAgICAgICAgU0VDQ09NUF9QQVJNMShjdHgpID0gLVNFQ0NPTVBfUEFSTTEoY3R4 KTsKLSsgICAgICAgIH0KLSsgICAgfQotKyNlbmRpZgotKwotICAgICAvLyBDb3B5IHRoZSBzZWNj b21wLXNwZWNpZmljIGRhdGEgaW50byBhIGFyY2hfc2VjY29tcF9kYXRhIHN0cnVjdHVyZS4gVGhp cwotICAgICAvLyBpcyB3aGF0IHdlIGFyZSBzaG93aW5nIHRvIFRyYXBGbmMgY2FsbGJhY2tzIHRo YXQgdGhlIHN5c3RlbSBjYWxsCi0gICAgIC8vIGV2YWx1YXRvciByZWdpc3RlcmVkIHdpdGggdGhl IHNhbmRib3guCi1kaWZmIC0tZ2l0IGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvbGlu dXgvc2VydmljZXMvY3JlZGVudGlhbHMuY2MgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJv eC9saW51eC9zZXJ2aWNlcy9jcmVkZW50aWFscy5jYwotaW5kZXggNTQyNTY3ZjNlLi4zMWQ0OTNj MjYgMTAwNjQ0Ci0tLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9zZXJ2 aWNlcy9jcmVkZW50aWFscy5jYwotKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gv bGludXgvc2VydmljZXMvY3JlZGVudGlhbHMuY2MKLUBAIC03OSw3ICs3OSw3IEBAIGJvb2wgQ2hy b290VG9TYWZlRW1wdHlEaXIoKSB7Ci0gICBwaWRfdCBwaWQgPSAtMTsKLSAgIGFsaWduYXMoMTYp IGNoYXIgc3RhY2tfYnVmW1BUSFJFQURfU1RBQ0tfTUlOXTsKLSAjaWYgZGVmaW5lZChBUkNIX0NQ VV9YODZfRkFNSUxZKSB8fCBkZWZpbmVkKEFSQ0hfQ1BVX0FSTV9GQU1JTFkpIHx8IFwKLS0gICAg ZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkKLSsgICAgZGVmaW5lZChBUkNIX0NQVV9NSVBT X0ZBTUlMWSkgfHwgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCi0gICAvLyBUaGUgc3Rh Y2sgZ3Jvd3MgZG93bndhcmQuCi0gICB2b2lkKiBzdGFjayA9IHN0YWNrX2J1ZiArIHNpemVvZihz dGFja19idWYpOwotICNlbHNlCi1kaWZmIC0tZ2l0IGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3Nh bmRib3gvbGludXgvc2VydmljZXMvc3lzY2FsbF93cmFwcGVycy5jYyBiL3NyYy8zcmRwYXJ0eS9j aHJvbWl1bS9zYW5kYm94L2xpbnV4L3NlcnZpY2VzL3N5c2NhbGxfd3JhcHBlcnMuY2MKLWluZGV4 IGZjZmQyYWExMi4uZjZlYjMyZmI3IDEwMDY0NAotLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVt L3NhbmRib3gvbGludXgvc2VydmljZXMvc3lzY2FsbF93cmFwcGVycy5jYwotKysrIGIvc3JjLzNy ZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvbGludXgvc2VydmljZXMvc3lzY2FsbF93cmFwcGVycy5j YwotQEAgLTU4LDcgKzU4LDcgQEAgbG9uZyBzeXNfY2xvbmUodW5zaWduZWQgbG9uZyBmbGFncywK LSAjaWYgZGVmaW5lZChBUkNIX0NQVV9YODZfNjQpCi0gICByZXR1cm4gc3lzY2FsbChfX05SX2Ns b25lLCBmbGFncywgY2hpbGRfc3RhY2ssIHB0aWQsIGN0aWQsIHRscyk7Ci0gI2VsaWYgZGVmaW5l ZChBUkNIX0NQVV9YODYpIHx8IGRlZmluZWQoQVJDSF9DUFVfQVJNX0ZBTUlMWSkgfHwgXAotLSAg ICBkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKQotKyAgICBkZWZpbmVkKEFSQ0hfQ1BVX01J UFNfRkFNSUxZKSB8fCBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKLSAgIC8vIENPTkZJ R19DTE9ORV9CQUNLV0FSRFMgZGVmaW5lZC4KLSAgIHJldHVybiBzeXNjYWxsKF9fTlJfY2xvbmUs IGZsYWdzLCBjaGlsZF9zdGFjaywgcHRpZCwgdGxzLCBjdGlkKTsKLSAjZW5kaWYKLWRpZmYgLS1n aXQgYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9zeXNjYWxsX2Jyb2tlci9i cm9rZXJfcHJvY2Vzcy5jYyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L3N5 c2NhbGxfYnJva2VyL2Jyb2tlcl9wcm9jZXNzLmNjCi1pbmRleCAxOWI4MjVhMTUuLjQ3NGQxNzM1 MSAxMDA2NDQKLS0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L3N5c2Nh bGxfYnJva2VyL2Jyb2tlcl9wcm9jZXNzLmNjCi0rKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0v c2FuZGJveC9saW51eC9zeXNjYWxsX2Jyb2tlci9icm9rZXJfcHJvY2Vzcy5jYwotQEAgLTE1Myw3 ICsxNTMsNyBAQCBib29sIEJyb2tlclByb2Nlc3M6OklzU3lzY2FsbEFsbG93ZWQoaW50IHN5c25v KSBjb25zdCB7Ci0gI2lmIGRlZmluZWQoX19OUl9mc3RhdGF0KQotICAgICBjYXNlIF9fTlJfZnN0 YXRhdDoKLSAjZW5kaWYKLS0jaWYgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fYWFy Y2g2NF9fKQotKyNpZiBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19hYXJjaDY0X18p IHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2FzZSBfX05SX25ld2ZzdGF0YXQ6Ci0g I2VuZGlmCi0gICAgICAgcmV0dXJuICFmYXN0X2NoZWNrX2luX2NsaWVudF8gfHwgYWxsb3dlZF9j b21tYW5kX3NldF8udGVzdChDT01NQU5EX1NUQVQpOwotZGlmZiAtLWdpdCBhL3NyYy8zcmRwYXJ0 eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL2xpbnV4X3NlY2NvbXAuaCBi L3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL2xpbnV4 X3NlY2NvbXAuaAotaW5kZXggYTYwZmUyYWQzLi45ZGNjZGI1MWQgMTAwNjQ0Ci0tLS0gYS9zcmMv M3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9saW51eF9zZWNj b21wLmgKLSsrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L3N5c3RlbV9o ZWFkZXJzL2xpbnV4X3NlY2NvbXAuaAotQEAgLTI5LDYgKzI5LDkgQEAKLSAjaWZuZGVmIEVNX0FB UkNINjQKLSAjZGVmaW5lIEVNX0FBUkNINjQgMTgzCi0gI2VuZGlmCi0rI2lmbmRlZiBFTV9QUEM2 NAotKyNkZWZpbmUgRU1fUFBDNjQgMjEKLSsjZW5kaWYKLSAKLSAjaWZuZGVmIF9fQVVESVRfQVJD SF82NEJJVAotICNkZWZpbmUgX19BVURJVF9BUkNIXzY0QklUIDB4ODAwMDAwMDAKLUBAIC01NCw2 ICs1NywxMiBAQAotICNpZm5kZWYgQVVESVRfQVJDSF9BQVJDSDY0Ci0gI2RlZmluZSBBVURJVF9B UkNIX0FBUkNINjQgKEVNX0FBUkNINjQgfCBfX0FVRElUX0FSQ0hfNjRCSVQgfCBfX0FVRElUX0FS Q0hfTEUpCi0gI2VuZGlmCi0rI2lmbmRlZiBBVURJVF9BUkNIX1BQQzY0Ci0rI2RlZmluZSBBVURJ VF9BUkNIX1BQQzY0IChFTV9QUEM2NCB8IF9fQVVESVRfQVJDSF82NEJJVCkKLSsjZW5kaWYKLSsj aWZuZGVmIEFVRElUX0FSQ0hfUFBDNjRMRQotKyNkZWZpbmUgQVVESVRfQVJDSF9QUEM2NExFIChF TV9QUEM2NCB8IF9fQVVESVRfQVJDSF82NEJJVCB8IF9fQVVESVRfQVJDSF9MRSkKLSsjZW5kaWYK LSAKLSAvLyBGb3IgcHJjdGwuaAotICNpZm5kZWYgUFJfU0VUX1NFQ0NPTVAKLWRpZmYgLS1naXQg YS9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9saW51 eF9zaWduYWwuaCBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L3N5c3RlbV9o ZWFkZXJzL2xpbnV4X3NpZ25hbC5oCi1pbmRleCBmNWE3MzY3NjEuLjUxNWIyMWE1ZiAxMDA2NDQK LS0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJz L2xpbnV4X3NpZ25hbC5oCi0rKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51 eC9zeXN0ZW1faGVhZGVycy9saW51eF9zaWduYWwuaAotQEAgLTEzLDcgKzEzLDcgQEAKLSAvLyAo bm90IHVuZGVmaW5lZCwgYnV0IGRlZmluZWQgZGlmZmVyZW50IHZhbHVlcyBhbmQgaW4gZGlmZmVy ZW50IG1lbW9yeQotIC8vIGxheW91dHMpLiBTbywgZmlsbCB0aGUgZ2FwIGhlcmUuCi0gI2lmIGRl ZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX2FybV9f KSB8fCBcCi0tICAgIGRlZmluZWQoX19hYXJjaDY0X18pCi0rICAgIGRlZmluZWQoX19hYXJjaDY0 X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAKLSAjZGVmaW5lIExJTlVYX1NJR0hVUCAx Ci0gI2RlZmluZSBMSU5VWF9TSUdJTlQgMgotZGlmZiAtLWdpdCBhL3NyYy8zcmRwYXJ0eS9jaHJv bWl1bS9zYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL2xpbnV4X3N5c2NhbGxzLmggYi9zcmMv M3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9saW51eF9zeXNj YWxscy5oCi1pbmRleCAyYjc4YTBjYzMuLjBhNzBmNWVhNSAxMDA2NDQKLS0tLSBhL3NyYy8zcmRw YXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL2xpbnV4X3N5c2NhbGxz LmgKLSsrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFk ZXJzL2xpbnV4X3N5c2NhbGxzLmgKLUBAIC0zNSw1ICszNSw5IEBACi0gI2luY2x1ZGUgInNhbmRi b3gvbGludXgvc3lzdGVtX2hlYWRlcnMvYXJtNjRfbGludXhfc3lzY2FsbHMuaCIKLSAjZW5kaWYK LSAKLSsjaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotKyNpbmNsdWRlICJzYW5kYm94L2xpbnV4 L3N5c3RlbV9oZWFkZXJzL3BwYzY0X2xpbnV4X3N5c2NhbGxzLmgiCi0rI2VuZGlmCi0rCi0gI2Vu ZGlmICAvLyBTQU5EQk9YX0xJTlVYX1NZU1RFTV9IRUFERVJTX0xJTlVYX1NZU0NBTExTX0hfCi0g Ci1kaWZmIC0tZ2l0IGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvbGludXgvc3lzdGVt X2hlYWRlcnMvbGludXhfdWNvbnRleHQuaCBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94 L2xpbnV4L3N5c3RlbV9oZWFkZXJzL2xpbnV4X3Vjb250ZXh0LmgKLWluZGV4IDIyY2U3ODAyNy4u YTY5YjAyNGMyIDEwMDY0NAotLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvbGlu dXgvc3lzdGVtX2hlYWRlcnMvbGludXhfdWNvbnRleHQuaAotKysrIGIvc3JjLzNyZHBhcnR5L2No cm9taXVtL3NhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvbGludXhfdWNvbnRleHQuaAotQEAg LTExLDYgKzExLDggQEAKLSAjaW5jbHVkZSAic2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9h cm1fbGludXhfdWNvbnRleHQuaCIKLSAjZWxpZiBkZWZpbmVkKF9faTM4Nl9fKQotICNpbmNsdWRl ICJzYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL2kzODZfbGludXhfdWNvbnRleHQuaCIKLSsj ZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rI2luY2x1ZGUgInNhbmRib3gvbGludXgvc3lz dGVtX2hlYWRlcnMvcHBjNjRfbGludXhfdWNvbnRleHQuaCIKLSAjZWxzZQotICNlcnJvciAiTm8g c3VwcG9ydCBmb3IgeW91ciBhcmNoaXRlY3R1cmUgaW4gUE5hQ2wgaGVhZGVyIgotICNlbmRpZgot ZGlmZiAtLWdpdCBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L3N5c3RlbV9o ZWFkZXJzL3BwYzY0X2xpbnV4X3N5c2NhbGxzLmggYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2Fu ZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9wcGM2NF9saW51eF9zeXNjYWxscy5oCi1uZXcgZmls ZSBtb2RlIDEwMDY0NAotaW5kZXggMDAwMDAwMDAwLi5jY2FjZmZlMjIKLS0tLSAvZGV2L251bGwK LSsrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJz L3BwYzY0X2xpbnV4X3N5c2NhbGxzLmgKLUBAIC0wLDAgKzEsMTIgQEAKLSsvLyBDb3B5cmlnaHQg MjAxNCBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSsvLyBVc2Ug b2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRo YXQgY2FuIGJlCi0rLy8gZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLSsKLSsjaWZuZGVmIFNB TkRCT1hfTElOVVhfU1lTVEVNX0hFQURFUlNfUFBDNjRfTElOVVhfU1lTQ0FMTFNfSF8KLSsjZGVm aW5lIFNBTkRCT1hfTElOVVhfU1lTVEVNX0hFQURFUlNfUFBDNjRfTElOVVhfU1lTQ0FMTFNfSF8K LSsKLSsjaW5jbHVkZSA8YXNtL3VuaXN0ZC5oPgotKwotKy8vVE9ETzogaXMgaXQgbmVjZXNzYXJ5 IHRvIHJlZGVmaW5lIHN5c2NhbGwgbnVtYmVycyBmb3IgUFBDNjQ/Ci0rCi0rI2VuZGlmICAvLyBT QU5EQk9YX0xJTlVYX1NZU1RFTV9IRUFERVJTX1BQQzY0X0xJTlVYX1NZU0NBTExTX0hfCi1kaWZm IC0tZ2l0IGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvbGludXgvc3lzdGVtX2hlYWRl cnMvcHBjNjRfbGludXhfdWNvbnRleHQuaCBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94 L2xpbnV4L3N5c3RlbV9oZWFkZXJzL3BwYzY0X2xpbnV4X3Vjb250ZXh0LmgKLW5ldyBmaWxlIG1v ZGUgMTAwNjQ0Ci1pbmRleCAwMDAwMDAwMDAuLjA3NzI4ZTA4NwotLS0tIC9kZXYvbnVsbAotKysr IGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvcHBj NjRfbGludXhfdWNvbnRleHQuaAotQEAgLTAsMCArMSwxMiBAQAotKy8vIENvcHlyaWdodCAyMDE0 IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotKy8vIFVzZSBvZiB0 aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBj YW4gYmUKLSsvLyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotKwotKyNpZm5kZWYgU0FOREJP WF9MSU5VWF9TWVNURU1fSEVBREVSU19QUEM2NF9MSU5VWF9VQ09OVEVYVF9IXwotKyNkZWZpbmUg U0FOREJPWF9MSU5VWF9TWVNURU1fSEVBREVSU19QUEM2NF9MSU5VWF9VQ09OVEVYVF9IXwotKwot KyNpbmNsdWRlIDxzeXMvdWNvbnRleHQuaD4KLSsKLSsvL1RPRE86IGlzIGl0IG5lY2Vzc2FyeSB0 byByZWRlZmluZSB1Y29udGV4dCBvbiBQUEM2ND8KLSsKLSsjZW5kaWYgIC8vIFNBTkRCT1hfTElO VVhfU1lTVEVNX0hFQURFUlNfUFBDNjRfTElOVVhfVUNPTlRFWFRfSF8KLWRpZmYgLS1naXQgYS9z cmMvM3JkcGFydHkvY2hyb21pdW0vc2VydmljZXMvc2VydmljZV9tYW5hZ2VyL3NhbmRib3gvbGlu dXgvYnBmX3JlbmRlcmVyX3BvbGljeV9saW51eC5jYyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9z ZXJ2aWNlcy9zZXJ2aWNlX21hbmFnZXIvc2FuZGJveC9saW51eC9icGZfcmVuZGVyZXJfcG9saWN5 X2xpbnV4LmNjCi1pbmRleCAwMTdmMTNjZjcuLmE3NmU1NzliNyAxMDA2NDQKLS0tLSBhL3NyYy8z cmRwYXJ0eS9jaHJvbWl1bS9zZXJ2aWNlcy9zZXJ2aWNlX21hbmFnZXIvc2FuZGJveC9saW51eC9i cGZfcmVuZGVyZXJfcG9saWN5X2xpbnV4LmNjCi0rKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0v c2VydmljZXMvc2VydmljZV9tYW5hZ2VyL3NhbmRib3gvbGludXgvYnBmX3JlbmRlcmVyX3BvbGlj eV9saW51eC5jYwotQEAgLTE1LDYgKzE1LDExIEBACi0gI2luY2x1ZGUgInNhbmRib3gvbGludXgv c3lzdGVtX2hlYWRlcnMvbGludXhfc3lzY2FsbHMuaCIKLSAjaW5jbHVkZSAic2VydmljZXMvc2Vy dmljZV9tYW5hZ2VyL3NhbmRib3gvbGludXgvc2FuZGJveF9saW51eC5oIgotIAotKy8vIE9uIFBQ QzY0LCBUQ0dFVFMgaXMgZGVmaW5lZCBpbiB0ZXJtcyBvZiBzdHJ1Y3QgdGVybWlvcywgc28gd2Ug bXVzdCBpbmNsdWRlIHRlcm1pb3MuaAotKyNpZmRlZiBfX3Bvd2VycGM2NF9fCi0rI2luY2x1ZGUg PHRlcm1pb3MuaD4KLSsjZW5kaWYKLSsKLSAvLyBUT0RPKHZpZ25hdHRpKTogcmVwbGFjZSB0aGUg bG9jYWwgZGVmaW5pdGlvbnMgYmVsb3cgd2l0aCAjaW5jbHVkZQotIC8vIDxsaW51eC9kbWEtYnVm Lmg+IG9uY2Uga2VybmVsIHZlcnNpb24gNC42IGJlY29tZXMgd2lkZWx5IHVzZWQuCi0gI2luY2x1 ZGUgPGxpbnV4L3R5cGVzLmg+Ci1kaWZmIC0tZ2l0IGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3Ro aXJkX3BhcnR5L2FuZ2xlL3NyYy9jb21waWxlci90cmFuc2xhdG9yL0luZm9TaW5rLmggYi9zcmMv M3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYW5nbGUvc3JjL2NvbXBpbGVyL3RyYW5zbGF0 b3IvSW5mb1NpbmsuaAotaW5kZXggM2E4MDdlMWUzLi41MjU4NjE3YTcgMTAwNjQ0Ci0tLS0gYS9z cmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYW5nbGUvc3JjL2NvbXBpbGVyL3RyYW5z bGF0b3IvSW5mb1NpbmsuaAotKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5 L2FuZ2xlL3NyYy9jb21waWxlci90cmFuc2xhdG9yL0luZm9TaW5rLmgKLUBAIC05Miw3ICs5Miwx NiBAQCBjbGFzcyBUSW5mb1NpbmtCYXNlCi0gICAgICAgICAgICAgc3RyZWFtLnByZWNpc2lvbig4 KTsKLSAgICAgICAgICAgICBzdHJlYW0gPDwgZjsKLSAgICAgICAgIH0KLS0gICAgICAgIHNpbmsu YXBwZW5kKHN0cmVhbS5zdHIoKSk7Ci0rCi0rICAgICAgICAvLyBIYWNrIHRvIHdvcmsgYXJvdW5k IGEgYnVnIHdoZXJlIG5lZ2F0aXZlIGZsb2F0aW5nIHBvaW50IHZhbHVlcwotKyAgICAgICAgLy8g YXJlIHJlbmRlcmVkIGxpa2UgJy4wLjUnIGluc3RlYWQgb2YgJy0wLjUnCi0rICAgICAgICBzdGQ6 OnN0cmluZyByZXMoc3RyZWFtLnN0cigpKTsKLSsKLSsgICAgICAgIGlmIChzaWduYml0KGYpKSB7 IC8vIHRlc3QgaWYgZiBpcyBuZWdhdGl2ZQotKyAgICAgICAgICAgIHJlc1swXSA9ICctJzsKLSsg ICAgICAgIH0KLSsKLSsgICAgICAgIHNpbmsuYXBwZW5kKHJlcyk7Ci0gICAgICAgICByZXR1cm4g KnRoaXM7Ci0gICAgIH0KLSAgICAgLy8gV3JpdGUgYm9vbGVhbiB2YWx1ZXMgYXMgdGhlaXIgbmFt ZXMgaW5zdGVhZCBvZiBpbnRlZ3JhbCB2YWx1ZS4KLWRpZmYgLS1naXQgYS9zcmMvM3JkcGFydHkv Y2hyb21pdW0vdGhpcmRfcGFydHkvYW5nbGUvc3JjL2xpYkFOR0xFL0NvbnN0YW50cy5oIGIvc3Jj LzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2FuZ2xlL3NyYy9saWJBTkdMRS9Db25zdGFu dHMuaAotaW5kZXggMDE2NDI2NjUxLi45YjZhOWFlZjkgMTAwNjQ0Ci0tLS0gYS9zcmMvM3JkcGFy dHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYW5nbGUvc3JjL2xpYkFOR0xFL0NvbnN0YW50cy5oCi0r KysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYW5nbGUvc3JjL2xpYkFOR0xF L0NvbnN0YW50cy5oCi1AQCAtOSw2ICs5LDcgQEAKLSAjaWZuZGVmIExJQkFOR0xFX0NPTlNUQU5U U19IXwotICNkZWZpbmUgTElCQU5HTEVfQ09OU1RBTlRTX0hfCi0gCi0rI2luY2x1ZGUgPGNzdGRk ZWY+Ci0gI2luY2x1ZGUgImNvbW1vbi9wbGF0Zm9ybS5oIgotIAotICNpbmNsdWRlIDxzdGRpbnQu aD4KLWRpZmYgLS1naXQgYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYm9yaW5n c3NsL0JVSUxELmduIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JvcmluZ3Nz bC9CVUlMRC5nbgotaW5kZXggYThhYTljOWVjLi41NDc4NDU4YWQgMTAwNjQ0Ci0tLS0gYS9zcmMv M3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYm9yaW5nc3NsL0JVSUxELmduCi0rKysgYi9z cmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYm9yaW5nc3NsL0JVSUxELmduCi1AQCAt MTAwLDYgKzEwMCwxMyBAQCBpZiAoaXNfd2luICYmICFpc19tc2FuICYmIGN1cnJlbnRfY3B1ICE9 ICJhcm02NCIpIHsKLSAgICAgICB9IGVsc2UgewotICAgICAgICAgcHVibGljX2NvbmZpZ3MgPSBb ICI6bm9fYXNtX2NvbmZpZyIgXQotICAgICAgIH0KLSsgICAgfSBlbHNlIGlmIChjdXJyZW50X2Nw dSA9PSAicHBjNjQiKSB7Ci0rICAgICAgaWYgKGlzX2xpbnV4KSB7Ci0rICAgICAgICAjIFRPRE86 IHBwYzY0IChiZSkgY2hlY2sKLSsgICAgICAgIHNvdXJjZXMgKz0gY3J5cHRvX3NvdXJjZXNfbGlu dXhfcHBjNjRsZQotKyAgICAgIH0gZWxzZSB7Ci0rICAgICAgICBwdWJsaWNfY29uZmlncyA9IFsg Ijpub19hc21fY29uZmlnIiBdCi0rICAgICAgfQotICAgICB9IGVsc2UgewotICAgICAgIHB1Ymxp Y19jb25maWdzID0gWyAiOm5vX2FzbV9jb25maWciIF0KLSAgICAgfQotZGlmZiAtLWdpdCBhL3Ny Yy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xp ZW50L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1vbi9yYXdfY29udGV4dF9jcHUuaCBiL3NyYy8zcmRw YXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xp bnV4L2R1bXBfd3JpdGVyX2NvbW1vbi9yYXdfY29udGV4dF9jcHUuaAotaW5kZXggMDdkOTE3MWEw Li45YWVkNGNiMzYgMTAwNjQ0Ci0tLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFy dHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21tb24v cmF3X2NvbnRleHRfY3B1LmgKLSsrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0 eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1vbi9y YXdfY29udGV4dF9jcHUuaAotQEAgLTQ0LDYgKzQ0LDggQEAgdHlwZWRlZiBNRFJhd0NvbnRleHRB Uk0gUmF3Q29udGV4dENQVTsKLSB0eXBlZGVmIE1EUmF3Q29udGV4dEFSTTY0X09sZCBSYXdDb250 ZXh0Q1BVOwotICNlbGlmIGRlZmluZWQoX19taXBzX18pCi0gdHlwZWRlZiBNRFJhd0NvbnRleHRN SVBTIFJhd0NvbnRleHRDUFU7Ci0rI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotK3R5cGVk ZWYgTURSYXdDb250ZXh0UFBDNjQgUmF3Q29udGV4dENQVTsKLSAjZWxzZQotICNlcnJvciAiVGhp cyBjb2RlIGhhcyBub3QgYmVlbiBwb3J0ZWQgdG8geW91ciBwbGF0Zm9ybSB5ZXQuIgotICNlbmRp ZgotZGlmZiAtLWdpdCBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3Bh ZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1vbi90aHJlYWRfaW5m by5jYyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3Bh ZC9zcmMvY2xpZW50L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1vbi90aHJlYWRfaW5mby5jYwotaW5k ZXggYWFlMWRjMTNiLi4wM2FmZWM3YTUgMTAwNjQ0Ci0tLS0gYS9zcmMvM3JkcGFydHkvY2hyb21p dW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dy aXRlcl9jb21tb24vdGhyZWFkX2luZm8uY2MKLSsrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90 aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1bXBfd3JpdGVy X2NvbW1vbi90aHJlYWRfaW5mby5jYwotQEAgLTI3MCw3ICsyNzAsNDIgQEAgdm9pZCBUaHJlYWRJ bmZvOjpGaWxsQ1BVQ29udGV4dChSYXdDb250ZXh0Q1BVKiBvdXQpIGNvbnN0IHsKLSAgIG91dC0+ ZmxvYXRfc2F2ZS5maXIgPSBtY29udGV4dC5mcGNfZWlyOwotICNlbmRpZgotIH0KLS0jZW5kaWYg IC8vIF9fbWlwc19fCi0rCi0rI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotKwotK3VpbnRw dHJfdCBUaHJlYWRJbmZvOjpHZXRJbnN0cnVjdGlvblBvaW50ZXIoKSBjb25zdCB7Ci0rICAgIHJl dHVybiBtY29udGV4dC5ncF9yZWdzW1BUX05JUF07Ci0rfQotKwotK3ZvaWQgVGhyZWFkSW5mbzo6 RmlsbENQVUNvbnRleHQoUmF3Q29udGV4dENQVSogb3V0KSBjb25zdCB7Ci0rICAgIG91dC0+Y29u dGV4dF9mbGFncyA9IE1EX0NPTlRFWFRfUFBDNjRfRlVMTDsKLSsgICAgZm9yIChpbnQgaSA9IDA7 IGkgPCBNRF9DT05URVhUX1BQQzY0X0dQUl9DT1VOVDsgaSsrKQotKyAgICAgICAgb3V0LT5ncHJb aV0gPSBtY29udGV4dC5ncF9yZWdzW2ldOwotKwotKyAgICBvdXQtPmxyID0gbWNvbnRleHQuZ3Bf cmVnc1tQVF9MTktdOwotKyAgICBvdXQtPnNycjAgPSBtY29udGV4dC5ncF9yZWdzW1BUX05JUF07 Ci0rICAgIG91dC0+c3JyMSA9IG1jb250ZXh0LmdwX3JlZ3NbUFRfTVNSXTsKLSsgICAgb3V0LT5j ciA9IG1jb250ZXh0LmdwX3JlZ3NbUFRfQ0NSXTsKLSsgICAgb3V0LT54ZXIgPSBtY29udGV4dC5n cF9yZWdzW1BUX1hFUl07Ci0rICAgIG91dC0+Y3RyID0gbWNvbnRleHQuZ3BfcmVnc1tQVF9DVFJd OwotKyAgICAKLSsgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBNRF9GTE9BVElOR1NBVkVBUkVBX1BQ Q19GUFJfQ09VTlQ7IGkrKykKLSsgICAgICAgIG91dC0+ZmxvYXRfc2F2ZS5mcHJlZ3NbaV0gPSBt Y29udGV4dC5mcF9yZWdzW2ldOwotKwotKyAgICBvdXQtPmZsb2F0X3NhdmUuZnBzY3IgPSBtY29u dGV4dC5mcF9yZWdzW05GUFJFRy0xXTsKLSsKLSsgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBNRF9W RUNUT1JTQVZFQVJFQV9QUENfVlJfQ09VTlQ7IGkrKykKLSsgICAgICAgIG91dC0+dmVjdG9yX3Nh dmUuc2F2ZV92cltpXSA9IFwKLSsgICAgICAgICAgICB7KCgodWludDY0X3QpdnJlZ3MudnJyZWdz W2ldWzBdKSA8PCAzMikgCi0rICAgICAgICAgICAgICAgICAgICAgICAgICB8IHZyZWdzLnZycmVn c1tpXVsxXSwgCi0rICAgICAgICAgICAgKCgodWludDY0X3QpdnJlZ3MudnJyZWdzW2ldWzJdKSA8 PCAzMikKLSsgICAgICAgICAgICAgICAgICAgICAgICAgfCB2cmVncy52cnJlZ3NbaV1bM119Owot KwotKyAgICBvdXQtPnZyc2F2ZSA9IHZyZWdzLnZyc2F2ZTsKLSsgICAgb3V0LT52ZWN0b3Jfc2F2 ZS5zYXZlX3ZzY3IgPSB7MCwgdnJlZ3MudnNjci52c2NyX3dvcmR9OwotKyAgICBvdXQtPnZlY3Rv cl9zYXZlLnNhdmVfdnJ2YWxpZCA9IDB4RkZGRkZGRkY7IAotK30KLSsjZW5kaWYgIC8vIF9fcG93 ZXJwYzY0X18KLSAKLSB2b2lkIFRocmVhZEluZm86OkdldEdlbmVyYWxQdXJwb3NlUmVnaXN0ZXJz KHZvaWQqKiBncF9yZWdzLCBzaXplX3QqIHNpemUpIHsKLSAgIGFzc2VydChncF9yZWdzIHx8IHNp emUpOwotQEAgLTI3OSw2ICszMTQsMTEgQEAgdm9pZCBUaHJlYWRJbmZvOjpHZXRHZW5lcmFsUHVy cG9zZVJlZ2lzdGVycyh2b2lkKiogZ3BfcmVncywgc2l6ZV90KiBzaXplKSB7Ci0gICAgICpncF9y ZWdzID0gbWNvbnRleHQuZ3JlZ3M7Ci0gICBpZiAoc2l6ZSkKLSAgICAgKnNpemUgPSBzaXplb2Yo bWNvbnRleHQuZ3JlZ3MpOwotKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSsgIGlmIChn cF9yZWdzKQotKyAgICAqZ3BfcmVncyA9IG1jb250ZXh0LmdwX3JlZ3M7Ci0rICBpZiAoc2l6ZSkK LSsgICAgKnNpemUgPSBzaXplb2YobWNvbnRleHQuZ3BfcmVncyk7Ci0gI2Vsc2UKLSAgIGlmIChn cF9yZWdzKQotICAgICAqZ3BfcmVncyA9ICZyZWdzOwotQEAgLTI5NCw2ICszMzQsMTEgQEAgdm9p ZCBUaHJlYWRJbmZvOjpHZXRGbG9hdGluZ1BvaW50UmVnaXN0ZXJzKHZvaWQqKiBmcF9yZWdzLCBz aXplX3QqIHNpemUpIHsKLSAgICAgKmZwX3JlZ3MgPSAmbWNvbnRleHQuZnByZWdzOwotICAgaWYg KHNpemUpCi0gICAgICpzaXplID0gc2l6ZW9mKG1jb250ZXh0LmZwcmVncyk7Ci0rI2VsaWYgZGVm aW5lZChfX3Bvd2VycGM2NF9fKQotKyAgaWYgKGZwX3JlZ3MpCi0rICAgICpmcF9yZWdzID0gJm1j b250ZXh0LmZwX3JlZ3M7Ci0rICBpZiAoc2l6ZSkKLSsgICAgKnNpemUgPSBzaXplb2YobWNvbnRl eHQuZnBfcmVncyk7Ci0gI2Vsc2UKLSAgIGlmIChmcF9yZWdzKQotICAgICAqZnBfcmVncyA9ICZm cHJlZ3M7Ci1AQCAtMzAyLDQgKzM0NywxMyBAQCB2b2lkIFRocmVhZEluZm86OkdldEZsb2F0aW5n UG9pbnRSZWdpc3RlcnModm9pZCoqIGZwX3JlZ3MsIHNpemVfdCogc2l6ZSkgewotICNlbmRpZgot IH0KLSAKLSsjaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotK3ZvaWQgVGhyZWFkSW5mbzo6R2V0 VmVjdG9yUmVnaXN0ZXJzKHZvaWQqKiB2X3JlZ3MsIHNpemVfdCogc2l6ZSkgewotKyAgICBpZiAo dl9yZWdzKQotKyAgICAgICAgKnZfcmVncyA9ICZ2cmVnczsKLSsgICAgaWYgKHNpemUpCi0rICAg ICAgICAqc2l6ZSA9IHNpemVvZih2cmVncyk7Ci0rfQotKyNlbmRpZgotKwotIH0gIC8vIG5hbWVz cGFjZSBnb29nbGVfYnJlYWtwYWQKLWRpZmYgLS1naXQgYS9zcmMvM3JkcGFydHkvY2hyb21pdW0v dGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRl cl9jb21tb24vdGhyZWFkX2luZm8uaCBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0 eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1vbi90 aHJlYWRfaW5mby5oCi1pbmRleCBmYjIxNmZhNmQuLmZiNjY5MTI2ZiAxMDA2NDQKLS0tLSBhL3Ny Yy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xp ZW50L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1vbi90aHJlYWRfaW5mby5oCi0rKysgYi9zcmMvM3Jk cGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9s aW51eC9kdW1wX3dyaXRlcl9jb21tb24vdGhyZWFkX2luZm8uaAotQEAgLTY4LDYgKzY4LDEwIEBA IHN0cnVjdCBUaHJlYWRJbmZvIHsKLSAgIC8vIFVzZSB0aGUgc3RydWN0dXJlcyBkZWZpbmVkIGlu IDxzeXMvdXNlci5oPgotICAgc3RydWN0IHVzZXJfcmVnc19zdHJ1Y3QgcmVnczsKLSAgIHN0cnVj dCB1c2VyX2Zwc2ltZF9zdHJ1Y3QgZnByZWdzOwotKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRf XykKLSsgIC8vIFVzZSB0aGUgc3RydWN0dXJlcyBkZWZpbmVkIGluIDxzeXMvdWNvbnRleHQuaD4u Ci0rICBtY29udGV4dF90IG1jb250ZXh0OwotKyAgdnJyZWdzZXRfdCB2cmVnczsKLSAjZWxpZiBk ZWZpbmVkKF9fbWlwc19fKQotICAgLy8gVXNlIHRoZSBzdHJ1Y3R1cmUgZGVmaW5lZCBpbiA8c3lz L3Vjb250ZXh0Lmg+LgotICAgbWNvbnRleHRfdCBtY29udGV4dDsKLUBAIC04NCw2ICs4OCwxMSBA QCBzdHJ1Y3QgVGhyZWFkSW5mbyB7Ci0gCi0gICAvLyBSZXR1cm5zIHRoZSBwb2ludGVyIGFuZCBz aXplIG9mIGZsb2F0IHBvaW50IHJlZ2lzdGVyIGFyZWEuCi0gICB2b2lkIEdldEZsb2F0aW5nUG9p bnRSZWdpc3RlcnModm9pZCoqIGZwX3JlZ3MsIHNpemVfdCogc2l6ZSk7Ci0rCi0rI2lmIGRlZmlu ZWQoX19wb3dlcnBjNjRfXykKLSsgIC8vIFJldHVybnMgdGhlIHBvaW50ZXIgYW5kIHNpemUgb2Yg dGhlIHZlY3RvciByZWdpc3RlciBhcmVhLiAoUFBDNjQgb25seSkKLSsgIHZvaWQgR2V0VmVjdG9y UmVnaXN0ZXJzKHZvaWQqKiB2X3JlZ3MsIHNpemVfdCogc2l6ZSk7Ci0rI2VuZGlmCi0gfTsKLSAK LSB9ICAvLyBuYW1lc3BhY2UgZ29vZ2xlX2JyZWFrcGFkCi1kaWZmIC0tZ2l0IGEvc3JjLzNyZHBh cnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGlu dXgvZHVtcF93cml0ZXJfY29tbW9uL3Vjb250ZXh0X3JlYWRlci5jYyBiL3NyYy8zcmRwYXJ0eS9j aHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1 bXBfd3JpdGVyX2NvbW1vbi91Y29udGV4dF9yZWFkZXIuY2MKLWluZGV4IDZlZTZjYzFlNC4uNDc3 MzUyZTM3IDEwMDY0NAotLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2Jy ZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvZHVtcF93cml0ZXJfY29tbW9uL3Vjb250 ZXh0X3JlYWRlci5jYwotKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2Jy ZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvZHVtcF93cml0ZXJfY29tbW9uL3Vjb250 ZXh0X3JlYWRlci5jYwotQEAgLTI1NCw2ICsyNTQsNDggQEAgdm9pZCBVQ29udGV4dFJlYWRlcjo6 RmlsbENQVUNvbnRleHQoUmF3Q29udGV4dENQVSAqb3V0LCBjb25zdCB1Y29udGV4dF90ICp1Yykg ewotICAgb3V0LT5mbG9hdF9zYXZlLmZpciA9IHVjLT51Y19tY29udGV4dC5mcGNfZWlyOyAgLy8g VW51c2VkLgotICNlbmRpZgotIH0KLSsKLSsjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0r Ci0rdWludHB0cl90IFVDb250ZXh0UmVhZGVyOjpHZXRTdGFja1BvaW50ZXIoY29uc3QgdWNvbnRl eHRfdCogdWMpIHsKLSsgICAgcmV0dXJuIHVjLT51Y19tY29udGV4dC5ncF9yZWdzW01EX0NPTlRF WFRfUFBDNjRfUkVHX1NQXTsKLSt9Ci0rCi0rdWludHB0cl90IFVDb250ZXh0UmVhZGVyOjpHZXRJ bnN0cnVjdGlvblBvaW50ZXIoY29uc3QgdWNvbnRleHRfdCogdWMpIHsKLSsgICAgcmV0dXJuIHVj LT51Y19tY29udGV4dC5ncF9yZWdzW1BUX05JUF07Ci0rfQotKwotK3ZvaWQgVUNvbnRleHRSZWFk ZXI6OkZpbGxDUFVDb250ZXh0KFJhd0NvbnRleHRDUFUqIG91dCwgY29uc3QgdWNvbnRleHRfdCog dWMsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdnJyZWdzZXRf dCogdnJlZ3MpIHsKLSsgICAgb3V0LT5jb250ZXh0X2ZsYWdzID0gTURfQ09OVEVYVF9QUEM2NF9G VUxMOwotKwotKyAgICBmb3IgKGludCBpID0gMDsgaSA8IE1EX0NPTlRFWFRfUFBDNjRfR1BSX0NP VU5UOyBpKyspCi0rICAgICAgICBvdXQtPmdwcltpXSA9IHVjLT51Y19tY29udGV4dC5ncF9yZWdz W2ldOwotKwotKyAgICBvdXQtPmxyID0gdWMtPnVjX21jb250ZXh0LmdwX3JlZ3NbUFRfTE5LXTsg ICAgCi0rICAgIG91dC0+c3JyMCA9IHVjLT51Y19tY29udGV4dC5ncF9yZWdzW1BUX05JUF07Ci0r ICAgIG91dC0+c3JyMSA9IHVjLT51Y19tY29udGV4dC5ncF9yZWdzW1BUX01TUl07Ci0rICAgIG91 dC0+Y3IgPSB1Yy0+dWNfbWNvbnRleHQuZ3BfcmVnc1tQVF9DQ1JdOwotKyAgICBvdXQtPnhlciA9 IHVjLT51Y19tY29udGV4dC5ncF9yZWdzW1BUX1hFUl07Ci0rICAgIG91dC0+Y3RyID0gdWMtPnVj X21jb250ZXh0LmdwX3JlZ3NbUFRfQ1RSXTsKLSsgICAgCi0rICAgIGZvciAoaW50IGkgPSAwOyBp IDwgTURfRkxPQVRJTkdTQVZFQVJFQV9QUENfRlBSX0NPVU5UOyBpKyspCi0rICAgICAgICBvdXQt PmZsb2F0X3NhdmUuZnByZWdzW2ldID0gdWMtPnVjX21jb250ZXh0LmZwX3JlZ3NbaV07Ci0rCi0r ICAgIG91dC0+ZmxvYXRfc2F2ZS5mcHNjciA9IHVjLT51Y19tY29udGV4dC5mcF9yZWdzW05GUFJF Ry0xXTsKLSsKLSsgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBNRF9WRUNUT1JTQVZFQVJFQV9QUENf VlJfQ09VTlQ7IGkrKykKLSsgICAgICAgIG91dC0+dmVjdG9yX3NhdmUuc2F2ZV92cltpXSA9Ci0r ICAgICAgICAgICAgeygoKHVpbnQ2NF90KXZyZWdzLT52cnJlZ3NbaV1bMF0pIDw8IDMyKSAKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgfCB2cmVncy0+dnJyZWdzW2ldWzFdLCAKLSsgICAgICAg ICAgICAgKCgodWludDY0X3QpdnJlZ3MtPnZycmVnc1tpXVsyXSkgPDwgMzIpCi0rICAgICAgICAg ICAgICAgICAgICAgICAgIHwgdnJlZ3MtPnZycmVnc1tpXVszXX07Ci0rCi0rICAgIG91dC0+dnJz YXZlID0gdnJlZ3MtPnZyc2F2ZTsKLSsgICAgb3V0LT52ZWN0b3Jfc2F2ZS5zYXZlX3ZzY3IgPSB7 MCwgdnJlZ3MtPnZzY3IudnNjcl93b3JkfTsKLSsgICAgb3V0LT52ZWN0b3Jfc2F2ZS5zYXZlX3Zy dmFsaWQgPSAweEZGRkZGRkZGOyAKLSt9Ci0rCi0gI2VuZGlmCi0gCi0gfSAgLy8gbmFtZXNwYWNl IGdvb2dsZV9icmVha3BhZAotZGlmZiAtLWdpdCBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGly ZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1bXBfd3JpdGVyX2Nv bW1vbi91Y29udGV4dF9yZWFkZXIuaCBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0 eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1vbi91 Y29udGV4dF9yZWFkZXIuaAotaW5kZXggZjgzMDYxOGYyLi42MjQ4ODE4ZTcgMTAwNjQ0Ci0tLS0g YS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3Jj L2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21tb24vdWNvbnRleHRfcmVhZGVyLmgKLSsrKyBi L3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMv Y2xpZW50L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1vbi91Y29udGV4dF9yZWFkZXIuaAotQEAgLTU0 LDYgKzU0LDkgQEAgc3RydWN0IFVDb250ZXh0UmVhZGVyIHsKLSAjZWxpZiBkZWZpbmVkKF9fYWFy Y2g2NF9fKQotICAgc3RhdGljIHZvaWQgRmlsbENQVUNvbnRleHQoUmF3Q29udGV4dENQVSAqb3V0 LCBjb25zdCB1Y29udGV4dF90ICp1YywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv bnN0IHN0cnVjdCBmcHNpbWRfY29udGV4dCogZnByZWdzKTsKLSsjZWxpZiBkZWZpbmVkKF9fcG93 ZXJwYzY0X18pCi0rICBzdGF0aWMgdm9pZCBGaWxsQ1BVQ29udGV4dChSYXdDb250ZXh0Q1BVICpv dXQsIGNvbnN0IHVjb250ZXh0X3QgKnVjLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y29uc3QgdnJyZWdzZXRfdCogdnJlZ3MpOwotICNlbHNlCi0gICBzdGF0aWMgdm9pZCBGaWxsQ1BV Q29udGV4dChSYXdDb250ZXh0Q1BVICpvdXQsIGNvbnN0IHVjb250ZXh0X3QgKnVjKTsKLSAjZW5k aWYKLWRpZmYgLS1naXQgYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtw YWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9oYW5kbGVyL2V4Y2VwdGlvbl9oYW5kbGVyLmNj IGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3Ny Yy9jbGllbnQvbGludXgvaGFuZGxlci9leGNlcHRpb25faGFuZGxlci5jYwotaW5kZXggYjg5NWY2 ZDdhLi45MDFjZDY4ZmIgMTAwNjQ0Ci0tLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRf cGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9oYW5kbGVyL2V4Y2VwdGlv bl9oYW5kbGVyLmNjCi0rKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJl YWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9oYW5kbGVyL2V4Y2VwdGlvbl9oYW5kbGVy LmNjCi1AQCAtNDYxLDkgKzQ2MSwxNiBAQCBib29sIEV4Y2VwdGlvbkhhbmRsZXI6OkhhbmRsZVNp Z25hbChpbnQgLypzaWcqLywgc2lnaW5mb190KiBpbmZvLCB2b2lkKiB1YykgewotICAgICBtZW1j cHkoJmdfY3Jhc2hfY29udGV4dF8uZmxvYXRfc3RhdGUsIGZwX3B0ciwKLSAgICAgICAgICAgIHNp emVvZihnX2NyYXNoX2NvbnRleHRfLmZsb2F0X3N0YXRlKSk7Ci0gICB9Ci0rI2VsaWYgZGVmaW5l ZChfX3Bvd2VycGM2NF9fKQotKyAgLy8gT24gUFBDNjQsIHdlIG11c3QgY29weSBWUiBzdGF0ZQot KyAgdWNvbnRleHRfdCogdWNfcHRyID0gKHVjb250ZXh0X3QqKXVjOwotKyAgaWYgKHVjX3B0ci0+ dWNfbWNvbnRleHQudl9yZWdzKSB7Ci0rICAgIG1lbWNweSgmZ19jcmFzaF9jb250ZXh0Xy52ZWN0 b3Jfc3RhdGUsIHVjX3B0ci0+dWNfbWNvbnRleHQudl9yZWdzLAotKyAgICAgICAgICAgc2l6ZW9m KGdfY3Jhc2hfY29udGV4dF8udmVjdG9yX3N0YXRlKSk7Ci0rICB9Ci0gI2VsaWYgIWRlZmluZWQo X19BUk1fRUFCSV9fKSAmJiAhZGVmaW5lZChfX21pcHNfXykKLSAgIC8vIEZQIHN0YXRlIGlzIG5v dCBwYXJ0IG9mIHVzZXIgQUJJIG9uIEFSTSBMaW51eC4KLS0gIC8vIEluIGNhc2Ugb2YgTUlQUyBM aW51eCBGUCBzdGF0ZSBpcyBhbHJlYWR5IHBhcnQgb2YgdWNvbnRleHRfdAotKyAgLy8gSW4gY2Fz ZSBvZiBNSVBTLCBMaW51eCBGUCBzdGF0ZSBpcyBhbHJlYWR5IHBhcnQgb2YgdWNvbnRleHRfdAot ICAgLy8gYW5kICdmbG9hdF9zdGF0ZScgaXMgbm90IGEgbWVtYmVyIG9mIENyYXNoQ29udGV4dC4K LSAgIHVjb250ZXh0X3QqIHVjX3B0ciA9ICh1Y29udGV4dF90Kil1YzsKLSAgIGlmICh1Y19wdHIt PnVjX21jb250ZXh0LmZwcmVncykgewotQEAgLTcwMSwxMSArNzA4LDE5IEBAIGJvb2wgRXhjZXB0 aW9uSGFuZGxlcjo6V3JpdGVNaW5pZHVtcCgpIHsKLSAgIH0KLSAjZW5kaWYKLSAKLS0jaWYgIWRl ZmluZWQoX19BUk1fRUFCSV9fKSAmJiAhZGVmaW5lZChfX2FhcmNoNjRfXykgJiYgIWRlZmluZWQo X19taXBzX18pCi0rI2lmICFkZWZpbmVkKF9fQVJNX0VBQklfXykgJiYgIWRlZmluZWQoX19hYXJj aDY0X18pICYmICFkZWZpbmVkKF9fbWlwc19fKSBcCi0rICAgICYmICFkZWZpbmVkKF9fcG93ZXJw YzY0X18pCi0gICAvLyBGUFUgc3RhdGUgaXMgbm90IHBhcnQgb2YgQVJNIEVBQkkgdWNvbnRleHRf dC4KLSAgIG1lbWNweSgmY29udGV4dC5mbG9hdF9zdGF0ZSwgY29udGV4dC5jb250ZXh0LnVjX21j b250ZXh0LmZwcmVncywKLSAgICAgICAgICBzaXplb2YoY29udGV4dC5mbG9hdF9zdGF0ZSkpOwot ICNlbmRpZgotKwotKyNpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rICAvLyBWZWN0b3IgcmVn aXN0ZXJzIG11c3QgYmUgY29waWVkIG9uIFBQQzY0Ci0rICBtZW1jcHkoJmNvbnRleHQudmVjdG9y X3N0YXRlLCBjb250ZXh0LmNvbnRleHQudWNfbWNvbnRleHQudl9yZWdzLAotKyAgICAgICAgIHNp emVvZihjb250ZXh0LnZlY3Rvcl9zdGF0ZSkpOwotKyNlbmRpZgotKwotICAgY29udGV4dC50aWQg PSBzeXNfZ2V0dGlkKCk7Ci0gCi0gICAvLyBBZGQgYW4gZXhjZXB0aW9uIHN0cmVhbSB0byB0aGUg bWluaWR1bXAgZm9yIGJldHRlciByZXBvcnRpbmcuCi1AQCAtNzI2LDYgKzc0MSw5IEBAIGJvb2wg RXhjZXB0aW9uSGFuZGxlcjo6V3JpdGVNaW5pZHVtcCgpIHsKLSAjZWxpZiBkZWZpbmVkKF9fbWlw c19fKQotICAgY29udGV4dC5zaWdpbmZvLnNpX2FkZHIgPQotICAgICAgIHJlaW50ZXJwcmV0X2Nh c3Q8dm9pZCo+KGNvbnRleHQuY29udGV4dC51Y19tY29udGV4dC5wYyk7Ci0rI2VsaWYgZGVmaW5l ZChfX3Bvd2VycGM2NF9fKQotKyAgY29udGV4dC5zaWdpbmZvLnNpX2FkZHIgPQotKyAgICAgIHJl aW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KGNvbnRleHQuY29udGV4dC51Y19tY29udGV4dC5ncF9yZWdz W1BUX05JUF0pOwotICNlbHNlCi0gI2Vycm9yICJUaGlzIGNvZGUgaGFzIG5vdCBiZWVuIHBvcnRl ZCB0byB5b3VyIHBsYXRmb3JtIHlldC4iCi0gI2VuZGlmCi1kaWZmIC0tZ2l0IGEvc3JjLzNyZHBh cnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGlu dXgvaGFuZGxlci9leGNlcHRpb25faGFuZGxlci5oIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3Ro aXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvaGFuZGxlci9leGNl cHRpb25faGFuZGxlci5oCi1pbmRleCBmNDQ0ODNmZjAuLjM2Y2U2ZDZjZSAxMDA2NDQKLS0tLSBh L3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMv Y2xpZW50L2xpbnV4L2hhbmRsZXIvZXhjZXB0aW9uX2hhbmRsZXIuaAotKysrIGIvc3JjLzNyZHBh cnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGlu dXgvaGFuZGxlci9leGNlcHRpb25faGFuZGxlci5oCi1AQCAtMTkyLDcgKzE5MiwxMSBAQCBjbGFz cyBFeGNlcHRpb25IYW5kbGVyIHsKLSAgICAgc2lnaW5mb190IHNpZ2luZm87Ci0gICAgIHBpZF90 IHRpZDsgIC8vIHRoZSBjcmFzaGluZyB0aHJlYWQuCi0gICAgIHVjb250ZXh0X3QgY29udGV4dDsK LS0jaWYgIWRlZmluZWQoX19BUk1fRUFCSV9fKSAmJiAhZGVmaW5lZChfX21pcHNfXykKLSsjaWYg ZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotKyAgICAvLyBQUEM2NCdzIEZQIHN0YXRlIGlzIGEgcGFy dCBvZiB1Y29udGV4dF90IGxpa2UgTUlQUyBidXQgdGhlIHZlY3RvcgotKyAgICAvLyBzdGF0ZSBp cyBub3QsIHNvIGEgc3RydWN0IGlzIG5lZWRlZC4KLSsgICAgdnN0YXRlX3QgdmVjdG9yX3N0YXRl OwotKyNlbGlmICFkZWZpbmVkKF9fQVJNX0VBQklfXykgJiYgIWRlZmluZWQoX19taXBzX18pCi0g ICAgIC8vICNpZmRlZiB0aGlzIG91dCBiZWNhdXNlIEZQIHN0YXRlIGlzIG5vdCBwYXJ0IG9mIHVz ZXIgQUJJIGZvciBMaW51eCBBUk0uCi0gICAgIC8vIEluIGNhc2Ugb2YgTUlQUyBMaW51eCBGUCBz dGF0ZSBpcyBhbHJlYWR5IHBhcnQgb2YgdWNvbnRleHRfdCBzbwotICAgICAvLyAnZmxvYXRfc3Rh dGUnIGlzIG5vdCByZXF1aXJlZC4KLWRpZmYgLS1naXQgYS9zcmMvM3JkcGFydHkvY2hyb21pdW0v dGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9oYW5kbGVyL2V4 Y2VwdGlvbl9oYW5kbGVyX3VuaXR0ZXN0LmNjIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJk X3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvaGFuZGxlci9leGNlcHRp b25faGFuZGxlcl91bml0dGVzdC5jYwotaW5kZXggYmNiZjljMjZmLi4yYzM2ZWQ0MWYgMTAwNjQ0 Ci0tLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtw YWQvc3JjL2NsaWVudC9saW51eC9oYW5kbGVyL2V4Y2VwdGlvbl9oYW5kbGVyX3VuaXR0ZXN0LmNj Ci0rKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtw YWQvc3JjL2NsaWVudC9saW51eC9oYW5kbGVyL2V4Y2VwdGlvbl9oYW5kbGVyX3VuaXR0ZXN0LmNj Ci1AQCAtMzA3LDcgKzMwNyw3IEBAIFRFU1QoRXhjZXB0aW9uSGFuZGxlclRlc3QsIFBhcmFsbGVs Q2hpbGRDcmFzaGVzRG9udEhhbmcpIHsKLSAgIH0KLSAKLSAgIC8vIFdhaXQgYSB3aGlsZSB1bnRp bCB0aGUgY2hpbGQgc2hvdWxkIGhhdmUgY3Jhc2hlZC4KLS0gIHVzbGVlcCgxMDAwMDAwKTsKLSsg IHVzbGVlcCgyMDAwMDAwKTsKLSAgIC8vIEtpbGwgdGhlIGNoaWxkIGlmIGl0IGlzIHN0aWxsIHJ1 bm5pbmcuCi0gICBraWxsKGNoaWxkLCBTSUdLSUxMKTsKLSAKLUBAIC01NTksNiArNTU5LDggQEAg Y29uc3QgdW5zaWduZWQgY2hhciBrSWxsZWdhbEluc3RydWN0aW9uW10gPSB7Ci0gI2lmIGRlZmlu ZWQoX19taXBzX18pCi0gICAvLyBtZmMyIHplcm8sSW1wbCAtIHVzdWFsbHkgaWxsZWdhbCBpbiB1 c2Vyc3BhY2UuCi0gICAweDQ4LCAweDAwLCAweDAwLCAweDQ4Ci0rI2VsaWYgZGVmaW5lZChfX3Bv d2VycGM2NF9fKQotKyAgMHgwMSwgMHgwMSwgMHgwMSwgMHgwMSAvLyBDcmFzaGVzIG9uIGEgdGVz dGVkIFBPV0VSOSBjcHUKLSAjZWxzZQotICAgLy8gVGhpcyBjcmFzaGVzIHdpdGggU0lHSUxMIG9u IHg4Ni94ODYtNjQvYXJtLgotICAgMHhmZiwgMHhmZiwgMHhmZiwgMHhmZgotQEAgLTc1NCwxMCAr NzU2LDEwIEBAIFRFU1QoRXhjZXB0aW9uSGFuZGxlclRlc3QsIEluc3RydWN0aW9uUG9pbnRlck1l bW9yeU1heEJvdW5kKSB7Ci0gCi0gICAvLyBUaGVzZSBhcmUgZGVmaW5lZCBoZXJlIHNvIHRoZSBw YXJlbnQgY2FuIHVzZSB0aGVtIHRvIGNoZWNrIHRoZQotICAgLy8gZGF0YSBmcm9tIHRoZSBtaW5p ZHVtcCBhZnRlcndhcmRzLgotLSAgLy8gVXNlIDRrIGhlcmUgYmVjYXVzZSB0aGUgT1Mgd2lsbCBo YW5kIG91dCBhIHNpbmdsZSBwYWdlIGV2ZW4KLSsgIC8vIFVzZSB0aGUgcGFnZSBzaXplIGhlcmUg YmVjYXVzZSB0aGUgT1Mgd2lsbCBoYW5kIG91dCBhIHNpbmdsZSBwYWdlIGV2ZW4KLSAgIC8vIGlm IGEgc21hbGxlciBzaXplIGlzIHJlcXVlc3RlZCwgYW5kIHRoaXMgdGVzdCB3YW50cyB0bwotICAg Ly8gdGVzdCB0aGUgdXBwZXIgYm91bmQgb2YgdGhlIG1lbW9yeSByYW5nZS4KLS0gIGNvbnN0IHVp bnQzMl90IGtNZW1vcnlTaXplID0gNDA5NjsgIC8vIGJ5dGVzCi0rICBjb25zdCB1aW50MzJfdCBr TWVtb3J5U2l6ZSA9IGdldHBhZ2VzaXplKCk7ICAvLyBieXRlcwotICAgY29uc3QgaW50IGtPZmZz ZXQgPSBrTWVtb3J5U2l6ZSAtIHNpemVvZihrSWxsZWdhbEluc3RydWN0aW9uKTsKLSAKLSAgIGNv bnN0IHBpZF90IGNoaWxkID0gZm9yaygpOwotZGlmZiAtLWdpdCBhL3NyYy8zcmRwYXJ0eS9jaHJv bWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pY3Jv ZHVtcF93cml0ZXIvbWljcm9kdW1wX3dyaXRlci5jYyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90 aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pY3JvZHVtcF93 cml0ZXIvbWljcm9kdW1wX3dyaXRlci5jYwotaW5kZXggZmEzYzE3MTNhLi42Y2U3MDllMmYgMTAw NjQ0Ci0tLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJl YWtwYWQvc3JjL2NsaWVudC9saW51eC9taWNyb2R1bXBfd3JpdGVyL21pY3JvZHVtcF93cml0ZXIu Y2MKLSsrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVh a3BhZC9zcmMvY2xpZW50L2xpbnV4L21pY3JvZHVtcF93cml0ZXIvbWljcm9kdW1wX3dyaXRlci5j YwotQEAgLTEzOCw3ICsxMzgsOSBAQCBjbGFzcyBNaWNyb2R1bXBXcml0ZXIgewotICAgICAgICAg ICAgICAgICAgIGNvbnN0IE1pY3JvZHVtcEV4dHJhSW5mbyYgbWljcm9kdW1wX2V4dHJhX2luZm8s Ci0gICAgICAgICAgICAgICAgICAgTGludXhEdW1wZXIqIGR1bXBlcikKLSAgICAgICA6IHVjb250 ZXh0Xyhjb250ZXh0ID8gJmNvbnRleHQtPmNvbnRleHQgOiBOVUxMKSwKLS0jaWYgIWRlZmluZWQo X19BUk1fRUFCSV9fKSAmJiAhZGVmaW5lZChfX21pcHNfXykKLSsjaWYgZGVmaW5lZChfX3Bvd2Vy cGM2NF9fKQotKyAgICAgICAgdmVjdG9yX3N0YXRlXyhjb250ZXh0ID8gJmNvbnRleHQtPnZlY3Rv cl9zdGF0ZSA6IE5VTEwpLAotKyNlbGlmICFkZWZpbmVkKF9fQVJNX0VBQklfXykgJiYgIWRlZmlu ZWQoX19taXBzX18pCi0gICAgICAgICBmbG9hdF9zdGF0ZV8oY29udGV4dCA/ICZjb250ZXh0LT5m bG9hdF9zdGF0ZSA6IE5VTEwpLAotICNlbmRpZgotICAgICAgICAgZHVtcGVyXyhkdW1wZXIpLAot QEAgLTMzNyw2ICszMzksOCBAQCBjbGFzcyBNaWNyb2R1bXBXcml0ZXIgewotICMgZWxzZQotICMg IGVycm9yICJUaGlzIG1pcHMgQUJJIGlzIGN1cnJlbnRseSBub3Qgc3VwcG9ydGVkIChuMzIpIgot ICNlbmRpZgotKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSsgICAgY29uc3QgY2hhciBr QXJjaFtdID0gInBwYzY0IjsKLSAjZWxzZQotICNlcnJvciAiVGhpcyBjb2RlIGhhcyBub3QgYmVl biBwb3J0ZWQgdG8geW91ciBwbGF0Zm9ybSB5ZXQiCi0gI2VuZGlmCi1AQCAtNDA5LDcgKzQxMyw5 IEBAIGNsYXNzIE1pY3JvZHVtcFdyaXRlciB7Ci0gICB2b2lkIER1bXBDUFVTdGF0ZSgpIHsKLSAg ICAgUmF3Q29udGV4dENQVSBjcHU7Ci0gICAgIG15X21lbXNldCgmY3B1LCAwLCBzaXplb2YoUmF3 Q29udGV4dENQVSkpOwotLSNpZiAhZGVmaW5lZChfX0FSTV9FQUJJX18pICYmICFkZWZpbmVkKF9f bWlwc19fKQotKyNpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rICAgIFVDb250ZXh0UmVhZGVy OjpGaWxsQ1BVQ29udGV4dCgmY3B1LCB1Y29udGV4dF8sIHZlY3Rvcl9zdGF0ZV8pOwotKyNlbGlm ICFkZWZpbmVkKF9fQVJNX0VBQklfXykgJiYgIWRlZmluZWQoX19taXBzX18pCi0gICAgIFVDb250 ZXh0UmVhZGVyOjpGaWxsQ1BVQ29udGV4dCgmY3B1LCB1Y29udGV4dF8sIGZsb2F0X3N0YXRlXyk7 Ci0gI2Vsc2UKLSAgICAgVUNvbnRleHRSZWFkZXI6OkZpbGxDUFVDb250ZXh0KCZjcHUsIHVjb250 ZXh0Xyk7Ci1AQCAtNjA1LDcgKzYxMSw5IEBAIGNsYXNzIE1pY3JvZHVtcFdyaXRlciB7Ci0gICB2 b2lkKiBBbGxvYyh1bnNpZ25lZCBieXRlcykgeyByZXR1cm4gZHVtcGVyXy0+YWxsb2NhdG9yKCkt PkFsbG9jKGJ5dGVzKTsgfQotIAotICAgY29uc3QgdWNvbnRleHRfdCogY29uc3QgdWNvbnRleHRf OwotLSNpZiAhZGVmaW5lZChfX0FSTV9FQUJJX18pICYmICFkZWZpbmVkKF9fbWlwc19fKQotKyNp ZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rICBjb25zdCBnb29nbGVfYnJlYWtwYWQ6OnZzdGF0 ZV90KiBjb25zdCB2ZWN0b3Jfc3RhdGVfOwotKyNlbGlmICFkZWZpbmVkKF9fQVJNX0VBQklfXykg JiYgIWRlZmluZWQoX19taXBzX18pCi0gICBjb25zdCBnb29nbGVfYnJlYWtwYWQ6OmZwc3RhdGVf dCogY29uc3QgZmxvYXRfc3RhdGVfOwotICNlbmRpZgotICAgTGludXhEdW1wZXIqIGR1bXBlcl87 Ci1kaWZmIC0tZ2l0IGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFk L2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWljcm9kdW1wX3dyaXRlci9taWNyb2R1bXBfd3Jp dGVyX3VuaXR0ZXN0LmNjIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFr cGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWljcm9kdW1wX3dyaXRlci9taWNyb2R1bXBf d3JpdGVyX3VuaXR0ZXN0LmNjCi1pbmRleCBjMmZlYTAyMjUuLjhjNjJjNTI0YSAxMDA2NDQKLS0t LSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9z cmMvY2xpZW50L2xpbnV4L21pY3JvZHVtcF93cml0ZXIvbWljcm9kdW1wX3dyaXRlcl91bml0dGVz dC5jYwotKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2Jy ZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWljcm9kdW1wX3dyaXRlci9taWNyb2R1bXBfd3JpdGVy X3VuaXR0ZXN0LmNjCi1AQCAtMjc4LDEwICsyNzgsMTkgQEAgVEVTVChNaWNyb2R1bXBXcml0ZXJU ZXN0LCBCYXNpY1dpdGhNYXBwaW5ncykgewotICAgQ3Jhc2hBbmRHZXRNaWNyb2R1bXAobWFwcGlu Z3MsIE1pY3JvZHVtcEV4dHJhSW5mbygpLCAmYnVmKTsKLSAgIEFTU0VSVF9UUlVFKENvbnRhaW5z TWljcm9kdW1wKGJ1ZikpOwotIAotKyAgaW50IHBhZ2Vfc2l6ZSA9IGdldHBhZ2VzaXplKCk7Ci0g I2lmZGVmIF9fTFA2NF9fCi0tICBBU1NFUlRfTkUoc3RkOjpzdHJpbmc6Om5wb3MsCi0tICAgICAg ICAgICAgYnVmLmZpbmQoIk0gMDAwMDAwMDAwMDAwMTAwMCAwMDAwMDAwMDAwMDAwMDJBIDAwMDAw MDAwMDAwMDEwMDAgIgotLSAgICAgICAgICAgICAgICAgICAgICIzMzIyMTEwMDU1NDQ3NzY2ODg5 OUFBQkJDQ0RERUVGRjAgbGliZm9vLnNvIikpOwotKyAgLy8gVGhpcyB0ZXN0IGlzIG9ubHkgYXZh aWxhYmxlIGZvciB0aGUgZm9sbG93aW5nIHBhZ2Ugc2l6ZXMKLSsgIEFTU0VSVF9UUlVFKChwYWdl X3NpemUgPT0gNDA5NikgfHwgKHBhZ2Vfc2l6ZSA9PSA2NTUzNikpOwotKyAgaWYgKHBhZ2Vfc2l6 ZSA9PSA0MDk2KSB7IAotKyAgICBBU1NFUlRfTkUoc3RkOjpzdHJpbmc6Om5wb3MsCi0rICAgICAg ICAgICAgICBidWYuZmluZCgiTSAwMDAwMDAwMDAwMDAxMDAwIDAwMDAwMDAwMDAwMDAwMkEgMDAw MDAwMDAwMDAwMTAwMCAiCi0rICAgICAgICAgICAgICAgICAgICAgICAiMzMyMjExMDA1NTQ0Nzc2 Njg4OTlBQUJCQ0NEREVFRkYwIGxpYmZvby5zbyIpKTsKLSsgIH0gZWxzZSB7Ci0rICAgIEFTU0VS VF9ORShzdGQ6OnN0cmluZzo6bnBvcywKLSsgICAgICAgICAgICAgIGJ1Zi5maW5kKCJNIDAwMDAw MDAwMDAwMTAwMDAgMDAwMDAwMDAwMDAwMDAyQSAwMDAwMDAwMDAwMDEwMDAwICIKLSsgICAgICAg ICAgICAgICAgICAgICAgICIzMzIyMTEwMDU1NDQ3NzY2ODg5OUFBQkJDQ0RERUVGRjAgbGliZm9v LnNvIikpOwotKyAgfQotICNlbHNlCi0gICBBU1NFUlRfTkUoc3RkOjpzdHJpbmc6Om5wb3MsCi0g ICAgICAgICAgICAgYnVmLmZpbmQoIk0gMDAwMDEwMDAgMDAwMDAwMkEgMDAwMDEwMDAgIgotZGlm ZiAtLWdpdCBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVh a3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9saW51eF9jb3JlX2R1bXBlci5j YyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9z cmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9saW51eF9jb3JlX2R1bXBlci5jYwotaW5k ZXggNDE1MDY4OTgzLi5iOTNlNGFmY2YgMTAwNjQ0Ci0tLS0gYS9zcmMvM3JkcGFydHkvY2hyb21p dW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVt cF93cml0ZXIvbGludXhfY29yZV9kdW1wZXIuY2MKLSsrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1 bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1w X3dyaXRlci9saW51eF9jb3JlX2R1bXBlci5jYwotQEAgLTExMiw2ICsxMTIsOSBAQCBib29sIExp bnV4Q29yZUR1bXBlcjo6R2V0VGhyZWFkSW5mb0J5SW5kZXgoc2l6ZV90IGluZGV4LCBUaHJlYWRJ bmZvKiBpbmZvKSB7Ci0gI2VsaWYgZGVmaW5lZChfX21pcHNfXykKLSAgIHN0YWNrX3BvaW50ZXIg PQotICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8dWludDhfdCo+KGluZm8tPm1jb250ZXh0LmdyZWdz W01EX0NPTlRFWFRfTUlQU19SRUdfU1BdKTsKLSsjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18p Ci0rICBzdGFja19wb2ludGVyID0KLSsgICAgICByZWludGVycHJldF9jYXN0PHVpbnQ4X3QqPihp bmZvLT5tY29udGV4dC5ncF9yZWdzW01EX0NPTlRFWFRfUFBDNjRfUkVHX1NQXSk7Ci0gI2Vsc2UK LSAjZXJyb3IgIlRoaXMgY29kZSBoYXNuJ3QgYmVlbiBwb3J0ZWQgdG8geW91ciBwbGF0Zm9ybSB5 ZXQuIgotICNlbmRpZgotQEAgLTE5Nyw3ICsyMDAsMTAgQEAgYm9vbCBMaW51eENvcmVEdW1wZXI6 OkVudW1lcmF0ZVRocmVhZHMoKSB7Ci0gICAgICAgICBtZW1zZXQoJmluZm8sIDAsIHNpemVvZihU aHJlYWRJbmZvKSk7Ci0gICAgICAgICBpbmZvLnRnaWQgPSBzdGF0dXMtPnByX3BncnA7Ci0gICAg ICAgICBpbmZvLnBwaWQgPSBzdGF0dXMtPnByX3BwaWQ7Ci0tI2lmIGRlZmluZWQoX19taXBzX18p Ci0rI2lmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSsgICAgICAgIGZvciAoaW50IGkgPSAwOyBp IDwgMzE7IGkrKykKLSsgICAgICAgICAgICBpbmZvLm1jb250ZXh0LmdwX3JlZ3NbaV0gPSBzdGF0 dXMtPnByX3JlZ1tpXTsKLSsjZWxpZiBkZWZpbmVkKF9fbWlwc19fKQotICNpZiBkZWZpbmVkKF9f QU5EUk9JRF9fKQotICAgICAgICAgZm9yIChpbnQgaSA9IEVGX1IwOyBpIDw9IEVGX1IzMTsgaSsr KQotICAgICAgICAgICBpbmZvLm1jb250ZXh0LmdyZWdzW2kgLSBFRl9SMF0gPSBzdGF0dXMtPnBy X3JlZ1tpXTsKLWRpZmYgLS1naXQgYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkv YnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbGludXhf ZHVtcGVyLmNjIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2Jy ZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL2xpbnV4X2R1bXBlci5jYwot aW5kZXggMTExMjAzNWJjLi44NTIzZGFkNjMgMTAwNjQ0Ci0tLS0gYS9zcmMvM3JkcGFydHkvY2hy b21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5p ZHVtcF93cml0ZXIvbGludXhfZHVtcGVyLmNjCi0rKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0v dGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93 cml0ZXIvbGludXhfZHVtcGVyLmNjCi1AQCAtNzY1LDcgKzc2NSw5IEBAIGJvb2wgTGludXhEdW1w ZXI6OkdldFN0YWNrSW5mbyhjb25zdCB2b2lkKiogc3RhY2ssIHNpemVfdCogc3RhY2tfbGVuLAot ICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8dWludDhfdCo+KGludF9zdGFja19wb2ludGVyICYgfihw YWdlX3NpemUgLSAxKSk7Ci0gCi0gICAvLyBUaGUgbnVtYmVyIG9mIGJ5dGVzIG9mIHN0YWNrIHdo aWNoIHdlIHRyeSB0byBjYXB0dXJlLgotLSAgc3RhdGljIGNvbnN0IHB0cmRpZmZfdCBrU3RhY2tU b0NhcHR1cmUgPSAzMiAqIDEwMjQ7Ci0rICAvLyBUaGlzIG5vdyBkZXBlbmRzIG9uIHBhZ2Vfc2l6 ZSB0byBhdm9pZCBtaXNzaW5nIGRhdGEKLSsgIC8vIG9uIHN5c3RlbXMgd2l0aCBsYXJnZXIgcGFn ZSBzaXplcy4KLSsgIHN0YXRpYyBjb25zdCBwdHJkaWZmX3Qga1N0YWNrVG9DYXB0dXJlID0gOCAq IHBhZ2Vfc2l6ZTsKLSAKLSAgIGNvbnN0IE1hcHBpbmdJbmZvKiBtYXBwaW5nID0gRmluZE1hcHBp bmcoc3RhY2tfcG9pbnRlcik7Ci0gICBpZiAoIW1hcHBpbmcpCi1kaWZmIC0tZ2l0IGEvc3JjLzNy ZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQv bGludXgvbWluaWR1bXBfd3JpdGVyL2xpbnV4X2R1bXBlci5oIGIvc3JjLzNyZHBhcnR5L2Nocm9t aXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1 bXBfd3JpdGVyL2xpbnV4X2R1bXBlci5oCi1pbmRleCBmNGE3NWQ5MDYuLjAyMDk4MWY1NyAxMDA2 NDQKLS0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVh a3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9saW51eF9kdW1wZXIuaAotKysr IGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3Ny Yy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL2xpbnV4X2R1bXBlci5oCi1AQCAtNjMsNyAr NjMsOCBAQCBuYW1lc3BhY2UgZ29vZ2xlX2JyZWFrcGFkIHsKLSAgKGRlZmluZWQoX19taXBzX18p ICYmIF9NSVBTX1NJTSA9PSBfQUJJTzMyKQotIHR5cGVkZWYgRWxmMzJfYXV4dl90IGVsZl9hdXhf ZW50cnk7Ci0gI2VsaWYgZGVmaW5lZChfX3g4Nl82NCkgfHwgZGVmaW5lZChfX2FhcmNoNjRfXykg fHwgXAotLSAgICAgKGRlZmluZWQoX19taXBzX18pICYmIF9NSVBTX1NJTSAhPSBfQUJJTzMyKQot KyAgICAgKGRlZmluZWQoX19taXBzX18pICYmIF9NSVBTX1NJTSAhPSBfQUJJTzMyKSB8fCBcCi0r ICAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gdHlwZWRlZiBFbGY2NF9hdXh2X3QgZWxmX2F1 eF9lbnRyeTsKLSAjZW5kaWYKLSAKLWRpZmYgLS1naXQgYS9zcmMvM3JkcGFydHkvY2hyb21pdW0v dGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93 cml0ZXIvbGludXhfZHVtcGVyX3VuaXR0ZXN0X2hlbHBlci5jYyBiL3NyYy8zcmRwYXJ0eS9jaHJv bWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlk dW1wX3dyaXRlci9saW51eF9kdW1wZXJfdW5pdHRlc3RfaGVscGVyLmNjCi1pbmRleCAzYWQ0OGU1 MDEuLjE2ODhjMzY1ZSAxMDA2NDQKLS0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9w YXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9s aW51eF9kdW1wZXJfdW5pdHRlc3RfaGVscGVyLmNjCi0rKysgYi9zcmMvM3JkcGFydHkvY2hyb21p dW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVt cF93cml0ZXIvbGludXhfZHVtcGVyX3VuaXR0ZXN0X2hlbHBlci5jYwotQEAgLTUxLDYgKzUxLDgg QEAKLSAjZGVmaW5lIFRJRF9QVFJfUkVHSVNURVIgInJjeCIKLSAjZWxpZiBkZWZpbmVkKF9fbWlw c19fKQotICNkZWZpbmUgVElEX1BUUl9SRUdJU1RFUiAiJDEiCi0rI2VsaWYgZGVmaW5lZChfX3Bv d2VycGM2NF9fKQotKyNkZWZpbmUgVElEX1BUUl9SRUdJU1RFUiAicjgiCi0gI2Vsc2UKLSAjZXJy b3IgVGhpcyB0ZXN0IGhhcyBub3QgYmVlbiBwb3J0ZWQgdG8gdGhpcyBwbGF0Zm9ybS4KLSAjZW5k aWYKLWRpZmYgLS1naXQgYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtw YWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbGludXhfcHRyYWNl X2R1bXBlci5jYyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9i cmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9saW51eF9wdHJhY2VfZHVt cGVyLmNjCi1pbmRleCBlM2RkYjgxYTYuLmZhMjg1NzVlZiAxMDA2NDQKLS0tLSBhL3NyYy8zcmRw YXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xp bnV4L21pbmlkdW1wX3dyaXRlci9saW51eF9wdHJhY2VfZHVtcGVyLmNjCi0rKysgYi9zcmMvM3Jk cGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9s aW51eC9taW5pZHVtcF93cml0ZXIvbGludXhfcHRyYWNlX2R1bXBlci5jYwotQEAgLTE0OSwxOSAr MTQ5LDI3IEBAIGJvb2wgTGludXhQdHJhY2VEdW1wZXI6OkNvcHlGcm9tUHJvY2Vzcyh2b2lkKiBk ZXN0LCBwaWRfdCBjaGlsZCwKLSAgIHJldHVybiB0cnVlOwotIH0KLSAKLS1ib29sIExpbnV4UHRy YWNlRHVtcGVyOjpSZWFkUmVnaXN0ZXJTZXQoVGhyZWFkSW5mbyogaW5mbywgcGlkX3QgdGlkKQot LXsKLStib29sIExpbnV4UHRyYWNlRHVtcGVyOjpSZWFkUmVnaXN0ZXJTZXQoVGhyZWFkSW5mbyog aW5mbywgcGlkX3QgdGlkKSB7Ci0gI2lmZGVmIFBUUkFDRV9HRVRSRUdTRVQKLSAgIHN0cnVjdCBp b3ZlYyBpbzsKLSAgIGluZm8tPkdldEdlbmVyYWxQdXJwb3NlUmVnaXN0ZXJzKCZpby5pb3ZfYmFz ZSwgJmlvLmlvdl9sZW4pOwotLSAgaWYgKHN5c19wdHJhY2UoUFRSQUNFX0dFVFJFR1NFVCwgdGlk LCAodm9pZCopTlRfUFJTVEFUVVMsICh2b2lkKikmaW8pID09IC0xKSB7Ci0rICBpZiAocHRyYWNl KFBUUkFDRV9HRVRSRUdTRVQsIHRpZCwgKHZvaWQqKU5UX1BSU1RBVFVTLCAodm9pZCopJmlvKSA9 PSAtMSkgewotICAgICByZXR1cm4gZmFsc2U7Ci0gICB9Ci0gCi0gICBpbmZvLT5HZXRGbG9hdGlu Z1BvaW50UmVnaXN0ZXJzKCZpby5pb3ZfYmFzZSwgJmlvLmlvdl9sZW4pOwotLSAgaWYgKHN5c19w dHJhY2UoUFRSQUNFX0dFVFJFR1NFVCwgdGlkLCAodm9pZCopTlRfRlBSRUdTRVQsICh2b2lkKikm aW8pID09IC0xKSB7Ci0rICBpZiAocHRyYWNlKFBUUkFDRV9HRVRSRUdTRVQsIHRpZCwgKHZvaWQq KU5UX0ZQUkVHU0VULCAodm9pZCopJmlvKSA9PSAtMSkgewotICAgICByZXR1cm4gZmFsc2U7Ci0g ICB9Ci0rCi0rI2lmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSsgIC8vIEdyYWIgdGhlIHZlY3Rv ciByZWdpc3RlcnMgb24gUFBDNjQgdG9vCi0rICBpbmZvLT5HZXRWZWN0b3JSZWdpc3RlcnMoJmlv Lmlvdl9iYXNlLCAmaW8uaW92X2xlbik7Ci0rICBpZiAocHRyYWNlKFBUUkFDRV9HRVRSRUdTRVQs IHRpZCwgKHZvaWQqKU5UX1BQQ19WTVgsICh2b2lkKikmaW8pID09IC0xKSB7Ci0rICAgIHJldHVy biBmYWxzZTsKLSsgIH0KLSsjZW5kaWYgLy8gZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotKwotICAg cmV0dXJuIHRydWU7Ci0gI2Vsc2UKLSAgIHJldHVybiBmYWxzZTsKLUBAIC0yOTgsNiArMzA2LDkg QEAgYm9vbCBMaW51eFB0cmFjZUR1bXBlcjo6R2V0VGhyZWFkSW5mb0J5SW5kZXgoc2l6ZV90IGlu ZGV4LCBUaHJlYWRJbmZvKiBpbmZvKSB7Ci0gI2VsaWYgZGVmaW5lZChfX21pcHNfXykKLSAgIHN0 YWNrX3BvaW50ZXIgPQotICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8dWludDhfdCo+KGluZm8tPm1j b250ZXh0LmdyZWdzW01EX0NPTlRFWFRfTUlQU19SRUdfU1BdKTsKLSsjZWxpZiBkZWZpbmVkKF9f cG93ZXJwYzY0X18pCi0rICBzdGFja19wb2ludGVyID0KLSsgICAgICByZWludGVycHJldF9jYXN0 PHVpbnQ4X3QqPihpbmZvLT5tY29udGV4dC5ncF9yZWdzW01EX0NPTlRFWFRfUFBDNjRfUkVHX1NQ XSk7Ci0gI2Vsc2UKLSAjZXJyb3IgIlRoaXMgY29kZSBoYXNuJ3QgYmVlbiBwb3J0ZWQgdG8geW91 ciBwbGF0Zm9ybSB5ZXQuIgotICNlbmRpZgotZGlmZiAtLWdpdCBhL3NyYy8zcmRwYXJ0eS9jaHJv bWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlk dW1wX3dyaXRlci9saW51eF9wdHJhY2VfZHVtcGVyX3VuaXR0ZXN0LmNjIGIvc3JjLzNyZHBhcnR5 L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgv bWluaWR1bXBfd3JpdGVyL2xpbnV4X3B0cmFjZV9kdW1wZXJfdW5pdHRlc3QuY2MKLWluZGV4IGE0 MWRhZmNlMC4uMzE3NDM5NDBkIDEwMDY0NAotLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3Ro aXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3Jp dGVyL2xpbnV4X3B0cmFjZV9kdW1wZXJfdW5pdHRlc3QuY2MKLSsrKyBiL3NyYy8zcmRwYXJ0eS9j aHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21p bmlkdW1wX3dyaXRlci9saW51eF9wdHJhY2VfZHVtcGVyX3VuaXR0ZXN0LmNjCi1AQCAtNDYyLDYg KzQ2Miw5IEBAIFRFU1QoTGludXhQdHJhY2VEdW1wZXJUZXN0LCBWZXJpZnlTdGFja1JlYWRXaXRo TXVsdGlwbGVUaHJlYWRzKSB7Ci0gI2VsaWYgZGVmaW5lZChfX21pcHNfXykKLSAgICAgcGlkX3Qq IHByb2Nlc3NfdGlkX2xvY2F0aW9uID0KLSAgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8cGlkX3Qq PihvbmVfdGhyZWFkLm1jb250ZXh0LmdyZWdzWzFdKTsKLSsjZWxpZiBkZWZpbmVkKF9fcG93ZXJw YzY0X18pCi0rICAgIHBpZF90KiBwcm9jZXNzX3RpZF9sb2NhdGlvbiA9Ci0rICAgICAgICByZWlu dGVycHJldF9jYXN0PHBpZF90Kj4ob25lX3RocmVhZC5tY29udGV4dC5ncF9yZWdzWzhdKTsKLSAj ZWxzZQotICNlcnJvciBUaGlzIHRlc3QgaGFzIG5vdCBiZWVuIHBvcnRlZCB0byB0aGlzIHBsYXRm b3JtLgotICNlbmRpZgotQEAgLTU1OSw2ICs1NjIsOCBAQCBURVNUX0YoTGludXhQdHJhY2VEdW1w ZXJUZXN0LCBTYW5pdGl6ZVN0YWNrQ29weSkgewotICAgdWludHB0cl90IGhlYXBfYWRkciA9IHRo cmVhZF9pbmZvLnJlZ3MucmN4OwotICNlbGlmIGRlZmluZWQoX19taXBzX18pCi0gICB1aW50cHRy X3QgaGVhcF9hZGRyID0gdGhyZWFkX2luZm8ubWNvbnRleHQuZ3JlZ3NbMV07Ci0rI2VsaWYgZGVm aW5lZChfX3Bvd2VycGM2NF9fKQotKyAgdWludHB0cl90IGhlYXBfYWRkciA9IHRocmVhZF9pbmZv Lm1jb250ZXh0LmdwX3JlZ3NbOF07Ci0gI2Vsc2UKLSAjZXJyb3IgVGhpcyB0ZXN0IGhhcyBub3Qg YmVlbiBwb3J0ZWQgdG8gdGhpcyBwbGF0Zm9ybS4KLSAjZW5kaWYKLWRpZmYgLS1naXQgYS9zcmMv M3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVu dC9saW51eC9taW5pZHVtcF93cml0ZXIvbWluaWR1bXBfd3JpdGVyLmNjIGIvc3JjLzNyZHBhcnR5 L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgv bWluaWR1bXBfd3JpdGVyL21pbmlkdW1wX3dyaXRlci5jYwotaW5kZXggZjhjZGYyYTFjLi5jYjgw OGMxNTEgMTAwNjQ0Ci0tLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJl YWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbWluaWR1bXBf d3JpdGVyLmNjCi0rKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtw YWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbWluaWR1bXBfd3Jp dGVyLmNjCi1AQCAtMTM2LDcgKzEzNiw5IEBAIGNsYXNzIE1pbmlkdW1wV3JpdGVyIHsKLSAgICAg ICA6IGZkXyhtaW5pZHVtcF9mZCksCi0gICAgICAgICBwYXRoXyhtaW5pZHVtcF9wYXRoKSwKLSAg ICAgICAgIHVjb250ZXh0Xyhjb250ZXh0ID8gJmNvbnRleHQtPmNvbnRleHQgOiBOVUxMKSwKLS0j aWYgIWRlZmluZWQoX19BUk1fRUFCSV9fKSAmJiAhZGVmaW5lZChfX21pcHNfXykKLSsjaWYgZGVm aW5lZChfX3Bvd2VycGM2NF9fKQotKyAgICAgICAgdmVjdG9yX3N0YXRlXyhjb250ZXh0ID8gJmNv bnRleHQtPnZlY3Rvcl9zdGF0ZSA6IE5VTEwpLAotKyNlbGlmICFkZWZpbmVkKF9fQVJNX0VBQklf XykgJiYgIWRlZmluZWQoX19taXBzX18pCi0gICAgICAgICBmbG9hdF9zdGF0ZV8oY29udGV4dCA/ ICZjb250ZXh0LT5mbG9hdF9zdGF0ZSA6IE5VTEwpLAotICNlbmRpZgotICAgICAgICAgZHVtcGVy XyhkdW1wZXIpLAotQEAgLTQ2OCw3ICs0NzAsOSBAQCBjbGFzcyBNaW5pZHVtcFdyaXRlciB7Ci0g ICAgICAgICBpZiAoIWNwdS5BbGxvY2F0ZSgpKQotICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0g ICAgICAgICBteV9tZW1zZXQoY3B1LmdldCgpLCAwLCBzaXplb2YoUmF3Q29udGV4dENQVSkpOwot LSNpZiAhZGVmaW5lZChfX0FSTV9FQUJJX18pICYmICFkZWZpbmVkKF9fbWlwc19fKQotKyNpZiBk ZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rICAgICAgICBVQ29udGV4dFJlYWRlcjo6RmlsbENQVUNv bnRleHQoY3B1LmdldCgpLCB1Y29udGV4dF8sIHZlY3Rvcl9zdGF0ZV8pOwotKyNlbGlmICFkZWZp bmVkKF9fQVJNX0VBQklfXykgJiYgIWRlZmluZWQoX19taXBzX18pCi0gICAgICAgICBVQ29udGV4 dFJlYWRlcjo6RmlsbENQVUNvbnRleHQoY3B1LmdldCgpLCB1Y29udGV4dF8sIGZsb2F0X3N0YXRl Xyk7Ci0gI2Vsc2UKLSAgICAgICAgIFVDb250ZXh0UmVhZGVyOjpGaWxsQ1BVQ29udGV4dChjcHUu Z2V0KCksIHVjb250ZXh0Xyk7Ci1AQCAtODk3LDcgKzkwMSw3IEBAIGNsYXNzIE1pbmlkdW1wV3Jp dGVyIHsKLSAgICAgZGlyZW50LT5sb2NhdGlvbi5ydmEgPSAwOwotICAgfQotIAotLSNpZiBkZWZp bmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19taXBzX18p Ci0rI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5l ZChfX21pcHNfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgYm9vbCBXcml0ZUNQVUlu Zm9ybWF0aW9uKE1EUmF3U3lzdGVtSW5mbyogc3lzX2luZm8pIHsKLSAgICAgY2hhciB2ZW5kb3Jf aWRbc2l6ZW9mKHN5c19pbmZvLT5jcHUueDg2X2NwdV9pbmZvLnZlbmRvcl9pZCkgKyAxXSA9IHsw fTsKLSAgICAgc3RhdGljIGNvbnN0IGNoYXIgdmVuZG9yX2lkX25hbWVbXSA9ICJ2ZW5kb3JfaWQi OwotQEAgLTkxNyw3ICs5MjEsOSBAQCBjbGFzcyBNaW5pZHVtcFdyaXRlciB7Ci0gCi0gICAgIC8v IHByb2Nlc3Nvcl9hcmNoaXRlY3R1cmUgc2hvdWxkIGFsd2F5cyBiZSBzZXQsIGRvIHRoaXMgZmly c3QKLSAgICAgc3lzX2luZm8tPnByb2Nlc3Nvcl9hcmNoaXRlY3R1cmUgPQotLSNpZiBkZWZpbmVk KF9fbWlwc19fKQotKyNpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rICAgICAgICBNRF9DUFVf QVJDSElURUNUVVJFX1BQQzY0OwotKyNlbGlmIGRlZmluZWQoX19taXBzX18pCi0gIyBpZiBfTUlQ U19TSU0gPT0gX0FCSU8zMgotICAgICAgICAgTURfQ1BVX0FSQ0hJVEVDVFVSRV9NSVBTOwotICMg ZWxpZiBfTUlQU19TSU0gPT0gX0FCSTY0Ci1AQCAtMTMzMyw3ICsxMzM5LDkgQEAgY2xhc3MgTWlu aWR1bXBXcml0ZXIgewotICAgY29uc3QgY2hhciogcGF0aF87ICAvLyBQYXRoIHRvIHRoZSBmaWxl IHdoZXJlIHRoZSBtaW5pZHVtIHNob3VsZCBiZSB3cml0dGVuLgotIAotICAgY29uc3QgdWNvbnRl eHRfdCogY29uc3QgdWNvbnRleHRfOyAgLy8gYWxzbyBmcm9tIHRoZSBzaWduYWwgaGFuZGxlcgot LSNpZiAhZGVmaW5lZChfX0FSTV9FQUJJX18pICYmICFkZWZpbmVkKF9fbWlwc19fKQotKyNpZiBk ZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rICBjb25zdCBnb29nbGVfYnJlYWtwYWQ6OnZzdGF0ZV90 KiBjb25zdCB2ZWN0b3Jfc3RhdGVfOwotKyNlbGlmICFkZWZpbmVkKF9fQVJNX0VBQklfXykgJiYg IWRlZmluZWQoX19taXBzX18pCi0gICBjb25zdCBnb29nbGVfYnJlYWtwYWQ6OmZwc3RhdGVfdCog Y29uc3QgZmxvYXRfc3RhdGVfOyAgLy8gZGl0dG8KLSAjZW5kaWYKLSAgIExpbnV4RHVtcGVyKiBk dW1wZXJfOwotZGlmZiAtLWdpdCBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9i cmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9taW5pZHVt cF93cml0ZXIuaCBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9i cmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9taW5pZHVtcF93cml0ZXIu aAotaW5kZXggZDFkYzMzMTIxLi42M2Q4MDU5MjIgMTAwNjQ0Ci0tLS0gYS9zcmMvM3JkcGFydHkv Y2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9t aW5pZHVtcF93cml0ZXIvbWluaWR1bXBfd3JpdGVyLmgKLSsrKyBiL3NyYy8zcmRwYXJ0eS9jaHJv bWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlk dW1wX3dyaXRlci9taW5pZHVtcF93cml0ZXIuaAotQEAgLTQ3LDYgKzQ3LDggQEAgY2xhc3MgRXhj ZXB0aW9uSGFuZGxlcjsKLSAKLSAjaWYgZGVmaW5lZChfX2FhcmNoNjRfXykKLSB0eXBlZGVmIHN0 cnVjdCBmcHNpbWRfY29udGV4dCBmcHN0YXRlX3Q7Ci0rI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2 NF9fKQotK3R5cGVkZWYgdnJyZWdzZXRfdCB2c3RhdGVfdDsKLSAjZWxpZiAhZGVmaW5lZChfX0FS TV9FQUJJX18pICYmICFkZWZpbmVkKF9fbWlwc19fKQotIHR5cGVkZWYgc3RydWN0IF9saWJjX2Zw c3RhdGUgZnBzdGF0ZV90OwotICNlbmRpZgotZGlmZiAtLWdpdCBhL3NyYy8zcmRwYXJ0eS9jaHJv bWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlk dW1wX3dyaXRlci9taW5pZHVtcF93cml0ZXJfdW5pdHRlc3QuY2MgYi9zcmMvM3JkcGFydHkvY2hy b21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5p ZHVtcF93cml0ZXIvbWluaWR1bXBfd3JpdGVyX3VuaXR0ZXN0LmNjCi1pbmRleCBjOTUxZTY5ZDgu LmUxZDZlNDBkNiAxMDA2NDQKLS0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0 eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9taW5p ZHVtcF93cml0ZXJfdW5pdHRlc3QuY2MKLSsrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGly ZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRl ci9taW5pZHVtcF93cml0ZXJfdW5pdHRlc3QuY2MKLUBAIC03MTQsNiArNzE0LDkgQEAgVEVTVChN aW5pZHVtcFdyaXRlclRlc3QsIEludmFsaWRTdGFja1BvaW50ZXIpIHsKLSAjZWxpZiBkZWZpbmVk KF9fbWlwc19fKQotICAgY29udGV4dC5jb250ZXh0LnVjX21jb250ZXh0LmdyZWdzW01EX0NPTlRF WFRfTUlQU19SRUdfU1BdID0KLSAgICAgICBpbnZhbGlkX3N0YWNrX3BvaW50ZXI7Ci0rI2VsaWYg ZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotKyAgY29udGV4dC5jb250ZXh0LnVjX21jb250ZXh0Lmdw X3JlZ3NbTURfQ09OVEVYVF9QUEM2NF9SRUdfU1BdID0KLSsgICAgICBpbnZhbGlkX3N0YWNrX3Bv aW50ZXI7Ci0gI2Vsc2UKLSAjIGVycm9yICJUaGlzIGNvZGUgaGFzIG5vdCBiZWVuIHBvcnRlZCB0 byB5b3VyIHBsYXRmb3JtIHlldC4iCi0gI2VuZGlmCi1kaWZmIC0tZ2l0IGEvc3JjLzNyZHBhcnR5 L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jb21tb24vbGludXgv bWVtb3J5X21hcHBlZF9maWxlLmNjIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5 L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jb21tb24vbGludXgvbWVtb3J5X21hcHBlZF9maWxlLmNj Ci1pbmRleCA0ZTkzODI2OWYuLmYwZmYxNWQ5NiAxMDA2NDQKLS0tLSBhL3NyYy8zcmRwYXJ0eS9j aHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY29tbW9uL2xpbnV4L21l bW9yeV9tYXBwZWRfZmlsZS5jYwotKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3Bh cnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jb21tb24vbGludXgvbWVtb3J5X21hcHBlZF9maWxl LmNjCi1AQCAtNjUsOCArNjUsNyBAQCBib29sIE1lbW9yeU1hcHBlZEZpbGU6Ok1hcChjb25zdCBj aGFyKiBwYXRoLCBzaXplX3Qgb2Zmc2V0KSB7Ci0gICB9Ci0gCi0gI2lmIGRlZmluZWQoX194ODZf NjRfXykgfHwgZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgXAotLSAgIChkZWZpbmVkKF9fbWlwc19f KSAmJiBfTUlQU19TSU0gPT0gX0FCSTY0KQotLQotKyAgIChkZWZpbmVkKF9fbWlwc19fKSAmJiBf TUlQU19TSU0gPT0gX0FCSTY0KSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICBzdHJ1Y3Qg a2VybmVsX3N0YXQgc3Q7Ci0gICBpZiAoc3lzX2ZzdGF0KGZkLCAmc3QpID09IC0xIHx8IHN0LnN0 X3NpemUgPCAwKSB7Ci0gI2Vsc2UKLWRpZmYgLS1naXQgYS9zcmMvM3JkcGFydHkvY2hyb21pdW0v dGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NvbW1vbi9saW51eC9tZW1vcnlfbWFw cGVkX2ZpbGVfdW5pdHRlc3QuY2MgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkv YnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NvbW1vbi9saW51eC9tZW1vcnlfbWFwcGVkX2ZpbGVfdW5p dHRlc3QuY2MKLWluZGV4IGZhZDU5ZjQwYy4uNjE2NDk2ZDY3IDEwMDY0NAotLS0tIGEvc3JjLzNy ZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jb21tb24v bGludXgvbWVtb3J5X21hcHBlZF9maWxlX3VuaXR0ZXN0LmNjCi0rKysgYi9zcmMvM3JkcGFydHkv Y2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NvbW1vbi9saW51eC9t ZW1vcnlfbWFwcGVkX2ZpbGVfdW5pdHRlc3QuY2MKLUBAIC0xNzYsOSArMTc2LDEwIEBAIFRFU1Rf RihNZW1vcnlNYXBwZWRGaWxlVGVzdCwgUmVtYXBBZnRlck1hcCkgewotIFRFU1RfRihNZW1vcnlN YXBwZWRGaWxlVGVzdCwgTWFwV2l0aE9mZnNldCkgewotICAgLy8gUHV0IG1vcmUgZGF0YSBpbiB0 aGUgdGVzdCBmaWxlIHRoaXMgdGltZS4gT2Zmc2V0cyBjYW4gb25seSBiZQotICAgLy8gZG9uZSBv biBwYWdlIGJvdW5kYXJpZXMsIHNvIHdlIG5lZWQgYSB0d28gcGFnZSBmaWxlIHRvIHRlc3QgdGhp cy4KLS0gIGNvbnN0IGludCBwYWdlX3NpemUgPSA0MDk2OwotLSAgY2hhciBkYXRhMVsyICogcGFn ZV9zaXplXTsKLS0gIHNpemVfdCBkYXRhMV9zaXplID0gc2l6ZW9mKGRhdGExKTsKLSsgIGNvbnN0 IGludCBwYWdlX3NpemUgPSBnZXRwYWdlc2l6ZSgpOwotKyAgY2hhciAqZGF0YTEgPSBzdGF0aWNf Y2FzdDxjaGFyKj4obWFsbG9jKDIgKiBwYWdlX3NpemUpKTsKLSsgIEVYUEVDVF9UUlVFKGRhdGEx ICE9IE5VTEwpOwotKyAgc2l6ZV90IGRhdGExX3NpemUgPSAoMiAqIHBhZ2Vfc2l6ZSk7Ci0gICBm b3IgKHNpemVfdCBpID0gMDsgaSA8IGRhdGExX3NpemU7ICsraSkgewotICAgICBkYXRhMVtpXSA9 IGkgJiAweDdmOwotICAgfQotZGlmZiAtLWdpdCBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGly ZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY29tbW9uL21lbW9yeV9hbGxvY2F0b3JfdW5p dHRlc3QuY2MgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJl YWtwYWQvc3JjL2NvbW1vbi9tZW1vcnlfYWxsb2NhdG9yX3VuaXR0ZXN0LmNjCi1pbmRleCA0M2M4 NjMxNGMuLjI3MzI1YjgxMyAxMDA2NDQKLS0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGly ZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY29tbW9uL21lbW9yeV9hbGxvY2F0b3JfdW5p dHRlc3QuY2MKLSsrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3Bh ZC9icmVha3BhZC9zcmMvY29tbW9uL21lbW9yeV9hbGxvY2F0b3JfdW5pdHRlc3QuY2MKLUBAIC01 Nyw4ICs1Nyw5IEBAIFRFU1QoUGFnZUFsbG9jYXRvclRlc3QsIExhcmdlT2JqZWN0KSB7Ci0gCi0g ICBFWFBFQ1RfRVEoMFUsIGFsbG9jYXRvci5wYWdlc19hbGxvY2F0ZWQoKSk7Ci0gICB1aW50OF90 ICpwID0gcmVpbnRlcnByZXRfY2FzdDx1aW50OF90Kj4oYWxsb2NhdG9yLkFsbG9jKDEwMDAwKSk7 Ci0rICB1aW50NjRfdCBleHBlY3RlZF9wYWdlcyA9IDEgKyAoKDEwMDAwIC0gMSkgLyBnZXRwYWdl c2l6ZSgpKTsKLSAgIEFTU0VSVF9GQUxTRShwID09IE5VTEwpOwotLSAgRVhQRUNUX0VRKDNVLCBh bGxvY2F0b3IucGFnZXNfYWxsb2NhdGVkKCkpOwotKyAgRVhQRUNUX0VRKGV4cGVjdGVkX3BhZ2Vz LCBhbGxvY2F0b3IucGFnZXNfYWxsb2NhdGVkKCkpOwotICAgZm9yICh1bnNpZ25lZCBpID0gMTsg aSA8IDEwOyArK2kpIHsKLSAgICAgdWludDhfdCAqcCA9IHJlaW50ZXJwcmV0X2Nhc3Q8dWludDhf dCo+KGFsbG9jYXRvci5BbGxvYyhpKSk7Ci0gICAgIEFTU0VSVF9GQUxTRShwID09IE5VTEwpOwot ZGlmZiAtLWdpdCBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9i cmVha3BhZC9zcmMvcHJvY2Vzc29yL2V4cGxvaXRhYmlsaXR5X2xpbnV4LmNjIGIvc3JjLzNyZHBh cnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9wcm9jZXNzb3Iv ZXhwbG9pdGFiaWxpdHlfbGludXguY2MKLWluZGV4IGNjYzlmMTQ1OS4uZGViYWVkNGQ2IDEwMDY0 NAotLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFr cGFkL3NyYy9wcm9jZXNzb3IvZXhwbG9pdGFiaWxpdHlfbGludXguY2MKLSsrKyBiL3NyYy8zcmRw YXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvcHJvY2Vzc29y L2V4cGxvaXRhYmlsaXR5X2xpbnV4LmNjCi1AQCAtMjAyLDEyICsyMDIsMTQgQEAgYm9vbCBFeHBs b2l0YWJpbGl0eUxpbnV4OjpFbmRlZE9uSWxsZWdhbFdyaXRlKHVpbnQ2NF90IGluc3RydWN0aW9u X3B0cikgewotICAgLy8gQ2hlY2sgYXJjaGl0ZWN0dXJlIGFuZCBzZXQgYXJjaGl0ZWN0dXJlIHZh cmlhYmxlIHRvIGNvcnJlc3BvbmRpbmcgZmxhZwotICAgLy8gaW4gb2JqZHVtcC4KLSAgIHN3aXRj aCAoY29udGV4dC0+R2V0Q29udGV4dENQVSgpKSB7Ci0rI2lmIGRlZmluZWQoX19pMzg2KSB8fCBk ZWZpbmVkKF9feDg2XzY0KQotICAgICBjYXNlIE1EX0NPTlRFWFRfWDg2OgotICAgICAgIGFyY2hp dGVjdHVyZSA9ICJpMzg2IjsKLSAgICAgICBicmVhazsKLSAgICAgY2FzZSBNRF9DT05URVhUX0FN RDY0OgotICAgICAgIGFyY2hpdGVjdHVyZSA9ICJpMzg2Ong4Ni02NCI7Ci0gICAgICAgYnJlYWs7 Ci0rI2VuZGlmCi0gICAgIGRlZmF1bHQ6Ci0gICAgICAgLy8gVW5zdXBwb3J0ZWQgYXJjaGl0ZWN0 dXJlLiBOb3RlIHRoYXQgQVJNIGFyY2hpdGVjdHVyZXMgYXJlIG5vdAotICAgICAgIC8vIHN1cHBv cnRlZCBiZWNhdXNlIG9iamR1bXAgZG9lcyBub3Qgc3VwcG9ydCBBUk0uCi1kaWZmIC0tZ2l0IGEv c3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9w cm9jZXNzb3IvZXhwbG9pdGFiaWxpdHlfdW5pdHRlc3QuY2MgYi9zcmMvM3JkcGFydHkvY2hyb21p dW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL3Byb2Nlc3Nvci9leHBsb2l0YWJp bGl0eV91bml0dGVzdC5jYwotaW5kZXggNTI4ZWU1ZjIxLi43Mjc2NGQ2YzEgMTAwNjQ0Ci0tLS0g YS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3Jj L3Byb2Nlc3Nvci9leHBsb2l0YWJpbGl0eV91bml0dGVzdC5jYwotKysrIGIvc3JjLzNyZHBhcnR5 L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9wcm9jZXNzb3IvZXhw bG9pdGFiaWxpdHlfdW5pdHRlc3QuY2MKLUBAIC0xMDQsNiArMTA0LDggQEAgRXhwbG9pdGFiaWxp dHlGb3IoY29uc3Qgc3RyaW5nJiBmaWxlbmFtZSkgewotIH0KLSAKLSBURVNUKEV4cGxvaXRhYmls aXR5VGVzdCwgVGVzdFdpbmRvd3NFbmdpbmUpIHsKLSsvLyBUaGUgZm9sbG93aW5nIHRlc3RzIGFy ZSBvbmx5IGV4ZWN1dGFibGUgb24gYW4geDg2LWNsYXNzIGxpbnV4IG1hY2hpbmUuCi0rI2lmICFk ZWZpbmVkKF9XSU4zMikgJiYgKGRlZmluZWQoX19pMzg2KSB8fCBkZWZpbmVkKF9feDg2XzY0KSkK LSAgIEFTU0VSVF9FUShnb29nbGVfYnJlYWtwYWQ6OkVYUExPSVRBQklMSVRZX0hJR0gsCi0gICAg ICAgICAgICAgRXhwbG9pdGFiaWxpdHlGb3IoImFzY2lpX3JlYWRfYXYuZG1wIikpOwotICAgQVNT RVJUX0VRKGdvb2dsZV9icmVha3BhZDo6RVhQTE9JVEFCSUxJVFlfSElHSCwKLUBAIC0xMzYsOSAr MTM4LDEyIEBAIFRFU1QoRXhwbG9pdGFiaWxpdHlUZXN0LCBUZXN0V2luZG93c0VuZ2luZSkgewot ICAgICAgICAgICAgIEV4cGxvaXRhYmlsaXR5Rm9yKCJyZWFkX2F2X2Nsb2JiZXJfd3JpdGUuZG1w IikpOwotICAgQVNTRVJUX0VRKGdvb2dsZV9icmVha3BhZDo6RVhQTE9JVEFCSUxJVFlfTE9XLAot ICAgICAgICAgICAgIEV4cGxvaXRhYmlsaXR5Rm9yKCJyZWFkX2F2X2NvbmRpdGlvbmFsLmRtcCIp KTsKLSsjZW5kaWYKLSB9Ci0gCi0gVEVTVChFeHBsb2l0YWJpbGl0eVRlc3QsIFRlc3RMaW51eEVu Z2luZSkgewotKy8vIFRoZSBmb2xsb3dpbmcgdGVzdHMgYXJlIG9ubHkgZXhlY3V0YWJsZSBvbiBh biB4ODYtY2xhc3MgbGludXggbWFjaGluZS4KLSsjaWYgZGVmaW5lZChfX2kzODYpIHx8IGRlZmlu ZWQoX194ODZfNjQpCi0gICBBU1NFUlRfRVEoZ29vZ2xlX2JyZWFrcGFkOjpFWFBMT0lUQUJJTElU WV9JTlRFUkVTVElORywKLSAgICAgICAgICAgICBFeHBsb2l0YWJpbGl0eUZvcigibGludXhfbnVs bF9yZWFkX2F2LmRtcCIpKTsKLSAgIEFTU0VSVF9FUShnb29nbGVfYnJlYWtwYWQ6OkVYUExPSVRB QklMSVRZX0hJR0gsCi1AQCAtMTcxLDcgKzE3Niw4IEBAIFRFU1QoRXhwbG9pdGFiaWxpdHlUZXN0 LCBUZXN0TGludXhFbmdpbmUpIHsKLSAgICAgICAgICAgICBFeHBsb2l0YWJpbGl0eUZvcigibGlu dXhfZXhlY3V0YWJsZV9oZWFwLmRtcCIpKTsKLSAgIEFTU0VSVF9FUShnb29nbGVfYnJlYWtwYWQ6 OkVYUExPSVRBQklMSVRZX0hJR0gsCi0gICAgICAgICAgICAgRXhwbG9pdGFiaWxpdHlGb3IoImxp bnV4X2ptcF90b19tb2R1bGVfbm90X2V4ZV9yZWdpb24uZG1wIikpOwotLSNpZm5kZWYgX1dJTjMy Ci0rI2VuZGlmCi0rI2lmICFkZWZpbmVkKF9XSU4zMikgJiYgKGRlZmluZWQoX19pMzg2KSB8fCBk ZWZpbmVkKF9feDg2XzY0KSkKLSAgIEFTU0VSVF9FUShnb29nbGVfYnJlYWtwYWQ6OkVYUExPSVRB QklMSVRZX0hJR0gsCi0gICAgICAgICAgICAgRXhwbG9pdGFiaWxpdHlGb3IoImxpbnV4X3dyaXRl X3RvX25vbndyaXRhYmxlX21vZHVsZS5kbXAiKSk7Ci0gICBBU1NFUlRfRVEoZ29vZ2xlX2JyZWFr cGFkOjpFWFBMT0lUQUJJTElUWV9ISUdILAotQEAgLTE4MiwxMCArMTg4LDEwIEBAIFRFU1QoRXhw bG9pdGFiaWxpdHlUZXN0LCBUZXN0TGludXhFbmdpbmUpIHsKLSAgICAgICAgICAgICBFeHBsb2l0 YWJpbGl0eUZvcigibGludXhfd3JpdGVfdG9fb3V0c2lkZV9tb2R1bGVfdmlhX21hdGguZG1wIikp OwotICAgQVNTRVJUX0VRKGdvb2dsZV9icmVha3BhZDo6RVhQTE9JVEFCSUxJVFlfSU5URVJFU1RJ TkcsCi0gICAgICAgICAgICAgRXhwbG9pdGFiaWxpdHlGb3IoImxpbnV4X3dyaXRlX3RvX3VuZGVy XzRrLmRtcCIpKTsKLS0jZW5kaWYgIC8vIF9XSU4zMgotKyNlbmRpZiAgLy8gIWRlZmluZWQoX1dJ TjMyKSAmJiAoIWRlZmluZWQoX19pMzg2KSAmJiAhZGVmaW5lZChfX3g4Nl82NCkpCi0gfQotIAot LSNpZm5kZWYgX1dJTjMyCi0rI2lmICFkZWZpbmVkKF9XSU4zMikgJiYgKGRlZmluZWQoX19pMzg2 KSB8fCBkZWZpbmVkKF9feDg2XzY0KSkKLSBURVNUKEV4cGxvaXRhYmlsaXR5TGludXhVdGlsc1Rl c3QsIERpc2Fzc2VtYmxlQnl0ZXNUZXN0KSB7Ci0gICBBU1NFUlRfRkFMU0UoRXhwbG9pdGFiaWxp dHlMaW51eFRlc3Q6OkRpc2Fzc2VtYmxlQnl0ZXMoIiIsIE5VTEwsIDUsIE5VTEwpKTsKLSAgIHVp bnQ4X3QgYnl0ZXNbNl0gPSB7MHhjNywgMHgwLCAweDUsIDB4MCwgMHgwLCAweDB9OwotQEAgLTMw MSw2ICszMDcsNyBAQCBURVNUKEV4cGxvaXRhYmlsaXR5TGludXhVdGlsc1Rlc3QsIENhbGN1bGF0 ZUFkZHJlc3NUZXN0KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgY29udGV4dCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmd3JpdGVfYWRkcmVzcykpOwotIH0KLS0jZW5k aWYgIC8vIF9XSU4zMgotKyNlbmRpZiAgLy8gIWRlZmluZWQoX1dJTjMyKSAmJiAoZGVmaW5lZChf X2kzODYpIHx8IGRlZmluZWQoX194ODZfNjQpKQotKwotIAotIH0gIC8vIG5hbWVzcGFjZQotZGlm ZiAtLWdpdCBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVh a3BhZC9zcmMvdG9vbHMvbGludXgvbWQyY29yZS9taW5pZHVtcC0yLWNvcmUuY2MgYi9zcmMvM3Jk cGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL3Rvb2xzL2xp bnV4L21kMmNvcmUvbWluaWR1bXAtMi1jb3JlLmNjCi1pbmRleCA5NDE1ODZlOWYuLjQ5Y2RjM2Zj MiAxMDA2NDQKLS0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3Bh ZC9icmVha3BhZC9zcmMvdG9vbHMvbGludXgvbWQyY29yZS9taW5pZHVtcC0yLWNvcmUuY2MKLSsr KyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9z cmMvdG9vbHMvbGludXgvbWQyY29yZS9taW5pZHVtcC0yLWNvcmUuY2MKLUBAIC03Niw2ICs3Niw4 IEBACi0gICAjZGVmaW5lIEVMRl9BUkNIICBFTV9NSVBTCi0gI2VsaWYgZGVmaW5lZChfX2FhcmNo NjRfXykKLSAgICNkZWZpbmUgRUxGX0FSQ0ggIEVNX0FBUkNINjQKLSsjZWxpZiBkZWZpbmVkKF9f cG93ZXJwYzY0X18pCi0rICAjZGVmaW5lIEVMRl9BUkNIICBFTV9QUEM2NAotICNlbmRpZgotIAot ICNpZiBkZWZpbmVkKF9fYXJtX18pCi1AQCAtODYsNiArODgsOCBAQCB0eXBlZGVmIHVzZXJfcmVn cyB1c2VyX3JlZ3Nfc3RydWN0OwotICNlbGlmIGRlZmluZWQgKF9fbWlwc19fKQotIC8vIFRoaXMg ZmlsZS1sb2NhbCB0eXBlZGVmIHNpbXBsaWZpZXMgdGhlIHNvdXJjZSBjb2RlLgotIHR5cGVkZWYg Z3JlZ3NldF90IHVzZXJfcmVnc19zdHJ1Y3Q7Ci0rI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9f KQotK3R5cGVkZWYgc3RydWN0IHB0X3JlZ3MgdXNlcl9yZWdzX3N0cnVjdDsKLSAjZW5kaWYKLSAK LSB1c2luZyBnb29nbGVfYnJlYWtwYWQ6Ok1EVHlwZUhlbHBlcjsKLUBAIC0zMjAsNiArMzI0LDkg QEAgc3RydWN0IENyYXNoZWRQcm9jZXNzIHsKLSAjZW5kaWYKLSAjaWYgZGVmaW5lZChfX2FhcmNo NjRfXykKLSAgICAgdXNlcl9mcHNpbWRfc3RydWN0IGZwcmVnczsKLSsjZW5kaWYKLSsjaWYgZGVm aW5lZChfX3Bvd2VycGM2NF9fKQotKyAgICBtY29udGV4dF90IG1jb250ZXh0OwotICNlbmRpZgot ICAgICB1aW50cHRyX3Qgc3RhY2tfYWRkcjsKLSAgICAgY29uc3QgdWludDhfdCogc3RhY2s7Ci1A QCAtNTM0LDYgKzU0MSwzOCBAQCBQYXJzZVRocmVhZFJlZ2lzdGVycyhDcmFzaGVkUHJvY2Vzczo6 VGhyZWFkKiB0aHJlYWQsCi0gICB0aHJlYWQtPm1jb250ZXh0LmZwY19laXIgPSByYXdyZWdzLT5m bG9hdF9zYXZlLmZpcjsKLSAjZW5kaWYKLSB9Ci0rI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9f KQotK3N0YXRpYyB2b2lkCi0rUGFyc2VUaHJlYWRSZWdpc3RlcnMoQ3Jhc2hlZFByb2Nlc3M6OlRo cmVhZCogdGhyZWFkLAotKyAgICAgICAgICAgICAgICAgICAgIGNvbnN0IE1pbmlkdW1wTWVtb3J5 UmFuZ2UmIHJhbmdlKSB7Ci0rICBjb25zdCBNRFJhd0NvbnRleHRQUEM2NCogcmF3cmVncyA9IHJh bmdlLkdldERhdGE8TURSYXdDb250ZXh0UFBDNjQ+KDApOwotKwotKyAgZm9yIChpbnQgaSA9IDA7 IGkgPCBNRF9DT05URVhUX1BQQzY0X0dQUl9DT1VOVDsgaSsrKQotKyAgICB0aHJlYWQtPm1jb250 ZXh0LmdwX3JlZ3NbaV0gPSByYXdyZWdzLT5ncHJbaV07Ci0rCi0rICB0aHJlYWQtPm1jb250ZXh0 LmdwX3JlZ3NbUFRfTE5LXSA9IHJhd3JlZ3MtPmxyOwotKyAgdGhyZWFkLT5tY29udGV4dC5ncF9y ZWdzW1BUX05JUF0gPSByYXdyZWdzLT5zcnIwOwotKyAgdGhyZWFkLT5tY29udGV4dC5ncF9yZWdz W1BUX01TUl0gPSByYXdyZWdzLT5zcnIxOwotKyAgdGhyZWFkLT5tY29udGV4dC5ncF9yZWdzW1BU X0NDUl0gPSByYXdyZWdzLT5jcjsKLSsgIHRocmVhZC0+bWNvbnRleHQuZ3BfcmVnc1tQVF9YRVJd ID0gcmF3cmVncy0+eGVyOwotKyAgdGhyZWFkLT5tY29udGV4dC5ncF9yZWdzW1BUX0NUUl0gPSBy YXdyZWdzLT5jdHI7Ci0rICB0aHJlYWQtPm1jb250ZXh0LnZfcmVncy0+dnJzYXZlID0gcmF3cmVn cy0+dnJzYXZlOwotKwotKyAgZm9yIChpbnQgaSA9IDA7IGkgPCBNRF9GTE9BVElOR1NBVkVBUkVB X1BQQ19GUFJfQ09VTlQ7IGkrKykKLSsgICAgICB0aHJlYWQtPm1jb250ZXh0LmZwX3JlZ3NbaV0g PSByYXdyZWdzLT5mbG9hdF9zYXZlLmZwcmVnc1tpXTsKLSsKLSsgIHRocmVhZC0+bWNvbnRleHQu ZnBfcmVnc1tORlBSRUctMV0gPSByYXdyZWdzLT5mbG9hdF9zYXZlLmZwc2NyOwotKwotKyAgZm9y IChpbnQgaSA9IDA7IGkgPCBNRF9WRUNUT1JTQVZFQVJFQV9QUENfVlJfQ09VTlQ7IGkrKykgewot KyAgICAgIHRocmVhZC0+bWNvbnRleHQudl9yZWdzLT52cnJlZ3NbaV1bMF0gPSByYXdyZWdzLT52 ZWN0b3Jfc2F2ZS5zYXZlX3ZyW2ldLmhpZ2ggPj4gMzI7Ci0rICAgICAgdGhyZWFkLT5tY29udGV4 dC52X3JlZ3MtPnZycmVnc1tpXVsxXSA9IHJhd3JlZ3MtPnZlY3Rvcl9zYXZlLnNhdmVfdnJbaV0u aGlnaDsKLSsgICAgICB0aHJlYWQtPm1jb250ZXh0LnZfcmVncy0+dnJyZWdzW2ldWzJdID0gcmF3 cmVncy0+dmVjdG9yX3NhdmUuc2F2ZV92cltpXS5sb3cgPj4gMzI7Ci0rICAgICAgdGhyZWFkLT5t Y29udGV4dC52X3JlZ3MtPnZycmVnc1tpXVszXSA9IHJhd3JlZ3MtPnZlY3Rvcl9zYXZlLnNhdmVf dnJbaV0ubG93OwotKyAgfQotKwotKyAgdGhyZWFkLT5tY29udGV4dC52X3JlZ3MtPnZzY3IudnNj cl93b3JkID0gcmF3cmVncy0+dmVjdG9yX3NhdmUuc2F2ZV92c2NyLmxvdyAmIDB4RkZGRkZGRkY7 Ci0rfQotKwotICNlbHNlCi0gI2Vycm9yICJUaGlzIGNvZGUgaGFzIG5vdCBiZWVuIHBvcnRlZCB0 byB5b3VyIHBsYXRmb3JtIHlldCIKLSAjZW5kaWYKLUBAIC02MjIsNiArNjYxLDEyIEBAIFBhcnNl U3lzdGVtSW5mbyhjb25zdCBPcHRpb25zJiBvcHRpb25zLCBDcmFzaGVkUHJvY2VzcyogY3Jhc2hp bmZvLAotICMgZWxzZQotICMgIGVycm9yICJUaGlzIG1pcHMgQUJJIGlzIGN1cnJlbnRseSBub3Qg c3VwcG9ydGVkIChuMzIpIgotICMgZW5kaWYKLSsjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18p Ci0rICBpZiAoc3lzaW5mby0+cHJvY2Vzc29yX2FyY2hpdGVjdHVyZSAhPSBNRF9DUFVfQVJDSElU RUNUVVJFX1BQQzY0KSB7Ci0rICAgIGZwcmludGYoc3RkZXJyLAotKyAgICAgICAgICAgICJUaGlz IHZlcnNpb24gb2YgbWluaWR1bXAtMi1jb3JlIG9ubHkgc3VwcG9ydHMgUFBDNjQuXG4iKTsKLSsg ICAgZXhpdCgxKTsKLSsgIH0KLSAjZWxzZQotICNlcnJvciAiVGhpcyBjb2RlIGhhcyBub3QgYmVl biBwb3J0ZWQgdG8geW91ciBwbGF0Zm9ybSB5ZXQiCi0gI2VuZGlmCi1kaWZmIC0tZ2l0IGEvc3Jj LzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL0NPTlRSSUJV VE9SUyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBh ZC9DT05UUklCVVRPUlMKLWluZGV4IDg3MjRiN2YzMi4uOGUyOTQyNGVmIDEwMDY0NAotLS0tIGEv c3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL0NPTlRS SUJVVE9SUwotKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFk L2NyYXNocGFkL0NPTlRSSUJVVE9SUwotQEAgLTEzLDMgKzEzLDQgQEAgTWFyayBNZW50b3ZhaSA8 bWFya0BjaHJvbWl1bS5vcmc+Ci0gUm9iZXJ0IFNlc2VrIDxyc2VzZWtAY2hyb21pdW0ub3JnPgot IFNjb3R0IEdyYWhhbSA8c2NvdHRtZ0BjaHJvbWl1bS5vcmc+Ci0gSm9zaHVhIFBlcmF6YSA8anBl cmF6YUBjaHJvbWl1bS5vcmc+Ci0rU2hhd24gQW5hc3Rhc2lvIDxzaGF3bkBhbmFzdGFzLmlvPgot ZGlmZiAtLWdpdCBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9j cmFzaHBhZC9jb21wYXQvbGludXgvc3lzL3VzZXIuaCBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90 aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9jb21wYXQvbGludXgvc3lzL3VzZXIuaAotaW5k ZXggNmVkNzdhOThlLi4xZmQ4MzQ2OWEgMTAwNjQ0Ci0tLS0gYS9zcmMvM3JkcGFydHkvY2hyb21p dW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvY29tcGF0L2xpbnV4L3N5cy91c2VyLmgK LSsrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBh ZC9jb21wYXQvbGludXgvc3lzL3VzZXIuaAotQEAgLTE1LDYgKzE1LDcgQEAKLSAjaWZuZGVmIENS QVNIUEFEX0NPTVBBVF9MSU5VWF9TWVNfVVNFUl9IXwotICNkZWZpbmUgQ1JBU0hQQURfQ09NUEFU X0xJTlVYX1NZU19VU0VSX0hfCi0gCi0rI2luY2x1ZGUgPGNzdGRkZWY+Ci0gI2luY2x1ZGVfbmV4 dCA8c3lzL3VzZXIuaD4KLSAKLSAjaW5jbHVkZSA8ZmVhdHVyZXMuaD4KLWRpZmYgLS1naXQgYS9z cmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvbWluaWR1 bXAvbWluaWR1bXBfY29udGV4dC5oIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5 L2NyYXNocGFkL2NyYXNocGFkL21pbmlkdW1wL21pbmlkdW1wX2NvbnRleHQuaAotaW5kZXggM2Ez ZTYwM2NiLi4zMTE4ZDllOWYgMTAwNjQ0Ci0tLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhp cmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvbWluaWR1bXAvbWluaWR1bXBfY29udGV4dC5oCi0r KysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQv bWluaWR1bXAvbWluaWR1bXBfY29udGV4dC5oCi1AQCAtNTkyLDYgKzU5Miw3MCBAQCBzdHJ1Y3Qg TWluaWR1bXBDb250ZXh0TUlQUzY0IHsKLSAgIHVpbnQ2NF90IGZpcjsKLSB9OwotIAotKy8vISBc YnJpZWYgcHBjNjQtc3BlY2lmaWMgZmxhZ3MgZm9yIE1pbmlkdW1wUFBDNjQ6OmNvbnRleHRfZmxh Z3MKLSsvLyEgQmFzZWQgb24gbWluaWR1bXBfY3B1X3BwYzY0LmggZnJvbSBicmVha3BhZAotK2Vu dW0gTWluaWR1bXBDb250ZXh0UFBDNjRGbGFncyA6IHVpbnQzMl90IHsKLSsgIC8vISBcYnJpZWYg SWRlbnRpZmllcyB0aGUgY29udGV4dCBhcyBQUEM2NC4KLSsgIGtNaW5pZHVtcENvbnRleHRQUEM2 NCA9IDB4MDEwMDAwMDAsCi0rCi0rICAvLyEgXGJyaWVmIEluZGljYXRlcyB0aGUgdmFsaWRpdHkg b2YgZ2VuZXJhbCBwdXJwb3NlIHJlZ2lzdGVycy4KLSsgIC8vIQotKyAgLy8hIFJlZ2lzdGVycyBg cjBgLWByMzFgLCBgbmlwYCwgYG1zcmAsIGBscmAsIGV0Yy4gYXJlIHZhbGlkLgotKyAga01pbmlk dW1wQ29udGV4dFBQQzY0QmFzZSA9IGtNaW5pZHVtcENvbnRleHRQUEM2NCB8IDB4MDAwMDAwMDEs Ci0rCi0rICAvLyEgXGJyaWVmIEluZGljYXRlcyB0aGUgdmFsaWRpdHkgb2YgZmxvYXRpbmcgcG9p bnQgcmVnaXN0ZXJzLgotKyAgLy8hCi0rICAvLyEgUmVnaXN0ZXJzIGBmcDBgLWBmcDMxYCwgYGZw c2NyYCBhcmUgdmFsaWQuCi0rICBrTWluaWR1bXBDb250ZXh0UFBDNjRGbG9hdGluZyA9IGtNaW5p ZHVtcENvbnRleHRQUEM2NCB8IDB4MDAwMDAwMDgsCi0rCi0rICAvLyEgXGJyaWVmIEluZGljYXRl cyB0aGUgdmFsaWRpdHkgb2YgQWx0aXZlYy9WTVggcmVnaXN0ZXJzLgotKyAgLy8hCi0rICAvLyEg UmVnaXN0ZXJzIGB2MGAtYHYzMWAsIGB2c2NyYCwgYHZyc2F2ZWAuCi0rICBrTWluaWR1bXBDb250 ZXh0UFBDNjRWZWN0b3IgPSBrTWluaWR1bXBDb250ZXh0UFBDNjQgfCAweDAwMDAwMDIwLAotKwot KyAgLy8hIFxicmllZiBJbmRpY2F0ZXMgdGhlIHZhbGlkaXR5IG9mIGFsbCByZWdpc3RlcnMKLSsg IGtNaW5pZHVtcENvbnRleHRQUEM2NEFsbCA9IGtNaW5pZHVtcENvbnRleHRQUEM2NEJhc2UgICAg IHwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtNaW5pZHVtcENvbnRleHRQUEM2NEZs b2F0aW5nIHwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtNaW5pZHVtcENvbnRleHRQ UEM2NFZlY3RvcgotK307Ci0rCi0rLy8hIFxicmllZiBBIFBQQzY0IENQVSBjb250ZXh0IGNhcnJp ZWQgaW4gYSBtaW5pZHVtcCBmaWxlLgotKy8vISBCYXNlZCBvbiBtaW5pZHVtcF9jcHVfcHBjNjQu aCBmcm9tIGJyZWFrcGFkLgotK3N0cnVjdCBNaW5pZHVtcENvbnRleHRQUEM2NCB7Ci0rICB1aW50 NjRfdCBjb250ZXh0X2ZsYWdzOwotKwotKyAgLy8hIFxicmllZiBHZW5lcmFsIHB1cnBvc2UgcmVn aXN0ZXJzLgotKyAgdWludDY0X3QgbmlwOwotKyAgdWludDY0X3QgbXNyOwotKyAgdWludDY0X3Qg cmVnc1szMl07Ci0rICB1aW50NjRfdCBjY3I7Ci0rICB1aW50NjRfdCB4ZXI7Ci0rICB1aW50NjRf dCBsbms7Ci0rICB1aW50NjRfdCBjdHI7Ci0rCi0rICAvLyEgXGJyaWVmIEZsb2F0aW5nIHBvaW50 IHJlZ2lzdGVycy4KLSsgIGRvdWJsZSBmcHJlZ3NbMzJdOwotKwotKyAgLy8hIFxicmllZiBGUFUg c3RhdHVzIHJlZ2lzdGVyLgotKyAgZG91YmxlIGZwc2NyOwotKwotKyAgLy8hIFxicmllZiBBbHRp dmVjL1ZNWCB2ZWN0b3IgcmVnaXN0ZXJzLgotKyAgc3RydWN0IHsKLSsgICAgICAvLyEgXGJyaWVm IFZlY3RvciByZWdpc3RlcnMgYXJlIDEyOGJpdHMuCi0rICAgICAgdWludDEyOF9zdHJ1Y3Qgc2F2 ZV92clszMl07Ci0rICAgICAgdWludDEyOF9zdHJ1Y3Qgc2F2ZV92c2NyOwotKwotKyAgICAgIC8v ISBcYnJpZWYgUGFkZGluZyBpbmNsdWRlZCBmb3IgYnJlYWtwYWQgY29tcGF0aWJpbHRpeS4KLSsg ICAgICB1aW50MzJfdCBzYXZlX3BhZDVbNF07Ci0rCi0rICAgICAgLy8hIFxicmllZiBWUlNBVkUg cmVnaXN0ZXIuCi0rICAgICAgdWludDMyX3Qgc2F2ZV92cnNhdmU7Ci0rCi0rICAgICAgLy8hIFxi cmllZiBQYWRkaW5nIGluY2x1ZGVkIGZvciBicmVha3BhZCBjb21wYXRpYmlsdGl5LgotKyAgICAg IHVpbnQzMl90IHNhdmVfcGFkNls3XTsKLSsgIH0gdnJlZ3M7Ci0rfTsKLSsKLSB9ICAvLyBuYW1l c3BhY2UgY3Jhc2hwYWQKLSAKLSAjZW5kaWYgIC8vIENSQVNIUEFEX01JTklEVU1QX01JTklEVU1Q X0NPTlRFWFRfSF8KLWRpZmYgLS1naXQgYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFy dHkvY3Jhc2hwYWQvY3Jhc2hwYWQvbWluaWR1bXAvbWluaWR1bXBfY29udGV4dF93cml0ZXIuY2Mg Yi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvbWlu aWR1bXAvbWluaWR1bXBfY29udGV4dF93cml0ZXIuY2MKLWluZGV4IGQ3ZTUzYTQ5My4uZDg5ZWI5 ZTAxIDEwMDY0NAotLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNo cGFkL2NyYXNocGFkL21pbmlkdW1wL21pbmlkdW1wX2NvbnRleHRfd3JpdGVyLmNjCi0rKysgYi9z cmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvbWluaWR1 bXAvbWluaWR1bXBfY29udGV4dF93cml0ZXIuY2MKLUBAIC0xMDEsNiArMTAxLDEzIEBAIE1pbmlk dW1wQ29udGV4dFdyaXRlcjo6Q3JlYXRlRnJvbVNuYXBzaG90KGNvbnN0IENQVUNvbnRleHQqIGNv bnRleHRfc25hcHNob3QpIHsKLSAgICAgICBicmVhazsKLSAgICAgfQotIAotKyAgICBjYXNlIGtD UFVBcmNoaXRlY3R1cmVQUEM2NDogewotKyAgICAgIGNvbnRleHQgPSBzdGQ6Om1ha2VfdW5pcXVl PE1pbmlkdW1wQ29udGV4dFBQQzY0V3JpdGVyPigpOwotKyAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8 TWluaWR1bXBDb250ZXh0UFBDNjRXcml0ZXIqPihjb250ZXh0LmdldCgpKQotKyAgICAgICAgICAt PkluaXRhbGl6ZUZyb21TbmFwc2hvdChjb250ZXh0X3NuYXBzaG90LT5wcGM2NCk7Ci0rICAgICAg YnJlYWs7Ci0rICAgIH0KLSsKLSAgICAgZGVmYXVsdDogewotICAgICAgIExPRyhFUlJPUikgPDwg InVua25vd24gY29udGV4dCBhcmNoaXRlY3R1cmUgIgotICAgICAgICAgICAgICAgICAgPDwgY29u dGV4dF9zbmFwc2hvdC0+YXJjaGl0ZWN0dXJlOwotQEAgLTQ1Myw0ICs0NjAsNDcgQEAgc2l6ZV90 IE1pbmlkdW1wQ29udGV4dE1JUFM2NFdyaXRlcjo6Q29udGV4dFNpemUoKSBjb25zdCB7Ci0gICBy ZXR1cm4gc2l6ZW9mKGNvbnRleHRfKTsKLSB9Ci0gCi0rTWluaWR1bXBDb250ZXh0UFBDNjRXcml0 ZXI6Ok1pbmlkdW1wQ29udGV4dFBQQzY0V3JpdGVyKCkKLSsgIDogTWluaWR1bXBDb250ZXh0V3Jp dGVyKCksIGNvbnRleHRfKCkgewotKyAgICBjb250ZXh0Xy5jb250ZXh0X2ZsYWdzID0ga01pbmlk dW1wQ29udGV4dFBQQzY0OwotK30KLSsKLStNaW5pZHVtcENvbnRleHRQUEM2NFdyaXRlcjo6fk1p bmlkdW1wQ29udGV4dFBQQzY0V3JpdGVyKCkgPSBkZWZhdWx0OwotKwotK3ZvaWQgTWluaWR1bXBD b250ZXh0UFBDNjRXcml0ZXI6OkluaXRhbGl6ZUZyb21TbmFwc2hvdCgKLSsgICAgY29uc3QgQ1BV Q29udGV4dFBQQzY0KiBjb250ZXh0X3NuYXBzaG90KSB7Ci0rICBEQ0hFQ0tfRVEoc3RhdGUoKSwg a1N0YXRlTXV0YWJsZSk7Ci0rICBEQ0hFQ0tfRVEoY29udGV4dF8uY29udGV4dF9mbGFncywga01p bmlkdW1wQ29udGV4dFBQQzY0KTsKLSsKLSsgIGNvbnRleHRfLmNvbnRleHRfZmxhZ3MgPSBrTWlu aWR1bXBDb250ZXh0UFBDNjRBbGw7Ci0rCi0rICBtZW1jcHkoY29udGV4dF8ucmVncywgY29udGV4 dF9zbmFwc2hvdC0+cmVncywgc2l6ZW9mKGNvbnRleHRfLnJlZ3MpKTsKLSsgIGNvbnRleHRfLm5p cCA9IGNvbnRleHRfc25hcHNob3QtPm5pcDsKLSsgIGNvbnRleHRfLm1zciA9IGNvbnRleHRfc25h cHNob3QtPm1zcjsKLSsgIGNvbnRleHRfLmNjciA9IGNvbnRleHRfc25hcHNob3QtPmNjcjsKLSsg IGNvbnRleHRfLnhlciA9IGNvbnRleHRfc25hcHNob3QtPnhlcjsKLSsgIGNvbnRleHRfLmxuayA9 IGNvbnRleHRfc25hcHNob3QtPmxuazsKLSsgIGNvbnRleHRfLmN0ciA9IGNvbnRleHRfc25hcHNo b3QtPmN0cjsKLSsKLSsgIG1lbWNweShjb250ZXh0Xy5mcHJlZ3MsIGNvbnRleHRfc25hcHNob3Qt PmZwcmVncywgc2l6ZW9mKGNvbnRleHRfLmZwcmVncykpOwotKyAgY29udGV4dF8uZnBzY3IgPSBj b250ZXh0X3NuYXBzaG90LT5mcHNjcjsKLSsKLSsgIG1lbWNweShjb250ZXh0Xy52cmVncy5zYXZl X3ZyLCBjb250ZXh0X3NuYXBzaG90LT52cmVncy5zYXZlX3ZyLAotKyAgICAgICAgIHNpemVvZihj b250ZXh0Xy52cmVncy5zYXZlX3ZyKSk7Ci0rICBtZW1jcHkoJmNvbnRleHRfLnZyZWdzLnNhdmVf dnNjciwgJmNvbnRleHRfc25hcHNob3QtPnZyZWdzLnNhdmVfdnNjciwKLSsgICAgICAgICBzaXpl b2YoY29udGV4dF8udnJlZ3Muc2F2ZV92c2NyKSk7Ci0rICBjb250ZXh0Xy52cmVncy5zYXZlX3Zy c2F2ZSA9IGNvbnRleHRfc25hcHNob3QtPnZyZWdzLnNhdmVfdnJzYXZlOwotK30KLSsKLStib29s IE1pbmlkdW1wQ29udGV4dFBQQzY0V3JpdGVyOjpXcml0ZU9iamVjdCgKLSsgICAgRmlsZVdyaXRl ckludGVyZmFjZSogZmlsZV93cml0ZXIpIHsKLSsgIERDSEVDS19FUShzdGF0ZSgpLCBrU3RhdGVX cml0YWJsZSk7Ci0rICByZXR1cm4gZmlsZV93cml0ZXItPldyaXRlKCZjb250ZXh0Xywgc2l6ZW9m KGNvbnRleHRfKSk7Ci0rfQotKwotK3NpemVfdCBNaW5pZHVtcENvbnRleHRQUEM2NFdyaXRlcjo6 Q29udGV4dFNpemUoKSBjb25zdCB7Ci0rICBEQ0hFQ0tfR0Uoc3RhdGUoKSwga1N0YXRlRnJvemVu KTsKLSsgIHJldHVybiBzaXplb2YoY29udGV4dF8pOwotK30KLSsKLSB9ICAvLyBuYW1lc3BhY2Ug Y3Jhc2hwYWQKLWRpZmYgLS1naXQgYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkv Y3Jhc2hwYWQvY3Jhc2hwYWQvbWluaWR1bXAvbWluaWR1bXBfY29udGV4dF93cml0ZXIuaCBiL3Ny Yy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9taW5pZHVt cC9taW5pZHVtcF9jb250ZXh0X3dyaXRlci5oCi1pbmRleCBkNGFiOTM2ZWUuLjFkMjJmYzU5YyAx MDA2NDQKLS0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9j cmFzaHBhZC9taW5pZHVtcC9taW5pZHVtcF9jb250ZXh0X3dyaXRlci5oCi0rKysgYi9zcmMvM3Jk cGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvbWluaWR1bXAvbWlu aWR1bXBfY29udGV4dF93cml0ZXIuaAotQEAgLTMxNSw2ICszMTUsNDUgQEAgY2xhc3MgTWluaWR1 bXBDb250ZXh0TUlQUzY0V3JpdGVyIGZpbmFsIDogcHVibGljIE1pbmlkdW1wQ29udGV4dFdyaXRl ciB7Ci0gICBESVNBTExPV19DT1BZX0FORF9BU1NJR04oTWluaWR1bXBDb250ZXh0TUlQUzY0V3Jp dGVyKTsKLSB9OwotIAotK2NsYXNzIE1pbmlkdW1wQ29udGV4dFBQQzY0V3JpdGVyIGZpbmFsIDog cHVibGljIE1pbmlkdW1wQ29udGV4dFdyaXRlciB7Ci0rIHB1YmxpYzoKLSsgIE1pbmlkdW1wQ29u dGV4dFBQQzY0V3JpdGVyKCk7Ci0rICB+TWluaWR1bXBDb250ZXh0UFBDNjRXcml0ZXIoKSBvdmVy cmlkZTsKLSsKLSsgIC8vISBcYnJpZWYgSW5pdGFsaXplcyB0aGUgTWluaWR1bXBDb250ZXh0UFBD NjQgYmFzZWQgb24gXGEgY29udGV4dF9zbmFwc2hvdC4KLSsgIC8vIQotKyAgLy8hIFxwYXJhbVtp bl0gY29udGV4dF9zbmFwc2hvdCBUaGUgY29udGV4dCBzbmFwc2hvdCB0byB1c2UgYXMgc291cmNl IGRhdGEuCi0rICAvLyEKLSsgIC8vISBcbm90ZSBWYWxpZCBpbiAja1N0YXRlTXV0YWJsZS4gTm8g bXV0YXRpb24gb2YgY29udGV4dCgpIG1heSBiZSBkb25lIGJlZm9yZQotKyAgLy8hICAgICBjYWxs aW5nIHRoaXMgbWV0aG9kLCBhbmQgaXQgaXMgbm90IG5vcm1hbGx5IG5lY2Vzc2FyeSB0byBhbHRl cgotKyAgLy8hICAgICBjb250ZXh0KCkgYWZ0ZXIgY2FsbGluZyB0aGlzIG1ldGhvZC4KLSsgIHZv aWQgSW5pdGFsaXplRnJvbVNuYXBzaG90KGNvbnN0IENQVUNvbnRleHRQUEM2NCogY29udGV4dF9z bmFwc2hvdCk7Ci0rCi0rICAvLyEgXGJyaWVmIFJldHVybnMgYSBwb2ludGVyIHRvIHRoZSBjb250 ZXh0IHN0cnVjdHVyZSB0aGF0IHRoaXMgb2JqZWN0IHdpbGwKLSsgIC8vISAgICAgd3JpdGUuCi0r ICAvLyEKLSsgIC8vISBcYXR0ZW50aW9uIFRoaXMgcmV0dXJucyBhIG5vbi1gY29uc3RgIHBvaW50 ZXIgdG8gdGhpcyBvYmplY3TigJlzIHByaXZhdGUKLSsgIC8vISAgICAgZGF0YSBzbyB0aGF0IGEg Y2FsbGVyIGNhbiBwb3B1bGF0ZSB0aGUgY29udGV4dCBzdHJ1Y3R1cmUgZGlyZWN0bHkuCi0rICAv LyEgICAgIFRoaXMgaXMgZG9uZSBiZWNhdXNlIHByb3ZpZGluZyBzZXR0ZXIgaW50ZXJmYWNlcyB0 byBlYWNoIGZpZWxkIGluIHRoZQotKyAgLy8hICAgICBjb250ZXh0IHN0cnVjdHVyZSB3b3VsZCBi ZSB1bndpZWxkeSBhbmQgY3VtYmVyc29tZS4gQ2FyZSBtdXN0IGJlIHRha2VuCi0rICAvLyEgICAg IHRvIHBvcHVsYXRlIHRoZSBjb250ZXh0IHN0cnVjdHVyZSBjb3JyZWN0bHkuIFRoZSBjb250ZXh0 IHN0cnVjdHVyZQotKyAgLy8hICAgICBtdXN0IG9ubHkgYmUgbW9kaWZpZWQgd2hpbGUgdGhpcyBv YmplY3QgaXMgaW4gdGhlICNrU3RhdGVNdXRhYmxlCi0rICAvLyEgICAgIHN0YXRlLgotKyAgTWlu aWR1bXBDb250ZXh0UFBDNjQqIGNvbnRleHQoKSB7IHJldHVybiAmY29udGV4dF87IH0KLSsKLSsg cHJvdGVjdGVkOgotKyAgLy8gTWluaWR1bXBXcml0YWJsZToKLSsgIGJvb2wgV3JpdGVPYmplY3Qo RmlsZVdyaXRlckludGVyZmFjZSogZmlsZV93cml0ZXIpIG92ZXJyaWRlOwotKwotKyAgLy8gTWlu aWR1bXBDb250ZXh0V3JpdGVyOgotKyAgc2l6ZV90IENvbnRleHRTaXplKCkgY29uc3Qgb3ZlcnJp ZGU7Ci0rCi0rIHByaXZhdGU6Ci0rICBNaW5pZHVtcENvbnRleHRQUEM2NCBjb250ZXh0XzsKLSsK LSsgIERJU0FMTE9XX0NPUFlfQU5EX0FTU0lHTihNaW5pZHVtcENvbnRleHRQUEM2NFdyaXRlcik7 Ci0rfTsKLSsKLSB9ICAvLyBuYW1lc3BhY2UgY3Jhc2hwYWQKLSAKLSAjZW5kaWYgIC8vIENSQVNI UEFEX01JTklEVU1QX01JTklEVU1QX0NPTlRFWFRfV1JJVEVSX0hfCi1kaWZmIC0tZ2l0IGEvc3Jj LzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL21pbmlkdW1w L21pbmlkdW1wX2NvbnRleHRfd3JpdGVyX3Rlc3QuY2MgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0v dGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvbWluaWR1bXAvbWluaWR1bXBfY29udGV4dF93 cml0ZXJfdGVzdC5jYwotaW5kZXggMzIxNmE5MDZiLi5hOWZjYmU5ZDggMTAwNjQ0Ci0tLS0gYS9z cmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvbWluaWR1 bXAvbWluaWR1bXBfY29udGV4dF93cml0ZXJfdGVzdC5jYwotKysrIGIvc3JjLzNyZHBhcnR5L2No cm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL21pbmlkdW1wL21pbmlkdW1wX2Nv bnRleHRfd3JpdGVyX3Rlc3QuY2MKLUBAIC0yMTMsNiArMjEzLDIxIEBAIFRFU1QoTWluaWR1bXBD b250ZXh0V3JpdGVyLCBNSVBTNjRfRnJvbVNuYXBzaG90KSB7Ci0gICAgICAgY29udGV4dCwgRXhw ZWN0TWluaWR1bXBDb250ZXh0TUlQUzY0LCBrU2VlZCk7Ci0gfQotIAotK1RFU1QoTWluaWR1bXBD b250ZXh0V3JpdGVyLCBQUEM2NF9aZXJvcykgewotKyAgRW1wdHlDb250ZXh0VGVzdDxNaW5pZHVt cENvbnRleHRQUEM2NFdyaXRlciwgTWluaWR1bXBDb250ZXh0UFBDNjQ+KAotKyAgICBFeHBlY3RN aW5pZHVtcENvbnRleHRQUEM2NCk7Ci0rfQotKwotK1RFU1QoTWluaWR1bXBDb250ZXh0V3JpdGVy LCBQUEM2NF9Gcm9tU25hcHNob3QpIHsKLSsgIGNvbnN0ZXhwciB1aW50MzJfdCBrU2VlZCA9IDY0 OwotKyAgQ1BVQ29udGV4dFBQQzY0IGNvbnRleHRfcHBjNjQ7Ci0rICBDUFVDb250ZXh0IGNvbnRl eHQ7Ci0rICBjb250ZXh0LnBwYzY0ID0gJmNvbnRleHRfcHBjNjQ7Ci0rICBJbml0aWFsaXplQ1BV Q29udGV4dFBQQzY0KCZjb250ZXh0LCBrU2VlZCk7Ci0rICBGcm9tU25hcHNob3RUZXN0PE1pbmlk dW1wQ29udGV4dFBQQzY0V3JpdGVyLCBNaW5pZHVtcENvbnRleHRQUEM2ND4oCi0rICAgICAgY29u dGV4dCwgRXhwZWN0TWluaWR1bXBDb250ZXh0UFBDNjQsIGtTZWVkKTsKLSt9Ci0rCi0gfSAgLy8g bmFtZXNwYWNlCi0gfSAgLy8gbmFtZXNwYWNlIHRlc3QKLSB9ICAvLyBuYW1lc3BhY2UgY3Jhc2hw YWQKLWRpZmYgLS1naXQgYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hw YWQvY3Jhc2hwYWQvbWluaWR1bXAvbWluaWR1bXBfbWlzY19pbmZvX3dyaXRlci5jYyBiL3NyYy8z cmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9taW5pZHVtcC9t aW5pZHVtcF9taXNjX2luZm9fd3JpdGVyLmNjCi1pbmRleCBhMTM0MDc2MDUuLjk1ZGM5MjUyNCAx MDA2NDQKLS0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9j cmFzaHBhZC9taW5pZHVtcC9taW5pZHVtcF9taXNjX2luZm9fd3JpdGVyLmNjCi0rKysgYi9zcmMv M3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvbWluaWR1bXAv bWluaWR1bXBfbWlzY19pbmZvX3dyaXRlci5jYwotQEAgLTEyNiw2ICsxMjYsOCBAQCBzdGQ6OnN0 cmluZyBNaW5pZHVtcE1pc2NJbmZvRGVidWdCdWlsZFN0cmluZygpIHsKLSAgIHN0YXRpYyBjb25z dGV4cHIgY2hhciBrQ1BVW10gPSAibWlwcyI7Ci0gI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9NSVBT NjRFTCkKLSAgIHN0YXRpYyBjb25zdGV4cHIgY2hhciBrQ1BVW10gPSAibWlwczY0IjsKLSsjZWxp ZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0KQotKyAgc3RhdGljIGNvbnN0ZXhwciBjaGFyIGtDUFVb XSA9ICJwcGM2NCI7Ci0gI2Vsc2UKLSAjZXJyb3IgZGVmaW5lIGtDUFUgZm9yIHRoaXMgQ1BVCi0g I2VuZGlmCi1kaWZmIC0tZ2l0IGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2Ny YXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2NhcHR1cmVfbWVtb3J5LmNjIGIvc3JjLzNyZHBhcnR5 L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2NhcHR1cmVf bWVtb3J5LmNjCi1pbmRleCBhNTE2MjZjY2QuLjYxZTBiMjBhMSAxMDA2NDQKLS0tLSBhL3NyYy8z cmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9j YXB0dXJlX21lbW9yeS5jYwotKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5 L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2NhcHR1cmVfbWVtb3J5LmNjCi1AQCAtMTExLDYg KzExMSwxMSBAQCB2b2lkIENhcHR1cmVNZW1vcnk6OlBvaW50ZWRUb0J5Q29udGV4dChjb25zdCBD UFVDb250ZXh0JiBjb250ZXh0LAotICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBiYXNlOjpzaXpl KGNvbnRleHQubWlwc2VsLT5yZWdzKTsgKytpKSB7Ci0gICAgIE1heWJlQ2FwdHVyZU1lbW9yeUFy b3VuZChkZWxlZ2F0ZSwgY29udGV4dC5taXBzZWwtPnJlZ3NbaV0pOwotICAgfQotKyNlbGlmIGRl ZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQotKyAgTWF5YmVDYXB0dXJlTWVtb3J5QXJvdW5k KGRlbGVnYXRlLCBjb250ZXh0LnBwYzY0LT5uaXApOwotKyAgZm9yIChzaXplX3QgaSA9IDA7IGkg PCBiYXNlOjpzaXplKGNvbnRleHQucHBjNjQtPnJlZ3MpOyArK2kpIHsKLSsgICAgTWF5YmVDYXB0 dXJlTWVtb3J5QXJvdW5kKGRlbGVnYXRlLCBjb250ZXh0LnBwYzY0LT5yZWdzW2ldKTsKLSsgIH0K LSAjZWxzZQotICNlcnJvciBQb3J0LgotICNlbmRpZgotZGlmZiAtLWdpdCBhL3NyYy8zcmRwYXJ0 eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9jcHVfYXJj aGl0ZWN0dXJlLmggYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQv Y3Jhc2hwYWQvc25hcHNob3QvY3B1X2FyY2hpdGVjdHVyZS5oCi1pbmRleCA4MTFhNzIwOTUuLmY0 ZjgzOTgxZCAxMDA2NDQKLS0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9j cmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9jcHVfYXJjaGl0ZWN0dXJlLmgKLSsrKyBiL3NyYy8z cmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9j cHVfYXJjaGl0ZWN0dXJlLmgKLUBAIC00Myw3ICs0MywxMCBAQCBlbnVtIENQVUFyY2hpdGVjdHVy ZSB7Ci0gICBrQ1BVQXJjaGl0ZWN0dXJlTUlQU0VMLAotIAotICAgLy8hIFxicmllZiA2NC1iaXQg TUlQU0VMLgotLSAga0NQVUFyY2hpdGVjdHVyZU1JUFM2NEVMCi0rICBrQ1BVQXJjaGl0ZWN0dXJl TUlQUzY0RUwsCi0rCi0rICAvLyEgXGJyaWVmIDY0LWJpdCBQUEM2NC4KLSsgIGtDUFVBcmNoaXRl Y3R1cmVQUEM2NAotIH07Ci0gCi0gfSAgLy8gbmFtZXNwYWNlIGNyYXNocGFkCi1kaWZmIC0tZ2l0 IGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3Nu YXBzaG90L2NwdV9jb250ZXh0LmNjIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5 L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2NwdV9jb250ZXh0LmNjCi1pbmRleCA2ZmI4ZDdl NzEuLmIwMWY3Y2FkMSAxMDA2NDQKLS0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9w YXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9jcHVfY29udGV4dC5jYwotKysrIGIvc3Jj LzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90 L2NwdV9jb250ZXh0LmNjCi1AQCAtMTY5LDYgKzE2OSw4IEBAIHVpbnQ2NF90IENQVUNvbnRleHQ6 Okluc3RydWN0aW9uUG9pbnRlcigpIGNvbnN0IHsKLSAgICAgICByZXR1cm4gYXJtLT5wYzsKLSAg ICAgY2FzZSBrQ1BVQXJjaGl0ZWN0dXJlQVJNNjQ6Ci0gICAgICAgcmV0dXJuIGFybTY0LT5wYzsK LSsgICAgY2FzZSBrQ1BVQXJjaGl0ZWN0dXJlUFBDNjQ6Ci0rICAgICAgcmV0dXJuIHBwYzY0LT5u aXA7Ci0gICAgIGRlZmF1bHQ6Ci0gICAgICAgTk9UUkVBQ0hFRCgpOwotICAgICAgIHJldHVybiB+ MHVsbDsKLUBAIC0xODUsNiArMTg3LDggQEAgdWludDY0X3QgQ1BVQ29udGV4dDo6U3RhY2tQb2lu dGVyKCkgY29uc3QgewotICAgICAgIHJldHVybiBhcm0tPnNwOwotICAgICBjYXNlIGtDUFVBcmNo aXRlY3R1cmVBUk02NDoKLSAgICAgICByZXR1cm4gYXJtNjQtPnNwOwotKyAgICBjYXNlIGtDUFVB cmNoaXRlY3R1cmVQUEM2NDoKLSsgICAgICByZXR1cm4gcHBjNjQtPnJlZ3NbMV07Ci0gICAgIGRl ZmF1bHQ6Ci0gICAgICAgTk9UUkVBQ0hFRCgpOwotICAgICAgIHJldHVybiB+MHVsbDsKLUBAIC0x OTYsNiArMjAwLDcgQEAgYm9vbCBDUFVDb250ZXh0OjpJczY0Qml0KCkgY29uc3QgewotICAgICBj YXNlIGtDUFVBcmNoaXRlY3R1cmVYODZfNjQ6Ci0gICAgIGNhc2Uga0NQVUFyY2hpdGVjdHVyZUFS TTY0OgotICAgICBjYXNlIGtDUFVBcmNoaXRlY3R1cmVNSVBTNjRFTDoKLSsgICAgY2FzZSBrQ1BV QXJjaGl0ZWN0dXJlUFBDNjQ6Ci0gICAgICAgcmV0dXJuIHRydWU7Ci0gICAgIGNhc2Uga0NQVUFy Y2hpdGVjdHVyZVg4NjoKLSAgICAgY2FzZSBrQ1BVQXJjaGl0ZWN0dXJlQVJNOgotZGlmZiAtLWdp dCBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9z bmFwc2hvdC9jcHVfY29udGV4dC5oIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5 L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2NwdV9jb250ZXh0LmgKLWluZGV4IGZiMjNjNDY3 OS4uZWViZWRlNjNjIDEwMDY0NAotLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3Bh cnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2NwdV9jb250ZXh0LmgKLSsrKyBiL3NyYy8z cmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9j cHVfY29udGV4dC5oCi1AQCAtMzUyLDYgKzM1MiwyNCBAQCBzdHJ1Y3QgQ1BVQ29udGV4dE1JUFM2 NCB7Ci0gICB1aW50NjRfdCBmaXI7Ci0gfTsKLSAKLSsvLyEgXGJyaWVmIEEgY29udGV4dCBzdHJ1 Y3R1cmUgY2FycnlpbmcgUFBDNjQgQ1BVIHN0YXRlLgotK3N0cnVjdCBDUFVDb250ZXh0UFBDNjQg ewotKyAgdWludDY0X3QgbmlwOwotKyAgdWludDY0X3QgbXNyOwotKyAgdWludDY0X3QgcmVnc1sz Ml07Ci0rICB1aW50NjRfdCBjY3I7Ci0rICB1aW50NjRfdCB4ZXI7Ci0rICB1aW50NjRfdCBsbms7 Ci0rICB1aW50NjRfdCBjdHI7Ci0rICBkb3VibGUgZnByZWdzWzMyXTsKLSsgIGRvdWJsZSBmcHNj cjsKLSsgIHN0cnVjdCB7Ci0rICAgIHVpbnQxMjhfc3RydWN0IHNhdmVfdnJbMzJdOwotKyAgICB1 aW50MTI4X3N0cnVjdCBzYXZlX3ZzY3I7Ci0rICAgIHVpbnQzMl90IHNhdmVfdnJzYXZlOwotKyAg fSB2cmVnczsKLSt9OwotKwotIC8vISBcYnJpZWYgQSBjb250ZXh0IHN0cnVjdHVyZSBjYXBhYmxl IG9mIGNhcnJ5aW5nIHRoZSBjb250ZXh0IG9mIGFueSBzdXBwb3J0ZWQKLSAvLyEgICAgIENQVSBh cmNoaXRlY3R1cmUuCi0gc3RydWN0IENQVUNvbnRleHQgewotQEAgLTM4Miw2ICs0MDAsNyBAQCBz dHJ1Y3QgQ1BVQ29udGV4dCB7Ci0gICAgIENQVUNvbnRleHRBUk02NCogYXJtNjQ7Ci0gICAgIENQ VUNvbnRleHRNSVBTKiBtaXBzZWw7Ci0gICAgIENQVUNvbnRleHRNSVBTNjQqIG1pcHM2NDsKLSsg ICAgQ1BVQ29udGV4dFBQQzY0KiBwcGM2NDsKLSAgIH07Ci0gfTsKLSAKLWRpZmYgLS1naXQgYS9z cmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNo b3QvbGludXgvY3B1X2NvbnRleHRfbGludXguaCBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGly ZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9jcHVfY29udGV4dF9saW51 eC5oCi1pbmRleCAzN2ZiYzQzMjUuLmNmNGVmN2VmOSAxMDA2NDQKLS0tLSBhL3NyYy8zcmRwYXJ0 eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9j cHVfY29udGV4dF9saW51eC5oCi0rKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFy dHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvY3B1X2NvbnRleHRfbGludXguaAot QEAgLTE1LDYgKzE1LDcgQEAKLSAjaWZuZGVmIENSQVNIUEFEX1NOQVBTSE9UX0xJTlVYX0NQVV9D T05URVhUX0xJTlVYX0hfCi0gI2RlZmluZSBDUkFTSFBBRF9TTkFQU0hPVF9MSU5VWF9DUFVfQ09O VEVYVF9MSU5VWF9IXwotIAotKyNpbmNsdWRlIDxjc3RyaW5nPgotICNpbmNsdWRlICJidWlsZC9i dWlsZF9jb25maWcuaCIKLSAjaW5jbHVkZSAic25hcHNob3QvY3B1X2NvbnRleHQuaCIKLSAjaW5j bHVkZSAic25hcHNob3QvbGludXgvc2lnbmFsX2NvbnRleHQuaCIKLUBAIC0xNzQsNiArMTc1LDc4 IEBAIHZvaWQgSW5pdGlhbGl6ZUNQVUNvbnRleHRNSVBTKAotIAotICNlbmRpZiAgLy8gQVJDSF9D UFVfTUlQU19GQU1JTFkgfHwgRE9YWUdFTgotIAotKyNpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0 X0ZBTUlMWSkgfHwgRE9YWUdFTgotKwotKy8vISBcYnJpZWYgSW5pdGFsaXplcyBhIENQVUNvbnRl eHRQUEM2NCBzdHJ1Y3R1cmUgZnJvbSBuYXRpdmUgY29udGV4dAotKy8vISAgICAgc3RydWN0dXJl cyBvbiBMaW51eC4KLSsvLyEKLSsvLyEgXHBhcmFtW2luXSB0aHJlYWRfY29udGV4dCBUaGUgbmF0 aXZlIHRocmVhZCBjb250ZXh0LgotKy8vISBccGFyYW1baW5dIGZsb2F0X2NvbnRleHQgVGhlIG5h dGl2ZSBmbG9hdCBjb250ZXh0LgotKy8vISBccGFyYW1baW5dIHZlY3Rvcl9jb250ZXh0IFRoZSBu YXRpdmUgdmVjdG9yIGNvbnRleHQuCi0rLy8hIFxwYXJhbVtvdXRdIGNvbnRleHQgVGhlIENQVUNv bnRleHRQUEM2NCBzdHJ1Y3R1cmUgdG8gaW5pdGFsaXplLgotK3RlbXBsYXRlIDx0eXBlbmFtZSBU cmFpdHM+Ci0rdm9pZCBJbml0aWFsaXplQ1BVQ29udGV4dFBQQzY0KAotKyAgICBjb25zdCBUaHJl YWRDb250ZXh0Ojp0NjRfdCYgdGhyZWFkX2NvbnRleHQsCi0rICAgIGNvbnN0IEZsb2F0Q29udGV4 dDo6ZjY0X3QmIGZsb2F0X2NvbnRleHQsCi0rICAgIGNvbnN0IFZlY3RvckNvbnRleHQ6OnY2NF90 JiB2ZWN0b3JfY29udGV4dCwKLSsgICAgdHlwZW5hbWUgVHJhaXRzOjpDUFVDb250ZXh0KiBjb250 ZXh0KSB7Ci0rCi0rICBtZW1jcHkoY29udGV4dC0+cmVncywgdGhyZWFkX2NvbnRleHQuZ3ByLCBz aXplb2YoY29udGV4dC0+cmVncykpOwotKyAgY29udGV4dC0+bmlwID0gdGhyZWFkX2NvbnRleHQu bmlwOwotKyAgY29udGV4dC0+bXNyID0gdGhyZWFkX2NvbnRleHQubXNyOwotKyAgY29udGV4dC0+ Y2NyID0gdGhyZWFkX2NvbnRleHQuY2NyOwotKyAgY29udGV4dC0+eGVyID0gdGhyZWFkX2NvbnRl eHQueGVyOwotKyAgY29udGV4dC0+bG5rID0gdGhyZWFkX2NvbnRleHQubG5rOwotKyAgY29udGV4 dC0+Y3RyID0gdGhyZWFkX2NvbnRleHQuY3RyOwotKwotKyAgbWVtY3B5KGNvbnRleHQtPmZwcmVn cywgZmxvYXRfY29udGV4dC5mcHJlZ3MsIHNpemVvZihjb250ZXh0LT5mcHJlZ3MpKTsKLSsgIGNv bnRleHQtPmZwc2NyID0gZmxvYXRfY29udGV4dC5mcHNjcjsKLSsKLSsgIGZvciAodWludDhfdCBp ID0gMDsgaSA8IDMyOyBpKyspIHsKLSsgICAgY29udGV4dC0+dnJlZ3Muc2F2ZV92cltpXSA9IHsK LSsgICAgICAoKCh1aW50NjRfdCl2ZWN0b3JfY29udGV4dC52cnJlZ3NbaV1bMF0pIDw8IDMyKSB8 Ci0rICAgICAgICB2ZWN0b3JfY29udGV4dC52cnJlZ3NbaV1bMV0sCi0rICAgICAgKCgodWludDY0 X3QpdmVjdG9yX2NvbnRleHQudnJyZWdzW2ldWzJdKSA8PCAzMikgfAotKyAgICAgICAgdmVjdG9y X2NvbnRleHQudnJyZWdzW2ldWzNdCi0rICAgIH07Ci0rICB9Ci0rICBjb250ZXh0LT52cmVncy5z YXZlX3Zyc2F2ZSA9IHZlY3Rvcl9jb250ZXh0LnZyc2F2ZTsKLSsgIGNvbnRleHQtPnZyZWdzLnNh dmVfdnNjciA9IHswLCAodWludDY0X3QpdmVjdG9yX2NvbnRleHQudnNjci52c2NyX3dvcmR9Owot K30KLSsKLSt0ZW1wbGF0ZSA8dHlwZW5hbWUgVHJhaXRzPgotK3ZvaWQgSW5pdGlhbGl6ZUNQVUNv bnRleHRQUEM2NCgKLSsgICAgY29uc3QgU2lnbmFsVGhyZWFkQ29udGV4dDY0ICZ0aHJlYWRfY29u dGV4dCwKLSsgICAgY29uc3QgU2lnbmFsRmxvYXRDb250ZXh0NjQgJmZsb2F0X2NvbnRleHQsCi0r ICAgIGNvbnN0IFNpZ25hbFZlY3RvckNvbnRleHQ2NCAmdmVjdG9yX2NvbnRleHQsCi0rICAgIHR5 cGVuYW1lIFRyYWl0czo6Q1BVQ29udGV4dCogY29udGV4dCkgewotKwotKyAgbWVtY3B5KGNvbnRl eHQtPnJlZ3MsIHRocmVhZF9jb250ZXh0LnJlZ3MsIHNpemVvZihjb250ZXh0LT5yZWdzKSk7Ci0r ICBjb250ZXh0LT5uaXAgPSB0aHJlYWRfY29udGV4dC5uaXA7Ci0rICBjb250ZXh0LT5tc3IgPSB0 aHJlYWRfY29udGV4dC5tc3I7Ci0rICBjb250ZXh0LT5jY3IgPSB0aHJlYWRfY29udGV4dC5jY3I7 Ci0rICBjb250ZXh0LT54ZXIgPSB0aHJlYWRfY29udGV4dC54ZXI7Ci0rICBjb250ZXh0LT5sbmsg PSB0aHJlYWRfY29udGV4dC5sbms7Ci0rICBjb250ZXh0LT5jdHIgPSB0aHJlYWRfY29udGV4dC5j dHI7Ci0rCi0rICBtZW1jcHkoY29udGV4dC0+ZnByZWdzLCBmbG9hdF9jb250ZXh0LnJlZ3MsIHNp emVvZihjb250ZXh0LT5mcHJlZ3MpKTsKLSsgIGNvbnRleHQtPmZwc2NyID0gZmxvYXRfY29udGV4 dC5mcHNjcjsKLSsKLSsgIGZvciAodWludDhfdCBpID0gMDsgaSA8IDMyOyBpKyspIHsKLSsgICAg Y29udGV4dC0+dnJlZ3Muc2F2ZV92cltpXSA9IHsKLSsgICAgICAoKCh1aW50NjRfdCl2ZWN0b3Jf Y29udGV4dC52cnJlZ3NbaV1bMF0pIDw8IDMyKSB8Ci0rICAgICAgICB2ZWN0b3JfY29udGV4dC52 cnJlZ3NbaV1bMV0sCi0rICAgICAgKCgodWludDY0X3QpdmVjdG9yX2NvbnRleHQudnJyZWdzW2ld WzJdKSA8PCAzMikgfAotKyAgICAgICAgdmVjdG9yX2NvbnRleHQudnJyZWdzW2ldWzNdCi0rICAg IH07Ci0rICB9Ci0rICBjb250ZXh0LT52cmVncy5zYXZlX3Zyc2F2ZSA9IHZlY3Rvcl9jb250ZXh0 LnZyc2F2ZTsKLSsgIGNvbnRleHQtPnZyZWdzLnNhdmVfdnNjciA9IHswLCAodWludDY0X3QpdmVj dG9yX2NvbnRleHQudnNjci52c2NyX3dvcmR9OwotK30KLSsKLSsKLSsjZW5kaWYKLSsKLSB9ICAv LyBuYW1lc3BhY2UgaW50ZXJuYWwKLSB9ICAvLyBuYW1lc3BhY2UgY3Jhc2hwYWQKLSAKLWRpZmYg LS1naXQgYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hw YWQvc25hcHNob3QvbGludXgvZGVidWdfcmVuZGV6dm91c190ZXN0LmNjIGIvc3JjLzNyZHBhcnR5 L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L2Rl YnVnX3JlbmRlenZvdXNfdGVzdC5jYwotaW5kZXggYmUyMmM5MDMxLi5jNWRmMjNkMWIgMTAwNjQ0 Ci0tLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hw YWQvc25hcHNob3QvbGludXgvZGVidWdfcmVuZGV6dm91c190ZXN0LmNjCi0rKysgYi9zcmMvM3Jk cGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGlu dXgvZGVidWdfcmVuZGV6dm91c190ZXN0LmNjCi1AQCAtMTU5LDkgKzE1OSwxMSBAQCB2b2lkIFRl c3RBZ2FpbnN0VGFyZ2V0KFB0cmFjZUNvbm5lY3Rpb24qIGNvbm5lY3Rpb24pIHsKLSAgICAgICAg ICAgY29uc3QgYm9vbCBpc192ZHNvX21hcHBpbmcgPQotICAgICAgICAgICAgICAgZGV2aWNlID09 IDAgJiYgaW5vZGUgPT0gMCAmJiBtYXBwaW5nX25hbWUgPT0gIlt2ZHNvXSI7Ci0gICAgICAgICAg IHN0YXRpYyBjb25zdGV4cHIgY2hhciBrUHJlZml4W10gPSAibGludXgtdmRzby5zby4iOwotKyAg ICAgICAgICBzdGF0aWMgY29uc3RleHByIGNoYXIga1ByZWZpeDY0W10gPSAibGludXgtdmRzbzY0 LnNvLiI7Ci0gICAgICAgICAgIHJldHVybiBpc192ZHNvX21hcHBpbmcgPT0KLSAgICAgICAgICAg ICAgICAgIChtb2R1bGVfbmFtZS5lbXB0eSgpIHx8Ci0tICAgICAgICAgICAgICAgICAgbW9kdWxl X25hbWUuY29tcGFyZSgwLCBzdHJsZW4oa1ByZWZpeCksIGtQcmVmaXgpID09IDApOwotKyAgICAg ICAgICAgICAgICAgIG1vZHVsZV9uYW1lLmNvbXBhcmUoMCwgc3RybGVuKGtQcmVmaXgpLCBrUHJl Zml4KSA9PSAwIHx8Ci0rICAgICAgICAgICAgICAgICAgbW9kdWxlX25hbWUuY29tcGFyZSgwLCBz dHJsZW4oa1ByZWZpeDY0KSwga1ByZWZpeDY0KSA9PSAwKTsKLSAgICAgICAgIH0sCi0gICAgICAg ICBtb2R1bGVfbWFwcGluZy0+bmFtZSwKLSAgICAgICAgIG1vZHVsZV9tYXBwaW5nLT5kZXZpY2Us Ci1kaWZmIC0tZ2l0IGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFk L2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L2V4Y2VwdGlvbl9zbmFwc2hvdF9saW51eC5jYyBiL3Ny Yy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hv dC9saW51eC9leGNlcHRpb25fc25hcHNob3RfbGludXguY2MKLWluZGV4IGNkNDBiM2IxMi4uNmJj ZjIzYjZmIDEwMDY0NAotLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2Ny YXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L2V4Y2VwdGlvbl9zbmFwc2hvdF9saW51eC5j YwotKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNo cGFkL3NuYXBzaG90L2xpbnV4L2V4Y2VwdGlvbl9zbmFwc2hvdF9saW51eC5jYwotQEAgLTMyMyw2 ICszMjMsNjkgQEAgYm9vbCBFeGNlcHRpb25TbmFwc2hvdExpbnV4OjpSZWFkQ29udGV4dDxDb250 ZXh0VHJhaXRzNjQ+KAotICAgICAgIHJlYWRlciwgY29udGV4dF9hZGRyZXNzLCBjb250ZXh0Xy5t aXBzNjQpOwotIH0KLSAKLSsjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKLSsK LSt0ZW1wbGF0ZSA8dHlwZW5hbWUgVHJhaXRzPgotK3N0YXRpYyBib29sIFJlYWRDb250ZXh0KFBy b2Nlc3NSZWFkZXJMaW51eCogcmVhZGVyLAotKyAgICAgICAgICAgICAgICAgICAgICAgIExpbnV4 Vk1BZGRyZXNzIGNvbnRleHRfYWRkcmVzcywKLSsgICAgICAgICAgICAgICAgICAgICAgICB0eXBl bmFtZSBUcmFpdHM6OkNQVUNvbnRleHQqIGRlc3RfY29udGV4dCkgewotKyAgY29uc3QgUHJvY2Vz c01lbW9yeSogbWVtb3J5ID0gcmVhZGVyLT5NZW1vcnkoKTsKLSsKLSsgIExpbnV4Vk1BZGRyZXNz IGdwX3JlZ3NfYWRkcmVzcyA9IGNvbnRleHRfYWRkcmVzcyArCi0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBvZmZzZXRvZihVQ29udGV4dCwgbWNvbnRleHQpICsKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldG9mKHR5cGVuYW1lIFRyYWl0czo6TUNv bnRleHQsIGdwX3JlZ3MpOwotKwotKyAgdHlwZW5hbWUgVHJhaXRzOjpTaWduYWxUaHJlYWRDb250 ZXh0IHRocmVhZF9jb250ZXh0OwotKyAgaWYgKCFtZW1vcnktPlJlYWQoZ3BfcmVnc19hZGRyZXNz LCBzaXplb2YodGhyZWFkX2NvbnRleHQpLCAmdGhyZWFkX2NvbnRleHQpKSB7Ci0rICAgIExPRyhF UlJPUikgPDwgIkNvdWxkbid0IHJlYWQgZ3BfcmVncyEiOwotKyAgICByZXR1cm4gZmFsc2U7Ci0r ICB9Ci0rCi0rICBMaW51eFZNQWRkcmVzcyBmcF9yZWdzX2FkZHJlc3MgPSBjb250ZXh0X2FkZHJl c3MgKwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0b2YoVUNvbnRl eHQsIG1jb250ZXh0KSArCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZz ZXRvZih0eXBlbmFtZSBUcmFpdHM6Ok1Db250ZXh0LCBmcF9yZWdzKTsKLSsKLSsgIHR5cGVuYW1l IFRyYWl0czo6U2lnbmFsRmxvYXRDb250ZXh0IGZwX2NvbnRleHQ7Ci0rICBpZiAoIW1lbW9yeS0+ UmVhZChmcF9yZWdzX2FkZHJlc3MsIHNpemVvZihmcF9jb250ZXh0KSwgJmZwX2NvbnRleHQpKSB7 Ci0rICAgIExPRyhFUlJPUikgPDwgIkNvdWxkbid0IHJlYWQgZnBfcmVncyEiOwotKyAgICByZXR1 cm4gZmFsc2U7Ci0rICB9Ci0rCi0rICBMaW51eFZNQWRkcmVzcyB2X3JlZ3NfcHRyX2FkZHJlc3Mg PSBjb250ZXh0X2FkZHJlc3MgKwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBv ZmZzZXRvZihVQ29udGV4dCwgbWNvbnRleHQpICsKLSsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgb2Zmc2V0b2YodHlwZW5hbWUgVHJhaXRzOjpNQ29udGV4dCwgdm14X3Jlc2VydmUp ICsgODsKLSsKLSsgIHR5cGVuYW1lIFRyYWl0czo6U2lnbmFsVmVjdG9yQ29udGV4dCB2X2NvbnRl eHQ7Ci0rICBpZiAoIW1lbW9yeS0+UmVhZCh2X3JlZ3NfcHRyX2FkZHJlc3MsIHNpemVvZih2X2Nv bnRleHQpLCAmdl9jb250ZXh0KSkgewotKyAgICBMT0coRVJST1IpIDw8ICJDb3VsZG4ndCByZWFk IHZfcmVncyEiOwotKyAgICByZXR1cm4gZmFsc2U7Ci0rICB9Ci0rCi0rICBJbml0aWFsaXplQ1BV Q29udGV4dFBQQzY0PENvbnRleHRUcmFpdHM2ND4odGhyZWFkX2NvbnRleHQsIGZwX2NvbnRleHQs Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZfY29udGV4dCwgZGVzdF9jb250ZXh0KTsK LSsKLSsgIHJldHVybiB0cnVlOwotK30KLSsKLSt0ZW1wbGF0ZTw+Ci0rYm9vbCBFeGNlcHRpb25T bmFwc2hvdExpbnV4OjpSZWFkQ29udGV4dDxDb250ZXh0VHJhaXRzNjQ+KAotKyAgICBQcm9jZXNz UmVhZGVyTGludXgqIHJlYWRlciwKLSsgICAgTGludXhWTUFkZHJlc3MgY29udGV4dF9hZGRyZXNz KSB7Ci0rICBjb250ZXh0Xy5hcmNoaXRlY3R1cmUgPSBrQ1BVQXJjaGl0ZWN0dXJlUFBDNjQ7Ci0r ICBjb250ZXh0Xy5wcGM2NCA9ICZjb250ZXh0X3VuaW9uXy5wcGM2NDsKLSsKLSsgIHJldHVybiBp bnRlcm5hbDo6UmVhZENvbnRleHQ8Q29udGV4dFRyYWl0czY0PigKLSsgICAgICByZWFkZXIsIGNv bnRleHRfYWRkcmVzcywgY29udGV4dF8ucHBjNjQpOwotK30KLSsKLSt0ZW1wbGF0ZTw+Ci0rYm9v bCBFeGNlcHRpb25TbmFwc2hvdExpbnV4OjpSZWFkQ29udGV4dDxDb250ZXh0VHJhaXRzMzI+KAot KyAgICBQcm9jZXNzUmVhZGVyTGludXgqIHJlYWRlciwKLSsgICAgTGludXhWTUFkZHJlc3MgY29u dGV4dF9hZGRyZXNzKSB7Ci0rICAvLyBQUEM2NCBpcyA2NC1iaXQKLSsgIHJldHVybiBmYWxzZTsK LSt9Ci0rCi0gI2VuZGlmICAvLyBBUkNIX0NQVV9YODZfRkFNSUxZCi0gCi0gYm9vbCBFeGNlcHRp b25TbmFwc2hvdExpbnV4OjpJbml0aWFsaXplKFByb2Nlc3NSZWFkZXJMaW51eCogcHJvY2Vzc19y ZWFkZXIsCi1kaWZmIC0tZ2l0IGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2Ny YXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L2V4Y2VwdGlvbl9zbmFwc2hvdF9saW51eC5o IGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3Nu YXBzaG90L2xpbnV4L2V4Y2VwdGlvbl9zbmFwc2hvdF9saW51eC5oCi1pbmRleCBlYTBjZDIxMDYu LmU0MmRmNTIwZiAxMDA2NDQKLS0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0 eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9leGNlcHRpb25fc25hcHNob3RfbGlu dXguaAotKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2Ny YXNocGFkL3NuYXBzaG90L2xpbnV4L2V4Y2VwdGlvbl9zbmFwc2hvdF9saW51eC5oCi1AQCAtODQs NiArODQsOCBAQCBjbGFzcyBFeGNlcHRpb25TbmFwc2hvdExpbnV4IGZpbmFsIDogcHVibGljIEV4 Y2VwdGlvblNuYXBzaG90IHsKLSAjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKQot ICAgICBDUFVDb250ZXh0TUlQUyBtaXBzZWw7Ci0gICAgIENQVUNvbnRleHRNSVBTNjQgbWlwczY0 OwotKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQotKyAgICBDUFVDb250ZXh0 UFBDNjQgcHBjNjQ7Ci0gI2VuZGlmCi0gICB9IGNvbnRleHRfdW5pb25fOwotICAgQ1BVQ29udGV4 dCBjb250ZXh0XzsKLWRpZmYgLS1naXQgYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFy dHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvZXhjZXB0aW9uX3NuYXBzaG90X2xp bnV4X3Rlc3QuY2MgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQv Y3Jhc2hwYWQvc25hcHNob3QvbGludXgvZXhjZXB0aW9uX3NuYXBzaG90X2xpbnV4X3Rlc3QuY2MK LWluZGV4IGU0ZmYxYWI3OS4uMjU1MzRkZDA4IDEwMDY0NAotLS0tIGEvc3JjLzNyZHBhcnR5L2No cm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L2V4Y2Vw dGlvbl9zbmFwc2hvdF9saW51eF90ZXN0LmNjCi0rKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0v dGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvZXhjZXB0aW9uX3Nu YXBzaG90X2xpbnV4X3Rlc3QuY2MKLUBAIC0yOTYsNyArMjk2LDI4IEBAIHZvaWQgRXhwZWN0Q29u dGV4dChjb25zdCBDUFVDb250ZXh0JiBhY3R1YWwsIGNvbnN0IE5hdGl2ZUNQVUNvbnRleHQmIGV4 cGVjdGVkKSB7Ci0gICAgICAgICAgICAgMCk7Ci0gI3VuZGVmIENQVV9BUkNIX05BTUUKLSB9Ci0r I2VsaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCi0rdXNpbmcgTmF0aXZlQ1BVQ29u dGV4dCA9IHVjb250ZXh0X3Q7Ci0rCi0rdm9pZCBJbml0aWFsaXplQ29udGV4dChOYXRpdmVDUFVD b250ZXh0KiBjb250ZXh0KSB7Ci0rICBmb3IgKHNpemVfdCByZWcgPSAwOyByZWcgPCAzMjsgKyty ZWcpIHsKLSsgICAgY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1tyZWddID0gcmVnOwotKyAg fQotKwotKyAgbWVtc2V0KCZjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzLCA0NCwKLSsgICAg ICBzaXplb2YoY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVncykpOwotK30KLSAKLSt2b2lkIEV4 cGVjdENvbnRleHQoY29uc3QgQ1BVQ29udGV4dCYgYWN0dWFsLCBjb25zdCBOYXRpdmVDUFVDb250 ZXh0JiBleHBlY3RlZCkgewotKyAgRVhQRUNUX0VRKGFjdHVhbC5hcmNoaXRlY3R1cmUsIGtDUFVB cmNoaXRlY3R1cmVQUEM2NCk7Ci0rCi0rICBmb3IgKHNpemVfdCByZWcgPSAwOyByZWcgPCAzMjsg KytyZWcpIHsKLSsgICAgRVhQRUNUX0VRKGFjdHVhbC5wcGM2NC0+cmVnc1tyZWddLCBleHBlY3Rl ZC51Y19tY29udGV4dC5ncF9yZWdzW3JlZ10pOwotKyAgfQotKwotKyAgRVhQRUNUX0VRKG1lbWNt cChhY3R1YWwucHBjNjQtPmZwcmVncywgZXhwZWN0ZWQudWNfbWNvbnRleHQuZnBfcmVncywKLSsg ICAgICAgICAgICBzaXplb2YoYWN0dWFsLnBwYzY0LT5mcHJlZ3MpKSwgMCk7Ci0rfQotICNlbHNl Ci0gI2Vycm9yIFBvcnQuCi0gI2VuZGlmCi1kaWZmIC0tZ2l0IGEvc3JjLzNyZHBhcnR5L2Nocm9t aXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L3Byb2Nlc3Nf cmVhZGVyX2xpbnV4LmNjIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNo cGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L3Byb2Nlc3NfcmVhZGVyX2xpbnV4LmNjCi1pbmRl eCBiOTZhYmZlNzQuLmRmMTJjYTU2NiAxMDA2NDQKLS0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1 bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9wcm9jZXNzX3Jl YWRlcl9saW51eC5jYwotKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2Ny YXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L3Byb2Nlc3NfcmVhZGVyX2xpbnV4LmNjCi1A QCAtMTA4LDYgKzEwOCw4IEBAIHZvaWQgUHJvY2Vzc1JlYWRlckxpbnV4OjpUaHJlYWQ6OkluaXRp YWxpemVTdGFjayhQcm9jZXNzUmVhZGVyTGludXgqIHJlYWRlcikgewotICNlbGlmIGRlZmluZWQo QVJDSF9DUFVfTUlQU19GQU1JTFkpCi0gICBzdGFja19wb2ludGVyID0gcmVhZGVyLT5JczY0Qml0 KCkgPyB0aHJlYWRfaW5mby50aHJlYWRfY29udGV4dC50NjQucmVnc1syOV0KLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICA6IHRocmVhZF9pbmZvLnRocmVhZF9jb250ZXh0LnQz Mi5yZWdzWzI5XTsKLSsjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKLSsgIHN0 YWNrX3BvaW50ZXIgPSB0aHJlYWRfaW5mby50aHJlYWRfY29udGV4dC50NjQuZ3ByWzFdOwotICNl bHNlCi0gI2Vycm9yIFBvcnQuCi0gI2VuZGlmCi1kaWZmIC0tZ2l0IGEvc3JjLzNyZHBhcnR5L2No cm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L3Byb2Nl c3NfcmVhZGVyX2xpbnV4X3Rlc3QuY2MgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFy dHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvcHJvY2Vzc19yZWFkZXJfbGludXhf dGVzdC5jYwotaW5kZXggNWI1NzIzNjE2Li4wNDljMzI4NTggMTAwNjQ0Ci0tLS0gYS9zcmMvM3Jk cGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGlu dXgvcHJvY2Vzc19yZWFkZXJfbGludXhfdGVzdC5jYwotKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9t aXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L3Byb2Nlc3Nf cmVhZGVyX2xpbnV4X3Rlc3QuY2MKLUBAIC02MTIsNiArNjEyLDggQEAgYm9vbCBXcml0ZVRlc3RN b2R1bGUoY29uc3QgYmFzZTo6RmlsZVBhdGgmIG1vZHVsZV9wYXRoKSB7Ci0gICBtb2R1bGUuZWhk ci5lX21hY2hpbmUgPSBFTV9BQVJDSDY0OwotICNlbGlmIGRlZmluZWQoQVJDSF9DUFVfTUlQU0VM KSB8fCBkZWZpbmVkKEFSQ0hfQ1BVX01JUFM2NEVMKQotICAgbW9kdWxlLmVoZHIuZV9tYWNoaW5l ID0gRU1fTUlQUzsKLSsjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0KQotKyAgbW9kdWxlLmVo ZHIuZV9tYWNoaW5lID0gRU1fUFBDNjQ7Ci0gI2VuZGlmCi0gCi0gICBtb2R1bGUuZWhkci5lX3Zl cnNpb24gPSBFVl9DVVJSRU5UOwotZGlmZiAtLWdpdCBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90 aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9zaWduYWxfY29udGV4 dC5oIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFk L3NuYXBzaG90L2xpbnV4L3NpZ25hbF9jb250ZXh0LmgKLWluZGV4IDExMDAyNDY4MC4uOGUzMzVh MDk2IDEwMDY0NAotLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNo cGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L3NpZ25hbF9jb250ZXh0LmgKLSsrKyBiL3NyYy8z cmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9s aW51eC9zaWduYWxfY29udGV4dC5oCi1AQCAtNDIyLDYgKzQyMiw4OSBAQCBzdGF0aWNfYXNzZXJ0 KG9mZnNldG9mKFVDb250ZXh0PENvbnRleHRUcmFpdHM2ND4sIG1jb250ZXh0LmZwcmVncykgPT0K LSAgICAgICAgICAgICAgICJjb250ZXh0IG9mZnNldCBtaXNtYXRjaCIpOwotICNlbmRpZgotIAot KyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQotKwotK3N0cnVjdCBTaWduYWxU aHJlYWRDb250ZXh0NjQgewotKyAgdWludDY0X3QgcmVnc1szMl07Ci0rICB1aW50NjRfdCBuaXA7 Ci0rICB1aW50NjRfdCBtc3I7Ci0rICB1aW50NjRfdCBvcmlnX3IzOwotKyAgdWludDY0X3QgY3Ry OwotKyAgdWludDY0X3QgbG5rOwotKyAgdWludDY0X3QgeGVyOwotKyAgdWludDY0X3QgY2NyOwot KyAgdWludDY0X3Qgc29mdGU7Ci0rICB1aW50NjRfdCB0cmFwOwotKyAgdWludDY0X3QgZGFyOwot KyAgdWludDY0X3QgZHNpc3I7Ci0rICB1aW50NjRfdCByZXN1bHQ7Ci0rICB1aW50NjRfdCBkc2Ny OwotKyAgdWludDY0X3QgZnByMFszXTsKLSt9OwotKwotK3N0cnVjdCBTaWduYWxGbG9hdENvbnRl eHQ2NCB7Ci0rICBkb3VibGUgcmVnc1szMl07Ci0rICBkb3VibGUgZnBzY3I7Ci0rfTsKLSsKLStz dHJ1Y3QgU2lnbmFsVmVjdG9yQ29udGV4dDY0IHsKLSsgIGludDMyX3QgdnJyZWdzWzMyXVs0XTsK LSsgIHN0cnVjdCB7Ci0rICAgIGludDMyX3QgX19wYWRbM107Ci0rICAgIGludDMyX3QgdnNjcl93 b3JkOwotKyAgfSB2c2NyOwotKyAgaW50MzJfdCB2cnNhdmU7Ci0rICBpbnQzMl90IF9fcGFkWzNd OwotK30gX19hdHRyaWJ1dGVfXygoX19hbGlnbmVkX18oMTYpKSk7Ci0rCi0rCi0rI3ByYWdtYSBw YWNrKHBvcCkKLStzdHJ1Y3QgTUNvbnRleHQ2NCB7Ci0rICB1aW50NjRfdCByZXNlcnZlZFs0XTsK LSsgIGludDMyX3Qgc2lnbmFsOwotKyAgaW50MzJfdCBfX3BhZDA7Ci0rICB1aW50NjRfdCBoYW5k bGVyOwotKyAgdWludDY0X3Qgb2xkbWFzazsKLSsgIHVpbnQ2NF90IHB0X3JlZ3NfcHRyOwotKyAg U2lnbmFsVGhyZWFkQ29udGV4dDY0IGdwX3JlZ3M7Ci0rICBTaWduYWxGbG9hdENvbnRleHQ2NCAg ZnBfcmVnczsKLSsgIFNpZ25hbFZlY3RvckNvbnRleHQ2NCAqdl9yZWdzOwotKyAgaW50NjRfdCB2 bXhfcmVzZXJ2ZVs2OV07Ci0rfTsKLSsKLStzdHJ1Y3QgQ29udGV4dFRyYWl0czY0IDogcHVibGlj IFRyYWl0czY0IHsKLSsgIHVzaW5nIE1Db250ZXh0ID0gTUNvbnRleHQ2NDsKLSsgIHVzaW5nIFNp Z25hbFRocmVhZENvbnRleHQgPSBTaWduYWxUaHJlYWRDb250ZXh0NjQ7Ci0rICB1c2luZyBTaWdu YWxGbG9hdENvbnRleHQgPSBTaWduYWxGbG9hdENvbnRleHQ2NDsKLSsgIHVzaW5nIFNpZ25hbFZl Y3RvckNvbnRleHQgPSBTaWduYWxWZWN0b3JDb250ZXh0NjQ7Ci0rICB1c2luZyBDUFVDb250ZXh0 ID0gQ1BVQ29udGV4dFBQQzY0OwotK307Ci0rCi0rc3RydWN0IENvbnRleHRUcmFpdHMzMiA6IHB1 YmxpYyBUcmFpdHMzMiB7fTsKLSsKLStzdHJ1Y3QgVUNvbnRleHQgewotKyAgdWludDY0X3QgZmxh Z3M7Ci0rICB1aW50NjRfdCBsaW5rOwotKyAgU2lnbmFsU3RhY2s8Q29udGV4dFRyYWl0czY0PiBz dGFjazsKLSsgIFNpZ3NldDxDb250ZXh0VHJhaXRzNjQ+IHNpZ21hc2s7Ci0rICBNQ29udGV4dDY0 IG1jb250ZXh0OwotK307Ci0rI3ByYWdtYSBwYWNrKHB1c2gsIDEpCi0rCi0rc3RhdGljX2Fzc2Vy dChzaXplb2YoVUNvbnRleHQpID09IHNpemVvZih1Y29udGV4dF90KSwKLSsgICAgICAgICAgICAg ICJ1Y29udGV4dF90IHNpemUgbWlzbWF0Y2giKTsKLStzdGF0aWNfYXNzZXJ0KHNpemVvZihNQ29u dGV4dDY0KSA9PSBzaXplb2YobWNvbnRleHRfdCksCi0rICAgICAgICAgICAgICAibWNvbnRleHRf dCBzaXplIG1pc21hdGNoIik7Ci0rc3RhdGljX2Fzc2VydChzaXplb2YoU2lnbmFsVGhyZWFkQ29u dGV4dDY0KSA9PSBzaXplb2YoZ3JlZ3NldF90KSwKLSsgICAgICAgICAgICAgICJncmVnc2V0X3Qg c2l6ZSBtaXNtYXRjaCIpOwotK3N0YXRpY19hc3NlcnQoc2l6ZW9mKFNpZ25hbEZsb2F0Q29udGV4 dDY0KSA9PSBzaXplb2YoZnByZWdzZXRfdCksCi0rICAgICAgICAgICAgICAiZnByZWdzZXRfdCBz aXplIG1pc21hdGNoIik7Ci0rc3RhdGljX2Fzc2VydChzaXplb2YoU2lnbmFsVmVjdG9yQ29udGV4 dDY0KSA9PSBzaXplb2YodnJyZWdzZXRfdCksCi0rICAgICAgICAgICAgICAidnJyZWdzZXRfdCBz aXplIG1pc21hdGNoIik7Ci0rc3RhdGljX2Fzc2VydChvZmZzZXRvZihVQ29udGV4dCwgbWNvbnRl eHQpID09Ci0rICAgICAgICAgICAgICBvZmZzZXRvZih1Y29udGV4dF90LCB1Y19tY29udGV4dCks ICJtY29udGV4dCBvZmZzZXQgbWlzbWF0Y2giKTsKLStzdGF0aWNfYXNzZXJ0KG9mZnNldG9mKE1D b250ZXh0NjQsIGdwX3JlZ3MpID09Ci0rICAgICAgICAgICAgICBvZmZzZXRvZihtY29udGV4dF90 LCBncF9yZWdzKSwgImdwX3JlZ3Mgb2Zmc2V0IG1pc21hdGNoIik7Ci0gI2Vsc2UKLSAjZXJyb3Ig UG9ydC4KLSAjZW5kaWYgIC8vIEFSQ0hfQ1BVX1g4Nl9GQU1JTFkKLWRpZmYgLS1naXQgYS9zcmMv M3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3Qv bGludXgvc3lzdGVtX3NuYXBzaG90X2xpbnV4LmNjIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3Ro aXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L3N5c3RlbV9zbmFwc2hv dF9saW51eC5jYwotaW5kZXggODU2NGQzZDQ1Li5iNjkwZWNkNDggMTAwNjQ0Ci0tLS0gYS9zcmMv M3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3Qv bGludXgvc3lzdGVtX3NuYXBzaG90X2xpbnV4LmNjCi0rKysgYi9zcmMvM3JkcGFydHkvY2hyb21p dW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvc3lzdGVtX3Nu YXBzaG90X2xpbnV4LmNjCi1AQCAtMjAzLDYgKzIwMyw4IEBAIENQVUFyY2hpdGVjdHVyZSBTeXN0 ZW1TbmFwc2hvdExpbnV4OjpHZXRDUFVBcmNoaXRlY3R1cmUoKSBjb25zdCB7Ci0gI2VsaWYgZGVm aW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkKLSAgIHJldHVybiBwcm9jZXNzX3JlYWRlcl8tPklz NjRCaXQoKSA/IGtDUFVBcmNoaXRlY3R1cmVNSVBTNjRFTAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDoga0NQVUFyY2hpdGVjdHVyZU1JUFNFTDsKLSsjZWxpZiBkZWZpbmVk KEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKLSsgIHJldHVybiBrQ1BVQXJjaGl0ZWN0dXJlUFBDNjQ7 Ci0gI2Vsc2UKLSAjZXJyb3IgcG9ydCB0byB5b3VyIGFyY2hpdGVjdHVyZQotICNlbmRpZgotQEAg LTIxOCw2ICsyMjAsOSBAQCB1aW50MzJfdCBTeXN0ZW1TbmFwc2hvdExpbnV4OjpDUFVSZXZpc2lv bigpIGNvbnN0IHsKLSAjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKQotICAgLy8g Tm90IGltcGxlbWVudGFibGUgb24gTUlQUwotICAgcmV0dXJuIDA7Ci0rI2VsaWYgZGVmaW5lZChB UkNIX0NQVV9QUEM2NF9GQU1JTFkpCi0rICAvLyBOb3QgeWV0IGltcGxlbWVudGVkIG9uIFBQQzY0 Ci0rICByZXR1cm4gMDsKLSAjZWxzZQotICNlcnJvciBwb3J0IHRvIHlvdXIgYXJjaGl0ZWN0dXJl Ci0gI2VuZGlmCi1AQCAtMjM4LDYgKzI0Myw5IEBAIHN0ZDo6c3RyaW5nIFN5c3RlbVNuYXBzaG90 TGludXg6OkNQVVZlbmRvcigpIGNvbnN0IHsKLSAjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX01JUFNf RkFNSUxZKQotICAgLy8gTm90IGltcGxlbWVudGFibGUgb24gTUlQUwotICAgcmV0dXJuIHN0ZDo6 c3RyaW5nKCk7Ci0rI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCi0rICAvLyBO b3QgeWV0IGltcGxlbWVudGVkIG9uIFBQQzY0Ci0rICByZXR1cm4gc3RkOjpzdHJpbmcoKTsKLSAj ZWxzZQotICNlcnJvciBwb3J0IHRvIHlvdXIgYXJjaGl0ZWN0dXJlCi0gI2VuZGlmCi1AQCAtMzcx LDYgKzM3OSw5IEBAIGJvb2wgU3lzdGVtU25hcHNob3RMaW51eDo6TlhFbmFibGVkKCkgY29uc3Qg ewotICNlbGlmIGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpCi0gICAvLyBOb3QgaW1wbGVt ZW50YWJsZSBvbiBNSVBTCi0gICByZXR1cm4gZmFsc2U7Ci0rI2VsaWYgZGVmaW5lZChBUkNIX0NQ VV9QUEM2NF9GQU1JTFkpCi0rICAvLyBOb3QgeWV0IGltcGxlbWVudGVkIG9uIFBQQzY0Ci0rICBy ZXR1cm4gZmFsc2U7Ci0gI2Vsc2UKLSAjZXJyb3IgUG9ydC4KLSAjZW5kaWYgIC8vIEFSQ0hfQ1BV X1g4Nl9GQU1JTFkKLWRpZmYgLS1naXQgYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFy dHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvdGhyZWFkX3NuYXBzaG90X2xpbnV4 LmNjIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFk L3NuYXBzaG90L2xpbnV4L3RocmVhZF9zbmFwc2hvdF9saW51eC5jYwotaW5kZXggZTNlMmJlYmRk Li44ZWY0Mzc1MmUgMTAwNjQ0Ci0tLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFy dHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvdGhyZWFkX3NuYXBzaG90X2xpbnV4 LmNjCi0rKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jh c2hwYWQvc25hcHNob3QvbGludXgvdGhyZWFkX3NuYXBzaG90X2xpbnV4LmNjCi1AQCAtMTg2LDYg KzE4NiwxNCBAQCBib29sIFRocmVhZFNuYXBzaG90TGludXg6OkluaXRpYWxpemUoUHJvY2Vzc1Jl YWRlckxpbnV4KiBwcm9jZXNzX3JlYWRlciwKLSAgICAgICAgIHRocmVhZC50aHJlYWRfaW5mby5m bG9hdF9jb250ZXh0LmYzMiwKLSAgICAgICAgIGNvbnRleHRfLm1pcHNlbCk7Ci0gICB9Ci0rI2Vs aWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCi0rICBjb250ZXh0Xy5hcmNoaXRlY3R1 cmUgPSBrQ1BVQXJjaGl0ZWN0dXJlUFBDNjQ7Ci0rICBjb250ZXh0Xy5wcGM2NCA9ICZjb250ZXh0 X3VuaW9uXy5wcGM2NDsKLSsgIEluaXRpYWxpemVDUFVDb250ZXh0UFBDNjQ8Q29udGV4dFRyYWl0 czY0PigKLSsgICAgICB0aHJlYWQudGhyZWFkX2luZm8udGhyZWFkX2NvbnRleHQudDY0LAotKyAg ICAgIHRocmVhZC50aHJlYWRfaW5mby5mbG9hdF9jb250ZXh0LmY2NCwKLSsgICAgICB0aHJlYWQu dGhyZWFkX2luZm8udmVjdG9yX2NvbnRleHQudjY0LAotKyAgICAgIGNvbnRleHRfLnBwYzY0KTsK LSAjZWxzZQotICNlcnJvciBQb3J0LgotICNlbmRpZgotZGlmZiAtLWdpdCBhL3NyYy8zcmRwYXJ0 eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC90 aHJlYWRfc25hcHNob3RfbGludXguaCBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0 eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC90aHJlYWRfc25hcHNob3RfbGludXgu aAotaW5kZXggNDRjYzZmNmQ5Li5kNDEzNjQ2MWUgMTAwNjQ0Ci0tLS0gYS9zcmMvM3JkcGFydHkv Y2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvdGhy ZWFkX3NuYXBzaG90X2xpbnV4LmgKLSsrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9w YXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC90aHJlYWRfc25hcHNob3RfbGlu dXguaAotQEAgLTY4LDYgKzY4LDggQEAgY2xhc3MgVGhyZWFkU25hcHNob3RMaW51eCBmaW5hbCA6 IHB1YmxpYyBUaHJlYWRTbmFwc2hvdCB7Ci0gI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZB TUlMWSkKLSAgICAgQ1BVQ29udGV4dE1JUFMgbWlwc2VsOwotICAgICBDUFVDb250ZXh0TUlQUzY0 IG1pcHM2NDsKLSsjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKLSsgICAgQ1BV Q29udGV4dFBQQzY0IHBwYzY0OwotICNlbHNlCi0gI2Vycm9yIFBvcnQuCi0gI2VuZGlmICAvLyBB UkNIX0NQVV9YODZfRkFNSUxZCi1kaWZmIC0tZ2l0IGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3Ro aXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbGludXgvYXV4aWxpYXJ5X3ZlY3Rvci5j YyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91 dGlsL2xpbnV4L2F1eGlsaWFyeV92ZWN0b3IuY2MKLWluZGV4IGQzZDVlYmRmYi4uM2ZkNzMwY2I1 IDEwMDY0NAotLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFk L2NyYXNocGFkL3V0aWwvbGludXgvYXV4aWxpYXJ5X3ZlY3Rvci5jYwotKysrIGIvc3JjLzNyZHBh cnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbGludXgvYXV4 aWxpYXJ5X3ZlY3Rvci5jYwotQEAgLTU2LDYgKzU2LDExIEBAIGJvb2wgQXV4aWxpYXJ5VmVjdG9y OjpSZWFkKFB0cmFjZUNvbm5lY3Rpb24qIGNvbm5lY3Rpb24pIHsKLSAgICAgaWYgKHR5cGUgPT0g QVRfSUdOT1JFKSB7Ci0gICAgICAgY29udGludWU7Ci0gICAgIH0KLSsjaWYgZGVmaW5lZChBUkNI X0NQVV9QUEM2NF9GQU1JTFkpCi0rICAgIGlmICh0eXBlID09IEFUX0lHTk9SRVBQQykgewotKyAg ICAgIGNvbnRpbnVlOwotKyAgICB9Ci0rI2VuZGlmCi0gICAgIGlmICghTWFwSW5zZXJ0T3JSZXBs YWNlKCZ2YWx1ZXNfLCB0eXBlLCB2YWx1ZSwgbnVsbHB0cikpIHsKLSAgICAgICBMT0coRVJST1Ip IDw8ICJkdXBsaWNhdGUgYXV4diBlbnRyeSI7Ci0gICAgICAgcmV0dXJuIGZhbHNlOwotZGlmZiAt LWdpdCBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBh ZC91dGlsL2xpbnV4L3B0cmFjZV9icm9rZXIuY2MgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhp cmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9saW51eC9wdHJhY2VfYnJva2VyLmNjCi1p bmRleCAxNTVhMWUwYzYuLjVlNTBjZWI1ZiAxMDA2NDQKLS0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJv bWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL2xpbnV4L3B0cmFjZV9icm9r ZXIuY2MKLSsrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9j cmFzaHBhZC91dGlsL2xpbnV4L3B0cmFjZV9icm9rZXIuY2MKLUBAIC05NCw4ICs5NCw4IEBAIGlu dCBQdHJhY2VCcm9rZXI6OlJ1bigpIHsKLSB9Ci0gCi0gYm9vbCBQdHJhY2VCcm9rZXI6OkFsbG9j YXRlQXR0YWNobWVudHMoKSB7Ci0tICBjb25zdGV4cHIgc2l6ZV90IHBhZ2Vfc2l6ZSA9IDQwOTY7 Ci0tICBjb25zdGV4cHIgc2l6ZV90IGFsbG9jX3NpemUgPQotKyAgc3RhdGljIHNpemVfdCBwYWdl X3NpemUgPSBnZXRwYWdlc2l6ZSgpOwotKyAgc2l6ZV90IGFsbG9jX3NpemUgPQotICAgICAgIChz aXplb2YoU2NvcGVkUHRyYWNlQXR0YWNoKSArIHBhZ2Vfc2l6ZSAtIDEpICYgfihwYWdlX3NpemUg LSAxKTsKLSAgIHZvaWQqIGFsbG9jID0gc2JyayhhbGxvY19zaXplKTsKLSAgIGlmIChyZWludGVy cHJldF9jYXN0PGludHB0cl90PihhbGxvYykgPT0gLTEpIHsKLWRpZmYgLS1naXQgYS9zcmMvM3Jk cGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9saW51eC9w dHJhY2VyLmNjIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2Ny YXNocGFkL3V0aWwvbGludXgvcHRyYWNlci5jYwotaW5kZXggYzZjOTIyOTk0Li5jNzcwYjZiNmYg MTAwNjQ0Ci0tLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQv Y3Jhc2hwYWQvdXRpbC9saW51eC9wdHJhY2VyLmNjCi0rKysgYi9zcmMvM3JkcGFydHkvY2hyb21p dW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9saW51eC9wdHJhY2VyLmNjCi1A QCAtMzk0LDYgKzM5NCw2NCBAQCBib29sIEdldFRocmVhZEFyZWE2NChwaWRfdCB0aWQsCi0gICBy ZXR1cm4gdHJ1ZTsKLSB9Ci0gCi0rI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkp Ci0rLy8gUFBDNjQgaGFzIGhhZCBIQVZFX0FSQ0hfVFJBQ0VIT09LIHNldCBzaW5jZSAyLjYuMjcg KGV2ZW4gYmVmb3JlIHg4NiBoYWQgaXQpLgotKy8vIFRoYXQgbWVhbnMgd2UgY2FuIHNpbXBseSB1 c2UgUFRSQUNFX0dFVFJFR0VTRVQuCi0rCi0rdGVtcGxhdGUgPHR5cGVuYW1lIERlc3RpbmF0aW9u PgotK2Jvb2wgR2V0UmVnaXN0ZXJTZXQocGlkX3QgdGlkLCBpbnQgc2V0LCBEZXN0aW5hdGlvbiog ZGVzdCwgYm9vbCBjYW5fbG9nKSB7Ci0rICBpb3ZlYyBpb3Y7Ci0rICBpb3YuaW92X2Jhc2UgPSBy ZWludGVycHJldF9jYXN0PHZvaWQqPihkZXN0KTsKLSsgIGlvdi5pb3ZfbGVuID0gc2l6ZW9mKCpk ZXN0KTsKLSsgIGlmIChwdHJhY2UoUFRSQUNFX0dFVFJFR1NFVCwgdGlkLCByZWludGVycHJldF9j YXN0PHZvaWQqPihzZXQpLCAmaW92KSAhPSAwKSB7Ci0rICAgIFBMT0dfSUYoRVJST1IsIGNhbl9s b2cpIDw8ICJwdHJhY2UiOwotKyAgICByZXR1cm4gZmFsc2U7Ci0rICB9Ci0rICBpZiAoaW92Lmlv dl9sZW4gIT0gc2l6ZW9mKCpkZXN0KSkgewotKyAgICBMT0dfSUYoRVJST1IsIGNhbl9sb2cpIDw8 ICJVbmV4cGVjdGVkIHJlZ2lzdGVycyBzaXplIjsKLSsgICAgcmV0dXJuIGZhbHNlOwotKyAgfQot KyAgcmV0dXJuIHRydWU7Ci0rfQotKwotK2Jvb2wgR2V0VmVjdG9yUmVnaXN0ZXJzNjQocGlkX3Qg dGlkLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgVmVjdG9yQ29udGV4dCogY29udGV4dCwK LSsgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgY2FuX2xvZykgewotKyAgcmV0dXJuIEdl dFJlZ2lzdGVyU2V0KHRpZCwgTlRfUFBDX1ZNWCwgJmNvbnRleHQtPnY2NCwgY2FuX2xvZyk7Ci0r fQotKwotK2Jvb2wgR2V0RmxvYXRpbmdQb2ludFJlZ2lzdGVyczY0KHBpZF90IHRpZCwKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGbG9hdENvbnRleHQqIGNvbnRleHQsCi0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBjYW5fbG9nKSB7Ci0rICByZXR1cm4g R2V0UmVnaXN0ZXJTZXQodGlkLCBOVF9QUkZQUkVHLCAmY29udGV4dC0+ZjY0LCBjYW5fbG9nKTsK LSt9Ci0rCi0rYm9vbCBHZXRUaHJlYWRBcmVhNjQocGlkX3QgdGlkLAotKyAgICAgICAgICAgICAg ICAgICAgIGNvbnN0IFRocmVhZENvbnRleHQmIGNvbnRleHQsCi0rICAgICAgICAgICAgICAgICAg ICAgTGludXhWTUFkZHJlc3MqIGFkZHJlc3MsCi0rICAgICAgICAgICAgICAgICAgICAgYm9vbCBj YW5fbG9nKSB7Ci0rICAvLyBQUEM2NCBkb2Vzbid0IGhhdmUgUFRSQUNFX0dFVF9USFJFQURfQVJF QSBzaW5jZSB0aGUgdGhyZWFkIHBvaW50ZXIKLSsgIC8vIGlzIHN0b3JlZCBpbiBHUFIgMTMuCi0r ICBUaHJlYWRDb250ZXh0Ojp0NjRfdCB0YzsKLSsgIGlmICghR2V0UmVnaXN0ZXJTZXQodGlkLCBO VF9QUlNUQVRVUywgJnRjLCBjYW5fbG9nKSkgewotKyAgICBMT0dfSUYoRVJST1IsIGNhbl9sb2cp IDw8ICJVbmFibGUgdG8gZ2V0IHRocmVhZCBwb2ludGVyISI7Ci0rICAgIHJldHVybiBmYWxzZTsK LSsgIH0KLSsKLSsgICphZGRyZXNzID0gdGMuZ3ByWzEzXTsKLSsKLSsgIHJldHVybiB0cnVlOwot K30KLSsKLSsvLyBTdHVicyBmb3IgMzItYml0IGZ1bmN0aW9ucyBub3QgYXBwbGljYWJsZSBvbiBQ UEM2NAotK2Jvb2wgR2V0RmxvYXRpbmdQb2ludFJlZ2lzdGVyczMyKHBpZF90IHRpZCwKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGbG9hdENvbnRleHQqIGNvbnRleHQsCi0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBjYW5fbG9nKSB7IHJldHVybiBmYWxz ZTsgfQotK2Jvb2wgR2V0VGhyZWFkQXJlYTMyKHBpZF90IHRpZCwKLSsgICAgICAgICAgICAgICAg ICAgICBjb25zdCBUaHJlYWRDb250ZXh0ICZjb250ZXh0LAotKyAgICAgICAgICAgICAgICAgICAg IExpbnV4Vk1BZGRyZXNzICphZGRyZXNzLAotKyAgICAgICAgICAgICAgICAgICAgIGJvb2wgY2Fu X2xvZykgeyByZXR1cm4gZmFsc2U7IH0KLSsKLSAjZWxzZQotICNlcnJvciBQb3J0LgotICNlbmRp ZiAgLy8gQVJDSF9DUFVfWDg2X0ZBTUlMWQotQEAgLTQ4Niw2ICs1NDQsOSBAQCBib29sIFB0cmFj ZXI6OkdldFRocmVhZEluZm8ocGlkX3QgdGlkLCBUaHJlYWRJbmZvKiBpbmZvKSB7Ci0gICBpZiAo aXNfNjRfYml0XykgewotICAgICByZXR1cm4gR2V0R2VuZXJhbFB1cnBvc2VSZWdpc3RlcnM2NCh0 aWQsICZpbmZvLT50aHJlYWRfY29udGV4dCwgY2FuX2xvZ18pICYmCi0gICAgICAgICAgICBHZXRG bG9hdGluZ1BvaW50UmVnaXN0ZXJzNjQodGlkLCAmaW5mby0+ZmxvYXRfY29udGV4dCwgY2FuX2xv Z18pICYmCi0rI2lmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQotKyAgICAgICAgICAg R2V0VmVjdG9yUmVnaXN0ZXJzNjQodGlkLCAmaW5mby0+dmVjdG9yX2NvbnRleHQsIGNhbl9sb2df KSAmJgotKyNlbmRpZgotICAgICAgICAgICAgR2V0VGhyZWFkQXJlYTY0KHRpZCwKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICBpbmZvLT50aHJlYWRfY29udGV4dCwKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAmaW5mby0+dGhyZWFkX3NwZWNpZmljX2RhdGFfYWRkcmVzcywKLWRpZmYg LS1naXQgYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hw YWQvdXRpbC9saW51eC90aHJlYWRfaW5mby5oIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJk X3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbGludXgvdGhyZWFkX2luZm8uaAotaW5kZXgg NWI1NWMyNGE3Li5kZWEwZDFmMzkgMTAwNjQ0Ci0tLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0v dGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9saW51eC90aHJlYWRfaW5mby5oCi0r KysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQv dXRpbC9saW51eC90aHJlYWRfaW5mby5oCi1AQCAtMjgsNiArMjgsMTAgQEAKLSAjaW5jbHVkZSA8 YW5kcm9pZC9hcGktbGV2ZWwuaD4KLSAjZW5kaWYKLSAKLSsjaWYgZGVmaW5lZChBUkNIX0NQVV9Q UEM2NF9GQU1JTFkpCi0rI2luY2x1ZGUgPHN5cy91Y29udGV4dC5oPgotKyNlbmRpZgotKwotIG5h bWVzcGFjZSBjcmFzaHBhZCB7Ci0gCi0gLy8hIFxicmllZiBUaGUgc2V0IG9mIGdlbmVyYWwgcHVy cG9zZSByZWdpc3RlcnMgZm9yIGFuIGFyY2hpdGVjdHVyZSBmYW1pbHkuCi1AQCAtNzksNiArODMs OCBAQCB1bmlvbiBUaHJlYWRDb250ZXh0IHsKLSAgICAgdWludDMyX3QgY3AwX3N0YXR1czsKLSAg ICAgdWludDMyX3QgY3AwX2NhdXNlOwotICAgICB1aW50MzJfdCBwYWRkaW5nMV87Ci0rI2VsaWYg ZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCi0rICAgIC8vIFBQQzY0IGlzIDY0LWJpdAot ICNlbHNlCi0gI2Vycm9yIFBvcnQuCi0gI2VuZGlmICAvLyBBUkNIX0NQVV9YODZfRkFNSUxZCi1A QCAtMTMyLDYgKzEzOCwyMSBAQCB1bmlvbiBUaHJlYWRDb250ZXh0IHsKLSAgICAgdWludDY0X3Qg Y3AwX2JhZHZhZGRyOwotICAgICB1aW50NjRfdCBjcDBfc3RhdHVzOwotICAgICB1aW50NjRfdCBj cDBfY2F1c2U7Ci0rI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCi0rICAgIC8v IFJlZmxlY3RzIHN0cnVjdCBwdF9yZWdzIGluIGFzbS9wdHJhY2UuaC4KLSsgICAgdWludDY0X3Qg Z3ByWzMyXTsKLSsgICAgdWludDY0X3QgbmlwOwotKyAgICB1aW50NjRfdCBtc3I7Ci0rICAgIHVp bnQ2NF90IG9yaWdfZ3ByMzsKLSsgICAgdWludDY0X3QgY3RyOwotKyAgICB1aW50NjRfdCBsbms7 Ci0rICAgIHVpbnQ2NF90IHhlcjsKLSsgICAgdWludDY0X3QgY2NyOwotKyAgICB1aW50NjRfdCBz b2Z0ZTsKLSsgICAgdWludDY0X3QgdHJhcDsKLSsgICAgdWludDY0X3QgZGFyOwotKyAgICB1aW50 NjRfdCBkc2lzcjsKLSsgICAgdWludDY0X3QgcmVzdWx0OwotICNlbHNlCi0gI2Vycm9yIFBvcnQu Ci0gI2VuZGlmICAvLyBBUkNIX0NQVV9YODZfRkFNSUxZCi1AQCAtMTQzLDYgKzE2NCw4IEBAIHVu aW9uIFRocmVhZENvbnRleHQgewotICAgdXNpbmcgTmF0aXZlVGhyZWFkQ29udGV4dCA9IHVzZXJf cmVnczsKLSAjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKQotIC8vIE5vIGFwcHJv cHJpYXRlIE5hdGl2ZVRocmVhZHNDb250ZXh0IHR5cGUgYXZhaWxhYmxlIGZvciBNSVBTCi0rI2Vs aWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCi0rICB1c2luZyBOYXRpdmVUaHJlYWRD b250ZXh0ID0gc3RydWN0IHB0X3JlZ3M7Ci0gI2Vsc2UKLSAjZXJyb3IgUG9ydC4KLSAjZW5kaWYg IC8vIEFSQ0hfQ1BVX1g4Nl9GQU1JTFkgfHwgQVJDSF9DUFVfQVJNNjQKLUBAIC0yMTgsNiArMjQx LDkgQEAgdW5pb24gRmxvYXRDb250ZXh0IHsKLSAgICAgfSBmcHJlZ3NbMzJdOwotICAgICB1aW50 MzJfdCBmcGNzcjsKLSAgICAgdWludDMyX3QgZnB1X2lkOwotKyNlbGlmIGRlZmluZWQoQVJDSF9D UFVfUFBDNjRfRkFNSUxZKQotKyAgICAvLyBDcmFzaHBhZCdzIFBQQyBzdXBwb3J0IGlzIDY0LWJp dCBvbmx5LCBzbyB0aGlzCi0rICAgIC8vIDMyYml0LW9ubHkgc3RydWN0IGlzIGRlY2xhcmVkIGFz IGVtcHR5LgotICNlbHNlCi0gI2Vycm9yIFBvcnQuCi0gI2VuZGlmICAvLyBBUkNIX0NQVV9YODZf RkFNSUxZCi1AQCAtMjUyLDYgKzI3OCwxMCBAQCB1bmlvbiBGbG9hdENvbnRleHQgewotICAgICBk b3VibGUgZnByZWdzWzMyXTsKLSAgICAgdWludDMyX3QgZnBjc3I7Ci0gICAgIHVpbnQzMl90IGZw dV9pZDsKLSsjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKLSsgICAgLy8gUmVm bGVjdHMgZnByZWdzZXRfdCBpbiBzeXMvdWNvbnRleHQuaAotKyAgICBkb3VibGUgZnByZWdzWzMy XTsKLSsgICAgZG91YmxlIGZwc2NyOwotICNlbHNlCi0gI2Vycm9yIFBvcnQuCi0gI2VuZGlmICAv LyBBUkNIX0NQVV9YODZfRkFNSUxZCi1AQCAtMjgwLDYgKzMxMCw4IEBAIHVuaW9uIEZsb2F0Q29u dGV4dCB7Ci0gICBzdGF0aWNfYXNzZXJ0KHNpemVvZihmNjQpID09IHNpemVvZih1c2VyX2Zwc2lt ZF9zdHJ1Y3QpLCAiU2l6ZSBtaXNtYXRjaCIpOwotICNlbGlmIGRlZmluZWQoQVJDSF9DUFVfTUlQ U19GQU1JTFkpCi0gLy8gTm8gYXBwcm9wcmlhdGUgZmxvYXRpbmcgcG9pbnQgY29udGV4dCBuYXRp dmUgdHlwZSBmb3IgYXZhaWxhYmxlIE1JUFMuCi0rI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2 NF9GQU1JTFkpCi0rICBzdGF0aWNfYXNzZXJ0KHNpemVvZihmNjQpID09IHNpemVvZihmcHJlZ3Nl dF90KSwgIlNpemUgbWlzbWF0Y2giKTsKLSAjZWxzZQotICNlcnJvciBQb3J0LgotICNlbmRpZiAg Ly8gQVJDSF9DUFVfWDg2Ci1AQCAtMjg3LDYgKzMxOSwyNiBAQCB1bmlvbiBGbG9hdENvbnRleHQg ewotIHN0YXRpY19hc3NlcnQoc3RkOjppc19zdGFuZGFyZF9sYXlvdXQ8RmxvYXRDb250ZXh0Pjo6 dmFsdWUsCi0gICAgICAgICAgICAgICAiTm90IHN0YW5kYXJkIGxheW91dCIpOwotIAotKy8vISBc YnJpZWYgVGhlIHZlY3RvciByZWdpc3RlcnMgdXNlZCBmb3IgYW4gYXJjaGl0ZWN0dXJlIGZhbWls eQotK3VuaW9uIFZlY3RvckNvbnRleHQgewotKyAgc3RydWN0IHYzMl90IHt9IHYzMjsKLSsjaWYg ZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCi0rICBfX2F0dHJpYnV0ZV9fKChfX2FsaWdu ZWRfXygxNikpKSAvLyBWZWN0b3IgY29udGV4dCBtdXN0IGJlIGRvdWJsZXdvcmQgYWxpZ25lZC4K LSsjZW5kaWYKLSsgIHN0cnVjdCB2NjRfdCB7Ci0rI2lmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRf RkFNSUxZKQotKyAgICAvLyBSZWZsZWN0cyB2cnJlZ3NldF90IGluIHN5cy91Y29udGV4dC5oCi0r ICAgIHVpbnQzMl90IHZycmVnc1szMl1bNF07Ci0rICAgIHN0cnVjdCB7Ci0rICAgICAgdWludDMy X3QgX19wYWRbM107Ci0rICAgICAgdWludDMyX3QgdnNjcl93b3JkOwotKyAgICB9IHZzY3I7Ci0r ICAgIHVpbnQzMl90IHZyc2F2ZTsKLSsgICAgdWludDMyX3QgX19wYWRbM107Ci0rI2VuZGlmCi0r ICB9IHY2NDsKLSt9OwotKwotIC8vISBcYnJpZWYgQSBjb2xsZWN0aW9uIG9mIGBwdHJhY2VgLWFi bGUgaW5mb3JtYXRpb24gYWJvdXQgYSB0aHJlYWQuCi0gc3RydWN0IFRocmVhZEluZm8gewotICAg VGhyZWFkSW5mbygpOwotQEAgLTI5OCw2ICszNTAsOSBAQCBzdHJ1Y3QgVGhyZWFkSW5mbyB7Ci0g ICAvLyEgXGJyaWVmIFRoZSBmbG9hdGluZyBwb2ludCByZWdpc3RlcnMgZm9yIHRoZSB0aHJlYWQu Ci0gICBGbG9hdENvbnRleHQgZmxvYXRfY29udGV4dDsKLSAKLSsgIC8vISBcYnJpZWYgKE9wdGlv bmFsKSBUaGUgdmVjdG9yIHJlZ2lzdGVycyB1c2VkIGZvciB0aGUgdGhyZWFkLgotKyAgVmVjdG9y Q29udGV4dCB2ZWN0b3JfY29udGV4dDsKLSsKLSAgIC8vISBcYnJpZWYgVGhlIHRocmVhZC1sb2Nh bCBzdG9yYWdlIGFkZHJlc3MgZm9yIHRoZSB0aHJlYWQuCi0gICBMaW51eFZNQWRkcmVzcyB0aHJl YWRfc3BlY2lmaWNfZGF0YV9hZGRyZXNzOwotIH07Ci1kaWZmIC0tZ2l0IGEvc3JjLzNyZHBhcnR5 L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbWlzYy9jYXB0dXJl X2NvbnRleHQuaCBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9j cmFzaHBhZC91dGlsL21pc2MvY2FwdHVyZV9jb250ZXh0LmgKLWluZGV4IDU0MTU4OWRmZC4uNWIw ZmM4MjE4IDEwMDY0NAotLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2Ny YXNocGFkL2NyYXNocGFkL3V0aWwvbWlzYy9jYXB0dXJlX2NvbnRleHQuaAotKysrIGIvc3JjLzNy ZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbWlzYy9j YXB0dXJlX2NvbnRleHQuaAotQEAgLTY2LDYgKzY2LDcgQEAgdXNpbmcgTmF0aXZlQ1BVQ29udGV4 dCA9IHVjb250ZXh0X3Q7Ci0gLy8hICAgICBtYWNPUy9MaW51eC9GdWNoc2lhIHwgeDg2XzY0ICAg ICAgIHwgYCUlcmRpYAotIC8vISAgICAgTGludXggICAgICAgICAgICAgICB8IEFSTS9BUk02NCAg ICB8IGByMGAvYHgwYAotIC8vISAgICAgTGludXggICAgICAgICAgICAgICB8IE1JUFMvTUlQUzY0 ICB8IGAkYTBgCi0rLy8hICAgICBMaW51eCAgICAgICAgICAgICAgIHwgUFBDNjQgICAgICAgIHwg YHIzYAotIC8vIQotIC8vISAgICAgQWRkaXRpb25hbGx5LCB0aGUgdmFsdWUgYExSYCBvbiBBUk0v QVJNNjQgd2lsbCBiZSB0aGUgcmV0dXJuIGFkZHJlc3Mgb2YKLSAvLyEgICAgIHRoaXMgZnVuY3Rp b24uCi1kaWZmIC0tZ2l0IGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNo cGFkL2NyYXNocGFkL3V0aWwvbWlzYy9jYXB0dXJlX2NvbnRleHRfbGludXguUyBiL3NyYy8zcmRw YXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL21pc2MvY2Fw dHVyZV9jb250ZXh0X2xpbnV4LlMKLWluZGV4IGRlNzFlNzIzMS4uYWYwZmZmZjM5IDEwMDY0NAot LS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFk L3V0aWwvbWlzYy9jYXB0dXJlX2NvbnRleHRfbGludXguUwotKysrIGIvc3JjLzNyZHBhcnR5L2No cm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbWlzYy9jYXB0dXJlX2Nv bnRleHRfbGludXguUwotQEAgLTI4LDcgKzI4LDcgQEAKLSAgIC5nbG9ibCBDQVBUVVJFQ09OVEVY VF9TWU1CT0wyCi0gI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykK LSAgIC5iYWxpZ24gMTYsIDB4OTAKLS0jZWxpZiBkZWZpbmVkKF9fYXJtX18pIHx8IGRlZmluZWQo X19hYXJjaDY0X18pIHx8IGRlZmluZWQoX19taXBzX18pCi0rI2VsaWYgZGVmaW5lZChfX2FybV9f KSB8fCBkZWZpbmVkKF9fYWFyY2g2NF9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBkZWZpbmVk KF9fcG93ZXJwYzY0X18pCi0gICAuYmFsaWduIDQsIDB4MAotICNlbmRpZgotIAotQEAgLTQxOSw0 ICs0MTksMjE0IEBAIENBUFRVUkVDT05URVhUX1NZTUJPTDI6Ci0gICBqciAkcmEKLSAKLSAgIC5z ZXQgYXQKLSsjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rICAvLyBTdG9yZSByMC1yMzEK LSsgIHN0ZCAwLCAweGU4KDMpICAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1swXQot KyAgc3RkIDEsIDB4ZjAoMykgICAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzFdCi0r ICBzdGQgMiwgMHhmOCgzKSAgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbMl0KLSsg IC8vIG5vdGUgdGhhdCByMydzIG9yaWdpbmFsIHZhbHVlIHdhcyBsb3N0Ci0rICBzdGQgMywgMHgx MDAoMykgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbM10KLSsgIHN0ZCA0LCAweDEw OCgzKSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1s0XQotKyAgc3RkIDUsIDB4MTEw KDMpICAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzVdCi0rICBzdGQgNiwgMHgxMTgo MykgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbNl0KLSsgIHN0ZCA3LCAweDEyMCgz KSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1s3XQotKyAgc3RkIDgsIDB4MTI4KDMp ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzhdCi0rICBzdGQgOSwgMHgxMzAoMykg IC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbOV0KLSsgIHN0ZCAxMCwgMHgxMzgoMykg Ly8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1sxMF0KLSsgIHN0ZCAxMSwgMHgxNDAoMykg Ly8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1sxMV0KLSsgIHN0ZCAxMiwgMHgxNDgoMykg Ly8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1sxMl0KLSsgIHN0ZCAxMywgMHgxNTAoMykg Ly8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1sxM10KLSsgIHN0ZCAxNCwgMHgxNTgoMykg Ly8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1sxNF0KLSsgIHN0ZCAxNSwgMHgxNjAoMykg Ly8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1sxNV0KLSsgIHN0ZCAxNiwgMHgxNjgoMykg Ly8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1sxNl0KLSsgIHN0ZCAxNywgMHgxNzAoMykg Ly8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1sxN10KLSsgIHN0ZCAxOCwgMHgxNzgoMykg Ly8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1sxOF0KLSsgIHN0ZCAxOSwgMHgxODAoMykg Ly8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1sxOV0KLSsgIHN0ZCAyMCwgMHgxODgoMykg Ly8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1syMF0KLSsgIHN0ZCAyMSwgMHgxOTAoMykg Ly8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1syMV0KLSsgIHN0ZCAyMiwgMHgxOTgoMykg Ly8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1syMl0KLSsgIHN0ZCAyMywgMHgxYTAoMykg Ly8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1syM10KLSsgIHN0ZCAyNCwgMHgxYTgoMykg Ly8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1syNF0KLSsgIHN0ZCAyNSwgMHgxYjAoMykg Ly8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1syNV0KLSsgIHN0ZCAyNiwgMHgxYjgoMykg Ly8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1syNl0KLSsgIHN0ZCAyNywgMHgxYzAoMykg Ly8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1syN10KLSsgIHN0ZCAyOCwgMHgxYzgoMykg Ly8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1syOF0KLSsgIHN0ZCAyOSwgMHgxZDAoMykg Ly8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1syOV0KLSsgIHN0ZCAzMCwgMHgxZDgoMykg Ly8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1szMF0KLSsgIHN0ZCAzMSwgMHgxZTAoMykg Ly8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1szMV0KLSsKLSsgIC8vIEZvciBOSVAsIHdl IGNhbiB1c2UgdGhlIHZhbHVlIGluIHRoZSBsaW5rIHJlZ2lzdGVyCi0rICBtZmxyIDAKLSsgIHN0 ZCAwLCAweDFlOCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzW1BUX05JUF0KLSsK LSsgIC8vIENUUgotKyAgbWZjdHIgMAotKyAgc3RkIDAsIDB4MjAwKDMpIC8vIGNvbnRleHQtPnVj X21jb250ZXh0LmdwX3JlZ3NbUFRfQ1RSXQotKwotKyAgLy8gRm9yIExOSywgd2UnbGwgdXNlIHRo ZSBjYWxsZXIncyBMUiBzYXZlIGFyZWEgKDIgc3RhY2sgZnJhbWVzIHVwKS4KLSsgIC8vIHI0IGNh biBiZSB1c2VkIGFzIGEgc2NyYXRjaCByZWdpc3RlciBzaW5jZSBpdCBoYXMgYWxyZWFkeSBiZWVu IHNhdmVkLgotKyAgbGQgNCwgMCgxKQotKyAgbGQgNCwgMTYoNCkKLSsgIHN0ZCA0LCAweDIwOCgz KSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzW1BUX0xOS10KLSsKLSsgIC8vIFhFUgot KyAgbWZ4ZXIgMAotKyAgc3RkIDAsIDB4MjEwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0Lmdw X3JlZ3NbUFRfWEVSXQotKwotKyAgLy8gQ0NSCi0rICBtZmNyIDAKLSsgIHN0ZCAwLCAweDIxOCgz KSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzW1BUX0NDUl0KLSsKLSsgIC8vIE1TUiwg b3JpZ19yMywgTVEsIFRSQVAsIERBUiwgRFNJU1IsIFJFU1VMVCwgRFNDUiwKLSsgIC8vIG5vdCB1 c2VkIG9yIG5vdCByZWxldmFudCwgIHplcm8gdGhlbSBvdXQuCi0rICBsaSA0LCAwCi0rICBzdGQg NCwgMHgxZjAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1tQVF9NU1JdCi0rICBz dGQgNCwgMHgxZjgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1tQVF9PUklHX1Iz XQotKyAgc3RkIDQsIDB4MjIwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbUFRf TVFdCi0rICBzdGQgNCwgMHgyMjgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1tQ VF9UUkFQXQotKyAgc3RkIDQsIDB4MjMwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3Jl Z3NbUFRfREFSXQotKyAgc3RkIDQsIDB4MjM4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0Lmdw X3JlZ3NbUFRfRFNJU1JdCi0rICBzdGQgNCwgMHgyNDAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRl eHQuZ3BfcmVnc1tQVF9SRVNVTFRdCi0rICBzdGQgNCwgMHgyNDgoMykgLy8gY29udGV4dC0+dWNf bWNvbnRleHQuZ3BfcmVnc1tQVF9EU0NSXQotKwotKyAgLy8gVXBkYXRlIGNvbnRleHQtPnVjX21j b250ZXh0LnJlZ3MgdG8gcG9pbnQgdG8gZ3BfcmVncwotKyAgYWRkaSAwLCAzLCAweGU4Ci0rICBz dGQgMCwgMHhlMCgzKQotKwotKyAgLy8gU2F2ZSBmbG9hdGluZyBwb2ludCByZWdpc3RlcnMgMC0z MQotKyAgc3RmZCAwLCAweDI2OCgzKSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1sw XQotKyAgc3RmZCAxLCAweDI3MCgzKSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1sx XQotKyAgc3RmZCAyLCAweDI3OCgzKSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1sy XQotKyAgc3RmZCAzLCAweDI4MCgzKSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1sz XQotKyAgc3RmZCA0LCAweDI4OCgzKSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1s0 XQotKyAgc3RmZCA1LCAweDI5MCgzKSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1s1 XQotKyAgc3RmZCA2LCAweDI5OCgzKSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1s2 XQotKyAgc3RmZCA3LCAweDJhMCgzKSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1s3 XQotKyAgc3RmZCA4LCAweDJhOCgzKSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1s4 XQotKyAgc3RmZCA5LCAweDJiMCgzKSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1s5 XQotKyAgc3RmZCAxMCwgMHgyYjgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1sx MF0KLSsgIHN0ZmQgMTEsIDB4MmMwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3Nb MTFdCi0rICBzdGZkIDEyLCAweDJjOCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdz WzEyXQotKyAgc3RmZCAxMywgMHgyZDAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVn c1sxM10KLSsgIHN0ZmQgMTQsIDB4MmQ4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3Jl Z3NbMTRdCi0rICBzdGZkIDE1LCAweDJlMCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9y ZWdzWzE1XQotKyAgc3RmZCAxNiwgMHgyZTgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBf cmVnc1sxNl0KLSsgIHN0ZmQgMTcsIDB4MmYwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZw X3JlZ3NbMTddCi0rICBzdGZkIDE4LCAweDJmOCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5m cF9yZWdzWzE4XQotKyAgc3RmZCAxOSwgMHgzMDAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQu ZnBfcmVnc1sxOV0KLSsgIHN0ZmQgMjAsIDB4MzA4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0 LmZwX3JlZ3NbMjBdCi0rICBzdGZkIDIxLCAweDMxMCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4 dC5mcF9yZWdzWzIxXQotKyAgc3RmZCAyMiwgMHgzMTgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRl eHQuZnBfcmVnc1syMl0KLSsgIHN0ZmQgMjMsIDB4MzIwKDMpIC8vIGNvbnRleHQtPnVjX21jb250 ZXh0LmZwX3JlZ3NbMjNdCi0rICBzdGZkIDI0LCAweDMyOCgzKSAvLyBjb250ZXh0LT51Y19tY29u dGV4dC5mcF9yZWdzWzI0XQotKyAgc3RmZCAyNSwgMHgzMzAoMykgLy8gY29udGV4dC0+dWNfbWNv bnRleHQuZnBfcmVnc1syNV0KLSsgIHN0ZmQgMjYsIDB4MzM4KDMpIC8vIGNvbnRleHQtPnVjX21j b250ZXh0LmZwX3JlZ3NbMjZdCi0rICBzdGZkIDI3LCAweDM0MCgzKSAvLyBjb250ZXh0LT51Y19t Y29udGV4dC5mcF9yZWdzWzI3XQotKyAgc3RmZCAyOCwgMHgzNDgoMykgLy8gY29udGV4dC0+dWNf bWNvbnRleHQuZnBfcmVnc1syOF0KLSsgIHN0ZmQgMjksIDB4MzUwKDMpIC8vIGNvbnRleHQtPnVj X21jb250ZXh0LmZwX3JlZ3NbMjldCi0rICBzdGZkIDMwLCAweDM1OCgzKSAvLyBjb250ZXh0LT51 Y19tY29udGV4dC5mcF9yZWdzWzMwXQotKyAgc3RmZCAzMSwgMHgzNjAoMykgLy8gY29udGV4dC0+ dWNfbWNvbnRleHQuZnBfcmVnc1szMV0KLSsKLSsgIC8vIEZQU0NSCi0rICBtZmZzIDAKLSsgIHN0 ZmQgMCwgMHgzNjgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1szMl0KLSsKLSsg IC8vIFNhdmUgVk1YIFZlY3RvciByZWdpc3RlcnMKLSsgIC8vIFVwZGF0ZSByNCB0byBjb250YWlu IHRoZSBiYXNlIGFkZHJlc3Mgb2Ygdm14X3Jlc2VydmUKLSsgIGFkZGkgNCwgMywgMHgzNzgKLSsg IC8vIEVuc3VyZSB0aGF0IGl0IGlzIHF1YWR3b3JkIGFsaWduZWQKLSsgIGFuZGkuIDUsIDQsIDB4 RgotKyAgYmVxIDFmIC8vIE5vIGFsaWdubWVudCBpcyBuZWNlc3NhcnkKLSsgIC8vIEFkZHJlc3Mg aXMgZG91Ymxld29yZCBhbGlnbmVkIGFuZCBub3QgcXVhZHdvcmQgYWxpZ25lZCwgYWRkIDgKLSsg IGFkZGkgNCwgNCwgOAotKwotKzE6Ci0rICAvLyBTdG9yZSBWTVggcmVnaXN0ZXJzIDAtMzEKLSsg IC8vIHI0IHdpbGwgY29udGFpbiB0aGUgYmFzZSBhZGRyZXNzCi0rICAvLyByNSB3aWxsIGNvbnRh aW4gdGhlIGluZGV4Ci0rICBsaSA1LCAwCi0rICBzdHZ4IDAsIDQsIDUgICAvLyBjb250ZXh0LT51 Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMF0KLSsgIGFkZGkgNSwgNSwgMTYKLSsg IHN0dnggMSwgNCwgNSAgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZlWyhhbGln bikgKyAxXQotKyAgYWRkaSA1LCA1LCAxNgotKyAgc3R2eCAyLCA0LCA1ICAgLy8gY29udGV4dC0+ dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWduKSArIDJdCi0rICBhZGRpIDUsIDUsIDE2Ci0r ICBzdHZ4IDMsIDQsIDUgICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxp Z24pICsgM10KLSsgIGFkZGkgNSwgNSwgMTYKLSsgIHN0dnggNCwgNCwgNSAgIC8vIGNvbnRleHQt PnVjX21jb250ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikgKyA0XQotKyAgYWRkaSA1LCA1LCAxNgot KyAgc3R2eCA1LCA0LCA1ICAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFs aWduKSArIDVdCi0rICBhZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDYsIDQsIDUgICAvLyBjb250ZXh0 LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgNl0KLSsgIGFkZGkgNSwgNSwgMTYK LSsgIHN0dnggNywgNCwgNSAgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZlWyhh bGlnbikgKyA3XQotKyAgYWRkaSA1LCA1LCAxNgotKyAgc3R2eCA4LCA0LCA1ICAgLy8gY29udGV4 dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWduKSArIDhdCi0rICBhZGRpIDUsIDUsIDE2 Ci0rICBzdHZ4IDksIDQsIDUgICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVso YWxpZ24pICsgOV0KLSsgIGFkZGkgNSwgNSwgMTYKLSsgIHN0dnggMTAsIDQsIDUgIC8vIGNvbnRl eHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikgKyAxMF0KLSsgIGFkZGkgNSwgNSwg MTYKLSsgIHN0dnggMTEsIDQsIDUgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZl WyhhbGlnbikgKyAxMV0KLSsgIGFkZGkgNSwgNSwgMTYKLSsgIHN0dnggMTIsIDQsIDUgIC8vIGNv bnRleHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikgKyAxMl0KLSsgIGFkZGkgNSwg NSwgMTYKLSsgIHN0dnggMTMsIDQsIDUgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9yZXNl cnZlWyhhbGlnbikgKyAxM10KLSsgIGFkZGkgNSwgNSwgMTYKLSsgIHN0dnggMTQsIDQsIDUgIC8v IGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikgKyAxNF0KLSsgIGFkZGkg NSwgNSwgMTYKLSsgIHN0dnggMTUsIDQsIDUgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9y ZXNlcnZlWyhhbGlnbikgKyAxNV0KLSsgIGFkZGkgNSwgNSwgMTYKLSsgIHN0dnggMTYsIDQsIDUg IC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikgKyAxNl0KLSsgIGFk ZGkgNSwgNSwgMTYKLSsgIHN0dnggMTcsIDQsIDUgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZt eF9yZXNlcnZlWyhhbGlnbikgKyAxN10KLSsgIGFkZGkgNSwgNSwgMTYKLSsgIHN0dnggMTgsIDQs IDUgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikgKyAxOF0KLSsg IGFkZGkgNSwgNSwgMTYKLSsgIHN0dnggMTksIDQsIDUgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0 LnZteF9yZXNlcnZlWyhhbGlnbikgKyAxOV0KLSsgIGFkZGkgNSwgNSwgMTYKLSsgIHN0dnggMjAs IDQsIDUgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikgKyAyMF0K LSsgIGFkZGkgNSwgNSwgMTYKLSsgIHN0dnggMjEsIDQsIDUgIC8vIGNvbnRleHQtPnVjX21jb250 ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikgKyAyMV0KLSsgIGFkZGkgNSwgNSwgMTYKLSsgIHN0dngg MjIsIDQsIDUgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikgKyAy Ml0KLSsgIGFkZGkgNSwgNSwgMTYKLSsgIHN0dnggMjMsIDQsIDUgIC8vIGNvbnRleHQtPnVjX21j b250ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikgKyAyM10KLSsgIGFkZGkgNSwgNSwgMTYKLSsgIHN0 dnggMjQsIDQsIDUgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikg KyAyNF0KLSsgIGFkZGkgNSwgNSwgMTYKLSsgIHN0dnggMjUsIDQsIDUgIC8vIGNvbnRleHQtPnVj X21jb250ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikgKyAyNV0KLSsgIGFkZGkgNSwgNSwgMTYKLSsg IHN0dnggMjYsIDQsIDUgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZlWyhhbGln bikgKyAyNl0KLSsgIGFkZGkgNSwgNSwgMTYKLSsgIHN0dnggMjcsIDQsIDUgIC8vIGNvbnRleHQt PnVjX21jb250ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikgKyAyN10KLSsgIGFkZGkgNSwgNSwgMTYK LSsgIHN0dnggMjgsIDQsIDUgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZlWyhh bGlnbikgKyAyOF0KLSsgIGFkZGkgNSwgNSwgMTYKLSsgIHN0dnggMjksIDQsIDUgIC8vIGNvbnRl eHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikgKyAyOV0KLSsgIGFkZGkgNSwgNSwg MTYKLSsgIHN0dnggMzAsIDQsIDUgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZl WyhhbGlnbikgKyAzMF0KLSsgIGFkZGkgNSwgNSwgMTYKLSsgIHN0dnggMzEsIDQsIDUgIC8vIGNv bnRleHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikgKyAzMV0KLSsgIGFkZGkgNSwg NSwgMTYKLSsKLSsgIC8vIFZTQ1IKLSsgIG1mdnNjciAwCi0rICBzdHZ4IDAsIDQsIDUKLSsgIGFk ZGkgNSwgNSwgMTYKLSsKLSsgIC8vIFZSU0FWRQotKyAgbWZ2cnNhdmUgMAotKyAgc3R3eCAwLCA0 LCA1Ci0rCi0rICAvLyBVcGRhdGUgY29udGV4dC0+dWNfbWNvbnRleHQudl9yZWdzIHRvIHBvaW50 IHRvIHZteF9yZXNlcnZlICsgYWxpZ25tZW50LgotKyAgc3RkIDQsIDB4MzcwKDMpCi0rCi0rICAv LyBaZXJvIG91dCBhbGwgdW51c2VkIGZpZWxkcwotKyAgbGkgNCwgMAotKyAgc3RkIDQsIDB4Yzgo MykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuc2lnbmFsCi0rICBzdGQgNCwgMHhkMCgzKSAvLyBj b250ZXh0LT51Y19tY29udGV4dC5oYW5kbGVyCi0rICBzdGQgNCwgMHhkOCgzKSAvLyBjb250ZXh0 LT51Y19tY29udGV4dC5vbGRtYXNrCi0rCi0rICBibHIKLSAjZW5kaWYgIC8vIF9faTM4Nl9fCi1k aWZmIC0tZ2l0IGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2Ny YXNocGFkL3V0aWwvbWlzYy9jYXB0dXJlX2NvbnRleHRfdGVzdC5jYyBiL3NyYy8zcmRwYXJ0eS9j aHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL21pc2MvY2FwdHVyZV9j b250ZXh0X3Rlc3QuY2MKLWluZGV4IGNmMjNjMmRlZi4uNWYyNjRiYzkyIDEwMDY0NAotLS0tIGEv c3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwv bWlzYy9jYXB0dXJlX2NvbnRleHRfdGVzdC5jYwotKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVt L3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbWlzYy9jYXB0dXJlX2NvbnRleHRf dGVzdC5jYwotQEAgLTU3LDcgKzU3LDcgQEAgdm9pZCBUZXN0Q2FwdHVyZUNvbnRleHQoKSB7Ci0g ICB1aW50cHRyX3QgcGMgPSBQcm9ncmFtQ291bnRlckZyb21Db250ZXh0KGNvbnRleHRfMSk7Ci0g Ci0gI2lmICFkZWZpbmVkKEFERFJFU1NfU0FOSVRJWkVSKSAmJiAhZGVmaW5lZChBUkNIX0NQVV9N SVBTX0ZBTUlMWSkgJiYgXAotLSAgICAhZGVmaW5lZChNRU1PUllfU0FOSVRJWkVSKQotKyAgICAh ZGVmaW5lZChNRU1PUllfU0FOSVRJWkVSKSAmJiAhZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1J TFkpCi0gICAvLyBTYW5pdGl6ZXJzIGNhbiBjYXVzZSBlbm91Z2ggY29kZSBibG9hdCB0aGF0IHRo ZSDigJxuZWFyYnnigJ0gY2hlY2sgd291bGQKLSAgIC8vIGxpa2VseSBmYWlsLgotICAgY29uc3Qg dWludHB0cl90IGtSZWZlcmVuY2VQQyA9Ci1kaWZmIC0tZ2l0IGEvc3JjLzNyZHBhcnR5L2Nocm9t aXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbWlzYy9jYXB0dXJlX2NvbnRl eHRfdGVzdF91dGlsX2xpbnV4LmNjIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5 L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbWlzYy9jYXB0dXJlX2NvbnRleHRfdGVzdF91dGlsX2xp bnV4LmNjCi1pbmRleCA5ZmM1ZGIyOGMuLjVmNjlmOGRjZSAxMDA2NDQKLS0tLSBhL3NyYy8zcmRw YXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL21pc2MvY2Fw dHVyZV9jb250ZXh0X3Rlc3RfdXRpbF9saW51eC5jYwotKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9t aXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbWlzYy9jYXB0dXJlX2NvbnRl eHRfdGVzdF91dGlsX2xpbnV4LmNjCi1AQCAtMzYsNiArMzYsOCBAQCB2b2lkIFNhbml0eUNoZWNr Q29udGV4dChjb25zdCBOYXRpdmVDUFVDb250ZXh0JiBjb250ZXh0KSB7Ci0gICBFWFBFQ1RfRVEo Y29udGV4dC51Y19tY29udGV4dC5yZWdzWzBdLCBGcm9tUG9pbnRlckNhc3Q8dWludHB0cl90Pigm Y29udGV4dCkpOwotICNlbGlmIGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpCi0gICBFWFBF Q1RfRVEoY29udGV4dC51Y19tY29udGV4dC5ncmVnc1s0XSwgRnJvbVBvaW50ZXJDYXN0PHVpbnRw dHJfdD4oJmNvbnRleHQpKTsKLSsjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkK LSsgIEVYUEVDVF9FUShjb250ZXh0LnVjX21jb250ZXh0LmdwX3JlZ3NbM10sIEZyb21Qb2ludGVy Q2FzdDx1aW50cHRyX3Q+KCZjb250ZXh0KSk7Ci0gI2VuZGlmCi0gfQotIAotQEAgLTUwLDYgKzUy LDggQEAgdWludHB0cl90IFByb2dyYW1Db3VudGVyRnJvbUNvbnRleHQoY29uc3QgTmF0aXZlQ1BV Q29udGV4dCYgY29udGV4dCkgewotICAgcmV0dXJuIGNvbnRleHQudWNfbWNvbnRleHQucGM7Ci0g I2VsaWYgZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkKLSAgIHJldHVybiBjb250ZXh0LnVj X21jb250ZXh0LnBjOwotKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQotKyAg cmV0dXJuIGNvbnRleHQudWNfbWNvbnRleHQuZ3BfcmVnc1tQVF9OSVBdOwotICNlbmRpZgotIH0K LSAKLUBAIC02NCw2ICs2OCw4IEBAIHVpbnRwdHJfdCBTdGFja1BvaW50ZXJGcm9tQ29udGV4dChj b25zdCBOYXRpdmVDUFVDb250ZXh0JiBjb250ZXh0KSB7Ci0gICByZXR1cm4gY29udGV4dC51Y19t Y29udGV4dC5zcDsKLSAjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKQotICAgcmV0 dXJuIGNvbnRleHQudWNfbWNvbnRleHQuZ3JlZ3NbMjldOwotKyNlbGlmIGRlZmluZWQoQVJDSF9D UFVfUFBDNjRfRkFNSUxZKQotKyAgcmV0dXJuIGNvbnRleHQudWNfbWNvbnRleHQuZ3BfcmVnc1sx XTsKLSAjZW5kaWYKLSB9Ci0gCi1kaWZmIC0tZ2l0IGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3Ro aXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvcG9zaXgvc2lnbmFsc190ZXN0LmNjIGIv c3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwv cG9zaXgvc2lnbmFsc190ZXN0LmNjCi1pbmRleCA1OGJmYThmODMuLjhmYzM3YzQ2NCAxMDA2NDQK LS0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBh ZC91dGlsL3Bvc2l4L3NpZ25hbHNfdGVzdC5jYwotKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVt L3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvcG9zaXgvc2lnbmFsc190ZXN0LmNj Ci1AQCAtNDYsMTIgKzQ2LDEyIEBAIGJvb2wgQ2FuQ2F1c2VTaWduYWwoaW50IHNpZykgewotICAg cmV0dXJuIHNpZyA9PSBTSUdBQlJUIHx8Ci0gICAgICAgICAgc2lnID09IFNJR0FMUk0gfHwKLSAg ICAgICAgICBzaWcgPT0gU0lHQlVTIHx8Ci0tI2lmICFkZWZpbmVkKEFSQ0hfQ1BVX0FSTTY0KQot KyNpZiAhZGVmaW5lZChBUkNIX0NQVV9BUk02NCkgJiYgIWRlZmluZWQoQVJDSF9DUFVfUFBDNjQp Ci0gICAgICAgICAgc2lnID09IFNJR0ZQRSB8fAotLSNlbmRpZiAgLy8gIWRlZmluZWQoQVJDSF9D UFVfQVJNNjQpCi0rI2VuZGlmICAvLyAhZGVmaW5lZChBUkNIX0NQVV9BUk02NCkgJiYgIWRlZmlu ZWQoQVJDSF9DUFVfUFBDNjQpCi0gI2lmIGRlZmluZWQoQVJDSF9DUFVfWDg2X0ZBTUlMWSkgfHwg ZGVmaW5lZChBUkNIX0NQVV9BUk1FTCkKLSAgICAgICAgICBzaWcgPT0gU0lHSUxMIHx8Ci0tI2Vu ZGlmICAvLyBkZWZpbmVkKEFSQ0hfQ1BVX1g4Nl9GQU1JTFkpIHx8IGRlZmluZWQoQVJDSF9DUFVf QVJNRUwKLSsjZW5kaWYgIC8vIGRlZmluZWQoQVJDSF9DUFVfWDg2X0ZBTUlMWSkgfHwgZGVmaW5l ZChBUkNIX0NQVV9BUk1FTCkKLSAgICAgICAgICBzaWcgPT0gU0lHUElQRSB8fAotICAgICAgICAg IHNpZyA9PSBTSUdTRUdWIHx8Ci0gI2lmIGRlZmluZWQoT1NfTUFDT1NYKQotQEAgLTExNyw5ICsx MTcsMTEgQEAgdm9pZCBDYXVzZVNpZ25hbChpbnQgc2lnKSB7Ci0gICAgICAgYnJlYWs7Ci0gICAg IH0KLSAKLS0jaWYgIWRlZmluZWQoQVJDSF9DUFVfQVJNNjQpCi0rI2lmICFkZWZpbmVkKEFSQ0hf Q1BVX0FSTTY0KSAmJiAhZGVmaW5lZChBUkNIX0NQVV9QUEM2NCkKLSAgICAgLy8gQVJNNjQgaGFz IGhhcmR3YXJlIGludGVnZXIgZGl2aXNpb24gaW5zdHJ1Y3Rpb25zIHRoYXQgZG9u4oCZdCBnZW5l cmF0ZSBhCi0gICAgIC8vIHRyYXAgZm9yIGRpdmlkZS1ieS16ZXJvLCBzbyB0aGlzIGRvZXNu4oCZ dCBwcm9kdWNlIFNJR0ZQRS4KLSsgICAgLy8KLSsgICAgLy8gUFBDNjQgZml4ZWQtcG9pbnQgZGl2 aXNpb24gYnkgemVybyBhbHNvIGRvZXNuJ3QgcHJvZHVjZSBhIFNJR0ZQRS4KLSAgICAgY2FzZSBT SUdGUEU6IHsKLSAgICAgICAvLyBPcHRpbWl6YXRpb24gbWFrZXMgdGhpcyB0cmlja3ksIHNvIGdl dCB6ZXJvIGZyb20gYSBzeXN0ZW0gY2FsbCBsaWtlbHkKLSAgICAgICAvLyB0byBzdWNjZWVkLCBh bmQgdHJ5IHRvIGRvIHNvbWV0aGluZyB3aXRoIHRoZSByZXN1bHQuCi1AQCAtMTM3LDcgKzEzOSw3 IEBAIHZvaWQgQ2F1c2VTaWduYWwoaW50IHNpZykgewotICAgICAgIGZzdGF0KHF1b3RpZW50LCAm c3RhdF9idWYpOwotICAgICAgIGJyZWFrOwotICAgICB9Ci0tI2VuZGlmICAvLyBBUkNIX0NQVV9B Uk02NAotKyNlbmRpZiAgLy8gIWRlZmluZWQoQVJDSF9DUFVfQVJNNjQpICYmICFkZWZpbmVkKEFS Q0hfQ1BVX1BQQzY0KQotIAotICNpZiBkZWZpbmVkKEFSQ0hfQ1BVX1g4Nl9GQU1JTFkpIHx8IGRl ZmluZWQoQVJDSF9DUFVfQVJNRUwpCi0gICAgIGNhc2UgU0lHSUxMOiB7Ci1kaWZmIC0tZ2l0IGEv c3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2RhdjFkL0JVSUxELmduIGIvc3JjLzNy ZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2RhdjFkL0JVSUxELmduCi1pbmRleCA2M2YxMmY4 MDUuLjk5Y2MxM2ZkOSAxMDA2NDQKLS0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9w YXJ0eS9kYXYxZC9CVUlMRC5nbgotKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3Bh cnR5L2RhdjFkL0JVSUxELmduCi1AQCAtMTc3LDYgKzE3Nyw4IEBAIHN0YXRpY19saWJyYXJ5KCJk YXYxZF84Yml0IikgewotICAgICBzb3VyY2VzICs9IGFybV90ZW1wbGF0ZV9zb3VyY2VzCi0gICB9 IGVsc2UgaWYgKGN1cnJlbnRfY3B1ID09ICJhcm02NCIpIHsKLSAgICAgc291cmNlcyArPSBhcm1f dGVtcGxhdGVfc291cmNlcwotKyAgfSBlbHNlIGlmIChjdXJyZW50X2NwdSA9PSAicHBjNjQiKSB7 Ci0rICAgIHNvdXJjZXMgKz0gcHBjNjRfdGVtcGxhdGVfc291cmNlcwotICAgfQotIAotICAgY2Zs YWdzID0gZGF2MWRfY29wdHMKLUBAIC0yMDUsNiArMjA3LDggQEAgc3RhdGljX2xpYnJhcnkoImRh djFkXzEwYml0IikgewotICAgICBzb3VyY2VzICs9IGFybV90ZW1wbGF0ZV9zb3VyY2VzCi0gICB9 IGVsc2UgaWYgKGN1cnJlbnRfY3B1ID09ICJhcm02NCIpIHsKLSAgICAgc291cmNlcyArPSBhcm1f dGVtcGxhdGVfc291cmNlcwotKyAgfSBlbHNlIGlmIChjdXJyZW50X2NwdSA9PSAicHBjNjQiKSB7 Ci0rICAgIHNvdXJjZXMgKz0gcHBjNjRfdGVtcGxhdGVfc291cmNlcwotICAgfQotIAotICAgY2Zs YWdzID0gZGF2MWRfY29wdHMKLUBAIC0yNDQsNiArMjQ4LDIxIEBAIGlmIChjdXJyZW50X2NwdSA9 PSAieDg2IiB8fCBjdXJyZW50X2NwdSA9PSAieDY0IikgewotICAgICAgICI6ZGF2MWRfY29uZmln IiwKLSAgICAgXQotIAotKyAgICBjZmxhZ3MgPSBkYXYxZF9jb3B0cwotKyAgfQotK30gZWxzZSBp ZiAoY3VycmVudF9jcHUgPT0gInBwYzY0IikgewotKyAgc3RhdGljX2xpYnJhcnkoImRhdjFkX3Bw YyIpIHsKLSsgICAgc291cmNlcyA9IFsKLSsgICAgICAibGliZGF2MWQvc3JjL3BwYy9jcHUuYyIs Ci0rICAgICAgImxpYmRhdjFkL3NyYy9wcGMvY3B1LmgiLAotKyAgICBdCi0rCi0rICAgIGNvbmZp Z3MgLT0gWyAiLy9idWlsZC9jb25maWcvY29tcGlsZXI6Y2hyb21pdW1fY29kZSIgXQotKyAgICBj b25maWdzICs9IFsKLSsgICAgICAiLy9idWlsZC9jb25maWcvY29tcGlsZXI6bm9fY2hyb21pdW1f Y29kZSIsCi0rICAgICAgIjpkYXYxZF9jb25maWciLAotKyAgICBdCi0rCi0gICAgIGNmbGFncyA9 IGRhdjFkX2NvcHRzCi0gICB9Ci0gfQotQEAgLTI3Myw1ICsyOTIsNyBAQCBzdGF0aWNfbGlicmFy eSgiZGF2MWQiKSB7Ci0gICAgIH0KLSAgIH0gZWxzZSBpZiAoY3VycmVudF9jcHUgPT0gImFybSIg fHwgY3VycmVudF9jcHUgPT0gImFybTY0IikgewotICAgICBkZXBzICs9IFsgIjpkYXYxZF9hcm0i IF0KLSsgIH0gZWxzZSBpZiAoY3VycmVudF9jcHUgPT0gInBwYzY0IikgewotKyAgICBkZXBzICs9 IFsgIjpkYXYxZF9wcGMiIF0KLSAgIH0KLSB9Ci1kaWZmIC0tZ2l0IGEvc3JjLzNyZHBhcnR5L2No cm9taXVtL3RoaXJkX3BhcnR5L2RhdjFkL2NvbmZpZy9saW51eC9wcGM2NC9jb25maWcuaCBiL3Ny Yy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9kYXYxZC9jb25maWcvbGludXgvcHBjNjQv Y29uZmlnLmgKLW5ldyBmaWxlIG1vZGUgMTAwNjQ0Ci1pbmRleCAwMDAwMDAwMDAuLmY2Y2E1N2Y3 ZgotLS0tIC9kZXYvbnVsbAotKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5 L2RhdjFkL2NvbmZpZy9saW51eC9wcGM2NC9jb25maWcuaAotQEAgLTAsMCArMSwzNSBAQAotKy8q Ci0rICogQXV0b2dlbmVyYXRlZCBieSB0aGUgTWVzb24gYnVpbGQgc3lzdGVtLgotKyAqIERvIG5v dCBlZGl0LCB5b3VyIGNoYW5nZXMgd2lsbCBiZSBsb3N0LgotKyAqLwotKwotKyNwcmFnbWEgb25j ZQotKwotKyNkZWZpbmUgQVJDSF9BQVJDSDY0IDAKLSsKLSsjZGVmaW5lIEFSQ0hfQVJNIDAKLSsK LSsjZGVmaW5lIEFSQ0hfUFBDNjRMRSAxCi0rCi0rI2RlZmluZSBBUkNIX1g4NiAwCi0rCi0rI2Rl ZmluZSBBUkNIX1g4Nl8zMiAwCi0rCi0rI2RlZmluZSBBUkNIX1g4Nl82NCAwCi0rCi0rI2RlZmlu ZSBDT05GSUdfMTZCUEMgMQotKwotKyNkZWZpbmUgQ09ORklHXzhCUEMgMQotKwotKyNkZWZpbmUg Q09ORklHX0xPRyAxCi0rCi0rI2RlZmluZSBFTkRJQU5ORVNTX0JJRyAwCi0rCi0rI2RlZmluZSBI QVZFX0FTTSAxCi0rCi0rI2RlZmluZSBIQVZFX0dFVEFVWFZBTCAxCi0rCi0rI2RlZmluZSBIQVZF X1BPU0lYX01FTUFMSUdOIDEKLSsKLSsjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQotKwotZGlmZiAt LWdpdCBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9kYXYxZC9kYXYxZF9nZW5l cmF0ZWQuZ25pIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2RhdjFkL2RhdjFk X2dlbmVyYXRlZC5nbmkKLWluZGV4IGU1YzZmZGEzMS4uMzRjMDMyMGY0IDEwMDY0NAotLS0tIGEv c3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2RhdjFkL2RhdjFkX2dlbmVyYXRlZC5n bmkKLSsrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9kYXYxZC9kYXYxZF9n ZW5lcmF0ZWQuZ25pCi1AQCAtNjEsNiArNjEsMTEgQEAgYXJtX3RlbXBsYXRlX3NvdXJjZXMgPSBb Ci0gICAibGliZGF2MWQvc3JjL2FybS9tY19pbml0X3RtcGwuYyIsCi0gXQotIAotK3BwYzY0X3Rl bXBsYXRlX3NvdXJjZXMgPSBbCi0rICAibGliZGF2MWQvc3JjL3BwYy9jZGVmX2luaXRfdG1wbC5j IiwKLSsgICJsaWJkYXYxZC9zcmMvcHBjL2xvb3ByZXN0b3JhdGlvbl9pbml0X3RtcGwuYyIsCi0r XQotKwotIHRlbXBsYXRlX3NvdXJjZXMgPSBbCi0gICAibGliZGF2MWQvc3JjL2NkZWZfYXBwbHlf dG1wbC5jIiwKLSAgICJsaWJkYXYxZC9zcmMvY2RlZl90bXBsLmMiLAotZGlmZiAtLWdpdCBhL3Ny Yy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9kYXYxZC9nZW5lcmF0ZV9zb3VyY2UucHkg Yi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvZGF2MWQvZ2VuZXJhdGVfc291cmNl LnB5Ci1pbmRleCAwY2ExYzU1OTUuLjQ2YWU5MmVjNyAxMDA3NTUKLS0tLSBhL3NyYy8zcmRwYXJ0 eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9kYXYxZC9nZW5lcmF0ZV9zb3VyY2UucHkKLSsrKyBiL3Ny Yy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9kYXYxZC9nZW5lcmF0ZV9zb3VyY2UucHkK LUBAIC01Myw3ICs1Myw4IEBAIGRlZiBXcml0ZUduKGZkKToKLSAgIFdyaXRlQXJyYXkoZmQsICJh cm0zMl9hc21fc291cmNlcyIsIGdsb2IuZ2xvYigibGliZGF2MWQvc3JjL2FybS8zMi8qLlMiKSkK LSAgIFdyaXRlQXJyYXkoZmQsICJhcm02NF9hc21fc291cmNlcyIsIGdsb2IuZ2xvYigibGliZGF2 MWQvc3JjL2FybS82NC8qLlMiKSkKLSAgIFdyaXRlQXJyYXkoZmQsICJhcm1fdGVtcGxhdGVfc291 cmNlcyIsIGdsb2IuZ2xvYigibGliZGF2MWQvc3JjL2FybS8qX3RtcGwuYyIpKQotLQotKyAgV3Jp dGVBcnJheShmZCwgInBwYzY0X3RlbXBsYXRlX3NvdXJjZXMiLCBnbG9iLmdsb2IoImxpYmRhdjFk L3NyYy9wcGMvKl90bXBsLmMiKSkKLSsgCi0gICB0ZW1wbGF0ZV9zb3VyY2VzID0gZ2xvYi5nbG9i KCJsaWJkYXYxZC9zcmMvKl90bXBsLmMiKQotICAgV3JpdGVBcnJheShmZCwgInRlbXBsYXRlX3Nv dXJjZXMiLCB0ZW1wbGF0ZV9zb3VyY2VzKQotIAotZGlmZiAtLWdpdCBhL3NyYy8zcmRwYXJ0eS9j aHJvbWl1bS90aGlyZF9wYXJ0eS9kYXYxZC9saWJkYXYxZC9zcmMvcHBjL3R5cGVzLmggYi9zcmMv M3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvZGF2MWQvbGliZGF2MWQvc3JjL3BwYy90eXBl cy5oCi1pbmRleCAwYjRiZDcyZjAuLmEwY2FhNWU3MSAxMDA2NDQKLS0tLSBhL3NyYy8zcmRwYXJ0 eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9kYXYxZC9saWJkYXYxZC9zcmMvcHBjL3R5cGVzLmgKLSsr KyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9kYXYxZC9saWJkYXYxZC9zcmMv cHBjL3R5cGVzLmgKLUBAIC01MSw0ICs1MSwxOSBAQAotICNkZWZpbmUgdTE2bF90b19pMzIodikg KChpMzJ4NCkgdmVjX21lcmdlbCgodTE2eDgpIHYsIHZlY19zcGxhdF91MTYoMCkpKQotICNkZWZp bmUgaTE2bF90b19pMzIodikgKChpMzJ4NCkgdmVjX3VucGFja2woKGkxNng4KXYpKQotIAotKyNp ZiBkZWZpbmVkKF9fY2xhbmdfXykKLSsjdW5kZWYgdmVjX3NwbGF0cwotKyNkZWZpbmUgdmVjX3Nw bGF0cyhOKSAgICAgICAgICAgICAgICAgICAgIFwKLSsgICAgX0dlbmVyaWMoKE4pLCAgICAgICAg ICAgICAgICAgICAgICAgICBcCi0rICAgICAgICB1bnNpZ25lZCBjaGFyOiAgICAgICgodTh4MTYp KE4pKSwgXAotKyAgICAgICAgc2lnbmVkIGNoYXI6ICAgICAgICAoKGk4eDE2KShOKSksIFwKLSsg ICAgICAgIHVuc2lnbmVkIHNob3J0OiAgICAgKCh1MTZ4OCkoTikpLCBcCi0rICAgICAgICBzaWdu ZWQgc2hvcnQ6ICAgICAgICgoaTE2eDgpKE4pKSwgXAotKyAgICAgICAgdW5zaWduZWQgaW50OiAg ICAgICAoKHUzMng0KShOKSksIFwKLSsgICAgICAgIHNpZ25lZCBpbnQ6ICAgICAgICAgKChpMzJ4 NCkoTikpLCBcCi0rICAgICAgICB1bnNpZ25lZCBsb25nIGxvbmc6ICgodTY0eDIpKE4pKSwgXAot KyAgICAgICAgc2lnbmVkIGxvbmcgbG9uZzogICAoKGk2NHgyKShOKSkgIFwKLSsgICAgKQotKyNl bmRpZgotKwotICNlbmRpZiAvKiBEQVYxRF9TUkNfUFBDX1RZUEVTX0ggKi8KLWRpZmYgLS1naXQg YS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvbGliZHJtL3NyYy94Zjg2ZHJtLmMg Yi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvbGliZHJtL3NyYy94Zjg2ZHJtLmMK LWluZGV4IDFlODc2MTBiNi4uZDEyODNmMjU2IDEwMDY0NAotLS0tIGEvc3JjLzNyZHBhcnR5L2No cm9taXVtL3RoaXJkX3BhcnR5L2xpYmRybS9zcmMveGY4NmRybS5jCi0rKysgYi9zcmMvM3JkcGFy dHkvY2hyb21pdW0vdGhpcmRfcGFydHkvbGliZHJtL3NyYy94Zjg2ZHJtLmMKLUBAIC01NCwxMCAr NTQsMTAgQEAKLSAjaW5jbHVkZSA8c3lzL2lvY3RsLmg+Ci0gI2luY2x1ZGUgPHN5cy90aW1lLmg+ Ci0gI2luY2x1ZGUgPHN0ZGFyZy5oPgotLSNpZmRlZiBNQUpPUl9JTl9NS0RFVgotKyNpZiBfX2hh c19pbmNsdWRlKDxzeXMvbWtkZXYuaD4pCi0gI2luY2x1ZGUgPHN5cy9ta2Rldi5oPgotICNlbmRp ZgotLSNpZmRlZiBNQUpPUl9JTl9TWVNNQUNST1MKLSsjaWYgX19oYXNfaW5jbHVkZSg8c3lzL3N5 c21hY3Jvcy5oPikKLSAjaW5jbHVkZSA8c3lzL3N5c21hY3Jvcy5oPgotICNlbmRpZgotICNpbmNs dWRlIDxtYXRoLmg+Ci1kaWZmIC0tZ2l0IGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3Bh cnR5L2xzcy9saW51eF9zeXNjYWxsX3N1cHBvcnQuaCBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90 aGlyZF9wYXJ0eS9sc3MvbGludXhfc3lzY2FsbF9zdXBwb3J0LmgKLWluZGV4IDhlMGNjMzg1Ny4u NzBiNGRhMmUwIDEwMDY0NAotLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5 L2xzcy9saW51eF9zeXNjYWxsX3N1cHBvcnQuaAotKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVt L3RoaXJkX3BhcnR5L2xzcy9saW51eF9zeXNjYWxsX3N1cHBvcnQuaAotQEAgLTM5MTQsNyArMzkx NCw3IEBAIHN0cnVjdCBrZXJuZWxfc3RhdGZzIHsKLSAgICAgICBMU1NfUkVHKDIsIGJ1Zik7Ci0g ICAgICAgTFNTX0JPRFkodm9pZCosIG1tYXAyLCAiMCIoX19yMikpOwotICAgICB9Ci0tI2Vsc2UK LSsjZWxpZiAhZGVmaW5lZChfX3Bvd2VycGM2NF9fKSAvKiBwcGM2NCBkb2Vzbid0IGhhdmUgbW1h cDIgKi8KLSAgICAgI2RlZmluZSBfX05SX19tbWFwMiBfX05SX21tYXAyCi0gICAgIExTU19JTkxJ TkUgX3N5c2NhbGw2KHZvaWQqLCBfbW1hcDIsICAgICAgICAgICAgdm9pZCosIHMsCi0gICAgICAg ICAgICAgICAgICAgICAgICAgIHNpemVfdCwgICAgICAgICAgICAgICAgICAgbCwgaW50LCAgICAg ICAgICAgICAgIHAsCi1AQCAtNDAyNSw3ICs0MDI1LDcgQEAgc3RydWN0IGtlcm5lbF9zdGF0ZnMg ewotICAgI2lmIGRlZmluZWQoX19pMzg2X18pIHx8ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICBkZWZpbmVkKF9fQVJNX0FSQ0hfM19f KSB8fCBkZWZpbmVkKF9fQVJNX0VBQklfXykgfHwgICAgICAgICAgICAgICAgICAgICBcCi0gICAg ICAoZGVmaW5lZChfX21pcHNfXykgJiYgX01JUFNfU0lNID09IF9NSVBTX1NJTV9BQkkzMikgfHwg ICAgICAgICAgICAgICAgICAgXAotLSAgICAgIGRlZmluZWQoX19QUENfXykgfHwgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSsgICAgIChkZWZp bmVkKF9fUFBDX18pICYmICFkZWZpbmVkKF9fcG93ZXJwYzY0X18pKSB8fCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgKGRlZmluZWQo X19zMzkwX18pICYmICFkZWZpbmVkKF9fczM5MHhfXykpCi0gICAgIC8qIE9uIHRoZXNlIGFyY2hp dGVjdHVyZXMsIGltcGxlbWVudCBtbWFwKCkgd2l0aCBtbWFwMigpLiAqLwotICAgICBMU1NfSU5M SU5FIHZvaWQqIExTU19OQU1FKG1tYXApKHZvaWQgKnMsIHNpemVfdCBsLCBpbnQgcCwgaW50IGYs IGludCBkLAotZGlmZiAtLWdpdCBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9u b2RlL25vZGUucHkgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvbm9kZS9ub2Rl LnB5Ci1pbmRleCA4MDk3ZTJjNDkuLjEwZTZhMTZlYSAxMDA3NTUKLS0tLSBhL3NyYy8zcmRwYXJ0 eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9ub2RlL25vZGUucHkKLSsrKyBiL3NyYy8zcmRwYXJ0eS9j aHJvbWl1bS90aGlyZF9wYXJ0eS9ub2RlL25vZGUucHkKLUBAIC0xMCwxMSArMTAsMTIgQEAgaW1w b3J0IHN5cwotIAotIAotIGRlZiBHZXRCaW5hcnlQYXRoKCk6Ci0tICByZXR1cm4gb3NfcGF0aC5q b2luKG9zX3BhdGguZGlybmFtZShfX2ZpbGVfXyksICp7Ci0tICAgICdEYXJ3aW4nOiAoJ21hYycs ICdub2RlLWRhcndpbi14NjQnLCAnYmluJywgJ25vZGUnKSwKLS0gICAgJ0xpbnV4JzogKCdsaW51 eCcsICdub2RlLWxpbnV4LXg2NCcsICdiaW4nLCAnbm9kZScpLAotLSAgICAnV2luZG93cyc6ICgn d2luJywgJ25vZGUuZXhlJyksCi0tICB9W3BsYXRmb3JtLnN5c3RlbSgpXSkKLSsgIHJldHVybiAi L3Vzci9iaW4vbm9kZSIKLSsgICNyZXR1cm4gb3NfcGF0aC5qb2luKG9zX3BhdGguZGlybmFtZShf X2ZpbGVfXyksICp7Ci0rICAjICAnRGFyd2luJzogKCdtYWMnLCAnbm9kZS1kYXJ3aW4teDY0Jywg J2JpbicsICdub2RlJyksCi0rICAjICAnTGludXgnOiAoJ2xpbnV4JywgJ25vZGUtbGludXgteDY0 JywgJ2JpbicsICdub2RlJyksCi0rICAjICAnV2luZG93cyc6ICgnd2luJywgJ25vZGUuZXhlJyks Ci0rICAjfVtwbGF0Zm9ybS5zeXN0ZW0oKV0pCi0gCi0gCi0gZGVmIFJ1bk5vZGUoY21kX3BhcnRz LCBzdGRvdXQ9Tm9uZSk6Ci1kaWZmIC0tZ2l0IGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJk X3BhcnR5L3BmZmZ0L3NyYy9wZmZmdC5jIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3Bh cnR5L3BmZmZ0L3NyYy9wZmZmdC5jCi1pbmRleCBiZGFjNGQ3ODQuLjUxZTBmMmNhYyAxMDA2NDQK LS0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9wZmZmdC9zcmMvcGZmZnQu YwotKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L3BmZmZ0L3NyYy9wZmZm dC5jCi1AQCAtMTAwLDYgKzEwMCw3IEBACi0gICAgQWx0aXZlYyBzdXBwb3J0IG1hY3JvcyAKLSAq LwotICNpZiAhZGVmaW5lZChQRkZGVF9TSU1EX0RJU0FCTEUpICYmIChkZWZpbmVkKF9fcHBjX18p IHx8IGRlZmluZWQoX19wcGM2NF9fKSkKLSsjaW5jbHVkZSA8YWx0aXZlYy5oPgotIHR5cGVkZWYg dmVjdG9yIGZsb2F0IHY0c2Y7Ci0gIyAgZGVmaW5lIFNJTURfU1ogNAotICMgIGRlZmluZSBWWkVS TygpICgodmVjdG9yIGZsb2F0KSB2ZWNfc3BsYXRfdTgoMCkpCi1kaWZmIC0tZ2l0IGEvc3JjLzNy ZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L3NraWEvc3JjL3Nrc2wvU2tTTFN0cmluZy5jcHAg Yi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvc2tpYS9zcmMvc2tzbC9Ta1NMU3Ry aW5nLmNwcAotaW5kZXggODhlYjFjN2QzLi40YmUzM2ZhNWIgMTAwNjQ0Ci0tLS0gYS9zcmMvM3Jk cGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvc2tpYS9zcmMvc2tzbC9Ta1NMU3RyaW5nLmNwcAot KysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L3NraWEvc3JjL3Nrc2wvU2tT TFN0cmluZy5jcHAKLUBAIC0yNDAsNyArMjQwLDEyIEBAIFN0cmluZyB0b19zdHJpbmcoZG91Ymxl IHZhbHVlKSB7Ci0gICAgIGlmIChuZWVkc0RvdFplcm8pIHsKLSAgICAgICAgIGJ1ZmZlciA8PCAi LjAiOwotICAgICB9Ci0tICAgIHJldHVybiBTdHJpbmcoYnVmZmVyLnN0cigpLmNfc3RyKCkpOwot KwotKyAgICBzdGQ6OnN0cmluZyByZXQoYnVmZmVyLnN0cigpKTsKLSsgICAgaWYgKHNpZ25iaXQo dmFsdWUpICYmIHJldFswXSA9PSAnLicpIHsKLSsgICAgICAgIHJldFswXSA9ICctJzsKLSsgICAg fQotKyAgICByZXR1cm4gU3RyaW5nKHJldC5jX3N0cigpKTsKLSB9Ci0gCi0gU0tTTF9JTlQgc3Rv aShjb25zdCBTdHJpbmcmIHMpIHsKLWRpZmYgLS1naXQgYS9zcmMvM3JkcGFydHkvY2hyb21pdW0v dGhpcmRfcGFydHkvc3FsaXRlL2FtYWxnYW1hdGlvbi9zcWxpdGUzLmMgYi9zcmMvM3JkcGFydHkv Y2hyb21pdW0vdGhpcmRfcGFydHkvc3FsaXRlL2FtYWxnYW1hdGlvbi9zcWxpdGUzLmMKLWluZGV4 IDRkNjBhODIuLmIyNGUxYjggMTAwNjQ0Ci0tLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhp cmRfcGFydHkvc3FsaXRlL2FtYWxnYW1hdGlvbi9zcWxpdGUzLmMKLSsrKyBiL3NyYy8zcmRwYXJ0 eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9zcWxpdGUvYW1hbGdhbWF0aW9uL3NxbGl0ZTMuYwotQEAg LTE0MzAxLDcgKzE0MzAxLDggQEAgdHlwZWRlZiBJTlQxNl9UWVBFIExvZ0VzdDsKLSAjIGlmIGRl ZmluZWQoaTM4NikgICAgICB8fCBkZWZpbmVkKF9faTM4Nl9fKSAgICAgIHx8IGRlZmluZWQoX01f SVg4NikgfHwgICAgXAotICAgICAgZGVmaW5lZChfX3g4Nl82NCkgIHx8IGRlZmluZWQoX194ODZf NjRfXykgICAgfHwgZGVmaW5lZChfTV9YNjQpICB8fCAgICBcCi0gICAgICBkZWZpbmVkKF9NX0FN RDY0KSAgfHwgZGVmaW5lZChfTV9BUk0pICAgICAgICB8fCBkZWZpbmVkKF9feDg2KSAgIHx8ICAg IFwKLS0gICAgIGRlZmluZWQoX19BUk1FTF9fKSB8fCBkZWZpbmVkKF9fQUFSQ0g2NEVMX18pIHx8 IGRlZmluZWQoX01fQVJNNjQpCi0rICAgICBkZWZpbmVkKF9fQVJNRUxfXykgfHwgZGVmaW5lZChf X0FBUkNINjRFTF9fKSB8fCBkZWZpbmVkKF9NX0FSTTY0KSB8fCAgIFwKLSsgICAgIGRlZmluZWQo X19wb3dlcnBjNjRfXykgJiYgKF9fQllURV9PUkRFUl9fID09IF9fT1JERVJfTElUVExFX0VORElB Tl9fKQotICMgICBkZWZpbmUgU1FMSVRFX0JZVEVPUkRFUiAgICAxMjM0Ci0gIyBlbGlmIGRlZmlu ZWQoc3BhcmMpICAgICB8fCBkZWZpbmVkKF9fcHBjX18pIHx8IFwKLSAgICAgICAgZGVmaW5lZChf X0FSTUVCX18pIHx8IGRlZmluZWQoX19BQVJDSDY0RUJfXykKLUBAIC0xODU5NzQsNyArMTg1OTc1 LDggQEAgc3RydWN0IFJ0cmVlTWF0Y2hBcmcgewotICNpZiBkZWZpbmVkKGkzODYpICAgICB8fCBk ZWZpbmVkKF9faTM4Nl9fKSAgIHx8IGRlZmluZWQoX01fSVg4NikgfHwgICAgXAotICAgICBkZWZp bmVkKF9feDg2XzY0KSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX01fWDY0KSAg fHwgICAgXAotICAgICBkZWZpbmVkKF9NX0FNRDY0KSB8fCBkZWZpbmVkKF9NX0FSTSkgICAgIHx8 IGRlZmluZWQoX194ODYpICAgfHwgICAgXAotLSAgICBkZWZpbmVkKF9fYXJtX18pCi0rICAgIGRl ZmluZWQoX19hcm1fXykgfHwgXAotKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pICYmIChfX0JZ VEVfT1JERVJfXyA9PSBfX09SREVSX0xJVFRMRV9FTkRJQU5fXykKLSAjIGRlZmluZSBTUUxJVEVf QllURU9SREVSICAgIDEyMzQKLSAjZWxpZiBkZWZpbmVkKHNwYXJjKSAgICB8fCBkZWZpbmVkKF9f cHBjX18pCi0gIyBkZWZpbmUgU1FMSVRFX0JZVEVPUkRFUiAgICA0MzIxCi1kaWZmIC0tZ2l0IGEv c3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L3NxbGl0ZS9wYXRjaGVkL2V4dC9ydHJl ZS9ydHJlZS5jIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L3NxbGl0ZS9wYXRj aGVkL2V4dC9ydHJlZS9ydHJlZS5jCi1pbmRleCA2YzFlODE3Li41MDEzZDk2IDEwMDY0NAotLS0t IGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L3NxbGl0ZS9wYXRjaGVkL2V4dC9y dHJlZS9ydHJlZS5jCi0rKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvc3Fs aXRlL3BhdGNoZWQvZXh0L3J0cmVlL3J0cmVlLmMKLUBAIC00MzIsNyArNDMyLDggQEAgc3RydWN0 IFJ0cmVlTWF0Y2hBcmcgewotICNpZiBkZWZpbmVkKGkzODYpICAgICB8fCBkZWZpbmVkKF9faTM4 Nl9fKSAgIHx8IGRlZmluZWQoX01fSVg4NikgfHwgICAgXAotICAgICBkZWZpbmVkKF9feDg2XzY0 KSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX01fWDY0KSAgfHwgICAgXAotICAg ICBkZWZpbmVkKF9NX0FNRDY0KSB8fCBkZWZpbmVkKF9NX0FSTSkgICAgIHx8IGRlZmluZWQoX194 ODYpICAgfHwgICAgXAotLSAgICBkZWZpbmVkKF9fYXJtX18pCi0rICAgIGRlZmluZWQoX19hcm1f XykgfHwgXAotKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pICYmIChfX0JZVEVfT1JERVJfXyA9 PSBfX09SREVSX0xJVFRMRV9FTkRJQU5fXykKLSAjIGRlZmluZSBTUUxJVEVfQllURU9SREVSICAg IDEyMzQKLSAjZWxpZiBkZWZpbmVkKHNwYXJjKSAgICB8fCBkZWZpbmVkKF9fcHBjX18pCi0gIyBk ZWZpbmUgU1FMSVRFX0JZVEVPUkRFUiAgICA0MzIxCi1kaWZmIC0tZ2l0IGEvc3JjLzNyZHBhcnR5 L2Nocm9taXVtL3RoaXJkX3BhcnR5L3NxbGl0ZS9wYXRjaGVkL3NyYy9zcWxpdGVJbnQuaCBiL3Ny Yy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9zcWxpdGUvcGF0Y2hlZC9zcmMvc3FsaXRl SW50LmgKLWluZGV4IDM0ZTJkMmQuLmQ5NmM4YmMgMTAwNjQ0Ci0tLS0gYS9zcmMvM3JkcGFydHkv Y2hyb21pdW0vdGhpcmRfcGFydHkvc3FsaXRlL3BhdGNoZWQvc3JjL3NxbGl0ZUludC5oCi0rKysg Yi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvc3FsaXRlL3BhdGNoZWQvc3JjL3Nx bGl0ZUludC5oCi1AQCAtODUzLDcgKzg1Myw4IEBAIHR5cGVkZWYgSU5UMTZfVFlQRSBMb2dFc3Q7 Ci0gIyBpZiBkZWZpbmVkKGkzODYpICAgICAgfHwgZGVmaW5lZChfX2kzODZfXykgICAgICB8fCBk ZWZpbmVkKF9NX0lYODYpIHx8ICAgIFwKLSAgICAgIGRlZmluZWQoX194ODZfNjQpICB8fCBkZWZp bmVkKF9feDg2XzY0X18pICAgIHx8IGRlZmluZWQoX01fWDY0KSAgfHwgICAgXAotICAgICAgZGVm aW5lZChfTV9BTUQ2NCkgIHx8IGRlZmluZWQoX01fQVJNKSAgICAgICAgfHwgZGVmaW5lZChfX3g4 NikgICB8fCAgICBcCi0tICAgICBkZWZpbmVkKF9fQVJNRUxfXykgfHwgZGVmaW5lZChfX0FBUkNI NjRFTF9fKSB8fCBkZWZpbmVkKF9NX0FSTTY0KQotKyAgICAgZGVmaW5lZChfX0FSTUVMX18pIHx8 IGRlZmluZWQoX19BQVJDSDY0RUxfXykgfHwgZGVmaW5lZChfTV9BUk02NCkgfHwgICBcCi0rICAg ICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pICYmIChfX0JZVEVfT1JERVJfXyA9PSBfX09SREVSX0xJ VFRMRV9FTkRJQU5fXykKLSAjICAgZGVmaW5lIFNRTElURV9CWVRFT1JERVIgICAgMTIzNAotICMg ZWxpZiBkZWZpbmVkKHNwYXJjKSAgICAgfHwgZGVmaW5lZChfX3BwY19fKSB8fCBcCi0gICAgICAg IGRlZmluZWQoX19BUk1FQl9fKSB8fCBkZWZpbmVkKF9fQUFSQ0g2NEVCX18pCi1kaWZmIC0tZ2l0 IGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L3dlYnJ0Yy9tb2R1bGVzL2Rlc2t0 b3BfY2FwdHVyZS9kaWZmZXJfYmxvY2suY2MgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRf cGFydHkvd2VicnRjL21vZHVsZXMvZGVza3RvcF9jYXB0dXJlL2RpZmZlcl9ibG9jay5jYwotaW5k ZXggZGQ5YWI0NTdlLi5jMDA1ZDk1OTkgMTAwNjQ0Ci0tLS0gYS9zcmMvM3JkcGFydHkvY2hyb21p dW0vdGhpcmRfcGFydHkvd2VicnRjL21vZHVsZXMvZGVza3RvcF9jYXB0dXJlL2RpZmZlcl9ibG9j ay5jYwotKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L3dlYnJ0Yy9tb2R1 bGVzL2Rlc2t0b3BfY2FwdHVyZS9kaWZmZXJfYmxvY2suY2MKLUBAIC0zMCwxMSArMzAsNyBAQCBi b29sIFZlY3RvckRpZmZlcmVuY2UoY29uc3QgdWludDhfdCogaW1hZ2UxLCBjb25zdCB1aW50OF90 KiBpbWFnZTIpIHsKLSAgIHN0YXRpYyBib29sICgqZGlmZl9wcm9jKShjb25zdCB1aW50OF90Kiwg Y29uc3QgdWludDhfdCopID0gbnVsbHB0cjsKLSAKLSAgIGlmICghZGlmZl9wcm9jKSB7Ci0tI2lm IGRlZmluZWQoV0VCUlRDX0FSQ0hfQVJNX0ZBTUlMWSkgfHwgZGVmaW5lZChXRUJSVENfQVJDSF9N SVBTX0ZBTUlMWSkKLS0gICAgLy8gRm9yIEFSTSBhbmQgTUlQUyBwcm9jZXNzb3JzLCBhbHdheXMg dXNlIEMgdmVyc2lvbi4KLS0gICAgLy8gVE9ETyhoY2xhbSk6IEltcGxlbWVudCBhIE5FT04gdmVy c2lvbi4KLS0gICAgZGlmZl9wcm9jID0gJlZlY3RvckRpZmZlcmVuY2VfQzsKLS0jZWxzZQotKyNp ZiBkZWZpbmVkKFdFQlJUQ19BUkNIX1g4Nl9GQU1JTFkpCi0gICAgIGJvb2wgaGF2ZV9zc2UyID0g V2ViUnRjX0dldENQVUluZm8oa1NTRTIpICE9IDA7Ci0gICAgIC8vIEZvciB4ODYgcHJvY2Vzc29y cywgY2hlY2sgaWYgU1NFMiBpcyBzdXBwb3J0ZWQuCi0gICAgIGlmIChoYXZlX3NzZTIgJiYga0Js b2NrU2l6ZSA9PSAzMikgewotQEAgLTQ0LDYgKzQwLDEwIEBAIGJvb2wgVmVjdG9yRGlmZmVyZW5j ZShjb25zdCB1aW50OF90KiBpbWFnZTEsIGNvbnN0IHVpbnQ4X3QqIGltYWdlMikgewotICAgICB9 IGVsc2UgewotICAgICAgIGRpZmZfcHJvYyA9ICZWZWN0b3JEaWZmZXJlbmNlX0M7Ci0gICAgIH0K LSsjZWxzZQotKyAgICAvLyBGb3Igb3RoZXIgcHJvY2Vzc29ycywgYWx3YXlzIHVzZSBDIHZlcnNp b24uCi0rICAgIC8vIFRPRE8oaGNsYW0pOiBJbXBsZW1lbnQgYSBORU9OIHZlcnNpb24uCi0rICAg IGRpZmZfcHJvYyA9ICZWZWN0b3JEaWZmZXJlbmNlX0M7Ci0gI2VuZGlmCi0gICB9Ci0gCi1kaWZm IC0tZ2l0IGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L3dlYnJ0Yy9ydGNfYmFz ZS9zeXN0ZW0vYXJjaC5oIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L3dlYnJ0 Yy9ydGNfYmFzZS9zeXN0ZW0vYXJjaC5oCi1pbmRleCBlZDIxNmU2NjAuLjI1ZDM2YzA3MSAxMDA2 NDQKLS0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS93ZWJydGMvcnRjX2Jh c2Uvc3lzdGVtL2FyY2guaAotKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5 L3dlYnJ0Yy9ydGNfYmFzZS9zeXN0ZW0vYXJjaC5oCi1AQCAtNTAsNiArNTAsMTggQEAKLSAjZWxp ZiBkZWZpbmVkKF9fRU1TQ1JJUFRFTl9fKQotICNkZWZpbmUgV0VCUlRDX0FSQ0hfMzJfQklUUwot ICNkZWZpbmUgV0VCUlRDX0FSQ0hfTElUVExFX0VORElBTgotKyNlbGlmIGRlZmluZWQoX19QUENf XykKLSsjZGVmaW5lIFdFQlJUQ19BUkNIX1BQQ19GQU1JTFkKLSsjaWYgX19CWVRFX09SREVSX18g PT0gX19PUkRFUl9MSVRUTEVfRU5ESUFOX18KLSsjZGVmaW5lIFdFQlJUQ19BUkNIX0xJVFRMRV9F TkRJQU4KLSsjZWxzZQotKyNkZWZpbmUgV0VCUlRDX0FSQ0hfQklHX0VORElBTgotKyNlbmRpZgot KyNpZiBkZWZpbmVkKF9fTFA2NF9fKQotKyNkZWZpbmUgV0VCUlRDX0FSQ0hfNjRfQklUUwotKyNl bHNlCi0rI2RlZmluZSBXRUJSVENfQVJDSF8zMl9CSVRTCi0rI2VuZGlmCi0gI2Vsc2UKLSAjZXJy b3IgUGxlYXNlIGFkZCBzdXBwb3J0IGZvciB5b3VyIGFyY2hpdGVjdHVyZSBpbiBydGNfYmFzZS9z eXN0ZW0vYXJjaC5oCi0gI2VuZGlmCi1kaWZmIC0tZ2l0IGEvc3JjLzNyZHBhcnR5L2Nocm9taXVt L3Y4L0JVSUxELmduIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3Y4L0JVSUxELmduCi1pbmRleCA5 MTA3YjMwMjQuLmU4ODU2OTZkNSAxMDA2NDQKLS0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS92 OC9CVUlMRC5nbgotKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3Y4L0JVSUxELmduCi1AQCAt NjIwLDYgKzYyMCwxMiBAQCBjb25maWcoInRvb2xjaGFpbiIpIHsKLSAgICAgfQotICAgICBpZiAo aG9zdF9ieXRlb3JkZXIgPT0gImxpdHRsZSIpIHsKLSAgICAgICBkZWZpbmVzICs9IFsgIlY4X1RB UkdFVF9BUkNIX1BQQ19MRSIgXQotKyAgICAgICAgY2ZsYWdzICs9IFsKLSsgICAgICAgICMgRW5h YmxlIHVzYWdlIG9mIEFsdGlWZWMsIFZTWCwgYW5kIG90aGVyIFBPV0VSOCBhbmQgaGlnaGVyIGZl YXR1cmVzCi0rICAgICAgICAiLW1jcHU9cG93ZXI4IiwKLSsgICAgICAgICItbWFsdGl2ZWMiLAot KyAgICAgICAgIi1tdnN4IiwKLSsgICAgICBdCi0gICAgIH0gZWxzZSBpZiAoaG9zdF9ieXRlb3Jk ZXIgPT0gImJpZyIpIHsKLSAgICAgICBkZWZpbmVzICs9IFsgIlY4X1RBUkdFVF9BUkNIX1BQQ19C RSIgXQotICAgICAgIGlmIChjdXJyZW50X29zID09ICJhaXgiKSB7Ci0tLSAKLTIuMjYuMgotCmRp ZmYgLS1naXQgYS9zcmNwa2dzL3F0NS13ZWJlbmdpbmUvcGF0Y2hlcy8wMDkxLWNocm9taXVtLXBw YzY0bGUtbXVzbC5wYXRjaCBiL3NyY3BrZ3MvcXQ1LXdlYmVuZ2luZS9wYXRjaGVzLzAwOTEtY2hy b21pdW0tcHBjNjRsZS1tdXNsLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBh MjQ4MzU0MTBjOC4uMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9xdDUtd2ViZW5naW5lL3BhdGNo ZXMvMDA5MS1jaHJvbWl1bS1wcGM2NGxlLW11c2wucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwx NzQgKzAsMCBAQAotRnJvbSA4ODU0ZGI3MjZmOTBlNTNiZjVlZDVhZjhiMjM2ZWYzNmE3MDlhNjgy IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogcTY2IDxkYW5pZWxAb2N0YWZvcmdlLm9y Zz4KLURhdGU6IFN1biwgMTkgSmFuIDIwMjAgMDE6MDY6NDAgKzAxMDAKLVN1YmplY3Q6IFtQQVRD SCAzLzNdIEFkZGl0aW9uYWwgZml4ZXMgZm9yIG11c2wgbGliYyB3aXRoIHBwYzY0Ci0KLS0tLQot IC4uLi9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L2JwZl9kc2wvc2VjY29tcF9tYWNyb3MuaCAgICAg ICAgfCA2ICsrKy0tLQotIHNyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L3NlY2Nv bXAtYnBmL3N5c2NhbGwuY2MgfCA0ICsrLS0KLSAuLi4vYWJzZWlsLWNwcC9hYnNsL2Jhc2UvaW50 ZXJuYWwvdW5zY2FsZWRjeWNsZWNsb2NrLmNjICAgIHwgNCArKy0tCi0gLi4uL2Fic2VpbC1jcHAv YWJzbC9iYXNlL2ludGVybmFsL3Vuc2NhbGVkY3ljbGVjbG9jay5oICAgICB8IDIgKy0KLSAuLi4v c3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21tb24vdGhyZWFkX2luZm8uY2MgICAgIHwg NyArKysrKy0tCi0gLi4uL3NyYy9jbGllbnQvbGludXgvZHVtcF93cml0ZXJfY29tbW9uL3Vjb250 ZXh0X3JlYWRlci5jYyB8IDcgKysrKystLQotIC4uLi9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4 L2hhbmRsZXIvZXhjZXB0aW9uX2hhbmRsZXIuY2MgfCA1ICsrKysrCi0gNyBmaWxlcyBjaGFuZ2Vk LCAyMyBpbnNlcnRpb25zKCspLCAxMiBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL3NyYy8z cmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L2JwZl9kc2wvc2VjY29tcF9tYWNyb3MuaCBi L3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L2JwZl9kc2wvc2VjY29tcF9tYWNy b3MuaAotaW5kZXggYTZhZWM1NDRlLi4yYTRhN2YxYmMgMTAwNjQ0Ci0tLS0gYS9zcmMvM3JkcGFy dHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9icGZfZHNsL3NlY2NvbXBfbWFjcm9zLmgKLSsrKyBi L3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L2JwZl9kc2wvc2VjY29tcF9tYWNy b3MuaAotQEAgLTE2LDcgKzE2LDcgQEAKLSAjaWYgZGVmaW5lZChfX21pcHNfXykKLSAvLyBzeXMv dXNlci5oIGluIGVnbGliYyBtaXNzZXMgc2l6ZV90IGRlZmluaXRpb24KLSAjaW5jbHVkZSA8c3Rk ZGVmLmg+Ci0tI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotKyNlbGlmIGRlZmluZWQoX19w b3dlcnBjNjRfXykgJiYgZGVmaW5lZChfX0dMSUJDX18pCi0gLy8gTWFudWFsbHkgZGVmaW5lIGdy ZWdfdCBvbiBwcGM2NAotIHR5cGVkZWYgdW5zaWduZWQgbG9uZyBsb25nIGdyZWdfdDsKLSAjZW5k aWYKLUBAIC0zNjEsMTEgKzM2MSwxMSBAQCB0eXBlZGVmIHN0cnVjdCBwdF9yZWdzIHJlZ3Nfc3Ry dWN0OwotICNkZWZpbmUgU0VDQ09NUF9BUkNIIEFVRElUX0FSQ0hfUFBDNjQKLSAjZW5kaWYKLSAK LS0jZGVmaW5lIFNFQ0NPTVBfUkVHKF9jdHgsIF9yZWcpICgoX2N0eCktPnVjX21jb250ZXh0LnJl Z3MtPmdwcltfcmVnXSkKLSsjZGVmaW5lIFNFQ0NPTVBfUkVHKF9jdHgsIF9yZWcpICgoKHN0cnVj dCBwdF9yZWdzICopKF9jdHgpLT51Y19tY29udGV4dC5yZWdzKS0+Z3ByW19yZWddKQotIAotICNk ZWZpbmUgU0VDQ09NUF9SRVNVTFQoX2N0eCkgU0VDQ09NUF9SRUcoX2N0eCwgMykKLSAjZGVmaW5l IFNFQ0NPTVBfU1lTQ0FMTChfY3R4KSBTRUNDT01QX1JFRyhfY3R4LCAwKQotLSNkZWZpbmUgU0VD Q09NUF9JUChfY3R4KSAoX2N0eCktPnVjX21jb250ZXh0LnJlZ3MtPm5pcAotKyNkZWZpbmUgU0VD Q09NUF9JUChfY3R4KSAoKHN0cnVjdCBwdF9yZWdzICopKF9jdHgpLT51Y19tY29udGV4dC5yZWdz KS0+bmlwCi0gI2RlZmluZSBTRUNDT01QX1BBUk0xKF9jdHgpIFNFQ0NPTVBfUkVHKF9jdHgsIDMp Ci0gI2RlZmluZSBTRUNDT01QX1BBUk0yKF9jdHgpIFNFQ0NPTVBfUkVHKF9jdHgsIDQpCi0gI2Rl ZmluZSBTRUNDT01QX1BBUk0zKF9jdHgpIFNFQ0NPTVBfUkVHKF9jdHgsIDUpCi1kaWZmIC0tZ2l0 IGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYvc3lzY2Fs bC5jYyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmL3N5 c2NhbGwuY2MKLWluZGV4IDEwZmE1ZmQwNy4uMzBiN2IzODUxIDEwMDY0NAotLS0tIGEvc3JjLzNy ZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYvc3lzY2FsbC5jYwotKysr IGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYvc3lzY2Fs bC5jYwotQEAgLTQ5Nyw5ICs0OTcsOSBAQCB2b2lkIFN5c2NhbGw6OlB1dFZhbHVlSW5VY29udGV4 dChpbnRwdHJfdCByZXRfdmFsLCB1Y29udGV4dF90KiBjdHgpIHsKLSAgIC8vIFNhbWUgYXMgTUlQ UywgbmVlZCB0byBpbnZlcnQgcmV0IGFuZCBzZXQgZXJyb3IgcmVnaXN0ZXIgKGNyMC5TTykKLSAg IGlmIChyZXRfdmFsIDw9IC0xICYmIHJldF92YWwgPj0gLTQwOTUpIHsKLSAgICAgcmV0X3ZhbCA9 IC1yZXRfdmFsOwotLSAgICBjdHgtPnVjX21jb250ZXh0LnJlZ3MtPmNjciB8PSAoMSA8PCAyOCk7 Ci0rICAgICgoc3RydWN0IHB0X3JlZ3MgKiljdHgtPnVjX21jb250ZXh0LnJlZ3MpLT5jY3IgfD0g KDEgPDwgMjgpOwotICAgfSBlbHNlIHsKLS0gICAgY3R4LT51Y19tY29udGV4dC5yZWdzLT5jY3Ig Jj0gfigxIDw8IDI4KTsKLSsgICAgKChzdHJ1Y3QgcHRfcmVncyAqKWN0eC0+dWNfbWNvbnRleHQu cmVncyktPmNjciAmPSB+KDEgPDwgMjgpOwotICAgfQotICNlbmRpZgotICAgU0VDQ09NUF9SRVNV TFQoY3R4KSA9IHN0YXRpY19jYXN0PGdyZWdfdD4ocmV0X3ZhbCk7Ci1kaWZmIC0tZ2l0IGEvc3Jj LzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2Fic2VpbC1jcHAvYWJzbC9iYXNlL2ludGVy bmFsL3Vuc2NhbGVkY3ljbGVjbG9jay5jYyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9w YXJ0eS9hYnNlaWwtY3BwL2Fic2wvYmFzZS9pbnRlcm5hbC91bnNjYWxlZGN5Y2xlY2xvY2suY2MK LWluZGV4IDU5Mzc2MmJjOC4uNjg5MjQ4NzU1IDEwMDY0NAotLS0tIGEvc3JjLzNyZHBhcnR5L2No cm9taXVtL3RoaXJkX3BhcnR5L2Fic2VpbC1jcHAvYWJzbC9iYXNlL2ludGVybmFsL3Vuc2NhbGVk Y3ljbGVjbG9jay5jYwotKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2Fi c2VpbC1jcHAvYWJzbC9iYXNlL2ludGVybmFsL3Vuc2NhbGVkY3ljbGVjbG9jay5jYwotQEAgLTIw LDcgKzIwLDcgQEAKLSAjaW5jbHVkZSA8aW50cmluLmg+Ci0gI2VuZGlmCi0gCi0tI2lmIGRlZmlu ZWQoX19wb3dlcnBjX18pIHx8IGRlZmluZWQoX19wcGNfXykKLSsjaWYgKGRlZmluZWQoX19wb3dl cnBjX18pIHx8IGRlZmluZWQoX19wcGNfXykpICYmIGRlZmluZWQoX19HTElCQ19fKQotICNpbmNs dWRlIDxzeXMvcGxhdGZvcm0vcHBjLmg+Ci0gI2VuZGlmCi0gCi1AQCAtNTMsNyArNTMsNyBAQCBk b3VibGUgVW5zY2FsZWRDeWNsZUNsb2NrOjpGcmVxdWVuY3koKSB7Ci0gICByZXR1cm4gYmFzZV9p bnRlcm5hbDo6Tm9taW5hbENQVUZyZXF1ZW5jeSgpOwotIH0KLSAKLS0jZWxpZiBkZWZpbmVkKF9f cG93ZXJwY19fKSB8fCBkZWZpbmVkKF9fcHBjX18pCi0rI2VsaWYgKGRlZmluZWQoX19wb3dlcnBj X18pIHx8IGRlZmluZWQoX19wcGNfXykpICYmIGRlZmluZWQoX19HTElCQ19fKQotIAotIGludDY0 X3QgVW5zY2FsZWRDeWNsZUNsb2NrOjpOb3coKSB7Ci0gICByZXR1cm4gX19wcGNfZ2V0X3RpbWVi YXNlKCk7Ci1kaWZmIC0tZ2l0IGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2Fi c2VpbC1jcHAvYWJzbC9iYXNlL2ludGVybmFsL3Vuc2NhbGVkY3ljbGVjbG9jay5oIGIvc3JjLzNy ZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2Fic2VpbC1jcHAvYWJzbC9iYXNlL2ludGVybmFs L3Vuc2NhbGVkY3ljbGVjbG9jay5oCi1pbmRleCAyZDM2MWU5NjIuLjk4MjQyMDk2YyAxMDA2NDQK LS0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9hYnNlaWwtY3BwL2Fic2wv YmFzZS9pbnRlcm5hbC91bnNjYWxlZGN5Y2xlY2xvY2suaAotKysrIGIvc3JjLzNyZHBhcnR5L2No cm9taXVtL3RoaXJkX3BhcnR5L2Fic2VpbC1jcHAvYWJzbC9iYXNlL2ludGVybmFsL3Vuc2NhbGVk Y3ljbGVjbG9jay5oCi1AQCAtNDYsNyArNDYsNyBAQAotIAotIC8vIFRoZSBmb2xsb3dpbmcgcGxh dGZvcm1zIGhhdmUgYW4gaW1wbGVtZW50YXRpb24gb2YgYSBoYXJkd2FyZSBjb3VudGVyLgotICNp ZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19h YXJjaDY0X18pIHx8IFwKLS0gIGRlZmluZWQoX19wb3dlcnBjX18pIHx8IGRlZmluZWQoX19wcGNf XykgfHwgXAotKyAgKChkZWZpbmVkKF9fcG93ZXJwY19fKSB8fCBkZWZpbmVkKF9fcHBjX18pKSAm JiBkZWZpbmVkKF9fR0xJQkNfXykpIHx8IFwKLSAgIGRlZmluZWQoX01fSVg4NikgfHwgZGVmaW5l ZChfTV9YNjQpCi0gI2RlZmluZSBBQlNMX0hBVkVfVU5TQ0FMRURfQ1lDTEVDTE9DS19JTVBMRU1F TlRBVElPTiAxCi0gI2Vsc2UKLWRpZmYgLS1naXQgYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhp cmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9j b21tb24vdGhyZWFkX2luZm8uY2MgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkv YnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21tb24vdGhy ZWFkX2luZm8uY2MKLWluZGV4IDAzYWZlYzdhNS4uMDI2NGVjZjEzIDEwMDY0NAotLS0tIGEvc3Jj LzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGll bnQvbGludXgvZHVtcF93cml0ZXJfY29tbW9uL3RocmVhZF9pbmZvLmNjCi0rKysgYi9zcmMvM3Jk cGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9s aW51eC9kdW1wX3dyaXRlcl9jb21tb24vdGhyZWFkX2luZm8uY2MKLUBAIC0yNzMsNiArMjczLDkg QEAgdm9pZCBUaHJlYWRJbmZvOjpGaWxsQ1BVQ29udGV4dChSYXdDb250ZXh0Q1BVKiBvdXQpIGNv bnN0IHsKLSAKLSAjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gCi0rI2luY2x1ZGUgPGFz bS9lbGYuaD4KLSsjaW5jbHVkZSA8YXNtL3B0cmFjZS5oPgotKwotIHVpbnRwdHJfdCBUaHJlYWRJ bmZvOjpHZXRJbnN0cnVjdGlvblBvaW50ZXIoKSBjb25zdCB7Ci0gICAgIHJldHVybiBtY29udGV4 dC5ncF9yZWdzW1BUX05JUF07Ci0gfQotQEAgLTI5MCw5ICsyOTMsOSBAQCB2b2lkIFRocmVhZElu Zm86OkZpbGxDUFVDb250ZXh0KFJhd0NvbnRleHRDUFUqIG91dCkgY29uc3QgewotICAgICBvdXQt PmN0ciA9IG1jb250ZXh0LmdwX3JlZ3NbUFRfQ1RSXTsKLSAgICAgCi0gICAgIGZvciAoaW50IGkg PSAwOyBpIDwgTURfRkxPQVRJTkdTQVZFQVJFQV9QUENfRlBSX0NPVU5UOyBpKyspCi0tICAgICAg ICBvdXQtPmZsb2F0X3NhdmUuZnByZWdzW2ldID0gbWNvbnRleHQuZnBfcmVnc1tpXTsKLSsgICAg ICAgIG91dC0+ZmxvYXRfc2F2ZS5mcHJlZ3NbaV0gPSAoKHVpbnQ2NF90ICopJm1jb250ZXh0LmZw X3JlZ3MpW2ldOwotIAotLSAgICBvdXQtPmZsb2F0X3NhdmUuZnBzY3IgPSBtY29udGV4dC5mcF9y ZWdzW05GUFJFRy0xXTsKLSsgICAgb3V0LT5mbG9hdF9zYXZlLmZwc2NyID0gKCh1aW50NjRfdCAq KSZtY29udGV4dC5mcF9yZWdzKVtFTEZfTkZQUkVHLTFdOwotIAotICAgICBmb3IgKGludCBpID0g MDsgaSA8IE1EX1ZFQ1RPUlNBVkVBUkVBX1BQQ19WUl9DT1VOVDsgaSsrKQotICAgICAgICAgb3V0 LT52ZWN0b3Jfc2F2ZS5zYXZlX3ZyW2ldID0gXAotZGlmZiAtLWdpdCBhL3NyYy8zcmRwYXJ0eS9j aHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1 bXBfd3JpdGVyX2NvbW1vbi91Y29udGV4dF9yZWFkZXIuY2MgYi9zcmMvM3JkcGFydHkvY2hyb21p dW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dy aXRlcl9jb21tb24vdWNvbnRleHRfcmVhZGVyLmNjCi1pbmRleCA3NjIwY2Y2ZjcuLjU0ZTM3MzYx MSAxMDA2NDQKLS0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3Bh ZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1vbi91Y29udGV4dF9y ZWFkZXIuY2MKLSsrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3Bh ZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1vbi91Y29udGV4dF9y ZWFkZXIuY2MKLUBAIC0yNTcsNiArMjU3LDkgQEAgdm9pZCBVQ29udGV4dFJlYWRlcjo6RmlsbENQ VUNvbnRleHQoUmF3Q29udGV4dENQVSAqb3V0LCBjb25zdCB1Y29udGV4dF90ICp1YykgewotIAot ICNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAKLSsjaW5jbHVkZSA8YXNtL2VsZi5oPgot KyNpbmNsdWRlIDxhc20vcHRyYWNlLmg+Ci0rCi0gdWludHB0cl90IFVDb250ZXh0UmVhZGVyOjpH ZXRTdGFja1BvaW50ZXIoY29uc3QgdWNvbnRleHRfdCogdWMpIHsKLSAgICAgcmV0dXJuIHVjLT51 Y19tY29udGV4dC5ncF9yZWdzW01EX0NPTlRFWFRfUFBDNjRfUkVHX1NQXTsKLSB9Ci1AQCAtMjgw LDkgKzI4Myw5IEBAIHZvaWQgVUNvbnRleHRSZWFkZXI6OkZpbGxDUFVDb250ZXh0KFJhd0NvbnRl eHRDUFUqIG91dCwgY29uc3QgdWNvbnRleHRfdCogdWMsCi0gICAgIG91dC0+Y3RyID0gdWMtPnVj X21jb250ZXh0LmdwX3JlZ3NbUFRfQ1RSXTsKLSAgICAgCi0gICAgIGZvciAoaW50IGkgPSAwOyBp IDwgTURfRkxPQVRJTkdTQVZFQVJFQV9QUENfRlBSX0NPVU5UOyBpKyspCi0tICAgICAgICBvdXQt PmZsb2F0X3NhdmUuZnByZWdzW2ldID0gdWMtPnVjX21jb250ZXh0LmZwX3JlZ3NbaV07Ci0rICAg ICAgICBvdXQtPmZsb2F0X3NhdmUuZnByZWdzW2ldID0gKCh1aW50NjRfdCAqKSZ1Yy0+dWNfbWNv bnRleHQuZnBfcmVncylbaV07Ci0gCi0tICAgIG91dC0+ZmxvYXRfc2F2ZS5mcHNjciA9IHVjLT51 Y19tY29udGV4dC5mcF9yZWdzW05GUFJFRy0xXTsKLSsgICAgb3V0LT5mbG9hdF9zYXZlLmZwc2Ny ID0gKCh1aW50NjRfdCAqKSZ1Yy0+dWNfbWNvbnRleHQuZnBfcmVncylbRUxGX05GUFJFRy0xXTsK LSAKLSAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBNRF9WRUNUT1JTQVZFQVJFQV9QUENfVlJfQ09V TlQ7IGkrKykKLSAgICAgICAgIG91dC0+dmVjdG9yX3NhdmUuc2F2ZV92cltpXSA9Ci1kaWZmIC0t Z2l0IGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFk L3NyYy9jbGllbnQvbGludXgvaGFuZGxlci9leGNlcHRpb25faGFuZGxlci5jYyBiL3NyYy8zcmRw YXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xp bnV4L2hhbmRsZXIvZXhjZXB0aW9uX2hhbmRsZXIuY2MKLWluZGV4IDkwMWNkNjhmYi4uNTYxOTU4 YzQ0IDEwMDY0NAotLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFr cGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvaGFuZGxlci9leGNlcHRpb25faGFuZGxlci5j YwotKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFr cGFkL3NyYy9jbGllbnQvbGludXgvaGFuZGxlci9leGNlcHRpb25faGFuZGxlci5jYwotQEAgLTEw NSw2ICsxMDUsMTEgQEAKLSAjZGVmaW5lIFBSX1NFVF9QVFJBQ0VSIDB4NTk2MTZkNjEKLSAjZW5k aWYKLSAKLSsvKiBtdXNsIGhhY2ssIGNhbid0IGluY2x1ZGUgYXNtL3B0cmFjZS5oIGFzIHRoYXQg Y2F1c2VzIGNvbmZsaWN0cyAqLwotKyNpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pICYmICFkZWZp bmVkKFBUX05JUCkKLSsjZGVmaW5lIFBUX05JUCAzMgotKyNlbmRpZgotKwotIG5hbWVzcGFjZSBn b29nbGVfYnJlYWtwYWQgewotIAotIG5hbWVzcGFjZSB7Ci0tLS0gYS9zcmMvM3JkcGFydHkvY2hy b21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9saW51eC90aHJlYWRfaW5m by5oCi0rKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jh c2hwYWQvdXRpbC9saW51eC90aHJlYWRfaW5mby5oCi1AQCAtMzAsNiArMzAsNyBAQAotIAotICNp ZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKLSAjaW5jbHVkZSA8c3lzL3Vjb250ZXh0 Lmg+Ci0rI2luY2x1ZGUgPGFzbS9wdHJhY2UuaD4KLSAjZW5kaWYKLSAKLSBuYW1lc3BhY2UgY3Jh c2hwYWQgewotLS0gCi0yLjI2LjAKLQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDUtd2ViZW5naW5l L3RlbXBsYXRlIGIvc3JjcGtncy9xdDUtd2ViZW5naW5lL3RlbXBsYXRlCmluZGV4IDNhNWY0YWYy NDBhLi43MDJjZjdmNWRiZSAxMDA2NDQKLS0tIGEvc3JjcGtncy9xdDUtd2ViZW5naW5lL3RlbXBs YXRlCisrKyBiL3NyY3BrZ3MvcXQ1LXdlYmVuZ2luZS90ZW1wbGF0ZQpAQCAtMSw2ICsxLDYgQEAK ICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3F0NS13ZWJlbmdpbmUnCiBwa2duYW1lPXF0NS13ZWJlbmdp bmUKLXZlcnNpb249NS4xNS4xCit2ZXJzaW9uPTUuMTUuMgogcmV2aXNpb249MQogYXJjaHM9Ing4 Nl82NCogaTY4NiogYXJtdls2N10qIHBwYzY0KiBhYXJjaDY0KiIKIHdya3NyYz0icXR3ZWJlbmdp bmUtZXZlcnl3aGVyZS1zcmMtJHt2ZXJzaW9ufSIKQEAgLTI1LDExICsyNSwxMSBAQCBtYWludGFp bmVyPSJKb2huIDxtZUBqb2hubnluYXRvci5kZXY+IgogbGljZW5zZT0iR1BMLTMuMC1vci1sYXRl ciwgTEdQTC0zLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly9xdC5pby8iCiBkaXN0Zmls ZXM9Imh0dHA6Ly9kb3dubG9hZC5xdC5pby9vZmZpY2lhbF9yZWxlYXNlcy9xdC8ke3ZlcnNpb24l Lip9LyR7dmVyc2lvbn0vc3VibW9kdWxlcy9xdHdlYmVuZ2luZS1ldmVyeXdoZXJlLXNyYy0ke3Zl cnNpb259LnRhci54eiIKLWNoZWNrc3VtPWY5MDNlOThmZTNjZDcxNzE2MTI1MjcxMDEyNWZjZTAx MWNmODgyY2VkOTZjMjQ5NjhiMGMzODgxMWZiZWZkZjIKK2NoZWNrc3VtPWM4YWZjYTBlNDNkODRm N2JkNTk1NDM2ZmJlNGQxM2E1YmJkYjgxZWM1MTA0ZDYwNTA4NWQwNzU0NWI2ZjkxZTAKIHBhdGNo X2FyZ3M9Ii1OcDEiCiAKIGJ1aWxkX29wdGlvbnM9InNuZGlvIgotYnVpbGRfb3B0aW9uc19kZWZh dWx0PSJzbmRpbyIKK2J1aWxkX29wdGlvbnNfZGVmYXVsdD0iIgogCiBpZiBbICIkQ1JPU1NfQlVJ TEQiIF07IHRoZW4KIAlob3N0bWFrZWRlcGVuZHMrPSIgbnNzLWRldmVsIGxpYmV2ZW50LWRldmVs IHF0NS1sb2NhdGlvbi1kZXZlbAoKRnJvbSAyMGY4Y2MzYWQ2ZGYzY2FlMWFiNjNiZmM5MTFkMGUw NGM0MzBmYzFjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKb2huIDxtZUBqb2hubnlu YXRvci5kZXY+CkRhdGU6IFNhdCwgMjEgTm92IDIwMjAgMTM6NTU6NTkgKzAxMDAKU3ViamVjdDog W1BBVENIIDQvNl0gdGVsZWdyYW0tZGVza3RvcDogcmVidWlsZCBhZ2FpbnN0IHF0NS01LjE1LjIK Ci0tLQogc3JjcGtncy90ZWxlZ3JhbS1kZXNrdG9wL3RlbXBsYXRlIHwgNCArKy0tCiAxIGZpbGUg Y2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MvdGVsZWdyYW0tZGVza3RvcC90ZW1wbGF0ZSBiL3NyY3BrZ3MvdGVsZWdyYW0tZGVza3Rv cC90ZW1wbGF0ZQppbmRleCBjZDY4NWZkYjdlMy4uYWM4MDAyMjA0ZjggMTAwNjQ0Ci0tLSBhL3Ny Y3BrZ3MvdGVsZWdyYW0tZGVza3RvcC90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3RlbGVncmFtLWRl c2t0b3AvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICd0ZWxl Z3JhbS1kZXNrdG9wJwogcGtnbmFtZT10ZWxlZ3JhbS1kZXNrdG9wCiB2ZXJzaW9uPTIuNC4zCi1y ZXZpc2lvbj0xCityZXZpc2lvbj0yCiB3cmtzcmM9InRkZXNrdG9wLSR7dmVyc2lvbn0tZnVsbCIK IGJ1aWxkX3N0eWxlPWNtYWtlCiBidWlsZF9oZWxwZXI9InFlbXUiCkBAIC0xOCw3ICsxOCw3IEBA IG1ha2VkZXBlbmRzPSJhbHNhLWxpYi1kZXZlbCBmZm1wZWctZGV2ZWwgbGliZGJ1c21lbnUtZ2xp Yi1kZXZlbCBsaWJvcGVuYWwtZGV2ZWwKICBsaWJ2YS1kZXZlbCByYXBpZGpzb24gbGlibHo0LWRl dmVsIGxpYmx6bWEtZGV2ZWwgcmxvdHRpZS1kZXZlbCBndGsrMy1kZXZlbAogIE1lc2FMaWItZGV2 ZWwgbGliZGJ1c21lbnUtcXQ1LWRldmVsIHF0NS13YXlsYW5kLWRldmVsIGxpYmF0b21pYy1kZXZl bAogICQodm9wdF9pZiBzcGVsbGNoZWNrIGh1bnNwZWxsLWRldmVsKSIKLWRlcGVuZHM9InF0NS1p bWFnZWZvcm1hdHMgcXQ1LWNvcmU+PTUuMTUuMTw1LjE1LjIiCitkZXBlbmRzPSJxdDUtaW1hZ2Vm b3JtYXRzIHF0NS1jb3JlPj01LjE1LjI8NS4xNS4zIgogc2hvcnRfZGVzYz0iVGVsZWdyYW0gRGVz a3RvcCBtZXNzYWdpbmcgYXBwIgogbWFpbnRhaW5lcj0iSm9obiA8bWVAam9obm55bmF0b3IuZGV2 PiIKIGxpY2Vuc2U9IkdQTC0zLjAtb3ItbGF0ZXIgV0lUSCBPcGVuU1NMIgoKRnJvbSBkNGM5NTQw ZDI0OTA0MTM0ODQyMmE4MTQxOWVhZGZhNWM4ZDkzNWExIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQpGcm9tOiBKb2huIDxtZUBqb2hubnluYXRvci5kZXY+CkRhdGU6IFNhdCwgMjEgTm92IDIwMjAg MTM6NTY6MDAgKzAxMDAKU3ViamVjdDogW1BBVENIIDUvNl0ga3dpbjogcmVidWlsZCBhZ2FpbnN0 IHF0NS01LjE1LjIKCi0tLQogc3JjcGtncy9rd2luL3RlbXBsYXRlIHwgNCArKy0tCiAxIGZpbGUg Y2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Ny Y3BrZ3Mva3dpbi90ZW1wbGF0ZSBiL3NyY3BrZ3Mva3dpbi90ZW1wbGF0ZQppbmRleCA4YWUxODg3 MWFkYi4uN2YxZjJhMmY1YmUgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mva3dpbi90ZW1wbGF0ZQorKysg Yi9zcmNwa2dzL2t3aW4vdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUg Zm9yICdrd2luJwogcGtnbmFtZT1rd2luCiB2ZXJzaW9uPTUuMjAuMwotcmV2aXNpb249MQorcmV2 aXNpb249MgogYnVpbGRfc3R5bGU9Y21ha2UKIGNvbmZpZ3VyZV9hcmdzPSItREJVSUxEX1RFU1RJ Tkc9T0ZGIgogaG9zdG1ha2VkZXBlbmRzPSJleHRyYS1jbWFrZS1tb2R1bGVzIGdldHRleHQgYnJl ZXplIHBrZy1jb25maWciCkBAIC0xMCw3ICsxMCw3IEBAIG1ha2VkZXBlbmRzPSJwbGFzbWEtZnJh bWV3b3JrLWRldmVsIGtjbXV0aWxzLWRldmVsIGtuZXdzdHVmZi1kZXZlbAogIGtkZWNvcmF0aW9u LWRldmVsIGxpYnhrYmNvbW1vbi1kZXZlbCBsaWJpbnB1dC1kZXZlbCBsaWJTTS1kZXZlbAogIGxp YklDRS1kZXZlbCB4Y2ItdXRpbC13bS1kZXZlbCBxdDUtc2Vuc29ycy1kZXZlbCBsaWJjYXAtZGV2 ZWwKICBrd2F5bGFuZC1zZXJ2ZXItZGV2ZWwgJCh2b3B0X2lmIHBpcGV3aXJlIHBpcGV3aXJlLWRl dmVsKSIKLWRlcGVuZHM9ImJyZWV6ZSBoaWNvbG9yLWljb24tdGhlbWUga2luaXQgcXQ1LWNvcmU+ PTUuMTUuMTw1LjE1LjIiCitkZXBlbmRzPSJicmVlemUgaGljb2xvci1pY29uLXRoZW1lIGtpbml0 IHF0NS1jb3JlPj01LjE1LjI8NS4xNS4zIgogc2hvcnRfZGVzYz0iS0RFIFdpbmRvdyBtYW5hZ2Vy IgogbWFpbnRhaW5lcj0iSm9obiA8bWVAam9obm55bmF0b3IuZGV2PiIKIGxpY2Vuc2U9IkdQTC0y LjAtb3ItbGF0ZXIiCgpGcm9tIDlmNjM0YjdhOTlkMjY3M2Q1ZWNiZDc4NDYxZmM2MjlhOTEyNjI5 ZjUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEpvaG4gPG1lQGpvaG5ueW5hdG9yLmRl dj4KRGF0ZTogU2F0LCAyMSBOb3YgMjAyMCAxMzo1NjowMCArMDEwMApTdWJqZWN0OiBbUEFUQ0gg Ni82XSBxdDUtc3R5bGVwbHVnaW5zOiByZWJ1aWxkIGFnYWluc3QgcXQ1LTUuMTUuMgoKLS0tCiBz cmNwa2dzL3F0NS1zdHlsZXBsdWdpbnMvdGVtcGxhdGUgfCA0ICsrLS0KIDEgZmlsZSBjaGFuZ2Vk LCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9x dDUtc3R5bGVwbHVnaW5zL3RlbXBsYXRlIGIvc3JjcGtncy9xdDUtc3R5bGVwbHVnaW5zL3RlbXBs YXRlCmluZGV4IDA0YWU2MDM0NTgyLi5iZThhMTI1YjQ2NiAxMDA2NDQKLS0tIGEvc3JjcGtncy9x dDUtc3R5bGVwbHVnaW5zL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvcXQ1LXN0eWxlcGx1Z2lucy90 ZW1wbGF0ZQpAQCAtMSwxMyArMSwxMyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAncXQ1LXN0eWxl cGx1Z2lucycKIHBrZ25hbWU9cXQ1LXN0eWxlcGx1Z2lucwogdmVyc2lvbj01LjAuMAotcmV2aXNp b249MTQKK3JldmlzaW9uPTE1CiBfZ2l0cmV2PTMzNWRiZWNlMTAzZTJjYmY2YzdjZjgxOWFiNjY3 MmMyOTU2YjE3YjMKIHdya3NyYz0icXRzdHlsZXBsdWdpbnMtJHtfZ2l0cmV2fSIKIGJ1aWxkX3N0 eWxlPXFtYWtlCiBob3N0bWFrZWRlcGVuZHM9InBrZy1jb25maWcgcXQ1LWhvc3QtdG9vbHMgcXQ1 LWRldmVsIgogbWFrZWRlcGVuZHM9ImxpYnhjYi1kZXZlbCBsaWJ4a2Jjb21tb24tZGV2ZWwgbGli aW5wdXQtZGV2ZWwgdHNsaWItZGV2ZWwgZ3RrKy1kZXZlbCBxdDUtZGV2ZWwiCi1kZXBlbmRzPSJx dDUtY29yZT49NS4xNS4xPDUuMTUuMiIKK2RlcGVuZHM9InF0NS1jb3JlPj01LjE1LjI8NS4xNS4z Igogc2hvcnRfZGVzYz0iQWRkaXRpb25hbCBzdHlsZSBwbHVnaW5zIGZvciBRdDUiCiBtYWludGFp bmVyPSJKw7xyZ2VuIEJ1Y2htw7xsbGVyIDxwdWxsbW9sbEB0LW9ubGluZS5kZT4iCiBsaWNlbnNl PSJMR1BMLTIuMS1vbmx5LCBMR1BMLTMuMC1vbmx5Igo= --===============5902752568046354949==--