From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (qmail 11135 invoked from network); 7 Jun 2022 20:04:39 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 7 Jun 2022 20:04:39 -0000 Content-Type: multipart/mixed; boundary="===============5323688800217564088==" 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: Tue, 07 Jun 2022 22:04:39 +0200 List-Id: Message-ID: <20220607200439.vNMOmceyvfmBfJQKvwsB5LR7rM4-ystDVPFoh4Y-keU@z> GitHub notification mails are now in MIME to allow UTF8. --===============5323688800217564088== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgcHJleiBhZ2FpbnN0IG1hc3RlciBv biB0aGUgdm9pZC1wYWNrYWdlcyByZXBvc2l0b3J5CgpodHRwczovL2dpdGh1Yi5jb20vcHJlei92 b2lkLXBhY2thZ2VzIGxsdm0KaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9pZC1wYWNr YWdlcy9wdWxsLzM2OTYyCgpMbHZtMTQKU3VwZXJzZWRlcyBodHRwczovL2dpdGh1Yi5jb20vdm9p ZC1saW51eC92b2lkLXBhY2thZ2VzL3B1bGwvMzYyMjksIGh0dHBzOi8vZ2l0aHViLmNvbS92b2lk LWxpbnV4L3ZvaWQtcGFja2FnZXMvcHVsbC8zNDgwMCAtIHRoYW5rIHlvdSBAbW90b3J0byBhbmQg QERCTG91aXMuDQoNClVwZGF0ZWQgcGF0Y2hlcywgcGluZyBAcTY2IC4NCg0KW2NpIHNraXBdCgpB IHBhdGNoIGZpbGUgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2th Z2VzL3B1bGwvMzY5NjIucGF0Y2ggaXMgYXR0YWNoZWQ= --===============5323688800217564088== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-llvm-36962.patch" RnJvbSAwNzY5MzcxYmQyOTJjYTEzMmJiMzU3ZDEyMmUyZDQyNDI1MzJiY2ZjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBwcmV6IDxwcmV6QG5hdGlvbmFsLnNoaXRwb3N0aW5nLmFnZW5j eT4KRGF0ZTogTW9uLCAyIE1heSAyMDIyIDIxOjE1OjA2ICswMjAwClN1YmplY3Q6IFtQQVRDSCAw MS8yM10gTmV3IHBhY2thZ2U6IGxsdm0xNC0xNC4wLjMKCi0tLQogY29tbW9uL3NobGlicyAgICAg 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 cwppbmRleCBlMDQwMzdhOWYyZjAuLjc2NThjMWQyNTMxZSAxMDA2NDQKLS0tIGEvY29tbW9uL3No bGlicworKysgYi9jb21tb24vc2hsaWJzCkBAIC05NzMsMTEgKzk3MywxMiBAQCBsaWJ1Y2hhcmRl dC5zby4wIHVjaGFyZGV0LTAuMC42XzEKIGxpYmd0a3NvdXJjZXZpZXdtbS0zLjAuc28uMCBndGtz b3VyY2V2aWV3bW0tMy4yLjBfMQogbGlieWFqbC5zby4yIHlhamwtMi4wLjFfMQogbGliY29uZnVz ZS5zby4yIGNvbmZ1c2UtMy4yLjFfMQotbGlibGxkYi5zby4xMiBsbGRiLTEyLjAuMF8xCi1saWJj bGFuZy5zby4xMiBsaWJjbGFuZy0xMi4wLjBfMQotbGliY2xhbmctY3BwLnNvLjEyIGxpYmNsYW5n LWNwcC0xMi4wLjBfMQorbGlibGxkYi5zby4xNCBsbGRiLTE0LjAuM18xCitsaWJjbGFuZy5zby4x NCBsaWJjbGFuZy0xNC4wLjNfMQorbGliY2xhbmctY3BwLnNvLjE0IGxpYmNsYW5nLWNwcC0xNC4w LjNfMQogbGliTExWTS0xMS5zbyBsaWJsbHZtMTEtMTEuMC4wXzEKIGxpYkxMVk0tMTIuc28gbGli bGx2bTEyLTEyLjAuMF8xCitsaWJMTFZNLTE0LnNvIGxpYmxsdm0xNC0xNC4wLjNfMQogbGliaXNv ZnMuc28uNiBsaWJpc29mcy0wLjYuMjRfMQogbGlibXBhY2suc28uMCBsaWJtcGFjay0xLjAuNV8x CiBsaWJHZW9JUC5zby4xIGxpYmdlb2lwLTEuNC44XzEKQEAgLTQxNjUsMyArNDE2NiwxMiBAQCBs aWJUTVZBLnNvIHJvb3QtNi4yNC4wNl8xCiBsaWJNYXRoQ29yZS5zbyByb290LTYuMjQuMDZfMQog bGlibG93ZG93bi5zbyBsb3dkb3duLTAuMTEuMl8xCiBsaWJqYXlsaW5rLnNvLjAgbGliamF5bGlu ay0wLjIuMF8xCitsaWJvbXAuc28gbGlib21wLTE0LjAuM18xCitsaWJvbXB0YXJnZXQucnRsLmFt ZGdwdS5zbyBsaWJvbXAtMTQuMC4zXzEKK2xpYm9tcHRhcmdldC5ydGwuY3VkYS5zbyBsaWJvbXAt MTQuMC4zXzEKK2xpYm9tcHRhcmdldC5ydGwueDg2XzY0LnNvIGxpYm9tcC0xNC4wLjNfMQorbGli YXJjaGVyLnNvIGxpYm9tcC0xNC4wLjNfMQorbGlib21wdGFyZ2V0LnNvIGxpYm9tcC0xNC4wLjNf MQorbGlibGxkYkludGVsRmVhdHVyZXMuc28uMTQgbGxkYi0xNC4wLjNfMQorbGliTFRPLnNvLjE0 IGxsdm0xNC0xNC4wLjNfMQorbGliUmVtYXJrcy5zby4xNCBsbHZtMTQtMTQuMC4zXzEKZGlmZiAt LWdpdCBhL3NyY3BrZ3MvY2xhbmcgYi9zcmNwa2dzL2NsYW5nCmluZGV4IGNkNjBmZDdhOTgxYi4u MWQ0MmVkNzYzMmE2IDEyMDAwMAotLS0gYS9zcmNwa2dzL2NsYW5nCisrKyBiL3NyY3BrZ3MvY2xh bmcKQEAgLTEgKzEgQEAKLWxsdm0xMgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK2xsdm0x NApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY2xhbmct YW5hbHl6ZXIgYi9zcmNwa2dzL2NsYW5nLWFuYWx5emVyCmluZGV4IGNkNjBmZDdhOTgxYi4uMWQ0 MmVkNzYzMmE2IDEyMDAwMAotLS0gYS9zcmNwa2dzL2NsYW5nLWFuYWx5emVyCisrKyBiL3NyY3Br Z3MvY2xhbmctYW5hbHl6ZXIKQEAgLTEgKzEgQEAKLWxsdm0xMgpcIE5vIG5ld2xpbmUgYXQgZW5k IG9mIGZpbGUKK2xsdm0xNApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBh L3NyY3BrZ3MvY2xhbmctdG9vbHMtZXh0cmEgYi9zcmNwa2dzL2NsYW5nLXRvb2xzLWV4dHJhCmlu ZGV4IGNkNjBmZDdhOTgxYi4uMWQ0MmVkNzYzMmE2IDEyMDAwMAotLS0gYS9zcmNwa2dzL2NsYW5n LXRvb2xzLWV4dHJhCisrKyBiL3NyY3BrZ3MvY2xhbmctdG9vbHMtZXh0cmEKQEAgLTEgKzEgQEAK LWxsdm0xMgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK2xsdm0xNApcIE5vIG5ld2xpbmUg YXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGliY2xhbmcgYi9zcmNwa2dzL2xp YmNsYW5nCmluZGV4IGNkNjBmZDdhOTgxYi4uMWQ0MmVkNzYzMmE2IDEyMDAwMAotLS0gYS9zcmNw a2dzL2xpYmNsYW5nCisrKyBiL3NyY3BrZ3MvbGliY2xhbmcKQEAgLTEgKzEgQEAKLWxsdm0xMgpc IE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK2xsdm0xNApcIE5vIG5ld2xpbmUgYXQgZW5kIG9m IGZpbGUKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGliY2xhbmctY3BwIGIvc3JjcGtncy9saWJjbGFu Zy1jcHAKaW5kZXggY2Q2MGZkN2E5ODFiLi4xZDQyZWQ3NjMyYTYgMTIwMDAwCi0tLSBhL3NyY3Br Z3MvbGliY2xhbmctY3BwCisrKyBiL3NyY3BrZ3MvbGliY2xhbmctY3BwCkBAIC0xICsxIEBACi1s bHZtMTIKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCitsbHZtMTQKXCBObyBuZXdsaW5lIGF0 IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xpYmN4eCBiL3NyY3BrZ3MvbGliY3h4 CmluZGV4IGNkNjBmZDdhOTgxYi4uMWQ0MmVkNzYzMmE2IDEyMDAwMAotLS0gYS9zcmNwa2dzL2xp YmN4eAorKysgYi9zcmNwa2dzL2xpYmN4eApAQCAtMSArMSBAQAotbGx2bTEyClwgTm8gbmV3bGlu ZSBhdCBlbmQgb2YgZmlsZQorbGx2bTE0ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZm IC0tZ2l0IGEvc3JjcGtncy9saWJjeHgtZGV2ZWwgYi9zcmNwa2dzL2xpYmN4eC1kZXZlbAppbmRl eCBjZDYwZmQ3YTk4MWIuLjFkNDJlZDc2MzJhNiAxMjAwMDAKLS0tIGEvc3JjcGtncy9saWJjeHgt ZGV2ZWwKKysrIGIvc3JjcGtncy9saWJjeHgtZGV2ZWwKQEAgLTEgKzEgQEAKLWxsdm0xMgpcIE5v IG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK2xsdm0xNApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZp bGUKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGliY3h4YWJpIGIvc3JjcGtncy9saWJjeHhhYmkKaW5k ZXggY2Q2MGZkN2E5ODFiLi4xZDQyZWQ3NjMyYTYgMTIwMDAwCi0tLSBhL3NyY3BrZ3MvbGliY3h4 YWJpCisrKyBiL3NyY3BrZ3MvbGliY3h4YWJpCkBAIC0xICsxIEBACi1sbHZtMTIKXCBObyBuZXds aW5lIGF0IGVuZCBvZiBmaWxlCitsbHZtMTQKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRp ZmYgLS1naXQgYS9zcmNwa2dzL2xpYmN4eGFiaS1kZXZlbCBiL3NyY3BrZ3MvbGliY3h4YWJpLWRl dmVsCmluZGV4IGNkNjBmZDdhOTgxYi4uMWQ0MmVkNzYzMmE2IDEyMDAwMAotLS0gYS9zcmNwa2dz L2xpYmN4eGFiaS1kZXZlbAorKysgYi9zcmNwa2dzL2xpYmN4eGFiaS1kZXZlbApAQCAtMSArMSBA QAotbGx2bTEyClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorbGx2bTE0ClwgTm8gbmV3bGlu ZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9saWJsbHZtMTQgYi9zcmNwa2dz L2xpYmxsdm0xNApuZXcgZmlsZSBtb2RlIDEyMDAwMAppbmRleCAwMDAwMDAwMDAwMDAuLjFkNDJl ZDc2MzJhNgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbGlibGx2bTE0CkBAIC0wLDAgKzEg QEAKK2xsdm0xNApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyY3Br Z3MvbGlib21wIGIvc3JjcGtncy9saWJvbXAKaW5kZXggY2Q2MGZkN2E5ODFiLi4xZDQyZWQ3NjMy YTYgMTIwMDAwCi0tLSBhL3NyY3BrZ3MvbGlib21wCisrKyBiL3NyY3BrZ3MvbGlib21wCkBAIC0x ICsxIEBACi1sbHZtMTIKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCitsbHZtMTQKXCBObyBu ZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xpYm9tcC1kZXZlbCBi L3NyY3BrZ3MvbGlib21wLWRldmVsCmluZGV4IGNkNjBmZDdhOTgxYi4uMWQ0MmVkNzYzMmE2IDEy MDAwMAotLS0gYS9zcmNwa2dzL2xpYm9tcC1kZXZlbAorKysgYi9zcmNwa2dzL2xpYm9tcC1kZXZl bApAQCAtMSArMSBAQAotbGx2bTEyClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorbGx2bTE0 ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbGQgYi9z cmNwa2dzL2xsZAppbmRleCBjZDYwZmQ3YTk4MWIuLjFkNDJlZDc2MzJhNiAxMjAwMDAKLS0tIGEv c3JjcGtncy9sbGQKKysrIGIvc3JjcGtncy9sbGQKQEAgLTEgKzEgQEAKLWxsdm0xMgpcIE5vIG5l d2xpbmUgYXQgZW5kIG9mIGZpbGUKK2xsdm0xNApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK ZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGxkLWRldmVsIGIvc3JjcGtncy9sbGQtZGV2ZWwKaW5kZXgg Y2Q2MGZkN2E5ODFiLi4xZDQyZWQ3NjMyYTYgMTIwMDAwCi0tLSBhL3NyY3BrZ3MvbGxkLWRldmVs CisrKyBiL3NyY3BrZ3MvbGxkLWRldmVsCkBAIC0xICsxIEBACi1sbHZtMTIKXCBObyBuZXdsaW5l IGF0IGVuZCBvZiBmaWxlCitsbHZtMTQKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYg LS1naXQgYS9zcmNwa2dzL2xsZGIgYi9zcmNwa2dzL2xsZGIKaW5kZXggY2Q2MGZkN2E5ODFiLi4x ZDQyZWQ3NjMyYTYgMTIwMDAwCi0tLSBhL3NyY3BrZ3MvbGxkYgorKysgYi9zcmNwa2dzL2xsZGIK QEAgLTEgKzEgQEAKLWxsdm0xMgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK2xsdm0xNApc IE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGxkYi1kZXZl bCBiL3NyY3BrZ3MvbGxkYi1kZXZlbAppbmRleCBjZDYwZmQ3YTk4MWIuLjFkNDJlZDc2MzJhNiAx MjAwMDAKLS0tIGEvc3JjcGtncy9sbGRiLWRldmVsCisrKyBiL3NyY3BrZ3MvbGxkYi1kZXZlbApA QCAtMSArMSBAQAotbGx2bTEyClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorbGx2bTE0Clwg Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtLWxpYnVu d2luZCBiL3NyY3BrZ3MvbGx2bS1saWJ1bndpbmQKaW5kZXggY2Q2MGZkN2E5ODFiLi4xZDQyZWQ3 NjMyYTYgMTIwMDAwCi0tLSBhL3NyY3BrZ3MvbGx2bS1saWJ1bndpbmQKKysrIGIvc3JjcGtncy9s bHZtLWxpYnVud2luZApAQCAtMSArMSBAQAotbGx2bTEyClwgTm8gbmV3bGluZSBhdCBlbmQgb2Yg ZmlsZQorbGx2bTE0ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9sbHZtLWxpYnVud2luZC1kZXZlbCBiL3NyY3BrZ3MvbGx2bS1saWJ1bndpbmQtZGV2ZWwK aW5kZXggY2Q2MGZkN2E5ODFiLi4xZDQyZWQ3NjMyYTYgMTIwMDAwCi0tLSBhL3NyY3BrZ3MvbGx2 bS1saWJ1bndpbmQtZGV2ZWwKKysrIGIvc3JjcGtncy9sbHZtLWxpYnVud2luZC1kZXZlbApAQCAt MSArMSBAQAotbGx2bTEyClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorbGx2bTE0ClwgTm8g bmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtMTQvcGF0Y2hl cy9jbGFuZy0wMDItYWRkLW11c2wtdHJpcGxlcy5wYXRjaCBiL3NyY3BrZ3MvbGx2bTE0L3BhdGNo ZXMvY2xhbmctMDAyLWFkZC1tdXNsLXRyaXBsZXMucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwMDAwLi43YjY0MGUxMDJiZWQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNw a2dzL2xsdm0xNC9wYXRjaGVzL2NsYW5nLTAwMi1hZGQtbXVzbC10cmlwbGVzLnBhdGNoCkBAIC0w LDAgKzEsMTEwIEBACistLS0gYS9jbGFuZy9saWIvRHJpdmVyL1Rvb2xDaGFpbnMvR251LmNwcAor KysrIGIvY2xhbmcvbGliL0RyaXZlci9Ub29sQ2hhaW5zL0dudS5jcHAKK0BAIC0yMDgzLDcgKzIw ODMsOCBAQCB2b2lkIEdlbmVyaWNfR0NDOjpHQ0NJbnN0YWxsYXRpb25EZXRlY3Rvcjo6QWRkRGVm YXVsdEdDQ1ByZWZpeGVzKAorICAgc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IEFSTUhGVHJpcGxl c1tdID0geyJhcm0tbGludXgtZ251ZWFiaWhmIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAiYXJtdjdobC1yZWRoYXQtbGludXgtZ251ZWFiaSIsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImFybXY2aGwtc3VzZS1s aW51eC1nbnVlYWJpIiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAiYXJtdjdobC1zdXNlLWxpbnV4LWdudWVhYmkifTsKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAiYXJtdjdobC1zdXNlLWxpbnV4LWdudWVhYmkiLAor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhcm12N2wtbGlu dXgtZ251ZWFiaWhmIn07CisgICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgQVJNZWJMaWJEaXJz W10gPSB7Ii9saWIifTsKKyAgIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBBUk1lYlRyaXBsZXNb XSA9IHsiYXJtZWItbGludXgtZ251ZWFiaSJ9OworICAgc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0 IEFSTWViSEZUcmlwbGVzW10gPSB7CitAQCAtMjE1MSw4ICsyMTUyLDcgQEAgdm9pZCBHZW5lcmlj X0dDQzo6R0NDSW5zdGFsbGF0aW9uRGV0ZWN0b3I6OkFkZERlZmF1bHRHQ0NQcmVmaXhlcygKKyAg ICAgICAicG93ZXJwYzY0LXN1c2UtbGludXgiLCAicG93ZXJwYy1tb250YXZpc3RhLWxpbnV4c3Bl In07CisgICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgUFBDTEVMaWJEaXJzW10gPSB7Ii9saWIz MiIsICIvbGliIn07CisgICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgUFBDTEVUcmlwbGVzW10g PSB7InBvd2VycGNsZS1saW51eC1nbnUiLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICJwb3dlcnBjbGUtdW5rbm93bi1saW51eC1nbnUiLAorLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwb3dlcnBjbGUtbGludXgtbXVz bCJ9OworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwb3dl cnBjbGUtdW5rbm93bi1saW51eC1nbnUifTsKKworICAgc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0 IFBQQzY0TGliRGlyc1tdID0geyIvbGliNjQiLCAiL2xpYiJ9OworICAgc3RhdGljIGNvbnN0IGNo YXIgKmNvbnN0IFBQQzY0VHJpcGxlc1tdID0geworQEAgLTIyMzEsNiArMjIzMSw4NyBAQCB2b2lk IEdlbmVyaWNfR0NDOjpHQ0NJbnN0YWxsYXRpb25EZXRlY3Rvcjo6QWRkRGVmYXVsdEdDQ1ByZWZp eGVzKAorICAgICByZXR1cm47CisgICB9CisKKysgIGlmIChUYXJnZXRUcmlwbGUuaXNNdXNsKCkp IHsKKysgICAgc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IEFBcmNoNjRNdXNsVHJpcGxlc1tdID0g eyJhYXJjaDY0LWxpbnV4LW11c2wifTsKKysgICAgc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IEFS TUhGTXVzbFRyaXBsZXNbXSA9IHsKKysgICAgICAgICJhcm0tbGludXgtbXVzbGVhYmloZiIsICJh cm12N2wtbGludXgtbXVzbGVhYmloZiIKKysgICAgfTsKKysgICAgc3RhdGljIGNvbnN0IGNoYXIg KmNvbnN0IEFSTU11c2xUcmlwbGVzW10gPSB7ImFybS1saW51eC1tdXNsZWFiaSJ9OworKyAgICBz dGF0aWMgY29uc3QgY2hhciAqY29uc3QgWDg2XzY0TXVzbFRyaXBsZXNbXSA9IHsieDg2XzY0LWxp bnV4LW11c2wifTsKKysgICAgc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IFg4Nk11c2xUcmlwbGVz W10gPSB7Imk2ODYtbGludXgtbXVzbCJ9OworKyAgICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3Qg TUlQU011c2xUcmlwbGVzW10gPSB7CisrICAgICAgICAibWlwcy1saW51eC1tdXNsIiwgIm1pcHNl bC1saW51eC1tdXNsIiwKKysgICAgICAgICJtaXBzZWwtbGludXgtbXVzbGhmIiwgIm1pcHMtbGlu dXgtbXVzbGhmIgorKyAgICB9OworKyAgICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgUFBDTXVz bFRyaXBsZXNbXSA9IHsicG93ZXJwYy1saW51eC1tdXNsIn07CisrICAgIHN0YXRpYyBjb25zdCBj aGFyICpjb25zdCBQUENMRU11c2xUcmlwbGVzW10gPSB7InBvd2VycGNsZS1saW51eC1tdXNsIn07 CisrICAgIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBQUEM2NE11c2xUcmlwbGVzW10gPSB7InBv d2VycGM2NC1saW51eC1tdXNsIn07CisrICAgIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBQUEM2 NExFTXVzbFRyaXBsZXNbXSA9IHsicG93ZXJwYzY0bGUtbGludXgtbXVzbCJ9OworKworKyAgICBz d2l0Y2ggKFRhcmdldFRyaXBsZS5nZXRBcmNoKCkpIHsKKysgICAgY2FzZSBsbHZtOjpUcmlwbGU6 OmFhcmNoNjQ6CisrICAgICAgTGliRGlycy5hcHBlbmQoYmVnaW4oQUFyY2g2NExpYkRpcnMpLCBl bmQoQUFyY2g2NExpYkRpcnMpKTsKKysgICAgICBUcmlwbGVBbGlhc2VzLmFwcGVuZChiZWdpbihB QXJjaDY0TXVzbFRyaXBsZXMpLCBlbmQoQUFyY2g2NE11c2xUcmlwbGVzKSk7CisrICAgICAgQmlh cmNoTGliRGlycy5hcHBlbmQoYmVnaW4oQUFyY2g2NExpYkRpcnMpLCBlbmQoQUFyY2g2NExpYkRp cnMpKTsKKysgICAgICBCaWFyY2hUcmlwbGVBbGlhc2VzLmFwcGVuZChiZWdpbihBQXJjaDY0TXVz bFRyaXBsZXMpLCBlbmQoQUFyY2g2NE11c2xUcmlwbGVzKSk7CisrICAgICAgYnJlYWs7CisrICAg IGNhc2UgbGx2bTo6VHJpcGxlOjphcm06CisrICAgICAgTGliRGlycy5hcHBlbmQoYmVnaW4oQVJN TGliRGlycyksIGVuZChBUk1MaWJEaXJzKSk7CisrICAgICAgaWYgKFRhcmdldFRyaXBsZS5nZXRF bnZpcm9ubWVudCgpID09IGxsdm06OlRyaXBsZTo6TXVzbEVBQklIRikgeworKyAgICAgICAgVHJp cGxlQWxpYXNlcy5hcHBlbmQoYmVnaW4oQVJNSEZNdXNsVHJpcGxlcyksIGVuZChBUk1IRk11c2xU cmlwbGVzKSk7CisrICAgICAgfSBlbHNlIHsKKysgICAgICAgIFRyaXBsZUFsaWFzZXMuYXBwZW5k KGJlZ2luKEFSTU11c2xUcmlwbGVzKSwgZW5kKEFSTU11c2xUcmlwbGVzKSk7CisrICAgICAgfQor KyAgICAgIGJyZWFrOworKyAgICBjYXNlIGxsdm06OlRyaXBsZTo6eDg2XzY0OgorKyAgICAgIExp YkRpcnMuYXBwZW5kKGJlZ2luKFg4Nl82NExpYkRpcnMpLCBlbmQoWDg2XzY0TGliRGlycykpOwor KyAgICAgIFRyaXBsZUFsaWFzZXMuYXBwZW5kKGJlZ2luKFg4Nl82NE11c2xUcmlwbGVzKSwgZW5k KFg4Nl82NE11c2xUcmlwbGVzKSk7CisrICAgICAgQmlhcmNoTGliRGlycy5hcHBlbmQoYmVnaW4o WDg2TGliRGlycyksIGVuZChYODZMaWJEaXJzKSk7CisrICAgICAgQmlhcmNoVHJpcGxlQWxpYXNl cy5hcHBlbmQoYmVnaW4oWDg2TXVzbFRyaXBsZXMpLCBlbmQoWDg2TXVzbFRyaXBsZXMpKTsKKysg ICAgICBicmVhazsKKysgICAgY2FzZSBsbHZtOjpUcmlwbGU6Ong4NjoKKysgICAgICBMaWJEaXJz LmFwcGVuZChiZWdpbihYODZMaWJEaXJzKSwgZW5kKFg4NkxpYkRpcnMpKTsKKysgICAgICBUcmlw bGVBbGlhc2VzLmFwcGVuZChiZWdpbihYODZNdXNsVHJpcGxlcyksIGVuZChYODZNdXNsVHJpcGxl cykpOworKyAgICAgIEJpYXJjaExpYkRpcnMuYXBwZW5kKGJlZ2luKFg4Nl82NExpYkRpcnMpLCBl bmQoWDg2XzY0TGliRGlycykpOworKyAgICAgIEJpYXJjaFRyaXBsZUFsaWFzZXMuYXBwZW5kKGJl Z2luKFg4Nl82NE11c2xUcmlwbGVzKSwgZW5kKFg4Nl82NE11c2xUcmlwbGVzKSk7CisrICAgICAg YnJlYWs7CisrICAgIGNhc2UgbGx2bTo6VHJpcGxlOjptaXBzOgorKyAgICAgIExpYkRpcnMuYXBw ZW5kKGJlZ2luKE1JUFNMaWJEaXJzKSwgZW5kKE1JUFNMaWJEaXJzKSk7CisrICAgICAgVHJpcGxl QWxpYXNlcy5hcHBlbmQoYmVnaW4oTUlQU011c2xUcmlwbGVzKSwgZW5kKE1JUFNNdXNsVHJpcGxl cykpOworKyAgICAgIGJyZWFrOworKyAgICBjYXNlIGxsdm06OlRyaXBsZTo6cHBjOgorKyAgICAg IExpYkRpcnMuYXBwZW5kKGJlZ2luKFBQQ0xpYkRpcnMpLCBlbmQoUFBDTGliRGlycykpOworKyAg ICAgIFRyaXBsZUFsaWFzZXMuYXBwZW5kKGJlZ2luKFBQQ011c2xUcmlwbGVzKSwgZW5kKFBQQ011 c2xUcmlwbGVzKSk7CisrICAgICAgQmlhcmNoTGliRGlycy5hcHBlbmQoYmVnaW4oUFBDNjRMaWJE aXJzKSwgZW5kKFBQQzY0TGliRGlycykpOworKyAgICAgIEJpYXJjaFRyaXBsZUFsaWFzZXMuYXBw ZW5kKGJlZ2luKFBQQzY0TXVzbFRyaXBsZXMpLCBlbmQoUFBDNjRNdXNsVHJpcGxlcykpOworKyAg ICAgIGJyZWFrOworKyAgICBjYXNlIGxsdm06OlRyaXBsZTo6cHBjbGU6CisrICAgICAgTGliRGly cy5hcHBlbmQoYmVnaW4oUFBDTEVMaWJEaXJzKSwgZW5kKFBQQ0xFTGliRGlycykpOworKyAgICAg IFRyaXBsZUFsaWFzZXMuYXBwZW5kKGJlZ2luKFBQQ0xFTXVzbFRyaXBsZXMpLCBlbmQoUFBDTEVN dXNsVHJpcGxlcykpOworKyAgICAgIEJpYXJjaExpYkRpcnMuYXBwZW5kKGJlZ2luKFBQQzY0TEVM aWJEaXJzKSwgZW5kKFBQQzY0TEVMaWJEaXJzKSk7CisrICAgICAgQmlhcmNoVHJpcGxlQWxpYXNl cy5hcHBlbmQoYmVnaW4oUFBDNjRMRU11c2xUcmlwbGVzKSwgZW5kKFBQQzY0TEVNdXNsVHJpcGxl cykpOworKyAgICAgIGJyZWFrOworKyAgICBjYXNlIGxsdm06OlRyaXBsZTo6cHBjNjQ6CisrICAg ICAgTGliRGlycy5hcHBlbmQoYmVnaW4oUFBDNjRMaWJEaXJzKSwgZW5kKFBQQzY0TGliRGlycykp OworKyAgICAgIFRyaXBsZUFsaWFzZXMuYXBwZW5kKGJlZ2luKFBQQzY0TXVzbFRyaXBsZXMpLCBl bmQoUFBDNjRNdXNsVHJpcGxlcykpOworKyAgICAgIEJpYXJjaExpYkRpcnMuYXBwZW5kKGJlZ2lu KFBQQ0xpYkRpcnMpLCBlbmQoUFBDTGliRGlycykpOworKyAgICAgIEJpYXJjaFRyaXBsZUFsaWFz ZXMuYXBwZW5kKGJlZ2luKFBQQ011c2xUcmlwbGVzKSwgZW5kKFBQQ011c2xUcmlwbGVzKSk7Cisr ICAgICAgYnJlYWs7CisrICAgIGNhc2UgbGx2bTo6VHJpcGxlOjpwcGM2NGxlOgorKyAgICAgIExp YkRpcnMuYXBwZW5kKGJlZ2luKFBQQzY0TEVMaWJEaXJzKSwgZW5kKFBQQzY0TEVMaWJEaXJzKSk7 CisrICAgICAgVHJpcGxlQWxpYXNlcy5hcHBlbmQoYmVnaW4oUFBDNjRMRU11c2xUcmlwbGVzKSwg ZW5kKFBQQzY0TEVNdXNsVHJpcGxlcykpOworKyAgICAgIEJpYXJjaExpYkRpcnMuYXBwZW5kKGJl Z2luKFBQQ0xFTGliRGlycyksIGVuZChQUENMRUxpYkRpcnMpKTsKKysgICAgICBCaWFyY2hUcmlw bGVBbGlhc2VzLmFwcGVuZChiZWdpbihQUENMRU11c2xUcmlwbGVzKSwgZW5kKFBQQ0xFTXVzbFRy aXBsZXMpKTsKKysgICAgICBicmVhazsKKysgICAgZGVmYXVsdDoKKysgICAgICBicmVhazsKKysg ICAgfQorKyAgICBUcmlwbGVBbGlhc2VzLnB1c2hfYmFjayhUYXJnZXRUcmlwbGUuc3RyKCkpOwor KyAgICBpZiAoVGFyZ2V0VHJpcGxlLnN0cigpICE9IEJpYXJjaFRyaXBsZS5zdHIoKSkKKysgICAg ICBCaWFyY2hUcmlwbGVBbGlhc2VzLnB1c2hfYmFjayhCaWFyY2hUcmlwbGUuc3RyKCkpOworKyAg ICByZXR1cm47CisrICB9CisrCisgICAvLyBBbmRyb2lkIHRhcmdldHMgc2hvdWxkIG5vdCB1c2Ug R05VL0xpbnV4IHRvb2xzIG9yIGxpYnJhcmllcy4KKyAgIGlmIChUYXJnZXRUcmlwbGUuaXNBbmRy b2lkKCkpIHsKKyAgICAgc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IEFBcmNoNjRBbmRyb2lkVHJp cGxlc1tdID0gewpkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtMTQvcGF0Y2hlcy9jbGFuZy0wMDMt cHBjNjQtZHluYW1pYy1saW5rZXItcGF0aC5wYXRjaCBiL3NyY3BrZ3MvbGx2bTE0L3BhdGNoZXMv Y2xhbmctMDAzLXBwYzY0LWR5bmFtaWMtbGlua2VyLXBhdGgucGF0Y2gKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi40NzEyOGFmNzliN2YKLS0tIC9kZXYvbnVsbAorKysg Yi9zcmNwa2dzL2xsdm0xNC9wYXRjaGVzL2NsYW5nLTAwMy1wcGM2NC1keW5hbWljLWxpbmtlci1w YXRoLnBhdGNoCkBAIC0wLDAgKzEsMTMgQEAKKy0tLSBhL2NsYW5nL2xpYi9Ecml2ZXIvVG9vbENo YWlucy9MaW51eC5jcHAKKysrKyBiL2NsYW5nL2xpYi9Ecml2ZXIvVG9vbENoYWlucy9MaW51eC5j cHAKK0BAIC00OTAsMTAgKzQ5MCw2IEBAIHN0ZDo6c3RyaW5nIExpbnV4OjpnZXREeW5hbWljTGlu a2VyKGNvbnN0IEFyZ0xpc3QgJkFyZ3MpIGNvbnN0IHsKKyAgICAgTG9hZGVyID0gImxkLnNvLjEi OworICAgICBicmVhazsKKyAgIGNhc2UgbGx2bTo6VHJpcGxlOjpwcGM2NDoKKy0gICAgTGliRGly ID0gImxpYjY0IjsKKy0gICAgTG9hZGVyID0KKy0gICAgICAgICh0b29sczo6cHBjOjpoYXNQUENB YmlBcmcoQXJncywgImVsZnYyIikpID8gImxkNjQuc28uMiIgOiAibGQ2NC5zby4xIjsKKy0gICAg YnJlYWs7CisgICBjYXNlIGxsdm06OlRyaXBsZTo6cHBjNjRsZToKKyAgICAgTGliRGlyID0gImxp YjY0IjsKKyAgICAgTG9hZGVyID0KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bTE0L3BhdGNoZXMv Y2xhbmctMDA0LXBwYzY0LW11c2wtZWxmdjIucGF0Y2ggYi9zcmNwa2dzL2xsdm0xNC9wYXRjaGVz L2NsYW5nLTAwNC1wcGM2NC1tdXNsLWVsZnYyLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAwMC4uMjFmYzgwMDNjNWYxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtn cy9sbHZtMTQvcGF0Y2hlcy9jbGFuZy0wMDQtcHBjNjQtbXVzbC1lbGZ2Mi5wYXRjaApAQCAtMCww ICsxLDQ4IEBACistLS0gYS9jbGFuZy9saWIvQmFzaWMvVGFyZ2V0cy9QUEMuaAorKysrIGIvY2xh bmcvbGliL0Jhc2ljL1RhcmdldHMvUFBDLmgKK0BAIC00MTUsMTEgKzQxNSwxMCBAQCBwdWJsaWM6 CisgICAgICAgTG9uZ0RvdWJsZUZvcm1hdCA9ICZsbHZtOjpBUEZsb2F0OjpJRUVFZG91YmxlKCk7 CisgICAgIH0gZWxzZSBpZiAoKFRyaXBsZS5nZXRBcmNoKCkgPT0gbGx2bTo6VHJpcGxlOjpwcGM2 NGxlKSkgeworICAgICAgIERhdGFMYXlvdXQgPSAiZS1tOmUtaTY0OjY0LW4zMjo2NCI7CistICAg ICAgQUJJID0gImVsZnYyIjsKKyAgICAgfSBlbHNlIHsKKyAgICAgICBEYXRhTGF5b3V0ID0gIkUt bTplLWk2NDo2NC1uMzI6NjQiOworLSAgICAgIEFCSSA9ICJlbGZ2MSI7CisgICAgIH0KKysgICAg QUJJID0gImVsZnYyIjsKKyAKKyAgICAgaWYgKFRyaXBsZS5pc09TRnJlZUJTRCgpIHx8IFRyaXBs ZS5pc09TT3BlbkJTRCgpIHx8IFRyaXBsZS5pc011c2woKSkgeworICAgICAgIExvbmdEb3VibGVX aWR0aCA9IExvbmdEb3VibGVBbGlnbiA9IDY0OworLS0tIGEvY2xhbmcvbGliL0NvZGVHZW4vVGFy Z2V0SW5mby5jcHAKKysrKyBiL2NsYW5nL2xpYi9Db2RlR2VuL1RhcmdldEluZm8uY3BwCitAQCAt MTA5MjcsOSArMTA5MjcsOSBAQCBjb25zdCBUYXJnZXRDb2RlR2VuSW5mbyAmQ29kZUdlbk1vZHVs ZTo6Z2V0VGFyZ2V0Q29kZUdlbkluZm8oKSB7CisgICAgICAgcmV0dXJuIFNldENHSW5mbyhuZXcg QUlYVGFyZ2V0Q29kZUdlbkluZm8oVHlwZXMsIC8qSXM2NEJpdCovIHRydWUpKTsKKyAKKyAgICAg aWYgKFRyaXBsZS5pc09TQmluRm9ybWF0RUxGKCkpIHsKKy0gICAgICBQUEM2NF9TVlI0X0FCSUlu Zm86OkFCSUtpbmQgS2luZCA9IFBQQzY0X1NWUjRfQUJJSW5mbzo6RUxGdjE7CistICAgICAgaWYg KGdldFRhcmdldCgpLmdldEFCSSgpID09ICJlbGZ2MiIpCistICAgICAgICBLaW5kID0gUFBDNjRf U1ZSNF9BQklJbmZvOjpFTEZ2MjsKKysgICAgICBQUEM2NF9TVlI0X0FCSUluZm86OkFCSUtpbmQg S2luZCA9IFBQQzY0X1NWUjRfQUJJSW5mbzo6RUxGdjI7CisrICAgICAgaWYgKGdldFRhcmdldCgp LmdldEFCSSgpID09ICJlbGZ2MSIpCisrICAgICAgICBLaW5kID0gUFBDNjRfU1ZSNF9BQklJbmZv OjpFTEZ2MTsKKyAgICAgICBib29sIElzU29mdEZsb2F0ID0gQ29kZUdlbk9wdHMuRmxvYXRBQkkg PT0gInNvZnQiOworIAorICAgICAgIHJldHVybiBTZXRDR0luZm8oCistLS0gYS9jbGFuZy9saWIv RHJpdmVyL1Rvb2xDaGFpbnMvQ2xhbmcuY3BwCisrKysgYi9jbGFuZy9saWIvRHJpdmVyL1Rvb2xD aGFpbnMvQ2xhbmcuY3BwCitAQCAtMTkyMCwxNCArMTkyMCw3IEBAIHZvaWQgQ2xhbmc6OkFkZFBQ Q1RhcmdldEFyZ3MoY29uc3QgQXJnTGlzdCAmQXJncywKKyAgIGNvbnN0IGxsdm06OlRyaXBsZSAm VCA9IGdldFRvb2xDaGFpbigpLmdldFRyaXBsZSgpOworICAgaWYgKFQuaXNPU0JpbkZvcm1hdEVM RigpKSB7CisgICAgIHN3aXRjaCAoZ2V0VG9vbENoYWluKCkuZ2V0QXJjaCgpKSB7CistICAgIGNh c2UgbGx2bTo6VHJpcGxlOjpwcGM2NDogeworLSAgICAgIGlmICgoVC5pc09TRnJlZUJTRCgpICYm IFQuZ2V0T1NNYWpvclZlcnNpb24oKSA+PSAxMykgfHwKKy0gICAgICAgICAgVC5pc09TT3BlbkJT RCgpIHx8IFQuaXNNdXNsKCkpCistICAgICAgICBBQklOYW1lID0gImVsZnYyIjsKKy0gICAgICBl bHNlCistICAgICAgICBBQklOYW1lID0gImVsZnYxIjsKKy0gICAgICBicmVhazsKKy0gICAgfQor KyAgICBjYXNlIGxsdm06OlRyaXBsZTo6cHBjNjQ6CisgICAgIGNhc2UgbGx2bTo6VHJpcGxlOjpw cGM2NGxlOgorICAgICAgIEFCSU5hbWUgPSAiZWxmdjIiOworICAgICAgIGJyZWFrOwpkaWZmIC0t Z2l0IGEvc3JjcGtncy9sbHZtMTQvcGF0Y2hlcy9jb21waWxlci1ydC1zYW5pdGl6ZXItcHBjNjQt bXVzbC5wYXRjaCBiL3NyY3BrZ3MvbGx2bTE0L3BhdGNoZXMvY29tcGlsZXItcnQtc2FuaXRpemVy LXBwYzY0LW11c2wucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw Li40MTM1YmZkNDQ4NmEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xsdm0xNC9wYXRjaGVz L2NvbXBpbGVyLXJ0LXNhbml0aXplci1wcGM2NC1tdXNsLnBhdGNoCkBAIC0wLDAgKzEsMzUgQEAK Ky0tLSBhL2NvbXBpbGVyLXJ0L2xpYi9zYW5pdGl6ZXJfY29tbW9uL3Nhbml0aXplcl9saW51eC5j cHAKKysrKyBiL2NvbXBpbGVyLXJ0L2xpYi9zYW5pdGl6ZXJfY29tbW9uL3Nhbml0aXplcl9saW51 eC5jcHAKK0BAIC03NCw2ICs3NCwxMCBAQAorICNpbmNsdWRlIDxzeXMvdXRzbmFtZS5oPgorICNl bmRpZgorCisrI2lmIFNBTklUSVpFUl9MSU5VWCAmJiBkZWZpbmVkKF9fcG93ZXJwY19fKQorKyNp bmNsdWRlIDxhc20vcHRyYWNlLmg+CisrI2VuZGlmCisrCisgI2lmIFNBTklUSVpFUl9MSU5VWCAm JiAhU0FOSVRJWkVSX0FORFJPSUQKKyAjaW5jbHVkZSA8c3lzL3BlcnNvbmFsaXR5Lmg+CisgI2Vu ZGlmCistLS0gYS9jb21waWxlci1ydC9saWIvc2FuaXRpemVyX2NvbW1vbi9zYW5pdGl6ZXJfcGxh dGZvcm1fbGltaXRzX3Bvc2l4LmNwcAorKysrIGIvY29tcGlsZXItcnQvbGliL3Nhbml0aXplcl9j b21tb24vc2FuaXRpemVyX3BsYXRmb3JtX2xpbWl0c19wb3NpeC5jcHAKK0BAIC05Miw3ICs5Miw3 IEBACisgIyBpbmNsdWRlIDx1dGltZS5oPgorICMgaW5jbHVkZSA8c3lzL3B0cmFjZS5oPgorICMg ICAgaWYgZGVmaW5lZChfX21pcHM2NCkgfHwgZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgZGVmaW5l ZChfX2FybV9fKSB8fCBcCistICAgICAgICBkZWZpbmVkKF9faGV4YWdvbl9fKSB8fCBTQU5JVEla RVJfUklTQ1Y2NAorKyAgICAgICAgZGVmaW5lZChfX2hleGFnb25fXykgfHwgZGVmaW5lZChfX3Bv d2VycGNfXykgfHwgU0FOSVRJWkVSX1JJU0NWNjQKKyAjICAgICAgaW5jbHVkZSA8YXNtL3B0cmFj ZS5oPgorICMgICAgICBpZmRlZiBfX2FybV9fCisgdHlwZWRlZiBzdHJ1Y3QgdXNlcl9mcHJlZ3Mg ZWxmX2ZwcmVnc2V0X3Q7CistLS0gYS9jb21waWxlci1ydC9saWIvc2FuaXRpemVyX2NvbW1vbi9z YW5pdGl6ZXJfc3RvcHRoZXdvcmxkX2xpbnV4X2xpYmNkZXAuY3BwCisrKysgYi9jb21waWxlci1y dC9saWIvc2FuaXRpemVyX2NvbW1vbi9zYW5pdGl6ZXJfc3RvcHRoZXdvcmxkX2xpbnV4X2xpYmNk ZXAuY3BwCitAQCAtMzEsNyArMzEsNyBAQAorICNpbmNsdWRlIDxzeXMvdHlwZXMuaD4gLy8gZm9y IHBpZF90CisgI2luY2x1ZGUgPHN5cy91aW8uaD4gLy8gZm9yIGlvdmVjCisgI2luY2x1ZGUgPGVs Zi5oPiAvLyBmb3IgTlRfUFJTVEFUVVMKKy0jaWYgKGRlZmluZWQoX19hYXJjaDY0X18pIHx8IFNB TklUSVpFUl9SSVNDVjY0KSAmJiAhU0FOSVRJWkVSX0FORFJPSUQKKysjaWYgKGRlZmluZWQoX19h YXJjaDY0X18pIHx8IGRlZmluZWQoX19wb3dlcnBjX18pIHx8IFNBTklUSVpFUl9SSVNDVjY0KSAm JiAhU0FOSVRJWkVSX0FORFJPSUQKKyAvLyBHTElCQyAyLjIwKyBzeXMvdXNlciBkb2VzIG5vdCBp bmNsdWRlIGFzbS9wdHJhY2UuaAorICMgaW5jbHVkZSA8YXNtL3B0cmFjZS5oPgorICNlbmRpZgpk aWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtMTQvcGF0Y2hlcy9jb21waWxlci1ydC14cmF5LXBwYzY0 LW11c2wucGF0Y2ggYi9zcmNwa2dzL2xsdm0xNC9wYXRjaGVzL2NvbXBpbGVyLXJ0LXhyYXktcHBj NjQtbXVzbC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmQw YjYxYzgwYzg5NwotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbGx2bTE0L3BhdGNoZXMvY29t cGlsZXItcnQteHJheS1wcGM2NC1tdXNsLnBhdGNoCkBAIC0wLDAgKzEsNjIgQEAKKy0tLSBhL2Nv bXBpbGVyLXJ0L2xpYi94cmF5L3hyYXlfcG93ZXJwYzY0LmluYworKysrIGIvY29tcGlsZXItcnQv bGliL3hyYXkveHJheV9wb3dlcnBjNjQuaW5jCitAQCAtMTIsNyArMTIsMTMgQEAKKyAKKyAjaW5j bHVkZSA8Y3N0ZGludD4KKyAjaW5jbHVkZSA8bXV0ZXg+CisrI2lmZGVmIF9fR0xJQkNfXworICNp bmNsdWRlIDxzeXMvcGxhdGZvcm0vcHBjLmg+CisrI2Vsc2UKKysjaW5jbHVkZSA8Y2N0eXBlPgor KyNpbmNsdWRlIDxjc3RyaW5nPgorKyNpbmNsdWRlIDxjc3RkbGliPgorKyNlbmRpZgorIAorICNp bmNsdWRlICJ4cmF5X2RlZnMuaCIKKyAKK0BAIC0yMCwxMyArMjYsNDUgQEAgbmFtZXNwYWNlIF9f eHJheSB7CisgCisgQUxXQVlTX0lOTElORSB1aW50NjRfdCByZWFkVFNDKHVpbnQ4X3QgJkNQVSkg WFJBWV9ORVZFUl9JTlNUUlVNRU5UIHsKKyAgIENQVSA9IDA7CisrI2lmZGVmIF9fR0xJQkNfXwor ICAgcmV0dXJuIF9fcHBjX2dldF90aW1lYmFzZSgpOworKyNlbHNlCisrICByZXR1cm4gX19idWls dGluX3BwY19nZXRfdGltZWJhc2UoKTsKKysjZW5kaWYKKyB9CisgCisgaW5saW5lIHVpbnQ2NF90 IGdldFRTQ0ZyZXF1ZW5jeSgpIFhSQVlfTkVWRVJfSU5TVFJVTUVOVCB7CisgICBzdGF0aWMgc3Rk OjptdXRleCBNOworICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+IEd1YXJkKE0pOworKyNp ZmRlZiBfX0dMSUJDX18KKyAgIHJldHVybiBfX3BwY19nZXRfdGltZWJhc2VfZnJlcSgpOworKyNl bHNlCisrICAvKiBGSVhNRTogYSBsZXNzIGRpcnR5IGltcGxlbWVudGF0aW9uPyAqLworKyAgc3Rh dGljIHVpbnQ2NF90IGJhc2U7CisrICBpZiAoIWJhc2UpIHsKKysgICAgRklMRSAqZiA9IGZvcGVu KCIvcHJvYy9jcHVpbmZvIiwgInJiIik7CisrICAgIGlmIChmKSB7CisrICAgICAgc3NpemVfdCBu cjsKKysgICAgICAvKiB2aXJ0dWFsbHkgYWx3YXlzIGJpZyBlbm91Z2ggdG8gaG9sZCB0aGUgbGlu ZSAqLworKyAgICAgIGNoYXIgYnVmWzUxMl07CisrICAgICAgd2hpbGUgKGZnZXRzKGJ1Ziwgc2l6 ZW9mKGJ1ZiksIGYpKSB7CisrICAgICAgICBjaGFyICpyZXQgPSBzdHJzdHIoYnVmLCAidGltZWJh c2UiKTsKKysgICAgICAgIGlmICghcmV0KSB7CisrICAgICAgICAgIGNvbnRpbnVlOworKyAgICAg ICAgfQorKyAgICAgICAgcmV0ICs9IHNpemVvZigidGltZWJhc2UiKSAtIDE7CisrICAgICAgICBy ZXQgPSBzdHJjaHIocmV0LCAnOicpOworKyAgICAgICAgaWYgKCFyZXQpIHsKKysgICAgICAgICAg Y29udGludWU7CisrICAgICAgICB9CisrICAgICAgICBiYXNlID0gc3RydG91bChyZXQgKyAxLCBu dWxscHRyLCAxMCk7CisrICAgICAgICBicmVhazsKKysgICAgICB9CisrICAgICAgZmNsb3NlKGYp OworKyAgICB9CisrICB9CisrICByZXR1cm4gYmFzZTsKKysjZW5kaWYKKyB9CisgCisgaW5saW5l IGJvb2wgcHJvYmVSZXF1aXJlZENQVUZlYXR1cmVzKCkgWFJBWV9ORVZFUl9JTlNUUlVNRU5UIHsK ZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bTE0L3BhdGNoZXMvbGliY3h4LW11c2wucGF0Y2ggYi9z cmNwa2dzL2xsdm0xNC9wYXRjaGVzL2xpYmN4eC1tdXNsLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uYmJkMzFmZmMyY2IxCi0tLSAvZGV2L251bGwKKysrIGIv c3JjcGtncy9sbHZtMTQvcGF0Y2hlcy9saWJjeHgtbXVzbC5wYXRjaApAQCAtMCwwICsxLDI2IEBA CistLS0gYS9saWJjeHgvaW5jbHVkZS9sb2NhbGUKKysrKyBiL2xpYmN4eC9pbmNsdWRlL2xvY2Fs ZQorQEAgLTc0Miw3ICs3NDIsMTEgQEAgX19udW1fZ2V0X3NpZ25lZF9pbnRlZ3JhbChjb25zdCBj aGFyKiBfX2EsIGNvbnN0IGNoYXIqIF9fYV9lbmQsCisgICAgICAgICB0eXBlbmFtZSByZW1vdmVf cmVmZXJlbmNlPGRlY2x0eXBlKGVycm5vKT46OnR5cGUgX19zYXZlX2Vycm5vID0gZXJybm87Cisg ICAgICAgICBlcnJubyA9IDA7CisgICAgICAgICBjaGFyICpfX3AyOworKyNpZiBkZWZpbmVkKF9f bGludXhfXykgJiYgIWRlZmluZWQoX19HTElCQ19fKQorKyAgICAgICAgbG9uZyBsb25nIF9fbGwg PSBzdHJ0b2xsKF9fYSwgJl9fcDIsIF9fYmFzZSk7CisrI2Vsc2UKKyAgICAgICAgIGxvbmcgbG9u ZyBfX2xsID0gc3RydG9sbF9sKF9fYSwgJl9fcDIsIF9fYmFzZSwgX0xJQkNQUF9HRVRfQ19MT0NB TEUpOworKyNlbmRpZgorICAgICAgICAgdHlwZW5hbWUgcmVtb3ZlX3JlZmVyZW5jZTxkZWNsdHlw ZShlcnJubyk+Ojp0eXBlIF9fY3VycmVudF9lcnJubyA9IGVycm5vOworICAgICAgICAgaWYgKF9f Y3VycmVudF9lcnJubyA9PSAwKQorICAgICAgICAgICAgIGVycm5vID0gX19zYXZlX2Vycm5vOwor QEAgLTc4Miw3ICs3ODYsMTEgQEAgX19udW1fZ2V0X3Vuc2lnbmVkX2ludGVncmFsKGNvbnN0IGNo YXIqIF9fYSwgY29uc3QgY2hhciogX19hX2VuZCwKKyAgICAgICAgIHR5cGVuYW1lIHJlbW92ZV9y ZWZlcmVuY2U8ZGVjbHR5cGUoZXJybm8pPjo6dHlwZSBfX3NhdmVfZXJybm8gPSBlcnJubzsKKyAg ICAgICAgIGVycm5vID0gMDsKKyAgICAgICAgIGNoYXIgKl9fcDI7CisrI2lmIGRlZmluZWQoX19s aW51eF9fKSAmJiAhZGVmaW5lZChfX0dMSUJDX18pCisrICAgICAgICB1bnNpZ25lZCBsb25nIGxv bmcgX19sbCA9IHN0cnRvdWxsKF9fYSwgJl9fcDIsIF9fYmFzZSk7CisrI2Vsc2UKKyAgICAgICAg IHVuc2lnbmVkIGxvbmcgbG9uZyBfX2xsID0gc3RydG91bGxfbChfX2EsICZfX3AyLCBfX2Jhc2Us IF9MSUJDUFBfR0VUX0NfTE9DQUxFKTsKKysjZW5kaWYKKyAgICAgICAgIHR5cGVuYW1lIHJlbW92 ZV9yZWZlcmVuY2U8ZGVjbHR5cGUoZXJybm8pPjo6dHlwZSBfX2N1cnJlbnRfZXJybm8gPSBlcnJu bzsKKyAgICAgICAgIGlmIChfX2N1cnJlbnRfZXJybm8gPT0gMCkKKyAgICAgICAgICAgICBlcnJu byA9IF9fc2F2ZV9lcnJubzsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bTE0L3BhdGNoZXMvbGli Y3h4LXBwYy5wYXRjaCBiL3NyY3BrZ3MvbGx2bTE0L3BhdGNoZXMvbGliY3h4LXBwYy5wYXRjaApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjdhOTJmODAwNGUxYwotLS0g L2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbGx2bTE0L3BhdGNoZXMvbGliY3h4LXBwYy5wYXRjaApA QCAtMCwwICsxLDIyIEBACitUaGlzIGVuc3VyZXMgYGlzX2llYzU1OWAgaXMgZGVmaW5lZCBjb3Jy ZWN0bHkgdW5kZXIgYWxsIGxvbmcgZG91YmxlIEFCSXMsCitpbmNsdWRpbmcgbXVzbCBhbmQgaXRz IDY0LWJpdCBsb25nIGRvdWJsZS4gQWxzbywgYF9fcHBjX19gIG9yIGBfX3BwYzY0X19gCitpcyBu b3QgZGVmaW5lZCBvbiBnY2MuCisKKy0tLSBhL2xpYmN4eC9pbmNsdWRlL2xpbWl0cworKysrIGIv bGliY3h4L2luY2x1ZGUvbGltaXRzCitAQCAtNDI2LDggKzQyNiwxNCBAQCBwcm90ZWN0ZWQ6Cisg ICAgIF9MSUJDUFBfSU5MSU5FX1ZJU0lCSUxJVFkgc3RhdGljIF9MSUJDUFBfQ09OU1RFWFBSIHR5 cGUgc2lnbmFsaW5nX05hTigpIF9OT0VYQ0VQVCB7cmV0dXJuIF9fYnVpbHRpbl9uYW5zbCgiIik7 fQorICAgICBfTElCQ1BQX0lOTElORV9WSVNJQklMSVRZIHN0YXRpYyBfTElCQ1BQX0NPTlNURVhQ UiB0eXBlIGRlbm9ybV9taW4oKSBfTk9FWENFUFQge3JldHVybiBfX0xEQkxfREVOT1JNX01JTl9f O30KKyAKKy0jaWYgKGRlZmluZWQoX19wcGNfXykgfHwgZGVmaW5lZChfX3BwYzY0X18pKQorKyNp ZiBkZWZpbmVkKF9fcG93ZXJwY19fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisrI2lmIChf X0xEQkxfTUFYX0VYUF9fID4gX19EQkxfTUFYX0VYUF9fKSB8fCAoX19MREJMX01BTlRfRElHX18g PT0gX19EQkxfTUFOVF9ESUdfXykKKysgICAgLyogSUVFRSA3NTQgcXVhZHJ1cGxlIG9yIGRvdWJs ZSBwcmVjaXNpb24gKi8KKysgICAgc3RhdGljIF9MSUJDUFBfQ09OU1RFWFBSIGNvbnN0IGJvb2wg aXNfaWVjNTU5ID0gdHJ1ZTsKKysjZWxzZQorKyAgICAvKiAxMjgtYml0IElCTSBkb3VibGUtZG91 YmxlICovCisgICAgIHN0YXRpYyBfTElCQ1BQX0NPTlNURVhQUiBjb25zdCBib29sIGlzX2llYzU1 OSA9IGZhbHNlOworKyNlbmRpZgorICNlbHNlCisgICAgIHN0YXRpYyBfTElCQ1BQX0NPTlNURVhQ UiBjb25zdCBib29sIGlzX2llYzU1OSA9IHRydWU7CisgI2VuZGlmCmRpZmYgLS1naXQgYS9zcmNw a2dzL2xsdm0xNC9wYXRjaGVzL2xpYmN4eC1zc3Atbm9uc2hhcmVkLnBhdGNoIGIvc3JjcGtncy9s bHZtMTQvcGF0Y2hlcy9saWJjeHgtc3NwLW5vbnNoYXJlZC5wYXRjaApuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjcwMjkyYmViMmZjZAotLS0gL2Rldi9udWxsCisrKyBi L3NyY3BrZ3MvbGx2bTE0L3BhdGNoZXMvbGliY3h4LXNzcC1ub25zaGFyZWQucGF0Y2gKQEAgLTAs MCArMSwxMSBAQAorLS0tIGEvbGliY3h4L0NNYWtlTGlzdHMudHh0CisrKysgYi9saWJjeHgvQ01h a2VMaXN0cy50eHQKK0BAIC03NjksNiArNzY5LDggQEAgZnVuY3Rpb24oY3h4X2xpbmtfc3lzdGVt X2xpYnJhcmllcyB0YXJnZXQpCisgICAgIHRhcmdldF9saW5rX2xpYnJhcmllcygke3RhcmdldH0g UFJJVkFURSBhdG9taWMpCisgICBlbmRpZigpCisgCisrI3NzcCAgdGFyZ2V0X2xpbmtfbGlicmFy aWVzKCR7dGFyZ2V0fSBQUklWQVRFIHNzcF9ub25zaGFyZWQpCisrCisgICBpZiAoTUlOR1cpCisg ICAgIHRhcmdldF9saW5rX2xpYnJhcmllcygke3RhcmdldH0gUFJJVkFURSAiJHtNSU5HV19MSUJS QVJJRVN9IikKKyAgIGVuZGlmKCkKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bTE0L3BhdGNoZXMv bGliY3h4YWJpLWRsLnBhdGNoIGIvc3JjcGtncy9sbHZtMTQvcGF0Y2hlcy9saWJjeHhhYmktZGwu cGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4zYTE1ZjlkYjhj OTgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xsdm0xNC9wYXRjaGVzL2xpYmN4eGFiaS1k bC5wYXRjaApAQCAtMCwwICsxLDI1IEBACitBbHNvIGxpbmsgdG8gLWxkbCB0byBwcmV2ZW50IHVu ZGVmaW5lZCByZWZlcmVuY2VzLgorCistLS0gYS9saWJjeHhhYmkvc3JjL0NNYWtlTGlzdHMudHh0 CisrKysgYi9saWJjeHhhYmkvc3JjL0NNYWtlTGlzdHMudHh0CitAQCAtNzMsNiArNzMsNyBAQAor ICAgZW5kaWYoKQorIAorICAgYWRkX2xpYnJhcnlfZmxhZ3NfaWYoTElCQ1hYQUJJX0hBU19DX0xJ QiBjKQorKyAgYWRkX2xpYnJhcnlfZmxhZ3NfaWYoTElCQ1hYQUJJX0hBU19DX0xJQiBkbCkKKyBl bmRpZigpCisgCisgaWYgKExJQkNYWEFCSV9VU0VfTExWTV9VTldJTkRFUikKKy0tLSBhL2xpYmN4 eC9DTWFrZUxpc3RzLnR4dAorKysrIGIvbGliY3h4L0NNYWtlTGlzdHMudHh0CitAQCAtNzQ1LDYg Kzc0NSwxMCBAQAorICAgICB0YXJnZXRfbGlua19saWJyYXJpZXMoJHt0YXJnZXR9IFBSSVZBVEUg bSkKKyAgIGVuZGlmKCkKKyAKKysgIGlmIChMSUJDWFhfSEFTX0NfTElCKQorKyAgICB0YXJnZXRf bGlua19saWJyYXJpZXMoJHt0YXJnZXR9IFBSSVZBVEUgZGwpCisrICBlbmRpZigpCisrCisgICBp ZiAoTElCQ1hYX0hBU19SVF9MSUIpCisgICAgIHRhcmdldF9saW5rX2xpYnJhcmllcygke3Rhcmdl dH0gUFJJVkFURSBydCkKKyAgIGVuZGlmKCkKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bTE0L3Bh dGNoZXMvbGxkYi1tdXNsLnBhdGNoIGIvc3JjcGtncy9sbHZtMTQvcGF0Y2hlcy9sbGRiLW11c2wu cGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi42MDFjMGQxMzg1 MjMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xsdm0xNC9wYXRjaGVzL2xsZGItbXVzbC5w YXRjaApAQCAtMCwwICsxLDMxIEBACistLS0gYS9sbGRiL3NvdXJjZS9QbHVnaW5zL1Byb2Nlc3Mv TGludXgvUHJvY2ZzLmgKKysrKyBiL2xsZGIvc291cmNlL1BsdWdpbnMvUHJvY2Vzcy9MaW51eC9Q cm9jZnMuaAorQEAgLTEwLDIxICsxMCwxMiBAQAorIC8vIHN5cy9wcm9jZnMuaCBvbiBBbmRyb2lk L0xpbnV4IGZvciBhbGwgc3VwcG9ydGVkIGFyY2hpdGVjdHVyZXMuCisgCisgI2luY2x1ZGUgPHN5 cy9wdHJhY2UuaD4KKysjaW5jbHVkZSA8YXNtL3B0cmFjZS5oPgorIAorLSNpZmRlZiBfX0FORFJP SURfXworLSNpZiBkZWZpbmVkKF9fYXJtNjRfXykgfHwgZGVmaW5lZChfX2FhcmNoNjRfXykKKy10 eXBlZGVmIHVuc2lnbmVkIGxvbmcgZWxmX2dyZWdfdDsKKy10eXBlZGVmIGVsZl9ncmVnX3QKKy0g ICAgZWxmX2dyZWdzZXRfdFsoc2l6ZW9mKHN0cnVjdCB1c2VyX3B0X3JlZ3MpIC8gc2l6ZW9mKGVs Zl9ncmVnX3QpKV07CistdHlwZWRlZiBzdHJ1Y3QgdXNlcl9mcHNpbWRfc3RhdGUgZWxmX2ZwcmVn c2V0X3Q7CistI2lmbmRlZiBOVF9GUFJFR1NFVAorLSNkZWZpbmUgTlRfRlBSRUdTRVQgTlRfUFJG UFJFRworLSNlbmRpZiAvLyBOVF9GUFJFR1NFVAorLSNlbGlmIGRlZmluZWQoX19taXBzX18pCist I2lmbmRlZiBOVF9GUFJFR1NFVAorLSNkZWZpbmUgTlRfRlBSRUdTRVQgTlRfUFJGUFJFRworLSNl bmRpZiAvLyBOVF9GUFJFR1NFVAorLSNlbmRpZgorLSNlbHNlIC8vIF9fQU5EUk9JRF9fCisrI2lm ICFkZWZpbmVkKF9fR0xJQkNfXykgJiYgZGVmaW5lZChfX3Bvd2VycGNfXykKKysjZGVmaW5lIHB0 X3JlZ3MgbXVzbF9wdF9yZWdzCisrI2luY2x1ZGUgPHN5cy9wcm9jZnMuaD4KKysjdW5kZWYgcHRf cmVncworKyNlbHNlCisgI2luY2x1ZGUgPHN5cy9wcm9jZnMuaD4KKy0jZW5kaWYgLy8gX19BTkRS T0lEX18KKysjZW5kaWYKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bTE0L3BhdGNoZXMvbGx2bS0w MDEtbXVzbC5wYXRjaCBiL3NyY3BrZ3MvbGx2bTE0L3BhdGNoZXMvbGx2bS0wMDEtbXVzbC5wYXRj aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmYyYTNmOGQ2MjgxMwot LS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbGx2bTE0L3BhdGNoZXMvbGx2bS0wMDEtbXVzbC5w YXRjaApAQCAtMCwwICsxLDU3IEBACitGcm9tIGZhY2EzZmJkMTVkMGMzMTA4NDkzYzNjNTRjZDkz MTM4ZTA0OWFjNDMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBBbmRyZWEgQnJhbmNh bGVvbmkgPG1pd2F4ZUBnbWFpbC5jb20+CitEYXRlOiBUdWUsIDggU2VwIDIwMTUgMjI6MDM6MDIg KzAyMDAKK1N1YmplY3Q6IFtQQVRDSCAzLzNdIG11c2wKKworLS0tCisgaW5jbHVkZS9sbHZtL0Fu YWx5c2lzL1RhcmdldExpYnJhcnlJbmZvLmggfCA5ICsrKysrKysrKworIGxpYi9TdXBwb3J0L0R5 bmFtaWNMaWJyYXJ5LmNwcCAgICAgICAgICAgIHwgMiArLQorIGxpYi9TdXBwb3J0L1VuaXgvU2ln bmFscy5pbmMgICAgICAgICAgICAgIHwgNiArKystLS0KKyB1dGlscy91bml0dGVzdC9nb29nbGV0 ZXN0L3NyYy9ndGVzdC5jYyAgICB8IDEgKworIDUgZmlsZXMgY2hhbmdlZCwgMTcgaW5zZXJ0aW9u cygrKSwgNiBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGx2bS9BbmFseXNp cy9UYXJnZXRMaWJyYXJ5SW5mby5oIGIvaW5jbHVkZS9sbHZtL0FuYWx5c2lzL1RhcmdldExpYnJh cnlJbmZvLmgKK2luZGV4IDM0YThhMWUzLi4xMjE0ZWNlNSAxMDA2NDQKKy0tLSBhL2xsdm0vaW5j bHVkZS9sbHZtL0FuYWx5c2lzL1RhcmdldExpYnJhcnlJbmZvLmgKKysrKyBiL2xsdm0vaW5jbHVk ZS9sbHZtL0FuYWx5c2lzL1RhcmdldExpYnJhcnlJbmZvLmgKK0BAIC0xOCw2ICsxOCwxNSBAQAor ICNpbmNsdWRlICJsbHZtL0lSL1Bhc3NNYW5hZ2VyLmgiCisgI2luY2x1ZGUgImxsdm0vUGFzcy5o IgorIAorKyN1bmRlZiBmb3BlbjY0CisrI3VuZGVmIGZzZWVrbzY0CisrI3VuZGVmIGZzdGF0NjQK KysjdW5kZWYgZnN0YXR2ZnM2NAorKyN1bmRlZiBmdGVsbG82NAorKyN1bmRlZiBsc3RhdDY0Cisr I3VuZGVmIHN0YXQ2NAorKyN1bmRlZiB0bXBmaWxlNjQKKysKKyBuYW1lc3BhY2UgbGx2bSB7Cisg dGVtcGxhdGUgPHR5cGVuYW1lIFQ+IGNsYXNzIEFycmF5UmVmOworIGNsYXNzIFRyaXBsZTsKK2Rp ZmYgLS1naXQgYS9saWIvU3VwcG9ydC9Vbml4L0R5bmFtaWNMaWJyYXJ5LmluYyBiL2xpYi9TdXBw b3J0L1VuaXgvRHluYW1pY0xpYnJhcnkuaW5jCitpbmRleCBhMmEzNzk5Ni4uMmY4NmM0NzAgMTAw NjQ0CistLS0gYS9sbHZtL2xpYi9TdXBwb3J0L1VuaXgvRHluYW1pY0xpYnJhcnkuaW5jCisrKysg Yi9sbHZtL2xpYi9TdXBwb3J0L1VuaXgvRHluYW1pY0xpYnJhcnkuaW5jCitAQCAtMTAyLDcgKzEw Miw3IEBAIHN0YXRpYyB2b2lkICpEb1NlYXJjaChjb25zdCBjaGFyKiBTeW1ib2xOYW1lKSB7Cisg CisgLy8gVGhpcyBtYWNybyByZXR1cm5zIHRoZSBhZGRyZXNzIG9mIGEgd2VsbC1rbm93biwgZXhw bGljaXQgc3ltYm9sCisgI2RlZmluZSBFWFBMSUNJVF9TWU1CT0woU1lNKSBcCistICAgaWYgKCFz dHJjbXAoU3ltYm9sTmFtZSwgI1NZTSkpIHJldHVybiAmU1lNCisrICAgaWYgKCFzdHJjbXAoU3lt Ym9sTmFtZSwgI1NZTSkpIHJldHVybiAodm9pZCAqKSZTWU0KKyAKKyAvLyBVbmRlciBnbGliYyB3 ZSBoYXZlIGEgd2VpcmQgc2l0dWF0aW9uLiBUaGUgc3RkZXJyL291dC9pbiBzeW1ib2xzIGFyZSBi b3RoCisgLy8gbWFjcm9zIGFuZCBnbG9iYWwgdmFyaWFibGVzIGJlY2F1c2Ugb2Ygc3RhbmRhcmRz IHJlcXVpcmVtZW50cy4gU28sIHdlCitkaWZmIC0tZ2l0IGEvdXRpbHMvdW5pdHRlc3QvZ29vZ2xl dGVzdC9zcmMvZ3Rlc3QuY2MgYi91dGlscy91bml0dGVzdC9nb29nbGV0ZXN0L3NyYy9ndGVzdC5j YworaW5kZXggZDg4MmFiMmUuLmYxZmIxMmQwIDEwMDY0NAorLS0tIGEvbGx2bS91dGlscy91bml0 dGVzdC9nb29nbGV0ZXN0L3NyYy9ndGVzdC5jYworKysrIGIvbGx2bS91dGlscy91bml0dGVzdC9n b29nbGV0ZXN0L3NyYy9ndGVzdC5jYworQEAgLTEyOCw2ICsxMjgsNyBAQAorIAorICNpZiBHVEVT VF9DQU5fU1RSRUFNX1JFU1VMVFNfCisgIyBpbmNsdWRlIDxhcnBhL2luZXQuaD4gIC8vIE5PTElO VAorKyMgaW5jbHVkZSA8c3lzL3NvY2tldC5oPiAgLy8gTk9MSU5UCisgIyBpbmNsdWRlIDxuZXRk Yi5oPiAgLy8gTk9MSU5UCisgIyBpbmNsdWRlIDxzeXMvc29ja2V0Lmg+ICAvLyBOT0xJTlQKKyAj IGluY2x1ZGUgPHN5cy90eXBlcy5oPiAgLy8gTk9MSU5UCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xs dm0xNC9wYXRjaGVzL2xsdm0tMDAyLW11c2wtcHBjNjQtZWxmdjIucGF0Y2ggYi9zcmNwa2dzL2xs dm0xNC9wYXRjaGVzL2xsdm0tMDAyLW11c2wtcHBjNjQtZWxmdjIucGF0Y2gKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4wMDcxZDk2NGJkMzcKLS0tIC9kZXYvbnVsbAor KysgYi9zcmNwa2dzL2xsdm0xNC9wYXRjaGVzL2xsdm0tMDAyLW11c2wtcHBjNjQtZWxmdjIucGF0 Y2gKQEAgLTAsMCArMSwzMCBAQAorVGhpcyBwYXRjaGVzIExMVk0gdG8gdXNlIEVMRnYyIG9uIHBw YzY0IHVuY29uZGl0aW9uYWxseSB1bmxlc3Mgb3ZlcnJpZGRlbi4gV2UKK25lZWQgdGhpcyBiZWNh dXNlIHVubGlrZSBtb3N0IGRpc3Ryb3Mgd2UgdXNlIEVMRnYyIGZvciBib3RoIGdsaWJjIGFuZCBt dXNsCitvbiBiaWcgZW5kaWFuIHBwYzY0LgorCitkaWZmIC0tZ2l0IGEvbGliL1RhcmdldC9Qb3dl clBDL1BQQ1RhcmdldE1hY2hpbmUuY3BwIGIvbGliL1RhcmdldC9Qb3dlclBDL1BQQ1RhcmdldE1h Y2hpbmUuY3BwCitpbmRleCAwNjM0ODMzZS4uYjdjYmMyZTcgMTAwNjQ0CistLS0gYS9sbHZtL2xp Yi9UYXJnZXQvUG93ZXJQQy9QUENUYXJnZXRNYWNoaW5lLmNwcAorKysrIGIvbGx2bS9saWIvVGFy Z2V0L1Bvd2VyUEMvUFBDVGFyZ2V0TWFjaGluZS5jcHAKK0BAIC0yMjIsOSArMjIyLDggQEAgc3Rh dGljIFBQQ1RhcmdldE1hY2hpbmU6OlBQQ0FCSSBjb21wdXRlVGFyZ2V0QUJJKGNvbnN0IFRyaXBs ZSAmVFQsCisgCisgICBzd2l0Y2ggKFRULmdldEFyY2goKSkgeworICAgY2FzZSBUcmlwbGU6OnBw YzY0bGU6CistICAgIHJldHVybiBQUENUYXJnZXRNYWNoaW5lOjpQUENfQUJJX0VMRnYyOworICAg Y2FzZSBUcmlwbGU6OnBwYzY0OgorLSAgICByZXR1cm4gUFBDVGFyZ2V0TWFjaGluZTo6UFBDX0FC SV9FTEZ2MTsKKysgICAgcmV0dXJuIFBQQ1RhcmdldE1hY2hpbmU6OlBQQ19BQklfRUxGdjI7Cisg ICBkZWZhdWx0OgorICAgICByZXR1cm4gUFBDVGFyZ2V0TWFjaGluZTo6UFBDX0FCSV9VTktOT1dO OworICAgfQorZGlmZiAtLWdpdCBhL3Rlc3QvQ29kZUdlbi9Qb3dlclBDL3BwYzY0LWVsZi1hYmku bGwgYi90ZXN0L0NvZGVHZW4vUG93ZXJQQy9wcGM2NC1lbGYtYWJpLmxsCitpbmRleCA4YjFjZjZi NS4uMjk2YTJhZmEgMTAwNjQ0CistLS0gYS9sbHZtL3Rlc3QvQ29kZUdlbi9Qb3dlclBDL3BwYzY0 LWVsZi1hYmkubGwKKysrKyBiL2xsdm0vdGVzdC9Db2RlR2VuL1Bvd2VyUEMvcHBjNjQtZWxmLWFi aS5sbAorQEAgLTEsNCArMSw1IEBACistOyBSVU46IGxsYyAtdmVyaWZ5LW1hY2hpbmVpbnN0cnMg LW10cmlwbGU9cG93ZXJwYzY0LXVua25vd24tbGludXgtZ251IDwgJXMgfCBGaWxlQ2hlY2sgJXMg LWNoZWNrLXByZWZpeD1DSEVDSy1FTEZ2MQorKzsgUlVOOiBsbGMgLXZlcmlmeS1tYWNoaW5laW5z dHJzIC1tdHJpcGxlPXBvd2VycGM2NC11bmtub3duLWxpbnV4LWdudSA8ICVzIHwgRmlsZUNoZWNr ICVzIC1jaGVjay1wcmVmaXg9Q0hFQ0stRUxGdjIKKys7IFJVTjogbGxjIC12ZXJpZnktbWFjaGlu ZWluc3RycyAtbXRyaXBsZT1wb3dlcnBjNjQtdW5rbm93bi1saW51eC1tdXNsIDwgJXMgfCBGaWxl Q2hlY2sgJXMgLWNoZWNrLXByZWZpeD1DSEVDSy1FTEZ2MgorIDsgUlVOOiBsbGMgLXZlcmlmeS1t YWNoaW5laW5zdHJzIC1tdHJpcGxlPXBvd2VycGM2NC11bmtub3duLWxpbnV4LWdudSAtdGFyZ2V0 LWFiaSBlbGZ2MSA8ICVzIHwgRmlsZUNoZWNrICVzIC1jaGVjay1wcmVmaXg9Q0hFQ0stRUxGdjEK KyA7IFJVTjogbGxjIC12ZXJpZnktbWFjaGluZWluc3RycyAtbXRyaXBsZT1wb3dlcnBjNjQtdW5r bm93bi1saW51eC1nbnUgLXRhcmdldC1hYmkgZWxmdjIgPCAlcyB8IEZpbGVDaGVjayAlcyAtY2hl Y2stcHJlZml4PUNIRUNLLUVMRnYyCisgOyBSVU46IGxsYyAtdmVyaWZ5LW1hY2hpbmVpbnN0cnMg LW10cmlwbGU9cG93ZXJwYzY0bGUtdW5rbm93bi1saW51eC1nbnUgPCAlcyB8IEZpbGVDaGVjayAl cyAtY2hlY2stcHJlZml4PUNIRUNLLUVMRnYyCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0xNC9w YXRjaGVzL2xsdm0tMDAzLXBwYy1zZWN1cmVwbHQucGF0Y2ggYi9zcmNwa2dzL2xsdm0xNC9wYXRj aGVzL2xsdm0tMDAzLXBwYy1zZWN1cmVwbHQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMDAwMDAwLi5iNWQxNTk3NDM3NWQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dz L2xsdm0xNC9wYXRjaGVzL2xsdm0tMDAzLXBwYy1zZWN1cmVwbHQucGF0Y2gKQEAgLTAsMCArMSwx MSBAQAorLS0tIGEvbGx2bS9saWIvVGFyZ2V0L1Bvd2VyUEMvUFBDU3VidGFyZ2V0LmNwcAorKysr IGIvbGx2bS9saWIvVGFyZ2V0L1Bvd2VyUEMvUFBDU3VidGFyZ2V0LmNwcAorQEAgLTE2NSw3ICsx NjUsNyBAQCB2b2lkIFBQQ1N1YnRhcmdldDo6aW5pdFN1YnRhcmdldEZlYXR1cmVzKFN0cmluZ1Jl ZiBDUFUsIFN0cmluZ1JlZiBGUykgeworIAorICAgaWYgKChUYXJnZXRUcmlwbGUuaXNPU0ZyZWVC U0QoKSAmJiBUYXJnZXRUcmlwbGUuZ2V0T1NNYWpvclZlcnNpb24oKSA+PSAxMykgfHwKKyAgICAg ICBUYXJnZXRUcmlwbGUuaXNPU05ldEJTRCgpIHx8IFRhcmdldFRyaXBsZS5pc09TT3BlbkJTRCgp IHx8CistICAgICAgVGFyZ2V0VHJpcGxlLmlzTXVzbCgpKQorKyAgICAgIGlzVGFyZ2V0TGludXgo KSkKKyAgICAgU2VjdXJlUGx0ID0gdHJ1ZTsKKyAKKyAgIGlmIChIYXNTUEUgJiYgSXNQUEM2NCkK ZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bTE0L3BhdGNoZXMvbGx2bS0wMDQtb3ZlcnJpZGUtb3B0 LnBhdGNoIGIvc3JjcGtncy9sbHZtMTQvcGF0Y2hlcy9sbHZtLTAwNC1vdmVycmlkZS1vcHQucGF0 Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi41MWQwZTRiMzFiMzIK LS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xsdm0xNC9wYXRjaGVzL2xsdm0tMDA0LW92ZXJy aWRlLW9wdC5wYXRjaApAQCAtMCwwICsxLDE4IEBACitUaGlzIGFsbG93cyB1cyB0byBvdmVycmlk ZSB0aGUgb3B0aW1pemF0aW9uIGxldmVsIGFzIG5vdCBhbGwgcGxhdGZvcm1zIGNhbgorZGVhbCB3 aXRoIC1PMy4KKworLS0tIGEvbGx2bS9DTWFrZUxpc3RzLnR4dAorKysrIGIvbGx2bS9DTWFrZUxp c3RzLnR4dAorQEAgLTkxOCw2ICs5MTgsMTIgQEAgaWYoIE1JTkdXIEFORCBOT1QgIiR7Q01BS0Vf Q1hYX0NPTVBJTEVSX0lEfSIgTUFUQ0hFUyAiQ2xhbmciICkKKyAgIGxsdm1fcmVwbGFjZV9jb21w aWxlcl9vcHRpb24oQ01BS0VfQ1hYX0ZMQUdTX1JFTEVBU0UgIi1PMyIgIi1PMiIpCisgZW5kaWYo KQorIAorK3NldChWT0lEX0NYWF9PUFRfRkxBR1MgIiIgQ0FDSEUgU1RSSU5HICJPcHRpbWl6YXRp b24gbGV2ZWwgdG8gdXNlIikKKysKKytpZiAoTk9UIFZPSURfQ1hYX09QVF9GTEFHUyBTVFJFUVVB TCAiIikKKysgICAgbGx2bV9yZXBsYWNlX2NvbXBpbGVyX29wdGlvbihDTUFLRV9DWFhfRkxBR1Nf UkVMRUFTRSAiLU8zIiAiJHtWT0lEX0NYWF9PUFRfRkxBR1N9IikKKytlbmRpZigpCisrCisgIyBQ dXQgdGhpcyBiZWZvcmUgdGJsZ2VuLiBFbHNlIHdlIGhhdmUgYSBjaXJjdWxhciBkZXBlbmRlbmNl LgorIGFkZF9zdWJkaXJlY3RvcnkobGliL0RlbWFuZ2xlKQorIGFkZF9zdWJkaXJlY3RvcnkobGli L1N1cHBvcnQpCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0xNC9wYXRjaGVzL2xsdm0tMDA1LXBw Yy1iaWdwaWMucGF0Y2ggYi9zcmNwa2dzL2xsdm0xNC9wYXRjaGVzL2xsdm0tMDA1LXBwYy1iaWdw aWMucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5kMzMyNjg3 YjlkOTIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xsdm0xNC9wYXRjaGVzL2xsdm0tMDA1 LXBwYy1iaWdwaWMucGF0Y2gKQEAgLTAsMCArMSwzNiBAQAorRnJvbSBmM2RiZGQ0OWMwNmJmYWZj MWQ2MTM4MDk0Y2Y0Mjg4OWMxNGQzOGI2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTog U2FtdWVsIEhvbGxhbmQgPHNhbXVlbEBzaG9sbGFuZC5vcmc+CitEYXRlOiBTdW4sIDMgTm92IDIw MTkgMTA6NTc6MjcgLTA2MDAKK1N1YmplY3Q6IFtQQVRDSF0gW0xMVk1dW1Bvd2VyUENdIEFzc3Vt ZSBCaWdQSUMgaWYgbm8gUElDIGxldmVsIGlzIHNwZWNpZmllZAorCistLS0KKyBsbHZtL2xpYi9U YXJnZXQvUG93ZXJQQy9QUENBc21QcmludGVyLmNwcCAgfCAyICstCisgbGx2bS9saWIvVGFyZ2V0 L1Bvd2VyUEMvUFBDTUNJbnN0TG93ZXIuY3BwIHwgMiArLQorIDIgZmlsZXMgY2hhbmdlZCwgMiBp bnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvbGliL1RhcmdldC9Q b3dlclBDL1BQQ0FzbVByaW50ZXIuY3BwIGIvbGliL1RhcmdldC9Qb3dlclBDL1BQQ0FzbVByaW50 ZXIuY3BwCitpbmRleCBjY2UyMWYzMi4uODdjYTVmOWIgMTAwNjQ0CistLS0gYS9sbHZtL2xpYi9U YXJnZXQvUG93ZXJQQy9QUENBc21QcmludGVyLmNwcAorKysrIGIvbGx2bS9saWIvVGFyZ2V0L1Bv d2VyUEMvUFBDQXNtUHJpbnRlci5jcHAKK0BAIC01MjAsNyArNTIwLDcgQEAgdm9pZCBQUENBc21Q cmludGVyOjpFbWl0VGxzQ2FsbChjb25zdCBNYWNoaW5lSW5zdHIgKk1JLAorIAorICAgLy8gQWRk IDMyNzY4IG9mZnNldCB0byB0aGUgc3ltYm9sIHNvIHdlIGZvbGxvdyB1cCB0aGUgbGF0ZXN0IEdP VC9QTFQgQUJJLgorICAgaWYgKEtpbmQgPT0gTUNTeW1ib2xSZWZFeHByOjpWS19QTFQgJiYgU3Vi dGFyZ2V0LT5pc1NlY3VyZVBsdCgpICYmCistICAgICAgTS0+Z2V0UElDTGV2ZWwoKSA9PSBQSUNM ZXZlbDo6QmlnUElDKQorKyAgICAgIE0tPmdldFBJQ0xldmVsKCkgIT0gUElDTGV2ZWw6OlNtYWxs UElDKQorICAgICBUbHNSZWYgPSBNQ0JpbmFyeUV4cHI6OmNyZWF0ZUFkZCgKKyAgICAgICAgIFRs c1JlZiwgTUNDb25zdGFudEV4cHI6OmNyZWF0ZSgzMjc2OCwgT3V0Q29udGV4dCksIE91dENvbnRl eHQpOworICAgY29uc3QgTWFjaGluZU9wZXJhbmQgJk1PID0gTUktPmdldE9wZXJhbmQoMik7Citk aWZmIC0tZ2l0IGEvbGliL1RhcmdldC9Qb3dlclBDL1BQQ01DSW5zdExvd2VyLmNwcCBiL2xpYi9U YXJnZXQvUG93ZXJQQy9QUENNQ0luc3RMb3dlci5jcHAKK2luZGV4IDVjYzE4MGQ3Li5hNWIwMjU2 NSAxMDA2NDQKKy0tLSBhL2xsdm0vbGliL1RhcmdldC9Qb3dlclBDL1BQQ01DSW5zdExvd2VyLmNw cAorKysrIGIvbGx2bS9saWIvVGFyZ2V0L1Bvd2VyUEMvUFBDTUNJbnN0TG93ZXIuY3BwCitAQCAt MTE3LDcgKzExNyw3IEBAIHN0YXRpYyBNQ09wZXJhbmQgR2V0U3ltYm9sUmVmKGNvbnN0IE1hY2hp bmVPcGVyYW5kICZNTywgY29uc3QgTUNTeW1ib2wgKlN5bWJvbCwKKyAgIGNvbnN0IE1DRXhwciAq RXhwciA9IE1DU3ltYm9sUmVmRXhwcjo6Y3JlYXRlKFN5bWJvbCwgUmVmS2luZCwgQ3R4KTsKKyAg IC8vIElmIC1tc2VjdXJlLXBsdCAtZlBJQywgYWRkIDMyNzY4IHRvIHN5bWJvbC4KKyAgIGlmIChT dWJ0YXJnZXQtPmlzU2VjdXJlUGx0KCkgJiYgVE0uaXNQb3NpdGlvbkluZGVwZW5kZW50KCkgJiYK Ky0gICAgICBNLT5nZXRQSUNMZXZlbCgpID09IFBJQ0xldmVsOjpCaWdQSUMgJiYKKysgICAgICBN LT5nZXRQSUNMZXZlbCgpICE9IFBJQ0xldmVsOjpTbWFsbFBJQyAmJgorICAgICAgIE1PLmdldFRh cmdldEZsYWdzKCkgPT0gUFBDSUk6Ok1PX1BMVCkKKyAgICAgRXhwciA9CisgICAgICAgICBNQ0Jp bmFyeUV4cHI6OmNyZWF0ZUFkZChFeHByLCBNQ0NvbnN0YW50RXhwcjo6Y3JlYXRlKDMyNzY4LCBD dHgpLCBDdHgpOwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtMTQvcGF0Y2hlcy9sbHZtLTAwNi1h YXJjaDY0LW1mX2V4ZWMucGF0Y2ggYi9zcmNwa2dzL2xsdm0xNC9wYXRjaGVzL2xsdm0tMDA2LWFh cmNoNjQtbWZfZXhlYy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw MDAuLmEwMGFiZDIxNjY2NQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbGx2bTE0L3BhdGNo ZXMvbGx2bS0wMDYtYWFyY2g2NC1tZl9leGVjLnBhdGNoCkBAIC0wLDAgKzEsMjUgQEAKK0ZpeCBm YWlsdXJlcyBpbiBBbGxvY2F0aW9uVGVzdHMvTWFwcGVkTWVtb3J5VGVzdC4qIG9uIGFhcmNoNjQ6 CisKKyAgICBGYWlsaW5nIFRlc3RzICg4KToKKyAgICAgICAgTExWTS1Vbml0IDo6IFN1cHBvcnQv Li9TdXBwb3J0VGVzdHMvQWxsb2NhdGlvblRlc3RzL01hcHBlZE1lbW9yeVRlc3QuQWxsb2NBbmRS ZWxlYXNlLzMKKyAgICAgICAgTExWTS1Vbml0IDo6IFN1cHBvcnQvLi9TdXBwb3J0VGVzdHMvQWxs b2NhdGlvblRlc3RzL01hcHBlZE1lbW9yeVRlc3QuRHVwbGljYXRlTmVhci8zCisgICAgICAgIExM Vk0tVW5pdCA6OiBTdXBwb3J0Ly4vU3VwcG9ydFRlc3RzL0FsbG9jYXRpb25UZXN0cy9NYXBwZWRN ZW1vcnlUZXN0LkVuYWJsZWRXcml0ZS8zCisgICAgICAgIExMVk0tVW5pdCA6OiBTdXBwb3J0Ly4v U3VwcG9ydFRlc3RzL0FsbG9jYXRpb25UZXN0cy9NYXBwZWRNZW1vcnlUZXN0Lk11bHRpcGxlQWxs b2NBbmRSZWxlYXNlLzMKKyAgICAgICAgTExWTS1Vbml0IDo6IFN1cHBvcnQvLi9TdXBwb3J0VGVz dHMvQWxsb2NhdGlvblRlc3RzL01hcHBlZE1lbW9yeVRlc3QuU3VjY2Vzc2l2ZU5lYXIvMworICAg ICAgICBMTFZNLVVuaXQgOjogU3VwcG9ydC8uL1N1cHBvcnRUZXN0cy9BbGxvY2F0aW9uVGVzdHMv TWFwcGVkTWVtb3J5VGVzdC5VbmFsaWduZWROZWFyLzMKKyAgICAgICAgTExWTS1Vbml0IDo6IFN1 cHBvcnQvLi9TdXBwb3J0VGVzdHMvQWxsb2NhdGlvblRlc3RzL01hcHBlZE1lbW9yeVRlc3QuWmVy b05lYXIvMworICAgICAgICBMTFZNLVVuaXQgOjogU3VwcG9ydC8uL1N1cHBvcnRUZXN0cy9BbGxv Y2F0aW9uVGVzdHMvTWFwcGVkTWVtb3J5VGVzdC5aZXJvU2l6ZU5lYXIvMworCitVcHN0cmVhbS1J c3N1ZTogaHR0cHM6Ly9idWdzLmxsdm0ub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDI3OCNjMTAKKwor LS0tIGEvbGx2bS9saWIvU3VwcG9ydC9Vbml4L01lbW9yeS5pbmMKKysrKyBiL2xsdm0vbGliL1N1 cHBvcnQvVW5peC9NZW1vcnkuaW5jCitAQCAtNTgsNyArNTgsNyBAQCBzdGF0aWMgaW50IGdldFBv c2l4UHJvdGVjdGlvbkZsYWdzKHVuc2lnbmVkIEZsYWdzKSB7CisgICAgIHJldHVybiBQUk9UX1JF QUQgfCBQUk9UX1dSSVRFIHwgUFJPVF9FWEVDOworICAgY2FzZSBsbHZtOjpzeXM6Ok1lbW9yeTo6 TUZfRVhFQzoKKyAjaWYgKGRlZmluZWQoX19GcmVlQlNEX18pIHx8IGRlZmluZWQoX19QT1dFUlBD X18pIHx8IGRlZmluZWQgKF9fcHBjX18pIHx8IFwKKy0gICAgIGRlZmluZWQoX1BPV0VSKSB8fCBk ZWZpbmVkKF9BUkNIX1BQQykpCisrICAgICBkZWZpbmVkKF9QT1dFUikgfHwgZGVmaW5lZChfQVJD SF9QUEMpIHx8IChkZWZpbmVkKF9fbGludXhfXykgJiYgZGVmaW5lZChfX2FhcmNoNjRfXykpKQor ICAgICAvLyBPbiBQb3dlclBDLCBoYXZpbmcgYW4gZXhlY3V0YWJsZSBwYWdlIHRoYXQgaGFzIG5v IHJlYWQgcGVybWlzc2lvbgorICAgICAvLyBjYW4gaGF2ZSB1bmludGVuZGVkIGNvbnNlcXVlbmNl cy4gIFRoZSBmdW5jdGlvbiBJbnZhbGlkYXRlSW5zdHJ1Y3Rpb24tCisgICAgIC8vIENhY2hlIHVz ZXMgaW5zdHJ1Y3Rpb25zIGRjYmYgYW5kIGljYmksIGJvdGggb2Ygd2hpY2ggYXJlIHRyZWF0ZWQg YnkKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bTE0L3RlbXBsYXRlIGIvc3JjcGtncy9sbHZtMTQv dGVtcGxhdGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4zZTdlNmFi MmMwMGIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xsdm0xNC90ZW1wbGF0ZQpAQCAtMCww ICsxLDQyNCBAQAorIyBUZW1wbGF0ZSBmaWxlIGZvciAnbGx2bTE0JworcGtnbmFtZT1sbHZtMTQK K3ZlcnNpb249MTQuMC4zCityZXZpc2lvbj0xCit3cmtzcmM9Imxsdm0tcHJvamVjdC0ke3ZlcnNp b259LnNyYyIKK2J1aWxkX3dya3NyYz1sbHZtCitidWlsZF9zdHlsZT1jbWFrZQorY29uZmlndXJl X2FyZ3M9IgorIC1EQ01BS0VfQlVJTERfVFlQRT1SZWxlYXNlIC1Xbm8tZGV2CisgLURFTkFCTEVf TElOS0VSX0JVSUxEX0lEPVlFUworIC1ETExEQl9VU0VfU1lTVEVNX1NJWD1ZRVMKKyAtRExJQkNY WF9DWFhfQUJJPWxpYmN4eGFiaQorIC1ETElCQ1hYX0VOQUJMRV9TVEFUSUNfQUJJX0xJQlJBUlk9 WUVTCisgLURMSUJDWFhBQklfVVNFX0xMVk1fVU5XSU5ERVI9WUVTCisgLURMSUJDWFhBQklfRU5B QkxFX1NUQVRJQ19VTldJTkRFUj1ZRVMKKyAtRExJQk9NUF9FTkFCTEVfU0hBUkVEPVlFUworIC1E TElCT01QX0lOU1RBTExfQUxJQVNFUz1OTworIC1ETExWTV9JTkNMVURFX0RPQ1M9WUVTCisgLURM TFZNX0JVSUxEX0RPQ1M9WUVTCisgLURMTFZNX0VOQUJMRV9TUEhJTlg9WUVTCisgLURTUEhJTlhf V0FSTklOR1NfQVNfRVJST1JTPU5PCisgLURMTFZNX0lOU1RBTExfVVRJTFM9WUVTCisgLURMTFZN X0JVSUxEX0xMVk1fRFlMSUI9WUVTCisgLURMTFZNX0xJTktfTExWTV9EWUxJQj1ZRVMKKyAtRExM Vk1fRU5BQkxFX1JUVEk9WUVTCisgLURMTFZNX0VOQUJMRV9GRkk9WUVTCisgLURMTFZNX0JJTlVU SUxTX0lOQ0RJUj0vdXNyL2luY2x1ZGUiCitob3N0bWFrZWRlcGVuZHM9InBlcmwgcHl0aG9uMyB6 bGliLWRldmVsIGxpYmZmaS1kZXZlbCBzd2lnIHB5dGhvbjMtU3BoaW54CisgcHl0aG9uMy1yZWNv bW1vbm1hcmsgcHl0aG9uMy1zcGhpbngtYXV0b21vZGFwaSIKK21ha2VkZXBlbmRzPSJweXRob24z LWRldmVsIHpsaWItZGV2ZWwgZWxmdXRpbHMtZGV2ZWwgbGliZmZpLWRldmVsIGxpYmVkaXQtZGV2 ZWwKKyBsaWJ4bWwyLWRldmVsIGJpbnV0aWxzLWRldmVsIGxpYmF0b21pYy1kZXZlbCIKK2RlcGVu ZHM9ImxpYmxsdm0xND49JHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKK3Nob3J0X2Rlc2M9IkxvdyBM ZXZlbCBWaXJ0dWFsIE1hY2hpbmUiCittYWludGFpbmVyPSJxNjYgPGRhbmllbEBvY3RhZm9yZ2Uu b3JnPiIKK2xpY2Vuc2U9IkFwYWNoZS0yLjAiCitob21lcGFnZT0iaHR0cHM6Ly93d3cubGx2bS5v cmciCitkaXN0ZmlsZXM9Imh0dHBzOi8vZ2l0aHViLmNvbS9sbHZtL2xsdm0tcHJvamVjdC9yZWxl YXNlcy9kb3dubG9hZC9sbHZtb3JnLSR7dmVyc2lvbn0vbGx2bS1wcm9qZWN0LSR7dmVyc2lvbn0u c3JjLnRhci54eiIKK2NoZWNrc3VtPTQ0ZDNlN2E3ODRkNWNmODA1ZTcyODUzYmIwM2YyMThiZDEw NThkNDQ4YzAzY2E4ODNkYWJiZWJjOTkyMDRlMGMKK2xpYjMyZGlzYWJsZWQ9eWVzCitweXRob25f dmVyc2lvbj0zCisKK2lmIFsgIiRYQlBTX1RBUkdFVF9MSUJDIiA9ICJtdXNsIiBdOyB0aGVuCisJ Y29uZmlndXJlX2FyZ3MrPSIgLURMSUJDWFhfSEFTX01VU0xfTElCQz1ZRVMiCisJbWFrZWRlcGVu ZHMrPSIgbGliZXhlY2luZm8tZGV2ZWwiCisJZGVwZW5kcys9IiBsaWJleGVjaW5mby1kZXZlbCIK K2ZpCisKKyMgIm9wZXJhbmQgb3V0IG9mIHJhbmdlIiBhc3NlbWJsZXIgZmFpbHVyZXMKK2Nhc2Ug IiRYQlBTX1RBUkdFVF9NQUNISU5FIiBpbgorCXBwYzY0KikgOzsKKwlwcGMqKSBjb25maWd1cmVf YXJncys9IiAtRENMQU5HX0VOQUJMRV9DTEFOR0Q9T0ZGIiA7OworZXNhYworCitfZW5hYmxlZF9w cm9qZWN0cz0iY2xhbmc7Y2xhbmctdG9vbHMtZXh0cmE7Y29tcGlsZXItcnQ7bGliY3h4O2xpYmN4 eGFiaTtsaWJ1bndpbmQ7bGxkIgorCitfbGxkYl9lbmFibGU9eWVzCitfbGlib21wX2VuYWJsZT1u bworCitjYXNlICIkWEJQU19UQVJHRVRfTUFDSElORSIgaW4KKwlwcGM2NGxlKikgOzsKKwlwcGMq fGk2ODYqKSBfbGxkYl9lbmFibGU9bm8gOzsKK2VzYWMKKworY2FzZSAiJFhCUFNfVEFSR0VUX01B Q0hJTkUiIGluCisJeDg2XzY0KnxhYXJjaDY0KnxwcGM2NCopIF9saWJvbXBfZW5hYmxlPXllczs7 Citlc2FjCisKK3N1YnBhY2thZ2VzPSJjbGFuZy10b29scy1leHRyYSIKKworIyBtdXN0IGdvIGJl Zm9yZSBjbGFuZworaWYgWyAiJF9saWJvbXBfZW5hYmxlIiA9ICJ5ZXMiIF07IHRoZW4KKwlfZW5h YmxlZF9wcm9qZWN0cys9IjtvcGVubXAiCisJc3VicGFja2FnZXMrPSIgbGlib21wIGxpYm9tcC1k ZXZlbCIKKwkjIGJlY2F1c2Ugb2YgY21ha2Ugbm9uc2Vuc2UgcmVmZXJlbmNpbmcgbGlib21wdGFy Z2V0LnNvLioKKwlkZXBlbmRzKz0iIGxpYm9tcD49JHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKK2Zp CisKK3N1YnBhY2thZ2VzKz0iIGNsYW5nIGNsYW5nLWFuYWx5emVyIGxpYmNsYW5nIGxpYmNsYW5n LWNwcAorIGxsdm0tbGlidW53aW5kIGxsdm0tbGlidW53aW5kLWRldmVsIGxpYmN4eCBsaWJjeHgt ZGV2ZWwKKyBsaWJjeHhhYmkgbGliY3h4YWJpLWRldmVsIGxpYmxsdm0xNCIKKworaWYgWyAiJF9s bGRiX2VuYWJsZSIgPSAieWVzIiBdOyB0aGVuCisJIyBYWFggZmFpbHMgdG8gY3Jvc3MgY29tcGls ZSBkdWUgdG8gcHl0aG9uCisJX2VuYWJsZWRfcHJvamVjdHMrPSI7bGxkYiIKKwlzdWJwYWNrYWdl cys9IiBsbGRiIGxsZGItZGV2ZWwiCitmaQorCitzdWJwYWNrYWdlcys9IiBsbGQgbGxkLWRldmVs IgorCitjb25maWd1cmVfYXJncys9IiAtRExMVk1fRU5BQkxFX1BST0pFQ1RTPSR7X2VuYWJsZWRf cHJvamVjdHN9IgorCitwb3N0X3BhdGNoKCkgeworCWlmIFsgIiRfbGxkYl9lbmFibGUiID0gInll cyIgXTsgdGhlbgorCQlpZiBbICIkWEJQU19UQVJHRVRfTElCQyIgPSAibXVzbCIgXTsgdGhlbgor CQkJdnNlZCAtaSAnc3xfX3B0cmFjZV9yZXF1ZXN0fGludHxnJyBcCisJCQkJJHt3cmtzcmN9L2xs ZGIvc291cmNlL1BsdWdpbnMvUHJvY2Vzcy9MaW51eC9OYXRpdmVQcm9jZXNzTGludXguY3BwCisJ CWZpCisJCSMgZGlzYWJsZSBkb2NzIGZvciBsbGRiIGFzIHRoZXkgZmFpbCB0byBnZW5lcmF0ZQor CQl2c2VkIC1pICcvYWRkX3N1YmRpcmVjdG9yeShkb2NzKS9kJyBcCisJCQkke3dya3NyY30vbGxk Yi9DTWFrZUxpc3RzLnR4dAorCWZpCisKKwkjIHVwZGF0ZSBjb25maWcuZ3Vlc3MgZm9yIGJldHRl ciBwbGF0Zm9ybSBkZXRlY3Rpb24KKwljcCAkWEJQU19DT01NT05ESVIvZW52aXJvbm1lbnQvY29u ZmlndXJlL2F1dG9tYWtlL2NvbmZpZy5ndWVzcyBcCisJCSR7d3Jrc3JjfS9sbHZtL2NtYWtlCisK KwkjIGZpeCBsaW5rZXIgZmFpbHVyZXMgb24gc29tZSBhcmNocworCXZzZWQgLWkgJ3MsY2hlY2tf bGlicmFyeV9leGlzdHMoZ2NjX3MgLiosc2V0KExJQkNYWEFCSV9IQVNfR0NDX1NfTElCIE9OKSwn IFwKKwkJJHt3cmtzcmN9L2xpYmN4eGFiaS9jbWFrZS9jb25maWctaXguY21ha2UKKwl2c2VkIC1p ICdzLGNoZWNrX2xpYnJhcnlfZXhpc3RzKGdjYyAuKixzZXQoTElCQ1hYQUJJX0hBU19HQ0NfTElC IE9OKSwnIFwKKwkJJHt3cmtzcmN9L2xpYmN4eGFiaS9jbWFrZS9jb25maWctaXguY21ha2UKKwor CSMgbmVlZCBsaWJzc3Bfbm9uc2hhcmVkIG9uIHNvbWUgbXVzbCBwbGF0Zm9ybXMgKGJlY2F1c2Ug b2Ygbm9kZWZhdWx0bGlicykKKwljYXNlICIkWEJQU19UQVJHRVRfTUFDSElORSIgaW4KKwkJcHBj NjQqKSA7OworCQlwcGMqLW11c2x8aTY4Ni1tdXNsfG1pcHMqLW11c2wpCisJCQl2c2VkIC1pICdz LF4jIFNldHVwIGZsYWdzLiQsYWRkX2xpYnJhcnlfZmxhZ3Moc3NwX25vbnNoYXJlZCksJyBcCisJ CQkJJHt3cmtzcmN9L2xpYnVud2luZC9zcmMvQ01ha2VMaXN0cy50eHQKKwkJCXZzZWQgLWkgJ3Ms XiMgU2V0dXAgZmxhZ3MuJCxhZGRfbGlicmFyeV9mbGFncyhzc3Bfbm9uc2hhcmVkKSwnIFwKKwkJ CQkke3dya3NyY30vbGliY3h4YWJpL3NyYy9DTWFrZUxpc3RzLnR4dAorCQkJdnNlZCAtaSAncywj c3NwLCwnICR7d3Jrc3JjfS9saWJjeHgvQ01ha2VMaXN0cy50eHQKKwkJCTs7CisJZXNhYworCisJ Y2FzZSAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiIGluCisJCXg4Nl82NC1tdXNsKSAjIHNvbWUgc2Fu aXRpemVyIGN1cnJlbnRseSBvbmx5IG9uIHg4Nl82NCBzdHVmZiBuZWVkcyBiYWNrdHJhY2UKKwkJ CXZzZWQgLWkgJ3MsIyBTZXQgY29tbW9uIGxpbmsgZmxhZ3MuLGxpc3QoQVBQRU5EIFNBTklUSVpF Ul9DT01NT05fTElOS19MSUJTIGV4ZWNpbmZvKSwnIFwKKwkJCQkke3dya3NyY30vY29tcGlsZXIt cnQvQ01ha2VMaXN0cy50eHQKKwkJCTs7CisJCWFybSotbXVzbHxpNjg2LW11c2wpICMgc2FuaXRp emVyIGNvZGUgaXMgYnJva2VuIHNpbmNlIGl0IGR1cGxpY2F0ZXMgc29tZSBsaWJjIGJpdHMKKwkJ CXZzZWQgLWkgJ3Mvc2V0KENPTVBJTEVSX1JUX0hBU19TQU5JVElaRVJfQ09NTU9OIFRSVUUpL3Nl dChDT01QSUxFUl9SVF9IQVNfU0FOSVRJWkVSX0NPTU1PTiBGQUxTRSkvJyBcCisJCQkJJHt3cmtz cmN9L2NvbXBpbGVyLXJ0L2NtYWtlL2NvbmZpZy1peC5jbWFrZQorCQkJOzsKKwllc2FjCit9CisK K3ByZV9jb25maWd1cmUoKSB7CisJbG9jYWwgdHJpcGxldAorCisJIyBWYXN0bHkgcmVkdWNlIHNp emUgb2YgZGVidWdnaW5nIHN5bWJvbHM6CisJQ0ZMQUdTPSR7Q0ZMQUdTLyAtZy8gLWcxfQorCUNY WEZMQUdTPSR7Q1hYRkxBR1MvIC1nLyAtZzF9CisKKwkjIHNpbmNlIGdjYzksIHRoZSBidWlsZCBs aWtlcyB0byBibG93IHVwIGZvciBwcGMzMiBhcHBhcmVudGx5IGJlY2F1c2UKKwkjIG9mIGNsYW5n IGJlaW5nIHRvbyBsYXJnZSBmb3IgYSAyNC1iaXQgcmVsYXRpdmUgY2FsbCB0byB0aGUgUExULCBz bworCSMgb3B0aW1pemUgZm9yIHNpemUgaW5zdGVhZAorCWNhc2UgIiRYQlBTX1RBUkdFVF9NQUNI SU5FIiBpbgorCQlwcGM2NCopIDs7CisJCW1pcHMqLW11c2x8cHBjKikgY29uZmlndXJlX2FyZ3Mr PSIgLURWT0lEX0NYWF9PUFRfRkxBR1M9LU9zIiA7OworCWVzYWMKKworCWlmIFsgIiRDUk9TU19C VUlMRCIgXTsgdGhlbgorCQltc2dfbm9ybWFsICJCdWlsZGluZyBob3N0IHRibGdlblxuIgorCQlt a2RpciAtcCBidWlsZC9IT1NUCisJCWNkIGJ1aWxkL0hPU1QKKwkJQ0M9IiRCVUlMRF9DQyIgQ1hY PSIkQlVJTERfQ1hYIiBDRkxBR1M9IiRCVUlMRF9DRkxBR1MiIFwKKwkJCUNYWEZMQUdTPSIkQlVJ TERfQ1hYRkxBR1MiIExERkxBR1M9IiRCVUlMRF9MREZMQUdTIiBcCisJCQljbWFrZSAuLi8uLiAt RENNQUtFX0JVSUxEX1RZUEU9UmVsZWFzZSBcCisJCQktRExMVk1fRU5BQkxFX1BST0pFQ1RTPSR7 X2VuYWJsZWRfcHJvamVjdHN9CisJCW1ha2UgJHttYWtlam9ic30gLUMgdXRpbHMvVGFibGVHZW4K KwkJbWFrZSAke21ha2Vqb2JzfSAtQyB0b29scy9jbGFuZy91dGlscy9UYWJsZUdlbgorCQlbICIk X2xsZGJfZW5hYmxlIiA9ICJ5ZXMiIF0gJiYgbWFrZSAke21ha2Vqb2JzfSAtQyB0b29scy9sbGRi L3V0aWxzL1RhYmxlR2VuCisJCWNvbmZpZ3VyZV9hcmdzKz0iIC1ETExWTV9UQUJMRUdFTj0ke3dy a3NyY30vbGx2bS9idWlsZC9IT1NUL2Jpbi9sbHZtLXRibGdlbiIKKwkJY29uZmlndXJlX2FyZ3Mr PSIgLURDTEFOR19UQUJMRUdFTj0ke3dya3NyY30vbGx2bS9idWlsZC9IT1NUL2Jpbi9jbGFuZy10 YmxnZW4iCisJCVsgIiRfbGxkYl9lbmFibGUiID0gInllcyIgXSAmJiBjb25maWd1cmVfYXJncys9 IiAtRExMREJfVEFCTEVHRU49JHt3cmtzcmN9L2xsdm0vYnVpbGQvSE9TVC9iaW4vbGxkYi10Ymxn ZW4iCisJCWNkIC4uLy4uCisJZmkKKworCWNhc2UgIiRYQlBTX1RBUkdFVF9NQUNISU5FIiBpbgor CQlpNjg2KikgX2FyY2g9Ilg4NiI7OworCQl4ODZfNjQqKSBfYXJjaD0iWDg2Ijs7CisJCWFybXY1 KikgX2FyY2g9IkFybXY1dGUiOzsKKwkJYXJtdjYqKSBfYXJjaD0iQXJtdjYiOzsKKwkJYXJtdjcq KSBfYXJjaD0iQXJtdjciOzsKKwkJYWFyY2g2NCopIF9hcmNoPSJBQXJjaDY0Ijs7CisJCW1pcHMq KSBfYXJjaD0iTWlwcyI7OworCQlwcGMqKSBfYXJjaD0iUG93ZXJQQyI7OworCQlyaXNjdjY0Kikg X2FyY2g9IlJJU0NWNjQiOzsKKwllc2FjCisKKwl0cmlwbGV0PSR7WEJQU19DUk9TU19UUklQTEVU Oi0kWEJQU19UUklQTEVUfQorCisJY29uZmlndXJlX2FyZ3MrPSIgLURMTFZNX1RBUkdFVF9BUkNI PSR7X2FyY2h9IgorCWNvbmZpZ3VyZV9hcmdzKz0iIC1ETExWTV9IT1NUX1RSSVBMRT0ke3RyaXBs ZXR9IgorCWNvbmZpZ3VyZV9hcmdzKz0iIC1ETExWTV9ERUZBVUxUX1RBUkdFVF9UUklQTEU9JHt0 cmlwbGV0fSIKK30KKworZG9faW5zdGFsbCgpIHsKKwljZCBidWlsZAorCWNtYWtlIC1EQ01BS0Vf SU5TVEFMTF9QUkVGSVg9JHtERVNURElSfS91c3IgLVAgY21ha2VfaW5zdGFsbC5jbWFrZQorCisJ IyBSZXF1aXJlZCBmb3IgbXVsdGlsaWIuCisJaWYgWyAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiID0g Ing4Nl82NCIgXTsgdGhlbgorCQlmb3IgX2hlYWRlciBpbiBsbHZtLWNvbmZpZzsgZG8KKwkJCW12 ICR7REVTVERJUn0vdXNyL2luY2x1ZGUvbGx2bS9Db25maWcvJHtfaGVhZGVyfXssLTY0fS5oCisJ CQl2aW5zdGFsbCAke0ZJTEVTRElSfS9sbHZtLUNvbmZpZy0ke19oZWFkZXJ9LmggNjQ0IFwKKwkJ CQl1c3IvaW5jbHVkZS9sbHZtL0NvbmZpZyAke19oZWFkZXJ9LmgKKwkJZG9uZQorCWZpCisKKwkj IFJlbW92ZSBsbHZtLWNvbmZpZy1ob3N0IGluIGNyb3NzIGJ1aWxkcy4KKwlpZiBbICIkQ1JPU1Nf QlVJTEQiIF07IHRoZW4KKwkJcm0gLWYgJHtERVNURElSfS91c3IvYmluL2xsdm0tY29uZmlnLWhv c3QKKwlmaQorCisJIyBJbnN0YWxsIGxpYmN4eGFiaSBoZWFkZXJzCisJdmluc3RhbGwgJHt3cmtz cmN9L2xpYmN4eGFiaS9pbmNsdWRlL19fY3h4YWJpX2NvbmZpZy5oIDY0NCB1c3IvaW5jbHVkZQor CXZpbnN0YWxsICR7d3Jrc3JjfS9saWJjeHhhYmkvaW5jbHVkZS9jeHhhYmkuaCA2NDQgdXNyL2lu Y2x1ZGUKKworCSMgSW5zdGFsbCBsaWJ1bndpbmQgaGVhZGVycworCXZpbnN0YWxsICR7d3Jrc3Jj fS9saWJ1bndpbmQvaW5jbHVkZS9fX2xpYnVud2luZF9jb25maWcuaCA2NDQgdXNyL2luY2x1ZGUK Kwl2aW5zdGFsbCAke3dya3NyY30vbGlidW53aW5kL2luY2x1ZGUvbGlidW53aW5kLmggNjQ0IHVz ci9pbmNsdWRlCisJdmluc3RhbGwgJHt3cmtzcmN9L2xpYnVud2luZC9pbmNsdWRlL3Vud2luZC5o IDY0NCB1c3IvaW5jbHVkZQorCXZpbnN0YWxsICR7d3Jrc3JjfS9saWJ1bndpbmQvaW5jbHVkZS9t YWNoLW8vY29tcGFjdF91bndpbmRfZW5jb2RpbmcuaCBcCisJCTY0NCB1c3IvaW5jbHVkZS9tYWNo LW8KK30KKworY2xhbmctYW5hbHl6ZXJfcGFja2FnZSgpIHsKKwlweWNvbXBpbGVfZGlycz0idXNy L3NoYXJlL3NjYW4tdmlldyIKKwlkZXBlbmRzPSJjbGFuZy0ke3ZlcnNpb259XyR7cmV2aXNpb259 IHB5dGhvbjMgcGVybCIKKwlzaG9ydF9kZXNjKz0iIC0gQSBzb3VyY2UgY29kZSBhbmFseXNpcyBm cmFtZXdvcmsiCisJaG9tZXBhZ2U9Imh0dHBzOi8vY2xhbmctYW5hbHl6ZXIubGx2bS5vcmcvIgor CXBrZ19pbnN0YWxsKCkgeworCQl2bW92ZSB1c3Ivc2hhcmUvbWFuL21hbjEvc2Nhbi1idWlsZC4x CisJCXZtb3ZlICIvdXNyL2Jpbi9zY2FuLSoiCisJCXZtb3ZlICIvdXNyL3NoYXJlL3NjYW4tKiIK KwkJdm1vdmUgIi91c3IvbGliZXhlYy8qYW5hbHl6ZXIiCisJfQorfQorCitjbGFuZy10b29scy1l eHRyYV9wYWNrYWdlKCkgeworCWxpYjMyZGlzYWJsZWQ9eWVzCisJZGVwZW5kcz0iY2xhbmctJHt2 ZXJzaW9ufV8ke3JldmlzaW9ufSBweXRob24zIgorCXNob3J0X2Rlc2MrPSIgLSBFeHRyYSBDbGFu ZyB0b29scyIKKwlob21lcGFnZT0iaHR0cHM6Ly9jbGFuZy5sbHZtLm9yZy9leHRyYS8iCisJcGtn X2luc3RhbGwoKSB7CisJCXZtb3ZlIHVzci9pbmNsdWRlL2NsYW5nLXRpZHkKKwkJdm1vdmUgdXNy L2Jpbi9jbGFuZy1hcHBseS1yZXBsYWNlbWVudHMKKwkJdm1vdmUgdXNyL2Jpbi9jbGFuZy1xdWVy eQorCQl2bW92ZSB1c3IvYmluL2NsYW5nLXJlbmFtZQorCQl2bW92ZSB1c3IvYmluL2NsYW5nLXRp ZHkKKwkJdm1vdmUgdXNyL2Jpbi9kaWFndG9vbAorCQl2bW92ZSB1c3IvYmluL2ZpbmQtYWxsLXN5 bWJvbHMKKwkJdm1vdmUgdXNyL2Jpbi9obWFwdG9vbAorCQl2bW92ZSB1c3IvYmluL21vZHVsYXJp emUKKwkJdm1vdmUgdXNyL2Jpbi9wcC10cmFjZQorCQl2bW92ZSB1c3IvYmluL3NhbmNvdgorCQl2 bW92ZSAidXNyL2xpYi9saWJjbGFuZ0FwcGx5UmVwbGFjZW1lbnRzKiIKKwkJdm1vdmUgInVzci9s aWIvbGliY2xhbmdRdWVyeSoiCisJCXZtb3ZlICJ1c3IvbGliL2xpYmNsYW5nVGlkeSoiCisJCXZt b3ZlICJ1c3Ivc2hhcmUvY2xhbmcvKnRpZHkqIgorCQl2bW92ZSB1c3Ivc2hhcmUvZG9jL2NsYW5n LXRvb2xzCisJCXZtb3ZlIHVzci9zaGFyZS9tYW4vbWFuMS9leHRyYWNsYW5ndG9vbHMuMQorCQl2 bW92ZSB1c3Ivc2hhcmUvbWFuL21hbjEvZGlhZ3Rvb2wuMQorCX0KK30KKworY2xhbmdfcGFja2Fn ZSgpIHsKKwlsaWIzMmRpc2FibGVkPXllcworCWRlcGVuZHM9ImxpYnN0ZGMrKy1kZXZlbCBsaWJn Y2MtZGV2ZWwgIGJpbnV0aWxzICR7WEJQU19UQVJHRVRfTElCQ30tZGV2ZWwKKwkgbGliY2xhbmct JHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKKwlzaG9ydF9kZXNjKz0iIC0gQyBsYW5ndWFnZSBmYW1p bHkgZnJvbnRlbmQiCisJaG9tZXBhZ2U9Imh0dHBzOi8vY2xhbmcubGx2bS5vcmcvIgorCXBrZ19p bnN0YWxsKCkgeworCQl2bW92ZSB1c3IvaW5jbHVkZS9jbGFuZworCQl2bW92ZSB1c3IvaW5jbHVk ZS9jbGFuZy1jCisJCXZtb3ZlICJ1c3IvYmluLypjbGFuZyoiCisJCXZtb3ZlIHVzci9iaW4vYy1p bmRleC10ZXN0CisJCXZtb3ZlIHVzci9saWIvY2xhbmcKKwkJdm1vdmUgdXNyL2xpYi9jbWFrZS9j bGFuZworCQl2bW92ZSAidXNyL2xpYi9saWJjbGFuZyouYSIKKwkJdm1vdmUgInVzci9saWIvbGli Y2xhbmcqLnNvIgorCQl2bW92ZSB1c3Ivc2hhcmUvY2xhbmcKKwkJdm1vdmUgdXNyL3NoYXJlL2Rv Yy9jbGFuZworCQl2bW92ZSB1c3Ivc2hhcmUvbWFuL21hbjEvY2xhbmcuMQorCX0KK30KKworbGli Y2xhbmdfcGFja2FnZSgpIHsKKwlzaG9ydF9kZXNjKz0iIC0gQyBmcm9udGVuZCBydW50aW1lIGxp YnJhcnkiCisJcGtnX2luc3RhbGwoKSB7CisJCXZtb3ZlICJ1c3IvbGliL2xpYmNsYW5nLnNvLioi CisJfQorfQorCitsaWJjbGFuZy1jcHBfcGFja2FnZSgpIHsKKwlzaG9ydF9kZXNjKz0iIC0gQyBm cm9udGVuZCBydW50aW1lIGxpYnJhcnkgKEMrKyBpbnRlcmZhY2UpIgorCXBrZ19pbnN0YWxsKCkg eworCQl2bW92ZSAidXNyL2xpYi9saWJjbGFuZy1jcHAuc28uKiIKKwl9Cit9CisKK2xsZF9wYWNr YWdlKCkgeworCWxpYjMyZGlzYWJsZWQ9eWVzCisJc2hvcnRfZGVzYys9IiAtIGxpbmtlciIKKwlo b21lcGFnZT0iaHR0cHM6Ly9sbGQubGx2bS5vcmciCisJcGtnX2luc3RhbGwoKSB7CisJCXZtb3Zl IHVzci9iaW4vbGxkKgorCQl2bW92ZSB1c3IvYmluL3dhc20tbGQKKwkJdm1vdmUgdXNyL2Jpbi9s ZC5sbGQqCisJCXZtb3ZlIHVzci9iaW4vbGQ2NC5sbGQqCisJCXZtb3ZlIHVzci9zaGFyZS9kb2Mv bGxkCisJfQorfQorCitsbGQtZGV2ZWxfcGFja2FnZSgpIHsKKwlsaWIzMmRpc2FibGVkPXllcwor CXNob3J0X2Rlc2MrPSIgLSBsaW5rZXIgLSBkZXZlbG9wbWVudCBmaWxlcyIKKwlob21lcGFnZT0i aHR0cHM6Ly9sbGQubGx2bS5vcmciCisJZGVwZW5kcz0ibGxkPj0ke3ZlcnNpb259XyR7cmV2aXNp b259IgorCXBrZ19pbnN0YWxsKCkgeworCQl2bW92ZSB1c3IvaW5jbHVkZS9sbGQKKwkJdm1vdmUg dXNyL2xpYi9jbWFrZS9sbGQKKwkJdm1vdmUgInVzci9saWIvbGlibGxkKmEiCisJfQorfQorCits bGRiX3BhY2thZ2UoKSB7CisJbGliMzJkaXNhYmxlZD15ZXMKKwlkZXBlbmRzKz0iIHB5dGhvbjMt c2l4IgorCXNob3J0X2Rlc2MrPSIgLSBMTERCIGRlYnVnZ2VyIgorCWhvbWVwYWdlPSJodHRwczov L2xsZGIubGx2bS5vcmcvIgorCXBrZ19pbnN0YWxsKCkgeworCQl2bW92ZSB1c3IvYmluLypsbGRi KgorCQl2bW92ZSB1c3IvbGliL2xpYmxsZGIqc28uKgorCQl2bW92ZSAvdXNyL2xpYi9weXRob24q CisJfQorfQorCitsbGRiLWRldmVsX3BhY2thZ2UoKSB7CisJbGliMzJkaXNhYmxlZD15ZXMKKwlk ZXBlbmRzPSJsbGRiPj0ke3ZlcnNpb259XyR7cmV2aXNpb259IgorCXNob3J0X2Rlc2MrPSIgLSBM TERCIGRlYnVnZ2VyIC0gZGV2ZWxvcG1lbnQgZmlsZXMiCisJcGtnX2luc3RhbGwoKSB7CisJCXZt b3ZlIHVzci9pbmNsdWRlL2xsZGIKKwkJdm1vdmUgInVzci9saWIvbGlibGxkYiouc28iCisJfQor fQorCitsbHZtLWxpYnVud2luZF9wYWNrYWdlKCkgeworCXNob3J0X2Rlc2MrPSIgLSBsaWJ1bndp bmQiCisJcGtnX2luc3RhbGwoKSB7CisJCXZtb3ZlICJ1c3IvbGliL2xpYnVud2luZC5zby4qIgor CX0KK30KKworbGx2bS1saWJ1bndpbmQtZGV2ZWxfcGFja2FnZSgpIHsKKwlzaG9ydF9kZXNjKz0i IC0gbGlidW53aW5kIC0gZGV2ZWxvcG1lbnQgZmlsZXMiCisJZGVwZW5kcz0ibGx2bS1saWJ1bndp bmQ+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCisJY29uZmxpY3RzPSJsaWJ1bndpbmQtZGV2ZWw+ PTAiCisJcGtnX2luc3RhbGwoKSB7CisJCXZtb3ZlIHVzci9saWIvbGlidW53aW5kLnNvCisJCXZt b3ZlIHVzci9saWIvbGlidW53aW5kLmEKKwkJdm1vdmUgInVzci9pbmNsdWRlLyp1bndpbmQqIgor CQl2bW92ZSB1c3IvaW5jbHVkZS9tYWNoLW8KKwkJdm1vdmUgdXNyL3NoYXJlL2RvYy9saWJ1bndp bmQKKwl9Cit9CisKK2xpYmN4eGFiaV9wYWNrYWdlKCkgeworCXNob3J0X2Rlc2MrPSIgLSBsb3cg bGV2ZWwgc3VwcG9ydCBmb3IgbGliYysrIgorCXBrZ19pbnN0YWxsKCkgeworCQl2bW92ZSAidXNy L2xpYi9saWJjKythYmkuc28uKiIKKwl9Cit9CisKK2xpYmN4eGFiaS1kZXZlbF9wYWNrYWdlKCkg eworCXNob3J0X2Rlc2MrPSIgLSBsb3cgbGV2ZWwgc3VwcG9ydCBmb3IgbGliYysrIC0gZGV2ZWxv cG1lbnQgZmlsZXMiCisJZGVwZW5kcz0ibGliY3h4YWJpPj0ke3ZlcnNpb259XyR7cmV2aXNpb259 IgorCXBrZ19pbnN0YWxsKCkgeworCQl2bW92ZSB1c3IvbGliL2xpYmMrK2FiaS5zbworCQl2bW92 ZSB1c3IvbGliL2xpYmMrK2FiaS5hCisJCXZtb3ZlICJ1c3IvaW5jbHVkZS8qY3h4YWJpKiIKKwl9 Cit9CisKK2xpYmN4eF9wYWNrYWdlKCkgeworCXNob3J0X2Rlc2MrPSIgLSBDKysgc3RhbmRhcmQg bGlicmFyeSIKKwlwa2dfaW5zdGFsbCgpIHsKKwkJdm1vdmUgInVzci9saWIvbGliYysrLnNvLioi CisJfQorfQorCitsaWJjeHgtZGV2ZWxfcGFja2FnZSgpIHsKKwlzaG9ydF9kZXNjKz0iIC0gQysr IHN0YW5kYXJkIGxpYnJhcnkgLSBkZXZlbG9wbWVudCBmaWxlcyIKKwlkZXBlbmRzPSJsaWJjeHg+ PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCisJcGtnX2luc3RhbGwoKSB7CisJCXZtb3ZlIHVzci9s aWIvbGliYysrLnNvCisJCXZtb3ZlIHVzci9saWIvbGliYysrLmEKKwkJdm1vdmUgdXNyL2xpYi9s aWJjKytleHBlcmltZW50YWwuYQorCQl2bW92ZSB1c3IvaW5jbHVkZS9jKysKKwkJdm1vdmUgdXNy L3NoYXJlL2RvYy9saWJjeHgKKwl9Cit9CisKK2xpYm9tcF9wYWNrYWdlKCkgeworCXNob3J0X2Rl c2MrPSIgLSBDbGFuZyBPcGVuTVAgc3VwcG9ydCBsaWJyYXJ5IgorCXBrZ19pbnN0YWxsKCkgewor CQl2bW92ZSB1c3IvbGliL2xpYm9tcC5zbworCQl2bW92ZSAidXNyL2xpYi9saWJvbXB0YXJnZXQu cnRsLiouc28iCisJCXZtb3ZlIHVzci9saWIvbGliYXJjaGVyLnNvCisJCXZtb3ZlICJ1c3IvbGli L2xpYm9tcCouc28uKiIKKwl9Cit9CisKK2xpYm9tcC1kZXZlbF9wYWNrYWdlKCkgeworCXNob3J0 X2Rlc2MrPSIgLSBDbGFuZyBPcGVuTVAgc3VwcG9ydCBsaWJyYXJ5IC0gZGV2ZWxvcG1lbnQgZmls ZXMiCisJZGVwZW5kcz0ibGlib21wPj0ke3ZlcnNpb259XyR7cmV2aXNpb259IgorCXBrZ19pbnN0 YWxsKCkgeworCQl2bW92ZSAidXNyL2xpYi9saWJvbXAqLnNvIgorCQl2bW92ZSAidXNyL2xpYi9s aWJhcmNoZXIqIgorCQl2bW92ZSAidXNyL2luY2x1ZGUvb21wKi5oIgorCQl2bW92ZSAidXNyL2xp Yi9jbGFuZy8ke3ZlcnNpb259L2luY2x1ZGUvb21wKi5oIgorCQl2bW92ZSB1c3Ivc2hhcmUvbWFu L21hbjEvbGx2bW9wZW5tcC4xCisJCXZtb3ZlIHVzci9zaGFyZS9kb2Mvb3Blbm1wCisJfQorfQor CitsaWJsbHZtMTRfcGFja2FnZSgpIHsKKwlzaG9ydF9kZXNjKz0iIC0gcnVudGltZSBsaWJyYXJ5 IgorCXBrZ19pbnN0YWxsKCkgeworCQl2bW92ZSAidXNyL2xpYi9saWJMTFZNLSouc28qIgorCX0K K30KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bTE0L3VwZGF0ZSBiL3NyY3BrZ3MvbGx2bTE0L3Vw ZGF0ZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmU5NWNmMjZiMzU4 NgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbGx2bTE0L3VwZGF0ZQpAQCAtMCwwICsxLDMg QEAKK3NpdGU9Imh0dHBzOi8vZ2l0aHViLmNvbS9sbHZtL2xsdm0tcHJvamVjdC9yZWxlYXNlcyIK K3BhdHRlcm49Imxsdm1vcmctXEsoXGQrLil7Mn1cZCsoLXJjXGQrKT8iCitpZ25vcmU9IiotcmMq IgoKRnJvbSBiNGViZTZlNjJjZDhkMDNkMjJjZjViMDIwOTdiNWM0OTllMGY1OGExIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBwcmV6IDxwcmV6QG5hdGlvbmFsLnNoaXRwb3N0aW5nLmFn ZW5jeT4KRGF0ZTogTW9uLCAyIE1heSAyMDIyIDIxOjE2OjA3ICswMjAwClN1YmplY3Q6IFtQQVRD SCAwMi8yM10gbGx2bTogdXBkYXRlIHRvIDE0LjAuMy4KCnN3aXRjaCB0byBydW50aW1lcyBidWls ZDoKaHR0cHM6Ly9yZXZpZXdzLmxsdm0ub3JnL3JHYWM3MDMxYjJiMmZhCmh0dHBzOi8vcmV2aWV3 cy5sbHZtLm9yZy9EMTEwMzM4IzMwMjI5NTIKLS0tCiBjb21tb24vc2hsaWJzICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfCAgNSArLQogc3JjcGtncy9sbHZtL3RlbXBsYXRlICAgICAg ICAgICAgICAgICAgICAgICAgIHwgIDYgKy0KIC4uLi9sbHZtMTQvZmlsZXMvbGx2bS1Db25maWct bGx2bS1jb25maWcuaCAgICB8ICA5ICsrKwogLi4ubGUtbXV0bGlhcmNoLWxheW91dC1vbi1tdXNs LWluLWNsYW5nLnBhdGNoIHwgMzEgKysrKysrKysrCiAuLi5jaC1sb2NhdGlvbnMtZm9yLWxpYnVu d2luZC1saWJjLWxpYmMucGF0Y2ggfCA2OCArKysrKysrKysrKysrKysrKysrCiBzcmNwa2dzL2xs dm0xNC90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgICAgICAgfCAyOCArKysrLS0tLQogNiBmaWxl cyBjaGFuZ2VkLCAxMjYgaW5zZXJ0aW9ucygrKSwgMjEgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9k ZSAxMDA2NDQgc3JjcGtncy9sbHZtMTQvZmlsZXMvbGx2bS1Db25maWctbGx2bS1jb25maWcuaAog Y3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGx2bTE0L3BhdGNoZXMvY2xhbmctMDA1LWRpc2Fi bGUtbXV0bGlhcmNoLWxheW91dC1vbi1tdXNsLWluLWNsYW5nLnBhdGNoCiBjcmVhdGUgbW9kZSAx MDA2NDQgc3JjcGtncy9sbHZtMTQvcGF0Y2hlcy9sbHZtLTAwNy1kaXNhYmxlLW11bHRpYXJjaC1s b2NhdGlvbnMtZm9yLWxpYnVud2luZC1saWJjLWxpYmMucGF0Y2gKCmRpZmYgLS1naXQgYS9jb21t b24vc2hsaWJzIGIvY29tbW9uL3NobGlicwppbmRleCA3NjU4YzFkMjUzMWUuLjkxODBjNjhkODQx OSAxMDA2NDQKLS0tIGEvY29tbW9uL3NobGlicworKysgYi9jb21tb24vc2hsaWJzCkBAIC05NzQs NyArOTc0LDcgQEAgbGliZ3Rrc291cmNldmlld21tLTMuMC5zby4wIGd0a3NvdXJjZXZpZXdtbS0z LjIuMF8xCiBsaWJ5YWpsLnNvLjIgeWFqbC0yLjAuMV8xCiBsaWJjb25mdXNlLnNvLjIgY29uZnVz ZS0zLjIuMV8xCiBsaWJsbGRiLnNvLjE0IGxsZGItMTQuMC4zXzEKLWxpYmNsYW5nLnNvLjE0IGxp YmNsYW5nLTE0LjAuM18xCitsaWJjbGFuZy5zby4xMyBsaWJjbGFuZy0xNC4wLjNfMQogbGliY2xh bmctY3BwLnNvLjE0IGxpYmNsYW5nLWNwcC0xNC4wLjNfMQogbGliTExWTS0xMS5zbyBsaWJsbHZt MTEtMTEuMC4wXzEKIGxpYkxMVk0tMTIuc28gbGlibGx2bTEyLTEyLjAuMF8xCkBAIC00MTcxLDcg KzQxNzEsOCBAQCBsaWJvbXB0YXJnZXQucnRsLmFtZGdwdS5zbyBsaWJvbXAtMTQuMC4zXzEKIGxp Ym9tcHRhcmdldC5ydGwuY3VkYS5zbyBsaWJvbXAtMTQuMC4zXzEKIGxpYm9tcHRhcmdldC5ydGwu eDg2XzY0LnNvIGxpYm9tcC0xNC4wLjNfMQogbGliYXJjaGVyLnNvIGxpYm9tcC0xNC4wLjNfMQot bGlib21wdGFyZ2V0LnNvIGxpYm9tcC0xNC4wLjNfMQorbGlib21wZC5zbyBsaWJvbXAtZGV2ZWwt MTQuMC4zXzEKK2xpYm9tcHRhcmdldC5zbyBsaWJvbXAtZGV2ZWwtMTQuMC4zXzEKIGxpYmxsZGJJ bnRlbEZlYXR1cmVzLnNvLjE0IGxsZGItMTQuMC4zXzEKIGxpYkxUTy5zby4xNCBsbHZtMTQtMTQu MC4zXzEKIGxpYlJlbWFya3Muc28uMTQgbGx2bTE0LTE0LjAuM18xCmRpZmYgLS1naXQgYS9zcmNw a2dzL2xsdm0vdGVtcGxhdGUgYi9zcmNwa2dzL2xsdm0vdGVtcGxhdGUKaW5kZXggYTkyZGI2Zjk0 ZjlmLi5kMjI2YzYxYzczNGUgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvbGx2bS90ZW1wbGF0ZQorKysg Yi9zcmNwa2dzL2xsdm0vdGVtcGxhdGUKQEAgLTEsMTAgKzEsMTAgQEAKICMgVGVtcGxhdGUgZmls ZSBmb3IgJ2xsdm0nCiBwa2duYW1lPWxsdm0KLXZlcnNpb249MTIuMC4wCit2ZXJzaW9uPTE0LjAu MwogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9bWV0YQotZGVwZW5kcz0ibGx2bTEyIgotcmVwbGFj ZXM9Imxsdm0xMT49MCBsbHZtMTA+PTAgbGx2bTk+PTAgbGx2bTg+PTAgbGx2bTc+PTAgbGx2bTYu MD49MCBsbHZtMy45Pj0wIgorZGVwZW5kcz0ibGx2bTE0IgorcmVwbGFjZXM9Imxsdm0xMz49MCBs bHZtMTI+PTAgbGx2bTExPj0wIGxsdm0xMD49MCBsbHZtOT49MCBsbHZtOD49MCBsbHZtNz49MCBs bHZtNi4wPj0wIGxsdm0zLjk+PTAiCiBzaG9ydF9kZXNjPSJMTFZNIG1ldGEgcGFja2FnZSIKIG1h aW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJQ dWJsaWMgRG9tYWluIgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtMTQvZmlsZXMvbGx2bS1Db25m aWctbGx2bS1jb25maWcuaCBiL3NyY3BrZ3MvbGx2bTE0L2ZpbGVzL2xsdm0tQ29uZmlnLWxsdm0t Y29uZmlnLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4yZmEwOGM5 YmU2OTYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xsdm0xNC9maWxlcy9sbHZtLUNvbmZp Zy1sbHZtLWNvbmZpZy5oCkBAIC0wLDAgKzEsOSBAQAorI2luY2x1ZGUgPGJpdHMvd29yZHNpemUu aD4KKworI2lmIF9fV09SRFNJWkUgPT0gMzIKKyNpbmNsdWRlICJsbHZtLWNvbmZpZy0zMi5oIgor I2VsaWYgX19XT1JEU0laRSA9PSA2NAorI2luY2x1ZGUgImxsdm0tY29uZmlnLTY0LmgiCisjZWxz ZQorI2Vycm9yICJVbmtub3duIHdvcmQgc2l6ZSIKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9sbHZtMTQvcGF0Y2hlcy9jbGFuZy0wMDUtZGlzYWJsZS1tdXRsaWFyY2gtbGF5b3V0LW9uLW11 c2wtaW4tY2xhbmcucGF0Y2ggYi9zcmNwa2dzL2xsdm0xNC9wYXRjaGVzL2NsYW5nLTAwNS1kaXNh YmxlLW11dGxpYXJjaC1sYXlvdXQtb24tbXVzbC1pbi1jbGFuZy5wYXRjaApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjM0OGQ5OWIxMGRlMgotLS0gL2Rldi9udWxsCisr KyBiL3NyY3BrZ3MvbGx2bTE0L3BhdGNoZXMvY2xhbmctMDA1LWRpc2FibGUtbXV0bGlhcmNoLWxh eW91dC1vbi1tdXNsLWluLWNsYW5nLnBhdGNoCkBAIC0wLDAgKzEsMzEgQEAKK0Zyb20gY2ZmOTE3 Yzg1YjUwOTc4OWVjNzViMWUyMzQzODMxYzU3MjlhMTkzYyBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKK0Zyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgorRGF0ZTogV2Vk LCA2IEFwciAyMDIyIDAwOjUyOjIzICswMjAwCitTdWJqZWN0OiBbUEFUQ0ggMDUvMjJdIGRpc2Fi bGUgbXV0bGlhcmNoIGxheW91dCBvbiBtdXNsIGluIGNsYW5nCisKK1dlIGRvbid0IHVzZSBhIG11 bHRpYXJjaCBsYXlvdXQgYW5kIHdlIGRvbid0IHJlYWxseSBjYXJlIGZvcgorZGViaWFuaXNtcywg c28gZW11bGF0ZSB3aGF0ZXZlciBhIG5vbi1tdWx0aWFyY2ggZ2NjIHRvb2xjaGFpbgord291bGQg ZG8gYW5kIHVzZSBhbiBlbXB0eSB0aGluZy4KKy0tLQorIGNsYW5nL2xpYi9Ecml2ZXIvVG9vbENo YWlucy9MaW51eC5jcHAgfCA1ICsrKysrCisgMSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygr KQorCitkaWZmIC0tZ2l0IGEvY2xhbmcvbGliL0RyaXZlci9Ub29sQ2hhaW5zL0xpbnV4LmNwcCBi L2NsYW5nL2xpYi9Ecml2ZXIvVG9vbENoYWlucy9MaW51eC5jcHAKK2luZGV4IGY4NWMwNGRmNC4u MTNjYmRiZGM3IDEwMDY0NAorLS0tIGEvY2xhbmcvbGliL0RyaXZlci9Ub29sQ2hhaW5zL0xpbnV4 LmNwcAorKysrIGIvY2xhbmcvbGliL0RyaXZlci9Ub29sQ2hhaW5zL0xpbnV4LmNwcAorQEAgLTQ2 LDYgKzQ2LDExIEBAIHN0ZDo6c3RyaW5nIExpbnV4OjpnZXRNdWx0aWFyY2hUcmlwbGUoY29uc3Qg RHJpdmVyICZELAorICAgYm9vbCBJc01pcHNSNiA9IFRhcmdldFRyaXBsZS5nZXRTdWJBcmNoKCkg PT0gbGx2bTo6VHJpcGxlOjpNaXBzU3ViQXJjaF9yNjsKKyAgIGJvb2wgSXNNaXBzTjMyQWJpID0g VGFyZ2V0VHJpcGxlLmdldEVudmlyb25tZW50KCkgPT0gbGx2bTo6VHJpcGxlOjpHTlVBQklOMzI7 CisgCisrICAvKiB3ZSBhcmUgbm90IG11bHRpYXJjaCAqLworKyAgaWYgKFRhcmdldFRyaXBsZS5p c011c2woKSkgeworKyAgICByZXR1cm4gIiI7CisrICB9CisrCisgICAvLyBGb3IgbW9zdCBhcmNo aXRlY3R1cmVzLCBqdXN0IHVzZSB3aGF0ZXZlciB3ZSBoYXZlIHJhdGhlciB0aGFuIHRyeWluZyB0 byBiZQorICAgLy8gY2xldmVyLgorICAgc3dpdGNoIChUYXJnZXRUcmlwbGUuZ2V0QXJjaCgpKSB7 CistLSAKKzIuMzUuMQorCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0xNC9wYXRjaGVzL2xsdm0t MDA3LWRpc2FibGUtbXVsdGlhcmNoLWxvY2F0aW9ucy1mb3ItbGlidW53aW5kLWxpYmMtbGliYy5w YXRjaCBiL3NyY3BrZ3MvbGx2bTE0L3BhdGNoZXMvbGx2bS0wMDctZGlzYWJsZS1tdWx0aWFyY2gt bG9jYXRpb25zLWZvci1saWJ1bndpbmQtbGliYy1saWJjLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uM2VmNzQ5OWQ2MDgyCi0tLSAvZGV2L251bGwKKysrIGIv c3JjcGtncy9sbHZtMTQvcGF0Y2hlcy9sbHZtLTAwNy1kaXNhYmxlLW11bHRpYXJjaC1sb2NhdGlv bnMtZm9yLWxpYnVud2luZC1saWJjLWxpYmMucGF0Y2gKQEAgLTAsMCArMSw2OCBAQAorRnJvbSA5 MmEzYjczZGZlYzljODVhNTM2ZWQ5OWM1NTcwMjMxYzMzM2FkMWU4IE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQorRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CitEYXRl OiBXZWQsIDYgQXByIDIwMjIgMDA6NTc6NTggKzAyMDAKK1N1YmplY3Q6IFtQQVRDSCAwOC8yMl0g ZGlzYWJsZSBtdWx0aWFyY2ggbG9jYXRpb25zIGZvcgorIGxpYnVud2luZC9saWJjKysvbGliYysr YWJpCisKKy0tLQorIGxpYmN4eC9DTWFrZUxpc3RzLnR4dCAgICAgICAgICAgIHwgMiArLQorIGxp YmN4eC9iZW5jaG1hcmtzL0NNYWtlTGlzdHMudHh0IHwgMiArLQorIGxpYmN4eGFiaS9DTWFrZUxp c3RzLnR4dCAgICAgICAgIHwgMiArLQorIGxpYnVud2luZC9DTWFrZUxpc3RzLnR4dCAgICAgICAg IHwgMiArLQorIDQgZmlsZXMgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygt KQorCitkaWZmIC0tZ2l0IGEvbGliY3h4L0NNYWtlTGlzdHMudHh0IGIvbGliY3h4L0NNYWtlTGlz dHMudHh0CitpbmRleCAzNWMyY2U1MTUuLjE5ZjQyM2JmMCAxMDA2NDQKKy0tLSBhL2xpYmN4eC9D TWFrZUxpc3RzLnR4dAorKysrIGIvbGliY3h4L0NNYWtlTGlzdHMudHh0CitAQCAtNDMyLDcgKzQz Miw3IEBAIHNldChMSUJDWFhfSU5TVEFMTF9JTkNMVURFX0RJUiAiJHtDTUFLRV9JTlNUQUxMX0lO Q0xVREVESVJ9L2MrKy92MSIgQ0FDSEUgUEFUSAorIHNldChMSUJDWFhfSU5TVEFMTF9SVU5USU1F X0RJUiAiJHtDTUFLRV9JTlNUQUxMX0JJTkRJUn0iIENBQ0hFIFBBVEgKKyAgICAgIlBhdGggd2hl cmUgYnVpbHQgbGliYysrIHJ1bnRpbWUgbGlicmFyaWVzIHNob3VsZCBiZSBpbnN0YWxsZWQuIikK KyAKKy1pZihMTFZNX0VOQUJMRV9QRVJfVEFSR0VUX1JVTlRJTUVfRElSIEFORCBOT1QgQVBQTEUp CisraWYoTExWTV9FTkFCTEVfUEVSX1RBUkdFVF9SVU5USU1FX0RJUiBBTkQgTk9UIEFQUExFIEFO RCBOT1QgQ01BS0VfU1lTVEVNX05BTUUgTUFUQ0hFUyAiTGludXgiKQorICAgc2V0KExJQkNYWF9M SUJSQVJZX0RJUiAke0xMVk1fTElCUkFSWV9PVVRQVVRfSU5URElSfS8ke0xMVk1fREVGQVVMVF9U QVJHRVRfVFJJUExFfSkKKyAgIHNldChMSUJDWFhfR0VORVJBVEVEX0lOQ0xVREVfRElSICIke0xM Vk1fQklOQVJZX0RJUn0vaW5jbHVkZS9jKysvdjEiKQorICAgc2V0KExJQkNYWF9HRU5FUkFURURf SU5DTFVERV9UQVJHRVRfRElSICIke0xMVk1fQklOQVJZX0RJUn0vaW5jbHVkZS8ke0xMVk1fREVG QVVMVF9UQVJHRVRfVFJJUExFfS9jKysvdjEiKQorZGlmZiAtLWdpdCBhL2xpYmN4eC9iZW5jaG1h cmtzL0NNYWtlTGlzdHMudHh0IGIvbGliY3h4L2JlbmNobWFya3MvQ01ha2VMaXN0cy50eHQKK2lu ZGV4IDk1ZTI4NjE4Yi4uOTA2YWJkYjRlIDEwMDY0NAorLS0tIGEvbGliY3h4L2JlbmNobWFya3Mv Q01ha2VMaXN0cy50eHQKKysrKyBiL2xpYmN4eC9iZW5jaG1hcmtzL0NNYWtlTGlzdHMudHh0CitA QCAtMjYsNyArMjYsNyBAQCBzZXQoQkVOQ0hNQVJLX0xJQkNYWF9DT01QSUxFX0ZMQUdTCisgICAg IC1XbCwtcnBhdGgsJHtMSUJDWFhfTElCUkFSWV9ESVJ9CisgICAgICR7U0FOSVRJWkVSX0ZMQUdT fQorICAgICApCistaWYoTExWTV9FTkFCTEVfUEVSX1RBUkdFVF9SVU5USU1FX0RJUiBBTkQgTk9U IEFQUExFKQorK2lmKExMVk1fRU5BQkxFX1BFUl9UQVJHRVRfUlVOVElNRV9ESVIgQU5EIE5PVCBB UFBMRSBBTkQgTk9UIENNQUtFX1NZU1RFTV9OQU1FIE1BVENIRVMgIkxpbnV4IikKKyAgIGxpc3Qo QVBQRU5EIEJFTkNITUFSS19MSUJDWFhfQ09NUElMRV9GTEFHUworICAgICAtaXN5c3RlbSAiJHtM SUJDWFhfR0VORVJBVEVEX0lOQ0xVREVfVEFSR0VUX0RJUn0iKQorIGVuZGlmKCkKK2RpZmYgLS1n aXQgYS9saWJjeHhhYmkvQ01ha2VMaXN0cy50eHQgYi9saWJjeHhhYmkvQ01ha2VMaXN0cy50eHQK K2luZGV4IDhlOGNkZjhhZC4uOTRlNjI1ZjQ0IDEwMDY0NAorLS0tIGEvbGliY3h4YWJpL0NNYWtl TGlzdHMudHh0CisrKysgYi9saWJjeHhhYmkvQ01ha2VMaXN0cy50eHQKK0BAIC0yMjYsNyArMjI2 LDcgQEAgc2V0KENNQUtFX01PRFVMRV9QQVRICisgc2V0KExJQkNYWEFCSV9JTlNUQUxMX1JVTlRJ TUVfRElSICIke0NNQUtFX0lOU1RBTExfQklORElSfSIgQ0FDSEUgUEFUSAorICAgICAiUGF0aCB3 aGVyZSBidWlsdCBsaWJjKythYmkgcnVudGltZSBsaWJyYXJpZXMgc2hvdWxkIGJlIGluc3RhbGxl ZC4iKQorIAorLWlmKExMVk1fRU5BQkxFX1BFUl9UQVJHRVRfUlVOVElNRV9ESVIgQU5EIE5PVCBB UFBMRSkKKytpZihMTFZNX0VOQUJMRV9QRVJfVEFSR0VUX1JVTlRJTUVfRElSIEFORCBOT1QgQVBQ TEUgQU5EIE5PVCBDTUFLRV9TWVNURU1fTkFNRSBNQVRDSEVTICJMaW51eCIpCisgICBzZXQoTElC Q1hYQUJJX0hFQURFUl9ESVIgJHtMTFZNX0JJTkFSWV9ESVJ9KQorICAgc2V0KExJQkNYWEFCSV9M SUJSQVJZX0RJUiAke0xMVk1fTElCUkFSWV9PVVRQVVRfSU5URElSfS8ke0xMVk1fREVGQVVMVF9U QVJHRVRfVFJJUExFfSkKKyAgIHNldChMSUJDWFhBQklfSU5TVEFMTF9MSUJSQVJZX0RJUiBsaWIk e0xMVk1fTElCRElSX1NVRkZJWH0vJHtMTFZNX0RFRkFVTFRfVEFSR0VUX1RSSVBMRX0gQ0FDSEUg UEFUSAorZGlmZiAtLWdpdCBhL2xpYnVud2luZC9DTWFrZUxpc3RzLnR4dCBiL2xpYnVud2luZC9D TWFrZUxpc3RzLnR4dAoraW5kZXggNjUyM2ZiMGQzLi5hNjNiODhmMzEgMTAwNjQ0CistLS0gYS9s aWJ1bndpbmQvQ01ha2VMaXN0cy50eHQKKysrKyBiL2xpYnVud2luZC9DTWFrZUxpc3RzLnR4dAor QEAgLTE1OCw3ICsxNTgsNyBAQCBzZXQoTElCVU5XSU5EX0lOU1RBTExfSU5DTFVERV9ESVIgIiR7 Q01BS0VfSU5TVEFMTF9JTkNMVURFRElSfSIgQ0FDSEUgUEFUSAorIHNldChMSUJVTldJTkRfSU5T VEFMTF9SVU5USU1FX0RJUiAiJHtDTUFLRV9JTlNUQUxMX0JJTkRJUn0iIENBQ0hFIFBBVEgKKyAg ICAgIlBhdGggd2hlcmUgYnVpbHQgbGlidW53aW5kIHJ1bnRpbWUgbGlicmFyaWVzIHNob3VsZCBi ZSBpbnN0YWxsZWQuIikKKyAKKy1pZihMTFZNX0VOQUJMRV9QRVJfVEFSR0VUX1JVTlRJTUVfRElS IEFORCBOT1QgQVBQTEUpCisraWYoTExWTV9FTkFCTEVfUEVSX1RBUkdFVF9SVU5USU1FX0RJUiBB TkQgTk9UIEFQUExFIEFORCBOT1QgQ01BS0VfU1lTVEVNX05BTUUgTUFUQ0hFUyAiTGludXgiKQor ICAgc2V0KExJQlVOV0lORF9MSUJSQVJZX0RJUiAke0xMVk1fTElCUkFSWV9PVVRQVVRfSU5URElS fS8ke0xMVk1fREVGQVVMVF9UQVJHRVRfVFJJUExFfSkKKyAgIHNldChMSUJVTldJTkRfSU5TVEFM TF9MSUJSQVJZX0RJUiBsaWIke0xMVk1fTElCRElSX1NVRkZJWH0vJHtMTFZNX0RFRkFVTFRfVEFS R0VUX1RSSVBMRX0gQ0FDSEUgUEFUSAorICAgICAgICJQYXRoIHdoZXJlIGJ1aWx0IGxpYnVud2lu ZCBsaWJyYXJpZXMgc2hvdWxkIGJlIGluc3RhbGxlZC4iKQorLS0gCisyLjM1LjEKKwpkaWZmIC0t Z2l0IGEvc3JjcGtncy9sbHZtMTQvdGVtcGxhdGUgYi9zcmNwa2dzL2xsdm0xNC90ZW1wbGF0ZQpp bmRleCAzZTdlNmFiMmMwMGIuLjgxMDdjMWQzMzllMiAxMDA2NDQKLS0tIGEvc3JjcGtncy9sbHZt MTQvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9sbHZtMTQvdGVtcGxhdGUKQEAgLTE1LDYgKzE1LDcg QEAgY29uZmlndXJlX2FyZ3M9IgogIC1ETElCQ1hYQUJJX0VOQUJMRV9TVEFUSUNfVU5XSU5ERVI9 WUVTCiAgLURMSUJPTVBfRU5BQkxFX1NIQVJFRD1ZRVMKICAtRExJQk9NUF9JTlNUQUxMX0FMSUFT RVM9Tk8KKyAtRENPTVBJTEVSX1JUX0RFRkFVTFRfVEFSR0VUX09OTFk9WUVTCiAgLURMTFZNX0lO Q0xVREVfRE9DUz1ZRVMKICAtRExMVk1fQlVJTERfRE9DUz1ZRVMKICAtRExMVk1fRU5BQkxFX1NQ SElOWD1ZRVMKQEAgLTM4LDYgKzM5LDcgQEAgZGlzdGZpbGVzPSJodHRwczovL2dpdGh1Yi5jb20v bGx2bS9sbHZtLXByb2plY3QvcmVsZWFzZXMvZG93bmxvYWQvbGx2bW9yZy0ke3ZlcnMKIGNoZWNr c3VtPTQ0ZDNlN2E3ODRkNWNmODA1ZTcyODUzYmIwM2YyMThiZDEwNThkNDQ4YzAzY2E4ODNkYWJi ZWJjOTkyMDRlMGMKIGxpYjMyZGlzYWJsZWQ9eWVzCiBweXRob25fdmVyc2lvbj0zCitub3BpZV9m aWxlcz0iL3Vzci9iaW4vbGx2bS1vbXAtZGV2aWNlLWluZm8iCiAKIGlmIFsgIiRYQlBTX1RBUkdF VF9MSUJDIiA9ICJtdXNsIiBdOyB0aGVuCiAJY29uZmlndXJlX2FyZ3MrPSIgLURMSUJDWFhfSEFT X01VU0xfTElCQz1ZRVMiCkBAIC01MSw3ICs1Myw4IEBAIGNhc2UgIiRYQlBTX1RBUkdFVF9NQUNI SU5FIiBpbgogCXBwYyopIGNvbmZpZ3VyZV9hcmdzKz0iIC1EQ0xBTkdfRU5BQkxFX0NMQU5HRD1P RkYiIDs7CiBlc2FjCiAKLV9lbmFibGVkX3Byb2plY3RzPSJjbGFuZztjbGFuZy10b29scy1leHRy YTtjb21waWxlci1ydDtsaWJjeHg7bGliY3h4YWJpO2xpYnVud2luZDtsbGQiCitfZW5hYmxlZF9w cm9qZWN0cz0iY2xhbmc7Y2xhbmctdG9vbHMtZXh0cmE7bGxkIgorX2VuYWJsZWRfcnVudGltZXM9 ImNvbXBpbGVyLXJ0O2xpYmN4eDtsaWJjeHhhYmk7bGlidW53aW5kIgogCiBfbGxkYl9lbmFibGU9 eWVzCiBfbGlib21wX2VuYWJsZT1ubwpAQCAtNjcsOSArNzAsOCBAQCBlc2FjCiAKIHN1YnBhY2th Z2VzPSJjbGFuZy10b29scy1leHRyYSIKIAotIyBtdXN0IGdvIGJlZm9yZSBjbGFuZwogaWYgWyAi JF9saWJvbXBfZW5hYmxlIiA9ICJ5ZXMiIF07IHRoZW4KLQlfZW5hYmxlZF9wcm9qZWN0cys9Ijtv cGVubXAiCisJX2VuYWJsZWRfcnVudGltZXMrPSI7b3Blbm1wIgogCXN1YnBhY2thZ2VzKz0iIGxp Ym9tcCBsaWJvbXAtZGV2ZWwiCiAJIyBiZWNhdXNlIG9mIGNtYWtlIG5vbnNlbnNlIHJlZmVyZW5j aW5nIGxpYm9tcHRhcmdldC5zby4qCiAJZGVwZW5kcys9IiBsaWJvbXA+PSR7dmVyc2lvbn1fJHty ZXZpc2lvbn0iCkBAIC04OCw2ICs5MCw3IEBAIGZpCiBzdWJwYWNrYWdlcys9IiBsbGQgbGxkLWRl dmVsIgogCiBjb25maWd1cmVfYXJncys9IiAtRExMVk1fRU5BQkxFX1BST0pFQ1RTPSR7X2VuYWJs ZWRfcHJvamVjdHN9IgorY29uZmlndXJlX2FyZ3MrPSIgLURMTFZNX0VOQUJMRV9SVU5USU1FUz0k e19lbmFibGVkX3J1bnRpbWVzfSIKIAogcG9zdF9wYXRjaCgpIHsKIAlpZiBbICIkX2xsZGJfZW5h YmxlIiA9ICJ5ZXMiIF07IHRoZW4KQEAgLTEzNSw4ICsxMzgsNyBAQCBwb3N0X3BhdGNoKCkgewog fQogCiBwcmVfY29uZmlndXJlKCkgewotCWxvY2FsIHRyaXBsZXQKLQorCWxvY2FsIHRyaXBsZXQ9 JHtYQlBTX0NST1NTX1RSSVBMRVQ6LSRYQlBTX1RSSVBMRVR9CiAJIyBWYXN0bHkgcmVkdWNlIHNp emUgb2YgZGVidWdnaW5nIHN5bWJvbHM6CiAJQ0ZMQUdTPSR7Q0ZMQUdTLyAtZy8gLWcxfQogCUNY WEZMQUdTPSR7Q1hYRkxBR1MvIC1nLyAtZzF9CkBAIC0xNTYsNyArMTU4LDggQEAgcHJlX2NvbmZp Z3VyZSgpIHsKIAkJQ0M9IiRCVUlMRF9DQyIgQ1hYPSIkQlVJTERfQ1hYIiBDRkxBR1M9IiRCVUlM RF9DRkxBR1MiIFwKIAkJCUNYWEZMQUdTPSIkQlVJTERfQ1hYRkxBR1MiIExERkxBR1M9IiRCVUlM RF9MREZMQUdTIiBcCiAJCQljbWFrZSAuLi8uLiAtRENNQUtFX0JVSUxEX1RZUEU9UmVsZWFzZSBc Ci0JCQktRExMVk1fRU5BQkxFX1BST0pFQ1RTPSR7X2VuYWJsZWRfcHJvamVjdHN9CisJCQktRExM Vk1fRU5BQkxFX1BST0pFQ1RTPSR7X2VuYWJsZWRfcHJvamVjdHN9IFwKKwkJCS1ETExWTV9FTkFC TEVfUlVOVElNRVM9JHtfZW5hYmxlZF9ydW50aW1lc30KIAkJbWFrZSAke21ha2Vqb2JzfSAtQyB1 dGlscy9UYWJsZUdlbgogCQltYWtlICR7bWFrZWpvYnN9IC1DIHRvb2xzL2NsYW5nL3V0aWxzL1Rh YmxlR2VuCiAJCVsgIiRfbGxkYl9lbmFibGUiID0gInllcyIgXSAmJiBtYWtlICR7bWFrZWpvYnN9 IC1DIHRvb2xzL2xsZGIvdXRpbHMvVGFibGVHZW4KQEAgLTE3OCw4ICsxODEsNiBAQCBwcmVfY29u ZmlndXJlKCkgewogCQlyaXNjdjY0KikgX2FyY2g9IlJJU0NWNjQiOzsKIAllc2FjCiAKLQl0cmlw bGV0PSR7WEJQU19DUk9TU19UUklQTEVUOi0kWEJQU19UUklQTEVUfQotCiAJY29uZmlndXJlX2Fy Z3MrPSIgLURMTFZNX1RBUkdFVF9BUkNIPSR7X2FyY2h9IgogCWNvbmZpZ3VyZV9hcmdzKz0iIC1E TExWTV9IT1NUX1RSSVBMRT0ke3RyaXBsZXR9IgogCWNvbmZpZ3VyZV9hcmdzKz0iIC1ETExWTV9E RUZBVUxUX1RBUkdFVF9UUklQTEU9JHt0cmlwbGV0fSIKQEAgLTI0OSw3ICsyNTAsNyBAQCBjbGFu Zy10b29scy1leHRyYV9wYWNrYWdlKCkgewogCQl2bW92ZSAidXNyL2xpYi9saWJjbGFuZ1F1ZXJ5 KiIKIAkJdm1vdmUgInVzci9saWIvbGliY2xhbmdUaWR5KiIKIAkJdm1vdmUgInVzci9zaGFyZS9j bGFuZy8qdGlkeSoiCi0JCXZtb3ZlIHVzci9zaGFyZS9kb2MvY2xhbmctdG9vbHMKKwkJdm1vdmUg dXNyL3NoYXJlL2RvYy9MTFZNL2NsYW5nLXRvb2xzCiAJCXZtb3ZlIHVzci9zaGFyZS9tYW4vbWFu MS9leHRyYWNsYW5ndG9vbHMuMQogCQl2bW92ZSB1c3Ivc2hhcmUvbWFuL21hbjEvZGlhZ3Rvb2wu MQogCX0KQEAgLTI3MSw3ICsyNzIsNyBAQCBjbGFuZ19wYWNrYWdlKCkgewogCQl2bW92ZSAidXNy L2xpYi9saWJjbGFuZyouYSIKIAkJdm1vdmUgInVzci9saWIvbGliY2xhbmcqLnNvIgogCQl2bW92 ZSB1c3Ivc2hhcmUvY2xhbmcKLQkJdm1vdmUgdXNyL3NoYXJlL2RvYy9jbGFuZworCQl2bW92ZSB1 c3Ivc2hhcmUvZG9jL0xMVk0vY2xhbmcKIAkJdm1vdmUgdXNyL3NoYXJlL21hbi9tYW4xL2NsYW5n LjEKIAl9CiB9CkBAIC0yOTksNyArMzAwLDcgQEAgbGxkX3BhY2thZ2UoKSB7CiAJCXZtb3ZlIHVz ci9iaW4vd2FzbS1sZAogCQl2bW92ZSB1c3IvYmluL2xkLmxsZCoKIAkJdm1vdmUgdXNyL2Jpbi9s ZDY0LmxsZCoKLQkJdm1vdmUgdXNyL3NoYXJlL2RvYy9sbGQKKwkJdm1vdmUgdXNyL3NoYXJlL2Rv Yy9MTFZNL2xsZAogCX0KIH0KIApAQCAtMzUzLDcgKzM1NCw2IEBAIGxsdm0tbGlidW53aW5kLWRl dmVsX3BhY2thZ2UoKSB7CiAJCXZtb3ZlIHVzci9saWIvbGlidW53aW5kLmEKIAkJdm1vdmUgInVz ci9pbmNsdWRlLyp1bndpbmQqIgogCQl2bW92ZSB1c3IvaW5jbHVkZS9tYWNoLW8KLQkJdm1vdmUg dXNyL3NoYXJlL2RvYy9saWJ1bndpbmQKIAl9CiB9CiAKQEAgLTM4OSw3ICszODksNiBAQCBsaWJj eHgtZGV2ZWxfcGFja2FnZSgpIHsKIAkJdm1vdmUgdXNyL2xpYi9saWJjKysuYQogCQl2bW92ZSB1 c3IvbGliL2xpYmMrK2V4cGVyaW1lbnRhbC5hCiAJCXZtb3ZlIHVzci9pbmNsdWRlL2MrKwotCQl2 bW92ZSB1c3Ivc2hhcmUvZG9jL2xpYmN4eAogCX0KIH0KIApAQCAtMzk5LDcgKzM5OCw2IEBAIGxp Ym9tcF9wYWNrYWdlKCkgewogCQl2bW92ZSB1c3IvbGliL2xpYm9tcC5zbwogCQl2bW92ZSAidXNy L2xpYi9saWJvbXB0YXJnZXQucnRsLiouc28iCiAJCXZtb3ZlIHVzci9saWIvbGliYXJjaGVyLnNv Ci0JCXZtb3ZlICJ1c3IvbGliL2xpYm9tcCouc28uKiIKIAl9CiB9CiAKQEAgLTQxMSw4ICs0MDks NiBAQCBsaWJvbXAtZGV2ZWxfcGFja2FnZSgpIHsKIAkJdm1vdmUgInVzci9saWIvbGliYXJjaGVy KiIKIAkJdm1vdmUgInVzci9pbmNsdWRlL29tcCouaCIKIAkJdm1vdmUgInVzci9saWIvY2xhbmcv JHt2ZXJzaW9ufS9pbmNsdWRlL29tcCouaCIKLQkJdm1vdmUgdXNyL3NoYXJlL21hbi9tYW4xL2xs dm1vcGVubXAuMQotCQl2bW92ZSB1c3Ivc2hhcmUvZG9jL29wZW5tcAogCX0KIH0KIAoKRnJvbSAx MGVkZGNiNTRmNDU1ZTM1OGM0Yjc0ZWYyMTI0OGZhYzk4NjE4MzY0IE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQpGcm9tOiBwcmV6IDxwcmV6QG5hdGlvbmFsLnNoaXRwb3N0aW5nLmFnZW5jeT4KRGF0 ZTogTW9uLCAyIE1heSAyMDIyIDIxOjM2OjMyICswMjAwClN1YmplY3Q6IFtQQVRDSCAwMy8yM10g bGx2bTEyOiBkcm9wIG5vbi1sbHZtIGNvbXBvbmVudHMKCi0tLQogLi4uY2xhbmctMDAxLWZpeC11 bndpbmQtY2hhaW4taW5jbHVzaW9uLnBhdGNoIHwgIDQ0IC0tLQogLi4uL3BhdGNoZXMvY2xhbmct MDAyLWFkZC1tdXNsLXRyaXBsZXMucGF0Y2ggIHwgMTEwIC0tLS0tLS0KIC4uLi9jbGFuZy0wMDMt cHBjNjQtZHluYW1pYy1saW5rZXItcGF0aC5wYXRjaCB8ICAxMyAtCiAuLi4vcGF0Y2hlcy9jbGFu Zy0wMDQtcHBjNjQtbXVzbC1lbGZ2Mi5wYXRjaCAgfCAgNDggLS0tCiAuLi4vY29tcGlsZXItcnQt YWFyY2g2NC11Y29udGV4dC5wYXRjaCAgICAgICAgfCAgMTEgLQogLi4uL2NvbXBpbGVyLXJ0LXNh bml0aXplci1wcGM2NC1tdXNsLnBhdGNoICAgIHwgIDM1IC0tCiAuLi4vbGx2bTEyL3BhdGNoZXMv Y29tcGlsZXItcnQtc2l6ZV90LnBhdGNoICAgfCAgMTAgLQogLi4uL3BhdGNoZXMvY29tcGlsZXIt cnQteHJheS1wcGM2NC1tdXNsLnBhdGNoIHwgIDYyIC0tLS0KIHNyY3BrZ3MvbGx2bTEyL3BhdGNo ZXMvbGliY3h4LW11c2wucGF0Y2ggICAgICB8ICAyNiAtLQogc3JjcGtncy9sbHZtMTIvcGF0Y2hl cy9saWJjeHgtcHBjLnBhdGNoICAgICAgIHwgIDIyIC0tCiAuLi4vbGx2bTEyL3BhdGNoZXMvbGli Y3h4LXNzcC1ub25zaGFyZWQucGF0Y2ggfCAgMTEgLQogc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9s aWJjeHhhYmktZGwucGF0Y2ggICAgIHwgIDI1IC0tCiBzcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2xp YnVud2luZC1wcGMzMi5wYXRjaCAgfCAgNjMgLS0tLQogc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9s bGRiLW11c2wucGF0Y2ggICAgICAgIHwgIDMxIC0tCiAuLi4vbGx2bTEyL3BhdGNoZXMvcHBjMzIt Y29tcGlsZXItcnQucGF0Y2ggICAgfCAgMjEgLS0KIHNyY3BrZ3MvbGx2bTEyL3RlbXBsYXRlICAg ICAgICAgICAgICAgICAgICAgICB8IDMwMSArLS0tLS0tLS0tLS0tLS0tLS0KIDE2IGZpbGVzIGNo YW5nZWQsIDEgaW5zZXJ0aW9uKCspLCA4MzIgZGVsZXRpb25zKC0pCiBkZWxldGUgbW9kZSAxMDA2 NDQgc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9jbGFuZy0wMDEtZml4LXVud2luZC1jaGFpbi1pbmNs dXNpb24ucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2Ns YW5nLTAwMi1hZGQtbXVzbC10cmlwbGVzLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtn cy9sbHZtMTIvcGF0Y2hlcy9jbGFuZy0wMDMtcHBjNjQtZHluYW1pYy1saW5rZXItcGF0aC5wYXRj aAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvY2xhbmctMDA0LXBw YzY0LW11c2wtZWxmdjIucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xsdm0xMi9w YXRjaGVzL2NvbXBpbGVyLXJ0LWFhcmNoNjQtdWNvbnRleHQucGF0Y2gKIGRlbGV0ZSBtb2RlIDEw MDY0NCBzcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2NvbXBpbGVyLXJ0LXNhbml0aXplci1wcGM2NC1t dXNsLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9jb21w aWxlci1ydC1zaXplX3QucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xsdm0xMi9w YXRjaGVzL2NvbXBpbGVyLXJ0LXhyYXktcHBjNjQtbXVzbC5wYXRjaAogZGVsZXRlIG1vZGUgMTAw NjQ0IHNyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvbGliY3h4LW11c2wucGF0Y2gKIGRlbGV0ZSBtb2Rl IDEwMDY0NCBzcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2xpYmN4eC1wcGMucGF0Y2gKIGRlbGV0ZSBt b2RlIDEwMDY0NCBzcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2xpYmN4eC1zc3Atbm9uc2hhcmVkLnBh dGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9saWJjeHhhYmkt ZGwucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2xpYnVu d2luZC1wcGMzMi5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGx2bTEyL3BhdGNo ZXMvbGxkYi1tdXNsLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9sbHZtMTIvcGF0 Y2hlcy9wcGMzMi1jb21waWxlci1ydC5wYXRjaAoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bTEy L3BhdGNoZXMvY2xhbmctMDAxLWZpeC11bndpbmQtY2hhaW4taW5jbHVzaW9uLnBhdGNoIGIvc3Jj cGtncy9sbHZtMTIvcGF0Y2hlcy9jbGFuZy0wMDEtZml4LXVud2luZC1jaGFpbi1pbmNsdXNpb24u cGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU0ZWFhNzc4M2U3YS4uMDAwMDAw MDAwMDAwCi0tLSBhL3NyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvY2xhbmctMDAxLWZpeC11bndpbmQt Y2hhaW4taW5jbHVzaW9uLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNDQgKzAsMCBAQAotRnJv bSAzNTI5NzQxNjlmMGQyYjVkYTNkNTMyMWY1ODhmNWUzYjU5NDEzMzBlIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQotRnJvbTogQW5kcmVhIEJyYW5jYWxlb25pIDxtaXdheGVAZ21haWwuY29tPgot RGF0ZTogVHVlLCA4IFNlcCAyMDE1IDIyOjE0OjU3ICswMjAwCi1TdWJqZWN0OiBbUEFUQ0ggMi83 XSBmaXggdW53aW5kIGNoYWluIGluY2x1c2lvbgotCi0tLS0KLSBsaWIvSGVhZGVycy91bndpbmQu aCB8IDkgKysrKystLS0tCi0gMSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKSwgNCBkZWxl dGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2xpYi9IZWFkZXJzL3Vud2luZC5oIGIvbGliL0hlYWRl cnMvdW53aW5kLmgKLWluZGV4IDMwM2Q3OTIuLjQ0ZTEwY2MgMTAwNjQ0Ci0tLS0gYS9jbGFuZy9s aWIvSGVhZGVycy91bndpbmQuaAotKysrIGIvY2xhbmcvbGliL0hlYWRlcnMvdW53aW5kLmgKLUBA IC05LDkgKzksNiBAQAotIAotIC8qIFNlZSAiRGF0YSBEZWZpbml0aW9ucyBmb3IgbGliZ2NjX3Mi IGluIHRoZSBMaW51eCBTdGFuZGFyZCBCYXNlLiovCi0gCi0tI2lmbmRlZiBfX0NMQU5HX1VOV0lO RF9ICi0tI2RlZmluZSBfX0NMQU5HX1VOV0lORF9ICi0tCi0gI2lmIGRlZmluZWQoX19BUFBMRV9f KSAmJiBfX2hhc19pbmNsdWRlX25leHQoPHVud2luZC5oPikKLSAvKiBEYXJ3aW4gKGZyb20gMTEu eCBvbikgcHJvdmlkZSBhbiB1bndpbmQuaC4gSWYgdGhhdCdzIGF2YWlsYWJsZSwKLSAgKiB1c2Ug aXQuIGxpYnVud2luZCB3cmFwcyBzb21lIG9mIGl0cyBkZWZpbml0aW9ucyBpbiAjaWZkZWYgX0dO VV9TT1VSQ0UsCi1AQCAtMzksNiArMzYsOSBAQAotICMgZW5kaWYKLSAjZWxzZQotIAotKyNpZm5k ZWYgX19DTEFOR19VTldJTkRfSAotKyNkZWZpbmUgX19DTEFOR19VTldJTkRfSAotKwotICNpbmNs dWRlIDxzdGRpbnQuaD4KLSAKLSAjaWZkZWYgX19jcGx1c3BsdXMKLUBAIC0zMjIsNiArMzIyLDcg QEAgX1Vud2luZF9QdHIgX1Vud2luZF9HZXRUZXh0UmVsQmFzZShzdHJ1Y3QgX1Vud2luZF9Db250 ZXh0ICopOwotIH0KLSAjZW5kaWYKLSAKLSsjZW5kaWYgLyogX19DTEFOR19VTldJTkRfSCAqLwot KwotICNlbmRpZgotIAotLSNlbmRpZiAvKiBfX0NMQU5HX1VOV0lORF9IICovCi0tLSAKLTIuNS4x CmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2NsYW5nLTAwMi1hZGQtbXVzbC10 cmlwbGVzLnBhdGNoIGIvc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9jbGFuZy0wMDItYWRkLW11c2wt dHJpcGxlcy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjU2ODhkNDBkYmMy Li4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9jbGFuZy0wMDItYWRk LW11c2wtdHJpcGxlcy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDExMCArMCwwIEBACi0tLS0g YS9jbGFuZy9saWIvRHJpdmVyL1Rvb2xDaGFpbnMvR251LmNwcAotKysrIGIvY2xhbmcvbGliL0Ry aXZlci9Ub29sQ2hhaW5zL0dudS5jcHAKLUBAIC0yMDg2LDcgKzIwODYsOCBAQCB2b2lkIEdlbmVy aWNfR0NDOjpHQ0NJbnN0YWxsYXRpb25EZXRlY3Rvcjo6QWRkRGVmYXVsdEdDQ1ByZWZpeGVzKAot ICAgc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IEFSTUhGVHJpcGxlc1tdID0geyJhcm0tbGludXgt Z251ZWFiaWhmIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAiYXJtdjdobC1yZWRoYXQtbGludXgtZ251ZWFiaSIsCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgImFybXY2aGwtc3VzZS1saW51eC1nbnVlYWJpIiwKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYXJtdjdobC1zdXNl LWxpbnV4LWdudWVhYmkifTsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAiYXJtdjdobC1zdXNlLWxpbnV4LWdudWVhYmkiLAotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhcm12N2wtbGludXgtZ251ZWFiaWhmIn07Ci0g ICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgQVJNZWJMaWJEaXJzW10gPSB7Ii9saWIifTsKLSAg IHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBBUk1lYlRyaXBsZXNbXSA9IHsiYXJtZWItbGludXgt Z251ZWFiaSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ImFybWViLWxpbnV4LWFuZHJvaWRlYWJpIn07Ci1AQCAtMjE1Myw4ICsyMTU0LDcgQEAgdm9pZCBH ZW5lcmljX0dDQzo6R0NDSW5zdGFsbGF0aW9uRGV0ZWN0b3I6OkFkZERlZmF1bHRHQ0NQcmVmaXhl cygKLSAgICAgICAicG93ZXJwYzY0LXN1c2UtbGludXgiLCAicG93ZXJwYy1tb250YXZpc3RhLWxp bnV4c3BlIn07Ci0gICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgUFBDTEVMaWJEaXJzW10gPSB7 Ii9saWIzMiIsICIvbGliIn07Ci0gICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgUFBDTEVUcmlw bGVzW10gPSB7InBvd2VycGNsZS1saW51eC1nbnUiLAotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICJwb3dlcnBjbGUtdW5rbm93bi1saW51eC1nbnUiLAotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwb3dlcnBjbGUtbGlu dXgtbXVzbCJ9OwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICJwb3dlcnBjbGUtdW5rbm93bi1saW51eC1nbnUifTsKLSAKLSAgIHN0YXRpYyBjb25zdCBjaGFy ICpjb25zdCBQUEM2NExpYkRpcnNbXSA9IHsiL2xpYjY0IiwgIi9saWIifTsKLSAgIHN0YXRpYyBj b25zdCBjaGFyICpjb25zdCBQUEM2NFRyaXBsZXNbXSA9IHsKLUBAIC0yMjM1LDYgKzIyMzUsODcg QEAgdm9pZCBHZW5lcmljX0dDQzo6R0NDSW5zdGFsbGF0aW9uRGV0ZWN0b3I6OkFkZERlZmF1bHRH Q0NQcmVmaXhlcygKLSAgICAgcmV0dXJuOwotICAgfQotIAotKyAgaWYgKFRhcmdldFRyaXBsZS5p c011c2woKSkgewotKyAgICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgQUFyY2g2NE11c2xUcmlw bGVzW10gPSB7ImFhcmNoNjQtbGludXgtbXVzbCJ9OwotKyAgICBzdGF0aWMgY29uc3QgY2hhciAq Y29uc3QgQVJNSEZNdXNsVHJpcGxlc1tdID0gewotKyAgICAgICAgImFybS1saW51eC1tdXNsZWFi aWhmIiwgImFybXY3bC1saW51eC1tdXNsZWFiaWhmIgotKyAgICB9OwotKyAgICBzdGF0aWMgY29u c3QgY2hhciAqY29uc3QgQVJNTXVzbFRyaXBsZXNbXSA9IHsiYXJtLWxpbnV4LW11c2xlYWJpIn07 Ci0rICAgIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBYODZfNjRNdXNsVHJpcGxlc1tdID0geyJ4 ODZfNjQtbGludXgtbXVzbCJ9OwotKyAgICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgWDg2TXVz bFRyaXBsZXNbXSA9IHsiaTY4Ni1saW51eC1tdXNsIn07Ci0rICAgIHN0YXRpYyBjb25zdCBjaGFy ICpjb25zdCBNSVBTTXVzbFRyaXBsZXNbXSA9IHsKLSsgICAgICAgICJtaXBzLWxpbnV4LW11c2wi LCAibWlwc2VsLWxpbnV4LW11c2wiLAotKyAgICAgICAgIm1pcHNlbC1saW51eC1tdXNsaGYiLCAi bWlwcy1saW51eC1tdXNsaGYiCi0rICAgIH07Ci0rICAgIHN0YXRpYyBjb25zdCBjaGFyICpjb25z dCBQUENNdXNsVHJpcGxlc1tdID0geyJwb3dlcnBjLWxpbnV4LW11c2wifTsKLSsgICAgc3RhdGlj IGNvbnN0IGNoYXIgKmNvbnN0IFBQQ0xFTXVzbFRyaXBsZXNbXSA9IHsicG93ZXJwY2xlLWxpbnV4 LW11c2wifTsKLSsgICAgc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IFBQQzY0TXVzbFRyaXBsZXNb XSA9IHsicG93ZXJwYzY0LWxpbnV4LW11c2wifTsKLSsgICAgc3RhdGljIGNvbnN0IGNoYXIgKmNv bnN0IFBQQzY0TEVNdXNsVHJpcGxlc1tdID0geyJwb3dlcnBjNjRsZS1saW51eC1tdXNsIn07Ci0r Ci0rICAgIHN3aXRjaCAoVGFyZ2V0VHJpcGxlLmdldEFyY2goKSkgewotKyAgICBjYXNlIGxsdm06 OlRyaXBsZTo6YWFyY2g2NDoKLSsgICAgICBMaWJEaXJzLmFwcGVuZChiZWdpbihBQXJjaDY0TGli RGlycyksIGVuZChBQXJjaDY0TGliRGlycykpOwotKyAgICAgIFRyaXBsZUFsaWFzZXMuYXBwZW5k KGJlZ2luKEFBcmNoNjRNdXNsVHJpcGxlcyksIGVuZChBQXJjaDY0TXVzbFRyaXBsZXMpKTsKLSsg ICAgICBCaWFyY2hMaWJEaXJzLmFwcGVuZChiZWdpbihBQXJjaDY0TGliRGlycyksIGVuZChBQXJj aDY0TGliRGlycykpOwotKyAgICAgIEJpYXJjaFRyaXBsZUFsaWFzZXMuYXBwZW5kKGJlZ2luKEFB cmNoNjRNdXNsVHJpcGxlcyksIGVuZChBQXJjaDY0TXVzbFRyaXBsZXMpKTsKLSsgICAgICBicmVh azsKLSsgICAgY2FzZSBsbHZtOjpUcmlwbGU6OmFybToKLSsgICAgICBMaWJEaXJzLmFwcGVuZChi ZWdpbihBUk1MaWJEaXJzKSwgZW5kKEFSTUxpYkRpcnMpKTsKLSsgICAgICBpZiAoVGFyZ2V0VHJp cGxlLmdldEVudmlyb25tZW50KCkgPT0gbGx2bTo6VHJpcGxlOjpNdXNsRUFCSUhGKSB7Ci0rICAg ICAgICBUcmlwbGVBbGlhc2VzLmFwcGVuZChiZWdpbihBUk1IRk11c2xUcmlwbGVzKSwgZW5kKEFS TUhGTXVzbFRyaXBsZXMpKTsKLSsgICAgICB9IGVsc2UgewotKyAgICAgICAgVHJpcGxlQWxpYXNl cy5hcHBlbmQoYmVnaW4oQVJNTXVzbFRyaXBsZXMpLCBlbmQoQVJNTXVzbFRyaXBsZXMpKTsKLSsg ICAgICB9Ci0rICAgICAgYnJlYWs7Ci0rICAgIGNhc2UgbGx2bTo6VHJpcGxlOjp4ODZfNjQ6Ci0r ICAgICAgTGliRGlycy5hcHBlbmQoYmVnaW4oWDg2XzY0TGliRGlycyksIGVuZChYODZfNjRMaWJE aXJzKSk7Ci0rICAgICAgVHJpcGxlQWxpYXNlcy5hcHBlbmQoYmVnaW4oWDg2XzY0TXVzbFRyaXBs ZXMpLCBlbmQoWDg2XzY0TXVzbFRyaXBsZXMpKTsKLSsgICAgICBCaWFyY2hMaWJEaXJzLmFwcGVu ZChiZWdpbihYODZMaWJEaXJzKSwgZW5kKFg4NkxpYkRpcnMpKTsKLSsgICAgICBCaWFyY2hUcmlw bGVBbGlhc2VzLmFwcGVuZChiZWdpbihYODZNdXNsVHJpcGxlcyksIGVuZChYODZNdXNsVHJpcGxl cykpOwotKyAgICAgIGJyZWFrOwotKyAgICBjYXNlIGxsdm06OlRyaXBsZTo6eDg2OgotKyAgICAg IExpYkRpcnMuYXBwZW5kKGJlZ2luKFg4NkxpYkRpcnMpLCBlbmQoWDg2TGliRGlycykpOwotKyAg ICAgIFRyaXBsZUFsaWFzZXMuYXBwZW5kKGJlZ2luKFg4Nk11c2xUcmlwbGVzKSwgZW5kKFg4Nk11 c2xUcmlwbGVzKSk7Ci0rICAgICAgQmlhcmNoTGliRGlycy5hcHBlbmQoYmVnaW4oWDg2XzY0TGli RGlycyksIGVuZChYODZfNjRMaWJEaXJzKSk7Ci0rICAgICAgQmlhcmNoVHJpcGxlQWxpYXNlcy5h cHBlbmQoYmVnaW4oWDg2XzY0TXVzbFRyaXBsZXMpLCBlbmQoWDg2XzY0TXVzbFRyaXBsZXMpKTsK LSsgICAgICBicmVhazsKLSsgICAgY2FzZSBsbHZtOjpUcmlwbGU6Om1pcHM6Ci0rICAgICAgTGli RGlycy5hcHBlbmQoYmVnaW4oTUlQU0xpYkRpcnMpLCBlbmQoTUlQU0xpYkRpcnMpKTsKLSsgICAg ICBUcmlwbGVBbGlhc2VzLmFwcGVuZChiZWdpbihNSVBTTXVzbFRyaXBsZXMpLCBlbmQoTUlQU011 c2xUcmlwbGVzKSk7Ci0rICAgICAgYnJlYWs7Ci0rICAgIGNhc2UgbGx2bTo6VHJpcGxlOjpwcGM6 Ci0rICAgICAgTGliRGlycy5hcHBlbmQoYmVnaW4oUFBDTGliRGlycyksIGVuZChQUENMaWJEaXJz KSk7Ci0rICAgICAgVHJpcGxlQWxpYXNlcy5hcHBlbmQoYmVnaW4oUFBDTXVzbFRyaXBsZXMpLCBl bmQoUFBDTXVzbFRyaXBsZXMpKTsKLSsgICAgICBCaWFyY2hMaWJEaXJzLmFwcGVuZChiZWdpbihQ UEM2NExpYkRpcnMpLCBlbmQoUFBDNjRMaWJEaXJzKSk7Ci0rICAgICAgQmlhcmNoVHJpcGxlQWxp YXNlcy5hcHBlbmQoYmVnaW4oUFBDNjRNdXNsVHJpcGxlcyksIGVuZChQUEM2NE11c2xUcmlwbGVz KSk7Ci0rICAgICAgYnJlYWs7Ci0rICAgIGNhc2UgbGx2bTo6VHJpcGxlOjpwcGNsZToKLSsgICAg ICBMaWJEaXJzLmFwcGVuZChiZWdpbihQUENMRUxpYkRpcnMpLCBlbmQoUFBDTEVMaWJEaXJzKSk7 Ci0rICAgICAgVHJpcGxlQWxpYXNlcy5hcHBlbmQoYmVnaW4oUFBDTEVNdXNsVHJpcGxlcyksIGVu ZChQUENMRU11c2xUcmlwbGVzKSk7Ci0rICAgICAgQmlhcmNoTGliRGlycy5hcHBlbmQoYmVnaW4o UFBDNjRMRUxpYkRpcnMpLCBlbmQoUFBDNjRMRUxpYkRpcnMpKTsKLSsgICAgICBCaWFyY2hUcmlw bGVBbGlhc2VzLmFwcGVuZChiZWdpbihQUEM2NExFTXVzbFRyaXBsZXMpLCBlbmQoUFBDNjRMRU11 c2xUcmlwbGVzKSk7Ci0rICAgICAgYnJlYWs7Ci0rICAgIGNhc2UgbGx2bTo6VHJpcGxlOjpwcGM2 NDoKLSsgICAgICBMaWJEaXJzLmFwcGVuZChiZWdpbihQUEM2NExpYkRpcnMpLCBlbmQoUFBDNjRM aWJEaXJzKSk7Ci0rICAgICAgVHJpcGxlQWxpYXNlcy5hcHBlbmQoYmVnaW4oUFBDNjRNdXNsVHJp cGxlcyksIGVuZChQUEM2NE11c2xUcmlwbGVzKSk7Ci0rICAgICAgQmlhcmNoTGliRGlycy5hcHBl bmQoYmVnaW4oUFBDTGliRGlycyksIGVuZChQUENMaWJEaXJzKSk7Ci0rICAgICAgQmlhcmNoVHJp cGxlQWxpYXNlcy5hcHBlbmQoYmVnaW4oUFBDTXVzbFRyaXBsZXMpLCBlbmQoUFBDTXVzbFRyaXBs ZXMpKTsKLSsgICAgICBicmVhazsKLSsgICAgY2FzZSBsbHZtOjpUcmlwbGU6OnBwYzY0bGU6Ci0r ICAgICAgTGliRGlycy5hcHBlbmQoYmVnaW4oUFBDNjRMRUxpYkRpcnMpLCBlbmQoUFBDNjRMRUxp YkRpcnMpKTsKLSsgICAgICBUcmlwbGVBbGlhc2VzLmFwcGVuZChiZWdpbihQUEM2NExFTXVzbFRy aXBsZXMpLCBlbmQoUFBDNjRMRU11c2xUcmlwbGVzKSk7Ci0rICAgICAgQmlhcmNoTGliRGlycy5h cHBlbmQoYmVnaW4oUFBDTEVMaWJEaXJzKSwgZW5kKFBQQ0xFTGliRGlycykpOwotKyAgICAgIEJp YXJjaFRyaXBsZUFsaWFzZXMuYXBwZW5kKGJlZ2luKFBQQ0xFTXVzbFRyaXBsZXMpLCBlbmQoUFBD TEVNdXNsVHJpcGxlcykpOwotKyAgICAgIGJyZWFrOwotKyAgICBkZWZhdWx0OgotKyAgICAgIGJy ZWFrOwotKyAgICB9Ci0rICAgIFRyaXBsZUFsaWFzZXMucHVzaF9iYWNrKFRhcmdldFRyaXBsZS5z dHIoKSk7Ci0rICAgIGlmIChUYXJnZXRUcmlwbGUuc3RyKCkgIT0gQmlhcmNoVHJpcGxlLnN0cigp KQotKyAgICAgIEJpYXJjaFRyaXBsZUFsaWFzZXMucHVzaF9iYWNrKEJpYXJjaFRyaXBsZS5zdHIo KSk7Ci0rICAgIHJldHVybjsKLSsgIH0KLSsKLSAgIC8vIEFuZHJvaWQgdGFyZ2V0cyBzaG91bGQg bm90IHVzZSBHTlUvTGludXggdG9vbHMgb3IgbGlicmFyaWVzLgotICAgaWYgKFRhcmdldFRyaXBs ZS5pc0FuZHJvaWQoKSkgewotICAgICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgQUFyY2g2NEFu ZHJvaWRUcmlwbGVzW10gPSB7CmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2Ns YW5nLTAwMy1wcGM2NC1keW5hbWljLWxpbmtlci1wYXRoLnBhdGNoIGIvc3JjcGtncy9sbHZtMTIv cGF0Y2hlcy9jbGFuZy0wMDMtcHBjNjQtZHluYW1pYy1saW5rZXItcGF0aC5wYXRjaApkZWxldGVk IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGFkNjQxMmQxZTZjLi4wMDAwMDAwMDAwMDAKLS0tIGEv c3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9jbGFuZy0wMDMtcHBjNjQtZHluYW1pYy1saW5rZXItcGF0 aC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDEzICswLDAgQEAKLS0tLSBhL2NsYW5nL2xpYi9E cml2ZXIvVG9vbENoYWlucy9MaW51eC5jcHAKLSsrKyBiL2NsYW5nL2xpYi9Ecml2ZXIvVG9vbENo YWlucy9MaW51eC5jcHAKLUBAIC01MDQsMTAgKzUwNCw2IEBAIHN0ZDo6c3RyaW5nIExpbnV4Ojpn ZXREeW5hbWljTGlua2VyKGNvbnN0IEFyZ0xpc3QgJkFyZ3MpIGNvbnN0IHsKLSAgICAgTG9hZGVy ID0gImxkLnNvLjEiOwotICAgICBicmVhazsKLSAgIGNhc2UgbGx2bTo6VHJpcGxlOjpwcGM2NDoK LS0gICAgTGliRGlyID0gImxpYjY0IjsKLS0gICAgTG9hZGVyID0KLS0gICAgICAgICh0b29sczo6 cHBjOjpoYXNQUENBYmlBcmcoQXJncywgImVsZnYyIikpID8gImxkNjQuc28uMiIgOiAibGQ2NC5z by4xIjsKLS0gICAgYnJlYWs7Ci0gICBjYXNlIGxsdm06OlRyaXBsZTo6cHBjNjRsZToKLSAgICAg TGliRGlyID0gImxpYjY0IjsKLSAgICAgTG9hZGVyID0KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2 bTEyL3BhdGNoZXMvY2xhbmctMDA0LXBwYzY0LW11c2wtZWxmdjIucGF0Y2ggYi9zcmNwa2dzL2xs dm0xMi9wYXRjaGVzL2NsYW5nLTAwNC1wcGM2NC1tdXNsLWVsZnYyLnBhdGNoCmRlbGV0ZWQgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAyMWZjODAwM2M1ZjEuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNw a2dzL2xsdm0xMi9wYXRjaGVzL2NsYW5nLTAwNC1wcGM2NC1tdXNsLWVsZnYyLnBhdGNoCisrKyAv ZGV2L251bGwKQEAgLTEsNDggKzAsMCBAQAotLS0tIGEvY2xhbmcvbGliL0Jhc2ljL1RhcmdldHMv UFBDLmgKLSsrKyBiL2NsYW5nL2xpYi9CYXNpYy9UYXJnZXRzL1BQQy5oCi1AQCAtNDE1LDExICs0 MTUsMTAgQEAgcHVibGljOgotICAgICAgIExvbmdEb3VibGVGb3JtYXQgPSAmbGx2bTo6QVBGbG9h dDo6SUVFRWRvdWJsZSgpOwotICAgICB9IGVsc2UgaWYgKChUcmlwbGUuZ2V0QXJjaCgpID09IGxs dm06OlRyaXBsZTo6cHBjNjRsZSkpIHsKLSAgICAgICBEYXRhTGF5b3V0ID0gImUtbTplLWk2NDo2 NC1uMzI6NjQiOwotLSAgICAgIEFCSSA9ICJlbGZ2MiI7Ci0gICAgIH0gZWxzZSB7Ci0gICAgICAg RGF0YUxheW91dCA9ICJFLW06ZS1pNjQ6NjQtbjMyOjY0IjsKLS0gICAgICBBQkkgPSAiZWxmdjEi OwotICAgICB9Ci0rICAgIEFCSSA9ICJlbGZ2MiI7Ci0gCi0gICAgIGlmIChUcmlwbGUuaXNPU0Zy ZWVCU0QoKSB8fCBUcmlwbGUuaXNPU09wZW5CU0QoKSB8fCBUcmlwbGUuaXNNdXNsKCkpIHsKLSAg ICAgICBMb25nRG91YmxlV2lkdGggPSBMb25nRG91YmxlQWxpZ24gPSA2NDsKLS0tLSBhL2NsYW5n L2xpYi9Db2RlR2VuL1RhcmdldEluZm8uY3BwCi0rKysgYi9jbGFuZy9saWIvQ29kZUdlbi9UYXJn ZXRJbmZvLmNwcAotQEAgLTEwOTI3LDkgKzEwOTI3LDkgQEAgY29uc3QgVGFyZ2V0Q29kZUdlbklu Zm8gJkNvZGVHZW5Nb2R1bGU6OmdldFRhcmdldENvZGVHZW5JbmZvKCkgewotICAgICAgIHJldHVy biBTZXRDR0luZm8obmV3IEFJWFRhcmdldENvZGVHZW5JbmZvKFR5cGVzLCAvKklzNjRCaXQqLyB0 cnVlKSk7Ci0gCi0gICAgIGlmIChUcmlwbGUuaXNPU0JpbkZvcm1hdEVMRigpKSB7Ci0tICAgICAg UFBDNjRfU1ZSNF9BQklJbmZvOjpBQklLaW5kIEtpbmQgPSBQUEM2NF9TVlI0X0FCSUluZm86OkVM RnYxOwotLSAgICAgIGlmIChnZXRUYXJnZXQoKS5nZXRBQkkoKSA9PSAiZWxmdjIiKQotLSAgICAg ICAgS2luZCA9IFBQQzY0X1NWUjRfQUJJSW5mbzo6RUxGdjI7Ci0rICAgICAgUFBDNjRfU1ZSNF9B QklJbmZvOjpBQklLaW5kIEtpbmQgPSBQUEM2NF9TVlI0X0FCSUluZm86OkVMRnYyOwotKyAgICAg IGlmIChnZXRUYXJnZXQoKS5nZXRBQkkoKSA9PSAiZWxmdjEiKQotKyAgICAgICAgS2luZCA9IFBQ QzY0X1NWUjRfQUJJSW5mbzo6RUxGdjE7Ci0gICAgICAgYm9vbCBJc1NvZnRGbG9hdCA9IENvZGVH ZW5PcHRzLkZsb2F0QUJJID09ICJzb2Z0IjsKLSAKLSAgICAgICByZXR1cm4gU2V0Q0dJbmZvKAot LS0tIGEvY2xhbmcvbGliL0RyaXZlci9Ub29sQ2hhaW5zL0NsYW5nLmNwcAotKysrIGIvY2xhbmcv bGliL0RyaXZlci9Ub29sQ2hhaW5zL0NsYW5nLmNwcAotQEAgLTE5MjAsMTQgKzE5MjAsNyBAQCB2 b2lkIENsYW5nOjpBZGRQUENUYXJnZXRBcmdzKGNvbnN0IEFyZ0xpc3QgJkFyZ3MsCi0gICBjb25z dCBsbHZtOjpUcmlwbGUgJlQgPSBnZXRUb29sQ2hhaW4oKS5nZXRUcmlwbGUoKTsKLSAgIGlmIChU LmlzT1NCaW5Gb3JtYXRFTEYoKSkgewotICAgICBzd2l0Y2ggKGdldFRvb2xDaGFpbigpLmdldEFy Y2goKSkgewotLSAgICBjYXNlIGxsdm06OlRyaXBsZTo6cHBjNjQ6IHsKLS0gICAgICBpZiAoKFQu aXNPU0ZyZWVCU0QoKSAmJiBULmdldE9TTWFqb3JWZXJzaW9uKCkgPj0gMTMpIHx8Ci0tICAgICAg ICAgIFQuaXNPU09wZW5CU0QoKSB8fCBULmlzTXVzbCgpKQotLSAgICAgICAgQUJJTmFtZSA9ICJl bGZ2MiI7Ci0tICAgICAgZWxzZQotLSAgICAgICAgQUJJTmFtZSA9ICJlbGZ2MSI7Ci0tICAgICAg YnJlYWs7Ci0tICAgIH0KLSsgICAgY2FzZSBsbHZtOjpUcmlwbGU6OnBwYzY0OgotICAgICBjYXNl IGxsdm06OlRyaXBsZTo6cHBjNjRsZToKLSAgICAgICBBQklOYW1lID0gImVsZnYyIjsKLSAgICAg ICBicmVhazsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvY29tcGlsZXItcnQt YWFyY2g2NC11Y29udGV4dC5wYXRjaCBiL3NyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvY29tcGlsZXIt cnQtYWFyY2g2NC11Y29udGV4dC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg ODkzYzA1OWQ3YjhkLi4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9j b21waWxlci1ydC1hYXJjaDY0LXVjb250ZXh0LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTEg KzAsMCBAQAotLS0tIGEvY29tcGlsZXItcnQvbGliL3Nhbml0aXplcl9jb21tb24vc2FuaXRpemVy X2xpbnV4LmNwcC5vcmlnCi0rKysgYi9jb21waWxlci1ydC9saWIvc2FuaXRpemVyX2NvbW1vbi9z YW5pdGl6ZXJfbGludXguY3BwCi1AQCAtMTc5OSw3ICsxNzk5LDcgQEAKLSAKLSBzdGF0aWMgYm9v bCBBYXJjaDY0R2V0RVNSKHVjb250ZXh0X3QgKnVjb250ZXh0LCB1NjQgKmVzcikgewotICAgc3Rh dGljIGNvbnN0IHUzMiBrRXNyTWFnaWMgPSAweDQ1NTM1MjAxOwotLSAgdTggKmF1eCA9IHVjb250 ZXh0LT51Y19tY29udGV4dC5fX3Jlc2VydmVkOwotKyAgdTggKmF1eCA9IHJlaW50ZXJwcmV0X2Nh c3Q8dTggKj4odWNvbnRleHQtPnVjX21jb250ZXh0Ll9fcmVzZXJ2ZWQpOwotICAgd2hpbGUgKHRy dWUpIHsKLSAgICAgX2FhcmNoNjRfY3R4ICpjdHggPSAoX2FhcmNoNjRfY3R4ICopYXV4OwotICAg ICBpZiAoY3R4LT5zaXplID09IDApIGJyZWFrOwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtMTIv cGF0Y2hlcy9jb21waWxlci1ydC1zYW5pdGl6ZXItcHBjNjQtbXVzbC5wYXRjaCBiL3NyY3BrZ3Mv bGx2bTEyL3BhdGNoZXMvY29tcGlsZXItcnQtc2FuaXRpemVyLXBwYzY0LW11c2wucGF0Y2gKZGVs ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM1ZjE2ZDI0ZjM0MC4uMDAwMDAwMDAwMDAwCi0t LSBhL3NyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvY29tcGlsZXItcnQtc2FuaXRpemVyLXBwYzY0LW11 c2wucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwzNSArMCwwIEBACi0tLS0gYS9jb21waWxlci1y dC9saWIvc2FuaXRpemVyX2NvbW1vbi9zYW5pdGl6ZXJfbGludXguY3BwCi0rKysgYi9jb21waWxl ci1ydC9saWIvc2FuaXRpemVyX2NvbW1vbi9zYW5pdGl6ZXJfbGludXguY3BwCi1AQCAtNzQsNiAr NzQsMTAgQEAKLSAjaW5jbHVkZSA8c3lzL3V0c25hbWUuaD4KLSAjZW5kaWYKLSAKLSsjaWYgU0FO SVRJWkVSX0xJTlVYICYmIGRlZmluZWQoX19wb3dlcnBjX18pCi0rI2luY2x1ZGUgPGFzbS9wdHJh Y2UuaD4KLSsjZW5kaWYKLSsKLSAjaWYgU0FOSVRJWkVSX0xJTlVYICYmICFTQU5JVElaRVJfQU5E Uk9JRAotICNpbmNsdWRlIDxzeXMvcGVyc29uYWxpdHkuaD4KLSAjZW5kaWYKLS0tLSBhL2NvbXBp bGVyLXJ0L2xpYi9zYW5pdGl6ZXJfY29tbW9uL3Nhbml0aXplcl9wbGF0Zm9ybV9saW1pdHNfcG9z aXguY3BwCi0rKysgYi9jb21waWxlci1ydC9saWIvc2FuaXRpemVyX2NvbW1vbi9zYW5pdGl6ZXJf cGxhdGZvcm1fbGltaXRzX3Bvc2l4LmNwcAotQEAgLTkyLDcgKzkyLDcgQEAKLSAjIGluY2x1ZGUg PHV0aW1lLmg+Ci0gIyBpbmNsdWRlIDxzeXMvcHRyYWNlLmg+Ci0gI2lmIGRlZmluZWQoX19taXBz NjQpIHx8IGRlZmluZWQoX19hYXJjaDY0X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwgXAotLSAg ICBTQU5JVElaRVJfUklTQ1Y2NAotKyAgICBkZWZpbmVkKF9fcG93ZXJwY19fKSB8fCBTQU5JVEla RVJfUklTQ1Y2NAotICMgIGluY2x1ZGUgPGFzbS9wdHJhY2UuaD4KLSAjICBpZmRlZiBfX2FybV9f Ci0gdHlwZWRlZiBzdHJ1Y3QgdXNlcl9mcHJlZ3MgZWxmX2ZwcmVnc2V0X3Q7Ci0tLS0gYS9jb21w aWxlci1ydC9saWIvc2FuaXRpemVyX2NvbW1vbi9zYW5pdGl6ZXJfc3RvcHRoZXdvcmxkX2xpbnV4 X2xpYmNkZXAuY3BwCi0rKysgYi9jb21waWxlci1ydC9saWIvc2FuaXRpemVyX2NvbW1vbi9zYW5p dGl6ZXJfc3RvcHRoZXdvcmxkX2xpbnV4X2xpYmNkZXAuY3BwCi1AQCAtMzEsNyArMzEsNyBAQAot ICNpbmNsdWRlIDxzeXMvdHlwZXMuaD4gLy8gZm9yIHBpZF90Ci0gI2luY2x1ZGUgPHN5cy91aW8u aD4gLy8gZm9yIGlvdmVjCi0gI2luY2x1ZGUgPGVsZi5oPiAvLyBmb3IgTlRfUFJTVEFUVVMKLS0j aWYgKGRlZmluZWQoX19hYXJjaDY0X18pIHx8IFNBTklUSVpFUl9SSVNDVjY0KSAmJiAhU0FOSVRJ WkVSX0FORFJPSUQKLSsjaWYgKGRlZmluZWQoX19hYXJjaDY0X18pIHx8IGRlZmluZWQoX19wb3dl cnBjX18pIHx8IFNBTklUSVpFUl9SSVNDVjY0KSAmJiAhU0FOSVRJWkVSX0FORFJPSUQKLSAvLyBH TElCQyAyLjIwKyBzeXMvdXNlciBkb2VzIG5vdCBpbmNsdWRlIGFzbS9wdHJhY2UuaAotICMgaW5j bHVkZSA8YXNtL3B0cmFjZS5oPgotICNlbmRpZgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtMTIv cGF0Y2hlcy9jb21waWxlci1ydC1zaXplX3QucGF0Y2ggYi9zcmNwa2dzL2xsdm0xMi9wYXRjaGVz L2NvbXBpbGVyLXJ0LXNpemVfdC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MmM2MzA2M2E1ZTllLi4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9j b21waWxlci1ydC1zaXplX3QucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxMCArMCwwIEBACi0t LS0gYS9jb21waWxlci1ydC9saWIvZnV6emVyL0Z1enplckludGVyY2VwdG9ycy5jcHAub3JpZwot KysrIGIvY29tcGlsZXItcnQvbGliL2Z1enplci9GdXp6ZXJJbnRlcmNlcHRvcnMuY3BwCi1AQCAt MjUsNiArMjUsNyBAQAotICAgfQotIAotICNpbmNsdWRlIDxjYXNzZXJ0PgotKyNpbmNsdWRlIDxj c3RkZGVmPgotICNpbmNsdWRlIDxjc3RkaW50PgotICNpbmNsdWRlIDxkbGZjbi5oPiAvLyBmb3Ig ZGxzeW0oKQotIApkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9jb21waWxlci1y dC14cmF5LXBwYzY0LW11c2wucGF0Y2ggYi9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2NvbXBpbGVy LXJ0LXhyYXktcHBjNjQtbXVzbC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg ZDBiNjFjODBjODk3Li4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9j b21waWxlci1ydC14cmF5LXBwYzY0LW11c2wucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw2MiAr MCwwIEBACi0tLS0gYS9jb21waWxlci1ydC9saWIveHJheS94cmF5X3Bvd2VycGM2NC5pbmMKLSsr KyBiL2NvbXBpbGVyLXJ0L2xpYi94cmF5L3hyYXlfcG93ZXJwYzY0LmluYwotQEAgLTEyLDcgKzEy LDEzIEBACi0gCi0gI2luY2x1ZGUgPGNzdGRpbnQ+Ci0gI2luY2x1ZGUgPG11dGV4PgotKyNpZmRl ZiBfX0dMSUJDX18KLSAjaW5jbHVkZSA8c3lzL3BsYXRmb3JtL3BwYy5oPgotKyNlbHNlCi0rI2lu Y2x1ZGUgPGNjdHlwZT4KLSsjaW5jbHVkZSA8Y3N0cmluZz4KLSsjaW5jbHVkZSA8Y3N0ZGxpYj4K LSsjZW5kaWYKLSAKLSAjaW5jbHVkZSAieHJheV9kZWZzLmgiCi0gCi1AQCAtMjAsMTMgKzI2LDQ1 IEBAIG5hbWVzcGFjZSBfX3hyYXkgewotIAotIEFMV0FZU19JTkxJTkUgdWludDY0X3QgcmVhZFRT Qyh1aW50OF90ICZDUFUpIFhSQVlfTkVWRVJfSU5TVFJVTUVOVCB7Ci0gICBDUFUgPSAwOwotKyNp ZmRlZiBfX0dMSUJDX18KLSAgIHJldHVybiBfX3BwY19nZXRfdGltZWJhc2UoKTsKLSsjZWxzZQot KyAgcmV0dXJuIF9fYnVpbHRpbl9wcGNfZ2V0X3RpbWViYXNlKCk7Ci0rI2VuZGlmCi0gfQotIAot IGlubGluZSB1aW50NjRfdCBnZXRUU0NGcmVxdWVuY3koKSBYUkFZX05FVkVSX0lOU1RSVU1FTlQg ewotICAgc3RhdGljIHN0ZDo6bXV0ZXggTTsKLSAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4 PiBHdWFyZChNKTsKLSsjaWZkZWYgX19HTElCQ19fCi0gICByZXR1cm4gX19wcGNfZ2V0X3RpbWVi YXNlX2ZyZXEoKTsKLSsjZWxzZQotKyAgLyogRklYTUU6IGEgbGVzcyBkaXJ0eSBpbXBsZW1lbnRh dGlvbj8gKi8KLSsgIHN0YXRpYyB1aW50NjRfdCBiYXNlOwotKyAgaWYgKCFiYXNlKSB7Ci0rICAg IEZJTEUgKmYgPSBmb3BlbigiL3Byb2MvY3B1aW5mbyIsICJyYiIpOwotKyAgICBpZiAoZikgewot KyAgICAgIHNzaXplX3QgbnI7Ci0rICAgICAgLyogdmlydHVhbGx5IGFsd2F5cyBiaWcgZW5vdWdo IHRvIGhvbGQgdGhlIGxpbmUgKi8KLSsgICAgICBjaGFyIGJ1Zls1MTJdOwotKyAgICAgIHdoaWxl IChmZ2V0cyhidWYsIHNpemVvZihidWYpLCBmKSkgewotKyAgICAgICAgY2hhciAqcmV0ID0gc3Ry c3RyKGJ1ZiwgInRpbWViYXNlIik7Ci0rICAgICAgICBpZiAoIXJldCkgewotKyAgICAgICAgICBj b250aW51ZTsKLSsgICAgICAgIH0KLSsgICAgICAgIHJldCArPSBzaXplb2YoInRpbWViYXNlIikg LSAxOwotKyAgICAgICAgcmV0ID0gc3RyY2hyKHJldCwgJzonKTsKLSsgICAgICAgIGlmICghcmV0 KSB7Ci0rICAgICAgICAgIGNvbnRpbnVlOwotKyAgICAgICAgfQotKyAgICAgICAgYmFzZSA9IHN0 cnRvdWwocmV0ICsgMSwgbnVsbHB0ciwgMTApOwotKyAgICAgICAgYnJlYWs7Ci0rICAgICAgfQot KyAgICAgIGZjbG9zZShmKTsKLSsgICAgfQotKyAgfQotKyAgcmV0dXJuIGJhc2U7Ci0rI2VuZGlm Ci0gfQotIAotIGlubGluZSBib29sIHByb2JlUmVxdWlyZWRDUFVGZWF0dXJlcygpIFhSQVlfTkVW RVJfSU5TVFJVTUVOVCB7CmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2xpYmN4 eC1tdXNsLnBhdGNoIGIvc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9saWJjeHgtbXVzbC5wYXRjaApk ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmJkMzFmZmMyY2IxLi4wMDAwMDAwMDAwMDAK LS0tIGEvc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9saWJjeHgtbXVzbC5wYXRjaAorKysgL2Rldi9u dWxsCkBAIC0xLDI2ICswLDAgQEAKLS0tLSBhL2xpYmN4eC9pbmNsdWRlL2xvY2FsZQotKysrIGIv bGliY3h4L2luY2x1ZGUvbG9jYWxlCi1AQCAtNzQyLDcgKzc0MiwxMSBAQCBfX251bV9nZXRfc2ln bmVkX2ludGVncmFsKGNvbnN0IGNoYXIqIF9fYSwgY29uc3QgY2hhciogX19hX2VuZCwKLSAgICAg ICAgIHR5cGVuYW1lIHJlbW92ZV9yZWZlcmVuY2U8ZGVjbHR5cGUoZXJybm8pPjo6dHlwZSBfX3Nh dmVfZXJybm8gPSBlcnJubzsKLSAgICAgICAgIGVycm5vID0gMDsKLSAgICAgICAgIGNoYXIgKl9f cDI7Ci0rI2lmIGRlZmluZWQoX19saW51eF9fKSAmJiAhZGVmaW5lZChfX0dMSUJDX18pCi0rICAg ICAgICBsb25nIGxvbmcgX19sbCA9IHN0cnRvbGwoX19hLCAmX19wMiwgX19iYXNlKTsKLSsjZWxz ZQotICAgICAgICAgbG9uZyBsb25nIF9fbGwgPSBzdHJ0b2xsX2woX19hLCAmX19wMiwgX19iYXNl LCBfTElCQ1BQX0dFVF9DX0xPQ0FMRSk7Ci0rI2VuZGlmCi0gICAgICAgICB0eXBlbmFtZSByZW1v dmVfcmVmZXJlbmNlPGRlY2x0eXBlKGVycm5vKT46OnR5cGUgX19jdXJyZW50X2Vycm5vID0gZXJy bm87Ci0gICAgICAgICBpZiAoX19jdXJyZW50X2Vycm5vID09IDApCi0gICAgICAgICAgICAgZXJy bm8gPSBfX3NhdmVfZXJybm87Ci1AQCAtNzgyLDcgKzc4NiwxMSBAQCBfX251bV9nZXRfdW5zaWdu ZWRfaW50ZWdyYWwoY29uc3QgY2hhciogX19hLCBjb25zdCBjaGFyKiBfX2FfZW5kLAotICAgICAg ICAgdHlwZW5hbWUgcmVtb3ZlX3JlZmVyZW5jZTxkZWNsdHlwZShlcnJubyk+Ojp0eXBlIF9fc2F2 ZV9lcnJubyA9IGVycm5vOwotICAgICAgICAgZXJybm8gPSAwOwotICAgICAgICAgY2hhciAqX19w MjsKLSsjaWYgZGVmaW5lZChfX2xpbnV4X18pICYmICFkZWZpbmVkKF9fR0xJQkNfXykKLSsgICAg ICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2xsID0gc3RydG91bGwoX19hLCAmX19wMiwgX19iYXNl KTsKLSsjZWxzZQotICAgICAgICAgdW5zaWduZWQgbG9uZyBsb25nIF9fbGwgPSBzdHJ0b3VsbF9s KF9fYSwgJl9fcDIsIF9fYmFzZSwgX0xJQkNQUF9HRVRfQ19MT0NBTEUpOwotKyNlbmRpZgotICAg ICAgICAgdHlwZW5hbWUgcmVtb3ZlX3JlZmVyZW5jZTxkZWNsdHlwZShlcnJubyk+Ojp0eXBlIF9f Y3VycmVudF9lcnJubyA9IGVycm5vOwotICAgICAgICAgaWYgKF9fY3VycmVudF9lcnJubyA9PSAw KQotICAgICAgICAgICAgIGVycm5vID0gX19zYXZlX2Vycm5vOwpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9sbHZtMTIvcGF0Y2hlcy9saWJjeHgtcHBjLnBhdGNoIGIvc3JjcGtncy9sbHZtMTIvcGF0Y2hl cy9saWJjeHgtcHBjLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3YTkyZjgw MDRlMWMuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2xpYmN4eC1w cGMucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwyMiArMCwwIEBACi1UaGlzIGVuc3VyZXMgYGlz X2llYzU1OWAgaXMgZGVmaW5lZCBjb3JyZWN0bHkgdW5kZXIgYWxsIGxvbmcgZG91YmxlIEFCSXMs Ci1pbmNsdWRpbmcgbXVzbCBhbmQgaXRzIDY0LWJpdCBsb25nIGRvdWJsZS4gQWxzbywgYF9fcHBj X19gIG9yIGBfX3BwYzY0X19gCi1pcyBub3QgZGVmaW5lZCBvbiBnY2MuCi0KLS0tLSBhL2xpYmN4 eC9pbmNsdWRlL2xpbWl0cwotKysrIGIvbGliY3h4L2luY2x1ZGUvbGltaXRzCi1AQCAtNDI2LDgg KzQyNiwxNCBAQCBwcm90ZWN0ZWQ6Ci0gICAgIF9MSUJDUFBfSU5MSU5FX1ZJU0lCSUxJVFkgc3Rh dGljIF9MSUJDUFBfQ09OU1RFWFBSIHR5cGUgc2lnbmFsaW5nX05hTigpIF9OT0VYQ0VQVCB7cmV0 dXJuIF9fYnVpbHRpbl9uYW5zbCgiIik7fQotICAgICBfTElCQ1BQX0lOTElORV9WSVNJQklMSVRZ IHN0YXRpYyBfTElCQ1BQX0NPTlNURVhQUiB0eXBlIGRlbm9ybV9taW4oKSBfTk9FWENFUFQge3Jl dHVybiBfX0xEQkxfREVOT1JNX01JTl9fO30KLSAKLS0jaWYgKGRlZmluZWQoX19wcGNfXykgfHwg ZGVmaW5lZChfX3BwYzY0X18pKQotKyNpZiBkZWZpbmVkKF9fcG93ZXJwY19fKSB8fCBkZWZpbmVk KF9fcG93ZXJwYzY0X18pCi0rI2lmIChfX0xEQkxfTUFYX0VYUF9fID4gX19EQkxfTUFYX0VYUF9f KSB8fCAoX19MREJMX01BTlRfRElHX18gPT0gX19EQkxfTUFOVF9ESUdfXykKLSsgICAgLyogSUVF RSA3NTQgcXVhZHJ1cGxlIG9yIGRvdWJsZSBwcmVjaXNpb24gKi8KLSsgICAgc3RhdGljIF9MSUJD UFBfQ09OU1RFWFBSIGNvbnN0IGJvb2wgaXNfaWVjNTU5ID0gdHJ1ZTsKLSsjZWxzZQotKyAgICAv KiAxMjgtYml0IElCTSBkb3VibGUtZG91YmxlICovCi0gICAgIHN0YXRpYyBfTElCQ1BQX0NPTlNU RVhQUiBjb25zdCBib29sIGlzX2llYzU1OSA9IGZhbHNlOwotKyNlbmRpZgotICNlbHNlCi0gICAg IHN0YXRpYyBfTElCQ1BQX0NPTlNURVhQUiBjb25zdCBib29sIGlzX2llYzU1OSA9IHRydWU7Ci0g I2VuZGlmCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2xpYmN4eC1zc3Atbm9u c2hhcmVkLnBhdGNoIGIvc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9saWJjeHgtc3NwLW5vbnNoYXJl ZC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzAyOTJiZWIyZmNkLi4wMDAw MDAwMDAwMDAKLS0tIGEvc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9saWJjeHgtc3NwLW5vbnNoYXJl ZC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDExICswLDAgQEAKLS0tLSBhL2xpYmN4eC9DTWFr ZUxpc3RzLnR4dAotKysrIGIvbGliY3h4L0NNYWtlTGlzdHMudHh0Ci1AQCAtNzY5LDYgKzc2OSw4 IEBAIGZ1bmN0aW9uKGN4eF9saW5rX3N5c3RlbV9saWJyYXJpZXMgdGFyZ2V0KQotICAgICB0YXJn ZXRfbGlua19saWJyYXJpZXMoJHt0YXJnZXR9IFBSSVZBVEUgYXRvbWljKQotICAgZW5kaWYoKQot IAotKyNzc3AgIHRhcmdldF9saW5rX2xpYnJhcmllcygke3RhcmdldH0gUFJJVkFURSBzc3Bfbm9u c2hhcmVkKQotKwotICAgaWYgKE1JTkdXKQotICAgICB0YXJnZXRfbGlua19saWJyYXJpZXMoJHt0 YXJnZXR9IFBSSVZBVEUgIiR7TUlOR1dfTElCUkFSSUVTfSIpCi0gICBlbmRpZigpCmRpZmYgLS1n aXQgYS9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2xpYmN4eGFiaS1kbC5wYXRjaCBiL3NyY3BrZ3Mv bGx2bTEyL3BhdGNoZXMvbGliY3h4YWJpLWRsLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAzYTE1ZjlkYjhjOTguLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2xsdm0xMi9w YXRjaGVzL2xpYmN4eGFiaS1kbC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDI1ICswLDAgQEAK LUFsc28gbGluayB0byAtbGRsIHRvIHByZXZlbnQgdW5kZWZpbmVkIHJlZmVyZW5jZXMuCi0KLS0t LSBhL2xpYmN4eGFiaS9zcmMvQ01ha2VMaXN0cy50eHQKLSsrKyBiL2xpYmN4eGFiaS9zcmMvQ01h a2VMaXN0cy50eHQKLUBAIC03Myw2ICs3Myw3IEBACi0gICBlbmRpZigpCi0gCi0gICBhZGRfbGli cmFyeV9mbGFnc19pZihMSUJDWFhBQklfSEFTX0NfTElCIGMpCi0rICBhZGRfbGlicmFyeV9mbGFn c19pZihMSUJDWFhBQklfSEFTX0NfTElCIGRsKQotIGVuZGlmKCkKLSAKLSBpZiAoTElCQ1hYQUJJ X1VTRV9MTFZNX1VOV0lOREVSKQotLS0tIGEvbGliY3h4L0NNYWtlTGlzdHMudHh0Ci0rKysgYi9s aWJjeHgvQ01ha2VMaXN0cy50eHQKLUBAIC03NDUsNiArNzQ1LDEwIEBACi0gICAgIHRhcmdldF9s aW5rX2xpYnJhcmllcygke3RhcmdldH0gUFJJVkFURSBtKQotICAgZW5kaWYoKQotIAotKyAgaWYg KExJQkNYWF9IQVNfQ19MSUIpCi0rICAgIHRhcmdldF9saW5rX2xpYnJhcmllcygke3RhcmdldH0g UFJJVkFURSBkbCkKLSsgIGVuZGlmKCkKLSsKLSAgIGlmIChMSUJDWFhfSEFTX1JUX0xJQikKLSAg ICAgdGFyZ2V0X2xpbmtfbGlicmFyaWVzKCR7dGFyZ2V0fSBQUklWQVRFIHJ0KQotICAgZW5kaWYo KQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9saWJ1bndpbmQtcHBjMzIucGF0 Y2ggYi9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2xpYnVud2luZC1wcGMzMi5wYXRjaApkZWxldGVk IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzRhYTc1NzZlY2Y5Li4wMDAwMDAwMDAwMDAKLS0tIGEv c3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9saWJ1bndpbmQtcHBjMzIucGF0Y2gKKysrIC9kZXYvbnVs bApAQCAtMSw2MyArMCwwIEBACi1UaGlzIGZpeGVzIGJ1aWxkIGF0IGxlYXN0IHdpdGggZ2NjOSB3 aGljaCBkb2VzIG5vdCBkZWZpbmUgYF9fcHBjX19gLgotCi0tLS0gYS9saWJ1bndpbmQvaW5jbHVk ZS9fX2xpYnVud2luZF9jb25maWcuaAotKysrIGIvbGlidW53aW5kL2luY2x1ZGUvX19saWJ1bndp bmRfY29uZmlnLmgKLUBAIC00OSw3ICs0OSw3IEBACi0gIyAgZGVmaW5lIF9MSUJVTldJTkRfQ09O VEVYVF9TSVpFIDE2NwotICMgIGRlZmluZSBfTElCVU5XSU5EX0NVUlNPUl9TSVpFIDE3OQotICMg IGRlZmluZSBfTElCVU5XSU5EX0hJR0hFU1RfRFdBUkZfUkVHSVNURVIgX0xJQlVOV0lORF9ISUdI RVNUX0RXQVJGX1JFR0lTVEVSX1BQQzY0Ci0tIyBlbGlmIGRlZmluZWQoX19wcGNfXykKLSsjIGVs aWYgZGVmaW5lZChfX3Bvd2VycGNfXykKLSAjICBkZWZpbmUgX0xJQlVOV0lORF9UQVJHRVRfUFBD IDEKLSAjICBkZWZpbmUgX0xJQlVOV0lORF9DT05URVhUX1NJWkUgMTE3Ci0gIyAgZGVmaW5lIF9M SUJVTldJTkRfQ1VSU09SX1NJWkUgMTI0Ci0tLS0gYS9saWJ1bndpbmQvc3JjL1Vud2luZFJlZ2lz dGVyc1Jlc3RvcmUuUwotKysrIGIvbGlidW53aW5kL3NyYy9VbndpbmRSZWdpc3RlcnNSZXN0b3Jl LlMKLUBAIC0zOTIsNyArMzkyLDcgQEAgTG5vdmVjOgotICAgUFBDNjRfTFIoMykKLSAgIGJjdHIK LSAKLS0jZWxpZiBkZWZpbmVkKF9fcHBjX18pCi0rI2VsaWYgZGVmaW5lZChfX3Bvd2VycGNfXykK LSAKLSBERUZJTkVfTElCVU5XSU5EX0ZVTkNUSU9OKF9aTjlsaWJ1bndpbmQxM1JlZ2lzdGVyc19w cGM2anVtcHRvRXYpCi0gLy8KLS0tLSBhL2xpYnVud2luZC9zcmMvVW53aW5kUmVnaXN0ZXJzU2F2 ZS5TCi0rKysgYi9saWJ1bndpbmQvc3JjL1Vud2luZFJlZ2lzdGVyc1NhdmUuUwotQEAgLTU1NCw3 ICs1NTQsNyBAQCBERUZJTkVfTElCVU5XSU5EX0ZVTkNUSU9OKF9fdW53X2dldGNvbnRleHQpCi0g ICBibHIKLSAKLSAKLS0jZWxpZiBkZWZpbmVkKF9fcHBjX18pCi0rI2VsaWYgZGVmaW5lZChfX3Bv d2VycGNfXykKLSAKLSAvLwotIC8vIGV4dGVybiBpbnQgdW53X2dldGNvbnRleHQodW53X2NvbnRl eHRfdCogdGhyZWFkX3N0YXRlKQotLS0tIGEvbGlidW53aW5kL3NyYy9jb25maWcuaAotKysrIGIv bGlidW53aW5kL3NyYy9jb25maWcuaAotQEAgLTk1LDEyICs5NSwxMiBAQAotICNkZWZpbmUgX0xJ QlVOV0lORF9CVUlMRF9TSkxKX0FQSVMKLSAjZW5kaWYKLSAKLS0jaWYgZGVmaW5lZChfX2kzODZf XykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fcHBjX18pIHx8IGRlZmluZWQo X19wcGM2NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rI2lmIGRlZmluZWQoX19pMzg2 X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX3Bvd2VycGNfXykgfHwgZGVm aW5lZChfX3Bvd2VycGM2NF9fKQotICNkZWZpbmUgX0xJQlVOV0lORF9TVVBQT1JUX0ZSQU1FX0FQ SVMKLSAjZW5kaWYKLSAKLSAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82 NF9fKSB8fCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotLSAgICBkZWZpbmVkKF9f cHBjX18pIHx8IGRlZmluZWQoX19wcGM2NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pIHx8 ICAgICAgICBcCi0rICAgIGRlZmluZWQoX19wb3dlcnBjX18pIHx8IGRlZmluZWQoX19wb3dlcnBj NjRfXykgfHwgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgKCFkZWZpbmVkKF9fQVBQ TEVfXykgJiYgZGVmaW5lZChfX2FybV9fKSkgfHwgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXAotICAgICAoZGVmaW5lZChfX2FybTY0X18pIHx8IGRlZmluZWQoX19hYXJjaDY0X18pKSB8 fCAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgIGRlZmluZWQoX19taXBzX18pCi0t LS0gYS9saWJ1bndpbmQvc3JjL2xpYnVud2luZC5jcHAKLSsrKyBiL2xpYnVud2luZC9zcmMvbGli dW53aW5kLmNwcAotQEAgLTQyLDcgKzQyLDcgQEAgX0xJQlVOV0lORF9ISURERU4gaW50IF9fdW53 X2luaXRfbG9jYWwodW53X2N1cnNvcl90ICpjdXJzb3IsCi0gIyBkZWZpbmUgUkVHSVNURVJfS0lO RCBSZWdpc3RlcnNfeDg2XzY0Ci0gI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICMgZGVm aW5lIFJFR0lTVEVSX0tJTkQgUmVnaXN0ZXJzX3BwYzY0Ci0tI2VsaWYgZGVmaW5lZChfX3BwY19f KQotKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjX18pCi0gIyBkZWZpbmUgUkVHSVNURVJfS0lORCBS ZWdpc3RlcnNfcHBjCi0gI2VsaWYgZGVmaW5lZChfX2FhcmNoNjRfXykKLSAjIGRlZmluZSBSRUdJ U1RFUl9LSU5EIFJlZ2lzdGVyc19hcm02NApkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtMTIvcGF0 Y2hlcy9sbGRiLW11c2wucGF0Y2ggYi9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2xsZGItbXVzbC5w YXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjAxYzBkMTM4NTIzLi4wMDAwMDAw MDAwMDAKLS0tIGEvc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9sbGRiLW11c2wucGF0Y2gKKysrIC9k ZXYvbnVsbApAQCAtMSwzMSArMCwwIEBACi0tLS0gYS9sbGRiL3NvdXJjZS9QbHVnaW5zL1Byb2Nl c3MvTGludXgvUHJvY2ZzLmgKLSsrKyBiL2xsZGIvc291cmNlL1BsdWdpbnMvUHJvY2Vzcy9MaW51 eC9Qcm9jZnMuaAotQEAgLTEwLDIxICsxMCwxMiBAQAotIC8vIHN5cy9wcm9jZnMuaCBvbiBBbmRy b2lkL0xpbnV4IGZvciBhbGwgc3VwcG9ydGVkIGFyY2hpdGVjdHVyZXMuCi0gCi0gI2luY2x1ZGUg PHN5cy9wdHJhY2UuaD4KLSsjaW5jbHVkZSA8YXNtL3B0cmFjZS5oPgotIAotLSNpZmRlZiBfX0FO RFJPSURfXwotLSNpZiBkZWZpbmVkKF9fYXJtNjRfXykgfHwgZGVmaW5lZChfX2FhcmNoNjRfXykK LS10eXBlZGVmIHVuc2lnbmVkIGxvbmcgZWxmX2dyZWdfdDsKLS10eXBlZGVmIGVsZl9ncmVnX3QK LS0gICAgZWxmX2dyZWdzZXRfdFsoc2l6ZW9mKHN0cnVjdCB1c2VyX3B0X3JlZ3MpIC8gc2l6ZW9m KGVsZl9ncmVnX3QpKV07Ci0tdHlwZWRlZiBzdHJ1Y3QgdXNlcl9mcHNpbWRfc3RhdGUgZWxmX2Zw cmVnc2V0X3Q7Ci0tI2lmbmRlZiBOVF9GUFJFR1NFVAotLSNkZWZpbmUgTlRfRlBSRUdTRVQgTlRf UFJGUFJFRwotLSNlbmRpZiAvLyBOVF9GUFJFR1NFVAotLSNlbGlmIGRlZmluZWQoX19taXBzX18p Ci0tI2lmbmRlZiBOVF9GUFJFR1NFVAotLSNkZWZpbmUgTlRfRlBSRUdTRVQgTlRfUFJGUFJFRwot LSNlbmRpZiAvLyBOVF9GUFJFR1NFVAotLSNlbmRpZgotLSNlbHNlIC8vIF9fQU5EUk9JRF9fCi0r I2lmICFkZWZpbmVkKF9fR0xJQkNfXykgJiYgZGVmaW5lZChfX3Bvd2VycGNfXykKLSsjZGVmaW5l IHB0X3JlZ3MgbXVzbF9wdF9yZWdzCi0rI2luY2x1ZGUgPHN5cy9wcm9jZnMuaD4KLSsjdW5kZWYg cHRfcmVncwotKyNlbHNlCi0gI2luY2x1ZGUgPHN5cy9wcm9jZnMuaD4KLS0jZW5kaWYgLy8gX19B TkRST0lEX18KLSsjZW5kaWYKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvcHBj MzItY29tcGlsZXItcnQucGF0Y2ggYi9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL3BwYzMyLWNvbXBp bGVyLXJ0LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4ZTBhOWE3NzlkMWIu LjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL3BwYzMyLWNvbXBpbGVy LXJ0LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMjEgKzAsMCBAQAotY29tbWl0IGJhNGVkZTU5 NWZmOTU5OTIzMmY1ZGQyYjQzODRjMjQzMTM3YjUzZmMKLUF1dGhvcjogRGFuaWVsIEtvbGVzYSA8 ZGFuaWVsQG9jdGFmb3JnZS5vcmc+Ci1EYXRlOiAgIFR1ZSBKdW4gMjIgMjM6NDA6NTQgMjAyMSAr MDIwMAotCi0gICAgZW5hYmxlIGNvbXBpbGVyLXJ0IHN1cHBvcnQgZm9yIHBwYzMyCi0KLWRpZmYg LS1naXQgYS9jb21waWxlci1ydC9jbWFrZS9iYXNlLWNvbmZpZy1peC5jbWFrZSBiL2NvbXBpbGVy LXJ0L2NtYWtlL2Jhc2UtY29uZmlnLWl4LmNtYWtlCi1pbmRleCAxZWRhYjQzLi41YzBjOGEyIDEw MDY0NAotLS0tIGEvY29tcGlsZXItcnQvY21ha2UvYmFzZS1jb25maWctaXguY21ha2UKLSsrKyBi L2NvbXBpbGVyLXJ0L2NtYWtlL2Jhc2UtY29uZmlnLWl4LmNtYWtlCi1AQCAtMTgyLDkgKzE4Miw3 IEBAIG1hY3JvKHRlc3RfdGFyZ2V0cykKLSAgICAgZWxzZWlmKCIke0NPTVBJTEVSX1JUX0RFRkFV TFRfVEFSR0VUX0FSQ0h9IiBNQVRDSEVTICJwb3dlcnBjNjRsZSIpCi0gICAgICAgdGVzdF90YXJn ZXRfYXJjaChwb3dlcnBjNjRsZSAiIiAiLW02NCIpCi0gICAgIGVsc2VpZigiJHtDT01QSUxFUl9S VF9ERUZBVUxUX1RBUkdFVF9BUkNIfSIgTUFUQ0hFUyAicG93ZXJwYyIpCi0tICAgICAgaWYoQ01B S0VfU1lTVEVNX05BTUUgTUFUQ0hFUyAiQUlYIikKLS0gICAgICAgIHRlc3RfdGFyZ2V0X2FyY2go cG93ZXJwYyAiIiAiLW0zMiIpCi0tICAgICAgZW5kaWYoKQotKyAgICAgIHRlc3RfdGFyZ2V0X2Fy Y2gocG93ZXJwYyAiIiAiLW0zMiIpCi0gICAgICAgdGVzdF90YXJnZXRfYXJjaChwb3dlcnBjNjQg IiIgIi1tNjQiKQotICAgICBlbHNlaWYoIiR7Q09NUElMRVJfUlRfREVGQVVMVF9UQVJHRVRfQVJD SH0iIE1BVENIRVMgInMzOTB4IikKLSAgICAgICB0ZXN0X3RhcmdldF9hcmNoKHMzOTB4ICIiICIi KQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtMTIvdGVtcGxhdGUgYi9zcmNwa2dzL2xsdm0xMi90 ZW1wbGF0ZQppbmRleCA3Y2UxODAyOGU0YTMuLjdiMzYxYmJiZjViYyAxMDA2NDQKLS0tIGEvc3Jj cGtncy9sbHZtMTIvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9sbHZtMTIvdGVtcGxhdGUKQEAgLTEs MjUgKzEsMTcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2xsdm0xMicKIHBrZ25hbWU9bGx2bTEy CiB2ZXJzaW9uPTEyLjAuMQotcmV2aXNpb249MgorcmV2aXNpb249Mwogd3Jrc3JjPSJsbHZtLXBy b2plY3QtJHt2ZXJzaW9ufS5zcmMiCiBidWlsZF93cmtzcmM9bGx2bQogYnVpbGRfc3R5bGU9Y21h a2UKIGNvbmZpZ3VyZV9hcmdzPSIKICAtRENNQUtFX0JVSUxEX1RZUEU9UmVsZWFzZSAtV25vLWRl dgogIC1ERU5BQkxFX0xJTktFUl9CVUlMRF9JRD1ZRVMKLSAtRExMREJfVVNFX1NZU1RFTV9TSVg9 WUVTCi0gLURMSUJDWFhfQ1hYX0FCST1saWJjeHhhYmkKLSAtRExJQkNYWF9FTkFCTEVfU1RBVElD X0FCSV9MSUJSQVJZPVlFUwotIC1ETElCQ1hYQUJJX1VTRV9MTFZNX1VOV0lOREVSPVlFUwotIC1E TElCQ1hYQUJJX0VOQUJMRV9TVEFUSUNfVU5XSU5ERVI9WUVTCi0gLURMSUJPTVBfRU5BQkxFX1NI QVJFRD1ZRVMKLSAtRExJQk9NUF9JTlNUQUxMX0FMSUFTRVM9Tk8KICAtRExMVk1fSU5DTFVERV9E T0NTPVlFUwogIC1ETExWTV9CVUlMRF9ET0NTPVlFUwogIC1ETExWTV9FTkFCTEVfU1BISU5YPVlF UwogIC1EU1BISU5YX1dBUk5JTkdTX0FTX0VSUk9SUz1OTwotIC1ETExWTV9JTlNUQUxMX1VUSUxT PVlFUwogIC1ETExWTV9CVUlMRF9MTFZNX0RZTElCPVlFUwogIC1ETExWTV9MSU5LX0xMVk1fRFlM SUI9WUVTCiAgLURMTFZNX0VOQUJMRV9SVFRJPVlFUwpAQCAtNTEsODcgKzQzLDEwIEBAIGNhc2Ug IiRYQlBTX1RBUkdFVF9NQUNISU5FIiBpbgogCXBwYyopIGNvbmZpZ3VyZV9hcmdzKz0iIC1EQ0xB TkdfRU5BQkxFX0NMQU5HRD1PRkYiIDs7CiBlc2FjCiAKLV9lbmFibGVkX3Byb2plY3RzPSJjbGFu ZztjbGFuZy10b29scy1leHRyYTtjb21waWxlci1ydDtsaWJjeHg7bGliY3h4YWJpO2xpYnVud2lu ZDtsbGQiCi0KLV9sbGRiX2VuYWJsZT15ZXMKLV9saWJvbXBfZW5hYmxlPW5vCi0KLWNhc2UgIiRY QlBTX1RBUkdFVF9NQUNISU5FIiBpbgotCXBwYzY0bGUqKSA7OwotCXBwYyp8aTY4NiopIF9sbGRi X2VuYWJsZT1ubyA7OwotZXNhYwotCi1jYXNlICIkWEJQU19UQVJHRVRfTUFDSElORSIgaW4KLQl4 ODZfNjQqfGFhcmNoNjQqfHBwYzY0KikgX2xpYm9tcF9lbmFibGU9eWVzOzsKLWVzYWMKLQotc3Vi cGFja2FnZXM9ImNsYW5nLXRvb2xzLWV4dHJhIgotCi0jIG11c3QgZ28gYmVmb3JlIGNsYW5nCi1p ZiBbICIkX2xpYm9tcF9lbmFibGUiID0gInllcyIgXTsgdGhlbgotCV9lbmFibGVkX3Byb2plY3Rz Kz0iO29wZW5tcCIKLQlzdWJwYWNrYWdlcys9IiBsaWJvbXAgbGlib21wLWRldmVsIgotCSMgYmVj YXVzZSBvZiBjbWFrZSBub25zZW5zZSByZWZlcmVuY2luZyBsaWJvbXB0YXJnZXQuc28uKgotCWRl cGVuZHMrPSIgbGlib21wPj0ke3ZlcnNpb259XyR7cmV2aXNpb259IgotZmkKLQotc3VicGFja2Fn ZXMrPSIgY2xhbmcgY2xhbmctYW5hbHl6ZXIgbGliY2xhbmcgbGliY2xhbmctY3BwCi0gbGx2bS1s aWJ1bndpbmQgbGx2bS1saWJ1bndpbmQtZGV2ZWwgbGliY3h4IGxpYmN4eC1kZXZlbAotIGxpYmN4 eGFiaSBsaWJjeHhhYmktZGV2ZWwgbGlibGx2bTEyIgotCi1pZiBbICIkX2xsZGJfZW5hYmxlIiA9 ICJ5ZXMiIF07IHRoZW4KLQkjIFhYWCBmYWlscyB0byBjcm9zcyBjb21waWxlIGR1ZSB0byBweXRo b24KLQlfZW5hYmxlZF9wcm9qZWN0cys9IjtsbGRiIgotCXN1YnBhY2thZ2VzKz0iIGxsZGIgbGxk Yi1kZXZlbCIKLWZpCi0KLXN1YnBhY2thZ2VzKz0iIGxsZCBsbGQtZGV2ZWwiCi0KLWNvbmZpZ3Vy ZV9hcmdzKz0iIC1ETExWTV9FTkFCTEVfUFJPSkVDVFM9JHtfZW5hYmxlZF9wcm9qZWN0c30iCi0K IHBvc3RfcGF0Y2goKSB7Ci0JaWYgWyAiJF9sbGRiX2VuYWJsZSIgPSAieWVzIiBdOyB0aGVuCi0J CWlmIFsgIiRYQlBTX1RBUkdFVF9MSUJDIiA9ICJtdXNsIiBdOyB0aGVuCi0JCQl2c2VkIC1pICdz fF9fcHRyYWNlX3JlcXVlc3R8aW50fGcnIFwKLQkJCQkke3dya3NyY30vbGxkYi9zb3VyY2UvUGx1 Z2lucy9Qcm9jZXNzL0xpbnV4L05hdGl2ZVByb2Nlc3NMaW51eC5jcHAKLQkJZmkKLQkJIyBkaXNh YmxlIGRvY3MgZm9yIGxsZGIgYXMgdGhleSBmYWlsIHRvIGdlbmVyYXRlCi0JCXZzZWQgLWkgJy9h ZGRfc3ViZGlyZWN0b3J5KGRvY3MpL2QnIFwKLQkJCSR7d3Jrc3JjfS9sbGRiL0NNYWtlTGlzdHMu dHh0Ci0JZmkKLQogCSMgdXBkYXRlIGNvbmZpZy5ndWVzcyBmb3IgYmV0dGVyIHBsYXRmb3JtIGRl dGVjdGlvbgogCWNwICRYQlBTX0NPTU1PTkRJUi9lbnZpcm9ubWVudC9jb25maWd1cmUvYXV0b21h a2UvY29uZmlnLmd1ZXNzIFwKIAkJJHt3cmtzcmN9L2xsdm0vY21ha2UKLQotCSMgZml4IGxpbmtl ciBmYWlsdXJlcyBvbiBzb21lIGFyY2hzCi0JdnNlZCAtaSAncyxjaGVja19saWJyYXJ5X2V4aXN0 cyhnY2NfcyAuKixzZXQoTElCQ1hYQUJJX0hBU19HQ0NfU19MSUIgT04pLCcgXAotCQkke3dya3Ny Y30vbGliY3h4YWJpL2NtYWtlL2NvbmZpZy1peC5jbWFrZQotCXZzZWQgLWkgJ3MsY2hlY2tfbGli cmFyeV9leGlzdHMoZ2NjIC4qLHNldChMSUJDWFhBQklfSEFTX0dDQ19MSUIgT04pLCcgXAotCQkk e3dya3NyY30vbGliY3h4YWJpL2NtYWtlL2NvbmZpZy1peC5jbWFrZQotCi0JIyBuZWVkIGxpYnNz cF9ub25zaGFyZWQgb24gc29tZSBtdXNsIHBsYXRmb3JtcyAoYmVjYXVzZSBvZiBub2RlZmF1bHRs aWJzKQotCWNhc2UgIiRYQlBTX1RBUkdFVF9NQUNISU5FIiBpbgotCQlwcGM2NCopIDs7Ci0JCXBw YyotbXVzbHxpNjg2LW11c2x8bWlwcyotbXVzbCkKLQkJCXZzZWQgLWkgJ3MsXiMgU2V0dXAgZmxh Z3MuJCxhZGRfbGlicmFyeV9mbGFncyhzc3Bfbm9uc2hhcmVkKSwnIFwKLQkJCQkke3dya3NyY30v bGlidW53aW5kL3NyYy9DTWFrZUxpc3RzLnR4dAotCQkJdnNlZCAtaSAncyxeIyBTZXR1cCBmbGFn cy4kLGFkZF9saWJyYXJ5X2ZsYWdzKHNzcF9ub25zaGFyZWQpLCcgXAotCQkJCSR7d3Jrc3JjfS9s aWJjeHhhYmkvc3JjL0NNYWtlTGlzdHMudHh0Ci0JCQl2c2VkIC1pICdzLCNzc3AsLCcgJHt3cmtz cmN9L2xpYmN4eC9DTWFrZUxpc3RzLnR4dAotCQkJOzsKLQllc2FjCi0KLQljYXNlICIkWEJQU19U QVJHRVRfTUFDSElORSIgaW4KLQkJeDg2XzY0LW11c2wpICMgc29tZSBzYW5pdGl6ZXIgY3VycmVu dGx5IG9ubHkgb24geDg2XzY0IHN0dWZmIG5lZWRzIGJhY2t0cmFjZQotCQkJdnNlZCAtaSAncywj IFNldCBjb21tb24gbGluayBmbGFncy4sbGlzdChBUFBFTkQgU0FOSVRJWkVSX0NPTU1PTl9MSU5L X0xJQlMgZXhlY2luZm8pLCcgXAotCQkJCSR7d3Jrc3JjfS9jb21waWxlci1ydC9DTWFrZUxpc3Rz LnR4dAotCQkJOzsKLQkJYXJtKi1tdXNsfGk2ODYtbXVzbCkgIyBzYW5pdGl6ZXIgY29kZSBpcyBi cm9rZW4gc2luY2UgaXQgZHVwbGljYXRlcyBzb21lIGxpYmMgYml0cwotCQkJdnNlZCAtaSAncy9z ZXQoQ09NUElMRVJfUlRfSEFTX1NBTklUSVpFUl9DT01NT04gVFJVRSkvc2V0KENPTVBJTEVSX1JU X0hBU19TQU5JVElaRVJfQ09NTU9OIEZBTFNFKS8nIFwKLQkJCQkke3dya3NyY30vY29tcGlsZXIt cnQvY21ha2UvY29uZmlnLWl4LmNtYWtlCi0JCQk7OwotCWVzYWMKIH0KIAogcHJlX2NvbmZpZ3Vy ZSgpIHsKQEAgLTE1OCwxMCArNzMsOCBAQCBwcmVfY29uZmlndXJlKCkgewogCQkJY21ha2UgLi4v Li4gLURDTUFLRV9CVUlMRF9UWVBFPVJlbGVhc2UgXAogCQkJLURMTFZNX0VOQUJMRV9QUk9KRUNU Uz0ke19lbmFibGVkX3Byb2plY3RzfQogCQltYWtlICR7bWFrZWpvYnN9IC1DIHV0aWxzL1RhYmxl R2VuCi0JCW1ha2UgJHttYWtlam9ic30gLUMgdG9vbHMvY2xhbmcvdXRpbHMvVGFibGVHZW4KIAkJ WyAiJF9sbGRiX2VuYWJsZSIgPSAieWVzIiBdICYmIG1ha2UgJHttYWtlam9ic30gLUMgdG9vbHMv bGxkYi91dGlscy9UYWJsZUdlbgogCQljb25maWd1cmVfYXJncys9IiAtRExMVk1fVEFCTEVHRU49 JHt3cmtzcmN9L2xsdm0vYnVpbGQvSE9TVC9iaW4vbGx2bS10YmxnZW4iCi0JCWNvbmZpZ3VyZV9h cmdzKz0iIC1EQ0xBTkdfVEFCTEVHRU49JHt3cmtzcmN9L2xsdm0vYnVpbGQvSE9TVC9iaW4vY2xh bmctdGJsZ2VuIgogCQlbICIkX2xsZGJfZW5hYmxlIiA9ICJ5ZXMiIF0gJiYgY29uZmlndXJlX2Fy Z3MrPSIgLURMTERCX1RBQkxFR0VOPSR7d3Jrc3JjfS9sbHZtL2J1aWxkL0hPU1QvYmluL2xsZGIt dGJsZ2VuIgogCQljZCAuLi8uLgogCWZpCkBAIC0yMDIsMjE4ICsxMTUsNiBAQCBkb19pbnN0YWxs KCkgewogCWlmIFsgIiRDUk9TU19CVUlMRCIgXTsgdGhlbgogCQlybSAtZiAke0RFU1RESVJ9L3Vz ci9iaW4vbGx2bS1jb25maWctaG9zdAogCWZpCi0KLQkjIEluc3RhbGwgbGliY3h4YWJpIGhlYWRl cnMKLQl2aW5zdGFsbCAke3dya3NyY30vbGliY3h4YWJpL2luY2x1ZGUvX19jeHhhYmlfY29uZmln LmggNjQ0IHVzci9pbmNsdWRlCi0Jdmluc3RhbGwgJHt3cmtzcmN9L2xpYmN4eGFiaS9pbmNsdWRl L2N4eGFiaS5oIDY0NCB1c3IvaW5jbHVkZQotCi0JIyBJbnN0YWxsIGxpYnVud2luZCBoZWFkZXJz Ci0Jdmluc3RhbGwgJHt3cmtzcmN9L2xpYnVud2luZC9pbmNsdWRlL19fbGlidW53aW5kX2NvbmZp Zy5oIDY0NCB1c3IvaW5jbHVkZQotCXZpbnN0YWxsICR7d3Jrc3JjfS9saWJ1bndpbmQvaW5jbHVk ZS9saWJ1bndpbmQuaCA2NDQgdXNyL2luY2x1ZGUKLQl2aW5zdGFsbCAke3dya3NyY30vbGlidW53 aW5kL2luY2x1ZGUvdW53aW5kLmggNjQ0IHVzci9pbmNsdWRlCi0Jdmluc3RhbGwgJHt3cmtzcmN9 L2xpYnVud2luZC9pbmNsdWRlL21hY2gtby9jb21wYWN0X3Vud2luZF9lbmNvZGluZy5oIFwKLQkJ NjQ0IHVzci9pbmNsdWRlL21hY2gtbwotfQotCi1jbGFuZy1hbmFseXplcl9wYWNrYWdlKCkgewot CXB5Y29tcGlsZV9kaXJzPSJ1c3Ivc2hhcmUvc2Nhbi12aWV3IgotCWRlcGVuZHM9ImNsYW5nLSR7 dmVyc2lvbn1fJHtyZXZpc2lvbn0gcHl0aG9uMyBwZXJsIgotCXNob3J0X2Rlc2MrPSIgLSBBIHNv dXJjZSBjb2RlIGFuYWx5c2lzIGZyYW1ld29yayIKLQlob21lcGFnZT0iaHR0cHM6Ly9jbGFuZy1h bmFseXplci5sbHZtLm9yZy8iCi0JcGtnX2luc3RhbGwoKSB7Ci0JCXZtb3ZlIHVzci9zaGFyZS9t YW4vbWFuMS9zY2FuLWJ1aWxkLjEKLQkJdm1vdmUgIi91c3IvYmluL3NjYW4tKiIKLQkJdm1vdmUg Ii91c3Ivc2hhcmUvc2Nhbi0qIgotCQl2bW92ZSAiL3Vzci9saWJleGVjLyphbmFseXplciIKLQl9 Ci19Ci0KLWNsYW5nLXRvb2xzLWV4dHJhX3BhY2thZ2UoKSB7Ci0JbGliMzJkaXNhYmxlZD15ZXMK LQlkZXBlbmRzPSJjbGFuZy0ke3ZlcnNpb259XyR7cmV2aXNpb259IHB5dGhvbjMiCi0Jc2hvcnRf ZGVzYys9IiAtIEV4dHJhIENsYW5nIHRvb2xzIgotCWhvbWVwYWdlPSJodHRwczovL2NsYW5nLmxs dm0ub3JnL2V4dHJhLyIKLQlwa2dfaW5zdGFsbCgpIHsKLQkJdm1vdmUgdXNyL2luY2x1ZGUvY2xh bmctdGlkeQotCQl2bW92ZSB1c3IvYmluL2NsYW5nLWFwcGx5LXJlcGxhY2VtZW50cwotCQl2bW92 ZSB1c3IvYmluL2NsYW5nLXF1ZXJ5Ci0JCXZtb3ZlIHVzci9iaW4vY2xhbmctcmVuYW1lCi0JCXZt b3ZlIHVzci9iaW4vY2xhbmctdGlkeQotCQl2bW92ZSB1c3IvYmluL2RpYWd0b29sCi0JCXZtb3Zl IHVzci9iaW4vZmluZC1hbGwtc3ltYm9scwotCQl2bW92ZSB1c3IvYmluL2htYXB0b29sCi0JCXZt b3ZlIHVzci9iaW4vbW9kdWxhcml6ZQotCQl2bW92ZSB1c3IvYmluL3BwLXRyYWNlCi0JCXZtb3Zl IHVzci9iaW4vc2FuY292Ci0JCXZtb3ZlICJ1c3IvbGliL2xpYmNsYW5nQXBwbHlSZXBsYWNlbWVu dHMqIgotCQl2bW92ZSAidXNyL2xpYi9saWJjbGFuZ1F1ZXJ5KiIKLQkJdm1vdmUgInVzci9saWIv bGliY2xhbmdUaWR5KiIKLQkJdm1vdmUgInVzci9zaGFyZS9jbGFuZy8qdGlkeSoiCi0JCXZtb3Zl IHVzci9zaGFyZS9kb2MvY2xhbmctdG9vbHMKLQkJdm1vdmUgdXNyL3NoYXJlL21hbi9tYW4xL2V4 dHJhY2xhbmd0b29scy4xCi0JCXZtb3ZlIHVzci9zaGFyZS9tYW4vbWFuMS9kaWFndG9vbC4xCi0J fQotfQotCi1jbGFuZ19wYWNrYWdlKCkgewotCWxpYjMyZGlzYWJsZWQ9eWVzCi0JZGVwZW5kcz0i bGlic3RkYysrLWRldmVsIGxpYmdjYy1kZXZlbCAgYmludXRpbHMgJHtYQlBTX1RBUkdFVF9MSUJD fS1kZXZlbAotCSBsaWJjbGFuZy0ke3ZlcnNpb259XyR7cmV2aXNpb259IgotCXNob3J0X2Rlc2Mr PSIgLSBDIGxhbmd1YWdlIGZhbWlseSBmcm9udGVuZCIKLQlob21lcGFnZT0iaHR0cHM6Ly9jbGFu Zy5sbHZtLm9yZy8iCi0JcGtnX2luc3RhbGwoKSB7Ci0JCXZtb3ZlIHVzci9pbmNsdWRlL2NsYW5n Ci0JCXZtb3ZlIHVzci9pbmNsdWRlL2NsYW5nLWMKLQkJdm1vdmUgInVzci9iaW4vKmNsYW5nKiIK LQkJdm1vdmUgdXNyL2Jpbi9jLWluZGV4LXRlc3QKLQkJdm1vdmUgdXNyL2xpYi9jbGFuZwotCQl2 bW92ZSB1c3IvbGliL2NtYWtlL2NsYW5nCi0JCXZtb3ZlICJ1c3IvbGliL2xpYmNsYW5nKi5hIgot CQl2bW92ZSAidXNyL2xpYi9saWJjbGFuZyouc28iCi0JCXZtb3ZlIHVzci9zaGFyZS9jbGFuZwot CQl2bW92ZSB1c3Ivc2hhcmUvZG9jL2NsYW5nCi0JCXZtb3ZlIHVzci9zaGFyZS9tYW4vbWFuMS9j bGFuZy4xCi0JfQotfQotCi1saWJjbGFuZ19wYWNrYWdlKCkgewotCXNob3J0X2Rlc2MrPSIgLSBD IGZyb250ZW5kIHJ1bnRpbWUgbGlicmFyeSIKLQlwa2dfaW5zdGFsbCgpIHsKLQkJdm1vdmUgInVz ci9saWIvbGliY2xhbmcuc28uKiIKLQl9Ci19Ci0KLWxpYmNsYW5nLWNwcF9wYWNrYWdlKCkgewot CXNob3J0X2Rlc2MrPSIgLSBDIGZyb250ZW5kIHJ1bnRpbWUgbGlicmFyeSAoQysrIGludGVyZmFj ZSkiCi0JcGtnX2luc3RhbGwoKSB7Ci0JCXZtb3ZlICJ1c3IvbGliL2xpYmNsYW5nLWNwcC5zby4q IgotCX0KLX0KLQotbGxkX3BhY2thZ2UoKSB7Ci0JbGliMzJkaXNhYmxlZD15ZXMKLQlzaG9ydF9k ZXNjKz0iIC0gbGlua2VyIgotCWhvbWVwYWdlPSJodHRwczovL2xsZC5sbHZtLm9yZyIKLQlwa2df aW5zdGFsbCgpIHsKLQkJdm1vdmUgdXNyL2Jpbi9sbGQqCi0JCXZtb3ZlIHVzci9iaW4vd2FzbS1s ZAotCQl2bW92ZSB1c3IvYmluL2xkLmxsZCoKLQkJdm1vdmUgdXNyL2Jpbi9sZDY0LmxsZCoKLQkJ dm1vdmUgdXNyL3NoYXJlL2RvYy9sbGQKLQl9Ci19Ci0KLWxsZC1kZXZlbF9wYWNrYWdlKCkgewot CWxpYjMyZGlzYWJsZWQ9eWVzCi0Jc2hvcnRfZGVzYys9IiAtIGxpbmtlciAtIGRldmVsb3BtZW50 IGZpbGVzIgotCWhvbWVwYWdlPSJodHRwczovL2xsZC5sbHZtLm9yZyIKLQlkZXBlbmRzPSJsbGQ+ PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCi0JcGtnX2luc3RhbGwoKSB7Ci0JCXZtb3ZlIHVzci9p bmNsdWRlL2xsZAotCQl2bW92ZSB1c3IvbGliL2NtYWtlL2xsZAotCQl2bW92ZSAidXNyL2xpYi9s aWJsbGQqYSIKLQl9Ci19Ci0KLWxsZGJfcGFja2FnZSgpIHsKLQlsaWIzMmRpc2FibGVkPXllcwot CWRlcGVuZHMrPSIgcHl0aG9uMy1zaXgiCi0Jc2hvcnRfZGVzYys9IiAtIExMREIgZGVidWdnZXIi Ci0JaG9tZXBhZ2U9Imh0dHBzOi8vbGxkYi5sbHZtLm9yZy8iCi0JcGtnX2luc3RhbGwoKSB7Ci0J CXZtb3ZlIHVzci9iaW4vKmxsZGIqCi0JCXZtb3ZlIHVzci9saWIvbGlibGxkYipzby4qCi0JCXZt b3ZlIC91c3IvbGliL3B5dGhvbioKLQl9Ci19Ci0KLWxsZGItZGV2ZWxfcGFja2FnZSgpIHsKLQls aWIzMmRpc2FibGVkPXllcwotCWRlcGVuZHM9ImxsZGI+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0i Ci0Jc2hvcnRfZGVzYys9IiAtIExMREIgZGVidWdnZXIgLSBkZXZlbG9wbWVudCBmaWxlcyIKLQlw a2dfaW5zdGFsbCgpIHsKLQkJdm1vdmUgdXNyL2luY2x1ZGUvbGxkYgotCQl2bW92ZSAidXNyL2xp Yi9saWJsbGRiKi5zbyIKLQl9Ci19Ci0KLWxsdm0tbGlidW53aW5kX3BhY2thZ2UoKSB7Ci0Jc2hv cnRfZGVzYys9IiAtIGxpYnVud2luZCIKLQlwa2dfaW5zdGFsbCgpIHsKLQkJdm1vdmUgInVzci9s aWIvbGlidW53aW5kLnNvLioiCi0JfQotfQotCi1sbHZtLWxpYnVud2luZC1kZXZlbF9wYWNrYWdl KCkgewotCXNob3J0X2Rlc2MrPSIgLSBsaWJ1bndpbmQgLSBkZXZlbG9wbWVudCBmaWxlcyIKLQlk ZXBlbmRzPSJsbHZtLWxpYnVud2luZD49JHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKLQljb25mbGlj dHM9ImxpYnVud2luZC1kZXZlbD49MCIKLQlwa2dfaW5zdGFsbCgpIHsKLQkJdm1vdmUgdXNyL2xp Yi9saWJ1bndpbmQuc28KLQkJdm1vdmUgdXNyL2xpYi9saWJ1bndpbmQuYQotCQl2bW92ZSAidXNy L2luY2x1ZGUvKnVud2luZCoiCi0JCXZtb3ZlIHVzci9pbmNsdWRlL21hY2gtbwotCQl2bW92ZSB1 c3Ivc2hhcmUvZG9jL2xpYnVud2luZAotCX0KLX0KLQotbGliY3h4YWJpX3BhY2thZ2UoKSB7Ci0J c2hvcnRfZGVzYys9IiAtIGxvdyBsZXZlbCBzdXBwb3J0IGZvciBsaWJjKysiCi0JcGtnX2luc3Rh bGwoKSB7Ci0JCXZtb3ZlICJ1c3IvbGliL2xpYmMrK2FiaS5zby4qIgotCX0KLX0KLQotbGliY3h4 YWJpLWRldmVsX3BhY2thZ2UoKSB7Ci0Jc2hvcnRfZGVzYys9IiAtIGxvdyBsZXZlbCBzdXBwb3J0 IGZvciBsaWJjKysgLSBkZXZlbG9wbWVudCBmaWxlcyIKLQlkZXBlbmRzPSJsaWJjeHhhYmk+PSR7 dmVyc2lvbn1fJHtyZXZpc2lvbn0iCi0JcGtnX2luc3RhbGwoKSB7Ci0JCXZtb3ZlIHVzci9saWIv bGliYysrYWJpLnNvCi0JCXZtb3ZlIHVzci9saWIvbGliYysrYWJpLmEKLQkJdm1vdmUgInVzci9p bmNsdWRlLypjeHhhYmkqIgotCX0KLX0KLQotbGliY3h4X3BhY2thZ2UoKSB7Ci0Jc2hvcnRfZGVz Yys9IiAtIEMrKyBzdGFuZGFyZCBsaWJyYXJ5IgotCXBrZ19pbnN0YWxsKCkgewotCQl2bW92ZSAi dXNyL2xpYi9saWJjKysuc28uKiIKLQl9Ci19Ci0KLWxpYmN4eC1kZXZlbF9wYWNrYWdlKCkgewot CXNob3J0X2Rlc2MrPSIgLSBDKysgc3RhbmRhcmQgbGlicmFyeSAtIGRldmVsb3BtZW50IGZpbGVz IgotCWRlcGVuZHM9ImxpYmN4eD49JHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKLQlwa2dfaW5zdGFs bCgpIHsKLQkJdm1vdmUgdXNyL2xpYi9saWJjKysuc28KLQkJdm1vdmUgdXNyL2xpYi9saWJjKysu YQotCQl2bW92ZSB1c3IvbGliL2xpYmMrK2V4cGVyaW1lbnRhbC5hCi0JCXZtb3ZlIHVzci9pbmNs dWRlL2MrKwotCQl2bW92ZSB1c3Ivc2hhcmUvZG9jL2xpYmN4eAotCX0KLX0KLQotbGlib21wX3Bh Y2thZ2UoKSB7Ci0Jc2hvcnRfZGVzYys9IiAtIENsYW5nIE9wZW5NUCBzdXBwb3J0IGxpYnJhcnki Ci0JcGtnX2luc3RhbGwoKSB7Ci0JCXZtb3ZlIHVzci9saWIvbGlib21wLnNvCi0JCXZtb3ZlICJ1 c3IvbGliL2xpYm9tcHRhcmdldC5ydGwuKi5zbyIKLQkJdm1vdmUgdXNyL2xpYi9saWJhcmNoZXIu c28KLQkJdm1vdmUgInVzci9saWIvbGlib21wKi5zby4qIgotCX0KLX0KLQotbGlib21wLWRldmVs X3BhY2thZ2UoKSB7Ci0Jc2hvcnRfZGVzYys9IiAtIENsYW5nIE9wZW5NUCBzdXBwb3J0IGxpYnJh cnkgLSBkZXZlbG9wbWVudCBmaWxlcyIKLQlkZXBlbmRzPSJsaWJvbXA+PSR7dmVyc2lvbn1fJHty ZXZpc2lvbn0iCi0JcGtnX2luc3RhbGwoKSB7Ci0JCXZtb3ZlICJ1c3IvbGliL2xpYm9tcCouc28i Ci0JCXZtb3ZlICJ1c3IvbGliL2xpYmFyY2hlcioiCi0JCXZtb3ZlICJ1c3IvaW5jbHVkZS9vbXAq LmgiCi0JCXZtb3ZlICJ1c3IvbGliL2NsYW5nLyR7dmVyc2lvbn0vaW5jbHVkZS9vbXAqLmgiCi0J CXZtb3ZlIHVzci9zaGFyZS9tYW4vbWFuMS9sbHZtb3Blbm1wLjEKLQkJdm1vdmUgdXNyL3NoYXJl L2RvYy9vcGVubXAKLQl9CiB9CiAKIGxpYmxsdm0xMl9wYWNrYWdlKCkgewoKRnJvbSBlOTljOWNl ZmRjZDg5MmM2OGRlOGIzOGFkMmM2YzIzNmRlZmFmMzYyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQpGcm9tOiBwcmV6IDxwcmV6QG5hdGlvbmFsLnNoaXRwb3N0aW5nLmFnZW5jeT4KRGF0ZTogV2Vk LCA0IE1heSAyMDIyIDE0OjAwOjI4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwNC8yM10gTmV3IHBh Y2thZ2VzOiBjbGFuZzEyLCBsaWJjbGFuZzEyLCBsaWJjbGFuZzEyLWNwcCwKIGxsZDEyLCBsbGQx Mi1kZXZlbC4KCi0tLQogY29tbW9uL3NobGlicyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHwgICAyICsKIHNyY3BrZ3MvY2xhbmcxMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8ICAgMSArCiBzcmNwa2dzL2xpYmNsYW5nMTIgICAgICAgICAgICAgICAgICAgICAgICAgICAg fCAgIDEgKwogc3JjcGtncy9saWJjbGFuZzEyLWNwcCAgICAgICAgICAgICAgICAgICAgICAgIHwg ICAxICsKIHNyY3BrZ3MvbGxkMTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAg MSArCiBzcmNwa2dzL2xsZDEyLWRldmVsICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEg KwogLi4uY2xhbmctMDAxLWZpeC11bndpbmQtY2hhaW4taW5jbHVzaW9uLnBhdGNoIHwgIDQ0ICsr KysrKysKIC4uLi9wYXRjaGVzL2NsYW5nLTAwMi1hZGQtbXVzbC10cmlwbGVzLnBhdGNoICB8IDEx MCArKysrKysrKysrKysrKysrKysKIC4uLi9jbGFuZy0wMDMtcHBjNjQtZHluYW1pYy1saW5rZXIt cGF0aC5wYXRjaCB8ICAxMyArKysKIC4uLi9wYXRjaGVzL2NsYW5nLTAwNC1wcGM2NC1tdXNsLWVs ZnYyLnBhdGNoICB8ICA0OCArKysrKysrKwogc3JjcGtncy9sbHZtMTIvdGVtcGxhdGUgICAgICAg ICAgICAgICAgICAgICAgIHwgIDcxICsrKysrKysrKysrCiAxMSBmaWxlcyBjaGFuZ2VkLCAyOTMg aW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTIwMDAwIHNyY3BrZ3MvY2xhbmcxMgogY3JlYXRl IG1vZGUgMTIwMDAwIHNyY3BrZ3MvbGliY2xhbmcxMgogY3JlYXRlIG1vZGUgMTIwMDAwIHNyY3Br Z3MvbGliY2xhbmcxMi1jcHAKIGNyZWF0ZSBtb2RlIDEyMDAwMCBzcmNwa2dzL2xsZDEyCiBjcmVh dGUgbW9kZSAxMjAwMDAgc3JjcGtncy9sbGQxMi1kZXZlbAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNy Y3BrZ3MvbGx2bTEyL3BhdGNoZXMvY2xhbmctMDAxLWZpeC11bndpbmQtY2hhaW4taW5jbHVzaW9u LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9jbGFuZy0w MDItYWRkLW11c2wtdHJpcGxlcy5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGx2 bTEyL3BhdGNoZXMvY2xhbmctMDAzLXBwYzY0LWR5bmFtaWMtbGlua2VyLXBhdGgucGF0Y2gKIGNy ZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2NsYW5nLTAwNC1wcGM2NC1t dXNsLWVsZnYyLnBhdGNoCgpkaWZmIC0tZ2l0IGEvY29tbW9uL3NobGlicyBiL2NvbW1vbi9zaGxp YnMKaW5kZXggOTE4MGM2OGQ4NDE5Li4zMzMzNzQwYjI4ODEgMTAwNjQ0Ci0tLSBhL2NvbW1vbi9z aGxpYnMKKysrIGIvY29tbW9uL3NobGlicwpAQCAtOTczLDYgKzk3Myw4IEBAIGxpYnVjaGFyZGV0 LnNvLjAgdWNoYXJkZXQtMC4wLjZfMQogbGliZ3Rrc291cmNldmlld21tLTMuMC5zby4wIGd0a3Nv dXJjZXZpZXdtbS0zLjIuMF8xCiBsaWJ5YWpsLnNvLjIgeWFqbC0yLjAuMV8xCiBsaWJjb25mdXNl LnNvLjIgY29uZnVzZS0zLjIuMV8xCitsaWJjbGFuZy5zby4xMiBsaWJjbGFuZzEyLTEyLjAuMF8x CitsaWJjbGFuZy1jcHAuc28uMTIgbGliY2xhbmcxMi1jcHAtMTIuMC4wXzEKIGxpYmxsZGIuc28u MTQgbGxkYi0xNC4wLjNfMQogbGliY2xhbmcuc28uMTMgbGliY2xhbmctMTQuMC4zXzEKIGxpYmNs YW5nLWNwcC5zby4xNCBsaWJjbGFuZy1jcHAtMTQuMC4zXzEKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv Y2xhbmcxMiBiL3NyY3BrZ3MvY2xhbmcxMgpuZXcgZmlsZSBtb2RlIDEyMDAwMAppbmRleCAwMDAw MDAwMDAwMDAuLmNkNjBmZDdhOTgxYgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvY2xhbmcx MgpAQCAtMCwwICsxIEBACitsbHZtMTIKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYg LS1naXQgYS9zcmNwa2dzL2xpYmNsYW5nMTIgYi9zcmNwa2dzL2xpYmNsYW5nMTIKbmV3IGZpbGUg bW9kZSAxMjAwMDAKaW5kZXggMDAwMDAwMDAwMDAwLi5jZDYwZmQ3YTk4MWIKLS0tIC9kZXYvbnVs bAorKysgYi9zcmNwa2dzL2xpYmNsYW5nMTIKQEAgLTAsMCArMSBAQAorbGx2bTEyClwgTm8gbmV3 bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9saWJjbGFuZzEyLWNwcCBi L3NyY3BrZ3MvbGliY2xhbmcxMi1jcHAKbmV3IGZpbGUgbW9kZSAxMjAwMDAKaW5kZXggMDAwMDAw MDAwMDAwLi5jZDYwZmQ3YTk4MWIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xpYmNsYW5n MTItY3BwCkBAIC0wLDAgKzEgQEAKK2xsdm0xMgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK ZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGxkMTIgYi9zcmNwa2dzL2xsZDEyCm5ldyBmaWxlIG1vZGUg MTIwMDAwCmluZGV4IDAwMDAwMDAwMDAwMC4uY2Q2MGZkN2E5ODFiCi0tLSAvZGV2L251bGwKKysr IGIvc3JjcGtncy9sbGQxMgpAQCAtMCwwICsxIEBACitsbHZtMTIKXCBObyBuZXdsaW5lIGF0IGVu ZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsZDEyLWRldmVsIGIvc3JjcGtncy9sbGQx Mi1kZXZlbApuZXcgZmlsZSBtb2RlIDEyMDAwMAppbmRleCAwMDAwMDAwMDAwMDAuLmNkNjBmZDdh OTgxYgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbGxkMTItZGV2ZWwKQEAgLTAsMCArMSBA QAorbGx2bTEyClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9sbHZtMTIvcGF0Y2hlcy9jbGFuZy0wMDEtZml4LXVud2luZC1jaGFpbi1pbmNsdXNpb24ucGF0 Y2ggYi9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2NsYW5nLTAwMS1maXgtdW53aW5kLWNoYWluLWlu Y2x1c2lvbi5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmU0 ZWFhNzc4M2U3YQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvY2xh bmctMDAxLWZpeC11bndpbmQtY2hhaW4taW5jbHVzaW9uLnBhdGNoCkBAIC0wLDAgKzEsNDQgQEAK K0Zyb20gMzUyOTc0MTY5ZjBkMmI1ZGEzZDUzMjFmNTg4ZjVlM2I1OTQxMzMwZSBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKK0Zyb206IEFuZHJlYSBCcmFuY2FsZW9uaSA8bWl3YXhlQGdtYWlsLmNv bT4KK0RhdGU6IFR1ZSwgOCBTZXAgMjAxNSAyMjoxNDo1NyArMDIwMAorU3ViamVjdDogW1BBVENI IDIvN10gZml4IHVud2luZCBjaGFpbiBpbmNsdXNpb24KKworLS0tCisgbGliL0hlYWRlcnMvdW53 aW5kLmggfCA5ICsrKysrLS0tLQorIDEgZmlsZSBjaGFuZ2VkLCA1IGluc2VydGlvbnMoKyksIDQg ZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9saWIvSGVhZGVycy91bndpbmQuaCBiL2xpYi9I ZWFkZXJzL3Vud2luZC5oCitpbmRleCAzMDNkNzkyLi40NGUxMGNjIDEwMDY0NAorLS0tIGEvY2xh bmcvbGliL0hlYWRlcnMvdW53aW5kLmgKKysrKyBiL2NsYW5nL2xpYi9IZWFkZXJzL3Vud2luZC5o CitAQCAtOSw5ICs5LDYgQEAKKyAKKyAvKiBTZWUgIkRhdGEgRGVmaW5pdGlvbnMgZm9yIGxpYmdj Y19zIiBpbiB0aGUgTGludXggU3RhbmRhcmQgQmFzZS4qLworIAorLSNpZm5kZWYgX19DTEFOR19V TldJTkRfSAorLSNkZWZpbmUgX19DTEFOR19VTldJTkRfSAorLQorICNpZiBkZWZpbmVkKF9fQVBQ TEVfXykgJiYgX19oYXNfaW5jbHVkZV9uZXh0KDx1bndpbmQuaD4pCisgLyogRGFyd2luIChmcm9t IDExLnggb24pIHByb3ZpZGUgYW4gdW53aW5kLmguIElmIHRoYXQncyBhdmFpbGFibGUsCisgICog dXNlIGl0LiBsaWJ1bndpbmQgd3JhcHMgc29tZSBvZiBpdHMgZGVmaW5pdGlvbnMgaW4gI2lmZGVm IF9HTlVfU09VUkNFLAorQEAgLTM5LDYgKzM2LDkgQEAKKyAjIGVuZGlmCisgI2Vsc2UKKyAKKysj aWZuZGVmIF9fQ0xBTkdfVU5XSU5EX0gKKysjZGVmaW5lIF9fQ0xBTkdfVU5XSU5EX0gKKysKKyAj aW5jbHVkZSA8c3RkaW50Lmg+CisgCisgI2lmZGVmIF9fY3BsdXNwbHVzCitAQCAtMzIyLDYgKzMy Miw3IEBAIF9VbndpbmRfUHRyIF9VbndpbmRfR2V0VGV4dFJlbEJhc2Uoc3RydWN0IF9VbndpbmRf Q29udGV4dCAqKTsKKyB9CisgI2VuZGlmCisgCisrI2VuZGlmIC8qIF9fQ0xBTkdfVU5XSU5EX0gg Ki8KKysKKyAjZW5kaWYKKyAKKy0jZW5kaWYgLyogX19DTEFOR19VTldJTkRfSCAqLworLS0gCisy LjUuMQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9jbGFuZy0wMDItYWRkLW11 c2wtdHJpcGxlcy5wYXRjaCBiL3NyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvY2xhbmctMDAyLWFkZC1t dXNsLXRyaXBsZXMucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw Li4yNTY4OGQ0MGRiYzIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xsdm0xMi9wYXRjaGVz L2NsYW5nLTAwMi1hZGQtbXVzbC10cmlwbGVzLnBhdGNoCkBAIC0wLDAgKzEsMTEwIEBACistLS0g YS9jbGFuZy9saWIvRHJpdmVyL1Rvb2xDaGFpbnMvR251LmNwcAorKysrIGIvY2xhbmcvbGliL0Ry aXZlci9Ub29sQ2hhaW5zL0dudS5jcHAKK0BAIC0yMDg2LDcgKzIwODYsOCBAQCB2b2lkIEdlbmVy aWNfR0NDOjpHQ0NJbnN0YWxsYXRpb25EZXRlY3Rvcjo6QWRkRGVmYXVsdEdDQ1ByZWZpeGVzKAor ICAgc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IEFSTUhGVHJpcGxlc1tdID0geyJhcm0tbGludXgt Z251ZWFiaWhmIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAiYXJtdjdobC1yZWRoYXQtbGludXgtZ251ZWFiaSIsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgImFybXY2aGwtc3VzZS1saW51eC1nbnVlYWJpIiwKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYXJtdjdobC1zdXNl LWxpbnV4LWdudWVhYmkifTsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAiYXJtdjdobC1zdXNlLWxpbnV4LWdudWVhYmkiLAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhcm12N2wtbGludXgtZ251ZWFiaWhmIn07Cisg ICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgQVJNZWJMaWJEaXJzW10gPSB7Ii9saWIifTsKKyAg IHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBBUk1lYlRyaXBsZXNbXSA9IHsiYXJtZWItbGludXgt Z251ZWFiaSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ImFybWViLWxpbnV4LWFuZHJvaWRlYWJpIn07CitAQCAtMjE1Myw4ICsyMTU0LDcgQEAgdm9pZCBH ZW5lcmljX0dDQzo6R0NDSW5zdGFsbGF0aW9uRGV0ZWN0b3I6OkFkZERlZmF1bHRHQ0NQcmVmaXhl cygKKyAgICAgICAicG93ZXJwYzY0LXN1c2UtbGludXgiLCAicG93ZXJwYy1tb250YXZpc3RhLWxp bnV4c3BlIn07CisgICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgUFBDTEVMaWJEaXJzW10gPSB7 Ii9saWIzMiIsICIvbGliIn07CisgICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgUFBDTEVUcmlw bGVzW10gPSB7InBvd2VycGNsZS1saW51eC1nbnUiLAorLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICJwb3dlcnBjbGUtdW5rbm93bi1saW51eC1nbnUiLAorLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwb3dlcnBjbGUtbGlu dXgtbXVzbCJ9OworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICJwb3dlcnBjbGUtdW5rbm93bi1saW51eC1nbnUifTsKKyAKKyAgIHN0YXRpYyBjb25zdCBjaGFy ICpjb25zdCBQUEM2NExpYkRpcnNbXSA9IHsiL2xpYjY0IiwgIi9saWIifTsKKyAgIHN0YXRpYyBj b25zdCBjaGFyICpjb25zdCBQUEM2NFRyaXBsZXNbXSA9IHsKK0BAIC0yMjM1LDYgKzIyMzUsODcg QEAgdm9pZCBHZW5lcmljX0dDQzo6R0NDSW5zdGFsbGF0aW9uRGV0ZWN0b3I6OkFkZERlZmF1bHRH Q0NQcmVmaXhlcygKKyAgICAgcmV0dXJuOworICAgfQorIAorKyAgaWYgKFRhcmdldFRyaXBsZS5p c011c2woKSkgeworKyAgICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgQUFyY2g2NE11c2xUcmlw bGVzW10gPSB7ImFhcmNoNjQtbGludXgtbXVzbCJ9OworKyAgICBzdGF0aWMgY29uc3QgY2hhciAq Y29uc3QgQVJNSEZNdXNsVHJpcGxlc1tdID0geworKyAgICAgICAgImFybS1saW51eC1tdXNsZWFi aWhmIiwgImFybXY3bC1saW51eC1tdXNsZWFiaWhmIgorKyAgICB9OworKyAgICBzdGF0aWMgY29u c3QgY2hhciAqY29uc3QgQVJNTXVzbFRyaXBsZXNbXSA9IHsiYXJtLWxpbnV4LW11c2xlYWJpIn07 CisrICAgIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBYODZfNjRNdXNsVHJpcGxlc1tdID0geyJ4 ODZfNjQtbGludXgtbXVzbCJ9OworKyAgICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgWDg2TXVz bFRyaXBsZXNbXSA9IHsiaTY4Ni1saW51eC1tdXNsIn07CisrICAgIHN0YXRpYyBjb25zdCBjaGFy ICpjb25zdCBNSVBTTXVzbFRyaXBsZXNbXSA9IHsKKysgICAgICAgICJtaXBzLWxpbnV4LW11c2wi LCAibWlwc2VsLWxpbnV4LW11c2wiLAorKyAgICAgICAgIm1pcHNlbC1saW51eC1tdXNsaGYiLCAi bWlwcy1saW51eC1tdXNsaGYiCisrICAgIH07CisrICAgIHN0YXRpYyBjb25zdCBjaGFyICpjb25z dCBQUENNdXNsVHJpcGxlc1tdID0geyJwb3dlcnBjLWxpbnV4LW11c2wifTsKKysgICAgc3RhdGlj IGNvbnN0IGNoYXIgKmNvbnN0IFBQQ0xFTXVzbFRyaXBsZXNbXSA9IHsicG93ZXJwY2xlLWxpbnV4 LW11c2wifTsKKysgICAgc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IFBQQzY0TXVzbFRyaXBsZXNb XSA9IHsicG93ZXJwYzY0LWxpbnV4LW11c2wifTsKKysgICAgc3RhdGljIGNvbnN0IGNoYXIgKmNv bnN0IFBQQzY0TEVNdXNsVHJpcGxlc1tdID0geyJwb3dlcnBjNjRsZS1saW51eC1tdXNsIn07Cisr CisrICAgIHN3aXRjaCAoVGFyZ2V0VHJpcGxlLmdldEFyY2goKSkgeworKyAgICBjYXNlIGxsdm06 OlRyaXBsZTo6YWFyY2g2NDoKKysgICAgICBMaWJEaXJzLmFwcGVuZChiZWdpbihBQXJjaDY0TGli RGlycyksIGVuZChBQXJjaDY0TGliRGlycykpOworKyAgICAgIFRyaXBsZUFsaWFzZXMuYXBwZW5k KGJlZ2luKEFBcmNoNjRNdXNsVHJpcGxlcyksIGVuZChBQXJjaDY0TXVzbFRyaXBsZXMpKTsKKysg ICAgICBCaWFyY2hMaWJEaXJzLmFwcGVuZChiZWdpbihBQXJjaDY0TGliRGlycyksIGVuZChBQXJj aDY0TGliRGlycykpOworKyAgICAgIEJpYXJjaFRyaXBsZUFsaWFzZXMuYXBwZW5kKGJlZ2luKEFB cmNoNjRNdXNsVHJpcGxlcyksIGVuZChBQXJjaDY0TXVzbFRyaXBsZXMpKTsKKysgICAgICBicmVh azsKKysgICAgY2FzZSBsbHZtOjpUcmlwbGU6OmFybToKKysgICAgICBMaWJEaXJzLmFwcGVuZChi ZWdpbihBUk1MaWJEaXJzKSwgZW5kKEFSTUxpYkRpcnMpKTsKKysgICAgICBpZiAoVGFyZ2V0VHJp cGxlLmdldEVudmlyb25tZW50KCkgPT0gbGx2bTo6VHJpcGxlOjpNdXNsRUFCSUhGKSB7CisrICAg ICAgICBUcmlwbGVBbGlhc2VzLmFwcGVuZChiZWdpbihBUk1IRk11c2xUcmlwbGVzKSwgZW5kKEFS TUhGTXVzbFRyaXBsZXMpKTsKKysgICAgICB9IGVsc2UgeworKyAgICAgICAgVHJpcGxlQWxpYXNl cy5hcHBlbmQoYmVnaW4oQVJNTXVzbFRyaXBsZXMpLCBlbmQoQVJNTXVzbFRyaXBsZXMpKTsKKysg ICAgICB9CisrICAgICAgYnJlYWs7CisrICAgIGNhc2UgbGx2bTo6VHJpcGxlOjp4ODZfNjQ6Cisr ICAgICAgTGliRGlycy5hcHBlbmQoYmVnaW4oWDg2XzY0TGliRGlycyksIGVuZChYODZfNjRMaWJE aXJzKSk7CisrICAgICAgVHJpcGxlQWxpYXNlcy5hcHBlbmQoYmVnaW4oWDg2XzY0TXVzbFRyaXBs ZXMpLCBlbmQoWDg2XzY0TXVzbFRyaXBsZXMpKTsKKysgICAgICBCaWFyY2hMaWJEaXJzLmFwcGVu ZChiZWdpbihYODZMaWJEaXJzKSwgZW5kKFg4NkxpYkRpcnMpKTsKKysgICAgICBCaWFyY2hUcmlw bGVBbGlhc2VzLmFwcGVuZChiZWdpbihYODZNdXNsVHJpcGxlcyksIGVuZChYODZNdXNsVHJpcGxl cykpOworKyAgICAgIGJyZWFrOworKyAgICBjYXNlIGxsdm06OlRyaXBsZTo6eDg2OgorKyAgICAg IExpYkRpcnMuYXBwZW5kKGJlZ2luKFg4NkxpYkRpcnMpLCBlbmQoWDg2TGliRGlycykpOworKyAg ICAgIFRyaXBsZUFsaWFzZXMuYXBwZW5kKGJlZ2luKFg4Nk11c2xUcmlwbGVzKSwgZW5kKFg4Nk11 c2xUcmlwbGVzKSk7CisrICAgICAgQmlhcmNoTGliRGlycy5hcHBlbmQoYmVnaW4oWDg2XzY0TGli RGlycyksIGVuZChYODZfNjRMaWJEaXJzKSk7CisrICAgICAgQmlhcmNoVHJpcGxlQWxpYXNlcy5h cHBlbmQoYmVnaW4oWDg2XzY0TXVzbFRyaXBsZXMpLCBlbmQoWDg2XzY0TXVzbFRyaXBsZXMpKTsK KysgICAgICBicmVhazsKKysgICAgY2FzZSBsbHZtOjpUcmlwbGU6Om1pcHM6CisrICAgICAgTGli RGlycy5hcHBlbmQoYmVnaW4oTUlQU0xpYkRpcnMpLCBlbmQoTUlQU0xpYkRpcnMpKTsKKysgICAg ICBUcmlwbGVBbGlhc2VzLmFwcGVuZChiZWdpbihNSVBTTXVzbFRyaXBsZXMpLCBlbmQoTUlQU011 c2xUcmlwbGVzKSk7CisrICAgICAgYnJlYWs7CisrICAgIGNhc2UgbGx2bTo6VHJpcGxlOjpwcGM6 CisrICAgICAgTGliRGlycy5hcHBlbmQoYmVnaW4oUFBDTGliRGlycyksIGVuZChQUENMaWJEaXJz KSk7CisrICAgICAgVHJpcGxlQWxpYXNlcy5hcHBlbmQoYmVnaW4oUFBDTXVzbFRyaXBsZXMpLCBl bmQoUFBDTXVzbFRyaXBsZXMpKTsKKysgICAgICBCaWFyY2hMaWJEaXJzLmFwcGVuZChiZWdpbihQ UEM2NExpYkRpcnMpLCBlbmQoUFBDNjRMaWJEaXJzKSk7CisrICAgICAgQmlhcmNoVHJpcGxlQWxp YXNlcy5hcHBlbmQoYmVnaW4oUFBDNjRNdXNsVHJpcGxlcyksIGVuZChQUEM2NE11c2xUcmlwbGVz KSk7CisrICAgICAgYnJlYWs7CisrICAgIGNhc2UgbGx2bTo6VHJpcGxlOjpwcGNsZToKKysgICAg ICBMaWJEaXJzLmFwcGVuZChiZWdpbihQUENMRUxpYkRpcnMpLCBlbmQoUFBDTEVMaWJEaXJzKSk7 CisrICAgICAgVHJpcGxlQWxpYXNlcy5hcHBlbmQoYmVnaW4oUFBDTEVNdXNsVHJpcGxlcyksIGVu ZChQUENMRU11c2xUcmlwbGVzKSk7CisrICAgICAgQmlhcmNoTGliRGlycy5hcHBlbmQoYmVnaW4o UFBDNjRMRUxpYkRpcnMpLCBlbmQoUFBDNjRMRUxpYkRpcnMpKTsKKysgICAgICBCaWFyY2hUcmlw bGVBbGlhc2VzLmFwcGVuZChiZWdpbihQUEM2NExFTXVzbFRyaXBsZXMpLCBlbmQoUFBDNjRMRU11 c2xUcmlwbGVzKSk7CisrICAgICAgYnJlYWs7CisrICAgIGNhc2UgbGx2bTo6VHJpcGxlOjpwcGM2 NDoKKysgICAgICBMaWJEaXJzLmFwcGVuZChiZWdpbihQUEM2NExpYkRpcnMpLCBlbmQoUFBDNjRM aWJEaXJzKSk7CisrICAgICAgVHJpcGxlQWxpYXNlcy5hcHBlbmQoYmVnaW4oUFBDNjRNdXNsVHJp cGxlcyksIGVuZChQUEM2NE11c2xUcmlwbGVzKSk7CisrICAgICAgQmlhcmNoTGliRGlycy5hcHBl bmQoYmVnaW4oUFBDTGliRGlycyksIGVuZChQUENMaWJEaXJzKSk7CisrICAgICAgQmlhcmNoVHJp cGxlQWxpYXNlcy5hcHBlbmQoYmVnaW4oUFBDTXVzbFRyaXBsZXMpLCBlbmQoUFBDTXVzbFRyaXBs ZXMpKTsKKysgICAgICBicmVhazsKKysgICAgY2FzZSBsbHZtOjpUcmlwbGU6OnBwYzY0bGU6Cisr ICAgICAgTGliRGlycy5hcHBlbmQoYmVnaW4oUFBDNjRMRUxpYkRpcnMpLCBlbmQoUFBDNjRMRUxp YkRpcnMpKTsKKysgICAgICBUcmlwbGVBbGlhc2VzLmFwcGVuZChiZWdpbihQUEM2NExFTXVzbFRy aXBsZXMpLCBlbmQoUFBDNjRMRU11c2xUcmlwbGVzKSk7CisrICAgICAgQmlhcmNoTGliRGlycy5h cHBlbmQoYmVnaW4oUFBDTEVMaWJEaXJzKSwgZW5kKFBQQ0xFTGliRGlycykpOworKyAgICAgIEJp YXJjaFRyaXBsZUFsaWFzZXMuYXBwZW5kKGJlZ2luKFBQQ0xFTXVzbFRyaXBsZXMpLCBlbmQoUFBD TEVNdXNsVHJpcGxlcykpOworKyAgICAgIGJyZWFrOworKyAgICBkZWZhdWx0OgorKyAgICAgIGJy ZWFrOworKyAgICB9CisrICAgIFRyaXBsZUFsaWFzZXMucHVzaF9iYWNrKFRhcmdldFRyaXBsZS5z dHIoKSk7CisrICAgIGlmIChUYXJnZXRUcmlwbGUuc3RyKCkgIT0gQmlhcmNoVHJpcGxlLnN0cigp KQorKyAgICAgIEJpYXJjaFRyaXBsZUFsaWFzZXMucHVzaF9iYWNrKEJpYXJjaFRyaXBsZS5zdHIo KSk7CisrICAgIHJldHVybjsKKysgIH0KKysKKyAgIC8vIEFuZHJvaWQgdGFyZ2V0cyBzaG91bGQg bm90IHVzZSBHTlUvTGludXggdG9vbHMgb3IgbGlicmFyaWVzLgorICAgaWYgKFRhcmdldFRyaXBs ZS5pc0FuZHJvaWQoKSkgeworICAgICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgQUFyY2g2NEFu ZHJvaWRUcmlwbGVzW10gPSB7CmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2Ns YW5nLTAwMy1wcGM2NC1keW5hbWljLWxpbmtlci1wYXRoLnBhdGNoIGIvc3JjcGtncy9sbHZtMTIv cGF0Y2hlcy9jbGFuZy0wMDMtcHBjNjQtZHluYW1pYy1saW5rZXItcGF0aC5wYXRjaApuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjRhZDY0MTJkMWU2YwotLS0gL2Rldi9u dWxsCisrKyBiL3NyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvY2xhbmctMDAzLXBwYzY0LWR5bmFtaWMt bGlua2VyLXBhdGgucGF0Y2gKQEAgLTAsMCArMSwxMyBAQAorLS0tIGEvY2xhbmcvbGliL0RyaXZl ci9Ub29sQ2hhaW5zL0xpbnV4LmNwcAorKysrIGIvY2xhbmcvbGliL0RyaXZlci9Ub29sQ2hhaW5z L0xpbnV4LmNwcAorQEAgLTUwNCwxMCArNTA0LDYgQEAgc3RkOjpzdHJpbmcgTGludXg6OmdldER5 bmFtaWNMaW5rZXIoY29uc3QgQXJnTGlzdCAmQXJncykgY29uc3QgeworICAgICBMb2FkZXIgPSAi bGQuc28uMSI7CisgICAgIGJyZWFrOworICAgY2FzZSBsbHZtOjpUcmlwbGU6OnBwYzY0OgorLSAg ICBMaWJEaXIgPSAibGliNjQiOworLSAgICBMb2FkZXIgPQorLSAgICAgICAgKHRvb2xzOjpwcGM6 Omhhc1BQQ0FiaUFyZyhBcmdzLCAiZWxmdjIiKSkgPyAibGQ2NC5zby4yIiA6ICJsZDY0LnNvLjEi OworLSAgICBicmVhazsKKyAgIGNhc2UgbGx2bTo6VHJpcGxlOjpwcGM2NGxlOgorICAgICBMaWJE aXIgPSAibGliNjQiOworICAgICBMb2FkZXIgPQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtMTIv cGF0Y2hlcy9jbGFuZy0wMDQtcHBjNjQtbXVzbC1lbGZ2Mi5wYXRjaCBiL3NyY3BrZ3MvbGx2bTEy L3BhdGNoZXMvY2xhbmctMDA0LXBwYzY0LW11c2wtZWxmdjIucGF0Y2gKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4yMWZjODAwM2M1ZjEKLS0tIC9kZXYvbnVsbAorKysg Yi9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2NsYW5nLTAwNC1wcGM2NC1tdXNsLWVsZnYyLnBhdGNo CkBAIC0wLDAgKzEsNDggQEAKKy0tLSBhL2NsYW5nL2xpYi9CYXNpYy9UYXJnZXRzL1BQQy5oCisr KysgYi9jbGFuZy9saWIvQmFzaWMvVGFyZ2V0cy9QUEMuaAorQEAgLTQxNSwxMSArNDE1LDEwIEBA IHB1YmxpYzoKKyAgICAgICBMb25nRG91YmxlRm9ybWF0ID0gJmxsdm06OkFQRmxvYXQ6OklFRUVk b3VibGUoKTsKKyAgICAgfSBlbHNlIGlmICgoVHJpcGxlLmdldEFyY2goKSA9PSBsbHZtOjpUcmlw bGU6OnBwYzY0bGUpKSB7CisgICAgICAgRGF0YUxheW91dCA9ICJlLW06ZS1pNjQ6NjQtbjMyOjY0 IjsKKy0gICAgICBBQkkgPSAiZWxmdjIiOworICAgICB9IGVsc2UgeworICAgICAgIERhdGFMYXlv dXQgPSAiRS1tOmUtaTY0OjY0LW4zMjo2NCI7CistICAgICAgQUJJID0gImVsZnYxIjsKKyAgICAg fQorKyAgICBBQkkgPSAiZWxmdjIiOworIAorICAgICBpZiAoVHJpcGxlLmlzT1NGcmVlQlNEKCkg fHwgVHJpcGxlLmlzT1NPcGVuQlNEKCkgfHwgVHJpcGxlLmlzTXVzbCgpKSB7CisgICAgICAgTG9u Z0RvdWJsZVdpZHRoID0gTG9uZ0RvdWJsZUFsaWduID0gNjQ7CistLS0gYS9jbGFuZy9saWIvQ29k ZUdlbi9UYXJnZXRJbmZvLmNwcAorKysrIGIvY2xhbmcvbGliL0NvZGVHZW4vVGFyZ2V0SW5mby5j cHAKK0BAIC0xMDkyNyw5ICsxMDkyNyw5IEBAIGNvbnN0IFRhcmdldENvZGVHZW5JbmZvICZDb2Rl R2VuTW9kdWxlOjpnZXRUYXJnZXRDb2RlR2VuSW5mbygpIHsKKyAgICAgICByZXR1cm4gU2V0Q0dJ bmZvKG5ldyBBSVhUYXJnZXRDb2RlR2VuSW5mbyhUeXBlcywgLypJczY0Qml0Ki8gdHJ1ZSkpOwor IAorICAgICBpZiAoVHJpcGxlLmlzT1NCaW5Gb3JtYXRFTEYoKSkgeworLSAgICAgIFBQQzY0X1NW UjRfQUJJSW5mbzo6QUJJS2luZCBLaW5kID0gUFBDNjRfU1ZSNF9BQklJbmZvOjpFTEZ2MTsKKy0g ICAgICBpZiAoZ2V0VGFyZ2V0KCkuZ2V0QUJJKCkgPT0gImVsZnYyIikKKy0gICAgICAgIEtpbmQg PSBQUEM2NF9TVlI0X0FCSUluZm86OkVMRnYyOworKyAgICAgIFBQQzY0X1NWUjRfQUJJSW5mbzo6 QUJJS2luZCBLaW5kID0gUFBDNjRfU1ZSNF9BQklJbmZvOjpFTEZ2MjsKKysgICAgICBpZiAoZ2V0 VGFyZ2V0KCkuZ2V0QUJJKCkgPT0gImVsZnYxIikKKysgICAgICAgIEtpbmQgPSBQUEM2NF9TVlI0 X0FCSUluZm86OkVMRnYxOworICAgICAgIGJvb2wgSXNTb2Z0RmxvYXQgPSBDb2RlR2VuT3B0cy5G bG9hdEFCSSA9PSAic29mdCI7CisgCisgICAgICAgcmV0dXJuIFNldENHSW5mbygKKy0tLSBhL2Ns YW5nL2xpYi9Ecml2ZXIvVG9vbENoYWlucy9DbGFuZy5jcHAKKysrKyBiL2NsYW5nL2xpYi9Ecml2 ZXIvVG9vbENoYWlucy9DbGFuZy5jcHAKK0BAIC0xOTIwLDE0ICsxOTIwLDcgQEAgdm9pZCBDbGFu Zzo6QWRkUFBDVGFyZ2V0QXJncyhjb25zdCBBcmdMaXN0ICZBcmdzLAorICAgY29uc3QgbGx2bTo6 VHJpcGxlICZUID0gZ2V0VG9vbENoYWluKCkuZ2V0VHJpcGxlKCk7CisgICBpZiAoVC5pc09TQmlu Rm9ybWF0RUxGKCkpIHsKKyAgICAgc3dpdGNoIChnZXRUb29sQ2hhaW4oKS5nZXRBcmNoKCkpIHsK Ky0gICAgY2FzZSBsbHZtOjpUcmlwbGU6OnBwYzY0OiB7CistICAgICAgaWYgKChULmlzT1NGcmVl QlNEKCkgJiYgVC5nZXRPU01ham9yVmVyc2lvbigpID49IDEzKSB8fAorLSAgICAgICAgICBULmlz T1NPcGVuQlNEKCkgfHwgVC5pc011c2woKSkKKy0gICAgICAgIEFCSU5hbWUgPSAiZWxmdjIiOwor LSAgICAgIGVsc2UKKy0gICAgICAgIEFCSU5hbWUgPSAiZWxmdjEiOworLSAgICAgIGJyZWFrOwor LSAgICB9CisrICAgIGNhc2UgbGx2bTo6VHJpcGxlOjpwcGM2NDoKKyAgICAgY2FzZSBsbHZtOjpU cmlwbGU6OnBwYzY0bGU6CisgICAgICAgQUJJTmFtZSA9ICJlbGZ2MiI7CisgICAgICAgYnJlYWs7 CmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0xMi90ZW1wbGF0ZSBiL3NyY3BrZ3MvbGx2bTEyL3Rl bXBsYXRlCmluZGV4IDdiMzYxYmJiZjViYy4uMjc0YjU3MTgzNjU0IDEwMDY0NAotLS0gYS9zcmNw a2dzL2xsdm0xMi90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2xsdm0xMi90ZW1wbGF0ZQpAQCAtNDMs NiArNDMsMTIgQEAgY2FzZSAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiIGluCiAJcHBjKikgY29uZmln dXJlX2FyZ3MrPSIgLURDTEFOR19FTkFCTEVfQ0xBTkdEPU9GRiIgOzsKIGVzYWMKIAorX2VuYWJs ZWRfcHJvamVjdHM9ImNsYW5nO2xsZCIKKworc3VicGFja2FnZXMrPSIgY2xhbmcxMiBsaWJjbGFu ZzEyIGxpYmNsYW5nMTItY3BwIGxpYmxsdm0xMiBsbGQxMiBsbGQxMi1kZXZlbCIKKworY29uZmln dXJlX2FyZ3MrPSIgLURMTFZNX0VOQUJMRV9QUk9KRUNUUz0ke19lbmFibGVkX3Byb2plY3RzfSIK KwogcG9zdF9wYXRjaCgpIHsKIAkjIHVwZGF0ZSBjb25maWcuZ3Vlc3MgZm9yIGJldHRlciBwbGF0 Zm9ybSBkZXRlY3Rpb24KIAljcCAkWEJQU19DT01NT05ESVIvZW52aXJvbm1lbnQvY29uZmlndXJl L2F1dG9tYWtlL2NvbmZpZy5ndWVzcyBcCkBAIC03Myw4ICs3OSwxMCBAQCBwcmVfY29uZmlndXJl KCkgewogCQkJY21ha2UgLi4vLi4gLURDTUFLRV9CVUlMRF9UWVBFPVJlbGVhc2UgXAogCQkJLURM TFZNX0VOQUJMRV9QUk9KRUNUUz0ke19lbmFibGVkX3Byb2plY3RzfQogCQltYWtlICR7bWFrZWpv YnN9IC1DIHV0aWxzL1RhYmxlR2VuCisJCW1ha2UgJHttYWtlam9ic30gLUMgdG9vbHMvY2xhbmcv dXRpbHMvVGFibGVHZW4KIAkJWyAiJF9sbGRiX2VuYWJsZSIgPSAieWVzIiBdICYmIG1ha2UgJHtt YWtlam9ic30gLUMgdG9vbHMvbGxkYi91dGlscy9UYWJsZUdlbgogCQljb25maWd1cmVfYXJncys9 IiAtRExMVk1fVEFCTEVHRU49JHt3cmtzcmN9L2xsdm0vYnVpbGQvSE9TVC9iaW4vbGx2bS10Ymxn ZW4iCisJCWNvbmZpZ3VyZV9hcmdzKz0iIC1EQ0xBTkdfVEFCTEVHRU49JHt3cmtzcmN9L2xsdm0v YnVpbGQvSE9TVC9iaW4vY2xhbmctdGJsZ2VuIgogCQlbICIkX2xsZGJfZW5hYmxlIiA9ICJ5ZXMi IF0gJiYgY29uZmlndXJlX2FyZ3MrPSIgLURMTERCX1RBQkxFR0VOPSR7d3Jrc3JjfS9sbHZtL2J1 aWxkL0hPU1QvYmluL2xsZGItdGJsZ2VuIgogCQljZCAuLi8uLgogCWZpCkBAIC0xMTcsNiArMTI1 LDY5IEBAIGRvX2luc3RhbGwoKSB7CiAJZmkKIH0KIAorY2xhbmcxMl9wYWNrYWdlKCkgeworCWNv bmZsaWN0cz0iY2xhbmciCisJbGliMzJkaXNhYmxlZD15ZXMKKwlkZXBlbmRzPSJsaWJzdGRjKyst ZGV2ZWwgbGliZ2NjLWRldmVsICBiaW51dGlscyAke1hCUFNfVEFSR0VUX0xJQkN9LWRldmVsCisJ IGxpYmNsYW5nMTItJHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKKwlzaG9ydF9kZXNjKz0iIC0gQyBs YW5ndWFnZSBmYW1pbHkgZnJvbnRlbmQiCisJaG9tZXBhZ2U9Imh0dHBzOi8vY2xhbmcubGx2bS5v cmcvIgorCXBrZ19pbnN0YWxsKCkgeworCQl2bW92ZSB1c3IvaW5jbHVkZS9jbGFuZworCQl2bW92 ZSB1c3IvaW5jbHVkZS9jbGFuZy1jCisJCXZtb3ZlICJ1c3IvYmluLypjbGFuZyoiCisJCXZtb3Zl IHVzci9iaW4vYy1pbmRleC10ZXN0CisJCXZtb3ZlIHVzci9saWIvY2xhbmcKKwkJdm1vdmUgdXNy L2xpYi9jbWFrZS9jbGFuZworCQl2bW92ZSAidXNyL2xpYi9saWJjbGFuZyouYSIKKwkJdm1vdmUg InVzci9saWIvbGliY2xhbmcqLnNvIgorCQl2bW92ZSB1c3Ivc2hhcmUvY2xhbmcKKwkJdm1vdmUg dXNyL3NoYXJlL2RvYy9jbGFuZworCQl2bW92ZSB1c3Ivc2hhcmUvbWFuL21hbjEvY2xhbmcuMQor CX0KK30KKworbGliY2xhbmcxMl9wYWNrYWdlKCkgeworCXNob3J0X2Rlc2MrPSIgLSBDIGZyb250 ZW5kIHJ1bnRpbWUgbGlicmFyeSIKKwlwa2dfaW5zdGFsbCgpIHsKKwkJdm1vdmUgInVzci9saWIv bGliY2xhbmcuc28uKiIKKwl9Cit9CisKK2xpYmNsYW5nMTItY3BwX3BhY2thZ2UoKSB7CisJc2hv cnRfZGVzYys9IiAtIEMgZnJvbnRlbmQgcnVudGltZSBsaWJyYXJ5IChDKysgaW50ZXJmYWNlKSIK Kwlwa2dfaW5zdGFsbCgpIHsKKwkJdm1vdmUgInVzci9saWIvbGliY2xhbmctY3BwLnNvLioiCisJ fQorfQorCitsbGQxMl9wYWNrYWdlKCkgeworCWNvbmZsaWN0cz0ibGxkIgorCWxpYjMyZGlzYWJs ZWQ9eWVzCisJc2hvcnRfZGVzYys9IiAtIGxpbmtlciIKKwlob21lcGFnZT0iaHR0cHM6Ly9sbGQu bGx2bS5vcmciCisJcGtnX2luc3RhbGwoKSB7CisJCXZtb3ZlIHVzci9iaW4vbGxkKgorCQl2bW92 ZSB1c3IvYmluL3dhc20tbGQKKwkJdm1vdmUgdXNyL2Jpbi9sZC5sbGQqCisJCXZtb3ZlIHVzci9i aW4vbGQ2NC5sbGQqCisJCXZtb3ZlIHVzci9zaGFyZS9kb2MvbGxkCisJfQorfQorCitsbGQxMi1k ZXZlbF9wYWNrYWdlKCkgeworCWNvbmZsaWN0cz0ibGxkLWRldmVsIgorCWxpYjMyZGlzYWJsZWQ9 eWVzCisJc2hvcnRfZGVzYys9IiAtIGxpbmtlciAtIGRldmVsb3BtZW50IGZpbGVzIgorCWhvbWVw YWdlPSJodHRwczovL2xsZC5sbHZtLm9yZyIKKwlkZXBlbmRzPSJsbGQxMj49JHt2ZXJzaW9ufV8k e3JldmlzaW9ufSIKKwlwa2dfaW5zdGFsbCgpIHsKKwkJdm1vdmUgdXNyL2luY2x1ZGUvbGxkCisJ CXZtb3ZlIHVzci9saWIvY21ha2UvbGxkCisJCXZtb3ZlICJ1c3IvbGliL2xpYmxsZCphIgorCX0K K30KKwogbGlibGx2bTEyX3BhY2thZ2UoKSB7CiAJc2hvcnRfZGVzYys9IiAtIHJ1bnRpbWUgbGli cmFyeSIKIAlwa2dfaW5zdGFsbCgpIHsKCkZyb20gYTcwY2VlNThhMTExYjNkODk0OWZlYzhlNGM1 ZmI5MTI5NjVkNmU1MiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogcHJleiA8cHJlekBu YXRpb25hbC5zaGl0cG9zdGluZy5hZ2VuY3k+CkRhdGU6IE1vbiwgMiBNYXkgMjAyMiAxOTowNzo0 MCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDUvMjNdIGNocm9taXVtOiB1cGRhdGUgZm9yIGxsdm0x NAoKLS0tCiBzcmNwa2dzL2Nocm9taXVtL3RlbXBsYXRlIHwgMTAgKystLS0tLS0tLQogMSBmaWxl IGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgOCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9z cmNwa2dzL2Nocm9taXVtL3RlbXBsYXRlIGIvc3JjcGtncy9jaHJvbWl1bS90ZW1wbGF0ZQppbmRl eCBmZTQwMGI3NGMxMjkuLmYxNWYyYTMxM2FhOSAxMDA2NDQKLS0tIGEvc3JjcGtncy9jaHJvbWl1 bS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2Nocm9taXVtL3RlbXBsYXRlCkBAIC0yLDcgKzIsNyBA QAogcGtnbmFtZT1jaHJvbWl1bQogIyBTZWUgaHR0cHM6Ly9jaHJvbWl1bWRhc2guYXBwc3BvdC5j b20vcmVsZWFzZXM/cGxhdGZvcm09TGludXggZm9yIHRoZSBsYXRlc3QgdmVyc2lvbgogdmVyc2lv bj0xMDIuMC41MDA1LjYxCi1yZXZpc2lvbj0xCityZXZpc2lvbj0yCiBhcmNocz0iaTY4NiogeDg2 XzY0KiBhYXJjaDY0KiBhcm12N2wqIHBwYzY0bGUqIgogc2hvcnRfZGVzYz0iR29vZ2xlJ3MgYXR0 ZW1wdCBhdCBjcmVhdGluZyBhIHNhZmVyLCBmYXN0ZXIsIGFuZCBtb3JlIHN0YWJsZSBicm93c2Vy IgogbWFpbnRhaW5lcj0iRHVuY2FlbiA8ZHVuY2FlbkB2b2lkbGludXgub3JnPiIKQEAgLTIwLDcg KzIwLDcgQEAgZGVzY19vcHRpb25fZGVidWc9IkJ1aWxkIHdpdGggZGVidWcgc3ltYm9scyIKIGRl c2Nfb3B0aW9uX2pzX29wdGltaXplPSJPcHRpbWl6ZSB0aGUgSlMgdXNlZCBmb3IgQ2hyb21pdW0n cyBVSSIKIGRlc2Nfb3B0aW9uX3BpcGV3aXJlPSJFbmFibGUgc3VwcG9ydCBmb3Igc2NyZWVuIHNo YXJpbmcgZm9yIFdlYlJUQyB2aWEgUGlwZVdpcmUiCiAKLWhvc3RtYWtlZGVwZW5kcz0iJCh2b3B0 X2lmIGNsYW5nICJjbGFuZyBsbGQgbGx2bTEyIikgcHl0aG9uIHB5dGhvbjMgcGtnY29uZiBwZXJs IGdwZXJmIGJpc29uIG5pbmphIG5vZGVqcyBod2lkcworaG9zdG1ha2VkZXBlbmRzPSIkKHZvcHRf aWYgY2xhbmcgImNsYW5nIGxsZCBsbHZtMTQiKSBweXRob24gcHl0aG9uMyBwa2djb25mIHBlcmwg Z3BlcmYgYmlzb24gbmluamEgbm9kZWpzIGh3aWRzCiAgbGliYXRvbWljLWRldmVsIGxpYmV2ZW50 LWRldmVsIGxpYmdsaWItZGV2ZWwgJCh2b3B0X2lmIGpzX29wdGltaXplIG9wZW5qZGspIHdheWxh bmQtZGV2ZWwgbGliZXBveHktZGV2ZWwgZ2l0IgogbWFrZWRlcGVuZHM9ImxpYnBuZy1kZXZlbCBn dGsrLWRldmVsIGd0ayszLWRldmVsIG5zcy1kZXZlbCBwY2l1dGlscy1kZXZlbAogIGxpYlhpLWRl dmVsIGxpYmdjcnlwdC1kZXZlbCBsaWJnbm9tZS1rZXlyaW5nLWRldmVsIGN1cHMtZGV2ZWwgZWxm dXRpbHMtZGV2ZWwKQEAgLTI2NiwxMiArMjY2LDYgQEAgZG9fY29uZmlndXJlKCkgewogCQknZGlz YWJsZV9maWVsZHRyaWFsX3Rlc3RpbmdfY29uZmlnPXRydWUnCiAKIAkJJ2lzX29mZmljaWFsX2J1 aWxkPXRydWUnCi0KLQkJIyBzZWdmYXVsdHMgd2l0aCBsbHZtLTEyLjAuMQotCQknaXNfY2ZpPWZh bHNlJwotCQkndXNlX3RoaW5fbHRvPWZhbHNlJwotCQkndXNlX2NmaV9pY2FsbD1mYWxzZScKLQkJ J2Nocm9tZV9wZ29fcGhhc2U9MCcKIAkpCiAKIAlpZiBbICIkQ1JPU1NfQlVJTEQiIF07IHRoZW4K CkZyb20gMmRkNTQzNzY5Yjc4ZTg0ZmM2M2MxM2ZjNjhlODVhZjQzMjgyMjdkNyBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogcHJleiA8cHJlekBuYXRpb25hbC5zaGl0cG9zdGluZy5hZ2Vu Y3k+CkRhdGU6IE1vbiwgMiBNYXkgMjAyMiAxOTowNzozOCArMDIwMApTdWJqZWN0OiBbUEFUQ0gg MDYvMjNdIGdoZGw6IHVwZGF0ZSBmb3IgbGx2bTE0CgotLS0KIHNyY3BrZ3MvZ2hkbC9wYXRjaGVz L3tsbHZtMTIucGF0Y2ggPT4gbGx2bS5wYXRjaH0gfCAyICsrCiBzcmNwa2dzL2doZGwvdGVtcGxh dGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMiArLQogMiBmaWxlcyBjaGFuZ2VkLCAz IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKIHJlbmFtZSBzcmNwa2dzL2doZGwvcGF0Y2hl cy97bGx2bTEyLnBhdGNoID0+IGxsdm0ucGF0Y2h9ICg4MiUpCgpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9naGRsL3BhdGNoZXMvbGx2bTEyLnBhdGNoIGIvc3JjcGtncy9naGRsL3BhdGNoZXMvbGx2bS5w YXRjaApzaW1pbGFyaXR5IGluZGV4IDgyJQpyZW5hbWUgZnJvbSBzcmNwa2dzL2doZGwvcGF0Y2hl cy9sbHZtMTIucGF0Y2gKcmVuYW1lIHRvIHNyY3BrZ3MvZ2hkbC9wYXRjaGVzL2xsdm0ucGF0Y2gK aW5kZXggOGQyZjc2YmZkYTA2Li45MjAxODE2YWUwNTMgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ2hk bC9wYXRjaGVzL2xsdm0xMi5wYXRjaAorKysgYi9zcmNwa2dzL2doZGwvcGF0Y2hlcy9sbHZtLnBh dGNoCkBAIC03LDYgKzcsOCBAQCBpbmRleCBjMWMxYTZkLi5kYWQ3YzM4IDEwMDc1NQogICAgICAg ICBjaGVja192ZXJzaW9uIDEwLjAgJGxsdm1fdmVyc2lvbiB8fAogICAgICAgICBjaGVja192ZXJz aW9uIDExLjAgJGxsdm1fdmVyc2lvbiB8fAogKyAgICAgICBjaGVja192ZXJzaW9uIDEyLjAgJGxs dm1fdmVyc2lvbiB8fAorKyAgICAgICBjaGVja192ZXJzaW9uIDEzLjAgJGxsdm1fdmVyc2lvbiB8 fAorKyAgICAgICBjaGVja192ZXJzaW9uIDE0LjAgJGxsdm1fdmVyc2lvbiB8fAogICAgICAgICBm YWxzZTsgdGhlbgogICAgICBlY2hvICJEZWJ1Z2dpbmcgaXMgZW5hYmxlZCB3aXRoIGxsdm0gJGxs dm1fdmVyc2lvbiIKICAgIGVsc2UKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ2hkbC90ZW1wbGF0ZSBi L3NyY3BrZ3MvZ2hkbC90ZW1wbGF0ZQppbmRleCBlNzU2ZDhjM2NkODcuLjljYTExNjliMjJiZCAx MDA2NDQKLS0tIGEvc3JjcGtncy9naGRsL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ2hkbC90ZW1w bGF0ZQpAQCAtNyw3ICs3LDcgQEAKIHBrZ25hbWU9Z2hkbAogcmV2ZXJ0cz0iMjAxODExMjlfMSIK IHZlcnNpb249MS4wLjAKLXJldmlzaW9uPTEKK3JldmlzaW9uPTIKIGJ1aWxkX3N0eWxlPWNvbmZp Z3VyZQogY29uZmlndXJlX2FyZ3M9Ii0tcHJlZml4PS91c3IgLS1zcmNkaXI9Li4gLS1pbmNkaXI9 bGliL2doZGwvaW5jbHVkZSIKIG1ha2VkZXBlbmRzPSJ6bGliLWRldmVsIgoKRnJvbSBjMTNlM2E3 YzNmNDU0NjM2ZWVlNzFlZDUwYzgxZGIzZTlhMDE3YTk0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQpGcm9tOiBwcmV6IDxwcmV6QG5hdGlvbmFsLnNoaXRwb3N0aW5nLmFnZW5jeT4KRGF0ZTogV2Vk LCA0IE1heSAyMDIyIDE0OjA3OjE0ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwNy8yM10gemlnOiB1 cGRhdGUgZm9yIGxsdm0xNAoKLS0tCiBzcmNwa2dzL3ppZy90ZW1wbGF0ZSB8IDIgKy0KIDEgZmls ZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MvemlnL3RlbXBsYXRlIGIvc3JjcGtncy96aWcvdGVtcGxhdGUKaW5kZXggNzI4YzVhNjRl OWRmLi5jMTc1ZGU2MmM1ZjcgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvemlnL3RlbXBsYXRlCisrKyBi L3NyY3BrZ3MvemlnL3RlbXBsYXRlCkBAIC01LDcgKzUsNyBAQCByZXZpc2lvbj0yCiBhcmNocz0i eDg2XzY0KiBhYXJjaDY0KiIKIGJ1aWxkX3N0eWxlPWNtYWtlCiBtYWtlX2NtZD1tYWtlCi1tYWtl ZGVwZW5kcz0iY2xhbmcgbGx2bTEyIGxsZC1kZXZlbCIKK21ha2VkZXBlbmRzPSJjbGFuZzEyIGxs dm0xMiBsbGQxMi1kZXZlbCIKIHNob3J0X2Rlc2M9IlByb2dyYW1taW5nIGxhbmd1YWdlIGRlc2ln bmVkIGZvciByb2J1c3RuZXNzLCBvcHRpbWFsaXR5LCBhbmQgY2xhcml0eSIKIG1haW50YWluZXI9 IklzYWFjIEZyZXVuZCA8bWFpbEBpc2FhY2ZyZXVuZC5jb20+IgogbGljZW5zZT0iTUlUIgoKRnJv bSAwZTViNjc2YzVmZDBkNzE3ZDBjZTM4NTg5NTkzYTE1MzY5OWQ1OTdhIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiBwcmV6IDxwcmV6QG5hdGlvbmFsLnNoaXRwb3N0aW5nLmFnZW5jeT4K RGF0ZTogTW9uLCAyIE1heSAyMDIyIDE5OjA3OjM4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwOC8y M10gcXQ1OiByZWJ1aWxkIGZvciBsbHZtMTQKCi0tLQogc3JjcGtncy9xdDUvdGVtcGxhdGUgfCAy ICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYg LS1naXQgYS9zcmNwa2dzL3F0NS90ZW1wbGF0ZSBiL3NyY3BrZ3MvcXQ1L3RlbXBsYXRlCmluZGV4 IGVlNzg4ZmFkMjAxOS4uMjVmMTU1ODNhNDJkIDEwMDY0NAotLS0gYS9zcmNwa2dzL3F0NS90ZW1w bGF0ZQorKysgYi9zcmNwa2dzL3F0NS90ZW1wbGF0ZQpAQCAtMyw3ICszLDcgQEAgcGtnbmFtZT1x dDUKIHZlcnNpb249NS4xNS4zKzIwMjIwMjIyCiAjIGNvbW1pdCBmY2NhODJjYTQwYTVkOGEwMmE0 ZGRkOTA4NDZkMDcwZjJjNThjZmFkCiAjIGJhc2UgcmVwbzogaHR0cHM6Ly9pbnZlbnQua2RlLm9y Zy9xdC9xdC9xdDUKLXJldmlzaW9uPTMKK3JldmlzaW9uPTQKIGJ1aWxkX3N0eWxlPW1ldGEKIGhv c3RtYWtlZGVwZW5kcz0iY21ha2UgY2xhbmcgZmxleCBwZXJsIGdsaWItZGV2ZWwgcGtnLWNvbmZp ZwogIHB5dGhvbiByZTJjIHJ1Ynkgd2hpY2giCgpGcm9tIDU2NTFiMWU3ODViMDY4NmQwNWQyODkx NjhjMzAwMTA4ZWNlYTdhZjMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IHByZXogPHBy ZXpAbmF0aW9uYWwuc2hpdHBvc3RpbmcuYWdlbmN5PgpEYXRlOiBNb24sIDIgTWF5IDIwMjIgMTk6 MDc6MzggKzAyMDAKU3ViamVjdDogW1BBVENIIDA5LzIzXSBzaGlib2tlbjI6IHJlYnVpbGQgZm9y IGxsdm0xNAoKLS0tCiBzcmNwa2dzL3NoaWJva2VuMi90ZW1wbGF0ZSB8IDIgKy0KIDEgZmlsZSBj aGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3NyY3Br Z3Mvc2hpYm9rZW4yL3RlbXBsYXRlIGIvc3JjcGtncy9zaGlib2tlbjIvdGVtcGxhdGUKaW5kZXgg YjU2NjEzMjI5YzEzLi5hYjlkMmM0Y2I4ZjkgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mvc2hpYm9rZW4y L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3Mvc2hpYm9rZW4yL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBA QAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnc2hpYm9rZW4yJwogcGtnbmFtZT1zaGlib2tlbjIKIHZl cnNpb249NS4xNS4yCi1yZXZpc2lvbj00CityZXZpc2lvbj01CiBfcGtnbmFtZT0icHlzaWRlLXNl dHVwLW9wZW5zb3VyY2Utc3JjLSR7dmVyc2lvbn0iCiB3cmtzcmM9IiR7X3BrZ25hbWUvJTUuMTQu Mi4xLzUuMTQuMn0iCiBidWlsZF93cmtzcmM9InNvdXJjZXMvc2hpYm9rZW4yIgoKRnJvbSAwN2U0 ZTkzOTViNWViZjllMzlhYjQxOTM2YTgzOTUyNDkwM2I5ZGVkIE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQpGcm9tOiBwcmV6IDxwcmV6QG5hdGlvbmFsLnNoaXRwb3N0aW5nLmFnZW5jeT4KRGF0ZTog TW9uLCAyIE1heSAyMDIyIDE5OjA3OjM5ICswMjAwClN1YmplY3Q6IFtQQVRDSCAxMC8yM10gZ25v bWUtYnVpbGRlcjogcmVidWlsZCBmb3IgbGx2bTE0CgotLS0KIHNyY3BrZ3MvZ25vbWUtYnVpbGRl ci90ZW1wbGF0ZSB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxl dGlvbigtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUtYnVpbGRlci90ZW1wbGF0ZSBiL3Ny Y3BrZ3MvZ25vbWUtYnVpbGRlci90ZW1wbGF0ZQppbmRleCA5MzU1OWIyMTc3NGYuLjVhNWE1MTg5 M2FlOCAxMDA2NDQKLS0tIGEvc3JjcGtncy9nbm9tZS1idWlsZGVyL3RlbXBsYXRlCisrKyBiL3Ny Y3BrZ3MvZ25vbWUtYnVpbGRlci90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUg ZmlsZSBmb3IgJ2dub21lLWJ1aWxkZXInCiBwa2duYW1lPWdub21lLWJ1aWxkZXIKIHZlcnNpb249 NDEuMwotcmV2aXNpb249MQorcmV2aXNpb249MgogYnVpbGRfc3R5bGU9bWVzb24KIGJ1aWxkX2hl bHBlcj1xZW11CiBjb25maWd1cmVfYXJncz0iLURoZWxwPXRydWUgLURuZXR3b3JrX3Rlc3RzPWZh bHNlIgoKRnJvbSBhZGUwYWU0ODVmMTVlYjRiMTk4NzQzNDE4NDdlM2RjM2QzN2ViOTFhIE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBwcmV6IDxwcmV6QG5hdGlvbmFsLnNoaXRwb3N0aW5n LmFnZW5jeT4KRGF0ZTogTW9uLCAyIE1heSAyMDIyIDE5OjA3OjM5ICswMjAwClN1YmplY3Q6IFtQ QVRDSCAxMS8yM10gYmNjOiByZWJ1aWxkIGZvciBsbHZtMTQKCi0tLQogc3JjcGtncy9iY2MvdGVt cGxhdGUgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24o LSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2JjYy90ZW1wbGF0ZSBiL3NyY3BrZ3MvYmNjL3RlbXBs YXRlCmluZGV4IDU0NTA5YjYzZDVhNy4uMmNmYTBhMjk3N2QwIDEwMDY0NAotLS0gYS9zcmNwa2dz L2JjYy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2JjYy90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAK ICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2JjYycKIHBrZ25hbWU9YmNjCiB2ZXJzaW9uPTAuMjQuMAot cmV2aXNpb249MQorcmV2aXNpb249Mgogd3Jrc3JjPSJiY2MiCiBidWlsZF9zdHlsZT1jbWFrZQog Y29uZmlndXJlX2FyZ3M9Ii1EUkVWSVNJT049JHt2ZXJzaW9ufSAtREVOQUJMRV9MTFZNX1NIQVJF RD0xIgoKRnJvbSBhNmY0ZWNlYzIxZGE4NmQ3ZDVkN2EwNzFjOTBiYTEwMTg1MGI4NDUwIE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBwcmV6IDxwcmV6QG5hdGlvbmFsLnNoaXRwb3N0aW5n LmFnZW5jeT4KRGF0ZTogTW9uLCAyIE1heSAyMDIyIDE5OjA3OjM5ICswMjAwClN1YmplY3Q6IFtQ QVRDSCAxMi8yM10gbWVzYTogcmVidWlsZCBmb3IgbGx2bTE0CgotLS0KIHNyY3BrZ3MvbWVzYS90 ZW1wbGF0ZSB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlv bigtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbWVzYS90ZW1wbGF0ZSBiL3NyY3BrZ3MvbWVzYS90 ZW1wbGF0ZQppbmRleCBjOTA1MDBkZTc0MTYuLjhmMDgyNjJmYjEzNSAxMDA2NDQKLS0tIGEvc3Jj cGtncy9tZXNhL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvbWVzYS90ZW1wbGF0ZQpAQCAtMSw3ICsx LDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ21lc2EnCiBwa2duYW1lPW1lc2EKIHZlcnNpb249 MjEuMy43Ci1yZXZpc2lvbj0xCityZXZpc2lvbj0yCiBidWlsZF9zdHlsZT1tZXNvbgogY29uZmln dXJlX2FyZ3M9Ii1EZ2x2bmQ9dHJ1ZSAtRHNoYXJlZC1nbGFwaT1lbmFibGVkIC1EZ2JtPWVuYWJs ZWQgLURlZ2w9ZW5hYmxlZAogIC1Eb3NtZXNhPXRydWUgLURnbGVzMT1lbmFibGVkIC1EZ2xlczI9 ZW5hYmxlZCAtRGdseD1kcmkgLURkcmkzPWVuYWJsZWQKCkZyb20gNGQ5NzZhMWJkNzdlMTkyNzkz MTI2Yjg4YjYwMGEwNTZjNmEzNDhmNSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogcHJl eiA8cHJlekBuYXRpb25hbC5zaGl0cG9zdGluZy5hZ2VuY3k+CkRhdGU6IE1vbiwgMiBNYXkgMjAy MiAxOTowNzo0MCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTMvMjNdIGp1Q2krKzogcmVidWlsZCBm b3IgbGx2bTE0CgotLS0KIHNyY3BrZ3MvanVDaSsrL3RlbXBsYXRlIHwgMiArLQogMSBmaWxlIGNo YW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9qdUNpKysvdGVtcGxhdGUgYi9zcmNwa2dzL2p1Q2krKy90ZW1wbGF0ZQppbmRleCAxYTc2MDRi NDRhMDAuLjUxMDMzMjRkZWMyMCAxMDA2NDQKLS0tIGEvc3JjcGtncy9qdUNpKysvdGVtcGxhdGUK KysrIGIvc3JjcGtncy9qdUNpKysvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRl IGZpbGUgZm9yICdqdUNpKysnCiBwa2duYW1lPWp1Q2krKwogdmVyc2lvbj0xLjYuMgotcmV2aXNp b249MgorcmV2aXNpb249MwogX2xpYmNsYW5nbW1fY29tbWl0PSJiMzQyZjRkZDZkZTRmZTUwOWE2 OTJhNGI0ZmNmYzdlMjRhYWU5NTkwIgogX3RpbnlfY29tbWl0PSJjOWM4YmY4MTBkZGFkOGNkMTc4 ODJiOWE5ZWU2MjhhNjkwZTc3OWY1Igogd3Jrc3JjPSJqdWNpcHAtdiR7dmVyc2lvbn0iCgpGcm9t IDMxMTkzZTc5NjBlZmJkNjVjY2QwNzFkNGI3MDIwYjBmMWM0ODI3OTIgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IHByZXogPHByZXpAbmF0aW9uYWwuc2hpdHBvc3RpbmcuYWdlbmN5PgpE YXRlOiBNb24sIDIgTWF5IDIwMjIgMTk6MDc6NDAgKzAyMDAKU3ViamVjdDogW1BBVENIIDE0LzIz XSBjb2RlbGl0ZTogcmVidWlsZCBmb3IgbGx2bTE0CgotLS0KIHNyY3BrZ3MvY29kZWxpdGUvdGVt cGxhdGUgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24o LSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2NvZGVsaXRlL3RlbXBsYXRlIGIvc3JjcGtncy9jb2Rl bGl0ZS90ZW1wbGF0ZQppbmRleCAzYTk5M2EyYzBjZmIuLjI0ZTJjODc5ZGQ0NSAxMDA2NDQKLS0t IGEvc3JjcGtncy9jb2RlbGl0ZS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2NvZGVsaXRlL3RlbXBs YXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnY29kZWxpdGUnCiBwa2du YW1lPWNvZGVsaXRlCiB2ZXJzaW9uPTE1LjAuNgotcmV2aXNpb249MQorcmV2aXNpb249MgogYnVp bGRfc3R5bGU9Y21ha2UKIGJ1aWxkX2hlbHBlcj1jbWFrZS13eFdpZGdldHMtZ3RrMwogY29uZmln dXJlX2FyZ3M9Ii1EV0lUSF9QQ0g9MCAtRFdJVEhfV1hfQ09ORklHPXd4LWNvbmZpZy1ndGszCgpG cm9tIGJkMjdiZTVlNWJkYTQ4MjdiNWQ0MDIyOGUyMzljYTBmZmY4YTY1NzcgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206IHByZXogPHByZXpAbmF0aW9uYWwuc2hpdHBvc3RpbmcuYWdlbmN5 PgpEYXRlOiBNb24sIDIgTWF5IDIwMjIgMTk6MDc6NDEgKzAyMDAKU3ViamVjdDogW1BBVENIIDE1 LzIzXSBjY2xzOiByZWJ1aWxkIGZvciBsbHZtMTQKCi0tLQogc3JjcGtncy9jY2xzL3RlbXBsYXRl IHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpk aWZmIC0tZ2l0IGEvc3JjcGtncy9jY2xzL3RlbXBsYXRlIGIvc3JjcGtncy9jY2xzL3RlbXBsYXRl CmluZGV4IGZiYjdjNjg0N2JjMS4uNDBhYmEzYjU1YmZlIDEwMDY0NAotLS0gYS9zcmNwa2dzL2Nj bHMvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9jY2xzL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAog IyBUZW1wbGF0ZSBmaWxlIGZvciAnY2NscycKIHBrZ25hbWU9Y2NscwogdmVyc2lvbj0wLjIwMjEw MzMwCi1yZXZpc2lvbj0yCityZXZpc2lvbj0zCiBidWlsZF9zdHlsZT1jbWFrZQogaG9zdG1ha2Vk ZXBlbmRzPSJjbGFuZy10b29scy1leHRyYSIKIG1ha2VkZXBlbmRzPSJsbHZtIG5jdXJzZXMtZGV2 ZWwgcmFwaWRqc29uIHpsaWItZGV2ZWwgY2xhbmctdG9vbHMtZXh0cmEiCgpGcm9tIGY0ZDAwOGM5 MzRhYmQ2NDY5ZTExOTY2NjAxNjIzMzIyOWZmMmRhNmQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CkZyb206IHByZXogPHByZXpAbmF0aW9uYWwuc2hpdHBvc3RpbmcuYWdlbmN5PgpEYXRlOiBNb24s IDIgTWF5IDIwMjIgMTk6MDc6NDEgKzAyMDAKU3ViamVjdDogW1BBVENIIDE2LzIzXSBjbGF6eTog cmVidWlsZCBmb3IgbGx2bTE0CgotLS0KIHNyY3BrZ3MvY2xhenkvdGVtcGxhdGUgfCAyICstCiAx IGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQg YS9zcmNwa2dzL2NsYXp5L3RlbXBsYXRlIGIvc3JjcGtncy9jbGF6eS90ZW1wbGF0ZQppbmRleCAx MWYzYmFiNTVhZWYuLmY4MWRlMDhhYjgzNiAxMDA2NDQKLS0tIGEvc3JjcGtncy9jbGF6eS90ZW1w bGF0ZQorKysgYi9zcmNwa2dzL2NsYXp5L3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1w bGF0ZSBmaWxlIGZvciAnY2xhenknCiBwa2duYW1lPWNsYXp5CiB2ZXJzaW9uPTEuMTEKLXJldmlz aW9uPTEKK3JldmlzaW9uPTIKIGJ1aWxkX3N0eWxlPWNtYWtlCiBidWlsZF9oZWxwZXI9cWVtdQog aG9zdG1ha2VkZXBlbmRzPSJsbHZtIgoKRnJvbSBmOTZlMmUyN2E2ODkxZjU0YmIyMjIxYzZhYzlk YTZjNGUxNGM2ODBlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBwcmV6IDxwcmV6QG5h dGlvbmFsLnNoaXRwb3N0aW5nLmFnZW5jeT4KRGF0ZTogTW9uLCAyIE1heSAyMDIyIDE5OjA3OjQx ICswMjAwClN1YmplY3Q6IFtQQVRDSCAxNy8yM10gYnBmdHJhY2U6IHJlYnVpbGQgZm9yIGxsdm0x NAoKLS0tCiBzcmNwa2dzL2JwZnRyYWNlL3RlbXBsYXRlIHwgMiArLQogMSBmaWxlIGNoYW5nZWQs IDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9icGZ0 cmFjZS90ZW1wbGF0ZSBiL3NyY3BrZ3MvYnBmdHJhY2UvdGVtcGxhdGUKaW5kZXggMTkwY2ViYjhl M2JjLi5hMTMyMjRiODJiMDggMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvYnBmdHJhY2UvdGVtcGxhdGUK KysrIGIvc3JjcGtncy9icGZ0cmFjZS90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxh dGUgZmlsZSBmb3IgJ2JwZnRyYWNlJwogcGtnbmFtZT1icGZ0cmFjZQogdmVyc2lvbj0wLjE1LjAK LXJldmlzaW9uPTEKK3JldmlzaW9uPTIKIGFyY2hzPSJ4ODZfNjQqIGFhcmNoNjQqIHBwYzY0KiIK IGJ1aWxkX3N0eWxlPWNtYWtlCiBjb25maWd1cmVfYXJncz0iLURCVUlMRF9URVNUSU5HPU9GRiIg ICMgbmVlZHMgcm9vdCB0byBydW4KCkZyb20gMjAxZjdkYmNiOTZkYzM5ODljYmE3MGYzNzU2MmIw ZmI5MGFkZjI5MiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogcHJleiA8cHJlekBuYXRp b25hbC5zaGl0cG9zdGluZy5hZ2VuY3k+CkRhdGU6IE1vbiwgMiBNYXkgMjAyMiAxOTowNzo0MSAr MDIwMApTdWJqZWN0OiBbUEFUQ0ggMTgvMjNdIHJ0YWdzOiByZWJ1aWxkIGZvciBsbHZtMTQKCi0t LQogc3JjcGtncy9ydGFncy90ZW1wbGF0ZSB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2Vy dGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcnRhZ3MvdGVtcGxh dGUgYi9zcmNwa2dzL3J0YWdzL3RlbXBsYXRlCmluZGV4IGI0OTZhMWIwZTcyMS4uOWIxNjFlNjkw ZDc2IDEwMDY0NAotLS0gYS9zcmNwa2dzL3J0YWdzL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvcnRh Z3MvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdydGFncycK IHBrZ25hbWU9cnRhZ3MKIHZlcnNpb249Mi4zOAotcmV2aXNpb249NQorcmV2aXNpb249NgogYnVp bGRfc3R5bGU9Y21ha2UKICMgRG9uJ3QgcnVuIHRlc3RzIGluIGRvX2luc3RhbGwsIHBsZWFzZS4K IGNvbmZpZ3VyZV9hcmdzPSItRFNLSVBfQ1RFU1Q9VFJVRSIKCkZyb20gODM4ZjcwZjc3OWE0ZDIx MjhmNDk0MTRiZjAzYTdiYjlkMTYxNTVkMiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTog cHJleiA8cHJlekBuYXRpb25hbC5zaGl0cG9zdGluZy5hZ2VuY3k+CkRhdGU6IE1vbiwgMiBNYXkg MjAyMiAyMTowNzoxOSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTkvMjNdIGJlaWduZXQ6IHJlbW92 ZSBwYWNrYWdlCgotLS0KIHNyY3BrZ3MvYmVpZ25ldC9wYXRjaGVzL2NsX3VpbnQucGF0Y2ggICAg ICAgICB8ICAyMiAtCiAuLi40MTlhMDAwOGUzOGVmMmQ5ZDI1NWQ5ZTljNzRlOWZiYTA4NGIucGF0 Y2ggfCAxMzQgLS0tCiBzcmNwa2dzL2JlaWduZXQvcGF0Y2hlcy9sbHZtMDYucGF0Y2ggICAgICAg ICAgfCAgMzMgLQogc3JjcGtncy9iZWlnbmV0L3BhdGNoZXMvbGx2bTA4LnBhdGNoICAgICAgICAg IHwgIDU2IC0tCiBzcmNwa2dzL2JlaWduZXQvcGF0Y2hlcy9sbHZtMDkucGF0Y2ggICAgICAgICAg fCAxMTEgLS0tCiBzcmNwa2dzL2JlaWduZXQvcGF0Y2hlcy9sbHZtMTAucGF0Y2ggICAgICAgICAg fCAzNDcgLS0tLS0tLQogc3JjcGtncy9iZWlnbmV0L3BhdGNoZXMvbGx2bTExLnBhdGNoICAgICAg ICAgIHwgOTM3IC0tLS0tLS0tLS0tLS0tLS0tLQogc3JjcGtncy9iZWlnbmV0L3BhdGNoZXMvbGx2 bTEyLnBhdGNoICAgICAgICAgIHwgMTE1IC0tLQogc3JjcGtncy9iZWlnbmV0L3BhdGNoZXMvbXVz bC5wYXRjaCAgICAgICAgICAgIHwgIDExIC0KIHNyY3BrZ3MvYmVpZ25ldC90ZW1wbGF0ZSAgICAg ICAgICAgICAgICAgICAgICB8ICAyMiAtCiBzcmNwa2dzL2JlaWduZXQvdXBkYXRlICAgICAgICAg ICAgICAgICAgICAgICAgfCAgIDEgLQogc3JjcGtncy9yZW1vdmVkLXBhY2thZ2VzL3RlbXBsYXRl ICAgICAgICAgICAgIHwgICAzICstCiAxMiBmaWxlcyBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyks IDE3OTAgZGVsZXRpb25zKC0pCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9iZWlnbmV0L3Bh dGNoZXMvY2xfdWludC5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvYmVpZ25ldC9w YXRjaGVzL2UxYjI0MTlhMDAwOGUzOGVmMmQ5ZDI1NWQ5ZTljNzRlOWZiYTA4NGIucGF0Y2gKIGRl bGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2JlaWduZXQvcGF0Y2hlcy9sbHZtMDYucGF0Y2gKIGRl bGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2JlaWduZXQvcGF0Y2hlcy9sbHZtMDgucGF0Y2gKIGRl bGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2JlaWduZXQvcGF0Y2hlcy9sbHZtMDkucGF0Y2gKIGRl bGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2JlaWduZXQvcGF0Y2hlcy9sbHZtMTAucGF0Y2gKIGRl bGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2JlaWduZXQvcGF0Y2hlcy9sbHZtMTEucGF0Y2gKIGRl bGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2JlaWduZXQvcGF0Y2hlcy9sbHZtMTIucGF0Y2gKIGRl bGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2JlaWduZXQvcGF0Y2hlcy9tdXNsLnBhdGNoCiBkZWxl dGUgbW9kZSAxMDA2NDQgc3JjcGtncy9iZWlnbmV0L3RlbXBsYXRlCiBkZWxldGUgbW9kZSAxMDA2 NDQgc3JjcGtncy9iZWlnbmV0L3VwZGF0ZQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvYmVpZ25ldC9w YXRjaGVzL2NsX3VpbnQucGF0Y2ggYi9zcmNwa2dzL2JlaWduZXQvcGF0Y2hlcy9jbF91aW50LnBh dGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4NmJhMDBmMDRlOTUuLjAwMDAwMDAw MDAwMAotLS0gYS9zcmNwa2dzL2JlaWduZXQvcGF0Y2hlcy9jbF91aW50LnBhdGNoCisrKyAvZGV2 L251bGwKQEAgLTEsMjIgKzAsMCBAQAotLS0tIGEvc3JjL2NsX2FwaV9rZXJuZWwuYwkyMDE3LTA5 LTIyIDEwOjA1OjIyLjAwMDAwMDAwMCArMDIwMAotKysrIGIvc3JjL2NsX2FwaV9rZXJuZWwuYwky MDIwLTAzLTI0IDE4OjI3OjQwLjE4NjQ4NTg4NyArMDEwMAotQEAgLTE1MSw3ICsxNTEsNyBAQAot ICAgICAgICAgZml4ZWRfbG9jYWxfc3pbMF0gPSAxNjsKLSAgICAgICAgIGZpeGVkX2xvY2FsX3N6 WzFdID0gMTsKLSAgICAgICB9IGVsc2UgewotLSAgICAgICAgdWludCBqLCBtYXhEaW1TaXplID0g NjQgLyogZnJvbSA2ND8gKi8sIG1heEdyb3VwU2l6ZSA9IDI1NjsgLy9NQVhfV09SS19HUk9VUF9T SVpFIG1heSB0b28gbGFyZ2UKLSsgICAgICAgIGNsX3VpbnQgaiwgbWF4RGltU2l6ZSA9IDY0IC8q IGZyb20gNjQ/ICovLCBtYXhHcm91cFNpemUgPSAyNTY7IC8vTUFYX1dPUktfR1JPVVBfU0laRSBt YXkgdG9vIGxhcmdlCi0gICAgICAgICBzaXplX3QgcmVhbEdyb3VwU2l6ZSA9IDE7Ci0gICAgICAg ICBmb3IgKGkgPSAwOyBpIDwgd29ya19kaW07IGkrKykgewotICAgICAgICAgICBmb3IgKGogPSBt YXhEaW1TaXplOyBqID4gMTsgai0tKSB7Ci0tLS0gYS9zcmMvY2xfZW5xdWV1ZS5jCTIwMTctMDkt MjIgMTA6MDU6MjIuMDAwMDAwMDAwICswMjAwCi0rKysgYi9zcmMvY2xfZW5xdWV1ZS5jCTIwMjAt MDMtMjQgMTg6MzA6MTIuMDMxNDc5ODMzICswMTAwCi1AQCAtNDk0LDcgKzQ5NCw3IEBACi0gY2xf aW50IGNsX2VucXVldWVfc3ZtX2ZyZWUoZW5xdWV1ZV9kYXRhICpkYXRhLCBjbF9pbnQgc3RhdHVz KSB7Ci0gICBpbnQgaTsKLSAgIHZvaWQgKipwb2ludGVycyA9IGRhdGEtPnBvaW50ZXJzOwotLSAg dWludCBudW1fc3ZtX3B0cnMgPSBkYXRhLT5zaXplOwotKyAgY2xfdWludCBudW1fc3ZtX3B0cnMg PSBkYXRhLT5zaXplOwotICAgY2xfaW50IGVyciA9IENMX1NVQ0NFU1M7Ci0gCi0gICBpZiAoc3Rh dHVzICE9IENMX0NPTVBMRVRFKQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9iZWlnbmV0L3BhdGNoZXMv ZTFiMjQxOWEwMDA4ZTM4ZWYyZDlkMjU1ZDllOWM3NGU5ZmJhMDg0Yi5wYXRjaCBiL3NyY3BrZ3Mv YmVpZ25ldC9wYXRjaGVzL2UxYjI0MTlhMDAwOGUzOGVmMmQ5ZDI1NWQ5ZTljNzRlOWZiYTA4NGIu cGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhkZTllNmUyZjA5My4uMDAwMDAw MDAwMDAwCi0tLSBhL3NyY3BrZ3MvYmVpZ25ldC9wYXRjaGVzL2UxYjI0MTlhMDAwOGUzOGVmMmQ5 ZDI1NWQ5ZTljNzRlOWZiYTA4NGIucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxMzQgKzAsMCBA QAotRnJvbSBlMWIyNDE5YTAwMDhlMzhlZjJkOWQyNTVkOWU5Yzc0ZTlmYmEwODRiIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQotRnJvbTogIlJlYmVjY2EgTi4gUGFsbWVyIiA8cmViZWNjYV9wYWxt ZXJAem9oby5jb20+Ci1EYXRlOiBTYXQsIDIxIEp1bCAyMDE4IDIwOjA1OjU0ICswMTAwCi1TdWJq ZWN0OiBBZGQgcHJlbGltaW5hcnkgTExWTSA3IHN1cHBvcnQKLQotVGhpcyBpcyBwcmVsaW1pbmFy eSBiZWNhdXNlIExMVk0gNyBoYXMgbm90IGJlZW4gcmVsZWFzZWQgeWV0OgotaXQgd2FzIHRlc3Rl ZCB3aXRoIHRoZSBzbmFwc2hvdCBmcm9tIERlYmlhbiBleHBlcmltZW50YWwgKHN2bjMzNjg5NCku Ci0KLTEuQ2hhbmdlIGxpbmtpbmcgb3JkZXIsIGFzIGNsYW5nQ29kZUdlbiBub3cgbGlua3MgdG8g Y2xhbmdGcm9udGVuZAotMi5QYXNzIHJlZmVyZW5jZXMgbm90IHBvaW50ZXJzIHRvIFdyaXRlQml0 Y29kZVRvRmlsZSBhbmQgQ2xvbmVNb2R1bGUKLTMuQWRkIHRoZSBoZWFkZXJzIHRoYXQgTG9vcFNp bXBsaWZ5SUQsIExDU1NBSUQgYW5kCi1zb21lIGNyZWF0ZSpQYXNzIGhhdmUgbW92ZWQgdG8KLTQu RGVmaW5lIG91ciBERUJVRyB3aGV0aGVyIG9yIG5vdCB3ZSBqdXN0IHVuZGVmaW5lZCBMTFZNJ3MK LSh0aGVpcnMgaXMgbm93IExMVk1fREVCVUcsIGJ1dCB3ZSBuZXZlciBhY3R1YWxseSB1c2UgaXQp Ci0KLVNpZ25lZC1vZmYtYnk6IFJlYmVjY2EgTi4gUGFsbWVyIDxyZWJlY2NhX3BhbG1lckB6b2hv LmNvbT4KLVJldmlld2VkLWJ5OiBZYW5nIFJvbmcgPHJvbmcuci55YW5nQGludGVsLmNvbT4KLS0t LQotIENNYWtlL0ZpbmRMTFZNLmNtYWtlICAgICAgICAgICAgICAgICAgICAgfCAyICstCi0gYmFj a2VuZC9zcmMvYmFja2VuZC9nZW5fcHJvZ3JhbS5jcHAgICAgICB8IDggKysrKysrKysKLSBiYWNr ZW5kL3NyYy9iYWNrZW5kL3Byb2dyYW0uY3BwICAgICAgICAgIHwgNCArKysrCi0gYmFja2VuZC9z cmMvbGx2bS9FeHBhbmRMYXJnZUludGVnZXJzLmNwcCB8IDIgKy0KLSBiYWNrZW5kL3NyYy9sbHZt L2xsdm1fYml0Y29kZV9saW5rLmNwcCAgIHwgNCArKysrCi0gYmFja2VuZC9zcmMvbGx2bS9sbHZt X2luY2x1ZGVzLmhwcCAgICAgICB8IDQgKysrKwotIDYgZmlsZXMgY2hhbmdlZCwgMjIgaW5zZXJ0 aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL0NNYWtlL0ZpbmRMTFZNLmNt YWtlIGIvQ01ha2UvRmluZExMVk0uY21ha2UKLWluZGV4IDU0NTdmMjQuLmY4ODI1ODkgMTAwNjQ0 Ci0tLS0gYS9DTWFrZS9GaW5kTExWTS5jbWFrZQotKysrIGIvQ01ha2UvRmluZExMVk0uY21ha2UK LUBAIC0xMTMsMTAgKzExMywxMCBAQCBtYWNybyhhZGRfb25lX2xpYiBuYW1lKQotIGVuZG1hY3Jv KCkKLSAKLSAjQXNzdW1lIGNsYW5nIGxpYiBwYXRoIHNhbWUgYXMgbGx2bSBsaWIgcGF0aAotK2Fk ZF9vbmVfbGliKCJjbGFuZ0NvZGVHZW4iKQotIGFkZF9vbmVfbGliKCJjbGFuZ0Zyb250ZW5kIikK LSBhZGRfb25lX2xpYigiY2xhbmdTZXJpYWxpemF0aW9uIikKLSBhZGRfb25lX2xpYigiY2xhbmdE cml2ZXIiKQotLWFkZF9vbmVfbGliKCJjbGFuZ0NvZGVHZW4iKQotIGFkZF9vbmVfbGliKCJjbGFu Z1NlbWEiKQotIGFkZF9vbmVfbGliKCJjbGFuZ1N0YXRpY0FuYWx5emVyRnJvbnRlbmQiKQotIGFk ZF9vbmVfbGliKCJjbGFuZ1N0YXRpY0FuYWx5emVyQ2hlY2tlcnMiKQotZGlmZiAtLWdpdCBhL2Jh Y2tlbmQvc3JjL2JhY2tlbmQvZ2VuX3Byb2dyYW0uY3BwIGIvYmFja2VuZC9zcmMvYmFja2VuZC9n ZW5fcHJvZ3JhbS5jcHAKLWluZGV4IDI3NGM5OWMuLjQxNTkyMzQgMTAwNjQ0Ci0tLS0gYS9iYWNr ZW5kL3NyYy9iYWNrZW5kL2dlbl9wcm9ncmFtLmNwcAotKysrIGIvYmFja2VuZC9zcmMvYmFja2Vu ZC9nZW5fcHJvZ3JhbS5jcHAKLUBAIC00NTQsNyArNDU0LDExIEBAIG5hbWVzcGFjZSBnYmUgewot ICNpZmRlZiBHQkVfQ09NUElMRVJfQVZBSUxBQkxFCi0gICAgICAgc3RkOjpzdHJpbmcgc3RyOwot ICAgICAgIGxsdm06OnJhd19zdHJpbmdfb3N0cmVhbSBPUyhzdHIpOwotKyNpZiBMTFZNX1ZFUlNJ T05fTUFKT1IgPj0gNwotKyAgICAgIGxsdm06OldyaXRlQml0Y29kZVRvRmlsZSgqKChsbHZtOjpN b2R1bGUqKXByb2ctPm1vZHVsZSksIE9TKTsKLSsjZWxzZQotICAgICAgIGxsdm06OldyaXRlQml0 Y29kZVRvRmlsZSgobGx2bTo6TW9kdWxlKilwcm9nLT5tb2R1bGUsIE9TKTsKLSsjZW5kaWYKLSAg ICAgICBzdGQ6OnN0cmluZyYgYmluX3N0ciA9IE9TLnN0cigpOwotICAgICAgIGludCBsbHN6ID0g YmluX3N0ci5zaXplKCk7Ci0gICAgICAgKmJpbmFyeSA9IChjaGFyICopbWFsbG9jKHNpemVvZihj aGFyKSAqIChsbHN6KzEpICk7Ci1AQCAtNTQ1LDcgKzU0OSwxMSBAQCBuYW1lc3BhY2UgZ2JlIHsK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbW9kUmVmKTsKLSAgICAgICAg IHNyYyA9IGxsdm06OnVud3JhcChtb2RSZWYpOwotICAgICAgIH0KLSsjaWYgTExWTV9WRVJTSU9O X01BSk9SID49IDcKLSsgICAgICBsbHZtOjpNb2R1bGUqIGNsb25lID0gbGx2bTo6Q2xvbmVNb2R1 bGUoKnNyYykucmVsZWFzZSgpOwotKyNlbHNlCi0gICAgICAgbGx2bTo6TW9kdWxlKiBjbG9uZSA9 IGxsdm06OkNsb25lTW9kdWxlKHNyYykucmVsZWFzZSgpOwotKyNlbmRpZgotICAgICAgIGlmIChM TFZNTGlua01vZHVsZXMyKHdyYXAoZHN0KSwgd3JhcChjbG9uZSkpKSB7Ci0gI2VsaWYgTExWTV9W RVJTSU9OX01BSk9SICogMTAgKyBMTFZNX1ZFUlNJT05fTUlOT1IgPj0gMzcKLSAgICAgICBpZiAo TExWTUxpbmtNb2R1bGVzKHdyYXAoZHN0KSwgd3JhcChzcmMpLCBMTFZNTGlua2VyUHJlc2VydmVT b3VyY2VfUmVtb3ZlZCwgJmVyck1zZykpIHsKLWRpZmYgLS1naXQgYS9iYWNrZW5kL3NyYy9iYWNr ZW5kL3Byb2dyYW0uY3BwIGIvYmFja2VuZC9zcmMvYmFja2VuZC9wcm9ncmFtLmNwcAotaW5kZXgg YzM3YzU5NS4uYjM2ZjdiNCAxMDA2NDQKLS0tLSBhL2JhY2tlbmQvc3JjL2JhY2tlbmQvcHJvZ3Jh bS5jcHAKLSsrKyBiL2JhY2tlbmQvc3JjL2JhY2tlbmQvcHJvZ3JhbS5jcHAKLUBAIC03OTQsNyAr Nzk0LDExIEBAIG5hbWVzcGFjZSBnYmUgewotICAgICAgIGxsdm06OnJhd19mZF9vc3RyZWFtIG9z dHJlYW0gKGR1bXBTUElSQmluYXJ5TmFtZS5jX3N0cigpLAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGVyciwgbGx2bTo6c3lzOjpmczo6Rl9Ob25lKTsKLSAgICAgICBpZiAo IWVycikKLSsjaWYgTExWTV9WRVJTSU9OX01BSk9SPDcKLSAgICAgICAgIGxsdm06OldyaXRlQml0 Y29kZVRvRmlsZSgqb3V0X21vZHVsZSwgb3N0cmVhbSk7Ci0rI2Vsc2UKLSsgICAgICAgIGxsdm06 OldyaXRlQml0Y29kZVRvRmlsZSgqKm91dF9tb2R1bGUsIG9zdHJlYW0pOwotKyNlbmRpZgotICAg ICB9Ci0gI2VuZGlmCi0gICAgIHJldHVybiB0cnVlOwotZGlmZiAtLWdpdCBhL2JhY2tlbmQvc3Jj L2xsdm0vRXhwYW5kTGFyZ2VJbnRlZ2Vycy5jcHAgYi9iYWNrZW5kL3NyYy9sbHZtL0V4cGFuZExh cmdlSW50ZWdlcnMuY3BwCi1pbmRleCA4NTE1ZGMxLi40YWVjNDRlIDEwMDY0NAotLS0tIGEvYmFj a2VuZC9zcmMvbGx2bS9FeHBhbmRMYXJnZUludGVnZXJzLmNwcAotKysrIGIvYmFja2VuZC9zcmMv bGx2bS9FeHBhbmRMYXJnZUludGVnZXJzLmNwcAotQEAgLTk5LDggKzk5LDggQEAgdXNpbmcgbmFt ZXNwYWNlIGxsdm07Ci0gCi0gI2lmZGVmIERFQlVHCi0gICAjdW5kZWYgREVCVUcKLS0gICNkZWZp bmUgREVCVUcoLi4uKQotICNlbmRpZgotKyNkZWZpbmUgREVCVUcoLi4uKQotIC8vIEJyZWFrIGlu c3RydWN0aW9ucyB1cCBpbnRvIG5vIGxhcmdlciB0aGFuIDY0LWJpdCBjaHVua3MuCi0gc3RhdGlj IGNvbnN0IHVuc2lnbmVkIGtDaHVua0JpdHMgPSA2NDsKLSBzdGF0aWMgY29uc3QgdW5zaWduZWQg a0NodW5rQnl0ZXMgPSBrQ2h1bmtCaXRzIC8gQ0hBUl9CSVQ7Ci1kaWZmIC0tZ2l0IGEvYmFja2Vu ZC9zcmMvbGx2bS9sbHZtX2JpdGNvZGVfbGluay5jcHAgYi9iYWNrZW5kL3NyYy9sbHZtL2xsdm1f Yml0Y29kZV9saW5rLmNwcAotaW5kZXggZWY1NmU0Yy4uNGMzZTIwZSAxMDA2NDQKLS0tLSBhL2Jh Y2tlbmQvc3JjL2xsdm0vbGx2bV9iaXRjb2RlX2xpbmsuY3BwCi0rKysgYi9iYWNrZW5kL3NyYy9s bHZtL2xsdm1fYml0Y29kZV9saW5rLmNwcAotQEAgLTM0MCw3ICszNDAsMTEgQEAgbmFtZXNwYWNl IGdiZQotICAgICAvKiBXZSB1c2UgYmVpZ25ldCdzIGJpdGNvZGUgYXMgZHN0IGJlY2F1c2UgaXQg d2lsbCBoYXZlIGEgbG90IG9mCi0gICAgICAgIGxhenkgZnVuY3Rpb25zIHdoaWNoIHdpbGwgbm90 IGJlIGxvYWRlZC4gKi8KLSAjaWYgTExWTV9WRVJTSU9OX01BSk9SICogMTAgKyBMTFZNX1ZFUlNJ T05fTUlOT1IgPj0gMzkKLSsjaWYgTExWTV9WRVJTSU9OX01BSk9SID49IDcKLSsgICAgbGx2bTo6 TW9kdWxlICogbGlua2VkX21vZHVsZSA9IGxsdm06OkNsb25lTW9kdWxlKCoobGx2bTo6TW9kdWxl Kiltb2QpLnJlbGVhc2UoKTsKLSsjZWxzZQotICAgICBsbHZtOjpNb2R1bGUgKiBsaW5rZWRfbW9k dWxlID0gbGx2bTo6Q2xvbmVNb2R1bGUoKGxsdm06Ok1vZHVsZSopbW9kKS5yZWxlYXNlKCk7Ci0r I2VuZGlmCi0gICAgIGlmKExMVk1MaW5rTW9kdWxlczIod3JhcChjbG9uZWRMaWIpLCB3cmFwKGxp bmtlZF9tb2R1bGUpKSkgewotICNlbHNlCi0gICAgIGNoYXIqIGVycm9yTXNnOwotZGlmZiAtLWdp dCBhL2JhY2tlbmQvc3JjL2xsdm0vbGx2bV9pbmNsdWRlcy5ocHAgYi9iYWNrZW5kL3NyYy9sbHZt L2xsdm1faW5jbHVkZXMuaHBwCi1pbmRleCAxODQ1NTNhLi5mZmNjZjAyIDEwMDY0NAotLS0tIGEv YmFja2VuZC9zcmMvbGx2bS9sbHZtX2luY2x1ZGVzLmhwcAotKysrIGIvYmFja2VuZC9zcmMvbGx2 bS9sbHZtX2luY2x1ZGVzLmhwcAotQEAgLTg5LDYgKzg5LDEwIEBACi0gI2luY2x1ZGUgImxsdm0v Q29kZUdlbi9JbnRyaW5zaWNMb3dlcmluZy5oIgotIAotICNpbmNsdWRlICJsbHZtL1RyYW5zZm9y bXMvU2NhbGFyLmgiCi0rI2lmIExMVk1fVkVSU0lPTl9NQUpPUiA+PSA3Ci0rI2luY2x1ZGUgImxs dm0vVHJhbnNmb3Jtcy9VdGlscy5oIgotKyNpbmNsdWRlICJsbHZtL1RyYW5zZm9ybXMvSW5zdENv bWJpbmUvSW5zdENvbWJpbmUuaCIKLSsjZW5kaWYKLSAjaW5jbHVkZSAibGx2bS9NQy9NQ0FzbUlu Zm8uaCIKLSAjaW5jbHVkZSAibGx2bS9NQy9NQ0NvbnRleHQuaCIKLSAjaW5jbHVkZSAibGx2bS9N Qy9NQ0luc3RySW5mby5oIgotLS0gCi1jZ2l0IHYxLjEKLQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9i ZWlnbmV0L3BhdGNoZXMvbGx2bTA2LnBhdGNoIGIvc3JjcGtncy9iZWlnbmV0L3BhdGNoZXMvbGx2 bTA2LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzMzg5ZTY2YzgyZGYuLjAw MDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2JlaWduZXQvcGF0Y2hlcy9sbHZtMDYucGF0Y2gKKysr IC9kZXYvbnVsbApAQCAtMSwzMyArMCwwIEBACi1Tb3VyY2U6IEFyY2ggTGludXgKLVVwc3RyZWFt OiB1bmtub3duCi1SZWFzb246IGZpeGVzIGxsdm02IGNvbXBpbGF0aW9uCi0KLS0tLSBhL2JhY2tl bmQvc3JjL2xsdm0vbGx2bV90b19nZW4uY3BwCTIwMTctMTAtMjQgMDk6MDQ6NDguMDAwMDAwMDAw ICswMzAwCi0rKysgYi9iYWNrZW5kL3NyYy9sbHZtL2xsdm1fdG9fZ2VuLmNwcAkyMDE4LTAzLTE2 IDE2OjA4OjU0LjY2OTk2MzgyNCArMDIwMAotQEAgLTMyMiw3ICszMjIsMTEgQEAgbmFtZXNwYWNl IGdiZQotICAgICBEYXRhTGF5b3V0IERMKCZtb2QpOwotICAgICAKLSAgICAgZ2JlRGlhZ25vc3Rp Y0NvbnRleHQgZGM7Ci0rI2lmIExMVk1fVkVSU0lPTl9NQUpPUiA+PSA2Ci0rICAgIG1vZC5nZXRD b250ZXh0KCkuc2V0RGlhZ25vc3RpY0hhbmRsZXJDYWxsQmFjaygmZ2JlRGlhZ25vc3RpY0hhbmRs ZXIsJmRjKTsKLSsjZWxzZQotICAgICBtb2QuZ2V0Q29udGV4dCgpLnNldERpYWdub3N0aWNIYW5k bGVyKCZnYmVEaWFnbm9zdGljSGFuZGxlciwmZGMpOwotKyNlbmRpZgotIAotICNpZiBMTFZNX1ZF UlNJT05fTUFKT1IgKiAxMCArIExMVk1fVkVSU0lPTl9NSU5PUiA+PSAzNwotICAgICBtb2Quc2V0 RGF0YUxheW91dChETCk7Ci0tLS0gYS9iYWNrZW5kL3NyYy9sbHZtL2xsdm1fdW5yb2xsLmNwcAky MDE3LTEwLTI0IDA5OjA0OjQ4LjAwMDAwMDAwMCArMDMwMAotKysrIGIvYmFja2VuZC9zcmMvbGx2 bS9sbHZtX3Vucm9sbC5jcHAJMjAxOC0wMy0xNiAxNjowOTo0Ny43MzY0MDM1NTcgKzAyMDAKLUBA IC0yMDUsNyArMjA1LDkgQEAgbmFtZXNwYWNlIGdiZSB7Ci0gICAgICAgICAgIGlmIChwYXJlbnRU cmlwQ291bnQgIT0gMCAmJiBjdXJyVHJpcENvdW50ICogcGFyZW50VHJpcENvdW50ID4gMzIpIHsK LSAgICAgICAgICAgICAvL0Rvbid0IGNoYW5nZSB0aGUgdW5yb2xsSUQgaWYgZG9lc24ndCBmb3Jj ZSB1bnJvbGwuCi0gICAgICAgICAgICAgLy9zZXRVbnJvbGxJRChwYXJlbnRMLCBmYWxzZSk7Ci0t I2lmIExMVk1fVkVSU0lPTl9NQUpPUiAqIDEwICsgTExWTV9WRVJTSU9OX01JTk9SID49IDM4Ci0r I2lmIExMVk1fVkVSU0lPTl9NQUpPUiA+PSA2Ci0rICAgICAgICAgICAgbG9vcEluZm8uZXJhc2Uo cGFyZW50TCk7Ci0rI2VsaWYgTExWTV9WRVJTSU9OX01BSk9SICogMTAgKyBMTFZNX1ZFUlNJT05f TUlOT1IgPj0gMzgKLSAgICAgICAgICAgICBsb29wSW5mby5tYXJrQXNSZW1vdmVkKHBhcmVudEwp OwotICNlbHNlCi0gICAgICAgICAgICAgTFBNLmRlbGV0ZUxvb3BGcm9tUXVldWUocGFyZW50TCk7 Ci1Pbmx5IGluIEJlaWduZXQtMS4zLjItU291cmNlOiBidWlsZAotCmRpZmYgLS1naXQgYS9zcmNw a2dzL2JlaWduZXQvcGF0Y2hlcy9sbHZtMDgucGF0Y2ggYi9zcmNwa2dzL2JlaWduZXQvcGF0Y2hl cy9sbHZtMDgucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGEwYzVlN2E3YzRm Ny4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvYmVpZ25ldC9wYXRjaGVzL2xsdm0wOC5wYXRj aAorKysgL2Rldi9udWxsCkBAIC0xLDU2ICswLDAgQEAKLUZyb20gNzVjMTUyNTk5YTdjMTczOWU2 ZGFkY2RiOWIzNzdhY2Y3ZTQ0ZDljZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEph biBCZWljaCA8amJlaWNoQEZyZWVCU0Qub3JnPgotRGF0ZTogV2VkLCAzMCBKYW4gMjAxOSAxMjo0 MjozNCArMDAwMAotU3ViamVjdDogW1BBVENIXSBsYW5nL2JlaWduZXQ6IHVuYnJlYWsgd2l0aCBs bHZtODAKLQotUmVncmVzc2VkIGJ5IGh0dHBzOi8vZ2l0aHViLmNvbS9sbHZtL2xsdm0tcHJvamVj dC9jb21taXQvNzIxZDk1NzEzYTllCi0KLXVuYWJsZSB0byBsb2FkIC91c3IvbG9jYWwvbGliL2Jl aWduZXQvL2xpYmdiZWludGVycC5zbyB3aGljaCBpcyBwYXJ0IG9mIHRoZSBkcml2ZXIsIHBsZWFz ZSBjaGVjayEKLWxkLWVsZi5zby4xOiAvdXNyL2xvY2FsL2xpYi9iZWlnbmV0Ly9saWJnYmVpbnRl cnAuc286IFVuZGVmaW5lZCBzeW1ib2wgIl9aTjRsbHZtMjREaXNhYmxlQUJJQnJlYWtpbmdDaGVj a3NFIgotCi1SZWdyZXNzZWQgYnkgaHR0cHM6Ly9naXRodWIuY29tL2xsdm0vbGx2bS1wcm9qZWN0 L2NvbW1pdC80YTJkNThlMTZhY2MKLQotYmFja2VuZC9zcmMvbGx2bS9sbHZtX2dlbl9iYWNrZW5k LmNwcDozMDc2OjU6IGVycm9yOgotICAgICAgdW5rbm93biB0eXBlIG5hbWUgJ1Rlcm1pbmF0b3JJ bnN0JwotICAgIFRlcm1pbmF0b3JJbnN0ICp0ZXJtID0gYmItPmdldFRlcm1pbmF0b3IoKTsKLSAg ICBeCi1iYWNrZW5kL3NyYy9sbHZtL2xsdm1fZ2VuX2JhY2tlbmQuY3BwOjMwODM6NTogZXJyb3I6 Ci0gICAgICB1bmtub3duIHR5cGUgbmFtZSAnVGVybWluYXRvckluc3QnCi0gICAgVGVybWluYXRv ckluc3QgKnRlcm0gPSBiYi0+Z2V0VGVybWluYXRvcigpOwotICAgIF4KLQotLS0tIGEvYmFja2Vu ZC9zcmMvQ01ha2VMaXN0cy50eHQJMjAxNy0wOS0yMiAwODowNToyMiBVVEMKLSsrKyBiL2JhY2tl bmQvc3JjL0NNYWtlTGlzdHMudHh0Ci1AQCAtMTY4LDYgKzE2OCw3IEBAIGFkZF9kZXBlbmRlbmNp ZXMoZ2JlIGJlaWduZXRfYml0Y29kZSkKLSBlbmRpZiAoTk9UIChVU0VfU1RBTkRBTE9ORV9HQkVf Q09NUElMRVIgU1RSRVFVQUwgInRydWUiKSkKLSAKLSBhZGRfbGlicmFyeShnYmVpbnRlcnAgU0hB UkVEIGdiZV9iaW5faW50ZXJwcmV0ZXIuY3BwKQotK3RhcmdldF9saW5rX2xpYnJhcmllcyhnYmVp bnRlcnAgJHtMTFZNX01PRFVMRV9MSUJTfSkKLSAKLSBpZiAoTExWTV9WRVJTSU9OX05PRE9UIFZF UlNJT05fRVFVQUwgMzQpCi0gICBmaW5kX2xpYnJhcnkoVEVSTUlORk8gTkFNRVMgdGluZm8gbmN1 cnNlcykKLS0tLSBhL2JhY2tlbmQvc3JjL2xsdm0vbGx2bV9nZW5fYmFja2VuZC5jcHAJMjAxNy0x MC0yNCAwNjowNDo0OCBVVEMKLSsrKyBiL2JhY2tlbmQvc3JjL2xsdm0vbGx2bV9nZW5fYmFja2Vu ZC5jcHAKLUBAIC0zMDczLDE0ICszMDczLDIyIEBAIG5hbWVzcGFjZSBnYmUKLSAKLSAKLSAgIHN0 YXRpYyB1bnNpZ25lZCBnZXRDaGlsZE5vKEJhc2ljQmxvY2sgKmJiKSB7Ci0rI2lmIExMVk1fVkVS U0lPTl9NQUpPUiA8IDgKLSAgICAgVGVybWluYXRvckluc3QgKnRlcm0gPSBiYi0+Z2V0VGVybWlu YXRvcigpOwotKyNlbHNlCi0rICAgIEluc3RydWN0aW9uICp0ZXJtID0gYmItPmdldFRlcm1pbmF0 b3IoKTsKLSsjZW5kaWYKLSAgICAgcmV0dXJuIHRlcm0tPmdldE51bVN1Y2Nlc3NvcnMoKTsKLSAg IH0KLSAKLSAgIC8vIHJldHVybiBOVUxMIGlmIGluZGV4IG91dC1yYW5nZSBvZiBjaGlsZHJlbiBu dW1iZXIKLSAgIHN0YXRpYyBCYXNpY0Jsb2NrICpnZXRDaGlsZFBvc3NpYmxlKEJhc2ljQmxvY2sg KmJiLCB1bnNpZ25lZCBpbmRleCkgewotIAotKyNpZiBMTFZNX1ZFUlNJT05fTUFKT1IgPCA4Ci0g ICAgIFRlcm1pbmF0b3JJbnN0ICp0ZXJtID0gYmItPmdldFRlcm1pbmF0b3IoKTsKLSsjZWxzZQot KyAgICBJbnN0cnVjdGlvbiAqdGVybSA9IGJiLT5nZXRUZXJtaW5hdG9yKCk7Ci0rI2VuZGlmCi0g ICAgIHVuc2lnbmVkIGNoaWxkTm8gPSB0ZXJtLT5nZXROdW1TdWNjZXNzb3JzKCk7Ci0gICAgIEJh c2ljQmxvY2sgKmNoaWxkID0gTlVMTDsKLSAgICAgaWYoaW5kZXggPCBjaGlsZE5vKSB7CmRpZmYg LS1naXQgYS9zcmNwa2dzL2JlaWduZXQvcGF0Y2hlcy9sbHZtMDkucGF0Y2ggYi9zcmNwa2dzL2Jl aWduZXQvcGF0Y2hlcy9sbHZtMDkucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IGFjYWVjZWFiYjZkZC4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvYmVpZ25ldC9wYXRjaGVz L2xsdm0wOS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDExMSArMCwwIEBACi1Tb3VyY2U6IEZy ZWVCU0QgKyBxNjYKLQotTW9zdGx5IEZyZWVCU0Qgb3RoZXIgdGhhbiBGaW5kTExWTS5jbWFrZSBj aGFuZ2VzLgotTGlua2luZyBhZ2FpbnN0IGNsYW5nLWNwcCBkb2VzIG5vdCB3b3JrIGZvciB1cy4K LQotLS0tIGEvQ01ha2UvRmluZExMVk0uY21ha2UKLSsrKyBiL0NNYWtlL0ZpbmRMTFZNLmNtYWtl Ci1AQCAtMTQwLDYgKzE0MCw3IEBAIGFkZF9vbmVfbGliKCJjbGFuZ1N0YXRpY0FuYWx5emVyQ29y ZSIpCi0gYWRkX29uZV9saWIoImNsYW5nQW5hbHlzaXMiKQotIGFkZF9vbmVfbGliKCJjbGFuZ0Vk aXQiKQotIGFkZF9vbmVfbGliKCJjbGFuZ0FTVCIpCi0rYWRkX29uZV9saWIoImNsYW5nQVNUTWF0 Y2hlcnMiKQotIGFkZF9vbmVfbGliKCJjbGFuZ1BhcnNlIikKLSBhZGRfb25lX2xpYigiY2xhbmdT ZW1hIikKLSBhZGRfb25lX2xpYigiY2xhbmdMZXgiKQotLS0tIGEvYmFja2VuZC9zcmMvbGx2bS9s bHZtX2ludHJpbnNpY19sb3dlcmluZy5jcHAJMjAxNy0xMC0yNCAwNjowNDo0OCBVVEMKLSsrKyBi L2JhY2tlbmQvc3JjL2xsdm0vbGx2bV9pbnRyaW5zaWNfbG93ZXJpbmcuY3BwCi1AQCAtNzcsNyAr NzcsMTEgQEAgbmFtZXNwYWNlIGdiZSB7Ci0gICAgICAgICBzdGQ6OnZlY3RvcjxUeXBlICo+IFBh cmFtVHlzOwotICAgICAgICAgZm9yIChWYWx1ZSoqIEkgPSBBcmdCZWdpbjsgSSAhPSBBcmdFbmQ7 ICsrSSkKLSAgICAgICAgICAgUGFyYW1UeXMucHVzaF9iYWNrKCgqSSktPmdldFR5cGUoKSk7Ci0r I2lmIExMVk1fVkVSU0lPTl9NQUpPUiAqIDEwICsgTExWTV9WRVJTSU9OX01JTk9SID49IDkwCi0r ICAgICAgICBGdW5jdGlvbkNhbGxlZSBGQ2FjaGUgPSBNLT5nZXRPckluc2VydEZ1bmN0aW9uKE5l d0ZuLAotKyNlbHNlCi0gICAgICAgICBDb25zdGFudCogRkNhY2hlID0gTS0+Z2V0T3JJbnNlcnRG dW5jdGlvbihOZXdGbiwKLSsjZW5kaWYKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgRnVuY3Rpb25UeXBlOjpnZXQoUmV0VHksIFBhcmFtVHlzLCBmYWxzZSkpOwotIAot ICAgICAgICAgSVJCdWlsZGVyPD4gQnVpbGRlcihDSS0+Z2V0UGFyZW50KCksIEJhc2ljQmxvY2s6 Oml0ZXJhdG9yKENJKSk7Ci0tLS0gYS9iYWNrZW5kL3NyYy9sbHZtL2xsdm1fc2FtcGxlcl9maXgu Y3BwCTIwMTctMTAtMjQgMDY6MDQ6NDggVVRDCi0rKysgYi9iYWNrZW5kL3NyYy9sbHZtL2xsdm1f c2FtcGxlcl9maXguY3BwCi1AQCAtODIsNyArODIsMTEgQEAgbmFtZXNwYWNlIGdiZSB7Ci0gI2lm IExMVk1fVkVSU0lPTl9NQUpPUiAqIDEwICsgTExWTV9WRVJTSU9OX01JTk9SID49IDQwCi0gICAg ICAgICAgIE1vZHVsZSAqTSA9IEktPmdldFBhcmVudCgpLT5nZXRQYXJlbnQoKS0+Z2V0UGFyZW50 KCk7Ci0gI2lmIExMVk1fVkVSU0lPTl9NQUpPUiAqIDEwICsgTExWTV9WRVJTSU9OX01JTk9SID49 IDUwCi0rI2lmIExMVk1fVkVSU0lPTl9NQUpPUiAqIDEwICsgTExWTV9WRVJTSU9OX01JTk9SID49 IDkwCi0rICAgICAgICAgIEZ1bmN0aW9uQ2FsbGVlIHNhbXBsZXJDdnQgPSBNLT5nZXRPckluc2Vy dEZ1bmN0aW9uKCJfX2dlbl9vY2xfc2FtcGxlcl90b19pbnQiLCBpMzJUeSwgSS0+Z2V0T3BlcmFu ZCgwKS0+Z2V0VHlwZSgpKTsKLSsjZWxzZQotICAgICAgICAgICBWYWx1ZSogc2FtcGxlckN2dCA9 IE0tPmdldE9ySW5zZXJ0RnVuY3Rpb24oIl9fZ2VuX29jbF9zYW1wbGVyX3RvX2ludCIsIGkzMlR5 LCBJLT5nZXRPcGVyYW5kKDApLT5nZXRUeXBlKCkpOwotKyNlbmRpZgotICNlbHNlCi0gICAgICAg ICAgIFZhbHVlKiBzYW1wbGVyQ3Z0ID0gTS0+Z2V0T3JJbnNlcnRGdW5jdGlvbigiX19nZW5fb2Ns X3NhbXBsZXJfdG9faW50IiwgaTMyVHksIEktPmdldE9wZXJhbmQoMCktPmdldFR5cGUoKSwgbnVs bHB0cik7Ci0gI2VuZGlmCi1AQCAtMTI0LDcgKzEyOCwxMSBAQCBuYW1lc3BhY2UgZ2JlIHsKLSAj aWYgTExWTV9WRVJTSU9OX01BSk9SICogMTAgKyBMTFZNX1ZFUlNJT05fTUlOT1IgPj0gNDAKLSAg ICAgICAgICAgTW9kdWxlICpNID0gSS0+Z2V0UGFyZW50KCktPmdldFBhcmVudCgpLT5nZXRQYXJl bnQoKTsKLSAjaWYgTExWTV9WRVJTSU9OX01BSk9SICogMTAgKyBMTFZNX1ZFUlNJT05fTUlOT1Ig Pj0gNTAKLSsjaWYgTExWTV9WRVJTSU9OX01BSk9SICogMTAgKyBMTFZNX1ZFUlNJT05fTUlOT1Ig Pj0gOTAKLSsgICAgICAgICAgRnVuY3Rpb25DYWxsZWUgc2FtcGxlckN2dCA9IE0tPmdldE9ySW5z ZXJ0RnVuY3Rpb24oIl9fZ2VuX29jbF9zYW1wbGVyX3RvX2ludCIsIGkzMlR5LCBJLT5nZXRPcGVy YW5kKDApLT5nZXRUeXBlKCkpOwotKyNlbHNlCi0gICAgICAgICAgIFZhbHVlKiBzYW1wbGVyQ3Z0 ID0gTS0+Z2V0T3JJbnNlcnRGdW5jdGlvbigiX19nZW5fb2NsX3NhbXBsZXJfdG9faW50IiwgaTMy VHksIEktPmdldE9wZXJhbmQoMCktPmdldFR5cGUoKSk7Ci0rI2VuZGlmCi0gI2Vsc2UKLSAgICAg ICAgICAgVmFsdWUqIHNhbXBsZXJDdnQgPSBNLT5nZXRPckluc2VydEZ1bmN0aW9uKCJfX2dlbl9v Y2xfc2FtcGxlcl90b19pbnQiLCBpMzJUeSwgSS0+Z2V0T3BlcmFuZCgwKS0+Z2V0VHlwZSgpLCBu dWxscHRyKTsKLSAjZW5kaWYKLS0tLSBhL2JhY2tlbmQvc3JjL2xsdm0vbGx2bV9wcm9maWxpbmcu Y3BwCTIwMTctMTAtMjQgMDY6MDQ6NDggVVRDCi0rKysgYi9iYWNrZW5kL3NyYy9sbHZtL2xsdm1f cHJvZmlsaW5nLmNwcAotQEAgLTE2MywxMCArMTYzLDE4IEBAIG5hbWVzcGFjZSBnYmUKLSAgICAg ICAvLyBfX2dlbl9vY2xfc3RvcmVfdGltZXN0YW1wKGludCBudGgsIGludCB0eXBlKTsKLSAgICAg ICBWYWx1ZSAqQXJnc1syXSA9IHtDb25zdGFudEludDo6Z2V0KGludFR5LCBwb2ludE51bSsrKSwg Q29uc3RhbnRJbnQ6OmdldChpbnRUeSwgcHJvZmlsaW5nVHlwZSl9OwotICNpZiBMTFZNX1ZFUlNJ T05fTUFKT1IgKiAxMCArIExMVk1fVkVSU0lPTl9NSU5PUiA+PSA1MAotKyNpZiBMTFZNX1ZFUlNJ T05fTUFKT1IgKiAxMCArIExMVk1fVkVSU0lPTl9NSU5PUiA+PSA5MAotKyAgICAgIGJ1aWxkZXIt PkNyZWF0ZUNhbGwobW9kdWxlLT5nZXRPckluc2VydEZ1bmN0aW9uKAotKyNlbHNlCi0gICAgICAg YnVpbGRlci0+Q3JlYXRlQ2FsbChjYXN0PGxsdm06OkZ1bmN0aW9uPihtb2R1bGUtPmdldE9ySW5z ZXJ0RnVuY3Rpb24oCi0rI2VuZGlmCi0gICAgICAgICAgICAgICAiX19nZW5fb2NsX2NhbGNfdGlt ZXN0YW1wIiwgVHlwZTo6Z2V0Vm9pZFR5KG1vZHVsZS0+Z2V0Q29udGV4dCgpKSwKLSAgICAgICAg ICAgICAgIEludGVnZXJUeXBlOjpnZXRJbnQzMlR5KG1vZHVsZS0+Z2V0Q29udGV4dCgpKSwKLSsj aWYgTExWTV9WRVJTSU9OX01BSk9SICogMTAgKyBMTFZNX1ZFUlNJT05fTUlOT1IgPj0gOTAKLSsg ICAgICAgICAgICAgIEludGVnZXJUeXBlOjpnZXRJbnQzMlR5KG1vZHVsZS0+Z2V0Q29udGV4dCgp KSksCi0rI2Vsc2UKLSAgICAgICAgICAgICAgIEludGVnZXJUeXBlOjpnZXRJbnQzMlR5KG1vZHVs ZS0+Z2V0Q29udGV4dCgpKSkpLAotKyNlbmRpZgotICAgICAgICAgICAgICAgQXJyYXlSZWY8VmFs dWUqPihBcmdzKSk7Ci0gI2Vsc2UKLSAgICAgICBidWlsZGVyLT5DcmVhdGVDYWxsKGNhc3Q8bGx2 bTo6RnVuY3Rpb24+KG1vZHVsZS0+Z2V0T3JJbnNlcnRGdW5jdGlvbigKLUBAIC0xODUsMTAgKzE5 MywxOCBAQCBuYW1lc3BhY2UgZ2JlCi0gICAgIFZhbHVlICpBcmdzMlsyXSA9IHtwcm9maWxpbmdC dWYsIENvbnN0YW50SW50OjpnZXQoaW50VHksIHByb2ZpbGluZ1R5cGUpfTsKLSAKLSAjaWYgTExW TV9WRVJTSU9OX01BSk9SICogMTAgKyBMTFZNX1ZFUlNJT05fTUlOT1IgPj0gNTAKLSsjaWYgTExW TV9WRVJTSU9OX01BSk9SICogMTAgKyBMTFZNX1ZFUlNJT05fTUlOT1IgPj0gOTAKLSsgICAgYnVp bGRlci0+Q3JlYXRlQ2FsbChtb2R1bGUtPmdldE9ySW5zZXJ0RnVuY3Rpb24oCi0rI2Vsc2UKLSAg ICAgYnVpbGRlci0+Q3JlYXRlQ2FsbChjYXN0PGxsdm06OkZ1bmN0aW9uPihtb2R1bGUtPmdldE9y SW5zZXJ0RnVuY3Rpb24oCi0rI2VuZGlmCi0gICAgICAgICAgICAgIl9fZ2VuX29jbF9zdG9yZV9w cm9maWxpbmciLCBUeXBlOjpnZXRWb2lkVHkobW9kdWxlLT5nZXRDb250ZXh0KCkpLAotICAgICAg ICAgICAgIHB0clR5LAotKyNpZiBMTFZNX1ZFUlNJT05fTUFKT1IgKiAxMCArIExMVk1fVkVSU0lP Tl9NSU5PUiA+PSA5MAotKyAgICAgICAgICAgIEludGVnZXJUeXBlOjpnZXRJbnQzMlR5KG1vZHVs ZS0+Z2V0Q29udGV4dCgpKSksCi0rI2Vsc2UKLSAgICAgICAgICAgICBJbnRlZ2VyVHlwZTo6Z2V0 SW50MzJUeShtb2R1bGUtPmdldENvbnRleHQoKSkpKSwKLSsjZW5kaWYKLSAgICAgICAgICAgICBB cnJheVJlZjxWYWx1ZSo+KEFyZ3MyKSk7Ci0gI2Vsc2UKLSAgICAgYnVpbGRlci0+Q3JlYXRlQ2Fs bChjYXN0PGxsdm06OkZ1bmN0aW9uPihtb2R1bGUtPmdldE9ySW5zZXJ0RnVuY3Rpb24oCi0tLS0g YS9iYWNrZW5kL3NyYy9sbHZtL2xsdm1fZGV2aWNlX2VucXVldWUuY3BwCTIwMTctMTAtMjQgMDY6 MDQ6NDggVVRDCi0rKysgYi9iYWNrZW5kL3NyYy9sbHZtL2xsdm1fZGV2aWNlX2VucXVldWUuY3Bw Ci1AQCAtMzk4LDggKzM5OCwxMyBAQCBuYW1lc3BhY2UgZ2JlIHsKLSAgICAgICAgICAgICAgIHN0 ZDo6dmVjdG9yPFR5cGUgKj4gUGFyYW1UeXM7Ci0gICAgICAgICAgICAgICBmb3IgKFZhbHVlKiog aXRlciA9IGFyZ3MuYmVnaW4oKTsgaXRlciAhPSBhcmdzLmVuZCgpOyArK2l0ZXIpCi0gICAgICAg ICAgICAgICAgIFBhcmFtVHlzLnB1c2hfYmFjaygoKml0ZXIpLT5nZXRUeXBlKCkpOwotKyNpZiBM TFZNX1ZFUlNJT05fTUFKT1IgKiAxMCArIExMVk1fVkVSU0lPTl9NSU5PUiA+PSA5MAotKyAgICAg ICAgICAgICAgQ2FsbEluc3QqIG5ld0NJID0gYnVpbGRlci5DcmVhdGVDYWxsKG1vZC0+Z2V0T3JJ bnNlcnRGdW5jdGlvbigKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiX19nZW5fZW5x dWV1ZV9rZXJuZWxfc2xtIiwgRnVuY3Rpb25UeXBlOjpnZXQoaW50VHksIFBhcmFtVHlzLCBmYWxz ZSkpLCBhcmdzKTsKLSsjZWxzZQotICAgICAgICAgICAgICAgQ2FsbEluc3QqIG5ld0NJID0gYnVp bGRlci5DcmVhdGVDYWxsKGNhc3Q8bGx2bTo6RnVuY3Rpb24+KG1vZC0+Z2V0T3JJbnNlcnRGdW5j dGlvbigKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiX19nZW5fZW5xdWV1ZV9rZXJu ZWxfc2xtIiwgRnVuY3Rpb25UeXBlOjpnZXQoaW50VHksIFBhcmFtVHlzLCBmYWxzZSkpKSwgYXJn cyk7Ci0rI2VuZGlmCi0gICAgICAgICAgICAgICBDSS0+cmVwbGFjZUFsbFVzZXNXaXRoKG5ld0NJ KTsKLSAgICAgICAgICAgICAgIGRlYWRJbnNuU2V0Lmluc2VydChDSSk7Ci0gICAgICAgICAgICAg fQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9iZWlnbmV0L3BhdGNoZXMvbGx2bTEwLnBhdGNoIGIvc3Jj cGtncy9iZWlnbmV0L3BhdGNoZXMvbGx2bTEwLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCA4YWFmZTQ4YTI0MGQuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2JlaWduZXQv cGF0Y2hlcy9sbHZtMTAucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwzNDcgKzAsMCBAQAotZGlm ZiAtLWdpdCBDTWFrZS9GaW5kTExWTS5jbWFrZSBDTWFrZS9GaW5kTExWTS5jbWFrZQotaW5kZXgg MGE1OWU0Ny4uNmU5MDkyMyAxMDA2NDQKLS0tLSBhL0NNYWtlL0ZpbmRMTFZNLmNtYWtlCi0rKysg Yi9DTWFrZS9GaW5kTExWTS5jbWFrZQotQEAgLTEwNCwyOCArMTA0LDE2IEBAIHN0cmluZyhSRUdF WCBSRVBMQUNFICIgKlxuIiAiIiBMTFZNX1NZU1RFTV9MSUJTICR7TExWTV9TWVNURU1fTElCU19P UklHfSkKLSBlbmRpZiAoTExWTV9TWVNURU1fTElCU19PUklHKQotIGVuZGlmIChMTFZNX1ZFUlNJ T05fTk9ET1QgVkVSU0lPTl9HUkVBVEVSIDM0KQotIAotKyNzb21ldGhpbmcgaGFybWxlc3MgYmVj YXVzZSB3aGl0ZXNwYWNlIGF0IHN0YXJ0IGlzIGFuIGVycm9yCi0rc2V0KENMQU5HX0xJQlJBUklF UyAiLWxkbCIpCi0gbWFjcm8oYWRkX29uZV9saWIgbmFtZSkKLSAgIEZJTkRfTElCUkFSWShDTEFO R19MSUIKLSAgICAgTkFNRVMgJHtuYW1lfQotICAgICBQQVRIUyAke0xMVk1fTElCUkFSWV9ESVJ9 IE5PX0RFRkFVTFRfUEFUSCkKLS0gIHNldChDTEFOR19MSUJSQVJJRVMgJHtDTEFOR19MSUJSQVJJ RVN9ICR7Q0xBTkdfTElCfSkKLSsgIHNldChDTEFOR19MSUJSQVJJRVMgIiR7Q0xBTkdfTElCUkFS SUVTfSAke0NMQU5HX0xJQn0iKQotKyAgbWVzc2FnZShTVEFUVVMgImNsYW5nbGlicyBuYW1lICR7 bmFtZX0gdGhpcyAke0NMQU5HX0xJQn0gYWxsICR7Q0xBTkdfTElCUkFSSUVTfSAiKQotIAl1bnNl dChDTEFOR19MSUIgQ0FDSEUpCi0gZW5kbWFjcm8oKQotIAotICNBc3N1bWUgY2xhbmcgbGliIHBh dGggc2FtZSBhcyBsbHZtIGxpYiBwYXRoCi0tYWRkX29uZV9saWIoImNsYW5nQ29kZUdlbiIpCi0t YWRkX29uZV9saWIoImNsYW5nRnJvbnRlbmQiKQotLWFkZF9vbmVfbGliKCJjbGFuZ1NlcmlhbGl6 YXRpb24iKQotLWFkZF9vbmVfbGliKCJjbGFuZ0RyaXZlciIpCi0tYWRkX29uZV9saWIoImNsYW5n U2VtYSIpCi0tYWRkX29uZV9saWIoImNsYW5nU3RhdGljQW5hbHl6ZXJGcm9udGVuZCIpCi0tYWRk X29uZV9saWIoImNsYW5nU3RhdGljQW5hbHl6ZXJDaGVja2VycyIpCi0tYWRkX29uZV9saWIoImNs YW5nU3RhdGljQW5hbHl6ZXJDb3JlIikKLS1hZGRfb25lX2xpYigiY2xhbmdBbmFseXNpcyIpCi0t YWRkX29uZV9saWIoImNsYW5nRWRpdCIpCi0tYWRkX29uZV9saWIoImNsYW5nQVNUIikKLS1hZGRf b25lX2xpYigiY2xhbmdBU1RNYXRjaGVycyIpCi0tYWRkX29uZV9saWIoImNsYW5nUGFyc2UiKQot LWFkZF9vbmVfbGliKCJjbGFuZ1NlbWEiKQotLWFkZF9vbmVfbGliKCJjbGFuZ0xleCIpCi0tYWRk X29uZV9saWIoImNsYW5nQmFzaWMiKQotK2FkZF9vbmVfbGliKCJjbGFuZy1jcHAiKQotZGlmZiAt LWdpdCBDTWFrZUxpc3RzLnR4dCBDTWFrZUxpc3RzLnR4dAotaW5kZXggYzExYWNiYi4uMDhmNDI3 ZCAxMDA2NDQKLS0tLSBhL0NNYWtlTGlzdHMudHh0Ci0rKysgYi9DTWFrZUxpc3RzLnR4dAotQEAg LTc5LDcgKzc5LDcgQEAgZWxzZWlmIChDT01QSUxFUiBTVFJFUVVBTCAiQ0xBTkciKQotIGVsc2Vp ZiAoQ09NUElMRVIgU1RSRVFVQUwgIklDQyIpCi0gICBzZXQgKENNQUtFX0NfQ1hYX0ZMQUdTICIk e0NNQUtFX0NfQ1hYX0ZMQUdTfSAgLXdkMjkyOCAtV2FsbCAtZlBJQyAtZnN0cmljdC1hbGlhc2lu ZyAtZnAtbW9kZWwgZmFzdCAtbXNzZTQuMSAtV2wsLUUiKQotIGVuZGlmICgpCi0tc2V0IChDTUFL RV9DWFhfRkxBR1MgIiR7Q01BS0VfQ1hYX0ZMQUdTfSAke0NNQUtFX0NfQ1hYX0ZMQUdTfSAtc3Rk PWMrKzB4IC1Xbm8taW52YWxpZC1vZmZzZXRvZiIpCi0rc2V0IChDTUFLRV9DWFhfRkxBR1MgIiR7 Q01BS0VfQ1hYX0ZMQUdTfSAke0NNQUtFX0NfQ1hYX0ZMQUdTfSAtV25vLWludmFsaWQtb2Zmc2V0 b2YiKQotIHNldCAoQ01BS0VfQ19GTEFHUyAiJHtDTUFLRV9DX0ZMQUdTfSAke0NNQUtFX0NfQ1hY X0ZMQUdTfSIpCi0gc2V0IChDTUFLRV9DWFhfRkxBR1NfREVCVUcgICAgICAgICAgIi1PMCAtZyAt REdCRV9ERUJVRz0xIikKLSBzZXQgKENNQUtFX0NYWF9GTEFHU19SRUxXSVRIREVCSU5GTyAiLU8y IC1nIC1ER0JFX0RFQlVHPTEiKQotZGlmZiAtLWdpdCBiYWNrZW5kL3NyYy9iYWNrZW5kL3Byb2dy YW0uY3BwIGJhY2tlbmQvc3JjL2JhY2tlbmQvcHJvZ3JhbS5jcHAKLWluZGV4IGIzNmY3YjQuLmU2 NjYwMzEgMTAwNjQ0Ci0tLS0gYS9iYWNrZW5kL3NyYy9iYWNrZW5kL3Byb2dyYW0uY3BwCi0rKysg Yi9iYWNrZW5kL3NyYy9iYWNrZW5kL3Byb2dyYW0uY3BwCi1AQCAtNjk0LDkgKzY5NCw5IEBAIG5h bWVzcGFjZSBnYmUgewotICNlbmRpZgotICAgICAgICAgICAgICAgICApOwotIAotKyAgICBsbHZt OjpjbDo6UmVzZXRBbGxPcHRpb25PY2N1cnJlbmNlcygpOwotICAgICBjbGFuZzo6Q29tcGlsZXJJ bnZvY2F0aW9uOjpDcmVhdGVGcm9tQXJncygqQ0ksCi0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICZhcmdzWzBdLAotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAmYXJnc1swXSArIGFyZ3Muc2l6ZSgpLAotKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFuZzo6QXJyYXlSZWY8Y29u c3QgY2hhcio+KGFyZ3MpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBEaWFncyk7Ci0gICAgIC8vIENyZWF0ZSB0aGUgY29tcGlsZXIgaW5zdGFuY2UKLSAg ICAgY2xhbmc6OkNvbXBpbGVySW5zdGFuY2UgQ2xhbmc7Ci1AQCAtMTI0Miw4ICsxMjQyLDcgQEAg RVhURU5EX1FVT1RFOgotICAgICAgIC8vIENyZWF0ZSB0aGUgY29tcGlsZXIgaW52b2NhdGlvbgot ICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxjbGFuZzo6Q29tcGlsZXJJbnZvY2F0aW9uPiBDSShuZXcg Y2xhbmc6OkNvbXBpbGVySW52b2NhdGlvbik7Ci0gICAgICAgcmV0dXJuIGNsYW5nOjpDb21waWxl ckludm9jYXRpb246OkNyZWF0ZUZyb21BcmdzKCpDSSwKLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmFyZ3NbMF0sCi0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZhcmdzWzBdICsgYXJn cy5zaXplKCksCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGNsYW5nOjpBcnJheVJlZjxjb25zdCBjaGFyKj4oYXJncyksCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERpYWdzKTsKLSAg ICAgfQotICNlbmRpZgotZGlmZiAtLWdpdCBiYWNrZW5kL3NyYy9sbHZtL2xsdm1fZ2VuX2JhY2tl bmQuY3BwIGJhY2tlbmQvc3JjL2xsdm0vbGx2bV9nZW5fYmFja2VuZC5jcHAKLWluZGV4IGM2ZmMz MGQuLjgyNDQxZDggMTAwNjQ0Ci0tLS0gYS9iYWNrZW5kL3NyYy9sbHZtL2xsdm1fZ2VuX2JhY2tl bmQuY3BwCi0rKysgYi9iYWNrZW5kL3NyYy9sbHZtL2xsdm1fZ2VuX2JhY2tlbmQuY3BwCi1AQCAt NTc1LDEwICs1NzUsMTIgQEAgbmFtZXNwYWNlIGdiZQotICAgICAgICAgaGFzX2Vycm9ycyhmYWxz ZSksCi0gICAgICAgICBsZWdhY3lNb2RlKHRydWUpCi0gICAgIHsKLSsjaWYgTExWTV9WRVJTSU9O X01BSk9SIDwgMTAKLSAjaWYgTExWTV9WRVJTSU9OX01BSk9SICogMTAgKyBMTFZNX1ZFUlNJT05f TUlOT1IgPj0gMzcKLSAgICAgICBpbml0aWFsaXplTG9vcEluZm9XcmFwcGVyUGFzc1Bhc3MoKlBh c3NSZWdpc3RyeTo6Z2V0UGFzc1JlZ2lzdHJ5KCkpOwotICNlbHNlCi0gICAgICAgaW5pdGlhbGl6 ZUxvb3BJbmZvUGFzcygqUGFzc1JlZ2lzdHJ5OjpnZXRQYXNzUmVnaXN0cnkoKSk7Ci0rI2VuZGlm Ci0gI2VuZGlmCi0gICAgICAgcGFzcyA9IFBBU1NfRU1JVF9SRUdJU1RFUlM7Ci0gICAgIH0KLWRp ZmYgLS1naXQgYmFja2VuZC9zcmMvbGx2bS9sbHZtX2dlbl9iYWNrZW5kLmhwcCBiYWNrZW5kL3Ny Yy9sbHZtL2xsdm1fZ2VuX2JhY2tlbmQuaHBwCi1pbmRleCBiNDcxNWIxLi44ZTc0ZjdhIDEwMDY0 NAotLS0tIGEvYmFja2VuZC9zcmMvbGx2bS9sbHZtX2dlbl9iYWNrZW5kLmhwcAotKysrIGIvYmFj a2VuZC9zcmMvbGx2bS9sbHZtX2dlbl9iYWNrZW5kLmhwcAotQEAgLTEzMCwxMCArMTMwLDEwIEBA IG5hbWVzcGFjZSBnYmUKLSAgIGxsdm06OkZ1bmN0aW9uUGFzcyAqY3JlYXRlR2VuUGFzcyhpcjo6 VW5pdCAmdW5pdCk7Ci0gCi0gICAvKiEgUmVtb3ZlIHRoZSBHRVAgaW5zdHJ1Y3Rpb25zICovCi0t ICBsbHZtOjpCYXNpY0Jsb2NrUGFzcyAqY3JlYXRlUmVtb3ZlR0VQUGFzcyhjb25zdCBpcjo6VW5p dCAmdW5pdCk7Ci0rICBsbHZtOjpGdW5jdGlvblBhc3MgKmNyZWF0ZVJlbW92ZUdFUFBhc3MoY29u c3QgaXI6OlVuaXQgJnVuaXQpOwotIAotICAgLyohIE1lcmdlIGxvYWQvc3RvcmUgaWYgcG9zc2li bGUgKi8KLS0gIGxsdm06OkJhc2ljQmxvY2tQYXNzICpjcmVhdGVMb2FkU3RvcmVPcHRpbWl6YXRp b25QYXNzKCk7Ci0rICBsbHZtOjpGdW5jdGlvblBhc3MgKmNyZWF0ZUxvYWRTdG9yZU9wdGltaXph dGlvblBhc3MoKTsKLSAKLSAgIC8qISBTY2FsYXJpemUgYWxsIHZlY3RvciBvcCBpbnN0cnVjdGlv bnMgKi8KLSAgIGxsdm06OkZ1bmN0aW9uUGFzcyogY3JlYXRlU2NhbGFyaXplUGFzcygpOwotQEAg LTE0MSw3ICsxNDEsNyBAQCBuYW1lc3BhY2UgZ2JlCi0gICBsbHZtOjpNb2R1bGVQYXNzKiBjcmVh dGVCYXJyaWVyTm9kdXBQYXNzKGJvb2wpOwotIAotICAgLyohIENvbnZlcnQgdGhlIEludHJpbnNp YyBjYWxsIHRvIGdlbiBmdW5jdGlvbiAqLwotLSAgbGx2bTo6QmFzaWNCbG9ja1Bhc3MgKmNyZWF0 ZUludHJpbnNpY0xvd2VyaW5nUGFzcygpOwotKyAgbGx2bTo6RnVuY3Rpb25QYXNzICpjcmVhdGVJ bnRyaW5zaWNMb3dlcmluZ1Bhc3MoKTsKLSAKLSAgIC8qISBQYXNzZXIgdGhlIHByaW50ZiBmdW5j dGlvbiBjYWxsLiAqLwotICAgbGx2bTo6RnVuY3Rpb25QYXNzKiBjcmVhdGVQcmludGZQYXJzZXJQ YXNzKGlyOjpVbml0ICZ1bml0KTsKLWRpZmYgLS1naXQgYmFja2VuZC9zcmMvbGx2bS9sbHZtX2lu dHJpbnNpY19sb3dlcmluZy5jcHAgYmFja2VuZC9zcmMvbGx2bS9sbHZtX2ludHJpbnNpY19sb3dl cmluZy5jcHAKLWluZGV4IDk0ZjBjZTYuLmI1NTM5ZTkgMTAwNjQ0Ci0tLS0gYS9iYWNrZW5kL3Ny Yy9sbHZtL2xsdm1faW50cmluc2ljX2xvd2VyaW5nLmNwcAotKysrIGIvYmFja2VuZC9zcmMvbGx2 bS9sbHZtX2ludHJpbnNpY19sb3dlcmluZy5jcHAKLUBAIC0yOSwxMiArMjksMTIgQEAKLSB1c2lu ZyBuYW1lc3BhY2UgbGx2bTsKLSAKLSBuYW1lc3BhY2UgZ2JlIHsKLS0gICAgY2xhc3MgSW5zdHJp bnNpY0xvd2VyaW5nIDogcHVibGljIEJhc2ljQmxvY2tQYXNzCi0rICAgIGNsYXNzIEluc3RyaW5z aWNMb3dlcmluZyA6IHB1YmxpYyBGdW5jdGlvblBhc3MKLSAgICAgewotICAgICBwdWJsaWM6Ci0g ICAgICAgc3RhdGljIGNoYXIgSUQ7Ci0gICAgICAgSW5zdHJpbnNpY0xvd2VyaW5nKCkgOgotLSAg ICAgICAgQmFzaWNCbG9ja1Bhc3MoSUQpIHt9Ci0rICAgICAgICBGdW5jdGlvblBhc3MoSUQpIHt9 Ci0gCi0gICAgICAgdm9pZCBnZXRBbmFseXNpc1VzYWdlKEFuYWx5c2lzVXNhZ2UgJkFVKSBjb25z dCB7Ci0gCi1AQCAtOTMsOSArOTMsOSBAQCBuYW1lc3BhY2UgZ2JlIHsKLSAgICAgICAgIENJLT5l cmFzZUZyb21QYXJlbnQoKTsKLSAgICAgICAgIHJldHVybiBOZXdDSTsKLSAgICAgICB9Ci0tICAg ICAgdmlydHVhbCBib29sIHJ1bk9uQmFzaWNCbG9jayhCYXNpY0Jsb2NrICZCQikKLSsgICAgICB2 aXJ0dWFsIGJvb2wgcnVuT25GdW5jdGlvbihGdW5jdGlvbiAmRikKLSAgICAgICB7Ci0tICAgICAg ICBib29sIGNoYW5nZWRCbG9jayA9IGZhbHNlOwotKyAgICAgICAgZm9yIChCYXNpY0Jsb2NrICZC QiA6IEYpIHsKLSAgICAgICAgIE1vZHVsZSAqTSA9IEJCLmdldFBhcmVudCgpLT5nZXRQYXJlbnQo KTsKLSAKLSAgICAgICAgIERhdGFMYXlvdXQgVEQoTSk7Ci1AQCAtMTU5LDEzICsxNTksMTQgQEAg bmFtZXNwYWNlIGdiZSB7Ci0gICAgICAgICAgICAgfQotICAgICAgICAgICB9Ci0gICAgICAgICB9 Ci0tICAgICAgICByZXR1cm4gY2hhbmdlZEJsb2NrOwotKyAgICAgICAgfQotKyAgICAgICAgcmV0 dXJuIHRydWU7Ci0gICAgICAgfQotICAgICB9OwotIAotICAgICBjaGFyIEluc3RyaW5zaWNMb3dl cmluZzo6SUQgPSAwOwotIAotLSAgICBCYXNpY0Jsb2NrUGFzcyAqY3JlYXRlSW50cmluc2ljTG93 ZXJpbmdQYXNzKCkgewotKyAgICBGdW5jdGlvblBhc3MgKmNyZWF0ZUludHJpbnNpY0xvd2VyaW5n UGFzcygpIHsKLSAgICAgICByZXR1cm4gbmV3IEluc3RyaW5zaWNMb3dlcmluZygpOwotICAgICB9 Ci0gfSAvLyBlbmQgbmFtZXNwYWNlCi1kaWZmIC0tZ2l0IGJhY2tlbmQvc3JjL2xsdm0vbGx2bV9s b2Fkc3RvcmVfb3B0aW1pemF0aW9uLmNwcCBiYWNrZW5kL3NyYy9sbHZtL2xsdm1fbG9hZHN0b3Jl X29wdGltaXphdGlvbi5jcHAKLWluZGV4IDVhYTM4YmUuLmUzMTQzMDIgMTAwNjQ0Ci0tLS0gYS9i YWNrZW5kL3NyYy9sbHZtL2xsdm1fbG9hZHN0b3JlX29wdGltaXphdGlvbi5jcHAKLSsrKyBiL2Jh Y2tlbmQvc3JjL2xsdm0vbGx2bV9sb2Fkc3RvcmVfb3B0aW1pemF0aW9uLmNwcAotQEAgLTI2LDEz ICsyNiwxMyBAQAotIAotIHVzaW5nIG5hbWVzcGFjZSBsbHZtOwotIG5hbWVzcGFjZSBnYmUgewot LSAgY2xhc3MgR2VuTG9hZFN0b3JlT3B0aW1pemF0aW9uIDogcHVibGljIEJhc2ljQmxvY2tQYXNz IHsKLSsgIGNsYXNzIEdlbkxvYWRTdG9yZU9wdGltaXphdGlvbiA6IHB1YmxpYyBGdW5jdGlvblBh c3MgewotIAotICAgcHVibGljOgotICAgICBzdGF0aWMgY2hhciBJRDsKLSAgICAgU2NhbGFyRXZv bHV0aW9uICpTRTsKLSAgICAgY29uc3QgRGF0YUxheW91dCAqVEQ7Ci0tICAgIEdlbkxvYWRTdG9y ZU9wdGltaXphdGlvbigpIDogQmFzaWNCbG9ja1Bhc3MoSUQpIHt9Ci0rICAgIEdlbkxvYWRTdG9y ZU9wdGltaXphdGlvbigpIDogRnVuY3Rpb25QYXNzKElEKSB7fQotIAotICAgICB2b2lkIGdldEFu YWx5c2lzVXNhZ2UoQW5hbHlzaXNVc2FnZSAmQVUpIGNvbnN0IHsKLSAjaWYgTExWTV9WRVJTSU9O X01BSk9SICogMTAgKyBMTFZNX1ZFUlNJT05fTUlOT1IgPj0gMzgKLUBAIC00NSw3ICs0NSw5IEBA IG5hbWVzcGFjZSBnYmUgewotICAgICAgIEFVLnNldFByZXNlcnZlc0NGRygpOwotICAgICB9Ci0g Ci0tICAgIHZpcnR1YWwgYm9vbCBydW5PbkJhc2ljQmxvY2soQmFzaWNCbG9jayAmQkIpIHsKLSsg ICAgdmlydHVhbCBib29sIHJ1bk9uRnVuY3Rpb24oRnVuY3Rpb24gJkYpIHsKLSsgICAgICAgIGJv b2wgY2hhbmdlZEFueUJsb2NrID0gZmFsc2U7Ci0rICAgICAgICBmb3IgKEJhc2ljQmxvY2sgJkJC IDogRikgewotICNpZiBMTFZNX1ZFUlNJT05fTUFKT1IgKiAxMCArIExMVk1fVkVSU0lPTl9NSU5P UiA+PSAzOAotICAgICAgIFNFID0gJmdldEFuYWx5c2lzPFNjYWxhckV2b2x1dGlvbldyYXBwZXJQ YXNzPigpLmdldFNFKCk7Ci0gI2Vsc2UKLUBAIC01OSw3ICs2MSw5IEBAIG5hbWVzcGFjZSBnYmUg ewotICAgICAgICNlbHNlCi0gICAgICAgICBURCA9IGdldEFuYWx5c2lzSWZBdmFpbGFibGU8RGF0 YUxheW91dD4oKTsKLSAgICAgICAjZW5kaWYKLS0gICAgICByZXR1cm4gb3B0aW1pemVMb2FkU3Rv cmUoQkIpOwotKyAgICAgICAgICAgY2hhbmdlZEFueUJsb2NrID0gb3B0aW1pemVMb2FkU3RvcmUo QkIpIHwgY2hhbmdlZEFueUJsb2NrOwotKyAgICAgICAgfQotKyAgICAgICAgcmV0dXJuIGNoYW5n ZWRBbnlCbG9jazsKLSAgICAgfQotICAgICBUeXBlICAgICpnZXRWYWx1ZVR5cGUoVmFsdWUgKmlu c24pOwotICAgICBWYWx1ZSAgICpnZXRQb2ludGVyT3BlcmFuZChWYWx1ZSAqSSk7Ci1AQCAtMTQ4 LDcgKzE1Miw3IEBAIG5hbWVzcGFjZSBnYmUgewotICAgICAgIHZhbHVlcy5wdXNoX2JhY2sobWVy Z2VkW2ldKTsKLSAgICAgfQotICAgICBMb2FkSW5zdCAqbGQgPSBjYXN0PExvYWRJbnN0PihtZXJn ZWRbMF0pOwotLSAgICB1bnNpZ25lZCBhbGlnbiA9IGxkLT5nZXRBbGlnbm1lbnQoKTsKLSsgICAg TWF5YmVBbGlnbiBhbGlnbiA9IGxkLT5nZXRBbGlnbigpOwotICAgICB1bnNpZ25lZCBhZGRyU3Bh Y2UgPSBsZC0+Z2V0UG9pbnRlckFkZHJlc3NTcGFjZSgpOwotICAgICAvLyBpbnNlcnQgYmVmb3Jl IGZpcnN0IGxvYWQKLSAgICAgQnVpbGRlci5TZXRJbnNlcnRQb2ludChsZCk7Ci1AQCAtMjMxLDcg KzIzNSw3IEBAIG5hbWVzcGFjZSBnYmUgewotIAotICAgICB1bnNpZ25lZCBhZGRyU3BhY2UgPSBz dC0+Z2V0UG9pbnRlckFkZHJlc3NTcGFjZSgpOwotIAotLSAgICB1bnNpZ25lZCBhbGlnbiA9IHN0 LT5nZXRBbGlnbm1lbnQoKTsKLSsgICAgTWF5YmVBbGlnbiBhbGlnbiA9IHN0LT5nZXRBbGlnbigp OwotICAgICAvLyBpbnNlcnQgYmVmb3JlIHRoZSBsYXN0IHN0b3JlCi0gICAgIEJ1aWxkZXIuU2V0 SW5zZXJ0UG9pbnQobWVyZ2VkW3NpemUtMV0pOwotIAotQEAgLTMyNSw3ICszMjksNyBAQCBuYW1l c3BhY2UgZ2JlIHsKLSAgICAgcmV0dXJuIGNoYW5nZWQ7Ci0gICB9Ci0gCi0tICBCYXNpY0Jsb2Nr UGFzcyAqY3JlYXRlTG9hZFN0b3JlT3B0aW1pemF0aW9uUGFzcygpIHsKLSsgIEZ1bmN0aW9uUGFz cyAqY3JlYXRlTG9hZFN0b3JlT3B0aW1pemF0aW9uUGFzcygpIHsKLSAgICAgcmV0dXJuIG5ldyBH ZW5Mb2FkU3RvcmVPcHRpbWl6YXRpb24oKTsKLSAgIH0KLSB9OwotZGlmZiAtLWdpdCBiYWNrZW5k L3NyYy9sbHZtL2xsdm1fcGFzc2VzLmNwcCBiYWNrZW5kL3NyYy9sbHZtL2xsdm1fcGFzc2VzLmNw cAotaW5kZXggMTA3NTJhMy4uYjhmMjI4MiAxMDA2NDQKLS0tLSBhL2JhY2tlbmQvc3JjL2xsdm0v bGx2bV9wYXNzZXMuY3BwCi0rKysgYi9iYWNrZW5kL3NyYy9sbHZtL2xsdm1fcGFzc2VzLmNwcAot QEAgLTM3LDcgKzM3LDcgQEAKLSAjaW5jbHVkZSAic3lzL21hcC5ocHAiCi0gCi0gdXNpbmcgbmFt ZXNwYWNlIGxsdm07Ci0tCi0rdGVtcGxhdGUgY2xhc3MgY2ZnOjpVcGRhdGU8QmFzaWNCbG9jayAq PjsKLSBuYW1lc3BhY2UgZ2JlCi0gewotICAgYm9vbCBpc0tlcm5lbEZ1bmN0aW9uKGNvbnN0IGxs dm06OkZ1bmN0aW9uICZGKSB7Ci1AQCAtMjE5LDEzICsyMTksMTMgQEAgbmFtZXNwYWNlIGdiZQot ICAgICByZXR1cm4gb2Zmc2V0OwotICAgfQotIAotLSAgY2xhc3MgR2VuUmVtb3ZlR0VQUGFzc3Mg OiBwdWJsaWMgQmFzaWNCbG9ja1Bhc3MKLSsgIGNsYXNzIEdlblJlbW92ZUdFUFBhc3NzIDogcHVi bGljIEZ1bmN0aW9uUGFzcwotICAgewotIAotICAgIHB1YmxpYzoKLSAgICAgc3RhdGljIGNoYXIg SUQ7Ci0gICAgIEdlblJlbW92ZUdFUFBhc3NzKGNvbnN0IGlyOjpVbml0ICZ1bml0KSA6Ci0tICAg ICAgQmFzaWNCbG9ja1Bhc3MoSUQpLAotKyAgICAgIEZ1bmN0aW9uUGFzcyhJRCksCi0gICAgICAg dW5pdCh1bml0KSB7fQotICAgICBjb25zdCBpcjo6VW5pdCAmdW5pdDsKLSAgICAgdm9pZCBnZXRB bmFseXNpc1VzYWdlKEFuYWx5c2lzVXNhZ2UgJkFVKSBjb25zdCB7Ci1AQCAtMjQyLDE2ICsyNDIs MTggQEAgbmFtZXNwYWNlIGdiZQotIAotICAgICBib29sIHNpbXBsaWZ5R0VQSW5zdHJ1Y3Rpb25z KEdldEVsZW1lbnRQdHJJbnN0KiBHRVBJbnN0KTsKLSAKLS0gICAgdmlydHVhbCBib29sIHJ1bk9u QmFzaWNCbG9jayhCYXNpY0Jsb2NrICZCQikKLSsgICAgdmlydHVhbCBib29sIHJ1bk9uRnVuY3Rp b24oRnVuY3Rpb24gJkYpCi0gICAgIHsKLS0gICAgICBib29sIGNoYW5nZWRCbG9jayA9IGZhbHNl OwotKyAgICAgIGJvb2wgY2hhbmdlZEFueUJsb2NrID0gZmFsc2U7Ci0rICAgICAgICBmb3IgKEJh c2ljQmxvY2sgJkJCIDogRikgewotICAgICAgIGlwbGlzdDxJbnN0cnVjdGlvbj46Oml0ZXJhdG9y IEkgPSBCQi5nZXRJbnN0TGlzdCgpLmJlZ2luKCk7Ci0gICAgICAgZm9yIChhdXRvIG5leHRJID0g SSwgRSA9IC0tQkIuZ2V0SW5zdExpc3QoKS5lbmQoKTsgSSAhPSBFOyBJID0gbmV4dEkpIHsKLSAg ICAgICAgIGlwbGlzdDxJbnN0cnVjdGlvbj46Oml0ZXJhdG9yIEkgPSBuZXh0SSsrOwotICAgICAg ICAgaWYoR2V0RWxlbWVudFB0ckluc3QqIGdlcCA9IGR5bl9jYXN0PEdldEVsZW1lbnRQdHJJbnN0 PigmKkkpKQotLSAgICAgICAgICBjaGFuZ2VkQmxvY2sgPSAoc2ltcGxpZnlHRVBJbnN0cnVjdGlv bnMoZ2VwKSB8fCBjaGFuZ2VkQmxvY2spOwotKyAgICAgICAgICBjaGFuZ2VkQW55QmxvY2sgPSAo c2ltcGxpZnlHRVBJbnN0cnVjdGlvbnMoZ2VwKSB8IGNoYW5nZWRBbnlCbG9jayk7Ci0gICAgICAg fQotLSAgICAgIHJldHVybiBjaGFuZ2VkQmxvY2s7Ci0rICAgICAgICB9Ci0rICAgICAgcmV0dXJu IGNoYW5nZWRBbnlCbG9jazsKLSAgICAgfQotICAgfTsKLSAKLUBAIC0zNjcsNyArMzY5LDcgQEAg bmFtZXNwYWNlIGdiZQotICAgICByZXR1cm4gdHJ1ZTsKLSAgIH0KLSAKLS0gIEJhc2ljQmxvY2tQ YXNzICpjcmVhdGVSZW1vdmVHRVBQYXNzKGNvbnN0IGlyOjpVbml0ICZ1bml0KSB7Ci0rICBGdW5j dGlvblBhc3MgKmNyZWF0ZVJlbW92ZUdFUFBhc3MoY29uc3QgaXI6OlVuaXQgJnVuaXQpIHsKLSAg ICAgcmV0dXJuIG5ldyBHZW5SZW1vdmVHRVBQYXNzcyh1bml0KTsKLSAgIH0KLSB9IC8qIG5hbWVz cGFjZSBnYmUgKi8KLWRpZmYgLS1naXQgYmFja2VuZC9zcmMvbGx2bS9sbHZtX3NhbXBsZXJfZml4 LmNwcCBiYWNrZW5kL3NyYy9sbHZtL2xsdm1fc2FtcGxlcl9maXguY3BwCi1pbmRleCAyYTA5N2M4 Li44NjNiZTZkIDEwMDY0NAotLS0tIGEvYmFja2VuZC9zcmMvbGx2bS9sbHZtX3NhbXBsZXJfZml4 LmNwcAotKysrIGIvYmFja2VuZC9zcmMvbGx2bS9sbHZtX3NhbXBsZXJfZml4LmNwcAotQEAgLTMz LDEwICszMywxMiBAQCBuYW1lc3BhY2UgZ2JlIHsKLSAgIGNsYXNzIFNhbXBsZXJGaXggOiBwdWJs aWMgRnVuY3Rpb25QYXNzIHsKLSAgIHB1YmxpYzoKLSAgICAgU2FtcGxlckZpeCgpIDogRnVuY3Rp b25QYXNzKElEKSB7Ci0rI2lmIExMVk1fVkVSU0lPTl9NQUpPUiA8IDEwCi0gI2lmIExMVk1fVkVS U0lPTl9NQUpPUiAqIDEwICsgTExWTV9WRVJTSU9OX01JTk9SID49IDM1Ci0gICAgICAgaW5pdGlh bGl6ZURvbWluYXRvclRyZWVXcmFwcGVyUGFzc1Bhc3MoKlBhc3NSZWdpc3RyeTo6Z2V0UGFzc1Jl Z2lzdHJ5KCkpOwotICNlbHNlCi0gICAgICAgaW5pdGlhbGl6ZURvbWluYXRvclRyZWVQYXNzKCpQ YXNzUmVnaXN0cnk6OmdldFBhc3NSZWdpc3RyeSgpKTsKLSsjZW5kaWYKLSAjZW5kaWYKLSAgICAg fQotIAotZGlmZiAtLWdpdCBiYWNrZW5kL3NyYy9sbHZtL2xsdm1fc2NhbGFyaXplLmNwcCBiYWNr ZW5kL3NyYy9sbHZtL2xsdm1fc2NhbGFyaXplLmNwcAotaW5kZXggZTlhMmE2Ni4uZTlkMmVlNCAx MDA2NDQKLS0tLSBhL2JhY2tlbmQvc3JjL2xsdm0vbGx2bV9zY2FsYXJpemUuY3BwCi0rKysgYi9i YWNrZW5kL3NyYy9sbHZtL2xsdm1fc2NhbGFyaXplLmNwcAotQEAgLTk2LDEwICs5NiwxMiBAQCBu YW1lc3BhY2UgZ2JlIHsKLSAKLSAgICAgU2NhbGFyaXplKCkgOiBGdW5jdGlvblBhc3MoSUQpCi0g ICAgIHsKLSsjaWYgTExWTV9WRVJTSU9OX01BSk9SIDwgMTAKLSAjaWYgTExWTV9WRVJTSU9OX01B Sk9SICogMTAgKyBMTFZNX1ZFUlNJT05fTUlOT1IgPj0gMzUKLSAgICAgICBpbml0aWFsaXplRG9t aW5hdG9yVHJlZVdyYXBwZXJQYXNzUGFzcygqUGFzc1JlZ2lzdHJ5OjpnZXRQYXNzUmVnaXN0cnko KSk7Ci0gI2Vsc2UKLSAgICAgICBpbml0aWFsaXplRG9taW5hdG9yVHJlZVBhc3MoKlBhc3NSZWdp c3RyeTo6Z2V0UGFzc1JlZ2lzdHJ5KCkpOwotKyNlbmRpZgotICNlbmRpZgotICAgICB9Ci0gCi1k aWZmIC0tZ2l0IHV0ZXN0cy9DTWFrZUxpc3RzLnR4dCB1dGVzdHMvQ01ha2VMaXN0cy50eHQKLWlu ZGV4IDMwMGQ4N2EuLjY0MTc5YzcgMTAwNjQ0Ci0tLS0gYS91dGVzdHMvQ01ha2VMaXN0cy50eHQK LSsrKyBiL3V0ZXN0cy9DTWFrZUxpc3RzLnR4dAotQEAgLTI2LDggKzI2LDggQEAgaWYgKE5PVCBO T1RfQlVJTERfU1RBTkRfQUxPTkVfVVRFU1QpCi0gICAjIFRocmVhZHMKLSAgIEZpbmRfUGFja2Fn ZShUaHJlYWRzKQotIAotLSAgc2V0IChDTUFLRV9DWFhfRkxBR1MgIiR7Q01BS0VfQ1hYX0ZMQUdT fSAke0NNQUtFX0NfQ1hYX0ZMQUdTfSAtc3RkPWMrKzB4IC1Xbm8taW52YWxpZC1vZmZzZXRvZiIp Ci0tICBzZXQgKENNQUtFX0NfRkxBR1MgIiR7Q01BS0VfQ19GTEFHU30gJHtDTUFLRV9DX0NYWF9G TEFHU30iKQotKyAgc2V0IChDTUFLRV9DWFhfRkxBR1MgIiR7Q01BS0VfQ1hYX0ZMQUdTfSAke0NN QUtFX0NfQ1hYX0ZMQUdTfSAtV25vLWludmFsaWQtb2Zmc2V0b2YgLWZmbG9hdC1zdG9yZSAtZm5v LXN0cmljdC1hbGlhc2luZyIpCi0rICBzZXQgKENNQUtFX0NfRkxBR1MgIiR7Q01BS0VfQ19GTEFH U30gJHtDTUFLRV9DX0NYWF9GTEFHU30gLWZmbG9hdC1zdG9yZSAtZm5vLXN0cmljdC1hbGlhc2lu ZyIpICNjb21waWxlcl97ZGVncmVlcyxyYWRpYW5zLGZ1bmN0aW9uX2FyZ3VtZW50Mn0gdXNlIGVx dWFsaXR5IGNvbXBhcmlzb24gb2YgZmxvYXRzLCBjb21waWxlcl9sb25nX2JpdGNhc3QgdXNlcyBh bGlhc2luZwotICAgc2V0IChDTUFLRV9DWFhfRkxBR1NfREVCVUcgICAgICAgICAgIi1PMCAtZyAt REdCRV9ERUJVRz0xIikKLSAgIHNldCAoQ01BS0VfQ1hYX0ZMQUdTX1JFTFdJVEhERUJJTkZPICIt TzIgLWcgLURHQkVfREVCVUc9MSIpCi0gICBzZXQgKENNQUtFX0NYWF9GTEFHU19NSU5TSVpFUkVM ICAgICAiLU9zIC1ETkRFQlVHIC1ER0JFX0RFQlVHPTAiKQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9i ZWlnbmV0L3BhdGNoZXMvbGx2bTExLnBhdGNoIGIvc3JjcGtncy9iZWlnbmV0L3BhdGNoZXMvbGx2 bTExLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyYzNhNDI3ODk0M2MuLjAw MDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2JlaWduZXQvcGF0Y2hlcy9sbHZtMTEucGF0Y2gKKysr IC9kZXYvbnVsbApAQCAtMSw5MzcgKzAsMCBAQAotU291cmNlOiBTbmVrdHJvbgotCi1UaGVyZSB3 ZXJlIGEgZmV3IGNoYW5nZXMgcmVxdWlyZWQgZm9yIExMVk0gMTE6Ci0qIGxsdm06OlN0cmluZ1Jl ZiByZXF1aXJlcyAuc3RyKCksIGltcGxpY2l0IGNvbnZlcnNpb24gd2FzIHJlbW92ZWQKLSogbGx2 bTo6Q2FsbFNpdGUgd2FzIHJlbW92ZWQsIGJ1dCB0aGUgcmVxdWlyZWQgbWV0aG9kcyBhcmUgYXZh aWxhYmxlIG9uIGxsdm06OkNhbGxJbnN0Ci0qIFZlY3RvclR5SUQgd2FzIHNwbGl0IGludG8gRml4 ZWRWZWN0b3JUeUlEIGFuZCBTY2FsYWJsZVZlY3RvclR5SUQsIEZpeGVkVmVjdG9yVHlJRCB3YXMg dXNlZAotKiBDYWxsSW5zdDo6Z2V0Q2FsbGVkVmFsdWUoKSB3YXMgcmVuYW1lZCB0byBDYWxsSW5z dDo6Z2V0Q2FsbGVkT3BlcmFuZCgpCi0qIEltcGxpY2l0IGNvbnZlcnNpb24gZnJvbSBNYXliZUFs aWduIHRvIEFsaWduIHdhcyByZW1vdmVkLCBzbyBNYXliZUFsaWduOjp2YWx1ZU9yT25lIHdhcyB1 c2VkIGluc3RlYWQuCi0KLS0tLSBhL2JhY2tlbmQvc3JjL2xsdm0vU3RyaXBBdHRyaWJ1dGVzLmNw cAkyMDIwLTExLTA5IDE2OjQ4OjIwLjgyMzg2NjExMiArMDEwMAotKysrIGIvYmFja2VuZC9zcmMv bGx2bS9TdHJpcEF0dHJpYnV0ZXMuY3BwCTIwMjAtMTEtMDkgMTk6MDQ6MTkuNjQxODk3MTQxICsw MTAwCi1AQCAtMTA3LDkgKzEwNyw4IEBACi0gICAgICAgIEJCICE9IEU7ICsrQkIpIHsKLSAgICAg Zm9yIChCYXNpY0Jsb2NrOjppdGVyYXRvciBJbnN0ID0gQkItPmJlZ2luKCksIEUgPSBCQi0+ZW5k KCk7Ci0gICAgICAgICAgSW5zdCAhPSBFOyArK0luc3QpIHsKLS0gICAgICBDYWxsU2l0ZSBDYWxs KCYqSW5zdCk7Ci0tICAgICAgaWYgKENhbGwpCi0tICAgICAgICBDYWxsLnNldENhbGxpbmdDb252 KENhbGxpbmdDb252OjpDKTsKLSsgICAgICBpZiAoQ2FsbEluc3QqIGNhbGxJbnN0ID0gZHluX2Nh c3Q8Q2FsbEluc3Q+KCYqSW5zdCkpCi0rICAgICAgICBjYWxsSW5zdC0+c2V0Q2FsbGluZ0NvbnYo Q2FsbGluZ0NvbnY6OkMpOwotICAgICB9Ci0gICB9Ci0KLS0tLSBhL2JhY2tlbmQvc3JjL2xsdm0v bGx2bV9iaXRjb2RlX2xpbmsuY3BwCTIwMjAtMTEtMDkgMTY6NDg6MjAuODIzODY2MTEyICswMTAw Ci0rKysgYi9iYWNrZW5kL3NyYy9sbHZtL2xsdm1fYml0Y29kZV9saW5rLmNwcAkyMDIwLTExLTA5 IDE3OjA0OjA5LjYzMzc1MzQyOCArMDEwMAotQEAgLTk4LDcgKzk4LDcgQEAKLSAgICAgICAgIGlm IChjYWxsRnVuYyAmJiBjYWxsRnVuYy0+Z2V0SW50cmluc2ljSUQoKSAhPSAwKQotICAgICAgICAg ICBjb250aW51ZTsKLQotLSAgICAgICAgc3RkOjpzdHJpbmcgZm5OYW1lID0gY2FsbC0+Z2V0Q2Fs bGVkVmFsdWUoKS0+c3RyaXBQb2ludGVyQ2FzdHMoKS0+Z2V0TmFtZSgpOwotKyAgICAgICAgc3Rk OjpzdHJpbmcgZm5OYW1lID0gY2FsbC0+Z2V0Q2FsbGVkT3BlcmFuZCgpLT5zdHJpcFBvaW50ZXJD YXN0cygpLT5nZXROYW1lKCkuc3RyKCk7Ci0KLSAgICAgICAgIGlmICghTUZTLmluc2VydChmbk5h bWUpLnNlY29uZCkgewotICAgICAgICAgICBjb250aW51ZTsKLS0tLSBhL2JhY2tlbmQvc3JjL2xs dm0vbGx2bV9kZXZpY2VfZW5xdWV1ZS5jcHAJMjAyMC0xMS0wOSAxNjo0ODoyMC44MjM4NjYxMTIg KzAxMDAKLSsrKyBiL2JhY2tlbmQvc3JjL2xsdm0vbGx2bV9kZXZpY2VfZW5xdWV1ZS5jcHAJMjAy MC0xMS0wOSAxOTowMTo0OS4yMDE5MTUwMDggKzAxMDAKLUBAIC00NSw3ICs0NSw3IEBACi0gICAg ICAgcmV0dXJuIE5VTEw7Ci0KLSAgICAgLyogVGhpcyBpcyBhIGZha2UsIHRvIGNoZWNrIHRoZSBm dW5jdGlvbiBiaXRjYXN0IGlzIGZvciBibG9jayBvciBub3QgKi8KLS0gICAgc3RkOjpzdHJpbmcg Zm5OYW1lID0gRm4tPmdldE5hbWUoKTsKLSsgICAgc3RkOjpzdHJpbmcgZm5OYW1lID0gRm4tPmdl dE5hbWUoKS5zdHIoKTsKLSAgICAgaWYoZm5OYW1lLmZpbmQoIl9pbnZva2UiKSA9PSBzdGQ6OnN0 cmluZzo6bnBvcykKLSAgICAgICByZXR1cm4gTlVMTDsKLQotQEAgLTExOSwxOCArMTE5LDE4IEBA Ci0gICAgICAgUGFyYW1UeXMucHVzaF9iYWNrKHR5KTsKLSAgICAgfQotICAgICBGdW5jdGlvblR5 cGUqIE5ld0ZUID0gRnVuY3Rpb25UeXBlOjpnZXQoRm4tPmdldFJldHVyblR5cGUoKSwgUGFyYW1U eXMsIGZhbHNlKTsKLS0gICAgRnVuY3Rpb24qIE5ld0ZuID0gRnVuY3Rpb246OkNyZWF0ZShOZXdG VCwgRnVuY3Rpb246OkV4dGVybmFsTGlua2FnZSwgRm4tPmdldE5hbWUoKSk7Ci0rICAgIEZ1bmN0 aW9uKiBOZXdGbiA9IEZ1bmN0aW9uOjpDcmVhdGUoTmV3RlQsIEZ1bmN0aW9uOjpFeHRlcm5hbExp bmthZ2UsIEZuLT5nZXROYW1lKCkuc3RyKCkpOwotICAgICBTbWFsbFZlY3RvcjxSZXR1cm5JbnN0 KiwgOD4gUmV0dXJuczsKLQotICAgICBGdW5jdGlvbjo6YXJnX2l0ZXJhdG9yIE5ld0ZuQXJnSXQg PSBOZXdGbi0+YXJnX2JlZ2luKCk7Ci0gICAgIGZvciAoRnVuY3Rpb246OmFyZ19pdGVyYXRvciBJ ID0gRm4tPmFyZ19iZWdpbigpLCBFID0gRm4tPmFyZ19lbmQoKTsgSSAhPSBFOyArK0kpIHsKLS0g ICAgICBzdGQ6OnN0cmluZyBBcmdOYW1lID0gSS0+Z2V0TmFtZSgpOwotKyAgICAgIHN0ZDo6c3Ry aW5nIEFyZ05hbWUgPSBJLT5nZXROYW1lKCkuc3RyKCk7Ci0gICAgICAgTmV3Rm5BcmdJdC0+c2V0 TmFtZShBcmdOYW1lKTsKLSAgICAgICBWTWFwWyYqSV0gPSAmKCpOZXdGbkFyZ0l0KyspOwotICAg ICB9Ci0gICAgIENsb25lRnVuY3Rpb25JbnRvKE5ld0ZuLCBGbiwgVk1hcCwgLypNb2R1bGVMZXZl bENoYW5nZXM9Ki90cnVlLCBSZXR1cm5zKTsKLQotLSAgICBGbi0+c2V0TmFtZSgiX19kIiArIEZu LT5nZXROYW1lKCkpOwotKyAgICBGbi0+c2V0TmFtZSgiX19kIiArIEZuLT5nZXROYW1lKCkuc3Ry KCkpOwotICAgICBtb2QtPmdldEZ1bmN0aW9uTGlzdCgpLnB1c2hfYmFjayhOZXdGbik7Ci0gICAg IC8vbW9kLT5nZXRPckluc2VydEZ1bmN0aW9uKE5ld0ZuLT5nZXROYW1lKCksIE5ld0ZuLT5nZXRG dW5jdGlvblR5cGUoKSwKLSAgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgTmV3Rm4tPmdl dEF0dHJpYnV0ZXMoKSk7Ci1AQCAtMTQ3LDcgKzE0Nyw3IEBACi0gICAgICAgYXJnVHlwZU5hbWVz LnB1c2hfYmFjayhsbHZtOjpNRFN0cmluZzo6Z2V0KENvbnRleHQsICJjaGFyKiIpKTsKLSAgICAg ICBhcmdCYXNlVHlwZU5hbWVzLnB1c2hfYmFjayhsbHZtOjpNRFN0cmluZzo6Z2V0KENvbnRleHQs ICJjaGFyKiIpKTsKLSAgICAgICBhcmdUeXBlUXVhbHMucHVzaF9iYWNrKGxsdm06Ok1EU3RyaW5n OjpnZXQoQ29udGV4dCwgIiIpKTsKLS0gICAgICBhcmdOYW1lcy5wdXNoX2JhY2sobGx2bTo6TURT dHJpbmc6OmdldChDb250ZXh0LCBJLT5nZXROYW1lKCkpKTsKLSsgICAgICBhcmdOYW1lcy5wdXNo X2JhY2sobGx2bTo6TURTdHJpbmc6OmdldChDb250ZXh0LCBJLT5nZXROYW1lKCkuc3RyKCkpKTsK LSAgICAgfQotCi0gICAgIC8vSWYgcnVuIHRvIGhlcmUsIGxsdm0gdmVyc2lvbiBhbHdheXMgPiAz LjksIGFkZCB0aGUgdmVyc2lvbiBjaGVjayBqdXN0IGZvciBidWlsZC4KLUBAIC0xOTgsNyArMTk4 LDcgQEAKLSAgICAgICAgICAgICogaW52b2tlIHBvaW50ZXIgdG8gc3RvcmUgdGhlIGluZGV4IGlu IHRoZSB1bml0J3MgYmxvY2sgZnVuY3Rpb25zIGluZGV4LiovCi0gICAgICAgICAgIEZ1bmN0aW9u ICpGbiA9IGR5bl9jYXN0PEZ1bmN0aW9uPihidC0+Z2V0T3BlcmFuZCgwKSk7Ci0KLS0gICAgICAg ICAgc3RkOjpzdHJpbmcgZm5OYW1lID0gRm4tPmdldE5hbWUoKTsKLSsgICAgICAgICAgc3RkOjpz dHJpbmcgZm5OYW1lID0gRm4tPmdldE5hbWUoKS5zdHIoKTsKLSAgICAgICAgICAgaW50IGluZGV4 ID0gLTE7Ci0gICAgICAgICAgIGZvcihzaXplX3QgaT0wOyBpPHVuaXQuYmxvY2tGdW5jcy5zaXpl KCk7IGkrKykgewotICAgICAgICAgICAgIGlmKHVuaXQuYmxvY2tGdW5jc1tpXSA9PSBmbk5hbWUp IHsKLUBAIC0yNDEsNyArMjQxLDcgQEAKLSAgICAgICAgICAgICAvL3VubmFtZWQgY2FsbCBmdW5j dGlvbiwgcGFyc2UgdGhlIHVzZSB0byBmaW5kIHRoZSBkZWZpbmUgb2YgY2FsbGVkIGZ1bmN0aW9u Ci0gICAgICAgICAgICAgU21hbGxWZWN0b3I8VmFsdWUqLCAxNj4gYXJncyhDSS0+b3BfYmVnaW4o KSwgQ0ktPm9wX2VuZCgpLTEpOwotCi0tICAgICAgICAgICAgVmFsdWUgKnYgPSBDSS0+Z2V0Q2Fs bGVkVmFsdWUoKTsKLSsgICAgICAgICAgICBWYWx1ZSAqdiA9IENJLT5nZXRDYWxsZWRPcGVyYW5k KCk7Ci0gICAgICAgICAgICAgQml0Q2FzdEluc3QqIGJ0ID0gZHluX2Nhc3Q8Qml0Q2FzdEluc3Q+ KHYpOwotICAgICAgICAgICAgIGlmKGJ0ID09IE5VTEwpCi0gICAgICAgICAgICAgICBjb250aW51 ZTsKLUBAIC0zMTYsNyArMzE2LDcgQEAKLSAgICAgICAgICAgICAgICAgICBDb25zdGFudEV4cHIg KmV4cHIgPSBkeW5fY2FzdDxDb25zdGFudEV4cHI+KGMtPmdldE9wZXJhbmQoMykpOwotICAgICAg ICAgICAgICAgICAgIEJpdENhc3RJbnN0ICpidCA9IGR5bl9jYXN0PEJpdENhc3RJbnN0PihleHBy LT5nZXRBc0luc3RydWN0aW9uKCkpOwotICAgICAgICAgICAgICAgICAgIEZ1bmN0aW9uKiBmID0g ZHluX2Nhc3Q8RnVuY3Rpb24+KGJ0LT5nZXRPcGVyYW5kKDApKTsKLS0gICAgICAgICAgICAgICAg ICBibG9ja3Nbdl0gPSBmLT5nZXROYW1lKCk7Ci0rICAgICAgICAgICAgICAgICAgYmxvY2tzW3Zd ID0gZi0+Z2V0TmFtZSgpLnN0cigpOwotICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAg ICB9Ci0KLUBAIC0zMzIsNyArMzMyLDcgQEAKLSAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAg ICAgICAvL2hhbmRsZSBlbnF1ZXVlX2tlcm5lbCBmdW5jdGlvbiBjYWxsCi0gICAgICAgICAgICAg RnVuY3Rpb24gKmZuID0gQ0ktPmdldENhbGxlZEZ1bmN0aW9uKCk7Ci0tICAgICAgICAgICAgaWYg KGZuLT5nZXROYW1lKCkuZmluZCgiZW5xdWV1ZV9rZXJuZWwiKSA9PSBzdGQ6OnN0cmluZzo6bnBv cykKLSsgICAgICAgICAgICBpZiAoZm4tPmdldE5hbWUoKS5zdHIoKS5maW5kKCJlbnF1ZXVlX2tl cm5lbCIpID09IHN0ZDo6c3RyaW5nOjpucG9zKQotICAgICAgICAgICAgICAgY29udGludWU7Ci0K LSAgICAgICAgICAgICAvL2Jsb2NrIHBhcmFtZXRlcidzIGluZGV4LCAzIG9yIDYKLUBAIC0zNjEs NyArMzYxLDcgQEAKLSAgICAgICAgICAgICAgICAgICBDb25zdGFudEV4cHIgKmV4cHIgPSBkeW5f Y2FzdDxDb25zdGFudEV4cHI+KGMtPmdldE9wZXJhbmQoMykpOwotICAgICAgICAgICAgICAgICAg IEJpdENhc3RJbnN0ICpidCA9IGR5bl9jYXN0PEJpdENhc3RJbnN0PihleHByLT5nZXRBc0luc3Ry dWN0aW9uKCkpOwotICAgICAgICAgICAgICAgICAgIEZ1bmN0aW9uKiBmID0gZHluX2Nhc3Q8RnVu Y3Rpb24+KGJ0LT5nZXRPcGVyYW5kKDApKTsKLS0gICAgICAgICAgICAgICAgICBibG9ja3Nbdl0g PSBmLT5nZXROYW1lKCk7Ci0rICAgICAgICAgICAgICAgICAgYmxvY2tzW3ZdID0gZi0+Z2V0TmFt ZSgpLnN0cigpOwotICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAg ICAgICAgfSBlbHNlIGlmKGlzYTxBbGxvY2FJbnN0PihibG9jaykpIHsKLS0tLSBhL2JhY2tlbmQv c3JjL2xsdm0vbGx2bV9nZW5fYmFja2VuZC5jcHAJMjAyMC0xMS0wOSAxNjo0ODoyMC44MjM4NjYx MTIgKzAxMDAKLSsrKyBiL2JhY2tlbmQvc3JjL2xsdm0vbGx2bV9nZW5fYmFja2VuZC5jcHAJMjAy MC0xMS0wOSAxODozMzo1MC45MTkxMTQzMjcgKzAxMDAKLUBAIC0zNzYsNyArMzc2LDcgQEAKLSAg ICAgICAgICAgR0JFX0FTU0VSVChpbmRleCA9PSAwKTsKLSAgICAgICAgICAgcmV0dXJuIHRoaXMt Pl9uZXdTY2FsYXIodmFsdWUsIGtleSwgdHlwZSwgaW5kZXgsIHVuaWZvcm0pOwotICAgICAgICAg ICBicmVhazsKLS0gICAgICAgIGNhc2UgVHlwZTo6VmVjdG9yVHlJRDoKLSsgICAgICAgIGNhc2Ug VHlwZTo6Rml4ZWRWZWN0b3JUeUlEOgotICAgICAgICAgewotICAgICAgICAgICBhdXRvIHZlY3Rv clR5cGUgPSBjYXN0PFZlY3RvclR5cGU+KHR5cGUpOwotICAgICAgICAgICBhdXRvIGVsZW1lbnRU eXBlID0gdmVjdG9yVHlwZS0+Z2V0RWxlbWVudFR5cGUoKTsKLUBAIC03NDMsMjAgKzc0MywyMCBA QAotICN1bmRlZiBERUNMX1ZJU0lUX0ZOCi0KLSAgICAgLy8gRW1pdCByb3VuZGluZyBpbnN0cnVj dGlvbnMgZnJvbSBnZW4gbmF0aXZlIGZ1bmN0aW9uCi0tICAgIHZvaWQgZW1pdFJvdW5kaW5nQ2Fs bEluc3QoQ2FsbEluc3QgJkksIENhbGxTaXRlICZDUywgaXI6Ok9wY29kZSBvcGNvZGUpOwotKyAg ICB2b2lkIGVtaXRSb3VuZGluZ0NhbGxJbnN0KENhbGxJbnN0ICZJLCBpcjo6T3Bjb2RlIG9wY29k ZSk7Ci0gICAgIC8vIEVtaXQgdW5hcnkgaW5zdHJ1Y3Rpb25zIGZyb20gZ2VuIG5hdGl2ZSBmdW5j dGlvbgotLSAgICB2b2lkIGVtaXRVbmFyeUNhbGxJbnN0KENhbGxJbnN0ICZJLCBDYWxsU2l0ZSAm Q1MsIGlyOjpPcGNvZGUgb3Bjb2RlLCBpcjo6VHlwZSA9IGlyOjpUWVBFX0ZMT0FUKTsKLSsgICAg dm9pZCBlbWl0VW5hcnlDYWxsSW5zdChDYWxsSW5zdCAmSSwgaXI6Ok9wY29kZSBvcGNvZGUsIGly OjpUeXBlID0gaXI6OlRZUEVfRkxPQVQpOwotICAgICAvLyBFbWl0IHVuYXJ5IGluc3RydWN0aW9u cyBmcm9tIGdlbiBuYXRpdmUgZnVuY3Rpb24KLS0gICAgdm9pZCBlbWl0QXRvbWljSW5zdChDYWxs SW5zdCAmSSwgQ2FsbFNpdGUgJkNTLCBpcjo6QXRvbWljT3BzIG9wY29kZSk7Ci0rICAgIHZvaWQg ZW1pdEF0b21pY0luc3QoQ2FsbEluc3QgJkksIGlyOjpBdG9taWNPcHMgb3Bjb2RlKTsKLSAgICAg Ly8gRW1pdCB3b3JrZ3JvdXAgaW5zdHJ1Y3Rpb25zCi0tICAgIHZvaWQgZW1pdFdvcmtHcm91cElu c3QoQ2FsbEluc3QgJkksIENhbGxTaXRlICZDUywgaXI6OldvcmtHcm91cE9wcyBvcGNvZGUpOwot KyAgICB2b2lkIGVtaXRXb3JrR3JvdXBJbnN0KENhbGxJbnN0ICZJLCBpcjo6V29ya0dyb3VwT3Bz IG9wY29kZSk7Ci0gICAgIC8vIEVtaXQgc3ViZ3JvdXAgaW5zdHJ1Y3Rpb25zCi0tICAgIHZvaWQg ZW1pdFN1Ykdyb3VwSW5zdChDYWxsSW5zdCAmSSwgQ2FsbFNpdGUgJkNTLCBpcjo6V29ya0dyb3Vw T3BzIG9wY29kZSk7Ci0rICAgIHZvaWQgZW1pdFN1Ykdyb3VwSW5zdChDYWxsSW5zdCAmSSwgaXI6 OldvcmtHcm91cE9wcyBvcGNvZGUpOwotICAgICAvLyBFbWl0IHN1Ymdyb3VwIGluc3RydWN0aW9u cwotLSAgICB2b2lkIGVtaXRCbG9ja1JlYWRXcml0ZU1lbUluc3QoQ2FsbEluc3QgJkksIENhbGxT aXRlICZDUywgYm9vbCBpc1dyaXRlLCB1aW50OF90IHZlY19zaXplLCBpcjo6VHlwZSA9IGlyOjpU WVBFX1UzMik7Ci0tICAgIHZvaWQgZW1pdEJsb2NrUmVhZFdyaXRlSW1hZ2VJbnN0KENhbGxJbnN0 ICZJLCBDYWxsU2l0ZSAmQ1MsIGJvb2wgaXNXcml0ZSwgdWludDhfdCB2ZWNfc2l6ZSwgaXI6OlR5 cGUgPSBpcjo6VFlQRV9VMzIpOwotKyAgICB2b2lkIGVtaXRCbG9ja1JlYWRXcml0ZU1lbUluc3Qo Q2FsbEluc3QgJkksIGJvb2wgaXNXcml0ZSwgdWludDhfdCB2ZWNfc2l6ZSwgaXI6OlR5cGUgPSBp cjo6VFlQRV9VMzIpOwotKyAgICB2b2lkIGVtaXRCbG9ja1JlYWRXcml0ZUltYWdlSW5zdChDYWxs SW5zdCAmSSwgYm9vbCBpc1dyaXRlLCB1aW50OF90IHZlY19zaXplLCBpcjo6VHlwZSA9IGlyOjpU WVBFX1UzMik7Ci0KLS0gICAgdWludDhfdCBhcHBlbmRTYW1wbGVyKENhbGxTaXRlOjphcmdfaXRl cmF0b3IgQUkpOwotKyAgICB1aW50OF90IGFwcGVuZFNhbXBsZXIoVXNlcjo6b3BfaXRlcmF0b3Ig QUkpOwotICAgICB1aW50OF90IGdldEltYWdlSUQoQ2FsbEluc3QgJkkpOwotCi0gICAgIC8vIFRo ZXNlIGluc3RydWN0aW9ucyBhcmUgbm90IHN1cHBvcnRlZCBhdCBhbGwKLUBAIC0xMzIwLDEzICsx MzIwLDEzIEBACi0gI2VuZGlmCi0KLSAgICAgICBpZih0eXBlTmFtZU5vZGUpIHsKLS0gICAgICAg IGxsdm1JbmZvLnR5cGVOYW1lPSAoY2FzdDxNRFN0cmluZz4odHlwZU5hbWVOb2RlLT5nZXRPcGVy YW5kKG9wSUQpKSktPmdldFN0cmluZygpOwotKyAgICAgICAgbGx2bUluZm8udHlwZU5hbWU9IChj YXN0PE1EU3RyaW5nPih0eXBlTmFtZU5vZGUtPmdldE9wZXJhbmQob3BJRCkpKS0+Z2V0U3RyaW5n KCkuc3RyKCk7Ci0gICAgICAgfQotICAgICAgIGlmKHR5cGVCYXNlTmFtZU5vZGUpIHsKLS0gICAg ICAgIGxsdm1JbmZvLnR5cGVCYXNlTmFtZT0gKGNhc3Q8TURTdHJpbmc+KHR5cGVCYXNlTmFtZU5v ZGUtPmdldE9wZXJhbmQob3BJRCkpKS0+Z2V0U3RyaW5nKCk7Ci0rICAgICAgICBsbHZtSW5mby50 eXBlQmFzZU5hbWU9IChjYXN0PE1EU3RyaW5nPih0eXBlQmFzZU5hbWVOb2RlLT5nZXRPcGVyYW5k KG9wSUQpKSktPmdldFN0cmluZygpLnN0cigpOwotICAgICAgIH0KLS0gICAgICBsbHZtSW5mby50 eXBlTmFtZT0gKGNhc3Q8TURTdHJpbmc+KHR5cGVOYW1lTm9kZS0+Z2V0T3BlcmFuZChvcElEKSkp LT5nZXRTdHJpbmcoKTsKLS0gICAgICBsbHZtSW5mby50eXBlUXVhbCA9IChjYXN0PE1EU3RyaW5n Pih0eXBlUXVhbE5vZGUtPmdldE9wZXJhbmQob3BJRCkpKS0+Z2V0U3RyaW5nKCk7Ci0rICAgICAg bGx2bUluZm8udHlwZU5hbWU9IChjYXN0PE1EU3RyaW5nPih0eXBlTmFtZU5vZGUtPmdldE9wZXJh bmQob3BJRCkpKS0+Z2V0U3RyaW5nKCkuc3RyKCk7Ci0rICAgICAgbGx2bUluZm8udHlwZVF1YWwg PSAoY2FzdDxNRFN0cmluZz4odHlwZVF1YWxOb2RlLT5nZXRPcGVyYW5kKG9wSUQpKSktPmdldFN0 cmluZygpLnN0cigpOwotICAgICAgIGJvb2wgaXNJbWFnZSA9IGxsdm1JbmZvLmlzSW1hZ2VUeXBl KCk7Ci0gICAgICAgYm9vbCBpc1BpcGUgPSBsbHZtSW5mby5pc1BpcGVUeXBlKCk7Ci0gICAgICAg aWYgKEktPmdldFR5cGUoKS0+aXNQb2ludGVyVHkoKSB8fCBpc0ltYWdlIHx8IGlzUGlwZSkgewot QEAgLTE1MzEsNyArMTUzMSw3IEBACi0gICAgICAgICAgICAgRWx0VHkgPSBnZXRFbHRUeXBlKEVs dFR5LCBUeXBlSW5kZXgpOwotICAgICAgICAgfQotCi0tICAgICAgICBpcjo6Q29uc3RhbnQgY2Mg PSB1bml0LmdldENvbnN0YW50U2V0KCkuZ2V0Q29uc3RhbnQocG9pbnRlci0+Z2V0TmFtZSgpKTsK LSsgICAgICAgIGlyOjpDb25zdGFudCBjYyA9IHVuaXQuZ2V0Q29uc3RhbnRTZXQoKS5nZXRDb25z dGFudChwb2ludGVyLT5nZXROYW1lKCkuc3RyKCkpOwotICAgICAgICAgdW5zaWduZWQgaW50IGRl Zk9mZnNldCA9IGNjLmdldE9mZnNldCgpOwotICAgICAgICAgcmVsb2NzLnB1c2hfYmFjayhpcjo6 UmVsb2NFbnRyeShvZmZzZXQsIGRlZk9mZnNldCArIGNvbnN0YW50T2Zmc2V0KSk7Ci0KLUBAIC0x NTQ2LDcgKzE1NDYsNyBAQAotICAgICAgIHJldHVybjsKLSAgICAgfQotICAgICBpZiAoaXNhPEds b2JhbFZhcmlhYmxlPihjKSkgewotLSAgICAgIGlyOjpDb25zdGFudCBjYyA9IHVuaXQuZ2V0Q29u c3RhbnRTZXQoKS5nZXRDb25zdGFudChjLT5nZXROYW1lKCkpOwotKyAgICAgIGlyOjpDb25zdGFu dCBjYyA9IHVuaXQuZ2V0Q29uc3RhbnRTZXQoKS5nZXRDb25zdGFudChjLT5nZXROYW1lKCkuc3Ry KCkpOwotICAgICAgIHVuc2lnbmVkIGludCBkZWZPZmZzZXQgPSBjYy5nZXRPZmZzZXQoKTsKLQot ICAgICAgIHJlbG9jcy5wdXNoX2JhY2soaXI6OlJlbG9jRW50cnkob2Zmc2V0LCBkZWZPZmZzZXQp KTsKLUBAIC0xNjA5LDcgKzE2MDksNyBAQAotICAgICAgICAgICB9Ci0gICAgICAgICAgIGJyZWFr OwotICAgICAgICAgfQotLSAgICAgIGNhc2UgVHlwZTo6VHlwZUlEOjpWZWN0b3JUeUlEOgotKyAg ICAgIGNhc2UgVHlwZTo6VHlwZUlEOjpGaXhlZFZlY3RvclR5SUQ6Ci0gICAgICAgICB7Ci0gICAg ICAgICAgIGNvbnN0IENvbnN0YW50RGF0YVNlcXVlbnRpYWwgKmNkcyA9IGR5bl9jYXN0PENvbnN0 YW50RGF0YVNlcXVlbnRpYWw+KGMpOwotICAgICAgICAgICBjb25zdCBWZWN0b3JUeXBlICp2ZWNU eSA9IGNhc3Q8VmVjdG9yVHlwZT4odHlwZSk7Ci1AQCAtMTkzNiw3ICsxOTM2LDcgQEAKLSAgICAg ICBjYXNlIFR5cGU6OlBvaW50ZXJUeUlEOgotICAgICAgICAgcmVnVHJhbnNsYXRvci5uZXdTY2Fs YXIodmFsdWUsIGtleSwgMCwgdW5pZm9ybSk7Ci0gICAgICAgICBicmVhazsKLS0gICAgICBjYXNl IFR5cGU6OlZlY3RvclR5SUQ6Ci0rICAgICAgY2FzZSBUeXBlOjpGaXhlZFZlY3RvclR5SUQ6Ci0g ICAgICAgewotICAgICAgICAgYXV0byB2ZWN0b3JUeXBlID0gY2FzdDxWZWN0b3JUeXBlPih0eXBl KTsKLSAgICAgICAgIGNvbnN0IHVpbnQzMl90IGVsZW1OdW0gPSB2ZWN0b3JUeXBlLT5nZXROdW1F bGVtZW50cygpOwotQEAgLTIzOTUsNyArMjM5NSw3IEBACi0gI2VuZGlmCi0gICAgICAgICB9Ci0g ICAgICAgICBpZih0eXBlTmFtZU5vZGUpIHsKLS0gICAgICAgICAgbGx2bUluZm8udHlwZU5hbWUg PSAoY2FzdDxNRFN0cmluZz4odHlwZU5hbWVOb2RlLT5nZXRPcGVyYW5kKG9wSUQpKSktPmdldFN0 cmluZygpOwotKyAgICAgICAgICBsbHZtSW5mby50eXBlTmFtZSA9IChjYXN0PE1EU3RyaW5nPih0 eXBlTmFtZU5vZGUtPmdldE9wZXJhbmQob3BJRCkpKS0+Z2V0U3RyaW5nKCkuc3RyKCk7Ci0gICAg ICAgICAgIC8vTExWTSAzLjkgaW1hZ2UncyB0eXBlIG5hbWUgaW5jbHVkZSBhY2Nlc3MgcXVhbCwg ZG9uJ3QgbWF0Y2ggT3BlbkNMIHNwZWMsIGVyYXNlIHRoZW0uCi0gICAgICAgICAgIHN0ZDo6dmVj dG9yPHN0ZDo6c3RyaW5nPiBmaWx0ZXJzID0geyJfX3JlYWRfb25seSAiLCAiX193cml0ZV9vbmx5 ICJ9OwotICAgICAgICAgICBmb3IgKHVpbnQzMl90IGkgPSAwOyBpIDwgZmlsdGVycy5zaXplKCk7 IGkrKykgewotQEAgLTI0MDYsMTYgKzI0MDYsMTYgQEAKLSAgICAgICAgICAgfQotICAgICAgICAg fQotICAgICAgICAgaWYodHlwZUJhc2VOYW1lTm9kZSl7Ci0tICAgICAgICAgIGxsdm1JbmZvLnR5 cGVCYXNlTmFtZSA9IChjYXN0PE1EU3RyaW5nPih0eXBlQmFzZU5hbWVOb2RlLT5nZXRPcGVyYW5k KG9wSUQpKSktPmdldFN0cmluZygpOwotKyAgICAgICAgICBsbHZtSW5mby50eXBlQmFzZU5hbWUg PSAoY2FzdDxNRFN0cmluZz4odHlwZUJhc2VOYW1lTm9kZS0+Z2V0T3BlcmFuZChvcElEKSkpLT5n ZXRTdHJpbmcoKS5zdHIoKTsKLSAgICAgICAgIH0KLSAgICAgICAgIGlmKGFjY2Vzc1F1YWxOb2Rl KSB7Ci0tICAgICAgICAgIGxsdm1JbmZvLmFjY2Vzc1F1YWwgPSAoY2FzdDxNRFN0cmluZz4oYWNj ZXNzUXVhbE5vZGUtPmdldE9wZXJhbmQob3BJRCkpKS0+Z2V0U3RyaW5nKCk7Ci0rICAgICAgICAg IGxsdm1JbmZvLmFjY2Vzc1F1YWwgPSAoY2FzdDxNRFN0cmluZz4oYWNjZXNzUXVhbE5vZGUtPmdl dE9wZXJhbmQob3BJRCkpKS0+Z2V0U3RyaW5nKCkuc3RyKCk7Ci0gICAgICAgICB9Ci0gICAgICAg ICBpZih0eXBlUXVhbE5vZGUpIHsKLS0gICAgICAgICAgbGx2bUluZm8udHlwZVF1YWwgPSAoY2Fz dDxNRFN0cmluZz4odHlwZVF1YWxOb2RlLT5nZXRPcGVyYW5kKG9wSUQpKSktPmdldFN0cmluZygp OwotKyAgICAgICAgICBsbHZtSW5mby50eXBlUXVhbCA9IChjYXN0PE1EU3RyaW5nPih0eXBlUXVh bE5vZGUtPmdldE9wZXJhbmQob3BJRCkpKS0+Z2V0U3RyaW5nKCkuc3RyKCk7Ci0gICAgICAgICB9 Ci0gICAgICAgICBpZihhcmdOYW1lTm9kZSl7Ci0tICAgICAgICAgIGxsdm1JbmZvLmFyZ05hbWUg PSAoY2FzdDxNRFN0cmluZz4oYXJnTmFtZU5vZGUtPmdldE9wZXJhbmQob3BJRCkpKS0+Z2V0U3Ry aW5nKCk7Ci0rICAgICAgICAgIGxsdm1JbmZvLmFyZ05hbWUgPSAoY2FzdDxNRFN0cmluZz4oYXJn TmFtZU5vZGUtPmdldE9wZXJhbmQob3BJRCkpKS0+Z2V0U3RyaW5nKCkuc3RyKCk7Ci0gICAgICAg ICB9Ci0KLSAgICAgICAgIC8vIGZ1bmN0aW9uIGFyZ3VtZW50cyBhcmUgdW5pZm9ybSB2YWx1ZXMu Ci1AQCAtMzAxMCw3ICszMDEwLDcgQEAKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgIHRo aXMtPm5ld1JlZ2lzdGVyKGNvbnN0X2Nhc3Q8R2xvYmFsVmFyaWFibGUqPigmdikpOwotICAgICAg ICAgICBpcjo6UmVnaXN0ZXIgcmVnID0gcmVnVHJhbnNsYXRvci5nZXRTY2FsYXIoY29uc3RfY2Fz dDxHbG9iYWxWYXJpYWJsZSo+KCZ2KSwgMCk7Ci0tICAgICAgICAgIGlyOjpDb25zdGFudCAmY29u ID0gdW5pdC5nZXRDb25zdGFudFNldCgpLmdldENvbnN0YW50KHYuZ2V0TmFtZSgpKTsKLSsgICAg ICAgICAgaXI6OkNvbnN0YW50ICZjb24gPSB1bml0LmdldENvbnN0YW50U2V0KCkuZ2V0Q29uc3Rh bnQodi5nZXROYW1lKCkuc3RyKCkpOwotICAgICAgICAgICBpZiAoIWxlZ2FjeU1vZGUpIHsKLSAg ICAgICAgICAgICBpcjo6UmVnaXN0ZXIgcmVnbG9hZCA9IGN0eC5yZWcoZ2V0RmFtaWx5KGdldFR5 cGUoY3R4LCB2LmdldFR5cGUoKSkpKTsKLSAgICAgICAgICAgICBjdHguTE9BREkoZ2V0VHlwZShj dHgsIHYuZ2V0VHlwZSgpKSwgcmVnbG9hZCwgY3R4Lm5ld0ludGVnZXJJbW1lZGlhdGUoY29uLmdl dE9mZnNldCgpLCBnZXRUeXBlKGN0eCwgdi5nZXRUeXBlKCkpKSk7Ci1AQCAtMzIxMiw3ICszMjEy LDcgQEAKLSAgICAgICAgIEdCRV9BU1NFUlRNKGZhbHNlLCAiVW5zdXBwb3J0ZWQgY2FsbGluZyBj b252ZW50aW9uIik7Ci0gICAgIH0KLQotLSAgICBjdHguc3RhcnRGdW5jdGlvbihGLmdldE5hbWUo KSk7Ci0rICAgIGN0eC5zdGFydEZ1bmN0aW9uKEYuZ2V0TmFtZSgpLnN0cigpKTsKLQotICAgICBp cjo6RnVuY3Rpb24gJmZuID0gY3R4LmdldEZ1bmN0aW9uKCk7Ci0gICAgIHRoaXMtPnJlZ1RyYW5z bGF0b3IuY2xlYXIoKTsKLUBAIC0zODEwLDkgKzM4MTAsOSBAQAotCi0gICB2b2lkIEdlbldyaXRl cjo6cmVnQWxsb2NhdGVDYWxsSW5zdChDYWxsSW5zdCAmSSkgewotICAgICBWYWx1ZSAqZHN0ID0g Jkk7Ci0tICAgIFZhbHVlICpDYWxsZWUgPSBJLmdldENhbGxlZFZhbHVlKCk7Ci0rICAgIFZhbHVl ICpDYWxsZWUgPSBJLmdldENhbGxlZE9wZXJhbmQoKTsKLSAgICAgR0JFX0FTU0VSVChjdHguZ2V0 RnVuY3Rpb24oKS5nZXRQcm9maWxlKCkgPT0gaXI6OlBST0ZJTEVfT0NMKTsKLS0gICAgR0JFX0FT U0VSVChpc2E8SW5saW5lQXNtPihJLmdldENhbGxlZFZhbHVlKCkpID09IGZhbHNlKTsKLSsgICAg R0JFX0FTU0VSVChpc2E8SW5saW5lQXNtPihJLmdldENhbGxlZE9wZXJhbmQoKSkgPT0gZmFsc2Up OwotICAgICBpZihJLmdldE51bUFyZ09wZXJhbmRzKCkpIEdCRV9BU1NFUlQoSS5oYXNTdHJ1Y3RS ZXRBdHRyKCkgPT0gZmFsc2UpOwotCi0gICAgIC8vIFdlIG9ubHkgc3VwcG9ydCBhIHNtYWxsIG51 bWJlciBvZiBpbnRyaW5zaWNzIHJpZ2h0IG5vdwotQEAgLTM4NzAsNyArMzg3MCw3IEBACi0gICAg ICAgfQotICAgICB9Ci0gICAgIC8vIEdldCB0aGUgbmFtZSBvZiB0aGUgY2FsbGVkIGZ1bmN0aW9u IGFuZCBoYW5kbGUgaXQKLS0gICAgY29uc3Qgc3RkOjpzdHJpbmcgZm5OYW1lID0gQ2FsbGVlLT5z dHJpcFBvaW50ZXJDYXN0cygpLT5nZXROYW1lKCk7Ci0rICAgIGNvbnN0IHN0ZDo6c3RyaW5nIGZu TmFtZSA9IENhbGxlZS0+c3RyaXBQb2ludGVyQ2FzdHMoKS0+Z2V0TmFtZSgpLnN0cigpOwotICAg ICBhdXRvIGdlbkludHJpbnNpY0lEID0gaW50cmluc2ljTWFwLmZpbmQoZm5OYW1lKTsKLSAgICAg c3dpdGNoIChnZW5JbnRyaW5zaWNJRCkgewotICAgICAgIGNhc2UgR0VOX09DTF9HRVRfR1JPVVBf SUQwOgotQEAgLTQxNjYsNyArNDE2Niw3IEBACi0gICAgIH07Ci0gICB9Ci0KLS0gIHZvaWQgR2Vu V3JpdGVyOjplbWl0Um91bmRpbmdDYWxsSW5zdChDYWxsSW5zdCAmSSwgQ2FsbFNpdGUgJkNTLCBp cjo6T3Bjb2RlIG9wY29kZSkgewotKyAgdm9pZCBHZW5Xcml0ZXI6OmVtaXRSb3VuZGluZ0NhbGxJ bnN0KENhbGxJbnN0ICZJLCBpcjo6T3Bjb2RlIG9wY29kZSkgewotICAgICBpZiAoSS5nZXRUeXBl KCktPmlzSGFsZlR5KCkpIHsKLSAgICAgICBjb25zdCBpcjo6UmVnaXN0ZXIgc3JjID0gdGhpcy0+ Z2V0UmVnaXN0ZXIoSS5nZXRPcGVyYW5kKDApKTsKLSAgICAgICBjb25zdCBpcjo6UmVnaXN0ZXIg c3JjRmxvYXQgPSBjdHgucmVnKGlyOjpGQU1JTFlfRFdPUkQpOwotQEAgLTQxNzcsMTQgKzQxNzcs MTQgQEAKLSAgICAgICBjdHguRjMyVE8xNihpcjo6VFlQRV9VMTYsIGlyOjpUWVBFX0ZMT0FULCBk c3QsIGRzdEZsb2F0KTsKLSAgICAgfSBlbHNlIHsKLSAgICAgICBHQkVfQVNTRVJUKEkuZ2V0VHlw ZSgpLT5pc0Zsb2F0VHkoKSk7Ci0tICAgICAgdGhpcy0+ZW1pdFVuYXJ5Q2FsbEluc3QoSSxDUyxv cGNvZGUpOwotKyAgICAgIHRoaXMtPmVtaXRVbmFyeUNhbGxJbnN0KEksb3Bjb2RlKTsKLSAgICAg fQotICAgfQotCi0tICB2b2lkIEdlbldyaXRlcjo6ZW1pdFVuYXJ5Q2FsbEluc3QoQ2FsbEluc3Qg JkksIENhbGxTaXRlICZDUywgaXI6Ok9wY29kZSBvcGNvZGUsIGlyOjpUeXBlIHR5cGUpIHsKLS0g ICAgQ2FsbFNpdGU6OmFyZ19pdGVyYXRvciBBSSA9IENTLmFyZ19iZWdpbigpOwotKyAgdm9pZCBH ZW5Xcml0ZXI6OmVtaXRVbmFyeUNhbGxJbnN0KENhbGxJbnN0ICZJLCBpcjo6T3Bjb2RlIG9wY29k ZSwgaXI6OlR5cGUgdHlwZSkgewotKyAgICBVc2VyOjpvcF9pdGVyYXRvciBBSSA9IEkuYXJnX2Jl Z2luKCk7Ci0gI2lmIEdCRV9ERUJVRwotLSAgICBDYWxsU2l0ZTo6YXJnX2l0ZXJhdG9yIEFFID0g Q1MuYXJnX2VuZCgpOwotKyAgICBVc2VyOjpvcF9pdGVyYXRvciBBRSA9IEkuYXJnX2VuZCgpOwot ICNlbmRpZiAvKiBHQkVfREVCVUcgKi8KLSAgICAgR0JFX0FTU0VSVChBSSAhPSBBRSk7Ci0gICAg IGNvbnN0IGlyOjpSZWdpc3RlciBzcmMgPSB0aGlzLT5nZXRSZWdpc3RlcigqQUkpOwotQEAgLTQy OTMsOSArNDI5Myw5IEBACi0gICAgIHRoaXMtPmVtaXRBdG9taWNJbnN0SGVscGVyKG9wY29kZSwg dHlwZSwgZHN0LCBsbHZtUHRyLCBwYXlsb2FkVHVwbGUpOwotICAgfQotCi0tICB2b2lkIEdlbldy aXRlcjo6ZW1pdEF0b21pY0luc3QoQ2FsbEluc3QgJkksIENhbGxTaXRlICZDUywgaXI6OkF0b21p Y09wcyBvcGNvZGUpIHsKLS0gICAgQ2FsbFNpdGU6OmFyZ19pdGVyYXRvciBBSSA9IENTLmFyZ19i ZWdpbigpOwotLSAgICBDYWxsU2l0ZTo6YXJnX2l0ZXJhdG9yIEFFID0gQ1MuYXJnX2VuZCgpOwot KyAgdm9pZCBHZW5Xcml0ZXI6OmVtaXRBdG9taWNJbnN0KENhbGxJbnN0ICZJLCBpcjo6QXRvbWlj T3BzIG9wY29kZSkgewotKyAgICBVc2VyOjpvcF9pdGVyYXRvciBBSSA9IEkuYXJnX2JlZ2luKCk7 Ci0rICAgIFVzZXI6Om9wX2l0ZXJhdG9yIEFFID0gSS5hcmdfZW5kKCk7Ci0gICAgIEdCRV9BU1NF UlQoQUkgIT0gQUUpOwotICAgICBWYWx1ZSAqbGx2bVB0ciA9ICpBSTsKLSAgICAgaXI6OkFkZHJl c3NTcGFjZSBhZGRyU3BhY2UgPSBhZGRyZXNzU3BhY2VMTFZNVG9HZW4obGx2bVB0ci0+Z2V0VHlw ZSgpLT5nZXRQb2ludGVyQWRkcmVzc1NwYWNlKCkpOwotQEAgLTQzNDgsNyArNDM0OCw3IEBACi0g ICAgIH0KLSAgIH0KLQotLSAgdm9pZCBHZW5Xcml0ZXI6OmVtaXRXb3JrR3JvdXBJbnN0KENhbGxJ bnN0ICZJLCBDYWxsU2l0ZSAmQ1MsIGlyOjpXb3JrR3JvdXBPcHMgb3Bjb2RlKSB7Ci0rICB2b2lk IEdlbldyaXRlcjo6ZW1pdFdvcmtHcm91cEluc3QoQ2FsbEluc3QgJkksIGlyOjpXb3JrR3JvdXBP cHMgb3Bjb2RlKSB7Ci0gICAgIGlyOjpGdW5jdGlvbiAmZiA9IGN0eC5nZXRGdW5jdGlvbigpOwot Ci0gICAgIGlmIChmLmdldHdnQnJvYWRjYXN0U0xNKCkgPCAwICYmIG9wY29kZSA9PSBpcjo6V09S S0dST1VQX09QX0JST0FEQ0FTVCkgewotQEAgLTQzNzgsOCArNDM3OCw4IEBACi0gICAgICAgR0JF X0FTU0VSVChmLmdldHRpZE1hcFNMTSgpID49IDApOwotICAgICB9Ci0KLS0gICAgQ2FsbFNpdGU6 OmFyZ19pdGVyYXRvciBBSSA9IENTLmFyZ19iZWdpbigpOwotLSAgICBDYWxsU2l0ZTo6YXJnX2l0 ZXJhdG9yIEFFID0gQ1MuYXJnX2VuZCgpOwotKyAgICBVc2VyOjpvcF9pdGVyYXRvciBBSSA9IEku YXJnX2JlZ2luKCk7Ci0rICAgIFVzZXI6Om9wX2l0ZXJhdG9yIEFFID0gSS5hcmdfZW5kKCk7Ci0g ICAgIEdCRV9BU1NFUlQoQUkgIT0gQUUpOwotCi0gICAgIGlmIChvcGNvZGUgPT0gaXI6OldPUktH Uk9VUF9PUF9BTEwgfHwgb3Bjb2RlID09IGlyOjpXT1JLR1JPVVBfT1BfQU5ZKSB7Ci1AQCAtNDM5 MSwxNCArNDM5MSwxNCBAQAotICAgICAgIGNvbnN0IGlyOjpUdXBsZSBzcmNUdXBsZSA9IGN0eC5h cnJheVR1cGxlKCZzcmNbMF0sIDMpOwotICAgICAgIGN0eC5XT1JLR1JPVVAob3Bjb2RlLCAodWlu dDMyX3QpZi5nZXR0aWRNYXBTTE0oKSwgZ2V0UmVnaXN0ZXIoJkkpLCBzcmNUdXBsZSwgMywgaXI6 OlRZUEVfUzMyKTsKLSAgICAgfSBlbHNlIGlmIChvcGNvZGUgPT0gaXI6OldPUktHUk9VUF9PUF9C Uk9BRENBU1QpIHsKLS0gICAgICBpbnQgYXJnTnVtID0gQ1MuYXJnX3NpemUoKTsKLSsgICAgICBp bnQgYXJnTnVtID0gSS5hcmdfc2l6ZSgpOwotICAgICAgIHN0ZDo6dmVjdG9yPGlyOjpSZWdpc3Rl cj4gc3JjKGFyZ051bSk7Ci0gICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBhcmdOdW07IGkrKykg ewotICAgICAgICAgc3JjW2ldID0gdGhpcy0+Z2V0UmVnaXN0ZXIoKihBSSsrKSk7Ci0gICAgICAg fQotICAgICAgIGNvbnN0IGlyOjpUdXBsZSBzcmNUdXBsZSA9IGN0eC5hcnJheVR1cGxlKCZzcmNb MF0sIGFyZ051bSk7Ci0gICAgICAgY3R4LldPUktHUk9VUChpcjo6V09SS0dST1VQX09QX0JST0FE Q0FTVCwgKHVpbnQzMl90KWYuZ2V0d2dCcm9hZGNhc3RTTE0oKSwgZ2V0UmVnaXN0ZXIoJkkpLCBz cmNUdXBsZSwgYXJnTnVtLAotLSAgICAgICAgICBnZXRUeXBlKGN0eCwgKCpDUy5hcmdfYmVnaW4o KSktPmdldFR5cGUoKSkpOwotKyAgICAgICAgICBnZXRUeXBlKGN0eCwgKCpJLmFyZ19iZWdpbigp KS0+Z2V0VHlwZSgpKSk7Ci0gICAgIH0gZWxzZSB7Ci0gICAgICAgQ29uc3RhbnRJbnQgKnNpZ24g PSBkeW5fY2FzdDxDb25zdGFudEludD4oQUkpOwotICAgICAgIEdCRV9BU1NFUlQoc2lnbik7Ci1A QCAtNDQyMyw5ICs0NDIzLDkgQEAKLSAgICAgR0JFX0FTU0VSVChBSSA9PSBBRSk7Ci0gICB9Ci0K LS0gIHZvaWQgR2VuV3JpdGVyOjplbWl0U3ViR3JvdXBJbnN0KENhbGxJbnN0ICZJLCBDYWxsU2l0 ZSAmQ1MsIGlyOjpXb3JrR3JvdXBPcHMgb3Bjb2RlKSB7Ci0tICAgIENhbGxTaXRlOjphcmdfaXRl cmF0b3IgQUkgPSBDUy5hcmdfYmVnaW4oKTsKLS0gICAgQ2FsbFNpdGU6OmFyZ19pdGVyYXRvciBB RSA9IENTLmFyZ19lbmQoKTsKLSsgIHZvaWQgR2VuV3JpdGVyOjplbWl0U3ViR3JvdXBJbnN0KENh bGxJbnN0ICZJLCBpcjo6V29ya0dyb3VwT3BzIG9wY29kZSkgewotKyAgICBVc2VyOjpvcF9pdGVy YXRvciBBSSA9IEkuYXJnX2JlZ2luKCk7Ci0rICAgIFVzZXI6Om9wX2l0ZXJhdG9yIEFFID0gSS5h cmdfZW5kKCk7Ci0gICAgIEdCRV9BU1NFUlQoQUkgIT0gQUUpOwotCi0gICAgIGlmIChvcGNvZGUg PT0gaXI6OldPUktHUk9VUF9PUF9BTEwgfHwgb3Bjb2RlID09IGlyOjpXT1JLR1JPVVBfT1BfQU5Z KSB7Ci1AQCAtNDQzNSw3ICs0NDM1LDcgQEAKLSAgICAgICBjb25zdCBpcjo6VHVwbGUgc3JjVHVw bGUgPSBjdHguYXJyYXlUdXBsZSgmc3JjWzBdLCAxKTsKLSAgICAgICBjdHguU1VCR1JPVVAob3Bj b2RlLCBnZXRSZWdpc3RlcigmSSksIHNyY1R1cGxlLCAxLCBpcjo6VFlQRV9TMzIpOwotICAgICB9 IGVsc2UgaWYgKG9wY29kZSA9PSBpcjo6V09SS0dST1VQX09QX0JST0FEQ0FTVCkgewotLSAgICAg IGludCBhcmdOdW0gPSBDUy5hcmdfc2l6ZSgpOwotKyAgICAgIGludCBhcmdOdW0gPSBJLmFyZ19z aXplKCk7Ci0gICAgICAgR0JFX0FTU0VSVChhcmdOdW0gPT0gMik7Ci0gICAgICAgc3RkOjp2ZWN0 b3I8aXI6OlJlZ2lzdGVyPiBzcmMoYXJnTnVtKTsKLSAgICAgICBmb3IgKGludCBpID0gMDsgaSA8 IGFyZ051bTsgaSsrKSB7Ci1AQCAtNDQ0Myw3ICs0NDQzLDcgQEAKLSAgICAgICB9Ci0gICAgICAg Y29uc3QgaXI6OlR1cGxlIHNyY1R1cGxlID0gY3R4LmFycmF5VHVwbGUoJnNyY1swXSwgYXJnTnVt KTsKLSAgICAgICBjdHguU1VCR1JPVVAoaXI6OldPUktHUk9VUF9PUF9CUk9BRENBU1QsIGdldFJl Z2lzdGVyKCZJKSwgc3JjVHVwbGUsIGFyZ051bSwKLS0gICAgICAgICAgZ2V0VHlwZShjdHgsICgq Q1MuYXJnX2JlZ2luKCkpLT5nZXRUeXBlKCkpKTsKLSsgICAgICAgICAgZ2V0VHlwZShjdHgsICgq SS5hcmdfYmVnaW4oKSktPmdldFR5cGUoKSkpOwotICAgICB9IGVsc2UgewotICAgICAgIENvbnN0 YW50SW50ICpzaWduID0gZHluX2Nhc3Q8Q29uc3RhbnRJbnQ+KEFJKTsKLSAgICAgICBHQkVfQVNT RVJUKHNpZ24pOwotQEAgLTQ0NjYsOSArNDQ2Niw5IEBACi0gICAgIEdCRV9BU1NFUlQoQUkgPT0g QUUpOwotICAgfQotCi0tICB2b2lkIEdlbldyaXRlcjo6ZW1pdEJsb2NrUmVhZFdyaXRlTWVtSW5z dChDYWxsSW5zdCAmSSwgQ2FsbFNpdGUgJkNTLCBib29sIGlzV3JpdGUsIHVpbnQ4X3QgdmVjX3Np emUsIGlyOjpUeXBlIHR5cGUpIHsKLS0gICAgQ2FsbFNpdGU6OmFyZ19pdGVyYXRvciBBSSA9IENT LmFyZ19iZWdpbigpOwotLSAgICBDYWxsU2l0ZTo6YXJnX2l0ZXJhdG9yIEFFID0gQ1MuYXJnX2Vu ZCgpOwotKyAgdm9pZCBHZW5Xcml0ZXI6OmVtaXRCbG9ja1JlYWRXcml0ZU1lbUluc3QoQ2FsbElu c3QgJkksIGJvb2wgaXNXcml0ZSwgdWludDhfdCB2ZWNfc2l6ZSwgaXI6OlR5cGUgdHlwZSkgewot KyAgICBVc2VyOjpvcF9pdGVyYXRvciBBSSA9IEkuYXJnX2JlZ2luKCk7Ci0rICAgIFVzZXI6Om9w X2l0ZXJhdG9yIEFFID0gSS5hcmdfZW5kKCk7Ci0gICAgIEdCRV9BU1NFUlQoQUkgIT0gQUUpOwot Ci0gICAgIFZhbHVlICpsbHZtUHRyID0gKihBSSsrKTsKLUBAIC00NTIyLDkgKzQ1MjIsOSBAQAot ICAgICBHQkVfQVNTRVJUKEFJID09IEFFKTsKLSAgIH0KLQotLSAgdm9pZCBHZW5Xcml0ZXI6OmVt aXRCbG9ja1JlYWRXcml0ZUltYWdlSW5zdChDYWxsSW5zdCAmSSwgQ2FsbFNpdGUgJkNTLCBib29s IGlzV3JpdGUsIHVpbnQ4X3QgdmVjX3NpemUsIGlyOjpUeXBlIHR5cGUpIHsKLS0gICAgQ2FsbFNp dGU6OmFyZ19pdGVyYXRvciBBSSA9IENTLmFyZ19iZWdpbigpOwotLSAgICBDYWxsU2l0ZTo6YXJn X2l0ZXJhdG9yIEFFID0gQ1MuYXJnX2VuZCgpOwotKyAgdm9pZCBHZW5Xcml0ZXI6OmVtaXRCbG9j a1JlYWRXcml0ZUltYWdlSW5zdChDYWxsSW5zdCAmSSwgYm9vbCBpc1dyaXRlLCB1aW50OF90IHZl Y19zaXplLCBpcjo6VHlwZSB0eXBlKSB7Ci0rICAgIFVzZXI6Om9wX2l0ZXJhdG9yIEFJID0gSS5h cmdfYmVnaW4oKTsKLSsgICAgVXNlcjo6b3BfaXRlcmF0b3IgQUUgPSBJLmFyZ19lbmQoKTsKLSAg ICAgR0JFX0FTU0VSVChBSSAhPSBBRSk7Ci0KLSAgICAgY29uc3QgdWludDhfdCBpbWFnZUlEID0g Z2V0SW1hZ2VJRChJKTsKLUBAIC00NTU3LDcgKzQ1NTcsNyBAQAotCi0gICAvKiBhcHBlbmQgYSBu ZXcgc2FtcGxlci4gc2hvdWxkIGJlIGNhbGxlZCBiZWZvcmUgYW55IHJlZmVyZW5jZSB0bwotICAg ICogYSBzYW1wbGVyX3QgdmFsdWUuICovCi0tICB1aW50OF90IEdlbldyaXRlcjo6YXBwZW5kU2Ft cGxlcihDYWxsU2l0ZTo6YXJnX2l0ZXJhdG9yIEFJKSB7Ci0rICB1aW50OF90IEdlbldyaXRlcjo6 YXBwZW5kU2FtcGxlcihVc2VyOjpvcF9pdGVyYXRvciBBSSkgewotICNpZiBMTFZNX1ZFUlNJT05f TUFKT1IgKiAxMCArIExMVk1fVkVSU0lPTl9NSU5PUiA+PSA0MAotICAgICBDYWxsSW5zdCAqVEMg PSBkeW5fY2FzdDxDYWxsSW5zdD4oKkFJKTsKLSAgICAgQ29uc3RhbnQgKkNQViA9IFRDID8gZHlu X2Nhc3Q8Q29uc3RhbnQ+KFRDLT5nZXRPcGVyYW5kKDApKSA6IE5VTEw7Ci1AQCAtNDU5NSwxMCAr NDU5NSw5IEBACi0gICAgICAgICBjb25zdCBpcjo6RnVuY3Rpb24gJmZuID0gY3R4LmdldEZ1bmN0 aW9uKCk7Ci0KLSAgICAgICAgIC8vIEdldCB0aGUgZnVuY3Rpb24gYXJndW1lbnRzCi0tICAgICAg ICBDYWxsU2l0ZSBDUygmSSk7Ci0tICAgICAgICBDYWxsU2l0ZTo6YXJnX2l0ZXJhdG9yIEFJID0g Q1MuYXJnX2JlZ2luKCk7Ci0rICAgICAgICBVc2VyOjpvcF9pdGVyYXRvciBBSSA9IEkuYXJnX2Jl Z2luKCk7Ci0gI2lmIEdCRV9ERUJVRwotLSAgICAgICAgQ2FsbFNpdGU6OmFyZ19pdGVyYXRvciBB RSA9IENTLmFyZ19lbmQoKTsKLSsgICAgICAgIFVzZXI6Om9wX2l0ZXJhdG9yIEFFID0gSS5hcmdf ZW5kKCk7Ci0gI2VuZGlmIC8qIEdCRV9ERUJVRyAqLwotICAgICAgICAgc3dpdGNoIChGLT5nZXRJ bnRyaW5zaWNJRCgpKSB7Ci0gICAgICAgICAgIGNhc2UgSW50cmluc2ljOjpzdGFja3NhdmU6Ci1A QCAtNDc2NCwxNyArNDc2MywxNyBAQAotICAgICAgICAgICAgIGN0eC5NQUQoc3JjVHlwZSwgZHN0 LCBzcmMwLCBzcmMxLCBzcmMyKTsKLSAgICAgICAgICAgfQotICAgICAgICAgICBicmVhazsKLS0g ICAgICAgICAgY2FzZSBJbnRyaW5zaWM6OnNxcnQ6IHRoaXMtPmVtaXRVbmFyeUNhbGxJbnN0KEks Q1MsaXI6Ok9QX1NRUik7IGJyZWFrOwotLSAgICAgICAgICBjYXNlIEludHJpbnNpYzo6Y2VpbDog dGhpcy0+ZW1pdFJvdW5kaW5nQ2FsbEluc3QoSSxDUyxpcjo6T1BfUk5EVSk7IGJyZWFrOwotLSAg ICAgICAgICBjYXNlIEludHJpbnNpYzo6dHJ1bmM6IHRoaXMtPmVtaXRSb3VuZGluZ0NhbGxJbnN0 KEksQ1MsaXI6Ok9QX1JORFopOyBicmVhazsKLS0gICAgICAgICAgY2FzZSBJbnRyaW5zaWM6OnJp bnQ6IHRoaXMtPmVtaXRSb3VuZGluZ0NhbGxJbnN0KEksQ1MsaXI6Ok9QX1JOREUpOyBicmVhazsK LS0gICAgICAgICAgY2FzZSBJbnRyaW5zaWM6OmZsb29yOiB0aGlzLT5lbWl0Um91bmRpbmdDYWxs SW5zdChJLENTLGlyOjpPUF9STkREKTsgYnJlYWs7Ci0tICAgICAgICAgIGNhc2UgSW50cmluc2lj OjpzaW46IHRoaXMtPmVtaXRVbmFyeUNhbGxJbnN0KEksQ1MsaXI6Ok9QX1NJTik7IGJyZWFrOwot LSAgICAgICAgICBjYXNlIEludHJpbnNpYzo6Y29zOiB0aGlzLT5lbWl0VW5hcnlDYWxsSW5zdChJ LENTLGlyOjpPUF9DT1MpOyBicmVhazsKLS0gICAgICAgICAgY2FzZSBJbnRyaW5zaWM6OmxvZzI6 IHRoaXMtPmVtaXRVbmFyeUNhbGxJbnN0KEksQ1MsaXI6Ok9QX0xPRyk7IGJyZWFrOwotLSAgICAg ICAgICBjYXNlIEludHJpbnNpYzo6ZXhwMjogdGhpcy0+ZW1pdFVuYXJ5Q2FsbEluc3QoSSxDUyxp cjo6T1BfRVhQKTsgYnJlYWs7Ci0rICAgICAgICAgIGNhc2UgSW50cmluc2ljOjpzcXJ0OiB0aGlz LT5lbWl0VW5hcnlDYWxsSW5zdChJLGlyOjpPUF9TUVIpOyBicmVhazsKLSsgICAgICAgICAgY2Fz ZSBJbnRyaW5zaWM6OmNlaWw6IHRoaXMtPmVtaXRSb3VuZGluZ0NhbGxJbnN0KEksaXI6Ok9QX1JO RFUpOyBicmVhazsKLSsgICAgICAgICAgY2FzZSBJbnRyaW5zaWM6OnRydW5jOiB0aGlzLT5lbWl0 Um91bmRpbmdDYWxsSW5zdChJLGlyOjpPUF9STkRaKTsgYnJlYWs7Ci0rICAgICAgICAgIGNhc2Ug SW50cmluc2ljOjpyaW50OiB0aGlzLT5lbWl0Um91bmRpbmdDYWxsSW5zdChJLGlyOjpPUF9STkRF KTsgYnJlYWs7Ci0rICAgICAgICAgIGNhc2UgSW50cmluc2ljOjpmbG9vcjogdGhpcy0+ZW1pdFJv dW5kaW5nQ2FsbEluc3QoSSxpcjo6T1BfUk5ERCk7IGJyZWFrOwotKyAgICAgICAgICBjYXNlIElu dHJpbnNpYzo6c2luOiB0aGlzLT5lbWl0VW5hcnlDYWxsSW5zdChJLGlyOjpPUF9TSU4pOyBicmVh azsKLSsgICAgICAgICAgY2FzZSBJbnRyaW5zaWM6OmNvczogdGhpcy0+ZW1pdFVuYXJ5Q2FsbElu c3QoSSxpcjo6T1BfQ09TKTsgYnJlYWs7Ci0rICAgICAgICAgIGNhc2UgSW50cmluc2ljOjpsb2cy OiB0aGlzLT5lbWl0VW5hcnlDYWxsSW5zdChJLGlyOjpPUF9MT0cpOyBicmVhazsKLSsgICAgICAg ICAgY2FzZSBJbnRyaW5zaWM6OmV4cDI6IHRoaXMtPmVtaXRVbmFyeUNhbGxJbnN0KEksaXI6Ok9Q X0VYUCk7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEludHJpbnNpYzo6YnN3YXA6Ci0tICAgICAg ICAgICAgdGhpcy0+ZW1pdFVuYXJ5Q2FsbEluc3QoSSxDUyxpcjo6T1BfQlNXQVAsIGdldFVuc2ln bmVkVHlwZShjdHgsIEkuZ2V0VHlwZSgpKSk7IGJyZWFrOwotKyAgICAgICAgICAgIHRoaXMtPmVt aXRVbmFyeUNhbGxJbnN0KEksaXI6Ok9QX0JTV0FQLCBnZXRVbnNpZ25lZFR5cGUoY3R4LCBJLmdl dFR5cGUoKSkpOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBJbnRyaW5zaWM6OnBvdzoKLSAgICAg ICAgICAgewotICAgICAgICAgICAgIGNvbnN0IGlyOjpSZWdpc3RlciBzcmMwID0gdGhpcy0+Z2V0 UmVnaXN0ZXIoKkFJKTsgKytBSTsKLUBAIC00Nzk0LDIxICs0NzkzLDIwIEBACi0gICAgICAgICB9 Ci0gICAgICAgfSBlbHNlIHsKLSAgICAgICAgIC8vIEdldCB0aGUgbmFtZSBvZiB0aGUgY2FsbGVk IGZ1bmN0aW9uIGFuZCBoYW5kbGUgaXQKLS0gICAgICAgIFZhbHVlICpDYWxsZWUgPSBJLmdldENh bGxlZFZhbHVlKCk7Ci0tICAgICAgICBjb25zdCBzdGQ6OnN0cmluZyBmbk5hbWUgPSBDYWxsZWUt PnN0cmlwUG9pbnRlckNhc3RzKCktPmdldE5hbWUoKTsKLSsgICAgICAgIFZhbHVlICpDYWxsZWUg PSBJLmdldENhbGxlZE9wZXJhbmQoKTsKLSsgICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nIGZuTmFt ZSA9IENhbGxlZS0+c3RyaXBQb2ludGVyQ2FzdHMoKS0+Z2V0TmFtZSgpLnN0cigpOwotICAgICAg ICAgYXV0byBnZW5JbnRyaW5zaWNJRCA9IGludHJpbnNpY01hcC5maW5kKGZuTmFtZSk7Ci0KLSAg ICAgICAgIC8vIEdldCB0aGUgZnVuY3Rpb24gYXJndW1lbnRzCi0tICAgICAgICBDYWxsU2l0ZSBD UygmSSk7Ci0tICAgICAgICBDYWxsU2l0ZTo6YXJnX2l0ZXJhdG9yIEFJID0gQ1MuYXJnX2JlZ2lu KCk7Ci0rICAgICAgICBVc2VyOjpvcF9pdGVyYXRvciBBSSA9IEkuYXJnX2JlZ2luKCk7Ci0gI2lm IEdCRV9ERUJVRwotLSAgICAgICAgQ2FsbFNpdGU6OmFyZ19pdGVyYXRvciBBRSA9IENTLmFyZ19l bmQoKTsKLSsgICAgICAgIFVzZXI6Om9wX2l0ZXJhdG9yIEFFID0gSS5hcmdfZW5kKCk7Ci0gI2Vu ZGlmIC8qIEdCRV9ERUJVRyAqLwotCi0gICAgICAgICBzd2l0Y2ggKGdlbkludHJpbnNpY0lEKSB7 Ci0tICAgICAgICAgIGNhc2UgR0VOX09DTF9GQkg6IHRoaXMtPmVtaXRVbmFyeUNhbGxJbnN0KEks Q1MsaXI6Ok9QX0ZCSCwgaXI6OlRZUEVfVTMyKTsgYnJlYWs7Ci0tICAgICAgICAgIGNhc2UgR0VO X09DTF9GQkw6IHRoaXMtPmVtaXRVbmFyeUNhbGxJbnN0KEksQ1MsaXI6Ok9QX0ZCTCwgaXI6OlRZ UEVfVTMyKTsgYnJlYWs7Ci0tICAgICAgICAgIGNhc2UgR0VOX09DTF9DQklUOiB0aGlzLT5lbWl0 VW5hcnlDYWxsSW5zdChJLENTLGlyOjpPUF9DQklULCBnZXRVbnNpZ25lZFR5cGUoY3R4LCAoKkFJ KS0+Z2V0VHlwZSgpKSk7IGJyZWFrOwotKyAgICAgICAgICBjYXNlIEdFTl9PQ0xfRkJIOiB0aGlz LT5lbWl0VW5hcnlDYWxsSW5zdChJLGlyOjpPUF9GQkgsIGlyOjpUWVBFX1UzMik7IGJyZWFrOwot KyAgICAgICAgICBjYXNlIEdFTl9PQ0xfRkJMOiB0aGlzLT5lbWl0VW5hcnlDYWxsSW5zdChJLGly OjpPUF9GQkwsIGlyOjpUWVBFX1UzMik7IGJyZWFrOwotKyAgICAgICAgICBjYXNlIEdFTl9PQ0xf Q0JJVDogdGhpcy0+ZW1pdFVuYXJ5Q2FsbEluc3QoSSxpcjo6T1BfQ0JJVCwgZ2V0VW5zaWduZWRU eXBlKGN0eCwgKCpBSSktPmdldFR5cGUoKSkpOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5f T0NMX0FCUzoKLSAgICAgICAgICAgewotICAgICAgICAgICAgIGNvbnN0IGlyOjpSZWdpc3RlciBz cmMgPSB0aGlzLT5nZXRSZWdpc3RlcigqQUkpOwotQEAgLTQ5MTUsOCArNDkxMyw4IEBACi0gICAg ICAgICAgICAgY3R4LlJFR0lPTihkc3QsIHNyYywgeC5nZXRJbnRlZ2VyVmFsdWUoKSk7Ci0gICAg ICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgIH0KLS0gICAgICAgICAgY2FzZSBHRU5fT0NMX1JT UTogdGhpcy0+ZW1pdFVuYXJ5Q2FsbEluc3QoSSxDUyxpcjo6T1BfUlNRKTsgYnJlYWs7Ci0tICAg ICAgICAgIGNhc2UgR0VOX09DTF9SQ1A6IHRoaXMtPmVtaXRVbmFyeUNhbGxJbnN0KEksQ1MsaXI6 Ok9QX1JDUCk7IGJyZWFrOwotKyAgICAgICAgICBjYXNlIEdFTl9PQ0xfUlNROiB0aGlzLT5lbWl0 VW5hcnlDYWxsSW5zdChJLGlyOjpPUF9SU1EpOyBicmVhazsKLSsgICAgICAgICAgY2FzZSBHRU5f T0NMX1JDUDogdGhpcy0+ZW1pdFVuYXJ5Q2FsbEluc3QoSSxpcjo6T1BfUkNQKTsgYnJlYWs7Ci0g ICAgICAgICAgIGNhc2UgR0VOX09DTF9GT1JDRV9TSU1EODogY3R4LnNldFNpbWRXaWR0aCg4KTsg YnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9GT1JDRV9TSU1EMTY6IGN0eC5zZXRTaW1k V2lkdGgoMTYpOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX0xCQVJSSUVSOiBjdHgu U1lOQyhpcjo6c3luY0xvY2FsQmFycmllcik7IGJyZWFrOwotQEAgLTQ5NDcsMzEgKzQ5NDUsMzEg QEAKLSAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgfQotICAgICAgICAgICBjYXNlIEdF Tl9PQ0xfQVRPTUlDX0FERDA6Ci0tICAgICAgICAgIGNhc2UgR0VOX09DTF9BVE9NSUNfQUREMTog dGhpcy0+ZW1pdEF0b21pY0luc3QoSSxDUyxpcjo6QVRPTUlDX09QX0FERCk7IGJyZWFrOwotKyAg ICAgICAgICBjYXNlIEdFTl9PQ0xfQVRPTUlDX0FERDE6IHRoaXMtPmVtaXRBdG9taWNJbnN0KEks aXI6OkFUT01JQ19PUF9BREQpOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX0FUT01J Q19TVUIwOgotLSAgICAgICAgICBjYXNlIEdFTl9PQ0xfQVRPTUlDX1NVQjE6IHRoaXMtPmVtaXRB dG9taWNJbnN0KEksQ1MsaXI6OkFUT01JQ19PUF9TVUIpOyBicmVhazsKLSsgICAgICAgICAgY2Fz ZSBHRU5fT0NMX0FUT01JQ19TVUIxOiB0aGlzLT5lbWl0QXRvbWljSW5zdChJLGlyOjpBVE9NSUNf T1BfU1VCKTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9BVE9NSUNfQU5EMDoKLS0g ICAgICAgICAgY2FzZSBHRU5fT0NMX0FUT01JQ19BTkQxOiB0aGlzLT5lbWl0QXRvbWljSW5zdChJ LENTLGlyOjpBVE9NSUNfT1BfQU5EKTsgYnJlYWs7Ci0rICAgICAgICAgIGNhc2UgR0VOX09DTF9B VE9NSUNfQU5EMTogdGhpcy0+ZW1pdEF0b21pY0luc3QoSSxpcjo6QVRPTUlDX09QX0FORCk7IGJy ZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfQVRPTUlDX09SMDoKLS0gICAgICAgICAgY2Fz ZSBHRU5fT0NMX0FUT01JQ19PUjE6IHRoaXMtPmVtaXRBdG9taWNJbnN0KEksQ1MsaXI6OkFUT01J Q19PUF9PUik7IGJyZWFrOwotKyAgICAgICAgICBjYXNlIEdFTl9PQ0xfQVRPTUlDX09SMTogdGhp cy0+ZW1pdEF0b21pY0luc3QoSSxpcjo6QVRPTUlDX09QX09SKTsgYnJlYWs7Ci0gICAgICAgICAg IGNhc2UgR0VOX09DTF9BVE9NSUNfWE9SMDoKLS0gICAgICAgICAgY2FzZSBHRU5fT0NMX0FUT01J Q19YT1IxOiB0aGlzLT5lbWl0QXRvbWljSW5zdChJLENTLGlyOjpBVE9NSUNfT1BfWE9SKTsgYnJl YWs7Ci0rICAgICAgICAgIGNhc2UgR0VOX09DTF9BVE9NSUNfWE9SMTogdGhpcy0+ZW1pdEF0b21p Y0luc3QoSSxpcjo6QVRPTUlDX09QX1hPUik7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9P Q0xfQVRPTUlDX1hDSEcwOgotLSAgICAgICAgICBjYXNlIEdFTl9PQ0xfQVRPTUlDX1hDSEcxOiB0 aGlzLT5lbWl0QXRvbWljSW5zdChJLENTLGlyOjpBVE9NSUNfT1BfWENIRyk7IGJyZWFrOwotKyAg ICAgICAgICBjYXNlIEdFTl9PQ0xfQVRPTUlDX1hDSEcxOiB0aGlzLT5lbWl0QXRvbWljSW5zdChJ LGlyOjpBVE9NSUNfT1BfWENIRyk7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfQVRP TUlDX0lOQzA6Ci0tICAgICAgICAgIGNhc2UgR0VOX09DTF9BVE9NSUNfSU5DMTogdGhpcy0+ZW1p dEF0b21pY0luc3QoSSxDUyxpcjo6QVRPTUlDX09QX0lOQyk7IGJyZWFrOwotKyAgICAgICAgICBj YXNlIEdFTl9PQ0xfQVRPTUlDX0lOQzE6IHRoaXMtPmVtaXRBdG9taWNJbnN0KEksaXI6OkFUT01J Q19PUF9JTkMpOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX0FUT01JQ19ERUMwOgot LSAgICAgICAgICBjYXNlIEdFTl9PQ0xfQVRPTUlDX0RFQzE6IHRoaXMtPmVtaXRBdG9taWNJbnN0 KEksQ1MsaXI6OkFUT01JQ19PUF9ERUMpOyBicmVhazsKLSsgICAgICAgICAgY2FzZSBHRU5fT0NM X0FUT01JQ19ERUMxOiB0aGlzLT5lbWl0QXRvbWljSW5zdChJLGlyOjpBVE9NSUNfT1BfREVDKTsg YnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9BVE9NSUNfVU1JTjA6Ci0tICAgICAgICAg IGNhc2UgR0VOX09DTF9BVE9NSUNfVU1JTjE6IHRoaXMtPmVtaXRBdG9taWNJbnN0KEksQ1MsaXI6 OkFUT01JQ19PUF9VTUlOKTsgYnJlYWs7Ci0rICAgICAgICAgIGNhc2UgR0VOX09DTF9BVE9NSUNf VU1JTjE6IHRoaXMtPmVtaXRBdG9taWNJbnN0KEksaXI6OkFUT01JQ19PUF9VTUlOKTsgYnJlYWs7 Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9BVE9NSUNfVU1BWDA6Ci0tICAgICAgICAgIGNhc2Ug R0VOX09DTF9BVE9NSUNfVU1BWDE6IHRoaXMtPmVtaXRBdG9taWNJbnN0KEksQ1MsaXI6OkFUT01J Q19PUF9VTUFYKTsgYnJlYWs7Ci0rICAgICAgICAgIGNhc2UgR0VOX09DTF9BVE9NSUNfVU1BWDE6 IHRoaXMtPmVtaXRBdG9taWNJbnN0KEksaXI6OkFUT01JQ19PUF9VTUFYKTsgYnJlYWs7Ci0gICAg ICAgICAgIGNhc2UgR0VOX09DTF9BVE9NSUNfSU1JTjA6Ci0tICAgICAgICAgIGNhc2UgR0VOX09D TF9BVE9NSUNfSU1JTjE6IHRoaXMtPmVtaXRBdG9taWNJbnN0KEksQ1MsaXI6OkFUT01JQ19PUF9J TUlOKTsgYnJlYWs7Ci0rICAgICAgICAgIGNhc2UgR0VOX09DTF9BVE9NSUNfSU1JTjE6IHRoaXMt PmVtaXRBdG9taWNJbnN0KEksaXI6OkFUT01JQ19PUF9JTUlOKTsgYnJlYWs7Ci0gICAgICAgICAg IGNhc2UgR0VOX09DTF9BVE9NSUNfSU1BWDA6Ci0tICAgICAgICAgIGNhc2UgR0VOX09DTF9BVE9N SUNfSU1BWDE6IHRoaXMtPmVtaXRBdG9taWNJbnN0KEksQ1MsaXI6OkFUT01JQ19PUF9JTUFYKTsg YnJlYWs7Ci0rICAgICAgICAgIGNhc2UgR0VOX09DTF9BVE9NSUNfSU1BWDE6IHRoaXMtPmVtaXRB dG9taWNJbnN0KEksaXI6OkFUT01JQ19PUF9JTUFYKTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2Ug R0VOX09DTF9BVE9NSUNfQ01QWENIRzA6Ci0tICAgICAgICAgIGNhc2UgR0VOX09DTF9BVE9NSUNf Q01QWENIRzE6IHRoaXMtPmVtaXRBdG9taWNJbnN0KEksQ1MsaXI6OkFUT01JQ19PUF9DTVBYQ0hH KTsgYnJlYWs7Ci0rICAgICAgICAgIGNhc2UgR0VOX09DTF9BVE9NSUNfQ01QWENIRzE6IHRoaXMt PmVtaXRBdG9taWNJbnN0KEksaXI6OkFUT01JQ19PUF9DTVBYQ0hHKTsgYnJlYWs7Ci0gICAgICAg ICAgIGNhc2UgR0VOX09DTF9HRVRfSU1BR0VfV0lEVEg6Ci0gICAgICAgICAgIGNhc2UgR0VOX09D TF9HRVRfSU1BR0VfSEVJR0hUOgotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfR0VUX0lNQUdFX0RF UFRIOgotQEAgLTU0MjksNDggKzU0MjcsNDggQEAKLSAgICAgICAgICAgICBjdHguV0FJVCgpOwot ICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICB9Ci0tICAgICAgICAgIGNhc2UgR0VOX09D TF9XT1JLX0dST1VQX0FMTDogdGhpcy0+ZW1pdFdvcmtHcm91cEluc3QoSSwgQ1MsIGlyOjpXT1JL R1JPVVBfT1BfQUxMKTsgYnJlYWs7Ci0tICAgICAgICAgIGNhc2UgR0VOX09DTF9XT1JLX0dST1VQ X0FOWTogdGhpcy0+ZW1pdFdvcmtHcm91cEluc3QoSSwgQ1MsIGlyOjpXT1JLR1JPVVBfT1BfQU5Z KTsgYnJlYWs7Ci0rICAgICAgICAgIGNhc2UgR0VOX09DTF9XT1JLX0dST1VQX0FMTDogdGhpcy0+ ZW1pdFdvcmtHcm91cEluc3QoSSwgaXI6OldPUktHUk9VUF9PUF9BTEwpOyBicmVhazsKLSsgICAg ICAgICAgY2FzZSBHRU5fT0NMX1dPUktfR1JPVVBfQU5ZOiB0aGlzLT5lbWl0V29ya0dyb3VwSW5z dChJLCBpcjo6V09SS0dST1VQX09QX0FOWSk7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9P Q0xfV09SS19HUk9VUF9CUk9BRENBU1Q6Ci0tICAgICAgICAgICAgdGhpcy0+ZW1pdFdvcmtHcm91 cEluc3QoSSwgQ1MsIGlyOjpXT1JLR1JPVVBfT1BfQlJPQURDQVNUKTsgYnJlYWs7Ci0rICAgICAg ICAgICAgdGhpcy0+ZW1pdFdvcmtHcm91cEluc3QoSSwgaXI6OldPUktHUk9VUF9PUF9CUk9BRENB U1QpOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX1dPUktfR1JPVVBfUkVEVUNFX0FE RDoKLS0gICAgICAgICAgICB0aGlzLT5lbWl0V29ya0dyb3VwSW5zdChJLCBDUywgaXI6OldPUktH Uk9VUF9PUF9SRURVQ0VfQUREKTsgYnJlYWs7Ci0rICAgICAgICAgICAgdGhpcy0+ZW1pdFdvcmtH cm91cEluc3QoSSwgaXI6OldPUktHUk9VUF9PUF9SRURVQ0VfQUREKTsgYnJlYWs7Ci0gICAgICAg ICAgIGNhc2UgR0VOX09DTF9XT1JLX0dST1VQX1JFRFVDRV9NQVg6Ci0tICAgICAgICAgICAgdGhp cy0+ZW1pdFdvcmtHcm91cEluc3QoSSwgQ1MsIGlyOjpXT1JLR1JPVVBfT1BfUkVEVUNFX01BWCk7 IGJyZWFrOwotKyAgICAgICAgICAgIHRoaXMtPmVtaXRXb3JrR3JvdXBJbnN0KEksIGlyOjpXT1JL R1JPVVBfT1BfUkVEVUNFX01BWCk7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfV09S S19HUk9VUF9SRURVQ0VfTUlOOgotLSAgICAgICAgICAgIHRoaXMtPmVtaXRXb3JrR3JvdXBJbnN0 KEksIENTLCBpcjo6V09SS0dST1VQX09QX1JFRFVDRV9NSU4pOyBicmVhazsKLSsgICAgICAgICAg ICB0aGlzLT5lbWl0V29ya0dyb3VwSW5zdChJLCBpcjo6V09SS0dST1VQX09QX1JFRFVDRV9NSU4p OyBicmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX1dPUktfR1JPVVBfU0NBTl9FWENMVVNJ VkVfQUREOgotLSAgICAgICAgICAgIHRoaXMtPmVtaXRXb3JrR3JvdXBJbnN0KEksIENTLCBpcjo6 V09SS0dST1VQX09QX0VYQ0xVU0lWRV9BREQpOyBicmVhazsKLSsgICAgICAgICAgICB0aGlzLT5l bWl0V29ya0dyb3VwSW5zdChJLCBpcjo6V09SS0dST1VQX09QX0VYQ0xVU0lWRV9BREQpOyBicmVh azsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX1dPUktfR1JPVVBfU0NBTl9FWENMVVNJVkVfTUFY OgotLSAgICAgICAgICAgIHRoaXMtPmVtaXRXb3JrR3JvdXBJbnN0KEksIENTLCBpcjo6V09SS0dS T1VQX09QX0VYQ0xVU0lWRV9NQVgpOyBicmVhazsKLSsgICAgICAgICAgICB0aGlzLT5lbWl0V29y a0dyb3VwSW5zdChJLCBpcjo6V09SS0dST1VQX09QX0VYQ0xVU0lWRV9NQVgpOyBicmVhazsKLSAg ICAgICAgICAgY2FzZSBHRU5fT0NMX1dPUktfR1JPVVBfU0NBTl9FWENMVVNJVkVfTUlOOgotLSAg ICAgICAgICAgIHRoaXMtPmVtaXRXb3JrR3JvdXBJbnN0KEksIENTLCBpcjo6V09SS0dST1VQX09Q X0VYQ0xVU0lWRV9NSU4pOyBicmVhazsKLSsgICAgICAgICAgICB0aGlzLT5lbWl0V29ya0dyb3Vw SW5zdChJLCBpcjo6V09SS0dST1VQX09QX0VYQ0xVU0lWRV9NSU4pOyBicmVhazsKLSAgICAgICAg ICAgY2FzZSBHRU5fT0NMX1dPUktfR1JPVVBfU0NBTl9JTkNMVVNJVkVfQUREOgotLSAgICAgICAg ICAgIHRoaXMtPmVtaXRXb3JrR3JvdXBJbnN0KEksIENTLCBpcjo6V09SS0dST1VQX09QX0lOQ0xV U0lWRV9BREQpOyBicmVhazsKLSsgICAgICAgICAgICB0aGlzLT5lbWl0V29ya0dyb3VwSW5zdChJ LCBpcjo6V09SS0dST1VQX09QX0lOQ0xVU0lWRV9BREQpOyBicmVhazsKLSAgICAgICAgICAgY2Fz ZSBHRU5fT0NMX1dPUktfR1JPVVBfU0NBTl9JTkNMVVNJVkVfTUFYOgotLSAgICAgICAgICAgIHRo aXMtPmVtaXRXb3JrR3JvdXBJbnN0KEksIENTLCBpcjo6V09SS0dST1VQX09QX0lOQ0xVU0lWRV9N QVgpOyBicmVhazsKLSsgICAgICAgICAgICB0aGlzLT5lbWl0V29ya0dyb3VwSW5zdChJLCBpcjo6 V09SS0dST1VQX09QX0lOQ0xVU0lWRV9NQVgpOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5f T0NMX1dPUktfR1JPVVBfU0NBTl9JTkNMVVNJVkVfTUlOOgotLSAgICAgICAgICAgIHRoaXMtPmVt aXRXb3JrR3JvdXBJbnN0KEksIENTLCBpcjo6V09SS0dST1VQX09QX0lOQ0xVU0lWRV9NSU4pOyBi cmVhazsKLSsgICAgICAgICAgICB0aGlzLT5lbWl0V29ya0dyb3VwSW5zdChJLCBpcjo6V09SS0dS T1VQX09QX0lOQ0xVU0lWRV9NSU4pOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX1NV Ql9HUk9VUF9CUk9BRENBU1Q6Ci0tICAgICAgICAgICAgdGhpcy0+ZW1pdFN1Ykdyb3VwSW5zdChJ LCBDUywgaXI6OldPUktHUk9VUF9PUF9CUk9BRENBU1QpOyBicmVhazsKLSsgICAgICAgICAgICB0 aGlzLT5lbWl0U3ViR3JvdXBJbnN0KEksIGlyOjpXT1JLR1JPVVBfT1BfQlJPQURDQVNUKTsgYnJl YWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9TVUJfR1JPVVBfUkVEVUNFX0FERDoKLS0gICAg ICAgICAgICB0aGlzLT5lbWl0U3ViR3JvdXBJbnN0KEksIENTLCBpcjo6V09SS0dST1VQX09QX1JF RFVDRV9BREQpOyBicmVhazsKLSsgICAgICAgICAgICB0aGlzLT5lbWl0U3ViR3JvdXBJbnN0KEks IGlyOjpXT1JLR1JPVVBfT1BfUkVEVUNFX0FERCk7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdF Tl9PQ0xfU1VCX0dST1VQX1JFRFVDRV9NQVg6Ci0tICAgICAgICAgICAgdGhpcy0+ZW1pdFN1Ykdy b3VwSW5zdChJLCBDUywgaXI6OldPUktHUk9VUF9PUF9SRURVQ0VfTUFYKTsgYnJlYWs7Ci0rICAg ICAgICAgICAgdGhpcy0+ZW1pdFN1Ykdyb3VwSW5zdChJLCBpcjo6V09SS0dST1VQX09QX1JFRFVD RV9NQVgpOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX1NVQl9HUk9VUF9SRURVQ0Vf TUlOOgotLSAgICAgICAgICAgIHRoaXMtPmVtaXRTdWJHcm91cEluc3QoSSwgQ1MsIGlyOjpXT1JL R1JPVVBfT1BfUkVEVUNFX01JTik7IGJyZWFrOwotKyAgICAgICAgICAgIHRoaXMtPmVtaXRTdWJH cm91cEluc3QoSSwgaXI6OldPUktHUk9VUF9PUF9SRURVQ0VfTUlOKTsgYnJlYWs7Ci0gICAgICAg ICAgIGNhc2UgR0VOX09DTF9TVUJfR1JPVVBfU0NBTl9FWENMVVNJVkVfQUREOgotLSAgICAgICAg ICAgIHRoaXMtPmVtaXRTdWJHcm91cEluc3QoSSwgQ1MsIGlyOjpXT1JLR1JPVVBfT1BfRVhDTFVT SVZFX0FERCk7IGJyZWFrOwotKyAgICAgICAgICAgIHRoaXMtPmVtaXRTdWJHcm91cEluc3QoSSwg aXI6OldPUktHUk9VUF9PUF9FWENMVVNJVkVfQUREKTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2Ug R0VOX09DTF9TVUJfR1JPVVBfU0NBTl9FWENMVVNJVkVfTUFYOgotLSAgICAgICAgICAgIHRoaXMt PmVtaXRTdWJHcm91cEluc3QoSSwgQ1MsIGlyOjpXT1JLR1JPVVBfT1BfRVhDTFVTSVZFX01BWCk7 IGJyZWFrOwotKyAgICAgICAgICAgIHRoaXMtPmVtaXRTdWJHcm91cEluc3QoSSwgaXI6OldPUktH Uk9VUF9PUF9FWENMVVNJVkVfTUFYKTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9T VUJfR1JPVVBfU0NBTl9FWENMVVNJVkVfTUlOOgotLSAgICAgICAgICAgIHRoaXMtPmVtaXRTdWJH cm91cEluc3QoSSwgQ1MsIGlyOjpXT1JLR1JPVVBfT1BfRVhDTFVTSVZFX01JTik7IGJyZWFrOwot KyAgICAgICAgICAgIHRoaXMtPmVtaXRTdWJHcm91cEluc3QoSSwgaXI6OldPUktHUk9VUF9PUF9F WENMVVNJVkVfTUlOKTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9TVUJfR1JPVVBf U0NBTl9JTkNMVVNJVkVfQUREOgotLSAgICAgICAgICAgIHRoaXMtPmVtaXRTdWJHcm91cEluc3Qo SSwgQ1MsIGlyOjpXT1JLR1JPVVBfT1BfSU5DTFVTSVZFX0FERCk7IGJyZWFrOwotKyAgICAgICAg ICAgIHRoaXMtPmVtaXRTdWJHcm91cEluc3QoSSwgaXI6OldPUktHUk9VUF9PUF9JTkNMVVNJVkVf QUREKTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9TVUJfR1JPVVBfU0NBTl9JTkNM VVNJVkVfTUFYOgotLSAgICAgICAgICAgIHRoaXMtPmVtaXRTdWJHcm91cEluc3QoSSwgQ1MsIGly OjpXT1JLR1JPVVBfT1BfSU5DTFVTSVZFX01BWCk7IGJyZWFrOwotKyAgICAgICAgICAgIHRoaXMt PmVtaXRTdWJHcm91cEluc3QoSSwgaXI6OldPUktHUk9VUF9PUF9JTkNMVVNJVkVfTUFYKTsgYnJl YWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9TVUJfR1JPVVBfU0NBTl9JTkNMVVNJVkVfTUlO OgotLSAgICAgICAgICAgIHRoaXMtPmVtaXRTdWJHcm91cEluc3QoSSwgQ1MsIGlyOjpXT1JLR1JP VVBfT1BfSU5DTFVTSVZFX01JTik7IGJyZWFrOwotKyAgICAgICAgICAgIHRoaXMtPmVtaXRTdWJH cm91cEluc3QoSSwgaXI6OldPUktHUk9VUF9PUF9JTkNMVVNJVkVfTUlOKTsgYnJlYWs7Ci0gICAg ICAgICAgIGNhc2UgR0VOX09DTF9MUlA6Ci0gICAgICAgICAgIHsKLSAgICAgICAgICAgICBjb25z dCBpcjo6UmVnaXN0ZXIgZHN0ICA9IHRoaXMtPmdldFJlZ2lzdGVyKCZJKTsKLUBAIC01NDg0LDY5 ICs1NDgyLDY5IEBACi0gICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgIH0KLSAgICAgICAg ICAgY2FzZSBHRU5fT0NMX1NVQl9HUk9VUF9CTE9DS19SRUFEX1VJX01FTToKLS0gICAgICAgICAg ICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVNZW1JbnN0KEksIENTLCBmYWxzZSwgMSk7IGJyZWFr OwotKyAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZU1lbUluc3QoSSwgZmFsc2Us IDEpOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX1NVQl9HUk9VUF9CTE9DS19SRUFE X1VJX01FTTI6Ci0tICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlTWVtSW5zdChJ LCBDUywgZmFsc2UsIDIpOyBicmVhazsKLSsgICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFk V3JpdGVNZW1JbnN0KEksIGZhbHNlLCAyKTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09D TF9TVUJfR1JPVVBfQkxPQ0tfUkVBRF9VSV9NRU00OgotLSAgICAgICAgICAgIHRoaXMtPmVtaXRC bG9ja1JlYWRXcml0ZU1lbUluc3QoSSwgQ1MsIGZhbHNlLCA0KTsgYnJlYWs7Ci0rICAgICAgICAg ICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlTWVtSW5zdChJLCBmYWxzZSwgNCk7IGJyZWFrOwot ICAgICAgICAgICBjYXNlIEdFTl9PQ0xfU1VCX0dST1VQX0JMT0NLX1JFQURfVUlfTUVNODoKLS0g ICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVNZW1JbnN0KEksIENTLCBmYWxzZSwg OCk7IGJyZWFrOwotKyAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZU1lbUluc3Qo SSwgZmFsc2UsIDgpOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX1NVQl9HUk9VUF9C TE9DS19XUklURV9VSV9NRU06Ci0tICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRl TWVtSW5zdChJLCBDUywgdHJ1ZSwgMSk7IGJyZWFrOwotKyAgICAgICAgICAgIHRoaXMtPmVtaXRC bG9ja1JlYWRXcml0ZU1lbUluc3QoSSwgdHJ1ZSwgMSk7IGJyZWFrOwotICAgICAgICAgICBjYXNl IEdFTl9PQ0xfU1VCX0dST1VQX0JMT0NLX1dSSVRFX1VJX01FTTI6Ci0tICAgICAgICAgICAgdGhp cy0+ZW1pdEJsb2NrUmVhZFdyaXRlTWVtSW5zdChJLCBDUywgdHJ1ZSwgMik7IGJyZWFrOwotKyAg ICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZU1lbUluc3QoSSwgdHJ1ZSwgMik7IGJy ZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfU1VCX0dST1VQX0JMT0NLX1dSSVRFX1VJX01F TTQ6Ci0tICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlTWVtSW5zdChJLCBDUywg dHJ1ZSwgNCk7IGJyZWFrOwotKyAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZU1l bUluc3QoSSwgdHJ1ZSwgNCk7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfU1VCX0dS T1VQX0JMT0NLX1dSSVRFX1VJX01FTTg6Ci0tICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVh ZFdyaXRlTWVtSW5zdChJLCBDUywgdHJ1ZSwgOCk7IGJyZWFrOwotKyAgICAgICAgICAgIHRoaXMt PmVtaXRCbG9ja1JlYWRXcml0ZU1lbUluc3QoSSwgdHJ1ZSwgOCk7IGJyZWFrOwotICAgICAgICAg ICBjYXNlIEdFTl9PQ0xfU1VCX0dST1VQX0JMT0NLX1JFQURfVUlfSU1BR0U6Ci0tICAgICAgICAg ICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlSW1hZ2VJbnN0KEksIENTLCBmYWxzZSwgMSk7IGJy ZWFrOwotKyAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZUltYWdlSW5zdChJLCBm YWxzZSwgMSk7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfU1VCX0dST1VQX0JMT0NL X1JFQURfVUlfSU1BR0UyOgotLSAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZUlt YWdlSW5zdChJLCBDUywgZmFsc2UsIDIpOyBicmVhazsKLSsgICAgICAgICAgICB0aGlzLT5lbWl0 QmxvY2tSZWFkV3JpdGVJbWFnZUluc3QoSSwgZmFsc2UsIDIpOyBicmVhazsKLSAgICAgICAgICAg Y2FzZSBHRU5fT0NMX1NVQl9HUk9VUF9CTE9DS19SRUFEX1VJX0lNQUdFNDoKLS0gICAgICAgICAg ICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVJbWFnZUluc3QoSSwgQ1MsIGZhbHNlLCA0KTsgYnJl YWs7Ci0rICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlSW1hZ2VJbnN0KEksIGZh bHNlLCA0KTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9TVUJfR1JPVVBfQkxPQ0tf UkVBRF9VSV9JTUFHRTg6Ci0tICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlSW1h Z2VJbnN0KEksIENTLCBmYWxzZSwgOCk7IGJyZWFrOwotKyAgICAgICAgICAgIHRoaXMtPmVtaXRC bG9ja1JlYWRXcml0ZUltYWdlSW5zdChJLCBmYWxzZSwgOCk7IGJyZWFrOwotICAgICAgICAgICBj YXNlIEdFTl9PQ0xfU1VCX0dST1VQX0JMT0NLX1dSSVRFX1VJX0lNQUdFOgotLSAgICAgICAgICAg IHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZUltYWdlSW5zdChJLCBDUywgdHJ1ZSwgMSk7IGJyZWFr OwotKyAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZUltYWdlSW5zdChJLCB0cnVl LCAxKTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9TVUJfR1JPVVBfQkxPQ0tfV1JJ VEVfVUlfSU1BR0UyOgotLSAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZUltYWdl SW5zdChJLCBDUywgdHJ1ZSwgMik7IGJyZWFrOwotKyAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9j a1JlYWRXcml0ZUltYWdlSW5zdChJLCB0cnVlLCAyKTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2Ug R0VOX09DTF9TVUJfR1JPVVBfQkxPQ0tfV1JJVEVfVUlfSU1BR0U0OgotLSAgICAgICAgICAgIHRo aXMtPmVtaXRCbG9ja1JlYWRXcml0ZUltYWdlSW5zdChJLCBDUywgdHJ1ZSwgNCk7IGJyZWFrOwot KyAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZUltYWdlSW5zdChJLCB0cnVlLCA0 KTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9TVUJfR1JPVVBfQkxPQ0tfV1JJVEVf VUlfSU1BR0U4OgotLSAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZUltYWdlSW5z dChJLCBDUywgdHJ1ZSwgOCk7IGJyZWFrOwotKyAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1Jl YWRXcml0ZUltYWdlSW5zdChJLCB0cnVlLCA4KTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VO X09DTF9TVUJfR1JPVVBfQkxPQ0tfUkVBRF9VU19NRU06Ci0tICAgICAgICAgICAgdGhpcy0+ZW1p dEJsb2NrUmVhZFdyaXRlTWVtSW5zdChJLCBDUywgZmFsc2UsIDEsIGlyOjpUWVBFX1UxNik7IGJy ZWFrOwotKyAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZU1lbUluc3QoSSwgZmFs c2UsIDEsIGlyOjpUWVBFX1UxNik7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfU1VC X0dST1VQX0JMT0NLX1JFQURfVVNfTUVNMjoKLS0gICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tS ZWFkV3JpdGVNZW1JbnN0KEksIENTLCBmYWxzZSwgMiwgaXI6OlRZUEVfVTE2KTsgYnJlYWs7Ci0r ICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlTWVtSW5zdChJLCBmYWxzZSwgMiwg aXI6OlRZUEVfVTE2KTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9TVUJfR1JPVVBf QkxPQ0tfUkVBRF9VU19NRU00OgotLSAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0 ZU1lbUluc3QoSSwgQ1MsIGZhbHNlLCA0LCBpcjo6VFlQRV9VMTYpOyBicmVhazsKLSsgICAgICAg ICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVNZW1JbnN0KEksIGZhbHNlLCA0LCBpcjo6VFlQ RV9VMTYpOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX1NVQl9HUk9VUF9CTE9DS19S RUFEX1VTX01FTTg6Ci0tICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlTWVtSW5z dChJLCBDUywgZmFsc2UsIDgsIGlyOjpUWVBFX1UxNik7IGJyZWFrOwotKyAgICAgICAgICAgIHRo aXMtPmVtaXRCbG9ja1JlYWRXcml0ZU1lbUluc3QoSSwgZmFsc2UsIDgsIGlyOjpUWVBFX1UxNik7 IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfU1VCX0dST1VQX0JMT0NLX1dSSVRFX1VT X01FTToKLS0gICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVNZW1JbnN0KEksIENT LCB0cnVlLCAxLCBpcjo6VFlQRV9VMTYpOyBicmVhazsKLSsgICAgICAgICAgICB0aGlzLT5lbWl0 QmxvY2tSZWFkV3JpdGVNZW1JbnN0KEksIHRydWUsIDEsIGlyOjpUWVBFX1UxNik7IGJyZWFrOwot ICAgICAgICAgICBjYXNlIEdFTl9PQ0xfU1VCX0dST1VQX0JMT0NLX1dSSVRFX1VTX01FTTI6Ci0t ICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlTWVtSW5zdChJLCBDUywgdHJ1ZSwg MiwgaXI6OlRZUEVfVTE2KTsgYnJlYWs7Ci0rICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVh ZFdyaXRlTWVtSW5zdChJLCB0cnVlLCAyLCBpcjo6VFlQRV9VMTYpOyBicmVhazsKLSAgICAgICAg ICAgY2FzZSBHRU5fT0NMX1NVQl9HUk9VUF9CTE9DS19XUklURV9VU19NRU00OgotLSAgICAgICAg ICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZU1lbUluc3QoSSwgQ1MsIHRydWUsIDQsIGlyOjpU WVBFX1UxNik7IGJyZWFrOwotKyAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZU1l bUluc3QoSSwgdHJ1ZSwgNCwgaXI6OlRZUEVfVTE2KTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2Ug R0VOX09DTF9TVUJfR1JPVVBfQkxPQ0tfV1JJVEVfVVNfTUVNODoKLS0gICAgICAgICAgICB0aGlz LT5lbWl0QmxvY2tSZWFkV3JpdGVNZW1JbnN0KEksIENTLCB0cnVlLCA4LCBpcjo6VFlQRV9VMTYp OyBicmVhazsKLSsgICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVNZW1JbnN0KEks IHRydWUsIDgsIGlyOjpUWVBFX1UxNik7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xf U1VCX0dST1VQX0JMT0NLX1JFQURfVVNfSU1BR0U6Ci0tICAgICAgICAgICAgdGhpcy0+ZW1pdEJs b2NrUmVhZFdyaXRlSW1hZ2VJbnN0KEksIENTLCBmYWxzZSwgMSwgaXI6OlRZUEVfVTE2KTsgYnJl YWs7Ci0rICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlSW1hZ2VJbnN0KEksIGZh bHNlLCAxLCBpcjo6VFlQRV9VMTYpOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX1NV Ql9HUk9VUF9CTE9DS19SRUFEX1VTX0lNQUdFMjoKLS0gICAgICAgICAgICB0aGlzLT5lbWl0Qmxv Y2tSZWFkV3JpdGVJbWFnZUluc3QoSSwgQ1MsIGZhbHNlLCAyLCBpcjo6VFlQRV9VMTYpOyBicmVh azsKLSsgICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVJbWFnZUluc3QoSSwgZmFs c2UsIDIsIGlyOjpUWVBFX1UxNik7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfU1VC X0dST1VQX0JMT0NLX1JFQURfVVNfSU1BR0U0OgotLSAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9j a1JlYWRXcml0ZUltYWdlSW5zdChJLCBDUywgZmFsc2UsIDQsIGlyOjpUWVBFX1UxNik7IGJyZWFr OwotKyAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZUltYWdlSW5zdChJLCBmYWxz ZSwgNCwgaXI6OlRZUEVfVTE2KTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9TVUJf R1JPVVBfQkxPQ0tfUkVBRF9VU19JTUFHRTg6Ci0tICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2Nr UmVhZFdyaXRlSW1hZ2VJbnN0KEksIENTLCBmYWxzZSwgOCwgaXI6OlRZUEVfVTE2KTsgYnJlYWs7 Ci0rICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlSW1hZ2VJbnN0KEksIGZhbHNl LCA4LCBpcjo6VFlQRV9VMTYpOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX1NVQl9H Uk9VUF9CTE9DS19XUklURV9VU19JTUFHRToKLS0gICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tS ZWFkV3JpdGVJbWFnZUluc3QoSSwgQ1MsIHRydWUsIDEsIGlyOjpUWVBFX1UxNik7IGJyZWFrOwot KyAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZUltYWdlSW5zdChJLCB0cnVlLCAx LCBpcjo6VFlQRV9VMTYpOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX1NVQl9HUk9V UF9CTE9DS19XUklURV9VU19JTUFHRTI6Ci0tICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVh ZFdyaXRlSW1hZ2VJbnN0KEksIENTLCB0cnVlLCAyLCBpcjo6VFlQRV9VMTYpOyBicmVhazsKLSsg ICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVJbWFnZUluc3QoSSwgdHJ1ZSwgMiwg aXI6OlRZUEVfVTE2KTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9TVUJfR1JPVVBf QkxPQ0tfV1JJVEVfVVNfSU1BR0U0OgotLSAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRX cml0ZUltYWdlSW5zdChJLCBDUywgdHJ1ZSwgNCwgaXI6OlRZUEVfVTE2KTsgYnJlYWs7Ci0rICAg ICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlSW1hZ2VJbnN0KEksIHRydWUsIDQsIGly OjpUWVBFX1UxNik7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfU1VCX0dST1VQX0JM T0NLX1dSSVRFX1VTX0lNQUdFODoKLS0gICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3Jp dGVJbWFnZUluc3QoSSwgQ1MsIHRydWUsIDgsIGlyOjpUWVBFX1UxNik7IGJyZWFrOwotKyAgICAg ICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZUltYWdlSW5zdChJLCB0cnVlLCA4LCBpcjo6 VFlQRV9VMTYpOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX0dFVF9QSVBFOgotICAg ICAgICAgICBjYXNlIEdFTl9PQ0xfTUFLRV9SSUQ6Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9H RVRfUklEOgotLS0tIGEvYmFja2VuZC9zcmMvbGx2bS9sbHZtX2luY2x1ZGVzLmhwcAkyMDIwLTEx LTA5IDE2OjQ4OjIwLjgyMzg2NjExMiArMDEwMAotKysrIGIvYmFja2VuZC9zcmMvbGx2bS9sbHZt X2luY2x1ZGVzLmhwcAkyMDIwLTExLTA5IDE5OjAwOjA5Ljk1NTkyNjc5NSArMDEwMAotQEAgLTEw Myw3ICsxMDMsNiBAQAotCi0gI2lmIExMVk1fVkVSU0lPTl9NQUpPUiAqIDEwICsgTExWTV9WRVJT SU9OX01JTk9SID49IDM1Ci0gI2luY2x1ZGUgImxsdm0vSVIvTWFuZ2xlci5oIgotLSNpbmNsdWRl ICJsbHZtL0lSL0NhbGxTaXRlLmgiCi0gI2luY2x1ZGUgImxsdm0vSVIvQ0ZHLmgiCi0gI2luY2x1 ZGUgImxsdm0vSVIvSW5zdFZpc2l0b3IuaCIKLSAjaW5jbHVkZSAibGx2bS9JUi9JUlByaW50aW5n UGFzc2VzLmgiCi0tLS0gYS9iYWNrZW5kL3NyYy9sbHZtL2xsdm1fbG9hZHN0b3JlX29wdGltaXph dGlvbi5jcHAJMjAyMC0xMS0wOSAxNjo0ODoyMC44MjM4NjYxMTIgKzAxMDAKLSsrKyBiL2JhY2tl bmQvc3JjL2xsdm0vbGx2bV9sb2Fkc3RvcmVfb3B0aW1pemF0aW9uLmNwcAkyMDIwLTExLTA5IDE5 OjEwOjM3LjE0MTg1MjMwOCArMDEwMAotQEAgLTE2MCw3ICsxNjAsNyBAQAotICAgICBWYWx1ZSAq dmVjUHRyID0gQnVpbGRlci5DcmVhdGVCaXRDYXN0KGxkLT5nZXRQb2ludGVyT3BlcmFuZCgpLAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQb2ludGVyVHlwZTo6Z2V0 KHZlY1R5LCBhZGRyU3BhY2UpKTsKLSAgICAgTG9hZEluc3QgKnZlY1ZhbHVlID0gQnVpbGRlci5D cmVhdGVMb2FkKHZlY1B0cik7Ci0tICAgIHZlY1ZhbHVlLT5zZXRBbGlnbm1lbnQoYWxpZ24pOwot KyAgICB2ZWNWYWx1ZS0+c2V0QWxpZ25tZW50KGFsaWduLnZhbHVlT3JPbmUoKSk7Ci0KLSAgICAg Zm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHNpemU7ICsraSkgewotICAgICAgIFZhbHVlICpTID0g QnVpbGRlci5DcmVhdGVFeHRyYWN0RWxlbWVudCh2ZWNWYWx1ZSwgQnVpbGRlci5nZXRJbnQzMihp KSk7Ci1AQCAtMjUxLDcgKzI1MSw3IEBACi0gICAgICAgcmV0dXJuOwotICAgICBWYWx1ZSAqbmV3 UHRyID0gQnVpbGRlci5DcmVhdGVCaXRDYXN0KHN0UG9pbnRlciwgUG9pbnRlclR5cGU6OmdldCh2 ZWNUeSwgYWRkclNwYWNlKSk7Ci0gICAgIFN0b3JlSW5zdCAqbmV3U1QgPSBCdWlsZGVyLkNyZWF0 ZVN0b3JlKHBhcmVudCwgbmV3UHRyKTsKLS0gICAgbmV3U1QtPnNldEFsaWdubWVudChhbGlnbik7 Ci0rICAgIG5ld1NULT5zZXRBbGlnbm1lbnQoYWxpZ24udmFsdWVPck9uZSgpKTsKLSAgIH0KLQot ICAgLy8gRmluZCB0aGUgc2FmZSBpdGVyYXRvciB3ZSBjYW4gcG9pbnQgdG8uIElmIHJlb3JkZXIg aGFwcGVucywgd2UgbmVlZCB0bwotLS0tIGEvYmFja2VuZC9zcmMvbGx2bS9sbHZtX3Bhc3Nlcy5j cHAJMjAyMC0xMS0wOSAxNjo0ODoyMC44MjM4NjYxMTIgKzAxMDAKLSsrKyBiL2JhY2tlbmQvc3Jj L2xsdm0vbGx2bV9wYXNzZXMuY3BwCTIwMjAtMTEtMDkgMTg6NDg6NTUuOTk3MDA2ODM3ICswMTAw Ci1AQCAtOTUsNyArOTUsNyBAQAotICAgewotICAgICBzd2l0Y2ggKFR5LT5nZXRUeXBlSUQoKSkg ewotICAgICAgIGNhc2UgVHlwZTo6Vm9pZFR5SUQ6IE5PVF9TVVBQT1JURUQ7Ci0tICAgICAgY2Fz ZSBUeXBlOjpWZWN0b3JUeUlEOgotKyAgICAgIGNhc2UgVHlwZTo6Rml4ZWRWZWN0b3JUeUlEOgot ICAgICAgIHsKLSAgICAgICAgIGNvbnN0IFZlY3RvclR5cGUqIFZlY1R5ID0gY2FzdDxWZWN0b3JU eXBlPihUeSk7Ci0gICAgICAgICB1aW50MzJfdCBlbGVtTnVtID0gVmVjVHktPmdldE51bUVsZW1l bnRzKCk7Ci1AQCAtMTM4LDcgKzEzOCw3IEBACi0gICAgICAgY2FzZSBUeXBlOjpIYWxmVHlJRDog ICAgcmV0dXJuIDE2OwotICAgICAgIGNhc2UgVHlwZTo6RmxvYXRUeUlEOiAgIHJldHVybiAzMjsK LSAgICAgICBjYXNlIFR5cGU6OkRvdWJsZVR5SUQ6ICByZXR1cm4gNjQ7Ci0tICAgICAgY2FzZSBU eXBlOjpWZWN0b3JUeUlEOgotKyAgICAgIGNhc2UgVHlwZTo6Rml4ZWRWZWN0b3JUeUlEOgotICAg ICAgIHsKLSAgICAgICAgIGNvbnN0IFZlY3RvclR5cGUqIFZlY1R5ID0gY2FzdDxWZWN0b3JUeXBl PihUeSk7Ci0gICAgICAgICB1aW50MzJfdCBudW1FbGVtID0gVmVjVHktPmdldE51bUVsZW1lbnRz KCk7Ci1AQCAtMTg0LDEwICsxODQsMTIgQEAKLSAgICAgVHlwZSAqZWxlbWVudFR5cGUgPSBOVUxM OwotICAgICBpZiAoUG9pbnRlclR5cGUqIHB0clR5cGUgPSBkeW5fY2FzdDxQb2ludGVyVHlwZT4o ZWx0VHkpKQotICAgICAgIGVsZW1lbnRUeXBlID0gcHRyVHlwZS0+Z2V0RWxlbWVudFR5cGUoKTsK LS0gICAgZWxzZSBpZihTZXF1ZW50aWFsVHlwZSAqIHNlcVR5cGUgPSBkeW5fY2FzdDxTZXF1ZW50 aWFsVHlwZT4oZWx0VHkpKQotLSAgICAgIGVsZW1lbnRUeXBlID0gc2VxVHlwZS0+Z2V0RWxlbWVu dFR5cGUoKTsKLS0gICAgZWxzZSBpZihDb21wb3NpdGVUeXBlICogY29tcFR5PSBkeW5fY2FzdDxD b21wb3NpdGVUeXBlPihlbHRUeSkpCi0tICAgICAgZWxlbWVudFR5cGUgPSBjb21wVHktPmdldFR5 cGVBdEluZGV4KGluZGV4KTsKLSsgICAgZWxzZSBpZiAoQXJyYXlUeXBlICogYXJyVHlwZSA9IGR5 bl9jYXN0PEFycmF5VHlwZT4oZWx0VHkpKQotKyAgICAgIGVsZW1lbnRUeXBlID0gYXJyVHlwZS0+ Z2V0RWxlbWVudFR5cGUoKTsKLSsgICAgZWxzZSBpZihWZWN0b3JUeXBlICogdmVjVHlwZSA9IGR5 bl9jYXN0PFZlY3RvclR5cGU+KGVsdFR5KSkKLSsgICAgICBlbGVtZW50VHlwZSA9IHZlY1R5cGUt PmdldEVsZW1lbnRUeXBlKCk7Ci0rICAgIGVsc2UgaWYoU3RydWN0VHlwZSAqIHN0cnVjdFR5cGUg PSBkeW5fY2FzdDxTdHJ1Y3RUeXBlPihlbHRUeSkpCi0rICAgICAgZWxlbWVudFR5cGUgPSBzdHJ1 Y3RUeXBlLT5nZXRUeXBlQXRJbmRleChpbmRleCk7Ci0gICAgIEdCRV9BU1NFUlQoZWxlbWVudFR5 cGUpOwotICAgICByZXR1cm4gZWxlbWVudFR5cGU7Ci0gICB9Ci0tLS0gYS9iYWNrZW5kL3NyYy9s bHZtL2xsdm1fcHJpbnRmX3BhcnNlci5jcHAJMjAyMC0xMS0wOSAxNjo0ODoyMC44MjM4NjYxMTIg KzAxMDAKLSsrKyBiL2JhY2tlbmQvc3JjL2xsdm0vbGx2bV9wcmludGZfcGFyc2VyLmNwcAkyMDIw LTExLTA5IDE4OjU3OjUyLjYxODk0MzEwNSArMDEwMAotQEAgLTMyMyw4ICszMjMsNyBAQAotCi0g ICBib29sIFByaW50ZlBhcnNlcjo6cGFyc2VPbmVQcmludGZJbnN0cnVjdGlvbihDYWxsSW5zdCAq IGNhbGwpCi0gICB7Ci0tICAgIENhbGxTaXRlIENTKGNhbGwpOwotLSAgICBDYWxsU2l0ZTo6YXJn X2l0ZXJhdG9yIENJX0ZNVCA9IENTLmFyZ19iZWdpbigpOwotKyAgICBVc2VyOjpvcF9pdGVyYXRv ciBDSV9GTVQgPSBjYWxsLT5hcmdfYmVnaW4oKTsKLSAgICAgaW50IHBhcmFtX251bSA9IDA7Ci0K LSAgICAgbGx2bTo6Q29uc3RhbnQqIGFyZzAgPSBkeW5fY2FzdDxsbHZtOjpDb25zdGFudEV4cHI+ KCpDSV9GTVQpOwotQEAgLTM0MSw3ICszNDAsNyBAQAotICAgICAgIHJldHVybiBmYWxzZTsKLSAg ICAgfQotCi0tICAgIHN0ZDo6c3RyaW5nIGZtdCA9IGZtdF9hcmctPmdldEFzQ1N0cmluZygpOwot KyAgICBzdGQ6OnN0cmluZyBmbXQgPSBmbXRfYXJnLT5nZXRBc0NTdHJpbmcoKS5zdHIoKTsKLSAg ICAgaWYgKGZtdC5zaXplKCkgPT0gMCkKLSAgICAgICByZXR1cm4gZmFsc2U7Ci0KLUBAIC00Mzcs OCArNDM2LDggQEAKLSAgICAgICAgIGlmICggY2FsbEZ1bmMtPmdldEludHJpbnNpY0lEKCkgIT0g MCkKLSAgICAgICAgICAgY29udGludWU7Ci0KLS0gICAgICAgIFZhbHVlICpDYWxsZWUgPSBjYWxs LT5nZXRDYWxsZWRWYWx1ZSgpOwotLSAgICAgICAgY29uc3Qgc3RkOjpzdHJpbmcgZm5OYW1lID0g Q2FsbGVlLT5nZXROYW1lKCk7Ci0rICAgICAgICBWYWx1ZSAqQ2FsbGVlID0gY2FsbC0+Z2V0Q2Fs bGVkT3BlcmFuZCgpOwotKyAgICAgICAgY29uc3Qgc3RkOjpzdHJpbmcgZm5OYW1lID0gQ2FsbGVl LT5nZXROYW1lKCkuc3RyKCk7Ci0KLSAgICAgICAgIGlmIChmbk5hbWUgIT0gIl9fZ2VuX29jbF9w cmludGZfc3R1YiIgJiYgZm5OYW1lICE9ICJfX2dlbl9vY2xfcHV0c19zdHViIikKLSAgICAgICAg ICAgY29udGludWU7Ci1AQCAtNTgyLDcgKzU4MSw3IEBACi0gICAgICAgICAgICAgaWYgKCFmbXRf YXJnIHx8ICFmbXRfYXJnLT5pc0NTdHJpbmcoKSkgewotICAgICAgICAgICAgICAgcmV0dXJuIGZh bHNlOwotICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICBzbG90LnN0YXRlLnN0ciA9IGZtdF9h cmctPmdldEFzQ1N0cmluZygpOwotKyAgICAgICAgICAgIHNsb3Quc3RhdGUuc3RyID0gZm10X2Fy Zy0+Z2V0QXNDU3RyaW5nKCkuc3RyKCk7Ci0gICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAg ICAgICAgIH0KLSAgICAgICAgICAgY2FzZSBQUklOVEZfQ09OVkVSU0lPTl9QOiB7Ci1AQCAtNTk1 LDEwICs1OTQsMTAgQEAKLQotICAgICAgICAgYnJlYWs7Ci0KLS0gICAgICBjYXNlIFR5cGU6OlZl Y3RvclR5SUQ6IHsKLS0gICAgICAgIFR5cGUqIHZlY3RfdHlwZSA9IGFyZy0+Z2V0VHlwZSgpOwot LSAgICAgICAgVHlwZSogZWx0X3R5cGUgPSB2ZWN0X3R5cGUtPmdldFZlY3RvckVsZW1lbnRUeXBl KCk7Ci0tICAgICAgICBpbnQgdmVjX251bSA9IHZlY3RfdHlwZS0+Z2V0VmVjdG9yTnVtRWxlbWVu dHMoKTsKLSsgICAgICBjYXNlIFR5cGU6OkZpeGVkVmVjdG9yVHlJRDogewotKyAgICAgICAgVmVj dG9yVHlwZSogdmVjdF90eXBlID0gZHluX2Nhc3Q8VmVjdG9yVHlwZT4oYXJnLT5nZXRUeXBlKCkp OwotKyAgICAgICAgVHlwZSogZWx0X3R5cGUgPSB2ZWN0X3R5cGUtPmdldEVsZW1lbnRUeXBlKCk7 Ci0rICAgICAgICBpbnQgdmVjX251bSA9IHZlY3RfdHlwZS0+Z2V0TnVtRWxlbWVudHMoKTsKLSAg ICAgICAgIGJvb2wgc2lnbiA9IGZhbHNlOwotCi0gICAgICAgICBpZiAodmVjX251bSAhPSBzbG90 LnN0YXRlLnZlY3Rvcl9uKSB7Ci0tLS0gYS9iYWNrZW5kL3NyYy9sbHZtL2xsdm1fcHJvZmlsaW5n LmNwcAkyMDIwLTExLTA5IDE2OjQ4OjIwLjgyMzg2NjExMiArMDEwMAotKysrIGIvYmFja2VuZC9z cmMvbGx2bS9sbHZtX3Byb2ZpbGluZy5jcHAJMjAyMC0xMS0wOSAxODo1OTo1MC4xMjA5MjkxNTAg KzAxMDAKLUBAIC0zNSw3ICszNSw2IEBACi0gI2luY2x1ZGUgImxsdm0vSVIvSVJCdWlsZGVyLmgi Ci0KLSAjaWYgTExWTV9WRVJTSU9OX01BSk9SICogMTAgKyBMTFZNX1ZFUlNJT05fTUlOT1IgPj0g MzUKLS0jaW5jbHVkZSAibGx2bS9JUi9DYWxsU2l0ZS5oIgotICNpbmNsdWRlICJsbHZtL0lSL0NG Ry5oIgotICNlbHNlCi0gI2luY2x1ZGUgImxsdm0vU3VwcG9ydC9DYWxsU2l0ZS5oIgotLS0tIGEv YmFja2VuZC9zcmMvbGx2bS9sbHZtX3NhbXBsZXJfZml4LmNwcAkyMDIwLTExLTA5IDE2OjQ4OjIw LjgyMzg2NjExMiArMDEwMAotKysrIGIvYmFja2VuZC9zcmMvbGx2bS9sbHZtX3NhbXBsZXJfZml4 LmNwcAkyMDIwLTExLTA5IDE3OjAxOjA5LjQwNzc3NDgzMiArMDEwMAotQEAgLTQ1LDggKzQ1LDgg QEAKLSAgICAgYm9vbCB2aXNpdENhbGxJbnN0KENhbGxJbnN0ICpJKSB7Ci0gICAgICAgaWYoIUkp Ci0gICAgICAgICByZXR1cm4gZmFsc2U7Ci0tICAgICAgVmFsdWUgKkNhbGxlZSA9IEktPmdldENh bGxlZFZhbHVlKCk7Ci0tICAgICAgY29uc3Qgc3RkOjpzdHJpbmcgZm5OYW1lID0gQ2FsbGVlLT5n ZXROYW1lKCk7Ci0rICAgICAgVmFsdWUgKkNhbGxlZSA9IEktPmdldENhbGxlZE9wZXJhbmQoKTsK LSsgICAgICBjb25zdCBzdGQ6OnN0cmluZyBmbk5hbWUgPSBDYWxsZWUtPmdldE5hbWUoKS5zdHIo KTsKLSAgICAgICBib29sIGNoYW5nZWQgPSBmYWxzZTsKLSAgICAgICBUeXBlICpib29sVHkgPSBJ bnRlZ2VyVHlwZTo6Z2V0KEktPmdldENvbnRleHQoKSwgMSk7Ci0gICAgICAgVHlwZSAqaTMyVHkg PSBJbnRlZ2VyVHlwZTo6Z2V0KEktPmdldENvbnRleHQoKSwgMzIpOwotQEAgLTU5LDcgKzU5LDcg QEAKLSAgICAgICAgIFZhbHVlICpuZWVkRml4VmFsOwotICNpZiBMTFZNX1ZFUlNJT05fTUFKT1Ig KiAxMCArIExMVk1fVkVSU0lPTl9NSU5PUiA+PSA0MAotICAgICAgICAgQ2FsbEluc3QgKmluaXQg PSBkeW5fY2FzdDxDYWxsSW5zdD4oSS0+Z2V0T3BlcmFuZCgwKSk7Ci0tICAgICAgICBpZiAoaW5p dCAmJiBpbml0LT5nZXRDYWxsZWRWYWx1ZSgpLT5nZXROYW1lKCkuY29tcGFyZSgiX190cmFuc2xh dGVfc2FtcGxlcl9pbml0aWFsaXplciIpKQotKyAgICAgICAgaWYgKGluaXQgJiYgaW5pdC0+Z2V0 Q2FsbGVkT3BlcmFuZCgpLT5nZXROYW1lKCkuY29tcGFyZSgiX190cmFuc2xhdGVfc2FtcGxlcl9p bml0aWFsaXplciIpKQotICAgICAgICAgewotICAgICAgICAgICBjb25zdCBDb25zdGFudEludCAq Y2kgPSBkeW5fY2FzdDxDb25zdGFudEludD4oaW5pdC0+Z2V0T3BlcmFuZCgwKSk7Ci0gICAgICAg ICAgIHVpbnQzMl90IHNhbXBsZXJJbnQgPSBjaS0+Z2V0WkV4dFZhbHVlKCk7Ci1AQCAtMTEzLDcg KzExMyw3IEBACi0gICAgICAgICBWYWx1ZSAqbmVlZEZpeFZhbDsKLSAgI2lmIExMVk1fVkVSU0lP Tl9NQUpPUiAqIDEwICsgTExWTV9WRVJTSU9OX01JTk9SID49IDQwCi0gICAgICAgICBDYWxsSW5z dCAqaW5pdCA9IGR5bl9jYXN0PENhbGxJbnN0PihJLT5nZXRPcGVyYW5kKDApKTsKLS0gICAgICAg IGlmIChpbml0ICYmIGluaXQtPmdldENhbGxlZFZhbHVlKCktPmdldE5hbWUoKS5jb21wYXJlKCJf X3RyYW5zbGF0ZV9zYW1wbGVyX2luaXRpYWxpemVyIikpCi0rICAgICAgICBpZiAoaW5pdCAmJiBp bml0LT5nZXRDYWxsZWRPcGVyYW5kKCktPmdldE5hbWUoKS5jb21wYXJlKCJfX3RyYW5zbGF0ZV9z YW1wbGVyX2luaXRpYWxpemVyIikpCi0gICAgICAgICB7Ci0gICAgICAgICAgIGNvbnN0IENvbnN0 YW50SW50ICpjaSA9IGR5bl9jYXN0PENvbnN0YW50SW50Pihpbml0LT5nZXRPcGVyYW5kKDApKTsK LSAgICAgICAgICAgdWludDMyX3Qgc2FtcGxlckludCA9IGNpLT5nZXRaRXh0VmFsdWUoKTsKLS0t LSBhL2JhY2tlbmQvc3JjL2xsdm0vbGx2bV9zY2FsYXJpemUuY3BwCTIwMjAtMTEtMDkgMTY6NDg6 MjAuODIzODY2MTEyICswMTAwCi0rKysgYi9iYWNrZW5kL3NyYy9sbHZtL2xsdm1fc2NhbGFyaXpl LmNwcAkyMDIwLTExLTA5IDE4OjUxOjE2Ljg4ODk5MDEwNCArMDEwMAotQEAgLTE3OCw3ICsxNzgs NyBAQAotICAgICAgIGlmKCF0eXBlKQotICAgICAgICAgcmV0dXJuIHR5cGU7Ci0gICAgICAgc3dp dGNoKHR5cGUtPmdldFR5cGVJRCgpKSB7Ci0tICAgICAgY2FzZSBUeXBlOjpWZWN0b3JUeUlEOgot KyAgICAgIGNhc2UgVHlwZTo6Rml4ZWRWZWN0b3JUeUlEOgotICAgICAgIGNhc2UgVHlwZTo6QXJy YXlUeUlEOgotICAgICAgICAgcmV0dXJuIEdldEJhc2ljVHlwZSh0eXBlLT5nZXRDb250YWluZWRU eXBlKDApKTsKLSAgICAgICBkZWZhdWx0OgotQEAgLTE4OCw3ICsxODgsNyBAQAotICAgICB9Ci0K LSAgICAgaW50IEdldENvbXBvbmVudENvdW50KGNvbnN0IFR5cGUqIHR5cGUpICB7Ci0tICAgICAg aWYgKHR5cGUgJiYgdHlwZS0+Z2V0VHlwZUlEKCkgPT0gVHlwZTo6VmVjdG9yVHlJRCkKLSsgICAg ICBpZiAodHlwZSAmJiB0eXBlLT5nZXRUeXBlSUQoKSA9PSBUeXBlOjpGaXhlZFZlY3RvclR5SUQp Ci0gICAgICAgICByZXR1cm4gbGx2bTo6ZHluX2Nhc3Q8VmVjdG9yVHlwZT4odHlwZSktPmdldE51 bUVsZW1lbnRzKCk7Ci0gICAgICAgZWxzZQotICAgICAgICAgcmV0dXJuIDE7Ci1AQCAtNjUyLDEz ICs2NTIsMTIgQEAKLSAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICB9Ci0gICAgICAgfSBlbHNl IHsKLS0gICAgICAgIFZhbHVlICpDYWxsZWUgPSBjYWxsLT5nZXRDYWxsZWRWYWx1ZSgpOwotLSAg ICAgICAgY29uc3Qgc3RkOjpzdHJpbmcgZm5OYW1lID0gQ2FsbGVlLT5nZXROYW1lKCk7Ci0rICAg ICAgICBWYWx1ZSAqQ2FsbGVlID0gY2FsbC0+Z2V0Q2FsbGVkT3BlcmFuZCgpOwotKyAgICAgICAg Y29uc3Qgc3RkOjpzdHJpbmcgZm5OYW1lID0gQ2FsbGVlLT5nZXROYW1lKCkuc3RyKCk7Ci0gICAg ICAgICBhdXRvIGdlbkludHJpbnNpY0lEID0gaW50cmluc2ljTWFwLmZpbmQoZm5OYW1lKTsKLQot ICAgICAgICAgLy8gR2V0IHRoZSBmdW5jdGlvbiBhcmd1bWVudHMKLS0gICAgICAgIENhbGxTaXRl IENTKGNhbGwpOwotLSAgICAgICAgQ2FsbFNpdGU6OmFyZ19pdGVyYXRvciBDSSA9IENTLmFyZ19i ZWdpbigpICsgMTsKLSsgICAgICAgIFVzZXI6Om9wX2l0ZXJhdG9yIENJID0gY2FsbC0+YXJnX2Jl Z2luKCkgKyAxOwotCi0gICAgICAgICBzd2l0Y2ggKGdlbkludHJpbnNpY0lEKSB7Ci0gICAgICAg ICAgIGNhc2UgR0VOX09DTF9OT1RfRk9VTkQ6Ci1AQCAtNzI5LDcgKzcyOCw3IEBACi0gICAgICAg ICAgICAgZXh0cmFjdEZyb21WZWN0b3IoY2FsbCk7Ci0gICAgICAgICAgICAgYnJlYWs7Ci0gICAg ICAgICAgIGNhc2UgR0VOX09DTF9QUklOVEY6Ci0tICAgICAgICAgICAgZm9yICg7IENJICE9IENT LmFyZ19lbmQoKTsgKytDSSkKLSsgICAgICAgICAgICBmb3IgKDsgQ0kgIT0gY2FsbC0+YXJnX2Vu ZCgpOyArK0NJKQotICAgICAgICAgICAgICAgaWYgKCgqQ0kpLT5nZXRUeXBlKCktPmlzVmVjdG9y VHkoKSkKLSAgICAgICAgICAgICAgICAgKkNJID0gSW5zZXJ0VG9WZWN0b3IoY2FsbCwgKkNJKTsK LSAgICAgICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvYmVpZ25ldC9wYXRjaGVz L2xsdm0xMi5wYXRjaCBiL3NyY3BrZ3MvYmVpZ25ldC9wYXRjaGVzL2xsdm0xMi5wYXRjaApkZWxl dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmY4YWIwMDVjMTQ4Li4wMDAwMDAwMDAwMDAKLS0t IGEvc3JjcGtncy9iZWlnbmV0L3BhdGNoZXMvbGx2bTEyLnBhdGNoCisrKyAvZGV2L251bGwKQEAg LTEsMTE1ICswLDAgQEAKLWRpZmYgLS1naXQgYmFja2VuZC9zcmMvbGx2bS9FeHBhbmRMYXJnZUlu dGVnZXJzLmNwcCBiYWNrZW5kL3NyYy9sbHZtL0V4cGFuZExhcmdlSW50ZWdlcnMuY3BwCi1pbmRl eCA4NTE1ZGMxMy4uMjcwODAzODAgMTAwNjQ0Ci0tLS0gYS9iYWNrZW5kL3NyYy9sbHZtL0V4cGFu ZExhcmdlSW50ZWdlcnMuY3BwCi0rKysgYi9iYWNrZW5kL3NyYy9sbHZtL0V4cGFuZExhcmdlSW50 ZWdlcnMuY3BwCi1AQCAtMzI4LDcgKzMyOCw3IEBAIHN0YXRpYyBWYWx1ZSAqYnVpbGRWZWN0b3JP clNjYWxhcihDb252ZXJzaW9uU3RhdGUgJlN0YXRlLCBJUkJ1aWxkZXI8PiAmSVJCLCBTbWFsCi0g ICAgIC8vIHNwbGl0ZWQsIHRoYXQncyB3aHkgdGhlc2UgdGVtcG9yYXJ5IHZhbHVlcyBzaG91bGQg YmUgZXJhc2VkLgotICAgICBib29sIEtlZXBJbnNlcnQgPSBpc0xlZ2FsQml0U2l6ZShFbGVtVHkt PmdldFByaW1pdGl2ZVNpemVJbkJpdHMoKSAqIEVsZW1Obyk7Ci0gICAgIGZvciAodW5zaWduZWQg aSA9IDA7IGkgPCBFbGVtTm87ICsraSkgewotLSAgICAgIFZhbHVlICp0bXAgPSB2ZWMgPyB2ZWMg OiBVbmRlZlZhbHVlOjpnZXQoVmVjdG9yVHlwZTo6Z2V0KEVsZW1UeSwgRWxlbU5vKSk7Ci0rICAg ICAgVmFsdWUgKnRtcCA9IHZlYyA/IHZlYyA6IFVuZGVmVmFsdWU6OmdldChWZWN0b3JUeXBlOjpn ZXQoRWxlbVR5LCBFbGVtTm8sIGZhbHNlKSk7Ci0gICAgICAgVmFsdWUgKmlkeCA9IENvbnN0YW50 SW50OjpnZXQoSW50VHksIGkpOwotICAgICAgIHZlYyA9IElSQi5DcmVhdGVJbnNlcnRFbGVtZW50 KHRtcCwgRWxlbWVudHNbaV0sIGlkeCk7Ci0gICAgICAgaWYgKCFLZWVwSW5zZXJ0ICYmICFpc2E8 Q29uc3RhbnQ+KHZlYykpIHsKLUBAIC0zNzMsNyArMzczLDcgQEAgc3RhdGljIHZvaWQgdW5pZnlF bGVtZW50VHlwZShJUkJ1aWxkZXI8PiAmSVJCLCBTbWFsbFZlY3RvcjxWYWx1ZSAqLCAxNj4gJlNy YywgU20KLSAgICAgICBhc3NlcnQoKFNpemUgJSBNaW5XaWR0aCkgPT0gMCk7Ci0gCi0gICAgICAg aWYgKFNpemUgPiBNaW5XaWR0aCkgewotLSAgICAgICAgVmVjdG9yVHlwZSAqVmVjVHkgPSBWZWN0 b3JUeXBlOjpnZXQoRWxlbVR5LCBTaXplL01pbldpZHRoKTsKLSsgICAgICAgIFZlY3RvclR5cGUg KlZlY1R5ID0gVmVjdG9yVHlwZTo6Z2V0KEVsZW1UeSwgU2l6ZS9NaW5XaWR0aCwgZmFsc2UpOwot ICAgICAgICAgVmFsdWUgKkNhc3RlZCA9IElSQi5DcmVhdGVCaXRDYXN0KFNyY1tpXSwgVmVjVHkp OwotICAgICAgICAgZm9yICh1bnNpZ25lZCBqID0gMDsgaiA8IFNpemUvTWluV2lkdGg7IGorKykK LSAgICAgICAgICAgRHN0LnB1c2hfYmFjayhJUkIuQ3JlYXRlRXh0cmFjdEVsZW1lbnQoQ2FzdGVk LCBDb25zdGFudEludDo6Z2V0KEludFR5LCBqKSkpOwotQEAgLTQ2Miw3ICs0NjIsNyBAQCBzdGF0 aWMgdm9pZCBjb252ZXJ0SW5zdHJ1Y3Rpb24oSW5zdHJ1Y3Rpb24gKkluc3QsIENvbnZlcnNpb25T dGF0ZSAmU3RhdGUsCi0gICAgICAgdW5zaWduZWQgRWxlbU5vID0gVW5pZmllZC5zaXplKCk7Ci0g ICAgICAgVHlwZSAqRWxlbVR5ID0gVW5pZmllZFswXS0+Z2V0VHlwZSgpOwotICAgICAgIGZvciAo dW5zaWduZWQgaSA9IDA7IGkgPCBFbGVtTm87ICsraSkgewotLSAgICAgICAgVmFsdWUgKnRtcCA9 IHZlYyA/IHZlYyA6IFVuZGVmVmFsdWU6OmdldChWZWN0b3JUeXBlOjpnZXQoRWxlbVR5LCBFbGVt Tm8pKTsKLSsgICAgICAgIFZhbHVlICp0bXAgPSB2ZWMgPyB2ZWMgOiBVbmRlZlZhbHVlOjpnZXQo VmVjdG9yVHlwZTo6Z2V0KEVsZW1UeSwgRWxlbU5vLCBmYWxzZSkpOwotICAgICAgICAgVmFsdWUg KmlkeCA9IENvbnN0YW50SW50OjpnZXQoSW50VHksIGkpOwotICAgICAgICAgdmVjID0gSVJCLkNy ZWF0ZUluc2VydEVsZW1lbnQodG1wLCBVbmlmaWVkW2ldLCBpZHgpOwotICAgICAgIH0KLWRpZmYg LS1naXQgYmFja2VuZC9zcmMvbGx2bS9sbHZtX2dlbl9iYWNrZW5kLmNwcCBiYWNrZW5kL3NyYy9s bHZtL2xsdm1fZ2VuX2JhY2tlbmQuY3BwCi1pbmRleCBjOTNkODljYy4uNjRkNWIwZTUgMTAwNjQ0 Ci0tLS0gYS9iYWNrZW5kL3NyYy9sbHZtL2xsdm1fZ2VuX2JhY2tlbmQuY3BwCi0rKysgYi9iYWNr ZW5kL3NyYy9sbHZtL2xsdm1fZ2VuX2JhY2tlbmQuY3BwCi1AQCAtMzA0LDcgKzMwNCw3IEBAIG5h bWVzcGFjZSBnYmUKLSAgICAgICBUWVBFU0laRVZFQyhsb25nLDgpCi0gICAgICAgVFlQRVNJWkVW RUModW5zaWduZWQgbG9uZyw4KQotICAgICAgIGVsc2V7Ci0tICAgICAgICBTdHJ1Y3RUeXBlICpT dHJUeSA9IE0tPmdldFR5cGVCeU5hbWUoInN0cnVjdC4iK25hbWUpOwotKyAgICAgICAgU3RydWN0 VHlwZSAqU3RyVHkgPSBTdHJ1Y3RUeXBlOjpnZXRUeXBlQnlOYW1lKE0tPmdldENvbnRleHQoKSwg InN0cnVjdC4iK25hbWUpOwotICAgICAgICAgaWYoU3RyVHkpCi0gICAgICAgICAgIHJldHVybiBn ZXRUeXBlQnl0ZVNpemUodW5pdCxTdHJUeSk7Ci0gICAgICAgfQotZGlmZiAtLWdpdCBiYWNrZW5k L3NyYy9sbHZtL2xsdm1fbG9hZHN0b3JlX29wdGltaXphdGlvbi5jcHAgYmFja2VuZC9zcmMvbGx2 bS9sbHZtX2xvYWRzdG9yZV9vcHRpbWl6YXRpb24uY3BwCi1pbmRleCA1YWEzOGJlZi4uNmI1YzFi YWQgMTAwNjQ0Ci0tLS0gYS9iYWNrZW5kL3NyYy9sbHZtL2xsdm1fbG9hZHN0b3JlX29wdGltaXph dGlvbi5jcHAKLSsrKyBiL2JhY2tlbmQvc3JjL2xsdm0vbGx2bV9sb2Fkc3RvcmVfb3B0aW1pemF0 aW9uLmNwcAotQEAgLTE1Miw3ICsxNTIsNyBAQCBuYW1lc3BhY2UgZ2JlIHsKLSAgICAgdW5zaWdu ZWQgYWRkclNwYWNlID0gbGQtPmdldFBvaW50ZXJBZGRyZXNzU3BhY2UoKTsKLSAgICAgLy8gaW5z ZXJ0IGJlZm9yZSBmaXJzdCBsb2FkCi0gICAgIEJ1aWxkZXIuU2V0SW5zZXJ0UG9pbnQobGQpOwot LSAgICBWZWN0b3JUeXBlICp2ZWNUeSA9IFZlY3RvclR5cGU6OmdldChsZC0+Z2V0VHlwZSgpLCBz aXplKTsKLSsgICAgVmVjdG9yVHlwZSAqdmVjVHkgPSBWZWN0b3JUeXBlOjpnZXQobGQtPmdldFR5 cGUoKSwgc2l6ZSwgZmFsc2UpOwotICAgICBWYWx1ZSAqdmVjUHRyID0gQnVpbGRlci5DcmVhdGVC aXRDYXN0KGxkLT5nZXRQb2ludGVyT3BlcmFuZCgpLAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBQb2ludGVyVHlwZTo6Z2V0KHZlY1R5LCBhZGRyU3BhY2UpKTsKLSAg ICAgTG9hZEluc3QgKnZlY1ZhbHVlID0gQnVpbGRlci5DcmVhdGVMb2FkKHZlY1B0cik7Ci1AQCAt MjM2LDcgKzIzNiw3IEBAIG5hbWVzcGFjZSBnYmUgewotICAgICBCdWlsZGVyLlNldEluc2VydFBv aW50KG1lcmdlZFtzaXplLTFdKTsKLSAKLSAgICAgVHlwZSAqZGF0YVR5ID0gc3QtPmdldFZhbHVl T3BlcmFuZCgpLT5nZXRUeXBlKCk7Ci0tICAgIFZlY3RvclR5cGUgKnZlY1R5ID0gVmVjdG9yVHlw ZTo6Z2V0KGRhdGFUeSwgc2l6ZSk7Ci0rICAgIFZlY3RvclR5cGUgKnZlY1R5ID0gVmVjdG9yVHlw ZTo6Z2V0KGRhdGFUeSwgc2l6ZSwgZmFsc2UpOwotICAgICBWYWx1ZSAqIHBhcmVudCA9IFVuZGVm VmFsdWU6OmdldCh2ZWNUeSk7Ci0gICAgIGZvcih1bnNpZ25lZCBpID0gMDsgaSA8IHNpemU7IGkr KykgewotICAgICAgIHBhcmVudCA9IEJ1aWxkZXIuQ3JlYXRlSW5zZXJ0RWxlbWVudChwYXJlbnQs IHZhbHVlc1tpXSwgQ29uc3RhbnRJbnQ6OmdldChJbnRlZ2VyVHlwZTo6Z2V0KHN0LT5nZXRDb250 ZXh0KCksIDMyKSwgaSkpOwotZGlmZiAtLWdpdCBiYWNrZW5kL3NyYy9sbHZtL2xsdm1fcHJpbnRm X3BhcnNlci5jcHAgYmFja2VuZC9zcmMvbGx2bS9sbHZtX3ByaW50Zl9wYXJzZXIuY3BwCi1pbmRl eCA2YmI3YzUyYS4uYWY0NTljZDIgMTAwNjQ0Ci0tLS0gYS9iYWNrZW5kL3NyYy9sbHZtL2xsdm1f cHJpbnRmX3BhcnNlci5jcHAKLSsrKyBiL2JhY2tlbmQvc3JjL2xsdm0vbGx2bV9wcmludGZfcGFy c2VyLmNwcAotQEAgLTYzMCw3ICs2MzAsNyBAQCBlcnJvcjoKLSAgICAgICAgICAgICBpZiAoZWx0 X3R5cGUgIT0gZWx0X2RzdF90eXBlKSB7Ci0gICAgICAgICAgICAgICBWYWx1ZSAqSUkgPSBOVUxM OwotICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB2ZWNfbnVtOyBpKyspIHsKLS0g ICAgICAgICAgICAgICAgVmFsdWUgKnZlYyA9IElJID8gSUkgOiBVbmRlZlZhbHVlOjpnZXQoVmVj dG9yVHlwZTo6Z2V0KGVsdF9kc3RfdHlwZSwgdmVjX251bSkpOwotKyAgICAgICAgICAgICAgICBW YWx1ZSAqdmVjID0gSUkgPyBJSSA6IFVuZGVmVmFsdWU6OmdldChWZWN0b3JUeXBlOjpnZXQoZWx0 X2RzdF90eXBlLCB2ZWNfbnVtLCBmYWxzZSkpOwotICAgICAgICAgICAgICAgICBWYWx1ZSAqY3Yg PSBDb25zdGFudEludDo6Z2V0KFR5cGU6OmdldEludDMyVHkoZWx0X3R5cGUtPmdldENvbnRleHQo KSksIGkpOwotICAgICAgICAgICAgICAgICBWYWx1ZSAqb3JnID0gYnVpbGRlci0+Q3JlYXRlRXh0 cmFjdEVsZW1lbnQoYXJnLCBjdik7Ci0gICAgICAgICAgICAgICAgIFZhbHVlICpjdnQgPSBidWls ZGVyLT5DcmVhdGVJbnRDYXN0KG9yZywgZWx0X2RzdF90eXBlLCBzaWduKTsKLUBAIC02NTgsNyAr NjU4LDcgQEAgZXJyb3I6Ci0gICAgICAgICAgICAgaWYgKGVsdF90eXBlLT5nZXRUeXBlSUQoKSAh PSBUeXBlOjpGbG9hdFR5SUQpIHsKLSAgICAgICAgICAgICAgIFZhbHVlICpJSSA9IE5VTEw7Ci0g ICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHZlY19udW07IGkrKykgewotLSAgICAg ICAgICAgICAgICBWYWx1ZSAqdmVjID0gSUkgPyBJSSA6IFVuZGVmVmFsdWU6OmdldChWZWN0b3JU eXBlOjpnZXQoVHlwZTo6Z2V0RmxvYXRUeShlbHRfdHlwZS0+Z2V0Q29udGV4dCgpKSwgdmVjX251 bSkpOwotKyAgICAgICAgICAgICAgICBWYWx1ZSAqdmVjID0gSUkgPyBJSSA6IFVuZGVmVmFsdWU6 OmdldChWZWN0b3JUeXBlOjpnZXQoVHlwZTo6Z2V0RmxvYXRUeShlbHRfdHlwZS0+Z2V0Q29udGV4 dCgpKSwgdmVjX251bSwgZmFsc2UpKTsKLSAgICAgICAgICAgICAgICAgVmFsdWUgKmN2ID0gQ29u c3RhbnRJbnQ6OmdldChUeXBlOjpnZXRJbnQzMlR5KGVsdF90eXBlLT5nZXRDb250ZXh0KCkpLCBp KTsKLSAgICAgICAgICAgICAgICAgVmFsdWUgKm9yZyA9IGJ1aWxkZXItPkNyZWF0ZUV4dHJhY3RF bGVtZW50KGFyZywgY3YpOwotICAgICAgICAgICAgICAgICBWYWx1ZSogY3Z0ICA9IGJ1aWxkZXIt PkNyZWF0ZUZQQ2FzdChvcmcsIFR5cGU6OmdldEZsb2F0VHkobW9kdWxlLT5nZXRDb250ZXh0KCkp KTsKLWRpZmYgLS1naXQgYmFja2VuZC9zcmMvbGx2bS9sbHZtX3RvX2dlbi5jcHAgYmFja2VuZC9z cmMvbGx2bS9sbHZtX3RvX2dlbi5jcHAKLWluZGV4IDdmN2RlZmZlLi45ZThjY2M2NyAxMDA2NDQK LS0tLSBhL2JhY2tlbmQvc3JjL2xsdm0vbGx2bV90b19nZW4uY3BwCi0rKysgYi9iYWNrZW5kL3Ny Yy9sbHZtL2xsdm1fdG9fZ2VuLmNwcAotQEAgLTM1OCw3ICszNTgsNyBAQCBuYW1lc3BhY2UgZ2Jl Ci0gICAgIHBhc3Nlcy5hZGQoY3JlYXRlU2NhbGFyUmVwbEFnZ3JlZ2F0ZXNQYXNzKDY0LCB0cnVl LCAtMSwgLTEsIDY0KSk7Ci0gI2VuZGlmCi0gICAgIHBhc3Nlcy5hZGQoY3JlYXRlTG9hZFN0b3Jl T3B0aW1pemF0aW9uUGFzcygpKTsKLS0gICAgcGFzc2VzLmFkZChjcmVhdGVDb25zdGFudFByb3Bh Z2F0aW9uUGFzcygpKTsKLSsgICAgLy9wYXNzZXMuYWRkKGNyZWF0ZUNvbnN0YW50UHJvcGFnYXRp b25QYXNzKCkpOwotICAgICBwYXNzZXMuYWRkKGNyZWF0ZVByb21vdGVNZW1vcnlUb1JlZ2lzdGVy UGFzcygpKTsKLSAgICAgaWYob3B0TGV2ZWwgPiAwKQotICAgICAgIHBhc3Nlcy5hZGQoY3JlYXRl R1ZOUGFzcygpKTsgICAgICAgICAgICAgICAgIC8vIFJlbW92ZSByZWR1bmRhbmNpZXMKLUBAIC0z NjcsMTEgKzM2NywxMSBAQCBuYW1lc3BhY2UgZ2JlCi0gICAgIHBhc3Nlcy5hZGQoY3JlYXRlU2Nh bGFyaXplUGFzcygpKTsgICAgICAgICAgICAgLy8gRXhwYW5kIGFsbCB2ZWN0b3Igb3BzCi0gICAg IHBhc3Nlcy5hZGQoY3JlYXRlRXhwYW5kTGFyZ2VJbnRlZ2Vyc1Bhc3MoKSk7ICAgLy8gbGVnYWxp emUgbGFyZ2UgaW50ZWdlciBvcGVyYXRpb24KLSAgICAgcGFzc2VzLmFkZChjcmVhdGVJbnN0cnVj dGlvbkNvbWJpbmluZ1Bhc3MoKSk7ICAvLyBsZWdhbGl6ZSB3aWxsIGdlbmVyYXRlIHNvbWUgc2ls bHkgaW5zdHJ1Y3Rpb25zCi0tICAgIHBhc3Nlcy5hZGQoY3JlYXRlQ29uc3RhbnRQcm9wYWdhdGlv blBhc3MoKSk7ICAgLy8gcHJvcGFnYXRlIGNvbnN0YW50IGFmdGVyIHNjYWxhcml6ZS9sZWdhbGl6 ZQotKyAgICAvL3Bhc3Nlcy5hZGQoY3JlYXRlQ29uc3RhbnRQcm9wYWdhdGlvblBhc3MoKSk7ICAg Ly8gcHJvcGFnYXRlIGNvbnN0YW50IGFmdGVyIHNjYWxhcml6ZS9sZWdhbGl6ZQotICAgICBwYXNz ZXMuYWRkKGNyZWF0ZUV4cGFuZENvbnN0YW50RXhwclBhc3MoKSk7ICAgIC8vIGNvbnN0YW50IHBy b3AgbWF5IGdlbmVyYXRlIENvbnN0YW50RXhwcgotICAgICBwYXNzZXMuYWRkKGNyZWF0ZVByb21v dGVJbnRlZ2Vyc1Bhc3MoKSk7ICAgICAgIC8vIGFsaWduIGludGVnZXIgc2l6ZSB0byBwb3dlciBv ZiB0d28KLSAgICAgcGFzc2VzLmFkZChjcmVhdGVSZW1vdmVHRVBQYXNzKHVuaXQpKTsgICAgICAg ICAvLyBDb25zdGFudCBwcm9wIG1heSBnZW5lcmF0ZSBnZXAKLS0gICAgcGFzc2VzLmFkZChjcmVh dGVEZWFkSW5zdEVsaW1pbmF0aW9uUGFzcygpKTsgICAvLyBSZW1vdmUgc2ltcGxpZmllZCBpbnN0 cnVjdGlvbnMKLSsgICAgLy9wYXNzZXMuYWRkKGNyZWF0ZURlYWRJbnN0RWxpbWluYXRpb25QYXNz KCkpOyAgIC8vIFJlbW92ZSBzaW1wbGlmaWVkIGluc3RydWN0aW9ucwotICAgICBwYXNzZXMuYWRk KGNyZWF0ZUNGR1NpbXBsaWZpY2F0aW9uUGFzcygpKTsgICAgIC8vIE1lcmdlICYgcmVtb3ZlIEJC cwotICAgICBwYXNzZXMuYWRkKGNyZWF0ZUxvd2VyU3dpdGNoUGFzcygpKTsgICAgICAgICAgIC8v IHNpbXBsaWZ5IGNmZyB3aWxsIGdlbmVyYXRlIHN3aXRjaC1jYXNlIGluc3RydWN0aW9uCi0gICAg IGlmIChwcm9maWxpbmcpIHsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvYmVpZ25ldC9wYXRjaGVzL211 c2wucGF0Y2ggYi9zcmNwa2dzL2JlaWduZXQvcGF0Y2hlcy9tdXNsLnBhdGNoCmRlbGV0ZWQgZmls ZSBtb2RlIDEwMDY0NAppbmRleCBjZWZhZmJiNjU1ODguLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNw a2dzL2JlaWduZXQvcGF0Y2hlcy9tdXNsLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTEgKzAs MCBAQAotLS0tIGEvYmFja2VuZC9zcmMvYmFja2VuZC9nZW4vZ2VuX21lc2FfZGlzYXNtLmMKLSsr KyBiL2JhY2tlbmQvc3JjL2JhY2tlbmQvZ2VuL2dlbl9tZXNhX2Rpc2FzbS5jCi1AQCAtMTEzNyw3 ICsxMTM3LDcgQEAgc3RhdGljIHVpbnQzMl90IF9fY29udl9oYWxmX3RvX2Zsb2F0KHVpbnQxNl90 IGgpCi0gICAgICAgLy8gQWRqdXN0IG1hbnRpc3NhIHNvIGl0J3Mgbm9ybWFsaXplZCAoYW5kIGtl ZXAKLSAgICAgICAvLyB0cmFjayBvZiBleHBvbmVudCBhZGp1c3RtZW50KQotICAgICAgIGludCBl ID0gLTE7Ci0tICAgICAgdWludCBtID0gaS5tYW50aXNzYTsKLSsgICAgICB1bnNpZ25lZCBpbnQg bSA9IGkubWFudGlzc2E7Ci0gICAgICAgZG8gewotICAgICAgICAgZSsrOwotICAgICAgICAgbSA8 PD0gMTsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvYmVpZ25ldC90ZW1wbGF0ZSBiL3NyY3BrZ3MvYmVp Z25ldC90ZW1wbGF0ZQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGNlNmJiYjdhZTI0 Li4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9iZWlnbmV0L3RlbXBsYXRlCisrKyAvZGV2L251 bGwKQEAgLTEsMjIgKzAsMCBAQAotIyBUZW1wbGF0ZSBmaWxlIGZvciAnYmVpZ25ldCcKLXBrZ25h bWU9YmVpZ25ldAotdmVyc2lvbj0xLjMuMgotcmV2aXNpb249MTAKLWFyY2hzPSJpNjg2KiB4ODZf NjQqIgotd3Jrc3JjPSJCZWlnbmV0LSR7dmVyc2lvbn0tU291cmNlIgotYnVpbGRfc3R5bGU9Y21h a2UKLWhvc3RtYWtlZGVwZW5kcz0iY2xhbmcgbGx2bSBwa2ctY29uZmlnIgotbWFrZWRlcGVuZHM9 Ik1lc2FMaWItZGV2ZWwgbGliZWRpdC1kZXZlbCBsaWJmZmktZGV2ZWwgb2NsLWljZC1kZXZlbCB6 bGliLWRldmVsCi0gbGliWGZpeGVzLWRldmVsIgotZGVwZW5kcz0ib2NsLWljZCIKLXNob3J0X2Rl c2M9IkJlaWduZXQgR1BHUFUgU3lzdGVtIGZvciBJbnRlbCBHUFVzIgotbWFpbnRhaW5lcj0iT3Jw aGFuZWQgPG9ycGhhbkB2b2lkbGludXgub3JnPiIKLWxpY2Vuc2U9IkxHUEwtMi4xLW9yLWxhdGVy IgotaG9tZXBhZ2U9Imh0dHA6Ly93d3cuZnJlZWRlc2t0b3Aub3JnL3dpa2kvU29mdHdhcmUvQmVp Z25ldC8iCi1kaXN0ZmlsZXM9Imh0dHBzOi8vMDEub3JnL3NpdGVzL2RlZmF1bHQvZmlsZXMvJHtw a2duYW1lfS0ke3ZlcnNpb259LXNvdXJjZS50YXIuZ3oiCi1jaGVja3N1bT1jNTU1ZWRiYTE0OWRl MjMyNDM5NjVhNzAzZjM5Zjc5ZmEwNmYxNWJjZmY1YTM3NjJiNTU0NGIwOTI1MDEwYjQzCi0KLXBv c3RfaW5zdGFsbCgpIHsKLQkjIHJlbW92ZSBDTCBoZWFkZXJzLCB3ZSBkbyB1c2Ugb3BlbmNsLWhl YWRlcnMgaW5zdGVhZC4KLQlybSAtciAke0RFU1RESVJ9L3Vzci9pbmNsdWRlCi19CmRpZmYgLS1n aXQgYS9zcmNwa2dzL2JlaWduZXQvdXBkYXRlIGIvc3JjcGtncy9iZWlnbmV0L3VwZGF0ZQpkZWxl dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2E0MWUwYWZlNjBjLi4wMDAwMDAwMDAwMDAKLS0t IGEvc3JjcGtncy9iZWlnbmV0L3VwZGF0ZQorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLXNp dGU9Imh0dHBzOi8vMDEub3JnL2JlaWduZXQvZG93bmxvYWRzIgpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9yZW1vdmVkLXBhY2thZ2VzL3RlbXBsYXRlIGIvc3JjcGtncy9yZW1vdmVkLXBhY2thZ2VzL3Rl bXBsYXRlCmluZGV4IGE2ZDk0Y2MwNTFkNi4uZTRmYWNiZGExNjA3IDEwMDY0NAotLS0gYS9zcmNw a2dzL3JlbW92ZWQtcGFja2FnZXMvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9yZW1vdmVkLXBhY2th Z2VzL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAncmVtb3Zl ZC1wYWNrYWdlcycKIHBrZ25hbWU9cmVtb3ZlZC1wYWNrYWdlcwogdmVyc2lvbj0wLjEKLXJldmlz aW9uPTY5CityZXZpc2lvbj03MAogYnVpbGRfc3R5bGU9bWV0YQogc2hvcnRfZGVzYz0iVW5pbnN0 YWxscyBwYWNrYWdlcyByZW1vdmVkIGZyb20gcmVwb3NpdG9yeSIKIG1haW50YWluZXI9IlBpb3Ry IFfDs2pjaWsgPGNob2NpbWllckB0bGVuLnBsPiIKQEAgLTI1LDYgKzI1LDcgQEAgcmVwbGFjZXM9 IgogIGF0b208PTEuNDQuMF8xCiAgYXZvZ2Fkcm8tZGV2ZWw8PTEuMi4wXzgKICBhdm9nYWRybzw9 MS4yLjBfOAorIGJlaWduZXQ8PTEuMy4yXzEwCiAgYm9ra2VuPD0xLjhfMwogIGJvbWk8PTAuOS4x MV8xNwogIGJ1cnAtY2xpZW50PD0xLjQuNDBfMTMKCkZyb20gZGI2MDg3ODhiOGI5MzI2ZWYyMWE4 N2U1NDY3NmM0N2JmYmNmMmY3MyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogcHJleiA8 cHJlekBuYXRpb25hbC5zaGl0cG9zdGluZy5hZ2VuY3k+CkRhdGU6IE1vbiwgMiBNYXkgMjAyMiAy MjozMToyNSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMjAvMjNdIGxkYzogdXBkYXRlIHRvIDEuMjku MC4KCi0tLQogY29tbW9uL3NobGlicyAgICAgICAgfCAxMCArKysrKy0tLS0tCiBzcmNwa2dzL2xk Yy90ZW1wbGF0ZSB8ICA5ICsrKystLS0tLQogMiBmaWxlcyBjaGFuZ2VkLCA5IGluc2VydGlvbnMo KyksIDEwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2NvbW1vbi9zaGxpYnMgYi9jb21tb24v c2hsaWJzCmluZGV4IDMzMzM3NDBiMjg4MS4uNzA4ODhhMjI3MzY3IDEwMDY0NAotLS0gYS9jb21t b24vc2hsaWJzCisrKyBiL2NvbW1vbi9zaGxpYnMKQEAgLTIxODEsMTEgKzIxODEsMTEgQEAgbGli RmNpdHg1Q29uZmlnLnNvLjYgbGliZmNpdHg1LTUuMC41XzEKIGxpYkZjaXR4NUdDbGllbnQuc28u MiBmY2l0eDUtZ3RrLTUuMC40XzEKIGxpYkZjaXR4NVF0NURCdXNBZGRvbnMuc28uMSBmY2l0eDUt cXQ1LTUuMC4zXzEKIGxpYkZjaXR4NVF0NVdpZGdldHNBZGRvbnMuc28uMiBmY2l0eDUtcXQ1LTUu MC4zXzEKLWxpYmRydW50aW1lLWxkYy1kZWJ1Zy1zaGFyZWQuc28uOTggbGRjLXJ1bnRpbWUtMS4y OC4wXzEKLWxpYmRydW50aW1lLWxkYy1zaGFyZWQuc28uOTggbGRjLXJ1bnRpbWUtMS4yOC4wXzEK LWxpYnBob2JvczItbGRjLXNoYXJlZC5zby45OCBsZGMtcnVudGltZS0xLjI4LjBfMQotbGlicGhv Ym9zMi1sZGMtZGVidWctc2hhcmVkLnNvLjk4IGxkYy1ydW50aW1lLTEuMjguMF8xCi1saWJsZGMt aml0LnNvLjk5IGxkYy1ydW50aW1lLTEuMjkuMF8xCitsaWJkcnVudGltZS1sZGMtZGVidWctc2hh cmVkLnNvLjk5IGxkYy1ydW50aW1lLTEuMjkuMF8xCitsaWJkcnVudGltZS1sZGMtc2hhcmVkLnNv Ljk5IGxkYy1ydW50aW1lLTEuMjkuMF8xCitsaWJwaG9ib3MyLWxkYy1zaGFyZWQuc28uOTkgbGRj LXJ1bnRpbWUtMS4yOS4wXzEKK2xpYnBob2JvczItbGRjLWRlYnVnLXNoYXJlZC5zby45OSBsZGMt cnVudGltZS0xLjI5LjBfMQorbGlibGRjLWppdC5zby45OCBsZGMtcnVudGltZS0xLjI4LjBfMQog bGlibWFyYmxld2lkZ2V0LXF0NS5zby4yOCBtYXJibGU1LTE3LjEyLjJfMQogbGliYXN0cm8uc28u MiBtYXJibGU1LTE3LjEyLjJfMQogbGlicGFycm90LnNvLjYuOS4wIHBhcnJvdC02LjkuMF8xCmRp ZmYgLS1naXQgYS9zcmNwa2dzL2xkYy90ZW1wbGF0ZSBiL3NyY3BrZ3MvbGRjL3RlbXBsYXRlCmlu ZGV4IGU4NDliMjcyNTAxZS4uMWQ3MmE4ODA1ZWI2IDEwMDY0NAotLS0gYS9zcmNwa2dzL2xkYy90 ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2xkYy90ZW1wbGF0ZQpAQCAtMSw4ICsxLDcgQEAKICMgVGVt cGxhdGUgZmlsZSBmb3IgJ2xkYycKIHBrZ25hbWU9bGRjCi12ZXJzaW9uPTEuMjguMAotcmV2aXNp b249MgotcmV2ZXJ0cz0iMS4yOS4wXzEiCit2ZXJzaW9uPTEuMjkuMAorcmV2aXNpb249MQogd3Jr c3JjPSJsZGMtJHt2ZXJzaW9ufS1zcmMiCiBidWlsZF9zdHlsZT1jbWFrZQogY29uZmlndXJlX2Fy Z3M9IgpAQCAtMTIsNyArMTEsNyBAQCBjb25maWd1cmVfYXJncz0iCiAgLURCQVNIX0NPTVBMRVRJ T05fQ09NUExFVElPTlNESVI9L3Vzci9zaGFyZS9iYXNoLWNvbXBsZXRpb24KICAtRENfU1lTVEVN X0xJQlM9J3Vud2luZDttO3B0aHJlYWQ7cnQ7ZGwnIgogY29uZl9maWxlcz0iL2V0Yy9sZGMyLmNv bmYiCi1ob3N0bWFrZWRlcGVuZHM9ImRtZCBsbHZtMTIgcGVybCBwa2ctY29uZmlnIgoraG9zdG1h a2VkZXBlbmRzPSJkbWQgbGx2bTE0IHBlcmwgcGtnLWNvbmZpZyIKIG1ha2VkZXBlbmRzPSJsaWJj dXJsLWRldmVsIGxpYmZmaS1kZXZlbCBuY3Vyc2VzLWRldmVsIHpsaWItZGV2ZWwKICBsbHZtLWxp YnVud2luZC1kZXZlbCIKIGRlcGVuZHM9ImxkYy1ydW50aW1lIGxsdm0tbGlidW53aW5kLWRldmVs IgpAQCAtMjMsNyArMjIsNyBAQCBsaWNlbnNlPSJCU0QtMy1DbGF1c2UsIEJTTC0xLjAiCiBob21l cGFnZT0iaHR0cHM6Ly93aWtpLmRsYW5nLm9yZy9MREMiCiBjaGFuZ2Vsb2c9Imh0dHBzOi8vcmF3 LmdpdGh1YnVzZXJjb250ZW50LmNvbS9sZGMtZGV2ZWxvcGVycy9sZGMvbWFzdGVyL0NIQU5HRUxP Ry5tZCIKIGRpc3RmaWxlcz0iaHR0cHM6Ly9naXRodWIuY29tL2xkYy1kZXZlbG9wZXJzL2xkYy9y ZWxlYXNlcy9kb3dubG9hZC92JHt2ZXJzaW9ufS9sZGMtJHt2ZXJzaW9ufS1zcmMudGFyLmd6Igot Y2hlY2tzdW09MTdmZWU4YmI1MzViY2I4Y2RhMGE0NTk0NzUyNjU1NWM0NmMwNDVmMzAyYTczNDlj Yzg3MTFiMjU0ZTU0Y2YwOQorY2hlY2tzdW09ZDBjMDY2ZWI5NjU0Njc2MjVkOWM1ZTc1YzAwYzU4 MzQ1MWI5ZmZhMzYzNjAxZjllMzcyNzVjYThhOGFlYTE0MAogbm9waWU9eWVzCiBub2Nyb3NzPSJk bWQgY29tcGlsYXRpb24gZmFpbHMgb24gY3Jvc3MiCiAjIHRlc3RzIHRpbWVvdXQgb24gbXVzbDsg YWxzbyByZXF1aXJlIHVucGFja2FnZWQgcHl0aG9uMy1saXQKCkZyb20gNGI1ZDc2ODBhZmYwZGNi N2Y1ZDBmY2IzNTY3ZDAwNWJmMjE1OWUwNSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTog cHJleiA8cHJlekBuYXRpb25hbC5zaGl0cG9zdGluZy5hZ2VuY3k+CkRhdGU6IE1vbiwgMiBNYXkg MjAyMiAxOTowNzo0MCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMjEvMjNdIGluY2x1ZGUtd2hhdC15 b3UtdXNlOiB1cGRhdGUgdG8gMC4xOC4KCi0tLQogc3JjcGtncy9pbmNsdWRlLXdoYXQteW91LXVz ZS90ZW1wbGF0ZSB8IDQgKystLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2luY2x1ZGUtd2hhdC15b3UtdXNlL3Rl bXBsYXRlIGIvc3JjcGtncy9pbmNsdWRlLXdoYXQteW91LXVzZS90ZW1wbGF0ZQppbmRleCBiMTNi YjdlZTU2YWYuLjI5NzY2OWY2MDQ1OSAxMDA2NDQKLS0tIGEvc3JjcGtncy9pbmNsdWRlLXdoYXQt eW91LXVzZS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2luY2x1ZGUtd2hhdC15b3UtdXNlL3RlbXBs YXRlCkBAIC0xLDYgKzEsNiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnaW5jbHVkZS13aGF0LXlv dS11c2UnCiBwa2duYW1lPWluY2x1ZGUtd2hhdC15b3UtdXNlCi12ZXJzaW9uPTAuMTYKK3ZlcnNp b249MC4xOAogcmV2aXNpb249MQogd3Jrc3JjPSIke3BrZ25hbWV9IgogYnVpbGRfc3R5bGU9Y21h a2UKQEAgLTEyLDcgKzEyLDcgQEAgbWFpbnRhaW5lcj0iTGVhaCBOZXVraXJjaGVuIDxsZWFoQHZ1 eHUub3JnPiIKIGxpY2Vuc2U9Ik5DU0EiCiBob21lcGFnZT0iaHR0cHM6Ly9pbmNsdWRlLXdoYXQt eW91LXVzZS5vcmcvIgogZGlzdGZpbGVzPSJodHRwczovL2luY2x1ZGUtd2hhdC15b3UtdXNlLm9y Zy9kb3dubG9hZHMvJHtwa2duYW1lfS0ke3ZlcnNpb259LnNyYy50YXIuZ3oiCi1jaGVja3N1bT04 ZDZmYzliMjU1MzQzYmMxZTVlYzQ1OWUzOTUxMmRmMWQ1MWM2MGUwMzU2Mjk4NWUwMDc2MDM2MTE5 ZmY1YTFjCitjaGVja3N1bT05MTAyZmM4NDE5Mjk0NzU3ZGY4NmE4OWNlNmVjMzA1ZjhkOTBhODE4 ZDFmMjU5OGExMzlkMTVlYjE4OTRiOGYzCiBweXRob25fdmVyc2lvbj0zCiAKIHBvc3RfaW5zdGFs bCgpIHsKCkZyb20gNDdiZTUwN2Q3OGJjYmFhMDVhMzhlN2E4ODVmNzk3YzlkMmE3NTAxNSBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogcHJleiA8cHJlekBuYXRpb25hbC5zaGl0cG9zdGlu Zy5hZ2VuY3k+CkRhdGU6IE1vbiwgMiBNYXkgMjAyMiAyMToxODoyNCArMDIwMApTdWJqZWN0OiBb UEFUQ0ggMjIvMjNdIFNQSVJWLUxMVk0tVHJhbnNsYXRvcjogdXBkYXRlIHRvIDE0LjAuMC4KCi0t LQogY29tbW9uL3NobGlicyAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMSArCiBzcmNwa2dz L1NQSVJWLUxMVk0tVHJhbnNsYXRvci90ZW1wbGF0ZSB8IDEzICsrKysrKystLS0tLS0KIDIgZmls ZXMgY2hhbmdlZCwgOCBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L2NvbW1vbi9zaGxpYnMgYi9jb21tb24vc2hsaWJzCmluZGV4IDcwODg4YTIyNzM2Ny4uNDBlZmQy OWQ1YjcxIDEwMDY0NAotLS0gYS9jb21tb24vc2hsaWJzCisrKyBiL2NvbW1vbi9zaGxpYnMKQEAg LTk4MSw2ICs5ODEsNyBAQCBsaWJjbGFuZy1jcHAuc28uMTQgbGliY2xhbmctY3BwLTE0LjAuM18x CiBsaWJMTFZNLTExLnNvIGxpYmxsdm0xMS0xMS4wLjBfMQogbGliTExWTS0xMi5zbyBsaWJsbHZt MTItMTIuMC4wXzEKIGxpYkxMVk0tMTQuc28gbGlibGx2bTE0LTE0LjAuM18xCitsaWJMTFZNU1BJ UlZMaWIuc28uMTQgU1BJUlYtTExWTS1UcmFuc2xhdG9yLTE0LjAuMF8xCiBsaWJpc29mcy5zby42 IGxpYmlzb2ZzLTAuNi4yNF8xCiBsaWJtcGFjay5zby4wIGxpYm1wYWNrLTEuMC41XzEKIGxpYkdl b0lQLnNvLjEgbGliZ2VvaXAtMS40LjhfMQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9TUElSVi1MTFZN LVRyYW5zbGF0b3IvdGVtcGxhdGUgYi9zcmNwa2dzL1NQSVJWLUxMVk0tVHJhbnNsYXRvci90ZW1w bGF0ZQppbmRleCAyNTA0Y2FiZWQzNjcuLmZkZTk2ODlmNzEwYyAxMDA2NDQKLS0tIGEvc3JjcGtn cy9TUElSVi1MTFZNLVRyYW5zbGF0b3IvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9TUElSVi1MTFZN LVRyYW5zbGF0b3IvdGVtcGxhdGUKQEAgLTEsMTkgKzEsMjAgQEAKICMgVGVtcGxhdGUgZmlsZSBm b3IgJ1NQSVJWLUxMVk0tVHJhbnNsYXRvcicKIHBrZ25hbWU9U1BJUlYtTExWTS1UcmFuc2xhdG9y Ci12ZXJzaW9uPTEyLjAuMAordmVyc2lvbj0xNC4wLjAKIHJldmlzaW9uPTEKIGJ1aWxkX3N0eWxl PWNtYWtlCiBtYWtlX2J1aWxkX2FyZ3M9Imxsdm0tc3BpcnYiCi1jb25maWd1cmVfYXJncz0iLVdu by1kZXYgLURMTFZNX0xJTktfTExWTV9EWUxJQj1PTiAtRENNQUtFX1NLSVBfUlBBVEg9T04KLSAt RExMVk1fU1BJUlZfSU5DTFVERV9URVNUUz1PRkYgLURCVUlMRF9TSEFSRURfTElCUz1PTiIKLWhv c3RtYWtlZGVwZW5kcz0iY2xhbmcgY2xhbmctdG9vbHMtZXh0cmEgbGx2bSIKLW1ha2VkZXBlbmRz PSJsbHZtIgorY29uZmlndXJlX2FyZ3M9Ii1EQlVJTERfU0hBUkVEX0xJQlM9T04gLURDTUFLRV9C VUlMRF9UWVBFPVJlbGVhc2UKKyAtRENNQUtFX1BPU0lUSU9OX0lOREVQRU5ERU5UX0NPREU9T04g LURDTUFLRV9TS0lQX1JQQVRIPU9OIC1ETExWTV9JTkNMVURFX1RFU1RTPU9GRgorIC1ETExWTV9M SU5LX0xMVk1fRFlMSUI9T04gLURMTFZNX0VYVEVSTkFMX0xJVD0vdXNyL2Jpbi9saXQgLVduby1k ZXYgLURMTFZNX0VYVEVSTkFMX1NQSVJWX0hFQURFUlNfU09VUkNFX0RJUj0vdXNyL2luY2x1ZGUv c3BpcnYvICIKK2hvc3RtYWtlZGVwZW5kcz0iY2xhbmcgY2xhbmctdG9vbHMtZXh0cmEgbGx2bTE0 IgorbWFrZWRlcGVuZHM9Imxsdm0xNCBTUElSVi1IZWFkZXJzIgogc2hvcnRfZGVzYz0iQVBJIGFu ZCBjb21tYW5kcyBmb3IgcHJvY2Vzc2luZyBTUElSLVYgbW9kdWxlcyIKIG1haW50YWluZXI9Ik9y cGhhbmVkIDxvcnBoYW5Adm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJOQ1NBIgogaG9tZXBhZ2U9 Imh0dHBzOi8vZ2l0aHViLmNvbS9LaHJvbm9zR3JvdXAvU1BJUlYtTExWTS1UcmFuc2xhdG9yIgog ZGlzdGZpbGVzPSJodHRwczovL2dpdGh1Yi5jb20vS2hyb25vc0dyb3VwLyR7cGtnbmFtZX0vYXJj aGl2ZS9yZWZzL3RhZ3MvdiR7dmVyc2lvbn0udGFyLmd6IgotY2hlY2tzdW09NmU0ZmFkMDQyMDNm MjVmY2RlNGMzMDhjNTNlOWY1OWJkMDVhMzkwOTc4OTkyZGIzMjEyZDRiNjNhZmY2MjEwOAorY2hl Y2tzdW09MWFmYzUyYmI0ZTM5YWViOWI1YjY5MzI0YTIwMWM4MWJkOTg2MzY0ZjM0N2I1NTk5OTVl ZmY2ZmQ2ZjAxMzMxOAogbWFrZV9jaGVjaz1ubwogCiBwb3N0X2luc3RhbGwoKSB7CgpGcm9tIDZl OWQ5MGMxMDhiMjM3ODc5MDA0NTZmNGEyY2YzNjg3MjMwYTc0NTQgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206IHByZXogPHByZXpAbmF0aW9uYWwuc2hpdHBvc3RpbmcuYWdlbmN5PgpEYXRl OiBNb24sIDIgTWF5IDIwMjIgMjE6MzU6NDMgKzAyMDAKU3ViamVjdDogW1BBVENIIDIzLzIzXSBp c3BjOiB1cGRhdGUgdG8gMS4xNy4wLgoKLS0tCiAuLi4vaXNwYy9wYXRjaGVzL2NtYWtlLWJ1aWxk LXR5cGUtbm9uZS5wYXRjaCAgfCAgIDE4IC0KIHNyY3BrZ3MvaXNwYy9wYXRjaGVzL2xsdm0xMi0w MDEucGF0Y2ggICAgICAgICB8ICAgNTcgLQogc3JjcGtncy9pc3BjL3BhdGNoZXMvbGx2bTEyLTAw Mi5wYXRjaCAgICAgICAgIHwgIDkyMyAtLS0tLS0tLQogc3JjcGtncy9pc3BjL3BhdGNoZXMvbGx2 bTEyLTAwMy5wYXRjaCAgICAgICAgIHwgMTUwNCAtLS0tLS0tLS0tLS0KIHNyY3BrZ3MvaXNwYy9w YXRjaGVzL2xsdm0xMi0wMDQucGF0Y2ggICAgICAgICB8ICAgMzQgLQogc3JjcGtncy9pc3BjL3Bh dGNoZXMvbGx2bTEyLTAwNS5wYXRjaCAgICAgICAgIHwgIDM3MiAtLS0KIHNyY3BrZ3MvaXNwYy9w YXRjaGVzL2xsdm0xMi0wMDYucGF0Y2ggICAgICAgICB8ICAxMjYgLQogc3JjcGtncy9pc3BjL3Bh dGNoZXMvbGx2bTEyLTAwNy5wYXRjaCAgICAgICAgIHwgIDE2MCAtLQogc3JjcGtncy9pc3BjL3Bh dGNoZXMvbGx2bTEyLTAwOC5wYXRjaCAgICAgICAgIHwgIDE0OSAtLQogc3JjcGtncy9pc3BjL3Bh dGNoZXMvbGx2bTEyLTAwOS5wYXRjaCAgICAgICAgIHwgMjEwOSAtLS0tLS0tLS0tLS0tLS0tLQog c3JjcGtncy9pc3BjL3RlbXBsYXRlICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgOCArLQog MTEgZmlsZXMgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspLCA1NDU2IGRlbGV0aW9ucygtKQogZGVs ZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvaXNwYy9wYXRjaGVzL2NtYWtlLWJ1aWxkLXR5cGUtbm9u ZS5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvaXNwYy9wYXRjaGVzL2xsdm0xMi0w MDEucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2lzcGMvcGF0Y2hlcy9sbHZtMTIt MDAyLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9pc3BjL3BhdGNoZXMvbGx2bTEy LTAwMy5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvaXNwYy9wYXRjaGVzL2xsdm0x Mi0wMDQucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2lzcGMvcGF0Y2hlcy9sbHZt MTItMDA1LnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9pc3BjL3BhdGNoZXMvbGx2 bTEyLTAwNi5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvaXNwYy9wYXRjaGVzL2xs dm0xMi0wMDcucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2lzcGMvcGF0Y2hlcy9s bHZtMTItMDA4LnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9pc3BjL3BhdGNoZXMv bGx2bTEyLTAwOS5wYXRjaAoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvaXNwYy9wYXRjaGVzL2NtYWtl LWJ1aWxkLXR5cGUtbm9uZS5wYXRjaCBiL3NyY3BrZ3MvaXNwYy9wYXRjaGVzL2NtYWtlLWJ1aWxk LXR5cGUtbm9uZS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDExZTM1M2M3 MzE0Li4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9pc3BjL3BhdGNoZXMvY21ha2UtYnVpbGQt dHlwZS1ub25lLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTggKzAsMCBAQAotSW5kZXg6IGlz cGMtMS4xNS4wL0NNYWtlTGlzdHMudHh0Ci09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gaXNwYy0xLjE1LjAub3Jp Zy9DTWFrZUxpc3RzLnR4dAotKysrIGlzcGMtMS4xNS4wL0NNYWtlTGlzdHMudHh0Ci1AQCAtMTU3 LDEzICsxNTcsNiBAQCBzZXQoT1VUUFVUX1JFTEVBU0UgUmVsZWFzZS9iaW4pCi0gc2V0KENNQUtF X1JVTlRJTUVfT1VUUFVUX0RJUkVDVE9SWSAke0NNQUtFX0NVUlJFTlRfQklOQVJZX0RJUn0vYmlu ICkKLSAKLSBpZihDTUFLRV9CVUlMRF9UWVBFKQotLSAgICAjIFZhbGlkYXRlIGJ1aWxkIHR5cGUK LS0gICAgc2V0KENPTkZJR1VSQVRJT05fVFlQRVMgIkRlYnVnO1JlbGVhc2U7UmVsV2l0aERlYklu Zm8iKQotLQotLSAgICBzdHJpbmcoRklORCAiJHtDT05GSUdVUkFUSU9OX1RZUEVTfSIgIiR7Q01B S0VfQlVJTERfVFlQRX0iIE1BVENIRURfQ09ORklHKQotLSAgICBpZiAoJHtNQVRDSEVEX0NPTkZJ R30gRVFVQUwgLTEpCi0tICAgICAgICAgbWVzc2FnZShGQVRBTF9FUlJPUiAiQ01BS0VfQlVJTERf VFlQRSAoJHtDTUFLRV9CVUlMRF9UWVBFfSkgYWxsb3dzIG9ubHkgdGhlIGZvbGxvd2luZyB2YWx1 ZXM6ICR7Q09ORklHVVJBVElPTl9UWVBFU30iKQotLSAgICBlbmRpZigpCi0gZWxzZShOT1QgQ01B S0VfQlVJTERfVFlQRSkKLSAgICAgc2V0KENNQUtFX0JVSUxEX1RZUEUgIlJlbGVhc2UiKQotICAg ICBtZXNzYWdlKFNUQVRVUyAiQnVpbGQgdHlwZSBub3Qgc3BlY2lmaWVkOiBVc2UgUmVsZWFzZSBi eSBkZWZhdWx0LiIpCmRpZmYgLS1naXQgYS9zcmNwa2dzL2lzcGMvcGF0Y2hlcy9sbHZtMTItMDAx LnBhdGNoIGIvc3JjcGtncy9pc3BjL3BhdGNoZXMvbGx2bTEyLTAwMS5wYXRjaApkZWxldGVkIGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggNWYyZDNmNWE0MDllLi4wMDAwMDAwMDAwMDAKLS0tIGEvc3Jj cGtncy9pc3BjL3BhdGNoZXMvbGx2bTEyLTAwMS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDU3 ICswLDAgQEAKLUZyb20gMWMwZjg5ZGNjYjc3NGYyMTZjN2Y2ZTc2YTk5ZWU5MDdhMWU2NDFjYiBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IERtaXRyeSBCYWJva2luIDxkbWl0cnkueS5i YWJva2luQGludGVsLmNvbT4KLURhdGU6IFR1ZSwgMjIgRGVjIDIwMjAgMTc6MDM6NTkgLTA4MDAK LVN1YmplY3Q6IFtQQVRDSF0gRml4IHRvIHdvcmsgd2l0aCBMTFZNIHRydW5rIGFmdGVyIGxsdm0v bGx2bS1wcm9qZWN0QDQxYzNiMjcxMwotCi0tLS0KLSBzcmMvY3R4LmNwcCB8IDE4ICsrKysrKysr KysrKy0tLS0tLQotIDEgZmlsZSBjaGFuZ2VkLCAxMiBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9u cygtKQotCi1kaWZmIC0tZ2l0IGEvc3JjL2N0eC5jcHAgYi9zcmMvY3R4LmNwcAotaW5kZXggNmZi YjhiOWNmLi45NzdlOWQyMjIgMTAwNjQ0Ci0tLS0gYS9zcmMvY3R4LmNwcAotKysrIGIvc3JjL2N0 eC5jcHAKLUBAIC0xNDczLDExICsxNDczLDE1IEBAIHZvaWQgRnVuY3Rpb25FbWl0Q29udGV4dDo6 QWRkRGVidWdQb3MobGx2bTo6VmFsdWUgKnZhbHVlLCBjb25zdCBTb3VyY2VQb3MgKnBvcywKLSAg ICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmluc3QgPSBsbHZtOjpkeW5fY2FzdDxsbHZtOjpJbnN0cnVj dGlvbj4odmFsdWUpOwotICAgICBpZiAoaW5zdCAhPSBOVUxMICYmIG0tPmRpQnVpbGRlcikgewot ICAgICAgICAgU291cmNlUG9zIHAgPSBwb3MgPyAqcG9zIDogY3VycmVudFBvczsKLS0gICAgICAg IGlmIChwLmZpcnN0X2xpbmUgIT0gMCkKLSsgICAgICAgIGlmIChwLmZpcnN0X2xpbmUgIT0gMCkg ewotICAgICAgICAgICAgIC8vIElmIGZpcnN0X2xpbmUgPT0gMCwgdGhlbiB3ZSdyZSBpbiB0aGUg bWlkZGxlIG9mIHNldHRpbmcgdXAKLSAgICAgICAgICAgICAvLyB0aGUgc3RhbmRhcmQgbGlicmFy eSBvciB0aGUgbGlrZTsgZG9uJ3QgYWRkIGRlYnVnIHBvc2l0aW9ucwotICAgICAgICAgICAgIC8v IGZvciB0aG9zZSBmdW5jdGlvbnMKLS0gICAgICAgICAgICBpbnN0LT5zZXREZWJ1Z0xvYyhsbHZt OjpEZWJ1Z0xvYzo6Z2V0KHAuZmlyc3RfbGluZSwgcC5maXJzdF9jb2x1bW4sIHNjb3BlID8gc2Nv cGUgOiBHZXRESVNjb3BlKCkpKTsKLSsgICAgICAgICAgICBzY29wZSA9IHNjb3BlID8gc2NvcGUg OiBHZXRESVNjb3BlKCk7Ci0rICAgICAgICAgICAgbGx2bTo6RGVidWdMb2MgZGlMb2MgPQotKyAg ICAgICAgICAgICAgICBsbHZtOjpESUxvY2F0aW9uOjpnZXQoc2NvcGUtPmdldENvbnRleHQoKSwg cC5maXJzdF9saW5lLCBwLmZpcnN0X2NvbHVtbiwgc2NvcGUsIG51bGxwdHIsIGZhbHNlKTsKLSsg ICAgICAgICAgICBpbnN0LT5zZXREZWJ1Z0xvYyhkaUxvYyk7Ci0rICAgICAgICB9Ci0gICAgIH0K LSB9Ci0gCi1AQCAtMTUxOCw5ICsxNTIyLDEwIEBAIHZvaWQgRnVuY3Rpb25FbWl0Q29udGV4dDo6 RW1pdFZhcmlhYmxlRGVidWdJbmZvKFN5bWJvbCAqc3ltKSB7Ci0gICAgIGxsdm06OkRJTG9jYWxW YXJpYWJsZSAqdmFyID0gbS0+ZGlCdWlsZGVyLT5jcmVhdGVBdXRvVmFyaWFibGUoCi0gICAgICAg ICBzY29wZSwgc3ltLT5uYW1lLCBzeW0tPnBvcy5HZXRESUZpbGUoKSwgc3ltLT5wb3MuZmlyc3Rf bGluZSwgZGlUeXBlLCB0cnVlIC8qIHByZXNlcnZlIHRocm91Z2ggb3B0cyAqLyk7Ci0gCi0rICAg IGxsdm06OkRlYnVnTG9jIGRpTG9jID0KLSsgICAgICAgIGxsdm06OkRJTG9jYXRpb246OmdldChz Y29wZS0+Z2V0Q29udGV4dCgpLCBzeW0tPnBvcy5maXJzdF9saW5lLCBzeW0tPnBvcy5maXJzdF9j b2x1bW4sIHNjb3BlLCBudWxscHRyLCBmYWxzZSk7Ci0gICAgIGxsdm06Okluc3RydWN0aW9uICpk ZWNsYXJlSW5zdCA9Ci0tICAgICAgICBtLT5kaUJ1aWxkZXItPmluc2VydERlY2xhcmUoc3ltLT5z dG9yYWdlUHRyLCB2YXIsIG0tPmRpQnVpbGRlci0+Y3JlYXRlRXhwcmVzc2lvbigpLAotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06OkRlYnVnTG9jOjpnZXQoc3ltLT5w b3MuZmlyc3RfbGluZSwgc3ltLT5wb3MuZmlyc3RfY29sdW1uLCBzY29wZSksIGJibG9jayk7Ci0r ICAgICAgICBtLT5kaUJ1aWxkZXItPmluc2VydERlY2xhcmUoc3ltLT5zdG9yYWdlUHRyLCB2YXIs IG0tPmRpQnVpbGRlci0+Y3JlYXRlRXhwcmVzc2lvbigpLCBkaUxvYywgYmJsb2NrKTsKLSAgICAg QWRkRGVidWdQb3MoZGVjbGFyZUluc3QsICZzeW0tPnBvcywgc2NvcGUpOwotIH0KLSAKLUBAIC0x NTM1LDkgKzE1NDAsMTAgQEAgdm9pZCBGdW5jdGlvbkVtaXRDb250ZXh0OjpFbWl0RnVuY3Rpb25Q YXJhbWV0ZXJEZWJ1Z0luZm8oU3ltYm9sICpzeW0sIGludCBhcmdOdW0KLSAgICAgICAgIG0tPmRp QnVpbGRlci0+Y3JlYXRlUGFyYW1ldGVyVmFyaWFibGUoc2NvcGUsIHN5bS0+bmFtZSwgYXJnTnVt ICsgMSwgc3ltLT5wb3MuR2V0RElGaWxlKCksIHN5bS0+cG9zLmZpcnN0X2xpbmUsCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpVHlwZSwgdHJ1ZSAvKiBw cmVzZXJ2ZSB0aHJvdWdoIG9wdHMgKi8sIGZsYWdzKTsKLSAKLSsgICAgbGx2bTo6RGVidWdMb2Mg ZGlMb2MgPQotKyAgICAgICAgbGx2bTo6RElMb2NhdGlvbjo6Z2V0KHNjb3BlLT5nZXRDb250ZXh0 KCksIHN5bS0+cG9zLmZpcnN0X2xpbmUsIHN5bS0+cG9zLmZpcnN0X2NvbHVtbiwgc2NvcGUsIG51 bGxwdHIsIGZhbHNlKTsKLSAgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmRlY2xhcmVJbnN0ID0KLS0g ICAgICAgIG0tPmRpQnVpbGRlci0+aW5zZXJ0RGVjbGFyZShzeW0tPnN0b3JhZ2VQdHIsIHZhciwg bS0+ZGlCdWlsZGVyLT5jcmVhdGVFeHByZXNzaW9uKCksCi0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgbGx2bTo6RGVidWdMb2M6OmdldChzeW0tPnBvcy5maXJzdF9saW5lLCBz eW0tPnBvcy5maXJzdF9jb2x1bW4sIHNjb3BlKSwgYmJsb2NrKTsKLSsgICAgICAgIG0tPmRpQnVp bGRlci0+aW5zZXJ0RGVjbGFyZShzeW0tPnN0b3JhZ2VQdHIsIHZhciwgbS0+ZGlCdWlsZGVyLT5j cmVhdGVFeHByZXNzaW9uKCksIGRpTG9jLCBiYmxvY2spOwotICAgICBBZGREZWJ1Z1BvcyhkZWNs YXJlSW5zdCwgJnN5bS0+cG9zLCBzY29wZSk7Ci0gfQotIApkaWZmIC0tZ2l0IGEvc3JjcGtncy9p c3BjL3BhdGNoZXMvbGx2bTEyLTAwMi5wYXRjaCBiL3NyY3BrZ3MvaXNwYy9wYXRjaGVzL2xsdm0x Mi0wMDIucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA5MDNmMzBkYTEwZC4u MDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvaXNwYy9wYXRjaGVzL2xsdm0xMi0wMDIucGF0Y2gK KysrIC9kZXYvbnVsbApAQCAtMSw5MjMgKzAsMCBAQAotRnJvbSAwNTk3YTc5ZDA4NGMwMTQ3ODAx MzZkYTkwNmFmZTIxZDE1ZTk4MmNiIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogRGVl cGFrUmFqZW5kcmFrdW1hcmFuIDxkZWVwYWsucmFqZW5kcmFrdW1hcmFuQGludGVsLmNvbT4KLURh dGU6IFR1ZSwgNSBKYW4gMjAyMSAxMzo1MzozMCAtMDgwMAotU3ViamVjdDogW1BBVENIXSBSZW1v dmUgTExWTSA4LjAgYW5kIExMVk0gOS4wLiAoIzE5NjYpCi0KLS0tLQotIC5hcHB2ZXlvci55bWwg ICAgICAgICAgICAgICAgICAgICAgICB8ICAzIC0tCi0gLnRyYXZpcy55bWwgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgIDcgLS0tCi0gQ01ha2VMaXN0cy50eHQgICAgICAgICAgICAgICAgICAg ICAgIHwgMTIgKystLS0tCi0gc3JjL2FzdC5jcHAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg IDQgLS0KLSBzcmMvY3R4LmNwcCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAzMCAtLS0tLS0t LS0tLS0tCi0gc3JjL2dlbi9HbG9iYWxzTG9jYWxpemF0aW9uLmNwcCAgICAgIHwgIDQgLS0KLSBz cmMvaXNwYy5jcHAgICAgICAgICAgICAgICAgICAgICAgICAgfCAyMCAtLS0tLS0tLS0KLSBzcmMv aXNwYy5oICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMyArLQotIHNyYy9pc3BjX3ZlcnNp b24uaCAgICAgICAgICAgICAgICAgICB8ICA0ICstCi0gc3JjL21haW4uY3BwICAgICAgICAgICAg ICAgICAgICAgICAgIHwgMTMgLS0tLS0tCi0gc3JjL21vZHVsZS5jcHAgICAgICAgICAgICAgICAg ICAgICAgIHwgMjcgLS0tLS0tLS0tLS0tCi0gc3JjL21vZHVsZS5oICAgICAgICAgICAgICAgICAg ICAgICAgIHwgIDIgLQotIHNyYy9vcHQuY3BwICAgICAgICAgICAgICAgICAgICAgICAgICB8IDY0 ICsrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSBzcmMvdHlwZS5jcHAgICAgICAgICAgICAg ICAgICAgICAgICAgfCAxMCArKy0tLQotIHRlc3RzL2xpdC10ZXN0cy8xNzcxLmlzcGMgICAgICAg ICAgICB8ICAxIC0KLSB0ZXN0cy9saXQtdGVzdHMvMTg0NC5pc3BjICAgICAgICAgICAgfCAgMyAt LQotIHRlc3RzL2xpdC10ZXN0cy8xOTI2LmlzcGMgICAgICAgICAgICB8ICAyIC0KLSB0ZXN0cy9s aXQtdGVzdHMvY3B1c194ODYuaXNwYyAgICAgICAgfCAgMiArCi0gdGVzdHMvbGl0LXRlc3RzL2Nw dXNfeDg2X2xsdm0xMC5pc3BjIHwgMTEgLS0tLS0KLSB0ZXN0cy9saXQtdGVzdHMvbGl0LmNmZyAg ICAgICAgICAgICAgfCAgNSAtLS0KLSAyMCBmaWxlcyBjaGFuZ2VkLCAxNCBpbnNlcnRpb25zKCsp LCAyMTMgZGVsZXRpb25zKC0pCi0gZGVsZXRlIG1vZGUgMTAwNjQ0IHRlc3RzL2xpdC10ZXN0cy9j cHVzX3g4Nl9sbHZtMTAuaXNwYwotCi1kaWZmIC0tZ2l0IGEvLmFwcHZleW9yLnltbCBiLy5hcHB2 ZXlvci55bWwKLWluZGV4IDQ1MWE3YjNlMC4uNzk0NWNjYTJhIDEwMDY0NAotLS0tIGEvLmFwcHZl eW9yLnltbAotKysrIGIvLmFwcHZleW9yLnltbAotQEAgLTQxLDggKzQxLDYgQEAgZW52aXJvbm1l bnQ6Ci0gICAgICAgTExWTV9WRVJTSU9OOiBsYXRlc3QKLSAgICAgLSBBUFBWRVlPUl9CVUlMRF9X T1JLRVJfSU1BR0U6IFZpc3VhbCBTdHVkaW8gMjAxOQotICAgICAgIExMVk1fVkVSU0lPTjogMTAu MAotLSAgICAtIEFQUFZFWU9SX0JVSUxEX1dPUktFUl9JTUFHRTogVmlzdWFsIFN0dWRpbyAyMDE5 Ci0tICAgICAgTExWTV9WRVJTSU9OOiA5LjAKLSAKLSBmb3I6Ci0gLQotQEAgLTYyLDcgKzYwLDYg QEAgZm9yOgotICAgICAgICAgaWYgIiVBUFBWRVlPUl9CVUlMRF9XT1JLRVJfSU1BR0UlIj09IlZp c3VhbCBTdHVkaW8gMjAxOSIgKCAoc2V0IGdlbmVyYXRvcj0iVmlzdWFsIFN0dWRpbyAxNiIpICYg KHNldCB2c3ZlcnNpb249MjAxOSkpCi0gICAgICAgICBzZXQgTExWTV9UQVI9bGx2bS0xMS4wLjAt d2luLnZzMjAxOS1SZWxlYXNlK0Fzc2VydHMteDg2LmFybS53YXNtLjd6Ci0gICAgICAgICBpZiAi JUxMVk1fVkVSU0lPTiUiPT0iMTAuMCIgKHNldCBMTFZNX1RBUj1sbHZtLTEwLjAuMS13aW4udnMy MDE5LVJlbGVhc2UrQXNzZXJ0cy14ODYuYXJtLndhc20uemlwKQotLSAgICAgICAgaWYgIiVMTFZN X1ZFUlNJT04lIj09IjkuMCIgKHNldCBMTFZNX1RBUj1sbHZtLTkuMC4xLXdpbi52czIwMTctUmVs ZWFzZStBc3NlcnRzLXg4Ni5hcm0ud2FzbS56aXApCi0gICBpbnN0YWxsOgotICAgICAtIHBzOiBj aG9jbyBpbnN0YWxsIC0tbm8tcHJvZ3Jlc3Mgd2luZmxleGJpc29uMyB3Z2V0IDd6aXAKLSAgICAg LSBjbWQ6IHwtCi1kaWZmIC0tZ2l0IGEvLnRyYXZpcy55bWwgYi8udHJhdmlzLnltbAotaW5kZXgg MmU5NjAxN2E2Li4zYTZiODUyNjQgMTAwNjQ0Ci0tLS0gYS8udHJhdmlzLnltbAotKysrIGIvLnRy YXZpcy55bWwKLUBAIC0xMDgsMTMgKzEwOCw2IEBAIGpvYnM6Ci0gICAgICAgICAtIExMVk1fVEFS PWxsdm0tMTAuMC4xLXVidW50dTE2LjA0LVJlbGVhc2UrQXNzZXJ0cy14ODYuYXJtLndhc20udGFy Lnh6Ci0gICAgICAgICAtIExMVk1fUkVQTz1odHRwczovL2dpdGh1Yi5jb20vZGJhYm9raW4vbGx2 bS1wcm9qZWN0Ci0gICAgICAgICAtIElTUENfSE9NRT0kVFJBVklTX0JVSUxEX0RJUgotLSAgICAj IExMVk0gOS4wICsgVWJ1bnR1IDE2LjA0OiBidWlsZCwgbGl0IHRlc3RzLCBleGFtcGxlcyAoYnVp bGQgKyBydW4pLCBiZW5jaG1hcmtzIChidWlsZCArIHRyaWFsIHJ1bikKLS0gICAgLSA8PDogKm15 X3RhZwotLSAgICAgIGVudjoKLS0gICAgICAgIC0gTExWTV9WRVJTSU9OPTkuMCBPUz1VYnVudHUx Ni4wNAotLSAgICAgICAgLSBMTFZNX1RBUj1sbHZtLTkuMC4xLXVidW50dTE2LjA0LVJlbGVhc2Ur QXNzZXJ0cy14ODYuYXJtLndhc20udGFyLnh6Ci0tICAgICAgICAtIExMVk1fUkVQTz1odHRwczov L2dpdGh1Yi5jb20vZGJhYm9raW4vbGx2bS1wcm9qZWN0Ci0tICAgICAgICAtIElTUENfSE9NRT0k VFJBVklTX0JVSUxEX0RJUgotICAgICAjIFdBU00gZW5hYmxlZCBidWlsZAotICAgICAjIExMVk0g MTEuMCArIFVidW50dSAxNi4wNDogYnVpbGQsIGxpdCB0ZXN0cywgZXhhbXBsZXMgKGJ1aWxkKSwg YmVuY2htYXJrcyAoYnVpbGQgKyB0cmlhbCBydW4pCi0gICAgIC0gPDw6ICpteV90YWcKLWRpZmYg LS1naXQgYS9DTWFrZUxpc3RzLnR4dCBiL0NNYWtlTGlzdHMudHh0Ci1pbmRleCA1ZmE4NjNmY2Yu LmE2YjNlZDI1MSAxMDA2NDQKLS0tLSBhL0NNYWtlTGlzdHMudHh0Ci0rKysgYi9DTWFrZUxpc3Rz LnR4dAotQEAgLTI0MSwxMCArMjQxLDggQEAgaWYgKFg4Nl9FTkFCTEVEKQotICAgICAgICAgYXZ4 Mi1pOHgzMiBhdngyLWkxNngxNgotICAgICAgICAgYXZ4Mi1pMzJ4NCBhdngyLWkzMng4IGF2eDIt aTMyeDE2IGF2eDItaTY0eDQKLSAgICAgICAgIGF2eDUxMmtubC1pMzJ4MTYKLS0gICAgICAgIGF2 eDUxMnNreC1pMzJ4MTYgYXZ4NTEyc2t4LWkzMng4KQotLSAgICBpZiAoJHtMTFZNX1ZFUlNJT05f TlVNQkVSfSBWRVJTSU9OX0dSRUFURVJfRVFVQUwgIjEwLjAuMCIpCi0tICAgICAgICBsaXN0KEFQ UEVORCBJU1BDX1RBUkdFVFMgYXZ4NTEyc2t4LWk4eDY0IGF2eDUxMnNreC1pMTZ4MzIpCi0tICAg IGVuZGlmKCkKLSsgICAgICAgIGF2eDUxMnNreC1pMzJ4MTYgYXZ4NTEyc2t4LWkzMng4Ci0rICAg ICAgICBhdng1MTJza3gtaTh4NjQgYXZ4NTEyc2t4LWkxNngzMikKLSBlbmRpZigpCi0gaWYgKEFS TV9FTkFCTEVEKQotICAgICBsaXN0KEFQUEVORCBJU1BDX1RBUkdFVFMgbmVvbi1pOHgxNiBuZW9u LWkxNng4IG5lb24taTMyeDQgbmVvbi1pMzJ4OCkKLUBAIC0yNTksMTEgKzI1Nyw3IEBAIGlmIChX QVNNX0VOQUJMRUQpCi0gZW5kaWYoKQotIAotIHNldChDTEFOR19MSUJSQVJZX0xJU1QgY2xhbmdG cm9udGVuZCBjbGFuZ0RyaXZlciBjbGFuZ1NlcmlhbGl6YXRpb24gY2xhbmdQYXJzZSBjbGFuZ1Nl bWEgY2xhbmdBbmFseXNpcyBjbGFuZ0FTVCBjbGFuZ0Jhc2ljIGNsYW5nRWRpdCBjbGFuZ0xleCkK LS1zZXQoTExWTV9DT01QT05FTlRTIGVuZ2luZSBpcG8gYml0cmVhZGVyIGJpdHdyaXRlciBpbnN0 cnVtZW50YXRpb24gbGlua2VyIG9wdGlvbikKLS0KLS1pZiAoJHtMTFZNX1ZFUlNJT05fTlVNQkVS fSBWRVJTSU9OX0dSRUFURVJfRVFVQUwgIjEwLjAuMCIpCi0tICAgIGxpc3QoQVBQRU5EIExMVk1f Q09NUE9ORU5UUyBmcm9udGVuZG9wZW5tcCkKLS1lbmRpZigpCi0rc2V0KExMVk1fQ09NUE9ORU5U UyBlbmdpbmUgaXBvIGJpdHJlYWRlciBiaXR3cml0ZXIgaW5zdHJ1bWVudGF0aW9uIGxpbmtlciBv cHRpb24gZnJvbnRlbmRvcGVubXApCi0gCi0gaWYgKFg4Nl9FTkFCTEVEKQotICAgICBsaXN0KEFQ UEVORCBMTFZNX0NPTVBPTkVOVFMgeDg2KQotZGlmZiAtLWdpdCBhL3NyYy9hc3QuY3BwIGIvc3Jj L2FzdC5jcHAKLWluZGV4IDIwZjc1YTI5Yy4uNWE0M2M0ODU0IDEwMDY0NAotLS0tIGEvc3JjL2Fz dC5jcHAKLSsrKyBiL3NyYy9hc3QuY3BwCi1AQCAtNDQsOSArNDQsNyBAQAotICNpbmNsdWRlICJz eW0uaCIKLSAjaW5jbHVkZSAidXRpbC5oIgotIAotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJ U1BDX0xMVk1fMTBfMAotICNpbmNsdWRlIDxsbHZtL1N1cHBvcnQvVGltZVByb2ZpbGVyLmg+Ci0t I2VuZGlmCi0gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0gLy8gQVNUTm9kZQotIAotQEAgLTYyLDkgKzYw LDcgQEAgdm9pZCBBU1Q6OkFkZEZ1bmN0aW9uKFN5bWJvbCAqc3ltLCBTdG10ICpjb2RlKSB7Ci0g fQotIAotIHZvaWQgQVNUOjpHZW5lcmF0ZUlSKCkgewotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+ PSBJU1BDX0xMVk1fMTBfMAotICAgICBsbHZtOjpUaW1lVHJhY2VTY29wZSBUaW1lU2NvcGUoIkdl bmVyYXRlSVIiKTsKLS0jZW5kaWYKLSAgICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBm dW5jdGlvbnMuc2l6ZSgpOyArK2kpCi0gICAgICAgICBmdW5jdGlvbnNbaV0tPkdlbmVyYXRlSVIo KTsKLSB9Ci1kaWZmIC0tZ2l0IGEvc3JjL2N0eC5jcHAgYi9zcmMvY3R4LmNwcAotaW5kZXggOTc3 ZTlkMjIyLi40MmM0ZWEwOWQgMTAwNjQ0Ci0tLS0gYS9zcmMvY3R4LmNwcAotKysrIGIvc3JjL2N0 eC5jcHAKLUBAIC0zMDksMjEgKzMwOSwxMyBAQCBGdW5jdGlvbkVtaXRDb250ZXh0OjpGdW5jdGlv bkVtaXRDb250ZXh0KEZ1bmN0aW9uICpmdW5jLCBTeW1ib2wgKmZ1blN5bSwgbGx2bTo6RgotICAg ICAgICAgICAgIGNoYXIgYnVmWzI1Nl07Ci0gICAgICAgICAgICAgc25wcmludGYoYnVmLCBzaXpl b2YoYnVmKSwgIl9fb2ZmX2FsbF9vbl9tYXNrXyVzIiwgZy0+dGFyZ2V0LT5HZXRJU0FTdHJpbmco KSk7Ci0gCi0tI2lmIElTUENfTExWTV9WRVJTSU9OIDw9IElTUENfTExWTV84XzAKLS0gICAgICAg ICAgICBsbHZtOjpDb25zdGFudCAqb2ZmRnVuYyA9IG0tPm1vZHVsZS0+Z2V0T3JJbnNlcnRGdW5j dGlvbihidWYsIExMVk1UeXBlczo6Vm9pZFR5cGUpOwotLSNlbHNlIC8vIExMVk0gOS4wKwotICAg ICAgICAgICAgIGxsdm06OkZ1bmN0aW9uQ2FsbGVlIG9mZkZ1bmNDYWxsZWUgPSBtLT5tb2R1bGUt PmdldE9ySW5zZXJ0RnVuY3Rpb24oYnVmLCBMTFZNVHlwZXM6OlZvaWRUeXBlKTsKLSAgICAgICAg ICAgICBsbHZtOjpDb25zdGFudCAqb2ZmRnVuYyA9IGxsdm06OmNhc3Q8bGx2bTo6Q29uc3RhbnQ+ KG9mZkZ1bmNDYWxsZWUuZ2V0Q2FsbGVlKCkpOwotLSNlbmRpZgotICAgICAgICAgICAgIEFzc2Vy dFBvcyhjdXJyZW50UG9zLCBsbHZtOjppc2E8bGx2bTo6RnVuY3Rpb24+KG9mZkZ1bmMpKTsKLSAg ICAgICAgICAgICBsbHZtOjpCYXNpY0Jsb2NrICpvZmZCQiA9IGxsdm06OkJhc2ljQmxvY2s6OkNy ZWF0ZSgqZy0+Y3R4LCAiZW50cnkiLCAobGx2bTo6RnVuY3Rpb24gKilvZmZGdW5jLCAwKTsKLSAg ICAgICAgICAgICBsbHZtOjpTdG9yZUluc3QgKmluc3QgPSBuZXcgbGx2bTo6U3RvcmVJbnN0KExM Vk1NYXNrQWxsT2ZmLCBnbG9iYWxBbGxPbk1hc2tQdHIsIG9mZkJCKTsKLSAgICAgICAgICAgICBp ZiAoZy0+b3B0LmZvcmNlQWxpZ25lZE1lbW9yeSkgewotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA8 PSBJU1BDX0xMVk1fOV8wCi0tICAgICAgICAgICAgICAgIGluc3QtPnNldEFsaWdubWVudChnLT50 YXJnZXQtPmdldE5hdGl2ZVZlY3RvckFsaWdubWVudCgpKTsKLS0jZWxzZSAvLyBMTFZNIDEwLjAr Ci0gICAgICAgICAgICAgICAgIGluc3QtPnNldEFsaWdubWVudChsbHZtOjpNYXliZUFsaWduKGct PnRhcmdldC0+Z2V0TmF0aXZlVmVjdG9yQWxpZ25tZW50KCkpLnZhbHVlT3JPbmUoKSk7Ci0tI2Vu ZGlmCi0gICAgICAgICAgICAgfQotICAgICAgICAgICAgIGxsdm06OlJldHVybkluc3Q6OkNyZWF0 ZSgqZy0+Y3R4LCBvZmZCQik7Ci0gICAgICAgICB9Ci1AQCAtMjI4OCwxMSArMjI4MCw3IEBAIGxs dm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpMb2FkSW5zdChsbHZtOjpWYWx1ZSAqcHRy LCBjb25zdCBUeXBlICp0eXBlLCBjCi0gI2VuZGlmCi0gCi0gICAgIGlmIChnLT5vcHQuZm9yY2VB bGlnbmVkTWVtb3J5ICYmIGxsdm06OmR5bl9jYXN0PGxsdm06OlZlY3RvclR5cGU+KHB0LT5nZXRF bGVtZW50VHlwZSgpKSkgewotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA8PSBJU1BDX0xMVk1fOV8w Ci0tICAgICAgICBpbnN0LT5zZXRBbGlnbm1lbnQoZy0+dGFyZ2V0LT5nZXROYXRpdmVWZWN0b3JB bGlnbm1lbnQoKSk7Ci0tI2Vsc2UgLy8gTExWTSAxMC4wKwotICAgICAgICAgaW5zdC0+c2V0QWxp Z25tZW50KGxsdm06Ok1heWJlQWxpZ24oZy0+dGFyZ2V0LT5nZXROYXRpdmVWZWN0b3JBbGlnbm1l bnQoKSkudmFsdWVPck9uZSgpKTsKLS0jZW5kaWYKLSAgICAgfQotIAotICAgICBBZGREZWJ1Z1Bv cyhpbnN0KTsKLUBAIC0yNDMxLDExICsyNDE5LDcgQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1p dENvbnRleHQ6OkxvYWRJbnN0KGxsdm06OlZhbHVlICpwdHIsIGxsdm06OlZhbHVlICptYXNrLAot ICAgICAgICAgICAgICAgICAvLyB2cyB0aGUgcHJvcGVyIGFsaWdubWVudCBpbiBwcmFjdGljZS4p Ci0gICAgICAgICAgICAgICAgIGludCBhbGlnbiA9IDE7Ci0gCi0tI2lmIElTUENfTExWTV9WRVJT SU9OIDw9IElTUENfTExWTV85XzAKLS0gICAgICAgICAgICAgICAgaW5zdC0+c2V0QWxpZ25tZW50 KGFsaWduKTsKLS0jZWxzZSAvLyBMTFZNIDEwLjArCi0gICAgICAgICAgICAgICAgIGluc3QtPnNl dEFsaWdubWVudChsbHZtOjpNYXliZUFsaWduKGFsaWduKS52YWx1ZU9yT25lKCkpOwotLSNlbmRp ZgotICAgICAgICAgICAgIH0KLSAKLSAgICAgICAgICAgICBBZGREZWJ1Z1BvcyhpbnN0KTsKLUBA IC0yNjQ5LDExICsyNjMzLDcgQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkFs bG9jYUluc3QobGx2bTo6VHlwZSAqbGx2bVR5cGUsIGNvbnN0IGNoYXIgKm4KLSAgICAgICAgIGFs aWduID0gZy0+dGFyZ2V0LT5nZXROYXRpdmVWZWN0b3JBbGlnbm1lbnQoKTsKLSAKLSAgICAgaWYg KGFsaWduICE9IDApIHsKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPD0gSVNQQ19MTFZNXzlfMAot LSAgICAgICAgaW5zdC0+c2V0QWxpZ25tZW50KGFsaWduKTsKLS0jZWxzZSAvLyBMTFZNIDEwLjAr Ci0gICAgICAgICBpbnN0LT5zZXRBbGlnbm1lbnQobGx2bTo6TWF5YmVBbGlnbihhbGlnbikudmFs dWVPck9uZSgpKTsKLS0jZW5kaWYKLSAgICAgfQotICAgICAvLyBEb24ndCBhZGQgZGVidWdnaW5n IGluZm8gdG8gYWxsb2NhIGluc3RydWN0aW9ucwotICAgICByZXR1cm4gaW5zdDsKLUBAIC0yOTI2 LDExICsyOTA2LDcgQEAgdm9pZCBGdW5jdGlvbkVtaXRDb250ZXh0OjpTdG9yZUluc3QobGx2bTo6 VmFsdWUgKnZhbHVlLCBsbHZtOjpWYWx1ZSAqcHRyLCBjb25zdAotICAgICBsbHZtOjpTdG9yZUlu c3QgKmluc3QgPSBuZXcgbGx2bTo6U3RvcmVJbnN0KHZhbHVlLCBwdHIsIGJibG9jayk7Ci0gCi0g ICAgIGlmIChnLT5vcHQuZm9yY2VBbGlnbmVkTWVtb3J5ICYmIGxsdm06OmR5bl9jYXN0PGxsdm06 OlZlY3RvclR5cGU+KHB0LT5nZXRFbGVtZW50VHlwZSgpKSkgewotLSNpZiBJU1BDX0xMVk1fVkVS U0lPTiA8PSBJU1BDX0xMVk1fOV8wCi0tICAgICAgICBpbnN0LT5zZXRBbGlnbm1lbnQoZy0+dGFy Z2V0LT5nZXROYXRpdmVWZWN0b3JBbGlnbm1lbnQoKSk7Ci0tI2Vsc2UgLy8gTExWTSAxMC4wKwot ICAgICAgICAgaW5zdC0+c2V0QWxpZ25tZW50KGxsdm06Ok1heWJlQWxpZ24oZy0+dGFyZ2V0LT5n ZXROYXRpdmVWZWN0b3JBbGlnbm1lbnQoKSkudmFsdWVPck9uZSgpKTsKLS0jZW5kaWYKLSAgICAg fQotIAotICNpZmRlZiBJU1BDX0dFTlhfRU5BQkxFRAotQEAgLTMwMjUsMTYgKzMwMDEsMTAgQEAg dm9pZCBGdW5jdGlvbkVtaXRDb250ZXh0OjpNZW1jcHlJbnN0KGxsdm06OlZhbHVlICpkZXN0LCBs bHZtOjpWYWx1ZSAqc3JjLCBsbHZtOjoKLSAgICAgfQotICAgICBpZiAoYWxpZ24gPT0gTlVMTCkK LSAgICAgICAgIGFsaWduID0gTExWTUludDMyKDEpOwotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA8 PSBJU1BDX0xMVk1fOF8wCi0tICAgIGxsdm06OkNvbnN0YW50ICptY0Z1bmMgPQotLSAgICAgICAg bS0+bW9kdWxlLT5nZXRPckluc2VydEZ1bmN0aW9uKCJsbHZtLm1lbWNweS5wMGk4LnAwaTguaTY0 IiwgTExWTVR5cGVzOjpWb2lkVHlwZSwgTExWTVR5cGVzOjpWb2lkUG9pbnRlclR5cGUsCi0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTExWTVR5cGVzOjpWb2lkUG9pbnRl clR5cGUsIExMVk1UeXBlczo6SW50NjRUeXBlLCBMTFZNVHlwZXM6OkJvb2xUeXBlKTsKLS0jZWxz ZSAvLyBMTFZNIDkuMCsKLSAgICAgbGx2bTo6RnVuY3Rpb25DYWxsZWUgbWNGdW5jQ2FsbGVlID0K LSAgICAgICAgIG0tPm1vZHVsZS0+Z2V0T3JJbnNlcnRGdW5jdGlvbigibGx2bS5tZW1jcHkucDBp OC5wMGk4Lmk2NCIsIExMVk1UeXBlczo6Vm9pZFR5cGUsIExMVk1UeXBlczo6Vm9pZFBvaW50ZXJU eXBlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExMVk1UeXBlczo6 Vm9pZFBvaW50ZXJUeXBlLCBMTFZNVHlwZXM6OkludDY0VHlwZSwgTExWTVR5cGVzOjpCb29sVHlw ZSk7Ci0gICAgIGxsdm06OkNvbnN0YW50ICptY0Z1bmMgPSBsbHZtOjpjYXN0PGxsdm06OkNvbnN0 YW50PihtY0Z1bmNDYWxsZWUuZ2V0Q2FsbGVlKCkpOwotLSNlbmRpZgotICAgICBBc3NlcnRQb3Mo Y3VycmVudFBvcywgbWNGdW5jICE9IE5VTEwpOwotICAgICBBc3NlcnRQb3MoY3VycmVudFBvcywg bGx2bTo6aXNhPGxsdm06OkZ1bmN0aW9uPihtY0Z1bmMpKTsKLSAKLWRpZmYgLS1naXQgYS9zcmMv Z2VuL0dsb2JhbHNMb2NhbGl6YXRpb24uY3BwIGIvc3JjL2dlbi9HbG9iYWxzTG9jYWxpemF0aW9u LmNwcAotaW5kZXggMTkzYTY2Mjg5Li5hMTc2ZTk0NjIgMTAwNjQ0Ci0tLS0gYS9zcmMvZ2VuL0ds b2JhbHNMb2NhbGl6YXRpb24uY3BwCi0rKysgYi9zcmMvZ2VuL0dsb2JhbHNMb2NhbGl6YXRpb24u Y3BwCi1AQCAtNDcwLDExICs0NzAsNyBAQCB2b2lkIEdsb2JhbHNMb2NhbGl6YXRpb246OkxvY2Fs aXplR2xvYmFscyhMb2NhbGl6YXRpb25JbmZvICZMSSkgewotICAgICAgICAgSW5zdHJ1Y3Rpb24g JkZpcnN0SSA9ICpGbi0+Z2V0RW50cnlCbG9jaygpLmJlZ2luKCk7Ci0gICAgICAgICBUeXBlICpF bGVtVHkgPSBHVi0+Z2V0VHlwZSgpLT5nZXRFbGVtZW50VHlwZSgpOwotICAgICAgICAgQWxsb2Nh SW5zdCAqQWxsb2NhID0gbmV3IEFsbG9jYUluc3QoRWxlbVR5LCAwLCBHVi0+Z2V0TmFtZSgpICsg Ii5sb2NhbCIsICZGaXJzdEkpOwotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA8PSBJU1BDX0xMVk1f OV8wCi0tICAgICAgICBBbGxvY2EtPnNldEFsaWdubWVudChHVi0+Z2V0QWxpZ25tZW50KCkpOwot LSNlbHNlIC8vIExMVk0gMTAuMCsKLSAgICAgICAgIEFsbG9jYS0+c2V0QWxpZ25tZW50KGxsdm06 Ok1heWJlQWxpZ24oR1YtPmdldEFsaWdubWVudCgpKSk7Ci0tI2VuZGlmCi0gICAgICAgICBpZiAo IWlzYTxVbmRlZlZhbHVlPihHVi0+Z2V0SW5pdGlhbGl6ZXIoKSkpCi0gICAgICAgICAgICAgbmV3 IFN0b3JlSW5zdChHVi0+Z2V0SW5pdGlhbGl6ZXIoKSwgQWxsb2NhLCAmRmlyc3RJKTsKLSAKLWRp ZmYgLS1naXQgYS9zcmMvaXNwYy5jcHAgYi9zcmMvaXNwYy5jcHAKLWluZGV4IGUyZDBmMjA2ZS4u ZmFjNTIzM2Y3IDEwMDY0NAotLS0tIGEvc3JjL2lzcGMuY3BwCi0rKysgYi9zcmMvaXNwYy5jcHAK LUBAIC0yNzIsOSArMjcyLDcgQEAgdHlwZWRlZiBlbnVtIHsKLSAgICAgQ1BVX1NpbHZlcm1vbnQs Ci0gCi0gICAgIENQVV9JQ1gsCi0tI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8x MF8wCi0gICAgIENQVV9UR0wsCi0tI2VuZGlmCi0gI2lmIElTUENfTExWTV9WRVJTSU9OID49IElT UENfTExWTV8xMl8wCi0gICAgIENQVV9BREwsCi0gICAgIENQVV9TUFIsCi1AQCAtMzY1LDEwICsz NjMsOCBAQCBjbGFzcyBBbGxDUFVzIHsKLSAKLSAgICAgICAgIG5hbWVzW0NQVV9JQ1hdLnB1c2hf YmFjaygiaWNlbGFrZS1zZXJ2ZXIiKTsKLSAgICAgICAgIG5hbWVzW0NQVV9JQ1hdLnB1c2hfYmFj aygiaWN4Iik7Ci0tI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMF8wCi0gICAg ICAgICBuYW1lc1tDUFVfVEdMXS5wdXNoX2JhY2soInRpZ2VybGFrZSIpOwotICAgICAgICAgbmFt ZXNbQ1BVX1RHTF0ucHVzaF9iYWNrKCJ0Z2wiKTsKLS0jZW5kaWYKLSAjaWYgSVNQQ19MTFZNX1ZF UlNJT04gPj0gSVNQQ19MTFZNXzEyXzAKLSAgICAgICAgIG5hbWVzW0NQVV9BRExdLnB1c2hfYmFj aygiYWxkZXJsYWtlIik7Ci0gICAgICAgICBuYW1lc1tDUFVfQURMXS5wdXNoX2JhY2soImFkbCIp OwotQEAgLTQxMSwxMSArNDA3LDkgQEAgY2xhc3MgQWxsQ1BVcyB7Ci0gICAgICAgICBjb21wYXRb Q1BVX0FETF0gPSBTZXQoQ1BVX0FETCwgQ1BVX3g4Nl82NCwgQ1BVX0Jvbm5lbGwsIENQVV9QZW5y eW4sIENQVV9Db3JlMiwgQ1BVX05laGFsZW0sIENQVV9TaWx2ZXJtb250LAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIENQVV9TYW5keUJyaWRnZSwgQ1BVX0l2eUJyaWRnZSwgQ1BVX0hh c3dlbGwsIENQVV9Ccm9hZHdlbGwsIENQVV9Ob25lKTsKLSAjZW5kaWYKLS0jaWYgSVNQQ19MTFZN X1ZFUlNJT04gPj0gSVNQQ19MTFZNXzEwXzAKLSAgICAgICAgIGNvbXBhdFtDUFVfVEdMXSA9Ci0g ICAgICAgICAgICAgU2V0KENQVV9UR0wsIENQVV94ODZfNjQsIENQVV9Cb25uZWxsLCBDUFVfUGVu cnluLCBDUFVfQ29yZTIsIENQVV9OZWhhbGVtLCBDUFVfU2lsdmVybW9udCwgQ1BVX1NhbmR5QnJp ZGdlLAotICAgICAgICAgICAgICAgICBDUFVfSXZ5QnJpZGdlLCBDUFVfSGFzd2VsbCwgQ1BVX0Jy b2Fkd2VsbCwgQ1BVX1NLWCwgQ1BVX0lDTCwgQ1BVX0lDWCwgQ1BVX05vbmUpOwotLSNlbmRpZgot ICAgICAgICAgY29tcGF0W0NQVV9JQ1hdID0gU2V0KENQVV9JQ1gsIENQVV94ODZfNjQsIENQVV9C b25uZWxsLCBDUFVfUGVucnluLCBDUFVfQ29yZTIsIENQVV9OZWhhbGVtLCBDUFVfU2lsdmVybW9u dCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDUFVfU2FuZHlCcmlkZ2UsIENQVV9J dnlCcmlkZ2UsIENQVV9IYXN3ZWxsLCBDUFVfQnJvYWR3ZWxsLCBDUFVfU0tYLCBDUFVfSUNMLCBD UFVfTm9uZSk7Ci0gCi1AQCAtNTU2LDkgKzU1MCw3IEBAIFRhcmdldDo6VGFyZ2V0KEFyY2ggYXJj aCwgY29uc3QgY2hhciAqY3B1LCBJU1BDVGFyZ2V0IGlzcGNfdGFyZ2V0LCBib29sIHBpYywgYm9v Ci0gI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMl8wCi0gICAgICAgICBjYXNl IENQVV9TUFI6Ci0gI2VuZGlmCi0tI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8x MF8wCi0gICAgICAgICBjYXNlIENQVV9UR0w6Ci0tI2VuZGlmCi0gICAgICAgICBjYXNlIENQVV9J Q1g6Ci0gICAgICAgICBjYXNlIENQVV9JQ0w6Ci0gICAgICAgICBjYXNlIENQVV9TS1g6Ci1AQCAt OTE2LDcgKzkwOCw2IEBAIFRhcmdldDo6VGFyZ2V0KEFyY2ggYXJjaCwgY29uc3QgY2hhciAqY3B1 LCBJU1BDVGFyZ2V0IGlzcGNfdGFyZ2V0LCBib29sIHBpYywgYm9vCi0gICAgICAgICB9Ci0gICAg ICAgICBicmVhazsKLSAgICAgY2FzZSBJU1BDVGFyZ2V0Ojphdng1MTJza3hfaTh4NjQ6Ci0tI2lm IElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMF8wIC8vIExMVk0gMTAuMCsKLSAgICAg ICAgIC8vIFRoaXMgdGFyZ2V0IGlzIGVuYWJsZWQgb25seSBmb3IgTExWTSAxMC4wIGFuZCBsYXRl cgotICAgICAgICAgLy8gYmVjYXVzZSBMTFZNIHJlcXVpcmVzIGEgbnVtYmVyIG9mIGZpeGVzLCB3 aGljaCBhcmUKLSAgICAgICAgIC8vIGNvbW1pdHRlZCB0byBMTFZNIDExLjAgYW5kIGNhbiBiZSBh cHBsaWVkIHRvIDEwLjAsIGJ1dCBub3QKLUBAIC05MzcsMTIgKzkyOCw3IEBAIFRhcmdldDo6VGFy Z2V0KEFyY2ggYXJjaCwgY29uc3QgY2hhciAqY3B1LCBJU1BDVGFyZ2V0IGlzcGNfdGFyZ2V0LCBi b29sIHBpYywgYm9vCi0gICAgICAgICB0aGlzLT5tX2hhc1ZlY1ByZWZldGNoID0gZmFsc2U7Ci0g ICAgICAgICBDUFVmcm9tSVNBID0gQ1BVX1NLWDsKLSAgICAgICAgIGJyZWFrOwotLSNlbHNlCi0t ICAgICAgICB1bnN1cHBvcnRlZF90YXJnZXQgPSB0cnVlOwotLSAgICAgICAgYnJlYWs7Ci0tI2Vu ZGlmCi0gICAgIGNhc2UgSVNQQ1RhcmdldDo6YXZ4NTEyc2t4X2kxNngzMjoKLS0jaWYgSVNQQ19M TFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzEwXzAgLy8gTExWTSAxMC4wKwotICAgICAgICAgLy8g VGhpcyB0YXJnZXQgaXMgZW5hYmxlZCBvbmx5IGZvciBMTFZNIDEwLjAgYW5kIGxhdGVyCi0gICAg ICAgICAvLyBiZWNhdXNlIExMVk0gcmVxdWlyZXMgYSBudW1iZXIgb2YgZml4ZXMsIHdoaWNoIGFy ZQotICAgICAgICAgLy8gY29tbWl0dGVkIHRvIExMVk0gMTEuMCBhbmQgY2FuIGJlIGFwcGxpZWQg dG8gMTAuMCwgYnV0IG5vdAotQEAgLTk2MywxMCArOTQ5LDYgQEAgVGFyZ2V0OjpUYXJnZXQoQXJj aCBhcmNoLCBjb25zdCBjaGFyICpjcHUsIElTUENUYXJnZXQgaXNwY190YXJnZXQsIGJvb2wgcGlj LCBib28KLSAgICAgICAgIHRoaXMtPm1faGFzVmVjUHJlZmV0Y2ggPSBmYWxzZTsKLSAgICAgICAg IENQVWZyb21JU0EgPSBDUFVfU0tYOwotICAgICAgICAgYnJlYWs7Ci0tI2Vsc2UKLS0gICAgICAg IHVuc3VwcG9ydGVkX3RhcmdldCA9IHRydWU7Ci0tICAgICAgICBicmVhazsKLS0jZW5kaWYKLSAj aWZkZWYgSVNQQ19BUk1fRU5BQkxFRAotICAgICBjYXNlIElTUENUYXJnZXQ6Om5lb25faTh4MTY6 Ci0gICAgICAgICB0aGlzLT5tX2lzYSA9IFRhcmdldDo6TkVPTjsKLUBAIC0xNjYyLDExICsxNjQ0 LDkgQEAgR2xvYmFsczo6R2xvYmFscygpIHsKLSAgICAgaXNNdWx0aVRhcmdldENvbXBpbGF0aW9u ID0gZmFsc2U7Ci0gICAgIGVycm9yTGltaXQgPSAtMTsKLSAKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJ T04gPj0gSVNQQ19MTFZNXzEwXzAKLSAgICAgZW5hYmxlVGltZVRyYWNlID0gZmFsc2U7Ci0gICAg IC8vIHNldCBkZWZhdWx0IGdyYW51bGFyaXR5IHRvIDUwMC4KLSAgICAgdGltZVRyYWNlR3JhbnVs YXJpdHkgPSA1MDA7Ci0tI2VuZGlmCi0gICAgIHRhcmdldCA9IE5VTEw7Ci0gICAgIGN0eCA9IG5l dyBsbHZtOjpMTFZNQ29udGV4dDsKLSAKLWRpZmYgLS1naXQgYS9zcmMvaXNwYy5oIGIvc3JjL2lz cGMuaAotaW5kZXggZTI1ZDg4MzBlLi5kZTM1N2EyMWMgMTAwNjQ0Ci0tLS0gYS9zcmMvaXNwYy5o Ci0rKysgYi9zcmMvaXNwYy5oCi1AQCAtNjk1LDEzICs2OTUsMTIgQEAgc3RydWN0IEdsb2JhbHMg ewotIAotICAgICAvKiBOdW1iZXIgb2YgZXJyb3JzIHRvIHNob3cgaW4gSVNQQy4gKi8KLSAgICAg aW50IGVycm9yTGltaXQ7Ci0tI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMF8w Ci0rCi0gICAgIC8qIFdoZW4gdHJ1ZSwgZW5hYmxlIGNvbXBpbGUgdGltZSB0cmFjaW5nLiAqLwot ICAgICBib29sIGVuYWJsZVRpbWVUcmFjZTsKLSAKLSAgICAgLyogV2hlbiBjb21waWxlIHRpbWUg dHJhY2luZyBpcyBlbmFibGVkLCBzZXQgdGltZSBncmFudWxhcml0eS4gKi8KLSAgICAgaW50IHRp bWVUcmFjZUdyYW51bGFyaXR5OwotLSNlbmRpZgotIH07Ci0gCi0gZW51bSB7Ci1kaWZmIC0tZ2l0 IGEvc3JjL2lzcGNfdmVyc2lvbi5oIGIvc3JjL2lzcGNfdmVyc2lvbi5oCi1pbmRleCBkNzgxMzQ3 ZmQuLjQzNGIyZDY3OCAxMDA2NDQKLS0tLSBhL3NyYy9pc3BjX3ZlcnNpb24uaAotKysrIGIvc3Jj L2lzcGNfdmVyc2lvbi5oCi1AQCAtNDQsMTMgKzQ0LDExIEBACi0gCi0gI2RlZmluZSBJU1BDX0xM Vk1fVkVSU0lPTiAoTExWTV9WRVJTSU9OX01BSk9SICogMTAwMDAgKyBMTFZNX1ZFUlNJT05fTUlO T1IgKiAxMDApCi0gCi0tI2RlZmluZSBJU1BDX0xMVk1fOF8wIDgwMDAwCi0tI2RlZmluZSBJU1BD X0xMVk1fOV8wIDkwMDAwCi0gI2RlZmluZSBJU1BDX0xMVk1fMTBfMCAxMDAwMDAKLSAjZGVmaW5l IElTUENfTExWTV8xMV8wIDExMDAwMAotICNkZWZpbmUgSVNQQ19MTFZNXzEyXzAgMTIwMDAwCi0g Ci0tI2RlZmluZSBPTERFU1RfU1VQUE9SVEVEX0xMVk0gSVNQQ19MTFZNXzhfMAotKyNkZWZpbmUg T0xERVNUX1NVUFBPUlRFRF9MTFZNIElTUENfTExWTV8xMF8wCi0gI2RlZmluZSBMQVRFU1RfU1VQ UE9SVEVEX0xMVk0gSVNQQ19MTFZNXzEyXzAKLSAKLSAjaWZkZWYgX19pc3BjX194c3RyCi1kaWZm IC0tZ2l0IGEvc3JjL21haW4uY3BwIGIvc3JjL21haW4uY3BwCi1pbmRleCA4ZjY0MzMwY2MuLjVj OTIwZWFiYyAxMDA2NDQKLS0tLSBhL3NyYy9tYWluLmNwcAotKysrIGIvc3JjL21haW4uY3BwCi1A QCAtNTUsOSArNTUsNyBAQAotICNpbmNsdWRlIDxsbHZtL1N1cHBvcnQvU2lnbmFscy5oPgotICNp bmNsdWRlIDxsbHZtL1N1cHBvcnQvVGFyZ2V0UmVnaXN0cnkuaD4KLSAjaW5jbHVkZSA8bGx2bS9T dXBwb3J0L1RhcmdldFNlbGVjdC5oPgotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xM Vk1fMTBfMAotICNpbmNsdWRlIDxsbHZtL1N1cHBvcnQvVG9vbE91dHB1dEZpbGUuaD4KLS0jZW5k aWYKLSAKLSAjaWZkZWYgSVNQQ19IT1NUX0lTX1dJTkRPV1MKLSAjZGVmaW5lIHN0cmNhc2VjbXAg c3RyaWNtcAotQEAgLTE4MSwxMSArMTc5LDkgQEAgc3RhdGljIHZvaWQgbFByaW50VmVyc2lvbigp IHsKLSAgICAgc25wcmludGYodGFyZ2V0SGVscCwgc2l6ZW9mKHRhcmdldEhlbHApLCAiWy0tdGFy Z2V0LW9zPTxvcz5dXHRcdFx0U2VsZWN0IHRhcmdldCBPUy4gIDxvcz49eyVzfSIsCi0gICAgICAg ICAgICAgIGctPnRhcmdldF9yZWdpc3RyeS0+Z2V0U3VwcG9ydGVkT1NlcygpLmNfc3RyKCkpOwot ICAgICBQcmludFdpdGhXb3JkQnJlYWtzKHRhcmdldEhlbHAsIDI0LCBUZXJtaW5hbFdpZHRoKCks IHN0ZG91dCk7Ci0tI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMF8wCi0gICAg IHByaW50ZigiICAgIFstLXRpbWUtdHJhY2VdXHRcdFx0VHVybiBvbiB0aW1lIHByb2ZpbGVyLiBH ZW5lcmF0ZXMgSlNPTiBmaWxlIGJhc2VkIG9uIG91dHB1dCBmaWxlbmFtZS5cbiIpOwotICAgICBw cmludGYoIiAgICBbLS10aW1lLXRyYWNlLWdyYW51bGFyaXR5PTx2YWx1ZT5cdE1pbmltdW0gdGlt ZSBncmFudWxhcml0eSAoaW4gbWljcm9zZWNvbmRzKSB0cmFjZWQgYnkgdGltZSAiCi0gICAgICAg ICAgICAicHJvZmlsZXIuXG4iKTsKLS0jZW5kaWYKLSAgICAgcHJpbnRmKCIgICAgWy0tdmVyc2lv bl1cdFx0XHRcdFByaW50IGlzcGMgdmVyc2lvblxuIik7Ci0gI2lmZGVmIElTUENfR0VOWF9FTkFC TEVECi0gICAgIHByaW50ZigiICAgIFstLXZjLW9wdGlvbnM9PFwiLW9wdGlvbjEgLW9wdGlvbjIu Li5cIj5dXHRcdFx0XHRQYXNzIGFkZGl0aW9uYWwgb3B0aW9ucyB0byBWZWN0b3IgQ29tcGlsZXIg YmFja2VuZFxuIik7Ci1AQCAtNDYyLDcgKzQ1OCw2IEBAIHN0YXRpYyB2b2lkIHNldENhbGxpbmdD b252KFZlY3RvckNhbGxTdGF0dXMgdmVjdG9yQ2FsbCwgQXJjaCBhcmNoKSB7Ci0gICAgIH0KLSB9 Ci0gCi0tI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMF8wCi0gc3RhdGljIHZv aWQgd3JpdGVDb21waWxlVGltZUZpbGUoY29uc3QgY2hhciAqb3V0RmlsZU5hbWUpIHsKLSAgICAg bGx2bTo6U21hbGxTdHJpbmc8MTI4PiBqc29uRmlsZU5hbWUob3V0RmlsZU5hbWUpOwotICAgICBq c29uRmlsZU5hbWUuYXBwZW5kKCIuanNvbiIpOwotQEAgLTQ3OSw3ICs0NzQsNiBAQCBzdGF0aWMg dm9pZCB3cml0ZUNvbXBpbGVUaW1lRmlsZShjb25zdCBjaGFyICpvdXRGaWxlTmFtZSkgewotICAg ICBvZi0+a2VlcCgpOwotICAgICByZXR1cm47Ci0gfQotLSNlbmRpZgotIAotIHN0YXRpYyBzdGQ6 OnNldDxpbnQ+IFBhcnNpbmdQaGFzZXMoY2hhciAqc3RhZ2VzLCBBcmdFcnJvcnMgJmVycm9ySGFu ZGxlcikgewotICAgICBjb25zdGV4cHIgaW50IHBhcnNpbmdfbGltaXQgPSAxMDA7Ci1AQCAtNzkx LDEyICs3ODUsMTAgQEAgaW50IG1haW4oaW50IEFyZ2MsIGNoYXIgKkFyZ3ZbXSkgewotICAgICAg ICAgICAgIH0KLSAgICAgICAgIH0gZWxzZSBpZiAoIXN0cm5jbXAoYXJndltpXSwgIi0tZm9yY2Ut YWxpZ25tZW50PSIsIDE4KSkgewotICAgICAgICAgICAgIGctPmZvcmNlQWxpZ25tZW50ID0gYXRv aShhcmd2W2ldICsgMTgpOwotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTBf MAotICAgICAgICAgfSBlbHNlIGlmICghc3RyY21wKGFyZ3ZbaV0sICItLXRpbWUtdHJhY2UiKSkg ewotICAgICAgICAgICAgIGctPmVuYWJsZVRpbWVUcmFjZSA9IHRydWU7Ci0gICAgICAgICB9IGVs c2UgaWYgKCFzdHJuY21wKGFyZ3ZbaV0sICItLXRpbWUtdHJhY2UtZ3JhbnVsYXJpdHk9IiwgMjUp KSB7Ci0gICAgICAgICAgICAgZy0+dGltZVRyYWNlR3JhbnVsYXJpdHkgPSBhdG9pKGFyZ3ZbaV0g KyAyNSk7Ci0tI2VuZGlmCi0gICAgICAgICB9IGVsc2UgaWYgKCFzdHJjbXAoYXJndltpXSwgIi0t d29mZiIpIHx8ICFzdHJjbXAoYXJndltpXSwgIi13b2ZmIikpIHsKLSAgICAgICAgICAgICBnLT5k aXNhYmxlV2FybmluZ3MgPSB0cnVlOwotICAgICAgICAgICAgIGctPmVtaXRQZXJmV2FybmluZ3Mg PSBmYWxzZTsKLUBAIC0xMDU5LDcgKzEwNTEsNiBAQCBpbnQgbWFpbihpbnQgQXJnYywgY2hhciAq QXJndltdKSB7Ci0gCi0gICAgIC8vIFRoaXMgbmVlZHMgdG8gaGFwcGVuIGFmdGVyIHRoZSBUYXJn ZXRPUyBpcyBkZWNpZGVkLgotICAgICBzZXRDYWxsaW5nQ29udih2ZWN0b3JDYWxsLCBhcmNoKTsK LS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzEwXzAKLSAgICAgaWYgKGctPmVu YWJsZVRpbWVUcmFjZSkgewotICAgICAgICAgbGx2bTo6dGltZVRyYWNlUHJvZmlsZXJJbml0aWFs aXplKGctPnRpbWVUcmFjZUdyYW51bGFyaXR5LCAiaXNwYyIpOwotICAgICB9Ci1AQCAtMTA3Nyw5 ICsxMDY4LDUgQEAgaW50IG1haW4oaW50IEFyZ2MsIGNoYXIgKkFyZ3ZbXSkgewotICAgICAgICAg fQotICAgICAgICAgbGx2bTo6dGltZVRyYWNlUHJvZmlsZXJDbGVhbnVwKCk7Ci0gICAgIH0KLS0j ZWxzZQotLSAgICBpbnQgcmV0ID0gTW9kdWxlOjpDb21waWxlQW5kT3V0cHV0KGZpbGUsIGFyY2gs IGNwdSwgdGFyZ2V0cywgZmxhZ3MsIG90LCBvdXRGaWxlTmFtZSwgaGVhZGVyRmlsZU5hbWUsIGRl cHNGaWxlTmFtZSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXBz VGFyZ2V0TmFtZSwgaG9zdFN0dWJGaWxlTmFtZSwgZGV2U3R1YkZpbGVOYW1lKTsKLS0jZW5kaWYK LSAgICAgcmV0dXJuIHJldDsKLSB9Ci1kaWZmIC0tZ2l0IGEvc3JjL21vZHVsZS5jcHAgYi9zcmMv bW9kdWxlLmNwcAotaW5kZXggZmU3NDUyZGYxLi5hODVmZWM3N2EgMTAwNjQ0Ci0tLS0gYS9zcmMv bW9kdWxlLmNwcAotKysrIGIvc3JjL21vZHVsZS5jcHAKLUBAIC0xNzAsOSArMTcwLDcgQEAgTW9k dWxlOjpNb2R1bGUoY29uc3QgY2hhciAqZm4pIHsKLSAgICAgbW9kdWxlLT5zZXREYXRhTGF5b3V0 KGctPnRhcmdldC0+Z2V0RGF0YUxheW91dCgpLT5nZXRTdHJpbmdSZXByZXNlbnRhdGlvbigpKTsK LSAKLSAgICAgaWYgKGctPmdlbmVyYXRlRGVidWdnaW5nU3ltYm9scykgewotLSNpZiBJU1BDX0xM Vk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTBfMAotICAgICAgICAgbGx2bTo6VGltZVRyYWNlU2Nv cGUgVGltZVNjb3BlKCJDcmVhdGUgRGVidWcgRGF0YSIpOwotLSNlbmRpZgotICAgICAgICAgLy8g VG8gZW5hYmxlIGRlYnVnIGluZm9ybWF0aW9uIG9uIFdpbmRvd3MsIHdlIGhhdmUgdG8gbGV0IGxs dm0ga25vdywgdGhhdAotICAgICAgICAgLy8gZGVidWcgaW5mb3JtYXRpb24gc2hvdWxkIGJlIGVt aXR0ZWQgaW4gQ29kZVZpZXcgZm9ybWF0LgotICAgICAgICAgaWYgKGctPnRhcmdldF9vcyA9PSBU YXJnZXRPUzo6d2luZG93cykgewotQEAgLTIyNiwxMCArMjI0LDggQEAgZXh0ZXJuIFlZX0JVRkZF Ul9TVEFURSB5eV9jcmVhdGVfYnVmZmVyKEZJTEUgKiwgaW50KTsKLSBleHRlcm4gdm9pZCB5eV9k ZWxldGVfYnVmZmVyKFlZX0JVRkZFUl9TVEFURSk7Ci0gCi0gaW50IE1vZHVsZTo6Q29tcGlsZUZp bGUoKSB7Ci0tI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMF8wCi0gICAgIGxs dm06OlRpbWVUcmFjZVNjb3BlIENvbXBpbGVGaWxlVGltZVNjb3BlKAotICAgICAgICAgIkNvbXBp bGVGaWxlIiwgbGx2bTo6U3RyaW5nUmVmKGZpbGVuYW1lICsgKCJfIiArIHN0ZDo6c3RyaW5nKGct PnRhcmdldC0+R2V0SVNBU3RyaW5nKCkpKSkpOwotLSNlbmRpZgotICAgICBleHRlcm4gdm9pZCBQ YXJzZXJJbml0KCk7Ci0gICAgIFBhcnNlckluaXQoKTsKLSAKLUBAIC0yMzgsMTggKzIzNCwxNCBA QCBpbnQgTW9kdWxlOjpDb21waWxlRmlsZSgpIHsKLSAgICAgLy8gdmFyaWFibGUgJ20nIHRvIGJl IGluaXRpYWxpemVkIGFuZCBhdmFpbGFibGUgKHdoaWNoIGl0IGlzbid0IHVudGlsCi0gICAgIC8v IHRoZSBNb2R1bGUgY29uc3RydWN0b3IgcmV0dXJucy4uLikKLSAgICAgewotLSNpZiBJU1BDX0xM Vk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTBfMAotICAgICAgICAgbGx2bTo6VGltZVRyYWNlU2Nv cGUgVGltZVNjb3BlKCJEZWZpbmVTdGRsaWIiKTsKLS0jZW5kaWYKLSAgICAgICAgIERlZmluZVN0 ZGxpYihzeW1ib2xUYWJsZSwgZy0+Y3R4LCBtb2R1bGUsIGctPmluY2x1ZGVTdGRsaWIpOwotICAg ICB9Ci0gCi0gICAgIGJvb2wgcnVuUHJlcHJvY2Vzc29yID0gZy0+cnVuQ1BQOwotIAotICAgICBp ZiAocnVuUHJlcHJvY2Vzc29yKSB7Ci0tI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExW TV8xMF8wCi0gICAgICAgICBsbHZtOjpUaW1lVHJhY2VTY29wZSBUaW1lU2NvcGUoIkZyb250ZW5k IHBhcnNlciIpOwotLSNlbmRpZgotICAgICAgICAgaWYgKCFJc1N0ZGluKGZpbGVuYW1lKSkgewot ICAgICAgICAgICAgIC8vIFRyeSB0byBvcGVuIHRoZSBmaWxlIGZpcnN0LCBzaW5jZSBvdGhlcndp c2Ugd2UgY3Jhc2ggaW4gdGhlCi0gICAgICAgICAgICAgLy8gcHJlcHJvY2Vzc29yIGlmIHRoZSBm aWxlIGRvZXNuJ3QgZXhpc3QuCi1AQCAtMjY4LDkgKzI2MCw3IEBAIGludCBNb2R1bGU6OkNvbXBp bGVGaWxlKCkgewotICAgICAgICAgeXlwYXJzZSgpOwotICAgICAgICAgeXlfZGVsZXRlX2J1ZmZl cihzdHJidWYpOwotICAgICB9IGVsc2UgewotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BD X0xMVk1fMTBfMAotICAgICAgICAgbGx2bTo6VGltZVRyYWNlU2NvcGUgVGltZVNjb3BlKCJGcm9u dGVuZCBwYXJzZXIiKTsKLS0jZW5kaWYKLSAgICAgICAgIC8vIE5vIHByZXByb2Nlc3NvciwganVz dCBvcGVuIHVwIHRoZSBmaWxlIGlmIGl0J3Mgbm90IHN0ZGluLi4KLSAgICAgICAgIEZJTEUgKmYg PSBOVUxMOwotICAgICAgICAgaWYgKElzU3RkaW4oZmlsZW5hbWUpKSB7Ci1AQCAtMjk3LDkgKzI4 Nyw3IEBAIGludCBNb2R1bGU6OkNvbXBpbGVGaWxlKCkgewotIAotICAgICBpZiAoZGlCdWlsZGVy KQotICAgICAgICAgZGlCdWlsZGVyLT5maW5hbGl6ZSgpOwotLSNpZiBJU1BDX0xMVk1fVkVSU0lP TiA+PSBJU1BDX0xMVk1fMTBfMAotICAgICBsbHZtOjpUaW1lVHJhY2VTY29wZSBUaW1lU2NvcGUo Ik9wdGltaXplIik7Ci0tI2VuZGlmCi0gICAgIGlmIChlcnJvckNvdW50ID09IDApCi0gICAgICAg ICBPcHRpbWl6ZShtb2R1bGUsIGctPm9wdC5sZXZlbCk7Ci0gCi1AQCAtMTI0MywxNSArMTIzMSw4 IEBAIGJvb2wgTW9kdWxlOjp3cml0ZU9iamVjdEZpbGVPckFzc2VtYmx5KGxsdm06OlRhcmdldE1h Y2hpbmUgKnRhcmdldE1hY2hpbmUsIGxsdm06Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgY29uc3QgY2hhciAqb3V0RmlsZU5hbWUpIHsKLSAgICAgLy8gRmlndXJlIG91 dCBpZiB3ZSdyZSBnZW5lcmF0aW5nIG9iamVjdCBmaWxlIG9yIGFzc2VtYmx5IG91dHB1dCwgYW5k Ci0gICAgIC8vIHNldCBiaW5hcnkgb3V0cHV0IGZvciBvYmplY3QgZmlsZXMKLS0jaWYgSVNQQ19M TFZNX1ZFUlNJT04gPD0gSVNQQ19MTFZNXzlfMAotLSAgICBBc3NlcnQoIWctPnRhcmdldC0+aXNH ZW5YVGFyZ2V0KCkpOwotLSAgICBsbHZtOjpUYXJnZXRNYWNoaW5lOjpDb2RlR2VuRmlsZVR5cGUg ZmlsZVR5cGUgPQotLSAgICAgICAgKG91dHB1dFR5cGUgPT0gT2JqZWN0KSA/IGxsdm06OlRhcmdl dE1hY2hpbmU6OkNHRlRfT2JqZWN0RmlsZSA6IGxsdm06OlRhcmdldE1hY2hpbmU6OkNHRlRfQXNz ZW1ibHlGaWxlOwotLSAgICBib29sIGJpbmFyeSA9IChmaWxlVHlwZSA9PSBsbHZtOjpUYXJnZXRN YWNoaW5lOjpDR0ZUX09iamVjdEZpbGUpOwotLSNlbHNlIC8vIExMVk0gMTAuMCsKLSAgICAgbGx2 bTo6Q29kZUdlbkZpbGVUeXBlIGZpbGVUeXBlID0gKG91dHB1dFR5cGUgPT0gT2JqZWN0KSA/IGxs dm06OkNHRlRfT2JqZWN0RmlsZSA6IGxsdm06OkNHRlRfQXNzZW1ibHlGaWxlOwotICAgICBib29s IGJpbmFyeSA9IChmaWxlVHlwZSA9PSBsbHZtOjpDR0ZUX09iamVjdEZpbGUpOwotLSNlbmRpZgot IAotICAgICBsbHZtOjpzeXM6OmZzOjpPcGVuRmxhZ3MgZmxhZ3MgPSBiaW5hcnkgPyBsbHZtOjpz eXM6OmZzOjpGX05vbmUgOiBsbHZtOjpzeXM6OmZzOjpGX1RleHQ7Ci0gCi1AQCAtMjIxOSwxMSAr MjIwMCw3IEBAIHZvaWQgTW9kdWxlOjpleGVjUHJlcHJvY2Vzc29yKGNvbnN0IGNoYXIgKmluZmls ZW5hbWUsIGxsdm06OnJhd19zdHJpbmdfb3N0cmVhbSAqCi0gICAgIGluc3Quc2V0VGFyZ2V0KHRh cmdldCk7Ci0gICAgIGluc3QuY3JlYXRlU291cmNlTWFuYWdlcihpbnN0LmdldEZpbGVNYW5hZ2Vy KCkpOwotIAotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA8PSBJU1BDX0xMVk1fOV8wCi0tICAgIGNs YW5nOjpGcm9udGVuZElucHV0RmlsZSBpbnB1dEZpbGUoaW5maWxlbmFtZSwgY2xhbmc6OklucHV0 S2luZDo6VW5rbm93bik7Ci0tI2Vsc2UgLy8gTExWTSAxMC4wKwotICAgICBjbGFuZzo6RnJvbnRl bmRJbnB1dEZpbGUgaW5wdXRGaWxlKGluZmlsZW5hbWUsIGNsYW5nOjpJbnB1dEtpbmQoKSk7Ci0t I2VuZGlmCi0gCi0gICAgIGluc3QuSW5pdGlhbGl6ZVNvdXJjZU1hbmFnZXIoaW5wdXRGaWxlKTsK LSAKLUBAIC0yNzIyLDkgKzI2OTksNyBAQCBpbnQgTW9kdWxlOjpDb21waWxlQW5kT3V0cHV0KGNv bnN0IGNoYXIgKnNyY0ZpbGUsIEFyY2ggYXJjaCwgY29uc3QgY2hhciAqY3B1LCBzdAotIAotICAg ICAgICAgbSA9IG5ldyBNb2R1bGUoc3JjRmlsZSk7Ci0gICAgICAgICBpZiAobS0+Q29tcGlsZUZp bGUoKSA9PSAwKSB7Ci0tI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMF8wCi0g ICAgICAgICAgICAgbGx2bTo6VGltZVRyYWNlU2NvcGUgVGltZVNjb3BlKCJCYWNrZW5kIik7Ci0t I2VuZGlmCi0gI2lmZGVmIElTUENfR0VOWF9FTkFCTEVECi0gICAgICAgICAgICAgaWYgKG91dHB1 dFR5cGUgPT0gQXNtIHx8IG91dHB1dFR5cGUgPT0gT2JqZWN0KSB7Ci0gICAgICAgICAgICAgICAg IGlmIChnLT50YXJnZXQtPmlzR2VuWFRhcmdldCgpKSB7Ci1AQCAtMjg1NSw5ICsyODMwLDcgQEAg aW50IE1vZHVsZTo6Q29tcGlsZUFuZE91dHB1dChjb25zdCBjaGFyICpzcmNGaWxlLCBBcmNoIGFy Y2gsIGNvbnN0IGNoYXIgKmNwdSwgc3QKLSAKLSAgICAgICAgICAgICBtID0gbmV3IE1vZHVsZShz cmNGaWxlKTsKLSAgICAgICAgICAgICBpbnQgY29tcGlsZUZpbGVFcnJvciA9IG0tPkNvbXBpbGVG aWxlKCk7Ci0tI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMF8wCi0gICAgICAg ICAgICAgbGx2bTo6VGltZVRyYWNlU2NvcGUgVGltZVNjb3BlKCJCYWNrZW5kIik7Ci0tI2VuZGlm Ci0gICAgICAgICAgICAgaWYgKGNvbXBpbGVGaWxlRXJyb3IgPT0gMCkgewotICAgICAgICAgICAg ICAgICAvLyBDcmVhdGUgdGhlIGRpc3BhdGNoIG1vZHVsZSwgdW5sZXNzIGFscmVhZHkgY3JlYXRl ZDsKLSAgICAgICAgICAgICAgICAgLy8gaW4gdGhlIGxhdHRlciBjYXNlLCBqdXN0IGRvIHRoZSBj aGVja2luZwotZGlmZiAtLWdpdCBhL3NyYy9tb2R1bGUuaCBiL3NyYy9tb2R1bGUuaAotaW5kZXgg NjFkM2NmZWEwLi42MDMxMjRkNTAgMTAwNjQ0Ci0tLS0gYS9zcmMvbW9kdWxlLmgKLSsrKyBiL3Ny Yy9tb2R1bGUuaAotQEAgLTQzLDkgKzQzLDcgQEAKLSAKLSAjaW5jbHVkZSA8bGx2bS9JUi9EZWJ1 Z0luZm8uaD4KLSAKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzEwXzAKLSAj aW5jbHVkZSA8bGx2bS9TdXBwb3J0L1RpbWVQcm9maWxlci5oPgotLSNlbmRpZgotIAotICNpZmRl ZiBJU1BDX0dFTlhfRU5BQkxFRAotICNpbmNsdWRlICJvY2xfaWdjX2ludGVyZmFjZS9pZ2Nfb2Ns X2RldmljZV9jdHguaCIKLWRpZmYgLS1naXQgYS9zcmMvb3B0LmNwcCBiL3NyYy9vcHQuY3BwCi1p bmRleCBhNjU1YTgzNDQuLjViMWFjN2I2MyAxMDA2NDQKLS0tLSBhL3NyYy9vcHQuY3BwCi0rKysg Yi9zcmMvb3B0LmNwcAotQEAgLTY2LDYgKzY2LDcgQEAKLSAjaW5jbHVkZSA8bGx2bS9JUi9JbnN0 cnVjdGlvbnMuaD4KLSAjaW5jbHVkZSA8bGx2bS9JUi9JbnRyaW5zaWNJbnN0Lmg+Ci0gI2luY2x1 ZGUgPGxsdm0vSVIvSW50cmluc2ljcy5oPgotKyNpbmNsdWRlIDxsbHZtL0lSL0ludHJpbnNpY3NY ODYuaD4KLSAjaW5jbHVkZSA8bGx2bS9JUi9MZWdhY3lQYXNzTWFuYWdlci5oPgotICNpbmNsdWRl IDxsbHZtL0lSL01vZHVsZS5oPgotICNpbmNsdWRlIDxsbHZtL0lSL1BhdHRlcm5NYXRjaC5oPgot QEAgLTg1LDkgKzg2LDYgQEAKLSAjaW5jbHVkZSA8bGx2bS9UcmFuc2Zvcm1zL1NjYWxhci9JbnN0 U2ltcGxpZnlQYXNzLmg+Ci0gI2luY2x1ZGUgPGxsdm0vVHJhbnNmb3Jtcy9VdGlscy5oPgotICNp bmNsdWRlIDxsbHZtL1RyYW5zZm9ybXMvVXRpbHMvQmFzaWNCbG9ja1V0aWxzLmg+Ci0tI2lmIElT UENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMF8wCi0tI2luY2x1ZGUgPGxsdm0vSVIvSW50 cmluc2ljc1g4Ni5oPgotLSNlbmRpZgotIAotICNpZmRlZiBJU1BDX0hPU1RfSVNfTElOVVgKLSAj aW5jbHVkZSA8YWxsb2NhLmg+Ci1AQCAtMTAwMywxMCArMTAwMSw3IEBAIGJvb2wgSW50cmluc2lj c09wdDo6cnVuT25CYXNpY0Jsb2NrKGxsdm06OkJhc2ljQmxvY2sgJmJiKSB7Ci0gICAgICAgICAg ICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgIGFsaWduID0gY2FsbEluc3QtPmdldENh bGxlZEZ1bmN0aW9uKCkgPT0gYXZ4TWFza2VkTG9hZDMyID8gNCA6IDg7Ci0gICAgICAgICAgICAg ICAgIG5hbWUgPSBMTFZNR2V0TmFtZShjYWxsSW5zdC0+Z2V0QXJnT3BlcmFuZCgwKSwgIl9sb2Fk Iik7Ci0tI2lmIElTUENfTExWTV9WRVJTSU9OIDw9IElTUENfTExWTV85XzAKLS0gICAgICAgICAg ICAgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmxvYWRJbnN0ID0KLS0gICAgICAgICAgICAgICAgICAg IG5ldyBsbHZtOjpMb2FkSW5zdChjYXN0UHRyLCBuYW1lLCBmYWxzZSAvKiBub3Qgdm9sYXRpbGUg Ki8sIGFsaWduLCAobGx2bTo6SW5zdHJ1Y3Rpb24gKilOVUxMKTsKLS0jZWxpZiBJU1BDX0xMVk1f VkVSU0lPTiA9PSBJU1BDX0xMVk1fMTBfMAotKyNpZiBJU1BDX0xMVk1fVkVSU0lPTiA9PSBJU1BD X0xMVk1fMTBfMAotICAgICAgICAgICAgICAgICBsbHZtOjpJbnN0cnVjdGlvbiAqbG9hZEluc3Qg PSBuZXcgbGx2bTo6TG9hZEluc3QoY2FzdFB0ciwgbmFtZSwgZmFsc2UgLyogbm90IHZvbGF0aWxl ICovLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgbGx2bTo6TWF5YmVBbGlnbihhbGlnbiksIChsbHZtOjpJbnN0cnVjdGlv biAqKU5VTEwpOwotICNlbHNlCi1AQCAtMTA0MywxMyArMTAzOCw4IEBAIGJvb2wgSW50cmluc2lj c09wdDo6cnVuT25CYXNpY0Jsb2NrKGxsdm06OkJhc2ljQmxvY2sgJmJiKSB7Ci0gICAgICAgICAg ICAgICAgICAgICBhbGlnbiA9IGctPnRhcmdldC0+Z2V0TmF0aXZlVmVjdG9yQWxpZ25tZW50KCk7 Ci0gICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgIGFsaWduID0gY2Fs bEluc3QtPmdldENhbGxlZEZ1bmN0aW9uKCkgPT0gYXZ4TWFza2VkU3RvcmUzMiA/IDQgOiA4Owot LSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA8PSBJU1BDX0xMVk1fOV8wCi0tICAgICAgICAgICAgICAg IGxsdm06OlN0b3JlSW5zdCAqc3RvcmVJbnN0ID0gbmV3IGxsdm06OlN0b3JlSW5zdChydmFsdWUs IGNhc3RQdHIsIChsbHZtOjpJbnN0cnVjdGlvbiAqKU5VTEwpOwotLSAgICAgICAgICAgICAgICBz dG9yZUluc3QtPnNldEFsaWdubWVudChhbGlnbik7Ci0tI2Vsc2UKLSAgICAgICAgICAgICAgICAg bGx2bTo6U3RvcmVJbnN0ICpzdG9yZUluc3QgPSBuZXcgbGx2bTo6U3RvcmVJbnN0KHJ2YWx1ZSwg Y2FzdFB0ciwgKGxsdm06Okluc3RydWN0aW9uICopTlVMTCwKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06Ok1heWJl QWxpZ24oYWxpZ24pLnZhbHVlT3JPbmUoKSk7Ci0tI2VuZGlmCi0gICAgICAgICAgICAgICAgIGxD b3B5TWV0YWRhdGEoc3RvcmVJbnN0LCBjYWxsSW5zdCk7Ci0gICAgICAgICAgICAgICAgIGxsdm06 OlJlcGxhY2VJbnN0V2l0aEluc3QoY2FsbEluc3QsIHN0b3JlSW5zdCk7Ci0gCi1AQCAtMTA2Niw5 ICsxMDU2LDcgQEAgYm9vbCBJbnRyaW5zaWNzT3B0OjpydW5PbkJhc2ljQmxvY2sobGx2bTo6QmFz aWNCbG9jayAmYmIpIHsKLSAKLSBib29sIEludHJpbnNpY3NPcHQ6OnJ1bk9uRnVuY3Rpb24obGx2 bTo6RnVuY3Rpb24gJkYpIHsKLSAKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZN XzEwXzAKLSAgICAgbGx2bTo6VGltZVRyYWNlU2NvcGUgRnVuY1Njb3BlKCJJbnRyaW5zaWNzT3B0 OjpydW5PbkZ1bmN0aW9uIiwgRi5nZXROYW1lKCkpOwotLSNlbmRpZgotICAgICBib29sIG1vZGlm aWVkQW55ID0gZmFsc2U7Ci0gICAgIGZvciAobGx2bTo6QmFzaWNCbG9jayAmQkIgOiBGKSB7Ci0g ICAgICAgICBtb2RpZmllZEFueSB8PSBydW5PbkJhc2ljQmxvY2soQkIpOwotQEAgLTEyMzksOSAr MTIyNyw3IEBAIGJvb2wgSW5zdHJ1Y3Rpb25TaW1wbGlmeVBhc3M6OnJ1bk9uQmFzaWNCbG9jayhs bHZtOjpCYXNpY0Jsb2NrICZiYikgewotIAotIGJvb2wgSW5zdHJ1Y3Rpb25TaW1wbGlmeVBhc3M6 OnJ1bk9uRnVuY3Rpb24obGx2bTo6RnVuY3Rpb24gJkYpIHsKLSAKLS0jaWYgSVNQQ19MTFZNX1ZF UlNJT04gPj0gSVNQQ19MTFZNXzEwXzAKLSAgICAgbGx2bTo6VGltZVRyYWNlU2NvcGUgRnVuY1Nj b3BlKCJJbnN0cnVjdGlvblNpbXBsaWZ5UGFzczo6cnVuT25GdW5jdGlvbiIsIEYuZ2V0TmFtZSgp KTsKLS0jZW5kaWYKLSAgICAgYm9vbCBtb2RpZmllZEFueSA9IGZhbHNlOwotICAgICBmb3IgKGxs dm06OkJhc2ljQmxvY2sgJkJCIDogRikgewotICAgICAgICAgbW9kaWZpZWRBbnkgfD0gcnVuT25C YXNpY0Jsb2NrKEJCKTsKLUBAIC0yOTc0LDE2ICsyOTYwLDEwIEBAIHN0YXRpYyBib29sIGxJbXBy b3ZlTWFza2VkU3RvcmUobGx2bTo6Q2FsbEluc3QgKmNhbGxJbnN0KSB7Ci0gCi0gICAgICAgICAg ICAgbHZhbHVlID0gbmV3IGxsdm06OkJpdENhc3RJbnN0KGx2YWx1ZSwgcHRyVHlwZSwgImx2YWx1 ZV90b19wdHJfdHlwZSIsIGNhbGxJbnN0KTsKLSAgICAgICAgICAgICBsQ29weU1ldGFkYXRhKGx2 YWx1ZSwgY2FsbEluc3QpOwotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA8PSBJU1BDX0xMVk1fOV8w Ci0tICAgICAgICAgICAgc3RvcmUgPQotLSAgICAgICAgICAgICAgICBuZXcgbGx2bTo6U3RvcmVJ bnN0KHJ2YWx1ZSwgbHZhbHVlLCBmYWxzZSAvKiBub3Qgdm9sYXRpbGUgKi8sCi0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZy0+b3B0LmZvcmNlQWxpZ25lZE1lbW9yeSA/IGct PnRhcmdldC0+Z2V0TmF0aXZlVmVjdG9yQWxpZ25tZW50KCkgOiBpbmZvLT5hbGlnbik7Ci0tI2Vs c2UKLSAgICAgICAgICAgICBzdG9yZSA9IG5ldyBsbHZtOjpTdG9yZUluc3QoCi0gICAgICAgICAg ICAgICAgIHJ2YWx1ZSwgbHZhbHVlLCBmYWxzZSAvKiBub3Qgdm9sYXRpbGUgKi8sCi0gICAgICAg ICAgICAgICAgIGxsdm06Ok1heWJlQWxpZ24oZy0+b3B0LmZvcmNlQWxpZ25lZE1lbW9yeSA/IGct PnRhcmdldC0+Z2V0TmF0aXZlVmVjdG9yQWxpZ25tZW50KCkgOiBpbmZvLT5hbGlnbikKLSAgICAg ICAgICAgICAgICAgICAgIC52YWx1ZU9yT25lKCkpOwotLSNlbmRpZgotICAgICAgICAgfQotICAg ICAgICAgaWYgKHN0b3JlICE9IE5VTEwpIHsKLSAgICAgICAgICAgICBsQ29weU1ldGFkYXRhKHN0 b3JlLCBjYWxsSW5zdCk7Ci1AQCAtMzA1OSwxMSArMzAzOSw3IEBAIHN0YXRpYyBib29sIGxJbXBy b3ZlTWFza2VkTG9hZChsbHZtOjpDYWxsSW5zdCAqY2FsbEluc3QsIGxsdm06OkJhc2ljQmxvY2s6 Oml0ZXJhCi0gICAgICAgICB7Ci0gICAgICAgICAgICAgbGx2bTo6VHlwZSAqcHRyVHlwZSA9IGxs dm06OlBvaW50ZXJUeXBlOjpnZXQoY2FsbEluc3QtPmdldFR5cGUoKSwgMCk7Ci0gICAgICAgICAg ICAgcHRyID0gbmV3IGxsdm06OkJpdENhc3RJbnN0KHB0ciwgcHRyVHlwZSwgInB0cl9jYXN0X2Zv cl9sb2FkIiwgY2FsbEluc3QpOwotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA8PSBJU1BDX0xMVk1f OV8wCi0tICAgICAgICAgICAgbG9hZCA9IG5ldyBsbHZtOjpMb2FkSW5zdChwdHIsIGNhbGxJbnN0 LT5nZXROYW1lKCksIGZhbHNlIC8qIG5vdCB2b2xhdGlsZSAqLywKLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGctPm9wdC5mb3JjZUFsaWduZWRNZW1vcnkgPyBnLT50YXJn ZXQtPmdldE5hdGl2ZVZlY3RvckFsaWdubWVudCgpIDogaW5mby0+YWxpZ24sCi0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGx2bTo6SW5zdHJ1Y3Rpb24gKilOVUxMKTsK LS0jZWxpZiBJU1BDX0xMVk1fVkVSU0lPTiA9PSBJU1BDX0xMVk1fMTBfMAotKyNpZiBJU1BDX0xM Vk1fVkVSU0lPTiA9PSBJU1BDX0xMVk1fMTBfMAotICAgICAgICAgICAgIGxvYWQgPSBuZXcgbGx2 bTo6TG9hZEluc3QoCi0gICAgICAgICAgICAgICAgIHB0ciwgY2FsbEluc3QtPmdldE5hbWUoKSwg ZmFsc2UgLyogbm90IHZvbGF0aWxlICovLAotICAgICAgICAgICAgICAgICBsbHZtOjpNYXliZUFs aWduKGctPm9wdC5mb3JjZUFsaWduZWRNZW1vcnkgPyBnLT50YXJnZXQtPmdldE5hdGl2ZVZlY3Rv ckFsaWdubWVudCgpIDogaW5mby0+YWxpZ24pCi1AQCAtMzEyOSw5ICszMTA1LDcgQEAgYm9vbCBJ bXByb3ZlTWVtb3J5T3BzUGFzczo6cnVuT25CYXNpY0Jsb2NrKGxsdm06OkJhc2ljQmxvY2sgJmJi KSB7Ci0gCi0gYm9vbCBJbXByb3ZlTWVtb3J5T3BzUGFzczo6cnVuT25GdW5jdGlvbihsbHZtOjpG dW5jdGlvbiAmRikgewotIAotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTBf MAotICAgICBsbHZtOjpUaW1lVHJhY2VTY29wZSBGdW5jU2NvcGUoIkltcHJvdmVNZW1vcnlPcHNQ YXNzOjpydW5PbkZ1bmN0aW9uIiwgRi5nZXROYW1lKCkpOwotLSNlbmRpZgotICAgICBib29sIG1v ZGlmaWVkQW55ID0gZmFsc2U7Ci0gICAgIGZvciAobGx2bTo6QmFzaWNCbG9jayAmQkIgOiBGKSB7 Ci0gICAgICAgICBtb2RpZmllZEFueSB8PSBydW5PbkJhc2ljQmxvY2soQkIpOwotQEAgLTM0MjQs OSArMzM5OCw3IEBAIGxsdm06OlZhbHVlICpsR0VQQW5kTG9hZChsbHZtOjpWYWx1ZSAqYmFzZVB0 ciwgaW50NjRfdCBvZmZzZXQsIGludCBhbGlnbiwgbGx2bTo6Ci0gICAgICAgICAgICAgICAgICAg ICAgICAgIGxsdm06OlR5cGUgKnR5cGUpIHsKLSAgICAgbGx2bTo6VmFsdWUgKnB0ciA9IGxHRVBJ bnN0KGJhc2VQdHIsIExMVk1JbnQ2NChvZmZzZXQpLCAibmV3X2Jhc2UiLCBpbnNlcnRCZWZvcmUp OwotICAgICBwdHIgPSBuZXcgbGx2bTo6Qml0Q2FzdEluc3QocHRyLCBsbHZtOjpQb2ludGVyVHlw ZTo6Z2V0KHR5cGUsIDApLCAicHRyX2Nhc3QiLCBpbnNlcnRCZWZvcmUpOwotLSNpZiBJU1BDX0xM Vk1fVkVSU0lPTiA8PSBJU1BDX0xMVk1fOV8wCi0tICAgIHJldHVybiBuZXcgbGx2bTo6TG9hZElu c3QocHRyLCAiZ2F0aGVyX2xvYWQiLCBmYWxzZSAvKiBub3Qgdm9sYXRpbGUgKi8sIGFsaWduLCBp bnNlcnRCZWZvcmUpOwotLSNlbGlmIElTUENfTExWTV9WRVJTSU9OID09IElTUENfTExWTV8xMF8w Ci0rI2lmIElTUENfTExWTV9WRVJTSU9OID09IElTUENfTExWTV8xMF8wCi0gICAgIHJldHVybiBu ZXcgbGx2bTo6TG9hZEluc3QocHRyLCAiZ2F0aGVyX2xvYWQiLCBmYWxzZSAvKiBub3Qgdm9sYXRp bGUgKi8sIGxsdm06Ok1heWJlQWxpZ24oYWxpZ24pLCBpbnNlcnRCZWZvcmUpOwotICNlbHNlIC8v IExMVk0gMTEuMCsKLSAgICAgcmV0dXJuIG5ldyBsbHZtOjpMb2FkSW5zdChsbHZtOjpkeW5fY2Fz dDxsbHZtOjpQb2ludGVyVHlwZT4ocHRyLT5nZXRUeXBlKCkpLT5nZXRQb2ludGVyRWxlbWVudFR5 cGUoKSwgcHRyLAotQEAgLTQxMzUsOSArNDEwNyw3IEBAIGJvb2wgR2F0aGVyQ29hbGVzY2VQYXNz OjpydW5PbkJhc2ljQmxvY2sobGx2bTo6QmFzaWNCbG9jayAmYmIpIHsKLSAKLSBib29sIEdhdGhl ckNvYWxlc2NlUGFzczo6cnVuT25GdW5jdGlvbihsbHZtOjpGdW5jdGlvbiAmRikgewotIAotLSNp ZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTBfMAotICAgICBsbHZtOjpUaW1lVHJh Y2VTY29wZSBGdW5jU2NvcGUoIkdhdGhlckNvYWxlc2NlUGFzczo6cnVuT25GdW5jdGlvbiIsIEYu Z2V0TmFtZSgpKTsKLS0jZW5kaWYKLSAgICAgYm9vbCBtb2RpZmllZEFueSA9IGZhbHNlOwotICAg ICBmb3IgKGxsdm06OkJhc2ljQmxvY2sgJkJCIDogRikgewotICAgICAgICAgbW9kaWZpZWRBbnkg fD0gcnVuT25CYXNpY0Jsb2NrKEJCKTsKLUBAIC00NDY3LDkgKzQ0MzcsNyBAQCBib29sIFJlcGxh Y2VQc2V1ZG9NZW1vcnlPcHNQYXNzOjpydW5PbkJhc2ljQmxvY2sobGx2bTo6QmFzaWNCbG9jayAm YmIpIHsKLSAKLSBib29sIFJlcGxhY2VQc2V1ZG9NZW1vcnlPcHNQYXNzOjpydW5PbkZ1bmN0aW9u KGxsdm06OkZ1bmN0aW9uICZGKSB7Ci0gCi0tI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENf TExWTV8xMF8wCi0gICAgIGxsdm06OlRpbWVUcmFjZVNjb3BlIEZ1bmNTY29wZSgiUmVwbGFjZVBz ZXVkb01lbW9yeU9wc1Bhc3M6OnJ1bk9uRnVuY3Rpb24iLCBGLmdldE5hbWUoKSk7Ci0tI2VuZGlm Ci0gICAgIGJvb2wgbW9kaWZpZWRBbnkgPSBmYWxzZTsKLSAgICAgZm9yIChsbHZtOjpCYXNpY0Js b2NrICZCQiA6IEYpIHsKLSAgICAgICAgIG1vZGlmaWVkQW55IHw9IHJ1bk9uQmFzaWNCbG9jayhC Qik7Ci1AQCAtNDU3Myw5ICs0NTQxLDcgQEAgYm9vbCBJc0NvbXBpbGVUaW1lQ29uc3RhbnRQYXNz OjpydW5PbkJhc2ljQmxvY2sobGx2bTo6QmFzaWNCbG9jayAmYmIpIHsKLSAKLSBib29sIElzQ29t cGlsZVRpbWVDb25zdGFudFBhc3M6OnJ1bk9uRnVuY3Rpb24obGx2bTo6RnVuY3Rpb24gJkYpIHsK LSAKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzEwXzAKLSAgICAgbGx2bTo6 VGltZVRyYWNlU2NvcGUgRnVuY1Njb3BlKCJJc0NvbXBpbGVUaW1lQ29uc3RhbnRQYXNzOjpydW5P bkZ1bmN0aW9uIiwgRi5nZXROYW1lKCkpOwotLSNlbmRpZgotICAgICBib29sIG1vZGlmaWVkQW55 ID0gZmFsc2U7Ci0gICAgIGZvciAobGx2bTo6QmFzaWNCbG9jayAmQkIgOiBGKSB7Ci0gICAgICAg ICBtb2RpZmllZEFueSB8PSBydW5PbkJhc2ljQmxvY2soQkIpOwotQEAgLTUyMDEsOSArNTE2Nyw3 IEBAIGJvb2wgUGVlcGhvbGVQYXNzOjpydW5PbkJhc2ljQmxvY2sobGx2bTo6QmFzaWNCbG9jayAm YmIpIHsKLSAKLSBib29sIFBlZXBob2xlUGFzczo6cnVuT25GdW5jdGlvbihsbHZtOjpGdW5jdGlv biAmRikgewotIAotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTBfMAotICAg ICBsbHZtOjpUaW1lVHJhY2VTY29wZSBGdW5jU2NvcGUoIlBlZXBob2xlUGFzczo6cnVuT25GdW5j dGlvbiIsIEYuZ2V0TmFtZSgpKTsKLS0jZW5kaWYKLSAgICAgYm9vbCBtb2RpZmllZEFueSA9IGZh bHNlOwotICAgICBmb3IgKGxsdm06OkJhc2ljQmxvY2sgJkJCIDogRikgewotICAgICAgICAgbW9k aWZpZWRBbnkgfD0gcnVuT25CYXNpY0Jsb2NrKEJCKTsKLUBAIC01Mjk5LDkgKzUyNjMsNyBAQCBi b29sIFJlcGxhY2VTdGRsaWJTaGlmdFBhc3M6OnJ1bk9uQmFzaWNCbG9jayhsbHZtOjpCYXNpY0Js b2NrICZiYikgewotIAotIGJvb2wgUmVwbGFjZVN0ZGxpYlNoaWZ0UGFzczo6cnVuT25GdW5jdGlv bihsbHZtOjpGdW5jdGlvbiAmRikgewotIAotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BD X0xMVk1fMTBfMAotICAgICBsbHZtOjpUaW1lVHJhY2VTY29wZSBGdW5jU2NvcGUoIlJlcGxhY2VT dGRsaWJTaGlmdFBhc3M6OnJ1bk9uRnVuY3Rpb24iLCBGLmdldE5hbWUoKSk7Ci0tI2VuZGlmCi0g ICAgIGJvb2wgbW9kaWZpZWRBbnkgPSBmYWxzZTsKLSAgICAgZm9yIChsbHZtOjpCYXNpY0Jsb2Nr ICZCQiA6IEYpIHsKLSAgICAgICAgIG1vZGlmaWVkQW55IHw9IHJ1bk9uQmFzaWNCbG9jayhCQik7 Ci1AQCAtNTM5OSw5ICs1MzYxLDcgQEAgbGx2bTo6SW5zdHJ1Y3Rpb24gKkZpeEJvb2xlYW5TZWxl Y3RQYXNzOjpmaXhTZWxlY3QobGx2bTo6U2VsZWN0SW5zdCAqc2VsLCBsbHZtOjoKLSB9Ci0gCi0g Ym9vbCBGaXhCb29sZWFuU2VsZWN0UGFzczo6cnVuT25GdW5jdGlvbihsbHZtOjpGdW5jdGlvbiAm RikgewotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTBfMAotICAgICBsbHZt OjpUaW1lVHJhY2VTY29wZSBGdW5jU2NvcGUoIkZpeEJvb2xlYW5TZWxlY3RQYXNzOjpydW5PbkZ1 bmN0aW9uIiwgRi5nZXROYW1lKCkpOwotLSNlbmRpZgotICAgICBib29sIG1vZGlmaWVkQW55ID0g ZmFsc2U7Ci0gCi0gICAgIHJldHVybiBtb2RpZmllZEFueTsKLUBAIC01OTY0LDkgKzU5MjQsNyBA QCBib29sIEdlblhHYXRoZXJDb2FsZXNjaW5nOjpydW5PbkJhc2ljQmxvY2sobGx2bTo6QmFzaWNC bG9jayAmYmIpIHsKLSB9Ci0gCi0gYm9vbCBHZW5YR2F0aGVyQ29hbGVzY2luZzo6cnVuT25GdW5j dGlvbihsbHZtOjpGdW5jdGlvbiAmRikgewotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BD X0xMVk1fMTBfMAotICAgICBsbHZtOjpUaW1lVHJhY2VTY29wZSBGdW5jU2NvcGUoIkdlblhHYXRo ZXJDb2FsZXNjaW5nOjpydW5PbkZ1bmN0aW9uIiwgRi5nZXROYW1lKCkpOwotLSNlbmRpZgotICAg ICBib29sIG1vZGlmaWVkQW55ID0gZmFsc2U7Ci0gICAgIGZvciAobGx2bTo6QmFzaWNCbG9jayAm QkIgOiBGKSB7Ci0gICAgICAgICBtb2RpZmllZEFueSB8PSBydW5PbkJhc2ljQmxvY2soQkIpOwot QEAgLTYxMTMsOSArNjA3MSw3IEBAIGJvb2wgUHJvbW90ZVRvUHJpdmF0ZU1lbW9yeVBhc3M6OnJ1 bk9uQmFzaWNCbG9jayhsbHZtOjpCYXNpY0Jsb2NrICZiYikgewotIAotIGJvb2wgUHJvbW90ZVRv UHJpdmF0ZU1lbW9yeVBhc3M6OnJ1bk9uRnVuY3Rpb24obGx2bTo6RnVuY3Rpb24gJkYpIHsKLSAK LS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzEwXzAKLSAgICAgbGx2bTo6VGlt ZVRyYWNlU2NvcGUgRnVuY1Njb3BlKCJQcm9tb3RlVG9Qcml2YXRlTWVtb3J5UGFzczo6cnVuT25G dW5jdGlvbiIsIEYuZ2V0TmFtZSgpKTsKLS0jZW5kaWYKLSAgICAgYm9vbCBtb2RpZmllZEFueSA9 IGZhbHNlOwotICAgICBmb3IgKGxsdm06OkJhc2ljQmxvY2sgJkJCIDogRikgewotICAgICAgICAg bW9kaWZpZWRBbnkgfD0gcnVuT25CYXNpY0Jsb2NrKEJCKTsKLUBAIC02MTgxLDkgKzYxMzcsNyBA QCBib29sIFJlcGxhY2VMTFZNSW50cmluc2ljczo6cnVuT25CYXNpY0Jsb2NrKGxsdm06OkJhc2lj QmxvY2sgJmJiKSB7Ci0gCi0gYm9vbCBSZXBsYWNlTExWTUludHJpbnNpY3M6OnJ1bk9uRnVuY3Rp b24obGx2bTo6RnVuY3Rpb24gJkYpIHsKLSAKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQ Q19MTFZNXzEwXzAKLSAgICAgbGx2bTo6VGltZVRyYWNlU2NvcGUgRnVuY1Njb3BlKCJSZXBsYWNl TExWTUludHJpbnNpY3M6OnJ1bk9uRnVuY3Rpb24iLCBGLmdldE5hbWUoKSk7Ci0tI2VuZGlmCi0g ICAgIGJvb2wgbW9kaWZpZWRBbnkgPSBmYWxzZTsKLSAgICAgZm9yIChsbHZtOjpCYXNpY0Jsb2Nr ICZCQiA6IEYpIHsKLSAgICAgICAgIG1vZGlmaWVkQW55IHw9IHJ1bk9uQmFzaWNCbG9jayhCQik7 Ci1AQCAtNjI3OCw5ICs2MjMyLDcgQEAgYm9vbCBSZXBsYWNlVW5zdXBwb3J0ZWRJbnN0czo6cnVu T25CYXNpY0Jsb2NrKGxsdm06OkJhc2ljQmxvY2sgJmJiKSB7Ci0gCi0gYm9vbCBSZXBsYWNlVW5z dXBwb3J0ZWRJbnN0czo6cnVuT25GdW5jdGlvbihsbHZtOjpGdW5jdGlvbiAmRikgewotIAotLSNp ZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTBfMAotICAgICBsbHZtOjpUaW1lVHJh Y2VTY29wZSBGdW5jU2NvcGUoIlJlcGxhY2VVbnN1cHBvcnRlZEluc3RzOjpydW5PbkZ1bmN0aW9u IiwgRi5nZXROYW1lKCkpOwotLSNlbmRpZgotICAgICBib29sIG1vZGlmaWVkQW55ID0gZmFsc2U7 Ci0gICAgIGZvciAobGx2bTo6QmFzaWNCbG9jayAmQkIgOiBGKSB7Ci0gICAgICAgICBtb2RpZmll ZEFueSB8PSBydW5PbkJhc2ljQmxvY2soQkIpOwotQEAgLTYzNjksOSArNjMyMSw3IEBAIGJvb2wg Q2hlY2tVbnN1cHBvcnRlZEluc3RzOjpydW5PbkJhc2ljQmxvY2sobGx2bTo6QmFzaWNCbG9jayAm YmIpIHsKLSB9Ci0gCi0gYm9vbCBDaGVja1Vuc3VwcG9ydGVkSW5zdHM6OnJ1bk9uRnVuY3Rpb24o bGx2bTo6RnVuY3Rpb24gJkYpIHsKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZN XzEwXzAKLSAgICAgbGx2bTo6VGltZVRyYWNlU2NvcGUgRnVuY1Njb3BlKCJDaGVja1Vuc3VwcG9y dGVkSW5zdHM6OnJ1bk9uRnVuY3Rpb24iLCBGLmdldE5hbWUoKSk7Ci0tI2VuZGlmCi0gICAgIGJv b2wgbW9kaWZpZWRBbnkgPSBmYWxzZTsKLSAgICAgZm9yIChsbHZtOjpCYXNpY0Jsb2NrICZCQiA6 IEYpIHsKLSAgICAgICAgIG1vZGlmaWVkQW55IHw9IHJ1bk9uQmFzaWNCbG9jayhCQik7Ci1AQCAt NjQ0MCw5ICs2MzkwLDcgQEAgYm9vbCBNYW5nbGVPcGVuQ0xCdWlsdGluczo6cnVuT25CYXNpY0Js b2NrKGxsdm06OkJhc2ljQmxvY2sgJmJiKSB7Ci0gfQotIAotIGJvb2wgTWFuZ2xlT3BlbkNMQnVp bHRpbnM6OnJ1bk9uRnVuY3Rpb24obGx2bTo6RnVuY3Rpb24gJkYpIHsKLS0jaWYgSVNQQ19MTFZN X1ZFUlNJT04gPj0gSVNQQ19MTFZNXzEwXzAKLSAgICAgbGx2bTo6VGltZVRyYWNlU2NvcGUgRnVu Y1Njb3BlKCJNYW5nbGVPcGVuQ0xCdWlsdGluczo6cnVuT25GdW5jdGlvbiIsIEYuZ2V0TmFtZSgp KTsKLS0jZW5kaWYKLSAgICAgYm9vbCBtb2RpZmllZEFueSA9IGZhbHNlOwotICAgICBmb3IgKGxs dm06OkJhc2ljQmxvY2sgJkJCIDogRikgewotICAgICAgICAgbW9kaWZpZWRBbnkgfD0gcnVuT25C YXNpY0Jsb2NrKEJCKTsKLUBAIC02ODI4LDkgKzY3NzYsNyBAQCBib29sIEZpeEFkZHJlc3NTcGFj ZTo6cnVuT25GdW5jdGlvbihsbHZtOjpGdW5jdGlvbiAmRikgewotICAgICAvLyBUcmFuc2Zvcm1h dGlvbnMgYXJlIGNvcnJlY3Qgd2hlbiB0aGUgZnVuY3Rpb24gaXMgbm90IGludGVybmFsLgotICAg ICAvLyBUaGlzIGlzIGR1ZSB0byBhZGRyZXNzIHNwYWNlIGNhbGN1bGF0aW9uIGFsZ29yaXRobS4K LSAgICAgLy8gVE9ETzogcHJvYmxlbXMgY2FuIGJlIG1ldCBpbiBjYXNlIG9mIFN0YWNrIENhbGxz Ci0tI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMF8wCi0gICAgIGxsdm06OlRp bWVUcmFjZVNjb3BlIEZ1bmNTY29wZSgiRml4QWRkcmVzc1NwYWNlOjpydW5PbkZ1bmN0aW9uIiwg Ri5nZXROYW1lKCkpOwotLSNlbmRpZgotICAgICBpZiAoRi5nZXRMaW5rYWdlKCkgPT0gbGx2bTo6 R2xvYmFsVmFsdWU6OkxpbmthZ2VUeXBlczo6SW50ZXJuYWxMaW5rYWdlKQotICAgICAgICAgcmV0 dXJuIGZhbHNlOwotIAotQEAgLTY4NTQsOSArNjgwMCw3IEBAIGNsYXNzIERlbW90ZVBISXMgOiBw dWJsaWMgbGx2bTo6RnVuY3Rpb25QYXNzIHsKLSBjaGFyIERlbW90ZVBISXM6OklEID0gMDsKLSAK LSBib29sIERlbW90ZVBISXM6OnJ1bk9uRnVuY3Rpb24obGx2bTo6RnVuY3Rpb24gJkYpIHsKLS0j aWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzEwXzAKLSAgICAgbGx2bTo6VGltZVRy YWNlU2NvcGUgRnVuY1Njb3BlKCJEZW1vdGVQSElzOjpydW5PbkZ1bmN0aW9uIiwgRi5nZXROYW1l KCkpOwotLSNlbmRpZgotICAgICBpZiAoRi5pc0RlY2xhcmF0aW9uKCkgfHwgc2tpcEZ1bmN0aW9u KEYpKQotICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICBzdGQ6OnZlY3RvcjxsbHZtOjpJbnN0 cnVjdGlvbiAqPiBXb3JrTGlzdDsKLWRpZmYgLS1naXQgYS9zcmMvdHlwZS5jcHAgYi9zcmMvdHlw ZS5jcHAKLWluZGV4IDY4OGE0ZTg3NC4uZmEwY2IwNGRiIDEwMDY0NAotLS0tIGEvc3JjL3R5cGUu Y3BwCi0rKysgYi9zcmMvdHlwZS5jcHAKLUBAIC0xODIyLDE0ICsxODIyLDEwIEBAIGxsdm06OkRJ VHlwZSAqU3RydWN0VHlwZTo6R2V0RElUeXBlKGxsdm06OkRJU2NvcGUgKnNjb3BlKSBjb25zdCB7 Ci0gICAgIGxsdm06OkRJRmlsZSAqZGlGaWxlID0gcG9zLkdldERJRmlsZSgpOwotICAgICBsbHZt OjpESU5hbWVzcGFjZSAqZGlTcGFjZSA9IHBvcy5HZXRESU5hbWVzcGFjZSgpOwotICAgICByZXR1 cm4gbS0+ZGlCdWlsZGVyLT5jcmVhdGVTdHJ1Y3RUeXBlKGRpU3BhY2UsIEdldFN0cmluZygpLCBk aUZpbGUsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zLmZp cnN0X2xpbmUsICAgICAgICAgIC8vIExpbmUgbnVtYmVyCi0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgbGF5b3V0LT5nZXRTaXplSW5CaXRzKCksIC8vIFNpemUgaW4g Yml0cwotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA8PSBJU1BDX0xMVk1fOV8wCi0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF5b3V0LT5nZXRBbGlnbm1lbnQoKSAq IDgsIC8vIEFsaWdubWVudCBpbiBiaXRzCi0tI2Vsc2UgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIExMVk0gMTAuMCsKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3MuZmlyc3RfbGluZSwg ICAgICAgICAgICAgICAgICAgICAvLyBMaW5lIG51bWJlcgotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGxheW91dC0+Z2V0U2l6ZUluQml0cygpLCAgICAgICAgICAg IC8vIFNpemUgaW4gYml0cwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGxheW91dC0+Z2V0QWxpZ25tZW50KCkudmFsdWUoKSAqIDgsIC8vIEFsaWdubWVudCBpbiBi aXRzCi0tI2VuZGlmCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg bGx2bTo6RElOb2RlOjpGbGFnWmVybywgLy8gRmxhZ3MKLSsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBsbHZtOjpESU5vZGU6OkZsYWdaZXJvLCAgICAgICAgICAgICAv LyBGbGFncwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEws IGVsZW1lbnRzKTsKLSB9Ci0gCi1kaWZmIC0tZ2l0IGEvdGVzdHMvbGl0LXRlc3RzLzE3NzEuaXNw YyBiL3Rlc3RzL2xpdC10ZXN0cy8xNzcxLmlzcGMKLWluZGV4IDk4MDY0ZDg0ZC4uNGZlYjczZGQ3 IDEwMDY0NAotLS0tIGEvdGVzdHMvbGl0LXRlc3RzLzE3NzEuaXNwYwotKysrIGIvdGVzdHMvbGl0 LXRlc3RzLzE3NzEuaXNwYwotQEAgLTUsNyArNSw2IEBACi0gLy8gUlVOOiAle2lzcGN9ICVzIC0t dGFyZ2V0PXNzZTQtaTE2eDggLS1lbWl0LWFzbSAtbyAtIHwgRmlsZUNoZWNrICVzIC1jaGVjay1w cmVmaXg9Q0hFQ0tTU0U0X0kxNlg4Ci0gLy8gUlVOOiAle2lzcGN9ICVzIC0tdGFyZ2V0PXNzZTQt aTh4MTYgLS1lbWl0LWFzbSAtbyAtIHwgRmlsZUNoZWNrICVzIC1jaGVjay1wcmVmaXg9Q0hFQ0tT U0U0X0k4WDE2Ci0gCi0tLy8gUkVRVUlSRVM6IExMVk1fMTBfMCsKLSAvLyBSRVFVSVJFUzogWDg2 X0VOQUJMRUQKLSAKLSAvLyBDSEVDS0FWWDJfSTMyWDg6IHt7W2Etel0qeG9yW2Etel0qfX0gICV4 bW0wLCAleG1tMCwgJXhtbTAKLWRpZmYgLS1naXQgYS90ZXN0cy9saXQtdGVzdHMvMTg0NC5pc3Bj IGIvdGVzdHMvbGl0LXRlc3RzLzE4NDQuaXNwYwotaW5kZXggNzkzYTg4NjZjLi4xODllZGY0YzMg MTAwNjQ0Ci0tLS0gYS90ZXN0cy9saXQtdGVzdHMvMTg0NC5pc3BjCi0rKysgYi90ZXN0cy9saXQt dGVzdHMvMTg0NC5pc3BjCi1AQCAtNiw5ICs2LDYgQEAKLSAKLSAvLyBSRVFVSVJFUzogWDg2X0VO QUJMRUQKLSAKLS0vLyBJdCBkb2Vzbid0IHdvcmsgZm9yIGFueXRoaW5nIGVhcmxpZXIgdGhhbiAx MC4wLCBidXQgaXQgd2lsbCBub3QgYmUgZml4ZWQsIHNvIGRvbid0IHJ1bi4KLS0vLyBSRVFVSVJF UzogTExWTV8xMF8wKwotLQotIGV4dGVybiB1bmlmb3JtIHVuc2lnbmVkIGludDY0IHZhcl82Owot IGV4dGVybiB1bmlmb3JtIHVuc2lnbmVkIGludDE2IHZhcl8xMTsKLSBleHRlcm4gdW5pZm9ybSBi b29sIGFycl8yMDEgWzFdIFsxNV0gWzIwXTsKLWRpZmYgLS1naXQgYS90ZXN0cy9saXQtdGVzdHMv MTkyNi5pc3BjIGIvdGVzdHMvbGl0LXRlc3RzLzE5MjYuaXNwYwotaW5kZXggNzBmN2NjM2MyLi43 OTIxYzkxYTYgMTAwNjQ0Ci0tLS0gYS90ZXN0cy9saXQtdGVzdHMvMTkyNi5pc3BjCi0rKysgYi90 ZXN0cy9saXQtdGVzdHMvMTkyNi5pc3BjCi1AQCAtMiw4ICsyLDYgQEAKLSAvLyBSVU46IGNhdCAl VC8xOTI2Lm8uanNvbiBcCi0gLy8gUlVOOiAgIHwgRmlsZUNoZWNrICVzCi0gCi0tLy8gUkVRVUlS RVM6IExMVk1fMTBfMCsKLS0KLSAvLyBDSEVDSzogInRyYWNlRXZlbnRzIgotIC8vIENIRUNLOiAi ZGV0YWlsIgotIGV4cG9ydCB1bmlmb3JtIGludCBmb28odW5pZm9ybSBpbnQgYVtdLCB1bmlmb3Jt IGludCBjb3VudCkgewotZGlmZiAtLWdpdCBhL3Rlc3RzL2xpdC10ZXN0cy9jcHVzX3g4Ni5pc3Bj IGIvdGVzdHMvbGl0LXRlc3RzL2NwdXNfeDg2LmlzcGMKLWluZGV4IDUxNmVmZGQ0Yy4uNGQ2MDE4 NmY2IDEwMDY0NAotLS0tIGEvdGVzdHMvbGl0LXRlc3RzL2NwdXNfeDg2LmlzcGMKLSsrKyBiL3Rl c3RzL2xpdC10ZXN0cy9jcHVzX3g4Ni5pc3BjCi1AQCAtMjQsNiArMjQsOCBAQAotIC8vOyBSVU46 ICV7aXNwY30gJXMgLW8gJXQubyAtLW5vc3RkbGliIC0tdGFyZ2V0PXNzZTItaTMyeDQgLS1jcHU9 aWNsCi0gLy87IFJVTjogJXtpc3BjfSAlcyAtbyAldC5vIC0tbm9zdGRsaWIgLS10YXJnZXQ9c3Nl Mi1pMzJ4NCAtLWNwdT1pY2VsYWtlLXNlcnZlcgotIC8vOyBSVU46ICV7aXNwY30gJXMgLW8gJXQu byAtLW5vc3RkbGliIC0tdGFyZ2V0PXNzZTItaTMyeDQgLS1jcHU9aWN4Ci0rLy87IFJVTjogJXtp c3BjfSAlcyAtbyAldC5vIC0tbm9zdGRsaWIgLS10YXJnZXQ9c3NlMi1pMzJ4NCAtLWNwdT10aWdl cmxha2UKLSsvLzsgUlVOOiAle2lzcGN9ICVzIC1vICV0Lm8gLS1ub3N0ZGxpYiAtLXRhcmdldD1z c2UyLWkzMng0IC0tY3B1PXRnbAotIAotIC8vIFJFUVVJUkVTOiBYODZfRU5BQkxFRAotIAotZGlm ZiAtLWdpdCBhL3Rlc3RzL2xpdC10ZXN0cy9jcHVzX3g4Nl9sbHZtMTAuaXNwYyBiL3Rlc3RzL2xp dC10ZXN0cy9jcHVzX3g4Nl9sbHZtMTAuaXNwYwotZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Ci1p bmRleCBlZjAwMDAwZTUuLjAwMDAwMDAwMAotLS0tIGEvdGVzdHMvbGl0LXRlc3RzL2NwdXNfeDg2 X2xsdm0xMC5pc3BjCi0rKysgL2Rldi9udWxsCi1AQCAtMSwxMSArMCwwIEBACi0tLy8gVGhlIHRl c3QgY2hlY2tzIHRoYXQgY3B1IGRlZmluaXRpb25zIChpbmNsdWRpbmcgYWxsIHN5bm9ueW1zKSBh cmUgc3VjY2Vzc2Z1bGx5IGNvbnN1bWVkIGJ5IGNvbXBpbGVyLgotLQotLS8vOyBSVU46ICV7aXNw Y30gJXMgLW8gJXQubyAtLW5vc3RkbGliIC0tdGFyZ2V0PXNzZTItaTMyeDQgLS1jcHU9dGlnZXJs YWtlCi0tLy87IFJVTjogJXtpc3BjfSAlcyAtbyAldC5vIC0tbm9zdGRsaWIgLS10YXJnZXQ9c3Nl Mi1pMzJ4NCAtLWNwdT10Z2wKLS0KLS0vLyBSRVFVSVJFUzogWDg2X0VOQUJMRUQKLS0vLyBSRVFV SVJFUzogTExWTV8xMF8wKwotLQotLXVuaWZvcm0gaW50IGk7Ci0tCi0tdm9pZCBmb28oKSB7fQot ZGlmZiAtLWdpdCBhL3Rlc3RzL2xpdC10ZXN0cy9saXQuY2ZnIGIvdGVzdHMvbGl0LXRlc3RzL2xp dC5jZmcKLWluZGV4IDE3MDE2NTc5ZC4uMDQ1ZTY5NDM3IDEwMDY0NAotLS0tIGEvdGVzdHMvbGl0 LXRlc3RzL2xpdC5jZmcKLSsrKyBiL3Rlc3RzL2xpdC10ZXN0cy9saXQuY2ZnCi1AQCAtMzAsMTEg KzMwLDYgQEAgcHJpbnQoIkNvbmZpZzoiKQotIAotICMgTExWTSB2ZXJzaW9uCi0gbGx2bV92ZXJz aW9uID0gTG9vc2VWZXJzaW9uKGlzcGNfbGx2bV92ZXJzaW9uX251bWJlcikKLS1pZiBsbHZtX3Zl cnNpb24gPj0gTG9vc2VWZXJzaW9uKCIxMC4wLjAiKToKLS0gICAgcHJpbnQoIkxMVk1fMTBfMCs6 IFlFUyIpCi0tICAgIGNvbmZpZy5hdmFpbGFibGVfZmVhdHVyZXMuYWRkKCJMTFZNXzEwXzArIikK LS1lbHNlOgotLSAgICBwcmludCgiTExWTV8xMF8wKzogTk8iKQotIAotIGlmIGxsdm1fdmVyc2lv biA+PSBMb29zZVZlcnNpb24oIjEyLjAuMCIpOgotICAgICBwcmludCgiTExWTV8xMl8wKzogWUVT IikKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvaXNwYy9wYXRjaGVzL2xsdm0xMi0wMDMucGF0Y2ggYi9z cmNwa2dzL2lzcGMvcGF0Y2hlcy9sbHZtMTItMDAzLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwNDIzYWZjOWUzZjkuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2lzcGMv cGF0Y2hlcy9sbHZtMTItMDAzLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTUwNCArMCwwIEBA Ci1Gcm9tIDE4NTFkMThiMjEzZGJhZDE2OTkzNzA3NjE3NmIyZDU1MDk3MzNjNzYgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCi1Gcm9tOiBEZWVwYWsgUmFqZW5kcmFrdW1hcmFuIDxkZWVwYWsucmFq ZW5kcmFrdW1hcmFuQGludGVsLmNvbT4KLURhdGU6IFR1ZSwgMTIgSmFuIDIwMjEgMjI6MTU6MTIg LTA4MDAKLVN1YmplY3Q6IFtQQVRDSF0gZml4ZXMgIzE4MjEgLSBSZW1vdmluZyBMTFZNR2V0TmFt ZSgpIGFuZCBzd2l0Y2hpbmcgdG8KLSBMTFZNOjpUd2luZS4KLQotLS0tCi0gc3JjL2N0eC5jcHAg ICAgICB8IDMwNCArKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQotIHNyYy9jdHguaCAgICAgICAgfCAgNzIgKysrKystLS0tLS0KLSBzcmMvZXhwci5jcHAgICAg IHwgIDM2ICsrKy0tLQotIHNyYy9sbHZtdXRpbC5jcHAgfCAgMTcgLS0tCi0gc3JjL2xsdm11dGls LmggICB8ICAgNSAtCi0gc3JjL29wdC5jcHAgICAgICB8IDEwMyArKysrKysrKystLS0tLS0tCi0g NiBmaWxlcyBjaGFuZ2VkLCAyNTUgaW5zZXJ0aW9ucygrKSwgMjgyIGRlbGV0aW9ucygtKQotCi1k aWZmIC0tZ2l0IGEvc3JjL2N0eC5jcHAgYi9zcmMvY3R4LmNwcAotaW5kZXggNDJjNGVhMDlkLi5k ZWQ1MjRiNzEgMTAwNjQ0Ci0tLS0gYS9zcmMvY3R4LmNwcAotKysrIGIvc3JjL2N0eC5jcHAKLUBA IC0xMDIwLDggKzEwMjAsOCBAQCB2b2lkIEZ1bmN0aW9uRW1pdENvbnRleHQ6OkVtaXRDYXNlTGFi ZWwoaW50IHZhbHVlLCBib29sIGNoZWNrTWFzaywgU291cmNlUG9zIHBvcwotICAgICBsbHZtOjpC YXNpY0Jsb2NrICpiYkNhc2VJbXBsID0gTlVMTDsKLSAgICAgaWYgKGVtaXRHZW5YSGFyZHdhcmVN YXNrKCkpIHsKLSAgICAgICAgIC8vIENyZWF0ZSBiYXNpYyBibG9jayB3aXRoIGFjdHVhbCBjYXNl IGltcGxlbWVudGF0aW9uCi0tICAgICAgICBzdGQ6OnN0cmluZyBiYk5hbWUgPSBiYkNhc2UtPmdl dE5hbWUoKS5zdHIoKSArICJfaW1wbCI7Ci0tICAgICAgICBiYkNhc2VJbXBsID0gQ3JlYXRlQmFz aWNCbG9jayhiYk5hbWUuY19zdHIoKSwgYmJDYXNlKTsKLSsgICAgICAgIGxsdm06OlR3aW5lIGJi TmFtZSA9IGxsdm06OlR3aW5lKGJiQ2FzZS0+Z2V0TmFtZSgpKSArICJfaW1wbCI7Ci0rICAgICAg ICBiYkNhc2VJbXBsID0gQ3JlYXRlQmFzaWNCbG9jayhiYk5hbWUsIGJiQ2FzZSk7Ci0gICAgIH0K LSAjZW5kaWYKLSAKLUBAIC0xMTg1LDcgKzExODUsNyBAQCBib29sIEZ1bmN0aW9uRW1pdENvbnRl eHQ6OmluaXRMYWJlbEJCbG9ja3MoQVNUTm9kZSAqbm9kZSwgdm9pZCAqZGF0YSkgewotICAgICBp ZiAoY3R4LT5sYWJlbE1hcC5maW5kKGxzLT5uYW1lKSAhPSBjdHgtPmxhYmVsTWFwLmVuZCgpKQot ICAgICAgICAgRXJyb3IobHMtPnBvcywgIk11bHRpcGxlIGxhYmVscyBuYW1lZCBcIiVzXCIgaW4g ZnVuY3Rpb24uIiwgbHMtPm5hbWUuY19zdHIoKSk7Ci0gICAgIGVsc2UgewotLSAgICAgICAgbGx2 bTo6QmFzaWNCbG9jayAqYmIgPSBjdHgtPkNyZWF0ZUJhc2ljQmxvY2sobHMtPm5hbWUuY19zdHIo KSk7Ci0rICAgICAgICBsbHZtOjpCYXNpY0Jsb2NrICpiYiA9IGN0eC0+Q3JlYXRlQmFzaWNCbG9j ayhscy0+bmFtZSk7Ci0gICAgICAgICBjdHgtPmxhYmVsTWFwW2xzLT5uYW1lXSA9IGJiOwotICAg ICB9Ci0gICAgIHJldHVybiB0cnVlOwotQEAgLTEyOTksNyArMTI5OSw3IEBAIGxsdm06OlZhbHVl ICpGdW5jdGlvbkVtaXRDb250ZXh0OjpBbnkobGx2bTo6VmFsdWUgKm1hc2spIHsKLSAgICAgLy8g V2UgY2FuIGFjdHVhbGx5IGNhbGwgZWl0aGVyIG9uZSwgc2luY2UgYm90aCBhcmUgaTMycyBhcyBm YXIgYXMKLSAgICAgLy8gTExWTSdzIHR5cGUgc3lzdGVtIGlzIGNvbmNlcm5lZC4uLgotICAgICBs bHZtOjpGdW5jdGlvbiAqZm1tID0gbW1bMF0tPmZ1bmN0aW9uOwotLSAgICByZXR1cm4gQ2FsbElu c3QoZm1tLCBOVUxMLCBtYXNrLCBMTFZNR2V0TmFtZShtYXNrLCAiX2FueSIpKTsKLSsgICAgcmV0 dXJuIENhbGxJbnN0KGZtbSwgTlVMTCwgbWFzaywgbGx2bTo6VHdpbmUobWFzay0+Z2V0TmFtZSgp KSArICJfYW55Iik7Ci0gfQotIAotIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpB bGwobGx2bTo6VmFsdWUgKm1hc2spIHsKLUBAIC0xMzE1LDcgKzEzMTUsNyBAQCBsbHZtOjpWYWx1 ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6QWxsKGxsdm06OlZhbHVlICptYXNrKSB7Ci0gICAgIC8v IFdlIGNhbiBhY3R1YWxseSBjYWxsIGVpdGhlciBvbmUsIHNpbmNlIGJvdGggYXJlIGkzMnMgYXMg ZmFyIGFzCi0gICAgIC8vIExMVk0ncyB0eXBlIHN5c3RlbSBpcyBjb25jZXJuZWQuLi4KLSAgICAg bGx2bTo6RnVuY3Rpb24gKmZtbSA9IG1tWzBdLT5mdW5jdGlvbjsKLS0gICAgcmV0dXJuIENhbGxJ bnN0KGZtbSwgTlVMTCwgbWFzaywgTExWTUdldE5hbWUobWFzaywgIl9hbGwiKSk7Ci0rICAgIHJl dHVybiBDYWxsSW5zdChmbW0sIE5VTEwsIG1hc2ssIGxsdm06OlR3aW5lKG1hc2stPmdldE5hbWUo KSkgKyAiX2FsbCIpOwotIH0KLSAKLSBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6 Tm9uZShsbHZtOjpWYWx1ZSAqbWFzaykgewotQEAgLTEzMzEsNyArMTMzMSw3IEBAIGxsdm06OlZh bHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpOb25lKGxsdm06OlZhbHVlICptYXNrKSB7Ci0gICAg IC8vIFdlIGNhbiBhY3R1YWxseSBjYWxsIGVpdGhlciBvbmUsIHNpbmNlIGJvdGggYXJlIGkzMnMg YXMgZmFyIGFzCi0gICAgIC8vIExMVk0ncyB0eXBlIHN5c3RlbSBpcyBjb25jZXJuZWQuLi4KLSAg ICAgbGx2bTo6RnVuY3Rpb24gKmZtbSA9IG1tWzBdLT5mdW5jdGlvbjsKLS0gICAgcmV0dXJuIENh bGxJbnN0KGZtbSwgTlVMTCwgbWFzaywgTExWTUdldE5hbWUobWFzaywgIl9ub25lIikpOwotKyAg ICByZXR1cm4gQ2FsbEluc3QoZm1tLCBOVUxMLCBtYXNrLCBsbHZtOjpUd2luZShtYXNrLT5nZXRO YW1lKCkpICsgIl9ub25lIik7Ci0gfQotIAotIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250 ZXh0OjpMYW5lTWFzayhsbHZtOjpWYWx1ZSAqdikgewotQEAgLTEzNDksNyArMTM0OSw3IEBAIGxs dm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpMYW5lTWFzayhsbHZtOjpWYWx1ZSAqdikg ewotICAgICAvLyBXZSBjYW4gYWN0dWFsbHkgY2FsbCBlaXRoZXIgb25lLCBzaW5jZSBib3RoIGFy ZSBpMzJzIGFzIGZhciBhcwotICAgICAvLyBMTFZNJ3MgdHlwZSBzeXN0ZW0gaXMgY29uY2VybmVk Li4uCi0gICAgIGxsdm06OkZ1bmN0aW9uICpmbW0gPSBtbVswXS0+ZnVuY3Rpb247Ci0tICAgIHJl dHVybiBDYWxsSW5zdChmbW0sIE5VTEwsIHYsIExMVk1HZXROYW1lKHYsICJfbW92bXNrIikpOwot KyAgICByZXR1cm4gQ2FsbEluc3QoZm1tLCBOVUxMLCB2LCBsbHZtOjpUd2luZSh2LT5nZXROYW1l KCkpICsgIl9tb3Ztc2siKTsKLSB9Ci0gCi0gbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRl eHQ6Ok1hc2tzQWxsRXF1YWwobGx2bTo6VmFsdWUgKnYxLCBsbHZtOjpWYWx1ZSAqdjIpIHsKLUBA IC0xMzY0LDExICsxMzY0LDEyIEBAIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpN YXNrc0FsbEVxdWFsKGxsdm06OlZhbHVlICp2MSwgbGx2bTo6VmFsdWUgKnYyCi0gI2Vsc2UKLSAg ICAgaWYgKGctPnRhcmdldC0+Z2V0QXJjaCgpID09IEFyY2g6Ondhc20zMikgewotICAgICAgICAg bGx2bTo6RnVuY3Rpb24gKmZtbSA9IG0tPm1vZHVsZS0+Z2V0RnVuY3Rpb24oIl9fd2FzbV9jbXBf bXNrX2VxIik7Ci0tICAgICAgICByZXR1cm4gQ2FsbEluc3QoZm1tLCBOVUxMLCB7djEsIHYyfSwg TExWTUdldE5hbWUoIndhc21fY21wX21za19lcSIsIHYxLCB2MikpOwotKyAgICAgICAgcmV0dXJu IENhbGxJbnN0KGZtbSwgTlVMTCwge3YxLCB2Mn0sICgobGx2bTo6VHdpbmUoIndhc21fY21wX21z a19lcV8iKSArIHYxLT5nZXROYW1lKCkpICsgIl8iKSArIHYyLT5nZXROYW1lKCkpOwotICAgICB9 Ci0gICAgIGxsdm06OlZhbHVlICptbTEgPSBMYW5lTWFzayh2MSk7Ci0gICAgIGxsdm06OlZhbHVl ICptbTIgPSBMYW5lTWFzayh2Mik7Ci0tICAgIHJldHVybiBDbXBJbnN0KGxsdm06Okluc3RydWN0 aW9uOjpJQ21wLCBsbHZtOjpDbXBJbnN0OjpJQ01QX0VRLCBtbTEsIG1tMiwgTExWTUdldE5hbWUo ImVxdWFsIiwgdjEsIHYyKSk7Ci0rICAgIHJldHVybiBDbXBJbnN0KGxsdm06Okluc3RydWN0aW9u OjpJQ21wLCBsbHZtOjpDbXBJbnN0OjpJQ01QX0VRLCBtbTEsIG1tMiwKLSsgICAgICAgICAgICAg ICAgICAgKChsbHZtOjpUd2luZSgiZXF1YWxfIikgKyB2MS0+Z2V0TmFtZSgpKSArICJfIikgKyB2 Mi0+Z2V0TmFtZSgpKTsKLSAjZW5kaWYKLSB9Ci0gCi1AQCAtMTM5Miw3ICsxMzkzLDcgQEAgbGx2 bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkdldFN0cmluZ1B0cihjb25zdCBzdGQ6OnN0 cmluZyAmc3RyKSB7Ci0gICAgIHJldHVybiBuZXcgbGx2bTo6Qml0Q2FzdEluc3QobHN0clB0ciwg TExWTVR5cGVzOjpWb2lkUG9pbnRlclR5cGUsICJzdHJfdm9pZF9wdHIiLCBiYmxvY2spOwotIH0K LSAKLS1sbHZtOjpCYXNpY0Jsb2NrICpGdW5jdGlvbkVtaXRDb250ZXh0OjpDcmVhdGVCYXNpY0Js b2NrKGNvbnN0IGNoYXIgKm5hbWUsIGxsdm06OkJhc2ljQmxvY2sgKmluc2VydEFmdGVyKSB7Ci0r bGx2bTo6QmFzaWNCbG9jayAqRnVuY3Rpb25FbWl0Q29udGV4dDo6Q3JlYXRlQmFzaWNCbG9jayhj b25zdCBsbHZtOjpUd2luZSAmbmFtZSwgbGx2bTo6QmFzaWNCbG9jayAqaW5zZXJ0QWZ0ZXIpIHsK LSAgICAgbGx2bTo6QmFzaWNCbG9jayAqbmV3QkIgPSBsbHZtOjpCYXNpY0Jsb2NrOjpDcmVhdGUo KmctPmN0eCwgbmFtZSwgbGx2bUZ1bmN0aW9uKTsKLSAgICAgaWYgKGluc2VydEFmdGVyKQotICAg ICAgICAgbmV3QkItPm1vdmVBZnRlcihpbnNlcnRBZnRlcik7Ci1AQCAtMTQxNiwxNCArMTQxNywx NSBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6STFWZWNUb0Jvb2xWZWMobGx2 bTo6VmFsdWUgKmIpIHsKLSAKLSAgICAgICAgIGZvciAodW5zaWduZWQgaW50IGkgPSAwOyBpIDwg YXQtPmdldE51bUVsZW1lbnRzKCk7ICsraSkgewotICAgICAgICAgICAgIGxsdm06OlZhbHVlICpl bHQgPSBFeHRyYWN0SW5zdChiLCBpKTsKLS0gICAgICAgICAgICBsbHZtOjpWYWx1ZSAqc2V4dCA9 IFN3aXRjaEJvb2xTaXplKGVsdCwgTExWTVR5cGVzOjpCb29sVmVjdG9yU3RvcmFnZVR5cGUsIExM Vk1HZXROYW1lKGVsdCwgIl90b19ib29sdmVjIikpOwotKyAgICAgICAgICAgIGxsdm06OlZhbHVl ICpzZXh0ID0KLSsgICAgICAgICAgICAgICAgU3dpdGNoQm9vbFNpemUoZWx0LCBMTFZNVHlwZXM6 OkJvb2xWZWN0b3JTdG9yYWdlVHlwZSwgbGx2bTo6VHdpbmUoZWx0LT5nZXROYW1lKCkpICsgIl90 b19ib29sdmVjIik7Ci0gICAgICAgICAgICAgcmV0ID0gSW5zZXJ0SW5zdChyZXQsIHNleHQsIGkp OwotICAgICAgICAgfQotICAgICAgICAgcmV0dXJuIHJldDsKLSAgICAgfSBlbHNlIHsKLSAgICAg ICAgIC8vIEZvciBub24tYXJyYXkgdHlwZXMsIGNvbnZlcnQgdG8gJ0xMVk1UeXBlczo6Qm9vbFZl Y3RvclR5cGUnIGlmCi0gICAgICAgICAvLyBuZWNlc3NhcnkuCi0tICAgICAgICByZXR1cm4gU3dp dGNoQm9vbFNpemUoYiwgTExWTVR5cGVzOjpCb29sVmVjdG9yVHlwZSwgTExWTUdldE5hbWUoYiwg Il90b19ib29sdmVjIikpOwotKyAgICAgICAgcmV0dXJuIFN3aXRjaEJvb2xTaXplKGIsIExMVk1U eXBlczo6Qm9vbFZlY3RvclR5cGUsIGxsdm06OlR3aW5lKGItPmdldE5hbWUoKSkgKyAiX3RvX2Jv b2x2ZWMiKTsKLSAgICAgfQotIH0KLSAKLUBAIC0xNTYzLDcgKzE1NjUsNyBAQCBzdGF0aWMgaW50 IGxBcnJheVZlY3RvcldpZHRoKGxsdm06OlR5cGUgKnQpIHsKLSB9Ci0gCi0gbGx2bTo6VmFsdWUg KkZ1bmN0aW9uRW1pdENvbnRleHQ6OkJpbmFyeU9wZXJhdG9yKGxsdm06Okluc3RydWN0aW9uOjpC aW5hcnlPcHMgaW5zdCwgbGx2bTo6VmFsdWUgKnYwLCBsbHZtOjpWYWx1ZSAqdjEsCi0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKm5h bWUpIHsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y29uc3QgbGx2bTo6VHdpbmUgJm5hbWUpIHsKLSAgICAgaWYgKHYwID09IE5VTEwgfHwgdjEgPT0g TlVMTCkgewotICAgICAgICAgQXNzZXJ0UG9zKGN1cnJlbnRQb3MsIG0tPmVycm9yQ291bnQgPiAw KTsKLSAgICAgICAgIHJldHVybiBOVUxMOwotQEAgLTE1NzMsNyArMTU3NSw3IEBAIGxsdm06OlZh bHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpCaW5hcnlPcGVyYXRvcihsbHZtOjpJbnN0cnVjdGlv bjo6QmluYXJ5T3BzIGluCi0gICAgIGxsdm06OlR5cGUgKnR5cGUgPSB2MC0+Z2V0VHlwZSgpOwot ICAgICBpbnQgYXJyYXlTaXplID0gbEFycmF5VmVjdG9yV2lkdGgodHlwZSk7Ci0gICAgIGlmIChh cnJheVNpemUgPT0gMCkgewotLSAgICAgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmJvcCA9IGxsdm06 OkJpbmFyeU9wZXJhdG9yOjpDcmVhdGUoaW5zdCwgdjAsIHYxLCBuYW1lID8gbmFtZSA6ICIiLCBi YmxvY2spOwotKyAgICAgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmJvcCA9IGxsdm06OkJpbmFyeU9w ZXJhdG9yOjpDcmVhdGUoaW5zdCwgdjAsIHYxLCBuYW1lLCBiYmxvY2spOwotICAgICAgICAgQWRk RGVidWdQb3MoYm9wKTsKLSAgICAgICAgIHJldHVybiBib3A7Ci0gICAgIH0gZWxzZSB7Ci1AQCAt MTU5MSw3ICsxNTkzLDcgQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkJpbmFy eU9wZXJhdG9yKGxsdm06Okluc3RydWN0aW9uOjpCaW5hcnlPcHMgaW4KLSAgICAgfQotIH0KLSAK LS1sbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6Tm90T3BlcmF0b3IobGx2bTo6VmFs dWUgKnYsIGNvbnN0IGNoYXIgKm5hbWUpIHsKLStsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29u dGV4dDo6Tm90T3BlcmF0b3IobGx2bTo6VmFsdWUgKnYsIGNvbnN0IGxsdm06OlR3aW5lICZuYW1l KSB7Ci0gICAgIGlmICh2ID09IE5VTEwpIHsKLSAgICAgICAgIEFzc2VydFBvcyhjdXJyZW50UG9z LCBtLT5lcnJvckNvdW50ID4gMCk7Ci0gICAgICAgICByZXR1cm4gTlVMTDsKLUBAIC0xNjAzLDE0 ICsxNjA1LDE0IEBAIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpOb3RPcGVyYXRv cihsbHZtOjpWYWx1ZSAqdiwgY29uc3QgY2hhciAqbmFtZSkKLSAgICAgbGx2bTo6VHlwZSAqdHlw ZSA9IHYtPmdldFR5cGUoKTsKLSAgICAgaW50IGFycmF5U2l6ZSA9IGxBcnJheVZlY3RvcldpZHRo KHR5cGUpOwotICAgICBpZiAoYXJyYXlTaXplID09IDApIHsKLS0gICAgICAgIGxsdm06Okluc3Ry dWN0aW9uICpiaW5zdCA9IGxsdm06OkJpbmFyeU9wZXJhdG9yOjpDcmVhdGVOb3QodiwgbmFtZSA/ IG5hbWUgOiAibm90IiwgYmJsb2NrKTsKLSsgICAgICAgIGxsdm06Okluc3RydWN0aW9uICpiaW5z dCA9IGxsdm06OkJpbmFyeU9wZXJhdG9yOjpDcmVhdGVOb3QodiwgbmFtZS5pc1RyaXZpYWxseUVt cHR5KCkgPyAibm90IiA6IG5hbWUsIGJibG9jayk7Ci0gICAgICAgICBBZGREZWJ1Z1BvcyhiaW5z dCk7Ci0gICAgICAgICByZXR1cm4gYmluc3Q7Ci0gICAgIH0gZWxzZSB7Ci0gICAgICAgICBsbHZt OjpWYWx1ZSAqcmV0ID0gbGx2bTo6VW5kZWZWYWx1ZTo6Z2V0KHR5cGUpOwotICAgICAgICAgZm9y IChpbnQgaSA9IDA7IGkgPCBhcnJheVNpemU7ICsraSkgewotICAgICAgICAgICAgIGxsdm06OlZh bHVlICphID0gRXh0cmFjdEluc3QodiwgaSk7Ci0tICAgICAgICAgICAgbGx2bTo6VmFsdWUgKm9w ID0gbGx2bTo6QmluYXJ5T3BlcmF0b3I6OkNyZWF0ZU5vdChhLCBuYW1lID8gbmFtZSA6ICJub3Qi LCBiYmxvY2spOwotKyAgICAgICAgICAgIGxsdm06OlZhbHVlICpvcCA9IGxsdm06OkJpbmFyeU9w ZXJhdG9yOjpDcmVhdGVOb3QoYSwgbmFtZS5pc1RyaXZpYWxseUVtcHR5KCkgPyAibm90IiA6IG5h bWUsIGJibG9jayk7Ci0gICAgICAgICAgICAgQWRkRGVidWdQb3Mob3ApOwotICAgICAgICAgICAg IHJldCA9IEluc2VydEluc3QocmV0LCBvcCwgaSk7Ci0gICAgICAgICB9Ci1AQCAtMTYzOCw3ICsx NjQwLDcgQEAgc3RhdGljIGxsdm06OlR5cGUgKmxHZXRNYXRjaGluZ0Jvb2xWZWN0b3JUeXBlKGxs dm06OlR5cGUgKnR5cGUpIHsKLSB9Ci0gCi0gbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRl eHQ6OkNtcEluc3QobGx2bTo6SW5zdHJ1Y3Rpb246Ok90aGVyT3BzIGluc3QsIGxsdm06OkNtcElu c3Q6OlByZWRpY2F0ZSBwcmVkLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGxsdm06OlZhbHVlICp2MCwgbGx2bTo6VmFsdWUgKnYxLCBjb25zdCBjaGFyICpuYW1l KSB7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6VmFs dWUgKnYwLCBsbHZtOjpWYWx1ZSAqdjEsIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lKSB7Ci0gICAg IGlmICh2MCA9PSBOVUxMIHx8IHYxID09IE5VTEwpIHsKLSAgICAgICAgIEFzc2VydFBvcyhjdXJy ZW50UG9zLCBtLT5lcnJvckNvdW50ID4gMCk7Ci0gICAgICAgICByZXR1cm4gTlVMTDsKLUBAIC0x NjQ4LDcgKzE2NTAsOCBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6Q21wSW5z dChsbHZtOjpJbnN0cnVjdGlvbjo6T3RoZXJPcHMgaW5zdCwgbGx2bQotICAgICBsbHZtOjpUeXBl ICp0eXBlID0gdjAtPmdldFR5cGUoKTsKLSAgICAgaW50IGFycmF5U2l6ZSA9IGxBcnJheVZlY3Rv cldpZHRoKHR5cGUpOwotICAgICBpZiAoYXJyYXlTaXplID09IDApIHsKLS0gICAgICAgIGxsdm06 Okluc3RydWN0aW9uICpjaSA9IGxsdm06OkNtcEluc3Q6OkNyZWF0ZShpbnN0LCBwcmVkLCB2MCwg djEsIG5hbWUgPyBuYW1lIDogImNtcCIsIGJibG9jayk7Ci0rICAgICAgICBsbHZtOjpJbnN0cnVj dGlvbiAqY2kgPQotKyAgICAgICAgICAgIGxsdm06OkNtcEluc3Q6OkNyZWF0ZShpbnN0LCBwcmVk LCB2MCwgdjEsIG5hbWUuaXNUcml2aWFsbHlFbXB0eSgpID8gImNtcCIgOiBuYW1lLCBiYmxvY2sp OwotICAgICAgICAgQWRkRGVidWdQb3MoY2kpOwotICAgICAgICAgcmV0dXJuIGNpOwotICAgICB9 IGVsc2UgewotQEAgLTE2NTcsMTQgKzE2NjAsMTQgQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1p dENvbnRleHQ6OkNtcEluc3QobGx2bTo6SW5zdHJ1Y3Rpb246Ok90aGVyT3BzIGluc3QsIGxsdm0K LSAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgYXJyYXlTaXplOyArK2kpIHsKLSAgICAgICAg ICAgICBsbHZtOjpWYWx1ZSAqYSA9IEV4dHJhY3RJbnN0KHYwLCBpKTsKLSAgICAgICAgICAgICBs bHZtOjpWYWx1ZSAqYiA9IEV4dHJhY3RJbnN0KHYxLCBpKTsKLS0gICAgICAgICAgICBsbHZtOjpW YWx1ZSAqb3AgPSBDbXBJbnN0KGluc3QsIHByZWQsIGEsIGIsIG5hbWUpOwotKyAgICAgICAgICAg IGxsdm06OlZhbHVlICpvcCA9IENtcEluc3QoaW5zdCwgcHJlZCwgYSwgYiwgbmFtZS5pc1RyaXZp YWxseUVtcHR5KCkgPyAiY21wIiA6IG5hbWUpOwotICAgICAgICAgICAgIHJldCA9IEluc2VydElu c3QocmV0LCBvcCwgaSk7Ci0gICAgICAgICB9Ci0gICAgICAgICByZXR1cm4gcmV0OwotICAgICB9 Ci0gfQotIAotLWxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpTbWVhclVuaWZvcm0o bGx2bTo6VmFsdWUgKnZhbHVlLCBjb25zdCBjaGFyICpuYW1lKSB7Ci0rbGx2bTo6VmFsdWUgKkZ1 bmN0aW9uRW1pdENvbnRleHQ6OlNtZWFyVW5pZm9ybShsbHZtOjpWYWx1ZSAqdmFsdWUsIGNvbnN0 IGxsdm06OlR3aW5lICZuYW1lKSB7Ci0gICAgIGlmICh2YWx1ZSA9PSBOVUxMKSB7Ci0gICAgICAg ICBBc3NlcnRQb3MoY3VycmVudFBvcywgbS0+ZXJyb3JDb3VudCA+IDApOwotICAgICAgICAgcmV0 dXJuIE5VTEw7Ci1AQCAtMTcwNCwyMSArMTcwNywxOSBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25F bWl0Q29udGV4dDo6U21lYXJVbmlmb3JtKGxsdm06OlZhbHVlICp2YWx1ZSwgY29uc3QgY2hhciAq bgotICAgICByZXR1cm4gcmV0OwotIH0KLSAKLS1sbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29u dGV4dDo6Qml0Q2FzdEluc3QobGx2bTo6VmFsdWUgKnZhbHVlLCBsbHZtOjpUeXBlICp0eXBlLCBj b25zdCBjaGFyICpuYW1lKSB7Ci0rbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkJp dENhc3RJbnN0KGxsdm06OlZhbHVlICp2YWx1ZSwgbGx2bTo6VHlwZSAqdHlwZSwgY29uc3QgbGx2 bTo6VHdpbmUgJm5hbWUpIHsKLSAgICAgaWYgKHZhbHVlID09IE5VTEwpIHsKLSAgICAgICAgIEFz c2VydFBvcyhjdXJyZW50UG9zLCBtLT5lcnJvckNvdW50ID4gMCk7Ci0gICAgICAgICByZXR1cm4g TlVMTDsKLSAgICAgfQotIAotLSAgICBpZiAobmFtZSA9PSBOVUxMKQotLSAgICAgICAgbmFtZSA9 IExMVk1HZXROYW1lKHZhbHVlLCAiX2JpdGNhc3QiKTsKLS0KLS0gICAgbGx2bTo6SW5zdHJ1Y3Rp b24gKmluc3QgPSBuZXcgbGx2bTo6Qml0Q2FzdEluc3QodmFsdWUsIHR5cGUsIG5hbWUsIGJibG9j ayk7Ci0rICAgIGxsdm06Okluc3RydWN0aW9uICppbnN0ID0gbmV3IGxsdm06OkJpdENhc3RJbnN0 KAotKyAgICAgICAgdmFsdWUsIHR5cGUsIG5hbWUuaXNUcml2aWFsbHlFbXB0eSgpID8gbGx2bTo6 VHdpbmUodmFsdWUtPmdldE5hbWUoKSkgKyAiX2JpdGNhc3QiIDogbmFtZSwgYmJsb2NrKTsKLSAg ICAgQWRkRGVidWdQb3MoaW5zdCk7Ci0gICAgIHJldHVybiBpbnN0OwotIH0KLSAKLS1sbHZtOjpW YWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6UHRyVG9JbnRJbnN0KGxsdm06OlZhbHVlICp2YWx1 ZSwgY29uc3QgY2hhciAqbmFtZSkgewotK2xsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0 OjpQdHJUb0ludEluc3QobGx2bTo6VmFsdWUgKnZhbHVlLCBjb25zdCBsbHZtOjpUd2luZSAmbmFt ZSkgewotICAgICBpZiAodmFsdWUgPT0gTlVMTCkgewotICAgICAgICAgQXNzZXJ0UG9zKGN1cnJl bnRQb3MsIG0tPmVycm9yQ291bnQgPiAwKTsKLSAgICAgICAgIHJldHVybiBOVUxMOwotQEAgLTE3 MjgsMjMgKzE3MjksMTkgQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OlB0clRv SW50SW5zdChsbHZtOjpWYWx1ZSAqdmFsdWUsIGNvbnN0IGNoYXIgKm4KLSAgICAgICAgIC8vIG5v LW9wIGZvciB2YXJ5aW5nIHBvaW50ZXJzOyB0aGV5J3JlIGFscmVhZHkgdmVjdG9ycyBvZiBpbnRz Ci0gICAgICAgICByZXR1cm4gdmFsdWU7Ci0gCi0tICAgIGlmIChuYW1lID09IE5VTEwpCi0tICAg ICAgICBuYW1lID0gTExWTUdldE5hbWUodmFsdWUsICJfcHRyMmludCIpOwotICAgICBsbHZtOjpU eXBlICp0eXBlID0gTExWTVR5cGVzOjpQb2ludGVySW50VHlwZTsKLS0gICAgbGx2bTo6SW5zdHJ1 Y3Rpb24gKmluc3QgPSBuZXcgbGx2bTo6UHRyVG9JbnRJbnN0KHZhbHVlLCB0eXBlLCBuYW1lLCBi YmxvY2spOwotKyAgICBsbHZtOjpJbnN0cnVjdGlvbiAqaW5zdCA9IG5ldyBsbHZtOjpQdHJUb0lu dEluc3QoCi0rICAgICAgICB2YWx1ZSwgdHlwZSwgbmFtZS5pc1RyaXZpYWxseUVtcHR5KCkgPyBs bHZtOjpUd2luZSh2YWx1ZS0+Z2V0TmFtZSgpKSArICJfcHRyMmludCIgOiBuYW1lLCBiYmxvY2sp OwotICAgICBBZGREZWJ1Z1BvcyhpbnN0KTsKLSAgICAgcmV0dXJuIGluc3Q7Ci0gfQotIAotLWxs dm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpQdHJUb0ludEluc3QobGx2bTo6VmFsdWUg KnZhbHVlLCBsbHZtOjpUeXBlICp0b1R5cGUsIGNvbnN0IGNoYXIgKm5hbWUpIHsKLStsbHZtOjpW YWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6UHRyVG9JbnRJbnN0KGxsdm06OlZhbHVlICp2YWx1 ZSwgbGx2bTo6VHlwZSAqdG9UeXBlLCBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSkgewotICAgICBp ZiAodmFsdWUgPT0gTlVMTCkgewotICAgICAgICAgQXNzZXJ0UG9zKGN1cnJlbnRQb3MsIG0tPmVy cm9yQ291bnQgPiAwKTsKLSAgICAgICAgIHJldHVybiBOVUxMOwotICAgICB9Ci0gCi0tICAgIGlm IChuYW1lID09IE5VTEwpCi0tICAgICAgICBuYW1lID0gTExWTUdldE5hbWUodmFsdWUsICJfcHRy MmludCIpOwotLQotICAgICBsbHZtOjpUeXBlICpmcm9tVHlwZSA9IHZhbHVlLT5nZXRUeXBlKCk7 Ci0gICAgIGlmIChsbHZtOjppc2E8bGx2bTo6VmVjdG9yVHlwZT4oZnJvbVR5cGUpKSB7Ci0gICAg ICAgICAvLyB2YXJ5aW5nIHBvaW50ZXIKLUBAIC0xNzUyLDI3ICsxNzQ5LDI2IEBAIGxsdm06OlZh bHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpQdHJUb0ludEluc3QobGx2bTo6VmFsdWUgKnZhbHVl LCBsbHZtOjpUeXBlICp0Ci0gICAgICAgICAgICAgLy8gYWxyZWFkeSB0aGUgcmlnaHQgdHlwZS0t ZG9uZQotICAgICAgICAgICAgIHJldHVybiB2YWx1ZTsKLSAgICAgICAgIGVsc2UgaWYgKGZyb21U eXBlLT5nZXRTY2FsYXJTaXplSW5CaXRzKCkgPiB0b1R5cGUtPmdldFNjYWxhclNpemVJbkJpdHMo KSkKLS0gICAgICAgICAgICByZXR1cm4gVHJ1bmNJbnN0KHZhbHVlLCB0b1R5cGUsIG5hbWUpOwot KyAgICAgICAgICAgIHJldHVybiBUcnVuY0luc3QodmFsdWUsIHRvVHlwZSwKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIG5hbWUuaXNUcml2aWFsbHlFbXB0eSgpID8gbGx2bTo6VHdpbmUo dmFsdWUtPmdldE5hbWUoKSkgKyAiX3B0cjJpbnQiIDogbmFtZSk7Ci0gICAgICAgICBlbHNlIHsK LSAgICAgICAgICAgICBBc3NlcnRQb3MoY3VycmVudFBvcywgZnJvbVR5cGUtPmdldFNjYWxhclNp emVJbkJpdHMoKSA8IHRvVHlwZS0+Z2V0U2NhbGFyU2l6ZUluQml0cygpKTsKLS0gICAgICAgICAg ICByZXR1cm4gWkV4dEluc3QodmFsdWUsIHRvVHlwZSwgbmFtZSk7Ci0rICAgICAgICAgICAgcmV0 dXJuIFpFeHRJbnN0KHZhbHVlLCB0b1R5cGUsIG5hbWUuaXNUcml2aWFsbHlFbXB0eSgpID8gbGx2 bTo6VHdpbmUodmFsdWUtPmdldE5hbWUoKSkgKyAiX3B0cjJpbnQiIDogbmFtZSk7Ci0gICAgICAg ICB9Ci0gICAgIH0KLSAKLS0gICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmluc3QgPSBuZXcgbGx2bTo6 UHRyVG9JbnRJbnN0KHZhbHVlLCB0b1R5cGUsIG5hbWUsIGJibG9jayk7Ci0rICAgIGxsdm06Oklu c3RydWN0aW9uICppbnN0ID0gbmV3IGxsdm06OlB0clRvSW50SW5zdCgKLSsgICAgICAgIHZhbHVl LCB0b1R5cGUsIG5hbWUuaXNUcml2aWFsbHlFbXB0eSgpID8gbGx2bTo6VHdpbmUodmFsdWUtPmdl dE5hbWUoKSkgKyAiX3B0cjJpbnQiIDogbmFtZSwgYmJsb2NrKTsKLSAgICAgQWRkRGVidWdQb3Mo aW5zdCk7Ci0gICAgIHJldHVybiBpbnN0OwotIH0KLSAKLS1sbHZtOjpWYWx1ZSAqRnVuY3Rpb25F bWl0Q29udGV4dDo6SW50VG9QdHJJbnN0KGxsdm06OlZhbHVlICp2YWx1ZSwgbGx2bTo6VHlwZSAq dG9UeXBlLCBjb25zdCBjaGFyICpuYW1lKSB7Ci0rbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENv bnRleHQ6OkludFRvUHRySW5zdChsbHZtOjpWYWx1ZSAqdmFsdWUsIGxsdm06OlR5cGUgKnRvVHlw ZSwgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUpIHsKLSAgICAgaWYgKHZhbHVlID09IE5VTEwpIHsK LSAgICAgICAgIEFzc2VydFBvcyhjdXJyZW50UG9zLCBtLT5lcnJvckNvdW50ID4gMCk7Ci0gICAg ICAgICByZXR1cm4gTlVMTDsKLSAgICAgfQotIAotLSAgICBpZiAobmFtZSA9PSBOVUxMKQotLSAg ICAgICAgbmFtZSA9IExMVk1HZXROYW1lKHZhbHVlLCAiX2ludDJwdHIiKTsKLS0KLSAgICAgbGx2 bTo6VHlwZSAqZnJvbVR5cGUgPSB2YWx1ZS0+Z2V0VHlwZSgpOwotICAgICBpZiAobGx2bTo6aXNh PGxsdm06OlZlY3RvclR5cGU+KGZyb21UeXBlKSkgewotICAgICAgICAgLy8gdmFyeWluZyBwb2lu dGVyCi1AQCAtMTc4MCw5NSArMTc3Niw4NyBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29u dGV4dDo6SW50VG9QdHJJbnN0KGxsdm06OlZhbHVlICp2YWx1ZSwgbGx2bTo6VHlwZSAqdAotICAg ICAgICAgICAgIC8vIGRvbmUKLSAgICAgICAgICAgICByZXR1cm4gdmFsdWU7Ci0gICAgICAgICBl bHNlIGlmIChmcm9tVHlwZS0+Z2V0U2NhbGFyU2l6ZUluQml0cygpID4gdG9UeXBlLT5nZXRTY2Fs YXJTaXplSW5CaXRzKCkpCi0tICAgICAgICAgICAgcmV0dXJuIFRydW5jSW5zdCh2YWx1ZSwgdG9U eXBlLCBuYW1lKTsKLSsgICAgICAgICAgICByZXR1cm4gVHJ1bmNJbnN0KHZhbHVlLCB0b1R5cGUs Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lLmlzVHJpdmlhbGx5RW1wdHkoKSA/ IGxsdm06OlR3aW5lKHZhbHVlLT5nZXROYW1lKCkpICsgIl9pbnQycHRyIiA6IG5hbWUpOwotICAg ICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgQXNzZXJ0UG9zKGN1cnJlbnRQb3MsIGZyb21UeXBl LT5nZXRTY2FsYXJTaXplSW5CaXRzKCkgPCB0b1R5cGUtPmdldFNjYWxhclNpemVJbkJpdHMoKSk7 Ci0tICAgICAgICAgICAgcmV0dXJuIFpFeHRJbnN0KHZhbHVlLCB0b1R5cGUsIG5hbWUpOwotKyAg ICAgICAgICAgIHJldHVybiBaRXh0SW5zdCh2YWx1ZSwgdG9UeXBlLCBuYW1lLmlzVHJpdmlhbGx5 RW1wdHkoKSA/IGxsdm06OlR3aW5lKHZhbHVlLT5nZXROYW1lKCkpICsgIl9pbnQycHRyIiA6IG5h bWUpOwotICAgICAgICAgfQotICAgICB9Ci0gCi0tICAgIGxsdm06Okluc3RydWN0aW9uICppbnN0 ID0gbmV3IGxsdm06OkludFRvUHRySW5zdCh2YWx1ZSwgdG9UeXBlLCBuYW1lLCBiYmxvY2spOwot KyAgICBsbHZtOjpJbnN0cnVjdGlvbiAqaW5zdCA9IG5ldyBsbHZtOjpJbnRUb1B0ckluc3QoCi0r ICAgICAgICB2YWx1ZSwgdG9UeXBlLCBuYW1lLmlzVHJpdmlhbGx5RW1wdHkoKSA/IGxsdm06OlR3 aW5lKHZhbHVlLT5nZXROYW1lKCkpICsgIl9pbnQycHRyIiA6IG5hbWUsIGJibG9jayk7Ci0gICAg IEFkZERlYnVnUG9zKGluc3QpOwotICAgICByZXR1cm4gaW5zdDsKLSB9Ci0gCi0tbGx2bTo6SW5z dHJ1Y3Rpb24gKkZ1bmN0aW9uRW1pdENvbnRleHQ6OlRydW5jSW5zdChsbHZtOjpWYWx1ZSAqdmFs dWUsIGxsdm06OlR5cGUgKnR5cGUsIGNvbnN0IGNoYXIgKm5hbWUpIHsKLStsbHZtOjpJbnN0cnVj dGlvbiAqRnVuY3Rpb25FbWl0Q29udGV4dDo6VHJ1bmNJbnN0KGxsdm06OlZhbHVlICp2YWx1ZSwg bGx2bTo6VHlwZSAqdHlwZSwgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUpIHsKLSAgICAgaWYgKHZh bHVlID09IE5VTEwpIHsKLSAgICAgICAgIEFzc2VydFBvcyhjdXJyZW50UG9zLCBtLT5lcnJvckNv dW50ID4gMCk7Ci0gICAgICAgICByZXR1cm4gTlVMTDsKLSAgICAgfQotIAotLSAgICBpZiAobmFt ZSA9PSBOVUxMKQotLSAgICAgICAgbmFtZSA9IExMVk1HZXROYW1lKHZhbHVlLCAiX3RydW5jIik7 Ci0tCi0gICAgIC8vIFRPRE86IHdlIHNob3VsZCBwcm9iYWJseSBoYW5kbGUgdGhlIGFycmF5IGNh c2UgYXMgaW4KLSAgICAgLy8gZS5nLiBCaXRDYXN0SW5zdCgpLCBidXQgd2UgZG9uJ3QgY3VycmVu dGx5IG5lZWQgdGhhdCBmdW5jdGlvbmFsaXR5Ci0tICAgIGxsdm06Okluc3RydWN0aW9uICppbnN0 ID0gbmV3IGxsdm06OlRydW5jSW5zdCh2YWx1ZSwgdHlwZSwgbmFtZSwgYmJsb2NrKTsKLSsgICAg bGx2bTo6SW5zdHJ1Y3Rpb24gKmluc3QgPSBuZXcgbGx2bTo6VHJ1bmNJbnN0KAotKyAgICAgICAg dmFsdWUsIHR5cGUsIG5hbWUuaXNUcml2aWFsbHlFbXB0eSgpID8gbGx2bTo6VHdpbmUodmFsdWUt PmdldE5hbWUoKSkgKyAiX3RydW5jIiA6IG5hbWUsIGJibG9jayk7Ci0gICAgIEFkZERlYnVnUG9z KGluc3QpOwotICAgICByZXR1cm4gaW5zdDsKLSB9Ci0gCi0gbGx2bTo6SW5zdHJ1Y3Rpb24gKkZ1 bmN0aW9uRW1pdENvbnRleHQ6OkNhc3RJbnN0KGxsdm06Okluc3RydWN0aW9uOjpDYXN0T3BzIG9w LCBsbHZtOjpWYWx1ZSAqdmFsdWUsIGxsdm06OlR5cGUgKnR5cGUsCi0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKm5hbWUpIHsKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGx2 bTo6VHdpbmUgJm5hbWUpIHsKLSAgICAgaWYgKHZhbHVlID09IE5VTEwpIHsKLSAgICAgICAgIEFz c2VydFBvcyhjdXJyZW50UG9zLCBtLT5lcnJvckNvdW50ID4gMCk7Ci0gICAgICAgICByZXR1cm4g TlVMTDsKLSAgICAgfQotIAotLSAgICBpZiAobmFtZSA9PSBOVUxMKQotLSAgICAgICAgbmFtZSA9 IExMVk1HZXROYW1lKHZhbHVlLCAiX2Nhc3QiKTsKLS0KLSAgICAgLy8gVE9ETzogd2Ugc2hvdWxk IHByb2JhYmx5IGhhbmRsZSB0aGUgYXJyYXkgY2FzZSBhcyBpbgotICAgICAvLyBlLmcuIEJpdENh c3RJbnN0KCksIGJ1dCB3ZSBkb24ndCBjdXJyZW50bHkgbmVlZCB0aGF0IGZ1bmN0aW9uYWxpdHkK LS0gICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmluc3QgPSBsbHZtOjpDYXN0SW5zdDo6Q3JlYXRlKG9w LCB2YWx1ZSwgdHlwZSwgbmFtZSwgYmJsb2NrKTsKLSsgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmlu c3QgPSBsbHZtOjpDYXN0SW5zdDo6Q3JlYXRlKAotKyAgICAgICAgb3AsIHZhbHVlLCB0eXBlLCBu YW1lLmlzVHJpdmlhbGx5RW1wdHkoKSA/IGxsdm06OlR3aW5lKHZhbHVlLT5nZXROYW1lKCkpICsg Il9jYXN0IiA6IG5hbWUsIGJibG9jayk7Ci0gICAgIEFkZERlYnVnUG9zKGluc3QpOwotICAgICBy ZXR1cm4gaW5zdDsKLSB9Ci0gCi0tbGx2bTo6SW5zdHJ1Y3Rpb24gKkZ1bmN0aW9uRW1pdENvbnRl eHQ6OkZQQ2FzdEluc3QobGx2bTo6VmFsdWUgKnZhbHVlLCBsbHZtOjpUeXBlICp0eXBlLCBjb25z dCBjaGFyICpuYW1lKSB7Ci0rbGx2bTo6SW5zdHJ1Y3Rpb24gKkZ1bmN0aW9uRW1pdENvbnRleHQ6 OkZQQ2FzdEluc3QobGx2bTo6VmFsdWUgKnZhbHVlLCBsbHZtOjpUeXBlICp0eXBlLCBjb25zdCBs bHZtOjpUd2luZSAmbmFtZSkgewotICAgICBpZiAodmFsdWUgPT0gTlVMTCkgewotICAgICAgICAg QXNzZXJ0UG9zKGN1cnJlbnRQb3MsIG0tPmVycm9yQ291bnQgPiAwKTsKLSAgICAgICAgIHJldHVy biBOVUxMOwotICAgICB9Ci0gCi0tICAgIGlmIChuYW1lID09IE5VTEwpCi0tICAgICAgICBuYW1l ID0gTExWTUdldE5hbWUodmFsdWUsICJfY2FzdCIpOwotLQotICAgICAvLyBUT0RPOiB3ZSBzaG91 bGQgcHJvYmFibHkgaGFuZGxlIHRoZSBhcnJheSBjYXNlIGFzIGluCi0gICAgIC8vIGUuZy4gQml0 Q2FzdEluc3QoKSwgYnV0IHdlIGRvbid0IGN1cnJlbnRseSBuZWVkIHRoYXQgZnVuY3Rpb25hbGl0 eQotLSAgICBsbHZtOjpJbnN0cnVjdGlvbiAqaW5zdCA9IGxsdm06OkNhc3RJbnN0OjpDcmVhdGVG UENhc3QodmFsdWUsIHR5cGUsIG5hbWUsIGJibG9jayk7Ci0rICAgIGxsdm06Okluc3RydWN0aW9u ICppbnN0ID0gbGx2bTo6Q2FzdEluc3Q6OkNyZWF0ZUZQQ2FzdCgKLSsgICAgICAgIHZhbHVlLCB0 eXBlLCBuYW1lLmlzVHJpdmlhbGx5RW1wdHkoKSA/IGxsdm06OlR3aW5lKHZhbHVlLT5nZXROYW1l KCkpICsgIl9jYXN0IiA6IG5hbWUsIGJibG9jayk7Ci0gICAgIEFkZERlYnVnUG9zKGluc3QpOwot ICAgICByZXR1cm4gaW5zdDsKLSB9Ci0gCi0tbGx2bTo6SW5zdHJ1Y3Rpb24gKkZ1bmN0aW9uRW1p dENvbnRleHQ6OlNFeHRJbnN0KGxsdm06OlZhbHVlICp2YWx1ZSwgbGx2bTo6VHlwZSAqdHlwZSwg Y29uc3QgY2hhciAqbmFtZSkgewotK2xsdm06Okluc3RydWN0aW9uICpGdW5jdGlvbkVtaXRDb250 ZXh0OjpTRXh0SW5zdChsbHZtOjpWYWx1ZSAqdmFsdWUsIGxsdm06OlR5cGUgKnR5cGUsIGNvbnN0 IGxsdm06OlR3aW5lICZuYW1lKSB7Ci0gICAgIGlmICh2YWx1ZSA9PSBOVUxMKSB7Ci0gICAgICAg ICBBc3NlcnRQb3MoY3VycmVudFBvcywgbS0+ZXJyb3JDb3VudCA+IDApOwotICAgICAgICAgcmV0 dXJuIE5VTEw7Ci0gICAgIH0KLSAKLS0gICAgaWYgKG5hbWUgPT0gTlVMTCkKLS0gICAgICAgIG5h bWUgPSBMTFZNR2V0TmFtZSh2YWx1ZSwgIl9zZXh0Iik7Ci0tCi0gICAgIC8vIFRPRE86IHdlIHNo b3VsZCBwcm9iYWJseSBoYW5kbGUgdGhlIGFycmF5IGNhc2UgYXMgaW4KLSAgICAgLy8gZS5nLiBC aXRDYXN0SW5zdCgpLCBidXQgd2UgZG9uJ3QgY3VycmVudGx5IG5lZWQgdGhhdCBmdW5jdGlvbmFs aXR5Ci0tICAgIGxsdm06Okluc3RydWN0aW9uICppbnN0ID0gbmV3IGxsdm06OlNFeHRJbnN0KHZh bHVlLCB0eXBlLCBuYW1lLCBiYmxvY2spOwotKyAgICBsbHZtOjpJbnN0cnVjdGlvbiAqaW5zdCA9 IG5ldyBsbHZtOjpTRXh0SW5zdCgKLSsgICAgICAgIHZhbHVlLCB0eXBlLCBuYW1lLmlzVHJpdmlh bGx5RW1wdHkoKSA/IGxsdm06OlR3aW5lKHZhbHVlLT5nZXROYW1lKCkpICsgIl9zZXh0IiA6IG5h bWUsIGJibG9jayk7Ci0gICAgIEFkZERlYnVnUG9zKGluc3QpOwotICAgICByZXR1cm4gaW5zdDsK LSB9Ci0gCi0tbGx2bTo6SW5zdHJ1Y3Rpb24gKkZ1bmN0aW9uRW1pdENvbnRleHQ6OlpFeHRJbnN0 KGxsdm06OlZhbHVlICp2YWx1ZSwgbGx2bTo6VHlwZSAqdHlwZSwgY29uc3QgY2hhciAqbmFtZSkg ewotK2xsdm06Okluc3RydWN0aW9uICpGdW5jdGlvbkVtaXRDb250ZXh0OjpaRXh0SW5zdChsbHZt OjpWYWx1ZSAqdmFsdWUsIGxsdm06OlR5cGUgKnR5cGUsIGNvbnN0IGxsdm06OlR3aW5lICZuYW1l KSB7Ci0gICAgIGlmICh2YWx1ZSA9PSBOVUxMKSB7Ci0gICAgICAgICBBc3NlcnRQb3MoY3VycmVu dFBvcywgbS0+ZXJyb3JDb3VudCA+IDApOwotICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgIH0K LSAKLS0gICAgaWYgKG5hbWUgPT0gTlVMTCkKLS0gICAgICAgIG5hbWUgPSBMTFZNR2V0TmFtZSh2 YWx1ZSwgIl96ZXh0Iik7Ci0tCi0gICAgIC8vIFRPRE86IHdlIHNob3VsZCBwcm9iYWJseSBoYW5k bGUgdGhlIGFycmF5IGNhc2UgYXMgaW4KLSAgICAgLy8gZS5nLiBCaXRDYXN0SW5zdCgpLCBidXQg d2UgZG9uJ3QgY3VycmVudGx5IG5lZWQgdGhhdCBmdW5jdGlvbmFsaXR5Ci0tICAgIGxsdm06Oklu c3RydWN0aW9uICppbnN0ID0gbmV3IGxsdm06OlpFeHRJbnN0KHZhbHVlLCB0eXBlLCBuYW1lLCBi YmxvY2spOwotKyAgICBsbHZtOjpJbnN0cnVjdGlvbiAqaW5zdCA9IG5ldyBsbHZtOjpaRXh0SW5z dCgKLSsgICAgICAgIHZhbHVlLCB0eXBlLCBuYW1lLmlzVHJpdmlhbGx5RW1wdHkoKSA/IGxsdm06 OlR3aW5lKHZhbHVlLT5nZXROYW1lKCkpICsgIl96ZXh0IiA6IG5hbWUsIGJibG9jayk7Ci0gICAg IEFkZERlYnVnUG9zKGluc3QpOwotICAgICByZXR1cm4gaW5zdDsKLSB9Ci1AQCAtMTkxMywxNCAr MTkwMSwxNSBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6YXBwbHlWYXJ5aW5n R0VQKGxsdm06OlZhbHVlICpiYXNlUHRyLCBsbHZtOjpWYQotICAgICAgICAgc2NhbGUgPSBTbWVh clVuaWZvcm0oc2NhbGUpOwotICAgICAgICAgQXNzZXJ0KGluZGV4ICE9IE5VTEwpOwotICAgICAg ICAgLy8gb2Zmc2V0ID0gaW5kZXggKiBzY2FsZQotLSAgICAgICAgb2Zmc2V0ID0gQmluYXJ5T3Bl cmF0b3IobGx2bTo6SW5zdHJ1Y3Rpb246Ok11bCwgc2NhbGUsIGluZGV4LCBMTFZNR2V0TmFtZSgi bXVsIiwgc2NhbGUsIGluZGV4KSk7Ci0rICAgICAgICBvZmZzZXQgPSBCaW5hcnlPcGVyYXRvcihs bHZtOjpJbnN0cnVjdGlvbjo6TXVsLCBzY2FsZSwgaW5kZXgsCi0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAoKGxsdm06OlR3aW5lKCJtdWxfIikgKyBzY2FsZS0+Z2V0TmFtZSgpKSAr ICJfIikgKyBpbmRleC0+Z2V0TmFtZSgpKTsKLSAgICAgfQotIAotICAgICAvLyBGb3IgNjQtYml0 IHRhcmdldHMsIGlmIHdlJ3ZlIGJlZW4gZG9pbmcgb3VyIG9mZnNldCBjYWxjdWxhdGlvbnMgaW4K LSAgICAgLy8gMzIgYml0cywgd2Ugc3RpbGwgaGF2ZSB0byBjb252ZXJ0IHRvIGEgNjQtYml0IHZh bHVlIGJlZm9yZSB3ZQotICAgICAvLyBhY3R1YWxseSBhZGQgdGhlIG9mZnNldCB0byB0aGUgcG9p bnRlci4KLSAgICAgaWYgKGctPnRhcmdldC0+aXMzMkJpdCgpID09IGZhbHNlICYmIGctPm9wdC5m b3JjZTMyQml0QWRkcmVzc2luZyA9PSB0cnVlKQotLSAgICAgICAgb2Zmc2V0ID0gU0V4dEluc3Qo b2Zmc2V0LCBMTFZNVHlwZXM6OkludDY0VmVjdG9yVHlwZSwgTExWTUdldE5hbWUob2Zmc2V0LCAi X3RvXzY0IikpOwotKyAgICAgICAgb2Zmc2V0ID0gU0V4dEluc3Qob2Zmc2V0LCBMTFZNVHlwZXM6 OkludDY0VmVjdG9yVHlwZSwgbGx2bTo6VHdpbmUob2Zmc2V0LT5nZXROYW1lKCkpICsgIl90b182 NCIpOwotIAotICAgICAvLyBTbWVhciBvdXQgdGhlIHBvaW50ZXIgdG8gYmUgdmFyeWluZzsgZWl0 aGVyIHRoZSBiYXNlIHBvaW50ZXIgb3IgdGhlCi0gICAgIC8vIGluZGV4IG11c3QgYmUgdmFyeWlu ZyBmb3IgdGhpcyBtZXRob2QgdG8gYmUgY2FsbGVkLgotQEAgLTE5MjksNyArMTkxOCw3IEBAIGxs dm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjphcHBseVZhcnlpbmdHRVAobGx2bTo6VmFs dWUgKmJhc2VQdHIsIGxsdm06OlZhCi0gICAgIGxsdm06OlZhbHVlICp2YXJ5aW5nUHRyID0gYmFz ZUlzVW5pZm9ybSA/IFNtZWFyVW5pZm9ybShiYXNlUHRyKSA6IGJhc2VQdHI7Ci0gCi0gICAgIC8v IG5ld1B0ciA9IHB0ciArIG9mZnNldAotLSAgICByZXR1cm4gQmluYXJ5T3BlcmF0b3IobGx2bTo6 SW5zdHJ1Y3Rpb246OkFkZCwgdmFyeWluZ1B0ciwgb2Zmc2V0LCBMTFZNR2V0TmFtZShiYXNlUHRy LCAiX29mZnNldCIpKTsKLSsgICAgcmV0dXJuIEJpbmFyeU9wZXJhdG9yKGxsdm06Okluc3RydWN0 aW9uOjpBZGQsIHZhcnlpbmdQdHIsIG9mZnNldCwgbGx2bTo6VHdpbmUoYmFzZVB0ci0+Z2V0TmFt ZSgpKSArICJfb2Zmc2V0Iik7Ci0gfQotIAotIHZvaWQgRnVuY3Rpb25FbWl0Q29udGV4dDo6TWF0 Y2hJbnRlZ2VyVHlwZXMobGx2bTo6VmFsdWUgKip2MCwgbGx2bTo6VmFsdWUgKip2MSkgewotQEAg LTIwMDYsMTMgKzE5OTUsMTMgQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6Ok1h a2VTbGljZVBvaW50ZXIobGx2bTo6VmFsdWUgKnB0ciwgbGx2bTo6VmFsdWUKLSAgICAgbGx2bTo6 U3RydWN0VHlwZSAqc3QgPSBsbHZtOjpTdHJ1Y3RUeXBlOjpnZXQoKmctPmN0eCwgZWx0VHlwZXMp OwotIAotICAgICBsbHZtOjpWYWx1ZSAqcmV0ID0gbGx2bTo6VW5kZWZWYWx1ZTo6Z2V0KHN0KTsK LS0gICAgcmV0ID0gSW5zZXJ0SW5zdChyZXQsIHB0ciwgMCwgTExWTUdldE5hbWUocmV0LCAiX3Ns aWNlX3B0ciIpKTsKLS0gICAgcmV0ID0gSW5zZXJ0SW5zdChyZXQsIG9mZnNldCwgMSwgTExWTUdl dE5hbWUocmV0LCAiX3NsaWNlX29mZnNldCIpKTsKLSsgICAgcmV0ID0gSW5zZXJ0SW5zdChyZXQs IHB0ciwgMCwgbGx2bTo6VHdpbmUocmV0LT5nZXROYW1lKCkpICsgIl9zbGljZV9wdHIiKTsKLSsg ICAgcmV0ID0gSW5zZXJ0SW5zdChyZXQsIG9mZnNldCwgMSwgbGx2bTo6VHdpbmUocmV0LT5nZXRO YW1lKCkpICsgIl9zbGljZV9vZmZzZXQiKTsKLSAgICAgcmV0dXJuIHJldDsKLSB9Ci0gCi0gbGx2 bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkdldEVsZW1lbnRQdHJJbnN0KGxsdm06OlZh bHVlICpiYXNlUHRyLCBsbHZtOjpWYWx1ZSAqaW5kZXgsIGNvbnN0IFR5cGUgKnB0clJlZlR5cGUs Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv bnN0IGNoYXIgKm5hbWUpIHsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUpIHsKLSAgICAgaWYgKGJhc2VQ dHIgPT0gTlVMTCB8fCBpbmRleCA9PSBOVUxMKSB7Ci0gICAgICAgICBBc3NlcnRQb3MoY3VycmVu dFBvcywgbS0+ZXJyb3JDb3VudCA+IDApOwotICAgICAgICAgcmV0dXJuIE5VTEw7Ci1AQCAtMjA2 NSw4ICsyMDU0LDggQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkdldEVsZW1l bnRQdHJJbnN0KGxsdm06OlZhbHVlICpiYXNlUHRyLCBsbHZtOjoKLSAgICAgICAgIC8vIHVuaWZv cm0sIHNvIGp1c3QgZW1pdCB0aGUgcmVndWxhciBMTFZNIEdFUCBpbnN0cnVjdGlvbgotICAgICAg ICAgbGx2bTo6VmFsdWUgKmluZFsxXSA9IHtpbmRleH07Ci0gICAgICAgICBsbHZtOjpBcnJheVJl ZjxsbHZtOjpWYWx1ZSAqPiBhcnJheVJlZigmaW5kWzBdLCAmaW5kWzFdKTsKLS0gICAgICAgIGxs dm06Okluc3RydWN0aW9uICppbnN0ID0KLS0gICAgICAgICAgICBsbHZtOjpHZXRFbGVtZW50UHRy SW5zdDo6Q3JlYXRlKFBUWVBFKGJhc2VQdHIpLCBiYXNlUHRyLCBhcnJheVJlZiwgbmFtZSA/IG5h bWUgOiAiZ2VwIiwgYmJsb2NrKTsKLSsgICAgICAgIGxsdm06Okluc3RydWN0aW9uICppbnN0ID0g bGx2bTo6R2V0RWxlbWVudFB0ckluc3Q6OkNyZWF0ZShQVFlQRShiYXNlUHRyKSwgYmFzZVB0ciwg YXJyYXlSZWYsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgbmFtZS5pc1RyaXZpYWxseUVtcHR5KCkgPyAiZ2VwIiA6IG5h bWUsIGJibG9jayk7Ci0gICAgICAgICBBZGREZWJ1Z1BvcyhpbnN0KTsKLSAgICAgICAgIHJldHVy biBpbnN0OwotICAgICB9IGVsc2UKLUBAIC0yMDc0LDcgKzIwNjMsNyBAQCBsbHZtOjpWYWx1ZSAq RnVuY3Rpb25FbWl0Q29udGV4dDo6R2V0RWxlbWVudFB0ckluc3QobGx2bTo6VmFsdWUgKmJhc2VQ dHIsIGxsdm06OgotIH0KLSAKLSBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6R2V0 RWxlbWVudFB0ckluc3QobGx2bTo6VmFsdWUgKmJhc2VQdHIsIGxsdm06OlZhbHVlICppbmRleDAs IGxsdm06OlZhbHVlICppbmRleDEsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGNvbnN0IFR5cGUgKnB0clJlZlR5cGUsIGNvbnN0IGNoYXIgKm5h bWUpIHsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgY29uc3QgVHlwZSAqcHRyUmVmVHlwZSwgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUpIHsKLSAg ICAgaWYgKGJhc2VQdHIgPT0gTlVMTCB8fCBpbmRleDAgPT0gTlVMTCB8fCBpbmRleDEgPT0gTlVM TCkgewotICAgICAgICAgQXNzZXJ0UG9zKGN1cnJlbnRQb3MsIG0tPmVycm9yQ291bnQgPiAwKTsK LSAgICAgICAgIHJldHVybiBOVUxMOwotQEAgLTIxMTQsOCArMjEwMyw4IEBAIGxsdm06OlZhbHVl ICpGdW5jdGlvbkVtaXRDb250ZXh0OjpHZXRFbGVtZW50UHRySW5zdChsbHZtOjpWYWx1ZSAqYmFz ZVB0ciwgbGx2bTo6Ci0gICAgICAgICAvLyB1bmlmb3JtLCBzbyBqdXN0IGVtaXQgdGhlIHJlZ3Vs YXIgTExWTSBHRVAgaW5zdHJ1Y3Rpb24KLSAgICAgICAgIGxsdm06OlZhbHVlICppbmRpY2VzWzJd ID0ge2luZGV4MCwgaW5kZXgxfTsKLSAgICAgICAgIGxsdm06OkFycmF5UmVmPGxsdm06OlZhbHVl ICo+IGFycmF5UmVmKCZpbmRpY2VzWzBdLCAmaW5kaWNlc1syXSk7Ci0tICAgICAgICBsbHZtOjpJ bnN0cnVjdGlvbiAqaW5zdCA9Ci0tICAgICAgICAgICAgbGx2bTo6R2V0RWxlbWVudFB0ckluc3Q6 OkNyZWF0ZShQVFlQRShiYXNlUHRyKSwgYmFzZVB0ciwgYXJyYXlSZWYsIG5hbWUgPyBuYW1lIDog ImdlcCIsIGJibG9jayk7Ci0rICAgICAgICBsbHZtOjpJbnN0cnVjdGlvbiAqaW5zdCA9IGxsdm06 OkdldEVsZW1lbnRQdHJJbnN0OjpDcmVhdGUoUFRZUEUoYmFzZVB0ciksIGJhc2VQdHIsIGFycmF5 UmVmLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIG5hbWUuaXNUcml2aWFsbHlFbXB0eSgpID8gImdlcCIgOiBuYW1lLCBi YmxvY2spOwotICAgICAgICAgQWRkRGVidWdQb3MoaW5zdCk7Ci0gICAgICAgICByZXR1cm4gaW5z dDsKLSAgICAgfSBlbHNlIHsKLUBAIC0yMTM4LDcgKzIxMjcsNyBAQCBsbHZtOjpWYWx1ZSAqRnVu Y3Rpb25FbWl0Q29udGV4dDo6R2V0RWxlbWVudFB0ckluc3QobGx2bTo6VmFsdWUgKmJhc2VQdHIs IGxsdm06OgotIH0KLSAKLSBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6QWRkRWxl bWVudE9mZnNldChsbHZtOjpWYWx1ZSAqZnVsbEJhc2VQdHIsIGludCBlbGVtZW50TnVtLCBjb25z dCBUeXBlICpwdHJSZWZUeXBlLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IFBvaW50ZXJUeXBlICoqcmVz dWx0UHRyVHlwZSkgewotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lLCBjb25zdCBQb2ludGVyVHlwZSAqKnJl c3VsdFB0clR5cGUpIHsKLSAgICAgaWYgKHJlc3VsdFB0clR5cGUgIT0gTlVMTCkKLSAgICAgICAg IEFzc2VydFBvcyhjdXJyZW50UG9zLCBwdHJSZWZUeXBlICE9IE5VTEwpOwotIAotQEAgLTIxOTUs OCArMjE4NCw4IEBAIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpBZGRFbGVtZW50 T2Zmc2V0KGxsdm06OlZhbHVlICpmdWxsQmFzZVB0ciwgaW50Ci0gICAgICAgICAvLyBJZiB0aGUg cG9pbnRlciBpcyB1bmlmb3JtLCB3ZSBjYW4gdXNlIHRoZSByZWd1bGFyIExMVk0gR0VQLgotICAg ICAgICAgbGx2bTo6VmFsdWUgKm9mZnNldHNbMl0gPSB7TExWTUludDMyKDApLCBMTFZNSW50MzIo ZWxlbWVudE51bSl9OwotICAgICAgICAgbGx2bTo6QXJyYXlSZWY8bGx2bTo6VmFsdWUgKj4gYXJy YXlSZWYoJm9mZnNldHNbMF0sICZvZmZzZXRzWzJdKTsKLS0gICAgICAgIHJlc3VsdFB0ciA9Ci0t ICAgICAgICAgICAgbGx2bTo6R2V0RWxlbWVudFB0ckluc3Q6OkNyZWF0ZShQVFlQRShiYXNlUHRy KSwgYmFzZVB0ciwgYXJyYXlSZWYsIG5hbWUgPyBuYW1lIDogInN0cnVjdF9vZmZzZXQiLCBiYmxv Y2spOwotKyAgICAgICAgcmVzdWx0UHRyID0gbGx2bTo6R2V0RWxlbWVudFB0ckluc3Q6OkNyZWF0 ZShQVFlQRShiYXNlUHRyKSwgYmFzZVB0ciwgYXJyYXlSZWYsCi0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUuaXNUcml2aWFsbHlFbXB0eSgp ID8gInN0cnVjdF9vZmZzZXQiIDogbmFtZSwgYmJsb2NrKTsKLSAgICAgfSBlbHNlIHsKLSAgICAg ICAgIC8vIE90aGVyd2lzZSBkbyB0aGUgbWF0aCB0byBmaW5kIHRoZSBvZmZzZXQgYW5kIGFkZCBp dCB0byB0aGUgZ2l2ZW4KLSAgICAgICAgIC8vIHZhcnlpbmcgcG9pbnRlcnMKLUBAIC0yMjM3LDcg KzIyMjYsNyBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6QWRkRWxlbWVudE9m ZnNldChsbHZtOjpWYWx1ZSAqZnVsbEJhc2VQdHIsIGludAotICAgICAgICAgcmV0dXJuIHJlc3Vs dFB0cjsKLSB9Ci0gCi0tbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OlN3aXRjaEJv b2xTaXplKGxsdm06OlZhbHVlICp2YWx1ZSwgbGx2bTo6VHlwZSAqdG9UeXBlLCBjb25zdCBjaGFy ICpuYW1lKSB7Ci0rbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OlN3aXRjaEJvb2xT aXplKGxsdm06OlZhbHVlICp2YWx1ZSwgbGx2bTo6VHlwZSAqdG9UeXBlLCBjb25zdCBsbHZtOjpU d2luZSAmbmFtZSkgewotICAgICBpZiAoKHZhbHVlID09IE5VTEwpIHx8ICh0b1R5cGUgPT0gTlVM TCkpIHsKLSAgICAgICAgIEFzc2VydFBvcyhjdXJyZW50UG9zLCBtLT5lcnJvckNvdW50ID4gMCk7 Ci0gICAgICAgICByZXR1cm4gTlVMTDsKLUBAIC0yMjQ4LDIwICsyMjM3LDE4IEBAIGxsdm06OlZh bHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpTd2l0Y2hCb29sU2l6ZShsbHZtOjpWYWx1ZSAqdmFs dWUsIGxsdm06OlR5cGUKLSAgICAgbGx2bTo6VmFsdWUgKm5ld0Jvb2wgPSB2YWx1ZTsKLSAgICAg aWYgKGctPnRhcmdldC0+Z2V0RGF0YUxheW91dCgpLT5nZXRUeXBlU2l6ZUluQml0cyhmcm9tVHlw ZSkgPgotICAgICAgICAgZy0+dGFyZ2V0LT5nZXREYXRhTGF5b3V0KCktPmdldFR5cGVTaXplSW5C aXRzKHRvVHlwZSkpIHsKLS0gICAgICAgIGlmIChuYW1lID09IE5VTEwpCi0tICAgICAgICAgICAg bmFtZSA9IExMVk1HZXROYW1lKHZhbHVlLCAiX3N3aXRjaEJvb2wiKTsKLS0gICAgICAgIG5ld0Jv b2wgPSBUcnVuY0luc3QodmFsdWUsIHRvVHlwZSwgbmFtZSk7Ci0rICAgICAgICBuZXdCb29sID0K LSsgICAgICAgICAgICBUcnVuY0luc3QodmFsdWUsIHRvVHlwZSwgbmFtZS5pc1RyaXZpYWxseUVt cHR5KCkgPyAobGx2bTo6VHdpbmUodmFsdWUtPmdldE5hbWUoKSkgKyAiX3N3aXRjaEJvb2wiKSA6 IG5hbWUpOwotICAgICB9IGVsc2UgaWYgKGctPnRhcmdldC0+Z2V0RGF0YUxheW91dCgpLT5nZXRU eXBlU2l6ZUluQml0cyhmcm9tVHlwZSkgPAotICAgICAgICAgICAgICAgIGctPnRhcmdldC0+Z2V0 RGF0YUxheW91dCgpLT5nZXRUeXBlU2l6ZUluQml0cyh0b1R5cGUpKSB7Ci0tICAgICAgICBpZiAo bmFtZSA9PSBOVUxMKQotLSAgICAgICAgICAgIG5hbWUgPSBMTFZNR2V0TmFtZSh2YWx1ZSwgIl9z d2l0Y2hCb29sIik7Ci0tICAgICAgICBuZXdCb29sID0gU0V4dEluc3QodmFsdWUsIHRvVHlwZSwg bmFtZSk7Ci0rICAgICAgICBuZXdCb29sID0KLSsgICAgICAgICAgICBTRXh0SW5zdCh2YWx1ZSwg dG9UeXBlLCBuYW1lLmlzVHJpdmlhbGx5RW1wdHkoKSA/IChsbHZtOjpUd2luZSh2YWx1ZS0+Z2V0 TmFtZSgpKSArICJfc3dpdGNoQm9vbCIpIDogbmFtZSk7Ci0gICAgIH0KLSAKLSAgICAgcmV0dXJu IG5ld0Jvb2w7Ci0gfQotIAotLWxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpMb2Fk SW5zdChsbHZtOjpWYWx1ZSAqcHRyLCBjb25zdCBUeXBlICp0eXBlLCBjb25zdCBjaGFyICpuYW1l KSB7Ci0rbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkxvYWRJbnN0KGxsdm06OlZh bHVlICpwdHIsIGNvbnN0IFR5cGUgKnR5cGUsIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lKSB7Ci0g ICAgIGlmIChwdHIgPT0gTlVMTCkgewotICAgICAgICAgQXNzZXJ0UG9zKGN1cnJlbnRQb3MsIG0t PmVycm9yQ291bnQgPiAwKTsKLSAgICAgICAgIHJldHVybiBOVUxMOwotQEAgLTIyNzAsMTMgKzIy NTcsMTMgQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkxvYWRJbnN0KGxsdm06 OlZhbHVlICpwdHIsIGNvbnN0IFR5cGUgKnR5cGUsIGMKLSAgICAgbGx2bTo6UG9pbnRlclR5cGUg KnB0ID0gbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6UG9pbnRlclR5cGU+KHB0ci0+Z2V0VHlwZSgpKTsK LSAgICAgQXNzZXJ0UG9zKGN1cnJlbnRQb3MsIHB0ICE9IE5VTEwpOwotIAotLSAgICBpZiAobmFt ZSA9PSBOVUxMKQotLSAgICAgICAgbmFtZSA9IExMVk1HZXROYW1lKHB0ciwgIl9sb2FkIik7Ci0t Ci0gI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMV8wCi0tICAgIGxsdm06Okxv YWRJbnN0ICppbnN0ID0gbmV3IGxsdm06OkxvYWRJbnN0KHB0LT5nZXRQb2ludGVyRWxlbWVudFR5 cGUoKSwgcHRyLCBuYW1lLCBiYmxvY2spOwotKyAgICBsbHZtOjpMb2FkSW5zdCAqaW5zdCA9Ci0r ICAgICAgICBuZXcgbGx2bTo6TG9hZEluc3QocHQtPmdldFBvaW50ZXJFbGVtZW50VHlwZSgpLCBw dHIsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZS5pc1RyaXZpYWxseUVtcHR5KCkg PyAobGx2bTo6VHdpbmUocHRyLT5nZXROYW1lKCkpICsgIl9sb2FkIikgOiBuYW1lLCBiYmxvY2sp OwotICNlbHNlCi0tICAgIGxsdm06OkxvYWRJbnN0ICppbnN0ID0gbmV3IGxsdm06OkxvYWRJbnN0 KHB0ciwgbmFtZSwgYmJsb2NrKTsKLSsgICAgbGx2bTo6TG9hZEluc3QgKmluc3QgPQotKyAgICAg ICAgbmV3IGxsdm06OkxvYWRJbnN0KHB0ciwgbmFtZS5pc1RyaXZpYWxseUVtcHR5KCkgPyAobGx2 bTo6VHdpbmUocHRyLT5nZXROYW1lKCkpICsgIl9sb2FkIikgOiBuYW1lLCBiYmxvY2spOwotICNl bmRpZgotIAotICAgICBpZiAoZy0+b3B0LmZvcmNlQWxpZ25lZE1lbW9yeSAmJiBsbHZtOjpkeW5f Y2FzdDxsbHZtOjpWZWN0b3JUeXBlPihwdC0+Z2V0RWxlbWVudFR5cGUoKSkpIHsKLUBAIC0yMzA3 LDggKzIyOTQsOCBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6TG9hZEluc3Qo bGx2bTo6VmFsdWUgKnB0ciwgY29uc3QgVHlwZSAqdHlwZSwgYwotIHN0YXRpYyBsbHZtOjpWYWx1 ZSAqbEZpbmFsU2xpY2VPZmZzZXQoRnVuY3Rpb25FbWl0Q29udGV4dCAqY3R4LCBsbHZtOjpWYWx1 ZSAqcHRyLCBjb25zdCBQb2ludGVyVHlwZSAqKnB0clR5cGUpIHsKLSAgICAgQXNzZXJ0KENhc3RU eXBlPFBvaW50ZXJUeXBlPigqcHRyVHlwZSkgIT0gTlVMTCk7Ci0gCi0tICAgIGxsdm06OlZhbHVl ICpzbGljZVB0ciA9IGN0eC0+RXh0cmFjdEluc3QocHRyLCAwLCBMTFZNR2V0TmFtZShwdHIsICJf cHRyIikpOwotLSAgICBsbHZtOjpWYWx1ZSAqc2xpY2VPZmZzZXQgPSBjdHgtPkV4dHJhY3RJbnN0 KHB0ciwgMSwgTExWTUdldE5hbWUocHRyLCAiX29mZnNldCIpKTsKLSsgICAgbGx2bTo6VmFsdWUg KnNsaWNlUHRyID0gY3R4LT5FeHRyYWN0SW5zdChwdHIsIDAsIGxsdm06OlR3aW5lKHB0ci0+Z2V0 TmFtZSgpKSArICJfcHRyIik7Ci0rICAgIGxsdm06OlZhbHVlICpzbGljZU9mZnNldCA9IGN0eC0+ RXh0cmFjdEluc3QocHRyLCAxLCBsbHZtOjpUd2luZShwdHItPmdldE5hbWUoKSkgKyAiX29mZnNl dCIpOwotIAotICAgICAvLyBzbGljZVB0ciBzaG91bGQgYmUgYSBwb2ludGVyIHRvIGFuIHNvYS13 aWR0aCB3aWRlIGFycmF5IG9mIHRoZQotICAgICAvLyBmaW5hbCBhdG9taWMvZW51bS9wb2ludGVy IHR5cGUKLUBAIC0yMzI3LDE0ICsyMzE0LDE0IEBAIHN0YXRpYyBsbHZtOjpWYWx1ZSAqbEZpbmFs U2xpY2VPZmZzZXQoRnVuY3Rpb25FbWl0Q29udGV4dCAqY3R4LCBsbHZtOjpWYWx1ZSAqcHRyCi0g ICAgICAgICBzbGljZVB0ciA9IGN0eC0+Qml0Q2FzdEluc3Qoc2xpY2VQdHIsICgqcHRyVHlwZSkt PkxMVk1UeXBlKGctPmN0eCkpOwotIAotICAgICAvLyBBbmQgZmluYWxseSBpbmRleCBiYXNlZCBv biB0aGUgc2xpY2Ugb2Zmc2V0Ci0tICAgIHJldHVybiBjdHgtPkdldEVsZW1lbnRQdHJJbnN0KHNs aWNlUHRyLCBzbGljZU9mZnNldCwgKnB0clR5cGUsIExMVk1HZXROYW1lKHNsaWNlUHRyLCAiX2Zp bmFsX2dlcCIpKTsKLSsgICAgcmV0dXJuIGN0eC0+R2V0RWxlbWVudFB0ckluc3Qoc2xpY2VQdHIs IHNsaWNlT2Zmc2V0LCAqcHRyVHlwZSwgbGx2bTo6VHdpbmUoc2xpY2VQdHItPmdldE5hbWUoKSkg KyAiX2ZpbmFsX2dlcCIpOwotIH0KLSAKLSAvKiogVXRpbGl0eSByb3V0aW5lIHRoYXQgbG9hZHMg ZnJvbSBhIHVuaWZvcm0gcG9pbnRlciB0byBzb2E8PiBkYXRhLAotICAgICByZXR1cm5pbmcgYSBy ZWd1bGFyIHVuaWZvcm0gKG5vbi1TT0EgcmVzdWx0KS4KLSAgKi8KLSBsbHZtOjpWYWx1ZSAqRnVu Y3Rpb25FbWl0Q29udGV4dDo6bG9hZFVuaWZvcm1Gcm9tU09BKGxsdm06OlZhbHVlICpwdHIsIGxs dm06OlZhbHVlICptYXNrLCBjb25zdCBQb2ludGVyVHlwZSAqcHRyVHlwZSwKLS0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKm5h bWUpIHsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lKSB7Ci0gICAgIGNvbnN0IFR5cGUgKnVuaWZUeXBl ID0gcHRyVHlwZS0+R2V0QmFzZVR5cGUoKS0+R2V0QXNVbmlmb3JtVHlwZSgpOwotIAotICAgICBj b25zdCBDb2xsZWN0aW9uVHlwZSAqY3QgPSBDYXN0VHlwZTxDb2xsZWN0aW9uVHlwZT4ocHRyVHlw ZS0+R2V0QmFzZVR5cGUoKSk7Ci1AQCAtMjM2Myw3ICsyMzUwLDcgQEAgbGx2bTo6VmFsdWUgKkZ1 bmN0aW9uRW1pdENvbnRleHQ6OmxvYWRVbmlmb3JtRnJvbVNPQShsbHZtOjpWYWx1ZSAqcHRyLCBs bHZtOjpWYWwKLSB9Ci0gCi0gbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkxvYWRJ bnN0KGxsdm06OlZhbHVlICpwdHIsIGxsdm06OlZhbHVlICptYXNrLCBjb25zdCBUeXBlICpwdHJS ZWZUeXBlLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z dCBjaGFyICpuYW1lLCBib29sIG9uZV9lbGVtKSB7Ci0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lLCBib29sIG9uZV9lbGVt KSB7Ci0gICAgIGlmIChwdHIgPT0gTlVMTCkgewotICAgICAgICAgQXNzZXJ0UG9zKGN1cnJlbnRQ b3MsIG0tPmVycm9yQ291bnQgPiAwKTsKLSAgICAgICAgIHJldHVybiBOVUxMOwotQEAgLTIzNzEs OSArMjM1OCw2IEBAIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpMb2FkSW5zdChs bHZtOjpWYWx1ZSAqcHRyLCBsbHZtOjpWYWx1ZSAqbWFzaywKLSAKLSAgICAgQXNzZXJ0UG9zKGN1 cnJlbnRQb3MsIHB0clJlZlR5cGUgIT0gTlVMTCAmJiBtYXNrICE9IE5VTEwpOwotIAotLSAgICBp ZiAobmFtZSA9PSBOVUxMKQotLSAgICAgICAgbmFtZSA9IExMVk1HZXROYW1lKHB0ciwgIl9sb2Fk Iik7Ci0tCi0gICAgIGNvbnN0IFBvaW50ZXJUeXBlICpwdHJUeXBlOwotICAgICBjb25zdCBUeXBl ICplbFR5cGU7Ci0gICAgIGlmIChDYXN0VHlwZTxSZWZlcmVuY2VUeXBlPihwdHJSZWZUeXBlKSAh PSBOVUxMKSB7Ci1AQCAtMjM5Myw3ICsyMzc3LDggQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1p dENvbnRleHQ6OkxvYWRJbnN0KGxsdm06OlZhbHVlICpwdHIsIGxsdm06OlZhbHVlICptYXNrLAot IAotICAgICBpZiAocHRyVHlwZS0+SXNVbmlmb3JtVHlwZSgpKSB7Ci0gICAgICAgICBpZiAocHRy VHlwZS0+SXNTbGljZSgpKSB7Ci0tICAgICAgICAgICAgcmV0dXJuIGxvYWRVbmlmb3JtRnJvbVNP QShwdHIsIG1hc2ssIHB0clR5cGUsIG5hbWUpOwotKyAgICAgICAgICAgIHJldHVybiBsb2FkVW5p Zm9ybUZyb21TT0EocHRyLCBtYXNrLCBwdHJUeXBlLAotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgbmFtZS5pc1RyaXZpYWxseUVtcHR5KCkgPyAobGx2bTo6VHdpbmUocHRy LT5nZXROYW1lKCkpICsgIl9sb2FkIikgOiBuYW1lKTsKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAg ICAgICAgICAgLy8gRklYTUU6IHNhbWUgaXNzdWUgYXMgYWJvdmUgbG9hZCBpbnN0IHJlZ2FyZGlu ZyBhbGlnbm1lbnQuLi4KLSAgICAgICAgICAgICAvLwotQEAgLTI0MDUsMTEgKzIzOTAsMTUgQEAg bGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkxvYWRJbnN0KGxsdm06OlZhbHVlICpw dHIsIGxsdm06OlZhbHVlICptYXNrLAotICAgICAgICAgICAgIGNvbnN0IEF0b21pY1R5cGUgKmF0 b21pY1R5cGUgPSBDYXN0VHlwZTxBdG9taWNUeXBlPihwdHJUeXBlLT5HZXRCYXNlVHlwZSgpKTsK LSAKLSAjaWYgSVNQQ19MTFZNX1ZFUlNJT04gPD0gSVNQQ19MTFZNXzEwXzAKLS0gICAgICAgICAg ICBsbHZtOjpMb2FkSW5zdCAqaW5zdCA9IG5ldyBsbHZtOjpMb2FkSW5zdChwdHIsIG5hbWUsIGZh bHNlIC8qIG5vdCB2b2xhdGlsZSAqLywgYmJsb2NrKTsKLSsgICAgICAgICAgICBsbHZtOjpMb2Fk SW5zdCAqaW5zdCA9Ci0rICAgICAgICAgICAgICAgIG5ldyBsbHZtOjpMb2FkSW5zdChwdHIsIG5h bWUuaXNUcml2aWFsbHlFbXB0eSgpID8gKGxsdm06OlR3aW5lKHB0ci0+Z2V0TmFtZSgpKSArICJf bG9hZCIpIDogbmFtZSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNl IC8qIG5vdCB2b2xhdGlsZSAqLywgYmJsb2NrKTsKLSAjZWxzZSAvLyBMTFZNIDExLjArCi0gICAg ICAgICAgICAgbGx2bTo6UG9pbnRlclR5cGUgKnB0cl90eXBlID0gbGx2bTo6ZHluX2Nhc3Q8bGx2 bTo6UG9pbnRlclR5cGU+KHB0ci0+Z2V0VHlwZSgpKTsKLSAgICAgICAgICAgICBsbHZtOjpMb2Fk SW5zdCAqaW5zdCA9Ci0tICAgICAgICAgICAgICAgIG5ldyBsbHZtOjpMb2FkSW5zdChwdHJfdHlw ZS0+Z2V0UG9pbnRlckVsZW1lbnRUeXBlKCksIHB0ciwgbmFtZSwgZmFsc2UgLyogbm90IHZvbGF0 aWxlICovLCBiYmxvY2spOwotKyAgICAgICAgICAgICAgICBuZXcgbGx2bTo6TG9hZEluc3QocHRy X3R5cGUtPmdldFBvaW50ZXJFbGVtZW50VHlwZSgpLCBwdHIsCi0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBuYW1lLmlzVHJpdmlhbGx5RW1wdHkoKSA/IChsbHZtOjpUd2luZShw dHItPmdldE5hbWUoKSkgKyAiX2xvYWQiKSA6IG5hbWUsCi0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBmYWxzZSAvKiBub3Qgdm9sYXRpbGUgKi8sIGJibG9jayk7Ci0gI2VuZGlm Ci0gCi0gICAgICAgICAgICAgaWYgKGF0b21pY1R5cGUgIT0gTlVMTCAmJiBhdG9taWNUeXBlLT5J c1ZhcnlpbmdUeXBlKCkpIHsKLUBAIC0yNDMzLDcgKzI0MjIsOCBAQCBsbHZtOjpWYWx1ZSAqRnVu Y3Rpb25FbWl0Q29udGV4dDo6TG9hZEluc3QobGx2bTo6VmFsdWUgKnB0ciwgbGx2bTo6VmFsdWUg Km1hc2ssCi0gICAgIH0gZWxzZSB7Ci0gICAgICAgICAvLyBPdGhlcndpc2Ugd2Ugc2hvdWxkIGhh dmUgYSB2YXJ5aW5nIHB0ciBhbmQgaXQncyB0aW1lIGZvciBhCi0gICAgICAgICAvLyBnYXRoZXIu Ci0tICAgICAgICBsbHZtOjpWYWx1ZSAqZ2F0aGVyX3Jlc3VsdCA9IGdhdGhlcihwdHIsIHB0clR5 cGUsIEdldEZ1bGxNYXNrKCksIG5hbWUpOwotKyAgICAgICAgbGx2bTo6VmFsdWUgKmdhdGhlcl9y ZXN1bHQgPSBnYXRoZXIocHRyLCBwdHJUeXBlLCBHZXRGdWxsTWFzaygpLAotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZS5pc1RyaXZpYWxseUVtcHR5KCkg PyAobGx2bTo6VHdpbmUocHRyLT5nZXROYW1lKCkpICsgIl9sb2FkIikgOiBuYW1lKTsKLSAgICAg ICAgIGlmICghb25lX2VsZW0pCi0gICAgICAgICAgICAgcmV0dXJuIGdhdGhlcl9yZXN1bHQ7Ci0g Ci1AQCAtMjQ1MywxOSArMjQ0MywxOSBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4 dDo6TG9hZEluc3QobGx2bTo6VmFsdWUgKnB0ciwgbGx2bTo6VmFsdWUgKm1hc2ssCi0gICAgICAg ICAvLyBXZSBjYW4gYWN0dWFsbHkgY2FsbCBlaXRoZXIgb25lLCBzaW5jZSBib3RoIGFyZSBpMzJz IGFzIGZhciBhcwotICAgICAgICAgLy8gTExWTSdzIHR5cGUgc3lzdGVtIGlzIGNvbmNlcm5lZC4u LgotICAgICAgICAgbGx2bTo6RnVuY3Rpb24gKmZtbSA9IG1tWzBdLT5mdW5jdGlvbjsKLS0gICAg ICAgIGxsdm06OlZhbHVlICppbnRfbWFzayA9IENhbGxJbnN0KGZtbSwgTlVMTCwgbWFzaywgTExW TUdldE5hbWUobWFzaywgIl9tb3Ztc2siKSk7Ci0rICAgICAgICBsbHZtOjpWYWx1ZSAqaW50X21h c2sgPSBDYWxsSW5zdChmbW0sIE5VTEwsIG1hc2ssIGxsdm06OlR3aW5lKG1hc2stPmdldE5hbWUo KSkgKyAiX21vdm1zayIpOwotICAgICAgICAgc3RkOjp2ZWN0b3I8U3ltYm9sICo+IGx6OwotICAg ICAgICAgbS0+c3ltYm9sVGFibGUtPkxvb2t1cEZ1bmN0aW9uKCJfX2NvdW50X3RyYWlsaW5nX3pl cm9zX2k2NCIsICZseik7Ci0gICAgICAgICBsbHZtOjpGdW5jdGlvbiAqZmx6ID0gbHpbMF0tPmZ1 bmN0aW9uOwotLSAgICAgICAgbGx2bTo6VmFsdWUgKmVsZW1faWR4ID0gQ2FsbEluc3QoZmx6LCBO VUxMLCBpbnRfbWFzaywgTExWTUdldE5hbWUobWFzaywgIl9jbHoiKSk7Ci0tICAgICAgICBsbHZt OjpWYWx1ZSAqZWxlbSA9IGxsdm06OkV4dHJhY3RFbGVtZW50SW5zdDo6Q3JlYXRlKGdhdGhlcl9y ZXN1bHQsIGVsZW1faWR4LAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBMTFZNR2V0TmFtZShnYXRoZXJfcmVzdWx0LCAiX3VtYXNr ZWRfZWxlbSIpLCBiYmxvY2spOwotKyAgICAgICAgbGx2bTo6VmFsdWUgKmVsZW1faWR4ID0gQ2Fs bEluc3QoZmx6LCBOVUxMLCBpbnRfbWFzaywgbGx2bTo6VHdpbmUobWFzay0+Z2V0TmFtZSgpKSAr ICJfY2x6Iik7Ci0rICAgICAgICBsbHZtOjpWYWx1ZSAqZWxlbSA9IGxsdm06OkV4dHJhY3RFbGVt ZW50SW5zdDo6Q3JlYXRlKAotKyAgICAgICAgICAgIGdhdGhlcl9yZXN1bHQsIGVsZW1faWR4LCBs bHZtOjpUd2luZShnYXRoZXJfcmVzdWx0LT5nZXROYW1lKCkpICsgIl91bWFza2VkX2VsZW0iLCBi YmxvY2spOwotICAgICAgICAgcmV0dXJuIGVsZW07Ci0gICAgIH0KLSB9Ci0gCi0gbGx2bTo6VmFs dWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OmdhdGhlcihsbHZtOjpWYWx1ZSAqcHRyLCBjb25zdCBQ b2ludGVyVHlwZSAqcHRyVHlwZSwgbGx2bTo6VmFsdWUgKm1hc2ssCi0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpuYW1lKSB7Ci0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSkg ewotICAgICAvLyBXZSBzaG91bGQgaGF2ZSBhIHZhcnlpbmcgcG9pbnRlciBpZiB3ZSBnZXQgaGVy ZS4uLgotICAgICBBc3NlcnRQb3MoY3VycmVudFBvcywgcHRyVHlwZS0+SXNWYXJ5aW5nVHlwZSgp KTsKLSAKLUBAIC0yNjAyLDcgKzI1OTIsOCBAQCB2b2lkIEZ1bmN0aW9uRW1pdENvbnRleHQ6OmFk ZEdTTWV0YWRhdGEobGx2bTo6VmFsdWUgKnYsIFNvdXJjZVBvcyBwb3MpIHsKLSAgICAgaW5zdC0+ c2V0TWV0YWRhdGEoImxhc3RfY29sdW1uIiwgbWQpOwotIH0KLSAKLS1sbHZtOjpWYWx1ZSAqRnVu Y3Rpb25FbWl0Q29udGV4dDo6QWxsb2NhSW5zdChsbHZtOjpUeXBlICpsbHZtVHlwZSwgY29uc3Qg Y2hhciAqbmFtZSwgaW50IGFsaWduLCBib29sIGF0RW50cnlCbG9jaykgewotK2xsdm06OlZhbHVl ICpGdW5jdGlvbkVtaXRDb250ZXh0OjpBbGxvY2FJbnN0KGxsdm06OlR5cGUgKmxsdm1UeXBlLCBj b25zdCBsbHZtOjpUd2luZSAmbmFtZSwgaW50IGFsaWduLAotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgYXRFbnRyeUJsb2NrKSB7Ci0gICAgIGlmIChs bHZtVHlwZSA9PSBOVUxMKSB7Ci0gICAgICAgICBBc3NlcnRQb3MoY3VycmVudFBvcywgbS0+ZXJy b3JDb3VudCA+IDApOwotICAgICAgICAgcmV0dXJuIE5VTEw7Ci1AQCAtMjYxNSwxMiArMjYwNiwx MiBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6QWxsb2NhSW5zdChsbHZtOjpU eXBlICpsbHZtVHlwZSwgY29uc3QgY2hhciAqbgotICAgICAgICAgbGx2bTo6SW5zdHJ1Y3Rpb24g KnJldEluc3QgPSBhbGxvY2FCbG9jay0+Z2V0VGVybWluYXRvcigpOwotICAgICAgICAgQXNzZXJ0 UG9zKGN1cnJlbnRQb3MsIHJldEluc3QpOwotICAgICAgICAgdW5zaWduZWQgQVMgPSBsbHZtRnVu Y3Rpb24tPmdldFBhcmVudCgpLT5nZXREYXRhTGF5b3V0KCkuZ2V0QWxsb2NhQWRkclNwYWNlKCk7 Ci0tICAgICAgICBpbnN0ID0gbmV3IGxsdm06OkFsbG9jYUluc3QobGx2bVR5cGUsIEFTLCBuYW1l ID8gbmFtZSA6ICIiLCByZXRJbnN0KTsKLSsgICAgICAgIGluc3QgPSBuZXcgbGx2bTo6QWxsb2Nh SW5zdChsbHZtVHlwZSwgQVMsIG5hbWUsIHJldEluc3QpOwotICAgICB9IGVsc2UgewotICAgICAg ICAgLy8gVW5sZXNzIHRoZSBjYWxsZXIgb3ZlcnJvZGUgdGhlIGRlZmF1bHQgYW5kIHdhbnRzIGl0 IGluIHRoZQotICAgICAgICAgLy8gY3VycmVudCBiYXNpYyBibG9jawotICAgICAgICAgdW5zaWdu ZWQgQVMgPSBsbHZtRnVuY3Rpb24tPmdldFBhcmVudCgpLT5nZXREYXRhTGF5b3V0KCkuZ2V0QWxs b2NhQWRkclNwYWNlKCk7Ci0tICAgICAgICBpbnN0ID0gbmV3IGxsdm06OkFsbG9jYUluc3QobGx2 bVR5cGUsIEFTLCBuYW1lID8gbmFtZSA6ICIiLCBiYmxvY2spOwotKyAgICAgICAgaW5zdCA9IG5l dyBsbHZtOjpBbGxvY2FJbnN0KGxsdm1UeXBlLCBBUywgbmFtZSwgYmJsb2NrKTsKLSAgICAgfQot IAotICAgICAvLyBJZiBubyBhbGlnbm1lbnQgd2FzIHNwZWNpZmllZCBidXQgd2UgaGF2ZSBhbiBh cnJheSBvZiBhIHVuaWZvcm0KLUBAIC0yNjM5LDcgKzI2MzAsOCBAQCBsbHZtOjpWYWx1ZSAqRnVu Y3Rpb25FbWl0Q29udGV4dDo6QWxsb2NhSW5zdChsbHZtOjpUeXBlICpsbHZtVHlwZSwgY29uc3Qg Y2hhciAqbgotICAgICByZXR1cm4gaW5zdDsKLSB9Ci0gCi0tbGx2bTo6VmFsdWUgKkZ1bmN0aW9u RW1pdENvbnRleHQ6OkFsbG9jYUluc3QoY29uc3QgVHlwZSAqcHRyVHlwZSwgY29uc3QgY2hhciAq bmFtZSwgaW50IGFsaWduLCBib29sIGF0RW50cnlCbG9jaykgewotK2xsdm06OlZhbHVlICpGdW5j dGlvbkVtaXRDb250ZXh0OjpBbGxvY2FJbnN0KGNvbnN0IFR5cGUgKnB0clR5cGUsIGNvbnN0IGxs dm06OlR3aW5lICZuYW1lLCBpbnQgYWxpZ24sCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgYm9vbCBhdEVudHJ5QmxvY2spIHsKLSAgICAgaWYgKHB0clR5cGUg PT0gTlVMTCkgewotICAgICAgICAgQXNzZXJ0UG9zKGN1cnJlbnRQb3MsIG0tPmVycm9yQ291bnQg PiAwKTsKLSAgICAgICAgIHJldHVybiBOVUxMOwotQEAgLTMwNzUsNjYgKzMwNjcsNTkgQEAgbGx2 bTo6SW5zdHJ1Y3Rpb24gKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkJyYW5jaEluc3QobGx2bTo6QmFz aWNCbG9jayAqdHJ1ZUJsb2NrLAotICAgICByZXR1cm4gYjsKLSB9Ci0gCi0tbGx2bTo6VmFsdWUg KkZ1bmN0aW9uRW1pdENvbnRleHQ6OkV4dHJhY3RJbnN0KGxsdm06OlZhbHVlICp2LCBpbnQgZWx0 LCBjb25zdCBjaGFyICpuYW1lKSB7Ci0rbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6 OkV4dHJhY3RJbnN0KGxsdm06OlZhbHVlICp2LCBpbnQgZWx0LCBjb25zdCBsbHZtOjpUd2luZSAm bmFtZSkgewotICAgICBpZiAodiA9PSBOVUxMKSB7Ci0gICAgICAgICBBc3NlcnRQb3MoY3VycmVu dFBvcywgbS0+ZXJyb3JDb3VudCA+IDApOwotICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgIH0K LSAKLS0gICAgaWYgKG5hbWUgPT0gTlVMTCkgewotLSAgICAgICAgY2hhciBidWZbMzJdOwotLSAg ICAgICAgc25wcmludGYoYnVmLCBzaXplb2YoYnVmKSwgIl9leHRyYWN0XyVkIiwgZWx0KTsKLS0g ICAgICAgIG5hbWUgPSBMTFZNR2V0TmFtZSh2LCBidWYpOwotLSAgICB9Ci0gICAgIGxsdm06Oklu c3RydWN0aW9uICplaSA9IE5VTEw7Ci0gICAgIGlmIChsbHZtOjppc2E8bGx2bTo6VmVjdG9yVHlw ZT4odi0+Z2V0VHlwZSgpKSkKLS0gICAgICAgIGVpID0gbGx2bTo6RXh0cmFjdEVsZW1lbnRJbnN0 OjpDcmVhdGUodiwgTExWTUludDMyKGVsdCksIG5hbWUsIGJibG9jayk7Ci0rICAgICAgICBlaSA9 IGxsdm06OkV4dHJhY3RFbGVtZW50SW5zdDo6Q3JlYXRlKAotKyAgICAgICAgICAgIHYsIExMVk1J bnQzMihlbHQpLAotKyAgICAgICAgICAgIG5hbWUuaXNUcml2aWFsbHlFbXB0eSgpID8gKChsbHZt OjpUd2luZSh2LT5nZXROYW1lKCkpICsgIl9leHRyYWN0XyIpICsgbGx2bTo6VHdpbmUoZWx0KSkg OiBuYW1lLCBiYmxvY2spOwotICAgICBlbHNlCi0tICAgICAgICBlaSA9IGxsdm06OkV4dHJhY3RW YWx1ZUluc3Q6OkNyZWF0ZSh2LCBlbHQsIG5hbWUsIGJibG9jayk7Ci0rICAgICAgICBlaSA9IGxs dm06OkV4dHJhY3RWYWx1ZUluc3Q6OkNyZWF0ZSgKLSsgICAgICAgICAgICB2LCBlbHQsIG5hbWUu aXNUcml2aWFsbHlFbXB0eSgpID8gKChsbHZtOjpUd2luZSh2LT5nZXROYW1lKCkpICsgIl9leHRy YWN0XyIpICsgbGx2bTo6VHdpbmUoZWx0KSkgOiBuYW1lLAotKyAgICAgICAgICAgIGJibG9jayk7 Ci0gICAgIEFkZERlYnVnUG9zKGVpKTsKLSAgICAgcmV0dXJuIGVpOwotIH0KLSAKLS1sbHZtOjpW YWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6SW5zZXJ0SW5zdChsbHZtOjpWYWx1ZSAqdiwgbGx2 bTo6VmFsdWUgKmVsdFZhbCwgaW50IGVsdCwgY29uc3QgY2hhciAqbmFtZSkgewotK2xsdm06OlZh bHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpJbnNlcnRJbnN0KGxsdm06OlZhbHVlICp2LCBsbHZt OjpWYWx1ZSAqZWx0VmFsLCBpbnQgZWx0LCBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSkgewotICAg ICBpZiAodiA9PSBOVUxMIHx8IGVsdFZhbCA9PSBOVUxMKSB7Ci0gICAgICAgICBBc3NlcnRQb3Mo Y3VycmVudFBvcywgbS0+ZXJyb3JDb3VudCA+IDApOwotICAgICAgICAgcmV0dXJuIE5VTEw7Ci0g ICAgIH0KLSAKLS0gICAgaWYgKG5hbWUgPT0gTlVMTCkgewotLSAgICAgICAgY2hhciBidWZbMzJd OwotLSAgICAgICAgc25wcmludGYoYnVmLCBzaXplb2YoYnVmKSwgIl9pbnNlcnRfJWQiLCBlbHQp OwotLSAgICAgICAgbmFtZSA9IExMVk1HZXROYW1lKHYsIGJ1Zik7Ci0tICAgIH0KLS0KLSAgICAg bGx2bTo6SW5zdHJ1Y3Rpb24gKmlpID0gTlVMTDsKLSAgICAgaWYgKGxsdm06OmlzYTxsbHZtOjpW ZWN0b3JUeXBlPih2LT5nZXRUeXBlKCkpKQotLSAgICAgICAgaWkgPSBsbHZtOjpJbnNlcnRFbGVt ZW50SW5zdDo6Q3JlYXRlKHYsIGVsdFZhbCwgTExWTUludDMyKGVsdCksIG5hbWUsIGJibG9jayk7 Ci0rICAgICAgICBpaSA9IGxsdm06Okluc2VydEVsZW1lbnRJbnN0OjpDcmVhdGUoCi0rICAgICAg ICAgICAgdiwgZWx0VmFsLCBMTFZNSW50MzIoZWx0KSwKLSsgICAgICAgICAgICBuYW1lLmlzVHJp dmlhbGx5RW1wdHkoKSA/ICgobGx2bTo6VHdpbmUodi0+Z2V0TmFtZSgpKSArICJfaW5zZXJ0XyIp ICsgbGx2bTo6VHdpbmUoZWx0KSkgOiBuYW1lLCBiYmxvY2spOwotICAgICBlbHNlCi0tICAgICAg ICBpaSA9IGxsdm06Okluc2VydFZhbHVlSW5zdDo6Q3JlYXRlKHYsIGVsdFZhbCwgZWx0LCBuYW1l LCBiYmxvY2spOwotKyAgICAgICAgaWkgPSBsbHZtOjpJbnNlcnRWYWx1ZUluc3Q6OkNyZWF0ZSgK LSsgICAgICAgICAgICB2LCBlbHRWYWwsIGVsdCwKLSsgICAgICAgICAgICBuYW1lLmlzVHJpdmlh bGx5RW1wdHkoKSA/ICgobGx2bTo6VHdpbmUodi0+Z2V0TmFtZSgpKSArICJfaW5zZXJ0XyIpICsg bGx2bTo6VHdpbmUoZWx0KSkgOiBuYW1lLCBiYmxvY2spOwotICAgICBBZGREZWJ1Z1BvcyhpaSk7 Ci0gICAgIHJldHVybiBpaTsKLSB9Ci0gCi0tbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRl eHQ6OlNodWZmbGVJbnN0KGxsdm06OlZhbHVlICp2MSwgbGx2bTo6VmFsdWUgKnYyLCBsbHZtOjpW YWx1ZSAqbWFzaywgY29uc3QgY2hhciAqbmFtZSkgewotK2xsdm06OlZhbHVlICpGdW5jdGlvbkVt aXRDb250ZXh0OjpTaHVmZmxlSW5zdChsbHZtOjpWYWx1ZSAqdjEsIGxsdm06OlZhbHVlICp2Miwg bGx2bTo6VmFsdWUgKm1hc2ssCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lKSB7Ci0gICAgIGlmICh2MSA9PSBOVUxM IHx8IHYyID09IE5VTEwgfHwgbWFzayA9PSBOVUxMKSB7Ci0gICAgICAgICBBc3NlcnRQb3MoY3Vy cmVudFBvcywgbS0+ZXJyb3JDb3VudCA+IDApOwotICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAg IH0KLSAKLS0gICAgaWYgKG5hbWUgPT0gTlVMTCkgewotLSAgICAgICAgY2hhciBidWZbMzJdOwot LSAgICAgICAgc25wcmludGYoYnVmLCBzaXplb2YoYnVmKSwgIl9zaHVmZmxlIik7Ci0tICAgICAg ICBuYW1lID0gTExWTUdldE5hbWUodjEsIGJ1Zik7Ci0tICAgIH0KLS0KLS0gICAgbGx2bTo6SW5z dHJ1Y3Rpb24gKmlpID0gbmV3IGxsdm06OlNodWZmbGVWZWN0b3JJbnN0KHYxLCB2MiwgbWFzaywg bmFtZSwgYmJsb2NrKTsKLSsgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmlpID0gbmV3IGxsdm06OlNo dWZmbGVWZWN0b3JJbnN0KAotKyAgICAgICAgdjEsIHYyLCBtYXNrLCBuYW1lLmlzVHJpdmlhbGx5 RW1wdHkoKSA/IChsbHZtOjpUd2luZSh2MS0+Z2V0TmFtZSgpKSArICJfc2h1ZmZsZSIpIDogbmFt ZSwgYmJsb2NrKTsKLSAKLSAgICAgQWRkRGVidWdQb3MoaWkpOwotICAgICByZXR1cm4gaWk7Ci0g fQotIAotLWxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpCcm9hZGNhc3RWYWx1ZShs bHZtOjpWYWx1ZSAqdiwgbGx2bTo6VHlwZSAqdmVjVHlwZSwgY29uc3QgY2hhciAqbmFtZSkgewot K2xsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpCcm9hZGNhc3RWYWx1ZShsbHZtOjpW YWx1ZSAqdiwgbGx2bTo6VHlwZSAqdmVjVHlwZSwgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUpIHsK LSAgICAgaWYgKHYgPT0gTlVMTCB8fCB2ZWNUeXBlID09IE5VTEwpIHsKLSAgICAgICAgIEFzc2Vy dFBvcyhjdXJyZW50UG9zLCBtLT5lcnJvckNvdW50ID4gMCk7Ci0gICAgICAgICByZXR1cm4gTlVM TDsKLUBAIC0zMTQ4LDEyICszMTMzLDYgQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRl eHQ6OkJyb2FkY2FzdFZhbHVlKGxsdm06OlZhbHVlICp2LCBsbHZtOjpUeXBlICp2ZWMKLSAgICAg QXNzZXJ0KHR5ICYmIHR5LT5nZXRWZWN0b3JFbGVtZW50VHlwZSgpID09IHYtPmdldFR5cGUoKSk7 Ci0gI2VuZGlmCi0gCi0tICAgIGlmIChuYW1lID09IE5VTEwpIHsKLS0gICAgICAgIGNoYXIgYnVm WzMyXTsKLS0gICAgICAgIHNucHJpbnRmKGJ1Ziwgc2l6ZW9mKGJ1ZiksICJfYnJvYWRjYXN0Iik7 Ci0tICAgICAgICBuYW1lID0gTExWTUdldE5hbWUodiwgYnVmKTsKLS0gICAgfQotLQotICAgICAv LyBHZW5lcmF0ZSB0aGUgZm9sbG93aW5nIHNlcXVlbmNlOgotICAgICAvLyAgICVuYW1lX2luaXQu aSA9IGluc2VydGVsZW1lbnQgPDQgeCBpMzI+IHVuZGVmLCBpMzIgJXZhbCwgaTMyIDAKLSAgICAg Ly8gICAlbmFtZS5pID0gc2h1ZmZsZXZlY3RvciA8NCB4IGkzMj4gJW5hbWVfaW5pdC5pLCA8NCB4 IGkzMj4gdW5kZWYsCi1AQCAtMzE2Myw3ICszMTQyLDcgQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9u RW1pdENvbnRleHQ6OkJyb2FkY2FzdFZhbHVlKGxsdm06OlZhbHVlICp2LCBsbHZtOjpUeXBlICp2 ZWMKLSAgICAgbGx2bTo6VmFsdWUgKnVuZGVmMiA9IGxsdm06OlVuZGVmVmFsdWU6OmdldCh2ZWNU eXBlKTsKLSAKLSAgICAgLy8gSW5zZXJ0RWxlbWVudAotLSAgICBsbHZtOjpUd2luZSB0dyA9IGxs dm06OlR3aW5lKG5hbWUpICsgbGx2bTo6VHdpbmUoIl9pbml0Iik7Ci0rICAgIGxsdm06OlR3aW5l IHR3ID0gbmFtZS5pc1RyaXZpYWxseUVtcHR5KCkgPyAobGx2bTo6VHdpbmUodi0+Z2V0TmFtZSgp KSArICJfYnJvYWRjYXN0IikgOiBuYW1lICsgbGx2bTo6VHdpbmUoIl9pbml0Iik7Ci0gICAgIGxs dm06OlZhbHVlICppbnNlcnQgPSBJbnNlcnRJbnN0KHVuZGVmMSwgdiwgMCwgdHcuc3RyKCkuY19z dHIoKSk7Ci0gCi0gICAgIC8vIFNodWZmbGVWZWN0b3IKLUBAIC0zMTc5LDI4ICszMTU4LDI3IEBA IGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpCcm9hZGNhc3RWYWx1ZShsbHZtOjpW YWx1ZSAqdiwgbGx2bTo6VHlwZSAqdmVjCi0gICAgICAgICBsbHZtOjpDb25zdGFudFZlY3Rvcjo6 Z2V0U3BsYXQobGx2bTo6RWxlbWVudENvdW50OjpnZXQoc3RhdGljX2Nhc3Q8dW5zaWduZWQgaW50 Pih0eS0+Z2V0TnVtRWxlbWVudHMoKSksIGZhbHNlKSwKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBsbHZtOjpDb25zdGFudDo6Z2V0TnVsbFZhbHVlKGxsdm06OlR5cGU6 OmdldEludDMyVHkoKmctPmN0eCkpKTsKLSAjZW5kaWYKLS0gICAgbGx2bTo6VmFsdWUgKnJldCA9 IFNodWZmbGVJbnN0KGluc2VydCwgdW5kZWYyLCB6ZXJvVmVjLCBuYW1lKTsKLSsgICAgbGx2bTo6 VmFsdWUgKnJldCA9IFNodWZmbGVJbnN0KGluc2VydCwgdW5kZWYyLCB6ZXJvVmVjLAotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZS5pc1RyaXZpYWxseUVtcHR5KCkgPyAo bGx2bTo6VHdpbmUodi0+Z2V0TmFtZSgpKSArICJfYnJvYWRjYXN0IikgOiBuYW1lKTsKLSAKLSAg ICAgcmV0dXJuIHJldDsKLSB9Ci0gCi0tbGx2bTo6UEhJTm9kZSAqRnVuY3Rpb25FbWl0Q29udGV4 dDo6UGhpTm9kZShsbHZtOjpUeXBlICp0eXBlLCBpbnQgY291bnQsIGNvbnN0IGNoYXIgKm5hbWUp IHsKLS0gICAgbGx2bTo6UEhJTm9kZSAqcG4gPSBsbHZtOjpQSElOb2RlOjpDcmVhdGUodHlwZSwg Y291bnQsIG5hbWUgPyBuYW1lIDogInBoaSIsIGJibG9jayk7Ci0rbGx2bTo6UEhJTm9kZSAqRnVu Y3Rpb25FbWl0Q29udGV4dDo6UGhpTm9kZShsbHZtOjpUeXBlICp0eXBlLCBpbnQgY291bnQsIGNv bnN0IGxsdm06OlR3aW5lICZuYW1lKSB7Ci0rICAgIGxsdm06OlBISU5vZGUgKnBuID0gbGx2bTo6 UEhJTm9kZTo6Q3JlYXRlKHR5cGUsIGNvdW50LCBuYW1lLmlzVHJpdmlhbGx5RW1wdHkoKSA/ICJw aGkiIDogbmFtZSwgYmJsb2NrKTsKLSAgICAgQWRkRGVidWdQb3MocG4pOwotICAgICByZXR1cm4g cG47Ci0gfQotIAotIGxsdm06Okluc3RydWN0aW9uICpGdW5jdGlvbkVtaXRDb250ZXh0OjpTZWxl Y3RJbnN0KGxsdm06OlZhbHVlICp0ZXN0LCBsbHZtOjpWYWx1ZSAqdmFsMCwgbGx2bTo6VmFsdWUg KnZhbDEsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgY29uc3QgY2hhciAqbmFtZSkgewotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lKSB7Ci0gICAgIGlmICh0 ZXN0ID09IE5VTEwgfHwgdmFsMCA9PSBOVUxMIHx8IHZhbDEgPT0gTlVMTCkgewotICAgICAgICAg QXNzZXJ0UG9zKGN1cnJlbnRQb3MsIG0tPmVycm9yQ291bnQgPiAwKTsKLSAgICAgICAgIHJldHVy biBOVUxMOwotICAgICB9Ci0gCi0tICAgIGlmIChuYW1lID09IE5VTEwpCi0tICAgICAgICBuYW1l ID0gTExWTUdldE5hbWUodGVzdCwgIl9zZWxlY3QiKTsKLS0KLS0gICAgbGx2bTo6SW5zdHJ1Y3Rp b24gKmluc3QgPSBsbHZtOjpTZWxlY3RJbnN0OjpDcmVhdGUodGVzdCwgdmFsMCwgdmFsMSwgbmFt ZSwgYmJsb2NrKTsKLSsgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmluc3QgPSBsbHZtOjpTZWxlY3RJ bnN0OjpDcmVhdGUoCi0rICAgICAgICB0ZXN0LCB2YWwwLCB2YWwxLCBuYW1lLmlzVHJpdmlhbGx5 RW1wdHkoKSA/IChsbHZtOjpUd2luZSh0ZXN0LT5nZXROYW1lKCkpICsgIl9zZWxlY3QiKSA6IG5h bWUsIGJibG9jayk7Ci0gICAgIEFkZERlYnVnUG9zKGluc3QpOwotICAgICByZXR1cm4gaW5zdDsK LSB9Ci1AQCAtMzIyNiw3ICszMjA0LDcgQEAgc3RhdGljIHVuc2lnbmVkIGludCBsQ2FsbGVlQXJn Q291bnQobGx2bTo6VmFsdWUgKmNhbGxlZSwgY29uc3QgRnVuY3Rpb25UeXBlICpmdW4KLSB9Ci0g Ci0gbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkNhbGxJbnN0KGxsdm06OlZhbHVl ICpmdW5jLCBjb25zdCBGdW5jdGlvblR5cGUgKmZ1bmNUeXBlLAotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdGQ6OnZlY3RvcjxsbHZtOjpWYWx1ZSAq PiAmYXJncywgY29uc3QgY2hhciAqbmFtZSkgewotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBjb25zdCBzdGQ6OnZlY3RvcjxsbHZtOjpWYWx1ZSAqPiAmYXJncywg Y29uc3QgbGx2bTo6VHdpbmUgJm5hbWUpIHsKLSAgICAgaWYgKGZ1bmMgPT0gTlVMTCkgewotICAg ICAgICAgQXNzZXJ0UG9zKGN1cnJlbnRQb3MsIG0tPmVycm9yQ291bnQgPiAwKTsKLSAgICAgICAg IHJldHVybiBOVUxMOwotQEAgLTMyNTgsOSArMzIzNiw5IEBAIGxsdm06OlZhbHVlICpGdW5jdGlv bkVtaXRDb250ZXh0OjpDYWxsSW5zdChsbHZtOjpWYWx1ZSAqZnVuYywgY29uc3QgRnVuY3Rpb25U eXBlCi0gI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMV8wCi0gICAgICAgICBs bHZtOjpQb2ludGVyVHlwZSAqZnVuY19wdHJfdHlwZSA9IGxsdm06OmR5bl9jYXN0PGxsdm06OlBv aW50ZXJUeXBlPihmdW5jLT5nZXRUeXBlKCkpOwotICAgICAgICAgbGx2bTo6RnVuY3Rpb25UeXBl ICpmdW5jX3R5cGUgPSBsbHZtOjpkeW5fY2FzdDxsbHZtOjpGdW5jdGlvblR5cGU+KGZ1bmNfcHRy X3R5cGUtPmdldFBvaW50ZXJFbGVtZW50VHlwZSgpKTsKLS0gICAgICAgIGxsdm06OkNhbGxJbnN0 ICpjYWxsaW5zdCA9IGxsdm06OkNhbGxJbnN0OjpDcmVhdGUoZnVuY190eXBlLCBmdW5jLCBhcmdW YWxzLCBuYW1lID8gbmFtZSA6ICIiLCBiYmxvY2spOwotKyAgICAgICAgbGx2bTo6Q2FsbEluc3Qg KmNhbGxpbnN0ID0gbGx2bTo6Q2FsbEluc3Q6OkNyZWF0ZShmdW5jX3R5cGUsIGZ1bmMsIGFyZ1Zh bHMsIG5hbWUsIGJibG9jayk7Ci0gI2Vsc2UKLS0gICAgICAgIGxsdm06OkNhbGxJbnN0ICpjYWxs aW5zdCA9IGxsdm06OkNhbGxJbnN0OjpDcmVhdGUoZnVuYywgYXJnVmFscywgbmFtZSA/IG5hbWUg OiAiIiwgYmJsb2NrKTsKLSsgICAgICAgIGxsdm06OkNhbGxJbnN0ICpjYWxsaW5zdCA9IGxsdm06 OkNhbGxJbnN0OjpDcmVhdGUoZnVuYywgYXJnVmFscywgbmFtZSwgYmJsb2NrKTsKLSAjZW5kaWYK LSAKLSAgICAgICAgIC8vIFdlIGNvdWxkIGJlIGRlYWxpbmcgd2l0aCBhIGZ1bmN0aW9uIHBvaW50 ZXIgaW4gd2hpY2ggY2FzZSB0aGlzIHdpbGwgbm90IGJlIGEgJ2xsdm06OkZ1bmN0aW9uJy4KLUBA IC0zNDY0LDE0ICszNDQyLDE0IEBAIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpD YWxsSW5zdChsbHZtOjpWYWx1ZSAqZnVuYywgY29uc3QgRnVuY3Rpb25UeXBlCi0gfQotIAotIGxs dm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpDYWxsSW5zdChsbHZtOjpWYWx1ZSAqZnVu YywgY29uc3QgRnVuY3Rpb25UeXBlICpmdW5jVHlwZSwgbGx2bTo6VmFsdWUgKmFyZywKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqbmFtZSkg ewotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBsbHZt OjpUd2luZSAmbmFtZSkgewotICAgICBzdGQ6OnZlY3RvcjxsbHZtOjpWYWx1ZSAqPiBhcmdzOwot ICAgICBhcmdzLnB1c2hfYmFjayhhcmcpOwotICAgICByZXR1cm4gQ2FsbEluc3QoZnVuYywgZnVu Y1R5cGUsIGFyZ3MsIG5hbWUpOwotIH0KLSAKLSBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29u dGV4dDo6Q2FsbEluc3QobGx2bTo6VmFsdWUgKmZ1bmMsIGNvbnN0IEZ1bmN0aW9uVHlwZSAqZnVu Y1R5cGUsIGxsdm06OlZhbHVlICphcmcwLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBsbHZtOjpWYWx1ZSAqYXJnMSwgY29uc3QgY2hhciAqbmFtZSkgewotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpWYWx1ZSAqYXJn MSwgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUpIHsKLSAgICAgc3RkOjp2ZWN0b3I8bGx2bTo6VmFs dWUgKj4gYXJnczsKLSAgICAgYXJncy5wdXNoX2JhY2soYXJnMCk7Ci0gICAgIGFyZ3MucHVzaF9i YWNrKGFyZzEpOwotZGlmZiAtLWdpdCBhL3NyYy9jdHguaCBiL3NyYy9jdHguaAotaW5kZXggNmU1 YWQ3NGJhLi40OGIzYmI4MjYgMTAwNjQ0Ci0tLS0gYS9zcmMvY3R4LmgKLSsrKyBiL3NyYy9jdHgu aAotQEAgLTMwMiw3ICszMDIsNyBAQCBjbGFzcyBGdW5jdGlvbkVtaXRDb250ZXh0IHsKLSAgICAg bGx2bTo6VmFsdWUgKkdldFN0cmluZ1B0cihjb25zdCBzdGQ6OnN0cmluZyAmc3RyKTsKLSAKLSAg ICAgLyoqIENyZWF0ZSBhIG5ldyBiYXNpYyBibG9jayB3aXRoIGdpdmVuIG5hbWUgKi8KLS0gICAg bGx2bTo6QmFzaWNCbG9jayAqQ3JlYXRlQmFzaWNCbG9jayhjb25zdCBjaGFyICpuYW1lLCBsbHZt OjpCYXNpY0Jsb2NrICppbnNlcnRBZnRlciA9IE5VTEwpOwotKyAgICBsbHZtOjpCYXNpY0Jsb2Nr ICpDcmVhdGVCYXNpY0Jsb2NrKGNvbnN0IGxsdm06OlR3aW5lICZuYW1lLCBsbHZtOjpCYXNpY0Js b2NrICppbnNlcnRBZnRlciA9IE5VTEwpOwotIAotICAgICAvKiogR2l2ZW4gYSB2ZWN0b3Igd2l0 aCBlbGVtZW50IHR5cGUgaTEsIHJldHVybiBhIHZlY3RvciBvZiB0eXBlCi0gICAgICAgICBMTFZN VHlwZXM6OkJvb2xWZWN0b3JUeXBlLiAgVGhpcyBtZXRob2QgaGFuZGxlcyB0aGUgY29udmVyc2lv biBmb3IKLUBAIC0zODAsMzMgKzM4MCwzMyBAQCBjbGFzcyBGdW5jdGlvbkVtaXRDb250ZXh0IHsK LSAgICAgICAgIHRoaXMgYWxzbyBoYW5kbGVzIGFwcGx5aW5nIHRoZSBnaXZlbiBvcGVyYXRpb24g dG8gdGhlIHZlY3RvcgotICAgICAgICAgZWxlbWVudHMuICovCi0gICAgIGxsdm06OlZhbHVlICpC aW5hcnlPcGVyYXRvcihsbHZtOjpJbnN0cnVjdGlvbjo6QmluYXJ5T3BzIGluc3QsIGxsdm06OlZh bHVlICp2MCwgbGx2bTo6VmFsdWUgKnYxLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgY29uc3QgY2hhciAqbmFtZSA9IE5VTEwpOwotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUgPSAiIik7Ci0gCi0gICAgIC8qKiBFbWl0IHRo ZSAibm90IiBvcGVyYXRvci4gIExpa2UgQmluYXJ5T3BlcmF0b3IoKSwgdGhpcyBhbHNvIGhhbmRs ZXMKLSAgICAgICAgIGEgVmVjdG9yVHlwZS1iYXNlZCBvcGVyYW5kLiAqLwotLSAgICBsbHZtOjpW YWx1ZSAqTm90T3BlcmF0b3IobGx2bTo6VmFsdWUgKnYsIGNvbnN0IGNoYXIgKm5hbWUgPSBOVUxM KTsKLSsgICAgbGx2bTo6VmFsdWUgKk5vdE9wZXJhdG9yKGxsdm06OlZhbHVlICp2LCBjb25zdCBs bHZtOjpUd2luZSAmbmFtZSA9ICIiKTsKLSAKLSAgICAgLyoqIEVtaXQgYSBjb21wYXJpc29uIGlu c3RydWN0aW9uLiAgSWYgdGhlIG9wZXJhbmRzIGFyZSBWZWN0b3JUeXBlcywKLSAgICAgICAgIHRo ZW4gYSB2YWx1ZSBmb3IgdGhlIGNvcnJlc3BvbmRpbmcgYm9vbGVhbiBWZWN0b3JUeXBlIGlzCi0g ICAgICAgICByZXR1cm5lZC4gKi8KLSAgICAgbGx2bTo6VmFsdWUgKkNtcEluc3QobGx2bTo6SW5z dHJ1Y3Rpb246Ok90aGVyT3BzIGluc3QsIGxsdm06OkNtcEluc3Q6OlByZWRpY2F0ZSBwcmVkLCBs bHZtOjpWYWx1ZSAqdjAsCi0tICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06OlZhbHVlICp2 MSwgY29uc3QgY2hhciAqbmFtZSA9IE5VTEwpOwotKyAgICAgICAgICAgICAgICAgICAgICAgICBs bHZtOjpWYWx1ZSAqdjEsIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lID0gIiIpOwotIAotICAgICAv KiogR2l2ZW4gYSBzY2FsYXIgdmFsdWUsIHJldHVybiBhIHZlY3RvciBvZiB0aGUgc2FtZSB0eXBl IChvciBhbgotICAgICAgICAgYXJyYXksIGZvciBwb2ludGVyIHR5cGVzKS4gKi8KLS0gICAgbGx2 bTo6VmFsdWUgKlNtZWFyVW5pZm9ybShsbHZtOjpWYWx1ZSAqdmFsdWUsIGNvbnN0IGNoYXIgKm5h bWUgPSBOVUxMKTsKLSsgICAgbGx2bTo6VmFsdWUgKlNtZWFyVW5pZm9ybShsbHZtOjpWYWx1ZSAq dmFsdWUsIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lID0gIiIpOwotIAotLSAgICBsbHZtOjpWYWx1 ZSAqQml0Q2FzdEluc3QobGx2bTo6VmFsdWUgKnZhbHVlLCBsbHZtOjpUeXBlICp0eXBlLCBjb25z dCBjaGFyICpuYW1lID0gTlVMTCk7Ci0tICAgIGxsdm06OlZhbHVlICpQdHJUb0ludEluc3QobGx2 bTo6VmFsdWUgKnZhbHVlLCBjb25zdCBjaGFyICpuYW1lID0gTlVMTCk7Ci0tICAgIGxsdm06OlZh bHVlICpQdHJUb0ludEluc3QobGx2bTo6VmFsdWUgKnZhbHVlLCBsbHZtOjpUeXBlICp0eXBlLCBj b25zdCBjaGFyICpuYW1lID0gTlVMTCk7Ci0tICAgIGxsdm06OlZhbHVlICpJbnRUb1B0ckluc3Qo bGx2bTo6VmFsdWUgKnZhbHVlLCBsbHZtOjpUeXBlICp0eXBlLCBjb25zdCBjaGFyICpuYW1lID0g TlVMTCk7Ci0rICAgIGxsdm06OlZhbHVlICpCaXRDYXN0SW5zdChsbHZtOjpWYWx1ZSAqdmFsdWUs IGxsdm06OlR5cGUgKnR5cGUsIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lID0gIiIpOwotKyAgICBs bHZtOjpWYWx1ZSAqUHRyVG9JbnRJbnN0KGxsdm06OlZhbHVlICp2YWx1ZSwgY29uc3QgbGx2bTo6 VHdpbmUgJm5hbWUgPSAiIik7Ci0rICAgIGxsdm06OlZhbHVlICpQdHJUb0ludEluc3QobGx2bTo6 VmFsdWUgKnZhbHVlLCBsbHZtOjpUeXBlICp0eXBlLCBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSA9 ICIiKTsKLSsgICAgbGx2bTo6VmFsdWUgKkludFRvUHRySW5zdChsbHZtOjpWYWx1ZSAqdmFsdWUs IGxsdm06OlR5cGUgKnR5cGUsIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lID0gIiIpOwotIAotLSAg ICBsbHZtOjpJbnN0cnVjdGlvbiAqVHJ1bmNJbnN0KGxsdm06OlZhbHVlICp2YWx1ZSwgbGx2bTo6 VHlwZSAqdHlwZSwgY29uc3QgY2hhciAqbmFtZSA9IE5VTEwpOwotKyAgICBsbHZtOjpJbnN0cnVj dGlvbiAqVHJ1bmNJbnN0KGxsdm06OlZhbHVlICp2YWx1ZSwgbGx2bTo6VHlwZSAqdHlwZSwgY29u c3QgbGx2bTo6VHdpbmUgJm5hbWUgPSAiIik7Ci0gICAgIGxsdm06Okluc3RydWN0aW9uICpDYXN0 SW5zdChsbHZtOjpJbnN0cnVjdGlvbjo6Q2FzdE9wcyBvcCwgbGx2bTo6VmFsdWUgKnZhbHVlLCBs bHZtOjpUeXBlICp0eXBlLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg Y2hhciAqbmFtZSA9IE5VTEwpOwotLSAgICBsbHZtOjpJbnN0cnVjdGlvbiAqRlBDYXN0SW5zdChs bHZtOjpWYWx1ZSAqdmFsdWUsIGxsdm06OlR5cGUgKnR5cGUsIGNvbnN0IGNoYXIgKm5hbWUgPSBO VUxMKTsKLS0gICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKlNFeHRJbnN0KGxsdm06OlZhbHVlICp2YWx1 ZSwgbGx2bTo6VHlwZSAqdHlwZSwgY29uc3QgY2hhciAqbmFtZSA9IE5VTEwpOwotLSAgICBsbHZt OjpJbnN0cnVjdGlvbiAqWkV4dEluc3QobGx2bTo6VmFsdWUgKnZhbHVlLCBsbHZtOjpUeXBlICp0 eXBlLCBjb25zdCBjaGFyICpuYW1lID0gTlVMTCk7Ci0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSA9ICIiKTsKLSsgICAgbGx2bTo6SW5zdHJ1 Y3Rpb24gKkZQQ2FzdEluc3QobGx2bTo6VmFsdWUgKnZhbHVlLCBsbHZtOjpUeXBlICp0eXBlLCBj b25zdCBsbHZtOjpUd2luZSAmbmFtZSA9ICIiKTsKLSsgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKlNF eHRJbnN0KGxsdm06OlZhbHVlICp2YWx1ZSwgbGx2bTo6VHlwZSAqdHlwZSwgY29uc3QgbGx2bTo6 VHdpbmUgJm5hbWUgPSAiIik7Ci0rICAgIGxsdm06Okluc3RydWN0aW9uICpaRXh0SW5zdChsbHZt OjpWYWx1ZSAqdmFsdWUsIGxsdm06OlR5cGUgKnR5cGUsIGNvbnN0IGxsdm06OlR3aW5lICZuYW1l ID0gIiIpOwotIAotICAgICAvKiogR2l2ZW4gdHdvIGludGVnZXItdHlwZWQgdmFsdWVzIChidXQg cG9zc2libHkgb25lIHZlY3RvciBhbmQgdGhlCi0gICAgICAgICBvdGhlciBub3QsIGFuZCBvciBv ZiBwb3NzaWJseS1kaWZmZXJlbnQgYml0LXdpZHRocyksIHVwZGF0ZSB0aGVpcgotQEAgLTQyNiw5 ICs0MjYsOSBAQCBjbGFzcyBGdW5jdGlvbkVtaXRDb250ZXh0IHsKLSAgICAgICAgIHBvaW50ZXJz LiAgVGhlIHVuZGVybHlpbmcgdHlwZSBvZiB0aGUgYmFzZSBwb2ludGVyIG11c3QgYmUgcHJvdmlk ZWQKLSAgICAgICAgIHZpYSB0aGUgcHRyVHlwZSBwYXJhbWV0ZXIgKi8KLSAgICAgbGx2bTo6VmFs dWUgKkdldEVsZW1lbnRQdHJJbnN0KGxsdm06OlZhbHVlICpiYXNlUHRyLCBsbHZtOjpWYWx1ZSAq aW5kZXgsIGNvbnN0IFR5cGUgKnB0clR5cGUsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBjb25zdCBjaGFyICpuYW1lID0gTlVMTCk7Ci0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSA9ICIiKTsKLSAgICAgbGx2bTo6 VmFsdWUgKkdldEVsZW1lbnRQdHJJbnN0KGxsdm06OlZhbHVlICpiYXNlUHRyLCBsbHZtOjpWYWx1 ZSAqaW5kZXgwLCBsbHZtOjpWYWx1ZSAqaW5kZXgxLCBjb25zdCBUeXBlICpwdHJUeXBlLAotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqbmFtZSA9IE5VTEwp OwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGx2bTo6VHdpbmUg Jm5hbWUgPSAiIik7Ci0gCi0gICAgIC8qKiBUaGlzIG1ldGhvZCByZXR1cm5zIGEgbmV3IHBvaW50 ZXIgdGhhdCByZXByZXNlbnRzIG9mZnNldHRpbmcgdGhlCi0gICAgICAgICBnaXZlbiBiYXNlIHBv aW50ZXIgdG8gcG9pbnQgYXQgdGhlIGdpdmVuIGVsZW1lbnQgbnVtYmVyIG9mIHRoZQotQEAgLTQz NiwyNiArNDM2LDI2IEBAIGNsYXNzIEZ1bmN0aW9uRW1pdENvbnRleHQgewotICAgICAgICAgcG9p bnRlciBtdXN0IGJlIGEgcG9pbnRlciB0byBhIHN0cnVjdHVyZSB0eXBlLiAgVGhlIHB0clR5cGUg Z2l2ZXMKLSAgICAgICAgIHRoZSB0eXBlIG9mIHRoZSBwb2ludGVyLCB0aG91Z2ggaXQgbWF5IGJl IE5VTEwgaWYgdGhlIGJhc2UgcG9pbnRlcgotICAgICAgICAgaXMgdW5pZm9ybS4gKi8KLS0gICAg bGx2bTo6VmFsdWUgKkFkZEVsZW1lbnRPZmZzZXQobGx2bTo6VmFsdWUgKmJhc2VQdHIsIGludCBl bGVtZW50TnVtLCBjb25zdCBUeXBlICpwdHJUeXBlLCBjb25zdCBjaGFyICpuYW1lID0gTlVMTCwK LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgUG9pbnRlclR5cGUgKipy ZXN1bHRQdHJUeXBlID0gTlVMTCk7Ci0rICAgIGxsdm06OlZhbHVlICpBZGRFbGVtZW50T2Zmc2V0 KGxsdm06OlZhbHVlICpiYXNlUHRyLCBpbnQgZWxlbWVudE51bSwgY29uc3QgVHlwZSAqcHRyVHlw ZSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGx2bTo6VHdpbmUg Jm5hbWUgPSAiIiwgY29uc3QgUG9pbnRlclR5cGUgKipyZXN1bHRQdHJUeXBlID0gTlVMTCk7Ci0g Ci0gICAgIC8qKiBCb29sIGlzIHN0b3JlZCBhcyBpOCBhbmQgPFdJRFRIIHggaTg+IGJ1dCByZXBy ZXNlbnRlZCBpbiBJUiBhcyBpMSBhbmQKLSAgICAgICogPFdJRFRIIHggTUFTSz4uIFRoaXMgaXMg YSBoZWxwZXIgZnVuY3Rpb24gdG8gbWF0Y2ggYm9vbCBzaXplIGF0IHN0b3JhZ2UKLSAgICAgICog aW50ZXJmYWNlLiAqLwotLSAgICBsbHZtOjpWYWx1ZSAqU3dpdGNoQm9vbFNpemUobGx2bTo6VmFs dWUgKnZhbHVlLCBsbHZtOjpUeXBlICp0b1R5cGUsIGNvbnN0IGNoYXIgKm5hbWUgPSBOVUxMKTsK LSsgICAgbGx2bTo6VmFsdWUgKlN3aXRjaEJvb2xTaXplKGxsdm06OlZhbHVlICp2YWx1ZSwgbGx2 bTo6VHlwZSAqdG9UeXBlLCBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSA9ICIiKTsKLSAgICAgLyoq IExvYWQgZnJvbSB0aGUgbWVtb3J5IGxvY2F0aW9uKHMpIGdpdmVuIGJ5IGx2YWx1ZSwgdXNpbmcg dGhlIGdpdmVuCi0gICAgICAgICBtYXNrLiAgVGhlIGx2YWx1ZSBtYXkgYmUgdmFyeWluZywgaW4g d2hpY2ggY2FzZSB0aGlzIGNvcnJlc3BvbmRzIHRvCi0gICAgICAgICBhIGdhdGhlciBmcm9tIHRo ZSBtdWx0aXBsZSBtZW1vcnkgbG9jYXRpb25zIGdpdmVuIGJ5IHRoZSBhcnJheSBvZgotICAgICAg ICAgcG9pbnRlciB2YWx1ZXMgZ2l2ZW4gYnkgdGhlIGx2YWx1ZS4gIElmIHRoZSBsdmFsdWUgaXMg bm90IHZhcnlpbmcsCi0gICAgICAgICB0aGVuIGJvdGggdGhlIG1hc2sgcG9pbnRlciBhbmQgdGhl IHR5cGUgcG9pbnRlciBtYXkgYmUgTlVMTC4gKi8KLS0gICAgbGx2bTo6VmFsdWUgKkxvYWRJbnN0 KGxsdm06OlZhbHVlICpwdHIsIGxsdm06OlZhbHVlICptYXNrLCBjb25zdCBUeXBlICpwdHJUeXBl LCBjb25zdCBjaGFyICpuYW1lID0gTlVMTCwKLSsgICAgbGx2bTo6VmFsdWUgKkxvYWRJbnN0KGxs dm06OlZhbHVlICpwdHIsIGxsdm06OlZhbHVlICptYXNrLCBjb25zdCBUeXBlICpwdHJUeXBlLCBj b25zdCBsbHZtOjpUd2luZSAmbmFtZSA9ICIiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg Ym9vbCBvbmVfZWxlbSA9IGZhbHNlKTsKLSAKLSAgICAgLyogTG9hZCBmcm9tIG1lbW9yeSBsb2Nh dGlvbihzKSBnaXZlbi4KLSAgICAgICogJ3R5cGUnIG5lZWRzIHRvIGJlIHByb3ZpZGVkIHdoZW4g c3RvcmFnZSB0eXBlIGlzIGRpZmZlcmVudCBmcm9tIElSIHR5cGUuIEZvciBleGFtcGxlLAotICAg ICAgKiAndW5mb3JtIGJvb2wnIGlzICdpMScgaW4gSVIgYnV0IHN0b3JlZCBhcyAnaTgnLgotICAg ICAgKiBPdGhlcndpc2UgbGVhdmUgdGhpcyBhcyBOVUxMLiAqLwotLSAgICBsbHZtOjpWYWx1ZSAq TG9hZEluc3QobGx2bTo6VmFsdWUgKnB0ciwgY29uc3QgVHlwZSAqdHlwZSA9IE5VTEwsIGNvbnN0 IGNoYXIgKm5hbWUgPSBOVUxMKTsKLSsgICAgbGx2bTo6VmFsdWUgKkxvYWRJbnN0KGxsdm06OlZh bHVlICpwdHIsIGNvbnN0IFR5cGUgKnR5cGUgPSBOVUxMLCBjb25zdCBsbHZtOjpUd2luZSAmbmFt ZSA9ICIiKTsKLSAKLSAgICAgLyoqIEVtaXRzIGFuIGFsbG9jYSBpbnN0cnVjdGlvbiB0byBhbGxv Y2F0ZSBzdGFjayBzdG9yYWdlIGZvciB0aGUgZ2l2ZW4KLSAgICAgICAgIHR5cGUuICBJZiBhIG5v bi16ZXJvIGFsaWdubWVudCBpcyBzcGVjaWZpZWQsIHRoZSBvYmplY3QgaXMgYWxzbwotQEAgLTQ2 Myw3ICs0NjMsOCBAQCBjbGFzcyBGdW5jdGlvbkVtaXRDb250ZXh0IHsKLSAgICAgICAgIGluc3Ry dWN0aW9uIGlzIGFkZGVkIGF0IHRoZSBzdGFydCBvZiB0aGUgZnVuY3Rpb24gaW4gdGhlIGVudHJ5 Ci0gICAgICAgICBiYXNpYyBibG9jazsgaWYgaXQgc2hvdWxkIGJlIGFkZGVkIHRvIHRoZSBjdXJy ZW50IGJhc2ljIGJsb2NrLCB0aGVuCi0gICAgICAgICB0aGUgYXRFbnRyeUJsb2NrIHBhcmFtZXRl ciBzaG91bGQgYmUgZmFsc2UuICovCi0tICAgIGxsdm06OlZhbHVlICpBbGxvY2FJbnN0KGxsdm06 OlR5cGUgKmxsdm1UeXBlLCBjb25zdCBjaGFyICpuYW1lID0gTlVMTCwgaW50IGFsaWduID0gMCwg Ym9vbCBhdEVudHJ5QmxvY2sgPSB0cnVlKTsKLSsgICAgbGx2bTo6VmFsdWUgKkFsbG9jYUluc3Qo bGx2bTo6VHlwZSAqbGx2bVR5cGUsIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lID0gIiIsIGludCBh bGlnbiA9IDAsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgYXRFbnRyeUJsb2Nr ID0gdHJ1ZSk7Ci0gCi0gICAgIC8qKiBFbWl0cyBhbiBhbGxvY2EgaW5zdHJ1Y3Rpb24gdG8gYWxs b2NhdGUgc3RhY2sgc3RvcmFnZSBmb3IgdGhlIGdpdmVuCi0gICAgICAgICB0eXBlLiAgSWYgYSBu b24temVybyBhbGlnbm1lbnQgaXMgc3BlY2lmaWVkLCB0aGUgb2JqZWN0IGlzIGFsc28KLUBAIC00 NzQsNyArNDc1LDcgQEAgY2xhc3MgRnVuY3Rpb25FbWl0Q29udGV4dCB7Ci0gICAgICAgICBUaGlz IGltcGxlbWVudGF0aW9uIGlzIHByZWZlcnJlZCB3aGVuIHBvc3NpYmxlLiBJdCBpcyBuZWVkZWQg d2hlbgotICAgICAgICAgc3RvcmFnZSB0eXBlIGlzIGRpZmZlcmVudCBmcm9tIElSIHR5cGUuIEZv ciBleGFtcGxlLAotICAgICAgICAgJ3VuZm9ybSBib29sJyBpcyAnaTEnIGluIElSIGJ1dCBzdG9y ZWQgYXMgJ2k4Jy4gKi8KLS0gICAgbGx2bTo6VmFsdWUgKkFsbG9jYUluc3QoY29uc3QgVHlwZSAq cHRyVHlwZSwgY29uc3QgY2hhciAqbmFtZSA9IE5VTEwsIGludCBhbGlnbiA9IDAsIGJvb2wgYXRF bnRyeUJsb2NrID0gdHJ1ZSk7Ci0rICAgIGxsdm06OlZhbHVlICpBbGxvY2FJbnN0KGNvbnN0IFR5 cGUgKnB0clR5cGUsIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lID0gIiIsIGludCBhbGlnbiA9IDAs IGJvb2wgYXRFbnRyeUJsb2NrID0gdHJ1ZSk7Ci0gCi0gICAgIC8qKiBTdGFuZGFyZCBzdG9yZSBp bnN0cnVjdGlvbjsgZm9yIHRoaXMgdmFyaWFudCwgdGhlIGx2YWx1ZSBtdXN0IGJlIGEKLSAgICAg ICAgIHNpbmdsZSBwb2ludGVyLCBub3QgYSB2YXJ5aW5nIGx2YWx1ZS4KLUBAIC01MDIsMzkgKzUw Myw0MSBAQCBjbGFzcyBGdW5jdGlvbkVtaXRDb250ZXh0IHsKLSAgICAgLyoqIFRoaXMgY29udmVu aWVuY2UgbWV0aG9kIG1hcHMgdG8gYW4gbGx2bTo6RXh0cmFjdEVsZW1lbnRJbnN0IGlmIHRoZQot ICAgICAgICAgZ2l2ZW4gdmFsdWUgaXMgYSBsbHZtOjpWZWN0b3JUeXBlLCBhbmQgdG8gYW4gbGx2 bTo6RXh0cmFjdFZhbHVlSW5zdAotICAgICAgICAgb3RoZXJ3aXNlLiAqLwotLSAgICBsbHZtOjpW YWx1ZSAqRXh0cmFjdEluc3QobGx2bTo6VmFsdWUgKnYsIGludCBlbHQsIGNvbnN0IGNoYXIgKm5h bWUgPSBOVUxMKTsKLSsgICAgbGx2bTo6VmFsdWUgKkV4dHJhY3RJbnN0KGxsdm06OlZhbHVlICp2 LCBpbnQgZWx0LCBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSA9ICIiKTsKLSAKLSAgICAgLyoqIFRo aXMgY29udmVuaWVuY2UgbWV0aG9kIG1hcHMgdG8gYW4gbGx2bTo6SW5zZXJ0RWxlbWVudEluc3Qg aWYgdGhlCi0gICAgICAgICBnaXZlbiB2YWx1ZSBpcyBhIGxsdm06OlZlY3RvclR5cGUsIGFuZCB0 byBhbiBsbHZtOjpJbnNlcnRWYWx1ZUluc3QKLSAgICAgICAgIG90aGVyd2lzZS4gKi8KLS0gICAg bGx2bTo6VmFsdWUgKkluc2VydEluc3QobGx2bTo6VmFsdWUgKnYsIGxsdm06OlZhbHVlICplbHRW YWwsIGludCBlbHQsIGNvbnN0IGNoYXIgKm5hbWUgPSBOVUxMKTsKLSsgICAgbGx2bTo6VmFsdWUg Kkluc2VydEluc3QobGx2bTo6VmFsdWUgKnYsIGxsdm06OlZhbHVlICplbHRWYWwsIGludCBlbHQs IGNvbnN0IGxsdm06OlR3aW5lICZuYW1lID0gIiIpOwotIAotICAgICAvKiogVGhpcyBjb252ZW5p ZW5jZSBtZXRob2QgbWFwcyB0byBhbiBsbHZtOjpTaHVmZmxlVmVjdG9ySW5zdC4gKi8KLS0gICAg bGx2bTo6VmFsdWUgKlNodWZmbGVJbnN0KGxsdm06OlZhbHVlICp2MSwgbGx2bTo6VmFsdWUgKnYy LCBsbHZtOjpWYWx1ZSAqbWFzaywgY29uc3QgY2hhciAqbmFtZSA9IE5VTEwpOwotKyAgICBsbHZt OjpWYWx1ZSAqU2h1ZmZsZUluc3QobGx2bTo6VmFsdWUgKnYxLCBsbHZtOjpWYWx1ZSAqdjIsIGxs dm06OlZhbHVlICptYXNrLCBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSA9ICIiKTsKLSAKLSAgICAg LyoqIFRoaXMgY29udmVuaWVuY2UgbWV0aG9kIHRvIGdlbmVyYXRlIGJyb2FkY2FzdCBwYXR0ZXJu LiBJdCB0YWtlcyBhIHZhbHVlCi0gICAgICAgICBhbmQgYSB2ZWN0b3IgdHlwZS4gVHlwZSBvZiB0 aGUgdmFsdWUgbXVzdCBtYXRjaCBlbGVtZW50IHR5cGUgb2YgdGhlCi0gICAgICAgICB2ZWN0b3Iu ICovCi0tICAgIGxsdm06OlZhbHVlICpCcm9hZGNhc3RWYWx1ZShsbHZtOjpWYWx1ZSAqdiwgbGx2 bTo6VHlwZSAqdmVjVHlwZSwgY29uc3QgY2hhciAqbmFtZSA9IE5VTEwpOwotKyAgICBsbHZtOjpW YWx1ZSAqQnJvYWRjYXN0VmFsdWUobGx2bTo6VmFsdWUgKnYsIGxsdm06OlR5cGUgKnZlY1R5cGUs IGNvbnN0IGxsdm06OlR3aW5lICZuYW1lID0gIiIpOwotIAotLSAgICBsbHZtOjpQSElOb2RlICpQ aGlOb2RlKGxsdm06OlR5cGUgKnR5cGUsIGludCBjb3VudCwgY29uc3QgY2hhciAqbmFtZSA9IE5V TEwpOwotLSAgICBsbHZtOjpJbnN0cnVjdGlvbiAqU2VsZWN0SW5zdChsbHZtOjpWYWx1ZSAqdGVz dCwgbGx2bTo6VmFsdWUgKnZhbDAsIGxsdm06OlZhbHVlICp2YWwxLCBjb25zdCBjaGFyICpuYW1l ID0gTlVMTCk7Ci0rICAgIGxsdm06OlBISU5vZGUgKlBoaU5vZGUobGx2bTo6VHlwZSAqdHlwZSwg aW50IGNvdW50LCBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSA9ICIiKTsKLSsgICAgbGx2bTo6SW5z dHJ1Y3Rpb24gKlNlbGVjdEluc3QobGx2bTo6VmFsdWUgKnRlc3QsIGxsdm06OlZhbHVlICp2YWww LCBsbHZtOjpWYWx1ZSAqdmFsMSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y29uc3QgbGx2bTo6VHdpbmUgJm5hbWUgPSAiIik7Ci0gCi0gICAgIC8qKiBFbWl0cyBJUiB0byBk byBhIGZ1bmN0aW9uIGNhbGwgd2l0aCB0aGUgZ2l2ZW4gYXJndW1lbnRzLiAgSWYgdGhlCi0gICAg ICAgICBmdW5jdGlvbiB0eXBlIGlzIGEgdmFyeWluZyBmdW5jdGlvbiBwb2ludGVyIHR5cGUsIGl0 cyBmdWxsIHR5cGUKLSAgICAgICAgIG11c3QgYmUgcHJvdmlkZWQgaW4gZnVuY1R5cGUuICBmdW5j VHlwZSBjYW4gYmUgTlVMTCBpZiBmdW5jIGlzIGEKLSAgICAgICAgIHVuaWZvcm0gZnVuY3Rpb24g cG9pbnRlci4gKi8KLSAgICAgbGx2bTo6VmFsdWUgKkNhbGxJbnN0KGxsdm06OlZhbHVlICpmdW5j LCBjb25zdCBGdW5jdGlvblR5cGUgKmZ1bmNUeXBlLCBjb25zdCBzdGQ6OnZlY3RvcjxsbHZtOjpW YWx1ZSAqPiAmYXJncywKLS0gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKm5h bWUgPSBOVUxMKTsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGxsdm06OlR3aW5l ICZuYW1lID0gIiIpOwotIAotICAgICAvKiogVGhpcyBpcyBhIGNvbnZlbmllbmNlIG1ldGhvZCB0 aGF0IGlzc3VlcyBhIGNhbGwgaW5zdHJ1Y3Rpb24gdG8gYQotICAgICAgICAgZnVuY3Rpb24gdGhh dCB0YWtlcyBqdXN0IGEgc2luZ2xlIGFyZ3VtZW50LiAqLwotLSAgICBsbHZtOjpWYWx1ZSAqQ2Fs bEluc3QobGx2bTo6VmFsdWUgKmZ1bmMsIGNvbnN0IEZ1bmN0aW9uVHlwZSAqZnVuY1R5cGUsIGxs dm06OlZhbHVlICphcmcsIGNvbnN0IGNoYXIgKm5hbWUgPSBOVUxMKTsKLSsgICAgbGx2bTo6VmFs dWUgKkNhbGxJbnN0KGxsdm06OlZhbHVlICpmdW5jLCBjb25zdCBGdW5jdGlvblR5cGUgKmZ1bmNU eXBlLCBsbHZtOjpWYWx1ZSAqYXJnLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg bGx2bTo6VHdpbmUgJm5hbWUgPSAiIik7Ci0gCi0gICAgIC8qKiBUaGlzIGlzIGEgY29udmVuaWVu Y2UgbWV0aG9kIHRoYXQgaXNzdWVzIGEgY2FsbCBpbnN0cnVjdGlvbiB0byBhCi0gICAgICAgICBm dW5jdGlvbiB0aGF0IHRha2VzIHR3byBhcmd1bWVudHMuICovCi0gICAgIGxsdm06OlZhbHVlICpD YWxsSW5zdChsbHZtOjpWYWx1ZSAqZnVuYywgY29uc3QgRnVuY3Rpb25UeXBlICpmdW5jVHlwZSwg bGx2bTo6VmFsdWUgKmFyZzAsIGxsdm06OlZhbHVlICphcmcxLAotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgY29uc3QgY2hhciAqbmFtZSA9IE5VTEwpOwotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUgPSAiIik7Ci0gCi0gICAgIC8qKiBMYXVuY2gg YW4gYXN5bmNocm9ub3VzIHRhc2sgdG8gcnVuIHRoZSBnaXZlbiBmdW5jdGlvbiwgcGFzc2luZyBp dAotICAgICAgICAgaGUgZ2l2ZW4gYXJndW1lbnQgdmFsdWVzLiAqLwotQEAgLTc1Niw5ICs3NTks MTAgQEAgY2xhc3MgRnVuY3Rpb25FbWl0Q29udGV4dCB7Ci0gICAgIHZvaWQgbWFza2VkU3RvcmUo bGx2bTo6VmFsdWUgKnZhbHVlLCBsbHZtOjpWYWx1ZSAqcHRyLCBjb25zdCBUeXBlICpwdHJUeXBl LCBsbHZtOjpWYWx1ZSAqbWFzayk7Ci0gICAgIHZvaWQgc3RvcmVVbmlmb3JtVG9TT0EobGx2bTo6 VmFsdWUgKnZhbHVlLCBsbHZtOjpWYWx1ZSAqcHRyLCBsbHZtOjpWYWx1ZSAqbWFzaywgY29uc3Qg VHlwZSAqdmFsdWVUeXBlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFBvaW50 ZXJUeXBlICpwdHJUeXBlKTsKLS0gICAgbGx2bTo6VmFsdWUgKmxvYWRVbmlmb3JtRnJvbVNPQShs bHZtOjpWYWx1ZSAqcHRyLCBsbHZtOjpWYWx1ZSAqbWFzaywgY29uc3QgUG9pbnRlclR5cGUgKnB0 clR5cGUsIGNvbnN0IGNoYXIgKm5hbWUpOwotKyAgICBsbHZtOjpWYWx1ZSAqbG9hZFVuaWZvcm1G cm9tU09BKGxsdm06OlZhbHVlICpwdHIsIGxsdm06OlZhbHVlICptYXNrLCBjb25zdCBQb2ludGVy VHlwZSAqcHRyVHlwZSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z dCBsbHZtOjpUd2luZSAmbmFtZSA9ICIiKTsKLSAKLS0gICAgbGx2bTo6VmFsdWUgKmdhdGhlcihs bHZtOjpWYWx1ZSAqcHRyLCBjb25zdCBQb2ludGVyVHlwZSAqcHRyVHlwZSwgbGx2bTo6VmFsdWUg Km1hc2ssIGNvbnN0IGNoYXIgKm5hbWUpOwotKyAgICBsbHZtOjpWYWx1ZSAqZ2F0aGVyKGxsdm06 OlZhbHVlICpwdHIsIGNvbnN0IFBvaW50ZXJUeXBlICpwdHJUeXBlLCBsbHZtOjpWYWx1ZSAqbWFz aywgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUgPSAiIik7Ci0gCi0gICAgIGxsdm06OlZhbHVlICph ZGRWYXJ5aW5nT2Zmc2V0c0lmTmVlZGVkKGxsdm06OlZhbHVlICpwdHIsIGNvbnN0IFR5cGUgKnB0 clR5cGUpOwotIH07Ci1kaWZmIC0tZ2l0IGEvc3JjL2V4cHIuY3BwIGIvc3JjL2V4cHIuY3BwCi1p bmRleCA4MGNjMzAyMGEuLjZkMzhkMTg4OSAxMDA2NDQKLS0tLSBhL3NyYy9leHByLmNwcAotKysr IGIvc3JjL2V4cHIuY3BwCi1AQCAtMTAyMSwxMSArMTAyMSwxMSBAQCBzdGF0aWMgbGx2bTo6VmFs dWUgKmxFbWl0TmVnYXRlKEV4cHIgKmFyZywgU291cmNlUG9zIHBvcywgRnVuY3Rpb25FbWl0Q29u dGV4dCAqYwotICAgICBjdHgtPlNldERlYnVnUG9zKHBvcyk7Ci0gICAgIGlmICh0eXBlLT5Jc0Zs b2F0VHlwZSgpKSB7Ci0gICAgICAgICBsbHZtOjpWYWx1ZSAqemVybyA9IGxsdm06OkNvbnN0YW50 RlA6OmdldFplcm9WYWx1ZUZvck5lZ2F0aW9uKHR5cGUtPkxMVk1UeXBlKGctPmN0eCkpOwotLSAg ICAgICAgcmV0dXJuIGN0eC0+QmluYXJ5T3BlcmF0b3IobGx2bTo6SW5zdHJ1Y3Rpb246OkZTdWIs IHplcm8sIGFyZ1ZhbCwgTExWTUdldE5hbWUoYXJnVmFsLCAiX25lZ2F0ZSIpKTsKLSsgICAgICAg IHJldHVybiBjdHgtPkJpbmFyeU9wZXJhdG9yKGxsdm06Okluc3RydWN0aW9uOjpGU3ViLCB6ZXJv LCBhcmdWYWwsIGxsdm06OlR3aW5lKGFyZ1ZhbC0+Z2V0TmFtZSgpKSArICJfbmVnYXRlIik7Ci0g ICAgIH0gZWxzZSB7Ci0gICAgICAgICBsbHZtOjpWYWx1ZSAqemVybyA9IGxMTFZNQ29uc3RhbnRW YWx1ZSh0eXBlLCBnLT5jdHgsIDAuKTsKLSAgICAgICAgIEFzc2VydFBvcyhwb3MsIHR5cGUtPklz SW50VHlwZSgpKTsKLS0gICAgICAgIHJldHVybiBjdHgtPkJpbmFyeU9wZXJhdG9yKGxsdm06Oklu c3RydWN0aW9uOjpTdWIsIHplcm8sIGFyZ1ZhbCwgTExWTUdldE5hbWUoYXJnVmFsLCAiX25lZ2F0 ZSIpKTsKLSsgICAgICAgIHJldHVybiBjdHgtPkJpbmFyeU9wZXJhdG9yKGxsdm06Okluc3RydWN0 aW9uOjpTdWIsIHplcm8sIGFyZ1ZhbCwgbGx2bTo6VHdpbmUoYXJnVmFsLT5nZXROYW1lKCkpICsg Il9uZWdhdGUiKTsKLSAgICAgfQotIH0KLSAKLUBAIC0xMDQ3LDExICsxMDQ3LDExIEBAIGxsdm06 OlZhbHVlICpVbmFyeUV4cHI6OkdldFZhbHVlKEZ1bmN0aW9uRW1pdENvbnRleHQgKmN0eCkgY29u c3QgewotICAgICAgICAgcmV0dXJuIGxFbWl0TmVnYXRlKGV4cHIsIHBvcywgY3R4KTsKLSAgICAg Y2FzZSBMb2dpY2FsTm90OiB7Ci0gICAgICAgICBsbHZtOjpWYWx1ZSAqYXJnVmFsID0gZXhwci0+ R2V0VmFsdWUoY3R4KTsKLS0gICAgICAgIHJldHVybiBjdHgtPk5vdE9wZXJhdG9yKGFyZ1ZhbCwg TExWTUdldE5hbWUoYXJnVmFsLCAiX2xvZ2ljYWxub3QiKSk7Ci0rICAgICAgICByZXR1cm4gY3R4 LT5Ob3RPcGVyYXRvcihhcmdWYWwsIGxsdm06OlR3aW5lKGFyZ1ZhbC0+Z2V0TmFtZSgpKSArICJf bG9naWNhbG5vdCIpOwotICAgICB9Ci0gICAgIGNhc2UgQml0Tm90OiB7Ci0gICAgICAgICBsbHZt OjpWYWx1ZSAqYXJnVmFsID0gZXhwci0+R2V0VmFsdWUoY3R4KTsKLS0gICAgICAgIHJldHVybiBj dHgtPk5vdE9wZXJhdG9yKGFyZ1ZhbCwgTExWTUdldE5hbWUoYXJnVmFsLCAiX2JpdG5vdCIpKTsK LSsgICAgICAgIHJldHVybiBjdHgtPk5vdE9wZXJhdG9yKGFyZ1ZhbCwgbGx2bTo6VHdpbmUoYXJn VmFsLT5nZXROYW1lKCkpICsgIl9iaXRub3QiKTsKLSAgICAgfQotICAgICBkZWZhdWx0OgotICAg ICAgICAgRkFUQUwoImxvZ2ljIGVycm9yIik7Ci1AQCAtMTUxOCw3ICsxNTE4LDggQEAgc3RhdGlj IGxsdm06OlZhbHVlICpsRW1pdEJpbmFyeUFyaXRoKEJpbmFyeUV4cHI6Ok9wIG9wLCBsbHZtOjpW YWx1ZSAqdmFsdWUwLCBsbHYKLSAgICAgICAgICAgICByZXR1cm4gTlVMTDsKLSAgICAgICAgIH0K LSAKLS0gICAgICAgIHJldHVybiBjdHgtPkJpbmFyeU9wZXJhdG9yKGluc3QsIHZhbHVlMCwgdmFs dWUxLCBMTFZNR2V0TmFtZShvcE5hbWUsIHZhbHVlMCwgdmFsdWUxKSk7Ci0rICAgICAgICByZXR1 cm4gY3R4LT5CaW5hcnlPcGVyYXRvcihpbnN0LCB2YWx1ZTAsIHZhbHVlMSwKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICgoKGxsdm06OlR3aW5lKG9wTmFtZSkgKyAiXyIpICsg dmFsdWUwLT5nZXROYW1lKCkpICsgIl8iKSArIHZhbHVlMS0+Z2V0TmFtZSgpKTsKLSAgICAgfQot IH0KLSAKLUBAIC0xNTYzLDcgKzE1NjQsNyBAQCBzdGF0aWMgbGx2bTo6VmFsdWUgKmxFbWl0Qmlu YXJ5Q21wKEJpbmFyeUV4cHI6Ok9wIG9wLCBsbHZtOjpWYWx1ZSAqZTBWYWwsIGxsdm06OgotICAg ICB9Ci0gCi0gICAgIGxsdm06OlZhbHVlICpjbXAgPSBjdHgtPkNtcEluc3QoaXNGbG9hdE9wID8g bGx2bTo6SW5zdHJ1Y3Rpb246OkZDbXAgOiBsbHZtOjpJbnN0cnVjdGlvbjo6SUNtcCwgcHJlZCwg ZTBWYWwsIGUxVmFsLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExMVk1H ZXROYW1lKG9wTmFtZSwgZTBWYWwsIGUxVmFsKSk7Ci0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKCgobGx2bTo6VHdpbmUob3BOYW1lKSArICJfIikgKyBlMFZhbC0+Z2V0TmFt ZSgpKSArICJfIikgKyBlMVZhbC0+Z2V0TmFtZSgpKTsKLSAgICAgLy8gVGhpcyBpcyBhIGxpdHRs ZSB1Z2x5OiBDbXBJbnN0IHJldHVybnMgaTEgdmFsdWVzLCBidXQgd2UgdXNlIHZlY3RvcnMKLSAg ICAgLy8gb2YgaTMycyBmb3IgdmFyeWluZyBib29sIHZhbHVlczsgdHlwZSBjb252ZXJ0IHRoZSBy ZXN1bHQgaGVyZSBpZgotICAgICAvLyBuZWVkZWQuCi1AQCAtNDE3Nyw3ICs0MTc4LDcgQEAgc3Rh dGljIGxsdm06OlZhbHVlICpsQ29udmVydFRvU2xpY2VQb2ludGVyKEZ1bmN0aW9uRW1pdENvbnRl eHQgKmN0eCwgbGx2bTo6VmFsdWUKLSAgICAgLy8gb2Zmc2V0cwotICAgICBsbHZtOjpWYWx1ZSAq cmVzdWx0ID0gbGx2bTo6Q29uc3RhbnQ6OmdldE51bGxWYWx1ZShzbGljZVN0cnVjdFR5cGUpOwot ICAgICAvLyBBbmQgcmVwbGFjZSB0aGUgcG9pbnRlciBpbiB0aGUgc3RydWN0IHdpdGggdGhlIGdp dmVuIHBvaW50ZXIKLS0gICAgcmV0dXJuIGN0eC0+SW5zZXJ0SW5zdChyZXN1bHQsIHB0ciwgMCwg TExWTUdldE5hbWUocHRyLCAiX3NsaWNlIikpOwotKyAgICByZXR1cm4gY3R4LT5JbnNlcnRJbnN0 KHJlc3VsdCwgcHRyLCAwLCBsbHZtOjpUd2luZShwdHItPmdldE5hbWUoKSkgKyAiX3NsaWNlIik7 Ci0gfQotIAotIC8qKiBJZiB0aGUgZ2l2ZW4gYXJyYXkgaW5kZXggaXMgYSBjb21waWxlIHRpbWUg Y29uc3RhbnQsIGNoZWNrIHRvIHNlZSBpZiBpdAotQEAgLTQyNTgsOCArNDI1OSw4IEBAIGxsdm06 OlZhbHVlICpJbmRleEV4cHI6OkdldExWYWx1ZShGdW5jdGlvbkVtaXRDb250ZXh0ICpjdHgpIGNv bnN0IHsKLSAgICAgICAgIC8vIENvbnZlcnQgdG8gYSBzbGljZSBwb2ludGVyIGlmIHdlJ3JlIGlu ZGV4aW5nIGludG8gU09BIGRhdGEKLSAgICAgICAgIGJhc2VQdHJWYWx1ZSA9IGxDb252ZXJ0UHRy VG9TbGljZUlmTmVlZGVkKGN0eCwgYmFzZVB0clZhbHVlLCAmYmFzZUV4cHJUeXBlKTsKLSAKLS0g ICAgICAgIGxsdm06OlZhbHVlICpwdHIgPQotLSAgICAgICAgICAgIGN0eC0+R2V0RWxlbWVudFB0 ckluc3QoYmFzZVB0clZhbHVlLCBpbmRleFZhbHVlLCBiYXNlRXhwclR5cGUsIExMVk1HZXROYW1l KGJhc2VQdHJWYWx1ZSwgIl9vZmZzZXQiKSk7Ci0rICAgICAgICBsbHZtOjpWYWx1ZSAqcHRyID0g Y3R4LT5HZXRFbGVtZW50UHRySW5zdChiYXNlUHRyVmFsdWUsIGluZGV4VmFsdWUsIGJhc2VFeHBy VHlwZSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGxsdm06OlR3aW5lKGJhc2VQdHJWYWx1ZS0+Z2V0TmFtZSgpKSArICJfb2Zmc2V0Iik7Ci0gICAg ICAgICByZXR1cm4gbEFkZFZhcnlpbmdPZmZzZXRzSWZOZWVkZWQoY3R4LCBwdHIsIEdldExWYWx1 ZVR5cGUoKSk7Ci0gICAgIH0KLSAKLUBAIC00MjkwLDggKzQyOTEsOCBAQCBsbHZtOjpWYWx1ZSAq SW5kZXhFeHByOjpHZXRMVmFsdWUoRnVuY3Rpb25FbWl0Q29udGV4dCAqY3R4KSBjb25zdCB7Ci0g ICAgIGN0eC0+U2V0RGVidWdQb3MocG9zKTsKLSAKLSAgICAgLy8gQW5kIGRvIHRoZSBhY3R1YWwg aW5kZXhpbmcgY2FsY3VsYXRpb24uLgotLSAgICBsbHZtOjpWYWx1ZSAqcHRyID0KLS0gICAgICAg IGN0eC0+R2V0RWxlbWVudFB0ckluc3QoYmFzZVB0ciwgTExWTUludDMyKDApLCBpbmRleFZhbHVl LCBiYXNlUHRyVHlwZSwgTExWTUdldE5hbWUoYmFzZVB0ciwgIl9vZmZzZXQiKSk7Ci0rICAgIGxs dm06OlZhbHVlICpwdHIgPSBjdHgtPkdldEVsZW1lbnRQdHJJbnN0KGJhc2VQdHIsIExMVk1JbnQz MigwKSwgaW5kZXhWYWx1ZSwgYmFzZVB0clR5cGUsCi0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGxsdm06OlR3aW5lKGJhc2VQdHItPmdldE5hbWUoKSkgKyAi X29mZnNldCIpOwotICAgICByZXR1cm4gbEFkZFZhcnlpbmdPZmZzZXRzSWZOZWVkZWQoY3R4LCBw dHIsIEdldExWYWx1ZVR5cGUoKSk7Ci0gfQotIAotQEAgLTQ3ODgsMTUgKzQ3ODksMTQgQEAgbGx2 bTo6VmFsdWUgKlZlY3Rvck1lbWJlckV4cHI6OkdldFZhbHVlKEZ1bmN0aW9uRW1pdENvbnRleHQg KmN0eCkgY29uc3QgewotICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBpZGVudGlmaWVy LnNpemUoKTsgKytpKSB7Ci0gICAgICAgICAgICAgY2hhciBpZFN0clsyXSA9IHtpZGVudGlmaWVy W2ldLCAnXDAnfTsKLSAgICAgICAgICAgICBsbHZtOjpWYWx1ZSAqZWxlbWVudFB0ciA9Ci0tICAg ICAgICAgICAgICAgIGN0eC0+QWRkRWxlbWVudE9mZnNldChiYXNlUHRyLCBpbmRpY2VzW2ldLCBi YXNlUHRyVHlwZSwgTExWTUdldE5hbWUoYmFzZVB0ciwgaWRTdHIpKTsKLSsgICAgICAgICAgICAg ICAgY3R4LT5BZGRFbGVtZW50T2Zmc2V0KGJhc2VQdHIsIGluZGljZXNbaV0sIGJhc2VQdHJUeXBl LCBsbHZtOjpUd2luZShiYXNlUHRyLT5nZXROYW1lKCkpICsgaWRTdHIpOwotICAgICAgICAgICAg IGxsdm06OlZhbHVlICplbGVtZW50VmFsdWUgPSBjdHgtPkxvYWRJbnN0KGVsZW1lbnRQdHIsIGVs ZW1lbnRNYXNrLCBlbGVtZW50UHRyVHlwZSk7Ci0gCi0tICAgICAgICAgICAgY29uc3QgY2hhciAq cmVzdWx0TmFtZSA9IExMVk1HZXROYW1lKHJlc3VsdFB0ciwgaWRTdHIpOwotLSAgICAgICAgICAg IGxsdm06OlZhbHVlICpwdG1wID0gY3R4LT5BZGRFbGVtZW50T2Zmc2V0KHJlc3VsdFB0ciwgaSwg TlVMTCwgcmVzdWx0TmFtZSk7Ci0rICAgICAgICAgICAgbGx2bTo6VmFsdWUgKnB0bXAgPSBjdHgt PkFkZEVsZW1lbnRPZmZzZXQocmVzdWx0UHRyLCBpLCBOVUxMLCBsbHZtOjpUd2luZShyZXN1bHRQ dHItPmdldE5hbWUoKSkgKyBpZFN0cik7Ci0gICAgICAgICAgICAgY3R4LT5TdG9yZUluc3QoZWxl bWVudFZhbHVlLCBwdG1wLCBlbGVtZW50UHRyVHlwZSwgZXhwci0+R2V0VHlwZSgpLT5Jc1VuaWZv cm1UeXBlKCkpOwotICAgICAgICAgfQotIAotLSAgICAgICAgcmV0dXJuIGN0eC0+TG9hZEluc3Qo cmVzdWx0UHRyLCBtZW1iZXJUeXBlLCBMTFZNR2V0TmFtZShiYXNlUHRyLCAiX3N3aXp6bGUiKSk7 Ci0rICAgICAgICByZXR1cm4gY3R4LT5Mb2FkSW5zdChyZXN1bHRQdHIsIG1lbWJlclR5cGUsIGxs dm06OlR3aW5lKGJhc2VQdHItPmdldE5hbWUoKSkgKyAiX3N3aXp6bGUiKTsKLSAgICAgfQotIH0K LSAKLUBAIC00OTMyLDcgKzQ5MzIsNyBAQCBsbHZtOjpWYWx1ZSAqTWVtYmVyRXhwcjo6R2V0VmFs dWUoRnVuY3Rpb25FbWl0Q29udGV4dCAqY3R4KSBjb25zdCB7Ci0gCi0gICAgIGN0eC0+U2V0RGVi dWdQb3MocG9zKTsKLSAgICAgc3RkOjpzdHJpbmcgc3VmZml4ID0gc3RkOjpzdHJpbmcoIl8iKSAr IGlkZW50aWZpZXI7Ci0tICAgIHJldHVybiBjdHgtPkxvYWRJbnN0KGx2YWx1ZSwgbWFzaywgbHZh bHVlVHlwZSwgTExWTUdldE5hbWUobHZhbHVlLCBzdWZmaXguY19zdHIoKSkpOwotKyAgICByZXR1 cm4gY3R4LT5Mb2FkSW5zdChsdmFsdWUsIG1hc2ssIGx2YWx1ZVR5cGUsIGxsdm06OlR3aW5lKGx2 YWx1ZS0+Z2V0TmFtZSgpKSArIHN1ZmZpeCk7Ci0gfQotIAotIGNvbnN0IFR5cGUgKk1lbWJlckV4 cHI6OkdldFR5cGUoKSBjb25zdCB7IHJldHVybiBOVUxMOyB9Ci1AQCAtNjUwMiw3ICs2NTAyLDcg QEAgc3RhdGljIGxsdm06OlZhbHVlICpsVHlwZUNvbnZBdG9taWMoRnVuY3Rpb25FbWl0Q29udGV4 dCAqY3R4LCBsbHZtOjpWYWx1ZSAqZXhwclYKLSAgICAgICAgICAgICAgICAgLy8gZG9lcyBmb3Ig ZXZlcnlvbmUgZWxzZS4uLgotICAgICAgICAgICAgICAgICBBc3NlcnQoY2FzdCk7Ci0gICAgICAg ICAgICAgICAgIGNhc3QgPSBjdHgtPlN3aXRjaEJvb2xTaXplKGNhc3QsIExMVk1UeXBlczo6Qm9v bFZlY3RvclR5cGUtPmdldEVsZW1lbnRUeXBlKCksCi0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIExMVk1HZXROYW1lKGNhc3QsICJ0b19pX2Jvb2wiKSk7Ci0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06OlR3aW5lKGNhc3Qt PmdldE5hbWUoKSkgKyAidG9faV9ib29sIik7Ci0gICAgICAgICAgICAgfQotICAgICAgICAgfSBl bHNlIHsKLSAgICAgICAgICAgICAvLyBmcm9tVHlwZS0+SXNWYXJ5aW5nVHlwZSgpKQotQEAgLTgy NDYsNyArODI0Niw3IEBAIGxsdm06OlZhbHVlICpOZXdFeHByOjpHZXRWYWx1ZShGdW5jdGlvbkVt aXRDb250ZXh0ICpjdHgpIGNvbnN0IHsKLSAgICAgICAgIC8vIHBvaW50ZXIgb2YgdGhlIHJldHVy biB0eXBlIGFuZCB0byBydW4gdGhlIGNvZGUgZm9yIGluaXRpYWxpemVycywKLSAgICAgICAgIC8v IGlmIHByZXNlbnQuCi0gICAgICAgICBsbHZtOjpUeXBlICpwdHJUeXBlID0gcmV0VHlwZS0+TExW TVR5cGUoZy0+Y3R4KTsKLS0gICAgICAgIHB0clZhbHVlID0gY3R4LT5CaXRDYXN0SW5zdChwdHJW YWx1ZSwgcHRyVHlwZSwgTExWTUdldE5hbWUocHRyVmFsdWUsICJfY2FzdF9wdHIiKSk7Ci0rICAg ICAgICBwdHJWYWx1ZSA9IGN0eC0+Qml0Q2FzdEluc3QocHRyVmFsdWUsIHB0clR5cGUsIGxsdm06 OlR3aW5lKHB0clZhbHVlLT5nZXROYW1lKCkpICsgIl9jYXN0X3B0ciIpOwotIAotICAgICAgICAg aWYgKGluaXRFeHByICE9IE5VTEwpCi0gICAgICAgICAgICAgSW5pdFN5bWJvbChwdHJWYWx1ZSwg YWxsb2NUeXBlLCBpbml0RXhwciwgY3R4LCBwb3MpOwotZGlmZiAtLWdpdCBhL3NyYy9sbHZtdXRp bC5jcHAgYi9zcmMvbGx2bXV0aWwuY3BwCi1pbmRleCA5NzAxNzVkYmYuLmQwYmVjYjlmNSAxMDA2 NDQKLS0tLSBhL3NyYy9sbHZtdXRpbC5jcHAKLSsrKyBiL3NyYy9sbHZtdXRpbC5jcHAKLUBAIC0x NjA1LDIzICsxNjA1LDYgQEAgbGx2bTo6VmFsdWUgKkxMVk1TaHVmZmxlVmVjdG9ycyhsbHZtOjpW YWx1ZSAqdjEsIGxsdm06OlZhbHVlICp2MiwgaW50MzJfdCBzaHVmW10KLSAgICAgcmV0dXJuIG5l dyBsbHZtOjpTaHVmZmxlVmVjdG9ySW5zdCh2MSwgdjIsIHZlYywgInNodWZmbGUiLCBpbnNlcnRC ZWZvcmUpOwotIH0KLSAKLS1jb25zdCBjaGFyICpMTFZNR2V0TmFtZShsbHZtOjpWYWx1ZSAqdiwg Y29uc3QgY2hhciAqcykgewotLSAgICBpZiAodiA9PSBOVUxMKQotLSAgICAgICAgcmV0dXJuIHM7 Ci0tICAgIHN0ZDo6c3RyaW5nIHJldCA9IHN0ZDo6c3RyaW5nKHYtPmdldE5hbWUoKSk7Ci0tICAg IHJldCArPSBzOwotLSAgICByZXR1cm4gc3RyZHVwKHJldC5jX3N0cigpKTsKLS19Ci0tCi0tY29u c3QgY2hhciAqTExWTUdldE5hbWUoY29uc3QgY2hhciAqb3AsIGxsdm06OlZhbHVlICp2MSwgbGx2 bTo6VmFsdWUgKnYyKSB7Ci0tICAgIHN0ZDo6c3RyaW5nIHIgPSBvcDsKLS0gICAgciArPSAiXyI7 Ci0tICAgIHIgKz0gdjEtPmdldE5hbWUoKS5zdHIoKTsKLS0gICAgciArPSAiXyI7Ci0tICAgIHIg Kz0gdjItPmdldE5hbWUoKS5zdHIoKTsKLS0gICAgcmV0dXJuIHN0cmR1cChyLmNfc3RyKCkpOwot LX0KLS0KLSAjaWZkZWYgSVNQQ19HRU5YX0VOQUJMRUQKLSBib29sIGxJc1NWTUxvYWQobGx2bTo6 SW5zdHJ1Y3Rpb24gKmluc3QpIHsKLSAgICAgQXNzZXJ0KGluc3QpOwotZGlmZiAtLWdpdCBhL3Ny Yy9sbHZtdXRpbC5oIGIvc3JjL2xsdm11dGlsLmgKLWluZGV4IDQyY2NlNGQ4My4uMDdkMDg5YmI0 IDEwMDY0NAotLS0tIGEvc3JjL2xsdm11dGlsLmgKLSsrKyBiL3NyYy9sbHZtdXRpbC5oCi1AQCAt MzI4LDExICszMjgsNiBAQCBleHRlcm4gbGx2bTo6VmFsdWUgKkxMVk1Db25jYXRWZWN0b3JzKGxs dm06OlZhbHVlICp2MSwgbGx2bTo6VmFsdWUgKnYyLCBsbHZtOjpJbgotIGV4dGVybiBsbHZtOjpW YWx1ZSAqTExWTVNodWZmbGVWZWN0b3JzKGxsdm06OlZhbHVlICp2MSwgbGx2bTo6VmFsdWUgKnYy LCBpbnQzMl90IHNodWZbXSwgaW50IHNodWZTaXplLAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGxsdm06Okluc3RydWN0aW9uICppbnNlcnRCZWZvcmUpOwotIAotLS8q KiBVdGlsaXR5IHJvdXRpbmVzIHRvIGNvbmNhdCBzdHJpbmdzIHdpdGggdGhlIG5hbWVzIG9mIGV4 aXN0aW5nIHZhbHVlcyB0bwotLSAgICBjcmVhdGUgbWVhbmluZ2Z1bCBuZXcgbmFtZXMgZm9yIGlu c3RydWN0aW9uIHZhbHVlcy4KLS0qLwotLWV4dGVybiBjb25zdCBjaGFyICpMTFZNR2V0TmFtZShs bHZtOjpWYWx1ZSAqdiwgY29uc3QgY2hhciAqKTsKLS1leHRlcm4gY29uc3QgY2hhciAqTExWTUdl dE5hbWUoY29uc3QgY2hhciAqb3AsIGxsdm06OlZhbHVlICp2MSwgbGx2bTo6VmFsdWUgKnYyKTsK LSAjaWZkZWYgSVNQQ19HRU5YX0VOQUJMRUQKLSBlbnVtIEFkZHJlc3NTcGFjZSB7IExvY2FsLCBH bG9iYWwsIEV4dGVybmFsIH07Ci0gCi1kaWZmIC0tZ2l0IGEvc3JjL29wdC5jcHAgYi9zcmMvb3B0 LmNwcAotaW5kZXggNWIxYWM3YjYzLi45ZDZjYWUwNTggMTAwNjQ0Ci0tLS0gYS9zcmMvb3B0LmNw cAotKysrIGIvc3JjL29wdC5jcHAKLUBAIC0yNTcsNyArMjU3LDcgQEAgc3RhdGljIGJvb2wgbEdl dFNvdXJjZVBvc0Zyb21NZXRhZGF0YShjb25zdCBsbHZtOjpJbnN0cnVjdGlvbiAqaW5zdCwgU291 cmNlUG9zICoKLSAgICAgcmV0dXJuIHRydWU7Ci0gfQotIAotLXN0YXRpYyBsbHZtOjpJbnN0cnVj dGlvbiAqbENhbGxJbnN0KGxsdm06OkZ1bmN0aW9uICpmdW5jLCBsbHZtOjpWYWx1ZSAqYXJnMCwg bGx2bTo6VmFsdWUgKmFyZzEsIGNvbnN0IGNoYXIgKm5hbWUsCi0rc3RhdGljIGxsdm06Okluc3Ry dWN0aW9uICpsQ2FsbEluc3QobGx2bTo6RnVuY3Rpb24gKmZ1bmMsIGxsdm06OlZhbHVlICphcmcw LCBsbHZtOjpWYWx1ZSAqYXJnMSwgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUsCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmluc2VydEJlZm9y ZSA9IE5VTEwpIHsKLSAgICAgbGx2bTo6VmFsdWUgKmFyZ3NbMl0gPSB7YXJnMCwgYXJnMX07Ci0g ICAgIGxsdm06OkFycmF5UmVmPGxsdm06OlZhbHVlICo+IG5ld0FyZ0FycmF5KCZhcmdzWzBdLCAm YXJnc1syXSk7Ci1AQCAtMjY1LDIxICsyNjUsMjIgQEAgc3RhdGljIGxsdm06Okluc3RydWN0aW9u ICpsQ2FsbEluc3QobGx2bTo6RnVuY3Rpb24gKmZ1bmMsIGxsdm06OlZhbHVlICphcmcwLCBsbHYK LSB9Ci0gCi0gc3RhdGljIGxsdm06Okluc3RydWN0aW9uICpsQ2FsbEluc3QobGx2bTo6RnVuY3Rp b24gKmZ1bmMsIGxsdm06OlZhbHVlICphcmcwLCBsbHZtOjpWYWx1ZSAqYXJnMSwgbGx2bTo6VmFs dWUgKmFyZzIsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hh ciAqbmFtZSwgbGx2bTo6SW5zdHJ1Y3Rpb24gKmluc2VydEJlZm9yZSA9IE5VTEwpIHsKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSwg bGx2bTo6SW5zdHJ1Y3Rpb24gKmluc2VydEJlZm9yZSA9IE5VTEwpIHsKLSAgICAgbGx2bTo6VmFs dWUgKmFyZ3NbM10gPSB7YXJnMCwgYXJnMSwgYXJnMn07Ci0gICAgIGxsdm06OkFycmF5UmVmPGxs dm06OlZhbHVlICo+IG5ld0FyZ0FycmF5KCZhcmdzWzBdLCAmYXJnc1szXSk7Ci0gICAgIHJldHVy biBsbHZtOjpDYWxsSW5zdDo6Q3JlYXRlKGZ1bmMsIG5ld0FyZ0FycmF5LCBuYW1lLCBpbnNlcnRC ZWZvcmUpOwotIH0KLSAKLSBzdGF0aWMgbGx2bTo6SW5zdHJ1Y3Rpb24gKmxDYWxsSW5zdChsbHZt OjpGdW5jdGlvbiAqZnVuYywgbGx2bTo6VmFsdWUgKmFyZzAsIGxsdm06OlZhbHVlICphcmcxLCBs bHZtOjpWYWx1ZSAqYXJnMiwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBs bHZtOjpWYWx1ZSAqYXJnMywgY29uc3QgY2hhciAqbmFtZSwgbGx2bTo6SW5zdHJ1Y3Rpb24gKmlu c2VydEJlZm9yZSA9IE5VTEwpIHsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBsbHZtOjpWYWx1ZSAqYXJnMywgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUsCi0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmluc2VydEJlZm9y ZSA9IE5VTEwpIHsKLSAgICAgbGx2bTo6VmFsdWUgKmFyZ3NbNF0gPSB7YXJnMCwgYXJnMSwgYXJn MiwgYXJnM307Ci0gICAgIGxsdm06OkFycmF5UmVmPGxsdm06OlZhbHVlICo+IG5ld0FyZ0FycmF5 KCZhcmdzWzBdLCAmYXJnc1s0XSk7Ci0gICAgIHJldHVybiBsbHZtOjpDYWxsSW5zdDo6Q3JlYXRl KGZ1bmMsIG5ld0FyZ0FycmF5LCBuYW1lLCBpbnNlcnRCZWZvcmUpOwotIH0KLSAKLSBzdGF0aWMg bGx2bTo6SW5zdHJ1Y3Rpb24gKmxDYWxsSW5zdChsbHZtOjpGdW5jdGlvbiAqZnVuYywgbGx2bTo6 VmFsdWUgKmFyZzAsIGxsdm06OlZhbHVlICphcmcxLCBsbHZtOjpWYWx1ZSAqYXJnMiwKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpWYWx1ZSAqYXJnMywgbGx2bTo6 VmFsdWUgKmFyZzQsIGNvbnN0IGNoYXIgKm5hbWUsCi0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgbGx2bTo6VmFsdWUgKmFyZzMsIGxsdm06OlZhbHVlICphcmc0LCBjb25zdCBs bHZtOjpUd2luZSAmbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBs bHZtOjpJbnN0cnVjdGlvbiAqaW5zZXJ0QmVmb3JlID0gTlVMTCkgewotICAgICBsbHZtOjpWYWx1 ZSAqYXJnc1s1XSA9IHthcmcwLCBhcmcxLCBhcmcyLCBhcmczLCBhcmc0fTsKLSAgICAgbGx2bTo6 QXJyYXlSZWY8bGx2bTo6VmFsdWUgKj4gbmV3QXJnQXJyYXkoJmFyZ3NbMF0sICZhcmdzWzVdKTsK LUBAIC0yODcsNyArMjg4LDcgQEAgc3RhdGljIGxsdm06Okluc3RydWN0aW9uICpsQ2FsbEluc3Qo bGx2bTo6RnVuY3Rpb24gKmZ1bmMsIGxsdm06OlZhbHVlICphcmcwLCBsbHYKLSB9Ci0gCi0gc3Rh dGljIGxsdm06Okluc3RydWN0aW9uICpsQ2FsbEluc3QobGx2bTo6RnVuY3Rpb24gKmZ1bmMsIGxs dm06OlZhbHVlICphcmcwLCBsbHZtOjpWYWx1ZSAqYXJnMSwgbGx2bTo6VmFsdWUgKmFyZzIsCi0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6VmFsdWUgKmFyZzMsIGxs dm06OlZhbHVlICphcmc0LCBsbHZtOjpWYWx1ZSAqYXJnNSwgY29uc3QgY2hhciAqbmFtZSwKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpWYWx1ZSAqYXJnMywgbGx2 bTo6VmFsdWUgKmFyZzQsIGxsdm06OlZhbHVlICphcmc1LCBjb25zdCBsbHZtOjpUd2luZSAmbmFt ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpJbnN0cnVjdGlv biAqaW5zZXJ0QmVmb3JlID0gTlVMTCkgewotICAgICBsbHZtOjpWYWx1ZSAqYXJnc1s2XSA9IHth cmcwLCBhcmcxLCBhcmcyLCBhcmczLCBhcmc0LCBhcmc1fTsKLSAgICAgbGx2bTo6QXJyYXlSZWY8 bGx2bTo6VmFsdWUgKj4gbmV3QXJnQXJyYXkoJmFyZ3NbMF0sICZhcmdzWzZdKTsKLUBAIC05OTEs MjMgKzk5MiwyNCBAQCBib29sIEludHJpbnNpY3NPcHQ6OnJ1bk9uQmFzaWNCbG9jayhsbHZtOjpC YXNpY0Jsb2NrICZiYikgewotICAgICAgICAgICAgICAgICBsbHZtOjpUeXBlICpyZXR1cm5UeXBl ID0gY2FsbEluc3QtPmdldFR5cGUoKTsKLSAgICAgICAgICAgICAgICAgQXNzZXJ0KGxsdm06Omlz YTxsbHZtOjpWZWN0b3JUeXBlPihyZXR1cm5UeXBlKSk7Ci0gICAgICAgICAgICAgICAgIC8vIGNh c3QgdGhlIGk4ICogdG8gdGhlIGFwcHJvcHJpYXRlIHR5cGUKLS0gICAgICAgICAgICAgICAgY29u c3QgY2hhciAqbmFtZSA9IExMVk1HZXROYW1lKGNhbGxJbnN0LT5nZXRBcmdPcGVyYW5kKDApLCAi X2Nhc3QiKTsKLS0gICAgICAgICAgICAgICAgbGx2bTo6VmFsdWUgKmNhc3RQdHIgPSBuZXcgbGx2 bTo6Qml0Q2FzdEluc3QoY2FsbEluc3QtPmdldEFyZ09wZXJhbmQoMCksCi0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06OlBv aW50ZXJUeXBlOjpnZXQocmV0dXJuVHlwZSwgMCksIG5hbWUsIGNhbGxJbnN0KTsKLSsgICAgICAg ICAgICAgICAgbGx2bTo6VmFsdWUgKmNhc3RQdHIgPQotKyAgICAgICAgICAgICAgICAgICAgbmV3 IGxsdm06OkJpdENhc3RJbnN0KGNhbGxJbnN0LT5nZXRBcmdPcGVyYW5kKDApLCBsbHZtOjpQb2lu dGVyVHlwZTo6Z2V0KHJldHVyblR5cGUsIDApLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGxsdm06OlR3aW5lKGNhbGxJbnN0LT5nZXRBcmdPcGVyYW5kKDApLT5n ZXROYW1lKCkpICsgIl9jYXN0IiwgY2FsbEluc3QpOwotICAgICAgICAgICAgICAgICBsQ29weU1l dGFkYXRhKGNhc3RQdHIsIGNhbGxJbnN0KTsKLSAgICAgICAgICAgICAgICAgaW50IGFsaWduOwot ICAgICAgICAgICAgICAgICBpZiAoZy0+b3B0LmZvcmNlQWxpZ25lZE1lbW9yeSkKLSAgICAgICAg ICAgICAgICAgICAgIGFsaWduID0gZy0+dGFyZ2V0LT5nZXROYXRpdmVWZWN0b3JBbGlnbm1lbnQo KTsKLSAgICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICAgYWxpZ24gPSBj YWxsSW5zdC0+Z2V0Q2FsbGVkRnVuY3Rpb24oKSA9PSBhdnhNYXNrZWRMb2FkMzIgPyA0IDogODsK LS0gICAgICAgICAgICAgICAgbmFtZSA9IExMVk1HZXROYW1lKGNhbGxJbnN0LT5nZXRBcmdPcGVy YW5kKDApLCAiX2xvYWQiKTsKLSAjaWYgSVNQQ19MTFZNX1ZFUlNJT04gPT0gSVNQQ19MTFZNXzEw XzAKLS0gICAgICAgICAgICAgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmxvYWRJbnN0ID0gbmV3IGxs dm06OkxvYWRJbnN0KGNhc3RQdHIsIG5hbWUsIGZhbHNlIC8qIG5vdCB2b2xhdGlsZSAqLywKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGxsdm06Ok1heWJlQWxpZ24oYWxpZ24pLCAobGx2bTo6SW5zdHJ1Y3Rpb24gKilOVUxM KTsKLSsgICAgICAgICAgICAgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmxvYWRJbnN0ID0KLSsgICAg ICAgICAgICAgICAgICAgIG5ldyBsbHZtOjpMb2FkSW5zdChjYXN0UHRyLCBsbHZtOjpUd2luZShj YWxsSW5zdC0+Z2V0QXJnT3BlcmFuZCgwKS0+Z2V0TmFtZSgpKSArICJfbG9hZCIsCi0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UgLyogbm90IHZvbGF0aWxlICov LCBsbHZtOjpNYXliZUFsaWduKGFsaWduKSwgKGxsdm06Okluc3RydWN0aW9uICopTlVMTCk7Ci0g I2Vsc2UKLSAgICAgICAgICAgICAgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmxvYWRJbnN0ID0gbmV3 IGxsdm06OkxvYWRJbnN0KAotLSAgICAgICAgICAgICAgICAgICAgbGx2bTo6ZHluX2Nhc3Q8bGx2 bTo6UG9pbnRlclR5cGU+KGNhc3RQdHItPmdldFR5cGUoKSktPmdldFBvaW50ZXJFbGVtZW50VHlw ZSgpLCBjYXN0UHRyLCBuYW1lLAotLSAgICAgICAgICAgICAgICAgICAgZmFsc2UgLyogbm90IHZv bGF0aWxlICovLCBsbHZtOjpNYXliZUFsaWduKGFsaWduKS52YWx1ZU9yT25lKCksIChsbHZtOjpJ bnN0cnVjdGlvbiAqKU5VTEwpOwotKyAgICAgICAgICAgICAgICAgICAgbGx2bTo6ZHluX2Nhc3Q8 bGx2bTo6UG9pbnRlclR5cGU+KGNhc3RQdHItPmdldFR5cGUoKSktPmdldFBvaW50ZXJFbGVtZW50 VHlwZSgpLCBjYXN0UHRyLAotKyAgICAgICAgICAgICAgICAgICAgbGx2bTo6VHdpbmUoY2FsbElu c3QtPmdldEFyZ09wZXJhbmQoMCktPmdldE5hbWUoKSkgKyAiX2xvYWQiLCBmYWxzZSAvKiBub3Qg dm9sYXRpbGUgKi8sCi0rICAgICAgICAgICAgICAgICAgICBsbHZtOjpNYXliZUFsaWduKGFsaWdu KS52YWx1ZU9yT25lKCksIChsbHZtOjpJbnN0cnVjdGlvbiAqKU5VTEwpOwotICNlbmRpZgotICAg ICAgICAgICAgICAgICBsQ29weU1ldGFkYXRhKGxvYWRJbnN0LCBjYWxsSW5zdCk7Ci0gICAgICAg ICAgICAgICAgIGxsdm06OlJlcGxhY2VJbnN0V2l0aEluc3QoY2FsbEluc3QsIGxvYWRJbnN0KTsK LUBAIC0xMDI4LDkgKzEwMzAsOSBAQCBib29sIEludHJpbnNpY3NPcHQ6OnJ1bk9uQmFzaWNCbG9j ayhsbHZtOjpCYXNpY0Jsb2NrICZiYikgewotICAgICAgICAgICAgICAgICAvLyBhbGwgbGFuZXMg c3RvcmluZywgc28gcmVwbGFjZSB3aXRoIGEgcmVndWxhciBzdG9yZQotICAgICAgICAgICAgICAg ICBsbHZtOjpWYWx1ZSAqcnZhbHVlID0gY2FsbEluc3QtPmdldEFyZ09wZXJhbmQoMik7Ci0gICAg ICAgICAgICAgICAgIGxsdm06OlR5cGUgKnN0b3JlVHlwZSA9IHJ2YWx1ZS0+Z2V0VHlwZSgpOwot LSAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpuYW1lID0gTExWTUdldE5hbWUoY2FsbEluc3Qt PmdldEFyZ09wZXJhbmQoMCksICJfcHRyY2FzdCIpOwotLSAgICAgICAgICAgICAgICBsbHZtOjpW YWx1ZSAqY2FzdFB0ciA9IG5ldyBsbHZtOjpCaXRDYXN0SW5zdChjYWxsSW5zdC0+Z2V0QXJnT3Bl cmFuZCgwKSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgbGx2bTo6UG9pbnRlclR5cGU6OmdldChzdG9yZVR5cGUsIDApLCBuYW1l LCBjYWxsSW5zdCk7Ci0rICAgICAgICAgICAgICAgIGxsdm06OlZhbHVlICpjYXN0UHRyID0KLSsg ICAgICAgICAgICAgICAgICAgIG5ldyBsbHZtOjpCaXRDYXN0SW5zdChjYWxsSW5zdC0+Z2V0QXJn T3BlcmFuZCgwKSwgbGx2bTo6UG9pbnRlclR5cGU6OmdldChzdG9yZVR5cGUsIDApLAotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06OlR3aW5lKGNhbGxJbnN0 LT5nZXRBcmdPcGVyYW5kKDApLT5nZXROYW1lKCkpICsgIl9wdHJjYXN0IiwgY2FsbEluc3QpOwot ICAgICAgICAgICAgICAgICBsQ29weU1ldGFkYXRhKGNhc3RQdHIsIGNhbGxJbnN0KTsKLSAKLSAg ICAgICAgICAgICAgICAgaW50IGFsaWduOwotQEAgLTEzMzksOCArMTM0MSw4IEBAIHN0YXRpYyBs bHZtOjpWYWx1ZSAqbEdldEJhc2VQb2ludGVyKGxsdm06OlZhbHVlICp2LCBsbHZtOjpJbnN0cnVj dGlvbiAqaW5zZXJ0QmVmCi0gICAgICAgICBpZiAodCA9PSBOVUxMKSB7Ci0gICAgICAgICAgICAg cmV0dXJuIE5VTEw7Ci0gICAgICAgICB9IGVsc2UgewotLSAgICAgICAgICAgIHJldHVybiBsbHZt OjpDYXN0SW5zdDo6Q3JlYXRlKGNpLT5nZXRPcGNvZGUoKSwgdCwgY2ktPmdldFR5cGUoKS0+Z2V0 U2NhbGFyVHlwZSgpLCBMTFZNR2V0TmFtZSh0LCAiX2Nhc3QiKSwKLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBpbnNlcnRCZWZvcmUpOwotKyAgICAgICAgICAgIHJl dHVybiBsbHZtOjpDYXN0SW5zdDo6Q3JlYXRlKGNpLT5nZXRPcGNvZGUoKSwgdCwgY2ktPmdldFR5 cGUoKS0+Z2V0U2NhbGFyVHlwZSgpLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGxsdm06OlR3aW5lKHQtPmdldE5hbWUoKSkgKyAiX2Nhc3QiLCBpbnNlcnRCZWZv cmUpOwotICAgICAgICAgfQotICAgICB9Ci0gCi1AQCAtMTU4MywxMyArMTU4NSwxMyBAQCBzdGF0 aWMgdm9pZCBsRXh0cmFjdENvbnN0YW50T2Zmc2V0KGxsdm06OlZhbHVlICp2ZWMsIGxsdm06OlZh bHVlICoqY29uc3RPZmZzZXQsCi0gICAgICAgICBpZiAoY28gPT0gTlVMTCkKLSAgICAgICAgICAg ICAqY29uc3RPZmZzZXQgPSBOVUxMOwotICAgICAgICAgZWxzZQotLSAgICAgICAgICAgICpjb25z dE9mZnNldCA9Ci0tICAgICAgICAgICAgICAgIGxsdm06OkNhc3RJbnN0OjpDcmVhdGUoY2FzdC0+ Z2V0T3Bjb2RlKCksIGNvLCBjYXN0LT5nZXRUeXBlKCksIExMVk1HZXROYW1lKGNvLCAiX2Nhc3Qi KSwgaW5zZXJ0QmVmb3JlKTsKLSsgICAgICAgICAgICAqY29uc3RPZmZzZXQgPSBsbHZtOjpDYXN0 SW5zdDo6Q3JlYXRlKGNhc3QtPmdldE9wY29kZSgpLCBjbywgY2FzdC0+Z2V0VHlwZSgpLAotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6VHdp bmUoY28tPmdldE5hbWUoKSkgKyAiX2Nhc3QiLCBpbnNlcnRCZWZvcmUpOwotICAgICAgICAgaWYg KHZvID09IE5VTEwpCi0gICAgICAgICAgICAgKnZhcmlhYmxlT2Zmc2V0ID0gTlVMTDsKLSAgICAg ICAgIGVsc2UKLS0gICAgICAgICAgICAqdmFyaWFibGVPZmZzZXQgPQotLSAgICAgICAgICAgICAg ICBsbHZtOjpDYXN0SW5zdDo6Q3JlYXRlKGNhc3QtPmdldE9wY29kZSgpLCB2bywgY2FzdC0+Z2V0 VHlwZSgpLCBMTFZNR2V0TmFtZSh2bywgIl9jYXN0IiksIGluc2VydEJlZm9yZSk7Ci0rICAgICAg ICAgICAgKnZhcmlhYmxlT2Zmc2V0ID0gbGx2bTo6Q2FzdEluc3Q6OkNyZWF0ZShjYXN0LT5nZXRP cGNvZGUoKSwgdm8sIGNhc3QtPmdldFR5cGUoKSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06OlR3aW5lKHZvLT5nZXROYW1lKCkpICsg Il9jYXN0IiwgaW5zZXJ0QmVmb3JlKTsKLSAgICAgICAgIHJldHVybjsKLSAgICAgfQotIAotQEAg LTE2MDgsMTYgKzE2MTAsMTggQEAgc3RhdGljIHZvaWQgbEV4dHJhY3RDb25zdGFudE9mZnNldChs bHZtOjpWYWx1ZSAqdmVjLCBsbHZtOjpWYWx1ZSAqKmNvbnN0T2Zmc2V0LAotICAgICAgICAgICAg IGVsc2UgaWYgKGMxID09IE5VTEwgfHwgbGx2bTo6aXNhPGxsdm06OkNvbnN0YW50QWdncmVnYXRl WmVybz4oYzEpKQotICAgICAgICAgICAgICAgICAqY29uc3RPZmZzZXQgPSBjMDsKLSAgICAgICAg ICAgICBlbHNlCi0tICAgICAgICAgICAgICAgICpjb25zdE9mZnNldCA9IGxsdm06OkJpbmFyeU9w ZXJhdG9yOjpDcmVhdGUobGx2bTo6SW5zdHJ1Y3Rpb246OkFkZCwgYzAsIGMxLCBMTFZNR2V0TmFt ZSgiYWRkIiwgYzAsIGMxKSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBpbnNlcnRCZWZvcmUpOwotKyAgICAgICAgICAgICAgICAq Y29uc3RPZmZzZXQgPSBsbHZtOjpCaW5hcnlPcGVyYXRvcjo6Q3JlYXRlKAotKyAgICAgICAgICAg ICAgICAgICAgbGx2bTo6SW5zdHJ1Y3Rpb246OkFkZCwgYzAsIGMxLCAoKGxsdm06OlR3aW5lKCJh ZGRfIikgKyBjMC0+Z2V0TmFtZSgpKSArICJfIikgKyBjMS0+Z2V0TmFtZSgpLAotKyAgICAgICAg ICAgICAgICAgICAgaW5zZXJ0QmVmb3JlKTsKLSAKLSAgICAgICAgICAgICBpZiAodjAgPT0gTlVM TCB8fCBsbHZtOjppc2E8bGx2bTo6Q29uc3RhbnRBZ2dyZWdhdGVaZXJvPih2MCkpCi0gICAgICAg ICAgICAgICAgICp2YXJpYWJsZU9mZnNldCA9IHYxOwotICAgICAgICAgICAgIGVsc2UgaWYgKHYx ID09IE5VTEwgfHwgbGx2bTo6aXNhPGxsdm06OkNvbnN0YW50QWdncmVnYXRlWmVybz4odjEpKQot ICAgICAgICAgICAgICAgICAqdmFyaWFibGVPZmZzZXQgPSB2MDsKLSAgICAgICAgICAgICBlbHNl Ci0tICAgICAgICAgICAgICAgICp2YXJpYWJsZU9mZnNldCA9IGxsdm06OkJpbmFyeU9wZXJhdG9y OjpDcmVhdGUobGx2bTo6SW5zdHJ1Y3Rpb246OkFkZCwgdjAsIHYxLAotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExMVk1HZXRO YW1lKCJhZGQiLCB2MCwgdjEpLCBpbnNlcnRCZWZvcmUpOwotKyAgICAgICAgICAgICAgICAqdmFy aWFibGVPZmZzZXQgPSBsbHZtOjpCaW5hcnlPcGVyYXRvcjo6Q3JlYXRlKAotKyAgICAgICAgICAg ICAgICAgICAgbGx2bTo6SW5zdHJ1Y3Rpb246OkFkZCwgdjAsIHYxLCAoKGxsdm06OlR3aW5lKCJh ZGRfIikgKyB2MC0+Z2V0TmFtZSgpKSArICJfIikgKyB2MS0+Z2V0TmFtZSgpLAotKyAgICAgICAg ICAgICAgICAgICAgaW5zZXJ0QmVmb3JlKTsKLSAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAg ICB9IGVsc2UgaWYgKGJvcC0+Z2V0T3Bjb2RlKCkgPT0gbGx2bTo6SW5zdHJ1Y3Rpb246OlNobCkg ewotICAgICAgICAgICAgIGxFeHRyYWN0Q29uc3RhbnRPZmZzZXQob3AwLCAmYzAsICZ2MCwgaW5z ZXJ0QmVmb3JlKTsKLUBAIC0xNjMzLDEwICsxNjM3LDEyIEBAIHN0YXRpYyB2b2lkIGxFeHRyYWN0 Q29uc3RhbnRPZmZzZXQobGx2bTo6VmFsdWUgKnZlYywgbGx2bTo6VmFsdWUgKipjb25zdE9mZnNl dCwKLSAgICAgICAgICAgICAgICAgKmNvbnN0T2Zmc2V0ID0gdmVjOwotICAgICAgICAgICAgICAg ICAqdmFyaWFibGVPZmZzZXQgPSBOVUxMOwotICAgICAgICAgICAgIH0gZWxzZSB7Ci0tICAgICAg ICAgICAgICAgICpjb25zdE9mZnNldCA9IGxsdm06OkJpbmFyeU9wZXJhdG9yOjpDcmVhdGUobGx2 bTo6SW5zdHJ1Y3Rpb246OlNobCwgYzAsIGMxLCBMTFZNR2V0TmFtZSgic2hsIiwgYzAsIGMxKSwK LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBpbnNlcnRCZWZvcmUpOwotLSAgICAgICAgICAgICAgICAqdmFyaWFibGVPZmZzZXQgPSBs bHZtOjpCaW5hcnlPcGVyYXRvcjo6Q3JlYXRlKGxsdm06Okluc3RydWN0aW9uOjpTaGwsIHYwLCBj MSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBMTFZNR2V0TmFtZSgic2hsIiwgdjAsIGMxKSwgaW5zZXJ0QmVmb3JlKTsKLSsg ICAgICAgICAgICAgICAgKmNvbnN0T2Zmc2V0ID0gbGx2bTo6QmluYXJ5T3BlcmF0b3I6OkNyZWF0 ZSgKLSsgICAgICAgICAgICAgICAgICAgIGxsdm06Okluc3RydWN0aW9uOjpTaGwsIGMwLCBjMSwg KChsbHZtOjpUd2luZSgic2hsXyIpICsgYzAtPmdldE5hbWUoKSkgKyAiXyIpICsgYzEtPmdldE5h bWUoKSwKLSsgICAgICAgICAgICAgICAgICAgIGluc2VydEJlZm9yZSk7Ci0rICAgICAgICAgICAg ICAgICp2YXJpYWJsZU9mZnNldCA9IGxsdm06OkJpbmFyeU9wZXJhdG9yOjpDcmVhdGUoCi0rICAg ICAgICAgICAgICAgICAgICBsbHZtOjpJbnN0cnVjdGlvbjo6U2hsLCB2MCwgYzEsICgobGx2bTo6 VHdpbmUoInNobF8iKSArIHYwLT5nZXROYW1lKCkpICsgIl8iKSArIGMxLT5nZXROYW1lKCksCi0r ICAgICAgICAgICAgICAgICAgICBpbnNlcnRCZWZvcmUpOwotICAgICAgICAgICAgIH0KLSAgICAg ICAgICAgICByZXR1cm47Ci0gICAgICAgICB9IGVsc2UgaWYgKGJvcC0+Z2V0T3Bjb2RlKCkgPT0g bGx2bTo6SW5zdHJ1Y3Rpb246Ok11bCkgewotQEAgLTE2NDgsMjUgKzE2NTQsMzAgQEAgc3RhdGlj IHZvaWQgbEV4dHJhY3RDb25zdGFudE9mZnNldChsbHZtOjpWYWx1ZSAqdmVjLCBsbHZtOjpWYWx1 ZSAqKmNvbnN0T2Zmc2V0LAotICAgICAgICAgICAgIC8vIE5vdGUgdGhhdCB0aGUgZmlyc3QgdGVy bSBpcyBhIGNvbnN0YW50IGFuZCB0aGUgbGFzdCB0aHJlZSBhcmUKLSAgICAgICAgICAgICAvLyB2 YXJpYWJsZS4KLSAgICAgICAgICAgICBpZiAoYzAgIT0gTlVMTCAmJiBjMSAhPSBOVUxMKQotLSAg ICAgICAgICAgICAgICAqY29uc3RPZmZzZXQgPSBsbHZtOjpCaW5hcnlPcGVyYXRvcjo6Q3JlYXRl KGxsdm06Okluc3RydWN0aW9uOjpNdWwsIGMwLCBjMSwgTExWTUdldE5hbWUoIm11bCIsIGMwLCBj MSksCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgaW5zZXJ0QmVmb3JlKTsKLSsgICAgICAgICAgICAgICAgKmNvbnN0T2Zmc2V0ID0g bGx2bTo6QmluYXJ5T3BlcmF0b3I6OkNyZWF0ZSgKLSsgICAgICAgICAgICAgICAgICAgIGxsdm06 Okluc3RydWN0aW9uOjpNdWwsIGMwLCBjMSwgKChsbHZtOjpUd2luZSgibXVsXyIpICsgYzAtPmdl dE5hbWUoKSkgKyAiXyIpICsgYzEtPmdldE5hbWUoKSwKLSsgICAgICAgICAgICAgICAgICAgIGlu c2VydEJlZm9yZSk7Ci0gICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAqY29uc3RP ZmZzZXQgPSBOVUxMOwotIAotICAgICAgICAgICAgIGxsdm06OlZhbHVlICp2YSA9IE5VTEwsICp2 YiA9IE5VTEwsICp2YyA9IE5VTEw7Ci0gICAgICAgICAgICAgaWYgKHYwICE9IE5VTEwgJiYgYzEg IT0gTlVMTCkKLS0gICAgICAgICAgICAgICAgdmEgPSBsbHZtOjpCaW5hcnlPcGVyYXRvcjo6Q3Jl YXRlKGxsdm06Okluc3RydWN0aW9uOjpNdWwsIHYwLCBjMSwgTExWTUdldE5hbWUoIm11bCIsIHYw LCBjMSksCi0rICAgICAgICAgICAgICAgIHZhID0gbGx2bTo6QmluYXJ5T3BlcmF0b3I6OkNyZWF0 ZShsbHZtOjpJbnN0cnVjdGlvbjo6TXVsLCB2MCwgYzEsCi0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxsdm06OlR3aW5lKCJtdWxfIikgKyB2MC0+ Z2V0TmFtZSgpKSArICJfIikgKyBjMS0+Z2V0TmFtZSgpLAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5zZXJ0QmVmb3JlKTsKLSAgICAgICAgICAg ICBpZiAoYzAgIT0gTlVMTCAmJiB2MSAhPSBOVUxMKQotLSAgICAgICAgICAgICAgICB2YiA9IGxs dm06OkJpbmFyeU9wZXJhdG9yOjpDcmVhdGUobGx2bTo6SW5zdHJ1Y3Rpb246Ok11bCwgYzAsIHYx LCBMTFZNR2V0TmFtZSgibXVsIiwgYzAsIHYxKSwKLSsgICAgICAgICAgICAgICAgdmIgPSBsbHZt OjpCaW5hcnlPcGVyYXRvcjo6Q3JlYXRlKGxsdm06Okluc3RydWN0aW9uOjpNdWwsIGMwLCB2MSwK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobGx2 bTo6VHdpbmUoIm11bF8iKSArIGMwLT5nZXROYW1lKCkpICsgIl8iKSArIHYxLT5nZXROYW1lKCks Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnNl cnRCZWZvcmUpOwotICAgICAgICAgICAgIGlmICh2MCAhPSBOVUxMICYmIHYxICE9IE5VTEwpCi0t ICAgICAgICAgICAgICAgIHZjID0gbGx2bTo6QmluYXJ5T3BlcmF0b3I6OkNyZWF0ZShsbHZtOjpJ bnN0cnVjdGlvbjo6TXVsLCB2MCwgdjEsIExMVk1HZXROYW1lKCJtdWwiLCB2MCwgdjEpLAotKyAg ICAgICAgICAgICAgICB2YyA9IGxsdm06OkJpbmFyeU9wZXJhdG9yOjpDcmVhdGUobGx2bTo6SW5z dHJ1Y3Rpb246Ok11bCwgdjAsIHYxLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKChsbHZtOjpUd2luZSgibXVsXyIpICsgdjAtPmdldE5hbWUoKSkg KyAiXyIpICsgdjEtPmdldE5hbWUoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGluc2VydEJlZm9yZSk7Ci0gCi0gICAgICAgICAgICAgbGx2bTo6 VmFsdWUgKnZhYiA9IE5VTEw7Ci0gICAgICAgICAgICAgaWYgKHZhICE9IE5VTEwgJiYgdmIgIT0g TlVMTCkKLS0gICAgICAgICAgICAgICAgdmFiID0gbGx2bTo6QmluYXJ5T3BlcmF0b3I6OkNyZWF0 ZShsbHZtOjpJbnN0cnVjdGlvbjo6QWRkLCB2YSwgdmIsIExMVk1HZXROYW1lKCJhZGQiLCB2YSwg dmIpLAotKyAgICAgICAgICAgICAgICB2YWIgPSBsbHZtOjpCaW5hcnlPcGVyYXRvcjo6Q3JlYXRl KGxsdm06Okluc3RydWN0aW9uOjpBZGQsIHZhLCB2YiwKLSsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxsdm06OlR3aW5lKCJhZGRfIikgKyB2YS0+ Z2V0TmFtZSgpKSArICJfIikgKyB2Yi0+Z2V0TmFtZSgpLAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluc2VydEJlZm9yZSk7Ci0gICAgICAgICAg ICAgZWxzZSBpZiAodmEgIT0gTlVMTCkKLSAgICAgICAgICAgICAgICAgdmFiID0gdmE7Ci1AQCAt MTY3NCw4ICsxNjg1LDkgQEAgc3RhdGljIHZvaWQgbEV4dHJhY3RDb25zdGFudE9mZnNldChsbHZt OjpWYWx1ZSAqdmVjLCBsbHZtOjpWYWx1ZSAqKmNvbnN0T2Zmc2V0LAotICAgICAgICAgICAgICAg ICB2YWIgPSB2YjsKLSAKLSAgICAgICAgICAgICBpZiAodmFiICE9IE5VTEwgJiYgdmMgIT0gTlVM TCkKLS0gICAgICAgICAgICAgICAgKnZhcmlhYmxlT2Zmc2V0ID0gbGx2bTo6QmluYXJ5T3BlcmF0 b3I6OkNyZWF0ZShsbHZtOjpJbnN0cnVjdGlvbjo6QWRkLCB2YWIsIHZjLAotLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExMVk1H ZXROYW1lKCJhZGQiLCB2YWIsIHZjKSwgaW5zZXJ0QmVmb3JlKTsKLSsgICAgICAgICAgICAgICAg KnZhcmlhYmxlT2Zmc2V0ID0gbGx2bTo6QmluYXJ5T3BlcmF0b3I6OkNyZWF0ZSgKLSsgICAgICAg ICAgICAgICAgICAgIGxsdm06Okluc3RydWN0aW9uOjpBZGQsIHZhYiwgdmMsICgobGx2bTo6VHdp bmUoImFkZF8iKSArIHZhYi0+Z2V0TmFtZSgpKSArICJfIikgKyB2Yy0+Z2V0TmFtZSgpLAotKyAg ICAgICAgICAgICAgICAgICAgaW5zZXJ0QmVmb3JlKTsKLSAgICAgICAgICAgICBlbHNlIGlmICh2 YWIgIT0gTlVMTCkKLSAgICAgICAgICAgICAgICAgKnZhcmlhYmxlT2Zmc2V0ID0gdmFiOwotICAg ICAgICAgICAgIGVsc2UKLUBAIC0xOTQzLDcgKzE5NTUsNyBAQCBzdGF0aWMgYm9vbCBsT2Zmc2V0 czMyQml0U2FmZShsbHZtOjpWYWx1ZSAqKnZhcmlhYmxlT2Zmc2V0UHRyLCBsbHZtOjpWYWx1ZSAq KmNvbgotICAgICAgICAgICAgIC8vIGFsbCB6ZXJvcyAoaS5lLiBhIENvbnN0YW50QWdncmVnYXRl WmVybywgYnV0IGp1c3QgaW4gY2FzZSwKLSAgICAgICAgICAgICAvLyBkbyB0aGUgbW9yZSBnZW5l cmFsIGNoZWNrIHdpdGggbFZlY3RvcklzMzJCaXRJbnRzKCkuCi0gICAgICAgICAgICAgdmFyaWFi bGVPZmZzZXQgPSBuZXcgbGx2bTo6VHJ1bmNJbnN0KHZhcmlhYmxlT2Zmc2V0LCBMTFZNVHlwZXM6 OkludDMyVmVjdG9yVHlwZSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgTExWTUdldE5hbWUodmFyaWFibGVPZmZzZXQsICJfdHJ1bmMiKSwgaW5zZXJ0 QmVmb3JlKTsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgbGx2bTo6VHdpbmUodmFyaWFibGVPZmZzZXQtPmdldE5hbWUoKSkgKyAiX3RydW5jIiwgaW5z ZXJ0QmVmb3JlKTsKLSAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0g ICAgIH0KLUBAIC0xOTUyLDcgKzE5NjQsNyBAQCBzdGF0aWMgYm9vbCBsT2Zmc2V0czMyQml0U2Fm ZShsbHZtOjpWYWx1ZSAqKnZhcmlhYmxlT2Zmc2V0UHRyLCBsbHZtOjpWYWx1ZSAqKmNvbgotICAg ICAgICAgaWYgKGxWZWN0b3JJczMyQml0SW50cyhjb25zdE9mZnNldCkpIHsKLSAgICAgICAgICAg ICAvLyBUcnVuY2F0ZSB0aGVtIHNvIHdlIGhhdmUgYSAzMi1iaXQgdmVjdG9yIHR5cGUgZm9yIHRo ZW0uCi0gICAgICAgICAgICAgY29uc3RPZmZzZXQgPSBuZXcgbGx2bTo6VHJ1bmNJbnN0KGNvbnN0 T2Zmc2V0LCBMTFZNVHlwZXM6OkludDMyVmVjdG9yVHlwZSwKLS0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgTExWTUdldE5hbWUoY29uc3RPZmZzZXQsICJfdHJ1 bmMiKSwgaW5zZXJ0QmVmb3JlKTsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgbGx2bTo6VHdpbmUoY29uc3RPZmZzZXQtPmdldE5hbWUoKSkgKyAiX3RydW5j IiwgaW5zZXJ0QmVmb3JlKTsKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgLy8gRklY TUU6IG90aGVyd2lzZSB3ZSBqdXN0IGFzc3VtZSB0aGF0IGFsbCBjb25zdGFudCBvZmZzZXRzCi0g ICAgICAgICAgICAgLy8gY2FuIGFjdHVhbGx5IGFsd2F5cyBmaXQgaW50byAzMi1iaXRzLi4uICAo VGhpcyBjb3VsZCBiZQotQEAgLTE5NjMsNyArMTk3NSw3IEBAIHN0YXRpYyBib29sIGxPZmZzZXRz MzJCaXRTYWZlKGxsdm06OlZhbHVlICoqdmFyaWFibGVPZmZzZXRQdHIsIGxsdm06OlZhbHVlICoq Y29uCi0gICAgICAgICAgICAgLy8gbGx2bTo6Q29uc3RhbnRGb2xkSW5zdHJ1Y3Rpb24oKSBkb2Vz bid0IHNlZW0gdG8gYmUgZG9pbmcKLSAgICAgICAgICAgICAvLyBlbm91Z2ggZm9yIHVzIGluIHNv bWUgY2FzZXMgaWYgd2UgY2FsbCBpdCBmcm9tIGhlcmUuCi0gICAgICAgICAgICAgY29uc3RPZmZz ZXQgPSBuZXcgbGx2bTo6VHJ1bmNJbnN0KGNvbnN0T2Zmc2V0LCBMTFZNVHlwZXM6OkludDMyVmVj dG9yVHlwZSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg TExWTUdldE5hbWUoY29uc3RPZmZzZXQsICJfdHJ1bmMiKSwgaW5zZXJ0QmVmb3JlKTsKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6VHdpbmUoY29u c3RPZmZzZXQtPmdldE5hbWUoKSkgKyAiX3RydW5jIiwgaW5zZXJ0QmVmb3JlKTsKLSAgICAgICAg IH0KLSAgICAgfQotIAotQEAgLTIwMTIsOCArMjAyNCw4IEBAIHN0YXRpYyBib29sIGxPZmZzZXRz MzJCaXRTYWZlKGxsdm06OlZhbHVlICoqb2Zmc2V0UHRyLCBsbHZtOjpJbnN0cnVjdGlvbiAqaW5z ZXJ0Ci0gCi0gICAgICAgICAvLyBBbHRlcm5hdGl2ZWx5LCBvZmZzZXQgY291bGQgYmUgYSBzZXF1 ZW5jZSBvZiBhZGRzIHRlcm1pbmF0aW5nCi0gICAgICAgICAvLyBpbiBzYWZlIGNvbnN0YW50IHZl Y3RvcnMgb3IgYSBTRXh0LgotLSAgICAgICAgKm9mZnNldFB0ciA9Ci0tICAgICAgICAgICAgbmV3 IGxsdm06OlRydW5jSW5zdChvZmZzZXQsIExMVk1UeXBlczo6SW50MzJWZWN0b3JUeXBlLCBMTFZN R2V0TmFtZShvZmZzZXQsICJfdHJ1bmMiKSwgaW5zZXJ0QmVmb3JlKTsKLSsgICAgICAgICpvZmZz ZXRQdHIgPSBuZXcgbGx2bTo6VHJ1bmNJbnN0KG9mZnNldCwgTExWTVR5cGVzOjpJbnQzMlZlY3Rv clR5cGUsIGxsdm06OlR3aW5lKG9mZnNldC0+Z2V0TmFtZSgpKSArICJfdHJ1bmMiLAotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5zZXJ0QmVmb3JlKTsKLSAgICAg ICAgIHJldHVybiB0cnVlOwotICAgICB9IGVsc2UKLSAgICAgICAgIHJldHVybiBmYWxzZTsKLUBA IC0yMjI5LDcgKzIyNDEsOCBAQCBzdGF0aWMgYm9vbCBsR1NUb0dTQmFzZU9mZnNldHMobGx2bTo6 Q2FsbEluc3QgKmNhbGxJbnN0KSB7Ci0gICAgIH0KLSAgICAgLy8gQ2FzdCB0aGUgYmFzZSBwb2lu dGVyIHRvIGEgdm9pZCAqLCBzaW5jZSB0aGF0J3Mgd2hhdCB0aGUKLSAgICAgLy8gX19wc2V1ZG9f Kl9iYXNlX29mZnNldHNfKiBmdW5jdGlvbnMgd2FudC4KLS0gICAgYmFzZVB0ciA9IG5ldyBsbHZt OjpJbnRUb1B0ckluc3QoYmFzZVB0ciwgTExWTVR5cGVzOjpWb2lkUG9pbnRlclR5cGUsIExMVk1H ZXROYW1lKGJhc2VQdHIsICJfMnZvaWQiKSwgY2FsbEluc3QpOwotKyAgICBiYXNlUHRyID0gbmV3 IGxsdm06OkludFRvUHRySW5zdChiYXNlUHRyLCBMTFZNVHlwZXM6OlZvaWRQb2ludGVyVHlwZSwg bGx2bTo6VHdpbmUoYmFzZVB0ci0+Z2V0TmFtZSgpKSArICJfMnZvaWQiLAotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxsSW5zdCk7Ci0gICAgIGxDb3B5TWV0YWRhdGEo YmFzZVB0ciwgY2FsbEluc3QpOwotICAgICBsbHZtOjpGdW5jdGlvbiAqZ2F0aGVyU2NhdHRlckZ1 bmMgPSBpbmZvLT5iYXNlT2Zmc2V0c0Z1bmM7Ci0gCi1AQCAtMjgwMyw3ICsyODE2LDcgQEAgc3Rh dGljIGJvb2wgbEdTVG9Mb2FkU3RvcmUobGx2bTo6Q2FsbEluc3QgKmNhbGxJbnN0KSB7Ci0gICAg ICAgICAgICAgICAgIGxDb3B5TWV0YWRhdGEocHRyLCBjYWxsSW5zdCk7Ci0gICAgICAgICAgICAg ICAgIERlYnVnKHBvcywgIlRyYW5zZm9ybWVkIGdhdGhlciB0byB1bmFsaWduZWQgdmVjdG9yIGxv YWQhIik7Ci0gICAgICAgICAgICAgICAgIGxsdm06Okluc3RydWN0aW9uICpuZXdDYWxsID0KLS0g ICAgICAgICAgICAgICAgICAgIGxDYWxsSW5zdChnYXRoZXJJbmZvLT5sb2FkTWFza2VkRnVuYywg cHRyLCBtYXNrLCBMTFZNR2V0TmFtZShwdHIsICJfbWFza2VkX2xvYWQiKSk7Ci0rICAgICAgICAg ICAgICAgICAgICBsQ2FsbEluc3QoZ2F0aGVySW5mby0+bG9hZE1hc2tlZEZ1bmMsIHB0ciwgbWFz aywgbGx2bTo6VHdpbmUocHRyLT5nZXROYW1lKCkpICsgIl9tYXNrZWRfbG9hZCIpOwotICAgICAg ICAgICAgICAgICBsQ29weU1ldGFkYXRhKG5ld0NhbGwsIGNhbGxJbnN0KTsKLSAgICAgICAgICAg ICAgICAgbGx2bTo6UmVwbGFjZUluc3RXaXRoSW5zdChjYWxsSW5zdCwgbmV3Q2FsbCk7Ci0gICAg ICAgICAgICAgICAgIHJldHVybiB0cnVlOwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9pc3BjL3BhdGNo ZXMvbGx2bTEyLTAwNC5wYXRjaCBiL3NyY3BrZ3MvaXNwYy9wYXRjaGVzL2xsdm0xMi0wMDQucGF0 Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNhOTRkODQ0M2E1ZS4uMDAwMDAwMDAw MDAwCi0tLSBhL3NyY3BrZ3MvaXNwYy9wYXRjaGVzL2xsdm0xMi0wMDQucGF0Y2gKKysrIC9kZXYv bnVsbApAQCAtMSwzNCArMCwwIEBACi1Gcm9tIGMwM2E1MTQyNDQ0NDc2YTFjYWE1YzJiYTdmYTJk OTJkNzc5M2Q2ZjEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBEZWVwYWsgUmFqZW5k cmFrdW1hcmFuIDxkZWVwYWsucmFqZW5kcmFrdW1hcmFuQGludGVsLmNvbT4KLURhdGU6IE1vbiwg MjUgSmFuIDIwMjEgMDk6MjI6NDkgLTA4MDAKLVN1YmplY3Q6IFtQQVRDSF0gRml4aW5nIGJ1aWxk IG9uIGxsdm0gdHJ1bmsuCi0KLS0tLQotIHNyYy9jdHguY3BwIHwgNyArKystLS0tCi0gMSBmaWxl IGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBh L3NyYy9jdHguY3BwIGIvc3JjL2N0eC5jcHAKLWluZGV4IGRlZDUyNGI3MS4uYjYwZTZmZTg0IDEw MDY0NAotLS0tIGEvc3JjL2N0eC5jcHAKLSsrKyBiL3NyYy9jdHguY3BwCi1AQCAtMTAyMCw4ICsx MDIwLDcgQEAgdm9pZCBGdW5jdGlvbkVtaXRDb250ZXh0OjpFbWl0Q2FzZUxhYmVsKGludCB2YWx1 ZSwgYm9vbCBjaGVja01hc2ssIFNvdXJjZVBvcyBwb3MKLSAgICAgbGx2bTo6QmFzaWNCbG9jayAq YmJDYXNlSW1wbCA9IE5VTEw7Ci0gICAgIGlmIChlbWl0R2VuWEhhcmR3YXJlTWFzaygpKSB7Ci0g ICAgICAgICAvLyBDcmVhdGUgYmFzaWMgYmxvY2sgd2l0aCBhY3R1YWwgY2FzZSBpbXBsZW1lbnRh dGlvbgotLSAgICAgICAgbGx2bTo6VHdpbmUgYmJOYW1lID0gbGx2bTo6VHdpbmUoYmJDYXNlLT5n ZXROYW1lKCkpICsgIl9pbXBsIjsKLS0gICAgICAgIGJiQ2FzZUltcGwgPSBDcmVhdGVCYXNpY0Js b2NrKGJiTmFtZSwgYmJDYXNlKTsKLSsgICAgICAgIGJiQ2FzZUltcGwgPSBDcmVhdGVCYXNpY0Js b2NrKGxsdm06OlR3aW5lKGJiQ2FzZS0+Z2V0TmFtZSgpKSArICJfaW1wbCIsIGJiQ2FzZSk7Ci0g ICAgIH0KLSAjZW5kaWYKLSAKLUBAIC0zMTQyLDggKzMxNDEsOCBAQCBsbHZtOjpWYWx1ZSAqRnVu Y3Rpb25FbWl0Q29udGV4dDo6QnJvYWRjYXN0VmFsdWUobGx2bTo6VmFsdWUgKnYsIGxsdm06OlR5 cGUgKnZlYwotICAgICBsbHZtOjpWYWx1ZSAqdW5kZWYyID0gbGx2bTo6VW5kZWZWYWx1ZTo6Z2V0 KHZlY1R5cGUpOwotIAotICAgICAvLyBJbnNlcnRFbGVtZW50Ci0tICAgIGxsdm06OlR3aW5lIHR3 ID0gbmFtZS5pc1RyaXZpYWxseUVtcHR5KCkgPyAobGx2bTo6VHdpbmUodi0+Z2V0TmFtZSgpKSAr ICJfYnJvYWRjYXN0IikgOiBuYW1lICsgbGx2bTo6VHdpbmUoIl9pbml0Iik7Ci0tICAgIGxsdm06 OlZhbHVlICppbnNlcnQgPSBJbnNlcnRJbnN0KHVuZGVmMSwgdiwgMCwgdHcuc3RyKCkuY19zdHIo KSk7Ci0rICAgIGxsdm06OlZhbHVlICppbnNlcnQgPQotKyAgICAgICAgSW5zZXJ0SW5zdCh1bmRl ZjEsIHYsIDAsIG5hbWUuaXNUcml2aWFsbHlFbXB0eSgpID8gKGxsdm06OlR3aW5lKHYtPmdldE5h bWUoKSkgKyAiX2Jyb2FkY2FzdCIpIDogbmFtZSArICJfaW5pdCIpOwotIAotICAgICAvLyBTaHVm ZmxlVmVjdG9yCi0gI2lmIElTUENfTExWTV9WRVJTSU9OIDwgSVNQQ19MTFZNXzExXzAKZGlmZiAt LWdpdCBhL3NyY3BrZ3MvaXNwYy9wYXRjaGVzL2xsdm0xMi0wMDUucGF0Y2ggYi9zcmNwa2dzL2lz cGMvcGF0Y2hlcy9sbHZtMTItMDA1LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCBlM2U5NmIwMGFiZmEuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2lzcGMvcGF0Y2hlcy9s bHZtMTItMDA1LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMzcyICswLDAgQEAKLUZyb20gYzFk MGE1MWJmODQxNmQ0MjE0NGRlOWUyYmRkNTk4MjVlYWVmZjFhYyBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKLUZyb206IEFyaW5hIE5lc2hseWFldmEgPGFyaW5hLm5lc2hseWFldmFAaW50ZWwuY29t PgotRGF0ZTogRnJpLCA4IEphbiAyMDIxIDE0OjEzOjQ5IC0wODAwCi1TdWJqZWN0OiBbUEFUQ0hd IExMVk0gMTEgc3VwcG9ydCBmb3IgZ2VuIGNvZGUKLQotLS0tCi0gc3JjL2N0eC5jcHAgICAgICAg ICAgICAgICAgICAgICB8ICAxMyArKy0KLSBzcmMvZ2VuL0dsb2JhbHNMb2NhbGl6YXRpb24uY3Bw IHwgICA5ICstCi0gc3JjL29wdC5jcHAgICAgICAgICAgICAgICAgICAgICB8IDE0MyArKysrKysr KysrKysrKysrKysrKysrKystLS0tLS0tLQotIDMgZmlsZXMgY2hhbmdlZCwgMTI0IGluc2VydGlv bnMoKyksIDQxIGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvc3JjL2N0eC5jcHAgYi9zcmMv Y3R4LmNwcAotaW5kZXggYjYwZTZmZTg0Li4yYTcyZTY4MzcgMTAwNjQ0Ci0tLS0gYS9zcmMvY3R4 LmNwcAotKysrIGIvc3JjL2N0eC5jcHAKLUBAIC0xLDUgKzEsNSBAQAotIC8qCi0tICBDb3B5cmln aHQgKGMpIDIwMTAtMjAyMCwgSW50ZWwgQ29ycG9yYXRpb24KLSsgIENvcHlyaWdodCAoYykgMjAx MC0yMDIxLCBJbnRlbCBDb3Jwb3JhdGlvbgotICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAKLSAg IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg b3Igd2l0aG91dAotQEAgLTM2ODUsOCArMzY4NSwxNyBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25F bWl0Q29udGV4dDo6R2VuWFNpbWRDRlByZWRpY2F0ZShsbHZtOjpWYWx1ZSAqdmFsdWUsIGxsdm06 OgotICAgICBBc3NlcnRQb3MoY3VycmVudFBvcywgbGx2bTo6aXNhPGxsdm06OlZlY3RvclR5cGU+ KHZhbHVlLT5nZXRUeXBlKCkpKTsKLSAgICAgbGx2bTo6VmVjdG9yVHlwZSAqdnQgPSBsbHZtOjpk eW5fY2FzdDxsbHZtOjpWZWN0b3JUeXBlPih2YWx1ZS0+Z2V0VHlwZSgpKTsKLSAgICAgaWYgKGRl ZmF1bHRzID09IE5VTEwpIHsKLS0gICAgICAgIGRlZmF1bHRzID0gbGx2bTo6Q29uc3RhbnRWZWN0 b3I6OmdldFNwbGF0KHZhbHVlLT5nZXRUeXBlKCktPmdldFZlY3Rvck51bUVsZW1lbnRzKCksCi0r I2lmIElTUENfTExWTV9WRVJTSU9OIDwgSVNQQ19MTFZNXzExXzAKLSsgICAgICAgIGRlZmF1bHRz ID0gbGx2bTo6Q29uc3RhbnRWZWN0b3I6OmdldFNwbGF0KHZ0LT5nZXRWZWN0b3JOdW1FbGVtZW50 cygpLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg bGx2bTo6Q29uc3RhbnQ6OmdldE51bGxWYWx1ZSh2dC0+Z2V0RWxlbWVudFR5cGUoKSkpOwotKyNl bGlmIElTUENfTExWTV9WRVJTSU9OID09IElTUENfTExWTV8xMV8wCi0rICAgICAgICBkZWZhdWx0 cyA9IGxsdm06OkNvbnN0YW50VmVjdG9yOjpnZXRTcGxhdCh7c3RhdGljX2Nhc3Q8dW5zaWduZWQg aW50Pih2dC0+Z2V0TnVtRWxlbWVudHMoKSksIGZhbHNlfSwKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06OkNvbnN0YW50OjpnZXROdWxsVmFs dWUodnQtPmdldEVsZW1lbnRUeXBlKCkpKTsKLSsjZWxzZQotKyAgICAgICAgZGVmYXVsdHMgPSBs bHZtOjpDb25zdGFudFZlY3Rvcjo6Z2V0U3BsYXQoCi0rICAgICAgICAgICAgbGx2bTo6RWxlbWVu dENvdW50OjpnZXQoc3RhdGljX2Nhc3Q8dW5zaWduZWQgaW50Pih2dC0+Z2V0TnVtRWxlbWVudHMo KSksIGZhbHNlKSwKLSsgICAgICAgICAgICBsbHZtOjpDb25zdGFudDo6Z2V0TnVsbFZhbHVlKHZ0 LT5nZXRFbGVtZW50VHlwZSgpKSk7Ci0rI2VuZGlmCi0gICAgIH0KLSAKLSAgICAgYXV0byBGbiA9 IGxsdm06OkdlblhJbnRyaW5zaWM6OmdldEdlblhEZWNsYXJhdGlvbihtLT5tb2R1bGUsIGxsdm06 OkdlblhJbnRyaW5zaWM6Omdlbnhfc2ltZGNmX3ByZWRpY2F0ZSwKLWRpZmYgLS1naXQgYS9zcmMv Z2VuL0dsb2JhbHNMb2NhbGl6YXRpb24uY3BwIGIvc3JjL2dlbi9HbG9iYWxzTG9jYWxpemF0aW9u LmNwcAotaW5kZXggYTE3NmU5NDYyLi40MWYzYjAwZTIgMTAwNjQ0Ci0tLS0gYS9zcmMvZ2VuL0ds b2JhbHNMb2NhbGl6YXRpb24uY3BwCi0rKysgYi9zcmMvZ2VuL0dsb2JhbHNMb2NhbGl6YXRpb24u Y3BwCi1AQCAtMSw1ICsxLDUgQEAKLSAvKgotLSAgQ29weXJpZ2h0IChjKSAyMDE0LCAyMDE2LTIw MjAsIEludGVsIENvcnBvcmF0aW9uCi0rICBDb3B5cmlnaHQgKGMpIDIwMTQsIDIwMTYtMjAyMSwg SW50ZWwgQ29ycG9yYXRpb24KLSAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gCi0gICBSZWRpc3Ry aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv dXQKLUBAIC01Myw4ICs1MywxMCBAQAotICNpbmNsdWRlIDxsbHZtL0dlblhJbnRyaW5zaWNzL0dl blhJbnRyT3B0cy5oPgotICNpbmNsdWRlIDxsbHZtL0dlblhJbnRyaW5zaWNzL0dlblhJbnRyaW5z aWNzLmg+Ci0gI2luY2x1ZGUgPGxsdm0vR2VuWEludHJpbnNpY3MvR2VuWE1ldGFkYXRhLmg+Ci0t I2luY2x1ZGUgPGxsdm0vSVIvQ0ZHLmg+Ci0rI2lmIElTUENfTExWTV9WRVJTSU9OIDwgSVNQQ19M TFZNXzExXzAKLSAjaW5jbHVkZSA8bGx2bS9JUi9DYWxsU2l0ZS5oPgotKyNlbmRpZgotKyNpbmNs dWRlIDxsbHZtL0lSL0NGRy5oPgotICNpbmNsdWRlIDxsbHZtL0lSL0RlYnVnSW5mby5oPgotICNp bmNsdWRlIDxsbHZtL0lSL0RvbWluYXRvcnMuaD4KLSAjaW5jbHVkZSA8bGx2bS9JUi9GdW5jdGlv bi5oPgotQEAgLTQ3MCw3ICs0NzIsOCBAQCB2b2lkIEdsb2JhbHNMb2NhbGl6YXRpb246OkxvY2Fs aXplR2xvYmFscyhMb2NhbGl6YXRpb25JbmZvICZMSSkgewotICAgICAgICAgSW5zdHJ1Y3Rpb24g JkZpcnN0SSA9ICpGbi0+Z2V0RW50cnlCbG9jaygpLmJlZ2luKCk7Ci0gICAgICAgICBUeXBlICpF bGVtVHkgPSBHVi0+Z2V0VHlwZSgpLT5nZXRFbGVtZW50VHlwZSgpOwotICAgICAgICAgQWxsb2Nh SW5zdCAqQWxsb2NhID0gbmV3IEFsbG9jYUluc3QoRWxlbVR5LCAwLCBHVi0+Z2V0TmFtZSgpICsg Ii5sb2NhbCIsICZGaXJzdEkpOwotLSAgICAgICAgQWxsb2NhLT5zZXRBbGlnbm1lbnQobGx2bTo6 TWF5YmVBbGlnbihHVi0+Z2V0QWxpZ25tZW50KCkpKTsKLSsgICAgICAgIEFsbG9jYS0+c2V0QWxp Z25tZW50KGxsdm06Ok1heWJlQWxpZ24oR1YtPmdldEFsaWdubWVudCgpKS52YWx1ZU9yT25lKCkp OwotKwotICAgICAgICAgaWYgKCFpc2E8VW5kZWZWYWx1ZT4oR1YtPmdldEluaXRpYWxpemVyKCkp KQotICAgICAgICAgICAgIG5ldyBTdG9yZUluc3QoR1YtPmdldEluaXRpYWxpemVyKCksIEFsbG9j YSwgJkZpcnN0SSk7Ci0gCi1kaWZmIC0tZ2l0IGEvc3JjL29wdC5jcHAgYi9zcmMvb3B0LmNwcAot aW5kZXggZDU4ZDc3ZjczLi4xNzg5Yjg0NzYgMTAwNjQ0Ci0tLS0gYS9zcmMvb3B0LmNwcAotKysr IGIvc3JjL29wdC5jcHAKLUBAIC0yODk5LDE1ICsyODk5LDE3IEBAIHN0YXRpYyBsbHZtOjpGdW5j dGlvbiAqbEdlblhNYXNrZWRJbnQ4SW5zdChsbHZtOjpJbnN0cnVjdGlvbiAqaW5zdCwgYm9vbCBp c1N0b3JlCi0gc3RhdGljIGxsdm06OkNhbGxJbnN0ICpsR2VuWFN0b3JlSW5zdChsbHZtOjpWYWx1 ZSAqdmFsLCBsbHZtOjpWYWx1ZSAqcHRyLCBsbHZtOjpJbnN0cnVjdGlvbiAqaW5zdCkgewotICAg ICBBc3NlcnQoZy0+dGFyZ2V0LT5pc0dlblhUYXJnZXQoKSk7Ci0gICAgIEFzc2VydChsbHZtOjpp c2E8bGx2bTo6VmVjdG9yVHlwZT4odmFsLT5nZXRUeXBlKCkpKTsKLS0gICAgQXNzZXJ0KGxsdm06 OmlzUG93ZXJPZjJfMzIodmFsLT5nZXRUeXBlKCktPmdldFZlY3Rvck51bUVsZW1lbnRzKCkpKTsK LS0gICAgQXNzZXJ0KHZhbC0+Z2V0VHlwZSgpLT5nZXRQcmltaXRpdmVTaXplSW5CaXRzKCkgLyA4 IDw9IDggKiBPV09SRCk7Ci0rCi0rICAgIGxsdm06OlZlY3RvclR5cGUgKnZhbFZlY1R5cGUgPSBs bHZtOjpkeW5fY2FzdDxsbHZtOjpWZWN0b3JUeXBlPih2YWwtPmdldFR5cGUoKSk7Ci0rICAgIEFz c2VydChsbHZtOjppc1Bvd2VyT2YyXzMyKHZhbFZlY1R5cGUtPmdldE51bUVsZW1lbnRzKCkpKTsK LSsgICAgQXNzZXJ0KHZhbFZlY1R5cGUtPmdldFByaW1pdGl2ZVNpemVJbkJpdHMoKSAvIDggPD0g OCAqIE9XT1JEKTsKLSAKLSAgICAgLy8gVGhlIGRhdGEgd3JpdGUgb2Ygc3ZtIHN0b3JlIG11c3Qg aGF2ZSBhIHNpemUgdGhhdCBpcyBhIHBvd2VyIG9mIHR3byBmcm9tIDE2IHRvIDEyOAotICAgICAv LyBieXRlcy4gSG93ZXZlciBmb3IgaW50OCB0eXBlIGFuZCBzaW1kIHdpZHRoID0gOCwgdGhlIGRh dGEgd3JpdGUgc2l6ZSBpcyA4LgotICAgICAvLyBTbyB3ZSB1c2UgbWFza2VkIHN0b3JlIGZ1bmN0 aW9uIGhlcmUgaW5zdGVhZCBvZiBzdm0gc3RvcmUgd2hpY2ggcHJvY2VzcyBpbnQ4IHR5cGUKLSAg ICAgLy8gY29ycmVjdGx5LgotLSAgICBpZiAodmFsLT5nZXRUeXBlKCktPmdldFByaW1pdGl2ZVNp emVJbkJpdHMoKSAvIDggPCAxNikgewotLSAgICAgICAgQXNzZXJ0KHZhbC0+Z2V0VHlwZSgpLT5n ZXRTY2FsYXJUeXBlKCkgPT0gTExWTVR5cGVzOjpJbnQ4VHlwZSk7Ci0rICAgIGlmICh2YWxWZWNU eXBlLT5nZXRQcmltaXRpdmVTaXplSW5CaXRzKCkgLyA4IDwgMTYpIHsKLSsgICAgICAgIEFzc2Vy dCh2YWxWZWNUeXBlLT5nZXRTY2FsYXJUeXBlKCkgPT0gTExWTVR5cGVzOjpJbnQ4VHlwZSk7Ci0g ICAgICAgICBpZiAobGx2bTo6RnVuY3Rpb24gKm1hc2tlZEZ1bmMgPSBsR2VuWE1hc2tlZEludDhJ bnN0KGluc3QsIHRydWUpKQotICAgICAgICAgICAgIHJldHVybiBsbHZtOjpkeW5fY2FzdDxsbHZt OjpDYWxsSW5zdD4obENhbGxJbnN0KG1hc2tlZEZ1bmMsIHB0ciwgdmFsLCBMTFZNTWFza0FsbE9u LCAiIikpOwotICAgICAgICAgZWxzZSB7Ci1AQCAtMjkyMywxNSArMjkyNSwxNyBAQCBzdGF0aWMg bGx2bTo6Q2FsbEluc3QgKmxHZW5YU3RvcmVJbnN0KGxsdm06OlZhbHVlICp2YWwsIGxsdm06OlZh bHVlICpwdHIsIGxsdm06OgotIAotIHN0YXRpYyBsbHZtOjpDYWxsSW5zdCAqbEdlblhMb2FkSW5z dChsbHZtOjpWYWx1ZSAqcHRyLCBsbHZtOjpUeXBlICpyZXRUeXBlLCBsbHZtOjpJbnN0cnVjdGlv biAqaW5zdCkgewotICAgICBBc3NlcnQobGx2bTo6aXNhPGxsdm06OlZlY3RvclR5cGU+KHJldFR5 cGUpKTsKLS0gICAgQXNzZXJ0KGxsdm06OmlzUG93ZXJPZjJfMzIocmV0VHlwZS0+Z2V0VmVjdG9y TnVtRWxlbWVudHMoKSkpOwotLSAgICBBc3NlcnQocmV0VHlwZS0+Z2V0UHJpbWl0aXZlU2l6ZUlu Qml0cygpKTsKLS0gICAgQXNzZXJ0KHJldFR5cGUtPmdldFByaW1pdGl2ZVNpemVJbkJpdHMoKSAv IDggPD0gOCAqIE9XT1JEKTsKLSsKLSsgICAgbGx2bTo6VmVjdG9yVHlwZSAqcmV0VmVjVHlwZSA9 IGxsdm06OmR5bl9jYXN0PGxsdm06OlZlY3RvclR5cGU+KHJldFR5cGUpOwotKyAgICBBc3NlcnQo bGx2bTo6aXNQb3dlck9mMl8zMihyZXRWZWNUeXBlLT5nZXROdW1FbGVtZW50cygpKSk7Ci0rICAg IEFzc2VydChyZXRWZWNUeXBlLT5nZXRQcmltaXRpdmVTaXplSW5CaXRzKCkpOwotKyAgICBBc3Nl cnQocmV0VmVjVHlwZS0+Z2V0UHJpbWl0aXZlU2l6ZUluQml0cygpIC8gOCA8PSA4ICogT1dPUkQp OwotICAgICAvLyBUaGUgZGF0YSByZWFkIG9mIHN2bSBsb2FkIG11c3QgaGF2ZSBhIHNpemUgdGhh dCBpcyBhIHBvd2VyIG9mIHR3byBmcm9tIDE2IHRvIDEyOAotICAgICAvLyBieXRlcy4gSG93ZXZl ciBmb3IgaW50OCB0eXBlIGFuZCBzaW1kIHdpZHRoID0gOCwgdGhlIGRhdGEgcmVhZCBzaXplIGlz IDguCi0gICAgIC8vIFNvIHdlIHVzZSBtYXNrZWQgbG9hZCBmdW5jdGlvbiBoZXJlIGluc3RlYWQg b2Ygc3ZtIGxvYWQgd2hpY2ggcHJvY2VzcyBpbnQ4IHR5cGUKLSAgICAgLy8gY29ycmVjdGx5Lgot LSAgICBpZiAocmV0VHlwZS0+Z2V0UHJpbWl0aXZlU2l6ZUluQml0cygpIC8gOCA8IDE2KSB7Ci0t ICAgICAgICBBc3NlcnQocmV0VHlwZS0+Z2V0U2NhbGFyVHlwZSgpID09IExMVk1UeXBlczo6SW50 OFR5cGUpOwotKyAgICBpZiAocmV0VmVjVHlwZS0+Z2V0UHJpbWl0aXZlU2l6ZUluQml0cygpIC8g OCA8IDE2KSB7Ci0rICAgICAgICBBc3NlcnQocmV0VmVjVHlwZS0+Z2V0U2NhbGFyVHlwZSgpID09 IExMVk1UeXBlczo6SW50OFR5cGUpOwotICAgICAgICAgaWYgKGxsdm06OkZ1bmN0aW9uICptYXNr ZWRGdW5jID0gbEdlblhNYXNrZWRJbnQ4SW5zdChpbnN0LCBmYWxzZSkpCi0gICAgICAgICAgICAg cmV0dXJuIGxsdm06OmR5bl9jYXN0PGxsdm06OkNhbGxJbnN0PihsQ2FsbEluc3QobWFza2VkRnVu YywgcHRyLCBMTFZNTWFza0FsbE9uLCAiIikpOwotICAgICAgICAgZWxzZSB7Ci1AQCAtNTYyMiwx NSArNTYyNiwyNCBAQCBzdGF0aWMgYm9vbCBsVmVjdG9yaXplR0VQcyhsbHZtOjpWYWx1ZSAqcHRy LCBzdGQ6OnZlY3RvcjxQdHJVc2U+ICZwdHJVc2VzLCBzdGQ6OgotICAgICAgICAgbGx2bTo6UHRy VG9JbnRJbnN0ICpwdHJUb0ludCA9Ci0gICAgICAgICAgICAgbmV3IGxsdm06OlB0clRvSW50SW5z dChwdHIsIExMVk1UeXBlczo6SW50NjRUeXBlLCAidmVjdG9yaXplZF9wdHJ0b2ludCIsIGluc2Vy dEJlZm9yZSk7Ci0gICAgICAgICBsbHZtOjpJbnN0cnVjdGlvbiAqYWRkciA9IGxsdm06OkJpbmFy eU9wZXJhdG9yOjpDcmVhdGVBZGQocHRyVG9JbnQsIG9mZnNldCwgInZlY3Rvcml6ZWRfYWRkcmVz cyIsIGluc2VydEJlZm9yZSk7Ci0rI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8x MV8wCi0rICAgICAgICBsbHZtOjpUeXBlICpyZXRUeXBlID0gbGx2bTo6Rml4ZWRWZWN0b3JUeXBl OjpnZXQoc2NhbGFyX3R5cGUsIHJlcVNpemUgLyB0X3NpemUpOwotKyNlbHNlCi0gICAgICAgICBs bHZtOjpUeXBlICpyZXRUeXBlID0gbGx2bTo6VmVjdG9yVHlwZTo6Z2V0KHNjYWxhcl90eXBlLCBy ZXFTaXplIC8gdF9zaXplKTsKLSsjZW5kaWYKLSAgICAgICAgIGxsdm06OkZ1bmN0aW9uICpmbiA9 IGxsdm06OkdlblhJbnRyaW5zaWM6OmdldEdlblhEZWNsYXJhdGlvbigKLSAgICAgICAgICAgICBt LT5tb2R1bGUsIGxsdm06OkdlblhJbnRyaW5zaWM6Omdlbnhfc3ZtX2Jsb2NrX2xkX3VuYWxpZ25l ZCwge3JldFR5cGUsIGFkZHItPmdldFR5cGUoKX0pOwotICAgICAgICAgbGx2bTo6SW5zdHJ1Y3Rp b24gKmxkID0gbGx2bTo6Q2FsbEluc3Q6OkNyZWF0ZShmbiwge2FkZHJ9LCAidmVjdG9yaXplZF9s ZCIsIGluc2VydEJlZm9yZSk7Ci0gCi0gICAgICAgICBpZiAobG9hZGluZ1B0cikgewotICAgICAg ICAgICAgIC8vIENhc3QgaW50IHRvIHB0ciB2aWEgaW50dG9wdHIKLSsjaWYgSVNQQ19MTFZNX1ZF UlNJT04gPj0gSVNQQ19MTFZNXzExXzAKLSsgICAgICAgICAgICBsZCA9IG5ldyBsbHZtOjpJbnRU b1B0ckluc3QobGQsIGxsdm06OkZpeGVkVmVjdG9yVHlwZTo6Z2V0KG9yaWdpbmFsVHlwZSwgcmVx U2l6ZSAvIHRfc2l6ZSksCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICJ2ZWN0b3JpemVkX2ludHRvcHRyIiwgaW5zZXJ0QmVmb3JlKTsKLSsjZWxzZQotICAgICAgICAg ICAgIGxkID0gbmV3IGxsdm06OkludFRvUHRySW5zdChsZCwgbGx2bTo6VmVjdG9yVHlwZTo6Z2V0 KG9yaWdpbmFsVHlwZSwgcmVxU2l6ZSAvIHRfc2l6ZSksCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICJ2ZWN0b3JpemVkX2ludHRvcHRyIiwgaW5zZXJ0QmVmb3JlKTsK LSsjZW5kaWYKLSAgICAgICAgIH0KLSAKLSAgICAgICAgIC8vIFNjYWxhciBleHRyYWN0cyBmb3Ig YWxsIGxvYWRlZCBlbGVtZW50cwotQEAgLTYxNjAsMTkgKzYxNzMsMzQgQEAgYm9vbCBSZXBsYWNl TExWTUludHJpbnNpY3M6OnJ1bk9uQmFzaWNCbG9jayhsbHZtOjpCYXNpY0Jsb2NrICZiYikgewot ICAgICAgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmluc3QgPSAmKkk7Ci0gICAgICAgICBpZiAobGx2 bTo6Q2FsbEluc3QgKmNpID0gbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6Q2FsbEluc3Q+KGluc3QpKSB7 Ci0gICAgICAgICAgICAgbGx2bTo6RnVuY3Rpb24gKmZ1bmMgPSBjaS0+Z2V0Q2FsbGVkRnVuY3Rp b24oKTsKLS0gICAgICAgICAgICBpZiAoZnVuYyAmJiBmdW5jLT5nZXROYW1lKCkgPT0gImxsdm0u dHJhcCIpIHsKLSsgICAgICAgICAgICBpZiAoZnVuYyAmJiBmdW5jLT5nZXROYW1lKCkuZXF1YWxz KCJsbHZtLnRyYXAiKSkgewotICAgICAgICAgICAgICAgICBsbHZtOjpUeXBlICphcmdUeXBlc1td ID0ge0xMVk1UeXBlczo6SW50MVZlY3RvclR5cGUsIExMVk1UeXBlczo6SW50MTZWZWN0b3JUeXBl fTsKLSAgICAgICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24gb2YgcGFyYW1ldGVycyBmb3IgZ2Vu eF9yYXdfc2VuZF9ub3Jlc3VsdCBjYW4gYmUgZm91bmQgaW4gdGFyZ2V0LWdlbngubGwKLSAgICAg ICAgICAgICAgICAgYXV0byBGbiA9ICtsbHZtOjpHZW5YSW50cmluc2ljOjpnZXRHZW5YRGVjbGFy YXRpb24oCi0gICAgICAgICAgICAgICAgICAgICBtLT5tb2R1bGUsIGxsdm06OkdlblhJbnRyaW5z aWM6OmdlbnhfcmF3X3NlbmRfbm9yZXN1bHQsIGFyZ1R5cGVzKTsKLSAgICAgICAgICAgICAgICAg bGx2bTo6U21hbGxWZWN0b3I8bGx2bTo6VmFsdWUgKiwgOD4gQXJnczsKLSAgICAgICAgICAgICAg ICAgQXJncy5wdXNoX2JhY2sobGx2bTo6Q29uc3RhbnRJbnQ6OmdldChMTFZNVHlwZXM6OkludDMy VHlwZSwgMCkpOwotLSAgICAgICAgICAgICAgICBBcmdzLnB1c2hfYmFjayhsbHZtOjpDb25zdGFu dFZlY3Rvcjo6Z2V0U3BsYXQoZy0+dGFyZ2V0LT5nZXROYXRpdmVWZWN0b3JXaWR0aCgpLAotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgbGx2bTo6Q29uc3RhbnRJbnQ6OmdldFRydWUoKmctPmN0eCkpKTsKLSsgICAgICAgICAgICAg ICAgQXJncy5wdXNoX2JhY2sobGx2bTo6Q29uc3RhbnRWZWN0b3I6OmdldFNwbGF0KAotKyNpZiBJ U1BDX0xMVk1fVkVSU0lPTiA8IElTUENfTExWTV8xMV8wCi0rICAgICAgICAgICAgICAgICAgICBn LT50YXJnZXQtPmdldE5hdGl2ZVZlY3RvcldpZHRoKCksCi0rI2VsaWYgSVNQQ19MTFZNX1ZFUlNJ T04gPT0gSVNQQ19MTFZNXzExXzAKLSsgICAgICAgICAgICAgICAgICAgIHtzdGF0aWNfY2FzdDx1 bnNpZ25lZCBpbnQ+KGctPnRhcmdldC0+Z2V0TmF0aXZlVmVjdG9yV2lkdGgoKSksIGZhbHNlfSwK LSsjZWxzZSAvLyBMTFZNIDEyLjArCi0rICAgICAgICAgICAgICAgICAgICBsbHZtOjpFbGVtZW50 Q291bnQ6OmdldChzdGF0aWNfY2FzdDx1bnNpZ25lZCBpbnQ+KGctPnRhcmdldC0+Z2V0TmF0aXZl VmVjdG9yV2lkdGgoKSksIGZhbHNlKSwKLSsjZW5kaWYKLSsgICAgICAgICAgICAgICAgICAgIGxs dm06OkNvbnN0YW50SW50OjpnZXRUcnVlKCpnLT5jdHgpKSk7Ci0rCi0gICAgICAgICAgICAgICAg IEFyZ3MucHVzaF9iYWNrKGxsdm06OkNvbnN0YW50SW50OjpnZXQoTExWTVR5cGVzOjpJbnQzMlR5 cGUsIDM5KSk7Ci0gICAgICAgICAgICAgICAgIEFyZ3MucHVzaF9iYWNrKGxsdm06OkNvbnN0YW50 SW50OjpnZXQoTExWTVR5cGVzOjpJbnQzMlR5cGUsIDMzNTU0NDQ4KSk7Ci0gICAgICAgICAgICAg ICAgIGxsdm06OlZhbHVlICp6ZXJvTWFzayA9IGxsdm06OkNvbnN0YW50VmVjdG9yOjpnZXRTcGxh dCgKLS0gICAgICAgICAgICAgICAgICAgIGctPnRhcmdldC0+Z2V0TmF0aXZlVmVjdG9yV2lkdGgo KSwgbGx2bTo6Q29uc3RhbnQ6OmdldE51bGxWYWx1ZShsbHZtOjpUeXBlOjpnZXRJbnQxNlR5KCpn LT5jdHgpKSk7Ci0rI2lmIElTUENfTExWTV9WRVJTSU9OIDwgSVNQQ19MTFZNXzExXzAKLSsgICAg ICAgICAgICAgICAgICAgIGctPnRhcmdldC0+Z2V0TmF0aXZlVmVjdG9yV2lkdGgoKSwKLSsjZWxp ZiBJU1BDX0xMVk1fVkVSU0lPTiA9PSBJU1BDX0xMVk1fMTFfMAotKyAgICAgICAgICAgICAgICAg ICAge3N0YXRpY19jYXN0PHVuc2lnbmVkIGludD4oZy0+dGFyZ2V0LT5nZXROYXRpdmVWZWN0b3JX aWR0aCgpKSwgZmFsc2V9LAotKyNlbHNlIC8vIExMVk0gMTIuMCsKLSsgICAgICAgICAgICAgICAg ICAgIGxsdm06OkVsZW1lbnRDb3VudDo6Z2V0KHN0YXRpY19jYXN0PHVuc2lnbmVkIGludD4oZy0+ dGFyZ2V0LT5nZXROYXRpdmVWZWN0b3JXaWR0aCgpKSwgZmFsc2UpLAotKyNlbmRpZgotKyAgICAg ICAgICAgICAgICAgICAgbGx2bTo6Q29uc3RhbnQ6OmdldE51bGxWYWx1ZShsbHZtOjpUeXBlOjpn ZXRJbnQxNlR5KCpnLT5jdHgpKSk7Ci0gICAgICAgICAgICAgICAgIEFyZ3MucHVzaF9iYWNrKHpl cm9NYXNrKTsKLSAKLSAgICAgICAgICAgICAgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKm5ld0luc3Qg PSBsbHZtOjpDYWxsSW5zdDo6Q3JlYXRlKEZuLCBBcmdzLCBjaS0+Z2V0TmFtZSgpKTsKLUBAIC02 MTgxLDcgKzYyMDksNyBAQCBib29sIFJlcGxhY2VMTFZNSW50cmluc2ljczo6cnVuT25CYXNpY0Js b2NrKGxsdm06OkJhc2ljQmxvY2sgJmJiKSB7Ci0gICAgICAgICAgICAgICAgICAgICBtb2RpZmll ZEFueSA9IHRydWU7Ci0gICAgICAgICAgICAgICAgICAgICBnb3RvIHJlc3RhcnQ7Ci0gICAgICAg ICAgICAgICAgIH0KLS0gICAgICAgICAgICB9IGVsc2UgaWYgKGZ1bmMgJiYgZnVuYy0+Z2V0TmFt ZSgpID09ICJsbHZtLmFzc3VtZSIpIHsKLSsgICAgICAgICAgICB9IGVsc2UgaWYgKGZ1bmMgJiYg ZnVuYy0+Z2V0TmFtZSgpLmVxdWFscygibGx2bS5hc3N1bWUiKSkgewotICAgICAgICAgICAgICAg ICBjaS0+ZXJhc2VGcm9tUGFyZW50KCk7Ci0gICAgICAgICAgICAgICAgIG1vZGlmaWVkQW55ID0g dHJ1ZTsKLSAgICAgICAgICAgICAgICAgZ290byByZXN0YXJ0OwotQEAgLTYzMzUsNyArNjM2Myw3 IEBAIGJvb2wgQ2hlY2tVbnN1cHBvcnRlZEluc3RzOjpydW5PbkJhc2ljQmxvY2sobGx2bTo6QmFz aWNCbG9jayAmYmIpIHsKLSAgICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICAg Zm9yIChpbnQgaSA9IDA7IGkgPCB1bnN1cHBvcnRlZEZ1bmNzLnNpemUoKTsgaSsrKSB7Ci0gICAg ICAgICAgICAgICAgIHN0ZDo6c21hdGNoIG1hdGNoOwotLSAgICAgICAgICAgICAgICBzdGQ6OnN0 cmluZyBmdW5jTmFtZSA9IGZ1bmMtPmdldE5hbWUoKTsKLSsgICAgICAgICAgICAgICAgc3RkOjpz dHJpbmcgZnVuY05hbWUgPSBmdW5jLT5nZXROYW1lKCkuc3RyKCk7Ci0gICAgICAgICAgICAgICAg IGlmIChzdGQ6OnJlZ2V4X21hdGNoKGZ1bmNOYW1lLCBtYXRjaCwgdW5zdXBwb3J0ZWRGdW5jc1tp XSkpIHsKLSAgICAgICAgICAgICAgICAgICAgIC8vIFdlIGZvdW5kIHVuc3VwcG9ydGVkIGZ1bmN0 aW9uLiBHZW5lcmF0ZSBlcnJvciBhbmQgc3RvcCBjb21waWxhdGlvbi4KLSAgICAgICAgICAgICAg ICAgICAgIFNvdXJjZVBvcyBwb3M7Ci1AQCAtNjQxOCwxMiArNjQ0NiwxNCBAQCBib29sIE1hbmds ZU9wZW5DTEJ1aWx0aW5zOjpydW5PbkJhc2ljQmxvY2sobGx2bTo6QmFzaWNCbG9jayAmYmIpIHsK LSAgICAgICAgICAgICBpZiAoZnVuYy0+Z2V0TmFtZSgpLnN0YXJ0c3dpdGgoIl9fc3BpcnZfb2Ns IikpIHsKLSAgICAgICAgICAgICAgICAgc3RkOjpzdHJpbmcgbWFuZ2xlZE5hbWU7Ci0gICAgICAg ICAgICAgICAgIGxsdm06OlR5cGUgKnJldFR5cGUgPSBmdW5jLT5nZXRSZXR1cm5UeXBlKCk7Ci0t ICAgICAgICAgICAgICAgIHN0ZDo6c3RyaW5nIGZ1bmNOYW1lID0gZnVuYy0+Z2V0TmFtZSgpOwot KyAgICAgICAgICAgICAgICBzdGQ6OnN0cmluZyBmdW5jTmFtZSA9IGZ1bmMtPmdldE5hbWUoKS5z dHIoKTsKLSAgICAgICAgICAgICAgICAgc3RkOjp2ZWN0b3I8bGx2bTo6VHlwZSAqPiBBcmdUeTsK LSAgICAgICAgICAgICAgICAgLy8gc3BpcnYgT3BlbkNMIGJ1aWx0aW5zIGFyZSB1c2VkIGZvciBk b3VibGUgdHlwZXMgb25seQotLSAgICAgICAgICAgICAgICBBc3NlcnQocmV0VHlwZS0+aXNWZWN0 b3JUeSgpICYmIHJldFR5cGUtPmdldFZlY3RvckVsZW1lbnRUeXBlKCktPmlzRG91YmxlVHkoKSB8 fAotKyAgICAgICAgICAgICAgICBBc3NlcnQocmV0VHlwZS0+aXNWZWN0b3JUeSgpICYmCi0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6VmVjdG9yVHlwZT4o cmV0VHlwZSktPmdldEVsZW1lbnRUeXBlKCktPmlzRG91YmxlVHkoKSB8fAotICAgICAgICAgICAg ICAgICAgICAgICAgcmV0VHlwZS0+aXNTaW5nbGVWYWx1ZVR5cGUoKSAmJiByZXRUeXBlLT5pc0Rv dWJsZVR5KCkpOwotLSAgICAgICAgICAgICAgICBpZiAocmV0VHlwZS0+aXNWZWN0b3JUeSgpICYm IHJldFR5cGUtPmdldFZlY3RvckVsZW1lbnRUeXBlKCktPmlzRG91YmxlVHkoKSkgewotKyAgICAg ICAgICAgICAgICBpZiAocmV0VHlwZS0+aXNWZWN0b3JUeSgpICYmCi0rICAgICAgICAgICAgICAg ICAgICBsbHZtOjpkeW5fY2FzdDxsbHZtOjpWZWN0b3JUeXBlPihyZXRUeXBlKS0+Z2V0RWxlbWVu dFR5cGUoKS0+aXNEb3VibGVUeSgpKSB7Ci0gICAgICAgICAgICAgICAgICAgICBBcmdUeS5wdXNo X2JhY2soTExWTVR5cGVzOjpEb3VibGVWZWN0b3JUeXBlKTsKLSAgICAgICAgICAgICAgICAgICAg IC8vIF9EdldJRFRIIHN1ZmZpeCBpcyB1c2VkIGluIHRhcmdldCBmaWxlIHRvIGRpZmZlcmVudGlh dGUgc2NhbGFyCi0gICAgICAgICAgICAgICAgICAgICAvLyBhbmQgdmVjdG9yIHZlcnNpb25zIG9m IGludHJpbnNpY3MuIEhlcmUgd2UgcmVtb3ZlIHRoaXMKLUBAIC02NTExLDggKzY1NDEsMTUgQEAg bGx2bTo6VmFsdWUgKkZpeEFkZHJlc3NTcGFjZTo6Y2FsY3VsYXRlR2F0aGVyU2NhdHRlckFkZHJl c3MobGx2bTo6VmFsdWUgKlB0ciwgbGwKLSAKLSAgICAgLy8gQ2FzdCBvZmZzZXRzIHRvIGludDY0 Ci0gICAgIE9mZnNldHMgPSBuZXcgbGx2bTo6WkV4dEluc3QoCi0rI2lmIElTUENfTExWTV9WRVJT SU9OID49IElTUENfTExWTV8xMV8wCi0rICAgICAgICBPZmZzZXRzLAotKyAgICAgICAgbGx2bTo6 Rml4ZWRWZWN0b3JUeXBlOjpnZXQoTExWTVR5cGVzOjpJbnQ2NFR5cGUsCi0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpkeW5fY2FzdDxsbHZtOjpWZWN0b3JUeXBlPihP ZmZzZXRzLT5nZXRUeXBlKCkpLT5nZXROdW1FbGVtZW50cygpKSwKLSsgICAgICAgICJzdm1fb2Zm c2V0X3pleHQiLCBJbnNlcnRCZWZvcmUpOwotKyNlbHNlCi0gICAgICAgICBPZmZzZXRzLCBsbHZt OjpWZWN0b3JUeXBlOjpnZXQoTExWTVR5cGVzOjpJbnQ2NFR5cGUsIE9mZnNldHMtPmdldFR5cGUo KS0+Z2V0VmVjdG9yTnVtRWxlbWVudHMoKSksCi0gICAgICAgICAic3ZtX29mZnNldF96ZXh0Iiwg SW5zZXJ0QmVmb3JlKTsKLSsjZW5kaWYKLSAKLSAgICAgaWYgKCFsbHZtOjppc2E8bGx2bTo6Q29u c3RhbnRQb2ludGVyTnVsbD4oUHRyKSkgewotICAgICAgICAgLy8gQ2FzdCBwdHIgdG8gaW50NjQK LUBAIC02NTIwLDEzICs2NTU3LDMxIEBAIGxsdm06OlZhbHVlICpGaXhBZGRyZXNzU3BhY2U6OmNh bGN1bGF0ZUdhdGhlclNjYXR0ZXJBZGRyZXNzKGxsdm06OlZhbHVlICpQdHIsIGxsCi0gCi0gICAg ICAgICAvLyBWZWN0b3JpemUgcHRyCi0gICAgICAgICBsbHZtOjpWYWx1ZSAqdW5kZWZJbnNlcnRW YWx1ZSA9Ci0rI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMV8wCi0rICAgICAg ICAgICAgbGx2bTo6VW5kZWZWYWx1ZTo6Z2V0KGxsdm06OkZpeGVkVmVjdG9yVHlwZTo6Z2V0KAot KyAgICAgICAgICAgICAgICBMTFZNVHlwZXM6OkludDY0VHlwZSwgbGx2bTo6ZHluX2Nhc3Q8bGx2 bTo6VmVjdG9yVHlwZT4oYWRkcmVzc1R5cGUpLT5nZXROdW1FbGVtZW50cygpKSk7Ci0rI2Vsc2UK LSAgICAgICAgICAgICBsbHZtOjpVbmRlZlZhbHVlOjpnZXQobGx2bTo6VmVjdG9yVHlwZTo6Z2V0 KExMVk1UeXBlczo6SW50NjRUeXBlLCBhZGRyZXNzVHlwZS0+Z2V0VmVjdG9yTnVtRWxlbWVudHMo KSkpOwotKyNlbmRpZgotICAgICAgICAgYWRkcmVzcyA9IGxsdm06Okluc2VydEVsZW1lbnRJbnN0 OjpDcmVhdGUodW5kZWZJbnNlcnRWYWx1ZSwgYWRkcmVzcywgTExWTUludDMyKDApLCAic3ZtX3B0 cl9pZWkiLCBJbnNlcnRCZWZvcmUpOwotICAgICAgICAgbGx2bTo6Q29uc3RhbnQgKnplcm9WZWMg PSBsbHZtOjpDb25zdGFudFZlY3Rvcjo6Z2V0U3BsYXQoCi0rI2lmIElTUENfTExWTV9WRVJTSU9O IDwgSVNQQ19MTFZNXzExXzAKLSAgICAgICAgICAgICBhZGRyZXNzVHlwZS0+Z2V0VmVjdG9yTnVt RWxlbWVudHMoKSwKLSsjZWxpZiBJU1BDX0xMVk1fVkVSU0lPTiA9PSBJU1BDX0xMVk1fMTFfMAot KyAgICAgICAgICAgIHtsbHZtOjpkeW5fY2FzdDxsbHZtOjpWZWN0b3JUeXBlPihhZGRyZXNzVHlw ZSktPmdldE51bUVsZW1lbnRzKCksIGZhbHNlfSwKLSsjZWxzZQotKyAgICAgICAgbGx2bTo6RWxl bWVudENvdW50OjpnZXQoCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpk eW5fY2FzdDxsbHZtOjpGaXhlZFZlY3RvclR5cGU+KGFkZHJlc3NUeXBlLT5nZXROdW1FbGVtZW50 cygpLCBmYWxzZSksCi0rI2VuZGlmCi0gICAgICAgICAgICAgbGx2bTo6Q29uc3RhbnQ6OmdldE51 bGxWYWx1ZShsbHZtOjpUeXBlOjpnZXRJbnQzMlR5KEluc2VydEJlZm9yZS0+Z2V0Q29udGV4dCgp KSkpOwotKwotICAgICAgICAgbGx2bTo6VmFsdWUgKnVuZGVmU2h1ZmZsZVZhbHVlID0KLSsjaWYg SVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzExXzAKLSsgICAgICAgICAgICBsbHZtOjpV bmRlZlZhbHVlOjpnZXQobGx2bTo6Rml4ZWRWZWN0b3JUeXBlOjpnZXQoCi0rICAgICAgICAgICAg ICAgIExMVk1UeXBlczo6SW50NjRUeXBlLCBsbHZtOjpkeW5fY2FzdDxsbHZtOjpWZWN0b3JUeXBl PihhZGRyZXNzVHlwZSktPmdldE51bUVsZW1lbnRzKCkpKTsKLSsjZWxzZQotICAgICAgICAgICAg IGxsdm06OlVuZGVmVmFsdWU6OmdldChsbHZtOjpWZWN0b3JUeXBlOjpnZXQoTExWTVR5cGVzOjpJ bnQ2NFR5cGUsIGFkZHJlc3NUeXBlLT5nZXRWZWN0b3JOdW1FbGVtZW50cygpKSk7Ci0rI2VuZGlm Ci0gICAgICAgICBhZGRyZXNzID0gbmV3IGxsdm06OlNodWZmbGVWZWN0b3JJbnN0KGFkZHJlc3Ms IHVuZGVmU2h1ZmZsZVZhbHVlLCB6ZXJvVmVjLCAic3ZtX3B0cl9zdmkiLCBJbnNlcnRCZWZvcmUp OwotIAotICAgICAgICAgLy8gQ2FsY3VsYXRlIGFkZHJlc3MKLUBAIC02NTUzLDkgKzY2MDgsMTIg QEAgbGx2bTo6SW5zdHJ1Y3Rpb24gKkZpeEFkZHJlc3NTcGFjZTo6cHJvY2Vzc1ZlY3RvckxvYWQo bGx2bTo6TG9hZEluc3QgKkxJKSB7Ci0gICAgIGlmIChyZXRUeXBlLT5nZXRTY2FsYXJUeXBlKCkt PmlzUG9pbnRlclR5KCkpIHsKLSAgICAgICAgIGlzUHRyTG9hZCA9IHRydWU7Ci0gICAgICAgICBh dXRvIHNjYWxhclR5cGUgPSBnLT50YXJnZXQtPmlzMzJCaXQoKSA/IExMVk1UeXBlczo6SW50MzJU eXBlIDogTExWTVR5cGVzOjpJbnQ2NFR5cGU7Ci0rI2lmIElTUENfTExWTV9WRVJTSU9OID49IElT UENfTExWTV8xMV8wCi0rICAgICAgICByZXRUeXBlID0gbGx2bTo6Rml4ZWRWZWN0b3JUeXBlOjpn ZXQoc2NhbGFyVHlwZSwgbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6VmVjdG9yVHlwZT4ocmV0VHlwZSkt PmdldE51bUVsZW1lbnRzKCkpOwotKyNlbHNlCi0gICAgICAgICByZXRUeXBlID0gbGx2bTo6VmVj dG9yVHlwZTo6Z2V0KHNjYWxhclR5cGUsIHJldFR5cGUtPmdldFZlY3Rvck51bUVsZW1lbnRzKCkp OwotKyNlbmRpZgotICAgICB9Ci0tCi0gICAgIGxsdm06Okluc3RydWN0aW9uICpyZXMgPSBsR2Vu WExvYWRJbnN0KHB0ciwgcmV0VHlwZSwgbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6SW5zdHJ1Y3Rpb24+ KExJKSk7Ci0gICAgIEFzc2VydChyZXMpOwotIAotQEAgLTY1ODAsMTEgKzY2MzgsMTYgQEAgbGx2 bTo6SW5zdHJ1Y3Rpb24gKkZpeEFkZHJlc3NTcGFjZTo6cHJvY2Vzc1NWTVZlY3RvckxvYWQobGx2 bTo6SW5zdHJ1Y3Rpb24gKkNJKQotICAgICBwdHIgPSBuZXcgbGx2bTo6SW50VG9QdHJJbnN0KHB0 ciwgbGx2bTo6UG9pbnRlclR5cGU6OmdldChyZXRUeXBlLCAwKSwgQ0ktPmdldE5hbWUoKSArICJf aW50dG9wdHIiLCBDSSk7Ci0gICAgIGxsdm06Okluc3RydWN0aW9uICpsb2FkSW5zdCA9IE5VTEw7 Ci0gI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMV8wCi0tICAgIGxvYWRJbnN0 ID0gbmV3IGxsdm06OkxvYWRJbnN0KGxsdm06OmR5bl9jYXN0PGxsdm06OlBvaW50ZXJUeXBlPihw dHItPmdldFR5cGUoKSktPmdldFBvaW50ZXJFbGVtZW50VHlwZSgpLCBsb2FkSW5zdCwKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ0ktPmdldE5hbWUoKSwgKGxsdm06Okluc3Ry dWN0aW9uICopTlVMTCk7Ci0rICAgIGxvYWRJbnN0ID0gbmV3IGxsdm06OkxvYWRJbnN0KGxsdm06 OmR5bl9jYXN0PGxsdm06OlBvaW50ZXJUeXBlPihwdHItPmdldFR5cGUoKSktPmdldFBvaW50ZXJF bGVtZW50VHlwZSgpLCBwdHIsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENJ LT5nZXROYW1lKCksIGZhbHNlIC8qIG5vdCB2b2xhdGlsZSAqLywKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgbGx2bTo6TWF5YmVBbGlnbihnLT50YXJnZXQtPmdldE5hdGl2ZVZl Y3RvckFsaWdubWVudCgpKS52YWx1ZU9yT25lKCksCi0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIChsbHZtOjpJbnN0cnVjdGlvbiAqKU5VTEwpOwotICNlbHNlCi0tICAgIGxvYWRJ bnN0ID0gbmV3IGxsdm06OkxvYWRJbnN0KHB0ciwgQ0ktPmdldE5hbWUoKSwgKGxsdm06Okluc3Ry dWN0aW9uICopTlVMTCk7Ci0rICAgIGxvYWRJbnN0ID0gbmV3IGxsdm06OkxvYWRJbnN0KHB0ciwg Q0ktPmdldE5hbWUoKSwgZmFsc2UsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGxsdm06Ok1heWJlQWxpZ24oZy0+dGFyZ2V0LT5nZXROYXRpdmVWZWN0b3JBbGlnbm1lbnQoKSku dmFsdWVPck9uZSgpLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGx2bTo6 SW5zdHJ1Y3Rpb24gKilOVUxMKTsKLSAjZW5kaWYKLSsKLSAgICAgQXNzZXJ0KGxvYWRJbnN0KTsK LSAgICAgcmV0dXJuIGxvYWRJbnN0OwotIH0KLUBAIC02NjA2LDcgKzY2NjksMTEgQEAgbGx2bTo6 SW5zdHJ1Y3Rpb24gKkZpeEFkZHJlc3NTcGFjZTo6cHJvY2Vzc1ZlY3RvclN0b3JlKGxsdm06OlN0 b3JlSW5zdCAqU0kpIHsKLSAgICAgLy8gTm90ZTogaXQgZG9lc24ndCBsb29rIGxpa2UgYSBub3Jt YWwgY2FzZSBmb3IgR2VuWCB0YXJnZXQKLSAgICAgaWYgKHZhbFR5cGUtPmdldFNjYWxhclR5cGUo KS0+aXNQb2ludGVyVHkoKSkgewotICAgICAgICAgYXV0byBzY2FsYXJUeXBlID0gZy0+dGFyZ2V0 LT5pczMyQml0KCkgPyBMTFZNVHlwZXM6OkludDMyVHlwZSA6IExMVk1UeXBlczo6SW50NjRUeXBl OwotKyNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTFfMAotKyAgICAgICAgdmFs VHlwZSA9IGxsdm06OkZpeGVkVmVjdG9yVHlwZTo6Z2V0KHNjYWxhclR5cGUsIGxsdm06OmR5bl9j YXN0PGxsdm06OlZlY3RvclR5cGU+KHZhbFR5cGUpLT5nZXROdW1FbGVtZW50cygpKTsKLSsjZWxz ZQotICAgICAgICAgdmFsVHlwZSA9IGxsdm06OlZlY3RvclR5cGU6OmdldChzY2FsYXJUeXBlLCB2 YWxUeXBlLT5nZXRWZWN0b3JOdW1FbGVtZW50cygpKTsKLSsjZW5kaWYKLSAgICAgICAgIHZhbCA9 IG5ldyBsbHZtOjpQdHJUb0ludEluc3QodmFsLCB2YWxUeXBlLCAic3ZtX3N0X3ZhbF9wdHJ0b2lu dCIsIFNJKTsKLSAgICAgfQotIAotQEAgLTY2MzEsMTIgKzY2OTgsOCBAQCBsbHZtOjpJbnN0cnVj dGlvbiAqRml4QWRkcmVzc1NwYWNlOjpwcm9jZXNzU1ZNVmVjdG9yU3RvcmUobGx2bTo6SW5zdHJ1 Y3Rpb24gKkNJKQotICAgICBwdHIgPSBuZXcgbGx2bTo6SW50VG9QdHJJbnN0KHB0ciwgbGx2bTo6 UG9pbnRlclR5cGU6OmdldCh2YWxUeXBlLCAwKSwgQ0ktPmdldE5hbWUoKSArICJfaW50dG9wdHIi LCBDSSk7Ci0gCi0gICAgIGxsdm06Okluc3RydWN0aW9uICpzdG9yZUluc3QgPSBOVUxMOwotLSNp ZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTFfMAotLSAgICBsb2FkSW5zdCA9IG5l dyBsbHZtOjpTdG9yZUluc3QodmFsLCBsbHZtOjpkeW5fY2FzdDxsbHZtOjpQb2ludGVyVHlwZT4o cHRyLT5nZXRUeXBlKCkpLT5nZXRQb2ludGVyRWxlbWVudFR5cGUoKSwKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHN0b3JlSW5zdCwgQ0ktPmdldE5hbWUoKSwgKGxsdm06Oklu c3RydWN0aW9uICopTlVMTCk7Ci0tI2Vsc2UKLS0gICAgc3RvcmVJbnN0ID0gbmV3IGxsdm06OlN0 b3JlSW5zdCh2YWwsIHB0ciwgKGxsdm06Okluc3RydWN0aW9uICopTlVMTCk7Ci0tI2VuZGlmCi0r ICAgIHN0b3JlSW5zdCA9IG5ldyBsbHZtOjpTdG9yZUluc3QodmFsLCBwdHIsIChsbHZtOjpJbnN0 cnVjdGlvbiAqKU5VTEwsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGx2 bTo6TWF5YmVBbGlnbihnLT50YXJnZXQtPmdldE5hdGl2ZVZlY3RvckFsaWdubWVudCgpKS52YWx1 ZU9yT25lKCkpOwotICAgICBBc3NlcnQoc3RvcmVJbnN0KTsKLSAgICAgcmV0dXJuIHN0b3JlSW5z dDsKLSB9Ci1AQCAtNjY0NSwxNSArNjcwOCwxOCBAQCBsbHZtOjpJbnN0cnVjdGlvbiAqRml4QWRk cmVzc1NwYWNlOjpjcmVhdGVJbnQ4V3JSZWdpb24obGx2bTo6VmFsdWUgKlZhbCwgbGx2bTo6Vgot ICAgICBpbnQgd2lkdGggPSBnLT50YXJnZXQtPmdldFZlY3RvcldpZHRoKCk7Ci0gCi0gICAgIGxs dm06OlZhbHVlICpBcmdzWzhdOwotLQotKyNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xM Vk1fMTFfMAotKyAgICBBcmdzWzBdID0gbGx2bTo6VW5kZWZWYWx1ZTo6Z2V0KGxsdm06OkZpeGVk VmVjdG9yVHlwZTo6Z2V0KExMVk1UeXBlczo6SW50OFR5cGUsIHdpZHRoICogNCkpOyAvLyBvbGQg dmFsdWUKLSsjZWxzZQotICAgICBBcmdzWzBdID0gbGx2bTo6VW5kZWZWYWx1ZTo6Z2V0KGxsdm06 OlZlY3RvclR5cGU6OmdldChMTFZNVHlwZXM6OkludDhUeXBlLCB3aWR0aCAqIDQpKTsgLy8gb2xk IHZhbHVlCi0tICAgIEFyZ3NbMV0gPSBWYWw7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB2YWx1ZSB0byBz dG9yZQotLSAgICBBcmdzWzJdID0gbGx2bTo6Q29uc3RhbnRJbnQ6OmdldChMTFZNVHlwZXM6Oklu dDMyVHlwZSwgMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdnN0cmlkZQotLSAg ICBBcmdzWzNdID0gbGx2bTo6Q29uc3RhbnRJbnQ6OmdldChMTFZNVHlwZXM6OkludDMyVHlwZSwg d2lkdGgpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2lkdGgKLS0gICAgQXJnc1s0XSA9 IGxsdm06OkNvbnN0YW50SW50OjpnZXQoTExWTVR5cGVzOjpJbnQzMlR5cGUsIDQpOyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIC8vIHN0cmlkZQotLSAgICBBcmdzWzVdID0gbGx2bTo6Q29u c3RhbnRJbnQ6OmdldChMTFZNVHlwZXM6OkludDE2VHlwZSwgMCk7ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgLy8gb2Zmc2V0cwotLSAgICBBcmdzWzZdID0gbGx2bTo6Q29uc3RhbnRJbnQ6 OmdldChMTFZNVHlwZXM6OkludDMyVHlwZSwgMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgLy8gcGFyZW50IHdpZHRoIChpZ25vcmVkKQotLSAgICBBcmdzWzddID0gTWFzazsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgLy8gbWFzawotKyNlbmRpZgotKyAgICBBcmdzWzFdID0gVmFsOyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB2YWx1ZSB0byBzdG9yZQot KyAgICBBcmdzWzJdID0gbGx2bTo6Q29uc3RhbnRJbnQ6OmdldChMTFZNVHlwZXM6OkludDMyVHlw ZSwgMCk7ICAgICAvLyB2c3RyaWRlCi0rICAgIEFyZ3NbM10gPSBsbHZtOjpDb25zdGFudEludDo6 Z2V0KExMVk1UeXBlczo6SW50MzJUeXBlLCB3aWR0aCk7IC8vIHdpZHRoCi0rICAgIEFyZ3NbNF0g PSBsbHZtOjpDb25zdGFudEludDo6Z2V0KExMVk1UeXBlczo6SW50MzJUeXBlLCA0KTsgICAgIC8v IHN0cmlkZQotKyAgICBBcmdzWzVdID0gbGx2bTo6Q29uc3RhbnRJbnQ6OmdldChMTFZNVHlwZXM6 OkludDE2VHlwZSwgMCk7ICAgICAvLyBvZmZzZXRzCi0rICAgIEFyZ3NbNl0gPSBsbHZtOjpDb25z dGFudEludDo6Z2V0KExMVk1UeXBlczo6SW50MzJUeXBlLCAwKTsgICAgIC8vIHBhcmVudCB3aWR0 aCAoaWdub3JlZCkKLSsgICAgQXJnc1s3XSA9IE1hc2s7ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgLy8gbWFzawotIAotICAgICBsbHZtOjpUeXBlICpUeXNb NF07Ci0gCi1AQCAtNjcwOCw3ICs2Nzc0LDEyIEBAIGxsdm06Okluc3RydWN0aW9uICpGaXhBZGRy ZXNzU3BhY2U6OnByb2Nlc3NHYXRoZXJTY2F0dGVyUHJpdmF0ZShsbHZtOjpDYWxsSW5zdCAqCi0g ICAgICAgICByZXR1cm4gTlVMTDsKLSAKLSAgICAgbGx2bTo6VmFsdWUgKmFkZHJlc3MgPSBjYWxj dWxhdGVHYXRoZXJTY2F0dGVyQWRkcmVzcyhwdHIsIG9mZnNldHMsIENJKTsKLSsjaWYgSVNQQ19M TFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzExXzAKLSsgICAgbGx2bTo6VHlwZSAqaThWZWNUeXBl ID0gbGx2bTo6Rml4ZWRWZWN0b3JUeXBlOjpnZXQoTExWTVR5cGVzOjpJbnQ4VHlwZSwgd2lkdGgg KiA0KTsKLSsjZWxzZQotICAgICBsbHZtOjpUeXBlICppOFZlY1R5cGUgPSBsbHZtOjpWZWN0b3JU eXBlOjpnZXQoTExWTVR5cGVzOjpJbnQ4VHlwZSwgd2lkdGggKiA0KTsKLSsjZW5kaWYKLSsKLSAg ICAgYm9vbCBpc0ludDggPSAodmFsdWUtPmdldFR5cGUoKS0+Z2V0U2NhbGFyVHlwZSgpID09IExM Vk1UeXBlczo6SW50OFR5cGUpOwotIAotICAgICBBc3NlcnQoYWRkcmVzcyAmJiAiQmFkIGdhdGhl ci9zY2F0dGVyIGFkZHJlc3MhIik7CmRpZmYgLS1naXQgYS9zcmNwa2dzL2lzcGMvcGF0Y2hlcy9s bHZtMTItMDA2LnBhdGNoIGIvc3JjcGtncy9pc3BjL3BhdGNoZXMvbGx2bTEyLTAwNi5wYXRjaApk ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTgyOWVhNDgzOTFlLi4wMDAwMDAwMDAwMDAK LS0tIGEvc3JjcGtncy9pc3BjL3BhdGNoZXMvbGx2bTEyLTAwNi5wYXRjaAorKysgL2Rldi9udWxs CkBAIC0xLDEyNiArMCwwIEBACi1Gcm9tIGJiM2Y0OTNkMWZiZDQ1Yzc5ZTFkOWRlZTY3YTA0MzBi YTMxM2VhYWQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBBcmluYSBOZXNobHlhZXZh IDxhcmluYS5uZXNobHlhZXZhQGludGVsLmNvbT4KLURhdGU6IFR1ZSwgMTkgSmFuIDIwMjEgMTE6 MDc6MzMgLTA4MDAKLVN1YmplY3Q6IFtQQVRDSF0gRml4ZWQgaWZkZWZzIGZvciBMTFZNXzExCi0K LS0tLQotIHNyYy9jdHguY3BwIHwgIDYgKysrLS0tCi0gc3JjL29wdC5jcHAgfCAxOCArKysrKysr KystLS0tLS0tLS0KLSAyIGZpbGVzIGNoYW5nZWQsIDEyIGluc2VydGlvbnMoKyksIDEyIGRlbGV0 aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvc3JjL2N0eC5jcHAgYi9zcmMvY3R4LmNwcAotaW5kZXgg MmE3MmU2ODM3Li41MjdhMDJmMzAgMTAwNjQ0Ci0tLS0gYS9zcmMvY3R4LmNwcAotKysrIGIvc3Jj L2N0eC5jcHAKLUBAIC0xNjkxLDcgKzE2OTEsNyBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0 Q29udGV4dDo6U21lYXJVbmlmb3JtKGxsdm06OlZhbHVlICp2YWx1ZSwgY29uc3QgbGx2bTo6VAot ICAgICBpZiAobGx2bTo6Q29uc3RhbnQgKmNvbnN0X3ZhbCA9IGxsdm06OmR5bl9jYXN0PGxsdm06 OkNvbnN0YW50Pih2YWx1ZSkpIHsKLSAjaWYgSVNQQ19MTFZNX1ZFUlNJT04gPCBJU1BDX0xMVk1f MTFfMAotICAgICAgICAgcmV0ID0gbGx2bTo6Q29uc3RhbnRWZWN0b3I6OmdldFNwbGF0KGctPnRh cmdldC0+Z2V0VmVjdG9yV2lkdGgoKSwgY29uc3RfdmFsKTsKLS0jZWxpZiBJU1BDX0xMVk1fVkVS U0lPTiA9PSBJU1BDX0xMVk1fMTFfMAotKyNlbGlmIElTUENfTExWTV9WRVJTSU9OIDwgSVNQQ19M TFZNXzEyXzAKLSAgICAgICAgIHJldCA9Ci0gICAgICAgICAgICAgbGx2bTo6Q29uc3RhbnRWZWN0 b3I6OmdldFNwbGF0KHtzdGF0aWNfY2FzdDx1bnNpZ25lZCBpbnQ+KGctPnRhcmdldC0+Z2V0VmVj dG9yV2lkdGgoKSksIGZhbHNlfSwgY29uc3RfdmFsKTsKLSAjZWxzZSAvLyBMTFZNIDEyLjArCi1A QCAtMzE0OCw3ICszMTQ4LDcgQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkJy b2FkY2FzdFZhbHVlKGxsdm06OlZhbHVlICp2LCBsbHZtOjpUeXBlICp2ZWMKLSAjaWYgSVNQQ19M TFZNX1ZFUlNJT04gPCBJU1BDX0xMVk1fMTFfMAotICAgICBsbHZtOjpDb25zdGFudCAqemVyb1Zl YyA9IGxsdm06OkNvbnN0YW50VmVjdG9yOjpnZXRTcGxhdCgKLSAgICAgICAgIHZlY1R5cGUtPmdl dFZlY3Rvck51bUVsZW1lbnRzKCksIGxsdm06OkNvbnN0YW50OjpnZXROdWxsVmFsdWUobGx2bTo6 VHlwZTo6Z2V0SW50MzJUeSgqZy0+Y3R4KSkpOwotLSNlbGlmIElTUENfTExWTV9WRVJTSU9OID09 IElTUENfTExWTV8xMV8wCi0rI2VsaWYgSVNQQ19MTFZNX1ZFUlNJT04gPCBJU1BDX0xMVk1fMTJf MAotICAgICBsbHZtOjpDb25zdGFudCAqemVyb1ZlYyA9Ci0gICAgICAgICBsbHZtOjpDb25zdGFu dFZlY3Rvcjo6Z2V0U3BsYXQoe3N0YXRpY19jYXN0PHVuc2lnbmVkIGludD4odHktPmdldE51bUVs ZW1lbnRzKCkpLCBmYWxzZX0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgbGx2bTo6Q29uc3RhbnQ6OmdldE51bGxWYWx1ZShsbHZtOjpUeXBlOjpnZXRJbnQzMlR5KCpn LT5jdHgpKSk7Ci1AQCAtMzY4OCw3ICszNjg4LDcgQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1p dENvbnRleHQ6OkdlblhTaW1kQ0ZQcmVkaWNhdGUobGx2bTo6VmFsdWUgKnZhbHVlLCBsbHZtOjoK LSAjaWYgSVNQQ19MTFZNX1ZFUlNJT04gPCBJU1BDX0xMVk1fMTFfMAotICAgICAgICAgZGVmYXVs dHMgPSBsbHZtOjpDb25zdGFudFZlY3Rvcjo6Z2V0U3BsYXQodnQtPmdldFZlY3Rvck51bUVsZW1l bnRzKCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBsbHZtOjpDb25zdGFudDo6Z2V0TnVsbFZhbHVlKHZ0LT5nZXRFbGVtZW50VHlwZSgpKSk7Ci0t I2VsaWYgSVNQQ19MTFZNX1ZFUlNJT04gPT0gSVNQQ19MTFZNXzExXzAKLSsjZWxpZiBJU1BDX0xM Vk1fVkVSU0lPTiA8IElTUENfTExWTV8xMl8wCi0gICAgICAgICBkZWZhdWx0cyA9IGxsdm06OkNv bnN0YW50VmVjdG9yOjpnZXRTcGxhdCh7c3RhdGljX2Nhc3Q8dW5zaWduZWQgaW50Pih2dC0+Z2V0 TnVtRWxlbWVudHMoKSksIGZhbHNlfSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGxsdm06OkNvbnN0YW50OjpnZXROdWxsVmFsdWUodnQtPmdldEVs ZW1lbnRUeXBlKCkpKTsKLSAjZWxzZQotZGlmZiAtLWdpdCBhL3NyYy9vcHQuY3BwIGIvc3JjL29w dC5jcHAKLWluZGV4IDE3ODliODQ3Ni4uM2ZmMTkxYTBhIDEwMDY0NAotLS0tIGEvc3JjL29wdC5j cHAKLSsrKyBiL3NyYy9vcHQuY3BwCi1AQCAtMTA0NSw3ICsxMDQ1LDcgQEAgYm9vbCBJbnRyaW5z aWNzT3B0OjpydW5PbkJhc2ljQmxvY2sobGx2bTo6QmFzaWNCbG9jayAmYmIpIHsKLSAgICAgICAg ICAgICAgICAgICAgIGFsaWduID0gZy0+dGFyZ2V0LT5nZXROYXRpdmVWZWN0b3JBbGlnbm1lbnQo KTsKLSAgICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICAgYWxpZ24gPSBj YWxsSW5zdC0+Z2V0Q2FsbGVkRnVuY3Rpb24oKSA9PSBhdnhNYXNrZWRMb2FkMzIgPyA0IDogODsK LS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPT0gSVNQQ19MTFZNXzEwXzAKLSsjaWYgSVNQQ19MTFZN X1ZFUlNJT04gPCBJU1BDX0xMVk1fMTFfMAotICAgICAgICAgICAgICAgICBsbHZtOjpJbnN0cnVj dGlvbiAqbG9hZEluc3QgPQotICAgICAgICAgICAgICAgICAgICAgbmV3IGxsdm06OkxvYWRJbnN0 KGNhc3RQdHIsIGxsdm06OlR3aW5lKGNhbGxJbnN0LT5nZXRBcmdPcGVyYW5kKDApLT5nZXROYW1l KCkpICsgIl9sb2FkIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBm YWxzZSAvKiBub3Qgdm9sYXRpbGUgKi8sIGxsdm06Ok1heWJlQWxpZ24oYWxpZ24pLCAobGx2bTo6 SW5zdHJ1Y3Rpb24gKilOVUxMKTsKLUBAIC0xNDcyLDcgKzE0NzIsNyBAQCBzdGF0aWMgbGx2bTo6 VmFsdWUgKmxHZXRCYXNlUHRyQW5kT2Zmc2V0cyhsbHZtOjpWYWx1ZSAqcHRycywgbGx2bTo6VmFs dWUgKipvZmZzZQotICAgICAgICAgICAgICAgICAgICAgbGx2bTo6VmFsdWUgKnplcm9NYXNrID0K LSAjaWYgSVNQQ19MTFZNX1ZFUlNJT04gPCBJU1BDX0xMVk1fMTFfMAotICAgICAgICAgICAgICAg ICAgICAgICAgIGxsdm06OkNvbnN0YW50VmVjdG9yOjpnZXRTcGxhdChjdi0+Z2V0VHlwZSgpLT5n ZXRWZWN0b3JOdW1FbGVtZW50cygpLAotLSNlbGlmIElTUENfTExWTV9WRVJTSU9OID09IElTUENf TExWTV8xMV8wCi0rI2VsaWYgSVNQQ19MTFZNX1ZFUlNJT04gPCBJU1BDX0xMVk1fMTJfMAotICAg ICAgICAgICAgICAgICAgICAgICAgIGxsdm06OkNvbnN0YW50VmVjdG9yOjpnZXRTcGxhdCgKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAge2xsdm06OmR5bl9jYXN0PGxsdm06OlZlY3RvclR5 cGU+KGN2LT5nZXRUeXBlKCkpLT5nZXROdW1FbGVtZW50cygpLCBmYWxzZX0sCi0gI2Vsc2UgLy8g TExWTSAxMi4wKwotQEAgLTE0OTUsNyArMTQ5NSw3IEBAIHN0YXRpYyBsbHZtOjpWYWx1ZSAqbEdl dEJhc2VQdHJBbmRPZmZzZXRzKGxsdm06OlZhbHVlICpwdHJzLCBsbHZtOjpWYWx1ZSAqKm9mZnNl Ci0gICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6VmFsdWUgKnplcm9NYXNrID0gbGx2bTo6 Q29uc3RhbnRWZWN0b3I6OmdldFNwbGF0KAotICNpZiBJU1BDX0xMVk1fVkVSU0lPTiA8IElTUENf TExWTV8xMV8wCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcF92YXJfdHlwZS0+Z2V0 VmVjdG9yTnVtRWxlbWVudHMoKSwKLS0jZWxpZiBJU1BDX0xMVk1fVkVSU0lPTiA9PSBJU1BDX0xM Vk1fMTFfMAotKyNlbGlmIElTUENfTExWTV9WRVJTSU9OIDwgSVNQQ19MTFZNXzEyXzAKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAge2xsdm06OmR5bl9jYXN0PGxsdm06OlZlY3RvclR5cGU+ KGJvcF92YXJfdHlwZSktPmdldE51bUVsZW1lbnRzKCksIGZhbHNlfSwKLSAjZWxzZSAvLyBMTFZN IDEyLjArCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06OkVsZW1lbnRDb3VudDo6 Z2V0KAotQEAgLTI4MDMsNyArMjgwMyw3IEBAIHN0YXRpYyBib29sIGxHU1RvTG9hZFN0b3JlKGxs dm06OkNhbGxJbnN0ICpjYWxsSW5zdCkgewotICAgICAgICAgICAgIGxsdm06OlZhbHVlICp6ZXJv TWFzayA9Ci0gI2lmIElTUENfTExWTV9WRVJTSU9OIDwgSVNQQ19MTFZNXzExXzAKLSAgICAgICAg ICAgICAgICAgbGx2bTo6Q29uc3RhbnRWZWN0b3I6OmdldFNwbGF0KGNhbGxJbnN0LT5nZXRUeXBl KCktPmdldFZlY3Rvck51bUVsZW1lbnRzKCksCi0tI2VsaWYgSVNQQ19MTFZNX1ZFUlNJT04gPT0g SVNQQ19MTFZNXzExXzAKLSsjZWxpZiBJU1BDX0xMVk1fVkVSU0lPTiA8IElTUENfTExWTV8xMl8w Ci0gICAgICAgICAgICAgICAgIGxsdm06OkNvbnN0YW50VmVjdG9yOjpnZXRTcGxhdCgKLSAgICAg ICAgICAgICAgICAgICAgIHtsbHZtOjpkeW5fY2FzdDxsbHZtOjpWZWN0b3JUeXBlPihjYWxsSW5z dC0+Z2V0VHlwZSgpKS0+Z2V0TnVtRWxlbWVudHMoKSwgZmFsc2V9LAotIAotQEAgLTMxMDAsNyAr MzEwMCw3IEBAIHN0YXRpYyBib29sIGxJbXByb3ZlTWFza2VkTG9hZChsbHZtOjpDYWxsSW5zdCAq Y2FsbEluc3QsIGxsdm06OkJhc2ljQmxvY2s6Oml0ZXJhCi0gICAgICAgICB7Ci0gICAgICAgICAg ICAgbGx2bTo6VHlwZSAqcHRyVHlwZSA9IGxsdm06OlBvaW50ZXJUeXBlOjpnZXQoY2FsbEluc3Qt PmdldFR5cGUoKSwgMCk7Ci0gICAgICAgICAgICAgcHRyID0gbmV3IGxsdm06OkJpdENhc3RJbnN0 KHB0ciwgcHRyVHlwZSwgInB0cl9jYXN0X2Zvcl9sb2FkIiwgY2FsbEluc3QpOwotLSNpZiBJU1BD X0xMVk1fVkVSU0lPTiA9PSBJU1BDX0xMVk1fMTBfMAotKyNpZiBJU1BDX0xMVk1fVkVSU0lPTiA8 IElTUENfTExWTV8xMV8wCi0gICAgICAgICAgICAgbG9hZCA9IG5ldyBsbHZtOjpMb2FkSW5zdCgK LSAgICAgICAgICAgICAgICAgcHRyLCBjYWxsSW5zdC0+Z2V0TmFtZSgpLCBmYWxzZSAvKiBub3Qg dm9sYXRpbGUgKi8sCi0gICAgICAgICAgICAgICAgIGxsdm06Ok1heWJlQWxpZ24oZy0+b3B0LmZv cmNlQWxpZ25lZE1lbW9yeSA/IGctPnRhcmdldC0+Z2V0TmF0aXZlVmVjdG9yQWxpZ25tZW50KCkg OiBpbmZvLT5hbGlnbikKLUBAIC0zNDU5LDcgKzM0NTksNyBAQCBsbHZtOjpWYWx1ZSAqbEdFUEFu ZExvYWQobGx2bTo6VmFsdWUgKmJhc2VQdHIsIGludDY0X3Qgb2Zmc2V0LCBpbnQgYWxpZ24sIGxs dm06OgotICAgICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpUeXBlICp0eXBlKSB7Ci0gICAg IGxsdm06OlZhbHVlICpwdHIgPSBsR0VQSW5zdChiYXNlUHRyLCBMTFZNSW50NjQob2Zmc2V0KSwg Im5ld19iYXNlIiwgaW5zZXJ0QmVmb3JlKTsKLSAgICAgcHRyID0gbmV3IGxsdm06OkJpdENhc3RJ bnN0KHB0ciwgbGx2bTo6UG9pbnRlclR5cGU6OmdldCh0eXBlLCAwKSwgInB0cl9jYXN0IiwgaW5z ZXJ0QmVmb3JlKTsKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPT0gSVNQQ19MTFZNXzEwXzAKLSsj aWYgSVNQQ19MTFZNX1ZFUlNJT04gPCBJU1BDX0xMVk1fMTFfMAotICAgICByZXR1cm4gbmV3IGxs dm06OkxvYWRJbnN0KHB0ciwgImdhdGhlcl9sb2FkIiwgZmFsc2UgLyogbm90IHZvbGF0aWxlICov LCBsbHZtOjpNYXliZUFsaWduKGFsaWduKSwgaW5zZXJ0QmVmb3JlKTsKLSAjZWxzZSAvLyBMTFZN IDExLjArCi0gICAgIHJldHVybiBuZXcgbGx2bTo6TG9hZEluc3QobGx2bTo6ZHluX2Nhc3Q8bGx2 bTo6UG9pbnRlclR5cGU+KHB0ci0+Z2V0VHlwZSgpKS0+Z2V0UG9pbnRlckVsZW1lbnRUeXBlKCks IHB0ciwKLUBAIC02MTgzLDcgKzYxODMsNyBAQCBib29sIFJlcGxhY2VMTFZNSW50cmluc2ljczo6 cnVuT25CYXNpY0Jsb2NrKGxsdm06OkJhc2ljQmxvY2sgJmJiKSB7Ci0gICAgICAgICAgICAgICAg IEFyZ3MucHVzaF9iYWNrKGxsdm06OkNvbnN0YW50VmVjdG9yOjpnZXRTcGxhdCgKLSAjaWYgSVNQ Q19MTFZNX1ZFUlNJT04gPCBJU1BDX0xMVk1fMTFfMAotICAgICAgICAgICAgICAgICAgICAgZy0+ dGFyZ2V0LT5nZXROYXRpdmVWZWN0b3JXaWR0aCgpLAotLSNlbGlmIElTUENfTExWTV9WRVJTSU9O ID09IElTUENfTExWTV8xMV8wCi0rI2VsaWYgSVNQQ19MTFZNX1ZFUlNJT04gPCBJU1BDX0xMVk1f MTJfMAotICAgICAgICAgICAgICAgICAgICAge3N0YXRpY19jYXN0PHVuc2lnbmVkIGludD4oZy0+ dGFyZ2V0LT5nZXROYXRpdmVWZWN0b3JXaWR0aCgpKSwgZmFsc2V9LAotICNlbHNlIC8vIExMVk0g MTIuMCsKLSAgICAgICAgICAgICAgICAgICAgIGxsdm06OkVsZW1lbnRDb3VudDo6Z2V0KHN0YXRp Y19jYXN0PHVuc2lnbmVkIGludD4oZy0+dGFyZ2V0LT5nZXROYXRpdmVWZWN0b3JXaWR0aCgpKSwg ZmFsc2UpLAotQEAgLTYxOTUsNyArNjE5NSw3IEBAIGJvb2wgUmVwbGFjZUxMVk1JbnRyaW5zaWNz OjpydW5PbkJhc2ljQmxvY2sobGx2bTo6QmFzaWNCbG9jayAmYmIpIHsKLSAgICAgICAgICAgICAg ICAgbGx2bTo6VmFsdWUgKnplcm9NYXNrID0gbGx2bTo6Q29uc3RhbnRWZWN0b3I6OmdldFNwbGF0 KAotICNpZiBJU1BDX0xMVk1fVkVSU0lPTiA8IElTUENfTExWTV8xMV8wCi0gICAgICAgICAgICAg ICAgICAgICBnLT50YXJnZXQtPmdldE5hdGl2ZVZlY3RvcldpZHRoKCksCi0tI2VsaWYgSVNQQ19M TFZNX1ZFUlNJT04gPT0gSVNQQ19MTFZNXzExXzAKLSsjZWxpZiBJU1BDX0xMVk1fVkVSU0lPTiA8 IElTUENfTExWTV8xMl8wCi0gICAgICAgICAgICAgICAgICAgICB7c3RhdGljX2Nhc3Q8dW5zaWdu ZWQgaW50PihnLT50YXJnZXQtPmdldE5hdGl2ZVZlY3RvcldpZHRoKCkpLCBmYWxzZX0sCi0gI2Vs c2UgLy8gTExWTSAxMi4wKwotICAgICAgICAgICAgICAgICAgICAgbGx2bTo6RWxlbWVudENvdW50 OjpnZXQoc3RhdGljX2Nhc3Q8dW5zaWduZWQgaW50PihnLT50YXJnZXQtPmdldE5hdGl2ZVZlY3Rv cldpZHRoKCkpLCBmYWxzZSksCi1AQCAtNjU2Nyw3ICs2NTY3LDcgQEAgbGx2bTo6VmFsdWUgKkZp eEFkZHJlc3NTcGFjZTo6Y2FsY3VsYXRlR2F0aGVyU2NhdHRlckFkZHJlc3MobGx2bTo6VmFsdWUg KlB0ciwgbGwKLSAgICAgICAgIGxsdm06OkNvbnN0YW50ICp6ZXJvVmVjID0gbGx2bTo6Q29uc3Rh bnRWZWN0b3I6OmdldFNwbGF0KAotICNpZiBJU1BDX0xMVk1fVkVSU0lPTiA8IElTUENfTExWTV8x MV8wCi0gICAgICAgICAgICAgYWRkcmVzc1R5cGUtPmdldFZlY3Rvck51bUVsZW1lbnRzKCksCi0t I2VsaWYgSVNQQ19MTFZNX1ZFUlNJT04gPT0gSVNQQ19MTFZNXzExXzAKLSsjZWxpZiBJU1BDX0xM Vk1fVkVSU0lPTiA8IElTUENfTExWTV8xMl8wCi0gICAgICAgICAgICAge2xsdm06OmR5bl9jYXN0 PGxsdm06OlZlY3RvclR5cGU+KGFkZHJlc3NUeXBlKS0+Z2V0TnVtRWxlbWVudHMoKSwgZmFsc2V9 LAotICNlbHNlCi0gICAgICAgICBsbHZtOjpFbGVtZW50Q291bnQ6OmdldCgKZGlmZiAtLWdpdCBh L3NyY3BrZ3MvaXNwYy9wYXRjaGVzL2xsdm0xMi0wMDcucGF0Y2ggYi9zcmNwa2dzL2lzcGMvcGF0 Y2hlcy9sbHZtMTItMDA3LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxYjk3 NWY4OTZjN2UuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2lzcGMvcGF0Y2hlcy9sbHZtMTIt MDA3LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTYwICswLDAgQEAKLUZyb20gNjJmNWE2YzM3 YmYyNmZjMjVhN2NmODE4NjgwNTJkMzQ3Mjg3NDYxMCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK LUZyb206IEFyaW5hIE5lc2hseWFldmEgPGFyaW5hLm5lc2hseWFldmFAaW50ZWwuY29tPgotRGF0 ZTogVHVlLCAyMyBNYXIgMjAyMSAyMzowNzozMCAtMDcwMAotU3ViamVjdDogW1BBVENIXSBEbyBu b3QgZ2VuZXJhdGUgZnVuY3Rpb24gbWFzayB3aGVuIGl0IGlzIG5vdCByZXF1aXJlZAotCi0tLS0K LSBzcmMvY3R4LmNwcCAgICAgICAgICAgICAgICAgICAgfCAzOSArKysrKysrKysrKysrKy0tLS0t LS0KLSB0ZXN0cy9saXQtdGVzdHMvZnVsbF9tYXNrLmlzcGMgfCA2MyArKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrCi0gMiBmaWxlcyBjaGFuZ2VkLCA5MCBpbnNlcnRpb25zKCspLCAx MiBkZWxldGlvbnMoLSkKLSBjcmVhdGUgbW9kZSAxMDA2NDQgdGVzdHMvbGl0LXRlc3RzL2Z1bGxf bWFzay5pc3BjCi0KLWRpZmYgLS1naXQgYS9zcmMvY3R4LmNwcCBiL3NyYy9jdHguY3BwCi1pbmRl eCA1MjdhMDJmMzAuLjllNzc1ZmM1YyAxMDA2NDQKLS0tLSBhL3NyYy9jdHguY3BwCi0rKysgYi9z cmMvY3R4LmNwcAotQEAgLTIzMSwxMCArMjMxLDE4IEBAIEZ1bmN0aW9uRW1pdENvbnRleHQ6OkZ1 bmN0aW9uRW1pdENvbnRleHQoRnVuY3Rpb24gKmZ1bmMsIFN5bWJvbCAqZnVuU3ltLCBsbHZtOjpG Ci0gICAgIGludGVybmFsTWFza1BvaW50ZXIgPSBBbGxvY2FJbnN0KExMVk1UeXBlczo6TWFza1R5 cGUsICJpbnRlcm5hbF9tYXNrX21lbW9yeSIpOwotICAgICBTdG9yZUluc3QoTExWTU1hc2tBbGxP biwgaW50ZXJuYWxNYXNrUG9pbnRlcik7Ci0gCi0tICAgIGZ1bmN0aW9uTWFza1ZhbHVlID0gTExW TU1hc2tBbGxPbjsKLS0KLS0gICAgZnVsbE1hc2tQb2ludGVyID0gQWxsb2NhSW5zdChMTFZNVHlw ZXM6Ok1hc2tUeXBlLCAiZnVsbF9tYXNrX21lbW9yeSIpOwotLSAgICBTdG9yZUluc3QoTExWTU1h c2tBbGxPbiwgZnVsbE1hc2tQb2ludGVyKTsKLSsgICAgLy8gSWYgdGhlIGZ1bmN0aW9uIGRvZXNu J3QgaGF2ZSBfX21hc2sgaW4gcGFyYW1ldGVycywgdGhlcmUgaXMgbm8gbmVlZCB0bwotKyAgICAv LyBoYXZlIGZ1bmN0aW9uIG1hc2sKLSsgICAgaWYgKChmdW5jLT5HZXRUeXBlKCktPmlzRXhwb3J0 ZWQgJiYKLSsgICAgICAgICAobGYtPmdldEZ1bmN0aW9uVHlwZSgpLT5nZXROdW1QYXJhbXMoKSA9 PSBmdW5jLT5HZXRUeXBlKCktPkdldE51bVBhcmFtZXRlcnMoKSkpIHx8Ci0rICAgICAgICAoZnVu Yy0+R2V0VHlwZSgpLT5pc1VubWFza2VkKSB8fCAoZnVuYy0+R2V0VHlwZSgpLT5pc1Rhc2spKSB7 Ci0rICAgICAgICBmdW5jdGlvbk1hc2tWYWx1ZSA9IE5VTEw7Ci0rICAgICAgICBmdWxsTWFza1Bv aW50ZXIgPSBOVUxMOwotKyAgICB9IGVsc2UgewotKyAgICAgICAgZnVuY3Rpb25NYXNrVmFsdWUg PSBMTFZNTWFza0FsbE9uOwotKyAgICAgICAgZnVsbE1hc2tQb2ludGVyID0gQWxsb2NhSW5zdChM TFZNVHlwZXM6Ok1hc2tUeXBlLCAiZnVsbF9tYXNrX21lbW9yeSIpOwotKyAgICAgICAgU3RvcmVJ bnN0KExMVk1NYXNrQWxsT24sIGZ1bGxNYXNrUG9pbnRlcik7Ci0rICAgIH0KLSAKLSAgICAgYmxv Y2tFbnRyeU1hc2sgPSBOVUxMOwotICAgICBicmVha0xhbmVzUHRyID0gY29udGludWVMYW5lc1B0 ciA9IE5VTEw7Ci1AQCAtMzg5LDIwICszOTcsMjYgQEAgbGx2bTo6QmFzaWNCbG9jayAqRnVuY3Rp b25FbWl0Q29udGV4dDo6R2V0Q3VycmVudEJhc2ljQmxvY2soKSB7IHJldHVybiBiYmxvY2s7IH0K LSAKLSB2b2lkIEZ1bmN0aW9uRW1pdENvbnRleHQ6OlNldEN1cnJlbnRCYXNpY0Jsb2NrKGxsdm06 OkJhc2ljQmxvY2sgKmJiKSB7IGJibG9jayA9IGJiOyB9Ci0gCi0tbGx2bTo6VmFsdWUgKkZ1bmN0 aW9uRW1pdENvbnRleHQ6OkdldEZ1bmN0aW9uTWFzaygpIHsgcmV0dXJuIGZ1bmN0aW9uTWFza1Zh bHVlOyB9Ci0rbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkdldEZ1bmN0aW9uTWFz aygpIHsgcmV0dXJuIGZ1bGxNYXNrUG9pbnRlciA/IGZ1bmN0aW9uTWFza1ZhbHVlIDogTExWTU1h c2tBbGxPbjsgfQotIAotIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpHZXRJbnRl cm5hbE1hc2soKSB7IHJldHVybiBMb2FkSW5zdChpbnRlcm5hbE1hc2tQb2ludGVyLCBOVUxMLCAi bG9hZF9tYXNrIik7IH0KLSAKLSBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6R2V0 RnVsbE1hc2soKSB7Ci0tICAgIHJldHVybiBCaW5hcnlPcGVyYXRvcihsbHZtOjpJbnN0cnVjdGlv bjo6QW5kLCBHZXRJbnRlcm5hbE1hc2soKSwgZnVuY3Rpb25NYXNrVmFsdWUsICJpbnRlcm5hbF9t YXNrJmZ1bmN0aW9uX21hc2siKTsKLSsgICAgcmV0dXJuIGZ1bGxNYXNrUG9pbnRlciA/IEJpbmFy eU9wZXJhdG9yKGxsdm06Okluc3RydWN0aW9uOjpBbmQsIEdldEludGVybmFsTWFzaygpLCBmdW5j dGlvbk1hc2tWYWx1ZSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICJpbnRlcm5hbF9tYXNrJmZ1bmN0aW9uX21hc2siKQotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgIDogR2V0SW50ZXJuYWxNYXNrKCk7Ci0gfQotIAotLWxsdm06OlZhbHVlICpGdW5jdGlv bkVtaXRDb250ZXh0OjpHZXRGdWxsTWFza1BvaW50ZXIoKSB7IHJldHVybiBmdWxsTWFza1BvaW50 ZXI7IH0KLStsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6R2V0RnVsbE1hc2tQb2lu dGVyKCkgewotKyAgICByZXR1cm4gZnVsbE1hc2tQb2ludGVyID8gZnVsbE1hc2tQb2ludGVyIDog aW50ZXJuYWxNYXNrUG9pbnRlcjsKLSt9Ci0gCi0gdm9pZCBGdW5jdGlvbkVtaXRDb250ZXh0OjpT ZXRGdW5jdGlvbk1hc2sobGx2bTo6VmFsdWUgKnZhbHVlKSB7Ci0tICAgIGZ1bmN0aW9uTWFza1Zh bHVlID0gdmFsdWU7Ci0tICAgIGlmIChiYmxvY2sgIT0gTlVMTCkKLS0gICAgICAgIFN0b3JlSW5z dChHZXRGdWxsTWFzaygpLCBmdWxsTWFza1BvaW50ZXIpOwotKyAgICBpZiAoZnVsbE1hc2tQb2lu dGVyICE9IE5VTEwpIHsKLSsgICAgICAgIGZ1bmN0aW9uTWFza1ZhbHVlID0gdmFsdWU7Ci0rICAg ICAgICBpZiAoYmJsb2NrICE9IE5VTEwpCi0rICAgICAgICAgICAgU3RvcmVJbnN0KEdldEZ1bGxN YXNrKCksIGZ1bGxNYXNrUG9pbnRlcik7Ci0rICAgIH0KLSB9Ci0gCi0gdm9pZCBGdW5jdGlvbkVt aXRDb250ZXh0OjpTZXRCbG9ja0VudHJ5TWFzayhsbHZtOjpWYWx1ZSAqdmFsdWUpIHsgYmxvY2tF bnRyeU1hc2sgPSB2YWx1ZTsgfQotQEAgLTQxMCw3ICs0MjQsOCBAQCB2b2lkIEZ1bmN0aW9uRW1p dENvbnRleHQ6OlNldEJsb2NrRW50cnlNYXNrKGxsdm06OlZhbHVlICp2YWx1ZSkgeyBibG9ja0Vu dHJ5TWFzawotIHZvaWQgRnVuY3Rpb25FbWl0Q29udGV4dDo6U2V0SW50ZXJuYWxNYXNrKGxsdm06 OlZhbHVlICp2YWx1ZSkgewotICAgICBTdG9yZUluc3QodmFsdWUsIGludGVybmFsTWFza1BvaW50 ZXIpOwotICAgICAvLyBrbHVkZ2Ugc28gdGhhdCBfX21hc2sgcmV0dXJucyB0aGUgcmlnaHQgdmFs dWUgaW4gaXNwYyBjb2RlLgotLSAgICBTdG9yZUluc3QoR2V0RnVsbE1hc2soKSwgZnVsbE1hc2tQ b2ludGVyKTsKLSsgICAgaWYgKGZ1bGxNYXNrUG9pbnRlcikKLSsgICAgICAgIFN0b3JlSW5zdChH ZXRGdWxsTWFzaygpLCBmdWxsTWFza1BvaW50ZXIpOwotIH0KLSAKLSB2b2lkIEZ1bmN0aW9uRW1p dENvbnRleHQ6OlNldEludGVybmFsTWFza0FuZChsbHZtOjpWYWx1ZSAqb2xkTWFzaywgbGx2bTo6 VmFsdWUgKnRlc3QpIHsKLUBAIC0xMjY1LDcgKzEyODAsNyBAQCB2b2lkIEZ1bmN0aW9uRW1pdENv bnRleHQ6OkN1cnJlbnRMYW5lc1JldHVybmVkKEV4cHIgKmV4cHIsIGJvb2wgZG9Db2hlcmVuY2VD aGVjawotICAgICAgICAgLy8gbGFuZXMgaGF2ZSByZXR1cm5lZAotICAgICAgICAgaWYgKGRvQ29o ZXJlbmNlQ2hlY2spIHsKLSAgICAgICAgICAgICAvLyBpZiBuZXdSZXR1cm5lZExhbmVzID09IGZ1 bmN0aW9uTWFza1ZhbHVlLCBnZXQgb3V0IG9mIGhlcmUhCi0tICAgICAgICAgICAgbGx2bTo6VmFs dWUgKmNtcCA9IE1hc2tzQWxsRXF1YWwoZnVuY3Rpb25NYXNrVmFsdWUsIG5ld1JldHVybmVkTGFu ZXMpOwotKyAgICAgICAgICAgIGxsdm06OlZhbHVlICpjbXAgPSBNYXNrc0FsbEVxdWFsKEdldEZ1 bmN0aW9uTWFzaygpLCBuZXdSZXR1cm5lZExhbmVzKTsKLSAgICAgICAgICAgICBsbHZtOjpCYXNp Y0Jsb2NrICpiRG9SZXR1cm4gPSBDcmVhdGVCYXNpY0Jsb2NrKCJkb19yZXR1cm4iKTsKLSAgICAg ICAgICAgICBsbHZtOjpCYXNpY0Jsb2NrICpiTm9SZXR1cm4gPSBDcmVhdGVCYXNpY0Jsb2NrKCJu b19yZXR1cm4iKTsKLSAgICAgICAgICAgICBCcmFuY2hJbnN0KGJEb1JldHVybiwgYk5vUmV0dXJu LCBjbXApOwotZGlmZiAtLWdpdCBhL3Rlc3RzL2xpdC10ZXN0cy9mdWxsX21hc2suaXNwYyBiL3Rl c3RzL2xpdC10ZXN0cy9mdWxsX21hc2suaXNwYwotbmV3IGZpbGUgbW9kZSAxMDA2NDQKLWluZGV4 IDAwMDAwMDAwMC4uYWMwYjBiY2EzCi0tLS0gL2Rldi9udWxsCi0rKysgYi90ZXN0cy9saXQtdGVz dHMvZnVsbF9tYXNrLmlzcGMKLUBAIC0wLDAgKzEsNjMgQEAKLSsvLyBSVU46ICV7aXNwY30gJXMg LURJU1BDX0VYUE9SVCAtLWVtaXQtbGx2bS10ZXh0IC1PMCAtLW5vd3JhcCAtbyAldC5sbAotKy8v IFJVTjogRmlsZUNoZWNrIC0taW5wdXQtZmlsZT0ldC5sbCAtY2hlY2stcHJlZml4PUNIRUNLX0lT UENfRVhQT1JUICVzCi0rCi0rLy8gUlVOOiAle2lzcGN9ICVzIC1ESVNQQ19VTk1BU0tFRCAtLWVt aXQtbGx2bS10ZXh0IC1PMCAtLW5vd3JhcCAtbyAldC5sbAotKy8vIFJVTjogRmlsZUNoZWNrIC0t aW5wdXQtZmlsZT0ldC5sbCAtY2hlY2stcHJlZml4PUNIRUNLX0lTUENfVU5NQVNLRUQgJXMKLSsK LSsvLyBSVU46ICV7aXNwY30gJXMgLURJU1BDX05PUVVBTElGIC0tZW1pdC1sbHZtLXRleHQgLU8w IC0tbm93cmFwIC1vICV0LmxsCi0rLy8gUlVOOiBGaWxlQ2hlY2sgLS1pbnB1dC1maWxlPSV0Lmxs IC1jaGVjay1wcmVmaXg9Q0hFQ0tfSVNQQ19OT1FVQUxJRiAlcwotKwotKy8vIFJVTjogJXtpc3Bj fSAlcyAtRElTUENfVEFTSyAtLWVtaXQtbGx2bS10ZXh0IC1PMCAtLW5vd3JhcCAtbyAldC5sbAot Ky8vIFJVTjogRmlsZUNoZWNrIC0taW5wdXQtZmlsZT0ldC5sbCAtY2hlY2stcHJlZml4PUNIRUNL X0lTUENfVEFTSyAlcwotKwotK3N0cnVjdCBQYXJhbWV0ZXJzIHsKLSsgICAgZmxvYXQgKnZvdXQ7 Ci0rICAgIGludCBwYXJhbTsKLSt9OwotKwotKyNpZmRlZiBJU1BDX0VYUE9SVAotKy8vIENIRUNL X0lTUENfRVhQT1JUOiBkZWZpbmUgdm9pZCBAc2ltcGxlX2V4cG9ydF9fXwotKy8vIENIRUNLX0lT UENfRVhQT1JUOiAlZnVsbF9tYXNrX21lbW9yeSA9IGFsbG9jYQotKy8vIENIRUNLX0lTUENfRVhQ T1JUOiBkZWZpbmUgdm9pZCBAc2ltcGxlX2V4cG9ydCgKLSsvLyBDSEVDS19JU1BDX0VYUE9SVC1O T1Q6ICVmdWxsX21hc2tfbWVtb3J5ID0gYWxsb2NhCi0rZXhwb3J0IHZvaWQgc2ltcGxlX2V4cG9y dCh2b2lkICp1bmlmb3JtIF9wKSB7Ci0rICAgIFBhcmFtZXRlcnMgKnVuaWZvcm0gcCA9IChQYXJh bWV0ZXJzICogdW5pZm9ybSkgX3A7Ci0rICAgIGlmIChwcm9ncmFtSW5kZXggPiBwLT5wYXJhbSkK LSsgICAgICAgIHAtPnZvdXRbcHJvZ3JhbUluZGV4XSA9IHByb2dyYW1Db3VudCAqIHByb2dyYW1J bmRleDsKLSt9Ci0rI2VuZGlmCi0rI2lmZGVmIElTUENfVU5NQVNLRUQKLSsvLyBDSEVDS19JU1BD X1VOTUFTS0VEOiBkZWZpbmUgdm9pZCBAc2ltcGxlX3VubWFza2VkCi0rLy8gQ0hFQ0tfSVNQQ19V Tk1BU0tFRC1OT1Q6ICVmdWxsX21hc2tfbWVtb3J5ID0gYWxsb2NhCi0rdW5tYXNrZWQgdm9pZCBz aW1wbGVfdW5tYXNrZWQodm9pZCAqdW5pZm9ybSBfcCkgewotKyAgICBQYXJhbWV0ZXJzICp1bmlm b3JtIHAgPSAoUGFyYW1ldGVycyAqIHVuaWZvcm0pIF9wOwotKyAgICBpZiAocHJvZ3JhbUluZGV4 ID4gcC0+cGFyYW0pCi0rICAgICAgICBwLT52b3V0W3Byb2dyYW1JbmRleF0gPSBwcm9ncmFtQ291 bnQgKiBwcm9ncmFtSW5kZXg7Ci0rfQotKyNlbmRpZgotKyNpZmRlZiBJU1BDX05PUVVBTElGCi0r Ly8gQ0hFQ0tfSVNQQ19OT1FVQUxJRjogZGVmaW5lIHZvaWQgQHNpbXBsZQotKy8vIENIRUNLX0lT UENfTk9RVUFMSUY6ICVmdWxsX21hc2tfbWVtb3J5ID0gYWxsb2NhCi0rdm9pZCBzaW1wbGUodm9p ZCAqdW5pZm9ybSBfcCkgewotKyAgICBQYXJhbWV0ZXJzICp1bmlmb3JtIHAgPSAoUGFyYW1ldGVy cyAqIHVuaWZvcm0pIF9wOwotKyAgICBpZiAocHJvZ3JhbUluZGV4ID4gcC0+cGFyYW0pCi0rICAg ICAgICBwLT52b3V0W3Byb2dyYW1JbmRleF0gPSBwcm9ncmFtQ291bnQgKiBwcm9ncmFtSW5kZXg7 Ci0rfQotKyNlbmRpZgotKyNpZmRlZiBJU1BDX1RBU0sKLSsKLSsvLyBDSEVDS19JU1BDX1RBU0s6 IGRlZmluZSB2b2lkIEBzaW1wbGVfdGFzawotKy8vIENIRUNLX0lTUENfVEFTSy1OT1Q6ICVmdWxs X21hc2tfbWVtb3J5ID0gYWxsb2NhCi0rLy8gQ0hFQ0tfSVNQQ19UQVNLOiBkZWZpbmUgdm9pZCBA c2ltcGxlX2VudHJ5X3BvaW50X18KLSsvLyBDSEVDS19JU1BDX1RBU0s6ICVmdWxsX21hc2tfbWVt b3J5ID0gYWxsb2NhCi0rLy8gQ0hFQ0tfSVNQQ19UQVNLOiBkZWZpbmUgdm9pZCBAc2ltcGxlX2Vu dHJ5X3BvaW50KAotKy8vIENIRUNLX0lTUENfVEFTSy1OT1Q6ICVmdWxsX21hc2tfbWVtb3J5ID0g YWxsb2NhCi0rdGFzayB2b2lkIHNpbXBsZV90YXNrKHZvaWQgKnVuaWZvcm0gX3ApIHsKLSsgICAg UGFyYW1ldGVycyAqdW5pZm9ybSBwID0gKFBhcmFtZXRlcnMgKiB1bmlmb3JtKSBfcDsKLSsgICAg aWYgKHByb2dyYW1JbmRleCA+IHAtPnBhcmFtKQotKyAgICAgICAgcC0+dm91dFtwcm9ncmFtSW5k ZXhdID0gcHJvZ3JhbUNvdW50ICogcHJvZ3JhbUluZGV4OwotK30KLStleHBvcnQgdm9pZCBzaW1w bGVfZW50cnlfcG9pbnQodm9pZCAqdW5pZm9ybSBwYXJhbWV0ZXJzLCB1bmlmb3JtIGludCBkaW0w LCB1bmlmb3JtIGludCBkaW0xLCB1bmlmb3JtIGludCBkaW0yKSB7Ci0rICAgIGxhdW5jaFtkaW0w LCBkaW0xLCBkaW0yXSBzaW1wbGVfdGFzayhwYXJhbWV0ZXJzKTsKLSt9Ci0rI2VuZGlmCi1cIE5v IG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvaXNwYy9wYXRjaGVz L2xsdm0xMi0wMDgucGF0Y2ggYi9zcmNwa2dzL2lzcGMvcGF0Y2hlcy9sbHZtMTItMDA4LnBhdGNo CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjODQxM2Q4Yjc4ODcuLjAwMDAwMDAwMDAw MAotLS0gYS9zcmNwa2dzL2lzcGMvcGF0Y2hlcy9sbHZtMTItMDA4LnBhdGNoCisrKyAvZGV2L251 bGwKQEAgLTEsMTQ5ICswLDAgQEAKLUZyb20gYWZhZDE0MjI3ZDkyMDRhM2M4YTYyNmNhNjA4ZjVi NDNjMzIxOGZlOSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEFyaW5hIE5lc2hseWFl dmEgPGFyaW5hLm5lc2hseWFldmFAaW50ZWwuY29tPgotRGF0ZTogVHVlLCA0IE1heSAyMDIxIDEx OjQzOjUyIC0wNzAwCi1TdWJqZWN0OiBbUEFUQ0hdIEZpeGVkIElTUEMgZ2VuIGJ1aWxkIGZvciBM TFZNMTIKLQotLS0tCi0gc3JjL2N0eC5jcHAgfCAgNCArKysrCi0gc3JjL29wdC5jcHAgfCA0MyAr KysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tCi0gMiBmaWxlcyBjaGFu Z2VkLCAzMyBpbnNlcnRpb25zKCspLCAxNCBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL3Ny Yy9jdHguY3BwIGIvc3JjL2N0eC5jcHAKLWluZGV4IDBjNzA1MDU5MS4uZjdkYzA2OTM5IDEwMDY0 NAotLS0tIGEvc3JjL2N0eC5jcHAKLSsrKyBiL3NyYy9jdHguY3BwCi1AQCAtMzczOCw3ICszNzM4 LDExIEBAIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpHZW5YU2ltZENGQW55KGxs dm06OlZhbHVlICp2YWx1ZSkgewotIAotIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0 OjpHZW5YU2ltZENGUHJlZGljYXRlKGxsdm06OlZhbHVlICp2YWx1ZSwgbGx2bTo6VmFsdWUgKmRl ZmF1bHRzKSB7Ci0gICAgIEFzc2VydFBvcyhjdXJyZW50UG9zLCBsbHZtOjppc2E8bGx2bTo6VmVj dG9yVHlwZT4odmFsdWUtPmdldFR5cGUoKSkpOwotKyNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJ U1BDX0xMVk1fMTFfMAotKyAgICBsbHZtOjpGaXhlZFZlY3RvclR5cGUgKnZ0ID0gbGx2bTo6ZHlu X2Nhc3Q8bGx2bTo6Rml4ZWRWZWN0b3JUeXBlPih2YWx1ZS0+Z2V0VHlwZSgpKTsKLSsjZWxzZQot ICAgICBsbHZtOjpWZWN0b3JUeXBlICp2dCA9IGxsdm06OmR5bl9jYXN0PGxsdm06OlZlY3RvclR5 cGU+KHZhbHVlLT5nZXRUeXBlKCkpOwotKyNlbmRpZgotICAgICBpZiAoZGVmYXVsdHMgPT0gTlVM TCkgewotICNpZiBJU1BDX0xMVk1fVkVSU0lPTiA8IElTUENfTExWTV8xMV8wCi0gICAgICAgICBk ZWZhdWx0cyA9IGxsdm06OkNvbnN0YW50VmVjdG9yOjpnZXRTcGxhdCh2dC0+Z2V0VmVjdG9yTnVt RWxlbWVudHMoKSwKLWRpZmYgLS1naXQgYS9zcmMvb3B0LmNwcCBiL3NyYy9vcHQuY3BwCi1pbmRl eCBjZWE0YWZhMjMuLjRlMzNkNmIxYSAxMDA2NDQKLS0tLSBhL3NyYy9vcHQuY3BwCi0rKysgYi9z cmMvb3B0LmNwcAotQEAgLTI5MTYsOSArMjkxNiwxMyBAQCBzdGF0aWMgbGx2bTo6RnVuY3Rpb24g KmxHZW5YTWFza2VkSW50OEluc3QobGx2bTo6SW5zdHJ1Y3Rpb24gKmluc3QsIGJvb2wgaXNTdG9y ZQotIAotIHN0YXRpYyBsbHZtOjpDYWxsSW5zdCAqbEdlblhTdG9yZUluc3QobGx2bTo6VmFsdWUg KnZhbCwgbGx2bTo6VmFsdWUgKnB0ciwgbGx2bTo6SW5zdHJ1Y3Rpb24gKmluc3QpIHsKLSAgICAg QXNzZXJ0KGctPnRhcmdldC0+aXNHZW5YVGFyZ2V0KCkpOwotKyNpZiBJU1BDX0xMVk1fVkVSU0lP TiA+PSBJU1BDX0xMVk1fMTFfMAotKyAgICBBc3NlcnQobGx2bTo6aXNhPGxsdm06OkZpeGVkVmVj dG9yVHlwZT4odmFsLT5nZXRUeXBlKCkpKTsKLSsgICAgbGx2bTo6Rml4ZWRWZWN0b3JUeXBlICp2 YWxWZWNUeXBlID0gbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6Rml4ZWRWZWN0b3JUeXBlPih2YWwtPmdl dFR5cGUoKSk7Ci0rI2Vsc2UKLSAgICAgQXNzZXJ0KGxsdm06OmlzYTxsbHZtOjpWZWN0b3JUeXBl Pih2YWwtPmdldFR5cGUoKSkpOwotLQotICAgICBsbHZtOjpWZWN0b3JUeXBlICp2YWxWZWNUeXBl ID0gbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6VmVjdG9yVHlwZT4odmFsLT5nZXRUeXBlKCkpOwotKyNl bmRpZgotICAgICBBc3NlcnQobGx2bTo6aXNQb3dlck9mMl8zMih2YWxWZWNUeXBlLT5nZXROdW1F bGVtZW50cygpKSk7Ci0gICAgIEFzc2VydCh2YWxWZWNUeXBlLT5nZXRQcmltaXRpdmVTaXplSW5C aXRzKCkgLyA4IDw9IDggKiBPV09SRCk7Ci0gCi1AQCAtMjk0Miw5ICsyOTQ2LDEzIEBAIHN0YXRp YyBsbHZtOjpDYWxsSW5zdCAqbEdlblhTdG9yZUluc3QobGx2bTo6VmFsdWUgKnZhbCwgbGx2bTo6 VmFsdWUgKnB0ciwgbGx2bTo6Ci0gfQotIAotIHN0YXRpYyBsbHZtOjpDYWxsSW5zdCAqbEdlblhM b2FkSW5zdChsbHZtOjpWYWx1ZSAqcHRyLCBsbHZtOjpUeXBlICpyZXRUeXBlLCBsbHZtOjpJbnN0 cnVjdGlvbiAqaW5zdCkgewotKyNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTFf MAotKyAgICBBc3NlcnQobGx2bTo6aXNhPGxsdm06OkZpeGVkVmVjdG9yVHlwZT4ocmV0VHlwZSkp OwotKyAgICBsbHZtOjpGaXhlZFZlY3RvclR5cGUgKnJldFZlY1R5cGUgPSBsbHZtOjpkeW5fY2Fz dDxsbHZtOjpGaXhlZFZlY3RvclR5cGU+KHJldFR5cGUpOwotKyNlbHNlCi0gICAgIEFzc2VydChs bHZtOjppc2E8bGx2bTo6VmVjdG9yVHlwZT4ocmV0VHlwZSkpOwotLQotICAgICBsbHZtOjpWZWN0 b3JUeXBlICpyZXRWZWNUeXBlID0gbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6VmVjdG9yVHlwZT4ocmV0 VHlwZSk7Ci0rI2VuZGlmCi0gICAgIEFzc2VydChsbHZtOjppc1Bvd2VyT2YyXzMyKHJldFZlY1R5 cGUtPmdldE51bUVsZW1lbnRzKCkpKTsKLSAgICAgQXNzZXJ0KHJldFZlY1R5cGUtPmdldFByaW1p dGl2ZVNpemVJbkJpdHMoKSk7Ci0gICAgIEFzc2VydChyZXRWZWNUeXBlLT5nZXRQcmltaXRpdmVT aXplSW5CaXRzKCkgLyA4IDw9IDggKiBPV09SRCk7Ci1AQCAtNTQ4NSw4ICs1NDkzLDEzIEBAIHN0 YXRpYyB2b2lkIGxDcmVhdGVCbG9ja0xEVXNlKGxsdm06Okluc3RydWN0aW9uICpjdXJySW5zdCwg c3RkOjp2ZWN0b3I8bGx2bTo6RXh0Ci0gICAgICAgICB9IGVsc2UgaWYgKGF1dG8gZ2F0aGVyID0g bEdldFBzZXVkb0dhdGhlcihsbHZtOjpkeW5fY2FzdDxsbHZtOjpJbnN0cnVjdGlvbj4odWktPmdl dFVzZXIoKSkpKSB7Ci0gICAgICAgICAgICAgLy8gQ29sbGVjdCBpZHhzIGZyb20gZ2F0aGVyIGFu ZCBmaXggdXNlcnMKLSAgICAgICAgICAgICBsbHZtOjpWYWx1ZSAqcmVzID0gbGx2bTo6VW5kZWZW YWx1ZTo6Z2V0KGdhdGhlci0+Z2V0VHlwZSgpKTsKLS0gICAgICAgICAgICBmb3IgKHVuc2lnbmVk IGkgPSAwLCBlbmQgPSBsbHZtOjpkeW5fY2FzdDxsbHZtOjpWZWN0b3JUeXBlPihyZXMtPmdldFR5 cGUoKSktPmdldE51bUVsZW1lbnRzKCk7IGkgPCBlbmQ7Ci0tICAgICAgICAgICAgICAgICArK2kp IHsKLSsjaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzExXzAKLSsgICAgICAgICAg ICBmb3IgKHVuc2lnbmVkIGkgPSAwLCBlbmQgPSBsbHZtOjpkeW5fY2FzdDxsbHZtOjpGaXhlZFZl Y3RvclR5cGU+KHJlcy0+Z2V0VHlwZSgpKS0+Z2V0TnVtRWxlbWVudHMoKTsgaSA8IGVuZDsKLSsg ICAgICAgICAgICAgICAgICsraSkKLSsjZWxzZQotKyAgICAgICAgICAgIGZvciAodW5zaWduZWQg aSA9IDAsIGVuZCA9IGxsdm06OmR5bl9jYXN0PGxsdm06OlZlY3RvclR5cGU+KHJlcy0+Z2V0VHlw ZSgpKS0+Z2V0TnVtRWxlbWVudHMoKTsgaSA8IGVuZDsgKytpKQotKyNlbmRpZgotKyAgICAgICAg ICAgIHsKLSAgICAgICAgICAgICAgICAgLy8gR2V0IGVsZW1lbnQgdmlhIElFSQotICAgICAgICAg ICAgICAgICByZXMgPSBsbHZtOjpJbnNlcnRFbGVtZW50SW5zdDo6Q3JlYXRlKHJlcywgRUVJc1tw dHJVc2UuaWR4c1tjdXJyX2lkeCsrXV0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6Q29uc3RhbnRJbnQ6OmdldChMTFZNVHlwZXM6 OkludDMyVHlwZSwgaSksCi1AQCAtNTUyMiwxMCArNTUzNSwxMSBAQCBzdGF0aWMgYm9vbCBsVmVj dG9yaXplR0VQcyhsbHZtOjpWYWx1ZSAqcHRyLCBzdGQ6OnZlY3RvcjxQdHJVc2U+ICZwdHJVc2Vz LCBzdGQ6OgotIAotICAgICAvLyBBZGp1c3QgdmFsdWVzIGZvciB2ZWN0b3IgbG9hZAotICNpZiBJ U1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTFfMAotLSAgICBpZiAoYXV0byB2ZWNUeSA9 IGxsdm06OmR5bl9jYXN0PGxsdm06OkZpeGVkVmVjdG9yVHlwZT4odHlwZSkpIHsKLSsgICAgaWYg KGF1dG8gdmVjVHkgPSBsbHZtOjpkeW5fY2FzdDxsbHZtOjpGaXhlZFZlY3RvclR5cGU+KHR5cGUp KQotICNlbHNlCi0tICAgIGlmIChhdXRvIHZlY1R5ID0gbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6VmVj dG9yVHlwZT4odHlwZSkpIHsKLSsgICAgaWYgKGF1dG8gdmVjVHkgPSBsbHZtOjpkeW5fY2FzdDxs bHZtOjpWZWN0b3JUeXBlPih0eXBlKSkKLSAjZW5kaWYKLSsgICAgewotICAgICAgICAgLy8gR2V0 IHNpbmdsZSBlbGVtZW50IHNpemUKLSAgICAgICAgIHRfc2l6ZSAvPSB2ZWNUeS0+Z2V0TnVtRWxl bWVudHMoKTsKLSAgICAgICAgIC8vIEdldCBzaW5nbGUgZWxlbWVudCB0eXBlCi1AQCAtNjQ3Nyw3 ICs2NDkxLDcgQEAgbGx2bTo6VmFsdWUgKkZpeEFkZHJlc3NTcGFjZTo6Y2FsY3VsYXRlR2F0aGVy U2NhdHRlckFkZHJlc3MobGx2bTo6VmFsdWUgKlB0ciwgbGwKLSAjaWYgSVNQQ19MTFZNX1ZFUlNJ T04gPj0gSVNQQ19MTFZNXzExXzAKLSAgICAgICAgIE9mZnNldHMsCi0gICAgICAgICBsbHZtOjpG aXhlZFZlY3RvclR5cGU6OmdldChMTFZNVHlwZXM6OkludDY0VHlwZSwKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGxsdm06OmR5bl9jYXN0PGxsdm06OlZlY3RvclR5cGU+KE9m ZnNldHMtPmdldFR5cGUoKSktPmdldE51bUVsZW1lbnRzKCkpLAotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6Rml4ZWRWZWN0b3JUeXBlPihP ZmZzZXRzLT5nZXRUeXBlKCkpLT5nZXROdW1FbGVtZW50cygpKSwKLSAgICAgICAgICJzdm1fb2Zm c2V0X3pleHQiLCBJbnNlcnRCZWZvcmUpOwotICNlbHNlCi0gICAgICAgICBPZmZzZXRzLCBsbHZt OjpWZWN0b3JUeXBlOjpnZXQoTExWTVR5cGVzOjpJbnQ2NFR5cGUsIE9mZnNldHMtPmdldFR5cGUo KS0+Z2V0VmVjdG9yTnVtRWxlbWVudHMoKSksCi1AQCAtNjQ5Miw3ICs2NTA2LDcgQEAgbGx2bTo6 VmFsdWUgKkZpeEFkZHJlc3NTcGFjZTo6Y2FsY3VsYXRlR2F0aGVyU2NhdHRlckFkZHJlc3MobGx2 bTo6VmFsdWUgKlB0ciwgbGwKLSAgICAgICAgIGxsdm06OlZhbHVlICp1bmRlZkluc2VydFZhbHVl ID0KLSAjaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzExXzAKLSAgICAgICAgICAg ICBsbHZtOjpVbmRlZlZhbHVlOjpnZXQobGx2bTo6Rml4ZWRWZWN0b3JUeXBlOjpnZXQoCi0tICAg ICAgICAgICAgICAgIExMVk1UeXBlczo6SW50NjRUeXBlLCBsbHZtOjpkeW5fY2FzdDxsbHZtOjpW ZWN0b3JUeXBlPihhZGRyZXNzVHlwZSktPmdldE51bUVsZW1lbnRzKCkpKTsKLSsgICAgICAgICAg ICAgICAgTExWTVR5cGVzOjpJbnQ2NFR5cGUsIGxsdm06OmR5bl9jYXN0PGxsdm06OkZpeGVkVmVj dG9yVHlwZT4oYWRkcmVzc1R5cGUpLT5nZXROdW1FbGVtZW50cygpKSk7Ci0gI2Vsc2UKLSAgICAg ICAgICAgICBsbHZtOjpVbmRlZlZhbHVlOjpnZXQobGx2bTo6VmVjdG9yVHlwZTo6Z2V0KExMVk1U eXBlczo6SW50NjRUeXBlLCBhZGRyZXNzVHlwZS0+Z2V0VmVjdG9yTnVtRWxlbWVudHMoKSkpOwot ICNlbmRpZgotQEAgLTY1MDEsMTcgKzY1MTUsMTYgQEAgbGx2bTo6VmFsdWUgKkZpeEFkZHJlc3NT cGFjZTo6Y2FsY3VsYXRlR2F0aGVyU2NhdHRlckFkZHJlc3MobGx2bTo6VmFsdWUgKlB0ciwgbGwK LSAjaWYgSVNQQ19MTFZNX1ZFUlNJT04gPCBJU1BDX0xMVk1fMTFfMAotICAgICAgICAgICAgIGFk ZHJlc3NUeXBlLT5nZXRWZWN0b3JOdW1FbGVtZW50cygpLAotICNlbGlmIElTUENfTExWTV9WRVJT SU9OIDwgSVNQQ19MTFZNXzEyXzAKLS0gICAgICAgICAgICB7bGx2bTo6ZHluX2Nhc3Q8bGx2bTo6 VmVjdG9yVHlwZT4oYWRkcmVzc1R5cGUpLT5nZXROdW1FbGVtZW50cygpLCBmYWxzZX0sCi0rICAg ICAgICAgICAge2xsdm06OmR5bl9jYXN0PGxsdm06OkZpeGVkVmVjdG9yVHlwZT4oYWRkcmVzc1R5 cGUpLT5nZXROdW1FbGVtZW50cygpLCBmYWxzZX0sCi0gI2Vsc2UKLS0gICAgICAgIGxsdm06OkVs ZW1lbnRDb3VudDo6Z2V0KAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6 ZHluX2Nhc3Q8bGx2bTo6Rml4ZWRWZWN0b3JUeXBlPihhZGRyZXNzVHlwZS0+Z2V0TnVtRWxlbWVu dHMoKSwgZmFsc2UpLAotKyAgICAgICAgICAgIGxsdm06OkVsZW1lbnRDb3VudDo6Z2V0KGxsdm06 OmR5bl9jYXN0PGxsdm06OkZpeGVkVmVjdG9yVHlwZT4oYWRkcmVzc1R5cGUpLT5nZXROdW1FbGVt ZW50cygpLCBmYWxzZSksCi0gI2VuZGlmCi0gICAgICAgICAgICAgbGx2bTo6Q29uc3RhbnQ6Omdl dE51bGxWYWx1ZShsbHZtOjpUeXBlOjpnZXRJbnQzMlR5KEluc2VydEJlZm9yZS0+Z2V0Q29udGV4 dCgpKSkpOwotIAotICAgICAgICAgbGx2bTo6VmFsdWUgKnVuZGVmU2h1ZmZsZVZhbHVlID0KLSAj aWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzExXzAKLSAgICAgICAgICAgICBsbHZt OjpVbmRlZlZhbHVlOjpnZXQobGx2bTo6Rml4ZWRWZWN0b3JUeXBlOjpnZXQoCi0tICAgICAgICAg ICAgICAgIExMVk1UeXBlczo6SW50NjRUeXBlLCBsbHZtOjpkeW5fY2FzdDxsbHZtOjpWZWN0b3JU eXBlPihhZGRyZXNzVHlwZSktPmdldE51bUVsZW1lbnRzKCkpKTsKLSsgICAgICAgICAgICAgICAg TExWTVR5cGVzOjpJbnQ2NFR5cGUsIGxsdm06OmR5bl9jYXN0PGxsdm06OkZpeGVkVmVjdG9yVHlw ZT4oYWRkcmVzc1R5cGUpLT5nZXROdW1FbGVtZW50cygpKSk7Ci0gI2Vsc2UKLSAgICAgICAgICAg ICBsbHZtOjpVbmRlZlZhbHVlOjpnZXQobGx2bTo6VmVjdG9yVHlwZTo6Z2V0KExMVk1UeXBlczo6 SW50NjRUeXBlLCBhZGRyZXNzVHlwZS0+Z2V0VmVjdG9yTnVtRWxlbWVudHMoKSkpOwotICNlbmRp ZgotQEAgLTY1NDIsNyArNjU1NSw4IEBAIGxsdm06Okluc3RydWN0aW9uICpGaXhBZGRyZXNzU3Bh Y2U6OnByb2Nlc3NWZWN0b3JMb2FkKGxsdm06OkxvYWRJbnN0ICpMSSkgewotICAgICAgICAgaXNQ dHJMb2FkID0gdHJ1ZTsKLSAgICAgICAgIGF1dG8gc2NhbGFyVHlwZSA9IGctPnRhcmdldC0+aXMz MkJpdCgpID8gTExWTVR5cGVzOjpJbnQzMlR5cGUgOiBMTFZNVHlwZXM6OkludDY0VHlwZTsKLSAj aWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzExXzAKLS0gICAgICAgIHJldFR5cGUg PSBsbHZtOjpGaXhlZFZlY3RvclR5cGU6OmdldChzY2FsYXJUeXBlLCBsbHZtOjpkeW5fY2FzdDxs bHZtOjpWZWN0b3JUeXBlPihyZXRUeXBlKS0+Z2V0TnVtRWxlbWVudHMoKSk7Ci0rICAgICAgICBy ZXRUeXBlID0KLSsgICAgICAgICAgICBsbHZtOjpGaXhlZFZlY3RvclR5cGU6OmdldChzY2FsYXJU eXBlLCBsbHZtOjpkeW5fY2FzdDxsbHZtOjpGaXhlZFZlY3RvclR5cGU+KHJldFR5cGUpLT5nZXRO dW1FbGVtZW50cygpKTsKLSAjZWxzZQotICAgICAgICAgcmV0VHlwZSA9IGxsdm06OlZlY3RvclR5 cGU6OmdldChzY2FsYXJUeXBlLCByZXRUeXBlLT5nZXRWZWN0b3JOdW1FbGVtZW50cygpKTsKLSAj ZW5kaWYKLUBAIC02NjA0LDcgKzY2MTgsOCBAQCBsbHZtOjpJbnN0cnVjdGlvbiAqRml4QWRkcmVz c1NwYWNlOjpwcm9jZXNzVmVjdG9yU3RvcmUobGx2bTo6U3RvcmVJbnN0ICpTSSkgewotICAgICBp ZiAodmFsVHlwZS0+Z2V0U2NhbGFyVHlwZSgpLT5pc1BvaW50ZXJUeSgpKSB7Ci0gICAgICAgICBh dXRvIHNjYWxhclR5cGUgPSBnLT50YXJnZXQtPmlzMzJCaXQoKSA/IExMVk1UeXBlczo6SW50MzJU eXBlIDogTExWTVR5cGVzOjpJbnQ2NFR5cGU7Ci0gI2lmIElTUENfTExWTV9WRVJTSU9OID49IElT UENfTExWTV8xMV8wCi0tICAgICAgICB2YWxUeXBlID0gbGx2bTo6Rml4ZWRWZWN0b3JUeXBlOjpn ZXQoc2NhbGFyVHlwZSwgbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6VmVjdG9yVHlwZT4odmFsVHlwZSkt PmdldE51bUVsZW1lbnRzKCkpOwotKyAgICAgICAgdmFsVHlwZSA9Ci0rICAgICAgICAgICAgbGx2 bTo6Rml4ZWRWZWN0b3JUeXBlOjpnZXQoc2NhbGFyVHlwZSwgbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6 Rml4ZWRWZWN0b3JUeXBlPih2YWxUeXBlKS0+Z2V0TnVtRWxlbWVudHMoKSk7Ci0gI2Vsc2UKLSAg ICAgICAgIHZhbFR5cGUgPSBsbHZtOjpWZWN0b3JUeXBlOjpnZXQoc2NhbGFyVHlwZSwgdmFsVHlw ZS0+Z2V0VmVjdG9yTnVtRWxlbWVudHMoKSk7Ci0gI2VuZGlmCmRpZmYgLS1naXQgYS9zcmNwa2dz L2lzcGMvcGF0Y2hlcy9sbHZtMTItMDA5LnBhdGNoIGIvc3JjcGtncy9pc3BjL3BhdGNoZXMvbGx2 bTEyLTAwOS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDNlYTY3ODI4NTgy Li4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9pc3BjL3BhdGNoZXMvbGx2bTEyLTAwOS5wYXRj aAorKysgL2Rldi9udWxsCkBAIC0xLDIxMDkgKzAsMCBAQAotRnJvbSA5N2IxM2MzMjEzMmUyNzA0 YTVlM2U3YjJlYWU0OWQ4NTRkMDg3ZTNlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTog QXJpbmEgTmVzaGx5YWV2YSA8YXJpbmEubmVzaGx5YWV2YUBpbnRlbC5jb20+Ci1EYXRlOiBUdWUs IDQgTWF5IDIwMjEgMTE6MzE6NTUgLTA3MDAKLVN1YmplY3Q6IFtQQVRDSF0gVXBkYXRlZCBidWls dGlucy1jbSogZm9yIHN3aXRjaCB0byBMTFZNMTIKLQotLS0tCi0gYnVpbHRpbnMvYnVpbHRpbnMt Y20tMzIubGwgfCAyMzQgKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLQotIGJ1 aWx0aW5zL2J1aWx0aW5zLWNtLTY0LmxsIHwgMjMyICsrKysrKysrKysrKysrKysrKy0tLS0tLS0t LS0tLS0tLS0tLQotIDIgZmlsZXMgY2hhbmdlZCwgMjMzIGluc2VydGlvbnMoKyksIDIzMyBkZWxl dGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2J1aWx0aW5zL2J1aWx0aW5zLWNtLTMyLmxsIGIvYnVp bHRpbnMvYnVpbHRpbnMtY20tMzIubGwKLWluZGV4IDMyZGViZjMyZS4uNDgxYmJkYzQ4IDEwMDY0 NAotLS0tIGEvYnVpbHRpbnMvYnVpbHRpbnMtY20tMzIubGwKLSsrKyBiL2J1aWx0aW5zL2J1aWx0 aW5zLWNtLTMyLmxsCi1AQCAtNTU3LDcgKzU1Nyw3IEBAICRfWk4xM1ZhcnlpbmdXcml0ZXIxMldy aXRlVmVjRWxlbUlQdkVFdnYgPSBjb21kYXQgYW55Ci0gQC5zdHIuMTAgPSBwcml2YXRlIHVubmFt ZWRfYWRkciBjb25zdGFudCBbNSB4IGk4XSBjIiUwOFhcMDAiLCBhbGlnbiAxCi0gCi0gOyBGdW5j dGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIHNpZ25leHQg aTggQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZjYyhpOCBzaWduZXh0LCBpOCBzaWduZXh0 KSAjMCB7Ci0rZGVmaW5lIGludGVybmFsIHNpZ25leHQgaTggQF9aMjRfX2NtX2ludHJpbnNpY19p bXBsX3NkaXZjYyhpOCBzaWduZXh0LCBpOCBzaWduZXh0KSAjMCB7Ci0gICAlMyA9IGFsbG9jYSBp OCwgYWxpZ24gMQotICAgJTQgPSBhbGxvY2EgaTgsIGFsaWduIDEKLSAgICU1ID0gYWxsb2NhIDwx IHggaTg+LCBhbGlnbiAxCi1AQCAtNjE4LDcgKzYxOCw3IEBAIGRlZmluZSBpbnRlcm5hbCA8MSB4 IGk4PiBAX1pON2RldGFpbHMxM19faW1wbF9kaXZyZW1JTGkxRUVFdTJDTXZiVF9fY1MxX1MxX3Uy Q012Ci0gZGVjbGFyZSA8MSB4IGk4PiBAbGx2bS5nZW54LnJkcmVnaW9uaS52MWk4LnYxaTguaTE2 KDwxIHggaTg+LCBpMzIsIGkzMiwgaTMyLCBpMTYsIGkzMikgIzIKLSAKLSA7IEZ1bmN0aW9uIEF0 dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDEgeCBpOD4gQF9aMjRf X2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmIxX2NTXyg8MSB4IGk4PiwgPDEgeCBpOD4pICMw IHsKLStkZWZpbmUgaW50ZXJuYWwgPDEgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3Nk aXZ1MkNNdmIxX2NTXyg8MSB4IGk4PiwgPDEgeCBpOD4pICMwIHsKLSAgICUzID0gYWxsb2NhIDwx IHggaTg+LCBhbGlnbiAxCi0gICAlNCA9IGFsbG9jYSA8MSB4IGk4PiwgYWxpZ24gMQotICAgJTUg PSBhbGxvY2EgPDEgeCBpOD4sIGFsaWduIDEKLUBAIC02MzQsNyArNjM0LDcgQEAgZGVmaW5lIGRz b19sb2NhbCA8MSB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjFfY1Nf KDwxIHggaTg+LCA8MQotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2lu ZAotLWRlZmluZSBkc29fbG9jYWwgPDIgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3Nk aXZ1MkNNdmIyX2NTXyg8MiB4IGk4PiwgPDIgeCBpOD4pICMzIHsKLStkZWZpbmUgaW50ZXJuYWwg PDIgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmIyX2NTXyg8MiB4IGk4 PiwgPDIgeCBpOD4pICMzIHsKLSAgICUzID0gYWxsb2NhIDwyIHggaTg+LCBhbGlnbiAyCi0gICAl NCA9IGFsbG9jYSA8MiB4IGk4PiwgYWxpZ24gMgotICAgJTUgPSBhbGxvY2EgPDIgeCBpOD4sIGFs aWduIDIKLUBAIC02ODAsNyArNjgwLDcgQEAgZGVmaW5lIGludGVybmFsIDwyIHggaTg+IEBfWk43 ZGV0YWlsczEzX19pbXBsX2RpdnJlbUlMaTJFRUV1MkNNdmJUX19jUzFfUzFfdTJDTXYKLSB9Ci0g Ci0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2Fs IDw0IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZiNF9jU18oPDQgeCBp OD4sIDw0IHggaTg+KSAjNSB7Ci0rZGVmaW5lIGludGVybmFsIDw0IHggaTg+IEBfWjI0X19jbV9p bnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZiNF9jU18oPDQgeCBpOD4sIDw0IHggaTg+KSAjNSB7Ci0g ICAlMyA9IGFsbG9jYSA8NCB4IGk4PiwgYWxpZ24gNAotICAgJTQgPSBhbGxvY2EgPDQgeCBpOD4s IGFsaWduIDQKLSAgICU1ID0gYWxsb2NhIDw0IHggaTg+LCBhbGlnbiA0Ci1AQCAtODE4LDcgKzgx OCw3IEBAIGRlZmluZSBpbnRlcm5hbCA8MTYgeCBpOD4gQF9aTjdkZXRhaWxzMTNfX2ltcGxfZGl2 cmVtSUxpMTZFRUV1MkNNdmJUX19jUzFfUzFfdTJDCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6 IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MzIgeCBpOD4gQF9aMjRfX2Nt X2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmIzMl9jU18oPDMyIHggaTg+LCA8MzIgeCBpOD4pICMx MSB7Ci0rZGVmaW5lIGludGVybmFsIDwzMiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxf c2RpdnUyQ012YjMyX2NTXyg8MzIgeCBpOD4sIDwzMiB4IGk4PikgIzExIHsKLSAgICUzID0gYWxs b2NhIDwzMiB4IGk4PiwgYWxpZ24gMzIKLSAgICU0ID0gYWxsb2NhIDwzMiB4IGk4PiwgYWxpZ24g MzIKLSAgICU1ID0gYWxsb2NhIDwzMiB4IGk4PiwgYWxpZ24gMzIKLUBAIC04NjQsNyArODY0LDcg QEAgZGVmaW5lIGludGVybmFsIDwzMiB4IGk4PiBAX1pON2RldGFpbHMxM19faW1wbF9kaXZyZW1J TGkzMkVFRXUyQ012YlRfX2NTMV9TMV91MkMKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9p bmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIHNpZ25leHQgaTggQF9aMjRfX2NtX2lu dHJpbnNpY19pbXBsX3NyZW1jYyhpOCBzaWduZXh0LCBpOCBzaWduZXh0KSAjMCB7Ci0rZGVmaW5l IGludGVybmFsIHNpZ25leHQgaTggQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW1jYyhpOCBz aWduZXh0LCBpOCBzaWduZXh0KSAjMCB7Ci0gICAlMyA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAg JTQgPSBhbGxvY2EgaTgsIGFsaWduIDEKLSAgICU1ID0gYWxsb2NhIDwxIHggaTg+LCBhbGlnbiAx Ci1AQCAtODkwLDcgKzg5MCw3IEBAIGRlZmluZSBkc29fbG9jYWwgc2lnbmV4dCBpOCBAX1oyNF9f Y21faW50cmluc2ljX2ltcGxfc3JlbWNjKGk4IHNpZ25leHQsIGk4IHNpZ25lCi0gfQotIAotIDsg RnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MSB4 IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjFfY1NfKDwxIHggaTg+LCA8 MSB4IGk4PikgIzAgewotK2RlZmluZSBpbnRlcm5hbCA8MSB4IGk4PiBAX1oyNF9fY21faW50cmlu c2ljX2ltcGxfc3JlbXUyQ012YjFfY1NfKDwxIHggaTg+LCA8MSB4IGk4PikgIzAgewotICAgJTMg PSBhbGxvY2EgPDEgeCBpOD4sIGFsaWduIDEKLSAgICU0ID0gYWxsb2NhIDwxIHggaTg+LCBhbGln biAxCi0gICAlNSA9IGFsbG9jYSA8MSB4IGk4PiwgYWxpZ24gMQotQEAgLTkwNCw3ICs5MDQsNyBA QCBkZWZpbmUgZHNvX2xvY2FsIDwxIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVt dTJDTXZiMV9jU18oPDEgeCBpOD4sIDwxCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5s aW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MiB4IGk4PiBAX1oyNF9fY21faW50cmlu c2ljX2ltcGxfc3JlbXUyQ012YjJfY1NfKDwyIHggaTg+LCA8MiB4IGk4PikgIzMgewotK2RlZmlu ZSBpbnRlcm5hbCA8MiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjJf Y1NfKDwyIHggaTg+LCA8MiB4IGk4PikgIzMgewotICAgJTMgPSBhbGxvY2EgPDIgeCBpOD4sIGFs aWduIDIKLSAgICU0ID0gYWxsb2NhIDwyIHggaTg+LCBhbGlnbiAyCi0gICAlNSA9IGFsbG9jYSA8 MiB4IGk4PiwgYWxpZ24gMgotQEAgLTkxOCw3ICs5MTgsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwy IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMl9jU18oPDIgeCBpOD4s IDwyCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5l IGRzb19sb2NhbCA8NCB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjRf Y1NfKDw0IHggaTg+LCA8NCB4IGk4PikgIzUgewotK2RlZmluZSBpbnRlcm5hbCA8NCB4IGk4PiBA X1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjRfY1NfKDw0IHggaTg+LCA8NCB4IGk4 PikgIzUgewotICAgJTMgPSBhbGxvY2EgPDQgeCBpOD4sIGFsaWduIDQKLSAgICU0ID0gYWxsb2Nh IDw0IHggaTg+LCBhbGlnbiA0Ci0gICAlNSA9IGFsbG9jYSA8NCB4IGk4PiwgYWxpZ24gNAotQEAg LTkzMiw3ICs5MzIsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDw0IHggaTg+IEBfWjI0X19jbV9pbnRy aW5zaWNfaW1wbF9zcmVtdTJDTXZiNF9jU18oPDQgeCBpOD4sIDw0Ci0gfQotIAotIDsgRnVuY3Rp b24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8OCB4IGk4PiBA X1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjhfY1NfKDw4IHggaTg+LCA8OCB4IGk4 PikgIzcgewotK2RlZmluZSBpbnRlcm5hbCA8OCB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2lt cGxfc3JlbXUyQ012YjhfY1NfKDw4IHggaTg+LCA8OCB4IGk4PikgIzcgewotICAgJTMgPSBhbGxv Y2EgPDggeCBpOD4sIGFsaWduIDgKLSAgICU0ID0gYWxsb2NhIDw4IHggaTg+LCBhbGlnbiA4Ci0g ICAlNSA9IGFsbG9jYSA8OCB4IGk4PiwgYWxpZ24gOAotQEAgLTk0Niw3ICs5NDYsNyBAQCBkZWZp bmUgZHNvX2xvY2FsIDw4IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZi OF9jU18oPDggeCBpOD4sIDw4Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5v dW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MTYgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19p bXBsX3NyZW11MkNNdmIxNl9jU18oPDE2IHggaTg+LCA8MTYgeCBpOD4pICM5IHsKLStkZWZpbmUg aW50ZXJuYWwgPDE2IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMTZf Y1NfKDwxNiB4IGk4PiwgPDE2IHggaTg+KSAjOSB7Ci0gICAlMyA9IGFsbG9jYSA8MTYgeCBpOD4s IGFsaWduIDE2Ci0gICAlNCA9IGFsbG9jYSA8MTYgeCBpOD4sIGFsaWduIDE2Ci0gICAlNSA9IGFs bG9jYSA8MTYgeCBpOD4sIGFsaWduIDE2Ci1AQCAtOTYwLDcgKzk2MCw3IEBAIGRlZmluZSBkc29f bG9jYWwgPDE2IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMTZfY1Nf KDwxNiB4IGk4PiwKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQK LS1kZWZpbmUgZHNvX2xvY2FsIDwzMiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3Jl bXUyQ012YjMyX2NTXyg8MzIgeCBpOD4sIDwzMiB4IGk4PikgIzExIHsKLStkZWZpbmUgaW50ZXJu YWwgPDMyIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMzJfY1NfKDwz MiB4IGk4PiwgPDMyIHggaTg+KSAjMTEgewotICAgJTMgPSBhbGxvY2EgPDMyIHggaTg+LCBhbGln biAzMgotICAgJTQgPSBhbGxvY2EgPDMyIHggaTg+LCBhbGlnbiAzMgotICAgJTUgPSBhbGxvY2Eg PDMyIHggaTg+LCBhbGlnbiAzMgotQEAgLTk3NCw3ICs5NzQsNyBAQCBkZWZpbmUgZHNvX2xvY2Fs IDwzMiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjMyX2NTXyg8MzIg eCBpOD4sCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVm aW5lIGRzb19sb2NhbCBzaWduZXh0IGkxNiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnNz KGkxNiBzaWduZXh0LCBpMTYgc2lnbmV4dCkgIzMgewotK2RlZmluZSBpbnRlcm5hbCBzaWduZXh0 IGkxNiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnNzKGkxNiBzaWduZXh0LCBpMTYgc2ln bmV4dCkgIzMgewotICAgJTMgPSBhbGxvY2EgaTE2LCBhbGlnbiAyCi0gICAlNCA9IGFsbG9jYSBp MTYsIGFsaWduIDIKLSAgICU1ID0gYWxsb2NhIDwxIHggaTE2PiwgYWxpZ24gMgotQEAgLTEwNTgs NyArMTA1OCw3IEBAIGRlZmluZSBpbnRlcm5hbCA8MSB4IGkxNj4gQF9aTjdkZXRhaWxzMTNfX2lt cGxfZGl2cmVtSUxpMUVFRXUyQ012YlRfX3NTMV9TMV91MkNNCi0gZGVjbGFyZSA8MSB4IGkxNj4g QGxsdm0uZ2VueC5yZHJlZ2lvbmkudjFpMTYudjFpMTYuaTE2KDwxIHggaTE2PiwgaTMyLCBpMzIs IGkzMiwgaTE2LCBpMzIpICMyCi0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndp bmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwxIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxf c2RpdnUyQ012YjFfc1NfKDwxIHggaTE2PiwgPDEgeCBpMTY+KSAjMyB7Ci0rZGVmaW5lIGludGVy bmFsIDwxIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjFfc1NfKDwx IHggaTE2PiwgPDEgeCBpMTY+KSAjMyB7Ci0gICAlMyA9IGFsbG9jYSA8MSB4IGkxNj4sIGFsaWdu IDIKLSAgICU0ID0gYWxsb2NhIDwxIHggaTE2PiwgYWxpZ24gMgotICAgJTUgPSBhbGxvY2EgPDEg eCBpMTY+LCBhbGlnbiAyCi1AQCAtMTA3NCw3ICsxMDc0LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8 MSB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmIxX3NTXyg8MSB4IGkx Nj4sIDwKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZp bmUgZHNvX2xvY2FsIDwyIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012 YjJfc1NfKDwyIHggaTE2PiwgPDIgeCBpMTY+KSAjNSB7Ci0rZGVmaW5lIGludGVybmFsIDwyIHgg aTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjJfc1NfKDwyIHggaTE2Piwg PDIgeCBpMTY+KSAjNSB7Ci0gICAlMyA9IGFsbG9jYSA8MiB4IGkxNj4sIGFsaWduIDQKLSAgICU0 ID0gYWxsb2NhIDwyIHggaTE2PiwgYWxpZ24gNAotICAgJTUgPSBhbGxvY2EgPDIgeCBpMTY+LCBh bGlnbiA0Ci1AQCAtMTE0Myw3ICsxMTQzLDcgQEAgZGVmaW5lIGludGVybmFsIDwyIHggaTE2PiBA X1pON2RldGFpbHMxM19faW1wbF9kaXZyZW1JTGkyRUVFdTJDTXZiVF9fc1MxX1MxX3UyQ00KLSB9 Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xv Y2FsIDw0IHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjRfc1NfKDw0 IHggaTE2PiwgPDQgeCBpMTY+KSAjNyB7Ci0rZGVmaW5lIGludGVybmFsIDw0IHggaTE2PiBAX1oy NF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjRfc1NfKDw0IHggaTE2PiwgPDQgeCBpMTY+ KSAjNyB7Ci0gICAlMyA9IGFsbG9jYSA8NCB4IGkxNj4sIGFsaWduIDgKLSAgICU0ID0gYWxsb2Nh IDw0IHggaTE2PiwgYWxpZ24gOAotICAgJTUgPSBhbGxvY2EgPDQgeCBpMTY+LCBhbGlnbiA4Ci1A QCAtMTM1MCw3ICsxMzUwLDcgQEAgZGVmaW5lIGludGVybmFsIDwxNiB4IGkxNj4gQF9aTjdkZXRh aWxzMTNfX2ltcGxfZGl2cmVtSUxpMTZFRUV1MkNNdmJUX19zUzFfUzFfdTIKLSB9Ci0gCi0gOyBG dW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwzMiB4 IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmIzMl9zU18oPDMyIHggaTE2 PiwgPDMyIHggaTE2PikgIzEzIHsKLStkZWZpbmUgaW50ZXJuYWwgPDMyIHggaTE2PiBAX1oyNF9f Y21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjMyX3NTXyg8MzIgeCBpMTY+LCA8MzIgeCBpMTY+ KSAjMTMgewotICAgJTMgPSBhbGxvY2EgPDMyIHggaTE2PiwgYWxpZ24gNjQKLSAgICU0ID0gYWxs b2NhIDwzMiB4IGkxNj4sIGFsaWduIDY0Ci0gICAlNSA9IGFsbG9jYSA8MzIgeCBpMTY+LCBhbGln biA2NAotQEAgLTE0MTksNyArMTQxOSw3IEBAIGRlZmluZSBpbnRlcm5hbCA8MzIgeCBpMTY+IEBf Wk43ZGV0YWlsczEzX19pbXBsX2RpdnJlbUlMaTMyRUVFdTJDTXZiVF9fc1MxX1MxX3UyCi0gfQot IAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2Nh bCBzaWduZXh0IGkxNiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXNzKGkxNiBzaWduZXh0 LCBpMTYgc2lnbmV4dCkgIzMgewotK2RlZmluZSBpbnRlcm5hbCBzaWduZXh0IGkxNiBAX1oyNF9f Y21faW50cmluc2ljX2ltcGxfc3JlbXNzKGkxNiBzaWduZXh0LCBpMTYgc2lnbmV4dCkgIzMgewot ICAgJTMgPSBhbGxvY2EgaTE2LCBhbGlnbiAyCi0gICAlNCA9IGFsbG9jYSBpMTYsIGFsaWduIDIK LSAgICU1ID0gYWxsb2NhIDwxIHggaTE2PiwgYWxpZ24gMgotQEAgLTE0NDUsNyArMTQ0NSw3IEBA IGRlZmluZSBkc29fbG9jYWwgc2lnbmV4dCBpMTYgQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3Ny ZW1zcyhpMTYgc2lnbmV4dCwgaTE2IHNpCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5s aW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MSB4IGkxNj4gQF9aMjRfX2NtX2ludHJp bnNpY19pbXBsX3NyZW11MkNNdmIxX3NTXyg8MSB4IGkxNj4sIDwxIHggaTE2PikgIzMgewotK2Rl ZmluZSBpbnRlcm5hbCA8MSB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNN dmIxX3NTXyg8MSB4IGkxNj4sIDwxIHggaTE2PikgIzMgewotICAgJTMgPSBhbGxvY2EgPDEgeCBp MTY+LCBhbGlnbiAyCi0gICAlNCA9IGFsbG9jYSA8MSB4IGkxNj4sIGFsaWduIDIKLSAgICU1ID0g YWxsb2NhIDwxIHggaTE2PiwgYWxpZ24gMgotQEAgLTE0NTksNyArMTQ1OSw3IEBAIGRlZmluZSBk c29fbG9jYWwgPDEgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMV9z U18oPDEgeCBpMTY+LCA8Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53 aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MiB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBs X3NyZW11MkNNdmIyX3NTXyg8MiB4IGkxNj4sIDwyIHggaTE2PikgIzUgewotK2RlZmluZSBpbnRl cm5hbCA8MiB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIyX3NTXyg8 MiB4IGkxNj4sIDwyIHggaTE2PikgIzUgewotICAgJTMgPSBhbGxvY2EgPDIgeCBpMTY+LCBhbGln biA0Ci0gICAlNCA9IGFsbG9jYSA8MiB4IGkxNj4sIGFsaWduIDQKLSAgICU1ID0gYWxsb2NhIDwy IHggaTE2PiwgYWxpZ24gNAotQEAgLTE0NzMsNyArMTQ3Myw3IEBAIGRlZmluZSBkc29fbG9jYWwg PDIgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMl9zU18oPDIgeCBp MTY+LCA8Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVm aW5lIGRzb19sb2NhbCA8NCB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNN dmI0X3NTXyg8NCB4IGkxNj4sIDw0IHggaTE2PikgIzcgewotK2RlZmluZSBpbnRlcm5hbCA8NCB4 IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmI0X3NTXyg8NCB4IGkxNj4s IDw0IHggaTE2PikgIzcgewotICAgJTMgPSBhbGxvY2EgPDQgeCBpMTY+LCBhbGlnbiA4Ci0gICAl NCA9IGFsbG9jYSA8NCB4IGkxNj4sIGFsaWduIDgKLSAgICU1ID0gYWxsb2NhIDw0IHggaTE2Piwg YWxpZ24gOAotQEAgLTE0ODcsNyArMTQ4Nyw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDQgeCBpMTY+ IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiNF9zU18oPDQgeCBpMTY+LCA8Ci0g fQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19s b2NhbCA8OCB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmI4X3NTXyg8 OCB4IGkxNj4sIDw4IHggaTE2PikgIzkgewotK2RlZmluZSBpbnRlcm5hbCA8OCB4IGkxNj4gQF9a MjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmI4X3NTXyg8OCB4IGkxNj4sIDw4IHggaTE2 PikgIzkgewotICAgJTMgPSBhbGxvY2EgPDggeCBpMTY+LCBhbGlnbiAxNgotICAgJTQgPSBhbGxv Y2EgPDggeCBpMTY+LCBhbGlnbiAxNgotICAgJTUgPSBhbGxvY2EgPDggeCBpMTY+LCBhbGlnbiAx NgotQEAgLTE1MDEsNyArMTUwMSw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDggeCBpMTY+IEBfWjI0 X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiOF9zU18oPDggeCBpMTY+LCA8Ci0gfQotIAot IDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8 MTYgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMTZfc1NfKDwxNiB4 IGkxNj4sIDwxNiB4IGkxNj4pICMxMSB7Ci0rZGVmaW5lIGludGVybmFsIDwxNiB4IGkxNj4gQF9a MjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIxNl9zU18oPDE2IHggaTE2PiwgPDE2IHgg aTE2PikgIzExIHsKLSAgICUzID0gYWxsb2NhIDwxNiB4IGkxNj4sIGFsaWduIDMyCi0gICAlNCA9 IGFsbG9jYSA8MTYgeCBpMTY+LCBhbGlnbiAzMgotICAgJTUgPSBhbGxvY2EgPDE2IHggaTE2Piwg YWxpZ24gMzIKLUBAIC0xNTE1LDcgKzE1MTUsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwxNiB4IGkx Nj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIxNl9zU18oPDE2IHggaTE2Pgot IH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29f bG9jYWwgPDMyIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjMyX3NT Xyg8MzIgeCBpMTY+LCA8MzIgeCBpMTY+KSAjMTMgewotK2RlZmluZSBpbnRlcm5hbCA8MzIgeCBp MTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMzJfc1NfKDwzMiB4IGkxNj4s IDwzMiB4IGkxNj4pICMxMyB7Ci0gICAlMyA9IGFsbG9jYSA8MzIgeCBpMTY+LCBhbGlnbiA2NAot ICAgJTQgPSBhbGxvY2EgPDMyIHggaTE2PiwgYWxpZ24gNjQKLSAgICU1ID0gYWxsb2NhIDwzMiB4 IGkxNj4sIGFsaWduIDY0Ci1AQCAtMTUyOSw3ICsxNTI5LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8 MzIgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMzJfc1NfKDwzMiB4 IGkxNj4KLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZp bmUgZHNvX2xvY2FsIGkzMiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdmlpKGkzMiwgaTMy KSAjMTQgewotK2RlZmluZSBpbnRlcm5hbCBpMzIgQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3Nk aXZpaShpMzIsIGkzMikgIzE0IHsKLSAgICUzID0gYWxsb2NhIGkzMiwgYWxpZ24gNAotICAgJTQg PSBhbGxvY2EgaTMyLCBhbGlnbiA0Ci0gICAlNSA9IGFsbG9jYSA8MSB4IGkzMj4sIGFsaWduIDQK LUBAIC0xNzMwLDcgKzE3MzAsNyBAQCBkZWZpbmUgaW50ZXJuYWwgPDEgeCBpMzI+IEBfWk43ZGV0 YWlsczEzX19pbXBsX2RpdnJlbUlMaTFFRUV1MkNNdmJUX19pUzFfUzFfdTJDTQotIGRlY2xhcmUg PDEgeCBpMzI+IEBsbHZtLmdlbngucmRyZWdpb25pLnYxaTMyLnYxaTMyLmkxNig8MSB4IGkzMj4s IGkzMiwgaTMyLCBpMzIsIGkxNiwgaTMyKSAjMgotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5s aW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MSB4IGkzMj4gQF9aMjRfX2NtX2ludHJp bnNpY19pbXBsX3NkaXZ1MkNNdmIxX2lTXyg8MSB4IGkzMj4sIDwxIHggaTMyPikgIzE0IHsKLStk ZWZpbmUgaW50ZXJuYWwgPDEgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJD TXZiMV9pU18oPDEgeCBpMzI+LCA8MSB4IGkzMj4pICMxNCB7Ci0gICAlMyA9IGFsbG9jYSA8MSB4 IGkzMj4sIGFsaWduIDQKLSAgICU0ID0gYWxsb2NhIDwxIHggaTMyPiwgYWxpZ24gNAotICAgJTUg PSBhbGxvY2EgPDEgeCBpMzI+LCBhbGlnbiA0Ci1AQCAtMTc0Niw3ICsxNzQ2LDcgQEAgZGVmaW5l IGRzb19sb2NhbCA8MSB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmIx X2lTXyg8MSB4IGkzMj4sIDwKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91 bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwyIHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2lt cGxfc2RpdnUyQ012YjJfaVNfKDwyIHggaTMyPiwgPDIgeCBpMzI+KSAjMTUgewotK2RlZmluZSBp bnRlcm5hbCA8MiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmIyX2lT Xyg8MiB4IGkzMj4sIDwyIHggaTMyPikgIzE1IHsKLSAgICUzID0gYWxsb2NhIDwyIHggaTMyPiwg YWxpZ24gOAotICAgJTQgPSBhbGxvY2EgPDIgeCBpMzI+LCBhbGlnbiA4Ci0gICAlNSA9IGFsbG9j YSA8MiB4IGkzMj4sIGFsaWduIDgKLUBAIC0xOTMyLDcgKzE5MzIsNyBAQCBkZWZpbmUgaW50ZXJu YWwgPDIgeCBpMzI+IEBfWk43ZGV0YWlsczEzX19pbXBsX2RpdnJlbUlMaTJFRUV1MkNNdmJUX19p UzFfUzFfdTJDTQotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAot LWRlZmluZSBkc29fbG9jYWwgPDQgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2 dTJDTXZiNF9pU18oPDQgeCBpMzI+LCA8NCB4IGkzMj4pICMxNiB7Ci0rZGVmaW5lIGludGVybmFs IDw0IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjRfaVNfKDw0IHgg aTMyPiwgPDQgeCBpMzI+KSAjMTYgewotICAgJTMgPSBhbGxvY2EgPDQgeCBpMzI+LCBhbGlnbiAx NgotICAgJTQgPSBhbGxvY2EgPDQgeCBpMzI+LCBhbGlnbiAxNgotICAgJTUgPSBhbGxvY2EgPDQg eCBpMzI+LCBhbGlnbiAxNgotQEAgLTI0OTAsNyArMjQ5MCw3IEBAIGRlZmluZSBpbnRlcm5hbCA8 MTYgeCBpMzI+IEBfWk43ZGV0YWlsczEzX19pbXBsX2RpdnJlbUlMaTE2RUVFdTJDTXZiVF9faVMx X1MxX3UyCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVm aW5lIGRzb19sb2NhbCA8MzIgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJD TXZiMzJfaVNfKDwzMiB4IGkzMj4sIDwzMiB4IGkzMj4pICMxOSB7Ci0rZGVmaW5lIGludGVybmFs IDwzMiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmIzMl9pU18oPDMy IHggaTMyPiwgPDMyIHggaTMyPikgIzE5IHsKLSAgICUzID0gYWxsb2NhIDwzMiB4IGkzMj4sIGFs aWduIDEyOAotICAgJTQgPSBhbGxvY2EgPDMyIHggaTMyPiwgYWxpZ24gMTI4Ci0gICAlNSA9IGFs bG9jYSA8MzIgeCBpMzI+LCBhbGlnbiAxMjgKLUBAIC0yNjc2LDcgKzI2NzYsNyBAQCBkZWZpbmUg aW50ZXJuYWwgPDMyIHggaTMyPiBAX1pON2RldGFpbHMxM19faW1wbF9kaXZyZW1JTGkzMkVFRXUy Q012YlRfX2lTMV9TMV91MgotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vu d2luZAotLWRlZmluZSBkc29fbG9jYWwgaTMyIEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVt aWkoaTMyLCBpMzIpICMxNCB7Ci0rZGVmaW5lIGludGVybmFsIGkzMiBAX1oyNF9fY21faW50cmlu c2ljX2ltcGxfc3JlbWlpKGkzMiwgaTMyKSAjMTQgewotICAgJTMgPSBhbGxvY2EgaTMyLCBhbGln biA0Ci0gICAlNCA9IGFsbG9jYSBpMzIsIGFsaWduIDQKLSAgICU1ID0gYWxsb2NhIDwxIHggaTMy PiwgYWxpZ24gNAotQEAgLTI3MDIsNyArMjcwMiw3IEBAIGRlZmluZSBkc29fbG9jYWwgaTMyIEBf WjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtaWkoaTMyLCBpMzIpICMxNCB7Ci0gfQotIAotIDsg RnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MSB4 IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIxX2lTXyg8MSB4IGkzMj4s IDwxIHggaTMyPikgIzE0IHsKLStkZWZpbmUgaW50ZXJuYWwgPDEgeCBpMzI+IEBfWjI0X19jbV9p bnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMV9pU18oPDEgeCBpMzI+LCA8MSB4IGkzMj4pICMxNCB7 Ci0gICAlMyA9IGFsbG9jYSA8MSB4IGkzMj4sIGFsaWduIDQKLSAgICU0ID0gYWxsb2NhIDwxIHgg aTMyPiwgYWxpZ24gNAotICAgJTUgPSBhbGxvY2EgPDEgeCBpMzI+LCBhbGlnbiA0Ci1AQCAtMjcx Niw3ICsyNzE2LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MSB4IGkzMj4gQF9aMjRfX2NtX2ludHJp bnNpY19pbXBsX3NyZW11MkNNdmIxX2lTXyg8MSB4IGkzMj4sIDwKLSB9Ci0gCi0gOyBGdW5jdGlv biBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwyIHggaTMyPiBA X1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjJfaVNfKDwyIHggaTMyPiwgPDIgeCBp MzI+KSAjMTUgewotK2RlZmluZSBpbnRlcm5hbCA8MiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNp Y19pbXBsX3NyZW11MkNNdmIyX2lTXyg8MiB4IGkzMj4sIDwyIHggaTMyPikgIzE1IHsKLSAgICUz ID0gYWxsb2NhIDwyIHggaTMyPiwgYWxpZ24gOAotICAgJTQgPSBhbGxvY2EgPDIgeCBpMzI+LCBh bGlnbiA4Ci0gICAlNSA9IGFsbG9jYSA8MiB4IGkzMj4sIGFsaWduIDgKLUBAIC0yNzMwLDcgKzI3 MzAsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwyIHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2lt cGxfc3JlbXUyQ012YjJfaVNfKDwyIHggaTMyPiwgPAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJz OiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDQgeCBpMzI+IEBfWjI0X19j bV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiNF9pU18oPDQgeCBpMzI+LCA8NCB4IGkzMj4pICMx NiB7Ci0rZGVmaW5lIGludGVybmFsIDw0IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxf c3JlbXUyQ012YjRfaVNfKDw0IHggaTMyPiwgPDQgeCBpMzI+KSAjMTYgewotICAgJTMgPSBhbGxv Y2EgPDQgeCBpMzI+LCBhbGlnbiAxNgotICAgJTQgPSBhbGxvY2EgPDQgeCBpMzI+LCBhbGlnbiAx NgotICAgJTUgPSBhbGxvY2EgPDQgeCBpMzI+LCBhbGlnbiAxNgotQEAgLTI3NDQsNyArMjc0NCw3 IEBAIGRlZmluZSBkc29fbG9jYWwgPDQgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9z cmVtdTJDTXZiNF9pU18oPDQgeCBpMzI+LCA8Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5v aW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8OCB4IGkzMj4gQF9aMjRfX2NtX2lu dHJpbnNpY19pbXBsX3NyZW11MkNNdmI4X2lTXyg8OCB4IGkzMj4sIDw4IHggaTMyPikgIzE3IHsK LStkZWZpbmUgaW50ZXJuYWwgPDggeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVt dTJDTXZiOF9pU18oPDggeCBpMzI+LCA8OCB4IGkzMj4pICMxNyB7Ci0gICAlMyA9IGFsbG9jYSA8 OCB4IGkzMj4sIGFsaWduIDMyCi0gICAlNCA9IGFsbG9jYSA8OCB4IGkzMj4sIGFsaWduIDMyCi0g ICAlNSA9IGFsbG9jYSA8OCB4IGkzMj4sIGFsaWduIDMyCi1AQCAtMjc1OCw3ICsyNzU4LDcgQEAg ZGVmaW5lIGRzb19sb2NhbCA8OCB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11 MkNNdmI4X2lTXyg8OCB4IGkzMj4sIDwKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxp bmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwxNiB4IGkzMj4gQF9aMjRfX2NtX2ludHJp bnNpY19pbXBsX3NyZW11MkNNdmIxNl9pU18oPDE2IHggaTMyPiwgPDE2IHggaTMyPikgIzE4IHsK LStkZWZpbmUgaW50ZXJuYWwgPDE2IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3Jl bXUyQ012YjE2X2lTXyg8MTYgeCBpMzI+LCA8MTYgeCBpMzI+KSAjMTggewotICAgJTMgPSBhbGxv Y2EgPDE2IHggaTMyPiwgYWxpZ24gNjQKLSAgICU0ID0gYWxsb2NhIDwxNiB4IGkzMj4sIGFsaWdu IDY0Ci0gICAlNSA9IGFsbG9jYSA8MTYgeCBpMzI+LCBhbGlnbiA2NAotQEAgLTI3NzIsNyArMjc3 Miw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDE2IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2lt cGxfc3JlbXUyQ012YjE2X2lTXyg8MTYgeCBpMzI+Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6 IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MzIgeCBpMzI+IEBfWjI0X19j bV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMzJfaVNfKDwzMiB4IGkzMj4sIDwzMiB4IGkzMj4p ICMxOSB7Ci0rZGVmaW5lIGludGVybmFsIDwzMiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19p bXBsX3NyZW11MkNNdmIzMl9pU18oPDMyIHggaTMyPiwgPDMyIHggaTMyPikgIzE5IHsKLSAgICUz ID0gYWxsb2NhIDwzMiB4IGkzMj4sIGFsaWduIDEyOAotICAgJTQgPSBhbGxvY2EgPDMyIHggaTMy PiwgYWxpZ24gMTI4Ci0gICAlNSA9IGFsbG9jYSA8MzIgeCBpMzI+LCBhbGlnbiAxMjgKLUBAIC0y Nzg2LDcgKzI3ODYsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwzMiB4IGkzMj4gQF9aMjRfX2NtX2lu dHJpbnNpY19pbXBsX3NyZW11MkNNdmIzMl9pU18oPDMyIHggaTMyPgotIH0KLSAKLSA7IEZ1bmN0 aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgemVyb2V4dCBp OCBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRpdmhoKGk4IHplcm9leHQsIGk4IHplcm9leHQp ICMyMSB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQgaTggQF9aMjRfX2NtX2ludHJpbnNpY19p bXBsX3VkaXZoaChpOCB6ZXJvZXh0LCBpOCB6ZXJvZXh0KSAjMjEgewotICAgJTMgPSBhbGxvY2Eg aTgsIGFsaWduIDEKLSAgICU0ID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSA8 MSB4IGk4PiwgYWxpZ24gMQotQEAgLTI4NDQsNyArMjg0NCw3IEBAIGRlZmluZSBpbnRlcm5hbCA8 MSB4IGk4PiBAX1pON2RldGFpbHMxNF9faW1wbF91ZGl2cmVtSUxpMUVFRXUyQ012YlRfX2hTMV9T MV91MkNNCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVm aW5lIGRzb19sb2NhbCA8MSB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRpdnUyQ012 YjFfaFNfKDwxIHggaTg+LCA8MSB4IGk4PikgIzIxIHsKLStkZWZpbmUgaW50ZXJuYWwgPDEgeCBp OD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1MkNNdmIxX2hTXyg8MSB4IGk4PiwgPDEg eCBpOD4pICMyMSB7Ci0gICAlMyA9IGFsbG9jYSA8MSB4IGk4PiwgYWxpZ24gMQotICAgJTQgPSBh bGxvY2EgPDEgeCBpOD4sIGFsaWduIDEKLSAgICU1ID0gYWxsb2NhIDwxIHggaTg+LCBhbGlnbiAx Ci1AQCAtMjg2MCw3ICsyODYwLDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MSB4IGk4PiBAX1oyNF9f Y21faW50cmluc2ljX2ltcGxfdWRpdnUyQ012YjFfaFNfKDwxIHggaTg+LCA8MQotIH0KLSAKLSA7 IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDIg eCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1MkNNdmIyX2hTXyg8MiB4IGk4Piwg PDIgeCBpOD4pICMyMiB7Ci0rZGVmaW5lIGludGVybmFsIDwyIHggaTg+IEBfWjI0X19jbV9pbnRy aW5zaWNfaW1wbF91ZGl2dTJDTXZiMl9oU18oPDIgeCBpOD4sIDwyIHggaTg+KSAjMjIgewotICAg JTMgPSBhbGxvY2EgPDIgeCBpOD4sIGFsaWduIDIKLSAgICU0ID0gYWxsb2NhIDwyIHggaTg+LCBh bGlnbiAyCi0gICAlNSA9IGFsbG9jYSA8MiB4IGk4PiwgYWxpZ24gMgotQEAgLTI5MDYsNyArMjkw Niw3IEBAIGRlZmluZSBpbnRlcm5hbCA8MiB4IGk4PiBAX1pON2RldGFpbHMxNF9faW1wbF91ZGl2 cmVtSUxpMkVFRXUyQ012YlRfX2hTMV9TMV91MkNNCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6 IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8NCB4IGk4PiBAX1oyNF9fY21f aW50cmluc2ljX2ltcGxfdWRpdnUyQ012YjRfaFNfKDw0IHggaTg+LCA8NCB4IGk4PikgIzE0IHsK LStkZWZpbmUgaW50ZXJuYWwgPDQgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1 MkNNdmI0X2hTXyg8NCB4IGk4PiwgPDQgeCBpOD4pICMxNCB7Ci0gICAlMyA9IGFsbG9jYSA8NCB4 IGk4PiwgYWxpZ24gNAotICAgJTQgPSBhbGxvY2EgPDQgeCBpOD4sIGFsaWduIDQKLSAgICU1ID0g YWxsb2NhIDw0IHggaTg+LCBhbGlnbiA0Ci1AQCAtMzA0NCw3ICszMDQ0LDcgQEAgZGVmaW5lIGlu dGVybmFsIDwxNiB4IGk4PiBAX1pON2RldGFpbHMxNF9faW1wbF91ZGl2cmVtSUxpMTZFRUV1MkNN dmJUX19oUzFfUzFfdTIKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndp bmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwzMiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxf dWRpdnUyQ012YjMyX2hTXyg8MzIgeCBpOD4sIDwzMiB4IGk4PikgIzE3IHsKLStkZWZpbmUgaW50 ZXJuYWwgPDMyIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZiMzJfaFNf KDwzMiB4IGk4PiwgPDMyIHggaTg+KSAjMTcgewotICAgJTMgPSBhbGxvY2EgPDMyIHggaTg+LCBh bGlnbiAzMgotICAgJTQgPSBhbGxvY2EgPDMyIHggaTg+LCBhbGlnbiAzMgotICAgJTUgPSBhbGxv Y2EgPDMyIHggaTg+LCBhbGlnbiAzMgotQEAgLTMwOTAsNyArMzA5MCw3IEBAIGRlZmluZSBpbnRl cm5hbCA8MzIgeCBpOD4gQF9aTjdkZXRhaWxzMTRfX2ltcGxfdWRpdnJlbUlMaTMyRUVFdTJDTXZi VF9faFMxX1MxX3UyCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5k Ci0tZGVmaW5lIGRzb19sb2NhbCB6ZXJvZXh0IGk4IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91 cmVtaGgoaTggemVyb2V4dCwgaTggemVyb2V4dCkgIzIxIHsKLStkZWZpbmUgaW50ZXJuYWwgemVy b2V4dCBpOCBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbWhoKGk4IHplcm9leHQsIGk4IHpl cm9leHQpICMyMSB7Ci0gICAlMyA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgJTQgPSBhbGxvY2Eg aTgsIGFsaWduIDEKLSAgICU1ID0gYWxsb2NhIDwxIHggaTg+LCBhbGlnbiAxCi1AQCAtMzExNiw3 ICszMTE2LDcgQEAgZGVmaW5lIGRzb19sb2NhbCB6ZXJvZXh0IGk4IEBfWjI0X19jbV9pbnRyaW5z aWNfaW1wbF91cmVtaGgoaTggemVyb2V4dCwgaTggemVyb2UKLSB9Ci0gCi0gOyBGdW5jdGlvbiBB dHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwxIHggaTg+IEBfWjI0 X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMV9oU18oPDEgeCBpOD4sIDwxIHggaTg+KSAj MjEgewotK2RlZmluZSBpbnRlcm5hbCA8MSB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxf dXJlbXUyQ012YjFfaFNfKDwxIHggaTg+LCA8MSB4IGk4PikgIzIxIHsKLSAgICUzID0gYWxsb2Nh IDwxIHggaTg+LCBhbGlnbiAxCi0gICAlNCA9IGFsbG9jYSA8MSB4IGk4PiwgYWxpZ24gMQotICAg JTUgPSBhbGxvY2EgPDEgeCBpOD4sIGFsaWduIDEKLUBAIC0zMTMwLDcgKzMxMzAsNyBAQCBkZWZp bmUgZHNvX2xvY2FsIDwxIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZi MV9oU18oPDEgeCBpOD4sIDwxCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5v dW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2lt cGxfdXJlbXUyQ012YjJfaFNfKDwyIHggaTg+LCA8MiB4IGk4PikgIzIyIHsKLStkZWZpbmUgaW50 ZXJuYWwgPDIgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIyX2hTXyg8 MiB4IGk4PiwgPDIgeCBpOD4pICMyMiB7Ci0gICAlMyA9IGFsbG9jYSA8MiB4IGk4PiwgYWxpZ24g MgotICAgJTQgPSBhbGxvY2EgPDIgeCBpOD4sIGFsaWduIDIKLSAgICU1ID0gYWxsb2NhIDwyIHgg aTg+LCBhbGlnbiAyCi1AQCAtMzE0NCw3ICszMTQ0LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MiB4 IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjJfaFNfKDwyIHggaTg+LCA8 MgotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBk c29fbG9jYWwgPDQgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmI0X2hT Xyg8NCB4IGk4PiwgPDQgeCBpOD4pICMxNCB7Ci0rZGVmaW5lIGludGVybmFsIDw0IHggaTg+IEBf WjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiNF9oU18oPDQgeCBpOD4sIDw0IHggaTg+ KSAjMTQgewotICAgJTMgPSBhbGxvY2EgPDQgeCBpOD4sIGFsaWduIDQKLSAgICU0ID0gYWxsb2Nh IDw0IHggaTg+LCBhbGlnbiA0Ci0gICAlNSA9IGFsbG9jYSA8NCB4IGk4PiwgYWxpZ24gNAotQEAg LTMxNTgsNyArMzE1OCw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDQgeCBpOD4gQF9aMjRfX2NtX2lu dHJpbnNpY19pbXBsX3VyZW11MkNNdmI0X2hTXyg8NCB4IGk4PiwgPDQKLSB9Ci0gCi0gOyBGdW5j dGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDw4IHggaTg+ IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiOF9oU18oPDggeCBpOD4sIDw4IHgg aTg+KSAjMTUgewotK2RlZmluZSBpbnRlcm5hbCA8OCB4IGk4PiBAX1oyNF9fY21faW50cmluc2lj X2ltcGxfdXJlbXUyQ012YjhfaFNfKDw4IHggaTg+LCA8OCB4IGk4PikgIzE1IHsKLSAgICUzID0g YWxsb2NhIDw4IHggaTg+LCBhbGlnbiA4Ci0gICAlNCA9IGFsbG9jYSA8OCB4IGk4PiwgYWxpZ24g OAotICAgJTUgPSBhbGxvY2EgPDggeCBpOD4sIGFsaWduIDgKLUBAIC0zMTcyLDcgKzMxNzIsNyBA QCBkZWZpbmUgZHNvX2xvY2FsIDw4IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVt dTJDTXZiOF9oU18oPDggeCBpOD4sIDw4Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5s aW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MTYgeCBpOD4gQF9aMjRfX2NtX2ludHJp bnNpY19pbXBsX3VyZW11MkNNdmIxNl9oU18oPDE2IHggaTg+LCA8MTYgeCBpOD4pICMxNiB7Ci0r ZGVmaW5lIGludGVybmFsIDwxNiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUy Q012YjE2X2hTXyg8MTYgeCBpOD4sIDwxNiB4IGk4PikgIzE2IHsKLSAgICUzID0gYWxsb2NhIDwx NiB4IGk4PiwgYWxpZ24gMTYKLSAgICU0ID0gYWxsb2NhIDwxNiB4IGk4PiwgYWxpZ24gMTYKLSAg ICU1ID0gYWxsb2NhIDwxNiB4IGk4PiwgYWxpZ24gMTYKLUBAIC0zMTg2LDcgKzMxODYsNyBAQCBk ZWZpbmUgZHNvX2xvY2FsIDwxNiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUy Q012YjE2X2hTXyg8MTYgeCBpOD4sCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5l IG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MzIgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNp Y19pbXBsX3VyZW11MkNNdmIzMl9oU18oPDMyIHggaTg+LCA8MzIgeCBpOD4pICMxNyB7Ci0rZGVm aW5lIGludGVybmFsIDwzMiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012 YjMyX2hTXyg8MzIgeCBpOD4sIDwzMiB4IGk4PikgIzE3IHsKLSAgICUzID0gYWxsb2NhIDwzMiB4 IGk4PiwgYWxpZ24gMzIKLSAgICU0ID0gYWxsb2NhIDwzMiB4IGk4PiwgYWxpZ24gMzIKLSAgICU1 ID0gYWxsb2NhIDwzMiB4IGk4PiwgYWxpZ24gMzIKLUBAIC0zMjAwLDcgKzMyMDAsNyBAQCBkZWZp bmUgZHNvX2xvY2FsIDwzMiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012 YjMyX2hTXyg8MzIgeCBpOD4sCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5v dW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCB6ZXJvZXh0IGkxNiBAX1oyNF9fY21faW50cmluc2lj X2ltcGxfdWRpdnR0KGkxNiB6ZXJvZXh0LCBpMTYgemVyb2V4dCkgIzIyIHsKLStkZWZpbmUgaW50 ZXJuYWwgemVyb2V4dCBpMTYgQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZ0dChpMTYgemVy b2V4dCwgaTE2IHplcm9leHQpICMyMiB7Ci0gICAlMyA9IGFsbG9jYSBpMTYsIGFsaWduIDIKLSAg ICU0ID0gYWxsb2NhIGkxNiwgYWxpZ24gMgotICAgJTUgPSBhbGxvY2EgPDEgeCBpMTY+LCBhbGln biAyCi1AQCAtMzI3OCw3ICszMjc4LDcgQEAgZGVmaW5lIGludGVybmFsIDwxIHggaTE2PiBAX1pO N2RldGFpbHMxNF9faW1wbF91ZGl2cmVtSUxpMUVFRXUyQ012YlRfX3RTMV9TMV91MkMKLSB9Ci0g Ci0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2Fs IDwxIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRpdnUyQ012YjFfdFNfKDwxIHgg aTE2PiwgPDEgeCBpMTY+KSAjMjIgewotK2RlZmluZSBpbnRlcm5hbCA8MSB4IGkxNj4gQF9aMjRf X2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1MkNNdmIxX3RTXyg8MSB4IGkxNj4sIDwxIHggaTE2Pikg IzIyIHsKLSAgICUzID0gYWxsb2NhIDwxIHggaTE2PiwgYWxpZ24gMgotICAgJTQgPSBhbGxvY2Eg PDEgeCBpMTY+LCBhbGlnbiAyCi0gICAlNSA9IGFsbG9jYSA8MSB4IGkxNj4sIGFsaWduIDIKLUBA IC0zMjk0LDcgKzMyOTQsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwxIHggaTE2PiBAX1oyNF9fY21f aW50cmluc2ljX2ltcGxfdWRpdnUyQ012YjFfdFNfKDwxIHggaTE2PiwgPAotIH0KLSAKLSA7IEZ1 bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDIgeCBp MTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZiMl90U18oPDIgeCBpMTY+LCA8 MiB4IGkxNj4pICMxNCB7Ci0rZGVmaW5lIGludGVybmFsIDwyIHggaTE2PiBAX1oyNF9fY21faW50 cmluc2ljX2ltcGxfdWRpdnUyQ012YjJfdFNfKDwyIHggaTE2PiwgPDIgeCBpMTY+KSAjMTQgewot ICAgJTMgPSBhbGxvY2EgPDIgeCBpMTY+LCBhbGlnbiA0Ci0gICAlNCA9IGFsbG9jYSA8MiB4IGkx Nj4sIGFsaWduIDQKLSAgICU1ID0gYWxsb2NhIDwyIHggaTE2PiwgYWxpZ24gNAotQEAgLTMzNjAs NyArMzM2MCw3IEBAIGRlZmluZSBpbnRlcm5hbCA8MiB4IGkxNj4gQF9aTjdkZXRhaWxzMTRfX2lt cGxfdWRpdnJlbUlMaTJFRUV1MkNNdmJUX190UzFfUzFfdTJDCi0gfQotIAotIDsgRnVuY3Rpb24g QXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8NCB4IGkxNj4gQF9a MjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1MkNNdmI0X3RTXyg8NCB4IGkxNj4sIDw0IHggaTE2 PikgIzE1IHsKLStkZWZpbmUgaW50ZXJuYWwgPDQgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNf aW1wbF91ZGl2dTJDTXZiNF90U18oPDQgeCBpMTY+LCA8NCB4IGkxNj4pICMxNSB7Ci0gICAlMyA9 IGFsbG9jYSA8NCB4IGkxNj4sIGFsaWduIDgKLSAgICU0ID0gYWxsb2NhIDw0IHggaTE2PiwgYWxp Z24gOAotICAgJTUgPSBhbGxvY2EgPDQgeCBpMTY+LCBhbGlnbiA4Ci1AQCAtMzU1OCw3ICszNTU4 LDcgQEAgZGVmaW5lIGludGVybmFsIDwxNiB4IGkxNj4gQF9aTjdkZXRhaWxzMTRfX2ltcGxfdWRp dnJlbUlMaTE2RUVFdTJDTXZiVF9fdFMxX1MxX3UKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczog bm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwzMiB4IGkxNj4gQF9aMjRfX2Nt X2ludHJpbnNpY19pbXBsX3VkaXZ1MkNNdmIzMl90U18oPDMyIHggaTE2PiwgPDMyIHggaTE2Pikg IzE4IHsKLStkZWZpbmUgaW50ZXJuYWwgPDMyIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2lt cGxfdWRpdnUyQ012YjMyX3RTXyg8MzIgeCBpMTY+LCA8MzIgeCBpMTY+KSAjMTggewotICAgJTMg PSBhbGxvY2EgPDMyIHggaTE2PiwgYWxpZ24gNjQKLSAgICU0ID0gYWxsb2NhIDwzMiB4IGkxNj4s IGFsaWduIDY0Ci0gICAlNSA9IGFsbG9jYSA8MzIgeCBpMTY+LCBhbGlnbiA2NAotQEAgLTM2MjQs NyArMzYyNCw3IEBAIGRlZmluZSBpbnRlcm5hbCA8MzIgeCBpMTY+IEBfWk43ZGV0YWlsczE0X19p bXBsX3VkaXZyZW1JTGkzMkVFRXUyQ012YlRfX3RTMV9TMV91Ci0gfQotIAotIDsgRnVuY3Rpb24g QXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCB6ZXJvZXh0IGkxNiBA X1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXR0KGkxNiB6ZXJvZXh0LCBpMTYgemVyb2V4dCkg IzIyIHsKLStkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMTYgQF9aMjRfX2NtX2ludHJpbnNpY19p bXBsX3VyZW10dChpMTYgemVyb2V4dCwgaTE2IHplcm9leHQpICMyMiB7Ci0gICAlMyA9IGFsbG9j YSBpMTYsIGFsaWduIDIKLSAgICU0ID0gYWxsb2NhIGkxNiwgYWxpZ24gMgotICAgJTUgPSBhbGxv Y2EgPDEgeCBpMTY+LCBhbGlnbiAyCi1AQCAtMzY1MCw3ICszNjUwLDcgQEAgZGVmaW5lIGRzb19s b2NhbCB6ZXJvZXh0IGkxNiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXR0KGkxNiB6ZXJv ZXh0LCBpMTYgemUKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQK LS1kZWZpbmUgZHNvX2xvY2FsIDwxIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJl bXUyQ012YjFfdFNfKDwxIHggaTE2PiwgPDEgeCBpMTY+KSAjMjIgewotK2RlZmluZSBpbnRlcm5h bCA8MSB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIxX3RTXyg8MSB4 IGkxNj4sIDwxIHggaTE2PikgIzIyIHsKLSAgICUzID0gYWxsb2NhIDwxIHggaTE2PiwgYWxpZ24g MgotICAgJTQgPSBhbGxvY2EgPDEgeCBpMTY+LCBhbGlnbiAyCi0gICAlNSA9IGFsbG9jYSA8MSB4 IGkxNj4sIGFsaWduIDIKLUBAIC0zNjY0LDcgKzM2NjQsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwx IHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjFfdFNfKDwxIHggaTE2 PiwgPAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmlu ZSBkc29fbG9jYWwgPDIgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZi Ml90U18oPDIgeCBpMTY+LCA8MiB4IGkxNj4pICMxNCB7Ci0rZGVmaW5lIGludGVybmFsIDwyIHgg aTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjJfdFNfKDwyIHggaTE2Piwg PDIgeCBpMTY+KSAjMTQgewotICAgJTMgPSBhbGxvY2EgPDIgeCBpMTY+LCBhbGlnbiA0Ci0gICAl NCA9IGFsbG9jYSA8MiB4IGkxNj4sIGFsaWduIDQKLSAgICU1ID0gYWxsb2NhIDwyIHggaTE2Piwg YWxpZ24gNAotQEAgLTM2NzgsNyArMzY3OCw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDIgeCBpMTY+ IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMl90U18oPDIgeCBpMTY+LCA8Ci0g fQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19s b2NhbCA8NCB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmI0X3RTXyg8 NCB4IGkxNj4sIDw0IHggaTE2PikgIzE1IHsKLStkZWZpbmUgaW50ZXJuYWwgPDQgeCBpMTY+IEBf WjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiNF90U18oPDQgeCBpMTY+LCA8NCB4IGkx Nj4pICMxNSB7Ci0gICAlMyA9IGFsbG9jYSA8NCB4IGkxNj4sIGFsaWduIDgKLSAgICU0ID0gYWxs b2NhIDw0IHggaTE2PiwgYWxpZ24gOAotICAgJTUgPSBhbGxvY2EgPDQgeCBpMTY+LCBhbGlnbiA4 Ci1AQCAtMzY5Miw3ICszNjkyLDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8NCB4IGkxNj4gQF9aMjRf X2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmI0X3RTXyg8NCB4IGkxNj4sIDwKLSB9Ci0gCi0g OyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDw4 IHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjhfdFNfKDw4IHggaTE2 PiwgPDggeCBpMTY+KSAjMTYgewotK2RlZmluZSBpbnRlcm5hbCA8OCB4IGkxNj4gQF9aMjRfX2Nt X2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmI4X3RTXyg8OCB4IGkxNj4sIDw4IHggaTE2PikgIzE2 IHsKLSAgICUzID0gYWxsb2NhIDw4IHggaTE2PiwgYWxpZ24gMTYKLSAgICU0ID0gYWxsb2NhIDw4 IHggaTE2PiwgYWxpZ24gMTYKLSAgICU1ID0gYWxsb2NhIDw4IHggaTE2PiwgYWxpZ24gMTYKLUBA IC0zNzA2LDcgKzM3MDYsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDw4IHggaTE2PiBAX1oyNF9fY21f aW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjhfdFNfKDw4IHggaTE2PiwgPAotIH0KLSAKLSA7IEZ1 bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDE2IHgg aTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjE2X3RTXyg8MTYgeCBpMTY+ LCA8MTYgeCBpMTY+KSAjMTcgewotK2RlZmluZSBpbnRlcm5hbCA8MTYgeCBpMTY+IEBfWjI0X19j bV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMTZfdFNfKDwxNiB4IGkxNj4sIDwxNiB4IGkxNj4p ICMxNyB7Ci0gICAlMyA9IGFsbG9jYSA8MTYgeCBpMTY+LCBhbGlnbiAzMgotICAgJTQgPSBhbGxv Y2EgPDE2IHggaTE2PiwgYWxpZ24gMzIKLSAgICU1ID0gYWxsb2NhIDwxNiB4IGkxNj4sIGFsaWdu IDMyCi1AQCAtMzcyMCw3ICszNzIwLDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MTYgeCBpMTY+IEBf WjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMTZfdFNfKDwxNiB4IGkxNj4KLSB9Ci0g Ci0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2Fs IDwzMiB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIzMl90U18oPDMy IHggaTE2PiwgPDMyIHggaTE2PikgIzE4IHsKLStkZWZpbmUgaW50ZXJuYWwgPDMyIHggaTE2PiBA X1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjMyX3RTXyg8MzIgeCBpMTY+LCA8MzIg eCBpMTY+KSAjMTggewotICAgJTMgPSBhbGxvY2EgPDMyIHggaTE2PiwgYWxpZ24gNjQKLSAgICU0 ID0gYWxsb2NhIDwzMiB4IGkxNj4sIGFsaWduIDY0Ci0gICAlNSA9IGFsbG9jYSA8MzIgeCBpMTY+ LCBhbGlnbiA2NAotQEAgLTM3MzQsNyArMzczNCw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDMyIHgg aTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjMyX3RTXyg8MzIgeCBpMTY+ Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRz b19sb2NhbCBpMzIgQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZqaihpMzIsIGkzMikgIzE0 IHsKLStkZWZpbmUgaW50ZXJuYWwgaTMyIEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2amoo aTMyLCBpMzIpICMxNCB7Ci0gICAlMyA9IGFsbG9jYSBpMzIsIGFsaWduIDQKLSAgICU0ID0gYWxs b2NhIGkzMiwgYWxpZ24gNAotICAgJTUgPSBhbGxvY2EgPDEgeCBpMzI+LCBhbGlnbiA0Ci1AQCAt Mzg5Miw3ICszODkyLDcgQEAgZGVmaW5lIGludGVybmFsIDwxIHggaTMyPiBAX1pON2RldGFpbHMx NF9faW1wbF91ZGl2cmVtSUxpMUVFRXUyQ012YlRfX2pTMV9TMV91MkMKLSB9Ci0gCi0gOyBGdW5j dGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwxIHggaTMy PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRpdnUyQ012YjFfalNfKDwxIHggaTMyPiwgPDEg eCBpMzI+KSAjMTQgewotK2RlZmluZSBpbnRlcm5hbCA8MSB4IGkzMj4gQF9aMjRfX2NtX2ludHJp bnNpY19pbXBsX3VkaXZ1MkNNdmIxX2pTXyg8MSB4IGkzMj4sIDwxIHggaTMyPikgIzE0IHsKLSAg ICUzID0gYWxsb2NhIDwxIHggaTMyPiwgYWxpZ24gNAotICAgJTQgPSBhbGxvY2EgPDEgeCBpMzI+ LCBhbGlnbiA0Ci0gICAlNSA9IGFsbG9jYSA8MSB4IGkzMj4sIGFsaWduIDQKLUBAIC0zOTA4LDcg KzM5MDgsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwxIHggaTMyPiBAX1oyNF9fY21faW50cmluc2lj X2ltcGxfdWRpdnUyQ012YjFfalNfKDwxIHggaTMyPiwgPAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0 dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDIgeCBpMzI+IEBfWjI0 X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZiMl9qU18oPDIgeCBpMzI+LCA8MiB4IGkzMj4p ICMxNSB7Ci0rZGVmaW5lIGludGVybmFsIDwyIHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2lt cGxfdWRpdnUyQ012YjJfalNfKDwyIHggaTMyPiwgPDIgeCBpMzI+KSAjMTUgewotICAgJTMgPSBh bGxvY2EgPDIgeCBpMzI+LCBhbGlnbiA4Ci0gICAlNCA9IGFsbG9jYSA8MiB4IGkzMj4sIGFsaWdu IDgKLSAgICU1ID0gYWxsb2NhIDwyIHggaTMyPiwgYWxpZ24gOAotQEAgLTQwNTQsNyArNDA1NCw3 IEBAIGRlZmluZSBpbnRlcm5hbCA8MiB4IGkzMj4gQF9aTjdkZXRhaWxzMTRfX2ltcGxfdWRpdnJl bUlMaTJFRUV1MkNNdmJUX19qUzFfUzFfdTJDCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5v aW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8NCB4IGkzMj4gQF9aMjRfX2NtX2lu dHJpbnNpY19pbXBsX3VkaXZ1MkNNdmI0X2pTXyg8NCB4IGkzMj4sIDw0IHggaTMyPikgIzE2IHsK LStkZWZpbmUgaW50ZXJuYWwgPDQgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2 dTJDTXZiNF9qU18oPDQgeCBpMzI+LCA8NCB4IGkzMj4pICMxNiB7Ci0gICAlMyA9IGFsbG9jYSA8 NCB4IGkzMj4sIGFsaWduIDE2Ci0gICAlNCA9IGFsbG9jYSA8NCB4IGkzMj4sIGFsaWduIDE2Ci0g ICAlNSA9IGFsbG9jYSA8NCB4IGkzMj4sIGFsaWduIDE2Ci1AQCAtNDQ5Miw3ICs0NDkyLDcgQEAg ZGVmaW5lIGludGVybmFsIDwxNiB4IGkzMj4gQF9aTjdkZXRhaWxzMTRfX2ltcGxfdWRpdnJlbUlM aTE2RUVFdTJDTXZiVF9falMxX1MxX3UKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxp bmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwzMiB4IGkzMj4gQF9aMjRfX2NtX2ludHJp bnNpY19pbXBsX3VkaXZ1MkNNdmIzMl9qU18oPDMyIHggaTMyPiwgPDMyIHggaTMyPikgIzE5IHsK LStkZWZpbmUgaW50ZXJuYWwgPDMyIHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRp dnUyQ012YjMyX2pTXyg8MzIgeCBpMzI+LCA8MzIgeCBpMzI+KSAjMTkgewotICAgJTMgPSBhbGxv Y2EgPDMyIHggaTMyPiwgYWxpZ24gMTI4Ci0gICAlNCA9IGFsbG9jYSA8MzIgeCBpMzI+LCBhbGln biAxMjgKLSAgICU1ID0gYWxsb2NhIDwzMiB4IGkzMj4sIGFsaWduIDEyOAotQEAgLTQ2MzgsNyAr NDYzOCw3IEBAIGRlZmluZSBpbnRlcm5hbCA8MzIgeCBpMzI+IEBfWk43ZGV0YWlsczE0X19pbXBs X3VkaXZyZW1JTGkzMkVFRXUyQ012YlRfX2pTMV9TMV91Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0 cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCBpMzIgQF9aMjRfX2NtX2lu dHJpbnNpY19pbXBsX3VyZW1qaihpMzIsIGkzMikgIzE0IHsKLStkZWZpbmUgaW50ZXJuYWwgaTMy IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtamooaTMyLCBpMzIpICMxNCB7Ci0gICAlMyA9 IGFsbG9jYSBpMzIsIGFsaWduIDQKLSAgICU0ID0gYWxsb2NhIGkzMiwgYWxpZ24gNAotICAgJTUg PSBhbGxvY2EgPDEgeCBpMzI+LCBhbGlnbiA0Ci1AQCAtNDY2NCw3ICs0NjY0LDcgQEAgZGVmaW5l IGRzb19sb2NhbCBpMzIgQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW1qaihpMzIsIGkzMikg IzE0IHsKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZp bmUgZHNvX2xvY2FsIDwxIHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012 YjFfalNfKDwxIHggaTMyPiwgPDEgeCBpMzI+KSAjMTQgewotK2RlZmluZSBpbnRlcm5hbCA8MSB4 IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIxX2pTXyg8MSB4IGkzMj4s IDwxIHggaTMyPikgIzE0IHsKLSAgICUzID0gYWxsb2NhIDwxIHggaTMyPiwgYWxpZ24gNAotICAg JTQgPSBhbGxvY2EgPDEgeCBpMzI+LCBhbGlnbiA0Ci0gICAlNSA9IGFsbG9jYSA8MSB4IGkzMj4s IGFsaWduIDQKLUBAIC00Njc4LDcgKzQ2NzgsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwxIHggaTMy PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjFfalNfKDwxIHggaTMyPiwgPAot IH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29f bG9jYWwgPDIgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMl9qU18o PDIgeCBpMzI+LCA8MiB4IGkzMj4pICMxNSB7Ci0rZGVmaW5lIGludGVybmFsIDwyIHggaTMyPiBA X1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjJfalNfKDwyIHggaTMyPiwgPDIgeCBp MzI+KSAjMTUgewotICAgJTMgPSBhbGxvY2EgPDIgeCBpMzI+LCBhbGlnbiA4Ci0gICAlNCA9IGFs bG9jYSA8MiB4IGkzMj4sIGFsaWduIDgKLSAgICU1ID0gYWxsb2NhIDwyIHggaTMyPiwgYWxpZ24g OAotQEAgLTQ2OTIsNyArNDY5Miw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDIgeCBpMzI+IEBfWjI0 X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMl9qU18oPDIgeCBpMzI+LCA8Ci0gfQotIAot IDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8 NCB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmI0X2pTXyg8NCB4IGkz Mj4sIDw0IHggaTMyPikgIzE2IHsKLStkZWZpbmUgaW50ZXJuYWwgPDQgeCBpMzI+IEBfWjI0X19j bV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiNF9qU18oPDQgeCBpMzI+LCA8NCB4IGkzMj4pICMx NiB7Ci0gICAlMyA9IGFsbG9jYSA8NCB4IGkzMj4sIGFsaWduIDE2Ci0gICAlNCA9IGFsbG9jYSA8 NCB4IGkzMj4sIGFsaWduIDE2Ci0gICAlNSA9IGFsbG9jYSA8NCB4IGkzMj4sIGFsaWduIDE2Ci1A QCAtNDcwNiw3ICs0NzA2LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8NCB4IGkzMj4gQF9aMjRfX2Nt X2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmI0X2pTXyg8NCB4IGkzMj4sIDwKLSB9Ci0gCi0gOyBG dW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDw4IHgg aTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjhfalNfKDw4IHggaTMyPiwg PDggeCBpMzI+KSAjMTcgewotK2RlZmluZSBpbnRlcm5hbCA8OCB4IGkzMj4gQF9aMjRfX2NtX2lu dHJpbnNpY19pbXBsX3VyZW11MkNNdmI4X2pTXyg8OCB4IGkzMj4sIDw4IHggaTMyPikgIzE3IHsK LSAgICUzID0gYWxsb2NhIDw4IHggaTMyPiwgYWxpZ24gMzIKLSAgICU0ID0gYWxsb2NhIDw4IHgg aTMyPiwgYWxpZ24gMzIKLSAgICU1ID0gYWxsb2NhIDw4IHggaTMyPiwgYWxpZ24gMzIKLUBAIC00 NzIwLDcgKzQ3MjAsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDw4IHggaTMyPiBAX1oyNF9fY21faW50 cmluc2ljX2ltcGxfdXJlbXUyQ012YjhfalNfKDw4IHggaTMyPiwgPAotIH0KLSAKLSA7IEZ1bmN0 aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDE2IHggaTMy PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjE2X2pTXyg8MTYgeCBpMzI+LCA8 MTYgeCBpMzI+KSAjMTggewotK2RlZmluZSBpbnRlcm5hbCA8MTYgeCBpMzI+IEBfWjI0X19jbV9p bnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMTZfalNfKDwxNiB4IGkzMj4sIDwxNiB4IGkzMj4pICMx OCB7Ci0gICAlMyA9IGFsbG9jYSA8MTYgeCBpMzI+LCBhbGlnbiA2NAotICAgJTQgPSBhbGxvY2Eg PDE2IHggaTMyPiwgYWxpZ24gNjQKLSAgICU1ID0gYWxsb2NhIDwxNiB4IGkzMj4sIGFsaWduIDY0 Ci1AQCAtNDczNCw3ICs0NzM0LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MTYgeCBpMzI+IEBfWjI0 X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMTZfalNfKDwxNiB4IGkzMj4KLSB9Ci0gCi0g OyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwz MiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIzMl9qU18oPDMyIHgg aTMyPiwgPDMyIHggaTMyPikgIzE5IHsKLStkZWZpbmUgaW50ZXJuYWwgPDMyIHggaTMyPiBAX1oy NF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjMyX2pTXyg8MzIgeCBpMzI+LCA8MzIgeCBp MzI+KSAjMTkgewotICAgJTMgPSBhbGxvY2EgPDMyIHggaTMyPiwgYWxpZ24gMTI4Ci0gICAlNCA9 IGFsbG9jYSA8MzIgeCBpMzI+LCBhbGlnbiAxMjgKLSAgICU1ID0gYWxsb2NhIDwzMiB4IGkzMj4s IGFsaWduIDEyOAotQEAgLTQ3NDgsNyArNDc0OCw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDMyIHgg aTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjMyX2pTXyg8MzIgeCBpMzI+ Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRz b19sb2NhbCB2b2lkIEBfX2RvX3ByaW50X2NtKGk4KiwgaTgqLCBpMzIsIGk2NCwgaTMyKiwgaTMy LCBpMzIpICMyMyAhZGJnICExNSB7Ci0rZGVmaW5lIGludGVybmFsIHZvaWQgQF9fZG9fcHJpbnRf Y20oaTgqLCBpOCosIGkzMiwgaTY0LCBpMzIqLCBpMzIsIGkzMikgIzIzICFkYmcgITE1IHsKLSAg ICU4ID0gYWxsb2NhIGk4KiwgYWxpZ24gNAotICAgJTkgPSBhbGxvY2EgaTgqLCBhbGlnbiA0Ci0g ICAlMTAgPSBhbGxvY2EgaTMyLCBhbGlnbiA0Ci1AQCAtNDk4OCw3ICs0OTg4LDcgQEAgZGVmaW5l IGludGVybmFsIHZvaWQgQF9aTjdkZXRhaWxzMTZfY21fcHJpbnRfZm9ybWF0SUxpMTI4RUVFdjE1 Y21fc3VyZmFjZWluZGV4anUKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91 bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIHZvaWQgQF9fZG9fcHJpbnRfbHooaTMyLCBpOCosIGkz MiwgaTY0LCBpMzIqLCBpMzIsIGkzMiwgaTMyLCBpMzIpICMyNiAhZGJnICExMTcgewotK2RlZmlu ZSBpbnRlcm5hbCB2b2lkIEBfX2RvX3ByaW50X2x6KGkzMiwgaTgqLCBpMzIsIGk2NCwgaTMyKiwg aTMyLCBpMzIsIGkzMiwgaTMyKSAjMjYgIWRiZyAhMTE3IHsKLSAgICUxMCA9IGFsbG9jYSBpMzIs IGFsaWduIDQKLSAgICUxMSA9IGFsbG9jYSBpOCosIGFsaWduIDQKLSAgICUxMiA9IGFsbG9jYSBp MzIsIGFsaWduIDQKLUBAIC01MDY5LDcgKzUwNjksNyBAQCBkZWZpbmUgZHNvX2xvY2FsIHZvaWQg QF9fZG9fcHJpbnRfbHooaTMyLCBpOCosIGkzMiwgaTY0LCBpMzIqLCBpMzIsIGkzMiwgaTMyLCBp MwotICAgJTY3ID0gbG9hZCBpNjQsIGk2NCogJTEzLCBhbGlnbiA4LCAhZGJnICExNTksICF0YmFh ICExOQotICAgJTY4ID0gbG9hZCA8NSB4IGkzMj4sIDw1IHggaTMyPiogJTIxLCBhbGlnbiAzMiwg IWRiZyAhMTYwLCAhdGJhYSAhNwotICAgY2FsbCB2b2lkIEBfWk4xM1ZhcnlpbmdXcml0ZXJDMkVS alJQS2ppeXUyQ012YjVfaSglY2xhc3MuVmFyeWluZ1dyaXRlciogJTIzLCBpMzIqIGRlcmVmZXJl bmNlYWJsZSg0KSAlMTksIGkzMioqIGRlcmVmZXJlbmNlYWJsZSg0KSAlMTQsIGkzMiAlNjYsIGk2 NCAlNjcsIDw1IHggaTMyPiAlNjgpLCAhZGJnICExNjEKLS0gICU2OSA9IGNhbGwgemVyb2V4dCBp MSBAX1pOOVByaW50SW5mbzE0c3dpdGNoRW5jb2RpbmdJMTNVbmlmb3JtV3JpdGVyMTNWYXJ5aW5n V3JpdGVyRUViTlNfOEVuY29kaW5nRVRfVDBfKGk4IHNpZ25leHQgJTYyLCAlY2xhc3MuVW5pZm9y bVdyaXRlciogYnl2YWwgYWxpZ24gMzIgJTIyLCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwg YWxpZ24gMzIgJTIzKSwgIWRiZyAhMTYyCi0rICAlNjkgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQ cmludEluZm8xNHN3aXRjaEVuY29kaW5nSTEzVW5pZm9ybVdyaXRlcjEzVmFyeWluZ1dyaXRlckVF Yk5TXzhFbmNvZGluZ0VUX1QwXyhpOCBzaWduZXh0ICU2MiwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIq IGJ5dmFsKCVjbGFzcy5Vbmlmb3JtV3JpdGVyKSBhbGlnbiAzMiAlMjIsICVjbGFzcy5WYXJ5aW5n V3JpdGVyKiBieXZhbCglY2xhc3MuVmFyeWluZ1dyaXRlcikgYWxpZ24gMzIgJTIzKSwgIWRiZyAh MTYyCi0gICBiciBsYWJlbCAlNzAsICFkYmcgITE2MwotIAotIDsgPGxhYmVsPjo3MDogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOyBwcmVkcyA9ICU2MAotQEAgLTUxODcsNyAr NTE4Nyw3IEBAIGRlZmluZSBpbnRlcm5hbCA8NSB4IGkzMj4gQF9aMTdnZXRfYXV4aWxpYXJ5X3N0 cnYoKSAjMjggY29tZGF0ICFkYmcgITE3OCB7Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IGFs d2F5c2lubGluZSBpbmxpbmVoaW50IG5vdW53aW5kCi0tZGVmaW5lIGludGVybmFsIHplcm9leHQg aTEgQF9aTjlQcmludEluZm8xNHN3aXRjaEVuY29kaW5nSTEzVW5pZm9ybVdyaXRlcjEzVmFyeWlu Z1dyaXRlckVFYk5TXzhFbmNvZGluZ0VUX1QwXyhpOCBzaWduZXh0LCAlY2xhc3MuVW5pZm9ybVdy aXRlciogYnl2YWwgYWxpZ24gMzIsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCBhbGlnbiAz MikgIzI1IGNvbWRhdCAhZGJnICExOTEgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBf Wk45UHJpbnRJbmZvMTRzd2l0Y2hFbmNvZGluZ0kxM1VuaWZvcm1Xcml0ZXIxM1ZhcnlpbmdXcml0 ZXJFRWJOU184RW5jb2RpbmdFVF9UMF8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIq IGJ5dmFsKCVjbGFzcy5Vbmlmb3JtV3JpdGVyKSBhbGlnbiAzMiwgJWNsYXNzLlZhcnlpbmdXcml0 ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5aW5nV3JpdGVyKSBhbGlnbiAzMikgIzI1IGNvbWRhdCAhZGJn ICExOTEgewotICAgJTQgPSBhbGxvY2EgaTgsIGFsaWduIDEKLSAgICU1ID0gYWxsb2NhICVjbGFz cy5Vbmlmb3JtV3JpdGVyLCBhbGlnbiAzMgotICAgJTYgPSBhbGxvY2EgJWNsYXNzLlZhcnlpbmdX cml0ZXIsIGFsaWduIDMyCi1AQCAtNTE5Niw3ICs1MTk2LDcgQEAgZGVmaW5lIGludGVybmFsIHpl cm9leHQgaTEgQF9aTjlQcmludEluZm8xNHN3aXRjaEVuY29kaW5nSTEzVW5pZm9ybVdyaXRlcjEz VmFyeWkKLSAgICU4ID0gYml0Y2FzdCAlY2xhc3MuVW5pZm9ybVdyaXRlciogJTUgdG8gaTgqLCAh ZGJnICExOTYKLSAgICU5ID0gYml0Y2FzdCAlY2xhc3MuVW5pZm9ybVdyaXRlciogJTEgdG8gaTgq LCAhZGJnICExOTYKLSAgIGNhbGwgdm9pZCBAbGx2bS5tZW1jcHkucDBpOC5wMGk4LmkzMihpOCog YWxpZ24gMzIgJTgsIGk4KiBhbGlnbiAzMiAlOSwgaTMyIDY0LCBpMSBmYWxzZSksICFkYmcgITE5 NiwgIXRiYWEuc3RydWN0ICExOTcKLS0gICUxMCA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50 SW5mbzIyc3dpdGNoRW5jb2Rpbmc0VW5pZm9ybUkxM1VuaWZvcm1Xcml0ZXJFRWJOU184RW5jb2Rp bmdFVF8oaTggc2lnbmV4dCAlNywgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsIGFsaWduIDMy ICU1KSwgIWRiZyAhMTk4Ci0rICAlMTAgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm8y MnN3aXRjaEVuY29kaW5nNFVuaWZvcm1JMTNVbmlmb3JtV3JpdGVyRUViTlNfOEVuY29kaW5nRVRf KGk4IHNpZ25leHQgJTcsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCglY2xhc3MuVW5pZm9y bVdyaXRlcikgYWxpZ24gMzIgJTUpLCAhZGJnICExOTgKLSAgIGJyIGkxICUxMCwgbGFiZWwgJTE2 LCBsYWJlbCAlMTEsICFkYmcgITE5OQotIAotIDsgPGxhYmVsPjoxMTogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgOyBwcmVkcyA9ICUzCi1AQCAtNTIwNCw3ICs1MjA0LDcgQEAg ZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm8xNHN3aXRjaEVuY29kaW5n STEzVW5pZm9ybVdyaXRlcjEzVmFyeWkKLSAgICUxMyA9IGJpdGNhc3QgJWNsYXNzLlZhcnlpbmdX cml0ZXIqICU2IHRvIGk4KiwgIWRiZyAhMjAxCi0gICAlMTQgPSBiaXRjYXN0ICVjbGFzcy5WYXJ5 aW5nV3JpdGVyKiAlMiB0byBpOCosICFkYmcgITIwMQotICAgY2FsbCB2b2lkIEBsbHZtLm1lbWNw eS5wMGk4LnAwaTguaTMyKGk4KiBhbGlnbiAzMiAlMTMsIGk4KiBhbGlnbiAzMiAlMTQsIGkzMiA2 NCwgaTEgZmFsc2UpLCAhZGJnICEyMDEsICF0YmFhLnN0cnVjdCAhMTk3Ci0tICAlMTUgPSBjYWxs IHplcm9leHQgaTEgQF9aTjlQcmludEluZm8yMnN3aXRjaEVuY29kaW5nNFZhcnlpbmdJMTNWYXJ5 aW5nV3JpdGVyRUViTlNfOEVuY29kaW5nRVRfKGk4IHNpZ25leHQgJTEyLCAlY2xhc3MuVmFyeWlu Z1dyaXRlciogYnl2YWwgYWxpZ24gMzIgJTYpLCAhZGJnICEyMDIKLSsgICUxNSA9IGNhbGwgemVy b2V4dCBpMSBAX1pOOVByaW50SW5mbzIyc3dpdGNoRW5jb2Rpbmc0VmFyeWluZ0kxM1ZhcnlpbmdX cml0ZXJFRWJOU184RW5jb2RpbmdFVF8oaTggc2lnbmV4dCAlMTIsICVjbGFzcy5WYXJ5aW5nV3Jp dGVyKiBieXZhbCglY2xhc3MuVmFyeWluZ1dyaXRlcikgYWxpZ24gMzIgJTYpLCAhZGJnICEyMDIK LSAgIGJyIGxhYmVsICUxNiwgIWRiZyAhMTk5Ci0gCi0gOyA8bGFiZWw+OjE2OiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICA7IHByZWRzID0gJTExLCAlMwotQEAgLTUyNzksNyAr NTI3OSw3IEBAIGRlZmluZSBpbnRlcm5hbCB2b2lkIEBfWk4xM1ZhcnlpbmdXcml0ZXJDMkVSalJQ S2ppeXUyQ012YjVfaSglY2xhc3MuVmFyeWluZ1dyaXRlCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0 cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCBpMzIgQF9fbnVtX2NvcmVz KCkgIzI5ICFkYmcgITIzNiB7Ci0rZGVmaW5lIGludGVybmFsIGkzMiBAX19udW1fY29yZXMoKSAj MjkgIWRiZyAhMjM2IHsKLSAgIHJldCBpMzIgLTEsICFkYmcgITIzNwotIH0KLSAKLUBAIC04ODYw LDcgKzg4NjAsNyBAQCBkZWNsYXJlIGRzb19sb2NhbCB2b2lkIEBfWk43ZGV0YWlsczM3X19jbV9p bnRyaW5zaWNfaW1wbF9zdm1fc2NhdHRlcl93cml0ZUlpTGkxRQotIGRlY2xhcmUgdm9pZCBAbGx2 bS5nZW54LnN2bS5zY2F0dGVyLnYxaTEudjFpNjQudjFpMzIoPDEgeCBpMT4sIGkzMiwgPDEgeCBp NjQ+LCA8MSB4IGkzMj4pICMyNwotIAotIDsgRnVuY3Rpb24gQXR0cnM6IGFsd2F5c2lubGluZSBp bmxpbmVoaW50IG5vdW53aW5kCi0tZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmlu dEluZm8yMnN3aXRjaEVuY29kaW5nNFVuaWZvcm1JMTNVbmlmb3JtV3JpdGVyRUViTlNfOEVuY29k aW5nRVRfKGk4IHNpZ25leHQsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBhbGlnbiAzMikg IzI1IGNvbWRhdCAhZGJnICExNjQ1IHsKLStkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pO OVByaW50SW5mbzIyc3dpdGNoRW5jb2Rpbmc0VW5pZm9ybUkxM1VuaWZvcm1Xcml0ZXJFRWJOU184 RW5jb2RpbmdFVF8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsKCVjbGFz cy5Vbmlmb3JtV3JpdGVyKSBhbGlnbiAzMikgIzI1IGNvbWRhdCAhZGJnICExNjQ1IHsKLSAgICUz ID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0gICAlNCA9IGFsbG9jYSAlY2xhc3MuVW5pZm9ybVdyaXRl ciwgYWxpZ24gMzIKLSAgICU1ID0gYWxsb2NhICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0 VW5pZm9ybSIsIGFsaWduIDEKLUBAIC04ODY5LDcgKzg4NjksNyBAQCBkZWZpbmUgaW50ZXJuYWwg emVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzIyc3dpdGNoRW5jb2Rpbmc0VW5pZm9ybUkxM1VuaWZv cm1Xcml0ZQotICAgJTcgPSBiaXRjYXN0ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiAlNCB0byBpOCos ICFkYmcgITE2NDcKLSAgICU4ID0gYml0Y2FzdCAlY2xhc3MuVW5pZm9ybVdyaXRlciogJTEgdG8g aTgqLCAhZGJnICExNjQ3Ci0gICBjYWxsIHZvaWQgQGxsdm0ubWVtY3B5LnAwaTgucDBpOC5pMzIo aTgqIGFsaWduIDMyICU3LCBpOCogYWxpZ24gMzIgJTgsIGkzMiA2NCwgaTEgZmFsc2UpLCAhZGJn ICExNjQ3LCAhdGJhYS5zdHJ1Y3QgITE5NwotLSAgJTkgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQ cmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29k aW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVRfVDBfKGk4IHNpZ25leHQgJTYsICVjbGFzcy5V bmlmb3JtV3JpdGVyKiBieXZhbCBhbGlnbiAzMiAlNCwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNv ZGluZzRVbmlmb3JtIiogYnl2YWwgYWxpZ24gMSAlNSksICFkYmcgITE2NDgKLSsgICU5ID0gY2Fs bCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNVbmlm b3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUX1QwXyhpOCBz aWduZXh0ICU2LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1Xcml0 ZXIpIGFsaWduIDMyICU0LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBi eXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKSBhbGlnbiAxICU1KSwg IWRiZyAhMTY0OAotICAgcmV0IGkxICU5LCAhZGJnICExNjQ5Ci0gfQotIAotQEAgLTg4NzcsNyAr ODg3Nyw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvMjJzd2l0 Y2hFbmNvZGluZzRVbmlmb3JtSTEzVW5pZm9ybVdyaXRlCi0gZGVjbGFyZSB2b2lkIEBsbHZtLm1l bWNweS5wMGk4LnAwaTguaTMyKGk4KiBub2NhcHR1cmUgd3JpdGVvbmx5LCBpOCogbm9jYXB0dXJl IHJlYWRvbmx5LCBpMzIsIGkxKSAjMzIKLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBhbHdheXNpbmxp bmUgaW5saW5laGludCBub3Vud2luZAotLWRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45 UHJpbnRJbmZvMjJzd2l0Y2hFbmNvZGluZzRWYXJ5aW5nSTEzVmFyeWluZ1dyaXRlckVFYk5TXzhF bmNvZGluZ0VUXyhpOCBzaWduZXh0LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwgYWxpZ24g MzIpICMyNSBjb21kYXQgIWRiZyAhMTY1MCB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEg QF9aTjlQcmludEluZm8yMnN3aXRjaEVuY29kaW5nNFZhcnlpbmdJMTNWYXJ5aW5nV3JpdGVyRUVi TlNfOEVuY29kaW5nRVRfKGk4IHNpZ25leHQsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCgl Y2xhc3MuVmFyeWluZ1dyaXRlcikgYWxpZ24gMzIpICMyNSBjb21kYXQgIWRiZyAhMTY1MCB7Ci0g ICAlMyA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgJTQgPSBhbGxvY2EgJWNsYXNzLlZhcnlpbmdX cml0ZXIsIGFsaWduIDMyCi0gICAlNSA9IGFsbG9jYSAlInN0cnVjdC5QcmludEluZm86OkVuY29k aW5nNFZhcnlpbmciLCBhbGlnbiAxCi1AQCAtODg4NiwxMiArODg4NiwxMiBAQCBkZWZpbmUgaW50 ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzIyc3dpdGNoRW5jb2Rpbmc0VmFyeWluZ0kx M1ZhcnlpbmdXcml0ZQotICAgJTcgPSBiaXRjYXN0ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiAlNCB0 byBpOCosICFkYmcgITE2NTIKLSAgICU4ID0gYml0Y2FzdCAlY2xhc3MuVmFyeWluZ1dyaXRlciog JTEgdG8gaTgqLCAhZGJnICExNjUyCi0gICBjYWxsIHZvaWQgQGxsdm0ubWVtY3B5LnAwaTgucDBp OC5pMzIoaTgqIGFsaWduIDMyICU3LCBpOCogYWxpZ24gMzIgJTgsIGkzMiA2NCwgaTEgZmFsc2Up LCAhZGJnICExNjUyLCAhdGJhYS5zdHJ1Y3QgITE5NwotLSAgJTkgPSBjYWxsIHplcm9leHQgaTEg QF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1ZhcnlpbmdXcml0ZXJOU18x NkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVRfVDBfKGk4IHNpZ25leHQgJTYsICVj bGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCBhbGlnbiAzMiAlNCwgJSJzdHJ1Y3QuUHJpbnRJbmZv OjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwgYWxpZ24gMSAlNSksICFkYmcgITE2NTMKLSsgICU5 ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJ MTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUX1Qw XyhpOCBzaWduZXh0ICU2LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwoJWNsYXNzLlZhcnlp bmdXcml0ZXIpIGFsaWduIDMyICU0LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlp bmciKiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKSBhbGlnbiAx ICU1KSwgIWRiZyAhMTY1MwotICAgcmV0IGkxICU5LCAhZGJnICExNjU0Ci0gfQotIAotIDsgRnVu Y3Rpb24gQXR0cnM6IGFsd2F5c2lubGluZSBpbmxpbmVoaW50IG5vdW53aW5kCi0tZGVmaW5lIGlu dGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kx M1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVRfVDBf KGk4IHNpZ25leHQsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBhbGlnbiAzMiwgJSJzdHJ1 Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwgYWxpZ24gMSkgIzI1IGNvbWRh dCAhZGJnICExNjU1IHsKLStkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5m bzZkZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5p Zm9ybUVFRWJOU184RW5jb2RpbmdFVF9UMF8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1Xcml0 ZXIqIGJ5dmFsKCVjbGFzcy5Vbmlmb3JtV3JpdGVyKSBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJ bmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGlu ZzRVbmlmb3JtIikgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICExNjU1IHsKLSAgICU0ID0gYWxs b2NhIGk4LCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSAlY2xhc3MuVW5pZm9ybVdyaXRlciwgYWxp Z24gMzIKLSAgICU2ID0gYWxsb2NhICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9y bSIsIGFsaWduIDEKLUBAIC04OTE0LDcgKzg5MTQsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4 dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEzVW5pZm9ybVdyaXRl cgotICAgJTIyID0gYml0Y2FzdCAlY2xhc3MuVW5pZm9ybVdyaXRlciogJTUgdG8gaTgqLCAhZGJn ICExNjU3Ci0gICAlMjMgPSBiaXRjYXN0ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiAlMSB0byBpOCos ICFkYmcgITE2NTcKLSAgIGNhbGwgdm9pZCBAbGx2bS5tZW1jcHkucDBpOC5wMGk4LmkzMihpOCog YWxpZ24gMzIgJTIyLCBpOCogYWxpZ24gMzIgJTIzLCBpMzIgNjQsIGkxIGZhbHNlKSwgIWRiZyAh MTY1NywgIXRiYWEuc3RydWN0ICExOTcKLS0gICUyNCA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVBy aW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0liMTNVbmlmb3JtV3JpdGVyTlNf MTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlMjEs ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBhbGlnbiAzMiAlNSwgJSJzdHJ1Y3QuUHJpbnRJ bmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwgYWxpZ24gMSAlNiksICFkYmcgITE2NTgKLSsg ICUyNCA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9w ZXJFbmNvZGluZ0liMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhF bmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlMjEsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZh bCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24gMzIgJTUsICUic3RydWN0LlByaW50SW5mbzo6 RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5p Zm9ybSIpIGFsaWduIDEgJTYpLCAhZGJnICExNjU4Ci0gICBiciBpMSAlMjQsIGxhYmVsICU2MCwg bGFiZWwgJTI1LCAhZGJnICExNjU5Ci0gCi0gOyA8bGFiZWw+OjI1OiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICA7IHByZWRzID0gJTMKLUBAIC04OTIyLDcgKzg5MjIsNyBAQCBk ZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwxNHN3aXRjaEVu Y29kaW5nSTEzVW5pZm9ybVdyaXRlcgotICAgJTI3ID0gYml0Y2FzdCAlY2xhc3MuVW5pZm9ybVdy aXRlciogJTcgdG8gaTgqLCAhZGJnICExNjYxCi0gICAlMjggPSBiaXRjYXN0ICVjbGFzcy5Vbmlm b3JtV3JpdGVyKiAlMSB0byBpOCosICFkYmcgITE2NjEKLSAgIGNhbGwgdm9pZCBAbGx2bS5tZW1j cHkucDBpOC5wMGk4LmkzMihpOCogYWxpZ24gMzIgJTI3LCBpOCogYWxpZ24gMzIgJTI4LCBpMzIg NjQsIGkxIGZhbHNlKSwgIWRiZyAhMTY2MSwgIXRiYWEuc3RydWN0ICExOTcKLS0gICUyOSA9IGNh bGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGlu Z0lpMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VU MF9UMV8oaTggc2lnbmV4dCAlMjYsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBhbGlnbiAz MiAlNywgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwgYWxpZ24g MSAlOCksICFkYmcgITE2NjIKLSsgICUyOSA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5m bzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lpMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNv ZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlMjYsICVjbGFz cy5Vbmlmb3JtV3JpdGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24gMzIgJTcs ICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsKCUic3RydWN0LlBy aW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIpIGFsaWduIDEgJTgpLCAhZGJnICExNjYyCi0gICBi ciBpMSAlMjksIGxhYmVsICU2MCwgbGFiZWwgJTMwLCAhZGJnICExNjYzCi0gCi0gOyA8bGFiZWw+ OjMwOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7IHByZWRzID0gJTI1Ci1A QCAtODkzMCw3ICs4OTMwLDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmlu dEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1VuaWZvcm1Xcml0ZXIKLSAgICUzMiA9IGJp dGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqICU5IHRvIGk4KiwgIWRiZyAhMTY2NQotICAgJTMz ID0gYml0Y2FzdCAlY2xhc3MuVW5pZm9ybVdyaXRlciogJTEgdG8gaTgqLCAhZGJnICExNjY1Ci0g ICBjYWxsIHZvaWQgQGxsdm0ubWVtY3B5LnAwaTgucDBpOC5pMzIoaTgqIGFsaWduIDMyICUzMiwg aTgqIGFsaWduIDMyICUzMywgaTMyIDY0LCBpMSBmYWxzZSksICFkYmcgITE2NjUsICF0YmFhLnN0 cnVjdCAhMTk3Ci0tICAlMzQgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWls MjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJajEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5p Zm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTMxLCAlY2xhc3MuVW5pZm9y bVdyaXRlciogYnl2YWwgYWxpZ24gMzIgJTksICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0 VW5pZm9ybSIqIGJ5dmFsIGFsaWduIDEgJTEwKSwgIWRiZyAhMTY2NgotKyAgJTM0ID0gY2FsbCB6 ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWox M1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1Qx XyhpOCBzaWduZXh0ICUzMSwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsKCVjbGFzcy5Vbmlm b3JtV3JpdGVyKSBhbGlnbiAzMiAlOSwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlm b3JtIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIikgYWxpZ24g MSAlMTApLCAhZGJnICExNjY2Ci0gICBiciBpMSAlMzQsIGxhYmVsICU2MCwgbGFiZWwgJTM1LCAh ZGJnICExNjY3Ci0gCi0gOyA8bGFiZWw+OjM1OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICA7IHByZWRzID0gJTMwCi1AQCAtODkzOCw3ICs4OTM4LDcgQEAgZGVmaW5lIGludGVy bmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1Vu aWZvcm1Xcml0ZXIKLSAgICUzNyA9IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqICUxMSB0 byBpOCosICFkYmcgITE2NjkKLSAgICUzOCA9IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIq ICUxIHRvIGk4KiwgIWRiZyAhMTY2OQotICAgY2FsbCB2b2lkIEBsbHZtLm1lbWNweS5wMGk4LnAw aTguaTMyKGk4KiBhbGlnbiAzMiAlMzcsIGk4KiBhbGlnbiAzMiAlMzgsIGkzMiA2NCwgaTEgZmFs c2UpLCAhZGJnICExNjY5LCAhdGJhYS5zdHJ1Y3QgITE5NwotLSAgJTM5ID0gY2FsbCB6ZXJvZXh0 IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWYxM1VuaWZv cm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBz aWduZXh0ICUzNiwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsIGFsaWduIDMyICUxMSwgJSJz dHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwgYWxpZ24gMSAlMTIpLCAh ZGJnICExNjcwCi0rICAlMzkgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWls MjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJZjEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5p Zm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTM2LCAlY2xhc3MuVW5pZm9y bVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1Xcml0ZXIpIGFsaWduIDMyICUxMSwgJSJzdHJ1 Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZv OjpFbmNvZGluZzRVbmlmb3JtIikgYWxpZ24gMSAlMTIpLCAhZGJnICExNjcwCi0gICBiciBpMSAl MzksIGxhYmVsICU2MCwgbGFiZWwgJTQwLCAhZGJnICExNjcxCi0gCi0gOyA8bGFiZWw+OjQwOiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7IHByZWRzID0gJTM1Ci1AQCAtODk0 Niw3ICs4OTQ2LDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82 ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1VuaWZvcm1Xcml0ZXIKLSAgICU0MiA9IGJpdGNhc3Qg JWNsYXNzLlVuaWZvcm1Xcml0ZXIqICUxMyB0byBpOCosICFkYmcgITE2NzMKLSAgICU0MyA9IGJp dGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqICUxIHRvIGk4KiwgIWRiZyAhMTY3MwotICAgY2Fs bCB2b2lkIEBsbHZtLm1lbWNweS5wMGk4LnAwaTguaTMyKGk4KiBhbGlnbiAzMiAlNDIsIGk4KiBh bGlnbiAzMiAlNDMsIGkzMiA2NCwgaTEgZmFsc2UpLCAhZGJnICExNjczLCAhdGJhYS5zdHJ1Y3Qg ITE5NwotLSAgJTQ0ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBw bHlJZlByb3BlckVuY29kaW5nSXgxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1F RUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICU0MSwgJWNsYXNzLlVuaWZvcm1Xcml0 ZXIqIGJ5dmFsIGFsaWduIDMyICUxMywgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlm b3JtIiogYnl2YWwgYWxpZ24gMSAlMTQpLCAhZGJnICExNjc0Ci0rICAlNDQgPSBjYWxsIHplcm9l eHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJeDEzVW5p Zm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4 IHNpZ25leHQgJTQxLCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1X cml0ZXIpIGFsaWduIDMyICUxMywgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3Jt IiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIikgYWxpZ24gMSAl MTQpLCAhZGJnICExNjc0Ci0gICBiciBpMSAlNDQsIGxhYmVsICU2MCwgbGFiZWwgJTQ1LCAhZGJn ICExNjc1Ci0gCi0gOyA8bGFiZWw+OjQ1OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICA7IHByZWRzID0gJTQwCi1AQCAtODk1NCw3ICs4OTU0LDcgQEAgZGVmaW5lIGludGVybmFs IHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1VuaWZv cm1Xcml0ZXIKLSAgICU0NyA9IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqICUxNSB0byBp OCosICFkYmcgITE2NzcKLSAgICU0OCA9IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqICUx IHRvIGk4KiwgIWRiZyAhMTY3NwotICAgY2FsbCB2b2lkIEBsbHZtLm1lbWNweS5wMGk4LnAwaTgu aTMyKGk4KiBhbGlnbiAzMiAlNDcsIGk4KiBhbGlnbiAzMiAlNDgsIGkzMiA2NCwgaTEgZmFsc2Up LCAhZGJnICExNjc3LCAhdGJhYS5zdHJ1Y3QgITE5NwotLSAgJTQ5ID0gY2FsbCB6ZXJvZXh0IGkx IEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSXkxM1VuaWZvcm1X cml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWdu ZXh0ICU0NiwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsIGFsaWduIDMyICUxNSwgJSJzdHJ1 Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwgYWxpZ24gMSAlMTYpLCAhZGJn ICExNjc4Ci0rICAlNDkgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFh cHBseUlmUHJvcGVyRW5jb2RpbmdJeTEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9y bUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTQ2LCAlY2xhc3MuVW5pZm9ybVdy aXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1Xcml0ZXIpIGFsaWduIDMyICUxNSwgJSJzdHJ1Y3Qu UHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpF bmNvZGluZzRVbmlmb3JtIikgYWxpZ24gMSAlMTYpLCAhZGJnICExNjc4Ci0gICBiciBpMSAlNDks IGxhYmVsICU2MCwgbGFiZWwgJTUwLCAhZGJnICExNjc5Ci0gCi0gOyA8bGFiZWw+OjUwOiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7IHByZWRzID0gJTQ1Ci1AQCAtODk2Miw3 ICs4OTYyLDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0 YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1VuaWZvcm1Xcml0ZXIKLSAgICU1MiA9IGJpdGNhc3QgJWNs YXNzLlVuaWZvcm1Xcml0ZXIqICUxNyB0byBpOCosICFkYmcgITE2ODEKLSAgICU1MyA9IGJpdGNh c3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqICUxIHRvIGk4KiwgIWRiZyAhMTY4MQotICAgY2FsbCB2 b2lkIEBsbHZtLm1lbWNweS5wMGk4LnAwaTguaTMyKGk4KiBhbGlnbiAzMiAlNTIsIGk4KiBhbGln biAzMiAlNTMsIGkzMiA2NCwgaTEgZmFsc2UpLCAhZGJnICExNjgxLCAhdGJhYS5zdHJ1Y3QgITE5 NwotLSAgJTU0ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJ ZlByb3BlckVuY29kaW5nSWQxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUVi TlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICU1MSwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIq IGJ5dmFsIGFsaWduIDMyICUxNywgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3Jt IiogYnl2YWwgYWxpZ24gMSAlMTgpLCAhZGJnICExNjgyCi0rICAlNTQgPSBjYWxsIHplcm9leHQg aTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJZDEzVW5pZm9y bVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNp Z25leHQgJTUxLCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1Xcml0 ZXIpIGFsaWduIDMyICUxNywgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiog Ynl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIikgYWxpZ24gMSAlMTgp LCAhZGJnICExNjgyCi0gICBiciBpMSAlNTQsIGxhYmVsICU2MCwgbGFiZWwgJTU1LCAhZGJnICEx NjgzCi0gCi0gOyA8bGFiZWw+OjU1OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICA7IHByZWRzID0gJTUwCi1AQCAtODk3MCw3ICs4OTcwLDcgQEAgZGVmaW5lIGludGVybmFsIHpl cm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1VuaWZvcm1X cml0ZXIKLSAgICU1NyA9IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqICUxOSB0byBpOCos ICFkYmcgITE2ODUKLSAgICU1OCA9IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqICUxIHRv IGk4KiwgIWRiZyAhMTY4NQotICAgY2FsbCB2b2lkIEBsbHZtLm1lbWNweS5wMGk4LnAwaTguaTMy KGk4KiBhbGlnbiAzMiAlNTcsIGk4KiBhbGlnbiAzMiAlNTgsIGkzMiA2NCwgaTEgZmFsc2UpLCAh ZGJnICExNjg1LCAhdGJhYS5zdHJ1Y3QgITE5NwotLSAgJTU5ID0gY2FsbCB6ZXJvZXh0IGkxIEBf Wk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSVB2MTNVbmlmb3JtV3Jp dGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4 dCAlNTYsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBhbGlnbiAzMiAlMTksICUic3RydWN0 LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsIGFsaWduIDEgJTIwKSwgIWRiZyAh MTY4NgotKyAgJTU5ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBw bHlJZlByb3BlckVuY29kaW5nSVB2MTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3Jt RUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlNTYsICVjbGFzcy5Vbmlmb3JtV3Jp dGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24gMzIgJTE5LCAlInN0cnVjdC5Q cmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVu Y29kaW5nNFVuaWZvcm0iKSBhbGlnbiAxICUyMCksICFkYmcgITE2ODYKLSAgIGJyIGxhYmVsICU2 MCwgIWRiZyAhMTY4MwotIAotIDsgPGxhYmVsPjo2MDogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgOyBwcmVkcyA9ICU1NSwgJTUwLCAlNDUsICU0MCwgJTM1LCAlMzAsICUyNSwg JTMKLUBAIC04OTc5LDcgKzg5NzksNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pO OVByaW50SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEzVW5pZm9ybVdyaXRlcgotIH0KLSAK LSA7IEZ1bmN0aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2luZAotLWRl ZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlBy b3BlckVuY29kaW5nSWIxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNf OEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwg YWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsIGFs aWduIDEpICMyNSBjb21kYXQgIWRiZyAhMTY4OCB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQg aTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJYjEzVW5pZm9y bVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNp Z25leHQsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikg YWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsKCUi c3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIpIGFsaWduIDEpICMyNSBjb21kYXQg IWRiZyAhMTY4OCB7Ci0gICAlNCA9IGFsbG9jYSBpMSwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2Eg aTgsIGFsaWduIDEKLSAgIHN0b3JlIGk4ICUwLCBpOCogJTUsIGFsaWduIDEsICF0YmFhICExOTMK LUBAIC05MDA1LDcgKzkwMDUsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVBy aW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0liMTNVbmlmbwotIH0KLSAKLSA7 IEZ1bmN0aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2luZAotLWRlZmlu ZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3Bl ckVuY29kaW5nSWkxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVu Y29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwgYWxp Z24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsIGFsaWdu IDEpICMyNSBjb21kYXQgIWRiZyAhMTY5NyB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEg QF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJaTEzVW5pZm9ybVdy aXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25l eHQsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxp Z24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsKCUic3Ry dWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIpIGFsaWduIDEpICMyNSBjb21kYXQgIWRi ZyAhMTY5NyB7Ci0gICAlNCA9IGFsbG9jYSBpMSwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2EgaTgs IGFsaWduIDEKLSAgIHN0b3JlIGk4ICUwLCBpOCogJTUsIGFsaWduIDEsICF0YmFhICExOTMKLUBA IC05MDMxLDcgKzkwMzEsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50 SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lpMTNVbmlmbwotIH0KLSAKLSA7IEZ1 bmN0aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2luZAotLWRlZmluZSBp bnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVu Y29kaW5nSWoxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29k aW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwgYWxpZ24g MzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsIGFsaWduIDEp ICMyNSBjb21kYXQgIWRiZyAhMTcwNiB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9a TjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJajEzVW5pZm9ybVdyaXRl ck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQs ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24g MzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsKCUic3RydWN0 LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIpIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAh MTcwNiB7Ci0gICAlNCA9IGFsbG9jYSBpMSwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2EgaTgsIGFs aWduIDEKLSAgIHN0b3JlIGk4ICUwLCBpOCogJTUsIGFsaWduIDEsICF0YmFhICExOTMKLUBAIC05 MDU3LDcgKzkwNTcsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5m bzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lqMTNVbmlmbwotIH0KLSAKLSA7IEZ1bmN0 aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2luZAotLWRlZmluZSBpbnRl cm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29k aW5nSWYxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5n RVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwgYWxpZ24gMzIs ICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsIGFsaWduIDEpICMy NSBjb21kYXQgIWRiZyAhMTcxNSB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQ cmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJZjEzVW5pZm9ybVdyaXRlck5T XzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVj bGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24gMzIs ICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsKCUic3RydWN0LlBy aW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIpIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMTcx NSB7Ci0gICAlNCA9IGFsbG9jYSBpMSwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2EgaTgsIGFsaWdu IDEKLSAgIHN0b3JlIGk4ICUwLCBpOCogJTUsIGFsaWduIDEsICF0YmFhICExOTMKLUBAIC05MDgz LDcgKzkwODMsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZk ZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lmMTNVbmlmbwotIH0KLSAKLSA7IEZ1bmN0aW9u IEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2luZAotLWRlZmluZSBpbnRlcm5h bCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5n SXgxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQw X1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwgYWxpZ24gMzIsICUi c3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsIGFsaWduIDEpICMyNSBj b21kYXQgIWRiZyAhMTcyNCB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmlu dEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJeDEzVW5pZm9ybVdyaXRlck5TXzE2 RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFz cy5Vbmlmb3JtV3JpdGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24gMzIsICUi c3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsKCUic3RydWN0LlByaW50 SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIpIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMTcyNCB7 Ci0gICAlNCA9IGFsbG9jYSBpMSwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2EgaTgsIGFsaWduIDEK LSAgIHN0b3JlIGk4ICUwLCBpOCogJTUsIGFsaWduIDEsICF0YmFhICExOTMKLUBAIC05MTA5LDcg KzkxMDksNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRh aWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0l4MTNVbmlmbwotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0 dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2luZAotLWRlZmluZSBpbnRlcm5hbCB6 ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSXkx M1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1Qx XyhpOCBzaWduZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwgYWxpZ24gMzIsICUic3Ry dWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsIGFsaWduIDEpICMyNSBjb21k YXQgIWRiZyAhMTczMyB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludElu Zm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJeTEzVW5pZm9ybVdyaXRlck5TXzE2RW5j b2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5V bmlmb3JtV3JpdGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24gMzIsICUic3Ry dWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5m bzo6RW5jb2Rpbmc0VW5pZm9ybSIpIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMTczMyB7Ci0g ICAlNCA9IGFsbG9jYSBpMSwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2EgaTgsIGFsaWduIDEKLSAg IHN0b3JlIGk4ICUwLCBpOCogJTUsIGFsaWduIDEsICF0YmFhICExOTMKLUBAIC05MTM1LDcgKzkx MzUsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwy MWFwcGx5SWZQcm9wZXJFbmNvZGluZ0l5MTNVbmlmbwotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJz OiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2luZAotLWRlZmluZSBpbnRlcm5hbCB6ZXJv ZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWQxM1Vu aWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhp OCBzaWduZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwgYWxpZ24gMzIsICUic3RydWN0 LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsIGFsaWduIDEpICMyNSBjb21kYXQg IWRiZyAhMTc0MiB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82 ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJZDEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rp bmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5Vbmlm b3JtV3JpdGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24gMzIsICUic3RydWN0 LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6 RW5jb2Rpbmc0VW5pZm9ybSIpIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMTc0MiB7Ci0gICAl NCA9IGFsbG9jYSBpMSwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2EgaTgsIGFsaWduIDEKLSAgIHN0 b3JlIGk4ICUwLCBpOCogJTUsIGFsaWduIDEsICF0YmFhICExOTMKLUBAIC05MTYxLDcgKzkxNjEs NyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFw cGx5SWZQcm9wZXJFbmNvZGluZ0lkMTNVbmlmbwotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBh bHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2luZAotLWRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0 IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSVB2MTNVbmlm b3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTgg c2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsIGFsaWduIDMyLCAlInN0cnVjdC5Q cmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCBhbGlnbiAxKSAjMjUgY29tZGF0ICFk YmcgITE3NTEgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRl dGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSVB2MTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGlu ZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZv cm1Xcml0ZXIqIGJ5dmFsKCVjbGFzcy5Vbmlmb3JtV3JpdGVyKSBhbGlnbiAzMiwgJSJzdHJ1Y3Qu UHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpF bmNvZGluZzRVbmlmb3JtIikgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICExNzUxIHsKLSAgICU0 ID0gYWxsb2NhIGkxLCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgc3Rv cmUgaTggJTAsIGk4KiAlNSwgYWxpZ24gMSwgIXRiYWEgITE5MwotQEAgLTk5ODQsNyArOTk4NCw3 IEBAIGRlZmluZSBpbnRlcm5hbCBpMzIgQF9aTjdkZXRhaWxzMThfY21fcHJpbnRfdHlwZV9vY2xJ UHZFRU5TXzE4U0hBREVSX1BSSU5URl9UWVBFCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IGFs d2F5c2lubGluZSBpbmxpbmVoaW50IG5vdW53aW5kCi0tZGVmaW5lIGludGVybmFsIHplcm9leHQg aTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1ZhcnlpbmdXcml0ZXJO U18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVRfVDBfKGk4IHNpZ25leHQsICVj bGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpF bmNvZGluZzRWYXJ5aW5nIiogYnl2YWwgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICEyMDU1IHsK LStkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwxNHN3aXRj aEVuY29kaW5nSTEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5j b2RpbmdFVF9UMF8oaTggc2lnbmV4dCwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsKCVjbGFz cy5WYXJ5aW5nV3JpdGVyKSBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRW YXJ5aW5nIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIikgYWxp Z24gMSkgIzI1IGNvbWRhdCAhZGJnICEyMDU1IHsKLSAgICU0ID0gYWxsb2NhIGk4LCBhbGlnbiAx Ci0gICAlNSA9IGFsbG9jYSAlY2xhc3MuVmFyeWluZ1dyaXRlciwgYWxpZ24gMzIKLSAgICU2ID0g YWxsb2NhICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIsIGFsaWduIDEKLUBA IC0xMDAwNyw3ICsxMDAwNyw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJp bnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNWYXJ5aW5nV3JpdGVyCi0gICAlMjIgPSBi aXRjYXN0ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiAlNSB0byBpOCosICFkYmcgITIwNTcKLSAgICUy MyA9IGJpdGNhc3QgJWNsYXNzLlZhcnlpbmdXcml0ZXIqICUxIHRvIGk4KiwgIWRiZyAhMjA1Nwot ICAgY2FsbCB2b2lkIEBsbHZtLm1lbWNweS5wMGk4LnAwaTguaTMyKGk4KiBhbGlnbiAzMiAlMjIs IGk4KiBhbGlnbiAzMiAlMjMsIGkzMiA2NCwgaTEgZmFsc2UpLCAhZGJnICEyMDU3LCAhdGJhYS5z dHJ1Y3QgITE5NwotLSAgJTI0ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFp bDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWIxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZh cnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICUyMSwgJWNsYXNzLlZhcnlp bmdXcml0ZXIqIGJ5dmFsIGFsaWduIDMyICU1LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5n NFZhcnlpbmciKiBieXZhbCBhbGlnbiAxICU2KSwgIWRiZyAhMjA1OAotKyAgJTI0ID0gY2FsbCB6 ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWIx M1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1Qx XyhpOCBzaWduZXh0ICUyMSwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5 aW5nV3JpdGVyKSBhbGlnbiAzMiAlNSwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5 aW5nIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIikgYWxpZ24g MSAlNiksICFkYmcgITIwNTgKLSAgIGJyIGkxICUyNCwgbGFiZWwgJTYwLCBsYWJlbCAlMjUsICFk YmcgITIwNTkKLSAKLSA7IDxsYWJlbD46MjU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDsgcHJlZHMgPSAlMwotQEAgLTEwMDE1LDcgKzEwMDE1LDcgQEAgZGVmaW5lIGludGVy bmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1Zh cnlpbmdXcml0ZXIKLSAgICUyNyA9IGJpdGNhc3QgJWNsYXNzLlZhcnlpbmdXcml0ZXIqICU3IHRv IGk4KiwgIWRiZyAhMjA2MQotICAgJTI4ID0gYml0Y2FzdCAlY2xhc3MuVmFyeWluZ1dyaXRlciog JTEgdG8gaTgqLCAhZGJnICEyMDYxCi0gICBjYWxsIHZvaWQgQGxsdm0ubWVtY3B5LnAwaTgucDBp OC5pMzIoaTgqIGFsaWduIDMyICUyNywgaTgqIGFsaWduIDMyICUyOCwgaTMyIDY0LCBpMSBmYWxz ZSksICFkYmcgITIwNjEsICF0YmFhLnN0cnVjdCAhMTk3Ci0tICAlMjkgPSBjYWxsIHplcm9leHQg aTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJaTEzVmFyeWlu Z1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNp Z25leHQgJTI2LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwgYWxpZ24gMzIgJTcsICUic3Ry dWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsIGFsaWduIDEgJTgpLCAhZGJn ICEyMDYyCi0rICAlMjkgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFh cHBseUlmUHJvcGVyRW5jb2RpbmdJaTEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWlu Z0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTI2LCAlY2xhc3MuVmFyeWluZ1dy aXRlciogYnl2YWwoJWNsYXNzLlZhcnlpbmdXcml0ZXIpIGFsaWduIDMyICU3LCAlInN0cnVjdC5Q cmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVu Y29kaW5nNFZhcnlpbmciKSBhbGlnbiAxICU4KSwgIWRiZyAhMjA2MgotICAgYnIgaTEgJTI5LCBs YWJlbCAlNjAsIGxhYmVsICUzMCwgIWRiZyAhMjA2MwotIAotIDsgPGxhYmVsPjozMDogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOyBwcmVkcyA9ICUyNQotQEAgLTEwMDIzLDcg KzEwMDIzLDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0 YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1ZhcnlpbmdXcml0ZXIKLSAgICUzMiA9IGJpdGNhc3QgJWNs YXNzLlZhcnlpbmdXcml0ZXIqICU5IHRvIGk4KiwgIWRiZyAhMjA2NQotICAgJTMzID0gYml0Y2Fz dCAlY2xhc3MuVmFyeWluZ1dyaXRlciogJTEgdG8gaTgqLCAhZGJnICEyMDY1Ci0gICBjYWxsIHZv aWQgQGxsdm0ubWVtY3B5LnAwaTgucDBpOC5pMzIoaTgqIGFsaWduIDMyICUzMiwgaTgqIGFsaWdu IDMyICUzMywgaTMyIDY0LCBpMSBmYWxzZSksICFkYmcgITIwNjUsICF0YmFhLnN0cnVjdCAhMTk3 Ci0tICAlMzQgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlm UHJvcGVyRW5jb2RpbmdJajEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJO U184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTMxLCAlY2xhc3MuVmFyeWluZ1dyaXRlciog Ynl2YWwgYWxpZ24gMzIgJTksICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIq IGJ5dmFsIGFsaWduIDEgJTEwKSwgIWRiZyAhMjA2NgotKyAgJTM0ID0gY2FsbCB6ZXJvZXh0IGkx IEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWoxM1ZhcnlpbmdX cml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWdu ZXh0ICUzMSwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5aW5nV3JpdGVy KSBhbGlnbiAzMiAlOSwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2 YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIikgYWxpZ24gMSAlMTApLCAh ZGJnICEyMDY2Ci0gICBiciBpMSAlMzQsIGxhYmVsICU2MCwgbGFiZWwgJTM1LCAhZGJnICEyMDY3 Ci0gCi0gOyA8bGFiZWw+OjM1OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7 IHByZWRzID0gJTMwCi1AQCAtMTAwMzEsNyArMTAwMzEsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVy b2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEzVmFyeWluZ1dy aXRlcgotICAgJTM3ID0gYml0Y2FzdCAlY2xhc3MuVmFyeWluZ1dyaXRlciogJTExIHRvIGk4Kiwg IWRiZyAhMjA2OQotICAgJTM4ID0gYml0Y2FzdCAlY2xhc3MuVmFyeWluZ1dyaXRlciogJTEgdG8g aTgqLCAhZGJnICEyMDY5Ci0gICBjYWxsIHZvaWQgQGxsdm0ubWVtY3B5LnAwaTgucDBpOC5pMzIo aTgqIGFsaWduIDMyICUzNywgaTgqIGFsaWduIDMyICUzOCwgaTMyIDY0LCBpMSBmYWxzZSksICFk YmcgITIwNjksICF0YmFhLnN0cnVjdCAhMTk3Ci0tICAlMzkgPSBjYWxsIHplcm9leHQgaTEgQF9a TjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJZjEzVmFyeWluZ1dyaXRl ck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQg JTM2LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwgYWxpZ24gMzIgJTExLCAlInN0cnVjdC5Q cmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCBhbGlnbiAxICUxMiksICFkYmcgITIw NzAKLSsgICUzOSA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5 SWZQcm9wZXJFbmNvZGluZ0lmMTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVF Yk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlMzYsICVjbGFzcy5WYXJ5aW5nV3JpdGVy KiBieXZhbCglY2xhc3MuVmFyeWluZ1dyaXRlcikgYWxpZ24gMzIgJTExLCAlInN0cnVjdC5Qcmlu dEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29k aW5nNFZhcnlpbmciKSBhbGlnbiAxICUxMiksICFkYmcgITIwNzAKLSAgIGJyIGkxICUzOSwgbGFi ZWwgJTYwLCBsYWJlbCAlNDAsICFkYmcgITIwNzEKLSAKLSA7IDxsYWJlbD46NDA6ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsgcHJlZHMgPSAlMzUKLUBAIC0xMDAzOSw3ICsx MDAzOSw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFp bDE0c3dpdGNoRW5jb2RpbmdJMTNWYXJ5aW5nV3JpdGVyCi0gICAlNDIgPSBiaXRjYXN0ICVjbGFz cy5WYXJ5aW5nV3JpdGVyKiAlMTMgdG8gaTgqLCAhZGJnICEyMDczCi0gICAlNDMgPSBiaXRjYXN0 ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiAlMSB0byBpOCosICFkYmcgITIwNzMKLSAgIGNhbGwgdm9p ZCBAbGx2bS5tZW1jcHkucDBpOC5wMGk4LmkzMihpOCogYWxpZ24gMzIgJTQyLCBpOCogYWxpZ24g MzIgJTQzLCBpMzIgNjQsIGkxIGZhbHNlKSwgIWRiZyAhMjA3MywgIXRiYWEuc3RydWN0ICExOTcK LS0gICU0NCA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQ cm9wZXJFbmNvZGluZ0l4MTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5T XzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlNDEsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBi eXZhbCBhbGlnbiAzMiAlMTMsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIq IGJ5dmFsIGFsaWduIDEgJTE0KSwgIWRiZyAhMjA3NAotKyAgJTQ0ID0gY2FsbCB6ZXJvZXh0IGkx IEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSXgxM1ZhcnlpbmdX cml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWdu ZXh0ICU0MSwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5aW5nV3JpdGVy KSBhbGlnbiAzMiAlMTMsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5 dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIpIGFsaWduIDEgJTE0KSwg IWRiZyAhMjA3NAotICAgYnIgaTEgJTQ0LCBsYWJlbCAlNjAsIGxhYmVsICU0NSwgIWRiZyAhMjA3 NQotIAotIDsgPGxhYmVsPjo0NTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg OyBwcmVkcyA9ICU0MAotQEAgLTEwMDQ3LDcgKzEwMDQ3LDcgQEAgZGVmaW5lIGludGVybmFsIHpl cm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1ZhcnlpbmdX cml0ZXIKLSAgICU0NyA9IGJpdGNhc3QgJWNsYXNzLlZhcnlpbmdXcml0ZXIqICUxNSB0byBpOCos ICFkYmcgITIwNzcKLSAgICU0OCA9IGJpdGNhc3QgJWNsYXNzLlZhcnlpbmdXcml0ZXIqICUxIHRv IGk4KiwgIWRiZyAhMjA3NwotICAgY2FsbCB2b2lkIEBsbHZtLm1lbWNweS5wMGk4LnAwaTguaTMy KGk4KiBhbGlnbiAzMiAlNDcsIGk4KiBhbGlnbiAzMiAlNDgsIGkzMiA2NCwgaTEgZmFsc2UpLCAh ZGJnICEyMDc3LCAhdGJhYS5zdHJ1Y3QgITE5NwotLSAgJTQ5ID0gY2FsbCB6ZXJvZXh0IGkxIEBf Wk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSXkxM1ZhcnlpbmdXcml0 ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0 ICU0NiwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsIGFsaWduIDMyICUxNSwgJSJzdHJ1Y3Qu UHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwgYWxpZ24gMSAlMTYpLCAhZGJnICEy MDc4Ci0rICAlNDkgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBs eUlmUHJvcGVyRW5jb2RpbmdJeTEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VF RWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTQ2LCAlY2xhc3MuVmFyeWluZ1dyaXRl ciogYnl2YWwoJWNsYXNzLlZhcnlpbmdXcml0ZXIpIGFsaWduIDMyICUxNSwgJSJzdHJ1Y3QuUHJp bnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNv ZGluZzRWYXJ5aW5nIikgYWxpZ24gMSAlMTYpLCAhZGJnICEyMDc4Ci0gICBiciBpMSAlNDksIGxh YmVsICU2MCwgbGFiZWwgJTUwLCAhZGJnICEyMDc5Ci0gCi0gOyA8bGFiZWw+OjUwOiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7IHByZWRzID0gJTQ1Ci1AQCAtMTAwNTUsNyAr MTAwNTUsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRh aWwxNHN3aXRjaEVuY29kaW5nSTEzVmFyeWluZ1dyaXRlcgotICAgJTUyID0gYml0Y2FzdCAlY2xh c3MuVmFyeWluZ1dyaXRlciogJTE3IHRvIGk4KiwgIWRiZyAhMjA4MQotICAgJTUzID0gYml0Y2Fz dCAlY2xhc3MuVmFyeWluZ1dyaXRlciogJTEgdG8gaTgqLCAhZGJnICEyMDgxCi0gICBjYWxsIHZv aWQgQGxsdm0ubWVtY3B5LnAwaTgucDBpOC5pMzIoaTgqIGFsaWduIDMyICU1MiwgaTgqIGFsaWdu IDMyICU1MywgaTMyIDY0LCBpMSBmYWxzZSksICFkYmcgITIwODEsICF0YmFhLnN0cnVjdCAhMTk3 Ci0tICAlNTQgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlm UHJvcGVyRW5jb2RpbmdJZDEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJO U184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTUxLCAlY2xhc3MuVmFyeWluZ1dyaXRlciog Ynl2YWwgYWxpZ24gMzIgJTE3LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmci KiBieXZhbCBhbGlnbiAxICUxOCksICFkYmcgITIwODIKLSsgICU1NCA9IGNhbGwgemVyb2V4dCBp MSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lkMTNWYXJ5aW5n V3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2ln bmV4dCAlNTEsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCglY2xhc3MuVmFyeWluZ1dyaXRl cikgYWxpZ24gMzIgJTE3LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBi eXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKSBhbGlnbiAxICUxOCks ICFkYmcgITIwODIKLSAgIGJyIGkxICU1NCwgbGFiZWwgJTYwLCBsYWJlbCAlNTUsICFkYmcgITIw ODMKLSAKLSA7IDxsYWJlbD46NTU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IDsgcHJlZHMgPSAlNTAKLUBAIC0xMDA2Myw3ICsxMDA2Myw3IEBAIGRlZmluZSBpbnRlcm5hbCB6 ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNWYXJ5aW5n V3JpdGVyCi0gICAlNTcgPSBiaXRjYXN0ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiAlMTkgdG8gaTgq LCAhZGJnICEyMDg1Ci0gICAlNTggPSBiaXRjYXN0ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiAlMSB0 byBpOCosICFkYmcgITIwODUKLSAgIGNhbGwgdm9pZCBAbGx2bS5tZW1jcHkucDBpOC5wMGk4Lmkz MihpOCogYWxpZ24gMzIgJTU3LCBpOCogYWxpZ24gMzIgJTU4LCBpMzIgNjQsIGkxIGZhbHNlKSwg IWRiZyAhMjA4NSwgIXRiYWEuc3RydWN0ICExOTcKLS0gICU1OSA9IGNhbGwgemVyb2V4dCBpMSBA X1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lQdjEzVmFyeWluZ1dy aXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25l eHQgJTU2LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwgYWxpZ24gMzIgJTE5LCAlInN0cnVj dC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCBhbGlnbiAxICUyMCksICFkYmcg ITIwODYKLSsgICU1OSA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFw cGx5SWZQcm9wZXJFbmNvZGluZ0lQdjEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWlu Z0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTU2LCAlY2xhc3MuVmFyeWluZ1dy aXRlciogYnl2YWwoJWNsYXNzLlZhcnlpbmdXcml0ZXIpIGFsaWduIDMyICUxOSwgJSJzdHJ1Y3Qu UHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpF bmNvZGluZzRWYXJ5aW5nIikgYWxpZ24gMSAlMjApLCAhZGJnICEyMDg2Ci0gICBiciBsYWJlbCAl NjAsICFkYmcgITIwODMKLSAKLSA7IDxsYWJlbD46NjA6ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDsgcHJlZHMgPSAlNTUsICU1MCwgJTQ1LCAlNDAsICUzNSwgJTMwLCAlMjUs ICUzCi1AQCAtMTAwNzIsNyArMTAwNzIsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBA X1pOOVByaW50SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEzVmFyeWluZ1dyaXRlcgotIH0K LSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2luZAot LWRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJ ZlByb3BlckVuY29kaW5nSWIxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUVi TlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2 YWwgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFs IGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMjA4OCB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9l eHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJYjEzVmFy eWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4 IHNpZ25leHQsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCglY2xhc3MuVmFyeWluZ1dyaXRl cikgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFs KCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIpIGFsaWduIDEpICMyNSBjb21k YXQgIWRiZyAhMjA4OCB7Ci0gICAlNCA9IGFsbG9jYSBpMSwgYWxpZ24gMQotICAgJTUgPSBhbGxv Y2EgaTgsIGFsaWduIDEKLSAgIHN0b3JlIGk4ICUwLCBpOCogJTUsIGFsaWduIDEsICF0YmFhICEx OTMKLUBAIC0xMDA5OCw3ICsxMDA5OCw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBf Wk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWIxM1ZhcnlpCi0gfQot IAotIDsgRnVuY3Rpb24gQXR0cnM6IGFsd2F5c2lubGluZSBpbmxpbmVoaW50IG5vdW53aW5kCi0t ZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlm UHJvcGVyRW5jb2RpbmdJaTEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJO U184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZh bCBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwg YWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICEyMDk3IHsKLStkZWZpbmUgaW50ZXJuYWwgemVyb2V4 dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lpMTNWYXJ5 aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTgg c2lnbmV4dCwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5aW5nV3JpdGVy KSBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwo JSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIikgYWxpZ24gMSkgIzI1IGNvbWRh dCAhZGJnICEyMDk3IHsKLSAgICU0ID0gYWxsb2NhIGkxLCBhbGlnbiAxCi0gICAlNSA9IGFsbG9j YSBpOCwgYWxpZ24gMQotICAgc3RvcmUgaTggJTAsIGk4KiAlNSwgYWxpZ24gMSwgIXRiYWEgITE5 MwotQEAgLTEwMTI0LDcgKzEwMTI0LDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9a TjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJaTEzVmFyeWkKLSB9Ci0g Ci0gOyBGdW5jdGlvbiBBdHRyczogYWx3YXlzaW5saW5lIGlubGluZWhpbnQgbm91bndpbmQKLS1k ZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQ cm9wZXJFbmNvZGluZ0lqMTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5T XzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFs IGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCBh bGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITIxMDYgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0 IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWoxM1Zhcnlp bmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBz aWduZXh0LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwoJWNsYXNzLlZhcnlpbmdXcml0ZXIp IGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCgl InN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKSBhbGlnbiAxKSAjMjUgY29tZGF0 ICFkYmcgITIxMDYgewotICAgJTQgPSBhbGxvY2EgaTEsIGFsaWduIDEKLSAgICU1ID0gYWxsb2Nh IGk4LCBhbGlnbiAxCi0gICBzdG9yZSBpOCAlMCwgaTgqICU1LCBhbGlnbiAxLCAhdGJhYSAhMTkz Ci1AQCAtMTAxNTAsNyArMTAxNTAsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pO OVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lqMTNWYXJ5aQotIH0KLSAK LSA7IEZ1bmN0aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2luZAotLWRl ZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlBy b3BlckVuY29kaW5nSWYxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNf OEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwg YWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsIGFs aWduIDEpICMyNSBjb21kYXQgIWRiZyAhMjExNSB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQg aTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJZjEzVmFyeWlu Z1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNp Z25leHQsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCglY2xhc3MuVmFyeWluZ1dyaXRlcikg YWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsKCUi c3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIpIGFsaWduIDEpICMyNSBjb21kYXQg IWRiZyAhMjExNSB7Ci0gICAlNCA9IGFsbG9jYSBpMSwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2Eg aTgsIGFsaWduIDEKLSAgIHN0b3JlIGk4ICUwLCBpOCogJTUsIGFsaWduIDEsICF0YmFhICExOTMK LUBAIC0xMDE3Niw3ICsxMDE3Niw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45 UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWYxM1ZhcnlpCi0gfQotIAot IDsgRnVuY3Rpb24gQXR0cnM6IGFsd2F5c2lubGluZSBpbmxpbmVoaW50IG5vdW53aW5kCi0tZGVm aW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJv cGVyRW5jb2RpbmdJeDEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184 RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCBh bGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwgYWxp Z24gMSkgIzI1IGNvbWRhdCAhZGJnICEyMTI0IHsKLStkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBp MSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0l4MTNWYXJ5aW5n V3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2ln bmV4dCwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5aW5nV3JpdGVyKSBh bGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwoJSJz dHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIikgYWxpZ24gMSkgIzI1IGNvbWRhdCAh ZGJnICEyMTI0IHsKLSAgICU0ID0gYWxsb2NhIGkxLCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSBp OCwgYWxpZ24gMQotICAgc3RvcmUgaTggJTAsIGk4KiAlNSwgYWxpZ24gMSwgIXRiYWEgITE5Mwot QEAgLTEwMjAyLDcgKzEwMjAyLDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQ cmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJeDEzVmFyeWkKLSB9Ci0gCi0g OyBGdW5jdGlvbiBBdHRyczogYWx3YXlzaW5saW5lIGlubGluZWhpbnQgbm91bndpbmQKLS1kZWZp bmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9w ZXJFbmNvZGluZ0l5MTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhF bmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsIGFs aWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCBhbGln biAxKSAjMjUgY29tZGF0ICFkYmcgITIxMzMgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkx IEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSXkxM1ZhcnlpbmdX cml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWdu ZXh0LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwoJWNsYXNzLlZhcnlpbmdXcml0ZXIpIGFs aWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCglInN0 cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKSBhbGlnbiAxKSAjMjUgY29tZGF0ICFk YmcgITIxMzMgewotICAgJTQgPSBhbGxvY2EgaTEsIGFsaWduIDEKLSAgICU1ID0gYWxsb2NhIGk4 LCBhbGlnbiAxCi0gICBzdG9yZSBpOCAlMCwgaTgqICU1LCBhbGlnbiAxLCAhdGJhYSAhMTkzCi1A QCAtMTAyMjgsNyArMTAyMjgsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVBy aW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0l5MTNWYXJ5aQotIH0KLSAKLSA7 IEZ1bmN0aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2luZAotLWRlZmlu ZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3Bl ckVuY29kaW5nSWQxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVu Y29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwgYWxp Z24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsIGFsaWdu IDEpICMyNSBjb21kYXQgIWRiZyAhMjE0MiB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEg QF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJZDEzVmFyeWluZ1dy aXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25l eHQsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCglY2xhc3MuVmFyeWluZ1dyaXRlcikgYWxp Z24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsKCUic3Ry dWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIpIGFsaWduIDEpICMyNSBjb21kYXQgIWRi ZyAhMjE0MiB7Ci0gICAlNCA9IGFsbG9jYSBpMSwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2EgaTgs IGFsaWduIDEKLSAgIHN0b3JlIGk4ICUwLCBpOCogJTUsIGFsaWduIDEsICF0YmFhICExOTMKLUBA IC0xMDI1NCw3ICsxMDI1NCw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJp bnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWQxM1ZhcnlpCi0gfQotIAotIDsg RnVuY3Rpb24gQXR0cnM6IGFsd2F5c2lubGluZSBpbmxpbmVoaW50IG5vdW53aW5kCi0tZGVmaW5l IGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVy RW5jb2RpbmdJUHYxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVu Y29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwgYWxp Z24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsIGFsaWdu IDEpICMyNSBjb21kYXQgIWRiZyAhMjE1MSB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEg QF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJUHYxM1ZhcnlpbmdX cml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWdu ZXh0LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwoJWNsYXNzLlZhcnlpbmdXcml0ZXIpIGFs aWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCglInN0 cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKSBhbGlnbiAxKSAjMjUgY29tZGF0ICFk YmcgITIxNTEgewotICAgJTQgPSBhbGxvY2EgaTEsIGFsaWduIDEKLSAgICU1ID0gYWxsb2NhIGk4 LCBhbGlnbiAxCi0gICBzdG9yZSBpOCAlMCwgaTgqICU1LCBhbGlnbiAxLCAhdGJhYSAhMTkzCi1k aWZmIC0tZ2l0IGEvYnVpbHRpbnMvYnVpbHRpbnMtY20tNjQubGwgYi9idWlsdGlucy9idWlsdGlu cy1jbS02NC5sbAotaW5kZXggMzlhMmRkOGJlLi4zNzVkMDFiZWQgMTAwNjQ0Ci0tLS0gYS9idWls dGlucy9idWlsdGlucy1jbS02NC5sbAotKysrIGIvYnVpbHRpbnMvYnVpbHRpbnMtY20tNjQubGwK LUBAIC01NTcsNyArNTU3LDcgQEAgJF9aTjEzVmFyeWluZ1dyaXRlcjEyV3JpdGVWZWNFbGVtSVB2 RUV2diA9IGNvbWRhdCBhbnkKLSBALnN0ci4xMCA9IHByaXZhdGUgdW5uYW1lZF9hZGRyIGNvbnN0 YW50IFs4IHggaThdIGMiJTAxNmxsWFwwMCIsIGFsaWduIDEKLSAKLSA7IEZ1bmN0aW9uIEF0dHJz OiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgc2lnbmV4dCBpOCBAX1oyNF9f Y21faW50cmluc2ljX2ltcGxfc2RpdmNjKGk4IHNpZ25leHQsIGk4IHNpZ25leHQpICMwIHsKLStk ZWZpbmUgaW50ZXJuYWwgc2lnbmV4dCBpOCBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdmNj KGk4IHNpZ25leHQsIGk4IHNpZ25leHQpICMwIHsKLSAgICUzID0gYWxsb2NhIGk4LCBhbGlnbiAx Ci0gICAlNCA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2EgPDEgeCBpOD4sIGFs aWduIDEKLUBAIC02MTgsNyArNjE4LDcgQEAgZGVmaW5lIGludGVybmFsIDwxIHggaTg+IEBfWk43 ZGV0YWlsczEzX19pbXBsX2RpdnJlbUlMaTFFRUV1MkNNdmJUX19jUzFfUzFfdTJDTXYKLSBkZWNs YXJlIDwxIHggaTg+IEBsbHZtLmdlbngucmRyZWdpb25pLnYxaTgudjFpOC5pMTYoPDEgeCBpOD4s IGkzMiwgaTMyLCBpMzIsIGkxNiwgaTMyKSAjMgotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5s aW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MSB4IGk4PiBAX1oyNF9fY21faW50cmlu c2ljX2ltcGxfc2RpdnUyQ012YjFfY1NfKDwxIHggaTg+LCA8MSB4IGk4PikgIzAgewotK2RlZmlu ZSBpbnRlcm5hbCA8MSB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjFf Y1NfKDwxIHggaTg+LCA8MSB4IGk4PikgIzAgewotICAgJTMgPSBhbGxvY2EgPDEgeCBpOD4sIGFs aWduIDEKLSAgICU0ID0gYWxsb2NhIDwxIHggaTg+LCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSA8 MSB4IGk4PiwgYWxpZ24gMQotQEAgLTYzNCw3ICs2MzQsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwx IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZiMV9jU18oPDEgeCBpOD4s IDwxCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5l IGRzb19sb2NhbCA8MiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjJf Y1NfKDwyIHggaTg+LCA8MiB4IGk4PikgIzMgewotK2RlZmluZSBpbnRlcm5hbCA8MiB4IGk4PiBA X1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjJfY1NfKDwyIHggaTg+LCA8MiB4IGk4 PikgIzMgewotICAgJTMgPSBhbGxvY2EgPDIgeCBpOD4sIGFsaWduIDIKLSAgICU0ID0gYWxsb2Nh IDwyIHggaTg+LCBhbGlnbiAyCi0gICAlNSA9IGFsbG9jYSA8MiB4IGk4PiwgYWxpZ24gMgotQEAg LTY4MCw3ICs2ODAsNyBAQCBkZWZpbmUgaW50ZXJuYWwgPDIgeCBpOD4gQF9aTjdkZXRhaWxzMTNf X2ltcGxfZGl2cmVtSUxpMkVFRXUyQ012YlRfX2NTMV9TMV91MkNNdgotIH0KLSAKLSA7IEZ1bmN0 aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDQgeCBpOD4g QF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmI0X2NTXyg8NCB4IGk4PiwgPDQgeCBp OD4pICM1IHsKLStkZWZpbmUgaW50ZXJuYWwgPDQgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19p bXBsX3NkaXZ1MkNNdmI0X2NTXyg8NCB4IGk4PiwgPDQgeCBpOD4pICM1IHsKLSAgICUzID0gYWxs b2NhIDw0IHggaTg+LCBhbGlnbiA0Ci0gICAlNCA9IGFsbG9jYSA8NCB4IGk4PiwgYWxpZ24gNAot ICAgJTUgPSBhbGxvY2EgPDQgeCBpOD4sIGFsaWduIDQKLUBAIC04MTgsNyArODE4LDcgQEAgZGVm aW5lIGludGVybmFsIDwxNiB4IGk4PiBAX1pON2RldGFpbHMxM19faW1wbF9kaXZyZW1JTGkxNkVF RXUyQ012YlRfX2NTMV9TMV91MkMKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUg bm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwzMiB4IGk4PiBAX1oyNF9fY21faW50cmluc2lj X2ltcGxfc2RpdnUyQ012YjMyX2NTXyg8MzIgeCBpOD4sIDwzMiB4IGk4PikgIzExIHsKLStkZWZp bmUgaW50ZXJuYWwgPDMyIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZi MzJfY1NfKDwzMiB4IGk4PiwgPDMyIHggaTg+KSAjMTEgewotICAgJTMgPSBhbGxvY2EgPDMyIHgg aTg+LCBhbGlnbiAzMgotICAgJTQgPSBhbGxvY2EgPDMyIHggaTg+LCBhbGlnbiAzMgotICAgJTUg PSBhbGxvY2EgPDMyIHggaTg+LCBhbGlnbiAzMgotQEAgLTg2NCw3ICs4NjQsNyBAQCBkZWZpbmUg aW50ZXJuYWwgPDMyIHggaTg+IEBfWk43ZGV0YWlsczEzX19pbXBsX2RpdnJlbUlMaTMyRUVFdTJD TXZiVF9fY1MxX1MxX3UyQwotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vu d2luZAotLWRlZmluZSBkc29fbG9jYWwgc2lnbmV4dCBpOCBAX1oyNF9fY21faW50cmluc2ljX2lt cGxfc3JlbWNjKGk4IHNpZ25leHQsIGk4IHNpZ25leHQpICMwIHsKLStkZWZpbmUgaW50ZXJuYWwg c2lnbmV4dCBpOCBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbWNjKGk4IHNpZ25leHQsIGk4 IHNpZ25leHQpICMwIHsKLSAgICUzID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0gICAlNCA9IGFsbG9j YSBpOCwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2EgPDEgeCBpOD4sIGFsaWduIDEKLUBAIC04OTAs NyArODkwLDcgQEAgZGVmaW5lIGRzb19sb2NhbCBzaWduZXh0IGk4IEBfWjI0X19jbV9pbnRyaW5z aWNfaW1wbF9zcmVtY2MoaTggc2lnbmV4dCwgaTggc2lnbmUKLSB9Ci0gCi0gOyBGdW5jdGlvbiBB dHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwxIHggaTg+IEBfWjI0 X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMV9jU18oPDEgeCBpOD4sIDwxIHggaTg+KSAj MCB7Ci0rZGVmaW5lIGludGVybmFsIDwxIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9z cmVtdTJDTXZiMV9jU18oPDEgeCBpOD4sIDwxIHggaTg+KSAjMCB7Ci0gICAlMyA9IGFsbG9jYSA8 MSB4IGk4PiwgYWxpZ24gMQotICAgJTQgPSBhbGxvY2EgPDEgeCBpOD4sIGFsaWduIDEKLSAgICU1 ID0gYWxsb2NhIDwxIHggaTg+LCBhbGlnbiAxCi1AQCAtOTA0LDcgKzkwNCw3IEBAIGRlZmluZSBk c29fbG9jYWwgPDEgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIxX2NT Xyg8MSB4IGk4PiwgPDEKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndp bmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwyIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9z cmVtdTJDTXZiMl9jU18oPDIgeCBpOD4sIDwyIHggaTg+KSAjMyB7Ci0rZGVmaW5lIGludGVybmFs IDwyIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMl9jU18oPDIgeCBp OD4sIDwyIHggaTg+KSAjMyB7Ci0gICAlMyA9IGFsbG9jYSA8MiB4IGk4PiwgYWxpZ24gMgotICAg JTQgPSBhbGxvY2EgPDIgeCBpOD4sIGFsaWduIDIKLSAgICU1ID0gYWxsb2NhIDwyIHggaTg+LCBh bGlnbiAyCi1AQCAtOTE4LDcgKzkxOCw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDIgeCBpOD4gQF9a MjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIyX2NTXyg8MiB4IGk4PiwgPDIKLSB9Ci0g Ci0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2Fs IDw0IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiNF9jU18oPDQgeCBp OD4sIDw0IHggaTg+KSAjNSB7Ci0rZGVmaW5lIGludGVybmFsIDw0IHggaTg+IEBfWjI0X19jbV9p bnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiNF9jU18oPDQgeCBpOD4sIDw0IHggaTg+KSAjNSB7Ci0g ICAlMyA9IGFsbG9jYSA8NCB4IGk4PiwgYWxpZ24gNAotICAgJTQgPSBhbGxvY2EgPDQgeCBpOD4s IGFsaWduIDQKLSAgICU1ID0gYWxsb2NhIDw0IHggaTg+LCBhbGlnbiA0Ci1AQCAtOTMyLDcgKzkz Miw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDQgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBs X3NyZW11MkNNdmI0X2NTXyg8NCB4IGk4PiwgPDQKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczog bm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDw4IHggaTg+IEBfWjI0X19jbV9p bnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiOF9jU18oPDggeCBpOD4sIDw4IHggaTg+KSAjNyB7Ci0r ZGVmaW5lIGludGVybmFsIDw4IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJD TXZiOF9jU18oPDggeCBpOD4sIDw4IHggaTg+KSAjNyB7Ci0gICAlMyA9IGFsbG9jYSA8OCB4IGk4 PiwgYWxpZ24gOAotICAgJTQgPSBhbGxvY2EgPDggeCBpOD4sIGFsaWduIDgKLSAgICU1ID0gYWxs b2NhIDw4IHggaTg+LCBhbGlnbiA4Ci1AQCAtOTQ2LDcgKzk0Niw3IEBAIGRlZmluZSBkc29fbG9j YWwgPDggeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmI4X2NTXyg8OCB4 IGk4PiwgPDgKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1k ZWZpbmUgZHNvX2xvY2FsIDwxNiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUy Q012YjE2X2NTXyg8MTYgeCBpOD4sIDwxNiB4IGk4PikgIzkgewotK2RlZmluZSBpbnRlcm5hbCA8 MTYgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIxNl9jU18oPDE2IHgg aTg+LCA8MTYgeCBpOD4pICM5IHsKLSAgICUzID0gYWxsb2NhIDwxNiB4IGk4PiwgYWxpZ24gMTYK LSAgICU0ID0gYWxsb2NhIDwxNiB4IGk4PiwgYWxpZ24gMTYKLSAgICU1ID0gYWxsb2NhIDwxNiB4 IGk4PiwgYWxpZ24gMTYKLUBAIC05NjAsNyArOTYwLDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MTYg eCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIxNl9jU18oPDE2IHggaTg+ LAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBk c29fbG9jYWwgPDMyIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMzJf Y1NfKDwzMiB4IGk4PiwgPDMyIHggaTg+KSAjMTEgewotK2RlZmluZSBpbnRlcm5hbCA8MzIgeCBp OD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIzMl9jU18oPDMyIHggaTg+LCA8 MzIgeCBpOD4pICMxMSB7Ci0gICAlMyA9IGFsbG9jYSA8MzIgeCBpOD4sIGFsaWduIDMyCi0gICAl NCA9IGFsbG9jYSA8MzIgeCBpOD4sIGFsaWduIDMyCi0gICAlNSA9IGFsbG9jYSA8MzIgeCBpOD4s IGFsaWduIDMyCi1AQCAtOTc0LDcgKzk3NCw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDMyIHggaTg+ IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMzJfY1NfKDwzMiB4IGk4PiwKLSB9 Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xv Y2FsIHNpZ25leHQgaTE2IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2c3MoaTE2IHNpZ25l eHQsIGkxNiBzaWduZXh0KSAjMyB7Ci0rZGVmaW5lIGludGVybmFsIHNpZ25leHQgaTE2IEBfWjI0 X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2c3MoaTE2IHNpZ25leHQsIGkxNiBzaWduZXh0KSAjMyB7 Ci0gICAlMyA9IGFsbG9jYSBpMTYsIGFsaWduIDIKLSAgICU0ID0gYWxsb2NhIGkxNiwgYWxpZ24g MgotICAgJTUgPSBhbGxvY2EgPDEgeCBpMTY+LCBhbGlnbiAyCi1AQCAtMTA1OCw3ICsxMDU4LDcg QEAgZGVmaW5lIGludGVybmFsIDwxIHggaTE2PiBAX1pON2RldGFpbHMxM19faW1wbF9kaXZyZW1J TGkxRUVFdTJDTXZiVF9fc1MxX1MxX3UyQ00KLSBkZWNsYXJlIDwxIHggaTE2PiBAbGx2bS5nZW54 LnJkcmVnaW9uaS52MWkxNi52MWkxNi5pMTYoPDEgeCBpMTY+LCBpMzIsIGkzMiwgaTMyLCBpMTYs IGkzMikgIzIKLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmlu ZSBkc29fbG9jYWwgPDEgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZi MV9zU18oPDEgeCBpMTY+LCA8MSB4IGkxNj4pICMzIHsKLStkZWZpbmUgaW50ZXJuYWwgPDEgeCBp MTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZiMV9zU18oPDEgeCBpMTY+LCA8 MSB4IGkxNj4pICMzIHsKLSAgICUzID0gYWxsb2NhIDwxIHggaTE2PiwgYWxpZ24gMgotICAgJTQg PSBhbGxvY2EgPDEgeCBpMTY+LCBhbGlnbiAyCi0gICAlNSA9IGFsbG9jYSA8MSB4IGkxNj4sIGFs aWduIDIKLUBAIC0xMDc0LDcgKzEwNzQsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwxIHggaTE2PiBA X1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjFfc1NfKDwxIHggaTE2PiwgPAotIH0K LSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9j YWwgPDIgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZiMl9zU18oPDIg eCBpMTY+LCA8MiB4IGkxNj4pICM1IHsKLStkZWZpbmUgaW50ZXJuYWwgPDIgeCBpMTY+IEBfWjI0 X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZiMl9zU18oPDIgeCBpMTY+LCA8MiB4IGkxNj4p ICM1IHsKLSAgICUzID0gYWxsb2NhIDwyIHggaTE2PiwgYWxpZ24gNAotICAgJTQgPSBhbGxvY2Eg PDIgeCBpMTY+LCBhbGlnbiA0Ci0gICAlNSA9IGFsbG9jYSA8MiB4IGkxNj4sIGFsaWduIDQKLUBA IC0xMTQzLDcgKzExNDMsNyBAQCBkZWZpbmUgaW50ZXJuYWwgPDIgeCBpMTY+IEBfWk43ZGV0YWls czEzX19pbXBsX2RpdnJlbUlMaTJFRUV1MkNNdmJUX19zUzFfUzFfdTJDTQotIH0KLSAKLSA7IEZ1 bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDQgeCBp MTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZiNF9zU18oPDQgeCBpMTY+LCA8 NCB4IGkxNj4pICM3IHsKLStkZWZpbmUgaW50ZXJuYWwgPDQgeCBpMTY+IEBfWjI0X19jbV9pbnRy aW5zaWNfaW1wbF9zZGl2dTJDTXZiNF9zU18oPDQgeCBpMTY+LCA8NCB4IGkxNj4pICM3IHsKLSAg ICUzID0gYWxsb2NhIDw0IHggaTE2PiwgYWxpZ24gOAotICAgJTQgPSBhbGxvY2EgPDQgeCBpMTY+ LCBhbGlnbiA4Ci0gICAlNSA9IGFsbG9jYSA8NCB4IGkxNj4sIGFsaWduIDgKLUBAIC0xMzUwLDcg KzEzNTAsNyBAQCBkZWZpbmUgaW50ZXJuYWwgPDE2IHggaTE2PiBAX1pON2RldGFpbHMxM19faW1w bF9kaXZyZW1JTGkxNkVFRXUyQ012YlRfX3NTMV9TMV91MgotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0 dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDMyIHggaTE2PiBAX1oy NF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjMyX3NTXyg8MzIgeCBpMTY+LCA8MzIgeCBp MTY+KSAjMTMgewotK2RlZmluZSBpbnRlcm5hbCA8MzIgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5z aWNfaW1wbF9zZGl2dTJDTXZiMzJfc1NfKDwzMiB4IGkxNj4sIDwzMiB4IGkxNj4pICMxMyB7Ci0g ICAlMyA9IGFsbG9jYSA8MzIgeCBpMTY+LCBhbGlnbiA2NAotICAgJTQgPSBhbGxvY2EgPDMyIHgg aTE2PiwgYWxpZ24gNjQKLSAgICU1ID0gYWxsb2NhIDwzMiB4IGkxNj4sIGFsaWduIDY0Ci1AQCAt MTQxOSw3ICsxNDE5LDcgQEAgZGVmaW5lIGludGVybmFsIDwzMiB4IGkxNj4gQF9aTjdkZXRhaWxz MTNfX2ltcGxfZGl2cmVtSUxpMzJFRUV1MkNNdmJUX19zUzFfUzFfdTIKLSB9Ci0gCi0gOyBGdW5j dGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIHNpZ25leHQg aTE2IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtc3MoaTE2IHNpZ25leHQsIGkxNiBzaWdu ZXh0KSAjMyB7Ci0rZGVmaW5lIGludGVybmFsIHNpZ25leHQgaTE2IEBfWjI0X19jbV9pbnRyaW5z aWNfaW1wbF9zcmVtc3MoaTE2IHNpZ25leHQsIGkxNiBzaWduZXh0KSAjMyB7Ci0gICAlMyA9IGFs bG9jYSBpMTYsIGFsaWduIDIKLSAgICU0ID0gYWxsb2NhIGkxNiwgYWxpZ24gMgotICAgJTUgPSBh bGxvY2EgPDEgeCBpMTY+LCBhbGlnbiAyCi1AQCAtMTQ0NSw3ICsxNDQ1LDcgQEAgZGVmaW5lIGRz b19sb2NhbCBzaWduZXh0IGkxNiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXNzKGkxNiBz aWduZXh0LCBpMTYgc2kKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndp bmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwxIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxf c3JlbXUyQ012YjFfc1NfKDwxIHggaTE2PiwgPDEgeCBpMTY+KSAjMyB7Ci0rZGVmaW5lIGludGVy bmFsIDwxIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjFfc1NfKDwx IHggaTE2PiwgPDEgeCBpMTY+KSAjMyB7Ci0gICAlMyA9IGFsbG9jYSA8MSB4IGkxNj4sIGFsaWdu IDIKLSAgICU0ID0gYWxsb2NhIDwxIHggaTE2PiwgYWxpZ24gMgotICAgJTUgPSBhbGxvY2EgPDEg eCBpMTY+LCBhbGlnbiAyCi1AQCAtMTQ1OSw3ICsxNDU5LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8 MSB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIxX3NTXyg8MSB4IGkx Nj4sIDwKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZp bmUgZHNvX2xvY2FsIDwyIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012 YjJfc1NfKDwyIHggaTE2PiwgPDIgeCBpMTY+KSAjNSB7Ci0rZGVmaW5lIGludGVybmFsIDwyIHgg aTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjJfc1NfKDwyIHggaTE2Piwg PDIgeCBpMTY+KSAjNSB7Ci0gICAlMyA9IGFsbG9jYSA8MiB4IGkxNj4sIGFsaWduIDQKLSAgICU0 ID0gYWxsb2NhIDwyIHggaTE2PiwgYWxpZ24gNAotICAgJTUgPSBhbGxvY2EgPDIgeCBpMTY+LCBh bGlnbiA0Ci1AQCAtMTQ3Myw3ICsxNDczLDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MiB4IGkxNj4g QF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIyX3NTXyg8MiB4IGkxNj4sIDwKLSB9 Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xv Y2FsIDw0IHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjRfc1NfKDw0 IHggaTE2PiwgPDQgeCBpMTY+KSAjNyB7Ci0rZGVmaW5lIGludGVybmFsIDw0IHggaTE2PiBAX1oy NF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjRfc1NfKDw0IHggaTE2PiwgPDQgeCBpMTY+ KSAjNyB7Ci0gICAlMyA9IGFsbG9jYSA8NCB4IGkxNj4sIGFsaWduIDgKLSAgICU0ID0gYWxsb2Nh IDw0IHggaTE2PiwgYWxpZ24gOAotICAgJTUgPSBhbGxvY2EgPDQgeCBpMTY+LCBhbGlnbiA4Ci1A QCAtMTQ4Nyw3ICsxNDg3LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8NCB4IGkxNj4gQF9aMjRfX2Nt X2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmI0X3NTXyg8NCB4IGkxNj4sIDwKLSB9Ci0gCi0gOyBG dW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDw4IHgg aTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012Yjhfc1NfKDw4IHggaTE2Piwg PDggeCBpMTY+KSAjOSB7Ci0rZGVmaW5lIGludGVybmFsIDw4IHggaTE2PiBAX1oyNF9fY21faW50 cmluc2ljX2ltcGxfc3JlbXUyQ012Yjhfc1NfKDw4IHggaTE2PiwgPDggeCBpMTY+KSAjOSB7Ci0g ICAlMyA9IGFsbG9jYSA8OCB4IGkxNj4sIGFsaWduIDE2Ci0gICAlNCA9IGFsbG9jYSA8OCB4IGkx Nj4sIGFsaWduIDE2Ci0gICAlNSA9IGFsbG9jYSA8OCB4IGkxNj4sIGFsaWduIDE2Ci1AQCAtMTUw MSw3ICsxNTAxLDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8OCB4IGkxNj4gQF9aMjRfX2NtX2ludHJp bnNpY19pbXBsX3NyZW11MkNNdmI4X3NTXyg8OCB4IGkxNj4sIDwKLSB9Ci0gCi0gOyBGdW5jdGlv biBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwxNiB4IGkxNj4g QF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIxNl9zU18oPDE2IHggaTE2PiwgPDE2 IHggaTE2PikgIzExIHsKLStkZWZpbmUgaW50ZXJuYWwgPDE2IHggaTE2PiBAX1oyNF9fY21faW50 cmluc2ljX2ltcGxfc3JlbXUyQ012YjE2X3NTXyg8MTYgeCBpMTY+LCA8MTYgeCBpMTY+KSAjMTEg ewotICAgJTMgPSBhbGxvY2EgPDE2IHggaTE2PiwgYWxpZ24gMzIKLSAgICU0ID0gYWxsb2NhIDwx NiB4IGkxNj4sIGFsaWduIDMyCi0gICAlNSA9IGFsbG9jYSA8MTYgeCBpMTY+LCBhbGlnbiAzMgot QEAgLTE1MTUsNyArMTUxNSw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDE2IHggaTE2PiBAX1oyNF9f Y21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjE2X3NTXyg8MTYgeCBpMTY+Ci0gfQotIAotIDsg RnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MzIg eCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMzJfc1NfKDwzMiB4IGkx Nj4sIDwzMiB4IGkxNj4pICMxMyB7Ci0rZGVmaW5lIGludGVybmFsIDwzMiB4IGkxNj4gQF9aMjRf X2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIzMl9zU18oPDMyIHggaTE2PiwgPDMyIHggaTE2 PikgIzEzIHsKLSAgICUzID0gYWxsb2NhIDwzMiB4IGkxNj4sIGFsaWduIDY0Ci0gICAlNCA9IGFs bG9jYSA8MzIgeCBpMTY+LCBhbGlnbiA2NAotICAgJTUgPSBhbGxvY2EgPDMyIHggaTE2PiwgYWxp Z24gNjQKLUBAIC0xNTI5LDcgKzE1MjksNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwzMiB4IGkxNj4g QF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIzMl9zU18oPDMyIHggaTE2PgotIH0K LSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9j YWwgaTMyIEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2aWkoaTMyLCBpMzIpICMxNCB7Ci0r ZGVmaW5lIGludGVybmFsIGkzMiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdmlpKGkzMiwg aTMyKSAjMTQgewotICAgJTMgPSBhbGxvY2EgaTMyLCBhbGlnbiA0Ci0gICAlNCA9IGFsbG9jYSBp MzIsIGFsaWduIDQKLSAgICU1ID0gYWxsb2NhIDwxIHggaTMyPiwgYWxpZ24gNAotQEAgLTE3MzAs NyArMTczMCw3IEBAIGRlZmluZSBpbnRlcm5hbCA8MSB4IGkzMj4gQF9aTjdkZXRhaWxzMTNfX2lt cGxfZGl2cmVtSUxpMUVFRXUyQ012YlRfX2lTMV9TMV91MkNNCi0gZGVjbGFyZSA8MSB4IGkzMj4g QGxsdm0uZ2VueC5yZHJlZ2lvbmkudjFpMzIudjFpMzIuaTE2KDwxIHggaTMyPiwgaTMyLCBpMzIs IGkzMiwgaTE2LCBpMzIpICMyCi0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndp bmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwxIHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxf c2RpdnUyQ012YjFfaVNfKDwxIHggaTMyPiwgPDEgeCBpMzI+KSAjMTQgewotK2RlZmluZSBpbnRl cm5hbCA8MSB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmIxX2lTXyg8 MSB4IGkzMj4sIDwxIHggaTMyPikgIzE0IHsKLSAgICUzID0gYWxsb2NhIDwxIHggaTMyPiwgYWxp Z24gNAotICAgJTQgPSBhbGxvY2EgPDEgeCBpMzI+LCBhbGlnbiA0Ci0gICAlNSA9IGFsbG9jYSA8 MSB4IGkzMj4sIGFsaWduIDQKLUBAIC0xNzQ2LDcgKzE3NDYsNyBAQCBkZWZpbmUgZHNvX2xvY2Fs IDwxIHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjFfaVNfKDwxIHgg aTMyPiwgPAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRl ZmluZSBkc29fbG9jYWwgPDIgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJD TXZiMl9pU18oPDIgeCBpMzI+LCA8MiB4IGkzMj4pICMxNSB7Ci0rZGVmaW5lIGludGVybmFsIDwy IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjJfaVNfKDwyIHggaTMy PiwgPDIgeCBpMzI+KSAjMTUgewotICAgJTMgPSBhbGxvY2EgPDIgeCBpMzI+LCBhbGlnbiA4Ci0g ICAlNCA9IGFsbG9jYSA8MiB4IGkzMj4sIGFsaWduIDgKLSAgICU1ID0gYWxsb2NhIDwyIHggaTMy PiwgYWxpZ24gOAotQEAgLTE5MzIsNyArMTkzMiw3IEBAIGRlZmluZSBpbnRlcm5hbCA8MiB4IGkz Mj4gQF9aTjdkZXRhaWxzMTNfX2ltcGxfZGl2cmVtSUxpMkVFRXUyQ012YlRfX2lTMV9TMV91MkNN Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRz b19sb2NhbCA8NCB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmI0X2lT Xyg8NCB4IGkzMj4sIDw0IHggaTMyPikgIzE2IHsKLStkZWZpbmUgaW50ZXJuYWwgPDQgeCBpMzI+ IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZiNF9pU18oPDQgeCBpMzI+LCA8NCB4 IGkzMj4pICMxNiB7Ci0gICAlMyA9IGFsbG9jYSA8NCB4IGkzMj4sIGFsaWduIDE2Ci0gICAlNCA9 IGFsbG9jYSA8NCB4IGkzMj4sIGFsaWduIDE2Ci0gICAlNSA9IGFsbG9jYSA8NCB4IGkzMj4sIGFs aWduIDE2Ci1AQCAtMjQ5MCw3ICsyNDkwLDcgQEAgZGVmaW5lIGludGVybmFsIDwxNiB4IGkzMj4g QF9aTjdkZXRhaWxzMTNfX2ltcGxfZGl2cmVtSUxpMTZFRUV1MkNNdmJUX19pUzFfUzFfdTIKLSB9 Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xv Y2FsIDwzMiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmIzMl9pU18o PDMyIHggaTMyPiwgPDMyIHggaTMyPikgIzE5IHsKLStkZWZpbmUgaW50ZXJuYWwgPDMyIHggaTMy PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjMyX2lTXyg8MzIgeCBpMzI+LCA8 MzIgeCBpMzI+KSAjMTkgewotICAgJTMgPSBhbGxvY2EgPDMyIHggaTMyPiwgYWxpZ24gMTI4Ci0g ICAlNCA9IGFsbG9jYSA8MzIgeCBpMzI+LCBhbGlnbiAxMjgKLSAgICU1ID0gYWxsb2NhIDwzMiB4 IGkzMj4sIGFsaWduIDEyOAotQEAgLTI2NzYsNyArMjY3Niw3IEBAIGRlZmluZSBpbnRlcm5hbCA8 MzIgeCBpMzI+IEBfWk43ZGV0YWlsczEzX19pbXBsX2RpdnJlbUlMaTMyRUVFdTJDTXZiVF9faVMx X1MxX3UyCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVm aW5lIGRzb19sb2NhbCBpMzIgQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW1paShpMzIsIGkz MikgIzE0IHsKLStkZWZpbmUgaW50ZXJuYWwgaTMyIEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9z cmVtaWkoaTMyLCBpMzIpICMxNCB7Ci0gICAlMyA9IGFsbG9jYSBpMzIsIGFsaWduIDQKLSAgICU0 ID0gYWxsb2NhIGkzMiwgYWxpZ24gNAotICAgJTUgPSBhbGxvY2EgPDEgeCBpMzI+LCBhbGlnbiA0 Ci1AQCAtMjcwMiw3ICsyNzAyLDcgQEAgZGVmaW5lIGRzb19sb2NhbCBpMzIgQF9aMjRfX2NtX2lu dHJpbnNpY19pbXBsX3NyZW1paShpMzIsIGkzMikgIzE0IHsKLSB9Ci0gCi0gOyBGdW5jdGlvbiBB dHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwxIHggaTMyPiBAX1oy NF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjFfaVNfKDwxIHggaTMyPiwgPDEgeCBpMzI+ KSAjMTQgewotK2RlZmluZSBpbnRlcm5hbCA8MSB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19p bXBsX3NyZW11MkNNdmIxX2lTXyg8MSB4IGkzMj4sIDwxIHggaTMyPikgIzE0IHsKLSAgICUzID0g YWxsb2NhIDwxIHggaTMyPiwgYWxpZ24gNAotICAgJTQgPSBhbGxvY2EgPDEgeCBpMzI+LCBhbGln biA0Ci0gICAlNSA9IGFsbG9jYSA8MSB4IGkzMj4sIGFsaWduIDQKLUBAIC0yNzE2LDcgKzI3MTYs NyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwxIHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxf c3JlbXUyQ012YjFfaVNfKDwxIHggaTMyPiwgPAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBu b2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDIgeCBpMzI+IEBfWjI0X19jbV9p bnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMl9pU18oPDIgeCBpMzI+LCA8MiB4IGkzMj4pICMxNSB7 Ci0rZGVmaW5lIGludGVybmFsIDwyIHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3Jl bXUyQ012YjJfaVNfKDwyIHggaTMyPiwgPDIgeCBpMzI+KSAjMTUgewotICAgJTMgPSBhbGxvY2Eg PDIgeCBpMzI+LCBhbGlnbiA4Ci0gICAlNCA9IGFsbG9jYSA8MiB4IGkzMj4sIGFsaWduIDgKLSAg ICU1ID0gYWxsb2NhIDwyIHggaTMyPiwgYWxpZ24gOAotQEAgLTI3MzAsNyArMjczMCw3IEBAIGRl ZmluZSBkc29fbG9jYWwgPDIgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJD TXZiMl9pU18oPDIgeCBpMzI+LCA8Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5l IG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8NCB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNp Y19pbXBsX3NyZW11MkNNdmI0X2lTXyg8NCB4IGkzMj4sIDw0IHggaTMyPikgIzE2IHsKLStkZWZp bmUgaW50ZXJuYWwgPDQgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZi NF9pU18oPDQgeCBpMzI+LCA8NCB4IGkzMj4pICMxNiB7Ci0gICAlMyA9IGFsbG9jYSA8NCB4IGkz Mj4sIGFsaWduIDE2Ci0gICAlNCA9IGFsbG9jYSA8NCB4IGkzMj4sIGFsaWduIDE2Ci0gICAlNSA9 IGFsbG9jYSA8NCB4IGkzMj4sIGFsaWduIDE2Ci1AQCAtMjc0NCw3ICsyNzQ0LDcgQEAgZGVmaW5l IGRzb19sb2NhbCA8NCB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmI0 X2lTXyg8NCB4IGkzMj4sIDwKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91 bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDw4IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2lt cGxfc3JlbXUyQ012YjhfaVNfKDw4IHggaTMyPiwgPDggeCBpMzI+KSAjMTcgewotK2RlZmluZSBp bnRlcm5hbCA8OCB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmI4X2lT Xyg8OCB4IGkzMj4sIDw4IHggaTMyPikgIzE3IHsKLSAgICUzID0gYWxsb2NhIDw4IHggaTMyPiwg YWxpZ24gMzIKLSAgICU0ID0gYWxsb2NhIDw4IHggaTMyPiwgYWxpZ24gMzIKLSAgICU1ID0gYWxs b2NhIDw4IHggaTMyPiwgYWxpZ24gMzIKLUBAIC0yNzU4LDcgKzI3NTgsNyBAQCBkZWZpbmUgZHNv X2xvY2FsIDw4IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjhfaVNf KDw4IHggaTMyPiwgPAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2lu ZAotLWRlZmluZSBkc29fbG9jYWwgPDE2IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxf c3JlbXUyQ012YjE2X2lTXyg8MTYgeCBpMzI+LCA8MTYgeCBpMzI+KSAjMTggewotK2RlZmluZSBp bnRlcm5hbCA8MTYgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMTZf aVNfKDwxNiB4IGkzMj4sIDwxNiB4IGkzMj4pICMxOCB7Ci0gICAlMyA9IGFsbG9jYSA8MTYgeCBp MzI+LCBhbGlnbiA2NAotICAgJTQgPSBhbGxvY2EgPDE2IHggaTMyPiwgYWxpZ24gNjQKLSAgICU1 ID0gYWxsb2NhIDwxNiB4IGkzMj4sIGFsaWduIDY0Ci1AQCAtMjc3Miw3ICsyNzcyLDcgQEAgZGVm aW5lIGRzb19sb2NhbCA8MTYgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJD TXZiMTZfaVNfKDwxNiB4IGkzMj4KLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUg bm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwzMiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNp Y19pbXBsX3NyZW11MkNNdmIzMl9pU18oPDMyIHggaTMyPiwgPDMyIHggaTMyPikgIzE5IHsKLStk ZWZpbmUgaW50ZXJuYWwgPDMyIHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUy Q012YjMyX2lTXyg8MzIgeCBpMzI+LCA8MzIgeCBpMzI+KSAjMTkgewotICAgJTMgPSBhbGxvY2Eg PDMyIHggaTMyPiwgYWxpZ24gMTI4Ci0gICAlNCA9IGFsbG9jYSA8MzIgeCBpMzI+LCBhbGlnbiAx MjgKLSAgICU1ID0gYWxsb2NhIDwzMiB4IGkzMj4sIGFsaWduIDEyOAotQEAgLTI3ODYsNyArMjc4 Niw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDMyIHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2lt cGxfc3JlbXUyQ012YjMyX2lTXyg8MzIgeCBpMzI+Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6 IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCB6ZXJvZXh0IGk4IEBfWjI0X19j bV9pbnRyaW5zaWNfaW1wbF91ZGl2aGgoaTggemVyb2V4dCwgaTggemVyb2V4dCkgIzIxIHsKLStk ZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpOCBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRpdmho KGk4IHplcm9leHQsIGk4IHplcm9leHQpICMyMSB7Ci0gICAlMyA9IGFsbG9jYSBpOCwgYWxpZ24g MQotICAgJTQgPSBhbGxvY2EgaTgsIGFsaWduIDEKLSAgICU1ID0gYWxsb2NhIDwxIHggaTg+LCBh bGlnbiAxCi1AQCAtMjg0NCw3ICsyODQ0LDcgQEAgZGVmaW5lIGludGVybmFsIDwxIHggaTg+IEBf Wk43ZGV0YWlsczE0X19pbXBsX3VkaXZyZW1JTGkxRUVFdTJDTXZiVF9faFMxX1MxX3UyQ00KLSB9 Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xv Y2FsIDwxIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZiMV9oU18oPDEg eCBpOD4sIDwxIHggaTg+KSAjMjEgewotK2RlZmluZSBpbnRlcm5hbCA8MSB4IGk4PiBAX1oyNF9f Y21faW50cmluc2ljX2ltcGxfdWRpdnUyQ012YjFfaFNfKDwxIHggaTg+LCA8MSB4IGk4PikgIzIx IHsKLSAgICUzID0gYWxsb2NhIDwxIHggaTg+LCBhbGlnbiAxCi0gICAlNCA9IGFsbG9jYSA8MSB4 IGk4PiwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2EgPDEgeCBpOD4sIGFsaWduIDEKLUBAIC0yODYw LDcgKzI4NjAsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwxIHggaTg+IEBfWjI0X19jbV9pbnRyaW5z aWNfaW1wbF91ZGl2dTJDTXZiMV9oU18oPDEgeCBpOD4sIDwxCi0gfQotIAotIDsgRnVuY3Rpb24g QXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MiB4IGk4PiBAX1oy NF9fY21faW50cmluc2ljX2ltcGxfdWRpdnUyQ012YjJfaFNfKDwyIHggaTg+LCA8MiB4IGk4Pikg IzIyIHsKLStkZWZpbmUgaW50ZXJuYWwgPDIgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBs X3VkaXZ1MkNNdmIyX2hTXyg8MiB4IGk4PiwgPDIgeCBpOD4pICMyMiB7Ci0gICAlMyA9IGFsbG9j YSA8MiB4IGk4PiwgYWxpZ24gMgotICAgJTQgPSBhbGxvY2EgPDIgeCBpOD4sIGFsaWduIDIKLSAg ICU1ID0gYWxsb2NhIDwyIHggaTg+LCBhbGlnbiAyCi1AQCAtMjkwNiw3ICsyOTA2LDcgQEAgZGVm aW5lIGludGVybmFsIDwyIHggaTg+IEBfWk43ZGV0YWlsczE0X19pbXBsX3VkaXZyZW1JTGkyRUVF dTJDTXZiVF9faFMxX1MxX3UyQ00KLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUg bm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDw0IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNf aW1wbF91ZGl2dTJDTXZiNF9oU18oPDQgeCBpOD4sIDw0IHggaTg+KSAjMTQgewotK2RlZmluZSBp bnRlcm5hbCA8NCB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRpdnUyQ012YjRfaFNf KDw0IHggaTg+LCA8NCB4IGk4PikgIzE0IHsKLSAgICUzID0gYWxsb2NhIDw0IHggaTg+LCBhbGln biA0Ci0gICAlNCA9IGFsbG9jYSA8NCB4IGk4PiwgYWxpZ24gNAotICAgJTUgPSBhbGxvY2EgPDQg eCBpOD4sIGFsaWduIDQKLUBAIC0zMDQ0LDcgKzMwNDQsNyBAQCBkZWZpbmUgaW50ZXJuYWwgPDE2 IHggaTg+IEBfWk43ZGV0YWlsczE0X19pbXBsX3VkaXZyZW1JTGkxNkVFRXUyQ012YlRfX2hTMV9T MV91MgotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmlu ZSBkc29fbG9jYWwgPDMyIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZi MzJfaFNfKDwzMiB4IGk4PiwgPDMyIHggaTg+KSAjMTcgewotK2RlZmluZSBpbnRlcm5hbCA8MzIg eCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1MkNNdmIzMl9oU18oPDMyIHggaTg+ LCA8MzIgeCBpOD4pICMxNyB7Ci0gICAlMyA9IGFsbG9jYSA8MzIgeCBpOD4sIGFsaWduIDMyCi0g ICAlNCA9IGFsbG9jYSA8MzIgeCBpOD4sIGFsaWduIDMyCi0gICAlNSA9IGFsbG9jYSA8MzIgeCBp OD4sIGFsaWduIDMyCi1AQCAtMzA5MCw3ICszMDkwLDcgQEAgZGVmaW5lIGludGVybmFsIDwzMiB4 IGk4PiBAX1pON2RldGFpbHMxNF9faW1wbF91ZGl2cmVtSUxpMzJFRUV1MkNNdmJUX19oUzFfUzFf dTIKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUg ZHNvX2xvY2FsIHplcm9leHQgaTggQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW1oaChpOCB6 ZXJvZXh0LCBpOCB6ZXJvZXh0KSAjMjEgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGk4IEBf WjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtaGgoaTggemVyb2V4dCwgaTggemVyb2V4dCkgIzIx IHsKLSAgICUzID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0gICAlNCA9IGFsbG9jYSBpOCwgYWxpZ24g MQotICAgJTUgPSBhbGxvY2EgPDEgeCBpOD4sIGFsaWduIDEKLUBAIC0zMTE2LDcgKzMxMTYsNyBA QCBkZWZpbmUgZHNvX2xvY2FsIHplcm9leHQgaTggQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3Vy ZW1oaChpOCB6ZXJvZXh0LCBpOCB6ZXJvZQotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lu bGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDEgeCBpOD4gQF9aMjRfX2NtX2ludHJp bnNpY19pbXBsX3VyZW11MkNNdmIxX2hTXyg8MSB4IGk4PiwgPDEgeCBpOD4pICMyMSB7Ci0rZGVm aW5lIGludGVybmFsIDwxIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZi MV9oU18oPDEgeCBpOD4sIDwxIHggaTg+KSAjMjEgewotICAgJTMgPSBhbGxvY2EgPDEgeCBpOD4s IGFsaWduIDEKLSAgICU0ID0gYWxsb2NhIDwxIHggaTg+LCBhbGlnbiAxCi0gICAlNSA9IGFsbG9j YSA8MSB4IGk4PiwgYWxpZ24gMQotQEAgLTMxMzAsNyArMzEzMCw3IEBAIGRlZmluZSBkc29fbG9j YWwgPDEgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIxX2hTXyg8MSB4 IGk4PiwgPDEKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1k ZWZpbmUgZHNvX2xvY2FsIDwyIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJD TXZiMl9oU18oPDIgeCBpOD4sIDwyIHggaTg+KSAjMjIgewotK2RlZmluZSBpbnRlcm5hbCA8MiB4 IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjJfaFNfKDwyIHggaTg+LCA8 MiB4IGk4PikgIzIyIHsKLSAgICUzID0gYWxsb2NhIDwyIHggaTg+LCBhbGlnbiAyCi0gICAlNCA9 IGFsbG9jYSA8MiB4IGk4PiwgYWxpZ24gMgotICAgJTUgPSBhbGxvY2EgPDIgeCBpOD4sIGFsaWdu IDIKLUBAIC0zMTQ0LDcgKzMxNDQsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwyIHggaTg+IEBfWjI0 X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMl9oU18oPDIgeCBpOD4sIDwyCi0gfQotIAot IDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8 NCB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjRfaFNfKDw0IHggaTg+ LCA8NCB4IGk4PikgIzE0IHsKLStkZWZpbmUgaW50ZXJuYWwgPDQgeCBpOD4gQF9aMjRfX2NtX2lu dHJpbnNpY19pbXBsX3VyZW11MkNNdmI0X2hTXyg8NCB4IGk4PiwgPDQgeCBpOD4pICMxNCB7Ci0g ICAlMyA9IGFsbG9jYSA8NCB4IGk4PiwgYWxpZ24gNAotICAgJTQgPSBhbGxvY2EgPDQgeCBpOD4s IGFsaWduIDQKLSAgICU1ID0gYWxsb2NhIDw0IHggaTg+LCBhbGlnbiA0Ci1AQCAtMzE1OCw3ICsz MTU4LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8NCB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2lt cGxfdXJlbXUyQ012YjRfaFNfKDw0IHggaTg+LCA8NAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJz OiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDggeCBpOD4gQF9aMjRfX2Nt X2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmI4X2hTXyg8OCB4IGk4PiwgPDggeCBpOD4pICMxNSB7 Ci0rZGVmaW5lIGludGVybmFsIDw4IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVt dTJDTXZiOF9oU18oPDggeCBpOD4sIDw4IHggaTg+KSAjMTUgewotICAgJTMgPSBhbGxvY2EgPDgg eCBpOD4sIGFsaWduIDgKLSAgICU0ID0gYWxsb2NhIDw4IHggaTg+LCBhbGlnbiA4Ci0gICAlNSA9 IGFsbG9jYSA8OCB4IGk4PiwgYWxpZ24gOAotQEAgLTMxNzIsNyArMzE3Miw3IEBAIGRlZmluZSBk c29fbG9jYWwgPDggeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmI4X2hT Xyg8OCB4IGk4PiwgPDgKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndp bmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwxNiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxf dXJlbXUyQ012YjE2X2hTXyg8MTYgeCBpOD4sIDwxNiB4IGk4PikgIzE2IHsKLStkZWZpbmUgaW50 ZXJuYWwgPDE2IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMTZfaFNf KDwxNiB4IGk4PiwgPDE2IHggaTg+KSAjMTYgewotICAgJTMgPSBhbGxvY2EgPDE2IHggaTg+LCBh bGlnbiAxNgotICAgJTQgPSBhbGxvY2EgPDE2IHggaTg+LCBhbGlnbiAxNgotICAgJTUgPSBhbGxv Y2EgPDE2IHggaTg+LCBhbGlnbiAxNgotQEAgLTMxODYsNyArMzE4Niw3IEBAIGRlZmluZSBkc29f bG9jYWwgPDE2IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMTZfaFNf KDwxNiB4IGk4PiwKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQK LS1kZWZpbmUgZHNvX2xvY2FsIDwzMiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJl bXUyQ012YjMyX2hTXyg8MzIgeCBpOD4sIDwzMiB4IGk4PikgIzE3IHsKLStkZWZpbmUgaW50ZXJu YWwgPDMyIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMzJfaFNfKDwz MiB4IGk4PiwgPDMyIHggaTg+KSAjMTcgewotICAgJTMgPSBhbGxvY2EgPDMyIHggaTg+LCBhbGln biAzMgotICAgJTQgPSBhbGxvY2EgPDMyIHggaTg+LCBhbGlnbiAzMgotICAgJTUgPSBhbGxvY2Eg PDMyIHggaTg+LCBhbGlnbiAzMgotQEAgLTMyMDAsNyArMzIwMCw3IEBAIGRlZmluZSBkc29fbG9j YWwgPDMyIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMzJfaFNfKDwz MiB4IGk4PiwKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1k ZWZpbmUgZHNvX2xvY2FsIHplcm9leHQgaTE2IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2 dHQoaTE2IHplcm9leHQsIGkxNiB6ZXJvZXh0KSAjMjIgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJv ZXh0IGkxNiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRpdnR0KGkxNiB6ZXJvZXh0LCBpMTYg emVyb2V4dCkgIzIyIHsKLSAgICUzID0gYWxsb2NhIGkxNiwgYWxpZ24gMgotICAgJTQgPSBhbGxv Y2EgaTE2LCBhbGlnbiAyCi0gICAlNSA9IGFsbG9jYSA8MSB4IGkxNj4sIGFsaWduIDIKLUBAIC0z Mjc4LDcgKzMyNzgsNyBAQCBkZWZpbmUgaW50ZXJuYWwgPDEgeCBpMTY+IEBfWk43ZGV0YWlsczE0 X19pbXBsX3VkaXZyZW1JTGkxRUVFdTJDTXZiVF9fdFMxX1MxX3UyQwotIH0KLSAKLSA7IEZ1bmN0 aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDEgeCBpMTY+ IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZiMV90U18oPDEgeCBpMTY+LCA8MSB4 IGkxNj4pICMyMiB7Ci0rZGVmaW5lIGludGVybmFsIDwxIHggaTE2PiBAX1oyNF9fY21faW50cmlu c2ljX2ltcGxfdWRpdnUyQ012YjFfdFNfKDwxIHggaTE2PiwgPDEgeCBpMTY+KSAjMjIgewotICAg JTMgPSBhbGxvY2EgPDEgeCBpMTY+LCBhbGlnbiAyCi0gICAlNCA9IGFsbG9jYSA8MSB4IGkxNj4s IGFsaWduIDIKLSAgICU1ID0gYWxsb2NhIDwxIHggaTE2PiwgYWxpZ24gMgotQEAgLTMyOTQsNyAr MzI5NCw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDEgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNf aW1wbF91ZGl2dTJDTXZiMV90U18oPDEgeCBpMTY+LCA8Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0 cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MiB4IGkxNj4gQF9aMjRf X2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1MkNNdmIyX3RTXyg8MiB4IGkxNj4sIDwyIHggaTE2Pikg IzE0IHsKLStkZWZpbmUgaW50ZXJuYWwgPDIgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1w bF91ZGl2dTJDTXZiMl90U18oPDIgeCBpMTY+LCA8MiB4IGkxNj4pICMxNCB7Ci0gICAlMyA9IGFs bG9jYSA8MiB4IGkxNj4sIGFsaWduIDQKLSAgICU0ID0gYWxsb2NhIDwyIHggaTE2PiwgYWxpZ24g NAotICAgJTUgPSBhbGxvY2EgPDIgeCBpMTY+LCBhbGlnbiA0Ci1AQCAtMzM2MCw3ICszMzYwLDcg QEAgZGVmaW5lIGludGVybmFsIDwyIHggaTE2PiBAX1pON2RldGFpbHMxNF9faW1wbF91ZGl2cmVt SUxpMkVFRXUyQ012YlRfX3RTMV9TMV91MkMKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9p bmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDw0IHggaTE2PiBAX1oyNF9fY21faW50 cmluc2ljX2ltcGxfdWRpdnUyQ012YjRfdFNfKDw0IHggaTE2PiwgPDQgeCBpMTY+KSAjMTUgewot K2RlZmluZSBpbnRlcm5hbCA8NCB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1 MkNNdmI0X3RTXyg8NCB4IGkxNj4sIDw0IHggaTE2PikgIzE1IHsKLSAgICUzID0gYWxsb2NhIDw0 IHggaTE2PiwgYWxpZ24gOAotICAgJTQgPSBhbGxvY2EgPDQgeCBpMTY+LCBhbGlnbiA4Ci0gICAl NSA9IGFsbG9jYSA8NCB4IGkxNj4sIGFsaWduIDgKLUBAIC0zNTU4LDcgKzM1NTgsNyBAQCBkZWZp bmUgaW50ZXJuYWwgPDE2IHggaTE2PiBAX1pON2RldGFpbHMxNF9faW1wbF91ZGl2cmVtSUxpMTZF RUV1MkNNdmJUX190UzFfUzFfdQotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBu b3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDMyIHggaTE2PiBAX1oyNF9fY21faW50cmluc2lj X2ltcGxfdWRpdnUyQ012YjMyX3RTXyg8MzIgeCBpMTY+LCA8MzIgeCBpMTY+KSAjMTggewotK2Rl ZmluZSBpbnRlcm5hbCA8MzIgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJD TXZiMzJfdFNfKDwzMiB4IGkxNj4sIDwzMiB4IGkxNj4pICMxOCB7Ci0gICAlMyA9IGFsbG9jYSA8 MzIgeCBpMTY+LCBhbGlnbiA2NAotICAgJTQgPSBhbGxvY2EgPDMyIHggaTE2PiwgYWxpZ24gNjQK LSAgICU1ID0gYWxsb2NhIDwzMiB4IGkxNj4sIGFsaWduIDY0Ci1AQCAtMzYyNCw3ICszNjI0LDcg QEAgZGVmaW5lIGludGVybmFsIDwzMiB4IGkxNj4gQF9aTjdkZXRhaWxzMTRfX2ltcGxfdWRpdnJl bUlMaTMyRUVFdTJDTXZiVF9fdFMxX1MxX3UKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9p bmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIHplcm9leHQgaTE2IEBfWjI0X19jbV9p bnRyaW5zaWNfaW1wbF91cmVtdHQoaTE2IHplcm9leHQsIGkxNiB6ZXJvZXh0KSAjMjIgewotK2Rl ZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxNiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXR0 KGkxNiB6ZXJvZXh0LCBpMTYgemVyb2V4dCkgIzIyIHsKLSAgICUzID0gYWxsb2NhIGkxNiwgYWxp Z24gMgotICAgJTQgPSBhbGxvY2EgaTE2LCBhbGlnbiAyCi0gICAlNSA9IGFsbG9jYSA8MSB4IGkx Nj4sIGFsaWduIDIKLUBAIC0zNjUwLDcgKzM2NTAsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIHplcm9l eHQgaTE2IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdHQoaTE2IHplcm9leHQsIGkxNiB6 ZQotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBk c29fbG9jYWwgPDEgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMV90 U18oPDEgeCBpMTY+LCA8MSB4IGkxNj4pICMyMiB7Ci0rZGVmaW5lIGludGVybmFsIDwxIHggaTE2 PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjFfdFNfKDwxIHggaTE2PiwgPDEg eCBpMTY+KSAjMjIgewotICAgJTMgPSBhbGxvY2EgPDEgeCBpMTY+LCBhbGlnbiAyCi0gICAlNCA9 IGFsbG9jYSA8MSB4IGkxNj4sIGFsaWduIDIKLSAgICU1ID0gYWxsb2NhIDwxIHggaTE2PiwgYWxp Z24gMgotQEAgLTM2NjQsNyArMzY2NCw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDEgeCBpMTY+IEBf WjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMV90U18oPDEgeCBpMTY+LCA8Ci0gfQot IAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2Nh bCA8MiB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIyX3RTXyg8MiB4 IGkxNj4sIDwyIHggaTE2PikgIzE0IHsKLStkZWZpbmUgaW50ZXJuYWwgPDIgeCBpMTY+IEBfWjI0 X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMl90U18oPDIgeCBpMTY+LCA8MiB4IGkxNj4p ICMxNCB7Ci0gICAlMyA9IGFsbG9jYSA8MiB4IGkxNj4sIGFsaWduIDQKLSAgICU0ID0gYWxsb2Nh IDwyIHggaTE2PiwgYWxpZ24gNAotICAgJTUgPSBhbGxvY2EgPDIgeCBpMTY+LCBhbGlnbiA0Ci1A QCAtMzY3OCw3ICszNjc4LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MiB4IGkxNj4gQF9aMjRfX2Nt X2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIyX3RTXyg8MiB4IGkxNj4sIDwKLSB9Ci0gCi0gOyBG dW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDw0IHgg aTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjRfdFNfKDw0IHggaTE2Piwg PDQgeCBpMTY+KSAjMTUgewotK2RlZmluZSBpbnRlcm5hbCA8NCB4IGkxNj4gQF9aMjRfX2NtX2lu dHJpbnNpY19pbXBsX3VyZW11MkNNdmI0X3RTXyg8NCB4IGkxNj4sIDw0IHggaTE2PikgIzE1IHsK LSAgICUzID0gYWxsb2NhIDw0IHggaTE2PiwgYWxpZ24gOAotICAgJTQgPSBhbGxvY2EgPDQgeCBp MTY+LCBhbGlnbiA4Ci0gICAlNSA9IGFsbG9jYSA8NCB4IGkxNj4sIGFsaWduIDgKLUBAIC0zNjky LDcgKzM2OTIsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDw0IHggaTE2PiBAX1oyNF9fY21faW50cmlu c2ljX2ltcGxfdXJlbXUyQ012YjRfdFNfKDw0IHggaTE2PiwgPAotIH0KLSAKLSA7IEZ1bmN0aW9u IEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDggeCBpMTY+IEBf WjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiOF90U18oPDggeCBpMTY+LCA8OCB4IGkx Nj4pICMxNiB7Ci0rZGVmaW5lIGludGVybmFsIDw4IHggaTE2PiBAX1oyNF9fY21faW50cmluc2lj X2ltcGxfdXJlbXUyQ012YjhfdFNfKDw4IHggaTE2PiwgPDggeCBpMTY+KSAjMTYgewotICAgJTMg PSBhbGxvY2EgPDggeCBpMTY+LCBhbGlnbiAxNgotICAgJTQgPSBhbGxvY2EgPDggeCBpMTY+LCBh bGlnbiAxNgotICAgJTUgPSBhbGxvY2EgPDggeCBpMTY+LCBhbGlnbiAxNgotQEAgLTM3MDYsNyAr MzcwNiw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDggeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNf aW1wbF91cmVtdTJDTXZiOF90U18oPDggeCBpMTY+LCA8Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0 cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MTYgeCBpMTY+IEBfWjI0 X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMTZfdFNfKDwxNiB4IGkxNj4sIDwxNiB4IGkx Nj4pICMxNyB7Ci0rZGVmaW5lIGludGVybmFsIDwxNiB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNp Y19pbXBsX3VyZW11MkNNdmIxNl90U18oPDE2IHggaTE2PiwgPDE2IHggaTE2PikgIzE3IHsKLSAg ICUzID0gYWxsb2NhIDwxNiB4IGkxNj4sIGFsaWduIDMyCi0gICAlNCA9IGFsbG9jYSA8MTYgeCBp MTY+LCBhbGlnbiAzMgotICAgJTUgPSBhbGxvY2EgPDE2IHggaTE2PiwgYWxpZ24gMzIKLUBAIC0z NzIwLDcgKzM3MjAsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwxNiB4IGkxNj4gQF9aMjRfX2NtX2lu dHJpbnNpY19pbXBsX3VyZW11MkNNdmIxNl90U18oPDE2IHggaTE2PgotIH0KLSAKLSA7IEZ1bmN0 aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDMyIHggaTE2 PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjMyX3RTXyg8MzIgeCBpMTY+LCA8 MzIgeCBpMTY+KSAjMTggewotK2RlZmluZSBpbnRlcm5hbCA8MzIgeCBpMTY+IEBfWjI0X19jbV9p bnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMzJfdFNfKDwzMiB4IGkxNj4sIDwzMiB4IGkxNj4pICMx OCB7Ci0gICAlMyA9IGFsbG9jYSA8MzIgeCBpMTY+LCBhbGlnbiA2NAotICAgJTQgPSBhbGxvY2Eg PDMyIHggaTE2PiwgYWxpZ24gNjQKLSAgICU1ID0gYWxsb2NhIDwzMiB4IGkxNj4sIGFsaWduIDY0 Ci1AQCAtMzczNCw3ICszNzM0LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MzIgeCBpMTY+IEBfWjI0 X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMzJfdFNfKDwzMiB4IGkxNj4KLSB9Ci0gCi0g OyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIGkz MiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRpdmpqKGkzMiwgaTMyKSAjMTQgewotK2RlZmlu ZSBpbnRlcm5hbCBpMzIgQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZqaihpMzIsIGkzMikg IzE0IHsKLSAgICUzID0gYWxsb2NhIGkzMiwgYWxpZ24gNAotICAgJTQgPSBhbGxvY2EgaTMyLCBh bGlnbiA0Ci0gICAlNSA9IGFsbG9jYSA8MSB4IGkzMj4sIGFsaWduIDQKLUBAIC0zODkyLDcgKzM4 OTIsNyBAQCBkZWZpbmUgaW50ZXJuYWwgPDEgeCBpMzI+IEBfWk43ZGV0YWlsczE0X19pbXBsX3Vk aXZyZW1JTGkxRUVFdTJDTXZiVF9falMxX1MxX3UyQwotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJz OiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDEgeCBpMzI+IEBfWjI0X19j bV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZiMV9qU18oPDEgeCBpMzI+LCA8MSB4IGkzMj4pICMx NCB7Ci0rZGVmaW5lIGludGVybmFsIDwxIHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxf dWRpdnUyQ012YjFfalNfKDwxIHggaTMyPiwgPDEgeCBpMzI+KSAjMTQgewotICAgJTMgPSBhbGxv Y2EgPDEgeCBpMzI+LCBhbGlnbiA0Ci0gICAlNCA9IGFsbG9jYSA8MSB4IGkzMj4sIGFsaWduIDQK LSAgICU1ID0gYWxsb2NhIDwxIHggaTMyPiwgYWxpZ24gNAotQEAgLTM5MDgsNyArMzkwOCw3IEBA IGRlZmluZSBkc29fbG9jYWwgPDEgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2 dTJDTXZiMV9qU18oPDEgeCBpMzI+LCA8Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5s aW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MiB4IGkzMj4gQF9aMjRfX2NtX2ludHJp bnNpY19pbXBsX3VkaXZ1MkNNdmIyX2pTXyg8MiB4IGkzMj4sIDwyIHggaTMyPikgIzE1IHsKLStk ZWZpbmUgaW50ZXJuYWwgPDIgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJD TXZiMl9qU18oPDIgeCBpMzI+LCA8MiB4IGkzMj4pICMxNSB7Ci0gICAlMyA9IGFsbG9jYSA8MiB4 IGkzMj4sIGFsaWduIDgKLSAgICU0ID0gYWxsb2NhIDwyIHggaTMyPiwgYWxpZ24gOAotICAgJTUg PSBhbGxvY2EgPDIgeCBpMzI+LCBhbGlnbiA4Ci1AQCAtNDA1NCw3ICs0MDU0LDcgQEAgZGVmaW5l IGludGVybmFsIDwyIHggaTMyPiBAX1pON2RldGFpbHMxNF9faW1wbF91ZGl2cmVtSUxpMkVFRXUy Q012YlRfX2pTMV9TMV91MkMKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91 bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDw0IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2lt cGxfdWRpdnUyQ012YjRfalNfKDw0IHggaTMyPiwgPDQgeCBpMzI+KSAjMTYgewotK2RlZmluZSBp bnRlcm5hbCA8NCB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1MkNNdmI0X2pT Xyg8NCB4IGkzMj4sIDw0IHggaTMyPikgIzE2IHsKLSAgICUzID0gYWxsb2NhIDw0IHggaTMyPiwg YWxpZ24gMTYKLSAgICU0ID0gYWxsb2NhIDw0IHggaTMyPiwgYWxpZ24gMTYKLSAgICU1ID0gYWxs b2NhIDw0IHggaTMyPiwgYWxpZ24gMTYKLUBAIC00NDkyLDcgKzQ0OTIsNyBAQCBkZWZpbmUgaW50 ZXJuYWwgPDE2IHggaTMyPiBAX1pON2RldGFpbHMxNF9faW1wbF91ZGl2cmVtSUxpMTZFRUV1MkNN dmJUX19qUzFfUzFfdQotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2lu ZAotLWRlZmluZSBkc29fbG9jYWwgPDMyIHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxf dWRpdnUyQ012YjMyX2pTXyg8MzIgeCBpMzI+LCA8MzIgeCBpMzI+KSAjMTkgewotK2RlZmluZSBp bnRlcm5hbCA8MzIgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZiMzJf alNfKDwzMiB4IGkzMj4sIDwzMiB4IGkzMj4pICMxOSB7Ci0gICAlMyA9IGFsbG9jYSA8MzIgeCBp MzI+LCBhbGlnbiAxMjgKLSAgICU0ID0gYWxsb2NhIDwzMiB4IGkzMj4sIGFsaWduIDEyOAotICAg JTUgPSBhbGxvY2EgPDMyIHggaTMyPiwgYWxpZ24gMTI4Ci1AQCAtNDYzOCw3ICs0NjM4LDcgQEAg ZGVmaW5lIGludGVybmFsIDwzMiB4IGkzMj4gQF9aTjdkZXRhaWxzMTRfX2ltcGxfdWRpdnJlbUlM aTMyRUVFdTJDTXZiVF9falMxX1MxX3UKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxp bmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIGkzMiBAX1oyNF9fY21faW50cmluc2ljX2lt cGxfdXJlbWpqKGkzMiwgaTMyKSAjMTQgewotK2RlZmluZSBpbnRlcm5hbCBpMzIgQF9aMjRfX2Nt X2ludHJpbnNpY19pbXBsX3VyZW1qaihpMzIsIGkzMikgIzE0IHsKLSAgICUzID0gYWxsb2NhIGkz MiwgYWxpZ24gNAotICAgJTQgPSBhbGxvY2EgaTMyLCBhbGlnbiA0Ci0gICAlNSA9IGFsbG9jYSA8 MSB4IGkzMj4sIGFsaWduIDQKLUBAIC00NjY0LDcgKzQ2NjQsNyBAQCBkZWZpbmUgZHNvX2xvY2Fs IGkzMiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbWpqKGkzMiwgaTMyKSAjMTQgewotIH0K LSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9j YWwgPDEgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMV9qU18oPDEg eCBpMzI+LCA8MSB4IGkzMj4pICMxNCB7Ci0rZGVmaW5lIGludGVybmFsIDwxIHggaTMyPiBAX1oy NF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjFfalNfKDwxIHggaTMyPiwgPDEgeCBpMzI+ KSAjMTQgewotICAgJTMgPSBhbGxvY2EgPDEgeCBpMzI+LCBhbGlnbiA0Ci0gICAlNCA9IGFsbG9j YSA8MSB4IGkzMj4sIGFsaWduIDQKLSAgICU1ID0gYWxsb2NhIDwxIHggaTMyPiwgYWxpZ24gNAot QEAgLTQ2NzgsNyArNDY3OCw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDEgeCBpMzI+IEBfWjI0X19j bV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMV9qU18oPDEgeCBpMzI+LCA8Ci0gfQotIAotIDsg RnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MiB4 IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIyX2pTXyg8MiB4IGkzMj4s IDwyIHggaTMyPikgIzE1IHsKLStkZWZpbmUgaW50ZXJuYWwgPDIgeCBpMzI+IEBfWjI0X19jbV9p bnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMl9qU18oPDIgeCBpMzI+LCA8MiB4IGkzMj4pICMxNSB7 Ci0gICAlMyA9IGFsbG9jYSA8MiB4IGkzMj4sIGFsaWduIDgKLSAgICU0ID0gYWxsb2NhIDwyIHgg aTMyPiwgYWxpZ24gOAotICAgJTUgPSBhbGxvY2EgPDIgeCBpMzI+LCBhbGlnbiA4Ci1AQCAtNDY5 Miw3ICs0NjkyLDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MiB4IGkzMj4gQF9aMjRfX2NtX2ludHJp bnNpY19pbXBsX3VyZW11MkNNdmIyX2pTXyg8MiB4IGkzMj4sIDwKLSB9Ci0gCi0gOyBGdW5jdGlv biBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDw0IHggaTMyPiBA X1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjRfalNfKDw0IHggaTMyPiwgPDQgeCBp MzI+KSAjMTYgewotK2RlZmluZSBpbnRlcm5hbCA8NCB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNp Y19pbXBsX3VyZW11MkNNdmI0X2pTXyg8NCB4IGkzMj4sIDw0IHggaTMyPikgIzE2IHsKLSAgICUz ID0gYWxsb2NhIDw0IHggaTMyPiwgYWxpZ24gMTYKLSAgICU0ID0gYWxsb2NhIDw0IHggaTMyPiwg YWxpZ24gMTYKLSAgICU1ID0gYWxsb2NhIDw0IHggaTMyPiwgYWxpZ24gMTYKLUBAIC00NzA2LDcg KzQ3MDYsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDw0IHggaTMyPiBAX1oyNF9fY21faW50cmluc2lj X2ltcGxfdXJlbXUyQ012YjRfalNfKDw0IHggaTMyPiwgPAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0 dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDggeCBpMzI+IEBfWjI0 X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiOF9qU18oPDggeCBpMzI+LCA8OCB4IGkzMj4p ICMxNyB7Ci0rZGVmaW5lIGludGVybmFsIDw4IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2lt cGxfdXJlbXUyQ012YjhfalNfKDw4IHggaTMyPiwgPDggeCBpMzI+KSAjMTcgewotICAgJTMgPSBh bGxvY2EgPDggeCBpMzI+LCBhbGlnbiAzMgotICAgJTQgPSBhbGxvY2EgPDggeCBpMzI+LCBhbGln biAzMgotICAgJTUgPSBhbGxvY2EgPDggeCBpMzI+LCBhbGlnbiAzMgotQEAgLTQ3MjAsNyArNDcy MCw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDggeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1w bF91cmVtdTJDTXZiOF9qU18oPDggeCBpMzI+LCA8Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6 IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MTYgeCBpMzI+IEBfWjI0X19j bV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMTZfalNfKDwxNiB4IGkzMj4sIDwxNiB4IGkzMj4p ICMxOCB7Ci0rZGVmaW5lIGludGVybmFsIDwxNiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19p bXBsX3VyZW11MkNNdmIxNl9qU18oPDE2IHggaTMyPiwgPDE2IHggaTMyPikgIzE4IHsKLSAgICUz ID0gYWxsb2NhIDwxNiB4IGkzMj4sIGFsaWduIDY0Ci0gICAlNCA9IGFsbG9jYSA8MTYgeCBpMzI+ LCBhbGlnbiA2NAotICAgJTUgPSBhbGxvY2EgPDE2IHggaTMyPiwgYWxpZ24gNjQKLUBAIC00NzM0 LDcgKzQ3MzQsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwxNiB4IGkzMj4gQF9aMjRfX2NtX2ludHJp bnNpY19pbXBsX3VyZW11MkNNdmIxNl9qU18oPDE2IHggaTMyPgotIH0KLSAKLSA7IEZ1bmN0aW9u IEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDMyIHggaTMyPiBA X1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjMyX2pTXyg8MzIgeCBpMzI+LCA8MzIg eCBpMzI+KSAjMTkgewotK2RlZmluZSBpbnRlcm5hbCA8MzIgeCBpMzI+IEBfWjI0X19jbV9pbnRy aW5zaWNfaW1wbF91cmVtdTJDTXZiMzJfalNfKDwzMiB4IGkzMj4sIDwzMiB4IGkzMj4pICMxOSB7 Ci0gICAlMyA9IGFsbG9jYSA8MzIgeCBpMzI+LCBhbGlnbiAxMjgKLSAgICU0ID0gYWxsb2NhIDwz MiB4IGkzMj4sIGFsaWduIDEyOAotICAgJTUgPSBhbGxvY2EgPDMyIHggaTMyPiwgYWxpZ24gMTI4 Ci1AQCAtNDc0OCw3ICs0NzQ4LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MzIgeCBpMzI+IEBfWjI0 X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMzJfalNfKDwzMiB4IGkzMj4KLSB9Ci0gCi0g OyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIHZv aWQgQF9fZG9fcHJpbnRfY20oaTgqLCBpOCosIGkzMiwgaTY0LCBpMzIqLCBpMzIsIGkzMikgIzIz ICFkYmcgITE1IHsKLStkZWZpbmUgaW50ZXJuYWwgdm9pZCBAX19kb19wcmludF9jbShpOCosIGk4 KiwgaTMyLCBpNjQsIGkzMiosIGkzMiwgaTMyKSAjMjMgIWRiZyAhMTUgewotICAgJTggPSBhbGxv Y2EgaTgqLCBhbGlnbiA4Ci0gICAlOSA9IGFsbG9jYSBpOCosIGFsaWduIDgKLSAgICUxMCA9IGFs bG9jYSBpMzIsIGFsaWduIDQKLUBAIC01MDcwLDcgKzUwNzAsNyBAQCBkZWZpbmUgZHNvX2xvY2Fs IHZvaWQgQF9fZG9fcHJpbnRfbHooaTMyLCBpOCosIGkzMiwgaTY0LCBpMzIqLCBpMzIsIGkzMiwg aTMyLCBpMwotICAgJTY3ID0gbG9hZCBpNjQsIGk2NCogJTEzLCBhbGlnbiA4LCAhZGJnICExNTks ICF0YmFhICExOQotICAgJTY4ID0gbG9hZCA8NSB4IGkzMj4sIDw1IHggaTMyPiogJTIxLCBhbGln biAzMiwgIWRiZyAhMTYwLCAhdGJhYSAhNwotICAgY2FsbCB2b2lkIEBfWk4xM1ZhcnlpbmdXcml0 ZXJDMkVSeVJQS2ppeXUyQ012YjVfaSglY2xhc3MuVmFyeWluZ1dyaXRlciogJTIzLCBpNjQqIGRl cmVmZXJlbmNlYWJsZSg4KSAlMTksIGkzMioqIGRlcmVmZXJlbmNlYWJsZSg4KSAlMTQsIGkzMiAl NjYsIGk2NCAlNjcsIDw1IHggaTMyPiAlNjgpLCAhZGJnICExNjEKLS0gICU2OSA9IGNhbGwgemVy b2V4dCBpMSBAX1pOOVByaW50SW5mbzE0c3dpdGNoRW5jb2RpbmdJMTNVbmlmb3JtV3JpdGVyMTNW YXJ5aW5nV3JpdGVyRUViTlNfOEVuY29kaW5nRVRfVDBfKGk4IHNpZ25leHQgJTYyLCAlY2xhc3Mu VW5pZm9ybVdyaXRlciogYnl2YWwgYWxpZ24gMzIgJTIyLCAlY2xhc3MuVmFyeWluZ1dyaXRlciog Ynl2YWwgYWxpZ24gMzIgJTIzKSwgIWRiZyAhMTYyCi0rICAlNjkgPSBjYWxsIHplcm9leHQgaTEg QF9aTjlQcmludEluZm8xNHN3aXRjaEVuY29kaW5nSTEzVW5pZm9ybVdyaXRlcjEzVmFyeWluZ1dy aXRlckVFYk5TXzhFbmNvZGluZ0VUX1QwXyhpOCBzaWduZXh0ICU2MiwgJWNsYXNzLlVuaWZvcm1X cml0ZXIqIGJ5dmFsKCVjbGFzcy5Vbmlmb3JtV3JpdGVyKSBhbGlnbiAzMiAlMjIsICVjbGFzcy5W YXJ5aW5nV3JpdGVyKiBieXZhbCglY2xhc3MuVmFyeWluZ1dyaXRlcikgYWxpZ24gMzIgJTIzKSwg IWRiZyAhMTYyCi0gICBiciBsYWJlbCAlNzAsICFkYmcgITE2MwotIAotIDsgPGxhYmVsPjo3MDog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOyBwcmVkcyA9ICU2MAotQEAgLTUx ODgsNyArNTE4OCw3IEBAIGRlZmluZSBpbnRlcm5hbCA8NSB4IGkzMj4gQF9aMTdnZXRfYXV4aWxp YXJ5X3N0cnYoKSAjMjggY29tZGF0ICFkYmcgITE3OCB7Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0 cnM6IGFsd2F5c2lubGluZSBpbmxpbmVoaW50IG5vdW53aW5kCi0tZGVmaW5lIGludGVybmFsIHpl cm9leHQgaTEgQF9aTjlQcmludEluZm8xNHN3aXRjaEVuY29kaW5nSTEzVW5pZm9ybVdyaXRlcjEz VmFyeWluZ1dyaXRlckVFYk5TXzhFbmNvZGluZ0VUX1QwXyhpOCBzaWduZXh0LCAlY2xhc3MuVW5p Zm9ybVdyaXRlciogYnl2YWwgYWxpZ24gMzIsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCBh bGlnbiAzMikgIzI1IGNvbWRhdCAhZGJnICExOTEgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0 IGkxIEBfWk45UHJpbnRJbmZvMTRzd2l0Y2hFbmNvZGluZ0kxM1VuaWZvcm1Xcml0ZXIxM1Zhcnlp bmdXcml0ZXJFRWJOU184RW5jb2RpbmdFVF9UMF8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1X cml0ZXIqIGJ5dmFsKCVjbGFzcy5Vbmlmb3JtV3JpdGVyKSBhbGlnbiAzMiwgJWNsYXNzLlZhcnlp bmdXcml0ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5aW5nV3JpdGVyKSBhbGlnbiAzMikgIzI1IGNvbWRh dCAhZGJnICExOTEgewotICAgJTQgPSBhbGxvY2EgaTgsIGFsaWduIDEKLSAgICU1ID0gYWxsb2Nh ICVjbGFzcy5Vbmlmb3JtV3JpdGVyLCBhbGlnbiAzMgotICAgJTYgPSBhbGxvY2EgJWNsYXNzLlZh cnlpbmdXcml0ZXIsIGFsaWduIDMyCi1AQCAtNTE5Nyw3ICs1MTk3LDcgQEAgZGVmaW5lIGludGVy bmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm8xNHN3aXRjaEVuY29kaW5nSTEzVW5pZm9ybVdy aXRlcjEzVmFyeWkKLSAgICU4ID0gYml0Y2FzdCAlY2xhc3MuVW5pZm9ybVdyaXRlciogJTUgdG8g aTgqLCAhZGJnICExOTYKLSAgICU5ID0gYml0Y2FzdCAlY2xhc3MuVW5pZm9ybVdyaXRlciogJTEg dG8gaTgqLCAhZGJnICExOTYKLSAgIGNhbGwgdm9pZCBAbGx2bS5tZW1jcHkucDBpOC5wMGk4Lmk2 NChpOCogYWxpZ24gMzIgJTgsIGk4KiBhbGlnbiAzMiAlOSwgaTY0IDY0LCBpMSBmYWxzZSksICFk YmcgITE5NiwgIXRiYWEuc3RydWN0ICExOTcKLS0gICUxMCA9IGNhbGwgemVyb2V4dCBpMSBAX1pO OVByaW50SW5mbzIyc3dpdGNoRW5jb2Rpbmc0VW5pZm9ybUkxM1VuaWZvcm1Xcml0ZXJFRWJOU184 RW5jb2RpbmdFVF8oaTggc2lnbmV4dCAlNywgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsIGFs aWduIDMyICU1KSwgIWRiZyAhMTk4Ci0rICAlMTAgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmlu dEluZm8yMnN3aXRjaEVuY29kaW5nNFVuaWZvcm1JMTNVbmlmb3JtV3JpdGVyRUViTlNfOEVuY29k aW5nRVRfKGk4IHNpZ25leHQgJTcsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCglY2xhc3Mu VW5pZm9ybVdyaXRlcikgYWxpZ24gMzIgJTUpLCAhZGJnICExOTgKLSAgIGJyIGkxICUxMCwgbGFi ZWwgJTE2LCBsYWJlbCAlMTEsICFkYmcgITE5OQotIAotIDsgPGxhYmVsPjoxMTogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgOyBwcmVkcyA9ICUzCi1AQCAtNTIwNSw3ICs1MjA1 LDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm8xNHN3aXRjaEVu Y29kaW5nSTEzVW5pZm9ybVdyaXRlcjEzVmFyeWkKLSAgICUxMyA9IGJpdGNhc3QgJWNsYXNzLlZh cnlpbmdXcml0ZXIqICU2IHRvIGk4KiwgIWRiZyAhMjAxCi0gICAlMTQgPSBiaXRjYXN0ICVjbGFz cy5WYXJ5aW5nV3JpdGVyKiAlMiB0byBpOCosICFkYmcgITIwMQotICAgY2FsbCB2b2lkIEBsbHZt Lm1lbWNweS5wMGk4LnAwaTguaTY0KGk4KiBhbGlnbiAzMiAlMTMsIGk4KiBhbGlnbiAzMiAlMTQs IGk2NCA2NCwgaTEgZmFsc2UpLCAhZGJnICEyMDEsICF0YmFhLnN0cnVjdCAhMTk3Ci0tICAlMTUg PSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm8yMnN3aXRjaEVuY29kaW5nNFZhcnlpbmdJ MTNWYXJ5aW5nV3JpdGVyRUViTlNfOEVuY29kaW5nRVRfKGk4IHNpZ25leHQgJTEyLCAlY2xhc3Mu VmFyeWluZ1dyaXRlciogYnl2YWwgYWxpZ24gMzIgJTYpLCAhZGJnICEyMDIKLSsgICUxNSA9IGNh bGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzIyc3dpdGNoRW5jb2Rpbmc0VmFyeWluZ0kxM1Zh cnlpbmdXcml0ZXJFRWJOU184RW5jb2RpbmdFVF8oaTggc2lnbmV4dCAlMTIsICVjbGFzcy5WYXJ5 aW5nV3JpdGVyKiBieXZhbCglY2xhc3MuVmFyeWluZ1dyaXRlcikgYWxpZ24gMzIgJTYpLCAhZGJn ICEyMDIKLSAgIGJyIGxhYmVsICUxNiwgIWRiZyAhMTk5Ci0gCi0gOyA8bGFiZWw+OjE2OiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7IHByZWRzID0gJTExLCAlMwotQEAgLTUy ODAsNyArNTI4MCw3IEBAIGRlZmluZSBpbnRlcm5hbCB2b2lkIEBfWk4xM1ZhcnlpbmdXcml0ZXJD MkVSeVJQS2ppeXUyQ012YjVfaSglY2xhc3MuVmFyeWluZ1dyaXRlCi0gfQotIAotIDsgRnVuY3Rp b24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCBpMzIgQF9fbnVt X2NvcmVzKCkgIzI5ICFkYmcgITIzNiB7Ci0rZGVmaW5lIGludGVybmFsIGkzMiBAX19udW1fY29y ZXMoKSAjMjkgIWRiZyAhMjM2IHsKLSAgIHJldCBpMzIgLTEsICFkYmcgITIzNwotIH0KLSAKLUBA IC04ODcwLDcgKzg4NzAsNyBAQCBkZWNsYXJlIGRzb19sb2NhbCB2b2lkIEBfWk43ZGV0YWlsczM3 X19jbV9pbnRyaW5zaWNfaW1wbF9zdm1fc2NhdHRlcl93cml0ZUlpTGkxRQotIGRlY2xhcmUgdm9p ZCBAbGx2bS5nZW54LnN2bS5zY2F0dGVyLnYxaTEudjFpNjQudjFpMzIoPDEgeCBpMT4sIGkzMiwg PDEgeCBpNjQ+LCA8MSB4IGkzMj4pICMyNwotIAotIDsgRnVuY3Rpb24gQXR0cnM6IGFsd2F5c2lu bGluZSBpbmxpbmVoaW50IG5vdW53aW5kCi0tZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9a TjlQcmludEluZm8yMnN3aXRjaEVuY29kaW5nNFVuaWZvcm1JMTNVbmlmb3JtV3JpdGVyRUViTlNf OEVuY29kaW5nRVRfKGk4IHNpZ25leHQsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBhbGln biAzMikgIzI1IGNvbWRhdCAhZGJnICExNjQ1IHsKLStkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBp MSBAX1pOOVByaW50SW5mbzIyc3dpdGNoRW5jb2Rpbmc0VW5pZm9ybUkxM1VuaWZvcm1Xcml0ZXJF RWJOU184RW5jb2RpbmdFVF8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFs KCVjbGFzcy5Vbmlmb3JtV3JpdGVyKSBhbGlnbiAzMikgIzI1IGNvbWRhdCAhZGJnICExNjQ1IHsK LSAgICUzID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0gICAlNCA9IGFsbG9jYSAlY2xhc3MuVW5pZm9y bVdyaXRlciwgYWxpZ24gMzIKLSAgICU1ID0gYWxsb2NhICUic3RydWN0LlByaW50SW5mbzo6RW5j b2Rpbmc0VW5pZm9ybSIsIGFsaWduIDEKLUBAIC04ODc5LDcgKzg4NzksNyBAQCBkZWZpbmUgaW50 ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzIyc3dpdGNoRW5jb2Rpbmc0VW5pZm9ybUkx M1VuaWZvcm1Xcml0ZQotICAgJTcgPSBiaXRjYXN0ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiAlNCB0 byBpOCosICFkYmcgITE2NDcKLSAgICU4ID0gYml0Y2FzdCAlY2xhc3MuVW5pZm9ybVdyaXRlciog JTEgdG8gaTgqLCAhZGJnICExNjQ3Ci0gICBjYWxsIHZvaWQgQGxsdm0ubWVtY3B5LnAwaTgucDBp OC5pNjQoaTgqIGFsaWduIDMyICU3LCBpOCogYWxpZ24gMzIgJTgsIGk2NCA2NCwgaTEgZmFsc2Up LCAhZGJnICExNjQ3LCAhdGJhYS5zdHJ1Y3QgITE5NwotLSAgJTkgPSBjYWxsIHplcm9leHQgaTEg QF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1VuaWZvcm1Xcml0ZXJOU18x NkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVRfVDBfKGk4IHNpZ25leHQgJTYsICVj bGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBhbGlnbiAzMiAlNCwgJSJzdHJ1Y3QuUHJpbnRJbmZv OjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwgYWxpZ24gMSAlNSksICFkYmcgITE2NDgKLSsgICU5 ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJ MTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUX1Qw XyhpOCBzaWduZXh0ICU2LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZv cm1Xcml0ZXIpIGFsaWduIDMyICU0LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZv cm0iKiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKSBhbGlnbiAx ICU1KSwgIWRiZyAhMTY0OAotICAgcmV0IGkxICU5LCAhZGJnICExNjQ5Ci0gfQotIAotQEAgLTg4 ODcsNyArODg4Nyw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZv MjJzd2l0Y2hFbmNvZGluZzRVbmlmb3JtSTEzVW5pZm9ybVdyaXRlCi0gZGVjbGFyZSB2b2lkIEBs bHZtLm1lbWNweS5wMGk4LnAwaTguaTY0KGk4KiBub2NhcHR1cmUgd3JpdGVvbmx5LCBpOCogbm9j YXB0dXJlIHJlYWRvbmx5LCBpNjQsIGkxKSAjMzIKLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBhbHdh eXNpbmxpbmUgaW5saW5laGludCBub3Vud2luZAotLWRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkx IEBfWk45UHJpbnRJbmZvMjJzd2l0Y2hFbmNvZGluZzRWYXJ5aW5nSTEzVmFyeWluZ1dyaXRlckVF Yk5TXzhFbmNvZGluZ0VUXyhpOCBzaWduZXh0LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwg YWxpZ24gMzIpICMyNSBjb21kYXQgIWRiZyAhMTY1MCB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9l eHQgaTEgQF9aTjlQcmludEluZm8yMnN3aXRjaEVuY29kaW5nNFZhcnlpbmdJMTNWYXJ5aW5nV3Jp dGVyRUViTlNfOEVuY29kaW5nRVRfKGk4IHNpZ25leHQsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBi eXZhbCglY2xhc3MuVmFyeWluZ1dyaXRlcikgYWxpZ24gMzIpICMyNSBjb21kYXQgIWRiZyAhMTY1 MCB7Ci0gICAlMyA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgJTQgPSBhbGxvY2EgJWNsYXNzLlZh cnlpbmdXcml0ZXIsIGFsaWduIDMyCi0gICAlNSA9IGFsbG9jYSAlInN0cnVjdC5QcmludEluZm86 OkVuY29kaW5nNFZhcnlpbmciLCBhbGlnbiAxCi1AQCAtODg5NiwxMiArODg5NiwxMiBAQCBkZWZp bmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzIyc3dpdGNoRW5jb2Rpbmc0VmFy eWluZ0kxM1ZhcnlpbmdXcml0ZQotICAgJTcgPSBiaXRjYXN0ICVjbGFzcy5WYXJ5aW5nV3JpdGVy KiAlNCB0byBpOCosICFkYmcgITE2NTIKLSAgICU4ID0gYml0Y2FzdCAlY2xhc3MuVmFyeWluZ1dy aXRlciogJTEgdG8gaTgqLCAhZGJnICExNjUyCi0gICBjYWxsIHZvaWQgQGxsdm0ubWVtY3B5LnAw aTgucDBpOC5pNjQoaTgqIGFsaWduIDMyICU3LCBpOCogYWxpZ24gMzIgJTgsIGk2NCA2NCwgaTEg ZmFsc2UpLCAhZGJnICExNjUyLCAhdGJhYS5zdHJ1Y3QgITE5NwotLSAgJTkgPSBjYWxsIHplcm9l eHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1ZhcnlpbmdXcml0 ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVRfVDBfKGk4IHNpZ25leHQg JTYsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCBhbGlnbiAzMiAlNCwgJSJzdHJ1Y3QuUHJp bnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwgYWxpZ24gMSAlNSksICFkYmcgITE2NTMK LSsgICU5ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5j b2RpbmdJMTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGlu Z0VUX1QwXyhpOCBzaWduZXh0ICU2LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwoJWNsYXNz LlZhcnlpbmdXcml0ZXIpIGFsaWduIDMyICU0LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5n NFZhcnlpbmciKiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKSBh bGlnbiAxICU1KSwgIWRiZyAhMTY1MwotICAgcmV0IGkxICU5LCAhZGJnICExNjU0Ci0gfQotIAot IDsgRnVuY3Rpb24gQXR0cnM6IGFsd2F5c2lubGluZSBpbmxpbmVoaW50IG5vdW53aW5kCi0tZGVm aW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNv ZGluZ0kxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5n RVRfVDBfKGk4IHNpZ25leHQsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBhbGlnbiAzMiwg JSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwgYWxpZ24gMSkgIzI1 IGNvbWRhdCAhZGJnICExNjU1IHsKLStkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVBy aW50SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rp bmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVF9UMF8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZv cm1Xcml0ZXIqIGJ5dmFsKCVjbGFzcy5Vbmlmb3JtV3JpdGVyKSBhbGlnbiAzMiwgJSJzdHJ1Y3Qu UHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpF bmNvZGluZzRVbmlmb3JtIikgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICExNjU1IHsKLSAgICU0 ID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSAlY2xhc3MuVW5pZm9ybVdyaXRl ciwgYWxpZ24gMzIKLSAgICU2ID0gYWxsb2NhICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0 VW5pZm9ybSIsIGFsaWduIDEKLUBAIC04OTI0LDcgKzg5MjQsNyBAQCBkZWZpbmUgaW50ZXJuYWwg emVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEzVW5pZm9y bVdyaXRlcgotICAgJTIyID0gYml0Y2FzdCAlY2xhc3MuVW5pZm9ybVdyaXRlciogJTUgdG8gaTgq LCAhZGJnICExNjU3Ci0gICAlMjMgPSBiaXRjYXN0ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiAlMSB0 byBpOCosICFkYmcgITE2NTcKLSAgIGNhbGwgdm9pZCBAbGx2bS5tZW1jcHkucDBpOC5wMGk4Lmk2 NChpOCogYWxpZ24gMzIgJTIyLCBpOCogYWxpZ24gMzIgJTIzLCBpNjQgNjQsIGkxIGZhbHNlKSwg IWRiZyAhMTY1NywgIXRiYWEuc3RydWN0ICExOTcKLS0gICUyNCA9IGNhbGwgemVyb2V4dCBpMSBA X1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0liMTNVbmlmb3JtV3Jp dGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4 dCAlMjEsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBhbGlnbiAzMiAlNSwgJSJzdHJ1Y3Qu UHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwgYWxpZ24gMSAlNiksICFkYmcgITE2 NTgKLSsgICUyNCA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5 SWZQcm9wZXJFbmNvZGluZ0liMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVF Yk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlMjEsICVjbGFzcy5Vbmlmb3JtV3JpdGVy KiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24gMzIgJTUsICUic3RydWN0LlByaW50 SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rp bmc0VW5pZm9ybSIpIGFsaWduIDEgJTYpLCAhZGJnICExNjU4Ci0gICBiciBpMSAlMjQsIGxhYmVs ICU2MCwgbGFiZWwgJTI1LCAhZGJnICExNjU5Ci0gCi0gOyA8bGFiZWw+OjI1OiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICA7IHByZWRzID0gJTMKLUBAIC04OTMyLDcgKzg5MzIs NyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwxNHN3 aXRjaEVuY29kaW5nSTEzVW5pZm9ybVdyaXRlcgotICAgJTI3ID0gYml0Y2FzdCAlY2xhc3MuVW5p Zm9ybVdyaXRlciogJTcgdG8gaTgqLCAhZGJnICExNjYxCi0gICAlMjggPSBiaXRjYXN0ICVjbGFz cy5Vbmlmb3JtV3JpdGVyKiAlMSB0byBpOCosICFkYmcgITE2NjEKLSAgIGNhbGwgdm9pZCBAbGx2 bS5tZW1jcHkucDBpOC5wMGk4Lmk2NChpOCogYWxpZ24gMzIgJTI3LCBpOCogYWxpZ24gMzIgJTI4 LCBpNjQgNjQsIGkxIGZhbHNlKSwgIWRiZyAhMTY2MSwgIXRiYWEuc3RydWN0ICExOTcKLS0gICUy OSA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJF bmNvZGluZ0lpMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNv ZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlMjYsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBh bGlnbiAzMiAlNywgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwg YWxpZ24gMSAlOCksICFkYmcgITE2NjIKLSsgICUyOSA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVBy aW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lpMTNVbmlmb3JtV3JpdGVyTlNf MTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlMjYs ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24g MzIgJTcsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsKCUic3Ry dWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIpIGFsaWduIDEgJTgpLCAhZGJnICExNjYy Ci0gICBiciBpMSAlMjksIGxhYmVsICU2MCwgbGFiZWwgJTMwLCAhZGJnICExNjYzCi0gCi0gOyA8 bGFiZWw+OjMwOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7IHByZWRzID0g JTI1Ci1AQCAtODk0MCw3ICs4OTQwLDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9a TjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1VuaWZvcm1Xcml0ZXIKLSAgICUz MiA9IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqICU5IHRvIGk4KiwgIWRiZyAhMTY2NQot ICAgJTMzID0gYml0Y2FzdCAlY2xhc3MuVW5pZm9ybVdyaXRlciogJTEgdG8gaTgqLCAhZGJnICEx NjY1Ci0gICBjYWxsIHZvaWQgQGxsdm0ubWVtY3B5LnAwaTgucDBpOC5pNjQoaTgqIGFsaWduIDMy ICUzMiwgaTgqIGFsaWduIDMyICUzMywgaTY0IDY0LCBpMSBmYWxzZSksICFkYmcgITE2NjUsICF0 YmFhLnN0cnVjdCAhMTk3Ci0tICAlMzQgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82 ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJajEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rp bmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTMxLCAlY2xhc3Mu VW5pZm9ybVdyaXRlciogYnl2YWwgYWxpZ24gMzIgJTksICUic3RydWN0LlByaW50SW5mbzo6RW5j b2Rpbmc0VW5pZm9ybSIqIGJ5dmFsIGFsaWduIDEgJTEwKSwgIWRiZyAhMTY2NgotKyAgJTM0ID0g Y2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29k aW5nSWoxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5n RVQwX1QxXyhpOCBzaWduZXh0ICUzMSwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsKCVjbGFz cy5Vbmlmb3JtV3JpdGVyKSBhbGlnbiAzMiAlOSwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGlu ZzRVbmlmb3JtIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIikg YWxpZ24gMSAlMTApLCAhZGJnICExNjY2Ci0gICBiciBpMSAlMzQsIGxhYmVsICU2MCwgbGFiZWwg JTM1LCAhZGJnICExNjY3Ci0gCi0gOyA8bGFiZWw+OjM1OiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICA7IHByZWRzID0gJTMwCi1AQCAtODk0OCw3ICs4OTQ4LDcgQEAgZGVmaW5l IGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGlu Z0kxM1VuaWZvcm1Xcml0ZXIKLSAgICUzNyA9IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIq ICUxMSB0byBpOCosICFkYmcgITE2NjkKLSAgICUzOCA9IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1X cml0ZXIqICUxIHRvIGk4KiwgIWRiZyAhMTY2OQotICAgY2FsbCB2b2lkIEBsbHZtLm1lbWNweS5w MGk4LnAwaTguaTY0KGk4KiBhbGlnbiAzMiAlMzcsIGk4KiBhbGlnbiAzMiAlMzgsIGk2NCA2NCwg aTEgZmFsc2UpLCAhZGJnICExNjY5LCAhdGJhYS5zdHJ1Y3QgITE5NwotLSAgJTM5ID0gY2FsbCB6 ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWYx M1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1Qx XyhpOCBzaWduZXh0ICUzNiwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsIGFsaWduIDMyICUx MSwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwgYWxpZ24gMSAl MTIpLCAhZGJnICExNjcwCi0rICAlMzkgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82 ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJZjEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rp bmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTM2LCAlY2xhc3Mu VW5pZm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1Xcml0ZXIpIGFsaWduIDMyICUxMSwg JSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwoJSJzdHJ1Y3QuUHJp bnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIikgYWxpZ24gMSAlMTIpLCAhZGJnICExNjcwCi0gICBi ciBpMSAlMzksIGxhYmVsICU2MCwgbGFiZWwgJTQwLCAhZGJnICExNjcxCi0gCi0gOyA8bGFiZWw+ OjQwOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7IHByZWRzID0gJTM1Ci1A QCAtODk1Niw3ICs4OTU2LDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmlu dEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1VuaWZvcm1Xcml0ZXIKLSAgICU0MiA9IGJp dGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqICUxMyB0byBpOCosICFkYmcgITE2NzMKLSAgICU0 MyA9IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqICUxIHRvIGk4KiwgIWRiZyAhMTY3Mwot ICAgY2FsbCB2b2lkIEBsbHZtLm1lbWNweS5wMGk4LnAwaTguaTY0KGk4KiBhbGlnbiAzMiAlNDIs IGk4KiBhbGlnbiAzMiAlNDMsIGk2NCA2NCwgaTEgZmFsc2UpLCAhZGJnICExNjczLCAhdGJhYS5z dHJ1Y3QgITE5NwotLSAgJTQ0ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFp bDIxYXBwbHlJZlByb3BlckVuY29kaW5nSXgxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVu aWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICU0MSwgJWNsYXNzLlVuaWZv cm1Xcml0ZXIqIGJ5dmFsIGFsaWduIDMyICUxMywgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGlu ZzRVbmlmb3JtIiogYnl2YWwgYWxpZ24gMSAlMTQpLCAhZGJnICExNjc0Ci0rICAlNDQgPSBjYWxs IHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJ eDEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBf VDFfKGk4IHNpZ25leHQgJTQxLCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVu aWZvcm1Xcml0ZXIpIGFsaWduIDMyICUxMywgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRV bmlmb3JtIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIikgYWxp Z24gMSAlMTQpLCAhZGJnICExNjc0Ci0gICBiciBpMSAlNDQsIGxhYmVsICU2MCwgbGFiZWwgJTQ1 LCAhZGJnICExNjc1Ci0gCi0gOyA8bGFiZWw+OjQ1OiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICA7IHByZWRzID0gJTQwCi1AQCAtODk2NCw3ICs4OTY0LDcgQEAgZGVmaW5lIGlu dGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kx M1VuaWZvcm1Xcml0ZXIKLSAgICU0NyA9IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqICUx NSB0byBpOCosICFkYmcgITE2NzcKLSAgICU0OCA9IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0 ZXIqICUxIHRvIGk4KiwgIWRiZyAhMTY3NwotICAgY2FsbCB2b2lkIEBsbHZtLm1lbWNweS5wMGk4 LnAwaTguaTY0KGk4KiBhbGlnbiAzMiAlNDcsIGk4KiBhbGlnbiAzMiAlNDgsIGk2NCA2NCwgaTEg ZmFsc2UpLCAhZGJnICExNjc3LCAhdGJhYS5zdHJ1Y3QgITE5NwotLSAgJTQ5ID0gY2FsbCB6ZXJv ZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSXkxM1Vu aWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhp OCBzaWduZXh0ICU0NiwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsIGFsaWduIDMyICUxNSwg JSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwgYWxpZ24gMSAlMTYp LCAhZGJnICExNjc4Ci0rICAlNDkgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0 YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJeTEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0 VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTQ2LCAlY2xhc3MuVW5p Zm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1Xcml0ZXIpIGFsaWduIDMyICUxNSwgJSJz dHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJ bmZvOjpFbmNvZGluZzRVbmlmb3JtIikgYWxpZ24gMSAlMTYpLCAhZGJnICExNjc4Ci0gICBiciBp MSAlNDksIGxhYmVsICU2MCwgbGFiZWwgJTUwLCAhZGJnICExNjc5Ci0gCi0gOyA8bGFiZWw+OjUw OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7IHByZWRzID0gJTQ1Ci1AQCAt ODk3Miw3ICs4OTcyLDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludElu Zm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1VuaWZvcm1Xcml0ZXIKLSAgICU1MiA9IGJpdGNh c3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqICUxNyB0byBpOCosICFkYmcgITE2ODEKLSAgICU1MyA9 IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqICUxIHRvIGk4KiwgIWRiZyAhMTY4MQotICAg Y2FsbCB2b2lkIEBsbHZtLm1lbWNweS5wMGk4LnAwaTguaTY0KGk4KiBhbGlnbiAzMiAlNTIsIGk4 KiBhbGlnbiAzMiAlNTMsIGk2NCA2NCwgaTEgZmFsc2UpLCAhZGJnICExNjgxLCAhdGJhYS5zdHJ1 Y3QgITE5NwotLSAgJTU0ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIx YXBwbHlJZlByb3BlckVuY29kaW5nSWQxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZv cm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICU1MSwgJWNsYXNzLlVuaWZvcm1X cml0ZXIqIGJ5dmFsIGFsaWduIDMyICUxNywgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRV bmlmb3JtIiogYnl2YWwgYWxpZ24gMSAlMTgpLCAhZGJnICExNjgyCi0rICAlNTQgPSBjYWxsIHpl cm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJZDEz VW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFf KGk4IHNpZ25leHQgJTUxLCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZv cm1Xcml0ZXIpIGFsaWduIDMyICUxNywgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlm b3JtIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIikgYWxpZ24g MSAlMTgpLCAhZGJnICExNjgyCi0gICBiciBpMSAlNTQsIGxhYmVsICU2MCwgbGFiZWwgJTU1LCAh ZGJnICExNjgzCi0gCi0gOyA8bGFiZWw+OjU1OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICA7IHByZWRzID0gJTUwCi1AQCAtODk4MCw3ICs4OTgwLDcgQEAgZGVmaW5lIGludGVy bmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1Vu aWZvcm1Xcml0ZXIKLSAgICU1NyA9IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqICUxOSB0 byBpOCosICFkYmcgITE2ODUKLSAgICU1OCA9IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIq ICUxIHRvIGk4KiwgIWRiZyAhMTY4NQotICAgY2FsbCB2b2lkIEBsbHZtLm1lbWNweS5wMGk4LnAw aTguaTY0KGk4KiBhbGlnbiAzMiAlNTcsIGk4KiBhbGlnbiAzMiAlNTgsIGk2NCA2NCwgaTEgZmFs c2UpLCAhZGJnICExNjg1LCAhdGJhYS5zdHJ1Y3QgITE5NwotLSAgJTU5ID0gY2FsbCB6ZXJvZXh0 IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSVB2MTNVbmlm b3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTgg c2lnbmV4dCAlNTYsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBhbGlnbiAzMiAlMTksICUi c3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsIGFsaWduIDEgJTIwKSwg IWRiZyAhMTY4NgotKyAgJTU5ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFp bDIxYXBwbHlJZlByb3BlckVuY29kaW5nSVB2MTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRV bmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlNTYsICVjbGFzcy5Vbmlm b3JtV3JpdGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24gMzIgJTE5LCAlInN0 cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCglInN0cnVjdC5QcmludElu Zm86OkVuY29kaW5nNFVuaWZvcm0iKSBhbGlnbiAxICUyMCksICFkYmcgITE2ODYKLSAgIGJyIGxh YmVsICU2MCwgIWRiZyAhMTY4MwotIAotIDsgPGxhYmVsPjo2MDogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgOyBwcmVkcyA9ICU1NSwgJTUwLCAlNDUsICU0MCwgJTM1LCAlMzAs ICUyNSwgJTMKLUBAIC04OTg5LDcgKzg5ODksNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBp MSBAX1pOOVByaW50SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEzVW5pZm9ybVdyaXRlcgot IH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2lu ZAotLWRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBw bHlJZlByb3BlckVuY29kaW5nSWIxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1F RUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciog Ynl2YWwgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5 dmFsIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMTY4OCB7Ci0rZGVmaW5lIGludGVybmFsIHpl cm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJYjEz VW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFf KGk4IHNpZ25leHQsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdy aXRlcikgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5 dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIpIGFsaWduIDEpICMyNSBj b21kYXQgIWRiZyAhMTY4OCB7Ci0gICAlNCA9IGFsbG9jYSBpMSwgYWxpZ24gMQotICAgJTUgPSBh bGxvY2EgaTgsIGFsaWduIDEKLSAgIHN0b3JlIGk4ICUwLCBpOCogJTUsIGFsaWduIDEsICF0YmFh ICExOTMKLUBAIC05MDE1LDcgKzkwMTUsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBA X1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0liMTNVbmlmbwotIH0K LSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2luZAot LWRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJ ZlByb3BlckVuY29kaW5nSWkxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUVi TlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2 YWwgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFs IGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMTY5NyB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9l eHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJaTEzVW5p Zm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4 IHNpZ25leHQsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRl cikgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFs KCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIpIGFsaWduIDEpICMyNSBjb21k YXQgIWRiZyAhMTY5NyB7Ci0gICAlNCA9IGFsbG9jYSBpMSwgYWxpZ24gMQotICAgJTUgPSBhbGxv Y2EgaTgsIGFsaWduIDEKLSAgIHN0b3JlIGk4ICUwLCBpOCogJTUsIGFsaWduIDEsICF0YmFhICEx OTMKLUBAIC05MDQxLDcgKzkwNDEsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pO OVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lpMTNVbmlmbwotIH0KLSAK LSA7IEZ1bmN0aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2luZAotLWRl ZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlBy b3BlckVuY29kaW5nSWoxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNf OEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwg YWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsIGFs aWduIDEpICMyNSBjb21kYXQgIWRiZyAhMTcwNiB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQg aTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJajEzVW5pZm9y bVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNp Z25leHQsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikg YWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsKCUi c3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIpIGFsaWduIDEpICMyNSBjb21kYXQg IWRiZyAhMTcwNiB7Ci0gICAlNCA9IGFsbG9jYSBpMSwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2Eg aTgsIGFsaWduIDEKLSAgIHN0b3JlIGk4ICUwLCBpOCogJTUsIGFsaWduIDEsICF0YmFhICExOTMK LUBAIC05MDY3LDcgKzkwNjcsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVBy aW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lqMTNVbmlmbwotIH0KLSAKLSA7 IEZ1bmN0aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2luZAotLWRlZmlu ZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3Bl ckVuY29kaW5nSWYxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVu Y29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwgYWxp Z24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsIGFsaWdu IDEpICMyNSBjb21kYXQgIWRiZyAhMTcxNSB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEg QF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJZjEzVW5pZm9ybVdy aXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25l eHQsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxp Z24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsKCUic3Ry dWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIpIGFsaWduIDEpICMyNSBjb21kYXQgIWRi ZyAhMTcxNSB7Ci0gICAlNCA9IGFsbG9jYSBpMSwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2EgaTgs IGFsaWduIDEKLSAgIHN0b3JlIGk4ICUwLCBpOCogJTUsIGFsaWduIDEsICF0YmFhICExOTMKLUBA IC05MDkzLDcgKzkwOTMsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50 SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lmMTNVbmlmbwotIH0KLSAKLSA7IEZ1 bmN0aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2luZAotLWRlZmluZSBp bnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVu Y29kaW5nSXgxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29k aW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwgYWxpZ24g MzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsIGFsaWduIDEp ICMyNSBjb21kYXQgIWRiZyAhMTcyNCB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9a TjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJeDEzVW5pZm9ybVdyaXRl ck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQs ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24g MzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsKCUic3RydWN0 LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIpIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAh MTcyNCB7Ci0gICAlNCA9IGFsbG9jYSBpMSwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2EgaTgsIGFs aWduIDEKLSAgIHN0b3JlIGk4ICUwLCBpOCogJTUsIGFsaWduIDEsICF0YmFhICExOTMKLUBAIC05 MTE5LDcgKzkxMTksNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5m bzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0l4MTNVbmlmbwotIH0KLSAKLSA7IEZ1bmN0 aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2luZAotLWRlZmluZSBpbnRl cm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29k aW5nSXkxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5n RVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwgYWxpZ24gMzIs ICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsIGFsaWduIDEpICMy NSBjb21kYXQgIWRiZyAhMTczMyB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQ cmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJeTEzVW5pZm9ybVdyaXRlck5T XzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVj bGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24gMzIs ICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsKCUic3RydWN0LlBy aW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIpIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMTcz MyB7Ci0gICAlNCA9IGFsbG9jYSBpMSwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2EgaTgsIGFsaWdu IDEKLSAgIHN0b3JlIGk4ICUwLCBpOCogJTUsIGFsaWduIDEsICF0YmFhICExOTMKLUBAIC05MTQ1 LDcgKzkxNDUsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZk ZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0l5MTNVbmlmbwotIH0KLSAKLSA7IEZ1bmN0aW9u IEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2luZAotLWRlZmluZSBpbnRlcm5h bCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5n SWQxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQw X1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwgYWxpZ24gMzIsICUi c3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsIGFsaWduIDEpICMyNSBj b21kYXQgIWRiZyAhMTc0MiB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmlu dEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJZDEzVW5pZm9ybVdyaXRlck5TXzE2 RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFz cy5Vbmlmb3JtV3JpdGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24gMzIsICUi c3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsKCUic3RydWN0LlByaW50 SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIpIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMTc0MiB7 Ci0gICAlNCA9IGFsbG9jYSBpMSwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2EgaTgsIGFsaWduIDEK LSAgIHN0b3JlIGk4ICUwLCBpOCogJTUsIGFsaWduIDEsICF0YmFhICExOTMKLUBAIC05MTcxLDcg KzkxNzEsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRh aWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lkMTNVbmlmbwotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0 dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2luZAotLWRlZmluZSBpbnRlcm5hbCB6 ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSVB2 MTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9U MV8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsIGFsaWduIDMyLCAlInN0 cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCBhbGlnbiAxKSAjMjUgY29t ZGF0ICFkYmcgITE3NTEgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJ bmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSVB2MTNVbmlmb3JtV3JpdGVyTlNfMTZF bmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNz LlVuaWZvcm1Xcml0ZXIqIGJ5dmFsKCVjbGFzcy5Vbmlmb3JtV3JpdGVyKSBhbGlnbiAzMiwgJSJz dHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJ bmZvOjpFbmNvZGluZzRVbmlmb3JtIikgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICExNzUxIHsK LSAgICU0ID0gYWxsb2NhIGkxLCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSBpOCwgYWxpZ24gMQot ICAgc3RvcmUgaTggJTAsIGk4KiAlNSwgYWxpZ24gMSwgIXRiYWEgITE5MwotQEAgLTEwMDEzLDcg KzEwMDEzLDcgQEAgZGVmaW5lIGludGVybmFsIGkzMiBAX1pON2RldGFpbHMxOF9jbV9wcmludF90 eXBlX29jbElQdkVFTlNfMThTSEFERVJfUFJJTlRGX1RZUEUKLSB9Ci0gCi0gOyBGdW5jdGlvbiBB dHRyczogYWx3YXlzaW5saW5lIGlubGluZWhpbnQgbm91bndpbmQKLS1kZWZpbmUgaW50ZXJuYWwg emVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEzVmFyeWlu Z1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVF9UMF8oaTggc2ln bmV4dCwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsIGFsaWduIDMyLCAlInN0cnVjdC5Qcmlu dEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcg ITIwNjEgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFp bDE0c3dpdGNoRW5jb2RpbmdJMTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVF Yk5TXzhFbmNvZGluZ0VUX1QwXyhpOCBzaWduZXh0LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2 YWwoJWNsYXNzLlZhcnlpbmdXcml0ZXIpIGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVu Y29kaW5nNFZhcnlpbmciKiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlp bmciKSBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITIwNjEgewotICAgJTQgPSBhbGxvY2EgaTgs IGFsaWduIDEKLSAgICU1ID0gYWxsb2NhICVjbGFzcy5WYXJ5aW5nV3JpdGVyLCBhbGlnbiAzMgot ICAgJTYgPSBhbGxvY2EgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiwgYWxp Z24gMQotQEAgLTEwMDM2LDcgKzEwMDM2LDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEg QF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1ZhcnlpbmdXcml0ZXIKLSAg ICUyMiA9IGJpdGNhc3QgJWNsYXNzLlZhcnlpbmdXcml0ZXIqICU1IHRvIGk4KiwgIWRiZyAhMjA2 MwotICAgJTIzID0gYml0Y2FzdCAlY2xhc3MuVmFyeWluZ1dyaXRlciogJTEgdG8gaTgqLCAhZGJn ICEyMDYzCi0gICBjYWxsIHZvaWQgQGxsdm0ubWVtY3B5LnAwaTgucDBpOC5pNjQoaTgqIGFsaWdu IDMyICUyMiwgaTgqIGFsaWduIDMyICUyMywgaTY0IDY0LCBpMSBmYWxzZSksICFkYmcgITIwNjMs ICF0YmFhLnN0cnVjdCAhMTk3Ci0tICAlMjQgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludElu Zm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJYjEzVmFyeWluZ1dyaXRlck5TXzE2RW5j b2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTIxLCAlY2xh c3MuVmFyeWluZ1dyaXRlciogYnl2YWwgYWxpZ24gMzIgJTUsICUic3RydWN0LlByaW50SW5mbzo6 RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsIGFsaWduIDEgJTYpLCAhZGJnICEyMDY0Ci0rICAlMjQg PSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5j b2RpbmdJYjEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2Rp bmdFVDBfVDFfKGk4IHNpZ25leHQgJTIxLCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwoJWNs YXNzLlZhcnlpbmdXcml0ZXIpIGFsaWduIDMyICU1LCAlInN0cnVjdC5QcmludEluZm86OkVuY29k aW5nNFZhcnlpbmciKiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmci KSBhbGlnbiAxICU2KSwgIWRiZyAhMjA2NAotICAgYnIgaTEgJTI0LCBsYWJlbCAlNjAsIGxhYmVs ICUyNSwgIWRiZyAhMjA2NQotIAotIDsgPGxhYmVsPjoyNTogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgOyBwcmVkcyA9ICUzCi1AQCAtMTAwNDQsNyArMTAwNDQsNyBAQCBkZWZp bmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29k aW5nSTEzVmFyeWluZ1dyaXRlcgotICAgJTI3ID0gYml0Y2FzdCAlY2xhc3MuVmFyeWluZ1dyaXRl ciogJTcgdG8gaTgqLCAhZGJnICEyMDY3Ci0gICAlMjggPSBiaXRjYXN0ICVjbGFzcy5WYXJ5aW5n V3JpdGVyKiAlMSB0byBpOCosICFkYmcgITIwNjcKLSAgIGNhbGwgdm9pZCBAbGx2bS5tZW1jcHku cDBpOC5wMGk4Lmk2NChpOCogYWxpZ24gMzIgJTI3LCBpOCogYWxpZ24gMzIgJTI4LCBpNjQgNjQs IGkxIGZhbHNlKSwgIWRiZyAhMjA2NywgIXRiYWEuc3RydWN0ICExOTcKLS0gICUyOSA9IGNhbGwg emVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lp MTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9U MV8oaTggc2lnbmV4dCAlMjYsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCBhbGlnbiAzMiAl NywgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwgYWxpZ24gMSAl OCksICFkYmcgITIwNjgKLSsgICUyOSA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZk ZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lpMTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGlu ZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlMjYsICVjbGFzcy5W YXJ5aW5nV3JpdGVyKiBieXZhbCglY2xhc3MuVmFyeWluZ1dyaXRlcikgYWxpZ24gMzIgJTcsICUi c3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsKCUic3RydWN0LlByaW50 SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIpIGFsaWduIDEgJTgpLCAhZGJnICEyMDY4Ci0gICBiciBp MSAlMjksIGxhYmVsICU2MCwgbGFiZWwgJTMwLCAhZGJnICEyMDY5Ci0gCi0gOyA8bGFiZWw+OjMw OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7IHByZWRzID0gJTI1Ci1AQCAt MTAwNTIsNyArMTAwNTIsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50 SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEzVmFyeWluZ1dyaXRlcgotICAgJTMyID0gYml0 Y2FzdCAlY2xhc3MuVmFyeWluZ1dyaXRlciogJTkgdG8gaTgqLCAhZGJnICEyMDcxCi0gICAlMzMg PSBiaXRjYXN0ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiAlMSB0byBpOCosICFkYmcgITIwNzEKLSAg IGNhbGwgdm9pZCBAbGx2bS5tZW1jcHkucDBpOC5wMGk4Lmk2NChpOCogYWxpZ24gMzIgJTMyLCBp OCogYWxpZ24gMzIgJTMzLCBpNjQgNjQsIGkxIGZhbHNlKSwgIWRiZyAhMjA3MSwgIXRiYWEuc3Ry dWN0ICExOTcKLS0gICUzNCA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwy MWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lqMTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5 aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlMzEsICVjbGFzcy5WYXJ5aW5n V3JpdGVyKiBieXZhbCBhbGlnbiAzMiAlOSwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRW YXJ5aW5nIiogYnl2YWwgYWxpZ24gMSAlMTApLCAhZGJnICEyMDcyCi0rICAlMzQgPSBjYWxsIHpl cm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJajEz VmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFf KGk4IHNpZ25leHQgJTMxLCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwoJWNsYXNzLlZhcnlp bmdXcml0ZXIpIGFsaWduIDMyICU5LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlp bmciKiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKSBhbGlnbiAx ICUxMCksICFkYmcgITIwNzIKLSAgIGJyIGkxICUzNCwgbGFiZWwgJTYwLCBsYWJlbCAlMzUsICFk YmcgITIwNzMKLSAKLSA7IDxsYWJlbD46MzU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDsgcHJlZHMgPSAlMzAKLUBAIC0xMDA2MCw3ICsxMDA2MCw3IEBAIGRlZmluZSBpbnRl cm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNW YXJ5aW5nV3JpdGVyCi0gICAlMzcgPSBiaXRjYXN0ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiAlMTEg dG8gaTgqLCAhZGJnICEyMDc1Ci0gICAlMzggPSBiaXRjYXN0ICVjbGFzcy5WYXJ5aW5nV3JpdGVy KiAlMSB0byBpOCosICFkYmcgITIwNzUKLSAgIGNhbGwgdm9pZCBAbGx2bS5tZW1jcHkucDBpOC5w MGk4Lmk2NChpOCogYWxpZ24gMzIgJTM3LCBpOCogYWxpZ24gMzIgJTM4LCBpNjQgNjQsIGkxIGZh bHNlKSwgIWRiZyAhMjA3NSwgIXRiYWEuc3RydWN0ICExOTcKLS0gICUzOSA9IGNhbGwgemVyb2V4 dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lmMTNWYXJ5 aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTgg c2lnbmV4dCAlMzYsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCBhbGlnbiAzMiAlMTEsICUi c3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsIGFsaWduIDEgJTEyKSwg IWRiZyAhMjA3NgotKyAgJTM5ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFp bDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWYxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZh cnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICUzNiwgJWNsYXNzLlZhcnlp bmdXcml0ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5aW5nV3JpdGVyKSBhbGlnbiAzMiAlMTEsICUic3Ry dWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5m bzo6RW5jb2Rpbmc0VmFyeWluZyIpIGFsaWduIDEgJTEyKSwgIWRiZyAhMjA3NgotICAgYnIgaTEg JTM5LCBsYWJlbCAlNjAsIGxhYmVsICU0MCwgIWRiZyAhMjA3NwotIAotIDsgPGxhYmVsPjo0MDog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOyBwcmVkcyA9ICUzNQotQEAgLTEw MDY4LDcgKzEwMDY4LDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludElu Zm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1ZhcnlpbmdXcml0ZXIKLSAgICU0MiA9IGJpdGNh c3QgJWNsYXNzLlZhcnlpbmdXcml0ZXIqICUxMyB0byBpOCosICFkYmcgITIwNzkKLSAgICU0MyA9 IGJpdGNhc3QgJWNsYXNzLlZhcnlpbmdXcml0ZXIqICUxIHRvIGk4KiwgIWRiZyAhMjA3OQotICAg Y2FsbCB2b2lkIEBsbHZtLm1lbWNweS5wMGk4LnAwaTguaTY0KGk4KiBhbGlnbiAzMiAlNDIsIGk4 KiBhbGlnbiAzMiAlNDMsIGk2NCA2NCwgaTEgZmFsc2UpLCAhZGJnICEyMDc5LCAhdGJhYS5zdHJ1 Y3QgITE5NwotLSAgJTQ0ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIx YXBwbHlJZlByb3BlckVuY29kaW5nSXgxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlp bmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICU0MSwgJWNsYXNzLlZhcnlpbmdX cml0ZXIqIGJ5dmFsIGFsaWduIDMyICUxMywgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRW YXJ5aW5nIiogYnl2YWwgYWxpZ24gMSAlMTQpLCAhZGJnICEyMDgwCi0rICAlNDQgPSBjYWxsIHpl cm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJeDEz VmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFf KGk4IHNpZ25leHQgJTQxLCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwoJWNsYXNzLlZhcnlp bmdXcml0ZXIpIGFsaWduIDMyICUxMywgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5 aW5nIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIikgYWxpZ24g MSAlMTQpLCAhZGJnICEyMDgwCi0gICBiciBpMSAlNDQsIGxhYmVsICU2MCwgbGFiZWwgJTQ1LCAh ZGJnICEyMDgxCi0gCi0gOyA8bGFiZWw+OjQ1OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICA7IHByZWRzID0gJTQwCi1AQCAtMTAwNzYsNyArMTAwNzYsNyBAQCBkZWZpbmUgaW50 ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEz VmFyeWluZ1dyaXRlcgotICAgJTQ3ID0gYml0Y2FzdCAlY2xhc3MuVmFyeWluZ1dyaXRlciogJTE1 IHRvIGk4KiwgIWRiZyAhMjA4MwotICAgJTQ4ID0gYml0Y2FzdCAlY2xhc3MuVmFyeWluZ1dyaXRl ciogJTEgdG8gaTgqLCAhZGJnICEyMDgzCi0gICBjYWxsIHZvaWQgQGxsdm0ubWVtY3B5LnAwaTgu cDBpOC5pNjQoaTgqIGFsaWduIDMyICU0NywgaTgqIGFsaWduIDMyICU0OCwgaTY0IDY0LCBpMSBm YWxzZSksICFkYmcgITIwODMsICF0YmFhLnN0cnVjdCAhMTk3Ci0tICAlNDkgPSBjYWxsIHplcm9l eHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJeTEzVmFy eWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4 IHNpZ25leHQgJTQ2LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwgYWxpZ24gMzIgJTE1LCAl InN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCBhbGlnbiAxICUxNiks ICFkYmcgITIwODQKLSsgICU0OSA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRh aWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0l5MTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRW YXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlNDYsICVjbGFzcy5WYXJ5 aW5nV3JpdGVyKiBieXZhbCglY2xhc3MuVmFyeWluZ1dyaXRlcikgYWxpZ24gMzIgJTE1LCAlInN0 cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCglInN0cnVjdC5QcmludElu Zm86OkVuY29kaW5nNFZhcnlpbmciKSBhbGlnbiAxICUxNiksICFkYmcgITIwODQKLSAgIGJyIGkx ICU0OSwgbGFiZWwgJTYwLCBsYWJlbCAlNTAsICFkYmcgITIwODUKLSAKLSA7IDxsYWJlbD46NTA6 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsgcHJlZHMgPSAlNDUKLUBAIC0x MDA4NCw3ICsxMDA4NCw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJ bmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNWYXJ5aW5nV3JpdGVyCi0gICAlNTIgPSBiaXRj YXN0ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiAlMTcgdG8gaTgqLCAhZGJnICEyMDg3Ci0gICAlNTMg PSBiaXRjYXN0ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiAlMSB0byBpOCosICFkYmcgITIwODcKLSAg IGNhbGwgdm9pZCBAbGx2bS5tZW1jcHkucDBpOC5wMGk4Lmk2NChpOCogYWxpZ24gMzIgJTUyLCBp OCogYWxpZ24gMzIgJTUzLCBpNjQgNjQsIGkxIGZhbHNlKSwgIWRiZyAhMjA4NywgIXRiYWEuc3Ry dWN0ICExOTcKLS0gICU1NCA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwy MWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lkMTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5 aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlNTEsICVjbGFzcy5WYXJ5aW5n V3JpdGVyKiBieXZhbCBhbGlnbiAzMiAlMTcsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0 VmFyeWluZyIqIGJ5dmFsIGFsaWduIDEgJTE4KSwgIWRiZyAhMjA4OAotKyAgJTU0ID0gY2FsbCB6 ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWQx M1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1Qx XyhpOCBzaWduZXh0ICU1MSwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5 aW5nV3JpdGVyKSBhbGlnbiAzMiAlMTcsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFy eWluZyIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIpIGFsaWdu IDEgJTE4KSwgIWRiZyAhMjA4OAotICAgYnIgaTEgJTU0LCBsYWJlbCAlNjAsIGxhYmVsICU1NSwg IWRiZyAhMjA4OQotIAotIDsgPGxhYmVsPjo1NTogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgOyBwcmVkcyA9ICU1MAotQEAgLTEwMDkyLDcgKzEwMDkyLDcgQEAgZGVmaW5lIGlu dGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kx M1ZhcnlpbmdXcml0ZXIKLSAgICU1NyA9IGJpdGNhc3QgJWNsYXNzLlZhcnlpbmdXcml0ZXIqICUx OSB0byBpOCosICFkYmcgITIwOTEKLSAgICU1OCA9IGJpdGNhc3QgJWNsYXNzLlZhcnlpbmdXcml0 ZXIqICUxIHRvIGk4KiwgIWRiZyAhMjA5MQotICAgY2FsbCB2b2lkIEBsbHZtLm1lbWNweS5wMGk4 LnAwaTguaTY0KGk4KiBhbGlnbiAzMiAlNTcsIGk4KiBhbGlnbiAzMiAlNTgsIGk2NCA2NCwgaTEg ZmFsc2UpLCAhZGJnICEyMDkxLCAhdGJhYS5zdHJ1Y3QgITE5NwotLSAgJTU5ID0gY2FsbCB6ZXJv ZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSVB2MTNW YXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8o aTggc2lnbmV4dCAlNTYsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCBhbGlnbiAzMiAlMTks ICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsIGFsaWduIDEgJTIw KSwgIWRiZyAhMjA5MgotKyAgJTU5ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRl dGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSVB2MTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGlu ZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlNTYsICVjbGFzcy5W YXJ5aW5nV3JpdGVyKiBieXZhbCglY2xhc3MuVmFyeWluZ1dyaXRlcikgYWxpZ24gMzIgJTE5LCAl InN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCglInN0cnVjdC5Qcmlu dEluZm86OkVuY29kaW5nNFZhcnlpbmciKSBhbGlnbiAxICUyMCksICFkYmcgITIwOTIKLSAgIGJy IGxhYmVsICU2MCwgIWRiZyAhMjA4OQotIAotIDsgPGxhYmVsPjo2MDogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgOyBwcmVkcyA9ICU1NSwgJTUwLCAlNDUsICU0MCwgJTM1LCAl MzAsICUyNSwgJTMKLUBAIC0xMDEwMSw3ICsxMDEwMSw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJv ZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNWYXJ5aW5nV3Jp dGVyCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IGFsd2F5c2lubGluZSBpbmxpbmVoaW50IG5v dW53aW5kCi0tZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWls MjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJYjEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFy eWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5WYXJ5aW5nV3Jp dGVyKiBieXZhbCBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5n IiogYnl2YWwgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICEyMDk0IHsKLStkZWZpbmUgaW50ZXJu YWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGlu Z0liMTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VU MF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5 aW5nV3JpdGVyKSBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5n IiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIikgYWxpZ24gMSkg IzI1IGNvbWRhdCAhZGJnICEyMDk0IHsKLSAgICU0ID0gYWxsb2NhIGkxLCBhbGlnbiAxCi0gICAl NSA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgc3RvcmUgaTggJTAsIGk4KiAlNSwgYWxpZ24gMSwg IXRiYWEgITE5MwotQEAgLTEwMTI3LDcgKzEwMTI3LDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9l eHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJYjEzVmFy eWkKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogYWx3YXlzaW5saW5lIGlubGluZWhpbnQgbm91 bndpbmQKLS1kZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwy MWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lpMTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5 aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlZhcnlpbmdXcml0 ZXIqIGJ5dmFsIGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmci KiBieXZhbCBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITIxMDMgewotK2RlZmluZSBpbnRlcm5h bCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5n SWkxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQw X1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwoJWNsYXNzLlZhcnlp bmdXcml0ZXIpIGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmci KiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKSBhbGlnbiAxKSAj MjUgY29tZGF0ICFkYmcgITIxMDMgewotICAgJTQgPSBhbGxvY2EgaTEsIGFsaWduIDEKLSAgICU1 ID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0gICBzdG9yZSBpOCAlMCwgaTgqICU1LCBhbGlnbiAxLCAh dGJhYSAhMTkzCi1AQCAtMTAxNTMsNyArMTAxNTMsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4 dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lpMTNWYXJ5 aQotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vu d2luZAotLWRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIx YXBwbHlJZlByb3BlckVuY29kaW5nSWoxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlp bmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVmFyeWluZ1dyaXRl ciogYnl2YWwgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIq IGJ5dmFsIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMjExMiB7Ci0rZGVmaW5lIGludGVybmFs IHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJ ajEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBf VDFfKGk4IHNpZ25leHQsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCglY2xhc3MuVmFyeWlu Z1dyaXRlcikgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIq IGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIpIGFsaWduIDEpICMy NSBjb21kYXQgIWRiZyAhMjExMiB7Ci0gICAlNCA9IGFsbG9jYSBpMSwgYWxpZ24gMQotICAgJTUg PSBhbGxvY2EgaTgsIGFsaWduIDEKLSAgIHN0b3JlIGk4ICUwLCBpOCogJTUsIGFsaWduIDEsICF0 YmFhICExOTMKLUBAIC0xMDE3OSw3ICsxMDE3OSw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0 IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWoxM1Zhcnlp Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IGFsd2F5c2lubGluZSBpbmxpbmVoaW50IG5vdW53 aW5kCi0tZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFh cHBseUlmUHJvcGVyRW5jb2RpbmdJZjEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWlu Z0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5WYXJ5aW5nV3JpdGVy KiBieXZhbCBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiog Ynl2YWwgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICEyMTIxIHsKLStkZWZpbmUgaW50ZXJuYWwg emVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lm MTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9U MV8oaTggc2lnbmV4dCwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5aW5n V3JpdGVyKSBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiog Ynl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIikgYWxpZ24gMSkgIzI1 IGNvbWRhdCAhZGJnICEyMTIxIHsKLSAgICU0ID0gYWxsb2NhIGkxLCBhbGlnbiAxCi0gICAlNSA9 IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgc3RvcmUgaTggJTAsIGk4KiAlNSwgYWxpZ24gMSwgIXRi YWEgITE5MwotQEAgLTEwMjA1LDcgKzEwMjA1LDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQg aTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJZjEzVmFyeWkK LSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogYWx3YXlzaW5saW5lIGlubGluZWhpbnQgbm91bndp bmQKLS1kZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFw cGx5SWZQcm9wZXJFbmNvZGluZ0l4MTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5n RUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlZhcnlpbmdXcml0ZXIq IGJ5dmFsIGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBi eXZhbCBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITIxMzAgewotK2RlZmluZSBpbnRlcm5hbCB6 ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSXgx M1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1Qx XyhpOCBzaWduZXh0LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwoJWNsYXNzLlZhcnlpbmdX cml0ZXIpIGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBi eXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKSBhbGlnbiAxKSAjMjUg Y29tZGF0ICFkYmcgITIxMzAgewotICAgJTQgPSBhbGxvY2EgaTEsIGFsaWduIDEKLSAgICU1ID0g YWxsb2NhIGk4LCBhbGlnbiAxCi0gICBzdG9yZSBpOCAlMCwgaTgqICU1LCBhbGlnbiAxLCAhdGJh YSAhMTkzCi1AQCAtMTAyMzEsNyArMTAyMzEsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBp MSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0l4MTNWYXJ5aQot IH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2lu ZAotLWRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBw bHlJZlByb3BlckVuY29kaW5nSXkxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdF RUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVmFyeWluZ1dyaXRlciog Ynl2YWwgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5 dmFsIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMjEzOSB7Ci0rZGVmaW5lIGludGVybmFsIHpl cm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJeTEz VmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFf KGk4IHNpZ25leHQsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCglY2xhc3MuVmFyeWluZ1dy aXRlcikgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5 dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIpIGFsaWduIDEpICMyNSBj b21kYXQgIWRiZyAhMjEzOSB7Ci0gICAlNCA9IGFsbG9jYSBpMSwgYWxpZ24gMQotICAgJTUgPSBh bGxvY2EgaTgsIGFsaWduIDEKLSAgIHN0b3JlIGk4ICUwLCBpOCogJTUsIGFsaWduIDEsICF0YmFh ICExOTMKLUBAIC0xMDI1Nyw3ICsxMDI1Nyw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkx IEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSXkxM1ZhcnlpCi0g fQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IGFsd2F5c2lubGluZSBpbmxpbmVoaW50IG5vdW53aW5k Ci0tZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBs eUlmUHJvcGVyRW5jb2RpbmdJZDEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VF RWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBi eXZhbCBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2 YWwgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICEyMTQ4IHsKLStkZWZpbmUgaW50ZXJuYWwgemVy b2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lkMTNW YXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8o aTggc2lnbmV4dCwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5aW5nV3Jp dGVyKSBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2 YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIikgYWxpZ24gMSkgIzI1IGNv bWRhdCAhZGJnICEyMTQ4IHsKLSAgICU0ID0gYWxsb2NhIGkxLCBhbGlnbiAxCi0gICAlNSA9IGFs bG9jYSBpOCwgYWxpZ24gMQotICAgc3RvcmUgaTggJTAsIGk4KiAlNSwgYWxpZ24gMSwgIXRiYWEg ITE5MwotQEAgLTEwMjgzLDcgKzEwMjgzLDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEg QF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJZDEzVmFyeWkKLSB9 Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogYWx3YXlzaW5saW5lIGlubGluZWhpbnQgbm91bndpbmQK LS1kZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5 SWZQcm9wZXJFbmNvZGluZ0lQdjEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VF RWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBi eXZhbCBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2 YWwgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICEyMTU3IHsKLStkZWZpbmUgaW50ZXJuYWwgemVy b2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lQdjEz VmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFf KGk4IHNpZ25leHQsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCglY2xhc3MuVmFyeWluZ1dy aXRlcikgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5 dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIpIGFsaWduIDEpICMyNSBj b21kYXQgIWRiZyAhMjE1NyB7Ci0gICAlNCA9IGFsbG9jYSBpMSwgYWxpZ24gMQotICAgJTUgPSBh bGxvY2EgaTgsIGFsaWduIDEKLSAgIHN0b3JlIGk4ICUwLCBpOCogJTUsIGFsaWduIDEsICF0YmFh ICExOTMKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvaXNwYy90ZW1wbGF0ZSBiL3NyY3BrZ3MvaXNwYy90 ZW1wbGF0ZQppbmRleCA5YzNhY2I0MmE5Y2YuLjY4ZmVkNWE0YzY1OSAxMDA2NDQKLS0tIGEvc3Jj cGtncy9pc3BjL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvaXNwYy90ZW1wbGF0ZQpAQCAtMSwxMCAr MSwxMCBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnaXNwYycKIHBrZ25hbWU9aXNwYwotdmVyc2lv bj0xLjE1LjAKLXJldmlzaW9uPTIKK3ZlcnNpb249MS4xNy4wCityZXZpc2lvbj0xCiBhcmNocz0i eDg2XzY0KiIKIGJ1aWxkX3N0eWxlPWNtYWtlCi1jb25maWd1cmVfYXJncz0iLURJU1BDX05PX0RV TVBTPU9OIC1EQVJNX0VOQUJMRUQ9T0ZGIgorY29uZmlndXJlX2FyZ3M9Ii1ESVNQQ19OT19EVU1Q Uz1PTiAtREFSTV9FTkFCTEVEPU9GRiAtRENNQUtFX0JVSUxEX1RZUEU9UmVsZWFzZSIKIGhvc3Rt YWtlZGVwZW5kcz0iY2xhbmcgY2xhbmctdG9vbHMtZXh0cmEgcHl0aG9uMyBtNCBiaXNvbiBmbGV4 IGxsdm0iCiBtYWtlZGVwZW5kcz0ibmN1cnNlcy1kZXZlbCBuY3Vyc2VzLWxpYnRpbmZvLWRldmVs IHpsaWItZGV2ZWwiCiBzaG9ydF9kZXNjPSJDb21waWxlciBmb3IgaGlnaC1wZXJmb3JtYW5jZSBT SU1EIHByb2dyYW1taW5nIG9uIHRoZSBDUFUiCkBAIC0xMiw3ICsxMiw3IEBAIG1haW50YWluZXI9 IkFuZHJlYSBCcmFuY2FsZW9uaSA8YWJjQHBvbXBlbC5tZT4iCiBsaWNlbnNlPSJCU0QtMy1DbGF1 c2UiCiBob21lcGFnZT0iaHR0cHM6Ly9pc3BjLmdpdGh1Yi5pbyIKIGRpc3RmaWxlcz0iaHR0cHM6 Ly9naXRodWIuY29tL2lzcGMvaXNwYy9hcmNoaXZlL3Yke3ZlcnNpb259LnRhci5neiIKLWNoZWNr c3VtPTI2NThmZjAwZGMwNDVhYzlmY2VmYmY2YmQyNmRmZmFmNzIzYjA1OWE5NDJhMjdkZjkxYmJi NjFiYzUwM2EyODUKK2NoZWNrc3VtPTM3ZmIxMDU1ZDZjNmIyMzJlMTEyZDhkNTAxNDVkNzI2ODI0 ZWQ0ZDhkYTkzYTczOTYzMTVkY2ViYTZjNzZlNjIKIG5vY3Jvc3M9eWVzCiBub3BpZT15ZXMKIAo= --===============5323688800217564088==--