From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (qmail 1173 invoked from network); 4 May 2022 20:50:54 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 4 May 2022 20:50:54 -0000 Content-Type: multipart/mixed; boundary="===============6184161703866227559==" MIME-Version: 1.0 Subject: =?utf8?q?Re=3A_=5BPR_PATCH=5D_=5BUpdated=5D_Llvm14?= To: ml@inbox.vuxu.org From: prez Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Wed, 04 May 2022 22:50:54 +0200 List-Id: Message-ID: <20220504205054.u8dbGCRRjUvO8ARgbScdpDjGHr851292hn-m1g1lSN8@z> GitHub notification mails are now in MIME to allow UTF8. --===============6184161703866227559== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgcHJleiBhZ2FpbnN0IG1hc3RlciBv biB0aGUgdm9pZC1wYWNrYWdlcyByZXBvc2l0b3J5CgpodHRwczovL2dpdGh1Yi5jb20vcHJlei92 b2lkLXBhY2thZ2VzIGxsdm0KaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9pZC1wYWNr YWdlcy9wdWxsLzM2OTYyCgpMbHZtMTQKU3VwZXJzZWRlcyBodHRwczovL2dpdGh1Yi5jb20vdm9p ZC1saW51eC92b2lkLXBhY2thZ2VzL3B1bGwvMzYyMjksIGh0dHBzOi8vZ2l0aHViLmNvbS92b2lk LWxpbnV4L3ZvaWQtcGFja2FnZXMvcHVsbC8zNDgwMCAtIHRoYW5rIHlvdSBAbW90b3J0byBhbmQg QERCTG91aXMuDQoNClVwZGF0ZWQgcGF0Y2hlcywgcGluZyBAcTY2IC4NCg0KQGlmcmV1bmQgdG9k bzogemlnLiBTaW5jZSBpdCBkZXBlbmRzIG9uIGBsbGQtZGV2ZWxgLCBJIGd1ZXNzIHdlIG5lZWQg dG8gc3BsaXQgb3V0IGBsbGQxMmA/IFdvdWxkIGFwcHJlY2lhdGUgeW91ciBoZWxwIHdpdGggdGhp cywgSSBkb24ndCB3YW50IHRvIHdhaXQgZm9yIHRoZSBuZXh0IHppZyB2ZXJzaW9uLg0KDQpbY2kg c2tpcF0KCkEgcGF0Y2ggZmlsZSBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3Zv aWQtcGFja2FnZXMvcHVsbC8zNjk2Mi5wYXRjaCBpcyBhdHRhY2hlZA== --===============6184161703866227559== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-llvm-36962.patch" RnJvbSBhZjMyMTRkMDA2ZTdiYzc3Y2ExMjAxYzIyMGJlNGNlNGI4YmViZDM0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBwcmV6IDxwcmV6QG5hdGlvbmFsLnNoaXRwb3N0aW5nLmFnZW5j eT4KRGF0ZTogTW9uLCAyIE1heSAyMDIyIDIxOjE1OjA2ICswMjAwClN1YmplY3Q6IFtQQVRDSCAw MS8yOV0gTmV3IHBhY2thZ2U6IGxsdm0xNC0xNC4wLjMKCi0tLQogY29tbW9uL3NobGlicyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDE2ICstCiBzcmNwa2dzL2NsYW5nICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIHNyY3BrZ3MvY2xhbmctYW5hbHl6 ZXIgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogc3JjcGtncy9jbGFuZy10b29scy1l eHRyYSAgICAgICAgICAgICAgICAgICAgIHwgICAyICstCiBzcmNwa2dzL2xpYmNsYW5nICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIHNyY3BrZ3MvbGliY2xhbmctY3BwICAg ICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogc3JjcGtncy9saWJjeHggICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwgICAyICstCiBzcmNwa2dzL2xpYmN4eC1kZXZlbCAgICAg ICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIHNyY3BrZ3MvbGliY3h4YWJpICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogc3JjcGtncy9saWJjeHhhYmktZGV2ZWwgICAg ICAgICAgICAgICAgICAgICAgIHwgICAyICstCiBzcmNwa2dzL2xpYmxsdm0xNCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjcGtncy9saWJvbXAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgICAyICstCiBzcmNwa2dzL2xpYm9tcC1kZXZlbCAgICAgICAgICAg ICAgICAgICAgICAgICAgfCAgIDIgKy0KIHNyY3BrZ3MvbGxkICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB8ICAgMiArLQogc3JjcGtncy9sbGQtZGV2ZWwgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgICAyICstCiBzcmNwa2dzL2xsZGIgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfCAgIDIgKy0KIHNyY3BrZ3MvbGxkYi1kZXZlbCAgICAgICAgICAgICAgICAg ICAgICAgICAgICB8ICAgMiArLQogc3JjcGtncy9sbHZtLWxpYnVud2luZCAgICAgICAgICAgICAg ICAgICAgICAgIHwgICAyICstCiBzcmNwa2dzL2xsdm0tbGlidW53aW5kLWRldmVsICAgICAgICAg ICAgICAgICAgfCAgIDIgKy0KIC4uLi9wYXRjaGVzL2NsYW5nLTAwMi1hZGQtbXVzbC10cmlwbGVz LnBhdGNoICB8IDExMCArKysrKwogLi4uL2NsYW5nLTAwMy1wcGM2NC1keW5hbWljLWxpbmtlci1w YXRoLnBhdGNoIHwgIDEzICsKIC4uLi9wYXRjaGVzL2NsYW5nLTAwNC1wcGM2NC1tdXNsLWVsZnYy LnBhdGNoICB8ICA0OCArKwogLi4uL2NvbXBpbGVyLXJ0LXNhbml0aXplci1wcGM2NC1tdXNsLnBh dGNoICAgIHwgIDM1ICsrCiAuLi4vcGF0Y2hlcy9jb21waWxlci1ydC14cmF5LXBwYzY0LW11c2wu cGF0Y2ggfCAgNjIgKysrCiBzcmNwa2dzL2xsdm0xNC9wYXRjaGVzL2xpYmN4eC1tdXNsLnBhdGNo ICAgICAgfCAgMjYgKysKIHNyY3BrZ3MvbGx2bTE0L3BhdGNoZXMvbGliY3h4LXBwYy5wYXRjaCAg ICAgICB8ICAyMiArCiAuLi4vbGx2bTE0L3BhdGNoZXMvbGliY3h4LXNzcC1ub25zaGFyZWQucGF0 Y2ggfCAgMTEgKwogc3JjcGtncy9sbHZtMTQvcGF0Y2hlcy9saWJjeHhhYmktZGwucGF0Y2ggICAg IHwgIDI1ICsrCiBzcmNwa2dzL2xsdm0xNC9wYXRjaGVzL2xsZGItbXVzbC5wYXRjaCAgICAgICAg fCAgMzEgKysKIHNyY3BrZ3MvbGx2bTE0L3BhdGNoZXMvbGx2bS0wMDEtbXVzbC5wYXRjaCAgICB8 ICA1NyArKysKIC4uLi9wYXRjaGVzL2xsdm0tMDAyLW11c2wtcHBjNjQtZWxmdjIucGF0Y2ggICB8 ICAzMCArKwogLi4uL3BhdGNoZXMvbGx2bS0wMDMtcHBjLXNlY3VyZXBsdC5wYXRjaCAgICAgIHwg IDExICsKIC4uLi9wYXRjaGVzL2xsdm0tMDA0LW92ZXJyaWRlLW9wdC5wYXRjaCAgICAgICB8ICAx OCArCiAuLi4vbGx2bTE0L3BhdGNoZXMvbGx2bS0wMDUtcHBjLWJpZ3BpYy5wYXRjaCAgfCAgMzYg KysKIC4uLi9wYXRjaGVzL2xsdm0tMDA2LWFhcmNoNjQtbWZfZXhlYy5wYXRjaCAgICB8ICAyNSAr Kwogc3JjcGtncy9sbHZtMTQvdGVtcGxhdGUgICAgICAgICAgICAgICAgICAgICAgIHwgNDI0ICsr KysrKysrKysrKysrKysrKwogc3JjcGtncy9sbHZtMTQvdXBkYXRlICAgICAgICAgICAgICAgICAg ICAgICAgIHwgICAzICsKIDM3IGZpbGVzIGNoYW5nZWQsIDEwMTggaW5zZXJ0aW9ucygrKSwgMjAg ZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMjAwMDAgc3JjcGtncy9saWJsbHZtMTQKIGNyZWF0 ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xsdm0xNC9wYXRjaGVzL2NsYW5nLTAwMi1hZGQtbXVzbC10 cmlwbGVzLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9sbHZtMTQvcGF0Y2hlcy9j bGFuZy0wMDMtcHBjNjQtZHluYW1pYy1saW5rZXItcGF0aC5wYXRjaAogY3JlYXRlIG1vZGUgMTAw NjQ0IHNyY3BrZ3MvbGx2bTE0L3BhdGNoZXMvY2xhbmctMDA0LXBwYzY0LW11c2wtZWxmdjIucGF0 Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xsdm0xNC9wYXRjaGVzL2NvbXBpbGVyLXJ0 LXNhbml0aXplci1wcGM2NC1tdXNsLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9s bHZtMTQvcGF0Y2hlcy9jb21waWxlci1ydC14cmF5LXBwYzY0LW11c2wucGF0Y2gKIGNyZWF0ZSBt b2RlIDEwMDY0NCBzcmNwa2dzL2xsdm0xNC9wYXRjaGVzL2xpYmN4eC1tdXNsLnBhdGNoCiBjcmVh dGUgbW9kZSAxMDA2NDQgc3JjcGtncy9sbHZtMTQvcGF0Y2hlcy9saWJjeHgtcHBjLnBhdGNoCiBj cmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9sbHZtMTQvcGF0Y2hlcy9saWJjeHgtc3NwLW5vbnNo YXJlZC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGx2bTE0L3BhdGNoZXMvbGli Y3h4YWJpLWRsLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9sbHZtMTQvcGF0Y2hl cy9sbGRiLW11c2wucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xsdm0xNC9wYXRj aGVzL2xsdm0tMDAxLW11c2wucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xsdm0x NC9wYXRjaGVzL2xsdm0tMDAyLW11c2wtcHBjNjQtZWxmdjIucGF0Y2gKIGNyZWF0ZSBtb2RlIDEw MDY0NCBzcmNwa2dzL2xsdm0xNC9wYXRjaGVzL2xsdm0tMDAzLXBwYy1zZWN1cmVwbHQucGF0Y2gK IGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xsdm0xNC9wYXRjaGVzL2xsdm0tMDA0LW92ZXJy aWRlLW9wdC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGx2bTE0L3BhdGNoZXMv bGx2bS0wMDUtcHBjLWJpZ3BpYy5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGx2 bTE0L3BhdGNoZXMvbGx2bS0wMDYtYWFyY2g2NC1tZl9leGVjLnBhdGNoCiBjcmVhdGUgbW9kZSAx MDA2NDQgc3JjcGtncy9sbHZtMTQvdGVtcGxhdGUKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dz L2xsdm0xNC91cGRhdGUKCmRpZmYgLS1naXQgYS9jb21tb24vc2hsaWJzIGIvY29tbW9uL3NobGli cwppbmRleCA0MTE0MTUxNjYyZmIuLjgxYWNjMzlkZWZiNCAxMDA2NDQKLS0tIGEvY29tbW9uL3No bGlicworKysgYi9jb21tb24vc2hsaWJzCkBAIC05NzUsMTEgKzk3NSwxMiBAQCBsaWJ1Y2hhcmRl dC5zby4wIHVjaGFyZGV0LTAuMC42XzEKIGxpYmd0a3NvdXJjZXZpZXdtbS0zLjAuc28uMCBndGtz b3VyY2V2aWV3bW0tMy4yLjBfMQogbGlieWFqbC5zby4yIHlhamwtMi4wLjFfMQogbGliY29uZnVz ZS5zby4yIGNvbmZ1c2UtMy4yLjFfMQotbGlibGxkYi5zby4xMiBsbGRiLTEyLjAuMF8xCi1saWJj bGFuZy5zby4xMiBsaWJjbGFuZy0xMi4wLjBfMQotbGliY2xhbmctY3BwLnNvLjEyIGxpYmNsYW5n LWNwcC0xMi4wLjBfMQorbGlibGxkYi5zby4xNCBsbGRiLTE0LjAuM18xCitsaWJjbGFuZy5zby4x NCBsaWJjbGFuZy0xNC4wLjNfMQorbGliY2xhbmctY3BwLnNvLjE0IGxpYmNsYW5nLWNwcC0xNC4w LjNfMQogbGliTExWTS0xMS5zbyBsaWJsbHZtMTEtMTEuMC4wXzEKIGxpYkxMVk0tMTIuc28gbGli bGx2bTEyLTEyLjAuMF8xCitsaWJMTFZNLTE0LnNvIGxpYmxsdm0xNC0xNC4wLjNfMQogbGliaXNv ZnMuc28uNiBsaWJpc29mcy0wLjYuMjRfMQogbGlibXBhY2suc28uMCBsaWJtcGFjay0xLjAuNV8x CiBsaWJHZW9JUC5zby4xIGxpYmdlb2lwLTEuNC44XzEKQEAgLTQxNTIsMyArNDE1MywxMiBAQCBs aWJyel9iaW4uc28uMC4zLjQgcml6aW4tMC4zLjRfMQogbGliYXJhdmlzLTAuOC5zby4wIGxpYmFy YXZpcy0wLjguMjFfMQogbGliTGltZVN1aXRlLnNvLjIwLjEwLTEgTGltZVN1aXRlLTIwLjEwLjBf MQogbGlibnZtZS5zby4xIGxpYm52bWUtMS4wXzEKK2xpYm9tcC5zbyBsaWJvbXAtMTQuMC4zXzEK K2xpYm9tcHRhcmdldC5ydGwuYW1kZ3B1LnNvIGxpYm9tcC0xNC4wLjNfMQorbGlib21wdGFyZ2V0 LnJ0bC5jdWRhLnNvIGxpYm9tcC0xNC4wLjNfMQorbGlib21wdGFyZ2V0LnJ0bC54ODZfNjQuc28g bGlib21wLTE0LjAuM18xCitsaWJhcmNoZXIuc28gbGlib21wLTE0LjAuM18xCitsaWJvbXB0YXJn ZXQuc28gbGlib21wLTE0LjAuM18xCitsaWJsbGRiSW50ZWxGZWF0dXJlcy5zby4xNCBsbGRiLTE0 LjAuM18xCitsaWJMVE8uc28uMTQgbGx2bTE0LTE0LjAuM18xCitsaWJSZW1hcmtzLnNvLjE0IGxs dm0xNC0xNC4wLjNfMQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9jbGFuZyBiL3NyY3BrZ3MvY2xhbmcK aW5kZXggY2Q2MGZkN2E5ODFiLi4xZDQyZWQ3NjMyYTYgMTIwMDAwCi0tLSBhL3NyY3BrZ3MvY2xh bmcKKysrIGIvc3JjcGtncy9jbGFuZwpAQCAtMSArMSBAQAotbGx2bTEyClwgTm8gbmV3bGluZSBh dCBlbmQgb2YgZmlsZQorbGx2bTE0ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0t Z2l0IGEvc3JjcGtncy9jbGFuZy1hbmFseXplciBiL3NyY3BrZ3MvY2xhbmctYW5hbHl6ZXIKaW5k ZXggY2Q2MGZkN2E5ODFiLi4xZDQyZWQ3NjMyYTYgMTIwMDAwCi0tLSBhL3NyY3BrZ3MvY2xhbmct YW5hbHl6ZXIKKysrIGIvc3JjcGtncy9jbGFuZy1hbmFseXplcgpAQCAtMSArMSBAQAotbGx2bTEy ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorbGx2bTE0ClwgTm8gbmV3bGluZSBhdCBlbmQg b2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9jbGFuZy10b29scy1leHRyYSBiL3NyY3BrZ3Mv Y2xhbmctdG9vbHMtZXh0cmEKaW5kZXggY2Q2MGZkN2E5ODFiLi4xZDQyZWQ3NjMyYTYgMTIwMDAw Ci0tLSBhL3NyY3BrZ3MvY2xhbmctdG9vbHMtZXh0cmEKKysrIGIvc3JjcGtncy9jbGFuZy10b29s cy1leHRyYQpAQCAtMSArMSBAQAotbGx2bTEyClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQor bGx2bTE0ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9s aWJjbGFuZyBiL3NyY3BrZ3MvbGliY2xhbmcKaW5kZXggY2Q2MGZkN2E5ODFiLi4xZDQyZWQ3NjMy YTYgMTIwMDAwCi0tLSBhL3NyY3BrZ3MvbGliY2xhbmcKKysrIGIvc3JjcGtncy9saWJjbGFuZwpA QCAtMSArMSBAQAotbGx2bTEyClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorbGx2bTE0Clwg Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9saWJjbGFuZy1j cHAgYi9zcmNwa2dzL2xpYmNsYW5nLWNwcAppbmRleCBjZDYwZmQ3YTk4MWIuLjFkNDJlZDc2MzJh NiAxMjAwMDAKLS0tIGEvc3JjcGtncy9saWJjbGFuZy1jcHAKKysrIGIvc3JjcGtncy9saWJjbGFu Zy1jcHAKQEAgLTEgKzEgQEAKLWxsdm0xMgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK2xs dm0xNApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGli Y3h4IGIvc3JjcGtncy9saWJjeHgKaW5kZXggY2Q2MGZkN2E5ODFiLi4xZDQyZWQ3NjMyYTYgMTIw MDAwCi0tLSBhL3NyY3BrZ3MvbGliY3h4CisrKyBiL3NyY3BrZ3MvbGliY3h4CkBAIC0xICsxIEBA Ci1sbHZtMTIKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCitsbHZtMTQKXCBObyBuZXdsaW5l IGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xpYmN4eC1kZXZlbCBiL3NyY3Br Z3MvbGliY3h4LWRldmVsCmluZGV4IGNkNjBmZDdhOTgxYi4uMWQ0MmVkNzYzMmE2IDEyMDAwMAot LS0gYS9zcmNwa2dzL2xpYmN4eC1kZXZlbAorKysgYi9zcmNwa2dzL2xpYmN4eC1kZXZlbApAQCAt MSArMSBAQAotbGx2bTEyClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorbGx2bTE0ClwgTm8g bmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9saWJjeHhhYmkgYi9z cmNwa2dzL2xpYmN4eGFiaQppbmRleCBjZDYwZmQ3YTk4MWIuLjFkNDJlZDc2MzJhNiAxMjAwMDAK LS0tIGEvc3JjcGtncy9saWJjeHhhYmkKKysrIGIvc3JjcGtncy9saWJjeHhhYmkKQEAgLTEgKzEg QEAKLWxsdm0xMgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK2xsdm0xNApcIE5vIG5ld2xp bmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGliY3h4YWJpLWRldmVsIGIv c3JjcGtncy9saWJjeHhhYmktZGV2ZWwKaW5kZXggY2Q2MGZkN2E5ODFiLi4xZDQyZWQ3NjMyYTYg MTIwMDAwCi0tLSBhL3NyY3BrZ3MvbGliY3h4YWJpLWRldmVsCisrKyBiL3NyY3BrZ3MvbGliY3h4 YWJpLWRldmVsCkBAIC0xICsxIEBACi1sbHZtMTIKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl CitsbHZtMTQKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmNwa2dz L2xpYmxsdm0xNCBiL3NyY3BrZ3MvbGlibGx2bTE0Cm5ldyBmaWxlIG1vZGUgMTIwMDAwCmluZGV4 IDAwMDAwMDAwMDAwMC4uMWQ0MmVkNzYzMmE2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9s aWJsbHZtMTQKQEAgLTAsMCArMSBAQAorbGx2bTE0ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls ZQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9saWJvbXAgYi9zcmNwa2dzL2xpYm9tcAppbmRleCBjZDYw ZmQ3YTk4MWIuLjFkNDJlZDc2MzJhNiAxMjAwMDAKLS0tIGEvc3JjcGtncy9saWJvbXAKKysrIGIv c3JjcGtncy9saWJvbXAKQEAgLTEgKzEgQEAKLWxsdm0xMgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9m IGZpbGUKK2xsdm0xNApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MvbGlib21wLWRldmVsIGIvc3JjcGtncy9saWJvbXAtZGV2ZWwKaW5kZXggY2Q2MGZkN2E5 ODFiLi4xZDQyZWQ3NjMyYTYgMTIwMDAwCi0tLSBhL3NyY3BrZ3MvbGlib21wLWRldmVsCisrKyBi L3NyY3BrZ3MvbGlib21wLWRldmVsCkBAIC0xICsxIEBACi1sbHZtMTIKXCBObyBuZXdsaW5lIGF0 IGVuZCBvZiBmaWxlCitsbHZtMTQKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1n aXQgYS9zcmNwa2dzL2xsZCBiL3NyY3BrZ3MvbGxkCmluZGV4IGNkNjBmZDdhOTgxYi4uMWQ0MmVk NzYzMmE2IDEyMDAwMAotLS0gYS9zcmNwa2dzL2xsZAorKysgYi9zcmNwa2dzL2xsZApAQCAtMSAr MSBAQAotbGx2bTEyClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorbGx2bTE0ClwgTm8gbmV3 bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbGQtZGV2ZWwgYi9zcmNw a2dzL2xsZC1kZXZlbAppbmRleCBjZDYwZmQ3YTk4MWIuLjFkNDJlZDc2MzJhNiAxMjAwMDAKLS0t IGEvc3JjcGtncy9sbGQtZGV2ZWwKKysrIGIvc3JjcGtncy9sbGQtZGV2ZWwKQEAgLTEgKzEgQEAK LWxsdm0xMgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK2xsdm0xNApcIE5vIG5ld2xpbmUg YXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGxkYiBiL3NyY3BrZ3MvbGxkYgpp bmRleCBjZDYwZmQ3YTk4MWIuLjFkNDJlZDc2MzJhNiAxMjAwMDAKLS0tIGEvc3JjcGtncy9sbGRi CisrKyBiL3NyY3BrZ3MvbGxkYgpAQCAtMSArMSBAQAotbGx2bTEyClwgTm8gbmV3bGluZSBhdCBl bmQgb2YgZmlsZQorbGx2bTE0ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0 IGEvc3JjcGtncy9sbGRiLWRldmVsIGIvc3JjcGtncy9sbGRiLWRldmVsCmluZGV4IGNkNjBmZDdh OTgxYi4uMWQ0MmVkNzYzMmE2IDEyMDAwMAotLS0gYS9zcmNwa2dzL2xsZGItZGV2ZWwKKysrIGIv c3JjcGtncy9sbGRiLWRldmVsCkBAIC0xICsxIEBACi1sbHZtMTIKXCBObyBuZXdsaW5lIGF0IGVu ZCBvZiBmaWxlCitsbHZtMTQKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQg YS9zcmNwa2dzL2xsdm0tbGlidW53aW5kIGIvc3JjcGtncy9sbHZtLWxpYnVud2luZAppbmRleCBj ZDYwZmQ3YTk4MWIuLjFkNDJlZDc2MzJhNiAxMjAwMDAKLS0tIGEvc3JjcGtncy9sbHZtLWxpYnVu d2luZAorKysgYi9zcmNwa2dzL2xsdm0tbGlidW53aW5kCkBAIC0xICsxIEBACi1sbHZtMTIKXCBO byBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCitsbHZtMTQKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBm aWxlCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0tbGlidW53aW5kLWRldmVsIGIvc3JjcGtncy9s bHZtLWxpYnVud2luZC1kZXZlbAppbmRleCBjZDYwZmQ3YTk4MWIuLjFkNDJlZDc2MzJhNiAxMjAw MDAKLS0tIGEvc3JjcGtncy9sbHZtLWxpYnVud2luZC1kZXZlbAorKysgYi9zcmNwa2dzL2xsdm0t bGlidW53aW5kLWRldmVsCkBAIC0xICsxIEBACi1sbHZtMTIKXCBObyBuZXdsaW5lIGF0IGVuZCBv ZiBmaWxlCitsbHZtMTQKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9z cmNwa2dzL2xsdm0xNC9wYXRjaGVzL2NsYW5nLTAwMi1hZGQtbXVzbC10cmlwbGVzLnBhdGNoIGIv c3JjcGtncy9sbHZtMTQvcGF0Y2hlcy9jbGFuZy0wMDItYWRkLW11c2wtdHJpcGxlcy5wYXRjaApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjdiNjQwZTEwMmJlZAotLS0g L2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbGx2bTE0L3BhdGNoZXMvY2xhbmctMDAyLWFkZC1tdXNs LXRyaXBsZXMucGF0Y2gKQEAgLTAsMCArMSwxMTAgQEAKKy0tLSBhL2NsYW5nL2xpYi9Ecml2ZXIv VG9vbENoYWlucy9HbnUuY3BwCisrKysgYi9jbGFuZy9saWIvRHJpdmVyL1Rvb2xDaGFpbnMvR251 LmNwcAorQEAgLTIwODMsNyArMjA4Myw4IEBAIHZvaWQgR2VuZXJpY19HQ0M6OkdDQ0luc3RhbGxh dGlvbkRldGVjdG9yOjpBZGREZWZhdWx0R0NDUHJlZml4ZXMoCisgICBzdGF0aWMgY29uc3QgY2hh ciAqY29uc3QgQVJNSEZUcmlwbGVzW10gPSB7ImFybS1saW51eC1nbnVlYWJpaGYiLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhcm12N2hsLXJlZGhhdC1s aW51eC1nbnVlYWJpIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAiYXJtdjZobC1zdXNlLWxpbnV4LWdudWVhYmkiLAorLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICJhcm12N2hsLXN1c2UtbGludXgtZ251ZWFiaSJ9Owor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhcm12N2hsLXN1 c2UtbGludXgtZ251ZWFiaSIsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgImFybXY3bC1saW51eC1nbnVlYWJpaGYifTsKKyAgIHN0YXRpYyBjb25zdCBjaGFy ICpjb25zdCBBUk1lYkxpYkRpcnNbXSA9IHsiL2xpYiJ9OworICAgc3RhdGljIGNvbnN0IGNoYXIg KmNvbnN0IEFSTWViVHJpcGxlc1tdID0geyJhcm1lYi1saW51eC1nbnVlYWJpIn07CisgICBzdGF0 aWMgY29uc3QgY2hhciAqY29uc3QgQVJNZWJIRlRyaXBsZXNbXSA9IHsKK0BAIC0yMTUxLDggKzIx NTIsNyBAQCB2b2lkIEdlbmVyaWNfR0NDOjpHQ0NJbnN0YWxsYXRpb25EZXRlY3Rvcjo6QWRkRGVm YXVsdEdDQ1ByZWZpeGVzKAorICAgICAgICJwb3dlcnBjNjQtc3VzZS1saW51eCIsICJwb3dlcnBj LW1vbnRhdmlzdGEtbGludXhzcGUifTsKKyAgIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBQUENM RUxpYkRpcnNbXSA9IHsiL2xpYjMyIiwgIi9saWIifTsKKyAgIHN0YXRpYyBjb25zdCBjaGFyICpj b25zdCBQUENMRVRyaXBsZXNbXSA9IHsicG93ZXJwY2xlLWxpbnV4LWdudSIsCistICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInBvd2VycGNsZS11bmtub3duLWxp bnV4LWdudSIsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg InBvd2VycGNsZS1saW51eC1tdXNsIn07CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgInBvd2VycGNsZS11bmtub3duLWxpbnV4LWdudSJ9OworCisgICBzdGF0 aWMgY29uc3QgY2hhciAqY29uc3QgUFBDNjRMaWJEaXJzW10gPSB7Ii9saWI2NCIsICIvbGliIn07 CisgICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgUFBDNjRUcmlwbGVzW10gPSB7CitAQCAtMjIz MSw2ICsyMjMxLDg3IEBAIHZvaWQgR2VuZXJpY19HQ0M6OkdDQ0luc3RhbGxhdGlvbkRldGVjdG9y OjpBZGREZWZhdWx0R0NDUHJlZml4ZXMoCisgICAgIHJldHVybjsKKyAgIH0KKworKyAgaWYgKFRh cmdldFRyaXBsZS5pc011c2woKSkgeworKyAgICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgQUFy Y2g2NE11c2xUcmlwbGVzW10gPSB7ImFhcmNoNjQtbGludXgtbXVzbCJ9OworKyAgICBzdGF0aWMg Y29uc3QgY2hhciAqY29uc3QgQVJNSEZNdXNsVHJpcGxlc1tdID0geworKyAgICAgICAgImFybS1s aW51eC1tdXNsZWFiaWhmIiwgImFybXY3bC1saW51eC1tdXNsZWFiaWhmIgorKyAgICB9OworKyAg ICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgQVJNTXVzbFRyaXBsZXNbXSA9IHsiYXJtLWxpbnV4 LW11c2xlYWJpIn07CisrICAgIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBYODZfNjRNdXNsVHJp cGxlc1tdID0geyJ4ODZfNjQtbGludXgtbXVzbCJ9OworKyAgICBzdGF0aWMgY29uc3QgY2hhciAq Y29uc3QgWDg2TXVzbFRyaXBsZXNbXSA9IHsiaTY4Ni1saW51eC1tdXNsIn07CisrICAgIHN0YXRp YyBjb25zdCBjaGFyICpjb25zdCBNSVBTTXVzbFRyaXBsZXNbXSA9IHsKKysgICAgICAgICJtaXBz LWxpbnV4LW11c2wiLCAibWlwc2VsLWxpbnV4LW11c2wiLAorKyAgICAgICAgIm1pcHNlbC1saW51 eC1tdXNsaGYiLCAibWlwcy1saW51eC1tdXNsaGYiCisrICAgIH07CisrICAgIHN0YXRpYyBjb25z dCBjaGFyICpjb25zdCBQUENNdXNsVHJpcGxlc1tdID0geyJwb3dlcnBjLWxpbnV4LW11c2wifTsK KysgICAgc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IFBQQ0xFTXVzbFRyaXBsZXNbXSA9IHsicG93 ZXJwY2xlLWxpbnV4LW11c2wifTsKKysgICAgc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IFBQQzY0 TXVzbFRyaXBsZXNbXSA9IHsicG93ZXJwYzY0LWxpbnV4LW11c2wifTsKKysgICAgc3RhdGljIGNv bnN0IGNoYXIgKmNvbnN0IFBQQzY0TEVNdXNsVHJpcGxlc1tdID0geyJwb3dlcnBjNjRsZS1saW51 eC1tdXNsIn07CisrCisrICAgIHN3aXRjaCAoVGFyZ2V0VHJpcGxlLmdldEFyY2goKSkgeworKyAg ICBjYXNlIGxsdm06OlRyaXBsZTo6YWFyY2g2NDoKKysgICAgICBMaWJEaXJzLmFwcGVuZChiZWdp bihBQXJjaDY0TGliRGlycyksIGVuZChBQXJjaDY0TGliRGlycykpOworKyAgICAgIFRyaXBsZUFs aWFzZXMuYXBwZW5kKGJlZ2luKEFBcmNoNjRNdXNsVHJpcGxlcyksIGVuZChBQXJjaDY0TXVzbFRy aXBsZXMpKTsKKysgICAgICBCaWFyY2hMaWJEaXJzLmFwcGVuZChiZWdpbihBQXJjaDY0TGliRGly cyksIGVuZChBQXJjaDY0TGliRGlycykpOworKyAgICAgIEJpYXJjaFRyaXBsZUFsaWFzZXMuYXBw ZW5kKGJlZ2luKEFBcmNoNjRNdXNsVHJpcGxlcyksIGVuZChBQXJjaDY0TXVzbFRyaXBsZXMpKTsK KysgICAgICBicmVhazsKKysgICAgY2FzZSBsbHZtOjpUcmlwbGU6OmFybToKKysgICAgICBMaWJE aXJzLmFwcGVuZChiZWdpbihBUk1MaWJEaXJzKSwgZW5kKEFSTUxpYkRpcnMpKTsKKysgICAgICBp ZiAoVGFyZ2V0VHJpcGxlLmdldEVudmlyb25tZW50KCkgPT0gbGx2bTo6VHJpcGxlOjpNdXNsRUFC SUhGKSB7CisrICAgICAgICBUcmlwbGVBbGlhc2VzLmFwcGVuZChiZWdpbihBUk1IRk11c2xUcmlw bGVzKSwgZW5kKEFSTUhGTXVzbFRyaXBsZXMpKTsKKysgICAgICB9IGVsc2UgeworKyAgICAgICAg VHJpcGxlQWxpYXNlcy5hcHBlbmQoYmVnaW4oQVJNTXVzbFRyaXBsZXMpLCBlbmQoQVJNTXVzbFRy aXBsZXMpKTsKKysgICAgICB9CisrICAgICAgYnJlYWs7CisrICAgIGNhc2UgbGx2bTo6VHJpcGxl Ojp4ODZfNjQ6CisrICAgICAgTGliRGlycy5hcHBlbmQoYmVnaW4oWDg2XzY0TGliRGlycyksIGVu ZChYODZfNjRMaWJEaXJzKSk7CisrICAgICAgVHJpcGxlQWxpYXNlcy5hcHBlbmQoYmVnaW4oWDg2 XzY0TXVzbFRyaXBsZXMpLCBlbmQoWDg2XzY0TXVzbFRyaXBsZXMpKTsKKysgICAgICBCaWFyY2hM aWJEaXJzLmFwcGVuZChiZWdpbihYODZMaWJEaXJzKSwgZW5kKFg4NkxpYkRpcnMpKTsKKysgICAg ICBCaWFyY2hUcmlwbGVBbGlhc2VzLmFwcGVuZChiZWdpbihYODZNdXNsVHJpcGxlcyksIGVuZChY ODZNdXNsVHJpcGxlcykpOworKyAgICAgIGJyZWFrOworKyAgICBjYXNlIGxsdm06OlRyaXBsZTo6 eDg2OgorKyAgICAgIExpYkRpcnMuYXBwZW5kKGJlZ2luKFg4NkxpYkRpcnMpLCBlbmQoWDg2TGli RGlycykpOworKyAgICAgIFRyaXBsZUFsaWFzZXMuYXBwZW5kKGJlZ2luKFg4Nk11c2xUcmlwbGVz KSwgZW5kKFg4Nk11c2xUcmlwbGVzKSk7CisrICAgICAgQmlhcmNoTGliRGlycy5hcHBlbmQoYmVn aW4oWDg2XzY0TGliRGlycyksIGVuZChYODZfNjRMaWJEaXJzKSk7CisrICAgICAgQmlhcmNoVHJp cGxlQWxpYXNlcy5hcHBlbmQoYmVnaW4oWDg2XzY0TXVzbFRyaXBsZXMpLCBlbmQoWDg2XzY0TXVz bFRyaXBsZXMpKTsKKysgICAgICBicmVhazsKKysgICAgY2FzZSBsbHZtOjpUcmlwbGU6Om1pcHM6 CisrICAgICAgTGliRGlycy5hcHBlbmQoYmVnaW4oTUlQU0xpYkRpcnMpLCBlbmQoTUlQU0xpYkRp cnMpKTsKKysgICAgICBUcmlwbGVBbGlhc2VzLmFwcGVuZChiZWdpbihNSVBTTXVzbFRyaXBsZXMp LCBlbmQoTUlQU011c2xUcmlwbGVzKSk7CisrICAgICAgYnJlYWs7CisrICAgIGNhc2UgbGx2bTo6 VHJpcGxlOjpwcGM6CisrICAgICAgTGliRGlycy5hcHBlbmQoYmVnaW4oUFBDTGliRGlycyksIGVu ZChQUENMaWJEaXJzKSk7CisrICAgICAgVHJpcGxlQWxpYXNlcy5hcHBlbmQoYmVnaW4oUFBDTXVz bFRyaXBsZXMpLCBlbmQoUFBDTXVzbFRyaXBsZXMpKTsKKysgICAgICBCaWFyY2hMaWJEaXJzLmFw cGVuZChiZWdpbihQUEM2NExpYkRpcnMpLCBlbmQoUFBDNjRMaWJEaXJzKSk7CisrICAgICAgQmlh cmNoVHJpcGxlQWxpYXNlcy5hcHBlbmQoYmVnaW4oUFBDNjRNdXNsVHJpcGxlcyksIGVuZChQUEM2 NE11c2xUcmlwbGVzKSk7CisrICAgICAgYnJlYWs7CisrICAgIGNhc2UgbGx2bTo6VHJpcGxlOjpw cGNsZToKKysgICAgICBMaWJEaXJzLmFwcGVuZChiZWdpbihQUENMRUxpYkRpcnMpLCBlbmQoUFBD TEVMaWJEaXJzKSk7CisrICAgICAgVHJpcGxlQWxpYXNlcy5hcHBlbmQoYmVnaW4oUFBDTEVNdXNs VHJpcGxlcyksIGVuZChQUENMRU11c2xUcmlwbGVzKSk7CisrICAgICAgQmlhcmNoTGliRGlycy5h cHBlbmQoYmVnaW4oUFBDNjRMRUxpYkRpcnMpLCBlbmQoUFBDNjRMRUxpYkRpcnMpKTsKKysgICAg ICBCaWFyY2hUcmlwbGVBbGlhc2VzLmFwcGVuZChiZWdpbihQUEM2NExFTXVzbFRyaXBsZXMpLCBl bmQoUFBDNjRMRU11c2xUcmlwbGVzKSk7CisrICAgICAgYnJlYWs7CisrICAgIGNhc2UgbGx2bTo6 VHJpcGxlOjpwcGM2NDoKKysgICAgICBMaWJEaXJzLmFwcGVuZChiZWdpbihQUEM2NExpYkRpcnMp LCBlbmQoUFBDNjRMaWJEaXJzKSk7CisrICAgICAgVHJpcGxlQWxpYXNlcy5hcHBlbmQoYmVnaW4o UFBDNjRNdXNsVHJpcGxlcyksIGVuZChQUEM2NE11c2xUcmlwbGVzKSk7CisrICAgICAgQmlhcmNo TGliRGlycy5hcHBlbmQoYmVnaW4oUFBDTGliRGlycyksIGVuZChQUENMaWJEaXJzKSk7CisrICAg ICAgQmlhcmNoVHJpcGxlQWxpYXNlcy5hcHBlbmQoYmVnaW4oUFBDTXVzbFRyaXBsZXMpLCBlbmQo UFBDTXVzbFRyaXBsZXMpKTsKKysgICAgICBicmVhazsKKysgICAgY2FzZSBsbHZtOjpUcmlwbGU6 OnBwYzY0bGU6CisrICAgICAgTGliRGlycy5hcHBlbmQoYmVnaW4oUFBDNjRMRUxpYkRpcnMpLCBl bmQoUFBDNjRMRUxpYkRpcnMpKTsKKysgICAgICBUcmlwbGVBbGlhc2VzLmFwcGVuZChiZWdpbihQ UEM2NExFTXVzbFRyaXBsZXMpLCBlbmQoUFBDNjRMRU11c2xUcmlwbGVzKSk7CisrICAgICAgQmlh cmNoTGliRGlycy5hcHBlbmQoYmVnaW4oUFBDTEVMaWJEaXJzKSwgZW5kKFBQQ0xFTGliRGlycykp OworKyAgICAgIEJpYXJjaFRyaXBsZUFsaWFzZXMuYXBwZW5kKGJlZ2luKFBQQ0xFTXVzbFRyaXBs ZXMpLCBlbmQoUFBDTEVNdXNsVHJpcGxlcykpOworKyAgICAgIGJyZWFrOworKyAgICBkZWZhdWx0 OgorKyAgICAgIGJyZWFrOworKyAgICB9CisrICAgIFRyaXBsZUFsaWFzZXMucHVzaF9iYWNrKFRh cmdldFRyaXBsZS5zdHIoKSk7CisrICAgIGlmIChUYXJnZXRUcmlwbGUuc3RyKCkgIT0gQmlhcmNo VHJpcGxlLnN0cigpKQorKyAgICAgIEJpYXJjaFRyaXBsZUFsaWFzZXMucHVzaF9iYWNrKEJpYXJj aFRyaXBsZS5zdHIoKSk7CisrICAgIHJldHVybjsKKysgIH0KKysKKyAgIC8vIEFuZHJvaWQgdGFy Z2V0cyBzaG91bGQgbm90IHVzZSBHTlUvTGludXggdG9vbHMgb3IgbGlicmFyaWVzLgorICAgaWYg KFRhcmdldFRyaXBsZS5pc0FuZHJvaWQoKSkgeworICAgICBzdGF0aWMgY29uc3QgY2hhciAqY29u c3QgQUFyY2g2NEFuZHJvaWRUcmlwbGVzW10gPSB7CmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0x NC9wYXRjaGVzL2NsYW5nLTAwMy1wcGM2NC1keW5hbWljLWxpbmtlci1wYXRoLnBhdGNoIGIvc3Jj cGtncy9sbHZtMTQvcGF0Y2hlcy9jbGFuZy0wMDMtcHBjNjQtZHluYW1pYy1saW5rZXItcGF0aC5w YXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjQ3MTI4YWY3OWI3 ZgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbGx2bTE0L3BhdGNoZXMvY2xhbmctMDAzLXBw YzY0LWR5bmFtaWMtbGlua2VyLXBhdGgucGF0Y2gKQEAgLTAsMCArMSwxMyBAQAorLS0tIGEvY2xh bmcvbGliL0RyaXZlci9Ub29sQ2hhaW5zL0xpbnV4LmNwcAorKysrIGIvY2xhbmcvbGliL0RyaXZl ci9Ub29sQ2hhaW5zL0xpbnV4LmNwcAorQEAgLTQ5MCwxMCArNDkwLDYgQEAgc3RkOjpzdHJpbmcg TGludXg6OmdldER5bmFtaWNMaW5rZXIoY29uc3QgQXJnTGlzdCAmQXJncykgY29uc3QgeworICAg ICBMb2FkZXIgPSAibGQuc28uMSI7CisgICAgIGJyZWFrOworICAgY2FzZSBsbHZtOjpUcmlwbGU6 OnBwYzY0OgorLSAgICBMaWJEaXIgPSAibGliNjQiOworLSAgICBMb2FkZXIgPQorLSAgICAgICAg KHRvb2xzOjpwcGM6Omhhc1BQQ0FiaUFyZyhBcmdzLCAiZWxmdjIiKSkgPyAibGQ2NC5zby4yIiA6 ICJsZDY0LnNvLjEiOworLSAgICBicmVhazsKKyAgIGNhc2UgbGx2bTo6VHJpcGxlOjpwcGM2NGxl OgorICAgICBMaWJEaXIgPSAibGliNjQiOworICAgICBMb2FkZXIgPQpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9sbHZtMTQvcGF0Y2hlcy9jbGFuZy0wMDQtcHBjNjQtbXVzbC1lbGZ2Mi5wYXRjaCBiL3Ny Y3BrZ3MvbGx2bTE0L3BhdGNoZXMvY2xhbmctMDA0LXBwYzY0LW11c2wtZWxmdjIucGF0Y2gKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4yMWZjODAwM2M1ZjEKLS0tIC9k ZXYvbnVsbAorKysgYi9zcmNwa2dzL2xsdm0xNC9wYXRjaGVzL2NsYW5nLTAwNC1wcGM2NC1tdXNs LWVsZnYyLnBhdGNoCkBAIC0wLDAgKzEsNDggQEAKKy0tLSBhL2NsYW5nL2xpYi9CYXNpYy9UYXJn ZXRzL1BQQy5oCisrKysgYi9jbGFuZy9saWIvQmFzaWMvVGFyZ2V0cy9QUEMuaAorQEAgLTQxNSwx MSArNDE1LDEwIEBAIHB1YmxpYzoKKyAgICAgICBMb25nRG91YmxlRm9ybWF0ID0gJmxsdm06OkFQ RmxvYXQ6OklFRUVkb3VibGUoKTsKKyAgICAgfSBlbHNlIGlmICgoVHJpcGxlLmdldEFyY2goKSA9 PSBsbHZtOjpUcmlwbGU6OnBwYzY0bGUpKSB7CisgICAgICAgRGF0YUxheW91dCA9ICJlLW06ZS1p NjQ6NjQtbjMyOjY0IjsKKy0gICAgICBBQkkgPSAiZWxmdjIiOworICAgICB9IGVsc2UgeworICAg ICAgIERhdGFMYXlvdXQgPSAiRS1tOmUtaTY0OjY0LW4zMjo2NCI7CistICAgICAgQUJJID0gImVs ZnYxIjsKKyAgICAgfQorKyAgICBBQkkgPSAiZWxmdjIiOworIAorICAgICBpZiAoVHJpcGxlLmlz T1NGcmVlQlNEKCkgfHwgVHJpcGxlLmlzT1NPcGVuQlNEKCkgfHwgVHJpcGxlLmlzTXVzbCgpKSB7 CisgICAgICAgTG9uZ0RvdWJsZVdpZHRoID0gTG9uZ0RvdWJsZUFsaWduID0gNjQ7CistLS0gYS9j bGFuZy9saWIvQ29kZUdlbi9UYXJnZXRJbmZvLmNwcAorKysrIGIvY2xhbmcvbGliL0NvZGVHZW4v VGFyZ2V0SW5mby5jcHAKK0BAIC0xMDkyNyw5ICsxMDkyNyw5IEBAIGNvbnN0IFRhcmdldENvZGVH ZW5JbmZvICZDb2RlR2VuTW9kdWxlOjpnZXRUYXJnZXRDb2RlR2VuSW5mbygpIHsKKyAgICAgICBy ZXR1cm4gU2V0Q0dJbmZvKG5ldyBBSVhUYXJnZXRDb2RlR2VuSW5mbyhUeXBlcywgLypJczY0Qml0 Ki8gdHJ1ZSkpOworIAorICAgICBpZiAoVHJpcGxlLmlzT1NCaW5Gb3JtYXRFTEYoKSkgeworLSAg ICAgIFBQQzY0X1NWUjRfQUJJSW5mbzo6QUJJS2luZCBLaW5kID0gUFBDNjRfU1ZSNF9BQklJbmZv OjpFTEZ2MTsKKy0gICAgICBpZiAoZ2V0VGFyZ2V0KCkuZ2V0QUJJKCkgPT0gImVsZnYyIikKKy0g ICAgICAgIEtpbmQgPSBQUEM2NF9TVlI0X0FCSUluZm86OkVMRnYyOworKyAgICAgIFBQQzY0X1NW UjRfQUJJSW5mbzo6QUJJS2luZCBLaW5kID0gUFBDNjRfU1ZSNF9BQklJbmZvOjpFTEZ2MjsKKysg ICAgICBpZiAoZ2V0VGFyZ2V0KCkuZ2V0QUJJKCkgPT0gImVsZnYxIikKKysgICAgICAgIEtpbmQg PSBQUEM2NF9TVlI0X0FCSUluZm86OkVMRnYxOworICAgICAgIGJvb2wgSXNTb2Z0RmxvYXQgPSBD b2RlR2VuT3B0cy5GbG9hdEFCSSA9PSAic29mdCI7CisgCisgICAgICAgcmV0dXJuIFNldENHSW5m bygKKy0tLSBhL2NsYW5nL2xpYi9Ecml2ZXIvVG9vbENoYWlucy9DbGFuZy5jcHAKKysrKyBiL2Ns YW5nL2xpYi9Ecml2ZXIvVG9vbENoYWlucy9DbGFuZy5jcHAKK0BAIC0xOTIwLDE0ICsxOTIwLDcg QEAgdm9pZCBDbGFuZzo6QWRkUFBDVGFyZ2V0QXJncyhjb25zdCBBcmdMaXN0ICZBcmdzLAorICAg Y29uc3QgbGx2bTo6VHJpcGxlICZUID0gZ2V0VG9vbENoYWluKCkuZ2V0VHJpcGxlKCk7CisgICBp ZiAoVC5pc09TQmluRm9ybWF0RUxGKCkpIHsKKyAgICAgc3dpdGNoIChnZXRUb29sQ2hhaW4oKS5n ZXRBcmNoKCkpIHsKKy0gICAgY2FzZSBsbHZtOjpUcmlwbGU6OnBwYzY0OiB7CistICAgICAgaWYg KChULmlzT1NGcmVlQlNEKCkgJiYgVC5nZXRPU01ham9yVmVyc2lvbigpID49IDEzKSB8fAorLSAg ICAgICAgICBULmlzT1NPcGVuQlNEKCkgfHwgVC5pc011c2woKSkKKy0gICAgICAgIEFCSU5hbWUg PSAiZWxmdjIiOworLSAgICAgIGVsc2UKKy0gICAgICAgIEFCSU5hbWUgPSAiZWxmdjEiOworLSAg ICAgIGJyZWFrOworLSAgICB9CisrICAgIGNhc2UgbGx2bTo6VHJpcGxlOjpwcGM2NDoKKyAgICAg Y2FzZSBsbHZtOjpUcmlwbGU6OnBwYzY0bGU6CisgICAgICAgQUJJTmFtZSA9ICJlbGZ2MiI7Cisg ICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0xNC9wYXRjaGVzL2NvbXBpbGVy LXJ0LXNhbml0aXplci1wcGM2NC1tdXNsLnBhdGNoIGIvc3JjcGtncy9sbHZtMTQvcGF0Y2hlcy9j b21waWxlci1ydC1zYW5pdGl6ZXItcHBjNjQtbXVzbC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAwMDAuLjQxMzViZmQ0NDg2YQotLS0gL2Rldi9udWxsCisrKyBiL3Ny Y3BrZ3MvbGx2bTE0L3BhdGNoZXMvY29tcGlsZXItcnQtc2FuaXRpemVyLXBwYzY0LW11c2wucGF0 Y2gKQEAgLTAsMCArMSwzNSBAQAorLS0tIGEvY29tcGlsZXItcnQvbGliL3Nhbml0aXplcl9jb21t b24vc2FuaXRpemVyX2xpbnV4LmNwcAorKysrIGIvY29tcGlsZXItcnQvbGliL3Nhbml0aXplcl9j b21tb24vc2FuaXRpemVyX2xpbnV4LmNwcAorQEAgLTc0LDYgKzc0LDEwIEBACisgI2luY2x1ZGUg PHN5cy91dHNuYW1lLmg+CisgI2VuZGlmCisKKysjaWYgU0FOSVRJWkVSX0xJTlVYICYmIGRlZmlu ZWQoX19wb3dlcnBjX18pCisrI2luY2x1ZGUgPGFzbS9wdHJhY2UuaD4KKysjZW5kaWYKKysKKyAj aWYgU0FOSVRJWkVSX0xJTlVYICYmICFTQU5JVElaRVJfQU5EUk9JRAorICNpbmNsdWRlIDxzeXMv cGVyc29uYWxpdHkuaD4KKyAjZW5kaWYKKy0tLSBhL2NvbXBpbGVyLXJ0L2xpYi9zYW5pdGl6ZXJf Y29tbW9uL3Nhbml0aXplcl9wbGF0Zm9ybV9saW1pdHNfcG9zaXguY3BwCisrKysgYi9jb21waWxl ci1ydC9saWIvc2FuaXRpemVyX2NvbW1vbi9zYW5pdGl6ZXJfcGxhdGZvcm1fbGltaXRzX3Bvc2l4 LmNwcAorQEAgLTkyLDcgKzkyLDcgQEAKKyAjIGluY2x1ZGUgPHV0aW1lLmg+CisgIyBpbmNsdWRl IDxzeXMvcHRyYWNlLmg+CisgIyAgICBpZiBkZWZpbmVkKF9fbWlwczY0KSB8fCBkZWZpbmVkKF9f YWFyY2g2NF9fKSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8IFwKKy0gICAgICAgIGRlZmluZWQoX19o ZXhhZ29uX18pIHx8IFNBTklUSVpFUl9SSVNDVjY0CisrICAgICAgICBkZWZpbmVkKF9faGV4YWdv bl9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwY19fKSB8fCBTQU5JVElaRVJfUklTQ1Y2NAorICMgICAg ICBpbmNsdWRlIDxhc20vcHRyYWNlLmg+CisgIyAgICAgIGlmZGVmIF9fYXJtX18KKyB0eXBlZGVm IHN0cnVjdCB1c2VyX2ZwcmVncyBlbGZfZnByZWdzZXRfdDsKKy0tLSBhL2NvbXBpbGVyLXJ0L2xp Yi9zYW5pdGl6ZXJfY29tbW9uL3Nhbml0aXplcl9zdG9wdGhld29ybGRfbGludXhfbGliY2RlcC5j cHAKKysrKyBiL2NvbXBpbGVyLXJ0L2xpYi9zYW5pdGl6ZXJfY29tbW9uL3Nhbml0aXplcl9zdG9w dGhld29ybGRfbGludXhfbGliY2RlcC5jcHAKK0BAIC0zMSw3ICszMSw3IEBACisgI2luY2x1ZGUg PHN5cy90eXBlcy5oPiAvLyBmb3IgcGlkX3QKKyAjaW5jbHVkZSA8c3lzL3Vpby5oPiAvLyBmb3Ig aW92ZWMKKyAjaW5jbHVkZSA8ZWxmLmg+IC8vIGZvciBOVF9QUlNUQVRVUworLSNpZiAoZGVmaW5l ZChfX2FhcmNoNjRfXykgfHwgU0FOSVRJWkVSX1JJU0NWNjQpICYmICFTQU5JVElaRVJfQU5EUk9J RAorKyNpZiAoZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgZGVmaW5lZChfX3Bvd2VycGNfXykgfHwg U0FOSVRJWkVSX1JJU0NWNjQpICYmICFTQU5JVElaRVJfQU5EUk9JRAorIC8vIEdMSUJDIDIuMjAr IHN5cy91c2VyIGRvZXMgbm90IGluY2x1ZGUgYXNtL3B0cmFjZS5oCisgIyBpbmNsdWRlIDxhc20v cHRyYWNlLmg+CisgI2VuZGlmCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0xNC9wYXRjaGVzL2Nv bXBpbGVyLXJ0LXhyYXktcHBjNjQtbXVzbC5wYXRjaCBiL3NyY3BrZ3MvbGx2bTE0L3BhdGNoZXMv Y29tcGlsZXItcnQteHJheS1wcGM2NC1tdXNsLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAwMC4uZDBiNjFjODBjODk3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtn cy9sbHZtMTQvcGF0Y2hlcy9jb21waWxlci1ydC14cmF5LXBwYzY0LW11c2wucGF0Y2gKQEAgLTAs MCArMSw2MiBAQAorLS0tIGEvY29tcGlsZXItcnQvbGliL3hyYXkveHJheV9wb3dlcnBjNjQuaW5j CisrKysgYi9jb21waWxlci1ydC9saWIveHJheS94cmF5X3Bvd2VycGM2NC5pbmMKK0BAIC0xMiw3 ICsxMiwxMyBAQAorIAorICNpbmNsdWRlIDxjc3RkaW50PgorICNpbmNsdWRlIDxtdXRleD4KKysj aWZkZWYgX19HTElCQ19fCisgI2luY2x1ZGUgPHN5cy9wbGF0Zm9ybS9wcGMuaD4KKysjZWxzZQor KyNpbmNsdWRlIDxjY3R5cGU+CisrI2luY2x1ZGUgPGNzdHJpbmc+CisrI2luY2x1ZGUgPGNzdGRs aWI+CisrI2VuZGlmCisgCisgI2luY2x1ZGUgInhyYXlfZGVmcy5oIgorIAorQEAgLTIwLDEzICsy Niw0NSBAQCBuYW1lc3BhY2UgX194cmF5IHsKKyAKKyBBTFdBWVNfSU5MSU5FIHVpbnQ2NF90IHJl YWRUU0ModWludDhfdCAmQ1BVKSBYUkFZX05FVkVSX0lOU1RSVU1FTlQgeworICAgQ1BVID0gMDsK KysjaWZkZWYgX19HTElCQ19fCisgICByZXR1cm4gX19wcGNfZ2V0X3RpbWViYXNlKCk7CisrI2Vs c2UKKysgIHJldHVybiBfX2J1aWx0aW5fcHBjX2dldF90aW1lYmFzZSgpOworKyNlbmRpZgorIH0K KyAKKyBpbmxpbmUgdWludDY0X3QgZ2V0VFNDRnJlcXVlbmN5KCkgWFJBWV9ORVZFUl9JTlNUUlVN RU5UIHsKKyAgIHN0YXRpYyBzdGQ6Om11dGV4IE07CisgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjpt dXRleD4gR3VhcmQoTSk7CisrI2lmZGVmIF9fR0xJQkNfXworICAgcmV0dXJuIF9fcHBjX2dldF90 aW1lYmFzZV9mcmVxKCk7CisrI2Vsc2UKKysgIC8qIEZJWE1FOiBhIGxlc3MgZGlydHkgaW1wbGVt ZW50YXRpb24/ICovCisrICBzdGF0aWMgdWludDY0X3QgYmFzZTsKKysgIGlmICghYmFzZSkgewor KyAgICBGSUxFICpmID0gZm9wZW4oIi9wcm9jL2NwdWluZm8iLCAicmIiKTsKKysgICAgaWYgKGYp IHsKKysgICAgICBzc2l6ZV90IG5yOworKyAgICAgIC8qIHZpcnR1YWxseSBhbHdheXMgYmlnIGVu b3VnaCB0byBob2xkIHRoZSBsaW5lICovCisrICAgICAgY2hhciBidWZbNTEyXTsKKysgICAgICB3 aGlsZSAoZmdldHMoYnVmLCBzaXplb2YoYnVmKSwgZikpIHsKKysgICAgICAgIGNoYXIgKnJldCA9 IHN0cnN0cihidWYsICJ0aW1lYmFzZSIpOworKyAgICAgICAgaWYgKCFyZXQpIHsKKysgICAgICAg ICAgY29udGludWU7CisrICAgICAgICB9CisrICAgICAgICByZXQgKz0gc2l6ZW9mKCJ0aW1lYmFz ZSIpIC0gMTsKKysgICAgICAgIHJldCA9IHN0cmNocihyZXQsICc6Jyk7CisrICAgICAgICBpZiAo IXJldCkgeworKyAgICAgICAgICBjb250aW51ZTsKKysgICAgICAgIH0KKysgICAgICAgIGJhc2Ug PSBzdHJ0b3VsKHJldCArIDEsIG51bGxwdHIsIDEwKTsKKysgICAgICAgIGJyZWFrOworKyAgICAg IH0KKysgICAgICBmY2xvc2UoZik7CisrICAgIH0KKysgIH0KKysgIHJldHVybiBiYXNlOworKyNl bmRpZgorIH0KKyAKKyBpbmxpbmUgYm9vbCBwcm9iZVJlcXVpcmVkQ1BVRmVhdHVyZXMoKSBYUkFZ X05FVkVSX0lOU1RSVU1FTlQgewpkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtMTQvcGF0Y2hlcy9s aWJjeHgtbXVzbC5wYXRjaCBiL3NyY3BrZ3MvbGx2bTE0L3BhdGNoZXMvbGliY3h4LW11c2wucGF0 Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5iYmQzMWZmYzJjYjEK LS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xsdm0xNC9wYXRjaGVzL2xpYmN4eC1tdXNsLnBh dGNoCkBAIC0wLDAgKzEsMjYgQEAKKy0tLSBhL2xpYmN4eC9pbmNsdWRlL2xvY2FsZQorKysrIGIv bGliY3h4L2luY2x1ZGUvbG9jYWxlCitAQCAtNzQyLDcgKzc0MiwxMSBAQCBfX251bV9nZXRfc2ln bmVkX2ludGVncmFsKGNvbnN0IGNoYXIqIF9fYSwgY29uc3QgY2hhciogX19hX2VuZCwKKyAgICAg ICAgIHR5cGVuYW1lIHJlbW92ZV9yZWZlcmVuY2U8ZGVjbHR5cGUoZXJybm8pPjo6dHlwZSBfX3Nh dmVfZXJybm8gPSBlcnJubzsKKyAgICAgICAgIGVycm5vID0gMDsKKyAgICAgICAgIGNoYXIgKl9f cDI7CisrI2lmIGRlZmluZWQoX19saW51eF9fKSAmJiAhZGVmaW5lZChfX0dMSUJDX18pCisrICAg ICAgICBsb25nIGxvbmcgX19sbCA9IHN0cnRvbGwoX19hLCAmX19wMiwgX19iYXNlKTsKKysjZWxz ZQorICAgICAgICAgbG9uZyBsb25nIF9fbGwgPSBzdHJ0b2xsX2woX19hLCAmX19wMiwgX19iYXNl LCBfTElCQ1BQX0dFVF9DX0xPQ0FMRSk7CisrI2VuZGlmCisgICAgICAgICB0eXBlbmFtZSByZW1v dmVfcmVmZXJlbmNlPGRlY2x0eXBlKGVycm5vKT46OnR5cGUgX19jdXJyZW50X2Vycm5vID0gZXJy bm87CisgICAgICAgICBpZiAoX19jdXJyZW50X2Vycm5vID09IDApCisgICAgICAgICAgICAgZXJy bm8gPSBfX3NhdmVfZXJybm87CitAQCAtNzgyLDcgKzc4NiwxMSBAQCBfX251bV9nZXRfdW5zaWdu ZWRfaW50ZWdyYWwoY29uc3QgY2hhciogX19hLCBjb25zdCBjaGFyKiBfX2FfZW5kLAorICAgICAg ICAgdHlwZW5hbWUgcmVtb3ZlX3JlZmVyZW5jZTxkZWNsdHlwZShlcnJubyk+Ojp0eXBlIF9fc2F2 ZV9lcnJubyA9IGVycm5vOworICAgICAgICAgZXJybm8gPSAwOworICAgICAgICAgY2hhciAqX19w MjsKKysjaWYgZGVmaW5lZChfX2xpbnV4X18pICYmICFkZWZpbmVkKF9fR0xJQkNfXykKKysgICAg ICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2xsID0gc3RydG91bGwoX19hLCAmX19wMiwgX19iYXNl KTsKKysjZWxzZQorICAgICAgICAgdW5zaWduZWQgbG9uZyBsb25nIF9fbGwgPSBzdHJ0b3VsbF9s KF9fYSwgJl9fcDIsIF9fYmFzZSwgX0xJQkNQUF9HRVRfQ19MT0NBTEUpOworKyNlbmRpZgorICAg ICAgICAgdHlwZW5hbWUgcmVtb3ZlX3JlZmVyZW5jZTxkZWNsdHlwZShlcnJubyk+Ojp0eXBlIF9f Y3VycmVudF9lcnJubyA9IGVycm5vOworICAgICAgICAgaWYgKF9fY3VycmVudF9lcnJubyA9PSAw KQorICAgICAgICAgICAgIGVycm5vID0gX19zYXZlX2Vycm5vOwpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9sbHZtMTQvcGF0Y2hlcy9saWJjeHgtcHBjLnBhdGNoIGIvc3JjcGtncy9sbHZtMTQvcGF0Y2hl cy9saWJjeHgtcHBjLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw MC4uN2E5MmY4MDA0ZTFjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9sbHZtMTQvcGF0Y2hl cy9saWJjeHgtcHBjLnBhdGNoCkBAIC0wLDAgKzEsMjIgQEAKK1RoaXMgZW5zdXJlcyBgaXNfaWVj NTU5YCBpcyBkZWZpbmVkIGNvcnJlY3RseSB1bmRlciBhbGwgbG9uZyBkb3VibGUgQUJJcywKK2lu Y2x1ZGluZyBtdXNsIGFuZCBpdHMgNjQtYml0IGxvbmcgZG91YmxlLiBBbHNvLCBgX19wcGNfX2Ag b3IgYF9fcHBjNjRfX2AKK2lzIG5vdCBkZWZpbmVkIG9uIGdjYy4KKworLS0tIGEvbGliY3h4L2lu Y2x1ZGUvbGltaXRzCisrKysgYi9saWJjeHgvaW5jbHVkZS9saW1pdHMKK0BAIC00MjYsOCArNDI2 LDE0IEBAIHByb3RlY3RlZDoKKyAgICAgX0xJQkNQUF9JTkxJTkVfVklTSUJJTElUWSBzdGF0aWMg X0xJQkNQUF9DT05TVEVYUFIgdHlwZSBzaWduYWxpbmdfTmFOKCkgX05PRVhDRVBUIHtyZXR1cm4g X19idWlsdGluX25hbnNsKCIiKTt9CisgICAgIF9MSUJDUFBfSU5MSU5FX1ZJU0lCSUxJVFkgc3Rh dGljIF9MSUJDUFBfQ09OU1RFWFBSIHR5cGUgZGVub3JtX21pbigpIF9OT0VYQ0VQVCB7cmV0dXJu IF9fTERCTF9ERU5PUk1fTUlOX187fQorIAorLSNpZiAoZGVmaW5lZChfX3BwY19fKSB8fCBkZWZp bmVkKF9fcHBjNjRfXykpCisrI2lmIGRlZmluZWQoX19wb3dlcnBjX18pIHx8IGRlZmluZWQoX19w b3dlcnBjNjRfXykKKysjaWYgKF9fTERCTF9NQVhfRVhQX18gPiBfX0RCTF9NQVhfRVhQX18pIHx8 IChfX0xEQkxfTUFOVF9ESUdfXyA9PSBfX0RCTF9NQU5UX0RJR19fKQorKyAgICAvKiBJRUVFIDc1 NCBxdWFkcnVwbGUgb3IgZG91YmxlIHByZWNpc2lvbiAqLworKyAgICBzdGF0aWMgX0xJQkNQUF9D T05TVEVYUFIgY29uc3QgYm9vbCBpc19pZWM1NTkgPSB0cnVlOworKyNlbHNlCisrICAgIC8qIDEy OC1iaXQgSUJNIGRvdWJsZS1kb3VibGUgKi8KKyAgICAgc3RhdGljIF9MSUJDUFBfQ09OU1RFWFBS IGNvbnN0IGJvb2wgaXNfaWVjNTU5ID0gZmFsc2U7CisrI2VuZGlmCisgI2Vsc2UKKyAgICAgc3Rh dGljIF9MSUJDUFBfQ09OU1RFWFBSIGNvbnN0IGJvb2wgaXNfaWVjNTU5ID0gdHJ1ZTsKKyAjZW5k aWYKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bTE0L3BhdGNoZXMvbGliY3h4LXNzcC1ub25zaGFy ZWQucGF0Y2ggYi9zcmNwa2dzL2xsdm0xNC9wYXRjaGVzL2xpYmN4eC1zc3Atbm9uc2hhcmVkLnBh dGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNzAyOTJiZWIyZmNk Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9sbHZtMTQvcGF0Y2hlcy9saWJjeHgtc3NwLW5v bnNoYXJlZC5wYXRjaApAQCAtMCwwICsxLDExIEBACistLS0gYS9saWJjeHgvQ01ha2VMaXN0cy50 eHQKKysrKyBiL2xpYmN4eC9DTWFrZUxpc3RzLnR4dAorQEAgLTc2OSw2ICs3NjksOCBAQCBmdW5j dGlvbihjeHhfbGlua19zeXN0ZW1fbGlicmFyaWVzIHRhcmdldCkKKyAgICAgdGFyZ2V0X2xpbmtf bGlicmFyaWVzKCR7dGFyZ2V0fSBQUklWQVRFIGF0b21pYykKKyAgIGVuZGlmKCkKKyAKKysjc3Nw ICB0YXJnZXRfbGlua19saWJyYXJpZXMoJHt0YXJnZXR9IFBSSVZBVEUgc3NwX25vbnNoYXJlZCkK KysKKyAgIGlmIChNSU5HVykKKyAgICAgdGFyZ2V0X2xpbmtfbGlicmFyaWVzKCR7dGFyZ2V0fSBQ UklWQVRFICIke01JTkdXX0xJQlJBUklFU30iKQorICAgZW5kaWYoKQpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9sbHZtMTQvcGF0Y2hlcy9saWJjeHhhYmktZGwucGF0Y2ggYi9zcmNwa2dzL2xsdm0xNC9w YXRjaGVzL2xpYmN4eGFiaS1kbC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMDAwMDAuLjNhMTVmOWRiOGM5OAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbGx2bTE0 L3BhdGNoZXMvbGliY3h4YWJpLWRsLnBhdGNoCkBAIC0wLDAgKzEsMjUgQEAKK0Fsc28gbGluayB0 byAtbGRsIHRvIHByZXZlbnQgdW5kZWZpbmVkIHJlZmVyZW5jZXMuCisKKy0tLSBhL2xpYmN4eGFi aS9zcmMvQ01ha2VMaXN0cy50eHQKKysrKyBiL2xpYmN4eGFiaS9zcmMvQ01ha2VMaXN0cy50eHQK K0BAIC03Myw2ICs3Myw3IEBACisgICBlbmRpZigpCisgCisgICBhZGRfbGlicmFyeV9mbGFnc19p ZihMSUJDWFhBQklfSEFTX0NfTElCIGMpCisrICBhZGRfbGlicmFyeV9mbGFnc19pZihMSUJDWFhB QklfSEFTX0NfTElCIGRsKQorIGVuZGlmKCkKKyAKKyBpZiAoTElCQ1hYQUJJX1VTRV9MTFZNX1VO V0lOREVSKQorLS0tIGEvbGliY3h4L0NNYWtlTGlzdHMudHh0CisrKysgYi9saWJjeHgvQ01ha2VM aXN0cy50eHQKK0BAIC03NDUsNiArNzQ1LDEwIEBACisgICAgIHRhcmdldF9saW5rX2xpYnJhcmll cygke3RhcmdldH0gUFJJVkFURSBtKQorICAgZW5kaWYoKQorIAorKyAgaWYgKExJQkNYWF9IQVNf Q19MSUIpCisrICAgIHRhcmdldF9saW5rX2xpYnJhcmllcygke3RhcmdldH0gUFJJVkFURSBkbCkK KysgIGVuZGlmKCkKKysKKyAgIGlmIChMSUJDWFhfSEFTX1JUX0xJQikKKyAgICAgdGFyZ2V0X2xp bmtfbGlicmFyaWVzKCR7dGFyZ2V0fSBQUklWQVRFIHJ0KQorICAgZW5kaWYoKQpkaWZmIC0tZ2l0 IGEvc3JjcGtncy9sbHZtMTQvcGF0Y2hlcy9sbGRiLW11c2wucGF0Y2ggYi9zcmNwa2dzL2xsdm0x NC9wYXRjaGVzL2xsZGItbXVzbC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMDAwMDAuLjYwMWMwZDEzODUyMwotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbGx2bTE0 L3BhdGNoZXMvbGxkYi1tdXNsLnBhdGNoCkBAIC0wLDAgKzEsMzEgQEAKKy0tLSBhL2xsZGIvc291 cmNlL1BsdWdpbnMvUHJvY2Vzcy9MaW51eC9Qcm9jZnMuaAorKysrIGIvbGxkYi9zb3VyY2UvUGx1 Z2lucy9Qcm9jZXNzL0xpbnV4L1Byb2Nmcy5oCitAQCAtMTAsMjEgKzEwLDEyIEBACisgLy8gc3lz L3Byb2Nmcy5oIG9uIEFuZHJvaWQvTGludXggZm9yIGFsbCBzdXBwb3J0ZWQgYXJjaGl0ZWN0dXJl cy4KKyAKKyAjaW5jbHVkZSA8c3lzL3B0cmFjZS5oPgorKyNpbmNsdWRlIDxhc20vcHRyYWNlLmg+ CisgCistI2lmZGVmIF9fQU5EUk9JRF9fCistI2lmIGRlZmluZWQoX19hcm02NF9fKSB8fCBkZWZp bmVkKF9fYWFyY2g2NF9fKQorLXR5cGVkZWYgdW5zaWduZWQgbG9uZyBlbGZfZ3JlZ190OworLXR5 cGVkZWYgZWxmX2dyZWdfdAorLSAgICBlbGZfZ3JlZ3NldF90WyhzaXplb2Yoc3RydWN0IHVzZXJf cHRfcmVncykgLyBzaXplb2YoZWxmX2dyZWdfdCkpXTsKKy10eXBlZGVmIHN0cnVjdCB1c2VyX2Zw c2ltZF9zdGF0ZSBlbGZfZnByZWdzZXRfdDsKKy0jaWZuZGVmIE5UX0ZQUkVHU0VUCistI2RlZmlu ZSBOVF9GUFJFR1NFVCBOVF9QUkZQUkVHCistI2VuZGlmIC8vIE5UX0ZQUkVHU0VUCistI2VsaWYg ZGVmaW5lZChfX21pcHNfXykKKy0jaWZuZGVmIE5UX0ZQUkVHU0VUCistI2RlZmluZSBOVF9GUFJF R1NFVCBOVF9QUkZQUkVHCistI2VuZGlmIC8vIE5UX0ZQUkVHU0VUCistI2VuZGlmCistI2Vsc2Ug Ly8gX19BTkRST0lEX18KKysjaWYgIWRlZmluZWQoX19HTElCQ19fKSAmJiBkZWZpbmVkKF9fcG93 ZXJwY19fKQorKyNkZWZpbmUgcHRfcmVncyBtdXNsX3B0X3JlZ3MKKysjaW5jbHVkZSA8c3lzL3By b2Nmcy5oPgorKyN1bmRlZiBwdF9yZWdzCisrI2Vsc2UKKyAjaW5jbHVkZSA8c3lzL3Byb2Nmcy5o PgorLSNlbmRpZiAvLyBfX0FORFJPSURfXworKyNlbmRpZgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9s bHZtMTQvcGF0Y2hlcy9sbHZtLTAwMS1tdXNsLnBhdGNoIGIvc3JjcGtncy9sbHZtMTQvcGF0Y2hl cy9sbHZtLTAwMS1tdXNsLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw MDAwMC4uZjJhM2Y4ZDYyODEzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9sbHZtMTQvcGF0 Y2hlcy9sbHZtLTAwMS1tdXNsLnBhdGNoCkBAIC0wLDAgKzEsNTcgQEAKK0Zyb20gZmFjYTNmYmQx NWQwYzMxMDg0OTNjM2M1NGNkOTMxMzhlMDQ5YWM0MyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK K0Zyb206IEFuZHJlYSBCcmFuY2FsZW9uaSA8bWl3YXhlQGdtYWlsLmNvbT4KK0RhdGU6IFR1ZSwg OCBTZXAgMjAxNSAyMjowMzowMiArMDIwMAorU3ViamVjdDogW1BBVENIIDMvM10gbXVzbAorCist LS0KKyBpbmNsdWRlL2xsdm0vQW5hbHlzaXMvVGFyZ2V0TGlicmFyeUluZm8uaCB8IDkgKysrKysr KysrCisgbGliL1N1cHBvcnQvRHluYW1pY0xpYnJhcnkuY3BwICAgICAgICAgICAgfCAyICstCisg bGliL1N1cHBvcnQvVW5peC9TaWduYWxzLmluYyAgICAgICAgICAgICAgfCA2ICsrKy0tLQorIHV0 aWxzL3VuaXR0ZXN0L2dvb2dsZXRlc3Qvc3JjL2d0ZXN0LmNjICAgIHwgMSArCisgNSBmaWxlcyBj aGFuZ2VkLCAxNyBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEv aW5jbHVkZS9sbHZtL0FuYWx5c2lzL1RhcmdldExpYnJhcnlJbmZvLmggYi9pbmNsdWRlL2xsdm0v QW5hbHlzaXMvVGFyZ2V0TGlicmFyeUluZm8uaAoraW5kZXggMzRhOGExZTMuLjEyMTRlY2U1IDEw MDY0NAorLS0tIGEvbGx2bS9pbmNsdWRlL2xsdm0vQW5hbHlzaXMvVGFyZ2V0TGlicmFyeUluZm8u aAorKysrIGIvbGx2bS9pbmNsdWRlL2xsdm0vQW5hbHlzaXMvVGFyZ2V0TGlicmFyeUluZm8uaAor QEAgLTE4LDYgKzE4LDE1IEBACisgI2luY2x1ZGUgImxsdm0vSVIvUGFzc01hbmFnZXIuaCIKKyAj aW5jbHVkZSAibGx2bS9QYXNzLmgiCisgCisrI3VuZGVmIGZvcGVuNjQKKysjdW5kZWYgZnNlZWtv NjQKKysjdW5kZWYgZnN0YXQ2NAorKyN1bmRlZiBmc3RhdHZmczY0CisrI3VuZGVmIGZ0ZWxsbzY0 CisrI3VuZGVmIGxzdGF0NjQKKysjdW5kZWYgc3RhdDY0CisrI3VuZGVmIHRtcGZpbGU2NAorKwor IG5hbWVzcGFjZSBsbHZtIHsKKyB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gY2xhc3MgQXJyYXlSZWY7 CisgY2xhc3MgVHJpcGxlOworZGlmZiAtLWdpdCBhL2xpYi9TdXBwb3J0L1VuaXgvRHluYW1pY0xp YnJhcnkuaW5jIGIvbGliL1N1cHBvcnQvVW5peC9EeW5hbWljTGlicmFyeS5pbmMKK2luZGV4IGEy YTM3OTk2Li4yZjg2YzQ3MCAxMDA2NDQKKy0tLSBhL2xsdm0vbGliL1N1cHBvcnQvVW5peC9EeW5h bWljTGlicmFyeS5pbmMKKysrKyBiL2xsdm0vbGliL1N1cHBvcnQvVW5peC9EeW5hbWljTGlicmFy eS5pbmMKK0BAIC0xMDIsNyArMTAyLDcgQEAgc3RhdGljIHZvaWQgKkRvU2VhcmNoKGNvbnN0IGNo YXIqIFN5bWJvbE5hbWUpIHsKKyAKKyAvLyBUaGlzIG1hY3JvIHJldHVybnMgdGhlIGFkZHJlc3Mg b2YgYSB3ZWxsLWtub3duLCBleHBsaWNpdCBzeW1ib2wKKyAjZGVmaW5lIEVYUExJQ0lUX1NZTUJP TChTWU0pIFwKKy0gICBpZiAoIXN0cmNtcChTeW1ib2xOYW1lLCAjU1lNKSkgcmV0dXJuICZTWU0K KysgICBpZiAoIXN0cmNtcChTeW1ib2xOYW1lLCAjU1lNKSkgcmV0dXJuICh2b2lkICopJlNZTQor IAorIC8vIFVuZGVyIGdsaWJjIHdlIGhhdmUgYSB3ZWlyZCBzaXR1YXRpb24uIFRoZSBzdGRlcnIv b3V0L2luIHN5bWJvbHMgYXJlIGJvdGgKKyAvLyBtYWNyb3MgYW5kIGdsb2JhbCB2YXJpYWJsZXMg YmVjYXVzZSBvZiBzdGFuZGFyZHMgcmVxdWlyZW1lbnRzLiBTbywgd2UKK2RpZmYgLS1naXQgYS91 dGlscy91bml0dGVzdC9nb29nbGV0ZXN0L3NyYy9ndGVzdC5jYyBiL3V0aWxzL3VuaXR0ZXN0L2dv b2dsZXRlc3Qvc3JjL2d0ZXN0LmNjCitpbmRleCBkODgyYWIyZS4uZjFmYjEyZDAgMTAwNjQ0Cist LS0gYS9sbHZtL3V0aWxzL3VuaXR0ZXN0L2dvb2dsZXRlc3Qvc3JjL2d0ZXN0LmNjCisrKysgYi9s bHZtL3V0aWxzL3VuaXR0ZXN0L2dvb2dsZXRlc3Qvc3JjL2d0ZXN0LmNjCitAQCAtMTI4LDYgKzEy OCw3IEBACisgCisgI2lmIEdURVNUX0NBTl9TVFJFQU1fUkVTVUxUU18KKyAjIGluY2x1ZGUgPGFy cGEvaW5ldC5oPiAgLy8gTk9MSU5UCisrIyBpbmNsdWRlIDxzeXMvc29ja2V0Lmg+ICAvLyBOT0xJ TlQKKyAjIGluY2x1ZGUgPG5ldGRiLmg+ICAvLyBOT0xJTlQKKyAjIGluY2x1ZGUgPHN5cy9zb2Nr ZXQuaD4gIC8vIE5PTElOVAorICMgaW5jbHVkZSA8c3lzL3R5cGVzLmg+ICAvLyBOT0xJTlQKZGlm ZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bTE0L3BhdGNoZXMvbGx2bS0wMDItbXVzbC1wcGM2NC1lbGZ2 Mi5wYXRjaCBiL3NyY3BrZ3MvbGx2bTE0L3BhdGNoZXMvbGx2bS0wMDItbXVzbC1wcGM2NC1lbGZ2 Mi5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjAwNzFkOTY0 YmQzNwotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbGx2bTE0L3BhdGNoZXMvbGx2bS0wMDIt bXVzbC1wcGM2NC1lbGZ2Mi5wYXRjaApAQCAtMCwwICsxLDMwIEBACitUaGlzIHBhdGNoZXMgTExW TSB0byB1c2UgRUxGdjIgb24gcHBjNjQgdW5jb25kaXRpb25hbGx5IHVubGVzcyBvdmVycmlkZGVu LiBXZQorbmVlZCB0aGlzIGJlY2F1c2UgdW5saWtlIG1vc3QgZGlzdHJvcyB3ZSB1c2UgRUxGdjIg Zm9yIGJvdGggZ2xpYmMgYW5kIG11c2wKK29uIGJpZyBlbmRpYW4gcHBjNjQuCisKK2RpZmYgLS1n aXQgYS9saWIvVGFyZ2V0L1Bvd2VyUEMvUFBDVGFyZ2V0TWFjaGluZS5jcHAgYi9saWIvVGFyZ2V0 L1Bvd2VyUEMvUFBDVGFyZ2V0TWFjaGluZS5jcHAKK2luZGV4IDA2MzQ4MzNlLi5iN2NiYzJlNyAx MDA2NDQKKy0tLSBhL2xsdm0vbGliL1RhcmdldC9Qb3dlclBDL1BQQ1RhcmdldE1hY2hpbmUuY3Bw CisrKysgYi9sbHZtL2xpYi9UYXJnZXQvUG93ZXJQQy9QUENUYXJnZXRNYWNoaW5lLmNwcAorQEAg LTIyMiw5ICsyMjIsOCBAQCBzdGF0aWMgUFBDVGFyZ2V0TWFjaGluZTo6UFBDQUJJIGNvbXB1dGVU YXJnZXRBQkkoY29uc3QgVHJpcGxlICZUVCwKKyAKKyAgIHN3aXRjaCAoVFQuZ2V0QXJjaCgpKSB7 CisgICBjYXNlIFRyaXBsZTo6cHBjNjRsZToKKy0gICAgcmV0dXJuIFBQQ1RhcmdldE1hY2hpbmU6 OlBQQ19BQklfRUxGdjI7CisgICBjYXNlIFRyaXBsZTo6cHBjNjQ6CistICAgIHJldHVybiBQUENU YXJnZXRNYWNoaW5lOjpQUENfQUJJX0VMRnYxOworKyAgICByZXR1cm4gUFBDVGFyZ2V0TWFjaGlu ZTo6UFBDX0FCSV9FTEZ2MjsKKyAgIGRlZmF1bHQ6CisgICAgIHJldHVybiBQUENUYXJnZXRNYWNo aW5lOjpQUENfQUJJX1VOS05PV047CisgICB9CitkaWZmIC0tZ2l0IGEvdGVzdC9Db2RlR2VuL1Bv d2VyUEMvcHBjNjQtZWxmLWFiaS5sbCBiL3Rlc3QvQ29kZUdlbi9Qb3dlclBDL3BwYzY0LWVsZi1h YmkubGwKK2luZGV4IDhiMWNmNmI1Li4yOTZhMmFmYSAxMDA2NDQKKy0tLSBhL2xsdm0vdGVzdC9D b2RlR2VuL1Bvd2VyUEMvcHBjNjQtZWxmLWFiaS5sbAorKysrIGIvbGx2bS90ZXN0L0NvZGVHZW4v UG93ZXJQQy9wcGM2NC1lbGYtYWJpLmxsCitAQCAtMSw0ICsxLDUgQEAKKy07IFJVTjogbGxjIC12 ZXJpZnktbWFjaGluZWluc3RycyAtbXRyaXBsZT1wb3dlcnBjNjQtdW5rbm93bi1saW51eC1nbnUg PCAlcyB8IEZpbGVDaGVjayAlcyAtY2hlY2stcHJlZml4PUNIRUNLLUVMRnYxCisrOyBSVU46IGxs YyAtdmVyaWZ5LW1hY2hpbmVpbnN0cnMgLW10cmlwbGU9cG93ZXJwYzY0LXVua25vd24tbGludXgt Z251IDwgJXMgfCBGaWxlQ2hlY2sgJXMgLWNoZWNrLXByZWZpeD1DSEVDSy1FTEZ2MgorKzsgUlVO OiBsbGMgLXZlcmlmeS1tYWNoaW5laW5zdHJzIC1tdHJpcGxlPXBvd2VycGM2NC11bmtub3duLWxp bnV4LW11c2wgPCAlcyB8IEZpbGVDaGVjayAlcyAtY2hlY2stcHJlZml4PUNIRUNLLUVMRnYyCisg OyBSVU46IGxsYyAtdmVyaWZ5LW1hY2hpbmVpbnN0cnMgLW10cmlwbGU9cG93ZXJwYzY0LXVua25v d24tbGludXgtZ251IC10YXJnZXQtYWJpIGVsZnYxIDwgJXMgfCBGaWxlQ2hlY2sgJXMgLWNoZWNr LXByZWZpeD1DSEVDSy1FTEZ2MQorIDsgUlVOOiBsbGMgLXZlcmlmeS1tYWNoaW5laW5zdHJzIC1t dHJpcGxlPXBvd2VycGM2NC11bmtub3duLWxpbnV4LWdudSAtdGFyZ2V0LWFiaSBlbGZ2MiA8ICVz IHwgRmlsZUNoZWNrICVzIC1jaGVjay1wcmVmaXg9Q0hFQ0stRUxGdjIKKyA7IFJVTjogbGxjIC12 ZXJpZnktbWFjaGluZWluc3RycyAtbXRyaXBsZT1wb3dlcnBjNjRsZS11bmtub3duLWxpbnV4LWdu dSA8ICVzIHwgRmlsZUNoZWNrICVzIC1jaGVjay1wcmVmaXg9Q0hFQ0stRUxGdjIKZGlmZiAtLWdp dCBhL3NyY3BrZ3MvbGx2bTE0L3BhdGNoZXMvbGx2bS0wMDMtcHBjLXNlY3VyZXBsdC5wYXRjaCBi L3NyY3BrZ3MvbGx2bTE0L3BhdGNoZXMvbGx2bS0wMDMtcHBjLXNlY3VyZXBsdC5wYXRjaApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmI1ZDE1OTc0Mzc1ZAotLS0gL2Rl di9udWxsCisrKyBiL3NyY3BrZ3MvbGx2bTE0L3BhdGNoZXMvbGx2bS0wMDMtcHBjLXNlY3VyZXBs dC5wYXRjaApAQCAtMCwwICsxLDExIEBACistLS0gYS9sbHZtL2xpYi9UYXJnZXQvUG93ZXJQQy9Q UENTdWJ0YXJnZXQuY3BwCisrKysgYi9sbHZtL2xpYi9UYXJnZXQvUG93ZXJQQy9QUENTdWJ0YXJn ZXQuY3BwCitAQCAtMTY1LDcgKzE2NSw3IEBAIHZvaWQgUFBDU3VidGFyZ2V0Ojppbml0U3VidGFy Z2V0RmVhdHVyZXMoU3RyaW5nUmVmIENQVSwgU3RyaW5nUmVmIEZTKSB7CisgCisgICBpZiAoKFRh cmdldFRyaXBsZS5pc09TRnJlZUJTRCgpICYmIFRhcmdldFRyaXBsZS5nZXRPU01ham9yVmVyc2lv bigpID49IDEzKSB8fAorICAgICAgIFRhcmdldFRyaXBsZS5pc09TTmV0QlNEKCkgfHwgVGFyZ2V0 VHJpcGxlLmlzT1NPcGVuQlNEKCkgfHwKKy0gICAgICBUYXJnZXRUcmlwbGUuaXNNdXNsKCkpCisr ICAgICAgaXNUYXJnZXRMaW51eCgpKQorICAgICBTZWN1cmVQbHQgPSB0cnVlOworIAorICAgaWYg KEhhc1NQRSAmJiBJc1BQQzY0KQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtMTQvcGF0Y2hlcy9s bHZtLTAwNC1vdmVycmlkZS1vcHQucGF0Y2ggYi9zcmNwa2dzL2xsdm0xNC9wYXRjaGVzL2xsdm0t MDA0LW92ZXJyaWRlLW9wdC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwMDAuLjUxZDBlNGIzMWIzMgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbGx2bTE0L3Bh dGNoZXMvbGx2bS0wMDQtb3ZlcnJpZGUtb3B0LnBhdGNoCkBAIC0wLDAgKzEsMTggQEAKK1RoaXMg YWxsb3dzIHVzIHRvIG92ZXJyaWRlIHRoZSBvcHRpbWl6YXRpb24gbGV2ZWwgYXMgbm90IGFsbCBw bGF0Zm9ybXMgY2FuCitkZWFsIHdpdGggLU8zLgorCistLS0gYS9sbHZtL0NNYWtlTGlzdHMudHh0 CisrKysgYi9sbHZtL0NNYWtlTGlzdHMudHh0CitAQCAtOTE4LDYgKzkxOCwxMiBAQCBpZiggTUlO R1cgQU5EIE5PVCAiJHtDTUFLRV9DWFhfQ09NUElMRVJfSUR9IiBNQVRDSEVTICJDbGFuZyIgKQor ICAgbGx2bV9yZXBsYWNlX2NvbXBpbGVyX29wdGlvbihDTUFLRV9DWFhfRkxBR1NfUkVMRUFTRSAi LU8zIiAiLU8yIikKKyBlbmRpZigpCisgCisrc2V0KFZPSURfQ1hYX09QVF9GTEFHUyAiIiBDQUNI RSBTVFJJTkcgIk9wdGltaXphdGlvbiBsZXZlbCB0byB1c2UiKQorKworK2lmIChOT1QgVk9JRF9D WFhfT1BUX0ZMQUdTIFNUUkVRVUFMICIiKQorKyAgICBsbHZtX3JlcGxhY2VfY29tcGlsZXJfb3B0 aW9uKENNQUtFX0NYWF9GTEFHU19SRUxFQVNFICItTzMiICIke1ZPSURfQ1hYX09QVF9GTEFHU30i KQorK2VuZGlmKCkKKysKKyAjIFB1dCB0aGlzIGJlZm9yZSB0YmxnZW4uIEVsc2Ugd2UgaGF2ZSBh IGNpcmN1bGFyIGRlcGVuZGVuY2UuCisgYWRkX3N1YmRpcmVjdG9yeShsaWIvRGVtYW5nbGUpCisg YWRkX3N1YmRpcmVjdG9yeShsaWIvU3VwcG9ydCkKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bTE0 L3BhdGNoZXMvbGx2bS0wMDUtcHBjLWJpZ3BpYy5wYXRjaCBiL3NyY3BrZ3MvbGx2bTE0L3BhdGNo ZXMvbGx2bS0wMDUtcHBjLWJpZ3BpYy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAwMDAuLmQzMzI2ODdiOWQ5MgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbGx2 bTE0L3BhdGNoZXMvbGx2bS0wMDUtcHBjLWJpZ3BpYy5wYXRjaApAQCAtMCwwICsxLDM2IEBACitG cm9tIGYzZGJkZDQ5YzA2YmZhZmMxZDYxMzgwOTRjZjQyODg5YzE0ZDM4YjYgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCitGcm9tOiBTYW11ZWwgSG9sbGFuZCA8c2FtdWVsQHNob2xsYW5kLm9yZz4K K0RhdGU6IFN1biwgMyBOb3YgMjAxOSAxMDo1NzoyNyAtMDYwMAorU3ViamVjdDogW1BBVENIXSBb TExWTV1bUG93ZXJQQ10gQXNzdW1lIEJpZ1BJQyBpZiBubyBQSUMgbGV2ZWwgaXMgc3BlY2lmaWVk CisKKy0tLQorIGxsdm0vbGliL1RhcmdldC9Qb3dlclBDL1BQQ0FzbVByaW50ZXIuY3BwICB8IDIg Ky0KKyBsbHZtL2xpYi9UYXJnZXQvUG93ZXJQQy9QUENNQ0luc3RMb3dlci5jcHAgfCAyICstCisg MiBmaWxlcyBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCisKK2RpZmYg LS1naXQgYS9saWIvVGFyZ2V0L1Bvd2VyUEMvUFBDQXNtUHJpbnRlci5jcHAgYi9saWIvVGFyZ2V0 L1Bvd2VyUEMvUFBDQXNtUHJpbnRlci5jcHAKK2luZGV4IGNjZTIxZjMyLi44N2NhNWY5YiAxMDA2 NDQKKy0tLSBhL2xsdm0vbGliL1RhcmdldC9Qb3dlclBDL1BQQ0FzbVByaW50ZXIuY3BwCisrKysg Yi9sbHZtL2xpYi9UYXJnZXQvUG93ZXJQQy9QUENBc21QcmludGVyLmNwcAorQEAgLTUyMCw3ICs1 MjAsNyBAQCB2b2lkIFBQQ0FzbVByaW50ZXI6OkVtaXRUbHNDYWxsKGNvbnN0IE1hY2hpbmVJbnN0 ciAqTUksCisgCisgICAvLyBBZGQgMzI3Njggb2Zmc2V0IHRvIHRoZSBzeW1ib2wgc28gd2UgZm9s bG93IHVwIHRoZSBsYXRlc3QgR09UL1BMVCBBQkkuCisgICBpZiAoS2luZCA9PSBNQ1N5bWJvbFJl ZkV4cHI6OlZLX1BMVCAmJiBTdWJ0YXJnZXQtPmlzU2VjdXJlUGx0KCkgJiYKKy0gICAgICBNLT5n ZXRQSUNMZXZlbCgpID09IFBJQ0xldmVsOjpCaWdQSUMpCisrICAgICAgTS0+Z2V0UElDTGV2ZWwo KSAhPSBQSUNMZXZlbDo6U21hbGxQSUMpCisgICAgIFRsc1JlZiA9IE1DQmluYXJ5RXhwcjo6Y3Jl YXRlQWRkKAorICAgICAgICAgVGxzUmVmLCBNQ0NvbnN0YW50RXhwcjo6Y3JlYXRlKDMyNzY4LCBP dXRDb250ZXh0KSwgT3V0Q29udGV4dCk7CisgICBjb25zdCBNYWNoaW5lT3BlcmFuZCAmTU8gPSBN SS0+Z2V0T3BlcmFuZCgyKTsKK2RpZmYgLS1naXQgYS9saWIvVGFyZ2V0L1Bvd2VyUEMvUFBDTUNJ bnN0TG93ZXIuY3BwIGIvbGliL1RhcmdldC9Qb3dlclBDL1BQQ01DSW5zdExvd2VyLmNwcAoraW5k ZXggNWNjMTgwZDcuLmE1YjAyNTY1IDEwMDY0NAorLS0tIGEvbGx2bS9saWIvVGFyZ2V0L1Bvd2Vy UEMvUFBDTUNJbnN0TG93ZXIuY3BwCisrKysgYi9sbHZtL2xpYi9UYXJnZXQvUG93ZXJQQy9QUENN Q0luc3RMb3dlci5jcHAKK0BAIC0xMTcsNyArMTE3LDcgQEAgc3RhdGljIE1DT3BlcmFuZCBHZXRT eW1ib2xSZWYoY29uc3QgTWFjaGluZU9wZXJhbmQgJk1PLCBjb25zdCBNQ1N5bWJvbCAqU3ltYm9s LAorICAgY29uc3QgTUNFeHByICpFeHByID0gTUNTeW1ib2xSZWZFeHByOjpjcmVhdGUoU3ltYm9s LCBSZWZLaW5kLCBDdHgpOworICAgLy8gSWYgLW1zZWN1cmUtcGx0IC1mUElDLCBhZGQgMzI3Njgg dG8gc3ltYm9sLgorICAgaWYgKFN1YnRhcmdldC0+aXNTZWN1cmVQbHQoKSAmJiBUTS5pc1Bvc2l0 aW9uSW5kZXBlbmRlbnQoKSAmJgorLSAgICAgIE0tPmdldFBJQ0xldmVsKCkgPT0gUElDTGV2ZWw6 OkJpZ1BJQyAmJgorKyAgICAgIE0tPmdldFBJQ0xldmVsKCkgIT0gUElDTGV2ZWw6OlNtYWxsUElD ICYmCisgICAgICAgTU8uZ2V0VGFyZ2V0RmxhZ3MoKSA9PSBQUENJSTo6TU9fUExUKQorICAgICBF eHByID0KKyAgICAgICAgIE1DQmluYXJ5RXhwcjo6Y3JlYXRlQWRkKEV4cHIsIE1DQ29uc3RhbnRF eHByOjpjcmVhdGUoMzI3NjgsIEN0eCksIEN0eCk7CmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0x NC9wYXRjaGVzL2xsdm0tMDA2LWFhcmNoNjQtbWZfZXhlYy5wYXRjaCBiL3NyY3BrZ3MvbGx2bTE0 L3BhdGNoZXMvbGx2bS0wMDYtYWFyY2g2NC1tZl9leGVjLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uYTAwYWJkMjE2NjY1Ci0tLSAvZGV2L251bGwKKysrIGIv c3JjcGtncy9sbHZtMTQvcGF0Y2hlcy9sbHZtLTAwNi1hYXJjaDY0LW1mX2V4ZWMucGF0Y2gKQEAg LTAsMCArMSwyNSBAQAorRml4IGZhaWx1cmVzIGluIEFsbG9jYXRpb25UZXN0cy9NYXBwZWRNZW1v cnlUZXN0Liogb24gYWFyY2g2NDoKKworICAgIEZhaWxpbmcgVGVzdHMgKDgpOgorICAgICAgICBM TFZNLVVuaXQgOjogU3VwcG9ydC8uL1N1cHBvcnRUZXN0cy9BbGxvY2F0aW9uVGVzdHMvTWFwcGVk TWVtb3J5VGVzdC5BbGxvY0FuZFJlbGVhc2UvMworICAgICAgICBMTFZNLVVuaXQgOjogU3VwcG9y dC8uL1N1cHBvcnRUZXN0cy9BbGxvY2F0aW9uVGVzdHMvTWFwcGVkTWVtb3J5VGVzdC5EdXBsaWNh dGVOZWFyLzMKKyAgICAgICAgTExWTS1Vbml0IDo6IFN1cHBvcnQvLi9TdXBwb3J0VGVzdHMvQWxs b2NhdGlvblRlc3RzL01hcHBlZE1lbW9yeVRlc3QuRW5hYmxlZFdyaXRlLzMKKyAgICAgICAgTExW TS1Vbml0IDo6IFN1cHBvcnQvLi9TdXBwb3J0VGVzdHMvQWxsb2NhdGlvblRlc3RzL01hcHBlZE1l bW9yeVRlc3QuTXVsdGlwbGVBbGxvY0FuZFJlbGVhc2UvMworICAgICAgICBMTFZNLVVuaXQgOjog U3VwcG9ydC8uL1N1cHBvcnRUZXN0cy9BbGxvY2F0aW9uVGVzdHMvTWFwcGVkTWVtb3J5VGVzdC5T dWNjZXNzaXZlTmVhci8zCisgICAgICAgIExMVk0tVW5pdCA6OiBTdXBwb3J0Ly4vU3VwcG9ydFRl c3RzL0FsbG9jYXRpb25UZXN0cy9NYXBwZWRNZW1vcnlUZXN0LlVuYWxpZ25lZE5lYXIvMworICAg ICAgICBMTFZNLVVuaXQgOjogU3VwcG9ydC8uL1N1cHBvcnRUZXN0cy9BbGxvY2F0aW9uVGVzdHMv TWFwcGVkTWVtb3J5VGVzdC5aZXJvTmVhci8zCisgICAgICAgIExMVk0tVW5pdCA6OiBTdXBwb3J0 Ly4vU3VwcG9ydFRlc3RzL0FsbG9jYXRpb25UZXN0cy9NYXBwZWRNZW1vcnlUZXN0Llplcm9TaXpl TmVhci8zCisKK1Vwc3RyZWFtLUlzc3VlOiBodHRwczovL2J1Z3MubGx2bS5vcmcvc2hvd19idWcu Y2dpP2lkPTE0Mjc4I2MxMAorCistLS0gYS9sbHZtL2xpYi9TdXBwb3J0L1VuaXgvTWVtb3J5Lmlu YworKysrIGIvbGx2bS9saWIvU3VwcG9ydC9Vbml4L01lbW9yeS5pbmMKK0BAIC01OCw3ICs1OCw3 IEBAIHN0YXRpYyBpbnQgZ2V0UG9zaXhQcm90ZWN0aW9uRmxhZ3ModW5zaWduZWQgRmxhZ3MpIHsK KyAgICAgcmV0dXJuIFBST1RfUkVBRCB8IFBST1RfV1JJVEUgfCBQUk9UX0VYRUM7CisgICBjYXNl IGxsdm06OnN5czo6TWVtb3J5OjpNRl9FWEVDOgorICNpZiAoZGVmaW5lZChfX0ZyZWVCU0RfXykg fHwgZGVmaW5lZChfX1BPV0VSUENfXykgfHwgZGVmaW5lZCAoX19wcGNfXykgfHwgXAorLSAgICAg ZGVmaW5lZChfUE9XRVIpIHx8IGRlZmluZWQoX0FSQ0hfUFBDKSkKKysgICAgIGRlZmluZWQoX1BP V0VSKSB8fCBkZWZpbmVkKF9BUkNIX1BQQykgfHwgKGRlZmluZWQoX19saW51eF9fKSAmJiBkZWZp bmVkKF9fYWFyY2g2NF9fKSkpCisgICAgIC8vIE9uIFBvd2VyUEMsIGhhdmluZyBhbiBleGVjdXRh YmxlIHBhZ2UgdGhhdCBoYXMgbm8gcmVhZCBwZXJtaXNzaW9uCisgICAgIC8vIGNhbiBoYXZlIHVu aW50ZW5kZWQgY29uc2VxdWVuY2VzLiAgVGhlIGZ1bmN0aW9uIEludmFsaWRhdGVJbnN0cnVjdGlv bi0KKyAgICAgLy8gQ2FjaGUgdXNlcyBpbnN0cnVjdGlvbnMgZGNiZiBhbmQgaWNiaSwgYm90aCBv ZiB3aGljaCBhcmUgdHJlYXRlZCBieQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtMTQvdGVtcGxh dGUgYi9zcmNwa2dzL2xsdm0xNC90ZW1wbGF0ZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAwMDAuLjNlN2U2YWIyYzAwYgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbGx2 bTE0L3RlbXBsYXRlCkBAIC0wLDAgKzEsNDI0IEBACisjIFRlbXBsYXRlIGZpbGUgZm9yICdsbHZt MTQnCitwa2duYW1lPWxsdm0xNAordmVyc2lvbj0xNC4wLjMKK3JldmlzaW9uPTEKK3dya3NyYz0i bGx2bS1wcm9qZWN0LSR7dmVyc2lvbn0uc3JjIgorYnVpbGRfd3Jrc3JjPWxsdm0KK2J1aWxkX3N0 eWxlPWNtYWtlCitjb25maWd1cmVfYXJncz0iCisgLURDTUFLRV9CVUlMRF9UWVBFPVJlbGVhc2Ug LVduby1kZXYKKyAtREVOQUJMRV9MSU5LRVJfQlVJTERfSUQ9WUVTCisgLURMTERCX1VTRV9TWVNU RU1fU0lYPVlFUworIC1ETElCQ1hYX0NYWF9BQkk9bGliY3h4YWJpCisgLURMSUJDWFhfRU5BQkxF X1NUQVRJQ19BQklfTElCUkFSWT1ZRVMKKyAtRExJQkNYWEFCSV9VU0VfTExWTV9VTldJTkRFUj1Z RVMKKyAtRExJQkNYWEFCSV9FTkFCTEVfU1RBVElDX1VOV0lOREVSPVlFUworIC1ETElCT01QX0VO QUJMRV9TSEFSRUQ9WUVTCisgLURMSUJPTVBfSU5TVEFMTF9BTElBU0VTPU5PCisgLURMTFZNX0lO Q0xVREVfRE9DUz1ZRVMKKyAtRExMVk1fQlVJTERfRE9DUz1ZRVMKKyAtRExMVk1fRU5BQkxFX1NQ SElOWD1ZRVMKKyAtRFNQSElOWF9XQVJOSU5HU19BU19FUlJPUlM9Tk8KKyAtRExMVk1fSU5TVEFM TF9VVElMUz1ZRVMKKyAtRExMVk1fQlVJTERfTExWTV9EWUxJQj1ZRVMKKyAtRExMVk1fTElOS19M TFZNX0RZTElCPVlFUworIC1ETExWTV9FTkFCTEVfUlRUST1ZRVMKKyAtRExMVk1fRU5BQkxFX0ZG ST1ZRVMKKyAtRExMVk1fQklOVVRJTFNfSU5DRElSPS91c3IvaW5jbHVkZSIKK2hvc3RtYWtlZGVw ZW5kcz0icGVybCBweXRob24zIHpsaWItZGV2ZWwgbGliZmZpLWRldmVsIHN3aWcgcHl0aG9uMy1T cGhpbngKKyBweXRob24zLXJlY29tbW9ubWFyayBweXRob24zLXNwaGlueC1hdXRvbW9kYXBpIgor bWFrZWRlcGVuZHM9InB5dGhvbjMtZGV2ZWwgemxpYi1kZXZlbCBlbGZ1dGlscy1kZXZlbCBsaWJm ZmktZGV2ZWwgbGliZWRpdC1kZXZlbAorIGxpYnhtbDItZGV2ZWwgYmludXRpbHMtZGV2ZWwgbGli YXRvbWljLWRldmVsIgorZGVwZW5kcz0ibGlibGx2bTE0Pj0ke3ZlcnNpb259XyR7cmV2aXNpb259 Igorc2hvcnRfZGVzYz0iTG93IExldmVsIFZpcnR1YWwgTWFjaGluZSIKK21haW50YWluZXI9InE2 NiA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+IgorbGljZW5zZT0iQXBhY2hlLTIuMCIKK2hvbWVwYWdl PSJodHRwczovL3d3dy5sbHZtLm9yZyIKK2Rpc3RmaWxlcz0iaHR0cHM6Ly9naXRodWIuY29tL2xs dm0vbGx2bS1wcm9qZWN0L3JlbGVhc2VzL2Rvd25sb2FkL2xsdm1vcmctJHt2ZXJzaW9ufS9sbHZt LXByb2plY3QtJHt2ZXJzaW9ufS5zcmMudGFyLnh6IgorY2hlY2tzdW09NDRkM2U3YTc4NGQ1Y2Y4 MDVlNzI4NTNiYjAzZjIxOGJkMTA1OGQ0NDhjMDNjYTg4M2RhYmJlYmM5OTIwNGUwYworbGliMzJk aXNhYmxlZD15ZXMKK3B5dGhvbl92ZXJzaW9uPTMKKworaWYgWyAiJFhCUFNfVEFSR0VUX0xJQkMi ID0gIm11c2wiIF07IHRoZW4KKwljb25maWd1cmVfYXJncys9IiAtRExJQkNYWF9IQVNfTVVTTF9M SUJDPVlFUyIKKwltYWtlZGVwZW5kcys9IiBsaWJleGVjaW5mby1kZXZlbCIKKwlkZXBlbmRzKz0i IGxpYmV4ZWNpbmZvLWRldmVsIgorZmkKKworIyAib3BlcmFuZCBvdXQgb2YgcmFuZ2UiIGFzc2Vt YmxlciBmYWlsdXJlcworY2FzZSAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiIGluCisJcHBjNjQqKSA7 OworCXBwYyopIGNvbmZpZ3VyZV9hcmdzKz0iIC1EQ0xBTkdfRU5BQkxFX0NMQU5HRD1PRkYiIDs7 Citlc2FjCisKK19lbmFibGVkX3Byb2plY3RzPSJjbGFuZztjbGFuZy10b29scy1leHRyYTtjb21w aWxlci1ydDtsaWJjeHg7bGliY3h4YWJpO2xpYnVud2luZDtsbGQiCisKK19sbGRiX2VuYWJsZT15 ZXMKK19saWJvbXBfZW5hYmxlPW5vCisKK2Nhc2UgIiRYQlBTX1RBUkdFVF9NQUNISU5FIiBpbgor CXBwYzY0bGUqKSA7OworCXBwYyp8aTY4NiopIF9sbGRiX2VuYWJsZT1ubyA7OworZXNhYworCitj YXNlICIkWEJQU19UQVJHRVRfTUFDSElORSIgaW4KKwl4ODZfNjQqfGFhcmNoNjQqfHBwYzY0Kikg X2xpYm9tcF9lbmFibGU9eWVzOzsKK2VzYWMKKworc3VicGFja2FnZXM9ImNsYW5nLXRvb2xzLWV4 dHJhIgorCisjIG11c3QgZ28gYmVmb3JlIGNsYW5nCitpZiBbICIkX2xpYm9tcF9lbmFibGUiID0g InllcyIgXTsgdGhlbgorCV9lbmFibGVkX3Byb2plY3RzKz0iO29wZW5tcCIKKwlzdWJwYWNrYWdl cys9IiBsaWJvbXAgbGlib21wLWRldmVsIgorCSMgYmVjYXVzZSBvZiBjbWFrZSBub25zZW5zZSBy ZWZlcmVuY2luZyBsaWJvbXB0YXJnZXQuc28uKgorCWRlcGVuZHMrPSIgbGlib21wPj0ke3ZlcnNp b259XyR7cmV2aXNpb259IgorZmkKKworc3VicGFja2FnZXMrPSIgY2xhbmcgY2xhbmctYW5hbHl6 ZXIgbGliY2xhbmcgbGliY2xhbmctY3BwCisgbGx2bS1saWJ1bndpbmQgbGx2bS1saWJ1bndpbmQt ZGV2ZWwgbGliY3h4IGxpYmN4eC1kZXZlbAorIGxpYmN4eGFiaSBsaWJjeHhhYmktZGV2ZWwgbGli bGx2bTE0IgorCitpZiBbICIkX2xsZGJfZW5hYmxlIiA9ICJ5ZXMiIF07IHRoZW4KKwkjIFhYWCBm YWlscyB0byBjcm9zcyBjb21waWxlIGR1ZSB0byBweXRob24KKwlfZW5hYmxlZF9wcm9qZWN0cys9 IjtsbGRiIgorCXN1YnBhY2thZ2VzKz0iIGxsZGIgbGxkYi1kZXZlbCIKK2ZpCisKK3N1YnBhY2th Z2VzKz0iIGxsZCBsbGQtZGV2ZWwiCisKK2NvbmZpZ3VyZV9hcmdzKz0iIC1ETExWTV9FTkFCTEVf UFJPSkVDVFM9JHtfZW5hYmxlZF9wcm9qZWN0c30iCisKK3Bvc3RfcGF0Y2goKSB7CisJaWYgWyAi JF9sbGRiX2VuYWJsZSIgPSAieWVzIiBdOyB0aGVuCisJCWlmIFsgIiRYQlBTX1RBUkdFVF9MSUJD IiA9ICJtdXNsIiBdOyB0aGVuCisJCQl2c2VkIC1pICdzfF9fcHRyYWNlX3JlcXVlc3R8aW50fGcn IFwKKwkJCQkke3dya3NyY30vbGxkYi9zb3VyY2UvUGx1Z2lucy9Qcm9jZXNzL0xpbnV4L05hdGl2 ZVByb2Nlc3NMaW51eC5jcHAKKwkJZmkKKwkJIyBkaXNhYmxlIGRvY3MgZm9yIGxsZGIgYXMgdGhl eSBmYWlsIHRvIGdlbmVyYXRlCisJCXZzZWQgLWkgJy9hZGRfc3ViZGlyZWN0b3J5KGRvY3MpL2Qn IFwKKwkJCSR7d3Jrc3JjfS9sbGRiL0NNYWtlTGlzdHMudHh0CisJZmkKKworCSMgdXBkYXRlIGNv bmZpZy5ndWVzcyBmb3IgYmV0dGVyIHBsYXRmb3JtIGRldGVjdGlvbgorCWNwICRYQlBTX0NPTU1P TkRJUi9lbnZpcm9ubWVudC9jb25maWd1cmUvYXV0b21ha2UvY29uZmlnLmd1ZXNzIFwKKwkJJHt3 cmtzcmN9L2xsdm0vY21ha2UKKworCSMgZml4IGxpbmtlciBmYWlsdXJlcyBvbiBzb21lIGFyY2hz CisJdnNlZCAtaSAncyxjaGVja19saWJyYXJ5X2V4aXN0cyhnY2NfcyAuKixzZXQoTElCQ1hYQUJJ X0hBU19HQ0NfU19MSUIgT04pLCcgXAorCQkke3dya3NyY30vbGliY3h4YWJpL2NtYWtlL2NvbmZp Zy1peC5jbWFrZQorCXZzZWQgLWkgJ3MsY2hlY2tfbGlicmFyeV9leGlzdHMoZ2NjIC4qLHNldChM SUJDWFhBQklfSEFTX0dDQ19MSUIgT04pLCcgXAorCQkke3dya3NyY30vbGliY3h4YWJpL2NtYWtl L2NvbmZpZy1peC5jbWFrZQorCisJIyBuZWVkIGxpYnNzcF9ub25zaGFyZWQgb24gc29tZSBtdXNs IHBsYXRmb3JtcyAoYmVjYXVzZSBvZiBub2RlZmF1bHRsaWJzKQorCWNhc2UgIiRYQlBTX1RBUkdF VF9NQUNISU5FIiBpbgorCQlwcGM2NCopIDs7CisJCXBwYyotbXVzbHxpNjg2LW11c2x8bWlwcyot bXVzbCkKKwkJCXZzZWQgLWkgJ3MsXiMgU2V0dXAgZmxhZ3MuJCxhZGRfbGlicmFyeV9mbGFncyhz c3Bfbm9uc2hhcmVkKSwnIFwKKwkJCQkke3dya3NyY30vbGlidW53aW5kL3NyYy9DTWFrZUxpc3Rz LnR4dAorCQkJdnNlZCAtaSAncyxeIyBTZXR1cCBmbGFncy4kLGFkZF9saWJyYXJ5X2ZsYWdzKHNz cF9ub25zaGFyZWQpLCcgXAorCQkJCSR7d3Jrc3JjfS9saWJjeHhhYmkvc3JjL0NNYWtlTGlzdHMu dHh0CisJCQl2c2VkIC1pICdzLCNzc3AsLCcgJHt3cmtzcmN9L2xpYmN4eC9DTWFrZUxpc3RzLnR4 dAorCQkJOzsKKwllc2FjCisKKwljYXNlICIkWEJQU19UQVJHRVRfTUFDSElORSIgaW4KKwkJeDg2 XzY0LW11c2wpICMgc29tZSBzYW5pdGl6ZXIgY3VycmVudGx5IG9ubHkgb24geDg2XzY0IHN0dWZm IG5lZWRzIGJhY2t0cmFjZQorCQkJdnNlZCAtaSAncywjIFNldCBjb21tb24gbGluayBmbGFncy4s bGlzdChBUFBFTkQgU0FOSVRJWkVSX0NPTU1PTl9MSU5LX0xJQlMgZXhlY2luZm8pLCcgXAorCQkJ CSR7d3Jrc3JjfS9jb21waWxlci1ydC9DTWFrZUxpc3RzLnR4dAorCQkJOzsKKwkJYXJtKi1tdXNs fGk2ODYtbXVzbCkgIyBzYW5pdGl6ZXIgY29kZSBpcyBicm9rZW4gc2luY2UgaXQgZHVwbGljYXRl cyBzb21lIGxpYmMgYml0cworCQkJdnNlZCAtaSAncy9zZXQoQ09NUElMRVJfUlRfSEFTX1NBTklU SVpFUl9DT01NT04gVFJVRSkvc2V0KENPTVBJTEVSX1JUX0hBU19TQU5JVElaRVJfQ09NTU9OIEZB TFNFKS8nIFwKKwkJCQkke3dya3NyY30vY29tcGlsZXItcnQvY21ha2UvY29uZmlnLWl4LmNtYWtl CisJCQk7OworCWVzYWMKK30KKworcHJlX2NvbmZpZ3VyZSgpIHsKKwlsb2NhbCB0cmlwbGV0CisK KwkjIFZhc3RseSByZWR1Y2Ugc2l6ZSBvZiBkZWJ1Z2dpbmcgc3ltYm9sczoKKwlDRkxBR1M9JHtD RkxBR1MvIC1nLyAtZzF9CisJQ1hYRkxBR1M9JHtDWFhGTEFHUy8gLWcvIC1nMX0KKworCSMgc2lu Y2UgZ2NjOSwgdGhlIGJ1aWxkIGxpa2VzIHRvIGJsb3cgdXAgZm9yIHBwYzMyIGFwcGFyZW50bHkg YmVjYXVzZQorCSMgb2YgY2xhbmcgYmVpbmcgdG9vIGxhcmdlIGZvciBhIDI0LWJpdCByZWxhdGl2 ZSBjYWxsIHRvIHRoZSBQTFQsIHNvCisJIyBvcHRpbWl6ZSBmb3Igc2l6ZSBpbnN0ZWFkCisJY2Fz ZSAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiIGluCisJCXBwYzY0KikgOzsKKwkJbWlwcyotbXVzbHxw cGMqKSBjb25maWd1cmVfYXJncys9IiAtRFZPSURfQ1hYX09QVF9GTEFHUz0tT3MiIDs7CisJZXNh YworCisJaWYgWyAiJENST1NTX0JVSUxEIiBdOyB0aGVuCisJCW1zZ19ub3JtYWwgIkJ1aWxkaW5n IGhvc3QgdGJsZ2VuXG4iCisJCW1rZGlyIC1wIGJ1aWxkL0hPU1QKKwkJY2QgYnVpbGQvSE9TVAor CQlDQz0iJEJVSUxEX0NDIiBDWFg9IiRCVUlMRF9DWFgiIENGTEFHUz0iJEJVSUxEX0NGTEFHUyIg XAorCQkJQ1hYRkxBR1M9IiRCVUlMRF9DWFhGTEFHUyIgTERGTEFHUz0iJEJVSUxEX0xERkxBR1Mi IFwKKwkJCWNtYWtlIC4uLy4uIC1EQ01BS0VfQlVJTERfVFlQRT1SZWxlYXNlIFwKKwkJCS1ETExW TV9FTkFCTEVfUFJPSkVDVFM9JHtfZW5hYmxlZF9wcm9qZWN0c30KKwkJbWFrZSAke21ha2Vqb2Jz fSAtQyB1dGlscy9UYWJsZUdlbgorCQltYWtlICR7bWFrZWpvYnN9IC1DIHRvb2xzL2NsYW5nL3V0 aWxzL1RhYmxlR2VuCisJCVsgIiRfbGxkYl9lbmFibGUiID0gInllcyIgXSAmJiBtYWtlICR7bWFr ZWpvYnN9IC1DIHRvb2xzL2xsZGIvdXRpbHMvVGFibGVHZW4KKwkJY29uZmlndXJlX2FyZ3MrPSIg LURMTFZNX1RBQkxFR0VOPSR7d3Jrc3JjfS9sbHZtL2J1aWxkL0hPU1QvYmluL2xsdm0tdGJsZ2Vu IgorCQljb25maWd1cmVfYXJncys9IiAtRENMQU5HX1RBQkxFR0VOPSR7d3Jrc3JjfS9sbHZtL2J1 aWxkL0hPU1QvYmluL2NsYW5nLXRibGdlbiIKKwkJWyAiJF9sbGRiX2VuYWJsZSIgPSAieWVzIiBd ICYmIGNvbmZpZ3VyZV9hcmdzKz0iIC1ETExEQl9UQUJMRUdFTj0ke3dya3NyY30vbGx2bS9idWls ZC9IT1NUL2Jpbi9sbGRiLXRibGdlbiIKKwkJY2QgLi4vLi4KKwlmaQorCisJY2FzZSAiJFhCUFNf VEFSR0VUX01BQ0hJTkUiIGluCisJCWk2ODYqKSBfYXJjaD0iWDg2Ijs7CisJCXg4Nl82NCopIF9h cmNoPSJYODYiOzsKKwkJYXJtdjUqKSBfYXJjaD0iQXJtdjV0ZSI7OworCQlhcm12NiopIF9hcmNo PSJBcm12NiI7OworCQlhcm12NyopIF9hcmNoPSJBcm12NyI7OworCQlhYXJjaDY0KikgX2FyY2g9 IkFBcmNoNjQiOzsKKwkJbWlwcyopIF9hcmNoPSJNaXBzIjs7CisJCXBwYyopIF9hcmNoPSJQb3dl clBDIjs7CisJCXJpc2N2NjQqKSBfYXJjaD0iUklTQ1Y2NCI7OworCWVzYWMKKworCXRyaXBsZXQ9 JHtYQlBTX0NST1NTX1RSSVBMRVQ6LSRYQlBTX1RSSVBMRVR9CisKKwljb25maWd1cmVfYXJncys9 IiAtRExMVk1fVEFSR0VUX0FSQ0g9JHtfYXJjaH0iCisJY29uZmlndXJlX2FyZ3MrPSIgLURMTFZN X0hPU1RfVFJJUExFPSR7dHJpcGxldH0iCisJY29uZmlndXJlX2FyZ3MrPSIgLURMTFZNX0RFRkFV TFRfVEFSR0VUX1RSSVBMRT0ke3RyaXBsZXR9IgorfQorCitkb19pbnN0YWxsKCkgeworCWNkIGJ1 aWxkCisJY21ha2UgLURDTUFLRV9JTlNUQUxMX1BSRUZJWD0ke0RFU1RESVJ9L3VzciAtUCBjbWFr ZV9pbnN0YWxsLmNtYWtlCisKKwkjIFJlcXVpcmVkIGZvciBtdWx0aWxpYi4KKwlpZiBbICIkWEJQ U19UQVJHRVRfTUFDSElORSIgPSAieDg2XzY0IiBdOyB0aGVuCisJCWZvciBfaGVhZGVyIGluIGxs dm0tY29uZmlnOyBkbworCQkJbXYgJHtERVNURElSfS91c3IvaW5jbHVkZS9sbHZtL0NvbmZpZy8k e19oZWFkZXJ9eywtNjR9LmgKKwkJCXZpbnN0YWxsICR7RklMRVNESVJ9L2xsdm0tQ29uZmlnLSR7 X2hlYWRlcn0uaCA2NDQgXAorCQkJCXVzci9pbmNsdWRlL2xsdm0vQ29uZmlnICR7X2hlYWRlcn0u aAorCQlkb25lCisJZmkKKworCSMgUmVtb3ZlIGxsdm0tY29uZmlnLWhvc3QgaW4gY3Jvc3MgYnVp bGRzLgorCWlmIFsgIiRDUk9TU19CVUlMRCIgXTsgdGhlbgorCQlybSAtZiAke0RFU1RESVJ9L3Vz ci9iaW4vbGx2bS1jb25maWctaG9zdAorCWZpCisKKwkjIEluc3RhbGwgbGliY3h4YWJpIGhlYWRl cnMKKwl2aW5zdGFsbCAke3dya3NyY30vbGliY3h4YWJpL2luY2x1ZGUvX19jeHhhYmlfY29uZmln LmggNjQ0IHVzci9pbmNsdWRlCisJdmluc3RhbGwgJHt3cmtzcmN9L2xpYmN4eGFiaS9pbmNsdWRl L2N4eGFiaS5oIDY0NCB1c3IvaW5jbHVkZQorCisJIyBJbnN0YWxsIGxpYnVud2luZCBoZWFkZXJz CisJdmluc3RhbGwgJHt3cmtzcmN9L2xpYnVud2luZC9pbmNsdWRlL19fbGlidW53aW5kX2NvbmZp Zy5oIDY0NCB1c3IvaW5jbHVkZQorCXZpbnN0YWxsICR7d3Jrc3JjfS9saWJ1bndpbmQvaW5jbHVk ZS9saWJ1bndpbmQuaCA2NDQgdXNyL2luY2x1ZGUKKwl2aW5zdGFsbCAke3dya3NyY30vbGlidW53 aW5kL2luY2x1ZGUvdW53aW5kLmggNjQ0IHVzci9pbmNsdWRlCisJdmluc3RhbGwgJHt3cmtzcmN9 L2xpYnVud2luZC9pbmNsdWRlL21hY2gtby9jb21wYWN0X3Vud2luZF9lbmNvZGluZy5oIFwKKwkJ NjQ0IHVzci9pbmNsdWRlL21hY2gtbworfQorCitjbGFuZy1hbmFseXplcl9wYWNrYWdlKCkgewor CXB5Y29tcGlsZV9kaXJzPSJ1c3Ivc2hhcmUvc2Nhbi12aWV3IgorCWRlcGVuZHM9ImNsYW5nLSR7 dmVyc2lvbn1fJHtyZXZpc2lvbn0gcHl0aG9uMyBwZXJsIgorCXNob3J0X2Rlc2MrPSIgLSBBIHNv dXJjZSBjb2RlIGFuYWx5c2lzIGZyYW1ld29yayIKKwlob21lcGFnZT0iaHR0cHM6Ly9jbGFuZy1h bmFseXplci5sbHZtLm9yZy8iCisJcGtnX2luc3RhbGwoKSB7CisJCXZtb3ZlIHVzci9zaGFyZS9t YW4vbWFuMS9zY2FuLWJ1aWxkLjEKKwkJdm1vdmUgIi91c3IvYmluL3NjYW4tKiIKKwkJdm1vdmUg Ii91c3Ivc2hhcmUvc2Nhbi0qIgorCQl2bW92ZSAiL3Vzci9saWJleGVjLyphbmFseXplciIKKwl9 Cit9CisKK2NsYW5nLXRvb2xzLWV4dHJhX3BhY2thZ2UoKSB7CisJbGliMzJkaXNhYmxlZD15ZXMK KwlkZXBlbmRzPSJjbGFuZy0ke3ZlcnNpb259XyR7cmV2aXNpb259IHB5dGhvbjMiCisJc2hvcnRf ZGVzYys9IiAtIEV4dHJhIENsYW5nIHRvb2xzIgorCWhvbWVwYWdlPSJodHRwczovL2NsYW5nLmxs dm0ub3JnL2V4dHJhLyIKKwlwa2dfaW5zdGFsbCgpIHsKKwkJdm1vdmUgdXNyL2luY2x1ZGUvY2xh bmctdGlkeQorCQl2bW92ZSB1c3IvYmluL2NsYW5nLWFwcGx5LXJlcGxhY2VtZW50cworCQl2bW92 ZSB1c3IvYmluL2NsYW5nLXF1ZXJ5CisJCXZtb3ZlIHVzci9iaW4vY2xhbmctcmVuYW1lCisJCXZt b3ZlIHVzci9iaW4vY2xhbmctdGlkeQorCQl2bW92ZSB1c3IvYmluL2RpYWd0b29sCisJCXZtb3Zl IHVzci9iaW4vZmluZC1hbGwtc3ltYm9scworCQl2bW92ZSB1c3IvYmluL2htYXB0b29sCisJCXZt b3ZlIHVzci9iaW4vbW9kdWxhcml6ZQorCQl2bW92ZSB1c3IvYmluL3BwLXRyYWNlCisJCXZtb3Zl IHVzci9iaW4vc2FuY292CisJCXZtb3ZlICJ1c3IvbGliL2xpYmNsYW5nQXBwbHlSZXBsYWNlbWVu dHMqIgorCQl2bW92ZSAidXNyL2xpYi9saWJjbGFuZ1F1ZXJ5KiIKKwkJdm1vdmUgInVzci9saWIv bGliY2xhbmdUaWR5KiIKKwkJdm1vdmUgInVzci9zaGFyZS9jbGFuZy8qdGlkeSoiCisJCXZtb3Zl IHVzci9zaGFyZS9kb2MvY2xhbmctdG9vbHMKKwkJdm1vdmUgdXNyL3NoYXJlL21hbi9tYW4xL2V4 dHJhY2xhbmd0b29scy4xCisJCXZtb3ZlIHVzci9zaGFyZS9tYW4vbWFuMS9kaWFndG9vbC4xCisJ fQorfQorCitjbGFuZ19wYWNrYWdlKCkgeworCWxpYjMyZGlzYWJsZWQ9eWVzCisJZGVwZW5kcz0i bGlic3RkYysrLWRldmVsIGxpYmdjYy1kZXZlbCAgYmludXRpbHMgJHtYQlBTX1RBUkdFVF9MSUJD fS1kZXZlbAorCSBsaWJjbGFuZy0ke3ZlcnNpb259XyR7cmV2aXNpb259IgorCXNob3J0X2Rlc2Mr PSIgLSBDIGxhbmd1YWdlIGZhbWlseSBmcm9udGVuZCIKKwlob21lcGFnZT0iaHR0cHM6Ly9jbGFu Zy5sbHZtLm9yZy8iCisJcGtnX2luc3RhbGwoKSB7CisJCXZtb3ZlIHVzci9pbmNsdWRlL2NsYW5n CisJCXZtb3ZlIHVzci9pbmNsdWRlL2NsYW5nLWMKKwkJdm1vdmUgInVzci9iaW4vKmNsYW5nKiIK KwkJdm1vdmUgdXNyL2Jpbi9jLWluZGV4LXRlc3QKKwkJdm1vdmUgdXNyL2xpYi9jbGFuZworCQl2 bW92ZSB1c3IvbGliL2NtYWtlL2NsYW5nCisJCXZtb3ZlICJ1c3IvbGliL2xpYmNsYW5nKi5hIgor CQl2bW92ZSAidXNyL2xpYi9saWJjbGFuZyouc28iCisJCXZtb3ZlIHVzci9zaGFyZS9jbGFuZwor CQl2bW92ZSB1c3Ivc2hhcmUvZG9jL2NsYW5nCisJCXZtb3ZlIHVzci9zaGFyZS9tYW4vbWFuMS9j bGFuZy4xCisJfQorfQorCitsaWJjbGFuZ19wYWNrYWdlKCkgeworCXNob3J0X2Rlc2MrPSIgLSBD IGZyb250ZW5kIHJ1bnRpbWUgbGlicmFyeSIKKwlwa2dfaW5zdGFsbCgpIHsKKwkJdm1vdmUgInVz ci9saWIvbGliY2xhbmcuc28uKiIKKwl9Cit9CisKK2xpYmNsYW5nLWNwcF9wYWNrYWdlKCkgewor CXNob3J0X2Rlc2MrPSIgLSBDIGZyb250ZW5kIHJ1bnRpbWUgbGlicmFyeSAoQysrIGludGVyZmFj ZSkiCisJcGtnX2luc3RhbGwoKSB7CisJCXZtb3ZlICJ1c3IvbGliL2xpYmNsYW5nLWNwcC5zby4q IgorCX0KK30KKworbGxkX3BhY2thZ2UoKSB7CisJbGliMzJkaXNhYmxlZD15ZXMKKwlzaG9ydF9k ZXNjKz0iIC0gbGlua2VyIgorCWhvbWVwYWdlPSJodHRwczovL2xsZC5sbHZtLm9yZyIKKwlwa2df aW5zdGFsbCgpIHsKKwkJdm1vdmUgdXNyL2Jpbi9sbGQqCisJCXZtb3ZlIHVzci9iaW4vd2FzbS1s ZAorCQl2bW92ZSB1c3IvYmluL2xkLmxsZCoKKwkJdm1vdmUgdXNyL2Jpbi9sZDY0LmxsZCoKKwkJ dm1vdmUgdXNyL3NoYXJlL2RvYy9sbGQKKwl9Cit9CisKK2xsZC1kZXZlbF9wYWNrYWdlKCkgewor CWxpYjMyZGlzYWJsZWQ9eWVzCisJc2hvcnRfZGVzYys9IiAtIGxpbmtlciAtIGRldmVsb3BtZW50 IGZpbGVzIgorCWhvbWVwYWdlPSJodHRwczovL2xsZC5sbHZtLm9yZyIKKwlkZXBlbmRzPSJsbGQ+ PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCisJcGtnX2luc3RhbGwoKSB7CisJCXZtb3ZlIHVzci9p bmNsdWRlL2xsZAorCQl2bW92ZSB1c3IvbGliL2NtYWtlL2xsZAorCQl2bW92ZSAidXNyL2xpYi9s aWJsbGQqYSIKKwl9Cit9CisKK2xsZGJfcGFja2FnZSgpIHsKKwlsaWIzMmRpc2FibGVkPXllcwor CWRlcGVuZHMrPSIgcHl0aG9uMy1zaXgiCisJc2hvcnRfZGVzYys9IiAtIExMREIgZGVidWdnZXIi CisJaG9tZXBhZ2U9Imh0dHBzOi8vbGxkYi5sbHZtLm9yZy8iCisJcGtnX2luc3RhbGwoKSB7CisJ CXZtb3ZlIHVzci9iaW4vKmxsZGIqCisJCXZtb3ZlIHVzci9saWIvbGlibGxkYipzby4qCisJCXZt b3ZlIC91c3IvbGliL3B5dGhvbioKKwl9Cit9CisKK2xsZGItZGV2ZWxfcGFja2FnZSgpIHsKKwls aWIzMmRpc2FibGVkPXllcworCWRlcGVuZHM9ImxsZGI+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0i CisJc2hvcnRfZGVzYys9IiAtIExMREIgZGVidWdnZXIgLSBkZXZlbG9wbWVudCBmaWxlcyIKKwlw a2dfaW5zdGFsbCgpIHsKKwkJdm1vdmUgdXNyL2luY2x1ZGUvbGxkYgorCQl2bW92ZSAidXNyL2xp Yi9saWJsbGRiKi5zbyIKKwl9Cit9CisKK2xsdm0tbGlidW53aW5kX3BhY2thZ2UoKSB7CisJc2hv cnRfZGVzYys9IiAtIGxpYnVud2luZCIKKwlwa2dfaW5zdGFsbCgpIHsKKwkJdm1vdmUgInVzci9s aWIvbGlidW53aW5kLnNvLioiCisJfQorfQorCitsbHZtLWxpYnVud2luZC1kZXZlbF9wYWNrYWdl KCkgeworCXNob3J0X2Rlc2MrPSIgLSBsaWJ1bndpbmQgLSBkZXZlbG9wbWVudCBmaWxlcyIKKwlk ZXBlbmRzPSJsbHZtLWxpYnVud2luZD49JHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKKwljb25mbGlj dHM9ImxpYnVud2luZC1kZXZlbD49MCIKKwlwa2dfaW5zdGFsbCgpIHsKKwkJdm1vdmUgdXNyL2xp Yi9saWJ1bndpbmQuc28KKwkJdm1vdmUgdXNyL2xpYi9saWJ1bndpbmQuYQorCQl2bW92ZSAidXNy L2luY2x1ZGUvKnVud2luZCoiCisJCXZtb3ZlIHVzci9pbmNsdWRlL21hY2gtbworCQl2bW92ZSB1 c3Ivc2hhcmUvZG9jL2xpYnVud2luZAorCX0KK30KKworbGliY3h4YWJpX3BhY2thZ2UoKSB7CisJ c2hvcnRfZGVzYys9IiAtIGxvdyBsZXZlbCBzdXBwb3J0IGZvciBsaWJjKysiCisJcGtnX2luc3Rh bGwoKSB7CisJCXZtb3ZlICJ1c3IvbGliL2xpYmMrK2FiaS5zby4qIgorCX0KK30KKworbGliY3h4 YWJpLWRldmVsX3BhY2thZ2UoKSB7CisJc2hvcnRfZGVzYys9IiAtIGxvdyBsZXZlbCBzdXBwb3J0 IGZvciBsaWJjKysgLSBkZXZlbG9wbWVudCBmaWxlcyIKKwlkZXBlbmRzPSJsaWJjeHhhYmk+PSR7 dmVyc2lvbn1fJHtyZXZpc2lvbn0iCisJcGtnX2luc3RhbGwoKSB7CisJCXZtb3ZlIHVzci9saWIv bGliYysrYWJpLnNvCisJCXZtb3ZlIHVzci9saWIvbGliYysrYWJpLmEKKwkJdm1vdmUgInVzci9p bmNsdWRlLypjeHhhYmkqIgorCX0KK30KKworbGliY3h4X3BhY2thZ2UoKSB7CisJc2hvcnRfZGVz Yys9IiAtIEMrKyBzdGFuZGFyZCBsaWJyYXJ5IgorCXBrZ19pbnN0YWxsKCkgeworCQl2bW92ZSAi dXNyL2xpYi9saWJjKysuc28uKiIKKwl9Cit9CisKK2xpYmN4eC1kZXZlbF9wYWNrYWdlKCkgewor CXNob3J0X2Rlc2MrPSIgLSBDKysgc3RhbmRhcmQgbGlicmFyeSAtIGRldmVsb3BtZW50IGZpbGVz IgorCWRlcGVuZHM9ImxpYmN4eD49JHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKKwlwa2dfaW5zdGFs bCgpIHsKKwkJdm1vdmUgdXNyL2xpYi9saWJjKysuc28KKwkJdm1vdmUgdXNyL2xpYi9saWJjKysu YQorCQl2bW92ZSB1c3IvbGliL2xpYmMrK2V4cGVyaW1lbnRhbC5hCisJCXZtb3ZlIHVzci9pbmNs dWRlL2MrKworCQl2bW92ZSB1c3Ivc2hhcmUvZG9jL2xpYmN4eAorCX0KK30KKworbGlib21wX3Bh Y2thZ2UoKSB7CisJc2hvcnRfZGVzYys9IiAtIENsYW5nIE9wZW5NUCBzdXBwb3J0IGxpYnJhcnki CisJcGtnX2luc3RhbGwoKSB7CisJCXZtb3ZlIHVzci9saWIvbGlib21wLnNvCisJCXZtb3ZlICJ1 c3IvbGliL2xpYm9tcHRhcmdldC5ydGwuKi5zbyIKKwkJdm1vdmUgdXNyL2xpYi9saWJhcmNoZXIu c28KKwkJdm1vdmUgInVzci9saWIvbGlib21wKi5zby4qIgorCX0KK30KKworbGlib21wLWRldmVs X3BhY2thZ2UoKSB7CisJc2hvcnRfZGVzYys9IiAtIENsYW5nIE9wZW5NUCBzdXBwb3J0IGxpYnJh cnkgLSBkZXZlbG9wbWVudCBmaWxlcyIKKwlkZXBlbmRzPSJsaWJvbXA+PSR7dmVyc2lvbn1fJHty ZXZpc2lvbn0iCisJcGtnX2luc3RhbGwoKSB7CisJCXZtb3ZlICJ1c3IvbGliL2xpYm9tcCouc28i CisJCXZtb3ZlICJ1c3IvbGliL2xpYmFyY2hlcioiCisJCXZtb3ZlICJ1c3IvaW5jbHVkZS9vbXAq LmgiCisJCXZtb3ZlICJ1c3IvbGliL2NsYW5nLyR7dmVyc2lvbn0vaW5jbHVkZS9vbXAqLmgiCisJ CXZtb3ZlIHVzci9zaGFyZS9tYW4vbWFuMS9sbHZtb3Blbm1wLjEKKwkJdm1vdmUgdXNyL3NoYXJl L2RvYy9vcGVubXAKKwl9Cit9CisKK2xpYmxsdm0xNF9wYWNrYWdlKCkgeworCXNob3J0X2Rlc2Mr PSIgLSBydW50aW1lIGxpYnJhcnkiCisJcGtnX2luc3RhbGwoKSB7CisJCXZtb3ZlICJ1c3IvbGli L2xpYkxMVk0tKi5zbyoiCisJfQorfQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtMTQvdXBkYXRl IGIvc3JjcGtncy9sbHZtMTQvdXBkYXRlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwMDAwMC4uZTk1Y2YyNmIzNTg2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9sbHZtMTQv dXBkYXRlCkBAIC0wLDAgKzEsMyBAQAorc2l0ZT0iaHR0cHM6Ly9naXRodWIuY29tL2xsdm0vbGx2 bS1wcm9qZWN0L3JlbGVhc2VzIgorcGF0dGVybj0ibGx2bW9yZy1cSyhcZCsuKXsyfVxkKygtcmNc ZCspPyIKK2lnbm9yZT0iKi1yYyoiCgpGcm9tIDg0MzhkNjJlODE4ZjQxZTJjMjY2M2JiNmVkMGUz MGQ3MzAxMThjYWQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IHByZXogPHByZXpAbmF0 aW9uYWwuc2hpdHBvc3RpbmcuYWdlbmN5PgpEYXRlOiBNb24sIDIgTWF5IDIwMjIgMjE6MTY6MDcg KzAyMDAKU3ViamVjdDogW1BBVENIIDAyLzI5XSBsbHZtOiB1cGRhdGUgdG8gMTQuMC4zLgoKLS0t CiBzcmNwa2dzL2xsdm0vdGVtcGxhdGUgfCA2ICsrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5z ZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0vdGVt cGxhdGUgYi9zcmNwa2dzL2xsdm0vdGVtcGxhdGUKaW5kZXggYTkyZGI2Zjk0ZjlmLi5kMjI2YzYx YzczNGUgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvbGx2bS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2xs dm0vdGVtcGxhdGUKQEAgLTEsMTAgKzEsMTAgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2xsdm0n CiBwa2duYW1lPWxsdm0KLXZlcnNpb249MTIuMC4wCit2ZXJzaW9uPTE0LjAuMwogcmV2aXNpb249 MQogYnVpbGRfc3R5bGU9bWV0YQotZGVwZW5kcz0ibGx2bTEyIgotcmVwbGFjZXM9Imxsdm0xMT49 MCBsbHZtMTA+PTAgbGx2bTk+PTAgbGx2bTg+PTAgbGx2bTc+PTAgbGx2bTYuMD49MCBsbHZtMy45 Pj0wIgorZGVwZW5kcz0ibGx2bTE0IgorcmVwbGFjZXM9Imxsdm0xMz49MCBsbHZtMTI+PTAgbGx2 bTExPj0wIGxsdm0xMD49MCBsbHZtOT49MCBsbHZtOD49MCBsbHZtNz49MCBsbHZtNi4wPj0wIGxs dm0zLjk+PTAiCiBzaG9ydF9kZXNjPSJMTFZNIG1ldGEgcGFja2FnZSIKIG1haW50YWluZXI9IkVu bm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJQdWJsaWMgRG9tYWlu IgoKRnJvbSA5MmVkYWExNzU5YjdiNTJlOThmZDZhM2FkZjVhNzYxMzM0ODQ5MzA0IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBwcmV6IDxwcmV6QG5hdGlvbmFsLnNoaXRwb3N0aW5nLmFn ZW5jeT4KRGF0ZTogTW9uLCAyIE1heSAyMDIyIDIxOjM2OjMyICswMjAwClN1YmplY3Q6IFtQQVRD SCAwMy8yOV0gbGx2bTEyOiBkcm9wIG5vbi1sbHZtIGNvbXBvbmVudHMKCi0tLQogLi4uY2xhbmct MDAxLWZpeC11bndpbmQtY2hhaW4taW5jbHVzaW9uLnBhdGNoIHwgIDQ0IC0tLQogLi4uL3BhdGNo ZXMvY2xhbmctMDAyLWFkZC1tdXNsLXRyaXBsZXMucGF0Y2ggIHwgMTEwIC0tLS0tLS0KIC4uLi9j bGFuZy0wMDMtcHBjNjQtZHluYW1pYy1saW5rZXItcGF0aC5wYXRjaCB8ICAxMyAtCiAuLi4vcGF0 Y2hlcy9jbGFuZy0wMDQtcHBjNjQtbXVzbC1lbGZ2Mi5wYXRjaCAgfCAgNDggLS0tCiAuLi4vY29t cGlsZXItcnQtYWFyY2g2NC11Y29udGV4dC5wYXRjaCAgICAgICAgfCAgMTEgLQogLi4uL2NvbXBp bGVyLXJ0LXNhbml0aXplci1wcGM2NC1tdXNsLnBhdGNoICAgIHwgIDM1IC0tCiAuLi4vbGx2bTEy L3BhdGNoZXMvY29tcGlsZXItcnQtc2l6ZV90LnBhdGNoICAgfCAgMTAgLQogLi4uL3BhdGNoZXMv Y29tcGlsZXItcnQteHJheS1wcGM2NC1tdXNsLnBhdGNoIHwgIDYyIC0tLS0KIHNyY3BrZ3MvbGx2 bTEyL3BhdGNoZXMvbGliY3h4LW11c2wucGF0Y2ggICAgICB8ICAyNiAtLQogc3JjcGtncy9sbHZt MTIvcGF0Y2hlcy9saWJjeHgtcHBjLnBhdGNoICAgICAgIHwgIDIyIC0tCiAuLi4vbGx2bTEyL3Bh dGNoZXMvbGliY3h4LXNzcC1ub25zaGFyZWQucGF0Y2ggfCAgMTEgLQogc3JjcGtncy9sbHZtMTIv cGF0Y2hlcy9saWJjeHhhYmktZGwucGF0Y2ggICAgIHwgIDI1IC0tCiBzcmNwa2dzL2xsdm0xMi9w YXRjaGVzL2xpYnVud2luZC1wcGMzMi5wYXRjaCAgfCAgNjMgLS0tLQogc3JjcGtncy9sbHZtMTIv cGF0Y2hlcy9sbGRiLW11c2wucGF0Y2ggICAgICAgIHwgIDMxIC0tCiAuLi4vbGx2bTEyL3BhdGNo ZXMvcHBjMzItY29tcGlsZXItcnQucGF0Y2ggICAgfCAgMjEgLS0KIHNyY3BrZ3MvbGx2bTEyL3Rl bXBsYXRlICAgICAgICAgICAgICAgICAgICAgICB8IDMwMSArLS0tLS0tLS0tLS0tLS0tLS0KIDE2 IGZpbGVzIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCA4MzIgZGVsZXRpb25zKC0pCiBkZWxldGUg bW9kZSAxMDA2NDQgc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9jbGFuZy0wMDEtZml4LXVud2luZC1j aGFpbi1pbmNsdXNpb24ucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xsdm0xMi9w YXRjaGVzL2NsYW5nLTAwMi1hZGQtbXVzbC10cmlwbGVzLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2 NDQgc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9jbGFuZy0wMDMtcHBjNjQtZHluYW1pYy1saW5rZXIt cGF0aC5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvY2xh bmctMDA0LXBwYzY0LW11c2wtZWxmdjIucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dz L2xsdm0xMi9wYXRjaGVzL2NvbXBpbGVyLXJ0LWFhcmNoNjQtdWNvbnRleHQucGF0Y2gKIGRlbGV0 ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2NvbXBpbGVyLXJ0LXNhbml0aXpl ci1wcGM2NC1tdXNsLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9sbHZtMTIvcGF0 Y2hlcy9jb21waWxlci1ydC1zaXplX3QucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dz L2xsdm0xMi9wYXRjaGVzL2NvbXBpbGVyLXJ0LXhyYXktcHBjNjQtbXVzbC5wYXRjaAogZGVsZXRl IG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvbGliY3h4LW11c2wucGF0Y2gKIGRl bGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2xpYmN4eC1wcGMucGF0Y2gK IGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2xpYmN4eC1zc3Atbm9u c2hhcmVkLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9s aWJjeHhhYmktZGwucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xsdm0xMi9wYXRj aGVzL2xpYnVud2luZC1wcGMzMi5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGx2 bTEyL3BhdGNoZXMvbGxkYi1tdXNsLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9s bHZtMTIvcGF0Y2hlcy9wcGMzMi1jb21waWxlci1ydC5wYXRjaAoKZGlmZiAtLWdpdCBhL3NyY3Br Z3MvbGx2bTEyL3BhdGNoZXMvY2xhbmctMDAxLWZpeC11bndpbmQtY2hhaW4taW5jbHVzaW9uLnBh dGNoIGIvc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9jbGFuZy0wMDEtZml4LXVud2luZC1jaGFpbi1p bmNsdXNpb24ucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU0ZWFhNzc4M2U3 YS4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvY2xhbmctMDAxLWZp eC11bndpbmQtY2hhaW4taW5jbHVzaW9uLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNDQgKzAs MCBAQAotRnJvbSAzNTI5NzQxNjlmMGQyYjVkYTNkNTMyMWY1ODhmNWUzYjU5NDEzMzBlIE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogQW5kcmVhIEJyYW5jYWxlb25pIDxtaXdheGVAZ21h aWwuY29tPgotRGF0ZTogVHVlLCA4IFNlcCAyMDE1IDIyOjE0OjU3ICswMjAwCi1TdWJqZWN0OiBb UEFUQ0ggMi83XSBmaXggdW53aW5kIGNoYWluIGluY2x1c2lvbgotCi0tLS0KLSBsaWIvSGVhZGVy cy91bndpbmQuaCB8IDkgKysrKystLS0tCi0gMSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygr KSwgNCBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2xpYi9IZWFkZXJzL3Vud2luZC5oIGIv bGliL0hlYWRlcnMvdW53aW5kLmgKLWluZGV4IDMwM2Q3OTIuLjQ0ZTEwY2MgMTAwNjQ0Ci0tLS0g YS9jbGFuZy9saWIvSGVhZGVycy91bndpbmQuaAotKysrIGIvY2xhbmcvbGliL0hlYWRlcnMvdW53 aW5kLmgKLUBAIC05LDkgKzksNiBAQAotIAotIC8qIFNlZSAiRGF0YSBEZWZpbml0aW9ucyBmb3Ig bGliZ2NjX3MiIGluIHRoZSBMaW51eCBTdGFuZGFyZCBCYXNlLiovCi0gCi0tI2lmbmRlZiBfX0NM QU5HX1VOV0lORF9ICi0tI2RlZmluZSBfX0NMQU5HX1VOV0lORF9ICi0tCi0gI2lmIGRlZmluZWQo X19BUFBMRV9fKSAmJiBfX2hhc19pbmNsdWRlX25leHQoPHVud2luZC5oPikKLSAvKiBEYXJ3aW4g KGZyb20gMTEueCBvbikgcHJvdmlkZSBhbiB1bndpbmQuaC4gSWYgdGhhdCdzIGF2YWlsYWJsZSwK LSAgKiB1c2UgaXQuIGxpYnVud2luZCB3cmFwcyBzb21lIG9mIGl0cyBkZWZpbml0aW9ucyBpbiAj aWZkZWYgX0dOVV9TT1VSQ0UsCi1AQCAtMzksNiArMzYsOSBAQAotICMgZW5kaWYKLSAjZWxzZQot IAotKyNpZm5kZWYgX19DTEFOR19VTldJTkRfSAotKyNkZWZpbmUgX19DTEFOR19VTldJTkRfSAot KwotICNpbmNsdWRlIDxzdGRpbnQuaD4KLSAKLSAjaWZkZWYgX19jcGx1c3BsdXMKLUBAIC0zMjIs NiArMzIyLDcgQEAgX1Vud2luZF9QdHIgX1Vud2luZF9HZXRUZXh0UmVsQmFzZShzdHJ1Y3QgX1Vu d2luZF9Db250ZXh0ICopOwotIH0KLSAjZW5kaWYKLSAKLSsjZW5kaWYgLyogX19DTEFOR19VTldJ TkRfSCAqLwotKwotICNlbmRpZgotIAotLSNlbmRpZiAvKiBfX0NMQU5HX1VOV0lORF9IICovCi0t LSAKLTIuNS4xCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2NsYW5nLTAwMi1h ZGQtbXVzbC10cmlwbGVzLnBhdGNoIGIvc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9jbGFuZy0wMDIt YWRkLW11c2wtdHJpcGxlcy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjU2 ODhkNDBkYmMyLi4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9jbGFu Zy0wMDItYWRkLW11c2wtdHJpcGxlcy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDExMCArMCww IEBACi0tLS0gYS9jbGFuZy9saWIvRHJpdmVyL1Rvb2xDaGFpbnMvR251LmNwcAotKysrIGIvY2xh bmcvbGliL0RyaXZlci9Ub29sQ2hhaW5zL0dudS5jcHAKLUBAIC0yMDg2LDcgKzIwODYsOCBAQCB2 b2lkIEdlbmVyaWNfR0NDOjpHQ0NJbnN0YWxsYXRpb25EZXRlY3Rvcjo6QWRkRGVmYXVsdEdDQ1By ZWZpeGVzKAotICAgc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IEFSTUhGVHJpcGxlc1tdID0geyJh cm0tbGludXgtZ251ZWFiaWhmIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAiYXJtdjdobC1yZWRoYXQtbGludXgtZ251ZWFiaSIsCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImFybXY2aGwtc3VzZS1saW51eC1nbnVl YWJpIiwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYXJt djdobC1zdXNlLWxpbnV4LWdudWVhYmkifTsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAiYXJtdjdobC1zdXNlLWxpbnV4LWdudWVhYmkiLAotKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhcm12N2wtbGludXgtZ251ZWFi aWhmIn07Ci0gICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgQVJNZWJMaWJEaXJzW10gPSB7Ii9s aWIifTsKLSAgIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBBUk1lYlRyaXBsZXNbXSA9IHsiYXJt ZWItbGludXgtZ251ZWFiaSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgImFybWViLWxpbnV4LWFuZHJvaWRlYWJpIn07Ci1AQCAtMjE1Myw4ICsyMTU0LDcg QEAgdm9pZCBHZW5lcmljX0dDQzo6R0NDSW5zdGFsbGF0aW9uRGV0ZWN0b3I6OkFkZERlZmF1bHRH Q0NQcmVmaXhlcygKLSAgICAgICAicG93ZXJwYzY0LXN1c2UtbGludXgiLCAicG93ZXJwYy1tb250 YXZpc3RhLWxpbnV4c3BlIn07Ci0gICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgUFBDTEVMaWJE aXJzW10gPSB7Ii9saWIzMiIsICIvbGliIn07Ci0gICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3Qg UFBDTEVUcmlwbGVzW10gPSB7InBvd2VycGNsZS1saW51eC1nbnUiLAotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwb3dlcnBjbGUtdW5rbm93bi1saW51eC1n bnUiLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwb3dl cnBjbGUtbGludXgtbXVzbCJ9OwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICJwb3dlcnBjbGUtdW5rbm93bi1saW51eC1nbnUifTsKLSAKLSAgIHN0YXRpYyBj b25zdCBjaGFyICpjb25zdCBQUEM2NExpYkRpcnNbXSA9IHsiL2xpYjY0IiwgIi9saWIifTsKLSAg IHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBQUEM2NFRyaXBsZXNbXSA9IHsKLUBAIC0yMjM1LDYg KzIyMzUsODcgQEAgdm9pZCBHZW5lcmljX0dDQzo6R0NDSW5zdGFsbGF0aW9uRGV0ZWN0b3I6OkFk ZERlZmF1bHRHQ0NQcmVmaXhlcygKLSAgICAgcmV0dXJuOwotICAgfQotIAotKyAgaWYgKFRhcmdl dFRyaXBsZS5pc011c2woKSkgewotKyAgICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgQUFyY2g2 NE11c2xUcmlwbGVzW10gPSB7ImFhcmNoNjQtbGludXgtbXVzbCJ9OwotKyAgICBzdGF0aWMgY29u c3QgY2hhciAqY29uc3QgQVJNSEZNdXNsVHJpcGxlc1tdID0gewotKyAgICAgICAgImFybS1saW51 eC1tdXNsZWFiaWhmIiwgImFybXY3bC1saW51eC1tdXNsZWFiaWhmIgotKyAgICB9OwotKyAgICBz dGF0aWMgY29uc3QgY2hhciAqY29uc3QgQVJNTXVzbFRyaXBsZXNbXSA9IHsiYXJtLWxpbnV4LW11 c2xlYWJpIn07Ci0rICAgIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBYODZfNjRNdXNsVHJpcGxl c1tdID0geyJ4ODZfNjQtbGludXgtbXVzbCJ9OwotKyAgICBzdGF0aWMgY29uc3QgY2hhciAqY29u c3QgWDg2TXVzbFRyaXBsZXNbXSA9IHsiaTY4Ni1saW51eC1tdXNsIn07Ci0rICAgIHN0YXRpYyBj b25zdCBjaGFyICpjb25zdCBNSVBTTXVzbFRyaXBsZXNbXSA9IHsKLSsgICAgICAgICJtaXBzLWxp bnV4LW11c2wiLCAibWlwc2VsLWxpbnV4LW11c2wiLAotKyAgICAgICAgIm1pcHNlbC1saW51eC1t dXNsaGYiLCAibWlwcy1saW51eC1tdXNsaGYiCi0rICAgIH07Ci0rICAgIHN0YXRpYyBjb25zdCBj aGFyICpjb25zdCBQUENNdXNsVHJpcGxlc1tdID0geyJwb3dlcnBjLWxpbnV4LW11c2wifTsKLSsg ICAgc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IFBQQ0xFTXVzbFRyaXBsZXNbXSA9IHsicG93ZXJw Y2xlLWxpbnV4LW11c2wifTsKLSsgICAgc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IFBQQzY0TXVz bFRyaXBsZXNbXSA9IHsicG93ZXJwYzY0LWxpbnV4LW11c2wifTsKLSsgICAgc3RhdGljIGNvbnN0 IGNoYXIgKmNvbnN0IFBQQzY0TEVNdXNsVHJpcGxlc1tdID0geyJwb3dlcnBjNjRsZS1saW51eC1t dXNsIn07Ci0rCi0rICAgIHN3aXRjaCAoVGFyZ2V0VHJpcGxlLmdldEFyY2goKSkgewotKyAgICBj YXNlIGxsdm06OlRyaXBsZTo6YWFyY2g2NDoKLSsgICAgICBMaWJEaXJzLmFwcGVuZChiZWdpbihB QXJjaDY0TGliRGlycyksIGVuZChBQXJjaDY0TGliRGlycykpOwotKyAgICAgIFRyaXBsZUFsaWFz ZXMuYXBwZW5kKGJlZ2luKEFBcmNoNjRNdXNsVHJpcGxlcyksIGVuZChBQXJjaDY0TXVzbFRyaXBs ZXMpKTsKLSsgICAgICBCaWFyY2hMaWJEaXJzLmFwcGVuZChiZWdpbihBQXJjaDY0TGliRGlycyks IGVuZChBQXJjaDY0TGliRGlycykpOwotKyAgICAgIEJpYXJjaFRyaXBsZUFsaWFzZXMuYXBwZW5k KGJlZ2luKEFBcmNoNjRNdXNsVHJpcGxlcyksIGVuZChBQXJjaDY0TXVzbFRyaXBsZXMpKTsKLSsg ICAgICBicmVhazsKLSsgICAgY2FzZSBsbHZtOjpUcmlwbGU6OmFybToKLSsgICAgICBMaWJEaXJz LmFwcGVuZChiZWdpbihBUk1MaWJEaXJzKSwgZW5kKEFSTUxpYkRpcnMpKTsKLSsgICAgICBpZiAo VGFyZ2V0VHJpcGxlLmdldEVudmlyb25tZW50KCkgPT0gbGx2bTo6VHJpcGxlOjpNdXNsRUFCSUhG KSB7Ci0rICAgICAgICBUcmlwbGVBbGlhc2VzLmFwcGVuZChiZWdpbihBUk1IRk11c2xUcmlwbGVz KSwgZW5kKEFSTUhGTXVzbFRyaXBsZXMpKTsKLSsgICAgICB9IGVsc2UgewotKyAgICAgICAgVHJp cGxlQWxpYXNlcy5hcHBlbmQoYmVnaW4oQVJNTXVzbFRyaXBsZXMpLCBlbmQoQVJNTXVzbFRyaXBs ZXMpKTsKLSsgICAgICB9Ci0rICAgICAgYnJlYWs7Ci0rICAgIGNhc2UgbGx2bTo6VHJpcGxlOjp4 ODZfNjQ6Ci0rICAgICAgTGliRGlycy5hcHBlbmQoYmVnaW4oWDg2XzY0TGliRGlycyksIGVuZChY ODZfNjRMaWJEaXJzKSk7Ci0rICAgICAgVHJpcGxlQWxpYXNlcy5hcHBlbmQoYmVnaW4oWDg2XzY0 TXVzbFRyaXBsZXMpLCBlbmQoWDg2XzY0TXVzbFRyaXBsZXMpKTsKLSsgICAgICBCaWFyY2hMaWJE aXJzLmFwcGVuZChiZWdpbihYODZMaWJEaXJzKSwgZW5kKFg4NkxpYkRpcnMpKTsKLSsgICAgICBC aWFyY2hUcmlwbGVBbGlhc2VzLmFwcGVuZChiZWdpbihYODZNdXNsVHJpcGxlcyksIGVuZChYODZN dXNsVHJpcGxlcykpOwotKyAgICAgIGJyZWFrOwotKyAgICBjYXNlIGxsdm06OlRyaXBsZTo6eDg2 OgotKyAgICAgIExpYkRpcnMuYXBwZW5kKGJlZ2luKFg4NkxpYkRpcnMpLCBlbmQoWDg2TGliRGly cykpOwotKyAgICAgIFRyaXBsZUFsaWFzZXMuYXBwZW5kKGJlZ2luKFg4Nk11c2xUcmlwbGVzKSwg ZW5kKFg4Nk11c2xUcmlwbGVzKSk7Ci0rICAgICAgQmlhcmNoTGliRGlycy5hcHBlbmQoYmVnaW4o WDg2XzY0TGliRGlycyksIGVuZChYODZfNjRMaWJEaXJzKSk7Ci0rICAgICAgQmlhcmNoVHJpcGxl QWxpYXNlcy5hcHBlbmQoYmVnaW4oWDg2XzY0TXVzbFRyaXBsZXMpLCBlbmQoWDg2XzY0TXVzbFRy aXBsZXMpKTsKLSsgICAgICBicmVhazsKLSsgICAgY2FzZSBsbHZtOjpUcmlwbGU6Om1pcHM6Ci0r ICAgICAgTGliRGlycy5hcHBlbmQoYmVnaW4oTUlQU0xpYkRpcnMpLCBlbmQoTUlQU0xpYkRpcnMp KTsKLSsgICAgICBUcmlwbGVBbGlhc2VzLmFwcGVuZChiZWdpbihNSVBTTXVzbFRyaXBsZXMpLCBl bmQoTUlQU011c2xUcmlwbGVzKSk7Ci0rICAgICAgYnJlYWs7Ci0rICAgIGNhc2UgbGx2bTo6VHJp cGxlOjpwcGM6Ci0rICAgICAgTGliRGlycy5hcHBlbmQoYmVnaW4oUFBDTGliRGlycyksIGVuZChQ UENMaWJEaXJzKSk7Ci0rICAgICAgVHJpcGxlQWxpYXNlcy5hcHBlbmQoYmVnaW4oUFBDTXVzbFRy aXBsZXMpLCBlbmQoUFBDTXVzbFRyaXBsZXMpKTsKLSsgICAgICBCaWFyY2hMaWJEaXJzLmFwcGVu ZChiZWdpbihQUEM2NExpYkRpcnMpLCBlbmQoUFBDNjRMaWJEaXJzKSk7Ci0rICAgICAgQmlhcmNo VHJpcGxlQWxpYXNlcy5hcHBlbmQoYmVnaW4oUFBDNjRNdXNsVHJpcGxlcyksIGVuZChQUEM2NE11 c2xUcmlwbGVzKSk7Ci0rICAgICAgYnJlYWs7Ci0rICAgIGNhc2UgbGx2bTo6VHJpcGxlOjpwcGNs ZToKLSsgICAgICBMaWJEaXJzLmFwcGVuZChiZWdpbihQUENMRUxpYkRpcnMpLCBlbmQoUFBDTEVM aWJEaXJzKSk7Ci0rICAgICAgVHJpcGxlQWxpYXNlcy5hcHBlbmQoYmVnaW4oUFBDTEVNdXNsVHJp cGxlcyksIGVuZChQUENMRU11c2xUcmlwbGVzKSk7Ci0rICAgICAgQmlhcmNoTGliRGlycy5hcHBl bmQoYmVnaW4oUFBDNjRMRUxpYkRpcnMpLCBlbmQoUFBDNjRMRUxpYkRpcnMpKTsKLSsgICAgICBC aWFyY2hUcmlwbGVBbGlhc2VzLmFwcGVuZChiZWdpbihQUEM2NExFTXVzbFRyaXBsZXMpLCBlbmQo UFBDNjRMRU11c2xUcmlwbGVzKSk7Ci0rICAgICAgYnJlYWs7Ci0rICAgIGNhc2UgbGx2bTo6VHJp cGxlOjpwcGM2NDoKLSsgICAgICBMaWJEaXJzLmFwcGVuZChiZWdpbihQUEM2NExpYkRpcnMpLCBl bmQoUFBDNjRMaWJEaXJzKSk7Ci0rICAgICAgVHJpcGxlQWxpYXNlcy5hcHBlbmQoYmVnaW4oUFBD NjRNdXNsVHJpcGxlcyksIGVuZChQUEM2NE11c2xUcmlwbGVzKSk7Ci0rICAgICAgQmlhcmNoTGli RGlycy5hcHBlbmQoYmVnaW4oUFBDTGliRGlycyksIGVuZChQUENMaWJEaXJzKSk7Ci0rICAgICAg QmlhcmNoVHJpcGxlQWxpYXNlcy5hcHBlbmQoYmVnaW4oUFBDTXVzbFRyaXBsZXMpLCBlbmQoUFBD TXVzbFRyaXBsZXMpKTsKLSsgICAgICBicmVhazsKLSsgICAgY2FzZSBsbHZtOjpUcmlwbGU6OnBw YzY0bGU6Ci0rICAgICAgTGliRGlycy5hcHBlbmQoYmVnaW4oUFBDNjRMRUxpYkRpcnMpLCBlbmQo UFBDNjRMRUxpYkRpcnMpKTsKLSsgICAgICBUcmlwbGVBbGlhc2VzLmFwcGVuZChiZWdpbihQUEM2 NExFTXVzbFRyaXBsZXMpLCBlbmQoUFBDNjRMRU11c2xUcmlwbGVzKSk7Ci0rICAgICAgQmlhcmNo TGliRGlycy5hcHBlbmQoYmVnaW4oUFBDTEVMaWJEaXJzKSwgZW5kKFBQQ0xFTGliRGlycykpOwot KyAgICAgIEJpYXJjaFRyaXBsZUFsaWFzZXMuYXBwZW5kKGJlZ2luKFBQQ0xFTXVzbFRyaXBsZXMp LCBlbmQoUFBDTEVNdXNsVHJpcGxlcykpOwotKyAgICAgIGJyZWFrOwotKyAgICBkZWZhdWx0Ogot KyAgICAgIGJyZWFrOwotKyAgICB9Ci0rICAgIFRyaXBsZUFsaWFzZXMucHVzaF9iYWNrKFRhcmdl dFRyaXBsZS5zdHIoKSk7Ci0rICAgIGlmIChUYXJnZXRUcmlwbGUuc3RyKCkgIT0gQmlhcmNoVHJp cGxlLnN0cigpKQotKyAgICAgIEJpYXJjaFRyaXBsZUFsaWFzZXMucHVzaF9iYWNrKEJpYXJjaFRy aXBsZS5zdHIoKSk7Ci0rICAgIHJldHVybjsKLSsgIH0KLSsKLSAgIC8vIEFuZHJvaWQgdGFyZ2V0 cyBzaG91bGQgbm90IHVzZSBHTlUvTGludXggdG9vbHMgb3IgbGlicmFyaWVzLgotICAgaWYgKFRh cmdldFRyaXBsZS5pc0FuZHJvaWQoKSkgewotICAgICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3Qg QUFyY2g2NEFuZHJvaWRUcmlwbGVzW10gPSB7CmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0xMi9w YXRjaGVzL2NsYW5nLTAwMy1wcGM2NC1keW5hbWljLWxpbmtlci1wYXRoLnBhdGNoIGIvc3JjcGtn cy9sbHZtMTIvcGF0Y2hlcy9jbGFuZy0wMDMtcHBjNjQtZHluYW1pYy1saW5rZXItcGF0aC5wYXRj aApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGFkNjQxMmQxZTZjLi4wMDAwMDAwMDAw MDAKLS0tIGEvc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9jbGFuZy0wMDMtcHBjNjQtZHluYW1pYy1s aW5rZXItcGF0aC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDEzICswLDAgQEAKLS0tLSBhL2Ns YW5nL2xpYi9Ecml2ZXIvVG9vbENoYWlucy9MaW51eC5jcHAKLSsrKyBiL2NsYW5nL2xpYi9Ecml2 ZXIvVG9vbENoYWlucy9MaW51eC5jcHAKLUBAIC01MDQsMTAgKzUwNCw2IEBAIHN0ZDo6c3RyaW5n IExpbnV4OjpnZXREeW5hbWljTGlua2VyKGNvbnN0IEFyZ0xpc3QgJkFyZ3MpIGNvbnN0IHsKLSAg ICAgTG9hZGVyID0gImxkLnNvLjEiOwotICAgICBicmVhazsKLSAgIGNhc2UgbGx2bTo6VHJpcGxl OjpwcGM2NDoKLS0gICAgTGliRGlyID0gImxpYjY0IjsKLS0gICAgTG9hZGVyID0KLS0gICAgICAg ICh0b29sczo6cHBjOjpoYXNQUENBYmlBcmcoQXJncywgImVsZnYyIikpID8gImxkNjQuc28uMiIg OiAibGQ2NC5zby4xIjsKLS0gICAgYnJlYWs7Ci0gICBjYXNlIGxsdm06OlRyaXBsZTo6cHBjNjRs ZToKLSAgICAgTGliRGlyID0gImxpYjY0IjsKLSAgICAgTG9hZGVyID0KZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MvbGx2bTEyL3BhdGNoZXMvY2xhbmctMDA0LXBwYzY0LW11c2wtZWxmdjIucGF0Y2ggYi9z cmNwa2dzL2xsdm0xMi9wYXRjaGVzL2NsYW5nLTAwNC1wcGM2NC1tdXNsLWVsZnYyLnBhdGNoCmRl bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyMWZjODAwM2M1ZjEuLjAwMDAwMDAwMDAwMAot LS0gYS9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2NsYW5nLTAwNC1wcGM2NC1tdXNsLWVsZnYyLnBh dGNoCisrKyAvZGV2L251bGwKQEAgLTEsNDggKzAsMCBAQAotLS0tIGEvY2xhbmcvbGliL0Jhc2lj L1RhcmdldHMvUFBDLmgKLSsrKyBiL2NsYW5nL2xpYi9CYXNpYy9UYXJnZXRzL1BQQy5oCi1AQCAt NDE1LDExICs0MTUsMTAgQEAgcHVibGljOgotICAgICAgIExvbmdEb3VibGVGb3JtYXQgPSAmbGx2 bTo6QVBGbG9hdDo6SUVFRWRvdWJsZSgpOwotICAgICB9IGVsc2UgaWYgKChUcmlwbGUuZ2V0QXJj aCgpID09IGxsdm06OlRyaXBsZTo6cHBjNjRsZSkpIHsKLSAgICAgICBEYXRhTGF5b3V0ID0gImUt bTplLWk2NDo2NC1uMzI6NjQiOwotLSAgICAgIEFCSSA9ICJlbGZ2MiI7Ci0gICAgIH0gZWxzZSB7 Ci0gICAgICAgRGF0YUxheW91dCA9ICJFLW06ZS1pNjQ6NjQtbjMyOjY0IjsKLS0gICAgICBBQkkg PSAiZWxmdjEiOwotICAgICB9Ci0rICAgIEFCSSA9ICJlbGZ2MiI7Ci0gCi0gICAgIGlmIChUcmlw bGUuaXNPU0ZyZWVCU0QoKSB8fCBUcmlwbGUuaXNPU09wZW5CU0QoKSB8fCBUcmlwbGUuaXNNdXNs KCkpIHsKLSAgICAgICBMb25nRG91YmxlV2lkdGggPSBMb25nRG91YmxlQWxpZ24gPSA2NDsKLS0t LSBhL2NsYW5nL2xpYi9Db2RlR2VuL1RhcmdldEluZm8uY3BwCi0rKysgYi9jbGFuZy9saWIvQ29k ZUdlbi9UYXJnZXRJbmZvLmNwcAotQEAgLTEwOTI3LDkgKzEwOTI3LDkgQEAgY29uc3QgVGFyZ2V0 Q29kZUdlbkluZm8gJkNvZGVHZW5Nb2R1bGU6OmdldFRhcmdldENvZGVHZW5JbmZvKCkgewotICAg ICAgIHJldHVybiBTZXRDR0luZm8obmV3IEFJWFRhcmdldENvZGVHZW5JbmZvKFR5cGVzLCAvKklz NjRCaXQqLyB0cnVlKSk7Ci0gCi0gICAgIGlmIChUcmlwbGUuaXNPU0JpbkZvcm1hdEVMRigpKSB7 Ci0tICAgICAgUFBDNjRfU1ZSNF9BQklJbmZvOjpBQklLaW5kIEtpbmQgPSBQUEM2NF9TVlI0X0FC SUluZm86OkVMRnYxOwotLSAgICAgIGlmIChnZXRUYXJnZXQoKS5nZXRBQkkoKSA9PSAiZWxmdjIi KQotLSAgICAgICAgS2luZCA9IFBQQzY0X1NWUjRfQUJJSW5mbzo6RUxGdjI7Ci0rICAgICAgUFBD NjRfU1ZSNF9BQklJbmZvOjpBQklLaW5kIEtpbmQgPSBQUEM2NF9TVlI0X0FCSUluZm86OkVMRnYy OwotKyAgICAgIGlmIChnZXRUYXJnZXQoKS5nZXRBQkkoKSA9PSAiZWxmdjEiKQotKyAgICAgICAg S2luZCA9IFBQQzY0X1NWUjRfQUJJSW5mbzo6RUxGdjE7Ci0gICAgICAgYm9vbCBJc1NvZnRGbG9h dCA9IENvZGVHZW5PcHRzLkZsb2F0QUJJID09ICJzb2Z0IjsKLSAKLSAgICAgICByZXR1cm4gU2V0 Q0dJbmZvKAotLS0tIGEvY2xhbmcvbGliL0RyaXZlci9Ub29sQ2hhaW5zL0NsYW5nLmNwcAotKysr IGIvY2xhbmcvbGliL0RyaXZlci9Ub29sQ2hhaW5zL0NsYW5nLmNwcAotQEAgLTE5MjAsMTQgKzE5 MjAsNyBAQCB2b2lkIENsYW5nOjpBZGRQUENUYXJnZXRBcmdzKGNvbnN0IEFyZ0xpc3QgJkFyZ3Ms Ci0gICBjb25zdCBsbHZtOjpUcmlwbGUgJlQgPSBnZXRUb29sQ2hhaW4oKS5nZXRUcmlwbGUoKTsK LSAgIGlmIChULmlzT1NCaW5Gb3JtYXRFTEYoKSkgewotICAgICBzd2l0Y2ggKGdldFRvb2xDaGFp bigpLmdldEFyY2goKSkgewotLSAgICBjYXNlIGxsdm06OlRyaXBsZTo6cHBjNjQ6IHsKLS0gICAg ICBpZiAoKFQuaXNPU0ZyZWVCU0QoKSAmJiBULmdldE9TTWFqb3JWZXJzaW9uKCkgPj0gMTMpIHx8 Ci0tICAgICAgICAgIFQuaXNPU09wZW5CU0QoKSB8fCBULmlzTXVzbCgpKQotLSAgICAgICAgQUJJ TmFtZSA9ICJlbGZ2MiI7Ci0tICAgICAgZWxzZQotLSAgICAgICAgQUJJTmFtZSA9ICJlbGZ2MSI7 Ci0tICAgICAgYnJlYWs7Ci0tICAgIH0KLSsgICAgY2FzZSBsbHZtOjpUcmlwbGU6OnBwYzY0Ogot ICAgICBjYXNlIGxsdm06OlRyaXBsZTo6cHBjNjRsZToKLSAgICAgICBBQklOYW1lID0gImVsZnYy IjsKLSAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvY29t cGlsZXItcnQtYWFyY2g2NC11Y29udGV4dC5wYXRjaCBiL3NyY3BrZ3MvbGx2bTEyL3BhdGNoZXMv Y29tcGlsZXItcnQtYWFyY2g2NC11Y29udGV4dC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggODkzYzA1OWQ3YjhkLi4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9sbHZtMTIv cGF0Y2hlcy9jb21waWxlci1ydC1hYXJjaDY0LXVjb250ZXh0LnBhdGNoCisrKyAvZGV2L251bGwK QEAgLTEsMTEgKzAsMCBAQAotLS0tIGEvY29tcGlsZXItcnQvbGliL3Nhbml0aXplcl9jb21tb24v c2FuaXRpemVyX2xpbnV4LmNwcC5vcmlnCi0rKysgYi9jb21waWxlci1ydC9saWIvc2FuaXRpemVy X2NvbW1vbi9zYW5pdGl6ZXJfbGludXguY3BwCi1AQCAtMTc5OSw3ICsxNzk5LDcgQEAKLSAKLSBz dGF0aWMgYm9vbCBBYXJjaDY0R2V0RVNSKHVjb250ZXh0X3QgKnVjb250ZXh0LCB1NjQgKmVzcikg ewotICAgc3RhdGljIGNvbnN0IHUzMiBrRXNyTWFnaWMgPSAweDQ1NTM1MjAxOwotLSAgdTggKmF1 eCA9IHVjb250ZXh0LT51Y19tY29udGV4dC5fX3Jlc2VydmVkOwotKyAgdTggKmF1eCA9IHJlaW50 ZXJwcmV0X2Nhc3Q8dTggKj4odWNvbnRleHQtPnVjX21jb250ZXh0Ll9fcmVzZXJ2ZWQpOwotICAg d2hpbGUgKHRydWUpIHsKLSAgICAgX2FhcmNoNjRfY3R4ICpjdHggPSAoX2FhcmNoNjRfY3R4ICop YXV4OwotICAgICBpZiAoY3R4LT5zaXplID09IDApIGJyZWFrOwpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9sbHZtMTIvcGF0Y2hlcy9jb21waWxlci1ydC1zYW5pdGl6ZXItcHBjNjQtbXVzbC5wYXRjaCBi L3NyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvY29tcGlsZXItcnQtc2FuaXRpemVyLXBwYzY0LW11c2wu cGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM1ZjE2ZDI0ZjM0MC4uMDAwMDAw MDAwMDAwCi0tLSBhL3NyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvY29tcGlsZXItcnQtc2FuaXRpemVy LXBwYzY0LW11c2wucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwzNSArMCwwIEBACi0tLS0gYS9j b21waWxlci1ydC9saWIvc2FuaXRpemVyX2NvbW1vbi9zYW5pdGl6ZXJfbGludXguY3BwCi0rKysg Yi9jb21waWxlci1ydC9saWIvc2FuaXRpemVyX2NvbW1vbi9zYW5pdGl6ZXJfbGludXguY3BwCi1A QCAtNzQsNiArNzQsMTAgQEAKLSAjaW5jbHVkZSA8c3lzL3V0c25hbWUuaD4KLSAjZW5kaWYKLSAK LSsjaWYgU0FOSVRJWkVSX0xJTlVYICYmIGRlZmluZWQoX19wb3dlcnBjX18pCi0rI2luY2x1ZGUg PGFzbS9wdHJhY2UuaD4KLSsjZW5kaWYKLSsKLSAjaWYgU0FOSVRJWkVSX0xJTlVYICYmICFTQU5J VElaRVJfQU5EUk9JRAotICNpbmNsdWRlIDxzeXMvcGVyc29uYWxpdHkuaD4KLSAjZW5kaWYKLS0t LSBhL2NvbXBpbGVyLXJ0L2xpYi9zYW5pdGl6ZXJfY29tbW9uL3Nhbml0aXplcl9wbGF0Zm9ybV9s aW1pdHNfcG9zaXguY3BwCi0rKysgYi9jb21waWxlci1ydC9saWIvc2FuaXRpemVyX2NvbW1vbi9z YW5pdGl6ZXJfcGxhdGZvcm1fbGltaXRzX3Bvc2l4LmNwcAotQEAgLTkyLDcgKzkyLDcgQEAKLSAj IGluY2x1ZGUgPHV0aW1lLmg+Ci0gIyBpbmNsdWRlIDxzeXMvcHRyYWNlLmg+Ci0gI2lmIGRlZmlu ZWQoX19taXBzNjQpIHx8IGRlZmluZWQoX19hYXJjaDY0X18pIHx8IGRlZmluZWQoX19hcm1fXykg fHwgXAotLSAgICBTQU5JVElaRVJfUklTQ1Y2NAotKyAgICBkZWZpbmVkKF9fcG93ZXJwY19fKSB8 fCBTQU5JVElaRVJfUklTQ1Y2NAotICMgIGluY2x1ZGUgPGFzbS9wdHJhY2UuaD4KLSAjICBpZmRl ZiBfX2FybV9fCi0gdHlwZWRlZiBzdHJ1Y3QgdXNlcl9mcHJlZ3MgZWxmX2ZwcmVnc2V0X3Q7Ci0t LS0gYS9jb21waWxlci1ydC9saWIvc2FuaXRpemVyX2NvbW1vbi9zYW5pdGl6ZXJfc3RvcHRoZXdv cmxkX2xpbnV4X2xpYmNkZXAuY3BwCi0rKysgYi9jb21waWxlci1ydC9saWIvc2FuaXRpemVyX2Nv bW1vbi9zYW5pdGl6ZXJfc3RvcHRoZXdvcmxkX2xpbnV4X2xpYmNkZXAuY3BwCi1AQCAtMzEsNyAr MzEsNyBAQAotICNpbmNsdWRlIDxzeXMvdHlwZXMuaD4gLy8gZm9yIHBpZF90Ci0gI2luY2x1ZGUg PHN5cy91aW8uaD4gLy8gZm9yIGlvdmVjCi0gI2luY2x1ZGUgPGVsZi5oPiAvLyBmb3IgTlRfUFJT VEFUVVMKLS0jaWYgKGRlZmluZWQoX19hYXJjaDY0X18pIHx8IFNBTklUSVpFUl9SSVNDVjY0KSAm JiAhU0FOSVRJWkVSX0FORFJPSUQKLSsjaWYgKGRlZmluZWQoX19hYXJjaDY0X18pIHx8IGRlZmlu ZWQoX19wb3dlcnBjX18pIHx8IFNBTklUSVpFUl9SSVNDVjY0KSAmJiAhU0FOSVRJWkVSX0FORFJP SUQKLSAvLyBHTElCQyAyLjIwKyBzeXMvdXNlciBkb2VzIG5vdCBpbmNsdWRlIGFzbS9wdHJhY2Uu aAotICMgaW5jbHVkZSA8YXNtL3B0cmFjZS5oPgotICNlbmRpZgpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9sbHZtMTIvcGF0Y2hlcy9jb21waWxlci1ydC1zaXplX3QucGF0Y2ggYi9zcmNwa2dzL2xsdm0x Mi9wYXRjaGVzL2NvbXBpbGVyLXJ0LXNpemVfdC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMmM2MzA2M2E1ZTllLi4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9sbHZtMTIv cGF0Y2hlcy9jb21waWxlci1ydC1zaXplX3QucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxMCAr MCwwIEBACi0tLS0gYS9jb21waWxlci1ydC9saWIvZnV6emVyL0Z1enplckludGVyY2VwdG9ycy5j cHAub3JpZwotKysrIGIvY29tcGlsZXItcnQvbGliL2Z1enplci9GdXp6ZXJJbnRlcmNlcHRvcnMu Y3BwCi1AQCAtMjUsNiArMjUsNyBAQAotICAgfQotIAotICNpbmNsdWRlIDxjYXNzZXJ0PgotKyNp bmNsdWRlIDxjc3RkZGVmPgotICNpbmNsdWRlIDxjc3RkaW50PgotICNpbmNsdWRlIDxkbGZjbi5o PiAvLyBmb3IgZGxzeW0oKQotIApkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9j b21waWxlci1ydC14cmF5LXBwYzY0LW11c2wucGF0Y2ggYi9zcmNwa2dzL2xsdm0xMi9wYXRjaGVz L2NvbXBpbGVyLXJ0LXhyYXktcHBjNjQtbXVzbC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggZDBiNjFjODBjODk3Li4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9sbHZtMTIv cGF0Y2hlcy9jb21waWxlci1ydC14cmF5LXBwYzY0LW11c2wucGF0Y2gKKysrIC9kZXYvbnVsbApA QCAtMSw2MiArMCwwIEBACi0tLS0gYS9jb21waWxlci1ydC9saWIveHJheS94cmF5X3Bvd2VycGM2 NC5pbmMKLSsrKyBiL2NvbXBpbGVyLXJ0L2xpYi94cmF5L3hyYXlfcG93ZXJwYzY0LmluYwotQEAg LTEyLDcgKzEyLDEzIEBACi0gCi0gI2luY2x1ZGUgPGNzdGRpbnQ+Ci0gI2luY2x1ZGUgPG11dGV4 PgotKyNpZmRlZiBfX0dMSUJDX18KLSAjaW5jbHVkZSA8c3lzL3BsYXRmb3JtL3BwYy5oPgotKyNl bHNlCi0rI2luY2x1ZGUgPGNjdHlwZT4KLSsjaW5jbHVkZSA8Y3N0cmluZz4KLSsjaW5jbHVkZSA8 Y3N0ZGxpYj4KLSsjZW5kaWYKLSAKLSAjaW5jbHVkZSAieHJheV9kZWZzLmgiCi0gCi1AQCAtMjAs MTMgKzI2LDQ1IEBAIG5hbWVzcGFjZSBfX3hyYXkgewotIAotIEFMV0FZU19JTkxJTkUgdWludDY0 X3QgcmVhZFRTQyh1aW50OF90ICZDUFUpIFhSQVlfTkVWRVJfSU5TVFJVTUVOVCB7Ci0gICBDUFUg PSAwOwotKyNpZmRlZiBfX0dMSUJDX18KLSAgIHJldHVybiBfX3BwY19nZXRfdGltZWJhc2UoKTsK LSsjZWxzZQotKyAgcmV0dXJuIF9fYnVpbHRpbl9wcGNfZ2V0X3RpbWViYXNlKCk7Ci0rI2VuZGlm Ci0gfQotIAotIGlubGluZSB1aW50NjRfdCBnZXRUU0NGcmVxdWVuY3koKSBYUkFZX05FVkVSX0lO U1RSVU1FTlQgewotICAgc3RhdGljIHN0ZDo6bXV0ZXggTTsKLSAgIHN0ZDo6bG9ja19ndWFyZDxz dGQ6Om11dGV4PiBHdWFyZChNKTsKLSsjaWZkZWYgX19HTElCQ19fCi0gICByZXR1cm4gX19wcGNf Z2V0X3RpbWViYXNlX2ZyZXEoKTsKLSsjZWxzZQotKyAgLyogRklYTUU6IGEgbGVzcyBkaXJ0eSBp bXBsZW1lbnRhdGlvbj8gKi8KLSsgIHN0YXRpYyB1aW50NjRfdCBiYXNlOwotKyAgaWYgKCFiYXNl KSB7Ci0rICAgIEZJTEUgKmYgPSBmb3BlbigiL3Byb2MvY3B1aW5mbyIsICJyYiIpOwotKyAgICBp ZiAoZikgewotKyAgICAgIHNzaXplX3QgbnI7Ci0rICAgICAgLyogdmlydHVhbGx5IGFsd2F5cyBi aWcgZW5vdWdoIHRvIGhvbGQgdGhlIGxpbmUgKi8KLSsgICAgICBjaGFyIGJ1Zls1MTJdOwotKyAg ICAgIHdoaWxlIChmZ2V0cyhidWYsIHNpemVvZihidWYpLCBmKSkgewotKyAgICAgICAgY2hhciAq cmV0ID0gc3Ryc3RyKGJ1ZiwgInRpbWViYXNlIik7Ci0rICAgICAgICBpZiAoIXJldCkgewotKyAg ICAgICAgICBjb250aW51ZTsKLSsgICAgICAgIH0KLSsgICAgICAgIHJldCArPSBzaXplb2YoInRp bWViYXNlIikgLSAxOwotKyAgICAgICAgcmV0ID0gc3RyY2hyKHJldCwgJzonKTsKLSsgICAgICAg IGlmICghcmV0KSB7Ci0rICAgICAgICAgIGNvbnRpbnVlOwotKyAgICAgICAgfQotKyAgICAgICAg YmFzZSA9IHN0cnRvdWwocmV0ICsgMSwgbnVsbHB0ciwgMTApOwotKyAgICAgICAgYnJlYWs7Ci0r ICAgICAgfQotKyAgICAgIGZjbG9zZShmKTsKLSsgICAgfQotKyAgfQotKyAgcmV0dXJuIGJhc2U7 Ci0rI2VuZGlmCi0gfQotIAotIGlubGluZSBib29sIHByb2JlUmVxdWlyZWRDUFVGZWF0dXJlcygp IFhSQVlfTkVWRVJfSU5TVFJVTUVOVCB7CmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0xMi9wYXRj aGVzL2xpYmN4eC1tdXNsLnBhdGNoIGIvc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9saWJjeHgtbXVz bC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmJkMzFmZmMyY2IxLi4wMDAw MDAwMDAwMDAKLS0tIGEvc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9saWJjeHgtbXVzbC5wYXRjaAor KysgL2Rldi9udWxsCkBAIC0xLDI2ICswLDAgQEAKLS0tLSBhL2xpYmN4eC9pbmNsdWRlL2xvY2Fs ZQotKysrIGIvbGliY3h4L2luY2x1ZGUvbG9jYWxlCi1AQCAtNzQyLDcgKzc0MiwxMSBAQCBfX251 bV9nZXRfc2lnbmVkX2ludGVncmFsKGNvbnN0IGNoYXIqIF9fYSwgY29uc3QgY2hhciogX19hX2Vu ZCwKLSAgICAgICAgIHR5cGVuYW1lIHJlbW92ZV9yZWZlcmVuY2U8ZGVjbHR5cGUoZXJybm8pPjo6 dHlwZSBfX3NhdmVfZXJybm8gPSBlcnJubzsKLSAgICAgICAgIGVycm5vID0gMDsKLSAgICAgICAg IGNoYXIgKl9fcDI7Ci0rI2lmIGRlZmluZWQoX19saW51eF9fKSAmJiAhZGVmaW5lZChfX0dMSUJD X18pCi0rICAgICAgICBsb25nIGxvbmcgX19sbCA9IHN0cnRvbGwoX19hLCAmX19wMiwgX19iYXNl KTsKLSsjZWxzZQotICAgICAgICAgbG9uZyBsb25nIF9fbGwgPSBzdHJ0b2xsX2woX19hLCAmX19w MiwgX19iYXNlLCBfTElCQ1BQX0dFVF9DX0xPQ0FMRSk7Ci0rI2VuZGlmCi0gICAgICAgICB0eXBl bmFtZSByZW1vdmVfcmVmZXJlbmNlPGRlY2x0eXBlKGVycm5vKT46OnR5cGUgX19jdXJyZW50X2Vy cm5vID0gZXJybm87Ci0gICAgICAgICBpZiAoX19jdXJyZW50X2Vycm5vID09IDApCi0gICAgICAg ICAgICAgZXJybm8gPSBfX3NhdmVfZXJybm87Ci1AQCAtNzgyLDcgKzc4NiwxMSBAQCBfX251bV9n ZXRfdW5zaWduZWRfaW50ZWdyYWwoY29uc3QgY2hhciogX19hLCBjb25zdCBjaGFyKiBfX2FfZW5k LAotICAgICAgICAgdHlwZW5hbWUgcmVtb3ZlX3JlZmVyZW5jZTxkZWNsdHlwZShlcnJubyk+Ojp0 eXBlIF9fc2F2ZV9lcnJubyA9IGVycm5vOwotICAgICAgICAgZXJybm8gPSAwOwotICAgICAgICAg Y2hhciAqX19wMjsKLSsjaWYgZGVmaW5lZChfX2xpbnV4X18pICYmICFkZWZpbmVkKF9fR0xJQkNf XykKLSsgICAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2xsID0gc3RydG91bGwoX19hLCAmX19w MiwgX19iYXNlKTsKLSsjZWxzZQotICAgICAgICAgdW5zaWduZWQgbG9uZyBsb25nIF9fbGwgPSBz dHJ0b3VsbF9sKF9fYSwgJl9fcDIsIF9fYmFzZSwgX0xJQkNQUF9HRVRfQ19MT0NBTEUpOwotKyNl bmRpZgotICAgICAgICAgdHlwZW5hbWUgcmVtb3ZlX3JlZmVyZW5jZTxkZWNsdHlwZShlcnJubyk+ Ojp0eXBlIF9fY3VycmVudF9lcnJubyA9IGVycm5vOwotICAgICAgICAgaWYgKF9fY3VycmVudF9l cnJubyA9PSAwKQotICAgICAgICAgICAgIGVycm5vID0gX19zYXZlX2Vycm5vOwpkaWZmIC0tZ2l0 IGEvc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9saWJjeHgtcHBjLnBhdGNoIGIvc3JjcGtncy9sbHZt MTIvcGF0Y2hlcy9saWJjeHgtcHBjLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCA3YTkyZjgwMDRlMWMuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2xsdm0xMi9wYXRjaGVz L2xpYmN4eC1wcGMucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwyMiArMCwwIEBACi1UaGlzIGVu c3VyZXMgYGlzX2llYzU1OWAgaXMgZGVmaW5lZCBjb3JyZWN0bHkgdW5kZXIgYWxsIGxvbmcgZG91 YmxlIEFCSXMsCi1pbmNsdWRpbmcgbXVzbCBhbmQgaXRzIDY0LWJpdCBsb25nIGRvdWJsZS4gQWxz bywgYF9fcHBjX19gIG9yIGBfX3BwYzY0X19gCi1pcyBub3QgZGVmaW5lZCBvbiBnY2MuCi0KLS0t LSBhL2xpYmN4eC9pbmNsdWRlL2xpbWl0cwotKysrIGIvbGliY3h4L2luY2x1ZGUvbGltaXRzCi1A QCAtNDI2LDggKzQyNiwxNCBAQCBwcm90ZWN0ZWQ6Ci0gICAgIF9MSUJDUFBfSU5MSU5FX1ZJU0lC SUxJVFkgc3RhdGljIF9MSUJDUFBfQ09OU1RFWFBSIHR5cGUgc2lnbmFsaW5nX05hTigpIF9OT0VY Q0VQVCB7cmV0dXJuIF9fYnVpbHRpbl9uYW5zbCgiIik7fQotICAgICBfTElCQ1BQX0lOTElORV9W SVNJQklMSVRZIHN0YXRpYyBfTElCQ1BQX0NPTlNURVhQUiB0eXBlIGRlbm9ybV9taW4oKSBfTk9F WENFUFQge3JldHVybiBfX0xEQkxfREVOT1JNX01JTl9fO30KLSAKLS0jaWYgKGRlZmluZWQoX19w cGNfXykgfHwgZGVmaW5lZChfX3BwYzY0X18pKQotKyNpZiBkZWZpbmVkKF9fcG93ZXJwY19fKSB8 fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rI2lmIChfX0xEQkxfTUFYX0VYUF9fID4gX19EQkxf TUFYX0VYUF9fKSB8fCAoX19MREJMX01BTlRfRElHX18gPT0gX19EQkxfTUFOVF9ESUdfXykKLSsg ICAgLyogSUVFRSA3NTQgcXVhZHJ1cGxlIG9yIGRvdWJsZSBwcmVjaXNpb24gKi8KLSsgICAgc3Rh dGljIF9MSUJDUFBfQ09OU1RFWFBSIGNvbnN0IGJvb2wgaXNfaWVjNTU5ID0gdHJ1ZTsKLSsjZWxz ZQotKyAgICAvKiAxMjgtYml0IElCTSBkb3VibGUtZG91YmxlICovCi0gICAgIHN0YXRpYyBfTElC Q1BQX0NPTlNURVhQUiBjb25zdCBib29sIGlzX2llYzU1OSA9IGZhbHNlOwotKyNlbmRpZgotICNl bHNlCi0gICAgIHN0YXRpYyBfTElCQ1BQX0NPTlNURVhQUiBjb25zdCBib29sIGlzX2llYzU1OSA9 IHRydWU7Ci0gI2VuZGlmCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2xpYmN4 eC1zc3Atbm9uc2hhcmVkLnBhdGNoIGIvc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9saWJjeHgtc3Nw LW5vbnNoYXJlZC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzAyOTJiZWIy ZmNkLi4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9saWJjeHgtc3Nw LW5vbnNoYXJlZC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDExICswLDAgQEAKLS0tLSBhL2xp YmN4eC9DTWFrZUxpc3RzLnR4dAotKysrIGIvbGliY3h4L0NNYWtlTGlzdHMudHh0Ci1AQCAtNzY5 LDYgKzc2OSw4IEBAIGZ1bmN0aW9uKGN4eF9saW5rX3N5c3RlbV9saWJyYXJpZXMgdGFyZ2V0KQot ICAgICB0YXJnZXRfbGlua19saWJyYXJpZXMoJHt0YXJnZXR9IFBSSVZBVEUgYXRvbWljKQotICAg ZW5kaWYoKQotIAotKyNzc3AgIHRhcmdldF9saW5rX2xpYnJhcmllcygke3RhcmdldH0gUFJJVkFU RSBzc3Bfbm9uc2hhcmVkKQotKwotICAgaWYgKE1JTkdXKQotICAgICB0YXJnZXRfbGlua19saWJy YXJpZXMoJHt0YXJnZXR9IFBSSVZBVEUgIiR7TUlOR1dfTElCUkFSSUVTfSIpCi0gICBlbmRpZigp CmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2xpYmN4eGFiaS1kbC5wYXRjaCBi L3NyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvbGliY3h4YWJpLWRsLnBhdGNoCmRlbGV0ZWQgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAzYTE1ZjlkYjhjOTguLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dz L2xsdm0xMi9wYXRjaGVzL2xpYmN4eGFiaS1kbC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDI1 ICswLDAgQEAKLUFsc28gbGluayB0byAtbGRsIHRvIHByZXZlbnQgdW5kZWZpbmVkIHJlZmVyZW5j ZXMuCi0KLS0tLSBhL2xpYmN4eGFiaS9zcmMvQ01ha2VMaXN0cy50eHQKLSsrKyBiL2xpYmN4eGFi aS9zcmMvQ01ha2VMaXN0cy50eHQKLUBAIC03Myw2ICs3Myw3IEBACi0gICBlbmRpZigpCi0gCi0g ICBhZGRfbGlicmFyeV9mbGFnc19pZihMSUJDWFhBQklfSEFTX0NfTElCIGMpCi0rICBhZGRfbGli cmFyeV9mbGFnc19pZihMSUJDWFhBQklfSEFTX0NfTElCIGRsKQotIGVuZGlmKCkKLSAKLSBpZiAo TElCQ1hYQUJJX1VTRV9MTFZNX1VOV0lOREVSKQotLS0tIGEvbGliY3h4L0NNYWtlTGlzdHMudHh0 Ci0rKysgYi9saWJjeHgvQ01ha2VMaXN0cy50eHQKLUBAIC03NDUsNiArNzQ1LDEwIEBACi0gICAg IHRhcmdldF9saW5rX2xpYnJhcmllcygke3RhcmdldH0gUFJJVkFURSBtKQotICAgZW5kaWYoKQot IAotKyAgaWYgKExJQkNYWF9IQVNfQ19MSUIpCi0rICAgIHRhcmdldF9saW5rX2xpYnJhcmllcygk e3RhcmdldH0gUFJJVkFURSBkbCkKLSsgIGVuZGlmKCkKLSsKLSAgIGlmIChMSUJDWFhfSEFTX1JU X0xJQikKLSAgICAgdGFyZ2V0X2xpbmtfbGlicmFyaWVzKCR7dGFyZ2V0fSBQUklWQVRFIHJ0KQot ICAgZW5kaWYoKQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9saWJ1bndpbmQt cHBjMzIucGF0Y2ggYi9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2xpYnVud2luZC1wcGMzMi5wYXRj aApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzRhYTc1NzZlY2Y5Li4wMDAwMDAwMDAw MDAKLS0tIGEvc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9saWJ1bndpbmQtcHBjMzIucGF0Y2gKKysr IC9kZXYvbnVsbApAQCAtMSw2MyArMCwwIEBACi1UaGlzIGZpeGVzIGJ1aWxkIGF0IGxlYXN0IHdp dGggZ2NjOSB3aGljaCBkb2VzIG5vdCBkZWZpbmUgYF9fcHBjX19gLgotCi0tLS0gYS9saWJ1bndp bmQvaW5jbHVkZS9fX2xpYnVud2luZF9jb25maWcuaAotKysrIGIvbGlidW53aW5kL2luY2x1ZGUv X19saWJ1bndpbmRfY29uZmlnLmgKLUBAIC00OSw3ICs0OSw3IEBACi0gIyAgZGVmaW5lIF9MSUJV TldJTkRfQ09OVEVYVF9TSVpFIDE2NwotICMgIGRlZmluZSBfTElCVU5XSU5EX0NVUlNPUl9TSVpF IDE3OQotICMgIGRlZmluZSBfTElCVU5XSU5EX0hJR0hFU1RfRFdBUkZfUkVHSVNURVIgX0xJQlVO V0lORF9ISUdIRVNUX0RXQVJGX1JFR0lTVEVSX1BQQzY0Ci0tIyBlbGlmIGRlZmluZWQoX19wcGNf XykKLSsjIGVsaWYgZGVmaW5lZChfX3Bvd2VycGNfXykKLSAjICBkZWZpbmUgX0xJQlVOV0lORF9U QVJHRVRfUFBDIDEKLSAjICBkZWZpbmUgX0xJQlVOV0lORF9DT05URVhUX1NJWkUgMTE3Ci0gIyAg ZGVmaW5lIF9MSUJVTldJTkRfQ1VSU09SX1NJWkUgMTI0Ci0tLS0gYS9saWJ1bndpbmQvc3JjL1Vu d2luZFJlZ2lzdGVyc1Jlc3RvcmUuUwotKysrIGIvbGlidW53aW5kL3NyYy9VbndpbmRSZWdpc3Rl cnNSZXN0b3JlLlMKLUBAIC0zOTIsNyArMzkyLDcgQEAgTG5vdmVjOgotICAgUFBDNjRfTFIoMykK LSAgIGJjdHIKLSAKLS0jZWxpZiBkZWZpbmVkKF9fcHBjX18pCi0rI2VsaWYgZGVmaW5lZChfX3Bv d2VycGNfXykKLSAKLSBERUZJTkVfTElCVU5XSU5EX0ZVTkNUSU9OKF9aTjlsaWJ1bndpbmQxM1Jl Z2lzdGVyc19wcGM2anVtcHRvRXYpCi0gLy8KLS0tLSBhL2xpYnVud2luZC9zcmMvVW53aW5kUmVn aXN0ZXJzU2F2ZS5TCi0rKysgYi9saWJ1bndpbmQvc3JjL1Vud2luZFJlZ2lzdGVyc1NhdmUuUwot QEAgLTU1NCw3ICs1NTQsNyBAQCBERUZJTkVfTElCVU5XSU5EX0ZVTkNUSU9OKF9fdW53X2dldGNv bnRleHQpCi0gICBibHIKLSAKLSAKLS0jZWxpZiBkZWZpbmVkKF9fcHBjX18pCi0rI2VsaWYgZGVm aW5lZChfX3Bvd2VycGNfXykKLSAKLSAvLwotIC8vIGV4dGVybiBpbnQgdW53X2dldGNvbnRleHQo dW53X2NvbnRleHRfdCogdGhyZWFkX3N0YXRlKQotLS0tIGEvbGlidW53aW5kL3NyYy9jb25maWcu aAotKysrIGIvbGlidW53aW5kL3NyYy9jb25maWcuaAotQEAgLTk1LDEyICs5NSwxMiBAQAotICNk ZWZpbmUgX0xJQlVOV0lORF9CVUlMRF9TSkxKX0FQSVMKLSAjZW5kaWYKLSAKLS0jaWYgZGVmaW5l ZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fcHBjX18pIHx8 IGRlZmluZWQoX19wcGM2NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rI2lmIGRlZmlu ZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX3Bvd2VycGNf XykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICNkZWZpbmUgX0xJQlVOV0lORF9TVVBQT1JU X0ZSQU1FX0FQSVMKLSAjZW5kaWYKLSAKLSAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5l ZChfX3g4Nl82NF9fKSB8fCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotLSAgICBk ZWZpbmVkKF9fcHBjX18pIHx8IGRlZmluZWQoX19wcGM2NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJw YzY0X18pIHx8ICAgICAgICBcCi0rICAgIGRlZmluZWQoX19wb3dlcnBjX18pIHx8IGRlZmluZWQo X19wb3dlcnBjNjRfXykgfHwgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgKCFkZWZp bmVkKF9fQVBQTEVfXykgJiYgZGVmaW5lZChfX2FybV9fKSkgfHwgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXAotICAgICAoZGVmaW5lZChfX2FybTY0X18pIHx8IGRlZmluZWQoX19hYXJj aDY0X18pKSB8fCAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgIGRlZmluZWQoX19t aXBzX18pCi0tLS0gYS9saWJ1bndpbmQvc3JjL2xpYnVud2luZC5jcHAKLSsrKyBiL2xpYnVud2lu ZC9zcmMvbGlidW53aW5kLmNwcAotQEAgLTQyLDcgKzQyLDcgQEAgX0xJQlVOV0lORF9ISURERU4g aW50IF9fdW53X2luaXRfbG9jYWwodW53X2N1cnNvcl90ICpjdXJzb3IsCi0gIyBkZWZpbmUgUkVH SVNURVJfS0lORCBSZWdpc3RlcnNfeDg2XzY0Ci0gI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9f KQotICMgZGVmaW5lIFJFR0lTVEVSX0tJTkQgUmVnaXN0ZXJzX3BwYzY0Ci0tI2VsaWYgZGVmaW5l ZChfX3BwY19fKQotKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjX18pCi0gIyBkZWZpbmUgUkVHSVNU RVJfS0lORCBSZWdpc3RlcnNfcHBjCi0gI2VsaWYgZGVmaW5lZChfX2FhcmNoNjRfXykKLSAjIGRl ZmluZSBSRUdJU1RFUl9LSU5EIFJlZ2lzdGVyc19hcm02NApkaWZmIC0tZ2l0IGEvc3JjcGtncy9s bHZtMTIvcGF0Y2hlcy9sbGRiLW11c2wucGF0Y2ggYi9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2xs ZGItbXVzbC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjAxYzBkMTM4NTIz Li4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9sbGRiLW11c2wucGF0 Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwzMSArMCwwIEBACi0tLS0gYS9sbGRiL3NvdXJjZS9QbHVn aW5zL1Byb2Nlc3MvTGludXgvUHJvY2ZzLmgKLSsrKyBiL2xsZGIvc291cmNlL1BsdWdpbnMvUHJv Y2Vzcy9MaW51eC9Qcm9jZnMuaAotQEAgLTEwLDIxICsxMCwxMiBAQAotIC8vIHN5cy9wcm9jZnMu aCBvbiBBbmRyb2lkL0xpbnV4IGZvciBhbGwgc3VwcG9ydGVkIGFyY2hpdGVjdHVyZXMuCi0gCi0g I2luY2x1ZGUgPHN5cy9wdHJhY2UuaD4KLSsjaW5jbHVkZSA8YXNtL3B0cmFjZS5oPgotIAotLSNp ZmRlZiBfX0FORFJPSURfXwotLSNpZiBkZWZpbmVkKF9fYXJtNjRfXykgfHwgZGVmaW5lZChfX2Fh cmNoNjRfXykKLS10eXBlZGVmIHVuc2lnbmVkIGxvbmcgZWxmX2dyZWdfdDsKLS10eXBlZGVmIGVs Zl9ncmVnX3QKLS0gICAgZWxmX2dyZWdzZXRfdFsoc2l6ZW9mKHN0cnVjdCB1c2VyX3B0X3JlZ3Mp IC8gc2l6ZW9mKGVsZl9ncmVnX3QpKV07Ci0tdHlwZWRlZiBzdHJ1Y3QgdXNlcl9mcHNpbWRfc3Rh dGUgZWxmX2ZwcmVnc2V0X3Q7Ci0tI2lmbmRlZiBOVF9GUFJFR1NFVAotLSNkZWZpbmUgTlRfRlBS RUdTRVQgTlRfUFJGUFJFRwotLSNlbmRpZiAvLyBOVF9GUFJFR1NFVAotLSNlbGlmIGRlZmluZWQo X19taXBzX18pCi0tI2lmbmRlZiBOVF9GUFJFR1NFVAotLSNkZWZpbmUgTlRfRlBSRUdTRVQgTlRf UFJGUFJFRwotLSNlbmRpZiAvLyBOVF9GUFJFR1NFVAotLSNlbmRpZgotLSNlbHNlIC8vIF9fQU5E Uk9JRF9fCi0rI2lmICFkZWZpbmVkKF9fR0xJQkNfXykgJiYgZGVmaW5lZChfX3Bvd2VycGNfXykK LSsjZGVmaW5lIHB0X3JlZ3MgbXVzbF9wdF9yZWdzCi0rI2luY2x1ZGUgPHN5cy9wcm9jZnMuaD4K LSsjdW5kZWYgcHRfcmVncwotKyNlbHNlCi0gI2luY2x1ZGUgPHN5cy9wcm9jZnMuaD4KLS0jZW5k aWYgLy8gX19BTkRST0lEX18KLSsjZW5kaWYKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bTEyL3Bh dGNoZXMvcHBjMzItY29tcGlsZXItcnQucGF0Y2ggYi9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL3Bw YzMyLWNvbXBpbGVyLXJ0LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4ZTBh OWE3NzlkMWIuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL3BwYzMy LWNvbXBpbGVyLXJ0LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMjEgKzAsMCBAQAotY29tbWl0 IGJhNGVkZTU5NWZmOTU5OTIzMmY1ZGQyYjQzODRjMjQzMTM3YjUzZmMKLUF1dGhvcjogRGFuaWVs IEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+Ci1EYXRlOiAgIFR1ZSBKdW4gMjIgMjM6NDA6 NTQgMjAyMSArMDIwMAotCi0gICAgZW5hYmxlIGNvbXBpbGVyLXJ0IHN1cHBvcnQgZm9yIHBwYzMy Ci0KLWRpZmYgLS1naXQgYS9jb21waWxlci1ydC9jbWFrZS9iYXNlLWNvbmZpZy1peC5jbWFrZSBi L2NvbXBpbGVyLXJ0L2NtYWtlL2Jhc2UtY29uZmlnLWl4LmNtYWtlCi1pbmRleCAxZWRhYjQzLi41 YzBjOGEyIDEwMDY0NAotLS0tIGEvY29tcGlsZXItcnQvY21ha2UvYmFzZS1jb25maWctaXguY21h a2UKLSsrKyBiL2NvbXBpbGVyLXJ0L2NtYWtlL2Jhc2UtY29uZmlnLWl4LmNtYWtlCi1AQCAtMTgy LDkgKzE4Miw3IEBAIG1hY3JvKHRlc3RfdGFyZ2V0cykKLSAgICAgZWxzZWlmKCIke0NPTVBJTEVS X1JUX0RFRkFVTFRfVEFSR0VUX0FSQ0h9IiBNQVRDSEVTICJwb3dlcnBjNjRsZSIpCi0gICAgICAg dGVzdF90YXJnZXRfYXJjaChwb3dlcnBjNjRsZSAiIiAiLW02NCIpCi0gICAgIGVsc2VpZigiJHtD T01QSUxFUl9SVF9ERUZBVUxUX1RBUkdFVF9BUkNIfSIgTUFUQ0hFUyAicG93ZXJwYyIpCi0tICAg ICAgaWYoQ01BS0VfU1lTVEVNX05BTUUgTUFUQ0hFUyAiQUlYIikKLS0gICAgICAgIHRlc3RfdGFy Z2V0X2FyY2gocG93ZXJwYyAiIiAiLW0zMiIpCi0tICAgICAgZW5kaWYoKQotKyAgICAgIHRlc3Rf dGFyZ2V0X2FyY2gocG93ZXJwYyAiIiAiLW0zMiIpCi0gICAgICAgdGVzdF90YXJnZXRfYXJjaChw b3dlcnBjNjQgIiIgIi1tNjQiKQotICAgICBlbHNlaWYoIiR7Q09NUElMRVJfUlRfREVGQVVMVF9U QVJHRVRfQVJDSH0iIE1BVENIRVMgInMzOTB4IikKLSAgICAgICB0ZXN0X3RhcmdldF9hcmNoKHMz OTB4ICIiICIiKQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtMTIvdGVtcGxhdGUgYi9zcmNwa2dz L2xsdm0xMi90ZW1wbGF0ZQppbmRleCA3Y2UxODAyOGU0YTMuLjdiMzYxYmJiZjViYyAxMDA2NDQK LS0tIGEvc3JjcGtncy9sbHZtMTIvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9sbHZtMTIvdGVtcGxh dGUKQEAgLTEsMjUgKzEsMTcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2xsdm0xMicKIHBrZ25h bWU9bGx2bTEyCiB2ZXJzaW9uPTEyLjAuMQotcmV2aXNpb249MgorcmV2aXNpb249Mwogd3Jrc3Jj PSJsbHZtLXByb2plY3QtJHt2ZXJzaW9ufS5zcmMiCiBidWlsZF93cmtzcmM9bGx2bQogYnVpbGRf c3R5bGU9Y21ha2UKIGNvbmZpZ3VyZV9hcmdzPSIKICAtRENNQUtFX0JVSUxEX1RZUEU9UmVsZWFz ZSAtV25vLWRldgogIC1ERU5BQkxFX0xJTktFUl9CVUlMRF9JRD1ZRVMKLSAtRExMREJfVVNFX1NZ U1RFTV9TSVg9WUVTCi0gLURMSUJDWFhfQ1hYX0FCST1saWJjeHhhYmkKLSAtRExJQkNYWF9FTkFC TEVfU1RBVElDX0FCSV9MSUJSQVJZPVlFUwotIC1ETElCQ1hYQUJJX1VTRV9MTFZNX1VOV0lOREVS PVlFUwotIC1ETElCQ1hYQUJJX0VOQUJMRV9TVEFUSUNfVU5XSU5ERVI9WUVTCi0gLURMSUJPTVBf RU5BQkxFX1NIQVJFRD1ZRVMKLSAtRExJQk9NUF9JTlNUQUxMX0FMSUFTRVM9Tk8KICAtRExMVk1f SU5DTFVERV9ET0NTPVlFUwogIC1ETExWTV9CVUlMRF9ET0NTPVlFUwogIC1ETExWTV9FTkFCTEVf U1BISU5YPVlFUwogIC1EU1BISU5YX1dBUk5JTkdTX0FTX0VSUk9SUz1OTwotIC1ETExWTV9JTlNU QUxMX1VUSUxTPVlFUwogIC1ETExWTV9CVUlMRF9MTFZNX0RZTElCPVlFUwogIC1ETExWTV9MSU5L X0xMVk1fRFlMSUI9WUVTCiAgLURMTFZNX0VOQUJMRV9SVFRJPVlFUwpAQCAtNTEsODcgKzQzLDEw IEBAIGNhc2UgIiRYQlBTX1RBUkdFVF9NQUNISU5FIiBpbgogCXBwYyopIGNvbmZpZ3VyZV9hcmdz Kz0iIC1EQ0xBTkdfRU5BQkxFX0NMQU5HRD1PRkYiIDs7CiBlc2FjCiAKLV9lbmFibGVkX3Byb2pl Y3RzPSJjbGFuZztjbGFuZy10b29scy1leHRyYTtjb21waWxlci1ydDtsaWJjeHg7bGliY3h4YWJp O2xpYnVud2luZDtsbGQiCi0KLV9sbGRiX2VuYWJsZT15ZXMKLV9saWJvbXBfZW5hYmxlPW5vCi0K LWNhc2UgIiRYQlBTX1RBUkdFVF9NQUNISU5FIiBpbgotCXBwYzY0bGUqKSA7OwotCXBwYyp8aTY4 NiopIF9sbGRiX2VuYWJsZT1ubyA7OwotZXNhYwotCi1jYXNlICIkWEJQU19UQVJHRVRfTUFDSElO RSIgaW4KLQl4ODZfNjQqfGFhcmNoNjQqfHBwYzY0KikgX2xpYm9tcF9lbmFibGU9eWVzOzsKLWVz YWMKLQotc3VicGFja2FnZXM9ImNsYW5nLXRvb2xzLWV4dHJhIgotCi0jIG11c3QgZ28gYmVmb3Jl IGNsYW5nCi1pZiBbICIkX2xpYm9tcF9lbmFibGUiID0gInllcyIgXTsgdGhlbgotCV9lbmFibGVk X3Byb2plY3RzKz0iO29wZW5tcCIKLQlzdWJwYWNrYWdlcys9IiBsaWJvbXAgbGlib21wLWRldmVs IgotCSMgYmVjYXVzZSBvZiBjbWFrZSBub25zZW5zZSByZWZlcmVuY2luZyBsaWJvbXB0YXJnZXQu c28uKgotCWRlcGVuZHMrPSIgbGlib21wPj0ke3ZlcnNpb259XyR7cmV2aXNpb259IgotZmkKLQot c3VicGFja2FnZXMrPSIgY2xhbmcgY2xhbmctYW5hbHl6ZXIgbGliY2xhbmcgbGliY2xhbmctY3Bw Ci0gbGx2bS1saWJ1bndpbmQgbGx2bS1saWJ1bndpbmQtZGV2ZWwgbGliY3h4IGxpYmN4eC1kZXZl bAotIGxpYmN4eGFiaSBsaWJjeHhhYmktZGV2ZWwgbGlibGx2bTEyIgotCi1pZiBbICIkX2xsZGJf ZW5hYmxlIiA9ICJ5ZXMiIF07IHRoZW4KLQkjIFhYWCBmYWlscyB0byBjcm9zcyBjb21waWxlIGR1 ZSB0byBweXRob24KLQlfZW5hYmxlZF9wcm9qZWN0cys9IjtsbGRiIgotCXN1YnBhY2thZ2VzKz0i IGxsZGIgbGxkYi1kZXZlbCIKLWZpCi0KLXN1YnBhY2thZ2VzKz0iIGxsZCBsbGQtZGV2ZWwiCi0K LWNvbmZpZ3VyZV9hcmdzKz0iIC1ETExWTV9FTkFCTEVfUFJPSkVDVFM9JHtfZW5hYmxlZF9wcm9q ZWN0c30iCi0KIHBvc3RfcGF0Y2goKSB7Ci0JaWYgWyAiJF9sbGRiX2VuYWJsZSIgPSAieWVzIiBd OyB0aGVuCi0JCWlmIFsgIiRYQlBTX1RBUkdFVF9MSUJDIiA9ICJtdXNsIiBdOyB0aGVuCi0JCQl2 c2VkIC1pICdzfF9fcHRyYWNlX3JlcXVlc3R8aW50fGcnIFwKLQkJCQkke3dya3NyY30vbGxkYi9z b3VyY2UvUGx1Z2lucy9Qcm9jZXNzL0xpbnV4L05hdGl2ZVByb2Nlc3NMaW51eC5jcHAKLQkJZmkK LQkJIyBkaXNhYmxlIGRvY3MgZm9yIGxsZGIgYXMgdGhleSBmYWlsIHRvIGdlbmVyYXRlCi0JCXZz ZWQgLWkgJy9hZGRfc3ViZGlyZWN0b3J5KGRvY3MpL2QnIFwKLQkJCSR7d3Jrc3JjfS9sbGRiL0NN YWtlTGlzdHMudHh0Ci0JZmkKLQogCSMgdXBkYXRlIGNvbmZpZy5ndWVzcyBmb3IgYmV0dGVyIHBs YXRmb3JtIGRldGVjdGlvbgogCWNwICRYQlBTX0NPTU1PTkRJUi9lbnZpcm9ubWVudC9jb25maWd1 cmUvYXV0b21ha2UvY29uZmlnLmd1ZXNzIFwKIAkJJHt3cmtzcmN9L2xsdm0vY21ha2UKLQotCSMg Zml4IGxpbmtlciBmYWlsdXJlcyBvbiBzb21lIGFyY2hzCi0JdnNlZCAtaSAncyxjaGVja19saWJy YXJ5X2V4aXN0cyhnY2NfcyAuKixzZXQoTElCQ1hYQUJJX0hBU19HQ0NfU19MSUIgT04pLCcgXAot CQkke3dya3NyY30vbGliY3h4YWJpL2NtYWtlL2NvbmZpZy1peC5jbWFrZQotCXZzZWQgLWkgJ3Ms Y2hlY2tfbGlicmFyeV9leGlzdHMoZ2NjIC4qLHNldChMSUJDWFhBQklfSEFTX0dDQ19MSUIgT04p LCcgXAotCQkke3dya3NyY30vbGliY3h4YWJpL2NtYWtlL2NvbmZpZy1peC5jbWFrZQotCi0JIyBu ZWVkIGxpYnNzcF9ub25zaGFyZWQgb24gc29tZSBtdXNsIHBsYXRmb3JtcyAoYmVjYXVzZSBvZiBu b2RlZmF1bHRsaWJzKQotCWNhc2UgIiRYQlBTX1RBUkdFVF9NQUNISU5FIiBpbgotCQlwcGM2NCop IDs7Ci0JCXBwYyotbXVzbHxpNjg2LW11c2x8bWlwcyotbXVzbCkKLQkJCXZzZWQgLWkgJ3MsXiMg U2V0dXAgZmxhZ3MuJCxhZGRfbGlicmFyeV9mbGFncyhzc3Bfbm9uc2hhcmVkKSwnIFwKLQkJCQkk e3dya3NyY30vbGlidW53aW5kL3NyYy9DTWFrZUxpc3RzLnR4dAotCQkJdnNlZCAtaSAncyxeIyBT ZXR1cCBmbGFncy4kLGFkZF9saWJyYXJ5X2ZsYWdzKHNzcF9ub25zaGFyZWQpLCcgXAotCQkJCSR7 d3Jrc3JjfS9saWJjeHhhYmkvc3JjL0NNYWtlTGlzdHMudHh0Ci0JCQl2c2VkIC1pICdzLCNzc3As LCcgJHt3cmtzcmN9L2xpYmN4eC9DTWFrZUxpc3RzLnR4dAotCQkJOzsKLQllc2FjCi0KLQljYXNl ICIkWEJQU19UQVJHRVRfTUFDSElORSIgaW4KLQkJeDg2XzY0LW11c2wpICMgc29tZSBzYW5pdGl6 ZXIgY3VycmVudGx5IG9ubHkgb24geDg2XzY0IHN0dWZmIG5lZWRzIGJhY2t0cmFjZQotCQkJdnNl ZCAtaSAncywjIFNldCBjb21tb24gbGluayBmbGFncy4sbGlzdChBUFBFTkQgU0FOSVRJWkVSX0NP TU1PTl9MSU5LX0xJQlMgZXhlY2luZm8pLCcgXAotCQkJCSR7d3Jrc3JjfS9jb21waWxlci1ydC9D TWFrZUxpc3RzLnR4dAotCQkJOzsKLQkJYXJtKi1tdXNsfGk2ODYtbXVzbCkgIyBzYW5pdGl6ZXIg Y29kZSBpcyBicm9rZW4gc2luY2UgaXQgZHVwbGljYXRlcyBzb21lIGxpYmMgYml0cwotCQkJdnNl ZCAtaSAncy9zZXQoQ09NUElMRVJfUlRfSEFTX1NBTklUSVpFUl9DT01NT04gVFJVRSkvc2V0KENP TVBJTEVSX1JUX0hBU19TQU5JVElaRVJfQ09NTU9OIEZBTFNFKS8nIFwKLQkJCQkke3dya3NyY30v Y29tcGlsZXItcnQvY21ha2UvY29uZmlnLWl4LmNtYWtlCi0JCQk7OwotCWVzYWMKIH0KIAogcHJl X2NvbmZpZ3VyZSgpIHsKQEAgLTE1OCwxMCArNzMsOCBAQCBwcmVfY29uZmlndXJlKCkgewogCQkJ Y21ha2UgLi4vLi4gLURDTUFLRV9CVUlMRF9UWVBFPVJlbGVhc2UgXAogCQkJLURMTFZNX0VOQUJM RV9QUk9KRUNUUz0ke19lbmFibGVkX3Byb2plY3RzfQogCQltYWtlICR7bWFrZWpvYnN9IC1DIHV0 aWxzL1RhYmxlR2VuCi0JCW1ha2UgJHttYWtlam9ic30gLUMgdG9vbHMvY2xhbmcvdXRpbHMvVGFi bGVHZW4KIAkJWyAiJF9sbGRiX2VuYWJsZSIgPSAieWVzIiBdICYmIG1ha2UgJHttYWtlam9ic30g LUMgdG9vbHMvbGxkYi91dGlscy9UYWJsZUdlbgogCQljb25maWd1cmVfYXJncys9IiAtRExMVk1f VEFCTEVHRU49JHt3cmtzcmN9L2xsdm0vYnVpbGQvSE9TVC9iaW4vbGx2bS10YmxnZW4iCi0JCWNv bmZpZ3VyZV9hcmdzKz0iIC1EQ0xBTkdfVEFCTEVHRU49JHt3cmtzcmN9L2xsdm0vYnVpbGQvSE9T VC9iaW4vY2xhbmctdGJsZ2VuIgogCQlbICIkX2xsZGJfZW5hYmxlIiA9ICJ5ZXMiIF0gJiYgY29u ZmlndXJlX2FyZ3MrPSIgLURMTERCX1RBQkxFR0VOPSR7d3Jrc3JjfS9sbHZtL2J1aWxkL0hPU1Qv YmluL2xsZGItdGJsZ2VuIgogCQljZCAuLi8uLgogCWZpCkBAIC0yMDIsMjE4ICsxMTUsNiBAQCBk b19pbnN0YWxsKCkgewogCWlmIFsgIiRDUk9TU19CVUlMRCIgXTsgdGhlbgogCQlybSAtZiAke0RF U1RESVJ9L3Vzci9iaW4vbGx2bS1jb25maWctaG9zdAogCWZpCi0KLQkjIEluc3RhbGwgbGliY3h4 YWJpIGhlYWRlcnMKLQl2aW5zdGFsbCAke3dya3NyY30vbGliY3h4YWJpL2luY2x1ZGUvX19jeHhh YmlfY29uZmlnLmggNjQ0IHVzci9pbmNsdWRlCi0Jdmluc3RhbGwgJHt3cmtzcmN9L2xpYmN4eGFi aS9pbmNsdWRlL2N4eGFiaS5oIDY0NCB1c3IvaW5jbHVkZQotCi0JIyBJbnN0YWxsIGxpYnVud2lu ZCBoZWFkZXJzCi0Jdmluc3RhbGwgJHt3cmtzcmN9L2xpYnVud2luZC9pbmNsdWRlL19fbGlidW53 aW5kX2NvbmZpZy5oIDY0NCB1c3IvaW5jbHVkZQotCXZpbnN0YWxsICR7d3Jrc3JjfS9saWJ1bndp bmQvaW5jbHVkZS9saWJ1bndpbmQuaCA2NDQgdXNyL2luY2x1ZGUKLQl2aW5zdGFsbCAke3dya3Ny Y30vbGlidW53aW5kL2luY2x1ZGUvdW53aW5kLmggNjQ0IHVzci9pbmNsdWRlCi0Jdmluc3RhbGwg JHt3cmtzcmN9L2xpYnVud2luZC9pbmNsdWRlL21hY2gtby9jb21wYWN0X3Vud2luZF9lbmNvZGlu Zy5oIFwKLQkJNjQ0IHVzci9pbmNsdWRlL21hY2gtbwotfQotCi1jbGFuZy1hbmFseXplcl9wYWNr YWdlKCkgewotCXB5Y29tcGlsZV9kaXJzPSJ1c3Ivc2hhcmUvc2Nhbi12aWV3IgotCWRlcGVuZHM9 ImNsYW5nLSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0gcHl0aG9uMyBwZXJsIgotCXNob3J0X2Rlc2Mr PSIgLSBBIHNvdXJjZSBjb2RlIGFuYWx5c2lzIGZyYW1ld29yayIKLQlob21lcGFnZT0iaHR0cHM6 Ly9jbGFuZy1hbmFseXplci5sbHZtLm9yZy8iCi0JcGtnX2luc3RhbGwoKSB7Ci0JCXZtb3ZlIHVz ci9zaGFyZS9tYW4vbWFuMS9zY2FuLWJ1aWxkLjEKLQkJdm1vdmUgIi91c3IvYmluL3NjYW4tKiIK LQkJdm1vdmUgIi91c3Ivc2hhcmUvc2Nhbi0qIgotCQl2bW92ZSAiL3Vzci9saWJleGVjLyphbmFs eXplciIKLQl9Ci19Ci0KLWNsYW5nLXRvb2xzLWV4dHJhX3BhY2thZ2UoKSB7Ci0JbGliMzJkaXNh YmxlZD15ZXMKLQlkZXBlbmRzPSJjbGFuZy0ke3ZlcnNpb259XyR7cmV2aXNpb259IHB5dGhvbjMi Ci0Jc2hvcnRfZGVzYys9IiAtIEV4dHJhIENsYW5nIHRvb2xzIgotCWhvbWVwYWdlPSJodHRwczov L2NsYW5nLmxsdm0ub3JnL2V4dHJhLyIKLQlwa2dfaW5zdGFsbCgpIHsKLQkJdm1vdmUgdXNyL2lu Y2x1ZGUvY2xhbmctdGlkeQotCQl2bW92ZSB1c3IvYmluL2NsYW5nLWFwcGx5LXJlcGxhY2VtZW50 cwotCQl2bW92ZSB1c3IvYmluL2NsYW5nLXF1ZXJ5Ci0JCXZtb3ZlIHVzci9iaW4vY2xhbmctcmVu YW1lCi0JCXZtb3ZlIHVzci9iaW4vY2xhbmctdGlkeQotCQl2bW92ZSB1c3IvYmluL2RpYWd0b29s Ci0JCXZtb3ZlIHVzci9iaW4vZmluZC1hbGwtc3ltYm9scwotCQl2bW92ZSB1c3IvYmluL2htYXB0 b29sCi0JCXZtb3ZlIHVzci9iaW4vbW9kdWxhcml6ZQotCQl2bW92ZSB1c3IvYmluL3BwLXRyYWNl Ci0JCXZtb3ZlIHVzci9iaW4vc2FuY292Ci0JCXZtb3ZlICJ1c3IvbGliL2xpYmNsYW5nQXBwbHlS ZXBsYWNlbWVudHMqIgotCQl2bW92ZSAidXNyL2xpYi9saWJjbGFuZ1F1ZXJ5KiIKLQkJdm1vdmUg InVzci9saWIvbGliY2xhbmdUaWR5KiIKLQkJdm1vdmUgInVzci9zaGFyZS9jbGFuZy8qdGlkeSoi Ci0JCXZtb3ZlIHVzci9zaGFyZS9kb2MvY2xhbmctdG9vbHMKLQkJdm1vdmUgdXNyL3NoYXJlL21h bi9tYW4xL2V4dHJhY2xhbmd0b29scy4xCi0JCXZtb3ZlIHVzci9zaGFyZS9tYW4vbWFuMS9kaWFn dG9vbC4xCi0JfQotfQotCi1jbGFuZ19wYWNrYWdlKCkgewotCWxpYjMyZGlzYWJsZWQ9eWVzCi0J ZGVwZW5kcz0ibGlic3RkYysrLWRldmVsIGxpYmdjYy1kZXZlbCAgYmludXRpbHMgJHtYQlBTX1RB UkdFVF9MSUJDfS1kZXZlbAotCSBsaWJjbGFuZy0ke3ZlcnNpb259XyR7cmV2aXNpb259IgotCXNo b3J0X2Rlc2MrPSIgLSBDIGxhbmd1YWdlIGZhbWlseSBmcm9udGVuZCIKLQlob21lcGFnZT0iaHR0 cHM6Ly9jbGFuZy5sbHZtLm9yZy8iCi0JcGtnX2luc3RhbGwoKSB7Ci0JCXZtb3ZlIHVzci9pbmNs dWRlL2NsYW5nCi0JCXZtb3ZlIHVzci9pbmNsdWRlL2NsYW5nLWMKLQkJdm1vdmUgInVzci9iaW4v KmNsYW5nKiIKLQkJdm1vdmUgdXNyL2Jpbi9jLWluZGV4LXRlc3QKLQkJdm1vdmUgdXNyL2xpYi9j bGFuZwotCQl2bW92ZSB1c3IvbGliL2NtYWtlL2NsYW5nCi0JCXZtb3ZlICJ1c3IvbGliL2xpYmNs YW5nKi5hIgotCQl2bW92ZSAidXNyL2xpYi9saWJjbGFuZyouc28iCi0JCXZtb3ZlIHVzci9zaGFy ZS9jbGFuZwotCQl2bW92ZSB1c3Ivc2hhcmUvZG9jL2NsYW5nCi0JCXZtb3ZlIHVzci9zaGFyZS9t YW4vbWFuMS9jbGFuZy4xCi0JfQotfQotCi1saWJjbGFuZ19wYWNrYWdlKCkgewotCXNob3J0X2Rl c2MrPSIgLSBDIGZyb250ZW5kIHJ1bnRpbWUgbGlicmFyeSIKLQlwa2dfaW5zdGFsbCgpIHsKLQkJ dm1vdmUgInVzci9saWIvbGliY2xhbmcuc28uKiIKLQl9Ci19Ci0KLWxpYmNsYW5nLWNwcF9wYWNr YWdlKCkgewotCXNob3J0X2Rlc2MrPSIgLSBDIGZyb250ZW5kIHJ1bnRpbWUgbGlicmFyeSAoQysr IGludGVyZmFjZSkiCi0JcGtnX2luc3RhbGwoKSB7Ci0JCXZtb3ZlICJ1c3IvbGliL2xpYmNsYW5n LWNwcC5zby4qIgotCX0KLX0KLQotbGxkX3BhY2thZ2UoKSB7Ci0JbGliMzJkaXNhYmxlZD15ZXMK LQlzaG9ydF9kZXNjKz0iIC0gbGlua2VyIgotCWhvbWVwYWdlPSJodHRwczovL2xsZC5sbHZtLm9y ZyIKLQlwa2dfaW5zdGFsbCgpIHsKLQkJdm1vdmUgdXNyL2Jpbi9sbGQqCi0JCXZtb3ZlIHVzci9i aW4vd2FzbS1sZAotCQl2bW92ZSB1c3IvYmluL2xkLmxsZCoKLQkJdm1vdmUgdXNyL2Jpbi9sZDY0 LmxsZCoKLQkJdm1vdmUgdXNyL3NoYXJlL2RvYy9sbGQKLQl9Ci19Ci0KLWxsZC1kZXZlbF9wYWNr YWdlKCkgewotCWxpYjMyZGlzYWJsZWQ9eWVzCi0Jc2hvcnRfZGVzYys9IiAtIGxpbmtlciAtIGRl dmVsb3BtZW50IGZpbGVzIgotCWhvbWVwYWdlPSJodHRwczovL2xsZC5sbHZtLm9yZyIKLQlkZXBl bmRzPSJsbGQ+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCi0JcGtnX2luc3RhbGwoKSB7Ci0JCXZt b3ZlIHVzci9pbmNsdWRlL2xsZAotCQl2bW92ZSB1c3IvbGliL2NtYWtlL2xsZAotCQl2bW92ZSAi dXNyL2xpYi9saWJsbGQqYSIKLQl9Ci19Ci0KLWxsZGJfcGFja2FnZSgpIHsKLQlsaWIzMmRpc2Fi bGVkPXllcwotCWRlcGVuZHMrPSIgcHl0aG9uMy1zaXgiCi0Jc2hvcnRfZGVzYys9IiAtIExMREIg ZGVidWdnZXIiCi0JaG9tZXBhZ2U9Imh0dHBzOi8vbGxkYi5sbHZtLm9yZy8iCi0JcGtnX2luc3Rh bGwoKSB7Ci0JCXZtb3ZlIHVzci9iaW4vKmxsZGIqCi0JCXZtb3ZlIHVzci9saWIvbGlibGxkYipz by4qCi0JCXZtb3ZlIC91c3IvbGliL3B5dGhvbioKLQl9Ci19Ci0KLWxsZGItZGV2ZWxfcGFja2Fn ZSgpIHsKLQlsaWIzMmRpc2FibGVkPXllcwotCWRlcGVuZHM9ImxsZGI+PSR7dmVyc2lvbn1fJHty ZXZpc2lvbn0iCi0Jc2hvcnRfZGVzYys9IiAtIExMREIgZGVidWdnZXIgLSBkZXZlbG9wbWVudCBm aWxlcyIKLQlwa2dfaW5zdGFsbCgpIHsKLQkJdm1vdmUgdXNyL2luY2x1ZGUvbGxkYgotCQl2bW92 ZSAidXNyL2xpYi9saWJsbGRiKi5zbyIKLQl9Ci19Ci0KLWxsdm0tbGlidW53aW5kX3BhY2thZ2Uo KSB7Ci0Jc2hvcnRfZGVzYys9IiAtIGxpYnVud2luZCIKLQlwa2dfaW5zdGFsbCgpIHsKLQkJdm1v dmUgInVzci9saWIvbGlidW53aW5kLnNvLioiCi0JfQotfQotCi1sbHZtLWxpYnVud2luZC1kZXZl bF9wYWNrYWdlKCkgewotCXNob3J0X2Rlc2MrPSIgLSBsaWJ1bndpbmQgLSBkZXZlbG9wbWVudCBm aWxlcyIKLQlkZXBlbmRzPSJsbHZtLWxpYnVud2luZD49JHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIK LQljb25mbGljdHM9ImxpYnVud2luZC1kZXZlbD49MCIKLQlwa2dfaW5zdGFsbCgpIHsKLQkJdm1v dmUgdXNyL2xpYi9saWJ1bndpbmQuc28KLQkJdm1vdmUgdXNyL2xpYi9saWJ1bndpbmQuYQotCQl2 bW92ZSAidXNyL2luY2x1ZGUvKnVud2luZCoiCi0JCXZtb3ZlIHVzci9pbmNsdWRlL21hY2gtbwot CQl2bW92ZSB1c3Ivc2hhcmUvZG9jL2xpYnVud2luZAotCX0KLX0KLQotbGliY3h4YWJpX3BhY2th Z2UoKSB7Ci0Jc2hvcnRfZGVzYys9IiAtIGxvdyBsZXZlbCBzdXBwb3J0IGZvciBsaWJjKysiCi0J cGtnX2luc3RhbGwoKSB7Ci0JCXZtb3ZlICJ1c3IvbGliL2xpYmMrK2FiaS5zby4qIgotCX0KLX0K LQotbGliY3h4YWJpLWRldmVsX3BhY2thZ2UoKSB7Ci0Jc2hvcnRfZGVzYys9IiAtIGxvdyBsZXZl bCBzdXBwb3J0IGZvciBsaWJjKysgLSBkZXZlbG9wbWVudCBmaWxlcyIKLQlkZXBlbmRzPSJsaWJj eHhhYmk+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCi0JcGtnX2luc3RhbGwoKSB7Ci0JCXZtb3Zl IHVzci9saWIvbGliYysrYWJpLnNvCi0JCXZtb3ZlIHVzci9saWIvbGliYysrYWJpLmEKLQkJdm1v dmUgInVzci9pbmNsdWRlLypjeHhhYmkqIgotCX0KLX0KLQotbGliY3h4X3BhY2thZ2UoKSB7Ci0J c2hvcnRfZGVzYys9IiAtIEMrKyBzdGFuZGFyZCBsaWJyYXJ5IgotCXBrZ19pbnN0YWxsKCkgewot CQl2bW92ZSAidXNyL2xpYi9saWJjKysuc28uKiIKLQl9Ci19Ci0KLWxpYmN4eC1kZXZlbF9wYWNr YWdlKCkgewotCXNob3J0X2Rlc2MrPSIgLSBDKysgc3RhbmRhcmQgbGlicmFyeSAtIGRldmVsb3Bt ZW50IGZpbGVzIgotCWRlcGVuZHM9ImxpYmN4eD49JHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKLQlw a2dfaW5zdGFsbCgpIHsKLQkJdm1vdmUgdXNyL2xpYi9saWJjKysuc28KLQkJdm1vdmUgdXNyL2xp Yi9saWJjKysuYQotCQl2bW92ZSB1c3IvbGliL2xpYmMrK2V4cGVyaW1lbnRhbC5hCi0JCXZtb3Zl IHVzci9pbmNsdWRlL2MrKwotCQl2bW92ZSB1c3Ivc2hhcmUvZG9jL2xpYmN4eAotCX0KLX0KLQot bGlib21wX3BhY2thZ2UoKSB7Ci0Jc2hvcnRfZGVzYys9IiAtIENsYW5nIE9wZW5NUCBzdXBwb3J0 IGxpYnJhcnkiCi0JcGtnX2luc3RhbGwoKSB7Ci0JCXZtb3ZlIHVzci9saWIvbGlib21wLnNvCi0J CXZtb3ZlICJ1c3IvbGliL2xpYm9tcHRhcmdldC5ydGwuKi5zbyIKLQkJdm1vdmUgdXNyL2xpYi9s aWJhcmNoZXIuc28KLQkJdm1vdmUgInVzci9saWIvbGlib21wKi5zby4qIgotCX0KLX0KLQotbGli b21wLWRldmVsX3BhY2thZ2UoKSB7Ci0Jc2hvcnRfZGVzYys9IiAtIENsYW5nIE9wZW5NUCBzdXBw b3J0IGxpYnJhcnkgLSBkZXZlbG9wbWVudCBmaWxlcyIKLQlkZXBlbmRzPSJsaWJvbXA+PSR7dmVy c2lvbn1fJHtyZXZpc2lvbn0iCi0JcGtnX2luc3RhbGwoKSB7Ci0JCXZtb3ZlICJ1c3IvbGliL2xp Ym9tcCouc28iCi0JCXZtb3ZlICJ1c3IvbGliL2xpYmFyY2hlcioiCi0JCXZtb3ZlICJ1c3IvaW5j bHVkZS9vbXAqLmgiCi0JCXZtb3ZlICJ1c3IvbGliL2NsYW5nLyR7dmVyc2lvbn0vaW5jbHVkZS9v bXAqLmgiCi0JCXZtb3ZlIHVzci9zaGFyZS9tYW4vbWFuMS9sbHZtb3Blbm1wLjEKLQkJdm1vdmUg dXNyL3NoYXJlL2RvYy9vcGVubXAKLQl9CiB9CiAKIGxpYmxsdm0xMl9wYWNrYWdlKCkgewoKRnJv bSBkZDBhODE1MDczNDU0ODg1YmQ2ZTM4OTE4NmIzNDY0YmE5YTQyMWE5IE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiBwcmV6IDxwcmV6QG5hdGlvbmFsLnNoaXRwb3N0aW5nLmFnZW5jeT4K RGF0ZTogV2VkLCA0IE1heSAyMDIyIDE0OjAwOjI4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwNC8y OV0gTmV3IHBhY2thZ2VzOiBjbGFuZzEyLCBsaWJjbGFuZzEyLCBsaWJjbGFuZzEyLWNwcCwKIGxs ZDEyLCBsbGQxMi1kZXZlbC4KCi0tLQogY29tbW9uL3NobGlicyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgICAyICsKIHNyY3BrZ3MvY2xhbmcxMiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB8ICAgMSArCiBzcmNwa2dzL2xpYmNsYW5nMTIgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfCAgIDEgKwogc3JjcGtncy9saWJjbGFuZzEyLWNwcCAgICAgICAgICAgICAgICAg ICAgICAgIHwgICAxICsKIHNyY3BrZ3MvbGxkMTIgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB8ICAgMSArCiBzcmNwa2dzL2xsZDEyLWRldmVsICAgICAgICAgICAgICAgICAgICAgICAg ICAgfCAgIDEgKwogLi4uY2xhbmctMDAxLWZpeC11bndpbmQtY2hhaW4taW5jbHVzaW9uLnBhdGNo IHwgIDQ0ICsrKysrKysKIC4uLi9wYXRjaGVzL2NsYW5nLTAwMi1hZGQtbXVzbC10cmlwbGVzLnBh dGNoICB8IDExMCArKysrKysrKysrKysrKysrKysKIC4uLi9jbGFuZy0wMDMtcHBjNjQtZHluYW1p Yy1saW5rZXItcGF0aC5wYXRjaCB8ICAxMyArKysKIC4uLi9wYXRjaGVzL2NsYW5nLTAwNC1wcGM2 NC1tdXNsLWVsZnYyLnBhdGNoICB8ICA0OCArKysrKysrKwogc3JjcGtncy9sbHZtMTIvdGVtcGxh dGUgICAgICAgICAgICAgICAgICAgICAgIHwgIDcxICsrKysrKysrKysrCiAxMSBmaWxlcyBjaGFu Z2VkLCAyOTMgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTIwMDAwIHNyY3BrZ3MvY2xhbmcx MgogY3JlYXRlIG1vZGUgMTIwMDAwIHNyY3BrZ3MvbGliY2xhbmcxMgogY3JlYXRlIG1vZGUgMTIw MDAwIHNyY3BrZ3MvbGliY2xhbmcxMi1jcHAKIGNyZWF0ZSBtb2RlIDEyMDAwMCBzcmNwa2dzL2xs ZDEyCiBjcmVhdGUgbW9kZSAxMjAwMDAgc3JjcGtncy9sbGQxMi1kZXZlbAogY3JlYXRlIG1vZGUg MTAwNjQ0IHNyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvY2xhbmctMDAxLWZpeC11bndpbmQtY2hhaW4t aW5jbHVzaW9uLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9sbHZtMTIvcGF0Y2hl cy9jbGFuZy0wMDItYWRkLW11c2wtdHJpcGxlcy5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNy Y3BrZ3MvbGx2bTEyL3BhdGNoZXMvY2xhbmctMDAzLXBwYzY0LWR5bmFtaWMtbGlua2VyLXBhdGgu cGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2NsYW5nLTAw NC1wcGM2NC1tdXNsLWVsZnYyLnBhdGNoCgpkaWZmIC0tZ2l0IGEvY29tbW9uL3NobGlicyBiL2Nv bW1vbi9zaGxpYnMKaW5kZXggODFhY2MzOWRlZmI0Li44NmY0YzkwNjBkM2IgMTAwNjQ0Ci0tLSBh L2NvbW1vbi9zaGxpYnMKKysrIGIvY29tbW9uL3NobGlicwpAQCAtOTc1LDYgKzk3NSw4IEBAIGxp YnVjaGFyZGV0LnNvLjAgdWNoYXJkZXQtMC4wLjZfMQogbGliZ3Rrc291cmNldmlld21tLTMuMC5z by4wIGd0a3NvdXJjZXZpZXdtbS0zLjIuMF8xCiBsaWJ5YWpsLnNvLjIgeWFqbC0yLjAuMV8xCiBs aWJjb25mdXNlLnNvLjIgY29uZnVzZS0zLjIuMV8xCitsaWJjbGFuZy5zby4xMiBsaWJjbGFuZzEy LTEyLjAuMF8xCitsaWJjbGFuZy1jcHAuc28uMTIgbGliY2xhbmcxMi1jcHAtMTIuMC4wXzEKIGxp YmxsZGIuc28uMTQgbGxkYi0xNC4wLjNfMQogbGliY2xhbmcuc28uMTQgbGliY2xhbmctMTQuMC4z XzEKIGxpYmNsYW5nLWNwcC5zby4xNCBsaWJjbGFuZy1jcHAtMTQuMC4zXzEKZGlmZiAtLWdpdCBh L3NyY3BrZ3MvY2xhbmcxMiBiL3NyY3BrZ3MvY2xhbmcxMgpuZXcgZmlsZSBtb2RlIDEyMDAwMApp bmRleCAwMDAwMDAwMDAwMDAuLmNkNjBmZDdhOTgxYgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3Br Z3MvY2xhbmcxMgpAQCAtMCwwICsxIEBACitsbHZtMTIKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBm aWxlCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xpYmNsYW5nMTIgYi9zcmNwa2dzL2xpYmNsYW5nMTIK bmV3IGZpbGUgbW9kZSAxMjAwMDAKaW5kZXggMDAwMDAwMDAwMDAwLi5jZDYwZmQ3YTk4MWIKLS0t IC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xpYmNsYW5nMTIKQEAgLTAsMCArMSBAQAorbGx2bTEy ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9saWJjbGFu ZzEyLWNwcCBiL3NyY3BrZ3MvbGliY2xhbmcxMi1jcHAKbmV3IGZpbGUgbW9kZSAxMjAwMDAKaW5k ZXggMDAwMDAwMDAwMDAwLi5jZDYwZmQ3YTk4MWIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dz L2xpYmNsYW5nMTItY3BwCkBAIC0wLDAgKzEgQEAKK2xsdm0xMgpcIE5vIG5ld2xpbmUgYXQgZW5k IG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGxkMTIgYi9zcmNwa2dzL2xsZDEyCm5ldyBm aWxlIG1vZGUgMTIwMDAwCmluZGV4IDAwMDAwMDAwMDAwMC4uY2Q2MGZkN2E5ODFiCi0tLSAvZGV2 L251bGwKKysrIGIvc3JjcGtncy9sbGQxMgpAQCAtMCwwICsxIEBACitsbHZtMTIKXCBObyBuZXds aW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsZDEyLWRldmVsIGIvc3Jj cGtncy9sbGQxMi1kZXZlbApuZXcgZmlsZSBtb2RlIDEyMDAwMAppbmRleCAwMDAwMDAwMDAwMDAu LmNkNjBmZDdhOTgxYgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbGxkMTItZGV2ZWwKQEAg LTAsMCArMSBAQAorbGx2bTEyClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0 IGEvc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9jbGFuZy0wMDEtZml4LXVud2luZC1jaGFpbi1pbmNs dXNpb24ucGF0Y2ggYi9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2NsYW5nLTAwMS1maXgtdW53aW5k LWNoYWluLWluY2x1c2lvbi5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwMDAuLmU0ZWFhNzc4M2U3YQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbGx2bTEyL3Bh dGNoZXMvY2xhbmctMDAxLWZpeC11bndpbmQtY2hhaW4taW5jbHVzaW9uLnBhdGNoCkBAIC0wLDAg KzEsNDQgQEAKK0Zyb20gMzUyOTc0MTY5ZjBkMmI1ZGEzZDUzMjFmNTg4ZjVlM2I1OTQxMzMwZSBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEFuZHJlYSBCcmFuY2FsZW9uaSA8bWl3YXhl QGdtYWlsLmNvbT4KK0RhdGU6IFR1ZSwgOCBTZXAgMjAxNSAyMjoxNDo1NyArMDIwMAorU3ViamVj dDogW1BBVENIIDIvN10gZml4IHVud2luZCBjaGFpbiBpbmNsdXNpb24KKworLS0tCisgbGliL0hl YWRlcnMvdW53aW5kLmggfCA5ICsrKysrLS0tLQorIDEgZmlsZSBjaGFuZ2VkLCA1IGluc2VydGlv bnMoKyksIDQgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9saWIvSGVhZGVycy91bndpbmQu aCBiL2xpYi9IZWFkZXJzL3Vud2luZC5oCitpbmRleCAzMDNkNzkyLi40NGUxMGNjIDEwMDY0NAor LS0tIGEvY2xhbmcvbGliL0hlYWRlcnMvdW53aW5kLmgKKysrKyBiL2NsYW5nL2xpYi9IZWFkZXJz L3Vud2luZC5oCitAQCAtOSw5ICs5LDYgQEAKKyAKKyAvKiBTZWUgIkRhdGEgRGVmaW5pdGlvbnMg Zm9yIGxpYmdjY19zIiBpbiB0aGUgTGludXggU3RhbmRhcmQgQmFzZS4qLworIAorLSNpZm5kZWYg X19DTEFOR19VTldJTkRfSAorLSNkZWZpbmUgX19DTEFOR19VTldJTkRfSAorLQorICNpZiBkZWZp bmVkKF9fQVBQTEVfXykgJiYgX19oYXNfaW5jbHVkZV9uZXh0KDx1bndpbmQuaD4pCisgLyogRGFy d2luIChmcm9tIDExLnggb24pIHByb3ZpZGUgYW4gdW53aW5kLmguIElmIHRoYXQncyBhdmFpbGFi bGUsCisgICogdXNlIGl0LiBsaWJ1bndpbmQgd3JhcHMgc29tZSBvZiBpdHMgZGVmaW5pdGlvbnMg aW4gI2lmZGVmIF9HTlVfU09VUkNFLAorQEAgLTM5LDYgKzM2LDkgQEAKKyAjIGVuZGlmCisgI2Vs c2UKKyAKKysjaWZuZGVmIF9fQ0xBTkdfVU5XSU5EX0gKKysjZGVmaW5lIF9fQ0xBTkdfVU5XSU5E X0gKKysKKyAjaW5jbHVkZSA8c3RkaW50Lmg+CisgCisgI2lmZGVmIF9fY3BsdXNwbHVzCitAQCAt MzIyLDYgKzMyMiw3IEBAIF9VbndpbmRfUHRyIF9VbndpbmRfR2V0VGV4dFJlbEJhc2Uoc3RydWN0 IF9VbndpbmRfQ29udGV4dCAqKTsKKyB9CisgI2VuZGlmCisgCisrI2VuZGlmIC8qIF9fQ0xBTkdf VU5XSU5EX0ggKi8KKysKKyAjZW5kaWYKKyAKKy0jZW5kaWYgLyogX19DTEFOR19VTldJTkRfSCAq LworLS0gCisyLjUuMQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9jbGFuZy0w MDItYWRkLW11c2wtdHJpcGxlcy5wYXRjaCBiL3NyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvY2xhbmct MDAyLWFkZC1tdXNsLXRyaXBsZXMucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMDAwMDAwLi4yNTY4OGQ0MGRiYzIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xsdm0x Mi9wYXRjaGVzL2NsYW5nLTAwMi1hZGQtbXVzbC10cmlwbGVzLnBhdGNoCkBAIC0wLDAgKzEsMTEw IEBACistLS0gYS9jbGFuZy9saWIvRHJpdmVyL1Rvb2xDaGFpbnMvR251LmNwcAorKysrIGIvY2xh bmcvbGliL0RyaXZlci9Ub29sQ2hhaW5zL0dudS5jcHAKK0BAIC0yMDg2LDcgKzIwODYsOCBAQCB2 b2lkIEdlbmVyaWNfR0NDOjpHQ0NJbnN0YWxsYXRpb25EZXRlY3Rvcjo6QWRkRGVmYXVsdEdDQ1By ZWZpeGVzKAorICAgc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IEFSTUhGVHJpcGxlc1tdID0geyJh cm0tbGludXgtZ251ZWFiaWhmIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAiYXJtdjdobC1yZWRoYXQtbGludXgtZ251ZWFiaSIsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImFybXY2aGwtc3VzZS1saW51eC1nbnVl YWJpIiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYXJt djdobC1zdXNlLWxpbnV4LWdudWVhYmkifTsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAiYXJtdjdobC1zdXNlLWxpbnV4LWdudWVhYmkiLAorKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhcm12N2wtbGludXgtZ251ZWFi aWhmIn07CisgICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgQVJNZWJMaWJEaXJzW10gPSB7Ii9s aWIifTsKKyAgIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBBUk1lYlRyaXBsZXNbXSA9IHsiYXJt ZWItbGludXgtZ251ZWFiaSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgImFybWViLWxpbnV4LWFuZHJvaWRlYWJpIn07CitAQCAtMjE1Myw4ICsyMTU0LDcg QEAgdm9pZCBHZW5lcmljX0dDQzo6R0NDSW5zdGFsbGF0aW9uRGV0ZWN0b3I6OkFkZERlZmF1bHRH Q0NQcmVmaXhlcygKKyAgICAgICAicG93ZXJwYzY0LXN1c2UtbGludXgiLCAicG93ZXJwYy1tb250 YXZpc3RhLWxpbnV4c3BlIn07CisgICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgUFBDTEVMaWJE aXJzW10gPSB7Ii9saWIzMiIsICIvbGliIn07CisgICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3Qg UFBDTEVUcmlwbGVzW10gPSB7InBvd2VycGNsZS1saW51eC1nbnUiLAorLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwb3dlcnBjbGUtdW5rbm93bi1saW51eC1n bnUiLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwb3dl cnBjbGUtbGludXgtbXVzbCJ9OworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICJwb3dlcnBjbGUtdW5rbm93bi1saW51eC1nbnUifTsKKyAKKyAgIHN0YXRpYyBj b25zdCBjaGFyICpjb25zdCBQUEM2NExpYkRpcnNbXSA9IHsiL2xpYjY0IiwgIi9saWIifTsKKyAg IHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBQUEM2NFRyaXBsZXNbXSA9IHsKK0BAIC0yMjM1LDYg KzIyMzUsODcgQEAgdm9pZCBHZW5lcmljX0dDQzo6R0NDSW5zdGFsbGF0aW9uRGV0ZWN0b3I6OkFk ZERlZmF1bHRHQ0NQcmVmaXhlcygKKyAgICAgcmV0dXJuOworICAgfQorIAorKyAgaWYgKFRhcmdl dFRyaXBsZS5pc011c2woKSkgeworKyAgICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgQUFyY2g2 NE11c2xUcmlwbGVzW10gPSB7ImFhcmNoNjQtbGludXgtbXVzbCJ9OworKyAgICBzdGF0aWMgY29u c3QgY2hhciAqY29uc3QgQVJNSEZNdXNsVHJpcGxlc1tdID0geworKyAgICAgICAgImFybS1saW51 eC1tdXNsZWFiaWhmIiwgImFybXY3bC1saW51eC1tdXNsZWFiaWhmIgorKyAgICB9OworKyAgICBz dGF0aWMgY29uc3QgY2hhciAqY29uc3QgQVJNTXVzbFRyaXBsZXNbXSA9IHsiYXJtLWxpbnV4LW11 c2xlYWJpIn07CisrICAgIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBYODZfNjRNdXNsVHJpcGxl c1tdID0geyJ4ODZfNjQtbGludXgtbXVzbCJ9OworKyAgICBzdGF0aWMgY29uc3QgY2hhciAqY29u c3QgWDg2TXVzbFRyaXBsZXNbXSA9IHsiaTY4Ni1saW51eC1tdXNsIn07CisrICAgIHN0YXRpYyBj b25zdCBjaGFyICpjb25zdCBNSVBTTXVzbFRyaXBsZXNbXSA9IHsKKysgICAgICAgICJtaXBzLWxp bnV4LW11c2wiLCAibWlwc2VsLWxpbnV4LW11c2wiLAorKyAgICAgICAgIm1pcHNlbC1saW51eC1t dXNsaGYiLCAibWlwcy1saW51eC1tdXNsaGYiCisrICAgIH07CisrICAgIHN0YXRpYyBjb25zdCBj aGFyICpjb25zdCBQUENNdXNsVHJpcGxlc1tdID0geyJwb3dlcnBjLWxpbnV4LW11c2wifTsKKysg ICAgc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IFBQQ0xFTXVzbFRyaXBsZXNbXSA9IHsicG93ZXJw Y2xlLWxpbnV4LW11c2wifTsKKysgICAgc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IFBQQzY0TXVz bFRyaXBsZXNbXSA9IHsicG93ZXJwYzY0LWxpbnV4LW11c2wifTsKKysgICAgc3RhdGljIGNvbnN0 IGNoYXIgKmNvbnN0IFBQQzY0TEVNdXNsVHJpcGxlc1tdID0geyJwb3dlcnBjNjRsZS1saW51eC1t dXNsIn07CisrCisrICAgIHN3aXRjaCAoVGFyZ2V0VHJpcGxlLmdldEFyY2goKSkgeworKyAgICBj YXNlIGxsdm06OlRyaXBsZTo6YWFyY2g2NDoKKysgICAgICBMaWJEaXJzLmFwcGVuZChiZWdpbihB QXJjaDY0TGliRGlycyksIGVuZChBQXJjaDY0TGliRGlycykpOworKyAgICAgIFRyaXBsZUFsaWFz ZXMuYXBwZW5kKGJlZ2luKEFBcmNoNjRNdXNsVHJpcGxlcyksIGVuZChBQXJjaDY0TXVzbFRyaXBs ZXMpKTsKKysgICAgICBCaWFyY2hMaWJEaXJzLmFwcGVuZChiZWdpbihBQXJjaDY0TGliRGlycyks IGVuZChBQXJjaDY0TGliRGlycykpOworKyAgICAgIEJpYXJjaFRyaXBsZUFsaWFzZXMuYXBwZW5k KGJlZ2luKEFBcmNoNjRNdXNsVHJpcGxlcyksIGVuZChBQXJjaDY0TXVzbFRyaXBsZXMpKTsKKysg ICAgICBicmVhazsKKysgICAgY2FzZSBsbHZtOjpUcmlwbGU6OmFybToKKysgICAgICBMaWJEaXJz LmFwcGVuZChiZWdpbihBUk1MaWJEaXJzKSwgZW5kKEFSTUxpYkRpcnMpKTsKKysgICAgICBpZiAo VGFyZ2V0VHJpcGxlLmdldEVudmlyb25tZW50KCkgPT0gbGx2bTo6VHJpcGxlOjpNdXNsRUFCSUhG KSB7CisrICAgICAgICBUcmlwbGVBbGlhc2VzLmFwcGVuZChiZWdpbihBUk1IRk11c2xUcmlwbGVz KSwgZW5kKEFSTUhGTXVzbFRyaXBsZXMpKTsKKysgICAgICB9IGVsc2UgeworKyAgICAgICAgVHJp cGxlQWxpYXNlcy5hcHBlbmQoYmVnaW4oQVJNTXVzbFRyaXBsZXMpLCBlbmQoQVJNTXVzbFRyaXBs ZXMpKTsKKysgICAgICB9CisrICAgICAgYnJlYWs7CisrICAgIGNhc2UgbGx2bTo6VHJpcGxlOjp4 ODZfNjQ6CisrICAgICAgTGliRGlycy5hcHBlbmQoYmVnaW4oWDg2XzY0TGliRGlycyksIGVuZChY ODZfNjRMaWJEaXJzKSk7CisrICAgICAgVHJpcGxlQWxpYXNlcy5hcHBlbmQoYmVnaW4oWDg2XzY0 TXVzbFRyaXBsZXMpLCBlbmQoWDg2XzY0TXVzbFRyaXBsZXMpKTsKKysgICAgICBCaWFyY2hMaWJE aXJzLmFwcGVuZChiZWdpbihYODZMaWJEaXJzKSwgZW5kKFg4NkxpYkRpcnMpKTsKKysgICAgICBC aWFyY2hUcmlwbGVBbGlhc2VzLmFwcGVuZChiZWdpbihYODZNdXNsVHJpcGxlcyksIGVuZChYODZN dXNsVHJpcGxlcykpOworKyAgICAgIGJyZWFrOworKyAgICBjYXNlIGxsdm06OlRyaXBsZTo6eDg2 OgorKyAgICAgIExpYkRpcnMuYXBwZW5kKGJlZ2luKFg4NkxpYkRpcnMpLCBlbmQoWDg2TGliRGly cykpOworKyAgICAgIFRyaXBsZUFsaWFzZXMuYXBwZW5kKGJlZ2luKFg4Nk11c2xUcmlwbGVzKSwg ZW5kKFg4Nk11c2xUcmlwbGVzKSk7CisrICAgICAgQmlhcmNoTGliRGlycy5hcHBlbmQoYmVnaW4o WDg2XzY0TGliRGlycyksIGVuZChYODZfNjRMaWJEaXJzKSk7CisrICAgICAgQmlhcmNoVHJpcGxl QWxpYXNlcy5hcHBlbmQoYmVnaW4oWDg2XzY0TXVzbFRyaXBsZXMpLCBlbmQoWDg2XzY0TXVzbFRy aXBsZXMpKTsKKysgICAgICBicmVhazsKKysgICAgY2FzZSBsbHZtOjpUcmlwbGU6Om1pcHM6Cisr ICAgICAgTGliRGlycy5hcHBlbmQoYmVnaW4oTUlQU0xpYkRpcnMpLCBlbmQoTUlQU0xpYkRpcnMp KTsKKysgICAgICBUcmlwbGVBbGlhc2VzLmFwcGVuZChiZWdpbihNSVBTTXVzbFRyaXBsZXMpLCBl bmQoTUlQU011c2xUcmlwbGVzKSk7CisrICAgICAgYnJlYWs7CisrICAgIGNhc2UgbGx2bTo6VHJp cGxlOjpwcGM6CisrICAgICAgTGliRGlycy5hcHBlbmQoYmVnaW4oUFBDTGliRGlycyksIGVuZChQ UENMaWJEaXJzKSk7CisrICAgICAgVHJpcGxlQWxpYXNlcy5hcHBlbmQoYmVnaW4oUFBDTXVzbFRy aXBsZXMpLCBlbmQoUFBDTXVzbFRyaXBsZXMpKTsKKysgICAgICBCaWFyY2hMaWJEaXJzLmFwcGVu ZChiZWdpbihQUEM2NExpYkRpcnMpLCBlbmQoUFBDNjRMaWJEaXJzKSk7CisrICAgICAgQmlhcmNo VHJpcGxlQWxpYXNlcy5hcHBlbmQoYmVnaW4oUFBDNjRNdXNsVHJpcGxlcyksIGVuZChQUEM2NE11 c2xUcmlwbGVzKSk7CisrICAgICAgYnJlYWs7CisrICAgIGNhc2UgbGx2bTo6VHJpcGxlOjpwcGNs ZToKKysgICAgICBMaWJEaXJzLmFwcGVuZChiZWdpbihQUENMRUxpYkRpcnMpLCBlbmQoUFBDTEVM aWJEaXJzKSk7CisrICAgICAgVHJpcGxlQWxpYXNlcy5hcHBlbmQoYmVnaW4oUFBDTEVNdXNsVHJp cGxlcyksIGVuZChQUENMRU11c2xUcmlwbGVzKSk7CisrICAgICAgQmlhcmNoTGliRGlycy5hcHBl bmQoYmVnaW4oUFBDNjRMRUxpYkRpcnMpLCBlbmQoUFBDNjRMRUxpYkRpcnMpKTsKKysgICAgICBC aWFyY2hUcmlwbGVBbGlhc2VzLmFwcGVuZChiZWdpbihQUEM2NExFTXVzbFRyaXBsZXMpLCBlbmQo UFBDNjRMRU11c2xUcmlwbGVzKSk7CisrICAgICAgYnJlYWs7CisrICAgIGNhc2UgbGx2bTo6VHJp cGxlOjpwcGM2NDoKKysgICAgICBMaWJEaXJzLmFwcGVuZChiZWdpbihQUEM2NExpYkRpcnMpLCBl bmQoUFBDNjRMaWJEaXJzKSk7CisrICAgICAgVHJpcGxlQWxpYXNlcy5hcHBlbmQoYmVnaW4oUFBD NjRNdXNsVHJpcGxlcyksIGVuZChQUEM2NE11c2xUcmlwbGVzKSk7CisrICAgICAgQmlhcmNoTGli RGlycy5hcHBlbmQoYmVnaW4oUFBDTGliRGlycyksIGVuZChQUENMaWJEaXJzKSk7CisrICAgICAg QmlhcmNoVHJpcGxlQWxpYXNlcy5hcHBlbmQoYmVnaW4oUFBDTXVzbFRyaXBsZXMpLCBlbmQoUFBD TXVzbFRyaXBsZXMpKTsKKysgICAgICBicmVhazsKKysgICAgY2FzZSBsbHZtOjpUcmlwbGU6OnBw YzY0bGU6CisrICAgICAgTGliRGlycy5hcHBlbmQoYmVnaW4oUFBDNjRMRUxpYkRpcnMpLCBlbmQo UFBDNjRMRUxpYkRpcnMpKTsKKysgICAgICBUcmlwbGVBbGlhc2VzLmFwcGVuZChiZWdpbihQUEM2 NExFTXVzbFRyaXBsZXMpLCBlbmQoUFBDNjRMRU11c2xUcmlwbGVzKSk7CisrICAgICAgQmlhcmNo TGliRGlycy5hcHBlbmQoYmVnaW4oUFBDTEVMaWJEaXJzKSwgZW5kKFBQQ0xFTGliRGlycykpOwor KyAgICAgIEJpYXJjaFRyaXBsZUFsaWFzZXMuYXBwZW5kKGJlZ2luKFBQQ0xFTXVzbFRyaXBsZXMp LCBlbmQoUFBDTEVNdXNsVHJpcGxlcykpOworKyAgICAgIGJyZWFrOworKyAgICBkZWZhdWx0Ogor KyAgICAgIGJyZWFrOworKyAgICB9CisrICAgIFRyaXBsZUFsaWFzZXMucHVzaF9iYWNrKFRhcmdl dFRyaXBsZS5zdHIoKSk7CisrICAgIGlmIChUYXJnZXRUcmlwbGUuc3RyKCkgIT0gQmlhcmNoVHJp cGxlLnN0cigpKQorKyAgICAgIEJpYXJjaFRyaXBsZUFsaWFzZXMucHVzaF9iYWNrKEJpYXJjaFRy aXBsZS5zdHIoKSk7CisrICAgIHJldHVybjsKKysgIH0KKysKKyAgIC8vIEFuZHJvaWQgdGFyZ2V0 cyBzaG91bGQgbm90IHVzZSBHTlUvTGludXggdG9vbHMgb3IgbGlicmFyaWVzLgorICAgaWYgKFRh cmdldFRyaXBsZS5pc0FuZHJvaWQoKSkgeworICAgICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3Qg QUFyY2g2NEFuZHJvaWRUcmlwbGVzW10gPSB7CmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0xMi9w YXRjaGVzL2NsYW5nLTAwMy1wcGM2NC1keW5hbWljLWxpbmtlci1wYXRoLnBhdGNoIGIvc3JjcGtn cy9sbHZtMTIvcGF0Y2hlcy9jbGFuZy0wMDMtcHBjNjQtZHluYW1pYy1saW5rZXItcGF0aC5wYXRj aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjRhZDY0MTJkMWU2Ywot LS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvY2xhbmctMDAzLXBwYzY0 LWR5bmFtaWMtbGlua2VyLXBhdGgucGF0Y2gKQEAgLTAsMCArMSwxMyBAQAorLS0tIGEvY2xhbmcv bGliL0RyaXZlci9Ub29sQ2hhaW5zL0xpbnV4LmNwcAorKysrIGIvY2xhbmcvbGliL0RyaXZlci9U b29sQ2hhaW5zL0xpbnV4LmNwcAorQEAgLTUwNCwxMCArNTA0LDYgQEAgc3RkOjpzdHJpbmcgTGlu dXg6OmdldER5bmFtaWNMaW5rZXIoY29uc3QgQXJnTGlzdCAmQXJncykgY29uc3QgeworICAgICBM b2FkZXIgPSAibGQuc28uMSI7CisgICAgIGJyZWFrOworICAgY2FzZSBsbHZtOjpUcmlwbGU6OnBw YzY0OgorLSAgICBMaWJEaXIgPSAibGliNjQiOworLSAgICBMb2FkZXIgPQorLSAgICAgICAgKHRv b2xzOjpwcGM6Omhhc1BQQ0FiaUFyZyhBcmdzLCAiZWxmdjIiKSkgPyAibGQ2NC5zby4yIiA6ICJs ZDY0LnNvLjEiOworLSAgICBicmVhazsKKyAgIGNhc2UgbGx2bTo6VHJpcGxlOjpwcGM2NGxlOgor ICAgICBMaWJEaXIgPSAibGliNjQiOworICAgICBMb2FkZXIgPQpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9sbHZtMTIvcGF0Y2hlcy9jbGFuZy0wMDQtcHBjNjQtbXVzbC1lbGZ2Mi5wYXRjaCBiL3NyY3Br Z3MvbGx2bTEyL3BhdGNoZXMvY2xhbmctMDA0LXBwYzY0LW11c2wtZWxmdjIucGF0Y2gKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4yMWZjODAwM2M1ZjEKLS0tIC9kZXYv bnVsbAorKysgYi9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2NsYW5nLTAwNC1wcGM2NC1tdXNsLWVs ZnYyLnBhdGNoCkBAIC0wLDAgKzEsNDggQEAKKy0tLSBhL2NsYW5nL2xpYi9CYXNpYy9UYXJnZXRz L1BQQy5oCisrKysgYi9jbGFuZy9saWIvQmFzaWMvVGFyZ2V0cy9QUEMuaAorQEAgLTQxNSwxMSAr NDE1LDEwIEBAIHB1YmxpYzoKKyAgICAgICBMb25nRG91YmxlRm9ybWF0ID0gJmxsdm06OkFQRmxv YXQ6OklFRUVkb3VibGUoKTsKKyAgICAgfSBlbHNlIGlmICgoVHJpcGxlLmdldEFyY2goKSA9PSBs bHZtOjpUcmlwbGU6OnBwYzY0bGUpKSB7CisgICAgICAgRGF0YUxheW91dCA9ICJlLW06ZS1pNjQ6 NjQtbjMyOjY0IjsKKy0gICAgICBBQkkgPSAiZWxmdjIiOworICAgICB9IGVsc2UgeworICAgICAg IERhdGFMYXlvdXQgPSAiRS1tOmUtaTY0OjY0LW4zMjo2NCI7CistICAgICAgQUJJID0gImVsZnYx IjsKKyAgICAgfQorKyAgICBBQkkgPSAiZWxmdjIiOworIAorICAgICBpZiAoVHJpcGxlLmlzT1NG cmVlQlNEKCkgfHwgVHJpcGxlLmlzT1NPcGVuQlNEKCkgfHwgVHJpcGxlLmlzTXVzbCgpKSB7Cisg ICAgICAgTG9uZ0RvdWJsZVdpZHRoID0gTG9uZ0RvdWJsZUFsaWduID0gNjQ7CistLS0gYS9jbGFu Zy9saWIvQ29kZUdlbi9UYXJnZXRJbmZvLmNwcAorKysrIGIvY2xhbmcvbGliL0NvZGVHZW4vVGFy Z2V0SW5mby5jcHAKK0BAIC0xMDkyNyw5ICsxMDkyNyw5IEBAIGNvbnN0IFRhcmdldENvZGVHZW5J bmZvICZDb2RlR2VuTW9kdWxlOjpnZXRUYXJnZXRDb2RlR2VuSW5mbygpIHsKKyAgICAgICByZXR1 cm4gU2V0Q0dJbmZvKG5ldyBBSVhUYXJnZXRDb2RlR2VuSW5mbyhUeXBlcywgLypJczY0Qml0Ki8g dHJ1ZSkpOworIAorICAgICBpZiAoVHJpcGxlLmlzT1NCaW5Gb3JtYXRFTEYoKSkgeworLSAgICAg IFBQQzY0X1NWUjRfQUJJSW5mbzo6QUJJS2luZCBLaW5kID0gUFBDNjRfU1ZSNF9BQklJbmZvOjpF TEZ2MTsKKy0gICAgICBpZiAoZ2V0VGFyZ2V0KCkuZ2V0QUJJKCkgPT0gImVsZnYyIikKKy0gICAg ICAgIEtpbmQgPSBQUEM2NF9TVlI0X0FCSUluZm86OkVMRnYyOworKyAgICAgIFBQQzY0X1NWUjRf QUJJSW5mbzo6QUJJS2luZCBLaW5kID0gUFBDNjRfU1ZSNF9BQklJbmZvOjpFTEZ2MjsKKysgICAg ICBpZiAoZ2V0VGFyZ2V0KCkuZ2V0QUJJKCkgPT0gImVsZnYxIikKKysgICAgICAgIEtpbmQgPSBQ UEM2NF9TVlI0X0FCSUluZm86OkVMRnYxOworICAgICAgIGJvb2wgSXNTb2Z0RmxvYXQgPSBDb2Rl R2VuT3B0cy5GbG9hdEFCSSA9PSAic29mdCI7CisgCisgICAgICAgcmV0dXJuIFNldENHSW5mbygK Ky0tLSBhL2NsYW5nL2xpYi9Ecml2ZXIvVG9vbENoYWlucy9DbGFuZy5jcHAKKysrKyBiL2NsYW5n L2xpYi9Ecml2ZXIvVG9vbENoYWlucy9DbGFuZy5jcHAKK0BAIC0xOTIwLDE0ICsxOTIwLDcgQEAg dm9pZCBDbGFuZzo6QWRkUFBDVGFyZ2V0QXJncyhjb25zdCBBcmdMaXN0ICZBcmdzLAorICAgY29u c3QgbGx2bTo6VHJpcGxlICZUID0gZ2V0VG9vbENoYWluKCkuZ2V0VHJpcGxlKCk7CisgICBpZiAo VC5pc09TQmluRm9ybWF0RUxGKCkpIHsKKyAgICAgc3dpdGNoIChnZXRUb29sQ2hhaW4oKS5nZXRB cmNoKCkpIHsKKy0gICAgY2FzZSBsbHZtOjpUcmlwbGU6OnBwYzY0OiB7CistICAgICAgaWYgKChU LmlzT1NGcmVlQlNEKCkgJiYgVC5nZXRPU01ham9yVmVyc2lvbigpID49IDEzKSB8fAorLSAgICAg ICAgICBULmlzT1NPcGVuQlNEKCkgfHwgVC5pc011c2woKSkKKy0gICAgICAgIEFCSU5hbWUgPSAi ZWxmdjIiOworLSAgICAgIGVsc2UKKy0gICAgICAgIEFCSU5hbWUgPSAiZWxmdjEiOworLSAgICAg IGJyZWFrOworLSAgICB9CisrICAgIGNhc2UgbGx2bTo6VHJpcGxlOjpwcGM2NDoKKyAgICAgY2Fz ZSBsbHZtOjpUcmlwbGU6OnBwYzY0bGU6CisgICAgICAgQUJJTmFtZSA9ICJlbGZ2MiI7CisgICAg ICAgYnJlYWs7CmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0xMi90ZW1wbGF0ZSBiL3NyY3BrZ3Mv bGx2bTEyL3RlbXBsYXRlCmluZGV4IDdiMzYxYmJiZjViYy4uMjc0YjU3MTgzNjU0IDEwMDY0NAot LS0gYS9zcmNwa2dzL2xsdm0xMi90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2xsdm0xMi90ZW1wbGF0 ZQpAQCAtNDMsNiArNDMsMTIgQEAgY2FzZSAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiIGluCiAJcHBj KikgY29uZmlndXJlX2FyZ3MrPSIgLURDTEFOR19FTkFCTEVfQ0xBTkdEPU9GRiIgOzsKIGVzYWMK IAorX2VuYWJsZWRfcHJvamVjdHM9ImNsYW5nO2xsZCIKKworc3VicGFja2FnZXMrPSIgY2xhbmcx MiBsaWJjbGFuZzEyIGxpYmNsYW5nMTItY3BwIGxpYmxsdm0xMiBsbGQxMiBsbGQxMi1kZXZlbCIK KworY29uZmlndXJlX2FyZ3MrPSIgLURMTFZNX0VOQUJMRV9QUk9KRUNUUz0ke19lbmFibGVkX3By b2plY3RzfSIKKwogcG9zdF9wYXRjaCgpIHsKIAkjIHVwZGF0ZSBjb25maWcuZ3Vlc3MgZm9yIGJl dHRlciBwbGF0Zm9ybSBkZXRlY3Rpb24KIAljcCAkWEJQU19DT01NT05ESVIvZW52aXJvbm1lbnQv Y29uZmlndXJlL2F1dG9tYWtlL2NvbmZpZy5ndWVzcyBcCkBAIC03Myw4ICs3OSwxMCBAQCBwcmVf Y29uZmlndXJlKCkgewogCQkJY21ha2UgLi4vLi4gLURDTUFLRV9CVUlMRF9UWVBFPVJlbGVhc2Ug XAogCQkJLURMTFZNX0VOQUJMRV9QUk9KRUNUUz0ke19lbmFibGVkX3Byb2plY3RzfQogCQltYWtl ICR7bWFrZWpvYnN9IC1DIHV0aWxzL1RhYmxlR2VuCisJCW1ha2UgJHttYWtlam9ic30gLUMgdG9v bHMvY2xhbmcvdXRpbHMvVGFibGVHZW4KIAkJWyAiJF9sbGRiX2VuYWJsZSIgPSAieWVzIiBdICYm IG1ha2UgJHttYWtlam9ic30gLUMgdG9vbHMvbGxkYi91dGlscy9UYWJsZUdlbgogCQljb25maWd1 cmVfYXJncys9IiAtRExMVk1fVEFCTEVHRU49JHt3cmtzcmN9L2xsdm0vYnVpbGQvSE9TVC9iaW4v bGx2bS10YmxnZW4iCisJCWNvbmZpZ3VyZV9hcmdzKz0iIC1EQ0xBTkdfVEFCTEVHRU49JHt3cmtz cmN9L2xsdm0vYnVpbGQvSE9TVC9iaW4vY2xhbmctdGJsZ2VuIgogCQlbICIkX2xsZGJfZW5hYmxl IiA9ICJ5ZXMiIF0gJiYgY29uZmlndXJlX2FyZ3MrPSIgLURMTERCX1RBQkxFR0VOPSR7d3Jrc3Jj fS9sbHZtL2J1aWxkL0hPU1QvYmluL2xsZGItdGJsZ2VuIgogCQljZCAuLi8uLgogCWZpCkBAIC0x MTcsNiArMTI1LDY5IEBAIGRvX2luc3RhbGwoKSB7CiAJZmkKIH0KIAorY2xhbmcxMl9wYWNrYWdl KCkgeworCWNvbmZsaWN0cz0iY2xhbmciCisJbGliMzJkaXNhYmxlZD15ZXMKKwlkZXBlbmRzPSJs aWJzdGRjKystZGV2ZWwgbGliZ2NjLWRldmVsICBiaW51dGlscyAke1hCUFNfVEFSR0VUX0xJQkN9 LWRldmVsCisJIGxpYmNsYW5nMTItJHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKKwlzaG9ydF9kZXNj Kz0iIC0gQyBsYW5ndWFnZSBmYW1pbHkgZnJvbnRlbmQiCisJaG9tZXBhZ2U9Imh0dHBzOi8vY2xh bmcubGx2bS5vcmcvIgorCXBrZ19pbnN0YWxsKCkgeworCQl2bW92ZSB1c3IvaW5jbHVkZS9jbGFu ZworCQl2bW92ZSB1c3IvaW5jbHVkZS9jbGFuZy1jCisJCXZtb3ZlICJ1c3IvYmluLypjbGFuZyoi CisJCXZtb3ZlIHVzci9iaW4vYy1pbmRleC10ZXN0CisJCXZtb3ZlIHVzci9saWIvY2xhbmcKKwkJ dm1vdmUgdXNyL2xpYi9jbWFrZS9jbGFuZworCQl2bW92ZSAidXNyL2xpYi9saWJjbGFuZyouYSIK KwkJdm1vdmUgInVzci9saWIvbGliY2xhbmcqLnNvIgorCQl2bW92ZSB1c3Ivc2hhcmUvY2xhbmcK KwkJdm1vdmUgdXNyL3NoYXJlL2RvYy9jbGFuZworCQl2bW92ZSB1c3Ivc2hhcmUvbWFuL21hbjEv Y2xhbmcuMQorCX0KK30KKworbGliY2xhbmcxMl9wYWNrYWdlKCkgeworCXNob3J0X2Rlc2MrPSIg LSBDIGZyb250ZW5kIHJ1bnRpbWUgbGlicmFyeSIKKwlwa2dfaW5zdGFsbCgpIHsKKwkJdm1vdmUg InVzci9saWIvbGliY2xhbmcuc28uKiIKKwl9Cit9CisKK2xpYmNsYW5nMTItY3BwX3BhY2thZ2Uo KSB7CisJc2hvcnRfZGVzYys9IiAtIEMgZnJvbnRlbmQgcnVudGltZSBsaWJyYXJ5IChDKysgaW50 ZXJmYWNlKSIKKwlwa2dfaW5zdGFsbCgpIHsKKwkJdm1vdmUgInVzci9saWIvbGliY2xhbmctY3Bw LnNvLioiCisJfQorfQorCitsbGQxMl9wYWNrYWdlKCkgeworCWNvbmZsaWN0cz0ibGxkIgorCWxp YjMyZGlzYWJsZWQ9eWVzCisJc2hvcnRfZGVzYys9IiAtIGxpbmtlciIKKwlob21lcGFnZT0iaHR0 cHM6Ly9sbGQubGx2bS5vcmciCisJcGtnX2luc3RhbGwoKSB7CisJCXZtb3ZlIHVzci9iaW4vbGxk KgorCQl2bW92ZSB1c3IvYmluL3dhc20tbGQKKwkJdm1vdmUgdXNyL2Jpbi9sZC5sbGQqCisJCXZt b3ZlIHVzci9iaW4vbGQ2NC5sbGQqCisJCXZtb3ZlIHVzci9zaGFyZS9kb2MvbGxkCisJfQorfQor CitsbGQxMi1kZXZlbF9wYWNrYWdlKCkgeworCWNvbmZsaWN0cz0ibGxkLWRldmVsIgorCWxpYjMy ZGlzYWJsZWQ9eWVzCisJc2hvcnRfZGVzYys9IiAtIGxpbmtlciAtIGRldmVsb3BtZW50IGZpbGVz IgorCWhvbWVwYWdlPSJodHRwczovL2xsZC5sbHZtLm9yZyIKKwlkZXBlbmRzPSJsbGQxMj49JHt2 ZXJzaW9ufV8ke3JldmlzaW9ufSIKKwlwa2dfaW5zdGFsbCgpIHsKKwkJdm1vdmUgdXNyL2luY2x1 ZGUvbGxkCisJCXZtb3ZlIHVzci9saWIvY21ha2UvbGxkCisJCXZtb3ZlICJ1c3IvbGliL2xpYmxs ZCphIgorCX0KK30KKwogbGlibGx2bTEyX3BhY2thZ2UoKSB7CiAJc2hvcnRfZGVzYys9IiAtIHJ1 bnRpbWUgbGlicmFyeSIKIAlwa2dfaW5zdGFsbCgpIHsKCkZyb20gNzhkMTU2Y2MwZThjYmY4ZDY2 MjhkYzMxNjUyMzg3ODQxN2U5NTJiZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogcHJl eiA8cHJlekBuYXRpb25hbC5zaGl0cG9zdGluZy5hZ2VuY3k+CkRhdGU6IE1vbiwgMiBNYXkgMjAy MiAxOTowNzo0MCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDUvMjldIGNocm9taXVtOiB1cGRhdGUg Zm9yIGxsdm0xNAoKLS0tCiBzcmNwa2dzL2Nocm9taXVtL3RlbXBsYXRlIHwgMTAgKystLS0tLS0t LQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgOCBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9zcmNwa2dzL2Nocm9taXVtL3RlbXBsYXRlIGIvc3JjcGtncy9jaHJvbWl1bS90ZW1w bGF0ZQppbmRleCAwZGNlODc3MmZkYjguLjhiNjA0YTM0OTIyOSAxMDA2NDQKLS0tIGEvc3JjcGtn cy9jaHJvbWl1bS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2Nocm9taXVtL3RlbXBsYXRlCkBAIC0y LDcgKzIsNyBAQAogcGtnbmFtZT1jaHJvbWl1bQogIyBTZWUgaHR0cHM6Ly9jaHJvbWl1bWRhc2gu YXBwc3BvdC5jb20vcmVsZWFzZXM/cGxhdGZvcm09TGludXggZm9yIHRoZSBsYXRlc3QgdmVyc2lv bgogdmVyc2lvbj0xMDEuMC40OTUxLjQxCi1yZXZpc2lvbj0xCityZXZpc2lvbj0yCiBhcmNocz0i aTY4NiogeDg2XzY0KiBhYXJjaDY0KiBhcm12N2wqIHBwYzY0bGUqIgogc2hvcnRfZGVzYz0iR29v Z2xlJ3MgYXR0ZW1wdCBhdCBjcmVhdGluZyBhIHNhZmVyLCBmYXN0ZXIsIGFuZCBtb3JlIHN0YWJs ZSBicm93c2VyIgogbWFpbnRhaW5lcj0iRHVuY2FlbiA8ZHVuY2FlbkB2b2lkbGludXgub3JnPiIK QEAgLTIwLDcgKzIwLDcgQEAgZGVzY19vcHRpb25fZGVidWc9IkJ1aWxkIHdpdGggZGVidWcgc3lt Ym9scyIKIGRlc2Nfb3B0aW9uX2pzX29wdGltaXplPSJPcHRpbWl6ZSB0aGUgSlMgdXNlZCBmb3Ig Q2hyb21pdW0ncyBVSSIKIGRlc2Nfb3B0aW9uX3BpcGV3aXJlPSJFbmFibGUgc3VwcG9ydCBmb3Ig c2NyZWVuIHNoYXJpbmcgZm9yIFdlYlJUQyB2aWEgUGlwZVdpcmUiCiAKLWhvc3RtYWtlZGVwZW5k cz0iJCh2b3B0X2lmIGNsYW5nICJjbGFuZyBsbGQgbGx2bTEyIikgcHl0aG9uIHB5dGhvbjMgcGtn Y29uZiBwZXJsIGdwZXJmIGJpc29uIG5pbmphIG5vZGVqcyBod2lkcworaG9zdG1ha2VkZXBlbmRz PSIkKHZvcHRfaWYgY2xhbmcgImNsYW5nIGxsZCBsbHZtMTQiKSBweXRob24gcHl0aG9uMyBwa2dj b25mIHBlcmwgZ3BlcmYgYmlzb24gbmluamEgbm9kZWpzIGh3aWRzCiAgbGliYXRvbWljLWRldmVs IGxpYmV2ZW50LWRldmVsIGxpYmdsaWItZGV2ZWwgJCh2b3B0X2lmIGpzX29wdGltaXplIG9wZW5q ZGspIHdheWxhbmQtZGV2ZWwgbGliZXBveHktZGV2ZWwiCiBtYWtlZGVwZW5kcz0ibGlicG5nLWRl dmVsIGd0aystZGV2ZWwgZ3RrKzMtZGV2ZWwgbnNzLWRldmVsIHBjaXV0aWxzLWRldmVsCiAgbGli WGktZGV2ZWwgbGliZ2NyeXB0LWRldmVsIGxpYmdub21lLWtleXJpbmctZGV2ZWwgY3Vwcy1kZXZl bCBlbGZ1dGlscy1kZXZlbApAQCAtMjY2LDEyICsyNjYsNiBAQCBkb19jb25maWd1cmUoKSB7CiAJ CSdkaXNhYmxlX2ZpZWxkdHJpYWxfdGVzdGluZ19jb25maWc9dHJ1ZScKIAogCQknaXNfb2ZmaWNp YWxfYnVpbGQ9dHJ1ZScKLQotCQkjIHNlZ2ZhdWx0cyB3aXRoIGxsdm0tMTIuMC4xCi0JCSdpc19j Zmk9ZmFsc2UnCi0JCSd1c2VfdGhpbl9sdG89ZmFsc2UnCi0JCSd1c2VfY2ZpX2ljYWxsPWZhbHNl JwotCQknY2hyb21lX3Bnb19waGFzZT0wJwogCSkKIAogCWlmIFsgIiRDUk9TU19CVUlMRCIgXTsg dGhlbgoKRnJvbSBiYzNjZjk4ZTJiOWY2MDE5YjhjYTAwYzgyMGEzYjM1OGIwOTFkMWE5IE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBwcmV6IDxwcmV6QG5hdGlvbmFsLnNoaXRwb3N0aW5n LmFnZW5jeT4KRGF0ZTogTW9uLCAyIE1heSAyMDIyIDE5OjA3OjM4ICswMjAwClN1YmplY3Q6IFtQ QVRDSCAwNi8yOV0gZ2hkbDogdXBkYXRlIGZvciBsbHZtMTQKCi0tLQogc3JjcGtncy9naGRsL3Bh dGNoZXMve2xsdm0xMi5wYXRjaCA9PiBsbHZtLnBhdGNofSB8IDIgKysKIHNyY3BrZ3MvZ2hkbC90 ZW1wbGF0ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAyICstCiAyIGZpbGVzIGNoYW5n ZWQsIDMgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQogcmVuYW1lIHNyY3BrZ3MvZ2hkbC9w YXRjaGVzL3tsbHZtMTIucGF0Y2ggPT4gbGx2bS5wYXRjaH0gKDgyJSkKCmRpZmYgLS1naXQgYS9z cmNwa2dzL2doZGwvcGF0Y2hlcy9sbHZtMTIucGF0Y2ggYi9zcmNwa2dzL2doZGwvcGF0Y2hlcy9s bHZtLnBhdGNoCnNpbWlsYXJpdHkgaW5kZXggODIlCnJlbmFtZSBmcm9tIHNyY3BrZ3MvZ2hkbC9w YXRjaGVzL2xsdm0xMi5wYXRjaApyZW5hbWUgdG8gc3JjcGtncy9naGRsL3BhdGNoZXMvbGx2bS5w YXRjaAppbmRleCA4ZDJmNzZiZmRhMDYuLjkyMDE4MTZhZTA1MyAxMDA2NDQKLS0tIGEvc3JjcGtn cy9naGRsL3BhdGNoZXMvbGx2bTEyLnBhdGNoCisrKyBiL3NyY3BrZ3MvZ2hkbC9wYXRjaGVzL2xs dm0ucGF0Y2gKQEAgLTcsNiArNyw4IEBAIGluZGV4IGMxYzFhNmQuLmRhZDdjMzggMTAwNzU1CiAg ICAgICAgIGNoZWNrX3ZlcnNpb24gMTAuMCAkbGx2bV92ZXJzaW9uIHx8CiAgICAgICAgIGNoZWNr X3ZlcnNpb24gMTEuMCAkbGx2bV92ZXJzaW9uIHx8CiArICAgICAgIGNoZWNrX3ZlcnNpb24gMTIu MCAkbGx2bV92ZXJzaW9uIHx8CisrICAgICAgIGNoZWNrX3ZlcnNpb24gMTMuMCAkbGx2bV92ZXJz aW9uIHx8CisrICAgICAgIGNoZWNrX3ZlcnNpb24gMTQuMCAkbGx2bV92ZXJzaW9uIHx8CiAgICAg ICAgIGZhbHNlOyB0aGVuCiAgICAgIGVjaG8gIkRlYnVnZ2luZyBpcyBlbmFibGVkIHdpdGggbGx2 bSAkbGx2bV92ZXJzaW9uIgogICAgZWxzZQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9naGRsL3RlbXBs YXRlIGIvc3JjcGtncy9naGRsL3RlbXBsYXRlCmluZGV4IGU3NTZkOGMzY2Q4Ny4uOWNhMTE2OWIy MmJkIDEwMDY0NAotLS0gYS9zcmNwa2dzL2doZGwvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9naGRs L3RlbXBsYXRlCkBAIC03LDcgKzcsNyBAQAogcGtnbmFtZT1naGRsCiByZXZlcnRzPSIyMDE4MTEy OV8xIgogdmVyc2lvbj0xLjAuMAotcmV2aXNpb249MQorcmV2aXNpb249MgogYnVpbGRfc3R5bGU9 Y29uZmlndXJlCiBjb25maWd1cmVfYXJncz0iLS1wcmVmaXg9L3VzciAtLXNyY2Rpcj0uLiAtLWlu Y2Rpcj1saWIvZ2hkbC9pbmNsdWRlIgogbWFrZWRlcGVuZHM9InpsaWItZGV2ZWwiCgpGcm9tIDg3 NDRkN2Q3OWI3YjZmMmJkZjVlODk0NTNhNWY4NTg0ZmRiOTlkZjggTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206IHByZXogPHByZXpAbmF0aW9uYWwuc2hpdHBvc3RpbmcuYWdlbmN5PgpEYXRl OiBNb24sIDIgTWF5IDIwMjIgMTk6MDc6MzggKzAyMDAKU3ViamVjdDogW1BBVENIIDA3LzI5XSBx dDU6IHJlYnVpbGQgZm9yIGxsdm0xNAoKLS0tCiBzcmNwa2dzL3F0NS90ZW1wbGF0ZSB8IDIgKy0K IDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdp dCBhL3NyY3BrZ3MvcXQ1L3RlbXBsYXRlIGIvc3JjcGtncy9xdDUvdGVtcGxhdGUKaW5kZXggZWU3 ODhmYWQyMDE5Li4yNWYxNTU4M2E0MmQgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvcXQ1L3RlbXBsYXRl CisrKyBiL3NyY3BrZ3MvcXQ1L3RlbXBsYXRlCkBAIC0zLDcgKzMsNyBAQCBwa2duYW1lPXF0NQog dmVyc2lvbj01LjE1LjMrMjAyMjAyMjIKICMgY29tbWl0IGZjY2E4MmNhNDBhNWQ4YTAyYTRkZGQ5 MDg0NmQwNzBmMmM1OGNmYWQKICMgYmFzZSByZXBvOiBodHRwczovL2ludmVudC5rZGUub3JnL3F0 L3F0L3F0NQotcmV2aXNpb249MworcmV2aXNpb249NAogYnVpbGRfc3R5bGU9bWV0YQogaG9zdG1h a2VkZXBlbmRzPSJjbWFrZSBjbGFuZyBmbGV4IHBlcmwgZ2xpYi1kZXZlbCBwa2ctY29uZmlnCiAg cHl0aG9uIHJlMmMgcnVieSB3aGljaCIKCkZyb20gZmRjMWI5YjQ1ZjUxZDYxY2I5ZTkzMTQ4ZWIx ODExMDNhNjE4OGY4NSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogcHJleiA8cHJlekBu YXRpb25hbC5zaGl0cG9zdGluZy5hZ2VuY3k+CkRhdGU6IE1vbiwgMiBNYXkgMjAyMiAxOTowNzoz OCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDgvMjldIHRpbGl4OiByZWJ1aWxkIGZvciBsbHZtMTQK Ci0tLQogc3JjcGtncy90aWxpeC90ZW1wbGF0ZSB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGlu c2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvdGlsaXgvdGVt cGxhdGUgYi9zcmNwa2dzL3RpbGl4L3RlbXBsYXRlCmluZGV4IGQ4ZjAxNGJjNzhjNS4uYWMxYmY3 ZGQzYmRkIDEwMDY0NAotLS0gYS9zcmNwa2dzL3RpbGl4L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3Mv dGlsaXgvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICd0aWxp eCcKIHBrZ25hbWU9dGlsaXgKIHZlcnNpb249MS45LjQKLXJldmlzaW9uPTMKK3JldmlzaW9uPTQK IGJ1aWxkX3N0eWxlPW1lc29uCiBjb25maWd1cmVfYXJncz0iLURiX2x0bz1mYWxzZSIKIGhvc3Rt YWtlZGVwZW5kcz0iYXV0b21ha2UgZ2V0dGV4dC1kZXZlbCBnZGstcGl4YnVmIGdsaWItZGV2ZWwg bGRjIHBvNGEgcGtnLWNvbmZpZwoKRnJvbSA1YTFjYmZmN2UyY2I1MTMxNjc4NDFlODAzZTdmMWY0 ZDkwNTg0MmI0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBwcmV6IDxwcmV6QG5hdGlv bmFsLnNoaXRwb3N0aW5nLmFnZW5jeT4KRGF0ZTogTW9uLCAyIE1heSAyMDIyIDE5OjA3OjM4ICsw MjAwClN1YmplY3Q6IFtQQVRDSCAwOS8yOV0gc2hpYm9rZW4yOiByZWJ1aWxkIGZvciBsbHZtMTQK Ci0tLQogc3JjcGtncy9zaGlib2tlbjIvdGVtcGxhdGUgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwg MSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL3NoaWJv a2VuMi90ZW1wbGF0ZSBiL3NyY3BrZ3Mvc2hpYm9rZW4yL3RlbXBsYXRlCmluZGV4IGI1NjYxMzIy OWMxMy4uYWI5ZDJjNGNiOGY5IDEwMDY0NAotLS0gYS9zcmNwa2dzL3NoaWJva2VuMi90ZW1wbGF0 ZQorKysgYi9zcmNwa2dzL3NoaWJva2VuMi90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVt cGxhdGUgZmlsZSBmb3IgJ3NoaWJva2VuMicKIHBrZ25hbWU9c2hpYm9rZW4yCiB2ZXJzaW9uPTUu MTUuMgotcmV2aXNpb249NAorcmV2aXNpb249NQogX3BrZ25hbWU9InB5c2lkZS1zZXR1cC1vcGVu c291cmNlLXNyYy0ke3ZlcnNpb259Igogd3Jrc3JjPSIke19wa2duYW1lLyU1LjE0LjIuMS81LjE0 LjJ9IgogYnVpbGRfd3Jrc3JjPSJzb3VyY2VzL3NoaWJva2VuMiIKCkZyb20gYzQ0OGU5OTcwOWUz NjJkZDc4NWI3MzQ4ZmFlYzkwZTg1ZTBlYThhYiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJv bTogcHJleiA8cHJlekBuYXRpb25hbC5zaGl0cG9zdGluZy5hZ2VuY3k+CkRhdGU6IE1vbiwgMiBN YXkgMjAyMiAxOTowNzozOSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTAvMjldIGdub21lLWJ1aWxk ZXI6IHJlYnVpbGQgZm9yIGxsdm0xNAoKLS0tCiBzcmNwa2dzL2dub21lLWJ1aWxkZXIvdGVtcGxh dGUgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkK CmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21lLWJ1aWxkZXIvdGVtcGxhdGUgYi9zcmNwa2dzL2du b21lLWJ1aWxkZXIvdGVtcGxhdGUKaW5kZXggOTM1NTliMjE3NzRmLi41YTVhNTE4OTNhZTggMTAw NjQ0Ci0tLSBhL3NyY3BrZ3MvZ25vbWUtYnVpbGRlci90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2du b21lLWJ1aWxkZXIvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9y ICdnbm9tZS1idWlsZGVyJwogcGtnbmFtZT1nbm9tZS1idWlsZGVyCiB2ZXJzaW9uPTQxLjMKLXJl dmlzaW9uPTEKK3JldmlzaW9uPTIKIGJ1aWxkX3N0eWxlPW1lc29uCiBidWlsZF9oZWxwZXI9cWVt dQogY29uZmlndXJlX2FyZ3M9Ii1EaGVscD10cnVlIC1EbmV0d29ya190ZXN0cz1mYWxzZSIKCkZy b20gYzU4MGY3ODE1ZDdhODFkN2M0YmQ1NmJkMjdlYmNkMjJiODI2MzVkNiBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogcHJleiA8cHJlekBuYXRpb25hbC5zaGl0cG9zdGluZy5hZ2VuY3k+ CkRhdGU6IE1vbiwgMiBNYXkgMjAyMiAxOTowNzozOSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTEv MjldIGJjYzogcmVidWlsZCBmb3IgbGx2bTE0CgotLS0KIHNyY3BrZ3MvYmNjL3RlbXBsYXRlIHwg MiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZm IC0tZ2l0IGEvc3JjcGtncy9iY2MvdGVtcGxhdGUgYi9zcmNwa2dzL2JjYy90ZW1wbGF0ZQppbmRl eCA1NDUwOWI2M2Q1YTcuLjJjZmEwYTI5NzdkMCAxMDA2NDQKLS0tIGEvc3JjcGtncy9iY2MvdGVt cGxhdGUKKysrIGIvc3JjcGtncy9iY2MvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBs YXRlIGZpbGUgZm9yICdiY2MnCiBwa2duYW1lPWJjYwogdmVyc2lvbj0wLjI0LjAKLXJldmlzaW9u PTEKK3JldmlzaW9uPTIKIHdya3NyYz0iYmNjIgogYnVpbGRfc3R5bGU9Y21ha2UKIGNvbmZpZ3Vy ZV9hcmdzPSItRFJFVklTSU9OPSR7dmVyc2lvbn0gLURFTkFCTEVfTExWTV9TSEFSRUQ9MSIKCkZy b20gNDY2OTBkNWMwNDNkMzdjNmIzMjA5Y2U4MDk4ZTFhN2NkODVhYjEyMyBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogcHJleiA8cHJlekBuYXRpb25hbC5zaGl0cG9zdGluZy5hZ2VuY3k+ CkRhdGU6IE1vbiwgMiBNYXkgMjAyMiAxOTowNzozOSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTIv MjldIG1lc2E6IHJlYnVpbGQgZm9yIGxsdm0xNAoKLS0tCiBzcmNwa2dzL21lc2EvdGVtcGxhdGUg fCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRp ZmYgLS1naXQgYS9zcmNwa2dzL21lc2EvdGVtcGxhdGUgYi9zcmNwa2dzL21lc2EvdGVtcGxhdGUK aW5kZXggYzkwNTAwZGU3NDE2Li44ZjA4MjYyZmIxMzUgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvbWVz YS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL21lc2EvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAj IFRlbXBsYXRlIGZpbGUgZm9yICdtZXNhJwogcGtnbmFtZT1tZXNhCiB2ZXJzaW9uPTIxLjMuNwot cmV2aXNpb249MQorcmV2aXNpb249MgogYnVpbGRfc3R5bGU9bWVzb24KIGNvbmZpZ3VyZV9hcmdz PSItRGdsdm5kPXRydWUgLURzaGFyZWQtZ2xhcGk9ZW5hYmxlZCAtRGdibT1lbmFibGVkIC1EZWds PWVuYWJsZWQKICAtRG9zbWVzYT10cnVlIC1EZ2xlczE9ZW5hYmxlZCAtRGdsZXMyPWVuYWJsZWQg LURnbHg9ZHJpIC1EZHJpMz1lbmFibGVkCgpGcm9tIDEyN2EwYmI2N2FjMzgzYWVjYmJlOTAyNTY0 OWM2M2NjMmFlNGE3NDMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IHByZXogPHByZXpA bmF0aW9uYWwuc2hpdHBvc3RpbmcuYWdlbmN5PgpEYXRlOiBNb24sIDIgTWF5IDIwMjIgMTk6MDc6 NDAgKzAyMDAKU3ViamVjdDogW1BBVENIIDEzLzI5XSBqdUNpKys6IHJlYnVpbGQgZm9yIGxsdm0x NAoKLS0tCiBzcmNwa2dzL2p1Q2krKy90ZW1wbGF0ZSB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAx IGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvanVDaSsr L3RlbXBsYXRlIGIvc3JjcGtncy9qdUNpKysvdGVtcGxhdGUKaW5kZXggMWE3NjA0YjQ0YTAwLi41 MTAzMzI0ZGVjMjAgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvanVDaSsrL3RlbXBsYXRlCisrKyBiL3Ny Y3BrZ3MvanVDaSsrL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZv ciAnanVDaSsrJwogcGtnbmFtZT1qdUNpKysKIHZlcnNpb249MS42LjIKLXJldmlzaW9uPTIKK3Jl dmlzaW9uPTMKIF9saWJjbGFuZ21tX2NvbW1pdD0iYjM0MmY0ZGQ2ZGU0ZmU1MDlhNjkyYTRiNGZj ZmM3ZTI0YWFlOTU5MCIKIF90aW55X2NvbW1pdD0iYzljOGJmODEwZGRhZDhjZDE3ODgyYjlhOWVl NjI4YTY5MGU3NzlmNSIKIHdya3NyYz0ianVjaXBwLXYke3ZlcnNpb259IgoKRnJvbSAzOTRlZTcw ZTgyNDJjZmVlNzFmNGFmZWUzZGMzMGVmODFmMGU3Y2ZmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQpGcm9tOiBwcmV6IDxwcmV6QG5hdGlvbmFsLnNoaXRwb3N0aW5nLmFnZW5jeT4KRGF0ZTogTW9u LCAyIE1heSAyMDIyIDE5OjA3OjQwICswMjAwClN1YmplY3Q6IFtQQVRDSCAxNC8yOV0ga2RldmVs b3A6IHJlYnVpbGQgZm9yIGxsdm0xNAoKLS0tCiBzcmNwa2dzL2tkZXZlbG9wL3RlbXBsYXRlIHwg MiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZm IC0tZ2l0IGEvc3JjcGtncy9rZGV2ZWxvcC90ZW1wbGF0ZSBiL3NyY3BrZ3Mva2RldmVsb3AvdGVt cGxhdGUKaW5kZXggMDEwMTg1ODQ5ZDgwLi5hYmYwOGMzMTMwNzEgMTAwNjQ0Ci0tLSBhL3NyY3Br Z3Mva2RldmVsb3AvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9rZGV2ZWxvcC90ZW1wbGF0ZQpAQCAt MSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2tkZXZlbG9wJwogcGtnbmFtZT1rZGV2 ZWxvcAogdmVyc2lvbj0yMS4xMi4zCi1yZXZpc2lvbj0xCityZXZpc2lvbj0yCiBidWlsZF9zdHls ZT1jbWFrZQogY29uZmlndXJlX2FyZ3M9Ii1EQlVJTERfVEVTVElORz1PRkYiCiBob3N0bWFrZWRl cGVuZHM9ImV4dHJhLWNtYWtlLW1vZHVsZXMgcXQ1LXFtYWtlIHF0NS1ob3N0LXRvb2xzIHF0NS10 b29scwoKRnJvbSBiOGU5MDkwNzllMWYxZjcwYjg3ODc2ZGE3M2FkNmIxNzE4ZjJhMjRkIE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBwcmV6IDxwcmV6QG5hdGlvbmFsLnNoaXRwb3N0aW5n LmFnZW5jeT4KRGF0ZTogTW9uLCAyIE1heSAyMDIyIDE5OjA3OjQwICswMjAwClN1YmplY3Q6IFtQ QVRDSCAxNS8yOV0gY29kZWxpdGU6IHJlYnVpbGQgZm9yIGxsdm0xNAoKLS0tCiBzcmNwa2dzL2Nv ZGVsaXRlL3RlbXBsYXRlIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAx IGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9jb2RlbGl0ZS90ZW1wbGF0ZSBiL3Ny Y3BrZ3MvY29kZWxpdGUvdGVtcGxhdGUKaW5kZXggM2E5OTNhMmMwY2ZiLi4yNGUyYzg3OWRkNDUg MTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvY29kZWxpdGUvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9jb2Rl bGl0ZS90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2NvZGVs aXRlJwogcGtnbmFtZT1jb2RlbGl0ZQogdmVyc2lvbj0xNS4wLjYKLXJldmlzaW9uPTEKK3Jldmlz aW9uPTIKIGJ1aWxkX3N0eWxlPWNtYWtlCiBidWlsZF9oZWxwZXI9Y21ha2Utd3hXaWRnZXRzLWd0 azMKIGNvbmZpZ3VyZV9hcmdzPSItRFdJVEhfUENIPTAgLURXSVRIX1dYX0NPTkZJRz13eC1jb25m aWctZ3RrMwoKRnJvbSA3MmFhZDkwNmU4MGExN2NjYzk3Mzk4ZjEzMjQxNzZlOWQwY2YzODU3IE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBwcmV6IDxwcmV6QG5hdGlvbmFsLnNoaXRwb3N0 aW5nLmFnZW5jeT4KRGF0ZTogTW9uLCAyIE1heSAyMDIyIDE5OjA3OjQxICswMjAwClN1YmplY3Q6 IFtQQVRDSCAxNi8yOV0gY2NsczogcmVidWlsZCBmb3IgbGx2bTE0CgotLS0KIHNyY3BrZ3MvY2Ns cy90ZW1wbGF0ZSB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxl dGlvbigtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY2Nscy90ZW1wbGF0ZSBiL3NyY3BrZ3MvY2Ns cy90ZW1wbGF0ZQppbmRleCBmYmI3YzY4NDdiYzEuLjQwYWJhM2I1NWJmZSAxMDA2NDQKLS0tIGEv c3JjcGtncy9jY2xzL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvY2Nscy90ZW1wbGF0ZQpAQCAtMSw3 ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2NjbHMnCiBwa2duYW1lPWNjbHMKIHZlcnNp b249MC4yMDIxMDMzMAotcmV2aXNpb249MgorcmV2aXNpb249MwogYnVpbGRfc3R5bGU9Y21ha2UK IGhvc3RtYWtlZGVwZW5kcz0iY2xhbmctdG9vbHMtZXh0cmEiCiBtYWtlZGVwZW5kcz0ibGx2bSBu Y3Vyc2VzLWRldmVsIHJhcGlkanNvbiB6bGliLWRldmVsIGNsYW5nLXRvb2xzLWV4dHJhIgoKRnJv bSAzMTNiOWRjYWVkMjA4ZGRjMTE5ODM5MGNkZjVkMGY2MGUwMWMwMGMxIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiBwcmV6IDxwcmV6QG5hdGlvbmFsLnNoaXRwb3N0aW5nLmFnZW5jeT4K RGF0ZTogTW9uLCAyIE1heSAyMDIyIDE5OjA3OjQxICswMjAwClN1YmplY3Q6IFtQQVRDSCAxNy8y OV0gY2xhenk6IHJlYnVpbGQgZm9yIGxsdm0xNAoKLS0tCiBzcmNwa2dzL2NsYXp5L3RlbXBsYXRl IHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpk aWZmIC0tZ2l0IGEvc3JjcGtncy9jbGF6eS90ZW1wbGF0ZSBiL3NyY3BrZ3MvY2xhenkvdGVtcGxh dGUKaW5kZXggMTFmM2JhYjU1YWVmLi5mODFkZTA4YWI4MzYgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mv Y2xhenkvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9jbGF6eS90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcg QEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2NsYXp5JwogcGtnbmFtZT1jbGF6eQogdmVyc2lvbj0x LjExCi1yZXZpc2lvbj0xCityZXZpc2lvbj0yCiBidWlsZF9zdHlsZT1jbWFrZQogYnVpbGRfaGVs cGVyPXFlbXUKIGhvc3RtYWtlZGVwZW5kcz0ibGx2bSIKCkZyb20gNDU1MGM1NmFlZGE3YTFmYjkw Y2MwYzhmMWI1ODRhMmQxYzJlYTQwMCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogcHJl eiA8cHJlekBuYXRpb25hbC5zaGl0cG9zdGluZy5hZ2VuY3k+CkRhdGU6IE1vbiwgMiBNYXkgMjAy MiAxOTowNzo0MSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTgvMjldIGJwZnRyYWNlOiByZWJ1aWxk IGZvciBsbHZtMTQKCi0tLQogc3JjcGtncy9icGZ0cmFjZS90ZW1wbGF0ZSB8IDIgKy0KIDEgZmls ZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MvYnBmdHJhY2UvdGVtcGxhdGUgYi9zcmNwa2dzL2JwZnRyYWNlL3RlbXBsYXRlCmluZGV4 IDI4YWIzYzYyNjM5OS4uZWIyNDgwZDIyMzBlIDEwMDY0NAotLS0gYS9zcmNwa2dzL2JwZnRyYWNl L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvYnBmdHJhY2UvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBA CiAjIFRlbXBsYXRlIGZpbGUgZm9yICdicGZ0cmFjZScKIHBrZ25hbWU9YnBmdHJhY2UKIHZlcnNp b249MC4xNC4xCi1yZXZpc2lvbj0xCityZXZpc2lvbj0yCiBhcmNocz0ieDg2XzY0KiBhYXJjaDY0 KiBwcGM2NCoiCiBidWlsZF9zdHlsZT1jbWFrZQogY29uZmlndXJlX2FyZ3M9Ii1EQlVJTERfVEVT VElORz1PRkYiICAjIG5lZWRzIHJvb3QgdG8gcnVuCgpGcm9tIGJkMjZhYjhlZmYzYWI5ZmM3YzE0 NTAxMjI1MDcwNTdiZGE4NDI5ZmIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IHByZXog PHByZXpAbmF0aW9uYWwuc2hpdHBvc3RpbmcuYWdlbmN5PgpEYXRlOiBNb24sIDIgTWF5IDIwMjIg MTk6MDc6NDEgKzAyMDAKU3ViamVjdDogW1BBVENIIDE5LzI5XSBydGFnczogcmVidWlsZCBmb3Ig bGx2bTE0CgotLS0KIHNyY3BrZ3MvcnRhZ3MvdGVtcGxhdGUgfCAyICstCiAxIGZpbGUgY2hhbmdl ZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL3J0 YWdzL3RlbXBsYXRlIGIvc3JjcGtncy9ydGFncy90ZW1wbGF0ZQppbmRleCBiNDk2YTFiMGU3MjEu LjliMTYxZTY5MGQ3NiAxMDA2NDQKLS0tIGEvc3JjcGtncy9ydGFncy90ZW1wbGF0ZQorKysgYi9z cmNwa2dzL3J0YWdzL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZv ciAncnRhZ3MnCiBwa2duYW1lPXJ0YWdzCiB2ZXJzaW9uPTIuMzgKLXJldmlzaW9uPTUKK3Jldmlz aW9uPTYKIGJ1aWxkX3N0eWxlPWNtYWtlCiAjIERvbid0IHJ1biB0ZXN0cyBpbiBkb19pbnN0YWxs LCBwbGVhc2UuCiBjb25maWd1cmVfYXJncz0iLURTS0lQX0NURVNUPVRSVUUiCgpGcm9tIDg1YzFk NWVkNTVjOWNmZWMyNmZiMzU5ZWZkZjc3NzczZjMwYmM2NGMgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCkZyb206IHByZXogPHByZXpAbmF0aW9uYWwuc2hpdHBvc3RpbmcuYWdlbmN5PgpEYXRlOiBN b24sIDIgTWF5IDIwMjIgMjE6MDc6MTkgKzAyMDAKU3ViamVjdDogW1BBVENIIDIwLzI5XSBiZWln bmV0OiByZW1vdmUgcGFja2FnZQoKLS0tCiBzcmNwa2dzL2JlaWduZXQvcGF0Y2hlcy9jbF91aW50 LnBhdGNoICAgICAgICAgfCAgMjIgLQogLi4uNDE5YTAwMDhlMzhlZjJkOWQyNTVkOWU5Yzc0ZTlm YmEwODRiLnBhdGNoIHwgMTM0IC0tLQogc3JjcGtncy9iZWlnbmV0L3BhdGNoZXMvbGx2bTA2LnBh dGNoICAgICAgICAgIHwgIDMzIC0KIHNyY3BrZ3MvYmVpZ25ldC9wYXRjaGVzL2xsdm0wOC5wYXRj aCAgICAgICAgICB8ICA1NiAtLQogc3JjcGtncy9iZWlnbmV0L3BhdGNoZXMvbGx2bTA5LnBhdGNo ICAgICAgICAgIHwgMTExIC0tLQogc3JjcGtncy9iZWlnbmV0L3BhdGNoZXMvbGx2bTEwLnBhdGNo ICAgICAgICAgIHwgMzQ3IC0tLS0tLS0KIHNyY3BrZ3MvYmVpZ25ldC9wYXRjaGVzL2xsdm0xMS5w YXRjaCAgICAgICAgICB8IDkzNyAtLS0tLS0tLS0tLS0tLS0tLS0KIHNyY3BrZ3MvYmVpZ25ldC9w YXRjaGVzL2xsdm0xMi5wYXRjaCAgICAgICAgICB8IDExNSAtLS0KIHNyY3BrZ3MvYmVpZ25ldC9w YXRjaGVzL211c2wucGF0Y2ggICAgICAgICAgICB8ICAxMSAtCiBzcmNwa2dzL2JlaWduZXQvdGVt cGxhdGUgICAgICAgICAgICAgICAgICAgICAgfCAgMjIgLQogc3JjcGtncy9iZWlnbmV0L3VwZGF0 ZSAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxIC0KIHNyY3BrZ3MvcmVtb3ZlZC1wYWNrYWdl cy90ZW1wbGF0ZSAgICAgICAgICAgICB8ICAgMyArLQogMTIgZmlsZXMgY2hhbmdlZCwgMiBpbnNl cnRpb25zKCspLCAxNzkwIGRlbGV0aW9ucygtKQogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mv YmVpZ25ldC9wYXRjaGVzL2NsX3VpbnQucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dz L2JlaWduZXQvcGF0Y2hlcy9lMWIyNDE5YTAwMDhlMzhlZjJkOWQyNTVkOWU5Yzc0ZTlmYmEwODRi LnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9iZWlnbmV0L3BhdGNoZXMvbGx2bTA2 LnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9iZWlnbmV0L3BhdGNoZXMvbGx2bTA4 LnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9iZWlnbmV0L3BhdGNoZXMvbGx2bTA5 LnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9iZWlnbmV0L3BhdGNoZXMvbGx2bTEw LnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9iZWlnbmV0L3BhdGNoZXMvbGx2bTEx LnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9iZWlnbmV0L3BhdGNoZXMvbGx2bTEy LnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9iZWlnbmV0L3BhdGNoZXMvbXVzbC5w YXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvYmVpZ25ldC90ZW1wbGF0ZQogZGVsZXRl IG1vZGUgMTAwNjQ0IHNyY3BrZ3MvYmVpZ25ldC91cGRhdGUKCmRpZmYgLS1naXQgYS9zcmNwa2dz L2JlaWduZXQvcGF0Y2hlcy9jbF91aW50LnBhdGNoIGIvc3JjcGtncy9iZWlnbmV0L3BhdGNoZXMv Y2xfdWludC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODZiYTAwZjA0ZTk1 Li4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9iZWlnbmV0L3BhdGNoZXMvY2xfdWludC5wYXRj aAorKysgL2Rldi9udWxsCkBAIC0xLDIyICswLDAgQEAKLS0tLSBhL3NyYy9jbF9hcGlfa2VybmVs LmMJMjAxNy0wOS0yMiAxMDowNToyMi4wMDAwMDAwMDAgKzAyMDAKLSsrKyBiL3NyYy9jbF9hcGlf a2VybmVsLmMJMjAyMC0wMy0yNCAxODoyNzo0MC4xODY0ODU4ODcgKzAxMDAKLUBAIC0xNTEsNyAr MTUxLDcgQEAKLSAgICAgICAgIGZpeGVkX2xvY2FsX3N6WzBdID0gMTY7Ci0gICAgICAgICBmaXhl ZF9sb2NhbF9zelsxXSA9IDE7Ci0gICAgICAgfSBlbHNlIHsKLS0gICAgICAgIHVpbnQgaiwgbWF4 RGltU2l6ZSA9IDY0IC8qIGZyb20gNjQ/ICovLCBtYXhHcm91cFNpemUgPSAyNTY7IC8vTUFYX1dP UktfR1JPVVBfU0laRSBtYXkgdG9vIGxhcmdlCi0rICAgICAgICBjbF91aW50IGosIG1heERpbVNp emUgPSA2NCAvKiBmcm9tIDY0PyAqLywgbWF4R3JvdXBTaXplID0gMjU2OyAvL01BWF9XT1JLX0dS T1VQX1NJWkUgbWF5IHRvbyBsYXJnZQotICAgICAgICAgc2l6ZV90IHJlYWxHcm91cFNpemUgPSAx OwotICAgICAgICAgZm9yIChpID0gMDsgaSA8IHdvcmtfZGltOyBpKyspIHsKLSAgICAgICAgICAg Zm9yIChqID0gbWF4RGltU2l6ZTsgaiA+IDE7IGotLSkgewotLS0tIGEvc3JjL2NsX2VucXVldWUu YwkyMDE3LTA5LTIyIDEwOjA1OjIyLjAwMDAwMDAwMCArMDIwMAotKysrIGIvc3JjL2NsX2VucXVl dWUuYwkyMDIwLTAzLTI0IDE4OjMwOjEyLjAzMTQ3OTgzMyArMDEwMAotQEAgLTQ5NCw3ICs0OTQs NyBAQAotIGNsX2ludCBjbF9lbnF1ZXVlX3N2bV9mcmVlKGVucXVldWVfZGF0YSAqZGF0YSwgY2xf aW50IHN0YXR1cykgewotICAgaW50IGk7Ci0gICB2b2lkICoqcG9pbnRlcnMgPSBkYXRhLT5wb2lu dGVyczsKLS0gIHVpbnQgbnVtX3N2bV9wdHJzID0gZGF0YS0+c2l6ZTsKLSsgIGNsX3VpbnQgbnVt X3N2bV9wdHJzID0gZGF0YS0+c2l6ZTsKLSAgIGNsX2ludCBlcnIgPSBDTF9TVUNDRVNTOwotIAot ICAgaWYgKHN0YXR1cyAhPSBDTF9DT01QTEVURSkKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvYmVpZ25l dC9wYXRjaGVzL2UxYjI0MTlhMDAwOGUzOGVmMmQ5ZDI1NWQ5ZTljNzRlOWZiYTA4NGIucGF0Y2gg Yi9zcmNwa2dzL2JlaWduZXQvcGF0Y2hlcy9lMWIyNDE5YTAwMDhlMzhlZjJkOWQyNTVkOWU5Yzc0 ZTlmYmEwODRiLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4ZGU5ZTZlMmYw OTMuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2JlaWduZXQvcGF0Y2hlcy9lMWIyNDE5YTAw MDhlMzhlZjJkOWQyNTVkOWU5Yzc0ZTlmYmEwODRiLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEs MTM0ICswLDAgQEAKLUZyb20gZTFiMjQxOWEwMDA4ZTM4ZWYyZDlkMjU1ZDllOWM3NGU5ZmJhMDg0 YiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206ICJSZWJlY2NhIE4uIFBhbG1lciIgPHJl YmVjY2FfcGFsbWVyQHpvaG8uY29tPgotRGF0ZTogU2F0LCAyMSBKdWwgMjAxOCAyMDowNTo1NCAr MDEwMAotU3ViamVjdDogQWRkIHByZWxpbWluYXJ5IExMVk0gNyBzdXBwb3J0Ci0KLVRoaXMgaXMg cHJlbGltaW5hcnkgYmVjYXVzZSBMTFZNIDcgaGFzIG5vdCBiZWVuIHJlbGVhc2VkIHlldDoKLWl0 IHdhcyB0ZXN0ZWQgd2l0aCB0aGUgc25hcHNob3QgZnJvbSBEZWJpYW4gZXhwZXJpbWVudGFsIChz dm4zMzY4OTQpLgotCi0xLkNoYW5nZSBsaW5raW5nIG9yZGVyLCBhcyBjbGFuZ0NvZGVHZW4gbm93 IGxpbmtzIHRvIGNsYW5nRnJvbnRlbmQKLTIuUGFzcyByZWZlcmVuY2VzIG5vdCBwb2ludGVycyB0 byBXcml0ZUJpdGNvZGVUb0ZpbGUgYW5kIENsb25lTW9kdWxlCi0zLkFkZCB0aGUgaGVhZGVycyB0 aGF0IExvb3BTaW1wbGlmeUlELCBMQ1NTQUlEIGFuZAotc29tZSBjcmVhdGUqUGFzcyBoYXZlIG1v dmVkIHRvCi00LkRlZmluZSBvdXIgREVCVUcgd2hldGhlciBvciBub3Qgd2UganVzdCB1bmRlZmlu ZWQgTExWTSdzCi0odGhlaXJzIGlzIG5vdyBMTFZNX0RFQlVHLCBidXQgd2UgbmV2ZXIgYWN0dWFs bHkgdXNlIGl0KQotCi1TaWduZWQtb2ZmLWJ5OiBSZWJlY2NhIE4uIFBhbG1lciA8cmViZWNjYV9w YWxtZXJAem9oby5jb20+Ci1SZXZpZXdlZC1ieTogWWFuZyBSb25nIDxyb25nLnIueWFuZ0BpbnRl bC5jb20+Ci0tLS0KLSBDTWFrZS9GaW5kTExWTS5jbWFrZSAgICAgICAgICAgICAgICAgICAgIHwg MiArLQotIGJhY2tlbmQvc3JjL2JhY2tlbmQvZ2VuX3Byb2dyYW0uY3BwICAgICAgfCA4ICsrKysr KysrCi0gYmFja2VuZC9zcmMvYmFja2VuZC9wcm9ncmFtLmNwcCAgICAgICAgICB8IDQgKysrKwot IGJhY2tlbmQvc3JjL2xsdm0vRXhwYW5kTGFyZ2VJbnRlZ2Vycy5jcHAgfCAyICstCi0gYmFja2Vu ZC9zcmMvbGx2bS9sbHZtX2JpdGNvZGVfbGluay5jcHAgICB8IDQgKysrKwotIGJhY2tlbmQvc3Jj L2xsdm0vbGx2bV9pbmNsdWRlcy5ocHAgICAgICAgfCA0ICsrKysKLSA2IGZpbGVzIGNoYW5nZWQs IDIyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9DTWFrZS9G aW5kTExWTS5jbWFrZSBiL0NNYWtlL0ZpbmRMTFZNLmNtYWtlCi1pbmRleCA1NDU3ZjI0Li5mODgy NTg5IDEwMDY0NAotLS0tIGEvQ01ha2UvRmluZExMVk0uY21ha2UKLSsrKyBiL0NNYWtlL0ZpbmRM TFZNLmNtYWtlCi1AQCAtMTEzLDEwICsxMTMsMTAgQEAgbWFjcm8oYWRkX29uZV9saWIgbmFtZSkK LSBlbmRtYWNybygpCi0gCi0gI0Fzc3VtZSBjbGFuZyBsaWIgcGF0aCBzYW1lIGFzIGxsdm0gbGli IHBhdGgKLSthZGRfb25lX2xpYigiY2xhbmdDb2RlR2VuIikKLSBhZGRfb25lX2xpYigiY2xhbmdG cm9udGVuZCIpCi0gYWRkX29uZV9saWIoImNsYW5nU2VyaWFsaXphdGlvbiIpCi0gYWRkX29uZV9s aWIoImNsYW5nRHJpdmVyIikKLS1hZGRfb25lX2xpYigiY2xhbmdDb2RlR2VuIikKLSBhZGRfb25l X2xpYigiY2xhbmdTZW1hIikKLSBhZGRfb25lX2xpYigiY2xhbmdTdGF0aWNBbmFseXplckZyb250 ZW5kIikKLSBhZGRfb25lX2xpYigiY2xhbmdTdGF0aWNBbmFseXplckNoZWNrZXJzIikKLWRpZmYg LS1naXQgYS9iYWNrZW5kL3NyYy9iYWNrZW5kL2dlbl9wcm9ncmFtLmNwcCBiL2JhY2tlbmQvc3Jj L2JhY2tlbmQvZ2VuX3Byb2dyYW0uY3BwCi1pbmRleCAyNzRjOTljLi40MTU5MjM0IDEwMDY0NAot LS0tIGEvYmFja2VuZC9zcmMvYmFja2VuZC9nZW5fcHJvZ3JhbS5jcHAKLSsrKyBiL2JhY2tlbmQv c3JjL2JhY2tlbmQvZ2VuX3Byb2dyYW0uY3BwCi1AQCAtNDU0LDcgKzQ1NCwxMSBAQCBuYW1lc3Bh Y2UgZ2JlIHsKLSAjaWZkZWYgR0JFX0NPTVBJTEVSX0FWQUlMQUJMRQotICAgICAgIHN0ZDo6c3Ry aW5nIHN0cjsKLSAgICAgICBsbHZtOjpyYXdfc3RyaW5nX29zdHJlYW0gT1Moc3RyKTsKLSsjaWYg TExWTV9WRVJTSU9OX01BSk9SID49IDcKLSsgICAgICBsbHZtOjpXcml0ZUJpdGNvZGVUb0ZpbGUo KigobGx2bTo6TW9kdWxlKilwcm9nLT5tb2R1bGUpLCBPUyk7Ci0rI2Vsc2UKLSAgICAgICBsbHZt OjpXcml0ZUJpdGNvZGVUb0ZpbGUoKGxsdm06Ok1vZHVsZSopcHJvZy0+bW9kdWxlLCBPUyk7Ci0r I2VuZGlmCi0gICAgICAgc3RkOjpzdHJpbmcmIGJpbl9zdHIgPSBPUy5zdHIoKTsKLSAgICAgICBp bnQgbGxzeiA9IGJpbl9zdHIuc2l6ZSgpOwotICAgICAgICpiaW5hcnkgPSAoY2hhciAqKW1hbGxv YyhzaXplb2YoY2hhcikgKiAobGxzeisxKSApOwotQEAgLTU0NSw3ICs1NDksMTEgQEAgbmFtZXNw YWNlIGdiZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm1vZFJlZik7 Ci0gICAgICAgICBzcmMgPSBsbHZtOjp1bndyYXAobW9kUmVmKTsKLSAgICAgICB9Ci0rI2lmIExM Vk1fVkVSU0lPTl9NQUpPUiA+PSA3Ci0rICAgICAgbGx2bTo6TW9kdWxlKiBjbG9uZSA9IGxsdm06 OkNsb25lTW9kdWxlKCpzcmMpLnJlbGVhc2UoKTsKLSsjZWxzZQotICAgICAgIGxsdm06Ok1vZHVs ZSogY2xvbmUgPSBsbHZtOjpDbG9uZU1vZHVsZShzcmMpLnJlbGVhc2UoKTsKLSsjZW5kaWYKLSAg ICAgICBpZiAoTExWTUxpbmtNb2R1bGVzMih3cmFwKGRzdCksIHdyYXAoY2xvbmUpKSkgewotICNl bGlmIExMVk1fVkVSU0lPTl9NQUpPUiAqIDEwICsgTExWTV9WRVJTSU9OX01JTk9SID49IDM3Ci0g ICAgICAgaWYgKExMVk1MaW5rTW9kdWxlcyh3cmFwKGRzdCksIHdyYXAoc3JjKSwgTExWTUxpbmtl clByZXNlcnZlU291cmNlX1JlbW92ZWQsICZlcnJNc2cpKSB7Ci1kaWZmIC0tZ2l0IGEvYmFja2Vu ZC9zcmMvYmFja2VuZC9wcm9ncmFtLmNwcCBiL2JhY2tlbmQvc3JjL2JhY2tlbmQvcHJvZ3JhbS5j cHAKLWluZGV4IGMzN2M1OTUuLmIzNmY3YjQgMTAwNjQ0Ci0tLS0gYS9iYWNrZW5kL3NyYy9iYWNr ZW5kL3Byb2dyYW0uY3BwCi0rKysgYi9iYWNrZW5kL3NyYy9iYWNrZW5kL3Byb2dyYW0uY3BwCi1A QCAtNzk0LDcgKzc5NCwxMSBAQCBuYW1lc3BhY2UgZ2JlIHsKLSAgICAgICBsbHZtOjpyYXdfZmRf b3N0cmVhbSBvc3RyZWFtIChkdW1wU1BJUkJpbmFyeU5hbWUuY19zdHIoKSwKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBlcnIsIGxsdm06OnN5czo6ZnM6OkZfTm9uZSk7Ci0g ICAgICAgaWYgKCFlcnIpCi0rI2lmIExMVk1fVkVSU0lPTl9NQUpPUjw3Ci0gICAgICAgICBsbHZt OjpXcml0ZUJpdGNvZGVUb0ZpbGUoKm91dF9tb2R1bGUsIG9zdHJlYW0pOwotKyNlbHNlCi0rICAg ICAgICBsbHZtOjpXcml0ZUJpdGNvZGVUb0ZpbGUoKipvdXRfbW9kdWxlLCBvc3RyZWFtKTsKLSsj ZW5kaWYKLSAgICAgfQotICNlbmRpZgotICAgICByZXR1cm4gdHJ1ZTsKLWRpZmYgLS1naXQgYS9i YWNrZW5kL3NyYy9sbHZtL0V4cGFuZExhcmdlSW50ZWdlcnMuY3BwIGIvYmFja2VuZC9zcmMvbGx2 bS9FeHBhbmRMYXJnZUludGVnZXJzLmNwcAotaW5kZXggODUxNWRjMS4uNGFlYzQ0ZSAxMDA2NDQK LS0tLSBhL2JhY2tlbmQvc3JjL2xsdm0vRXhwYW5kTGFyZ2VJbnRlZ2Vycy5jcHAKLSsrKyBiL2Jh Y2tlbmQvc3JjL2xsdm0vRXhwYW5kTGFyZ2VJbnRlZ2Vycy5jcHAKLUBAIC05OSw4ICs5OSw4IEBA IHVzaW5nIG5hbWVzcGFjZSBsbHZtOwotIAotICNpZmRlZiBERUJVRwotICAgI3VuZGVmIERFQlVH Ci0tICAjZGVmaW5lIERFQlVHKC4uLikKLSAjZW5kaWYKLSsjZGVmaW5lIERFQlVHKC4uLikKLSAv LyBCcmVhayBpbnN0cnVjdGlvbnMgdXAgaW50byBubyBsYXJnZXIgdGhhbiA2NC1iaXQgY2h1bmtz LgotIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBrQ2h1bmtCaXRzID0gNjQ7Ci0gc3RhdGljIGNvbnN0 IHVuc2lnbmVkIGtDaHVua0J5dGVzID0ga0NodW5rQml0cyAvIENIQVJfQklUOwotZGlmZiAtLWdp dCBhL2JhY2tlbmQvc3JjL2xsdm0vbGx2bV9iaXRjb2RlX2xpbmsuY3BwIGIvYmFja2VuZC9zcmMv bGx2bS9sbHZtX2JpdGNvZGVfbGluay5jcHAKLWluZGV4IGVmNTZlNGMuLjRjM2UyMGUgMTAwNjQ0 Ci0tLS0gYS9iYWNrZW5kL3NyYy9sbHZtL2xsdm1fYml0Y29kZV9saW5rLmNwcAotKysrIGIvYmFj a2VuZC9zcmMvbGx2bS9sbHZtX2JpdGNvZGVfbGluay5jcHAKLUBAIC0zNDAsNyArMzQwLDExIEBA IG5hbWVzcGFjZSBnYmUKLSAgICAgLyogV2UgdXNlIGJlaWduZXQncyBiaXRjb2RlIGFzIGRzdCBi ZWNhdXNlIGl0IHdpbGwgaGF2ZSBhIGxvdCBvZgotICAgICAgICBsYXp5IGZ1bmN0aW9ucyB3aGlj aCB3aWxsIG5vdCBiZSBsb2FkZWQuICovCi0gI2lmIExMVk1fVkVSU0lPTl9NQUpPUiAqIDEwICsg TExWTV9WRVJTSU9OX01JTk9SID49IDM5Ci0rI2lmIExMVk1fVkVSU0lPTl9NQUpPUiA+PSA3Ci0r ICAgIGxsdm06Ok1vZHVsZSAqIGxpbmtlZF9tb2R1bGUgPSBsbHZtOjpDbG9uZU1vZHVsZSgqKGxs dm06Ok1vZHVsZSopbW9kKS5yZWxlYXNlKCk7Ci0rI2Vsc2UKLSAgICAgbGx2bTo6TW9kdWxlICog bGlua2VkX21vZHVsZSA9IGxsdm06OkNsb25lTW9kdWxlKChsbHZtOjpNb2R1bGUqKW1vZCkucmVs ZWFzZSgpOwotKyNlbmRpZgotICAgICBpZihMTFZNTGlua01vZHVsZXMyKHdyYXAoY2xvbmVkTGli KSwgd3JhcChsaW5rZWRfbW9kdWxlKSkpIHsKLSAjZWxzZQotICAgICBjaGFyKiBlcnJvck1zZzsK LWRpZmYgLS1naXQgYS9iYWNrZW5kL3NyYy9sbHZtL2xsdm1faW5jbHVkZXMuaHBwIGIvYmFja2Vu ZC9zcmMvbGx2bS9sbHZtX2luY2x1ZGVzLmhwcAotaW5kZXggMTg0NTUzYS4uZmZjY2YwMiAxMDA2 NDQKLS0tLSBhL2JhY2tlbmQvc3JjL2xsdm0vbGx2bV9pbmNsdWRlcy5ocHAKLSsrKyBiL2JhY2tl bmQvc3JjL2xsdm0vbGx2bV9pbmNsdWRlcy5ocHAKLUBAIC04OSw2ICs4OSwxMCBAQAotICNpbmNs dWRlICJsbHZtL0NvZGVHZW4vSW50cmluc2ljTG93ZXJpbmcuaCIKLSAKLSAjaW5jbHVkZSAibGx2 bS9UcmFuc2Zvcm1zL1NjYWxhci5oIgotKyNpZiBMTFZNX1ZFUlNJT05fTUFKT1IgPj0gNwotKyNp bmNsdWRlICJsbHZtL1RyYW5zZm9ybXMvVXRpbHMuaCIKLSsjaW5jbHVkZSAibGx2bS9UcmFuc2Zv cm1zL0luc3RDb21iaW5lL0luc3RDb21iaW5lLmgiCi0rI2VuZGlmCi0gI2luY2x1ZGUgImxsdm0v TUMvTUNBc21JbmZvLmgiCi0gI2luY2x1ZGUgImxsdm0vTUMvTUNDb250ZXh0LmgiCi0gI2luY2x1 ZGUgImxsdm0vTUMvTUNJbnN0ckluZm8uaCIKLS0tIAotY2dpdCB2MS4xCi0KZGlmZiAtLWdpdCBh L3NyY3BrZ3MvYmVpZ25ldC9wYXRjaGVzL2xsdm0wNi5wYXRjaCBiL3NyY3BrZ3MvYmVpZ25ldC9w YXRjaGVzL2xsdm0wNi5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzM4OWU2 NmM4MmRmLi4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9iZWlnbmV0L3BhdGNoZXMvbGx2bTA2 LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMzMgKzAsMCBAQAotU291cmNlOiBBcmNoIExpbnV4 Ci1VcHN0cmVhbTogdW5rbm93bgotUmVhc29uOiBmaXhlcyBsbHZtNiBjb21waWxhdGlvbgotCi0t LS0gYS9iYWNrZW5kL3NyYy9sbHZtL2xsdm1fdG9fZ2VuLmNwcAkyMDE3LTEwLTI0IDA5OjA0OjQ4 LjAwMDAwMDAwMCArMDMwMAotKysrIGIvYmFja2VuZC9zcmMvbGx2bS9sbHZtX3RvX2dlbi5jcHAJ MjAxOC0wMy0xNiAxNjowODo1NC42Njk5NjM4MjQgKzAyMDAKLUBAIC0zMjIsNyArMzIyLDExIEBA IG5hbWVzcGFjZSBnYmUKLSAgICAgRGF0YUxheW91dCBETCgmbW9kKTsKLSAgICAgCi0gICAgIGdi ZURpYWdub3N0aWNDb250ZXh0IGRjOwotKyNpZiBMTFZNX1ZFUlNJT05fTUFKT1IgPj0gNgotKyAg ICBtb2QuZ2V0Q29udGV4dCgpLnNldERpYWdub3N0aWNIYW5kbGVyQ2FsbEJhY2soJmdiZURpYWdu b3N0aWNIYW5kbGVyLCZkYyk7Ci0rI2Vsc2UKLSAgICAgbW9kLmdldENvbnRleHQoKS5zZXREaWFn bm9zdGljSGFuZGxlcigmZ2JlRGlhZ25vc3RpY0hhbmRsZXIsJmRjKTsKLSsjZW5kaWYKLSAKLSAj aWYgTExWTV9WRVJTSU9OX01BSk9SICogMTAgKyBMTFZNX1ZFUlNJT05fTUlOT1IgPj0gMzcKLSAg ICAgbW9kLnNldERhdGFMYXlvdXQoREwpOwotLS0tIGEvYmFja2VuZC9zcmMvbGx2bS9sbHZtX3Vu cm9sbC5jcHAJMjAxNy0xMC0yNCAwOTowNDo0OC4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL2JhY2tl bmQvc3JjL2xsdm0vbGx2bV91bnJvbGwuY3BwCTIwMTgtMDMtMTYgMTY6MDk6NDcuNzM2NDAzNTU3 ICswMjAwCi1AQCAtMjA1LDcgKzIwNSw5IEBAIG5hbWVzcGFjZSBnYmUgewotICAgICAgICAgICBp ZiAocGFyZW50VHJpcENvdW50ICE9IDAgJiYgY3VyclRyaXBDb3VudCAqIHBhcmVudFRyaXBDb3Vu dCA+IDMyKSB7Ci0gICAgICAgICAgICAgLy9Eb24ndCBjaGFuZ2UgdGhlIHVucm9sbElEIGlmIGRv ZXNuJ3QgZm9yY2UgdW5yb2xsLgotICAgICAgICAgICAgIC8vc2V0VW5yb2xsSUQocGFyZW50TCwg ZmFsc2UpOwotLSNpZiBMTFZNX1ZFUlNJT05fTUFKT1IgKiAxMCArIExMVk1fVkVSU0lPTl9NSU5P UiA+PSAzOAotKyNpZiBMTFZNX1ZFUlNJT05fTUFKT1IgPj0gNgotKyAgICAgICAgICAgIGxvb3BJ bmZvLmVyYXNlKHBhcmVudEwpOwotKyNlbGlmIExMVk1fVkVSU0lPTl9NQUpPUiAqIDEwICsgTExW TV9WRVJTSU9OX01JTk9SID49IDM4Ci0gICAgICAgICAgICAgbG9vcEluZm8ubWFya0FzUmVtb3Zl ZChwYXJlbnRMKTsKLSAjZWxzZQotICAgICAgICAgICAgIExQTS5kZWxldGVMb29wRnJvbVF1ZXVl KHBhcmVudEwpOwotT25seSBpbiBCZWlnbmV0LTEuMy4yLVNvdXJjZTogYnVpbGQKLQpkaWZmIC0t Z2l0IGEvc3JjcGtncy9iZWlnbmV0L3BhdGNoZXMvbGx2bTA4LnBhdGNoIGIvc3JjcGtncy9iZWln bmV0L3BhdGNoZXMvbGx2bTA4LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBh MGM1ZTdhN2M0ZjcuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2JlaWduZXQvcGF0Y2hlcy9s bHZtMDgucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw1NiArMCwwIEBACi1Gcm9tIDc1YzE1MjU5 OWE3YzE3MzllNmRhZGNkYjliMzc3YWNmN2U0NGQ5Y2YgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx Ci1Gcm9tOiBKYW4gQmVpY2ggPGpiZWljaEBGcmVlQlNELm9yZz4KLURhdGU6IFdlZCwgMzAgSmFu IDIwMTkgMTI6NDI6MzQgKzAwMDAKLVN1YmplY3Q6IFtQQVRDSF0gbGFuZy9iZWlnbmV0OiB1bmJy ZWFrIHdpdGggbGx2bTgwCi0KLVJlZ3Jlc3NlZCBieSBodHRwczovL2dpdGh1Yi5jb20vbGx2bS9s bHZtLXByb2plY3QvY29tbWl0LzcyMWQ5NTcxM2E5ZQotCi11bmFibGUgdG8gbG9hZCAvdXNyL2xv Y2FsL2xpYi9iZWlnbmV0Ly9saWJnYmVpbnRlcnAuc28gd2hpY2ggaXMgcGFydCBvZiB0aGUgZHJp dmVyLCBwbGVhc2UgY2hlY2shCi1sZC1lbGYuc28uMTogL3Vzci9sb2NhbC9saWIvYmVpZ25ldC8v bGliZ2JlaW50ZXJwLnNvOiBVbmRlZmluZWQgc3ltYm9sICJfWk40bGx2bTI0RGlzYWJsZUFCSUJy ZWFraW5nQ2hlY2tzRSIKLQotUmVncmVzc2VkIGJ5IGh0dHBzOi8vZ2l0aHViLmNvbS9sbHZtL2xs dm0tcHJvamVjdC9jb21taXQvNGEyZDU4ZTE2YWNjCi0KLWJhY2tlbmQvc3JjL2xsdm0vbGx2bV9n ZW5fYmFja2VuZC5jcHA6MzA3Njo1OiBlcnJvcjoKLSAgICAgIHVua25vd24gdHlwZSBuYW1lICdU ZXJtaW5hdG9ySW5zdCcKLSAgICBUZXJtaW5hdG9ySW5zdCAqdGVybSA9IGJiLT5nZXRUZXJtaW5h dG9yKCk7Ci0gICAgXgotYmFja2VuZC9zcmMvbGx2bS9sbHZtX2dlbl9iYWNrZW5kLmNwcDozMDgz OjU6IGVycm9yOgotICAgICAgdW5rbm93biB0eXBlIG5hbWUgJ1Rlcm1pbmF0b3JJbnN0JwotICAg IFRlcm1pbmF0b3JJbnN0ICp0ZXJtID0gYmItPmdldFRlcm1pbmF0b3IoKTsKLSAgICBeCi0KLS0t LSBhL2JhY2tlbmQvc3JjL0NNYWtlTGlzdHMudHh0CTIwMTctMDktMjIgMDg6MDU6MjIgVVRDCi0r KysgYi9iYWNrZW5kL3NyYy9DTWFrZUxpc3RzLnR4dAotQEAgLTE2OCw2ICsxNjgsNyBAQCBhZGRf ZGVwZW5kZW5jaWVzKGdiZSBiZWlnbmV0X2JpdGNvZGUpCi0gZW5kaWYgKE5PVCAoVVNFX1NUQU5E QUxPTkVfR0JFX0NPTVBJTEVSIFNUUkVRVUFMICJ0cnVlIikpCi0gCi0gYWRkX2xpYnJhcnkoZ2Jl aW50ZXJwIFNIQVJFRCBnYmVfYmluX2ludGVycHJldGVyLmNwcCkKLSt0YXJnZXRfbGlua19saWJy YXJpZXMoZ2JlaW50ZXJwICR7TExWTV9NT0RVTEVfTElCU30pCi0gCi0gaWYgKExMVk1fVkVSU0lP Tl9OT0RPVCBWRVJTSU9OX0VRVUFMIDM0KQotICAgZmluZF9saWJyYXJ5KFRFUk1JTkZPIE5BTUVT IHRpbmZvIG5jdXJzZXMpCi0tLS0gYS9iYWNrZW5kL3NyYy9sbHZtL2xsdm1fZ2VuX2JhY2tlbmQu Y3BwCTIwMTctMTAtMjQgMDY6MDQ6NDggVVRDCi0rKysgYi9iYWNrZW5kL3NyYy9sbHZtL2xsdm1f Z2VuX2JhY2tlbmQuY3BwCi1AQCAtMzA3MywxNCArMzA3MywyMiBAQCBuYW1lc3BhY2UgZ2JlCi0g Ci0gCi0gICBzdGF0aWMgdW5zaWduZWQgZ2V0Q2hpbGRObyhCYXNpY0Jsb2NrICpiYikgewotKyNp ZiBMTFZNX1ZFUlNJT05fTUFKT1IgPCA4Ci0gICAgIFRlcm1pbmF0b3JJbnN0ICp0ZXJtID0gYmIt PmdldFRlcm1pbmF0b3IoKTsKLSsjZWxzZQotKyAgICBJbnN0cnVjdGlvbiAqdGVybSA9IGJiLT5n ZXRUZXJtaW5hdG9yKCk7Ci0rI2VuZGlmCi0gICAgIHJldHVybiB0ZXJtLT5nZXROdW1TdWNjZXNz b3JzKCk7Ci0gICB9Ci0gCi0gICAvLyByZXR1cm4gTlVMTCBpZiBpbmRleCBvdXQtcmFuZ2Ugb2Yg Y2hpbGRyZW4gbnVtYmVyCi0gICBzdGF0aWMgQmFzaWNCbG9jayAqZ2V0Q2hpbGRQb3NzaWJsZShC YXNpY0Jsb2NrICpiYiwgdW5zaWduZWQgaW5kZXgpIHsKLSAKLSsjaWYgTExWTV9WRVJTSU9OX01B Sk9SIDwgOAotICAgICBUZXJtaW5hdG9ySW5zdCAqdGVybSA9IGJiLT5nZXRUZXJtaW5hdG9yKCk7 Ci0rI2Vsc2UKLSsgICAgSW5zdHJ1Y3Rpb24gKnRlcm0gPSBiYi0+Z2V0VGVybWluYXRvcigpOwot KyNlbmRpZgotICAgICB1bnNpZ25lZCBjaGlsZE5vID0gdGVybS0+Z2V0TnVtU3VjY2Vzc29ycygp OwotICAgICBCYXNpY0Jsb2NrICpjaGlsZCA9IE5VTEw7Ci0gICAgIGlmKGluZGV4IDwgY2hpbGRO bykgewpkaWZmIC0tZ2l0IGEvc3JjcGtncy9iZWlnbmV0L3BhdGNoZXMvbGx2bTA5LnBhdGNoIGIv c3JjcGtncy9iZWlnbmV0L3BhdGNoZXMvbGx2bTA5LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEw MDY0NAppbmRleCBhY2FlY2VhYmI2ZGQuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2JlaWdu ZXQvcGF0Y2hlcy9sbHZtMDkucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxMTEgKzAsMCBAQAot U291cmNlOiBGcmVlQlNEICsgcTY2Ci0KLU1vc3RseSBGcmVlQlNEIG90aGVyIHRoYW4gRmluZExM Vk0uY21ha2UgY2hhbmdlcy4KLUxpbmtpbmcgYWdhaW5zdCBjbGFuZy1jcHAgZG9lcyBub3Qgd29y ayBmb3IgdXMuCi0KLS0tLSBhL0NNYWtlL0ZpbmRMTFZNLmNtYWtlCi0rKysgYi9DTWFrZS9GaW5k TExWTS5jbWFrZQotQEAgLTE0MCw2ICsxNDAsNyBAQCBhZGRfb25lX2xpYigiY2xhbmdTdGF0aWNB bmFseXplckNvcmUiKQotIGFkZF9vbmVfbGliKCJjbGFuZ0FuYWx5c2lzIikKLSBhZGRfb25lX2xp YigiY2xhbmdFZGl0IikKLSBhZGRfb25lX2xpYigiY2xhbmdBU1QiKQotK2FkZF9vbmVfbGliKCJj bGFuZ0FTVE1hdGNoZXJzIikKLSBhZGRfb25lX2xpYigiY2xhbmdQYXJzZSIpCi0gYWRkX29uZV9s aWIoImNsYW5nU2VtYSIpCi0gYWRkX29uZV9saWIoImNsYW5nTGV4IikKLS0tLSBhL2JhY2tlbmQv c3JjL2xsdm0vbGx2bV9pbnRyaW5zaWNfbG93ZXJpbmcuY3BwCTIwMTctMTAtMjQgMDY6MDQ6NDgg VVRDCi0rKysgYi9iYWNrZW5kL3NyYy9sbHZtL2xsdm1faW50cmluc2ljX2xvd2VyaW5nLmNwcAot QEAgLTc3LDcgKzc3LDExIEBAIG5hbWVzcGFjZSBnYmUgewotICAgICAgICAgc3RkOjp2ZWN0b3I8 VHlwZSAqPiBQYXJhbVR5czsKLSAgICAgICAgIGZvciAoVmFsdWUqKiBJID0gQXJnQmVnaW47IEkg IT0gQXJnRW5kOyArK0kpCi0gICAgICAgICAgIFBhcmFtVHlzLnB1c2hfYmFjaygoKkkpLT5nZXRU eXBlKCkpOwotKyNpZiBMTFZNX1ZFUlNJT05fTUFKT1IgKiAxMCArIExMVk1fVkVSU0lPTl9NSU5P UiA+PSA5MAotKyAgICAgICAgRnVuY3Rpb25DYWxsZWUgRkNhY2hlID0gTS0+Z2V0T3JJbnNlcnRG dW5jdGlvbihOZXdGbiwKLSsjZWxzZQotICAgICAgICAgQ29uc3RhbnQqIEZDYWNoZSA9IE0tPmdl dE9ySW5zZXJ0RnVuY3Rpb24oTmV3Rm4sCi0rI2VuZGlmCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEZ1bmN0aW9uVHlwZTo6Z2V0KFJldFR5LCBQYXJhbVR5cywgZmFs c2UpKTsKLSAKLSAgICAgICAgIElSQnVpbGRlcjw+IEJ1aWxkZXIoQ0ktPmdldFBhcmVudCgpLCBC YXNpY0Jsb2NrOjppdGVyYXRvcihDSSkpOwotLS0tIGEvYmFja2VuZC9zcmMvbGx2bS9sbHZtX3Nh bXBsZXJfZml4LmNwcAkyMDE3LTEwLTI0IDA2OjA0OjQ4IFVUQwotKysrIGIvYmFja2VuZC9zcmMv bGx2bS9sbHZtX3NhbXBsZXJfZml4LmNwcAotQEAgLTgyLDcgKzgyLDExIEBAIG5hbWVzcGFjZSBn YmUgewotICNpZiBMTFZNX1ZFUlNJT05fTUFKT1IgKiAxMCArIExMVk1fVkVSU0lPTl9NSU5PUiA+ PSA0MAotICAgICAgICAgICBNb2R1bGUgKk0gPSBJLT5nZXRQYXJlbnQoKS0+Z2V0UGFyZW50KCkt PmdldFBhcmVudCgpOwotICNpZiBMTFZNX1ZFUlNJT05fTUFKT1IgKiAxMCArIExMVk1fVkVSU0lP Tl9NSU5PUiA+PSA1MAotKyNpZiBMTFZNX1ZFUlNJT05fTUFKT1IgKiAxMCArIExMVk1fVkVSU0lP Tl9NSU5PUiA+PSA5MAotKyAgICAgICAgICBGdW5jdGlvbkNhbGxlZSBzYW1wbGVyQ3Z0ID0gTS0+ Z2V0T3JJbnNlcnRGdW5jdGlvbigiX19nZW5fb2NsX3NhbXBsZXJfdG9faW50IiwgaTMyVHksIEkt PmdldE9wZXJhbmQoMCktPmdldFR5cGUoKSk7Ci0rI2Vsc2UKLSAgICAgICAgICAgVmFsdWUqIHNh bXBsZXJDdnQgPSBNLT5nZXRPckluc2VydEZ1bmN0aW9uKCJfX2dlbl9vY2xfc2FtcGxlcl90b19p bnQiLCBpMzJUeSwgSS0+Z2V0T3BlcmFuZCgwKS0+Z2V0VHlwZSgpKTsKLSsjZW5kaWYKLSAjZWxz ZQotICAgICAgICAgICBWYWx1ZSogc2FtcGxlckN2dCA9IE0tPmdldE9ySW5zZXJ0RnVuY3Rpb24o Il9fZ2VuX29jbF9zYW1wbGVyX3RvX2ludCIsIGkzMlR5LCBJLT5nZXRPcGVyYW5kKDApLT5nZXRU eXBlKCksIG51bGxwdHIpOwotICNlbmRpZgotQEAgLTEyNCw3ICsxMjgsMTEgQEAgbmFtZXNwYWNl IGdiZSB7Ci0gI2lmIExMVk1fVkVSU0lPTl9NQUpPUiAqIDEwICsgTExWTV9WRVJTSU9OX01JTk9S ID49IDQwCi0gICAgICAgICAgIE1vZHVsZSAqTSA9IEktPmdldFBhcmVudCgpLT5nZXRQYXJlbnQo KS0+Z2V0UGFyZW50KCk7Ci0gI2lmIExMVk1fVkVSU0lPTl9NQUpPUiAqIDEwICsgTExWTV9WRVJT SU9OX01JTk9SID49IDUwCi0rI2lmIExMVk1fVkVSU0lPTl9NQUpPUiAqIDEwICsgTExWTV9WRVJT SU9OX01JTk9SID49IDkwCi0rICAgICAgICAgIEZ1bmN0aW9uQ2FsbGVlIHNhbXBsZXJDdnQgPSBN LT5nZXRPckluc2VydEZ1bmN0aW9uKCJfX2dlbl9vY2xfc2FtcGxlcl90b19pbnQiLCBpMzJUeSwg SS0+Z2V0T3BlcmFuZCgwKS0+Z2V0VHlwZSgpKTsKLSsjZWxzZQotICAgICAgICAgICBWYWx1ZSog c2FtcGxlckN2dCA9IE0tPmdldE9ySW5zZXJ0RnVuY3Rpb24oIl9fZ2VuX29jbF9zYW1wbGVyX3Rv X2ludCIsIGkzMlR5LCBJLT5nZXRPcGVyYW5kKDApLT5nZXRUeXBlKCkpOwotKyNlbmRpZgotICNl bHNlCi0gICAgICAgICAgIFZhbHVlKiBzYW1wbGVyQ3Z0ID0gTS0+Z2V0T3JJbnNlcnRGdW5jdGlv bigiX19nZW5fb2NsX3NhbXBsZXJfdG9faW50IiwgaTMyVHksIEktPmdldE9wZXJhbmQoMCktPmdl dFR5cGUoKSwgbnVsbHB0cik7Ci0gI2VuZGlmCi0tLS0gYS9iYWNrZW5kL3NyYy9sbHZtL2xsdm1f cHJvZmlsaW5nLmNwcAkyMDE3LTEwLTI0IDA2OjA0OjQ4IFVUQwotKysrIGIvYmFja2VuZC9zcmMv bGx2bS9sbHZtX3Byb2ZpbGluZy5jcHAKLUBAIC0xNjMsMTAgKzE2MywxOCBAQCBuYW1lc3BhY2Ug Z2JlCi0gICAgICAgLy8gX19nZW5fb2NsX3N0b3JlX3RpbWVzdGFtcChpbnQgbnRoLCBpbnQgdHlw ZSk7Ci0gICAgICAgVmFsdWUgKkFyZ3NbMl0gPSB7Q29uc3RhbnRJbnQ6OmdldChpbnRUeSwgcG9p bnROdW0rKyksIENvbnN0YW50SW50OjpnZXQoaW50VHksIHByb2ZpbGluZ1R5cGUpfTsKLSAjaWYg TExWTV9WRVJTSU9OX01BSk9SICogMTAgKyBMTFZNX1ZFUlNJT05fTUlOT1IgPj0gNTAKLSsjaWYg TExWTV9WRVJTSU9OX01BSk9SICogMTAgKyBMTFZNX1ZFUlNJT05fTUlOT1IgPj0gOTAKLSsgICAg ICBidWlsZGVyLT5DcmVhdGVDYWxsKG1vZHVsZS0+Z2V0T3JJbnNlcnRGdW5jdGlvbigKLSsjZWxz ZQotICAgICAgIGJ1aWxkZXItPkNyZWF0ZUNhbGwoY2FzdDxsbHZtOjpGdW5jdGlvbj4obW9kdWxl LT5nZXRPckluc2VydEZ1bmN0aW9uKAotKyNlbmRpZgotICAgICAgICAgICAgICAgIl9fZ2VuX29j bF9jYWxjX3RpbWVzdGFtcCIsIFR5cGU6OmdldFZvaWRUeShtb2R1bGUtPmdldENvbnRleHQoKSks Ci0gICAgICAgICAgICAgICBJbnRlZ2VyVHlwZTo6Z2V0SW50MzJUeShtb2R1bGUtPmdldENvbnRl eHQoKSksCi0rI2lmIExMVk1fVkVSU0lPTl9NQUpPUiAqIDEwICsgTExWTV9WRVJTSU9OX01JTk9S ID49IDkwCi0rICAgICAgICAgICAgICBJbnRlZ2VyVHlwZTo6Z2V0SW50MzJUeShtb2R1bGUtPmdl dENvbnRleHQoKSkpLAotKyNlbHNlCi0gICAgICAgICAgICAgICBJbnRlZ2VyVHlwZTo6Z2V0SW50 MzJUeShtb2R1bGUtPmdldENvbnRleHQoKSkpKSwKLSsjZW5kaWYKLSAgICAgICAgICAgICAgIEFy cmF5UmVmPFZhbHVlKj4oQXJncykpOwotICNlbHNlCi0gICAgICAgYnVpbGRlci0+Q3JlYXRlQ2Fs bChjYXN0PGxsdm06OkZ1bmN0aW9uPihtb2R1bGUtPmdldE9ySW5zZXJ0RnVuY3Rpb24oCi1AQCAt MTg1LDEwICsxOTMsMTggQEAgbmFtZXNwYWNlIGdiZQotICAgICBWYWx1ZSAqQXJnczJbMl0gPSB7 cHJvZmlsaW5nQnVmLCBDb25zdGFudEludDo6Z2V0KGludFR5LCBwcm9maWxpbmdUeXBlKX07Ci0g Ci0gI2lmIExMVk1fVkVSU0lPTl9NQUpPUiAqIDEwICsgTExWTV9WRVJTSU9OX01JTk9SID49IDUw Ci0rI2lmIExMVk1fVkVSU0lPTl9NQUpPUiAqIDEwICsgTExWTV9WRVJTSU9OX01JTk9SID49IDkw Ci0rICAgIGJ1aWxkZXItPkNyZWF0ZUNhbGwobW9kdWxlLT5nZXRPckluc2VydEZ1bmN0aW9uKAot KyNlbHNlCi0gICAgIGJ1aWxkZXItPkNyZWF0ZUNhbGwoY2FzdDxsbHZtOjpGdW5jdGlvbj4obW9k dWxlLT5nZXRPckluc2VydEZ1bmN0aW9uKAotKyNlbmRpZgotICAgICAgICAgICAgICJfX2dlbl9v Y2xfc3RvcmVfcHJvZmlsaW5nIiwgVHlwZTo6Z2V0Vm9pZFR5KG1vZHVsZS0+Z2V0Q29udGV4dCgp KSwKLSAgICAgICAgICAgICBwdHJUeSwKLSsjaWYgTExWTV9WRVJTSU9OX01BSk9SICogMTAgKyBM TFZNX1ZFUlNJT05fTUlOT1IgPj0gOTAKLSsgICAgICAgICAgICBJbnRlZ2VyVHlwZTo6Z2V0SW50 MzJUeShtb2R1bGUtPmdldENvbnRleHQoKSkpLAotKyNlbHNlCi0gICAgICAgICAgICAgSW50ZWdl clR5cGU6OmdldEludDMyVHkobW9kdWxlLT5nZXRDb250ZXh0KCkpKSksCi0rI2VuZGlmCi0gICAg ICAgICAgICAgQXJyYXlSZWY8VmFsdWUqPihBcmdzMikpOwotICNlbHNlCi0gICAgIGJ1aWxkZXIt PkNyZWF0ZUNhbGwoY2FzdDxsbHZtOjpGdW5jdGlvbj4obW9kdWxlLT5nZXRPckluc2VydEZ1bmN0 aW9uKAotLS0tIGEvYmFja2VuZC9zcmMvbGx2bS9sbHZtX2RldmljZV9lbnF1ZXVlLmNwcAkyMDE3 LTEwLTI0IDA2OjA0OjQ4IFVUQwotKysrIGIvYmFja2VuZC9zcmMvbGx2bS9sbHZtX2RldmljZV9l bnF1ZXVlLmNwcAotQEAgLTM5OCw4ICszOTgsMTMgQEAgbmFtZXNwYWNlIGdiZSB7Ci0gICAgICAg ICAgICAgICBzdGQ6OnZlY3RvcjxUeXBlICo+IFBhcmFtVHlzOwotICAgICAgICAgICAgICAgZm9y IChWYWx1ZSoqIGl0ZXIgPSBhcmdzLmJlZ2luKCk7IGl0ZXIgIT0gYXJncy5lbmQoKTsgKytpdGVy KQotICAgICAgICAgICAgICAgICBQYXJhbVR5cy5wdXNoX2JhY2soKCppdGVyKS0+Z2V0VHlwZSgp KTsKLSsjaWYgTExWTV9WRVJTSU9OX01BSk9SICogMTAgKyBMTFZNX1ZFUlNJT05fTUlOT1IgPj0g OTAKLSsgICAgICAgICAgICAgIENhbGxJbnN0KiBuZXdDSSA9IGJ1aWxkZXIuQ3JlYXRlQ2FsbCht b2QtPmdldE9ySW5zZXJ0RnVuY3Rpb24oCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Il9fZ2VuX2VucXVldWVfa2VybmVsX3NsbSIsIEZ1bmN0aW9uVHlwZTo6Z2V0KGludFR5LCBQYXJh bVR5cywgZmFsc2UpKSwgYXJncyk7Ci0rI2Vsc2UKLSAgICAgICAgICAgICAgIENhbGxJbnN0KiBu ZXdDSSA9IGJ1aWxkZXIuQ3JlYXRlQ2FsbChjYXN0PGxsdm06OkZ1bmN0aW9uPihtb2QtPmdldE9y SW5zZXJ0RnVuY3Rpb24oCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIl9fZ2VuX2Vu cXVldWVfa2VybmVsX3NsbSIsIEZ1bmN0aW9uVHlwZTo6Z2V0KGludFR5LCBQYXJhbVR5cywgZmFs c2UpKSksIGFyZ3MpOwotKyNlbmRpZgotICAgICAgICAgICAgICAgQ0ktPnJlcGxhY2VBbGxVc2Vz V2l0aChuZXdDSSk7Ci0gICAgICAgICAgICAgICBkZWFkSW5zblNldC5pbnNlcnQoQ0kpOwotICAg ICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvYmVpZ25ldC9wYXRjaGVzL2xsdm0xMC5w YXRjaCBiL3NyY3BrZ3MvYmVpZ25ldC9wYXRjaGVzL2xsdm0xMC5wYXRjaApkZWxldGVkIGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggOGFhZmU0OGEyNDBkLi4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtn cy9iZWlnbmV0L3BhdGNoZXMvbGx2bTEwLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMzQ3ICsw LDAgQEAKLWRpZmYgLS1naXQgQ01ha2UvRmluZExMVk0uY21ha2UgQ01ha2UvRmluZExMVk0uY21h a2UKLWluZGV4IDBhNTllNDcuLjZlOTA5MjMgMTAwNjQ0Ci0tLS0gYS9DTWFrZS9GaW5kTExWTS5j bWFrZQotKysrIGIvQ01ha2UvRmluZExMVk0uY21ha2UKLUBAIC0xMDQsMjggKzEwNCwxNiBAQCBz dHJpbmcoUkVHRVggUkVQTEFDRSAiICpcbiIgIiIgTExWTV9TWVNURU1fTElCUyAke0xMVk1fU1lT VEVNX0xJQlNfT1JJR30pCi0gZW5kaWYgKExMVk1fU1lTVEVNX0xJQlNfT1JJRykKLSBlbmRpZiAo TExWTV9WRVJTSU9OX05PRE9UIFZFUlNJT05fR1JFQVRFUiAzNCkKLSAKLSsjc29tZXRoaW5nIGhh cm1sZXNzIGJlY2F1c2Ugd2hpdGVzcGFjZSBhdCBzdGFydCBpcyBhbiBlcnJvcgotK3NldChDTEFO R19MSUJSQVJJRVMgIi1sZGwiKQotIG1hY3JvKGFkZF9vbmVfbGliIG5hbWUpCi0gICBGSU5EX0xJ QlJBUlkoQ0xBTkdfTElCCi0gICAgIE5BTUVTICR7bmFtZX0KLSAgICAgUEFUSFMgJHtMTFZNX0xJ QlJBUllfRElSfSBOT19ERUZBVUxUX1BBVEgpCi0tICBzZXQoQ0xBTkdfTElCUkFSSUVTICR7Q0xB TkdfTElCUkFSSUVTfSAke0NMQU5HX0xJQn0pCi0rICBzZXQoQ0xBTkdfTElCUkFSSUVTICIke0NM QU5HX0xJQlJBUklFU30gJHtDTEFOR19MSUJ9IikKLSsgIG1lc3NhZ2UoU1RBVFVTICJjbGFuZ2xp YnMgbmFtZSAke25hbWV9IHRoaXMgJHtDTEFOR19MSUJ9IGFsbCAke0NMQU5HX0xJQlJBUklFU30g IikKLSAJdW5zZXQoQ0xBTkdfTElCIENBQ0hFKQotIGVuZG1hY3JvKCkKLSAKLSAjQXNzdW1lIGNs YW5nIGxpYiBwYXRoIHNhbWUgYXMgbGx2bSBsaWIgcGF0aAotLWFkZF9vbmVfbGliKCJjbGFuZ0Nv ZGVHZW4iKQotLWFkZF9vbmVfbGliKCJjbGFuZ0Zyb250ZW5kIikKLS1hZGRfb25lX2xpYigiY2xh bmdTZXJpYWxpemF0aW9uIikKLS1hZGRfb25lX2xpYigiY2xhbmdEcml2ZXIiKQotLWFkZF9vbmVf bGliKCJjbGFuZ1NlbWEiKQotLWFkZF9vbmVfbGliKCJjbGFuZ1N0YXRpY0FuYWx5emVyRnJvbnRl bmQiKQotLWFkZF9vbmVfbGliKCJjbGFuZ1N0YXRpY0FuYWx5emVyQ2hlY2tlcnMiKQotLWFkZF9v bmVfbGliKCJjbGFuZ1N0YXRpY0FuYWx5emVyQ29yZSIpCi0tYWRkX29uZV9saWIoImNsYW5nQW5h bHlzaXMiKQotLWFkZF9vbmVfbGliKCJjbGFuZ0VkaXQiKQotLWFkZF9vbmVfbGliKCJjbGFuZ0FT VCIpCi0tYWRkX29uZV9saWIoImNsYW5nQVNUTWF0Y2hlcnMiKQotLWFkZF9vbmVfbGliKCJjbGFu Z1BhcnNlIikKLS1hZGRfb25lX2xpYigiY2xhbmdTZW1hIikKLS1hZGRfb25lX2xpYigiY2xhbmdM ZXgiKQotLWFkZF9vbmVfbGliKCJjbGFuZ0Jhc2ljIikKLSthZGRfb25lX2xpYigiY2xhbmctY3Bw IikKLWRpZmYgLS1naXQgQ01ha2VMaXN0cy50eHQgQ01ha2VMaXN0cy50eHQKLWluZGV4IGMxMWFj YmIuLjA4ZjQyN2QgMTAwNjQ0Ci0tLS0gYS9DTWFrZUxpc3RzLnR4dAotKysrIGIvQ01ha2VMaXN0 cy50eHQKLUBAIC03OSw3ICs3OSw3IEBAIGVsc2VpZiAoQ09NUElMRVIgU1RSRVFVQUwgIkNMQU5H IikKLSBlbHNlaWYgKENPTVBJTEVSIFNUUkVRVUFMICJJQ0MiKQotICAgc2V0IChDTUFLRV9DX0NY WF9GTEFHUyAiJHtDTUFLRV9DX0NYWF9GTEFHU30gIC13ZDI5MjggLVdhbGwgLWZQSUMgLWZzdHJp Y3QtYWxpYXNpbmcgLWZwLW1vZGVsIGZhc3QgLW1zc2U0LjEgLVdsLC1FIikKLSBlbmRpZiAoKQot LXNldCAoQ01BS0VfQ1hYX0ZMQUdTICIke0NNQUtFX0NYWF9GTEFHU30gJHtDTUFLRV9DX0NYWF9G TEFHU30gLXN0ZD1jKysweCAtV25vLWludmFsaWQtb2Zmc2V0b2YiKQotK3NldCAoQ01BS0VfQ1hY X0ZMQUdTICIke0NNQUtFX0NYWF9GTEFHU30gJHtDTUFLRV9DX0NYWF9GTEFHU30gLVduby1pbnZh bGlkLW9mZnNldG9mIikKLSBzZXQgKENNQUtFX0NfRkxBR1MgIiR7Q01BS0VfQ19GTEFHU30gJHtD TUFLRV9DX0NYWF9GTEFHU30iKQotIHNldCAoQ01BS0VfQ1hYX0ZMQUdTX0RFQlVHICAgICAgICAg ICItTzAgLWcgLURHQkVfREVCVUc9MSIpCi0gc2V0IChDTUFLRV9DWFhfRkxBR1NfUkVMV0lUSERF QklORk8gIi1PMiAtZyAtREdCRV9ERUJVRz0xIikKLWRpZmYgLS1naXQgYmFja2VuZC9zcmMvYmFj a2VuZC9wcm9ncmFtLmNwcCBiYWNrZW5kL3NyYy9iYWNrZW5kL3Byb2dyYW0uY3BwCi1pbmRleCBi MzZmN2I0Li5lNjY2MDMxIDEwMDY0NAotLS0tIGEvYmFja2VuZC9zcmMvYmFja2VuZC9wcm9ncmFt LmNwcAotKysrIGIvYmFja2VuZC9zcmMvYmFja2VuZC9wcm9ncmFtLmNwcAotQEAgLTY5NCw5ICs2 OTQsOSBAQCBuYW1lc3BhY2UgZ2JlIHsKLSAjZW5kaWYKLSAgICAgICAgICAgICAgICAgKTsKLSAK LSsgICAgbGx2bTo6Y2w6OlJlc2V0QWxsT3B0aW9uT2NjdXJyZW5jZXMoKTsKLSAgICAgY2xhbmc6 OkNvbXBpbGVySW52b2NhdGlvbjo6Q3JlYXRlRnJvbUFyZ3MoKkNJLAotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmYXJnc1swXSwKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmFyZ3NbMF0gKyBhcmdzLnNpemUoKSwK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhbmc6OkFy cmF5UmVmPGNvbnN0IGNoYXIqPihhcmdzKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgRGlhZ3MpOwotICAgICAvLyBDcmVhdGUgdGhlIGNvbXBpbGVyIGlu c3RhbmNlCi0gICAgIGNsYW5nOjpDb21waWxlckluc3RhbmNlIENsYW5nOwotQEAgLTEyNDIsOCAr MTI0Miw3IEBAIEVYVEVORF9RVU9URToKLSAgICAgICAvLyBDcmVhdGUgdGhlIGNvbXBpbGVyIGlu dm9jYXRpb24KLSAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8Y2xhbmc6OkNvbXBpbGVySW52b2NhdGlv bj4gQ0kobmV3IGNsYW5nOjpDb21waWxlckludm9jYXRpb24pOwotICAgICAgIHJldHVybiBjbGFu Zzo6Q29tcGlsZXJJbnZvY2F0aW9uOjpDcmVhdGVGcm9tQXJncygqQ0ksCi0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZhcmdzWzBdLAotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmYXJn c1swXSArIGFyZ3Muc2l6ZSgpLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBjbGFuZzo6QXJyYXlSZWY8Y29uc3QgY2hhcio+KGFyZ3MpLAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBE aWFncyk7Ci0gICAgIH0KLSAjZW5kaWYKLWRpZmYgLS1naXQgYmFja2VuZC9zcmMvbGx2bS9sbHZt X2dlbl9iYWNrZW5kLmNwcCBiYWNrZW5kL3NyYy9sbHZtL2xsdm1fZ2VuX2JhY2tlbmQuY3BwCi1p bmRleCBjNmZjMzBkLi44MjQ0MWQ4IDEwMDY0NAotLS0tIGEvYmFja2VuZC9zcmMvbGx2bS9sbHZt X2dlbl9iYWNrZW5kLmNwcAotKysrIGIvYmFja2VuZC9zcmMvbGx2bS9sbHZtX2dlbl9iYWNrZW5k LmNwcAotQEAgLTU3NSwxMCArNTc1LDEyIEBAIG5hbWVzcGFjZSBnYmUKLSAgICAgICAgIGhhc19l cnJvcnMoZmFsc2UpLAotICAgICAgICAgbGVnYWN5TW9kZSh0cnVlKQotICAgICB7Ci0rI2lmIExM Vk1fVkVSU0lPTl9NQUpPUiA8IDEwCi0gI2lmIExMVk1fVkVSU0lPTl9NQUpPUiAqIDEwICsgTExW TV9WRVJTSU9OX01JTk9SID49IDM3Ci0gICAgICAgaW5pdGlhbGl6ZUxvb3BJbmZvV3JhcHBlclBh c3NQYXNzKCpQYXNzUmVnaXN0cnk6OmdldFBhc3NSZWdpc3RyeSgpKTsKLSAjZWxzZQotICAgICAg IGluaXRpYWxpemVMb29wSW5mb1Bhc3MoKlBhc3NSZWdpc3RyeTo6Z2V0UGFzc1JlZ2lzdHJ5KCkp OwotKyNlbmRpZgotICNlbmRpZgotICAgICAgIHBhc3MgPSBQQVNTX0VNSVRfUkVHSVNURVJTOwot ICAgICB9Ci1kaWZmIC0tZ2l0IGJhY2tlbmQvc3JjL2xsdm0vbGx2bV9nZW5fYmFja2VuZC5ocHAg YmFja2VuZC9zcmMvbGx2bS9sbHZtX2dlbl9iYWNrZW5kLmhwcAotaW5kZXggYjQ3MTViMS4uOGU3 NGY3YSAxMDA2NDQKLS0tLSBhL2JhY2tlbmQvc3JjL2xsdm0vbGx2bV9nZW5fYmFja2VuZC5ocHAK LSsrKyBiL2JhY2tlbmQvc3JjL2xsdm0vbGx2bV9nZW5fYmFja2VuZC5ocHAKLUBAIC0xMzAsMTAg KzEzMCwxMCBAQCBuYW1lc3BhY2UgZ2JlCi0gICBsbHZtOjpGdW5jdGlvblBhc3MgKmNyZWF0ZUdl blBhc3MoaXI6OlVuaXQgJnVuaXQpOwotIAotICAgLyohIFJlbW92ZSB0aGUgR0VQIGluc3RydWN0 aW9ucyAqLwotLSAgbGx2bTo6QmFzaWNCbG9ja1Bhc3MgKmNyZWF0ZVJlbW92ZUdFUFBhc3MoY29u c3QgaXI6OlVuaXQgJnVuaXQpOwotKyAgbGx2bTo6RnVuY3Rpb25QYXNzICpjcmVhdGVSZW1vdmVH RVBQYXNzKGNvbnN0IGlyOjpVbml0ICZ1bml0KTsKLSAKLSAgIC8qISBNZXJnZSBsb2FkL3N0b3Jl IGlmIHBvc3NpYmxlICovCi0tICBsbHZtOjpCYXNpY0Jsb2NrUGFzcyAqY3JlYXRlTG9hZFN0b3Jl T3B0aW1pemF0aW9uUGFzcygpOwotKyAgbGx2bTo6RnVuY3Rpb25QYXNzICpjcmVhdGVMb2FkU3Rv cmVPcHRpbWl6YXRpb25QYXNzKCk7Ci0gCi0gICAvKiEgU2NhbGFyaXplIGFsbCB2ZWN0b3Igb3Ag aW5zdHJ1Y3Rpb25zICovCi0gICBsbHZtOjpGdW5jdGlvblBhc3MqIGNyZWF0ZVNjYWxhcml6ZVBh c3MoKTsKLUBAIC0xNDEsNyArMTQxLDcgQEAgbmFtZXNwYWNlIGdiZQotICAgbGx2bTo6TW9kdWxl UGFzcyogY3JlYXRlQmFycmllck5vZHVwUGFzcyhib29sKTsKLSAKLSAgIC8qISBDb252ZXJ0IHRo ZSBJbnRyaW5zaWMgY2FsbCB0byBnZW4gZnVuY3Rpb24gKi8KLS0gIGxsdm06OkJhc2ljQmxvY2tQ YXNzICpjcmVhdGVJbnRyaW5zaWNMb3dlcmluZ1Bhc3MoKTsKLSsgIGxsdm06OkZ1bmN0aW9uUGFz cyAqY3JlYXRlSW50cmluc2ljTG93ZXJpbmdQYXNzKCk7Ci0gCi0gICAvKiEgUGFzc2VyIHRoZSBw cmludGYgZnVuY3Rpb24gY2FsbC4gKi8KLSAgIGxsdm06OkZ1bmN0aW9uUGFzcyogY3JlYXRlUHJp bnRmUGFyc2VyUGFzcyhpcjo6VW5pdCAmdW5pdCk7Ci1kaWZmIC0tZ2l0IGJhY2tlbmQvc3JjL2xs dm0vbGx2bV9pbnRyaW5zaWNfbG93ZXJpbmcuY3BwIGJhY2tlbmQvc3JjL2xsdm0vbGx2bV9pbnRy aW5zaWNfbG93ZXJpbmcuY3BwCi1pbmRleCA5NGYwY2U2Li5iNTUzOWU5IDEwMDY0NAotLS0tIGEv YmFja2VuZC9zcmMvbGx2bS9sbHZtX2ludHJpbnNpY19sb3dlcmluZy5jcHAKLSsrKyBiL2JhY2tl bmQvc3JjL2xsdm0vbGx2bV9pbnRyaW5zaWNfbG93ZXJpbmcuY3BwCi1AQCAtMjksMTIgKzI5LDEy IEBACi0gdXNpbmcgbmFtZXNwYWNlIGxsdm07Ci0gCi0gbmFtZXNwYWNlIGdiZSB7Ci0tICAgIGNs YXNzIEluc3RyaW5zaWNMb3dlcmluZyA6IHB1YmxpYyBCYXNpY0Jsb2NrUGFzcwotKyAgICBjbGFz cyBJbnN0cmluc2ljTG93ZXJpbmcgOiBwdWJsaWMgRnVuY3Rpb25QYXNzCi0gICAgIHsKLSAgICAg cHVibGljOgotICAgICAgIHN0YXRpYyBjaGFyIElEOwotICAgICAgIEluc3RyaW5zaWNMb3dlcmlu ZygpIDoKLS0gICAgICAgIEJhc2ljQmxvY2tQYXNzKElEKSB7fQotKyAgICAgICAgRnVuY3Rpb25Q YXNzKElEKSB7fQotIAotICAgICAgIHZvaWQgZ2V0QW5hbHlzaXNVc2FnZShBbmFseXNpc1VzYWdl ICZBVSkgY29uc3QgewotIAotQEAgLTkzLDkgKzkzLDkgQEAgbmFtZXNwYWNlIGdiZSB7Ci0gICAg ICAgICBDSS0+ZXJhc2VGcm9tUGFyZW50KCk7Ci0gICAgICAgICByZXR1cm4gTmV3Q0k7Ci0gICAg ICAgfQotLSAgICAgIHZpcnR1YWwgYm9vbCBydW5PbkJhc2ljQmxvY2soQmFzaWNCbG9jayAmQkIp Ci0rICAgICAgdmlydHVhbCBib29sIHJ1bk9uRnVuY3Rpb24oRnVuY3Rpb24gJkYpCi0gICAgICAg ewotLSAgICAgICAgYm9vbCBjaGFuZ2VkQmxvY2sgPSBmYWxzZTsKLSsgICAgICAgIGZvciAoQmFz aWNCbG9jayAmQkIgOiBGKSB7Ci0gICAgICAgICBNb2R1bGUgKk0gPSBCQi5nZXRQYXJlbnQoKS0+ Z2V0UGFyZW50KCk7Ci0gCi0gICAgICAgICBEYXRhTGF5b3V0IFREKE0pOwotQEAgLTE1OSwxMyAr MTU5LDE0IEBAIG5hbWVzcGFjZSBnYmUgewotICAgICAgICAgICAgIH0KLSAgICAgICAgICAgfQot ICAgICAgICAgfQotLSAgICAgICAgcmV0dXJuIGNoYW5nZWRCbG9jazsKLSsgICAgICAgIH0KLSsg ICAgICAgIHJldHVybiB0cnVlOwotICAgICAgIH0KLSAgICAgfTsKLSAKLSAgICAgY2hhciBJbnN0 cmluc2ljTG93ZXJpbmc6OklEID0gMDsKLSAKLS0gICAgQmFzaWNCbG9ja1Bhc3MgKmNyZWF0ZUlu dHJpbnNpY0xvd2VyaW5nUGFzcygpIHsKLSsgICAgRnVuY3Rpb25QYXNzICpjcmVhdGVJbnRyaW5z aWNMb3dlcmluZ1Bhc3MoKSB7Ci0gICAgICAgcmV0dXJuIG5ldyBJbnN0cmluc2ljTG93ZXJpbmco KTsKLSAgICAgfQotIH0gLy8gZW5kIG5hbWVzcGFjZQotZGlmZiAtLWdpdCBiYWNrZW5kL3NyYy9s bHZtL2xsdm1fbG9hZHN0b3JlX29wdGltaXphdGlvbi5jcHAgYmFja2VuZC9zcmMvbGx2bS9sbHZt X2xvYWRzdG9yZV9vcHRpbWl6YXRpb24uY3BwCi1pbmRleCA1YWEzOGJlLi5lMzE0MzAyIDEwMDY0 NAotLS0tIGEvYmFja2VuZC9zcmMvbGx2bS9sbHZtX2xvYWRzdG9yZV9vcHRpbWl6YXRpb24uY3Bw Ci0rKysgYi9iYWNrZW5kL3NyYy9sbHZtL2xsdm1fbG9hZHN0b3JlX29wdGltaXphdGlvbi5jcHAK LUBAIC0yNiwxMyArMjYsMTMgQEAKLSAKLSB1c2luZyBuYW1lc3BhY2UgbGx2bTsKLSBuYW1lc3Bh Y2UgZ2JlIHsKLS0gIGNsYXNzIEdlbkxvYWRTdG9yZU9wdGltaXphdGlvbiA6IHB1YmxpYyBCYXNp Y0Jsb2NrUGFzcyB7Ci0rICBjbGFzcyBHZW5Mb2FkU3RvcmVPcHRpbWl6YXRpb24gOiBwdWJsaWMg RnVuY3Rpb25QYXNzIHsKLSAKLSAgIHB1YmxpYzoKLSAgICAgc3RhdGljIGNoYXIgSUQ7Ci0gICAg IFNjYWxhckV2b2x1dGlvbiAqU0U7Ci0gICAgIGNvbnN0IERhdGFMYXlvdXQgKlREOwotLSAgICBH ZW5Mb2FkU3RvcmVPcHRpbWl6YXRpb24oKSA6IEJhc2ljQmxvY2tQYXNzKElEKSB7fQotKyAgICBH ZW5Mb2FkU3RvcmVPcHRpbWl6YXRpb24oKSA6IEZ1bmN0aW9uUGFzcyhJRCkge30KLSAKLSAgICAg dm9pZCBnZXRBbmFseXNpc1VzYWdlKEFuYWx5c2lzVXNhZ2UgJkFVKSBjb25zdCB7Ci0gI2lmIExM Vk1fVkVSU0lPTl9NQUpPUiAqIDEwICsgTExWTV9WRVJTSU9OX01JTk9SID49IDM4Ci1AQCAtNDUs NyArNDUsOSBAQCBuYW1lc3BhY2UgZ2JlIHsKLSAgICAgICBBVS5zZXRQcmVzZXJ2ZXNDRkcoKTsK LSAgICAgfQotIAotLSAgICB2aXJ0dWFsIGJvb2wgcnVuT25CYXNpY0Jsb2NrKEJhc2ljQmxvY2sg JkJCKSB7Ci0rICAgIHZpcnR1YWwgYm9vbCBydW5PbkZ1bmN0aW9uKEZ1bmN0aW9uICZGKSB7Ci0r ICAgICAgICBib29sIGNoYW5nZWRBbnlCbG9jayA9IGZhbHNlOwotKyAgICAgICAgZm9yIChCYXNp Y0Jsb2NrICZCQiA6IEYpIHsKLSAjaWYgTExWTV9WRVJTSU9OX01BSk9SICogMTAgKyBMTFZNX1ZF UlNJT05fTUlOT1IgPj0gMzgKLSAgICAgICBTRSA9ICZnZXRBbmFseXNpczxTY2FsYXJFdm9sdXRp b25XcmFwcGVyUGFzcz4oKS5nZXRTRSgpOwotICNlbHNlCi1AQCAtNTksNyArNjEsOSBAQCBuYW1l c3BhY2UgZ2JlIHsKLSAgICAgICAjZWxzZQotICAgICAgICAgVEQgPSBnZXRBbmFseXNpc0lmQXZh aWxhYmxlPERhdGFMYXlvdXQ+KCk7Ci0gICAgICAgI2VuZGlmCi0tICAgICAgcmV0dXJuIG9wdGlt aXplTG9hZFN0b3JlKEJCKTsKLSsgICAgICAgICAgIGNoYW5nZWRBbnlCbG9jayA9IG9wdGltaXpl TG9hZFN0b3JlKEJCKSB8IGNoYW5nZWRBbnlCbG9jazsKLSsgICAgICAgIH0KLSsgICAgICAgIHJl dHVybiBjaGFuZ2VkQW55QmxvY2s7Ci0gICAgIH0KLSAgICAgVHlwZSAgICAqZ2V0VmFsdWVUeXBl KFZhbHVlICppbnNuKTsKLSAgICAgVmFsdWUgICAqZ2V0UG9pbnRlck9wZXJhbmQoVmFsdWUgKkkp OwotQEAgLTE0OCw3ICsxNTIsNyBAQCBuYW1lc3BhY2UgZ2JlIHsKLSAgICAgICB2YWx1ZXMucHVz aF9iYWNrKG1lcmdlZFtpXSk7Ci0gICAgIH0KLSAgICAgTG9hZEluc3QgKmxkID0gY2FzdDxMb2Fk SW5zdD4obWVyZ2VkWzBdKTsKLS0gICAgdW5zaWduZWQgYWxpZ24gPSBsZC0+Z2V0QWxpZ25tZW50 KCk7Ci0rICAgIE1heWJlQWxpZ24gYWxpZ24gPSBsZC0+Z2V0QWxpZ24oKTsKLSAgICAgdW5zaWdu ZWQgYWRkclNwYWNlID0gbGQtPmdldFBvaW50ZXJBZGRyZXNzU3BhY2UoKTsKLSAgICAgLy8gaW5z ZXJ0IGJlZm9yZSBmaXJzdCBsb2FkCi0gICAgIEJ1aWxkZXIuU2V0SW5zZXJ0UG9pbnQobGQpOwot QEAgLTIzMSw3ICsyMzUsNyBAQCBuYW1lc3BhY2UgZ2JlIHsKLSAKLSAgICAgdW5zaWduZWQgYWRk clNwYWNlID0gc3QtPmdldFBvaW50ZXJBZGRyZXNzU3BhY2UoKTsKLSAKLS0gICAgdW5zaWduZWQg YWxpZ24gPSBzdC0+Z2V0QWxpZ25tZW50KCk7Ci0rICAgIE1heWJlQWxpZ24gYWxpZ24gPSBzdC0+ Z2V0QWxpZ24oKTsKLSAgICAgLy8gaW5zZXJ0IGJlZm9yZSB0aGUgbGFzdCBzdG9yZQotICAgICBC dWlsZGVyLlNldEluc2VydFBvaW50KG1lcmdlZFtzaXplLTFdKTsKLSAKLUBAIC0zMjUsNyArMzI5 LDcgQEAgbmFtZXNwYWNlIGdiZSB7Ci0gICAgIHJldHVybiBjaGFuZ2VkOwotICAgfQotIAotLSAg QmFzaWNCbG9ja1Bhc3MgKmNyZWF0ZUxvYWRTdG9yZU9wdGltaXphdGlvblBhc3MoKSB7Ci0rICBG dW5jdGlvblBhc3MgKmNyZWF0ZUxvYWRTdG9yZU9wdGltaXphdGlvblBhc3MoKSB7Ci0gICAgIHJl dHVybiBuZXcgR2VuTG9hZFN0b3JlT3B0aW1pemF0aW9uKCk7Ci0gICB9Ci0gfTsKLWRpZmYgLS1n aXQgYmFja2VuZC9zcmMvbGx2bS9sbHZtX3Bhc3Nlcy5jcHAgYmFja2VuZC9zcmMvbGx2bS9sbHZt X3Bhc3Nlcy5jcHAKLWluZGV4IDEwNzUyYTMuLmI4ZjIyODIgMTAwNjQ0Ci0tLS0gYS9iYWNrZW5k L3NyYy9sbHZtL2xsdm1fcGFzc2VzLmNwcAotKysrIGIvYmFja2VuZC9zcmMvbGx2bS9sbHZtX3Bh c3Nlcy5jcHAKLUBAIC0zNyw3ICszNyw3IEBACi0gI2luY2x1ZGUgInN5cy9tYXAuaHBwIgotIAot IHVzaW5nIG5hbWVzcGFjZSBsbHZtOwotLQotK3RlbXBsYXRlIGNsYXNzIGNmZzo6VXBkYXRlPEJh c2ljQmxvY2sgKj47Ci0gbmFtZXNwYWNlIGdiZQotIHsKLSAgIGJvb2wgaXNLZXJuZWxGdW5jdGlv bihjb25zdCBsbHZtOjpGdW5jdGlvbiAmRikgewotQEAgLTIxOSwxMyArMjE5LDEzIEBAIG5hbWVz cGFjZSBnYmUKLSAgICAgcmV0dXJuIG9mZnNldDsKLSAgIH0KLSAKLS0gIGNsYXNzIEdlblJlbW92 ZUdFUFBhc3NzIDogcHVibGljIEJhc2ljQmxvY2tQYXNzCi0rICBjbGFzcyBHZW5SZW1vdmVHRVBQ YXNzcyA6IHB1YmxpYyBGdW5jdGlvblBhc3MKLSAgIHsKLSAKLSAgICBwdWJsaWM6Ci0gICAgIHN0 YXRpYyBjaGFyIElEOwotICAgICBHZW5SZW1vdmVHRVBQYXNzcyhjb25zdCBpcjo6VW5pdCAmdW5p dCkgOgotLSAgICAgIEJhc2ljQmxvY2tQYXNzKElEKSwKLSsgICAgICBGdW5jdGlvblBhc3MoSUQp LAotICAgICAgIHVuaXQodW5pdCkge30KLSAgICAgY29uc3QgaXI6OlVuaXQgJnVuaXQ7Ci0gICAg IHZvaWQgZ2V0QW5hbHlzaXNVc2FnZShBbmFseXNpc1VzYWdlICZBVSkgY29uc3QgewotQEAgLTI0 MiwxNiArMjQyLDE4IEBAIG5hbWVzcGFjZSBnYmUKLSAKLSAgICAgYm9vbCBzaW1wbGlmeUdFUElu c3RydWN0aW9ucyhHZXRFbGVtZW50UHRySW5zdCogR0VQSW5zdCk7Ci0gCi0tICAgIHZpcnR1YWwg Ym9vbCBydW5PbkJhc2ljQmxvY2soQmFzaWNCbG9jayAmQkIpCi0rICAgIHZpcnR1YWwgYm9vbCBy dW5PbkZ1bmN0aW9uKEZ1bmN0aW9uICZGKQotICAgICB7Ci0tICAgICAgYm9vbCBjaGFuZ2VkQmxv Y2sgPSBmYWxzZTsKLSsgICAgICBib29sIGNoYW5nZWRBbnlCbG9jayA9IGZhbHNlOwotKyAgICAg ICAgZm9yIChCYXNpY0Jsb2NrICZCQiA6IEYpIHsKLSAgICAgICBpcGxpc3Q8SW5zdHJ1Y3Rpb24+ OjppdGVyYXRvciBJID0gQkIuZ2V0SW5zdExpc3QoKS5iZWdpbigpOwotICAgICAgIGZvciAoYXV0 byBuZXh0SSA9IEksIEUgPSAtLUJCLmdldEluc3RMaXN0KCkuZW5kKCk7IEkgIT0gRTsgSSA9IG5l eHRJKSB7Ci0gICAgICAgICBpcGxpc3Q8SW5zdHJ1Y3Rpb24+OjppdGVyYXRvciBJID0gbmV4dEkr KzsKLSAgICAgICAgIGlmKEdldEVsZW1lbnRQdHJJbnN0KiBnZXAgPSBkeW5fY2FzdDxHZXRFbGVt ZW50UHRySW5zdD4oJipJKSkKLS0gICAgICAgICAgY2hhbmdlZEJsb2NrID0gKHNpbXBsaWZ5R0VQ SW5zdHJ1Y3Rpb25zKGdlcCkgfHwgY2hhbmdlZEJsb2NrKTsKLSsgICAgICAgICAgY2hhbmdlZEFu eUJsb2NrID0gKHNpbXBsaWZ5R0VQSW5zdHJ1Y3Rpb25zKGdlcCkgfCBjaGFuZ2VkQW55QmxvY2sp OwotICAgICAgIH0KLS0gICAgICByZXR1cm4gY2hhbmdlZEJsb2NrOwotKyAgICAgICAgfQotKyAg ICAgIHJldHVybiBjaGFuZ2VkQW55QmxvY2s7Ci0gICAgIH0KLSAgIH07Ci0gCi1AQCAtMzY3LDcg KzM2OSw3IEBAIG5hbWVzcGFjZSBnYmUKLSAgICAgcmV0dXJuIHRydWU7Ci0gICB9Ci0gCi0tICBC YXNpY0Jsb2NrUGFzcyAqY3JlYXRlUmVtb3ZlR0VQUGFzcyhjb25zdCBpcjo6VW5pdCAmdW5pdCkg ewotKyAgRnVuY3Rpb25QYXNzICpjcmVhdGVSZW1vdmVHRVBQYXNzKGNvbnN0IGlyOjpVbml0ICZ1 bml0KSB7Ci0gICAgIHJldHVybiBuZXcgR2VuUmVtb3ZlR0VQUGFzc3ModW5pdCk7Ci0gICB9Ci0g fSAvKiBuYW1lc3BhY2UgZ2JlICovCi1kaWZmIC0tZ2l0IGJhY2tlbmQvc3JjL2xsdm0vbGx2bV9z YW1wbGVyX2ZpeC5jcHAgYmFja2VuZC9zcmMvbGx2bS9sbHZtX3NhbXBsZXJfZml4LmNwcAotaW5k ZXggMmEwOTdjOC4uODYzYmU2ZCAxMDA2NDQKLS0tLSBhL2JhY2tlbmQvc3JjL2xsdm0vbGx2bV9z YW1wbGVyX2ZpeC5jcHAKLSsrKyBiL2JhY2tlbmQvc3JjL2xsdm0vbGx2bV9zYW1wbGVyX2ZpeC5j cHAKLUBAIC0zMywxMCArMzMsMTIgQEAgbmFtZXNwYWNlIGdiZSB7Ci0gICBjbGFzcyBTYW1wbGVy Rml4IDogcHVibGljIEZ1bmN0aW9uUGFzcyB7Ci0gICBwdWJsaWM6Ci0gICAgIFNhbXBsZXJGaXgo KSA6IEZ1bmN0aW9uUGFzcyhJRCkgewotKyNpZiBMTFZNX1ZFUlNJT05fTUFKT1IgPCAxMAotICNp ZiBMTFZNX1ZFUlNJT05fTUFKT1IgKiAxMCArIExMVk1fVkVSU0lPTl9NSU5PUiA+PSAzNQotICAg ICAgIGluaXRpYWxpemVEb21pbmF0b3JUcmVlV3JhcHBlclBhc3NQYXNzKCpQYXNzUmVnaXN0cnk6 OmdldFBhc3NSZWdpc3RyeSgpKTsKLSAjZWxzZQotICAgICAgIGluaXRpYWxpemVEb21pbmF0b3JU cmVlUGFzcygqUGFzc1JlZ2lzdHJ5OjpnZXRQYXNzUmVnaXN0cnkoKSk7Ci0rI2VuZGlmCi0gI2Vu ZGlmCi0gICAgIH0KLSAKLWRpZmYgLS1naXQgYmFja2VuZC9zcmMvbGx2bS9sbHZtX3NjYWxhcml6 ZS5jcHAgYmFja2VuZC9zcmMvbGx2bS9sbHZtX3NjYWxhcml6ZS5jcHAKLWluZGV4IGU5YTJhNjYu LmU5ZDJlZTQgMTAwNjQ0Ci0tLS0gYS9iYWNrZW5kL3NyYy9sbHZtL2xsdm1fc2NhbGFyaXplLmNw cAotKysrIGIvYmFja2VuZC9zcmMvbGx2bS9sbHZtX3NjYWxhcml6ZS5jcHAKLUBAIC05NiwxMCAr OTYsMTIgQEAgbmFtZXNwYWNlIGdiZSB7Ci0gCi0gICAgIFNjYWxhcml6ZSgpIDogRnVuY3Rpb25Q YXNzKElEKQotICAgICB7Ci0rI2lmIExMVk1fVkVSU0lPTl9NQUpPUiA8IDEwCi0gI2lmIExMVk1f VkVSU0lPTl9NQUpPUiAqIDEwICsgTExWTV9WRVJTSU9OX01JTk9SID49IDM1Ci0gICAgICAgaW5p dGlhbGl6ZURvbWluYXRvclRyZWVXcmFwcGVyUGFzc1Bhc3MoKlBhc3NSZWdpc3RyeTo6Z2V0UGFz c1JlZ2lzdHJ5KCkpOwotICNlbHNlCi0gICAgICAgaW5pdGlhbGl6ZURvbWluYXRvclRyZWVQYXNz KCpQYXNzUmVnaXN0cnk6OmdldFBhc3NSZWdpc3RyeSgpKTsKLSsjZW5kaWYKLSAjZW5kaWYKLSAg ICAgfQotIAotZGlmZiAtLWdpdCB1dGVzdHMvQ01ha2VMaXN0cy50eHQgdXRlc3RzL0NNYWtlTGlz dHMudHh0Ci1pbmRleCAzMDBkODdhLi42NDE3OWM3IDEwMDY0NAotLS0tIGEvdXRlc3RzL0NNYWtl TGlzdHMudHh0Ci0rKysgYi91dGVzdHMvQ01ha2VMaXN0cy50eHQKLUBAIC0yNiw4ICsyNiw4IEBA IGlmIChOT1QgTk9UX0JVSUxEX1NUQU5EX0FMT05FX1VURVNUKQotICAgIyBUaHJlYWRzCi0gICBG aW5kX1BhY2thZ2UoVGhyZWFkcykKLSAKLS0gIHNldCAoQ01BS0VfQ1hYX0ZMQUdTICIke0NNQUtF X0NYWF9GTEFHU30gJHtDTUFLRV9DX0NYWF9GTEFHU30gLXN0ZD1jKysweCAtV25vLWludmFsaWQt b2Zmc2V0b2YiKQotLSAgc2V0IChDTUFLRV9DX0ZMQUdTICIke0NNQUtFX0NfRkxBR1N9ICR7Q01B S0VfQ19DWFhfRkxBR1N9IikKLSsgIHNldCAoQ01BS0VfQ1hYX0ZMQUdTICIke0NNQUtFX0NYWF9G TEFHU30gJHtDTUFLRV9DX0NYWF9GTEFHU30gLVduby1pbnZhbGlkLW9mZnNldG9mIC1mZmxvYXQt c3RvcmUgLWZuby1zdHJpY3QtYWxpYXNpbmciKQotKyAgc2V0IChDTUFLRV9DX0ZMQUdTICIke0NN QUtFX0NfRkxBR1N9ICR7Q01BS0VfQ19DWFhfRkxBR1N9IC1mZmxvYXQtc3RvcmUgLWZuby1zdHJp Y3QtYWxpYXNpbmciKSAjY29tcGlsZXJfe2RlZ3JlZXMscmFkaWFucyxmdW5jdGlvbl9hcmd1bWVu dDJ9IHVzZSBlcXVhbGl0eSBjb21wYXJpc29uIG9mIGZsb2F0cywgY29tcGlsZXJfbG9uZ19iaXRj YXN0IHVzZXMgYWxpYXNpbmcKLSAgIHNldCAoQ01BS0VfQ1hYX0ZMQUdTX0RFQlVHICAgICAgICAg ICItTzAgLWcgLURHQkVfREVCVUc9MSIpCi0gICBzZXQgKENNQUtFX0NYWF9GTEFHU19SRUxXSVRI REVCSU5GTyAiLU8yIC1nIC1ER0JFX0RFQlVHPTEiKQotICAgc2V0IChDTUFLRV9DWFhfRkxBR1Nf TUlOU0laRVJFTCAgICAgIi1PcyAtRE5ERUJVRyAtREdCRV9ERUJVRz0wIikKZGlmZiAtLWdpdCBh L3NyY3BrZ3MvYmVpZ25ldC9wYXRjaGVzL2xsdm0xMS5wYXRjaCBiL3NyY3BrZ3MvYmVpZ25ldC9w YXRjaGVzL2xsdm0xMS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmMzYTQy Nzg5NDNjLi4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9iZWlnbmV0L3BhdGNoZXMvbGx2bTEx LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsOTM3ICswLDAgQEAKLVNvdXJjZTogU25la3Ryb24K LQotVGhlcmUgd2VyZSBhIGZldyBjaGFuZ2VzIHJlcXVpcmVkIGZvciBMTFZNIDExOgotKiBsbHZt OjpTdHJpbmdSZWYgcmVxdWlyZXMgLnN0cigpLCBpbXBsaWNpdCBjb252ZXJzaW9uIHdhcyByZW1v dmVkCi0qIGxsdm06OkNhbGxTaXRlIHdhcyByZW1vdmVkLCBidXQgdGhlIHJlcXVpcmVkIG1ldGhv ZHMgYXJlIGF2YWlsYWJsZSBvbiBsbHZtOjpDYWxsSW5zdAotKiBWZWN0b3JUeUlEIHdhcyBzcGxp dCBpbnRvIEZpeGVkVmVjdG9yVHlJRCBhbmQgU2NhbGFibGVWZWN0b3JUeUlELCBGaXhlZFZlY3Rv clR5SUQgd2FzIHVzZWQKLSogQ2FsbEluc3Q6OmdldENhbGxlZFZhbHVlKCkgd2FzIHJlbmFtZWQg dG8gQ2FsbEluc3Q6OmdldENhbGxlZE9wZXJhbmQoKQotKiBJbXBsaWNpdCBjb252ZXJzaW9uIGZy b20gTWF5YmVBbGlnbiB0byBBbGlnbiB3YXMgcmVtb3ZlZCwgc28gTWF5YmVBbGlnbjo6dmFsdWVP ck9uZSB3YXMgdXNlZCBpbnN0ZWFkLgotCi0tLS0gYS9iYWNrZW5kL3NyYy9sbHZtL1N0cmlwQXR0 cmlidXRlcy5jcHAJMjAyMC0xMS0wOSAxNjo0ODoyMC44MjM4NjYxMTIgKzAxMDAKLSsrKyBiL2Jh Y2tlbmQvc3JjL2xsdm0vU3RyaXBBdHRyaWJ1dGVzLmNwcAkyMDIwLTExLTA5IDE5OjA0OjE5LjY0 MTg5NzE0MSArMDEwMAotQEAgLTEwNyw5ICsxMDcsOCBAQAotICAgICAgICBCQiAhPSBFOyArK0JC KSB7Ci0gICAgIGZvciAoQmFzaWNCbG9jazo6aXRlcmF0b3IgSW5zdCA9IEJCLT5iZWdpbigpLCBF ID0gQkItPmVuZCgpOwotICAgICAgICAgIEluc3QgIT0gRTsgKytJbnN0KSB7Ci0tICAgICAgQ2Fs bFNpdGUgQ2FsbCgmKkluc3QpOwotLSAgICAgIGlmIChDYWxsKQotLSAgICAgICAgQ2FsbC5zZXRD YWxsaW5nQ29udihDYWxsaW5nQ29udjo6Qyk7Ci0rICAgICAgaWYgKENhbGxJbnN0KiBjYWxsSW5z dCA9IGR5bl9jYXN0PENhbGxJbnN0PigmKkluc3QpKQotKyAgICAgICAgY2FsbEluc3QtPnNldENh bGxpbmdDb252KENhbGxpbmdDb252OjpDKTsKLSAgICAgfQotICAgfQotCi0tLS0gYS9iYWNrZW5k L3NyYy9sbHZtL2xsdm1fYml0Y29kZV9saW5rLmNwcAkyMDIwLTExLTA5IDE2OjQ4OjIwLjgyMzg2 NjExMiArMDEwMAotKysrIGIvYmFja2VuZC9zcmMvbGx2bS9sbHZtX2JpdGNvZGVfbGluay5jcHAJ MjAyMC0xMS0wOSAxNzowNDowOS42MzM3NTM0MjggKzAxMDAKLUBAIC05OCw3ICs5OCw3IEBACi0g ICAgICAgICBpZiAoY2FsbEZ1bmMgJiYgY2FsbEZ1bmMtPmdldEludHJpbnNpY0lEKCkgIT0gMCkK LSAgICAgICAgICAgY29udGludWU7Ci0KLS0gICAgICAgIHN0ZDo6c3RyaW5nIGZuTmFtZSA9IGNh bGwtPmdldENhbGxlZFZhbHVlKCktPnN0cmlwUG9pbnRlckNhc3RzKCktPmdldE5hbWUoKTsKLSsg ICAgICAgIHN0ZDo6c3RyaW5nIGZuTmFtZSA9IGNhbGwtPmdldENhbGxlZE9wZXJhbmQoKS0+c3Ry aXBQb2ludGVyQ2FzdHMoKS0+Z2V0TmFtZSgpLnN0cigpOwotCi0gICAgICAgICBpZiAoIU1GUy5p bnNlcnQoZm5OYW1lKS5zZWNvbmQpIHsKLSAgICAgICAgICAgY29udGludWU7Ci0tLS0gYS9iYWNr ZW5kL3NyYy9sbHZtL2xsdm1fZGV2aWNlX2VucXVldWUuY3BwCTIwMjAtMTEtMDkgMTY6NDg6MjAu ODIzODY2MTEyICswMTAwCi0rKysgYi9iYWNrZW5kL3NyYy9sbHZtL2xsdm1fZGV2aWNlX2VucXVl dWUuY3BwCTIwMjAtMTEtMDkgMTk6MDE6NDkuMjAxOTE1MDA4ICswMTAwCi1AQCAtNDUsNyArNDUs NyBAQAotICAgICAgIHJldHVybiBOVUxMOwotCi0gICAgIC8qIFRoaXMgaXMgYSBmYWtlLCB0byBj aGVjayB0aGUgZnVuY3Rpb24gYml0Y2FzdCBpcyBmb3IgYmxvY2sgb3Igbm90ICovCi0tICAgIHN0 ZDo6c3RyaW5nIGZuTmFtZSA9IEZuLT5nZXROYW1lKCk7Ci0rICAgIHN0ZDo6c3RyaW5nIGZuTmFt ZSA9IEZuLT5nZXROYW1lKCkuc3RyKCk7Ci0gICAgIGlmKGZuTmFtZS5maW5kKCJfaW52b2tlIikg PT0gc3RkOjpzdHJpbmc6Om5wb3MpCi0gICAgICAgcmV0dXJuIE5VTEw7Ci0KLUBAIC0xMTksMTgg KzExOSwxOCBAQAotICAgICAgIFBhcmFtVHlzLnB1c2hfYmFjayh0eSk7Ci0gICAgIH0KLSAgICAg RnVuY3Rpb25UeXBlKiBOZXdGVCA9IEZ1bmN0aW9uVHlwZTo6Z2V0KEZuLT5nZXRSZXR1cm5UeXBl KCksIFBhcmFtVHlzLCBmYWxzZSk7Ci0tICAgIEZ1bmN0aW9uKiBOZXdGbiA9IEZ1bmN0aW9uOjpD cmVhdGUoTmV3RlQsIEZ1bmN0aW9uOjpFeHRlcm5hbExpbmthZ2UsIEZuLT5nZXROYW1lKCkpOwot KyAgICBGdW5jdGlvbiogTmV3Rm4gPSBGdW5jdGlvbjo6Q3JlYXRlKE5ld0ZULCBGdW5jdGlvbjo6 RXh0ZXJuYWxMaW5rYWdlLCBGbi0+Z2V0TmFtZSgpLnN0cigpKTsKLSAgICAgU21hbGxWZWN0b3I8 UmV0dXJuSW5zdCosIDg+IFJldHVybnM7Ci0KLSAgICAgRnVuY3Rpb246OmFyZ19pdGVyYXRvciBO ZXdGbkFyZ0l0ID0gTmV3Rm4tPmFyZ19iZWdpbigpOwotICAgICBmb3IgKEZ1bmN0aW9uOjphcmdf aXRlcmF0b3IgSSA9IEZuLT5hcmdfYmVnaW4oKSwgRSA9IEZuLT5hcmdfZW5kKCk7IEkgIT0gRTsg KytJKSB7Ci0tICAgICAgc3RkOjpzdHJpbmcgQXJnTmFtZSA9IEktPmdldE5hbWUoKTsKLSsgICAg ICBzdGQ6OnN0cmluZyBBcmdOYW1lID0gSS0+Z2V0TmFtZSgpLnN0cigpOwotICAgICAgIE5ld0Zu QXJnSXQtPnNldE5hbWUoQXJnTmFtZSk7Ci0gICAgICAgVk1hcFsmKkldID0gJigqTmV3Rm5BcmdJ dCsrKTsKLSAgICAgfQotICAgICBDbG9uZUZ1bmN0aW9uSW50byhOZXdGbiwgRm4sIFZNYXAsIC8q TW9kdWxlTGV2ZWxDaGFuZ2VzPSovdHJ1ZSwgUmV0dXJucyk7Ci0KLS0gICAgRm4tPnNldE5hbWUo Il9fZCIgKyBGbi0+Z2V0TmFtZSgpKTsKLSsgICAgRm4tPnNldE5hbWUoIl9fZCIgKyBGbi0+Z2V0 TmFtZSgpLnN0cigpKTsKLSAgICAgbW9kLT5nZXRGdW5jdGlvbkxpc3QoKS5wdXNoX2JhY2soTmV3 Rm4pOwotICAgICAvL21vZC0+Z2V0T3JJbnNlcnRGdW5jdGlvbihOZXdGbi0+Z2V0TmFtZSgpLCBO ZXdGbi0+Z2V0RnVuY3Rpb25UeXBlKCksCi0gICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAg IE5ld0ZuLT5nZXRBdHRyaWJ1dGVzKCkpOwotQEAgLTE0Nyw3ICsxNDcsNyBAQAotICAgICAgIGFy Z1R5cGVOYW1lcy5wdXNoX2JhY2sobGx2bTo6TURTdHJpbmc6OmdldChDb250ZXh0LCAiY2hhcioi KSk7Ci0gICAgICAgYXJnQmFzZVR5cGVOYW1lcy5wdXNoX2JhY2sobGx2bTo6TURTdHJpbmc6Omdl dChDb250ZXh0LCAiY2hhcioiKSk7Ci0gICAgICAgYXJnVHlwZVF1YWxzLnB1c2hfYmFjayhsbHZt OjpNRFN0cmluZzo6Z2V0KENvbnRleHQsICIiKSk7Ci0tICAgICAgYXJnTmFtZXMucHVzaF9iYWNr KGxsdm06Ok1EU3RyaW5nOjpnZXQoQ29udGV4dCwgSS0+Z2V0TmFtZSgpKSk7Ci0rICAgICAgYXJn TmFtZXMucHVzaF9iYWNrKGxsdm06Ok1EU3RyaW5nOjpnZXQoQ29udGV4dCwgSS0+Z2V0TmFtZSgp LnN0cigpKSk7Ci0gICAgIH0KLQotICAgICAvL0lmIHJ1biB0byBoZXJlLCBsbHZtIHZlcnNpb24g YWx3YXlzID4gMy45LCBhZGQgdGhlIHZlcnNpb24gY2hlY2sganVzdCBmb3IgYnVpbGQuCi1AQCAt MTk4LDcgKzE5OCw3IEBACi0gICAgICAgICAgICAqIGludm9rZSBwb2ludGVyIHRvIHN0b3JlIHRo ZSBpbmRleCBpbiB0aGUgdW5pdCdzIGJsb2NrIGZ1bmN0aW9ucyBpbmRleC4qLwotICAgICAgICAg ICBGdW5jdGlvbiAqRm4gPSBkeW5fY2FzdDxGdW5jdGlvbj4oYnQtPmdldE9wZXJhbmQoMCkpOwot Ci0tICAgICAgICAgIHN0ZDo6c3RyaW5nIGZuTmFtZSA9IEZuLT5nZXROYW1lKCk7Ci0rICAgICAg ICAgIHN0ZDo6c3RyaW5nIGZuTmFtZSA9IEZuLT5nZXROYW1lKCkuc3RyKCk7Ci0gICAgICAgICAg IGludCBpbmRleCA9IC0xOwotICAgICAgICAgICBmb3Ioc2l6ZV90IGk9MDsgaTx1bml0LmJsb2Nr RnVuY3Muc2l6ZSgpOyBpKyspIHsKLSAgICAgICAgICAgICBpZih1bml0LmJsb2NrRnVuY3NbaV0g PT0gZm5OYW1lKSB7Ci1AQCAtMjQxLDcgKzI0MSw3IEBACi0gICAgICAgICAgICAgLy91bm5hbWVk IGNhbGwgZnVuY3Rpb24sIHBhcnNlIHRoZSB1c2UgdG8gZmluZCB0aGUgZGVmaW5lIG9mIGNhbGxl ZCBmdW5jdGlvbgotICAgICAgICAgICAgIFNtYWxsVmVjdG9yPFZhbHVlKiwgMTY+IGFyZ3MoQ0kt Pm9wX2JlZ2luKCksIENJLT5vcF9lbmQoKS0xKTsKLQotLSAgICAgICAgICAgIFZhbHVlICp2ID0g Q0ktPmdldENhbGxlZFZhbHVlKCk7Ci0rICAgICAgICAgICAgVmFsdWUgKnYgPSBDSS0+Z2V0Q2Fs bGVkT3BlcmFuZCgpOwotICAgICAgICAgICAgIEJpdENhc3RJbnN0KiBidCA9IGR5bl9jYXN0PEJp dENhc3RJbnN0Pih2KTsKLSAgICAgICAgICAgICBpZihidCA9PSBOVUxMKQotICAgICAgICAgICAg ICAgY29udGludWU7Ci1AQCAtMzE2LDcgKzMxNiw3IEBACi0gICAgICAgICAgICAgICAgICAgQ29u c3RhbnRFeHByICpleHByID0gZHluX2Nhc3Q8Q29uc3RhbnRFeHByPihjLT5nZXRPcGVyYW5kKDMp KTsKLSAgICAgICAgICAgICAgICAgICBCaXRDYXN0SW5zdCAqYnQgPSBkeW5fY2FzdDxCaXRDYXN0 SW5zdD4oZXhwci0+Z2V0QXNJbnN0cnVjdGlvbigpKTsKLSAgICAgICAgICAgICAgICAgICBGdW5j dGlvbiogZiA9IGR5bl9jYXN0PEZ1bmN0aW9uPihidC0+Z2V0T3BlcmFuZCgwKSk7Ci0tICAgICAg ICAgICAgICAgICAgYmxvY2tzW3ZdID0gZi0+Z2V0TmFtZSgpOwotKyAgICAgICAgICAgICAgICAg IGJsb2Nrc1t2XSA9IGYtPmdldE5hbWUoKS5zdHIoKTsKLSAgICAgICAgICAgICAgICAgfQotICAg ICAgICAgICAgICAgfQotCi1AQCAtMzMyLDcgKzMzMiw3IEBACi0gICAgICAgICAgIH0gZWxzZSB7 Ci0gICAgICAgICAgICAgLy9oYW5kbGUgZW5xdWV1ZV9rZXJuZWwgZnVuY3Rpb24gY2FsbAotICAg ICAgICAgICAgIEZ1bmN0aW9uICpmbiA9IENJLT5nZXRDYWxsZWRGdW5jdGlvbigpOwotLSAgICAg ICAgICAgIGlmIChmbi0+Z2V0TmFtZSgpLmZpbmQoImVucXVldWVfa2VybmVsIikgPT0gc3RkOjpz dHJpbmc6Om5wb3MpCi0rICAgICAgICAgICAgaWYgKGZuLT5nZXROYW1lKCkuc3RyKCkuZmluZCgi ZW5xdWV1ZV9rZXJuZWwiKSA9PSBzdGQ6OnN0cmluZzo6bnBvcykKLSAgICAgICAgICAgICAgIGNv bnRpbnVlOwotCi0gICAgICAgICAgICAgLy9ibG9jayBwYXJhbWV0ZXIncyBpbmRleCwgMyBvciA2 Ci1AQCAtMzYxLDcgKzM2MSw3IEBACi0gICAgICAgICAgICAgICAgICAgQ29uc3RhbnRFeHByICpl eHByID0gZHluX2Nhc3Q8Q29uc3RhbnRFeHByPihjLT5nZXRPcGVyYW5kKDMpKTsKLSAgICAgICAg ICAgICAgICAgICBCaXRDYXN0SW5zdCAqYnQgPSBkeW5fY2FzdDxCaXRDYXN0SW5zdD4oZXhwci0+ Z2V0QXNJbnN0cnVjdGlvbigpKTsKLSAgICAgICAgICAgICAgICAgICBGdW5jdGlvbiogZiA9IGR5 bl9jYXN0PEZ1bmN0aW9uPihidC0+Z2V0T3BlcmFuZCgwKSk7Ci0tICAgICAgICAgICAgICAgICAg YmxvY2tzW3ZdID0gZi0+Z2V0TmFtZSgpOwotKyAgICAgICAgICAgICAgICAgIGJsb2Nrc1t2XSA9 IGYtPmdldE5hbWUoKS5zdHIoKTsKLSAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAg fQotICAgICAgICAgICAgIH0gZWxzZSBpZihpc2E8QWxsb2NhSW5zdD4oYmxvY2spKSB7Ci0tLS0g YS9iYWNrZW5kL3NyYy9sbHZtL2xsdm1fZ2VuX2JhY2tlbmQuY3BwCTIwMjAtMTEtMDkgMTY6NDg6 MjAuODIzODY2MTEyICswMTAwCi0rKysgYi9iYWNrZW5kL3NyYy9sbHZtL2xsdm1fZ2VuX2JhY2tl bmQuY3BwCTIwMjAtMTEtMDkgMTg6MzM6NTAuOTE5MTE0MzI3ICswMTAwCi1AQCAtMzc2LDcgKzM3 Niw3IEBACi0gICAgICAgICAgIEdCRV9BU1NFUlQoaW5kZXggPT0gMCk7Ci0gICAgICAgICAgIHJl dHVybiB0aGlzLT5fbmV3U2NhbGFyKHZhbHVlLCBrZXksIHR5cGUsIGluZGV4LCB1bmlmb3JtKTsK LSAgICAgICAgICAgYnJlYWs7Ci0tICAgICAgICBjYXNlIFR5cGU6OlZlY3RvclR5SUQ6Ci0rICAg ICAgICBjYXNlIFR5cGU6OkZpeGVkVmVjdG9yVHlJRDoKLSAgICAgICAgIHsKLSAgICAgICAgICAg YXV0byB2ZWN0b3JUeXBlID0gY2FzdDxWZWN0b3JUeXBlPih0eXBlKTsKLSAgICAgICAgICAgYXV0 byBlbGVtZW50VHlwZSA9IHZlY3RvclR5cGUtPmdldEVsZW1lbnRUeXBlKCk7Ci1AQCAtNzQzLDIw ICs3NDMsMjAgQEAKLSAjdW5kZWYgREVDTF9WSVNJVF9GTgotCi0gICAgIC8vIEVtaXQgcm91bmRp bmcgaW5zdHJ1Y3Rpb25zIGZyb20gZ2VuIG5hdGl2ZSBmdW5jdGlvbgotLSAgICB2b2lkIGVtaXRS b3VuZGluZ0NhbGxJbnN0KENhbGxJbnN0ICZJLCBDYWxsU2l0ZSAmQ1MsIGlyOjpPcGNvZGUgb3Bj b2RlKTsKLSsgICAgdm9pZCBlbWl0Um91bmRpbmdDYWxsSW5zdChDYWxsSW5zdCAmSSwgaXI6Ok9w Y29kZSBvcGNvZGUpOwotICAgICAvLyBFbWl0IHVuYXJ5IGluc3RydWN0aW9ucyBmcm9tIGdlbiBu YXRpdmUgZnVuY3Rpb24KLS0gICAgdm9pZCBlbWl0VW5hcnlDYWxsSW5zdChDYWxsSW5zdCAmSSwg Q2FsbFNpdGUgJkNTLCBpcjo6T3Bjb2RlIG9wY29kZSwgaXI6OlR5cGUgPSBpcjo6VFlQRV9GTE9B VCk7Ci0rICAgIHZvaWQgZW1pdFVuYXJ5Q2FsbEluc3QoQ2FsbEluc3QgJkksIGlyOjpPcGNvZGUg b3Bjb2RlLCBpcjo6VHlwZSA9IGlyOjpUWVBFX0ZMT0FUKTsKLSAgICAgLy8gRW1pdCB1bmFyeSBp bnN0cnVjdGlvbnMgZnJvbSBnZW4gbmF0aXZlIGZ1bmN0aW9uCi0tICAgIHZvaWQgZW1pdEF0b21p Y0luc3QoQ2FsbEluc3QgJkksIENhbGxTaXRlICZDUywgaXI6OkF0b21pY09wcyBvcGNvZGUpOwot KyAgICB2b2lkIGVtaXRBdG9taWNJbnN0KENhbGxJbnN0ICZJLCBpcjo6QXRvbWljT3BzIG9wY29k ZSk7Ci0gICAgIC8vIEVtaXQgd29ya2dyb3VwIGluc3RydWN0aW9ucwotLSAgICB2b2lkIGVtaXRX b3JrR3JvdXBJbnN0KENhbGxJbnN0ICZJLCBDYWxsU2l0ZSAmQ1MsIGlyOjpXb3JrR3JvdXBPcHMg b3Bjb2RlKTsKLSsgICAgdm9pZCBlbWl0V29ya0dyb3VwSW5zdChDYWxsSW5zdCAmSSwgaXI6Oldv cmtHcm91cE9wcyBvcGNvZGUpOwotICAgICAvLyBFbWl0IHN1Ymdyb3VwIGluc3RydWN0aW9ucwot LSAgICB2b2lkIGVtaXRTdWJHcm91cEluc3QoQ2FsbEluc3QgJkksIENhbGxTaXRlICZDUywgaXI6 OldvcmtHcm91cE9wcyBvcGNvZGUpOwotKyAgICB2b2lkIGVtaXRTdWJHcm91cEluc3QoQ2FsbElu c3QgJkksIGlyOjpXb3JrR3JvdXBPcHMgb3Bjb2RlKTsKLSAgICAgLy8gRW1pdCBzdWJncm91cCBp bnN0cnVjdGlvbnMKLS0gICAgdm9pZCBlbWl0QmxvY2tSZWFkV3JpdGVNZW1JbnN0KENhbGxJbnN0 ICZJLCBDYWxsU2l0ZSAmQ1MsIGJvb2wgaXNXcml0ZSwgdWludDhfdCB2ZWNfc2l6ZSwgaXI6OlR5 cGUgPSBpcjo6VFlQRV9VMzIpOwotLSAgICB2b2lkIGVtaXRCbG9ja1JlYWRXcml0ZUltYWdlSW5z dChDYWxsSW5zdCAmSSwgQ2FsbFNpdGUgJkNTLCBib29sIGlzV3JpdGUsIHVpbnQ4X3QgdmVjX3Np emUsIGlyOjpUeXBlID0gaXI6OlRZUEVfVTMyKTsKLSsgICAgdm9pZCBlbWl0QmxvY2tSZWFkV3Jp dGVNZW1JbnN0KENhbGxJbnN0ICZJLCBib29sIGlzV3JpdGUsIHVpbnQ4X3QgdmVjX3NpemUsIGly OjpUeXBlID0gaXI6OlRZUEVfVTMyKTsKLSsgICAgdm9pZCBlbWl0QmxvY2tSZWFkV3JpdGVJbWFn ZUluc3QoQ2FsbEluc3QgJkksIGJvb2wgaXNXcml0ZSwgdWludDhfdCB2ZWNfc2l6ZSwgaXI6OlR5 cGUgPSBpcjo6VFlQRV9VMzIpOwotCi0tICAgIHVpbnQ4X3QgYXBwZW5kU2FtcGxlcihDYWxsU2l0 ZTo6YXJnX2l0ZXJhdG9yIEFJKTsKLSsgICAgdWludDhfdCBhcHBlbmRTYW1wbGVyKFVzZXI6Om9w X2l0ZXJhdG9yIEFJKTsKLSAgICAgdWludDhfdCBnZXRJbWFnZUlEKENhbGxJbnN0ICZJKTsKLQot ICAgICAvLyBUaGVzZSBpbnN0cnVjdGlvbnMgYXJlIG5vdCBzdXBwb3J0ZWQgYXQgYWxsCi1AQCAt MTMyMCwxMyArMTMyMCwxMyBAQAotICNlbmRpZgotCi0gICAgICAgaWYodHlwZU5hbWVOb2RlKSB7 Ci0tICAgICAgICBsbHZtSW5mby50eXBlTmFtZT0gKGNhc3Q8TURTdHJpbmc+KHR5cGVOYW1lTm9k ZS0+Z2V0T3BlcmFuZChvcElEKSkpLT5nZXRTdHJpbmcoKTsKLSsgICAgICAgIGxsdm1JbmZvLnR5 cGVOYW1lPSAoY2FzdDxNRFN0cmluZz4odHlwZU5hbWVOb2RlLT5nZXRPcGVyYW5kKG9wSUQpKSkt PmdldFN0cmluZygpLnN0cigpOwotICAgICAgIH0KLSAgICAgICBpZih0eXBlQmFzZU5hbWVOb2Rl KSB7Ci0tICAgICAgICBsbHZtSW5mby50eXBlQmFzZU5hbWU9IChjYXN0PE1EU3RyaW5nPih0eXBl QmFzZU5hbWVOb2RlLT5nZXRPcGVyYW5kKG9wSUQpKSktPmdldFN0cmluZygpOwotKyAgICAgICAg bGx2bUluZm8udHlwZUJhc2VOYW1lPSAoY2FzdDxNRFN0cmluZz4odHlwZUJhc2VOYW1lTm9kZS0+ Z2V0T3BlcmFuZChvcElEKSkpLT5nZXRTdHJpbmcoKS5zdHIoKTsKLSAgICAgICB9Ci0tICAgICAg bGx2bUluZm8udHlwZU5hbWU9IChjYXN0PE1EU3RyaW5nPih0eXBlTmFtZU5vZGUtPmdldE9wZXJh bmQob3BJRCkpKS0+Z2V0U3RyaW5nKCk7Ci0tICAgICAgbGx2bUluZm8udHlwZVF1YWwgPSAoY2Fz dDxNRFN0cmluZz4odHlwZVF1YWxOb2RlLT5nZXRPcGVyYW5kKG9wSUQpKSktPmdldFN0cmluZygp OwotKyAgICAgIGxsdm1JbmZvLnR5cGVOYW1lPSAoY2FzdDxNRFN0cmluZz4odHlwZU5hbWVOb2Rl LT5nZXRPcGVyYW5kKG9wSUQpKSktPmdldFN0cmluZygpLnN0cigpOwotKyAgICAgIGxsdm1JbmZv LnR5cGVRdWFsID0gKGNhc3Q8TURTdHJpbmc+KHR5cGVRdWFsTm9kZS0+Z2V0T3BlcmFuZChvcElE KSkpLT5nZXRTdHJpbmcoKS5zdHIoKTsKLSAgICAgICBib29sIGlzSW1hZ2UgPSBsbHZtSW5mby5p c0ltYWdlVHlwZSgpOwotICAgICAgIGJvb2wgaXNQaXBlID0gbGx2bUluZm8uaXNQaXBlVHlwZSgp OwotICAgICAgIGlmIChJLT5nZXRUeXBlKCktPmlzUG9pbnRlclR5KCkgfHwgaXNJbWFnZSB8fCBp c1BpcGUpIHsKLUBAIC0xNTMxLDcgKzE1MzEsNyBAQAotICAgICAgICAgICAgIEVsdFR5ID0gZ2V0 RWx0VHlwZShFbHRUeSwgVHlwZUluZGV4KTsKLSAgICAgICAgIH0KLQotLSAgICAgICAgaXI6OkNv bnN0YW50IGNjID0gdW5pdC5nZXRDb25zdGFudFNldCgpLmdldENvbnN0YW50KHBvaW50ZXItPmdl dE5hbWUoKSk7Ci0rICAgICAgICBpcjo6Q29uc3RhbnQgY2MgPSB1bml0LmdldENvbnN0YW50U2V0 KCkuZ2V0Q29uc3RhbnQocG9pbnRlci0+Z2V0TmFtZSgpLnN0cigpKTsKLSAgICAgICAgIHVuc2ln bmVkIGludCBkZWZPZmZzZXQgPSBjYy5nZXRPZmZzZXQoKTsKLSAgICAgICAgIHJlbG9jcy5wdXNo X2JhY2soaXI6OlJlbG9jRW50cnkob2Zmc2V0LCBkZWZPZmZzZXQgKyBjb25zdGFudE9mZnNldCkp OwotCi1AQCAtMTU0Niw3ICsxNTQ2LDcgQEAKLSAgICAgICByZXR1cm47Ci0gICAgIH0KLSAgICAg aWYgKGlzYTxHbG9iYWxWYXJpYWJsZT4oYykpIHsKLS0gICAgICBpcjo6Q29uc3RhbnQgY2MgPSB1 bml0LmdldENvbnN0YW50U2V0KCkuZ2V0Q29uc3RhbnQoYy0+Z2V0TmFtZSgpKTsKLSsgICAgICBp cjo6Q29uc3RhbnQgY2MgPSB1bml0LmdldENvbnN0YW50U2V0KCkuZ2V0Q29uc3RhbnQoYy0+Z2V0 TmFtZSgpLnN0cigpKTsKLSAgICAgICB1bnNpZ25lZCBpbnQgZGVmT2Zmc2V0ID0gY2MuZ2V0T2Zm c2V0KCk7Ci0KLSAgICAgICByZWxvY3MucHVzaF9iYWNrKGlyOjpSZWxvY0VudHJ5KG9mZnNldCwg ZGVmT2Zmc2V0KSk7Ci1AQCAtMTYwOSw3ICsxNjA5LDcgQEAKLSAgICAgICAgICAgfQotICAgICAg ICAgICBicmVhazsKLSAgICAgICAgIH0KLS0gICAgICBjYXNlIFR5cGU6OlR5cGVJRDo6VmVjdG9y VHlJRDoKLSsgICAgICBjYXNlIFR5cGU6OlR5cGVJRDo6Rml4ZWRWZWN0b3JUeUlEOgotICAgICAg ICAgewotICAgICAgICAgICBjb25zdCBDb25zdGFudERhdGFTZXF1ZW50aWFsICpjZHMgPSBkeW5f Y2FzdDxDb25zdGFudERhdGFTZXF1ZW50aWFsPihjKTsKLSAgICAgICAgICAgY29uc3QgVmVjdG9y VHlwZSAqdmVjVHkgPSBjYXN0PFZlY3RvclR5cGU+KHR5cGUpOwotQEAgLTE5MzYsNyArMTkzNiw3 IEBACi0gICAgICAgY2FzZSBUeXBlOjpQb2ludGVyVHlJRDoKLSAgICAgICAgIHJlZ1RyYW5zbGF0 b3IubmV3U2NhbGFyKHZhbHVlLCBrZXksIDAsIHVuaWZvcm0pOwotICAgICAgICAgYnJlYWs7Ci0t ICAgICAgY2FzZSBUeXBlOjpWZWN0b3JUeUlEOgotKyAgICAgIGNhc2UgVHlwZTo6Rml4ZWRWZWN0 b3JUeUlEOgotICAgICAgIHsKLSAgICAgICAgIGF1dG8gdmVjdG9yVHlwZSA9IGNhc3Q8VmVjdG9y VHlwZT4odHlwZSk7Ci0gICAgICAgICBjb25zdCB1aW50MzJfdCBlbGVtTnVtID0gdmVjdG9yVHlw ZS0+Z2V0TnVtRWxlbWVudHMoKTsKLUBAIC0yMzk1LDcgKzIzOTUsNyBAQAotICNlbmRpZgotICAg ICAgICAgfQotICAgICAgICAgaWYodHlwZU5hbWVOb2RlKSB7Ci0tICAgICAgICAgIGxsdm1JbmZv LnR5cGVOYW1lID0gKGNhc3Q8TURTdHJpbmc+KHR5cGVOYW1lTm9kZS0+Z2V0T3BlcmFuZChvcElE KSkpLT5nZXRTdHJpbmcoKTsKLSsgICAgICAgICAgbGx2bUluZm8udHlwZU5hbWUgPSAoY2FzdDxN RFN0cmluZz4odHlwZU5hbWVOb2RlLT5nZXRPcGVyYW5kKG9wSUQpKSktPmdldFN0cmluZygpLnN0 cigpOwotICAgICAgICAgICAvL0xMVk0gMy45IGltYWdlJ3MgdHlwZSBuYW1lIGluY2x1ZGUgYWNj ZXNzIHF1YWwsIGRvbid0IG1hdGNoIE9wZW5DTCBzcGVjLCBlcmFzZSB0aGVtLgotICAgICAgICAg ICBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4gZmlsdGVycyA9IHsiX19yZWFkX29ubHkgIiwgIl9f d3JpdGVfb25seSAifTsKLSAgICAgICAgICAgZm9yICh1aW50MzJfdCBpID0gMDsgaSA8IGZpbHRl cnMuc2l6ZSgpOyBpKyspIHsKLUBAIC0yNDA2LDE2ICsyNDA2LDE2IEBACi0gICAgICAgICAgIH0K LSAgICAgICAgIH0KLSAgICAgICAgIGlmKHR5cGVCYXNlTmFtZU5vZGUpewotLSAgICAgICAgICBs bHZtSW5mby50eXBlQmFzZU5hbWUgPSAoY2FzdDxNRFN0cmluZz4odHlwZUJhc2VOYW1lTm9kZS0+ Z2V0T3BlcmFuZChvcElEKSkpLT5nZXRTdHJpbmcoKTsKLSsgICAgICAgICAgbGx2bUluZm8udHlw ZUJhc2VOYW1lID0gKGNhc3Q8TURTdHJpbmc+KHR5cGVCYXNlTmFtZU5vZGUtPmdldE9wZXJhbmQo b3BJRCkpKS0+Z2V0U3RyaW5nKCkuc3RyKCk7Ci0gICAgICAgICB9Ci0gICAgICAgICBpZihhY2Nl c3NRdWFsTm9kZSkgewotLSAgICAgICAgICBsbHZtSW5mby5hY2Nlc3NRdWFsID0gKGNhc3Q8TURT dHJpbmc+KGFjY2Vzc1F1YWxOb2RlLT5nZXRPcGVyYW5kKG9wSUQpKSktPmdldFN0cmluZygpOwot KyAgICAgICAgICBsbHZtSW5mby5hY2Nlc3NRdWFsID0gKGNhc3Q8TURTdHJpbmc+KGFjY2Vzc1F1 YWxOb2RlLT5nZXRPcGVyYW5kKG9wSUQpKSktPmdldFN0cmluZygpLnN0cigpOwotICAgICAgICAg fQotICAgICAgICAgaWYodHlwZVF1YWxOb2RlKSB7Ci0tICAgICAgICAgIGxsdm1JbmZvLnR5cGVR dWFsID0gKGNhc3Q8TURTdHJpbmc+KHR5cGVRdWFsTm9kZS0+Z2V0T3BlcmFuZChvcElEKSkpLT5n ZXRTdHJpbmcoKTsKLSsgICAgICAgICAgbGx2bUluZm8udHlwZVF1YWwgPSAoY2FzdDxNRFN0cmlu Zz4odHlwZVF1YWxOb2RlLT5nZXRPcGVyYW5kKG9wSUQpKSktPmdldFN0cmluZygpLnN0cigpOwot ICAgICAgICAgfQotICAgICAgICAgaWYoYXJnTmFtZU5vZGUpewotLSAgICAgICAgICBsbHZtSW5m by5hcmdOYW1lID0gKGNhc3Q8TURTdHJpbmc+KGFyZ05hbWVOb2RlLT5nZXRPcGVyYW5kKG9wSUQp KSktPmdldFN0cmluZygpOwotKyAgICAgICAgICBsbHZtSW5mby5hcmdOYW1lID0gKGNhc3Q8TURT dHJpbmc+KGFyZ05hbWVOb2RlLT5nZXRPcGVyYW5kKG9wSUQpKSktPmdldFN0cmluZygpLnN0cigp OwotICAgICAgICAgfQotCi0gICAgICAgICAvLyBmdW5jdGlvbiBhcmd1bWVudHMgYXJlIHVuaWZv cm0gdmFsdWVzLgotQEAgLTMwMTAsNyArMzAxMCw3IEBACi0gICAgICAgICB9IGVsc2UgewotICAg ICAgICAgICB0aGlzLT5uZXdSZWdpc3Rlcihjb25zdF9jYXN0PEdsb2JhbFZhcmlhYmxlKj4oJnYp KTsKLSAgICAgICAgICAgaXI6OlJlZ2lzdGVyIHJlZyA9IHJlZ1RyYW5zbGF0b3IuZ2V0U2NhbGFy KGNvbnN0X2Nhc3Q8R2xvYmFsVmFyaWFibGUqPigmdiksIDApOwotLSAgICAgICAgICBpcjo6Q29u c3RhbnQgJmNvbiA9IHVuaXQuZ2V0Q29uc3RhbnRTZXQoKS5nZXRDb25zdGFudCh2LmdldE5hbWUo KSk7Ci0rICAgICAgICAgIGlyOjpDb25zdGFudCAmY29uID0gdW5pdC5nZXRDb25zdGFudFNldCgp LmdldENvbnN0YW50KHYuZ2V0TmFtZSgpLnN0cigpKTsKLSAgICAgICAgICAgaWYgKCFsZWdhY3lN b2RlKSB7Ci0gICAgICAgICAgICAgaXI6OlJlZ2lzdGVyIHJlZ2xvYWQgPSBjdHgucmVnKGdldEZh bWlseShnZXRUeXBlKGN0eCwgdi5nZXRUeXBlKCkpKSk7Ci0gICAgICAgICAgICAgY3R4LkxPQURJ KGdldFR5cGUoY3R4LCB2LmdldFR5cGUoKSksIHJlZ2xvYWQsIGN0eC5uZXdJbnRlZ2VySW1tZWRp YXRlKGNvbi5nZXRPZmZzZXQoKSwgZ2V0VHlwZShjdHgsIHYuZ2V0VHlwZSgpKSkpOwotQEAgLTMy MTIsNyArMzIxMiw3IEBACi0gICAgICAgICBHQkVfQVNTRVJUTShmYWxzZSwgIlVuc3VwcG9ydGVk IGNhbGxpbmcgY29udmVudGlvbiIpOwotICAgICB9Ci0KLS0gICAgY3R4LnN0YXJ0RnVuY3Rpb24o Ri5nZXROYW1lKCkpOwotKyAgICBjdHguc3RhcnRGdW5jdGlvbihGLmdldE5hbWUoKS5zdHIoKSk7 Ci0KLSAgICAgaXI6OkZ1bmN0aW9uICZmbiA9IGN0eC5nZXRGdW5jdGlvbigpOwotICAgICB0aGlz LT5yZWdUcmFuc2xhdG9yLmNsZWFyKCk7Ci1AQCAtMzgxMCw5ICszODEwLDkgQEAKLQotICAgdm9p ZCBHZW5Xcml0ZXI6OnJlZ0FsbG9jYXRlQ2FsbEluc3QoQ2FsbEluc3QgJkkpIHsKLSAgICAgVmFs dWUgKmRzdCA9ICZJOwotLSAgICBWYWx1ZSAqQ2FsbGVlID0gSS5nZXRDYWxsZWRWYWx1ZSgpOwot KyAgICBWYWx1ZSAqQ2FsbGVlID0gSS5nZXRDYWxsZWRPcGVyYW5kKCk7Ci0gICAgIEdCRV9BU1NF UlQoY3R4LmdldEZ1bmN0aW9uKCkuZ2V0UHJvZmlsZSgpID09IGlyOjpQUk9GSUxFX09DTCk7Ci0t ICAgIEdCRV9BU1NFUlQoaXNhPElubGluZUFzbT4oSS5nZXRDYWxsZWRWYWx1ZSgpKSA9PSBmYWxz ZSk7Ci0rICAgIEdCRV9BU1NFUlQoaXNhPElubGluZUFzbT4oSS5nZXRDYWxsZWRPcGVyYW5kKCkp ID09IGZhbHNlKTsKLSAgICAgaWYoSS5nZXROdW1BcmdPcGVyYW5kcygpKSBHQkVfQVNTRVJUKEku aGFzU3RydWN0UmV0QXR0cigpID09IGZhbHNlKTsKLQotICAgICAvLyBXZSBvbmx5IHN1cHBvcnQg YSBzbWFsbCBudW1iZXIgb2YgaW50cmluc2ljcyByaWdodCBub3cKLUBAIC0zODcwLDcgKzM4NzAs NyBAQAotICAgICAgIH0KLSAgICAgfQotICAgICAvLyBHZXQgdGhlIG5hbWUgb2YgdGhlIGNhbGxl ZCBmdW5jdGlvbiBhbmQgaGFuZGxlIGl0Ci0tICAgIGNvbnN0IHN0ZDo6c3RyaW5nIGZuTmFtZSA9 IENhbGxlZS0+c3RyaXBQb2ludGVyQ2FzdHMoKS0+Z2V0TmFtZSgpOwotKyAgICBjb25zdCBzdGQ6 OnN0cmluZyBmbk5hbWUgPSBDYWxsZWUtPnN0cmlwUG9pbnRlckNhc3RzKCktPmdldE5hbWUoKS5z dHIoKTsKLSAgICAgYXV0byBnZW5JbnRyaW5zaWNJRCA9IGludHJpbnNpY01hcC5maW5kKGZuTmFt ZSk7Ci0gICAgIHN3aXRjaCAoZ2VuSW50cmluc2ljSUQpIHsKLSAgICAgICBjYXNlIEdFTl9PQ0xf R0VUX0dST1VQX0lEMDoKLUBAIC00MTY2LDcgKzQxNjYsNyBAQAotICAgICB9OwotICAgfQotCi0t ICB2b2lkIEdlbldyaXRlcjo6ZW1pdFJvdW5kaW5nQ2FsbEluc3QoQ2FsbEluc3QgJkksIENhbGxT aXRlICZDUywgaXI6Ok9wY29kZSBvcGNvZGUpIHsKLSsgIHZvaWQgR2VuV3JpdGVyOjplbWl0Um91 bmRpbmdDYWxsSW5zdChDYWxsSW5zdCAmSSwgaXI6Ok9wY29kZSBvcGNvZGUpIHsKLSAgICAgaWYg KEkuZ2V0VHlwZSgpLT5pc0hhbGZUeSgpKSB7Ci0gICAgICAgY29uc3QgaXI6OlJlZ2lzdGVyIHNy YyA9IHRoaXMtPmdldFJlZ2lzdGVyKEkuZ2V0T3BlcmFuZCgwKSk7Ci0gICAgICAgY29uc3QgaXI6 OlJlZ2lzdGVyIHNyY0Zsb2F0ID0gY3R4LnJlZyhpcjo6RkFNSUxZX0RXT1JEKTsKLUBAIC00MTc3 LDE0ICs0MTc3LDE0IEBACi0gICAgICAgY3R4LkYzMlRPMTYoaXI6OlRZUEVfVTE2LCBpcjo6VFlQ RV9GTE9BVCwgZHN0LCBkc3RGbG9hdCk7Ci0gICAgIH0gZWxzZSB7Ci0gICAgICAgR0JFX0FTU0VS VChJLmdldFR5cGUoKS0+aXNGbG9hdFR5KCkpOwotLSAgICAgIHRoaXMtPmVtaXRVbmFyeUNhbGxJ bnN0KEksQ1Msb3Bjb2RlKTsKLSsgICAgICB0aGlzLT5lbWl0VW5hcnlDYWxsSW5zdChJLG9wY29k ZSk7Ci0gICAgIH0KLSAgIH0KLQotLSAgdm9pZCBHZW5Xcml0ZXI6OmVtaXRVbmFyeUNhbGxJbnN0 KENhbGxJbnN0ICZJLCBDYWxsU2l0ZSAmQ1MsIGlyOjpPcGNvZGUgb3Bjb2RlLCBpcjo6VHlwZSB0 eXBlKSB7Ci0tICAgIENhbGxTaXRlOjphcmdfaXRlcmF0b3IgQUkgPSBDUy5hcmdfYmVnaW4oKTsK LSsgIHZvaWQgR2VuV3JpdGVyOjplbWl0VW5hcnlDYWxsSW5zdChDYWxsSW5zdCAmSSwgaXI6Ok9w Y29kZSBvcGNvZGUsIGlyOjpUeXBlIHR5cGUpIHsKLSsgICAgVXNlcjo6b3BfaXRlcmF0b3IgQUkg PSBJLmFyZ19iZWdpbigpOwotICNpZiBHQkVfREVCVUcKLS0gICAgQ2FsbFNpdGU6OmFyZ19pdGVy YXRvciBBRSA9IENTLmFyZ19lbmQoKTsKLSsgICAgVXNlcjo6b3BfaXRlcmF0b3IgQUUgPSBJLmFy Z19lbmQoKTsKLSAjZW5kaWYgLyogR0JFX0RFQlVHICovCi0gICAgIEdCRV9BU1NFUlQoQUkgIT0g QUUpOwotICAgICBjb25zdCBpcjo6UmVnaXN0ZXIgc3JjID0gdGhpcy0+Z2V0UmVnaXN0ZXIoKkFJ KTsKLUBAIC00MjkzLDkgKzQyOTMsOSBAQAotICAgICB0aGlzLT5lbWl0QXRvbWljSW5zdEhlbHBl cihvcGNvZGUsIHR5cGUsIGRzdCwgbGx2bVB0ciwgcGF5bG9hZFR1cGxlKTsKLSAgIH0KLQotLSAg dm9pZCBHZW5Xcml0ZXI6OmVtaXRBdG9taWNJbnN0KENhbGxJbnN0ICZJLCBDYWxsU2l0ZSAmQ1Ms IGlyOjpBdG9taWNPcHMgb3Bjb2RlKSB7Ci0tICAgIENhbGxTaXRlOjphcmdfaXRlcmF0b3IgQUkg PSBDUy5hcmdfYmVnaW4oKTsKLS0gICAgQ2FsbFNpdGU6OmFyZ19pdGVyYXRvciBBRSA9IENTLmFy Z19lbmQoKTsKLSsgIHZvaWQgR2VuV3JpdGVyOjplbWl0QXRvbWljSW5zdChDYWxsSW5zdCAmSSwg aXI6OkF0b21pY09wcyBvcGNvZGUpIHsKLSsgICAgVXNlcjo6b3BfaXRlcmF0b3IgQUkgPSBJLmFy Z19iZWdpbigpOwotKyAgICBVc2VyOjpvcF9pdGVyYXRvciBBRSA9IEkuYXJnX2VuZCgpOwotICAg ICBHQkVfQVNTRVJUKEFJICE9IEFFKTsKLSAgICAgVmFsdWUgKmxsdm1QdHIgPSAqQUk7Ci0gICAg IGlyOjpBZGRyZXNzU3BhY2UgYWRkclNwYWNlID0gYWRkcmVzc1NwYWNlTExWTVRvR2VuKGxsdm1Q dHItPmdldFR5cGUoKS0+Z2V0UG9pbnRlckFkZHJlc3NTcGFjZSgpKTsKLUBAIC00MzQ4LDcgKzQz NDgsNyBAQAotICAgICB9Ci0gICB9Ci0KLS0gIHZvaWQgR2VuV3JpdGVyOjplbWl0V29ya0dyb3Vw SW5zdChDYWxsSW5zdCAmSSwgQ2FsbFNpdGUgJkNTLCBpcjo6V29ya0dyb3VwT3BzIG9wY29kZSkg ewotKyAgdm9pZCBHZW5Xcml0ZXI6OmVtaXRXb3JrR3JvdXBJbnN0KENhbGxJbnN0ICZJLCBpcjo6 V29ya0dyb3VwT3BzIG9wY29kZSkgewotICAgICBpcjo6RnVuY3Rpb24gJmYgPSBjdHguZ2V0RnVu Y3Rpb24oKTsKLQotICAgICBpZiAoZi5nZXR3Z0Jyb2FkY2FzdFNMTSgpIDwgMCAmJiBvcGNvZGUg PT0gaXI6OldPUktHUk9VUF9PUF9CUk9BRENBU1QpIHsKLUBAIC00Mzc4LDggKzQzNzgsOCBAQAot ICAgICAgIEdCRV9BU1NFUlQoZi5nZXR0aWRNYXBTTE0oKSA+PSAwKTsKLSAgICAgfQotCi0tICAg IENhbGxTaXRlOjphcmdfaXRlcmF0b3IgQUkgPSBDUy5hcmdfYmVnaW4oKTsKLS0gICAgQ2FsbFNp dGU6OmFyZ19pdGVyYXRvciBBRSA9IENTLmFyZ19lbmQoKTsKLSsgICAgVXNlcjo6b3BfaXRlcmF0 b3IgQUkgPSBJLmFyZ19iZWdpbigpOwotKyAgICBVc2VyOjpvcF9pdGVyYXRvciBBRSA9IEkuYXJn X2VuZCgpOwotICAgICBHQkVfQVNTRVJUKEFJICE9IEFFKTsKLQotICAgICBpZiAob3Bjb2RlID09 IGlyOjpXT1JLR1JPVVBfT1BfQUxMIHx8IG9wY29kZSA9PSBpcjo6V09SS0dST1VQX09QX0FOWSkg ewotQEAgLTQzOTEsMTQgKzQzOTEsMTQgQEAKLSAgICAgICBjb25zdCBpcjo6VHVwbGUgc3JjVHVw bGUgPSBjdHguYXJyYXlUdXBsZSgmc3JjWzBdLCAzKTsKLSAgICAgICBjdHguV09SS0dST1VQKG9w Y29kZSwgKHVpbnQzMl90KWYuZ2V0dGlkTWFwU0xNKCksIGdldFJlZ2lzdGVyKCZJKSwgc3JjVHVw bGUsIDMsIGlyOjpUWVBFX1MzMik7Ci0gICAgIH0gZWxzZSBpZiAob3Bjb2RlID09IGlyOjpXT1JL R1JPVVBfT1BfQlJPQURDQVNUKSB7Ci0tICAgICAgaW50IGFyZ051bSA9IENTLmFyZ19zaXplKCk7 Ci0rICAgICAgaW50IGFyZ051bSA9IEkuYXJnX3NpemUoKTsKLSAgICAgICBzdGQ6OnZlY3Rvcjxp cjo6UmVnaXN0ZXI+IHNyYyhhcmdOdW0pOwotICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgYXJn TnVtOyBpKyspIHsKLSAgICAgICAgIHNyY1tpXSA9IHRoaXMtPmdldFJlZ2lzdGVyKCooQUkrKykp OwotICAgICAgIH0KLSAgICAgICBjb25zdCBpcjo6VHVwbGUgc3JjVHVwbGUgPSBjdHguYXJyYXlU dXBsZSgmc3JjWzBdLCBhcmdOdW0pOwotICAgICAgIGN0eC5XT1JLR1JPVVAoaXI6OldPUktHUk9V UF9PUF9CUk9BRENBU1QsICh1aW50MzJfdClmLmdldHdnQnJvYWRjYXN0U0xNKCksIGdldFJlZ2lz dGVyKCZJKSwgc3JjVHVwbGUsIGFyZ051bSwKLS0gICAgICAgICAgZ2V0VHlwZShjdHgsICgqQ1Mu YXJnX2JlZ2luKCkpLT5nZXRUeXBlKCkpKTsKLSsgICAgICAgICAgZ2V0VHlwZShjdHgsICgqSS5h cmdfYmVnaW4oKSktPmdldFR5cGUoKSkpOwotICAgICB9IGVsc2UgewotICAgICAgIENvbnN0YW50 SW50ICpzaWduID0gZHluX2Nhc3Q8Q29uc3RhbnRJbnQ+KEFJKTsKLSAgICAgICBHQkVfQVNTRVJU KHNpZ24pOwotQEAgLTQ0MjMsOSArNDQyMyw5IEBACi0gICAgIEdCRV9BU1NFUlQoQUkgPT0gQUUp OwotICAgfQotCi0tICB2b2lkIEdlbldyaXRlcjo6ZW1pdFN1Ykdyb3VwSW5zdChDYWxsSW5zdCAm SSwgQ2FsbFNpdGUgJkNTLCBpcjo6V29ya0dyb3VwT3BzIG9wY29kZSkgewotLSAgICBDYWxsU2l0 ZTo6YXJnX2l0ZXJhdG9yIEFJID0gQ1MuYXJnX2JlZ2luKCk7Ci0tICAgIENhbGxTaXRlOjphcmdf aXRlcmF0b3IgQUUgPSBDUy5hcmdfZW5kKCk7Ci0rICB2b2lkIEdlbldyaXRlcjo6ZW1pdFN1Ykdy b3VwSW5zdChDYWxsSW5zdCAmSSwgaXI6OldvcmtHcm91cE9wcyBvcGNvZGUpIHsKLSsgICAgVXNl cjo6b3BfaXRlcmF0b3IgQUkgPSBJLmFyZ19iZWdpbigpOwotKyAgICBVc2VyOjpvcF9pdGVyYXRv ciBBRSA9IEkuYXJnX2VuZCgpOwotICAgICBHQkVfQVNTRVJUKEFJICE9IEFFKTsKLQotICAgICBp ZiAob3Bjb2RlID09IGlyOjpXT1JLR1JPVVBfT1BfQUxMIHx8IG9wY29kZSA9PSBpcjo6V09SS0dS T1VQX09QX0FOWSkgewotQEAgLTQ0MzUsNyArNDQzNSw3IEBACi0gICAgICAgY29uc3QgaXI6OlR1 cGxlIHNyY1R1cGxlID0gY3R4LmFycmF5VHVwbGUoJnNyY1swXSwgMSk7Ci0gICAgICAgY3R4LlNV QkdST1VQKG9wY29kZSwgZ2V0UmVnaXN0ZXIoJkkpLCBzcmNUdXBsZSwgMSwgaXI6OlRZUEVfUzMy KTsKLSAgICAgfSBlbHNlIGlmIChvcGNvZGUgPT0gaXI6OldPUktHUk9VUF9PUF9CUk9BRENBU1Qp IHsKLS0gICAgICBpbnQgYXJnTnVtID0gQ1MuYXJnX3NpemUoKTsKLSsgICAgICBpbnQgYXJnTnVt ID0gSS5hcmdfc2l6ZSgpOwotICAgICAgIEdCRV9BU1NFUlQoYXJnTnVtID09IDIpOwotICAgICAg IHN0ZDo6dmVjdG9yPGlyOjpSZWdpc3Rlcj4gc3JjKGFyZ051bSk7Ci0gICAgICAgZm9yIChpbnQg aSA9IDA7IGkgPCBhcmdOdW07IGkrKykgewotQEAgLTQ0NDMsNyArNDQ0Myw3IEBACi0gICAgICAg fQotICAgICAgIGNvbnN0IGlyOjpUdXBsZSBzcmNUdXBsZSA9IGN0eC5hcnJheVR1cGxlKCZzcmNb MF0sIGFyZ051bSk7Ci0gICAgICAgY3R4LlNVQkdST1VQKGlyOjpXT1JLR1JPVVBfT1BfQlJPQURD QVNULCBnZXRSZWdpc3RlcigmSSksIHNyY1R1cGxlLCBhcmdOdW0sCi0tICAgICAgICAgIGdldFR5 cGUoY3R4LCAoKkNTLmFyZ19iZWdpbigpKS0+Z2V0VHlwZSgpKSk7Ci0rICAgICAgICAgIGdldFR5 cGUoY3R4LCAoKkkuYXJnX2JlZ2luKCkpLT5nZXRUeXBlKCkpKTsKLSAgICAgfSBlbHNlIHsKLSAg ICAgICBDb25zdGFudEludCAqc2lnbiA9IGR5bl9jYXN0PENvbnN0YW50SW50PihBSSk7Ci0gICAg ICAgR0JFX0FTU0VSVChzaWduKTsKLUBAIC00NDY2LDkgKzQ0NjYsOSBAQAotICAgICBHQkVfQVNT RVJUKEFJID09IEFFKTsKLSAgIH0KLQotLSAgdm9pZCBHZW5Xcml0ZXI6OmVtaXRCbG9ja1JlYWRX cml0ZU1lbUluc3QoQ2FsbEluc3QgJkksIENhbGxTaXRlICZDUywgYm9vbCBpc1dyaXRlLCB1aW50 OF90IHZlY19zaXplLCBpcjo6VHlwZSB0eXBlKSB7Ci0tICAgIENhbGxTaXRlOjphcmdfaXRlcmF0 b3IgQUkgPSBDUy5hcmdfYmVnaW4oKTsKLS0gICAgQ2FsbFNpdGU6OmFyZ19pdGVyYXRvciBBRSA9 IENTLmFyZ19lbmQoKTsKLSsgIHZvaWQgR2VuV3JpdGVyOjplbWl0QmxvY2tSZWFkV3JpdGVNZW1J bnN0KENhbGxJbnN0ICZJLCBib29sIGlzV3JpdGUsIHVpbnQ4X3QgdmVjX3NpemUsIGlyOjpUeXBl IHR5cGUpIHsKLSsgICAgVXNlcjo6b3BfaXRlcmF0b3IgQUkgPSBJLmFyZ19iZWdpbigpOwotKyAg ICBVc2VyOjpvcF9pdGVyYXRvciBBRSA9IEkuYXJnX2VuZCgpOwotICAgICBHQkVfQVNTRVJUKEFJ ICE9IEFFKTsKLQotICAgICBWYWx1ZSAqbGx2bVB0ciA9ICooQUkrKyk7Ci1AQCAtNDUyMiw5ICs0 NTIyLDkgQEAKLSAgICAgR0JFX0FTU0VSVChBSSA9PSBBRSk7Ci0gICB9Ci0KLS0gIHZvaWQgR2Vu V3JpdGVyOjplbWl0QmxvY2tSZWFkV3JpdGVJbWFnZUluc3QoQ2FsbEluc3QgJkksIENhbGxTaXRl ICZDUywgYm9vbCBpc1dyaXRlLCB1aW50OF90IHZlY19zaXplLCBpcjo6VHlwZSB0eXBlKSB7Ci0t ICAgIENhbGxTaXRlOjphcmdfaXRlcmF0b3IgQUkgPSBDUy5hcmdfYmVnaW4oKTsKLS0gICAgQ2Fs bFNpdGU6OmFyZ19pdGVyYXRvciBBRSA9IENTLmFyZ19lbmQoKTsKLSsgIHZvaWQgR2VuV3JpdGVy OjplbWl0QmxvY2tSZWFkV3JpdGVJbWFnZUluc3QoQ2FsbEluc3QgJkksIGJvb2wgaXNXcml0ZSwg dWludDhfdCB2ZWNfc2l6ZSwgaXI6OlR5cGUgdHlwZSkgewotKyAgICBVc2VyOjpvcF9pdGVyYXRv ciBBSSA9IEkuYXJnX2JlZ2luKCk7Ci0rICAgIFVzZXI6Om9wX2l0ZXJhdG9yIEFFID0gSS5hcmdf ZW5kKCk7Ci0gICAgIEdCRV9BU1NFUlQoQUkgIT0gQUUpOwotCi0gICAgIGNvbnN0IHVpbnQ4X3Qg aW1hZ2VJRCA9IGdldEltYWdlSUQoSSk7Ci1AQCAtNDU1Nyw3ICs0NTU3LDcgQEAKLQotICAgLyog YXBwZW5kIGEgbmV3IHNhbXBsZXIuIHNob3VsZCBiZSBjYWxsZWQgYmVmb3JlIGFueSByZWZlcmVu Y2UgdG8KLSAgICAqIGEgc2FtcGxlcl90IHZhbHVlLiAqLwotLSAgdWludDhfdCBHZW5Xcml0ZXI6 OmFwcGVuZFNhbXBsZXIoQ2FsbFNpdGU6OmFyZ19pdGVyYXRvciBBSSkgewotKyAgdWludDhfdCBH ZW5Xcml0ZXI6OmFwcGVuZFNhbXBsZXIoVXNlcjo6b3BfaXRlcmF0b3IgQUkpIHsKLSAjaWYgTExW TV9WRVJTSU9OX01BSk9SICogMTAgKyBMTFZNX1ZFUlNJT05fTUlOT1IgPj0gNDAKLSAgICAgQ2Fs bEluc3QgKlRDID0gZHluX2Nhc3Q8Q2FsbEluc3Q+KCpBSSk7Ci0gICAgIENvbnN0YW50ICpDUFYg PSBUQyA/IGR5bl9jYXN0PENvbnN0YW50PihUQy0+Z2V0T3BlcmFuZCgwKSkgOiBOVUxMOwotQEAg LTQ1OTUsMTAgKzQ1OTUsOSBAQAotICAgICAgICAgY29uc3QgaXI6OkZ1bmN0aW9uICZmbiA9IGN0 eC5nZXRGdW5jdGlvbigpOwotCi0gICAgICAgICAvLyBHZXQgdGhlIGZ1bmN0aW9uIGFyZ3VtZW50 cwotLSAgICAgICAgQ2FsbFNpdGUgQ1MoJkkpOwotLSAgICAgICAgQ2FsbFNpdGU6OmFyZ19pdGVy YXRvciBBSSA9IENTLmFyZ19iZWdpbigpOwotKyAgICAgICAgVXNlcjo6b3BfaXRlcmF0b3IgQUkg PSBJLmFyZ19iZWdpbigpOwotICNpZiBHQkVfREVCVUcKLS0gICAgICAgIENhbGxTaXRlOjphcmdf aXRlcmF0b3IgQUUgPSBDUy5hcmdfZW5kKCk7Ci0rICAgICAgICBVc2VyOjpvcF9pdGVyYXRvciBB RSA9IEkuYXJnX2VuZCgpOwotICNlbmRpZiAvKiBHQkVfREVCVUcgKi8KLSAgICAgICAgIHN3aXRj aCAoRi0+Z2V0SW50cmluc2ljSUQoKSkgewotICAgICAgICAgICBjYXNlIEludHJpbnNpYzo6c3Rh Y2tzYXZlOgotQEAgLTQ3NjQsMTcgKzQ3NjMsMTcgQEAKLSAgICAgICAgICAgICBjdHguTUFEKHNy Y1R5cGUsIGRzdCwgc3JjMCwgc3JjMSwgc3JjMik7Ci0gICAgICAgICAgIH0KLSAgICAgICAgICAg YnJlYWs7Ci0tICAgICAgICAgIGNhc2UgSW50cmluc2ljOjpzcXJ0OiB0aGlzLT5lbWl0VW5hcnlD YWxsSW5zdChJLENTLGlyOjpPUF9TUVIpOyBicmVhazsKLS0gICAgICAgICAgY2FzZSBJbnRyaW5z aWM6OmNlaWw6IHRoaXMtPmVtaXRSb3VuZGluZ0NhbGxJbnN0KEksQ1MsaXI6Ok9QX1JORFUpOyBi cmVhazsKLS0gICAgICAgICAgY2FzZSBJbnRyaW5zaWM6OnRydW5jOiB0aGlzLT5lbWl0Um91bmRp bmdDYWxsSW5zdChJLENTLGlyOjpPUF9STkRaKTsgYnJlYWs7Ci0tICAgICAgICAgIGNhc2UgSW50 cmluc2ljOjpyaW50OiB0aGlzLT5lbWl0Um91bmRpbmdDYWxsSW5zdChJLENTLGlyOjpPUF9STkRF KTsgYnJlYWs7Ci0tICAgICAgICAgIGNhc2UgSW50cmluc2ljOjpmbG9vcjogdGhpcy0+ZW1pdFJv dW5kaW5nQ2FsbEluc3QoSSxDUyxpcjo6T1BfUk5ERCk7IGJyZWFrOwotLSAgICAgICAgICBjYXNl IEludHJpbnNpYzo6c2luOiB0aGlzLT5lbWl0VW5hcnlDYWxsSW5zdChJLENTLGlyOjpPUF9TSU4p OyBicmVhazsKLS0gICAgICAgICAgY2FzZSBJbnRyaW5zaWM6OmNvczogdGhpcy0+ZW1pdFVuYXJ5 Q2FsbEluc3QoSSxDUyxpcjo6T1BfQ09TKTsgYnJlYWs7Ci0tICAgICAgICAgIGNhc2UgSW50cmlu c2ljOjpsb2cyOiB0aGlzLT5lbWl0VW5hcnlDYWxsSW5zdChJLENTLGlyOjpPUF9MT0cpOyBicmVh azsKLS0gICAgICAgICAgY2FzZSBJbnRyaW5zaWM6OmV4cDI6IHRoaXMtPmVtaXRVbmFyeUNhbGxJ bnN0KEksQ1MsaXI6Ok9QX0VYUCk7IGJyZWFrOwotKyAgICAgICAgICBjYXNlIEludHJpbnNpYzo6 c3FydDogdGhpcy0+ZW1pdFVuYXJ5Q2FsbEluc3QoSSxpcjo6T1BfU1FSKTsgYnJlYWs7Ci0rICAg ICAgICAgIGNhc2UgSW50cmluc2ljOjpjZWlsOiB0aGlzLT5lbWl0Um91bmRpbmdDYWxsSW5zdChJ LGlyOjpPUF9STkRVKTsgYnJlYWs7Ci0rICAgICAgICAgIGNhc2UgSW50cmluc2ljOjp0cnVuYzog dGhpcy0+ZW1pdFJvdW5kaW5nQ2FsbEluc3QoSSxpcjo6T1BfUk5EWik7IGJyZWFrOwotKyAgICAg ICAgICBjYXNlIEludHJpbnNpYzo6cmludDogdGhpcy0+ZW1pdFJvdW5kaW5nQ2FsbEluc3QoSSxp cjo6T1BfUk5ERSk7IGJyZWFrOwotKyAgICAgICAgICBjYXNlIEludHJpbnNpYzo6Zmxvb3I6IHRo aXMtPmVtaXRSb3VuZGluZ0NhbGxJbnN0KEksaXI6Ok9QX1JOREQpOyBicmVhazsKLSsgICAgICAg ICAgY2FzZSBJbnRyaW5zaWM6OnNpbjogdGhpcy0+ZW1pdFVuYXJ5Q2FsbEluc3QoSSxpcjo6T1Bf U0lOKTsgYnJlYWs7Ci0rICAgICAgICAgIGNhc2UgSW50cmluc2ljOjpjb3M6IHRoaXMtPmVtaXRV bmFyeUNhbGxJbnN0KEksaXI6Ok9QX0NPUyk7IGJyZWFrOwotKyAgICAgICAgICBjYXNlIEludHJp bnNpYzo6bG9nMjogdGhpcy0+ZW1pdFVuYXJ5Q2FsbEluc3QoSSxpcjo6T1BfTE9HKTsgYnJlYWs7 Ci0rICAgICAgICAgIGNhc2UgSW50cmluc2ljOjpleHAyOiB0aGlzLT5lbWl0VW5hcnlDYWxsSW5z dChJLGlyOjpPUF9FWFApOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBJbnRyaW5zaWM6OmJzd2Fw OgotLSAgICAgICAgICAgIHRoaXMtPmVtaXRVbmFyeUNhbGxJbnN0KEksQ1MsaXI6Ok9QX0JTV0FQ LCBnZXRVbnNpZ25lZFR5cGUoY3R4LCBJLmdldFR5cGUoKSkpOyBicmVhazsKLSsgICAgICAgICAg ICB0aGlzLT5lbWl0VW5hcnlDYWxsSW5zdChJLGlyOjpPUF9CU1dBUCwgZ2V0VW5zaWduZWRUeXBl KGN0eCwgSS5nZXRUeXBlKCkpKTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgSW50cmluc2ljOjpw b3c6Ci0gICAgICAgICAgIHsKLSAgICAgICAgICAgICBjb25zdCBpcjo6UmVnaXN0ZXIgc3JjMCA9 IHRoaXMtPmdldFJlZ2lzdGVyKCpBSSk7ICsrQUk7Ci1AQCAtNDc5NCwyMSArNDc5MywyMCBAQAot ICAgICAgICAgfQotICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAvLyBHZXQgdGhlIG5hbWUgb2Yg dGhlIGNhbGxlZCBmdW5jdGlvbiBhbmQgaGFuZGxlIGl0Ci0tICAgICAgICBWYWx1ZSAqQ2FsbGVl ID0gSS5nZXRDYWxsZWRWYWx1ZSgpOwotLSAgICAgICAgY29uc3Qgc3RkOjpzdHJpbmcgZm5OYW1l ID0gQ2FsbGVlLT5zdHJpcFBvaW50ZXJDYXN0cygpLT5nZXROYW1lKCk7Ci0rICAgICAgICBWYWx1 ZSAqQ2FsbGVlID0gSS5nZXRDYWxsZWRPcGVyYW5kKCk7Ci0rICAgICAgICBjb25zdCBzdGQ6OnN0 cmluZyBmbk5hbWUgPSBDYWxsZWUtPnN0cmlwUG9pbnRlckNhc3RzKCktPmdldE5hbWUoKS5zdHIo KTsKLSAgICAgICAgIGF1dG8gZ2VuSW50cmluc2ljSUQgPSBpbnRyaW5zaWNNYXAuZmluZChmbk5h bWUpOwotCi0gICAgICAgICAvLyBHZXQgdGhlIGZ1bmN0aW9uIGFyZ3VtZW50cwotLSAgICAgICAg Q2FsbFNpdGUgQ1MoJkkpOwotLSAgICAgICAgQ2FsbFNpdGU6OmFyZ19pdGVyYXRvciBBSSA9IENT LmFyZ19iZWdpbigpOwotKyAgICAgICAgVXNlcjo6b3BfaXRlcmF0b3IgQUkgPSBJLmFyZ19iZWdp bigpOwotICNpZiBHQkVfREVCVUcKLS0gICAgICAgIENhbGxTaXRlOjphcmdfaXRlcmF0b3IgQUUg PSBDUy5hcmdfZW5kKCk7Ci0rICAgICAgICBVc2VyOjpvcF9pdGVyYXRvciBBRSA9IEkuYXJnX2Vu ZCgpOwotICNlbmRpZiAvKiBHQkVfREVCVUcgKi8KLQotICAgICAgICAgc3dpdGNoIChnZW5JbnRy aW5zaWNJRCkgewotLSAgICAgICAgICBjYXNlIEdFTl9PQ0xfRkJIOiB0aGlzLT5lbWl0VW5hcnlD YWxsSW5zdChJLENTLGlyOjpPUF9GQkgsIGlyOjpUWVBFX1UzMik7IGJyZWFrOwotLSAgICAgICAg ICBjYXNlIEdFTl9PQ0xfRkJMOiB0aGlzLT5lbWl0VW5hcnlDYWxsSW5zdChJLENTLGlyOjpPUF9G QkwsIGlyOjpUWVBFX1UzMik7IGJyZWFrOwotLSAgICAgICAgICBjYXNlIEdFTl9PQ0xfQ0JJVDog dGhpcy0+ZW1pdFVuYXJ5Q2FsbEluc3QoSSxDUyxpcjo6T1BfQ0JJVCwgZ2V0VW5zaWduZWRUeXBl KGN0eCwgKCpBSSktPmdldFR5cGUoKSkpOyBicmVhazsKLSsgICAgICAgICAgY2FzZSBHRU5fT0NM X0ZCSDogdGhpcy0+ZW1pdFVuYXJ5Q2FsbEluc3QoSSxpcjo6T1BfRkJILCBpcjo6VFlQRV9VMzIp OyBicmVhazsKLSsgICAgICAgICAgY2FzZSBHRU5fT0NMX0ZCTDogdGhpcy0+ZW1pdFVuYXJ5Q2Fs bEluc3QoSSxpcjo6T1BfRkJMLCBpcjo6VFlQRV9VMzIpOyBicmVhazsKLSsgICAgICAgICAgY2Fz ZSBHRU5fT0NMX0NCSVQ6IHRoaXMtPmVtaXRVbmFyeUNhbGxJbnN0KEksaXI6Ok9QX0NCSVQsIGdl dFVuc2lnbmVkVHlwZShjdHgsICgqQUkpLT5nZXRUeXBlKCkpKTsgYnJlYWs7Ci0gICAgICAgICAg IGNhc2UgR0VOX09DTF9BQlM6Ci0gICAgICAgICAgIHsKLSAgICAgICAgICAgICBjb25zdCBpcjo6 UmVnaXN0ZXIgc3JjID0gdGhpcy0+Z2V0UmVnaXN0ZXIoKkFJKTsKLUBAIC00OTE1LDggKzQ5MTMs OCBAQAotICAgICAgICAgICAgIGN0eC5SRUdJT04oZHN0LCBzcmMsIHguZ2V0SW50ZWdlclZhbHVl KCkpOwotICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICB9Ci0tICAgICAgICAgIGNhc2Ug R0VOX09DTF9SU1E6IHRoaXMtPmVtaXRVbmFyeUNhbGxJbnN0KEksQ1MsaXI6Ok9QX1JTUSk7IGJy ZWFrOwotLSAgICAgICAgICBjYXNlIEdFTl9PQ0xfUkNQOiB0aGlzLT5lbWl0VW5hcnlDYWxsSW5z dChJLENTLGlyOjpPUF9SQ1ApOyBicmVhazsKLSsgICAgICAgICAgY2FzZSBHRU5fT0NMX1JTUTog dGhpcy0+ZW1pdFVuYXJ5Q2FsbEluc3QoSSxpcjo6T1BfUlNRKTsgYnJlYWs7Ci0rICAgICAgICAg IGNhc2UgR0VOX09DTF9SQ1A6IHRoaXMtPmVtaXRVbmFyeUNhbGxJbnN0KEksaXI6Ok9QX1JDUCk7 IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfRk9SQ0VfU0lNRDg6IGN0eC5zZXRTaW1k V2lkdGgoOCk7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfRk9SQ0VfU0lNRDE2OiBj dHguc2V0U2ltZFdpZHRoKDE2KTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9MQkFS UklFUjogY3R4LlNZTkMoaXI6OnN5bmNMb2NhbEJhcnJpZXIpOyBicmVhazsKLUBAIC00OTQ3LDMx ICs0OTQ1LDMxIEBACi0gICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgIH0KLSAgICAgICAg ICAgY2FzZSBHRU5fT0NMX0FUT01JQ19BREQwOgotLSAgICAgICAgICBjYXNlIEdFTl9PQ0xfQVRP TUlDX0FERDE6IHRoaXMtPmVtaXRBdG9taWNJbnN0KEksQ1MsaXI6OkFUT01JQ19PUF9BREQpOyBi cmVhazsKLSsgICAgICAgICAgY2FzZSBHRU5fT0NMX0FUT01JQ19BREQxOiB0aGlzLT5lbWl0QXRv bWljSW5zdChJLGlyOjpBVE9NSUNfT1BfQUREKTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VO X09DTF9BVE9NSUNfU1VCMDoKLS0gICAgICAgICAgY2FzZSBHRU5fT0NMX0FUT01JQ19TVUIxOiB0 aGlzLT5lbWl0QXRvbWljSW5zdChJLENTLGlyOjpBVE9NSUNfT1BfU1VCKTsgYnJlYWs7Ci0rICAg ICAgICAgIGNhc2UgR0VOX09DTF9BVE9NSUNfU1VCMTogdGhpcy0+ZW1pdEF0b21pY0luc3QoSSxp cjo6QVRPTUlDX09QX1NVQik7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfQVRPTUlD X0FORDA6Ci0tICAgICAgICAgIGNhc2UgR0VOX09DTF9BVE9NSUNfQU5EMTogdGhpcy0+ZW1pdEF0 b21pY0luc3QoSSxDUyxpcjo6QVRPTUlDX09QX0FORCk7IGJyZWFrOwotKyAgICAgICAgICBjYXNl IEdFTl9PQ0xfQVRPTUlDX0FORDE6IHRoaXMtPmVtaXRBdG9taWNJbnN0KEksaXI6OkFUT01JQ19P UF9BTkQpOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX0FUT01JQ19PUjA6Ci0tICAg ICAgICAgIGNhc2UgR0VOX09DTF9BVE9NSUNfT1IxOiB0aGlzLT5lbWl0QXRvbWljSW5zdChJLENT LGlyOjpBVE9NSUNfT1BfT1IpOyBicmVhazsKLSsgICAgICAgICAgY2FzZSBHRU5fT0NMX0FUT01J Q19PUjE6IHRoaXMtPmVtaXRBdG9taWNJbnN0KEksaXI6OkFUT01JQ19PUF9PUik7IGJyZWFrOwot ICAgICAgICAgICBjYXNlIEdFTl9PQ0xfQVRPTUlDX1hPUjA6Ci0tICAgICAgICAgIGNhc2UgR0VO X09DTF9BVE9NSUNfWE9SMTogdGhpcy0+ZW1pdEF0b21pY0luc3QoSSxDUyxpcjo6QVRPTUlDX09Q X1hPUik7IGJyZWFrOwotKyAgICAgICAgICBjYXNlIEdFTl9PQ0xfQVRPTUlDX1hPUjE6IHRoaXMt PmVtaXRBdG9taWNJbnN0KEksaXI6OkFUT01JQ19PUF9YT1IpOyBicmVhazsKLSAgICAgICAgICAg Y2FzZSBHRU5fT0NMX0FUT01JQ19YQ0hHMDoKLS0gICAgICAgICAgY2FzZSBHRU5fT0NMX0FUT01J Q19YQ0hHMTogdGhpcy0+ZW1pdEF0b21pY0luc3QoSSxDUyxpcjo6QVRPTUlDX09QX1hDSEcpOyBi cmVhazsKLSsgICAgICAgICAgY2FzZSBHRU5fT0NMX0FUT01JQ19YQ0hHMTogdGhpcy0+ZW1pdEF0 b21pY0luc3QoSSxpcjo6QVRPTUlDX09QX1hDSEcpOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBH RU5fT0NMX0FUT01JQ19JTkMwOgotLSAgICAgICAgICBjYXNlIEdFTl9PQ0xfQVRPTUlDX0lOQzE6 IHRoaXMtPmVtaXRBdG9taWNJbnN0KEksQ1MsaXI6OkFUT01JQ19PUF9JTkMpOyBicmVhazsKLSsg ICAgICAgICAgY2FzZSBHRU5fT0NMX0FUT01JQ19JTkMxOiB0aGlzLT5lbWl0QXRvbWljSW5zdChJ LGlyOjpBVE9NSUNfT1BfSU5DKTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9BVE9N SUNfREVDMDoKLS0gICAgICAgICAgY2FzZSBHRU5fT0NMX0FUT01JQ19ERUMxOiB0aGlzLT5lbWl0 QXRvbWljSW5zdChJLENTLGlyOjpBVE9NSUNfT1BfREVDKTsgYnJlYWs7Ci0rICAgICAgICAgIGNh c2UgR0VOX09DTF9BVE9NSUNfREVDMTogdGhpcy0+ZW1pdEF0b21pY0luc3QoSSxpcjo6QVRPTUlD X09QX0RFQyk7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfQVRPTUlDX1VNSU4wOgot LSAgICAgICAgICBjYXNlIEdFTl9PQ0xfQVRPTUlDX1VNSU4xOiB0aGlzLT5lbWl0QXRvbWljSW5z dChJLENTLGlyOjpBVE9NSUNfT1BfVU1JTik7IGJyZWFrOwotKyAgICAgICAgICBjYXNlIEdFTl9P Q0xfQVRPTUlDX1VNSU4xOiB0aGlzLT5lbWl0QXRvbWljSW5zdChJLGlyOjpBVE9NSUNfT1BfVU1J Tik7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfQVRPTUlDX1VNQVgwOgotLSAgICAg ICAgICBjYXNlIEdFTl9PQ0xfQVRPTUlDX1VNQVgxOiB0aGlzLT5lbWl0QXRvbWljSW5zdChJLENT LGlyOjpBVE9NSUNfT1BfVU1BWCk7IGJyZWFrOwotKyAgICAgICAgICBjYXNlIEdFTl9PQ0xfQVRP TUlDX1VNQVgxOiB0aGlzLT5lbWl0QXRvbWljSW5zdChJLGlyOjpBVE9NSUNfT1BfVU1BWCk7IGJy ZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfQVRPTUlDX0lNSU4wOgotLSAgICAgICAgICBj YXNlIEdFTl9PQ0xfQVRPTUlDX0lNSU4xOiB0aGlzLT5lbWl0QXRvbWljSW5zdChJLENTLGlyOjpB VE9NSUNfT1BfSU1JTik7IGJyZWFrOwotKyAgICAgICAgICBjYXNlIEdFTl9PQ0xfQVRPTUlDX0lN SU4xOiB0aGlzLT5lbWl0QXRvbWljSW5zdChJLGlyOjpBVE9NSUNfT1BfSU1JTik7IGJyZWFrOwot ICAgICAgICAgICBjYXNlIEdFTl9PQ0xfQVRPTUlDX0lNQVgwOgotLSAgICAgICAgICBjYXNlIEdF Tl9PQ0xfQVRPTUlDX0lNQVgxOiB0aGlzLT5lbWl0QXRvbWljSW5zdChJLENTLGlyOjpBVE9NSUNf T1BfSU1BWCk7IGJyZWFrOwotKyAgICAgICAgICBjYXNlIEdFTl9PQ0xfQVRPTUlDX0lNQVgxOiB0 aGlzLT5lbWl0QXRvbWljSW5zdChJLGlyOjpBVE9NSUNfT1BfSU1BWCk7IGJyZWFrOwotICAgICAg ICAgICBjYXNlIEdFTl9PQ0xfQVRPTUlDX0NNUFhDSEcwOgotLSAgICAgICAgICBjYXNlIEdFTl9P Q0xfQVRPTUlDX0NNUFhDSEcxOiB0aGlzLT5lbWl0QXRvbWljSW5zdChJLENTLGlyOjpBVE9NSUNf T1BfQ01QWENIRyk7IGJyZWFrOwotKyAgICAgICAgICBjYXNlIEdFTl9PQ0xfQVRPTUlDX0NNUFhD SEcxOiB0aGlzLT5lbWl0QXRvbWljSW5zdChJLGlyOjpBVE9NSUNfT1BfQ01QWENIRyk7IGJyZWFr OwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfR0VUX0lNQUdFX1dJRFRIOgotICAgICAgICAgICBj YXNlIEdFTl9PQ0xfR0VUX0lNQUdFX0hFSUdIVDoKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX0dF VF9JTUFHRV9ERVBUSDoKLUBAIC01NDI5LDQ4ICs1NDI3LDQ4IEBACi0gICAgICAgICAgICAgY3R4 LldBSVQoKTsKLSAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgfQotLSAgICAgICAgICBj YXNlIEdFTl9PQ0xfV09SS19HUk9VUF9BTEw6IHRoaXMtPmVtaXRXb3JrR3JvdXBJbnN0KEksIENT LCBpcjo6V09SS0dST1VQX09QX0FMTCk7IGJyZWFrOwotLSAgICAgICAgICBjYXNlIEdFTl9PQ0xf V09SS19HUk9VUF9BTlk6IHRoaXMtPmVtaXRXb3JrR3JvdXBJbnN0KEksIENTLCBpcjo6V09SS0dS T1VQX09QX0FOWSk7IGJyZWFrOwotKyAgICAgICAgICBjYXNlIEdFTl9PQ0xfV09SS19HUk9VUF9B TEw6IHRoaXMtPmVtaXRXb3JrR3JvdXBJbnN0KEksIGlyOjpXT1JLR1JPVVBfT1BfQUxMKTsgYnJl YWs7Ci0rICAgICAgICAgIGNhc2UgR0VOX09DTF9XT1JLX0dST1VQX0FOWTogdGhpcy0+ZW1pdFdv cmtHcm91cEluc3QoSSwgaXI6OldPUktHUk9VUF9PUF9BTlkpOyBicmVhazsKLSAgICAgICAgICAg Y2FzZSBHRU5fT0NMX1dPUktfR1JPVVBfQlJPQURDQVNUOgotLSAgICAgICAgICAgIHRoaXMtPmVt aXRXb3JrR3JvdXBJbnN0KEksIENTLCBpcjo6V09SS0dST1VQX09QX0JST0FEQ0FTVCk7IGJyZWFr OwotKyAgICAgICAgICAgIHRoaXMtPmVtaXRXb3JrR3JvdXBJbnN0KEksIGlyOjpXT1JLR1JPVVBf T1BfQlJPQURDQVNUKTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9XT1JLX0dST1VQ X1JFRFVDRV9BREQ6Ci0tICAgICAgICAgICAgdGhpcy0+ZW1pdFdvcmtHcm91cEluc3QoSSwgQ1Ms IGlyOjpXT1JLR1JPVVBfT1BfUkVEVUNFX0FERCk7IGJyZWFrOwotKyAgICAgICAgICAgIHRoaXMt PmVtaXRXb3JrR3JvdXBJbnN0KEksIGlyOjpXT1JLR1JPVVBfT1BfUkVEVUNFX0FERCk7IGJyZWFr OwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfV09SS19HUk9VUF9SRURVQ0VfTUFYOgotLSAgICAg ICAgICAgIHRoaXMtPmVtaXRXb3JrR3JvdXBJbnN0KEksIENTLCBpcjo6V09SS0dST1VQX09QX1JF RFVDRV9NQVgpOyBicmVhazsKLSsgICAgICAgICAgICB0aGlzLT5lbWl0V29ya0dyb3VwSW5zdChJ LCBpcjo6V09SS0dST1VQX09QX1JFRFVDRV9NQVgpOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBH RU5fT0NMX1dPUktfR1JPVVBfUkVEVUNFX01JTjoKLS0gICAgICAgICAgICB0aGlzLT5lbWl0V29y a0dyb3VwSW5zdChJLCBDUywgaXI6OldPUktHUk9VUF9PUF9SRURVQ0VfTUlOKTsgYnJlYWs7Ci0r ICAgICAgICAgICAgdGhpcy0+ZW1pdFdvcmtHcm91cEluc3QoSSwgaXI6OldPUktHUk9VUF9PUF9S RURVQ0VfTUlOKTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9XT1JLX0dST1VQX1ND QU5fRVhDTFVTSVZFX0FERDoKLS0gICAgICAgICAgICB0aGlzLT5lbWl0V29ya0dyb3VwSW5zdChJ LCBDUywgaXI6OldPUktHUk9VUF9PUF9FWENMVVNJVkVfQUREKTsgYnJlYWs7Ci0rICAgICAgICAg ICAgdGhpcy0+ZW1pdFdvcmtHcm91cEluc3QoSSwgaXI6OldPUktHUk9VUF9PUF9FWENMVVNJVkVf QUREKTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9XT1JLX0dST1VQX1NDQU5fRVhD TFVTSVZFX01BWDoKLS0gICAgICAgICAgICB0aGlzLT5lbWl0V29ya0dyb3VwSW5zdChJLCBDUywg aXI6OldPUktHUk9VUF9PUF9FWENMVVNJVkVfTUFYKTsgYnJlYWs7Ci0rICAgICAgICAgICAgdGhp cy0+ZW1pdFdvcmtHcm91cEluc3QoSSwgaXI6OldPUktHUk9VUF9PUF9FWENMVVNJVkVfTUFYKTsg YnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9XT1JLX0dST1VQX1NDQU5fRVhDTFVTSVZF X01JTjoKLS0gICAgICAgICAgICB0aGlzLT5lbWl0V29ya0dyb3VwSW5zdChJLCBDUywgaXI6OldP UktHUk9VUF9PUF9FWENMVVNJVkVfTUlOKTsgYnJlYWs7Ci0rICAgICAgICAgICAgdGhpcy0+ZW1p dFdvcmtHcm91cEluc3QoSSwgaXI6OldPUktHUk9VUF9PUF9FWENMVVNJVkVfTUlOKTsgYnJlYWs7 Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9XT1JLX0dST1VQX1NDQU5fSU5DTFVTSVZFX0FERDoK LS0gICAgICAgICAgICB0aGlzLT5lbWl0V29ya0dyb3VwSW5zdChJLCBDUywgaXI6OldPUktHUk9V UF9PUF9JTkNMVVNJVkVfQUREKTsgYnJlYWs7Ci0rICAgICAgICAgICAgdGhpcy0+ZW1pdFdvcmtH cm91cEluc3QoSSwgaXI6OldPUktHUk9VUF9PUF9JTkNMVVNJVkVfQUREKTsgYnJlYWs7Ci0gICAg ICAgICAgIGNhc2UgR0VOX09DTF9XT1JLX0dST1VQX1NDQU5fSU5DTFVTSVZFX01BWDoKLS0gICAg ICAgICAgICB0aGlzLT5lbWl0V29ya0dyb3VwSW5zdChJLCBDUywgaXI6OldPUktHUk9VUF9PUF9J TkNMVVNJVkVfTUFYKTsgYnJlYWs7Ci0rICAgICAgICAgICAgdGhpcy0+ZW1pdFdvcmtHcm91cElu c3QoSSwgaXI6OldPUktHUk9VUF9PUF9JTkNMVVNJVkVfTUFYKTsgYnJlYWs7Ci0gICAgICAgICAg IGNhc2UgR0VOX09DTF9XT1JLX0dST1VQX1NDQU5fSU5DTFVTSVZFX01JTjoKLS0gICAgICAgICAg ICB0aGlzLT5lbWl0V29ya0dyb3VwSW5zdChJLCBDUywgaXI6OldPUktHUk9VUF9PUF9JTkNMVVNJ VkVfTUlOKTsgYnJlYWs7Ci0rICAgICAgICAgICAgdGhpcy0+ZW1pdFdvcmtHcm91cEluc3QoSSwg aXI6OldPUktHUk9VUF9PUF9JTkNMVVNJVkVfTUlOKTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2Ug R0VOX09DTF9TVUJfR1JPVVBfQlJPQURDQVNUOgotLSAgICAgICAgICAgIHRoaXMtPmVtaXRTdWJH cm91cEluc3QoSSwgQ1MsIGlyOjpXT1JLR1JPVVBfT1BfQlJPQURDQVNUKTsgYnJlYWs7Ci0rICAg ICAgICAgICAgdGhpcy0+ZW1pdFN1Ykdyb3VwSW5zdChJLCBpcjo6V09SS0dST1VQX09QX0JST0FE Q0FTVCk7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfU1VCX0dST1VQX1JFRFVDRV9B REQ6Ci0tICAgICAgICAgICAgdGhpcy0+ZW1pdFN1Ykdyb3VwSW5zdChJLCBDUywgaXI6OldPUktH Uk9VUF9PUF9SRURVQ0VfQUREKTsgYnJlYWs7Ci0rICAgICAgICAgICAgdGhpcy0+ZW1pdFN1Ykdy b3VwSW5zdChJLCBpcjo6V09SS0dST1VQX09QX1JFRFVDRV9BREQpOyBicmVhazsKLSAgICAgICAg ICAgY2FzZSBHRU5fT0NMX1NVQl9HUk9VUF9SRURVQ0VfTUFYOgotLSAgICAgICAgICAgIHRoaXMt PmVtaXRTdWJHcm91cEluc3QoSSwgQ1MsIGlyOjpXT1JLR1JPVVBfT1BfUkVEVUNFX01BWCk7IGJy ZWFrOwotKyAgICAgICAgICAgIHRoaXMtPmVtaXRTdWJHcm91cEluc3QoSSwgaXI6OldPUktHUk9V UF9PUF9SRURVQ0VfTUFYKTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9TVUJfR1JP VVBfUkVEVUNFX01JTjoKLS0gICAgICAgICAgICB0aGlzLT5lbWl0U3ViR3JvdXBJbnN0KEksIENT LCBpcjo6V09SS0dST1VQX09QX1JFRFVDRV9NSU4pOyBicmVhazsKLSsgICAgICAgICAgICB0aGlz LT5lbWl0U3ViR3JvdXBJbnN0KEksIGlyOjpXT1JLR1JPVVBfT1BfUkVEVUNFX01JTik7IGJyZWFr OwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfU1VCX0dST1VQX1NDQU5fRVhDTFVTSVZFX0FERDoK LS0gICAgICAgICAgICB0aGlzLT5lbWl0U3ViR3JvdXBJbnN0KEksIENTLCBpcjo6V09SS0dST1VQ X09QX0VYQ0xVU0lWRV9BREQpOyBicmVhazsKLSsgICAgICAgICAgICB0aGlzLT5lbWl0U3ViR3Jv dXBJbnN0KEksIGlyOjpXT1JLR1JPVVBfT1BfRVhDTFVTSVZFX0FERCk7IGJyZWFrOwotICAgICAg ICAgICBjYXNlIEdFTl9PQ0xfU1VCX0dST1VQX1NDQU5fRVhDTFVTSVZFX01BWDoKLS0gICAgICAg ICAgICB0aGlzLT5lbWl0U3ViR3JvdXBJbnN0KEksIENTLCBpcjo6V09SS0dST1VQX09QX0VYQ0xV U0lWRV9NQVgpOyBicmVhazsKLSsgICAgICAgICAgICB0aGlzLT5lbWl0U3ViR3JvdXBJbnN0KEks IGlyOjpXT1JLR1JPVVBfT1BfRVhDTFVTSVZFX01BWCk7IGJyZWFrOwotICAgICAgICAgICBjYXNl IEdFTl9PQ0xfU1VCX0dST1VQX1NDQU5fRVhDTFVTSVZFX01JTjoKLS0gICAgICAgICAgICB0aGlz LT5lbWl0U3ViR3JvdXBJbnN0KEksIENTLCBpcjo6V09SS0dST1VQX09QX0VYQ0xVU0lWRV9NSU4p OyBicmVhazsKLSsgICAgICAgICAgICB0aGlzLT5lbWl0U3ViR3JvdXBJbnN0KEksIGlyOjpXT1JL R1JPVVBfT1BfRVhDTFVTSVZFX01JTik7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xf U1VCX0dST1VQX1NDQU5fSU5DTFVTSVZFX0FERDoKLS0gICAgICAgICAgICB0aGlzLT5lbWl0U3Vi R3JvdXBJbnN0KEksIENTLCBpcjo6V09SS0dST1VQX09QX0lOQ0xVU0lWRV9BREQpOyBicmVhazsK LSsgICAgICAgICAgICB0aGlzLT5lbWl0U3ViR3JvdXBJbnN0KEksIGlyOjpXT1JLR1JPVVBfT1Bf SU5DTFVTSVZFX0FERCk7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfU1VCX0dST1VQ X1NDQU5fSU5DTFVTSVZFX01BWDoKLS0gICAgICAgICAgICB0aGlzLT5lbWl0U3ViR3JvdXBJbnN0 KEksIENTLCBpcjo6V09SS0dST1VQX09QX0lOQ0xVU0lWRV9NQVgpOyBicmVhazsKLSsgICAgICAg ICAgICB0aGlzLT5lbWl0U3ViR3JvdXBJbnN0KEksIGlyOjpXT1JLR1JPVVBfT1BfSU5DTFVTSVZF X01BWCk7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfU1VCX0dST1VQX1NDQU5fSU5D TFVTSVZFX01JTjoKLS0gICAgICAgICAgICB0aGlzLT5lbWl0U3ViR3JvdXBJbnN0KEksIENTLCBp cjo6V09SS0dST1VQX09QX0lOQ0xVU0lWRV9NSU4pOyBicmVhazsKLSsgICAgICAgICAgICB0aGlz LT5lbWl0U3ViR3JvdXBJbnN0KEksIGlyOjpXT1JLR1JPVVBfT1BfSU5DTFVTSVZFX01JTik7IGJy ZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfTFJQOgotICAgICAgICAgICB7Ci0gICAgICAg ICAgICAgY29uc3QgaXI6OlJlZ2lzdGVyIGRzdCAgPSB0aGlzLT5nZXRSZWdpc3RlcigmSSk7Ci1A QCAtNTQ4NCw2OSArNTQ4Miw2OSBAQAotICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICB9 Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9TVUJfR1JPVVBfQkxPQ0tfUkVBRF9VSV9NRU06Ci0t ICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlTWVtSW5zdChJLCBDUywgZmFsc2Us IDEpOyBicmVhazsKLSsgICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVNZW1JbnN0 KEksIGZhbHNlLCAxKTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9TVUJfR1JPVVBf QkxPQ0tfUkVBRF9VSV9NRU0yOgotLSAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0 ZU1lbUluc3QoSSwgQ1MsIGZhbHNlLCAyKTsgYnJlYWs7Ci0rICAgICAgICAgICAgdGhpcy0+ZW1p dEJsb2NrUmVhZFdyaXRlTWVtSW5zdChJLCBmYWxzZSwgMik7IGJyZWFrOwotICAgICAgICAgICBj YXNlIEdFTl9PQ0xfU1VCX0dST1VQX0JMT0NLX1JFQURfVUlfTUVNNDoKLS0gICAgICAgICAgICB0 aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVNZW1JbnN0KEksIENTLCBmYWxzZSwgNCk7IGJyZWFrOwot KyAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZU1lbUluc3QoSSwgZmFsc2UsIDQp OyBicmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX1NVQl9HUk9VUF9CTE9DS19SRUFEX1VJ X01FTTg6Ci0tICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlTWVtSW5zdChJLCBD UywgZmFsc2UsIDgpOyBicmVhazsKLSsgICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3Jp dGVNZW1JbnN0KEksIGZhbHNlLCA4KTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9T VUJfR1JPVVBfQkxPQ0tfV1JJVEVfVUlfTUVNOgotLSAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9j a1JlYWRXcml0ZU1lbUluc3QoSSwgQ1MsIHRydWUsIDEpOyBicmVhazsKLSsgICAgICAgICAgICB0 aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVNZW1JbnN0KEksIHRydWUsIDEpOyBicmVhazsKLSAgICAg ICAgICAgY2FzZSBHRU5fT0NMX1NVQl9HUk9VUF9CTE9DS19XUklURV9VSV9NRU0yOgotLSAgICAg ICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZU1lbUluc3QoSSwgQ1MsIHRydWUsIDIpOyBi cmVhazsKLSsgICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVNZW1JbnN0KEksIHRy dWUsIDIpOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX1NVQl9HUk9VUF9CTE9DS19X UklURV9VSV9NRU00OgotLSAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZU1lbUlu c3QoSSwgQ1MsIHRydWUsIDQpOyBicmVhazsKLSsgICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tS ZWFkV3JpdGVNZW1JbnN0KEksIHRydWUsIDQpOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5f T0NMX1NVQl9HUk9VUF9CTE9DS19XUklURV9VSV9NRU04OgotLSAgICAgICAgICAgIHRoaXMtPmVt aXRCbG9ja1JlYWRXcml0ZU1lbUluc3QoSSwgQ1MsIHRydWUsIDgpOyBicmVhazsKLSsgICAgICAg ICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVNZW1JbnN0KEksIHRydWUsIDgpOyBicmVhazsK LSAgICAgICAgICAgY2FzZSBHRU5fT0NMX1NVQl9HUk9VUF9CTE9DS19SRUFEX1VJX0lNQUdFOgot LSAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZUltYWdlSW5zdChJLCBDUywgZmFs c2UsIDEpOyBicmVhazsKLSsgICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVJbWFn ZUluc3QoSSwgZmFsc2UsIDEpOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX1NVQl9H Uk9VUF9CTE9DS19SRUFEX1VJX0lNQUdFMjoKLS0gICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tS ZWFkV3JpdGVJbWFnZUluc3QoSSwgQ1MsIGZhbHNlLCAyKTsgYnJlYWs7Ci0rICAgICAgICAgICAg dGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlSW1hZ2VJbnN0KEksIGZhbHNlLCAyKTsgYnJlYWs7Ci0g ICAgICAgICAgIGNhc2UgR0VOX09DTF9TVUJfR1JPVVBfQkxPQ0tfUkVBRF9VSV9JTUFHRTQ6Ci0t ICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlSW1hZ2VJbnN0KEksIENTLCBmYWxz ZSwgNCk7IGJyZWFrOwotKyAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZUltYWdl SW5zdChJLCBmYWxzZSwgNCk7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfU1VCX0dS T1VQX0JMT0NLX1JFQURfVUlfSU1BR0U4OgotLSAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1Jl YWRXcml0ZUltYWdlSW5zdChJLCBDUywgZmFsc2UsIDgpOyBicmVhazsKLSsgICAgICAgICAgICB0 aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVJbWFnZUluc3QoSSwgZmFsc2UsIDgpOyBicmVhazsKLSAg ICAgICAgICAgY2FzZSBHRU5fT0NMX1NVQl9HUk9VUF9CTE9DS19XUklURV9VSV9JTUFHRToKLS0g ICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVJbWFnZUluc3QoSSwgQ1MsIHRydWUs IDEpOyBicmVhazsKLSsgICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVJbWFnZUlu c3QoSSwgdHJ1ZSwgMSk7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfU1VCX0dST1VQ X0JMT0NLX1dSSVRFX1VJX0lNQUdFMjoKLS0gICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFk V3JpdGVJbWFnZUluc3QoSSwgQ1MsIHRydWUsIDIpOyBicmVhazsKLSsgICAgICAgICAgICB0aGlz LT5lbWl0QmxvY2tSZWFkV3JpdGVJbWFnZUluc3QoSSwgdHJ1ZSwgMik7IGJyZWFrOwotICAgICAg ICAgICBjYXNlIEdFTl9PQ0xfU1VCX0dST1VQX0JMT0NLX1dSSVRFX1VJX0lNQUdFNDoKLS0gICAg ICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVJbWFnZUluc3QoSSwgQ1MsIHRydWUsIDQp OyBicmVhazsKLSsgICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVJbWFnZUluc3Qo SSwgdHJ1ZSwgNCk7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfU1VCX0dST1VQX0JM T0NLX1dSSVRFX1VJX0lNQUdFODoKLS0gICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3Jp dGVJbWFnZUluc3QoSSwgQ1MsIHRydWUsIDgpOyBicmVhazsKLSsgICAgICAgICAgICB0aGlzLT5l bWl0QmxvY2tSZWFkV3JpdGVJbWFnZUluc3QoSSwgdHJ1ZSwgOCk7IGJyZWFrOwotICAgICAgICAg ICBjYXNlIEdFTl9PQ0xfU1VCX0dST1VQX0JMT0NLX1JFQURfVVNfTUVNOgotLSAgICAgICAgICAg IHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZU1lbUluc3QoSSwgQ1MsIGZhbHNlLCAxLCBpcjo6VFlQ RV9VMTYpOyBicmVhazsKLSsgICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVNZW1J bnN0KEksIGZhbHNlLCAxLCBpcjo6VFlQRV9VMTYpOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBH RU5fT0NMX1NVQl9HUk9VUF9CTE9DS19SRUFEX1VTX01FTTI6Ci0tICAgICAgICAgICAgdGhpcy0+ ZW1pdEJsb2NrUmVhZFdyaXRlTWVtSW5zdChJLCBDUywgZmFsc2UsIDIsIGlyOjpUWVBFX1UxNik7 IGJyZWFrOwotKyAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZU1lbUluc3QoSSwg ZmFsc2UsIDIsIGlyOjpUWVBFX1UxNik7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xf U1VCX0dST1VQX0JMT0NLX1JFQURfVVNfTUVNNDoKLS0gICAgICAgICAgICB0aGlzLT5lbWl0Qmxv Y2tSZWFkV3JpdGVNZW1JbnN0KEksIENTLCBmYWxzZSwgNCwgaXI6OlRZUEVfVTE2KTsgYnJlYWs7 Ci0rICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlTWVtSW5zdChJLCBmYWxzZSwg NCwgaXI6OlRZUEVfVTE2KTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9TVUJfR1JP VVBfQkxPQ0tfUkVBRF9VU19NRU04OgotLSAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRX cml0ZU1lbUluc3QoSSwgQ1MsIGZhbHNlLCA4LCBpcjo6VFlQRV9VMTYpOyBicmVhazsKLSsgICAg ICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVNZW1JbnN0KEksIGZhbHNlLCA4LCBpcjo6 VFlQRV9VMTYpOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX1NVQl9HUk9VUF9CTE9D S19XUklURV9VU19NRU06Ci0tICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlTWVt SW5zdChJLCBDUywgdHJ1ZSwgMSwgaXI6OlRZUEVfVTE2KTsgYnJlYWs7Ci0rICAgICAgICAgICAg dGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlTWVtSW5zdChJLCB0cnVlLCAxLCBpcjo6VFlQRV9VMTYp OyBicmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX1NVQl9HUk9VUF9CTE9DS19XUklURV9V U19NRU0yOgotLSAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZU1lbUluc3QoSSwg Q1MsIHRydWUsIDIsIGlyOjpUWVBFX1UxNik7IGJyZWFrOwotKyAgICAgICAgICAgIHRoaXMtPmVt aXRCbG9ja1JlYWRXcml0ZU1lbUluc3QoSSwgdHJ1ZSwgMiwgaXI6OlRZUEVfVTE2KTsgYnJlYWs7 Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9TVUJfR1JPVVBfQkxPQ0tfV1JJVEVfVVNfTUVNNDoK LS0gICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVNZW1JbnN0KEksIENTLCB0cnVl LCA0LCBpcjo6VFlQRV9VMTYpOyBicmVhazsKLSsgICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tS ZWFkV3JpdGVNZW1JbnN0KEksIHRydWUsIDQsIGlyOjpUWVBFX1UxNik7IGJyZWFrOwotICAgICAg ICAgICBjYXNlIEdFTl9PQ0xfU1VCX0dST1VQX0JMT0NLX1dSSVRFX1VTX01FTTg6Ci0tICAgICAg ICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlTWVtSW5zdChJLCBDUywgdHJ1ZSwgOCwgaXI6 OlRZUEVfVTE2KTsgYnJlYWs7Ci0rICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRl TWVtSW5zdChJLCB0cnVlLCA4LCBpcjo6VFlQRV9VMTYpOyBicmVhazsKLSAgICAgICAgICAgY2Fz ZSBHRU5fT0NMX1NVQl9HUk9VUF9CTE9DS19SRUFEX1VTX0lNQUdFOgotLSAgICAgICAgICAgIHRo aXMtPmVtaXRCbG9ja1JlYWRXcml0ZUltYWdlSW5zdChJLCBDUywgZmFsc2UsIDEsIGlyOjpUWVBF X1UxNik7IGJyZWFrOwotKyAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZUltYWdl SW5zdChJLCBmYWxzZSwgMSwgaXI6OlRZUEVfVTE2KTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2Ug R0VOX09DTF9TVUJfR1JPVVBfQkxPQ0tfUkVBRF9VU19JTUFHRTI6Ci0tICAgICAgICAgICAgdGhp cy0+ZW1pdEJsb2NrUmVhZFdyaXRlSW1hZ2VJbnN0KEksIENTLCBmYWxzZSwgMiwgaXI6OlRZUEVf VTE2KTsgYnJlYWs7Ci0rICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlSW1hZ2VJ bnN0KEksIGZhbHNlLCAyLCBpcjo6VFlQRV9VMTYpOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBH RU5fT0NMX1NVQl9HUk9VUF9CTE9DS19SRUFEX1VTX0lNQUdFNDoKLS0gICAgICAgICAgICB0aGlz LT5lbWl0QmxvY2tSZWFkV3JpdGVJbWFnZUluc3QoSSwgQ1MsIGZhbHNlLCA0LCBpcjo6VFlQRV9V MTYpOyBicmVhazsKLSsgICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVJbWFnZUlu c3QoSSwgZmFsc2UsIDQsIGlyOjpUWVBFX1UxNik7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdF Tl9PQ0xfU1VCX0dST1VQX0JMT0NLX1JFQURfVVNfSU1BR0U4OgotLSAgICAgICAgICAgIHRoaXMt PmVtaXRCbG9ja1JlYWRXcml0ZUltYWdlSW5zdChJLCBDUywgZmFsc2UsIDgsIGlyOjpUWVBFX1Ux Nik7IGJyZWFrOwotKyAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZUltYWdlSW5z dChJLCBmYWxzZSwgOCwgaXI6OlRZUEVfVTE2KTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VO X09DTF9TVUJfR1JPVVBfQkxPQ0tfV1JJVEVfVVNfSU1BR0U6Ci0tICAgICAgICAgICAgdGhpcy0+ ZW1pdEJsb2NrUmVhZFdyaXRlSW1hZ2VJbnN0KEksIENTLCB0cnVlLCAxLCBpcjo6VFlQRV9VMTYp OyBicmVhazsKLSsgICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVJbWFnZUluc3Qo SSwgdHJ1ZSwgMSwgaXI6OlRZUEVfVTE2KTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09D TF9TVUJfR1JPVVBfQkxPQ0tfV1JJVEVfVVNfSU1BR0UyOgotLSAgICAgICAgICAgIHRoaXMtPmVt aXRCbG9ja1JlYWRXcml0ZUltYWdlSW5zdChJLCBDUywgdHJ1ZSwgMiwgaXI6OlRZUEVfVTE2KTsg YnJlYWs7Ci0rICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlSW1hZ2VJbnN0KEks IHRydWUsIDIsIGlyOjpUWVBFX1UxNik7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xf U1VCX0dST1VQX0JMT0NLX1dSSVRFX1VTX0lNQUdFNDoKLS0gICAgICAgICAgICB0aGlzLT5lbWl0 QmxvY2tSZWFkV3JpdGVJbWFnZUluc3QoSSwgQ1MsIHRydWUsIDQsIGlyOjpUWVBFX1UxNik7IGJy ZWFrOwotKyAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZUltYWdlSW5zdChJLCB0 cnVlLCA0LCBpcjo6VFlQRV9VMTYpOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX1NV Ql9HUk9VUF9CTE9DS19XUklURV9VU19JTUFHRTg6Ci0tICAgICAgICAgICAgdGhpcy0+ZW1pdEJs b2NrUmVhZFdyaXRlSW1hZ2VJbnN0KEksIENTLCB0cnVlLCA4LCBpcjo6VFlQRV9VMTYpOyBicmVh azsKLSsgICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVJbWFnZUluc3QoSSwgdHJ1 ZSwgOCwgaXI6OlRZUEVfVTE2KTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9HRVRf UElQRToKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX01BS0VfUklEOgotICAgICAgICAgICBjYXNl IEdFTl9PQ0xfR0VUX1JJRDoKLS0tLSBhL2JhY2tlbmQvc3JjL2xsdm0vbGx2bV9pbmNsdWRlcy5o cHAJMjAyMC0xMS0wOSAxNjo0ODoyMC44MjM4NjYxMTIgKzAxMDAKLSsrKyBiL2JhY2tlbmQvc3Jj L2xsdm0vbGx2bV9pbmNsdWRlcy5ocHAJMjAyMC0xMS0wOSAxOTowMDowOS45NTU5MjY3OTUgKzAx MDAKLUBAIC0xMDMsNyArMTAzLDYgQEAKLQotICNpZiBMTFZNX1ZFUlNJT05fTUFKT1IgKiAxMCAr IExMVk1fVkVSU0lPTl9NSU5PUiA+PSAzNQotICNpbmNsdWRlICJsbHZtL0lSL01hbmdsZXIuaCIK LS0jaW5jbHVkZSAibGx2bS9JUi9DYWxsU2l0ZS5oIgotICNpbmNsdWRlICJsbHZtL0lSL0NGRy5o IgotICNpbmNsdWRlICJsbHZtL0lSL0luc3RWaXNpdG9yLmgiCi0gI2luY2x1ZGUgImxsdm0vSVIv SVJQcmludGluZ1Bhc3Nlcy5oIgotLS0tIGEvYmFja2VuZC9zcmMvbGx2bS9sbHZtX2xvYWRzdG9y ZV9vcHRpbWl6YXRpb24uY3BwCTIwMjAtMTEtMDkgMTY6NDg6MjAuODIzODY2MTEyICswMTAwCi0r KysgYi9iYWNrZW5kL3NyYy9sbHZtL2xsdm1fbG9hZHN0b3JlX29wdGltaXphdGlvbi5jcHAJMjAy MC0xMS0wOSAxOToxMDozNy4xNDE4NTIzMDggKzAxMDAKLUBAIC0xNjAsNyArMTYwLDcgQEAKLSAg ICAgVmFsdWUgKnZlY1B0ciA9IEJ1aWxkZXIuQ3JlYXRlQml0Q2FzdChsZC0+Z2V0UG9pbnRlck9w ZXJhbmQoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUG9pbnRl clR5cGU6OmdldCh2ZWNUeSwgYWRkclNwYWNlKSk7Ci0gICAgIExvYWRJbnN0ICp2ZWNWYWx1ZSA9 IEJ1aWxkZXIuQ3JlYXRlTG9hZCh2ZWNQdHIpOwotLSAgICB2ZWNWYWx1ZS0+c2V0QWxpZ25tZW50 KGFsaWduKTsKLSsgICAgdmVjVmFsdWUtPnNldEFsaWdubWVudChhbGlnbi52YWx1ZU9yT25lKCkp OwotCi0gICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBzaXplOyArK2kpIHsKLSAgICAgICBW YWx1ZSAqUyA9IEJ1aWxkZXIuQ3JlYXRlRXh0cmFjdEVsZW1lbnQodmVjVmFsdWUsIEJ1aWxkZXIu Z2V0SW50MzIoaSkpOwotQEAgLTI1MSw3ICsyNTEsNyBAQAotICAgICAgIHJldHVybjsKLSAgICAg VmFsdWUgKm5ld1B0ciA9IEJ1aWxkZXIuQ3JlYXRlQml0Q2FzdChzdFBvaW50ZXIsIFBvaW50ZXJU eXBlOjpnZXQodmVjVHksIGFkZHJTcGFjZSkpOwotICAgICBTdG9yZUluc3QgKm5ld1NUID0gQnVp bGRlci5DcmVhdGVTdG9yZShwYXJlbnQsIG5ld1B0cik7Ci0tICAgIG5ld1NULT5zZXRBbGlnbm1l bnQoYWxpZ24pOwotKyAgICBuZXdTVC0+c2V0QWxpZ25tZW50KGFsaWduLnZhbHVlT3JPbmUoKSk7 Ci0gICB9Ci0KLSAgIC8vIEZpbmQgdGhlIHNhZmUgaXRlcmF0b3Igd2UgY2FuIHBvaW50IHRvLiBJ ZiByZW9yZGVyIGhhcHBlbnMsIHdlIG5lZWQgdG8KLS0tLSBhL2JhY2tlbmQvc3JjL2xsdm0vbGx2 bV9wYXNzZXMuY3BwCTIwMjAtMTEtMDkgMTY6NDg6MjAuODIzODY2MTEyICswMTAwCi0rKysgYi9i YWNrZW5kL3NyYy9sbHZtL2xsdm1fcGFzc2VzLmNwcAkyMDIwLTExLTA5IDE4OjQ4OjU1Ljk5NzAw NjgzNyArMDEwMAotQEAgLTk1LDcgKzk1LDcgQEAKLSAgIHsKLSAgICAgc3dpdGNoIChUeS0+Z2V0 VHlwZUlEKCkpIHsKLSAgICAgICBjYXNlIFR5cGU6OlZvaWRUeUlEOiBOT1RfU1VQUE9SVEVEOwot LSAgICAgIGNhc2UgVHlwZTo6VmVjdG9yVHlJRDoKLSsgICAgICBjYXNlIFR5cGU6OkZpeGVkVmVj dG9yVHlJRDoKLSAgICAgICB7Ci0gICAgICAgICBjb25zdCBWZWN0b3JUeXBlKiBWZWNUeSA9IGNh c3Q8VmVjdG9yVHlwZT4oVHkpOwotICAgICAgICAgdWludDMyX3QgZWxlbU51bSA9IFZlY1R5LT5n ZXROdW1FbGVtZW50cygpOwotQEAgLTEzOCw3ICsxMzgsNyBAQAotICAgICAgIGNhc2UgVHlwZTo6 SGFsZlR5SUQ6ICAgIHJldHVybiAxNjsKLSAgICAgICBjYXNlIFR5cGU6OkZsb2F0VHlJRDogICBy ZXR1cm4gMzI7Ci0gICAgICAgY2FzZSBUeXBlOjpEb3VibGVUeUlEOiAgcmV0dXJuIDY0OwotLSAg ICAgIGNhc2UgVHlwZTo6VmVjdG9yVHlJRDoKLSsgICAgICBjYXNlIFR5cGU6OkZpeGVkVmVjdG9y VHlJRDoKLSAgICAgICB7Ci0gICAgICAgICBjb25zdCBWZWN0b3JUeXBlKiBWZWNUeSA9IGNhc3Q8 VmVjdG9yVHlwZT4oVHkpOwotICAgICAgICAgdWludDMyX3QgbnVtRWxlbSA9IFZlY1R5LT5nZXRO dW1FbGVtZW50cygpOwotQEAgLTE4NCwxMCArMTg0LDEyIEBACi0gICAgIFR5cGUgKmVsZW1lbnRU eXBlID0gTlVMTDsKLSAgICAgaWYgKFBvaW50ZXJUeXBlKiBwdHJUeXBlID0gZHluX2Nhc3Q8UG9p bnRlclR5cGU+KGVsdFR5KSkKLSAgICAgICBlbGVtZW50VHlwZSA9IHB0clR5cGUtPmdldEVsZW1l bnRUeXBlKCk7Ci0tICAgIGVsc2UgaWYoU2VxdWVudGlhbFR5cGUgKiBzZXFUeXBlID0gZHluX2Nh c3Q8U2VxdWVudGlhbFR5cGU+KGVsdFR5KSkKLS0gICAgICBlbGVtZW50VHlwZSA9IHNlcVR5cGUt PmdldEVsZW1lbnRUeXBlKCk7Ci0tICAgIGVsc2UgaWYoQ29tcG9zaXRlVHlwZSAqIGNvbXBUeT0g ZHluX2Nhc3Q8Q29tcG9zaXRlVHlwZT4oZWx0VHkpKQotLSAgICAgIGVsZW1lbnRUeXBlID0gY29t cFR5LT5nZXRUeXBlQXRJbmRleChpbmRleCk7Ci0rICAgIGVsc2UgaWYgKEFycmF5VHlwZSAqIGFy clR5cGUgPSBkeW5fY2FzdDxBcnJheVR5cGU+KGVsdFR5KSkKLSsgICAgICBlbGVtZW50VHlwZSA9 IGFyclR5cGUtPmdldEVsZW1lbnRUeXBlKCk7Ci0rICAgIGVsc2UgaWYoVmVjdG9yVHlwZSAqIHZl Y1R5cGUgPSBkeW5fY2FzdDxWZWN0b3JUeXBlPihlbHRUeSkpCi0rICAgICAgZWxlbWVudFR5cGUg PSB2ZWNUeXBlLT5nZXRFbGVtZW50VHlwZSgpOwotKyAgICBlbHNlIGlmKFN0cnVjdFR5cGUgKiBz dHJ1Y3RUeXBlID0gZHluX2Nhc3Q8U3RydWN0VHlwZT4oZWx0VHkpKQotKyAgICAgIGVsZW1lbnRU eXBlID0gc3RydWN0VHlwZS0+Z2V0VHlwZUF0SW5kZXgoaW5kZXgpOwotICAgICBHQkVfQVNTRVJU KGVsZW1lbnRUeXBlKTsKLSAgICAgcmV0dXJuIGVsZW1lbnRUeXBlOwotICAgfQotLS0tIGEvYmFj a2VuZC9zcmMvbGx2bS9sbHZtX3ByaW50Zl9wYXJzZXIuY3BwCTIwMjAtMTEtMDkgMTY6NDg6MjAu ODIzODY2MTEyICswMTAwCi0rKysgYi9iYWNrZW5kL3NyYy9sbHZtL2xsdm1fcHJpbnRmX3BhcnNl ci5jcHAJMjAyMC0xMS0wOSAxODo1Nzo1Mi42MTg5NDMxMDUgKzAxMDAKLUBAIC0zMjMsOCArMzIz LDcgQEAKLQotICAgYm9vbCBQcmludGZQYXJzZXI6OnBhcnNlT25lUHJpbnRmSW5zdHJ1Y3Rpb24o Q2FsbEluc3QgKiBjYWxsKQotICAgewotLSAgICBDYWxsU2l0ZSBDUyhjYWxsKTsKLS0gICAgQ2Fs bFNpdGU6OmFyZ19pdGVyYXRvciBDSV9GTVQgPSBDUy5hcmdfYmVnaW4oKTsKLSsgICAgVXNlcjo6 b3BfaXRlcmF0b3IgQ0lfRk1UID0gY2FsbC0+YXJnX2JlZ2luKCk7Ci0gICAgIGludCBwYXJhbV9u dW0gPSAwOwotCi0gICAgIGxsdm06OkNvbnN0YW50KiBhcmcwID0gZHluX2Nhc3Q8bGx2bTo6Q29u c3RhbnRFeHByPigqQ0lfRk1UKTsKLUBAIC0zNDEsNyArMzQwLDcgQEAKLSAgICAgICByZXR1cm4g ZmFsc2U7Ci0gICAgIH0KLQotLSAgICBzdGQ6OnN0cmluZyBmbXQgPSBmbXRfYXJnLT5nZXRBc0NT dHJpbmcoKTsKLSsgICAgc3RkOjpzdHJpbmcgZm10ID0gZm10X2FyZy0+Z2V0QXNDU3RyaW5nKCku c3RyKCk7Ci0gICAgIGlmIChmbXQuc2l6ZSgpID09IDApCi0gICAgICAgcmV0dXJuIGZhbHNlOwot Ci1AQCAtNDM3LDggKzQzNiw4IEBACi0gICAgICAgICBpZiAoIGNhbGxGdW5jLT5nZXRJbnRyaW5z aWNJRCgpICE9IDApCi0gICAgICAgICAgIGNvbnRpbnVlOwotCi0tICAgICAgICBWYWx1ZSAqQ2Fs bGVlID0gY2FsbC0+Z2V0Q2FsbGVkVmFsdWUoKTsKLS0gICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5n IGZuTmFtZSA9IENhbGxlZS0+Z2V0TmFtZSgpOwotKyAgICAgICAgVmFsdWUgKkNhbGxlZSA9IGNh bGwtPmdldENhbGxlZE9wZXJhbmQoKTsKLSsgICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nIGZuTmFt ZSA9IENhbGxlZS0+Z2V0TmFtZSgpLnN0cigpOwotCi0gICAgICAgICBpZiAoZm5OYW1lICE9ICJf X2dlbl9vY2xfcHJpbnRmX3N0dWIiICYmIGZuTmFtZSAhPSAiX19nZW5fb2NsX3B1dHNfc3R1YiIp Ci0gICAgICAgICAgIGNvbnRpbnVlOwotQEAgLTU4Miw3ICs1ODEsNyBAQAotICAgICAgICAgICAg IGlmICghZm10X2FyZyB8fCAhZm10X2FyZy0+aXNDU3RyaW5nKCkpIHsKLSAgICAgICAgICAgICAg IHJldHVybiBmYWxzZTsKLSAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgc2xvdC5zdGF0ZS5z dHIgPSBmbXRfYXJnLT5nZXRBc0NTdHJpbmcoKTsKLSsgICAgICAgICAgICBzbG90LnN0YXRlLnN0 ciA9IGZtdF9hcmctPmdldEFzQ1N0cmluZygpLnN0cigpOwotICAgICAgICAgICAgIHJldHVybiB0 cnVlOwotICAgICAgICAgICB9Ci0gICAgICAgICAgIGNhc2UgUFJJTlRGX0NPTlZFUlNJT05fUDog ewotQEAgLTU5NSwxMCArNTk0LDEwIEBACi0KLSAgICAgICAgIGJyZWFrOwotCi0tICAgICAgY2Fz ZSBUeXBlOjpWZWN0b3JUeUlEOiB7Ci0tICAgICAgICBUeXBlKiB2ZWN0X3R5cGUgPSBhcmctPmdl dFR5cGUoKTsKLS0gICAgICAgIFR5cGUqIGVsdF90eXBlID0gdmVjdF90eXBlLT5nZXRWZWN0b3JF bGVtZW50VHlwZSgpOwotLSAgICAgICAgaW50IHZlY19udW0gPSB2ZWN0X3R5cGUtPmdldFZlY3Rv ck51bUVsZW1lbnRzKCk7Ci0rICAgICAgY2FzZSBUeXBlOjpGaXhlZFZlY3RvclR5SUQ6IHsKLSsg ICAgICAgIFZlY3RvclR5cGUqIHZlY3RfdHlwZSA9IGR5bl9jYXN0PFZlY3RvclR5cGU+KGFyZy0+ Z2V0VHlwZSgpKTsKLSsgICAgICAgIFR5cGUqIGVsdF90eXBlID0gdmVjdF90eXBlLT5nZXRFbGVt ZW50VHlwZSgpOwotKyAgICAgICAgaW50IHZlY19udW0gPSB2ZWN0X3R5cGUtPmdldE51bUVsZW1l bnRzKCk7Ci0gICAgICAgICBib29sIHNpZ24gPSBmYWxzZTsKLQotICAgICAgICAgaWYgKHZlY19u dW0gIT0gc2xvdC5zdGF0ZS52ZWN0b3JfbikgewotLS0tIGEvYmFja2VuZC9zcmMvbGx2bS9sbHZt X3Byb2ZpbGluZy5jcHAJMjAyMC0xMS0wOSAxNjo0ODoyMC44MjM4NjYxMTIgKzAxMDAKLSsrKyBi L2JhY2tlbmQvc3JjL2xsdm0vbGx2bV9wcm9maWxpbmcuY3BwCTIwMjAtMTEtMDkgMTg6NTk6NTAu MTIwOTI5MTUwICswMTAwCi1AQCAtMzUsNyArMzUsNiBAQAotICNpbmNsdWRlICJsbHZtL0lSL0lS QnVpbGRlci5oIgotCi0gI2lmIExMVk1fVkVSU0lPTl9NQUpPUiAqIDEwICsgTExWTV9WRVJTSU9O X01JTk9SID49IDM1Ci0tI2luY2x1ZGUgImxsdm0vSVIvQ2FsbFNpdGUuaCIKLSAjaW5jbHVkZSAi bGx2bS9JUi9DRkcuaCIKLSAjZWxzZQotICNpbmNsdWRlICJsbHZtL1N1cHBvcnQvQ2FsbFNpdGUu aCIKLS0tLSBhL2JhY2tlbmQvc3JjL2xsdm0vbGx2bV9zYW1wbGVyX2ZpeC5jcHAJMjAyMC0xMS0w OSAxNjo0ODoyMC44MjM4NjYxMTIgKzAxMDAKLSsrKyBiL2JhY2tlbmQvc3JjL2xsdm0vbGx2bV9z YW1wbGVyX2ZpeC5jcHAJMjAyMC0xMS0wOSAxNzowMTowOS40MDc3NzQ4MzIgKzAxMDAKLUBAIC00 NSw4ICs0NSw4IEBACi0gICAgIGJvb2wgdmlzaXRDYWxsSW5zdChDYWxsSW5zdCAqSSkgewotICAg ICAgIGlmKCFJKQotICAgICAgICAgcmV0dXJuIGZhbHNlOwotLSAgICAgIFZhbHVlICpDYWxsZWUg PSBJLT5nZXRDYWxsZWRWYWx1ZSgpOwotLSAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nIGZuTmFtZSA9 IENhbGxlZS0+Z2V0TmFtZSgpOwotKyAgICAgIFZhbHVlICpDYWxsZWUgPSBJLT5nZXRDYWxsZWRP cGVyYW5kKCk7Ci0rICAgICAgY29uc3Qgc3RkOjpzdHJpbmcgZm5OYW1lID0gQ2FsbGVlLT5nZXRO YW1lKCkuc3RyKCk7Ci0gICAgICAgYm9vbCBjaGFuZ2VkID0gZmFsc2U7Ci0gICAgICAgVHlwZSAq Ym9vbFR5ID0gSW50ZWdlclR5cGU6OmdldChJLT5nZXRDb250ZXh0KCksIDEpOwotICAgICAgIFR5 cGUgKmkzMlR5ID0gSW50ZWdlclR5cGU6OmdldChJLT5nZXRDb250ZXh0KCksIDMyKTsKLUBAIC01 OSw3ICs1OSw3IEBACi0gICAgICAgICBWYWx1ZSAqbmVlZEZpeFZhbDsKLSAjaWYgTExWTV9WRVJT SU9OX01BSk9SICogMTAgKyBMTFZNX1ZFUlNJT05fTUlOT1IgPj0gNDAKLSAgICAgICAgIENhbGxJ bnN0ICppbml0ID0gZHluX2Nhc3Q8Q2FsbEluc3Q+KEktPmdldE9wZXJhbmQoMCkpOwotLSAgICAg ICAgaWYgKGluaXQgJiYgaW5pdC0+Z2V0Q2FsbGVkVmFsdWUoKS0+Z2V0TmFtZSgpLmNvbXBhcmUo Il9fdHJhbnNsYXRlX3NhbXBsZXJfaW5pdGlhbGl6ZXIiKSkKLSsgICAgICAgIGlmIChpbml0ICYm IGluaXQtPmdldENhbGxlZE9wZXJhbmQoKS0+Z2V0TmFtZSgpLmNvbXBhcmUoIl9fdHJhbnNsYXRl X3NhbXBsZXJfaW5pdGlhbGl6ZXIiKSkKLSAgICAgICAgIHsKLSAgICAgICAgICAgY29uc3QgQ29u c3RhbnRJbnQgKmNpID0gZHluX2Nhc3Q8Q29uc3RhbnRJbnQ+KGluaXQtPmdldE9wZXJhbmQoMCkp OwotICAgICAgICAgICB1aW50MzJfdCBzYW1wbGVySW50ID0gY2ktPmdldFpFeHRWYWx1ZSgpOwot QEAgLTExMyw3ICsxMTMsNyBAQAotICAgICAgICAgVmFsdWUgKm5lZWRGaXhWYWw7Ci0gICNpZiBM TFZNX1ZFUlNJT05fTUFKT1IgKiAxMCArIExMVk1fVkVSU0lPTl9NSU5PUiA+PSA0MAotICAgICAg ICAgQ2FsbEluc3QgKmluaXQgPSBkeW5fY2FzdDxDYWxsSW5zdD4oSS0+Z2V0T3BlcmFuZCgwKSk7 Ci0tICAgICAgICBpZiAoaW5pdCAmJiBpbml0LT5nZXRDYWxsZWRWYWx1ZSgpLT5nZXROYW1lKCku Y29tcGFyZSgiX190cmFuc2xhdGVfc2FtcGxlcl9pbml0aWFsaXplciIpKQotKyAgICAgICAgaWYg KGluaXQgJiYgaW5pdC0+Z2V0Q2FsbGVkT3BlcmFuZCgpLT5nZXROYW1lKCkuY29tcGFyZSgiX190 cmFuc2xhdGVfc2FtcGxlcl9pbml0aWFsaXplciIpKQotICAgICAgICAgewotICAgICAgICAgICBj b25zdCBDb25zdGFudEludCAqY2kgPSBkeW5fY2FzdDxDb25zdGFudEludD4oaW5pdC0+Z2V0T3Bl cmFuZCgwKSk7Ci0gICAgICAgICAgIHVpbnQzMl90IHNhbXBsZXJJbnQgPSBjaS0+Z2V0WkV4dFZh bHVlKCk7Ci0tLS0gYS9iYWNrZW5kL3NyYy9sbHZtL2xsdm1fc2NhbGFyaXplLmNwcAkyMDIwLTEx LTA5IDE2OjQ4OjIwLjgyMzg2NjExMiArMDEwMAotKysrIGIvYmFja2VuZC9zcmMvbGx2bS9sbHZt X3NjYWxhcml6ZS5jcHAJMjAyMC0xMS0wOSAxODo1MToxNi44ODg5OTAxMDQgKzAxMDAKLUBAIC0x NzgsNyArMTc4LDcgQEAKLSAgICAgICBpZighdHlwZSkKLSAgICAgICAgIHJldHVybiB0eXBlOwot ICAgICAgIHN3aXRjaCh0eXBlLT5nZXRUeXBlSUQoKSkgewotLSAgICAgIGNhc2UgVHlwZTo6VmVj dG9yVHlJRDoKLSsgICAgICBjYXNlIFR5cGU6OkZpeGVkVmVjdG9yVHlJRDoKLSAgICAgICBjYXNl IFR5cGU6OkFycmF5VHlJRDoKLSAgICAgICAgIHJldHVybiBHZXRCYXNpY1R5cGUodHlwZS0+Z2V0 Q29udGFpbmVkVHlwZSgwKSk7Ci0gICAgICAgZGVmYXVsdDoKLUBAIC0xODgsNyArMTg4LDcgQEAK LSAgICAgfQotCi0gICAgIGludCBHZXRDb21wb25lbnRDb3VudChjb25zdCBUeXBlKiB0eXBlKSAg ewotLSAgICAgIGlmICh0eXBlICYmIHR5cGUtPmdldFR5cGVJRCgpID09IFR5cGU6OlZlY3RvclR5 SUQpCi0rICAgICAgaWYgKHR5cGUgJiYgdHlwZS0+Z2V0VHlwZUlEKCkgPT0gVHlwZTo6Rml4ZWRW ZWN0b3JUeUlEKQotICAgICAgICAgcmV0dXJuIGxsdm06OmR5bl9jYXN0PFZlY3RvclR5cGU+KHR5 cGUpLT5nZXROdW1FbGVtZW50cygpOwotICAgICAgIGVsc2UKLSAgICAgICAgIHJldHVybiAxOwot QEAgLTY1MiwxMyArNjUyLDEyIEBACi0gICAgICAgICAgIGJyZWFrOwotICAgICAgICAgfQotICAg ICAgIH0gZWxzZSB7Ci0tICAgICAgICBWYWx1ZSAqQ2FsbGVlID0gY2FsbC0+Z2V0Q2FsbGVkVmFs dWUoKTsKLS0gICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nIGZuTmFtZSA9IENhbGxlZS0+Z2V0TmFt ZSgpOwotKyAgICAgICAgVmFsdWUgKkNhbGxlZSA9IGNhbGwtPmdldENhbGxlZE9wZXJhbmQoKTsK LSsgICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nIGZuTmFtZSA9IENhbGxlZS0+Z2V0TmFtZSgpLnN0 cigpOwotICAgICAgICAgYXV0byBnZW5JbnRyaW5zaWNJRCA9IGludHJpbnNpY01hcC5maW5kKGZu TmFtZSk7Ci0KLSAgICAgICAgIC8vIEdldCB0aGUgZnVuY3Rpb24gYXJndW1lbnRzCi0tICAgICAg ICBDYWxsU2l0ZSBDUyhjYWxsKTsKLS0gICAgICAgIENhbGxTaXRlOjphcmdfaXRlcmF0b3IgQ0kg PSBDUy5hcmdfYmVnaW4oKSArIDE7Ci0rICAgICAgICBVc2VyOjpvcF9pdGVyYXRvciBDSSA9IGNh bGwtPmFyZ19iZWdpbigpICsgMTsKLQotICAgICAgICAgc3dpdGNoIChnZW5JbnRyaW5zaWNJRCkg ewotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfTk9UX0ZPVU5EOgotQEAgLTcyOSw3ICs3MjgsNyBA QAotICAgICAgICAgICAgIGV4dHJhY3RGcm9tVmVjdG9yKGNhbGwpOwotICAgICAgICAgICAgIGJy ZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfUFJJTlRGOgotLSAgICAgICAgICAgIGZvciAo OyBDSSAhPSBDUy5hcmdfZW5kKCk7ICsrQ0kpCi0rICAgICAgICAgICAgZm9yICg7IENJICE9IGNh bGwtPmFyZ19lbmQoKTsgKytDSSkKLSAgICAgICAgICAgICAgIGlmICgoKkNJKS0+Z2V0VHlwZSgp LT5pc1ZlY3RvclR5KCkpCi0gICAgICAgICAgICAgICAgICpDSSA9IEluc2VydFRvVmVjdG9yKGNh bGwsICpDSSk7Ci0gICAgICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9zcmNwa2dzL2JlaWdu ZXQvcGF0Y2hlcy9sbHZtMTIucGF0Y2ggYi9zcmNwa2dzL2JlaWduZXQvcGF0Y2hlcy9sbHZtMTIu cGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZmOGFiMDA1YzE0OC4uMDAwMDAw MDAwMDAwCi0tLSBhL3NyY3BrZ3MvYmVpZ25ldC9wYXRjaGVzL2xsdm0xMi5wYXRjaAorKysgL2Rl di9udWxsCkBAIC0xLDExNSArMCwwIEBACi1kaWZmIC0tZ2l0IGJhY2tlbmQvc3JjL2xsdm0vRXhw YW5kTGFyZ2VJbnRlZ2Vycy5jcHAgYmFja2VuZC9zcmMvbGx2bS9FeHBhbmRMYXJnZUludGVnZXJz LmNwcAotaW5kZXggODUxNWRjMTMuLjI3MDgwMzgwIDEwMDY0NAotLS0tIGEvYmFja2VuZC9zcmMv bGx2bS9FeHBhbmRMYXJnZUludGVnZXJzLmNwcAotKysrIGIvYmFja2VuZC9zcmMvbGx2bS9FeHBh bmRMYXJnZUludGVnZXJzLmNwcAotQEAgLTMyOCw3ICszMjgsNyBAQCBzdGF0aWMgVmFsdWUgKmJ1 aWxkVmVjdG9yT3JTY2FsYXIoQ29udmVyc2lvblN0YXRlICZTdGF0ZSwgSVJCdWlsZGVyPD4gJklS QiwgU21hbAotICAgICAvLyBzcGxpdGVkLCB0aGF0J3Mgd2h5IHRoZXNlIHRlbXBvcmFyeSB2YWx1 ZXMgc2hvdWxkIGJlIGVyYXNlZC4KLSAgICAgYm9vbCBLZWVwSW5zZXJ0ID0gaXNMZWdhbEJpdFNp emUoRWxlbVR5LT5nZXRQcmltaXRpdmVTaXplSW5CaXRzKCkgKiBFbGVtTm8pOwotICAgICBmb3Ig KHVuc2lnbmVkIGkgPSAwOyBpIDwgRWxlbU5vOyArK2kpIHsKLS0gICAgICBWYWx1ZSAqdG1wID0g dmVjID8gdmVjIDogVW5kZWZWYWx1ZTo6Z2V0KFZlY3RvclR5cGU6OmdldChFbGVtVHksIEVsZW1O bykpOwotKyAgICAgIFZhbHVlICp0bXAgPSB2ZWMgPyB2ZWMgOiBVbmRlZlZhbHVlOjpnZXQoVmVj dG9yVHlwZTo6Z2V0KEVsZW1UeSwgRWxlbU5vLCBmYWxzZSkpOwotICAgICAgIFZhbHVlICppZHgg PSBDb25zdGFudEludDo6Z2V0KEludFR5LCBpKTsKLSAgICAgICB2ZWMgPSBJUkIuQ3JlYXRlSW5z ZXJ0RWxlbWVudCh0bXAsIEVsZW1lbnRzW2ldLCBpZHgpOwotICAgICAgIGlmICghS2VlcEluc2Vy dCAmJiAhaXNhPENvbnN0YW50Pih2ZWMpKSB7Ci1AQCAtMzczLDcgKzM3Myw3IEBAIHN0YXRpYyB2 b2lkIHVuaWZ5RWxlbWVudFR5cGUoSVJCdWlsZGVyPD4gJklSQiwgU21hbGxWZWN0b3I8VmFsdWUg KiwgMTY+ICZTcmMsIFNtCi0gICAgICAgYXNzZXJ0KChTaXplICUgTWluV2lkdGgpID09IDApOwot IAotICAgICAgIGlmIChTaXplID4gTWluV2lkdGgpIHsKLS0gICAgICAgIFZlY3RvclR5cGUgKlZl Y1R5ID0gVmVjdG9yVHlwZTo6Z2V0KEVsZW1UeSwgU2l6ZS9NaW5XaWR0aCk7Ci0rICAgICAgICBW ZWN0b3JUeXBlICpWZWNUeSA9IFZlY3RvclR5cGU6OmdldChFbGVtVHksIFNpemUvTWluV2lkdGgs IGZhbHNlKTsKLSAgICAgICAgIFZhbHVlICpDYXN0ZWQgPSBJUkIuQ3JlYXRlQml0Q2FzdChTcmNb aV0sIFZlY1R5KTsKLSAgICAgICAgIGZvciAodW5zaWduZWQgaiA9IDA7IGogPCBTaXplL01pbldp ZHRoOyBqKyspCi0gICAgICAgICAgIERzdC5wdXNoX2JhY2soSVJCLkNyZWF0ZUV4dHJhY3RFbGVt ZW50KENhc3RlZCwgQ29uc3RhbnRJbnQ6OmdldChJbnRUeSwgaikpKTsKLUBAIC00NjIsNyArNDYy LDcgQEAgc3RhdGljIHZvaWQgY29udmVydEluc3RydWN0aW9uKEluc3RydWN0aW9uICpJbnN0LCBD b252ZXJzaW9uU3RhdGUgJlN0YXRlLAotICAgICAgIHVuc2lnbmVkIEVsZW1ObyA9IFVuaWZpZWQu c2l6ZSgpOwotICAgICAgIFR5cGUgKkVsZW1UeSA9IFVuaWZpZWRbMF0tPmdldFR5cGUoKTsKLSAg ICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgRWxlbU5vOyArK2kpIHsKLS0gICAgICAgIFZh bHVlICp0bXAgPSB2ZWMgPyB2ZWMgOiBVbmRlZlZhbHVlOjpnZXQoVmVjdG9yVHlwZTo6Z2V0KEVs ZW1UeSwgRWxlbU5vKSk7Ci0rICAgICAgICBWYWx1ZSAqdG1wID0gdmVjID8gdmVjIDogVW5kZWZW YWx1ZTo6Z2V0KFZlY3RvclR5cGU6OmdldChFbGVtVHksIEVsZW1ObywgZmFsc2UpKTsKLSAgICAg ICAgIFZhbHVlICppZHggPSBDb25zdGFudEludDo6Z2V0KEludFR5LCBpKTsKLSAgICAgICAgIHZl YyA9IElSQi5DcmVhdGVJbnNlcnRFbGVtZW50KHRtcCwgVW5pZmllZFtpXSwgaWR4KTsKLSAgICAg ICB9Ci1kaWZmIC0tZ2l0IGJhY2tlbmQvc3JjL2xsdm0vbGx2bV9nZW5fYmFja2VuZC5jcHAgYmFj a2VuZC9zcmMvbGx2bS9sbHZtX2dlbl9iYWNrZW5kLmNwcAotaW5kZXggYzkzZDg5Y2MuLjY0ZDVi MGU1IDEwMDY0NAotLS0tIGEvYmFja2VuZC9zcmMvbGx2bS9sbHZtX2dlbl9iYWNrZW5kLmNwcAot KysrIGIvYmFja2VuZC9zcmMvbGx2bS9sbHZtX2dlbl9iYWNrZW5kLmNwcAotQEAgLTMwNCw3ICsz MDQsNyBAQCBuYW1lc3BhY2UgZ2JlCi0gICAgICAgVFlQRVNJWkVWRUMobG9uZyw4KQotICAgICAg IFRZUEVTSVpFVkVDKHVuc2lnbmVkIGxvbmcsOCkKLSAgICAgICBlbHNlewotLSAgICAgICAgU3Ry dWN0VHlwZSAqU3RyVHkgPSBNLT5nZXRUeXBlQnlOYW1lKCJzdHJ1Y3QuIituYW1lKTsKLSsgICAg ICAgIFN0cnVjdFR5cGUgKlN0clR5ID0gU3RydWN0VHlwZTo6Z2V0VHlwZUJ5TmFtZShNLT5nZXRD b250ZXh0KCksICJzdHJ1Y3QuIituYW1lKTsKLSAgICAgICAgIGlmKFN0clR5KQotICAgICAgICAg ICByZXR1cm4gZ2V0VHlwZUJ5dGVTaXplKHVuaXQsU3RyVHkpOwotICAgICAgIH0KLWRpZmYgLS1n aXQgYmFja2VuZC9zcmMvbGx2bS9sbHZtX2xvYWRzdG9yZV9vcHRpbWl6YXRpb24uY3BwIGJhY2tl bmQvc3JjL2xsdm0vbGx2bV9sb2Fkc3RvcmVfb3B0aW1pemF0aW9uLmNwcAotaW5kZXggNWFhMzhi ZWYuLjZiNWMxYmFkIDEwMDY0NAotLS0tIGEvYmFja2VuZC9zcmMvbGx2bS9sbHZtX2xvYWRzdG9y ZV9vcHRpbWl6YXRpb24uY3BwCi0rKysgYi9iYWNrZW5kL3NyYy9sbHZtL2xsdm1fbG9hZHN0b3Jl X29wdGltaXphdGlvbi5jcHAKLUBAIC0xNTIsNyArMTUyLDcgQEAgbmFtZXNwYWNlIGdiZSB7Ci0g ICAgIHVuc2lnbmVkIGFkZHJTcGFjZSA9IGxkLT5nZXRQb2ludGVyQWRkcmVzc1NwYWNlKCk7Ci0g ICAgIC8vIGluc2VydCBiZWZvcmUgZmlyc3QgbG9hZAotICAgICBCdWlsZGVyLlNldEluc2VydFBv aW50KGxkKTsKLS0gICAgVmVjdG9yVHlwZSAqdmVjVHkgPSBWZWN0b3JUeXBlOjpnZXQobGQtPmdl dFR5cGUoKSwgc2l6ZSk7Ci0rICAgIFZlY3RvclR5cGUgKnZlY1R5ID0gVmVjdG9yVHlwZTo6Z2V0 KGxkLT5nZXRUeXBlKCksIHNpemUsIGZhbHNlKTsKLSAgICAgVmFsdWUgKnZlY1B0ciA9IEJ1aWxk ZXIuQ3JlYXRlQml0Q2FzdChsZC0+Z2V0UG9pbnRlck9wZXJhbmQoKSwKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgUG9pbnRlclR5cGU6OmdldCh2ZWNUeSwgYWRkclNw YWNlKSk7Ci0gICAgIExvYWRJbnN0ICp2ZWNWYWx1ZSA9IEJ1aWxkZXIuQ3JlYXRlTG9hZCh2ZWNQ dHIpOwotQEAgLTIzNiw3ICsyMzYsNyBAQCBuYW1lc3BhY2UgZ2JlIHsKLSAgICAgQnVpbGRlci5T ZXRJbnNlcnRQb2ludChtZXJnZWRbc2l6ZS0xXSk7Ci0gCi0gICAgIFR5cGUgKmRhdGFUeSA9IHN0 LT5nZXRWYWx1ZU9wZXJhbmQoKS0+Z2V0VHlwZSgpOwotLSAgICBWZWN0b3JUeXBlICp2ZWNUeSA9 IFZlY3RvclR5cGU6OmdldChkYXRhVHksIHNpemUpOwotKyAgICBWZWN0b3JUeXBlICp2ZWNUeSA9 IFZlY3RvclR5cGU6OmdldChkYXRhVHksIHNpemUsIGZhbHNlKTsKLSAgICAgVmFsdWUgKiBwYXJl bnQgPSBVbmRlZlZhbHVlOjpnZXQodmVjVHkpOwotICAgICBmb3IodW5zaWduZWQgaSA9IDA7IGkg PCBzaXplOyBpKyspIHsKLSAgICAgICBwYXJlbnQgPSBCdWlsZGVyLkNyZWF0ZUluc2VydEVsZW1l bnQocGFyZW50LCB2YWx1ZXNbaV0sIENvbnN0YW50SW50OjpnZXQoSW50ZWdlclR5cGU6OmdldChz dC0+Z2V0Q29udGV4dCgpLCAzMiksIGkpKTsKLWRpZmYgLS1naXQgYmFja2VuZC9zcmMvbGx2bS9s bHZtX3ByaW50Zl9wYXJzZXIuY3BwIGJhY2tlbmQvc3JjL2xsdm0vbGx2bV9wcmludGZfcGFyc2Vy LmNwcAotaW5kZXggNmJiN2M1MmEuLmFmNDU5Y2QyIDEwMDY0NAotLS0tIGEvYmFja2VuZC9zcmMv bGx2bS9sbHZtX3ByaW50Zl9wYXJzZXIuY3BwCi0rKysgYi9iYWNrZW5kL3NyYy9sbHZtL2xsdm1f cHJpbnRmX3BhcnNlci5jcHAKLUBAIC02MzAsNyArNjMwLDcgQEAgZXJyb3I6Ci0gICAgICAgICAg ICAgaWYgKGVsdF90eXBlICE9IGVsdF9kc3RfdHlwZSkgewotICAgICAgICAgICAgICAgVmFsdWUg KklJID0gTlVMTDsKLSAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdmVjX251bTsg aSsrKSB7Ci0tICAgICAgICAgICAgICAgIFZhbHVlICp2ZWMgPSBJSSA/IElJIDogVW5kZWZWYWx1 ZTo6Z2V0KFZlY3RvclR5cGU6OmdldChlbHRfZHN0X3R5cGUsIHZlY19udW0pKTsKLSsgICAgICAg ICAgICAgICAgVmFsdWUgKnZlYyA9IElJID8gSUkgOiBVbmRlZlZhbHVlOjpnZXQoVmVjdG9yVHlw ZTo6Z2V0KGVsdF9kc3RfdHlwZSwgdmVjX251bSwgZmFsc2UpKTsKLSAgICAgICAgICAgICAgICAg VmFsdWUgKmN2ID0gQ29uc3RhbnRJbnQ6OmdldChUeXBlOjpnZXRJbnQzMlR5KGVsdF90eXBlLT5n ZXRDb250ZXh0KCkpLCBpKTsKLSAgICAgICAgICAgICAgICAgVmFsdWUgKm9yZyA9IGJ1aWxkZXIt PkNyZWF0ZUV4dHJhY3RFbGVtZW50KGFyZywgY3YpOwotICAgICAgICAgICAgICAgICBWYWx1ZSAq Y3Z0ID0gYnVpbGRlci0+Q3JlYXRlSW50Q2FzdChvcmcsIGVsdF9kc3RfdHlwZSwgc2lnbik7Ci1A QCAtNjU4LDcgKzY1OCw3IEBAIGVycm9yOgotICAgICAgICAgICAgIGlmIChlbHRfdHlwZS0+Z2V0 VHlwZUlEKCkgIT0gVHlwZTo6RmxvYXRUeUlEKSB7Ci0gICAgICAgICAgICAgICBWYWx1ZSAqSUkg PSBOVUxMOwotICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB2ZWNfbnVtOyBpKysp IHsKLS0gICAgICAgICAgICAgICAgVmFsdWUgKnZlYyA9IElJID8gSUkgOiBVbmRlZlZhbHVlOjpn ZXQoVmVjdG9yVHlwZTo6Z2V0KFR5cGU6OmdldEZsb2F0VHkoZWx0X3R5cGUtPmdldENvbnRleHQo KSksIHZlY19udW0pKTsKLSsgICAgICAgICAgICAgICAgVmFsdWUgKnZlYyA9IElJID8gSUkgOiBV bmRlZlZhbHVlOjpnZXQoVmVjdG9yVHlwZTo6Z2V0KFR5cGU6OmdldEZsb2F0VHkoZWx0X3R5cGUt PmdldENvbnRleHQoKSksIHZlY19udW0sIGZhbHNlKSk7Ci0gICAgICAgICAgICAgICAgIFZhbHVl ICpjdiA9IENvbnN0YW50SW50OjpnZXQoVHlwZTo6Z2V0SW50MzJUeShlbHRfdHlwZS0+Z2V0Q29u dGV4dCgpKSwgaSk7Ci0gICAgICAgICAgICAgICAgIFZhbHVlICpvcmcgPSBidWlsZGVyLT5DcmVh dGVFeHRyYWN0RWxlbWVudChhcmcsIGN2KTsKLSAgICAgICAgICAgICAgICAgVmFsdWUqIGN2dCAg PSBidWlsZGVyLT5DcmVhdGVGUENhc3Qob3JnLCBUeXBlOjpnZXRGbG9hdFR5KG1vZHVsZS0+Z2V0 Q29udGV4dCgpKSk7Ci1kaWZmIC0tZ2l0IGJhY2tlbmQvc3JjL2xsdm0vbGx2bV90b19nZW4uY3Bw IGJhY2tlbmQvc3JjL2xsdm0vbGx2bV90b19nZW4uY3BwCi1pbmRleCA3ZjdkZWZmZS4uOWU4Y2Nj NjcgMTAwNjQ0Ci0tLS0gYS9iYWNrZW5kL3NyYy9sbHZtL2xsdm1fdG9fZ2VuLmNwcAotKysrIGIv YmFja2VuZC9zcmMvbGx2bS9sbHZtX3RvX2dlbi5jcHAKLUBAIC0zNTgsNyArMzU4LDcgQEAgbmFt ZXNwYWNlIGdiZQotICAgICBwYXNzZXMuYWRkKGNyZWF0ZVNjYWxhclJlcGxBZ2dyZWdhdGVzUGFz cyg2NCwgdHJ1ZSwgLTEsIC0xLCA2NCkpOwotICNlbmRpZgotICAgICBwYXNzZXMuYWRkKGNyZWF0 ZUxvYWRTdG9yZU9wdGltaXphdGlvblBhc3MoKSk7Ci0tICAgIHBhc3Nlcy5hZGQoY3JlYXRlQ29u c3RhbnRQcm9wYWdhdGlvblBhc3MoKSk7Ci0rICAgIC8vcGFzc2VzLmFkZChjcmVhdGVDb25zdGFu dFByb3BhZ2F0aW9uUGFzcygpKTsKLSAgICAgcGFzc2VzLmFkZChjcmVhdGVQcm9tb3RlTWVtb3J5 VG9SZWdpc3RlclBhc3MoKSk7Ci0gICAgIGlmKG9wdExldmVsID4gMCkKLSAgICAgICBwYXNzZXMu YWRkKGNyZWF0ZUdWTlBhc3MoKSk7ICAgICAgICAgICAgICAgICAvLyBSZW1vdmUgcmVkdW5kYW5j aWVzCi1AQCAtMzY3LDExICszNjcsMTEgQEAgbmFtZXNwYWNlIGdiZQotICAgICBwYXNzZXMuYWRk KGNyZWF0ZVNjYWxhcml6ZVBhc3MoKSk7ICAgICAgICAgICAgIC8vIEV4cGFuZCBhbGwgdmVjdG9y IG9wcwotICAgICBwYXNzZXMuYWRkKGNyZWF0ZUV4cGFuZExhcmdlSW50ZWdlcnNQYXNzKCkpOyAg IC8vIGxlZ2FsaXplIGxhcmdlIGludGVnZXIgb3BlcmF0aW9uCi0gICAgIHBhc3Nlcy5hZGQoY3Jl YXRlSW5zdHJ1Y3Rpb25Db21iaW5pbmdQYXNzKCkpOyAgLy8gbGVnYWxpemUgd2lsbCBnZW5lcmF0 ZSBzb21lIHNpbGx5IGluc3RydWN0aW9ucwotLSAgICBwYXNzZXMuYWRkKGNyZWF0ZUNvbnN0YW50 UHJvcGFnYXRpb25QYXNzKCkpOyAgIC8vIHByb3BhZ2F0ZSBjb25zdGFudCBhZnRlciBzY2FsYXJp emUvbGVnYWxpemUKLSsgICAgLy9wYXNzZXMuYWRkKGNyZWF0ZUNvbnN0YW50UHJvcGFnYXRpb25Q YXNzKCkpOyAgIC8vIHByb3BhZ2F0ZSBjb25zdGFudCBhZnRlciBzY2FsYXJpemUvbGVnYWxpemUK LSAgICAgcGFzc2VzLmFkZChjcmVhdGVFeHBhbmRDb25zdGFudEV4cHJQYXNzKCkpOyAgICAvLyBj b25zdGFudCBwcm9wIG1heSBnZW5lcmF0ZSBDb25zdGFudEV4cHIKLSAgICAgcGFzc2VzLmFkZChj cmVhdGVQcm9tb3RlSW50ZWdlcnNQYXNzKCkpOyAgICAgICAvLyBhbGlnbiBpbnRlZ2VyIHNpemUg dG8gcG93ZXIgb2YgdHdvCi0gICAgIHBhc3Nlcy5hZGQoY3JlYXRlUmVtb3ZlR0VQUGFzcyh1bml0 KSk7ICAgICAgICAgLy8gQ29uc3RhbnQgcHJvcCBtYXkgZ2VuZXJhdGUgZ2VwCi0tICAgIHBhc3Nl cy5hZGQoY3JlYXRlRGVhZEluc3RFbGltaW5hdGlvblBhc3MoKSk7ICAgLy8gUmVtb3ZlIHNpbXBs aWZpZWQgaW5zdHJ1Y3Rpb25zCi0rICAgIC8vcGFzc2VzLmFkZChjcmVhdGVEZWFkSW5zdEVsaW1p bmF0aW9uUGFzcygpKTsgICAvLyBSZW1vdmUgc2ltcGxpZmllZCBpbnN0cnVjdGlvbnMKLSAgICAg cGFzc2VzLmFkZChjcmVhdGVDRkdTaW1wbGlmaWNhdGlvblBhc3MoKSk7ICAgICAvLyBNZXJnZSAm IHJlbW92ZSBCQnMKLSAgICAgcGFzc2VzLmFkZChjcmVhdGVMb3dlclN3aXRjaFBhc3MoKSk7ICAg ICAgICAgICAvLyBzaW1wbGlmeSBjZmcgd2lsbCBnZW5lcmF0ZSBzd2l0Y2gtY2FzZSBpbnN0cnVj dGlvbgotICAgICBpZiAocHJvZmlsaW5nKSB7CmRpZmYgLS1naXQgYS9zcmNwa2dzL2JlaWduZXQv cGF0Y2hlcy9tdXNsLnBhdGNoIGIvc3JjcGtncy9iZWlnbmV0L3BhdGNoZXMvbXVzbC5wYXRjaApk ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2VmYWZiYjY1NTg4Li4wMDAwMDAwMDAwMDAK LS0tIGEvc3JjcGtncy9iZWlnbmV0L3BhdGNoZXMvbXVzbC5wYXRjaAorKysgL2Rldi9udWxsCkBA IC0xLDExICswLDAgQEAKLS0tLSBhL2JhY2tlbmQvc3JjL2JhY2tlbmQvZ2VuL2dlbl9tZXNhX2Rp c2FzbS5jCi0rKysgYi9iYWNrZW5kL3NyYy9iYWNrZW5kL2dlbi9nZW5fbWVzYV9kaXNhc20uYwot QEAgLTExMzcsNyArMTEzNyw3IEBAIHN0YXRpYyB1aW50MzJfdCBfX2NvbnZfaGFsZl90b19mbG9h dCh1aW50MTZfdCBoKQotICAgICAgIC8vIEFkanVzdCBtYW50aXNzYSBzbyBpdCdzIG5vcm1hbGl6 ZWQgKGFuZCBrZWVwCi0gICAgICAgLy8gdHJhY2sgb2YgZXhwb25lbnQgYWRqdXN0bWVudCkKLSAg ICAgICBpbnQgZSA9IC0xOwotLSAgICAgIHVpbnQgbSA9IGkubWFudGlzc2E7Ci0rICAgICAgdW5z aWduZWQgaW50IG0gPSBpLm1hbnRpc3NhOwotICAgICAgIGRvIHsKLSAgICAgICAgIGUrKzsKLSAg ICAgICAgIG0gPDw9IDE7CmRpZmYgLS1naXQgYS9zcmNwa2dzL2JlaWduZXQvdGVtcGxhdGUgYi9z cmNwa2dzL2JlaWduZXQvdGVtcGxhdGUKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRj ZTZiYmI3YWUyNC4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvYmVpZ25ldC90ZW1wbGF0ZQor KysgL2Rldi9udWxsCkBAIC0xLDIyICswLDAgQEAKLSMgVGVtcGxhdGUgZmlsZSBmb3IgJ2JlaWdu ZXQnCi1wa2duYW1lPWJlaWduZXQKLXZlcnNpb249MS4zLjIKLXJldmlzaW9uPTEwCi1hcmNocz0i aTY4NiogeDg2XzY0KiIKLXdya3NyYz0iQmVpZ25ldC0ke3ZlcnNpb259LVNvdXJjZSIKLWJ1aWxk X3N0eWxlPWNtYWtlCi1ob3N0bWFrZWRlcGVuZHM9ImNsYW5nIGxsdm0gcGtnLWNvbmZpZyIKLW1h a2VkZXBlbmRzPSJNZXNhTGliLWRldmVsIGxpYmVkaXQtZGV2ZWwgbGliZmZpLWRldmVsIG9jbC1p Y2QtZGV2ZWwgemxpYi1kZXZlbAotIGxpYlhmaXhlcy1kZXZlbCIKLWRlcGVuZHM9Im9jbC1pY2Qi Ci1zaG9ydF9kZXNjPSJCZWlnbmV0IEdQR1BVIFN5c3RlbSBmb3IgSW50ZWwgR1BVcyIKLW1haW50 YWluZXI9Ik9ycGhhbmVkIDxvcnBoYW5Adm9pZGxpbnV4Lm9yZz4iCi1saWNlbnNlPSJMR1BMLTIu MS1vci1sYXRlciIKLWhvbWVwYWdlPSJodHRwOi8vd3d3LmZyZWVkZXNrdG9wLm9yZy93aWtpL1Nv ZnR3YXJlL0JlaWduZXQvIgotZGlzdGZpbGVzPSJodHRwczovLzAxLm9yZy9zaXRlcy9kZWZhdWx0 L2ZpbGVzLyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS1zb3VyY2UudGFyLmd6IgotY2hlY2tzdW09YzU1 NWVkYmExNDlkZTIzMjQzOTY1YTcwM2YzOWY3OWZhMDZmMTViY2ZmNWEzNzYyYjU1NDRiMDkyNTAx MGI0MwotCi1wb3N0X2luc3RhbGwoKSB7Ci0JIyByZW1vdmUgQ0wgaGVhZGVycywgd2UgZG8gdXNl IG9wZW5jbC1oZWFkZXJzIGluc3RlYWQuCi0Jcm0gLXIgJHtERVNURElSfS91c3IvaW5jbHVkZQot fQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9iZWlnbmV0L3VwZGF0ZSBiL3NyY3BrZ3MvYmVpZ25ldC91 cGRhdGUKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNhNDFlMGFmZTYwYy4uMDAwMDAw MDAwMDAwCi0tLSBhL3NyY3BrZ3MvYmVpZ25ldC91cGRhdGUKKysrIC9kZXYvbnVsbApAQCAtMSAr MCwwIEBACi1zaXRlPSJodHRwczovLzAxLm9yZy9iZWlnbmV0L2Rvd25sb2FkcyIKZGlmZiAtLWdp dCBhL3NyY3BrZ3MvcmVtb3ZlZC1wYWNrYWdlcy90ZW1wbGF0ZSBiL3NyY3BrZ3MvcmVtb3ZlZC1w YWNrYWdlcy90ZW1wbGF0ZQppbmRleCAwOTIzYzUzY2ZjMDUuLmQ1OWJkMjBmODIwYyAxMDA2NDQK LS0tIGEvc3JjcGtncy9yZW1vdmVkLXBhY2thZ2VzL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvcmVt b3ZlZC1wYWNrYWdlcy90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBm b3IgJ3JlbW92ZWQtcGFja2FnZXMnCiBwa2duYW1lPXJlbW92ZWQtcGFja2FnZXMKIHZlcnNpb249 MC4xCi1yZXZpc2lvbj02OQorcmV2aXNpb249NzAKIGJ1aWxkX3N0eWxlPW1ldGEKIHNob3J0X2Rl c2M9IlVuaW5zdGFsbHMgcGFja2FnZXMgcmVtb3ZlZCBmcm9tIHJlcG9zaXRvcnkiCiBtYWludGFp bmVyPSJQaW90ciBXw7NqY2lrIDxjaG9jaW1pZXJAdGxlbi5wbD4iCkBAIC0yNSw2ICsyNSw3IEBA IHJlcGxhY2VzPSIKICBhdG9tPD0xLjQ0LjBfMQogIGF2b2dhZHJvLWRldmVsPD0xLjIuMF84CiAg YXZvZ2Fkcm88PTEuMi4wXzgKKyBiZWlnbmV0PD0xLjMuMl8xMAogIGJva2tlbjw9MS44XzMKICBi b21pPD0wLjkuMTFfMTcKICBidXJwLWNsaWVudDw9MS40LjQwXzEzCgpGcm9tIDk3MzM4ZWY2ODIx OWI3ZDU5MGJkMTBlZGMyM2JmODgyZTZkMmQ5Y2IgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206IHByZXogPHByZXpAbmF0aW9uYWwuc2hpdHBvc3RpbmcuYWdlbmN5PgpEYXRlOiBNb24sIDIg TWF5IDIwMjIgMTk6MDc6MzggKzAyMDAKU3ViamVjdDogW1BBVENIIDIxLzI5XSBsZGM6IHJlYnVp bGQgZm9yIGxsdm0xNAoKLS0tCiBzcmNwa2dzL2xkYy90ZW1wbGF0ZSB8IDIgKy0KIDEgZmlsZSBj aGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3NyY3Br Z3MvbGRjL3RlbXBsYXRlIGIvc3JjcGtncy9sZGMvdGVtcGxhdGUKaW5kZXggYTI3MjgwZGRlM2I4 Li5lMjFiYzY1NTVlMzggMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvbGRjL3RlbXBsYXRlCisrKyBiL3Ny Y3BrZ3MvbGRjL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAn bGRjJwogcGtnbmFtZT1sZGMKIHZlcnNpb249MS4yOC4wCi1yZXZpc2lvbj0xCityZXZpc2lvbj0y CiB3cmtzcmM9ImxkYy0ke3ZlcnNpb259LXNyYyIKIGJ1aWxkX3N0eWxlPWNtYWtlCiBjb25maWd1 cmVfYXJncz0iCgpGcm9tIDU0MmY1YzVlZTVkMTg3YzQ2NWE2NDkwYWYwNWMxMTMzZmU3MDE3MjMg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IHByZXogPHByZXpAbmF0aW9uYWwuc2hpdHBv c3RpbmcuYWdlbmN5PgpEYXRlOiBNb24sIDIgTWF5IDIwMjIgMjI6MzE6MjUgKzAyMDAKU3ViamVj dDogW1BBVENIIDIyLzI5XSBsZGM6IHVwZGF0ZSB0byAxLjI5LjAuCgotLS0KIHNyY3BrZ3MvbGRj L3RlbXBsYXRlIHwgOCArKysrLS0tLQogMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwg NCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xkYy90ZW1wbGF0ZSBiL3NyY3Br Z3MvbGRjL3RlbXBsYXRlCmluZGV4IGUyMWJjNjU1NWUzOC4uMWQ3MmE4ODA1ZWI2IDEwMDY0NAot LS0gYS9zcmNwa2dzL2xkYy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2xkYy90ZW1wbGF0ZQpAQCAt MSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2xkYycKIHBrZ25hbWU9bGRjCi12ZXJz aW9uPTEuMjguMAotcmV2aXNpb249MgordmVyc2lvbj0xLjI5LjAKK3JldmlzaW9uPTEKIHdya3Ny Yz0ibGRjLSR7dmVyc2lvbn0tc3JjIgogYnVpbGRfc3R5bGU9Y21ha2UKIGNvbmZpZ3VyZV9hcmdz PSIKQEAgLTExLDcgKzExLDcgQEAgY29uZmlndXJlX2FyZ3M9IgogIC1EQkFTSF9DT01QTEVUSU9O X0NPTVBMRVRJT05TRElSPS91c3Ivc2hhcmUvYmFzaC1jb21wbGV0aW9uCiAgLURDX1NZU1RFTV9M SUJTPSd1bndpbmQ7bTtwdGhyZWFkO3J0O2RsJyIKIGNvbmZfZmlsZXM9Ii9ldGMvbGRjMi5jb25m IgotaG9zdG1ha2VkZXBlbmRzPSJkbWQgbGx2bTEyIHBlcmwgcGtnLWNvbmZpZyIKK2hvc3RtYWtl ZGVwZW5kcz0iZG1kIGxsdm0xNCBwZXJsIHBrZy1jb25maWciCiBtYWtlZGVwZW5kcz0ibGliY3Vy bC1kZXZlbCBsaWJmZmktZGV2ZWwgbmN1cnNlcy1kZXZlbCB6bGliLWRldmVsCiAgbGx2bS1saWJ1 bndpbmQtZGV2ZWwiCiBkZXBlbmRzPSJsZGMtcnVudGltZSBsbHZtLWxpYnVud2luZC1kZXZlbCIK QEAgLTIyLDcgKzIyLDcgQEAgbGljZW5zZT0iQlNELTMtQ2xhdXNlLCBCU0wtMS4wIgogaG9tZXBh Z2U9Imh0dHBzOi8vd2lraS5kbGFuZy5vcmcvTERDIgogY2hhbmdlbG9nPSJodHRwczovL3Jhdy5n aXRodWJ1c2VyY29udGVudC5jb20vbGRjLWRldmVsb3BlcnMvbGRjL21hc3Rlci9DSEFOR0VMT0cu bWQiCiBkaXN0ZmlsZXM9Imh0dHBzOi8vZ2l0aHViLmNvbS9sZGMtZGV2ZWxvcGVycy9sZGMvcmVs ZWFzZXMvZG93bmxvYWQvdiR7dmVyc2lvbn0vbGRjLSR7dmVyc2lvbn0tc3JjLnRhci5neiIKLWNo ZWNrc3VtPTE3ZmVlOGJiNTM1YmNiOGNkYTBhNDU5NDc1MjY1NTVjNDZjMDQ1ZjMwMmE3MzQ5Y2M4 NzExYjI1NGU1NGNmMDkKK2NoZWNrc3VtPWQwYzA2NmViOTY1NDY3NjI1ZDljNWU3NWMwMGM1ODM0 NTFiOWZmYTM2MzYwMWY5ZTM3Mjc1Y2E4YThhZWExNDAKIG5vcGllPXllcwogbm9jcm9zcz0iZG1k IGNvbXBpbGF0aW9uIGZhaWxzIG9uIGNyb3NzIgogIyB0ZXN0cyB0aW1lb3V0IG9uIG11c2w7IGFs c28gcmVxdWlyZSB1bnBhY2thZ2VkIHB5dGhvbjMtbGl0CgpGcm9tIGFlZGJmYTE5NjcxODQ3NDRj ZjY4YjM4YmI5YjYxY2M4YzZkZjZjNWMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IHBy ZXogPHByZXpAbmF0aW9uYWwuc2hpdHBvc3RpbmcuYWdlbmN5PgpEYXRlOiBNb24sIDIgTWF5IDIw MjIgMTk6MDc6NDAgKzAyMDAKU3ViamVjdDogW1BBVENIIDIzLzI5XSBpbmNsdWRlLXdoYXQteW91 LXVzZTogdXBkYXRlIHRvIDAuMTguCgotLS0KIHNyY3BrZ3MvaW5jbHVkZS13aGF0LXlvdS11c2Uv dGVtcGxhdGUgfCA0ICsrLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9pbmNsdWRlLXdoYXQteW91LXVzZS90ZW1w bGF0ZSBiL3NyY3BrZ3MvaW5jbHVkZS13aGF0LXlvdS11c2UvdGVtcGxhdGUKaW5kZXggYjEzYmI3 ZWU1NmFmLi4yOTc2NjlmNjA0NTkgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvaW5jbHVkZS13aGF0LXlv dS11c2UvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9pbmNsdWRlLXdoYXQteW91LXVzZS90ZW1wbGF0 ZQpAQCAtMSw2ICsxLDYgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2luY2x1ZGUtd2hhdC15b3Ut dXNlJwogcGtnbmFtZT1pbmNsdWRlLXdoYXQteW91LXVzZQotdmVyc2lvbj0wLjE2Cit2ZXJzaW9u PTAuMTgKIHJldmlzaW9uPTEKIHdya3NyYz0iJHtwa2duYW1lfSIKIGJ1aWxkX3N0eWxlPWNtYWtl CkBAIC0xMiw3ICsxMiw3IEBAIG1haW50YWluZXI9IkxlYWggTmV1a2lyY2hlbiA8bGVhaEB2dXh1 Lm9yZz4iCiBsaWNlbnNlPSJOQ1NBIgogaG9tZXBhZ2U9Imh0dHBzOi8vaW5jbHVkZS13aGF0LXlv dS11c2Uub3JnLyIKIGRpc3RmaWxlcz0iaHR0cHM6Ly9pbmNsdWRlLXdoYXQteW91LXVzZS5vcmcv ZG93bmxvYWRzLyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS5zcmMudGFyLmd6IgotY2hlY2tzdW09OGQ2 ZmM5YjI1NTM0M2JjMWU1ZWM0NTllMzk1MTJkZjFkNTFjNjBlMDM1NjI5ODVlMDA3NjAzNjExOWZm NWExYworY2hlY2tzdW09OTEwMmZjODQxOTI5NDc1N2RmODZhODljZTZlYzMwNWY4ZDkwYTgxOGQx ZjI1OThhMTM5ZDE1ZWIxODk0YjhmMwogcHl0aG9uX3ZlcnNpb249MwogCiBwb3N0X2luc3RhbGwo KSB7CgpGcm9tIDdiYjdlMDk5ODU5NGMwODUzZTk4YzNiZmU4ODU3YzFkZWI3ZjllNDUgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IHByZXogPHByZXpAbmF0aW9uYWwuc2hpdHBvc3Rpbmcu YWdlbmN5PgpEYXRlOiBNb24sIDIgTWF5IDIwMjIgMjE6MTg6MjQgKzAyMDAKU3ViamVjdDogW1BB VENIIDI0LzI5XSBTUElSVi1MTFZNLVRyYW5zbGF0b3I6IHVwZGF0ZSB0byAxNC4wLjAuCgotLS0K IGNvbW1vbi9zaGxpYnMgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDEgKwogc3JjcGtncy9T UElSVi1MTFZNLVRyYW5zbGF0b3IvdGVtcGxhdGUgfCAxMSArKysrKystLS0tLQogMiBmaWxlcyBj aGFuZ2VkLCA3IGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvY29t bW9uL3NobGlicyBiL2NvbW1vbi9zaGxpYnMKaW5kZXggODZmNGM5MDYwZDNiLi5kZjNlYjc5Zjky MWMgMTAwNjQ0Ci0tLSBhL2NvbW1vbi9zaGxpYnMKKysrIGIvY29tbW9uL3NobGlicwpAQCAtOTgz LDYgKzk4Myw3IEBAIGxpYmNsYW5nLWNwcC5zby4xNCBsaWJjbGFuZy1jcHAtMTQuMC4zXzEKIGxp YkxMVk0tMTEuc28gbGlibGx2bTExLTExLjAuMF8xCiBsaWJMTFZNLTEyLnNvIGxpYmxsdm0xMi0x Mi4wLjBfMQogbGliTExWTS0xNC5zbyBsaWJsbHZtMTQtMTQuMC4zXzEKK2xpYkxMVk1TUElSVkxp Yi5zby4xNCBTUElSVi1MTFZNLVRyYW5zbGF0b3ItMTQuMC4wXzEKIGxpYmlzb2ZzLnNvLjYgbGli aXNvZnMtMC42LjI0XzEKIGxpYm1wYWNrLnNvLjAgbGlibXBhY2stMS4wLjVfMQogbGliR2VvSVAu c28uMSBsaWJnZW9pcC0xLjQuOF8xCmRpZmYgLS1naXQgYS9zcmNwa2dzL1NQSVJWLUxMVk0tVHJh bnNsYXRvci90ZW1wbGF0ZSBiL3NyY3BrZ3MvU1BJUlYtTExWTS1UcmFuc2xhdG9yL3RlbXBsYXRl CmluZGV4IDI1MDRjYWJlZDM2Ny4uMjI3N2QwNjJkOTkyIDEwMDY0NAotLS0gYS9zcmNwa2dzL1NQ SVJWLUxMVk0tVHJhbnNsYXRvci90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL1NQSVJWLUxMVk0tVHJh bnNsYXRvci90ZW1wbGF0ZQpAQCAtMSwxOSArMSwyMCBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAn U1BJUlYtTExWTS1UcmFuc2xhdG9yJwogcGtnbmFtZT1TUElSVi1MTFZNLVRyYW5zbGF0b3IKLXZl cnNpb249MTIuMC4wCit2ZXJzaW9uPTE0LjAuMAogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9Y21h a2UKIG1ha2VfYnVpbGRfYXJncz0ibGx2bS1zcGlydiIKLWNvbmZpZ3VyZV9hcmdzPSItV25vLWRl diAtRExMVk1fTElOS19MTFZNX0RZTElCPU9OIC1EQ01BS0VfU0tJUF9SUEFUSD1PTgotIC1ETExW TV9TUElSVl9JTkNMVURFX1RFU1RTPU9GRiAtREJVSUxEX1NIQVJFRF9MSUJTPU9OIgorY29uZmln dXJlX2FyZ3M9Ii1EQlVJTERfU0hBUkVEX0xJQlM9T04gLURDTUFLRV9CVUlMRF9UWVBFPVJlbGVh c2UKKyAtRENNQUtFX1BPU0lUSU9OX0lOREVQRU5ERU5UX0NPREU9T04gLURDTUFLRV9TS0lQX1JQ QVRIPU9OIC1ETExWTV9JTkNMVURFX1RFU1RTPU9GRgorIC1ETExWTV9MSU5LX0xMVk1fRFlMSUI9 T04gLURMTFZNX0VYVEVSTkFMX0xJVD0vdXNyL2Jpbi9saXQgLVduby1kZXYgLURMTFZNX0VYVEVS TkFMX1NQSVJWX0hFQURFUlNfU09VUkNFX0RJUj0vdXNyL2luY2x1ZGUvc3BpcnYvICIKIGhvc3Rt YWtlZGVwZW5kcz0iY2xhbmcgY2xhbmctdG9vbHMtZXh0cmEgbGx2bSIKLW1ha2VkZXBlbmRzPSJs bHZtIgorbWFrZWRlcGVuZHM9Imxsdm0gU1BJUlYtSGVhZGVycyIKIHNob3J0X2Rlc2M9IkFQSSBh bmQgY29tbWFuZHMgZm9yIHByb2Nlc3NpbmcgU1BJUi1WIG1vZHVsZXMiCiBtYWludGFpbmVyPSJP cnBoYW5lZCA8b3JwaGFuQHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iTkNTQSIKIGhvbWVwYWdl PSJodHRwczovL2dpdGh1Yi5jb20vS2hyb25vc0dyb3VwL1NQSVJWLUxMVk0tVHJhbnNsYXRvciIK IGRpc3RmaWxlcz0iaHR0cHM6Ly9naXRodWIuY29tL0tocm9ub3NHcm91cC8ke3BrZ25hbWV9L2Fy Y2hpdmUvcmVmcy90YWdzL3Yke3ZlcnNpb259LnRhci5neiIKLWNoZWNrc3VtPTZlNGZhZDA0MjAz ZjI1ZmNkZTRjMzA4YzUzZTlmNTliZDA1YTM5MDk3ODk5MmRiMzIxMmQ0YjYzYWZmNjIxMDgKK2No ZWNrc3VtPTFhZmM1MmJiNGUzOWFlYjliNWI2OTMyNGEyMDFjODFiZDk4NjM2NGYzNDdiNTU5OTk1 ZWZmNmZkNmYwMTMzMTgKIG1ha2VfY2hlY2s9bm8KIAogcG9zdF9pbnN0YWxsKCkgewoKRnJvbSBj ZGRmYTAwZGQxZWQ4MzAxMDVjYTZkODQ4MGUwODY3ODJmNzRiNzk1IE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQpGcm9tOiBwcmV6IDxwcmV6QG5hdGlvbmFsLnNoaXRwb3N0aW5nLmFnZW5jeT4KRGF0 ZTogTW9uLCAyIE1heSAyMDIyIDIxOjE3OjI5ICswMjAwClN1YmplY3Q6IFtQQVRDSCAyNS8yOV0g U1BJUlYtSGVhZGVyczogdXBkYXRlIHRvIDEuMy4yMTEuMC4KCi0tLQogc3JjcGtncy9TUElSVi1I ZWFkZXJzL3RlbXBsYXRlIHwgOCArKysrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9u cygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL1NQSVJWLUhlYWRlcnMv dGVtcGxhdGUgYi9zcmNwa2dzL1NQSVJWLUhlYWRlcnMvdGVtcGxhdGUKaW5kZXggNWRjZjQ1N2Mw NGM3Li5jZTgyODgxNzRlNDggMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvU1BJUlYtSGVhZGVycy90ZW1w bGF0ZQorKysgYi9zcmNwa2dzL1NQSVJWLUhlYWRlcnMvdGVtcGxhdGUKQEAgLTEsMTEgKzEsMTMg QEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ1NQSVJWLUhlYWRlcnMnCiBwa2duYW1lPVNQSVJWLUhl YWRlcnMKLXZlcnNpb249MS41LjQucmF5dHJhY2luZy5maXhlZAordmVyc2lvbj0xLjMuMjExLjAK IHJldmlzaW9uPTEKK3JldmVydHM9IjEuNS40LnJheXRyYWNpbmcuZml4ZWQiCit3cmtzcmM9JHtw a2duYW1lfS1zZGstJHt2ZXJzaW9ufQogYnVpbGRfc3R5bGU9Y21ha2UKIHNob3J0X2Rlc2M9Ik1h Y2hpbmUtcmVhZGFibGUgZmlsZXMgZm9yIHRoZSBTUElSLVYgUmVnaXN0cnkiCiBtYWludGFpbmVy PSJPcnBoYW5lZCA8b3JwaGFuQHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTMuMC1vci1s YXRlciIKIGhvbWVwYWdlPSJodHRwczovL2dpdGh1Yi5jb20vS2hyb25vc0dyb3VwL1NQSVJWLUhl YWRlcnMiCi1kaXN0ZmlsZXM9Imh0dHBzOi8vZ2l0aHViLmNvbS9LaHJvbm9zR3JvdXAvU1BJUlYt SGVhZGVycy9hcmNoaXZlLyR7dmVyc2lvbn0udGFyLmd6IgotY2hlY2tzdW09ZGYyYWQyNTIwYmU0 ZDk1YTQ3OWZhMjQ4OTIxMDY1ODg1YmJmNDM1YTY1ODM0OWE3ZmMxNjRhZDdiMjZiNjhjNgorZGlz dGZpbGVzPSJodHRwczovL2dpdGh1Yi5jb20vS2hyb25vc0dyb3VwL1NQSVJWLUhlYWRlcnMvYXJj aGl2ZS9zZGstJHt2ZXJzaW9ufS50YXIuZ3oiCitjaGVja3N1bT0zMGE3OGU2MWJkODEyYzc1ZTA5 ZmRjN2EzMTlhZjIwNmIxMDQ0NTM2MzI2YmMzZTg1ZmVhODE4Mzc2YTEyNTY4CgpGcm9tIGY2NWUy ODkxNDBiZDQ3YTQ5MmU4ODQyOWJlN2Y1YmZjN2QyNTIxMzUgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCkZyb206IHByZXogPHByZXpAbmF0aW9uYWwuc2hpdHBvc3RpbmcuYWdlbmN5PgpEYXRlOiBN b24sIDIgTWF5IDIwMjIgMjE6MzU6NDMgKzAyMDAKU3ViamVjdDogW1BBVENIIDI2LzI5XSBpc3Bj OiB1cGRhdGUgdG8gMS4xNy4wLgoKLS0tCiAuLi4vaXNwYy9wYXRjaGVzL2NtYWtlLWJ1aWxkLXR5 cGUtbm9uZS5wYXRjaCAgfCAgIDE4IC0KIHNyY3BrZ3MvaXNwYy9wYXRjaGVzL2xsdm0xMi0wMDEu cGF0Y2ggICAgICAgICB8ICAgNTcgLQogc3JjcGtncy9pc3BjL3BhdGNoZXMvbGx2bTEyLTAwMi5w YXRjaCAgICAgICAgIHwgIDkyMyAtLS0tLS0tLQogc3JjcGtncy9pc3BjL3BhdGNoZXMvbGx2bTEy LTAwMy5wYXRjaCAgICAgICAgIHwgMTUwNCAtLS0tLS0tLS0tLS0KIHNyY3BrZ3MvaXNwYy9wYXRj aGVzL2xsdm0xMi0wMDQucGF0Y2ggICAgICAgICB8ICAgMzQgLQogc3JjcGtncy9pc3BjL3BhdGNo ZXMvbGx2bTEyLTAwNS5wYXRjaCAgICAgICAgIHwgIDM3MiAtLS0KIHNyY3BrZ3MvaXNwYy9wYXRj aGVzL2xsdm0xMi0wMDYucGF0Y2ggICAgICAgICB8ICAxMjYgLQogc3JjcGtncy9pc3BjL3BhdGNo ZXMvbGx2bTEyLTAwNy5wYXRjaCAgICAgICAgIHwgIDE2MCAtLQogc3JjcGtncy9pc3BjL3BhdGNo ZXMvbGx2bTEyLTAwOC5wYXRjaCAgICAgICAgIHwgIDE0OSAtLQogc3JjcGtncy9pc3BjL3BhdGNo ZXMvbGx2bTEyLTAwOS5wYXRjaCAgICAgICAgIHwgMjEwOSAtLS0tLS0tLS0tLS0tLS0tLQogc3Jj cGtncy9pc3BjL3RlbXBsYXRlICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgNiArLQogMTEg ZmlsZXMgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCA1NDU1IGRlbGV0aW9ucygtKQogZGVsZXRl IG1vZGUgMTAwNjQ0IHNyY3BrZ3MvaXNwYy9wYXRjaGVzL2NtYWtlLWJ1aWxkLXR5cGUtbm9uZS5w YXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvaXNwYy9wYXRjaGVzL2xsdm0xMi0wMDEu cGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2lzcGMvcGF0Y2hlcy9sbHZtMTItMDAy LnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9pc3BjL3BhdGNoZXMvbGx2bTEyLTAw My5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvaXNwYy9wYXRjaGVzL2xsdm0xMi0w MDQucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2lzcGMvcGF0Y2hlcy9sbHZtMTIt MDA1LnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9pc3BjL3BhdGNoZXMvbGx2bTEy LTAwNi5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvaXNwYy9wYXRjaGVzL2xsdm0x Mi0wMDcucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2lzcGMvcGF0Y2hlcy9sbHZt MTItMDA4LnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9pc3BjL3BhdGNoZXMvbGx2 bTEyLTAwOS5wYXRjaAoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvaXNwYy9wYXRjaGVzL2NtYWtlLWJ1 aWxkLXR5cGUtbm9uZS5wYXRjaCBiL3NyY3BrZ3MvaXNwYy9wYXRjaGVzL2NtYWtlLWJ1aWxkLXR5 cGUtbm9uZS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDExZTM1M2M3MzE0 Li4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9pc3BjL3BhdGNoZXMvY21ha2UtYnVpbGQtdHlw ZS1ub25lLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTggKzAsMCBAQAotSW5kZXg6IGlzcGMt MS4xNS4wL0NNYWtlTGlzdHMudHh0Ci09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gaXNwYy0xLjE1LjAub3JpZy9D TWFrZUxpc3RzLnR4dAotKysrIGlzcGMtMS4xNS4wL0NNYWtlTGlzdHMudHh0Ci1AQCAtMTU3LDEz ICsxNTcsNiBAQCBzZXQoT1VUUFVUX1JFTEVBU0UgUmVsZWFzZS9iaW4pCi0gc2V0KENNQUtFX1JV TlRJTUVfT1VUUFVUX0RJUkVDVE9SWSAke0NNQUtFX0NVUlJFTlRfQklOQVJZX0RJUn0vYmluICkK LSAKLSBpZihDTUFLRV9CVUlMRF9UWVBFKQotLSAgICAjIFZhbGlkYXRlIGJ1aWxkIHR5cGUKLS0g ICAgc2V0KENPTkZJR1VSQVRJT05fVFlQRVMgIkRlYnVnO1JlbGVhc2U7UmVsV2l0aERlYkluZm8i KQotLQotLSAgICBzdHJpbmcoRklORCAiJHtDT05GSUdVUkFUSU9OX1RZUEVTfSIgIiR7Q01BS0Vf QlVJTERfVFlQRX0iIE1BVENIRURfQ09ORklHKQotLSAgICBpZiAoJHtNQVRDSEVEX0NPTkZJR30g RVFVQUwgLTEpCi0tICAgICAgICAgbWVzc2FnZShGQVRBTF9FUlJPUiAiQ01BS0VfQlVJTERfVFlQ RSAoJHtDTUFLRV9CVUlMRF9UWVBFfSkgYWxsb3dzIG9ubHkgdGhlIGZvbGxvd2luZyB2YWx1ZXM6 ICR7Q09ORklHVVJBVElPTl9UWVBFU30iKQotLSAgICBlbmRpZigpCi0gZWxzZShOT1QgQ01BS0Vf QlVJTERfVFlQRSkKLSAgICAgc2V0KENNQUtFX0JVSUxEX1RZUEUgIlJlbGVhc2UiKQotICAgICBt ZXNzYWdlKFNUQVRVUyAiQnVpbGQgdHlwZSBub3Qgc3BlY2lmaWVkOiBVc2UgUmVsZWFzZSBieSBk ZWZhdWx0LiIpCmRpZmYgLS1naXQgYS9zcmNwa2dzL2lzcGMvcGF0Y2hlcy9sbHZtMTItMDAxLnBh dGNoIGIvc3JjcGtncy9pc3BjL3BhdGNoZXMvbGx2bTEyLTAwMS5wYXRjaApkZWxldGVkIGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggNWYyZDNmNWE0MDllLi4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtn cy9pc3BjL3BhdGNoZXMvbGx2bTEyLTAwMS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDU3ICsw LDAgQEAKLUZyb20gMWMwZjg5ZGNjYjc3NGYyMTZjN2Y2ZTc2YTk5ZWU5MDdhMWU2NDFjYiBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IERtaXRyeSBCYWJva2luIDxkbWl0cnkueS5iYWJv a2luQGludGVsLmNvbT4KLURhdGU6IFR1ZSwgMjIgRGVjIDIwMjAgMTc6MDM6NTkgLTA4MDAKLVN1 YmplY3Q6IFtQQVRDSF0gRml4IHRvIHdvcmsgd2l0aCBMTFZNIHRydW5rIGFmdGVyIGxsdm0vbGx2 bS1wcm9qZWN0QDQxYzNiMjcxMwotCi0tLS0KLSBzcmMvY3R4LmNwcCB8IDE4ICsrKysrKysrKysr Ky0tLS0tLQotIDEgZmlsZSBjaGFuZ2VkLCAxMiBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygt KQotCi1kaWZmIC0tZ2l0IGEvc3JjL2N0eC5jcHAgYi9zcmMvY3R4LmNwcAotaW5kZXggNmZiYjhi OWNmLi45NzdlOWQyMjIgMTAwNjQ0Ci0tLS0gYS9zcmMvY3R4LmNwcAotKysrIGIvc3JjL2N0eC5j cHAKLUBAIC0xNDczLDExICsxNDczLDE1IEBAIHZvaWQgRnVuY3Rpb25FbWl0Q29udGV4dDo6QWRk RGVidWdQb3MobGx2bTo6VmFsdWUgKnZhbHVlLCBjb25zdCBTb3VyY2VQb3MgKnBvcywKLSAgICAg bGx2bTo6SW5zdHJ1Y3Rpb24gKmluc3QgPSBsbHZtOjpkeW5fY2FzdDxsbHZtOjpJbnN0cnVjdGlv bj4odmFsdWUpOwotICAgICBpZiAoaW5zdCAhPSBOVUxMICYmIG0tPmRpQnVpbGRlcikgewotICAg ICAgICAgU291cmNlUG9zIHAgPSBwb3MgPyAqcG9zIDogY3VycmVudFBvczsKLS0gICAgICAgIGlm IChwLmZpcnN0X2xpbmUgIT0gMCkKLSsgICAgICAgIGlmIChwLmZpcnN0X2xpbmUgIT0gMCkgewot ICAgICAgICAgICAgIC8vIElmIGZpcnN0X2xpbmUgPT0gMCwgdGhlbiB3ZSdyZSBpbiB0aGUgbWlk ZGxlIG9mIHNldHRpbmcgdXAKLSAgICAgICAgICAgICAvLyB0aGUgc3RhbmRhcmQgbGlicmFyeSBv ciB0aGUgbGlrZTsgZG9uJ3QgYWRkIGRlYnVnIHBvc2l0aW9ucwotICAgICAgICAgICAgIC8vIGZv ciB0aG9zZSBmdW5jdGlvbnMKLS0gICAgICAgICAgICBpbnN0LT5zZXREZWJ1Z0xvYyhsbHZtOjpE ZWJ1Z0xvYzo6Z2V0KHAuZmlyc3RfbGluZSwgcC5maXJzdF9jb2x1bW4sIHNjb3BlID8gc2NvcGUg OiBHZXRESVNjb3BlKCkpKTsKLSsgICAgICAgICAgICBzY29wZSA9IHNjb3BlID8gc2NvcGUgOiBH ZXRESVNjb3BlKCk7Ci0rICAgICAgICAgICAgbGx2bTo6RGVidWdMb2MgZGlMb2MgPQotKyAgICAg ICAgICAgICAgICBsbHZtOjpESUxvY2F0aW9uOjpnZXQoc2NvcGUtPmdldENvbnRleHQoKSwgcC5m aXJzdF9saW5lLCBwLmZpcnN0X2NvbHVtbiwgc2NvcGUsIG51bGxwdHIsIGZhbHNlKTsKLSsgICAg ICAgICAgICBpbnN0LT5zZXREZWJ1Z0xvYyhkaUxvYyk7Ci0rICAgICAgICB9Ci0gICAgIH0KLSB9 Ci0gCi1AQCAtMTUxOCw5ICsxNTIyLDEwIEBAIHZvaWQgRnVuY3Rpb25FbWl0Q29udGV4dDo6RW1p dFZhcmlhYmxlRGVidWdJbmZvKFN5bWJvbCAqc3ltKSB7Ci0gICAgIGxsdm06OkRJTG9jYWxWYXJp YWJsZSAqdmFyID0gbS0+ZGlCdWlsZGVyLT5jcmVhdGVBdXRvVmFyaWFibGUoCi0gICAgICAgICBz Y29wZSwgc3ltLT5uYW1lLCBzeW0tPnBvcy5HZXRESUZpbGUoKSwgc3ltLT5wb3MuZmlyc3RfbGlu ZSwgZGlUeXBlLCB0cnVlIC8qIHByZXNlcnZlIHRocm91Z2ggb3B0cyAqLyk7Ci0gCi0rICAgIGxs dm06OkRlYnVnTG9jIGRpTG9jID0KLSsgICAgICAgIGxsdm06OkRJTG9jYXRpb246OmdldChzY29w ZS0+Z2V0Q29udGV4dCgpLCBzeW0tPnBvcy5maXJzdF9saW5lLCBzeW0tPnBvcy5maXJzdF9jb2x1 bW4sIHNjb3BlLCBudWxscHRyLCBmYWxzZSk7Ci0gICAgIGxsdm06Okluc3RydWN0aW9uICpkZWNs YXJlSW5zdCA9Ci0tICAgICAgICBtLT5kaUJ1aWxkZXItPmluc2VydERlY2xhcmUoc3ltLT5zdG9y YWdlUHRyLCB2YXIsIG0tPmRpQnVpbGRlci0+Y3JlYXRlRXhwcmVzc2lvbigpLAotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06OkRlYnVnTG9jOjpnZXQoc3ltLT5wb3Mu Zmlyc3RfbGluZSwgc3ltLT5wb3MuZmlyc3RfY29sdW1uLCBzY29wZSksIGJibG9jayk7Ci0rICAg ICAgICBtLT5kaUJ1aWxkZXItPmluc2VydERlY2xhcmUoc3ltLT5zdG9yYWdlUHRyLCB2YXIsIG0t PmRpQnVpbGRlci0+Y3JlYXRlRXhwcmVzc2lvbigpLCBkaUxvYywgYmJsb2NrKTsKLSAgICAgQWRk RGVidWdQb3MoZGVjbGFyZUluc3QsICZzeW0tPnBvcywgc2NvcGUpOwotIH0KLSAKLUBAIC0xNTM1 LDkgKzE1NDAsMTAgQEAgdm9pZCBGdW5jdGlvbkVtaXRDb250ZXh0OjpFbWl0RnVuY3Rpb25QYXJh bWV0ZXJEZWJ1Z0luZm8oU3ltYm9sICpzeW0sIGludCBhcmdOdW0KLSAgICAgICAgIG0tPmRpQnVp bGRlci0+Y3JlYXRlUGFyYW1ldGVyVmFyaWFibGUoc2NvcGUsIHN5bS0+bmFtZSwgYXJnTnVtICsg MSwgc3ltLT5wb3MuR2V0RElGaWxlKCksIHN5bS0+cG9zLmZpcnN0X2xpbmUsCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpVHlwZSwgdHJ1ZSAvKiBwcmVz ZXJ2ZSB0aHJvdWdoIG9wdHMgKi8sIGZsYWdzKTsKLSAKLSsgICAgbGx2bTo6RGVidWdMb2MgZGlM b2MgPQotKyAgICAgICAgbGx2bTo6RElMb2NhdGlvbjo6Z2V0KHNjb3BlLT5nZXRDb250ZXh0KCks IHN5bS0+cG9zLmZpcnN0X2xpbmUsIHN5bS0+cG9zLmZpcnN0X2NvbHVtbiwgc2NvcGUsIG51bGxw dHIsIGZhbHNlKTsKLSAgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmRlY2xhcmVJbnN0ID0KLS0gICAg ICAgIG0tPmRpQnVpbGRlci0+aW5zZXJ0RGVjbGFyZShzeW0tPnN0b3JhZ2VQdHIsIHZhciwgbS0+ ZGlCdWlsZGVyLT5jcmVhdGVFeHByZXNzaW9uKCksCi0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgbGx2bTo6RGVidWdMb2M6OmdldChzeW0tPnBvcy5maXJzdF9saW5lLCBzeW0t PnBvcy5maXJzdF9jb2x1bW4sIHNjb3BlKSwgYmJsb2NrKTsKLSsgICAgICAgIG0tPmRpQnVpbGRl ci0+aW5zZXJ0RGVjbGFyZShzeW0tPnN0b3JhZ2VQdHIsIHZhciwgbS0+ZGlCdWlsZGVyLT5jcmVh dGVFeHByZXNzaW9uKCksIGRpTG9jLCBiYmxvY2spOwotICAgICBBZGREZWJ1Z1BvcyhkZWNsYXJl SW5zdCwgJnN5bS0+cG9zLCBzY29wZSk7Ci0gfQotIApkaWZmIC0tZ2l0IGEvc3JjcGtncy9pc3Bj L3BhdGNoZXMvbGx2bTEyLTAwMi5wYXRjaCBiL3NyY3BrZ3MvaXNwYy9wYXRjaGVzL2xsdm0xMi0w MDIucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA5MDNmMzBkYTEwZC4uMDAw MDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvaXNwYy9wYXRjaGVzL2xsdm0xMi0wMDIucGF0Y2gKKysr IC9kZXYvbnVsbApAQCAtMSw5MjMgKzAsMCBAQAotRnJvbSAwNTk3YTc5ZDA4NGMwMTQ3ODAxMzZk YTkwNmFmZTIxZDE1ZTk4MmNiIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogRGVlcGFr UmFqZW5kcmFrdW1hcmFuIDxkZWVwYWsucmFqZW5kcmFrdW1hcmFuQGludGVsLmNvbT4KLURhdGU6 IFR1ZSwgNSBKYW4gMjAyMSAxMzo1MzozMCAtMDgwMAotU3ViamVjdDogW1BBVENIXSBSZW1vdmUg TExWTSA4LjAgYW5kIExMVk0gOS4wLiAoIzE5NjYpCi0KLS0tLQotIC5hcHB2ZXlvci55bWwgICAg ICAgICAgICAgICAgICAgICAgICB8ICAzIC0tCi0gLnRyYXZpcy55bWwgICAgICAgICAgICAgICAg ICAgICAgICAgIHwgIDcgLS0tCi0gQ01ha2VMaXN0cy50eHQgICAgICAgICAgICAgICAgICAgICAg IHwgMTIgKystLS0tCi0gc3JjL2FzdC5jcHAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDQg LS0KLSBzcmMvY3R4LmNwcCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAzMCAtLS0tLS0tLS0t LS0tCi0gc3JjL2dlbi9HbG9iYWxzTG9jYWxpemF0aW9uLmNwcCAgICAgIHwgIDQgLS0KLSBzcmMv aXNwYy5jcHAgICAgICAgICAgICAgICAgICAgICAgICAgfCAyMCAtLS0tLS0tLS0KLSBzcmMvaXNw Yy5oICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMyArLQotIHNyYy9pc3BjX3ZlcnNpb24u aCAgICAgICAgICAgICAgICAgICB8ICA0ICstCi0gc3JjL21haW4uY3BwICAgICAgICAgICAgICAg ICAgICAgICAgIHwgMTMgLS0tLS0tCi0gc3JjL21vZHVsZS5jcHAgICAgICAgICAgICAgICAgICAg ICAgIHwgMjcgLS0tLS0tLS0tLS0tCi0gc3JjL21vZHVsZS5oICAgICAgICAgICAgICAgICAgICAg ICAgIHwgIDIgLQotIHNyYy9vcHQuY3BwICAgICAgICAgICAgICAgICAgICAgICAgICB8IDY0ICsr LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSBzcmMvdHlwZS5jcHAgICAgICAgICAgICAgICAg ICAgICAgICAgfCAxMCArKy0tLQotIHRlc3RzL2xpdC10ZXN0cy8xNzcxLmlzcGMgICAgICAgICAg ICB8ICAxIC0KLSB0ZXN0cy9saXQtdGVzdHMvMTg0NC5pc3BjICAgICAgICAgICAgfCAgMyAtLQot IHRlc3RzL2xpdC10ZXN0cy8xOTI2LmlzcGMgICAgICAgICAgICB8ICAyIC0KLSB0ZXN0cy9saXQt dGVzdHMvY3B1c194ODYuaXNwYyAgICAgICAgfCAgMiArCi0gdGVzdHMvbGl0LXRlc3RzL2NwdXNf eDg2X2xsdm0xMC5pc3BjIHwgMTEgLS0tLS0KLSB0ZXN0cy9saXQtdGVzdHMvbGl0LmNmZyAgICAg ICAgICAgICAgfCAgNSAtLS0KLSAyMCBmaWxlcyBjaGFuZ2VkLCAxNCBpbnNlcnRpb25zKCspLCAy MTMgZGVsZXRpb25zKC0pCi0gZGVsZXRlIG1vZGUgMTAwNjQ0IHRlc3RzL2xpdC10ZXN0cy9jcHVz X3g4Nl9sbHZtMTAuaXNwYwotCi1kaWZmIC0tZ2l0IGEvLmFwcHZleW9yLnltbCBiLy5hcHB2ZXlv ci55bWwKLWluZGV4IDQ1MWE3YjNlMC4uNzk0NWNjYTJhIDEwMDY0NAotLS0tIGEvLmFwcHZleW9y LnltbAotKysrIGIvLmFwcHZleW9yLnltbAotQEAgLTQxLDggKzQxLDYgQEAgZW52aXJvbm1lbnQ6 Ci0gICAgICAgTExWTV9WRVJTSU9OOiBsYXRlc3QKLSAgICAgLSBBUFBWRVlPUl9CVUlMRF9XT1JL RVJfSU1BR0U6IFZpc3VhbCBTdHVkaW8gMjAxOQotICAgICAgIExMVk1fVkVSU0lPTjogMTAuMAot LSAgICAtIEFQUFZFWU9SX0JVSUxEX1dPUktFUl9JTUFHRTogVmlzdWFsIFN0dWRpbyAyMDE5Ci0t ICAgICAgTExWTV9WRVJTSU9OOiA5LjAKLSAKLSBmb3I6Ci0gLQotQEAgLTYyLDcgKzYwLDYgQEAg Zm9yOgotICAgICAgICAgaWYgIiVBUFBWRVlPUl9CVUlMRF9XT1JLRVJfSU1BR0UlIj09IlZpc3Vh bCBTdHVkaW8gMjAxOSIgKCAoc2V0IGdlbmVyYXRvcj0iVmlzdWFsIFN0dWRpbyAxNiIpICYgKHNl dCB2c3ZlcnNpb249MjAxOSkpCi0gICAgICAgICBzZXQgTExWTV9UQVI9bGx2bS0xMS4wLjAtd2lu LnZzMjAxOS1SZWxlYXNlK0Fzc2VydHMteDg2LmFybS53YXNtLjd6Ci0gICAgICAgICBpZiAiJUxM Vk1fVkVSU0lPTiUiPT0iMTAuMCIgKHNldCBMTFZNX1RBUj1sbHZtLTEwLjAuMS13aW4udnMyMDE5 LVJlbGVhc2UrQXNzZXJ0cy14ODYuYXJtLndhc20uemlwKQotLSAgICAgICAgaWYgIiVMTFZNX1ZF UlNJT04lIj09IjkuMCIgKHNldCBMTFZNX1RBUj1sbHZtLTkuMC4xLXdpbi52czIwMTctUmVsZWFz ZStBc3NlcnRzLXg4Ni5hcm0ud2FzbS56aXApCi0gICBpbnN0YWxsOgotICAgICAtIHBzOiBjaG9j byBpbnN0YWxsIC0tbm8tcHJvZ3Jlc3Mgd2luZmxleGJpc29uMyB3Z2V0IDd6aXAKLSAgICAgLSBj bWQ6IHwtCi1kaWZmIC0tZ2l0IGEvLnRyYXZpcy55bWwgYi8udHJhdmlzLnltbAotaW5kZXggMmU5 NjAxN2E2Li4zYTZiODUyNjQgMTAwNjQ0Ci0tLS0gYS8udHJhdmlzLnltbAotKysrIGIvLnRyYXZp cy55bWwKLUBAIC0xMDgsMTMgKzEwOCw2IEBAIGpvYnM6Ci0gICAgICAgICAtIExMVk1fVEFSPWxs dm0tMTAuMC4xLXVidW50dTE2LjA0LVJlbGVhc2UrQXNzZXJ0cy14ODYuYXJtLndhc20udGFyLnh6 Ci0gICAgICAgICAtIExMVk1fUkVQTz1odHRwczovL2dpdGh1Yi5jb20vZGJhYm9raW4vbGx2bS1w cm9qZWN0Ci0gICAgICAgICAtIElTUENfSE9NRT0kVFJBVklTX0JVSUxEX0RJUgotLSAgICAjIExM Vk0gOS4wICsgVWJ1bnR1IDE2LjA0OiBidWlsZCwgbGl0IHRlc3RzLCBleGFtcGxlcyAoYnVpbGQg KyBydW4pLCBiZW5jaG1hcmtzIChidWlsZCArIHRyaWFsIHJ1bikKLS0gICAgLSA8PDogKm15X3Rh ZwotLSAgICAgIGVudjoKLS0gICAgICAgIC0gTExWTV9WRVJTSU9OPTkuMCBPUz1VYnVudHUxNi4w NAotLSAgICAgICAgLSBMTFZNX1RBUj1sbHZtLTkuMC4xLXVidW50dTE2LjA0LVJlbGVhc2UrQXNz ZXJ0cy14ODYuYXJtLndhc20udGFyLnh6Ci0tICAgICAgICAtIExMVk1fUkVQTz1odHRwczovL2dp dGh1Yi5jb20vZGJhYm9raW4vbGx2bS1wcm9qZWN0Ci0tICAgICAgICAtIElTUENfSE9NRT0kVFJB VklTX0JVSUxEX0RJUgotICAgICAjIFdBU00gZW5hYmxlZCBidWlsZAotICAgICAjIExMVk0gMTEu MCArIFVidW50dSAxNi4wNDogYnVpbGQsIGxpdCB0ZXN0cywgZXhhbXBsZXMgKGJ1aWxkKSwgYmVu Y2htYXJrcyAoYnVpbGQgKyB0cmlhbCBydW4pCi0gICAgIC0gPDw6ICpteV90YWcKLWRpZmYgLS1n aXQgYS9DTWFrZUxpc3RzLnR4dCBiL0NNYWtlTGlzdHMudHh0Ci1pbmRleCA1ZmE4NjNmY2YuLmE2 YjNlZDI1MSAxMDA2NDQKLS0tLSBhL0NNYWtlTGlzdHMudHh0Ci0rKysgYi9DTWFrZUxpc3RzLnR4 dAotQEAgLTI0MSwxMCArMjQxLDggQEAgaWYgKFg4Nl9FTkFCTEVEKQotICAgICAgICAgYXZ4Mi1p OHgzMiBhdngyLWkxNngxNgotICAgICAgICAgYXZ4Mi1pMzJ4NCBhdngyLWkzMng4IGF2eDItaTMy eDE2IGF2eDItaTY0eDQKLSAgICAgICAgIGF2eDUxMmtubC1pMzJ4MTYKLS0gICAgICAgIGF2eDUx MnNreC1pMzJ4MTYgYXZ4NTEyc2t4LWkzMng4KQotLSAgICBpZiAoJHtMTFZNX1ZFUlNJT05fTlVN QkVSfSBWRVJTSU9OX0dSRUFURVJfRVFVQUwgIjEwLjAuMCIpCi0tICAgICAgICBsaXN0KEFQUEVO RCBJU1BDX1RBUkdFVFMgYXZ4NTEyc2t4LWk4eDY0IGF2eDUxMnNreC1pMTZ4MzIpCi0tICAgIGVu ZGlmKCkKLSsgICAgICAgIGF2eDUxMnNreC1pMzJ4MTYgYXZ4NTEyc2t4LWkzMng4Ci0rICAgICAg ICBhdng1MTJza3gtaTh4NjQgYXZ4NTEyc2t4LWkxNngzMikKLSBlbmRpZigpCi0gaWYgKEFSTV9F TkFCTEVEKQotICAgICBsaXN0KEFQUEVORCBJU1BDX1RBUkdFVFMgbmVvbi1pOHgxNiBuZW9uLWkx Nng4IG5lb24taTMyeDQgbmVvbi1pMzJ4OCkKLUBAIC0yNTksMTEgKzI1Nyw3IEBAIGlmIChXQVNN X0VOQUJMRUQpCi0gZW5kaWYoKQotIAotIHNldChDTEFOR19MSUJSQVJZX0xJU1QgY2xhbmdGcm9u dGVuZCBjbGFuZ0RyaXZlciBjbGFuZ1NlcmlhbGl6YXRpb24gY2xhbmdQYXJzZSBjbGFuZ1NlbWEg Y2xhbmdBbmFseXNpcyBjbGFuZ0FTVCBjbGFuZ0Jhc2ljIGNsYW5nRWRpdCBjbGFuZ0xleCkKLS1z ZXQoTExWTV9DT01QT05FTlRTIGVuZ2luZSBpcG8gYml0cmVhZGVyIGJpdHdyaXRlciBpbnN0cnVt ZW50YXRpb24gbGlua2VyIG9wdGlvbikKLS0KLS1pZiAoJHtMTFZNX1ZFUlNJT05fTlVNQkVSfSBW RVJTSU9OX0dSRUFURVJfRVFVQUwgIjEwLjAuMCIpCi0tICAgIGxpc3QoQVBQRU5EIExMVk1fQ09N UE9ORU5UUyBmcm9udGVuZG9wZW5tcCkKLS1lbmRpZigpCi0rc2V0KExMVk1fQ09NUE9ORU5UUyBl bmdpbmUgaXBvIGJpdHJlYWRlciBiaXR3cml0ZXIgaW5zdHJ1bWVudGF0aW9uIGxpbmtlciBvcHRp b24gZnJvbnRlbmRvcGVubXApCi0gCi0gaWYgKFg4Nl9FTkFCTEVEKQotICAgICBsaXN0KEFQUEVO RCBMTFZNX0NPTVBPTkVOVFMgeDg2KQotZGlmZiAtLWdpdCBhL3NyYy9hc3QuY3BwIGIvc3JjL2Fz dC5jcHAKLWluZGV4IDIwZjc1YTI5Yy4uNWE0M2M0ODU0IDEwMDY0NAotLS0tIGEvc3JjL2FzdC5j cHAKLSsrKyBiL3NyYy9hc3QuY3BwCi1AQCAtNDQsOSArNDQsNyBAQAotICNpbmNsdWRlICJzeW0u aCIKLSAjaW5jbHVkZSAidXRpbC5oIgotIAotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BD X0xMVk1fMTBfMAotICNpbmNsdWRlIDxsbHZtL1N1cHBvcnQvVGltZVByb2ZpbGVyLmg+Ci0tI2Vu ZGlmCi0gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0gLy8gQVNUTm9kZQotIAotQEAgLTYyLDkgKzYwLDcg QEAgdm9pZCBBU1Q6OkFkZEZ1bmN0aW9uKFN5bWJvbCAqc3ltLCBTdG10ICpjb2RlKSB7Ci0gfQot IAotIHZvaWQgQVNUOjpHZW5lcmF0ZUlSKCkgewotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJ U1BDX0xMVk1fMTBfMAotICAgICBsbHZtOjpUaW1lVHJhY2VTY29wZSBUaW1lU2NvcGUoIkdlbmVy YXRlSVIiKTsKLS0jZW5kaWYKLSAgICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBmdW5j dGlvbnMuc2l6ZSgpOyArK2kpCi0gICAgICAgICBmdW5jdGlvbnNbaV0tPkdlbmVyYXRlSVIoKTsK LSB9Ci1kaWZmIC0tZ2l0IGEvc3JjL2N0eC5jcHAgYi9zcmMvY3R4LmNwcAotaW5kZXggOTc3ZTlk MjIyLi40MmM0ZWEwOWQgMTAwNjQ0Ci0tLS0gYS9zcmMvY3R4LmNwcAotKysrIGIvc3JjL2N0eC5j cHAKLUBAIC0zMDksMjEgKzMwOSwxMyBAQCBGdW5jdGlvbkVtaXRDb250ZXh0OjpGdW5jdGlvbkVt aXRDb250ZXh0KEZ1bmN0aW9uICpmdW5jLCBTeW1ib2wgKmZ1blN5bSwgbGx2bTo6RgotICAgICAg ICAgICAgIGNoYXIgYnVmWzI1Nl07Ci0gICAgICAgICAgICAgc25wcmludGYoYnVmLCBzaXplb2Yo YnVmKSwgIl9fb2ZmX2FsbF9vbl9tYXNrXyVzIiwgZy0+dGFyZ2V0LT5HZXRJU0FTdHJpbmcoKSk7 Ci0gCi0tI2lmIElTUENfTExWTV9WRVJTSU9OIDw9IElTUENfTExWTV84XzAKLS0gICAgICAgICAg ICBsbHZtOjpDb25zdGFudCAqb2ZmRnVuYyA9IG0tPm1vZHVsZS0+Z2V0T3JJbnNlcnRGdW5jdGlv bihidWYsIExMVk1UeXBlczo6Vm9pZFR5cGUpOwotLSNlbHNlIC8vIExMVk0gOS4wKwotICAgICAg ICAgICAgIGxsdm06OkZ1bmN0aW9uQ2FsbGVlIG9mZkZ1bmNDYWxsZWUgPSBtLT5tb2R1bGUtPmdl dE9ySW5zZXJ0RnVuY3Rpb24oYnVmLCBMTFZNVHlwZXM6OlZvaWRUeXBlKTsKLSAgICAgICAgICAg ICBsbHZtOjpDb25zdGFudCAqb2ZmRnVuYyA9IGxsdm06OmNhc3Q8bGx2bTo6Q29uc3RhbnQ+KG9m ZkZ1bmNDYWxsZWUuZ2V0Q2FsbGVlKCkpOwotLSNlbmRpZgotICAgICAgICAgICAgIEFzc2VydFBv cyhjdXJyZW50UG9zLCBsbHZtOjppc2E8bGx2bTo6RnVuY3Rpb24+KG9mZkZ1bmMpKTsKLSAgICAg ICAgICAgICBsbHZtOjpCYXNpY0Jsb2NrICpvZmZCQiA9IGxsdm06OkJhc2ljQmxvY2s6OkNyZWF0 ZSgqZy0+Y3R4LCAiZW50cnkiLCAobGx2bTo6RnVuY3Rpb24gKilvZmZGdW5jLCAwKTsKLSAgICAg ICAgICAgICBsbHZtOjpTdG9yZUluc3QgKmluc3QgPSBuZXcgbGx2bTo6U3RvcmVJbnN0KExMVk1N YXNrQWxsT2ZmLCBnbG9iYWxBbGxPbk1hc2tQdHIsIG9mZkJCKTsKLSAgICAgICAgICAgICBpZiAo Zy0+b3B0LmZvcmNlQWxpZ25lZE1lbW9yeSkgewotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA8PSBJ U1BDX0xMVk1fOV8wCi0tICAgICAgICAgICAgICAgIGluc3QtPnNldEFsaWdubWVudChnLT50YXJn ZXQtPmdldE5hdGl2ZVZlY3RvckFsaWdubWVudCgpKTsKLS0jZWxzZSAvLyBMTFZNIDEwLjArCi0g ICAgICAgICAgICAgICAgIGluc3QtPnNldEFsaWdubWVudChsbHZtOjpNYXliZUFsaWduKGctPnRh cmdldC0+Z2V0TmF0aXZlVmVjdG9yQWxpZ25tZW50KCkpLnZhbHVlT3JPbmUoKSk7Ci0tI2VuZGlm Ci0gICAgICAgICAgICAgfQotICAgICAgICAgICAgIGxsdm06OlJldHVybkluc3Q6OkNyZWF0ZSgq Zy0+Y3R4LCBvZmZCQik7Ci0gICAgICAgICB9Ci1AQCAtMjI4OCwxMSArMjI4MCw3IEBAIGxsdm06 OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpMb2FkSW5zdChsbHZtOjpWYWx1ZSAqcHRyLCBj b25zdCBUeXBlICp0eXBlLCBjCi0gI2VuZGlmCi0gCi0gICAgIGlmIChnLT5vcHQuZm9yY2VBbGln bmVkTWVtb3J5ICYmIGxsdm06OmR5bl9jYXN0PGxsdm06OlZlY3RvclR5cGU+KHB0LT5nZXRFbGVt ZW50VHlwZSgpKSkgewotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA8PSBJU1BDX0xMVk1fOV8wCi0t ICAgICAgICBpbnN0LT5zZXRBbGlnbm1lbnQoZy0+dGFyZ2V0LT5nZXROYXRpdmVWZWN0b3JBbGln bm1lbnQoKSk7Ci0tI2Vsc2UgLy8gTExWTSAxMC4wKwotICAgICAgICAgaW5zdC0+c2V0QWxpZ25t ZW50KGxsdm06Ok1heWJlQWxpZ24oZy0+dGFyZ2V0LT5nZXROYXRpdmVWZWN0b3JBbGlnbm1lbnQo KSkudmFsdWVPck9uZSgpKTsKLS0jZW5kaWYKLSAgICAgfQotIAotICAgICBBZGREZWJ1Z1Bvcyhp bnN0KTsKLUBAIC0yNDMxLDExICsyNDE5LDcgQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENv bnRleHQ6OkxvYWRJbnN0KGxsdm06OlZhbHVlICpwdHIsIGxsdm06OlZhbHVlICptYXNrLAotICAg ICAgICAgICAgICAgICAvLyB2cyB0aGUgcHJvcGVyIGFsaWdubWVudCBpbiBwcmFjdGljZS4pCi0g ICAgICAgICAgICAgICAgIGludCBhbGlnbiA9IDE7Ci0gCi0tI2lmIElTUENfTExWTV9WRVJTSU9O IDw9IElTUENfTExWTV85XzAKLS0gICAgICAgICAgICAgICAgaW5zdC0+c2V0QWxpZ25tZW50KGFs aWduKTsKLS0jZWxzZSAvLyBMTFZNIDEwLjArCi0gICAgICAgICAgICAgICAgIGluc3QtPnNldEFs aWdubWVudChsbHZtOjpNYXliZUFsaWduKGFsaWduKS52YWx1ZU9yT25lKCkpOwotLSNlbmRpZgot ICAgICAgICAgICAgIH0KLSAKLSAgICAgICAgICAgICBBZGREZWJ1Z1BvcyhpbnN0KTsKLUBAIC0y NjQ5LDExICsyNjMzLDcgQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkFsbG9j YUluc3QobGx2bTo6VHlwZSAqbGx2bVR5cGUsIGNvbnN0IGNoYXIgKm4KLSAgICAgICAgIGFsaWdu ID0gZy0+dGFyZ2V0LT5nZXROYXRpdmVWZWN0b3JBbGlnbm1lbnQoKTsKLSAKLSAgICAgaWYgKGFs aWduICE9IDApIHsKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPD0gSVNQQ19MTFZNXzlfMAotLSAg ICAgICAgaW5zdC0+c2V0QWxpZ25tZW50KGFsaWduKTsKLS0jZWxzZSAvLyBMTFZNIDEwLjArCi0g ICAgICAgICBpbnN0LT5zZXRBbGlnbm1lbnQobGx2bTo6TWF5YmVBbGlnbihhbGlnbikudmFsdWVP ck9uZSgpKTsKLS0jZW5kaWYKLSAgICAgfQotICAgICAvLyBEb24ndCBhZGQgZGVidWdnaW5nIGlu Zm8gdG8gYWxsb2NhIGluc3RydWN0aW9ucwotICAgICByZXR1cm4gaW5zdDsKLUBAIC0yOTI2LDEx ICsyOTA2LDcgQEAgdm9pZCBGdW5jdGlvbkVtaXRDb250ZXh0OjpTdG9yZUluc3QobGx2bTo6VmFs dWUgKnZhbHVlLCBsbHZtOjpWYWx1ZSAqcHRyLCBjb25zdAotICAgICBsbHZtOjpTdG9yZUluc3Qg Kmluc3QgPSBuZXcgbGx2bTo6U3RvcmVJbnN0KHZhbHVlLCBwdHIsIGJibG9jayk7Ci0gCi0gICAg IGlmIChnLT5vcHQuZm9yY2VBbGlnbmVkTWVtb3J5ICYmIGxsdm06OmR5bl9jYXN0PGxsdm06OlZl Y3RvclR5cGU+KHB0LT5nZXRFbGVtZW50VHlwZSgpKSkgewotLSNpZiBJU1BDX0xMVk1fVkVSU0lP TiA8PSBJU1BDX0xMVk1fOV8wCi0tICAgICAgICBpbnN0LT5zZXRBbGlnbm1lbnQoZy0+dGFyZ2V0 LT5nZXROYXRpdmVWZWN0b3JBbGlnbm1lbnQoKSk7Ci0tI2Vsc2UgLy8gTExWTSAxMC4wKwotICAg ICAgICAgaW5zdC0+c2V0QWxpZ25tZW50KGxsdm06Ok1heWJlQWxpZ24oZy0+dGFyZ2V0LT5nZXRO YXRpdmVWZWN0b3JBbGlnbm1lbnQoKSkudmFsdWVPck9uZSgpKTsKLS0jZW5kaWYKLSAgICAgfQot IAotICNpZmRlZiBJU1BDX0dFTlhfRU5BQkxFRAotQEAgLTMwMjUsMTYgKzMwMDEsMTAgQEAgdm9p ZCBGdW5jdGlvbkVtaXRDb250ZXh0OjpNZW1jcHlJbnN0KGxsdm06OlZhbHVlICpkZXN0LCBsbHZt OjpWYWx1ZSAqc3JjLCBsbHZtOjoKLSAgICAgfQotICAgICBpZiAoYWxpZ24gPT0gTlVMTCkKLSAg ICAgICAgIGFsaWduID0gTExWTUludDMyKDEpOwotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA8PSBJ U1BDX0xMVk1fOF8wCi0tICAgIGxsdm06OkNvbnN0YW50ICptY0Z1bmMgPQotLSAgICAgICAgbS0+ bW9kdWxlLT5nZXRPckluc2VydEZ1bmN0aW9uKCJsbHZtLm1lbWNweS5wMGk4LnAwaTguaTY0Iiwg TExWTVR5cGVzOjpWb2lkVHlwZSwgTExWTVR5cGVzOjpWb2lkUG9pbnRlclR5cGUsCi0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTExWTVR5cGVzOjpWb2lkUG9pbnRlclR5 cGUsIExMVk1UeXBlczo6SW50NjRUeXBlLCBMTFZNVHlwZXM6OkJvb2xUeXBlKTsKLS0jZWxzZSAv LyBMTFZNIDkuMCsKLSAgICAgbGx2bTo6RnVuY3Rpb25DYWxsZWUgbWNGdW5jQ2FsbGVlID0KLSAg ICAgICAgIG0tPm1vZHVsZS0+Z2V0T3JJbnNlcnRGdW5jdGlvbigibGx2bS5tZW1jcHkucDBpOC5w MGk4Lmk2NCIsIExMVk1UeXBlczo6Vm9pZFR5cGUsIExMVk1UeXBlczo6Vm9pZFBvaW50ZXJUeXBl LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExMVk1UeXBlczo6Vm9p ZFBvaW50ZXJUeXBlLCBMTFZNVHlwZXM6OkludDY0VHlwZSwgTExWTVR5cGVzOjpCb29sVHlwZSk7 Ci0gICAgIGxsdm06OkNvbnN0YW50ICptY0Z1bmMgPSBsbHZtOjpjYXN0PGxsdm06OkNvbnN0YW50 PihtY0Z1bmNDYWxsZWUuZ2V0Q2FsbGVlKCkpOwotLSNlbmRpZgotICAgICBBc3NlcnRQb3MoY3Vy cmVudFBvcywgbWNGdW5jICE9IE5VTEwpOwotICAgICBBc3NlcnRQb3MoY3VycmVudFBvcywgbGx2 bTo6aXNhPGxsdm06OkZ1bmN0aW9uPihtY0Z1bmMpKTsKLSAKLWRpZmYgLS1naXQgYS9zcmMvZ2Vu L0dsb2JhbHNMb2NhbGl6YXRpb24uY3BwIGIvc3JjL2dlbi9HbG9iYWxzTG9jYWxpemF0aW9uLmNw cAotaW5kZXggMTkzYTY2Mjg5Li5hMTc2ZTk0NjIgMTAwNjQ0Ci0tLS0gYS9zcmMvZ2VuL0dsb2Jh bHNMb2NhbGl6YXRpb24uY3BwCi0rKysgYi9zcmMvZ2VuL0dsb2JhbHNMb2NhbGl6YXRpb24uY3Bw Ci1AQCAtNDcwLDExICs0NzAsNyBAQCB2b2lkIEdsb2JhbHNMb2NhbGl6YXRpb246OkxvY2FsaXpl R2xvYmFscyhMb2NhbGl6YXRpb25JbmZvICZMSSkgewotICAgICAgICAgSW5zdHJ1Y3Rpb24gJkZp cnN0SSA9ICpGbi0+Z2V0RW50cnlCbG9jaygpLmJlZ2luKCk7Ci0gICAgICAgICBUeXBlICpFbGVt VHkgPSBHVi0+Z2V0VHlwZSgpLT5nZXRFbGVtZW50VHlwZSgpOwotICAgICAgICAgQWxsb2NhSW5z dCAqQWxsb2NhID0gbmV3IEFsbG9jYUluc3QoRWxlbVR5LCAwLCBHVi0+Z2V0TmFtZSgpICsgIi5s b2NhbCIsICZGaXJzdEkpOwotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA8PSBJU1BDX0xMVk1fOV8w Ci0tICAgICAgICBBbGxvY2EtPnNldEFsaWdubWVudChHVi0+Z2V0QWxpZ25tZW50KCkpOwotLSNl bHNlIC8vIExMVk0gMTAuMCsKLSAgICAgICAgIEFsbG9jYS0+c2V0QWxpZ25tZW50KGxsdm06Ok1h eWJlQWxpZ24oR1YtPmdldEFsaWdubWVudCgpKSk7Ci0tI2VuZGlmCi0gICAgICAgICBpZiAoIWlz YTxVbmRlZlZhbHVlPihHVi0+Z2V0SW5pdGlhbGl6ZXIoKSkpCi0gICAgICAgICAgICAgbmV3IFN0 b3JlSW5zdChHVi0+Z2V0SW5pdGlhbGl6ZXIoKSwgQWxsb2NhLCAmRmlyc3RJKTsKLSAKLWRpZmYg LS1naXQgYS9zcmMvaXNwYy5jcHAgYi9zcmMvaXNwYy5jcHAKLWluZGV4IGUyZDBmMjA2ZS4uZmFj NTIzM2Y3IDEwMDY0NAotLS0tIGEvc3JjL2lzcGMuY3BwCi0rKysgYi9zcmMvaXNwYy5jcHAKLUBA IC0yNzIsOSArMjcyLDcgQEAgdHlwZWRlZiBlbnVtIHsKLSAgICAgQ1BVX1NpbHZlcm1vbnQsCi0g Ci0gICAgIENQVV9JQ1gsCi0tI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMF8w Ci0gICAgIENQVV9UR0wsCi0tI2VuZGlmCi0gI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENf TExWTV8xMl8wCi0gICAgIENQVV9BREwsCi0gICAgIENQVV9TUFIsCi1AQCAtMzY1LDEwICszNjMs OCBAQCBjbGFzcyBBbGxDUFVzIHsKLSAKLSAgICAgICAgIG5hbWVzW0NQVV9JQ1hdLnB1c2hfYmFj aygiaWNlbGFrZS1zZXJ2ZXIiKTsKLSAgICAgICAgIG5hbWVzW0NQVV9JQ1hdLnB1c2hfYmFjaygi aWN4Iik7Ci0tI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMF8wCi0gICAgICAg ICBuYW1lc1tDUFVfVEdMXS5wdXNoX2JhY2soInRpZ2VybGFrZSIpOwotICAgICAgICAgbmFtZXNb Q1BVX1RHTF0ucHVzaF9iYWNrKCJ0Z2wiKTsKLS0jZW5kaWYKLSAjaWYgSVNQQ19MTFZNX1ZFUlNJ T04gPj0gSVNQQ19MTFZNXzEyXzAKLSAgICAgICAgIG5hbWVzW0NQVV9BRExdLnB1c2hfYmFjaygi YWxkZXJsYWtlIik7Ci0gICAgICAgICBuYW1lc1tDUFVfQURMXS5wdXNoX2JhY2soImFkbCIpOwot QEAgLTQxMSwxMSArNDA3LDkgQEAgY2xhc3MgQWxsQ1BVcyB7Ci0gICAgICAgICBjb21wYXRbQ1BV X0FETF0gPSBTZXQoQ1BVX0FETCwgQ1BVX3g4Nl82NCwgQ1BVX0Jvbm5lbGwsIENQVV9QZW5yeW4s IENQVV9Db3JlMiwgQ1BVX05laGFsZW0sIENQVV9TaWx2ZXJtb250LAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIENQVV9TYW5keUJyaWRnZSwgQ1BVX0l2eUJyaWRnZSwgQ1BVX0hhc3dl bGwsIENQVV9Ccm9hZHdlbGwsIENQVV9Ob25lKTsKLSAjZW5kaWYKLS0jaWYgSVNQQ19MTFZNX1ZF UlNJT04gPj0gSVNQQ19MTFZNXzEwXzAKLSAgICAgICAgIGNvbXBhdFtDUFVfVEdMXSA9Ci0gICAg ICAgICAgICAgU2V0KENQVV9UR0wsIENQVV94ODZfNjQsIENQVV9Cb25uZWxsLCBDUFVfUGVucnlu LCBDUFVfQ29yZTIsIENQVV9OZWhhbGVtLCBDUFVfU2lsdmVybW9udCwgQ1BVX1NhbmR5QnJpZGdl LAotICAgICAgICAgICAgICAgICBDUFVfSXZ5QnJpZGdlLCBDUFVfSGFzd2VsbCwgQ1BVX0Jyb2Fk d2VsbCwgQ1BVX1NLWCwgQ1BVX0lDTCwgQ1BVX0lDWCwgQ1BVX05vbmUpOwotLSNlbmRpZgotICAg ICAgICAgY29tcGF0W0NQVV9JQ1hdID0gU2V0KENQVV9JQ1gsIENQVV94ODZfNjQsIENQVV9Cb25u ZWxsLCBDUFVfUGVucnluLCBDUFVfQ29yZTIsIENQVV9OZWhhbGVtLCBDUFVfU2lsdmVybW9udCwK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDUFVfU2FuZHlCcmlkZ2UsIENQVV9JdnlC cmlkZ2UsIENQVV9IYXN3ZWxsLCBDUFVfQnJvYWR3ZWxsLCBDUFVfU0tYLCBDUFVfSUNMLCBDUFVf Tm9uZSk7Ci0gCi1AQCAtNTU2LDkgKzU1MCw3IEBAIFRhcmdldDo6VGFyZ2V0KEFyY2ggYXJjaCwg Y29uc3QgY2hhciAqY3B1LCBJU1BDVGFyZ2V0IGlzcGNfdGFyZ2V0LCBib29sIHBpYywgYm9vCi0g I2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMl8wCi0gICAgICAgICBjYXNlIENQ VV9TUFI6Ci0gI2VuZGlmCi0tI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMF8w Ci0gICAgICAgICBjYXNlIENQVV9UR0w6Ci0tI2VuZGlmCi0gICAgICAgICBjYXNlIENQVV9JQ1g6 Ci0gICAgICAgICBjYXNlIENQVV9JQ0w6Ci0gICAgICAgICBjYXNlIENQVV9TS1g6Ci1AQCAtOTE2 LDcgKzkwOCw2IEBAIFRhcmdldDo6VGFyZ2V0KEFyY2ggYXJjaCwgY29uc3QgY2hhciAqY3B1LCBJ U1BDVGFyZ2V0IGlzcGNfdGFyZ2V0LCBib29sIHBpYywgYm9vCi0gICAgICAgICB9Ci0gICAgICAg ICBicmVhazsKLSAgICAgY2FzZSBJU1BDVGFyZ2V0Ojphdng1MTJza3hfaTh4NjQ6Ci0tI2lmIElT UENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMF8wIC8vIExMVk0gMTAuMCsKLSAgICAgICAg IC8vIFRoaXMgdGFyZ2V0IGlzIGVuYWJsZWQgb25seSBmb3IgTExWTSAxMC4wIGFuZCBsYXRlcgot ICAgICAgICAgLy8gYmVjYXVzZSBMTFZNIHJlcXVpcmVzIGEgbnVtYmVyIG9mIGZpeGVzLCB3aGlj aCBhcmUKLSAgICAgICAgIC8vIGNvbW1pdHRlZCB0byBMTFZNIDExLjAgYW5kIGNhbiBiZSBhcHBs aWVkIHRvIDEwLjAsIGJ1dCBub3QKLUBAIC05MzcsMTIgKzkyOCw3IEBAIFRhcmdldDo6VGFyZ2V0 KEFyY2ggYXJjaCwgY29uc3QgY2hhciAqY3B1LCBJU1BDVGFyZ2V0IGlzcGNfdGFyZ2V0LCBib29s IHBpYywgYm9vCi0gICAgICAgICB0aGlzLT5tX2hhc1ZlY1ByZWZldGNoID0gZmFsc2U7Ci0gICAg ICAgICBDUFVmcm9tSVNBID0gQ1BVX1NLWDsKLSAgICAgICAgIGJyZWFrOwotLSNlbHNlCi0tICAg ICAgICB1bnN1cHBvcnRlZF90YXJnZXQgPSB0cnVlOwotLSAgICAgICAgYnJlYWs7Ci0tI2VuZGlm Ci0gICAgIGNhc2UgSVNQQ1RhcmdldDo6YXZ4NTEyc2t4X2kxNngzMjoKLS0jaWYgSVNQQ19MTFZN X1ZFUlNJT04gPj0gSVNQQ19MTFZNXzEwXzAgLy8gTExWTSAxMC4wKwotICAgICAgICAgLy8gVGhp cyB0YXJnZXQgaXMgZW5hYmxlZCBvbmx5IGZvciBMTFZNIDEwLjAgYW5kIGxhdGVyCi0gICAgICAg ICAvLyBiZWNhdXNlIExMVk0gcmVxdWlyZXMgYSBudW1iZXIgb2YgZml4ZXMsIHdoaWNoIGFyZQot ICAgICAgICAgLy8gY29tbWl0dGVkIHRvIExMVk0gMTEuMCBhbmQgY2FuIGJlIGFwcGxpZWQgdG8g MTAuMCwgYnV0IG5vdAotQEAgLTk2MywxMCArOTQ5LDYgQEAgVGFyZ2V0OjpUYXJnZXQoQXJjaCBh cmNoLCBjb25zdCBjaGFyICpjcHUsIElTUENUYXJnZXQgaXNwY190YXJnZXQsIGJvb2wgcGljLCBi b28KLSAgICAgICAgIHRoaXMtPm1faGFzVmVjUHJlZmV0Y2ggPSBmYWxzZTsKLSAgICAgICAgIENQ VWZyb21JU0EgPSBDUFVfU0tYOwotICAgICAgICAgYnJlYWs7Ci0tI2Vsc2UKLS0gICAgICAgIHVu c3VwcG9ydGVkX3RhcmdldCA9IHRydWU7Ci0tICAgICAgICBicmVhazsKLS0jZW5kaWYKLSAjaWZk ZWYgSVNQQ19BUk1fRU5BQkxFRAotICAgICBjYXNlIElTUENUYXJnZXQ6Om5lb25faTh4MTY6Ci0g ICAgICAgICB0aGlzLT5tX2lzYSA9IFRhcmdldDo6TkVPTjsKLUBAIC0xNjYyLDExICsxNjQ0LDkg QEAgR2xvYmFsczo6R2xvYmFscygpIHsKLSAgICAgaXNNdWx0aVRhcmdldENvbXBpbGF0aW9uID0g ZmFsc2U7Ci0gICAgIGVycm9yTGltaXQgPSAtMTsKLSAKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04g Pj0gSVNQQ19MTFZNXzEwXzAKLSAgICAgZW5hYmxlVGltZVRyYWNlID0gZmFsc2U7Ci0gICAgIC8v IHNldCBkZWZhdWx0IGdyYW51bGFyaXR5IHRvIDUwMC4KLSAgICAgdGltZVRyYWNlR3JhbnVsYXJp dHkgPSA1MDA7Ci0tI2VuZGlmCi0gICAgIHRhcmdldCA9IE5VTEw7Ci0gICAgIGN0eCA9IG5ldyBs bHZtOjpMTFZNQ29udGV4dDsKLSAKLWRpZmYgLS1naXQgYS9zcmMvaXNwYy5oIGIvc3JjL2lzcGMu aAotaW5kZXggZTI1ZDg4MzBlLi5kZTM1N2EyMWMgMTAwNjQ0Ci0tLS0gYS9zcmMvaXNwYy5oCi0r KysgYi9zcmMvaXNwYy5oCi1AQCAtNjk1LDEzICs2OTUsMTIgQEAgc3RydWN0IEdsb2JhbHMgewot IAotICAgICAvKiBOdW1iZXIgb2YgZXJyb3JzIHRvIHNob3cgaW4gSVNQQy4gKi8KLSAgICAgaW50 IGVycm9yTGltaXQ7Ci0tI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMF8wCi0r Ci0gICAgIC8qIFdoZW4gdHJ1ZSwgZW5hYmxlIGNvbXBpbGUgdGltZSB0cmFjaW5nLiAqLwotICAg ICBib29sIGVuYWJsZVRpbWVUcmFjZTsKLSAKLSAgICAgLyogV2hlbiBjb21waWxlIHRpbWUgdHJh Y2luZyBpcyBlbmFibGVkLCBzZXQgdGltZSBncmFudWxhcml0eS4gKi8KLSAgICAgaW50IHRpbWVU cmFjZUdyYW51bGFyaXR5OwotLSNlbmRpZgotIH07Ci0gCi0gZW51bSB7Ci1kaWZmIC0tZ2l0IGEv c3JjL2lzcGNfdmVyc2lvbi5oIGIvc3JjL2lzcGNfdmVyc2lvbi5oCi1pbmRleCBkNzgxMzQ3ZmQu LjQzNGIyZDY3OCAxMDA2NDQKLS0tLSBhL3NyYy9pc3BjX3ZlcnNpb24uaAotKysrIGIvc3JjL2lz cGNfdmVyc2lvbi5oCi1AQCAtNDQsMTMgKzQ0LDExIEBACi0gCi0gI2RlZmluZSBJU1BDX0xMVk1f VkVSU0lPTiAoTExWTV9WRVJTSU9OX01BSk9SICogMTAwMDAgKyBMTFZNX1ZFUlNJT05fTUlOT1Ig KiAxMDApCi0gCi0tI2RlZmluZSBJU1BDX0xMVk1fOF8wIDgwMDAwCi0tI2RlZmluZSBJU1BDX0xM Vk1fOV8wIDkwMDAwCi0gI2RlZmluZSBJU1BDX0xMVk1fMTBfMCAxMDAwMDAKLSAjZGVmaW5lIElT UENfTExWTV8xMV8wIDExMDAwMAotICNkZWZpbmUgSVNQQ19MTFZNXzEyXzAgMTIwMDAwCi0gCi0t I2RlZmluZSBPTERFU1RfU1VQUE9SVEVEX0xMVk0gSVNQQ19MTFZNXzhfMAotKyNkZWZpbmUgT0xE RVNUX1NVUFBPUlRFRF9MTFZNIElTUENfTExWTV8xMF8wCi0gI2RlZmluZSBMQVRFU1RfU1VQUE9S VEVEX0xMVk0gSVNQQ19MTFZNXzEyXzAKLSAKLSAjaWZkZWYgX19pc3BjX194c3RyCi1kaWZmIC0t Z2l0IGEvc3JjL21haW4uY3BwIGIvc3JjL21haW4uY3BwCi1pbmRleCA4ZjY0MzMwY2MuLjVjOTIw ZWFiYyAxMDA2NDQKLS0tLSBhL3NyYy9tYWluLmNwcAotKysrIGIvc3JjL21haW4uY3BwCi1AQCAt NTUsOSArNTUsNyBAQAotICNpbmNsdWRlIDxsbHZtL1N1cHBvcnQvU2lnbmFscy5oPgotICNpbmNs dWRlIDxsbHZtL1N1cHBvcnQvVGFyZ2V0UmVnaXN0cnkuaD4KLSAjaW5jbHVkZSA8bGx2bS9TdXBw b3J0L1RhcmdldFNlbGVjdC5oPgotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1f MTBfMAotICNpbmNsdWRlIDxsbHZtL1N1cHBvcnQvVG9vbE91dHB1dEZpbGUuaD4KLS0jZW5kaWYK LSAKLSAjaWZkZWYgSVNQQ19IT1NUX0lTX1dJTkRPV1MKLSAjZGVmaW5lIHN0cmNhc2VjbXAgc3Ry aWNtcAotQEAgLTE4MSwxMSArMTc5LDkgQEAgc3RhdGljIHZvaWQgbFByaW50VmVyc2lvbigpIHsK LSAgICAgc25wcmludGYodGFyZ2V0SGVscCwgc2l6ZW9mKHRhcmdldEhlbHApLCAiWy0tdGFyZ2V0 LW9zPTxvcz5dXHRcdFx0U2VsZWN0IHRhcmdldCBPUy4gIDxvcz49eyVzfSIsCi0gICAgICAgICAg ICAgIGctPnRhcmdldF9yZWdpc3RyeS0+Z2V0U3VwcG9ydGVkT1NlcygpLmNfc3RyKCkpOwotICAg ICBQcmludFdpdGhXb3JkQnJlYWtzKHRhcmdldEhlbHAsIDI0LCBUZXJtaW5hbFdpZHRoKCksIHN0 ZG91dCk7Ci0tI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMF8wCi0gICAgIHBy aW50ZigiICAgIFstLXRpbWUtdHJhY2VdXHRcdFx0VHVybiBvbiB0aW1lIHByb2ZpbGVyLiBHZW5l cmF0ZXMgSlNPTiBmaWxlIGJhc2VkIG9uIG91dHB1dCBmaWxlbmFtZS5cbiIpOwotICAgICBwcmlu dGYoIiAgICBbLS10aW1lLXRyYWNlLWdyYW51bGFyaXR5PTx2YWx1ZT5cdE1pbmltdW0gdGltZSBn cmFudWxhcml0eSAoaW4gbWljcm9zZWNvbmRzKSB0cmFjZWQgYnkgdGltZSAiCi0gICAgICAgICAg ICAicHJvZmlsZXIuXG4iKTsKLS0jZW5kaWYKLSAgICAgcHJpbnRmKCIgICAgWy0tdmVyc2lvbl1c dFx0XHRcdFByaW50IGlzcGMgdmVyc2lvblxuIik7Ci0gI2lmZGVmIElTUENfR0VOWF9FTkFCTEVE Ci0gICAgIHByaW50ZigiICAgIFstLXZjLW9wdGlvbnM9PFwiLW9wdGlvbjEgLW9wdGlvbjIuLi5c Ij5dXHRcdFx0XHRQYXNzIGFkZGl0aW9uYWwgb3B0aW9ucyB0byBWZWN0b3IgQ29tcGlsZXIgYmFj a2VuZFxuIik7Ci1AQCAtNDYyLDcgKzQ1OCw2IEBAIHN0YXRpYyB2b2lkIHNldENhbGxpbmdDb252 KFZlY3RvckNhbGxTdGF0dXMgdmVjdG9yQ2FsbCwgQXJjaCBhcmNoKSB7Ci0gICAgIH0KLSB9Ci0g Ci0tI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMF8wCi0gc3RhdGljIHZvaWQg d3JpdGVDb21waWxlVGltZUZpbGUoY29uc3QgY2hhciAqb3V0RmlsZU5hbWUpIHsKLSAgICAgbGx2 bTo6U21hbGxTdHJpbmc8MTI4PiBqc29uRmlsZU5hbWUob3V0RmlsZU5hbWUpOwotICAgICBqc29u RmlsZU5hbWUuYXBwZW5kKCIuanNvbiIpOwotQEAgLTQ3OSw3ICs0NzQsNiBAQCBzdGF0aWMgdm9p ZCB3cml0ZUNvbXBpbGVUaW1lRmlsZShjb25zdCBjaGFyICpvdXRGaWxlTmFtZSkgewotICAgICBv Zi0+a2VlcCgpOwotICAgICByZXR1cm47Ci0gfQotLSNlbmRpZgotIAotIHN0YXRpYyBzdGQ6OnNl dDxpbnQ+IFBhcnNpbmdQaGFzZXMoY2hhciAqc3RhZ2VzLCBBcmdFcnJvcnMgJmVycm9ySGFuZGxl cikgewotICAgICBjb25zdGV4cHIgaW50IHBhcnNpbmdfbGltaXQgPSAxMDA7Ci1AQCAtNzkxLDEy ICs3ODUsMTAgQEAgaW50IG1haW4oaW50IEFyZ2MsIGNoYXIgKkFyZ3ZbXSkgewotICAgICAgICAg ICAgIH0KLSAgICAgICAgIH0gZWxzZSBpZiAoIXN0cm5jbXAoYXJndltpXSwgIi0tZm9yY2UtYWxp Z25tZW50PSIsIDE4KSkgewotICAgICAgICAgICAgIGctPmZvcmNlQWxpZ25tZW50ID0gYXRvaShh cmd2W2ldICsgMTgpOwotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTBfMAot ICAgICAgICAgfSBlbHNlIGlmICghc3RyY21wKGFyZ3ZbaV0sICItLXRpbWUtdHJhY2UiKSkgewot ICAgICAgICAgICAgIGctPmVuYWJsZVRpbWVUcmFjZSA9IHRydWU7Ci0gICAgICAgICB9IGVsc2Ug aWYgKCFzdHJuY21wKGFyZ3ZbaV0sICItLXRpbWUtdHJhY2UtZ3JhbnVsYXJpdHk9IiwgMjUpKSB7 Ci0gICAgICAgICAgICAgZy0+dGltZVRyYWNlR3JhbnVsYXJpdHkgPSBhdG9pKGFyZ3ZbaV0gKyAy NSk7Ci0tI2VuZGlmCi0gICAgICAgICB9IGVsc2UgaWYgKCFzdHJjbXAoYXJndltpXSwgIi0td29m ZiIpIHx8ICFzdHJjbXAoYXJndltpXSwgIi13b2ZmIikpIHsKLSAgICAgICAgICAgICBnLT5kaXNh YmxlV2FybmluZ3MgPSB0cnVlOwotICAgICAgICAgICAgIGctPmVtaXRQZXJmV2FybmluZ3MgPSBm YWxzZTsKLUBAIC0xMDU5LDcgKzEwNTEsNiBAQCBpbnQgbWFpbihpbnQgQXJnYywgY2hhciAqQXJn dltdKSB7Ci0gCi0gICAgIC8vIFRoaXMgbmVlZHMgdG8gaGFwcGVuIGFmdGVyIHRoZSBUYXJnZXRP UyBpcyBkZWNpZGVkLgotICAgICBzZXRDYWxsaW5nQ29udih2ZWN0b3JDYWxsLCBhcmNoKTsKLS0j aWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzEwXzAKLSAgICAgaWYgKGctPmVuYWJs ZVRpbWVUcmFjZSkgewotICAgICAgICAgbGx2bTo6dGltZVRyYWNlUHJvZmlsZXJJbml0aWFsaXpl KGctPnRpbWVUcmFjZUdyYW51bGFyaXR5LCAiaXNwYyIpOwotICAgICB9Ci1AQCAtMTA3Nyw5ICsx MDY4LDUgQEAgaW50IG1haW4oaW50IEFyZ2MsIGNoYXIgKkFyZ3ZbXSkgewotICAgICAgICAgfQot ICAgICAgICAgbGx2bTo6dGltZVRyYWNlUHJvZmlsZXJDbGVhbnVwKCk7Ci0gICAgIH0KLS0jZWxz ZQotLSAgICBpbnQgcmV0ID0gTW9kdWxlOjpDb21waWxlQW5kT3V0cHV0KGZpbGUsIGFyY2gsIGNw dSwgdGFyZ2V0cywgZmxhZ3MsIG90LCBvdXRGaWxlTmFtZSwgaGVhZGVyRmlsZU5hbWUsIGRlcHNG aWxlTmFtZSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXBzVGFy Z2V0TmFtZSwgaG9zdFN0dWJGaWxlTmFtZSwgZGV2U3R1YkZpbGVOYW1lKTsKLS0jZW5kaWYKLSAg ICAgcmV0dXJuIHJldDsKLSB9Ci1kaWZmIC0tZ2l0IGEvc3JjL21vZHVsZS5jcHAgYi9zcmMvbW9k dWxlLmNwcAotaW5kZXggZmU3NDUyZGYxLi5hODVmZWM3N2EgMTAwNjQ0Ci0tLS0gYS9zcmMvbW9k dWxlLmNwcAotKysrIGIvc3JjL21vZHVsZS5jcHAKLUBAIC0xNzAsOSArMTcwLDcgQEAgTW9kdWxl OjpNb2R1bGUoY29uc3QgY2hhciAqZm4pIHsKLSAgICAgbW9kdWxlLT5zZXREYXRhTGF5b3V0KGct PnRhcmdldC0+Z2V0RGF0YUxheW91dCgpLT5nZXRTdHJpbmdSZXByZXNlbnRhdGlvbigpKTsKLSAK LSAgICAgaWYgKGctPmdlbmVyYXRlRGVidWdnaW5nU3ltYm9scykgewotLSNpZiBJU1BDX0xMVk1f VkVSU0lPTiA+PSBJU1BDX0xMVk1fMTBfMAotICAgICAgICAgbGx2bTo6VGltZVRyYWNlU2NvcGUg VGltZVNjb3BlKCJDcmVhdGUgRGVidWcgRGF0YSIpOwotLSNlbmRpZgotICAgICAgICAgLy8gVG8g ZW5hYmxlIGRlYnVnIGluZm9ybWF0aW9uIG9uIFdpbmRvd3MsIHdlIGhhdmUgdG8gbGV0IGxsdm0g a25vdywgdGhhdAotICAgICAgICAgLy8gZGVidWcgaW5mb3JtYXRpb24gc2hvdWxkIGJlIGVtaXR0 ZWQgaW4gQ29kZVZpZXcgZm9ybWF0LgotICAgICAgICAgaWYgKGctPnRhcmdldF9vcyA9PSBUYXJn ZXRPUzo6d2luZG93cykgewotQEAgLTIyNiwxMCArMjI0LDggQEAgZXh0ZXJuIFlZX0JVRkZFUl9T VEFURSB5eV9jcmVhdGVfYnVmZmVyKEZJTEUgKiwgaW50KTsKLSBleHRlcm4gdm9pZCB5eV9kZWxl dGVfYnVmZmVyKFlZX0JVRkZFUl9TVEFURSk7Ci0gCi0gaW50IE1vZHVsZTo6Q29tcGlsZUZpbGUo KSB7Ci0tI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMF8wCi0gICAgIGxsdm06 OlRpbWVUcmFjZVNjb3BlIENvbXBpbGVGaWxlVGltZVNjb3BlKAotICAgICAgICAgIkNvbXBpbGVG aWxlIiwgbGx2bTo6U3RyaW5nUmVmKGZpbGVuYW1lICsgKCJfIiArIHN0ZDo6c3RyaW5nKGctPnRh cmdldC0+R2V0SVNBU3RyaW5nKCkpKSkpOwotLSNlbmRpZgotICAgICBleHRlcm4gdm9pZCBQYXJz ZXJJbml0KCk7Ci0gICAgIFBhcnNlckluaXQoKTsKLSAKLUBAIC0yMzgsMTggKzIzNCwxNCBAQCBp bnQgTW9kdWxlOjpDb21waWxlRmlsZSgpIHsKLSAgICAgLy8gdmFyaWFibGUgJ20nIHRvIGJlIGlu aXRpYWxpemVkIGFuZCBhdmFpbGFibGUgKHdoaWNoIGl0IGlzbid0IHVudGlsCi0gICAgIC8vIHRo ZSBNb2R1bGUgY29uc3RydWN0b3IgcmV0dXJucy4uLikKLSAgICAgewotLSNpZiBJU1BDX0xMVk1f VkVSU0lPTiA+PSBJU1BDX0xMVk1fMTBfMAotICAgICAgICAgbGx2bTo6VGltZVRyYWNlU2NvcGUg VGltZVNjb3BlKCJEZWZpbmVTdGRsaWIiKTsKLS0jZW5kaWYKLSAgICAgICAgIERlZmluZVN0ZGxp YihzeW1ib2xUYWJsZSwgZy0+Y3R4LCBtb2R1bGUsIGctPmluY2x1ZGVTdGRsaWIpOwotICAgICB9 Ci0gCi0gICAgIGJvb2wgcnVuUHJlcHJvY2Vzc29yID0gZy0+cnVuQ1BQOwotIAotICAgICBpZiAo cnVuUHJlcHJvY2Vzc29yKSB7Ci0tI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8x MF8wCi0gICAgICAgICBsbHZtOjpUaW1lVHJhY2VTY29wZSBUaW1lU2NvcGUoIkZyb250ZW5kIHBh cnNlciIpOwotLSNlbmRpZgotICAgICAgICAgaWYgKCFJc1N0ZGluKGZpbGVuYW1lKSkgewotICAg ICAgICAgICAgIC8vIFRyeSB0byBvcGVuIHRoZSBmaWxlIGZpcnN0LCBzaW5jZSBvdGhlcndpc2Ug d2UgY3Jhc2ggaW4gdGhlCi0gICAgICAgICAgICAgLy8gcHJlcHJvY2Vzc29yIGlmIHRoZSBmaWxl IGRvZXNuJ3QgZXhpc3QuCi1AQCAtMjY4LDkgKzI2MCw3IEBAIGludCBNb2R1bGU6OkNvbXBpbGVG aWxlKCkgewotICAgICAgICAgeXlwYXJzZSgpOwotICAgICAgICAgeXlfZGVsZXRlX2J1ZmZlcihz dHJidWYpOwotICAgICB9IGVsc2UgewotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xM Vk1fMTBfMAotICAgICAgICAgbGx2bTo6VGltZVRyYWNlU2NvcGUgVGltZVNjb3BlKCJGcm9udGVu ZCBwYXJzZXIiKTsKLS0jZW5kaWYKLSAgICAgICAgIC8vIE5vIHByZXByb2Nlc3NvciwganVzdCBv cGVuIHVwIHRoZSBmaWxlIGlmIGl0J3Mgbm90IHN0ZGluLi4KLSAgICAgICAgIEZJTEUgKmYgPSBO VUxMOwotICAgICAgICAgaWYgKElzU3RkaW4oZmlsZW5hbWUpKSB7Ci1AQCAtMjk3LDkgKzI4Nyw3 IEBAIGludCBNb2R1bGU6OkNvbXBpbGVGaWxlKCkgewotIAotICAgICBpZiAoZGlCdWlsZGVyKQot ICAgICAgICAgZGlCdWlsZGVyLT5maW5hbGl6ZSgpOwotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+ PSBJU1BDX0xMVk1fMTBfMAotICAgICBsbHZtOjpUaW1lVHJhY2VTY29wZSBUaW1lU2NvcGUoIk9w dGltaXplIik7Ci0tI2VuZGlmCi0gICAgIGlmIChlcnJvckNvdW50ID09IDApCi0gICAgICAgICBP cHRpbWl6ZShtb2R1bGUsIGctPm9wdC5sZXZlbCk7Ci0gCi1AQCAtMTI0MywxNSArMTIzMSw4IEBA IGJvb2wgTW9kdWxlOjp3cml0ZU9iamVjdEZpbGVPckFzc2VtYmx5KGxsdm06OlRhcmdldE1hY2hp bmUgKnRhcmdldE1hY2hpbmUsIGxsdm06Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgY29uc3QgY2hhciAqb3V0RmlsZU5hbWUpIHsKLSAgICAgLy8gRmlndXJlIG91dCBp ZiB3ZSdyZSBnZW5lcmF0aW5nIG9iamVjdCBmaWxlIG9yIGFzc2VtYmx5IG91dHB1dCwgYW5kCi0g ICAgIC8vIHNldCBiaW5hcnkgb3V0cHV0IGZvciBvYmplY3QgZmlsZXMKLS0jaWYgSVNQQ19MTFZN X1ZFUlNJT04gPD0gSVNQQ19MTFZNXzlfMAotLSAgICBBc3NlcnQoIWctPnRhcmdldC0+aXNHZW5Y VGFyZ2V0KCkpOwotLSAgICBsbHZtOjpUYXJnZXRNYWNoaW5lOjpDb2RlR2VuRmlsZVR5cGUgZmls ZVR5cGUgPQotLSAgICAgICAgKG91dHB1dFR5cGUgPT0gT2JqZWN0KSA/IGxsdm06OlRhcmdldE1h Y2hpbmU6OkNHRlRfT2JqZWN0RmlsZSA6IGxsdm06OlRhcmdldE1hY2hpbmU6OkNHRlRfQXNzZW1i bHlGaWxlOwotLSAgICBib29sIGJpbmFyeSA9IChmaWxlVHlwZSA9PSBsbHZtOjpUYXJnZXRNYWNo aW5lOjpDR0ZUX09iamVjdEZpbGUpOwotLSNlbHNlIC8vIExMVk0gMTAuMCsKLSAgICAgbGx2bTo6 Q29kZUdlbkZpbGVUeXBlIGZpbGVUeXBlID0gKG91dHB1dFR5cGUgPT0gT2JqZWN0KSA/IGxsdm06 OkNHRlRfT2JqZWN0RmlsZSA6IGxsdm06OkNHRlRfQXNzZW1ibHlGaWxlOwotICAgICBib29sIGJp bmFyeSA9IChmaWxlVHlwZSA9PSBsbHZtOjpDR0ZUX09iamVjdEZpbGUpOwotLSNlbmRpZgotIAot ICAgICBsbHZtOjpzeXM6OmZzOjpPcGVuRmxhZ3MgZmxhZ3MgPSBiaW5hcnkgPyBsbHZtOjpzeXM6 OmZzOjpGX05vbmUgOiBsbHZtOjpzeXM6OmZzOjpGX1RleHQ7Ci0gCi1AQCAtMjIxOSwxMSArMjIw MCw3IEBAIHZvaWQgTW9kdWxlOjpleGVjUHJlcHJvY2Vzc29yKGNvbnN0IGNoYXIgKmluZmlsZW5h bWUsIGxsdm06OnJhd19zdHJpbmdfb3N0cmVhbSAqCi0gICAgIGluc3Quc2V0VGFyZ2V0KHRhcmdl dCk7Ci0gICAgIGluc3QuY3JlYXRlU291cmNlTWFuYWdlcihpbnN0LmdldEZpbGVNYW5hZ2VyKCkp OwotIAotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA8PSBJU1BDX0xMVk1fOV8wCi0tICAgIGNsYW5n OjpGcm9udGVuZElucHV0RmlsZSBpbnB1dEZpbGUoaW5maWxlbmFtZSwgY2xhbmc6OklucHV0S2lu ZDo6VW5rbm93bik7Ci0tI2Vsc2UgLy8gTExWTSAxMC4wKwotICAgICBjbGFuZzo6RnJvbnRlbmRJ bnB1dEZpbGUgaW5wdXRGaWxlKGluZmlsZW5hbWUsIGNsYW5nOjpJbnB1dEtpbmQoKSk7Ci0tI2Vu ZGlmCi0gCi0gICAgIGluc3QuSW5pdGlhbGl6ZVNvdXJjZU1hbmFnZXIoaW5wdXRGaWxlKTsKLSAK LUBAIC0yNzIyLDkgKzI2OTksNyBAQCBpbnQgTW9kdWxlOjpDb21waWxlQW5kT3V0cHV0KGNvbnN0 IGNoYXIgKnNyY0ZpbGUsIEFyY2ggYXJjaCwgY29uc3QgY2hhciAqY3B1LCBzdAotIAotICAgICAg ICAgbSA9IG5ldyBNb2R1bGUoc3JjRmlsZSk7Ci0gICAgICAgICBpZiAobS0+Q29tcGlsZUZpbGUo KSA9PSAwKSB7Ci0tI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMF8wCi0gICAg ICAgICAgICAgbGx2bTo6VGltZVRyYWNlU2NvcGUgVGltZVNjb3BlKCJCYWNrZW5kIik7Ci0tI2Vu ZGlmCi0gI2lmZGVmIElTUENfR0VOWF9FTkFCTEVECi0gICAgICAgICAgICAgaWYgKG91dHB1dFR5 cGUgPT0gQXNtIHx8IG91dHB1dFR5cGUgPT0gT2JqZWN0KSB7Ci0gICAgICAgICAgICAgICAgIGlm IChnLT50YXJnZXQtPmlzR2VuWFRhcmdldCgpKSB7Ci1AQCAtMjg1NSw5ICsyODMwLDcgQEAgaW50 IE1vZHVsZTo6Q29tcGlsZUFuZE91dHB1dChjb25zdCBjaGFyICpzcmNGaWxlLCBBcmNoIGFyY2gs IGNvbnN0IGNoYXIgKmNwdSwgc3QKLSAKLSAgICAgICAgICAgICBtID0gbmV3IE1vZHVsZShzcmNG aWxlKTsKLSAgICAgICAgICAgICBpbnQgY29tcGlsZUZpbGVFcnJvciA9IG0tPkNvbXBpbGVGaWxl KCk7Ci0tI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMF8wCi0gICAgICAgICAg ICAgbGx2bTo6VGltZVRyYWNlU2NvcGUgVGltZVNjb3BlKCJCYWNrZW5kIik7Ci0tI2VuZGlmCi0g ICAgICAgICAgICAgaWYgKGNvbXBpbGVGaWxlRXJyb3IgPT0gMCkgewotICAgICAgICAgICAgICAg ICAvLyBDcmVhdGUgdGhlIGRpc3BhdGNoIG1vZHVsZSwgdW5sZXNzIGFscmVhZHkgY3JlYXRlZDsK LSAgICAgICAgICAgICAgICAgLy8gaW4gdGhlIGxhdHRlciBjYXNlLCBqdXN0IGRvIHRoZSBjaGVj a2luZwotZGlmZiAtLWdpdCBhL3NyYy9tb2R1bGUuaCBiL3NyYy9tb2R1bGUuaAotaW5kZXggNjFk M2NmZWEwLi42MDMxMjRkNTAgMTAwNjQ0Ci0tLS0gYS9zcmMvbW9kdWxlLmgKLSsrKyBiL3NyYy9t b2R1bGUuaAotQEAgLTQzLDkgKzQzLDcgQEAKLSAKLSAjaW5jbHVkZSA8bGx2bS9JUi9EZWJ1Z0lu Zm8uaD4KLSAKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzEwXzAKLSAjaW5j bHVkZSA8bGx2bS9TdXBwb3J0L1RpbWVQcm9maWxlci5oPgotLSNlbmRpZgotIAotICNpZmRlZiBJ U1BDX0dFTlhfRU5BQkxFRAotICNpbmNsdWRlICJvY2xfaWdjX2ludGVyZmFjZS9pZ2Nfb2NsX2Rl dmljZV9jdHguaCIKLWRpZmYgLS1naXQgYS9zcmMvb3B0LmNwcCBiL3NyYy9vcHQuY3BwCi1pbmRl eCBhNjU1YTgzNDQuLjViMWFjN2I2MyAxMDA2NDQKLS0tLSBhL3NyYy9vcHQuY3BwCi0rKysgYi9z cmMvb3B0LmNwcAotQEAgLTY2LDYgKzY2LDcgQEAKLSAjaW5jbHVkZSA8bGx2bS9JUi9JbnN0cnVj dGlvbnMuaD4KLSAjaW5jbHVkZSA8bGx2bS9JUi9JbnRyaW5zaWNJbnN0Lmg+Ci0gI2luY2x1ZGUg PGxsdm0vSVIvSW50cmluc2ljcy5oPgotKyNpbmNsdWRlIDxsbHZtL0lSL0ludHJpbnNpY3NYODYu aD4KLSAjaW5jbHVkZSA8bGx2bS9JUi9MZWdhY3lQYXNzTWFuYWdlci5oPgotICNpbmNsdWRlIDxs bHZtL0lSL01vZHVsZS5oPgotICNpbmNsdWRlIDxsbHZtL0lSL1BhdHRlcm5NYXRjaC5oPgotQEAg LTg1LDkgKzg2LDYgQEAKLSAjaW5jbHVkZSA8bGx2bS9UcmFuc2Zvcm1zL1NjYWxhci9JbnN0U2lt cGxpZnlQYXNzLmg+Ci0gI2luY2x1ZGUgPGxsdm0vVHJhbnNmb3Jtcy9VdGlscy5oPgotICNpbmNs dWRlIDxsbHZtL1RyYW5zZm9ybXMvVXRpbHMvQmFzaWNCbG9ja1V0aWxzLmg+Ci0tI2lmIElTUENf TExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMF8wCi0tI2luY2x1ZGUgPGxsdm0vSVIvSW50cmlu c2ljc1g4Ni5oPgotLSNlbmRpZgotIAotICNpZmRlZiBJU1BDX0hPU1RfSVNfTElOVVgKLSAjaW5j bHVkZSA8YWxsb2NhLmg+Ci1AQCAtMTAwMywxMCArMTAwMSw3IEBAIGJvb2wgSW50cmluc2ljc09w dDo6cnVuT25CYXNpY0Jsb2NrKGxsdm06OkJhc2ljQmxvY2sgJmJiKSB7Ci0gICAgICAgICAgICAg ICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgIGFsaWduID0gY2FsbEluc3QtPmdldENhbGxl ZEZ1bmN0aW9uKCkgPT0gYXZ4TWFza2VkTG9hZDMyID8gNCA6IDg7Ci0gICAgICAgICAgICAgICAg IG5hbWUgPSBMTFZNR2V0TmFtZShjYWxsSW5zdC0+Z2V0QXJnT3BlcmFuZCgwKSwgIl9sb2FkIik7 Ci0tI2lmIElTUENfTExWTV9WRVJTSU9OIDw9IElTUENfTExWTV85XzAKLS0gICAgICAgICAgICAg ICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmxvYWRJbnN0ID0KLS0gICAgICAgICAgICAgICAgICAgIG5l dyBsbHZtOjpMb2FkSW5zdChjYXN0UHRyLCBuYW1lLCBmYWxzZSAvKiBub3Qgdm9sYXRpbGUgKi8s IGFsaWduLCAobGx2bTo6SW5zdHJ1Y3Rpb24gKilOVUxMKTsKLS0jZWxpZiBJU1BDX0xMVk1fVkVS U0lPTiA9PSBJU1BDX0xMVk1fMTBfMAotKyNpZiBJU1BDX0xMVk1fVkVSU0lPTiA9PSBJU1BDX0xM Vk1fMTBfMAotICAgICAgICAgICAgICAgICBsbHZtOjpJbnN0cnVjdGlvbiAqbG9hZEluc3QgPSBu ZXcgbGx2bTo6TG9hZEluc3QoY2FzdFB0ciwgbmFtZSwgZmFsc2UgLyogbm90IHZvbGF0aWxlICov LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgbGx2bTo6TWF5YmVBbGlnbihhbGlnbiksIChsbHZtOjpJbnN0cnVjdGlvbiAq KU5VTEwpOwotICNlbHNlCi1AQCAtMTA0MywxMyArMTAzOCw4IEBAIGJvb2wgSW50cmluc2ljc09w dDo6cnVuT25CYXNpY0Jsb2NrKGxsdm06OkJhc2ljQmxvY2sgJmJiKSB7Ci0gICAgICAgICAgICAg ICAgICAgICBhbGlnbiA9IGctPnRhcmdldC0+Z2V0TmF0aXZlVmVjdG9yQWxpZ25tZW50KCk7Ci0g ICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgIGFsaWduID0gY2FsbElu c3QtPmdldENhbGxlZEZ1bmN0aW9uKCkgPT0gYXZ4TWFza2VkU3RvcmUzMiA/IDQgOiA4OwotLSNp ZiBJU1BDX0xMVk1fVkVSU0lPTiA8PSBJU1BDX0xMVk1fOV8wCi0tICAgICAgICAgICAgICAgIGxs dm06OlN0b3JlSW5zdCAqc3RvcmVJbnN0ID0gbmV3IGxsdm06OlN0b3JlSW5zdChydmFsdWUsIGNh c3RQdHIsIChsbHZtOjpJbnN0cnVjdGlvbiAqKU5VTEwpOwotLSAgICAgICAgICAgICAgICBzdG9y ZUluc3QtPnNldEFsaWdubWVudChhbGlnbik7Ci0tI2Vsc2UKLSAgICAgICAgICAgICAgICAgbGx2 bTo6U3RvcmVJbnN0ICpzdG9yZUluc3QgPSBuZXcgbGx2bTo6U3RvcmVJbnN0KHJ2YWx1ZSwgY2Fz dFB0ciwgKGxsdm06Okluc3RydWN0aW9uICopTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06Ok1heWJlQWxp Z24oYWxpZ24pLnZhbHVlT3JPbmUoKSk7Ci0tI2VuZGlmCi0gICAgICAgICAgICAgICAgIGxDb3B5 TWV0YWRhdGEoc3RvcmVJbnN0LCBjYWxsSW5zdCk7Ci0gICAgICAgICAgICAgICAgIGxsdm06OlJl cGxhY2VJbnN0V2l0aEluc3QoY2FsbEluc3QsIHN0b3JlSW5zdCk7Ci0gCi1AQCAtMTA2Niw5ICsx MDU2LDcgQEAgYm9vbCBJbnRyaW5zaWNzT3B0OjpydW5PbkJhc2ljQmxvY2sobGx2bTo6QmFzaWNC bG9jayAmYmIpIHsKLSAKLSBib29sIEludHJpbnNpY3NPcHQ6OnJ1bk9uRnVuY3Rpb24obGx2bTo6 RnVuY3Rpb24gJkYpIHsKLSAKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzEw XzAKLSAgICAgbGx2bTo6VGltZVRyYWNlU2NvcGUgRnVuY1Njb3BlKCJJbnRyaW5zaWNzT3B0Ojpy dW5PbkZ1bmN0aW9uIiwgRi5nZXROYW1lKCkpOwotLSNlbmRpZgotICAgICBib29sIG1vZGlmaWVk QW55ID0gZmFsc2U7Ci0gICAgIGZvciAobGx2bTo6QmFzaWNCbG9jayAmQkIgOiBGKSB7Ci0gICAg ICAgICBtb2RpZmllZEFueSB8PSBydW5PbkJhc2ljQmxvY2soQkIpOwotQEAgLTEyMzksOSArMTIy Nyw3IEBAIGJvb2wgSW5zdHJ1Y3Rpb25TaW1wbGlmeVBhc3M6OnJ1bk9uQmFzaWNCbG9jayhsbHZt OjpCYXNpY0Jsb2NrICZiYikgewotIAotIGJvb2wgSW5zdHJ1Y3Rpb25TaW1wbGlmeVBhc3M6OnJ1 bk9uRnVuY3Rpb24obGx2bTo6RnVuY3Rpb24gJkYpIHsKLSAKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJ T04gPj0gSVNQQ19MTFZNXzEwXzAKLSAgICAgbGx2bTo6VGltZVRyYWNlU2NvcGUgRnVuY1Njb3Bl KCJJbnN0cnVjdGlvblNpbXBsaWZ5UGFzczo6cnVuT25GdW5jdGlvbiIsIEYuZ2V0TmFtZSgpKTsK LS0jZW5kaWYKLSAgICAgYm9vbCBtb2RpZmllZEFueSA9IGZhbHNlOwotICAgICBmb3IgKGxsdm06 OkJhc2ljQmxvY2sgJkJCIDogRikgewotICAgICAgICAgbW9kaWZpZWRBbnkgfD0gcnVuT25CYXNp Y0Jsb2NrKEJCKTsKLUBAIC0yOTc0LDE2ICsyOTYwLDEwIEBAIHN0YXRpYyBib29sIGxJbXByb3Zl TWFza2VkU3RvcmUobGx2bTo6Q2FsbEluc3QgKmNhbGxJbnN0KSB7Ci0gCi0gICAgICAgICAgICAg bHZhbHVlID0gbmV3IGxsdm06OkJpdENhc3RJbnN0KGx2YWx1ZSwgcHRyVHlwZSwgImx2YWx1ZV90 b19wdHJfdHlwZSIsIGNhbGxJbnN0KTsKLSAgICAgICAgICAgICBsQ29weU1ldGFkYXRhKGx2YWx1 ZSwgY2FsbEluc3QpOwotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA8PSBJU1BDX0xMVk1fOV8wCi0t ICAgICAgICAgICAgc3RvcmUgPQotLSAgICAgICAgICAgICAgICBuZXcgbGx2bTo6U3RvcmVJbnN0 KHJ2YWx1ZSwgbHZhbHVlLCBmYWxzZSAvKiBub3Qgdm9sYXRpbGUgKi8sCi0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZy0+b3B0LmZvcmNlQWxpZ25lZE1lbW9yeSA/IGctPnRh cmdldC0+Z2V0TmF0aXZlVmVjdG9yQWxpZ25tZW50KCkgOiBpbmZvLT5hbGlnbik7Ci0tI2Vsc2UK LSAgICAgICAgICAgICBzdG9yZSA9IG5ldyBsbHZtOjpTdG9yZUluc3QoCi0gICAgICAgICAgICAg ICAgIHJ2YWx1ZSwgbHZhbHVlLCBmYWxzZSAvKiBub3Qgdm9sYXRpbGUgKi8sCi0gICAgICAgICAg ICAgICAgIGxsdm06Ok1heWJlQWxpZ24oZy0+b3B0LmZvcmNlQWxpZ25lZE1lbW9yeSA/IGctPnRh cmdldC0+Z2V0TmF0aXZlVmVjdG9yQWxpZ25tZW50KCkgOiBpbmZvLT5hbGlnbikKLSAgICAgICAg ICAgICAgICAgICAgIC52YWx1ZU9yT25lKCkpOwotLSNlbmRpZgotICAgICAgICAgfQotICAgICAg ICAgaWYgKHN0b3JlICE9IE5VTEwpIHsKLSAgICAgICAgICAgICBsQ29weU1ldGFkYXRhKHN0b3Jl LCBjYWxsSW5zdCk7Ci1AQCAtMzA1OSwxMSArMzAzOSw3IEBAIHN0YXRpYyBib29sIGxJbXByb3Zl TWFza2VkTG9hZChsbHZtOjpDYWxsSW5zdCAqY2FsbEluc3QsIGxsdm06OkJhc2ljQmxvY2s6Oml0 ZXJhCi0gICAgICAgICB7Ci0gICAgICAgICAgICAgbGx2bTo6VHlwZSAqcHRyVHlwZSA9IGxsdm06 OlBvaW50ZXJUeXBlOjpnZXQoY2FsbEluc3QtPmdldFR5cGUoKSwgMCk7Ci0gICAgICAgICAgICAg cHRyID0gbmV3IGxsdm06OkJpdENhc3RJbnN0KHB0ciwgcHRyVHlwZSwgInB0cl9jYXN0X2Zvcl9s b2FkIiwgY2FsbEluc3QpOwotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA8PSBJU1BDX0xMVk1fOV8w Ci0tICAgICAgICAgICAgbG9hZCA9IG5ldyBsbHZtOjpMb2FkSW5zdChwdHIsIGNhbGxJbnN0LT5n ZXROYW1lKCksIGZhbHNlIC8qIG5vdCB2b2xhdGlsZSAqLywKLS0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGctPm9wdC5mb3JjZUFsaWduZWRNZW1vcnkgPyBnLT50YXJnZXQt PmdldE5hdGl2ZVZlY3RvckFsaWdubWVudCgpIDogaW5mby0+YWxpZ24sCi0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAobGx2bTo6SW5zdHJ1Y3Rpb24gKilOVUxMKTsKLS0j ZWxpZiBJU1BDX0xMVk1fVkVSU0lPTiA9PSBJU1BDX0xMVk1fMTBfMAotKyNpZiBJU1BDX0xMVk1f VkVSU0lPTiA9PSBJU1BDX0xMVk1fMTBfMAotICAgICAgICAgICAgIGxvYWQgPSBuZXcgbGx2bTo6 TG9hZEluc3QoCi0gICAgICAgICAgICAgICAgIHB0ciwgY2FsbEluc3QtPmdldE5hbWUoKSwgZmFs c2UgLyogbm90IHZvbGF0aWxlICovLAotICAgICAgICAgICAgICAgICBsbHZtOjpNYXliZUFsaWdu KGctPm9wdC5mb3JjZUFsaWduZWRNZW1vcnkgPyBnLT50YXJnZXQtPmdldE5hdGl2ZVZlY3RvckFs aWdubWVudCgpIDogaW5mby0+YWxpZ24pCi1AQCAtMzEyOSw5ICszMTA1LDcgQEAgYm9vbCBJbXBy b3ZlTWVtb3J5T3BzUGFzczo6cnVuT25CYXNpY0Jsb2NrKGxsdm06OkJhc2ljQmxvY2sgJmJiKSB7 Ci0gCi0gYm9vbCBJbXByb3ZlTWVtb3J5T3BzUGFzczo6cnVuT25GdW5jdGlvbihsbHZtOjpGdW5j dGlvbiAmRikgewotIAotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTBfMAot ICAgICBsbHZtOjpUaW1lVHJhY2VTY29wZSBGdW5jU2NvcGUoIkltcHJvdmVNZW1vcnlPcHNQYXNz OjpydW5PbkZ1bmN0aW9uIiwgRi5nZXROYW1lKCkpOwotLSNlbmRpZgotICAgICBib29sIG1vZGlm aWVkQW55ID0gZmFsc2U7Ci0gICAgIGZvciAobGx2bTo6QmFzaWNCbG9jayAmQkIgOiBGKSB7Ci0g ICAgICAgICBtb2RpZmllZEFueSB8PSBydW5PbkJhc2ljQmxvY2soQkIpOwotQEAgLTM0MjQsOSAr MzM5OCw3IEBAIGxsdm06OlZhbHVlICpsR0VQQW5kTG9hZChsbHZtOjpWYWx1ZSAqYmFzZVB0ciwg aW50NjRfdCBvZmZzZXQsIGludCBhbGlnbiwgbGx2bTo6Ci0gICAgICAgICAgICAgICAgICAgICAg ICAgIGxsdm06OlR5cGUgKnR5cGUpIHsKLSAgICAgbGx2bTo6VmFsdWUgKnB0ciA9IGxHRVBJbnN0 KGJhc2VQdHIsIExMVk1JbnQ2NChvZmZzZXQpLCAibmV3X2Jhc2UiLCBpbnNlcnRCZWZvcmUpOwot ICAgICBwdHIgPSBuZXcgbGx2bTo6Qml0Q2FzdEluc3QocHRyLCBsbHZtOjpQb2ludGVyVHlwZTo6 Z2V0KHR5cGUsIDApLCAicHRyX2Nhc3QiLCBpbnNlcnRCZWZvcmUpOwotLSNpZiBJU1BDX0xMVk1f VkVSU0lPTiA8PSBJU1BDX0xMVk1fOV8wCi0tICAgIHJldHVybiBuZXcgbGx2bTo6TG9hZEluc3Qo cHRyLCAiZ2F0aGVyX2xvYWQiLCBmYWxzZSAvKiBub3Qgdm9sYXRpbGUgKi8sIGFsaWduLCBpbnNl cnRCZWZvcmUpOwotLSNlbGlmIElTUENfTExWTV9WRVJTSU9OID09IElTUENfTExWTV8xMF8wCi0r I2lmIElTUENfTExWTV9WRVJTSU9OID09IElTUENfTExWTV8xMF8wCi0gICAgIHJldHVybiBuZXcg bGx2bTo6TG9hZEluc3QocHRyLCAiZ2F0aGVyX2xvYWQiLCBmYWxzZSAvKiBub3Qgdm9sYXRpbGUg Ki8sIGxsdm06Ok1heWJlQWxpZ24oYWxpZ24pLCBpbnNlcnRCZWZvcmUpOwotICNlbHNlIC8vIExM Vk0gMTEuMCsKLSAgICAgcmV0dXJuIG5ldyBsbHZtOjpMb2FkSW5zdChsbHZtOjpkeW5fY2FzdDxs bHZtOjpQb2ludGVyVHlwZT4ocHRyLT5nZXRUeXBlKCkpLT5nZXRQb2ludGVyRWxlbWVudFR5cGUo KSwgcHRyLAotQEAgLTQxMzUsOSArNDEwNyw3IEBAIGJvb2wgR2F0aGVyQ29hbGVzY2VQYXNzOjpy dW5PbkJhc2ljQmxvY2sobGx2bTo6QmFzaWNCbG9jayAmYmIpIHsKLSAKLSBib29sIEdhdGhlckNv YWxlc2NlUGFzczo6cnVuT25GdW5jdGlvbihsbHZtOjpGdW5jdGlvbiAmRikgewotIAotLSNpZiBJ U1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTBfMAotICAgICBsbHZtOjpUaW1lVHJhY2VT Y29wZSBGdW5jU2NvcGUoIkdhdGhlckNvYWxlc2NlUGFzczo6cnVuT25GdW5jdGlvbiIsIEYuZ2V0 TmFtZSgpKTsKLS0jZW5kaWYKLSAgICAgYm9vbCBtb2RpZmllZEFueSA9IGZhbHNlOwotICAgICBm b3IgKGxsdm06OkJhc2ljQmxvY2sgJkJCIDogRikgewotICAgICAgICAgbW9kaWZpZWRBbnkgfD0g cnVuT25CYXNpY0Jsb2NrKEJCKTsKLUBAIC00NDY3LDkgKzQ0MzcsNyBAQCBib29sIFJlcGxhY2VQ c2V1ZG9NZW1vcnlPcHNQYXNzOjpydW5PbkJhc2ljQmxvY2sobGx2bTo6QmFzaWNCbG9jayAmYmIp IHsKLSAKLSBib29sIFJlcGxhY2VQc2V1ZG9NZW1vcnlPcHNQYXNzOjpydW5PbkZ1bmN0aW9uKGxs dm06OkZ1bmN0aW9uICZGKSB7Ci0gCi0tI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExW TV8xMF8wCi0gICAgIGxsdm06OlRpbWVUcmFjZVNjb3BlIEZ1bmNTY29wZSgiUmVwbGFjZVBzZXVk b01lbW9yeU9wc1Bhc3M6OnJ1bk9uRnVuY3Rpb24iLCBGLmdldE5hbWUoKSk7Ci0tI2VuZGlmCi0g ICAgIGJvb2wgbW9kaWZpZWRBbnkgPSBmYWxzZTsKLSAgICAgZm9yIChsbHZtOjpCYXNpY0Jsb2Nr ICZCQiA6IEYpIHsKLSAgICAgICAgIG1vZGlmaWVkQW55IHw9IHJ1bk9uQmFzaWNCbG9jayhCQik7 Ci1AQCAtNDU3Myw5ICs0NTQxLDcgQEAgYm9vbCBJc0NvbXBpbGVUaW1lQ29uc3RhbnRQYXNzOjpy dW5PbkJhc2ljQmxvY2sobGx2bTo6QmFzaWNCbG9jayAmYmIpIHsKLSAKLSBib29sIElzQ29tcGls ZVRpbWVDb25zdGFudFBhc3M6OnJ1bk9uRnVuY3Rpb24obGx2bTo6RnVuY3Rpb24gJkYpIHsKLSAK LS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzEwXzAKLSAgICAgbGx2bTo6VGlt ZVRyYWNlU2NvcGUgRnVuY1Njb3BlKCJJc0NvbXBpbGVUaW1lQ29uc3RhbnRQYXNzOjpydW5PbkZ1 bmN0aW9uIiwgRi5nZXROYW1lKCkpOwotLSNlbmRpZgotICAgICBib29sIG1vZGlmaWVkQW55ID0g ZmFsc2U7Ci0gICAgIGZvciAobGx2bTo6QmFzaWNCbG9jayAmQkIgOiBGKSB7Ci0gICAgICAgICBt b2RpZmllZEFueSB8PSBydW5PbkJhc2ljQmxvY2soQkIpOwotQEAgLTUyMDEsOSArNTE2Nyw3IEBA IGJvb2wgUGVlcGhvbGVQYXNzOjpydW5PbkJhc2ljQmxvY2sobGx2bTo6QmFzaWNCbG9jayAmYmIp IHsKLSAKLSBib29sIFBlZXBob2xlUGFzczo6cnVuT25GdW5jdGlvbihsbHZtOjpGdW5jdGlvbiAm RikgewotIAotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTBfMAotICAgICBs bHZtOjpUaW1lVHJhY2VTY29wZSBGdW5jU2NvcGUoIlBlZXBob2xlUGFzczo6cnVuT25GdW5jdGlv biIsIEYuZ2V0TmFtZSgpKTsKLS0jZW5kaWYKLSAgICAgYm9vbCBtb2RpZmllZEFueSA9IGZhbHNl OwotICAgICBmb3IgKGxsdm06OkJhc2ljQmxvY2sgJkJCIDogRikgewotICAgICAgICAgbW9kaWZp ZWRBbnkgfD0gcnVuT25CYXNpY0Jsb2NrKEJCKTsKLUBAIC01Mjk5LDkgKzUyNjMsNyBAQCBib29s IFJlcGxhY2VTdGRsaWJTaGlmdFBhc3M6OnJ1bk9uQmFzaWNCbG9jayhsbHZtOjpCYXNpY0Jsb2Nr ICZiYikgewotIAotIGJvb2wgUmVwbGFjZVN0ZGxpYlNoaWZ0UGFzczo6cnVuT25GdW5jdGlvbihs bHZtOjpGdW5jdGlvbiAmRikgewotIAotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xM Vk1fMTBfMAotICAgICBsbHZtOjpUaW1lVHJhY2VTY29wZSBGdW5jU2NvcGUoIlJlcGxhY2VTdGRs aWJTaGlmdFBhc3M6OnJ1bk9uRnVuY3Rpb24iLCBGLmdldE5hbWUoKSk7Ci0tI2VuZGlmCi0gICAg IGJvb2wgbW9kaWZpZWRBbnkgPSBmYWxzZTsKLSAgICAgZm9yIChsbHZtOjpCYXNpY0Jsb2NrICZC QiA6IEYpIHsKLSAgICAgICAgIG1vZGlmaWVkQW55IHw9IHJ1bk9uQmFzaWNCbG9jayhCQik7Ci1A QCAtNTM5OSw5ICs1MzYxLDcgQEAgbGx2bTo6SW5zdHJ1Y3Rpb24gKkZpeEJvb2xlYW5TZWxlY3RQ YXNzOjpmaXhTZWxlY3QobGx2bTo6U2VsZWN0SW5zdCAqc2VsLCBsbHZtOjoKLSB9Ci0gCi0gYm9v bCBGaXhCb29sZWFuU2VsZWN0UGFzczo6cnVuT25GdW5jdGlvbihsbHZtOjpGdW5jdGlvbiAmRikg ewotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTBfMAotICAgICBsbHZtOjpU aW1lVHJhY2VTY29wZSBGdW5jU2NvcGUoIkZpeEJvb2xlYW5TZWxlY3RQYXNzOjpydW5PbkZ1bmN0 aW9uIiwgRi5nZXROYW1lKCkpOwotLSNlbmRpZgotICAgICBib29sIG1vZGlmaWVkQW55ID0gZmFs c2U7Ci0gCi0gICAgIHJldHVybiBtb2RpZmllZEFueTsKLUBAIC01OTY0LDkgKzU5MjQsNyBAQCBi b29sIEdlblhHYXRoZXJDb2FsZXNjaW5nOjpydW5PbkJhc2ljQmxvY2sobGx2bTo6QmFzaWNCbG9j ayAmYmIpIHsKLSB9Ci0gCi0gYm9vbCBHZW5YR2F0aGVyQ29hbGVzY2luZzo6cnVuT25GdW5jdGlv bihsbHZtOjpGdW5jdGlvbiAmRikgewotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xM Vk1fMTBfMAotICAgICBsbHZtOjpUaW1lVHJhY2VTY29wZSBGdW5jU2NvcGUoIkdlblhHYXRoZXJD b2FsZXNjaW5nOjpydW5PbkZ1bmN0aW9uIiwgRi5nZXROYW1lKCkpOwotLSNlbmRpZgotICAgICBi b29sIG1vZGlmaWVkQW55ID0gZmFsc2U7Ci0gICAgIGZvciAobGx2bTo6QmFzaWNCbG9jayAmQkIg OiBGKSB7Ci0gICAgICAgICBtb2RpZmllZEFueSB8PSBydW5PbkJhc2ljQmxvY2soQkIpOwotQEAg LTYxMTMsOSArNjA3MSw3IEBAIGJvb2wgUHJvbW90ZVRvUHJpdmF0ZU1lbW9yeVBhc3M6OnJ1bk9u QmFzaWNCbG9jayhsbHZtOjpCYXNpY0Jsb2NrICZiYikgewotIAotIGJvb2wgUHJvbW90ZVRvUHJp dmF0ZU1lbW9yeVBhc3M6OnJ1bk9uRnVuY3Rpb24obGx2bTo6RnVuY3Rpb24gJkYpIHsKLSAKLS0j aWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzEwXzAKLSAgICAgbGx2bTo6VGltZVRy YWNlU2NvcGUgRnVuY1Njb3BlKCJQcm9tb3RlVG9Qcml2YXRlTWVtb3J5UGFzczo6cnVuT25GdW5j dGlvbiIsIEYuZ2V0TmFtZSgpKTsKLS0jZW5kaWYKLSAgICAgYm9vbCBtb2RpZmllZEFueSA9IGZh bHNlOwotICAgICBmb3IgKGxsdm06OkJhc2ljQmxvY2sgJkJCIDogRikgewotICAgICAgICAgbW9k aWZpZWRBbnkgfD0gcnVuT25CYXNpY0Jsb2NrKEJCKTsKLUBAIC02MTgxLDkgKzYxMzcsNyBAQCBi b29sIFJlcGxhY2VMTFZNSW50cmluc2ljczo6cnVuT25CYXNpY0Jsb2NrKGxsdm06OkJhc2ljQmxv Y2sgJmJiKSB7Ci0gCi0gYm9vbCBSZXBsYWNlTExWTUludHJpbnNpY3M6OnJ1bk9uRnVuY3Rpb24o bGx2bTo6RnVuY3Rpb24gJkYpIHsKLSAKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19M TFZNXzEwXzAKLSAgICAgbGx2bTo6VGltZVRyYWNlU2NvcGUgRnVuY1Njb3BlKCJSZXBsYWNlTExW TUludHJpbnNpY3M6OnJ1bk9uRnVuY3Rpb24iLCBGLmdldE5hbWUoKSk7Ci0tI2VuZGlmCi0gICAg IGJvb2wgbW9kaWZpZWRBbnkgPSBmYWxzZTsKLSAgICAgZm9yIChsbHZtOjpCYXNpY0Jsb2NrICZC QiA6IEYpIHsKLSAgICAgICAgIG1vZGlmaWVkQW55IHw9IHJ1bk9uQmFzaWNCbG9jayhCQik7Ci1A QCAtNjI3OCw5ICs2MjMyLDcgQEAgYm9vbCBSZXBsYWNlVW5zdXBwb3J0ZWRJbnN0czo6cnVuT25C YXNpY0Jsb2NrKGxsdm06OkJhc2ljQmxvY2sgJmJiKSB7Ci0gCi0gYm9vbCBSZXBsYWNlVW5zdXBw b3J0ZWRJbnN0czo6cnVuT25GdW5jdGlvbihsbHZtOjpGdW5jdGlvbiAmRikgewotIAotLSNpZiBJ U1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTBfMAotICAgICBsbHZtOjpUaW1lVHJhY2VT Y29wZSBGdW5jU2NvcGUoIlJlcGxhY2VVbnN1cHBvcnRlZEluc3RzOjpydW5PbkZ1bmN0aW9uIiwg Ri5nZXROYW1lKCkpOwotLSNlbmRpZgotICAgICBib29sIG1vZGlmaWVkQW55ID0gZmFsc2U7Ci0g ICAgIGZvciAobGx2bTo6QmFzaWNCbG9jayAmQkIgOiBGKSB7Ci0gICAgICAgICBtb2RpZmllZEFu eSB8PSBydW5PbkJhc2ljQmxvY2soQkIpOwotQEAgLTYzNjksOSArNjMyMSw3IEBAIGJvb2wgQ2hl Y2tVbnN1cHBvcnRlZEluc3RzOjpydW5PbkJhc2ljQmxvY2sobGx2bTo6QmFzaWNCbG9jayAmYmIp IHsKLSB9Ci0gCi0gYm9vbCBDaGVja1Vuc3VwcG9ydGVkSW5zdHM6OnJ1bk9uRnVuY3Rpb24obGx2 bTo6RnVuY3Rpb24gJkYpIHsKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzEw XzAKLSAgICAgbGx2bTo6VGltZVRyYWNlU2NvcGUgRnVuY1Njb3BlKCJDaGVja1Vuc3VwcG9ydGVk SW5zdHM6OnJ1bk9uRnVuY3Rpb24iLCBGLmdldE5hbWUoKSk7Ci0tI2VuZGlmCi0gICAgIGJvb2wg bW9kaWZpZWRBbnkgPSBmYWxzZTsKLSAgICAgZm9yIChsbHZtOjpCYXNpY0Jsb2NrICZCQiA6IEYp IHsKLSAgICAgICAgIG1vZGlmaWVkQW55IHw9IHJ1bk9uQmFzaWNCbG9jayhCQik7Ci1AQCAtNjQ0 MCw5ICs2MzkwLDcgQEAgYm9vbCBNYW5nbGVPcGVuQ0xCdWlsdGluczo6cnVuT25CYXNpY0Jsb2Nr KGxsdm06OkJhc2ljQmxvY2sgJmJiKSB7Ci0gfQotIAotIGJvb2wgTWFuZ2xlT3BlbkNMQnVpbHRp bnM6OnJ1bk9uRnVuY3Rpb24obGx2bTo6RnVuY3Rpb24gJkYpIHsKLS0jaWYgSVNQQ19MTFZNX1ZF UlNJT04gPj0gSVNQQ19MTFZNXzEwXzAKLSAgICAgbGx2bTo6VGltZVRyYWNlU2NvcGUgRnVuY1Nj b3BlKCJNYW5nbGVPcGVuQ0xCdWlsdGluczo6cnVuT25GdW5jdGlvbiIsIEYuZ2V0TmFtZSgpKTsK LS0jZW5kaWYKLSAgICAgYm9vbCBtb2RpZmllZEFueSA9IGZhbHNlOwotICAgICBmb3IgKGxsdm06 OkJhc2ljQmxvY2sgJkJCIDogRikgewotICAgICAgICAgbW9kaWZpZWRBbnkgfD0gcnVuT25CYXNp Y0Jsb2NrKEJCKTsKLUBAIC02ODI4LDkgKzY3NzYsNyBAQCBib29sIEZpeEFkZHJlc3NTcGFjZTo6 cnVuT25GdW5jdGlvbihsbHZtOjpGdW5jdGlvbiAmRikgewotICAgICAvLyBUcmFuc2Zvcm1hdGlv bnMgYXJlIGNvcnJlY3Qgd2hlbiB0aGUgZnVuY3Rpb24gaXMgbm90IGludGVybmFsLgotICAgICAv LyBUaGlzIGlzIGR1ZSB0byBhZGRyZXNzIHNwYWNlIGNhbGN1bGF0aW9uIGFsZ29yaXRobS4KLSAg ICAgLy8gVE9ETzogcHJvYmxlbXMgY2FuIGJlIG1ldCBpbiBjYXNlIG9mIFN0YWNrIENhbGxzCi0t I2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMF8wCi0gICAgIGxsdm06OlRpbWVU cmFjZVNjb3BlIEZ1bmNTY29wZSgiRml4QWRkcmVzc1NwYWNlOjpydW5PbkZ1bmN0aW9uIiwgRi5n ZXROYW1lKCkpOwotLSNlbmRpZgotICAgICBpZiAoRi5nZXRMaW5rYWdlKCkgPT0gbGx2bTo6R2xv YmFsVmFsdWU6OkxpbmthZ2VUeXBlczo6SW50ZXJuYWxMaW5rYWdlKQotICAgICAgICAgcmV0dXJu IGZhbHNlOwotIAotQEAgLTY4NTQsOSArNjgwMCw3IEBAIGNsYXNzIERlbW90ZVBISXMgOiBwdWJs aWMgbGx2bTo6RnVuY3Rpb25QYXNzIHsKLSBjaGFyIERlbW90ZVBISXM6OklEID0gMDsKLSAKLSBi b29sIERlbW90ZVBISXM6OnJ1bk9uRnVuY3Rpb24obGx2bTo6RnVuY3Rpb24gJkYpIHsKLS0jaWYg SVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzEwXzAKLSAgICAgbGx2bTo6VGltZVRyYWNl U2NvcGUgRnVuY1Njb3BlKCJEZW1vdGVQSElzOjpydW5PbkZ1bmN0aW9uIiwgRi5nZXROYW1lKCkp OwotLSNlbmRpZgotICAgICBpZiAoRi5pc0RlY2xhcmF0aW9uKCkgfHwgc2tpcEZ1bmN0aW9uKEYp KQotICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICBzdGQ6OnZlY3RvcjxsbHZtOjpJbnN0cnVj dGlvbiAqPiBXb3JrTGlzdDsKLWRpZmYgLS1naXQgYS9zcmMvdHlwZS5jcHAgYi9zcmMvdHlwZS5j cHAKLWluZGV4IDY4OGE0ZTg3NC4uZmEwY2IwNGRiIDEwMDY0NAotLS0tIGEvc3JjL3R5cGUuY3Bw Ci0rKysgYi9zcmMvdHlwZS5jcHAKLUBAIC0xODIyLDE0ICsxODIyLDEwIEBAIGxsdm06OkRJVHlw ZSAqU3RydWN0VHlwZTo6R2V0RElUeXBlKGxsdm06OkRJU2NvcGUgKnNjb3BlKSBjb25zdCB7Ci0g ICAgIGxsdm06OkRJRmlsZSAqZGlGaWxlID0gcG9zLkdldERJRmlsZSgpOwotICAgICBsbHZtOjpE SU5hbWVzcGFjZSAqZGlTcGFjZSA9IHBvcy5HZXRESU5hbWVzcGFjZSgpOwotICAgICByZXR1cm4g bS0+ZGlCdWlsZGVyLT5jcmVhdGVTdHJ1Y3RUeXBlKGRpU3BhY2UsIEdldFN0cmluZygpLCBkaUZp bGUsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zLmZpcnN0 X2xpbmUsICAgICAgICAgIC8vIExpbmUgbnVtYmVyCi0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgbGF5b3V0LT5nZXRTaXplSW5CaXRzKCksIC8vIFNpemUgaW4gYml0 cwotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA8PSBJU1BDX0xMVk1fOV8wCi0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF5b3V0LT5nZXRBbGlnbm1lbnQoKSAqIDgs IC8vIEFsaWdubWVudCBpbiBiaXRzCi0tI2Vsc2UgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIExMVk0gMTAuMCsKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3MuZmlyc3RfbGluZSwgICAg ICAgICAgICAgICAgICAgICAvLyBMaW5lIG51bWJlcgotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGxheW91dC0+Z2V0U2l6ZUluQml0cygpLCAgICAgICAgICAgIC8v IFNpemUgaW4gYml0cwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGxheW91dC0+Z2V0QWxpZ25tZW50KCkudmFsdWUoKSAqIDgsIC8vIEFsaWdubWVudCBpbiBiaXRz Ci0tI2VuZGlmCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGx2 bTo6RElOb2RlOjpGbGFnWmVybywgLy8gRmxhZ3MKLSsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBsbHZtOjpESU5vZGU6OkZsYWdaZXJvLCAgICAgICAgICAgICAvLyBG bGFncwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsIGVs ZW1lbnRzKTsKLSB9Ci0gCi1kaWZmIC0tZ2l0IGEvdGVzdHMvbGl0LXRlc3RzLzE3NzEuaXNwYyBi L3Rlc3RzL2xpdC10ZXN0cy8xNzcxLmlzcGMKLWluZGV4IDk4MDY0ZDg0ZC4uNGZlYjczZGQ3IDEw MDY0NAotLS0tIGEvdGVzdHMvbGl0LXRlc3RzLzE3NzEuaXNwYwotKysrIGIvdGVzdHMvbGl0LXRl c3RzLzE3NzEuaXNwYwotQEAgLTUsNyArNSw2IEBACi0gLy8gUlVOOiAle2lzcGN9ICVzIC0tdGFy Z2V0PXNzZTQtaTE2eDggLS1lbWl0LWFzbSAtbyAtIHwgRmlsZUNoZWNrICVzIC1jaGVjay1wcmVm aXg9Q0hFQ0tTU0U0X0kxNlg4Ci0gLy8gUlVOOiAle2lzcGN9ICVzIC0tdGFyZ2V0PXNzZTQtaTh4 MTYgLS1lbWl0LWFzbSAtbyAtIHwgRmlsZUNoZWNrICVzIC1jaGVjay1wcmVmaXg9Q0hFQ0tTU0U0 X0k4WDE2Ci0gCi0tLy8gUkVRVUlSRVM6IExMVk1fMTBfMCsKLSAvLyBSRVFVSVJFUzogWDg2X0VO QUJMRUQKLSAKLSAvLyBDSEVDS0FWWDJfSTMyWDg6IHt7W2Etel0qeG9yW2Etel0qfX0gICV4bW0w LCAleG1tMCwgJXhtbTAKLWRpZmYgLS1naXQgYS90ZXN0cy9saXQtdGVzdHMvMTg0NC5pc3BjIGIv dGVzdHMvbGl0LXRlc3RzLzE4NDQuaXNwYwotaW5kZXggNzkzYTg4NjZjLi4xODllZGY0YzMgMTAw NjQ0Ci0tLS0gYS90ZXN0cy9saXQtdGVzdHMvMTg0NC5pc3BjCi0rKysgYi90ZXN0cy9saXQtdGVz dHMvMTg0NC5pc3BjCi1AQCAtNiw5ICs2LDYgQEAKLSAKLSAvLyBSRVFVSVJFUzogWDg2X0VOQUJM RUQKLSAKLS0vLyBJdCBkb2Vzbid0IHdvcmsgZm9yIGFueXRoaW5nIGVhcmxpZXIgdGhhbiAxMC4w LCBidXQgaXQgd2lsbCBub3QgYmUgZml4ZWQsIHNvIGRvbid0IHJ1bi4KLS0vLyBSRVFVSVJFUzog TExWTV8xMF8wKwotLQotIGV4dGVybiB1bmlmb3JtIHVuc2lnbmVkIGludDY0IHZhcl82OwotIGV4 dGVybiB1bmlmb3JtIHVuc2lnbmVkIGludDE2IHZhcl8xMTsKLSBleHRlcm4gdW5pZm9ybSBib29s IGFycl8yMDEgWzFdIFsxNV0gWzIwXTsKLWRpZmYgLS1naXQgYS90ZXN0cy9saXQtdGVzdHMvMTky Ni5pc3BjIGIvdGVzdHMvbGl0LXRlc3RzLzE5MjYuaXNwYwotaW5kZXggNzBmN2NjM2MyLi43OTIx YzkxYTYgMTAwNjQ0Ci0tLS0gYS90ZXN0cy9saXQtdGVzdHMvMTkyNi5pc3BjCi0rKysgYi90ZXN0 cy9saXQtdGVzdHMvMTkyNi5pc3BjCi1AQCAtMiw4ICsyLDYgQEAKLSAvLyBSVU46IGNhdCAlVC8x OTI2Lm8uanNvbiBcCi0gLy8gUlVOOiAgIHwgRmlsZUNoZWNrICVzCi0gCi0tLy8gUkVRVUlSRVM6 IExMVk1fMTBfMCsKLS0KLSAvLyBDSEVDSzogInRyYWNlRXZlbnRzIgotIC8vIENIRUNLOiAiZGV0 YWlsIgotIGV4cG9ydCB1bmlmb3JtIGludCBmb28odW5pZm9ybSBpbnQgYVtdLCB1bmlmb3JtIGlu dCBjb3VudCkgewotZGlmZiAtLWdpdCBhL3Rlc3RzL2xpdC10ZXN0cy9jcHVzX3g4Ni5pc3BjIGIv dGVzdHMvbGl0LXRlc3RzL2NwdXNfeDg2LmlzcGMKLWluZGV4IDUxNmVmZGQ0Yy4uNGQ2MDE4NmY2 IDEwMDY0NAotLS0tIGEvdGVzdHMvbGl0LXRlc3RzL2NwdXNfeDg2LmlzcGMKLSsrKyBiL3Rlc3Rz L2xpdC10ZXN0cy9jcHVzX3g4Ni5pc3BjCi1AQCAtMjQsNiArMjQsOCBAQAotIC8vOyBSVU46ICV7 aXNwY30gJXMgLW8gJXQubyAtLW5vc3RkbGliIC0tdGFyZ2V0PXNzZTItaTMyeDQgLS1jcHU9aWNs Ci0gLy87IFJVTjogJXtpc3BjfSAlcyAtbyAldC5vIC0tbm9zdGRsaWIgLS10YXJnZXQ9c3NlMi1p MzJ4NCAtLWNwdT1pY2VsYWtlLXNlcnZlcgotIC8vOyBSVU46ICV7aXNwY30gJXMgLW8gJXQubyAt LW5vc3RkbGliIC0tdGFyZ2V0PXNzZTItaTMyeDQgLS1jcHU9aWN4Ci0rLy87IFJVTjogJXtpc3Bj fSAlcyAtbyAldC5vIC0tbm9zdGRsaWIgLS10YXJnZXQ9c3NlMi1pMzJ4NCAtLWNwdT10aWdlcmxh a2UKLSsvLzsgUlVOOiAle2lzcGN9ICVzIC1vICV0Lm8gLS1ub3N0ZGxpYiAtLXRhcmdldD1zc2Uy LWkzMng0IC0tY3B1PXRnbAotIAotIC8vIFJFUVVJUkVTOiBYODZfRU5BQkxFRAotIAotZGlmZiAt LWdpdCBhL3Rlc3RzL2xpdC10ZXN0cy9jcHVzX3g4Nl9sbHZtMTAuaXNwYyBiL3Rlc3RzL2xpdC10 ZXN0cy9jcHVzX3g4Nl9sbHZtMTAuaXNwYwotZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Ci1pbmRl eCBlZjAwMDAwZTUuLjAwMDAwMDAwMAotLS0tIGEvdGVzdHMvbGl0LXRlc3RzL2NwdXNfeDg2X2xs dm0xMC5pc3BjCi0rKysgL2Rldi9udWxsCi1AQCAtMSwxMSArMCwwIEBACi0tLy8gVGhlIHRlc3Qg Y2hlY2tzIHRoYXQgY3B1IGRlZmluaXRpb25zIChpbmNsdWRpbmcgYWxsIHN5bm9ueW1zKSBhcmUg c3VjY2Vzc2Z1bGx5IGNvbnN1bWVkIGJ5IGNvbXBpbGVyLgotLQotLS8vOyBSVU46ICV7aXNwY30g JXMgLW8gJXQubyAtLW5vc3RkbGliIC0tdGFyZ2V0PXNzZTItaTMyeDQgLS1jcHU9dGlnZXJsYWtl Ci0tLy87IFJVTjogJXtpc3BjfSAlcyAtbyAldC5vIC0tbm9zdGRsaWIgLS10YXJnZXQ9c3NlMi1p MzJ4NCAtLWNwdT10Z2wKLS0KLS0vLyBSRVFVSVJFUzogWDg2X0VOQUJMRUQKLS0vLyBSRVFVSVJF UzogTExWTV8xMF8wKwotLQotLXVuaWZvcm0gaW50IGk7Ci0tCi0tdm9pZCBmb28oKSB7fQotZGlm ZiAtLWdpdCBhL3Rlc3RzL2xpdC10ZXN0cy9saXQuY2ZnIGIvdGVzdHMvbGl0LXRlc3RzL2xpdC5j ZmcKLWluZGV4IDE3MDE2NTc5ZC4uMDQ1ZTY5NDM3IDEwMDY0NAotLS0tIGEvdGVzdHMvbGl0LXRl c3RzL2xpdC5jZmcKLSsrKyBiL3Rlc3RzL2xpdC10ZXN0cy9saXQuY2ZnCi1AQCAtMzAsMTEgKzMw LDYgQEAgcHJpbnQoIkNvbmZpZzoiKQotIAotICMgTExWTSB2ZXJzaW9uCi0gbGx2bV92ZXJzaW9u ID0gTG9vc2VWZXJzaW9uKGlzcGNfbGx2bV92ZXJzaW9uX251bWJlcikKLS1pZiBsbHZtX3ZlcnNp b24gPj0gTG9vc2VWZXJzaW9uKCIxMC4wLjAiKToKLS0gICAgcHJpbnQoIkxMVk1fMTBfMCs6IFlF UyIpCi0tICAgIGNvbmZpZy5hdmFpbGFibGVfZmVhdHVyZXMuYWRkKCJMTFZNXzEwXzArIikKLS1l bHNlOgotLSAgICBwcmludCgiTExWTV8xMF8wKzogTk8iKQotIAotIGlmIGxsdm1fdmVyc2lvbiA+ PSBMb29zZVZlcnNpb24oIjEyLjAuMCIpOgotICAgICBwcmludCgiTExWTV8xMl8wKzogWUVTIikK ZGlmZiAtLWdpdCBhL3NyY3BrZ3MvaXNwYy9wYXRjaGVzL2xsdm0xMi0wMDMucGF0Y2ggYi9zcmNw a2dzL2lzcGMvcGF0Y2hlcy9sbHZtMTItMDAzLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwNDIzYWZjOWUzZjkuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2lzcGMvcGF0 Y2hlcy9sbHZtMTItMDAzLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTUwNCArMCwwIEBACi1G cm9tIDE4NTFkMThiMjEzZGJhZDE2OTkzNzA3NjE3NmIyZDU1MDk3MzNjNzYgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCi1Gcm9tOiBEZWVwYWsgUmFqZW5kcmFrdW1hcmFuIDxkZWVwYWsucmFqZW5k cmFrdW1hcmFuQGludGVsLmNvbT4KLURhdGU6IFR1ZSwgMTIgSmFuIDIwMjEgMjI6MTU6MTIgLTA4 MDAKLVN1YmplY3Q6IFtQQVRDSF0gZml4ZXMgIzE4MjEgLSBSZW1vdmluZyBMTFZNR2V0TmFtZSgp IGFuZCBzd2l0Y2hpbmcgdG8KLSBMTFZNOjpUd2luZS4KLQotLS0tCi0gc3JjL2N0eC5jcHAgICAg ICB8IDMwNCArKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQot IHNyYy9jdHguaCAgICAgICAgfCAgNzIgKysrKystLS0tLS0KLSBzcmMvZXhwci5jcHAgICAgIHwg IDM2ICsrKy0tLQotIHNyYy9sbHZtdXRpbC5jcHAgfCAgMTcgLS0tCi0gc3JjL2xsdm11dGlsLmgg ICB8ICAgNSAtCi0gc3JjL29wdC5jcHAgICAgICB8IDEwMyArKysrKysrKystLS0tLS0tCi0gNiBm aWxlcyBjaGFuZ2VkLCAyNTUgaW5zZXJ0aW9ucygrKSwgMjgyIGRlbGV0aW9ucygtKQotCi1kaWZm IC0tZ2l0IGEvc3JjL2N0eC5jcHAgYi9zcmMvY3R4LmNwcAotaW5kZXggNDJjNGVhMDlkLi5kZWQ1 MjRiNzEgMTAwNjQ0Ci0tLS0gYS9zcmMvY3R4LmNwcAotKysrIGIvc3JjL2N0eC5jcHAKLUBAIC0x MDIwLDggKzEwMjAsOCBAQCB2b2lkIEZ1bmN0aW9uRW1pdENvbnRleHQ6OkVtaXRDYXNlTGFiZWwo aW50IHZhbHVlLCBib29sIGNoZWNrTWFzaywgU291cmNlUG9zIHBvcwotICAgICBsbHZtOjpCYXNp Y0Jsb2NrICpiYkNhc2VJbXBsID0gTlVMTDsKLSAgICAgaWYgKGVtaXRHZW5YSGFyZHdhcmVNYXNr KCkpIHsKLSAgICAgICAgIC8vIENyZWF0ZSBiYXNpYyBibG9jayB3aXRoIGFjdHVhbCBjYXNlIGlt cGxlbWVudGF0aW9uCi0tICAgICAgICBzdGQ6OnN0cmluZyBiYk5hbWUgPSBiYkNhc2UtPmdldE5h bWUoKS5zdHIoKSArICJfaW1wbCI7Ci0tICAgICAgICBiYkNhc2VJbXBsID0gQ3JlYXRlQmFzaWNC bG9jayhiYk5hbWUuY19zdHIoKSwgYmJDYXNlKTsKLSsgICAgICAgIGxsdm06OlR3aW5lIGJiTmFt ZSA9IGxsdm06OlR3aW5lKGJiQ2FzZS0+Z2V0TmFtZSgpKSArICJfaW1wbCI7Ci0rICAgICAgICBi YkNhc2VJbXBsID0gQ3JlYXRlQmFzaWNCbG9jayhiYk5hbWUsIGJiQ2FzZSk7Ci0gICAgIH0KLSAj ZW5kaWYKLSAKLUBAIC0xMTg1LDcgKzExODUsNyBAQCBib29sIEZ1bmN0aW9uRW1pdENvbnRleHQ6 OmluaXRMYWJlbEJCbG9ja3MoQVNUTm9kZSAqbm9kZSwgdm9pZCAqZGF0YSkgewotICAgICBpZiAo Y3R4LT5sYWJlbE1hcC5maW5kKGxzLT5uYW1lKSAhPSBjdHgtPmxhYmVsTWFwLmVuZCgpKQotICAg ICAgICAgRXJyb3IobHMtPnBvcywgIk11bHRpcGxlIGxhYmVscyBuYW1lZCBcIiVzXCIgaW4gZnVu Y3Rpb24uIiwgbHMtPm5hbWUuY19zdHIoKSk7Ci0gICAgIGVsc2UgewotLSAgICAgICAgbGx2bTo6 QmFzaWNCbG9jayAqYmIgPSBjdHgtPkNyZWF0ZUJhc2ljQmxvY2sobHMtPm5hbWUuY19zdHIoKSk7 Ci0rICAgICAgICBsbHZtOjpCYXNpY0Jsb2NrICpiYiA9IGN0eC0+Q3JlYXRlQmFzaWNCbG9jayhs cy0+bmFtZSk7Ci0gICAgICAgICBjdHgtPmxhYmVsTWFwW2xzLT5uYW1lXSA9IGJiOwotICAgICB9 Ci0gICAgIHJldHVybiB0cnVlOwotQEAgLTEyOTksNyArMTI5OSw3IEBAIGxsdm06OlZhbHVlICpG dW5jdGlvbkVtaXRDb250ZXh0OjpBbnkobGx2bTo6VmFsdWUgKm1hc2spIHsKLSAgICAgLy8gV2Ug Y2FuIGFjdHVhbGx5IGNhbGwgZWl0aGVyIG9uZSwgc2luY2UgYm90aCBhcmUgaTMycyBhcyBmYXIg YXMKLSAgICAgLy8gTExWTSdzIHR5cGUgc3lzdGVtIGlzIGNvbmNlcm5lZC4uLgotICAgICBsbHZt OjpGdW5jdGlvbiAqZm1tID0gbW1bMF0tPmZ1bmN0aW9uOwotLSAgICByZXR1cm4gQ2FsbEluc3Qo Zm1tLCBOVUxMLCBtYXNrLCBMTFZNR2V0TmFtZShtYXNrLCAiX2FueSIpKTsKLSsgICAgcmV0dXJu IENhbGxJbnN0KGZtbSwgTlVMTCwgbWFzaywgbGx2bTo6VHdpbmUobWFzay0+Z2V0TmFtZSgpKSAr ICJfYW55Iik7Ci0gfQotIAotIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpBbGwo bGx2bTo6VmFsdWUgKm1hc2spIHsKLUBAIC0xMzE1LDcgKzEzMTUsNyBAQCBsbHZtOjpWYWx1ZSAq RnVuY3Rpb25FbWl0Q29udGV4dDo6QWxsKGxsdm06OlZhbHVlICptYXNrKSB7Ci0gICAgIC8vIFdl IGNhbiBhY3R1YWxseSBjYWxsIGVpdGhlciBvbmUsIHNpbmNlIGJvdGggYXJlIGkzMnMgYXMgZmFy IGFzCi0gICAgIC8vIExMVk0ncyB0eXBlIHN5c3RlbSBpcyBjb25jZXJuZWQuLi4KLSAgICAgbGx2 bTo6RnVuY3Rpb24gKmZtbSA9IG1tWzBdLT5mdW5jdGlvbjsKLS0gICAgcmV0dXJuIENhbGxJbnN0 KGZtbSwgTlVMTCwgbWFzaywgTExWTUdldE5hbWUobWFzaywgIl9hbGwiKSk7Ci0rICAgIHJldHVy biBDYWxsSW5zdChmbW0sIE5VTEwsIG1hc2ssIGxsdm06OlR3aW5lKG1hc2stPmdldE5hbWUoKSkg KyAiX2FsbCIpOwotIH0KLSAKLSBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6Tm9u ZShsbHZtOjpWYWx1ZSAqbWFzaykgewotQEAgLTEzMzEsNyArMTMzMSw3IEBAIGxsdm06OlZhbHVl ICpGdW5jdGlvbkVtaXRDb250ZXh0OjpOb25lKGxsdm06OlZhbHVlICptYXNrKSB7Ci0gICAgIC8v IFdlIGNhbiBhY3R1YWxseSBjYWxsIGVpdGhlciBvbmUsIHNpbmNlIGJvdGggYXJlIGkzMnMgYXMg ZmFyIGFzCi0gICAgIC8vIExMVk0ncyB0eXBlIHN5c3RlbSBpcyBjb25jZXJuZWQuLi4KLSAgICAg bGx2bTo6RnVuY3Rpb24gKmZtbSA9IG1tWzBdLT5mdW5jdGlvbjsKLS0gICAgcmV0dXJuIENhbGxJ bnN0KGZtbSwgTlVMTCwgbWFzaywgTExWTUdldE5hbWUobWFzaywgIl9ub25lIikpOwotKyAgICBy ZXR1cm4gQ2FsbEluc3QoZm1tLCBOVUxMLCBtYXNrLCBsbHZtOjpUd2luZShtYXNrLT5nZXROYW1l KCkpICsgIl9ub25lIik7Ci0gfQotIAotIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0 OjpMYW5lTWFzayhsbHZtOjpWYWx1ZSAqdikgewotQEAgLTEzNDksNyArMTM0OSw3IEBAIGxsdm06 OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpMYW5lTWFzayhsbHZtOjpWYWx1ZSAqdikgewot ICAgICAvLyBXZSBjYW4gYWN0dWFsbHkgY2FsbCBlaXRoZXIgb25lLCBzaW5jZSBib3RoIGFyZSBp MzJzIGFzIGZhciBhcwotICAgICAvLyBMTFZNJ3MgdHlwZSBzeXN0ZW0gaXMgY29uY2VybmVkLi4u Ci0gICAgIGxsdm06OkZ1bmN0aW9uICpmbW0gPSBtbVswXS0+ZnVuY3Rpb247Ci0tICAgIHJldHVy biBDYWxsSW5zdChmbW0sIE5VTEwsIHYsIExMVk1HZXROYW1lKHYsICJfbW92bXNrIikpOwotKyAg ICByZXR1cm4gQ2FsbEluc3QoZm1tLCBOVUxMLCB2LCBsbHZtOjpUd2luZSh2LT5nZXROYW1lKCkp ICsgIl9tb3Ztc2siKTsKLSB9Ci0gCi0gbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6 Ok1hc2tzQWxsRXF1YWwobGx2bTo6VmFsdWUgKnYxLCBsbHZtOjpWYWx1ZSAqdjIpIHsKLUBAIC0x MzY0LDExICsxMzY0LDEyIEBAIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpNYXNr c0FsbEVxdWFsKGxsdm06OlZhbHVlICp2MSwgbGx2bTo6VmFsdWUgKnYyCi0gI2Vsc2UKLSAgICAg aWYgKGctPnRhcmdldC0+Z2V0QXJjaCgpID09IEFyY2g6Ondhc20zMikgewotICAgICAgICAgbGx2 bTo6RnVuY3Rpb24gKmZtbSA9IG0tPm1vZHVsZS0+Z2V0RnVuY3Rpb24oIl9fd2FzbV9jbXBfbXNr X2VxIik7Ci0tICAgICAgICByZXR1cm4gQ2FsbEluc3QoZm1tLCBOVUxMLCB7djEsIHYyfSwgTExW TUdldE5hbWUoIndhc21fY21wX21za19lcSIsIHYxLCB2MikpOwotKyAgICAgICAgcmV0dXJuIENh bGxJbnN0KGZtbSwgTlVMTCwge3YxLCB2Mn0sICgobGx2bTo6VHdpbmUoIndhc21fY21wX21za19l cV8iKSArIHYxLT5nZXROYW1lKCkpICsgIl8iKSArIHYyLT5nZXROYW1lKCkpOwotICAgICB9Ci0g ICAgIGxsdm06OlZhbHVlICptbTEgPSBMYW5lTWFzayh2MSk7Ci0gICAgIGxsdm06OlZhbHVlICpt bTIgPSBMYW5lTWFzayh2Mik7Ci0tICAgIHJldHVybiBDbXBJbnN0KGxsdm06Okluc3RydWN0aW9u OjpJQ21wLCBsbHZtOjpDbXBJbnN0OjpJQ01QX0VRLCBtbTEsIG1tMiwgTExWTUdldE5hbWUoImVx dWFsIiwgdjEsIHYyKSk7Ci0rICAgIHJldHVybiBDbXBJbnN0KGxsdm06Okluc3RydWN0aW9uOjpJ Q21wLCBsbHZtOjpDbXBJbnN0OjpJQ01QX0VRLCBtbTEsIG1tMiwKLSsgICAgICAgICAgICAgICAg ICAgKChsbHZtOjpUd2luZSgiZXF1YWxfIikgKyB2MS0+Z2V0TmFtZSgpKSArICJfIikgKyB2Mi0+ Z2V0TmFtZSgpKTsKLSAjZW5kaWYKLSB9Ci0gCi1AQCAtMTM5Miw3ICsxMzkzLDcgQEAgbGx2bTo6 VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkdldFN0cmluZ1B0cihjb25zdCBzdGQ6OnN0cmlu ZyAmc3RyKSB7Ci0gICAgIHJldHVybiBuZXcgbGx2bTo6Qml0Q2FzdEluc3QobHN0clB0ciwgTExW TVR5cGVzOjpWb2lkUG9pbnRlclR5cGUsICJzdHJfdm9pZF9wdHIiLCBiYmxvY2spOwotIH0KLSAK LS1sbHZtOjpCYXNpY0Jsb2NrICpGdW5jdGlvbkVtaXRDb250ZXh0OjpDcmVhdGVCYXNpY0Jsb2Nr KGNvbnN0IGNoYXIgKm5hbWUsIGxsdm06OkJhc2ljQmxvY2sgKmluc2VydEFmdGVyKSB7Ci0rbGx2 bTo6QmFzaWNCbG9jayAqRnVuY3Rpb25FbWl0Q29udGV4dDo6Q3JlYXRlQmFzaWNCbG9jayhjb25z dCBsbHZtOjpUd2luZSAmbmFtZSwgbGx2bTo6QmFzaWNCbG9jayAqaW5zZXJ0QWZ0ZXIpIHsKLSAg ICAgbGx2bTo6QmFzaWNCbG9jayAqbmV3QkIgPSBsbHZtOjpCYXNpY0Jsb2NrOjpDcmVhdGUoKmct PmN0eCwgbmFtZSwgbGx2bUZ1bmN0aW9uKTsKLSAgICAgaWYgKGluc2VydEFmdGVyKQotICAgICAg ICAgbmV3QkItPm1vdmVBZnRlcihpbnNlcnRBZnRlcik7Ci1AQCAtMTQxNiwxNCArMTQxNywxNSBA QCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6STFWZWNUb0Jvb2xWZWMobGx2bTo6 VmFsdWUgKmIpIHsKLSAKLSAgICAgICAgIGZvciAodW5zaWduZWQgaW50IGkgPSAwOyBpIDwgYXQt PmdldE51bUVsZW1lbnRzKCk7ICsraSkgewotICAgICAgICAgICAgIGxsdm06OlZhbHVlICplbHQg PSBFeHRyYWN0SW5zdChiLCBpKTsKLS0gICAgICAgICAgICBsbHZtOjpWYWx1ZSAqc2V4dCA9IFN3 aXRjaEJvb2xTaXplKGVsdCwgTExWTVR5cGVzOjpCb29sVmVjdG9yU3RvcmFnZVR5cGUsIExMVk1H ZXROYW1lKGVsdCwgIl90b19ib29sdmVjIikpOwotKyAgICAgICAgICAgIGxsdm06OlZhbHVlICpz ZXh0ID0KLSsgICAgICAgICAgICAgICAgU3dpdGNoQm9vbFNpemUoZWx0LCBMTFZNVHlwZXM6OkJv b2xWZWN0b3JTdG9yYWdlVHlwZSwgbGx2bTo6VHdpbmUoZWx0LT5nZXROYW1lKCkpICsgIl90b19i b29sdmVjIik7Ci0gICAgICAgICAgICAgcmV0ID0gSW5zZXJ0SW5zdChyZXQsIHNleHQsIGkpOwot ICAgICAgICAgfQotICAgICAgICAgcmV0dXJuIHJldDsKLSAgICAgfSBlbHNlIHsKLSAgICAgICAg IC8vIEZvciBub24tYXJyYXkgdHlwZXMsIGNvbnZlcnQgdG8gJ0xMVk1UeXBlczo6Qm9vbFZlY3Rv clR5cGUnIGlmCi0gICAgICAgICAvLyBuZWNlc3NhcnkuCi0tICAgICAgICByZXR1cm4gU3dpdGNo Qm9vbFNpemUoYiwgTExWTVR5cGVzOjpCb29sVmVjdG9yVHlwZSwgTExWTUdldE5hbWUoYiwgIl90 b19ib29sdmVjIikpOwotKyAgICAgICAgcmV0dXJuIFN3aXRjaEJvb2xTaXplKGIsIExMVk1UeXBl czo6Qm9vbFZlY3RvclR5cGUsIGxsdm06OlR3aW5lKGItPmdldE5hbWUoKSkgKyAiX3RvX2Jvb2x2 ZWMiKTsKLSAgICAgfQotIH0KLSAKLUBAIC0xNTYzLDcgKzE1NjUsNyBAQCBzdGF0aWMgaW50IGxB cnJheVZlY3RvcldpZHRoKGxsdm06OlR5cGUgKnQpIHsKLSB9Ci0gCi0gbGx2bTo6VmFsdWUgKkZ1 bmN0aW9uRW1pdENvbnRleHQ6OkJpbmFyeU9wZXJhdG9yKGxsdm06Okluc3RydWN0aW9uOjpCaW5h cnlPcHMgaW5zdCwgbGx2bTo6VmFsdWUgKnYwLCBsbHZtOjpWYWx1ZSAqdjEsCi0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKm5hbWUp IHsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u c3QgbGx2bTo6VHdpbmUgJm5hbWUpIHsKLSAgICAgaWYgKHYwID09IE5VTEwgfHwgdjEgPT0gTlVM TCkgewotICAgICAgICAgQXNzZXJ0UG9zKGN1cnJlbnRQb3MsIG0tPmVycm9yQ291bnQgPiAwKTsK LSAgICAgICAgIHJldHVybiBOVUxMOwotQEAgLTE1NzMsNyArMTU3NSw3IEBAIGxsdm06OlZhbHVl ICpGdW5jdGlvbkVtaXRDb250ZXh0OjpCaW5hcnlPcGVyYXRvcihsbHZtOjpJbnN0cnVjdGlvbjo6 QmluYXJ5T3BzIGluCi0gICAgIGxsdm06OlR5cGUgKnR5cGUgPSB2MC0+Z2V0VHlwZSgpOwotICAg ICBpbnQgYXJyYXlTaXplID0gbEFycmF5VmVjdG9yV2lkdGgodHlwZSk7Ci0gICAgIGlmIChhcnJh eVNpemUgPT0gMCkgewotLSAgICAgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmJvcCA9IGxsdm06OkJp bmFyeU9wZXJhdG9yOjpDcmVhdGUoaW5zdCwgdjAsIHYxLCBuYW1lID8gbmFtZSA6ICIiLCBiYmxv Y2spOwotKyAgICAgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmJvcCA9IGxsdm06OkJpbmFyeU9wZXJh dG9yOjpDcmVhdGUoaW5zdCwgdjAsIHYxLCBuYW1lLCBiYmxvY2spOwotICAgICAgICAgQWRkRGVi dWdQb3MoYm9wKTsKLSAgICAgICAgIHJldHVybiBib3A7Ci0gICAgIH0gZWxzZSB7Ci1AQCAtMTU5 MSw3ICsxNTkzLDcgQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkJpbmFyeU9w ZXJhdG9yKGxsdm06Okluc3RydWN0aW9uOjpCaW5hcnlPcHMgaW4KLSAgICAgfQotIH0KLSAKLS1s bHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6Tm90T3BlcmF0b3IobGx2bTo6VmFsdWUg KnYsIGNvbnN0IGNoYXIgKm5hbWUpIHsKLStsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4 dDo6Tm90T3BlcmF0b3IobGx2bTo6VmFsdWUgKnYsIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lKSB7 Ci0gICAgIGlmICh2ID09IE5VTEwpIHsKLSAgICAgICAgIEFzc2VydFBvcyhjdXJyZW50UG9zLCBt LT5lcnJvckNvdW50ID4gMCk7Ci0gICAgICAgICByZXR1cm4gTlVMTDsKLUBAIC0xNjAzLDE0ICsx NjA1LDE0IEBAIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpOb3RPcGVyYXRvcihs bHZtOjpWYWx1ZSAqdiwgY29uc3QgY2hhciAqbmFtZSkKLSAgICAgbGx2bTo6VHlwZSAqdHlwZSA9 IHYtPmdldFR5cGUoKTsKLSAgICAgaW50IGFycmF5U2l6ZSA9IGxBcnJheVZlY3RvcldpZHRoKHR5 cGUpOwotICAgICBpZiAoYXJyYXlTaXplID09IDApIHsKLS0gICAgICAgIGxsdm06Okluc3RydWN0 aW9uICpiaW5zdCA9IGxsdm06OkJpbmFyeU9wZXJhdG9yOjpDcmVhdGVOb3QodiwgbmFtZSA/IG5h bWUgOiAibm90IiwgYmJsb2NrKTsKLSsgICAgICAgIGxsdm06Okluc3RydWN0aW9uICpiaW5zdCA9 IGxsdm06OkJpbmFyeU9wZXJhdG9yOjpDcmVhdGVOb3QodiwgbmFtZS5pc1RyaXZpYWxseUVtcHR5 KCkgPyAibm90IiA6IG5hbWUsIGJibG9jayk7Ci0gICAgICAgICBBZGREZWJ1Z1BvcyhiaW5zdCk7 Ci0gICAgICAgICByZXR1cm4gYmluc3Q7Ci0gICAgIH0gZWxzZSB7Ci0gICAgICAgICBsbHZtOjpW YWx1ZSAqcmV0ID0gbGx2bTo6VW5kZWZWYWx1ZTo6Z2V0KHR5cGUpOwotICAgICAgICAgZm9yIChp bnQgaSA9IDA7IGkgPCBhcnJheVNpemU7ICsraSkgewotICAgICAgICAgICAgIGxsdm06OlZhbHVl ICphID0gRXh0cmFjdEluc3QodiwgaSk7Ci0tICAgICAgICAgICAgbGx2bTo6VmFsdWUgKm9wID0g bGx2bTo6QmluYXJ5T3BlcmF0b3I6OkNyZWF0ZU5vdChhLCBuYW1lID8gbmFtZSA6ICJub3QiLCBi YmxvY2spOwotKyAgICAgICAgICAgIGxsdm06OlZhbHVlICpvcCA9IGxsdm06OkJpbmFyeU9wZXJh dG9yOjpDcmVhdGVOb3QoYSwgbmFtZS5pc1RyaXZpYWxseUVtcHR5KCkgPyAibm90IiA6IG5hbWUs IGJibG9jayk7Ci0gICAgICAgICAgICAgQWRkRGVidWdQb3Mob3ApOwotICAgICAgICAgICAgIHJl dCA9IEluc2VydEluc3QocmV0LCBvcCwgaSk7Ci0gICAgICAgICB9Ci1AQCAtMTYzOCw3ICsxNjQw LDcgQEAgc3RhdGljIGxsdm06OlR5cGUgKmxHZXRNYXRjaGluZ0Jvb2xWZWN0b3JUeXBlKGxsdm06 OlR5cGUgKnR5cGUpIHsKLSB9Ci0gCi0gbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6 OkNtcEluc3QobGx2bTo6SW5zdHJ1Y3Rpb246Ok90aGVyT3BzIGluc3QsIGxsdm06OkNtcEluc3Q6 OlByZWRpY2F0ZSBwcmVkLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGxsdm06OlZhbHVlICp2MCwgbGx2bTo6VmFsdWUgKnYxLCBjb25zdCBjaGFyICpuYW1lKSB7 Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6VmFsdWUg KnYwLCBsbHZtOjpWYWx1ZSAqdjEsIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lKSB7Ci0gICAgIGlm ICh2MCA9PSBOVUxMIHx8IHYxID09IE5VTEwpIHsKLSAgICAgICAgIEFzc2VydFBvcyhjdXJyZW50 UG9zLCBtLT5lcnJvckNvdW50ID4gMCk7Ci0gICAgICAgICByZXR1cm4gTlVMTDsKLUBAIC0xNjQ4 LDcgKzE2NTAsOCBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6Q21wSW5zdChs bHZtOjpJbnN0cnVjdGlvbjo6T3RoZXJPcHMgaW5zdCwgbGx2bQotICAgICBsbHZtOjpUeXBlICp0 eXBlID0gdjAtPmdldFR5cGUoKTsKLSAgICAgaW50IGFycmF5U2l6ZSA9IGxBcnJheVZlY3Rvcldp ZHRoKHR5cGUpOwotICAgICBpZiAoYXJyYXlTaXplID09IDApIHsKLS0gICAgICAgIGxsdm06Oklu c3RydWN0aW9uICpjaSA9IGxsdm06OkNtcEluc3Q6OkNyZWF0ZShpbnN0LCBwcmVkLCB2MCwgdjEs IG5hbWUgPyBuYW1lIDogImNtcCIsIGJibG9jayk7Ci0rICAgICAgICBsbHZtOjpJbnN0cnVjdGlv biAqY2kgPQotKyAgICAgICAgICAgIGxsdm06OkNtcEluc3Q6OkNyZWF0ZShpbnN0LCBwcmVkLCB2 MCwgdjEsIG5hbWUuaXNUcml2aWFsbHlFbXB0eSgpID8gImNtcCIgOiBuYW1lLCBiYmxvY2spOwot ICAgICAgICAgQWRkRGVidWdQb3MoY2kpOwotICAgICAgICAgcmV0dXJuIGNpOwotICAgICB9IGVs c2UgewotQEAgLTE2NTcsMTQgKzE2NjAsMTQgQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENv bnRleHQ6OkNtcEluc3QobGx2bTo6SW5zdHJ1Y3Rpb246Ok90aGVyT3BzIGluc3QsIGxsdm0KLSAg ICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgYXJyYXlTaXplOyArK2kpIHsKLSAgICAgICAgICAg ICBsbHZtOjpWYWx1ZSAqYSA9IEV4dHJhY3RJbnN0KHYwLCBpKTsKLSAgICAgICAgICAgICBsbHZt OjpWYWx1ZSAqYiA9IEV4dHJhY3RJbnN0KHYxLCBpKTsKLS0gICAgICAgICAgICBsbHZtOjpWYWx1 ZSAqb3AgPSBDbXBJbnN0KGluc3QsIHByZWQsIGEsIGIsIG5hbWUpOwotKyAgICAgICAgICAgIGxs dm06OlZhbHVlICpvcCA9IENtcEluc3QoaW5zdCwgcHJlZCwgYSwgYiwgbmFtZS5pc1RyaXZpYWxs eUVtcHR5KCkgPyAiY21wIiA6IG5hbWUpOwotICAgICAgICAgICAgIHJldCA9IEluc2VydEluc3Qo cmV0LCBvcCwgaSk7Ci0gICAgICAgICB9Ci0gICAgICAgICByZXR1cm4gcmV0OwotICAgICB9Ci0g fQotIAotLWxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpTbWVhclVuaWZvcm0obGx2 bTo6VmFsdWUgKnZhbHVlLCBjb25zdCBjaGFyICpuYW1lKSB7Ci0rbGx2bTo6VmFsdWUgKkZ1bmN0 aW9uRW1pdENvbnRleHQ6OlNtZWFyVW5pZm9ybShsbHZtOjpWYWx1ZSAqdmFsdWUsIGNvbnN0IGxs dm06OlR3aW5lICZuYW1lKSB7Ci0gICAgIGlmICh2YWx1ZSA9PSBOVUxMKSB7Ci0gICAgICAgICBB c3NlcnRQb3MoY3VycmVudFBvcywgbS0+ZXJyb3JDb3VudCA+IDApOwotICAgICAgICAgcmV0dXJu IE5VTEw7Ci1AQCAtMTcwNCwyMSArMTcwNywxOSBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0 Q29udGV4dDo6U21lYXJVbmlmb3JtKGxsdm06OlZhbHVlICp2YWx1ZSwgY29uc3QgY2hhciAqbgot ICAgICByZXR1cm4gcmV0OwotIH0KLSAKLS1sbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4 dDo6Qml0Q2FzdEluc3QobGx2bTo6VmFsdWUgKnZhbHVlLCBsbHZtOjpUeXBlICp0eXBlLCBjb25z dCBjaGFyICpuYW1lKSB7Ci0rbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkJpdENh c3RJbnN0KGxsdm06OlZhbHVlICp2YWx1ZSwgbGx2bTo6VHlwZSAqdHlwZSwgY29uc3QgbGx2bTo6 VHdpbmUgJm5hbWUpIHsKLSAgICAgaWYgKHZhbHVlID09IE5VTEwpIHsKLSAgICAgICAgIEFzc2Vy dFBvcyhjdXJyZW50UG9zLCBtLT5lcnJvckNvdW50ID4gMCk7Ci0gICAgICAgICByZXR1cm4gTlVM TDsKLSAgICAgfQotIAotLSAgICBpZiAobmFtZSA9PSBOVUxMKQotLSAgICAgICAgbmFtZSA9IExM Vk1HZXROYW1lKHZhbHVlLCAiX2JpdGNhc3QiKTsKLS0KLS0gICAgbGx2bTo6SW5zdHJ1Y3Rpb24g Kmluc3QgPSBuZXcgbGx2bTo6Qml0Q2FzdEluc3QodmFsdWUsIHR5cGUsIG5hbWUsIGJibG9jayk7 Ci0rICAgIGxsdm06Okluc3RydWN0aW9uICppbnN0ID0gbmV3IGxsdm06OkJpdENhc3RJbnN0KAot KyAgICAgICAgdmFsdWUsIHR5cGUsIG5hbWUuaXNUcml2aWFsbHlFbXB0eSgpID8gbGx2bTo6VHdp bmUodmFsdWUtPmdldE5hbWUoKSkgKyAiX2JpdGNhc3QiIDogbmFtZSwgYmJsb2NrKTsKLSAgICAg QWRkRGVidWdQb3MoaW5zdCk7Ci0gICAgIHJldHVybiBpbnN0OwotIH0KLSAKLS1sbHZtOjpWYWx1 ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6UHRyVG9JbnRJbnN0KGxsdm06OlZhbHVlICp2YWx1ZSwg Y29uc3QgY2hhciAqbmFtZSkgewotK2xsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpQ dHJUb0ludEluc3QobGx2bTo6VmFsdWUgKnZhbHVlLCBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSkg ewotICAgICBpZiAodmFsdWUgPT0gTlVMTCkgewotICAgICAgICAgQXNzZXJ0UG9zKGN1cnJlbnRQ b3MsIG0tPmVycm9yQ291bnQgPiAwKTsKLSAgICAgICAgIHJldHVybiBOVUxMOwotQEAgLTE3Mjgs MjMgKzE3MjksMTkgQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OlB0clRvSW50 SW5zdChsbHZtOjpWYWx1ZSAqdmFsdWUsIGNvbnN0IGNoYXIgKm4KLSAgICAgICAgIC8vIG5vLW9w IGZvciB2YXJ5aW5nIHBvaW50ZXJzOyB0aGV5J3JlIGFscmVhZHkgdmVjdG9ycyBvZiBpbnRzCi0g ICAgICAgICByZXR1cm4gdmFsdWU7Ci0gCi0tICAgIGlmIChuYW1lID09IE5VTEwpCi0tICAgICAg ICBuYW1lID0gTExWTUdldE5hbWUodmFsdWUsICJfcHRyMmludCIpOwotICAgICBsbHZtOjpUeXBl ICp0eXBlID0gTExWTVR5cGVzOjpQb2ludGVySW50VHlwZTsKLS0gICAgbGx2bTo6SW5zdHJ1Y3Rp b24gKmluc3QgPSBuZXcgbGx2bTo6UHRyVG9JbnRJbnN0KHZhbHVlLCB0eXBlLCBuYW1lLCBiYmxv Y2spOwotKyAgICBsbHZtOjpJbnN0cnVjdGlvbiAqaW5zdCA9IG5ldyBsbHZtOjpQdHJUb0ludElu c3QoCi0rICAgICAgICB2YWx1ZSwgdHlwZSwgbmFtZS5pc1RyaXZpYWxseUVtcHR5KCkgPyBsbHZt OjpUd2luZSh2YWx1ZS0+Z2V0TmFtZSgpKSArICJfcHRyMmludCIgOiBuYW1lLCBiYmxvY2spOwot ICAgICBBZGREZWJ1Z1BvcyhpbnN0KTsKLSAgICAgcmV0dXJuIGluc3Q7Ci0gfQotIAotLWxsdm06 OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpQdHJUb0ludEluc3QobGx2bTo6VmFsdWUgKnZh bHVlLCBsbHZtOjpUeXBlICp0b1R5cGUsIGNvbnN0IGNoYXIgKm5hbWUpIHsKLStsbHZtOjpWYWx1 ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6UHRyVG9JbnRJbnN0KGxsdm06OlZhbHVlICp2YWx1ZSwg bGx2bTo6VHlwZSAqdG9UeXBlLCBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSkgewotICAgICBpZiAo dmFsdWUgPT0gTlVMTCkgewotICAgICAgICAgQXNzZXJ0UG9zKGN1cnJlbnRQb3MsIG0tPmVycm9y Q291bnQgPiAwKTsKLSAgICAgICAgIHJldHVybiBOVUxMOwotICAgICB9Ci0gCi0tICAgIGlmIChu YW1lID09IE5VTEwpCi0tICAgICAgICBuYW1lID0gTExWTUdldE5hbWUodmFsdWUsICJfcHRyMmlu dCIpOwotLQotICAgICBsbHZtOjpUeXBlICpmcm9tVHlwZSA9IHZhbHVlLT5nZXRUeXBlKCk7Ci0g ICAgIGlmIChsbHZtOjppc2E8bGx2bTo6VmVjdG9yVHlwZT4oZnJvbVR5cGUpKSB7Ci0gICAgICAg ICAvLyB2YXJ5aW5nIHBvaW50ZXIKLUBAIC0xNzUyLDI3ICsxNzQ5LDI2IEBAIGxsdm06OlZhbHVl ICpGdW5jdGlvbkVtaXRDb250ZXh0OjpQdHJUb0ludEluc3QobGx2bTo6VmFsdWUgKnZhbHVlLCBs bHZtOjpUeXBlICp0Ci0gICAgICAgICAgICAgLy8gYWxyZWFkeSB0aGUgcmlnaHQgdHlwZS0tZG9u ZQotICAgICAgICAgICAgIHJldHVybiB2YWx1ZTsKLSAgICAgICAgIGVsc2UgaWYgKGZyb21UeXBl LT5nZXRTY2FsYXJTaXplSW5CaXRzKCkgPiB0b1R5cGUtPmdldFNjYWxhclNpemVJbkJpdHMoKSkK LS0gICAgICAgICAgICByZXR1cm4gVHJ1bmNJbnN0KHZhbHVlLCB0b1R5cGUsIG5hbWUpOwotKyAg ICAgICAgICAgIHJldHVybiBUcnVuY0luc3QodmFsdWUsIHRvVHlwZSwKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIG5hbWUuaXNUcml2aWFsbHlFbXB0eSgpID8gbGx2bTo6VHdpbmUodmFs dWUtPmdldE5hbWUoKSkgKyAiX3B0cjJpbnQiIDogbmFtZSk7Ci0gICAgICAgICBlbHNlIHsKLSAg ICAgICAgICAgICBBc3NlcnRQb3MoY3VycmVudFBvcywgZnJvbVR5cGUtPmdldFNjYWxhclNpemVJ bkJpdHMoKSA8IHRvVHlwZS0+Z2V0U2NhbGFyU2l6ZUluQml0cygpKTsKLS0gICAgICAgICAgICBy ZXR1cm4gWkV4dEluc3QodmFsdWUsIHRvVHlwZSwgbmFtZSk7Ci0rICAgICAgICAgICAgcmV0dXJu IFpFeHRJbnN0KHZhbHVlLCB0b1R5cGUsIG5hbWUuaXNUcml2aWFsbHlFbXB0eSgpID8gbGx2bTo6 VHdpbmUodmFsdWUtPmdldE5hbWUoKSkgKyAiX3B0cjJpbnQiIDogbmFtZSk7Ci0gICAgICAgICB9 Ci0gICAgIH0KLSAKLS0gICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmluc3QgPSBuZXcgbGx2bTo6UHRy VG9JbnRJbnN0KHZhbHVlLCB0b1R5cGUsIG5hbWUsIGJibG9jayk7Ci0rICAgIGxsdm06Okluc3Ry dWN0aW9uICppbnN0ID0gbmV3IGxsdm06OlB0clRvSW50SW5zdCgKLSsgICAgICAgIHZhbHVlLCB0 b1R5cGUsIG5hbWUuaXNUcml2aWFsbHlFbXB0eSgpID8gbGx2bTo6VHdpbmUodmFsdWUtPmdldE5h bWUoKSkgKyAiX3B0cjJpbnQiIDogbmFtZSwgYmJsb2NrKTsKLSAgICAgQWRkRGVidWdQb3MoaW5z dCk7Ci0gICAgIHJldHVybiBpbnN0OwotIH0KLSAKLS1sbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0 Q29udGV4dDo6SW50VG9QdHJJbnN0KGxsdm06OlZhbHVlICp2YWx1ZSwgbGx2bTo6VHlwZSAqdG9U eXBlLCBjb25zdCBjaGFyICpuYW1lKSB7Ci0rbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRl eHQ6OkludFRvUHRySW5zdChsbHZtOjpWYWx1ZSAqdmFsdWUsIGxsdm06OlR5cGUgKnRvVHlwZSwg Y29uc3QgbGx2bTo6VHdpbmUgJm5hbWUpIHsKLSAgICAgaWYgKHZhbHVlID09IE5VTEwpIHsKLSAg ICAgICAgIEFzc2VydFBvcyhjdXJyZW50UG9zLCBtLT5lcnJvckNvdW50ID4gMCk7Ci0gICAgICAg ICByZXR1cm4gTlVMTDsKLSAgICAgfQotIAotLSAgICBpZiAobmFtZSA9PSBOVUxMKQotLSAgICAg ICAgbmFtZSA9IExMVk1HZXROYW1lKHZhbHVlLCAiX2ludDJwdHIiKTsKLS0KLSAgICAgbGx2bTo6 VHlwZSAqZnJvbVR5cGUgPSB2YWx1ZS0+Z2V0VHlwZSgpOwotICAgICBpZiAobGx2bTo6aXNhPGxs dm06OlZlY3RvclR5cGU+KGZyb21UeXBlKSkgewotICAgICAgICAgLy8gdmFyeWluZyBwb2ludGVy Ci1AQCAtMTc4MCw5NSArMTc3Niw4NyBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4 dDo6SW50VG9QdHJJbnN0KGxsdm06OlZhbHVlICp2YWx1ZSwgbGx2bTo6VHlwZSAqdAotICAgICAg ICAgICAgIC8vIGRvbmUKLSAgICAgICAgICAgICByZXR1cm4gdmFsdWU7Ci0gICAgICAgICBlbHNl IGlmIChmcm9tVHlwZS0+Z2V0U2NhbGFyU2l6ZUluQml0cygpID4gdG9UeXBlLT5nZXRTY2FsYXJT aXplSW5CaXRzKCkpCi0tICAgICAgICAgICAgcmV0dXJuIFRydW5jSW5zdCh2YWx1ZSwgdG9UeXBl LCBuYW1lKTsKLSsgICAgICAgICAgICByZXR1cm4gVHJ1bmNJbnN0KHZhbHVlLCB0b1R5cGUsCi0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lLmlzVHJpdmlhbGx5RW1wdHkoKSA/IGxs dm06OlR3aW5lKHZhbHVlLT5nZXROYW1lKCkpICsgIl9pbnQycHRyIiA6IG5hbWUpOwotICAgICAg ICAgZWxzZSB7Ci0gICAgICAgICAgICAgQXNzZXJ0UG9zKGN1cnJlbnRQb3MsIGZyb21UeXBlLT5n ZXRTY2FsYXJTaXplSW5CaXRzKCkgPCB0b1R5cGUtPmdldFNjYWxhclNpemVJbkJpdHMoKSk7Ci0t ICAgICAgICAgICAgcmV0dXJuIFpFeHRJbnN0KHZhbHVlLCB0b1R5cGUsIG5hbWUpOwotKyAgICAg ICAgICAgIHJldHVybiBaRXh0SW5zdCh2YWx1ZSwgdG9UeXBlLCBuYW1lLmlzVHJpdmlhbGx5RW1w dHkoKSA/IGxsdm06OlR3aW5lKHZhbHVlLT5nZXROYW1lKCkpICsgIl9pbnQycHRyIiA6IG5hbWUp OwotICAgICAgICAgfQotICAgICB9Ci0gCi0tICAgIGxsdm06Okluc3RydWN0aW9uICppbnN0ID0g bmV3IGxsdm06OkludFRvUHRySW5zdCh2YWx1ZSwgdG9UeXBlLCBuYW1lLCBiYmxvY2spOwotKyAg ICBsbHZtOjpJbnN0cnVjdGlvbiAqaW5zdCA9IG5ldyBsbHZtOjpJbnRUb1B0ckluc3QoCi0rICAg ICAgICB2YWx1ZSwgdG9UeXBlLCBuYW1lLmlzVHJpdmlhbGx5RW1wdHkoKSA/IGxsdm06OlR3aW5l KHZhbHVlLT5nZXROYW1lKCkpICsgIl9pbnQycHRyIiA6IG5hbWUsIGJibG9jayk7Ci0gICAgIEFk ZERlYnVnUG9zKGluc3QpOwotICAgICByZXR1cm4gaW5zdDsKLSB9Ci0gCi0tbGx2bTo6SW5zdHJ1 Y3Rpb24gKkZ1bmN0aW9uRW1pdENvbnRleHQ6OlRydW5jSW5zdChsbHZtOjpWYWx1ZSAqdmFsdWUs IGxsdm06OlR5cGUgKnR5cGUsIGNvbnN0IGNoYXIgKm5hbWUpIHsKLStsbHZtOjpJbnN0cnVjdGlv biAqRnVuY3Rpb25FbWl0Q29udGV4dDo6VHJ1bmNJbnN0KGxsdm06OlZhbHVlICp2YWx1ZSwgbGx2 bTo6VHlwZSAqdHlwZSwgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUpIHsKLSAgICAgaWYgKHZhbHVl ID09IE5VTEwpIHsKLSAgICAgICAgIEFzc2VydFBvcyhjdXJyZW50UG9zLCBtLT5lcnJvckNvdW50 ID4gMCk7Ci0gICAgICAgICByZXR1cm4gTlVMTDsKLSAgICAgfQotIAotLSAgICBpZiAobmFtZSA9 PSBOVUxMKQotLSAgICAgICAgbmFtZSA9IExMVk1HZXROYW1lKHZhbHVlLCAiX3RydW5jIik7Ci0t Ci0gICAgIC8vIFRPRE86IHdlIHNob3VsZCBwcm9iYWJseSBoYW5kbGUgdGhlIGFycmF5IGNhc2Ug YXMgaW4KLSAgICAgLy8gZS5nLiBCaXRDYXN0SW5zdCgpLCBidXQgd2UgZG9uJ3QgY3VycmVudGx5 IG5lZWQgdGhhdCBmdW5jdGlvbmFsaXR5Ci0tICAgIGxsdm06Okluc3RydWN0aW9uICppbnN0ID0g bmV3IGxsdm06OlRydW5jSW5zdCh2YWx1ZSwgdHlwZSwgbmFtZSwgYmJsb2NrKTsKLSsgICAgbGx2 bTo6SW5zdHJ1Y3Rpb24gKmluc3QgPSBuZXcgbGx2bTo6VHJ1bmNJbnN0KAotKyAgICAgICAgdmFs dWUsIHR5cGUsIG5hbWUuaXNUcml2aWFsbHlFbXB0eSgpID8gbGx2bTo6VHdpbmUodmFsdWUtPmdl dE5hbWUoKSkgKyAiX3RydW5jIiA6IG5hbWUsIGJibG9jayk7Ci0gICAgIEFkZERlYnVnUG9zKGlu c3QpOwotICAgICByZXR1cm4gaW5zdDsKLSB9Ci0gCi0gbGx2bTo6SW5zdHJ1Y3Rpb24gKkZ1bmN0 aW9uRW1pdENvbnRleHQ6OkNhc3RJbnN0KGxsdm06Okluc3RydWN0aW9uOjpDYXN0T3BzIG9wLCBs bHZtOjpWYWx1ZSAqdmFsdWUsIGxsdm06OlR5cGUgKnR5cGUsCi0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKm5hbWUpIHsKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGx2bTo6 VHdpbmUgJm5hbWUpIHsKLSAgICAgaWYgKHZhbHVlID09IE5VTEwpIHsKLSAgICAgICAgIEFzc2Vy dFBvcyhjdXJyZW50UG9zLCBtLT5lcnJvckNvdW50ID4gMCk7Ci0gICAgICAgICByZXR1cm4gTlVM TDsKLSAgICAgfQotIAotLSAgICBpZiAobmFtZSA9PSBOVUxMKQotLSAgICAgICAgbmFtZSA9IExM Vk1HZXROYW1lKHZhbHVlLCAiX2Nhc3QiKTsKLS0KLSAgICAgLy8gVE9ETzogd2Ugc2hvdWxkIHBy b2JhYmx5IGhhbmRsZSB0aGUgYXJyYXkgY2FzZSBhcyBpbgotICAgICAvLyBlLmcuIEJpdENhc3RJ bnN0KCksIGJ1dCB3ZSBkb24ndCBjdXJyZW50bHkgbmVlZCB0aGF0IGZ1bmN0aW9uYWxpdHkKLS0g ICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmluc3QgPSBsbHZtOjpDYXN0SW5zdDo6Q3JlYXRlKG9wLCB2 YWx1ZSwgdHlwZSwgbmFtZSwgYmJsb2NrKTsKLSsgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmluc3Qg PSBsbHZtOjpDYXN0SW5zdDo6Q3JlYXRlKAotKyAgICAgICAgb3AsIHZhbHVlLCB0eXBlLCBuYW1l LmlzVHJpdmlhbGx5RW1wdHkoKSA/IGxsdm06OlR3aW5lKHZhbHVlLT5nZXROYW1lKCkpICsgIl9j YXN0IiA6IG5hbWUsIGJibG9jayk7Ci0gICAgIEFkZERlYnVnUG9zKGluc3QpOwotICAgICByZXR1 cm4gaW5zdDsKLSB9Ci0gCi0tbGx2bTo6SW5zdHJ1Y3Rpb24gKkZ1bmN0aW9uRW1pdENvbnRleHQ6 OkZQQ2FzdEluc3QobGx2bTo6VmFsdWUgKnZhbHVlLCBsbHZtOjpUeXBlICp0eXBlLCBjb25zdCBj aGFyICpuYW1lKSB7Ci0rbGx2bTo6SW5zdHJ1Y3Rpb24gKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkZQ Q2FzdEluc3QobGx2bTo6VmFsdWUgKnZhbHVlLCBsbHZtOjpUeXBlICp0eXBlLCBjb25zdCBsbHZt OjpUd2luZSAmbmFtZSkgewotICAgICBpZiAodmFsdWUgPT0gTlVMTCkgewotICAgICAgICAgQXNz ZXJ0UG9zKGN1cnJlbnRQb3MsIG0tPmVycm9yQ291bnQgPiAwKTsKLSAgICAgICAgIHJldHVybiBO VUxMOwotICAgICB9Ci0gCi0tICAgIGlmIChuYW1lID09IE5VTEwpCi0tICAgICAgICBuYW1lID0g TExWTUdldE5hbWUodmFsdWUsICJfY2FzdCIpOwotLQotICAgICAvLyBUT0RPOiB3ZSBzaG91bGQg cHJvYmFibHkgaGFuZGxlIHRoZSBhcnJheSBjYXNlIGFzIGluCi0gICAgIC8vIGUuZy4gQml0Q2Fz dEluc3QoKSwgYnV0IHdlIGRvbid0IGN1cnJlbnRseSBuZWVkIHRoYXQgZnVuY3Rpb25hbGl0eQot LSAgICBsbHZtOjpJbnN0cnVjdGlvbiAqaW5zdCA9IGxsdm06OkNhc3RJbnN0OjpDcmVhdGVGUENh c3QodmFsdWUsIHR5cGUsIG5hbWUsIGJibG9jayk7Ci0rICAgIGxsdm06Okluc3RydWN0aW9uICpp bnN0ID0gbGx2bTo6Q2FzdEluc3Q6OkNyZWF0ZUZQQ2FzdCgKLSsgICAgICAgIHZhbHVlLCB0eXBl LCBuYW1lLmlzVHJpdmlhbGx5RW1wdHkoKSA/IGxsdm06OlR3aW5lKHZhbHVlLT5nZXROYW1lKCkp ICsgIl9jYXN0IiA6IG5hbWUsIGJibG9jayk7Ci0gICAgIEFkZERlYnVnUG9zKGluc3QpOwotICAg ICByZXR1cm4gaW5zdDsKLSB9Ci0gCi0tbGx2bTo6SW5zdHJ1Y3Rpb24gKkZ1bmN0aW9uRW1pdENv bnRleHQ6OlNFeHRJbnN0KGxsdm06OlZhbHVlICp2YWx1ZSwgbGx2bTo6VHlwZSAqdHlwZSwgY29u c3QgY2hhciAqbmFtZSkgewotK2xsdm06Okluc3RydWN0aW9uICpGdW5jdGlvbkVtaXRDb250ZXh0 OjpTRXh0SW5zdChsbHZtOjpWYWx1ZSAqdmFsdWUsIGxsdm06OlR5cGUgKnR5cGUsIGNvbnN0IGxs dm06OlR3aW5lICZuYW1lKSB7Ci0gICAgIGlmICh2YWx1ZSA9PSBOVUxMKSB7Ci0gICAgICAgICBB c3NlcnRQb3MoY3VycmVudFBvcywgbS0+ZXJyb3JDb3VudCA+IDApOwotICAgICAgICAgcmV0dXJu IE5VTEw7Ci0gICAgIH0KLSAKLS0gICAgaWYgKG5hbWUgPT0gTlVMTCkKLS0gICAgICAgIG5hbWUg PSBMTFZNR2V0TmFtZSh2YWx1ZSwgIl9zZXh0Iik7Ci0tCi0gICAgIC8vIFRPRE86IHdlIHNob3Vs ZCBwcm9iYWJseSBoYW5kbGUgdGhlIGFycmF5IGNhc2UgYXMgaW4KLSAgICAgLy8gZS5nLiBCaXRD YXN0SW5zdCgpLCBidXQgd2UgZG9uJ3QgY3VycmVudGx5IG5lZWQgdGhhdCBmdW5jdGlvbmFsaXR5 Ci0tICAgIGxsdm06Okluc3RydWN0aW9uICppbnN0ID0gbmV3IGxsdm06OlNFeHRJbnN0KHZhbHVl LCB0eXBlLCBuYW1lLCBiYmxvY2spOwotKyAgICBsbHZtOjpJbnN0cnVjdGlvbiAqaW5zdCA9IG5l dyBsbHZtOjpTRXh0SW5zdCgKLSsgICAgICAgIHZhbHVlLCB0eXBlLCBuYW1lLmlzVHJpdmlhbGx5 RW1wdHkoKSA/IGxsdm06OlR3aW5lKHZhbHVlLT5nZXROYW1lKCkpICsgIl9zZXh0IiA6IG5hbWUs IGJibG9jayk7Ci0gICAgIEFkZERlYnVnUG9zKGluc3QpOwotICAgICByZXR1cm4gaW5zdDsKLSB9 Ci0gCi0tbGx2bTo6SW5zdHJ1Y3Rpb24gKkZ1bmN0aW9uRW1pdENvbnRleHQ6OlpFeHRJbnN0KGxs dm06OlZhbHVlICp2YWx1ZSwgbGx2bTo6VHlwZSAqdHlwZSwgY29uc3QgY2hhciAqbmFtZSkgewot K2xsdm06Okluc3RydWN0aW9uICpGdW5jdGlvbkVtaXRDb250ZXh0OjpaRXh0SW5zdChsbHZtOjpW YWx1ZSAqdmFsdWUsIGxsdm06OlR5cGUgKnR5cGUsIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lKSB7 Ci0gICAgIGlmICh2YWx1ZSA9PSBOVUxMKSB7Ci0gICAgICAgICBBc3NlcnRQb3MoY3VycmVudFBv cywgbS0+ZXJyb3JDb3VudCA+IDApOwotICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgIH0KLSAK LS0gICAgaWYgKG5hbWUgPT0gTlVMTCkKLS0gICAgICAgIG5hbWUgPSBMTFZNR2V0TmFtZSh2YWx1 ZSwgIl96ZXh0Iik7Ci0tCi0gICAgIC8vIFRPRE86IHdlIHNob3VsZCBwcm9iYWJseSBoYW5kbGUg dGhlIGFycmF5IGNhc2UgYXMgaW4KLSAgICAgLy8gZS5nLiBCaXRDYXN0SW5zdCgpLCBidXQgd2Ug ZG9uJ3QgY3VycmVudGx5IG5lZWQgdGhhdCBmdW5jdGlvbmFsaXR5Ci0tICAgIGxsdm06Okluc3Ry dWN0aW9uICppbnN0ID0gbmV3IGxsdm06OlpFeHRJbnN0KHZhbHVlLCB0eXBlLCBuYW1lLCBiYmxv Y2spOwotKyAgICBsbHZtOjpJbnN0cnVjdGlvbiAqaW5zdCA9IG5ldyBsbHZtOjpaRXh0SW5zdCgK LSsgICAgICAgIHZhbHVlLCB0eXBlLCBuYW1lLmlzVHJpdmlhbGx5RW1wdHkoKSA/IGxsdm06OlR3 aW5lKHZhbHVlLT5nZXROYW1lKCkpICsgIl96ZXh0IiA6IG5hbWUsIGJibG9jayk7Ci0gICAgIEFk ZERlYnVnUG9zKGluc3QpOwotICAgICByZXR1cm4gaW5zdDsKLSB9Ci1AQCAtMTkxMywxNCArMTkw MSwxNSBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6YXBwbHlWYXJ5aW5nR0VQ KGxsdm06OlZhbHVlICpiYXNlUHRyLCBsbHZtOjpWYQotICAgICAgICAgc2NhbGUgPSBTbWVhclVu aWZvcm0oc2NhbGUpOwotICAgICAgICAgQXNzZXJ0KGluZGV4ICE9IE5VTEwpOwotICAgICAgICAg Ly8gb2Zmc2V0ID0gaW5kZXggKiBzY2FsZQotLSAgICAgICAgb2Zmc2V0ID0gQmluYXJ5T3BlcmF0 b3IobGx2bTo6SW5zdHJ1Y3Rpb246Ok11bCwgc2NhbGUsIGluZGV4LCBMTFZNR2V0TmFtZSgibXVs Iiwgc2NhbGUsIGluZGV4KSk7Ci0rICAgICAgICBvZmZzZXQgPSBCaW5hcnlPcGVyYXRvcihsbHZt OjpJbnN0cnVjdGlvbjo6TXVsLCBzY2FsZSwgaW5kZXgsCi0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAoKGxsdm06OlR3aW5lKCJtdWxfIikgKyBzY2FsZS0+Z2V0TmFtZSgpKSArICJf IikgKyBpbmRleC0+Z2V0TmFtZSgpKTsKLSAgICAgfQotIAotICAgICAvLyBGb3IgNjQtYml0IHRh cmdldHMsIGlmIHdlJ3ZlIGJlZW4gZG9pbmcgb3VyIG9mZnNldCBjYWxjdWxhdGlvbnMgaW4KLSAg ICAgLy8gMzIgYml0cywgd2Ugc3RpbGwgaGF2ZSB0byBjb252ZXJ0IHRvIGEgNjQtYml0IHZhbHVl IGJlZm9yZSB3ZQotICAgICAvLyBhY3R1YWxseSBhZGQgdGhlIG9mZnNldCB0byB0aGUgcG9pbnRl ci4KLSAgICAgaWYgKGctPnRhcmdldC0+aXMzMkJpdCgpID09IGZhbHNlICYmIGctPm9wdC5mb3Jj ZTMyQml0QWRkcmVzc2luZyA9PSB0cnVlKQotLSAgICAgICAgb2Zmc2V0ID0gU0V4dEluc3Qob2Zm c2V0LCBMTFZNVHlwZXM6OkludDY0VmVjdG9yVHlwZSwgTExWTUdldE5hbWUob2Zmc2V0LCAiX3Rv XzY0IikpOwotKyAgICAgICAgb2Zmc2V0ID0gU0V4dEluc3Qob2Zmc2V0LCBMTFZNVHlwZXM6Oklu dDY0VmVjdG9yVHlwZSwgbGx2bTo6VHdpbmUob2Zmc2V0LT5nZXROYW1lKCkpICsgIl90b182NCIp OwotIAotICAgICAvLyBTbWVhciBvdXQgdGhlIHBvaW50ZXIgdG8gYmUgdmFyeWluZzsgZWl0aGVy IHRoZSBiYXNlIHBvaW50ZXIgb3IgdGhlCi0gICAgIC8vIGluZGV4IG11c3QgYmUgdmFyeWluZyBm b3IgdGhpcyBtZXRob2QgdG8gYmUgY2FsbGVkLgotQEAgLTE5MjksNyArMTkxOCw3IEBAIGxsdm06 OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjphcHBseVZhcnlpbmdHRVAobGx2bTo6VmFsdWUg KmJhc2VQdHIsIGxsdm06OlZhCi0gICAgIGxsdm06OlZhbHVlICp2YXJ5aW5nUHRyID0gYmFzZUlz VW5pZm9ybSA/IFNtZWFyVW5pZm9ybShiYXNlUHRyKSA6IGJhc2VQdHI7Ci0gCi0gICAgIC8vIG5l d1B0ciA9IHB0ciArIG9mZnNldAotLSAgICByZXR1cm4gQmluYXJ5T3BlcmF0b3IobGx2bTo6SW5z dHJ1Y3Rpb246OkFkZCwgdmFyeWluZ1B0ciwgb2Zmc2V0LCBMTFZNR2V0TmFtZShiYXNlUHRyLCAi X29mZnNldCIpKTsKLSsgICAgcmV0dXJuIEJpbmFyeU9wZXJhdG9yKGxsdm06Okluc3RydWN0aW9u OjpBZGQsIHZhcnlpbmdQdHIsIG9mZnNldCwgbGx2bTo6VHdpbmUoYmFzZVB0ci0+Z2V0TmFtZSgp KSArICJfb2Zmc2V0Iik7Ci0gfQotIAotIHZvaWQgRnVuY3Rpb25FbWl0Q29udGV4dDo6TWF0Y2hJ bnRlZ2VyVHlwZXMobGx2bTo6VmFsdWUgKip2MCwgbGx2bTo6VmFsdWUgKip2MSkgewotQEAgLTIw MDYsMTMgKzE5OTUsMTMgQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6Ok1ha2VT bGljZVBvaW50ZXIobGx2bTo6VmFsdWUgKnB0ciwgbGx2bTo6VmFsdWUKLSAgICAgbGx2bTo6U3Ry dWN0VHlwZSAqc3QgPSBsbHZtOjpTdHJ1Y3RUeXBlOjpnZXQoKmctPmN0eCwgZWx0VHlwZXMpOwot IAotICAgICBsbHZtOjpWYWx1ZSAqcmV0ID0gbGx2bTo6VW5kZWZWYWx1ZTo6Z2V0KHN0KTsKLS0g ICAgcmV0ID0gSW5zZXJ0SW5zdChyZXQsIHB0ciwgMCwgTExWTUdldE5hbWUocmV0LCAiX3NsaWNl X3B0ciIpKTsKLS0gICAgcmV0ID0gSW5zZXJ0SW5zdChyZXQsIG9mZnNldCwgMSwgTExWTUdldE5h bWUocmV0LCAiX3NsaWNlX29mZnNldCIpKTsKLSsgICAgcmV0ID0gSW5zZXJ0SW5zdChyZXQsIHB0 ciwgMCwgbGx2bTo6VHdpbmUocmV0LT5nZXROYW1lKCkpICsgIl9zbGljZV9wdHIiKTsKLSsgICAg cmV0ID0gSW5zZXJ0SW5zdChyZXQsIG9mZnNldCwgMSwgbGx2bTo6VHdpbmUocmV0LT5nZXROYW1l KCkpICsgIl9zbGljZV9vZmZzZXQiKTsKLSAgICAgcmV0dXJuIHJldDsKLSB9Ci0gCi0gbGx2bTo6 VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkdldEVsZW1lbnRQdHJJbnN0KGxsdm06OlZhbHVl ICpiYXNlUHRyLCBsbHZtOjpWYWx1ZSAqaW5kZXgsIGNvbnN0IFR5cGUgKnB0clJlZlR5cGUsCi0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0 IGNoYXIgKm5hbWUpIHsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUpIHsKLSAgICAgaWYgKGJhc2VQdHIg PT0gTlVMTCB8fCBpbmRleCA9PSBOVUxMKSB7Ci0gICAgICAgICBBc3NlcnRQb3MoY3VycmVudFBv cywgbS0+ZXJyb3JDb3VudCA+IDApOwotICAgICAgICAgcmV0dXJuIE5VTEw7Ci1AQCAtMjA2NSw4 ICsyMDU0LDggQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkdldEVsZW1lbnRQ dHJJbnN0KGxsdm06OlZhbHVlICpiYXNlUHRyLCBsbHZtOjoKLSAgICAgICAgIC8vIHVuaWZvcm0s IHNvIGp1c3QgZW1pdCB0aGUgcmVndWxhciBMTFZNIEdFUCBpbnN0cnVjdGlvbgotICAgICAgICAg bGx2bTo6VmFsdWUgKmluZFsxXSA9IHtpbmRleH07Ci0gICAgICAgICBsbHZtOjpBcnJheVJlZjxs bHZtOjpWYWx1ZSAqPiBhcnJheVJlZigmaW5kWzBdLCAmaW5kWzFdKTsKLS0gICAgICAgIGxsdm06 Okluc3RydWN0aW9uICppbnN0ID0KLS0gICAgICAgICAgICBsbHZtOjpHZXRFbGVtZW50UHRySW5z dDo6Q3JlYXRlKFBUWVBFKGJhc2VQdHIpLCBiYXNlUHRyLCBhcnJheVJlZiwgbmFtZSA/IG5hbWUg OiAiZ2VwIiwgYmJsb2NrKTsKLSsgICAgICAgIGxsdm06Okluc3RydWN0aW9uICppbnN0ID0gbGx2 bTo6R2V0RWxlbWVudFB0ckluc3Q6OkNyZWF0ZShQVFlQRShiYXNlUHRyKSwgYmFzZVB0ciwgYXJy YXlSZWYsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgbmFtZS5pc1RyaXZpYWxseUVtcHR5KCkgPyAiZ2VwIiA6IG5hbWUs IGJibG9jayk7Ci0gICAgICAgICBBZGREZWJ1Z1BvcyhpbnN0KTsKLSAgICAgICAgIHJldHVybiBp bnN0OwotICAgICB9IGVsc2UKLUBAIC0yMDc0LDcgKzIwNjMsNyBAQCBsbHZtOjpWYWx1ZSAqRnVu Y3Rpb25FbWl0Q29udGV4dDo6R2V0RWxlbWVudFB0ckluc3QobGx2bTo6VmFsdWUgKmJhc2VQdHIs IGxsdm06OgotIH0KLSAKLSBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6R2V0RWxl bWVudFB0ckluc3QobGx2bTo6VmFsdWUgKmJhc2VQdHIsIGxsdm06OlZhbHVlICppbmRleDAsIGxs dm06OlZhbHVlICppbmRleDEsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGNvbnN0IFR5cGUgKnB0clJlZlR5cGUsIGNvbnN0IGNoYXIgKm5hbWUp IHsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y29uc3QgVHlwZSAqcHRyUmVmVHlwZSwgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUpIHsKLSAgICAg aWYgKGJhc2VQdHIgPT0gTlVMTCB8fCBpbmRleDAgPT0gTlVMTCB8fCBpbmRleDEgPT0gTlVMTCkg ewotICAgICAgICAgQXNzZXJ0UG9zKGN1cnJlbnRQb3MsIG0tPmVycm9yQ291bnQgPiAwKTsKLSAg ICAgICAgIHJldHVybiBOVUxMOwotQEAgLTIxMTQsOCArMjEwMyw4IEBAIGxsdm06OlZhbHVlICpG dW5jdGlvbkVtaXRDb250ZXh0OjpHZXRFbGVtZW50UHRySW5zdChsbHZtOjpWYWx1ZSAqYmFzZVB0 ciwgbGx2bTo6Ci0gICAgICAgICAvLyB1bmlmb3JtLCBzbyBqdXN0IGVtaXQgdGhlIHJlZ3VsYXIg TExWTSBHRVAgaW5zdHJ1Y3Rpb24KLSAgICAgICAgIGxsdm06OlZhbHVlICppbmRpY2VzWzJdID0g e2luZGV4MCwgaW5kZXgxfTsKLSAgICAgICAgIGxsdm06OkFycmF5UmVmPGxsdm06OlZhbHVlICo+ IGFycmF5UmVmKCZpbmRpY2VzWzBdLCAmaW5kaWNlc1syXSk7Ci0tICAgICAgICBsbHZtOjpJbnN0 cnVjdGlvbiAqaW5zdCA9Ci0tICAgICAgICAgICAgbGx2bTo6R2V0RWxlbWVudFB0ckluc3Q6OkNy ZWF0ZShQVFlQRShiYXNlUHRyKSwgYmFzZVB0ciwgYXJyYXlSZWYsIG5hbWUgPyBuYW1lIDogImdl cCIsIGJibG9jayk7Ci0rICAgICAgICBsbHZtOjpJbnN0cnVjdGlvbiAqaW5zdCA9IGxsdm06Okdl dEVsZW1lbnRQdHJJbnN0OjpDcmVhdGUoUFRZUEUoYmFzZVB0ciksIGJhc2VQdHIsIGFycmF5UmVm LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIG5hbWUuaXNUcml2aWFsbHlFbXB0eSgpID8gImdlcCIgOiBuYW1lLCBiYmxv Y2spOwotICAgICAgICAgQWRkRGVidWdQb3MoaW5zdCk7Ci0gICAgICAgICByZXR1cm4gaW5zdDsK LSAgICAgfSBlbHNlIHsKLUBAIC0yMTM4LDcgKzIxMjcsNyBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rp b25FbWl0Q29udGV4dDo6R2V0RWxlbWVudFB0ckluc3QobGx2bTo6VmFsdWUgKmJhc2VQdHIsIGxs dm06OgotIH0KLSAKLSBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6QWRkRWxlbWVu dE9mZnNldChsbHZtOjpWYWx1ZSAqZnVsbEJhc2VQdHIsIGludCBlbGVtZW50TnVtLCBjb25zdCBU eXBlICpwdHJSZWZUeXBlLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IFBvaW50ZXJUeXBlICoqcmVzdWx0 UHRyVHlwZSkgewotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lLCBjb25zdCBQb2ludGVyVHlwZSAqKnJlc3Vs dFB0clR5cGUpIHsKLSAgICAgaWYgKHJlc3VsdFB0clR5cGUgIT0gTlVMTCkKLSAgICAgICAgIEFz c2VydFBvcyhjdXJyZW50UG9zLCBwdHJSZWZUeXBlICE9IE5VTEwpOwotIAotQEAgLTIxOTUsOCAr MjE4NCw4IEBAIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpBZGRFbGVtZW50T2Zm c2V0KGxsdm06OlZhbHVlICpmdWxsQmFzZVB0ciwgaW50Ci0gICAgICAgICAvLyBJZiB0aGUgcG9p bnRlciBpcyB1bmlmb3JtLCB3ZSBjYW4gdXNlIHRoZSByZWd1bGFyIExMVk0gR0VQLgotICAgICAg ICAgbGx2bTo6VmFsdWUgKm9mZnNldHNbMl0gPSB7TExWTUludDMyKDApLCBMTFZNSW50MzIoZWxl bWVudE51bSl9OwotICAgICAgICAgbGx2bTo6QXJyYXlSZWY8bGx2bTo6VmFsdWUgKj4gYXJyYXlS ZWYoJm9mZnNldHNbMF0sICZvZmZzZXRzWzJdKTsKLS0gICAgICAgIHJlc3VsdFB0ciA9Ci0tICAg ICAgICAgICAgbGx2bTo6R2V0RWxlbWVudFB0ckluc3Q6OkNyZWF0ZShQVFlQRShiYXNlUHRyKSwg YmFzZVB0ciwgYXJyYXlSZWYsIG5hbWUgPyBuYW1lIDogInN0cnVjdF9vZmZzZXQiLCBiYmxvY2sp OwotKyAgICAgICAgcmVzdWx0UHRyID0gbGx2bTo6R2V0RWxlbWVudFB0ckluc3Q6OkNyZWF0ZShQ VFlQRShiYXNlUHRyKSwgYmFzZVB0ciwgYXJyYXlSZWYsCi0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUuaXNUcml2aWFsbHlFbXB0eSgpID8g InN0cnVjdF9vZmZzZXQiIDogbmFtZSwgYmJsb2NrKTsKLSAgICAgfSBlbHNlIHsKLSAgICAgICAg IC8vIE90aGVyd2lzZSBkbyB0aGUgbWF0aCB0byBmaW5kIHRoZSBvZmZzZXQgYW5kIGFkZCBpdCB0 byB0aGUgZ2l2ZW4KLSAgICAgICAgIC8vIHZhcnlpbmcgcG9pbnRlcnMKLUBAIC0yMjM3LDcgKzIy MjYsNyBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6QWRkRWxlbWVudE9mZnNl dChsbHZtOjpWYWx1ZSAqZnVsbEJhc2VQdHIsIGludAotICAgICAgICAgcmV0dXJuIHJlc3VsdFB0 cjsKLSB9Ci0gCi0tbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OlN3aXRjaEJvb2xT aXplKGxsdm06OlZhbHVlICp2YWx1ZSwgbGx2bTo6VHlwZSAqdG9UeXBlLCBjb25zdCBjaGFyICpu YW1lKSB7Ci0rbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OlN3aXRjaEJvb2xTaXpl KGxsdm06OlZhbHVlICp2YWx1ZSwgbGx2bTo6VHlwZSAqdG9UeXBlLCBjb25zdCBsbHZtOjpUd2lu ZSAmbmFtZSkgewotICAgICBpZiAoKHZhbHVlID09IE5VTEwpIHx8ICh0b1R5cGUgPT0gTlVMTCkp IHsKLSAgICAgICAgIEFzc2VydFBvcyhjdXJyZW50UG9zLCBtLT5lcnJvckNvdW50ID4gMCk7Ci0g ICAgICAgICByZXR1cm4gTlVMTDsKLUBAIC0yMjQ4LDIwICsyMjM3LDE4IEBAIGxsdm06OlZhbHVl ICpGdW5jdGlvbkVtaXRDb250ZXh0OjpTd2l0Y2hCb29sU2l6ZShsbHZtOjpWYWx1ZSAqdmFsdWUs IGxsdm06OlR5cGUKLSAgICAgbGx2bTo6VmFsdWUgKm5ld0Jvb2wgPSB2YWx1ZTsKLSAgICAgaWYg KGctPnRhcmdldC0+Z2V0RGF0YUxheW91dCgpLT5nZXRUeXBlU2l6ZUluQml0cyhmcm9tVHlwZSkg PgotICAgICAgICAgZy0+dGFyZ2V0LT5nZXREYXRhTGF5b3V0KCktPmdldFR5cGVTaXplSW5CaXRz KHRvVHlwZSkpIHsKLS0gICAgICAgIGlmIChuYW1lID09IE5VTEwpCi0tICAgICAgICAgICAgbmFt ZSA9IExMVk1HZXROYW1lKHZhbHVlLCAiX3N3aXRjaEJvb2wiKTsKLS0gICAgICAgIG5ld0Jvb2wg PSBUcnVuY0luc3QodmFsdWUsIHRvVHlwZSwgbmFtZSk7Ci0rICAgICAgICBuZXdCb29sID0KLSsg ICAgICAgICAgICBUcnVuY0luc3QodmFsdWUsIHRvVHlwZSwgbmFtZS5pc1RyaXZpYWxseUVtcHR5 KCkgPyAobGx2bTo6VHdpbmUodmFsdWUtPmdldE5hbWUoKSkgKyAiX3N3aXRjaEJvb2wiKSA6IG5h bWUpOwotICAgICB9IGVsc2UgaWYgKGctPnRhcmdldC0+Z2V0RGF0YUxheW91dCgpLT5nZXRUeXBl U2l6ZUluQml0cyhmcm9tVHlwZSkgPAotICAgICAgICAgICAgICAgIGctPnRhcmdldC0+Z2V0RGF0 YUxheW91dCgpLT5nZXRUeXBlU2l6ZUluQml0cyh0b1R5cGUpKSB7Ci0tICAgICAgICBpZiAobmFt ZSA9PSBOVUxMKQotLSAgICAgICAgICAgIG5hbWUgPSBMTFZNR2V0TmFtZSh2YWx1ZSwgIl9zd2l0 Y2hCb29sIik7Ci0tICAgICAgICBuZXdCb29sID0gU0V4dEluc3QodmFsdWUsIHRvVHlwZSwgbmFt ZSk7Ci0rICAgICAgICBuZXdCb29sID0KLSsgICAgICAgICAgICBTRXh0SW5zdCh2YWx1ZSwgdG9U eXBlLCBuYW1lLmlzVHJpdmlhbGx5RW1wdHkoKSA/IChsbHZtOjpUd2luZSh2YWx1ZS0+Z2V0TmFt ZSgpKSArICJfc3dpdGNoQm9vbCIpIDogbmFtZSk7Ci0gICAgIH0KLSAKLSAgICAgcmV0dXJuIG5l d0Jvb2w7Ci0gfQotIAotLWxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpMb2FkSW5z dChsbHZtOjpWYWx1ZSAqcHRyLCBjb25zdCBUeXBlICp0eXBlLCBjb25zdCBjaGFyICpuYW1lKSB7 Ci0rbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkxvYWRJbnN0KGxsdm06OlZhbHVl ICpwdHIsIGNvbnN0IFR5cGUgKnR5cGUsIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lKSB7Ci0gICAg IGlmIChwdHIgPT0gTlVMTCkgewotICAgICAgICAgQXNzZXJ0UG9zKGN1cnJlbnRQb3MsIG0tPmVy cm9yQ291bnQgPiAwKTsKLSAgICAgICAgIHJldHVybiBOVUxMOwotQEAgLTIyNzAsMTMgKzIyNTcs MTMgQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkxvYWRJbnN0KGxsdm06OlZh bHVlICpwdHIsIGNvbnN0IFR5cGUgKnR5cGUsIGMKLSAgICAgbGx2bTo6UG9pbnRlclR5cGUgKnB0 ID0gbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6UG9pbnRlclR5cGU+KHB0ci0+Z2V0VHlwZSgpKTsKLSAg ICAgQXNzZXJ0UG9zKGN1cnJlbnRQb3MsIHB0ICE9IE5VTEwpOwotIAotLSAgICBpZiAobmFtZSA9 PSBOVUxMKQotLSAgICAgICAgbmFtZSA9IExMVk1HZXROYW1lKHB0ciwgIl9sb2FkIik7Ci0tCi0g I2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMV8wCi0tICAgIGxsdm06OkxvYWRJ bnN0ICppbnN0ID0gbmV3IGxsdm06OkxvYWRJbnN0KHB0LT5nZXRQb2ludGVyRWxlbWVudFR5cGUo KSwgcHRyLCBuYW1lLCBiYmxvY2spOwotKyAgICBsbHZtOjpMb2FkSW5zdCAqaW5zdCA9Ci0rICAg ICAgICBuZXcgbGx2bTo6TG9hZEluc3QocHQtPmdldFBvaW50ZXJFbGVtZW50VHlwZSgpLCBwdHIs Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZS5pc1RyaXZpYWxseUVtcHR5KCkgPyAo bGx2bTo6VHdpbmUocHRyLT5nZXROYW1lKCkpICsgIl9sb2FkIikgOiBuYW1lLCBiYmxvY2spOwot ICNlbHNlCi0tICAgIGxsdm06OkxvYWRJbnN0ICppbnN0ID0gbmV3IGxsdm06OkxvYWRJbnN0KHB0 ciwgbmFtZSwgYmJsb2NrKTsKLSsgICAgbGx2bTo6TG9hZEluc3QgKmluc3QgPQotKyAgICAgICAg bmV3IGxsdm06OkxvYWRJbnN0KHB0ciwgbmFtZS5pc1RyaXZpYWxseUVtcHR5KCkgPyAobGx2bTo6 VHdpbmUocHRyLT5nZXROYW1lKCkpICsgIl9sb2FkIikgOiBuYW1lLCBiYmxvY2spOwotICNlbmRp ZgotIAotICAgICBpZiAoZy0+b3B0LmZvcmNlQWxpZ25lZE1lbW9yeSAmJiBsbHZtOjpkeW5fY2Fz dDxsbHZtOjpWZWN0b3JUeXBlPihwdC0+Z2V0RWxlbWVudFR5cGUoKSkpIHsKLUBAIC0yMzA3LDgg KzIyOTQsOCBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6TG9hZEluc3QobGx2 bTo6VmFsdWUgKnB0ciwgY29uc3QgVHlwZSAqdHlwZSwgYwotIHN0YXRpYyBsbHZtOjpWYWx1ZSAq bEZpbmFsU2xpY2VPZmZzZXQoRnVuY3Rpb25FbWl0Q29udGV4dCAqY3R4LCBsbHZtOjpWYWx1ZSAq cHRyLCBjb25zdCBQb2ludGVyVHlwZSAqKnB0clR5cGUpIHsKLSAgICAgQXNzZXJ0KENhc3RUeXBl PFBvaW50ZXJUeXBlPigqcHRyVHlwZSkgIT0gTlVMTCk7Ci0gCi0tICAgIGxsdm06OlZhbHVlICpz bGljZVB0ciA9IGN0eC0+RXh0cmFjdEluc3QocHRyLCAwLCBMTFZNR2V0TmFtZShwdHIsICJfcHRy IikpOwotLSAgICBsbHZtOjpWYWx1ZSAqc2xpY2VPZmZzZXQgPSBjdHgtPkV4dHJhY3RJbnN0KHB0 ciwgMSwgTExWTUdldE5hbWUocHRyLCAiX29mZnNldCIpKTsKLSsgICAgbGx2bTo6VmFsdWUgKnNs aWNlUHRyID0gY3R4LT5FeHRyYWN0SW5zdChwdHIsIDAsIGxsdm06OlR3aW5lKHB0ci0+Z2V0TmFt ZSgpKSArICJfcHRyIik7Ci0rICAgIGxsdm06OlZhbHVlICpzbGljZU9mZnNldCA9IGN0eC0+RXh0 cmFjdEluc3QocHRyLCAxLCBsbHZtOjpUd2luZShwdHItPmdldE5hbWUoKSkgKyAiX29mZnNldCIp OwotIAotICAgICAvLyBzbGljZVB0ciBzaG91bGQgYmUgYSBwb2ludGVyIHRvIGFuIHNvYS13aWR0 aCB3aWRlIGFycmF5IG9mIHRoZQotICAgICAvLyBmaW5hbCBhdG9taWMvZW51bS9wb2ludGVyIHR5 cGUKLUBAIC0yMzI3LDE0ICsyMzE0LDE0IEBAIHN0YXRpYyBsbHZtOjpWYWx1ZSAqbEZpbmFsU2xp Y2VPZmZzZXQoRnVuY3Rpb25FbWl0Q29udGV4dCAqY3R4LCBsbHZtOjpWYWx1ZSAqcHRyCi0gICAg ICAgICBzbGljZVB0ciA9IGN0eC0+Qml0Q2FzdEluc3Qoc2xpY2VQdHIsICgqcHRyVHlwZSktPkxM Vk1UeXBlKGctPmN0eCkpOwotIAotICAgICAvLyBBbmQgZmluYWxseSBpbmRleCBiYXNlZCBvbiB0 aGUgc2xpY2Ugb2Zmc2V0Ci0tICAgIHJldHVybiBjdHgtPkdldEVsZW1lbnRQdHJJbnN0KHNsaWNl UHRyLCBzbGljZU9mZnNldCwgKnB0clR5cGUsIExMVk1HZXROYW1lKHNsaWNlUHRyLCAiX2ZpbmFs X2dlcCIpKTsKLSsgICAgcmV0dXJuIGN0eC0+R2V0RWxlbWVudFB0ckluc3Qoc2xpY2VQdHIsIHNs aWNlT2Zmc2V0LCAqcHRyVHlwZSwgbGx2bTo6VHdpbmUoc2xpY2VQdHItPmdldE5hbWUoKSkgKyAi X2ZpbmFsX2dlcCIpOwotIH0KLSAKLSAvKiogVXRpbGl0eSByb3V0aW5lIHRoYXQgbG9hZHMgZnJv bSBhIHVuaWZvcm0gcG9pbnRlciB0byBzb2E8PiBkYXRhLAotICAgICByZXR1cm5pbmcgYSByZWd1 bGFyIHVuaWZvcm0gKG5vbi1TT0EgcmVzdWx0KS4KLSAgKi8KLSBsbHZtOjpWYWx1ZSAqRnVuY3Rp b25FbWl0Q29udGV4dDo6bG9hZFVuaWZvcm1Gcm9tU09BKGxsdm06OlZhbHVlICpwdHIsIGxsdm06 OlZhbHVlICptYXNrLCBjb25zdCBQb2ludGVyVHlwZSAqcHRyVHlwZSwKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKm5hbWUp IHsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNvbnN0IGxsdm06OlR3aW5lICZuYW1lKSB7Ci0gICAgIGNvbnN0IFR5cGUgKnVuaWZUeXBlID0g cHRyVHlwZS0+R2V0QmFzZVR5cGUoKS0+R2V0QXNVbmlmb3JtVHlwZSgpOwotIAotICAgICBjb25z dCBDb2xsZWN0aW9uVHlwZSAqY3QgPSBDYXN0VHlwZTxDb2xsZWN0aW9uVHlwZT4ocHRyVHlwZS0+ R2V0QmFzZVR5cGUoKSk7Ci1AQCAtMjM2Myw3ICsyMzUwLDcgQEAgbGx2bTo6VmFsdWUgKkZ1bmN0 aW9uRW1pdENvbnRleHQ6OmxvYWRVbmlmb3JtRnJvbVNPQShsbHZtOjpWYWx1ZSAqcHRyLCBsbHZt OjpWYWwKLSB9Ci0gCi0gbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkxvYWRJbnN0 KGxsdm06OlZhbHVlICpwdHIsIGxsdm06OlZhbHVlICptYXNrLCBjb25zdCBUeXBlICpwdHJSZWZU eXBlLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBj aGFyICpuYW1lLCBib29sIG9uZV9lbGVtKSB7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lLCBib29sIG9uZV9lbGVtKSB7 Ci0gICAgIGlmIChwdHIgPT0gTlVMTCkgewotICAgICAgICAgQXNzZXJ0UG9zKGN1cnJlbnRQb3Ms IG0tPmVycm9yQ291bnQgPiAwKTsKLSAgICAgICAgIHJldHVybiBOVUxMOwotQEAgLTIzNzEsOSAr MjM1OCw2IEBAIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpMb2FkSW5zdChsbHZt OjpWYWx1ZSAqcHRyLCBsbHZtOjpWYWx1ZSAqbWFzaywKLSAKLSAgICAgQXNzZXJ0UG9zKGN1cnJl bnRQb3MsIHB0clJlZlR5cGUgIT0gTlVMTCAmJiBtYXNrICE9IE5VTEwpOwotIAotLSAgICBpZiAo bmFtZSA9PSBOVUxMKQotLSAgICAgICAgbmFtZSA9IExMVk1HZXROYW1lKHB0ciwgIl9sb2FkIik7 Ci0tCi0gICAgIGNvbnN0IFBvaW50ZXJUeXBlICpwdHJUeXBlOwotICAgICBjb25zdCBUeXBlICpl bFR5cGU7Ci0gICAgIGlmIChDYXN0VHlwZTxSZWZlcmVuY2VUeXBlPihwdHJSZWZUeXBlKSAhPSBO VUxMKSB7Ci1AQCAtMjM5Myw3ICsyMzc3LDggQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENv bnRleHQ6OkxvYWRJbnN0KGxsdm06OlZhbHVlICpwdHIsIGxsdm06OlZhbHVlICptYXNrLAotIAot ICAgICBpZiAocHRyVHlwZS0+SXNVbmlmb3JtVHlwZSgpKSB7Ci0gICAgICAgICBpZiAocHRyVHlw ZS0+SXNTbGljZSgpKSB7Ci0tICAgICAgICAgICAgcmV0dXJuIGxvYWRVbmlmb3JtRnJvbVNPQShw dHIsIG1hc2ssIHB0clR5cGUsIG5hbWUpOwotKyAgICAgICAgICAgIHJldHVybiBsb2FkVW5pZm9y bUZyb21TT0EocHRyLCBtYXNrLCBwdHJUeXBlLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgbmFtZS5pc1RyaXZpYWxseUVtcHR5KCkgPyAobGx2bTo6VHdpbmUocHRyLT5n ZXROYW1lKCkpICsgIl9sb2FkIikgOiBuYW1lKTsKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAg ICAgICAgLy8gRklYTUU6IHNhbWUgaXNzdWUgYXMgYWJvdmUgbG9hZCBpbnN0IHJlZ2FyZGluZyBh bGlnbm1lbnQuLi4KLSAgICAgICAgICAgICAvLwotQEAgLTI0MDUsMTEgKzIzOTAsMTUgQEAgbGx2 bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkxvYWRJbnN0KGxsdm06OlZhbHVlICpwdHIs IGxsdm06OlZhbHVlICptYXNrLAotICAgICAgICAgICAgIGNvbnN0IEF0b21pY1R5cGUgKmF0b21p Y1R5cGUgPSBDYXN0VHlwZTxBdG9taWNUeXBlPihwdHJUeXBlLT5HZXRCYXNlVHlwZSgpKTsKLSAK LSAjaWYgSVNQQ19MTFZNX1ZFUlNJT04gPD0gSVNQQ19MTFZNXzEwXzAKLS0gICAgICAgICAgICBs bHZtOjpMb2FkSW5zdCAqaW5zdCA9IG5ldyBsbHZtOjpMb2FkSW5zdChwdHIsIG5hbWUsIGZhbHNl IC8qIG5vdCB2b2xhdGlsZSAqLywgYmJsb2NrKTsKLSsgICAgICAgICAgICBsbHZtOjpMb2FkSW5z dCAqaW5zdCA9Ci0rICAgICAgICAgICAgICAgIG5ldyBsbHZtOjpMb2FkSW5zdChwdHIsIG5hbWUu aXNUcml2aWFsbHlFbXB0eSgpID8gKGxsdm06OlR3aW5lKHB0ci0+Z2V0TmFtZSgpKSArICJfbG9h ZCIpIDogbmFtZSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlIC8q IG5vdCB2b2xhdGlsZSAqLywgYmJsb2NrKTsKLSAjZWxzZSAvLyBMTFZNIDExLjArCi0gICAgICAg ICAgICAgbGx2bTo6UG9pbnRlclR5cGUgKnB0cl90eXBlID0gbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6 UG9pbnRlclR5cGU+KHB0ci0+Z2V0VHlwZSgpKTsKLSAgICAgICAgICAgICBsbHZtOjpMb2FkSW5z dCAqaW5zdCA9Ci0tICAgICAgICAgICAgICAgIG5ldyBsbHZtOjpMb2FkSW5zdChwdHJfdHlwZS0+ Z2V0UG9pbnRlckVsZW1lbnRUeXBlKCksIHB0ciwgbmFtZSwgZmFsc2UgLyogbm90IHZvbGF0aWxl ICovLCBiYmxvY2spOwotKyAgICAgICAgICAgICAgICBuZXcgbGx2bTo6TG9hZEluc3QocHRyX3R5 cGUtPmdldFBvaW50ZXJFbGVtZW50VHlwZSgpLCBwdHIsCi0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBuYW1lLmlzVHJpdmlhbGx5RW1wdHkoKSA/IChsbHZtOjpUd2luZShwdHIt PmdldE5hbWUoKSkgKyAiX2xvYWQiKSA6IG5hbWUsCi0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBmYWxzZSAvKiBub3Qgdm9sYXRpbGUgKi8sIGJibG9jayk7Ci0gI2VuZGlmCi0g Ci0gICAgICAgICAgICAgaWYgKGF0b21pY1R5cGUgIT0gTlVMTCAmJiBhdG9taWNUeXBlLT5Jc1Zh cnlpbmdUeXBlKCkpIHsKLUBAIC0yNDMzLDcgKzI0MjIsOCBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rp b25FbWl0Q29udGV4dDo6TG9hZEluc3QobGx2bTo6VmFsdWUgKnB0ciwgbGx2bTo6VmFsdWUgKm1h c2ssCi0gICAgIH0gZWxzZSB7Ci0gICAgICAgICAvLyBPdGhlcndpc2Ugd2Ugc2hvdWxkIGhhdmUg YSB2YXJ5aW5nIHB0ciBhbmQgaXQncyB0aW1lIGZvciBhCi0gICAgICAgICAvLyBnYXRoZXIuCi0t ICAgICAgICBsbHZtOjpWYWx1ZSAqZ2F0aGVyX3Jlc3VsdCA9IGdhdGhlcihwdHIsIHB0clR5cGUs IEdldEZ1bGxNYXNrKCksIG5hbWUpOwotKyAgICAgICAgbGx2bTo6VmFsdWUgKmdhdGhlcl9yZXN1 bHQgPSBnYXRoZXIocHRyLCBwdHJUeXBlLCBHZXRGdWxsTWFzaygpLAotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZS5pc1RyaXZpYWxseUVtcHR5KCkgPyAo bGx2bTo6VHdpbmUocHRyLT5nZXROYW1lKCkpICsgIl9sb2FkIikgOiBuYW1lKTsKLSAgICAgICAg IGlmICghb25lX2VsZW0pCi0gICAgICAgICAgICAgcmV0dXJuIGdhdGhlcl9yZXN1bHQ7Ci0gCi1A QCAtMjQ1MywxOSArMjQ0MywxOSBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6 TG9hZEluc3QobGx2bTo6VmFsdWUgKnB0ciwgbGx2bTo6VmFsdWUgKm1hc2ssCi0gICAgICAgICAv LyBXZSBjYW4gYWN0dWFsbHkgY2FsbCBlaXRoZXIgb25lLCBzaW5jZSBib3RoIGFyZSBpMzJzIGFz IGZhciBhcwotICAgICAgICAgLy8gTExWTSdzIHR5cGUgc3lzdGVtIGlzIGNvbmNlcm5lZC4uLgot ICAgICAgICAgbGx2bTo6RnVuY3Rpb24gKmZtbSA9IG1tWzBdLT5mdW5jdGlvbjsKLS0gICAgICAg IGxsdm06OlZhbHVlICppbnRfbWFzayA9IENhbGxJbnN0KGZtbSwgTlVMTCwgbWFzaywgTExWTUdl dE5hbWUobWFzaywgIl9tb3Ztc2siKSk7Ci0rICAgICAgICBsbHZtOjpWYWx1ZSAqaW50X21hc2sg PSBDYWxsSW5zdChmbW0sIE5VTEwsIG1hc2ssIGxsdm06OlR3aW5lKG1hc2stPmdldE5hbWUoKSkg KyAiX21vdm1zayIpOwotICAgICAgICAgc3RkOjp2ZWN0b3I8U3ltYm9sICo+IGx6OwotICAgICAg ICAgbS0+c3ltYm9sVGFibGUtPkxvb2t1cEZ1bmN0aW9uKCJfX2NvdW50X3RyYWlsaW5nX3plcm9z X2k2NCIsICZseik7Ci0gICAgICAgICBsbHZtOjpGdW5jdGlvbiAqZmx6ID0gbHpbMF0tPmZ1bmN0 aW9uOwotLSAgICAgICAgbGx2bTo6VmFsdWUgKmVsZW1faWR4ID0gQ2FsbEluc3QoZmx6LCBOVUxM LCBpbnRfbWFzaywgTExWTUdldE5hbWUobWFzaywgIl9jbHoiKSk7Ci0tICAgICAgICBsbHZtOjpW YWx1ZSAqZWxlbSA9IGxsdm06OkV4dHJhY3RFbGVtZW50SW5zdDo6Q3JlYXRlKGdhdGhlcl9yZXN1 bHQsIGVsZW1faWR4LAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBMTFZNR2V0TmFtZShnYXRoZXJfcmVzdWx0LCAiX3VtYXNrZWRf ZWxlbSIpLCBiYmxvY2spOwotKyAgICAgICAgbGx2bTo6VmFsdWUgKmVsZW1faWR4ID0gQ2FsbElu c3QoZmx6LCBOVUxMLCBpbnRfbWFzaywgbGx2bTo6VHdpbmUobWFzay0+Z2V0TmFtZSgpKSArICJf Y2x6Iik7Ci0rICAgICAgICBsbHZtOjpWYWx1ZSAqZWxlbSA9IGxsdm06OkV4dHJhY3RFbGVtZW50 SW5zdDo6Q3JlYXRlKAotKyAgICAgICAgICAgIGdhdGhlcl9yZXN1bHQsIGVsZW1faWR4LCBsbHZt OjpUd2luZShnYXRoZXJfcmVzdWx0LT5nZXROYW1lKCkpICsgIl91bWFza2VkX2VsZW0iLCBiYmxv Y2spOwotICAgICAgICAgcmV0dXJuIGVsZW07Ci0gICAgIH0KLSB9Ci0gCi0gbGx2bTo6VmFsdWUg KkZ1bmN0aW9uRW1pdENvbnRleHQ6OmdhdGhlcihsbHZtOjpWYWx1ZSAqcHRyLCBjb25zdCBQb2lu dGVyVHlwZSAqcHRyVHlwZSwgbGx2bTo6VmFsdWUgKm1hc2ssCi0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpuYW1lKSB7Ci0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSkgewot ICAgICAvLyBXZSBzaG91bGQgaGF2ZSBhIHZhcnlpbmcgcG9pbnRlciBpZiB3ZSBnZXQgaGVyZS4u LgotICAgICBBc3NlcnRQb3MoY3VycmVudFBvcywgcHRyVHlwZS0+SXNWYXJ5aW5nVHlwZSgpKTsK LSAKLUBAIC0yNjAyLDcgKzI1OTIsOCBAQCB2b2lkIEZ1bmN0aW9uRW1pdENvbnRleHQ6OmFkZEdT TWV0YWRhdGEobGx2bTo6VmFsdWUgKnYsIFNvdXJjZVBvcyBwb3MpIHsKLSAgICAgaW5zdC0+c2V0 TWV0YWRhdGEoImxhc3RfY29sdW1uIiwgbWQpOwotIH0KLSAKLS1sbHZtOjpWYWx1ZSAqRnVuY3Rp b25FbWl0Q29udGV4dDo6QWxsb2NhSW5zdChsbHZtOjpUeXBlICpsbHZtVHlwZSwgY29uc3QgY2hh ciAqbmFtZSwgaW50IGFsaWduLCBib29sIGF0RW50cnlCbG9jaykgewotK2xsdm06OlZhbHVlICpG dW5jdGlvbkVtaXRDb250ZXh0OjpBbGxvY2FJbnN0KGxsdm06OlR5cGUgKmxsdm1UeXBlLCBjb25z dCBsbHZtOjpUd2luZSAmbmFtZSwgaW50IGFsaWduLAotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGJvb2wgYXRFbnRyeUJsb2NrKSB7Ci0gICAgIGlmIChsbHZt VHlwZSA9PSBOVUxMKSB7Ci0gICAgICAgICBBc3NlcnRQb3MoY3VycmVudFBvcywgbS0+ZXJyb3JD b3VudCA+IDApOwotICAgICAgICAgcmV0dXJuIE5VTEw7Ci1AQCAtMjYxNSwxMiArMjYwNiwxMiBA QCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6QWxsb2NhSW5zdChsbHZtOjpUeXBl ICpsbHZtVHlwZSwgY29uc3QgY2hhciAqbgotICAgICAgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKnJl dEluc3QgPSBhbGxvY2FCbG9jay0+Z2V0VGVybWluYXRvcigpOwotICAgICAgICAgQXNzZXJ0UG9z KGN1cnJlbnRQb3MsIHJldEluc3QpOwotICAgICAgICAgdW5zaWduZWQgQVMgPSBsbHZtRnVuY3Rp b24tPmdldFBhcmVudCgpLT5nZXREYXRhTGF5b3V0KCkuZ2V0QWxsb2NhQWRkclNwYWNlKCk7Ci0t ICAgICAgICBpbnN0ID0gbmV3IGxsdm06OkFsbG9jYUluc3QobGx2bVR5cGUsIEFTLCBuYW1lID8g bmFtZSA6ICIiLCByZXRJbnN0KTsKLSsgICAgICAgIGluc3QgPSBuZXcgbGx2bTo6QWxsb2NhSW5z dChsbHZtVHlwZSwgQVMsIG5hbWUsIHJldEluc3QpOwotICAgICB9IGVsc2UgewotICAgICAgICAg Ly8gVW5sZXNzIHRoZSBjYWxsZXIgb3ZlcnJvZGUgdGhlIGRlZmF1bHQgYW5kIHdhbnRzIGl0IGlu IHRoZQotICAgICAgICAgLy8gY3VycmVudCBiYXNpYyBibG9jawotICAgICAgICAgdW5zaWduZWQg QVMgPSBsbHZtRnVuY3Rpb24tPmdldFBhcmVudCgpLT5nZXREYXRhTGF5b3V0KCkuZ2V0QWxsb2Nh QWRkclNwYWNlKCk7Ci0tICAgICAgICBpbnN0ID0gbmV3IGxsdm06OkFsbG9jYUluc3QobGx2bVR5 cGUsIEFTLCBuYW1lID8gbmFtZSA6ICIiLCBiYmxvY2spOwotKyAgICAgICAgaW5zdCA9IG5ldyBs bHZtOjpBbGxvY2FJbnN0KGxsdm1UeXBlLCBBUywgbmFtZSwgYmJsb2NrKTsKLSAgICAgfQotIAot ICAgICAvLyBJZiBubyBhbGlnbm1lbnQgd2FzIHNwZWNpZmllZCBidXQgd2UgaGF2ZSBhbiBhcnJh eSBvZiBhIHVuaWZvcm0KLUBAIC0yNjM5LDcgKzI2MzAsOCBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rp b25FbWl0Q29udGV4dDo6QWxsb2NhSW5zdChsbHZtOjpUeXBlICpsbHZtVHlwZSwgY29uc3QgY2hh ciAqbgotICAgICByZXR1cm4gaW5zdDsKLSB9Ci0gCi0tbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1p dENvbnRleHQ6OkFsbG9jYUluc3QoY29uc3QgVHlwZSAqcHRyVHlwZSwgY29uc3QgY2hhciAqbmFt ZSwgaW50IGFsaWduLCBib29sIGF0RW50cnlCbG9jaykgewotK2xsdm06OlZhbHVlICpGdW5jdGlv bkVtaXRDb250ZXh0OjpBbGxvY2FJbnN0KGNvbnN0IFR5cGUgKnB0clR5cGUsIGNvbnN0IGxsdm06 OlR3aW5lICZuYW1lLCBpbnQgYWxpZ24sCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgYm9vbCBhdEVudHJ5QmxvY2spIHsKLSAgICAgaWYgKHB0clR5cGUgPT0g TlVMTCkgewotICAgICAgICAgQXNzZXJ0UG9zKGN1cnJlbnRQb3MsIG0tPmVycm9yQ291bnQgPiAw KTsKLSAgICAgICAgIHJldHVybiBOVUxMOwotQEAgLTMwNzUsNjYgKzMwNjcsNTkgQEAgbGx2bTo6 SW5zdHJ1Y3Rpb24gKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkJyYW5jaEluc3QobGx2bTo6QmFzaWNC bG9jayAqdHJ1ZUJsb2NrLAotICAgICByZXR1cm4gYjsKLSB9Ci0gCi0tbGx2bTo6VmFsdWUgKkZ1 bmN0aW9uRW1pdENvbnRleHQ6OkV4dHJhY3RJbnN0KGxsdm06OlZhbHVlICp2LCBpbnQgZWx0LCBj b25zdCBjaGFyICpuYW1lKSB7Ci0rbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkV4 dHJhY3RJbnN0KGxsdm06OlZhbHVlICp2LCBpbnQgZWx0LCBjb25zdCBsbHZtOjpUd2luZSAmbmFt ZSkgewotICAgICBpZiAodiA9PSBOVUxMKSB7Ci0gICAgICAgICBBc3NlcnRQb3MoY3VycmVudFBv cywgbS0+ZXJyb3JDb3VudCA+IDApOwotICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgIH0KLSAK LS0gICAgaWYgKG5hbWUgPT0gTlVMTCkgewotLSAgICAgICAgY2hhciBidWZbMzJdOwotLSAgICAg ICAgc25wcmludGYoYnVmLCBzaXplb2YoYnVmKSwgIl9leHRyYWN0XyVkIiwgZWx0KTsKLS0gICAg ICAgIG5hbWUgPSBMTFZNR2V0TmFtZSh2LCBidWYpOwotLSAgICB9Ci0gICAgIGxsdm06Okluc3Ry dWN0aW9uICplaSA9IE5VTEw7Ci0gICAgIGlmIChsbHZtOjppc2E8bGx2bTo6VmVjdG9yVHlwZT4o di0+Z2V0VHlwZSgpKSkKLS0gICAgICAgIGVpID0gbGx2bTo6RXh0cmFjdEVsZW1lbnRJbnN0OjpD cmVhdGUodiwgTExWTUludDMyKGVsdCksIG5hbWUsIGJibG9jayk7Ci0rICAgICAgICBlaSA9IGxs dm06OkV4dHJhY3RFbGVtZW50SW5zdDo6Q3JlYXRlKAotKyAgICAgICAgICAgIHYsIExMVk1JbnQz MihlbHQpLAotKyAgICAgICAgICAgIG5hbWUuaXNUcml2aWFsbHlFbXB0eSgpID8gKChsbHZtOjpU d2luZSh2LT5nZXROYW1lKCkpICsgIl9leHRyYWN0XyIpICsgbGx2bTo6VHdpbmUoZWx0KSkgOiBu YW1lLCBiYmxvY2spOwotICAgICBlbHNlCi0tICAgICAgICBlaSA9IGxsdm06OkV4dHJhY3RWYWx1 ZUluc3Q6OkNyZWF0ZSh2LCBlbHQsIG5hbWUsIGJibG9jayk7Ci0rICAgICAgICBlaSA9IGxsdm06 OkV4dHJhY3RWYWx1ZUluc3Q6OkNyZWF0ZSgKLSsgICAgICAgICAgICB2LCBlbHQsIG5hbWUuaXNU cml2aWFsbHlFbXB0eSgpID8gKChsbHZtOjpUd2luZSh2LT5nZXROYW1lKCkpICsgIl9leHRyYWN0 XyIpICsgbGx2bTo6VHdpbmUoZWx0KSkgOiBuYW1lLAotKyAgICAgICAgICAgIGJibG9jayk7Ci0g ICAgIEFkZERlYnVnUG9zKGVpKTsKLSAgICAgcmV0dXJuIGVpOwotIH0KLSAKLS1sbHZtOjpWYWx1 ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6SW5zZXJ0SW5zdChsbHZtOjpWYWx1ZSAqdiwgbGx2bTo6 VmFsdWUgKmVsdFZhbCwgaW50IGVsdCwgY29uc3QgY2hhciAqbmFtZSkgewotK2xsdm06OlZhbHVl ICpGdW5jdGlvbkVtaXRDb250ZXh0OjpJbnNlcnRJbnN0KGxsdm06OlZhbHVlICp2LCBsbHZtOjpW YWx1ZSAqZWx0VmFsLCBpbnQgZWx0LCBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSkgewotICAgICBp ZiAodiA9PSBOVUxMIHx8IGVsdFZhbCA9PSBOVUxMKSB7Ci0gICAgICAgICBBc3NlcnRQb3MoY3Vy cmVudFBvcywgbS0+ZXJyb3JDb3VudCA+IDApOwotICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAg IH0KLSAKLS0gICAgaWYgKG5hbWUgPT0gTlVMTCkgewotLSAgICAgICAgY2hhciBidWZbMzJdOwot LSAgICAgICAgc25wcmludGYoYnVmLCBzaXplb2YoYnVmKSwgIl9pbnNlcnRfJWQiLCBlbHQpOwot LSAgICAgICAgbmFtZSA9IExMVk1HZXROYW1lKHYsIGJ1Zik7Ci0tICAgIH0KLS0KLSAgICAgbGx2 bTo6SW5zdHJ1Y3Rpb24gKmlpID0gTlVMTDsKLSAgICAgaWYgKGxsdm06OmlzYTxsbHZtOjpWZWN0 b3JUeXBlPih2LT5nZXRUeXBlKCkpKQotLSAgICAgICAgaWkgPSBsbHZtOjpJbnNlcnRFbGVtZW50 SW5zdDo6Q3JlYXRlKHYsIGVsdFZhbCwgTExWTUludDMyKGVsdCksIG5hbWUsIGJibG9jayk7Ci0r ICAgICAgICBpaSA9IGxsdm06Okluc2VydEVsZW1lbnRJbnN0OjpDcmVhdGUoCi0rICAgICAgICAg ICAgdiwgZWx0VmFsLCBMTFZNSW50MzIoZWx0KSwKLSsgICAgICAgICAgICBuYW1lLmlzVHJpdmlh bGx5RW1wdHkoKSA/ICgobGx2bTo6VHdpbmUodi0+Z2V0TmFtZSgpKSArICJfaW5zZXJ0XyIpICsg bGx2bTo6VHdpbmUoZWx0KSkgOiBuYW1lLCBiYmxvY2spOwotICAgICBlbHNlCi0tICAgICAgICBp aSA9IGxsdm06Okluc2VydFZhbHVlSW5zdDo6Q3JlYXRlKHYsIGVsdFZhbCwgZWx0LCBuYW1lLCBi YmxvY2spOwotKyAgICAgICAgaWkgPSBsbHZtOjpJbnNlcnRWYWx1ZUluc3Q6OkNyZWF0ZSgKLSsg ICAgICAgICAgICB2LCBlbHRWYWwsIGVsdCwKLSsgICAgICAgICAgICBuYW1lLmlzVHJpdmlhbGx5 RW1wdHkoKSA/ICgobGx2bTo6VHdpbmUodi0+Z2V0TmFtZSgpKSArICJfaW5zZXJ0XyIpICsgbGx2 bTo6VHdpbmUoZWx0KSkgOiBuYW1lLCBiYmxvY2spOwotICAgICBBZGREZWJ1Z1BvcyhpaSk7Ci0g ICAgIHJldHVybiBpaTsKLSB9Ci0gCi0tbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6 OlNodWZmbGVJbnN0KGxsdm06OlZhbHVlICp2MSwgbGx2bTo6VmFsdWUgKnYyLCBsbHZtOjpWYWx1 ZSAqbWFzaywgY29uc3QgY2hhciAqbmFtZSkgewotK2xsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRD b250ZXh0OjpTaHVmZmxlSW5zdChsbHZtOjpWYWx1ZSAqdjEsIGxsdm06OlZhbHVlICp2MiwgbGx2 bTo6VmFsdWUgKm1hc2ssCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lKSB7Ci0gICAgIGlmICh2MSA9PSBOVUxMIHx8 IHYyID09IE5VTEwgfHwgbWFzayA9PSBOVUxMKSB7Ci0gICAgICAgICBBc3NlcnRQb3MoY3VycmVu dFBvcywgbS0+ZXJyb3JDb3VudCA+IDApOwotICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgIH0K LSAKLS0gICAgaWYgKG5hbWUgPT0gTlVMTCkgewotLSAgICAgICAgY2hhciBidWZbMzJdOwotLSAg ICAgICAgc25wcmludGYoYnVmLCBzaXplb2YoYnVmKSwgIl9zaHVmZmxlIik7Ci0tICAgICAgICBu YW1lID0gTExWTUdldE5hbWUodjEsIGJ1Zik7Ci0tICAgIH0KLS0KLS0gICAgbGx2bTo6SW5zdHJ1 Y3Rpb24gKmlpID0gbmV3IGxsdm06OlNodWZmbGVWZWN0b3JJbnN0KHYxLCB2MiwgbWFzaywgbmFt ZSwgYmJsb2NrKTsKLSsgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmlpID0gbmV3IGxsdm06OlNodWZm bGVWZWN0b3JJbnN0KAotKyAgICAgICAgdjEsIHYyLCBtYXNrLCBuYW1lLmlzVHJpdmlhbGx5RW1w dHkoKSA/IChsbHZtOjpUd2luZSh2MS0+Z2V0TmFtZSgpKSArICJfc2h1ZmZsZSIpIDogbmFtZSwg YmJsb2NrKTsKLSAKLSAgICAgQWRkRGVidWdQb3MoaWkpOwotICAgICByZXR1cm4gaWk7Ci0gfQot IAotLWxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpCcm9hZGNhc3RWYWx1ZShsbHZt OjpWYWx1ZSAqdiwgbGx2bTo6VHlwZSAqdmVjVHlwZSwgY29uc3QgY2hhciAqbmFtZSkgewotK2xs dm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpCcm9hZGNhc3RWYWx1ZShsbHZtOjpWYWx1 ZSAqdiwgbGx2bTo6VHlwZSAqdmVjVHlwZSwgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUpIHsKLSAg ICAgaWYgKHYgPT0gTlVMTCB8fCB2ZWNUeXBlID09IE5VTEwpIHsKLSAgICAgICAgIEFzc2VydFBv cyhjdXJyZW50UG9zLCBtLT5lcnJvckNvdW50ID4gMCk7Ci0gICAgICAgICByZXR1cm4gTlVMTDsK LUBAIC0zMTQ4LDEyICszMTMzLDYgQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6 OkJyb2FkY2FzdFZhbHVlKGxsdm06OlZhbHVlICp2LCBsbHZtOjpUeXBlICp2ZWMKLSAgICAgQXNz ZXJ0KHR5ICYmIHR5LT5nZXRWZWN0b3JFbGVtZW50VHlwZSgpID09IHYtPmdldFR5cGUoKSk7Ci0g I2VuZGlmCi0gCi0tICAgIGlmIChuYW1lID09IE5VTEwpIHsKLS0gICAgICAgIGNoYXIgYnVmWzMy XTsKLS0gICAgICAgIHNucHJpbnRmKGJ1Ziwgc2l6ZW9mKGJ1ZiksICJfYnJvYWRjYXN0Iik7Ci0t ICAgICAgICBuYW1lID0gTExWTUdldE5hbWUodiwgYnVmKTsKLS0gICAgfQotLQotICAgICAvLyBH ZW5lcmF0ZSB0aGUgZm9sbG93aW5nIHNlcXVlbmNlOgotICAgICAvLyAgICVuYW1lX2luaXQuaSA9 IGluc2VydGVsZW1lbnQgPDQgeCBpMzI+IHVuZGVmLCBpMzIgJXZhbCwgaTMyIDAKLSAgICAgLy8g ICAlbmFtZS5pID0gc2h1ZmZsZXZlY3RvciA8NCB4IGkzMj4gJW5hbWVfaW5pdC5pLCA8NCB4IGkz Mj4gdW5kZWYsCi1AQCAtMzE2Myw3ICszMTQyLDcgQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1p dENvbnRleHQ6OkJyb2FkY2FzdFZhbHVlKGxsdm06OlZhbHVlICp2LCBsbHZtOjpUeXBlICp2ZWMK LSAgICAgbGx2bTo6VmFsdWUgKnVuZGVmMiA9IGxsdm06OlVuZGVmVmFsdWU6OmdldCh2ZWNUeXBl KTsKLSAKLSAgICAgLy8gSW5zZXJ0RWxlbWVudAotLSAgICBsbHZtOjpUd2luZSB0dyA9IGxsdm06 OlR3aW5lKG5hbWUpICsgbGx2bTo6VHdpbmUoIl9pbml0Iik7Ci0rICAgIGxsdm06OlR3aW5lIHR3 ID0gbmFtZS5pc1RyaXZpYWxseUVtcHR5KCkgPyAobGx2bTo6VHdpbmUodi0+Z2V0TmFtZSgpKSAr ICJfYnJvYWRjYXN0IikgOiBuYW1lICsgbGx2bTo6VHdpbmUoIl9pbml0Iik7Ci0gICAgIGxsdm06 OlZhbHVlICppbnNlcnQgPSBJbnNlcnRJbnN0KHVuZGVmMSwgdiwgMCwgdHcuc3RyKCkuY19zdHIo KSk7Ci0gCi0gICAgIC8vIFNodWZmbGVWZWN0b3IKLUBAIC0zMTc5LDI4ICszMTU4LDI3IEBAIGxs dm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpCcm9hZGNhc3RWYWx1ZShsbHZtOjpWYWx1 ZSAqdiwgbGx2bTo6VHlwZSAqdmVjCi0gICAgICAgICBsbHZtOjpDb25zdGFudFZlY3Rvcjo6Z2V0 U3BsYXQobGx2bTo6RWxlbWVudENvdW50OjpnZXQoc3RhdGljX2Nhc3Q8dW5zaWduZWQgaW50Pih0 eS0+Z2V0TnVtRWxlbWVudHMoKSksIGZhbHNlKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBsbHZtOjpDb25zdGFudDo6Z2V0TnVsbFZhbHVlKGxsdm06OlR5cGU6Omdl dEludDMyVHkoKmctPmN0eCkpKTsKLSAjZW5kaWYKLS0gICAgbGx2bTo6VmFsdWUgKnJldCA9IFNo dWZmbGVJbnN0KGluc2VydCwgdW5kZWYyLCB6ZXJvVmVjLCBuYW1lKTsKLSsgICAgbGx2bTo6VmFs dWUgKnJldCA9IFNodWZmbGVJbnN0KGluc2VydCwgdW5kZWYyLCB6ZXJvVmVjLAotKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZS5pc1RyaXZpYWxseUVtcHR5KCkgPyAobGx2 bTo6VHdpbmUodi0+Z2V0TmFtZSgpKSArICJfYnJvYWRjYXN0IikgOiBuYW1lKTsKLSAKLSAgICAg cmV0dXJuIHJldDsKLSB9Ci0gCi0tbGx2bTo6UEhJTm9kZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6 UGhpTm9kZShsbHZtOjpUeXBlICp0eXBlLCBpbnQgY291bnQsIGNvbnN0IGNoYXIgKm5hbWUpIHsK LS0gICAgbGx2bTo6UEhJTm9kZSAqcG4gPSBsbHZtOjpQSElOb2RlOjpDcmVhdGUodHlwZSwgY291 bnQsIG5hbWUgPyBuYW1lIDogInBoaSIsIGJibG9jayk7Ci0rbGx2bTo6UEhJTm9kZSAqRnVuY3Rp b25FbWl0Q29udGV4dDo6UGhpTm9kZShsbHZtOjpUeXBlICp0eXBlLCBpbnQgY291bnQsIGNvbnN0 IGxsdm06OlR3aW5lICZuYW1lKSB7Ci0rICAgIGxsdm06OlBISU5vZGUgKnBuID0gbGx2bTo6UEhJ Tm9kZTo6Q3JlYXRlKHR5cGUsIGNvdW50LCBuYW1lLmlzVHJpdmlhbGx5RW1wdHkoKSA/ICJwaGki IDogbmFtZSwgYmJsb2NrKTsKLSAgICAgQWRkRGVidWdQb3MocG4pOwotICAgICByZXR1cm4gcG47 Ci0gfQotIAotIGxsdm06Okluc3RydWN0aW9uICpGdW5jdGlvbkVtaXRDb250ZXh0OjpTZWxlY3RJ bnN0KGxsdm06OlZhbHVlICp0ZXN0LCBsbHZtOjpWYWx1ZSAqdmFsMCwgbGx2bTo6VmFsdWUgKnZh bDEsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y29uc3QgY2hhciAqbmFtZSkgewotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lKSB7Ci0gICAgIGlmICh0ZXN0 ID09IE5VTEwgfHwgdmFsMCA9PSBOVUxMIHx8IHZhbDEgPT0gTlVMTCkgewotICAgICAgICAgQXNz ZXJ0UG9zKGN1cnJlbnRQb3MsIG0tPmVycm9yQ291bnQgPiAwKTsKLSAgICAgICAgIHJldHVybiBO VUxMOwotICAgICB9Ci0gCi0tICAgIGlmIChuYW1lID09IE5VTEwpCi0tICAgICAgICBuYW1lID0g TExWTUdldE5hbWUodGVzdCwgIl9zZWxlY3QiKTsKLS0KLS0gICAgbGx2bTo6SW5zdHJ1Y3Rpb24g Kmluc3QgPSBsbHZtOjpTZWxlY3RJbnN0OjpDcmVhdGUodGVzdCwgdmFsMCwgdmFsMSwgbmFtZSwg YmJsb2NrKTsKLSsgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmluc3QgPSBsbHZtOjpTZWxlY3RJbnN0 OjpDcmVhdGUoCi0rICAgICAgICB0ZXN0LCB2YWwwLCB2YWwxLCBuYW1lLmlzVHJpdmlhbGx5RW1w dHkoKSA/IChsbHZtOjpUd2luZSh0ZXN0LT5nZXROYW1lKCkpICsgIl9zZWxlY3QiKSA6IG5hbWUs IGJibG9jayk7Ci0gICAgIEFkZERlYnVnUG9zKGluc3QpOwotICAgICByZXR1cm4gaW5zdDsKLSB9 Ci1AQCAtMzIyNiw3ICszMjA0LDcgQEAgc3RhdGljIHVuc2lnbmVkIGludCBsQ2FsbGVlQXJnQ291 bnQobGx2bTo6VmFsdWUgKmNhbGxlZSwgY29uc3QgRnVuY3Rpb25UeXBlICpmdW4KLSB9Ci0gCi0g bGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkNhbGxJbnN0KGxsdm06OlZhbHVlICpm dW5jLCBjb25zdCBGdW5jdGlvblR5cGUgKmZ1bmNUeXBlLAotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdGQ6OnZlY3RvcjxsbHZtOjpWYWx1ZSAqPiAm YXJncywgY29uc3QgY2hhciAqbmFtZSkgewotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBjb25zdCBzdGQ6OnZlY3RvcjxsbHZtOjpWYWx1ZSAqPiAmYXJncywgY29u c3QgbGx2bTo6VHdpbmUgJm5hbWUpIHsKLSAgICAgaWYgKGZ1bmMgPT0gTlVMTCkgewotICAgICAg ICAgQXNzZXJ0UG9zKGN1cnJlbnRQb3MsIG0tPmVycm9yQ291bnQgPiAwKTsKLSAgICAgICAgIHJl dHVybiBOVUxMOwotQEAgLTMyNTgsOSArMzIzNiw5IEBAIGxsdm06OlZhbHVlICpGdW5jdGlvbkVt aXRDb250ZXh0OjpDYWxsSW5zdChsbHZtOjpWYWx1ZSAqZnVuYywgY29uc3QgRnVuY3Rpb25UeXBl Ci0gI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMV8wCi0gICAgICAgICBsbHZt OjpQb2ludGVyVHlwZSAqZnVuY19wdHJfdHlwZSA9IGxsdm06OmR5bl9jYXN0PGxsdm06OlBvaW50 ZXJUeXBlPihmdW5jLT5nZXRUeXBlKCkpOwotICAgICAgICAgbGx2bTo6RnVuY3Rpb25UeXBlICpm dW5jX3R5cGUgPSBsbHZtOjpkeW5fY2FzdDxsbHZtOjpGdW5jdGlvblR5cGU+KGZ1bmNfcHRyX3R5 cGUtPmdldFBvaW50ZXJFbGVtZW50VHlwZSgpKTsKLS0gICAgICAgIGxsdm06OkNhbGxJbnN0ICpj YWxsaW5zdCA9IGxsdm06OkNhbGxJbnN0OjpDcmVhdGUoZnVuY190eXBlLCBmdW5jLCBhcmdWYWxz LCBuYW1lID8gbmFtZSA6ICIiLCBiYmxvY2spOwotKyAgICAgICAgbGx2bTo6Q2FsbEluc3QgKmNh bGxpbnN0ID0gbGx2bTo6Q2FsbEluc3Q6OkNyZWF0ZShmdW5jX3R5cGUsIGZ1bmMsIGFyZ1ZhbHMs IG5hbWUsIGJibG9jayk7Ci0gI2Vsc2UKLS0gICAgICAgIGxsdm06OkNhbGxJbnN0ICpjYWxsaW5z dCA9IGxsdm06OkNhbGxJbnN0OjpDcmVhdGUoZnVuYywgYXJnVmFscywgbmFtZSA/IG5hbWUgOiAi IiwgYmJsb2NrKTsKLSsgICAgICAgIGxsdm06OkNhbGxJbnN0ICpjYWxsaW5zdCA9IGxsdm06OkNh bGxJbnN0OjpDcmVhdGUoZnVuYywgYXJnVmFscywgbmFtZSwgYmJsb2NrKTsKLSAjZW5kaWYKLSAK LSAgICAgICAgIC8vIFdlIGNvdWxkIGJlIGRlYWxpbmcgd2l0aCBhIGZ1bmN0aW9uIHBvaW50ZXIg aW4gd2hpY2ggY2FzZSB0aGlzIHdpbGwgbm90IGJlIGEgJ2xsdm06OkZ1bmN0aW9uJy4KLUBAIC0z NDY0LDE0ICszNDQyLDE0IEBAIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpDYWxs SW5zdChsbHZtOjpWYWx1ZSAqZnVuYywgY29uc3QgRnVuY3Rpb25UeXBlCi0gfQotIAotIGxsdm06 OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpDYWxsSW5zdChsbHZtOjpWYWx1ZSAqZnVuYywg Y29uc3QgRnVuY3Rpb25UeXBlICpmdW5jVHlwZSwgbGx2bTo6VmFsdWUgKmFyZywKLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqbmFtZSkgewot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBsbHZtOjpU d2luZSAmbmFtZSkgewotICAgICBzdGQ6OnZlY3RvcjxsbHZtOjpWYWx1ZSAqPiBhcmdzOwotICAg ICBhcmdzLnB1c2hfYmFjayhhcmcpOwotICAgICByZXR1cm4gQ2FsbEluc3QoZnVuYywgZnVuY1R5 cGUsIGFyZ3MsIG5hbWUpOwotIH0KLSAKLSBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4 dDo6Q2FsbEluc3QobGx2bTo6VmFsdWUgKmZ1bmMsIGNvbnN0IEZ1bmN0aW9uVHlwZSAqZnVuY1R5 cGUsIGxsdm06OlZhbHVlICphcmcwLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBsbHZtOjpWYWx1ZSAqYXJnMSwgY29uc3QgY2hhciAqbmFtZSkgewotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpWYWx1ZSAqYXJnMSwg Y29uc3QgbGx2bTo6VHdpbmUgJm5hbWUpIHsKLSAgICAgc3RkOjp2ZWN0b3I8bGx2bTo6VmFsdWUg Kj4gYXJnczsKLSAgICAgYXJncy5wdXNoX2JhY2soYXJnMCk7Ci0gICAgIGFyZ3MucHVzaF9iYWNr KGFyZzEpOwotZGlmZiAtLWdpdCBhL3NyYy9jdHguaCBiL3NyYy9jdHguaAotaW5kZXggNmU1YWQ3 NGJhLi40OGIzYmI4MjYgMTAwNjQ0Ci0tLS0gYS9zcmMvY3R4LmgKLSsrKyBiL3NyYy9jdHguaAot QEAgLTMwMiw3ICszMDIsNyBAQCBjbGFzcyBGdW5jdGlvbkVtaXRDb250ZXh0IHsKLSAgICAgbGx2 bTo6VmFsdWUgKkdldFN0cmluZ1B0cihjb25zdCBzdGQ6OnN0cmluZyAmc3RyKTsKLSAKLSAgICAg LyoqIENyZWF0ZSBhIG5ldyBiYXNpYyBibG9jayB3aXRoIGdpdmVuIG5hbWUgKi8KLS0gICAgbGx2 bTo6QmFzaWNCbG9jayAqQ3JlYXRlQmFzaWNCbG9jayhjb25zdCBjaGFyICpuYW1lLCBsbHZtOjpC YXNpY0Jsb2NrICppbnNlcnRBZnRlciA9IE5VTEwpOwotKyAgICBsbHZtOjpCYXNpY0Jsb2NrICpD cmVhdGVCYXNpY0Jsb2NrKGNvbnN0IGxsdm06OlR3aW5lICZuYW1lLCBsbHZtOjpCYXNpY0Jsb2Nr ICppbnNlcnRBZnRlciA9IE5VTEwpOwotIAotICAgICAvKiogR2l2ZW4gYSB2ZWN0b3Igd2l0aCBl bGVtZW50IHR5cGUgaTEsIHJldHVybiBhIHZlY3RvciBvZiB0eXBlCi0gICAgICAgICBMTFZNVHlw ZXM6OkJvb2xWZWN0b3JUeXBlLiAgVGhpcyBtZXRob2QgaGFuZGxlcyB0aGUgY29udmVyc2lvbiBm b3IKLUBAIC0zODAsMzMgKzM4MCwzMyBAQCBjbGFzcyBGdW5jdGlvbkVtaXRDb250ZXh0IHsKLSAg ICAgICAgIHRoaXMgYWxzbyBoYW5kbGVzIGFwcGx5aW5nIHRoZSBnaXZlbiBvcGVyYXRpb24gdG8g dGhlIHZlY3RvcgotICAgICAgICAgZWxlbWVudHMuICovCi0gICAgIGxsdm06OlZhbHVlICpCaW5h cnlPcGVyYXRvcihsbHZtOjpJbnN0cnVjdGlvbjo6QmluYXJ5T3BzIGluc3QsIGxsdm06OlZhbHVl ICp2MCwgbGx2bTo6VmFsdWUgKnYxLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y29uc3QgY2hhciAqbmFtZSA9IE5VTEwpOwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUgPSAiIik7Ci0gCi0gICAgIC8qKiBFbWl0IHRoZSAi bm90IiBvcGVyYXRvci4gIExpa2UgQmluYXJ5T3BlcmF0b3IoKSwgdGhpcyBhbHNvIGhhbmRsZXMK LSAgICAgICAgIGEgVmVjdG9yVHlwZS1iYXNlZCBvcGVyYW5kLiAqLwotLSAgICBsbHZtOjpWYWx1 ZSAqTm90T3BlcmF0b3IobGx2bTo6VmFsdWUgKnYsIGNvbnN0IGNoYXIgKm5hbWUgPSBOVUxMKTsK LSsgICAgbGx2bTo6VmFsdWUgKk5vdE9wZXJhdG9yKGxsdm06OlZhbHVlICp2LCBjb25zdCBsbHZt OjpUd2luZSAmbmFtZSA9ICIiKTsKLSAKLSAgICAgLyoqIEVtaXQgYSBjb21wYXJpc29uIGluc3Ry dWN0aW9uLiAgSWYgdGhlIG9wZXJhbmRzIGFyZSBWZWN0b3JUeXBlcywKLSAgICAgICAgIHRoZW4g YSB2YWx1ZSBmb3IgdGhlIGNvcnJlc3BvbmRpbmcgYm9vbGVhbiBWZWN0b3JUeXBlIGlzCi0gICAg ICAgICByZXR1cm5lZC4gKi8KLSAgICAgbGx2bTo6VmFsdWUgKkNtcEluc3QobGx2bTo6SW5zdHJ1 Y3Rpb246Ok90aGVyT3BzIGluc3QsIGxsdm06OkNtcEluc3Q6OlByZWRpY2F0ZSBwcmVkLCBsbHZt OjpWYWx1ZSAqdjAsCi0tICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06OlZhbHVlICp2MSwg Y29uc3QgY2hhciAqbmFtZSA9IE5VTEwpOwotKyAgICAgICAgICAgICAgICAgICAgICAgICBsbHZt OjpWYWx1ZSAqdjEsIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lID0gIiIpOwotIAotICAgICAvKiog R2l2ZW4gYSBzY2FsYXIgdmFsdWUsIHJldHVybiBhIHZlY3RvciBvZiB0aGUgc2FtZSB0eXBlIChv ciBhbgotICAgICAgICAgYXJyYXksIGZvciBwb2ludGVyIHR5cGVzKS4gKi8KLS0gICAgbGx2bTo6 VmFsdWUgKlNtZWFyVW5pZm9ybShsbHZtOjpWYWx1ZSAqdmFsdWUsIGNvbnN0IGNoYXIgKm5hbWUg PSBOVUxMKTsKLSsgICAgbGx2bTo6VmFsdWUgKlNtZWFyVW5pZm9ybShsbHZtOjpWYWx1ZSAqdmFs dWUsIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lID0gIiIpOwotIAotLSAgICBsbHZtOjpWYWx1ZSAq Qml0Q2FzdEluc3QobGx2bTo6VmFsdWUgKnZhbHVlLCBsbHZtOjpUeXBlICp0eXBlLCBjb25zdCBj aGFyICpuYW1lID0gTlVMTCk7Ci0tICAgIGxsdm06OlZhbHVlICpQdHJUb0ludEluc3QobGx2bTo6 VmFsdWUgKnZhbHVlLCBjb25zdCBjaGFyICpuYW1lID0gTlVMTCk7Ci0tICAgIGxsdm06OlZhbHVl ICpQdHJUb0ludEluc3QobGx2bTo6VmFsdWUgKnZhbHVlLCBsbHZtOjpUeXBlICp0eXBlLCBjb25z dCBjaGFyICpuYW1lID0gTlVMTCk7Ci0tICAgIGxsdm06OlZhbHVlICpJbnRUb1B0ckluc3QobGx2 bTo6VmFsdWUgKnZhbHVlLCBsbHZtOjpUeXBlICp0eXBlLCBjb25zdCBjaGFyICpuYW1lID0gTlVM TCk7Ci0rICAgIGxsdm06OlZhbHVlICpCaXRDYXN0SW5zdChsbHZtOjpWYWx1ZSAqdmFsdWUsIGxs dm06OlR5cGUgKnR5cGUsIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lID0gIiIpOwotKyAgICBsbHZt OjpWYWx1ZSAqUHRyVG9JbnRJbnN0KGxsdm06OlZhbHVlICp2YWx1ZSwgY29uc3QgbGx2bTo6VHdp bmUgJm5hbWUgPSAiIik7Ci0rICAgIGxsdm06OlZhbHVlICpQdHJUb0ludEluc3QobGx2bTo6VmFs dWUgKnZhbHVlLCBsbHZtOjpUeXBlICp0eXBlLCBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSA9ICIi KTsKLSsgICAgbGx2bTo6VmFsdWUgKkludFRvUHRySW5zdChsbHZtOjpWYWx1ZSAqdmFsdWUsIGxs dm06OlR5cGUgKnR5cGUsIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lID0gIiIpOwotIAotLSAgICBs bHZtOjpJbnN0cnVjdGlvbiAqVHJ1bmNJbnN0KGxsdm06OlZhbHVlICp2YWx1ZSwgbGx2bTo6VHlw ZSAqdHlwZSwgY29uc3QgY2hhciAqbmFtZSA9IE5VTEwpOwotKyAgICBsbHZtOjpJbnN0cnVjdGlv biAqVHJ1bmNJbnN0KGxsdm06OlZhbHVlICp2YWx1ZSwgbGx2bTo6VHlwZSAqdHlwZSwgY29uc3Qg bGx2bTo6VHdpbmUgJm5hbWUgPSAiIik7Ci0gICAgIGxsdm06Okluc3RydWN0aW9uICpDYXN0SW5z dChsbHZtOjpJbnN0cnVjdGlvbjo6Q2FzdE9wcyBvcCwgbGx2bTo6VmFsdWUgKnZhbHVlLCBsbHZt OjpUeXBlICp0eXBlLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hh ciAqbmFtZSA9IE5VTEwpOwotLSAgICBsbHZtOjpJbnN0cnVjdGlvbiAqRlBDYXN0SW5zdChsbHZt OjpWYWx1ZSAqdmFsdWUsIGxsdm06OlR5cGUgKnR5cGUsIGNvbnN0IGNoYXIgKm5hbWUgPSBOVUxM KTsKLS0gICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKlNFeHRJbnN0KGxsdm06OlZhbHVlICp2YWx1ZSwg bGx2bTo6VHlwZSAqdHlwZSwgY29uc3QgY2hhciAqbmFtZSA9IE5VTEwpOwotLSAgICBsbHZtOjpJ bnN0cnVjdGlvbiAqWkV4dEluc3QobGx2bTo6VmFsdWUgKnZhbHVlLCBsbHZtOjpUeXBlICp0eXBl LCBjb25zdCBjaGFyICpuYW1lID0gTlVMTCk7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSA9ICIiKTsKLSsgICAgbGx2bTo6SW5zdHJ1Y3Rp b24gKkZQQ2FzdEluc3QobGx2bTo6VmFsdWUgKnZhbHVlLCBsbHZtOjpUeXBlICp0eXBlLCBjb25z dCBsbHZtOjpUd2luZSAmbmFtZSA9ICIiKTsKLSsgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKlNFeHRJ bnN0KGxsdm06OlZhbHVlICp2YWx1ZSwgbGx2bTo6VHlwZSAqdHlwZSwgY29uc3QgbGx2bTo6VHdp bmUgJm5hbWUgPSAiIik7Ci0rICAgIGxsdm06Okluc3RydWN0aW9uICpaRXh0SW5zdChsbHZtOjpW YWx1ZSAqdmFsdWUsIGxsdm06OlR5cGUgKnR5cGUsIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lID0g IiIpOwotIAotICAgICAvKiogR2l2ZW4gdHdvIGludGVnZXItdHlwZWQgdmFsdWVzIChidXQgcG9z c2libHkgb25lIHZlY3RvciBhbmQgdGhlCi0gICAgICAgICBvdGhlciBub3QsIGFuZCBvciBvZiBw b3NzaWJseS1kaWZmZXJlbnQgYml0LXdpZHRocyksIHVwZGF0ZSB0aGVpcgotQEAgLTQyNiw5ICs0 MjYsOSBAQCBjbGFzcyBGdW5jdGlvbkVtaXRDb250ZXh0IHsKLSAgICAgICAgIHBvaW50ZXJzLiAg VGhlIHVuZGVybHlpbmcgdHlwZSBvZiB0aGUgYmFzZSBwb2ludGVyIG11c3QgYmUgcHJvdmlkZWQK LSAgICAgICAgIHZpYSB0aGUgcHRyVHlwZSBwYXJhbWV0ZXIgKi8KLSAgICAgbGx2bTo6VmFsdWUg KkdldEVsZW1lbnRQdHJJbnN0KGxsdm06OlZhbHVlICpiYXNlUHRyLCBsbHZtOjpWYWx1ZSAqaW5k ZXgsIGNvbnN0IFR5cGUgKnB0clR5cGUsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBjb25zdCBjaGFyICpuYW1lID0gTlVMTCk7Ci0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSA9ICIiKTsKLSAgICAgbGx2bTo6VmFs dWUgKkdldEVsZW1lbnRQdHJJbnN0KGxsdm06OlZhbHVlICpiYXNlUHRyLCBsbHZtOjpWYWx1ZSAq aW5kZXgwLCBsbHZtOjpWYWx1ZSAqaW5kZXgxLCBjb25zdCBUeXBlICpwdHJUeXBlLAotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqbmFtZSA9IE5VTEwpOwot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGx2bTo6VHdpbmUgJm5h bWUgPSAiIik7Ci0gCi0gICAgIC8qKiBUaGlzIG1ldGhvZCByZXR1cm5zIGEgbmV3IHBvaW50ZXIg dGhhdCByZXByZXNlbnRzIG9mZnNldHRpbmcgdGhlCi0gICAgICAgICBnaXZlbiBiYXNlIHBvaW50 ZXIgdG8gcG9pbnQgYXQgdGhlIGdpdmVuIGVsZW1lbnQgbnVtYmVyIG9mIHRoZQotQEAgLTQzNiwy NiArNDM2LDI2IEBAIGNsYXNzIEZ1bmN0aW9uRW1pdENvbnRleHQgewotICAgICAgICAgcG9pbnRl ciBtdXN0IGJlIGEgcG9pbnRlciB0byBhIHN0cnVjdHVyZSB0eXBlLiAgVGhlIHB0clR5cGUgZ2l2 ZXMKLSAgICAgICAgIHRoZSB0eXBlIG9mIHRoZSBwb2ludGVyLCB0aG91Z2ggaXQgbWF5IGJlIE5V TEwgaWYgdGhlIGJhc2UgcG9pbnRlcgotICAgICAgICAgaXMgdW5pZm9ybS4gKi8KLS0gICAgbGx2 bTo6VmFsdWUgKkFkZEVsZW1lbnRPZmZzZXQobGx2bTo6VmFsdWUgKmJhc2VQdHIsIGludCBlbGVt ZW50TnVtLCBjb25zdCBUeXBlICpwdHJUeXBlLCBjb25zdCBjaGFyICpuYW1lID0gTlVMTCwKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgUG9pbnRlclR5cGUgKipyZXN1 bHRQdHJUeXBlID0gTlVMTCk7Ci0rICAgIGxsdm06OlZhbHVlICpBZGRFbGVtZW50T2Zmc2V0KGxs dm06OlZhbHVlICpiYXNlUHRyLCBpbnQgZWxlbWVudE51bSwgY29uc3QgVHlwZSAqcHRyVHlwZSwK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGx2bTo6VHdpbmUgJm5h bWUgPSAiIiwgY29uc3QgUG9pbnRlclR5cGUgKipyZXN1bHRQdHJUeXBlID0gTlVMTCk7Ci0gCi0g ICAgIC8qKiBCb29sIGlzIHN0b3JlZCBhcyBpOCBhbmQgPFdJRFRIIHggaTg+IGJ1dCByZXByZXNl bnRlZCBpbiBJUiBhcyBpMSBhbmQKLSAgICAgICogPFdJRFRIIHggTUFTSz4uIFRoaXMgaXMgYSBo ZWxwZXIgZnVuY3Rpb24gdG8gbWF0Y2ggYm9vbCBzaXplIGF0IHN0b3JhZ2UKLSAgICAgICogaW50 ZXJmYWNlLiAqLwotLSAgICBsbHZtOjpWYWx1ZSAqU3dpdGNoQm9vbFNpemUobGx2bTo6VmFsdWUg KnZhbHVlLCBsbHZtOjpUeXBlICp0b1R5cGUsIGNvbnN0IGNoYXIgKm5hbWUgPSBOVUxMKTsKLSsg ICAgbGx2bTo6VmFsdWUgKlN3aXRjaEJvb2xTaXplKGxsdm06OlZhbHVlICp2YWx1ZSwgbGx2bTo6 VHlwZSAqdG9UeXBlLCBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSA9ICIiKTsKLSAgICAgLyoqIExv YWQgZnJvbSB0aGUgbWVtb3J5IGxvY2F0aW9uKHMpIGdpdmVuIGJ5IGx2YWx1ZSwgdXNpbmcgdGhl IGdpdmVuCi0gICAgICAgICBtYXNrLiAgVGhlIGx2YWx1ZSBtYXkgYmUgdmFyeWluZywgaW4gd2hp Y2ggY2FzZSB0aGlzIGNvcnJlc3BvbmRzIHRvCi0gICAgICAgICBhIGdhdGhlciBmcm9tIHRoZSBt dWx0aXBsZSBtZW1vcnkgbG9jYXRpb25zIGdpdmVuIGJ5IHRoZSBhcnJheSBvZgotICAgICAgICAg cG9pbnRlciB2YWx1ZXMgZ2l2ZW4gYnkgdGhlIGx2YWx1ZS4gIElmIHRoZSBsdmFsdWUgaXMgbm90 IHZhcnlpbmcsCi0gICAgICAgICB0aGVuIGJvdGggdGhlIG1hc2sgcG9pbnRlciBhbmQgdGhlIHR5 cGUgcG9pbnRlciBtYXkgYmUgTlVMTC4gKi8KLS0gICAgbGx2bTo6VmFsdWUgKkxvYWRJbnN0KGxs dm06OlZhbHVlICpwdHIsIGxsdm06OlZhbHVlICptYXNrLCBjb25zdCBUeXBlICpwdHJUeXBlLCBj b25zdCBjaGFyICpuYW1lID0gTlVMTCwKLSsgICAgbGx2bTo6VmFsdWUgKkxvYWRJbnN0KGxsdm06 OlZhbHVlICpwdHIsIGxsdm06OlZhbHVlICptYXNrLCBjb25zdCBUeXBlICpwdHJUeXBlLCBjb25z dCBsbHZtOjpUd2luZSAmbmFtZSA9ICIiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9v bCBvbmVfZWxlbSA9IGZhbHNlKTsKLSAKLSAgICAgLyogTG9hZCBmcm9tIG1lbW9yeSBsb2NhdGlv bihzKSBnaXZlbi4KLSAgICAgICogJ3R5cGUnIG5lZWRzIHRvIGJlIHByb3ZpZGVkIHdoZW4gc3Rv cmFnZSB0eXBlIGlzIGRpZmZlcmVudCBmcm9tIElSIHR5cGUuIEZvciBleGFtcGxlLAotICAgICAg KiAndW5mb3JtIGJvb2wnIGlzICdpMScgaW4gSVIgYnV0IHN0b3JlZCBhcyAnaTgnLgotICAgICAg KiBPdGhlcndpc2UgbGVhdmUgdGhpcyBhcyBOVUxMLiAqLwotLSAgICBsbHZtOjpWYWx1ZSAqTG9h ZEluc3QobGx2bTo6VmFsdWUgKnB0ciwgY29uc3QgVHlwZSAqdHlwZSA9IE5VTEwsIGNvbnN0IGNo YXIgKm5hbWUgPSBOVUxMKTsKLSsgICAgbGx2bTo6VmFsdWUgKkxvYWRJbnN0KGxsdm06OlZhbHVl ICpwdHIsIGNvbnN0IFR5cGUgKnR5cGUgPSBOVUxMLCBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSA9 ICIiKTsKLSAKLSAgICAgLyoqIEVtaXRzIGFuIGFsbG9jYSBpbnN0cnVjdGlvbiB0byBhbGxvY2F0 ZSBzdGFjayBzdG9yYWdlIGZvciB0aGUgZ2l2ZW4KLSAgICAgICAgIHR5cGUuICBJZiBhIG5vbi16 ZXJvIGFsaWdubWVudCBpcyBzcGVjaWZpZWQsIHRoZSBvYmplY3QgaXMgYWxzbwotQEAgLTQ2Myw3 ICs0NjMsOCBAQCBjbGFzcyBGdW5jdGlvbkVtaXRDb250ZXh0IHsKLSAgICAgICAgIGluc3RydWN0 aW9uIGlzIGFkZGVkIGF0IHRoZSBzdGFydCBvZiB0aGUgZnVuY3Rpb24gaW4gdGhlIGVudHJ5Ci0g ICAgICAgICBiYXNpYyBibG9jazsgaWYgaXQgc2hvdWxkIGJlIGFkZGVkIHRvIHRoZSBjdXJyZW50 IGJhc2ljIGJsb2NrLCB0aGVuCi0gICAgICAgICB0aGUgYXRFbnRyeUJsb2NrIHBhcmFtZXRlciBz aG91bGQgYmUgZmFsc2UuICovCi0tICAgIGxsdm06OlZhbHVlICpBbGxvY2FJbnN0KGxsdm06OlR5 cGUgKmxsdm1UeXBlLCBjb25zdCBjaGFyICpuYW1lID0gTlVMTCwgaW50IGFsaWduID0gMCwgYm9v bCBhdEVudHJ5QmxvY2sgPSB0cnVlKTsKLSsgICAgbGx2bTo6VmFsdWUgKkFsbG9jYUluc3QobGx2 bTo6VHlwZSAqbGx2bVR5cGUsIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lID0gIiIsIGludCBhbGln biA9IDAsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgYXRFbnRyeUJsb2NrID0g dHJ1ZSk7Ci0gCi0gICAgIC8qKiBFbWl0cyBhbiBhbGxvY2EgaW5zdHJ1Y3Rpb24gdG8gYWxsb2Nh dGUgc3RhY2sgc3RvcmFnZSBmb3IgdGhlIGdpdmVuCi0gICAgICAgICB0eXBlLiAgSWYgYSBub24t emVybyBhbGlnbm1lbnQgaXMgc3BlY2lmaWVkLCB0aGUgb2JqZWN0IGlzIGFsc28KLUBAIC00NzQs NyArNDc1LDcgQEAgY2xhc3MgRnVuY3Rpb25FbWl0Q29udGV4dCB7Ci0gICAgICAgICBUaGlzIGlt cGxlbWVudGF0aW9uIGlzIHByZWZlcnJlZCB3aGVuIHBvc3NpYmxlLiBJdCBpcyBuZWVkZWQgd2hl bgotICAgICAgICAgc3RvcmFnZSB0eXBlIGlzIGRpZmZlcmVudCBmcm9tIElSIHR5cGUuIEZvciBl eGFtcGxlLAotICAgICAgICAgJ3VuZm9ybSBib29sJyBpcyAnaTEnIGluIElSIGJ1dCBzdG9yZWQg YXMgJ2k4Jy4gKi8KLS0gICAgbGx2bTo6VmFsdWUgKkFsbG9jYUluc3QoY29uc3QgVHlwZSAqcHRy VHlwZSwgY29uc3QgY2hhciAqbmFtZSA9IE5VTEwsIGludCBhbGlnbiA9IDAsIGJvb2wgYXRFbnRy eUJsb2NrID0gdHJ1ZSk7Ci0rICAgIGxsdm06OlZhbHVlICpBbGxvY2FJbnN0KGNvbnN0IFR5cGUg KnB0clR5cGUsIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lID0gIiIsIGludCBhbGlnbiA9IDAsIGJv b2wgYXRFbnRyeUJsb2NrID0gdHJ1ZSk7Ci0gCi0gICAgIC8qKiBTdGFuZGFyZCBzdG9yZSBpbnN0 cnVjdGlvbjsgZm9yIHRoaXMgdmFyaWFudCwgdGhlIGx2YWx1ZSBtdXN0IGJlIGEKLSAgICAgICAg IHNpbmdsZSBwb2ludGVyLCBub3QgYSB2YXJ5aW5nIGx2YWx1ZS4KLUBAIC01MDIsMzkgKzUwMyw0 MSBAQCBjbGFzcyBGdW5jdGlvbkVtaXRDb250ZXh0IHsKLSAgICAgLyoqIFRoaXMgY29udmVuaWVu Y2UgbWV0aG9kIG1hcHMgdG8gYW4gbGx2bTo6RXh0cmFjdEVsZW1lbnRJbnN0IGlmIHRoZQotICAg ICAgICAgZ2l2ZW4gdmFsdWUgaXMgYSBsbHZtOjpWZWN0b3JUeXBlLCBhbmQgdG8gYW4gbGx2bTo6 RXh0cmFjdFZhbHVlSW5zdAotICAgICAgICAgb3RoZXJ3aXNlLiAqLwotLSAgICBsbHZtOjpWYWx1 ZSAqRXh0cmFjdEluc3QobGx2bTo6VmFsdWUgKnYsIGludCBlbHQsIGNvbnN0IGNoYXIgKm5hbWUg PSBOVUxMKTsKLSsgICAgbGx2bTo6VmFsdWUgKkV4dHJhY3RJbnN0KGxsdm06OlZhbHVlICp2LCBp bnQgZWx0LCBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSA9ICIiKTsKLSAKLSAgICAgLyoqIFRoaXMg Y29udmVuaWVuY2UgbWV0aG9kIG1hcHMgdG8gYW4gbGx2bTo6SW5zZXJ0RWxlbWVudEluc3QgaWYg dGhlCi0gICAgICAgICBnaXZlbiB2YWx1ZSBpcyBhIGxsdm06OlZlY3RvclR5cGUsIGFuZCB0byBh biBsbHZtOjpJbnNlcnRWYWx1ZUluc3QKLSAgICAgICAgIG90aGVyd2lzZS4gKi8KLS0gICAgbGx2 bTo6VmFsdWUgKkluc2VydEluc3QobGx2bTo6VmFsdWUgKnYsIGxsdm06OlZhbHVlICplbHRWYWws IGludCBlbHQsIGNvbnN0IGNoYXIgKm5hbWUgPSBOVUxMKTsKLSsgICAgbGx2bTo6VmFsdWUgKklu c2VydEluc3QobGx2bTo6VmFsdWUgKnYsIGxsdm06OlZhbHVlICplbHRWYWwsIGludCBlbHQsIGNv bnN0IGxsdm06OlR3aW5lICZuYW1lID0gIiIpOwotIAotICAgICAvKiogVGhpcyBjb252ZW5pZW5j ZSBtZXRob2QgbWFwcyB0byBhbiBsbHZtOjpTaHVmZmxlVmVjdG9ySW5zdC4gKi8KLS0gICAgbGx2 bTo6VmFsdWUgKlNodWZmbGVJbnN0KGxsdm06OlZhbHVlICp2MSwgbGx2bTo6VmFsdWUgKnYyLCBs bHZtOjpWYWx1ZSAqbWFzaywgY29uc3QgY2hhciAqbmFtZSA9IE5VTEwpOwotKyAgICBsbHZtOjpW YWx1ZSAqU2h1ZmZsZUluc3QobGx2bTo6VmFsdWUgKnYxLCBsbHZtOjpWYWx1ZSAqdjIsIGxsdm06 OlZhbHVlICptYXNrLCBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSA9ICIiKTsKLSAKLSAgICAgLyoq IFRoaXMgY29udmVuaWVuY2UgbWV0aG9kIHRvIGdlbmVyYXRlIGJyb2FkY2FzdCBwYXR0ZXJuLiBJ dCB0YWtlcyBhIHZhbHVlCi0gICAgICAgICBhbmQgYSB2ZWN0b3IgdHlwZS4gVHlwZSBvZiB0aGUg dmFsdWUgbXVzdCBtYXRjaCBlbGVtZW50IHR5cGUgb2YgdGhlCi0gICAgICAgICB2ZWN0b3IuICov Ci0tICAgIGxsdm06OlZhbHVlICpCcm9hZGNhc3RWYWx1ZShsbHZtOjpWYWx1ZSAqdiwgbGx2bTo6 VHlwZSAqdmVjVHlwZSwgY29uc3QgY2hhciAqbmFtZSA9IE5VTEwpOwotKyAgICBsbHZtOjpWYWx1 ZSAqQnJvYWRjYXN0VmFsdWUobGx2bTo6VmFsdWUgKnYsIGxsdm06OlR5cGUgKnZlY1R5cGUsIGNv bnN0IGxsdm06OlR3aW5lICZuYW1lID0gIiIpOwotIAotLSAgICBsbHZtOjpQSElOb2RlICpQaGlO b2RlKGxsdm06OlR5cGUgKnR5cGUsIGludCBjb3VudCwgY29uc3QgY2hhciAqbmFtZSA9IE5VTEwp OwotLSAgICBsbHZtOjpJbnN0cnVjdGlvbiAqU2VsZWN0SW5zdChsbHZtOjpWYWx1ZSAqdGVzdCwg bGx2bTo6VmFsdWUgKnZhbDAsIGxsdm06OlZhbHVlICp2YWwxLCBjb25zdCBjaGFyICpuYW1lID0g TlVMTCk7Ci0rICAgIGxsdm06OlBISU5vZGUgKlBoaU5vZGUobGx2bTo6VHlwZSAqdHlwZSwgaW50 IGNvdW50LCBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSA9ICIiKTsKLSsgICAgbGx2bTo6SW5zdHJ1 Y3Rpb24gKlNlbGVjdEluc3QobGx2bTo6VmFsdWUgKnRlc3QsIGxsdm06OlZhbHVlICp2YWwwLCBs bHZtOjpWYWx1ZSAqdmFsMSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u c3QgbGx2bTo6VHdpbmUgJm5hbWUgPSAiIik7Ci0gCi0gICAgIC8qKiBFbWl0cyBJUiB0byBkbyBh IGZ1bmN0aW9uIGNhbGwgd2l0aCB0aGUgZ2l2ZW4gYXJndW1lbnRzLiAgSWYgdGhlCi0gICAgICAg ICBmdW5jdGlvbiB0eXBlIGlzIGEgdmFyeWluZyBmdW5jdGlvbiBwb2ludGVyIHR5cGUsIGl0cyBm dWxsIHR5cGUKLSAgICAgICAgIG11c3QgYmUgcHJvdmlkZWQgaW4gZnVuY1R5cGUuICBmdW5jVHlw ZSBjYW4gYmUgTlVMTCBpZiBmdW5jIGlzIGEKLSAgICAgICAgIHVuaWZvcm0gZnVuY3Rpb24gcG9p bnRlci4gKi8KLSAgICAgbGx2bTo6VmFsdWUgKkNhbGxJbnN0KGxsdm06OlZhbHVlICpmdW5jLCBj b25zdCBGdW5jdGlvblR5cGUgKmZ1bmNUeXBlLCBjb25zdCBzdGQ6OnZlY3RvcjxsbHZtOjpWYWx1 ZSAqPiAmYXJncywKLS0gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKm5hbWUg PSBOVUxMKTsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGxsdm06OlR3aW5lICZu YW1lID0gIiIpOwotIAotICAgICAvKiogVGhpcyBpcyBhIGNvbnZlbmllbmNlIG1ldGhvZCB0aGF0 IGlzc3VlcyBhIGNhbGwgaW5zdHJ1Y3Rpb24gdG8gYQotICAgICAgICAgZnVuY3Rpb24gdGhhdCB0 YWtlcyBqdXN0IGEgc2luZ2xlIGFyZ3VtZW50LiAqLwotLSAgICBsbHZtOjpWYWx1ZSAqQ2FsbElu c3QobGx2bTo6VmFsdWUgKmZ1bmMsIGNvbnN0IEZ1bmN0aW9uVHlwZSAqZnVuY1R5cGUsIGxsdm06 OlZhbHVlICphcmcsIGNvbnN0IGNoYXIgKm5hbWUgPSBOVUxMKTsKLSsgICAgbGx2bTo6VmFsdWUg KkNhbGxJbnN0KGxsdm06OlZhbHVlICpmdW5jLCBjb25zdCBGdW5jdGlvblR5cGUgKmZ1bmNUeXBl LCBsbHZtOjpWYWx1ZSAqYXJnLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGx2 bTo6VHdpbmUgJm5hbWUgPSAiIik7Ci0gCi0gICAgIC8qKiBUaGlzIGlzIGEgY29udmVuaWVuY2Ug bWV0aG9kIHRoYXQgaXNzdWVzIGEgY2FsbCBpbnN0cnVjdGlvbiB0byBhCi0gICAgICAgICBmdW5j dGlvbiB0aGF0IHRha2VzIHR3byBhcmd1bWVudHMuICovCi0gICAgIGxsdm06OlZhbHVlICpDYWxs SW5zdChsbHZtOjpWYWx1ZSAqZnVuYywgY29uc3QgRnVuY3Rpb25UeXBlICpmdW5jVHlwZSwgbGx2 bTo6VmFsdWUgKmFyZzAsIGxsdm06OlZhbHVlICphcmcxLAotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgY29uc3QgY2hhciAqbmFtZSA9IE5VTEwpOwotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUgPSAiIik7Ci0gCi0gICAgIC8qKiBMYXVuY2ggYW4g YXN5bmNocm9ub3VzIHRhc2sgdG8gcnVuIHRoZSBnaXZlbiBmdW5jdGlvbiwgcGFzc2luZyBpdAot ICAgICAgICAgaGUgZ2l2ZW4gYXJndW1lbnQgdmFsdWVzLiAqLwotQEAgLTc1Niw5ICs3NTksMTAg QEAgY2xhc3MgRnVuY3Rpb25FbWl0Q29udGV4dCB7Ci0gICAgIHZvaWQgbWFza2VkU3RvcmUobGx2 bTo6VmFsdWUgKnZhbHVlLCBsbHZtOjpWYWx1ZSAqcHRyLCBjb25zdCBUeXBlICpwdHJUeXBlLCBs bHZtOjpWYWx1ZSAqbWFzayk7Ci0gICAgIHZvaWQgc3RvcmVVbmlmb3JtVG9TT0EobGx2bTo6VmFs dWUgKnZhbHVlLCBsbHZtOjpWYWx1ZSAqcHRyLCBsbHZtOjpWYWx1ZSAqbWFzaywgY29uc3QgVHlw ZSAqdmFsdWVUeXBlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFBvaW50ZXJU eXBlICpwdHJUeXBlKTsKLS0gICAgbGx2bTo6VmFsdWUgKmxvYWRVbmlmb3JtRnJvbVNPQShsbHZt OjpWYWx1ZSAqcHRyLCBsbHZtOjpWYWx1ZSAqbWFzaywgY29uc3QgUG9pbnRlclR5cGUgKnB0clR5 cGUsIGNvbnN0IGNoYXIgKm5hbWUpOwotKyAgICBsbHZtOjpWYWx1ZSAqbG9hZFVuaWZvcm1Gcm9t U09BKGxsdm06OlZhbHVlICpwdHIsIGxsdm06OlZhbHVlICptYXNrLCBjb25zdCBQb2ludGVyVHlw ZSAqcHRyVHlwZSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBs bHZtOjpUd2luZSAmbmFtZSA9ICIiKTsKLSAKLS0gICAgbGx2bTo6VmFsdWUgKmdhdGhlcihsbHZt OjpWYWx1ZSAqcHRyLCBjb25zdCBQb2ludGVyVHlwZSAqcHRyVHlwZSwgbGx2bTo6VmFsdWUgKm1h c2ssIGNvbnN0IGNoYXIgKm5hbWUpOwotKyAgICBsbHZtOjpWYWx1ZSAqZ2F0aGVyKGxsdm06OlZh bHVlICpwdHIsIGNvbnN0IFBvaW50ZXJUeXBlICpwdHJUeXBlLCBsbHZtOjpWYWx1ZSAqbWFzaywg Y29uc3QgbGx2bTo6VHdpbmUgJm5hbWUgPSAiIik7Ci0gCi0gICAgIGxsdm06OlZhbHVlICphZGRW YXJ5aW5nT2Zmc2V0c0lmTmVlZGVkKGxsdm06OlZhbHVlICpwdHIsIGNvbnN0IFR5cGUgKnB0clR5 cGUpOwotIH07Ci1kaWZmIC0tZ2l0IGEvc3JjL2V4cHIuY3BwIGIvc3JjL2V4cHIuY3BwCi1pbmRl eCA4MGNjMzAyMGEuLjZkMzhkMTg4OSAxMDA2NDQKLS0tLSBhL3NyYy9leHByLmNwcAotKysrIGIv c3JjL2V4cHIuY3BwCi1AQCAtMTAyMSwxMSArMTAyMSwxMSBAQCBzdGF0aWMgbGx2bTo6VmFsdWUg KmxFbWl0TmVnYXRlKEV4cHIgKmFyZywgU291cmNlUG9zIHBvcywgRnVuY3Rpb25FbWl0Q29udGV4 dCAqYwotICAgICBjdHgtPlNldERlYnVnUG9zKHBvcyk7Ci0gICAgIGlmICh0eXBlLT5Jc0Zsb2F0 VHlwZSgpKSB7Ci0gICAgICAgICBsbHZtOjpWYWx1ZSAqemVybyA9IGxsdm06OkNvbnN0YW50RlA6 OmdldFplcm9WYWx1ZUZvck5lZ2F0aW9uKHR5cGUtPkxMVk1UeXBlKGctPmN0eCkpOwotLSAgICAg ICAgcmV0dXJuIGN0eC0+QmluYXJ5T3BlcmF0b3IobGx2bTo6SW5zdHJ1Y3Rpb246OkZTdWIsIHpl cm8sIGFyZ1ZhbCwgTExWTUdldE5hbWUoYXJnVmFsLCAiX25lZ2F0ZSIpKTsKLSsgICAgICAgIHJl dHVybiBjdHgtPkJpbmFyeU9wZXJhdG9yKGxsdm06Okluc3RydWN0aW9uOjpGU3ViLCB6ZXJvLCBh cmdWYWwsIGxsdm06OlR3aW5lKGFyZ1ZhbC0+Z2V0TmFtZSgpKSArICJfbmVnYXRlIik7Ci0gICAg IH0gZWxzZSB7Ci0gICAgICAgICBsbHZtOjpWYWx1ZSAqemVybyA9IGxMTFZNQ29uc3RhbnRWYWx1 ZSh0eXBlLCBnLT5jdHgsIDAuKTsKLSAgICAgICAgIEFzc2VydFBvcyhwb3MsIHR5cGUtPklzSW50 VHlwZSgpKTsKLS0gICAgICAgIHJldHVybiBjdHgtPkJpbmFyeU9wZXJhdG9yKGxsdm06Okluc3Ry dWN0aW9uOjpTdWIsIHplcm8sIGFyZ1ZhbCwgTExWTUdldE5hbWUoYXJnVmFsLCAiX25lZ2F0ZSIp KTsKLSsgICAgICAgIHJldHVybiBjdHgtPkJpbmFyeU9wZXJhdG9yKGxsdm06Okluc3RydWN0aW9u OjpTdWIsIHplcm8sIGFyZ1ZhbCwgbGx2bTo6VHdpbmUoYXJnVmFsLT5nZXROYW1lKCkpICsgIl9u ZWdhdGUiKTsKLSAgICAgfQotIH0KLSAKLUBAIC0xMDQ3LDExICsxMDQ3LDExIEBAIGxsdm06OlZh bHVlICpVbmFyeUV4cHI6OkdldFZhbHVlKEZ1bmN0aW9uRW1pdENvbnRleHQgKmN0eCkgY29uc3Qg ewotICAgICAgICAgcmV0dXJuIGxFbWl0TmVnYXRlKGV4cHIsIHBvcywgY3R4KTsKLSAgICAgY2Fz ZSBMb2dpY2FsTm90OiB7Ci0gICAgICAgICBsbHZtOjpWYWx1ZSAqYXJnVmFsID0gZXhwci0+R2V0 VmFsdWUoY3R4KTsKLS0gICAgICAgIHJldHVybiBjdHgtPk5vdE9wZXJhdG9yKGFyZ1ZhbCwgTExW TUdldE5hbWUoYXJnVmFsLCAiX2xvZ2ljYWxub3QiKSk7Ci0rICAgICAgICByZXR1cm4gY3R4LT5O b3RPcGVyYXRvcihhcmdWYWwsIGxsdm06OlR3aW5lKGFyZ1ZhbC0+Z2V0TmFtZSgpKSArICJfbG9n aWNhbG5vdCIpOwotICAgICB9Ci0gICAgIGNhc2UgQml0Tm90OiB7Ci0gICAgICAgICBsbHZtOjpW YWx1ZSAqYXJnVmFsID0gZXhwci0+R2V0VmFsdWUoY3R4KTsKLS0gICAgICAgIHJldHVybiBjdHgt Pk5vdE9wZXJhdG9yKGFyZ1ZhbCwgTExWTUdldE5hbWUoYXJnVmFsLCAiX2JpdG5vdCIpKTsKLSsg ICAgICAgIHJldHVybiBjdHgtPk5vdE9wZXJhdG9yKGFyZ1ZhbCwgbGx2bTo6VHdpbmUoYXJnVmFs LT5nZXROYW1lKCkpICsgIl9iaXRub3QiKTsKLSAgICAgfQotICAgICBkZWZhdWx0OgotICAgICAg ICAgRkFUQUwoImxvZ2ljIGVycm9yIik7Ci1AQCAtMTUxOCw3ICsxNTE4LDggQEAgc3RhdGljIGxs dm06OlZhbHVlICpsRW1pdEJpbmFyeUFyaXRoKEJpbmFyeUV4cHI6Ok9wIG9wLCBsbHZtOjpWYWx1 ZSAqdmFsdWUwLCBsbHYKLSAgICAgICAgICAgICByZXR1cm4gTlVMTDsKLSAgICAgICAgIH0KLSAK LS0gICAgICAgIHJldHVybiBjdHgtPkJpbmFyeU9wZXJhdG9yKGluc3QsIHZhbHVlMCwgdmFsdWUx LCBMTFZNR2V0TmFtZShvcE5hbWUsIHZhbHVlMCwgdmFsdWUxKSk7Ci0rICAgICAgICByZXR1cm4g Y3R4LT5CaW5hcnlPcGVyYXRvcihpbnN0LCB2YWx1ZTAsIHZhbHVlMSwKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICgoKGxsdm06OlR3aW5lKG9wTmFtZSkgKyAiXyIpICsgdmFs dWUwLT5nZXROYW1lKCkpICsgIl8iKSArIHZhbHVlMS0+Z2V0TmFtZSgpKTsKLSAgICAgfQotIH0K LSAKLUBAIC0xNTYzLDcgKzE1NjQsNyBAQCBzdGF0aWMgbGx2bTo6VmFsdWUgKmxFbWl0QmluYXJ5 Q21wKEJpbmFyeUV4cHI6Ok9wIG9wLCBsbHZtOjpWYWx1ZSAqZTBWYWwsIGxsdm06OgotICAgICB9 Ci0gCi0gICAgIGxsdm06OlZhbHVlICpjbXAgPSBjdHgtPkNtcEluc3QoaXNGbG9hdE9wID8gbGx2 bTo6SW5zdHJ1Y3Rpb246OkZDbXAgOiBsbHZtOjpJbnN0cnVjdGlvbjo6SUNtcCwgcHJlZCwgZTBW YWwsIGUxVmFsLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExMVk1HZXRO YW1lKG9wTmFtZSwgZTBWYWwsIGUxVmFsKSk7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKCgobGx2bTo6VHdpbmUob3BOYW1lKSArICJfIikgKyBlMFZhbC0+Z2V0TmFtZSgp KSArICJfIikgKyBlMVZhbC0+Z2V0TmFtZSgpKTsKLSAgICAgLy8gVGhpcyBpcyBhIGxpdHRsZSB1 Z2x5OiBDbXBJbnN0IHJldHVybnMgaTEgdmFsdWVzLCBidXQgd2UgdXNlIHZlY3RvcnMKLSAgICAg Ly8gb2YgaTMycyBmb3IgdmFyeWluZyBib29sIHZhbHVlczsgdHlwZSBjb252ZXJ0IHRoZSByZXN1 bHQgaGVyZSBpZgotICAgICAvLyBuZWVkZWQuCi1AQCAtNDE3Nyw3ICs0MTc4LDcgQEAgc3RhdGlj IGxsdm06OlZhbHVlICpsQ29udmVydFRvU2xpY2VQb2ludGVyKEZ1bmN0aW9uRW1pdENvbnRleHQg KmN0eCwgbGx2bTo6VmFsdWUKLSAgICAgLy8gb2Zmc2V0cwotICAgICBsbHZtOjpWYWx1ZSAqcmVz dWx0ID0gbGx2bTo6Q29uc3RhbnQ6OmdldE51bGxWYWx1ZShzbGljZVN0cnVjdFR5cGUpOwotICAg ICAvLyBBbmQgcmVwbGFjZSB0aGUgcG9pbnRlciBpbiB0aGUgc3RydWN0IHdpdGggdGhlIGdpdmVu IHBvaW50ZXIKLS0gICAgcmV0dXJuIGN0eC0+SW5zZXJ0SW5zdChyZXN1bHQsIHB0ciwgMCwgTExW TUdldE5hbWUocHRyLCAiX3NsaWNlIikpOwotKyAgICByZXR1cm4gY3R4LT5JbnNlcnRJbnN0KHJl c3VsdCwgcHRyLCAwLCBsbHZtOjpUd2luZShwdHItPmdldE5hbWUoKSkgKyAiX3NsaWNlIik7Ci0g fQotIAotIC8qKiBJZiB0aGUgZ2l2ZW4gYXJyYXkgaW5kZXggaXMgYSBjb21waWxlIHRpbWUgY29u c3RhbnQsIGNoZWNrIHRvIHNlZSBpZiBpdAotQEAgLTQyNTgsOCArNDI1OSw4IEBAIGxsdm06OlZh bHVlICpJbmRleEV4cHI6OkdldExWYWx1ZShGdW5jdGlvbkVtaXRDb250ZXh0ICpjdHgpIGNvbnN0 IHsKLSAgICAgICAgIC8vIENvbnZlcnQgdG8gYSBzbGljZSBwb2ludGVyIGlmIHdlJ3JlIGluZGV4 aW5nIGludG8gU09BIGRhdGEKLSAgICAgICAgIGJhc2VQdHJWYWx1ZSA9IGxDb252ZXJ0UHRyVG9T bGljZUlmTmVlZGVkKGN0eCwgYmFzZVB0clZhbHVlLCAmYmFzZUV4cHJUeXBlKTsKLSAKLS0gICAg ICAgIGxsdm06OlZhbHVlICpwdHIgPQotLSAgICAgICAgICAgIGN0eC0+R2V0RWxlbWVudFB0cklu c3QoYmFzZVB0clZhbHVlLCBpbmRleFZhbHVlLCBiYXNlRXhwclR5cGUsIExMVk1HZXROYW1lKGJh c2VQdHJWYWx1ZSwgIl9vZmZzZXQiKSk7Ci0rICAgICAgICBsbHZtOjpWYWx1ZSAqcHRyID0gY3R4 LT5HZXRFbGVtZW50UHRySW5zdChiYXNlUHRyVmFsdWUsIGluZGV4VmFsdWUsIGJhc2VFeHByVHlw ZSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxs dm06OlR3aW5lKGJhc2VQdHJWYWx1ZS0+Z2V0TmFtZSgpKSArICJfb2Zmc2V0Iik7Ci0gICAgICAg ICByZXR1cm4gbEFkZFZhcnlpbmdPZmZzZXRzSWZOZWVkZWQoY3R4LCBwdHIsIEdldExWYWx1ZVR5 cGUoKSk7Ci0gICAgIH0KLSAKLUBAIC00MjkwLDggKzQyOTEsOCBAQCBsbHZtOjpWYWx1ZSAqSW5k ZXhFeHByOjpHZXRMVmFsdWUoRnVuY3Rpb25FbWl0Q29udGV4dCAqY3R4KSBjb25zdCB7Ci0gICAg IGN0eC0+U2V0RGVidWdQb3MocG9zKTsKLSAKLSAgICAgLy8gQW5kIGRvIHRoZSBhY3R1YWwgaW5k ZXhpbmcgY2FsY3VsYXRpb24uLgotLSAgICBsbHZtOjpWYWx1ZSAqcHRyID0KLS0gICAgICAgIGN0 eC0+R2V0RWxlbWVudFB0ckluc3QoYmFzZVB0ciwgTExWTUludDMyKDApLCBpbmRleFZhbHVlLCBi YXNlUHRyVHlwZSwgTExWTUdldE5hbWUoYmFzZVB0ciwgIl9vZmZzZXQiKSk7Ci0rICAgIGxsdm06 OlZhbHVlICpwdHIgPSBjdHgtPkdldEVsZW1lbnRQdHJJbnN0KGJhc2VQdHIsIExMVk1JbnQzMigw KSwgaW5kZXhWYWx1ZSwgYmFzZVB0clR5cGUsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGxsdm06OlR3aW5lKGJhc2VQdHItPmdldE5hbWUoKSkgKyAiX29m ZnNldCIpOwotICAgICByZXR1cm4gbEFkZFZhcnlpbmdPZmZzZXRzSWZOZWVkZWQoY3R4LCBwdHIs IEdldExWYWx1ZVR5cGUoKSk7Ci0gfQotIAotQEAgLTQ3ODgsMTUgKzQ3ODksMTQgQEAgbGx2bTo6 VmFsdWUgKlZlY3Rvck1lbWJlckV4cHI6OkdldFZhbHVlKEZ1bmN0aW9uRW1pdENvbnRleHQgKmN0 eCkgY29uc3QgewotICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBpZGVudGlmaWVyLnNp emUoKTsgKytpKSB7Ci0gICAgICAgICAgICAgY2hhciBpZFN0clsyXSA9IHtpZGVudGlmaWVyW2ld LCAnXDAnfTsKLSAgICAgICAgICAgICBsbHZtOjpWYWx1ZSAqZWxlbWVudFB0ciA9Ci0tICAgICAg ICAgICAgICAgIGN0eC0+QWRkRWxlbWVudE9mZnNldChiYXNlUHRyLCBpbmRpY2VzW2ldLCBiYXNl UHRyVHlwZSwgTExWTUdldE5hbWUoYmFzZVB0ciwgaWRTdHIpKTsKLSsgICAgICAgICAgICAgICAg Y3R4LT5BZGRFbGVtZW50T2Zmc2V0KGJhc2VQdHIsIGluZGljZXNbaV0sIGJhc2VQdHJUeXBlLCBs bHZtOjpUd2luZShiYXNlUHRyLT5nZXROYW1lKCkpICsgaWRTdHIpOwotICAgICAgICAgICAgIGxs dm06OlZhbHVlICplbGVtZW50VmFsdWUgPSBjdHgtPkxvYWRJbnN0KGVsZW1lbnRQdHIsIGVsZW1l bnRNYXNrLCBlbGVtZW50UHRyVHlwZSk7Ci0gCi0tICAgICAgICAgICAgY29uc3QgY2hhciAqcmVz dWx0TmFtZSA9IExMVk1HZXROYW1lKHJlc3VsdFB0ciwgaWRTdHIpOwotLSAgICAgICAgICAgIGxs dm06OlZhbHVlICpwdG1wID0gY3R4LT5BZGRFbGVtZW50T2Zmc2V0KHJlc3VsdFB0ciwgaSwgTlVM TCwgcmVzdWx0TmFtZSk7Ci0rICAgICAgICAgICAgbGx2bTo6VmFsdWUgKnB0bXAgPSBjdHgtPkFk ZEVsZW1lbnRPZmZzZXQocmVzdWx0UHRyLCBpLCBOVUxMLCBsbHZtOjpUd2luZShyZXN1bHRQdHIt PmdldE5hbWUoKSkgKyBpZFN0cik7Ci0gICAgICAgICAgICAgY3R4LT5TdG9yZUluc3QoZWxlbWVu dFZhbHVlLCBwdG1wLCBlbGVtZW50UHRyVHlwZSwgZXhwci0+R2V0VHlwZSgpLT5Jc1VuaWZvcm1U eXBlKCkpOwotICAgICAgICAgfQotIAotLSAgICAgICAgcmV0dXJuIGN0eC0+TG9hZEluc3QocmVz dWx0UHRyLCBtZW1iZXJUeXBlLCBMTFZNR2V0TmFtZShiYXNlUHRyLCAiX3N3aXp6bGUiKSk7Ci0r ICAgICAgICByZXR1cm4gY3R4LT5Mb2FkSW5zdChyZXN1bHRQdHIsIG1lbWJlclR5cGUsIGxsdm06 OlR3aW5lKGJhc2VQdHItPmdldE5hbWUoKSkgKyAiX3N3aXp6bGUiKTsKLSAgICAgfQotIH0KLSAK LUBAIC00OTMyLDcgKzQ5MzIsNyBAQCBsbHZtOjpWYWx1ZSAqTWVtYmVyRXhwcjo6R2V0VmFsdWUo RnVuY3Rpb25FbWl0Q29udGV4dCAqY3R4KSBjb25zdCB7Ci0gCi0gICAgIGN0eC0+U2V0RGVidWdQ b3MocG9zKTsKLSAgICAgc3RkOjpzdHJpbmcgc3VmZml4ID0gc3RkOjpzdHJpbmcoIl8iKSArIGlk ZW50aWZpZXI7Ci0tICAgIHJldHVybiBjdHgtPkxvYWRJbnN0KGx2YWx1ZSwgbWFzaywgbHZhbHVl VHlwZSwgTExWTUdldE5hbWUobHZhbHVlLCBzdWZmaXguY19zdHIoKSkpOwotKyAgICByZXR1cm4g Y3R4LT5Mb2FkSW5zdChsdmFsdWUsIG1hc2ssIGx2YWx1ZVR5cGUsIGxsdm06OlR3aW5lKGx2YWx1 ZS0+Z2V0TmFtZSgpKSArIHN1ZmZpeCk7Ci0gfQotIAotIGNvbnN0IFR5cGUgKk1lbWJlckV4cHI6 OkdldFR5cGUoKSBjb25zdCB7IHJldHVybiBOVUxMOyB9Ci1AQCAtNjUwMiw3ICs2NTAyLDcgQEAg c3RhdGljIGxsdm06OlZhbHVlICpsVHlwZUNvbnZBdG9taWMoRnVuY3Rpb25FbWl0Q29udGV4dCAq Y3R4LCBsbHZtOjpWYWx1ZSAqZXhwclYKLSAgICAgICAgICAgICAgICAgLy8gZG9lcyBmb3IgZXZl cnlvbmUgZWxzZS4uLgotICAgICAgICAgICAgICAgICBBc3NlcnQoY2FzdCk7Ci0gICAgICAgICAg ICAgICAgIGNhc3QgPSBjdHgtPlN3aXRjaEJvb2xTaXplKGNhc3QsIExMVk1UeXBlczo6Qm9vbFZl Y3RvclR5cGUtPmdldEVsZW1lbnRUeXBlKCksCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIExMVk1HZXROYW1lKGNhc3QsICJ0b19pX2Jvb2wiKSk7Ci0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06OlR3aW5lKGNhc3QtPmdl dE5hbWUoKSkgKyAidG9faV9ib29sIik7Ci0gICAgICAgICAgICAgfQotICAgICAgICAgfSBlbHNl IHsKLSAgICAgICAgICAgICAvLyBmcm9tVHlwZS0+SXNWYXJ5aW5nVHlwZSgpKQotQEAgLTgyNDYs NyArODI0Niw3IEBAIGxsdm06OlZhbHVlICpOZXdFeHByOjpHZXRWYWx1ZShGdW5jdGlvbkVtaXRD b250ZXh0ICpjdHgpIGNvbnN0IHsKLSAgICAgICAgIC8vIHBvaW50ZXIgb2YgdGhlIHJldHVybiB0 eXBlIGFuZCB0byBydW4gdGhlIGNvZGUgZm9yIGluaXRpYWxpemVycywKLSAgICAgICAgIC8vIGlm IHByZXNlbnQuCi0gICAgICAgICBsbHZtOjpUeXBlICpwdHJUeXBlID0gcmV0VHlwZS0+TExWTVR5 cGUoZy0+Y3R4KTsKLS0gICAgICAgIHB0clZhbHVlID0gY3R4LT5CaXRDYXN0SW5zdChwdHJWYWx1 ZSwgcHRyVHlwZSwgTExWTUdldE5hbWUocHRyVmFsdWUsICJfY2FzdF9wdHIiKSk7Ci0rICAgICAg ICBwdHJWYWx1ZSA9IGN0eC0+Qml0Q2FzdEluc3QocHRyVmFsdWUsIHB0clR5cGUsIGxsdm06OlR3 aW5lKHB0clZhbHVlLT5nZXROYW1lKCkpICsgIl9jYXN0X3B0ciIpOwotIAotICAgICAgICAgaWYg KGluaXRFeHByICE9IE5VTEwpCi0gICAgICAgICAgICAgSW5pdFN5bWJvbChwdHJWYWx1ZSwgYWxs b2NUeXBlLCBpbml0RXhwciwgY3R4LCBwb3MpOwotZGlmZiAtLWdpdCBhL3NyYy9sbHZtdXRpbC5j cHAgYi9zcmMvbGx2bXV0aWwuY3BwCi1pbmRleCA5NzAxNzVkYmYuLmQwYmVjYjlmNSAxMDA2NDQK LS0tLSBhL3NyYy9sbHZtdXRpbC5jcHAKLSsrKyBiL3NyYy9sbHZtdXRpbC5jcHAKLUBAIC0xNjA1 LDIzICsxNjA1LDYgQEAgbGx2bTo6VmFsdWUgKkxMVk1TaHVmZmxlVmVjdG9ycyhsbHZtOjpWYWx1 ZSAqdjEsIGxsdm06OlZhbHVlICp2MiwgaW50MzJfdCBzaHVmW10KLSAgICAgcmV0dXJuIG5ldyBs bHZtOjpTaHVmZmxlVmVjdG9ySW5zdCh2MSwgdjIsIHZlYywgInNodWZmbGUiLCBpbnNlcnRCZWZv cmUpOwotIH0KLSAKLS1jb25zdCBjaGFyICpMTFZNR2V0TmFtZShsbHZtOjpWYWx1ZSAqdiwgY29u c3QgY2hhciAqcykgewotLSAgICBpZiAodiA9PSBOVUxMKQotLSAgICAgICAgcmV0dXJuIHM7Ci0t ICAgIHN0ZDo6c3RyaW5nIHJldCA9IHN0ZDo6c3RyaW5nKHYtPmdldE5hbWUoKSk7Ci0tICAgIHJl dCArPSBzOwotLSAgICByZXR1cm4gc3RyZHVwKHJldC5jX3N0cigpKTsKLS19Ci0tCi0tY29uc3Qg Y2hhciAqTExWTUdldE5hbWUoY29uc3QgY2hhciAqb3AsIGxsdm06OlZhbHVlICp2MSwgbGx2bTo6 VmFsdWUgKnYyKSB7Ci0tICAgIHN0ZDo6c3RyaW5nIHIgPSBvcDsKLS0gICAgciArPSAiXyI7Ci0t ICAgIHIgKz0gdjEtPmdldE5hbWUoKS5zdHIoKTsKLS0gICAgciArPSAiXyI7Ci0tICAgIHIgKz0g djItPmdldE5hbWUoKS5zdHIoKTsKLS0gICAgcmV0dXJuIHN0cmR1cChyLmNfc3RyKCkpOwotLX0K LS0KLSAjaWZkZWYgSVNQQ19HRU5YX0VOQUJMRUQKLSBib29sIGxJc1NWTUxvYWQobGx2bTo6SW5z dHJ1Y3Rpb24gKmluc3QpIHsKLSAgICAgQXNzZXJ0KGluc3QpOwotZGlmZiAtLWdpdCBhL3NyYy9s bHZtdXRpbC5oIGIvc3JjL2xsdm11dGlsLmgKLWluZGV4IDQyY2NlNGQ4My4uMDdkMDg5YmI0IDEw MDY0NAotLS0tIGEvc3JjL2xsdm11dGlsLmgKLSsrKyBiL3NyYy9sbHZtdXRpbC5oCi1AQCAtMzI4 LDExICszMjgsNiBAQCBleHRlcm4gbGx2bTo6VmFsdWUgKkxMVk1Db25jYXRWZWN0b3JzKGxsdm06 OlZhbHVlICp2MSwgbGx2bTo6VmFsdWUgKnYyLCBsbHZtOjpJbgotIGV4dGVybiBsbHZtOjpWYWx1 ZSAqTExWTVNodWZmbGVWZWN0b3JzKGxsdm06OlZhbHVlICp2MSwgbGx2bTo6VmFsdWUgKnYyLCBp bnQzMl90IHNodWZbXSwgaW50IHNodWZTaXplLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGxsdm06Okluc3RydWN0aW9uICppbnNlcnRCZWZvcmUpOwotIAotLS8qKiBV dGlsaXR5IHJvdXRpbmVzIHRvIGNvbmNhdCBzdHJpbmdzIHdpdGggdGhlIG5hbWVzIG9mIGV4aXN0 aW5nIHZhbHVlcyB0bwotLSAgICBjcmVhdGUgbWVhbmluZ2Z1bCBuZXcgbmFtZXMgZm9yIGluc3Ry dWN0aW9uIHZhbHVlcy4KLS0qLwotLWV4dGVybiBjb25zdCBjaGFyICpMTFZNR2V0TmFtZShsbHZt OjpWYWx1ZSAqdiwgY29uc3QgY2hhciAqKTsKLS1leHRlcm4gY29uc3QgY2hhciAqTExWTUdldE5h bWUoY29uc3QgY2hhciAqb3AsIGxsdm06OlZhbHVlICp2MSwgbGx2bTo6VmFsdWUgKnYyKTsKLSAj aWZkZWYgSVNQQ19HRU5YX0VOQUJMRUQKLSBlbnVtIEFkZHJlc3NTcGFjZSB7IExvY2FsLCBHbG9i YWwsIEV4dGVybmFsIH07Ci0gCi1kaWZmIC0tZ2l0IGEvc3JjL29wdC5jcHAgYi9zcmMvb3B0LmNw cAotaW5kZXggNWIxYWM3YjYzLi45ZDZjYWUwNTggMTAwNjQ0Ci0tLS0gYS9zcmMvb3B0LmNwcAot KysrIGIvc3JjL29wdC5jcHAKLUBAIC0yNTcsNyArMjU3LDcgQEAgc3RhdGljIGJvb2wgbEdldFNv dXJjZVBvc0Zyb21NZXRhZGF0YShjb25zdCBsbHZtOjpJbnN0cnVjdGlvbiAqaW5zdCwgU291cmNl UG9zICoKLSAgICAgcmV0dXJuIHRydWU7Ci0gfQotIAotLXN0YXRpYyBsbHZtOjpJbnN0cnVjdGlv biAqbENhbGxJbnN0KGxsdm06OkZ1bmN0aW9uICpmdW5jLCBsbHZtOjpWYWx1ZSAqYXJnMCwgbGx2 bTo6VmFsdWUgKmFyZzEsIGNvbnN0IGNoYXIgKm5hbWUsCi0rc3RhdGljIGxsdm06Okluc3RydWN0 aW9uICpsQ2FsbEluc3QobGx2bTo6RnVuY3Rpb24gKmZ1bmMsIGxsdm06OlZhbHVlICphcmcwLCBs bHZtOjpWYWx1ZSAqYXJnMSwgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUsCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmluc2VydEJlZm9yZSA9 IE5VTEwpIHsKLSAgICAgbGx2bTo6VmFsdWUgKmFyZ3NbMl0gPSB7YXJnMCwgYXJnMX07Ci0gICAg IGxsdm06OkFycmF5UmVmPGxsdm06OlZhbHVlICo+IG5ld0FyZ0FycmF5KCZhcmdzWzBdLCAmYXJn c1syXSk7Ci1AQCAtMjY1LDIxICsyNjUsMjIgQEAgc3RhdGljIGxsdm06Okluc3RydWN0aW9uICps Q2FsbEluc3QobGx2bTo6RnVuY3Rpb24gKmZ1bmMsIGxsdm06OlZhbHVlICphcmcwLCBsbHYKLSB9 Ci0gCi0gc3RhdGljIGxsdm06Okluc3RydWN0aW9uICpsQ2FsbEluc3QobGx2bTo6RnVuY3Rpb24g KmZ1bmMsIGxsdm06OlZhbHVlICphcmcwLCBsbHZtOjpWYWx1ZSAqYXJnMSwgbGx2bTo6VmFsdWUg KmFyZzIsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAq bmFtZSwgbGx2bTo6SW5zdHJ1Y3Rpb24gKmluc2VydEJlZm9yZSA9IE5VTEwpIHsKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSwgbGx2 bTo6SW5zdHJ1Y3Rpb24gKmluc2VydEJlZm9yZSA9IE5VTEwpIHsKLSAgICAgbGx2bTo6VmFsdWUg KmFyZ3NbM10gPSB7YXJnMCwgYXJnMSwgYXJnMn07Ci0gICAgIGxsdm06OkFycmF5UmVmPGxsdm06 OlZhbHVlICo+IG5ld0FyZ0FycmF5KCZhcmdzWzBdLCAmYXJnc1szXSk7Ci0gICAgIHJldHVybiBs bHZtOjpDYWxsSW5zdDo6Q3JlYXRlKGZ1bmMsIG5ld0FyZ0FycmF5LCBuYW1lLCBpbnNlcnRCZWZv cmUpOwotIH0KLSAKLSBzdGF0aWMgbGx2bTo6SW5zdHJ1Y3Rpb24gKmxDYWxsSW5zdChsbHZtOjpG dW5jdGlvbiAqZnVuYywgbGx2bTo6VmFsdWUgKmFyZzAsIGxsdm06OlZhbHVlICphcmcxLCBsbHZt OjpWYWx1ZSAqYXJnMiwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsbHZt OjpWYWx1ZSAqYXJnMywgY29uc3QgY2hhciAqbmFtZSwgbGx2bTo6SW5zdHJ1Y3Rpb24gKmluc2Vy dEJlZm9yZSA9IE5VTEwpIHsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBs bHZtOjpWYWx1ZSAqYXJnMywgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUsCi0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmluc2VydEJlZm9yZSA9 IE5VTEwpIHsKLSAgICAgbGx2bTo6VmFsdWUgKmFyZ3NbNF0gPSB7YXJnMCwgYXJnMSwgYXJnMiwg YXJnM307Ci0gICAgIGxsdm06OkFycmF5UmVmPGxsdm06OlZhbHVlICo+IG5ld0FyZ0FycmF5KCZh cmdzWzBdLCAmYXJnc1s0XSk7Ci0gICAgIHJldHVybiBsbHZtOjpDYWxsSW5zdDo6Q3JlYXRlKGZ1 bmMsIG5ld0FyZ0FycmF5LCBuYW1lLCBpbnNlcnRCZWZvcmUpOwotIH0KLSAKLSBzdGF0aWMgbGx2 bTo6SW5zdHJ1Y3Rpb24gKmxDYWxsSW5zdChsbHZtOjpGdW5jdGlvbiAqZnVuYywgbGx2bTo6VmFs dWUgKmFyZzAsIGxsdm06OlZhbHVlICphcmcxLCBsbHZtOjpWYWx1ZSAqYXJnMiwKLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpWYWx1ZSAqYXJnMywgbGx2bTo6VmFs dWUgKmFyZzQsIGNvbnN0IGNoYXIgKm5hbWUsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgbGx2bTo6VmFsdWUgKmFyZzMsIGxsdm06OlZhbHVlICphcmc0LCBjb25zdCBsbHZt OjpUd2luZSAmbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsbHZt OjpJbnN0cnVjdGlvbiAqaW5zZXJ0QmVmb3JlID0gTlVMTCkgewotICAgICBsbHZtOjpWYWx1ZSAq YXJnc1s1XSA9IHthcmcwLCBhcmcxLCBhcmcyLCBhcmczLCBhcmc0fTsKLSAgICAgbGx2bTo6QXJy YXlSZWY8bGx2bTo6VmFsdWUgKj4gbmV3QXJnQXJyYXkoJmFyZ3NbMF0sICZhcmdzWzVdKTsKLUBA IC0yODcsNyArMjg4LDcgQEAgc3RhdGljIGxsdm06Okluc3RydWN0aW9uICpsQ2FsbEluc3QobGx2 bTo6RnVuY3Rpb24gKmZ1bmMsIGxsdm06OlZhbHVlICphcmcwLCBsbHYKLSB9Ci0gCi0gc3RhdGlj IGxsdm06Okluc3RydWN0aW9uICpsQ2FsbEluc3QobGx2bTo6RnVuY3Rpb24gKmZ1bmMsIGxsdm06 OlZhbHVlICphcmcwLCBsbHZtOjpWYWx1ZSAqYXJnMSwgbGx2bTo6VmFsdWUgKmFyZzIsCi0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6VmFsdWUgKmFyZzMsIGxsdm06 OlZhbHVlICphcmc0LCBsbHZtOjpWYWx1ZSAqYXJnNSwgY29uc3QgY2hhciAqbmFtZSwKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpWYWx1ZSAqYXJnMywgbGx2bTo6 VmFsdWUgKmFyZzQsIGxsdm06OlZhbHVlICphcmc1LCBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSwK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpJbnN0cnVjdGlvbiAq aW5zZXJ0QmVmb3JlID0gTlVMTCkgewotICAgICBsbHZtOjpWYWx1ZSAqYXJnc1s2XSA9IHthcmcw LCBhcmcxLCBhcmcyLCBhcmczLCBhcmc0LCBhcmc1fTsKLSAgICAgbGx2bTo6QXJyYXlSZWY8bGx2 bTo6VmFsdWUgKj4gbmV3QXJnQXJyYXkoJmFyZ3NbMF0sICZhcmdzWzZdKTsKLUBAIC05OTEsMjMg Kzk5MiwyNCBAQCBib29sIEludHJpbnNpY3NPcHQ6OnJ1bk9uQmFzaWNCbG9jayhsbHZtOjpCYXNp Y0Jsb2NrICZiYikgewotICAgICAgICAgICAgICAgICBsbHZtOjpUeXBlICpyZXR1cm5UeXBlID0g Y2FsbEluc3QtPmdldFR5cGUoKTsKLSAgICAgICAgICAgICAgICAgQXNzZXJ0KGxsdm06OmlzYTxs bHZtOjpWZWN0b3JUeXBlPihyZXR1cm5UeXBlKSk7Ci0gICAgICAgICAgICAgICAgIC8vIGNhc3Qg dGhlIGk4ICogdG8gdGhlIGFwcHJvcHJpYXRlIHR5cGUKLS0gICAgICAgICAgICAgICAgY29uc3Qg Y2hhciAqbmFtZSA9IExMVk1HZXROYW1lKGNhbGxJbnN0LT5nZXRBcmdPcGVyYW5kKDApLCAiX2Nh c3QiKTsKLS0gICAgICAgICAgICAgICAgbGx2bTo6VmFsdWUgKmNhc3RQdHIgPSBuZXcgbGx2bTo6 Qml0Q2FzdEluc3QoY2FsbEluc3QtPmdldEFyZ09wZXJhbmQoMCksCi0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06OlBvaW50 ZXJUeXBlOjpnZXQocmV0dXJuVHlwZSwgMCksIG5hbWUsIGNhbGxJbnN0KTsKLSsgICAgICAgICAg ICAgICAgbGx2bTo6VmFsdWUgKmNhc3RQdHIgPQotKyAgICAgICAgICAgICAgICAgICAgbmV3IGxs dm06OkJpdENhc3RJbnN0KGNhbGxJbnN0LT5nZXRBcmdPcGVyYW5kKDApLCBsbHZtOjpQb2ludGVy VHlwZTo6Z2V0KHJldHVyblR5cGUsIDApLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGxsdm06OlR3aW5lKGNhbGxJbnN0LT5nZXRBcmdPcGVyYW5kKDApLT5nZXRO YW1lKCkpICsgIl9jYXN0IiwgY2FsbEluc3QpOwotICAgICAgICAgICAgICAgICBsQ29weU1ldGFk YXRhKGNhc3RQdHIsIGNhbGxJbnN0KTsKLSAgICAgICAgICAgICAgICAgaW50IGFsaWduOwotICAg ICAgICAgICAgICAgICBpZiAoZy0+b3B0LmZvcmNlQWxpZ25lZE1lbW9yeSkKLSAgICAgICAgICAg ICAgICAgICAgIGFsaWduID0gZy0+dGFyZ2V0LT5nZXROYXRpdmVWZWN0b3JBbGlnbm1lbnQoKTsK LSAgICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICAgYWxpZ24gPSBjYWxs SW5zdC0+Z2V0Q2FsbGVkRnVuY3Rpb24oKSA9PSBhdnhNYXNrZWRMb2FkMzIgPyA0IDogODsKLS0g ICAgICAgICAgICAgICAgbmFtZSA9IExMVk1HZXROYW1lKGNhbGxJbnN0LT5nZXRBcmdPcGVyYW5k KDApLCAiX2xvYWQiKTsKLSAjaWYgSVNQQ19MTFZNX1ZFUlNJT04gPT0gSVNQQ19MTFZNXzEwXzAK LS0gICAgICAgICAgICAgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmxvYWRJbnN0ID0gbmV3IGxsdm06 OkxvYWRJbnN0KGNhc3RQdHIsIG5hbWUsIGZhbHNlIC8qIG5vdCB2b2xhdGlsZSAqLywKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGxsdm06Ok1heWJlQWxpZ24oYWxpZ24pLCAobGx2bTo6SW5zdHJ1Y3Rpb24gKilOVUxMKTsK LSsgICAgICAgICAgICAgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmxvYWRJbnN0ID0KLSsgICAgICAg ICAgICAgICAgICAgIG5ldyBsbHZtOjpMb2FkSW5zdChjYXN0UHRyLCBsbHZtOjpUd2luZShjYWxs SW5zdC0+Z2V0QXJnT3BlcmFuZCgwKS0+Z2V0TmFtZSgpKSArICJfbG9hZCIsCi0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UgLyogbm90IHZvbGF0aWxlICovLCBs bHZtOjpNYXliZUFsaWduKGFsaWduKSwgKGxsdm06Okluc3RydWN0aW9uICopTlVMTCk7Ci0gI2Vs c2UKLSAgICAgICAgICAgICAgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmxvYWRJbnN0ID0gbmV3IGxs dm06OkxvYWRJbnN0KAotLSAgICAgICAgICAgICAgICAgICAgbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6 UG9pbnRlclR5cGU+KGNhc3RQdHItPmdldFR5cGUoKSktPmdldFBvaW50ZXJFbGVtZW50VHlwZSgp LCBjYXN0UHRyLCBuYW1lLAotLSAgICAgICAgICAgICAgICAgICAgZmFsc2UgLyogbm90IHZvbGF0 aWxlICovLCBsbHZtOjpNYXliZUFsaWduKGFsaWduKS52YWx1ZU9yT25lKCksIChsbHZtOjpJbnN0 cnVjdGlvbiAqKU5VTEwpOwotKyAgICAgICAgICAgICAgICAgICAgbGx2bTo6ZHluX2Nhc3Q8bGx2 bTo6UG9pbnRlclR5cGU+KGNhc3RQdHItPmdldFR5cGUoKSktPmdldFBvaW50ZXJFbGVtZW50VHlw ZSgpLCBjYXN0UHRyLAotKyAgICAgICAgICAgICAgICAgICAgbGx2bTo6VHdpbmUoY2FsbEluc3Qt PmdldEFyZ09wZXJhbmQoMCktPmdldE5hbWUoKSkgKyAiX2xvYWQiLCBmYWxzZSAvKiBub3Qgdm9s YXRpbGUgKi8sCi0rICAgICAgICAgICAgICAgICAgICBsbHZtOjpNYXliZUFsaWduKGFsaWduKS52 YWx1ZU9yT25lKCksIChsbHZtOjpJbnN0cnVjdGlvbiAqKU5VTEwpOwotICNlbmRpZgotICAgICAg ICAgICAgICAgICBsQ29weU1ldGFkYXRhKGxvYWRJbnN0LCBjYWxsSW5zdCk7Ci0gICAgICAgICAg ICAgICAgIGxsdm06OlJlcGxhY2VJbnN0V2l0aEluc3QoY2FsbEluc3QsIGxvYWRJbnN0KTsKLUBA IC0xMDI4LDkgKzEwMzAsOSBAQCBib29sIEludHJpbnNpY3NPcHQ6OnJ1bk9uQmFzaWNCbG9jayhs bHZtOjpCYXNpY0Jsb2NrICZiYikgewotICAgICAgICAgICAgICAgICAvLyBhbGwgbGFuZXMgc3Rv cmluZywgc28gcmVwbGFjZSB3aXRoIGEgcmVndWxhciBzdG9yZQotICAgICAgICAgICAgICAgICBs bHZtOjpWYWx1ZSAqcnZhbHVlID0gY2FsbEluc3QtPmdldEFyZ09wZXJhbmQoMik7Ci0gICAgICAg ICAgICAgICAgIGxsdm06OlR5cGUgKnN0b3JlVHlwZSA9IHJ2YWx1ZS0+Z2V0VHlwZSgpOwotLSAg ICAgICAgICAgICAgICBjb25zdCBjaGFyICpuYW1lID0gTExWTUdldE5hbWUoY2FsbEluc3QtPmdl dEFyZ09wZXJhbmQoMCksICJfcHRyY2FzdCIpOwotLSAgICAgICAgICAgICAgICBsbHZtOjpWYWx1 ZSAqY2FzdFB0ciA9IG5ldyBsbHZtOjpCaXRDYXN0SW5zdChjYWxsSW5zdC0+Z2V0QXJnT3BlcmFu ZCgwKSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgbGx2bTo6UG9pbnRlclR5cGU6OmdldChzdG9yZVR5cGUsIDApLCBuYW1lLCBj YWxsSW5zdCk7Ci0rICAgICAgICAgICAgICAgIGxsdm06OlZhbHVlICpjYXN0UHRyID0KLSsgICAg ICAgICAgICAgICAgICAgIG5ldyBsbHZtOjpCaXRDYXN0SW5zdChjYWxsSW5zdC0+Z2V0QXJnT3Bl cmFuZCgwKSwgbGx2bTo6UG9pbnRlclR5cGU6OmdldChzdG9yZVR5cGUsIDApLAotKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06OlR3aW5lKGNhbGxJbnN0LT5n ZXRBcmdPcGVyYW5kKDApLT5nZXROYW1lKCkpICsgIl9wdHJjYXN0IiwgY2FsbEluc3QpOwotICAg ICAgICAgICAgICAgICBsQ29weU1ldGFkYXRhKGNhc3RQdHIsIGNhbGxJbnN0KTsKLSAKLSAgICAg ICAgICAgICAgICAgaW50IGFsaWduOwotQEAgLTEzMzksOCArMTM0MSw4IEBAIHN0YXRpYyBsbHZt OjpWYWx1ZSAqbEdldEJhc2VQb2ludGVyKGxsdm06OlZhbHVlICp2LCBsbHZtOjpJbnN0cnVjdGlv biAqaW5zZXJ0QmVmCi0gICAgICAgICBpZiAodCA9PSBOVUxMKSB7Ci0gICAgICAgICAgICAgcmV0 dXJuIE5VTEw7Ci0gICAgICAgICB9IGVsc2UgewotLSAgICAgICAgICAgIHJldHVybiBsbHZtOjpD YXN0SW5zdDo6Q3JlYXRlKGNpLT5nZXRPcGNvZGUoKSwgdCwgY2ktPmdldFR5cGUoKS0+Z2V0U2Nh bGFyVHlwZSgpLCBMTFZNR2V0TmFtZSh0LCAiX2Nhc3QiKSwKLS0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBpbnNlcnRCZWZvcmUpOwotKyAgICAgICAgICAgIHJldHVy biBsbHZtOjpDYXN0SW5zdDo6Q3JlYXRlKGNpLT5nZXRPcGNvZGUoKSwgdCwgY2ktPmdldFR5cGUo KS0+Z2V0U2NhbGFyVHlwZSgpLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGxsdm06OlR3aW5lKHQtPmdldE5hbWUoKSkgKyAiX2Nhc3QiLCBpbnNlcnRCZWZvcmUp OwotICAgICAgICAgfQotICAgICB9Ci0gCi1AQCAtMTU4MywxMyArMTU4NSwxMyBAQCBzdGF0aWMg dm9pZCBsRXh0cmFjdENvbnN0YW50T2Zmc2V0KGxsdm06OlZhbHVlICp2ZWMsIGxsdm06OlZhbHVl ICoqY29uc3RPZmZzZXQsCi0gICAgICAgICBpZiAoY28gPT0gTlVMTCkKLSAgICAgICAgICAgICAq Y29uc3RPZmZzZXQgPSBOVUxMOwotICAgICAgICAgZWxzZQotLSAgICAgICAgICAgICpjb25zdE9m ZnNldCA9Ci0tICAgICAgICAgICAgICAgIGxsdm06OkNhc3RJbnN0OjpDcmVhdGUoY2FzdC0+Z2V0 T3Bjb2RlKCksIGNvLCBjYXN0LT5nZXRUeXBlKCksIExMVk1HZXROYW1lKGNvLCAiX2Nhc3QiKSwg aW5zZXJ0QmVmb3JlKTsKLSsgICAgICAgICAgICAqY29uc3RPZmZzZXQgPSBsbHZtOjpDYXN0SW5z dDo6Q3JlYXRlKGNhc3QtPmdldE9wY29kZSgpLCBjbywgY2FzdC0+Z2V0VHlwZSgpLAotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6VHdpbmUo Y28tPmdldE5hbWUoKSkgKyAiX2Nhc3QiLCBpbnNlcnRCZWZvcmUpOwotICAgICAgICAgaWYgKHZv ID09IE5VTEwpCi0gICAgICAgICAgICAgKnZhcmlhYmxlT2Zmc2V0ID0gTlVMTDsKLSAgICAgICAg IGVsc2UKLS0gICAgICAgICAgICAqdmFyaWFibGVPZmZzZXQgPQotLSAgICAgICAgICAgICAgICBs bHZtOjpDYXN0SW5zdDo6Q3JlYXRlKGNhc3QtPmdldE9wY29kZSgpLCB2bywgY2FzdC0+Z2V0VHlw ZSgpLCBMTFZNR2V0TmFtZSh2bywgIl9jYXN0IiksIGluc2VydEJlZm9yZSk7Ci0rICAgICAgICAg ICAgKnZhcmlhYmxlT2Zmc2V0ID0gbGx2bTo6Q2FzdEluc3Q6OkNyZWF0ZShjYXN0LT5nZXRPcGNv ZGUoKSwgdm8sIGNhc3QtPmdldFR5cGUoKSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06OlR3aW5lKHZvLT5nZXROYW1lKCkpICsgIl9j YXN0IiwgaW5zZXJ0QmVmb3JlKTsKLSAgICAgICAgIHJldHVybjsKLSAgICAgfQotIAotQEAgLTE2 MDgsMTYgKzE2MTAsMTggQEAgc3RhdGljIHZvaWQgbEV4dHJhY3RDb25zdGFudE9mZnNldChsbHZt OjpWYWx1ZSAqdmVjLCBsbHZtOjpWYWx1ZSAqKmNvbnN0T2Zmc2V0LAotICAgICAgICAgICAgIGVs c2UgaWYgKGMxID09IE5VTEwgfHwgbGx2bTo6aXNhPGxsdm06OkNvbnN0YW50QWdncmVnYXRlWmVy bz4oYzEpKQotICAgICAgICAgICAgICAgICAqY29uc3RPZmZzZXQgPSBjMDsKLSAgICAgICAgICAg ICBlbHNlCi0tICAgICAgICAgICAgICAgICpjb25zdE9mZnNldCA9IGxsdm06OkJpbmFyeU9wZXJh dG9yOjpDcmVhdGUobGx2bTo6SW5zdHJ1Y3Rpb246OkFkZCwgYzAsIGMxLCBMTFZNR2V0TmFtZSgi YWRkIiwgYzAsIGMxKSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBpbnNlcnRCZWZvcmUpOwotKyAgICAgICAgICAgICAgICAqY29u c3RPZmZzZXQgPSBsbHZtOjpCaW5hcnlPcGVyYXRvcjo6Q3JlYXRlKAotKyAgICAgICAgICAgICAg ICAgICAgbGx2bTo6SW5zdHJ1Y3Rpb246OkFkZCwgYzAsIGMxLCAoKGxsdm06OlR3aW5lKCJhZGRf IikgKyBjMC0+Z2V0TmFtZSgpKSArICJfIikgKyBjMS0+Z2V0TmFtZSgpLAotKyAgICAgICAgICAg ICAgICAgICAgaW5zZXJ0QmVmb3JlKTsKLSAKLSAgICAgICAgICAgICBpZiAodjAgPT0gTlVMTCB8 fCBsbHZtOjppc2E8bGx2bTo6Q29uc3RhbnRBZ2dyZWdhdGVaZXJvPih2MCkpCi0gICAgICAgICAg ICAgICAgICp2YXJpYWJsZU9mZnNldCA9IHYxOwotICAgICAgICAgICAgIGVsc2UgaWYgKHYxID09 IE5VTEwgfHwgbGx2bTo6aXNhPGxsdm06OkNvbnN0YW50QWdncmVnYXRlWmVybz4odjEpKQotICAg ICAgICAgICAgICAgICAqdmFyaWFibGVPZmZzZXQgPSB2MDsKLSAgICAgICAgICAgICBlbHNlCi0t ICAgICAgICAgICAgICAgICp2YXJpYWJsZU9mZnNldCA9IGxsdm06OkJpbmFyeU9wZXJhdG9yOjpD cmVhdGUobGx2bTo6SW5zdHJ1Y3Rpb246OkFkZCwgdjAsIHYxLAotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExMVk1HZXROYW1l KCJhZGQiLCB2MCwgdjEpLCBpbnNlcnRCZWZvcmUpOwotKyAgICAgICAgICAgICAgICAqdmFyaWFi bGVPZmZzZXQgPSBsbHZtOjpCaW5hcnlPcGVyYXRvcjo6Q3JlYXRlKAotKyAgICAgICAgICAgICAg ICAgICAgbGx2bTo6SW5zdHJ1Y3Rpb246OkFkZCwgdjAsIHYxLCAoKGxsdm06OlR3aW5lKCJhZGRf IikgKyB2MC0+Z2V0TmFtZSgpKSArICJfIikgKyB2MS0+Z2V0TmFtZSgpLAotKyAgICAgICAgICAg ICAgICAgICAgaW5zZXJ0QmVmb3JlKTsKLSAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICB9 IGVsc2UgaWYgKGJvcC0+Z2V0T3Bjb2RlKCkgPT0gbGx2bTo6SW5zdHJ1Y3Rpb246OlNobCkgewot ICAgICAgICAgICAgIGxFeHRyYWN0Q29uc3RhbnRPZmZzZXQob3AwLCAmYzAsICZ2MCwgaW5zZXJ0 QmVmb3JlKTsKLUBAIC0xNjMzLDEwICsxNjM3LDEyIEBAIHN0YXRpYyB2b2lkIGxFeHRyYWN0Q29u c3RhbnRPZmZzZXQobGx2bTo6VmFsdWUgKnZlYywgbGx2bTo6VmFsdWUgKipjb25zdE9mZnNldCwK LSAgICAgICAgICAgICAgICAgKmNvbnN0T2Zmc2V0ID0gdmVjOwotICAgICAgICAgICAgICAgICAq dmFyaWFibGVPZmZzZXQgPSBOVUxMOwotICAgICAgICAgICAgIH0gZWxzZSB7Ci0tICAgICAgICAg ICAgICAgICpjb25zdE9mZnNldCA9IGxsdm06OkJpbmFyeU9wZXJhdG9yOjpDcmVhdGUobGx2bTo6 SW5zdHJ1Y3Rpb246OlNobCwgYzAsIGMxLCBMTFZNR2V0TmFtZSgic2hsIiwgYzAsIGMxKSwKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBpbnNlcnRCZWZvcmUpOwotLSAgICAgICAgICAgICAgICAqdmFyaWFibGVPZmZzZXQgPSBsbHZt OjpCaW5hcnlPcGVyYXRvcjo6Q3JlYXRlKGxsdm06Okluc3RydWN0aW9uOjpTaGwsIHYwLCBjMSwK LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBMTFZNR2V0TmFtZSgic2hsIiwgdjAsIGMxKSwgaW5zZXJ0QmVmb3JlKTsKLSsgICAg ICAgICAgICAgICAgKmNvbnN0T2Zmc2V0ID0gbGx2bTo6QmluYXJ5T3BlcmF0b3I6OkNyZWF0ZSgK LSsgICAgICAgICAgICAgICAgICAgIGxsdm06Okluc3RydWN0aW9uOjpTaGwsIGMwLCBjMSwgKChs bHZtOjpUd2luZSgic2hsXyIpICsgYzAtPmdldE5hbWUoKSkgKyAiXyIpICsgYzEtPmdldE5hbWUo KSwKLSsgICAgICAgICAgICAgICAgICAgIGluc2VydEJlZm9yZSk7Ci0rICAgICAgICAgICAgICAg ICp2YXJpYWJsZU9mZnNldCA9IGxsdm06OkJpbmFyeU9wZXJhdG9yOjpDcmVhdGUoCi0rICAgICAg ICAgICAgICAgICAgICBsbHZtOjpJbnN0cnVjdGlvbjo6U2hsLCB2MCwgYzEsICgobGx2bTo6VHdp bmUoInNobF8iKSArIHYwLT5nZXROYW1lKCkpICsgIl8iKSArIGMxLT5nZXROYW1lKCksCi0rICAg ICAgICAgICAgICAgICAgICBpbnNlcnRCZWZvcmUpOwotICAgICAgICAgICAgIH0KLSAgICAgICAg ICAgICByZXR1cm47Ci0gICAgICAgICB9IGVsc2UgaWYgKGJvcC0+Z2V0T3Bjb2RlKCkgPT0gbGx2 bTo6SW5zdHJ1Y3Rpb246Ok11bCkgewotQEAgLTE2NDgsMjUgKzE2NTQsMzAgQEAgc3RhdGljIHZv aWQgbEV4dHJhY3RDb25zdGFudE9mZnNldChsbHZtOjpWYWx1ZSAqdmVjLCBsbHZtOjpWYWx1ZSAq KmNvbnN0T2Zmc2V0LAotICAgICAgICAgICAgIC8vIE5vdGUgdGhhdCB0aGUgZmlyc3QgdGVybSBp cyBhIGNvbnN0YW50IGFuZCB0aGUgbGFzdCB0aHJlZSBhcmUKLSAgICAgICAgICAgICAvLyB2YXJp YWJsZS4KLSAgICAgICAgICAgICBpZiAoYzAgIT0gTlVMTCAmJiBjMSAhPSBOVUxMKQotLSAgICAg ICAgICAgICAgICAqY29uc3RPZmZzZXQgPSBsbHZtOjpCaW5hcnlPcGVyYXRvcjo6Q3JlYXRlKGxs dm06Okluc3RydWN0aW9uOjpNdWwsIGMwLCBjMSwgTExWTUdldE5hbWUoIm11bCIsIGMwLCBjMSks Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgaW5zZXJ0QmVmb3JlKTsKLSsgICAgICAgICAgICAgICAgKmNvbnN0T2Zmc2V0ID0gbGx2 bTo6QmluYXJ5T3BlcmF0b3I6OkNyZWF0ZSgKLSsgICAgICAgICAgICAgICAgICAgIGxsdm06Oklu c3RydWN0aW9uOjpNdWwsIGMwLCBjMSwgKChsbHZtOjpUd2luZSgibXVsXyIpICsgYzAtPmdldE5h bWUoKSkgKyAiXyIpICsgYzEtPmdldE5hbWUoKSwKLSsgICAgICAgICAgICAgICAgICAgIGluc2Vy dEJlZm9yZSk7Ci0gICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAqY29uc3RPZmZz ZXQgPSBOVUxMOwotIAotICAgICAgICAgICAgIGxsdm06OlZhbHVlICp2YSA9IE5VTEwsICp2YiA9 IE5VTEwsICp2YyA9IE5VTEw7Ci0gICAgICAgICAgICAgaWYgKHYwICE9IE5VTEwgJiYgYzEgIT0g TlVMTCkKLS0gICAgICAgICAgICAgICAgdmEgPSBsbHZtOjpCaW5hcnlPcGVyYXRvcjo6Q3JlYXRl KGxsdm06Okluc3RydWN0aW9uOjpNdWwsIHYwLCBjMSwgTExWTUdldE5hbWUoIm11bCIsIHYwLCBj MSksCi0rICAgICAgICAgICAgICAgIHZhID0gbGx2bTo6QmluYXJ5T3BlcmF0b3I6OkNyZWF0ZShs bHZtOjpJbnN0cnVjdGlvbjo6TXVsLCB2MCwgYzEsCi0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxsdm06OlR3aW5lKCJtdWxfIikgKyB2MC0+Z2V0 TmFtZSgpKSArICJfIikgKyBjMS0+Z2V0TmFtZSgpLAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5zZXJ0QmVmb3JlKTsKLSAgICAgICAgICAgICBp ZiAoYzAgIT0gTlVMTCAmJiB2MSAhPSBOVUxMKQotLSAgICAgICAgICAgICAgICB2YiA9IGxsdm06 OkJpbmFyeU9wZXJhdG9yOjpDcmVhdGUobGx2bTo6SW5zdHJ1Y3Rpb246Ok11bCwgYzAsIHYxLCBM TFZNR2V0TmFtZSgibXVsIiwgYzAsIHYxKSwKLSsgICAgICAgICAgICAgICAgdmIgPSBsbHZtOjpC aW5hcnlPcGVyYXRvcjo6Q3JlYXRlKGxsdm06Okluc3RydWN0aW9uOjpNdWwsIGMwLCB2MSwKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobGx2bTo6 VHdpbmUoIm11bF8iKSArIGMwLT5nZXROYW1lKCkpICsgIl8iKSArIHYxLT5nZXROYW1lKCksCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnNlcnRC ZWZvcmUpOwotICAgICAgICAgICAgIGlmICh2MCAhPSBOVUxMICYmIHYxICE9IE5VTEwpCi0tICAg ICAgICAgICAgICAgIHZjID0gbGx2bTo6QmluYXJ5T3BlcmF0b3I6OkNyZWF0ZShsbHZtOjpJbnN0 cnVjdGlvbjo6TXVsLCB2MCwgdjEsIExMVk1HZXROYW1lKCJtdWwiLCB2MCwgdjEpLAotKyAgICAg ICAgICAgICAgICB2YyA9IGxsdm06OkJpbmFyeU9wZXJhdG9yOjpDcmVhdGUobGx2bTo6SW5zdHJ1 Y3Rpb246Ok11bCwgdjAsIHYxLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKChsbHZtOjpUd2luZSgibXVsXyIpICsgdjAtPmdldE5hbWUoKSkgKyAi XyIpICsgdjEtPmdldE5hbWUoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGluc2VydEJlZm9yZSk7Ci0gCi0gICAgICAgICAgICAgbGx2bTo6VmFs dWUgKnZhYiA9IE5VTEw7Ci0gICAgICAgICAgICAgaWYgKHZhICE9IE5VTEwgJiYgdmIgIT0gTlVM TCkKLS0gICAgICAgICAgICAgICAgdmFiID0gbGx2bTo6QmluYXJ5T3BlcmF0b3I6OkNyZWF0ZShs bHZtOjpJbnN0cnVjdGlvbjo6QWRkLCB2YSwgdmIsIExMVk1HZXROYW1lKCJhZGQiLCB2YSwgdmIp LAotKyAgICAgICAgICAgICAgICB2YWIgPSBsbHZtOjpCaW5hcnlPcGVyYXRvcjo6Q3JlYXRlKGxs dm06Okluc3RydWN0aW9uOjpBZGQsIHZhLCB2YiwKLSsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxsdm06OlR3aW5lKCJhZGRfIikgKyB2YS0+Z2V0 TmFtZSgpKSArICJfIikgKyB2Yi0+Z2V0TmFtZSgpLAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluc2VydEJlZm9yZSk7Ci0gICAgICAgICAgICAg ZWxzZSBpZiAodmEgIT0gTlVMTCkKLSAgICAgICAgICAgICAgICAgdmFiID0gdmE7Ci1AQCAtMTY3 NCw4ICsxNjg1LDkgQEAgc3RhdGljIHZvaWQgbEV4dHJhY3RDb25zdGFudE9mZnNldChsbHZtOjpW YWx1ZSAqdmVjLCBsbHZtOjpWYWx1ZSAqKmNvbnN0T2Zmc2V0LAotICAgICAgICAgICAgICAgICB2 YWIgPSB2YjsKLSAKLSAgICAgICAgICAgICBpZiAodmFiICE9IE5VTEwgJiYgdmMgIT0gTlVMTCkK LS0gICAgICAgICAgICAgICAgKnZhcmlhYmxlT2Zmc2V0ID0gbGx2bTo6QmluYXJ5T3BlcmF0b3I6 OkNyZWF0ZShsbHZtOjpJbnN0cnVjdGlvbjo6QWRkLCB2YWIsIHZjLAotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExMVk1HZXRO YW1lKCJhZGQiLCB2YWIsIHZjKSwgaW5zZXJ0QmVmb3JlKTsKLSsgICAgICAgICAgICAgICAgKnZh cmlhYmxlT2Zmc2V0ID0gbGx2bTo6QmluYXJ5T3BlcmF0b3I6OkNyZWF0ZSgKLSsgICAgICAgICAg ICAgICAgICAgIGxsdm06Okluc3RydWN0aW9uOjpBZGQsIHZhYiwgdmMsICgobGx2bTo6VHdpbmUo ImFkZF8iKSArIHZhYi0+Z2V0TmFtZSgpKSArICJfIikgKyB2Yy0+Z2V0TmFtZSgpLAotKyAgICAg ICAgICAgICAgICAgICAgaW5zZXJ0QmVmb3JlKTsKLSAgICAgICAgICAgICBlbHNlIGlmICh2YWIg IT0gTlVMTCkKLSAgICAgICAgICAgICAgICAgKnZhcmlhYmxlT2Zmc2V0ID0gdmFiOwotICAgICAg ICAgICAgIGVsc2UKLUBAIC0xOTQzLDcgKzE5NTUsNyBAQCBzdGF0aWMgYm9vbCBsT2Zmc2V0czMy Qml0U2FmZShsbHZtOjpWYWx1ZSAqKnZhcmlhYmxlT2Zmc2V0UHRyLCBsbHZtOjpWYWx1ZSAqKmNv bgotICAgICAgICAgICAgIC8vIGFsbCB6ZXJvcyAoaS5lLiBhIENvbnN0YW50QWdncmVnYXRlWmVy bywgYnV0IGp1c3QgaW4gY2FzZSwKLSAgICAgICAgICAgICAvLyBkbyB0aGUgbW9yZSBnZW5lcmFs IGNoZWNrIHdpdGggbFZlY3RvcklzMzJCaXRJbnRzKCkuCi0gICAgICAgICAgICAgdmFyaWFibGVP ZmZzZXQgPSBuZXcgbGx2bTo6VHJ1bmNJbnN0KHZhcmlhYmxlT2Zmc2V0LCBMTFZNVHlwZXM6Oklu dDMyVmVjdG9yVHlwZSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgTExWTUdldE5hbWUodmFyaWFibGVPZmZzZXQsICJfdHJ1bmMiKSwgaW5zZXJ0QmVm b3JlKTsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg bGx2bTo6VHdpbmUodmFyaWFibGVPZmZzZXQtPmdldE5hbWUoKSkgKyAiX3RydW5jIiwgaW5zZXJ0 QmVmb3JlKTsKLSAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAg IH0KLUBAIC0xOTUyLDcgKzE5NjQsNyBAQCBzdGF0aWMgYm9vbCBsT2Zmc2V0czMyQml0U2FmZShs bHZtOjpWYWx1ZSAqKnZhcmlhYmxlT2Zmc2V0UHRyLCBsbHZtOjpWYWx1ZSAqKmNvbgotICAgICAg ICAgaWYgKGxWZWN0b3JJczMyQml0SW50cyhjb25zdE9mZnNldCkpIHsKLSAgICAgICAgICAgICAv LyBUcnVuY2F0ZSB0aGVtIHNvIHdlIGhhdmUgYSAzMi1iaXQgdmVjdG9yIHR5cGUgZm9yIHRoZW0u Ci0gICAgICAgICAgICAgY29uc3RPZmZzZXQgPSBuZXcgbGx2bTo6VHJ1bmNJbnN0KGNvbnN0T2Zm c2V0LCBMTFZNVHlwZXM6OkludDMyVmVjdG9yVHlwZSwKLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgTExWTUdldE5hbWUoY29uc3RPZmZzZXQsICJfdHJ1bmMi KSwgaW5zZXJ0QmVmb3JlKTsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgbGx2bTo6VHdpbmUoY29uc3RPZmZzZXQtPmdldE5hbWUoKSkgKyAiX3RydW5jIiwg aW5zZXJ0QmVmb3JlKTsKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgLy8gRklYTUU6 IG90aGVyd2lzZSB3ZSBqdXN0IGFzc3VtZSB0aGF0IGFsbCBjb25zdGFudCBvZmZzZXRzCi0gICAg ICAgICAgICAgLy8gY2FuIGFjdHVhbGx5IGFsd2F5cyBmaXQgaW50byAzMi1iaXRzLi4uICAoVGhp cyBjb3VsZCBiZQotQEAgLTE5NjMsNyArMTk3NSw3IEBAIHN0YXRpYyBib29sIGxPZmZzZXRzMzJC aXRTYWZlKGxsdm06OlZhbHVlICoqdmFyaWFibGVPZmZzZXRQdHIsIGxsdm06OlZhbHVlICoqY29u Ci0gICAgICAgICAgICAgLy8gbGx2bTo6Q29uc3RhbnRGb2xkSW5zdHJ1Y3Rpb24oKSBkb2Vzbid0 IHNlZW0gdG8gYmUgZG9pbmcKLSAgICAgICAgICAgICAvLyBlbm91Z2ggZm9yIHVzIGluIHNvbWUg Y2FzZXMgaWYgd2UgY2FsbCBpdCBmcm9tIGhlcmUuCi0gICAgICAgICAgICAgY29uc3RPZmZzZXQg PSBuZXcgbGx2bTo6VHJ1bmNJbnN0KGNvbnN0T2Zmc2V0LCBMTFZNVHlwZXM6OkludDMyVmVjdG9y VHlwZSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTExW TUdldE5hbWUoY29uc3RPZmZzZXQsICJfdHJ1bmMiKSwgaW5zZXJ0QmVmb3JlKTsKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6VHdpbmUoY29uc3RP ZmZzZXQtPmdldE5hbWUoKSkgKyAiX3RydW5jIiwgaW5zZXJ0QmVmb3JlKTsKLSAgICAgICAgIH0K LSAgICAgfQotIAotQEAgLTIwMTIsOCArMjAyNCw4IEBAIHN0YXRpYyBib29sIGxPZmZzZXRzMzJC aXRTYWZlKGxsdm06OlZhbHVlICoqb2Zmc2V0UHRyLCBsbHZtOjpJbnN0cnVjdGlvbiAqaW5zZXJ0 Ci0gCi0gICAgICAgICAvLyBBbHRlcm5hdGl2ZWx5LCBvZmZzZXQgY291bGQgYmUgYSBzZXF1ZW5j ZSBvZiBhZGRzIHRlcm1pbmF0aW5nCi0gICAgICAgICAvLyBpbiBzYWZlIGNvbnN0YW50IHZlY3Rv cnMgb3IgYSBTRXh0LgotLSAgICAgICAgKm9mZnNldFB0ciA9Ci0tICAgICAgICAgICAgbmV3IGxs dm06OlRydW5jSW5zdChvZmZzZXQsIExMVk1UeXBlczo6SW50MzJWZWN0b3JUeXBlLCBMTFZNR2V0 TmFtZShvZmZzZXQsICJfdHJ1bmMiKSwgaW5zZXJ0QmVmb3JlKTsKLSsgICAgICAgICpvZmZzZXRQ dHIgPSBuZXcgbGx2bTo6VHJ1bmNJbnN0KG9mZnNldCwgTExWTVR5cGVzOjpJbnQzMlZlY3RvclR5 cGUsIGxsdm06OlR3aW5lKG9mZnNldC0+Z2V0TmFtZSgpKSArICJfdHJ1bmMiLAotKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5zZXJ0QmVmb3JlKTsKLSAgICAgICAg IHJldHVybiB0cnVlOwotICAgICB9IGVsc2UKLSAgICAgICAgIHJldHVybiBmYWxzZTsKLUBAIC0y MjI5LDcgKzIyNDEsOCBAQCBzdGF0aWMgYm9vbCBsR1NUb0dTQmFzZU9mZnNldHMobGx2bTo6Q2Fs bEluc3QgKmNhbGxJbnN0KSB7Ci0gICAgIH0KLSAgICAgLy8gQ2FzdCB0aGUgYmFzZSBwb2ludGVy IHRvIGEgdm9pZCAqLCBzaW5jZSB0aGF0J3Mgd2hhdCB0aGUKLSAgICAgLy8gX19wc2V1ZG9fKl9i YXNlX29mZnNldHNfKiBmdW5jdGlvbnMgd2FudC4KLS0gICAgYmFzZVB0ciA9IG5ldyBsbHZtOjpJ bnRUb1B0ckluc3QoYmFzZVB0ciwgTExWTVR5cGVzOjpWb2lkUG9pbnRlclR5cGUsIExMVk1HZXRO YW1lKGJhc2VQdHIsICJfMnZvaWQiKSwgY2FsbEluc3QpOwotKyAgICBiYXNlUHRyID0gbmV3IGxs dm06OkludFRvUHRySW5zdChiYXNlUHRyLCBMTFZNVHlwZXM6OlZvaWRQb2ludGVyVHlwZSwgbGx2 bTo6VHdpbmUoYmFzZVB0ci0+Z2V0TmFtZSgpKSArICJfMnZvaWQiLAotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBjYWxsSW5zdCk7Ci0gICAgIGxDb3B5TWV0YWRhdGEoYmFz ZVB0ciwgY2FsbEluc3QpOwotICAgICBsbHZtOjpGdW5jdGlvbiAqZ2F0aGVyU2NhdHRlckZ1bmMg PSBpbmZvLT5iYXNlT2Zmc2V0c0Z1bmM7Ci0gCi1AQCAtMjgwMyw3ICsyODE2LDcgQEAgc3RhdGlj IGJvb2wgbEdTVG9Mb2FkU3RvcmUobGx2bTo6Q2FsbEluc3QgKmNhbGxJbnN0KSB7Ci0gICAgICAg ICAgICAgICAgIGxDb3B5TWV0YWRhdGEocHRyLCBjYWxsSW5zdCk7Ci0gICAgICAgICAgICAgICAg IERlYnVnKHBvcywgIlRyYW5zZm9ybWVkIGdhdGhlciB0byB1bmFsaWduZWQgdmVjdG9yIGxvYWQh Iik7Ci0gICAgICAgICAgICAgICAgIGxsdm06Okluc3RydWN0aW9uICpuZXdDYWxsID0KLS0gICAg ICAgICAgICAgICAgICAgIGxDYWxsSW5zdChnYXRoZXJJbmZvLT5sb2FkTWFza2VkRnVuYywgcHRy LCBtYXNrLCBMTFZNR2V0TmFtZShwdHIsICJfbWFza2VkX2xvYWQiKSk7Ci0rICAgICAgICAgICAg ICAgICAgICBsQ2FsbEluc3QoZ2F0aGVySW5mby0+bG9hZE1hc2tlZEZ1bmMsIHB0ciwgbWFzaywg bGx2bTo6VHdpbmUocHRyLT5nZXROYW1lKCkpICsgIl9tYXNrZWRfbG9hZCIpOwotICAgICAgICAg ICAgICAgICBsQ29weU1ldGFkYXRhKG5ld0NhbGwsIGNhbGxJbnN0KTsKLSAgICAgICAgICAgICAg ICAgbGx2bTo6UmVwbGFjZUluc3RXaXRoSW5zdChjYWxsSW5zdCwgbmV3Q2FsbCk7Ci0gICAgICAg ICAgICAgICAgIHJldHVybiB0cnVlOwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9pc3BjL3BhdGNoZXMv bGx2bTEyLTAwNC5wYXRjaCBiL3NyY3BrZ3MvaXNwYy9wYXRjaGVzL2xsdm0xMi0wMDQucGF0Y2gK ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNhOTRkODQ0M2E1ZS4uMDAwMDAwMDAwMDAw Ci0tLSBhL3NyY3BrZ3MvaXNwYy9wYXRjaGVzL2xsdm0xMi0wMDQucGF0Y2gKKysrIC9kZXYvbnVs bApAQCAtMSwzNCArMCwwIEBACi1Gcm9tIGMwM2E1MTQyNDQ0NDc2YTFjYWE1YzJiYTdmYTJkOTJk Nzc5M2Q2ZjEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBEZWVwYWsgUmFqZW5kcmFr dW1hcmFuIDxkZWVwYWsucmFqZW5kcmFrdW1hcmFuQGludGVsLmNvbT4KLURhdGU6IE1vbiwgMjUg SmFuIDIwMjEgMDk6MjI6NDkgLTA4MDAKLVN1YmplY3Q6IFtQQVRDSF0gRml4aW5nIGJ1aWxkIG9u IGxsdm0gdHJ1bmsuCi0KLS0tLQotIHNyYy9jdHguY3BwIHwgNyArKystLS0tCi0gMSBmaWxlIGNo YW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL3Ny Yy9jdHguY3BwIGIvc3JjL2N0eC5jcHAKLWluZGV4IGRlZDUyNGI3MS4uYjYwZTZmZTg0IDEwMDY0 NAotLS0tIGEvc3JjL2N0eC5jcHAKLSsrKyBiL3NyYy9jdHguY3BwCi1AQCAtMTAyMCw4ICsxMDIw LDcgQEAgdm9pZCBGdW5jdGlvbkVtaXRDb250ZXh0OjpFbWl0Q2FzZUxhYmVsKGludCB2YWx1ZSwg Ym9vbCBjaGVja01hc2ssIFNvdXJjZVBvcyBwb3MKLSAgICAgbGx2bTo6QmFzaWNCbG9jayAqYmJD YXNlSW1wbCA9IE5VTEw7Ci0gICAgIGlmIChlbWl0R2VuWEhhcmR3YXJlTWFzaygpKSB7Ci0gICAg ICAgICAvLyBDcmVhdGUgYmFzaWMgYmxvY2sgd2l0aCBhY3R1YWwgY2FzZSBpbXBsZW1lbnRhdGlv bgotLSAgICAgICAgbGx2bTo6VHdpbmUgYmJOYW1lID0gbGx2bTo6VHdpbmUoYmJDYXNlLT5nZXRO YW1lKCkpICsgIl9pbXBsIjsKLS0gICAgICAgIGJiQ2FzZUltcGwgPSBDcmVhdGVCYXNpY0Jsb2Nr KGJiTmFtZSwgYmJDYXNlKTsKLSsgICAgICAgIGJiQ2FzZUltcGwgPSBDcmVhdGVCYXNpY0Jsb2Nr KGxsdm06OlR3aW5lKGJiQ2FzZS0+Z2V0TmFtZSgpKSArICJfaW1wbCIsIGJiQ2FzZSk7Ci0gICAg IH0KLSAjZW5kaWYKLSAKLUBAIC0zMTQyLDggKzMxNDEsOCBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rp b25FbWl0Q29udGV4dDo6QnJvYWRjYXN0VmFsdWUobGx2bTo6VmFsdWUgKnYsIGxsdm06OlR5cGUg KnZlYwotICAgICBsbHZtOjpWYWx1ZSAqdW5kZWYyID0gbGx2bTo6VW5kZWZWYWx1ZTo6Z2V0KHZl Y1R5cGUpOwotIAotICAgICAvLyBJbnNlcnRFbGVtZW50Ci0tICAgIGxsdm06OlR3aW5lIHR3ID0g bmFtZS5pc1RyaXZpYWxseUVtcHR5KCkgPyAobGx2bTo6VHdpbmUodi0+Z2V0TmFtZSgpKSArICJf YnJvYWRjYXN0IikgOiBuYW1lICsgbGx2bTo6VHdpbmUoIl9pbml0Iik7Ci0tICAgIGxsdm06OlZh bHVlICppbnNlcnQgPSBJbnNlcnRJbnN0KHVuZGVmMSwgdiwgMCwgdHcuc3RyKCkuY19zdHIoKSk7 Ci0rICAgIGxsdm06OlZhbHVlICppbnNlcnQgPQotKyAgICAgICAgSW5zZXJ0SW5zdCh1bmRlZjEs IHYsIDAsIG5hbWUuaXNUcml2aWFsbHlFbXB0eSgpID8gKGxsdm06OlR3aW5lKHYtPmdldE5hbWUo KSkgKyAiX2Jyb2FkY2FzdCIpIDogbmFtZSArICJfaW5pdCIpOwotIAotICAgICAvLyBTaHVmZmxl VmVjdG9yCi0gI2lmIElTUENfTExWTV9WRVJTSU9OIDwgSVNQQ19MTFZNXzExXzAKZGlmZiAtLWdp dCBhL3NyY3BrZ3MvaXNwYy9wYXRjaGVzL2xsdm0xMi0wMDUucGF0Y2ggYi9zcmNwa2dzL2lzcGMv cGF0Y2hlcy9sbHZtMTItMDA1LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBl M2U5NmIwMGFiZmEuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2lzcGMvcGF0Y2hlcy9sbHZt MTItMDA1LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMzcyICswLDAgQEAKLUZyb20gYzFkMGE1 MWJmODQxNmQ0MjE0NGRlOWUyYmRkNTk4MjVlYWVmZjFhYyBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKLUZyb206IEFyaW5hIE5lc2hseWFldmEgPGFyaW5hLm5lc2hseWFldmFAaW50ZWwuY29tPgot RGF0ZTogRnJpLCA4IEphbiAyMDIxIDE0OjEzOjQ5IC0wODAwCi1TdWJqZWN0OiBbUEFUQ0hdIExM Vk0gMTEgc3VwcG9ydCBmb3IgZ2VuIGNvZGUKLQotLS0tCi0gc3JjL2N0eC5jcHAgICAgICAgICAg ICAgICAgICAgICB8ICAxMyArKy0KLSBzcmMvZ2VuL0dsb2JhbHNMb2NhbGl6YXRpb24uY3BwIHwg ICA5ICstCi0gc3JjL29wdC5jcHAgICAgICAgICAgICAgICAgICAgICB8IDE0MyArKysrKysrKysr KysrKysrKysrKysrKystLS0tLS0tLQotIDMgZmlsZXMgY2hhbmdlZCwgMTI0IGluc2VydGlvbnMo KyksIDQxIGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvc3JjL2N0eC5jcHAgYi9zcmMvY3R4 LmNwcAotaW5kZXggYjYwZTZmZTg0Li4yYTcyZTY4MzcgMTAwNjQ0Ci0tLS0gYS9zcmMvY3R4LmNw cAotKysrIGIvc3JjL2N0eC5jcHAKLUBAIC0xLDUgKzEsNSBAQAotIC8qCi0tICBDb3B5cmlnaHQg KGMpIDIwMTAtMjAyMCwgSW50ZWwgQ29ycG9yYXRpb24KLSsgIENvcHlyaWdodCAoYykgMjAxMC0y MDIxLCBJbnRlbCBDb3Jwb3JhdGlvbgotICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAKLSAgIFJl ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig d2l0aG91dAotQEAgLTM2ODUsOCArMzY4NSwxNyBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0 Q29udGV4dDo6R2VuWFNpbWRDRlByZWRpY2F0ZShsbHZtOjpWYWx1ZSAqdmFsdWUsIGxsdm06Ogot ICAgICBBc3NlcnRQb3MoY3VycmVudFBvcywgbGx2bTo6aXNhPGxsdm06OlZlY3RvclR5cGU+KHZh bHVlLT5nZXRUeXBlKCkpKTsKLSAgICAgbGx2bTo6VmVjdG9yVHlwZSAqdnQgPSBsbHZtOjpkeW5f Y2FzdDxsbHZtOjpWZWN0b3JUeXBlPih2YWx1ZS0+Z2V0VHlwZSgpKTsKLSAgICAgaWYgKGRlZmF1 bHRzID09IE5VTEwpIHsKLS0gICAgICAgIGRlZmF1bHRzID0gbGx2bTo6Q29uc3RhbnRWZWN0b3I6 OmdldFNwbGF0KHZhbHVlLT5nZXRUeXBlKCktPmdldFZlY3Rvck51bUVsZW1lbnRzKCksCi0rI2lm IElTUENfTExWTV9WRVJTSU9OIDwgSVNQQ19MTFZNXzExXzAKLSsgICAgICAgIGRlZmF1bHRzID0g bGx2bTo6Q29uc3RhbnRWZWN0b3I6OmdldFNwbGF0KHZ0LT5nZXRWZWN0b3JOdW1FbGVtZW50cygp LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGx2 bTo6Q29uc3RhbnQ6OmdldE51bGxWYWx1ZSh2dC0+Z2V0RWxlbWVudFR5cGUoKSkpOwotKyNlbGlm IElTUENfTExWTV9WRVJTSU9OID09IElTUENfTExWTV8xMV8wCi0rICAgICAgICBkZWZhdWx0cyA9 IGxsdm06OkNvbnN0YW50VmVjdG9yOjpnZXRTcGxhdCh7c3RhdGljX2Nhc3Q8dW5zaWduZWQgaW50 Pih2dC0+Z2V0TnVtRWxlbWVudHMoKSksIGZhbHNlfSwKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06OkNvbnN0YW50OjpnZXROdWxsVmFsdWUo dnQtPmdldEVsZW1lbnRUeXBlKCkpKTsKLSsjZWxzZQotKyAgICAgICAgZGVmYXVsdHMgPSBsbHZt OjpDb25zdGFudFZlY3Rvcjo6Z2V0U3BsYXQoCi0rICAgICAgICAgICAgbGx2bTo6RWxlbWVudENv dW50OjpnZXQoc3RhdGljX2Nhc3Q8dW5zaWduZWQgaW50Pih2dC0+Z2V0TnVtRWxlbWVudHMoKSks IGZhbHNlKSwKLSsgICAgICAgICAgICBsbHZtOjpDb25zdGFudDo6Z2V0TnVsbFZhbHVlKHZ0LT5n ZXRFbGVtZW50VHlwZSgpKSk7Ci0rI2VuZGlmCi0gICAgIH0KLSAKLSAgICAgYXV0byBGbiA9IGxs dm06OkdlblhJbnRyaW5zaWM6OmdldEdlblhEZWNsYXJhdGlvbihtLT5tb2R1bGUsIGxsdm06Okdl blhJbnRyaW5zaWM6Omdlbnhfc2ltZGNmX3ByZWRpY2F0ZSwKLWRpZmYgLS1naXQgYS9zcmMvZ2Vu L0dsb2JhbHNMb2NhbGl6YXRpb24uY3BwIGIvc3JjL2dlbi9HbG9iYWxzTG9jYWxpemF0aW9uLmNw cAotaW5kZXggYTE3NmU5NDYyLi40MWYzYjAwZTIgMTAwNjQ0Ci0tLS0gYS9zcmMvZ2VuL0dsb2Jh bHNMb2NhbGl6YXRpb24uY3BwCi0rKysgYi9zcmMvZ2VuL0dsb2JhbHNMb2NhbGl6YXRpb24uY3Bw Ci1AQCAtMSw1ICsxLDUgQEAKLSAvKgotLSAgQ29weXJpZ2h0IChjKSAyMDE0LCAyMDE2LTIwMjAs IEludGVsIENvcnBvcmF0aW9uCi0rICBDb3B5cmlnaHQgKGMpIDIwMTQsIDIwMTYtMjAyMSwgSW50 ZWwgQ29ycG9yYXRpb24KLSAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gCi0gICBSZWRpc3RyaWJ1 dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK LUBAIC01Myw4ICs1MywxMCBAQAotICNpbmNsdWRlIDxsbHZtL0dlblhJbnRyaW5zaWNzL0dlblhJ bnRyT3B0cy5oPgotICNpbmNsdWRlIDxsbHZtL0dlblhJbnRyaW5zaWNzL0dlblhJbnRyaW5zaWNz Lmg+Ci0gI2luY2x1ZGUgPGxsdm0vR2VuWEludHJpbnNpY3MvR2VuWE1ldGFkYXRhLmg+Ci0tI2lu Y2x1ZGUgPGxsdm0vSVIvQ0ZHLmg+Ci0rI2lmIElTUENfTExWTV9WRVJTSU9OIDwgSVNQQ19MTFZN XzExXzAKLSAjaW5jbHVkZSA8bGx2bS9JUi9DYWxsU2l0ZS5oPgotKyNlbmRpZgotKyNpbmNsdWRl IDxsbHZtL0lSL0NGRy5oPgotICNpbmNsdWRlIDxsbHZtL0lSL0RlYnVnSW5mby5oPgotICNpbmNs dWRlIDxsbHZtL0lSL0RvbWluYXRvcnMuaD4KLSAjaW5jbHVkZSA8bGx2bS9JUi9GdW5jdGlvbi5o PgotQEAgLTQ3MCw3ICs0NzIsOCBAQCB2b2lkIEdsb2JhbHNMb2NhbGl6YXRpb246OkxvY2FsaXpl R2xvYmFscyhMb2NhbGl6YXRpb25JbmZvICZMSSkgewotICAgICAgICAgSW5zdHJ1Y3Rpb24gJkZp cnN0SSA9ICpGbi0+Z2V0RW50cnlCbG9jaygpLmJlZ2luKCk7Ci0gICAgICAgICBUeXBlICpFbGVt VHkgPSBHVi0+Z2V0VHlwZSgpLT5nZXRFbGVtZW50VHlwZSgpOwotICAgICAgICAgQWxsb2NhSW5z dCAqQWxsb2NhID0gbmV3IEFsbG9jYUluc3QoRWxlbVR5LCAwLCBHVi0+Z2V0TmFtZSgpICsgIi5s b2NhbCIsICZGaXJzdEkpOwotLSAgICAgICAgQWxsb2NhLT5zZXRBbGlnbm1lbnQobGx2bTo6TWF5 YmVBbGlnbihHVi0+Z2V0QWxpZ25tZW50KCkpKTsKLSsgICAgICAgIEFsbG9jYS0+c2V0QWxpZ25t ZW50KGxsdm06Ok1heWJlQWxpZ24oR1YtPmdldEFsaWdubWVudCgpKS52YWx1ZU9yT25lKCkpOwot KwotICAgICAgICAgaWYgKCFpc2E8VW5kZWZWYWx1ZT4oR1YtPmdldEluaXRpYWxpemVyKCkpKQot ICAgICAgICAgICAgIG5ldyBTdG9yZUluc3QoR1YtPmdldEluaXRpYWxpemVyKCksIEFsbG9jYSwg JkZpcnN0SSk7Ci0gCi1kaWZmIC0tZ2l0IGEvc3JjL29wdC5jcHAgYi9zcmMvb3B0LmNwcAotaW5k ZXggZDU4ZDc3ZjczLi4xNzg5Yjg0NzYgMTAwNjQ0Ci0tLS0gYS9zcmMvb3B0LmNwcAotKysrIGIv c3JjL29wdC5jcHAKLUBAIC0yODk5LDE1ICsyODk5LDE3IEBAIHN0YXRpYyBsbHZtOjpGdW5jdGlv biAqbEdlblhNYXNrZWRJbnQ4SW5zdChsbHZtOjpJbnN0cnVjdGlvbiAqaW5zdCwgYm9vbCBpc1N0 b3JlCi0gc3RhdGljIGxsdm06OkNhbGxJbnN0ICpsR2VuWFN0b3JlSW5zdChsbHZtOjpWYWx1ZSAq dmFsLCBsbHZtOjpWYWx1ZSAqcHRyLCBsbHZtOjpJbnN0cnVjdGlvbiAqaW5zdCkgewotICAgICBB c3NlcnQoZy0+dGFyZ2V0LT5pc0dlblhUYXJnZXQoKSk7Ci0gICAgIEFzc2VydChsbHZtOjppc2E8 bGx2bTo6VmVjdG9yVHlwZT4odmFsLT5nZXRUeXBlKCkpKTsKLS0gICAgQXNzZXJ0KGxsdm06Omlz UG93ZXJPZjJfMzIodmFsLT5nZXRUeXBlKCktPmdldFZlY3Rvck51bUVsZW1lbnRzKCkpKTsKLS0g ICAgQXNzZXJ0KHZhbC0+Z2V0VHlwZSgpLT5nZXRQcmltaXRpdmVTaXplSW5CaXRzKCkgLyA4IDw9 IDggKiBPV09SRCk7Ci0rCi0rICAgIGxsdm06OlZlY3RvclR5cGUgKnZhbFZlY1R5cGUgPSBsbHZt OjpkeW5fY2FzdDxsbHZtOjpWZWN0b3JUeXBlPih2YWwtPmdldFR5cGUoKSk7Ci0rICAgIEFzc2Vy dChsbHZtOjppc1Bvd2VyT2YyXzMyKHZhbFZlY1R5cGUtPmdldE51bUVsZW1lbnRzKCkpKTsKLSsg ICAgQXNzZXJ0KHZhbFZlY1R5cGUtPmdldFByaW1pdGl2ZVNpemVJbkJpdHMoKSAvIDggPD0gOCAq IE9XT1JEKTsKLSAKLSAgICAgLy8gVGhlIGRhdGEgd3JpdGUgb2Ygc3ZtIHN0b3JlIG11c3QgaGF2 ZSBhIHNpemUgdGhhdCBpcyBhIHBvd2VyIG9mIHR3byBmcm9tIDE2IHRvIDEyOAotICAgICAvLyBi eXRlcy4gSG93ZXZlciBmb3IgaW50OCB0eXBlIGFuZCBzaW1kIHdpZHRoID0gOCwgdGhlIGRhdGEg d3JpdGUgc2l6ZSBpcyA4LgotICAgICAvLyBTbyB3ZSB1c2UgbWFza2VkIHN0b3JlIGZ1bmN0aW9u IGhlcmUgaW5zdGVhZCBvZiBzdm0gc3RvcmUgd2hpY2ggcHJvY2VzcyBpbnQ4IHR5cGUKLSAgICAg Ly8gY29ycmVjdGx5LgotLSAgICBpZiAodmFsLT5nZXRUeXBlKCktPmdldFByaW1pdGl2ZVNpemVJ bkJpdHMoKSAvIDggPCAxNikgewotLSAgICAgICAgQXNzZXJ0KHZhbC0+Z2V0VHlwZSgpLT5nZXRT Y2FsYXJUeXBlKCkgPT0gTExWTVR5cGVzOjpJbnQ4VHlwZSk7Ci0rICAgIGlmICh2YWxWZWNUeXBl LT5nZXRQcmltaXRpdmVTaXplSW5CaXRzKCkgLyA4IDwgMTYpIHsKLSsgICAgICAgIEFzc2VydCh2 YWxWZWNUeXBlLT5nZXRTY2FsYXJUeXBlKCkgPT0gTExWTVR5cGVzOjpJbnQ4VHlwZSk7Ci0gICAg ICAgICBpZiAobGx2bTo6RnVuY3Rpb24gKm1hc2tlZEZ1bmMgPSBsR2VuWE1hc2tlZEludDhJbnN0 KGluc3QsIHRydWUpKQotICAgICAgICAgICAgIHJldHVybiBsbHZtOjpkeW5fY2FzdDxsbHZtOjpD YWxsSW5zdD4obENhbGxJbnN0KG1hc2tlZEZ1bmMsIHB0ciwgdmFsLCBMTFZNTWFza0FsbE9uLCAi IikpOwotICAgICAgICAgZWxzZSB7Ci1AQCAtMjkyMywxNSArMjkyNSwxNyBAQCBzdGF0aWMgbGx2 bTo6Q2FsbEluc3QgKmxHZW5YU3RvcmVJbnN0KGxsdm06OlZhbHVlICp2YWwsIGxsdm06OlZhbHVl ICpwdHIsIGxsdm06OgotIAotIHN0YXRpYyBsbHZtOjpDYWxsSW5zdCAqbEdlblhMb2FkSW5zdChs bHZtOjpWYWx1ZSAqcHRyLCBsbHZtOjpUeXBlICpyZXRUeXBlLCBsbHZtOjpJbnN0cnVjdGlvbiAq aW5zdCkgewotICAgICBBc3NlcnQobGx2bTo6aXNhPGxsdm06OlZlY3RvclR5cGU+KHJldFR5cGUp KTsKLS0gICAgQXNzZXJ0KGxsdm06OmlzUG93ZXJPZjJfMzIocmV0VHlwZS0+Z2V0VmVjdG9yTnVt RWxlbWVudHMoKSkpOwotLSAgICBBc3NlcnQocmV0VHlwZS0+Z2V0UHJpbWl0aXZlU2l6ZUluQml0 cygpKTsKLS0gICAgQXNzZXJ0KHJldFR5cGUtPmdldFByaW1pdGl2ZVNpemVJbkJpdHMoKSAvIDgg PD0gOCAqIE9XT1JEKTsKLSsKLSsgICAgbGx2bTo6VmVjdG9yVHlwZSAqcmV0VmVjVHlwZSA9IGxs dm06OmR5bl9jYXN0PGxsdm06OlZlY3RvclR5cGU+KHJldFR5cGUpOwotKyAgICBBc3NlcnQobGx2 bTo6aXNQb3dlck9mMl8zMihyZXRWZWNUeXBlLT5nZXROdW1FbGVtZW50cygpKSk7Ci0rICAgIEFz c2VydChyZXRWZWNUeXBlLT5nZXRQcmltaXRpdmVTaXplSW5CaXRzKCkpOwotKyAgICBBc3NlcnQo cmV0VmVjVHlwZS0+Z2V0UHJpbWl0aXZlU2l6ZUluQml0cygpIC8gOCA8PSA4ICogT1dPUkQpOwot ICAgICAvLyBUaGUgZGF0YSByZWFkIG9mIHN2bSBsb2FkIG11c3QgaGF2ZSBhIHNpemUgdGhhdCBp cyBhIHBvd2VyIG9mIHR3byBmcm9tIDE2IHRvIDEyOAotICAgICAvLyBieXRlcy4gSG93ZXZlciBm b3IgaW50OCB0eXBlIGFuZCBzaW1kIHdpZHRoID0gOCwgdGhlIGRhdGEgcmVhZCBzaXplIGlzIDgu Ci0gICAgIC8vIFNvIHdlIHVzZSBtYXNrZWQgbG9hZCBmdW5jdGlvbiBoZXJlIGluc3RlYWQgb2Yg c3ZtIGxvYWQgd2hpY2ggcHJvY2VzcyBpbnQ4IHR5cGUKLSAgICAgLy8gY29ycmVjdGx5LgotLSAg ICBpZiAocmV0VHlwZS0+Z2V0UHJpbWl0aXZlU2l6ZUluQml0cygpIC8gOCA8IDE2KSB7Ci0tICAg ICAgICBBc3NlcnQocmV0VHlwZS0+Z2V0U2NhbGFyVHlwZSgpID09IExMVk1UeXBlczo6SW50OFR5 cGUpOwotKyAgICBpZiAocmV0VmVjVHlwZS0+Z2V0UHJpbWl0aXZlU2l6ZUluQml0cygpIC8gOCA8 IDE2KSB7Ci0rICAgICAgICBBc3NlcnQocmV0VmVjVHlwZS0+Z2V0U2NhbGFyVHlwZSgpID09IExM Vk1UeXBlczo6SW50OFR5cGUpOwotICAgICAgICAgaWYgKGxsdm06OkZ1bmN0aW9uICptYXNrZWRG dW5jID0gbEdlblhNYXNrZWRJbnQ4SW5zdChpbnN0LCBmYWxzZSkpCi0gICAgICAgICAgICAgcmV0 dXJuIGxsdm06OmR5bl9jYXN0PGxsdm06OkNhbGxJbnN0PihsQ2FsbEluc3QobWFza2VkRnVuYywg cHRyLCBMTFZNTWFza0FsbE9uLCAiIikpOwotICAgICAgICAgZWxzZSB7Ci1AQCAtNTYyMiwxNSAr NTYyNiwyNCBAQCBzdGF0aWMgYm9vbCBsVmVjdG9yaXplR0VQcyhsbHZtOjpWYWx1ZSAqcHRyLCBz dGQ6OnZlY3RvcjxQdHJVc2U+ICZwdHJVc2VzLCBzdGQ6OgotICAgICAgICAgbGx2bTo6UHRyVG9J bnRJbnN0ICpwdHJUb0ludCA9Ci0gICAgICAgICAgICAgbmV3IGxsdm06OlB0clRvSW50SW5zdChw dHIsIExMVk1UeXBlczo6SW50NjRUeXBlLCAidmVjdG9yaXplZF9wdHJ0b2ludCIsIGluc2VydEJl Zm9yZSk7Ci0gICAgICAgICBsbHZtOjpJbnN0cnVjdGlvbiAqYWRkciA9IGxsdm06OkJpbmFyeU9w ZXJhdG9yOjpDcmVhdGVBZGQocHRyVG9JbnQsIG9mZnNldCwgInZlY3Rvcml6ZWRfYWRkcmVzcyIs IGluc2VydEJlZm9yZSk7Ci0rI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMV8w Ci0rICAgICAgICBsbHZtOjpUeXBlICpyZXRUeXBlID0gbGx2bTo6Rml4ZWRWZWN0b3JUeXBlOjpn ZXQoc2NhbGFyX3R5cGUsIHJlcVNpemUgLyB0X3NpemUpOwotKyNlbHNlCi0gICAgICAgICBsbHZt OjpUeXBlICpyZXRUeXBlID0gbGx2bTo6VmVjdG9yVHlwZTo6Z2V0KHNjYWxhcl90eXBlLCByZXFT aXplIC8gdF9zaXplKTsKLSsjZW5kaWYKLSAgICAgICAgIGxsdm06OkZ1bmN0aW9uICpmbiA9IGxs dm06OkdlblhJbnRyaW5zaWM6OmdldEdlblhEZWNsYXJhdGlvbigKLSAgICAgICAgICAgICBtLT5t b2R1bGUsIGxsdm06OkdlblhJbnRyaW5zaWM6Omdlbnhfc3ZtX2Jsb2NrX2xkX3VuYWxpZ25lZCwg e3JldFR5cGUsIGFkZHItPmdldFR5cGUoKX0pOwotICAgICAgICAgbGx2bTo6SW5zdHJ1Y3Rpb24g KmxkID0gbGx2bTo6Q2FsbEluc3Q6OkNyZWF0ZShmbiwge2FkZHJ9LCAidmVjdG9yaXplZF9sZCIs IGluc2VydEJlZm9yZSk7Ci0gCi0gICAgICAgICBpZiAobG9hZGluZ1B0cikgewotICAgICAgICAg ICAgIC8vIENhc3QgaW50IHRvIHB0ciB2aWEgaW50dG9wdHIKLSsjaWYgSVNQQ19MTFZNX1ZFUlNJ T04gPj0gSVNQQ19MTFZNXzExXzAKLSsgICAgICAgICAgICBsZCA9IG5ldyBsbHZtOjpJbnRUb1B0 ckluc3QobGQsIGxsdm06OkZpeGVkVmVjdG9yVHlwZTo6Z2V0KG9yaWdpbmFsVHlwZSwgcmVxU2l6 ZSAvIHRfc2l6ZSksCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ2 ZWN0b3JpemVkX2ludHRvcHRyIiwgaW5zZXJ0QmVmb3JlKTsKLSsjZWxzZQotICAgICAgICAgICAg IGxkID0gbmV3IGxsdm06OkludFRvUHRySW5zdChsZCwgbGx2bTo6VmVjdG9yVHlwZTo6Z2V0KG9y aWdpbmFsVHlwZSwgcmVxU2l6ZSAvIHRfc2l6ZSksCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICJ2ZWN0b3JpemVkX2ludHRvcHRyIiwgaW5zZXJ0QmVmb3JlKTsKLSsj ZW5kaWYKLSAgICAgICAgIH0KLSAKLSAgICAgICAgIC8vIFNjYWxhciBleHRyYWN0cyBmb3IgYWxs IGxvYWRlZCBlbGVtZW50cwotQEAgLTYxNjAsMTkgKzYxNzMsMzQgQEAgYm9vbCBSZXBsYWNlTExW TUludHJpbnNpY3M6OnJ1bk9uQmFzaWNCbG9jayhsbHZtOjpCYXNpY0Jsb2NrICZiYikgewotICAg ICAgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmluc3QgPSAmKkk7Ci0gICAgICAgICBpZiAobGx2bTo6 Q2FsbEluc3QgKmNpID0gbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6Q2FsbEluc3Q+KGluc3QpKSB7Ci0g ICAgICAgICAgICAgbGx2bTo6RnVuY3Rpb24gKmZ1bmMgPSBjaS0+Z2V0Q2FsbGVkRnVuY3Rpb24o KTsKLS0gICAgICAgICAgICBpZiAoZnVuYyAmJiBmdW5jLT5nZXROYW1lKCkgPT0gImxsdm0udHJh cCIpIHsKLSsgICAgICAgICAgICBpZiAoZnVuYyAmJiBmdW5jLT5nZXROYW1lKCkuZXF1YWxzKCJs bHZtLnRyYXAiKSkgewotICAgICAgICAgICAgICAgICBsbHZtOjpUeXBlICphcmdUeXBlc1tdID0g e0xMVk1UeXBlczo6SW50MVZlY3RvclR5cGUsIExMVk1UeXBlczo6SW50MTZWZWN0b3JUeXBlfTsK LSAgICAgICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24gb2YgcGFyYW1ldGVycyBmb3IgZ2VueF9y YXdfc2VuZF9ub3Jlc3VsdCBjYW4gYmUgZm91bmQgaW4gdGFyZ2V0LWdlbngubGwKLSAgICAgICAg ICAgICAgICAgYXV0byBGbiA9ICtsbHZtOjpHZW5YSW50cmluc2ljOjpnZXRHZW5YRGVjbGFyYXRp b24oCi0gICAgICAgICAgICAgICAgICAgICBtLT5tb2R1bGUsIGxsdm06OkdlblhJbnRyaW5zaWM6 OmdlbnhfcmF3X3NlbmRfbm9yZXN1bHQsIGFyZ1R5cGVzKTsKLSAgICAgICAgICAgICAgICAgbGx2 bTo6U21hbGxWZWN0b3I8bGx2bTo6VmFsdWUgKiwgOD4gQXJnczsKLSAgICAgICAgICAgICAgICAg QXJncy5wdXNoX2JhY2sobGx2bTo6Q29uc3RhbnRJbnQ6OmdldChMTFZNVHlwZXM6OkludDMyVHlw ZSwgMCkpOwotLSAgICAgICAgICAgICAgICBBcmdzLnB1c2hfYmFjayhsbHZtOjpDb25zdGFudFZl Y3Rvcjo6Z2V0U3BsYXQoZy0+dGFyZ2V0LT5nZXROYXRpdmVWZWN0b3JXaWR0aCgpLAotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg bGx2bTo6Q29uc3RhbnRJbnQ6OmdldFRydWUoKmctPmN0eCkpKTsKLSsgICAgICAgICAgICAgICAg QXJncy5wdXNoX2JhY2sobGx2bTo6Q29uc3RhbnRWZWN0b3I6OmdldFNwbGF0KAotKyNpZiBJU1BD X0xMVk1fVkVSU0lPTiA8IElTUENfTExWTV8xMV8wCi0rICAgICAgICAgICAgICAgICAgICBnLT50 YXJnZXQtPmdldE5hdGl2ZVZlY3RvcldpZHRoKCksCi0rI2VsaWYgSVNQQ19MTFZNX1ZFUlNJT04g PT0gSVNQQ19MTFZNXzExXzAKLSsgICAgICAgICAgICAgICAgICAgIHtzdGF0aWNfY2FzdDx1bnNp Z25lZCBpbnQ+KGctPnRhcmdldC0+Z2V0TmF0aXZlVmVjdG9yV2lkdGgoKSksIGZhbHNlfSwKLSsj ZWxzZSAvLyBMTFZNIDEyLjArCi0rICAgICAgICAgICAgICAgICAgICBsbHZtOjpFbGVtZW50Q291 bnQ6OmdldChzdGF0aWNfY2FzdDx1bnNpZ25lZCBpbnQ+KGctPnRhcmdldC0+Z2V0TmF0aXZlVmVj dG9yV2lkdGgoKSksIGZhbHNlKSwKLSsjZW5kaWYKLSsgICAgICAgICAgICAgICAgICAgIGxsdm06 OkNvbnN0YW50SW50OjpnZXRUcnVlKCpnLT5jdHgpKSk7Ci0rCi0gICAgICAgICAgICAgICAgIEFy Z3MucHVzaF9iYWNrKGxsdm06OkNvbnN0YW50SW50OjpnZXQoTExWTVR5cGVzOjpJbnQzMlR5cGUs IDM5KSk7Ci0gICAgICAgICAgICAgICAgIEFyZ3MucHVzaF9iYWNrKGxsdm06OkNvbnN0YW50SW50 OjpnZXQoTExWTVR5cGVzOjpJbnQzMlR5cGUsIDMzNTU0NDQ4KSk7Ci0gICAgICAgICAgICAgICAg IGxsdm06OlZhbHVlICp6ZXJvTWFzayA9IGxsdm06OkNvbnN0YW50VmVjdG9yOjpnZXRTcGxhdCgK LS0gICAgICAgICAgICAgICAgICAgIGctPnRhcmdldC0+Z2V0TmF0aXZlVmVjdG9yV2lkdGgoKSwg bGx2bTo6Q29uc3RhbnQ6OmdldE51bGxWYWx1ZShsbHZtOjpUeXBlOjpnZXRJbnQxNlR5KCpnLT5j dHgpKSk7Ci0rI2lmIElTUENfTExWTV9WRVJTSU9OIDwgSVNQQ19MTFZNXzExXzAKLSsgICAgICAg ICAgICAgICAgICAgIGctPnRhcmdldC0+Z2V0TmF0aXZlVmVjdG9yV2lkdGgoKSwKLSsjZWxpZiBJ U1BDX0xMVk1fVkVSU0lPTiA9PSBJU1BDX0xMVk1fMTFfMAotKyAgICAgICAgICAgICAgICAgICAg e3N0YXRpY19jYXN0PHVuc2lnbmVkIGludD4oZy0+dGFyZ2V0LT5nZXROYXRpdmVWZWN0b3JXaWR0 aCgpKSwgZmFsc2V9LAotKyNlbHNlIC8vIExMVk0gMTIuMCsKLSsgICAgICAgICAgICAgICAgICAg IGxsdm06OkVsZW1lbnRDb3VudDo6Z2V0KHN0YXRpY19jYXN0PHVuc2lnbmVkIGludD4oZy0+dGFy Z2V0LT5nZXROYXRpdmVWZWN0b3JXaWR0aCgpKSwgZmFsc2UpLAotKyNlbmRpZgotKyAgICAgICAg ICAgICAgICAgICAgbGx2bTo6Q29uc3RhbnQ6OmdldE51bGxWYWx1ZShsbHZtOjpUeXBlOjpnZXRJ bnQxNlR5KCpnLT5jdHgpKSk7Ci0gICAgICAgICAgICAgICAgIEFyZ3MucHVzaF9iYWNrKHplcm9N YXNrKTsKLSAKLSAgICAgICAgICAgICAgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKm5ld0luc3QgPSBs bHZtOjpDYWxsSW5zdDo6Q3JlYXRlKEZuLCBBcmdzLCBjaS0+Z2V0TmFtZSgpKTsKLUBAIC02MTgx LDcgKzYyMDksNyBAQCBib29sIFJlcGxhY2VMTFZNSW50cmluc2ljczo6cnVuT25CYXNpY0Jsb2Nr KGxsdm06OkJhc2ljQmxvY2sgJmJiKSB7Ci0gICAgICAgICAgICAgICAgICAgICBtb2RpZmllZEFu eSA9IHRydWU7Ci0gICAgICAgICAgICAgICAgICAgICBnb3RvIHJlc3RhcnQ7Ci0gICAgICAgICAg ICAgICAgIH0KLS0gICAgICAgICAgICB9IGVsc2UgaWYgKGZ1bmMgJiYgZnVuYy0+Z2V0TmFtZSgp ID09ICJsbHZtLmFzc3VtZSIpIHsKLSsgICAgICAgICAgICB9IGVsc2UgaWYgKGZ1bmMgJiYgZnVu Yy0+Z2V0TmFtZSgpLmVxdWFscygibGx2bS5hc3N1bWUiKSkgewotICAgICAgICAgICAgICAgICBj aS0+ZXJhc2VGcm9tUGFyZW50KCk7Ci0gICAgICAgICAgICAgICAgIG1vZGlmaWVkQW55ID0gdHJ1 ZTsKLSAgICAgICAgICAgICAgICAgZ290byByZXN0YXJ0OwotQEAgLTYzMzUsNyArNjM2Myw3IEBA IGJvb2wgQ2hlY2tVbnN1cHBvcnRlZEluc3RzOjpydW5PbkJhc2ljQmxvY2sobGx2bTo6QmFzaWNC bG9jayAmYmIpIHsKLSAgICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICAgZm9y IChpbnQgaSA9IDA7IGkgPCB1bnN1cHBvcnRlZEZ1bmNzLnNpemUoKTsgaSsrKSB7Ci0gICAgICAg ICAgICAgICAgIHN0ZDo6c21hdGNoIG1hdGNoOwotLSAgICAgICAgICAgICAgICBzdGQ6OnN0cmlu ZyBmdW5jTmFtZSA9IGZ1bmMtPmdldE5hbWUoKTsKLSsgICAgICAgICAgICAgICAgc3RkOjpzdHJp bmcgZnVuY05hbWUgPSBmdW5jLT5nZXROYW1lKCkuc3RyKCk7Ci0gICAgICAgICAgICAgICAgIGlm IChzdGQ6OnJlZ2V4X21hdGNoKGZ1bmNOYW1lLCBtYXRjaCwgdW5zdXBwb3J0ZWRGdW5jc1tpXSkp IHsKLSAgICAgICAgICAgICAgICAgICAgIC8vIFdlIGZvdW5kIHVuc3VwcG9ydGVkIGZ1bmN0aW9u LiBHZW5lcmF0ZSBlcnJvciBhbmQgc3RvcCBjb21waWxhdGlvbi4KLSAgICAgICAgICAgICAgICAg ICAgIFNvdXJjZVBvcyBwb3M7Ci1AQCAtNjQxOCwxMiArNjQ0NiwxNCBAQCBib29sIE1hbmdsZU9w ZW5DTEJ1aWx0aW5zOjpydW5PbkJhc2ljQmxvY2sobGx2bTo6QmFzaWNCbG9jayAmYmIpIHsKLSAg ICAgICAgICAgICBpZiAoZnVuYy0+Z2V0TmFtZSgpLnN0YXJ0c3dpdGgoIl9fc3BpcnZfb2NsIikp IHsKLSAgICAgICAgICAgICAgICAgc3RkOjpzdHJpbmcgbWFuZ2xlZE5hbWU7Ci0gICAgICAgICAg ICAgICAgIGxsdm06OlR5cGUgKnJldFR5cGUgPSBmdW5jLT5nZXRSZXR1cm5UeXBlKCk7Ci0tICAg ICAgICAgICAgICAgIHN0ZDo6c3RyaW5nIGZ1bmNOYW1lID0gZnVuYy0+Z2V0TmFtZSgpOwotKyAg ICAgICAgICAgICAgICBzdGQ6OnN0cmluZyBmdW5jTmFtZSA9IGZ1bmMtPmdldE5hbWUoKS5zdHIo KTsKLSAgICAgICAgICAgICAgICAgc3RkOjp2ZWN0b3I8bGx2bTo6VHlwZSAqPiBBcmdUeTsKLSAg ICAgICAgICAgICAgICAgLy8gc3BpcnYgT3BlbkNMIGJ1aWx0aW5zIGFyZSB1c2VkIGZvciBkb3Vi bGUgdHlwZXMgb25seQotLSAgICAgICAgICAgICAgICBBc3NlcnQocmV0VHlwZS0+aXNWZWN0b3JU eSgpICYmIHJldFR5cGUtPmdldFZlY3RvckVsZW1lbnRUeXBlKCktPmlzRG91YmxlVHkoKSB8fAot KyAgICAgICAgICAgICAgICBBc3NlcnQocmV0VHlwZS0+aXNWZWN0b3JUeSgpICYmCi0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6VmVjdG9yVHlwZT4ocmV0 VHlwZSktPmdldEVsZW1lbnRUeXBlKCktPmlzRG91YmxlVHkoKSB8fAotICAgICAgICAgICAgICAg ICAgICAgICAgcmV0VHlwZS0+aXNTaW5nbGVWYWx1ZVR5cGUoKSAmJiByZXRUeXBlLT5pc0RvdWJs ZVR5KCkpOwotLSAgICAgICAgICAgICAgICBpZiAocmV0VHlwZS0+aXNWZWN0b3JUeSgpICYmIHJl dFR5cGUtPmdldFZlY3RvckVsZW1lbnRUeXBlKCktPmlzRG91YmxlVHkoKSkgewotKyAgICAgICAg ICAgICAgICBpZiAocmV0VHlwZS0+aXNWZWN0b3JUeSgpICYmCi0rICAgICAgICAgICAgICAgICAg ICBsbHZtOjpkeW5fY2FzdDxsbHZtOjpWZWN0b3JUeXBlPihyZXRUeXBlKS0+Z2V0RWxlbWVudFR5 cGUoKS0+aXNEb3VibGVUeSgpKSB7Ci0gICAgICAgICAgICAgICAgICAgICBBcmdUeS5wdXNoX2Jh Y2soTExWTVR5cGVzOjpEb3VibGVWZWN0b3JUeXBlKTsKLSAgICAgICAgICAgICAgICAgICAgIC8v IF9EdldJRFRIIHN1ZmZpeCBpcyB1c2VkIGluIHRhcmdldCBmaWxlIHRvIGRpZmZlcmVudGlhdGUg c2NhbGFyCi0gICAgICAgICAgICAgICAgICAgICAvLyBhbmQgdmVjdG9yIHZlcnNpb25zIG9mIGlu dHJpbnNpY3MuIEhlcmUgd2UgcmVtb3ZlIHRoaXMKLUBAIC02NTExLDggKzY1NDEsMTUgQEAgbGx2 bTo6VmFsdWUgKkZpeEFkZHJlc3NTcGFjZTo6Y2FsY3VsYXRlR2F0aGVyU2NhdHRlckFkZHJlc3Mo bGx2bTo6VmFsdWUgKlB0ciwgbGwKLSAKLSAgICAgLy8gQ2FzdCBvZmZzZXRzIHRvIGludDY0Ci0g ICAgIE9mZnNldHMgPSBuZXcgbGx2bTo6WkV4dEluc3QoCi0rI2lmIElTUENfTExWTV9WRVJTSU9O ID49IElTUENfTExWTV8xMV8wCi0rICAgICAgICBPZmZzZXRzLAotKyAgICAgICAgbGx2bTo6Rml4 ZWRWZWN0b3JUeXBlOjpnZXQoTExWTVR5cGVzOjpJbnQ2NFR5cGUsCi0rICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBsbHZtOjpkeW5fY2FzdDxsbHZtOjpWZWN0b3JUeXBlPihPZmZz ZXRzLT5nZXRUeXBlKCkpLT5nZXROdW1FbGVtZW50cygpKSwKLSsgICAgICAgICJzdm1fb2Zmc2V0 X3pleHQiLCBJbnNlcnRCZWZvcmUpOwotKyNlbHNlCi0gICAgICAgICBPZmZzZXRzLCBsbHZtOjpW ZWN0b3JUeXBlOjpnZXQoTExWTVR5cGVzOjpJbnQ2NFR5cGUsIE9mZnNldHMtPmdldFR5cGUoKS0+ Z2V0VmVjdG9yTnVtRWxlbWVudHMoKSksCi0gICAgICAgICAic3ZtX29mZnNldF96ZXh0IiwgSW5z ZXJ0QmVmb3JlKTsKLSsjZW5kaWYKLSAKLSAgICAgaWYgKCFsbHZtOjppc2E8bGx2bTo6Q29uc3Rh bnRQb2ludGVyTnVsbD4oUHRyKSkgewotICAgICAgICAgLy8gQ2FzdCBwdHIgdG8gaW50NjQKLUBA IC02NTIwLDEzICs2NTU3LDMxIEBAIGxsdm06OlZhbHVlICpGaXhBZGRyZXNzU3BhY2U6OmNhbGN1 bGF0ZUdhdGhlclNjYXR0ZXJBZGRyZXNzKGxsdm06OlZhbHVlICpQdHIsIGxsCi0gCi0gICAgICAg ICAvLyBWZWN0b3JpemUgcHRyCi0gICAgICAgICBsbHZtOjpWYWx1ZSAqdW5kZWZJbnNlcnRWYWx1 ZSA9Ci0rI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMV8wCi0rICAgICAgICAg ICAgbGx2bTo6VW5kZWZWYWx1ZTo6Z2V0KGxsdm06OkZpeGVkVmVjdG9yVHlwZTo6Z2V0KAotKyAg ICAgICAgICAgICAgICBMTFZNVHlwZXM6OkludDY0VHlwZSwgbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6 VmVjdG9yVHlwZT4oYWRkcmVzc1R5cGUpLT5nZXROdW1FbGVtZW50cygpKSk7Ci0rI2Vsc2UKLSAg ICAgICAgICAgICBsbHZtOjpVbmRlZlZhbHVlOjpnZXQobGx2bTo6VmVjdG9yVHlwZTo6Z2V0KExM Vk1UeXBlczo6SW50NjRUeXBlLCBhZGRyZXNzVHlwZS0+Z2V0VmVjdG9yTnVtRWxlbWVudHMoKSkp OwotKyNlbmRpZgotICAgICAgICAgYWRkcmVzcyA9IGxsdm06Okluc2VydEVsZW1lbnRJbnN0OjpD cmVhdGUodW5kZWZJbnNlcnRWYWx1ZSwgYWRkcmVzcywgTExWTUludDMyKDApLCAic3ZtX3B0cl9p ZWkiLCBJbnNlcnRCZWZvcmUpOwotICAgICAgICAgbGx2bTo6Q29uc3RhbnQgKnplcm9WZWMgPSBs bHZtOjpDb25zdGFudFZlY3Rvcjo6Z2V0U3BsYXQoCi0rI2lmIElTUENfTExWTV9WRVJTSU9OIDwg SVNQQ19MTFZNXzExXzAKLSAgICAgICAgICAgICBhZGRyZXNzVHlwZS0+Z2V0VmVjdG9yTnVtRWxl bWVudHMoKSwKLSsjZWxpZiBJU1BDX0xMVk1fVkVSU0lPTiA9PSBJU1BDX0xMVk1fMTFfMAotKyAg ICAgICAgICAgIHtsbHZtOjpkeW5fY2FzdDxsbHZtOjpWZWN0b3JUeXBlPihhZGRyZXNzVHlwZSkt PmdldE51bUVsZW1lbnRzKCksIGZhbHNlfSwKLSsjZWxzZQotKyAgICAgICAgbGx2bTo6RWxlbWVu dENvdW50OjpnZXQoCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpkeW5f Y2FzdDxsbHZtOjpGaXhlZFZlY3RvclR5cGU+KGFkZHJlc3NUeXBlLT5nZXROdW1FbGVtZW50cygp LCBmYWxzZSksCi0rI2VuZGlmCi0gICAgICAgICAgICAgbGx2bTo6Q29uc3RhbnQ6OmdldE51bGxW YWx1ZShsbHZtOjpUeXBlOjpnZXRJbnQzMlR5KEluc2VydEJlZm9yZS0+Z2V0Q29udGV4dCgpKSkp OwotKwotICAgICAgICAgbGx2bTo6VmFsdWUgKnVuZGVmU2h1ZmZsZVZhbHVlID0KLSsjaWYgSVNQ Q19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzExXzAKLSsgICAgICAgICAgICBsbHZtOjpVbmRl ZlZhbHVlOjpnZXQobGx2bTo6Rml4ZWRWZWN0b3JUeXBlOjpnZXQoCi0rICAgICAgICAgICAgICAg IExMVk1UeXBlczo6SW50NjRUeXBlLCBsbHZtOjpkeW5fY2FzdDxsbHZtOjpWZWN0b3JUeXBlPihh ZGRyZXNzVHlwZSktPmdldE51bUVsZW1lbnRzKCkpKTsKLSsjZWxzZQotICAgICAgICAgICAgIGxs dm06OlVuZGVmVmFsdWU6OmdldChsbHZtOjpWZWN0b3JUeXBlOjpnZXQoTExWTVR5cGVzOjpJbnQ2 NFR5cGUsIGFkZHJlc3NUeXBlLT5nZXRWZWN0b3JOdW1FbGVtZW50cygpKSk7Ci0rI2VuZGlmCi0g ICAgICAgICBhZGRyZXNzID0gbmV3IGxsdm06OlNodWZmbGVWZWN0b3JJbnN0KGFkZHJlc3MsIHVu ZGVmU2h1ZmZsZVZhbHVlLCB6ZXJvVmVjLCAic3ZtX3B0cl9zdmkiLCBJbnNlcnRCZWZvcmUpOwot IAotICAgICAgICAgLy8gQ2FsY3VsYXRlIGFkZHJlc3MKLUBAIC02NTUzLDkgKzY2MDgsMTIgQEAg bGx2bTo6SW5zdHJ1Y3Rpb24gKkZpeEFkZHJlc3NTcGFjZTo6cHJvY2Vzc1ZlY3RvckxvYWQobGx2 bTo6TG9hZEluc3QgKkxJKSB7Ci0gICAgIGlmIChyZXRUeXBlLT5nZXRTY2FsYXJUeXBlKCktPmlz UG9pbnRlclR5KCkpIHsKLSAgICAgICAgIGlzUHRyTG9hZCA9IHRydWU7Ci0gICAgICAgICBhdXRv IHNjYWxhclR5cGUgPSBnLT50YXJnZXQtPmlzMzJCaXQoKSA/IExMVk1UeXBlczo6SW50MzJUeXBl IDogTExWTVR5cGVzOjpJbnQ2NFR5cGU7Ci0rI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENf TExWTV8xMV8wCi0rICAgICAgICByZXRUeXBlID0gbGx2bTo6Rml4ZWRWZWN0b3JUeXBlOjpnZXQo c2NhbGFyVHlwZSwgbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6VmVjdG9yVHlwZT4ocmV0VHlwZSktPmdl dE51bUVsZW1lbnRzKCkpOwotKyNlbHNlCi0gICAgICAgICByZXRUeXBlID0gbGx2bTo6VmVjdG9y VHlwZTo6Z2V0KHNjYWxhclR5cGUsIHJldFR5cGUtPmdldFZlY3Rvck51bUVsZW1lbnRzKCkpOwot KyNlbmRpZgotICAgICB9Ci0tCi0gICAgIGxsdm06Okluc3RydWN0aW9uICpyZXMgPSBsR2VuWExv YWRJbnN0KHB0ciwgcmV0VHlwZSwgbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6SW5zdHJ1Y3Rpb24+KExJ KSk7Ci0gICAgIEFzc2VydChyZXMpOwotIAotQEAgLTY1ODAsMTEgKzY2MzgsMTYgQEAgbGx2bTo6 SW5zdHJ1Y3Rpb24gKkZpeEFkZHJlc3NTcGFjZTo6cHJvY2Vzc1NWTVZlY3RvckxvYWQobGx2bTo6 SW5zdHJ1Y3Rpb24gKkNJKQotICAgICBwdHIgPSBuZXcgbGx2bTo6SW50VG9QdHJJbnN0KHB0ciwg bGx2bTo6UG9pbnRlclR5cGU6OmdldChyZXRUeXBlLCAwKSwgQ0ktPmdldE5hbWUoKSArICJfaW50 dG9wdHIiLCBDSSk7Ci0gICAgIGxsdm06Okluc3RydWN0aW9uICpsb2FkSW5zdCA9IE5VTEw7Ci0g I2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMV8wCi0tICAgIGxvYWRJbnN0ID0g bmV3IGxsdm06OkxvYWRJbnN0KGxsdm06OmR5bl9jYXN0PGxsdm06OlBvaW50ZXJUeXBlPihwdHIt PmdldFR5cGUoKSktPmdldFBvaW50ZXJFbGVtZW50VHlwZSgpLCBsb2FkSW5zdCwKLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgQ0ktPmdldE5hbWUoKSwgKGxsdm06Okluc3RydWN0 aW9uICopTlVMTCk7Ci0rICAgIGxvYWRJbnN0ID0gbmV3IGxsdm06OkxvYWRJbnN0KGxsdm06OmR5 bl9jYXN0PGxsdm06OlBvaW50ZXJUeXBlPihwdHItPmdldFR5cGUoKSktPmdldFBvaW50ZXJFbGVt ZW50VHlwZSgpLCBwdHIsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENJLT5n ZXROYW1lKCksIGZhbHNlIC8qIG5vdCB2b2xhdGlsZSAqLywKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgbGx2bTo6TWF5YmVBbGlnbihnLT50YXJnZXQtPmdldE5hdGl2ZVZlY3Rv ckFsaWdubWVudCgpKS52YWx1ZU9yT25lKCksCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIChsbHZtOjpJbnN0cnVjdGlvbiAqKU5VTEwpOwotICNlbHNlCi0tICAgIGxvYWRJbnN0 ID0gbmV3IGxsdm06OkxvYWRJbnN0KHB0ciwgQ0ktPmdldE5hbWUoKSwgKGxsdm06Okluc3RydWN0 aW9uICopTlVMTCk7Ci0rICAgIGxvYWRJbnN0ID0gbmV3IGxsdm06OkxvYWRJbnN0KHB0ciwgQ0kt PmdldE5hbWUoKSwgZmFsc2UsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxs dm06Ok1heWJlQWxpZ24oZy0+dGFyZ2V0LT5nZXROYXRpdmVWZWN0b3JBbGlnbm1lbnQoKSkudmFs dWVPck9uZSgpLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGx2bTo6SW5z dHJ1Y3Rpb24gKilOVUxMKTsKLSAjZW5kaWYKLSsKLSAgICAgQXNzZXJ0KGxvYWRJbnN0KTsKLSAg ICAgcmV0dXJuIGxvYWRJbnN0OwotIH0KLUBAIC02NjA2LDcgKzY2NjksMTEgQEAgbGx2bTo6SW5z dHJ1Y3Rpb24gKkZpeEFkZHJlc3NTcGFjZTo6cHJvY2Vzc1ZlY3RvclN0b3JlKGxsdm06OlN0b3Jl SW5zdCAqU0kpIHsKLSAgICAgLy8gTm90ZTogaXQgZG9lc24ndCBsb29rIGxpa2UgYSBub3JtYWwg Y2FzZSBmb3IgR2VuWCB0YXJnZXQKLSAgICAgaWYgKHZhbFR5cGUtPmdldFNjYWxhclR5cGUoKS0+ aXNQb2ludGVyVHkoKSkgewotICAgICAgICAgYXV0byBzY2FsYXJUeXBlID0gZy0+dGFyZ2V0LT5p czMyQml0KCkgPyBMTFZNVHlwZXM6OkludDMyVHlwZSA6IExMVk1UeXBlczo6SW50NjRUeXBlOwot KyNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTFfMAotKyAgICAgICAgdmFsVHlw ZSA9IGxsdm06OkZpeGVkVmVjdG9yVHlwZTo6Z2V0KHNjYWxhclR5cGUsIGxsdm06OmR5bl9jYXN0 PGxsdm06OlZlY3RvclR5cGU+KHZhbFR5cGUpLT5nZXROdW1FbGVtZW50cygpKTsKLSsjZWxzZQot ICAgICAgICAgdmFsVHlwZSA9IGxsdm06OlZlY3RvclR5cGU6OmdldChzY2FsYXJUeXBlLCB2YWxU eXBlLT5nZXRWZWN0b3JOdW1FbGVtZW50cygpKTsKLSsjZW5kaWYKLSAgICAgICAgIHZhbCA9IG5l dyBsbHZtOjpQdHJUb0ludEluc3QodmFsLCB2YWxUeXBlLCAic3ZtX3N0X3ZhbF9wdHJ0b2ludCIs IFNJKTsKLSAgICAgfQotIAotQEAgLTY2MzEsMTIgKzY2OTgsOCBAQCBsbHZtOjpJbnN0cnVjdGlv biAqRml4QWRkcmVzc1NwYWNlOjpwcm9jZXNzU1ZNVmVjdG9yU3RvcmUobGx2bTo6SW5zdHJ1Y3Rp b24gKkNJKQotICAgICBwdHIgPSBuZXcgbGx2bTo6SW50VG9QdHJJbnN0KHB0ciwgbGx2bTo6UG9p bnRlclR5cGU6OmdldCh2YWxUeXBlLCAwKSwgQ0ktPmdldE5hbWUoKSArICJfaW50dG9wdHIiLCBD SSk7Ci0gCi0gICAgIGxsdm06Okluc3RydWN0aW9uICpzdG9yZUluc3QgPSBOVUxMOwotLSNpZiBJ U1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTFfMAotLSAgICBsb2FkSW5zdCA9IG5ldyBs bHZtOjpTdG9yZUluc3QodmFsLCBsbHZtOjpkeW5fY2FzdDxsbHZtOjpQb2ludGVyVHlwZT4ocHRy LT5nZXRUeXBlKCkpLT5nZXRQb2ludGVyRWxlbWVudFR5cGUoKSwKLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHN0b3JlSW5zdCwgQ0ktPmdldE5hbWUoKSwgKGxsdm06Okluc3Ry dWN0aW9uICopTlVMTCk7Ci0tI2Vsc2UKLS0gICAgc3RvcmVJbnN0ID0gbmV3IGxsdm06OlN0b3Jl SW5zdCh2YWwsIHB0ciwgKGxsdm06Okluc3RydWN0aW9uICopTlVMTCk7Ci0tI2VuZGlmCi0rICAg IHN0b3JlSW5zdCA9IG5ldyBsbHZtOjpTdG9yZUluc3QodmFsLCBwdHIsIChsbHZtOjpJbnN0cnVj dGlvbiAqKU5VTEwsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6 TWF5YmVBbGlnbihnLT50YXJnZXQtPmdldE5hdGl2ZVZlY3RvckFsaWdubWVudCgpKS52YWx1ZU9y T25lKCkpOwotICAgICBBc3NlcnQoc3RvcmVJbnN0KTsKLSAgICAgcmV0dXJuIHN0b3JlSW5zdDsK LSB9Ci1AQCAtNjY0NSwxNSArNjcwOCwxOCBAQCBsbHZtOjpJbnN0cnVjdGlvbiAqRml4QWRkcmVz c1NwYWNlOjpjcmVhdGVJbnQ4V3JSZWdpb24obGx2bTo6VmFsdWUgKlZhbCwgbGx2bTo6VgotICAg ICBpbnQgd2lkdGggPSBnLT50YXJnZXQtPmdldFZlY3RvcldpZHRoKCk7Ci0gCi0gICAgIGxsdm06 OlZhbHVlICpBcmdzWzhdOwotLQotKyNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1f MTFfMAotKyAgICBBcmdzWzBdID0gbGx2bTo6VW5kZWZWYWx1ZTo6Z2V0KGxsdm06OkZpeGVkVmVj dG9yVHlwZTo6Z2V0KExMVk1UeXBlczo6SW50OFR5cGUsIHdpZHRoICogNCkpOyAvLyBvbGQgdmFs dWUKLSsjZWxzZQotICAgICBBcmdzWzBdID0gbGx2bTo6VW5kZWZWYWx1ZTo6Z2V0KGxsdm06OlZl Y3RvclR5cGU6OmdldChMTFZNVHlwZXM6OkludDhUeXBlLCB3aWR0aCAqIDQpKTsgLy8gb2xkIHZh bHVlCi0tICAgIEFyZ3NbMV0gPSBWYWw7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB2YWx1ZSB0byBzdG9y ZQotLSAgICBBcmdzWzJdID0gbGx2bTo6Q29uc3RhbnRJbnQ6OmdldChMTFZNVHlwZXM6OkludDMy VHlwZSwgMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdnN0cmlkZQotLSAgICBB cmdzWzNdID0gbGx2bTo6Q29uc3RhbnRJbnQ6OmdldChMTFZNVHlwZXM6OkludDMyVHlwZSwgd2lk dGgpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2lkdGgKLS0gICAgQXJnc1s0XSA9IGxs dm06OkNvbnN0YW50SW50OjpnZXQoTExWTVR5cGVzOjpJbnQzMlR5cGUsIDQpOyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIC8vIHN0cmlkZQotLSAgICBBcmdzWzVdID0gbGx2bTo6Q29uc3Rh bnRJbnQ6OmdldChMTFZNVHlwZXM6OkludDE2VHlwZSwgMCk7ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgLy8gb2Zmc2V0cwotLSAgICBBcmdzWzZdID0gbGx2bTo6Q29uc3RhbnRJbnQ6Omdl dChMTFZNVHlwZXM6OkludDMyVHlwZSwgMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Ly8gcGFyZW50IHdpZHRoIChpZ25vcmVkKQotLSAgICBBcmdzWzddID0gTWFzazsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgLy8gbWFzawotKyNlbmRpZgotKyAgICBBcmdzWzFdID0gVmFsOyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB2YWx1ZSB0byBzdG9yZQotKyAg ICBBcmdzWzJdID0gbGx2bTo6Q29uc3RhbnRJbnQ6OmdldChMTFZNVHlwZXM6OkludDMyVHlwZSwg MCk7ICAgICAvLyB2c3RyaWRlCi0rICAgIEFyZ3NbM10gPSBsbHZtOjpDb25zdGFudEludDo6Z2V0 KExMVk1UeXBlczo6SW50MzJUeXBlLCB3aWR0aCk7IC8vIHdpZHRoCi0rICAgIEFyZ3NbNF0gPSBs bHZtOjpDb25zdGFudEludDo6Z2V0KExMVk1UeXBlczo6SW50MzJUeXBlLCA0KTsgICAgIC8vIHN0 cmlkZQotKyAgICBBcmdzWzVdID0gbGx2bTo6Q29uc3RhbnRJbnQ6OmdldChMTFZNVHlwZXM6Oklu dDE2VHlwZSwgMCk7ICAgICAvLyBvZmZzZXRzCi0rICAgIEFyZ3NbNl0gPSBsbHZtOjpDb25zdGFu dEludDo6Z2V0KExMVk1UeXBlczo6SW50MzJUeXBlLCAwKTsgICAgIC8vIHBhcmVudCB3aWR0aCAo aWdub3JlZCkKLSsgICAgQXJnc1s3XSA9IE1hc2s7ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgLy8gbWFzawotIAotICAgICBsbHZtOjpUeXBlICpUeXNbNF07 Ci0gCi1AQCAtNjcwOCw3ICs2Nzc0LDEyIEBAIGxsdm06Okluc3RydWN0aW9uICpGaXhBZGRyZXNz U3BhY2U6OnByb2Nlc3NHYXRoZXJTY2F0dGVyUHJpdmF0ZShsbHZtOjpDYWxsSW5zdCAqCi0gICAg ICAgICByZXR1cm4gTlVMTDsKLSAKLSAgICAgbGx2bTo6VmFsdWUgKmFkZHJlc3MgPSBjYWxjdWxh dGVHYXRoZXJTY2F0dGVyQWRkcmVzcyhwdHIsIG9mZnNldHMsIENJKTsKLSsjaWYgSVNQQ19MTFZN X1ZFUlNJT04gPj0gSVNQQ19MTFZNXzExXzAKLSsgICAgbGx2bTo6VHlwZSAqaThWZWNUeXBlID0g bGx2bTo6Rml4ZWRWZWN0b3JUeXBlOjpnZXQoTExWTVR5cGVzOjpJbnQ4VHlwZSwgd2lkdGggKiA0 KTsKLSsjZWxzZQotICAgICBsbHZtOjpUeXBlICppOFZlY1R5cGUgPSBsbHZtOjpWZWN0b3JUeXBl OjpnZXQoTExWTVR5cGVzOjpJbnQ4VHlwZSwgd2lkdGggKiA0KTsKLSsjZW5kaWYKLSsKLSAgICAg Ym9vbCBpc0ludDggPSAodmFsdWUtPmdldFR5cGUoKS0+Z2V0U2NhbGFyVHlwZSgpID09IExMVk1U eXBlczo6SW50OFR5cGUpOwotIAotICAgICBBc3NlcnQoYWRkcmVzcyAmJiAiQmFkIGdhdGhlci9z Y2F0dGVyIGFkZHJlc3MhIik7CmRpZmYgLS1naXQgYS9zcmNwa2dzL2lzcGMvcGF0Y2hlcy9sbHZt MTItMDA2LnBhdGNoIGIvc3JjcGtncy9pc3BjL3BhdGNoZXMvbGx2bTEyLTAwNi5wYXRjaApkZWxl dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTgyOWVhNDgzOTFlLi4wMDAwMDAwMDAwMDAKLS0t IGEvc3JjcGtncy9pc3BjL3BhdGNoZXMvbGx2bTEyLTAwNi5wYXRjaAorKysgL2Rldi9udWxsCkBA IC0xLDEyNiArMCwwIEBACi1Gcm9tIGJiM2Y0OTNkMWZiZDQ1Yzc5ZTFkOWRlZTY3YTA0MzBiYTMx M2VhYWQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBBcmluYSBOZXNobHlhZXZhIDxh cmluYS5uZXNobHlhZXZhQGludGVsLmNvbT4KLURhdGU6IFR1ZSwgMTkgSmFuIDIwMjEgMTE6MDc6 MzMgLTA4MDAKLVN1YmplY3Q6IFtQQVRDSF0gRml4ZWQgaWZkZWZzIGZvciBMTFZNXzExCi0KLS0t LQotIHNyYy9jdHguY3BwIHwgIDYgKysrLS0tCi0gc3JjL29wdC5jcHAgfCAxOCArKysrKysrKyst LS0tLS0tLS0KLSAyIGZpbGVzIGNoYW5nZWQsIDEyIGluc2VydGlvbnMoKyksIDEyIGRlbGV0aW9u cygtKQotCi1kaWZmIC0tZ2l0IGEvc3JjL2N0eC5jcHAgYi9zcmMvY3R4LmNwcAotaW5kZXggMmE3 MmU2ODM3Li41MjdhMDJmMzAgMTAwNjQ0Ci0tLS0gYS9zcmMvY3R4LmNwcAotKysrIGIvc3JjL2N0 eC5jcHAKLUBAIC0xNjkxLDcgKzE2OTEsNyBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29u dGV4dDo6U21lYXJVbmlmb3JtKGxsdm06OlZhbHVlICp2YWx1ZSwgY29uc3QgbGx2bTo6VAotICAg ICBpZiAobGx2bTo6Q29uc3RhbnQgKmNvbnN0X3ZhbCA9IGxsdm06OmR5bl9jYXN0PGxsdm06OkNv bnN0YW50Pih2YWx1ZSkpIHsKLSAjaWYgSVNQQ19MTFZNX1ZFUlNJT04gPCBJU1BDX0xMVk1fMTFf MAotICAgICAgICAgcmV0ID0gbGx2bTo6Q29uc3RhbnRWZWN0b3I6OmdldFNwbGF0KGctPnRhcmdl dC0+Z2V0VmVjdG9yV2lkdGgoKSwgY29uc3RfdmFsKTsKLS0jZWxpZiBJU1BDX0xMVk1fVkVSU0lP TiA9PSBJU1BDX0xMVk1fMTFfMAotKyNlbGlmIElTUENfTExWTV9WRVJTSU9OIDwgSVNQQ19MTFZN XzEyXzAKLSAgICAgICAgIHJldCA9Ci0gICAgICAgICAgICAgbGx2bTo6Q29uc3RhbnRWZWN0b3I6 OmdldFNwbGF0KHtzdGF0aWNfY2FzdDx1bnNpZ25lZCBpbnQ+KGctPnRhcmdldC0+Z2V0VmVjdG9y V2lkdGgoKSksIGZhbHNlfSwgY29uc3RfdmFsKTsKLSAjZWxzZSAvLyBMTFZNIDEyLjArCi1AQCAt MzE0OCw3ICszMTQ4LDcgQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkJyb2Fk Y2FzdFZhbHVlKGxsdm06OlZhbHVlICp2LCBsbHZtOjpUeXBlICp2ZWMKLSAjaWYgSVNQQ19MTFZN X1ZFUlNJT04gPCBJU1BDX0xMVk1fMTFfMAotICAgICBsbHZtOjpDb25zdGFudCAqemVyb1ZlYyA9 IGxsdm06OkNvbnN0YW50VmVjdG9yOjpnZXRTcGxhdCgKLSAgICAgICAgIHZlY1R5cGUtPmdldFZl Y3Rvck51bUVsZW1lbnRzKCksIGxsdm06OkNvbnN0YW50OjpnZXROdWxsVmFsdWUobGx2bTo6VHlw ZTo6Z2V0SW50MzJUeSgqZy0+Y3R4KSkpOwotLSNlbGlmIElTUENfTExWTV9WRVJTSU9OID09IElT UENfTExWTV8xMV8wCi0rI2VsaWYgSVNQQ19MTFZNX1ZFUlNJT04gPCBJU1BDX0xMVk1fMTJfMAot ICAgICBsbHZtOjpDb25zdGFudCAqemVyb1ZlYyA9Ci0gICAgICAgICBsbHZtOjpDb25zdGFudFZl Y3Rvcjo6Z2V0U3BsYXQoe3N0YXRpY19jYXN0PHVuc2lnbmVkIGludD4odHktPmdldE51bUVsZW1l bnRzKCkpLCBmYWxzZX0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg bGx2bTo6Q29uc3RhbnQ6OmdldE51bGxWYWx1ZShsbHZtOjpUeXBlOjpnZXRJbnQzMlR5KCpnLT5j dHgpKSk7Ci1AQCAtMzY4OCw3ICszNjg4LDcgQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENv bnRleHQ6OkdlblhTaW1kQ0ZQcmVkaWNhdGUobGx2bTo6VmFsdWUgKnZhbHVlLCBsbHZtOjoKLSAj aWYgSVNQQ19MTFZNX1ZFUlNJT04gPCBJU1BDX0xMVk1fMTFfMAotICAgICAgICAgZGVmYXVsdHMg PSBsbHZtOjpDb25zdGFudFZlY3Rvcjo6Z2V0U3BsYXQodnQtPmdldFZlY3Rvck51bUVsZW1lbnRz KCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBs bHZtOjpDb25zdGFudDo6Z2V0TnVsbFZhbHVlKHZ0LT5nZXRFbGVtZW50VHlwZSgpKSk7Ci0tI2Vs aWYgSVNQQ19MTFZNX1ZFUlNJT04gPT0gSVNQQ19MTFZNXzExXzAKLSsjZWxpZiBJU1BDX0xMVk1f VkVSU0lPTiA8IElTUENfTExWTV8xMl8wCi0gICAgICAgICBkZWZhdWx0cyA9IGxsdm06OkNvbnN0 YW50VmVjdG9yOjpnZXRTcGxhdCh7c3RhdGljX2Nhc3Q8dW5zaWduZWQgaW50Pih2dC0+Z2V0TnVt RWxlbWVudHMoKSksIGZhbHNlfSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGxsdm06OkNvbnN0YW50OjpnZXROdWxsVmFsdWUodnQtPmdldEVsZW1l bnRUeXBlKCkpKTsKLSAjZWxzZQotZGlmZiAtLWdpdCBhL3NyYy9vcHQuY3BwIGIvc3JjL29wdC5j cHAKLWluZGV4IDE3ODliODQ3Ni4uM2ZmMTkxYTBhIDEwMDY0NAotLS0tIGEvc3JjL29wdC5jcHAK LSsrKyBiL3NyYy9vcHQuY3BwCi1AQCAtMTA0NSw3ICsxMDQ1LDcgQEAgYm9vbCBJbnRyaW5zaWNz T3B0OjpydW5PbkJhc2ljQmxvY2sobGx2bTo6QmFzaWNCbG9jayAmYmIpIHsKLSAgICAgICAgICAg ICAgICAgICAgIGFsaWduID0gZy0+dGFyZ2V0LT5nZXROYXRpdmVWZWN0b3JBbGlnbm1lbnQoKTsK LSAgICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICAgYWxpZ24gPSBjYWxs SW5zdC0+Z2V0Q2FsbGVkRnVuY3Rpb24oKSA9PSBhdnhNYXNrZWRMb2FkMzIgPyA0IDogODsKLS0j aWYgSVNQQ19MTFZNX1ZFUlNJT04gPT0gSVNQQ19MTFZNXzEwXzAKLSsjaWYgSVNQQ19MTFZNX1ZF UlNJT04gPCBJU1BDX0xMVk1fMTFfMAotICAgICAgICAgICAgICAgICBsbHZtOjpJbnN0cnVjdGlv biAqbG9hZEluc3QgPQotICAgICAgICAgICAgICAgICAgICAgbmV3IGxsdm06OkxvYWRJbnN0KGNh c3RQdHIsIGxsdm06OlR3aW5lKGNhbGxJbnN0LT5nZXRBcmdPcGVyYW5kKDApLT5nZXROYW1lKCkp ICsgIl9sb2FkIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxz ZSAvKiBub3Qgdm9sYXRpbGUgKi8sIGxsdm06Ok1heWJlQWxpZ24oYWxpZ24pLCAobGx2bTo6SW5z dHJ1Y3Rpb24gKilOVUxMKTsKLUBAIC0xNDcyLDcgKzE0NzIsNyBAQCBzdGF0aWMgbGx2bTo6VmFs dWUgKmxHZXRCYXNlUHRyQW5kT2Zmc2V0cyhsbHZtOjpWYWx1ZSAqcHRycywgbGx2bTo6VmFsdWUg KipvZmZzZQotICAgICAgICAgICAgICAgICAgICAgbGx2bTo6VmFsdWUgKnplcm9NYXNrID0KLSAj aWYgSVNQQ19MTFZNX1ZFUlNJT04gPCBJU1BDX0xMVk1fMTFfMAotICAgICAgICAgICAgICAgICAg ICAgICAgIGxsdm06OkNvbnN0YW50VmVjdG9yOjpnZXRTcGxhdChjdi0+Z2V0VHlwZSgpLT5nZXRW ZWN0b3JOdW1FbGVtZW50cygpLAotLSNlbGlmIElTUENfTExWTV9WRVJTSU9OID09IElTUENfTExW TV8xMV8wCi0rI2VsaWYgSVNQQ19MTFZNX1ZFUlNJT04gPCBJU1BDX0xMVk1fMTJfMAotICAgICAg ICAgICAgICAgICAgICAgICAgIGxsdm06OkNvbnN0YW50VmVjdG9yOjpnZXRTcGxhdCgKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAge2xsdm06OmR5bl9jYXN0PGxsdm06OlZlY3RvclR5cGU+ KGN2LT5nZXRUeXBlKCkpLT5nZXROdW1FbGVtZW50cygpLCBmYWxzZX0sCi0gI2Vsc2UgLy8gTExW TSAxMi4wKwotQEAgLTE0OTUsNyArMTQ5NSw3IEBAIHN0YXRpYyBsbHZtOjpWYWx1ZSAqbEdldEJh c2VQdHJBbmRPZmZzZXRzKGxsdm06OlZhbHVlICpwdHJzLCBsbHZtOjpWYWx1ZSAqKm9mZnNlCi0g ICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6VmFsdWUgKnplcm9NYXNrID0gbGx2bTo6Q29u c3RhbnRWZWN0b3I6OmdldFNwbGF0KAotICNpZiBJU1BDX0xMVk1fVkVSU0lPTiA8IElTUENfTExW TV8xMV8wCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcF92YXJfdHlwZS0+Z2V0VmVj dG9yTnVtRWxlbWVudHMoKSwKLS0jZWxpZiBJU1BDX0xMVk1fVkVSU0lPTiA9PSBJU1BDX0xMVk1f MTFfMAotKyNlbGlmIElTUENfTExWTV9WRVJTSU9OIDwgSVNQQ19MTFZNXzEyXzAKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAge2xsdm06OmR5bl9jYXN0PGxsdm06OlZlY3RvclR5cGU+KGJv cF92YXJfdHlwZSktPmdldE51bUVsZW1lbnRzKCksIGZhbHNlfSwKLSAjZWxzZSAvLyBMTFZNIDEy LjArCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06OkVsZW1lbnRDb3VudDo6Z2V0 KAotQEAgLTI4MDMsNyArMjgwMyw3IEBAIHN0YXRpYyBib29sIGxHU1RvTG9hZFN0b3JlKGxsdm06 OkNhbGxJbnN0ICpjYWxsSW5zdCkgewotICAgICAgICAgICAgIGxsdm06OlZhbHVlICp6ZXJvTWFz ayA9Ci0gI2lmIElTUENfTExWTV9WRVJTSU9OIDwgSVNQQ19MTFZNXzExXzAKLSAgICAgICAgICAg ICAgICAgbGx2bTo6Q29uc3RhbnRWZWN0b3I6OmdldFNwbGF0KGNhbGxJbnN0LT5nZXRUeXBlKCkt PmdldFZlY3Rvck51bUVsZW1lbnRzKCksCi0tI2VsaWYgSVNQQ19MTFZNX1ZFUlNJT04gPT0gSVNQ Q19MTFZNXzExXzAKLSsjZWxpZiBJU1BDX0xMVk1fVkVSU0lPTiA8IElTUENfTExWTV8xMl8wCi0g ICAgICAgICAgICAgICAgIGxsdm06OkNvbnN0YW50VmVjdG9yOjpnZXRTcGxhdCgKLSAgICAgICAg ICAgICAgICAgICAgIHtsbHZtOjpkeW5fY2FzdDxsbHZtOjpWZWN0b3JUeXBlPihjYWxsSW5zdC0+ Z2V0VHlwZSgpKS0+Z2V0TnVtRWxlbWVudHMoKSwgZmFsc2V9LAotIAotQEAgLTMxMDAsNyArMzEw MCw3IEBAIHN0YXRpYyBib29sIGxJbXByb3ZlTWFza2VkTG9hZChsbHZtOjpDYWxsSW5zdCAqY2Fs bEluc3QsIGxsdm06OkJhc2ljQmxvY2s6Oml0ZXJhCi0gICAgICAgICB7Ci0gICAgICAgICAgICAg bGx2bTo6VHlwZSAqcHRyVHlwZSA9IGxsdm06OlBvaW50ZXJUeXBlOjpnZXQoY2FsbEluc3QtPmdl dFR5cGUoKSwgMCk7Ci0gICAgICAgICAgICAgcHRyID0gbmV3IGxsdm06OkJpdENhc3RJbnN0KHB0 ciwgcHRyVHlwZSwgInB0cl9jYXN0X2Zvcl9sb2FkIiwgY2FsbEluc3QpOwotLSNpZiBJU1BDX0xM Vk1fVkVSU0lPTiA9PSBJU1BDX0xMVk1fMTBfMAotKyNpZiBJU1BDX0xMVk1fVkVSU0lPTiA8IElT UENfTExWTV8xMV8wCi0gICAgICAgICAgICAgbG9hZCA9IG5ldyBsbHZtOjpMb2FkSW5zdCgKLSAg ICAgICAgICAgICAgICAgcHRyLCBjYWxsSW5zdC0+Z2V0TmFtZSgpLCBmYWxzZSAvKiBub3Qgdm9s YXRpbGUgKi8sCi0gICAgICAgICAgICAgICAgIGxsdm06Ok1heWJlQWxpZ24oZy0+b3B0LmZvcmNl QWxpZ25lZE1lbW9yeSA/IGctPnRhcmdldC0+Z2V0TmF0aXZlVmVjdG9yQWxpZ25tZW50KCkgOiBp bmZvLT5hbGlnbikKLUBAIC0zNDU5LDcgKzM0NTksNyBAQCBsbHZtOjpWYWx1ZSAqbEdFUEFuZExv YWQobGx2bTo6VmFsdWUgKmJhc2VQdHIsIGludDY0X3Qgb2Zmc2V0LCBpbnQgYWxpZ24sIGxsdm06 OgotICAgICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpUeXBlICp0eXBlKSB7Ci0gICAgIGxs dm06OlZhbHVlICpwdHIgPSBsR0VQSW5zdChiYXNlUHRyLCBMTFZNSW50NjQob2Zmc2V0KSwgIm5l d19iYXNlIiwgaW5zZXJ0QmVmb3JlKTsKLSAgICAgcHRyID0gbmV3IGxsdm06OkJpdENhc3RJbnN0 KHB0ciwgbGx2bTo6UG9pbnRlclR5cGU6OmdldCh0eXBlLCAwKSwgInB0cl9jYXN0IiwgaW5zZXJ0 QmVmb3JlKTsKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPT0gSVNQQ19MTFZNXzEwXzAKLSsjaWYg SVNQQ19MTFZNX1ZFUlNJT04gPCBJU1BDX0xMVk1fMTFfMAotICAgICByZXR1cm4gbmV3IGxsdm06 OkxvYWRJbnN0KHB0ciwgImdhdGhlcl9sb2FkIiwgZmFsc2UgLyogbm90IHZvbGF0aWxlICovLCBs bHZtOjpNYXliZUFsaWduKGFsaWduKSwgaW5zZXJ0QmVmb3JlKTsKLSAjZWxzZSAvLyBMTFZNIDEx LjArCi0gICAgIHJldHVybiBuZXcgbGx2bTo6TG9hZEluc3QobGx2bTo6ZHluX2Nhc3Q8bGx2bTo6 UG9pbnRlclR5cGU+KHB0ci0+Z2V0VHlwZSgpKS0+Z2V0UG9pbnRlckVsZW1lbnRUeXBlKCksIHB0 ciwKLUBAIC02MTgzLDcgKzYxODMsNyBAQCBib29sIFJlcGxhY2VMTFZNSW50cmluc2ljczo6cnVu T25CYXNpY0Jsb2NrKGxsdm06OkJhc2ljQmxvY2sgJmJiKSB7Ci0gICAgICAgICAgICAgICAgIEFy Z3MucHVzaF9iYWNrKGxsdm06OkNvbnN0YW50VmVjdG9yOjpnZXRTcGxhdCgKLSAjaWYgSVNQQ19M TFZNX1ZFUlNJT04gPCBJU1BDX0xMVk1fMTFfMAotICAgICAgICAgICAgICAgICAgICAgZy0+dGFy Z2V0LT5nZXROYXRpdmVWZWN0b3JXaWR0aCgpLAotLSNlbGlmIElTUENfTExWTV9WRVJTSU9OID09 IElTUENfTExWTV8xMV8wCi0rI2VsaWYgSVNQQ19MTFZNX1ZFUlNJT04gPCBJU1BDX0xMVk1fMTJf MAotICAgICAgICAgICAgICAgICAgICAge3N0YXRpY19jYXN0PHVuc2lnbmVkIGludD4oZy0+dGFy Z2V0LT5nZXROYXRpdmVWZWN0b3JXaWR0aCgpKSwgZmFsc2V9LAotICNlbHNlIC8vIExMVk0gMTIu MCsKLSAgICAgICAgICAgICAgICAgICAgIGxsdm06OkVsZW1lbnRDb3VudDo6Z2V0KHN0YXRpY19j YXN0PHVuc2lnbmVkIGludD4oZy0+dGFyZ2V0LT5nZXROYXRpdmVWZWN0b3JXaWR0aCgpKSwgZmFs c2UpLAotQEAgLTYxOTUsNyArNjE5NSw3IEBAIGJvb2wgUmVwbGFjZUxMVk1JbnRyaW5zaWNzOjpy dW5PbkJhc2ljQmxvY2sobGx2bTo6QmFzaWNCbG9jayAmYmIpIHsKLSAgICAgICAgICAgICAgICAg bGx2bTo6VmFsdWUgKnplcm9NYXNrID0gbGx2bTo6Q29uc3RhbnRWZWN0b3I6OmdldFNwbGF0KAot ICNpZiBJU1BDX0xMVk1fVkVSU0lPTiA8IElTUENfTExWTV8xMV8wCi0gICAgICAgICAgICAgICAg ICAgICBnLT50YXJnZXQtPmdldE5hdGl2ZVZlY3RvcldpZHRoKCksCi0tI2VsaWYgSVNQQ19MTFZN X1ZFUlNJT04gPT0gSVNQQ19MTFZNXzExXzAKLSsjZWxpZiBJU1BDX0xMVk1fVkVSU0lPTiA8IElT UENfTExWTV8xMl8wCi0gICAgICAgICAgICAgICAgICAgICB7c3RhdGljX2Nhc3Q8dW5zaWduZWQg aW50PihnLT50YXJnZXQtPmdldE5hdGl2ZVZlY3RvcldpZHRoKCkpLCBmYWxzZX0sCi0gI2Vsc2Ug Ly8gTExWTSAxMi4wKwotICAgICAgICAgICAgICAgICAgICAgbGx2bTo6RWxlbWVudENvdW50Ojpn ZXQoc3RhdGljX2Nhc3Q8dW5zaWduZWQgaW50PihnLT50YXJnZXQtPmdldE5hdGl2ZVZlY3Rvcldp ZHRoKCkpLCBmYWxzZSksCi1AQCAtNjU2Nyw3ICs2NTY3LDcgQEAgbGx2bTo6VmFsdWUgKkZpeEFk ZHJlc3NTcGFjZTo6Y2FsY3VsYXRlR2F0aGVyU2NhdHRlckFkZHJlc3MobGx2bTo6VmFsdWUgKlB0 ciwgbGwKLSAgICAgICAgIGxsdm06OkNvbnN0YW50ICp6ZXJvVmVjID0gbGx2bTo6Q29uc3RhbnRW ZWN0b3I6OmdldFNwbGF0KAotICNpZiBJU1BDX0xMVk1fVkVSU0lPTiA8IElTUENfTExWTV8xMV8w Ci0gICAgICAgICAgICAgYWRkcmVzc1R5cGUtPmdldFZlY3Rvck51bUVsZW1lbnRzKCksCi0tI2Vs aWYgSVNQQ19MTFZNX1ZFUlNJT04gPT0gSVNQQ19MTFZNXzExXzAKLSsjZWxpZiBJU1BDX0xMVk1f VkVSU0lPTiA8IElTUENfTExWTV8xMl8wCi0gICAgICAgICAgICAge2xsdm06OmR5bl9jYXN0PGxs dm06OlZlY3RvclR5cGU+KGFkZHJlc3NUeXBlKS0+Z2V0TnVtRWxlbWVudHMoKSwgZmFsc2V9LAot ICNlbHNlCi0gICAgICAgICBsbHZtOjpFbGVtZW50Q291bnQ6OmdldCgKZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MvaXNwYy9wYXRjaGVzL2xsdm0xMi0wMDcucGF0Y2ggYi9zcmNwa2dzL2lzcGMvcGF0Y2hl cy9sbHZtMTItMDA3LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxYjk3NWY4 OTZjN2UuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2lzcGMvcGF0Y2hlcy9sbHZtMTItMDA3 LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTYwICswLDAgQEAKLUZyb20gNjJmNWE2YzM3YmYy NmZjMjVhN2NmODE4NjgwNTJkMzQ3Mjg3NDYxMCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZy b206IEFyaW5hIE5lc2hseWFldmEgPGFyaW5hLm5lc2hseWFldmFAaW50ZWwuY29tPgotRGF0ZTog VHVlLCAyMyBNYXIgMjAyMSAyMzowNzozMCAtMDcwMAotU3ViamVjdDogW1BBVENIXSBEbyBub3Qg Z2VuZXJhdGUgZnVuY3Rpb24gbWFzayB3aGVuIGl0IGlzIG5vdCByZXF1aXJlZAotCi0tLS0KLSBz cmMvY3R4LmNwcCAgICAgICAgICAgICAgICAgICAgfCAzOSArKysrKysrKysrKysrKy0tLS0tLS0K LSB0ZXN0cy9saXQtdGVzdHMvZnVsbF9tYXNrLmlzcGMgfCA2MyArKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrCi0gMiBmaWxlcyBjaGFuZ2VkLCA5MCBpbnNlcnRpb25zKCspLCAxMiBk ZWxldGlvbnMoLSkKLSBjcmVhdGUgbW9kZSAxMDA2NDQgdGVzdHMvbGl0LXRlc3RzL2Z1bGxfbWFz ay5pc3BjCi0KLWRpZmYgLS1naXQgYS9zcmMvY3R4LmNwcCBiL3NyYy9jdHguY3BwCi1pbmRleCA1 MjdhMDJmMzAuLjllNzc1ZmM1YyAxMDA2NDQKLS0tLSBhL3NyYy9jdHguY3BwCi0rKysgYi9zcmMv Y3R4LmNwcAotQEAgLTIzMSwxMCArMjMxLDE4IEBAIEZ1bmN0aW9uRW1pdENvbnRleHQ6OkZ1bmN0 aW9uRW1pdENvbnRleHQoRnVuY3Rpb24gKmZ1bmMsIFN5bWJvbCAqZnVuU3ltLCBsbHZtOjpGCi0g ICAgIGludGVybmFsTWFza1BvaW50ZXIgPSBBbGxvY2FJbnN0KExMVk1UeXBlczo6TWFza1R5cGUs ICJpbnRlcm5hbF9tYXNrX21lbW9yeSIpOwotICAgICBTdG9yZUluc3QoTExWTU1hc2tBbGxPbiwg aW50ZXJuYWxNYXNrUG9pbnRlcik7Ci0gCi0tICAgIGZ1bmN0aW9uTWFza1ZhbHVlID0gTExWTU1h c2tBbGxPbjsKLS0KLS0gICAgZnVsbE1hc2tQb2ludGVyID0gQWxsb2NhSW5zdChMTFZNVHlwZXM6 Ok1hc2tUeXBlLCAiZnVsbF9tYXNrX21lbW9yeSIpOwotLSAgICBTdG9yZUluc3QoTExWTU1hc2tB bGxPbiwgZnVsbE1hc2tQb2ludGVyKTsKLSsgICAgLy8gSWYgdGhlIGZ1bmN0aW9uIGRvZXNuJ3Qg aGF2ZSBfX21hc2sgaW4gcGFyYW1ldGVycywgdGhlcmUgaXMgbm8gbmVlZCB0bwotKyAgICAvLyBo YXZlIGZ1bmN0aW9uIG1hc2sKLSsgICAgaWYgKChmdW5jLT5HZXRUeXBlKCktPmlzRXhwb3J0ZWQg JiYKLSsgICAgICAgICAobGYtPmdldEZ1bmN0aW9uVHlwZSgpLT5nZXROdW1QYXJhbXMoKSA9PSBm dW5jLT5HZXRUeXBlKCktPkdldE51bVBhcmFtZXRlcnMoKSkpIHx8Ci0rICAgICAgICAoZnVuYy0+ R2V0VHlwZSgpLT5pc1VubWFza2VkKSB8fCAoZnVuYy0+R2V0VHlwZSgpLT5pc1Rhc2spKSB7Ci0r ICAgICAgICBmdW5jdGlvbk1hc2tWYWx1ZSA9IE5VTEw7Ci0rICAgICAgICBmdWxsTWFza1BvaW50 ZXIgPSBOVUxMOwotKyAgICB9IGVsc2UgewotKyAgICAgICAgZnVuY3Rpb25NYXNrVmFsdWUgPSBM TFZNTWFza0FsbE9uOwotKyAgICAgICAgZnVsbE1hc2tQb2ludGVyID0gQWxsb2NhSW5zdChMTFZN VHlwZXM6Ok1hc2tUeXBlLCAiZnVsbF9tYXNrX21lbW9yeSIpOwotKyAgICAgICAgU3RvcmVJbnN0 KExMVk1NYXNrQWxsT24sIGZ1bGxNYXNrUG9pbnRlcik7Ci0rICAgIH0KLSAKLSAgICAgYmxvY2tF bnRyeU1hc2sgPSBOVUxMOwotICAgICBicmVha0xhbmVzUHRyID0gY29udGludWVMYW5lc1B0ciA9 IE5VTEw7Ci1AQCAtMzg5LDIwICszOTcsMjYgQEAgbGx2bTo6QmFzaWNCbG9jayAqRnVuY3Rpb25F bWl0Q29udGV4dDo6R2V0Q3VycmVudEJhc2ljQmxvY2soKSB7IHJldHVybiBiYmxvY2s7IH0KLSAK LSB2b2lkIEZ1bmN0aW9uRW1pdENvbnRleHQ6OlNldEN1cnJlbnRCYXNpY0Jsb2NrKGxsdm06OkJh c2ljQmxvY2sgKmJiKSB7IGJibG9jayA9IGJiOyB9Ci0gCi0tbGx2bTo6VmFsdWUgKkZ1bmN0aW9u RW1pdENvbnRleHQ6OkdldEZ1bmN0aW9uTWFzaygpIHsgcmV0dXJuIGZ1bmN0aW9uTWFza1ZhbHVl OyB9Ci0rbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkdldEZ1bmN0aW9uTWFzaygp IHsgcmV0dXJuIGZ1bGxNYXNrUG9pbnRlciA/IGZ1bmN0aW9uTWFza1ZhbHVlIDogTExWTU1hc2tB bGxPbjsgfQotIAotIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpHZXRJbnRlcm5h bE1hc2soKSB7IHJldHVybiBMb2FkSW5zdChpbnRlcm5hbE1hc2tQb2ludGVyLCBOVUxMLCAibG9h ZF9tYXNrIik7IH0KLSAKLSBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6R2V0RnVs bE1hc2soKSB7Ci0tICAgIHJldHVybiBCaW5hcnlPcGVyYXRvcihsbHZtOjpJbnN0cnVjdGlvbjo6 QW5kLCBHZXRJbnRlcm5hbE1hc2soKSwgZnVuY3Rpb25NYXNrVmFsdWUsICJpbnRlcm5hbF9tYXNr JmZ1bmN0aW9uX21hc2siKTsKLSsgICAgcmV0dXJuIGZ1bGxNYXNrUG9pbnRlciA/IEJpbmFyeU9w ZXJhdG9yKGxsdm06Okluc3RydWN0aW9uOjpBbmQsIEdldEludGVybmFsTWFzaygpLCBmdW5jdGlv bk1hc2tWYWx1ZSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICJpbnRlcm5hbF9tYXNrJmZ1bmN0aW9uX21hc2siKQotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgIDogR2V0SW50ZXJuYWxNYXNrKCk7Ci0gfQotIAotLWxsdm06OlZhbHVlICpGdW5jdGlvbkVt aXRDb250ZXh0OjpHZXRGdWxsTWFza1BvaW50ZXIoKSB7IHJldHVybiBmdWxsTWFza1BvaW50ZXI7 IH0KLStsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6R2V0RnVsbE1hc2tQb2ludGVy KCkgewotKyAgICByZXR1cm4gZnVsbE1hc2tQb2ludGVyID8gZnVsbE1hc2tQb2ludGVyIDogaW50 ZXJuYWxNYXNrUG9pbnRlcjsKLSt9Ci0gCi0gdm9pZCBGdW5jdGlvbkVtaXRDb250ZXh0OjpTZXRG dW5jdGlvbk1hc2sobGx2bTo6VmFsdWUgKnZhbHVlKSB7Ci0tICAgIGZ1bmN0aW9uTWFza1ZhbHVl ID0gdmFsdWU7Ci0tICAgIGlmIChiYmxvY2sgIT0gTlVMTCkKLS0gICAgICAgIFN0b3JlSW5zdChH ZXRGdWxsTWFzaygpLCBmdWxsTWFza1BvaW50ZXIpOwotKyAgICBpZiAoZnVsbE1hc2tQb2ludGVy ICE9IE5VTEwpIHsKLSsgICAgICAgIGZ1bmN0aW9uTWFza1ZhbHVlID0gdmFsdWU7Ci0rICAgICAg ICBpZiAoYmJsb2NrICE9IE5VTEwpCi0rICAgICAgICAgICAgU3RvcmVJbnN0KEdldEZ1bGxNYXNr KCksIGZ1bGxNYXNrUG9pbnRlcik7Ci0rICAgIH0KLSB9Ci0gCi0gdm9pZCBGdW5jdGlvbkVtaXRD b250ZXh0OjpTZXRCbG9ja0VudHJ5TWFzayhsbHZtOjpWYWx1ZSAqdmFsdWUpIHsgYmxvY2tFbnRy eU1hc2sgPSB2YWx1ZTsgfQotQEAgLTQxMCw3ICs0MjQsOCBAQCB2b2lkIEZ1bmN0aW9uRW1pdENv bnRleHQ6OlNldEJsb2NrRW50cnlNYXNrKGxsdm06OlZhbHVlICp2YWx1ZSkgeyBibG9ja0VudHJ5 TWFzawotIHZvaWQgRnVuY3Rpb25FbWl0Q29udGV4dDo6U2V0SW50ZXJuYWxNYXNrKGxsdm06OlZh bHVlICp2YWx1ZSkgewotICAgICBTdG9yZUluc3QodmFsdWUsIGludGVybmFsTWFza1BvaW50ZXIp OwotICAgICAvLyBrbHVkZ2Ugc28gdGhhdCBfX21hc2sgcmV0dXJucyB0aGUgcmlnaHQgdmFsdWUg aW4gaXNwYyBjb2RlLgotLSAgICBTdG9yZUluc3QoR2V0RnVsbE1hc2soKSwgZnVsbE1hc2tQb2lu dGVyKTsKLSsgICAgaWYgKGZ1bGxNYXNrUG9pbnRlcikKLSsgICAgICAgIFN0b3JlSW5zdChHZXRG dWxsTWFzaygpLCBmdWxsTWFza1BvaW50ZXIpOwotIH0KLSAKLSB2b2lkIEZ1bmN0aW9uRW1pdENv bnRleHQ6OlNldEludGVybmFsTWFza0FuZChsbHZtOjpWYWx1ZSAqb2xkTWFzaywgbGx2bTo6VmFs dWUgKnRlc3QpIHsKLUBAIC0xMjY1LDcgKzEyODAsNyBAQCB2b2lkIEZ1bmN0aW9uRW1pdENvbnRl eHQ6OkN1cnJlbnRMYW5lc1JldHVybmVkKEV4cHIgKmV4cHIsIGJvb2wgZG9Db2hlcmVuY2VDaGVj awotICAgICAgICAgLy8gbGFuZXMgaGF2ZSByZXR1cm5lZAotICAgICAgICAgaWYgKGRvQ29oZXJl bmNlQ2hlY2spIHsKLSAgICAgICAgICAgICAvLyBpZiBuZXdSZXR1cm5lZExhbmVzID09IGZ1bmN0 aW9uTWFza1ZhbHVlLCBnZXQgb3V0IG9mIGhlcmUhCi0tICAgICAgICAgICAgbGx2bTo6VmFsdWUg KmNtcCA9IE1hc2tzQWxsRXF1YWwoZnVuY3Rpb25NYXNrVmFsdWUsIG5ld1JldHVybmVkTGFuZXMp OwotKyAgICAgICAgICAgIGxsdm06OlZhbHVlICpjbXAgPSBNYXNrc0FsbEVxdWFsKEdldEZ1bmN0 aW9uTWFzaygpLCBuZXdSZXR1cm5lZExhbmVzKTsKLSAgICAgICAgICAgICBsbHZtOjpCYXNpY0Js b2NrICpiRG9SZXR1cm4gPSBDcmVhdGVCYXNpY0Jsb2NrKCJkb19yZXR1cm4iKTsKLSAgICAgICAg ICAgICBsbHZtOjpCYXNpY0Jsb2NrICpiTm9SZXR1cm4gPSBDcmVhdGVCYXNpY0Jsb2NrKCJub19y ZXR1cm4iKTsKLSAgICAgICAgICAgICBCcmFuY2hJbnN0KGJEb1JldHVybiwgYk5vUmV0dXJuLCBj bXApOwotZGlmZiAtLWdpdCBhL3Rlc3RzL2xpdC10ZXN0cy9mdWxsX21hc2suaXNwYyBiL3Rlc3Rz L2xpdC10ZXN0cy9mdWxsX21hc2suaXNwYwotbmV3IGZpbGUgbW9kZSAxMDA2NDQKLWluZGV4IDAw MDAwMDAwMC4uYWMwYjBiY2EzCi0tLS0gL2Rldi9udWxsCi0rKysgYi90ZXN0cy9saXQtdGVzdHMv ZnVsbF9tYXNrLmlzcGMKLUBAIC0wLDAgKzEsNjMgQEAKLSsvLyBSVU46ICV7aXNwY30gJXMgLURJ U1BDX0VYUE9SVCAtLWVtaXQtbGx2bS10ZXh0IC1PMCAtLW5vd3JhcCAtbyAldC5sbAotKy8vIFJV TjogRmlsZUNoZWNrIC0taW5wdXQtZmlsZT0ldC5sbCAtY2hlY2stcHJlZml4PUNIRUNLX0lTUENf RVhQT1JUICVzCi0rCi0rLy8gUlVOOiAle2lzcGN9ICVzIC1ESVNQQ19VTk1BU0tFRCAtLWVtaXQt bGx2bS10ZXh0IC1PMCAtLW5vd3JhcCAtbyAldC5sbAotKy8vIFJVTjogRmlsZUNoZWNrIC0taW5w dXQtZmlsZT0ldC5sbCAtY2hlY2stcHJlZml4PUNIRUNLX0lTUENfVU5NQVNLRUQgJXMKLSsKLSsv LyBSVU46ICV7aXNwY30gJXMgLURJU1BDX05PUVVBTElGIC0tZW1pdC1sbHZtLXRleHQgLU8wIC0t bm93cmFwIC1vICV0LmxsCi0rLy8gUlVOOiBGaWxlQ2hlY2sgLS1pbnB1dC1maWxlPSV0LmxsIC1j aGVjay1wcmVmaXg9Q0hFQ0tfSVNQQ19OT1FVQUxJRiAlcwotKwotKy8vIFJVTjogJXtpc3BjfSAl cyAtRElTUENfVEFTSyAtLWVtaXQtbGx2bS10ZXh0IC1PMCAtLW5vd3JhcCAtbyAldC5sbAotKy8v IFJVTjogRmlsZUNoZWNrIC0taW5wdXQtZmlsZT0ldC5sbCAtY2hlY2stcHJlZml4PUNIRUNLX0lT UENfVEFTSyAlcwotKwotK3N0cnVjdCBQYXJhbWV0ZXJzIHsKLSsgICAgZmxvYXQgKnZvdXQ7Ci0r ICAgIGludCBwYXJhbTsKLSt9OwotKwotKyNpZmRlZiBJU1BDX0VYUE9SVAotKy8vIENIRUNLX0lT UENfRVhQT1JUOiBkZWZpbmUgdm9pZCBAc2ltcGxlX2V4cG9ydF9fXwotKy8vIENIRUNLX0lTUENf RVhQT1JUOiAlZnVsbF9tYXNrX21lbW9yeSA9IGFsbG9jYQotKy8vIENIRUNLX0lTUENfRVhQT1JU OiBkZWZpbmUgdm9pZCBAc2ltcGxlX2V4cG9ydCgKLSsvLyBDSEVDS19JU1BDX0VYUE9SVC1OT1Q6 ICVmdWxsX21hc2tfbWVtb3J5ID0gYWxsb2NhCi0rZXhwb3J0IHZvaWQgc2ltcGxlX2V4cG9ydCh2 b2lkICp1bmlmb3JtIF9wKSB7Ci0rICAgIFBhcmFtZXRlcnMgKnVuaWZvcm0gcCA9IChQYXJhbWV0 ZXJzICogdW5pZm9ybSkgX3A7Ci0rICAgIGlmIChwcm9ncmFtSW5kZXggPiBwLT5wYXJhbSkKLSsg ICAgICAgIHAtPnZvdXRbcHJvZ3JhbUluZGV4XSA9IHByb2dyYW1Db3VudCAqIHByb2dyYW1JbmRl eDsKLSt9Ci0rI2VuZGlmCi0rI2lmZGVmIElTUENfVU5NQVNLRUQKLSsvLyBDSEVDS19JU1BDX1VO TUFTS0VEOiBkZWZpbmUgdm9pZCBAc2ltcGxlX3VubWFza2VkCi0rLy8gQ0hFQ0tfSVNQQ19VTk1B U0tFRC1OT1Q6ICVmdWxsX21hc2tfbWVtb3J5ID0gYWxsb2NhCi0rdW5tYXNrZWQgdm9pZCBzaW1w bGVfdW5tYXNrZWQodm9pZCAqdW5pZm9ybSBfcCkgewotKyAgICBQYXJhbWV0ZXJzICp1bmlmb3Jt IHAgPSAoUGFyYW1ldGVycyAqIHVuaWZvcm0pIF9wOwotKyAgICBpZiAocHJvZ3JhbUluZGV4ID4g cC0+cGFyYW0pCi0rICAgICAgICBwLT52b3V0W3Byb2dyYW1JbmRleF0gPSBwcm9ncmFtQ291bnQg KiBwcm9ncmFtSW5kZXg7Ci0rfQotKyNlbmRpZgotKyNpZmRlZiBJU1BDX05PUVVBTElGCi0rLy8g Q0hFQ0tfSVNQQ19OT1FVQUxJRjogZGVmaW5lIHZvaWQgQHNpbXBsZQotKy8vIENIRUNLX0lTUENf Tk9RVUFMSUY6ICVmdWxsX21hc2tfbWVtb3J5ID0gYWxsb2NhCi0rdm9pZCBzaW1wbGUodm9pZCAq dW5pZm9ybSBfcCkgewotKyAgICBQYXJhbWV0ZXJzICp1bmlmb3JtIHAgPSAoUGFyYW1ldGVycyAq IHVuaWZvcm0pIF9wOwotKyAgICBpZiAocHJvZ3JhbUluZGV4ID4gcC0+cGFyYW0pCi0rICAgICAg ICBwLT52b3V0W3Byb2dyYW1JbmRleF0gPSBwcm9ncmFtQ291bnQgKiBwcm9ncmFtSW5kZXg7Ci0r fQotKyNlbmRpZgotKyNpZmRlZiBJU1BDX1RBU0sKLSsKLSsvLyBDSEVDS19JU1BDX1RBU0s6IGRl ZmluZSB2b2lkIEBzaW1wbGVfdGFzawotKy8vIENIRUNLX0lTUENfVEFTSy1OT1Q6ICVmdWxsX21h c2tfbWVtb3J5ID0gYWxsb2NhCi0rLy8gQ0hFQ0tfSVNQQ19UQVNLOiBkZWZpbmUgdm9pZCBAc2lt cGxlX2VudHJ5X3BvaW50X18KLSsvLyBDSEVDS19JU1BDX1RBU0s6ICVmdWxsX21hc2tfbWVtb3J5 ID0gYWxsb2NhCi0rLy8gQ0hFQ0tfSVNQQ19UQVNLOiBkZWZpbmUgdm9pZCBAc2ltcGxlX2VudHJ5 X3BvaW50KAotKy8vIENIRUNLX0lTUENfVEFTSy1OT1Q6ICVmdWxsX21hc2tfbWVtb3J5ID0gYWxs b2NhCi0rdGFzayB2b2lkIHNpbXBsZV90YXNrKHZvaWQgKnVuaWZvcm0gX3ApIHsKLSsgICAgUGFy YW1ldGVycyAqdW5pZm9ybSBwID0gKFBhcmFtZXRlcnMgKiB1bmlmb3JtKSBfcDsKLSsgICAgaWYg KHByb2dyYW1JbmRleCA+IHAtPnBhcmFtKQotKyAgICAgICAgcC0+dm91dFtwcm9ncmFtSW5kZXhd ID0gcHJvZ3JhbUNvdW50ICogcHJvZ3JhbUluZGV4OwotK30KLStleHBvcnQgdm9pZCBzaW1wbGVf ZW50cnlfcG9pbnQodm9pZCAqdW5pZm9ybSBwYXJhbWV0ZXJzLCB1bmlmb3JtIGludCBkaW0wLCB1 bmlmb3JtIGludCBkaW0xLCB1bmlmb3JtIGludCBkaW0yKSB7Ci0rICAgIGxhdW5jaFtkaW0wLCBk aW0xLCBkaW0yXSBzaW1wbGVfdGFzayhwYXJhbWV0ZXJzKTsKLSt9Ci0rI2VuZGlmCi1cIE5vIG5l d2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvaXNwYy9wYXRjaGVzL2xs dm0xMi0wMDgucGF0Y2ggYi9zcmNwa2dzL2lzcGMvcGF0Y2hlcy9sbHZtMTItMDA4LnBhdGNoCmRl bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjODQxM2Q4Yjc4ODcuLjAwMDAwMDAwMDAwMAot LS0gYS9zcmNwa2dzL2lzcGMvcGF0Y2hlcy9sbHZtMTItMDA4LnBhdGNoCisrKyAvZGV2L251bGwK QEAgLTEsMTQ5ICswLDAgQEAKLUZyb20gYWZhZDE0MjI3ZDkyMDRhM2M4YTYyNmNhNjA4ZjViNDNj MzIxOGZlOSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEFyaW5hIE5lc2hseWFldmEg PGFyaW5hLm5lc2hseWFldmFAaW50ZWwuY29tPgotRGF0ZTogVHVlLCA0IE1heSAyMDIxIDExOjQz OjUyIC0wNzAwCi1TdWJqZWN0OiBbUEFUQ0hdIEZpeGVkIElTUEMgZ2VuIGJ1aWxkIGZvciBMTFZN MTIKLQotLS0tCi0gc3JjL2N0eC5jcHAgfCAgNCArKysrCi0gc3JjL29wdC5jcHAgfCA0MyArKysr KysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tCi0gMiBmaWxlcyBjaGFuZ2Vk LCAzMyBpbnNlcnRpb25zKCspLCAxNCBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL3NyYy9j dHguY3BwIGIvc3JjL2N0eC5jcHAKLWluZGV4IDBjNzA1MDU5MS4uZjdkYzA2OTM5IDEwMDY0NAot LS0tIGEvc3JjL2N0eC5jcHAKLSsrKyBiL3NyYy9jdHguY3BwCi1AQCAtMzczOCw3ICszNzM4LDEx IEBAIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpHZW5YU2ltZENGQW55KGxsdm06 OlZhbHVlICp2YWx1ZSkgewotIAotIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpH ZW5YU2ltZENGUHJlZGljYXRlKGxsdm06OlZhbHVlICp2YWx1ZSwgbGx2bTo6VmFsdWUgKmRlZmF1 bHRzKSB7Ci0gICAgIEFzc2VydFBvcyhjdXJyZW50UG9zLCBsbHZtOjppc2E8bGx2bTo6VmVjdG9y VHlwZT4odmFsdWUtPmdldFR5cGUoKSkpOwotKyNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BD X0xMVk1fMTFfMAotKyAgICBsbHZtOjpGaXhlZFZlY3RvclR5cGUgKnZ0ID0gbGx2bTo6ZHluX2Nh c3Q8bGx2bTo6Rml4ZWRWZWN0b3JUeXBlPih2YWx1ZS0+Z2V0VHlwZSgpKTsKLSsjZWxzZQotICAg ICBsbHZtOjpWZWN0b3JUeXBlICp2dCA9IGxsdm06OmR5bl9jYXN0PGxsdm06OlZlY3RvclR5cGU+ KHZhbHVlLT5nZXRUeXBlKCkpOwotKyNlbmRpZgotICAgICBpZiAoZGVmYXVsdHMgPT0gTlVMTCkg ewotICNpZiBJU1BDX0xMVk1fVkVSU0lPTiA8IElTUENfTExWTV8xMV8wCi0gICAgICAgICBkZWZh dWx0cyA9IGxsdm06OkNvbnN0YW50VmVjdG9yOjpnZXRTcGxhdCh2dC0+Z2V0VmVjdG9yTnVtRWxl bWVudHMoKSwKLWRpZmYgLS1naXQgYS9zcmMvb3B0LmNwcCBiL3NyYy9vcHQuY3BwCi1pbmRleCBj ZWE0YWZhMjMuLjRlMzNkNmIxYSAxMDA2NDQKLS0tLSBhL3NyYy9vcHQuY3BwCi0rKysgYi9zcmMv b3B0LmNwcAotQEAgLTI5MTYsOSArMjkxNiwxMyBAQCBzdGF0aWMgbGx2bTo6RnVuY3Rpb24gKmxH ZW5YTWFza2VkSW50OEluc3QobGx2bTo6SW5zdHJ1Y3Rpb24gKmluc3QsIGJvb2wgaXNTdG9yZQot IAotIHN0YXRpYyBsbHZtOjpDYWxsSW5zdCAqbEdlblhTdG9yZUluc3QobGx2bTo6VmFsdWUgKnZh bCwgbGx2bTo6VmFsdWUgKnB0ciwgbGx2bTo6SW5zdHJ1Y3Rpb24gKmluc3QpIHsKLSAgICAgQXNz ZXJ0KGctPnRhcmdldC0+aXNHZW5YVGFyZ2V0KCkpOwotKyNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+ PSBJU1BDX0xMVk1fMTFfMAotKyAgICBBc3NlcnQobGx2bTo6aXNhPGxsdm06OkZpeGVkVmVjdG9y VHlwZT4odmFsLT5nZXRUeXBlKCkpKTsKLSsgICAgbGx2bTo6Rml4ZWRWZWN0b3JUeXBlICp2YWxW ZWNUeXBlID0gbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6Rml4ZWRWZWN0b3JUeXBlPih2YWwtPmdldFR5 cGUoKSk7Ci0rI2Vsc2UKLSAgICAgQXNzZXJ0KGxsdm06OmlzYTxsbHZtOjpWZWN0b3JUeXBlPih2 YWwtPmdldFR5cGUoKSkpOwotLQotICAgICBsbHZtOjpWZWN0b3JUeXBlICp2YWxWZWNUeXBlID0g bGx2bTo6ZHluX2Nhc3Q8bGx2bTo6VmVjdG9yVHlwZT4odmFsLT5nZXRUeXBlKCkpOwotKyNlbmRp ZgotICAgICBBc3NlcnQobGx2bTo6aXNQb3dlck9mMl8zMih2YWxWZWNUeXBlLT5nZXROdW1FbGVt ZW50cygpKSk7Ci0gICAgIEFzc2VydCh2YWxWZWNUeXBlLT5nZXRQcmltaXRpdmVTaXplSW5CaXRz KCkgLyA4IDw9IDggKiBPV09SRCk7Ci0gCi1AQCAtMjk0Miw5ICsyOTQ2LDEzIEBAIHN0YXRpYyBs bHZtOjpDYWxsSW5zdCAqbEdlblhTdG9yZUluc3QobGx2bTo6VmFsdWUgKnZhbCwgbGx2bTo6VmFs dWUgKnB0ciwgbGx2bTo6Ci0gfQotIAotIHN0YXRpYyBsbHZtOjpDYWxsSW5zdCAqbEdlblhMb2Fk SW5zdChsbHZtOjpWYWx1ZSAqcHRyLCBsbHZtOjpUeXBlICpyZXRUeXBlLCBsbHZtOjpJbnN0cnVj dGlvbiAqaW5zdCkgewotKyNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTFfMAot KyAgICBBc3NlcnQobGx2bTo6aXNhPGxsdm06OkZpeGVkVmVjdG9yVHlwZT4ocmV0VHlwZSkpOwot KyAgICBsbHZtOjpGaXhlZFZlY3RvclR5cGUgKnJldFZlY1R5cGUgPSBsbHZtOjpkeW5fY2FzdDxs bHZtOjpGaXhlZFZlY3RvclR5cGU+KHJldFR5cGUpOwotKyNlbHNlCi0gICAgIEFzc2VydChsbHZt Ojppc2E8bGx2bTo6VmVjdG9yVHlwZT4ocmV0VHlwZSkpOwotLQotICAgICBsbHZtOjpWZWN0b3JU eXBlICpyZXRWZWNUeXBlID0gbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6VmVjdG9yVHlwZT4ocmV0VHlw ZSk7Ci0rI2VuZGlmCi0gICAgIEFzc2VydChsbHZtOjppc1Bvd2VyT2YyXzMyKHJldFZlY1R5cGUt PmdldE51bUVsZW1lbnRzKCkpKTsKLSAgICAgQXNzZXJ0KHJldFZlY1R5cGUtPmdldFByaW1pdGl2 ZVNpemVJbkJpdHMoKSk7Ci0gICAgIEFzc2VydChyZXRWZWNUeXBlLT5nZXRQcmltaXRpdmVTaXpl SW5CaXRzKCkgLyA4IDw9IDggKiBPV09SRCk7Ci1AQCAtNTQ4NSw4ICs1NDkzLDEzIEBAIHN0YXRp YyB2b2lkIGxDcmVhdGVCbG9ja0xEVXNlKGxsdm06Okluc3RydWN0aW9uICpjdXJySW5zdCwgc3Rk Ojp2ZWN0b3I8bGx2bTo6RXh0Ci0gICAgICAgICB9IGVsc2UgaWYgKGF1dG8gZ2F0aGVyID0gbEdl dFBzZXVkb0dhdGhlcihsbHZtOjpkeW5fY2FzdDxsbHZtOjpJbnN0cnVjdGlvbj4odWktPmdldFVz ZXIoKSkpKSB7Ci0gICAgICAgICAgICAgLy8gQ29sbGVjdCBpZHhzIGZyb20gZ2F0aGVyIGFuZCBm aXggdXNlcnMKLSAgICAgICAgICAgICBsbHZtOjpWYWx1ZSAqcmVzID0gbGx2bTo6VW5kZWZWYWx1 ZTo6Z2V0KGdhdGhlci0+Z2V0VHlwZSgpKTsKLS0gICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkg PSAwLCBlbmQgPSBsbHZtOjpkeW5fY2FzdDxsbHZtOjpWZWN0b3JUeXBlPihyZXMtPmdldFR5cGUo KSktPmdldE51bUVsZW1lbnRzKCk7IGkgPCBlbmQ7Ci0tICAgICAgICAgICAgICAgICArK2kpIHsK LSsjaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzExXzAKLSsgICAgICAgICAgICBm b3IgKHVuc2lnbmVkIGkgPSAwLCBlbmQgPSBsbHZtOjpkeW5fY2FzdDxsbHZtOjpGaXhlZFZlY3Rv clR5cGU+KHJlcy0+Z2V0VHlwZSgpKS0+Z2V0TnVtRWxlbWVudHMoKTsgaSA8IGVuZDsKLSsgICAg ICAgICAgICAgICAgICsraSkKLSsjZWxzZQotKyAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9 IDAsIGVuZCA9IGxsdm06OmR5bl9jYXN0PGxsdm06OlZlY3RvclR5cGU+KHJlcy0+Z2V0VHlwZSgp KS0+Z2V0TnVtRWxlbWVudHMoKTsgaSA8IGVuZDsgKytpKQotKyNlbmRpZgotKyAgICAgICAgICAg IHsKLSAgICAgICAgICAgICAgICAgLy8gR2V0IGVsZW1lbnQgdmlhIElFSQotICAgICAgICAgICAg ICAgICByZXMgPSBsbHZtOjpJbnNlcnRFbGVtZW50SW5zdDo6Q3JlYXRlKHJlcywgRUVJc1twdHJV c2UuaWR4c1tjdXJyX2lkeCsrXV0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgbGx2bTo6Q29uc3RhbnRJbnQ6OmdldChMTFZNVHlwZXM6Oklu dDMyVHlwZSwgaSksCi1AQCAtNTUyMiwxMCArNTUzNSwxMSBAQCBzdGF0aWMgYm9vbCBsVmVjdG9y aXplR0VQcyhsbHZtOjpWYWx1ZSAqcHRyLCBzdGQ6OnZlY3RvcjxQdHJVc2U+ICZwdHJVc2VzLCBz dGQ6OgotIAotICAgICAvLyBBZGp1c3QgdmFsdWVzIGZvciB2ZWN0b3IgbG9hZAotICNpZiBJU1BD X0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTFfMAotLSAgICBpZiAoYXV0byB2ZWNUeSA9IGxs dm06OmR5bl9jYXN0PGxsdm06OkZpeGVkVmVjdG9yVHlwZT4odHlwZSkpIHsKLSsgICAgaWYgKGF1 dG8gdmVjVHkgPSBsbHZtOjpkeW5fY2FzdDxsbHZtOjpGaXhlZFZlY3RvclR5cGU+KHR5cGUpKQot ICNlbHNlCi0tICAgIGlmIChhdXRvIHZlY1R5ID0gbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6VmVjdG9y VHlwZT4odHlwZSkpIHsKLSsgICAgaWYgKGF1dG8gdmVjVHkgPSBsbHZtOjpkeW5fY2FzdDxsbHZt OjpWZWN0b3JUeXBlPih0eXBlKSkKLSAjZW5kaWYKLSsgICAgewotICAgICAgICAgLy8gR2V0IHNp bmdsZSBlbGVtZW50IHNpemUKLSAgICAgICAgIHRfc2l6ZSAvPSB2ZWNUeS0+Z2V0TnVtRWxlbWVu dHMoKTsKLSAgICAgICAgIC8vIEdldCBzaW5nbGUgZWxlbWVudCB0eXBlCi1AQCAtNjQ3Nyw3ICs2 NDkxLDcgQEAgbGx2bTo6VmFsdWUgKkZpeEFkZHJlc3NTcGFjZTo6Y2FsY3VsYXRlR2F0aGVyU2Nh dHRlckFkZHJlc3MobGx2bTo6VmFsdWUgKlB0ciwgbGwKLSAjaWYgSVNQQ19MTFZNX1ZFUlNJT04g Pj0gSVNQQ19MTFZNXzExXzAKLSAgICAgICAgIE9mZnNldHMsCi0gICAgICAgICBsbHZtOjpGaXhl ZFZlY3RvclR5cGU6OmdldChMTFZNVHlwZXM6OkludDY0VHlwZSwKLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGxsdm06OmR5bl9jYXN0PGxsdm06OlZlY3RvclR5cGU+KE9mZnNl dHMtPmdldFR5cGUoKSktPmdldE51bUVsZW1lbnRzKCkpLAotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6Rml4ZWRWZWN0b3JUeXBlPihPZmZz ZXRzLT5nZXRUeXBlKCkpLT5nZXROdW1FbGVtZW50cygpKSwKLSAgICAgICAgICJzdm1fb2Zmc2V0 X3pleHQiLCBJbnNlcnRCZWZvcmUpOwotICNlbHNlCi0gICAgICAgICBPZmZzZXRzLCBsbHZtOjpW ZWN0b3JUeXBlOjpnZXQoTExWTVR5cGVzOjpJbnQ2NFR5cGUsIE9mZnNldHMtPmdldFR5cGUoKS0+ Z2V0VmVjdG9yTnVtRWxlbWVudHMoKSksCi1AQCAtNjQ5Miw3ICs2NTA2LDcgQEAgbGx2bTo6VmFs dWUgKkZpeEFkZHJlc3NTcGFjZTo6Y2FsY3VsYXRlR2F0aGVyU2NhdHRlckFkZHJlc3MobGx2bTo6 VmFsdWUgKlB0ciwgbGwKLSAgICAgICAgIGxsdm06OlZhbHVlICp1bmRlZkluc2VydFZhbHVlID0K LSAjaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzExXzAKLSAgICAgICAgICAgICBs bHZtOjpVbmRlZlZhbHVlOjpnZXQobGx2bTo6Rml4ZWRWZWN0b3JUeXBlOjpnZXQoCi0tICAgICAg ICAgICAgICAgIExMVk1UeXBlczo6SW50NjRUeXBlLCBsbHZtOjpkeW5fY2FzdDxsbHZtOjpWZWN0 b3JUeXBlPihhZGRyZXNzVHlwZSktPmdldE51bUVsZW1lbnRzKCkpKTsKLSsgICAgICAgICAgICAg ICAgTExWTVR5cGVzOjpJbnQ2NFR5cGUsIGxsdm06OmR5bl9jYXN0PGxsdm06OkZpeGVkVmVjdG9y VHlwZT4oYWRkcmVzc1R5cGUpLT5nZXROdW1FbGVtZW50cygpKSk7Ci0gI2Vsc2UKLSAgICAgICAg ICAgICBsbHZtOjpVbmRlZlZhbHVlOjpnZXQobGx2bTo6VmVjdG9yVHlwZTo6Z2V0KExMVk1UeXBl czo6SW50NjRUeXBlLCBhZGRyZXNzVHlwZS0+Z2V0VmVjdG9yTnVtRWxlbWVudHMoKSkpOwotICNl bmRpZgotQEAgLTY1MDEsMTcgKzY1MTUsMTYgQEAgbGx2bTo6VmFsdWUgKkZpeEFkZHJlc3NTcGFj ZTo6Y2FsY3VsYXRlR2F0aGVyU2NhdHRlckFkZHJlc3MobGx2bTo6VmFsdWUgKlB0ciwgbGwKLSAj aWYgSVNQQ19MTFZNX1ZFUlNJT04gPCBJU1BDX0xMVk1fMTFfMAotICAgICAgICAgICAgIGFkZHJl c3NUeXBlLT5nZXRWZWN0b3JOdW1FbGVtZW50cygpLAotICNlbGlmIElTUENfTExWTV9WRVJTSU9O IDwgSVNQQ19MTFZNXzEyXzAKLS0gICAgICAgICAgICB7bGx2bTo6ZHluX2Nhc3Q8bGx2bTo6VmVj dG9yVHlwZT4oYWRkcmVzc1R5cGUpLT5nZXROdW1FbGVtZW50cygpLCBmYWxzZX0sCi0rICAgICAg ICAgICAge2xsdm06OmR5bl9jYXN0PGxsdm06OkZpeGVkVmVjdG9yVHlwZT4oYWRkcmVzc1R5cGUp LT5nZXROdW1FbGVtZW50cygpLCBmYWxzZX0sCi0gI2Vsc2UKLS0gICAgICAgIGxsdm06OkVsZW1l bnRDb3VudDo6Z2V0KAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6ZHlu X2Nhc3Q8bGx2bTo6Rml4ZWRWZWN0b3JUeXBlPihhZGRyZXNzVHlwZS0+Z2V0TnVtRWxlbWVudHMo KSwgZmFsc2UpLAotKyAgICAgICAgICAgIGxsdm06OkVsZW1lbnRDb3VudDo6Z2V0KGxsdm06OmR5 bl9jYXN0PGxsdm06OkZpeGVkVmVjdG9yVHlwZT4oYWRkcmVzc1R5cGUpLT5nZXROdW1FbGVtZW50 cygpLCBmYWxzZSksCi0gI2VuZGlmCi0gICAgICAgICAgICAgbGx2bTo6Q29uc3RhbnQ6OmdldE51 bGxWYWx1ZShsbHZtOjpUeXBlOjpnZXRJbnQzMlR5KEluc2VydEJlZm9yZS0+Z2V0Q29udGV4dCgp KSkpOwotIAotICAgICAgICAgbGx2bTo6VmFsdWUgKnVuZGVmU2h1ZmZsZVZhbHVlID0KLSAjaWYg SVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzExXzAKLSAgICAgICAgICAgICBsbHZtOjpV bmRlZlZhbHVlOjpnZXQobGx2bTo6Rml4ZWRWZWN0b3JUeXBlOjpnZXQoCi0tICAgICAgICAgICAg ICAgIExMVk1UeXBlczo6SW50NjRUeXBlLCBsbHZtOjpkeW5fY2FzdDxsbHZtOjpWZWN0b3JUeXBl PihhZGRyZXNzVHlwZSktPmdldE51bUVsZW1lbnRzKCkpKTsKLSsgICAgICAgICAgICAgICAgTExW TVR5cGVzOjpJbnQ2NFR5cGUsIGxsdm06OmR5bl9jYXN0PGxsdm06OkZpeGVkVmVjdG9yVHlwZT4o YWRkcmVzc1R5cGUpLT5nZXROdW1FbGVtZW50cygpKSk7Ci0gI2Vsc2UKLSAgICAgICAgICAgICBs bHZtOjpVbmRlZlZhbHVlOjpnZXQobGx2bTo6VmVjdG9yVHlwZTo6Z2V0KExMVk1UeXBlczo6SW50 NjRUeXBlLCBhZGRyZXNzVHlwZS0+Z2V0VmVjdG9yTnVtRWxlbWVudHMoKSkpOwotICNlbmRpZgot QEAgLTY1NDIsNyArNjU1NSw4IEBAIGxsdm06Okluc3RydWN0aW9uICpGaXhBZGRyZXNzU3BhY2U6 OnByb2Nlc3NWZWN0b3JMb2FkKGxsdm06OkxvYWRJbnN0ICpMSSkgewotICAgICAgICAgaXNQdHJM b2FkID0gdHJ1ZTsKLSAgICAgICAgIGF1dG8gc2NhbGFyVHlwZSA9IGctPnRhcmdldC0+aXMzMkJp dCgpID8gTExWTVR5cGVzOjpJbnQzMlR5cGUgOiBMTFZNVHlwZXM6OkludDY0VHlwZTsKLSAjaWYg SVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzExXzAKLS0gICAgICAgIHJldFR5cGUgPSBs bHZtOjpGaXhlZFZlY3RvclR5cGU6OmdldChzY2FsYXJUeXBlLCBsbHZtOjpkeW5fY2FzdDxsbHZt OjpWZWN0b3JUeXBlPihyZXRUeXBlKS0+Z2V0TnVtRWxlbWVudHMoKSk7Ci0rICAgICAgICByZXRU eXBlID0KLSsgICAgICAgICAgICBsbHZtOjpGaXhlZFZlY3RvclR5cGU6OmdldChzY2FsYXJUeXBl LCBsbHZtOjpkeW5fY2FzdDxsbHZtOjpGaXhlZFZlY3RvclR5cGU+KHJldFR5cGUpLT5nZXROdW1F bGVtZW50cygpKTsKLSAjZWxzZQotICAgICAgICAgcmV0VHlwZSA9IGxsdm06OlZlY3RvclR5cGU6 OmdldChzY2FsYXJUeXBlLCByZXRUeXBlLT5nZXRWZWN0b3JOdW1FbGVtZW50cygpKTsKLSAjZW5k aWYKLUBAIC02NjA0LDcgKzY2MTgsOCBAQCBsbHZtOjpJbnN0cnVjdGlvbiAqRml4QWRkcmVzc1Nw YWNlOjpwcm9jZXNzVmVjdG9yU3RvcmUobGx2bTo6U3RvcmVJbnN0ICpTSSkgewotICAgICBpZiAo dmFsVHlwZS0+Z2V0U2NhbGFyVHlwZSgpLT5pc1BvaW50ZXJUeSgpKSB7Ci0gICAgICAgICBhdXRv IHNjYWxhclR5cGUgPSBnLT50YXJnZXQtPmlzMzJCaXQoKSA/IExMVk1UeXBlczo6SW50MzJUeXBl IDogTExWTVR5cGVzOjpJbnQ2NFR5cGU7Ci0gI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENf TExWTV8xMV8wCi0tICAgICAgICB2YWxUeXBlID0gbGx2bTo6Rml4ZWRWZWN0b3JUeXBlOjpnZXQo c2NhbGFyVHlwZSwgbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6VmVjdG9yVHlwZT4odmFsVHlwZSktPmdl dE51bUVsZW1lbnRzKCkpOwotKyAgICAgICAgdmFsVHlwZSA9Ci0rICAgICAgICAgICAgbGx2bTo6 Rml4ZWRWZWN0b3JUeXBlOjpnZXQoc2NhbGFyVHlwZSwgbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6Rml4 ZWRWZWN0b3JUeXBlPih2YWxUeXBlKS0+Z2V0TnVtRWxlbWVudHMoKSk7Ci0gI2Vsc2UKLSAgICAg ICAgIHZhbFR5cGUgPSBsbHZtOjpWZWN0b3JUeXBlOjpnZXQoc2NhbGFyVHlwZSwgdmFsVHlwZS0+ Z2V0VmVjdG9yTnVtRWxlbWVudHMoKSk7Ci0gI2VuZGlmCmRpZmYgLS1naXQgYS9zcmNwa2dzL2lz cGMvcGF0Y2hlcy9sbHZtMTItMDA5LnBhdGNoIGIvc3JjcGtncy9pc3BjL3BhdGNoZXMvbGx2bTEy LTAwOS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDNlYTY3ODI4NTgyLi4w MDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9pc3BjL3BhdGNoZXMvbGx2bTEyLTAwOS5wYXRjaAor KysgL2Rldi9udWxsCkBAIC0xLDIxMDkgKzAsMCBAQAotRnJvbSA5N2IxM2MzMjEzMmUyNzA0YTVl M2U3YjJlYWU0OWQ4NTRkMDg3ZTNlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogQXJp bmEgTmVzaGx5YWV2YSA8YXJpbmEubmVzaGx5YWV2YUBpbnRlbC5jb20+Ci1EYXRlOiBUdWUsIDQg TWF5IDIwMjEgMTE6MzE6NTUgLTA3MDAKLVN1YmplY3Q6IFtQQVRDSF0gVXBkYXRlZCBidWlsdGlu cy1jbSogZm9yIHN3aXRjaCB0byBMTFZNMTIKLQotLS0tCi0gYnVpbHRpbnMvYnVpbHRpbnMtY20t MzIubGwgfCAyMzQgKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLQotIGJ1aWx0 aW5zL2J1aWx0aW5zLWNtLTY0LmxsIHwgMjMyICsrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0t LS0tLS0tLQotIDIgZmlsZXMgY2hhbmdlZCwgMjMzIGluc2VydGlvbnMoKyksIDIzMyBkZWxldGlv bnMoLSkKLQotZGlmZiAtLWdpdCBhL2J1aWx0aW5zL2J1aWx0aW5zLWNtLTMyLmxsIGIvYnVpbHRp bnMvYnVpbHRpbnMtY20tMzIubGwKLWluZGV4IDMyZGViZjMyZS4uNDgxYmJkYzQ4IDEwMDY0NAot LS0tIGEvYnVpbHRpbnMvYnVpbHRpbnMtY20tMzIubGwKLSsrKyBiL2J1aWx0aW5zL2J1aWx0aW5z LWNtLTMyLmxsCi1AQCAtNTU3LDcgKzU1Nyw3IEBAICRfWk4xM1ZhcnlpbmdXcml0ZXIxMldyaXRl VmVjRWxlbUlQdkVFdnYgPSBjb21kYXQgYW55Ci0gQC5zdHIuMTAgPSBwcml2YXRlIHVubmFtZWRf YWRkciBjb25zdGFudCBbNSB4IGk4XSBjIiUwOFhcMDAiLCBhbGlnbiAxCi0gCi0gOyBGdW5jdGlv biBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIHNpZ25leHQgaTgg QF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZjYyhpOCBzaWduZXh0LCBpOCBzaWduZXh0KSAj MCB7Ci0rZGVmaW5lIGludGVybmFsIHNpZ25leHQgaTggQF9aMjRfX2NtX2ludHJpbnNpY19pbXBs X3NkaXZjYyhpOCBzaWduZXh0LCBpOCBzaWduZXh0KSAjMCB7Ci0gICAlMyA9IGFsbG9jYSBpOCwg YWxpZ24gMQotICAgJTQgPSBhbGxvY2EgaTgsIGFsaWduIDEKLSAgICU1ID0gYWxsb2NhIDwxIHgg aTg+LCBhbGlnbiAxCi1AQCAtNjE4LDcgKzYxOCw3IEBAIGRlZmluZSBpbnRlcm5hbCA8MSB4IGk4 PiBAX1pON2RldGFpbHMxM19faW1wbF9kaXZyZW1JTGkxRUVFdTJDTXZiVF9fY1MxX1MxX3UyQ012 Ci0gZGVjbGFyZSA8MSB4IGk4PiBAbGx2bS5nZW54LnJkcmVnaW9uaS52MWk4LnYxaTguaTE2KDwx IHggaTg+LCBpMzIsIGkzMiwgaTMyLCBpMTYsIGkzMikgIzIKLSAKLSA7IEZ1bmN0aW9uIEF0dHJz OiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDEgeCBpOD4gQF9aMjRfX2Nt X2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmIxX2NTXyg8MSB4IGk4PiwgPDEgeCBpOD4pICMwIHsK LStkZWZpbmUgaW50ZXJuYWwgPDEgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1 MkNNdmIxX2NTXyg8MSB4IGk4PiwgPDEgeCBpOD4pICMwIHsKLSAgICUzID0gYWxsb2NhIDwxIHgg aTg+LCBhbGlnbiAxCi0gICAlNCA9IGFsbG9jYSA8MSB4IGk4PiwgYWxpZ24gMQotICAgJTUgPSBh bGxvY2EgPDEgeCBpOD4sIGFsaWduIDEKLUBAIC02MzQsNyArNjM0LDcgQEAgZGVmaW5lIGRzb19s b2NhbCA8MSB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjFfY1NfKDwx IHggaTg+LCA8MQotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAot LWRlZmluZSBkc29fbG9jYWwgPDIgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1 MkNNdmIyX2NTXyg8MiB4IGk4PiwgPDIgeCBpOD4pICMzIHsKLStkZWZpbmUgaW50ZXJuYWwgPDIg eCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmIyX2NTXyg8MiB4IGk4Piwg PDIgeCBpOD4pICMzIHsKLSAgICUzID0gYWxsb2NhIDwyIHggaTg+LCBhbGlnbiAyCi0gICAlNCA9 IGFsbG9jYSA8MiB4IGk4PiwgYWxpZ24gMgotICAgJTUgPSBhbGxvY2EgPDIgeCBpOD4sIGFsaWdu IDIKLUBAIC02ODAsNyArNjgwLDcgQEAgZGVmaW5lIGludGVybmFsIDwyIHggaTg+IEBfWk43ZGV0 YWlsczEzX19pbXBsX2RpdnJlbUlMaTJFRUV1MkNNdmJUX19jUzFfUzFfdTJDTXYKLSB9Ci0gCi0g OyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDw0 IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZiNF9jU18oPDQgeCBpOD4s IDw0IHggaTg+KSAjNSB7Ci0rZGVmaW5lIGludGVybmFsIDw0IHggaTg+IEBfWjI0X19jbV9pbnRy aW5zaWNfaW1wbF9zZGl2dTJDTXZiNF9jU18oPDQgeCBpOD4sIDw0IHggaTg+KSAjNSB7Ci0gICAl MyA9IGFsbG9jYSA8NCB4IGk4PiwgYWxpZ24gNAotICAgJTQgPSBhbGxvY2EgPDQgeCBpOD4sIGFs aWduIDQKLSAgICU1ID0gYWxsb2NhIDw0IHggaTg+LCBhbGlnbiA0Ci1AQCAtODE4LDcgKzgxOCw3 IEBAIGRlZmluZSBpbnRlcm5hbCA8MTYgeCBpOD4gQF9aTjdkZXRhaWxzMTNfX2ltcGxfZGl2cmVt SUxpMTZFRUV1MkNNdmJUX19jUzFfUzFfdTJDCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5v aW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MzIgeCBpOD4gQF9aMjRfX2NtX2lu dHJpbnNpY19pbXBsX3NkaXZ1MkNNdmIzMl9jU18oPDMyIHggaTg+LCA8MzIgeCBpOD4pICMxMSB7 Ci0rZGVmaW5lIGludGVybmFsIDwzMiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2Rp dnUyQ012YjMyX2NTXyg8MzIgeCBpOD4sIDwzMiB4IGk4PikgIzExIHsKLSAgICUzID0gYWxsb2Nh IDwzMiB4IGk4PiwgYWxpZ24gMzIKLSAgICU0ID0gYWxsb2NhIDwzMiB4IGk4PiwgYWxpZ24gMzIK LSAgICU1ID0gYWxsb2NhIDwzMiB4IGk4PiwgYWxpZ24gMzIKLUBAIC04NjQsNyArODY0LDcgQEAg ZGVmaW5lIGludGVybmFsIDwzMiB4IGk4PiBAX1pON2RldGFpbHMxM19faW1wbF9kaXZyZW1JTGkz MkVFRXUyQ012YlRfX2NTMV9TMV91MkMKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxp bmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIHNpZ25leHQgaTggQF9aMjRfX2NtX2ludHJp bnNpY19pbXBsX3NyZW1jYyhpOCBzaWduZXh0LCBpOCBzaWduZXh0KSAjMCB7Ci0rZGVmaW5lIGlu dGVybmFsIHNpZ25leHQgaTggQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW1jYyhpOCBzaWdu ZXh0LCBpOCBzaWduZXh0KSAjMCB7Ci0gICAlMyA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgJTQg PSBhbGxvY2EgaTgsIGFsaWduIDEKLSAgICU1ID0gYWxsb2NhIDwxIHggaTg+LCBhbGlnbiAxCi1A QCAtODkwLDcgKzg5MCw3IEBAIGRlZmluZSBkc29fbG9jYWwgc2lnbmV4dCBpOCBAX1oyNF9fY21f aW50cmluc2ljX2ltcGxfc3JlbWNjKGk4IHNpZ25leHQsIGk4IHNpZ25lCi0gfQotIAotIDsgRnVu Y3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MSB4IGk4 PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjFfY1NfKDwxIHggaTg+LCA8MSB4 IGk4PikgIzAgewotK2RlZmluZSBpbnRlcm5hbCA8MSB4IGk4PiBAX1oyNF9fY21faW50cmluc2lj X2ltcGxfc3JlbXUyQ012YjFfY1NfKDwxIHggaTg+LCA8MSB4IGk4PikgIzAgewotICAgJTMgPSBh bGxvY2EgPDEgeCBpOD4sIGFsaWduIDEKLSAgICU0ID0gYWxsb2NhIDwxIHggaTg+LCBhbGlnbiAx Ci0gICAlNSA9IGFsbG9jYSA8MSB4IGk4PiwgYWxpZ24gMQotQEAgLTkwNCw3ICs5MDQsNyBAQCBk ZWZpbmUgZHNvX2xvY2FsIDwxIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJD TXZiMV9jU18oPDEgeCBpOD4sIDwxCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5l IG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MiB4IGk4PiBAX1oyNF9fY21faW50cmluc2lj X2ltcGxfc3JlbXUyQ012YjJfY1NfKDwyIHggaTg+LCA8MiB4IGk4PikgIzMgewotK2RlZmluZSBp bnRlcm5hbCA8MiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjJfY1Nf KDwyIHggaTg+LCA8MiB4IGk4PikgIzMgewotICAgJTMgPSBhbGxvY2EgPDIgeCBpOD4sIGFsaWdu IDIKLSAgICU0ID0gYWxsb2NhIDwyIHggaTg+LCBhbGlnbiAyCi0gICAlNSA9IGFsbG9jYSA8MiB4 IGk4PiwgYWxpZ24gMgotQEAgLTkxOCw3ICs5MTgsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwyIHgg aTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMl9jU18oPDIgeCBpOD4sIDwy Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRz b19sb2NhbCA8NCB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjRfY1Nf KDw0IHggaTg+LCA8NCB4IGk4PikgIzUgewotK2RlZmluZSBpbnRlcm5hbCA8NCB4IGk4PiBAX1oy NF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjRfY1NfKDw0IHggaTg+LCA8NCB4IGk4Pikg IzUgewotICAgJTMgPSBhbGxvY2EgPDQgeCBpOD4sIGFsaWduIDQKLSAgICU0ID0gYWxsb2NhIDw0 IHggaTg+LCBhbGlnbiA0Ci0gICAlNSA9IGFsbG9jYSA8NCB4IGk4PiwgYWxpZ24gNAotQEAgLTkz Miw3ICs5MzIsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDw0IHggaTg+IEBfWjI0X19jbV9pbnRyaW5z aWNfaW1wbF9zcmVtdTJDTXZiNF9jU18oPDQgeCBpOD4sIDw0Ci0gfQotIAotIDsgRnVuY3Rpb24g QXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8OCB4IGk4PiBAX1oy NF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjhfY1NfKDw4IHggaTg+LCA8OCB4IGk4Pikg IzcgewotK2RlZmluZSBpbnRlcm5hbCA8OCB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxf c3JlbXUyQ012YjhfY1NfKDw4IHggaTg+LCA8OCB4IGk4PikgIzcgewotICAgJTMgPSBhbGxvY2Eg PDggeCBpOD4sIGFsaWduIDgKLSAgICU0ID0gYWxsb2NhIDw4IHggaTg+LCBhbGlnbiA4Ci0gICAl NSA9IGFsbG9jYSA8OCB4IGk4PiwgYWxpZ24gOAotQEAgLTk0Niw3ICs5NDYsNyBAQCBkZWZpbmUg ZHNvX2xvY2FsIDw4IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiOF9j U18oPDggeCBpOD4sIDw4Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53 aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MTYgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBs X3NyZW11MkNNdmIxNl9jU18oPDE2IHggaTg+LCA8MTYgeCBpOD4pICM5IHsKLStkZWZpbmUgaW50 ZXJuYWwgPDE2IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMTZfY1Nf KDwxNiB4IGk4PiwgPDE2IHggaTg+KSAjOSB7Ci0gICAlMyA9IGFsbG9jYSA8MTYgeCBpOD4sIGFs aWduIDE2Ci0gICAlNCA9IGFsbG9jYSA8MTYgeCBpOD4sIGFsaWduIDE2Ci0gICAlNSA9IGFsbG9j YSA8MTYgeCBpOD4sIGFsaWduIDE2Ci1AQCAtOTYwLDcgKzk2MCw3IEBAIGRlZmluZSBkc29fbG9j YWwgPDE2IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMTZfY1NfKDwx NiB4IGk4PiwKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1k ZWZpbmUgZHNvX2xvY2FsIDwzMiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUy Q012YjMyX2NTXyg8MzIgeCBpOD4sIDwzMiB4IGk4PikgIzExIHsKLStkZWZpbmUgaW50ZXJuYWwg PDMyIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMzJfY1NfKDwzMiB4 IGk4PiwgPDMyIHggaTg+KSAjMTEgewotICAgJTMgPSBhbGxvY2EgPDMyIHggaTg+LCBhbGlnbiAz MgotICAgJTQgPSBhbGxvY2EgPDMyIHggaTg+LCBhbGlnbiAzMgotICAgJTUgPSBhbGxvY2EgPDMy IHggaTg+LCBhbGlnbiAzMgotQEAgLTk3NCw3ICs5NzQsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwz MiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjMyX2NTXyg8MzIgeCBp OD4sCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5l IGRzb19sb2NhbCBzaWduZXh0IGkxNiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnNzKGkx NiBzaWduZXh0LCBpMTYgc2lnbmV4dCkgIzMgewotK2RlZmluZSBpbnRlcm5hbCBzaWduZXh0IGkx NiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnNzKGkxNiBzaWduZXh0LCBpMTYgc2lnbmV4 dCkgIzMgewotICAgJTMgPSBhbGxvY2EgaTE2LCBhbGlnbiAyCi0gICAlNCA9IGFsbG9jYSBpMTYs IGFsaWduIDIKLSAgICU1ID0gYWxsb2NhIDwxIHggaTE2PiwgYWxpZ24gMgotQEAgLTEwNTgsNyAr MTA1OCw3IEBAIGRlZmluZSBpbnRlcm5hbCA8MSB4IGkxNj4gQF9aTjdkZXRhaWxzMTNfX2ltcGxf ZGl2cmVtSUxpMUVFRXUyQ012YlRfX3NTMV9TMV91MkNNCi0gZGVjbGFyZSA8MSB4IGkxNj4gQGxs dm0uZ2VueC5yZHJlZ2lvbmkudjFpMTYudjFpMTYuaTE2KDwxIHggaTE2PiwgaTMyLCBpMzIsIGkz MiwgaTE2LCBpMzIpICMyCi0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQK LS1kZWZpbmUgZHNvX2xvY2FsIDwxIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2Rp dnUyQ012YjFfc1NfKDwxIHggaTE2PiwgPDEgeCBpMTY+KSAjMyB7Ci0rZGVmaW5lIGludGVybmFs IDwxIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjFfc1NfKDwxIHgg aTE2PiwgPDEgeCBpMTY+KSAjMyB7Ci0gICAlMyA9IGFsbG9jYSA8MSB4IGkxNj4sIGFsaWduIDIK LSAgICU0ID0gYWxsb2NhIDwxIHggaTE2PiwgYWxpZ24gMgotICAgJTUgPSBhbGxvY2EgPDEgeCBp MTY+LCBhbGlnbiAyCi1AQCAtMTA3NCw3ICsxMDc0LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MSB4 IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmIxX3NTXyg8MSB4IGkxNj4s IDwKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUg ZHNvX2xvY2FsIDwyIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjJf c1NfKDwyIHggaTE2PiwgPDIgeCBpMTY+KSAjNSB7Ci0rZGVmaW5lIGludGVybmFsIDwyIHggaTE2 PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjJfc1NfKDwyIHggaTE2PiwgPDIg eCBpMTY+KSAjNSB7Ci0gICAlMyA9IGFsbG9jYSA8MiB4IGkxNj4sIGFsaWduIDQKLSAgICU0ID0g YWxsb2NhIDwyIHggaTE2PiwgYWxpZ24gNAotICAgJTUgPSBhbGxvY2EgPDIgeCBpMTY+LCBhbGln biA0Ci1AQCAtMTE0Myw3ICsxMTQzLDcgQEAgZGVmaW5lIGludGVybmFsIDwyIHggaTE2PiBAX1pO N2RldGFpbHMxM19faW1wbF9kaXZyZW1JTGkyRUVFdTJDTXZiVF9fc1MxX1MxX3UyQ00KLSB9Ci0g Ci0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2Fs IDw0IHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjRfc1NfKDw0IHgg aTE2PiwgPDQgeCBpMTY+KSAjNyB7Ci0rZGVmaW5lIGludGVybmFsIDw0IHggaTE2PiBAX1oyNF9f Y21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjRfc1NfKDw0IHggaTE2PiwgPDQgeCBpMTY+KSAj NyB7Ci0gICAlMyA9IGFsbG9jYSA8NCB4IGkxNj4sIGFsaWduIDgKLSAgICU0ID0gYWxsb2NhIDw0 IHggaTE2PiwgYWxpZ24gOAotICAgJTUgPSBhbGxvY2EgPDQgeCBpMTY+LCBhbGlnbiA4Ci1AQCAt MTM1MCw3ICsxMzUwLDcgQEAgZGVmaW5lIGludGVybmFsIDwxNiB4IGkxNj4gQF9aTjdkZXRhaWxz MTNfX2ltcGxfZGl2cmVtSUxpMTZFRUV1MkNNdmJUX19zUzFfUzFfdTIKLSB9Ci0gCi0gOyBGdW5j dGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwzMiB4IGkx Nj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmIzMl9zU18oPDMyIHggaTE2Piwg PDMyIHggaTE2PikgIzEzIHsKLStkZWZpbmUgaW50ZXJuYWwgPDMyIHggaTE2PiBAX1oyNF9fY21f aW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjMyX3NTXyg8MzIgeCBpMTY+LCA8MzIgeCBpMTY+KSAj MTMgewotICAgJTMgPSBhbGxvY2EgPDMyIHggaTE2PiwgYWxpZ24gNjQKLSAgICU0ID0gYWxsb2Nh IDwzMiB4IGkxNj4sIGFsaWduIDY0Ci0gICAlNSA9IGFsbG9jYSA8MzIgeCBpMTY+LCBhbGlnbiA2 NAotQEAgLTE0MTksNyArMTQxOSw3IEBAIGRlZmluZSBpbnRlcm5hbCA8MzIgeCBpMTY+IEBfWk43 ZGV0YWlsczEzX19pbXBsX2RpdnJlbUlMaTMyRUVFdTJDTXZiVF9fc1MxX1MxX3UyCi0gfQotIAot IDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCBz aWduZXh0IGkxNiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXNzKGkxNiBzaWduZXh0LCBp MTYgc2lnbmV4dCkgIzMgewotK2RlZmluZSBpbnRlcm5hbCBzaWduZXh0IGkxNiBAX1oyNF9fY21f aW50cmluc2ljX2ltcGxfc3JlbXNzKGkxNiBzaWduZXh0LCBpMTYgc2lnbmV4dCkgIzMgewotICAg JTMgPSBhbGxvY2EgaTE2LCBhbGlnbiAyCi0gICAlNCA9IGFsbG9jYSBpMTYsIGFsaWduIDIKLSAg ICU1ID0gYWxsb2NhIDwxIHggaTE2PiwgYWxpZ24gMgotQEAgLTE0NDUsNyArMTQ0NSw3IEBAIGRl ZmluZSBkc29fbG9jYWwgc2lnbmV4dCBpMTYgQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW1z cyhpMTYgc2lnbmV4dCwgaTE2IHNpCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5l IG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MSB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNp Y19pbXBsX3NyZW11MkNNdmIxX3NTXyg8MSB4IGkxNj4sIDwxIHggaTE2PikgIzMgewotK2RlZmlu ZSBpbnRlcm5hbCA8MSB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIx X3NTXyg8MSB4IGkxNj4sIDwxIHggaTE2PikgIzMgewotICAgJTMgPSBhbGxvY2EgPDEgeCBpMTY+ LCBhbGlnbiAyCi0gICAlNCA9IGFsbG9jYSA8MSB4IGkxNj4sIGFsaWduIDIKLSAgICU1ID0gYWxs b2NhIDwxIHggaTE2PiwgYWxpZ24gMgotQEAgLTE0NTksNyArMTQ1OSw3IEBAIGRlZmluZSBkc29f bG9jYWwgPDEgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMV9zU18o PDEgeCBpMTY+LCA8Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5k Ci0tZGVmaW5lIGRzb19sb2NhbCA8MiB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3Ny ZW11MkNNdmIyX3NTXyg8MiB4IGkxNj4sIDwyIHggaTE2PikgIzUgewotK2RlZmluZSBpbnRlcm5h bCA8MiB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIyX3NTXyg8MiB4 IGkxNj4sIDwyIHggaTE2PikgIzUgewotICAgJTMgPSBhbGxvY2EgPDIgeCBpMTY+LCBhbGlnbiA0 Ci0gICAlNCA9IGFsbG9jYSA8MiB4IGkxNj4sIGFsaWduIDQKLSAgICU1ID0gYWxsb2NhIDwyIHgg aTE2PiwgYWxpZ24gNAotQEAgLTE0NzMsNyArMTQ3Myw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDIg eCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMl9zU18oPDIgeCBpMTY+ LCA8Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5l IGRzb19sb2NhbCA8NCB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmI0 X3NTXyg8NCB4IGkxNj4sIDw0IHggaTE2PikgIzcgewotK2RlZmluZSBpbnRlcm5hbCA8NCB4IGkx Nj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmI0X3NTXyg8NCB4IGkxNj4sIDw0 IHggaTE2PikgIzcgewotICAgJTMgPSBhbGxvY2EgPDQgeCBpMTY+LCBhbGlnbiA4Ci0gICAlNCA9 IGFsbG9jYSA8NCB4IGkxNj4sIGFsaWduIDgKLSAgICU1ID0gYWxsb2NhIDw0IHggaTE2PiwgYWxp Z24gOAotQEAgLTE0ODcsNyArMTQ4Nyw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDQgeCBpMTY+IEBf WjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiNF9zU18oPDQgeCBpMTY+LCA8Ci0gfQot IAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2Nh bCA8OCB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmI4X3NTXyg8OCB4 IGkxNj4sIDw4IHggaTE2PikgIzkgewotK2RlZmluZSBpbnRlcm5hbCA8OCB4IGkxNj4gQF9aMjRf X2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmI4X3NTXyg8OCB4IGkxNj4sIDw4IHggaTE2Pikg IzkgewotICAgJTMgPSBhbGxvY2EgPDggeCBpMTY+LCBhbGlnbiAxNgotICAgJTQgPSBhbGxvY2Eg PDggeCBpMTY+LCBhbGlnbiAxNgotICAgJTUgPSBhbGxvY2EgPDggeCBpMTY+LCBhbGlnbiAxNgot QEAgLTE1MDEsNyArMTUwMSw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDggeCBpMTY+IEBfWjI0X19j bV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiOF9zU18oPDggeCBpMTY+LCA8Ci0gfQotIAotIDsg RnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MTYg eCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMTZfc1NfKDwxNiB4IGkx Nj4sIDwxNiB4IGkxNj4pICMxMSB7Ci0rZGVmaW5lIGludGVybmFsIDwxNiB4IGkxNj4gQF9aMjRf X2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIxNl9zU18oPDE2IHggaTE2PiwgPDE2IHggaTE2 PikgIzExIHsKLSAgICUzID0gYWxsb2NhIDwxNiB4IGkxNj4sIGFsaWduIDMyCi0gICAlNCA9IGFs bG9jYSA8MTYgeCBpMTY+LCBhbGlnbiAzMgotICAgJTUgPSBhbGxvY2EgPDE2IHggaTE2PiwgYWxp Z24gMzIKLUBAIC0xNTE1LDcgKzE1MTUsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwxNiB4IGkxNj4g QF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIxNl9zU18oPDE2IHggaTE2PgotIH0K LSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9j YWwgPDMyIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjMyX3NTXyg8 MzIgeCBpMTY+LCA8MzIgeCBpMTY+KSAjMTMgewotK2RlZmluZSBpbnRlcm5hbCA8MzIgeCBpMTY+ IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMzJfc1NfKDwzMiB4IGkxNj4sIDwz MiB4IGkxNj4pICMxMyB7Ci0gICAlMyA9IGFsbG9jYSA8MzIgeCBpMTY+LCBhbGlnbiA2NAotICAg JTQgPSBhbGxvY2EgPDMyIHggaTE2PiwgYWxpZ24gNjQKLSAgICU1ID0gYWxsb2NhIDwzMiB4IGkx Nj4sIGFsaWduIDY0Ci1AQCAtMTUyOSw3ICsxNTI5LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MzIg eCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMzJfc1NfKDwzMiB4IGkx Nj4KLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUg ZHNvX2xvY2FsIGkzMiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdmlpKGkzMiwgaTMyKSAj MTQgewotK2RlZmluZSBpbnRlcm5hbCBpMzIgQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZp aShpMzIsIGkzMikgIzE0IHsKLSAgICUzID0gYWxsb2NhIGkzMiwgYWxpZ24gNAotICAgJTQgPSBh bGxvY2EgaTMyLCBhbGlnbiA0Ci0gICAlNSA9IGFsbG9jYSA8MSB4IGkzMj4sIGFsaWduIDQKLUBA IC0xNzMwLDcgKzE3MzAsNyBAQCBkZWZpbmUgaW50ZXJuYWwgPDEgeCBpMzI+IEBfWk43ZGV0YWls czEzX19pbXBsX2RpdnJlbUlMaTFFRUV1MkNNdmJUX19pUzFfUzFfdTJDTQotIGRlY2xhcmUgPDEg eCBpMzI+IEBsbHZtLmdlbngucmRyZWdpb25pLnYxaTMyLnYxaTMyLmkxNig8MSB4IGkzMj4sIGkz MiwgaTMyLCBpMzIsIGkxNiwgaTMyKSAjMgotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5l IG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MSB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNp Y19pbXBsX3NkaXZ1MkNNdmIxX2lTXyg8MSB4IGkzMj4sIDwxIHggaTMyPikgIzE0IHsKLStkZWZp bmUgaW50ZXJuYWwgPDEgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZi MV9pU18oPDEgeCBpMzI+LCA8MSB4IGkzMj4pICMxNCB7Ci0gICAlMyA9IGFsbG9jYSA8MSB4IGkz Mj4sIGFsaWduIDQKLSAgICU0ID0gYWxsb2NhIDwxIHggaTMyPiwgYWxpZ24gNAotICAgJTUgPSBh bGxvY2EgPDEgeCBpMzI+LCBhbGlnbiA0Ci1AQCAtMTc0Niw3ICsxNzQ2LDcgQEAgZGVmaW5lIGRz b19sb2NhbCA8MSB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmIxX2lT Xyg8MSB4IGkzMj4sIDwKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndp bmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwyIHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxf c2RpdnUyQ012YjJfaVNfKDwyIHggaTMyPiwgPDIgeCBpMzI+KSAjMTUgewotK2RlZmluZSBpbnRl cm5hbCA8MiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmIyX2lTXyg8 MiB4IGkzMj4sIDwyIHggaTMyPikgIzE1IHsKLSAgICUzID0gYWxsb2NhIDwyIHggaTMyPiwgYWxp Z24gOAotICAgJTQgPSBhbGxvY2EgPDIgeCBpMzI+LCBhbGlnbiA4Ci0gICAlNSA9IGFsbG9jYSA8 MiB4IGkzMj4sIGFsaWduIDgKLUBAIC0xOTMyLDcgKzE5MzIsNyBAQCBkZWZpbmUgaW50ZXJuYWwg PDIgeCBpMzI+IEBfWk43ZGV0YWlsczEzX19pbXBsX2RpdnJlbUlMaTJFRUV1MkNNdmJUX19pUzFf UzFfdTJDTQotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRl ZmluZSBkc29fbG9jYWwgPDQgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJD TXZiNF9pU18oPDQgeCBpMzI+LCA8NCB4IGkzMj4pICMxNiB7Ci0rZGVmaW5lIGludGVybmFsIDw0 IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjRfaVNfKDw0IHggaTMy PiwgPDQgeCBpMzI+KSAjMTYgewotICAgJTMgPSBhbGxvY2EgPDQgeCBpMzI+LCBhbGlnbiAxNgot ICAgJTQgPSBhbGxvY2EgPDQgeCBpMzI+LCBhbGlnbiAxNgotICAgJTUgPSBhbGxvY2EgPDQgeCBp MzI+LCBhbGlnbiAxNgotQEAgLTI0OTAsNyArMjQ5MCw3IEBAIGRlZmluZSBpbnRlcm5hbCA8MTYg eCBpMzI+IEBfWk43ZGV0YWlsczEzX19pbXBsX2RpdnJlbUlMaTE2RUVFdTJDTXZiVF9faVMxX1Mx X3UyCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5l IGRzb19sb2NhbCA8MzIgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZi MzJfaVNfKDwzMiB4IGkzMj4sIDwzMiB4IGkzMj4pICMxOSB7Ci0rZGVmaW5lIGludGVybmFsIDwz MiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmIzMl9pU18oPDMyIHgg aTMyPiwgPDMyIHggaTMyPikgIzE5IHsKLSAgICUzID0gYWxsb2NhIDwzMiB4IGkzMj4sIGFsaWdu IDEyOAotICAgJTQgPSBhbGxvY2EgPDMyIHggaTMyPiwgYWxpZ24gMTI4Ci0gICAlNSA9IGFsbG9j YSA8MzIgeCBpMzI+LCBhbGlnbiAxMjgKLUBAIC0yNjc2LDcgKzI2NzYsNyBAQCBkZWZpbmUgaW50 ZXJuYWwgPDMyIHggaTMyPiBAX1pON2RldGFpbHMxM19faW1wbF9kaXZyZW1JTGkzMkVFRXUyQ012 YlRfX2lTMV9TMV91MgotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2lu ZAotLWRlZmluZSBkc29fbG9jYWwgaTMyIEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtaWko aTMyLCBpMzIpICMxNCB7Ci0rZGVmaW5lIGludGVybmFsIGkzMiBAX1oyNF9fY21faW50cmluc2lj X2ltcGxfc3JlbWlpKGkzMiwgaTMyKSAjMTQgewotICAgJTMgPSBhbGxvY2EgaTMyLCBhbGlnbiA0 Ci0gICAlNCA9IGFsbG9jYSBpMzIsIGFsaWduIDQKLSAgICU1ID0gYWxsb2NhIDwxIHggaTMyPiwg YWxpZ24gNAotQEAgLTI3MDIsNyArMjcwMiw3IEBAIGRlZmluZSBkc29fbG9jYWwgaTMyIEBfWjI0 X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtaWkoaTMyLCBpMzIpICMxNCB7Ci0gfQotIAotIDsgRnVu Y3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MSB4IGkz Mj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIxX2lTXyg8MSB4IGkzMj4sIDwx IHggaTMyPikgIzE0IHsKLStkZWZpbmUgaW50ZXJuYWwgPDEgeCBpMzI+IEBfWjI0X19jbV9pbnRy aW5zaWNfaW1wbF9zcmVtdTJDTXZiMV9pU18oPDEgeCBpMzI+LCA8MSB4IGkzMj4pICMxNCB7Ci0g ICAlMyA9IGFsbG9jYSA8MSB4IGkzMj4sIGFsaWduIDQKLSAgICU0ID0gYWxsb2NhIDwxIHggaTMy PiwgYWxpZ24gNAotICAgJTUgPSBhbGxvY2EgPDEgeCBpMzI+LCBhbGlnbiA0Ci1AQCAtMjcxNiw3 ICsyNzE2LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MSB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNp Y19pbXBsX3NyZW11MkNNdmIxX2lTXyg8MSB4IGkzMj4sIDwKLSB9Ci0gCi0gOyBGdW5jdGlvbiBB dHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwyIHggaTMyPiBAX1oy NF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjJfaVNfKDwyIHggaTMyPiwgPDIgeCBpMzI+ KSAjMTUgewotK2RlZmluZSBpbnRlcm5hbCA8MiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19p bXBsX3NyZW11MkNNdmIyX2lTXyg8MiB4IGkzMj4sIDwyIHggaTMyPikgIzE1IHsKLSAgICUzID0g YWxsb2NhIDwyIHggaTMyPiwgYWxpZ24gOAotICAgJTQgPSBhbGxvY2EgPDIgeCBpMzI+LCBhbGln biA4Ci0gICAlNSA9IGFsbG9jYSA8MiB4IGkzMj4sIGFsaWduIDgKLUBAIC0yNzMwLDcgKzI3MzAs NyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwyIHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxf c3JlbXUyQ012YjJfaVNfKDwyIHggaTMyPiwgPAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBu b2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDQgeCBpMzI+IEBfWjI0X19jbV9p bnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiNF9pU18oPDQgeCBpMzI+LCA8NCB4IGkzMj4pICMxNiB7 Ci0rZGVmaW5lIGludGVybmFsIDw0IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3Jl bXUyQ012YjRfaVNfKDw0IHggaTMyPiwgPDQgeCBpMzI+KSAjMTYgewotICAgJTMgPSBhbGxvY2Eg PDQgeCBpMzI+LCBhbGlnbiAxNgotICAgJTQgPSBhbGxvY2EgPDQgeCBpMzI+LCBhbGlnbiAxNgot ICAgJTUgPSBhbGxvY2EgPDQgeCBpMzI+LCBhbGlnbiAxNgotQEAgLTI3NDQsNyArMjc0NCw3IEBA IGRlZmluZSBkc29fbG9jYWwgPDQgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVt dTJDTXZiNF9pU18oPDQgeCBpMzI+LCA8Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5s aW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8OCB4IGkzMj4gQF9aMjRfX2NtX2ludHJp bnNpY19pbXBsX3NyZW11MkNNdmI4X2lTXyg8OCB4IGkzMj4sIDw4IHggaTMyPikgIzE3IHsKLStk ZWZpbmUgaW50ZXJuYWwgPDggeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJD TXZiOF9pU18oPDggeCBpMzI+LCA8OCB4IGkzMj4pICMxNyB7Ci0gICAlMyA9IGFsbG9jYSA8OCB4 IGkzMj4sIGFsaWduIDMyCi0gICAlNCA9IGFsbG9jYSA8OCB4IGkzMj4sIGFsaWduIDMyCi0gICAl NSA9IGFsbG9jYSA8OCB4IGkzMj4sIGFsaWduIDMyCi1AQCAtMjc1OCw3ICsyNzU4LDcgQEAgZGVm aW5lIGRzb19sb2NhbCA8OCB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNN dmI4X2lTXyg8OCB4IGkzMj4sIDwKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUg bm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwxNiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNp Y19pbXBsX3NyZW11MkNNdmIxNl9pU18oPDE2IHggaTMyPiwgPDE2IHggaTMyPikgIzE4IHsKLStk ZWZpbmUgaW50ZXJuYWwgPDE2IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUy Q012YjE2X2lTXyg8MTYgeCBpMzI+LCA8MTYgeCBpMzI+KSAjMTggewotICAgJTMgPSBhbGxvY2Eg PDE2IHggaTMyPiwgYWxpZ24gNjQKLSAgICU0ID0gYWxsb2NhIDwxNiB4IGkzMj4sIGFsaWduIDY0 Ci0gICAlNSA9IGFsbG9jYSA8MTYgeCBpMzI+LCBhbGlnbiA2NAotQEAgLTI3NzIsNyArMjc3Miw3 IEBAIGRlZmluZSBkc29fbG9jYWwgPDE2IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxf c3JlbXUyQ012YjE2X2lTXyg8MTYgeCBpMzI+Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5v aW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MzIgeCBpMzI+IEBfWjI0X19jbV9p bnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMzJfaVNfKDwzMiB4IGkzMj4sIDwzMiB4IGkzMj4pICMx OSB7Ci0rZGVmaW5lIGludGVybmFsIDwzMiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBs X3NyZW11MkNNdmIzMl9pU18oPDMyIHggaTMyPiwgPDMyIHggaTMyPikgIzE5IHsKLSAgICUzID0g YWxsb2NhIDwzMiB4IGkzMj4sIGFsaWduIDEyOAotICAgJTQgPSBhbGxvY2EgPDMyIHggaTMyPiwg YWxpZ24gMTI4Ci0gICAlNSA9IGFsbG9jYSA8MzIgeCBpMzI+LCBhbGlnbiAxMjgKLUBAIC0yNzg2 LDcgKzI3ODYsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwzMiB4IGkzMj4gQF9aMjRfX2NtX2ludHJp bnNpY19pbXBsX3NyZW11MkNNdmIzMl9pU18oPDMyIHggaTMyPgotIH0KLSAKLSA7IEZ1bmN0aW9u IEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgemVyb2V4dCBpOCBA X1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRpdmhoKGk4IHplcm9leHQsIGk4IHplcm9leHQpICMy MSB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQgaTggQF9aMjRfX2NtX2ludHJpbnNpY19pbXBs X3VkaXZoaChpOCB6ZXJvZXh0LCBpOCB6ZXJvZXh0KSAjMjEgewotICAgJTMgPSBhbGxvY2EgaTgs IGFsaWduIDEKLSAgICU0ID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSA8MSB4 IGk4PiwgYWxpZ24gMQotQEAgLTI4NDQsNyArMjg0NCw3IEBAIGRlZmluZSBpbnRlcm5hbCA8MSB4 IGk4PiBAX1pON2RldGFpbHMxNF9faW1wbF91ZGl2cmVtSUxpMUVFRXUyQ012YlRfX2hTMV9TMV91 MkNNCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5l IGRzb19sb2NhbCA8MSB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRpdnUyQ012YjFf aFNfKDwxIHggaTg+LCA8MSB4IGk4PikgIzIxIHsKLStkZWZpbmUgaW50ZXJuYWwgPDEgeCBpOD4g QF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1MkNNdmIxX2hTXyg8MSB4IGk4PiwgPDEgeCBp OD4pICMyMSB7Ci0gICAlMyA9IGFsbG9jYSA8MSB4IGk4PiwgYWxpZ24gMQotICAgJTQgPSBhbGxv Y2EgPDEgeCBpOD4sIGFsaWduIDEKLSAgICU1ID0gYWxsb2NhIDwxIHggaTg+LCBhbGlnbiAxCi1A QCAtMjg2MCw3ICsyODYwLDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MSB4IGk4PiBAX1oyNF9fY21f aW50cmluc2ljX2ltcGxfdWRpdnUyQ012YjFfaFNfKDwxIHggaTg+LCA8MQotIH0KLSAKLSA7IEZ1 bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDIgeCBp OD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1MkNNdmIyX2hTXyg8MiB4IGk4PiwgPDIg eCBpOD4pICMyMiB7Ci0rZGVmaW5lIGludGVybmFsIDwyIHggaTg+IEBfWjI0X19jbV9pbnRyaW5z aWNfaW1wbF91ZGl2dTJDTXZiMl9oU18oPDIgeCBpOD4sIDwyIHggaTg+KSAjMjIgewotICAgJTMg PSBhbGxvY2EgPDIgeCBpOD4sIGFsaWduIDIKLSAgICU0ID0gYWxsb2NhIDwyIHggaTg+LCBhbGln biAyCi0gICAlNSA9IGFsbG9jYSA8MiB4IGk4PiwgYWxpZ24gMgotQEAgLTI5MDYsNyArMjkwNiw3 IEBAIGRlZmluZSBpbnRlcm5hbCA8MiB4IGk4PiBAX1pON2RldGFpbHMxNF9faW1wbF91ZGl2cmVt SUxpMkVFRXUyQ012YlRfX2hTMV9TMV91MkNNCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5v aW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8NCB4IGk4PiBAX1oyNF9fY21faW50 cmluc2ljX2ltcGxfdWRpdnUyQ012YjRfaFNfKDw0IHggaTg+LCA8NCB4IGk4PikgIzE0IHsKLStk ZWZpbmUgaW50ZXJuYWwgPDQgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1MkNN dmI0X2hTXyg8NCB4IGk4PiwgPDQgeCBpOD4pICMxNCB7Ci0gICAlMyA9IGFsbG9jYSA8NCB4IGk4 PiwgYWxpZ24gNAotICAgJTQgPSBhbGxvY2EgPDQgeCBpOD4sIGFsaWduIDQKLSAgICU1ID0gYWxs b2NhIDw0IHggaTg+LCBhbGlnbiA0Ci1AQCAtMzA0NCw3ICszMDQ0LDcgQEAgZGVmaW5lIGludGVy bmFsIDwxNiB4IGk4PiBAX1pON2RldGFpbHMxNF9faW1wbF91ZGl2cmVtSUxpMTZFRUV1MkNNdmJU X19oUzFfUzFfdTIKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQK LS1kZWZpbmUgZHNvX2xvY2FsIDwzMiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRp dnUyQ012YjMyX2hTXyg8MzIgeCBpOD4sIDwzMiB4IGk4PikgIzE3IHsKLStkZWZpbmUgaW50ZXJu YWwgPDMyIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZiMzJfaFNfKDwz MiB4IGk4PiwgPDMyIHggaTg+KSAjMTcgewotICAgJTMgPSBhbGxvY2EgPDMyIHggaTg+LCBhbGln biAzMgotICAgJTQgPSBhbGxvY2EgPDMyIHggaTg+LCBhbGlnbiAzMgotICAgJTUgPSBhbGxvY2Eg PDMyIHggaTg+LCBhbGlnbiAzMgotQEAgLTMwOTAsNyArMzA5MCw3IEBAIGRlZmluZSBpbnRlcm5h bCA8MzIgeCBpOD4gQF9aTjdkZXRhaWxzMTRfX2ltcGxfdWRpdnJlbUlMaTMyRUVFdTJDTXZiVF9f aFMxX1MxX3UyCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0t ZGVmaW5lIGRzb19sb2NhbCB6ZXJvZXh0IGk4IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVt aGgoaTggemVyb2V4dCwgaTggemVyb2V4dCkgIzIxIHsKLStkZWZpbmUgaW50ZXJuYWwgemVyb2V4 dCBpOCBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbWhoKGk4IHplcm9leHQsIGk4IHplcm9l eHQpICMyMSB7Ci0gICAlMyA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgJTQgPSBhbGxvY2EgaTgs IGFsaWduIDEKLSAgICU1ID0gYWxsb2NhIDwxIHggaTg+LCBhbGlnbiAxCi1AQCAtMzExNiw3ICsz MTE2LDcgQEAgZGVmaW5lIGRzb19sb2NhbCB6ZXJvZXh0IGk4IEBfWjI0X19jbV9pbnRyaW5zaWNf aW1wbF91cmVtaGgoaTggemVyb2V4dCwgaTggemVyb2UKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRy czogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwxIHggaTg+IEBfWjI0X19j bV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMV9oU18oPDEgeCBpOD4sIDwxIHggaTg+KSAjMjEg ewotK2RlZmluZSBpbnRlcm5hbCA8MSB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJl bXUyQ012YjFfaFNfKDwxIHggaTg+LCA8MSB4IGk4PikgIzIxIHsKLSAgICUzID0gYWxsb2NhIDwx IHggaTg+LCBhbGlnbiAxCi0gICAlNCA9IGFsbG9jYSA8MSB4IGk4PiwgYWxpZ24gMQotICAgJTUg PSBhbGxvY2EgPDEgeCBpOD4sIGFsaWduIDEKLUBAIC0zMTMwLDcgKzMxMzAsNyBAQCBkZWZpbmUg ZHNvX2xvY2FsIDwxIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMV9o U18oPDEgeCBpOD4sIDwxCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53 aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxf dXJlbXUyQ012YjJfaFNfKDwyIHggaTg+LCA8MiB4IGk4PikgIzIyIHsKLStkZWZpbmUgaW50ZXJu YWwgPDIgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIyX2hTXyg8MiB4 IGk4PiwgPDIgeCBpOD4pICMyMiB7Ci0gICAlMyA9IGFsbG9jYSA8MiB4IGk4PiwgYWxpZ24gMgot ICAgJTQgPSBhbGxvY2EgPDIgeCBpOD4sIGFsaWduIDIKLSAgICU1ID0gYWxsb2NhIDwyIHggaTg+ LCBhbGlnbiAyCi1AQCAtMzE0NCw3ICszMTQ0LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MiB4IGk4 PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjJfaFNfKDwyIHggaTg+LCA8Mgot IH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29f bG9jYWwgPDQgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmI0X2hTXyg8 NCB4IGk4PiwgPDQgeCBpOD4pICMxNCB7Ci0rZGVmaW5lIGludGVybmFsIDw0IHggaTg+IEBfWjI0 X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiNF9oU18oPDQgeCBpOD4sIDw0IHggaTg+KSAj MTQgewotICAgJTMgPSBhbGxvY2EgPDQgeCBpOD4sIGFsaWduIDQKLSAgICU0ID0gYWxsb2NhIDw0 IHggaTg+LCBhbGlnbiA0Ci0gICAlNSA9IGFsbG9jYSA8NCB4IGk4PiwgYWxpZ24gNAotQEAgLTMx NTgsNyArMzE1OCw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDQgeCBpOD4gQF9aMjRfX2NtX2ludHJp bnNpY19pbXBsX3VyZW11MkNNdmI0X2hTXyg8NCB4IGk4PiwgPDQKLSB9Ci0gCi0gOyBGdW5jdGlv biBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDw4IHggaTg+IEBf WjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiOF9oU18oPDggeCBpOD4sIDw4IHggaTg+ KSAjMTUgewotK2RlZmluZSBpbnRlcm5hbCA8OCB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2lt cGxfdXJlbXUyQ012YjhfaFNfKDw4IHggaTg+LCA8OCB4IGk4PikgIzE1IHsKLSAgICUzID0gYWxs b2NhIDw4IHggaTg+LCBhbGlnbiA4Ci0gICAlNCA9IGFsbG9jYSA8OCB4IGk4PiwgYWxpZ24gOAot ICAgJTUgPSBhbGxvY2EgPDggeCBpOD4sIGFsaWduIDgKLUBAIC0zMTcyLDcgKzMxNzIsNyBAQCBk ZWZpbmUgZHNvX2xvY2FsIDw4IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJD TXZiOF9oU18oPDggeCBpOD4sIDw4Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5l IG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MTYgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNp Y19pbXBsX3VyZW11MkNNdmIxNl9oU18oPDE2IHggaTg+LCA8MTYgeCBpOD4pICMxNiB7Ci0rZGVm aW5lIGludGVybmFsIDwxNiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012 YjE2X2hTXyg8MTYgeCBpOD4sIDwxNiB4IGk4PikgIzE2IHsKLSAgICUzID0gYWxsb2NhIDwxNiB4 IGk4PiwgYWxpZ24gMTYKLSAgICU0ID0gYWxsb2NhIDwxNiB4IGk4PiwgYWxpZ24gMTYKLSAgICU1 ID0gYWxsb2NhIDwxNiB4IGk4PiwgYWxpZ24gMTYKLUBAIC0zMTg2LDcgKzMxODYsNyBAQCBkZWZp bmUgZHNvX2xvY2FsIDwxNiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012 YjE2X2hTXyg8MTYgeCBpOD4sCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5v dW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MzIgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19p bXBsX3VyZW11MkNNdmIzMl9oU18oPDMyIHggaTg+LCA8MzIgeCBpOD4pICMxNyB7Ci0rZGVmaW5l IGludGVybmFsIDwzMiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjMy X2hTXyg8MzIgeCBpOD4sIDwzMiB4IGk4PikgIzE3IHsKLSAgICUzID0gYWxsb2NhIDwzMiB4IGk4 PiwgYWxpZ24gMzIKLSAgICU0ID0gYWxsb2NhIDwzMiB4IGk4PiwgYWxpZ24gMzIKLSAgICU1ID0g YWxsb2NhIDwzMiB4IGk4PiwgYWxpZ24gMzIKLUBAIC0zMjAwLDcgKzMyMDAsNyBAQCBkZWZpbmUg ZHNvX2xvY2FsIDwzMiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjMy X2hTXyg8MzIgeCBpOD4sCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53 aW5kCi0tZGVmaW5lIGRzb19sb2NhbCB6ZXJvZXh0IGkxNiBAX1oyNF9fY21faW50cmluc2ljX2lt cGxfdWRpdnR0KGkxNiB6ZXJvZXh0LCBpMTYgemVyb2V4dCkgIzIyIHsKLStkZWZpbmUgaW50ZXJu YWwgemVyb2V4dCBpMTYgQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZ0dChpMTYgemVyb2V4 dCwgaTE2IHplcm9leHQpICMyMiB7Ci0gICAlMyA9IGFsbG9jYSBpMTYsIGFsaWduIDIKLSAgICU0 ID0gYWxsb2NhIGkxNiwgYWxpZ24gMgotICAgJTUgPSBhbGxvY2EgPDEgeCBpMTY+LCBhbGlnbiAy Ci1AQCAtMzI3OCw3ICszMjc4LDcgQEAgZGVmaW5lIGludGVybmFsIDwxIHggaTE2PiBAX1pON2Rl dGFpbHMxNF9faW1wbF91ZGl2cmVtSUxpMUVFRXUyQ012YlRfX3RTMV9TMV91MkMKLSB9Ci0gCi0g OyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwx IHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRpdnUyQ012YjFfdFNfKDwxIHggaTE2 PiwgPDEgeCBpMTY+KSAjMjIgewotK2RlZmluZSBpbnRlcm5hbCA8MSB4IGkxNj4gQF9aMjRfX2Nt X2ludHJpbnNpY19pbXBsX3VkaXZ1MkNNdmIxX3RTXyg8MSB4IGkxNj4sIDwxIHggaTE2PikgIzIy IHsKLSAgICUzID0gYWxsb2NhIDwxIHggaTE2PiwgYWxpZ24gMgotICAgJTQgPSBhbGxvY2EgPDEg eCBpMTY+LCBhbGlnbiAyCi0gICAlNSA9IGFsbG9jYSA8MSB4IGkxNj4sIGFsaWduIDIKLUBAIC0z Mjk0LDcgKzMyOTQsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwxIHggaTE2PiBAX1oyNF9fY21faW50 cmluc2ljX2ltcGxfdWRpdnUyQ012YjFfdFNfKDwxIHggaTE2PiwgPAotIH0KLSAKLSA7IEZ1bmN0 aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDIgeCBpMTY+ IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZiMl90U18oPDIgeCBpMTY+LCA8MiB4 IGkxNj4pICMxNCB7Ci0rZGVmaW5lIGludGVybmFsIDwyIHggaTE2PiBAX1oyNF9fY21faW50cmlu c2ljX2ltcGxfdWRpdnUyQ012YjJfdFNfKDwyIHggaTE2PiwgPDIgeCBpMTY+KSAjMTQgewotICAg JTMgPSBhbGxvY2EgPDIgeCBpMTY+LCBhbGlnbiA0Ci0gICAlNCA9IGFsbG9jYSA8MiB4IGkxNj4s IGFsaWduIDQKLSAgICU1ID0gYWxsb2NhIDwyIHggaTE2PiwgYWxpZ24gNAotQEAgLTMzNjAsNyAr MzM2MCw3IEBAIGRlZmluZSBpbnRlcm5hbCA8MiB4IGkxNj4gQF9aTjdkZXRhaWxzMTRfX2ltcGxf dWRpdnJlbUlMaTJFRUV1MkNNdmJUX190UzFfUzFfdTJDCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0 cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8NCB4IGkxNj4gQF9aMjRf X2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1MkNNdmI0X3RTXyg8NCB4IGkxNj4sIDw0IHggaTE2Pikg IzE1IHsKLStkZWZpbmUgaW50ZXJuYWwgPDQgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1w bF91ZGl2dTJDTXZiNF90U18oPDQgeCBpMTY+LCA8NCB4IGkxNj4pICMxNSB7Ci0gICAlMyA9IGFs bG9jYSA8NCB4IGkxNj4sIGFsaWduIDgKLSAgICU0ID0gYWxsb2NhIDw0IHggaTE2PiwgYWxpZ24g OAotICAgJTUgPSBhbGxvY2EgPDQgeCBpMTY+LCBhbGlnbiA4Ci1AQCAtMzU1OCw3ICszNTU4LDcg QEAgZGVmaW5lIGludGVybmFsIDwxNiB4IGkxNj4gQF9aTjdkZXRhaWxzMTRfX2ltcGxfdWRpdnJl bUlMaTE2RUVFdTJDTXZiVF9fdFMxX1MxX3UKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9p bmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwzMiB4IGkxNj4gQF9aMjRfX2NtX2lu dHJpbnNpY19pbXBsX3VkaXZ1MkNNdmIzMl90U18oPDMyIHggaTE2PiwgPDMyIHggaTE2PikgIzE4 IHsKLStkZWZpbmUgaW50ZXJuYWwgPDMyIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxf dWRpdnUyQ012YjMyX3RTXyg8MzIgeCBpMTY+LCA8MzIgeCBpMTY+KSAjMTggewotICAgJTMgPSBh bGxvY2EgPDMyIHggaTE2PiwgYWxpZ24gNjQKLSAgICU0ID0gYWxsb2NhIDwzMiB4IGkxNj4sIGFs aWduIDY0Ci0gICAlNSA9IGFsbG9jYSA8MzIgeCBpMTY+LCBhbGlnbiA2NAotQEAgLTM2MjQsNyAr MzYyNCw3IEBAIGRlZmluZSBpbnRlcm5hbCA8MzIgeCBpMTY+IEBfWk43ZGV0YWlsczE0X19pbXBs X3VkaXZyZW1JTGkzMkVFRXUyQ012YlRfX3RTMV9TMV91Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0 cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCB6ZXJvZXh0IGkxNiBAX1oy NF9fY21faW50cmluc2ljX2ltcGxfdXJlbXR0KGkxNiB6ZXJvZXh0LCBpMTYgemVyb2V4dCkgIzIy IHsKLStkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMTYgQF9aMjRfX2NtX2ludHJpbnNpY19pbXBs X3VyZW10dChpMTYgemVyb2V4dCwgaTE2IHplcm9leHQpICMyMiB7Ci0gICAlMyA9IGFsbG9jYSBp MTYsIGFsaWduIDIKLSAgICU0ID0gYWxsb2NhIGkxNiwgYWxpZ24gMgotICAgJTUgPSBhbGxvY2Eg PDEgeCBpMTY+LCBhbGlnbiAyCi1AQCAtMzY1MCw3ICszNjUwLDcgQEAgZGVmaW5lIGRzb19sb2Nh bCB6ZXJvZXh0IGkxNiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXR0KGkxNiB6ZXJvZXh0 LCBpMTYgemUKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1k ZWZpbmUgZHNvX2xvY2FsIDwxIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUy Q012YjFfdFNfKDwxIHggaTE2PiwgPDEgeCBpMTY+KSAjMjIgewotK2RlZmluZSBpbnRlcm5hbCA8 MSB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIxX3RTXyg8MSB4IGkx Nj4sIDwxIHggaTE2PikgIzIyIHsKLSAgICUzID0gYWxsb2NhIDwxIHggaTE2PiwgYWxpZ24gMgot ICAgJTQgPSBhbGxvY2EgPDEgeCBpMTY+LCBhbGlnbiAyCi0gICAlNSA9IGFsbG9jYSA8MSB4IGkx Nj4sIGFsaWduIDIKLUBAIC0zNjY0LDcgKzM2NjQsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwxIHgg aTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjFfdFNfKDwxIHggaTE2Piwg PAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBk c29fbG9jYWwgPDIgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMl90 U18oPDIgeCBpMTY+LCA8MiB4IGkxNj4pICMxNCB7Ci0rZGVmaW5lIGludGVybmFsIDwyIHggaTE2 PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjJfdFNfKDwyIHggaTE2PiwgPDIg eCBpMTY+KSAjMTQgewotICAgJTMgPSBhbGxvY2EgPDIgeCBpMTY+LCBhbGlnbiA0Ci0gICAlNCA9 IGFsbG9jYSA8MiB4IGkxNj4sIGFsaWduIDQKLSAgICU1ID0gYWxsb2NhIDwyIHggaTE2PiwgYWxp Z24gNAotQEAgLTM2NzgsNyArMzY3OCw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDIgeCBpMTY+IEBf WjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMl90U18oPDIgeCBpMTY+LCA8Ci0gfQot IAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2Nh bCA8NCB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmI0X3RTXyg8NCB4 IGkxNj4sIDw0IHggaTE2PikgIzE1IHsKLStkZWZpbmUgaW50ZXJuYWwgPDQgeCBpMTY+IEBfWjI0 X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiNF90U18oPDQgeCBpMTY+LCA8NCB4IGkxNj4p ICMxNSB7Ci0gICAlMyA9IGFsbG9jYSA8NCB4IGkxNj4sIGFsaWduIDgKLSAgICU0ID0gYWxsb2Nh IDw0IHggaTE2PiwgYWxpZ24gOAotICAgJTUgPSBhbGxvY2EgPDQgeCBpMTY+LCBhbGlnbiA4Ci1A QCAtMzY5Miw3ICszNjkyLDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8NCB4IGkxNj4gQF9aMjRfX2Nt X2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmI0X3RTXyg8NCB4IGkxNj4sIDwKLSB9Ci0gCi0gOyBG dW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDw4IHgg aTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjhfdFNfKDw4IHggaTE2Piwg PDggeCBpMTY+KSAjMTYgewotK2RlZmluZSBpbnRlcm5hbCA8OCB4IGkxNj4gQF9aMjRfX2NtX2lu dHJpbnNpY19pbXBsX3VyZW11MkNNdmI4X3RTXyg8OCB4IGkxNj4sIDw4IHggaTE2PikgIzE2IHsK LSAgICUzID0gYWxsb2NhIDw4IHggaTE2PiwgYWxpZ24gMTYKLSAgICU0ID0gYWxsb2NhIDw4IHgg aTE2PiwgYWxpZ24gMTYKLSAgICU1ID0gYWxsb2NhIDw4IHggaTE2PiwgYWxpZ24gMTYKLUBAIC0z NzA2LDcgKzM3MDYsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDw4IHggaTE2PiBAX1oyNF9fY21faW50 cmluc2ljX2ltcGxfdXJlbXUyQ012YjhfdFNfKDw4IHggaTE2PiwgPAotIH0KLSAKLSA7IEZ1bmN0 aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDE2IHggaTE2 PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjE2X3RTXyg8MTYgeCBpMTY+LCA8 MTYgeCBpMTY+KSAjMTcgewotK2RlZmluZSBpbnRlcm5hbCA8MTYgeCBpMTY+IEBfWjI0X19jbV9p bnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMTZfdFNfKDwxNiB4IGkxNj4sIDwxNiB4IGkxNj4pICMx NyB7Ci0gICAlMyA9IGFsbG9jYSA8MTYgeCBpMTY+LCBhbGlnbiAzMgotICAgJTQgPSBhbGxvY2Eg PDE2IHggaTE2PiwgYWxpZ24gMzIKLSAgICU1ID0gYWxsb2NhIDwxNiB4IGkxNj4sIGFsaWduIDMy Ci1AQCAtMzcyMCw3ICszNzIwLDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MTYgeCBpMTY+IEBfWjI0 X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMTZfdFNfKDwxNiB4IGkxNj4KLSB9Ci0gCi0g OyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwz MiB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIzMl90U18oPDMyIHgg aTE2PiwgPDMyIHggaTE2PikgIzE4IHsKLStkZWZpbmUgaW50ZXJuYWwgPDMyIHggaTE2PiBAX1oy NF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjMyX3RTXyg8MzIgeCBpMTY+LCA8MzIgeCBp MTY+KSAjMTggewotICAgJTMgPSBhbGxvY2EgPDMyIHggaTE2PiwgYWxpZ24gNjQKLSAgICU0ID0g YWxsb2NhIDwzMiB4IGkxNj4sIGFsaWduIDY0Ci0gICAlNSA9IGFsbG9jYSA8MzIgeCBpMTY+LCBh bGlnbiA2NAotQEAgLTM3MzQsNyArMzczNCw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDMyIHggaTE2 PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjMyX3RTXyg8MzIgeCBpMTY+Ci0g fQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19s b2NhbCBpMzIgQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZqaihpMzIsIGkzMikgIzE0IHsK LStkZWZpbmUgaW50ZXJuYWwgaTMyIEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2amooaTMy LCBpMzIpICMxNCB7Ci0gICAlMyA9IGFsbG9jYSBpMzIsIGFsaWduIDQKLSAgICU0ID0gYWxsb2Nh IGkzMiwgYWxpZ24gNAotICAgJTUgPSBhbGxvY2EgPDEgeCBpMzI+LCBhbGlnbiA0Ci1AQCAtMzg5 Miw3ICszODkyLDcgQEAgZGVmaW5lIGludGVybmFsIDwxIHggaTMyPiBAX1pON2RldGFpbHMxNF9f aW1wbF91ZGl2cmVtSUxpMUVFRXUyQ012YlRfX2pTMV9TMV91MkMKLSB9Ci0gCi0gOyBGdW5jdGlv biBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwxIHggaTMyPiBA X1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRpdnUyQ012YjFfalNfKDwxIHggaTMyPiwgPDEgeCBp MzI+KSAjMTQgewotK2RlZmluZSBpbnRlcm5hbCA8MSB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNp Y19pbXBsX3VkaXZ1MkNNdmIxX2pTXyg8MSB4IGkzMj4sIDwxIHggaTMyPikgIzE0IHsKLSAgICUz ID0gYWxsb2NhIDwxIHggaTMyPiwgYWxpZ24gNAotICAgJTQgPSBhbGxvY2EgPDEgeCBpMzI+LCBh bGlnbiA0Ci0gICAlNSA9IGFsbG9jYSA8MSB4IGkzMj4sIGFsaWduIDQKLUBAIC0zOTA4LDcgKzM5 MDgsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwxIHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2lt cGxfdWRpdnUyQ012YjFfalNfKDwxIHggaTMyPiwgPAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJz OiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDIgeCBpMzI+IEBfWjI0X19j bV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZiMl9qU18oPDIgeCBpMzI+LCA8MiB4IGkzMj4pICMx NSB7Ci0rZGVmaW5lIGludGVybmFsIDwyIHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxf dWRpdnUyQ012YjJfalNfKDwyIHggaTMyPiwgPDIgeCBpMzI+KSAjMTUgewotICAgJTMgPSBhbGxv Y2EgPDIgeCBpMzI+LCBhbGlnbiA4Ci0gICAlNCA9IGFsbG9jYSA8MiB4IGkzMj4sIGFsaWduIDgK LSAgICU1ID0gYWxsb2NhIDwyIHggaTMyPiwgYWxpZ24gOAotQEAgLTQwNTQsNyArNDA1NCw3IEBA IGRlZmluZSBpbnRlcm5hbCA8MiB4IGkzMj4gQF9aTjdkZXRhaWxzMTRfX2ltcGxfdWRpdnJlbUlM aTJFRUV1MkNNdmJUX19qUzFfUzFfdTJDCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5s aW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8NCB4IGkzMj4gQF9aMjRfX2NtX2ludHJp bnNpY19pbXBsX3VkaXZ1MkNNdmI0X2pTXyg8NCB4IGkzMj4sIDw0IHggaTMyPikgIzE2IHsKLStk ZWZpbmUgaW50ZXJuYWwgPDQgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJD TXZiNF9qU18oPDQgeCBpMzI+LCA8NCB4IGkzMj4pICMxNiB7Ci0gICAlMyA9IGFsbG9jYSA8NCB4 IGkzMj4sIGFsaWduIDE2Ci0gICAlNCA9IGFsbG9jYSA8NCB4IGkzMj4sIGFsaWduIDE2Ci0gICAl NSA9IGFsbG9jYSA8NCB4IGkzMj4sIGFsaWduIDE2Ci1AQCAtNDQ5Miw3ICs0NDkyLDcgQEAgZGVm aW5lIGludGVybmFsIDwxNiB4IGkzMj4gQF9aTjdkZXRhaWxzMTRfX2ltcGxfdWRpdnJlbUlMaTE2 RUVFdTJDTXZiVF9falMxX1MxX3UKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUg bm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwzMiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNp Y19pbXBsX3VkaXZ1MkNNdmIzMl9qU18oPDMyIHggaTMyPiwgPDMyIHggaTMyPikgIzE5IHsKLStk ZWZpbmUgaW50ZXJuYWwgPDMyIHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRpdnUy Q012YjMyX2pTXyg8MzIgeCBpMzI+LCA8MzIgeCBpMzI+KSAjMTkgewotICAgJTMgPSBhbGxvY2Eg PDMyIHggaTMyPiwgYWxpZ24gMTI4Ci0gICAlNCA9IGFsbG9jYSA8MzIgeCBpMzI+LCBhbGlnbiAx MjgKLSAgICU1ID0gYWxsb2NhIDwzMiB4IGkzMj4sIGFsaWduIDEyOAotQEAgLTQ2MzgsNyArNDYz OCw3IEBAIGRlZmluZSBpbnRlcm5hbCA8MzIgeCBpMzI+IEBfWk43ZGV0YWlsczE0X19pbXBsX3Vk aXZyZW1JTGkzMkVFRXUyQ012YlRfX2pTMV9TMV91Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6 IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCBpMzIgQF9aMjRfX2NtX2ludHJp bnNpY19pbXBsX3VyZW1qaihpMzIsIGkzMikgIzE0IHsKLStkZWZpbmUgaW50ZXJuYWwgaTMyIEBf WjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtamooaTMyLCBpMzIpICMxNCB7Ci0gICAlMyA9IGFs bG9jYSBpMzIsIGFsaWduIDQKLSAgICU0ID0gYWxsb2NhIGkzMiwgYWxpZ24gNAotICAgJTUgPSBh bGxvY2EgPDEgeCBpMzI+LCBhbGlnbiA0Ci1AQCAtNDY2NCw3ICs0NjY0LDcgQEAgZGVmaW5lIGRz b19sb2NhbCBpMzIgQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW1qaihpMzIsIGkzMikgIzE0 IHsKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUg ZHNvX2xvY2FsIDwxIHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjFf alNfKDwxIHggaTMyPiwgPDEgeCBpMzI+KSAjMTQgewotK2RlZmluZSBpbnRlcm5hbCA8MSB4IGkz Mj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIxX2pTXyg8MSB4IGkzMj4sIDwx IHggaTMyPikgIzE0IHsKLSAgICUzID0gYWxsb2NhIDwxIHggaTMyPiwgYWxpZ24gNAotICAgJTQg PSBhbGxvY2EgPDEgeCBpMzI+LCBhbGlnbiA0Ci0gICAlNSA9IGFsbG9jYSA8MSB4IGkzMj4sIGFs aWduIDQKLUBAIC00Njc4LDcgKzQ2NzgsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwxIHggaTMyPiBA X1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjFfalNfKDwxIHggaTMyPiwgPAotIH0K LSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9j YWwgPDIgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMl9qU18oPDIg eCBpMzI+LCA8MiB4IGkzMj4pICMxNSB7Ci0rZGVmaW5lIGludGVybmFsIDwyIHggaTMyPiBAX1oy NF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjJfalNfKDwyIHggaTMyPiwgPDIgeCBpMzI+ KSAjMTUgewotICAgJTMgPSBhbGxvY2EgPDIgeCBpMzI+LCBhbGlnbiA4Ci0gICAlNCA9IGFsbG9j YSA8MiB4IGkzMj4sIGFsaWduIDgKLSAgICU1ID0gYWxsb2NhIDwyIHggaTMyPiwgYWxpZ24gOAot QEAgLTQ2OTIsNyArNDY5Miw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDIgeCBpMzI+IEBfWjI0X19j bV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMl9qU18oPDIgeCBpMzI+LCA8Ci0gfQotIAotIDsg RnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8NCB4 IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmI0X2pTXyg8NCB4IGkzMj4s IDw0IHggaTMyPikgIzE2IHsKLStkZWZpbmUgaW50ZXJuYWwgPDQgeCBpMzI+IEBfWjI0X19jbV9p bnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiNF9qU18oPDQgeCBpMzI+LCA8NCB4IGkzMj4pICMxNiB7 Ci0gICAlMyA9IGFsbG9jYSA8NCB4IGkzMj4sIGFsaWduIDE2Ci0gICAlNCA9IGFsbG9jYSA8NCB4 IGkzMj4sIGFsaWduIDE2Ci0gICAlNSA9IGFsbG9jYSA8NCB4IGkzMj4sIGFsaWduIDE2Ci1AQCAt NDcwNiw3ICs0NzA2LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8NCB4IGkzMj4gQF9aMjRfX2NtX2lu dHJpbnNpY19pbXBsX3VyZW11MkNNdmI0X2pTXyg8NCB4IGkzMj4sIDwKLSB9Ci0gCi0gOyBGdW5j dGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDw4IHggaTMy PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjhfalNfKDw4IHggaTMyPiwgPDgg eCBpMzI+KSAjMTcgewotK2RlZmluZSBpbnRlcm5hbCA8OCB4IGkzMj4gQF9aMjRfX2NtX2ludHJp bnNpY19pbXBsX3VyZW11MkNNdmI4X2pTXyg8OCB4IGkzMj4sIDw4IHggaTMyPikgIzE3IHsKLSAg ICUzID0gYWxsb2NhIDw4IHggaTMyPiwgYWxpZ24gMzIKLSAgICU0ID0gYWxsb2NhIDw4IHggaTMy PiwgYWxpZ24gMzIKLSAgICU1ID0gYWxsb2NhIDw4IHggaTMyPiwgYWxpZ24gMzIKLUBAIC00NzIw LDcgKzQ3MjAsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDw4IHggaTMyPiBAX1oyNF9fY21faW50cmlu c2ljX2ltcGxfdXJlbXUyQ012YjhfalNfKDw4IHggaTMyPiwgPAotIH0KLSAKLSA7IEZ1bmN0aW9u IEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDE2IHggaTMyPiBA X1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjE2X2pTXyg8MTYgeCBpMzI+LCA8MTYg eCBpMzI+KSAjMTggewotK2RlZmluZSBpbnRlcm5hbCA8MTYgeCBpMzI+IEBfWjI0X19jbV9pbnRy aW5zaWNfaW1wbF91cmVtdTJDTXZiMTZfalNfKDwxNiB4IGkzMj4sIDwxNiB4IGkzMj4pICMxOCB7 Ci0gICAlMyA9IGFsbG9jYSA8MTYgeCBpMzI+LCBhbGlnbiA2NAotICAgJTQgPSBhbGxvY2EgPDE2 IHggaTMyPiwgYWxpZ24gNjQKLSAgICU1ID0gYWxsb2NhIDwxNiB4IGkzMj4sIGFsaWduIDY0Ci1A QCAtNDczNCw3ICs0NzM0LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MTYgeCBpMzI+IEBfWjI0X19j bV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMTZfalNfKDwxNiB4IGkzMj4KLSB9Ci0gCi0gOyBG dW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwzMiB4 IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIzMl9qU18oPDMyIHggaTMy PiwgPDMyIHggaTMyPikgIzE5IHsKLStkZWZpbmUgaW50ZXJuYWwgPDMyIHggaTMyPiBAX1oyNF9f Y21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjMyX2pTXyg8MzIgeCBpMzI+LCA8MzIgeCBpMzI+ KSAjMTkgewotICAgJTMgPSBhbGxvY2EgPDMyIHggaTMyPiwgYWxpZ24gMTI4Ci0gICAlNCA9IGFs bG9jYSA8MzIgeCBpMzI+LCBhbGlnbiAxMjgKLSAgICU1ID0gYWxsb2NhIDwzMiB4IGkzMj4sIGFs aWduIDEyOAotQEAgLTQ3NDgsNyArNDc0OCw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDMyIHggaTMy PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjMyX2pTXyg8MzIgeCBpMzI+Ci0g fQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19s b2NhbCB2b2lkIEBfX2RvX3ByaW50X2NtKGk4KiwgaTgqLCBpMzIsIGk2NCwgaTMyKiwgaTMyLCBp MzIpICMyMyAhZGJnICExNSB7Ci0rZGVmaW5lIGludGVybmFsIHZvaWQgQF9fZG9fcHJpbnRfY20o aTgqLCBpOCosIGkzMiwgaTY0LCBpMzIqLCBpMzIsIGkzMikgIzIzICFkYmcgITE1IHsKLSAgICU4 ID0gYWxsb2NhIGk4KiwgYWxpZ24gNAotICAgJTkgPSBhbGxvY2EgaTgqLCBhbGlnbiA0Ci0gICAl MTAgPSBhbGxvY2EgaTMyLCBhbGlnbiA0Ci1AQCAtNDk4OCw3ICs0OTg4LDcgQEAgZGVmaW5lIGlu dGVybmFsIHZvaWQgQF9aTjdkZXRhaWxzMTZfY21fcHJpbnRfZm9ybWF0SUxpMTI4RUVFdjE1Y21f c3VyZmFjZWluZGV4anUKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndp bmQKLS1kZWZpbmUgZHNvX2xvY2FsIHZvaWQgQF9fZG9fcHJpbnRfbHooaTMyLCBpOCosIGkzMiwg aTY0LCBpMzIqLCBpMzIsIGkzMiwgaTMyLCBpMzIpICMyNiAhZGJnICExMTcgewotK2RlZmluZSBp bnRlcm5hbCB2b2lkIEBfX2RvX3ByaW50X2x6KGkzMiwgaTgqLCBpMzIsIGk2NCwgaTMyKiwgaTMy LCBpMzIsIGkzMiwgaTMyKSAjMjYgIWRiZyAhMTE3IHsKLSAgICUxMCA9IGFsbG9jYSBpMzIsIGFs aWduIDQKLSAgICUxMSA9IGFsbG9jYSBpOCosIGFsaWduIDQKLSAgICUxMiA9IGFsbG9jYSBpMzIs IGFsaWduIDQKLUBAIC01MDY5LDcgKzUwNjksNyBAQCBkZWZpbmUgZHNvX2xvY2FsIHZvaWQgQF9f ZG9fcHJpbnRfbHooaTMyLCBpOCosIGkzMiwgaTY0LCBpMzIqLCBpMzIsIGkzMiwgaTMyLCBpMwot ICAgJTY3ID0gbG9hZCBpNjQsIGk2NCogJTEzLCBhbGlnbiA4LCAhZGJnICExNTksICF0YmFhICEx OQotICAgJTY4ID0gbG9hZCA8NSB4IGkzMj4sIDw1IHggaTMyPiogJTIxLCBhbGlnbiAzMiwgIWRi ZyAhMTYwLCAhdGJhYSAhNwotICAgY2FsbCB2b2lkIEBfWk4xM1ZhcnlpbmdXcml0ZXJDMkVSalJQ S2ppeXUyQ012YjVfaSglY2xhc3MuVmFyeWluZ1dyaXRlciogJTIzLCBpMzIqIGRlcmVmZXJlbmNl YWJsZSg0KSAlMTksIGkzMioqIGRlcmVmZXJlbmNlYWJsZSg0KSAlMTQsIGkzMiAlNjYsIGk2NCAl NjcsIDw1IHggaTMyPiAlNjgpLCAhZGJnICExNjEKLS0gICU2OSA9IGNhbGwgemVyb2V4dCBpMSBA X1pOOVByaW50SW5mbzE0c3dpdGNoRW5jb2RpbmdJMTNVbmlmb3JtV3JpdGVyMTNWYXJ5aW5nV3Jp dGVyRUViTlNfOEVuY29kaW5nRVRfVDBfKGk4IHNpZ25leHQgJTYyLCAlY2xhc3MuVW5pZm9ybVdy aXRlciogYnl2YWwgYWxpZ24gMzIgJTIyLCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwgYWxp Z24gMzIgJTIzKSwgIWRiZyAhMTYyCi0rICAlNjkgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmlu dEluZm8xNHN3aXRjaEVuY29kaW5nSTEzVW5pZm9ybVdyaXRlcjEzVmFyeWluZ1dyaXRlckVFYk5T XzhFbmNvZGluZ0VUX1QwXyhpOCBzaWduZXh0ICU2MiwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5 dmFsKCVjbGFzcy5Vbmlmb3JtV3JpdGVyKSBhbGlnbiAzMiAlMjIsICVjbGFzcy5WYXJ5aW5nV3Jp dGVyKiBieXZhbCglY2xhc3MuVmFyeWluZ1dyaXRlcikgYWxpZ24gMzIgJTIzKSwgIWRiZyAhMTYy Ci0gICBiciBsYWJlbCAlNzAsICFkYmcgITE2MwotIAotIDsgPGxhYmVsPjo3MDogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgOyBwcmVkcyA9ICU2MAotQEAgLTUxODcsNyArNTE4 Nyw3IEBAIGRlZmluZSBpbnRlcm5hbCA8NSB4IGkzMj4gQF9aMTdnZXRfYXV4aWxpYXJ5X3N0cnYo KSAjMjggY29tZGF0ICFkYmcgITE3OCB7Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IGFsd2F5 c2lubGluZSBpbmxpbmVoaW50IG5vdW53aW5kCi0tZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEg QF9aTjlQcmludEluZm8xNHN3aXRjaEVuY29kaW5nSTEzVW5pZm9ybVdyaXRlcjEzVmFyeWluZ1dy aXRlckVFYk5TXzhFbmNvZGluZ0VUX1QwXyhpOCBzaWduZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRl ciogYnl2YWwgYWxpZ24gMzIsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCBhbGlnbiAzMikg IzI1IGNvbWRhdCAhZGJnICExOTEgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45 UHJpbnRJbmZvMTRzd2l0Y2hFbmNvZGluZ0kxM1VuaWZvcm1Xcml0ZXIxM1ZhcnlpbmdXcml0ZXJF RWJOU184RW5jb2RpbmdFVF9UMF8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5 dmFsKCVjbGFzcy5Vbmlmb3JtV3JpdGVyKSBhbGlnbiAzMiwgJWNsYXNzLlZhcnlpbmdXcml0ZXIq IGJ5dmFsKCVjbGFzcy5WYXJ5aW5nV3JpdGVyKSBhbGlnbiAzMikgIzI1IGNvbWRhdCAhZGJnICEx OTEgewotICAgJTQgPSBhbGxvY2EgaTgsIGFsaWduIDEKLSAgICU1ID0gYWxsb2NhICVjbGFzcy5V bmlmb3JtV3JpdGVyLCBhbGlnbiAzMgotICAgJTYgPSBhbGxvY2EgJWNsYXNzLlZhcnlpbmdXcml0 ZXIsIGFsaWduIDMyCi1AQCAtNTE5Niw3ICs1MTk2LDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9l eHQgaTEgQF9aTjlQcmludEluZm8xNHN3aXRjaEVuY29kaW5nSTEzVW5pZm9ybVdyaXRlcjEzVmFy eWkKLSAgICU4ID0gYml0Y2FzdCAlY2xhc3MuVW5pZm9ybVdyaXRlciogJTUgdG8gaTgqLCAhZGJn ICExOTYKLSAgICU5ID0gYml0Y2FzdCAlY2xhc3MuVW5pZm9ybVdyaXRlciogJTEgdG8gaTgqLCAh ZGJnICExOTYKLSAgIGNhbGwgdm9pZCBAbGx2bS5tZW1jcHkucDBpOC5wMGk4LmkzMihpOCogYWxp Z24gMzIgJTgsIGk4KiBhbGlnbiAzMiAlOSwgaTMyIDY0LCBpMSBmYWxzZSksICFkYmcgITE5Niwg IXRiYWEuc3RydWN0ICExOTcKLS0gICUxMCA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5m bzIyc3dpdGNoRW5jb2Rpbmc0VW5pZm9ybUkxM1VuaWZvcm1Xcml0ZXJFRWJOU184RW5jb2RpbmdF VF8oaTggc2lnbmV4dCAlNywgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsIGFsaWduIDMyICU1 KSwgIWRiZyAhMTk4Ci0rICAlMTAgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm8yMnN3 aXRjaEVuY29kaW5nNFVuaWZvcm1JMTNVbmlmb3JtV3JpdGVyRUViTlNfOEVuY29kaW5nRVRfKGk4 IHNpZ25leHQgJTcsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdy aXRlcikgYWxpZ24gMzIgJTUpLCAhZGJnICExOTgKLSAgIGJyIGkxICUxMCwgbGFiZWwgJTE2LCBs YWJlbCAlMTEsICFkYmcgITE5OQotIAotIDsgPGxhYmVsPjoxMTogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgOyBwcmVkcyA9ICUzCi1AQCAtNTIwNCw3ICs1MjA0LDcgQEAgZGVm aW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm8xNHN3aXRjaEVuY29kaW5nSTEz VW5pZm9ybVdyaXRlcjEzVmFyeWkKLSAgICUxMyA9IGJpdGNhc3QgJWNsYXNzLlZhcnlpbmdXcml0 ZXIqICU2IHRvIGk4KiwgIWRiZyAhMjAxCi0gICAlMTQgPSBiaXRjYXN0ICVjbGFzcy5WYXJ5aW5n V3JpdGVyKiAlMiB0byBpOCosICFkYmcgITIwMQotICAgY2FsbCB2b2lkIEBsbHZtLm1lbWNweS5w MGk4LnAwaTguaTMyKGk4KiBhbGlnbiAzMiAlMTMsIGk4KiBhbGlnbiAzMiAlMTQsIGkzMiA2NCwg aTEgZmFsc2UpLCAhZGJnICEyMDEsICF0YmFhLnN0cnVjdCAhMTk3Ci0tICAlMTUgPSBjYWxsIHpl cm9leHQgaTEgQF9aTjlQcmludEluZm8yMnN3aXRjaEVuY29kaW5nNFZhcnlpbmdJMTNWYXJ5aW5n V3JpdGVyRUViTlNfOEVuY29kaW5nRVRfKGk4IHNpZ25leHQgJTEyLCAlY2xhc3MuVmFyeWluZ1dy aXRlciogYnl2YWwgYWxpZ24gMzIgJTYpLCAhZGJnICEyMDIKLSsgICUxNSA9IGNhbGwgemVyb2V4 dCBpMSBAX1pOOVByaW50SW5mbzIyc3dpdGNoRW5jb2Rpbmc0VmFyeWluZ0kxM1ZhcnlpbmdXcml0 ZXJFRWJOU184RW5jb2RpbmdFVF8oaTggc2lnbmV4dCAlMTIsICVjbGFzcy5WYXJ5aW5nV3JpdGVy KiBieXZhbCglY2xhc3MuVmFyeWluZ1dyaXRlcikgYWxpZ24gMzIgJTYpLCAhZGJnICEyMDIKLSAg IGJyIGxhYmVsICUxNiwgIWRiZyAhMTk5Ci0gCi0gOyA8bGFiZWw+OjE2OiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICA7IHByZWRzID0gJTExLCAlMwotQEAgLTUyNzksNyArNTI3 OSw3IEBAIGRlZmluZSBpbnRlcm5hbCB2b2lkIEBfWk4xM1ZhcnlpbmdXcml0ZXJDMkVSalJQS2pp eXUyQ012YjVfaSglY2xhc3MuVmFyeWluZ1dyaXRlCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6 IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCBpMzIgQF9fbnVtX2NvcmVzKCkg IzI5ICFkYmcgITIzNiB7Ci0rZGVmaW5lIGludGVybmFsIGkzMiBAX19udW1fY29yZXMoKSAjMjkg IWRiZyAhMjM2IHsKLSAgIHJldCBpMzIgLTEsICFkYmcgITIzNwotIH0KLSAKLUBAIC04ODYwLDcg Kzg4NjAsNyBAQCBkZWNsYXJlIGRzb19sb2NhbCB2b2lkIEBfWk43ZGV0YWlsczM3X19jbV9pbnRy aW5zaWNfaW1wbF9zdm1fc2NhdHRlcl93cml0ZUlpTGkxRQotIGRlY2xhcmUgdm9pZCBAbGx2bS5n ZW54LnN2bS5zY2F0dGVyLnYxaTEudjFpNjQudjFpMzIoPDEgeCBpMT4sIGkzMiwgPDEgeCBpNjQ+ LCA8MSB4IGkzMj4pICMyNwotIAotIDsgRnVuY3Rpb24gQXR0cnM6IGFsd2F5c2lubGluZSBpbmxp bmVoaW50IG5vdW53aW5kCi0tZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludElu Zm8yMnN3aXRjaEVuY29kaW5nNFVuaWZvcm1JMTNVbmlmb3JtV3JpdGVyRUViTlNfOEVuY29kaW5n RVRfKGk4IHNpZ25leHQsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBhbGlnbiAzMikgIzI1 IGNvbWRhdCAhZGJnICExNjQ1IHsKLStkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVBy aW50SW5mbzIyc3dpdGNoRW5jb2Rpbmc0VW5pZm9ybUkxM1VuaWZvcm1Xcml0ZXJFRWJOU184RW5j b2RpbmdFVF8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsKCVjbGFzcy5V bmlmb3JtV3JpdGVyKSBhbGlnbiAzMikgIzI1IGNvbWRhdCAhZGJnICExNjQ1IHsKLSAgICUzID0g YWxsb2NhIGk4LCBhbGlnbiAxCi0gICAlNCA9IGFsbG9jYSAlY2xhc3MuVW5pZm9ybVdyaXRlciwg YWxpZ24gMzIKLSAgICU1ID0gYWxsb2NhICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5p Zm9ybSIsIGFsaWduIDEKLUBAIC04ODY5LDcgKzg4NjksNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVy b2V4dCBpMSBAX1pOOVByaW50SW5mbzIyc3dpdGNoRW5jb2Rpbmc0VW5pZm9ybUkxM1VuaWZvcm1X cml0ZQotICAgJTcgPSBiaXRjYXN0ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiAlNCB0byBpOCosICFk YmcgITE2NDcKLSAgICU4ID0gYml0Y2FzdCAlY2xhc3MuVW5pZm9ybVdyaXRlciogJTEgdG8gaTgq LCAhZGJnICExNjQ3Ci0gICBjYWxsIHZvaWQgQGxsdm0ubWVtY3B5LnAwaTgucDBpOC5pMzIoaTgq IGFsaWduIDMyICU3LCBpOCogYWxpZ24gMzIgJTgsIGkzMiA2NCwgaTEgZmFsc2UpLCAhZGJnICEx NjQ3LCAhdGJhYS5zdHJ1Y3QgITE5NwotLSAgJTkgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmlu dEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5n NFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVRfVDBfKGk4IHNpZ25leHQgJTYsICVjbGFzcy5Vbmlm b3JtV3JpdGVyKiBieXZhbCBhbGlnbiAzMiAlNCwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGlu ZzRVbmlmb3JtIiogYnl2YWwgYWxpZ24gMSAlNSksICFkYmcgITE2NDgKLSsgICU5ID0gY2FsbCB6 ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNVbmlmb3Jt V3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUX1QwXyhpOCBzaWdu ZXh0ICU2LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1Xcml0ZXIp IGFsaWduIDMyICU0LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZh bCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKSBhbGlnbiAxICU1KSwgIWRi ZyAhMTY0OAotICAgcmV0IGkxICU5LCAhZGJnICExNjQ5Ci0gfQotIAotQEAgLTg4NzcsNyArODg3 Nyw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvMjJzd2l0Y2hF bmNvZGluZzRVbmlmb3JtSTEzVW5pZm9ybVdyaXRlCi0gZGVjbGFyZSB2b2lkIEBsbHZtLm1lbWNw eS5wMGk4LnAwaTguaTMyKGk4KiBub2NhcHR1cmUgd3JpdGVvbmx5LCBpOCogbm9jYXB0dXJlIHJl YWRvbmx5LCBpMzIsIGkxKSAjMzIKLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUg aW5saW5laGludCBub3Vud2luZAotLWRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJp bnRJbmZvMjJzd2l0Y2hFbmNvZGluZzRWYXJ5aW5nSTEzVmFyeWluZ1dyaXRlckVFYk5TXzhFbmNv ZGluZ0VUXyhpOCBzaWduZXh0LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwgYWxpZ24gMzIp ICMyNSBjb21kYXQgIWRiZyAhMTY1MCB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9a TjlQcmludEluZm8yMnN3aXRjaEVuY29kaW5nNFZhcnlpbmdJMTNWYXJ5aW5nV3JpdGVyRUViTlNf OEVuY29kaW5nRVRfKGk4IHNpZ25leHQsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCglY2xh c3MuVmFyeWluZ1dyaXRlcikgYWxpZ24gMzIpICMyNSBjb21kYXQgIWRiZyAhMTY1MCB7Ci0gICAl MyA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgJTQgPSBhbGxvY2EgJWNsYXNzLlZhcnlpbmdXcml0 ZXIsIGFsaWduIDMyCi0gICAlNSA9IGFsbG9jYSAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5n NFZhcnlpbmciLCBhbGlnbiAxCi1AQCAtODg4NiwxMiArODg4NiwxMiBAQCBkZWZpbmUgaW50ZXJu YWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzIyc3dpdGNoRW5jb2Rpbmc0VmFyeWluZ0kxM1Zh cnlpbmdXcml0ZQotICAgJTcgPSBiaXRjYXN0ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiAlNCB0byBp OCosICFkYmcgITE2NTIKLSAgICU4ID0gYml0Y2FzdCAlY2xhc3MuVmFyeWluZ1dyaXRlciogJTEg dG8gaTgqLCAhZGJnICExNjUyCi0gICBjYWxsIHZvaWQgQGxsdm0ubWVtY3B5LnAwaTgucDBpOC5p MzIoaTgqIGFsaWduIDMyICU3LCBpOCogYWxpZ24gMzIgJTgsIGkzMiA2NCwgaTEgZmFsc2UpLCAh ZGJnICExNjUyLCAhdGJhYS5zdHJ1Y3QgITE5NwotLSAgJTkgPSBjYWxsIHplcm9leHQgaTEgQF9a TjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1ZhcnlpbmdXcml0ZXJOU18xNkVu Y29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVRfVDBfKGk4IHNpZ25leHQgJTYsICVjbGFz cy5WYXJ5aW5nV3JpdGVyKiBieXZhbCBhbGlnbiAzMiAlNCwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpF bmNvZGluZzRWYXJ5aW5nIiogYnl2YWwgYWxpZ24gMSAlNSksICFkYmcgITE2NTMKLSsgICU5ID0g Y2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNW YXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUX1QwXyhp OCBzaWduZXh0ICU2LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwoJWNsYXNzLlZhcnlpbmdX cml0ZXIpIGFsaWduIDMyICU0LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmci KiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKSBhbGlnbiAxICU1 KSwgIWRiZyAhMTY1MwotICAgcmV0IGkxICU5LCAhZGJnICExNjU0Ci0gfQotIAotIDsgRnVuY3Rp b24gQXR0cnM6IGFsd2F5c2lubGluZSBpbmxpbmVoaW50IG5vdW53aW5kCi0tZGVmaW5lIGludGVy bmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1Vu aWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVRfVDBfKGk4 IHNpZ25leHQsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBhbGlnbiAzMiwgJSJzdHJ1Y3Qu UHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwgYWxpZ24gMSkgIzI1IGNvbWRhdCAh ZGJnICExNjU1IHsKLStkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZk ZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9y bUVFRWJOU184RW5jb2RpbmdFVF9UMF8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIq IGJ5dmFsKCVjbGFzcy5Vbmlmb3JtV3JpdGVyKSBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZv OjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRV bmlmb3JtIikgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICExNjU1IHsKLSAgICU0ID0gYWxsb2Nh IGk4LCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSAlY2xhc3MuVW5pZm9ybVdyaXRlciwgYWxpZ24g MzIKLSAgICU2ID0gYWxsb2NhICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIs IGFsaWduIDEKLUBAIC04OTE0LDcgKzg5MTQsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBp MSBAX1pOOVByaW50SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEzVW5pZm9ybVdyaXRlcgot ICAgJTIyID0gYml0Y2FzdCAlY2xhc3MuVW5pZm9ybVdyaXRlciogJTUgdG8gaTgqLCAhZGJnICEx NjU3Ci0gICAlMjMgPSBiaXRjYXN0ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiAlMSB0byBpOCosICFk YmcgITE2NTcKLSAgIGNhbGwgdm9pZCBAbGx2bS5tZW1jcHkucDBpOC5wMGk4LmkzMihpOCogYWxp Z24gMzIgJTIyLCBpOCogYWxpZ24gMzIgJTIzLCBpMzIgNjQsIGkxIGZhbHNlKSwgIWRiZyAhMTY1 NywgIXRiYWEuc3RydWN0ICExOTcKLS0gICUyNCA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50 SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0liMTNVbmlmb3JtV3JpdGVyTlNfMTZF bmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlMjEsICVj bGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBhbGlnbiAzMiAlNSwgJSJzdHJ1Y3QuUHJpbnRJbmZv OjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwgYWxpZ24gMSAlNiksICFkYmcgITE2NTgKLSsgICUy NCA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJF bmNvZGluZ0liMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNv ZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlMjEsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCgl Y2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24gMzIgJTUsICUic3RydWN0LlByaW50SW5mbzo6RW5j b2Rpbmc0VW5pZm9ybSIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9y bSIpIGFsaWduIDEgJTYpLCAhZGJnICExNjU4Ci0gICBiciBpMSAlMjQsIGxhYmVsICU2MCwgbGFi ZWwgJTI1LCAhZGJnICExNjU5Ci0gCi0gOyA8bGFiZWw+OjI1OiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICA7IHByZWRzID0gJTMKLUBAIC04OTIyLDcgKzg5MjIsNyBAQCBkZWZp bmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29k aW5nSTEzVW5pZm9ybVdyaXRlcgotICAgJTI3ID0gYml0Y2FzdCAlY2xhc3MuVW5pZm9ybVdyaXRl ciogJTcgdG8gaTgqLCAhZGJnICExNjYxCi0gICAlMjggPSBiaXRjYXN0ICVjbGFzcy5Vbmlmb3Jt V3JpdGVyKiAlMSB0byBpOCosICFkYmcgITE2NjEKLSAgIGNhbGwgdm9pZCBAbGx2bS5tZW1jcHku cDBpOC5wMGk4LmkzMihpOCogYWxpZ24gMzIgJTI3LCBpOCogYWxpZ24gMzIgJTI4LCBpMzIgNjQs IGkxIGZhbHNlKSwgIWRiZyAhMTY2MSwgIXRiYWEuc3RydWN0ICExOTcKLS0gICUyOSA9IGNhbGwg emVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lp MTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9U MV8oaTggc2lnbmV4dCAlMjYsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBhbGlnbiAzMiAl NywgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwgYWxpZ24gMSAl OCksICFkYmcgITE2NjIKLSsgICUyOSA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZk ZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lpMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGlu ZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlMjYsICVjbGFzcy5V bmlmb3JtV3JpdGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24gMzIgJTcsICUi c3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsKCUic3RydWN0LlByaW50 SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIpIGFsaWduIDEgJTgpLCAhZGJnICExNjYyCi0gICBiciBp MSAlMjksIGxhYmVsICU2MCwgbGFiZWwgJTMwLCAhZGJnICExNjYzCi0gCi0gOyA8bGFiZWw+OjMw OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7IHByZWRzID0gJTI1Ci1AQCAt ODkzMCw3ICs4OTMwLDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludElu Zm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1VuaWZvcm1Xcml0ZXIKLSAgICUzMiA9IGJpdGNh c3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqICU5IHRvIGk4KiwgIWRiZyAhMTY2NQotICAgJTMzID0g Yml0Y2FzdCAlY2xhc3MuVW5pZm9ybVdyaXRlciogJTEgdG8gaTgqLCAhZGJnICExNjY1Ci0gICBj YWxsIHZvaWQgQGxsdm0ubWVtY3B5LnAwaTgucDBpOC5pMzIoaTgqIGFsaWduIDMyICUzMiwgaTgq IGFsaWduIDMyICUzMywgaTMyIDY0LCBpMSBmYWxzZSksICFkYmcgITE2NjUsICF0YmFhLnN0cnVj dCAhMTk3Ci0tICAlMzQgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFh cHBseUlmUHJvcGVyRW5jb2RpbmdJajEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9y bUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTMxLCAlY2xhc3MuVW5pZm9ybVdy aXRlciogYnl2YWwgYWxpZ24gMzIgJTksICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5p Zm9ybSIqIGJ5dmFsIGFsaWduIDEgJTEwKSwgIWRiZyAhMTY2NgotKyAgJTM0ID0gY2FsbCB6ZXJv ZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWoxM1Vu aWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhp OCBzaWduZXh0ICUzMSwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsKCVjbGFzcy5Vbmlmb3Jt V3JpdGVyKSBhbGlnbiAzMiAlOSwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3Jt IiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIikgYWxpZ24gMSAl MTApLCAhZGJnICExNjY2Ci0gICBiciBpMSAlMzQsIGxhYmVsICU2MCwgbGFiZWwgJTM1LCAhZGJn ICExNjY3Ci0gCi0gOyA8bGFiZWw+OjM1OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICA7IHByZWRzID0gJTMwCi1AQCAtODkzOCw3ICs4OTM4LDcgQEAgZGVmaW5lIGludGVybmFs IHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1VuaWZv cm1Xcml0ZXIKLSAgICUzNyA9IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqICUxMSB0byBp OCosICFkYmcgITE2NjkKLSAgICUzOCA9IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqICUx IHRvIGk4KiwgIWRiZyAhMTY2OQotICAgY2FsbCB2b2lkIEBsbHZtLm1lbWNweS5wMGk4LnAwaTgu aTMyKGk4KiBhbGlnbiAzMiAlMzcsIGk4KiBhbGlnbiAzMiAlMzgsIGkzMiA2NCwgaTEgZmFsc2Up LCAhZGJnICExNjY5LCAhdGJhYS5zdHJ1Y3QgITE5NwotLSAgJTM5ID0gY2FsbCB6ZXJvZXh0IGkx IEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWYxM1VuaWZvcm1X cml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWdu ZXh0ICUzNiwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsIGFsaWduIDMyICUxMSwgJSJzdHJ1 Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwgYWxpZ24gMSAlMTIpLCAhZGJn ICExNjcwCi0rICAlMzkgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFh cHBseUlmUHJvcGVyRW5jb2RpbmdJZjEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9y bUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTM2LCAlY2xhc3MuVW5pZm9ybVdy aXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1Xcml0ZXIpIGFsaWduIDMyICUxMSwgJSJzdHJ1Y3Qu UHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpF bmNvZGluZzRVbmlmb3JtIikgYWxpZ24gMSAlMTIpLCAhZGJnICExNjcwCi0gICBiciBpMSAlMzks IGxhYmVsICU2MCwgbGFiZWwgJTQwLCAhZGJnICExNjcxCi0gCi0gOyA8bGFiZWw+OjQwOiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7IHByZWRzID0gJTM1Ci1AQCAtODk0Niw3 ICs4OTQ2LDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0 YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1VuaWZvcm1Xcml0ZXIKLSAgICU0MiA9IGJpdGNhc3QgJWNs YXNzLlVuaWZvcm1Xcml0ZXIqICUxMyB0byBpOCosICFkYmcgITE2NzMKLSAgICU0MyA9IGJpdGNh c3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqICUxIHRvIGk4KiwgIWRiZyAhMTY3MwotICAgY2FsbCB2 b2lkIEBsbHZtLm1lbWNweS5wMGk4LnAwaTguaTMyKGk4KiBhbGlnbiAzMiAlNDIsIGk4KiBhbGln biAzMiAlNDMsIGkzMiA2NCwgaTEgZmFsc2UpLCAhZGJnICExNjczLCAhdGJhYS5zdHJ1Y3QgITE5 NwotLSAgJTQ0ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJ ZlByb3BlckVuY29kaW5nSXgxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUVi TlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICU0MSwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIq IGJ5dmFsIGFsaWduIDMyICUxMywgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3Jt IiogYnl2YWwgYWxpZ24gMSAlMTQpLCAhZGJnICExNjc0Ci0rICAlNDQgPSBjYWxsIHplcm9leHQg aTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJeDEzVW5pZm9y bVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNp Z25leHQgJTQxLCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1Xcml0 ZXIpIGFsaWduIDMyICUxMywgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiog Ynl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIikgYWxpZ24gMSAlMTQp LCAhZGJnICExNjc0Ci0gICBiciBpMSAlNDQsIGxhYmVsICU2MCwgbGFiZWwgJTQ1LCAhZGJnICEx Njc1Ci0gCi0gOyA8bGFiZWw+OjQ1OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICA7IHByZWRzID0gJTQwCi1AQCAtODk1NCw3ICs4OTU0LDcgQEAgZGVmaW5lIGludGVybmFsIHpl cm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1VuaWZvcm1X cml0ZXIKLSAgICU0NyA9IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqICUxNSB0byBpOCos ICFkYmcgITE2NzcKLSAgICU0OCA9IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqICUxIHRv IGk4KiwgIWRiZyAhMTY3NwotICAgY2FsbCB2b2lkIEBsbHZtLm1lbWNweS5wMGk4LnAwaTguaTMy KGk4KiBhbGlnbiAzMiAlNDcsIGk4KiBhbGlnbiAzMiAlNDgsIGkzMiA2NCwgaTEgZmFsc2UpLCAh ZGJnICExNjc3LCAhdGJhYS5zdHJ1Y3QgITE5NwotLSAgJTQ5ID0gY2FsbCB6ZXJvZXh0IGkxIEBf Wk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSXkxM1VuaWZvcm1Xcml0 ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0 ICU0NiwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsIGFsaWduIDMyICUxNSwgJSJzdHJ1Y3Qu UHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwgYWxpZ24gMSAlMTYpLCAhZGJnICEx Njc4Ci0rICAlNDkgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBs eUlmUHJvcGVyRW5jb2RpbmdJeTEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVF RWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTQ2LCAlY2xhc3MuVW5pZm9ybVdyaXRl ciogYnl2YWwoJWNsYXNzLlVuaWZvcm1Xcml0ZXIpIGFsaWduIDMyICUxNSwgJSJzdHJ1Y3QuUHJp bnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNv ZGluZzRVbmlmb3JtIikgYWxpZ24gMSAlMTYpLCAhZGJnICExNjc4Ci0gICBiciBpMSAlNDksIGxh YmVsICU2MCwgbGFiZWwgJTUwLCAhZGJnICExNjc5Ci0gCi0gOyA8bGFiZWw+OjUwOiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7IHByZWRzID0gJTQ1Ci1AQCAtODk2Miw3ICs4 OTYyLDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWls MTRzd2l0Y2hFbmNvZGluZ0kxM1VuaWZvcm1Xcml0ZXIKLSAgICU1MiA9IGJpdGNhc3QgJWNsYXNz LlVuaWZvcm1Xcml0ZXIqICUxNyB0byBpOCosICFkYmcgITE2ODEKLSAgICU1MyA9IGJpdGNhc3Qg JWNsYXNzLlVuaWZvcm1Xcml0ZXIqICUxIHRvIGk4KiwgIWRiZyAhMTY4MQotICAgY2FsbCB2b2lk IEBsbHZtLm1lbWNweS5wMGk4LnAwaTguaTMyKGk4KiBhbGlnbiAzMiAlNTIsIGk4KiBhbGlnbiAz MiAlNTMsIGkzMiA2NCwgaTEgZmFsc2UpLCAhZGJnICExNjgxLCAhdGJhYS5zdHJ1Y3QgITE5Nwot LSAgJTU0ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlBy b3BlckVuY29kaW5nSWQxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNf OEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICU1MSwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5 dmFsIGFsaWduIDMyICUxNywgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiog Ynl2YWwgYWxpZ24gMSAlMTgpLCAhZGJnICExNjgyCi0rICAlNTQgPSBjYWxsIHplcm9leHQgaTEg QF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJZDEzVW5pZm9ybVdy aXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25l eHQgJTUxLCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1Xcml0ZXIp IGFsaWduIDMyICUxNywgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2 YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIikgYWxpZ24gMSAlMTgpLCAh ZGJnICExNjgyCi0gICBiciBpMSAlNTQsIGxhYmVsICU2MCwgbGFiZWwgJTU1LCAhZGJnICExNjgz Ci0gCi0gOyA8bGFiZWw+OjU1OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7 IHByZWRzID0gJTUwCi1AQCAtODk3MCw3ICs4OTcwLDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9l eHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1VuaWZvcm1Xcml0 ZXIKLSAgICU1NyA9IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqICUxOSB0byBpOCosICFk YmcgITE2ODUKLSAgICU1OCA9IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqICUxIHRvIGk4 KiwgIWRiZyAhMTY4NQotICAgY2FsbCB2b2lkIEBsbHZtLm1lbWNweS5wMGk4LnAwaTguaTMyKGk4 KiBhbGlnbiAzMiAlNTcsIGk4KiBhbGlnbiAzMiAlNTgsIGkzMiA2NCwgaTEgZmFsc2UpLCAhZGJn ICExNjg1LCAhdGJhYS5zdHJ1Y3QgITE5NwotLSAgJTU5ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45 UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSVB2MTNVbmlmb3JtV3JpdGVy TlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAl NTYsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBhbGlnbiAzMiAlMTksICUic3RydWN0LlBy aW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsIGFsaWduIDEgJTIwKSwgIWRiZyAhMTY4 NgotKyAgJTU5ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJ ZlByb3BlckVuY29kaW5nSVB2MTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVF Yk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlNTYsICVjbGFzcy5Vbmlmb3JtV3JpdGVy KiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24gMzIgJTE5LCAlInN0cnVjdC5Qcmlu dEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29k aW5nNFVuaWZvcm0iKSBhbGlnbiAxICUyMCksICFkYmcgITE2ODYKLSAgIGJyIGxhYmVsICU2MCwg IWRiZyAhMTY4MwotIAotIDsgPGxhYmVsPjo2MDogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgOyBwcmVkcyA9ICU1NSwgJTUwLCAlNDUsICU0MCwgJTM1LCAlMzAsICUyNSwgJTMK LUBAIC04OTc5LDcgKzg5NzksNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVBy aW50SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEzVW5pZm9ybVdyaXRlcgotIH0KLSAKLSA7 IEZ1bmN0aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2luZAotLWRlZmlu ZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3Bl ckVuY29kaW5nSWIxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVu Y29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwgYWxp Z24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsIGFsaWdu IDEpICMyNSBjb21kYXQgIWRiZyAhMTY4OCB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEg QF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJYjEzVW5pZm9ybVdy aXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25l eHQsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxp Z24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsKCUic3Ry dWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIpIGFsaWduIDEpICMyNSBjb21kYXQgIWRi ZyAhMTY4OCB7Ci0gICAlNCA9IGFsbG9jYSBpMSwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2EgaTgs IGFsaWduIDEKLSAgIHN0b3JlIGk4ICUwLCBpOCogJTUsIGFsaWduIDEsICF0YmFhICExOTMKLUBA IC05MDA1LDcgKzkwMDUsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50 SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0liMTNVbmlmbwotIH0KLSAKLSA7IEZ1 bmN0aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2luZAotLWRlZmluZSBp bnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVu Y29kaW5nSWkxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29k aW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwgYWxpZ24g MzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsIGFsaWduIDEp ICMyNSBjb21kYXQgIWRiZyAhMTY5NyB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9a TjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJaTEzVW5pZm9ybVdyaXRl ck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQs ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24g MzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsKCUic3RydWN0 LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIpIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAh MTY5NyB7Ci0gICAlNCA9IGFsbG9jYSBpMSwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2EgaTgsIGFs aWduIDEKLSAgIHN0b3JlIGk4ICUwLCBpOCogJTUsIGFsaWduIDEsICF0YmFhICExOTMKLUBAIC05 MDMxLDcgKzkwMzEsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5m bzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lpMTNVbmlmbwotIH0KLSAKLSA7IEZ1bmN0 aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2luZAotLWRlZmluZSBpbnRl cm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29k aW5nSWoxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5n RVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwgYWxpZ24gMzIs ICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsIGFsaWduIDEpICMy NSBjb21kYXQgIWRiZyAhMTcwNiB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQ cmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJajEzVW5pZm9ybVdyaXRlck5T XzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVj bGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24gMzIs ICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsKCUic3RydWN0LlBy aW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIpIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMTcw NiB7Ci0gICAlNCA9IGFsbG9jYSBpMSwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2EgaTgsIGFsaWdu IDEKLSAgIHN0b3JlIGk4ICUwLCBpOCogJTUsIGFsaWduIDEsICF0YmFhICExOTMKLUBAIC05MDU3 LDcgKzkwNTcsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZk ZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lqMTNVbmlmbwotIH0KLSAKLSA7IEZ1bmN0aW9u IEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2luZAotLWRlZmluZSBpbnRlcm5h bCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5n SWYxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQw X1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwgYWxpZ24gMzIsICUi c3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsIGFsaWduIDEpICMyNSBj b21kYXQgIWRiZyAhMTcxNSB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmlu dEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJZjEzVW5pZm9ybVdyaXRlck5TXzE2 RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFz cy5Vbmlmb3JtV3JpdGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24gMzIsICUi c3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsKCUic3RydWN0LlByaW50 SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIpIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMTcxNSB7 Ci0gICAlNCA9IGFsbG9jYSBpMSwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2EgaTgsIGFsaWduIDEK LSAgIHN0b3JlIGk4ICUwLCBpOCogJTUsIGFsaWduIDEsICF0YmFhICExOTMKLUBAIC05MDgzLDcg KzkwODMsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRh aWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lmMTNVbmlmbwotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0 dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2luZAotLWRlZmluZSBpbnRlcm5hbCB6 ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSXgx M1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1Qx XyhpOCBzaWduZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwgYWxpZ24gMzIsICUic3Ry dWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsIGFsaWduIDEpICMyNSBjb21k YXQgIWRiZyAhMTcyNCB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludElu Zm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJeDEzVW5pZm9ybVdyaXRlck5TXzE2RW5j b2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5V bmlmb3JtV3JpdGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24gMzIsICUic3Ry dWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5m bzo6RW5jb2Rpbmc0VW5pZm9ybSIpIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMTcyNCB7Ci0g ICAlNCA9IGFsbG9jYSBpMSwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2EgaTgsIGFsaWduIDEKLSAg IHN0b3JlIGk4ICUwLCBpOCogJTUsIGFsaWduIDEsICF0YmFhICExOTMKLUBAIC05MTA5LDcgKzkx MDksNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwy MWFwcGx5SWZQcm9wZXJFbmNvZGluZ0l4MTNVbmlmbwotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJz OiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2luZAotLWRlZmluZSBpbnRlcm5hbCB6ZXJv ZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSXkxM1Vu aWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhp OCBzaWduZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwgYWxpZ24gMzIsICUic3RydWN0 LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsIGFsaWduIDEpICMyNSBjb21kYXQg IWRiZyAhMTczMyB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82 ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJeTEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rp bmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5Vbmlm b3JtV3JpdGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24gMzIsICUic3RydWN0 LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6 RW5jb2Rpbmc0VW5pZm9ybSIpIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMTczMyB7Ci0gICAl NCA9IGFsbG9jYSBpMSwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2EgaTgsIGFsaWduIDEKLSAgIHN0 b3JlIGk4ICUwLCBpOCogJTUsIGFsaWduIDEsICF0YmFhICExOTMKLUBAIC05MTM1LDcgKzkxMzUs NyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFw cGx5SWZQcm9wZXJFbmNvZGluZ0l5MTNVbmlmbwotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBh bHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2luZAotLWRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0 IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWQxM1VuaWZv cm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBz aWduZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwgYWxpZ24gMzIsICUic3RydWN0LlBy aW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsIGFsaWduIDEpICMyNSBjb21kYXQgIWRi ZyAhMTc0MiB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0 YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJZDEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0 VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5Vbmlmb3Jt V3JpdGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24gMzIsICUic3RydWN0LlBy aW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5j b2Rpbmc0VW5pZm9ybSIpIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMTc0MiB7Ci0gICAlNCA9 IGFsbG9jYSBpMSwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2EgaTgsIGFsaWduIDEKLSAgIHN0b3Jl IGk4ICUwLCBpOCogJTUsIGFsaWduIDEsICF0YmFhICExOTMKLUBAIC05MTYxLDcgKzkxNjEsNyBA QCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5 SWZQcm9wZXJFbmNvZGluZ0lkMTNVbmlmbwotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBhbHdh eXNpbmxpbmUgaW5saW5laGludCBub3Vud2luZAotLWRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkx IEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSVB2MTNVbmlmb3Jt V3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2ln bmV4dCwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsIGFsaWduIDMyLCAlInN0cnVjdC5Qcmlu dEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcg ITE3NTEgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFp bDIxYXBwbHlJZlByb3BlckVuY29kaW5nSVB2MTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRV bmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1X cml0ZXIqIGJ5dmFsKCVjbGFzcy5Vbmlmb3JtV3JpdGVyKSBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJp bnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNv ZGluZzRVbmlmb3JtIikgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICExNzUxIHsKLSAgICU0ID0g YWxsb2NhIGkxLCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgc3RvcmUg aTggJTAsIGk4KiAlNSwgYWxpZ24gMSwgIXRiYWEgITE5MwotQEAgLTk5ODQsNyArOTk4NCw3IEBA IGRlZmluZSBpbnRlcm5hbCBpMzIgQF9aTjdkZXRhaWxzMThfY21fcHJpbnRfdHlwZV9vY2xJUHZF RU5TXzE4U0hBREVSX1BSSU5URl9UWVBFCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IGFsd2F5 c2lubGluZSBpbmxpbmVoaW50IG5vdW53aW5kCi0tZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEg QF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1ZhcnlpbmdXcml0ZXJOU18x NkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVRfVDBfKGk4IHNpZ25leHQsICVjbGFz cy5WYXJ5aW5nV3JpdGVyKiBieXZhbCBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNv ZGluZzRWYXJ5aW5nIiogYnl2YWwgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICEyMDU1IHsKLStk ZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwxNHN3aXRjaEVu Y29kaW5nSTEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2Rp bmdFVF9UMF8oaTggc2lnbmV4dCwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsKCVjbGFzcy5W YXJ5aW5nV3JpdGVyKSBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5 aW5nIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIikgYWxpZ24g MSkgIzI1IGNvbWRhdCAhZGJnICEyMDU1IHsKLSAgICU0ID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0g ICAlNSA9IGFsbG9jYSAlY2xhc3MuVmFyeWluZ1dyaXRlciwgYWxpZ24gMzIKLSAgICU2ID0gYWxs b2NhICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIsIGFsaWduIDEKLUBAIC0x MDAwNyw3ICsxMDAwNyw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJ bmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNWYXJ5aW5nV3JpdGVyCi0gICAlMjIgPSBiaXRj YXN0ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiAlNSB0byBpOCosICFkYmcgITIwNTcKLSAgICUyMyA9 IGJpdGNhc3QgJWNsYXNzLlZhcnlpbmdXcml0ZXIqICUxIHRvIGk4KiwgIWRiZyAhMjA1NwotICAg Y2FsbCB2b2lkIEBsbHZtLm1lbWNweS5wMGk4LnAwaTguaTMyKGk4KiBhbGlnbiAzMiAlMjIsIGk4 KiBhbGlnbiAzMiAlMjMsIGkzMiA2NCwgaTEgZmFsc2UpLCAhZGJnICEyMDU3LCAhdGJhYS5zdHJ1 Y3QgITE5NwotLSAgJTI0ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIx YXBwbHlJZlByb3BlckVuY29kaW5nSWIxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlp bmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICUyMSwgJWNsYXNzLlZhcnlpbmdX cml0ZXIqIGJ5dmFsIGFsaWduIDMyICU1LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZh cnlpbmciKiBieXZhbCBhbGlnbiAxICU2KSwgIWRiZyAhMjA1OAotKyAgJTI0ID0gY2FsbCB6ZXJv ZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWIxM1Zh cnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhp OCBzaWduZXh0ICUyMSwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5aW5n V3JpdGVyKSBhbGlnbiAzMiAlNSwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5n IiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIikgYWxpZ24gMSAl NiksICFkYmcgITIwNTgKLSAgIGJyIGkxICUyNCwgbGFiZWwgJTYwLCBsYWJlbCAlMjUsICFkYmcg ITIwNTkKLSAKLSA7IDxsYWJlbD46MjU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDsgcHJlZHMgPSAlMwotQEAgLTEwMDE1LDcgKzEwMDE1LDcgQEAgZGVmaW5lIGludGVybmFs IHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1Zhcnlp bmdXcml0ZXIKLSAgICUyNyA9IGJpdGNhc3QgJWNsYXNzLlZhcnlpbmdXcml0ZXIqICU3IHRvIGk4 KiwgIWRiZyAhMjA2MQotICAgJTI4ID0gYml0Y2FzdCAlY2xhc3MuVmFyeWluZ1dyaXRlciogJTEg dG8gaTgqLCAhZGJnICEyMDYxCi0gICBjYWxsIHZvaWQgQGxsdm0ubWVtY3B5LnAwaTgucDBpOC5p MzIoaTgqIGFsaWduIDMyICUyNywgaTgqIGFsaWduIDMyICUyOCwgaTMyIDY0LCBpMSBmYWxzZSks ICFkYmcgITIwNjEsICF0YmFhLnN0cnVjdCAhMTk3Ci0tICAlMjkgPSBjYWxsIHplcm9leHQgaTEg QF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJaTEzVmFyeWluZ1dy aXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25l eHQgJTI2LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwgYWxpZ24gMzIgJTcsICUic3RydWN0 LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsIGFsaWduIDEgJTgpLCAhZGJnICEy MDYyCi0rICAlMjkgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBs eUlmUHJvcGVyRW5jb2RpbmdJaTEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VF RWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTI2LCAlY2xhc3MuVmFyeWluZ1dyaXRl ciogYnl2YWwoJWNsYXNzLlZhcnlpbmdXcml0ZXIpIGFsaWduIDMyICU3LCAlInN0cnVjdC5Qcmlu dEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29k aW5nNFZhcnlpbmciKSBhbGlnbiAxICU4KSwgIWRiZyAhMjA2MgotICAgYnIgaTEgJTI5LCBsYWJl bCAlNjAsIGxhYmVsICUzMCwgIWRiZyAhMjA2MwotIAotIDsgPGxhYmVsPjozMDogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgOyBwcmVkcyA9ICUyNQotQEAgLTEwMDIzLDcgKzEw MDIzLDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWls MTRzd2l0Y2hFbmNvZGluZ0kxM1ZhcnlpbmdXcml0ZXIKLSAgICUzMiA9IGJpdGNhc3QgJWNsYXNz LlZhcnlpbmdXcml0ZXIqICU5IHRvIGk4KiwgIWRiZyAhMjA2NQotICAgJTMzID0gYml0Y2FzdCAl Y2xhc3MuVmFyeWluZ1dyaXRlciogJTEgdG8gaTgqLCAhZGJnICEyMDY1Ci0gICBjYWxsIHZvaWQg QGxsdm0ubWVtY3B5LnAwaTgucDBpOC5pMzIoaTgqIGFsaWduIDMyICUzMiwgaTgqIGFsaWduIDMy ICUzMywgaTMyIDY0LCBpMSBmYWxzZSksICFkYmcgITIwNjUsICF0YmFhLnN0cnVjdCAhMTk3Ci0t ICAlMzQgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJv cGVyRW5jb2RpbmdJajEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184 RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTMxLCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2 YWwgYWxpZ24gMzIgJTksICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5 dmFsIGFsaWduIDEgJTEwKSwgIWRiZyAhMjA2NgotKyAgJTM0ID0gY2FsbCB6ZXJvZXh0IGkxIEBf Wk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWoxM1ZhcnlpbmdXcml0 ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0 ICUzMSwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5aW5nV3JpdGVyKSBh bGlnbiAzMiAlOSwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwo JSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIikgYWxpZ24gMSAlMTApLCAhZGJn ICEyMDY2Ci0gICBiciBpMSAlMzQsIGxhYmVsICU2MCwgbGFiZWwgJTM1LCAhZGJnICEyMDY3Ci0g Ci0gOyA8bGFiZWw+OjM1OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7IHBy ZWRzID0gJTMwCi1AQCAtMTAwMzEsNyArMTAwMzEsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4 dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEzVmFyeWluZ1dyaXRl cgotICAgJTM3ID0gYml0Y2FzdCAlY2xhc3MuVmFyeWluZ1dyaXRlciogJTExIHRvIGk4KiwgIWRi ZyAhMjA2OQotICAgJTM4ID0gYml0Y2FzdCAlY2xhc3MuVmFyeWluZ1dyaXRlciogJTEgdG8gaTgq LCAhZGJnICEyMDY5Ci0gICBjYWxsIHZvaWQgQGxsdm0ubWVtY3B5LnAwaTgucDBpOC5pMzIoaTgq IGFsaWduIDMyICUzNywgaTgqIGFsaWduIDMyICUzOCwgaTMyIDY0LCBpMSBmYWxzZSksICFkYmcg ITIwNjksICF0YmFhLnN0cnVjdCAhMTk3Ci0tICAlMzkgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQ cmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJZjEzVmFyeWluZ1dyaXRlck5T XzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTM2 LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwgYWxpZ24gMzIgJTExLCAlInN0cnVjdC5Qcmlu dEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCBhbGlnbiAxICUxMiksICFkYmcgITIwNzAK LSsgICUzOSA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQ cm9wZXJFbmNvZGluZ0lmMTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5T XzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlMzYsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBi eXZhbCglY2xhc3MuVmFyeWluZ1dyaXRlcikgYWxpZ24gMzIgJTExLCAlInN0cnVjdC5QcmludElu Zm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5n NFZhcnlpbmciKSBhbGlnbiAxICUxMiksICFkYmcgITIwNzAKLSAgIGJyIGkxICUzOSwgbGFiZWwg JTYwLCBsYWJlbCAlNDAsICFkYmcgITIwNzEKLSAKLSA7IDxsYWJlbD46NDA6ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDsgcHJlZHMgPSAlMzUKLUBAIC0xMDAzOSw3ICsxMDAz OSw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0 c3dpdGNoRW5jb2RpbmdJMTNWYXJ5aW5nV3JpdGVyCi0gICAlNDIgPSBiaXRjYXN0ICVjbGFzcy5W YXJ5aW5nV3JpdGVyKiAlMTMgdG8gaTgqLCAhZGJnICEyMDczCi0gICAlNDMgPSBiaXRjYXN0ICVj bGFzcy5WYXJ5aW5nV3JpdGVyKiAlMSB0byBpOCosICFkYmcgITIwNzMKLSAgIGNhbGwgdm9pZCBA bGx2bS5tZW1jcHkucDBpOC5wMGk4LmkzMihpOCogYWxpZ24gMzIgJTQyLCBpOCogYWxpZ24gMzIg JTQzLCBpMzIgNjQsIGkxIGZhbHNlKSwgIWRiZyAhMjA3MywgIXRiYWEuc3RydWN0ICExOTcKLS0g ICU0NCA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9w ZXJFbmNvZGluZ0l4MTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhF bmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlNDEsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZh bCBhbGlnbiAzMiAlMTMsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5 dmFsIGFsaWduIDEgJTE0KSwgIWRiZyAhMjA3NAotKyAgJTQ0ID0gY2FsbCB6ZXJvZXh0IGkxIEBf Wk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSXgxM1ZhcnlpbmdXcml0 ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0 ICU0MSwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5aW5nV3JpdGVyKSBh bGlnbiAzMiAlMTMsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFs KCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIpIGFsaWduIDEgJTE0KSwgIWRi ZyAhMjA3NAotICAgYnIgaTEgJTQ0LCBsYWJlbCAlNjAsIGxhYmVsICU0NSwgIWRiZyAhMjA3NQot IAotIDsgPGxhYmVsPjo0NTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOyBw cmVkcyA9ICU0MAotQEAgLTEwMDQ3LDcgKzEwMDQ3LDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9l eHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1ZhcnlpbmdXcml0 ZXIKLSAgICU0NyA9IGJpdGNhc3QgJWNsYXNzLlZhcnlpbmdXcml0ZXIqICUxNSB0byBpOCosICFk YmcgITIwNzcKLSAgICU0OCA9IGJpdGNhc3QgJWNsYXNzLlZhcnlpbmdXcml0ZXIqICUxIHRvIGk4 KiwgIWRiZyAhMjA3NwotICAgY2FsbCB2b2lkIEBsbHZtLm1lbWNweS5wMGk4LnAwaTguaTMyKGk4 KiBhbGlnbiAzMiAlNDcsIGk4KiBhbGlnbiAzMiAlNDgsIGkzMiA2NCwgaTEgZmFsc2UpLCAhZGJn ICEyMDc3LCAhdGJhYS5zdHJ1Y3QgITE5NwotLSAgJTQ5ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45 UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSXkxM1ZhcnlpbmdXcml0ZXJO U18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICU0 NiwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsIGFsaWduIDMyICUxNSwgJSJzdHJ1Y3QuUHJp bnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwgYWxpZ24gMSAlMTYpLCAhZGJnICEyMDc4 Ci0rICAlNDkgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlm UHJvcGVyRW5jb2RpbmdJeTEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJO U184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTQ2LCAlY2xhc3MuVmFyeWluZ1dyaXRlciog Ynl2YWwoJWNsYXNzLlZhcnlpbmdXcml0ZXIpIGFsaWduIDMyICUxNSwgJSJzdHJ1Y3QuUHJpbnRJ bmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGlu ZzRWYXJ5aW5nIikgYWxpZ24gMSAlMTYpLCAhZGJnICEyMDc4Ci0gICBiciBpMSAlNDksIGxhYmVs ICU2MCwgbGFiZWwgJTUwLCAhZGJnICEyMDc5Ci0gCi0gOyA8bGFiZWw+OjUwOiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICA7IHByZWRzID0gJTQ1Ci1AQCAtMTAwNTUsNyArMTAw NTUsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwx NHN3aXRjaEVuY29kaW5nSTEzVmFyeWluZ1dyaXRlcgotICAgJTUyID0gYml0Y2FzdCAlY2xhc3Mu VmFyeWluZ1dyaXRlciogJTE3IHRvIGk4KiwgIWRiZyAhMjA4MQotICAgJTUzID0gYml0Y2FzdCAl Y2xhc3MuVmFyeWluZ1dyaXRlciogJTEgdG8gaTgqLCAhZGJnICEyMDgxCi0gICBjYWxsIHZvaWQg QGxsdm0ubWVtY3B5LnAwaTgucDBpOC5pMzIoaTgqIGFsaWduIDMyICU1MiwgaTgqIGFsaWduIDMy ICU1MywgaTMyIDY0LCBpMSBmYWxzZSksICFkYmcgITIwODEsICF0YmFhLnN0cnVjdCAhMTk3Ci0t ICAlNTQgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJv cGVyRW5jb2RpbmdJZDEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184 RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTUxLCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2 YWwgYWxpZ24gMzIgJTE3LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBi eXZhbCBhbGlnbiAxICUxOCksICFkYmcgITIwODIKLSsgICU1NCA9IGNhbGwgemVyb2V4dCBpMSBA X1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lkMTNWYXJ5aW5nV3Jp dGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4 dCAlNTEsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCglY2xhc3MuVmFyeWluZ1dyaXRlcikg YWxpZ24gMzIgJTE3LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZh bCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKSBhbGlnbiAxICUxOCksICFk YmcgITIwODIKLSAgIGJyIGkxICU1NCwgbGFiZWwgJTYwLCBsYWJlbCAlNTUsICFkYmcgITIwODMK LSAKLSA7IDxsYWJlbD46NTU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsg cHJlZHMgPSAlNTAKLUBAIC0xMDA2Myw3ICsxMDA2Myw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJv ZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNWYXJ5aW5nV3Jp dGVyCi0gICAlNTcgPSBiaXRjYXN0ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiAlMTkgdG8gaTgqLCAh ZGJnICEyMDg1Ci0gICAlNTggPSBiaXRjYXN0ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiAlMSB0byBp OCosICFkYmcgITIwODUKLSAgIGNhbGwgdm9pZCBAbGx2bS5tZW1jcHkucDBpOC5wMGk4LmkzMihp OCogYWxpZ24gMzIgJTU3LCBpOCogYWxpZ24gMzIgJTU4LCBpMzIgNjQsIGkxIGZhbHNlKSwgIWRi ZyAhMjA4NSwgIXRiYWEuc3RydWN0ICExOTcKLS0gICU1OSA9IGNhbGwgemVyb2V4dCBpMSBAX1pO OVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lQdjEzVmFyeWluZ1dyaXRl ck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQg JTU2LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwgYWxpZ24gMzIgJTE5LCAlInN0cnVjdC5Q cmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCBhbGlnbiAxICUyMCksICFkYmcgITIw ODYKLSsgICU1OSA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5 SWZQcm9wZXJFbmNvZGluZ0lQdjEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VF RWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTU2LCAlY2xhc3MuVmFyeWluZ1dyaXRl ciogYnl2YWwoJWNsYXNzLlZhcnlpbmdXcml0ZXIpIGFsaWduIDMyICUxOSwgJSJzdHJ1Y3QuUHJp bnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNv ZGluZzRWYXJ5aW5nIikgYWxpZ24gMSAlMjApLCAhZGJnICEyMDg2Ci0gICBiciBsYWJlbCAlNjAs ICFkYmcgITIwODMKLSAKLSA7IDxsYWJlbD46NjA6ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDsgcHJlZHMgPSAlNTUsICU1MCwgJTQ1LCAlNDAsICUzNSwgJTMwLCAlMjUsICUz Ci1AQCAtMTAwNzIsNyArMTAwNzIsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pO OVByaW50SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEzVmFyeWluZ1dyaXRlcgotIH0KLSAK LSA7IEZ1bmN0aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2luZAotLWRl ZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlBy b3BlckVuY29kaW5nSWIxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNf OEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwg YWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsIGFs aWduIDEpICMyNSBjb21kYXQgIWRiZyAhMjA4OCB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQg aTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJYjEzVmFyeWlu Z1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNp Z25leHQsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCglY2xhc3MuVmFyeWluZ1dyaXRlcikg YWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsKCUi c3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIpIGFsaWduIDEpICMyNSBjb21kYXQg IWRiZyAhMjA4OCB7Ci0gICAlNCA9IGFsbG9jYSBpMSwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2Eg aTgsIGFsaWduIDEKLSAgIHN0b3JlIGk4ICUwLCBpOCogJTUsIGFsaWduIDEsICF0YmFhICExOTMK LUBAIC0xMDA5OCw3ICsxMDA5OCw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45 UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWIxM1ZhcnlpCi0gfQotIAot IDsgRnVuY3Rpb24gQXR0cnM6IGFsd2F5c2lubGluZSBpbmxpbmVoaW50IG5vdW53aW5kCi0tZGVm aW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJv cGVyRW5jb2RpbmdJaTEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184 RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCBh bGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwgYWxp Z24gMSkgIzI1IGNvbWRhdCAhZGJnICEyMDk3IHsKLStkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBp MSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lpMTNWYXJ5aW5n V3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2ln bmV4dCwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5aW5nV3JpdGVyKSBh bGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwoJSJz dHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIikgYWxpZ24gMSkgIzI1IGNvbWRhdCAh ZGJnICEyMDk3IHsKLSAgICU0ID0gYWxsb2NhIGkxLCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSBp OCwgYWxpZ24gMQotICAgc3RvcmUgaTggJTAsIGk4KiAlNSwgYWxpZ24gMSwgIXRiYWEgITE5Mwot QEAgLTEwMTI0LDcgKzEwMTI0LDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQ cmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJaTEzVmFyeWkKLSB9Ci0gCi0g OyBGdW5jdGlvbiBBdHRyczogYWx3YXlzaW5saW5lIGlubGluZWhpbnQgbm91bndpbmQKLS1kZWZp bmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9w ZXJFbmNvZGluZ0lqMTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhF bmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsIGFs aWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCBhbGln biAxKSAjMjUgY29tZGF0ICFkYmcgITIxMDYgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkx IEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWoxM1ZhcnlpbmdX cml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWdu ZXh0LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwoJWNsYXNzLlZhcnlpbmdXcml0ZXIpIGFs aWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCglInN0 cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKSBhbGlnbiAxKSAjMjUgY29tZGF0ICFk YmcgITIxMDYgewotICAgJTQgPSBhbGxvY2EgaTEsIGFsaWduIDEKLSAgICU1ID0gYWxsb2NhIGk4 LCBhbGlnbiAxCi0gICBzdG9yZSBpOCAlMCwgaTgqICU1LCBhbGlnbiAxLCAhdGJhYSAhMTkzCi1A QCAtMTAxNTAsNyArMTAxNTAsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVBy aW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lqMTNWYXJ5aQotIH0KLSAKLSA7 IEZ1bmN0aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2luZAotLWRlZmlu ZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3Bl ckVuY29kaW5nSWYxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVu Y29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwgYWxp Z24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsIGFsaWdu IDEpICMyNSBjb21kYXQgIWRiZyAhMjExNSB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEg QF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJZjEzVmFyeWluZ1dy aXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25l eHQsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCglY2xhc3MuVmFyeWluZ1dyaXRlcikgYWxp Z24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsKCUic3Ry dWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIpIGFsaWduIDEpICMyNSBjb21kYXQgIWRi ZyAhMjExNSB7Ci0gICAlNCA9IGFsbG9jYSBpMSwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2EgaTgs IGFsaWduIDEKLSAgIHN0b3JlIGk4ICUwLCBpOCogJTUsIGFsaWduIDEsICF0YmFhICExOTMKLUBA IC0xMDE3Niw3ICsxMDE3Niw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJp bnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWYxM1ZhcnlpCi0gfQotIAotIDsg RnVuY3Rpb24gQXR0cnM6IGFsd2F5c2lubGluZSBpbmxpbmVoaW50IG5vdW53aW5kCi0tZGVmaW5l IGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVy RW5jb2RpbmdJeDEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5j b2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCBhbGln biAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwgYWxpZ24g MSkgIzI1IGNvbWRhdCAhZGJnICEyMTI0IHsKLStkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBA X1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0l4MTNWYXJ5aW5nV3Jp dGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4 dCwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5aW5nV3JpdGVyKSBhbGln biAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwoJSJzdHJ1 Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIikgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJn ICEyMTI0IHsKLSAgICU0ID0gYWxsb2NhIGkxLCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSBpOCwg YWxpZ24gMQotICAgc3RvcmUgaTggJTAsIGk4KiAlNSwgYWxpZ24gMSwgIXRiYWEgITE5MwotQEAg LTEwMjAyLDcgKzEwMjAyLDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmlu dEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJeDEzVmFyeWkKLSB9Ci0gCi0gOyBG dW5jdGlvbiBBdHRyczogYWx3YXlzaW5saW5lIGlubGluZWhpbnQgbm91bndpbmQKLS1kZWZpbmUg aW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJF bmNvZGluZ0l5MTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNv ZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsIGFsaWdu IDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCBhbGlnbiAx KSAjMjUgY29tZGF0ICFkYmcgITIxMzMgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBf Wk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSXkxM1ZhcnlpbmdXcml0 ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0 LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwoJWNsYXNzLlZhcnlpbmdXcml0ZXIpIGFsaWdu IDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCglInN0cnVj dC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKSBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcg ITIxMzMgewotICAgJTQgPSBhbGxvY2EgaTEsIGFsaWduIDEKLSAgICU1ID0gYWxsb2NhIGk4LCBh bGlnbiAxCi0gICBzdG9yZSBpOCAlMCwgaTgqICU1LCBhbGlnbiAxLCAhdGJhYSAhMTkzCi1AQCAt MTAyMjgsNyArMTAyMjgsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50 SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0l5MTNWYXJ5aQotIH0KLSAKLSA7IEZ1 bmN0aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2luZAotLWRlZmluZSBp bnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVu Y29kaW5nSWQxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29k aW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwgYWxpZ24g MzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsIGFsaWduIDEp ICMyNSBjb21kYXQgIWRiZyAhMjE0MiB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9a TjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJZDEzVmFyeWluZ1dyaXRl ck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQs ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCglY2xhc3MuVmFyeWluZ1dyaXRlcikgYWxpZ24g MzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsKCUic3RydWN0 LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIpIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAh MjE0MiB7Ci0gICAlNCA9IGFsbG9jYSBpMSwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2EgaTgsIGFs aWduIDEKLSAgIHN0b3JlIGk4ICUwLCBpOCogJTUsIGFsaWduIDEsICF0YmFhICExOTMKLUBAIC0x MDI1NCw3ICsxMDI1NCw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJ bmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWQxM1ZhcnlpCi0gfQotIAotIDsgRnVu Y3Rpb24gQXR0cnM6IGFsd2F5c2lubGluZSBpbmxpbmVoaW50IG5vdW53aW5kCi0tZGVmaW5lIGlu dGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5j b2RpbmdJUHYxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29k aW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwgYWxpZ24g MzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsIGFsaWduIDEp ICMyNSBjb21kYXQgIWRiZyAhMjE1MSB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9a TjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJUHYxM1ZhcnlpbmdXcml0 ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0 LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwoJWNsYXNzLlZhcnlpbmdXcml0ZXIpIGFsaWdu IDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCglInN0cnVj dC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKSBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcg ITIxNTEgewotICAgJTQgPSBhbGxvY2EgaTEsIGFsaWduIDEKLSAgICU1ID0gYWxsb2NhIGk4LCBh bGlnbiAxCi0gICBzdG9yZSBpOCAlMCwgaTgqICU1LCBhbGlnbiAxLCAhdGJhYSAhMTkzCi1kaWZm IC0tZ2l0IGEvYnVpbHRpbnMvYnVpbHRpbnMtY20tNjQubGwgYi9idWlsdGlucy9idWlsdGlucy1j bS02NC5sbAotaW5kZXggMzlhMmRkOGJlLi4zNzVkMDFiZWQgMTAwNjQ0Ci0tLS0gYS9idWlsdGlu cy9idWlsdGlucy1jbS02NC5sbAotKysrIGIvYnVpbHRpbnMvYnVpbHRpbnMtY20tNjQubGwKLUBA IC01NTcsNyArNTU3LDcgQEAgJF9aTjEzVmFyeWluZ1dyaXRlcjEyV3JpdGVWZWNFbGVtSVB2RUV2 diA9IGNvbWRhdCBhbnkKLSBALnN0ci4xMCA9IHByaXZhdGUgdW5uYW1lZF9hZGRyIGNvbnN0YW50 IFs4IHggaThdIGMiJTAxNmxsWFwwMCIsIGFsaWduIDEKLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBu b2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgc2lnbmV4dCBpOCBAX1oyNF9fY21f aW50cmluc2ljX2ltcGxfc2RpdmNjKGk4IHNpZ25leHQsIGk4IHNpZ25leHQpICMwIHsKLStkZWZp bmUgaW50ZXJuYWwgc2lnbmV4dCBpOCBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdmNjKGk4 IHNpZ25leHQsIGk4IHNpZ25leHQpICMwIHsKLSAgICUzID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0g ICAlNCA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2EgPDEgeCBpOD4sIGFsaWdu IDEKLUBAIC02MTgsNyArNjE4LDcgQEAgZGVmaW5lIGludGVybmFsIDwxIHggaTg+IEBfWk43ZGV0 YWlsczEzX19pbXBsX2RpdnJlbUlMaTFFRUV1MkNNdmJUX19jUzFfUzFfdTJDTXYKLSBkZWNsYXJl IDwxIHggaTg+IEBsbHZtLmdlbngucmRyZWdpb25pLnYxaTgudjFpOC5pMTYoPDEgeCBpOD4sIGkz MiwgaTMyLCBpMzIsIGkxNiwgaTMyKSAjMgotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5l IG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MSB4IGk4PiBAX1oyNF9fY21faW50cmluc2lj X2ltcGxfc2RpdnUyQ012YjFfY1NfKDwxIHggaTg+LCA8MSB4IGk4PikgIzAgewotK2RlZmluZSBp bnRlcm5hbCA8MSB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjFfY1Nf KDwxIHggaTg+LCA8MSB4IGk4PikgIzAgewotICAgJTMgPSBhbGxvY2EgPDEgeCBpOD4sIGFsaWdu IDEKLSAgICU0ID0gYWxsb2NhIDwxIHggaTg+LCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSA8MSB4 IGk4PiwgYWxpZ24gMQotQEAgLTYzNCw3ICs2MzQsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwxIHgg aTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZiMV9jU18oPDEgeCBpOD4sIDwx Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRz b19sb2NhbCA8MiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjJfY1Nf KDwyIHggaTg+LCA8MiB4IGk4PikgIzMgewotK2RlZmluZSBpbnRlcm5hbCA8MiB4IGk4PiBAX1oy NF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjJfY1NfKDwyIHggaTg+LCA8MiB4IGk4Pikg IzMgewotICAgJTMgPSBhbGxvY2EgPDIgeCBpOD4sIGFsaWduIDIKLSAgICU0ID0gYWxsb2NhIDwy IHggaTg+LCBhbGlnbiAyCi0gICAlNSA9IGFsbG9jYSA8MiB4IGk4PiwgYWxpZ24gMgotQEAgLTY4 MCw3ICs2ODAsNyBAQCBkZWZpbmUgaW50ZXJuYWwgPDIgeCBpOD4gQF9aTjdkZXRhaWxzMTNfX2lt cGxfZGl2cmVtSUxpMkVFRXUyQ012YlRfX2NTMV9TMV91MkNNdgotIH0KLSAKLSA7IEZ1bmN0aW9u IEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDQgeCBpOD4gQF9a MjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmI0X2NTXyg8NCB4IGk4PiwgPDQgeCBpOD4p ICM1IHsKLStkZWZpbmUgaW50ZXJuYWwgPDQgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBs X3NkaXZ1MkNNdmI0X2NTXyg8NCB4IGk4PiwgPDQgeCBpOD4pICM1IHsKLSAgICUzID0gYWxsb2Nh IDw0IHggaTg+LCBhbGlnbiA0Ci0gICAlNCA9IGFsbG9jYSA8NCB4IGk4PiwgYWxpZ24gNAotICAg JTUgPSBhbGxvY2EgPDQgeCBpOD4sIGFsaWduIDQKLUBAIC04MTgsNyArODE4LDcgQEAgZGVmaW5l IGludGVybmFsIDwxNiB4IGk4PiBAX1pON2RldGFpbHMxM19faW1wbF9kaXZyZW1JTGkxNkVFRXUy Q012YlRfX2NTMV9TMV91MkMKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91 bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwzMiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2lt cGxfc2RpdnUyQ012YjMyX2NTXyg8MzIgeCBpOD4sIDwzMiB4IGk4PikgIzExIHsKLStkZWZpbmUg aW50ZXJuYWwgPDMyIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZiMzJf Y1NfKDwzMiB4IGk4PiwgPDMyIHggaTg+KSAjMTEgewotICAgJTMgPSBhbGxvY2EgPDMyIHggaTg+ LCBhbGlnbiAzMgotICAgJTQgPSBhbGxvY2EgPDMyIHggaTg+LCBhbGlnbiAzMgotICAgJTUgPSBh bGxvY2EgPDMyIHggaTg+LCBhbGlnbiAzMgotQEAgLTg2NCw3ICs4NjQsNyBAQCBkZWZpbmUgaW50 ZXJuYWwgPDMyIHggaTg+IEBfWk43ZGV0YWlsczEzX19pbXBsX2RpdnJlbUlMaTMyRUVFdTJDTXZi VF9fY1MxX1MxX3UyQwotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2lu ZAotLWRlZmluZSBkc29fbG9jYWwgc2lnbmV4dCBpOCBAX1oyNF9fY21faW50cmluc2ljX2ltcGxf c3JlbWNjKGk4IHNpZ25leHQsIGk4IHNpZ25leHQpICMwIHsKLStkZWZpbmUgaW50ZXJuYWwgc2ln bmV4dCBpOCBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbWNjKGk4IHNpZ25leHQsIGk4IHNp Z25leHQpICMwIHsKLSAgICUzID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0gICAlNCA9IGFsbG9jYSBp OCwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2EgPDEgeCBpOD4sIGFsaWduIDEKLUBAIC04OTAsNyAr ODkwLDcgQEAgZGVmaW5lIGRzb19sb2NhbCBzaWduZXh0IGk4IEBfWjI0X19jbV9pbnRyaW5zaWNf aW1wbF9zcmVtY2MoaTggc2lnbmV4dCwgaTggc2lnbmUKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRy czogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwxIHggaTg+IEBfWjI0X19j bV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMV9jU18oPDEgeCBpOD4sIDwxIHggaTg+KSAjMCB7 Ci0rZGVmaW5lIGludGVybmFsIDwxIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVt dTJDTXZiMV9jU18oPDEgeCBpOD4sIDwxIHggaTg+KSAjMCB7Ci0gICAlMyA9IGFsbG9jYSA8MSB4 IGk4PiwgYWxpZ24gMQotICAgJTQgPSBhbGxvY2EgPDEgeCBpOD4sIGFsaWduIDEKLSAgICU1ID0g YWxsb2NhIDwxIHggaTg+LCBhbGlnbiAxCi1AQCAtOTA0LDcgKzkwNCw3IEBAIGRlZmluZSBkc29f bG9jYWwgPDEgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIxX2NTXyg8 MSB4IGk4PiwgPDEKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQK LS1kZWZpbmUgZHNvX2xvY2FsIDwyIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVt dTJDTXZiMl9jU18oPDIgeCBpOD4sIDwyIHggaTg+KSAjMyB7Ci0rZGVmaW5lIGludGVybmFsIDwy IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMl9jU18oPDIgeCBpOD4s IDwyIHggaTg+KSAjMyB7Ci0gICAlMyA9IGFsbG9jYSA8MiB4IGk4PiwgYWxpZ24gMgotICAgJTQg PSBhbGxvY2EgPDIgeCBpOD4sIGFsaWduIDIKLSAgICU1ID0gYWxsb2NhIDwyIHggaTg+LCBhbGln biAyCi1AQCAtOTE4LDcgKzkxOCw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDIgeCBpOD4gQF9aMjRf X2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIyX2NTXyg8MiB4IGk4PiwgPDIKLSB9Ci0gCi0g OyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDw0 IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiNF9jU18oPDQgeCBpOD4s IDw0IHggaTg+KSAjNSB7Ci0rZGVmaW5lIGludGVybmFsIDw0IHggaTg+IEBfWjI0X19jbV9pbnRy aW5zaWNfaW1wbF9zcmVtdTJDTXZiNF9jU18oPDQgeCBpOD4sIDw0IHggaTg+KSAjNSB7Ci0gICAl MyA9IGFsbG9jYSA8NCB4IGk4PiwgYWxpZ24gNAotICAgJTQgPSBhbGxvY2EgPDQgeCBpOD4sIGFs aWduIDQKLSAgICU1ID0gYWxsb2NhIDw0IHggaTg+LCBhbGlnbiA0Ci1AQCAtOTMyLDcgKzkzMiw3 IEBAIGRlZmluZSBkc29fbG9jYWwgPDQgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3Ny ZW11MkNNdmI0X2NTXyg8NCB4IGk4PiwgPDQKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9p bmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDw4IHggaTg+IEBfWjI0X19jbV9pbnRy aW5zaWNfaW1wbF9zcmVtdTJDTXZiOF9jU18oPDggeCBpOD4sIDw4IHggaTg+KSAjNyB7Ci0rZGVm aW5lIGludGVybmFsIDw4IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZi OF9jU18oPDggeCBpOD4sIDw4IHggaTg+KSAjNyB7Ci0gICAlMyA9IGFsbG9jYSA8OCB4IGk4Piwg YWxpZ24gOAotICAgJTQgPSBhbGxvY2EgPDggeCBpOD4sIGFsaWduIDgKLSAgICU1ID0gYWxsb2Nh IDw4IHggaTg+LCBhbGlnbiA4Ci1AQCAtOTQ2LDcgKzk0Niw3IEBAIGRlZmluZSBkc29fbG9jYWwg PDggeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmI4X2NTXyg8OCB4IGk4 PiwgPDgKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZp bmUgZHNvX2xvY2FsIDwxNiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012 YjE2X2NTXyg8MTYgeCBpOD4sIDwxNiB4IGk4PikgIzkgewotK2RlZmluZSBpbnRlcm5hbCA8MTYg eCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIxNl9jU18oPDE2IHggaTg+ LCA8MTYgeCBpOD4pICM5IHsKLSAgICUzID0gYWxsb2NhIDwxNiB4IGk4PiwgYWxpZ24gMTYKLSAg ICU0ID0gYWxsb2NhIDwxNiB4IGk4PiwgYWxpZ24gMTYKLSAgICU1ID0gYWxsb2NhIDwxNiB4IGk4 PiwgYWxpZ24gMTYKLUBAIC05NjAsNyArOTYwLDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MTYgeCBp OD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIxNl9jU18oPDE2IHggaTg+LAot IH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29f bG9jYWwgPDMyIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMzJfY1Nf KDwzMiB4IGk4PiwgPDMyIHggaTg+KSAjMTEgewotK2RlZmluZSBpbnRlcm5hbCA8MzIgeCBpOD4g QF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIzMl9jU18oPDMyIHggaTg+LCA8MzIg eCBpOD4pICMxMSB7Ci0gICAlMyA9IGFsbG9jYSA8MzIgeCBpOD4sIGFsaWduIDMyCi0gICAlNCA9 IGFsbG9jYSA8MzIgeCBpOD4sIGFsaWduIDMyCi0gICAlNSA9IGFsbG9jYSA8MzIgeCBpOD4sIGFs aWduIDMyCi1AQCAtOTc0LDcgKzk3NCw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDMyIHggaTg+IEBf WjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMzJfY1NfKDwzMiB4IGk4PiwKLSB9Ci0g Ci0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2Fs IHNpZ25leHQgaTE2IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2c3MoaTE2IHNpZ25leHQs IGkxNiBzaWduZXh0KSAjMyB7Ci0rZGVmaW5lIGludGVybmFsIHNpZ25leHQgaTE2IEBfWjI0X19j bV9pbnRyaW5zaWNfaW1wbF9zZGl2c3MoaTE2IHNpZ25leHQsIGkxNiBzaWduZXh0KSAjMyB7Ci0g ICAlMyA9IGFsbG9jYSBpMTYsIGFsaWduIDIKLSAgICU0ID0gYWxsb2NhIGkxNiwgYWxpZ24gMgot ICAgJTUgPSBhbGxvY2EgPDEgeCBpMTY+LCBhbGlnbiAyCi1AQCAtMTA1OCw3ICsxMDU4LDcgQEAg ZGVmaW5lIGludGVybmFsIDwxIHggaTE2PiBAX1pON2RldGFpbHMxM19faW1wbF9kaXZyZW1JTGkx RUVFdTJDTXZiVF9fc1MxX1MxX3UyQ00KLSBkZWNsYXJlIDwxIHggaTE2PiBAbGx2bS5nZW54LnJk cmVnaW9uaS52MWkxNi52MWkxNi5pMTYoPDEgeCBpMTY+LCBpMzIsIGkzMiwgaTMyLCBpMTYsIGkz MikgIzIKLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBk c29fbG9jYWwgPDEgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZiMV9z U18oPDEgeCBpMTY+LCA8MSB4IGkxNj4pICMzIHsKLStkZWZpbmUgaW50ZXJuYWwgPDEgeCBpMTY+ IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZiMV9zU18oPDEgeCBpMTY+LCA8MSB4 IGkxNj4pICMzIHsKLSAgICUzID0gYWxsb2NhIDwxIHggaTE2PiwgYWxpZ24gMgotICAgJTQgPSBh bGxvY2EgPDEgeCBpMTY+LCBhbGlnbiAyCi0gICAlNSA9IGFsbG9jYSA8MSB4IGkxNj4sIGFsaWdu IDIKLUBAIC0xMDc0LDcgKzEwNzQsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwxIHggaTE2PiBAX1oy NF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjFfc1NfKDwxIHggaTE2PiwgPAotIH0KLSAK LSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwg PDIgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZiMl9zU18oPDIgeCBp MTY+LCA8MiB4IGkxNj4pICM1IHsKLStkZWZpbmUgaW50ZXJuYWwgPDIgeCBpMTY+IEBfWjI0X19j bV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZiMl9zU18oPDIgeCBpMTY+LCA8MiB4IGkxNj4pICM1 IHsKLSAgICUzID0gYWxsb2NhIDwyIHggaTE2PiwgYWxpZ24gNAotICAgJTQgPSBhbGxvY2EgPDIg eCBpMTY+LCBhbGlnbiA0Ci0gICAlNSA9IGFsbG9jYSA8MiB4IGkxNj4sIGFsaWduIDQKLUBAIC0x MTQzLDcgKzExNDMsNyBAQCBkZWZpbmUgaW50ZXJuYWwgPDIgeCBpMTY+IEBfWk43ZGV0YWlsczEz X19pbXBsX2RpdnJlbUlMaTJFRUV1MkNNdmJUX19zUzFfUzFfdTJDTQotIH0KLSAKLSA7IEZ1bmN0 aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDQgeCBpMTY+ IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZiNF9zU18oPDQgeCBpMTY+LCA8NCB4 IGkxNj4pICM3IHsKLStkZWZpbmUgaW50ZXJuYWwgPDQgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5z aWNfaW1wbF9zZGl2dTJDTXZiNF9zU18oPDQgeCBpMTY+LCA8NCB4IGkxNj4pICM3IHsKLSAgICUz ID0gYWxsb2NhIDw0IHggaTE2PiwgYWxpZ24gOAotICAgJTQgPSBhbGxvY2EgPDQgeCBpMTY+LCBh bGlnbiA4Ci0gICAlNSA9IGFsbG9jYSA8NCB4IGkxNj4sIGFsaWduIDgKLUBAIC0xMzUwLDcgKzEz NTAsNyBAQCBkZWZpbmUgaW50ZXJuYWwgPDE2IHggaTE2PiBAX1pON2RldGFpbHMxM19faW1wbF9k aXZyZW1JTGkxNkVFRXUyQ012YlRfX3NTMV9TMV91MgotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJz OiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDMyIHggaTE2PiBAX1oyNF9f Y21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjMyX3NTXyg8MzIgeCBpMTY+LCA8MzIgeCBpMTY+ KSAjMTMgewotK2RlZmluZSBpbnRlcm5hbCA8MzIgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNf aW1wbF9zZGl2dTJDTXZiMzJfc1NfKDwzMiB4IGkxNj4sIDwzMiB4IGkxNj4pICMxMyB7Ci0gICAl MyA9IGFsbG9jYSA8MzIgeCBpMTY+LCBhbGlnbiA2NAotICAgJTQgPSBhbGxvY2EgPDMyIHggaTE2 PiwgYWxpZ24gNjQKLSAgICU1ID0gYWxsb2NhIDwzMiB4IGkxNj4sIGFsaWduIDY0Ci1AQCAtMTQx OSw3ICsxNDE5LDcgQEAgZGVmaW5lIGludGVybmFsIDwzMiB4IGkxNj4gQF9aTjdkZXRhaWxzMTNf X2ltcGxfZGl2cmVtSUxpMzJFRUV1MkNNdmJUX19zUzFfUzFfdTIKLSB9Ci0gCi0gOyBGdW5jdGlv biBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIHNpZ25leHQgaTE2 IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtc3MoaTE2IHNpZ25leHQsIGkxNiBzaWduZXh0 KSAjMyB7Ci0rZGVmaW5lIGludGVybmFsIHNpZ25leHQgaTE2IEBfWjI0X19jbV9pbnRyaW5zaWNf aW1wbF9zcmVtc3MoaTE2IHNpZ25leHQsIGkxNiBzaWduZXh0KSAjMyB7Ci0gICAlMyA9IGFsbG9j YSBpMTYsIGFsaWduIDIKLSAgICU0ID0gYWxsb2NhIGkxNiwgYWxpZ24gMgotICAgJTUgPSBhbGxv Y2EgPDEgeCBpMTY+LCBhbGlnbiAyCi1AQCAtMTQ0NSw3ICsxNDQ1LDcgQEAgZGVmaW5lIGRzb19s b2NhbCBzaWduZXh0IGkxNiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXNzKGkxNiBzaWdu ZXh0LCBpMTYgc2kKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQK LS1kZWZpbmUgZHNvX2xvY2FsIDwxIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3Jl bXUyQ012YjFfc1NfKDwxIHggaTE2PiwgPDEgeCBpMTY+KSAjMyB7Ci0rZGVmaW5lIGludGVybmFs IDwxIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjFfc1NfKDwxIHgg aTE2PiwgPDEgeCBpMTY+KSAjMyB7Ci0gICAlMyA9IGFsbG9jYSA8MSB4IGkxNj4sIGFsaWduIDIK LSAgICU0ID0gYWxsb2NhIDwxIHggaTE2PiwgYWxpZ24gMgotICAgJTUgPSBhbGxvY2EgPDEgeCBp MTY+LCBhbGlnbiAyCi1AQCAtMTQ1OSw3ICsxNDU5LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MSB4 IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIxX3NTXyg8MSB4IGkxNj4s IDwKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUg ZHNvX2xvY2FsIDwyIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjJf c1NfKDwyIHggaTE2PiwgPDIgeCBpMTY+KSAjNSB7Ci0rZGVmaW5lIGludGVybmFsIDwyIHggaTE2 PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjJfc1NfKDwyIHggaTE2PiwgPDIg eCBpMTY+KSAjNSB7Ci0gICAlMyA9IGFsbG9jYSA8MiB4IGkxNj4sIGFsaWduIDQKLSAgICU0ID0g YWxsb2NhIDwyIHggaTE2PiwgYWxpZ24gNAotICAgJTUgPSBhbGxvY2EgPDIgeCBpMTY+LCBhbGln biA0Ci1AQCAtMTQ3Myw3ICsxNDczLDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MiB4IGkxNj4gQF9a MjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIyX3NTXyg8MiB4IGkxNj4sIDwKLSB9Ci0g Ci0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2Fs IDw0IHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjRfc1NfKDw0IHgg aTE2PiwgPDQgeCBpMTY+KSAjNyB7Ci0rZGVmaW5lIGludGVybmFsIDw0IHggaTE2PiBAX1oyNF9f Y21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjRfc1NfKDw0IHggaTE2PiwgPDQgeCBpMTY+KSAj NyB7Ci0gICAlMyA9IGFsbG9jYSA8NCB4IGkxNj4sIGFsaWduIDgKLSAgICU0ID0gYWxsb2NhIDw0 IHggaTE2PiwgYWxpZ24gOAotICAgJTUgPSBhbGxvY2EgPDQgeCBpMTY+LCBhbGlnbiA4Ci1AQCAt MTQ4Nyw3ICsxNDg3LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8NCB4IGkxNj4gQF9aMjRfX2NtX2lu dHJpbnNpY19pbXBsX3NyZW11MkNNdmI0X3NTXyg8NCB4IGkxNj4sIDwKLSB9Ci0gCi0gOyBGdW5j dGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDw4IHggaTE2 PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012Yjhfc1NfKDw4IHggaTE2PiwgPDgg eCBpMTY+KSAjOSB7Ci0rZGVmaW5lIGludGVybmFsIDw4IHggaTE2PiBAX1oyNF9fY21faW50cmlu c2ljX2ltcGxfc3JlbXUyQ012Yjhfc1NfKDw4IHggaTE2PiwgPDggeCBpMTY+KSAjOSB7Ci0gICAl MyA9IGFsbG9jYSA8OCB4IGkxNj4sIGFsaWduIDE2Ci0gICAlNCA9IGFsbG9jYSA8OCB4IGkxNj4s IGFsaWduIDE2Ci0gICAlNSA9IGFsbG9jYSA8OCB4IGkxNj4sIGFsaWduIDE2Ci1AQCAtMTUwMSw3 ICsxNTAxLDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8OCB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNp Y19pbXBsX3NyZW11MkNNdmI4X3NTXyg8OCB4IGkxNj4sIDwKLSB9Ci0gCi0gOyBGdW5jdGlvbiBB dHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwxNiB4IGkxNj4gQF9a MjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIxNl9zU18oPDE2IHggaTE2PiwgPDE2IHgg aTE2PikgIzExIHsKLStkZWZpbmUgaW50ZXJuYWwgPDE2IHggaTE2PiBAX1oyNF9fY21faW50cmlu c2ljX2ltcGxfc3JlbXUyQ012YjE2X3NTXyg8MTYgeCBpMTY+LCA8MTYgeCBpMTY+KSAjMTEgewot ICAgJTMgPSBhbGxvY2EgPDE2IHggaTE2PiwgYWxpZ24gMzIKLSAgICU0ID0gYWxsb2NhIDwxNiB4 IGkxNj4sIGFsaWduIDMyCi0gICAlNSA9IGFsbG9jYSA8MTYgeCBpMTY+LCBhbGlnbiAzMgotQEAg LTE1MTUsNyArMTUxNSw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDE2IHggaTE2PiBAX1oyNF9fY21f aW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjE2X3NTXyg8MTYgeCBpMTY+Ci0gfQotIAotIDsgRnVu Y3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MzIgeCBp MTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMzJfc1NfKDwzMiB4IGkxNj4s IDwzMiB4IGkxNj4pICMxMyB7Ci0rZGVmaW5lIGludGVybmFsIDwzMiB4IGkxNj4gQF9aMjRfX2Nt X2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIzMl9zU18oPDMyIHggaTE2PiwgPDMyIHggaTE2Pikg IzEzIHsKLSAgICUzID0gYWxsb2NhIDwzMiB4IGkxNj4sIGFsaWduIDY0Ci0gICAlNCA9IGFsbG9j YSA8MzIgeCBpMTY+LCBhbGlnbiA2NAotICAgJTUgPSBhbGxvY2EgPDMyIHggaTE2PiwgYWxpZ24g NjQKLUBAIC0xNTI5LDcgKzE1MjksNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwzMiB4IGkxNj4gQF9a MjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIzMl9zU18oPDMyIHggaTE2PgotIH0KLSAK LSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwg aTMyIEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2aWkoaTMyLCBpMzIpICMxNCB7Ci0rZGVm aW5lIGludGVybmFsIGkzMiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdmlpKGkzMiwgaTMy KSAjMTQgewotICAgJTMgPSBhbGxvY2EgaTMyLCBhbGlnbiA0Ci0gICAlNCA9IGFsbG9jYSBpMzIs IGFsaWduIDQKLSAgICU1ID0gYWxsb2NhIDwxIHggaTMyPiwgYWxpZ24gNAotQEAgLTE3MzAsNyAr MTczMCw3IEBAIGRlZmluZSBpbnRlcm5hbCA8MSB4IGkzMj4gQF9aTjdkZXRhaWxzMTNfX2ltcGxf ZGl2cmVtSUxpMUVFRXUyQ012YlRfX2lTMV9TMV91MkNNCi0gZGVjbGFyZSA8MSB4IGkzMj4gQGxs dm0uZ2VueC5yZHJlZ2lvbmkudjFpMzIudjFpMzIuaTE2KDwxIHggaTMyPiwgaTMyLCBpMzIsIGkz MiwgaTE2LCBpMzIpICMyCi0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQK LS1kZWZpbmUgZHNvX2xvY2FsIDwxIHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2Rp dnUyQ012YjFfaVNfKDwxIHggaTMyPiwgPDEgeCBpMzI+KSAjMTQgewotK2RlZmluZSBpbnRlcm5h bCA8MSB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmIxX2lTXyg8MSB4 IGkzMj4sIDwxIHggaTMyPikgIzE0IHsKLSAgICUzID0gYWxsb2NhIDwxIHggaTMyPiwgYWxpZ24g NAotICAgJTQgPSBhbGxvY2EgPDEgeCBpMzI+LCBhbGlnbiA0Ci0gICAlNSA9IGFsbG9jYSA8MSB4 IGkzMj4sIGFsaWduIDQKLUBAIC0xNzQ2LDcgKzE3NDYsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwx IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjFfaVNfKDwxIHggaTMy PiwgPAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmlu ZSBkc29fbG9jYWwgPDIgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZi Ml9pU18oPDIgeCBpMzI+LCA8MiB4IGkzMj4pICMxNSB7Ci0rZGVmaW5lIGludGVybmFsIDwyIHgg aTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjJfaVNfKDwyIHggaTMyPiwg PDIgeCBpMzI+KSAjMTUgewotICAgJTMgPSBhbGxvY2EgPDIgeCBpMzI+LCBhbGlnbiA4Ci0gICAl NCA9IGFsbG9jYSA8MiB4IGkzMj4sIGFsaWduIDgKLSAgICU1ID0gYWxsb2NhIDwyIHggaTMyPiwg YWxpZ24gOAotQEAgLTE5MzIsNyArMTkzMiw3IEBAIGRlZmluZSBpbnRlcm5hbCA8MiB4IGkzMj4g QF9aTjdkZXRhaWxzMTNfX2ltcGxfZGl2cmVtSUxpMkVFRXUyQ012YlRfX2lTMV9TMV91MkNNCi0g fQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19s b2NhbCA8NCB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmI0X2lTXyg8 NCB4IGkzMj4sIDw0IHggaTMyPikgIzE2IHsKLStkZWZpbmUgaW50ZXJuYWwgPDQgeCBpMzI+IEBf WjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZiNF9pU18oPDQgeCBpMzI+LCA8NCB4IGkz Mj4pICMxNiB7Ci0gICAlMyA9IGFsbG9jYSA8NCB4IGkzMj4sIGFsaWduIDE2Ci0gICAlNCA9IGFs bG9jYSA8NCB4IGkzMj4sIGFsaWduIDE2Ci0gICAlNSA9IGFsbG9jYSA8NCB4IGkzMj4sIGFsaWdu IDE2Ci1AQCAtMjQ5MCw3ICsyNDkwLDcgQEAgZGVmaW5lIGludGVybmFsIDwxNiB4IGkzMj4gQF9a TjdkZXRhaWxzMTNfX2ltcGxfZGl2cmVtSUxpMTZFRUV1MkNNdmJUX19pUzFfUzFfdTIKLSB9Ci0g Ci0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2Fs IDwzMiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmIzMl9pU18oPDMy IHggaTMyPiwgPDMyIHggaTMyPikgIzE5IHsKLStkZWZpbmUgaW50ZXJuYWwgPDMyIHggaTMyPiBA X1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjMyX2lTXyg8MzIgeCBpMzI+LCA8MzIg eCBpMzI+KSAjMTkgewotICAgJTMgPSBhbGxvY2EgPDMyIHggaTMyPiwgYWxpZ24gMTI4Ci0gICAl NCA9IGFsbG9jYSA8MzIgeCBpMzI+LCBhbGlnbiAxMjgKLSAgICU1ID0gYWxsb2NhIDwzMiB4IGkz Mj4sIGFsaWduIDEyOAotQEAgLTI2NzYsNyArMjY3Niw3IEBAIGRlZmluZSBpbnRlcm5hbCA8MzIg eCBpMzI+IEBfWk43ZGV0YWlsczEzX19pbXBsX2RpdnJlbUlMaTMyRUVFdTJDTXZiVF9faVMxX1Mx X3UyCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5l IGRzb19sb2NhbCBpMzIgQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW1paShpMzIsIGkzMikg IzE0IHsKLStkZWZpbmUgaW50ZXJuYWwgaTMyIEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVt aWkoaTMyLCBpMzIpICMxNCB7Ci0gICAlMyA9IGFsbG9jYSBpMzIsIGFsaWduIDQKLSAgICU0ID0g YWxsb2NhIGkzMiwgYWxpZ24gNAotICAgJTUgPSBhbGxvY2EgPDEgeCBpMzI+LCBhbGlnbiA0Ci1A QCAtMjcwMiw3ICsyNzAyLDcgQEAgZGVmaW5lIGRzb19sb2NhbCBpMzIgQF9aMjRfX2NtX2ludHJp bnNpY19pbXBsX3NyZW1paShpMzIsIGkzMikgIzE0IHsKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRy czogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwxIHggaTMyPiBAX1oyNF9f Y21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjFfaVNfKDwxIHggaTMyPiwgPDEgeCBpMzI+KSAj MTQgewotK2RlZmluZSBpbnRlcm5hbCA8MSB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBs X3NyZW11MkNNdmIxX2lTXyg8MSB4IGkzMj4sIDwxIHggaTMyPikgIzE0IHsKLSAgICUzID0gYWxs b2NhIDwxIHggaTMyPiwgYWxpZ24gNAotICAgJTQgPSBhbGxvY2EgPDEgeCBpMzI+LCBhbGlnbiA0 Ci0gICAlNSA9IGFsbG9jYSA8MSB4IGkzMj4sIGFsaWduIDQKLUBAIC0yNzE2LDcgKzI3MTYsNyBA QCBkZWZpbmUgZHNvX2xvY2FsIDwxIHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3Jl bXUyQ012YjFfaVNfKDwxIHggaTMyPiwgPAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lu bGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDIgeCBpMzI+IEBfWjI0X19jbV9pbnRy aW5zaWNfaW1wbF9zcmVtdTJDTXZiMl9pU18oPDIgeCBpMzI+LCA8MiB4IGkzMj4pICMxNSB7Ci0r ZGVmaW5lIGludGVybmFsIDwyIHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUy Q012YjJfaVNfKDwyIHggaTMyPiwgPDIgeCBpMzI+KSAjMTUgewotICAgJTMgPSBhbGxvY2EgPDIg eCBpMzI+LCBhbGlnbiA4Ci0gICAlNCA9IGFsbG9jYSA8MiB4IGkzMj4sIGFsaWduIDgKLSAgICU1 ID0gYWxsb2NhIDwyIHggaTMyPiwgYWxpZ24gOAotQEAgLTI3MzAsNyArMjczMCw3IEBAIGRlZmlu ZSBkc29fbG9jYWwgPDIgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZi Ml9pU18oPDIgeCBpMzI+LCA8Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5v dW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8NCB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19p bXBsX3NyZW11MkNNdmI0X2lTXyg8NCB4IGkzMj4sIDw0IHggaTMyPikgIzE2IHsKLStkZWZpbmUg aW50ZXJuYWwgPDQgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiNF9p U18oPDQgeCBpMzI+LCA8NCB4IGkzMj4pICMxNiB7Ci0gICAlMyA9IGFsbG9jYSA8NCB4IGkzMj4s IGFsaWduIDE2Ci0gICAlNCA9IGFsbG9jYSA8NCB4IGkzMj4sIGFsaWduIDE2Ci0gICAlNSA9IGFs bG9jYSA8NCB4IGkzMj4sIGFsaWduIDE2Ci1AQCAtMjc0NCw3ICsyNzQ0LDcgQEAgZGVmaW5lIGRz b19sb2NhbCA8NCB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmI0X2lT Xyg8NCB4IGkzMj4sIDwKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndp bmQKLS1kZWZpbmUgZHNvX2xvY2FsIDw4IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxf c3JlbXUyQ012YjhfaVNfKDw4IHggaTMyPiwgPDggeCBpMzI+KSAjMTcgewotK2RlZmluZSBpbnRl cm5hbCA8OCB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmI4X2lTXyg8 OCB4IGkzMj4sIDw4IHggaTMyPikgIzE3IHsKLSAgICUzID0gYWxsb2NhIDw4IHggaTMyPiwgYWxp Z24gMzIKLSAgICU0ID0gYWxsb2NhIDw4IHggaTMyPiwgYWxpZ24gMzIKLSAgICU1ID0gYWxsb2Nh IDw4IHggaTMyPiwgYWxpZ24gMzIKLUBAIC0yNzU4LDcgKzI3NTgsNyBAQCBkZWZpbmUgZHNvX2xv Y2FsIDw4IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjhfaVNfKDw4 IHggaTMyPiwgPAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAot LWRlZmluZSBkc29fbG9jYWwgPDE2IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3Jl bXUyQ012YjE2X2lTXyg8MTYgeCBpMzI+LCA8MTYgeCBpMzI+KSAjMTggewotK2RlZmluZSBpbnRl cm5hbCA8MTYgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMTZfaVNf KDwxNiB4IGkzMj4sIDwxNiB4IGkzMj4pICMxOCB7Ci0gICAlMyA9IGFsbG9jYSA8MTYgeCBpMzI+ LCBhbGlnbiA2NAotICAgJTQgPSBhbGxvY2EgPDE2IHggaTMyPiwgYWxpZ24gNjQKLSAgICU1ID0g YWxsb2NhIDwxNiB4IGkzMj4sIGFsaWduIDY0Ci1AQCAtMjc3Miw3ICsyNzcyLDcgQEAgZGVmaW5l IGRzb19sb2NhbCA8MTYgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZi MTZfaVNfKDwxNiB4IGkzMj4KLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91 bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwzMiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19p bXBsX3NyZW11MkNNdmIzMl9pU18oPDMyIHggaTMyPiwgPDMyIHggaTMyPikgIzE5IHsKLStkZWZp bmUgaW50ZXJuYWwgPDMyIHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012 YjMyX2lTXyg8MzIgeCBpMzI+LCA8MzIgeCBpMzI+KSAjMTkgewotICAgJTMgPSBhbGxvY2EgPDMy IHggaTMyPiwgYWxpZ24gMTI4Ci0gICAlNCA9IGFsbG9jYSA8MzIgeCBpMzI+LCBhbGlnbiAxMjgK LSAgICU1ID0gYWxsb2NhIDwzMiB4IGkzMj4sIGFsaWduIDEyOAotQEAgLTI3ODYsNyArMjc4Niw3 IEBAIGRlZmluZSBkc29fbG9jYWwgPDMyIHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxf c3JlbXUyQ012YjMyX2lTXyg8MzIgeCBpMzI+Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5v aW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCB6ZXJvZXh0IGk4IEBfWjI0X19jbV9p bnRyaW5zaWNfaW1wbF91ZGl2aGgoaTggemVyb2V4dCwgaTggemVyb2V4dCkgIzIxIHsKLStkZWZp bmUgaW50ZXJuYWwgemVyb2V4dCBpOCBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRpdmhoKGk4 IHplcm9leHQsIGk4IHplcm9leHQpICMyMSB7Ci0gICAlMyA9IGFsbG9jYSBpOCwgYWxpZ24gMQot ICAgJTQgPSBhbGxvY2EgaTgsIGFsaWduIDEKLSAgICU1ID0gYWxsb2NhIDwxIHggaTg+LCBhbGln biAxCi1AQCAtMjg0NCw3ICsyODQ0LDcgQEAgZGVmaW5lIGludGVybmFsIDwxIHggaTg+IEBfWk43 ZGV0YWlsczE0X19pbXBsX3VkaXZyZW1JTGkxRUVFdTJDTXZiVF9faFMxX1MxX3UyQ00KLSB9Ci0g Ci0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2Fs IDwxIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZiMV9oU18oPDEgeCBp OD4sIDwxIHggaTg+KSAjMjEgewotK2RlZmluZSBpbnRlcm5hbCA8MSB4IGk4PiBAX1oyNF9fY21f aW50cmluc2ljX2ltcGxfdWRpdnUyQ012YjFfaFNfKDwxIHggaTg+LCA8MSB4IGk4PikgIzIxIHsK LSAgICUzID0gYWxsb2NhIDwxIHggaTg+LCBhbGlnbiAxCi0gICAlNCA9IGFsbG9jYSA8MSB4IGk4 PiwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2EgPDEgeCBpOD4sIGFsaWduIDEKLUBAIC0yODYwLDcg KzI4NjAsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwxIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNf aW1wbF91ZGl2dTJDTXZiMV9oU18oPDEgeCBpOD4sIDwxCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0 cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MiB4IGk4PiBAX1oyNF9f Y21faW50cmluc2ljX2ltcGxfdWRpdnUyQ012YjJfaFNfKDwyIHggaTg+LCA8MiB4IGk4PikgIzIy IHsKLStkZWZpbmUgaW50ZXJuYWwgPDIgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3Vk aXZ1MkNNdmIyX2hTXyg8MiB4IGk4PiwgPDIgeCBpOD4pICMyMiB7Ci0gICAlMyA9IGFsbG9jYSA8 MiB4IGk4PiwgYWxpZ24gMgotICAgJTQgPSBhbGxvY2EgPDIgeCBpOD4sIGFsaWduIDIKLSAgICU1 ID0gYWxsb2NhIDwyIHggaTg+LCBhbGlnbiAyCi1AQCAtMjkwNiw3ICsyOTA2LDcgQEAgZGVmaW5l IGludGVybmFsIDwyIHggaTg+IEBfWk43ZGV0YWlsczE0X19pbXBsX3VkaXZyZW1JTGkyRUVFdTJD TXZiVF9faFMxX1MxX3UyQ00KLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91 bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDw0IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1w bF91ZGl2dTJDTXZiNF9oU18oPDQgeCBpOD4sIDw0IHggaTg+KSAjMTQgewotK2RlZmluZSBpbnRl cm5hbCA8NCB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRpdnUyQ012YjRfaFNfKDw0 IHggaTg+LCA8NCB4IGk4PikgIzE0IHsKLSAgICUzID0gYWxsb2NhIDw0IHggaTg+LCBhbGlnbiA0 Ci0gICAlNCA9IGFsbG9jYSA8NCB4IGk4PiwgYWxpZ24gNAotICAgJTUgPSBhbGxvY2EgPDQgeCBp OD4sIGFsaWduIDQKLUBAIC0zMDQ0LDcgKzMwNDQsNyBAQCBkZWZpbmUgaW50ZXJuYWwgPDE2IHgg aTg+IEBfWk43ZGV0YWlsczE0X19pbXBsX3VkaXZyZW1JTGkxNkVFRXUyQ012YlRfX2hTMV9TMV91 MgotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBk c29fbG9jYWwgPDMyIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZiMzJf aFNfKDwzMiB4IGk4PiwgPDMyIHggaTg+KSAjMTcgewotK2RlZmluZSBpbnRlcm5hbCA8MzIgeCBp OD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1MkNNdmIzMl9oU18oPDMyIHggaTg+LCA8 MzIgeCBpOD4pICMxNyB7Ci0gICAlMyA9IGFsbG9jYSA8MzIgeCBpOD4sIGFsaWduIDMyCi0gICAl NCA9IGFsbG9jYSA8MzIgeCBpOD4sIGFsaWduIDMyCi0gICAlNSA9IGFsbG9jYSA8MzIgeCBpOD4s IGFsaWduIDMyCi1AQCAtMzA5MCw3ICszMDkwLDcgQEAgZGVmaW5lIGludGVybmFsIDwzMiB4IGk4 PiBAX1pON2RldGFpbHMxNF9faW1wbF91ZGl2cmVtSUxpMzJFRUV1MkNNdmJUX19oUzFfUzFfdTIK LSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNv X2xvY2FsIHplcm9leHQgaTggQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW1oaChpOCB6ZXJv ZXh0LCBpOCB6ZXJvZXh0KSAjMjEgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGk4IEBfWjI0 X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtaGgoaTggemVyb2V4dCwgaTggemVyb2V4dCkgIzIxIHsK LSAgICUzID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0gICAlNCA9IGFsbG9jYSBpOCwgYWxpZ24gMQot ICAgJTUgPSBhbGxvY2EgPDEgeCBpOD4sIGFsaWduIDEKLUBAIC0zMTE2LDcgKzMxMTYsNyBAQCBk ZWZpbmUgZHNvX2xvY2FsIHplcm9leHQgaTggQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW1o aChpOCB6ZXJvZXh0LCBpOCB6ZXJvZQotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGlu ZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDEgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNp Y19pbXBsX3VyZW11MkNNdmIxX2hTXyg8MSB4IGk4PiwgPDEgeCBpOD4pICMyMSB7Ci0rZGVmaW5l IGludGVybmFsIDwxIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMV9o U18oPDEgeCBpOD4sIDwxIHggaTg+KSAjMjEgewotICAgJTMgPSBhbGxvY2EgPDEgeCBpOD4sIGFs aWduIDEKLSAgICU0ID0gYWxsb2NhIDwxIHggaTg+LCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSA8 MSB4IGk4PiwgYWxpZ24gMQotQEAgLTMxMzAsNyArMzEzMCw3IEBAIGRlZmluZSBkc29fbG9jYWwg PDEgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIxX2hTXyg8MSB4IGk4 PiwgPDEKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZp bmUgZHNvX2xvY2FsIDwyIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZi Ml9oU18oPDIgeCBpOD4sIDwyIHggaTg+KSAjMjIgewotK2RlZmluZSBpbnRlcm5hbCA8MiB4IGk4 PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjJfaFNfKDwyIHggaTg+LCA8MiB4 IGk4PikgIzIyIHsKLSAgICUzID0gYWxsb2NhIDwyIHggaTg+LCBhbGlnbiAyCi0gICAlNCA9IGFs bG9jYSA8MiB4IGk4PiwgYWxpZ24gMgotICAgJTUgPSBhbGxvY2EgPDIgeCBpOD4sIGFsaWduIDIK LUBAIC0zMTQ0LDcgKzMxNDQsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwyIHggaTg+IEBfWjI0X19j bV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMl9oU18oPDIgeCBpOD4sIDwyCi0gfQotIAotIDsg RnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8NCB4 IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjRfaFNfKDw0IHggaTg+LCA8 NCB4IGk4PikgIzE0IHsKLStkZWZpbmUgaW50ZXJuYWwgPDQgeCBpOD4gQF9aMjRfX2NtX2ludHJp bnNpY19pbXBsX3VyZW11MkNNdmI0X2hTXyg8NCB4IGk4PiwgPDQgeCBpOD4pICMxNCB7Ci0gICAl MyA9IGFsbG9jYSA8NCB4IGk4PiwgYWxpZ24gNAotICAgJTQgPSBhbGxvY2EgPDQgeCBpOD4sIGFs aWduIDQKLSAgICU1ID0gYWxsb2NhIDw0IHggaTg+LCBhbGlnbiA0Ci1AQCAtMzE1OCw3ICszMTU4 LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8NCB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxf dXJlbXUyQ012YjRfaFNfKDw0IHggaTg+LCA8NAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBu b2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDggeCBpOD4gQF9aMjRfX2NtX2lu dHJpbnNpY19pbXBsX3VyZW11MkNNdmI4X2hTXyg8OCB4IGk4PiwgPDggeCBpOD4pICMxNSB7Ci0r ZGVmaW5lIGludGVybmFsIDw4IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJD TXZiOF9oU18oPDggeCBpOD4sIDw4IHggaTg+KSAjMTUgewotICAgJTMgPSBhbGxvY2EgPDggeCBp OD4sIGFsaWduIDgKLSAgICU0ID0gYWxsb2NhIDw4IHggaTg+LCBhbGlnbiA4Ci0gICAlNSA9IGFs bG9jYSA8OCB4IGk4PiwgYWxpZ24gOAotQEAgLTMxNzIsNyArMzE3Miw3IEBAIGRlZmluZSBkc29f bG9jYWwgPDggeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmI4X2hTXyg8 OCB4IGk4PiwgPDgKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQK LS1kZWZpbmUgZHNvX2xvY2FsIDwxNiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJl bXUyQ012YjE2X2hTXyg8MTYgeCBpOD4sIDwxNiB4IGk4PikgIzE2IHsKLStkZWZpbmUgaW50ZXJu YWwgPDE2IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMTZfaFNfKDwx NiB4IGk4PiwgPDE2IHggaTg+KSAjMTYgewotICAgJTMgPSBhbGxvY2EgPDE2IHggaTg+LCBhbGln biAxNgotICAgJTQgPSBhbGxvY2EgPDE2IHggaTg+LCBhbGlnbiAxNgotICAgJTUgPSBhbGxvY2Eg PDE2IHggaTg+LCBhbGlnbiAxNgotQEAgLTMxODYsNyArMzE4Niw3IEBAIGRlZmluZSBkc29fbG9j YWwgPDE2IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMTZfaFNfKDwx NiB4IGk4PiwKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1k ZWZpbmUgZHNvX2xvY2FsIDwzMiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUy Q012YjMyX2hTXyg8MzIgeCBpOD4sIDwzMiB4IGk4PikgIzE3IHsKLStkZWZpbmUgaW50ZXJuYWwg PDMyIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMzJfaFNfKDwzMiB4 IGk4PiwgPDMyIHggaTg+KSAjMTcgewotICAgJTMgPSBhbGxvY2EgPDMyIHggaTg+LCBhbGlnbiAz MgotICAgJTQgPSBhbGxvY2EgPDMyIHggaTg+LCBhbGlnbiAzMgotICAgJTUgPSBhbGxvY2EgPDMy IHggaTg+LCBhbGlnbiAzMgotQEAgLTMyMDAsNyArMzIwMCw3IEBAIGRlZmluZSBkc29fbG9jYWwg PDMyIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMzJfaFNfKDwzMiB4 IGk4PiwKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZp bmUgZHNvX2xvY2FsIHplcm9leHQgaTE2IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dHQo aTE2IHplcm9leHQsIGkxNiB6ZXJvZXh0KSAjMjIgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0 IGkxNiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRpdnR0KGkxNiB6ZXJvZXh0LCBpMTYgemVy b2V4dCkgIzIyIHsKLSAgICUzID0gYWxsb2NhIGkxNiwgYWxpZ24gMgotICAgJTQgPSBhbGxvY2Eg aTE2LCBhbGlnbiAyCi0gICAlNSA9IGFsbG9jYSA8MSB4IGkxNj4sIGFsaWduIDIKLUBAIC0zMjc4 LDcgKzMyNzgsNyBAQCBkZWZpbmUgaW50ZXJuYWwgPDEgeCBpMTY+IEBfWk43ZGV0YWlsczE0X19p bXBsX3VkaXZyZW1JTGkxRUVFdTJDTXZiVF9fdFMxX1MxX3UyQwotIH0KLSAKLSA7IEZ1bmN0aW9u IEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDEgeCBpMTY+IEBf WjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZiMV90U18oPDEgeCBpMTY+LCA8MSB4IGkx Nj4pICMyMiB7Ci0rZGVmaW5lIGludGVybmFsIDwxIHggaTE2PiBAX1oyNF9fY21faW50cmluc2lj X2ltcGxfdWRpdnUyQ012YjFfdFNfKDwxIHggaTE2PiwgPDEgeCBpMTY+KSAjMjIgewotICAgJTMg PSBhbGxvY2EgPDEgeCBpMTY+LCBhbGlnbiAyCi0gICAlNCA9IGFsbG9jYSA8MSB4IGkxNj4sIGFs aWduIDIKLSAgICU1ID0gYWxsb2NhIDwxIHggaTE2PiwgYWxpZ24gMgotQEAgLTMyOTQsNyArMzI5 NCw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDEgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1w bF91ZGl2dTJDTXZiMV90U18oPDEgeCBpMTY+LCA8Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6 IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MiB4IGkxNj4gQF9aMjRfX2Nt X2ludHJpbnNpY19pbXBsX3VkaXZ1MkNNdmIyX3RTXyg8MiB4IGkxNj4sIDwyIHggaTE2PikgIzE0 IHsKLStkZWZpbmUgaW50ZXJuYWwgPDIgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91 ZGl2dTJDTXZiMl90U18oPDIgeCBpMTY+LCA8MiB4IGkxNj4pICMxNCB7Ci0gICAlMyA9IGFsbG9j YSA8MiB4IGkxNj4sIGFsaWduIDQKLSAgICU0ID0gYWxsb2NhIDwyIHggaTE2PiwgYWxpZ24gNAot ICAgJTUgPSBhbGxvY2EgPDIgeCBpMTY+LCBhbGlnbiA0Ci1AQCAtMzM2MCw3ICszMzYwLDcgQEAg ZGVmaW5lIGludGVybmFsIDwyIHggaTE2PiBAX1pON2RldGFpbHMxNF9faW1wbF91ZGl2cmVtSUxp MkVFRXUyQ012YlRfX3RTMV9TMV91MkMKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxp bmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDw0IHggaTE2PiBAX1oyNF9fY21faW50cmlu c2ljX2ltcGxfdWRpdnUyQ012YjRfdFNfKDw0IHggaTE2PiwgPDQgeCBpMTY+KSAjMTUgewotK2Rl ZmluZSBpbnRlcm5hbCA8NCB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1MkNN dmI0X3RTXyg8NCB4IGkxNj4sIDw0IHggaTE2PikgIzE1IHsKLSAgICUzID0gYWxsb2NhIDw0IHgg aTE2PiwgYWxpZ24gOAotICAgJTQgPSBhbGxvY2EgPDQgeCBpMTY+LCBhbGlnbiA4Ci0gICAlNSA9 IGFsbG9jYSA8NCB4IGkxNj4sIGFsaWduIDgKLUBAIC0zNTU4LDcgKzM1NTgsNyBAQCBkZWZpbmUg aW50ZXJuYWwgPDE2IHggaTE2PiBAX1pON2RldGFpbHMxNF9faW1wbF91ZGl2cmVtSUxpMTZFRUV1 MkNNdmJUX190UzFfUzFfdQotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vu d2luZAotLWRlZmluZSBkc29fbG9jYWwgPDMyIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2lt cGxfdWRpdnUyQ012YjMyX3RTXyg8MzIgeCBpMTY+LCA8MzIgeCBpMTY+KSAjMTggewotK2RlZmlu ZSBpbnRlcm5hbCA8MzIgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZi MzJfdFNfKDwzMiB4IGkxNj4sIDwzMiB4IGkxNj4pICMxOCB7Ci0gICAlMyA9IGFsbG9jYSA8MzIg eCBpMTY+LCBhbGlnbiA2NAotICAgJTQgPSBhbGxvY2EgPDMyIHggaTE2PiwgYWxpZ24gNjQKLSAg ICU1ID0gYWxsb2NhIDwzMiB4IGkxNj4sIGFsaWduIDY0Ci1AQCAtMzYyNCw3ICszNjI0LDcgQEAg ZGVmaW5lIGludGVybmFsIDwzMiB4IGkxNj4gQF9aTjdkZXRhaWxzMTRfX2ltcGxfdWRpdnJlbUlM aTMyRUVFdTJDTXZiVF9fdFMxX1MxX3UKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxp bmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIHplcm9leHQgaTE2IEBfWjI0X19jbV9pbnRy aW5zaWNfaW1wbF91cmVtdHQoaTE2IHplcm9leHQsIGkxNiB6ZXJvZXh0KSAjMjIgewotK2RlZmlu ZSBpbnRlcm5hbCB6ZXJvZXh0IGkxNiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXR0KGkx NiB6ZXJvZXh0LCBpMTYgemVyb2V4dCkgIzIyIHsKLSAgICUzID0gYWxsb2NhIGkxNiwgYWxpZ24g MgotICAgJTQgPSBhbGxvY2EgaTE2LCBhbGlnbiAyCi0gICAlNSA9IGFsbG9jYSA8MSB4IGkxNj4s IGFsaWduIDIKLUBAIC0zNjUwLDcgKzM2NTAsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIHplcm9leHQg aTE2IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdHQoaTE2IHplcm9leHQsIGkxNiB6ZQot IH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29f bG9jYWwgPDEgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMV90U18o PDEgeCBpMTY+LCA8MSB4IGkxNj4pICMyMiB7Ci0rZGVmaW5lIGludGVybmFsIDwxIHggaTE2PiBA X1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjFfdFNfKDwxIHggaTE2PiwgPDEgeCBp MTY+KSAjMjIgewotICAgJTMgPSBhbGxvY2EgPDEgeCBpMTY+LCBhbGlnbiAyCi0gICAlNCA9IGFs bG9jYSA8MSB4IGkxNj4sIGFsaWduIDIKLSAgICU1ID0gYWxsb2NhIDwxIHggaTE2PiwgYWxpZ24g MgotQEAgLTM2NjQsNyArMzY2NCw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDEgeCBpMTY+IEBfWjI0 X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMV90U18oPDEgeCBpMTY+LCA8Ci0gfQotIAot IDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8 MiB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIyX3RTXyg8MiB4IGkx Nj4sIDwyIHggaTE2PikgIzE0IHsKLStkZWZpbmUgaW50ZXJuYWwgPDIgeCBpMTY+IEBfWjI0X19j bV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMl90U18oPDIgeCBpMTY+LCA8MiB4IGkxNj4pICMx NCB7Ci0gICAlMyA9IGFsbG9jYSA8MiB4IGkxNj4sIGFsaWduIDQKLSAgICU0ID0gYWxsb2NhIDwy IHggaTE2PiwgYWxpZ24gNAotICAgJTUgPSBhbGxvY2EgPDIgeCBpMTY+LCBhbGlnbiA0Ci1AQCAt MzY3OCw3ICszNjc4LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MiB4IGkxNj4gQF9aMjRfX2NtX2lu dHJpbnNpY19pbXBsX3VyZW11MkNNdmIyX3RTXyg8MiB4IGkxNj4sIDwKLSB9Ci0gCi0gOyBGdW5j dGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDw0IHggaTE2 PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjRfdFNfKDw0IHggaTE2PiwgPDQg eCBpMTY+KSAjMTUgewotK2RlZmluZSBpbnRlcm5hbCA8NCB4IGkxNj4gQF9aMjRfX2NtX2ludHJp bnNpY19pbXBsX3VyZW11MkNNdmI0X3RTXyg8NCB4IGkxNj4sIDw0IHggaTE2PikgIzE1IHsKLSAg ICUzID0gYWxsb2NhIDw0IHggaTE2PiwgYWxpZ24gOAotICAgJTQgPSBhbGxvY2EgPDQgeCBpMTY+ LCBhbGlnbiA4Ci0gICAlNSA9IGFsbG9jYSA8NCB4IGkxNj4sIGFsaWduIDgKLUBAIC0zNjkyLDcg KzM2OTIsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDw0IHggaTE2PiBAX1oyNF9fY21faW50cmluc2lj X2ltcGxfdXJlbXUyQ012YjRfdFNfKDw0IHggaTE2PiwgPAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0 dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDggeCBpMTY+IEBfWjI0 X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiOF90U18oPDggeCBpMTY+LCA8OCB4IGkxNj4p ICMxNiB7Ci0rZGVmaW5lIGludGVybmFsIDw4IHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2lt cGxfdXJlbXUyQ012YjhfdFNfKDw4IHggaTE2PiwgPDggeCBpMTY+KSAjMTYgewotICAgJTMgPSBh bGxvY2EgPDggeCBpMTY+LCBhbGlnbiAxNgotICAgJTQgPSBhbGxvY2EgPDggeCBpMTY+LCBhbGln biAxNgotICAgJTUgPSBhbGxvY2EgPDggeCBpMTY+LCBhbGlnbiAxNgotQEAgLTM3MDYsNyArMzcw Niw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDggeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1w bF91cmVtdTJDTXZiOF90U18oPDggeCBpMTY+LCA8Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6 IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MTYgeCBpMTY+IEBfWjI0X19j bV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMTZfdFNfKDwxNiB4IGkxNj4sIDwxNiB4IGkxNj4p ICMxNyB7Ci0rZGVmaW5lIGludGVybmFsIDwxNiB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19p bXBsX3VyZW11MkNNdmIxNl90U18oPDE2IHggaTE2PiwgPDE2IHggaTE2PikgIzE3IHsKLSAgICUz ID0gYWxsb2NhIDwxNiB4IGkxNj4sIGFsaWduIDMyCi0gICAlNCA9IGFsbG9jYSA8MTYgeCBpMTY+ LCBhbGlnbiAzMgotICAgJTUgPSBhbGxvY2EgPDE2IHggaTE2PiwgYWxpZ24gMzIKLUBAIC0zNzIw LDcgKzM3MjAsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwxNiB4IGkxNj4gQF9aMjRfX2NtX2ludHJp bnNpY19pbXBsX3VyZW11MkNNdmIxNl90U18oPDE2IHggaTE2PgotIH0KLSAKLSA7IEZ1bmN0aW9u IEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDMyIHggaTE2PiBA X1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjMyX3RTXyg8MzIgeCBpMTY+LCA8MzIg eCBpMTY+KSAjMTggewotK2RlZmluZSBpbnRlcm5hbCA8MzIgeCBpMTY+IEBfWjI0X19jbV9pbnRy aW5zaWNfaW1wbF91cmVtdTJDTXZiMzJfdFNfKDwzMiB4IGkxNj4sIDwzMiB4IGkxNj4pICMxOCB7 Ci0gICAlMyA9IGFsbG9jYSA8MzIgeCBpMTY+LCBhbGlnbiA2NAotICAgJTQgPSBhbGxvY2EgPDMy IHggaTE2PiwgYWxpZ24gNjQKLSAgICU1ID0gYWxsb2NhIDwzMiB4IGkxNj4sIGFsaWduIDY0Ci1A QCAtMzczNCw3ICszNzM0LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MzIgeCBpMTY+IEBfWjI0X19j bV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMzJfdFNfKDwzMiB4IGkxNj4KLSB9Ci0gCi0gOyBG dW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIGkzMiBA X1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRpdmpqKGkzMiwgaTMyKSAjMTQgewotK2RlZmluZSBp bnRlcm5hbCBpMzIgQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZqaihpMzIsIGkzMikgIzE0 IHsKLSAgICUzID0gYWxsb2NhIGkzMiwgYWxpZ24gNAotICAgJTQgPSBhbGxvY2EgaTMyLCBhbGln biA0Ci0gICAlNSA9IGFsbG9jYSA8MSB4IGkzMj4sIGFsaWduIDQKLUBAIC0zODkyLDcgKzM4OTIs NyBAQCBkZWZpbmUgaW50ZXJuYWwgPDEgeCBpMzI+IEBfWk43ZGV0YWlsczE0X19pbXBsX3VkaXZy ZW1JTGkxRUVFdTJDTXZiVF9falMxX1MxX3UyQwotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBu b2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDEgeCBpMzI+IEBfWjI0X19jbV9p bnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZiMV9qU18oPDEgeCBpMzI+LCA8MSB4IGkzMj4pICMxNCB7 Ci0rZGVmaW5lIGludGVybmFsIDwxIHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRp dnUyQ012YjFfalNfKDwxIHggaTMyPiwgPDEgeCBpMzI+KSAjMTQgewotICAgJTMgPSBhbGxvY2Eg PDEgeCBpMzI+LCBhbGlnbiA0Ci0gICAlNCA9IGFsbG9jYSA8MSB4IGkzMj4sIGFsaWduIDQKLSAg ICU1ID0gYWxsb2NhIDwxIHggaTMyPiwgYWxpZ24gNAotQEAgLTM5MDgsNyArMzkwOCw3IEBAIGRl ZmluZSBkc29fbG9jYWwgPDEgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJD TXZiMV9qU18oPDEgeCBpMzI+LCA8Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5l IG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNp Y19pbXBsX3VkaXZ1MkNNdmIyX2pTXyg8MiB4IGkzMj4sIDwyIHggaTMyPikgIzE1IHsKLStkZWZp bmUgaW50ZXJuYWwgPDIgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZi Ml9qU18oPDIgeCBpMzI+LCA8MiB4IGkzMj4pICMxNSB7Ci0gICAlMyA9IGFsbG9jYSA8MiB4IGkz Mj4sIGFsaWduIDgKLSAgICU0ID0gYWxsb2NhIDwyIHggaTMyPiwgYWxpZ24gOAotICAgJTUgPSBh bGxvY2EgPDIgeCBpMzI+LCBhbGlnbiA4Ci1AQCAtNDA1NCw3ICs0MDU0LDcgQEAgZGVmaW5lIGlu dGVybmFsIDwyIHggaTMyPiBAX1pON2RldGFpbHMxNF9faW1wbF91ZGl2cmVtSUxpMkVFRXUyQ012 YlRfX2pTMV9TMV91MkMKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndp bmQKLS1kZWZpbmUgZHNvX2xvY2FsIDw0IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxf dWRpdnUyQ012YjRfalNfKDw0IHggaTMyPiwgPDQgeCBpMzI+KSAjMTYgewotK2RlZmluZSBpbnRl cm5hbCA8NCB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1MkNNdmI0X2pTXyg8 NCB4IGkzMj4sIDw0IHggaTMyPikgIzE2IHsKLSAgICUzID0gYWxsb2NhIDw0IHggaTMyPiwgYWxp Z24gMTYKLSAgICU0ID0gYWxsb2NhIDw0IHggaTMyPiwgYWxpZ24gMTYKLSAgICU1ID0gYWxsb2Nh IDw0IHggaTMyPiwgYWxpZ24gMTYKLUBAIC00NDkyLDcgKzQ0OTIsNyBAQCBkZWZpbmUgaW50ZXJu YWwgPDE2IHggaTMyPiBAX1pON2RldGFpbHMxNF9faW1wbF91ZGl2cmVtSUxpMTZFRUV1MkNNdmJU X19qUzFfUzFfdQotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAot LWRlZmluZSBkc29fbG9jYWwgPDMyIHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRp dnUyQ012YjMyX2pTXyg8MzIgeCBpMzI+LCA8MzIgeCBpMzI+KSAjMTkgewotK2RlZmluZSBpbnRl cm5hbCA8MzIgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZiMzJfalNf KDwzMiB4IGkzMj4sIDwzMiB4IGkzMj4pICMxOSB7Ci0gICAlMyA9IGFsbG9jYSA8MzIgeCBpMzI+ LCBhbGlnbiAxMjgKLSAgICU0ID0gYWxsb2NhIDwzMiB4IGkzMj4sIGFsaWduIDEyOAotICAgJTUg PSBhbGxvY2EgPDMyIHggaTMyPiwgYWxpZ24gMTI4Ci1AQCAtNDYzOCw3ICs0NjM4LDcgQEAgZGVm aW5lIGludGVybmFsIDwzMiB4IGkzMj4gQF9aTjdkZXRhaWxzMTRfX2ltcGxfdWRpdnJlbUlMaTMy RUVFdTJDTXZiVF9falMxX1MxX3UKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUg bm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIGkzMiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxf dXJlbWpqKGkzMiwgaTMyKSAjMTQgewotK2RlZmluZSBpbnRlcm5hbCBpMzIgQF9aMjRfX2NtX2lu dHJpbnNpY19pbXBsX3VyZW1qaihpMzIsIGkzMikgIzE0IHsKLSAgICUzID0gYWxsb2NhIGkzMiwg YWxpZ24gNAotICAgJTQgPSBhbGxvY2EgaTMyLCBhbGlnbiA0Ci0gICAlNSA9IGFsbG9jYSA8MSB4 IGkzMj4sIGFsaWduIDQKLUBAIC00NjY0LDcgKzQ2NjQsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIGkz MiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbWpqKGkzMiwgaTMyKSAjMTQgewotIH0KLSAK LSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwg PDEgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMV9qU18oPDEgeCBp MzI+LCA8MSB4IGkzMj4pICMxNCB7Ci0rZGVmaW5lIGludGVybmFsIDwxIHggaTMyPiBAX1oyNF9f Y21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjFfalNfKDwxIHggaTMyPiwgPDEgeCBpMzI+KSAj MTQgewotICAgJTMgPSBhbGxvY2EgPDEgeCBpMzI+LCBhbGlnbiA0Ci0gICAlNCA9IGFsbG9jYSA8 MSB4IGkzMj4sIGFsaWduIDQKLSAgICU1ID0gYWxsb2NhIDwxIHggaTMyPiwgYWxpZ24gNAotQEAg LTQ2NzgsNyArNDY3OCw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDEgeCBpMzI+IEBfWjI0X19jbV9p bnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMV9qU18oPDEgeCBpMzI+LCA8Ci0gfQotIAotIDsgRnVu Y3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MiB4IGkz Mj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIyX2pTXyg8MiB4IGkzMj4sIDwy IHggaTMyPikgIzE1IHsKLStkZWZpbmUgaW50ZXJuYWwgPDIgeCBpMzI+IEBfWjI0X19jbV9pbnRy aW5zaWNfaW1wbF91cmVtdTJDTXZiMl9qU18oPDIgeCBpMzI+LCA8MiB4IGkzMj4pICMxNSB7Ci0g ICAlMyA9IGFsbG9jYSA8MiB4IGkzMj4sIGFsaWduIDgKLSAgICU0ID0gYWxsb2NhIDwyIHggaTMy PiwgYWxpZ24gOAotICAgJTUgPSBhbGxvY2EgPDIgeCBpMzI+LCBhbGlnbiA4Ci1AQCAtNDY5Miw3 ICs0NjkyLDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNp Y19pbXBsX3VyZW11MkNNdmIyX2pTXyg8MiB4IGkzMj4sIDwKLSB9Ci0gCi0gOyBGdW5jdGlvbiBB dHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDw0IHggaTMyPiBAX1oy NF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjRfalNfKDw0IHggaTMyPiwgPDQgeCBpMzI+ KSAjMTYgewotK2RlZmluZSBpbnRlcm5hbCA8NCB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19p bXBsX3VyZW11MkNNdmI0X2pTXyg8NCB4IGkzMj4sIDw0IHggaTMyPikgIzE2IHsKLSAgICUzID0g YWxsb2NhIDw0IHggaTMyPiwgYWxpZ24gMTYKLSAgICU0ID0gYWxsb2NhIDw0IHggaTMyPiwgYWxp Z24gMTYKLSAgICU1ID0gYWxsb2NhIDw0IHggaTMyPiwgYWxpZ24gMTYKLUBAIC00NzA2LDcgKzQ3 MDYsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDw0IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2lt cGxfdXJlbXUyQ012YjRfalNfKDw0IHggaTMyPiwgPAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJz OiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDggeCBpMzI+IEBfWjI0X19j bV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiOF9qU18oPDggeCBpMzI+LCA8OCB4IGkzMj4pICMx NyB7Ci0rZGVmaW5lIGludGVybmFsIDw4IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxf dXJlbXUyQ012YjhfalNfKDw4IHggaTMyPiwgPDggeCBpMzI+KSAjMTcgewotICAgJTMgPSBhbGxv Y2EgPDggeCBpMzI+LCBhbGlnbiAzMgotICAgJTQgPSBhbGxvY2EgPDggeCBpMzI+LCBhbGlnbiAz MgotICAgJTUgPSBhbGxvY2EgPDggeCBpMzI+LCBhbGlnbiAzMgotQEAgLTQ3MjAsNyArNDcyMCw3 IEBAIGRlZmluZSBkc29fbG9jYWwgPDggeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91 cmVtdTJDTXZiOF9qU18oPDggeCBpMzI+LCA8Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5v aW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MTYgeCBpMzI+IEBfWjI0X19jbV9p bnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMTZfalNfKDwxNiB4IGkzMj4sIDwxNiB4IGkzMj4pICMx OCB7Ci0rZGVmaW5lIGludGVybmFsIDwxNiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBs X3VyZW11MkNNdmIxNl9qU18oPDE2IHggaTMyPiwgPDE2IHggaTMyPikgIzE4IHsKLSAgICUzID0g YWxsb2NhIDwxNiB4IGkzMj4sIGFsaWduIDY0Ci0gICAlNCA9IGFsbG9jYSA8MTYgeCBpMzI+LCBh bGlnbiA2NAotICAgJTUgPSBhbGxvY2EgPDE2IHggaTMyPiwgYWxpZ24gNjQKLUBAIC00NzM0LDcg KzQ3MzQsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwxNiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNp Y19pbXBsX3VyZW11MkNNdmIxNl9qU18oPDE2IHggaTMyPgotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0 dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDMyIHggaTMyPiBAX1oy NF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjMyX2pTXyg8MzIgeCBpMzI+LCA8MzIgeCBp MzI+KSAjMTkgewotK2RlZmluZSBpbnRlcm5hbCA8MzIgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5z aWNfaW1wbF91cmVtdTJDTXZiMzJfalNfKDwzMiB4IGkzMj4sIDwzMiB4IGkzMj4pICMxOSB7Ci0g ICAlMyA9IGFsbG9jYSA8MzIgeCBpMzI+LCBhbGlnbiAxMjgKLSAgICU0ID0gYWxsb2NhIDwzMiB4 IGkzMj4sIGFsaWduIDEyOAotICAgJTUgPSBhbGxvY2EgPDMyIHggaTMyPiwgYWxpZ24gMTI4Ci1A QCAtNDc0OCw3ICs0NzQ4LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MzIgeCBpMzI+IEBfWjI0X19j bV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMzJfalNfKDwzMiB4IGkzMj4KLSB9Ci0gCi0gOyBG dW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIHZvaWQg QF9fZG9fcHJpbnRfY20oaTgqLCBpOCosIGkzMiwgaTY0LCBpMzIqLCBpMzIsIGkzMikgIzIzICFk YmcgITE1IHsKLStkZWZpbmUgaW50ZXJuYWwgdm9pZCBAX19kb19wcmludF9jbShpOCosIGk4Kiwg aTMyLCBpNjQsIGkzMiosIGkzMiwgaTMyKSAjMjMgIWRiZyAhMTUgewotICAgJTggPSBhbGxvY2Eg aTgqLCBhbGlnbiA4Ci0gICAlOSA9IGFsbG9jYSBpOCosIGFsaWduIDgKLSAgICUxMCA9IGFsbG9j YSBpMzIsIGFsaWduIDQKLUBAIC01MDcwLDcgKzUwNzAsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIHZv aWQgQF9fZG9fcHJpbnRfbHooaTMyLCBpOCosIGkzMiwgaTY0LCBpMzIqLCBpMzIsIGkzMiwgaTMy LCBpMwotICAgJTY3ID0gbG9hZCBpNjQsIGk2NCogJTEzLCBhbGlnbiA4LCAhZGJnICExNTksICF0 YmFhICExOQotICAgJTY4ID0gbG9hZCA8NSB4IGkzMj4sIDw1IHggaTMyPiogJTIxLCBhbGlnbiAz MiwgIWRiZyAhMTYwLCAhdGJhYSAhNwotICAgY2FsbCB2b2lkIEBfWk4xM1ZhcnlpbmdXcml0ZXJD MkVSeVJQS2ppeXUyQ012YjVfaSglY2xhc3MuVmFyeWluZ1dyaXRlciogJTIzLCBpNjQqIGRlcmVm ZXJlbmNlYWJsZSg4KSAlMTksIGkzMioqIGRlcmVmZXJlbmNlYWJsZSg4KSAlMTQsIGkzMiAlNjYs IGk2NCAlNjcsIDw1IHggaTMyPiAlNjgpLCAhZGJnICExNjEKLS0gICU2OSA9IGNhbGwgemVyb2V4 dCBpMSBAX1pOOVByaW50SW5mbzE0c3dpdGNoRW5jb2RpbmdJMTNVbmlmb3JtV3JpdGVyMTNWYXJ5 aW5nV3JpdGVyRUViTlNfOEVuY29kaW5nRVRfVDBfKGk4IHNpZ25leHQgJTYyLCAlY2xhc3MuVW5p Zm9ybVdyaXRlciogYnl2YWwgYWxpZ24gMzIgJTIyLCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2 YWwgYWxpZ24gMzIgJTIzKSwgIWRiZyAhMTYyCi0rICAlNjkgPSBjYWxsIHplcm9leHQgaTEgQF9a TjlQcmludEluZm8xNHN3aXRjaEVuY29kaW5nSTEzVW5pZm9ybVdyaXRlcjEzVmFyeWluZ1dyaXRl ckVFYk5TXzhFbmNvZGluZ0VUX1QwXyhpOCBzaWduZXh0ICU2MiwgJWNsYXNzLlVuaWZvcm1Xcml0 ZXIqIGJ5dmFsKCVjbGFzcy5Vbmlmb3JtV3JpdGVyKSBhbGlnbiAzMiAlMjIsICVjbGFzcy5WYXJ5 aW5nV3JpdGVyKiBieXZhbCglY2xhc3MuVmFyeWluZ1dyaXRlcikgYWxpZ24gMzIgJTIzKSwgIWRi ZyAhMTYyCi0gICBiciBsYWJlbCAlNzAsICFkYmcgITE2MwotIAotIDsgPGxhYmVsPjo3MDogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOyBwcmVkcyA9ICU2MAotQEAgLTUxODgs NyArNTE4OCw3IEBAIGRlZmluZSBpbnRlcm5hbCA8NSB4IGkzMj4gQF9aMTdnZXRfYXV4aWxpYXJ5 X3N0cnYoKSAjMjggY29tZGF0ICFkYmcgITE3OCB7Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6 IGFsd2F5c2lubGluZSBpbmxpbmVoaW50IG5vdW53aW5kCi0tZGVmaW5lIGludGVybmFsIHplcm9l eHQgaTEgQF9aTjlQcmludEluZm8xNHN3aXRjaEVuY29kaW5nSTEzVW5pZm9ybVdyaXRlcjEzVmFy eWluZ1dyaXRlckVFYk5TXzhFbmNvZGluZ0VUX1QwXyhpOCBzaWduZXh0LCAlY2xhc3MuVW5pZm9y bVdyaXRlciogYnl2YWwgYWxpZ24gMzIsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCBhbGln biAzMikgIzI1IGNvbWRhdCAhZGJnICExOTEgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkx IEBfWk45UHJpbnRJbmZvMTRzd2l0Y2hFbmNvZGluZ0kxM1VuaWZvcm1Xcml0ZXIxM1ZhcnlpbmdX cml0ZXJFRWJOU184RW5jb2RpbmdFVF9UMF8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1Xcml0 ZXIqIGJ5dmFsKCVjbGFzcy5Vbmlmb3JtV3JpdGVyKSBhbGlnbiAzMiwgJWNsYXNzLlZhcnlpbmdX cml0ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5aW5nV3JpdGVyKSBhbGlnbiAzMikgIzI1IGNvbWRhdCAh ZGJnICExOTEgewotICAgJTQgPSBhbGxvY2EgaTgsIGFsaWduIDEKLSAgICU1ID0gYWxsb2NhICVj bGFzcy5Vbmlmb3JtV3JpdGVyLCBhbGlnbiAzMgotICAgJTYgPSBhbGxvY2EgJWNsYXNzLlZhcnlp bmdXcml0ZXIsIGFsaWduIDMyCi1AQCAtNTE5Nyw3ICs1MTk3LDcgQEAgZGVmaW5lIGludGVybmFs IHplcm9leHQgaTEgQF9aTjlQcmludEluZm8xNHN3aXRjaEVuY29kaW5nSTEzVW5pZm9ybVdyaXRl cjEzVmFyeWkKLSAgICU4ID0gYml0Y2FzdCAlY2xhc3MuVW5pZm9ybVdyaXRlciogJTUgdG8gaTgq LCAhZGJnICExOTYKLSAgICU5ID0gYml0Y2FzdCAlY2xhc3MuVW5pZm9ybVdyaXRlciogJTEgdG8g aTgqLCAhZGJnICExOTYKLSAgIGNhbGwgdm9pZCBAbGx2bS5tZW1jcHkucDBpOC5wMGk4Lmk2NChp OCogYWxpZ24gMzIgJTgsIGk4KiBhbGlnbiAzMiAlOSwgaTY0IDY0LCBpMSBmYWxzZSksICFkYmcg ITE5NiwgIXRiYWEuc3RydWN0ICExOTcKLS0gICUxMCA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVBy aW50SW5mbzIyc3dpdGNoRW5jb2Rpbmc0VW5pZm9ybUkxM1VuaWZvcm1Xcml0ZXJFRWJOU184RW5j b2RpbmdFVF8oaTggc2lnbmV4dCAlNywgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsIGFsaWdu IDMyICU1KSwgIWRiZyAhMTk4Ci0rICAlMTAgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludElu Zm8yMnN3aXRjaEVuY29kaW5nNFVuaWZvcm1JMTNVbmlmb3JtV3JpdGVyRUViTlNfOEVuY29kaW5n RVRfKGk4IHNpZ25leHQgJTcsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCglY2xhc3MuVW5p Zm9ybVdyaXRlcikgYWxpZ24gMzIgJTUpLCAhZGJnICExOTgKLSAgIGJyIGkxICUxMCwgbGFiZWwg JTE2LCBsYWJlbCAlMTEsICFkYmcgITE5OQotIAotIDsgPGxhYmVsPjoxMTogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgOyBwcmVkcyA9ICUzCi1AQCAtNTIwNSw3ICs1MjA1LDcg QEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm8xNHN3aXRjaEVuY29k aW5nSTEzVW5pZm9ybVdyaXRlcjEzVmFyeWkKLSAgICUxMyA9IGJpdGNhc3QgJWNsYXNzLlZhcnlp bmdXcml0ZXIqICU2IHRvIGk4KiwgIWRiZyAhMjAxCi0gICAlMTQgPSBiaXRjYXN0ICVjbGFzcy5W YXJ5aW5nV3JpdGVyKiAlMiB0byBpOCosICFkYmcgITIwMQotICAgY2FsbCB2b2lkIEBsbHZtLm1l bWNweS5wMGk4LnAwaTguaTY0KGk4KiBhbGlnbiAzMiAlMTMsIGk4KiBhbGlnbiAzMiAlMTQsIGk2 NCA2NCwgaTEgZmFsc2UpLCAhZGJnICEyMDEsICF0YmFhLnN0cnVjdCAhMTk3Ci0tICAlMTUgPSBj YWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm8yMnN3aXRjaEVuY29kaW5nNFZhcnlpbmdJMTNW YXJ5aW5nV3JpdGVyRUViTlNfOEVuY29kaW5nRVRfKGk4IHNpZ25leHQgJTEyLCAlY2xhc3MuVmFy eWluZ1dyaXRlciogYnl2YWwgYWxpZ24gMzIgJTYpLCAhZGJnICEyMDIKLSsgICUxNSA9IGNhbGwg emVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzIyc3dpdGNoRW5jb2Rpbmc0VmFyeWluZ0kxM1Zhcnlp bmdXcml0ZXJFRWJOU184RW5jb2RpbmdFVF8oaTggc2lnbmV4dCAlMTIsICVjbGFzcy5WYXJ5aW5n V3JpdGVyKiBieXZhbCglY2xhc3MuVmFyeWluZ1dyaXRlcikgYWxpZ24gMzIgJTYpLCAhZGJnICEy MDIKLSAgIGJyIGxhYmVsICUxNiwgIWRiZyAhMTk5Ci0gCi0gOyA8bGFiZWw+OjE2OiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7IHByZWRzID0gJTExLCAlMwotQEAgLTUyODAs NyArNTI4MCw3IEBAIGRlZmluZSBpbnRlcm5hbCB2b2lkIEBfWk4xM1ZhcnlpbmdXcml0ZXJDMkVS eVJQS2ppeXUyQ012YjVfaSglY2xhc3MuVmFyeWluZ1dyaXRlCi0gfQotIAotIDsgRnVuY3Rpb24g QXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCBpMzIgQF9fbnVtX2Nv cmVzKCkgIzI5ICFkYmcgITIzNiB7Ci0rZGVmaW5lIGludGVybmFsIGkzMiBAX19udW1fY29yZXMo KSAjMjkgIWRiZyAhMjM2IHsKLSAgIHJldCBpMzIgLTEsICFkYmcgITIzNwotIH0KLSAKLUBAIC04 ODcwLDcgKzg4NzAsNyBAQCBkZWNsYXJlIGRzb19sb2NhbCB2b2lkIEBfWk43ZGV0YWlsczM3X19j bV9pbnRyaW5zaWNfaW1wbF9zdm1fc2NhdHRlcl93cml0ZUlpTGkxRQotIGRlY2xhcmUgdm9pZCBA bGx2bS5nZW54LnN2bS5zY2F0dGVyLnYxaTEudjFpNjQudjFpMzIoPDEgeCBpMT4sIGkzMiwgPDEg eCBpNjQ+LCA8MSB4IGkzMj4pICMyNwotIAotIDsgRnVuY3Rpb24gQXR0cnM6IGFsd2F5c2lubGlu ZSBpbmxpbmVoaW50IG5vdW53aW5kCi0tZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQ cmludEluZm8yMnN3aXRjaEVuY29kaW5nNFVuaWZvcm1JMTNVbmlmb3JtV3JpdGVyRUViTlNfOEVu Y29kaW5nRVRfKGk4IHNpZ25leHQsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBhbGlnbiAz MikgIzI1IGNvbWRhdCAhZGJnICExNjQ1IHsKLStkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBA X1pOOVByaW50SW5mbzIyc3dpdGNoRW5jb2Rpbmc0VW5pZm9ybUkxM1VuaWZvcm1Xcml0ZXJFRWJO U184RW5jb2RpbmdFVF8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsKCVj bGFzcy5Vbmlmb3JtV3JpdGVyKSBhbGlnbiAzMikgIzI1IGNvbWRhdCAhZGJnICExNjQ1IHsKLSAg ICUzID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0gICAlNCA9IGFsbG9jYSAlY2xhc3MuVW5pZm9ybVdy aXRlciwgYWxpZ24gMzIKLSAgICU1ID0gYWxsb2NhICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rp bmc0VW5pZm9ybSIsIGFsaWduIDEKLUBAIC04ODc5LDcgKzg4NzksNyBAQCBkZWZpbmUgaW50ZXJu YWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzIyc3dpdGNoRW5jb2Rpbmc0VW5pZm9ybUkxM1Vu aWZvcm1Xcml0ZQotICAgJTcgPSBiaXRjYXN0ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiAlNCB0byBp OCosICFkYmcgITE2NDcKLSAgICU4ID0gYml0Y2FzdCAlY2xhc3MuVW5pZm9ybVdyaXRlciogJTEg dG8gaTgqLCAhZGJnICExNjQ3Ci0gICBjYWxsIHZvaWQgQGxsdm0ubWVtY3B5LnAwaTgucDBpOC5p NjQoaTgqIGFsaWduIDMyICU3LCBpOCogYWxpZ24gMzIgJTgsIGk2NCA2NCwgaTEgZmFsc2UpLCAh ZGJnICExNjQ3LCAhdGJhYS5zdHJ1Y3QgITE5NwotLSAgJTkgPSBjYWxsIHplcm9leHQgaTEgQF9a TjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1VuaWZvcm1Xcml0ZXJOU18xNkVu Y29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVRfVDBfKGk4IHNpZ25leHQgJTYsICVjbGFz cy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBhbGlnbiAzMiAlNCwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpF bmNvZGluZzRVbmlmb3JtIiogYnl2YWwgYWxpZ24gMSAlNSksICFkYmcgITE2NDgKLSsgICU5ID0g Y2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNV bmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUX1QwXyhp OCBzaWduZXh0ICU2LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1X cml0ZXIpIGFsaWduIDMyICU0LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0i KiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKSBhbGlnbiAxICU1 KSwgIWRiZyAhMTY0OAotICAgcmV0IGkxICU5LCAhZGJnICExNjQ5Ci0gfQotIAotQEAgLTg4ODcs NyArODg4Nyw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvMjJz d2l0Y2hFbmNvZGluZzRVbmlmb3JtSTEzVW5pZm9ybVdyaXRlCi0gZGVjbGFyZSB2b2lkIEBsbHZt Lm1lbWNweS5wMGk4LnAwaTguaTY0KGk4KiBub2NhcHR1cmUgd3JpdGVvbmx5LCBpOCogbm9jYXB0 dXJlIHJlYWRvbmx5LCBpNjQsIGkxKSAjMzIKLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBhbHdheXNp bmxpbmUgaW5saW5laGludCBub3Vud2luZAotLWRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBf Wk45UHJpbnRJbmZvMjJzd2l0Y2hFbmNvZGluZzRWYXJ5aW5nSTEzVmFyeWluZ1dyaXRlckVFYk5T XzhFbmNvZGluZ0VUXyhpOCBzaWduZXh0LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwgYWxp Z24gMzIpICMyNSBjb21kYXQgIWRiZyAhMTY1MCB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQg aTEgQF9aTjlQcmludEluZm8yMnN3aXRjaEVuY29kaW5nNFZhcnlpbmdJMTNWYXJ5aW5nV3JpdGVy RUViTlNfOEVuY29kaW5nRVRfKGk4IHNpZ25leHQsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZh bCglY2xhc3MuVmFyeWluZ1dyaXRlcikgYWxpZ24gMzIpICMyNSBjb21kYXQgIWRiZyAhMTY1MCB7 Ci0gICAlMyA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgJTQgPSBhbGxvY2EgJWNsYXNzLlZhcnlp bmdXcml0ZXIsIGFsaWduIDMyCi0gICAlNSA9IGFsbG9jYSAlInN0cnVjdC5QcmludEluZm86OkVu Y29kaW5nNFZhcnlpbmciLCBhbGlnbiAxCi1AQCAtODg5NiwxMiArODg5NiwxMiBAQCBkZWZpbmUg aW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzIyc3dpdGNoRW5jb2Rpbmc0VmFyeWlu Z0kxM1ZhcnlpbmdXcml0ZQotICAgJTcgPSBiaXRjYXN0ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiAl NCB0byBpOCosICFkYmcgITE2NTIKLSAgICU4ID0gYml0Y2FzdCAlY2xhc3MuVmFyeWluZ1dyaXRl ciogJTEgdG8gaTgqLCAhZGJnICExNjUyCi0gICBjYWxsIHZvaWQgQGxsdm0ubWVtY3B5LnAwaTgu cDBpOC5pNjQoaTgqIGFsaWduIDMyICU3LCBpOCogYWxpZ24gMzIgJTgsIGk2NCA2NCwgaTEgZmFs c2UpLCAhZGJnICExNjUyLCAhdGJhYS5zdHJ1Y3QgITE5NwotLSAgJTkgPSBjYWxsIHplcm9leHQg aTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1ZhcnlpbmdXcml0ZXJO U18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVRfVDBfKGk4IHNpZ25leHQgJTYs ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCBhbGlnbiAzMiAlNCwgJSJzdHJ1Y3QuUHJpbnRJ bmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwgYWxpZ24gMSAlNSksICFkYmcgITE2NTMKLSsg ICU5ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2Rp bmdJMTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VU X1QwXyhpOCBzaWduZXh0ICU2LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwoJWNsYXNzLlZh cnlpbmdXcml0ZXIpIGFsaWduIDMyICU0LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZh cnlpbmciKiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKSBhbGln biAxICU1KSwgIWRiZyAhMTY1MwotICAgcmV0IGkxICU5LCAhZGJnICExNjU0Ci0gfQotIAotIDsg RnVuY3Rpb24gQXR0cnM6IGFsd2F5c2lubGluZSBpbmxpbmVoaW50IG5vdW53aW5kCi0tZGVmaW5l IGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGlu Z0kxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVRf VDBfKGk4IHNpZ25leHQsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBhbGlnbiAzMiwgJSJz dHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwgYWxpZ24gMSkgIzI1IGNv bWRhdCAhZGJnICExNjU1IHsKLStkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50 SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0 VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVF9UMF8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1X cml0ZXIqIGJ5dmFsKCVjbGFzcy5Vbmlmb3JtV3JpdGVyKSBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJp bnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNv ZGluZzRVbmlmb3JtIikgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICExNjU1IHsKLSAgICU0ID0g YWxsb2NhIGk4LCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSAlY2xhc3MuVW5pZm9ybVdyaXRlciwg YWxpZ24gMzIKLSAgICU2ID0gYWxsb2NhICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5p Zm9ybSIsIGFsaWduIDEKLUBAIC04OTI0LDcgKzg5MjQsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVy b2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEzVW5pZm9ybVdy aXRlcgotICAgJTIyID0gYml0Y2FzdCAlY2xhc3MuVW5pZm9ybVdyaXRlciogJTUgdG8gaTgqLCAh ZGJnICExNjU3Ci0gICAlMjMgPSBiaXRjYXN0ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiAlMSB0byBp OCosICFkYmcgITE2NTcKLSAgIGNhbGwgdm9pZCBAbGx2bS5tZW1jcHkucDBpOC5wMGk4Lmk2NChp OCogYWxpZ24gMzIgJTIyLCBpOCogYWxpZ24gMzIgJTIzLCBpNjQgNjQsIGkxIGZhbHNlKSwgIWRi ZyAhMTY1NywgIXRiYWEuc3RydWN0ICExOTcKLS0gICUyNCA9IGNhbGwgemVyb2V4dCBpMSBAX1pO OVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0liMTNVbmlmb3JtV3JpdGVy TlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAl MjEsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBhbGlnbiAzMiAlNSwgJSJzdHJ1Y3QuUHJp bnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwgYWxpZ24gMSAlNiksICFkYmcgITE2NTgK LSsgICUyNCA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQ cm9wZXJFbmNvZGluZ0liMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5T XzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlMjEsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBi eXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24gMzIgJTUsICUic3RydWN0LlByaW50SW5m bzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0 VW5pZm9ybSIpIGFsaWduIDEgJTYpLCAhZGJnICExNjU4Ci0gICBiciBpMSAlMjQsIGxhYmVsICU2 MCwgbGFiZWwgJTI1LCAhZGJnICExNjU5Ci0gCi0gOyA8bGFiZWw+OjI1OiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICA7IHByZWRzID0gJTMKLUBAIC04OTMyLDcgKzg5MzIsNyBA QCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwxNHN3aXRj aEVuY29kaW5nSTEzVW5pZm9ybVdyaXRlcgotICAgJTI3ID0gYml0Y2FzdCAlY2xhc3MuVW5pZm9y bVdyaXRlciogJTcgdG8gaTgqLCAhZGJnICExNjYxCi0gICAlMjggPSBiaXRjYXN0ICVjbGFzcy5V bmlmb3JtV3JpdGVyKiAlMSB0byBpOCosICFkYmcgITE2NjEKLSAgIGNhbGwgdm9pZCBAbGx2bS5t ZW1jcHkucDBpOC5wMGk4Lmk2NChpOCogYWxpZ24gMzIgJTI3LCBpOCogYWxpZ24gMzIgJTI4LCBp NjQgNjQsIGkxIGZhbHNlKSwgIWRiZyAhMTY2MSwgIXRiYWEuc3RydWN0ICExOTcKLS0gICUyOSA9 IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNv ZGluZ0lpMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGlu Z0VUMF9UMV8oaTggc2lnbmV4dCAlMjYsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBhbGln biAzMiAlNywgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwgYWxp Z24gMSAlOCksICFkYmcgITE2NjIKLSsgICUyOSA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50 SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lpMTNVbmlmb3JtV3JpdGVyTlNfMTZF bmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlMjYsICVj bGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24gMzIg JTcsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsKCUic3RydWN0 LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIpIGFsaWduIDEgJTgpLCAhZGJnICExNjYyCi0g ICBiciBpMSAlMjksIGxhYmVsICU2MCwgbGFiZWwgJTMwLCAhZGJnICExNjYzCi0gCi0gOyA8bGFi ZWw+OjMwOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7IHByZWRzID0gJTI1 Ci1AQCAtODk0MCw3ICs4OTQwLDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQ cmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1VuaWZvcm1Xcml0ZXIKLSAgICUzMiA9 IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqICU5IHRvIGk4KiwgIWRiZyAhMTY2NQotICAg JTMzID0gYml0Y2FzdCAlY2xhc3MuVW5pZm9ybVdyaXRlciogJTEgdG8gaTgqLCAhZGJnICExNjY1 Ci0gICBjYWxsIHZvaWQgQGxsdm0ubWVtY3B5LnAwaTgucDBpOC5pNjQoaTgqIGFsaWduIDMyICUz MiwgaTgqIGFsaWduIDMyICUzMywgaTY0IDY0LCBpMSBmYWxzZSksICFkYmcgITE2NjUsICF0YmFh LnN0cnVjdCAhMTk3Ci0tICAlMzQgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0 YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJajEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0 VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTMxLCAlY2xhc3MuVW5p Zm9ybVdyaXRlciogYnl2YWwgYWxpZ24gMzIgJTksICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rp bmc0VW5pZm9ybSIqIGJ5dmFsIGFsaWduIDEgJTEwKSwgIWRiZyAhMTY2NgotKyAgJTM0ID0gY2Fs bCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5n SWoxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQw X1QxXyhpOCBzaWduZXh0ICUzMSwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsKCVjbGFzcy5V bmlmb3JtV3JpdGVyKSBhbGlnbiAzMiAlOSwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRV bmlmb3JtIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIikgYWxp Z24gMSAlMTApLCAhZGJnICExNjY2Ci0gICBiciBpMSAlMzQsIGxhYmVsICU2MCwgbGFiZWwgJTM1 LCAhZGJnICExNjY3Ci0gCi0gOyA8bGFiZWw+OjM1OiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICA7IHByZWRzID0gJTMwCi1AQCAtODk0OCw3ICs4OTQ4LDcgQEAgZGVmaW5lIGlu dGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kx M1VuaWZvcm1Xcml0ZXIKLSAgICUzNyA9IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqICUx MSB0byBpOCosICFkYmcgITE2NjkKLSAgICUzOCA9IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0 ZXIqICUxIHRvIGk4KiwgIWRiZyAhMTY2OQotICAgY2FsbCB2b2lkIEBsbHZtLm1lbWNweS5wMGk4 LnAwaTguaTY0KGk4KiBhbGlnbiAzMiAlMzcsIGk4KiBhbGlnbiAzMiAlMzgsIGk2NCA2NCwgaTEg ZmFsc2UpLCAhZGJnICExNjY5LCAhdGJhYS5zdHJ1Y3QgITE5NwotLSAgJTM5ID0gY2FsbCB6ZXJv ZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWYxM1Vu aWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhp OCBzaWduZXh0ICUzNiwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsIGFsaWduIDMyICUxMSwg JSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwgYWxpZ24gMSAlMTIp LCAhZGJnICExNjcwCi0rICAlMzkgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0 YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJZjEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0 VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTM2LCAlY2xhc3MuVW5p Zm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1Xcml0ZXIpIGFsaWduIDMyICUxMSwgJSJz dHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJ bmZvOjpFbmNvZGluZzRVbmlmb3JtIikgYWxpZ24gMSAlMTIpLCAhZGJnICExNjcwCi0gICBiciBp MSAlMzksIGxhYmVsICU2MCwgbGFiZWwgJTQwLCAhZGJnICExNjcxCi0gCi0gOyA8bGFiZWw+OjQw OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7IHByZWRzID0gJTM1Ci1AQCAt ODk1Niw3ICs4OTU2LDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludElu Zm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1VuaWZvcm1Xcml0ZXIKLSAgICU0MiA9IGJpdGNh c3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqICUxMyB0byBpOCosICFkYmcgITE2NzMKLSAgICU0MyA9 IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqICUxIHRvIGk4KiwgIWRiZyAhMTY3MwotICAg Y2FsbCB2b2lkIEBsbHZtLm1lbWNweS5wMGk4LnAwaTguaTY0KGk4KiBhbGlnbiAzMiAlNDIsIGk4 KiBhbGlnbiAzMiAlNDMsIGk2NCA2NCwgaTEgZmFsc2UpLCAhZGJnICExNjczLCAhdGJhYS5zdHJ1 Y3QgITE5NwotLSAgJTQ0ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIx YXBwbHlJZlByb3BlckVuY29kaW5nSXgxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZv cm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICU0MSwgJWNsYXNzLlVuaWZvcm1X cml0ZXIqIGJ5dmFsIGFsaWduIDMyICUxMywgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRV bmlmb3JtIiogYnl2YWwgYWxpZ24gMSAlMTQpLCAhZGJnICExNjc0Ci0rICAlNDQgPSBjYWxsIHpl cm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJeDEz VW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFf KGk4IHNpZ25leHQgJTQxLCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZv cm1Xcml0ZXIpIGFsaWduIDMyICUxMywgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlm b3JtIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIikgYWxpZ24g MSAlMTQpLCAhZGJnICExNjc0Ci0gICBiciBpMSAlNDQsIGxhYmVsICU2MCwgbGFiZWwgJTQ1LCAh ZGJnICExNjc1Ci0gCi0gOyA8bGFiZWw+OjQ1OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICA7IHByZWRzID0gJTQwCi1AQCAtODk2NCw3ICs4OTY0LDcgQEAgZGVmaW5lIGludGVy bmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1Vu aWZvcm1Xcml0ZXIKLSAgICU0NyA9IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqICUxNSB0 byBpOCosICFkYmcgITE2NzcKLSAgICU0OCA9IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIq ICUxIHRvIGk4KiwgIWRiZyAhMTY3NwotICAgY2FsbCB2b2lkIEBsbHZtLm1lbWNweS5wMGk4LnAw aTguaTY0KGk4KiBhbGlnbiAzMiAlNDcsIGk4KiBhbGlnbiAzMiAlNDgsIGk2NCA2NCwgaTEgZmFs c2UpLCAhZGJnICExNjc3LCAhdGJhYS5zdHJ1Y3QgITE5NwotLSAgJTQ5ID0gY2FsbCB6ZXJvZXh0 IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSXkxM1VuaWZv cm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBz aWduZXh0ICU0NiwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsIGFsaWduIDMyICUxNSwgJSJz dHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwgYWxpZ24gMSAlMTYpLCAh ZGJnICExNjc4Ci0rICAlNDkgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWls MjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJeTEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5p Zm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTQ2LCAlY2xhc3MuVW5pZm9y bVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1Xcml0ZXIpIGFsaWduIDMyICUxNSwgJSJzdHJ1 Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZv OjpFbmNvZGluZzRVbmlmb3JtIikgYWxpZ24gMSAlMTYpLCAhZGJnICExNjc4Ci0gICBiciBpMSAl NDksIGxhYmVsICU2MCwgbGFiZWwgJTUwLCAhZGJnICExNjc5Ci0gCi0gOyA8bGFiZWw+OjUwOiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7IHByZWRzID0gJTQ1Ci1AQCAtODk3 Miw3ICs4OTcyLDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82 ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1VuaWZvcm1Xcml0ZXIKLSAgICU1MiA9IGJpdGNhc3Qg JWNsYXNzLlVuaWZvcm1Xcml0ZXIqICUxNyB0byBpOCosICFkYmcgITE2ODEKLSAgICU1MyA9IGJp dGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqICUxIHRvIGk4KiwgIWRiZyAhMTY4MQotICAgY2Fs bCB2b2lkIEBsbHZtLm1lbWNweS5wMGk4LnAwaTguaTY0KGk4KiBhbGlnbiAzMiAlNTIsIGk4KiBh bGlnbiAzMiAlNTMsIGk2NCA2NCwgaTEgZmFsc2UpLCAhZGJnICExNjgxLCAhdGJhYS5zdHJ1Y3Qg ITE5NwotLSAgJTU0ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBw bHlJZlByb3BlckVuY29kaW5nSWQxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1F RUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICU1MSwgJWNsYXNzLlVuaWZvcm1Xcml0 ZXIqIGJ5dmFsIGFsaWduIDMyICUxNywgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlm b3JtIiogYnl2YWwgYWxpZ24gMSAlMTgpLCAhZGJnICExNjgyCi0rICAlNTQgPSBjYWxsIHplcm9l eHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJZDEzVW5p Zm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4 IHNpZ25leHQgJTUxLCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1X cml0ZXIpIGFsaWduIDMyICUxNywgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3Jt IiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIikgYWxpZ24gMSAl MTgpLCAhZGJnICExNjgyCi0gICBiciBpMSAlNTQsIGxhYmVsICU2MCwgbGFiZWwgJTU1LCAhZGJn ICExNjgzCi0gCi0gOyA8bGFiZWw+OjU1OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICA7IHByZWRzID0gJTUwCi1AQCAtODk4MCw3ICs4OTgwLDcgQEAgZGVmaW5lIGludGVybmFs IHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1VuaWZv cm1Xcml0ZXIKLSAgICU1NyA9IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqICUxOSB0byBp OCosICFkYmcgITE2ODUKLSAgICU1OCA9IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqICUx IHRvIGk4KiwgIWRiZyAhMTY4NQotICAgY2FsbCB2b2lkIEBsbHZtLm1lbWNweS5wMGk4LnAwaTgu aTY0KGk4KiBhbGlnbiAzMiAlNTcsIGk4KiBhbGlnbiAzMiAlNTgsIGk2NCA2NCwgaTEgZmFsc2Up LCAhZGJnICExNjg1LCAhdGJhYS5zdHJ1Y3QgITE5NwotLSAgJTU5ID0gY2FsbCB6ZXJvZXh0IGkx IEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSVB2MTNVbmlmb3Jt V3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2ln bmV4dCAlNTYsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBhbGlnbiAzMiAlMTksICUic3Ry dWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsIGFsaWduIDEgJTIwKSwgIWRi ZyAhMTY4NgotKyAgJTU5ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIx YXBwbHlJZlByb3BlckVuY29kaW5nSVB2MTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlm b3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlNTYsICVjbGFzcy5Vbmlmb3Jt V3JpdGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24gMzIgJTE5LCAlInN0cnVj dC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCglInN0cnVjdC5QcmludEluZm86 OkVuY29kaW5nNFVuaWZvcm0iKSBhbGlnbiAxICUyMCksICFkYmcgITE2ODYKLSAgIGJyIGxhYmVs ICU2MCwgIWRiZyAhMTY4MwotIAotIDsgPGxhYmVsPjo2MDogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgOyBwcmVkcyA9ICU1NSwgJTUwLCAlNDUsICU0MCwgJTM1LCAlMzAsICUy NSwgJTMKLUBAIC04OTg5LDcgKzg5ODksNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBA X1pOOVByaW50SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEzVW5pZm9ybVdyaXRlcgotIH0K LSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2luZAot LWRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJ ZlByb3BlckVuY29kaW5nSWIxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUVi TlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2 YWwgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFs IGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMTY4OCB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9l eHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJYjEzVW5p Zm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4 IHNpZ25leHQsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRl cikgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFs KCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIpIGFsaWduIDEpICMyNSBjb21k YXQgIWRiZyAhMTY4OCB7Ci0gICAlNCA9IGFsbG9jYSBpMSwgYWxpZ24gMQotICAgJTUgPSBhbGxv Y2EgaTgsIGFsaWduIDEKLSAgIHN0b3JlIGk4ICUwLCBpOCogJTUsIGFsaWduIDEsICF0YmFhICEx OTMKLUBAIC05MDE1LDcgKzkwMTUsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pO OVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0liMTNVbmlmbwotIH0KLSAK LSA7IEZ1bmN0aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2luZAotLWRl ZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlBy b3BlckVuY29kaW5nSWkxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNf OEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwg YWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsIGFs aWduIDEpICMyNSBjb21kYXQgIWRiZyAhMTY5NyB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQg aTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJaTEzVW5pZm9y bVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNp Z25leHQsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikg YWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsKCUi c3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIpIGFsaWduIDEpICMyNSBjb21kYXQg IWRiZyAhMTY5NyB7Ci0gICAlNCA9IGFsbG9jYSBpMSwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2Eg aTgsIGFsaWduIDEKLSAgIHN0b3JlIGk4ICUwLCBpOCogJTUsIGFsaWduIDEsICF0YmFhICExOTMK LUBAIC05MDQxLDcgKzkwNDEsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVBy aW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lpMTNVbmlmbwotIH0KLSAKLSA7 IEZ1bmN0aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2luZAotLWRlZmlu ZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3Bl ckVuY29kaW5nSWoxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVu Y29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwgYWxp Z24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsIGFsaWdu IDEpICMyNSBjb21kYXQgIWRiZyAhMTcwNiB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEg QF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJajEzVW5pZm9ybVdy aXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25l eHQsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxp Z24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsKCUic3Ry dWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIpIGFsaWduIDEpICMyNSBjb21kYXQgIWRi ZyAhMTcwNiB7Ci0gICAlNCA9IGFsbG9jYSBpMSwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2EgaTgs IGFsaWduIDEKLSAgIHN0b3JlIGk4ICUwLCBpOCogJTUsIGFsaWduIDEsICF0YmFhICExOTMKLUBA IC05MDY3LDcgKzkwNjcsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50 SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lqMTNVbmlmbwotIH0KLSAKLSA7IEZ1 bmN0aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2luZAotLWRlZmluZSBp bnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVu Y29kaW5nSWYxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29k aW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwgYWxpZ24g MzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsIGFsaWduIDEp ICMyNSBjb21kYXQgIWRiZyAhMTcxNSB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9a TjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJZjEzVW5pZm9ybVdyaXRl ck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQs ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24g MzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsKCUic3RydWN0 LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIpIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAh MTcxNSB7Ci0gICAlNCA9IGFsbG9jYSBpMSwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2EgaTgsIGFs aWduIDEKLSAgIHN0b3JlIGk4ICUwLCBpOCogJTUsIGFsaWduIDEsICF0YmFhICExOTMKLUBAIC05 MDkzLDcgKzkwOTMsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5m bzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lmMTNVbmlmbwotIH0KLSAKLSA7IEZ1bmN0 aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2luZAotLWRlZmluZSBpbnRl cm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29k aW5nSXgxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5n RVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwgYWxpZ24gMzIs ICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsIGFsaWduIDEpICMy NSBjb21kYXQgIWRiZyAhMTcyNCB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQ cmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJeDEzVW5pZm9ybVdyaXRlck5T XzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVj bGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24gMzIs ICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsKCUic3RydWN0LlBy aW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIpIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMTcy NCB7Ci0gICAlNCA9IGFsbG9jYSBpMSwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2EgaTgsIGFsaWdu IDEKLSAgIHN0b3JlIGk4ICUwLCBpOCogJTUsIGFsaWduIDEsICF0YmFhICExOTMKLUBAIC05MTE5 LDcgKzkxMTksNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZk ZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0l4MTNVbmlmbwotIH0KLSAKLSA7IEZ1bmN0aW9u IEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2luZAotLWRlZmluZSBpbnRlcm5h bCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5n SXkxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQw X1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwgYWxpZ24gMzIsICUi c3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsIGFsaWduIDEpICMyNSBj b21kYXQgIWRiZyAhMTczMyB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmlu dEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJeTEzVW5pZm9ybVdyaXRlck5TXzE2 RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFz cy5Vbmlmb3JtV3JpdGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24gMzIsICUi c3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsKCUic3RydWN0LlByaW50 SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIpIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMTczMyB7 Ci0gICAlNCA9IGFsbG9jYSBpMSwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2EgaTgsIGFsaWduIDEK LSAgIHN0b3JlIGk4ICUwLCBpOCogJTUsIGFsaWduIDEsICF0YmFhICExOTMKLUBAIC05MTQ1LDcg KzkxNDUsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRh aWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0l5MTNVbmlmbwotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0 dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2luZAotLWRlZmluZSBpbnRlcm5hbCB6 ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWQx M1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1Qx XyhpOCBzaWduZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwgYWxpZ24gMzIsICUic3Ry dWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsIGFsaWduIDEpICMyNSBjb21k YXQgIWRiZyAhMTc0MiB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludElu Zm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJZDEzVW5pZm9ybVdyaXRlck5TXzE2RW5j b2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5V bmlmb3JtV3JpdGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24gMzIsICUic3Ry dWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5m bzo6RW5jb2Rpbmc0VW5pZm9ybSIpIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMTc0MiB7Ci0g ICAlNCA9IGFsbG9jYSBpMSwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2EgaTgsIGFsaWduIDEKLSAg IHN0b3JlIGk4ICUwLCBpOCogJTUsIGFsaWduIDEsICF0YmFhICExOTMKLUBAIC05MTcxLDcgKzkx NzEsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwy MWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lkMTNVbmlmbwotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJz OiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2luZAotLWRlZmluZSBpbnRlcm5hbCB6ZXJv ZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSVB2MTNV bmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8o aTggc2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsIGFsaWduIDMyLCAlInN0cnVj dC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCBhbGlnbiAxKSAjMjUgY29tZGF0 ICFkYmcgITE3NTEgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZv NmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSVB2MTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNv ZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlVu aWZvcm1Xcml0ZXIqIGJ5dmFsKCVjbGFzcy5Vbmlmb3JtV3JpdGVyKSBhbGlnbiAzMiwgJSJzdHJ1 Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZv OjpFbmNvZGluZzRVbmlmb3JtIikgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICExNzUxIHsKLSAg ICU0ID0gYWxsb2NhIGkxLCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAg c3RvcmUgaTggJTAsIGk4KiAlNSwgYWxpZ24gMSwgIXRiYWEgITE5MwotQEAgLTEwMDEzLDcgKzEw MDEzLDcgQEAgZGVmaW5lIGludGVybmFsIGkzMiBAX1pON2RldGFpbHMxOF9jbV9wcmludF90eXBl X29jbElQdkVFTlNfMThTSEFERVJfUFJJTlRGX1RZUEUKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRy czogYWx3YXlzaW5saW5lIGlubGluZWhpbnQgbm91bndpbmQKLS1kZWZpbmUgaW50ZXJuYWwgemVy b2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEzVmFyeWluZ1dy aXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVF9UMF8oaTggc2lnbmV4 dCwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsIGFsaWduIDMyLCAlInN0cnVjdC5QcmludElu Zm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITIw NjEgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0 c3dpdGNoRW5jb2RpbmdJMTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5T XzhFbmNvZGluZ0VUX1QwXyhpOCBzaWduZXh0LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwo JWNsYXNzLlZhcnlpbmdXcml0ZXIpIGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29k aW5nNFZhcnlpbmciKiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmci KSBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITIwNjEgewotICAgJTQgPSBhbGxvY2EgaTgsIGFs aWduIDEKLSAgICU1ID0gYWxsb2NhICVjbGFzcy5WYXJ5aW5nV3JpdGVyLCBhbGlnbiAzMgotICAg JTYgPSBhbGxvY2EgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiwgYWxpZ24g MQotQEAgLTEwMDM2LDcgKzEwMDM2LDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9a TjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1ZhcnlpbmdXcml0ZXIKLSAgICUy MiA9IGJpdGNhc3QgJWNsYXNzLlZhcnlpbmdXcml0ZXIqICU1IHRvIGk4KiwgIWRiZyAhMjA2Mwot ICAgJTIzID0gYml0Y2FzdCAlY2xhc3MuVmFyeWluZ1dyaXRlciogJTEgdG8gaTgqLCAhZGJnICEy MDYzCi0gICBjYWxsIHZvaWQgQGxsdm0ubWVtY3B5LnAwaTgucDBpOC5pNjQoaTgqIGFsaWduIDMy ICUyMiwgaTgqIGFsaWduIDMyICUyMywgaTY0IDY0LCBpMSBmYWxzZSksICFkYmcgITIwNjMsICF0 YmFhLnN0cnVjdCAhMTk3Ci0tICAlMjQgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82 ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJYjEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rp bmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTIxLCAlY2xhc3Mu VmFyeWluZ1dyaXRlciogYnl2YWwgYWxpZ24gMzIgJTUsICUic3RydWN0LlByaW50SW5mbzo6RW5j b2Rpbmc0VmFyeWluZyIqIGJ5dmFsIGFsaWduIDEgJTYpLCAhZGJnICEyMDY0Ci0rICAlMjQgPSBj YWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2Rp bmdJYjEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdF VDBfVDFfKGk4IHNpZ25leHQgJTIxLCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwoJWNsYXNz LlZhcnlpbmdXcml0ZXIpIGFsaWduIDMyICU1LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5n NFZhcnlpbmciKiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKSBh bGlnbiAxICU2KSwgIWRiZyAhMjA2NAotICAgYnIgaTEgJTI0LCBsYWJlbCAlNjAsIGxhYmVsICUy NSwgIWRiZyAhMjA2NQotIAotIDsgPGxhYmVsPjoyNTogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgOyBwcmVkcyA9ICUzCi1AQCAtMTAwNDQsNyArMTAwNDQsNyBAQCBkZWZpbmUg aW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29kaW5n STEzVmFyeWluZ1dyaXRlcgotICAgJTI3ID0gYml0Y2FzdCAlY2xhc3MuVmFyeWluZ1dyaXRlciog JTcgdG8gaTgqLCAhZGJnICEyMDY3Ci0gICAlMjggPSBiaXRjYXN0ICVjbGFzcy5WYXJ5aW5nV3Jp dGVyKiAlMSB0byBpOCosICFkYmcgITIwNjcKLSAgIGNhbGwgdm9pZCBAbGx2bS5tZW1jcHkucDBp OC5wMGk4Lmk2NChpOCogYWxpZ24gMzIgJTI3LCBpOCogYWxpZ24gMzIgJTI4LCBpNjQgNjQsIGkx IGZhbHNlKSwgIWRiZyAhMjA2NywgIXRiYWEuc3RydWN0ICExOTcKLS0gICUyOSA9IGNhbGwgemVy b2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lpMTNW YXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8o aTggc2lnbmV4dCAlMjYsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCBhbGlnbiAzMiAlNywg JSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwgYWxpZ24gMSAlOCks ICFkYmcgITIwNjgKLSsgICUyOSA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRh aWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lpMTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRW YXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlMjYsICVjbGFzcy5WYXJ5 aW5nV3JpdGVyKiBieXZhbCglY2xhc3MuVmFyeWluZ1dyaXRlcikgYWxpZ24gMzIgJTcsICUic3Ry dWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5m bzo6RW5jb2Rpbmc0VmFyeWluZyIpIGFsaWduIDEgJTgpLCAhZGJnICEyMDY4Ci0gICBiciBpMSAl MjksIGxhYmVsICU2MCwgbGFiZWwgJTMwLCAhZGJnICEyMDY5Ci0gCi0gOyA8bGFiZWw+OjMwOiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7IHByZWRzID0gJTI1Ci1AQCAtMTAw NTIsNyArMTAwNTIsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5m bzZkZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEzVmFyeWluZ1dyaXRlcgotICAgJTMyID0gYml0Y2Fz dCAlY2xhc3MuVmFyeWluZ1dyaXRlciogJTkgdG8gaTgqLCAhZGJnICEyMDcxCi0gICAlMzMgPSBi aXRjYXN0ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiAlMSB0byBpOCosICFkYmcgITIwNzEKLSAgIGNh bGwgdm9pZCBAbGx2bS5tZW1jcHkucDBpOC5wMGk4Lmk2NChpOCogYWxpZ24gMzIgJTMyLCBpOCog YWxpZ24gMzIgJTMzLCBpNjQgNjQsIGkxIGZhbHNlKSwgIWRiZyAhMjA3MSwgIXRiYWEuc3RydWN0 ICExOTcKLS0gICUzNCA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFw cGx5SWZQcm9wZXJFbmNvZGluZ0lqMTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5n RUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlMzEsICVjbGFzcy5WYXJ5aW5nV3Jp dGVyKiBieXZhbCBhbGlnbiAzMiAlOSwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5 aW5nIiogYnl2YWwgYWxpZ24gMSAlMTApLCAhZGJnICEyMDcyCi0rICAlMzQgPSBjYWxsIHplcm9l eHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJajEzVmFy eWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4 IHNpZ25leHQgJTMxLCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwoJWNsYXNzLlZhcnlpbmdX cml0ZXIpIGFsaWduIDMyICU5LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmci KiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKSBhbGlnbiAxICUx MCksICFkYmcgITIwNzIKLSAgIGJyIGkxICUzNCwgbGFiZWwgJTYwLCBsYWJlbCAlMzUsICFkYmcg ITIwNzMKLSAKLSA7IDxsYWJlbD46MzU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDsgcHJlZHMgPSAlMzAKLUBAIC0xMDA2MCw3ICsxMDA2MCw3IEBAIGRlZmluZSBpbnRlcm5h bCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNWYXJ5 aW5nV3JpdGVyCi0gICAlMzcgPSBiaXRjYXN0ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiAlMTEgdG8g aTgqLCAhZGJnICEyMDc1Ci0gICAlMzggPSBiaXRjYXN0ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiAl MSB0byBpOCosICFkYmcgITIwNzUKLSAgIGNhbGwgdm9pZCBAbGx2bS5tZW1jcHkucDBpOC5wMGk4 Lmk2NChpOCogYWxpZ24gMzIgJTM3LCBpOCogYWxpZ24gMzIgJTM4LCBpNjQgNjQsIGkxIGZhbHNl KSwgIWRiZyAhMjA3NSwgIXRiYWEuc3RydWN0ICExOTcKLS0gICUzOSA9IGNhbGwgemVyb2V4dCBp MSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lmMTNWYXJ5aW5n V3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2ln bmV4dCAlMzYsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCBhbGlnbiAzMiAlMTEsICUic3Ry dWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsIGFsaWduIDEgJTEyKSwgIWRi ZyAhMjA3NgotKyAgJTM5ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIx YXBwbHlJZlByb3BlckVuY29kaW5nSWYxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlp bmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICUzNiwgJWNsYXNzLlZhcnlpbmdX cml0ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5aW5nV3JpdGVyKSBhbGlnbiAzMiAlMTEsICUic3RydWN0 LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6 RW5jb2Rpbmc0VmFyeWluZyIpIGFsaWduIDEgJTEyKSwgIWRiZyAhMjA3NgotICAgYnIgaTEgJTM5 LCBsYWJlbCAlNjAsIGxhYmVsICU0MCwgIWRiZyAhMjA3NwotIAotIDsgPGxhYmVsPjo0MDogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOyBwcmVkcyA9ICUzNQotQEAgLTEwMDY4 LDcgKzEwMDY4LDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82 ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1ZhcnlpbmdXcml0ZXIKLSAgICU0MiA9IGJpdGNhc3Qg JWNsYXNzLlZhcnlpbmdXcml0ZXIqICUxMyB0byBpOCosICFkYmcgITIwNzkKLSAgICU0MyA9IGJp dGNhc3QgJWNsYXNzLlZhcnlpbmdXcml0ZXIqICUxIHRvIGk4KiwgIWRiZyAhMjA3OQotICAgY2Fs bCB2b2lkIEBsbHZtLm1lbWNweS5wMGk4LnAwaTguaTY0KGk4KiBhbGlnbiAzMiAlNDIsIGk4KiBh bGlnbiAzMiAlNDMsIGk2NCA2NCwgaTEgZmFsc2UpLCAhZGJnICEyMDc5LCAhdGJhYS5zdHJ1Y3Qg ITE5NwotLSAgJTQ0ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBw bHlJZlByb3BlckVuY29kaW5nSXgxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdF RUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICU0MSwgJWNsYXNzLlZhcnlpbmdXcml0 ZXIqIGJ5dmFsIGFsaWduIDMyICUxMywgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5 aW5nIiogYnl2YWwgYWxpZ24gMSAlMTQpLCAhZGJnICEyMDgwCi0rICAlNDQgPSBjYWxsIHplcm9l eHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJeDEzVmFy eWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4 IHNpZ25leHQgJTQxLCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwoJWNsYXNzLlZhcnlpbmdX cml0ZXIpIGFsaWduIDMyICUxMywgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5n IiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIikgYWxpZ24gMSAl MTQpLCAhZGJnICEyMDgwCi0gICBiciBpMSAlNDQsIGxhYmVsICU2MCwgbGFiZWwgJTQ1LCAhZGJn ICEyMDgxCi0gCi0gOyA8bGFiZWw+OjQ1OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICA7IHByZWRzID0gJTQwCi1AQCAtMTAwNzYsNyArMTAwNzYsNyBAQCBkZWZpbmUgaW50ZXJu YWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEzVmFy eWluZ1dyaXRlcgotICAgJTQ3ID0gYml0Y2FzdCAlY2xhc3MuVmFyeWluZ1dyaXRlciogJTE1IHRv IGk4KiwgIWRiZyAhMjA4MwotICAgJTQ4ID0gYml0Y2FzdCAlY2xhc3MuVmFyeWluZ1dyaXRlciog JTEgdG8gaTgqLCAhZGJnICEyMDgzCi0gICBjYWxsIHZvaWQgQGxsdm0ubWVtY3B5LnAwaTgucDBp OC5pNjQoaTgqIGFsaWduIDMyICU0NywgaTgqIGFsaWduIDMyICU0OCwgaTY0IDY0LCBpMSBmYWxz ZSksICFkYmcgITIwODMsICF0YmFhLnN0cnVjdCAhMTk3Ci0tICAlNDkgPSBjYWxsIHplcm9leHQg aTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJeTEzVmFyeWlu Z1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNp Z25leHQgJTQ2LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwgYWxpZ24gMzIgJTE1LCAlInN0 cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCBhbGlnbiAxICUxNiksICFk YmcgITIwODQKLSsgICU0OSA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwy MWFwcGx5SWZQcm9wZXJFbmNvZGluZ0l5MTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5 aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlNDYsICVjbGFzcy5WYXJ5aW5n V3JpdGVyKiBieXZhbCglY2xhc3MuVmFyeWluZ1dyaXRlcikgYWxpZ24gMzIgJTE1LCAlInN0cnVj dC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCglInN0cnVjdC5QcmludEluZm86 OkVuY29kaW5nNFZhcnlpbmciKSBhbGlnbiAxICUxNiksICFkYmcgITIwODQKLSAgIGJyIGkxICU0 OSwgbGFiZWwgJTYwLCBsYWJlbCAlNTAsICFkYmcgITIwODUKLSAKLSA7IDxsYWJlbD46NTA6ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsgcHJlZHMgPSAlNDUKLUBAIC0xMDA4 NCw3ICsxMDA4NCw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZv NmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNWYXJ5aW5nV3JpdGVyCi0gICAlNTIgPSBiaXRjYXN0 ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiAlMTcgdG8gaTgqLCAhZGJnICEyMDg3Ci0gICAlNTMgPSBi aXRjYXN0ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiAlMSB0byBpOCosICFkYmcgITIwODcKLSAgIGNh bGwgdm9pZCBAbGx2bS5tZW1jcHkucDBpOC5wMGk4Lmk2NChpOCogYWxpZ24gMzIgJTUyLCBpOCog YWxpZ24gMzIgJTUzLCBpNjQgNjQsIGkxIGZhbHNlKSwgIWRiZyAhMjA4NywgIXRiYWEuc3RydWN0 ICExOTcKLS0gICU1NCA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFw cGx5SWZQcm9wZXJFbmNvZGluZ0lkMTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5n RUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlNTEsICVjbGFzcy5WYXJ5aW5nV3Jp dGVyKiBieXZhbCBhbGlnbiAzMiAlMTcsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFy eWluZyIqIGJ5dmFsIGFsaWduIDEgJTE4KSwgIWRiZyAhMjA4OAotKyAgJTU0ID0gY2FsbCB6ZXJv ZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWQxM1Zh cnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhp OCBzaWduZXh0ICU1MSwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5aW5n V3JpdGVyKSBhbGlnbiAzMiAlMTcsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWlu ZyIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIpIGFsaWduIDEg JTE4KSwgIWRiZyAhMjA4OAotICAgYnIgaTEgJTU0LCBsYWJlbCAlNjAsIGxhYmVsICU1NSwgIWRi ZyAhMjA4OQotIAotIDsgPGxhYmVsPjo1NTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgOyBwcmVkcyA9ICU1MAotQEAgLTEwMDkyLDcgKzEwMDkyLDcgQEAgZGVmaW5lIGludGVy bmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1Zh cnlpbmdXcml0ZXIKLSAgICU1NyA9IGJpdGNhc3QgJWNsYXNzLlZhcnlpbmdXcml0ZXIqICUxOSB0 byBpOCosICFkYmcgITIwOTEKLSAgICU1OCA9IGJpdGNhc3QgJWNsYXNzLlZhcnlpbmdXcml0ZXIq ICUxIHRvIGk4KiwgIWRiZyAhMjA5MQotICAgY2FsbCB2b2lkIEBsbHZtLm1lbWNweS5wMGk4LnAw aTguaTY0KGk4KiBhbGlnbiAzMiAlNTcsIGk4KiBhbGlnbiAzMiAlNTgsIGk2NCA2NCwgaTEgZmFs c2UpLCAhZGJnICEyMDkxLCAhdGJhYS5zdHJ1Y3QgITE5NwotLSAgJTU5ID0gY2FsbCB6ZXJvZXh0 IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSVB2MTNWYXJ5 aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTgg c2lnbmV4dCAlNTYsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCBhbGlnbiAzMiAlMTksICUi c3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsIGFsaWduIDEgJTIwKSwg IWRiZyAhMjA5MgotKyAgJTU5ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFp bDIxYXBwbHlJZlByb3BlckVuY29kaW5nSVB2MTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRW YXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlNTYsICVjbGFzcy5WYXJ5 aW5nV3JpdGVyKiBieXZhbCglY2xhc3MuVmFyeWluZ1dyaXRlcikgYWxpZ24gMzIgJTE5LCAlInN0 cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCglInN0cnVjdC5QcmludElu Zm86OkVuY29kaW5nNFZhcnlpbmciKSBhbGlnbiAxICUyMCksICFkYmcgITIwOTIKLSAgIGJyIGxh YmVsICU2MCwgIWRiZyAhMjA4OQotIAotIDsgPGxhYmVsPjo2MDogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgOyBwcmVkcyA9ICU1NSwgJTUwLCAlNDUsICU0MCwgJTM1LCAlMzAs ICUyNSwgJTMKLUBAIC0xMDEwMSw3ICsxMDEwMSw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0 IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNWYXJ5aW5nV3JpdGVy Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IGFsd2F5c2lubGluZSBpbmxpbmVoaW50IG5vdW53 aW5kCi0tZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFh cHBseUlmUHJvcGVyRW5jb2RpbmdJYjEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWlu Z0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5WYXJ5aW5nV3JpdGVy KiBieXZhbCBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiog Ynl2YWwgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICEyMDk0IHsKLStkZWZpbmUgaW50ZXJuYWwg emVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0li MTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9U MV8oaTggc2lnbmV4dCwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5aW5n V3JpdGVyKSBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiog Ynl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIikgYWxpZ24gMSkgIzI1 IGNvbWRhdCAhZGJnICEyMDk0IHsKLSAgICU0ID0gYWxsb2NhIGkxLCBhbGlnbiAxCi0gICAlNSA9 IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgc3RvcmUgaTggJTAsIGk4KiAlNSwgYWxpZ24gMSwgIXRi YWEgITE5MwotQEAgLTEwMTI3LDcgKzEwMTI3LDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQg aTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJYjEzVmFyeWkK LSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogYWx3YXlzaW5saW5lIGlubGluZWhpbnQgbm91bndp bmQKLS1kZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFw cGx5SWZQcm9wZXJFbmNvZGluZ0lpMTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5n RUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlZhcnlpbmdXcml0ZXIq IGJ5dmFsIGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBi eXZhbCBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITIxMDMgewotK2RlZmluZSBpbnRlcm5hbCB6 ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWkx M1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1Qx XyhpOCBzaWduZXh0LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwoJWNsYXNzLlZhcnlpbmdX cml0ZXIpIGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBi eXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKSBhbGlnbiAxKSAjMjUg Y29tZGF0ICFkYmcgITIxMDMgewotICAgJTQgPSBhbGxvY2EgaTEsIGFsaWduIDEKLSAgICU1ID0g YWxsb2NhIGk4LCBhbGlnbiAxCi0gICBzdG9yZSBpOCAlMCwgaTgqICU1LCBhbGlnbiAxLCAhdGJh YSAhMTkzCi1AQCAtMTAxNTMsNyArMTAxNTMsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBp MSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lpMTNWYXJ5aQot IH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2lu ZAotLWRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBw bHlJZlByb3BlckVuY29kaW5nSWoxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdF RUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVmFyeWluZ1dyaXRlciog Ynl2YWwgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5 dmFsIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMjExMiB7Ci0rZGVmaW5lIGludGVybmFsIHpl cm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJajEz VmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFf KGk4IHNpZ25leHQsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCglY2xhc3MuVmFyeWluZ1dy aXRlcikgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5 dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIpIGFsaWduIDEpICMyNSBj b21kYXQgIWRiZyAhMjExMiB7Ci0gICAlNCA9IGFsbG9jYSBpMSwgYWxpZ24gMQotICAgJTUgPSBh bGxvY2EgaTgsIGFsaWduIDEKLSAgIHN0b3JlIGk4ICUwLCBpOCogJTUsIGFsaWduIDEsICF0YmFh ICExOTMKLUBAIC0xMDE3OSw3ICsxMDE3OSw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkx IEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWoxM1ZhcnlpCi0g fQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IGFsd2F5c2lubGluZSBpbmxpbmVoaW50IG5vdW53aW5k Ci0tZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBs eUlmUHJvcGVyRW5jb2RpbmdJZjEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VF RWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBi eXZhbCBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2 YWwgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICEyMTIxIHsKLStkZWZpbmUgaW50ZXJuYWwgemVy b2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lmMTNW YXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8o aTggc2lnbmV4dCwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5aW5nV3Jp dGVyKSBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2 YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIikgYWxpZ24gMSkgIzI1IGNv bWRhdCAhZGJnICEyMTIxIHsKLSAgICU0ID0gYWxsb2NhIGkxLCBhbGlnbiAxCi0gICAlNSA9IGFs bG9jYSBpOCwgYWxpZ24gMQotICAgc3RvcmUgaTggJTAsIGk4KiAlNSwgYWxpZ24gMSwgIXRiYWEg ITE5MwotQEAgLTEwMjA1LDcgKzEwMjA1LDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEg QF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJZjEzVmFyeWkKLSB9 Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogYWx3YXlzaW5saW5lIGlubGluZWhpbnQgbm91bndpbmQK LS1kZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5 SWZQcm9wZXJFbmNvZGluZ0l4MTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVF Yk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5 dmFsIGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZh bCBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITIxMzAgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJv ZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSXgxM1Zh cnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhp OCBzaWduZXh0LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwoJWNsYXNzLlZhcnlpbmdXcml0 ZXIpIGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZh bCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKSBhbGlnbiAxKSAjMjUgY29t ZGF0ICFkYmcgITIxMzAgewotICAgJTQgPSBhbGxvY2EgaTEsIGFsaWduIDEKLSAgICU1ID0gYWxs b2NhIGk4LCBhbGlnbiAxCi0gICBzdG9yZSBpOCAlMCwgaTgqICU1LCBhbGlnbiAxLCAhdGJhYSAh MTkzCi1AQCAtMTAyMzEsNyArMTAyMzEsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBA X1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0l4MTNWYXJ5aQotIH0K LSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2luZAot LWRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJ ZlByb3BlckVuY29kaW5nSXkxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUVi TlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2 YWwgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFs IGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMjEzOSB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9l eHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJeTEzVmFy eWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4 IHNpZ25leHQsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCglY2xhc3MuVmFyeWluZ1dyaXRl cikgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFs KCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIpIGFsaWduIDEpICMyNSBjb21k YXQgIWRiZyAhMjEzOSB7Ci0gICAlNCA9IGFsbG9jYSBpMSwgYWxpZ24gMQotICAgJTUgPSBhbGxv Y2EgaTgsIGFsaWduIDEKLSAgIHN0b3JlIGk4ICUwLCBpOCogJTUsIGFsaWduIDEsICF0YmFhICEx OTMKLUBAIC0xMDI1Nyw3ICsxMDI1Nyw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBf Wk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSXkxM1ZhcnlpCi0gfQot IAotIDsgRnVuY3Rpb24gQXR0cnM6IGFsd2F5c2lubGluZSBpbmxpbmVoaW50IG5vdW53aW5kCi0t ZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlm UHJvcGVyRW5jb2RpbmdJZDEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJO U184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZh bCBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwg YWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICEyMTQ4IHsKLStkZWZpbmUgaW50ZXJuYWwgemVyb2V4 dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lkMTNWYXJ5 aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTgg c2lnbmV4dCwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5aW5nV3JpdGVy KSBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwo JSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIikgYWxpZ24gMSkgIzI1IGNvbWRh dCAhZGJnICEyMTQ4IHsKLSAgICU0ID0gYWxsb2NhIGkxLCBhbGlnbiAxCi0gICAlNSA9IGFsbG9j YSBpOCwgYWxpZ24gMQotICAgc3RvcmUgaTggJTAsIGk4KiAlNSwgYWxpZ24gMSwgIXRiYWEgITE5 MwotQEAgLTEwMjgzLDcgKzEwMjgzLDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9a TjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJZDEzVmFyeWkKLSB9Ci0g Ci0gOyBGdW5jdGlvbiBBdHRyczogYWx3YXlzaW5saW5lIGlubGluZWhpbnQgbm91bndpbmQKLS1k ZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQ cm9wZXJFbmNvZGluZ0lQdjEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJO U184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZh bCBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwg YWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICEyMTU3IHsKLStkZWZpbmUgaW50ZXJuYWwgemVyb2V4 dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lQdjEzVmFy eWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4 IHNpZ25leHQsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCglY2xhc3MuVmFyeWluZ1dyaXRl cikgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFs KCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIpIGFsaWduIDEpICMyNSBjb21k YXQgIWRiZyAhMjE1NyB7Ci0gICAlNCA9IGFsbG9jYSBpMSwgYWxpZ24gMQotICAgJTUgPSBhbGxv Y2EgaTgsIGFsaWduIDEKLSAgIHN0b3JlIGk4ICUwLCBpOCogJTUsIGFsaWduIDEsICF0YmFhICEx OTMKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvaXNwYy90ZW1wbGF0ZSBiL3NyY3BrZ3MvaXNwYy90ZW1w bGF0ZQppbmRleCA5YzNhY2I0MmE5Y2YuLjNhODVmZjI2MDVhZiAxMDA2NDQKLS0tIGEvc3JjcGtn cy9pc3BjL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvaXNwYy90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcg QEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2lzcGMnCiBwa2duYW1lPWlzcGMKLXZlcnNpb249MS4x NS4wCi1yZXZpc2lvbj0yCit2ZXJzaW9uPTEuMTcuMAorcmV2aXNpb249MQogYXJjaHM9Ing4Nl82 NCoiCiBidWlsZF9zdHlsZT1jbWFrZQogY29uZmlndXJlX2FyZ3M9Ii1ESVNQQ19OT19EVU1QUz1P TiAtREFSTV9FTkFCTEVEPU9GRiIKQEAgLTEyLDcgKzEyLDcgQEAgbWFpbnRhaW5lcj0iQW5kcmVh IEJyYW5jYWxlb25pIDxhYmNAcG9tcGVsLm1lPiIKIGxpY2Vuc2U9IkJTRC0zLUNsYXVzZSIKIGhv bWVwYWdlPSJodHRwczovL2lzcGMuZ2l0aHViLmlvIgogZGlzdGZpbGVzPSJodHRwczovL2dpdGh1 Yi5jb20vaXNwYy9pc3BjL2FyY2hpdmUvdiR7dmVyc2lvbn0udGFyLmd6IgotY2hlY2tzdW09MjY1 OGZmMDBkYzA0NWFjOWZjZWZiZjZiZDI2ZGZmYWY3MjNiMDU5YTk0MmEyN2RmOTFiYmI2MWJjNTAz YTI4NQorY2hlY2tzdW09MzdmYjEwNTVkNmM2YjIzMmUxMTJkOGQ1MDE0NWQ3MjY4MjRlZDRkOGRh OTNhNzM5NjMxNWRjZWJhNmM3NmU2Mgogbm9jcm9zcz15ZXMKIG5vcGllPXllcwogCgpGcm9tIDEw YTg4YmQwZmZkNzliYWRiMTk4ZTRhYjY2ZGIxZjdlZGVmMmRiNDQgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206IHByZXogPHByZXpAbmF0aW9uYWwuc2hpdHBvc3RpbmcuYWdlbmN5PgpEYXRl OiBUdWUsIDMgTWF5IDIwMjIgMDE6MjA6MDMgKzAyMDAKU3ViamVjdDogW1BBVENIIDI3LzI5XSBs bHZtMTQ6IHN3aXRjaCB0byBydW50aW1lcyBidWlsZC4KCmh0dHBzOi8vcmV2aWV3cy5sbHZtLm9y Zy9yR2FjNzAzMWIyYjJmYQpodHRwczovL3Jldmlld3MubGx2bS5vcmcvRDExMDMzOCMzMDIyOTUy Ci0tLQogc3JjcGtncy9sbHZtMTQvdGVtcGxhdGUgfCAxMCArKysrKystLS0tCiAxIGZpbGUgY2hh bmdlZCwgNiBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3Br Z3MvbGx2bTE0L3RlbXBsYXRlIGIvc3JjcGtncy9sbHZtMTQvdGVtcGxhdGUKaW5kZXggM2U3ZTZh YjJjMDBiLi5lNzMxYWE3NjEzMGEgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvbGx2bTE0L3RlbXBsYXRl CisrKyBiL3NyY3BrZ3MvbGx2bTE0L3RlbXBsYXRlCkBAIC01MSw3ICs1MSw4IEBAIGNhc2UgIiRY QlBTX1RBUkdFVF9NQUNISU5FIiBpbgogCXBwYyopIGNvbmZpZ3VyZV9hcmdzKz0iIC1EQ0xBTkdf RU5BQkxFX0NMQU5HRD1PRkYiIDs7CiBlc2FjCiAKLV9lbmFibGVkX3Byb2plY3RzPSJjbGFuZztj bGFuZy10b29scy1leHRyYTtjb21waWxlci1ydDtsaWJjeHg7bGliY3h4YWJpO2xpYnVud2luZDts bGQiCitfZW5hYmxlZF9wcm9qZWN0cz0iY2xhbmc7Y2xhbmctdG9vbHMtZXh0cmE7bGxkIgorX2Vu YWJsZWRfcnVudGltZXM9ImNvbXBpbGVyLXJ0O2xpYmN4eDtsaWJjeHhhYmk7bGlidW53aW5kIgog CiBfbGxkYl9lbmFibGU9eWVzCiBfbGlib21wX2VuYWJsZT1ubwpAQCAtNjcsOSArNjgsOCBAQCBl c2FjCiAKIHN1YnBhY2thZ2VzPSJjbGFuZy10b29scy1leHRyYSIKIAotIyBtdXN0IGdvIGJlZm9y ZSBjbGFuZwogaWYgWyAiJF9saWJvbXBfZW5hYmxlIiA9ICJ5ZXMiIF07IHRoZW4KLQlfZW5hYmxl ZF9wcm9qZWN0cys9IjtvcGVubXAiCisJX2VuYWJsZWRfcnVudGltZXMrPSI7b3Blbm1wIgogCXN1 YnBhY2thZ2VzKz0iIGxpYm9tcCBsaWJvbXAtZGV2ZWwiCiAJIyBiZWNhdXNlIG9mIGNtYWtlIG5v bnNlbnNlIHJlZmVyZW5jaW5nIGxpYm9tcHRhcmdldC5zby4qCiAJZGVwZW5kcys9IiBsaWJvbXA+ PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCkBAIC04OCw2ICs4OCw3IEBAIGZpCiBzdWJwYWNrYWdl cys9IiBsbGQgbGxkLWRldmVsIgogCiBjb25maWd1cmVfYXJncys9IiAtRExMVk1fRU5BQkxFX1BS T0pFQ1RTPSR7X2VuYWJsZWRfcHJvamVjdHN9IgorY29uZmlndXJlX2FyZ3MrPSIgLURMTFZNX0VO QUJMRV9SVU5USU1FUz0ke19lbmFibGVkX3J1bnRpbWVzfSIKIAogcG9zdF9wYXRjaCgpIHsKIAlp ZiBbICIkX2xsZGJfZW5hYmxlIiA9ICJ5ZXMiIF07IHRoZW4KQEAgLTE1Niw3ICsxNTcsOCBAQCBw cmVfY29uZmlndXJlKCkgewogCQlDQz0iJEJVSUxEX0NDIiBDWFg9IiRCVUlMRF9DWFgiIENGTEFH Uz0iJEJVSUxEX0NGTEFHUyIgXAogCQkJQ1hYRkxBR1M9IiRCVUlMRF9DWFhGTEFHUyIgTERGTEFH Uz0iJEJVSUxEX0xERkxBR1MiIFwKIAkJCWNtYWtlIC4uLy4uIC1EQ01BS0VfQlVJTERfVFlQRT1S ZWxlYXNlIFwKLQkJCS1ETExWTV9FTkFCTEVfUFJPSkVDVFM9JHtfZW5hYmxlZF9wcm9qZWN0c30K KwkJCS1ETExWTV9FTkFCTEVfUFJPSkVDVFM9JHtfZW5hYmxlZF9wcm9qZWN0c30gXAorCQkJLURM TFZNX0VOQUJMRV9SVU5USU1FUz0ke19lbmFibGVkX3J1bnRpbWVzfQogCQltYWtlICR7bWFrZWpv YnN9IC1DIHV0aWxzL1RhYmxlR2VuCiAJCW1ha2UgJHttYWtlam9ic30gLUMgdG9vbHMvY2xhbmcv dXRpbHMvVGFibGVHZW4KIAkJWyAiJF9sbGRiX2VuYWJsZSIgPSAieWVzIiBdICYmIG1ha2UgJHtt YWtlam9ic30gLUMgdG9vbHMvbGxkYi91dGlscy9UYWJsZUdlbgoKRnJvbSAxNDZlODk3M2EzYTAz MWZlODhkZTk2YzQyOWQwODk5NmQyNGI0MWM3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9t OiBwcmV6IDxwcmV6QG5hdGlvbmFsLnNoaXRwb3N0aW5nLmFnZW5jeT4KRGF0ZTogV2VkLCA0IE1h eSAyMDIyIDE0OjA3OjE0ICswMjAwClN1YmplY3Q6IFtQQVRDSCAyOC8yOV0gemlnOiBmaXggYnVp bGQuCgotLS0KIHNyY3BrZ3MvemlnL3RlbXBsYXRlIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEg aW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy96aWcvdGVt cGxhdGUgYi9zcmNwa2dzL3ppZy90ZW1wbGF0ZQppbmRleCA3MjhjNWE2NGU5ZGYuLmMxNzVkZTYy YzVmNyAxMDA2NDQKLS0tIGEvc3JjcGtncy96aWcvdGVtcGxhdGUKKysrIGIvc3JjcGtncy96aWcv dGVtcGxhdGUKQEAgLTUsNyArNSw3IEBAIHJldmlzaW9uPTIKIGFyY2hzPSJ4ODZfNjQqIGFhcmNo NjQqIgogYnVpbGRfc3R5bGU9Y21ha2UKIG1ha2VfY21kPW1ha2UKLW1ha2VkZXBlbmRzPSJjbGFu ZyBsbHZtMTIgbGxkLWRldmVsIgorbWFrZWRlcGVuZHM9ImNsYW5nMTIgbGx2bTEyIGxsZDEyLWRl dmVsIgogc2hvcnRfZGVzYz0iUHJvZ3JhbW1pbmcgbGFuZ3VhZ2UgZGVzaWduZWQgZm9yIHJvYnVz dG5lc3MsIG9wdGltYWxpdHksIGFuZCBjbGFyaXR5IgogbWFpbnRhaW5lcj0iSXNhYWMgRnJldW5k IDxtYWlsQGlzYWFjZnJldW5kLmNvbT4iCiBsaWNlbnNlPSJNSVQiCgpGcm9tIDAyMGI2YzE3ZGMx NmQ4MjJmYmViZGIzNjhkOTMzZDM2MDkxMTRkNzEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206IHByZXogPHByZXpAbmF0aW9uYWwuc2hpdHBvc3RpbmcuYWdlbmN5PgpEYXRlOiBXZWQsIDQg TWF5IDIwMjIgMDM6Mzk6NTggKzAyMDAKU3ViamVjdDogW1BBVENIIDI5LzI5XSBsbHZtMTQ6IGZp eCBidWlsZC4KCi0tLQogLi4uL2xsdm0xNC9maWxlcy9sbHZtLUNvbmZpZy1sbHZtLWNvbmZpZy5o ICAgIHwgIDkgKysrKysKIHNyY3BrZ3MvbGx2bTE0L3RlbXBsYXRlICAgICAgICAgICAgICAgICAg ICAgICB8IDQwICsrKysrKysrKy0tLS0tLS0tLS0KIDIgZmlsZXMgY2hhbmdlZCwgMjcgaW5zZXJ0 aW9ucygrKSwgMjIgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9sbHZt MTQvZmlsZXMvbGx2bS1Db25maWctbGx2bS1jb25maWcuaAoKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv bGx2bTE0L2ZpbGVzL2xsdm0tQ29uZmlnLWxsdm0tY29uZmlnLmggYi9zcmNwa2dzL2xsdm0xNC9m aWxlcy9sbHZtLUNvbmZpZy1sbHZtLWNvbmZpZy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMDAwMC4uMmZhMDhjOWJlNjk2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9s bHZtMTQvZmlsZXMvbGx2bS1Db25maWctbGx2bS1jb25maWcuaApAQCAtMCwwICsxLDkgQEAKKyNp bmNsdWRlIDxiaXRzL3dvcmRzaXplLmg+CisKKyNpZiBfX1dPUkRTSVpFID09IDMyCisjaW5jbHVk ZSAibGx2bS1jb25maWctMzIuaCIKKyNlbGlmIF9fV09SRFNJWkUgPT0gNjQKKyNpbmNsdWRlICJs bHZtLWNvbmZpZy02NC5oIgorI2Vsc2UKKyNlcnJvciAiVW5rbm93biB3b3JkIHNpemUiCisjZW5k aWYKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bTE0L3RlbXBsYXRlIGIvc3JjcGtncy9sbHZtMTQv dGVtcGxhdGUKaW5kZXggZTczMWFhNzYxMzBhLi40MGYxM2EzOTIxOTIgMTAwNjQ0Ci0tLSBhL3Ny Y3BrZ3MvbGx2bTE0L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvbGx2bTE0L3RlbXBsYXRlCkBAIC05 MCw2ICs5MCw3IEBAIHN1YnBhY2thZ2VzKz0iIGxsZCBsbGQtZGV2ZWwiCiBjb25maWd1cmVfYXJn cys9IiAtRExMVk1fRU5BQkxFX1BST0pFQ1RTPSR7X2VuYWJsZWRfcHJvamVjdHN9IgogY29uZmln dXJlX2FyZ3MrPSIgLURMTFZNX0VOQUJMRV9SVU5USU1FUz0ke19lbmFibGVkX3J1bnRpbWVzfSIK IAorCiBwb3N0X3BhdGNoKCkgewogCWlmIFsgIiRfbGxkYl9lbmFibGUiID0gInllcyIgXTsgdGhl bgogCQlpZiBbICIkWEJQU19UQVJHRVRfTElCQyIgPSAibXVzbCIgXTsgdGhlbgpAQCAtMTM2LDgg KzEzNyw3IEBAIHBvc3RfcGF0Y2goKSB7CiB9CiAKIHByZV9jb25maWd1cmUoKSB7Ci0JbG9jYWwg dHJpcGxldAotCisJbG9jYWwgdHJpcGxldD0ke1hCUFNfQ1JPU1NfVFJJUExFVDotJFhCUFNfVFJJ UExFVH0KIAkjIFZhc3RseSByZWR1Y2Ugc2l6ZSBvZiBkZWJ1Z2dpbmcgc3ltYm9sczoKIAlDRkxB R1M9JHtDRkxBR1MvIC1nLyAtZzF9CiAJQ1hYRkxBR1M9JHtDWFhGTEFHUy8gLWcvIC1nMX0KQEAg LTE2OCw2ICsxNjgsOSBAQCBwcmVfY29uZmlndXJlKCkgewogCQljZCAuLi8uLgogCWZpCiAKKwlt a2RpciAtcCBnbnUKKwl0b3VjaCBnbnUvc3R1YnMtMzIuaAorCiAJY2FzZSAiJFhCUFNfVEFSR0VU X01BQ0hJTkUiIGluCiAJCWk2ODYqKSBfYXJjaD0iWDg2Ijs7CiAJCXg4Nl82NCopIF9hcmNoPSJY ODYiOzsKQEAgLTE4MCw4ICsxODMsNiBAQCBwcmVfY29uZmlndXJlKCkgewogCQlyaXNjdjY0Kikg X2FyY2g9IlJJU0NWNjQiOzsKIAllc2FjCiAKLQl0cmlwbGV0PSR7WEJQU19DUk9TU19UUklQTEVU Oi0kWEJQU19UUklQTEVUfQotCiAJY29uZmlndXJlX2FyZ3MrPSIgLURMTFZNX1RBUkdFVF9BUkNI PSR7X2FyY2h9IgogCWNvbmZpZ3VyZV9hcmdzKz0iIC1ETExWTV9IT1NUX1RSSVBMRT0ke3RyaXBs ZXR9IgogCWNvbmZpZ3VyZV9hcmdzKz0iIC1ETExWTV9ERUZBVUxUX1RBUkdFVF9UUklQTEU9JHt0 cmlwbGV0fSIKQEAgLTI1MSw3ICsyNTIsNyBAQCBjbGFuZy10b29scy1leHRyYV9wYWNrYWdlKCkg ewogCQl2bW92ZSAidXNyL2xpYi9saWJjbGFuZ1F1ZXJ5KiIKIAkJdm1vdmUgInVzci9saWIvbGli Y2xhbmdUaWR5KiIKIAkJdm1vdmUgInVzci9zaGFyZS9jbGFuZy8qdGlkeSoiCi0JCXZtb3ZlIHVz ci9zaGFyZS9kb2MvY2xhbmctdG9vbHMKKwkJdm1vdmUgdXNyL3NoYXJlL2RvYy9MTFZNL2NsYW5n LXRvb2xzCiAJCXZtb3ZlIHVzci9zaGFyZS9tYW4vbWFuMS9leHRyYWNsYW5ndG9vbHMuMQogCQl2 bW92ZSB1c3Ivc2hhcmUvbWFuL21hbjEvZGlhZ3Rvb2wuMQogCX0KQEAgLTI3Myw3ICsyNzQsNyBA QCBjbGFuZ19wYWNrYWdlKCkgewogCQl2bW92ZSAidXNyL2xpYi9saWJjbGFuZyouYSIKIAkJdm1v dmUgInVzci9saWIvbGliY2xhbmcqLnNvIgogCQl2bW92ZSB1c3Ivc2hhcmUvY2xhbmcKLQkJdm1v dmUgdXNyL3NoYXJlL2RvYy9jbGFuZworCQl2bW92ZSB1c3Ivc2hhcmUvZG9jL0xMVk0vY2xhbmcK IAkJdm1vdmUgdXNyL3NoYXJlL21hbi9tYW4xL2NsYW5nLjEKIAl9CiB9CkBAIC0zMDEsNyArMzAy LDcgQEAgbGxkX3BhY2thZ2UoKSB7CiAJCXZtb3ZlIHVzci9iaW4vd2FzbS1sZAogCQl2bW92ZSB1 c3IvYmluL2xkLmxsZCoKIAkJdm1vdmUgdXNyL2Jpbi9sZDY0LmxsZCoKLQkJdm1vdmUgdXNyL3No YXJlL2RvYy9sbGQKKwkJdm1vdmUgdXNyL3NoYXJlL2RvYy9MTFZNL2xsZAogCX0KIH0KIApAQCAt MzQyLDcgKzM0Myw3IEBAIGxsZGItZGV2ZWxfcGFja2FnZSgpIHsKIGxsdm0tbGlidW53aW5kX3Bh Y2thZ2UoKSB7CiAJc2hvcnRfZGVzYys9IiAtIGxpYnVud2luZCIKIAlwa2dfaW5zdGFsbCgpIHsK LQkJdm1vdmUgInVzci9saWIvbGlidW53aW5kLnNvLioiCisJCXZtb3ZlICJ1c3IvbGliLyR7WEJQ U19UQVJHRVRfTElCQ19DUk9TU19UUklQTEVUOi1YQlBTX1RSSVBMRVR9L2xpYnVud2luZC5zby4q IgogCX0KIH0KIApAQCAtMzUxLDE4ICszNTIsMTcgQEAgbGx2bS1saWJ1bndpbmQtZGV2ZWxfcGFj a2FnZSgpIHsKIAlkZXBlbmRzPSJsbHZtLWxpYnVud2luZD49JHt2ZXJzaW9ufV8ke3JldmlzaW9u fSIKIAljb25mbGljdHM9ImxpYnVud2luZC1kZXZlbD49MCIKIAlwa2dfaW5zdGFsbCgpIHsKLQkJ dm1vdmUgdXNyL2xpYi9saWJ1bndpbmQuc28KLQkJdm1vdmUgdXNyL2xpYi9saWJ1bndpbmQuYQor CQl2bW92ZSB1c3IvbGliLyR7WEJQU19DUk9TU19UUklQTEVUOi0kWEJQU19UUklQTEVUfS9saWJ1 bndpbmQuc28KKwkJdm1vdmUgdXNyL2xpYi8ke1hCUFNfQ1JPU1NfVFJJUExFVDotJFhCUFNfVFJJ UExFVH0vbGlidW53aW5kLmEKIAkJdm1vdmUgInVzci9pbmNsdWRlLyp1bndpbmQqIgogCQl2bW92 ZSB1c3IvaW5jbHVkZS9tYWNoLW8KLQkJdm1vdmUgdXNyL3NoYXJlL2RvYy9saWJ1bndpbmQKIAl9 CiB9CiAKIGxpYmN4eGFiaV9wYWNrYWdlKCkgewogCXNob3J0X2Rlc2MrPSIgLSBsb3cgbGV2ZWwg c3VwcG9ydCBmb3IgbGliYysrIgogCXBrZ19pbnN0YWxsKCkgewotCQl2bW92ZSAidXNyL2xpYi9s aWJjKythYmkuc28uKiIKKwkJdm1vdmUgInVzci9saWIvJHtYQlBTX0NST1NTX1RSSVBMRVQ6LSRY QlBTX1RSSVBMRVR9L2xpYmMrK2FiaS5zby4qIgogCX0KIH0KIApAQCAtMzcwLDggKzM3MCw4IEBA IGxpYmN4eGFiaS1kZXZlbF9wYWNrYWdlKCkgewogCXNob3J0X2Rlc2MrPSIgLSBsb3cgbGV2ZWwg c3VwcG9ydCBmb3IgbGliYysrIC0gZGV2ZWxvcG1lbnQgZmlsZXMiCiAJZGVwZW5kcz0ibGliY3h4 YWJpPj0ke3ZlcnNpb259XyR7cmV2aXNpb259IgogCXBrZ19pbnN0YWxsKCkgewotCQl2bW92ZSB1 c3IvbGliL2xpYmMrK2FiaS5zbwotCQl2bW92ZSB1c3IvbGliL2xpYmMrK2FiaS5hCisJCXZtb3Zl IHVzci9saWIvJHtYQlBTX0NST1NTX1RSSVBMRVQ6LSRYQlBTX1RSSVBMRVR9L2xpYmMrK2FiaS5z bworCQl2bW92ZSB1c3IvbGliLyR7WEJQU19DUk9TU19UUklQTEVUOi0kWEJQU19UUklQTEVUfS9s aWJjKythYmkuYQogCQl2bW92ZSAidXNyL2luY2x1ZGUvKmN4eGFiaSoiCiAJfQogfQpAQCAtMzc5 LDcgKzM3OSw3IEBAIGxpYmN4eGFiaS1kZXZlbF9wYWNrYWdlKCkgewogbGliY3h4X3BhY2thZ2Uo KSB7CiAJc2hvcnRfZGVzYys9IiAtIEMrKyBzdGFuZGFyZCBsaWJyYXJ5IgogCXBrZ19pbnN0YWxs KCkgewotCQl2bW92ZSAidXNyL2xpYi9saWJjKysuc28uKiIKKwkJdm1vdmUgInVzci9saWIvJHtY QlBTX0NST1NTX1RSSVBMRVQ6LSRYQlBTX1RSSVBMRVR9L2xpYmMrKy5zby4qIgogCX0KIH0KIApA QCAtMzg3LDExICszODcsMTAgQEAgbGliY3h4LWRldmVsX3BhY2thZ2UoKSB7CiAJc2hvcnRfZGVz Yys9IiAtIEMrKyBzdGFuZGFyZCBsaWJyYXJ5IC0gZGV2ZWxvcG1lbnQgZmlsZXMiCiAJZGVwZW5k cz0ibGliY3h4Pj0ke3ZlcnNpb259XyR7cmV2aXNpb259IgogCXBrZ19pbnN0YWxsKCkgewotCQl2 bW92ZSB1c3IvbGliL2xpYmMrKy5zbwotCQl2bW92ZSB1c3IvbGliL2xpYmMrKy5hCi0JCXZtb3Zl IHVzci9saWIvbGliYysrZXhwZXJpbWVudGFsLmEKKwkJdm1vdmUgdXNyL2xpYi8ke1hCUFNfQ1JP U1NfVFJJUExFVDotJFhCUFNfVFJJUExFVH0vbGliYysrLnNvCisJCXZtb3ZlIHVzci9saWIvJHtY QlBTX0NST1NTX1RSSVBMRVQ6LSRYQlBTX1RSSVBMRVR9L2xpYmMrKy5hCisJCXZtb3ZlIHVzci9s aWIvJHtYQlBTX0NST1NTX1RSSVBMRVQ6LSRYQlBTX1RSSVBMRVR9L2xpYmMrK2V4cGVyaW1lbnRh bC5hCiAJCXZtb3ZlIHVzci9pbmNsdWRlL2MrKwotCQl2bW92ZSB1c3Ivc2hhcmUvZG9jL2xpYmN4 eAogCX0KIH0KIApAQCAtNDAxLDcgKzQwMCw2IEBAIGxpYm9tcF9wYWNrYWdlKCkgewogCQl2bW92 ZSB1c3IvbGliL2xpYm9tcC5zbwogCQl2bW92ZSAidXNyL2xpYi9saWJvbXB0YXJnZXQucnRsLiou c28iCiAJCXZtb3ZlIHVzci9saWIvbGliYXJjaGVyLnNvCi0JCXZtb3ZlICJ1c3IvbGliL2xpYm9t cCouc28uKiIKIAl9CiB9CiAKQEAgLTQxMyw4ICs0MTEsNiBAQCBsaWJvbXAtZGV2ZWxfcGFja2Fn ZSgpIHsKIAkJdm1vdmUgInVzci9saWIvbGliYXJjaGVyKiIKIAkJdm1vdmUgInVzci9pbmNsdWRl L29tcCouaCIKIAkJdm1vdmUgInVzci9saWIvY2xhbmcvJHt2ZXJzaW9ufS9pbmNsdWRlL29tcCou aCIKLQkJdm1vdmUgdXNyL3NoYXJlL21hbi9tYW4xL2xsdm1vcGVubXAuMQotCQl2bW92ZSB1c3Iv c2hhcmUvZG9jL29wZW5tcAogCX0KIH0KIAo= --===============6184161703866227559==--