From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (qmail 20475 invoked from network); 23 May 2022 01:03:11 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 23 May 2022 01:03:11 -0000 Content-Type: multipart/mixed; boundary="===============4788363768612827022==" 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: Mon, 23 May 2022 03:03:10 +0200 List-Id: Message-ID: <20220523010310.4yN4XX1hzzPZ0sH36pqrnATGPqFtKC5xuhMcQRnDp64@z> GitHub notification mails are now in MIME to allow UTF8. --===============4788363768612827022== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgcHJleiBhZ2FpbnN0IG1hc3RlciBv biB0aGUgdm9pZC1wYWNrYWdlcyByZXBvc2l0b3J5CgpodHRwczovL2dpdGh1Yi5jb20vcHJlei92 b2lkLXBhY2thZ2VzIGxsdm0KaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9pZC1wYWNr YWdlcy9wdWxsLzM2OTYyCgpMbHZtMTQKU3VwZXJzZWRlcyBodHRwczovL2dpdGh1Yi5jb20vdm9p ZC1saW51eC92b2lkLXBhY2thZ2VzL3B1bGwvMzYyMjksIGh0dHBzOi8vZ2l0aHViLmNvbS92b2lk LWxpbnV4L3ZvaWQtcGFja2FnZXMvcHVsbC8zNDgwMCAtIHRoYW5rIHlvdSBAbW90b3J0byBhbmQg QERCTG91aXMuDQoNClVwZGF0ZWQgcGF0Y2hlcywgcGluZyBAcTY2IC4NCg0KW2NpIHNraXBdCgpB IHBhdGNoIGZpbGUgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2th Z2VzL3B1bGwvMzY5NjIucGF0Y2ggaXMgYXR0YWNoZWQ= --===============4788363768612827022== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-llvm-36962.patch" RnJvbSBkYjNiNWM5YWI1NDI4MTIyMDdhNmViM2EzNzY4ZGEyOGU5MjZhNmNlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBwcmV6IDxwcmV6QG5hdGlvbmFsLnNoaXRwb3N0aW5nLmFnZW5j eT4KRGF0ZTogTW9uLCAyIE1heSAyMDIyIDIxOjE1OjA2ICswMjAwClN1YmplY3Q6IFtQQVRDSCAw MS8yN10gTmV3IHBhY2thZ2U6IGxsdm0xNC0xNC4wLjMKCi0tLQogY29tbW9uL3NobGlicyAgICAg 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 cwppbmRleCAwNTgxMDk2NjQ2NTguLjBjYTVkN2Q1ZDZmOSAxMDA2NDQKLS0tIGEvY29tbW9uL3No bGlicworKysgYi9jb21tb24vc2hsaWJzCkBAIC05NzMsMTEgKzk3MywxMiBAQCBsaWJ1Y2hhcmRl dC5zby4wIHVjaGFyZGV0LTAuMC42XzEKIGxpYmd0a3NvdXJjZXZpZXdtbS0zLjAuc28uMCBndGtz b3VyY2V2aWV3bW0tMy4yLjBfMQogbGlieWFqbC5zby4yIHlhamwtMi4wLjFfMQogbGliY29uZnVz ZS5zby4yIGNvbmZ1c2UtMy4yLjFfMQotbGlibGxkYi5zby4xMiBsbGRiLTEyLjAuMF8xCi1saWJj bGFuZy5zby4xMiBsaWJjbGFuZy0xMi4wLjBfMQotbGliY2xhbmctY3BwLnNvLjEyIGxpYmNsYW5n LWNwcC0xMi4wLjBfMQorbGlibGxkYi5zby4xNCBsbGRiLTE0LjAuM18xCitsaWJjbGFuZy5zby4x NCBsaWJjbGFuZy0xNC4wLjNfMQorbGliY2xhbmctY3BwLnNvLjE0IGxpYmNsYW5nLWNwcC0xNC4w LjNfMQogbGliTExWTS0xMS5zbyBsaWJsbHZtMTEtMTEuMC4wXzEKIGxpYkxMVk0tMTIuc28gbGli bGx2bTEyLTEyLjAuMF8xCitsaWJMTFZNLTE0LnNvIGxpYmxsdm0xNC0xNC4wLjNfMQogbGliaXNv ZnMuc28uNiBsaWJpc29mcy0wLjYuMjRfMQogbGlibXBhY2suc28uMCBsaWJtcGFjay0xLjAuNV8x CiBsaWJHZW9JUC5zby4xIGxpYmdlb2lwLTEuNC44XzEKQEAgLTQxNzAsMyArNDE3MSwxMiBAQCBs aWJUaHJlYWQuc28gcm9vdC02LjI0LjA2XzEKIGxpYlRNVkEuc28gcm9vdC02LjI0LjA2XzEKIGxp Yk1hdGhDb3JlLnNvIHJvb3QtNi4yNC4wNl8xCiBsaWJsb3dkb3duLnNvIGxvd2Rvd24tMC4xMS4y XzEKK2xpYm9tcC5zbyBsaWJvbXAtMTQuMC4zXzEKK2xpYm9tcHRhcmdldC5ydGwuYW1kZ3B1LnNv IGxpYm9tcC0xNC4wLjNfMQorbGlib21wdGFyZ2V0LnJ0bC5jdWRhLnNvIGxpYm9tcC0xNC4wLjNf MQorbGlib21wdGFyZ2V0LnJ0bC54ODZfNjQuc28gbGlib21wLTE0LjAuM18xCitsaWJhcmNoZXIu c28gbGlib21wLTE0LjAuM18xCitsaWJvbXB0YXJnZXQuc28gbGlib21wLTE0LjAuM18xCitsaWJs bGRiSW50ZWxGZWF0dXJlcy5zby4xNCBsbGRiLTE0LjAuM18xCitsaWJMVE8uc28uMTQgbGx2bTE0 LTE0LjAuM18xCitsaWJSZW1hcmtzLnNvLjE0IGxsdm0xNC0xNC4wLjNfMQpkaWZmIC0tZ2l0IGEv c3JjcGtncy9jbGFuZyBiL3NyY3BrZ3MvY2xhbmcKaW5kZXggY2Q2MGZkN2E5ODFiLi4xZDQyZWQ3 NjMyYTYgMTIwMDAwCi0tLSBhL3NyY3BrZ3MvY2xhbmcKKysrIGIvc3JjcGtncy9jbGFuZwpAQCAt MSArMSBAQAotbGx2bTEyClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorbGx2bTE0ClwgTm8g bmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9jbGFuZy1hbmFseXpl ciBiL3NyY3BrZ3MvY2xhbmctYW5hbHl6ZXIKaW5kZXggY2Q2MGZkN2E5ODFiLi4xZDQyZWQ3NjMy YTYgMTIwMDAwCi0tLSBhL3NyY3BrZ3MvY2xhbmctYW5hbHl6ZXIKKysrIGIvc3JjcGtncy9jbGFu Zy1hbmFseXplcgpAQCAtMSArMSBAQAotbGx2bTEyClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls ZQorbGx2bTE0ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9jbGFuZy10b29scy1leHRyYSBiL3NyY3BrZ3MvY2xhbmctdG9vbHMtZXh0cmEKaW5kZXggY2Q2 MGZkN2E5ODFiLi4xZDQyZWQ3NjMyYTYgMTIwMDAwCi0tLSBhL3NyY3BrZ3MvY2xhbmctdG9vbHMt ZXh0cmEKKysrIGIvc3JjcGtncy9jbGFuZy10b29scy1leHRyYQpAQCAtMSArMSBAQAotbGx2bTEy ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorbGx2bTE0ClwgTm8gbmV3bGluZSBhdCBlbmQg b2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9saWJjbGFuZyBiL3NyY3BrZ3MvbGliY2xhbmcK aW5kZXggY2Q2MGZkN2E5ODFiLi4xZDQyZWQ3NjMyYTYgMTIwMDAwCi0tLSBhL3NyY3BrZ3MvbGli Y2xhbmcKKysrIGIvc3JjcGtncy9saWJjbGFuZwpAQCAtMSArMSBAQAotbGx2bTEyClwgTm8gbmV3 bGluZSBhdCBlbmQgb2YgZmlsZQorbGx2bTE0ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpk aWZmIC0tZ2l0IGEvc3JjcGtncy9saWJjbGFuZy1jcHAgYi9zcmNwa2dzL2xpYmNsYW5nLWNwcApp bmRleCBjZDYwZmQ3YTk4MWIuLjFkNDJlZDc2MzJhNiAxMjAwMDAKLS0tIGEvc3JjcGtncy9saWJj bGFuZy1jcHAKKysrIGIvc3JjcGtncy9saWJjbGFuZy1jcHAKQEAgLTEgKzEgQEAKLWxsdm0xMgpc IE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK2xsdm0xNApcIE5vIG5ld2xpbmUgYXQgZW5kIG9m IGZpbGUKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGliY3h4IGIvc3JjcGtncy9saWJjeHgKaW5kZXgg Y2Q2MGZkN2E5ODFiLi4xZDQyZWQ3NjMyYTYgMTIwMDAwCi0tLSBhL3NyY3BrZ3MvbGliY3h4Cisr KyBiL3NyY3BrZ3MvbGliY3h4CkBAIC0xICsxIEBACi1sbHZtMTIKXCBObyBuZXdsaW5lIGF0IGVu ZCBvZiBmaWxlCitsbHZtMTQKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQg YS9zcmNwa2dzL2xpYmN4eC1kZXZlbCBiL3NyY3BrZ3MvbGliY3h4LWRldmVsCmluZGV4IGNkNjBm ZDdhOTgxYi4uMWQ0MmVkNzYzMmE2IDEyMDAwMAotLS0gYS9zcmNwa2dzL2xpYmN4eC1kZXZlbAor KysgYi9zcmNwa2dzL2xpYmN4eC1kZXZlbApAQCAtMSArMSBAQAotbGx2bTEyClwgTm8gbmV3bGlu ZSBhdCBlbmQgb2YgZmlsZQorbGx2bTE0ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZm IC0tZ2l0IGEvc3JjcGtncy9saWJjeHhhYmkgYi9zcmNwa2dzL2xpYmN4eGFiaQppbmRleCBjZDYw ZmQ3YTk4MWIuLjFkNDJlZDc2MzJhNiAxMjAwMDAKLS0tIGEvc3JjcGtncy9saWJjeHhhYmkKKysr IGIvc3JjcGtncy9saWJjeHhhYmkKQEAgLTEgKzEgQEAKLWxsdm0xMgpcIE5vIG5ld2xpbmUgYXQg ZW5kIG9mIGZpbGUKK2xsdm0xNApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdp dCBhL3NyY3BrZ3MvbGliY3h4YWJpLWRldmVsIGIvc3JjcGtncy9saWJjeHhhYmktZGV2ZWwKaW5k ZXggY2Q2MGZkN2E5ODFiLi4xZDQyZWQ3NjMyYTYgMTIwMDAwCi0tLSBhL3NyY3BrZ3MvbGliY3h4 YWJpLWRldmVsCisrKyBiL3NyY3BrZ3MvbGliY3h4YWJpLWRldmVsCkBAIC0xICsxIEBACi1sbHZt MTIKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCitsbHZtMTQKXCBObyBuZXdsaW5lIGF0IGVu ZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xpYmxsdm0xNCBiL3NyY3BrZ3MvbGlibGx2 bTE0Cm5ldyBmaWxlIG1vZGUgMTIwMDAwCmluZGV4IDAwMDAwMDAwMDAwMC4uMWQ0MmVkNzYzMmE2 Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9saWJsbHZtMTQKQEAgLTAsMCArMSBAQAorbGx2 bTE0ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9saWJv bXAgYi9zcmNwa2dzL2xpYm9tcAppbmRleCBjZDYwZmQ3YTk4MWIuLjFkNDJlZDc2MzJhNiAxMjAw MDAKLS0tIGEvc3JjcGtncy9saWJvbXAKKysrIGIvc3JjcGtncy9saWJvbXAKQEAgLTEgKzEgQEAK LWxsdm0xMgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK2xsdm0xNApcIE5vIG5ld2xpbmUg YXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGlib21wLWRldmVsIGIvc3JjcGtn cy9saWJvbXAtZGV2ZWwKaW5kZXggY2Q2MGZkN2E5ODFiLi4xZDQyZWQ3NjMyYTYgMTIwMDAwCi0t LSBhL3NyY3BrZ3MvbGlib21wLWRldmVsCisrKyBiL3NyY3BrZ3MvbGlib21wLWRldmVsCkBAIC0x ICsxIEBACi1sbHZtMTIKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCitsbHZtMTQKXCBObyBu ZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsZCBiL3NyY3BrZ3Mv bGxkCmluZGV4IGNkNjBmZDdhOTgxYi4uMWQ0MmVkNzYzMmE2IDEyMDAwMAotLS0gYS9zcmNwa2dz L2xsZAorKysgYi9zcmNwa2dzL2xsZApAQCAtMSArMSBAQAotbGx2bTEyClwgTm8gbmV3bGluZSBh dCBlbmQgb2YgZmlsZQorbGx2bTE0ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0t Z2l0IGEvc3JjcGtncy9sbGQtZGV2ZWwgYi9zcmNwa2dzL2xsZC1kZXZlbAppbmRleCBjZDYwZmQ3 YTk4MWIuLjFkNDJlZDc2MzJhNiAxMjAwMDAKLS0tIGEvc3JjcGtncy9sbGQtZGV2ZWwKKysrIGIv c3JjcGtncy9sbGQtZGV2ZWwKQEAgLTEgKzEgQEAKLWxsdm0xMgpcIE5vIG5ld2xpbmUgYXQgZW5k IG9mIGZpbGUKK2xsdm0xNApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBh L3NyY3BrZ3MvbGxkYiBiL3NyY3BrZ3MvbGxkYgppbmRleCBjZDYwZmQ3YTk4MWIuLjFkNDJlZDc2 MzJhNiAxMjAwMDAKLS0tIGEvc3JjcGtncy9sbGRiCisrKyBiL3NyY3BrZ3MvbGxkYgpAQCAtMSAr MSBAQAotbGx2bTEyClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorbGx2bTE0ClwgTm8gbmV3 bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbGRiLWRldmVsIGIvc3Jj cGtncy9sbGRiLWRldmVsCmluZGV4IGNkNjBmZDdhOTgxYi4uMWQ0MmVkNzYzMmE2IDEyMDAwMAot LS0gYS9zcmNwa2dzL2xsZGItZGV2ZWwKKysrIGIvc3JjcGtncy9sbGRiLWRldmVsCkBAIC0xICsx IEBACi1sbHZtMTIKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCitsbHZtMTQKXCBObyBuZXds aW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0tbGlidW53aW5kIGIv c3JjcGtncy9sbHZtLWxpYnVud2luZAppbmRleCBjZDYwZmQ3YTk4MWIuLjFkNDJlZDc2MzJhNiAx MjAwMDAKLS0tIGEvc3JjcGtncy9sbHZtLWxpYnVud2luZAorKysgYi9zcmNwa2dzL2xsdm0tbGli dW53aW5kCkBAIC0xICsxIEBACi1sbHZtMTIKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCits bHZtMTQKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xs dm0tbGlidW53aW5kLWRldmVsIGIvc3JjcGtncy9sbHZtLWxpYnVud2luZC1kZXZlbAppbmRleCBj ZDYwZmQ3YTk4MWIuLjFkNDJlZDc2MzJhNiAxMjAwMDAKLS0tIGEvc3JjcGtncy9sbHZtLWxpYnVu d2luZC1kZXZlbAorKysgYi9zcmNwa2dzL2xsdm0tbGlidW53aW5kLWRldmVsCkBAIC0xICsxIEBA Ci1sbHZtMTIKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCitsbHZtMTQKXCBObyBuZXdsaW5l IGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0xNC9wYXRjaGVzL2NsYW5n LTAwMi1hZGQtbXVzbC10cmlwbGVzLnBhdGNoIGIvc3JjcGtncy9sbHZtMTQvcGF0Y2hlcy9jbGFu Zy0wMDItYWRkLW11c2wtdHJpcGxlcy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAwMDAuLjdiNjQwZTEwMmJlZAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbGx2 bTE0L3BhdGNoZXMvY2xhbmctMDAyLWFkZC1tdXNsLXRyaXBsZXMucGF0Y2gKQEAgLTAsMCArMSwx MTAgQEAKKy0tLSBhL2NsYW5nL2xpYi9Ecml2ZXIvVG9vbENoYWlucy9HbnUuY3BwCisrKysgYi9j bGFuZy9saWIvRHJpdmVyL1Rvb2xDaGFpbnMvR251LmNwcAorQEAgLTIwODMsNyArMjA4Myw4IEBA IHZvaWQgR2VuZXJpY19HQ0M6OkdDQ0luc3RhbGxhdGlvbkRldGVjdG9yOjpBZGREZWZhdWx0R0ND UHJlZml4ZXMoCisgICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgQVJNSEZUcmlwbGVzW10gPSB7 ImFybS1saW51eC1nbnVlYWJpaGYiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICJhcm12N2hsLXJlZGhhdC1saW51eC1nbnVlYWJpIiwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYXJtdjZobC1zdXNlLWxpbnV4LWdu dWVhYmkiLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJh cm12N2hsLXN1c2UtbGludXgtZ251ZWFiaSJ9OworKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICJhcm12N2hsLXN1c2UtbGludXgtZ251ZWFiaSIsCisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImFybXY3bC1saW51eC1nbnVl YWJpaGYifTsKKyAgIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBBUk1lYkxpYkRpcnNbXSA9IHsi L2xpYiJ9OworICAgc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IEFSTWViVHJpcGxlc1tdID0geyJh cm1lYi1saW51eC1nbnVlYWJpIn07CisgICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgQVJNZWJI RlRyaXBsZXNbXSA9IHsKK0BAIC0yMTUxLDggKzIxNTIsNyBAQCB2b2lkIEdlbmVyaWNfR0NDOjpH Q0NJbnN0YWxsYXRpb25EZXRlY3Rvcjo6QWRkRGVmYXVsdEdDQ1ByZWZpeGVzKAorICAgICAgICJw b3dlcnBjNjQtc3VzZS1saW51eCIsICJwb3dlcnBjLW1vbnRhdmlzdGEtbGludXhzcGUifTsKKyAg IHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBQUENMRUxpYkRpcnNbXSA9IHsiL2xpYjMyIiwgIi9s aWIifTsKKyAgIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBQUENMRVRyaXBsZXNbXSA9IHsicG93 ZXJwY2xlLWxpbnV4LWdudSIsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgInBvd2VycGNsZS11bmtub3duLWxpbnV4LWdudSIsCistICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInBvd2VycGNsZS1saW51eC1tdXNsIn07Cisr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInBvd2VycGNsZS11 bmtub3duLWxpbnV4LWdudSJ9OworCisgICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgUFBDNjRM aWJEaXJzW10gPSB7Ii9saWI2NCIsICIvbGliIn07CisgICBzdGF0aWMgY29uc3QgY2hhciAqY29u c3QgUFBDNjRUcmlwbGVzW10gPSB7CitAQCAtMjIzMSw2ICsyMjMxLDg3IEBAIHZvaWQgR2VuZXJp Y19HQ0M6OkdDQ0luc3RhbGxhdGlvbkRldGVjdG9yOjpBZGREZWZhdWx0R0NDUHJlZml4ZXMoCisg ICAgIHJldHVybjsKKyAgIH0KKworKyAgaWYgKFRhcmdldFRyaXBsZS5pc011c2woKSkgeworKyAg ICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgQUFyY2g2NE11c2xUcmlwbGVzW10gPSB7ImFhcmNo NjQtbGludXgtbXVzbCJ9OworKyAgICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgQVJNSEZNdXNs VHJpcGxlc1tdID0geworKyAgICAgICAgImFybS1saW51eC1tdXNsZWFiaWhmIiwgImFybXY3bC1s aW51eC1tdXNsZWFiaWhmIgorKyAgICB9OworKyAgICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3Qg QVJNTXVzbFRyaXBsZXNbXSA9IHsiYXJtLWxpbnV4LW11c2xlYWJpIn07CisrICAgIHN0YXRpYyBj b25zdCBjaGFyICpjb25zdCBYODZfNjRNdXNsVHJpcGxlc1tdID0geyJ4ODZfNjQtbGludXgtbXVz bCJ9OworKyAgICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgWDg2TXVzbFRyaXBsZXNbXSA9IHsi aTY4Ni1saW51eC1tdXNsIn07CisrICAgIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBNSVBTTXVz bFRyaXBsZXNbXSA9IHsKKysgICAgICAgICJtaXBzLWxpbnV4LW11c2wiLCAibWlwc2VsLWxpbnV4 LW11c2wiLAorKyAgICAgICAgIm1pcHNlbC1saW51eC1tdXNsaGYiLCAibWlwcy1saW51eC1tdXNs aGYiCisrICAgIH07CisrICAgIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBQUENNdXNsVHJpcGxl c1tdID0geyJwb3dlcnBjLWxpbnV4LW11c2wifTsKKysgICAgc3RhdGljIGNvbnN0IGNoYXIgKmNv bnN0IFBQQ0xFTXVzbFRyaXBsZXNbXSA9IHsicG93ZXJwY2xlLWxpbnV4LW11c2wifTsKKysgICAg c3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IFBQQzY0TXVzbFRyaXBsZXNbXSA9IHsicG93ZXJwYzY0 LWxpbnV4LW11c2wifTsKKysgICAgc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IFBQQzY0TEVNdXNs VHJpcGxlc1tdID0geyJwb3dlcnBjNjRsZS1saW51eC1tdXNsIn07CisrCisrICAgIHN3aXRjaCAo VGFyZ2V0VHJpcGxlLmdldEFyY2goKSkgeworKyAgICBjYXNlIGxsdm06OlRyaXBsZTo6YWFyY2g2 NDoKKysgICAgICBMaWJEaXJzLmFwcGVuZChiZWdpbihBQXJjaDY0TGliRGlycyksIGVuZChBQXJj aDY0TGliRGlycykpOworKyAgICAgIFRyaXBsZUFsaWFzZXMuYXBwZW5kKGJlZ2luKEFBcmNoNjRN dXNsVHJpcGxlcyksIGVuZChBQXJjaDY0TXVzbFRyaXBsZXMpKTsKKysgICAgICBCaWFyY2hMaWJE aXJzLmFwcGVuZChiZWdpbihBQXJjaDY0TGliRGlycyksIGVuZChBQXJjaDY0TGliRGlycykpOwor KyAgICAgIEJpYXJjaFRyaXBsZUFsaWFzZXMuYXBwZW5kKGJlZ2luKEFBcmNoNjRNdXNsVHJpcGxl cyksIGVuZChBQXJjaDY0TXVzbFRyaXBsZXMpKTsKKysgICAgICBicmVhazsKKysgICAgY2FzZSBs bHZtOjpUcmlwbGU6OmFybToKKysgICAgICBMaWJEaXJzLmFwcGVuZChiZWdpbihBUk1MaWJEaXJz KSwgZW5kKEFSTUxpYkRpcnMpKTsKKysgICAgICBpZiAoVGFyZ2V0VHJpcGxlLmdldEVudmlyb25t ZW50KCkgPT0gbGx2bTo6VHJpcGxlOjpNdXNsRUFCSUhGKSB7CisrICAgICAgICBUcmlwbGVBbGlh c2VzLmFwcGVuZChiZWdpbihBUk1IRk11c2xUcmlwbGVzKSwgZW5kKEFSTUhGTXVzbFRyaXBsZXMp KTsKKysgICAgICB9IGVsc2UgeworKyAgICAgICAgVHJpcGxlQWxpYXNlcy5hcHBlbmQoYmVnaW4o QVJNTXVzbFRyaXBsZXMpLCBlbmQoQVJNTXVzbFRyaXBsZXMpKTsKKysgICAgICB9CisrICAgICAg YnJlYWs7CisrICAgIGNhc2UgbGx2bTo6VHJpcGxlOjp4ODZfNjQ6CisrICAgICAgTGliRGlycy5h cHBlbmQoYmVnaW4oWDg2XzY0TGliRGlycyksIGVuZChYODZfNjRMaWJEaXJzKSk7CisrICAgICAg VHJpcGxlQWxpYXNlcy5hcHBlbmQoYmVnaW4oWDg2XzY0TXVzbFRyaXBsZXMpLCBlbmQoWDg2XzY0 TXVzbFRyaXBsZXMpKTsKKysgICAgICBCaWFyY2hMaWJEaXJzLmFwcGVuZChiZWdpbihYODZMaWJE aXJzKSwgZW5kKFg4NkxpYkRpcnMpKTsKKysgICAgICBCaWFyY2hUcmlwbGVBbGlhc2VzLmFwcGVu ZChiZWdpbihYODZNdXNsVHJpcGxlcyksIGVuZChYODZNdXNsVHJpcGxlcykpOworKyAgICAgIGJy ZWFrOworKyAgICBjYXNlIGxsdm06OlRyaXBsZTo6eDg2OgorKyAgICAgIExpYkRpcnMuYXBwZW5k KGJlZ2luKFg4NkxpYkRpcnMpLCBlbmQoWDg2TGliRGlycykpOworKyAgICAgIFRyaXBsZUFsaWFz ZXMuYXBwZW5kKGJlZ2luKFg4Nk11c2xUcmlwbGVzKSwgZW5kKFg4Nk11c2xUcmlwbGVzKSk7Cisr ICAgICAgQmlhcmNoTGliRGlycy5hcHBlbmQoYmVnaW4oWDg2XzY0TGliRGlycyksIGVuZChYODZf NjRMaWJEaXJzKSk7CisrICAgICAgQmlhcmNoVHJpcGxlQWxpYXNlcy5hcHBlbmQoYmVnaW4oWDg2 XzY0TXVzbFRyaXBsZXMpLCBlbmQoWDg2XzY0TXVzbFRyaXBsZXMpKTsKKysgICAgICBicmVhazsK KysgICAgY2FzZSBsbHZtOjpUcmlwbGU6Om1pcHM6CisrICAgICAgTGliRGlycy5hcHBlbmQoYmVn aW4oTUlQU0xpYkRpcnMpLCBlbmQoTUlQU0xpYkRpcnMpKTsKKysgICAgICBUcmlwbGVBbGlhc2Vz LmFwcGVuZChiZWdpbihNSVBTTXVzbFRyaXBsZXMpLCBlbmQoTUlQU011c2xUcmlwbGVzKSk7Cisr ICAgICAgYnJlYWs7CisrICAgIGNhc2UgbGx2bTo6VHJpcGxlOjpwcGM6CisrICAgICAgTGliRGly cy5hcHBlbmQoYmVnaW4oUFBDTGliRGlycyksIGVuZChQUENMaWJEaXJzKSk7CisrICAgICAgVHJp cGxlQWxpYXNlcy5hcHBlbmQoYmVnaW4oUFBDTXVzbFRyaXBsZXMpLCBlbmQoUFBDTXVzbFRyaXBs ZXMpKTsKKysgICAgICBCaWFyY2hMaWJEaXJzLmFwcGVuZChiZWdpbihQUEM2NExpYkRpcnMpLCBl bmQoUFBDNjRMaWJEaXJzKSk7CisrICAgICAgQmlhcmNoVHJpcGxlQWxpYXNlcy5hcHBlbmQoYmVn aW4oUFBDNjRNdXNsVHJpcGxlcyksIGVuZChQUEM2NE11c2xUcmlwbGVzKSk7CisrICAgICAgYnJl YWs7CisrICAgIGNhc2UgbGx2bTo6VHJpcGxlOjpwcGNsZToKKysgICAgICBMaWJEaXJzLmFwcGVu ZChiZWdpbihQUENMRUxpYkRpcnMpLCBlbmQoUFBDTEVMaWJEaXJzKSk7CisrICAgICAgVHJpcGxl QWxpYXNlcy5hcHBlbmQoYmVnaW4oUFBDTEVNdXNsVHJpcGxlcyksIGVuZChQUENMRU11c2xUcmlw bGVzKSk7CisrICAgICAgQmlhcmNoTGliRGlycy5hcHBlbmQoYmVnaW4oUFBDNjRMRUxpYkRpcnMp LCBlbmQoUFBDNjRMRUxpYkRpcnMpKTsKKysgICAgICBCaWFyY2hUcmlwbGVBbGlhc2VzLmFwcGVu ZChiZWdpbihQUEM2NExFTXVzbFRyaXBsZXMpLCBlbmQoUFBDNjRMRU11c2xUcmlwbGVzKSk7Cisr ICAgICAgYnJlYWs7CisrICAgIGNhc2UgbGx2bTo6VHJpcGxlOjpwcGM2NDoKKysgICAgICBMaWJE aXJzLmFwcGVuZChiZWdpbihQUEM2NExpYkRpcnMpLCBlbmQoUFBDNjRMaWJEaXJzKSk7CisrICAg ICAgVHJpcGxlQWxpYXNlcy5hcHBlbmQoYmVnaW4oUFBDNjRNdXNsVHJpcGxlcyksIGVuZChQUEM2 NE11c2xUcmlwbGVzKSk7CisrICAgICAgQmlhcmNoTGliRGlycy5hcHBlbmQoYmVnaW4oUFBDTGli RGlycyksIGVuZChQUENMaWJEaXJzKSk7CisrICAgICAgQmlhcmNoVHJpcGxlQWxpYXNlcy5hcHBl bmQoYmVnaW4oUFBDTXVzbFRyaXBsZXMpLCBlbmQoUFBDTXVzbFRyaXBsZXMpKTsKKysgICAgICBi cmVhazsKKysgICAgY2FzZSBsbHZtOjpUcmlwbGU6OnBwYzY0bGU6CisrICAgICAgTGliRGlycy5h cHBlbmQoYmVnaW4oUFBDNjRMRUxpYkRpcnMpLCBlbmQoUFBDNjRMRUxpYkRpcnMpKTsKKysgICAg ICBUcmlwbGVBbGlhc2VzLmFwcGVuZChiZWdpbihQUEM2NExFTXVzbFRyaXBsZXMpLCBlbmQoUFBD NjRMRU11c2xUcmlwbGVzKSk7CisrICAgICAgQmlhcmNoTGliRGlycy5hcHBlbmQoYmVnaW4oUFBD TEVMaWJEaXJzKSwgZW5kKFBQQ0xFTGliRGlycykpOworKyAgICAgIEJpYXJjaFRyaXBsZUFsaWFz ZXMuYXBwZW5kKGJlZ2luKFBQQ0xFTXVzbFRyaXBsZXMpLCBlbmQoUFBDTEVNdXNsVHJpcGxlcykp OworKyAgICAgIGJyZWFrOworKyAgICBkZWZhdWx0OgorKyAgICAgIGJyZWFrOworKyAgICB9Cisr ICAgIFRyaXBsZUFsaWFzZXMucHVzaF9iYWNrKFRhcmdldFRyaXBsZS5zdHIoKSk7CisrICAgIGlm IChUYXJnZXRUcmlwbGUuc3RyKCkgIT0gQmlhcmNoVHJpcGxlLnN0cigpKQorKyAgICAgIEJpYXJj aFRyaXBsZUFsaWFzZXMucHVzaF9iYWNrKEJpYXJjaFRyaXBsZS5zdHIoKSk7CisrICAgIHJldHVy bjsKKysgIH0KKysKKyAgIC8vIEFuZHJvaWQgdGFyZ2V0cyBzaG91bGQgbm90IHVzZSBHTlUvTGlu dXggdG9vbHMgb3IgbGlicmFyaWVzLgorICAgaWYgKFRhcmdldFRyaXBsZS5pc0FuZHJvaWQoKSkg eworICAgICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgQUFyY2g2NEFuZHJvaWRUcmlwbGVzW10g PSB7CmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0xNC9wYXRjaGVzL2NsYW5nLTAwMy1wcGM2NC1k eW5hbWljLWxpbmtlci1wYXRoLnBhdGNoIGIvc3JjcGtncy9sbHZtMTQvcGF0Y2hlcy9jbGFuZy0w MDMtcHBjNjQtZHluYW1pYy1saW5rZXItcGF0aC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAwMDAuLjQ3MTI4YWY3OWI3ZgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3Br Z3MvbGx2bTE0L3BhdGNoZXMvY2xhbmctMDAzLXBwYzY0LWR5bmFtaWMtbGlua2VyLXBhdGgucGF0 Y2gKQEAgLTAsMCArMSwxMyBAQAorLS0tIGEvY2xhbmcvbGliL0RyaXZlci9Ub29sQ2hhaW5zL0xp bnV4LmNwcAorKysrIGIvY2xhbmcvbGliL0RyaXZlci9Ub29sQ2hhaW5zL0xpbnV4LmNwcAorQEAg LTQ5MCwxMCArNDkwLDYgQEAgc3RkOjpzdHJpbmcgTGludXg6OmdldER5bmFtaWNMaW5rZXIoY29u c3QgQXJnTGlzdCAmQXJncykgY29uc3QgeworICAgICBMb2FkZXIgPSAibGQuc28uMSI7CisgICAg IGJyZWFrOworICAgY2FzZSBsbHZtOjpUcmlwbGU6OnBwYzY0OgorLSAgICBMaWJEaXIgPSAibGli NjQiOworLSAgICBMb2FkZXIgPQorLSAgICAgICAgKHRvb2xzOjpwcGM6Omhhc1BQQ0FiaUFyZyhB cmdzLCAiZWxmdjIiKSkgPyAibGQ2NC5zby4yIiA6ICJsZDY0LnNvLjEiOworLSAgICBicmVhazsK KyAgIGNhc2UgbGx2bTo6VHJpcGxlOjpwcGM2NGxlOgorICAgICBMaWJEaXIgPSAibGliNjQiOwor ICAgICBMb2FkZXIgPQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtMTQvcGF0Y2hlcy9jbGFuZy0w MDQtcHBjNjQtbXVzbC1lbGZ2Mi5wYXRjaCBiL3NyY3BrZ3MvbGx2bTE0L3BhdGNoZXMvY2xhbmct MDA0LXBwYzY0LW11c2wtZWxmdjIucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMDAwMDAwLi4yMWZjODAwM2M1ZjEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xsdm0x NC9wYXRjaGVzL2NsYW5nLTAwNC1wcGM2NC1tdXNsLWVsZnYyLnBhdGNoCkBAIC0wLDAgKzEsNDgg QEAKKy0tLSBhL2NsYW5nL2xpYi9CYXNpYy9UYXJnZXRzL1BQQy5oCisrKysgYi9jbGFuZy9saWIv QmFzaWMvVGFyZ2V0cy9QUEMuaAorQEAgLTQxNSwxMSArNDE1LDEwIEBAIHB1YmxpYzoKKyAgICAg ICBMb25nRG91YmxlRm9ybWF0ID0gJmxsdm06OkFQRmxvYXQ6OklFRUVkb3VibGUoKTsKKyAgICAg fSBlbHNlIGlmICgoVHJpcGxlLmdldEFyY2goKSA9PSBsbHZtOjpUcmlwbGU6OnBwYzY0bGUpKSB7 CisgICAgICAgRGF0YUxheW91dCA9ICJlLW06ZS1pNjQ6NjQtbjMyOjY0IjsKKy0gICAgICBBQkkg PSAiZWxmdjIiOworICAgICB9IGVsc2UgeworICAgICAgIERhdGFMYXlvdXQgPSAiRS1tOmUtaTY0 OjY0LW4zMjo2NCI7CistICAgICAgQUJJID0gImVsZnYxIjsKKyAgICAgfQorKyAgICBBQkkgPSAi ZWxmdjIiOworIAorICAgICBpZiAoVHJpcGxlLmlzT1NGcmVlQlNEKCkgfHwgVHJpcGxlLmlzT1NP cGVuQlNEKCkgfHwgVHJpcGxlLmlzTXVzbCgpKSB7CisgICAgICAgTG9uZ0RvdWJsZVdpZHRoID0g TG9uZ0RvdWJsZUFsaWduID0gNjQ7CistLS0gYS9jbGFuZy9saWIvQ29kZUdlbi9UYXJnZXRJbmZv LmNwcAorKysrIGIvY2xhbmcvbGliL0NvZGVHZW4vVGFyZ2V0SW5mby5jcHAKK0BAIC0xMDkyNyw5 ICsxMDkyNyw5IEBAIGNvbnN0IFRhcmdldENvZGVHZW5JbmZvICZDb2RlR2VuTW9kdWxlOjpnZXRU YXJnZXRDb2RlR2VuSW5mbygpIHsKKyAgICAgICByZXR1cm4gU2V0Q0dJbmZvKG5ldyBBSVhUYXJn ZXRDb2RlR2VuSW5mbyhUeXBlcywgLypJczY0Qml0Ki8gdHJ1ZSkpOworIAorICAgICBpZiAoVHJp cGxlLmlzT1NCaW5Gb3JtYXRFTEYoKSkgeworLSAgICAgIFBQQzY0X1NWUjRfQUJJSW5mbzo6QUJJ S2luZCBLaW5kID0gUFBDNjRfU1ZSNF9BQklJbmZvOjpFTEZ2MTsKKy0gICAgICBpZiAoZ2V0VGFy Z2V0KCkuZ2V0QUJJKCkgPT0gImVsZnYyIikKKy0gICAgICAgIEtpbmQgPSBQUEM2NF9TVlI0X0FC SUluZm86OkVMRnYyOworKyAgICAgIFBQQzY0X1NWUjRfQUJJSW5mbzo6QUJJS2luZCBLaW5kID0g UFBDNjRfU1ZSNF9BQklJbmZvOjpFTEZ2MjsKKysgICAgICBpZiAoZ2V0VGFyZ2V0KCkuZ2V0QUJJ KCkgPT0gImVsZnYxIikKKysgICAgICAgIEtpbmQgPSBQUEM2NF9TVlI0X0FCSUluZm86OkVMRnYx OworICAgICAgIGJvb2wgSXNTb2Z0RmxvYXQgPSBDb2RlR2VuT3B0cy5GbG9hdEFCSSA9PSAic29m dCI7CisgCisgICAgICAgcmV0dXJuIFNldENHSW5mbygKKy0tLSBhL2NsYW5nL2xpYi9Ecml2ZXIv VG9vbENoYWlucy9DbGFuZy5jcHAKKysrKyBiL2NsYW5nL2xpYi9Ecml2ZXIvVG9vbENoYWlucy9D bGFuZy5jcHAKK0BAIC0xOTIwLDE0ICsxOTIwLDcgQEAgdm9pZCBDbGFuZzo6QWRkUFBDVGFyZ2V0 QXJncyhjb25zdCBBcmdMaXN0ICZBcmdzLAorICAgY29uc3QgbGx2bTo6VHJpcGxlICZUID0gZ2V0 VG9vbENoYWluKCkuZ2V0VHJpcGxlKCk7CisgICBpZiAoVC5pc09TQmluRm9ybWF0RUxGKCkpIHsK KyAgICAgc3dpdGNoIChnZXRUb29sQ2hhaW4oKS5nZXRBcmNoKCkpIHsKKy0gICAgY2FzZSBsbHZt OjpUcmlwbGU6OnBwYzY0OiB7CistICAgICAgaWYgKChULmlzT1NGcmVlQlNEKCkgJiYgVC5nZXRP U01ham9yVmVyc2lvbigpID49IDEzKSB8fAorLSAgICAgICAgICBULmlzT1NPcGVuQlNEKCkgfHwg VC5pc011c2woKSkKKy0gICAgICAgIEFCSU5hbWUgPSAiZWxmdjIiOworLSAgICAgIGVsc2UKKy0g ICAgICAgIEFCSU5hbWUgPSAiZWxmdjEiOworLSAgICAgIGJyZWFrOworLSAgICB9CisrICAgIGNh c2UgbGx2bTo6VHJpcGxlOjpwcGM2NDoKKyAgICAgY2FzZSBsbHZtOjpUcmlwbGU6OnBwYzY0bGU6 CisgICAgICAgQUJJTmFtZSA9ICJlbGZ2MiI7CisgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9z cmNwa2dzL2xsdm0xNC9wYXRjaGVzL2NvbXBpbGVyLXJ0LXNhbml0aXplci1wcGM2NC1tdXNsLnBh dGNoIGIvc3JjcGtncy9sbHZtMTQvcGF0Y2hlcy9jb21waWxlci1ydC1zYW5pdGl6ZXItcHBjNjQt bXVzbC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjQxMzVi ZmQ0NDg2YQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbGx2bTE0L3BhdGNoZXMvY29tcGls ZXItcnQtc2FuaXRpemVyLXBwYzY0LW11c2wucGF0Y2gKQEAgLTAsMCArMSwzNSBAQAorLS0tIGEv Y29tcGlsZXItcnQvbGliL3Nhbml0aXplcl9jb21tb24vc2FuaXRpemVyX2xpbnV4LmNwcAorKysr IGIvY29tcGlsZXItcnQvbGliL3Nhbml0aXplcl9jb21tb24vc2FuaXRpemVyX2xpbnV4LmNwcAor QEAgLTc0LDYgKzc0LDEwIEBACisgI2luY2x1ZGUgPHN5cy91dHNuYW1lLmg+CisgI2VuZGlmCisK KysjaWYgU0FOSVRJWkVSX0xJTlVYICYmIGRlZmluZWQoX19wb3dlcnBjX18pCisrI2luY2x1ZGUg PGFzbS9wdHJhY2UuaD4KKysjZW5kaWYKKysKKyAjaWYgU0FOSVRJWkVSX0xJTlVYICYmICFTQU5J VElaRVJfQU5EUk9JRAorICNpbmNsdWRlIDxzeXMvcGVyc29uYWxpdHkuaD4KKyAjZW5kaWYKKy0t LSBhL2NvbXBpbGVyLXJ0L2xpYi9zYW5pdGl6ZXJfY29tbW9uL3Nhbml0aXplcl9wbGF0Zm9ybV9s aW1pdHNfcG9zaXguY3BwCisrKysgYi9jb21waWxlci1ydC9saWIvc2FuaXRpemVyX2NvbW1vbi9z YW5pdGl6ZXJfcGxhdGZvcm1fbGltaXRzX3Bvc2l4LmNwcAorQEAgLTkyLDcgKzkyLDcgQEAKKyAj IGluY2x1ZGUgPHV0aW1lLmg+CisgIyBpbmNsdWRlIDxzeXMvcHRyYWNlLmg+CisgIyAgICBpZiBk ZWZpbmVkKF9fbWlwczY0KSB8fCBkZWZpbmVkKF9fYWFyY2g2NF9fKSB8fCBkZWZpbmVkKF9fYXJt X18pIHx8IFwKKy0gICAgICAgIGRlZmluZWQoX19oZXhhZ29uX18pIHx8IFNBTklUSVpFUl9SSVND VjY0CisrICAgICAgICBkZWZpbmVkKF9faGV4YWdvbl9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwY19f KSB8fCBTQU5JVElaRVJfUklTQ1Y2NAorICMgICAgICBpbmNsdWRlIDxhc20vcHRyYWNlLmg+Cisg IyAgICAgIGlmZGVmIF9fYXJtX18KKyB0eXBlZGVmIHN0cnVjdCB1c2VyX2ZwcmVncyBlbGZfZnBy ZWdzZXRfdDsKKy0tLSBhL2NvbXBpbGVyLXJ0L2xpYi9zYW5pdGl6ZXJfY29tbW9uL3Nhbml0aXpl cl9zdG9wdGhld29ybGRfbGludXhfbGliY2RlcC5jcHAKKysrKyBiL2NvbXBpbGVyLXJ0L2xpYi9z YW5pdGl6ZXJfY29tbW9uL3Nhbml0aXplcl9zdG9wdGhld29ybGRfbGludXhfbGliY2RlcC5jcHAK K0BAIC0zMSw3ICszMSw3IEBACisgI2luY2x1ZGUgPHN5cy90eXBlcy5oPiAvLyBmb3IgcGlkX3QK KyAjaW5jbHVkZSA8c3lzL3Vpby5oPiAvLyBmb3IgaW92ZWMKKyAjaW5jbHVkZSA8ZWxmLmg+IC8v IGZvciBOVF9QUlNUQVRVUworLSNpZiAoZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgU0FOSVRJWkVS X1JJU0NWNjQpICYmICFTQU5JVElaRVJfQU5EUk9JRAorKyNpZiAoZGVmaW5lZChfX2FhcmNoNjRf XykgfHwgZGVmaW5lZChfX3Bvd2VycGNfXykgfHwgU0FOSVRJWkVSX1JJU0NWNjQpICYmICFTQU5J VElaRVJfQU5EUk9JRAorIC8vIEdMSUJDIDIuMjArIHN5cy91c2VyIGRvZXMgbm90IGluY2x1ZGUg YXNtL3B0cmFjZS5oCisgIyBpbmNsdWRlIDxhc20vcHRyYWNlLmg+CisgI2VuZGlmCmRpZmYgLS1n aXQgYS9zcmNwa2dzL2xsdm0xNC9wYXRjaGVzL2NvbXBpbGVyLXJ0LXhyYXktcHBjNjQtbXVzbC5w YXRjaCBiL3NyY3BrZ3MvbGx2bTE0L3BhdGNoZXMvY29tcGlsZXItcnQteHJheS1wcGM2NC1tdXNs LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZDBiNjFjODBj ODk3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9sbHZtMTQvcGF0Y2hlcy9jb21waWxlci1y dC14cmF5LXBwYzY0LW11c2wucGF0Y2gKQEAgLTAsMCArMSw2MiBAQAorLS0tIGEvY29tcGlsZXIt cnQvbGliL3hyYXkveHJheV9wb3dlcnBjNjQuaW5jCisrKysgYi9jb21waWxlci1ydC9saWIveHJh eS94cmF5X3Bvd2VycGM2NC5pbmMKK0BAIC0xMiw3ICsxMiwxMyBAQAorIAorICNpbmNsdWRlIDxj c3RkaW50PgorICNpbmNsdWRlIDxtdXRleD4KKysjaWZkZWYgX19HTElCQ19fCisgI2luY2x1ZGUg PHN5cy9wbGF0Zm9ybS9wcGMuaD4KKysjZWxzZQorKyNpbmNsdWRlIDxjY3R5cGU+CisrI2luY2x1 ZGUgPGNzdHJpbmc+CisrI2luY2x1ZGUgPGNzdGRsaWI+CisrI2VuZGlmCisgCisgI2luY2x1ZGUg InhyYXlfZGVmcy5oIgorIAorQEAgLTIwLDEzICsyNiw0NSBAQCBuYW1lc3BhY2UgX194cmF5IHsK KyAKKyBBTFdBWVNfSU5MSU5FIHVpbnQ2NF90IHJlYWRUU0ModWludDhfdCAmQ1BVKSBYUkFZX05F VkVSX0lOU1RSVU1FTlQgeworICAgQ1BVID0gMDsKKysjaWZkZWYgX19HTElCQ19fCisgICByZXR1 cm4gX19wcGNfZ2V0X3RpbWViYXNlKCk7CisrI2Vsc2UKKysgIHJldHVybiBfX2J1aWx0aW5fcHBj X2dldF90aW1lYmFzZSgpOworKyNlbmRpZgorIH0KKyAKKyBpbmxpbmUgdWludDY0X3QgZ2V0VFND RnJlcXVlbmN5KCkgWFJBWV9ORVZFUl9JTlNUUlVNRU5UIHsKKyAgIHN0YXRpYyBzdGQ6Om11dGV4 IE07CisgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gR3VhcmQoTSk7CisrI2lmZGVmIF9f R0xJQkNfXworICAgcmV0dXJuIF9fcHBjX2dldF90aW1lYmFzZV9mcmVxKCk7CisrI2Vsc2UKKysg IC8qIEZJWE1FOiBhIGxlc3MgZGlydHkgaW1wbGVtZW50YXRpb24/ICovCisrICBzdGF0aWMgdWlu dDY0X3QgYmFzZTsKKysgIGlmICghYmFzZSkgeworKyAgICBGSUxFICpmID0gZm9wZW4oIi9wcm9j L2NwdWluZm8iLCAicmIiKTsKKysgICAgaWYgKGYpIHsKKysgICAgICBzc2l6ZV90IG5yOworKyAg ICAgIC8qIHZpcnR1YWxseSBhbHdheXMgYmlnIGVub3VnaCB0byBob2xkIHRoZSBsaW5lICovCisr ICAgICAgY2hhciBidWZbNTEyXTsKKysgICAgICB3aGlsZSAoZmdldHMoYnVmLCBzaXplb2YoYnVm KSwgZikpIHsKKysgICAgICAgIGNoYXIgKnJldCA9IHN0cnN0cihidWYsICJ0aW1lYmFzZSIpOwor KyAgICAgICAgaWYgKCFyZXQpIHsKKysgICAgICAgICAgY29udGludWU7CisrICAgICAgICB9Cisr ICAgICAgICByZXQgKz0gc2l6ZW9mKCJ0aW1lYmFzZSIpIC0gMTsKKysgICAgICAgIHJldCA9IHN0 cmNocihyZXQsICc6Jyk7CisrICAgICAgICBpZiAoIXJldCkgeworKyAgICAgICAgICBjb250aW51 ZTsKKysgICAgICAgIH0KKysgICAgICAgIGJhc2UgPSBzdHJ0b3VsKHJldCArIDEsIG51bGxwdHIs IDEwKTsKKysgICAgICAgIGJyZWFrOworKyAgICAgIH0KKysgICAgICBmY2xvc2UoZik7CisrICAg IH0KKysgIH0KKysgIHJldHVybiBiYXNlOworKyNlbmRpZgorIH0KKyAKKyBpbmxpbmUgYm9vbCBw cm9iZVJlcXVpcmVkQ1BVRmVhdHVyZXMoKSBYUkFZX05FVkVSX0lOU1RSVU1FTlQgewpkaWZmIC0t Z2l0IGEvc3JjcGtncy9sbHZtMTQvcGF0Y2hlcy9saWJjeHgtbXVzbC5wYXRjaCBiL3NyY3BrZ3Mv bGx2bTE0L3BhdGNoZXMvbGliY3h4LW11c2wucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMDAwMDAwLi5iYmQzMWZmYzJjYjEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dz L2xsdm0xNC9wYXRjaGVzL2xpYmN4eC1tdXNsLnBhdGNoCkBAIC0wLDAgKzEsMjYgQEAKKy0tLSBh L2xpYmN4eC9pbmNsdWRlL2xvY2FsZQorKysrIGIvbGliY3h4L2luY2x1ZGUvbG9jYWxlCitAQCAt NzQyLDcgKzc0MiwxMSBAQCBfX251bV9nZXRfc2lnbmVkX2ludGVncmFsKGNvbnN0IGNoYXIqIF9f YSwgY29uc3QgY2hhciogX19hX2VuZCwKKyAgICAgICAgIHR5cGVuYW1lIHJlbW92ZV9yZWZlcmVu Y2U8ZGVjbHR5cGUoZXJybm8pPjo6dHlwZSBfX3NhdmVfZXJybm8gPSBlcnJubzsKKyAgICAgICAg IGVycm5vID0gMDsKKyAgICAgICAgIGNoYXIgKl9fcDI7CisrI2lmIGRlZmluZWQoX19saW51eF9f KSAmJiAhZGVmaW5lZChfX0dMSUJDX18pCisrICAgICAgICBsb25nIGxvbmcgX19sbCA9IHN0cnRv bGwoX19hLCAmX19wMiwgX19iYXNlKTsKKysjZWxzZQorICAgICAgICAgbG9uZyBsb25nIF9fbGwg PSBzdHJ0b2xsX2woX19hLCAmX19wMiwgX19iYXNlLCBfTElCQ1BQX0dFVF9DX0xPQ0FMRSk7Cisr I2VuZGlmCisgICAgICAgICB0eXBlbmFtZSByZW1vdmVfcmVmZXJlbmNlPGRlY2x0eXBlKGVycm5v KT46OnR5cGUgX19jdXJyZW50X2Vycm5vID0gZXJybm87CisgICAgICAgICBpZiAoX19jdXJyZW50 X2Vycm5vID09IDApCisgICAgICAgICAgICAgZXJybm8gPSBfX3NhdmVfZXJybm87CitAQCAtNzgy LDcgKzc4NiwxMSBAQCBfX251bV9nZXRfdW5zaWduZWRfaW50ZWdyYWwoY29uc3QgY2hhciogX19h LCBjb25zdCBjaGFyKiBfX2FfZW5kLAorICAgICAgICAgdHlwZW5hbWUgcmVtb3ZlX3JlZmVyZW5j ZTxkZWNsdHlwZShlcnJubyk+Ojp0eXBlIF9fc2F2ZV9lcnJubyA9IGVycm5vOworICAgICAgICAg ZXJybm8gPSAwOworICAgICAgICAgY2hhciAqX19wMjsKKysjaWYgZGVmaW5lZChfX2xpbnV4X18p ICYmICFkZWZpbmVkKF9fR0xJQkNfXykKKysgICAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2xs ID0gc3RydG91bGwoX19hLCAmX19wMiwgX19iYXNlKTsKKysjZWxzZQorICAgICAgICAgdW5zaWdu ZWQgbG9uZyBsb25nIF9fbGwgPSBzdHJ0b3VsbF9sKF9fYSwgJl9fcDIsIF9fYmFzZSwgX0xJQkNQ UF9HRVRfQ19MT0NBTEUpOworKyNlbmRpZgorICAgICAgICAgdHlwZW5hbWUgcmVtb3ZlX3JlZmVy ZW5jZTxkZWNsdHlwZShlcnJubyk+Ojp0eXBlIF9fY3VycmVudF9lcnJubyA9IGVycm5vOworICAg ICAgICAgaWYgKF9fY3VycmVudF9lcnJubyA9PSAwKQorICAgICAgICAgICAgIGVycm5vID0gX19z YXZlX2Vycm5vOwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtMTQvcGF0Y2hlcy9saWJjeHgtcHBj LnBhdGNoIGIvc3JjcGtncy9sbHZtMTQvcGF0Y2hlcy9saWJjeHgtcHBjLnBhdGNoCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uN2E5MmY4MDA0ZTFjCi0tLSAvZGV2L251 bGwKKysrIGIvc3JjcGtncy9sbHZtMTQvcGF0Y2hlcy9saWJjeHgtcHBjLnBhdGNoCkBAIC0wLDAg KzEsMjIgQEAKK1RoaXMgZW5zdXJlcyBgaXNfaWVjNTU5YCBpcyBkZWZpbmVkIGNvcnJlY3RseSB1 bmRlciBhbGwgbG9uZyBkb3VibGUgQUJJcywKK2luY2x1ZGluZyBtdXNsIGFuZCBpdHMgNjQtYml0 IGxvbmcgZG91YmxlLiBBbHNvLCBgX19wcGNfX2Agb3IgYF9fcHBjNjRfX2AKK2lzIG5vdCBkZWZp bmVkIG9uIGdjYy4KKworLS0tIGEvbGliY3h4L2luY2x1ZGUvbGltaXRzCisrKysgYi9saWJjeHgv aW5jbHVkZS9saW1pdHMKK0BAIC00MjYsOCArNDI2LDE0IEBAIHByb3RlY3RlZDoKKyAgICAgX0xJ QkNQUF9JTkxJTkVfVklTSUJJTElUWSBzdGF0aWMgX0xJQkNQUF9DT05TVEVYUFIgdHlwZSBzaWdu YWxpbmdfTmFOKCkgX05PRVhDRVBUIHtyZXR1cm4gX19idWlsdGluX25hbnNsKCIiKTt9CisgICAg IF9MSUJDUFBfSU5MSU5FX1ZJU0lCSUxJVFkgc3RhdGljIF9MSUJDUFBfQ09OU1RFWFBSIHR5cGUg ZGVub3JtX21pbigpIF9OT0VYQ0VQVCB7cmV0dXJuIF9fTERCTF9ERU5PUk1fTUlOX187fQorIAor LSNpZiAoZGVmaW5lZChfX3BwY19fKSB8fCBkZWZpbmVkKF9fcHBjNjRfXykpCisrI2lmIGRlZmlu ZWQoX19wb3dlcnBjX18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKKysjaWYgKF9fTERCTF9N QVhfRVhQX18gPiBfX0RCTF9NQVhfRVhQX18pIHx8IChfX0xEQkxfTUFOVF9ESUdfXyA9PSBfX0RC TF9NQU5UX0RJR19fKQorKyAgICAvKiBJRUVFIDc1NCBxdWFkcnVwbGUgb3IgZG91YmxlIHByZWNp c2lvbiAqLworKyAgICBzdGF0aWMgX0xJQkNQUF9DT05TVEVYUFIgY29uc3QgYm9vbCBpc19pZWM1 NTkgPSB0cnVlOworKyNlbHNlCisrICAgIC8qIDEyOC1iaXQgSUJNIGRvdWJsZS1kb3VibGUgKi8K KyAgICAgc3RhdGljIF9MSUJDUFBfQ09OU1RFWFBSIGNvbnN0IGJvb2wgaXNfaWVjNTU5ID0gZmFs c2U7CisrI2VuZGlmCisgI2Vsc2UKKyAgICAgc3RhdGljIF9MSUJDUFBfQ09OU1RFWFBSIGNvbnN0 IGJvb2wgaXNfaWVjNTU5ID0gdHJ1ZTsKKyAjZW5kaWYKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2 bTE0L3BhdGNoZXMvbGliY3h4LXNzcC1ub25zaGFyZWQucGF0Y2ggYi9zcmNwa2dzL2xsdm0xNC9w YXRjaGVzL2xpYmN4eC1zc3Atbm9uc2hhcmVkLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAwMC4uNzAyOTJiZWIyZmNkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtn cy9sbHZtMTQvcGF0Y2hlcy9saWJjeHgtc3NwLW5vbnNoYXJlZC5wYXRjaApAQCAtMCwwICsxLDEx IEBACistLS0gYS9saWJjeHgvQ01ha2VMaXN0cy50eHQKKysrKyBiL2xpYmN4eC9DTWFrZUxpc3Rz LnR4dAorQEAgLTc2OSw2ICs3NjksOCBAQCBmdW5jdGlvbihjeHhfbGlua19zeXN0ZW1fbGlicmFy aWVzIHRhcmdldCkKKyAgICAgdGFyZ2V0X2xpbmtfbGlicmFyaWVzKCR7dGFyZ2V0fSBQUklWQVRF IGF0b21pYykKKyAgIGVuZGlmKCkKKyAKKysjc3NwICB0YXJnZXRfbGlua19saWJyYXJpZXMoJHt0 YXJnZXR9IFBSSVZBVEUgc3NwX25vbnNoYXJlZCkKKysKKyAgIGlmIChNSU5HVykKKyAgICAgdGFy Z2V0X2xpbmtfbGlicmFyaWVzKCR7dGFyZ2V0fSBQUklWQVRFICIke01JTkdXX0xJQlJBUklFU30i KQorICAgZW5kaWYoKQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtMTQvcGF0Y2hlcy9saWJjeHhh YmktZGwucGF0Y2ggYi9zcmNwa2dzL2xsdm0xNC9wYXRjaGVzL2xpYmN4eGFiaS1kbC5wYXRjaApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjNhMTVmOWRiOGM5OAotLS0g L2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbGx2bTE0L3BhdGNoZXMvbGliY3h4YWJpLWRsLnBhdGNo CkBAIC0wLDAgKzEsMjUgQEAKK0Fsc28gbGluayB0byAtbGRsIHRvIHByZXZlbnQgdW5kZWZpbmVk IHJlZmVyZW5jZXMuCisKKy0tLSBhL2xpYmN4eGFiaS9zcmMvQ01ha2VMaXN0cy50eHQKKysrKyBi L2xpYmN4eGFiaS9zcmMvQ01ha2VMaXN0cy50eHQKK0BAIC03Myw2ICs3Myw3IEBACisgICBlbmRp ZigpCisgCisgICBhZGRfbGlicmFyeV9mbGFnc19pZihMSUJDWFhBQklfSEFTX0NfTElCIGMpCisr ICBhZGRfbGlicmFyeV9mbGFnc19pZihMSUJDWFhBQklfSEFTX0NfTElCIGRsKQorIGVuZGlmKCkK KyAKKyBpZiAoTElCQ1hYQUJJX1VTRV9MTFZNX1VOV0lOREVSKQorLS0tIGEvbGliY3h4L0NNYWtl TGlzdHMudHh0CisrKysgYi9saWJjeHgvQ01ha2VMaXN0cy50eHQKK0BAIC03NDUsNiArNzQ1LDEw IEBACisgICAgIHRhcmdldF9saW5rX2xpYnJhcmllcygke3RhcmdldH0gUFJJVkFURSBtKQorICAg ZW5kaWYoKQorIAorKyAgaWYgKExJQkNYWF9IQVNfQ19MSUIpCisrICAgIHRhcmdldF9saW5rX2xp YnJhcmllcygke3RhcmdldH0gUFJJVkFURSBkbCkKKysgIGVuZGlmKCkKKysKKyAgIGlmIChMSUJD WFhfSEFTX1JUX0xJQikKKyAgICAgdGFyZ2V0X2xpbmtfbGlicmFyaWVzKCR7dGFyZ2V0fSBQUklW QVRFIHJ0KQorICAgZW5kaWYoKQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtMTQvcGF0Y2hlcy9s bGRiLW11c2wucGF0Y2ggYi9zcmNwa2dzL2xsdm0xNC9wYXRjaGVzL2xsZGItbXVzbC5wYXRjaApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjYwMWMwZDEzODUyMwotLS0g L2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbGx2bTE0L3BhdGNoZXMvbGxkYi1tdXNsLnBhdGNoCkBA IC0wLDAgKzEsMzEgQEAKKy0tLSBhL2xsZGIvc291cmNlL1BsdWdpbnMvUHJvY2Vzcy9MaW51eC9Q cm9jZnMuaAorKysrIGIvbGxkYi9zb3VyY2UvUGx1Z2lucy9Qcm9jZXNzL0xpbnV4L1Byb2Nmcy5o CitAQCAtMTAsMjEgKzEwLDEyIEBACisgLy8gc3lzL3Byb2Nmcy5oIG9uIEFuZHJvaWQvTGludXgg Zm9yIGFsbCBzdXBwb3J0ZWQgYXJjaGl0ZWN0dXJlcy4KKyAKKyAjaW5jbHVkZSA8c3lzL3B0cmFj ZS5oPgorKyNpbmNsdWRlIDxhc20vcHRyYWNlLmg+CisgCistI2lmZGVmIF9fQU5EUk9JRF9fCist I2lmIGRlZmluZWQoX19hcm02NF9fKSB8fCBkZWZpbmVkKF9fYWFyY2g2NF9fKQorLXR5cGVkZWYg dW5zaWduZWQgbG9uZyBlbGZfZ3JlZ190OworLXR5cGVkZWYgZWxmX2dyZWdfdAorLSAgICBlbGZf Z3JlZ3NldF90WyhzaXplb2Yoc3RydWN0IHVzZXJfcHRfcmVncykgLyBzaXplb2YoZWxmX2dyZWdf dCkpXTsKKy10eXBlZGVmIHN0cnVjdCB1c2VyX2Zwc2ltZF9zdGF0ZSBlbGZfZnByZWdzZXRfdDsK Ky0jaWZuZGVmIE5UX0ZQUkVHU0VUCistI2RlZmluZSBOVF9GUFJFR1NFVCBOVF9QUkZQUkVHCist I2VuZGlmIC8vIE5UX0ZQUkVHU0VUCistI2VsaWYgZGVmaW5lZChfX21pcHNfXykKKy0jaWZuZGVm IE5UX0ZQUkVHU0VUCistI2RlZmluZSBOVF9GUFJFR1NFVCBOVF9QUkZQUkVHCistI2VuZGlmIC8v IE5UX0ZQUkVHU0VUCistI2VuZGlmCistI2Vsc2UgLy8gX19BTkRST0lEX18KKysjaWYgIWRlZmlu ZWQoX19HTElCQ19fKSAmJiBkZWZpbmVkKF9fcG93ZXJwY19fKQorKyNkZWZpbmUgcHRfcmVncyBt dXNsX3B0X3JlZ3MKKysjaW5jbHVkZSA8c3lzL3Byb2Nmcy5oPgorKyN1bmRlZiBwdF9yZWdzCisr I2Vsc2UKKyAjaW5jbHVkZSA8c3lzL3Byb2Nmcy5oPgorLSNlbmRpZiAvLyBfX0FORFJPSURfXwor KyNlbmRpZgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtMTQvcGF0Y2hlcy9sbHZtLTAwMS1tdXNs LnBhdGNoIGIvc3JjcGtncy9sbHZtMTQvcGF0Y2hlcy9sbHZtLTAwMS1tdXNsLnBhdGNoCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZjJhM2Y4ZDYyODEzCi0tLSAvZGV2 L251bGwKKysrIGIvc3JjcGtncy9sbHZtMTQvcGF0Y2hlcy9sbHZtLTAwMS1tdXNsLnBhdGNoCkBA IC0wLDAgKzEsNTcgQEAKK0Zyb20gZmFjYTNmYmQxNWQwYzMxMDg0OTNjM2M1NGNkOTMxMzhlMDQ5 YWM0MyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEFuZHJlYSBCcmFuY2FsZW9uaSA8 bWl3YXhlQGdtYWlsLmNvbT4KK0RhdGU6IFR1ZSwgOCBTZXAgMjAxNSAyMjowMzowMiArMDIwMAor U3ViamVjdDogW1BBVENIIDMvM10gbXVzbAorCistLS0KKyBpbmNsdWRlL2xsdm0vQW5hbHlzaXMv VGFyZ2V0TGlicmFyeUluZm8uaCB8IDkgKysrKysrKysrCisgbGliL1N1cHBvcnQvRHluYW1pY0xp YnJhcnkuY3BwICAgICAgICAgICAgfCAyICstCisgbGliL1N1cHBvcnQvVW5peC9TaWduYWxzLmlu YyAgICAgICAgICAgICAgfCA2ICsrKy0tLQorIHV0aWxzL3VuaXR0ZXN0L2dvb2dsZXRlc3Qvc3Jj L2d0ZXN0LmNjICAgIHwgMSArCisgNSBmaWxlcyBjaGFuZ2VkLCAxNyBpbnNlcnRpb25zKCspLCA2 IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvaW5jbHVkZS9sbHZtL0FuYWx5c2lzL1Rhcmdl dExpYnJhcnlJbmZvLmggYi9pbmNsdWRlL2xsdm0vQW5hbHlzaXMvVGFyZ2V0TGlicmFyeUluZm8u aAoraW5kZXggMzRhOGExZTMuLjEyMTRlY2U1IDEwMDY0NAorLS0tIGEvbGx2bS9pbmNsdWRlL2xs dm0vQW5hbHlzaXMvVGFyZ2V0TGlicmFyeUluZm8uaAorKysrIGIvbGx2bS9pbmNsdWRlL2xsdm0v QW5hbHlzaXMvVGFyZ2V0TGlicmFyeUluZm8uaAorQEAgLTE4LDYgKzE4LDE1IEBACisgI2luY2x1 ZGUgImxsdm0vSVIvUGFzc01hbmFnZXIuaCIKKyAjaW5jbHVkZSAibGx2bS9QYXNzLmgiCisgCisr I3VuZGVmIGZvcGVuNjQKKysjdW5kZWYgZnNlZWtvNjQKKysjdW5kZWYgZnN0YXQ2NAorKyN1bmRl ZiBmc3RhdHZmczY0CisrI3VuZGVmIGZ0ZWxsbzY0CisrI3VuZGVmIGxzdGF0NjQKKysjdW5kZWYg c3RhdDY0CisrI3VuZGVmIHRtcGZpbGU2NAorKworIG5hbWVzcGFjZSBsbHZtIHsKKyB0ZW1wbGF0 ZSA8dHlwZW5hbWUgVD4gY2xhc3MgQXJyYXlSZWY7CisgY2xhc3MgVHJpcGxlOworZGlmZiAtLWdp dCBhL2xpYi9TdXBwb3J0L1VuaXgvRHluYW1pY0xpYnJhcnkuaW5jIGIvbGliL1N1cHBvcnQvVW5p eC9EeW5hbWljTGlicmFyeS5pbmMKK2luZGV4IGEyYTM3OTk2Li4yZjg2YzQ3MCAxMDA2NDQKKy0t LSBhL2xsdm0vbGliL1N1cHBvcnQvVW5peC9EeW5hbWljTGlicmFyeS5pbmMKKysrKyBiL2xsdm0v bGliL1N1cHBvcnQvVW5peC9EeW5hbWljTGlicmFyeS5pbmMKK0BAIC0xMDIsNyArMTAyLDcgQEAg c3RhdGljIHZvaWQgKkRvU2VhcmNoKGNvbnN0IGNoYXIqIFN5bWJvbE5hbWUpIHsKKyAKKyAvLyBU aGlzIG1hY3JvIHJldHVybnMgdGhlIGFkZHJlc3Mgb2YgYSB3ZWxsLWtub3duLCBleHBsaWNpdCBz eW1ib2wKKyAjZGVmaW5lIEVYUExJQ0lUX1NZTUJPTChTWU0pIFwKKy0gICBpZiAoIXN0cmNtcChT eW1ib2xOYW1lLCAjU1lNKSkgcmV0dXJuICZTWU0KKysgICBpZiAoIXN0cmNtcChTeW1ib2xOYW1l LCAjU1lNKSkgcmV0dXJuICh2b2lkICopJlNZTQorIAorIC8vIFVuZGVyIGdsaWJjIHdlIGhhdmUg YSB3ZWlyZCBzaXR1YXRpb24uIFRoZSBzdGRlcnIvb3V0L2luIHN5bWJvbHMgYXJlIGJvdGgKKyAv LyBtYWNyb3MgYW5kIGdsb2JhbCB2YXJpYWJsZXMgYmVjYXVzZSBvZiBzdGFuZGFyZHMgcmVxdWly ZW1lbnRzLiBTbywgd2UKK2RpZmYgLS1naXQgYS91dGlscy91bml0dGVzdC9nb29nbGV0ZXN0L3Ny Yy9ndGVzdC5jYyBiL3V0aWxzL3VuaXR0ZXN0L2dvb2dsZXRlc3Qvc3JjL2d0ZXN0LmNjCitpbmRl eCBkODgyYWIyZS4uZjFmYjEyZDAgMTAwNjQ0CistLS0gYS9sbHZtL3V0aWxzL3VuaXR0ZXN0L2dv b2dsZXRlc3Qvc3JjL2d0ZXN0LmNjCisrKysgYi9sbHZtL3V0aWxzL3VuaXR0ZXN0L2dvb2dsZXRl c3Qvc3JjL2d0ZXN0LmNjCitAQCAtMTI4LDYgKzEyOCw3IEBACisgCisgI2lmIEdURVNUX0NBTl9T VFJFQU1fUkVTVUxUU18KKyAjIGluY2x1ZGUgPGFycGEvaW5ldC5oPiAgLy8gTk9MSU5UCisrIyBp bmNsdWRlIDxzeXMvc29ja2V0Lmg+ICAvLyBOT0xJTlQKKyAjIGluY2x1ZGUgPG5ldGRiLmg+ICAv LyBOT0xJTlQKKyAjIGluY2x1ZGUgPHN5cy9zb2NrZXQuaD4gIC8vIE5PTElOVAorICMgaW5jbHVk ZSA8c3lzL3R5cGVzLmg+ICAvLyBOT0xJTlQKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bTE0L3Bh dGNoZXMvbGx2bS0wMDItbXVzbC1wcGM2NC1lbGZ2Mi5wYXRjaCBiL3NyY3BrZ3MvbGx2bTE0L3Bh dGNoZXMvbGx2bS0wMDItbXVzbC1wcGM2NC1lbGZ2Mi5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAwMDAuLjAwNzFkOTY0YmQzNwotLS0gL2Rldi9udWxsCisrKyBiL3Ny Y3BrZ3MvbGx2bTE0L3BhdGNoZXMvbGx2bS0wMDItbXVzbC1wcGM2NC1lbGZ2Mi5wYXRjaApAQCAt MCwwICsxLDMwIEBACitUaGlzIHBhdGNoZXMgTExWTSB0byB1c2UgRUxGdjIgb24gcHBjNjQgdW5j b25kaXRpb25hbGx5IHVubGVzcyBvdmVycmlkZGVuLiBXZQorbmVlZCB0aGlzIGJlY2F1c2UgdW5s aWtlIG1vc3QgZGlzdHJvcyB3ZSB1c2UgRUxGdjIgZm9yIGJvdGggZ2xpYmMgYW5kIG11c2wKK29u IGJpZyBlbmRpYW4gcHBjNjQuCisKK2RpZmYgLS1naXQgYS9saWIvVGFyZ2V0L1Bvd2VyUEMvUFBD VGFyZ2V0TWFjaGluZS5jcHAgYi9saWIvVGFyZ2V0L1Bvd2VyUEMvUFBDVGFyZ2V0TWFjaGluZS5j cHAKK2luZGV4IDA2MzQ4MzNlLi5iN2NiYzJlNyAxMDA2NDQKKy0tLSBhL2xsdm0vbGliL1Rhcmdl dC9Qb3dlclBDL1BQQ1RhcmdldE1hY2hpbmUuY3BwCisrKysgYi9sbHZtL2xpYi9UYXJnZXQvUG93 ZXJQQy9QUENUYXJnZXRNYWNoaW5lLmNwcAorQEAgLTIyMiw5ICsyMjIsOCBAQCBzdGF0aWMgUFBD VGFyZ2V0TWFjaGluZTo6UFBDQUJJIGNvbXB1dGVUYXJnZXRBQkkoY29uc3QgVHJpcGxlICZUVCwK KyAKKyAgIHN3aXRjaCAoVFQuZ2V0QXJjaCgpKSB7CisgICBjYXNlIFRyaXBsZTo6cHBjNjRsZToK Ky0gICAgcmV0dXJuIFBQQ1RhcmdldE1hY2hpbmU6OlBQQ19BQklfRUxGdjI7CisgICBjYXNlIFRy aXBsZTo6cHBjNjQ6CistICAgIHJldHVybiBQUENUYXJnZXRNYWNoaW5lOjpQUENfQUJJX0VMRnYx OworKyAgICByZXR1cm4gUFBDVGFyZ2V0TWFjaGluZTo6UFBDX0FCSV9FTEZ2MjsKKyAgIGRlZmF1 bHQ6CisgICAgIHJldHVybiBQUENUYXJnZXRNYWNoaW5lOjpQUENfQUJJX1VOS05PV047CisgICB9 CitkaWZmIC0tZ2l0IGEvdGVzdC9Db2RlR2VuL1Bvd2VyUEMvcHBjNjQtZWxmLWFiaS5sbCBiL3Rl c3QvQ29kZUdlbi9Qb3dlclBDL3BwYzY0LWVsZi1hYmkubGwKK2luZGV4IDhiMWNmNmI1Li4yOTZh MmFmYSAxMDA2NDQKKy0tLSBhL2xsdm0vdGVzdC9Db2RlR2VuL1Bvd2VyUEMvcHBjNjQtZWxmLWFi aS5sbAorKysrIGIvbGx2bS90ZXN0L0NvZGVHZW4vUG93ZXJQQy9wcGM2NC1lbGYtYWJpLmxsCitA QCAtMSw0ICsxLDUgQEAKKy07IFJVTjogbGxjIC12ZXJpZnktbWFjaGluZWluc3RycyAtbXRyaXBs ZT1wb3dlcnBjNjQtdW5rbm93bi1saW51eC1nbnUgPCAlcyB8IEZpbGVDaGVjayAlcyAtY2hlY2st cHJlZml4PUNIRUNLLUVMRnYxCisrOyBSVU46IGxsYyAtdmVyaWZ5LW1hY2hpbmVpbnN0cnMgLW10 cmlwbGU9cG93ZXJwYzY0LXVua25vd24tbGludXgtZ251IDwgJXMgfCBGaWxlQ2hlY2sgJXMgLWNo ZWNrLXByZWZpeD1DSEVDSy1FTEZ2MgorKzsgUlVOOiBsbGMgLXZlcmlmeS1tYWNoaW5laW5zdHJz IC1tdHJpcGxlPXBvd2VycGM2NC11bmtub3duLWxpbnV4LW11c2wgPCAlcyB8IEZpbGVDaGVjayAl cyAtY2hlY2stcHJlZml4PUNIRUNLLUVMRnYyCisgOyBSVU46IGxsYyAtdmVyaWZ5LW1hY2hpbmVp bnN0cnMgLW10cmlwbGU9cG93ZXJwYzY0LXVua25vd24tbGludXgtZ251IC10YXJnZXQtYWJpIGVs ZnYxIDwgJXMgfCBGaWxlQ2hlY2sgJXMgLWNoZWNrLXByZWZpeD1DSEVDSy1FTEZ2MQorIDsgUlVO OiBsbGMgLXZlcmlmeS1tYWNoaW5laW5zdHJzIC1tdHJpcGxlPXBvd2VycGM2NC11bmtub3duLWxp bnV4LWdudSAtdGFyZ2V0LWFiaSBlbGZ2MiA8ICVzIHwgRmlsZUNoZWNrICVzIC1jaGVjay1wcmVm aXg9Q0hFQ0stRUxGdjIKKyA7IFJVTjogbGxjIC12ZXJpZnktbWFjaGluZWluc3RycyAtbXRyaXBs ZT1wb3dlcnBjNjRsZS11bmtub3duLWxpbnV4LWdudSA8ICVzIHwgRmlsZUNoZWNrICVzIC1jaGVj ay1wcmVmaXg9Q0hFQ0stRUxGdjIKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bTE0L3BhdGNoZXMv bGx2bS0wMDMtcHBjLXNlY3VyZXBsdC5wYXRjaCBiL3NyY3BrZ3MvbGx2bTE0L3BhdGNoZXMvbGx2 bS0wMDMtcHBjLXNlY3VyZXBsdC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMDAwMDAuLmI1ZDE1OTc0Mzc1ZAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbGx2bTE0 L3BhdGNoZXMvbGx2bS0wMDMtcHBjLXNlY3VyZXBsdC5wYXRjaApAQCAtMCwwICsxLDExIEBACist LS0gYS9sbHZtL2xpYi9UYXJnZXQvUG93ZXJQQy9QUENTdWJ0YXJnZXQuY3BwCisrKysgYi9sbHZt L2xpYi9UYXJnZXQvUG93ZXJQQy9QUENTdWJ0YXJnZXQuY3BwCitAQCAtMTY1LDcgKzE2NSw3IEBA IHZvaWQgUFBDU3VidGFyZ2V0Ojppbml0U3VidGFyZ2V0RmVhdHVyZXMoU3RyaW5nUmVmIENQVSwg U3RyaW5nUmVmIEZTKSB7CisgCisgICBpZiAoKFRhcmdldFRyaXBsZS5pc09TRnJlZUJTRCgpICYm IFRhcmdldFRyaXBsZS5nZXRPU01ham9yVmVyc2lvbigpID49IDEzKSB8fAorICAgICAgIFRhcmdl dFRyaXBsZS5pc09TTmV0QlNEKCkgfHwgVGFyZ2V0VHJpcGxlLmlzT1NPcGVuQlNEKCkgfHwKKy0g ICAgICBUYXJnZXRUcmlwbGUuaXNNdXNsKCkpCisrICAgICAgaXNUYXJnZXRMaW51eCgpKQorICAg ICBTZWN1cmVQbHQgPSB0cnVlOworIAorICAgaWYgKEhhc1NQRSAmJiBJc1BQQzY0KQpkaWZmIC0t Z2l0IGEvc3JjcGtncy9sbHZtMTQvcGF0Y2hlcy9sbHZtLTAwNC1vdmVycmlkZS1vcHQucGF0Y2gg Yi9zcmNwa2dzL2xsdm0xNC9wYXRjaGVzL2xsdm0tMDA0LW92ZXJyaWRlLW9wdC5wYXRjaApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjUxZDBlNGIzMWIzMgotLS0gL2Rl di9udWxsCisrKyBiL3NyY3BrZ3MvbGx2bTE0L3BhdGNoZXMvbGx2bS0wMDQtb3ZlcnJpZGUtb3B0 LnBhdGNoCkBAIC0wLDAgKzEsMTggQEAKK1RoaXMgYWxsb3dzIHVzIHRvIG92ZXJyaWRlIHRoZSBv cHRpbWl6YXRpb24gbGV2ZWwgYXMgbm90IGFsbCBwbGF0Zm9ybXMgY2FuCitkZWFsIHdpdGggLU8z LgorCistLS0gYS9sbHZtL0NNYWtlTGlzdHMudHh0CisrKysgYi9sbHZtL0NNYWtlTGlzdHMudHh0 CitAQCAtOTE4LDYgKzkxOCwxMiBAQCBpZiggTUlOR1cgQU5EIE5PVCAiJHtDTUFLRV9DWFhfQ09N UElMRVJfSUR9IiBNQVRDSEVTICJDbGFuZyIgKQorICAgbGx2bV9yZXBsYWNlX2NvbXBpbGVyX29w dGlvbihDTUFLRV9DWFhfRkxBR1NfUkVMRUFTRSAiLU8zIiAiLU8yIikKKyBlbmRpZigpCisgCisr c2V0KFZPSURfQ1hYX09QVF9GTEFHUyAiIiBDQUNIRSBTVFJJTkcgIk9wdGltaXphdGlvbiBsZXZl bCB0byB1c2UiKQorKworK2lmIChOT1QgVk9JRF9DWFhfT1BUX0ZMQUdTIFNUUkVRVUFMICIiKQor KyAgICBsbHZtX3JlcGxhY2VfY29tcGlsZXJfb3B0aW9uKENNQUtFX0NYWF9GTEFHU19SRUxFQVNF ICItTzMiICIke1ZPSURfQ1hYX09QVF9GTEFHU30iKQorK2VuZGlmKCkKKysKKyAjIFB1dCB0aGlz IGJlZm9yZSB0YmxnZW4uIEVsc2Ugd2UgaGF2ZSBhIGNpcmN1bGFyIGRlcGVuZGVuY2UuCisgYWRk X3N1YmRpcmVjdG9yeShsaWIvRGVtYW5nbGUpCisgYWRkX3N1YmRpcmVjdG9yeShsaWIvU3VwcG9y dCkKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bTE0L3BhdGNoZXMvbGx2bS0wMDUtcHBjLWJpZ3Bp Yy5wYXRjaCBiL3NyY3BrZ3MvbGx2bTE0L3BhdGNoZXMvbGx2bS0wMDUtcHBjLWJpZ3BpYy5wYXRj aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmQzMzI2ODdiOWQ5Mgot LS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbGx2bTE0L3BhdGNoZXMvbGx2bS0wMDUtcHBjLWJp Z3BpYy5wYXRjaApAQCAtMCwwICsxLDM2IEBACitGcm9tIGYzZGJkZDQ5YzA2YmZhZmMxZDYxMzgw OTRjZjQyODg5YzE0ZDM4YjYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBTYW11ZWwg SG9sbGFuZCA8c2FtdWVsQHNob2xsYW5kLm9yZz4KK0RhdGU6IFN1biwgMyBOb3YgMjAxOSAxMDo1 NzoyNyAtMDYwMAorU3ViamVjdDogW1BBVENIXSBbTExWTV1bUG93ZXJQQ10gQXNzdW1lIEJpZ1BJ QyBpZiBubyBQSUMgbGV2ZWwgaXMgc3BlY2lmaWVkCisKKy0tLQorIGxsdm0vbGliL1RhcmdldC9Q b3dlclBDL1BQQ0FzbVByaW50ZXIuY3BwICB8IDIgKy0KKyBsbHZtL2xpYi9UYXJnZXQvUG93ZXJQ Qy9QUENNQ0luc3RMb3dlci5jcHAgfCAyICstCisgMiBmaWxlcyBjaGFuZ2VkLCAyIGluc2VydGlv bnMoKyksIDIgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9saWIvVGFyZ2V0L1Bvd2VyUEMv UFBDQXNtUHJpbnRlci5jcHAgYi9saWIvVGFyZ2V0L1Bvd2VyUEMvUFBDQXNtUHJpbnRlci5jcHAK K2luZGV4IGNjZTIxZjMyLi44N2NhNWY5YiAxMDA2NDQKKy0tLSBhL2xsdm0vbGliL1RhcmdldC9Q b3dlclBDL1BQQ0FzbVByaW50ZXIuY3BwCisrKysgYi9sbHZtL2xpYi9UYXJnZXQvUG93ZXJQQy9Q UENBc21QcmludGVyLmNwcAorQEAgLTUyMCw3ICs1MjAsNyBAQCB2b2lkIFBQQ0FzbVByaW50ZXI6 OkVtaXRUbHNDYWxsKGNvbnN0IE1hY2hpbmVJbnN0ciAqTUksCisgCisgICAvLyBBZGQgMzI3Njgg b2Zmc2V0IHRvIHRoZSBzeW1ib2wgc28gd2UgZm9sbG93IHVwIHRoZSBsYXRlc3QgR09UL1BMVCBB QkkuCisgICBpZiAoS2luZCA9PSBNQ1N5bWJvbFJlZkV4cHI6OlZLX1BMVCAmJiBTdWJ0YXJnZXQt PmlzU2VjdXJlUGx0KCkgJiYKKy0gICAgICBNLT5nZXRQSUNMZXZlbCgpID09IFBJQ0xldmVsOjpC aWdQSUMpCisrICAgICAgTS0+Z2V0UElDTGV2ZWwoKSAhPSBQSUNMZXZlbDo6U21hbGxQSUMpCisg ICAgIFRsc1JlZiA9IE1DQmluYXJ5RXhwcjo6Y3JlYXRlQWRkKAorICAgICAgICAgVGxzUmVmLCBN Q0NvbnN0YW50RXhwcjo6Y3JlYXRlKDMyNzY4LCBPdXRDb250ZXh0KSwgT3V0Q29udGV4dCk7Cisg ICBjb25zdCBNYWNoaW5lT3BlcmFuZCAmTU8gPSBNSS0+Z2V0T3BlcmFuZCgyKTsKK2RpZmYgLS1n aXQgYS9saWIvVGFyZ2V0L1Bvd2VyUEMvUFBDTUNJbnN0TG93ZXIuY3BwIGIvbGliL1RhcmdldC9Q b3dlclBDL1BQQ01DSW5zdExvd2VyLmNwcAoraW5kZXggNWNjMTgwZDcuLmE1YjAyNTY1IDEwMDY0 NAorLS0tIGEvbGx2bS9saWIvVGFyZ2V0L1Bvd2VyUEMvUFBDTUNJbnN0TG93ZXIuY3BwCisrKysg Yi9sbHZtL2xpYi9UYXJnZXQvUG93ZXJQQy9QUENNQ0luc3RMb3dlci5jcHAKK0BAIC0xMTcsNyAr MTE3LDcgQEAgc3RhdGljIE1DT3BlcmFuZCBHZXRTeW1ib2xSZWYoY29uc3QgTWFjaGluZU9wZXJh bmQgJk1PLCBjb25zdCBNQ1N5bWJvbCAqU3ltYm9sLAorICAgY29uc3QgTUNFeHByICpFeHByID0g TUNTeW1ib2xSZWZFeHByOjpjcmVhdGUoU3ltYm9sLCBSZWZLaW5kLCBDdHgpOworICAgLy8gSWYg LW1zZWN1cmUtcGx0IC1mUElDLCBhZGQgMzI3NjggdG8gc3ltYm9sLgorICAgaWYgKFN1YnRhcmdl dC0+aXNTZWN1cmVQbHQoKSAmJiBUTS5pc1Bvc2l0aW9uSW5kZXBlbmRlbnQoKSAmJgorLSAgICAg IE0tPmdldFBJQ0xldmVsKCkgPT0gUElDTGV2ZWw6OkJpZ1BJQyAmJgorKyAgICAgIE0tPmdldFBJ Q0xldmVsKCkgIT0gUElDTGV2ZWw6OlNtYWxsUElDICYmCisgICAgICAgTU8uZ2V0VGFyZ2V0Rmxh Z3MoKSA9PSBQUENJSTo6TU9fUExUKQorICAgICBFeHByID0KKyAgICAgICAgIE1DQmluYXJ5RXhw cjo6Y3JlYXRlQWRkKEV4cHIsIE1DQ29uc3RhbnRFeHByOjpjcmVhdGUoMzI3NjgsIEN0eCksIEN0 eCk7CmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0xNC9wYXRjaGVzL2xsdm0tMDA2LWFhcmNoNjQt bWZfZXhlYy5wYXRjaCBiL3NyY3BrZ3MvbGx2bTE0L3BhdGNoZXMvbGx2bS0wMDYtYWFyY2g2NC1t Zl9leGVjLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uYTAw YWJkMjE2NjY1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9sbHZtMTQvcGF0Y2hlcy9sbHZt LTAwNi1hYXJjaDY0LW1mX2V4ZWMucGF0Y2gKQEAgLTAsMCArMSwyNSBAQAorRml4IGZhaWx1cmVz IGluIEFsbG9jYXRpb25UZXN0cy9NYXBwZWRNZW1vcnlUZXN0Liogb24gYWFyY2g2NDoKKworICAg IEZhaWxpbmcgVGVzdHMgKDgpOgorICAgICAgICBMTFZNLVVuaXQgOjogU3VwcG9ydC8uL1N1cHBv cnRUZXN0cy9BbGxvY2F0aW9uVGVzdHMvTWFwcGVkTWVtb3J5VGVzdC5BbGxvY0FuZFJlbGVhc2Uv MworICAgICAgICBMTFZNLVVuaXQgOjogU3VwcG9ydC8uL1N1cHBvcnRUZXN0cy9BbGxvY2F0aW9u VGVzdHMvTWFwcGVkTWVtb3J5VGVzdC5EdXBsaWNhdGVOZWFyLzMKKyAgICAgICAgTExWTS1Vbml0 IDo6IFN1cHBvcnQvLi9TdXBwb3J0VGVzdHMvQWxsb2NhdGlvblRlc3RzL01hcHBlZE1lbW9yeVRl c3QuRW5hYmxlZFdyaXRlLzMKKyAgICAgICAgTExWTS1Vbml0IDo6IFN1cHBvcnQvLi9TdXBwb3J0 VGVzdHMvQWxsb2NhdGlvblRlc3RzL01hcHBlZE1lbW9yeVRlc3QuTXVsdGlwbGVBbGxvY0FuZFJl bGVhc2UvMworICAgICAgICBMTFZNLVVuaXQgOjogU3VwcG9ydC8uL1N1cHBvcnRUZXN0cy9BbGxv Y2F0aW9uVGVzdHMvTWFwcGVkTWVtb3J5VGVzdC5TdWNjZXNzaXZlTmVhci8zCisgICAgICAgIExM Vk0tVW5pdCA6OiBTdXBwb3J0Ly4vU3VwcG9ydFRlc3RzL0FsbG9jYXRpb25UZXN0cy9NYXBwZWRN ZW1vcnlUZXN0LlVuYWxpZ25lZE5lYXIvMworICAgICAgICBMTFZNLVVuaXQgOjogU3VwcG9ydC8u L1N1cHBvcnRUZXN0cy9BbGxvY2F0aW9uVGVzdHMvTWFwcGVkTWVtb3J5VGVzdC5aZXJvTmVhci8z CisgICAgICAgIExMVk0tVW5pdCA6OiBTdXBwb3J0Ly4vU3VwcG9ydFRlc3RzL0FsbG9jYXRpb25U ZXN0cy9NYXBwZWRNZW1vcnlUZXN0Llplcm9TaXplTmVhci8zCisKK1Vwc3RyZWFtLUlzc3VlOiBo dHRwczovL2J1Z3MubGx2bS5vcmcvc2hvd19idWcuY2dpP2lkPTE0Mjc4I2MxMAorCistLS0gYS9s bHZtL2xpYi9TdXBwb3J0L1VuaXgvTWVtb3J5LmluYworKysrIGIvbGx2bS9saWIvU3VwcG9ydC9V bml4L01lbW9yeS5pbmMKK0BAIC01OCw3ICs1OCw3IEBAIHN0YXRpYyBpbnQgZ2V0UG9zaXhQcm90 ZWN0aW9uRmxhZ3ModW5zaWduZWQgRmxhZ3MpIHsKKyAgICAgcmV0dXJuIFBST1RfUkVBRCB8IFBS T1RfV1JJVEUgfCBQUk9UX0VYRUM7CisgICBjYXNlIGxsdm06OnN5czo6TWVtb3J5OjpNRl9FWEVD OgorICNpZiAoZGVmaW5lZChfX0ZyZWVCU0RfXykgfHwgZGVmaW5lZChfX1BPV0VSUENfXykgfHwg ZGVmaW5lZCAoX19wcGNfXykgfHwgXAorLSAgICAgZGVmaW5lZChfUE9XRVIpIHx8IGRlZmluZWQo X0FSQ0hfUFBDKSkKKysgICAgIGRlZmluZWQoX1BPV0VSKSB8fCBkZWZpbmVkKF9BUkNIX1BQQykg fHwgKGRlZmluZWQoX19saW51eF9fKSAmJiBkZWZpbmVkKF9fYWFyY2g2NF9fKSkpCisgICAgIC8v IE9uIFBvd2VyUEMsIGhhdmluZyBhbiBleGVjdXRhYmxlIHBhZ2UgdGhhdCBoYXMgbm8gcmVhZCBw ZXJtaXNzaW9uCisgICAgIC8vIGNhbiBoYXZlIHVuaW50ZW5kZWQgY29uc2VxdWVuY2VzLiAgVGhl IGZ1bmN0aW9uIEludmFsaWRhdGVJbnN0cnVjdGlvbi0KKyAgICAgLy8gQ2FjaGUgdXNlcyBpbnN0 cnVjdGlvbnMgZGNiZiBhbmQgaWNiaSwgYm90aCBvZiB3aGljaCBhcmUgdHJlYXRlZCBieQpkaWZm IC0tZ2l0IGEvc3JjcGtncy9sbHZtMTQvdGVtcGxhdGUgYi9zcmNwa2dzL2xsdm0xNC90ZW1wbGF0 ZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjNlN2U2YWIyYzAwYgot LS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbGx2bTE0L3RlbXBsYXRlCkBAIC0wLDAgKzEsNDI0 IEBACisjIFRlbXBsYXRlIGZpbGUgZm9yICdsbHZtMTQnCitwa2duYW1lPWxsdm0xNAordmVyc2lv bj0xNC4wLjMKK3JldmlzaW9uPTEKK3dya3NyYz0ibGx2bS1wcm9qZWN0LSR7dmVyc2lvbn0uc3Jj IgorYnVpbGRfd3Jrc3JjPWxsdm0KK2J1aWxkX3N0eWxlPWNtYWtlCitjb25maWd1cmVfYXJncz0i CisgLURDTUFLRV9CVUlMRF9UWVBFPVJlbGVhc2UgLVduby1kZXYKKyAtREVOQUJMRV9MSU5LRVJf QlVJTERfSUQ9WUVTCisgLURMTERCX1VTRV9TWVNURU1fU0lYPVlFUworIC1ETElCQ1hYX0NYWF9B Qkk9bGliY3h4YWJpCisgLURMSUJDWFhfRU5BQkxFX1NUQVRJQ19BQklfTElCUkFSWT1ZRVMKKyAt RExJQkNYWEFCSV9VU0VfTExWTV9VTldJTkRFUj1ZRVMKKyAtRExJQkNYWEFCSV9FTkFCTEVfU1RB VElDX1VOV0lOREVSPVlFUworIC1ETElCT01QX0VOQUJMRV9TSEFSRUQ9WUVTCisgLURMSUJPTVBf SU5TVEFMTF9BTElBU0VTPU5PCisgLURMTFZNX0lOQ0xVREVfRE9DUz1ZRVMKKyAtRExMVk1fQlVJ TERfRE9DUz1ZRVMKKyAtRExMVk1fRU5BQkxFX1NQSElOWD1ZRVMKKyAtRFNQSElOWF9XQVJOSU5H U19BU19FUlJPUlM9Tk8KKyAtRExMVk1fSU5TVEFMTF9VVElMUz1ZRVMKKyAtRExMVk1fQlVJTERf TExWTV9EWUxJQj1ZRVMKKyAtRExMVk1fTElOS19MTFZNX0RZTElCPVlFUworIC1ETExWTV9FTkFC TEVfUlRUST1ZRVMKKyAtRExMVk1fRU5BQkxFX0ZGST1ZRVMKKyAtRExMVk1fQklOVVRJTFNfSU5D RElSPS91c3IvaW5jbHVkZSIKK2hvc3RtYWtlZGVwZW5kcz0icGVybCBweXRob24zIHpsaWItZGV2 ZWwgbGliZmZpLWRldmVsIHN3aWcgcHl0aG9uMy1TcGhpbngKKyBweXRob24zLXJlY29tbW9ubWFy ayBweXRob24zLXNwaGlueC1hdXRvbW9kYXBpIgorbWFrZWRlcGVuZHM9InB5dGhvbjMtZGV2ZWwg emxpYi1kZXZlbCBlbGZ1dGlscy1kZXZlbCBsaWJmZmktZGV2ZWwgbGliZWRpdC1kZXZlbAorIGxp YnhtbDItZGV2ZWwgYmludXRpbHMtZGV2ZWwgbGliYXRvbWljLWRldmVsIgorZGVwZW5kcz0ibGli bGx2bTE0Pj0ke3ZlcnNpb259XyR7cmV2aXNpb259Igorc2hvcnRfZGVzYz0iTG93IExldmVsIFZp cnR1YWwgTWFjaGluZSIKK21haW50YWluZXI9InE2NiA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+Igor bGljZW5zZT0iQXBhY2hlLTIuMCIKK2hvbWVwYWdlPSJodHRwczovL3d3dy5sbHZtLm9yZyIKK2Rp c3RmaWxlcz0iaHR0cHM6Ly9naXRodWIuY29tL2xsdm0vbGx2bS1wcm9qZWN0L3JlbGVhc2VzL2Rv d25sb2FkL2xsdm1vcmctJHt2ZXJzaW9ufS9sbHZtLXByb2plY3QtJHt2ZXJzaW9ufS5zcmMudGFy Lnh6IgorY2hlY2tzdW09NDRkM2U3YTc4NGQ1Y2Y4MDVlNzI4NTNiYjAzZjIxOGJkMTA1OGQ0NDhj MDNjYTg4M2RhYmJlYmM5OTIwNGUwYworbGliMzJkaXNhYmxlZD15ZXMKK3B5dGhvbl92ZXJzaW9u PTMKKworaWYgWyAiJFhCUFNfVEFSR0VUX0xJQkMiID0gIm11c2wiIF07IHRoZW4KKwljb25maWd1 cmVfYXJncys9IiAtRExJQkNYWF9IQVNfTVVTTF9MSUJDPVlFUyIKKwltYWtlZGVwZW5kcys9IiBs aWJleGVjaW5mby1kZXZlbCIKKwlkZXBlbmRzKz0iIGxpYmV4ZWNpbmZvLWRldmVsIgorZmkKKwor IyAib3BlcmFuZCBvdXQgb2YgcmFuZ2UiIGFzc2VtYmxlciBmYWlsdXJlcworY2FzZSAiJFhCUFNf VEFSR0VUX01BQ0hJTkUiIGluCisJcHBjNjQqKSA7OworCXBwYyopIGNvbmZpZ3VyZV9hcmdzKz0i IC1EQ0xBTkdfRU5BQkxFX0NMQU5HRD1PRkYiIDs7Citlc2FjCisKK19lbmFibGVkX3Byb2plY3Rz PSJjbGFuZztjbGFuZy10b29scy1leHRyYTtjb21waWxlci1ydDtsaWJjeHg7bGliY3h4YWJpO2xp YnVud2luZDtsbGQiCisKK19sbGRiX2VuYWJsZT15ZXMKK19saWJvbXBfZW5hYmxlPW5vCisKK2Nh c2UgIiRYQlBTX1RBUkdFVF9NQUNISU5FIiBpbgorCXBwYzY0bGUqKSA7OworCXBwYyp8aTY4Niop IF9sbGRiX2VuYWJsZT1ubyA7OworZXNhYworCitjYXNlICIkWEJQU19UQVJHRVRfTUFDSElORSIg aW4KKwl4ODZfNjQqfGFhcmNoNjQqfHBwYzY0KikgX2xpYm9tcF9lbmFibGU9eWVzOzsKK2VzYWMK Kworc3VicGFja2FnZXM9ImNsYW5nLXRvb2xzLWV4dHJhIgorCisjIG11c3QgZ28gYmVmb3JlIGNs YW5nCitpZiBbICIkX2xpYm9tcF9lbmFibGUiID0gInllcyIgXTsgdGhlbgorCV9lbmFibGVkX3By b2plY3RzKz0iO29wZW5tcCIKKwlzdWJwYWNrYWdlcys9IiBsaWJvbXAgbGlib21wLWRldmVsIgor CSMgYmVjYXVzZSBvZiBjbWFrZSBub25zZW5zZSByZWZlcmVuY2luZyBsaWJvbXB0YXJnZXQuc28u KgorCWRlcGVuZHMrPSIgbGlib21wPj0ke3ZlcnNpb259XyR7cmV2aXNpb259IgorZmkKKworc3Vi cGFja2FnZXMrPSIgY2xhbmcgY2xhbmctYW5hbHl6ZXIgbGliY2xhbmcgbGliY2xhbmctY3BwCisg bGx2bS1saWJ1bndpbmQgbGx2bS1saWJ1bndpbmQtZGV2ZWwgbGliY3h4IGxpYmN4eC1kZXZlbAor IGxpYmN4eGFiaSBsaWJjeHhhYmktZGV2ZWwgbGlibGx2bTE0IgorCitpZiBbICIkX2xsZGJfZW5h YmxlIiA9ICJ5ZXMiIF07IHRoZW4KKwkjIFhYWCBmYWlscyB0byBjcm9zcyBjb21waWxlIGR1ZSB0 byBweXRob24KKwlfZW5hYmxlZF9wcm9qZWN0cys9IjtsbGRiIgorCXN1YnBhY2thZ2VzKz0iIGxs ZGIgbGxkYi1kZXZlbCIKK2ZpCisKK3N1YnBhY2thZ2VzKz0iIGxsZCBsbGQtZGV2ZWwiCisKK2Nv bmZpZ3VyZV9hcmdzKz0iIC1ETExWTV9FTkFCTEVfUFJPSkVDVFM9JHtfZW5hYmxlZF9wcm9qZWN0 c30iCisKK3Bvc3RfcGF0Y2goKSB7CisJaWYgWyAiJF9sbGRiX2VuYWJsZSIgPSAieWVzIiBdOyB0 aGVuCisJCWlmIFsgIiRYQlBTX1RBUkdFVF9MSUJDIiA9ICJtdXNsIiBdOyB0aGVuCisJCQl2c2Vk IC1pICdzfF9fcHRyYWNlX3JlcXVlc3R8aW50fGcnIFwKKwkJCQkke3dya3NyY30vbGxkYi9zb3Vy Y2UvUGx1Z2lucy9Qcm9jZXNzL0xpbnV4L05hdGl2ZVByb2Nlc3NMaW51eC5jcHAKKwkJZmkKKwkJ IyBkaXNhYmxlIGRvY3MgZm9yIGxsZGIgYXMgdGhleSBmYWlsIHRvIGdlbmVyYXRlCisJCXZzZWQg LWkgJy9hZGRfc3ViZGlyZWN0b3J5KGRvY3MpL2QnIFwKKwkJCSR7d3Jrc3JjfS9sbGRiL0NNYWtl TGlzdHMudHh0CisJZmkKKworCSMgdXBkYXRlIGNvbmZpZy5ndWVzcyBmb3IgYmV0dGVyIHBsYXRm b3JtIGRldGVjdGlvbgorCWNwICRYQlBTX0NPTU1PTkRJUi9lbnZpcm9ubWVudC9jb25maWd1cmUv YXV0b21ha2UvY29uZmlnLmd1ZXNzIFwKKwkJJHt3cmtzcmN9L2xsdm0vY21ha2UKKworCSMgZml4 IGxpbmtlciBmYWlsdXJlcyBvbiBzb21lIGFyY2hzCisJdnNlZCAtaSAncyxjaGVja19saWJyYXJ5 X2V4aXN0cyhnY2NfcyAuKixzZXQoTElCQ1hYQUJJX0hBU19HQ0NfU19MSUIgT04pLCcgXAorCQkk e3dya3NyY30vbGliY3h4YWJpL2NtYWtlL2NvbmZpZy1peC5jbWFrZQorCXZzZWQgLWkgJ3MsY2hl Y2tfbGlicmFyeV9leGlzdHMoZ2NjIC4qLHNldChMSUJDWFhBQklfSEFTX0dDQ19MSUIgT04pLCcg XAorCQkke3dya3NyY30vbGliY3h4YWJpL2NtYWtlL2NvbmZpZy1peC5jbWFrZQorCisJIyBuZWVk IGxpYnNzcF9ub25zaGFyZWQgb24gc29tZSBtdXNsIHBsYXRmb3JtcyAoYmVjYXVzZSBvZiBub2Rl ZmF1bHRsaWJzKQorCWNhc2UgIiRYQlBTX1RBUkdFVF9NQUNISU5FIiBpbgorCQlwcGM2NCopIDs7 CisJCXBwYyotbXVzbHxpNjg2LW11c2x8bWlwcyotbXVzbCkKKwkJCXZzZWQgLWkgJ3MsXiMgU2V0 dXAgZmxhZ3MuJCxhZGRfbGlicmFyeV9mbGFncyhzc3Bfbm9uc2hhcmVkKSwnIFwKKwkJCQkke3dy a3NyY30vbGlidW53aW5kL3NyYy9DTWFrZUxpc3RzLnR4dAorCQkJdnNlZCAtaSAncyxeIyBTZXR1 cCBmbGFncy4kLGFkZF9saWJyYXJ5X2ZsYWdzKHNzcF9ub25zaGFyZWQpLCcgXAorCQkJCSR7d3Jr c3JjfS9saWJjeHhhYmkvc3JjL0NNYWtlTGlzdHMudHh0CisJCQl2c2VkIC1pICdzLCNzc3AsLCcg JHt3cmtzcmN9L2xpYmN4eC9DTWFrZUxpc3RzLnR4dAorCQkJOzsKKwllc2FjCisKKwljYXNlICIk WEJQU19UQVJHRVRfTUFDSElORSIgaW4KKwkJeDg2XzY0LW11c2wpICMgc29tZSBzYW5pdGl6ZXIg Y3VycmVudGx5IG9ubHkgb24geDg2XzY0IHN0dWZmIG5lZWRzIGJhY2t0cmFjZQorCQkJdnNlZCAt aSAncywjIFNldCBjb21tb24gbGluayBmbGFncy4sbGlzdChBUFBFTkQgU0FOSVRJWkVSX0NPTU1P Tl9MSU5LX0xJQlMgZXhlY2luZm8pLCcgXAorCQkJCSR7d3Jrc3JjfS9jb21waWxlci1ydC9DTWFr ZUxpc3RzLnR4dAorCQkJOzsKKwkJYXJtKi1tdXNsfGk2ODYtbXVzbCkgIyBzYW5pdGl6ZXIgY29k ZSBpcyBicm9rZW4gc2luY2UgaXQgZHVwbGljYXRlcyBzb21lIGxpYmMgYml0cworCQkJdnNlZCAt aSAncy9zZXQoQ09NUElMRVJfUlRfSEFTX1NBTklUSVpFUl9DT01NT04gVFJVRSkvc2V0KENPTVBJ TEVSX1JUX0hBU19TQU5JVElaRVJfQ09NTU9OIEZBTFNFKS8nIFwKKwkJCQkke3dya3NyY30vY29t cGlsZXItcnQvY21ha2UvY29uZmlnLWl4LmNtYWtlCisJCQk7OworCWVzYWMKK30KKworcHJlX2Nv bmZpZ3VyZSgpIHsKKwlsb2NhbCB0cmlwbGV0CisKKwkjIFZhc3RseSByZWR1Y2Ugc2l6ZSBvZiBk ZWJ1Z2dpbmcgc3ltYm9sczoKKwlDRkxBR1M9JHtDRkxBR1MvIC1nLyAtZzF9CisJQ1hYRkxBR1M9 JHtDWFhGTEFHUy8gLWcvIC1nMX0KKworCSMgc2luY2UgZ2NjOSwgdGhlIGJ1aWxkIGxpa2VzIHRv IGJsb3cgdXAgZm9yIHBwYzMyIGFwcGFyZW50bHkgYmVjYXVzZQorCSMgb2YgY2xhbmcgYmVpbmcg dG9vIGxhcmdlIGZvciBhIDI0LWJpdCByZWxhdGl2ZSBjYWxsIHRvIHRoZSBQTFQsIHNvCisJIyBv cHRpbWl6ZSBmb3Igc2l6ZSBpbnN0ZWFkCisJY2FzZSAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiIGlu CisJCXBwYzY0KikgOzsKKwkJbWlwcyotbXVzbHxwcGMqKSBjb25maWd1cmVfYXJncys9IiAtRFZP SURfQ1hYX09QVF9GTEFHUz0tT3MiIDs7CisJZXNhYworCisJaWYgWyAiJENST1NTX0JVSUxEIiBd OyB0aGVuCisJCW1zZ19ub3JtYWwgIkJ1aWxkaW5nIGhvc3QgdGJsZ2VuXG4iCisJCW1rZGlyIC1w IGJ1aWxkL0hPU1QKKwkJY2QgYnVpbGQvSE9TVAorCQlDQz0iJEJVSUxEX0NDIiBDWFg9IiRCVUlM RF9DWFgiIENGTEFHUz0iJEJVSUxEX0NGTEFHUyIgXAorCQkJQ1hYRkxBR1M9IiRCVUlMRF9DWFhG TEFHUyIgTERGTEFHUz0iJEJVSUxEX0xERkxBR1MiIFwKKwkJCWNtYWtlIC4uLy4uIC1EQ01BS0Vf QlVJTERfVFlQRT1SZWxlYXNlIFwKKwkJCS1ETExWTV9FTkFCTEVfUFJPSkVDVFM9JHtfZW5hYmxl ZF9wcm9qZWN0c30KKwkJbWFrZSAke21ha2Vqb2JzfSAtQyB1dGlscy9UYWJsZUdlbgorCQltYWtl ICR7bWFrZWpvYnN9IC1DIHRvb2xzL2NsYW5nL3V0aWxzL1RhYmxlR2VuCisJCVsgIiRfbGxkYl9l bmFibGUiID0gInllcyIgXSAmJiBtYWtlICR7bWFrZWpvYnN9IC1DIHRvb2xzL2xsZGIvdXRpbHMv VGFibGVHZW4KKwkJY29uZmlndXJlX2FyZ3MrPSIgLURMTFZNX1RBQkxFR0VOPSR7d3Jrc3JjfS9s bHZtL2J1aWxkL0hPU1QvYmluL2xsdm0tdGJsZ2VuIgorCQljb25maWd1cmVfYXJncys9IiAtRENM QU5HX1RBQkxFR0VOPSR7d3Jrc3JjfS9sbHZtL2J1aWxkL0hPU1QvYmluL2NsYW5nLXRibGdlbiIK KwkJWyAiJF9sbGRiX2VuYWJsZSIgPSAieWVzIiBdICYmIGNvbmZpZ3VyZV9hcmdzKz0iIC1ETExE Ql9UQUJMRUdFTj0ke3dya3NyY30vbGx2bS9idWlsZC9IT1NUL2Jpbi9sbGRiLXRibGdlbiIKKwkJ Y2QgLi4vLi4KKwlmaQorCisJY2FzZSAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiIGluCisJCWk2ODYq KSBfYXJjaD0iWDg2Ijs7CisJCXg4Nl82NCopIF9hcmNoPSJYODYiOzsKKwkJYXJtdjUqKSBfYXJj aD0iQXJtdjV0ZSI7OworCQlhcm12NiopIF9hcmNoPSJBcm12NiI7OworCQlhcm12NyopIF9hcmNo PSJBcm12NyI7OworCQlhYXJjaDY0KikgX2FyY2g9IkFBcmNoNjQiOzsKKwkJbWlwcyopIF9hcmNo PSJNaXBzIjs7CisJCXBwYyopIF9hcmNoPSJQb3dlclBDIjs7CisJCXJpc2N2NjQqKSBfYXJjaD0i UklTQ1Y2NCI7OworCWVzYWMKKworCXRyaXBsZXQ9JHtYQlBTX0NST1NTX1RSSVBMRVQ6LSRYQlBT X1RSSVBMRVR9CisKKwljb25maWd1cmVfYXJncys9IiAtRExMVk1fVEFSR0VUX0FSQ0g9JHtfYXJj aH0iCisJY29uZmlndXJlX2FyZ3MrPSIgLURMTFZNX0hPU1RfVFJJUExFPSR7dHJpcGxldH0iCisJ Y29uZmlndXJlX2FyZ3MrPSIgLURMTFZNX0RFRkFVTFRfVEFSR0VUX1RSSVBMRT0ke3RyaXBsZXR9 IgorfQorCitkb19pbnN0YWxsKCkgeworCWNkIGJ1aWxkCisJY21ha2UgLURDTUFLRV9JTlNUQUxM X1BSRUZJWD0ke0RFU1RESVJ9L3VzciAtUCBjbWFrZV9pbnN0YWxsLmNtYWtlCisKKwkjIFJlcXVp cmVkIGZvciBtdWx0aWxpYi4KKwlpZiBbICIkWEJQU19UQVJHRVRfTUFDSElORSIgPSAieDg2XzY0 IiBdOyB0aGVuCisJCWZvciBfaGVhZGVyIGluIGxsdm0tY29uZmlnOyBkbworCQkJbXYgJHtERVNU RElSfS91c3IvaW5jbHVkZS9sbHZtL0NvbmZpZy8ke19oZWFkZXJ9eywtNjR9LmgKKwkJCXZpbnN0 YWxsICR7RklMRVNESVJ9L2xsdm0tQ29uZmlnLSR7X2hlYWRlcn0uaCA2NDQgXAorCQkJCXVzci9p bmNsdWRlL2xsdm0vQ29uZmlnICR7X2hlYWRlcn0uaAorCQlkb25lCisJZmkKKworCSMgUmVtb3Zl IGxsdm0tY29uZmlnLWhvc3QgaW4gY3Jvc3MgYnVpbGRzLgorCWlmIFsgIiRDUk9TU19CVUlMRCIg XTsgdGhlbgorCQlybSAtZiAke0RFU1RESVJ9L3Vzci9iaW4vbGx2bS1jb25maWctaG9zdAorCWZp CisKKwkjIEluc3RhbGwgbGliY3h4YWJpIGhlYWRlcnMKKwl2aW5zdGFsbCAke3dya3NyY30vbGli Y3h4YWJpL2luY2x1ZGUvX19jeHhhYmlfY29uZmlnLmggNjQ0IHVzci9pbmNsdWRlCisJdmluc3Rh bGwgJHt3cmtzcmN9L2xpYmN4eGFiaS9pbmNsdWRlL2N4eGFiaS5oIDY0NCB1c3IvaW5jbHVkZQor CisJIyBJbnN0YWxsIGxpYnVud2luZCBoZWFkZXJzCisJdmluc3RhbGwgJHt3cmtzcmN9L2xpYnVu d2luZC9pbmNsdWRlL19fbGlidW53aW5kX2NvbmZpZy5oIDY0NCB1c3IvaW5jbHVkZQorCXZpbnN0 YWxsICR7d3Jrc3JjfS9saWJ1bndpbmQvaW5jbHVkZS9saWJ1bndpbmQuaCA2NDQgdXNyL2luY2x1 ZGUKKwl2aW5zdGFsbCAke3dya3NyY30vbGlidW53aW5kL2luY2x1ZGUvdW53aW5kLmggNjQ0IHVz ci9pbmNsdWRlCisJdmluc3RhbGwgJHt3cmtzcmN9L2xpYnVud2luZC9pbmNsdWRlL21hY2gtby9j b21wYWN0X3Vud2luZF9lbmNvZGluZy5oIFwKKwkJNjQ0IHVzci9pbmNsdWRlL21hY2gtbworfQor CitjbGFuZy1hbmFseXplcl9wYWNrYWdlKCkgeworCXB5Y29tcGlsZV9kaXJzPSJ1c3Ivc2hhcmUv c2Nhbi12aWV3IgorCWRlcGVuZHM9ImNsYW5nLSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0gcHl0aG9u MyBwZXJsIgorCXNob3J0X2Rlc2MrPSIgLSBBIHNvdXJjZSBjb2RlIGFuYWx5c2lzIGZyYW1ld29y ayIKKwlob21lcGFnZT0iaHR0cHM6Ly9jbGFuZy1hbmFseXplci5sbHZtLm9yZy8iCisJcGtnX2lu c3RhbGwoKSB7CisJCXZtb3ZlIHVzci9zaGFyZS9tYW4vbWFuMS9zY2FuLWJ1aWxkLjEKKwkJdm1v dmUgIi91c3IvYmluL3NjYW4tKiIKKwkJdm1vdmUgIi91c3Ivc2hhcmUvc2Nhbi0qIgorCQl2bW92 ZSAiL3Vzci9saWJleGVjLyphbmFseXplciIKKwl9Cit9CisKK2NsYW5nLXRvb2xzLWV4dHJhX3Bh Y2thZ2UoKSB7CisJbGliMzJkaXNhYmxlZD15ZXMKKwlkZXBlbmRzPSJjbGFuZy0ke3ZlcnNpb259 XyR7cmV2aXNpb259IHB5dGhvbjMiCisJc2hvcnRfZGVzYys9IiAtIEV4dHJhIENsYW5nIHRvb2xz IgorCWhvbWVwYWdlPSJodHRwczovL2NsYW5nLmxsdm0ub3JnL2V4dHJhLyIKKwlwa2dfaW5zdGFs bCgpIHsKKwkJdm1vdmUgdXNyL2luY2x1ZGUvY2xhbmctdGlkeQorCQl2bW92ZSB1c3IvYmluL2Ns YW5nLWFwcGx5LXJlcGxhY2VtZW50cworCQl2bW92ZSB1c3IvYmluL2NsYW5nLXF1ZXJ5CisJCXZt b3ZlIHVzci9iaW4vY2xhbmctcmVuYW1lCisJCXZtb3ZlIHVzci9iaW4vY2xhbmctdGlkeQorCQl2 bW92ZSB1c3IvYmluL2RpYWd0b29sCisJCXZtb3ZlIHVzci9iaW4vZmluZC1hbGwtc3ltYm9scwor CQl2bW92ZSB1c3IvYmluL2htYXB0b29sCisJCXZtb3ZlIHVzci9iaW4vbW9kdWxhcml6ZQorCQl2 bW92ZSB1c3IvYmluL3BwLXRyYWNlCisJCXZtb3ZlIHVzci9iaW4vc2FuY292CisJCXZtb3ZlICJ1 c3IvbGliL2xpYmNsYW5nQXBwbHlSZXBsYWNlbWVudHMqIgorCQl2bW92ZSAidXNyL2xpYi9saWJj bGFuZ1F1ZXJ5KiIKKwkJdm1vdmUgInVzci9saWIvbGliY2xhbmdUaWR5KiIKKwkJdm1vdmUgInVz ci9zaGFyZS9jbGFuZy8qdGlkeSoiCisJCXZtb3ZlIHVzci9zaGFyZS9kb2MvY2xhbmctdG9vbHMK KwkJdm1vdmUgdXNyL3NoYXJlL21hbi9tYW4xL2V4dHJhY2xhbmd0b29scy4xCisJCXZtb3ZlIHVz ci9zaGFyZS9tYW4vbWFuMS9kaWFndG9vbC4xCisJfQorfQorCitjbGFuZ19wYWNrYWdlKCkgewor CWxpYjMyZGlzYWJsZWQ9eWVzCisJZGVwZW5kcz0ibGlic3RkYysrLWRldmVsIGxpYmdjYy1kZXZl bCAgYmludXRpbHMgJHtYQlBTX1RBUkdFVF9MSUJDfS1kZXZlbAorCSBsaWJjbGFuZy0ke3ZlcnNp b259XyR7cmV2aXNpb259IgorCXNob3J0X2Rlc2MrPSIgLSBDIGxhbmd1YWdlIGZhbWlseSBmcm9u dGVuZCIKKwlob21lcGFnZT0iaHR0cHM6Ly9jbGFuZy5sbHZtLm9yZy8iCisJcGtnX2luc3RhbGwo KSB7CisJCXZtb3ZlIHVzci9pbmNsdWRlL2NsYW5nCisJCXZtb3ZlIHVzci9pbmNsdWRlL2NsYW5n LWMKKwkJdm1vdmUgInVzci9iaW4vKmNsYW5nKiIKKwkJdm1vdmUgdXNyL2Jpbi9jLWluZGV4LXRl c3QKKwkJdm1vdmUgdXNyL2xpYi9jbGFuZworCQl2bW92ZSB1c3IvbGliL2NtYWtlL2NsYW5nCisJ CXZtb3ZlICJ1c3IvbGliL2xpYmNsYW5nKi5hIgorCQl2bW92ZSAidXNyL2xpYi9saWJjbGFuZyou c28iCisJCXZtb3ZlIHVzci9zaGFyZS9jbGFuZworCQl2bW92ZSB1c3Ivc2hhcmUvZG9jL2NsYW5n CisJCXZtb3ZlIHVzci9zaGFyZS9tYW4vbWFuMS9jbGFuZy4xCisJfQorfQorCitsaWJjbGFuZ19w YWNrYWdlKCkgeworCXNob3J0X2Rlc2MrPSIgLSBDIGZyb250ZW5kIHJ1bnRpbWUgbGlicmFyeSIK Kwlwa2dfaW5zdGFsbCgpIHsKKwkJdm1vdmUgInVzci9saWIvbGliY2xhbmcuc28uKiIKKwl9Cit9 CisKK2xpYmNsYW5nLWNwcF9wYWNrYWdlKCkgeworCXNob3J0X2Rlc2MrPSIgLSBDIGZyb250ZW5k IHJ1bnRpbWUgbGlicmFyeSAoQysrIGludGVyZmFjZSkiCisJcGtnX2luc3RhbGwoKSB7CisJCXZt b3ZlICJ1c3IvbGliL2xpYmNsYW5nLWNwcC5zby4qIgorCX0KK30KKworbGxkX3BhY2thZ2UoKSB7 CisJbGliMzJkaXNhYmxlZD15ZXMKKwlzaG9ydF9kZXNjKz0iIC0gbGlua2VyIgorCWhvbWVwYWdl PSJodHRwczovL2xsZC5sbHZtLm9yZyIKKwlwa2dfaW5zdGFsbCgpIHsKKwkJdm1vdmUgdXNyL2Jp bi9sbGQqCisJCXZtb3ZlIHVzci9iaW4vd2FzbS1sZAorCQl2bW92ZSB1c3IvYmluL2xkLmxsZCoK KwkJdm1vdmUgdXNyL2Jpbi9sZDY0LmxsZCoKKwkJdm1vdmUgdXNyL3NoYXJlL2RvYy9sbGQKKwl9 Cit9CisKK2xsZC1kZXZlbF9wYWNrYWdlKCkgeworCWxpYjMyZGlzYWJsZWQ9eWVzCisJc2hvcnRf ZGVzYys9IiAtIGxpbmtlciAtIGRldmVsb3BtZW50IGZpbGVzIgorCWhvbWVwYWdlPSJodHRwczov L2xsZC5sbHZtLm9yZyIKKwlkZXBlbmRzPSJsbGQ+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCisJ cGtnX2luc3RhbGwoKSB7CisJCXZtb3ZlIHVzci9pbmNsdWRlL2xsZAorCQl2bW92ZSB1c3IvbGli L2NtYWtlL2xsZAorCQl2bW92ZSAidXNyL2xpYi9saWJsbGQqYSIKKwl9Cit9CisKK2xsZGJfcGFj a2FnZSgpIHsKKwlsaWIzMmRpc2FibGVkPXllcworCWRlcGVuZHMrPSIgcHl0aG9uMy1zaXgiCisJ c2hvcnRfZGVzYys9IiAtIExMREIgZGVidWdnZXIiCisJaG9tZXBhZ2U9Imh0dHBzOi8vbGxkYi5s bHZtLm9yZy8iCisJcGtnX2luc3RhbGwoKSB7CisJCXZtb3ZlIHVzci9iaW4vKmxsZGIqCisJCXZt b3ZlIHVzci9saWIvbGlibGxkYipzby4qCisJCXZtb3ZlIC91c3IvbGliL3B5dGhvbioKKwl9Cit9 CisKK2xsZGItZGV2ZWxfcGFja2FnZSgpIHsKKwlsaWIzMmRpc2FibGVkPXllcworCWRlcGVuZHM9 ImxsZGI+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCisJc2hvcnRfZGVzYys9IiAtIExMREIgZGVi dWdnZXIgLSBkZXZlbG9wbWVudCBmaWxlcyIKKwlwa2dfaW5zdGFsbCgpIHsKKwkJdm1vdmUgdXNy L2luY2x1ZGUvbGxkYgorCQl2bW92ZSAidXNyL2xpYi9saWJsbGRiKi5zbyIKKwl9Cit9CisKK2xs dm0tbGlidW53aW5kX3BhY2thZ2UoKSB7CisJc2hvcnRfZGVzYys9IiAtIGxpYnVud2luZCIKKwlw a2dfaW5zdGFsbCgpIHsKKwkJdm1vdmUgInVzci9saWIvbGlidW53aW5kLnNvLioiCisJfQorfQor CitsbHZtLWxpYnVud2luZC1kZXZlbF9wYWNrYWdlKCkgeworCXNob3J0X2Rlc2MrPSIgLSBsaWJ1 bndpbmQgLSBkZXZlbG9wbWVudCBmaWxlcyIKKwlkZXBlbmRzPSJsbHZtLWxpYnVud2luZD49JHt2 ZXJzaW9ufV8ke3JldmlzaW9ufSIKKwljb25mbGljdHM9ImxpYnVud2luZC1kZXZlbD49MCIKKwlw a2dfaW5zdGFsbCgpIHsKKwkJdm1vdmUgdXNyL2xpYi9saWJ1bndpbmQuc28KKwkJdm1vdmUgdXNy L2xpYi9saWJ1bndpbmQuYQorCQl2bW92ZSAidXNyL2luY2x1ZGUvKnVud2luZCoiCisJCXZtb3Zl IHVzci9pbmNsdWRlL21hY2gtbworCQl2bW92ZSB1c3Ivc2hhcmUvZG9jL2xpYnVud2luZAorCX0K K30KKworbGliY3h4YWJpX3BhY2thZ2UoKSB7CisJc2hvcnRfZGVzYys9IiAtIGxvdyBsZXZlbCBz dXBwb3J0IGZvciBsaWJjKysiCisJcGtnX2luc3RhbGwoKSB7CisJCXZtb3ZlICJ1c3IvbGliL2xp YmMrK2FiaS5zby4qIgorCX0KK30KKworbGliY3h4YWJpLWRldmVsX3BhY2thZ2UoKSB7CisJc2hv cnRfZGVzYys9IiAtIGxvdyBsZXZlbCBzdXBwb3J0IGZvciBsaWJjKysgLSBkZXZlbG9wbWVudCBm aWxlcyIKKwlkZXBlbmRzPSJsaWJjeHhhYmk+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCisJcGtn X2luc3RhbGwoKSB7CisJCXZtb3ZlIHVzci9saWIvbGliYysrYWJpLnNvCisJCXZtb3ZlIHVzci9s aWIvbGliYysrYWJpLmEKKwkJdm1vdmUgInVzci9pbmNsdWRlLypjeHhhYmkqIgorCX0KK30KKwor bGliY3h4X3BhY2thZ2UoKSB7CisJc2hvcnRfZGVzYys9IiAtIEMrKyBzdGFuZGFyZCBsaWJyYXJ5 IgorCXBrZ19pbnN0YWxsKCkgeworCQl2bW92ZSAidXNyL2xpYi9saWJjKysuc28uKiIKKwl9Cit9 CisKK2xpYmN4eC1kZXZlbF9wYWNrYWdlKCkgeworCXNob3J0X2Rlc2MrPSIgLSBDKysgc3RhbmRh cmQgbGlicmFyeSAtIGRldmVsb3BtZW50IGZpbGVzIgorCWRlcGVuZHM9ImxpYmN4eD49JHt2ZXJz aW9ufV8ke3JldmlzaW9ufSIKKwlwa2dfaW5zdGFsbCgpIHsKKwkJdm1vdmUgdXNyL2xpYi9saWJj Kysuc28KKwkJdm1vdmUgdXNyL2xpYi9saWJjKysuYQorCQl2bW92ZSB1c3IvbGliL2xpYmMrK2V4 cGVyaW1lbnRhbC5hCisJCXZtb3ZlIHVzci9pbmNsdWRlL2MrKworCQl2bW92ZSB1c3Ivc2hhcmUv ZG9jL2xpYmN4eAorCX0KK30KKworbGlib21wX3BhY2thZ2UoKSB7CisJc2hvcnRfZGVzYys9IiAt IENsYW5nIE9wZW5NUCBzdXBwb3J0IGxpYnJhcnkiCisJcGtnX2luc3RhbGwoKSB7CisJCXZtb3Zl IHVzci9saWIvbGlib21wLnNvCisJCXZtb3ZlICJ1c3IvbGliL2xpYm9tcHRhcmdldC5ydGwuKi5z byIKKwkJdm1vdmUgdXNyL2xpYi9saWJhcmNoZXIuc28KKwkJdm1vdmUgInVzci9saWIvbGlib21w Ki5zby4qIgorCX0KK30KKworbGlib21wLWRldmVsX3BhY2thZ2UoKSB7CisJc2hvcnRfZGVzYys9 IiAtIENsYW5nIE9wZW5NUCBzdXBwb3J0IGxpYnJhcnkgLSBkZXZlbG9wbWVudCBmaWxlcyIKKwlk ZXBlbmRzPSJsaWJvbXA+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCisJcGtnX2luc3RhbGwoKSB7 CisJCXZtb3ZlICJ1c3IvbGliL2xpYm9tcCouc28iCisJCXZtb3ZlICJ1c3IvbGliL2xpYmFyY2hl cioiCisJCXZtb3ZlICJ1c3IvaW5jbHVkZS9vbXAqLmgiCisJCXZtb3ZlICJ1c3IvbGliL2NsYW5n LyR7dmVyc2lvbn0vaW5jbHVkZS9vbXAqLmgiCisJCXZtb3ZlIHVzci9zaGFyZS9tYW4vbWFuMS9s bHZtb3Blbm1wLjEKKwkJdm1vdmUgdXNyL3NoYXJlL2RvYy9vcGVubXAKKwl9Cit9CisKK2xpYmxs dm0xNF9wYWNrYWdlKCkgeworCXNob3J0X2Rlc2MrPSIgLSBydW50aW1lIGxpYnJhcnkiCisJcGtn X2luc3RhbGwoKSB7CisJCXZtb3ZlICJ1c3IvbGliL2xpYkxMVk0tKi5zbyoiCisJfQorfQpkaWZm IC0tZ2l0IGEvc3JjcGtncy9sbHZtMTQvdXBkYXRlIGIvc3JjcGtncy9sbHZtMTQvdXBkYXRlCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZTk1Y2YyNmIzNTg2Ci0tLSAv ZGV2L251bGwKKysrIGIvc3JjcGtncy9sbHZtMTQvdXBkYXRlCkBAIC0wLDAgKzEsMyBAQAorc2l0 ZT0iaHR0cHM6Ly9naXRodWIuY29tL2xsdm0vbGx2bS1wcm9qZWN0L3JlbGVhc2VzIgorcGF0dGVy bj0ibGx2bW9yZy1cSyhcZCsuKXsyfVxkKygtcmNcZCspPyIKK2lnbm9yZT0iKi1yYyoiCgpGcm9t IGIzNjlkNDc1ZGJmZmE5Mjk3YjFmMDc0NGE4ZDIwMzM1N2FjMmJiYTAgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IHByZXogPHByZXpAbmF0aW9uYWwuc2hpdHBvc3RpbmcuYWdlbmN5PgpE YXRlOiBNb24sIDIgTWF5IDIwMjIgMjE6MTY6MDcgKzAyMDAKU3ViamVjdDogW1BBVENIIDAyLzI3 XSBsbHZtOiB1cGRhdGUgdG8gMTQuMC4zLgoKLS0tCiBzcmNwa2dzL2xsdm0vdGVtcGxhdGUgfCA2 ICsrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0vdGVtcGxhdGUgYi9zcmNwa2dzL2xsdm0vdGVtcGxh dGUKaW5kZXggYTkyZGI2Zjk0ZjlmLi5kMjI2YzYxYzczNGUgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mv bGx2bS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2xsdm0vdGVtcGxhdGUKQEAgLTEsMTAgKzEsMTAg QEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2xsdm0nCiBwa2duYW1lPWxsdm0KLXZlcnNpb249MTIu MC4wCit2ZXJzaW9uPTE0LjAuMwogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9bWV0YQotZGVwZW5k cz0ibGx2bTEyIgotcmVwbGFjZXM9Imxsdm0xMT49MCBsbHZtMTA+PTAgbGx2bTk+PTAgbGx2bTg+ PTAgbGx2bTc+PTAgbGx2bTYuMD49MCBsbHZtMy45Pj0wIgorZGVwZW5kcz0ibGx2bTE0IgorcmVw bGFjZXM9Imxsdm0xMz49MCBsbHZtMTI+PTAgbGx2bTExPj0wIGxsdm0xMD49MCBsbHZtOT49MCBs bHZtOD49MCBsbHZtNz49MCBsbHZtNi4wPj0wIGxsdm0zLjk+PTAiCiBzaG9ydF9kZXNjPSJMTFZN IG1ldGEgcGFja2FnZSIKIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4 Lm9yZz4iCiBsaWNlbnNlPSJQdWJsaWMgRG9tYWluIgoKRnJvbSBmYTI4MjlkN2FiMTY1YzJiYTk2 ZjcxN2RiMjg3YjcyNWZmNzI3M2QzIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBwcmV6 IDxwcmV6QG5hdGlvbmFsLnNoaXRwb3N0aW5nLmFnZW5jeT4KRGF0ZTogTW9uLCAyIE1heSAyMDIy IDIxOjM2OjMyICswMjAwClN1YmplY3Q6IFtQQVRDSCAwMy8yN10gbGx2bTEyOiBkcm9wIG5vbi1s bHZtIGNvbXBvbmVudHMKCi0tLQogLi4uY2xhbmctMDAxLWZpeC11bndpbmQtY2hhaW4taW5jbHVz aW9uLnBhdGNoIHwgIDQ0IC0tLQogLi4uL3BhdGNoZXMvY2xhbmctMDAyLWFkZC1tdXNsLXRyaXBs ZXMucGF0Y2ggIHwgMTEwIC0tLS0tLS0KIC4uLi9jbGFuZy0wMDMtcHBjNjQtZHluYW1pYy1saW5r ZXItcGF0aC5wYXRjaCB8ICAxMyAtCiAuLi4vcGF0Y2hlcy9jbGFuZy0wMDQtcHBjNjQtbXVzbC1l bGZ2Mi5wYXRjaCAgfCAgNDggLS0tCiAuLi4vY29tcGlsZXItcnQtYWFyY2g2NC11Y29udGV4dC5w YXRjaCAgICAgICAgfCAgMTEgLQogLi4uL2NvbXBpbGVyLXJ0LXNhbml0aXplci1wcGM2NC1tdXNs LnBhdGNoICAgIHwgIDM1IC0tCiAuLi4vbGx2bTEyL3BhdGNoZXMvY29tcGlsZXItcnQtc2l6ZV90 LnBhdGNoICAgfCAgMTAgLQogLi4uL3BhdGNoZXMvY29tcGlsZXItcnQteHJheS1wcGM2NC1tdXNs LnBhdGNoIHwgIDYyIC0tLS0KIHNyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvbGliY3h4LW11c2wucGF0 Y2ggICAgICB8ICAyNiAtLQogc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9saWJjeHgtcHBjLnBhdGNo ICAgICAgIHwgIDIyIC0tCiAuLi4vbGx2bTEyL3BhdGNoZXMvbGliY3h4LXNzcC1ub25zaGFyZWQu cGF0Y2ggfCAgMTEgLQogc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9saWJjeHhhYmktZGwucGF0Y2gg ICAgIHwgIDI1IC0tCiBzcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2xpYnVud2luZC1wcGMzMi5wYXRj aCAgfCAgNjMgLS0tLQogc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9sbGRiLW11c2wucGF0Y2ggICAg ICAgIHwgIDMxIC0tCiAuLi4vbGx2bTEyL3BhdGNoZXMvcHBjMzItY29tcGlsZXItcnQucGF0Y2gg ICAgfCAgMjEgLS0KIHNyY3BrZ3MvbGx2bTEyL3RlbXBsYXRlICAgICAgICAgICAgICAgICAgICAg ICB8IDMwMSArLS0tLS0tLS0tLS0tLS0tLS0KIDE2IGZpbGVzIGNoYW5nZWQsIDEgaW5zZXJ0aW9u KCspLCA4MzIgZGVsZXRpb25zKC0pCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9sbHZtMTIv cGF0Y2hlcy9jbGFuZy0wMDEtZml4LXVud2luZC1jaGFpbi1pbmNsdXNpb24ucGF0Y2gKIGRlbGV0 ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2NsYW5nLTAwMi1hZGQtbXVzbC10 cmlwbGVzLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9j bGFuZy0wMDMtcHBjNjQtZHluYW1pYy1saW5rZXItcGF0aC5wYXRjaAogZGVsZXRlIG1vZGUgMTAw NjQ0IHNyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvY2xhbmctMDA0LXBwYzY0LW11c2wtZWxmdjIucGF0 Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2NvbXBpbGVyLXJ0 LWFhcmNoNjQtdWNvbnRleHQucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xsdm0x Mi9wYXRjaGVzL2NvbXBpbGVyLXJ0LXNhbml0aXplci1wcGM2NC1tdXNsLnBhdGNoCiBkZWxldGUg bW9kZSAxMDA2NDQgc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9jb21waWxlci1ydC1zaXplX3QucGF0 Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2NvbXBpbGVyLXJ0 LXhyYXktcHBjNjQtbXVzbC5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGx2bTEy L3BhdGNoZXMvbGliY3h4LW11c2wucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xs dm0xMi9wYXRjaGVzL2xpYmN4eC1wcGMucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dz L2xsdm0xMi9wYXRjaGVzL2xpYmN4eC1zc3Atbm9uc2hhcmVkLnBhdGNoCiBkZWxldGUgbW9kZSAx MDA2NDQgc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9saWJjeHhhYmktZGwucGF0Y2gKIGRlbGV0ZSBt b2RlIDEwMDY0NCBzcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2xpYnVud2luZC1wcGMzMi5wYXRjaAog ZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvbGxkYi1tdXNsLnBhdGNo CiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9wcGMzMi1jb21waWxl ci1ydC5wYXRjaAoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvY2xhbmctMDAx LWZpeC11bndpbmQtY2hhaW4taW5jbHVzaW9uLnBhdGNoIGIvc3JjcGtncy9sbHZtMTIvcGF0Y2hl cy9jbGFuZy0wMDEtZml4LXVud2luZC1jaGFpbi1pbmNsdXNpb24ucGF0Y2gKZGVsZXRlZCBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IGU0ZWFhNzc4M2U3YS4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3Br Z3MvbGx2bTEyL3BhdGNoZXMvY2xhbmctMDAxLWZpeC11bndpbmQtY2hhaW4taW5jbHVzaW9uLnBh dGNoCisrKyAvZGV2L251bGwKQEAgLTEsNDQgKzAsMCBAQAotRnJvbSAzNTI5NzQxNjlmMGQyYjVk YTNkNTMyMWY1ODhmNWUzYjU5NDEzMzBlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTog QW5kcmVhIEJyYW5jYWxlb25pIDxtaXdheGVAZ21haWwuY29tPgotRGF0ZTogVHVlLCA4IFNlcCAy MDE1IDIyOjE0OjU3ICswMjAwCi1TdWJqZWN0OiBbUEFUQ0ggMi83XSBmaXggdW53aW5kIGNoYWlu IGluY2x1c2lvbgotCi0tLS0KLSBsaWIvSGVhZGVycy91bndpbmQuaCB8IDkgKysrKystLS0tCi0g MSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKLQotZGlmZiAt LWdpdCBhL2xpYi9IZWFkZXJzL3Vud2luZC5oIGIvbGliL0hlYWRlcnMvdW53aW5kLmgKLWluZGV4 IDMwM2Q3OTIuLjQ0ZTEwY2MgMTAwNjQ0Ci0tLS0gYS9jbGFuZy9saWIvSGVhZGVycy91bndpbmQu aAotKysrIGIvY2xhbmcvbGliL0hlYWRlcnMvdW53aW5kLmgKLUBAIC05LDkgKzksNiBAQAotIAot IC8qIFNlZSAiRGF0YSBEZWZpbml0aW9ucyBmb3IgbGliZ2NjX3MiIGluIHRoZSBMaW51eCBTdGFu ZGFyZCBCYXNlLiovCi0gCi0tI2lmbmRlZiBfX0NMQU5HX1VOV0lORF9ICi0tI2RlZmluZSBfX0NM QU5HX1VOV0lORF9ICi0tCi0gI2lmIGRlZmluZWQoX19BUFBMRV9fKSAmJiBfX2hhc19pbmNsdWRl X25leHQoPHVud2luZC5oPikKLSAvKiBEYXJ3aW4gKGZyb20gMTEueCBvbikgcHJvdmlkZSBhbiB1 bndpbmQuaC4gSWYgdGhhdCdzIGF2YWlsYWJsZSwKLSAgKiB1c2UgaXQuIGxpYnVud2luZCB3cmFw cyBzb21lIG9mIGl0cyBkZWZpbml0aW9ucyBpbiAjaWZkZWYgX0dOVV9TT1VSQ0UsCi1AQCAtMzks NiArMzYsOSBAQAotICMgZW5kaWYKLSAjZWxzZQotIAotKyNpZm5kZWYgX19DTEFOR19VTldJTkRf SAotKyNkZWZpbmUgX19DTEFOR19VTldJTkRfSAotKwotICNpbmNsdWRlIDxzdGRpbnQuaD4KLSAK LSAjaWZkZWYgX19jcGx1c3BsdXMKLUBAIC0zMjIsNiArMzIyLDcgQEAgX1Vud2luZF9QdHIgX1Vu d2luZF9HZXRUZXh0UmVsQmFzZShzdHJ1Y3QgX1Vud2luZF9Db250ZXh0ICopOwotIH0KLSAjZW5k aWYKLSAKLSsjZW5kaWYgLyogX19DTEFOR19VTldJTkRfSCAqLwotKwotICNlbmRpZgotIAotLSNl bmRpZiAvKiBfX0NMQU5HX1VOV0lORF9IICovCi0tLSAKLTIuNS4xCmRpZmYgLS1naXQgYS9zcmNw a2dzL2xsdm0xMi9wYXRjaGVzL2NsYW5nLTAwMi1hZGQtbXVzbC10cmlwbGVzLnBhdGNoIGIvc3Jj cGtncy9sbHZtMTIvcGF0Y2hlcy9jbGFuZy0wMDItYWRkLW11c2wtdHJpcGxlcy5wYXRjaApkZWxl dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjU2ODhkNDBkYmMyLi4wMDAwMDAwMDAwMDAKLS0t IGEvc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9jbGFuZy0wMDItYWRkLW11c2wtdHJpcGxlcy5wYXRj aAorKysgL2Rldi9udWxsCkBAIC0xLDExMCArMCwwIEBACi0tLS0gYS9jbGFuZy9saWIvRHJpdmVy L1Rvb2xDaGFpbnMvR251LmNwcAotKysrIGIvY2xhbmcvbGliL0RyaXZlci9Ub29sQ2hhaW5zL0du dS5jcHAKLUBAIC0yMDg2LDcgKzIwODYsOCBAQCB2b2lkIEdlbmVyaWNfR0NDOjpHQ0NJbnN0YWxs YXRpb25EZXRlY3Rvcjo6QWRkRGVmYXVsdEdDQ1ByZWZpeGVzKAotICAgc3RhdGljIGNvbnN0IGNo YXIgKmNvbnN0IEFSTUhGVHJpcGxlc1tdID0geyJhcm0tbGludXgtZ251ZWFiaWhmIiwKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYXJtdjdobC1yZWRoYXQt bGludXgtZ251ZWFiaSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgImFybXY2aGwtc3VzZS1saW51eC1nbnVlYWJpIiwKLS0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAiYXJtdjdobC1zdXNlLWxpbnV4LWdudWVhYmkifTsK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYXJtdjdobC1z dXNlLWxpbnV4LWdudWVhYmkiLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICJhcm12N2wtbGludXgtZ251ZWFiaWhmIn07Ci0gICBzdGF0aWMgY29uc3QgY2hh ciAqY29uc3QgQVJNZWJMaWJEaXJzW10gPSB7Ii9saWIifTsKLSAgIHN0YXRpYyBjb25zdCBjaGFy ICpjb25zdCBBUk1lYlRyaXBsZXNbXSA9IHsiYXJtZWItbGludXgtZ251ZWFiaSIsCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImFybWViLWxpbnV4LWFuZHJv aWRlYWJpIn07Ci1AQCAtMjE1Myw4ICsyMTU0LDcgQEAgdm9pZCBHZW5lcmljX0dDQzo6R0NDSW5z dGFsbGF0aW9uRGV0ZWN0b3I6OkFkZERlZmF1bHRHQ0NQcmVmaXhlcygKLSAgICAgICAicG93ZXJw YzY0LXN1c2UtbGludXgiLCAicG93ZXJwYy1tb250YXZpc3RhLWxpbnV4c3BlIn07Ci0gICBzdGF0 aWMgY29uc3QgY2hhciAqY29uc3QgUFBDTEVMaWJEaXJzW10gPSB7Ii9saWIzMiIsICIvbGliIn07 Ci0gICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgUFBDTEVUcmlwbGVzW10gPSB7InBvd2VycGNs ZS1saW51eC1nbnUiLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICJwb3dlcnBjbGUtdW5rbm93bi1saW51eC1nbnUiLAotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICJwb3dlcnBjbGUtbGludXgtbXVzbCJ9OwotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwb3dlcnBjbGUtdW5rbm93 bi1saW51eC1nbnUifTsKLSAKLSAgIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBQUEM2NExpYkRp cnNbXSA9IHsiL2xpYjY0IiwgIi9saWIifTsKLSAgIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBQ UEM2NFRyaXBsZXNbXSA9IHsKLUBAIC0yMjM1LDYgKzIyMzUsODcgQEAgdm9pZCBHZW5lcmljX0dD Qzo6R0NDSW5zdGFsbGF0aW9uRGV0ZWN0b3I6OkFkZERlZmF1bHRHQ0NQcmVmaXhlcygKLSAgICAg cmV0dXJuOwotICAgfQotIAotKyAgaWYgKFRhcmdldFRyaXBsZS5pc011c2woKSkgewotKyAgICBz dGF0aWMgY29uc3QgY2hhciAqY29uc3QgQUFyY2g2NE11c2xUcmlwbGVzW10gPSB7ImFhcmNoNjQt bGludXgtbXVzbCJ9OwotKyAgICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgQVJNSEZNdXNsVHJp cGxlc1tdID0gewotKyAgICAgICAgImFybS1saW51eC1tdXNsZWFiaWhmIiwgImFybXY3bC1saW51 eC1tdXNsZWFiaWhmIgotKyAgICB9OwotKyAgICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgQVJN TXVzbFRyaXBsZXNbXSA9IHsiYXJtLWxpbnV4LW11c2xlYWJpIn07Ci0rICAgIHN0YXRpYyBjb25z dCBjaGFyICpjb25zdCBYODZfNjRNdXNsVHJpcGxlc1tdID0geyJ4ODZfNjQtbGludXgtbXVzbCJ9 OwotKyAgICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgWDg2TXVzbFRyaXBsZXNbXSA9IHsiaTY4 Ni1saW51eC1tdXNsIn07Ci0rICAgIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBNSVBTTXVzbFRy aXBsZXNbXSA9IHsKLSsgICAgICAgICJtaXBzLWxpbnV4LW11c2wiLCAibWlwc2VsLWxpbnV4LW11 c2wiLAotKyAgICAgICAgIm1pcHNlbC1saW51eC1tdXNsaGYiLCAibWlwcy1saW51eC1tdXNsaGYi Ci0rICAgIH07Ci0rICAgIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBQUENNdXNsVHJpcGxlc1td ID0geyJwb3dlcnBjLWxpbnV4LW11c2wifTsKLSsgICAgc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0 IFBQQ0xFTXVzbFRyaXBsZXNbXSA9IHsicG93ZXJwY2xlLWxpbnV4LW11c2wifTsKLSsgICAgc3Rh dGljIGNvbnN0IGNoYXIgKmNvbnN0IFBQQzY0TXVzbFRyaXBsZXNbXSA9IHsicG93ZXJwYzY0LWxp bnV4LW11c2wifTsKLSsgICAgc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IFBQQzY0TEVNdXNsVHJp cGxlc1tdID0geyJwb3dlcnBjNjRsZS1saW51eC1tdXNsIn07Ci0rCi0rICAgIHN3aXRjaCAoVGFy Z2V0VHJpcGxlLmdldEFyY2goKSkgewotKyAgICBjYXNlIGxsdm06OlRyaXBsZTo6YWFyY2g2NDoK LSsgICAgICBMaWJEaXJzLmFwcGVuZChiZWdpbihBQXJjaDY0TGliRGlycyksIGVuZChBQXJjaDY0 TGliRGlycykpOwotKyAgICAgIFRyaXBsZUFsaWFzZXMuYXBwZW5kKGJlZ2luKEFBcmNoNjRNdXNs VHJpcGxlcyksIGVuZChBQXJjaDY0TXVzbFRyaXBsZXMpKTsKLSsgICAgICBCaWFyY2hMaWJEaXJz LmFwcGVuZChiZWdpbihBQXJjaDY0TGliRGlycyksIGVuZChBQXJjaDY0TGliRGlycykpOwotKyAg ICAgIEJpYXJjaFRyaXBsZUFsaWFzZXMuYXBwZW5kKGJlZ2luKEFBcmNoNjRNdXNsVHJpcGxlcyks IGVuZChBQXJjaDY0TXVzbFRyaXBsZXMpKTsKLSsgICAgICBicmVhazsKLSsgICAgY2FzZSBsbHZt OjpUcmlwbGU6OmFybToKLSsgICAgICBMaWJEaXJzLmFwcGVuZChiZWdpbihBUk1MaWJEaXJzKSwg ZW5kKEFSTUxpYkRpcnMpKTsKLSsgICAgICBpZiAoVGFyZ2V0VHJpcGxlLmdldEVudmlyb25tZW50 KCkgPT0gbGx2bTo6VHJpcGxlOjpNdXNsRUFCSUhGKSB7Ci0rICAgICAgICBUcmlwbGVBbGlhc2Vz LmFwcGVuZChiZWdpbihBUk1IRk11c2xUcmlwbGVzKSwgZW5kKEFSTUhGTXVzbFRyaXBsZXMpKTsK LSsgICAgICB9IGVsc2UgewotKyAgICAgICAgVHJpcGxlQWxpYXNlcy5hcHBlbmQoYmVnaW4oQVJN TXVzbFRyaXBsZXMpLCBlbmQoQVJNTXVzbFRyaXBsZXMpKTsKLSsgICAgICB9Ci0rICAgICAgYnJl YWs7Ci0rICAgIGNhc2UgbGx2bTo6VHJpcGxlOjp4ODZfNjQ6Ci0rICAgICAgTGliRGlycy5hcHBl bmQoYmVnaW4oWDg2XzY0TGliRGlycyksIGVuZChYODZfNjRMaWJEaXJzKSk7Ci0rICAgICAgVHJp cGxlQWxpYXNlcy5hcHBlbmQoYmVnaW4oWDg2XzY0TXVzbFRyaXBsZXMpLCBlbmQoWDg2XzY0TXVz bFRyaXBsZXMpKTsKLSsgICAgICBCaWFyY2hMaWJEaXJzLmFwcGVuZChiZWdpbihYODZMaWJEaXJz KSwgZW5kKFg4NkxpYkRpcnMpKTsKLSsgICAgICBCaWFyY2hUcmlwbGVBbGlhc2VzLmFwcGVuZChi ZWdpbihYODZNdXNsVHJpcGxlcyksIGVuZChYODZNdXNsVHJpcGxlcykpOwotKyAgICAgIGJyZWFr OwotKyAgICBjYXNlIGxsdm06OlRyaXBsZTo6eDg2OgotKyAgICAgIExpYkRpcnMuYXBwZW5kKGJl Z2luKFg4NkxpYkRpcnMpLCBlbmQoWDg2TGliRGlycykpOwotKyAgICAgIFRyaXBsZUFsaWFzZXMu YXBwZW5kKGJlZ2luKFg4Nk11c2xUcmlwbGVzKSwgZW5kKFg4Nk11c2xUcmlwbGVzKSk7Ci0rICAg ICAgQmlhcmNoTGliRGlycy5hcHBlbmQoYmVnaW4oWDg2XzY0TGliRGlycyksIGVuZChYODZfNjRM aWJEaXJzKSk7Ci0rICAgICAgQmlhcmNoVHJpcGxlQWxpYXNlcy5hcHBlbmQoYmVnaW4oWDg2XzY0 TXVzbFRyaXBsZXMpLCBlbmQoWDg2XzY0TXVzbFRyaXBsZXMpKTsKLSsgICAgICBicmVhazsKLSsg ICAgY2FzZSBsbHZtOjpUcmlwbGU6Om1pcHM6Ci0rICAgICAgTGliRGlycy5hcHBlbmQoYmVnaW4o TUlQU0xpYkRpcnMpLCBlbmQoTUlQU0xpYkRpcnMpKTsKLSsgICAgICBUcmlwbGVBbGlhc2VzLmFw cGVuZChiZWdpbihNSVBTTXVzbFRyaXBsZXMpLCBlbmQoTUlQU011c2xUcmlwbGVzKSk7Ci0rICAg ICAgYnJlYWs7Ci0rICAgIGNhc2UgbGx2bTo6VHJpcGxlOjpwcGM6Ci0rICAgICAgTGliRGlycy5h cHBlbmQoYmVnaW4oUFBDTGliRGlycyksIGVuZChQUENMaWJEaXJzKSk7Ci0rICAgICAgVHJpcGxl QWxpYXNlcy5hcHBlbmQoYmVnaW4oUFBDTXVzbFRyaXBsZXMpLCBlbmQoUFBDTXVzbFRyaXBsZXMp KTsKLSsgICAgICBCaWFyY2hMaWJEaXJzLmFwcGVuZChiZWdpbihQUEM2NExpYkRpcnMpLCBlbmQo UFBDNjRMaWJEaXJzKSk7Ci0rICAgICAgQmlhcmNoVHJpcGxlQWxpYXNlcy5hcHBlbmQoYmVnaW4o UFBDNjRNdXNsVHJpcGxlcyksIGVuZChQUEM2NE11c2xUcmlwbGVzKSk7Ci0rICAgICAgYnJlYWs7 Ci0rICAgIGNhc2UgbGx2bTo6VHJpcGxlOjpwcGNsZToKLSsgICAgICBMaWJEaXJzLmFwcGVuZChi ZWdpbihQUENMRUxpYkRpcnMpLCBlbmQoUFBDTEVMaWJEaXJzKSk7Ci0rICAgICAgVHJpcGxlQWxp YXNlcy5hcHBlbmQoYmVnaW4oUFBDTEVNdXNsVHJpcGxlcyksIGVuZChQUENMRU11c2xUcmlwbGVz KSk7Ci0rICAgICAgQmlhcmNoTGliRGlycy5hcHBlbmQoYmVnaW4oUFBDNjRMRUxpYkRpcnMpLCBl bmQoUFBDNjRMRUxpYkRpcnMpKTsKLSsgICAgICBCaWFyY2hUcmlwbGVBbGlhc2VzLmFwcGVuZChi ZWdpbihQUEM2NExFTXVzbFRyaXBsZXMpLCBlbmQoUFBDNjRMRU11c2xUcmlwbGVzKSk7Ci0rICAg ICAgYnJlYWs7Ci0rICAgIGNhc2UgbGx2bTo6VHJpcGxlOjpwcGM2NDoKLSsgICAgICBMaWJEaXJz LmFwcGVuZChiZWdpbihQUEM2NExpYkRpcnMpLCBlbmQoUFBDNjRMaWJEaXJzKSk7Ci0rICAgICAg VHJpcGxlQWxpYXNlcy5hcHBlbmQoYmVnaW4oUFBDNjRNdXNsVHJpcGxlcyksIGVuZChQUEM2NE11 c2xUcmlwbGVzKSk7Ci0rICAgICAgQmlhcmNoTGliRGlycy5hcHBlbmQoYmVnaW4oUFBDTGliRGly cyksIGVuZChQUENMaWJEaXJzKSk7Ci0rICAgICAgQmlhcmNoVHJpcGxlQWxpYXNlcy5hcHBlbmQo YmVnaW4oUFBDTXVzbFRyaXBsZXMpLCBlbmQoUFBDTXVzbFRyaXBsZXMpKTsKLSsgICAgICBicmVh azsKLSsgICAgY2FzZSBsbHZtOjpUcmlwbGU6OnBwYzY0bGU6Ci0rICAgICAgTGliRGlycy5hcHBl bmQoYmVnaW4oUFBDNjRMRUxpYkRpcnMpLCBlbmQoUFBDNjRMRUxpYkRpcnMpKTsKLSsgICAgICBU cmlwbGVBbGlhc2VzLmFwcGVuZChiZWdpbihQUEM2NExFTXVzbFRyaXBsZXMpLCBlbmQoUFBDNjRM RU11c2xUcmlwbGVzKSk7Ci0rICAgICAgQmlhcmNoTGliRGlycy5hcHBlbmQoYmVnaW4oUFBDTEVM aWJEaXJzKSwgZW5kKFBQQ0xFTGliRGlycykpOwotKyAgICAgIEJpYXJjaFRyaXBsZUFsaWFzZXMu YXBwZW5kKGJlZ2luKFBQQ0xFTXVzbFRyaXBsZXMpLCBlbmQoUFBDTEVNdXNsVHJpcGxlcykpOwot KyAgICAgIGJyZWFrOwotKyAgICBkZWZhdWx0OgotKyAgICAgIGJyZWFrOwotKyAgICB9Ci0rICAg IFRyaXBsZUFsaWFzZXMucHVzaF9iYWNrKFRhcmdldFRyaXBsZS5zdHIoKSk7Ci0rICAgIGlmIChU YXJnZXRUcmlwbGUuc3RyKCkgIT0gQmlhcmNoVHJpcGxlLnN0cigpKQotKyAgICAgIEJpYXJjaFRy aXBsZUFsaWFzZXMucHVzaF9iYWNrKEJpYXJjaFRyaXBsZS5zdHIoKSk7Ci0rICAgIHJldHVybjsK LSsgIH0KLSsKLSAgIC8vIEFuZHJvaWQgdGFyZ2V0cyBzaG91bGQgbm90IHVzZSBHTlUvTGludXgg dG9vbHMgb3IgbGlicmFyaWVzLgotICAgaWYgKFRhcmdldFRyaXBsZS5pc0FuZHJvaWQoKSkgewot ICAgICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgQUFyY2g2NEFuZHJvaWRUcmlwbGVzW10gPSB7 CmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2NsYW5nLTAwMy1wcGM2NC1keW5h bWljLWxpbmtlci1wYXRoLnBhdGNoIGIvc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9jbGFuZy0wMDMt cHBjNjQtZHluYW1pYy1saW5rZXItcGF0aC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggNGFkNjQxMmQxZTZjLi4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9sbHZtMTIvcGF0 Y2hlcy9jbGFuZy0wMDMtcHBjNjQtZHluYW1pYy1saW5rZXItcGF0aC5wYXRjaAorKysgL2Rldi9u dWxsCkBAIC0xLDEzICswLDAgQEAKLS0tLSBhL2NsYW5nL2xpYi9Ecml2ZXIvVG9vbENoYWlucy9M aW51eC5jcHAKLSsrKyBiL2NsYW5nL2xpYi9Ecml2ZXIvVG9vbENoYWlucy9MaW51eC5jcHAKLUBA IC01MDQsMTAgKzUwNCw2IEBAIHN0ZDo6c3RyaW5nIExpbnV4OjpnZXREeW5hbWljTGlua2VyKGNv bnN0IEFyZ0xpc3QgJkFyZ3MpIGNvbnN0IHsKLSAgICAgTG9hZGVyID0gImxkLnNvLjEiOwotICAg ICBicmVhazsKLSAgIGNhc2UgbGx2bTo6VHJpcGxlOjpwcGM2NDoKLS0gICAgTGliRGlyID0gImxp YjY0IjsKLS0gICAgTG9hZGVyID0KLS0gICAgICAgICh0b29sczo6cHBjOjpoYXNQUENBYmlBcmco QXJncywgImVsZnYyIikpID8gImxkNjQuc28uMiIgOiAibGQ2NC5zby4xIjsKLS0gICAgYnJlYWs7 Ci0gICBjYXNlIGxsdm06OlRyaXBsZTo6cHBjNjRsZToKLSAgICAgTGliRGlyID0gImxpYjY0IjsK LSAgICAgTG9hZGVyID0KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvY2xhbmct MDA0LXBwYzY0LW11c2wtZWxmdjIucGF0Y2ggYi9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2NsYW5n LTAwNC1wcGM2NC1tdXNsLWVsZnYyLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAyMWZjODAwM2M1ZjEuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2xsdm0xMi9wYXRjaGVz L2NsYW5nLTAwNC1wcGM2NC1tdXNsLWVsZnYyLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNDgg KzAsMCBAQAotLS0tIGEvY2xhbmcvbGliL0Jhc2ljL1RhcmdldHMvUFBDLmgKLSsrKyBiL2NsYW5n L2xpYi9CYXNpYy9UYXJnZXRzL1BQQy5oCi1AQCAtNDE1LDExICs0MTUsMTAgQEAgcHVibGljOgot ICAgICAgIExvbmdEb3VibGVGb3JtYXQgPSAmbGx2bTo6QVBGbG9hdDo6SUVFRWRvdWJsZSgpOwot ICAgICB9IGVsc2UgaWYgKChUcmlwbGUuZ2V0QXJjaCgpID09IGxsdm06OlRyaXBsZTo6cHBjNjRs ZSkpIHsKLSAgICAgICBEYXRhTGF5b3V0ID0gImUtbTplLWk2NDo2NC1uMzI6NjQiOwotLSAgICAg IEFCSSA9ICJlbGZ2MiI7Ci0gICAgIH0gZWxzZSB7Ci0gICAgICAgRGF0YUxheW91dCA9ICJFLW06 ZS1pNjQ6NjQtbjMyOjY0IjsKLS0gICAgICBBQkkgPSAiZWxmdjEiOwotICAgICB9Ci0rICAgIEFC SSA9ICJlbGZ2MiI7Ci0gCi0gICAgIGlmIChUcmlwbGUuaXNPU0ZyZWVCU0QoKSB8fCBUcmlwbGUu aXNPU09wZW5CU0QoKSB8fCBUcmlwbGUuaXNNdXNsKCkpIHsKLSAgICAgICBMb25nRG91YmxlV2lk dGggPSBMb25nRG91YmxlQWxpZ24gPSA2NDsKLS0tLSBhL2NsYW5nL2xpYi9Db2RlR2VuL1Rhcmdl dEluZm8uY3BwCi0rKysgYi9jbGFuZy9saWIvQ29kZUdlbi9UYXJnZXRJbmZvLmNwcAotQEAgLTEw OTI3LDkgKzEwOTI3LDkgQEAgY29uc3QgVGFyZ2V0Q29kZUdlbkluZm8gJkNvZGVHZW5Nb2R1bGU6 OmdldFRhcmdldENvZGVHZW5JbmZvKCkgewotICAgICAgIHJldHVybiBTZXRDR0luZm8obmV3IEFJ WFRhcmdldENvZGVHZW5JbmZvKFR5cGVzLCAvKklzNjRCaXQqLyB0cnVlKSk7Ci0gCi0gICAgIGlm IChUcmlwbGUuaXNPU0JpbkZvcm1hdEVMRigpKSB7Ci0tICAgICAgUFBDNjRfU1ZSNF9BQklJbmZv OjpBQklLaW5kIEtpbmQgPSBQUEM2NF9TVlI0X0FCSUluZm86OkVMRnYxOwotLSAgICAgIGlmIChn ZXRUYXJnZXQoKS5nZXRBQkkoKSA9PSAiZWxmdjIiKQotLSAgICAgICAgS2luZCA9IFBQQzY0X1NW UjRfQUJJSW5mbzo6RUxGdjI7Ci0rICAgICAgUFBDNjRfU1ZSNF9BQklJbmZvOjpBQklLaW5kIEtp bmQgPSBQUEM2NF9TVlI0X0FCSUluZm86OkVMRnYyOwotKyAgICAgIGlmIChnZXRUYXJnZXQoKS5n ZXRBQkkoKSA9PSAiZWxmdjEiKQotKyAgICAgICAgS2luZCA9IFBQQzY0X1NWUjRfQUJJSW5mbzo6 RUxGdjE7Ci0gICAgICAgYm9vbCBJc1NvZnRGbG9hdCA9IENvZGVHZW5PcHRzLkZsb2F0QUJJID09 ICJzb2Z0IjsKLSAKLSAgICAgICByZXR1cm4gU2V0Q0dJbmZvKAotLS0tIGEvY2xhbmcvbGliL0Ry aXZlci9Ub29sQ2hhaW5zL0NsYW5nLmNwcAotKysrIGIvY2xhbmcvbGliL0RyaXZlci9Ub29sQ2hh aW5zL0NsYW5nLmNwcAotQEAgLTE5MjAsMTQgKzE5MjAsNyBAQCB2b2lkIENsYW5nOjpBZGRQUENU YXJnZXRBcmdzKGNvbnN0IEFyZ0xpc3QgJkFyZ3MsCi0gICBjb25zdCBsbHZtOjpUcmlwbGUgJlQg PSBnZXRUb29sQ2hhaW4oKS5nZXRUcmlwbGUoKTsKLSAgIGlmIChULmlzT1NCaW5Gb3JtYXRFTEYo KSkgewotICAgICBzd2l0Y2ggKGdldFRvb2xDaGFpbigpLmdldEFyY2goKSkgewotLSAgICBjYXNl IGxsdm06OlRyaXBsZTo6cHBjNjQ6IHsKLS0gICAgICBpZiAoKFQuaXNPU0ZyZWVCU0QoKSAmJiBU LmdldE9TTWFqb3JWZXJzaW9uKCkgPj0gMTMpIHx8Ci0tICAgICAgICAgIFQuaXNPU09wZW5CU0Qo KSB8fCBULmlzTXVzbCgpKQotLSAgICAgICAgQUJJTmFtZSA9ICJlbGZ2MiI7Ci0tICAgICAgZWxz ZQotLSAgICAgICAgQUJJTmFtZSA9ICJlbGZ2MSI7Ci0tICAgICAgYnJlYWs7Ci0tICAgIH0KLSsg ICAgY2FzZSBsbHZtOjpUcmlwbGU6OnBwYzY0OgotICAgICBjYXNlIGxsdm06OlRyaXBsZTo6cHBj NjRsZToKLSAgICAgICBBQklOYW1lID0gImVsZnYyIjsKLSAgICAgICBicmVhazsKZGlmZiAtLWdp dCBhL3NyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvY29tcGlsZXItcnQtYWFyY2g2NC11Y29udGV4dC5w YXRjaCBiL3NyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvY29tcGlsZXItcnQtYWFyY2g2NC11Y29udGV4 dC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODkzYzA1OWQ3YjhkLi4wMDAw MDAwMDAwMDAKLS0tIGEvc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9jb21waWxlci1ydC1hYXJjaDY0 LXVjb250ZXh0LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTEgKzAsMCBAQAotLS0tIGEvY29t cGlsZXItcnQvbGliL3Nhbml0aXplcl9jb21tb24vc2FuaXRpemVyX2xpbnV4LmNwcC5vcmlnCi0r KysgYi9jb21waWxlci1ydC9saWIvc2FuaXRpemVyX2NvbW1vbi9zYW5pdGl6ZXJfbGludXguY3Bw Ci1AQCAtMTc5OSw3ICsxNzk5LDcgQEAKLSAKLSBzdGF0aWMgYm9vbCBBYXJjaDY0R2V0RVNSKHVj b250ZXh0X3QgKnVjb250ZXh0LCB1NjQgKmVzcikgewotICAgc3RhdGljIGNvbnN0IHUzMiBrRXNy TWFnaWMgPSAweDQ1NTM1MjAxOwotLSAgdTggKmF1eCA9IHVjb250ZXh0LT51Y19tY29udGV4dC5f X3Jlc2VydmVkOwotKyAgdTggKmF1eCA9IHJlaW50ZXJwcmV0X2Nhc3Q8dTggKj4odWNvbnRleHQt PnVjX21jb250ZXh0Ll9fcmVzZXJ2ZWQpOwotICAgd2hpbGUgKHRydWUpIHsKLSAgICAgX2FhcmNo NjRfY3R4ICpjdHggPSAoX2FhcmNoNjRfY3R4ICopYXV4OwotICAgICBpZiAoY3R4LT5zaXplID09 IDApIGJyZWFrOwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9jb21waWxlci1y dC1zYW5pdGl6ZXItcHBjNjQtbXVzbC5wYXRjaCBiL3NyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvY29t cGlsZXItcnQtc2FuaXRpemVyLXBwYzY0LW11c2wucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDM1ZjE2ZDI0ZjM0MC4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvbGx2bTEy L3BhdGNoZXMvY29tcGlsZXItcnQtc2FuaXRpemVyLXBwYzY0LW11c2wucGF0Y2gKKysrIC9kZXYv bnVsbApAQCAtMSwzNSArMCwwIEBACi0tLS0gYS9jb21waWxlci1ydC9saWIvc2FuaXRpemVyX2Nv bW1vbi9zYW5pdGl6ZXJfbGludXguY3BwCi0rKysgYi9jb21waWxlci1ydC9saWIvc2FuaXRpemVy X2NvbW1vbi9zYW5pdGl6ZXJfbGludXguY3BwCi1AQCAtNzQsNiArNzQsMTAgQEAKLSAjaW5jbHVk ZSA8c3lzL3V0c25hbWUuaD4KLSAjZW5kaWYKLSAKLSsjaWYgU0FOSVRJWkVSX0xJTlVYICYmIGRl ZmluZWQoX19wb3dlcnBjX18pCi0rI2luY2x1ZGUgPGFzbS9wdHJhY2UuaD4KLSsjZW5kaWYKLSsK LSAjaWYgU0FOSVRJWkVSX0xJTlVYICYmICFTQU5JVElaRVJfQU5EUk9JRAotICNpbmNsdWRlIDxz eXMvcGVyc29uYWxpdHkuaD4KLSAjZW5kaWYKLS0tLSBhL2NvbXBpbGVyLXJ0L2xpYi9zYW5pdGl6 ZXJfY29tbW9uL3Nhbml0aXplcl9wbGF0Zm9ybV9saW1pdHNfcG9zaXguY3BwCi0rKysgYi9jb21w aWxlci1ydC9saWIvc2FuaXRpemVyX2NvbW1vbi9zYW5pdGl6ZXJfcGxhdGZvcm1fbGltaXRzX3Bv c2l4LmNwcAotQEAgLTkyLDcgKzkyLDcgQEAKLSAjIGluY2x1ZGUgPHV0aW1lLmg+Ci0gIyBpbmNs dWRlIDxzeXMvcHRyYWNlLmg+Ci0gI2lmIGRlZmluZWQoX19taXBzNjQpIHx8IGRlZmluZWQoX19h YXJjaDY0X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwgXAotLSAgICBTQU5JVElaRVJfUklTQ1Y2 NAotKyAgICBkZWZpbmVkKF9fcG93ZXJwY19fKSB8fCBTQU5JVElaRVJfUklTQ1Y2NAotICMgIGlu Y2x1ZGUgPGFzbS9wdHJhY2UuaD4KLSAjICBpZmRlZiBfX2FybV9fCi0gdHlwZWRlZiBzdHJ1Y3Qg dXNlcl9mcHJlZ3MgZWxmX2ZwcmVnc2V0X3Q7Ci0tLS0gYS9jb21waWxlci1ydC9saWIvc2FuaXRp emVyX2NvbW1vbi9zYW5pdGl6ZXJfc3RvcHRoZXdvcmxkX2xpbnV4X2xpYmNkZXAuY3BwCi0rKysg Yi9jb21waWxlci1ydC9saWIvc2FuaXRpemVyX2NvbW1vbi9zYW5pdGl6ZXJfc3RvcHRoZXdvcmxk X2xpbnV4X2xpYmNkZXAuY3BwCi1AQCAtMzEsNyArMzEsNyBAQAotICNpbmNsdWRlIDxzeXMvdHlw ZXMuaD4gLy8gZm9yIHBpZF90Ci0gI2luY2x1ZGUgPHN5cy91aW8uaD4gLy8gZm9yIGlvdmVjCi0g I2luY2x1ZGUgPGVsZi5oPiAvLyBmb3IgTlRfUFJTVEFUVVMKLS0jaWYgKGRlZmluZWQoX19hYXJj aDY0X18pIHx8IFNBTklUSVpFUl9SSVNDVjY0KSAmJiAhU0FOSVRJWkVSX0FORFJPSUQKLSsjaWYg KGRlZmluZWQoX19hYXJjaDY0X18pIHx8IGRlZmluZWQoX19wb3dlcnBjX18pIHx8IFNBTklUSVpF Ul9SSVNDVjY0KSAmJiAhU0FOSVRJWkVSX0FORFJPSUQKLSAvLyBHTElCQyAyLjIwKyBzeXMvdXNl ciBkb2VzIG5vdCBpbmNsdWRlIGFzbS9wdHJhY2UuaAotICMgaW5jbHVkZSA8YXNtL3B0cmFjZS5o PgotICNlbmRpZgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9jb21waWxlci1y dC1zaXplX3QucGF0Y2ggYi9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2NvbXBpbGVyLXJ0LXNpemVf dC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmM2MzA2M2E1ZTllLi4wMDAw MDAwMDAwMDAKLS0tIGEvc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9jb21waWxlci1ydC1zaXplX3Qu cGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxMCArMCwwIEBACi0tLS0gYS9jb21waWxlci1ydC9s aWIvZnV6emVyL0Z1enplckludGVyY2VwdG9ycy5jcHAub3JpZwotKysrIGIvY29tcGlsZXItcnQv bGliL2Z1enplci9GdXp6ZXJJbnRlcmNlcHRvcnMuY3BwCi1AQCAtMjUsNiArMjUsNyBAQAotICAg fQotIAotICNpbmNsdWRlIDxjYXNzZXJ0PgotKyNpbmNsdWRlIDxjc3RkZGVmPgotICNpbmNsdWRl IDxjc3RkaW50PgotICNpbmNsdWRlIDxkbGZjbi5oPiAvLyBmb3IgZGxzeW0oKQotIApkaWZmIC0t Z2l0IGEvc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9jb21waWxlci1ydC14cmF5LXBwYzY0LW11c2wu cGF0Y2ggYi9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2NvbXBpbGVyLXJ0LXhyYXktcHBjNjQtbXVz bC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDBiNjFjODBjODk3Li4wMDAw MDAwMDAwMDAKLS0tIGEvc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9jb21waWxlci1ydC14cmF5LXBw YzY0LW11c2wucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw2MiArMCwwIEBACi0tLS0gYS9jb21w aWxlci1ydC9saWIveHJheS94cmF5X3Bvd2VycGM2NC5pbmMKLSsrKyBiL2NvbXBpbGVyLXJ0L2xp Yi94cmF5L3hyYXlfcG93ZXJwYzY0LmluYwotQEAgLTEyLDcgKzEyLDEzIEBACi0gCi0gI2luY2x1 ZGUgPGNzdGRpbnQ+Ci0gI2luY2x1ZGUgPG11dGV4PgotKyNpZmRlZiBfX0dMSUJDX18KLSAjaW5j bHVkZSA8c3lzL3BsYXRmb3JtL3BwYy5oPgotKyNlbHNlCi0rI2luY2x1ZGUgPGNjdHlwZT4KLSsj aW5jbHVkZSA8Y3N0cmluZz4KLSsjaW5jbHVkZSA8Y3N0ZGxpYj4KLSsjZW5kaWYKLSAKLSAjaW5j bHVkZSAieHJheV9kZWZzLmgiCi0gCi1AQCAtMjAsMTMgKzI2LDQ1IEBAIG5hbWVzcGFjZSBfX3hy YXkgewotIAotIEFMV0FZU19JTkxJTkUgdWludDY0X3QgcmVhZFRTQyh1aW50OF90ICZDUFUpIFhS QVlfTkVWRVJfSU5TVFJVTUVOVCB7Ci0gICBDUFUgPSAwOwotKyNpZmRlZiBfX0dMSUJDX18KLSAg IHJldHVybiBfX3BwY19nZXRfdGltZWJhc2UoKTsKLSsjZWxzZQotKyAgcmV0dXJuIF9fYnVpbHRp bl9wcGNfZ2V0X3RpbWViYXNlKCk7Ci0rI2VuZGlmCi0gfQotIAotIGlubGluZSB1aW50NjRfdCBn ZXRUU0NGcmVxdWVuY3koKSBYUkFZX05FVkVSX0lOU1RSVU1FTlQgewotICAgc3RhdGljIHN0ZDo6 bXV0ZXggTTsKLSAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBHdWFyZChNKTsKLSsjaWZk ZWYgX19HTElCQ19fCi0gICByZXR1cm4gX19wcGNfZ2V0X3RpbWViYXNlX2ZyZXEoKTsKLSsjZWxz ZQotKyAgLyogRklYTUU6IGEgbGVzcyBkaXJ0eSBpbXBsZW1lbnRhdGlvbj8gKi8KLSsgIHN0YXRp YyB1aW50NjRfdCBiYXNlOwotKyAgaWYgKCFiYXNlKSB7Ci0rICAgIEZJTEUgKmYgPSBmb3Blbigi L3Byb2MvY3B1aW5mbyIsICJyYiIpOwotKyAgICBpZiAoZikgewotKyAgICAgIHNzaXplX3QgbnI7 Ci0rICAgICAgLyogdmlydHVhbGx5IGFsd2F5cyBiaWcgZW5vdWdoIHRvIGhvbGQgdGhlIGxpbmUg Ki8KLSsgICAgICBjaGFyIGJ1Zls1MTJdOwotKyAgICAgIHdoaWxlIChmZ2V0cyhidWYsIHNpemVv ZihidWYpLCBmKSkgewotKyAgICAgICAgY2hhciAqcmV0ID0gc3Ryc3RyKGJ1ZiwgInRpbWViYXNl Iik7Ci0rICAgICAgICBpZiAoIXJldCkgewotKyAgICAgICAgICBjb250aW51ZTsKLSsgICAgICAg IH0KLSsgICAgICAgIHJldCArPSBzaXplb2YoInRpbWViYXNlIikgLSAxOwotKyAgICAgICAgcmV0 ID0gc3RyY2hyKHJldCwgJzonKTsKLSsgICAgICAgIGlmICghcmV0KSB7Ci0rICAgICAgICAgIGNv bnRpbnVlOwotKyAgICAgICAgfQotKyAgICAgICAgYmFzZSA9IHN0cnRvdWwocmV0ICsgMSwgbnVs bHB0ciwgMTApOwotKyAgICAgICAgYnJlYWs7Ci0rICAgICAgfQotKyAgICAgIGZjbG9zZShmKTsK LSsgICAgfQotKyAgfQotKyAgcmV0dXJuIGJhc2U7Ci0rI2VuZGlmCi0gfQotIAotIGlubGluZSBi b29sIHByb2JlUmVxdWlyZWRDUFVGZWF0dXJlcygpIFhSQVlfTkVWRVJfSU5TVFJVTUVOVCB7CmRp ZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2xpYmN4eC1tdXNsLnBhdGNoIGIvc3Jj cGtncy9sbHZtMTIvcGF0Y2hlcy9saWJjeHgtbXVzbC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggYmJkMzFmZmMyY2IxLi4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9sbHZt MTIvcGF0Y2hlcy9saWJjeHgtbXVzbC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDI2ICswLDAg QEAKLS0tLSBhL2xpYmN4eC9pbmNsdWRlL2xvY2FsZQotKysrIGIvbGliY3h4L2luY2x1ZGUvbG9j YWxlCi1AQCAtNzQyLDcgKzc0MiwxMSBAQCBfX251bV9nZXRfc2lnbmVkX2ludGVncmFsKGNvbnN0 IGNoYXIqIF9fYSwgY29uc3QgY2hhciogX19hX2VuZCwKLSAgICAgICAgIHR5cGVuYW1lIHJlbW92 ZV9yZWZlcmVuY2U8ZGVjbHR5cGUoZXJybm8pPjo6dHlwZSBfX3NhdmVfZXJybm8gPSBlcnJubzsK LSAgICAgICAgIGVycm5vID0gMDsKLSAgICAgICAgIGNoYXIgKl9fcDI7Ci0rI2lmIGRlZmluZWQo X19saW51eF9fKSAmJiAhZGVmaW5lZChfX0dMSUJDX18pCi0rICAgICAgICBsb25nIGxvbmcgX19s bCA9IHN0cnRvbGwoX19hLCAmX19wMiwgX19iYXNlKTsKLSsjZWxzZQotICAgICAgICAgbG9uZyBs b25nIF9fbGwgPSBzdHJ0b2xsX2woX19hLCAmX19wMiwgX19iYXNlLCBfTElCQ1BQX0dFVF9DX0xP Q0FMRSk7Ci0rI2VuZGlmCi0gICAgICAgICB0eXBlbmFtZSByZW1vdmVfcmVmZXJlbmNlPGRlY2x0 eXBlKGVycm5vKT46OnR5cGUgX19jdXJyZW50X2Vycm5vID0gZXJybm87Ci0gICAgICAgICBpZiAo X19jdXJyZW50X2Vycm5vID09IDApCi0gICAgICAgICAgICAgZXJybm8gPSBfX3NhdmVfZXJybm87 Ci1AQCAtNzgyLDcgKzc4NiwxMSBAQCBfX251bV9nZXRfdW5zaWduZWRfaW50ZWdyYWwoY29uc3Qg Y2hhciogX19hLCBjb25zdCBjaGFyKiBfX2FfZW5kLAotICAgICAgICAgdHlwZW5hbWUgcmVtb3Zl X3JlZmVyZW5jZTxkZWNsdHlwZShlcnJubyk+Ojp0eXBlIF9fc2F2ZV9lcnJubyA9IGVycm5vOwot ICAgICAgICAgZXJybm8gPSAwOwotICAgICAgICAgY2hhciAqX19wMjsKLSsjaWYgZGVmaW5lZChf X2xpbnV4X18pICYmICFkZWZpbmVkKF9fR0xJQkNfXykKLSsgICAgICAgIHVuc2lnbmVkIGxvbmcg bG9uZyBfX2xsID0gc3RydG91bGwoX19hLCAmX19wMiwgX19iYXNlKTsKLSsjZWxzZQotICAgICAg ICAgdW5zaWduZWQgbG9uZyBsb25nIF9fbGwgPSBzdHJ0b3VsbF9sKF9fYSwgJl9fcDIsIF9fYmFz ZSwgX0xJQkNQUF9HRVRfQ19MT0NBTEUpOwotKyNlbmRpZgotICAgICAgICAgdHlwZW5hbWUgcmVt b3ZlX3JlZmVyZW5jZTxkZWNsdHlwZShlcnJubyk+Ojp0eXBlIF9fY3VycmVudF9lcnJubyA9IGVy cm5vOwotICAgICAgICAgaWYgKF9fY3VycmVudF9lcnJubyA9PSAwKQotICAgICAgICAgICAgIGVy cm5vID0gX19zYXZlX2Vycm5vOwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9s aWJjeHgtcHBjLnBhdGNoIGIvc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9saWJjeHgtcHBjLnBhdGNo CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3YTkyZjgwMDRlMWMuLjAwMDAwMDAwMDAw MAotLS0gYS9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2xpYmN4eC1wcGMucGF0Y2gKKysrIC9kZXYv bnVsbApAQCAtMSwyMiArMCwwIEBACi1UaGlzIGVuc3VyZXMgYGlzX2llYzU1OWAgaXMgZGVmaW5l ZCBjb3JyZWN0bHkgdW5kZXIgYWxsIGxvbmcgZG91YmxlIEFCSXMsCi1pbmNsdWRpbmcgbXVzbCBh bmQgaXRzIDY0LWJpdCBsb25nIGRvdWJsZS4gQWxzbywgYF9fcHBjX19gIG9yIGBfX3BwYzY0X19g Ci1pcyBub3QgZGVmaW5lZCBvbiBnY2MuCi0KLS0tLSBhL2xpYmN4eC9pbmNsdWRlL2xpbWl0cwot KysrIGIvbGliY3h4L2luY2x1ZGUvbGltaXRzCi1AQCAtNDI2LDggKzQyNiwxNCBAQCBwcm90ZWN0 ZWQ6Ci0gICAgIF9MSUJDUFBfSU5MSU5FX1ZJU0lCSUxJVFkgc3RhdGljIF9MSUJDUFBfQ09OU1RF WFBSIHR5cGUgc2lnbmFsaW5nX05hTigpIF9OT0VYQ0VQVCB7cmV0dXJuIF9fYnVpbHRpbl9uYW5z bCgiIik7fQotICAgICBfTElCQ1BQX0lOTElORV9WSVNJQklMSVRZIHN0YXRpYyBfTElCQ1BQX0NP TlNURVhQUiB0eXBlIGRlbm9ybV9taW4oKSBfTk9FWENFUFQge3JldHVybiBfX0xEQkxfREVOT1JN X01JTl9fO30KLSAKLS0jaWYgKGRlZmluZWQoX19wcGNfXykgfHwgZGVmaW5lZChfX3BwYzY0X18p KQotKyNpZiBkZWZpbmVkKF9fcG93ZXJwY19fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0r I2lmIChfX0xEQkxfTUFYX0VYUF9fID4gX19EQkxfTUFYX0VYUF9fKSB8fCAoX19MREJMX01BTlRf RElHX18gPT0gX19EQkxfTUFOVF9ESUdfXykKLSsgICAgLyogSUVFRSA3NTQgcXVhZHJ1cGxlIG9y IGRvdWJsZSBwcmVjaXNpb24gKi8KLSsgICAgc3RhdGljIF9MSUJDUFBfQ09OU1RFWFBSIGNvbnN0 IGJvb2wgaXNfaWVjNTU5ID0gdHJ1ZTsKLSsjZWxzZQotKyAgICAvKiAxMjgtYml0IElCTSBkb3Vi bGUtZG91YmxlICovCi0gICAgIHN0YXRpYyBfTElCQ1BQX0NPTlNURVhQUiBjb25zdCBib29sIGlz X2llYzU1OSA9IGZhbHNlOwotKyNlbmRpZgotICNlbHNlCi0gICAgIHN0YXRpYyBfTElCQ1BQX0NP TlNURVhQUiBjb25zdCBib29sIGlzX2llYzU1OSA9IHRydWU7Ci0gI2VuZGlmCmRpZmYgLS1naXQg YS9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2xpYmN4eC1zc3Atbm9uc2hhcmVkLnBhdGNoIGIvc3Jj cGtncy9sbHZtMTIvcGF0Y2hlcy9saWJjeHgtc3NwLW5vbnNoYXJlZC5wYXRjaApkZWxldGVkIGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggNzAyOTJiZWIyZmNkLi4wMDAwMDAwMDAwMDAKLS0tIGEvc3Jj cGtncy9sbHZtMTIvcGF0Y2hlcy9saWJjeHgtc3NwLW5vbnNoYXJlZC5wYXRjaAorKysgL2Rldi9u dWxsCkBAIC0xLDExICswLDAgQEAKLS0tLSBhL2xpYmN4eC9DTWFrZUxpc3RzLnR4dAotKysrIGIv bGliY3h4L0NNYWtlTGlzdHMudHh0Ci1AQCAtNzY5LDYgKzc2OSw4IEBAIGZ1bmN0aW9uKGN4eF9s aW5rX3N5c3RlbV9saWJyYXJpZXMgdGFyZ2V0KQotICAgICB0YXJnZXRfbGlua19saWJyYXJpZXMo JHt0YXJnZXR9IFBSSVZBVEUgYXRvbWljKQotICAgZW5kaWYoKQotIAotKyNzc3AgIHRhcmdldF9s aW5rX2xpYnJhcmllcygke3RhcmdldH0gUFJJVkFURSBzc3Bfbm9uc2hhcmVkKQotKwotICAgaWYg KE1JTkdXKQotICAgICB0YXJnZXRfbGlua19saWJyYXJpZXMoJHt0YXJnZXR9IFBSSVZBVEUgIiR7 TUlOR1dfTElCUkFSSUVTfSIpCi0gICBlbmRpZigpCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0x Mi9wYXRjaGVzL2xpYmN4eGFiaS1kbC5wYXRjaCBiL3NyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvbGli Y3h4YWJpLWRsLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzYTE1ZjlkYjhj OTguLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2xpYmN4eGFiaS1k bC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDI1ICswLDAgQEAKLUFsc28gbGluayB0byAtbGRs IHRvIHByZXZlbnQgdW5kZWZpbmVkIHJlZmVyZW5jZXMuCi0KLS0tLSBhL2xpYmN4eGFiaS9zcmMv Q01ha2VMaXN0cy50eHQKLSsrKyBiL2xpYmN4eGFiaS9zcmMvQ01ha2VMaXN0cy50eHQKLUBAIC03 Myw2ICs3Myw3IEBACi0gICBlbmRpZigpCi0gCi0gICBhZGRfbGlicmFyeV9mbGFnc19pZihMSUJD WFhBQklfSEFTX0NfTElCIGMpCi0rICBhZGRfbGlicmFyeV9mbGFnc19pZihMSUJDWFhBQklfSEFT X0NfTElCIGRsKQotIGVuZGlmKCkKLSAKLSBpZiAoTElCQ1hYQUJJX1VTRV9MTFZNX1VOV0lOREVS KQotLS0tIGEvbGliY3h4L0NNYWtlTGlzdHMudHh0Ci0rKysgYi9saWJjeHgvQ01ha2VMaXN0cy50 eHQKLUBAIC03NDUsNiArNzQ1LDEwIEBACi0gICAgIHRhcmdldF9saW5rX2xpYnJhcmllcygke3Rh cmdldH0gUFJJVkFURSBtKQotICAgZW5kaWYoKQotIAotKyAgaWYgKExJQkNYWF9IQVNfQ19MSUIp Ci0rICAgIHRhcmdldF9saW5rX2xpYnJhcmllcygke3RhcmdldH0gUFJJVkFURSBkbCkKLSsgIGVu ZGlmKCkKLSsKLSAgIGlmIChMSUJDWFhfSEFTX1JUX0xJQikKLSAgICAgdGFyZ2V0X2xpbmtfbGli cmFyaWVzKCR7dGFyZ2V0fSBQUklWQVRFIHJ0KQotICAgZW5kaWYoKQpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9sbHZtMTIvcGF0Y2hlcy9saWJ1bndpbmQtcHBjMzIucGF0Y2ggYi9zcmNwa2dzL2xsdm0x Mi9wYXRjaGVzL2xpYnVud2luZC1wcGMzMi5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggNzRhYTc1NzZlY2Y5Li4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9sbHZtMTIvcGF0 Y2hlcy9saWJ1bndpbmQtcHBjMzIucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw2MyArMCwwIEBA Ci1UaGlzIGZpeGVzIGJ1aWxkIGF0IGxlYXN0IHdpdGggZ2NjOSB3aGljaCBkb2VzIG5vdCBkZWZp bmUgYF9fcHBjX19gLgotCi0tLS0gYS9saWJ1bndpbmQvaW5jbHVkZS9fX2xpYnVud2luZF9jb25m aWcuaAotKysrIGIvbGlidW53aW5kL2luY2x1ZGUvX19saWJ1bndpbmRfY29uZmlnLmgKLUBAIC00 OSw3ICs0OSw3IEBACi0gIyAgZGVmaW5lIF9MSUJVTldJTkRfQ09OVEVYVF9TSVpFIDE2NwotICMg IGRlZmluZSBfTElCVU5XSU5EX0NVUlNPUl9TSVpFIDE3OQotICMgIGRlZmluZSBfTElCVU5XSU5E X0hJR0hFU1RfRFdBUkZfUkVHSVNURVIgX0xJQlVOV0lORF9ISUdIRVNUX0RXQVJGX1JFR0lTVEVS X1BQQzY0Ci0tIyBlbGlmIGRlZmluZWQoX19wcGNfXykKLSsjIGVsaWYgZGVmaW5lZChfX3Bvd2Vy cGNfXykKLSAjICBkZWZpbmUgX0xJQlVOV0lORF9UQVJHRVRfUFBDIDEKLSAjICBkZWZpbmUgX0xJ QlVOV0lORF9DT05URVhUX1NJWkUgMTE3Ci0gIyAgZGVmaW5lIF9MSUJVTldJTkRfQ1VSU09SX1NJ WkUgMTI0Ci0tLS0gYS9saWJ1bndpbmQvc3JjL1Vud2luZFJlZ2lzdGVyc1Jlc3RvcmUuUwotKysr IGIvbGlidW53aW5kL3NyYy9VbndpbmRSZWdpc3RlcnNSZXN0b3JlLlMKLUBAIC0zOTIsNyArMzky LDcgQEAgTG5vdmVjOgotICAgUFBDNjRfTFIoMykKLSAgIGJjdHIKLSAKLS0jZWxpZiBkZWZpbmVk KF9fcHBjX18pCi0rI2VsaWYgZGVmaW5lZChfX3Bvd2VycGNfXykKLSAKLSBERUZJTkVfTElCVU5X SU5EX0ZVTkNUSU9OKF9aTjlsaWJ1bndpbmQxM1JlZ2lzdGVyc19wcGM2anVtcHRvRXYpCi0gLy8K LS0tLSBhL2xpYnVud2luZC9zcmMvVW53aW5kUmVnaXN0ZXJzU2F2ZS5TCi0rKysgYi9saWJ1bndp bmQvc3JjL1Vud2luZFJlZ2lzdGVyc1NhdmUuUwotQEAgLTU1NCw3ICs1NTQsNyBAQCBERUZJTkVf TElCVU5XSU5EX0ZVTkNUSU9OKF9fdW53X2dldGNvbnRleHQpCi0gICBibHIKLSAKLSAKLS0jZWxp ZiBkZWZpbmVkKF9fcHBjX18pCi0rI2VsaWYgZGVmaW5lZChfX3Bvd2VycGNfXykKLSAKLSAvLwot IC8vIGV4dGVybiBpbnQgdW53X2dldGNvbnRleHQodW53X2NvbnRleHRfdCogdGhyZWFkX3N0YXRl KQotLS0tIGEvbGlidW53aW5kL3NyYy9jb25maWcuaAotKysrIGIvbGlidW53aW5kL3NyYy9jb25m aWcuaAotQEAgLTk1LDEyICs5NSwxMiBAQAotICNkZWZpbmUgX0xJQlVOV0lORF9CVUlMRF9TSkxK X0FQSVMKLSAjZW5kaWYKLSAKLS0jaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4 Nl82NF9fKSB8fCBkZWZpbmVkKF9fcHBjX18pIHx8IGRlZmluZWQoX19wcGM2NF9fKSB8fCBkZWZp bmVkKF9fcG93ZXJwYzY0X18pCi0rI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194 ODZfNjRfXykgfHwgZGVmaW5lZChfX3Bvd2VycGNfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9f KQotICNkZWZpbmUgX0xJQlVOV0lORF9TVVBQT1JUX0ZSQU1FX0FQSVMKLSAjZW5kaWYKLSAKLSAj aWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXAotLSAgICBkZWZpbmVkKF9fcHBjX18pIHx8IGRlZmluZWQo X19wcGM2NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pIHx8ICAgICAgICBcCi0rICAgIGRl ZmluZWQoX19wb3dlcnBjX18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykgfHwgICAgICAgICAg ICAgICAgICAgICAgICAgIFwKLSAgICAgKCFkZWZpbmVkKF9fQVBQTEVfXykgJiYgZGVmaW5lZChf X2FybV9fKSkgfHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAoZGVmaW5l ZChfX2FybTY0X18pIHx8IGRlZmluZWQoX19hYXJjaDY0X18pKSB8fCAgICAgICAgICAgICAgICAg ICAgICAgICAgICBcCi0gICAgIGRlZmluZWQoX19taXBzX18pCi0tLS0gYS9saWJ1bndpbmQvc3Jj L2xpYnVud2luZC5jcHAKLSsrKyBiL2xpYnVud2luZC9zcmMvbGlidW53aW5kLmNwcAotQEAgLTQy LDcgKzQyLDcgQEAgX0xJQlVOV0lORF9ISURERU4gaW50IF9fdW53X2luaXRfbG9jYWwodW53X2N1 cnNvcl90ICpjdXJzb3IsCi0gIyBkZWZpbmUgUkVHSVNURVJfS0lORCBSZWdpc3RlcnNfeDg2XzY0 Ci0gI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICMgZGVmaW5lIFJFR0lTVEVSX0tJTkQg UmVnaXN0ZXJzX3BwYzY0Ci0tI2VsaWYgZGVmaW5lZChfX3BwY19fKQotKyNlbGlmIGRlZmluZWQo X19wb3dlcnBjX18pCi0gIyBkZWZpbmUgUkVHSVNURVJfS0lORCBSZWdpc3RlcnNfcHBjCi0gI2Vs aWYgZGVmaW5lZChfX2FhcmNoNjRfXykKLSAjIGRlZmluZSBSRUdJU1RFUl9LSU5EIFJlZ2lzdGVy c19hcm02NApkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9sbGRiLW11c2wucGF0 Y2ggYi9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2xsZGItbXVzbC5wYXRjaApkZWxldGVkIGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggNjAxYzBkMTM4NTIzLi4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtn cy9sbHZtMTIvcGF0Y2hlcy9sbGRiLW11c2wucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwzMSAr MCwwIEBACi0tLS0gYS9sbGRiL3NvdXJjZS9QbHVnaW5zL1Byb2Nlc3MvTGludXgvUHJvY2ZzLmgK LSsrKyBiL2xsZGIvc291cmNlL1BsdWdpbnMvUHJvY2Vzcy9MaW51eC9Qcm9jZnMuaAotQEAgLTEw LDIxICsxMCwxMiBAQAotIC8vIHN5cy9wcm9jZnMuaCBvbiBBbmRyb2lkL0xpbnV4IGZvciBhbGwg c3VwcG9ydGVkIGFyY2hpdGVjdHVyZXMuCi0gCi0gI2luY2x1ZGUgPHN5cy9wdHJhY2UuaD4KLSsj aW5jbHVkZSA8YXNtL3B0cmFjZS5oPgotIAotLSNpZmRlZiBfX0FORFJPSURfXwotLSNpZiBkZWZp bmVkKF9fYXJtNjRfXykgfHwgZGVmaW5lZChfX2FhcmNoNjRfXykKLS10eXBlZGVmIHVuc2lnbmVk IGxvbmcgZWxmX2dyZWdfdDsKLS10eXBlZGVmIGVsZl9ncmVnX3QKLS0gICAgZWxmX2dyZWdzZXRf dFsoc2l6ZW9mKHN0cnVjdCB1c2VyX3B0X3JlZ3MpIC8gc2l6ZW9mKGVsZl9ncmVnX3QpKV07Ci0t dHlwZWRlZiBzdHJ1Y3QgdXNlcl9mcHNpbWRfc3RhdGUgZWxmX2ZwcmVnc2V0X3Q7Ci0tI2lmbmRl ZiBOVF9GUFJFR1NFVAotLSNkZWZpbmUgTlRfRlBSRUdTRVQgTlRfUFJGUFJFRwotLSNlbmRpZiAv LyBOVF9GUFJFR1NFVAotLSNlbGlmIGRlZmluZWQoX19taXBzX18pCi0tI2lmbmRlZiBOVF9GUFJF R1NFVAotLSNkZWZpbmUgTlRfRlBSRUdTRVQgTlRfUFJGUFJFRwotLSNlbmRpZiAvLyBOVF9GUFJF R1NFVAotLSNlbmRpZgotLSNlbHNlIC8vIF9fQU5EUk9JRF9fCi0rI2lmICFkZWZpbmVkKF9fR0xJ QkNfXykgJiYgZGVmaW5lZChfX3Bvd2VycGNfXykKLSsjZGVmaW5lIHB0X3JlZ3MgbXVzbF9wdF9y ZWdzCi0rI2luY2x1ZGUgPHN5cy9wcm9jZnMuaD4KLSsjdW5kZWYgcHRfcmVncwotKyNlbHNlCi0g I2luY2x1ZGUgPHN5cy9wcm9jZnMuaD4KLS0jZW5kaWYgLy8gX19BTkRST0lEX18KLSsjZW5kaWYK ZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvcHBjMzItY29tcGlsZXItcnQucGF0 Y2ggYi9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL3BwYzMyLWNvbXBpbGVyLXJ0LnBhdGNoCmRlbGV0 ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4ZTBhOWE3NzlkMWIuLjAwMDAwMDAwMDAwMAotLS0g YS9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL3BwYzMyLWNvbXBpbGVyLXJ0LnBhdGNoCisrKyAvZGV2 L251bGwKQEAgLTEsMjEgKzAsMCBAQAotY29tbWl0IGJhNGVkZTU5NWZmOTU5OTIzMmY1ZGQyYjQz ODRjMjQzMTM3YjUzZmMKLUF1dGhvcjogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5v cmc+Ci1EYXRlOiAgIFR1ZSBKdW4gMjIgMjM6NDA6NTQgMjAyMSArMDIwMAotCi0gICAgZW5hYmxl IGNvbXBpbGVyLXJ0IHN1cHBvcnQgZm9yIHBwYzMyCi0KLWRpZmYgLS1naXQgYS9jb21waWxlci1y dC9jbWFrZS9iYXNlLWNvbmZpZy1peC5jbWFrZSBiL2NvbXBpbGVyLXJ0L2NtYWtlL2Jhc2UtY29u ZmlnLWl4LmNtYWtlCi1pbmRleCAxZWRhYjQzLi41YzBjOGEyIDEwMDY0NAotLS0tIGEvY29tcGls ZXItcnQvY21ha2UvYmFzZS1jb25maWctaXguY21ha2UKLSsrKyBiL2NvbXBpbGVyLXJ0L2NtYWtl L2Jhc2UtY29uZmlnLWl4LmNtYWtlCi1AQCAtMTgyLDkgKzE4Miw3IEBAIG1hY3JvKHRlc3RfdGFy Z2V0cykKLSAgICAgZWxzZWlmKCIke0NPTVBJTEVSX1JUX0RFRkFVTFRfVEFSR0VUX0FSQ0h9IiBN QVRDSEVTICJwb3dlcnBjNjRsZSIpCi0gICAgICAgdGVzdF90YXJnZXRfYXJjaChwb3dlcnBjNjRs ZSAiIiAiLW02NCIpCi0gICAgIGVsc2VpZigiJHtDT01QSUxFUl9SVF9ERUZBVUxUX1RBUkdFVF9B UkNIfSIgTUFUQ0hFUyAicG93ZXJwYyIpCi0tICAgICAgaWYoQ01BS0VfU1lTVEVNX05BTUUgTUFU Q0hFUyAiQUlYIikKLS0gICAgICAgIHRlc3RfdGFyZ2V0X2FyY2gocG93ZXJwYyAiIiAiLW0zMiIp Ci0tICAgICAgZW5kaWYoKQotKyAgICAgIHRlc3RfdGFyZ2V0X2FyY2gocG93ZXJwYyAiIiAiLW0z MiIpCi0gICAgICAgdGVzdF90YXJnZXRfYXJjaChwb3dlcnBjNjQgIiIgIi1tNjQiKQotICAgICBl bHNlaWYoIiR7Q09NUElMRVJfUlRfREVGQVVMVF9UQVJHRVRfQVJDSH0iIE1BVENIRVMgInMzOTB4 IikKLSAgICAgICB0ZXN0X3RhcmdldF9hcmNoKHMzOTB4ICIiICIiKQpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9sbHZtMTIvdGVtcGxhdGUgYi9zcmNwa2dzL2xsdm0xMi90ZW1wbGF0ZQppbmRleCA3Y2Ux ODAyOGU0YTMuLjdiMzYxYmJiZjViYyAxMDA2NDQKLS0tIGEvc3JjcGtncy9sbHZtMTIvdGVtcGxh dGUKKysrIGIvc3JjcGtncy9sbHZtMTIvdGVtcGxhdGUKQEAgLTEsMjUgKzEsMTcgQEAKICMgVGVt cGxhdGUgZmlsZSBmb3IgJ2xsdm0xMicKIHBrZ25hbWU9bGx2bTEyCiB2ZXJzaW9uPTEyLjAuMQot cmV2aXNpb249MgorcmV2aXNpb249Mwogd3Jrc3JjPSJsbHZtLXByb2plY3QtJHt2ZXJzaW9ufS5z cmMiCiBidWlsZF93cmtzcmM9bGx2bQogYnVpbGRfc3R5bGU9Y21ha2UKIGNvbmZpZ3VyZV9hcmdz PSIKICAtRENNQUtFX0JVSUxEX1RZUEU9UmVsZWFzZSAtV25vLWRldgogIC1ERU5BQkxFX0xJTktF Ul9CVUlMRF9JRD1ZRVMKLSAtRExMREJfVVNFX1NZU1RFTV9TSVg9WUVTCi0gLURMSUJDWFhfQ1hY X0FCST1saWJjeHhhYmkKLSAtRExJQkNYWF9FTkFCTEVfU1RBVElDX0FCSV9MSUJSQVJZPVlFUwot IC1ETElCQ1hYQUJJX1VTRV9MTFZNX1VOV0lOREVSPVlFUwotIC1ETElCQ1hYQUJJX0VOQUJMRV9T VEFUSUNfVU5XSU5ERVI9WUVTCi0gLURMSUJPTVBfRU5BQkxFX1NIQVJFRD1ZRVMKLSAtRExJQk9N UF9JTlNUQUxMX0FMSUFTRVM9Tk8KICAtRExMVk1fSU5DTFVERV9ET0NTPVlFUwogIC1ETExWTV9C VUlMRF9ET0NTPVlFUwogIC1ETExWTV9FTkFCTEVfU1BISU5YPVlFUwogIC1EU1BISU5YX1dBUk5J TkdTX0FTX0VSUk9SUz1OTwotIC1ETExWTV9JTlNUQUxMX1VUSUxTPVlFUwogIC1ETExWTV9CVUlM RF9MTFZNX0RZTElCPVlFUwogIC1ETExWTV9MSU5LX0xMVk1fRFlMSUI9WUVTCiAgLURMTFZNX0VO QUJMRV9SVFRJPVlFUwpAQCAtNTEsODcgKzQzLDEwIEBAIGNhc2UgIiRYQlBTX1RBUkdFVF9NQUNI SU5FIiBpbgogCXBwYyopIGNvbmZpZ3VyZV9hcmdzKz0iIC1EQ0xBTkdfRU5BQkxFX0NMQU5HRD1P RkYiIDs7CiBlc2FjCiAKLV9lbmFibGVkX3Byb2plY3RzPSJjbGFuZztjbGFuZy10b29scy1leHRy YTtjb21waWxlci1ydDtsaWJjeHg7bGliY3h4YWJpO2xpYnVud2luZDtsbGQiCi0KLV9sbGRiX2Vu YWJsZT15ZXMKLV9saWJvbXBfZW5hYmxlPW5vCi0KLWNhc2UgIiRYQlBTX1RBUkdFVF9NQUNISU5F IiBpbgotCXBwYzY0bGUqKSA7OwotCXBwYyp8aTY4NiopIF9sbGRiX2VuYWJsZT1ubyA7OwotZXNh YwotCi1jYXNlICIkWEJQU19UQVJHRVRfTUFDSElORSIgaW4KLQl4ODZfNjQqfGFhcmNoNjQqfHBw YzY0KikgX2xpYm9tcF9lbmFibGU9eWVzOzsKLWVzYWMKLQotc3VicGFja2FnZXM9ImNsYW5nLXRv b2xzLWV4dHJhIgotCi0jIG11c3QgZ28gYmVmb3JlIGNsYW5nCi1pZiBbICIkX2xpYm9tcF9lbmFi bGUiID0gInllcyIgXTsgdGhlbgotCV9lbmFibGVkX3Byb2plY3RzKz0iO29wZW5tcCIKLQlzdWJw YWNrYWdlcys9IiBsaWJvbXAgbGlib21wLWRldmVsIgotCSMgYmVjYXVzZSBvZiBjbWFrZSBub25z ZW5zZSByZWZlcmVuY2luZyBsaWJvbXB0YXJnZXQuc28uKgotCWRlcGVuZHMrPSIgbGlib21wPj0k e3ZlcnNpb259XyR7cmV2aXNpb259IgotZmkKLQotc3VicGFja2FnZXMrPSIgY2xhbmcgY2xhbmct YW5hbHl6ZXIgbGliY2xhbmcgbGliY2xhbmctY3BwCi0gbGx2bS1saWJ1bndpbmQgbGx2bS1saWJ1 bndpbmQtZGV2ZWwgbGliY3h4IGxpYmN4eC1kZXZlbAotIGxpYmN4eGFiaSBsaWJjeHhhYmktZGV2 ZWwgbGlibGx2bTEyIgotCi1pZiBbICIkX2xsZGJfZW5hYmxlIiA9ICJ5ZXMiIF07IHRoZW4KLQkj IFhYWCBmYWlscyB0byBjcm9zcyBjb21waWxlIGR1ZSB0byBweXRob24KLQlfZW5hYmxlZF9wcm9q ZWN0cys9IjtsbGRiIgotCXN1YnBhY2thZ2VzKz0iIGxsZGIgbGxkYi1kZXZlbCIKLWZpCi0KLXN1 YnBhY2thZ2VzKz0iIGxsZCBsbGQtZGV2ZWwiCi0KLWNvbmZpZ3VyZV9hcmdzKz0iIC1ETExWTV9F TkFCTEVfUFJPSkVDVFM9JHtfZW5hYmxlZF9wcm9qZWN0c30iCi0KIHBvc3RfcGF0Y2goKSB7Ci0J aWYgWyAiJF9sbGRiX2VuYWJsZSIgPSAieWVzIiBdOyB0aGVuCi0JCWlmIFsgIiRYQlBTX1RBUkdF VF9MSUJDIiA9ICJtdXNsIiBdOyB0aGVuCi0JCQl2c2VkIC1pICdzfF9fcHRyYWNlX3JlcXVlc3R8 aW50fGcnIFwKLQkJCQkke3dya3NyY30vbGxkYi9zb3VyY2UvUGx1Z2lucy9Qcm9jZXNzL0xpbnV4 L05hdGl2ZVByb2Nlc3NMaW51eC5jcHAKLQkJZmkKLQkJIyBkaXNhYmxlIGRvY3MgZm9yIGxsZGIg YXMgdGhleSBmYWlsIHRvIGdlbmVyYXRlCi0JCXZzZWQgLWkgJy9hZGRfc3ViZGlyZWN0b3J5KGRv Y3MpL2QnIFwKLQkJCSR7d3Jrc3JjfS9sbGRiL0NNYWtlTGlzdHMudHh0Ci0JZmkKLQogCSMgdXBk YXRlIGNvbmZpZy5ndWVzcyBmb3IgYmV0dGVyIHBsYXRmb3JtIGRldGVjdGlvbgogCWNwICRYQlBT X0NPTU1PTkRJUi9lbnZpcm9ubWVudC9jb25maWd1cmUvYXV0b21ha2UvY29uZmlnLmd1ZXNzIFwK IAkJJHt3cmtzcmN9L2xsdm0vY21ha2UKLQotCSMgZml4IGxpbmtlciBmYWlsdXJlcyBvbiBzb21l IGFyY2hzCi0JdnNlZCAtaSAncyxjaGVja19saWJyYXJ5X2V4aXN0cyhnY2NfcyAuKixzZXQoTElC Q1hYQUJJX0hBU19HQ0NfU19MSUIgT04pLCcgXAotCQkke3dya3NyY30vbGliY3h4YWJpL2NtYWtl L2NvbmZpZy1peC5jbWFrZQotCXZzZWQgLWkgJ3MsY2hlY2tfbGlicmFyeV9leGlzdHMoZ2NjIC4q LHNldChMSUJDWFhBQklfSEFTX0dDQ19MSUIgT04pLCcgXAotCQkke3dya3NyY30vbGliY3h4YWJp L2NtYWtlL2NvbmZpZy1peC5jbWFrZQotCi0JIyBuZWVkIGxpYnNzcF9ub25zaGFyZWQgb24gc29t ZSBtdXNsIHBsYXRmb3JtcyAoYmVjYXVzZSBvZiBub2RlZmF1bHRsaWJzKQotCWNhc2UgIiRYQlBT X1RBUkdFVF9NQUNISU5FIiBpbgotCQlwcGM2NCopIDs7Ci0JCXBwYyotbXVzbHxpNjg2LW11c2x8 bWlwcyotbXVzbCkKLQkJCXZzZWQgLWkgJ3MsXiMgU2V0dXAgZmxhZ3MuJCxhZGRfbGlicmFyeV9m bGFncyhzc3Bfbm9uc2hhcmVkKSwnIFwKLQkJCQkke3dya3NyY30vbGlidW53aW5kL3NyYy9DTWFr ZUxpc3RzLnR4dAotCQkJdnNlZCAtaSAncyxeIyBTZXR1cCBmbGFncy4kLGFkZF9saWJyYXJ5X2Zs YWdzKHNzcF9ub25zaGFyZWQpLCcgXAotCQkJCSR7d3Jrc3JjfS9saWJjeHhhYmkvc3JjL0NNYWtl TGlzdHMudHh0Ci0JCQl2c2VkIC1pICdzLCNzc3AsLCcgJHt3cmtzcmN9L2xpYmN4eC9DTWFrZUxp c3RzLnR4dAotCQkJOzsKLQllc2FjCi0KLQljYXNlICIkWEJQU19UQVJHRVRfTUFDSElORSIgaW4K LQkJeDg2XzY0LW11c2wpICMgc29tZSBzYW5pdGl6ZXIgY3VycmVudGx5IG9ubHkgb24geDg2XzY0 IHN0dWZmIG5lZWRzIGJhY2t0cmFjZQotCQkJdnNlZCAtaSAncywjIFNldCBjb21tb24gbGluayBm bGFncy4sbGlzdChBUFBFTkQgU0FOSVRJWkVSX0NPTU1PTl9MSU5LX0xJQlMgZXhlY2luZm8pLCcg XAotCQkJCSR7d3Jrc3JjfS9jb21waWxlci1ydC9DTWFrZUxpc3RzLnR4dAotCQkJOzsKLQkJYXJt Ki1tdXNsfGk2ODYtbXVzbCkgIyBzYW5pdGl6ZXIgY29kZSBpcyBicm9rZW4gc2luY2UgaXQgZHVw bGljYXRlcyBzb21lIGxpYmMgYml0cwotCQkJdnNlZCAtaSAncy9zZXQoQ09NUElMRVJfUlRfSEFT X1NBTklUSVpFUl9DT01NT04gVFJVRSkvc2V0KENPTVBJTEVSX1JUX0hBU19TQU5JVElaRVJfQ09N TU9OIEZBTFNFKS8nIFwKLQkJCQkke3dya3NyY30vY29tcGlsZXItcnQvY21ha2UvY29uZmlnLWl4 LmNtYWtlCi0JCQk7OwotCWVzYWMKIH0KIAogcHJlX2NvbmZpZ3VyZSgpIHsKQEAgLTE1OCwxMCAr NzMsOCBAQCBwcmVfY29uZmlndXJlKCkgewogCQkJY21ha2UgLi4vLi4gLURDTUFLRV9CVUlMRF9U WVBFPVJlbGVhc2UgXAogCQkJLURMTFZNX0VOQUJMRV9QUk9KRUNUUz0ke19lbmFibGVkX3Byb2pl Y3RzfQogCQltYWtlICR7bWFrZWpvYnN9IC1DIHV0aWxzL1RhYmxlR2VuCi0JCW1ha2UgJHttYWtl am9ic30gLUMgdG9vbHMvY2xhbmcvdXRpbHMvVGFibGVHZW4KIAkJWyAiJF9sbGRiX2VuYWJsZSIg PSAieWVzIiBdICYmIG1ha2UgJHttYWtlam9ic30gLUMgdG9vbHMvbGxkYi91dGlscy9UYWJsZUdl bgogCQljb25maWd1cmVfYXJncys9IiAtRExMVk1fVEFCTEVHRU49JHt3cmtzcmN9L2xsdm0vYnVp bGQvSE9TVC9iaW4vbGx2bS10YmxnZW4iCi0JCWNvbmZpZ3VyZV9hcmdzKz0iIC1EQ0xBTkdfVEFC TEVHRU49JHt3cmtzcmN9L2xsdm0vYnVpbGQvSE9TVC9iaW4vY2xhbmctdGJsZ2VuIgogCQlbICIk X2xsZGJfZW5hYmxlIiA9ICJ5ZXMiIF0gJiYgY29uZmlndXJlX2FyZ3MrPSIgLURMTERCX1RBQkxF R0VOPSR7d3Jrc3JjfS9sbHZtL2J1aWxkL0hPU1QvYmluL2xsZGItdGJsZ2VuIgogCQljZCAuLi8u LgogCWZpCkBAIC0yMDIsMjE4ICsxMTUsNiBAQCBkb19pbnN0YWxsKCkgewogCWlmIFsgIiRDUk9T U19CVUlMRCIgXTsgdGhlbgogCQlybSAtZiAke0RFU1RESVJ9L3Vzci9iaW4vbGx2bS1jb25maWct aG9zdAogCWZpCi0KLQkjIEluc3RhbGwgbGliY3h4YWJpIGhlYWRlcnMKLQl2aW5zdGFsbCAke3dy a3NyY30vbGliY3h4YWJpL2luY2x1ZGUvX19jeHhhYmlfY29uZmlnLmggNjQ0IHVzci9pbmNsdWRl Ci0Jdmluc3RhbGwgJHt3cmtzcmN9L2xpYmN4eGFiaS9pbmNsdWRlL2N4eGFiaS5oIDY0NCB1c3Iv aW5jbHVkZQotCi0JIyBJbnN0YWxsIGxpYnVud2luZCBoZWFkZXJzCi0Jdmluc3RhbGwgJHt3cmtz cmN9L2xpYnVud2luZC9pbmNsdWRlL19fbGlidW53aW5kX2NvbmZpZy5oIDY0NCB1c3IvaW5jbHVk ZQotCXZpbnN0YWxsICR7d3Jrc3JjfS9saWJ1bndpbmQvaW5jbHVkZS9saWJ1bndpbmQuaCA2NDQg dXNyL2luY2x1ZGUKLQl2aW5zdGFsbCAke3dya3NyY30vbGlidW53aW5kL2luY2x1ZGUvdW53aW5k LmggNjQ0IHVzci9pbmNsdWRlCi0Jdmluc3RhbGwgJHt3cmtzcmN9L2xpYnVud2luZC9pbmNsdWRl L21hY2gtby9jb21wYWN0X3Vud2luZF9lbmNvZGluZy5oIFwKLQkJNjQ0IHVzci9pbmNsdWRlL21h Y2gtbwotfQotCi1jbGFuZy1hbmFseXplcl9wYWNrYWdlKCkgewotCXB5Y29tcGlsZV9kaXJzPSJ1 c3Ivc2hhcmUvc2Nhbi12aWV3IgotCWRlcGVuZHM9ImNsYW5nLSR7dmVyc2lvbn1fJHtyZXZpc2lv bn0gcHl0aG9uMyBwZXJsIgotCXNob3J0X2Rlc2MrPSIgLSBBIHNvdXJjZSBjb2RlIGFuYWx5c2lz IGZyYW1ld29yayIKLQlob21lcGFnZT0iaHR0cHM6Ly9jbGFuZy1hbmFseXplci5sbHZtLm9yZy8i Ci0JcGtnX2luc3RhbGwoKSB7Ci0JCXZtb3ZlIHVzci9zaGFyZS9tYW4vbWFuMS9zY2FuLWJ1aWxk LjEKLQkJdm1vdmUgIi91c3IvYmluL3NjYW4tKiIKLQkJdm1vdmUgIi91c3Ivc2hhcmUvc2Nhbi0q IgotCQl2bW92ZSAiL3Vzci9saWJleGVjLyphbmFseXplciIKLQl9Ci19Ci0KLWNsYW5nLXRvb2xz LWV4dHJhX3BhY2thZ2UoKSB7Ci0JbGliMzJkaXNhYmxlZD15ZXMKLQlkZXBlbmRzPSJjbGFuZy0k e3ZlcnNpb259XyR7cmV2aXNpb259IHB5dGhvbjMiCi0Jc2hvcnRfZGVzYys9IiAtIEV4dHJhIENs YW5nIHRvb2xzIgotCWhvbWVwYWdlPSJodHRwczovL2NsYW5nLmxsdm0ub3JnL2V4dHJhLyIKLQlw a2dfaW5zdGFsbCgpIHsKLQkJdm1vdmUgdXNyL2luY2x1ZGUvY2xhbmctdGlkeQotCQl2bW92ZSB1 c3IvYmluL2NsYW5nLWFwcGx5LXJlcGxhY2VtZW50cwotCQl2bW92ZSB1c3IvYmluL2NsYW5nLXF1 ZXJ5Ci0JCXZtb3ZlIHVzci9iaW4vY2xhbmctcmVuYW1lCi0JCXZtb3ZlIHVzci9iaW4vY2xhbmct dGlkeQotCQl2bW92ZSB1c3IvYmluL2RpYWd0b29sCi0JCXZtb3ZlIHVzci9iaW4vZmluZC1hbGwt c3ltYm9scwotCQl2bW92ZSB1c3IvYmluL2htYXB0b29sCi0JCXZtb3ZlIHVzci9iaW4vbW9kdWxh cml6ZQotCQl2bW92ZSB1c3IvYmluL3BwLXRyYWNlCi0JCXZtb3ZlIHVzci9iaW4vc2FuY292Ci0J CXZtb3ZlICJ1c3IvbGliL2xpYmNsYW5nQXBwbHlSZXBsYWNlbWVudHMqIgotCQl2bW92ZSAidXNy L2xpYi9saWJjbGFuZ1F1ZXJ5KiIKLQkJdm1vdmUgInVzci9saWIvbGliY2xhbmdUaWR5KiIKLQkJ dm1vdmUgInVzci9zaGFyZS9jbGFuZy8qdGlkeSoiCi0JCXZtb3ZlIHVzci9zaGFyZS9kb2MvY2xh bmctdG9vbHMKLQkJdm1vdmUgdXNyL3NoYXJlL21hbi9tYW4xL2V4dHJhY2xhbmd0b29scy4xCi0J CXZtb3ZlIHVzci9zaGFyZS9tYW4vbWFuMS9kaWFndG9vbC4xCi0JfQotfQotCi1jbGFuZ19wYWNr YWdlKCkgewotCWxpYjMyZGlzYWJsZWQ9eWVzCi0JZGVwZW5kcz0ibGlic3RkYysrLWRldmVsIGxp YmdjYy1kZXZlbCAgYmludXRpbHMgJHtYQlBTX1RBUkdFVF9MSUJDfS1kZXZlbAotCSBsaWJjbGFu Zy0ke3ZlcnNpb259XyR7cmV2aXNpb259IgotCXNob3J0X2Rlc2MrPSIgLSBDIGxhbmd1YWdlIGZh bWlseSBmcm9udGVuZCIKLQlob21lcGFnZT0iaHR0cHM6Ly9jbGFuZy5sbHZtLm9yZy8iCi0JcGtn X2luc3RhbGwoKSB7Ci0JCXZtb3ZlIHVzci9pbmNsdWRlL2NsYW5nCi0JCXZtb3ZlIHVzci9pbmNs dWRlL2NsYW5nLWMKLQkJdm1vdmUgInVzci9iaW4vKmNsYW5nKiIKLQkJdm1vdmUgdXNyL2Jpbi9j LWluZGV4LXRlc3QKLQkJdm1vdmUgdXNyL2xpYi9jbGFuZwotCQl2bW92ZSB1c3IvbGliL2NtYWtl L2NsYW5nCi0JCXZtb3ZlICJ1c3IvbGliL2xpYmNsYW5nKi5hIgotCQl2bW92ZSAidXNyL2xpYi9s aWJjbGFuZyouc28iCi0JCXZtb3ZlIHVzci9zaGFyZS9jbGFuZwotCQl2bW92ZSB1c3Ivc2hhcmUv ZG9jL2NsYW5nCi0JCXZtb3ZlIHVzci9zaGFyZS9tYW4vbWFuMS9jbGFuZy4xCi0JfQotfQotCi1s aWJjbGFuZ19wYWNrYWdlKCkgewotCXNob3J0X2Rlc2MrPSIgLSBDIGZyb250ZW5kIHJ1bnRpbWUg bGlicmFyeSIKLQlwa2dfaW5zdGFsbCgpIHsKLQkJdm1vdmUgInVzci9saWIvbGliY2xhbmcuc28u KiIKLQl9Ci19Ci0KLWxpYmNsYW5nLWNwcF9wYWNrYWdlKCkgewotCXNob3J0X2Rlc2MrPSIgLSBD IGZyb250ZW5kIHJ1bnRpbWUgbGlicmFyeSAoQysrIGludGVyZmFjZSkiCi0JcGtnX2luc3RhbGwo KSB7Ci0JCXZtb3ZlICJ1c3IvbGliL2xpYmNsYW5nLWNwcC5zby4qIgotCX0KLX0KLQotbGxkX3Bh Y2thZ2UoKSB7Ci0JbGliMzJkaXNhYmxlZD15ZXMKLQlzaG9ydF9kZXNjKz0iIC0gbGlua2VyIgot CWhvbWVwYWdlPSJodHRwczovL2xsZC5sbHZtLm9yZyIKLQlwa2dfaW5zdGFsbCgpIHsKLQkJdm1v dmUgdXNyL2Jpbi9sbGQqCi0JCXZtb3ZlIHVzci9iaW4vd2FzbS1sZAotCQl2bW92ZSB1c3IvYmlu L2xkLmxsZCoKLQkJdm1vdmUgdXNyL2Jpbi9sZDY0LmxsZCoKLQkJdm1vdmUgdXNyL3NoYXJlL2Rv Yy9sbGQKLQl9Ci19Ci0KLWxsZC1kZXZlbF9wYWNrYWdlKCkgewotCWxpYjMyZGlzYWJsZWQ9eWVz Ci0Jc2hvcnRfZGVzYys9IiAtIGxpbmtlciAtIGRldmVsb3BtZW50IGZpbGVzIgotCWhvbWVwYWdl PSJodHRwczovL2xsZC5sbHZtLm9yZyIKLQlkZXBlbmRzPSJsbGQ+PSR7dmVyc2lvbn1fJHtyZXZp c2lvbn0iCi0JcGtnX2luc3RhbGwoKSB7Ci0JCXZtb3ZlIHVzci9pbmNsdWRlL2xsZAotCQl2bW92 ZSB1c3IvbGliL2NtYWtlL2xsZAotCQl2bW92ZSAidXNyL2xpYi9saWJsbGQqYSIKLQl9Ci19Ci0K LWxsZGJfcGFja2FnZSgpIHsKLQlsaWIzMmRpc2FibGVkPXllcwotCWRlcGVuZHMrPSIgcHl0aG9u My1zaXgiCi0Jc2hvcnRfZGVzYys9IiAtIExMREIgZGVidWdnZXIiCi0JaG9tZXBhZ2U9Imh0dHBz Oi8vbGxkYi5sbHZtLm9yZy8iCi0JcGtnX2luc3RhbGwoKSB7Ci0JCXZtb3ZlIHVzci9iaW4vKmxs ZGIqCi0JCXZtb3ZlIHVzci9saWIvbGlibGxkYipzby4qCi0JCXZtb3ZlIC91c3IvbGliL3B5dGhv bioKLQl9Ci19Ci0KLWxsZGItZGV2ZWxfcGFja2FnZSgpIHsKLQlsaWIzMmRpc2FibGVkPXllcwot CWRlcGVuZHM9ImxsZGI+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCi0Jc2hvcnRfZGVzYys9IiAt IExMREIgZGVidWdnZXIgLSBkZXZlbG9wbWVudCBmaWxlcyIKLQlwa2dfaW5zdGFsbCgpIHsKLQkJ dm1vdmUgdXNyL2luY2x1ZGUvbGxkYgotCQl2bW92ZSAidXNyL2xpYi9saWJsbGRiKi5zbyIKLQl9 Ci19Ci0KLWxsdm0tbGlidW53aW5kX3BhY2thZ2UoKSB7Ci0Jc2hvcnRfZGVzYys9IiAtIGxpYnVu d2luZCIKLQlwa2dfaW5zdGFsbCgpIHsKLQkJdm1vdmUgInVzci9saWIvbGlidW53aW5kLnNvLioi Ci0JfQotfQotCi1sbHZtLWxpYnVud2luZC1kZXZlbF9wYWNrYWdlKCkgewotCXNob3J0X2Rlc2Mr PSIgLSBsaWJ1bndpbmQgLSBkZXZlbG9wbWVudCBmaWxlcyIKLQlkZXBlbmRzPSJsbHZtLWxpYnVu d2luZD49JHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKLQljb25mbGljdHM9ImxpYnVud2luZC1kZXZl bD49MCIKLQlwa2dfaW5zdGFsbCgpIHsKLQkJdm1vdmUgdXNyL2xpYi9saWJ1bndpbmQuc28KLQkJ dm1vdmUgdXNyL2xpYi9saWJ1bndpbmQuYQotCQl2bW92ZSAidXNyL2luY2x1ZGUvKnVud2luZCoi Ci0JCXZtb3ZlIHVzci9pbmNsdWRlL21hY2gtbwotCQl2bW92ZSB1c3Ivc2hhcmUvZG9jL2xpYnVu d2luZAotCX0KLX0KLQotbGliY3h4YWJpX3BhY2thZ2UoKSB7Ci0Jc2hvcnRfZGVzYys9IiAtIGxv dyBsZXZlbCBzdXBwb3J0IGZvciBsaWJjKysiCi0JcGtnX2luc3RhbGwoKSB7Ci0JCXZtb3ZlICJ1 c3IvbGliL2xpYmMrK2FiaS5zby4qIgotCX0KLX0KLQotbGliY3h4YWJpLWRldmVsX3BhY2thZ2Uo KSB7Ci0Jc2hvcnRfZGVzYys9IiAtIGxvdyBsZXZlbCBzdXBwb3J0IGZvciBsaWJjKysgLSBkZXZl bG9wbWVudCBmaWxlcyIKLQlkZXBlbmRzPSJsaWJjeHhhYmk+PSR7dmVyc2lvbn1fJHtyZXZpc2lv bn0iCi0JcGtnX2luc3RhbGwoKSB7Ci0JCXZtb3ZlIHVzci9saWIvbGliYysrYWJpLnNvCi0JCXZt b3ZlIHVzci9saWIvbGliYysrYWJpLmEKLQkJdm1vdmUgInVzci9pbmNsdWRlLypjeHhhYmkqIgot CX0KLX0KLQotbGliY3h4X3BhY2thZ2UoKSB7Ci0Jc2hvcnRfZGVzYys9IiAtIEMrKyBzdGFuZGFy ZCBsaWJyYXJ5IgotCXBrZ19pbnN0YWxsKCkgewotCQl2bW92ZSAidXNyL2xpYi9saWJjKysuc28u KiIKLQl9Ci19Ci0KLWxpYmN4eC1kZXZlbF9wYWNrYWdlKCkgewotCXNob3J0X2Rlc2MrPSIgLSBD Kysgc3RhbmRhcmQgbGlicmFyeSAtIGRldmVsb3BtZW50IGZpbGVzIgotCWRlcGVuZHM9ImxpYmN4 eD49JHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKLQlwa2dfaW5zdGFsbCgpIHsKLQkJdm1vdmUgdXNy L2xpYi9saWJjKysuc28KLQkJdm1vdmUgdXNyL2xpYi9saWJjKysuYQotCQl2bW92ZSB1c3IvbGli L2xpYmMrK2V4cGVyaW1lbnRhbC5hCi0JCXZtb3ZlIHVzci9pbmNsdWRlL2MrKwotCQl2bW92ZSB1 c3Ivc2hhcmUvZG9jL2xpYmN4eAotCX0KLX0KLQotbGlib21wX3BhY2thZ2UoKSB7Ci0Jc2hvcnRf ZGVzYys9IiAtIENsYW5nIE9wZW5NUCBzdXBwb3J0IGxpYnJhcnkiCi0JcGtnX2luc3RhbGwoKSB7 Ci0JCXZtb3ZlIHVzci9saWIvbGlib21wLnNvCi0JCXZtb3ZlICJ1c3IvbGliL2xpYm9tcHRhcmdl dC5ydGwuKi5zbyIKLQkJdm1vdmUgdXNyL2xpYi9saWJhcmNoZXIuc28KLQkJdm1vdmUgInVzci9s aWIvbGlib21wKi5zby4qIgotCX0KLX0KLQotbGlib21wLWRldmVsX3BhY2thZ2UoKSB7Ci0Jc2hv cnRfZGVzYys9IiAtIENsYW5nIE9wZW5NUCBzdXBwb3J0IGxpYnJhcnkgLSBkZXZlbG9wbWVudCBm aWxlcyIKLQlkZXBlbmRzPSJsaWJvbXA+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCi0JcGtnX2lu c3RhbGwoKSB7Ci0JCXZtb3ZlICJ1c3IvbGliL2xpYm9tcCouc28iCi0JCXZtb3ZlICJ1c3IvbGli L2xpYmFyY2hlcioiCi0JCXZtb3ZlICJ1c3IvaW5jbHVkZS9vbXAqLmgiCi0JCXZtb3ZlICJ1c3Iv bGliL2NsYW5nLyR7dmVyc2lvbn0vaW5jbHVkZS9vbXAqLmgiCi0JCXZtb3ZlIHVzci9zaGFyZS9t YW4vbWFuMS9sbHZtb3Blbm1wLjEKLQkJdm1vdmUgdXNyL3NoYXJlL2RvYy9vcGVubXAKLQl9CiB9 CiAKIGxpYmxsdm0xMl9wYWNrYWdlKCkgewoKRnJvbSA5YjI4NDc4ZmY5NGQ2N2MyYmYyNzNiYTdk NDA5NGQyMTM2YjI5NjJmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBwcmV6IDxwcmV6 QG5hdGlvbmFsLnNoaXRwb3N0aW5nLmFnZW5jeT4KRGF0ZTogV2VkLCA0IE1heSAyMDIyIDE0OjAw OjI4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwNC8yN10gTmV3IHBhY2thZ2VzOiBjbGFuZzEyLCBs aWJjbGFuZzEyLCBsaWJjbGFuZzEyLWNwcCwKIGxsZDEyLCBsbGQxMi1kZXZlbC4KCi0tLQogY29t bW9uL3NobGlicyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyICsKIHNyY3Br Z3MvY2xhbmcxMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMSArCiBzcmNwa2dz L2xpYmNsYW5nMTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjcGtncy9s aWJjbGFuZzEyLWNwcCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxICsKIHNyY3BrZ3MvbGxk MTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMSArCiBzcmNwa2dzL2xsZDEy LWRldmVsICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKwogLi4uY2xhbmctMDAxLWZp eC11bndpbmQtY2hhaW4taW5jbHVzaW9uLnBhdGNoIHwgIDQ0ICsrKysrKysKIC4uLi9wYXRjaGVz L2NsYW5nLTAwMi1hZGQtbXVzbC10cmlwbGVzLnBhdGNoICB8IDExMCArKysrKysrKysrKysrKysr KysKIC4uLi9jbGFuZy0wMDMtcHBjNjQtZHluYW1pYy1saW5rZXItcGF0aC5wYXRjaCB8ICAxMyAr KysKIC4uLi9wYXRjaGVzL2NsYW5nLTAwNC1wcGM2NC1tdXNsLWVsZnYyLnBhdGNoICB8ICA0OCAr KysrKysrKwogc3JjcGtncy9sbHZtMTIvdGVtcGxhdGUgICAgICAgICAgICAgICAgICAgICAgIHwg IDcxICsrKysrKysrKysrCiAxMSBmaWxlcyBjaGFuZ2VkLCAyOTMgaW5zZXJ0aW9ucygrKQogY3Jl YXRlIG1vZGUgMTIwMDAwIHNyY3BrZ3MvY2xhbmcxMgogY3JlYXRlIG1vZGUgMTIwMDAwIHNyY3Br Z3MvbGliY2xhbmcxMgogY3JlYXRlIG1vZGUgMTIwMDAwIHNyY3BrZ3MvbGliY2xhbmcxMi1jcHAK IGNyZWF0ZSBtb2RlIDEyMDAwMCBzcmNwa2dzL2xsZDEyCiBjcmVhdGUgbW9kZSAxMjAwMDAgc3Jj cGtncy9sbGQxMi1kZXZlbAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGx2bTEyL3BhdGNo ZXMvY2xhbmctMDAxLWZpeC11bndpbmQtY2hhaW4taW5jbHVzaW9uLnBhdGNoCiBjcmVhdGUgbW9k ZSAxMDA2NDQgc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9jbGFuZy0wMDItYWRkLW11c2wtdHJpcGxl cy5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvY2xhbmct MDAzLXBwYzY0LWR5bmFtaWMtbGlua2VyLXBhdGgucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBz cmNwa2dzL2xsdm0xMi9wYXRjaGVzL2NsYW5nLTAwNC1wcGM2NC1tdXNsLWVsZnYyLnBhdGNoCgpk aWZmIC0tZ2l0IGEvY29tbW9uL3NobGlicyBiL2NvbW1vbi9zaGxpYnMKaW5kZXggMGNhNWQ3ZDVk NmY5Li4zNmJhYjFkM2Q5OTkgMTAwNjQ0Ci0tLSBhL2NvbW1vbi9zaGxpYnMKKysrIGIvY29tbW9u L3NobGlicwpAQCAtOTczLDYgKzk3Myw4IEBAIGxpYnVjaGFyZGV0LnNvLjAgdWNoYXJkZXQtMC4w LjZfMQogbGliZ3Rrc291cmNldmlld21tLTMuMC5zby4wIGd0a3NvdXJjZXZpZXdtbS0zLjIuMF8x CiBsaWJ5YWpsLnNvLjIgeWFqbC0yLjAuMV8xCiBsaWJjb25mdXNlLnNvLjIgY29uZnVzZS0zLjIu MV8xCitsaWJjbGFuZy5zby4xMiBsaWJjbGFuZzEyLTEyLjAuMF8xCitsaWJjbGFuZy1jcHAuc28u MTIgbGliY2xhbmcxMi1jcHAtMTIuMC4wXzEKIGxpYmxsZGIuc28uMTQgbGxkYi0xNC4wLjNfMQog bGliY2xhbmcuc28uMTQgbGliY2xhbmctMTQuMC4zXzEKIGxpYmNsYW5nLWNwcC5zby4xNCBsaWJj bGFuZy1jcHAtMTQuMC4zXzEKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY2xhbmcxMiBiL3NyY3BrZ3Mv Y2xhbmcxMgpuZXcgZmlsZSBtb2RlIDEyMDAwMAppbmRleCAwMDAwMDAwMDAwMDAuLmNkNjBmZDdh OTgxYgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvY2xhbmcxMgpAQCAtMCwwICsxIEBACits bHZtMTIKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xp YmNsYW5nMTIgYi9zcmNwa2dzL2xpYmNsYW5nMTIKbmV3IGZpbGUgbW9kZSAxMjAwMDAKaW5kZXgg MDAwMDAwMDAwMDAwLi5jZDYwZmQ3YTk4MWIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xp YmNsYW5nMTIKQEAgLTAsMCArMSBAQAorbGx2bTEyClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls ZQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9saWJjbGFuZzEyLWNwcCBiL3NyY3BrZ3MvbGliY2xhbmcx Mi1jcHAKbmV3IGZpbGUgbW9kZSAxMjAwMDAKaW5kZXggMDAwMDAwMDAwMDAwLi5jZDYwZmQ3YTk4 MWIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xpYmNsYW5nMTItY3BwCkBAIC0wLDAgKzEg QEAKK2xsdm0xMgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyY3Br Z3MvbGxkMTIgYi9zcmNwa2dzL2xsZDEyCm5ldyBmaWxlIG1vZGUgMTIwMDAwCmluZGV4IDAwMDAw MDAwMDAwMC4uY2Q2MGZkN2E5ODFiCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9sbGQxMgpA QCAtMCwwICsxIEBACitsbHZtMTIKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1n aXQgYS9zcmNwa2dzL2xsZDEyLWRldmVsIGIvc3JjcGtncy9sbGQxMi1kZXZlbApuZXcgZmlsZSBt b2RlIDEyMDAwMAppbmRleCAwMDAwMDAwMDAwMDAuLmNkNjBmZDdhOTgxYgotLS0gL2Rldi9udWxs CisrKyBiL3NyY3BrZ3MvbGxkMTItZGV2ZWwKQEAgLTAsMCArMSBAQAorbGx2bTEyClwgTm8gbmV3 bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9j bGFuZy0wMDEtZml4LXVud2luZC1jaGFpbi1pbmNsdXNpb24ucGF0Y2ggYi9zcmNwa2dzL2xsdm0x Mi9wYXRjaGVzL2NsYW5nLTAwMS1maXgtdW53aW5kLWNoYWluLWluY2x1c2lvbi5wYXRjaApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmU0ZWFhNzc4M2U3YQotLS0gL2Rl di9udWxsCisrKyBiL3NyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvY2xhbmctMDAxLWZpeC11bndpbmQt Y2hhaW4taW5jbHVzaW9uLnBhdGNoCkBAIC0wLDAgKzEsNDQgQEAKK0Zyb20gMzUyOTc0MTY5ZjBk MmI1ZGEzZDUzMjFmNTg4ZjVlM2I1OTQxMzMwZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zy b206IEFuZHJlYSBCcmFuY2FsZW9uaSA8bWl3YXhlQGdtYWlsLmNvbT4KK0RhdGU6IFR1ZSwgOCBT ZXAgMjAxNSAyMjoxNDo1NyArMDIwMAorU3ViamVjdDogW1BBVENIIDIvN10gZml4IHVud2luZCBj aGFpbiBpbmNsdXNpb24KKworLS0tCisgbGliL0hlYWRlcnMvdW53aW5kLmggfCA5ICsrKysrLS0t LQorIDEgZmlsZSBjaGFuZ2VkLCA1IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCisKK2Rp ZmYgLS1naXQgYS9saWIvSGVhZGVycy91bndpbmQuaCBiL2xpYi9IZWFkZXJzL3Vud2luZC5oCitp bmRleCAzMDNkNzkyLi40NGUxMGNjIDEwMDY0NAorLS0tIGEvY2xhbmcvbGliL0hlYWRlcnMvdW53 aW5kLmgKKysrKyBiL2NsYW5nL2xpYi9IZWFkZXJzL3Vud2luZC5oCitAQCAtOSw5ICs5LDYgQEAK KyAKKyAvKiBTZWUgIkRhdGEgRGVmaW5pdGlvbnMgZm9yIGxpYmdjY19zIiBpbiB0aGUgTGludXgg U3RhbmRhcmQgQmFzZS4qLworIAorLSNpZm5kZWYgX19DTEFOR19VTldJTkRfSAorLSNkZWZpbmUg X19DTEFOR19VTldJTkRfSAorLQorICNpZiBkZWZpbmVkKF9fQVBQTEVfXykgJiYgX19oYXNfaW5j bHVkZV9uZXh0KDx1bndpbmQuaD4pCisgLyogRGFyd2luIChmcm9tIDExLnggb24pIHByb3ZpZGUg YW4gdW53aW5kLmguIElmIHRoYXQncyBhdmFpbGFibGUsCisgICogdXNlIGl0LiBsaWJ1bndpbmQg d3JhcHMgc29tZSBvZiBpdHMgZGVmaW5pdGlvbnMgaW4gI2lmZGVmIF9HTlVfU09VUkNFLAorQEAg LTM5LDYgKzM2LDkgQEAKKyAjIGVuZGlmCisgI2Vsc2UKKyAKKysjaWZuZGVmIF9fQ0xBTkdfVU5X SU5EX0gKKysjZGVmaW5lIF9fQ0xBTkdfVU5XSU5EX0gKKysKKyAjaW5jbHVkZSA8c3RkaW50Lmg+ CisgCisgI2lmZGVmIF9fY3BsdXNwbHVzCitAQCAtMzIyLDYgKzMyMiw3IEBAIF9VbndpbmRfUHRy IF9VbndpbmRfR2V0VGV4dFJlbEJhc2Uoc3RydWN0IF9VbndpbmRfQ29udGV4dCAqKTsKKyB9Cisg I2VuZGlmCisgCisrI2VuZGlmIC8qIF9fQ0xBTkdfVU5XSU5EX0ggKi8KKysKKyAjZW5kaWYKKyAK Ky0jZW5kaWYgLyogX19DTEFOR19VTldJTkRfSCAqLworLS0gCisyLjUuMQpkaWZmIC0tZ2l0IGEv c3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9jbGFuZy0wMDItYWRkLW11c2wtdHJpcGxlcy5wYXRjaCBi L3NyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvY2xhbmctMDAyLWFkZC1tdXNsLXRyaXBsZXMucGF0Y2gK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4yNTY4OGQ0MGRiYzIKLS0t IC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2NsYW5nLTAwMi1hZGQtbXVz bC10cmlwbGVzLnBhdGNoCkBAIC0wLDAgKzEsMTEwIEBACistLS0gYS9jbGFuZy9saWIvRHJpdmVy L1Rvb2xDaGFpbnMvR251LmNwcAorKysrIGIvY2xhbmcvbGliL0RyaXZlci9Ub29sQ2hhaW5zL0du dS5jcHAKK0BAIC0yMDg2LDcgKzIwODYsOCBAQCB2b2lkIEdlbmVyaWNfR0NDOjpHQ0NJbnN0YWxs YXRpb25EZXRlY3Rvcjo6QWRkRGVmYXVsdEdDQ1ByZWZpeGVzKAorICAgc3RhdGljIGNvbnN0IGNo YXIgKmNvbnN0IEFSTUhGVHJpcGxlc1tdID0geyJhcm0tbGludXgtZ251ZWFiaWhmIiwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYXJtdjdobC1yZWRoYXQt bGludXgtZ251ZWFiaSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgImFybXY2aGwtc3VzZS1saW51eC1nbnVlYWJpIiwKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAiYXJtdjdobC1zdXNlLWxpbnV4LWdudWVhYmkifTsK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYXJtdjdobC1z dXNlLWxpbnV4LWdudWVhYmkiLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICJhcm12N2wtbGludXgtZ251ZWFiaWhmIn07CisgICBzdGF0aWMgY29uc3QgY2hh ciAqY29uc3QgQVJNZWJMaWJEaXJzW10gPSB7Ii9saWIifTsKKyAgIHN0YXRpYyBjb25zdCBjaGFy ICpjb25zdCBBUk1lYlRyaXBsZXNbXSA9IHsiYXJtZWItbGludXgtZ251ZWFiaSIsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImFybWViLWxpbnV4LWFuZHJv aWRlYWJpIn07CitAQCAtMjE1Myw4ICsyMTU0LDcgQEAgdm9pZCBHZW5lcmljX0dDQzo6R0NDSW5z dGFsbGF0aW9uRGV0ZWN0b3I6OkFkZERlZmF1bHRHQ0NQcmVmaXhlcygKKyAgICAgICAicG93ZXJw YzY0LXN1c2UtbGludXgiLCAicG93ZXJwYy1tb250YXZpc3RhLWxpbnV4c3BlIn07CisgICBzdGF0 aWMgY29uc3QgY2hhciAqY29uc3QgUFBDTEVMaWJEaXJzW10gPSB7Ii9saWIzMiIsICIvbGliIn07 CisgICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgUFBDTEVUcmlwbGVzW10gPSB7InBvd2VycGNs ZS1saW51eC1nbnUiLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICJwb3dlcnBjbGUtdW5rbm93bi1saW51eC1nbnUiLAorLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICJwb3dlcnBjbGUtbGludXgtbXVzbCJ9OworKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwb3dlcnBjbGUtdW5rbm93 bi1saW51eC1nbnUifTsKKyAKKyAgIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBQUEM2NExpYkRp cnNbXSA9IHsiL2xpYjY0IiwgIi9saWIifTsKKyAgIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBQ UEM2NFRyaXBsZXNbXSA9IHsKK0BAIC0yMjM1LDYgKzIyMzUsODcgQEAgdm9pZCBHZW5lcmljX0dD Qzo6R0NDSW5zdGFsbGF0aW9uRGV0ZWN0b3I6OkFkZERlZmF1bHRHQ0NQcmVmaXhlcygKKyAgICAg cmV0dXJuOworICAgfQorIAorKyAgaWYgKFRhcmdldFRyaXBsZS5pc011c2woKSkgeworKyAgICBz dGF0aWMgY29uc3QgY2hhciAqY29uc3QgQUFyY2g2NE11c2xUcmlwbGVzW10gPSB7ImFhcmNoNjQt bGludXgtbXVzbCJ9OworKyAgICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgQVJNSEZNdXNsVHJp cGxlc1tdID0geworKyAgICAgICAgImFybS1saW51eC1tdXNsZWFiaWhmIiwgImFybXY3bC1saW51 eC1tdXNsZWFiaWhmIgorKyAgICB9OworKyAgICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgQVJN TXVzbFRyaXBsZXNbXSA9IHsiYXJtLWxpbnV4LW11c2xlYWJpIn07CisrICAgIHN0YXRpYyBjb25z dCBjaGFyICpjb25zdCBYODZfNjRNdXNsVHJpcGxlc1tdID0geyJ4ODZfNjQtbGludXgtbXVzbCJ9 OworKyAgICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgWDg2TXVzbFRyaXBsZXNbXSA9IHsiaTY4 Ni1saW51eC1tdXNsIn07CisrICAgIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBNSVBTTXVzbFRy aXBsZXNbXSA9IHsKKysgICAgICAgICJtaXBzLWxpbnV4LW11c2wiLCAibWlwc2VsLWxpbnV4LW11 c2wiLAorKyAgICAgICAgIm1pcHNlbC1saW51eC1tdXNsaGYiLCAibWlwcy1saW51eC1tdXNsaGYi CisrICAgIH07CisrICAgIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBQUENNdXNsVHJpcGxlc1td ID0geyJwb3dlcnBjLWxpbnV4LW11c2wifTsKKysgICAgc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0 IFBQQ0xFTXVzbFRyaXBsZXNbXSA9IHsicG93ZXJwY2xlLWxpbnV4LW11c2wifTsKKysgICAgc3Rh dGljIGNvbnN0IGNoYXIgKmNvbnN0IFBQQzY0TXVzbFRyaXBsZXNbXSA9IHsicG93ZXJwYzY0LWxp bnV4LW11c2wifTsKKysgICAgc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IFBQQzY0TEVNdXNsVHJp cGxlc1tdID0geyJwb3dlcnBjNjRsZS1saW51eC1tdXNsIn07CisrCisrICAgIHN3aXRjaCAoVGFy Z2V0VHJpcGxlLmdldEFyY2goKSkgeworKyAgICBjYXNlIGxsdm06OlRyaXBsZTo6YWFyY2g2NDoK KysgICAgICBMaWJEaXJzLmFwcGVuZChiZWdpbihBQXJjaDY0TGliRGlycyksIGVuZChBQXJjaDY0 TGliRGlycykpOworKyAgICAgIFRyaXBsZUFsaWFzZXMuYXBwZW5kKGJlZ2luKEFBcmNoNjRNdXNs VHJpcGxlcyksIGVuZChBQXJjaDY0TXVzbFRyaXBsZXMpKTsKKysgICAgICBCaWFyY2hMaWJEaXJz LmFwcGVuZChiZWdpbihBQXJjaDY0TGliRGlycyksIGVuZChBQXJjaDY0TGliRGlycykpOworKyAg ICAgIEJpYXJjaFRyaXBsZUFsaWFzZXMuYXBwZW5kKGJlZ2luKEFBcmNoNjRNdXNsVHJpcGxlcyks IGVuZChBQXJjaDY0TXVzbFRyaXBsZXMpKTsKKysgICAgICBicmVhazsKKysgICAgY2FzZSBsbHZt OjpUcmlwbGU6OmFybToKKysgICAgICBMaWJEaXJzLmFwcGVuZChiZWdpbihBUk1MaWJEaXJzKSwg ZW5kKEFSTUxpYkRpcnMpKTsKKysgICAgICBpZiAoVGFyZ2V0VHJpcGxlLmdldEVudmlyb25tZW50 KCkgPT0gbGx2bTo6VHJpcGxlOjpNdXNsRUFCSUhGKSB7CisrICAgICAgICBUcmlwbGVBbGlhc2Vz LmFwcGVuZChiZWdpbihBUk1IRk11c2xUcmlwbGVzKSwgZW5kKEFSTUhGTXVzbFRyaXBsZXMpKTsK KysgICAgICB9IGVsc2UgeworKyAgICAgICAgVHJpcGxlQWxpYXNlcy5hcHBlbmQoYmVnaW4oQVJN TXVzbFRyaXBsZXMpLCBlbmQoQVJNTXVzbFRyaXBsZXMpKTsKKysgICAgICB9CisrICAgICAgYnJl YWs7CisrICAgIGNhc2UgbGx2bTo6VHJpcGxlOjp4ODZfNjQ6CisrICAgICAgTGliRGlycy5hcHBl bmQoYmVnaW4oWDg2XzY0TGliRGlycyksIGVuZChYODZfNjRMaWJEaXJzKSk7CisrICAgICAgVHJp cGxlQWxpYXNlcy5hcHBlbmQoYmVnaW4oWDg2XzY0TXVzbFRyaXBsZXMpLCBlbmQoWDg2XzY0TXVz bFRyaXBsZXMpKTsKKysgICAgICBCaWFyY2hMaWJEaXJzLmFwcGVuZChiZWdpbihYODZMaWJEaXJz KSwgZW5kKFg4NkxpYkRpcnMpKTsKKysgICAgICBCaWFyY2hUcmlwbGVBbGlhc2VzLmFwcGVuZChi ZWdpbihYODZNdXNsVHJpcGxlcyksIGVuZChYODZNdXNsVHJpcGxlcykpOworKyAgICAgIGJyZWFr OworKyAgICBjYXNlIGxsdm06OlRyaXBsZTo6eDg2OgorKyAgICAgIExpYkRpcnMuYXBwZW5kKGJl Z2luKFg4NkxpYkRpcnMpLCBlbmQoWDg2TGliRGlycykpOworKyAgICAgIFRyaXBsZUFsaWFzZXMu YXBwZW5kKGJlZ2luKFg4Nk11c2xUcmlwbGVzKSwgZW5kKFg4Nk11c2xUcmlwbGVzKSk7CisrICAg ICAgQmlhcmNoTGliRGlycy5hcHBlbmQoYmVnaW4oWDg2XzY0TGliRGlycyksIGVuZChYODZfNjRM aWJEaXJzKSk7CisrICAgICAgQmlhcmNoVHJpcGxlQWxpYXNlcy5hcHBlbmQoYmVnaW4oWDg2XzY0 TXVzbFRyaXBsZXMpLCBlbmQoWDg2XzY0TXVzbFRyaXBsZXMpKTsKKysgICAgICBicmVhazsKKysg ICAgY2FzZSBsbHZtOjpUcmlwbGU6Om1pcHM6CisrICAgICAgTGliRGlycy5hcHBlbmQoYmVnaW4o TUlQU0xpYkRpcnMpLCBlbmQoTUlQU0xpYkRpcnMpKTsKKysgICAgICBUcmlwbGVBbGlhc2VzLmFw cGVuZChiZWdpbihNSVBTTXVzbFRyaXBsZXMpLCBlbmQoTUlQU011c2xUcmlwbGVzKSk7CisrICAg ICAgYnJlYWs7CisrICAgIGNhc2UgbGx2bTo6VHJpcGxlOjpwcGM6CisrICAgICAgTGliRGlycy5h cHBlbmQoYmVnaW4oUFBDTGliRGlycyksIGVuZChQUENMaWJEaXJzKSk7CisrICAgICAgVHJpcGxl QWxpYXNlcy5hcHBlbmQoYmVnaW4oUFBDTXVzbFRyaXBsZXMpLCBlbmQoUFBDTXVzbFRyaXBsZXMp KTsKKysgICAgICBCaWFyY2hMaWJEaXJzLmFwcGVuZChiZWdpbihQUEM2NExpYkRpcnMpLCBlbmQo UFBDNjRMaWJEaXJzKSk7CisrICAgICAgQmlhcmNoVHJpcGxlQWxpYXNlcy5hcHBlbmQoYmVnaW4o UFBDNjRNdXNsVHJpcGxlcyksIGVuZChQUEM2NE11c2xUcmlwbGVzKSk7CisrICAgICAgYnJlYWs7 CisrICAgIGNhc2UgbGx2bTo6VHJpcGxlOjpwcGNsZToKKysgICAgICBMaWJEaXJzLmFwcGVuZChi ZWdpbihQUENMRUxpYkRpcnMpLCBlbmQoUFBDTEVMaWJEaXJzKSk7CisrICAgICAgVHJpcGxlQWxp YXNlcy5hcHBlbmQoYmVnaW4oUFBDTEVNdXNsVHJpcGxlcyksIGVuZChQUENMRU11c2xUcmlwbGVz KSk7CisrICAgICAgQmlhcmNoTGliRGlycy5hcHBlbmQoYmVnaW4oUFBDNjRMRUxpYkRpcnMpLCBl bmQoUFBDNjRMRUxpYkRpcnMpKTsKKysgICAgICBCaWFyY2hUcmlwbGVBbGlhc2VzLmFwcGVuZChi ZWdpbihQUEM2NExFTXVzbFRyaXBsZXMpLCBlbmQoUFBDNjRMRU11c2xUcmlwbGVzKSk7CisrICAg ICAgYnJlYWs7CisrICAgIGNhc2UgbGx2bTo6VHJpcGxlOjpwcGM2NDoKKysgICAgICBMaWJEaXJz LmFwcGVuZChiZWdpbihQUEM2NExpYkRpcnMpLCBlbmQoUFBDNjRMaWJEaXJzKSk7CisrICAgICAg VHJpcGxlQWxpYXNlcy5hcHBlbmQoYmVnaW4oUFBDNjRNdXNsVHJpcGxlcyksIGVuZChQUEM2NE11 c2xUcmlwbGVzKSk7CisrICAgICAgQmlhcmNoTGliRGlycy5hcHBlbmQoYmVnaW4oUFBDTGliRGly cyksIGVuZChQUENMaWJEaXJzKSk7CisrICAgICAgQmlhcmNoVHJpcGxlQWxpYXNlcy5hcHBlbmQo YmVnaW4oUFBDTXVzbFRyaXBsZXMpLCBlbmQoUFBDTXVzbFRyaXBsZXMpKTsKKysgICAgICBicmVh azsKKysgICAgY2FzZSBsbHZtOjpUcmlwbGU6OnBwYzY0bGU6CisrICAgICAgTGliRGlycy5hcHBl bmQoYmVnaW4oUFBDNjRMRUxpYkRpcnMpLCBlbmQoUFBDNjRMRUxpYkRpcnMpKTsKKysgICAgICBU cmlwbGVBbGlhc2VzLmFwcGVuZChiZWdpbihQUEM2NExFTXVzbFRyaXBsZXMpLCBlbmQoUFBDNjRM RU11c2xUcmlwbGVzKSk7CisrICAgICAgQmlhcmNoTGliRGlycy5hcHBlbmQoYmVnaW4oUFBDTEVM aWJEaXJzKSwgZW5kKFBQQ0xFTGliRGlycykpOworKyAgICAgIEJpYXJjaFRyaXBsZUFsaWFzZXMu YXBwZW5kKGJlZ2luKFBQQ0xFTXVzbFRyaXBsZXMpLCBlbmQoUFBDTEVNdXNsVHJpcGxlcykpOwor KyAgICAgIGJyZWFrOworKyAgICBkZWZhdWx0OgorKyAgICAgIGJyZWFrOworKyAgICB9CisrICAg IFRyaXBsZUFsaWFzZXMucHVzaF9iYWNrKFRhcmdldFRyaXBsZS5zdHIoKSk7CisrICAgIGlmIChU YXJnZXRUcmlwbGUuc3RyKCkgIT0gQmlhcmNoVHJpcGxlLnN0cigpKQorKyAgICAgIEJpYXJjaFRy aXBsZUFsaWFzZXMucHVzaF9iYWNrKEJpYXJjaFRyaXBsZS5zdHIoKSk7CisrICAgIHJldHVybjsK KysgIH0KKysKKyAgIC8vIEFuZHJvaWQgdGFyZ2V0cyBzaG91bGQgbm90IHVzZSBHTlUvTGludXgg dG9vbHMgb3IgbGlicmFyaWVzLgorICAgaWYgKFRhcmdldFRyaXBsZS5pc0FuZHJvaWQoKSkgewor ICAgICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgQUFyY2g2NEFuZHJvaWRUcmlwbGVzW10gPSB7 CmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2NsYW5nLTAwMy1wcGM2NC1keW5h bWljLWxpbmtlci1wYXRoLnBhdGNoIGIvc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9jbGFuZy0wMDMt cHBjNjQtZHluYW1pYy1saW5rZXItcGF0aC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwMDAwMDAuLjRhZDY0MTJkMWU2YwotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mv bGx2bTEyL3BhdGNoZXMvY2xhbmctMDAzLXBwYzY0LWR5bmFtaWMtbGlua2VyLXBhdGgucGF0Y2gK QEAgLTAsMCArMSwxMyBAQAorLS0tIGEvY2xhbmcvbGliL0RyaXZlci9Ub29sQ2hhaW5zL0xpbnV4 LmNwcAorKysrIGIvY2xhbmcvbGliL0RyaXZlci9Ub29sQ2hhaW5zL0xpbnV4LmNwcAorQEAgLTUw NCwxMCArNTA0LDYgQEAgc3RkOjpzdHJpbmcgTGludXg6OmdldER5bmFtaWNMaW5rZXIoY29uc3Qg QXJnTGlzdCAmQXJncykgY29uc3QgeworICAgICBMb2FkZXIgPSAibGQuc28uMSI7CisgICAgIGJy ZWFrOworICAgY2FzZSBsbHZtOjpUcmlwbGU6OnBwYzY0OgorLSAgICBMaWJEaXIgPSAibGliNjQi OworLSAgICBMb2FkZXIgPQorLSAgICAgICAgKHRvb2xzOjpwcGM6Omhhc1BQQ0FiaUFyZyhBcmdz LCAiZWxmdjIiKSkgPyAibGQ2NC5zby4yIiA6ICJsZDY0LnNvLjEiOworLSAgICBicmVhazsKKyAg IGNhc2UgbGx2bTo6VHJpcGxlOjpwcGM2NGxlOgorICAgICBMaWJEaXIgPSAibGliNjQiOworICAg ICBMb2FkZXIgPQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9jbGFuZy0wMDQt cHBjNjQtbXVzbC1lbGZ2Mi5wYXRjaCBiL3NyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvY2xhbmctMDA0 LXBwYzY0LW11c2wtZWxmdjIucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAwMDAwLi4yMWZjODAwM2M1ZjEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xsdm0xMi9w YXRjaGVzL2NsYW5nLTAwNC1wcGM2NC1tdXNsLWVsZnYyLnBhdGNoCkBAIC0wLDAgKzEsNDggQEAK Ky0tLSBhL2NsYW5nL2xpYi9CYXNpYy9UYXJnZXRzL1BQQy5oCisrKysgYi9jbGFuZy9saWIvQmFz aWMvVGFyZ2V0cy9QUEMuaAorQEAgLTQxNSwxMSArNDE1LDEwIEBAIHB1YmxpYzoKKyAgICAgICBM b25nRG91YmxlRm9ybWF0ID0gJmxsdm06OkFQRmxvYXQ6OklFRUVkb3VibGUoKTsKKyAgICAgfSBl bHNlIGlmICgoVHJpcGxlLmdldEFyY2goKSA9PSBsbHZtOjpUcmlwbGU6OnBwYzY0bGUpKSB7Cisg ICAgICAgRGF0YUxheW91dCA9ICJlLW06ZS1pNjQ6NjQtbjMyOjY0IjsKKy0gICAgICBBQkkgPSAi ZWxmdjIiOworICAgICB9IGVsc2UgeworICAgICAgIERhdGFMYXlvdXQgPSAiRS1tOmUtaTY0OjY0 LW4zMjo2NCI7CistICAgICAgQUJJID0gImVsZnYxIjsKKyAgICAgfQorKyAgICBBQkkgPSAiZWxm djIiOworIAorICAgICBpZiAoVHJpcGxlLmlzT1NGcmVlQlNEKCkgfHwgVHJpcGxlLmlzT1NPcGVu QlNEKCkgfHwgVHJpcGxlLmlzTXVzbCgpKSB7CisgICAgICAgTG9uZ0RvdWJsZVdpZHRoID0gTG9u Z0RvdWJsZUFsaWduID0gNjQ7CistLS0gYS9jbGFuZy9saWIvQ29kZUdlbi9UYXJnZXRJbmZvLmNw cAorKysrIGIvY2xhbmcvbGliL0NvZGVHZW4vVGFyZ2V0SW5mby5jcHAKK0BAIC0xMDkyNyw5ICsx MDkyNyw5IEBAIGNvbnN0IFRhcmdldENvZGVHZW5JbmZvICZDb2RlR2VuTW9kdWxlOjpnZXRUYXJn ZXRDb2RlR2VuSW5mbygpIHsKKyAgICAgICByZXR1cm4gU2V0Q0dJbmZvKG5ldyBBSVhUYXJnZXRD b2RlR2VuSW5mbyhUeXBlcywgLypJczY0Qml0Ki8gdHJ1ZSkpOworIAorICAgICBpZiAoVHJpcGxl LmlzT1NCaW5Gb3JtYXRFTEYoKSkgeworLSAgICAgIFBQQzY0X1NWUjRfQUJJSW5mbzo6QUJJS2lu ZCBLaW5kID0gUFBDNjRfU1ZSNF9BQklJbmZvOjpFTEZ2MTsKKy0gICAgICBpZiAoZ2V0VGFyZ2V0 KCkuZ2V0QUJJKCkgPT0gImVsZnYyIikKKy0gICAgICAgIEtpbmQgPSBQUEM2NF9TVlI0X0FCSUlu Zm86OkVMRnYyOworKyAgICAgIFBQQzY0X1NWUjRfQUJJSW5mbzo6QUJJS2luZCBLaW5kID0gUFBD NjRfU1ZSNF9BQklJbmZvOjpFTEZ2MjsKKysgICAgICBpZiAoZ2V0VGFyZ2V0KCkuZ2V0QUJJKCkg PT0gImVsZnYxIikKKysgICAgICAgIEtpbmQgPSBQUEM2NF9TVlI0X0FCSUluZm86OkVMRnYxOwor ICAgICAgIGJvb2wgSXNTb2Z0RmxvYXQgPSBDb2RlR2VuT3B0cy5GbG9hdEFCSSA9PSAic29mdCI7 CisgCisgICAgICAgcmV0dXJuIFNldENHSW5mbygKKy0tLSBhL2NsYW5nL2xpYi9Ecml2ZXIvVG9v bENoYWlucy9DbGFuZy5jcHAKKysrKyBiL2NsYW5nL2xpYi9Ecml2ZXIvVG9vbENoYWlucy9DbGFu Zy5jcHAKK0BAIC0xOTIwLDE0ICsxOTIwLDcgQEAgdm9pZCBDbGFuZzo6QWRkUFBDVGFyZ2V0QXJn cyhjb25zdCBBcmdMaXN0ICZBcmdzLAorICAgY29uc3QgbGx2bTo6VHJpcGxlICZUID0gZ2V0VG9v bENoYWluKCkuZ2V0VHJpcGxlKCk7CisgICBpZiAoVC5pc09TQmluRm9ybWF0RUxGKCkpIHsKKyAg ICAgc3dpdGNoIChnZXRUb29sQ2hhaW4oKS5nZXRBcmNoKCkpIHsKKy0gICAgY2FzZSBsbHZtOjpU cmlwbGU6OnBwYzY0OiB7CistICAgICAgaWYgKChULmlzT1NGcmVlQlNEKCkgJiYgVC5nZXRPU01h am9yVmVyc2lvbigpID49IDEzKSB8fAorLSAgICAgICAgICBULmlzT1NPcGVuQlNEKCkgfHwgVC5p c011c2woKSkKKy0gICAgICAgIEFCSU5hbWUgPSAiZWxmdjIiOworLSAgICAgIGVsc2UKKy0gICAg ICAgIEFCSU5hbWUgPSAiZWxmdjEiOworLSAgICAgIGJyZWFrOworLSAgICB9CisrICAgIGNhc2Ug bGx2bTo6VHJpcGxlOjpwcGM2NDoKKyAgICAgY2FzZSBsbHZtOjpUcmlwbGU6OnBwYzY0bGU6Cisg ICAgICAgQUJJTmFtZSA9ICJlbGZ2MiI7CisgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9zcmNw a2dzL2xsdm0xMi90ZW1wbGF0ZSBiL3NyY3BrZ3MvbGx2bTEyL3RlbXBsYXRlCmluZGV4IDdiMzYx YmJiZjViYy4uMjc0YjU3MTgzNjU0IDEwMDY0NAotLS0gYS9zcmNwa2dzL2xsdm0xMi90ZW1wbGF0 ZQorKysgYi9zcmNwa2dzL2xsdm0xMi90ZW1wbGF0ZQpAQCAtNDMsNiArNDMsMTIgQEAgY2FzZSAi JFhCUFNfVEFSR0VUX01BQ0hJTkUiIGluCiAJcHBjKikgY29uZmlndXJlX2FyZ3MrPSIgLURDTEFO R19FTkFCTEVfQ0xBTkdEPU9GRiIgOzsKIGVzYWMKIAorX2VuYWJsZWRfcHJvamVjdHM9ImNsYW5n O2xsZCIKKworc3VicGFja2FnZXMrPSIgY2xhbmcxMiBsaWJjbGFuZzEyIGxpYmNsYW5nMTItY3Bw IGxpYmxsdm0xMiBsbGQxMiBsbGQxMi1kZXZlbCIKKworY29uZmlndXJlX2FyZ3MrPSIgLURMTFZN X0VOQUJMRV9QUk9KRUNUUz0ke19lbmFibGVkX3Byb2plY3RzfSIKKwogcG9zdF9wYXRjaCgpIHsK IAkjIHVwZGF0ZSBjb25maWcuZ3Vlc3MgZm9yIGJldHRlciBwbGF0Zm9ybSBkZXRlY3Rpb24KIAlj cCAkWEJQU19DT01NT05ESVIvZW52aXJvbm1lbnQvY29uZmlndXJlL2F1dG9tYWtlL2NvbmZpZy5n dWVzcyBcCkBAIC03Myw4ICs3OSwxMCBAQCBwcmVfY29uZmlndXJlKCkgewogCQkJY21ha2UgLi4v Li4gLURDTUFLRV9CVUlMRF9UWVBFPVJlbGVhc2UgXAogCQkJLURMTFZNX0VOQUJMRV9QUk9KRUNU Uz0ke19lbmFibGVkX3Byb2plY3RzfQogCQltYWtlICR7bWFrZWpvYnN9IC1DIHV0aWxzL1RhYmxl R2VuCisJCW1ha2UgJHttYWtlam9ic30gLUMgdG9vbHMvY2xhbmcvdXRpbHMvVGFibGVHZW4KIAkJ WyAiJF9sbGRiX2VuYWJsZSIgPSAieWVzIiBdICYmIG1ha2UgJHttYWtlam9ic30gLUMgdG9vbHMv bGxkYi91dGlscy9UYWJsZUdlbgogCQljb25maWd1cmVfYXJncys9IiAtRExMVk1fVEFCTEVHRU49 JHt3cmtzcmN9L2xsdm0vYnVpbGQvSE9TVC9iaW4vbGx2bS10YmxnZW4iCisJCWNvbmZpZ3VyZV9h cmdzKz0iIC1EQ0xBTkdfVEFCTEVHRU49JHt3cmtzcmN9L2xsdm0vYnVpbGQvSE9TVC9iaW4vY2xh bmctdGJsZ2VuIgogCQlbICIkX2xsZGJfZW5hYmxlIiA9ICJ5ZXMiIF0gJiYgY29uZmlndXJlX2Fy Z3MrPSIgLURMTERCX1RBQkxFR0VOPSR7d3Jrc3JjfS9sbHZtL2J1aWxkL0hPU1QvYmluL2xsZGIt dGJsZ2VuIgogCQljZCAuLi8uLgogCWZpCkBAIC0xMTcsNiArMTI1LDY5IEBAIGRvX2luc3RhbGwo KSB7CiAJZmkKIH0KIAorY2xhbmcxMl9wYWNrYWdlKCkgeworCWNvbmZsaWN0cz0iY2xhbmciCisJ bGliMzJkaXNhYmxlZD15ZXMKKwlkZXBlbmRzPSJsaWJzdGRjKystZGV2ZWwgbGliZ2NjLWRldmVs ICBiaW51dGlscyAke1hCUFNfVEFSR0VUX0xJQkN9LWRldmVsCisJIGxpYmNsYW5nMTItJHt2ZXJz aW9ufV8ke3JldmlzaW9ufSIKKwlzaG9ydF9kZXNjKz0iIC0gQyBsYW5ndWFnZSBmYW1pbHkgZnJv bnRlbmQiCisJaG9tZXBhZ2U9Imh0dHBzOi8vY2xhbmcubGx2bS5vcmcvIgorCXBrZ19pbnN0YWxs KCkgeworCQl2bW92ZSB1c3IvaW5jbHVkZS9jbGFuZworCQl2bW92ZSB1c3IvaW5jbHVkZS9jbGFu Zy1jCisJCXZtb3ZlICJ1c3IvYmluLypjbGFuZyoiCisJCXZtb3ZlIHVzci9iaW4vYy1pbmRleC10 ZXN0CisJCXZtb3ZlIHVzci9saWIvY2xhbmcKKwkJdm1vdmUgdXNyL2xpYi9jbWFrZS9jbGFuZwor CQl2bW92ZSAidXNyL2xpYi9saWJjbGFuZyouYSIKKwkJdm1vdmUgInVzci9saWIvbGliY2xhbmcq LnNvIgorCQl2bW92ZSB1c3Ivc2hhcmUvY2xhbmcKKwkJdm1vdmUgdXNyL3NoYXJlL2RvYy9jbGFu ZworCQl2bW92ZSB1c3Ivc2hhcmUvbWFuL21hbjEvY2xhbmcuMQorCX0KK30KKworbGliY2xhbmcx Ml9wYWNrYWdlKCkgeworCXNob3J0X2Rlc2MrPSIgLSBDIGZyb250ZW5kIHJ1bnRpbWUgbGlicmFy eSIKKwlwa2dfaW5zdGFsbCgpIHsKKwkJdm1vdmUgInVzci9saWIvbGliY2xhbmcuc28uKiIKKwl9 Cit9CisKK2xpYmNsYW5nMTItY3BwX3BhY2thZ2UoKSB7CisJc2hvcnRfZGVzYys9IiAtIEMgZnJv bnRlbmQgcnVudGltZSBsaWJyYXJ5IChDKysgaW50ZXJmYWNlKSIKKwlwa2dfaW5zdGFsbCgpIHsK KwkJdm1vdmUgInVzci9saWIvbGliY2xhbmctY3BwLnNvLioiCisJfQorfQorCitsbGQxMl9wYWNr YWdlKCkgeworCWNvbmZsaWN0cz0ibGxkIgorCWxpYjMyZGlzYWJsZWQ9eWVzCisJc2hvcnRfZGVz Yys9IiAtIGxpbmtlciIKKwlob21lcGFnZT0iaHR0cHM6Ly9sbGQubGx2bS5vcmciCisJcGtnX2lu c3RhbGwoKSB7CisJCXZtb3ZlIHVzci9iaW4vbGxkKgorCQl2bW92ZSB1c3IvYmluL3dhc20tbGQK KwkJdm1vdmUgdXNyL2Jpbi9sZC5sbGQqCisJCXZtb3ZlIHVzci9iaW4vbGQ2NC5sbGQqCisJCXZt b3ZlIHVzci9zaGFyZS9kb2MvbGxkCisJfQorfQorCitsbGQxMi1kZXZlbF9wYWNrYWdlKCkgewor CWNvbmZsaWN0cz0ibGxkLWRldmVsIgorCWxpYjMyZGlzYWJsZWQ9eWVzCisJc2hvcnRfZGVzYys9 IiAtIGxpbmtlciAtIGRldmVsb3BtZW50IGZpbGVzIgorCWhvbWVwYWdlPSJodHRwczovL2xsZC5s bHZtLm9yZyIKKwlkZXBlbmRzPSJsbGQxMj49JHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKKwlwa2df aW5zdGFsbCgpIHsKKwkJdm1vdmUgdXNyL2luY2x1ZGUvbGxkCisJCXZtb3ZlIHVzci9saWIvY21h a2UvbGxkCisJCXZtb3ZlICJ1c3IvbGliL2xpYmxsZCphIgorCX0KK30KKwogbGlibGx2bTEyX3Bh Y2thZ2UoKSB7CiAJc2hvcnRfZGVzYys9IiAtIHJ1bnRpbWUgbGlicmFyeSIKIAlwa2dfaW5zdGFs bCgpIHsKCkZyb20gZmIzZjdmMDdjNjFhZmIzYjNlZTM2ZjMzODg2ZDgwNjFhZWU3MWQzYiBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogcHJleiA8cHJlekBuYXRpb25hbC5zaGl0cG9zdGlu Zy5hZ2VuY3k+CkRhdGU6IE1vbiwgMiBNYXkgMjAyMiAxOTowNzo0MCArMDIwMApTdWJqZWN0OiBb UEFUQ0ggMDUvMjddIGNocm9taXVtOiB1cGRhdGUgZm9yIGxsdm0xNAoKLS0tCiBzcmNwa2dzL2No cm9taXVtL3RlbXBsYXRlIHwgMTAgKystLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0 aW9ucygrKSwgOCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2Nocm9taXVtL3Rl bXBsYXRlIGIvc3JjcGtncy9jaHJvbWl1bS90ZW1wbGF0ZQppbmRleCAwZGNlODc3MmZkYjguLjhi NjA0YTM0OTIyOSAxMDA2NDQKLS0tIGEvc3JjcGtncy9jaHJvbWl1bS90ZW1wbGF0ZQorKysgYi9z cmNwa2dzL2Nocm9taXVtL3RlbXBsYXRlCkBAIC0yLDcgKzIsNyBAQAogcGtnbmFtZT1jaHJvbWl1 bQogIyBTZWUgaHR0cHM6Ly9jaHJvbWl1bWRhc2guYXBwc3BvdC5jb20vcmVsZWFzZXM/cGxhdGZv cm09TGludXggZm9yIHRoZSBsYXRlc3QgdmVyc2lvbgogdmVyc2lvbj0xMDEuMC40OTUxLjQxCi1y ZXZpc2lvbj0xCityZXZpc2lvbj0yCiBhcmNocz0iaTY4NiogeDg2XzY0KiBhYXJjaDY0KiBhcm12 N2wqIHBwYzY0bGUqIgogc2hvcnRfZGVzYz0iR29vZ2xlJ3MgYXR0ZW1wdCBhdCBjcmVhdGluZyBh IHNhZmVyLCBmYXN0ZXIsIGFuZCBtb3JlIHN0YWJsZSBicm93c2VyIgogbWFpbnRhaW5lcj0iRHVu Y2FlbiA8ZHVuY2FlbkB2b2lkbGludXgub3JnPiIKQEAgLTIwLDcgKzIwLDcgQEAgZGVzY19vcHRp b25fZGVidWc9IkJ1aWxkIHdpdGggZGVidWcgc3ltYm9scyIKIGRlc2Nfb3B0aW9uX2pzX29wdGlt aXplPSJPcHRpbWl6ZSB0aGUgSlMgdXNlZCBmb3IgQ2hyb21pdW0ncyBVSSIKIGRlc2Nfb3B0aW9u X3BpcGV3aXJlPSJFbmFibGUgc3VwcG9ydCBmb3Igc2NyZWVuIHNoYXJpbmcgZm9yIFdlYlJUQyB2 aWEgUGlwZVdpcmUiCiAKLWhvc3RtYWtlZGVwZW5kcz0iJCh2b3B0X2lmIGNsYW5nICJjbGFuZyBs bGQgbGx2bTEyIikgcHl0aG9uIHB5dGhvbjMgcGtnY29uZiBwZXJsIGdwZXJmIGJpc29uIG5pbmph IG5vZGVqcyBod2lkcworaG9zdG1ha2VkZXBlbmRzPSIkKHZvcHRfaWYgY2xhbmcgImNsYW5nIGxs ZCBsbHZtMTQiKSBweXRob24gcHl0aG9uMyBwa2djb25mIHBlcmwgZ3BlcmYgYmlzb24gbmluamEg bm9kZWpzIGh3aWRzCiAgbGliYXRvbWljLWRldmVsIGxpYmV2ZW50LWRldmVsIGxpYmdsaWItZGV2 ZWwgJCh2b3B0X2lmIGpzX29wdGltaXplIG9wZW5qZGspIHdheWxhbmQtZGV2ZWwgbGliZXBveHkt ZGV2ZWwiCiBtYWtlZGVwZW5kcz0ibGlicG5nLWRldmVsIGd0aystZGV2ZWwgZ3RrKzMtZGV2ZWwg bnNzLWRldmVsIHBjaXV0aWxzLWRldmVsCiAgbGliWGktZGV2ZWwgbGliZ2NyeXB0LWRldmVsIGxp Ymdub21lLWtleXJpbmctZGV2ZWwgY3Vwcy1kZXZlbCBlbGZ1dGlscy1kZXZlbApAQCAtMjY2LDEy ICsyNjYsNiBAQCBkb19jb25maWd1cmUoKSB7CiAJCSdkaXNhYmxlX2ZpZWxkdHJpYWxfdGVzdGlu Z19jb25maWc9dHJ1ZScKIAogCQknaXNfb2ZmaWNpYWxfYnVpbGQ9dHJ1ZScKLQotCQkjIHNlZ2Zh dWx0cyB3aXRoIGxsdm0tMTIuMC4xCi0JCSdpc19jZmk9ZmFsc2UnCi0JCSd1c2VfdGhpbl9sdG89 ZmFsc2UnCi0JCSd1c2VfY2ZpX2ljYWxsPWZhbHNlJwotCQknY2hyb21lX3Bnb19waGFzZT0wJwog CSkKIAogCWlmIFsgIiRDUk9TU19CVUlMRCIgXTsgdGhlbgoKRnJvbSA2ZjkyZWRiOTQ3NzhhNjky ZDViY2U4MWFhMmE5OTRiOTM3NWUxODdlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBw cmV6IDxwcmV6QG5hdGlvbmFsLnNoaXRwb3N0aW5nLmFnZW5jeT4KRGF0ZTogTW9uLCAyIE1heSAy MDIyIDE5OjA3OjM4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwNi8yN10gZ2hkbDogdXBkYXRlIGZv ciBsbHZtMTQKCi0tLQogc3JjcGtncy9naGRsL3BhdGNoZXMve2xsdm0xMi5wYXRjaCA9PiBsbHZt LnBhdGNofSB8IDIgKysKIHNyY3BrZ3MvZ2hkbC90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfCAyICstCiAyIGZpbGVzIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMSBkZWxl dGlvbigtKQogcmVuYW1lIHNyY3BrZ3MvZ2hkbC9wYXRjaGVzL3tsbHZtMTIucGF0Y2ggPT4gbGx2 bS5wYXRjaH0gKDgyJSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2doZGwvcGF0Y2hlcy9sbHZtMTIu cGF0Y2ggYi9zcmNwa2dzL2doZGwvcGF0Y2hlcy9sbHZtLnBhdGNoCnNpbWlsYXJpdHkgaW5kZXgg ODIlCnJlbmFtZSBmcm9tIHNyY3BrZ3MvZ2hkbC9wYXRjaGVzL2xsdm0xMi5wYXRjaApyZW5hbWUg dG8gc3JjcGtncy9naGRsL3BhdGNoZXMvbGx2bS5wYXRjaAppbmRleCA4ZDJmNzZiZmRhMDYuLjky MDE4MTZhZTA1MyAxMDA2NDQKLS0tIGEvc3JjcGtncy9naGRsL3BhdGNoZXMvbGx2bTEyLnBhdGNo CisrKyBiL3NyY3BrZ3MvZ2hkbC9wYXRjaGVzL2xsdm0ucGF0Y2gKQEAgLTcsNiArNyw4IEBAIGlu ZGV4IGMxYzFhNmQuLmRhZDdjMzggMTAwNzU1CiAgICAgICAgIGNoZWNrX3ZlcnNpb24gMTAuMCAk bGx2bV92ZXJzaW9uIHx8CiAgICAgICAgIGNoZWNrX3ZlcnNpb24gMTEuMCAkbGx2bV92ZXJzaW9u IHx8CiArICAgICAgIGNoZWNrX3ZlcnNpb24gMTIuMCAkbGx2bV92ZXJzaW9uIHx8CisrICAgICAg IGNoZWNrX3ZlcnNpb24gMTMuMCAkbGx2bV92ZXJzaW9uIHx8CisrICAgICAgIGNoZWNrX3ZlcnNp b24gMTQuMCAkbGx2bV92ZXJzaW9uIHx8CiAgICAgICAgIGZhbHNlOyB0aGVuCiAgICAgIGVjaG8g IkRlYnVnZ2luZyBpcyBlbmFibGVkIHdpdGggbGx2bSAkbGx2bV92ZXJzaW9uIgogICAgZWxzZQpk aWZmIC0tZ2l0IGEvc3JjcGtncy9naGRsL3RlbXBsYXRlIGIvc3JjcGtncy9naGRsL3RlbXBsYXRl CmluZGV4IGU3NTZkOGMzY2Q4Ny4uOWNhMTE2OWIyMmJkIDEwMDY0NAotLS0gYS9zcmNwa2dzL2do ZGwvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9naGRsL3RlbXBsYXRlCkBAIC03LDcgKzcsNyBAQAog cGtnbmFtZT1naGRsCiByZXZlcnRzPSIyMDE4MTEyOV8xIgogdmVyc2lvbj0xLjAuMAotcmV2aXNp b249MQorcmV2aXNpb249MgogYnVpbGRfc3R5bGU9Y29uZmlndXJlCiBjb25maWd1cmVfYXJncz0i LS1wcmVmaXg9L3VzciAtLXNyY2Rpcj0uLiAtLWluY2Rpcj1saWIvZ2hkbC9pbmNsdWRlIgogbWFr ZWRlcGVuZHM9InpsaWItZGV2ZWwiCgpGcm9tIGI2MjAzYzdlYWMxYjUzYjlhODBjNjczYmZhOGIw YzU2OWRlYjc3MzMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IHByZXogPHByZXpAbmF0 aW9uYWwuc2hpdHBvc3RpbmcuYWdlbmN5PgpEYXRlOiBNb24sIDIgTWF5IDIwMjIgMTk6MDc6Mzgg KzAyMDAKU3ViamVjdDogW1BBVENIIDA3LzI3XSBxdDU6IHJlYnVpbGQgZm9yIGxsdm0xNAoKLS0t CiBzcmNwa2dzL3F0NS90ZW1wbGF0ZSB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlv bigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ1L3RlbXBsYXRlIGIv c3JjcGtncy9xdDUvdGVtcGxhdGUKaW5kZXggZWU3ODhmYWQyMDE5Li4yNWYxNTU4M2E0MmQgMTAw NjQ0Ci0tLSBhL3NyY3BrZ3MvcXQ1L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvcXQ1L3RlbXBsYXRl CkBAIC0zLDcgKzMsNyBAQCBwa2duYW1lPXF0NQogdmVyc2lvbj01LjE1LjMrMjAyMjAyMjIKICMg Y29tbWl0IGZjY2E4MmNhNDBhNWQ4YTAyYTRkZGQ5MDg0NmQwNzBmMmM1OGNmYWQKICMgYmFzZSBy ZXBvOiBodHRwczovL2ludmVudC5rZGUub3JnL3F0L3F0L3F0NQotcmV2aXNpb249MworcmV2aXNp b249NAogYnVpbGRfc3R5bGU9bWV0YQogaG9zdG1ha2VkZXBlbmRzPSJjbWFrZSBjbGFuZyBmbGV4 IHBlcmwgZ2xpYi1kZXZlbCBwa2ctY29uZmlnCiAgcHl0aG9uIHJlMmMgcnVieSB3aGljaCIKCkZy b20gYzQ2NjNhOWMzOTRkYzVkNDhkZTk2ZTM2NDY4ODcwMjdlYTE3MTE4YiBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogcHJleiA8cHJlekBuYXRpb25hbC5zaGl0cG9zdGluZy5hZ2VuY3k+ CkRhdGU6IE1vbiwgMiBNYXkgMjAyMiAxOTowNzozOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDgv MjddIHRpbGl4OiByZWJ1aWxkIGZvciBsbHZtMTQKCi0tLQogc3JjcGtncy90aWxpeC90ZW1wbGF0 ZSB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoK ZGlmZiAtLWdpdCBhL3NyY3BrZ3MvdGlsaXgvdGVtcGxhdGUgYi9zcmNwa2dzL3RpbGl4L3RlbXBs YXRlCmluZGV4IGQ4ZjAxNGJjNzhjNS4uYWMxYmY3ZGQzYmRkIDEwMDY0NAotLS0gYS9zcmNwa2dz L3RpbGl4L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvdGlsaXgvdGVtcGxhdGUKQEAgLTEsNyArMSw3 IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICd0aWxpeCcKIHBrZ25hbWU9dGlsaXgKIHZlcnNpb249 MS45LjQKLXJldmlzaW9uPTMKK3JldmlzaW9uPTQKIGJ1aWxkX3N0eWxlPW1lc29uCiBjb25maWd1 cmVfYXJncz0iLURiX2x0bz1mYWxzZSIKIGhvc3RtYWtlZGVwZW5kcz0iYXV0b21ha2UgZ2V0dGV4 dC1kZXZlbCBnZGstcGl4YnVmIGdsaWItZGV2ZWwgbGRjIHBvNGEgcGtnLWNvbmZpZwoKRnJvbSA0 Mzg3NTUxNGY4NTBjMzZmNjExMmExM2U3NzQ5MWEyYWQ1NzI2ZjgyIE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQpGcm9tOiBwcmV6IDxwcmV6QG5hdGlvbmFsLnNoaXRwb3N0aW5nLmFnZW5jeT4KRGF0 ZTogTW9uLCAyIE1heSAyMDIyIDE5OjA3OjM4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwOS8yN10g c2hpYm9rZW4yOiByZWJ1aWxkIGZvciBsbHZtMTQKCi0tLQogc3JjcGtncy9zaGlib2tlbjIvdGVt cGxhdGUgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24o LSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL3NoaWJva2VuMi90ZW1wbGF0ZSBiL3NyY3BrZ3Mvc2hp Ym9rZW4yL3RlbXBsYXRlCmluZGV4IGI1NjYxMzIyOWMxMy4uYWI5ZDJjNGNiOGY5IDEwMDY0NAot LS0gYS9zcmNwa2dzL3NoaWJva2VuMi90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3NoaWJva2VuMi90 ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3NoaWJva2VuMicK IHBrZ25hbWU9c2hpYm9rZW4yCiB2ZXJzaW9uPTUuMTUuMgotcmV2aXNpb249NAorcmV2aXNpb249 NQogX3BrZ25hbWU9InB5c2lkZS1zZXR1cC1vcGVuc291cmNlLXNyYy0ke3ZlcnNpb259Igogd3Jr c3JjPSIke19wa2duYW1lLyU1LjE0LjIuMS81LjE0LjJ9IgogYnVpbGRfd3Jrc3JjPSJzb3VyY2Vz L3NoaWJva2VuMiIKCkZyb20gYTVmYTZjMWRiZDI2ZjE4NTg5MjkwODFmYzk5OThmNTY5YzJlZTZl OCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogcHJleiA8cHJlekBuYXRpb25hbC5zaGl0 cG9zdGluZy5hZ2VuY3k+CkRhdGU6IE1vbiwgMiBNYXkgMjAyMiAxOTowNzozOSArMDIwMApTdWJq ZWN0OiBbUEFUQ0ggMTAvMjddIGdub21lLWJ1aWxkZXI6IHJlYnVpbGQgZm9yIGxsdm0xNAoKLS0t CiBzcmNwa2dzL2dub21lLWJ1aWxkZXIvdGVtcGxhdGUgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwg MSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21l LWJ1aWxkZXIvdGVtcGxhdGUgYi9zcmNwa2dzL2dub21lLWJ1aWxkZXIvdGVtcGxhdGUKaW5kZXgg OTM1NTliMjE3NzRmLi41YTVhNTE4OTNhZTggMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ25vbWUtYnVp bGRlci90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dub21lLWJ1aWxkZXIvdGVtcGxhdGUKQEAgLTEs NyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnbm9tZS1idWlsZGVyJwogcGtnbmFtZT1n bm9tZS1idWlsZGVyCiB2ZXJzaW9uPTQxLjMKLXJldmlzaW9uPTEKK3JldmlzaW9uPTIKIGJ1aWxk X3N0eWxlPW1lc29uCiBidWlsZF9oZWxwZXI9cWVtdQogY29uZmlndXJlX2FyZ3M9Ii1EaGVscD10 cnVlIC1EbmV0d29ya190ZXN0cz1mYWxzZSIKCkZyb20gMmFmYzlhYzUzM2I4YWVhMDU5OGZmY2Ex Y2E2NDZhOWM1MzMwZWY1NSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogcHJleiA8cHJl ekBuYXRpb25hbC5zaGl0cG9zdGluZy5hZ2VuY3k+CkRhdGU6IE1vbiwgMiBNYXkgMjAyMiAxOTow NzozOSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTEvMjddIGJjYzogcmVidWlsZCBmb3IgbGx2bTE0 CgotLS0KIHNyY3BrZ3MvYmNjL3RlbXBsYXRlIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5z ZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9iY2MvdGVtcGxh dGUgYi9zcmNwa2dzL2JjYy90ZW1wbGF0ZQppbmRleCA1NDUwOWI2M2Q1YTcuLjJjZmEwYTI5Nzdk MCAxMDA2NDQKLS0tIGEvc3JjcGtncy9iY2MvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9iY2MvdGVt cGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdiY2MnCiBwa2duYW1l PWJjYwogdmVyc2lvbj0wLjI0LjAKLXJldmlzaW9uPTEKK3JldmlzaW9uPTIKIHdya3NyYz0iYmNj IgogYnVpbGRfc3R5bGU9Y21ha2UKIGNvbmZpZ3VyZV9hcmdzPSItRFJFVklTSU9OPSR7dmVyc2lv bn0gLURFTkFCTEVfTExWTV9TSEFSRUQ9MSIKCkZyb20gZGQxZTA2YTE1MDhkMjI5NDRiZGM3Nzcx Y2M2MDkzZDAzMWI1ZTVjMCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogcHJleiA8cHJl ekBuYXRpb25hbC5zaGl0cG9zdGluZy5hZ2VuY3k+CkRhdGU6IE1vbiwgMiBNYXkgMjAyMiAxOTow NzozOSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTIvMjddIG1lc2E6IHJlYnVpbGQgZm9yIGxsdm0x NAoKLS0tCiBzcmNwa2dzL21lc2EvdGVtcGxhdGUgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBp bnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL21lc2EvdGVt cGxhdGUgYi9zcmNwa2dzL21lc2EvdGVtcGxhdGUKaW5kZXggYzkwNTAwZGU3NDE2Li44ZjA4MjYy ZmIxMzUgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvbWVzYS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL21l c2EvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdtZXNhJwog cGtnbmFtZT1tZXNhCiB2ZXJzaW9uPTIxLjMuNwotcmV2aXNpb249MQorcmV2aXNpb249MgogYnVp bGRfc3R5bGU9bWVzb24KIGNvbmZpZ3VyZV9hcmdzPSItRGdsdm5kPXRydWUgLURzaGFyZWQtZ2xh cGk9ZW5hYmxlZCAtRGdibT1lbmFibGVkIC1EZWdsPWVuYWJsZWQKICAtRG9zbWVzYT10cnVlIC1E Z2xlczE9ZW5hYmxlZCAtRGdsZXMyPWVuYWJsZWQgLURnbHg9ZHJpIC1EZHJpMz1lbmFibGVkCgpG cm9tIGIyNTdjMzA3NmE3N2Y1YmJmNGRkM2Q5ZTc2OTFlMWMwYWM1MzAwNTEgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206IHByZXogPHByZXpAbmF0aW9uYWwuc2hpdHBvc3RpbmcuYWdlbmN5 PgpEYXRlOiBNb24sIDIgTWF5IDIwMjIgMTk6MDc6NDAgKzAyMDAKU3ViamVjdDogW1BBVENIIDEz LzI3XSBqdUNpKys6IHJlYnVpbGQgZm9yIGxsdm0xNAoKLS0tCiBzcmNwa2dzL2p1Q2krKy90ZW1w bGF0ZSB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigt KQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvanVDaSsrL3RlbXBsYXRlIGIvc3JjcGtncy9qdUNpKysv dGVtcGxhdGUKaW5kZXggMWE3NjA0YjQ0YTAwLi41MTAzMzI0ZGVjMjAgMTAwNjQ0Ci0tLSBhL3Ny Y3BrZ3MvanVDaSsrL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvanVDaSsrL3RlbXBsYXRlCkBAIC0x LDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnanVDaSsrJwogcGtnbmFtZT1qdUNpKysK IHZlcnNpb249MS42LjIKLXJldmlzaW9uPTIKK3JldmlzaW9uPTMKIF9saWJjbGFuZ21tX2NvbW1p dD0iYjM0MmY0ZGQ2ZGU0ZmU1MDlhNjkyYTRiNGZjZmM3ZTI0YWFlOTU5MCIKIF90aW55X2NvbW1p dD0iYzljOGJmODEwZGRhZDhjZDE3ODgyYjlhOWVlNjI4YTY5MGU3NzlmNSIKIHdya3NyYz0ianVj aXBwLXYke3ZlcnNpb259IgoKRnJvbSAxOTAwZGU1ZDdkYWM2YjljMmEyYmJjNzM2MDhhYTMwZDNl MDZhMzRiIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBwcmV6IDxwcmV6QG5hdGlvbmFs LnNoaXRwb3N0aW5nLmFnZW5jeT4KRGF0ZTogTW9uLCAyIE1heSAyMDIyIDE5OjA3OjQwICswMjAw ClN1YmplY3Q6IFtQQVRDSCAxNC8yN10gY29kZWxpdGU6IHJlYnVpbGQgZm9yIGxsdm0xNAoKLS0t CiBzcmNwa2dzL2NvZGVsaXRlL3RlbXBsYXRlIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5z ZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9jb2RlbGl0ZS90 ZW1wbGF0ZSBiL3NyY3BrZ3MvY29kZWxpdGUvdGVtcGxhdGUKaW5kZXggM2E5OTNhMmMwY2ZiLi4y NGUyYzg3OWRkNDUgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvY29kZWxpdGUvdGVtcGxhdGUKKysrIGIv c3JjcGtncy9jb2RlbGl0ZS90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmls ZSBmb3IgJ2NvZGVsaXRlJwogcGtnbmFtZT1jb2RlbGl0ZQogdmVyc2lvbj0xNS4wLjYKLXJldmlz aW9uPTEKK3JldmlzaW9uPTIKIGJ1aWxkX3N0eWxlPWNtYWtlCiBidWlsZF9oZWxwZXI9Y21ha2Ut d3hXaWRnZXRzLWd0azMKIGNvbmZpZ3VyZV9hcmdzPSItRFdJVEhfUENIPTAgLURXSVRIX1dYX0NP TkZJRz13eC1jb25maWctZ3RrMwoKRnJvbSAxNjlhY2MzOWNmZjA2MGVhMjYzNThkMmRhZTU1YmU3 MjY5YmFkMGNjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBwcmV6IDxwcmV6QG5hdGlv bmFsLnNoaXRwb3N0aW5nLmFnZW5jeT4KRGF0ZTogTW9uLCAyIE1heSAyMDIyIDE5OjA3OjQxICsw MjAwClN1YmplY3Q6IFtQQVRDSCAxNS8yN10gY2NsczogcmVidWlsZCBmb3IgbGx2bTE0CgotLS0K IHNyY3BrZ3MvY2Nscy90ZW1wbGF0ZSB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlv bigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY2Nscy90ZW1wbGF0ZSBi L3NyY3BrZ3MvY2Nscy90ZW1wbGF0ZQppbmRleCBmYmI3YzY4NDdiYzEuLjQwYWJhM2I1NWJmZSAx MDA2NDQKLS0tIGEvc3JjcGtncy9jY2xzL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvY2Nscy90ZW1w bGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2NjbHMnCiBwa2duYW1l PWNjbHMKIHZlcnNpb249MC4yMDIxMDMzMAotcmV2aXNpb249MgorcmV2aXNpb249MwogYnVpbGRf c3R5bGU9Y21ha2UKIGhvc3RtYWtlZGVwZW5kcz0iY2xhbmctdG9vbHMtZXh0cmEiCiBtYWtlZGVw ZW5kcz0ibGx2bSBuY3Vyc2VzLWRldmVsIHJhcGlkanNvbiB6bGliLWRldmVsIGNsYW5nLXRvb2xz LWV4dHJhIgoKRnJvbSAxMWUwMmFiNDQxYjM3ODhhMjAwNjNkZjBjMjZjYjE5YTA4YWI2MzRiIE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBwcmV6IDxwcmV6QG5hdGlvbmFsLnNoaXRwb3N0 aW5nLmFnZW5jeT4KRGF0ZTogTW9uLCAyIE1heSAyMDIyIDE5OjA3OjQxICswMjAwClN1YmplY3Q6 IFtQQVRDSCAxNi8yN10gY2xhenk6IHJlYnVpbGQgZm9yIGxsdm0xNAoKLS0tCiBzcmNwa2dzL2Ns YXp5L3RlbXBsYXRlIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRl bGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9jbGF6eS90ZW1wbGF0ZSBiL3NyY3BrZ3Mv Y2xhenkvdGVtcGxhdGUKaW5kZXggMTFmM2JhYjU1YWVmLi5mODFkZTA4YWI4MzYgMTAwNjQ0Ci0t LSBhL3NyY3BrZ3MvY2xhenkvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9jbGF6eS90ZW1wbGF0ZQpA QCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2NsYXp5JwogcGtnbmFtZT1jbGF6 eQogdmVyc2lvbj0xLjExCi1yZXZpc2lvbj0xCityZXZpc2lvbj0yCiBidWlsZF9zdHlsZT1jbWFr ZQogYnVpbGRfaGVscGVyPXFlbXUKIGhvc3RtYWtlZGVwZW5kcz0ibGx2bSIKCkZyb20gNmUzYTU5 MWM4ZWE4NWEyZWEzMDk4ZWU0MGY3Mzg3MzQ1ZTg2YTFiMyBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogcHJleiA8cHJlekBuYXRpb25hbC5zaGl0cG9zdGluZy5hZ2VuY3k+CkRhdGU6IE1v biwgMiBNYXkgMjAyMiAxOTowNzo0MSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTcvMjddIGJwZnRy YWNlOiByZWJ1aWxkIGZvciBsbHZtMTQKCi0tLQogc3JjcGtncy9icGZ0cmFjZS90ZW1wbGF0ZSB8 IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlm ZiAtLWdpdCBhL3NyY3BrZ3MvYnBmdHJhY2UvdGVtcGxhdGUgYi9zcmNwa2dzL2JwZnRyYWNlL3Rl bXBsYXRlCmluZGV4IDI4YWIzYzYyNjM5OS4uZWIyNDgwZDIyMzBlIDEwMDY0NAotLS0gYS9zcmNw a2dzL2JwZnRyYWNlL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvYnBmdHJhY2UvdGVtcGxhdGUKQEAg LTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdicGZ0cmFjZScKIHBrZ25hbWU9YnBm dHJhY2UKIHZlcnNpb249MC4xNC4xCi1yZXZpc2lvbj0xCityZXZpc2lvbj0yCiBhcmNocz0ieDg2 XzY0KiBhYXJjaDY0KiBwcGM2NCoiCiBidWlsZF9zdHlsZT1jbWFrZQogY29uZmlndXJlX2FyZ3M9 Ii1EQlVJTERfVEVTVElORz1PRkYiICAjIG5lZWRzIHJvb3QgdG8gcnVuCgpGcm9tIDllYTVmOTEy M2YwYzAxYjFiYjc5MmJkMzliZWJmNjE1NzdiMWEyZGUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CkZyb206IHByZXogPHByZXpAbmF0aW9uYWwuc2hpdHBvc3RpbmcuYWdlbmN5PgpEYXRlOiBNb24s IDIgTWF5IDIwMjIgMTk6MDc6NDEgKzAyMDAKU3ViamVjdDogW1BBVENIIDE4LzI3XSBydGFnczog cmVidWlsZCBmb3IgbGx2bTE0CgotLS0KIHNyY3BrZ3MvcnRhZ3MvdGVtcGxhdGUgfCAyICstCiAx IGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQg YS9zcmNwa2dzL3J0YWdzL3RlbXBsYXRlIGIvc3JjcGtncy9ydGFncy90ZW1wbGF0ZQppbmRleCBi NDk2YTFiMGU3MjEuLjliMTYxZTY5MGQ3NiAxMDA2NDQKLS0tIGEvc3JjcGtncy9ydGFncy90ZW1w bGF0ZQorKysgYi9zcmNwa2dzL3J0YWdzL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1w bGF0ZSBmaWxlIGZvciAncnRhZ3MnCiBwa2duYW1lPXJ0YWdzCiB2ZXJzaW9uPTIuMzgKLXJldmlz aW9uPTUKK3JldmlzaW9uPTYKIGJ1aWxkX3N0eWxlPWNtYWtlCiAjIERvbid0IHJ1biB0ZXN0cyBp biBkb19pbnN0YWxsLCBwbGVhc2UuCiBjb25maWd1cmVfYXJncz0iLURTS0lQX0NURVNUPVRSVUUi CgpGcm9tIDMwNmZjZDIwMzUxY2FjOTYxOWIxNzE4YjQ5NzlkY2M1YWIzNGI5NDkgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCkZyb206IHByZXogPHByZXpAbmF0aW9uYWwuc2hpdHBvc3RpbmcuYWdl bmN5PgpEYXRlOiBNb24sIDIgTWF5IDIwMjIgMjE6MDc6MTkgKzAyMDAKU3ViamVjdDogW1BBVENI IDE5LzI3XSBiZWlnbmV0OiByZW1vdmUgcGFja2FnZQoKLS0tCiBzcmNwa2dzL2JlaWduZXQvcGF0 Y2hlcy9jbF91aW50LnBhdGNoICAgICAgICAgfCAgMjIgLQogLi4uNDE5YTAwMDhlMzhlZjJkOWQy NTVkOWU5Yzc0ZTlmYmEwODRiLnBhdGNoIHwgMTM0IC0tLQogc3JjcGtncy9iZWlnbmV0L3BhdGNo ZXMvbGx2bTA2LnBhdGNoICAgICAgICAgIHwgIDMzIC0KIHNyY3BrZ3MvYmVpZ25ldC9wYXRjaGVz L2xsdm0wOC5wYXRjaCAgICAgICAgICB8ICA1NiAtLQogc3JjcGtncy9iZWlnbmV0L3BhdGNoZXMv bGx2bTA5LnBhdGNoICAgICAgICAgIHwgMTExIC0tLQogc3JjcGtncy9iZWlnbmV0L3BhdGNoZXMv bGx2bTEwLnBhdGNoICAgICAgICAgIHwgMzQ3IC0tLS0tLS0KIHNyY3BrZ3MvYmVpZ25ldC9wYXRj aGVzL2xsdm0xMS5wYXRjaCAgICAgICAgICB8IDkzNyAtLS0tLS0tLS0tLS0tLS0tLS0KIHNyY3Br Z3MvYmVpZ25ldC9wYXRjaGVzL2xsdm0xMi5wYXRjaCAgICAgICAgICB8IDExNSAtLS0KIHNyY3Br Z3MvYmVpZ25ldC9wYXRjaGVzL211c2wucGF0Y2ggICAgICAgICAgICB8ICAxMSAtCiBzcmNwa2dz L2JlaWduZXQvdGVtcGxhdGUgICAgICAgICAgICAgICAgICAgICAgfCAgMjIgLQogc3JjcGtncy9i ZWlnbmV0L3VwZGF0ZSAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxIC0KIHNyY3BrZ3MvcmVt b3ZlZC1wYWNrYWdlcy90ZW1wbGF0ZSAgICAgICAgICAgICB8ICAgMyArLQogMTIgZmlsZXMgY2hh bmdlZCwgMiBpbnNlcnRpb25zKCspLCAxNzkwIGRlbGV0aW9ucygtKQogZGVsZXRlIG1vZGUgMTAw NjQ0IHNyY3BrZ3MvYmVpZ25ldC9wYXRjaGVzL2NsX3VpbnQucGF0Y2gKIGRlbGV0ZSBtb2RlIDEw MDY0NCBzcmNwa2dzL2JlaWduZXQvcGF0Y2hlcy9lMWIyNDE5YTAwMDhlMzhlZjJkOWQyNTVkOWU5 Yzc0ZTlmYmEwODRiLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9iZWlnbmV0L3Bh dGNoZXMvbGx2bTA2LnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9iZWlnbmV0L3Bh dGNoZXMvbGx2bTA4LnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9iZWlnbmV0L3Bh dGNoZXMvbGx2bTA5LnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9iZWlnbmV0L3Bh dGNoZXMvbGx2bTEwLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9iZWlnbmV0L3Bh dGNoZXMvbGx2bTExLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9iZWlnbmV0L3Bh dGNoZXMvbGx2bTEyLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9iZWlnbmV0L3Bh dGNoZXMvbXVzbC5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvYmVpZ25ldC90ZW1w bGF0ZQogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvYmVpZ25ldC91cGRhdGUKCmRpZmYgLS1n aXQgYS9zcmNwa2dzL2JlaWduZXQvcGF0Y2hlcy9jbF91aW50LnBhdGNoIGIvc3JjcGtncy9iZWln bmV0L3BhdGNoZXMvY2xfdWludC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg ODZiYTAwZjA0ZTk1Li4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9iZWlnbmV0L3BhdGNoZXMv Y2xfdWludC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDIyICswLDAgQEAKLS0tLSBhL3NyYy9j bF9hcGlfa2VybmVsLmMJMjAxNy0wOS0yMiAxMDowNToyMi4wMDAwMDAwMDAgKzAyMDAKLSsrKyBi L3NyYy9jbF9hcGlfa2VybmVsLmMJMjAyMC0wMy0yNCAxODoyNzo0MC4xODY0ODU4ODcgKzAxMDAK LUBAIC0xNTEsNyArMTUxLDcgQEAKLSAgICAgICAgIGZpeGVkX2xvY2FsX3N6WzBdID0gMTY7Ci0g ICAgICAgICBmaXhlZF9sb2NhbF9zelsxXSA9IDE7Ci0gICAgICAgfSBlbHNlIHsKLS0gICAgICAg IHVpbnQgaiwgbWF4RGltU2l6ZSA9IDY0IC8qIGZyb20gNjQ/ICovLCBtYXhHcm91cFNpemUgPSAy NTY7IC8vTUFYX1dPUktfR1JPVVBfU0laRSBtYXkgdG9vIGxhcmdlCi0rICAgICAgICBjbF91aW50 IGosIG1heERpbVNpemUgPSA2NCAvKiBmcm9tIDY0PyAqLywgbWF4R3JvdXBTaXplID0gMjU2OyAv L01BWF9XT1JLX0dST1VQX1NJWkUgbWF5IHRvbyBsYXJnZQotICAgICAgICAgc2l6ZV90IHJlYWxH cm91cFNpemUgPSAxOwotICAgICAgICAgZm9yIChpID0gMDsgaSA8IHdvcmtfZGltOyBpKyspIHsK LSAgICAgICAgICAgZm9yIChqID0gbWF4RGltU2l6ZTsgaiA+IDE7IGotLSkgewotLS0tIGEvc3Jj L2NsX2VucXVldWUuYwkyMDE3LTA5LTIyIDEwOjA1OjIyLjAwMDAwMDAwMCArMDIwMAotKysrIGIv c3JjL2NsX2VucXVldWUuYwkyMDIwLTAzLTI0IDE4OjMwOjEyLjAzMTQ3OTgzMyArMDEwMAotQEAg LTQ5NCw3ICs0OTQsNyBAQAotIGNsX2ludCBjbF9lbnF1ZXVlX3N2bV9mcmVlKGVucXVldWVfZGF0 YSAqZGF0YSwgY2xfaW50IHN0YXR1cykgewotICAgaW50IGk7Ci0gICB2b2lkICoqcG9pbnRlcnMg PSBkYXRhLT5wb2ludGVyczsKLS0gIHVpbnQgbnVtX3N2bV9wdHJzID0gZGF0YS0+c2l6ZTsKLSsg IGNsX3VpbnQgbnVtX3N2bV9wdHJzID0gZGF0YS0+c2l6ZTsKLSAgIGNsX2ludCBlcnIgPSBDTF9T VUNDRVNTOwotIAotICAgaWYgKHN0YXR1cyAhPSBDTF9DT01QTEVURSkKZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MvYmVpZ25ldC9wYXRjaGVzL2UxYjI0MTlhMDAwOGUzOGVmMmQ5ZDI1NWQ5ZTljNzRlOWZi YTA4NGIucGF0Y2ggYi9zcmNwa2dzL2JlaWduZXQvcGF0Y2hlcy9lMWIyNDE5YTAwMDhlMzhlZjJk OWQyNTVkOWU5Yzc0ZTlmYmEwODRiLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCA4ZGU5ZTZlMmYwOTMuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2JlaWduZXQvcGF0Y2hl cy9lMWIyNDE5YTAwMDhlMzhlZjJkOWQyNTVkOWU5Yzc0ZTlmYmEwODRiLnBhdGNoCisrKyAvZGV2 L251bGwKQEAgLTEsMTM0ICswLDAgQEAKLUZyb20gZTFiMjQxOWEwMDA4ZTM4ZWYyZDlkMjU1ZDll OWM3NGU5ZmJhMDg0YiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206ICJSZWJlY2NhIE4u IFBhbG1lciIgPHJlYmVjY2FfcGFsbWVyQHpvaG8uY29tPgotRGF0ZTogU2F0LCAyMSBKdWwgMjAx OCAyMDowNTo1NCArMDEwMAotU3ViamVjdDogQWRkIHByZWxpbWluYXJ5IExMVk0gNyBzdXBwb3J0 Ci0KLVRoaXMgaXMgcHJlbGltaW5hcnkgYmVjYXVzZSBMTFZNIDcgaGFzIG5vdCBiZWVuIHJlbGVh c2VkIHlldDoKLWl0IHdhcyB0ZXN0ZWQgd2l0aCB0aGUgc25hcHNob3QgZnJvbSBEZWJpYW4gZXhw ZXJpbWVudGFsIChzdm4zMzY4OTQpLgotCi0xLkNoYW5nZSBsaW5raW5nIG9yZGVyLCBhcyBjbGFu Z0NvZGVHZW4gbm93IGxpbmtzIHRvIGNsYW5nRnJvbnRlbmQKLTIuUGFzcyByZWZlcmVuY2VzIG5v dCBwb2ludGVycyB0byBXcml0ZUJpdGNvZGVUb0ZpbGUgYW5kIENsb25lTW9kdWxlCi0zLkFkZCB0 aGUgaGVhZGVycyB0aGF0IExvb3BTaW1wbGlmeUlELCBMQ1NTQUlEIGFuZAotc29tZSBjcmVhdGUq UGFzcyBoYXZlIG1vdmVkIHRvCi00LkRlZmluZSBvdXIgREVCVUcgd2hldGhlciBvciBub3Qgd2Ug anVzdCB1bmRlZmluZWQgTExWTSdzCi0odGhlaXJzIGlzIG5vdyBMTFZNX0RFQlVHLCBidXQgd2Ug bmV2ZXIgYWN0dWFsbHkgdXNlIGl0KQotCi1TaWduZWQtb2ZmLWJ5OiBSZWJlY2NhIE4uIFBhbG1l ciA8cmViZWNjYV9wYWxtZXJAem9oby5jb20+Ci1SZXZpZXdlZC1ieTogWWFuZyBSb25nIDxyb25n LnIueWFuZ0BpbnRlbC5jb20+Ci0tLS0KLSBDTWFrZS9GaW5kTExWTS5jbWFrZSAgICAgICAgICAg ICAgICAgICAgIHwgMiArLQotIGJhY2tlbmQvc3JjL2JhY2tlbmQvZ2VuX3Byb2dyYW0uY3BwICAg ICAgfCA4ICsrKysrKysrCi0gYmFja2VuZC9zcmMvYmFja2VuZC9wcm9ncmFtLmNwcCAgICAgICAg ICB8IDQgKysrKwotIGJhY2tlbmQvc3JjL2xsdm0vRXhwYW5kTGFyZ2VJbnRlZ2Vycy5jcHAgfCAy ICstCi0gYmFja2VuZC9zcmMvbGx2bS9sbHZtX2JpdGNvZGVfbGluay5jcHAgICB8IDQgKysrKwot IGJhY2tlbmQvc3JjL2xsdm0vbGx2bV9pbmNsdWRlcy5ocHAgICAgICAgfCA0ICsrKysKLSA2IGZp bGVzIGNoYW5nZWQsIDIyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1n aXQgYS9DTWFrZS9GaW5kTExWTS5jbWFrZSBiL0NNYWtlL0ZpbmRMTFZNLmNtYWtlCi1pbmRleCA1 NDU3ZjI0Li5mODgyNTg5IDEwMDY0NAotLS0tIGEvQ01ha2UvRmluZExMVk0uY21ha2UKLSsrKyBi L0NNYWtlL0ZpbmRMTFZNLmNtYWtlCi1AQCAtMTEzLDEwICsxMTMsMTAgQEAgbWFjcm8oYWRkX29u ZV9saWIgbmFtZSkKLSBlbmRtYWNybygpCi0gCi0gI0Fzc3VtZSBjbGFuZyBsaWIgcGF0aCBzYW1l IGFzIGxsdm0gbGliIHBhdGgKLSthZGRfb25lX2xpYigiY2xhbmdDb2RlR2VuIikKLSBhZGRfb25l X2xpYigiY2xhbmdGcm9udGVuZCIpCi0gYWRkX29uZV9saWIoImNsYW5nU2VyaWFsaXphdGlvbiIp Ci0gYWRkX29uZV9saWIoImNsYW5nRHJpdmVyIikKLS1hZGRfb25lX2xpYigiY2xhbmdDb2RlR2Vu IikKLSBhZGRfb25lX2xpYigiY2xhbmdTZW1hIikKLSBhZGRfb25lX2xpYigiY2xhbmdTdGF0aWNB bmFseXplckZyb250ZW5kIikKLSBhZGRfb25lX2xpYigiY2xhbmdTdGF0aWNBbmFseXplckNoZWNr ZXJzIikKLWRpZmYgLS1naXQgYS9iYWNrZW5kL3NyYy9iYWNrZW5kL2dlbl9wcm9ncmFtLmNwcCBi L2JhY2tlbmQvc3JjL2JhY2tlbmQvZ2VuX3Byb2dyYW0uY3BwCi1pbmRleCAyNzRjOTljLi40MTU5 MjM0IDEwMDY0NAotLS0tIGEvYmFja2VuZC9zcmMvYmFja2VuZC9nZW5fcHJvZ3JhbS5jcHAKLSsr KyBiL2JhY2tlbmQvc3JjL2JhY2tlbmQvZ2VuX3Byb2dyYW0uY3BwCi1AQCAtNDU0LDcgKzQ1NCwx MSBAQCBuYW1lc3BhY2UgZ2JlIHsKLSAjaWZkZWYgR0JFX0NPTVBJTEVSX0FWQUlMQUJMRQotICAg ICAgIHN0ZDo6c3RyaW5nIHN0cjsKLSAgICAgICBsbHZtOjpyYXdfc3RyaW5nX29zdHJlYW0gT1Mo c3RyKTsKLSsjaWYgTExWTV9WRVJTSU9OX01BSk9SID49IDcKLSsgICAgICBsbHZtOjpXcml0ZUJp dGNvZGVUb0ZpbGUoKigobGx2bTo6TW9kdWxlKilwcm9nLT5tb2R1bGUpLCBPUyk7Ci0rI2Vsc2UK LSAgICAgICBsbHZtOjpXcml0ZUJpdGNvZGVUb0ZpbGUoKGxsdm06Ok1vZHVsZSopcHJvZy0+bW9k dWxlLCBPUyk7Ci0rI2VuZGlmCi0gICAgICAgc3RkOjpzdHJpbmcmIGJpbl9zdHIgPSBPUy5zdHIo KTsKLSAgICAgICBpbnQgbGxzeiA9IGJpbl9zdHIuc2l6ZSgpOwotICAgICAgICpiaW5hcnkgPSAo Y2hhciAqKW1hbGxvYyhzaXplb2YoY2hhcikgKiAobGxzeisxKSApOwotQEAgLTU0NSw3ICs1NDks MTEgQEAgbmFtZXNwYWNlIGdiZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgJm1vZFJlZik7Ci0gICAgICAgICBzcmMgPSBsbHZtOjp1bndyYXAobW9kUmVmKTsKLSAgICAg ICB9Ci0rI2lmIExMVk1fVkVSU0lPTl9NQUpPUiA+PSA3Ci0rICAgICAgbGx2bTo6TW9kdWxlKiBj bG9uZSA9IGxsdm06OkNsb25lTW9kdWxlKCpzcmMpLnJlbGVhc2UoKTsKLSsjZWxzZQotICAgICAg IGxsdm06Ok1vZHVsZSogY2xvbmUgPSBsbHZtOjpDbG9uZU1vZHVsZShzcmMpLnJlbGVhc2UoKTsK LSsjZW5kaWYKLSAgICAgICBpZiAoTExWTUxpbmtNb2R1bGVzMih3cmFwKGRzdCksIHdyYXAoY2xv bmUpKSkgewotICNlbGlmIExMVk1fVkVSU0lPTl9NQUpPUiAqIDEwICsgTExWTV9WRVJTSU9OX01J Tk9SID49IDM3Ci0gICAgICAgaWYgKExMVk1MaW5rTW9kdWxlcyh3cmFwKGRzdCksIHdyYXAoc3Jj KSwgTExWTUxpbmtlclByZXNlcnZlU291cmNlX1JlbW92ZWQsICZlcnJNc2cpKSB7Ci1kaWZmIC0t Z2l0IGEvYmFja2VuZC9zcmMvYmFja2VuZC9wcm9ncmFtLmNwcCBiL2JhY2tlbmQvc3JjL2JhY2tl bmQvcHJvZ3JhbS5jcHAKLWluZGV4IGMzN2M1OTUuLmIzNmY3YjQgMTAwNjQ0Ci0tLS0gYS9iYWNr ZW5kL3NyYy9iYWNrZW5kL3Byb2dyYW0uY3BwCi0rKysgYi9iYWNrZW5kL3NyYy9iYWNrZW5kL3By b2dyYW0uY3BwCi1AQCAtNzk0LDcgKzc5NCwxMSBAQCBuYW1lc3BhY2UgZ2JlIHsKLSAgICAgICBs bHZtOjpyYXdfZmRfb3N0cmVhbSBvc3RyZWFtIChkdW1wU1BJUkJpbmFyeU5hbWUuY19zdHIoKSwK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnIsIGxsdm06OnN5czo6ZnM6 OkZfTm9uZSk7Ci0gICAgICAgaWYgKCFlcnIpCi0rI2lmIExMVk1fVkVSU0lPTl9NQUpPUjw3Ci0g ICAgICAgICBsbHZtOjpXcml0ZUJpdGNvZGVUb0ZpbGUoKm91dF9tb2R1bGUsIG9zdHJlYW0pOwot KyNlbHNlCi0rICAgICAgICBsbHZtOjpXcml0ZUJpdGNvZGVUb0ZpbGUoKipvdXRfbW9kdWxlLCBv c3RyZWFtKTsKLSsjZW5kaWYKLSAgICAgfQotICNlbmRpZgotICAgICByZXR1cm4gdHJ1ZTsKLWRp ZmYgLS1naXQgYS9iYWNrZW5kL3NyYy9sbHZtL0V4cGFuZExhcmdlSW50ZWdlcnMuY3BwIGIvYmFj a2VuZC9zcmMvbGx2bS9FeHBhbmRMYXJnZUludGVnZXJzLmNwcAotaW5kZXggODUxNWRjMS4uNGFl YzQ0ZSAxMDA2NDQKLS0tLSBhL2JhY2tlbmQvc3JjL2xsdm0vRXhwYW5kTGFyZ2VJbnRlZ2Vycy5j cHAKLSsrKyBiL2JhY2tlbmQvc3JjL2xsdm0vRXhwYW5kTGFyZ2VJbnRlZ2Vycy5jcHAKLUBAIC05 OSw4ICs5OSw4IEBAIHVzaW5nIG5hbWVzcGFjZSBsbHZtOwotIAotICNpZmRlZiBERUJVRwotICAg I3VuZGVmIERFQlVHCi0tICAjZGVmaW5lIERFQlVHKC4uLikKLSAjZW5kaWYKLSsjZGVmaW5lIERF QlVHKC4uLikKLSAvLyBCcmVhayBpbnN0cnVjdGlvbnMgdXAgaW50byBubyBsYXJnZXIgdGhhbiA2 NC1iaXQgY2h1bmtzLgotIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBrQ2h1bmtCaXRzID0gNjQ7Ci0g c3RhdGljIGNvbnN0IHVuc2lnbmVkIGtDaHVua0J5dGVzID0ga0NodW5rQml0cyAvIENIQVJfQklU OwotZGlmZiAtLWdpdCBhL2JhY2tlbmQvc3JjL2xsdm0vbGx2bV9iaXRjb2RlX2xpbmsuY3BwIGIv YmFja2VuZC9zcmMvbGx2bS9sbHZtX2JpdGNvZGVfbGluay5jcHAKLWluZGV4IGVmNTZlNGMuLjRj M2UyMGUgMTAwNjQ0Ci0tLS0gYS9iYWNrZW5kL3NyYy9sbHZtL2xsdm1fYml0Y29kZV9saW5rLmNw cAotKysrIGIvYmFja2VuZC9zcmMvbGx2bS9sbHZtX2JpdGNvZGVfbGluay5jcHAKLUBAIC0zNDAs NyArMzQwLDExIEBAIG5hbWVzcGFjZSBnYmUKLSAgICAgLyogV2UgdXNlIGJlaWduZXQncyBiaXRj b2RlIGFzIGRzdCBiZWNhdXNlIGl0IHdpbGwgaGF2ZSBhIGxvdCBvZgotICAgICAgICBsYXp5IGZ1 bmN0aW9ucyB3aGljaCB3aWxsIG5vdCBiZSBsb2FkZWQuICovCi0gI2lmIExMVk1fVkVSU0lPTl9N QUpPUiAqIDEwICsgTExWTV9WRVJTSU9OX01JTk9SID49IDM5Ci0rI2lmIExMVk1fVkVSU0lPTl9N QUpPUiA+PSA3Ci0rICAgIGxsdm06Ok1vZHVsZSAqIGxpbmtlZF9tb2R1bGUgPSBsbHZtOjpDbG9u ZU1vZHVsZSgqKGxsdm06Ok1vZHVsZSopbW9kKS5yZWxlYXNlKCk7Ci0rI2Vsc2UKLSAgICAgbGx2 bTo6TW9kdWxlICogbGlua2VkX21vZHVsZSA9IGxsdm06OkNsb25lTW9kdWxlKChsbHZtOjpNb2R1 bGUqKW1vZCkucmVsZWFzZSgpOwotKyNlbmRpZgotICAgICBpZihMTFZNTGlua01vZHVsZXMyKHdy YXAoY2xvbmVkTGliKSwgd3JhcChsaW5rZWRfbW9kdWxlKSkpIHsKLSAjZWxzZQotICAgICBjaGFy KiBlcnJvck1zZzsKLWRpZmYgLS1naXQgYS9iYWNrZW5kL3NyYy9sbHZtL2xsdm1faW5jbHVkZXMu aHBwIGIvYmFja2VuZC9zcmMvbGx2bS9sbHZtX2luY2x1ZGVzLmhwcAotaW5kZXggMTg0NTUzYS4u ZmZjY2YwMiAxMDA2NDQKLS0tLSBhL2JhY2tlbmQvc3JjL2xsdm0vbGx2bV9pbmNsdWRlcy5ocHAK LSsrKyBiL2JhY2tlbmQvc3JjL2xsdm0vbGx2bV9pbmNsdWRlcy5ocHAKLUBAIC04OSw2ICs4OSwx MCBAQAotICNpbmNsdWRlICJsbHZtL0NvZGVHZW4vSW50cmluc2ljTG93ZXJpbmcuaCIKLSAKLSAj aW5jbHVkZSAibGx2bS9UcmFuc2Zvcm1zL1NjYWxhci5oIgotKyNpZiBMTFZNX1ZFUlNJT05fTUFK T1IgPj0gNwotKyNpbmNsdWRlICJsbHZtL1RyYW5zZm9ybXMvVXRpbHMuaCIKLSsjaW5jbHVkZSAi bGx2bS9UcmFuc2Zvcm1zL0luc3RDb21iaW5lL0luc3RDb21iaW5lLmgiCi0rI2VuZGlmCi0gI2lu Y2x1ZGUgImxsdm0vTUMvTUNBc21JbmZvLmgiCi0gI2luY2x1ZGUgImxsdm0vTUMvTUNDb250ZXh0 LmgiCi0gI2luY2x1ZGUgImxsdm0vTUMvTUNJbnN0ckluZm8uaCIKLS0tIAotY2dpdCB2MS4xCi0K ZGlmZiAtLWdpdCBhL3NyY3BrZ3MvYmVpZ25ldC9wYXRjaGVzL2xsdm0wNi5wYXRjaCBiL3NyY3Br Z3MvYmVpZ25ldC9wYXRjaGVzL2xsdm0wNi5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMzM4OWU2NmM4MmRmLi4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9iZWlnbmV0L3Bh dGNoZXMvbGx2bTA2LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMzMgKzAsMCBAQAotU291cmNl OiBBcmNoIExpbnV4Ci1VcHN0cmVhbTogdW5rbm93bgotUmVhc29uOiBmaXhlcyBsbHZtNiBjb21w aWxhdGlvbgotCi0tLS0gYS9iYWNrZW5kL3NyYy9sbHZtL2xsdm1fdG9fZ2VuLmNwcAkyMDE3LTEw LTI0IDA5OjA0OjQ4LjAwMDAwMDAwMCArMDMwMAotKysrIGIvYmFja2VuZC9zcmMvbGx2bS9sbHZt X3RvX2dlbi5jcHAJMjAxOC0wMy0xNiAxNjowODo1NC42Njk5NjM4MjQgKzAyMDAKLUBAIC0zMjIs NyArMzIyLDExIEBAIG5hbWVzcGFjZSBnYmUKLSAgICAgRGF0YUxheW91dCBETCgmbW9kKTsKLSAg ICAgCi0gICAgIGdiZURpYWdub3N0aWNDb250ZXh0IGRjOwotKyNpZiBMTFZNX1ZFUlNJT05fTUFK T1IgPj0gNgotKyAgICBtb2QuZ2V0Q29udGV4dCgpLnNldERpYWdub3N0aWNIYW5kbGVyQ2FsbEJh Y2soJmdiZURpYWdub3N0aWNIYW5kbGVyLCZkYyk7Ci0rI2Vsc2UKLSAgICAgbW9kLmdldENvbnRl eHQoKS5zZXREaWFnbm9zdGljSGFuZGxlcigmZ2JlRGlhZ25vc3RpY0hhbmRsZXIsJmRjKTsKLSsj ZW5kaWYKLSAKLSAjaWYgTExWTV9WRVJTSU9OX01BSk9SICogMTAgKyBMTFZNX1ZFUlNJT05fTUlO T1IgPj0gMzcKLSAgICAgbW9kLnNldERhdGFMYXlvdXQoREwpOwotLS0tIGEvYmFja2VuZC9zcmMv bGx2bS9sbHZtX3Vucm9sbC5jcHAJMjAxNy0xMC0yNCAwOTowNDo0OC4wMDAwMDAwMDAgKzAzMDAK LSsrKyBiL2JhY2tlbmQvc3JjL2xsdm0vbGx2bV91bnJvbGwuY3BwCTIwMTgtMDMtMTYgMTY6MDk6 NDcuNzM2NDAzNTU3ICswMjAwCi1AQCAtMjA1LDcgKzIwNSw5IEBAIG5hbWVzcGFjZSBnYmUgewot ICAgICAgICAgICBpZiAocGFyZW50VHJpcENvdW50ICE9IDAgJiYgY3VyclRyaXBDb3VudCAqIHBh cmVudFRyaXBDb3VudCA+IDMyKSB7Ci0gICAgICAgICAgICAgLy9Eb24ndCBjaGFuZ2UgdGhlIHVu cm9sbElEIGlmIGRvZXNuJ3QgZm9yY2UgdW5yb2xsLgotICAgICAgICAgICAgIC8vc2V0VW5yb2xs SUQocGFyZW50TCwgZmFsc2UpOwotLSNpZiBMTFZNX1ZFUlNJT05fTUFKT1IgKiAxMCArIExMVk1f VkVSU0lPTl9NSU5PUiA+PSAzOAotKyNpZiBMTFZNX1ZFUlNJT05fTUFKT1IgPj0gNgotKyAgICAg ICAgICAgIGxvb3BJbmZvLmVyYXNlKHBhcmVudEwpOwotKyNlbGlmIExMVk1fVkVSU0lPTl9NQUpP UiAqIDEwICsgTExWTV9WRVJTSU9OX01JTk9SID49IDM4Ci0gICAgICAgICAgICAgbG9vcEluZm8u bWFya0FzUmVtb3ZlZChwYXJlbnRMKTsKLSAjZWxzZQotICAgICAgICAgICAgIExQTS5kZWxldGVM b29wRnJvbVF1ZXVlKHBhcmVudEwpOwotT25seSBpbiBCZWlnbmV0LTEuMy4yLVNvdXJjZTogYnVp bGQKLQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9iZWlnbmV0L3BhdGNoZXMvbGx2bTA4LnBhdGNoIGIv c3JjcGtncy9iZWlnbmV0L3BhdGNoZXMvbGx2bTA4LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEw MDY0NAppbmRleCBhMGM1ZTdhN2M0ZjcuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2JlaWdu ZXQvcGF0Y2hlcy9sbHZtMDgucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw1NiArMCwwIEBACi1G cm9tIDc1YzE1MjU5OWE3YzE3MzllNmRhZGNkYjliMzc3YWNmN2U0NGQ5Y2YgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCi1Gcm9tOiBKYW4gQmVpY2ggPGpiZWljaEBGcmVlQlNELm9yZz4KLURhdGU6 IFdlZCwgMzAgSmFuIDIwMTkgMTI6NDI6MzQgKzAwMDAKLVN1YmplY3Q6IFtQQVRDSF0gbGFuZy9i ZWlnbmV0OiB1bmJyZWFrIHdpdGggbGx2bTgwCi0KLVJlZ3Jlc3NlZCBieSBodHRwczovL2dpdGh1 Yi5jb20vbGx2bS9sbHZtLXByb2plY3QvY29tbWl0LzcyMWQ5NTcxM2E5ZQotCi11bmFibGUgdG8g bG9hZCAvdXNyL2xvY2FsL2xpYi9iZWlnbmV0Ly9saWJnYmVpbnRlcnAuc28gd2hpY2ggaXMgcGFy dCBvZiB0aGUgZHJpdmVyLCBwbGVhc2UgY2hlY2shCi1sZC1lbGYuc28uMTogL3Vzci9sb2NhbC9s aWIvYmVpZ25ldC8vbGliZ2JlaW50ZXJwLnNvOiBVbmRlZmluZWQgc3ltYm9sICJfWk40bGx2bTI0 RGlzYWJsZUFCSUJyZWFraW5nQ2hlY2tzRSIKLQotUmVncmVzc2VkIGJ5IGh0dHBzOi8vZ2l0aHVi LmNvbS9sbHZtL2xsdm0tcHJvamVjdC9jb21taXQvNGEyZDU4ZTE2YWNjCi0KLWJhY2tlbmQvc3Jj L2xsdm0vbGx2bV9nZW5fYmFja2VuZC5jcHA6MzA3Njo1OiBlcnJvcjoKLSAgICAgIHVua25vd24g dHlwZSBuYW1lICdUZXJtaW5hdG9ySW5zdCcKLSAgICBUZXJtaW5hdG9ySW5zdCAqdGVybSA9IGJi LT5nZXRUZXJtaW5hdG9yKCk7Ci0gICAgXgotYmFja2VuZC9zcmMvbGx2bS9sbHZtX2dlbl9iYWNr ZW5kLmNwcDozMDgzOjU6IGVycm9yOgotICAgICAgdW5rbm93biB0eXBlIG5hbWUgJ1Rlcm1pbmF0 b3JJbnN0JwotICAgIFRlcm1pbmF0b3JJbnN0ICp0ZXJtID0gYmItPmdldFRlcm1pbmF0b3IoKTsK LSAgICBeCi0KLS0tLSBhL2JhY2tlbmQvc3JjL0NNYWtlTGlzdHMudHh0CTIwMTctMDktMjIgMDg6 MDU6MjIgVVRDCi0rKysgYi9iYWNrZW5kL3NyYy9DTWFrZUxpc3RzLnR4dAotQEAgLTE2OCw2ICsx NjgsNyBAQCBhZGRfZGVwZW5kZW5jaWVzKGdiZSBiZWlnbmV0X2JpdGNvZGUpCi0gZW5kaWYgKE5P VCAoVVNFX1NUQU5EQUxPTkVfR0JFX0NPTVBJTEVSIFNUUkVRVUFMICJ0cnVlIikpCi0gCi0gYWRk X2xpYnJhcnkoZ2JlaW50ZXJwIFNIQVJFRCBnYmVfYmluX2ludGVycHJldGVyLmNwcCkKLSt0YXJn ZXRfbGlua19saWJyYXJpZXMoZ2JlaW50ZXJwICR7TExWTV9NT0RVTEVfTElCU30pCi0gCi0gaWYg KExMVk1fVkVSU0lPTl9OT0RPVCBWRVJTSU9OX0VRVUFMIDM0KQotICAgZmluZF9saWJyYXJ5KFRF Uk1JTkZPIE5BTUVTIHRpbmZvIG5jdXJzZXMpCi0tLS0gYS9iYWNrZW5kL3NyYy9sbHZtL2xsdm1f Z2VuX2JhY2tlbmQuY3BwCTIwMTctMTAtMjQgMDY6MDQ6NDggVVRDCi0rKysgYi9iYWNrZW5kL3Ny Yy9sbHZtL2xsdm1fZ2VuX2JhY2tlbmQuY3BwCi1AQCAtMzA3MywxNCArMzA3MywyMiBAQCBuYW1l c3BhY2UgZ2JlCi0gCi0gCi0gICBzdGF0aWMgdW5zaWduZWQgZ2V0Q2hpbGRObyhCYXNpY0Jsb2Nr ICpiYikgewotKyNpZiBMTFZNX1ZFUlNJT05fTUFKT1IgPCA4Ci0gICAgIFRlcm1pbmF0b3JJbnN0 ICp0ZXJtID0gYmItPmdldFRlcm1pbmF0b3IoKTsKLSsjZWxzZQotKyAgICBJbnN0cnVjdGlvbiAq dGVybSA9IGJiLT5nZXRUZXJtaW5hdG9yKCk7Ci0rI2VuZGlmCi0gICAgIHJldHVybiB0ZXJtLT5n ZXROdW1TdWNjZXNzb3JzKCk7Ci0gICB9Ci0gCi0gICAvLyByZXR1cm4gTlVMTCBpZiBpbmRleCBv dXQtcmFuZ2Ugb2YgY2hpbGRyZW4gbnVtYmVyCi0gICBzdGF0aWMgQmFzaWNCbG9jayAqZ2V0Q2hp bGRQb3NzaWJsZShCYXNpY0Jsb2NrICpiYiwgdW5zaWduZWQgaW5kZXgpIHsKLSAKLSsjaWYgTExW TV9WRVJTSU9OX01BSk9SIDwgOAotICAgICBUZXJtaW5hdG9ySW5zdCAqdGVybSA9IGJiLT5nZXRU ZXJtaW5hdG9yKCk7Ci0rI2Vsc2UKLSsgICAgSW5zdHJ1Y3Rpb24gKnRlcm0gPSBiYi0+Z2V0VGVy bWluYXRvcigpOwotKyNlbmRpZgotICAgICB1bnNpZ25lZCBjaGlsZE5vID0gdGVybS0+Z2V0TnVt U3VjY2Vzc29ycygpOwotICAgICBCYXNpY0Jsb2NrICpjaGlsZCA9IE5VTEw7Ci0gICAgIGlmKGlu ZGV4IDwgY2hpbGRObykgewpkaWZmIC0tZ2l0IGEvc3JjcGtncy9iZWlnbmV0L3BhdGNoZXMvbGx2 bTA5LnBhdGNoIGIvc3JjcGtncy9iZWlnbmV0L3BhdGNoZXMvbGx2bTA5LnBhdGNoCmRlbGV0ZWQg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhY2FlY2VhYmI2ZGQuLjAwMDAwMDAwMDAwMAotLS0gYS9z cmNwa2dzL2JlaWduZXQvcGF0Y2hlcy9sbHZtMDkucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwx MTEgKzAsMCBAQAotU291cmNlOiBGcmVlQlNEICsgcTY2Ci0KLU1vc3RseSBGcmVlQlNEIG90aGVy IHRoYW4gRmluZExMVk0uY21ha2UgY2hhbmdlcy4KLUxpbmtpbmcgYWdhaW5zdCBjbGFuZy1jcHAg ZG9lcyBub3Qgd29yayBmb3IgdXMuCi0KLS0tLSBhL0NNYWtlL0ZpbmRMTFZNLmNtYWtlCi0rKysg Yi9DTWFrZS9GaW5kTExWTS5jbWFrZQotQEAgLTE0MCw2ICsxNDAsNyBAQCBhZGRfb25lX2xpYigi Y2xhbmdTdGF0aWNBbmFseXplckNvcmUiKQotIGFkZF9vbmVfbGliKCJjbGFuZ0FuYWx5c2lzIikK LSBhZGRfb25lX2xpYigiY2xhbmdFZGl0IikKLSBhZGRfb25lX2xpYigiY2xhbmdBU1QiKQotK2Fk ZF9vbmVfbGliKCJjbGFuZ0FTVE1hdGNoZXJzIikKLSBhZGRfb25lX2xpYigiY2xhbmdQYXJzZSIp Ci0gYWRkX29uZV9saWIoImNsYW5nU2VtYSIpCi0gYWRkX29uZV9saWIoImNsYW5nTGV4IikKLS0t LSBhL2JhY2tlbmQvc3JjL2xsdm0vbGx2bV9pbnRyaW5zaWNfbG93ZXJpbmcuY3BwCTIwMTctMTAt MjQgMDY6MDQ6NDggVVRDCi0rKysgYi9iYWNrZW5kL3NyYy9sbHZtL2xsdm1faW50cmluc2ljX2xv d2VyaW5nLmNwcAotQEAgLTc3LDcgKzc3LDExIEBAIG5hbWVzcGFjZSBnYmUgewotICAgICAgICAg c3RkOjp2ZWN0b3I8VHlwZSAqPiBQYXJhbVR5czsKLSAgICAgICAgIGZvciAoVmFsdWUqKiBJID0g QXJnQmVnaW47IEkgIT0gQXJnRW5kOyArK0kpCi0gICAgICAgICAgIFBhcmFtVHlzLnB1c2hfYmFj aygoKkkpLT5nZXRUeXBlKCkpOwotKyNpZiBMTFZNX1ZFUlNJT05fTUFKT1IgKiAxMCArIExMVk1f VkVSU0lPTl9NSU5PUiA+PSA5MAotKyAgICAgICAgRnVuY3Rpb25DYWxsZWUgRkNhY2hlID0gTS0+ Z2V0T3JJbnNlcnRGdW5jdGlvbihOZXdGbiwKLSsjZWxzZQotICAgICAgICAgQ29uc3RhbnQqIEZD YWNoZSA9IE0tPmdldE9ySW5zZXJ0RnVuY3Rpb24oTmV3Rm4sCi0rI2VuZGlmCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZ1bmN0aW9uVHlwZTo6Z2V0KFJldFR5LCBQ YXJhbVR5cywgZmFsc2UpKTsKLSAKLSAgICAgICAgIElSQnVpbGRlcjw+IEJ1aWxkZXIoQ0ktPmdl dFBhcmVudCgpLCBCYXNpY0Jsb2NrOjppdGVyYXRvcihDSSkpOwotLS0tIGEvYmFja2VuZC9zcmMv bGx2bS9sbHZtX3NhbXBsZXJfZml4LmNwcAkyMDE3LTEwLTI0IDA2OjA0OjQ4IFVUQwotKysrIGIv YmFja2VuZC9zcmMvbGx2bS9sbHZtX3NhbXBsZXJfZml4LmNwcAotQEAgLTgyLDcgKzgyLDExIEBA IG5hbWVzcGFjZSBnYmUgewotICNpZiBMTFZNX1ZFUlNJT05fTUFKT1IgKiAxMCArIExMVk1fVkVS U0lPTl9NSU5PUiA+PSA0MAotICAgICAgICAgICBNb2R1bGUgKk0gPSBJLT5nZXRQYXJlbnQoKS0+ Z2V0UGFyZW50KCktPmdldFBhcmVudCgpOwotICNpZiBMTFZNX1ZFUlNJT05fTUFKT1IgKiAxMCAr IExMVk1fVkVSU0lPTl9NSU5PUiA+PSA1MAotKyNpZiBMTFZNX1ZFUlNJT05fTUFKT1IgKiAxMCAr IExMVk1fVkVSU0lPTl9NSU5PUiA+PSA5MAotKyAgICAgICAgICBGdW5jdGlvbkNhbGxlZSBzYW1w bGVyQ3Z0ID0gTS0+Z2V0T3JJbnNlcnRGdW5jdGlvbigiX19nZW5fb2NsX3NhbXBsZXJfdG9faW50 IiwgaTMyVHksIEktPmdldE9wZXJhbmQoMCktPmdldFR5cGUoKSk7Ci0rI2Vsc2UKLSAgICAgICAg ICAgVmFsdWUqIHNhbXBsZXJDdnQgPSBNLT5nZXRPckluc2VydEZ1bmN0aW9uKCJfX2dlbl9vY2xf c2FtcGxlcl90b19pbnQiLCBpMzJUeSwgSS0+Z2V0T3BlcmFuZCgwKS0+Z2V0VHlwZSgpKTsKLSsj ZW5kaWYKLSAjZWxzZQotICAgICAgICAgICBWYWx1ZSogc2FtcGxlckN2dCA9IE0tPmdldE9ySW5z ZXJ0RnVuY3Rpb24oIl9fZ2VuX29jbF9zYW1wbGVyX3RvX2ludCIsIGkzMlR5LCBJLT5nZXRPcGVy YW5kKDApLT5nZXRUeXBlKCksIG51bGxwdHIpOwotICNlbmRpZgotQEAgLTEyNCw3ICsxMjgsMTEg QEAgbmFtZXNwYWNlIGdiZSB7Ci0gI2lmIExMVk1fVkVSU0lPTl9NQUpPUiAqIDEwICsgTExWTV9W RVJTSU9OX01JTk9SID49IDQwCi0gICAgICAgICAgIE1vZHVsZSAqTSA9IEktPmdldFBhcmVudCgp LT5nZXRQYXJlbnQoKS0+Z2V0UGFyZW50KCk7Ci0gI2lmIExMVk1fVkVSU0lPTl9NQUpPUiAqIDEw ICsgTExWTV9WRVJTSU9OX01JTk9SID49IDUwCi0rI2lmIExMVk1fVkVSU0lPTl9NQUpPUiAqIDEw ICsgTExWTV9WRVJTSU9OX01JTk9SID49IDkwCi0rICAgICAgICAgIEZ1bmN0aW9uQ2FsbGVlIHNh bXBsZXJDdnQgPSBNLT5nZXRPckluc2VydEZ1bmN0aW9uKCJfX2dlbl9vY2xfc2FtcGxlcl90b19p bnQiLCBpMzJUeSwgSS0+Z2V0T3BlcmFuZCgwKS0+Z2V0VHlwZSgpKTsKLSsjZWxzZQotICAgICAg ICAgICBWYWx1ZSogc2FtcGxlckN2dCA9IE0tPmdldE9ySW5zZXJ0RnVuY3Rpb24oIl9fZ2VuX29j bF9zYW1wbGVyX3RvX2ludCIsIGkzMlR5LCBJLT5nZXRPcGVyYW5kKDApLT5nZXRUeXBlKCkpOwot KyNlbmRpZgotICNlbHNlCi0gICAgICAgICAgIFZhbHVlKiBzYW1wbGVyQ3Z0ID0gTS0+Z2V0T3JJ bnNlcnRGdW5jdGlvbigiX19nZW5fb2NsX3NhbXBsZXJfdG9faW50IiwgaTMyVHksIEktPmdldE9w ZXJhbmQoMCktPmdldFR5cGUoKSwgbnVsbHB0cik7Ci0gI2VuZGlmCi0tLS0gYS9iYWNrZW5kL3Ny Yy9sbHZtL2xsdm1fcHJvZmlsaW5nLmNwcAkyMDE3LTEwLTI0IDA2OjA0OjQ4IFVUQwotKysrIGIv YmFja2VuZC9zcmMvbGx2bS9sbHZtX3Byb2ZpbGluZy5jcHAKLUBAIC0xNjMsMTAgKzE2MywxOCBA QCBuYW1lc3BhY2UgZ2JlCi0gICAgICAgLy8gX19nZW5fb2NsX3N0b3JlX3RpbWVzdGFtcChpbnQg bnRoLCBpbnQgdHlwZSk7Ci0gICAgICAgVmFsdWUgKkFyZ3NbMl0gPSB7Q29uc3RhbnRJbnQ6Omdl dChpbnRUeSwgcG9pbnROdW0rKyksIENvbnN0YW50SW50OjpnZXQoaW50VHksIHByb2ZpbGluZ1R5 cGUpfTsKLSAjaWYgTExWTV9WRVJTSU9OX01BSk9SICogMTAgKyBMTFZNX1ZFUlNJT05fTUlOT1Ig Pj0gNTAKLSsjaWYgTExWTV9WRVJTSU9OX01BSk9SICogMTAgKyBMTFZNX1ZFUlNJT05fTUlOT1Ig Pj0gOTAKLSsgICAgICBidWlsZGVyLT5DcmVhdGVDYWxsKG1vZHVsZS0+Z2V0T3JJbnNlcnRGdW5j dGlvbigKLSsjZWxzZQotICAgICAgIGJ1aWxkZXItPkNyZWF0ZUNhbGwoY2FzdDxsbHZtOjpGdW5j dGlvbj4obW9kdWxlLT5nZXRPckluc2VydEZ1bmN0aW9uKAotKyNlbmRpZgotICAgICAgICAgICAg ICAgIl9fZ2VuX29jbF9jYWxjX3RpbWVzdGFtcCIsIFR5cGU6OmdldFZvaWRUeShtb2R1bGUtPmdl dENvbnRleHQoKSksCi0gICAgICAgICAgICAgICBJbnRlZ2VyVHlwZTo6Z2V0SW50MzJUeShtb2R1 bGUtPmdldENvbnRleHQoKSksCi0rI2lmIExMVk1fVkVSU0lPTl9NQUpPUiAqIDEwICsgTExWTV9W RVJTSU9OX01JTk9SID49IDkwCi0rICAgICAgICAgICAgICBJbnRlZ2VyVHlwZTo6Z2V0SW50MzJU eShtb2R1bGUtPmdldENvbnRleHQoKSkpLAotKyNlbHNlCi0gICAgICAgICAgICAgICBJbnRlZ2Vy VHlwZTo6Z2V0SW50MzJUeShtb2R1bGUtPmdldENvbnRleHQoKSkpKSwKLSsjZW5kaWYKLSAgICAg ICAgICAgICAgIEFycmF5UmVmPFZhbHVlKj4oQXJncykpOwotICNlbHNlCi0gICAgICAgYnVpbGRl ci0+Q3JlYXRlQ2FsbChjYXN0PGxsdm06OkZ1bmN0aW9uPihtb2R1bGUtPmdldE9ySW5zZXJ0RnVu Y3Rpb24oCi1AQCAtMTg1LDEwICsxOTMsMTggQEAgbmFtZXNwYWNlIGdiZQotICAgICBWYWx1ZSAq QXJnczJbMl0gPSB7cHJvZmlsaW5nQnVmLCBDb25zdGFudEludDo6Z2V0KGludFR5LCBwcm9maWxp bmdUeXBlKX07Ci0gCi0gI2lmIExMVk1fVkVSU0lPTl9NQUpPUiAqIDEwICsgTExWTV9WRVJTSU9O X01JTk9SID49IDUwCi0rI2lmIExMVk1fVkVSU0lPTl9NQUpPUiAqIDEwICsgTExWTV9WRVJTSU9O X01JTk9SID49IDkwCi0rICAgIGJ1aWxkZXItPkNyZWF0ZUNhbGwobW9kdWxlLT5nZXRPckluc2Vy dEZ1bmN0aW9uKAotKyNlbHNlCi0gICAgIGJ1aWxkZXItPkNyZWF0ZUNhbGwoY2FzdDxsbHZtOjpG dW5jdGlvbj4obW9kdWxlLT5nZXRPckluc2VydEZ1bmN0aW9uKAotKyNlbmRpZgotICAgICAgICAg ICAgICJfX2dlbl9vY2xfc3RvcmVfcHJvZmlsaW5nIiwgVHlwZTo6Z2V0Vm9pZFR5KG1vZHVsZS0+ Z2V0Q29udGV4dCgpKSwKLSAgICAgICAgICAgICBwdHJUeSwKLSsjaWYgTExWTV9WRVJTSU9OX01B Sk9SICogMTAgKyBMTFZNX1ZFUlNJT05fTUlOT1IgPj0gOTAKLSsgICAgICAgICAgICBJbnRlZ2Vy VHlwZTo6Z2V0SW50MzJUeShtb2R1bGUtPmdldENvbnRleHQoKSkpLAotKyNlbHNlCi0gICAgICAg ICAgICAgSW50ZWdlclR5cGU6OmdldEludDMyVHkobW9kdWxlLT5nZXRDb250ZXh0KCkpKSksCi0r I2VuZGlmCi0gICAgICAgICAgICAgQXJyYXlSZWY8VmFsdWUqPihBcmdzMikpOwotICNlbHNlCi0g ICAgIGJ1aWxkZXItPkNyZWF0ZUNhbGwoY2FzdDxsbHZtOjpGdW5jdGlvbj4obW9kdWxlLT5nZXRP ckluc2VydEZ1bmN0aW9uKAotLS0tIGEvYmFja2VuZC9zcmMvbGx2bS9sbHZtX2RldmljZV9lbnF1 ZXVlLmNwcAkyMDE3LTEwLTI0IDA2OjA0OjQ4IFVUQwotKysrIGIvYmFja2VuZC9zcmMvbGx2bS9s bHZtX2RldmljZV9lbnF1ZXVlLmNwcAotQEAgLTM5OCw4ICszOTgsMTMgQEAgbmFtZXNwYWNlIGdi ZSB7Ci0gICAgICAgICAgICAgICBzdGQ6OnZlY3RvcjxUeXBlICo+IFBhcmFtVHlzOwotICAgICAg ICAgICAgICAgZm9yIChWYWx1ZSoqIGl0ZXIgPSBhcmdzLmJlZ2luKCk7IGl0ZXIgIT0gYXJncy5l bmQoKTsgKytpdGVyKQotICAgICAgICAgICAgICAgICBQYXJhbVR5cy5wdXNoX2JhY2soKCppdGVy KS0+Z2V0VHlwZSgpKTsKLSsjaWYgTExWTV9WRVJTSU9OX01BSk9SICogMTAgKyBMTFZNX1ZFUlNJ T05fTUlOT1IgPj0gOTAKLSsgICAgICAgICAgICAgIENhbGxJbnN0KiBuZXdDSSA9IGJ1aWxkZXIu Q3JlYXRlQ2FsbChtb2QtPmdldE9ySW5zZXJ0RnVuY3Rpb24oCi0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIl9fZ2VuX2VucXVldWVfa2VybmVsX3NsbSIsIEZ1bmN0aW9uVHlwZTo6Z2V0 KGludFR5LCBQYXJhbVR5cywgZmFsc2UpKSwgYXJncyk7Ci0rI2Vsc2UKLSAgICAgICAgICAgICAg IENhbGxJbnN0KiBuZXdDSSA9IGJ1aWxkZXIuQ3JlYXRlQ2FsbChjYXN0PGxsdm06OkZ1bmN0aW9u Pihtb2QtPmdldE9ySW5zZXJ0RnVuY3Rpb24oCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIl9fZ2VuX2VucXVldWVfa2VybmVsX3NsbSIsIEZ1bmN0aW9uVHlwZTo6Z2V0KGludFR5LCBQ YXJhbVR5cywgZmFsc2UpKSksIGFyZ3MpOwotKyNlbmRpZgotICAgICAgICAgICAgICAgQ0ktPnJl cGxhY2VBbGxVc2VzV2l0aChuZXdDSSk7Ci0gICAgICAgICAgICAgICBkZWFkSW5zblNldC5pbnNl cnQoQ0kpOwotICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvYmVpZ25ldC9wYXRj aGVzL2xsdm0xMC5wYXRjaCBiL3NyY3BrZ3MvYmVpZ25ldC9wYXRjaGVzL2xsdm0xMC5wYXRjaApk ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGFhZmU0OGEyNDBkLi4wMDAwMDAwMDAwMDAK LS0tIGEvc3JjcGtncy9iZWlnbmV0L3BhdGNoZXMvbGx2bTEwLnBhdGNoCisrKyAvZGV2L251bGwK QEAgLTEsMzQ3ICswLDAgQEAKLWRpZmYgLS1naXQgQ01ha2UvRmluZExMVk0uY21ha2UgQ01ha2Uv RmluZExMVk0uY21ha2UKLWluZGV4IDBhNTllNDcuLjZlOTA5MjMgMTAwNjQ0Ci0tLS0gYS9DTWFr ZS9GaW5kTExWTS5jbWFrZQotKysrIGIvQ01ha2UvRmluZExMVk0uY21ha2UKLUBAIC0xMDQsMjgg KzEwNCwxNiBAQCBzdHJpbmcoUkVHRVggUkVQTEFDRSAiICpcbiIgIiIgTExWTV9TWVNURU1fTElC UyAke0xMVk1fU1lTVEVNX0xJQlNfT1JJR30pCi0gZW5kaWYgKExMVk1fU1lTVEVNX0xJQlNfT1JJ RykKLSBlbmRpZiAoTExWTV9WRVJTSU9OX05PRE9UIFZFUlNJT05fR1JFQVRFUiAzNCkKLSAKLSsj c29tZXRoaW5nIGhhcm1sZXNzIGJlY2F1c2Ugd2hpdGVzcGFjZSBhdCBzdGFydCBpcyBhbiBlcnJv cgotK3NldChDTEFOR19MSUJSQVJJRVMgIi1sZGwiKQotIG1hY3JvKGFkZF9vbmVfbGliIG5hbWUp Ci0gICBGSU5EX0xJQlJBUlkoQ0xBTkdfTElCCi0gICAgIE5BTUVTICR7bmFtZX0KLSAgICAgUEFU SFMgJHtMTFZNX0xJQlJBUllfRElSfSBOT19ERUZBVUxUX1BBVEgpCi0tICBzZXQoQ0xBTkdfTElC UkFSSUVTICR7Q0xBTkdfTElCUkFSSUVTfSAke0NMQU5HX0xJQn0pCi0rICBzZXQoQ0xBTkdfTElC UkFSSUVTICIke0NMQU5HX0xJQlJBUklFU30gJHtDTEFOR19MSUJ9IikKLSsgIG1lc3NhZ2UoU1RB VFVTICJjbGFuZ2xpYnMgbmFtZSAke25hbWV9IHRoaXMgJHtDTEFOR19MSUJ9IGFsbCAke0NMQU5H X0xJQlJBUklFU30gIikKLSAJdW5zZXQoQ0xBTkdfTElCIENBQ0hFKQotIGVuZG1hY3JvKCkKLSAK LSAjQXNzdW1lIGNsYW5nIGxpYiBwYXRoIHNhbWUgYXMgbGx2bSBsaWIgcGF0aAotLWFkZF9vbmVf bGliKCJjbGFuZ0NvZGVHZW4iKQotLWFkZF9vbmVfbGliKCJjbGFuZ0Zyb250ZW5kIikKLS1hZGRf b25lX2xpYigiY2xhbmdTZXJpYWxpemF0aW9uIikKLS1hZGRfb25lX2xpYigiY2xhbmdEcml2ZXIi KQotLWFkZF9vbmVfbGliKCJjbGFuZ1NlbWEiKQotLWFkZF9vbmVfbGliKCJjbGFuZ1N0YXRpY0Fu YWx5emVyRnJvbnRlbmQiKQotLWFkZF9vbmVfbGliKCJjbGFuZ1N0YXRpY0FuYWx5emVyQ2hlY2tl cnMiKQotLWFkZF9vbmVfbGliKCJjbGFuZ1N0YXRpY0FuYWx5emVyQ29yZSIpCi0tYWRkX29uZV9s aWIoImNsYW5nQW5hbHlzaXMiKQotLWFkZF9vbmVfbGliKCJjbGFuZ0VkaXQiKQotLWFkZF9vbmVf bGliKCJjbGFuZ0FTVCIpCi0tYWRkX29uZV9saWIoImNsYW5nQVNUTWF0Y2hlcnMiKQotLWFkZF9v bmVfbGliKCJjbGFuZ1BhcnNlIikKLS1hZGRfb25lX2xpYigiY2xhbmdTZW1hIikKLS1hZGRfb25l X2xpYigiY2xhbmdMZXgiKQotLWFkZF9vbmVfbGliKCJjbGFuZ0Jhc2ljIikKLSthZGRfb25lX2xp YigiY2xhbmctY3BwIikKLWRpZmYgLS1naXQgQ01ha2VMaXN0cy50eHQgQ01ha2VMaXN0cy50eHQK LWluZGV4IGMxMWFjYmIuLjA4ZjQyN2QgMTAwNjQ0Ci0tLS0gYS9DTWFrZUxpc3RzLnR4dAotKysr IGIvQ01ha2VMaXN0cy50eHQKLUBAIC03OSw3ICs3OSw3IEBAIGVsc2VpZiAoQ09NUElMRVIgU1RS RVFVQUwgIkNMQU5HIikKLSBlbHNlaWYgKENPTVBJTEVSIFNUUkVRVUFMICJJQ0MiKQotICAgc2V0 IChDTUFLRV9DX0NYWF9GTEFHUyAiJHtDTUFLRV9DX0NYWF9GTEFHU30gIC13ZDI5MjggLVdhbGwg LWZQSUMgLWZzdHJpY3QtYWxpYXNpbmcgLWZwLW1vZGVsIGZhc3QgLW1zc2U0LjEgLVdsLC1FIikK LSBlbmRpZiAoKQotLXNldCAoQ01BS0VfQ1hYX0ZMQUdTICIke0NNQUtFX0NYWF9GTEFHU30gJHtD TUFLRV9DX0NYWF9GTEFHU30gLXN0ZD1jKysweCAtV25vLWludmFsaWQtb2Zmc2V0b2YiKQotK3Nl dCAoQ01BS0VfQ1hYX0ZMQUdTICIke0NNQUtFX0NYWF9GTEFHU30gJHtDTUFLRV9DX0NYWF9GTEFH U30gLVduby1pbnZhbGlkLW9mZnNldG9mIikKLSBzZXQgKENNQUtFX0NfRkxBR1MgIiR7Q01BS0Vf Q19GTEFHU30gJHtDTUFLRV9DX0NYWF9GTEFHU30iKQotIHNldCAoQ01BS0VfQ1hYX0ZMQUdTX0RF QlVHICAgICAgICAgICItTzAgLWcgLURHQkVfREVCVUc9MSIpCi0gc2V0IChDTUFLRV9DWFhfRkxB R1NfUkVMV0lUSERFQklORk8gIi1PMiAtZyAtREdCRV9ERUJVRz0xIikKLWRpZmYgLS1naXQgYmFj a2VuZC9zcmMvYmFja2VuZC9wcm9ncmFtLmNwcCBiYWNrZW5kL3NyYy9iYWNrZW5kL3Byb2dyYW0u Y3BwCi1pbmRleCBiMzZmN2I0Li5lNjY2MDMxIDEwMDY0NAotLS0tIGEvYmFja2VuZC9zcmMvYmFj a2VuZC9wcm9ncmFtLmNwcAotKysrIGIvYmFja2VuZC9zcmMvYmFja2VuZC9wcm9ncmFtLmNwcAot QEAgLTY5NCw5ICs2OTQsOSBAQCBuYW1lc3BhY2UgZ2JlIHsKLSAjZW5kaWYKLSAgICAgICAgICAg ICAgICAgKTsKLSAKLSsgICAgbGx2bTo6Y2w6OlJlc2V0QWxsT3B0aW9uT2NjdXJyZW5jZXMoKTsK LSAgICAgY2xhbmc6OkNvbXBpbGVySW52b2NhdGlvbjo6Q3JlYXRlRnJvbUFyZ3MoKkNJLAotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmYXJnc1swXSwKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmFyZ3NbMF0gKyBh cmdzLnNpemUoKSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgY2xhbmc6OkFycmF5UmVmPGNvbnN0IGNoYXIqPihhcmdzKSwKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGlhZ3MpOwotICAgICAvLyBDcmVhdGUgdGhl IGNvbXBpbGVyIGluc3RhbmNlCi0gICAgIGNsYW5nOjpDb21waWxlckluc3RhbmNlIENsYW5nOwot QEAgLTEyNDIsOCArMTI0Miw3IEBAIEVYVEVORF9RVU9URToKLSAgICAgICAvLyBDcmVhdGUgdGhl IGNvbXBpbGVyIGludm9jYXRpb24KLSAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8Y2xhbmc6OkNvbXBp bGVySW52b2NhdGlvbj4gQ0kobmV3IGNsYW5nOjpDb21waWxlckludm9jYXRpb24pOwotICAgICAg IHJldHVybiBjbGFuZzo6Q29tcGlsZXJJbnZvY2F0aW9uOjpDcmVhdGVGcm9tQXJncygqQ0ksCi0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZh cmdzWzBdLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAmYXJnc1swXSArIGFyZ3Muc2l6ZSgpLAotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFuZzo6QXJyYXlSZWY8Y29uc3QgY2hh cio+KGFyZ3MpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBEaWFncyk7Ci0gICAgIH0KLSAjZW5kaWYKLWRpZmYgLS1naXQgYmFja2VuZC9z cmMvbGx2bS9sbHZtX2dlbl9iYWNrZW5kLmNwcCBiYWNrZW5kL3NyYy9sbHZtL2xsdm1fZ2VuX2Jh Y2tlbmQuY3BwCi1pbmRleCBjNmZjMzBkLi44MjQ0MWQ4IDEwMDY0NAotLS0tIGEvYmFja2VuZC9z cmMvbGx2bS9sbHZtX2dlbl9iYWNrZW5kLmNwcAotKysrIGIvYmFja2VuZC9zcmMvbGx2bS9sbHZt X2dlbl9iYWNrZW5kLmNwcAotQEAgLTU3NSwxMCArNTc1LDEyIEBAIG5hbWVzcGFjZSBnYmUKLSAg ICAgICAgIGhhc19lcnJvcnMoZmFsc2UpLAotICAgICAgICAgbGVnYWN5TW9kZSh0cnVlKQotICAg ICB7Ci0rI2lmIExMVk1fVkVSU0lPTl9NQUpPUiA8IDEwCi0gI2lmIExMVk1fVkVSU0lPTl9NQUpP UiAqIDEwICsgTExWTV9WRVJTSU9OX01JTk9SID49IDM3Ci0gICAgICAgaW5pdGlhbGl6ZUxvb3BJ bmZvV3JhcHBlclBhc3NQYXNzKCpQYXNzUmVnaXN0cnk6OmdldFBhc3NSZWdpc3RyeSgpKTsKLSAj ZWxzZQotICAgICAgIGluaXRpYWxpemVMb29wSW5mb1Bhc3MoKlBhc3NSZWdpc3RyeTo6Z2V0UGFz c1JlZ2lzdHJ5KCkpOwotKyNlbmRpZgotICNlbmRpZgotICAgICAgIHBhc3MgPSBQQVNTX0VNSVRf UkVHSVNURVJTOwotICAgICB9Ci1kaWZmIC0tZ2l0IGJhY2tlbmQvc3JjL2xsdm0vbGx2bV9nZW5f YmFja2VuZC5ocHAgYmFja2VuZC9zcmMvbGx2bS9sbHZtX2dlbl9iYWNrZW5kLmhwcAotaW5kZXgg YjQ3MTViMS4uOGU3NGY3YSAxMDA2NDQKLS0tLSBhL2JhY2tlbmQvc3JjL2xsdm0vbGx2bV9nZW5f YmFja2VuZC5ocHAKLSsrKyBiL2JhY2tlbmQvc3JjL2xsdm0vbGx2bV9nZW5fYmFja2VuZC5ocHAK LUBAIC0xMzAsMTAgKzEzMCwxMCBAQCBuYW1lc3BhY2UgZ2JlCi0gICBsbHZtOjpGdW5jdGlvblBh c3MgKmNyZWF0ZUdlblBhc3MoaXI6OlVuaXQgJnVuaXQpOwotIAotICAgLyohIFJlbW92ZSB0aGUg R0VQIGluc3RydWN0aW9ucyAqLwotLSAgbGx2bTo6QmFzaWNCbG9ja1Bhc3MgKmNyZWF0ZVJlbW92 ZUdFUFBhc3MoY29uc3QgaXI6OlVuaXQgJnVuaXQpOwotKyAgbGx2bTo6RnVuY3Rpb25QYXNzICpj cmVhdGVSZW1vdmVHRVBQYXNzKGNvbnN0IGlyOjpVbml0ICZ1bml0KTsKLSAKLSAgIC8qISBNZXJn ZSBsb2FkL3N0b3JlIGlmIHBvc3NpYmxlICovCi0tICBsbHZtOjpCYXNpY0Jsb2NrUGFzcyAqY3Jl YXRlTG9hZFN0b3JlT3B0aW1pemF0aW9uUGFzcygpOwotKyAgbGx2bTo6RnVuY3Rpb25QYXNzICpj cmVhdGVMb2FkU3RvcmVPcHRpbWl6YXRpb25QYXNzKCk7Ci0gCi0gICAvKiEgU2NhbGFyaXplIGFs bCB2ZWN0b3Igb3AgaW5zdHJ1Y3Rpb25zICovCi0gICBsbHZtOjpGdW5jdGlvblBhc3MqIGNyZWF0 ZVNjYWxhcml6ZVBhc3MoKTsKLUBAIC0xNDEsNyArMTQxLDcgQEAgbmFtZXNwYWNlIGdiZQotICAg bGx2bTo6TW9kdWxlUGFzcyogY3JlYXRlQmFycmllck5vZHVwUGFzcyhib29sKTsKLSAKLSAgIC8q ISBDb252ZXJ0IHRoZSBJbnRyaW5zaWMgY2FsbCB0byBnZW4gZnVuY3Rpb24gKi8KLS0gIGxsdm06 OkJhc2ljQmxvY2tQYXNzICpjcmVhdGVJbnRyaW5zaWNMb3dlcmluZ1Bhc3MoKTsKLSsgIGxsdm06 OkZ1bmN0aW9uUGFzcyAqY3JlYXRlSW50cmluc2ljTG93ZXJpbmdQYXNzKCk7Ci0gCi0gICAvKiEg UGFzc2VyIHRoZSBwcmludGYgZnVuY3Rpb24gY2FsbC4gKi8KLSAgIGxsdm06OkZ1bmN0aW9uUGFz cyogY3JlYXRlUHJpbnRmUGFyc2VyUGFzcyhpcjo6VW5pdCAmdW5pdCk7Ci1kaWZmIC0tZ2l0IGJh Y2tlbmQvc3JjL2xsdm0vbGx2bV9pbnRyaW5zaWNfbG93ZXJpbmcuY3BwIGJhY2tlbmQvc3JjL2xs dm0vbGx2bV9pbnRyaW5zaWNfbG93ZXJpbmcuY3BwCi1pbmRleCA5NGYwY2U2Li5iNTUzOWU5IDEw MDY0NAotLS0tIGEvYmFja2VuZC9zcmMvbGx2bS9sbHZtX2ludHJpbnNpY19sb3dlcmluZy5jcHAK LSsrKyBiL2JhY2tlbmQvc3JjL2xsdm0vbGx2bV9pbnRyaW5zaWNfbG93ZXJpbmcuY3BwCi1AQCAt MjksMTIgKzI5LDEyIEBACi0gdXNpbmcgbmFtZXNwYWNlIGxsdm07Ci0gCi0gbmFtZXNwYWNlIGdi ZSB7Ci0tICAgIGNsYXNzIEluc3RyaW5zaWNMb3dlcmluZyA6IHB1YmxpYyBCYXNpY0Jsb2NrUGFz cwotKyAgICBjbGFzcyBJbnN0cmluc2ljTG93ZXJpbmcgOiBwdWJsaWMgRnVuY3Rpb25QYXNzCi0g ICAgIHsKLSAgICAgcHVibGljOgotICAgICAgIHN0YXRpYyBjaGFyIElEOwotICAgICAgIEluc3Ry aW5zaWNMb3dlcmluZygpIDoKLS0gICAgICAgIEJhc2ljQmxvY2tQYXNzKElEKSB7fQotKyAgICAg ICAgRnVuY3Rpb25QYXNzKElEKSB7fQotIAotICAgICAgIHZvaWQgZ2V0QW5hbHlzaXNVc2FnZShB bmFseXNpc1VzYWdlICZBVSkgY29uc3QgewotIAotQEAgLTkzLDkgKzkzLDkgQEAgbmFtZXNwYWNl IGdiZSB7Ci0gICAgICAgICBDSS0+ZXJhc2VGcm9tUGFyZW50KCk7Ci0gICAgICAgICByZXR1cm4g TmV3Q0k7Ci0gICAgICAgfQotLSAgICAgIHZpcnR1YWwgYm9vbCBydW5PbkJhc2ljQmxvY2soQmFz aWNCbG9jayAmQkIpCi0rICAgICAgdmlydHVhbCBib29sIHJ1bk9uRnVuY3Rpb24oRnVuY3Rpb24g JkYpCi0gICAgICAgewotLSAgICAgICAgYm9vbCBjaGFuZ2VkQmxvY2sgPSBmYWxzZTsKLSsgICAg ICAgIGZvciAoQmFzaWNCbG9jayAmQkIgOiBGKSB7Ci0gICAgICAgICBNb2R1bGUgKk0gPSBCQi5n ZXRQYXJlbnQoKS0+Z2V0UGFyZW50KCk7Ci0gCi0gICAgICAgICBEYXRhTGF5b3V0IFREKE0pOwot QEAgLTE1OSwxMyArMTU5LDE0IEBAIG5hbWVzcGFjZSBnYmUgewotICAgICAgICAgICAgIH0KLSAg ICAgICAgICAgfQotICAgICAgICAgfQotLSAgICAgICAgcmV0dXJuIGNoYW5nZWRCbG9jazsKLSsg ICAgICAgIH0KLSsgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgIH0KLSAgICAgfTsKLSAKLSAg ICAgY2hhciBJbnN0cmluc2ljTG93ZXJpbmc6OklEID0gMDsKLSAKLS0gICAgQmFzaWNCbG9ja1Bh c3MgKmNyZWF0ZUludHJpbnNpY0xvd2VyaW5nUGFzcygpIHsKLSsgICAgRnVuY3Rpb25QYXNzICpj cmVhdGVJbnRyaW5zaWNMb3dlcmluZ1Bhc3MoKSB7Ci0gICAgICAgcmV0dXJuIG5ldyBJbnN0cmlu c2ljTG93ZXJpbmcoKTsKLSAgICAgfQotIH0gLy8gZW5kIG5hbWVzcGFjZQotZGlmZiAtLWdpdCBi YWNrZW5kL3NyYy9sbHZtL2xsdm1fbG9hZHN0b3JlX29wdGltaXphdGlvbi5jcHAgYmFja2VuZC9z cmMvbGx2bS9sbHZtX2xvYWRzdG9yZV9vcHRpbWl6YXRpb24uY3BwCi1pbmRleCA1YWEzOGJlLi5l MzE0MzAyIDEwMDY0NAotLS0tIGEvYmFja2VuZC9zcmMvbGx2bS9sbHZtX2xvYWRzdG9yZV9vcHRp bWl6YXRpb24uY3BwCi0rKysgYi9iYWNrZW5kL3NyYy9sbHZtL2xsdm1fbG9hZHN0b3JlX29wdGlt aXphdGlvbi5jcHAKLUBAIC0yNiwxMyArMjYsMTMgQEAKLSAKLSB1c2luZyBuYW1lc3BhY2UgbGx2 bTsKLSBuYW1lc3BhY2UgZ2JlIHsKLS0gIGNsYXNzIEdlbkxvYWRTdG9yZU9wdGltaXphdGlvbiA6 IHB1YmxpYyBCYXNpY0Jsb2NrUGFzcyB7Ci0rICBjbGFzcyBHZW5Mb2FkU3RvcmVPcHRpbWl6YXRp b24gOiBwdWJsaWMgRnVuY3Rpb25QYXNzIHsKLSAKLSAgIHB1YmxpYzoKLSAgICAgc3RhdGljIGNo YXIgSUQ7Ci0gICAgIFNjYWxhckV2b2x1dGlvbiAqU0U7Ci0gICAgIGNvbnN0IERhdGFMYXlvdXQg KlREOwotLSAgICBHZW5Mb2FkU3RvcmVPcHRpbWl6YXRpb24oKSA6IEJhc2ljQmxvY2tQYXNzKElE KSB7fQotKyAgICBHZW5Mb2FkU3RvcmVPcHRpbWl6YXRpb24oKSA6IEZ1bmN0aW9uUGFzcyhJRCkg e30KLSAKLSAgICAgdm9pZCBnZXRBbmFseXNpc1VzYWdlKEFuYWx5c2lzVXNhZ2UgJkFVKSBjb25z dCB7Ci0gI2lmIExMVk1fVkVSU0lPTl9NQUpPUiAqIDEwICsgTExWTV9WRVJTSU9OX01JTk9SID49 IDM4Ci1AQCAtNDUsNyArNDUsOSBAQCBuYW1lc3BhY2UgZ2JlIHsKLSAgICAgICBBVS5zZXRQcmVz ZXJ2ZXNDRkcoKTsKLSAgICAgfQotIAotLSAgICB2aXJ0dWFsIGJvb2wgcnVuT25CYXNpY0Jsb2Nr KEJhc2ljQmxvY2sgJkJCKSB7Ci0rICAgIHZpcnR1YWwgYm9vbCBydW5PbkZ1bmN0aW9uKEZ1bmN0 aW9uICZGKSB7Ci0rICAgICAgICBib29sIGNoYW5nZWRBbnlCbG9jayA9IGZhbHNlOwotKyAgICAg ICAgZm9yIChCYXNpY0Jsb2NrICZCQiA6IEYpIHsKLSAjaWYgTExWTV9WRVJTSU9OX01BSk9SICog MTAgKyBMTFZNX1ZFUlNJT05fTUlOT1IgPj0gMzgKLSAgICAgICBTRSA9ICZnZXRBbmFseXNpczxT Y2FsYXJFdm9sdXRpb25XcmFwcGVyUGFzcz4oKS5nZXRTRSgpOwotICNlbHNlCi1AQCAtNTksNyAr NjEsOSBAQCBuYW1lc3BhY2UgZ2JlIHsKLSAgICAgICAjZWxzZQotICAgICAgICAgVEQgPSBnZXRB bmFseXNpc0lmQXZhaWxhYmxlPERhdGFMYXlvdXQ+KCk7Ci0gICAgICAgI2VuZGlmCi0tICAgICAg cmV0dXJuIG9wdGltaXplTG9hZFN0b3JlKEJCKTsKLSsgICAgICAgICAgIGNoYW5nZWRBbnlCbG9j ayA9IG9wdGltaXplTG9hZFN0b3JlKEJCKSB8IGNoYW5nZWRBbnlCbG9jazsKLSsgICAgICAgIH0K LSsgICAgICAgIHJldHVybiBjaGFuZ2VkQW55QmxvY2s7Ci0gICAgIH0KLSAgICAgVHlwZSAgICAq Z2V0VmFsdWVUeXBlKFZhbHVlICppbnNuKTsKLSAgICAgVmFsdWUgICAqZ2V0UG9pbnRlck9wZXJh bmQoVmFsdWUgKkkpOwotQEAgLTE0OCw3ICsxNTIsNyBAQCBuYW1lc3BhY2UgZ2JlIHsKLSAgICAg ICB2YWx1ZXMucHVzaF9iYWNrKG1lcmdlZFtpXSk7Ci0gICAgIH0KLSAgICAgTG9hZEluc3QgKmxk ID0gY2FzdDxMb2FkSW5zdD4obWVyZ2VkWzBdKTsKLS0gICAgdW5zaWduZWQgYWxpZ24gPSBsZC0+ Z2V0QWxpZ25tZW50KCk7Ci0rICAgIE1heWJlQWxpZ24gYWxpZ24gPSBsZC0+Z2V0QWxpZ24oKTsK LSAgICAgdW5zaWduZWQgYWRkclNwYWNlID0gbGQtPmdldFBvaW50ZXJBZGRyZXNzU3BhY2UoKTsK LSAgICAgLy8gaW5zZXJ0IGJlZm9yZSBmaXJzdCBsb2FkCi0gICAgIEJ1aWxkZXIuU2V0SW5zZXJ0 UG9pbnQobGQpOwotQEAgLTIzMSw3ICsyMzUsNyBAQCBuYW1lc3BhY2UgZ2JlIHsKLSAKLSAgICAg dW5zaWduZWQgYWRkclNwYWNlID0gc3QtPmdldFBvaW50ZXJBZGRyZXNzU3BhY2UoKTsKLSAKLS0g ICAgdW5zaWduZWQgYWxpZ24gPSBzdC0+Z2V0QWxpZ25tZW50KCk7Ci0rICAgIE1heWJlQWxpZ24g YWxpZ24gPSBzdC0+Z2V0QWxpZ24oKTsKLSAgICAgLy8gaW5zZXJ0IGJlZm9yZSB0aGUgbGFzdCBz dG9yZQotICAgICBCdWlsZGVyLlNldEluc2VydFBvaW50KG1lcmdlZFtzaXplLTFdKTsKLSAKLUBA IC0zMjUsNyArMzI5LDcgQEAgbmFtZXNwYWNlIGdiZSB7Ci0gICAgIHJldHVybiBjaGFuZ2VkOwot ICAgfQotIAotLSAgQmFzaWNCbG9ja1Bhc3MgKmNyZWF0ZUxvYWRTdG9yZU9wdGltaXphdGlvblBh c3MoKSB7Ci0rICBGdW5jdGlvblBhc3MgKmNyZWF0ZUxvYWRTdG9yZU9wdGltaXphdGlvblBhc3Mo KSB7Ci0gICAgIHJldHVybiBuZXcgR2VuTG9hZFN0b3JlT3B0aW1pemF0aW9uKCk7Ci0gICB9Ci0g fTsKLWRpZmYgLS1naXQgYmFja2VuZC9zcmMvbGx2bS9sbHZtX3Bhc3Nlcy5jcHAgYmFja2VuZC9z cmMvbGx2bS9sbHZtX3Bhc3Nlcy5jcHAKLWluZGV4IDEwNzUyYTMuLmI4ZjIyODIgMTAwNjQ0Ci0t LS0gYS9iYWNrZW5kL3NyYy9sbHZtL2xsdm1fcGFzc2VzLmNwcAotKysrIGIvYmFja2VuZC9zcmMv bGx2bS9sbHZtX3Bhc3Nlcy5jcHAKLUBAIC0zNyw3ICszNyw3IEBACi0gI2luY2x1ZGUgInN5cy9t YXAuaHBwIgotIAotIHVzaW5nIG5hbWVzcGFjZSBsbHZtOwotLQotK3RlbXBsYXRlIGNsYXNzIGNm Zzo6VXBkYXRlPEJhc2ljQmxvY2sgKj47Ci0gbmFtZXNwYWNlIGdiZQotIHsKLSAgIGJvb2wgaXNL ZXJuZWxGdW5jdGlvbihjb25zdCBsbHZtOjpGdW5jdGlvbiAmRikgewotQEAgLTIxOSwxMyArMjE5 LDEzIEBAIG5hbWVzcGFjZSBnYmUKLSAgICAgcmV0dXJuIG9mZnNldDsKLSAgIH0KLSAKLS0gIGNs YXNzIEdlblJlbW92ZUdFUFBhc3NzIDogcHVibGljIEJhc2ljQmxvY2tQYXNzCi0rICBjbGFzcyBH ZW5SZW1vdmVHRVBQYXNzcyA6IHB1YmxpYyBGdW5jdGlvblBhc3MKLSAgIHsKLSAKLSAgICBwdWJs aWM6Ci0gICAgIHN0YXRpYyBjaGFyIElEOwotICAgICBHZW5SZW1vdmVHRVBQYXNzcyhjb25zdCBp cjo6VW5pdCAmdW5pdCkgOgotLSAgICAgIEJhc2ljQmxvY2tQYXNzKElEKSwKLSsgICAgICBGdW5j dGlvblBhc3MoSUQpLAotICAgICAgIHVuaXQodW5pdCkge30KLSAgICAgY29uc3QgaXI6OlVuaXQg JnVuaXQ7Ci0gICAgIHZvaWQgZ2V0QW5hbHlzaXNVc2FnZShBbmFseXNpc1VzYWdlICZBVSkgY29u c3QgewotQEAgLTI0MiwxNiArMjQyLDE4IEBAIG5hbWVzcGFjZSBnYmUKLSAKLSAgICAgYm9vbCBz aW1wbGlmeUdFUEluc3RydWN0aW9ucyhHZXRFbGVtZW50UHRySW5zdCogR0VQSW5zdCk7Ci0gCi0t ICAgIHZpcnR1YWwgYm9vbCBydW5PbkJhc2ljQmxvY2soQmFzaWNCbG9jayAmQkIpCi0rICAgIHZp cnR1YWwgYm9vbCBydW5PbkZ1bmN0aW9uKEZ1bmN0aW9uICZGKQotICAgICB7Ci0tICAgICAgYm9v bCBjaGFuZ2VkQmxvY2sgPSBmYWxzZTsKLSsgICAgICBib29sIGNoYW5nZWRBbnlCbG9jayA9IGZh bHNlOwotKyAgICAgICAgZm9yIChCYXNpY0Jsb2NrICZCQiA6IEYpIHsKLSAgICAgICBpcGxpc3Q8 SW5zdHJ1Y3Rpb24+OjppdGVyYXRvciBJID0gQkIuZ2V0SW5zdExpc3QoKS5iZWdpbigpOwotICAg ICAgIGZvciAoYXV0byBuZXh0SSA9IEksIEUgPSAtLUJCLmdldEluc3RMaXN0KCkuZW5kKCk7IEkg IT0gRTsgSSA9IG5leHRJKSB7Ci0gICAgICAgICBpcGxpc3Q8SW5zdHJ1Y3Rpb24+OjppdGVyYXRv ciBJID0gbmV4dEkrKzsKLSAgICAgICAgIGlmKEdldEVsZW1lbnRQdHJJbnN0KiBnZXAgPSBkeW5f Y2FzdDxHZXRFbGVtZW50UHRySW5zdD4oJipJKSkKLS0gICAgICAgICAgY2hhbmdlZEJsb2NrID0g KHNpbXBsaWZ5R0VQSW5zdHJ1Y3Rpb25zKGdlcCkgfHwgY2hhbmdlZEJsb2NrKTsKLSsgICAgICAg ICAgY2hhbmdlZEFueUJsb2NrID0gKHNpbXBsaWZ5R0VQSW5zdHJ1Y3Rpb25zKGdlcCkgfCBjaGFu Z2VkQW55QmxvY2spOwotICAgICAgIH0KLS0gICAgICByZXR1cm4gY2hhbmdlZEJsb2NrOwotKyAg ICAgICAgfQotKyAgICAgIHJldHVybiBjaGFuZ2VkQW55QmxvY2s7Ci0gICAgIH0KLSAgIH07Ci0g Ci1AQCAtMzY3LDcgKzM2OSw3IEBAIG5hbWVzcGFjZSBnYmUKLSAgICAgcmV0dXJuIHRydWU7Ci0g ICB9Ci0gCi0tICBCYXNpY0Jsb2NrUGFzcyAqY3JlYXRlUmVtb3ZlR0VQUGFzcyhjb25zdCBpcjo6 VW5pdCAmdW5pdCkgewotKyAgRnVuY3Rpb25QYXNzICpjcmVhdGVSZW1vdmVHRVBQYXNzKGNvbnN0 IGlyOjpVbml0ICZ1bml0KSB7Ci0gICAgIHJldHVybiBuZXcgR2VuUmVtb3ZlR0VQUGFzc3ModW5p dCk7Ci0gICB9Ci0gfSAvKiBuYW1lc3BhY2UgZ2JlICovCi1kaWZmIC0tZ2l0IGJhY2tlbmQvc3Jj L2xsdm0vbGx2bV9zYW1wbGVyX2ZpeC5jcHAgYmFja2VuZC9zcmMvbGx2bS9sbHZtX3NhbXBsZXJf Zml4LmNwcAotaW5kZXggMmEwOTdjOC4uODYzYmU2ZCAxMDA2NDQKLS0tLSBhL2JhY2tlbmQvc3Jj L2xsdm0vbGx2bV9zYW1wbGVyX2ZpeC5jcHAKLSsrKyBiL2JhY2tlbmQvc3JjL2xsdm0vbGx2bV9z YW1wbGVyX2ZpeC5jcHAKLUBAIC0zMywxMCArMzMsMTIgQEAgbmFtZXNwYWNlIGdiZSB7Ci0gICBj bGFzcyBTYW1wbGVyRml4IDogcHVibGljIEZ1bmN0aW9uUGFzcyB7Ci0gICBwdWJsaWM6Ci0gICAg IFNhbXBsZXJGaXgoKSA6IEZ1bmN0aW9uUGFzcyhJRCkgewotKyNpZiBMTFZNX1ZFUlNJT05fTUFK T1IgPCAxMAotICNpZiBMTFZNX1ZFUlNJT05fTUFKT1IgKiAxMCArIExMVk1fVkVSU0lPTl9NSU5P UiA+PSAzNQotICAgICAgIGluaXRpYWxpemVEb21pbmF0b3JUcmVlV3JhcHBlclBhc3NQYXNzKCpQ YXNzUmVnaXN0cnk6OmdldFBhc3NSZWdpc3RyeSgpKTsKLSAjZWxzZQotICAgICAgIGluaXRpYWxp emVEb21pbmF0b3JUcmVlUGFzcygqUGFzc1JlZ2lzdHJ5OjpnZXRQYXNzUmVnaXN0cnkoKSk7Ci0r I2VuZGlmCi0gI2VuZGlmCi0gICAgIH0KLSAKLWRpZmYgLS1naXQgYmFja2VuZC9zcmMvbGx2bS9s bHZtX3NjYWxhcml6ZS5jcHAgYmFja2VuZC9zcmMvbGx2bS9sbHZtX3NjYWxhcml6ZS5jcHAKLWlu ZGV4IGU5YTJhNjYuLmU5ZDJlZTQgMTAwNjQ0Ci0tLS0gYS9iYWNrZW5kL3NyYy9sbHZtL2xsdm1f c2NhbGFyaXplLmNwcAotKysrIGIvYmFja2VuZC9zcmMvbGx2bS9sbHZtX3NjYWxhcml6ZS5jcHAK LUBAIC05NiwxMCArOTYsMTIgQEAgbmFtZXNwYWNlIGdiZSB7Ci0gCi0gICAgIFNjYWxhcml6ZSgp IDogRnVuY3Rpb25QYXNzKElEKQotICAgICB7Ci0rI2lmIExMVk1fVkVSU0lPTl9NQUpPUiA8IDEw Ci0gI2lmIExMVk1fVkVSU0lPTl9NQUpPUiAqIDEwICsgTExWTV9WRVJTSU9OX01JTk9SID49IDM1 Ci0gICAgICAgaW5pdGlhbGl6ZURvbWluYXRvclRyZWVXcmFwcGVyUGFzc1Bhc3MoKlBhc3NSZWdp c3RyeTo6Z2V0UGFzc1JlZ2lzdHJ5KCkpOwotICNlbHNlCi0gICAgICAgaW5pdGlhbGl6ZURvbWlu YXRvclRyZWVQYXNzKCpQYXNzUmVnaXN0cnk6OmdldFBhc3NSZWdpc3RyeSgpKTsKLSsjZW5kaWYK LSAjZW5kaWYKLSAgICAgfQotIAotZGlmZiAtLWdpdCB1dGVzdHMvQ01ha2VMaXN0cy50eHQgdXRl c3RzL0NNYWtlTGlzdHMudHh0Ci1pbmRleCAzMDBkODdhLi42NDE3OWM3IDEwMDY0NAotLS0tIGEv dXRlc3RzL0NNYWtlTGlzdHMudHh0Ci0rKysgYi91dGVzdHMvQ01ha2VMaXN0cy50eHQKLUBAIC0y Niw4ICsyNiw4IEBAIGlmIChOT1QgTk9UX0JVSUxEX1NUQU5EX0FMT05FX1VURVNUKQotICAgIyBU aHJlYWRzCi0gICBGaW5kX1BhY2thZ2UoVGhyZWFkcykKLSAKLS0gIHNldCAoQ01BS0VfQ1hYX0ZM QUdTICIke0NNQUtFX0NYWF9GTEFHU30gJHtDTUFLRV9DX0NYWF9GTEFHU30gLXN0ZD1jKysweCAt V25vLWludmFsaWQtb2Zmc2V0b2YiKQotLSAgc2V0IChDTUFLRV9DX0ZMQUdTICIke0NNQUtFX0Nf RkxBR1N9ICR7Q01BS0VfQ19DWFhfRkxBR1N9IikKLSsgIHNldCAoQ01BS0VfQ1hYX0ZMQUdTICIk e0NNQUtFX0NYWF9GTEFHU30gJHtDTUFLRV9DX0NYWF9GTEFHU30gLVduby1pbnZhbGlkLW9mZnNl dG9mIC1mZmxvYXQtc3RvcmUgLWZuby1zdHJpY3QtYWxpYXNpbmciKQotKyAgc2V0IChDTUFLRV9D X0ZMQUdTICIke0NNQUtFX0NfRkxBR1N9ICR7Q01BS0VfQ19DWFhfRkxBR1N9IC1mZmxvYXQtc3Rv cmUgLWZuby1zdHJpY3QtYWxpYXNpbmciKSAjY29tcGlsZXJfe2RlZ3JlZXMscmFkaWFucyxmdW5j dGlvbl9hcmd1bWVudDJ9IHVzZSBlcXVhbGl0eSBjb21wYXJpc29uIG9mIGZsb2F0cywgY29tcGls ZXJfbG9uZ19iaXRjYXN0IHVzZXMgYWxpYXNpbmcKLSAgIHNldCAoQ01BS0VfQ1hYX0ZMQUdTX0RF QlVHICAgICAgICAgICItTzAgLWcgLURHQkVfREVCVUc9MSIpCi0gICBzZXQgKENNQUtFX0NYWF9G TEFHU19SRUxXSVRIREVCSU5GTyAiLU8yIC1nIC1ER0JFX0RFQlVHPTEiKQotICAgc2V0IChDTUFL RV9DWFhfRkxBR1NfTUlOU0laRVJFTCAgICAgIi1PcyAtRE5ERUJVRyAtREdCRV9ERUJVRz0wIikK ZGlmZiAtLWdpdCBhL3NyY3BrZ3MvYmVpZ25ldC9wYXRjaGVzL2xsdm0xMS5wYXRjaCBiL3NyY3Br Z3MvYmVpZ25ldC9wYXRjaGVzL2xsdm0xMS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMmMzYTQyNzg5NDNjLi4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9iZWlnbmV0L3Bh dGNoZXMvbGx2bTExLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsOTM3ICswLDAgQEAKLVNvdXJj ZTogU25la3Ryb24KLQotVGhlcmUgd2VyZSBhIGZldyBjaGFuZ2VzIHJlcXVpcmVkIGZvciBMTFZN IDExOgotKiBsbHZtOjpTdHJpbmdSZWYgcmVxdWlyZXMgLnN0cigpLCBpbXBsaWNpdCBjb252ZXJz aW9uIHdhcyByZW1vdmVkCi0qIGxsdm06OkNhbGxTaXRlIHdhcyByZW1vdmVkLCBidXQgdGhlIHJl cXVpcmVkIG1ldGhvZHMgYXJlIGF2YWlsYWJsZSBvbiBsbHZtOjpDYWxsSW5zdAotKiBWZWN0b3JU eUlEIHdhcyBzcGxpdCBpbnRvIEZpeGVkVmVjdG9yVHlJRCBhbmQgU2NhbGFibGVWZWN0b3JUeUlE LCBGaXhlZFZlY3RvclR5SUQgd2FzIHVzZWQKLSogQ2FsbEluc3Q6OmdldENhbGxlZFZhbHVlKCkg d2FzIHJlbmFtZWQgdG8gQ2FsbEluc3Q6OmdldENhbGxlZE9wZXJhbmQoKQotKiBJbXBsaWNpdCBj b252ZXJzaW9uIGZyb20gTWF5YmVBbGlnbiB0byBBbGlnbiB3YXMgcmVtb3ZlZCwgc28gTWF5YmVB bGlnbjo6dmFsdWVPck9uZSB3YXMgdXNlZCBpbnN0ZWFkLgotCi0tLS0gYS9iYWNrZW5kL3NyYy9s bHZtL1N0cmlwQXR0cmlidXRlcy5jcHAJMjAyMC0xMS0wOSAxNjo0ODoyMC44MjM4NjYxMTIgKzAx MDAKLSsrKyBiL2JhY2tlbmQvc3JjL2xsdm0vU3RyaXBBdHRyaWJ1dGVzLmNwcAkyMDIwLTExLTA5 IDE5OjA0OjE5LjY0MTg5NzE0MSArMDEwMAotQEAgLTEwNyw5ICsxMDcsOCBAQAotICAgICAgICBC QiAhPSBFOyArK0JCKSB7Ci0gICAgIGZvciAoQmFzaWNCbG9jazo6aXRlcmF0b3IgSW5zdCA9IEJC LT5iZWdpbigpLCBFID0gQkItPmVuZCgpOwotICAgICAgICAgIEluc3QgIT0gRTsgKytJbnN0KSB7 Ci0tICAgICAgQ2FsbFNpdGUgQ2FsbCgmKkluc3QpOwotLSAgICAgIGlmIChDYWxsKQotLSAgICAg ICAgQ2FsbC5zZXRDYWxsaW5nQ29udihDYWxsaW5nQ29udjo6Qyk7Ci0rICAgICAgaWYgKENhbGxJ bnN0KiBjYWxsSW5zdCA9IGR5bl9jYXN0PENhbGxJbnN0PigmKkluc3QpKQotKyAgICAgICAgY2Fs bEluc3QtPnNldENhbGxpbmdDb252KENhbGxpbmdDb252OjpDKTsKLSAgICAgfQotICAgfQotCi0t LS0gYS9iYWNrZW5kL3NyYy9sbHZtL2xsdm1fYml0Y29kZV9saW5rLmNwcAkyMDIwLTExLTA5IDE2 OjQ4OjIwLjgyMzg2NjExMiArMDEwMAotKysrIGIvYmFja2VuZC9zcmMvbGx2bS9sbHZtX2JpdGNv ZGVfbGluay5jcHAJMjAyMC0xMS0wOSAxNzowNDowOS42MzM3NTM0MjggKzAxMDAKLUBAIC05OCw3 ICs5OCw3IEBACi0gICAgICAgICBpZiAoY2FsbEZ1bmMgJiYgY2FsbEZ1bmMtPmdldEludHJpbnNp Y0lEKCkgIT0gMCkKLSAgICAgICAgICAgY29udGludWU7Ci0KLS0gICAgICAgIHN0ZDo6c3RyaW5n IGZuTmFtZSA9IGNhbGwtPmdldENhbGxlZFZhbHVlKCktPnN0cmlwUG9pbnRlckNhc3RzKCktPmdl dE5hbWUoKTsKLSsgICAgICAgIHN0ZDo6c3RyaW5nIGZuTmFtZSA9IGNhbGwtPmdldENhbGxlZE9w ZXJhbmQoKS0+c3RyaXBQb2ludGVyQ2FzdHMoKS0+Z2V0TmFtZSgpLnN0cigpOwotCi0gICAgICAg ICBpZiAoIU1GUy5pbnNlcnQoZm5OYW1lKS5zZWNvbmQpIHsKLSAgICAgICAgICAgY29udGludWU7 Ci0tLS0gYS9iYWNrZW5kL3NyYy9sbHZtL2xsdm1fZGV2aWNlX2VucXVldWUuY3BwCTIwMjAtMTEt MDkgMTY6NDg6MjAuODIzODY2MTEyICswMTAwCi0rKysgYi9iYWNrZW5kL3NyYy9sbHZtL2xsdm1f ZGV2aWNlX2VucXVldWUuY3BwCTIwMjAtMTEtMDkgMTk6MDE6NDkuMjAxOTE1MDA4ICswMTAwCi1A QCAtNDUsNyArNDUsNyBAQAotICAgICAgIHJldHVybiBOVUxMOwotCi0gICAgIC8qIFRoaXMgaXMg YSBmYWtlLCB0byBjaGVjayB0aGUgZnVuY3Rpb24gYml0Y2FzdCBpcyBmb3IgYmxvY2sgb3Igbm90 ICovCi0tICAgIHN0ZDo6c3RyaW5nIGZuTmFtZSA9IEZuLT5nZXROYW1lKCk7Ci0rICAgIHN0ZDo6 c3RyaW5nIGZuTmFtZSA9IEZuLT5nZXROYW1lKCkuc3RyKCk7Ci0gICAgIGlmKGZuTmFtZS5maW5k KCJfaW52b2tlIikgPT0gc3RkOjpzdHJpbmc6Om5wb3MpCi0gICAgICAgcmV0dXJuIE5VTEw7Ci0K LUBAIC0xMTksMTggKzExOSwxOCBAQAotICAgICAgIFBhcmFtVHlzLnB1c2hfYmFjayh0eSk7Ci0g ICAgIH0KLSAgICAgRnVuY3Rpb25UeXBlKiBOZXdGVCA9IEZ1bmN0aW9uVHlwZTo6Z2V0KEZuLT5n ZXRSZXR1cm5UeXBlKCksIFBhcmFtVHlzLCBmYWxzZSk7Ci0tICAgIEZ1bmN0aW9uKiBOZXdGbiA9 IEZ1bmN0aW9uOjpDcmVhdGUoTmV3RlQsIEZ1bmN0aW9uOjpFeHRlcm5hbExpbmthZ2UsIEZuLT5n ZXROYW1lKCkpOwotKyAgICBGdW5jdGlvbiogTmV3Rm4gPSBGdW5jdGlvbjo6Q3JlYXRlKE5ld0ZU LCBGdW5jdGlvbjo6RXh0ZXJuYWxMaW5rYWdlLCBGbi0+Z2V0TmFtZSgpLnN0cigpKTsKLSAgICAg U21hbGxWZWN0b3I8UmV0dXJuSW5zdCosIDg+IFJldHVybnM7Ci0KLSAgICAgRnVuY3Rpb246OmFy Z19pdGVyYXRvciBOZXdGbkFyZ0l0ID0gTmV3Rm4tPmFyZ19iZWdpbigpOwotICAgICBmb3IgKEZ1 bmN0aW9uOjphcmdfaXRlcmF0b3IgSSA9IEZuLT5hcmdfYmVnaW4oKSwgRSA9IEZuLT5hcmdfZW5k KCk7IEkgIT0gRTsgKytJKSB7Ci0tICAgICAgc3RkOjpzdHJpbmcgQXJnTmFtZSA9IEktPmdldE5h bWUoKTsKLSsgICAgICBzdGQ6OnN0cmluZyBBcmdOYW1lID0gSS0+Z2V0TmFtZSgpLnN0cigpOwot ICAgICAgIE5ld0ZuQXJnSXQtPnNldE5hbWUoQXJnTmFtZSk7Ci0gICAgICAgVk1hcFsmKkldID0g JigqTmV3Rm5BcmdJdCsrKTsKLSAgICAgfQotICAgICBDbG9uZUZ1bmN0aW9uSW50byhOZXdGbiwg Rm4sIFZNYXAsIC8qTW9kdWxlTGV2ZWxDaGFuZ2VzPSovdHJ1ZSwgUmV0dXJucyk7Ci0KLS0gICAg Rm4tPnNldE5hbWUoIl9fZCIgKyBGbi0+Z2V0TmFtZSgpKTsKLSsgICAgRm4tPnNldE5hbWUoIl9f ZCIgKyBGbi0+Z2V0TmFtZSgpLnN0cigpKTsKLSAgICAgbW9kLT5nZXRGdW5jdGlvbkxpc3QoKS5w dXNoX2JhY2soTmV3Rm4pOwotICAgICAvL21vZC0+Z2V0T3JJbnNlcnRGdW5jdGlvbihOZXdGbi0+ Z2V0TmFtZSgpLCBOZXdGbi0+Z2V0RnVuY3Rpb25UeXBlKCksCi0gICAgIC8vICAgICAgICAgICAg ICAgICAgICAgICAgIE5ld0ZuLT5nZXRBdHRyaWJ1dGVzKCkpOwotQEAgLTE0Nyw3ICsxNDcsNyBA QAotICAgICAgIGFyZ1R5cGVOYW1lcy5wdXNoX2JhY2sobGx2bTo6TURTdHJpbmc6OmdldChDb250 ZXh0LCAiY2hhcioiKSk7Ci0gICAgICAgYXJnQmFzZVR5cGVOYW1lcy5wdXNoX2JhY2sobGx2bTo6 TURTdHJpbmc6OmdldChDb250ZXh0LCAiY2hhcioiKSk7Ci0gICAgICAgYXJnVHlwZVF1YWxzLnB1 c2hfYmFjayhsbHZtOjpNRFN0cmluZzo6Z2V0KENvbnRleHQsICIiKSk7Ci0tICAgICAgYXJnTmFt ZXMucHVzaF9iYWNrKGxsdm06Ok1EU3RyaW5nOjpnZXQoQ29udGV4dCwgSS0+Z2V0TmFtZSgpKSk7 Ci0rICAgICAgYXJnTmFtZXMucHVzaF9iYWNrKGxsdm06Ok1EU3RyaW5nOjpnZXQoQ29udGV4dCwg SS0+Z2V0TmFtZSgpLnN0cigpKSk7Ci0gICAgIH0KLQotICAgICAvL0lmIHJ1biB0byBoZXJlLCBs bHZtIHZlcnNpb24gYWx3YXlzID4gMy45LCBhZGQgdGhlIHZlcnNpb24gY2hlY2sganVzdCBmb3Ig YnVpbGQuCi1AQCAtMTk4LDcgKzE5OCw3IEBACi0gICAgICAgICAgICAqIGludm9rZSBwb2ludGVy IHRvIHN0b3JlIHRoZSBpbmRleCBpbiB0aGUgdW5pdCdzIGJsb2NrIGZ1bmN0aW9ucyBpbmRleC4q LwotICAgICAgICAgICBGdW5jdGlvbiAqRm4gPSBkeW5fY2FzdDxGdW5jdGlvbj4oYnQtPmdldE9w ZXJhbmQoMCkpOwotCi0tICAgICAgICAgIHN0ZDo6c3RyaW5nIGZuTmFtZSA9IEZuLT5nZXROYW1l KCk7Ci0rICAgICAgICAgIHN0ZDo6c3RyaW5nIGZuTmFtZSA9IEZuLT5nZXROYW1lKCkuc3RyKCk7 Ci0gICAgICAgICAgIGludCBpbmRleCA9IC0xOwotICAgICAgICAgICBmb3Ioc2l6ZV90IGk9MDsg aTx1bml0LmJsb2NrRnVuY3Muc2l6ZSgpOyBpKyspIHsKLSAgICAgICAgICAgICBpZih1bml0LmJs b2NrRnVuY3NbaV0gPT0gZm5OYW1lKSB7Ci1AQCAtMjQxLDcgKzI0MSw3IEBACi0gICAgICAgICAg ICAgLy91bm5hbWVkIGNhbGwgZnVuY3Rpb24sIHBhcnNlIHRoZSB1c2UgdG8gZmluZCB0aGUgZGVm aW5lIG9mIGNhbGxlZCBmdW5jdGlvbgotICAgICAgICAgICAgIFNtYWxsVmVjdG9yPFZhbHVlKiwg MTY+IGFyZ3MoQ0ktPm9wX2JlZ2luKCksIENJLT5vcF9lbmQoKS0xKTsKLQotLSAgICAgICAgICAg IFZhbHVlICp2ID0gQ0ktPmdldENhbGxlZFZhbHVlKCk7Ci0rICAgICAgICAgICAgVmFsdWUgKnYg PSBDSS0+Z2V0Q2FsbGVkT3BlcmFuZCgpOwotICAgICAgICAgICAgIEJpdENhc3RJbnN0KiBidCA9 IGR5bl9jYXN0PEJpdENhc3RJbnN0Pih2KTsKLSAgICAgICAgICAgICBpZihidCA9PSBOVUxMKQot ICAgICAgICAgICAgICAgY29udGludWU7Ci1AQCAtMzE2LDcgKzMxNiw3IEBACi0gICAgICAgICAg ICAgICAgICAgQ29uc3RhbnRFeHByICpleHByID0gZHluX2Nhc3Q8Q29uc3RhbnRFeHByPihjLT5n ZXRPcGVyYW5kKDMpKTsKLSAgICAgICAgICAgICAgICAgICBCaXRDYXN0SW5zdCAqYnQgPSBkeW5f Y2FzdDxCaXRDYXN0SW5zdD4oZXhwci0+Z2V0QXNJbnN0cnVjdGlvbigpKTsKLSAgICAgICAgICAg ICAgICAgICBGdW5jdGlvbiogZiA9IGR5bl9jYXN0PEZ1bmN0aW9uPihidC0+Z2V0T3BlcmFuZCgw KSk7Ci0tICAgICAgICAgICAgICAgICAgYmxvY2tzW3ZdID0gZi0+Z2V0TmFtZSgpOwotKyAgICAg ICAgICAgICAgICAgIGJsb2Nrc1t2XSA9IGYtPmdldE5hbWUoKS5zdHIoKTsKLSAgICAgICAgICAg ICAgICAgfQotICAgICAgICAgICAgICAgfQotCi1AQCAtMzMyLDcgKzMzMiw3IEBACi0gICAgICAg ICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgLy9oYW5kbGUgZW5xdWV1ZV9rZXJuZWwgZnVuY3Rp b24gY2FsbAotICAgICAgICAgICAgIEZ1bmN0aW9uICpmbiA9IENJLT5nZXRDYWxsZWRGdW5jdGlv bigpOwotLSAgICAgICAgICAgIGlmIChmbi0+Z2V0TmFtZSgpLmZpbmQoImVucXVldWVfa2VybmVs IikgPT0gc3RkOjpzdHJpbmc6Om5wb3MpCi0rICAgICAgICAgICAgaWYgKGZuLT5nZXROYW1lKCku c3RyKCkuZmluZCgiZW5xdWV1ZV9rZXJuZWwiKSA9PSBzdGQ6OnN0cmluZzo6bnBvcykKLSAgICAg ICAgICAgICAgIGNvbnRpbnVlOwotCi0gICAgICAgICAgICAgLy9ibG9jayBwYXJhbWV0ZXIncyBp bmRleCwgMyBvciA2Ci1AQCAtMzYxLDcgKzM2MSw3IEBACi0gICAgICAgICAgICAgICAgICAgQ29u c3RhbnRFeHByICpleHByID0gZHluX2Nhc3Q8Q29uc3RhbnRFeHByPihjLT5nZXRPcGVyYW5kKDMp KTsKLSAgICAgICAgICAgICAgICAgICBCaXRDYXN0SW5zdCAqYnQgPSBkeW5fY2FzdDxCaXRDYXN0 SW5zdD4oZXhwci0+Z2V0QXNJbnN0cnVjdGlvbigpKTsKLSAgICAgICAgICAgICAgICAgICBGdW5j dGlvbiogZiA9IGR5bl9jYXN0PEZ1bmN0aW9uPihidC0+Z2V0T3BlcmFuZCgwKSk7Ci0tICAgICAg ICAgICAgICAgICAgYmxvY2tzW3ZdID0gZi0+Z2V0TmFtZSgpOwotKyAgICAgICAgICAgICAgICAg IGJsb2Nrc1t2XSA9IGYtPmdldE5hbWUoKS5zdHIoKTsKLSAgICAgICAgICAgICAgICAgfQotICAg ICAgICAgICAgICAgfQotICAgICAgICAgICAgIH0gZWxzZSBpZihpc2E8QWxsb2NhSW5zdD4oYmxv Y2spKSB7Ci0tLS0gYS9iYWNrZW5kL3NyYy9sbHZtL2xsdm1fZ2VuX2JhY2tlbmQuY3BwCTIwMjAt MTEtMDkgMTY6NDg6MjAuODIzODY2MTEyICswMTAwCi0rKysgYi9iYWNrZW5kL3NyYy9sbHZtL2xs dm1fZ2VuX2JhY2tlbmQuY3BwCTIwMjAtMTEtMDkgMTg6MzM6NTAuOTE5MTE0MzI3ICswMTAwCi1A QCAtMzc2LDcgKzM3Niw3IEBACi0gICAgICAgICAgIEdCRV9BU1NFUlQoaW5kZXggPT0gMCk7Ci0g ICAgICAgICAgIHJldHVybiB0aGlzLT5fbmV3U2NhbGFyKHZhbHVlLCBrZXksIHR5cGUsIGluZGV4 LCB1bmlmb3JtKTsKLSAgICAgICAgICAgYnJlYWs7Ci0tICAgICAgICBjYXNlIFR5cGU6OlZlY3Rv clR5SUQ6Ci0rICAgICAgICBjYXNlIFR5cGU6OkZpeGVkVmVjdG9yVHlJRDoKLSAgICAgICAgIHsK LSAgICAgICAgICAgYXV0byB2ZWN0b3JUeXBlID0gY2FzdDxWZWN0b3JUeXBlPih0eXBlKTsKLSAg ICAgICAgICAgYXV0byBlbGVtZW50VHlwZSA9IHZlY3RvclR5cGUtPmdldEVsZW1lbnRUeXBlKCk7 Ci1AQCAtNzQzLDIwICs3NDMsMjAgQEAKLSAjdW5kZWYgREVDTF9WSVNJVF9GTgotCi0gICAgIC8v IEVtaXQgcm91bmRpbmcgaW5zdHJ1Y3Rpb25zIGZyb20gZ2VuIG5hdGl2ZSBmdW5jdGlvbgotLSAg ICB2b2lkIGVtaXRSb3VuZGluZ0NhbGxJbnN0KENhbGxJbnN0ICZJLCBDYWxsU2l0ZSAmQ1MsIGly OjpPcGNvZGUgb3Bjb2RlKTsKLSsgICAgdm9pZCBlbWl0Um91bmRpbmdDYWxsSW5zdChDYWxsSW5z dCAmSSwgaXI6Ok9wY29kZSBvcGNvZGUpOwotICAgICAvLyBFbWl0IHVuYXJ5IGluc3RydWN0aW9u cyBmcm9tIGdlbiBuYXRpdmUgZnVuY3Rpb24KLS0gICAgdm9pZCBlbWl0VW5hcnlDYWxsSW5zdChD YWxsSW5zdCAmSSwgQ2FsbFNpdGUgJkNTLCBpcjo6T3Bjb2RlIG9wY29kZSwgaXI6OlR5cGUgPSBp cjo6VFlQRV9GTE9BVCk7Ci0rICAgIHZvaWQgZW1pdFVuYXJ5Q2FsbEluc3QoQ2FsbEluc3QgJkks IGlyOjpPcGNvZGUgb3Bjb2RlLCBpcjo6VHlwZSA9IGlyOjpUWVBFX0ZMT0FUKTsKLSAgICAgLy8g RW1pdCB1bmFyeSBpbnN0cnVjdGlvbnMgZnJvbSBnZW4gbmF0aXZlIGZ1bmN0aW9uCi0tICAgIHZv aWQgZW1pdEF0b21pY0luc3QoQ2FsbEluc3QgJkksIENhbGxTaXRlICZDUywgaXI6OkF0b21pY09w cyBvcGNvZGUpOwotKyAgICB2b2lkIGVtaXRBdG9taWNJbnN0KENhbGxJbnN0ICZJLCBpcjo6QXRv bWljT3BzIG9wY29kZSk7Ci0gICAgIC8vIEVtaXQgd29ya2dyb3VwIGluc3RydWN0aW9ucwotLSAg ICB2b2lkIGVtaXRXb3JrR3JvdXBJbnN0KENhbGxJbnN0ICZJLCBDYWxsU2l0ZSAmQ1MsIGlyOjpX b3JrR3JvdXBPcHMgb3Bjb2RlKTsKLSsgICAgdm9pZCBlbWl0V29ya0dyb3VwSW5zdChDYWxsSW5z dCAmSSwgaXI6OldvcmtHcm91cE9wcyBvcGNvZGUpOwotICAgICAvLyBFbWl0IHN1Ymdyb3VwIGlu c3RydWN0aW9ucwotLSAgICB2b2lkIGVtaXRTdWJHcm91cEluc3QoQ2FsbEluc3QgJkksIENhbGxT aXRlICZDUywgaXI6OldvcmtHcm91cE9wcyBvcGNvZGUpOwotKyAgICB2b2lkIGVtaXRTdWJHcm91 cEluc3QoQ2FsbEluc3QgJkksIGlyOjpXb3JrR3JvdXBPcHMgb3Bjb2RlKTsKLSAgICAgLy8gRW1p dCBzdWJncm91cCBpbnN0cnVjdGlvbnMKLS0gICAgdm9pZCBlbWl0QmxvY2tSZWFkV3JpdGVNZW1J bnN0KENhbGxJbnN0ICZJLCBDYWxsU2l0ZSAmQ1MsIGJvb2wgaXNXcml0ZSwgdWludDhfdCB2ZWNf c2l6ZSwgaXI6OlR5cGUgPSBpcjo6VFlQRV9VMzIpOwotLSAgICB2b2lkIGVtaXRCbG9ja1JlYWRX cml0ZUltYWdlSW5zdChDYWxsSW5zdCAmSSwgQ2FsbFNpdGUgJkNTLCBib29sIGlzV3JpdGUsIHVp bnQ4X3QgdmVjX3NpemUsIGlyOjpUeXBlID0gaXI6OlRZUEVfVTMyKTsKLSsgICAgdm9pZCBlbWl0 QmxvY2tSZWFkV3JpdGVNZW1JbnN0KENhbGxJbnN0ICZJLCBib29sIGlzV3JpdGUsIHVpbnQ4X3Qg dmVjX3NpemUsIGlyOjpUeXBlID0gaXI6OlRZUEVfVTMyKTsKLSsgICAgdm9pZCBlbWl0QmxvY2tS ZWFkV3JpdGVJbWFnZUluc3QoQ2FsbEluc3QgJkksIGJvb2wgaXNXcml0ZSwgdWludDhfdCB2ZWNf c2l6ZSwgaXI6OlR5cGUgPSBpcjo6VFlQRV9VMzIpOwotCi0tICAgIHVpbnQ4X3QgYXBwZW5kU2Ft cGxlcihDYWxsU2l0ZTo6YXJnX2l0ZXJhdG9yIEFJKTsKLSsgICAgdWludDhfdCBhcHBlbmRTYW1w bGVyKFVzZXI6Om9wX2l0ZXJhdG9yIEFJKTsKLSAgICAgdWludDhfdCBnZXRJbWFnZUlEKENhbGxJ bnN0ICZJKTsKLQotICAgICAvLyBUaGVzZSBpbnN0cnVjdGlvbnMgYXJlIG5vdCBzdXBwb3J0ZWQg YXQgYWxsCi1AQCAtMTMyMCwxMyArMTMyMCwxMyBAQAotICNlbmRpZgotCi0gICAgICAgaWYodHlw ZU5hbWVOb2RlKSB7Ci0tICAgICAgICBsbHZtSW5mby50eXBlTmFtZT0gKGNhc3Q8TURTdHJpbmc+ KHR5cGVOYW1lTm9kZS0+Z2V0T3BlcmFuZChvcElEKSkpLT5nZXRTdHJpbmcoKTsKLSsgICAgICAg IGxsdm1JbmZvLnR5cGVOYW1lPSAoY2FzdDxNRFN0cmluZz4odHlwZU5hbWVOb2RlLT5nZXRPcGVy YW5kKG9wSUQpKSktPmdldFN0cmluZygpLnN0cigpOwotICAgICAgIH0KLSAgICAgICBpZih0eXBl QmFzZU5hbWVOb2RlKSB7Ci0tICAgICAgICBsbHZtSW5mby50eXBlQmFzZU5hbWU9IChjYXN0PE1E U3RyaW5nPih0eXBlQmFzZU5hbWVOb2RlLT5nZXRPcGVyYW5kKG9wSUQpKSktPmdldFN0cmluZygp OwotKyAgICAgICAgbGx2bUluZm8udHlwZUJhc2VOYW1lPSAoY2FzdDxNRFN0cmluZz4odHlwZUJh c2VOYW1lTm9kZS0+Z2V0T3BlcmFuZChvcElEKSkpLT5nZXRTdHJpbmcoKS5zdHIoKTsKLSAgICAg ICB9Ci0tICAgICAgbGx2bUluZm8udHlwZU5hbWU9IChjYXN0PE1EU3RyaW5nPih0eXBlTmFtZU5v ZGUtPmdldE9wZXJhbmQob3BJRCkpKS0+Z2V0U3RyaW5nKCk7Ci0tICAgICAgbGx2bUluZm8udHlw ZVF1YWwgPSAoY2FzdDxNRFN0cmluZz4odHlwZVF1YWxOb2RlLT5nZXRPcGVyYW5kKG9wSUQpKSkt PmdldFN0cmluZygpOwotKyAgICAgIGxsdm1JbmZvLnR5cGVOYW1lPSAoY2FzdDxNRFN0cmluZz4o dHlwZU5hbWVOb2RlLT5nZXRPcGVyYW5kKG9wSUQpKSktPmdldFN0cmluZygpLnN0cigpOwotKyAg ICAgIGxsdm1JbmZvLnR5cGVRdWFsID0gKGNhc3Q8TURTdHJpbmc+KHR5cGVRdWFsTm9kZS0+Z2V0 T3BlcmFuZChvcElEKSkpLT5nZXRTdHJpbmcoKS5zdHIoKTsKLSAgICAgICBib29sIGlzSW1hZ2Ug PSBsbHZtSW5mby5pc0ltYWdlVHlwZSgpOwotICAgICAgIGJvb2wgaXNQaXBlID0gbGx2bUluZm8u aXNQaXBlVHlwZSgpOwotICAgICAgIGlmIChJLT5nZXRUeXBlKCktPmlzUG9pbnRlclR5KCkgfHwg aXNJbWFnZSB8fCBpc1BpcGUpIHsKLUBAIC0xNTMxLDcgKzE1MzEsNyBAQAotICAgICAgICAgICAg IEVsdFR5ID0gZ2V0RWx0VHlwZShFbHRUeSwgVHlwZUluZGV4KTsKLSAgICAgICAgIH0KLQotLSAg ICAgICAgaXI6OkNvbnN0YW50IGNjID0gdW5pdC5nZXRDb25zdGFudFNldCgpLmdldENvbnN0YW50 KHBvaW50ZXItPmdldE5hbWUoKSk7Ci0rICAgICAgICBpcjo6Q29uc3RhbnQgY2MgPSB1bml0Lmdl dENvbnN0YW50U2V0KCkuZ2V0Q29uc3RhbnQocG9pbnRlci0+Z2V0TmFtZSgpLnN0cigpKTsKLSAg ICAgICAgIHVuc2lnbmVkIGludCBkZWZPZmZzZXQgPSBjYy5nZXRPZmZzZXQoKTsKLSAgICAgICAg IHJlbG9jcy5wdXNoX2JhY2soaXI6OlJlbG9jRW50cnkob2Zmc2V0LCBkZWZPZmZzZXQgKyBjb25z dGFudE9mZnNldCkpOwotCi1AQCAtMTU0Niw3ICsxNTQ2LDcgQEAKLSAgICAgICByZXR1cm47Ci0g ICAgIH0KLSAgICAgaWYgKGlzYTxHbG9iYWxWYXJpYWJsZT4oYykpIHsKLS0gICAgICBpcjo6Q29u c3RhbnQgY2MgPSB1bml0LmdldENvbnN0YW50U2V0KCkuZ2V0Q29uc3RhbnQoYy0+Z2V0TmFtZSgp KTsKLSsgICAgICBpcjo6Q29uc3RhbnQgY2MgPSB1bml0LmdldENvbnN0YW50U2V0KCkuZ2V0Q29u c3RhbnQoYy0+Z2V0TmFtZSgpLnN0cigpKTsKLSAgICAgICB1bnNpZ25lZCBpbnQgZGVmT2Zmc2V0 ID0gY2MuZ2V0T2Zmc2V0KCk7Ci0KLSAgICAgICByZWxvY3MucHVzaF9iYWNrKGlyOjpSZWxvY0Vu dHJ5KG9mZnNldCwgZGVmT2Zmc2V0KSk7Ci1AQCAtMTYwOSw3ICsxNjA5LDcgQEAKLSAgICAgICAg ICAgfQotICAgICAgICAgICBicmVhazsKLSAgICAgICAgIH0KLS0gICAgICBjYXNlIFR5cGU6OlR5 cGVJRDo6VmVjdG9yVHlJRDoKLSsgICAgICBjYXNlIFR5cGU6OlR5cGVJRDo6Rml4ZWRWZWN0b3JU eUlEOgotICAgICAgICAgewotICAgICAgICAgICBjb25zdCBDb25zdGFudERhdGFTZXF1ZW50aWFs ICpjZHMgPSBkeW5fY2FzdDxDb25zdGFudERhdGFTZXF1ZW50aWFsPihjKTsKLSAgICAgICAgICAg Y29uc3QgVmVjdG9yVHlwZSAqdmVjVHkgPSBjYXN0PFZlY3RvclR5cGU+KHR5cGUpOwotQEAgLTE5 MzYsNyArMTkzNiw3IEBACi0gICAgICAgY2FzZSBUeXBlOjpQb2ludGVyVHlJRDoKLSAgICAgICAg IHJlZ1RyYW5zbGF0b3IubmV3U2NhbGFyKHZhbHVlLCBrZXksIDAsIHVuaWZvcm0pOwotICAgICAg ICAgYnJlYWs7Ci0tICAgICAgY2FzZSBUeXBlOjpWZWN0b3JUeUlEOgotKyAgICAgIGNhc2UgVHlw ZTo6Rml4ZWRWZWN0b3JUeUlEOgotICAgICAgIHsKLSAgICAgICAgIGF1dG8gdmVjdG9yVHlwZSA9 IGNhc3Q8VmVjdG9yVHlwZT4odHlwZSk7Ci0gICAgICAgICBjb25zdCB1aW50MzJfdCBlbGVtTnVt ID0gdmVjdG9yVHlwZS0+Z2V0TnVtRWxlbWVudHMoKTsKLUBAIC0yMzk1LDcgKzIzOTUsNyBAQAot ICNlbmRpZgotICAgICAgICAgfQotICAgICAgICAgaWYodHlwZU5hbWVOb2RlKSB7Ci0tICAgICAg ICAgIGxsdm1JbmZvLnR5cGVOYW1lID0gKGNhc3Q8TURTdHJpbmc+KHR5cGVOYW1lTm9kZS0+Z2V0 T3BlcmFuZChvcElEKSkpLT5nZXRTdHJpbmcoKTsKLSsgICAgICAgICAgbGx2bUluZm8udHlwZU5h bWUgPSAoY2FzdDxNRFN0cmluZz4odHlwZU5hbWVOb2RlLT5nZXRPcGVyYW5kKG9wSUQpKSktPmdl dFN0cmluZygpLnN0cigpOwotICAgICAgICAgICAvL0xMVk0gMy45IGltYWdlJ3MgdHlwZSBuYW1l IGluY2x1ZGUgYWNjZXNzIHF1YWwsIGRvbid0IG1hdGNoIE9wZW5DTCBzcGVjLCBlcmFzZSB0aGVt LgotICAgICAgICAgICBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4gZmlsdGVycyA9IHsiX19yZWFk X29ubHkgIiwgIl9fd3JpdGVfb25seSAifTsKLSAgICAgICAgICAgZm9yICh1aW50MzJfdCBpID0g MDsgaSA8IGZpbHRlcnMuc2l6ZSgpOyBpKyspIHsKLUBAIC0yNDA2LDE2ICsyNDA2LDE2IEBACi0g ICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgICAgIGlmKHR5cGVCYXNlTmFtZU5vZGUpewot LSAgICAgICAgICBsbHZtSW5mby50eXBlQmFzZU5hbWUgPSAoY2FzdDxNRFN0cmluZz4odHlwZUJh c2VOYW1lTm9kZS0+Z2V0T3BlcmFuZChvcElEKSkpLT5nZXRTdHJpbmcoKTsKLSsgICAgICAgICAg bGx2bUluZm8udHlwZUJhc2VOYW1lID0gKGNhc3Q8TURTdHJpbmc+KHR5cGVCYXNlTmFtZU5vZGUt PmdldE9wZXJhbmQob3BJRCkpKS0+Z2V0U3RyaW5nKCkuc3RyKCk7Ci0gICAgICAgICB9Ci0gICAg ICAgICBpZihhY2Nlc3NRdWFsTm9kZSkgewotLSAgICAgICAgICBsbHZtSW5mby5hY2Nlc3NRdWFs ID0gKGNhc3Q8TURTdHJpbmc+KGFjY2Vzc1F1YWxOb2RlLT5nZXRPcGVyYW5kKG9wSUQpKSktPmdl dFN0cmluZygpOwotKyAgICAgICAgICBsbHZtSW5mby5hY2Nlc3NRdWFsID0gKGNhc3Q8TURTdHJp bmc+KGFjY2Vzc1F1YWxOb2RlLT5nZXRPcGVyYW5kKG9wSUQpKSktPmdldFN0cmluZygpLnN0cigp OwotICAgICAgICAgfQotICAgICAgICAgaWYodHlwZVF1YWxOb2RlKSB7Ci0tICAgICAgICAgIGxs dm1JbmZvLnR5cGVRdWFsID0gKGNhc3Q8TURTdHJpbmc+KHR5cGVRdWFsTm9kZS0+Z2V0T3BlcmFu ZChvcElEKSkpLT5nZXRTdHJpbmcoKTsKLSsgICAgICAgICAgbGx2bUluZm8udHlwZVF1YWwgPSAo Y2FzdDxNRFN0cmluZz4odHlwZVF1YWxOb2RlLT5nZXRPcGVyYW5kKG9wSUQpKSktPmdldFN0cmlu ZygpLnN0cigpOwotICAgICAgICAgfQotICAgICAgICAgaWYoYXJnTmFtZU5vZGUpewotLSAgICAg ICAgICBsbHZtSW5mby5hcmdOYW1lID0gKGNhc3Q8TURTdHJpbmc+KGFyZ05hbWVOb2RlLT5nZXRP cGVyYW5kKG9wSUQpKSktPmdldFN0cmluZygpOwotKyAgICAgICAgICBsbHZtSW5mby5hcmdOYW1l ID0gKGNhc3Q8TURTdHJpbmc+KGFyZ05hbWVOb2RlLT5nZXRPcGVyYW5kKG9wSUQpKSktPmdldFN0 cmluZygpLnN0cigpOwotICAgICAgICAgfQotCi0gICAgICAgICAvLyBmdW5jdGlvbiBhcmd1bWVu dHMgYXJlIHVuaWZvcm0gdmFsdWVzLgotQEAgLTMwMTAsNyArMzAxMCw3IEBACi0gICAgICAgICB9 IGVsc2UgewotICAgICAgICAgICB0aGlzLT5uZXdSZWdpc3Rlcihjb25zdF9jYXN0PEdsb2JhbFZh cmlhYmxlKj4oJnYpKTsKLSAgICAgICAgICAgaXI6OlJlZ2lzdGVyIHJlZyA9IHJlZ1RyYW5zbGF0 b3IuZ2V0U2NhbGFyKGNvbnN0X2Nhc3Q8R2xvYmFsVmFyaWFibGUqPigmdiksIDApOwotLSAgICAg ICAgICBpcjo6Q29uc3RhbnQgJmNvbiA9IHVuaXQuZ2V0Q29uc3RhbnRTZXQoKS5nZXRDb25zdGFu dCh2LmdldE5hbWUoKSk7Ci0rICAgICAgICAgIGlyOjpDb25zdGFudCAmY29uID0gdW5pdC5nZXRD b25zdGFudFNldCgpLmdldENvbnN0YW50KHYuZ2V0TmFtZSgpLnN0cigpKTsKLSAgICAgICAgICAg aWYgKCFsZWdhY3lNb2RlKSB7Ci0gICAgICAgICAgICAgaXI6OlJlZ2lzdGVyIHJlZ2xvYWQgPSBj dHgucmVnKGdldEZhbWlseShnZXRUeXBlKGN0eCwgdi5nZXRUeXBlKCkpKSk7Ci0gICAgICAgICAg ICAgY3R4LkxPQURJKGdldFR5cGUoY3R4LCB2LmdldFR5cGUoKSksIHJlZ2xvYWQsIGN0eC5uZXdJ bnRlZ2VySW1tZWRpYXRlKGNvbi5nZXRPZmZzZXQoKSwgZ2V0VHlwZShjdHgsIHYuZ2V0VHlwZSgp KSkpOwotQEAgLTMyMTIsNyArMzIxMiw3IEBACi0gICAgICAgICBHQkVfQVNTRVJUTShmYWxzZSwg IlVuc3VwcG9ydGVkIGNhbGxpbmcgY29udmVudGlvbiIpOwotICAgICB9Ci0KLS0gICAgY3R4LnN0 YXJ0RnVuY3Rpb24oRi5nZXROYW1lKCkpOwotKyAgICBjdHguc3RhcnRGdW5jdGlvbihGLmdldE5h bWUoKS5zdHIoKSk7Ci0KLSAgICAgaXI6OkZ1bmN0aW9uICZmbiA9IGN0eC5nZXRGdW5jdGlvbigp OwotICAgICB0aGlzLT5yZWdUcmFuc2xhdG9yLmNsZWFyKCk7Ci1AQCAtMzgxMCw5ICszODEwLDkg QEAKLQotICAgdm9pZCBHZW5Xcml0ZXI6OnJlZ0FsbG9jYXRlQ2FsbEluc3QoQ2FsbEluc3QgJkkp IHsKLSAgICAgVmFsdWUgKmRzdCA9ICZJOwotLSAgICBWYWx1ZSAqQ2FsbGVlID0gSS5nZXRDYWxs ZWRWYWx1ZSgpOwotKyAgICBWYWx1ZSAqQ2FsbGVlID0gSS5nZXRDYWxsZWRPcGVyYW5kKCk7Ci0g ICAgIEdCRV9BU1NFUlQoY3R4LmdldEZ1bmN0aW9uKCkuZ2V0UHJvZmlsZSgpID09IGlyOjpQUk9G SUxFX09DTCk7Ci0tICAgIEdCRV9BU1NFUlQoaXNhPElubGluZUFzbT4oSS5nZXRDYWxsZWRWYWx1 ZSgpKSA9PSBmYWxzZSk7Ci0rICAgIEdCRV9BU1NFUlQoaXNhPElubGluZUFzbT4oSS5nZXRDYWxs ZWRPcGVyYW5kKCkpID09IGZhbHNlKTsKLSAgICAgaWYoSS5nZXROdW1BcmdPcGVyYW5kcygpKSBH QkVfQVNTRVJUKEkuaGFzU3RydWN0UmV0QXR0cigpID09IGZhbHNlKTsKLQotICAgICAvLyBXZSBv bmx5IHN1cHBvcnQgYSBzbWFsbCBudW1iZXIgb2YgaW50cmluc2ljcyByaWdodCBub3cKLUBAIC0z ODcwLDcgKzM4NzAsNyBAQAotICAgICAgIH0KLSAgICAgfQotICAgICAvLyBHZXQgdGhlIG5hbWUg b2YgdGhlIGNhbGxlZCBmdW5jdGlvbiBhbmQgaGFuZGxlIGl0Ci0tICAgIGNvbnN0IHN0ZDo6c3Ry aW5nIGZuTmFtZSA9IENhbGxlZS0+c3RyaXBQb2ludGVyQ2FzdHMoKS0+Z2V0TmFtZSgpOwotKyAg ICBjb25zdCBzdGQ6OnN0cmluZyBmbk5hbWUgPSBDYWxsZWUtPnN0cmlwUG9pbnRlckNhc3RzKCkt PmdldE5hbWUoKS5zdHIoKTsKLSAgICAgYXV0byBnZW5JbnRyaW5zaWNJRCA9IGludHJpbnNpY01h cC5maW5kKGZuTmFtZSk7Ci0gICAgIHN3aXRjaCAoZ2VuSW50cmluc2ljSUQpIHsKLSAgICAgICBj YXNlIEdFTl9PQ0xfR0VUX0dST1VQX0lEMDoKLUBAIC00MTY2LDcgKzQxNjYsNyBAQAotICAgICB9 OwotICAgfQotCi0tICB2b2lkIEdlbldyaXRlcjo6ZW1pdFJvdW5kaW5nQ2FsbEluc3QoQ2FsbElu c3QgJkksIENhbGxTaXRlICZDUywgaXI6Ok9wY29kZSBvcGNvZGUpIHsKLSsgIHZvaWQgR2VuV3Jp dGVyOjplbWl0Um91bmRpbmdDYWxsSW5zdChDYWxsSW5zdCAmSSwgaXI6Ok9wY29kZSBvcGNvZGUp IHsKLSAgICAgaWYgKEkuZ2V0VHlwZSgpLT5pc0hhbGZUeSgpKSB7Ci0gICAgICAgY29uc3QgaXI6 OlJlZ2lzdGVyIHNyYyA9IHRoaXMtPmdldFJlZ2lzdGVyKEkuZ2V0T3BlcmFuZCgwKSk7Ci0gICAg ICAgY29uc3QgaXI6OlJlZ2lzdGVyIHNyY0Zsb2F0ID0gY3R4LnJlZyhpcjo6RkFNSUxZX0RXT1JE KTsKLUBAIC00MTc3LDE0ICs0MTc3LDE0IEBACi0gICAgICAgY3R4LkYzMlRPMTYoaXI6OlRZUEVf VTE2LCBpcjo6VFlQRV9GTE9BVCwgZHN0LCBkc3RGbG9hdCk7Ci0gICAgIH0gZWxzZSB7Ci0gICAg ICAgR0JFX0FTU0VSVChJLmdldFR5cGUoKS0+aXNGbG9hdFR5KCkpOwotLSAgICAgIHRoaXMtPmVt aXRVbmFyeUNhbGxJbnN0KEksQ1Msb3Bjb2RlKTsKLSsgICAgICB0aGlzLT5lbWl0VW5hcnlDYWxs SW5zdChJLG9wY29kZSk7Ci0gICAgIH0KLSAgIH0KLQotLSAgdm9pZCBHZW5Xcml0ZXI6OmVtaXRV bmFyeUNhbGxJbnN0KENhbGxJbnN0ICZJLCBDYWxsU2l0ZSAmQ1MsIGlyOjpPcGNvZGUgb3Bjb2Rl LCBpcjo6VHlwZSB0eXBlKSB7Ci0tICAgIENhbGxTaXRlOjphcmdfaXRlcmF0b3IgQUkgPSBDUy5h cmdfYmVnaW4oKTsKLSsgIHZvaWQgR2VuV3JpdGVyOjplbWl0VW5hcnlDYWxsSW5zdChDYWxsSW5z dCAmSSwgaXI6Ok9wY29kZSBvcGNvZGUsIGlyOjpUeXBlIHR5cGUpIHsKLSsgICAgVXNlcjo6b3Bf aXRlcmF0b3IgQUkgPSBJLmFyZ19iZWdpbigpOwotICNpZiBHQkVfREVCVUcKLS0gICAgQ2FsbFNp dGU6OmFyZ19pdGVyYXRvciBBRSA9IENTLmFyZ19lbmQoKTsKLSsgICAgVXNlcjo6b3BfaXRlcmF0 b3IgQUUgPSBJLmFyZ19lbmQoKTsKLSAjZW5kaWYgLyogR0JFX0RFQlVHICovCi0gICAgIEdCRV9B U1NFUlQoQUkgIT0gQUUpOwotICAgICBjb25zdCBpcjo6UmVnaXN0ZXIgc3JjID0gdGhpcy0+Z2V0 UmVnaXN0ZXIoKkFJKTsKLUBAIC00MjkzLDkgKzQyOTMsOSBAQAotICAgICB0aGlzLT5lbWl0QXRv bWljSW5zdEhlbHBlcihvcGNvZGUsIHR5cGUsIGRzdCwgbGx2bVB0ciwgcGF5bG9hZFR1cGxlKTsK LSAgIH0KLQotLSAgdm9pZCBHZW5Xcml0ZXI6OmVtaXRBdG9taWNJbnN0KENhbGxJbnN0ICZJLCBD YWxsU2l0ZSAmQ1MsIGlyOjpBdG9taWNPcHMgb3Bjb2RlKSB7Ci0tICAgIENhbGxTaXRlOjphcmdf aXRlcmF0b3IgQUkgPSBDUy5hcmdfYmVnaW4oKTsKLS0gICAgQ2FsbFNpdGU6OmFyZ19pdGVyYXRv ciBBRSA9IENTLmFyZ19lbmQoKTsKLSsgIHZvaWQgR2VuV3JpdGVyOjplbWl0QXRvbWljSW5zdChD YWxsSW5zdCAmSSwgaXI6OkF0b21pY09wcyBvcGNvZGUpIHsKLSsgICAgVXNlcjo6b3BfaXRlcmF0 b3IgQUkgPSBJLmFyZ19iZWdpbigpOwotKyAgICBVc2VyOjpvcF9pdGVyYXRvciBBRSA9IEkuYXJn X2VuZCgpOwotICAgICBHQkVfQVNTRVJUKEFJICE9IEFFKTsKLSAgICAgVmFsdWUgKmxsdm1QdHIg PSAqQUk7Ci0gICAgIGlyOjpBZGRyZXNzU3BhY2UgYWRkclNwYWNlID0gYWRkcmVzc1NwYWNlTExW TVRvR2VuKGxsdm1QdHItPmdldFR5cGUoKS0+Z2V0UG9pbnRlckFkZHJlc3NTcGFjZSgpKTsKLUBA IC00MzQ4LDcgKzQzNDgsNyBAQAotICAgICB9Ci0gICB9Ci0KLS0gIHZvaWQgR2VuV3JpdGVyOjpl bWl0V29ya0dyb3VwSW5zdChDYWxsSW5zdCAmSSwgQ2FsbFNpdGUgJkNTLCBpcjo6V29ya0dyb3Vw T3BzIG9wY29kZSkgewotKyAgdm9pZCBHZW5Xcml0ZXI6OmVtaXRXb3JrR3JvdXBJbnN0KENhbGxJ bnN0ICZJLCBpcjo6V29ya0dyb3VwT3BzIG9wY29kZSkgewotICAgICBpcjo6RnVuY3Rpb24gJmYg PSBjdHguZ2V0RnVuY3Rpb24oKTsKLQotICAgICBpZiAoZi5nZXR3Z0Jyb2FkY2FzdFNMTSgpIDwg MCAmJiBvcGNvZGUgPT0gaXI6OldPUktHUk9VUF9PUF9CUk9BRENBU1QpIHsKLUBAIC00Mzc4LDgg KzQzNzgsOCBAQAotICAgICAgIEdCRV9BU1NFUlQoZi5nZXR0aWRNYXBTTE0oKSA+PSAwKTsKLSAg ICAgfQotCi0tICAgIENhbGxTaXRlOjphcmdfaXRlcmF0b3IgQUkgPSBDUy5hcmdfYmVnaW4oKTsK LS0gICAgQ2FsbFNpdGU6OmFyZ19pdGVyYXRvciBBRSA9IENTLmFyZ19lbmQoKTsKLSsgICAgVXNl cjo6b3BfaXRlcmF0b3IgQUkgPSBJLmFyZ19iZWdpbigpOwotKyAgICBVc2VyOjpvcF9pdGVyYXRv ciBBRSA9IEkuYXJnX2VuZCgpOwotICAgICBHQkVfQVNTRVJUKEFJICE9IEFFKTsKLQotICAgICBp ZiAob3Bjb2RlID09IGlyOjpXT1JLR1JPVVBfT1BfQUxMIHx8IG9wY29kZSA9PSBpcjo6V09SS0dS T1VQX09QX0FOWSkgewotQEAgLTQzOTEsMTQgKzQzOTEsMTQgQEAKLSAgICAgICBjb25zdCBpcjo6 VHVwbGUgc3JjVHVwbGUgPSBjdHguYXJyYXlUdXBsZSgmc3JjWzBdLCAzKTsKLSAgICAgICBjdHgu V09SS0dST1VQKG9wY29kZSwgKHVpbnQzMl90KWYuZ2V0dGlkTWFwU0xNKCksIGdldFJlZ2lzdGVy KCZJKSwgc3JjVHVwbGUsIDMsIGlyOjpUWVBFX1MzMik7Ci0gICAgIH0gZWxzZSBpZiAob3Bjb2Rl ID09IGlyOjpXT1JLR1JPVVBfT1BfQlJPQURDQVNUKSB7Ci0tICAgICAgaW50IGFyZ051bSA9IENT LmFyZ19zaXplKCk7Ci0rICAgICAgaW50IGFyZ051bSA9IEkuYXJnX3NpemUoKTsKLSAgICAgICBz dGQ6OnZlY3Rvcjxpcjo6UmVnaXN0ZXI+IHNyYyhhcmdOdW0pOwotICAgICAgIGZvciAoaW50IGkg PSAwOyBpIDwgYXJnTnVtOyBpKyspIHsKLSAgICAgICAgIHNyY1tpXSA9IHRoaXMtPmdldFJlZ2lz dGVyKCooQUkrKykpOwotICAgICAgIH0KLSAgICAgICBjb25zdCBpcjo6VHVwbGUgc3JjVHVwbGUg PSBjdHguYXJyYXlUdXBsZSgmc3JjWzBdLCBhcmdOdW0pOwotICAgICAgIGN0eC5XT1JLR1JPVVAo aXI6OldPUktHUk9VUF9PUF9CUk9BRENBU1QsICh1aW50MzJfdClmLmdldHdnQnJvYWRjYXN0U0xN KCksIGdldFJlZ2lzdGVyKCZJKSwgc3JjVHVwbGUsIGFyZ051bSwKLS0gICAgICAgICAgZ2V0VHlw ZShjdHgsICgqQ1MuYXJnX2JlZ2luKCkpLT5nZXRUeXBlKCkpKTsKLSsgICAgICAgICAgZ2V0VHlw ZShjdHgsICgqSS5hcmdfYmVnaW4oKSktPmdldFR5cGUoKSkpOwotICAgICB9IGVsc2UgewotICAg ICAgIENvbnN0YW50SW50ICpzaWduID0gZHluX2Nhc3Q8Q29uc3RhbnRJbnQ+KEFJKTsKLSAgICAg ICBHQkVfQVNTRVJUKHNpZ24pOwotQEAgLTQ0MjMsOSArNDQyMyw5IEBACi0gICAgIEdCRV9BU1NF UlQoQUkgPT0gQUUpOwotICAgfQotCi0tICB2b2lkIEdlbldyaXRlcjo6ZW1pdFN1Ykdyb3VwSW5z dChDYWxsSW5zdCAmSSwgQ2FsbFNpdGUgJkNTLCBpcjo6V29ya0dyb3VwT3BzIG9wY29kZSkgewot LSAgICBDYWxsU2l0ZTo6YXJnX2l0ZXJhdG9yIEFJID0gQ1MuYXJnX2JlZ2luKCk7Ci0tICAgIENh bGxTaXRlOjphcmdfaXRlcmF0b3IgQUUgPSBDUy5hcmdfZW5kKCk7Ci0rICB2b2lkIEdlbldyaXRl cjo6ZW1pdFN1Ykdyb3VwSW5zdChDYWxsSW5zdCAmSSwgaXI6OldvcmtHcm91cE9wcyBvcGNvZGUp IHsKLSsgICAgVXNlcjo6b3BfaXRlcmF0b3IgQUkgPSBJLmFyZ19iZWdpbigpOwotKyAgICBVc2Vy OjpvcF9pdGVyYXRvciBBRSA9IEkuYXJnX2VuZCgpOwotICAgICBHQkVfQVNTRVJUKEFJICE9IEFF KTsKLQotICAgICBpZiAob3Bjb2RlID09IGlyOjpXT1JLR1JPVVBfT1BfQUxMIHx8IG9wY29kZSA9 PSBpcjo6V09SS0dST1VQX09QX0FOWSkgewotQEAgLTQ0MzUsNyArNDQzNSw3IEBACi0gICAgICAg Y29uc3QgaXI6OlR1cGxlIHNyY1R1cGxlID0gY3R4LmFycmF5VHVwbGUoJnNyY1swXSwgMSk7Ci0g ICAgICAgY3R4LlNVQkdST1VQKG9wY29kZSwgZ2V0UmVnaXN0ZXIoJkkpLCBzcmNUdXBsZSwgMSwg aXI6OlRZUEVfUzMyKTsKLSAgICAgfSBlbHNlIGlmIChvcGNvZGUgPT0gaXI6OldPUktHUk9VUF9P UF9CUk9BRENBU1QpIHsKLS0gICAgICBpbnQgYXJnTnVtID0gQ1MuYXJnX3NpemUoKTsKLSsgICAg ICBpbnQgYXJnTnVtID0gSS5hcmdfc2l6ZSgpOwotICAgICAgIEdCRV9BU1NFUlQoYXJnTnVtID09 IDIpOwotICAgICAgIHN0ZDo6dmVjdG9yPGlyOjpSZWdpc3Rlcj4gc3JjKGFyZ051bSk7Ci0gICAg ICAgZm9yIChpbnQgaSA9IDA7IGkgPCBhcmdOdW07IGkrKykgewotQEAgLTQ0NDMsNyArNDQ0Myw3 IEBACi0gICAgICAgfQotICAgICAgIGNvbnN0IGlyOjpUdXBsZSBzcmNUdXBsZSA9IGN0eC5hcnJh eVR1cGxlKCZzcmNbMF0sIGFyZ051bSk7Ci0gICAgICAgY3R4LlNVQkdST1VQKGlyOjpXT1JLR1JP VVBfT1BfQlJPQURDQVNULCBnZXRSZWdpc3RlcigmSSksIHNyY1R1cGxlLCBhcmdOdW0sCi0tICAg ICAgICAgIGdldFR5cGUoY3R4LCAoKkNTLmFyZ19iZWdpbigpKS0+Z2V0VHlwZSgpKSk7Ci0rICAg ICAgICAgIGdldFR5cGUoY3R4LCAoKkkuYXJnX2JlZ2luKCkpLT5nZXRUeXBlKCkpKTsKLSAgICAg fSBlbHNlIHsKLSAgICAgICBDb25zdGFudEludCAqc2lnbiA9IGR5bl9jYXN0PENvbnN0YW50SW50 PihBSSk7Ci0gICAgICAgR0JFX0FTU0VSVChzaWduKTsKLUBAIC00NDY2LDkgKzQ0NjYsOSBAQAot ICAgICBHQkVfQVNTRVJUKEFJID09IEFFKTsKLSAgIH0KLQotLSAgdm9pZCBHZW5Xcml0ZXI6OmVt aXRCbG9ja1JlYWRXcml0ZU1lbUluc3QoQ2FsbEluc3QgJkksIENhbGxTaXRlICZDUywgYm9vbCBp c1dyaXRlLCB1aW50OF90IHZlY19zaXplLCBpcjo6VHlwZSB0eXBlKSB7Ci0tICAgIENhbGxTaXRl OjphcmdfaXRlcmF0b3IgQUkgPSBDUy5hcmdfYmVnaW4oKTsKLS0gICAgQ2FsbFNpdGU6OmFyZ19p dGVyYXRvciBBRSA9IENTLmFyZ19lbmQoKTsKLSsgIHZvaWQgR2VuV3JpdGVyOjplbWl0QmxvY2tS ZWFkV3JpdGVNZW1JbnN0KENhbGxJbnN0ICZJLCBib29sIGlzV3JpdGUsIHVpbnQ4X3QgdmVjX3Np emUsIGlyOjpUeXBlIHR5cGUpIHsKLSsgICAgVXNlcjo6b3BfaXRlcmF0b3IgQUkgPSBJLmFyZ19i ZWdpbigpOwotKyAgICBVc2VyOjpvcF9pdGVyYXRvciBBRSA9IEkuYXJnX2VuZCgpOwotICAgICBH QkVfQVNTRVJUKEFJICE9IEFFKTsKLQotICAgICBWYWx1ZSAqbGx2bVB0ciA9ICooQUkrKyk7Ci1A QCAtNDUyMiw5ICs0NTIyLDkgQEAKLSAgICAgR0JFX0FTU0VSVChBSSA9PSBBRSk7Ci0gICB9Ci0K LS0gIHZvaWQgR2VuV3JpdGVyOjplbWl0QmxvY2tSZWFkV3JpdGVJbWFnZUluc3QoQ2FsbEluc3Qg JkksIENhbGxTaXRlICZDUywgYm9vbCBpc1dyaXRlLCB1aW50OF90IHZlY19zaXplLCBpcjo6VHlw ZSB0eXBlKSB7Ci0tICAgIENhbGxTaXRlOjphcmdfaXRlcmF0b3IgQUkgPSBDUy5hcmdfYmVnaW4o KTsKLS0gICAgQ2FsbFNpdGU6OmFyZ19pdGVyYXRvciBBRSA9IENTLmFyZ19lbmQoKTsKLSsgIHZv aWQgR2VuV3JpdGVyOjplbWl0QmxvY2tSZWFkV3JpdGVJbWFnZUluc3QoQ2FsbEluc3QgJkksIGJv b2wgaXNXcml0ZSwgdWludDhfdCB2ZWNfc2l6ZSwgaXI6OlR5cGUgdHlwZSkgewotKyAgICBVc2Vy OjpvcF9pdGVyYXRvciBBSSA9IEkuYXJnX2JlZ2luKCk7Ci0rICAgIFVzZXI6Om9wX2l0ZXJhdG9y IEFFID0gSS5hcmdfZW5kKCk7Ci0gICAgIEdCRV9BU1NFUlQoQUkgIT0gQUUpOwotCi0gICAgIGNv bnN0IHVpbnQ4X3QgaW1hZ2VJRCA9IGdldEltYWdlSUQoSSk7Ci1AQCAtNDU1Nyw3ICs0NTU3LDcg QEAKLQotICAgLyogYXBwZW5kIGEgbmV3IHNhbXBsZXIuIHNob3VsZCBiZSBjYWxsZWQgYmVmb3Jl IGFueSByZWZlcmVuY2UgdG8KLSAgICAqIGEgc2FtcGxlcl90IHZhbHVlLiAqLwotLSAgdWludDhf dCBHZW5Xcml0ZXI6OmFwcGVuZFNhbXBsZXIoQ2FsbFNpdGU6OmFyZ19pdGVyYXRvciBBSSkgewot KyAgdWludDhfdCBHZW5Xcml0ZXI6OmFwcGVuZFNhbXBsZXIoVXNlcjo6b3BfaXRlcmF0b3IgQUkp IHsKLSAjaWYgTExWTV9WRVJTSU9OX01BSk9SICogMTAgKyBMTFZNX1ZFUlNJT05fTUlOT1IgPj0g NDAKLSAgICAgQ2FsbEluc3QgKlRDID0gZHluX2Nhc3Q8Q2FsbEluc3Q+KCpBSSk7Ci0gICAgIENv bnN0YW50ICpDUFYgPSBUQyA/IGR5bl9jYXN0PENvbnN0YW50PihUQy0+Z2V0T3BlcmFuZCgwKSkg OiBOVUxMOwotQEAgLTQ1OTUsMTAgKzQ1OTUsOSBAQAotICAgICAgICAgY29uc3QgaXI6OkZ1bmN0 aW9uICZmbiA9IGN0eC5nZXRGdW5jdGlvbigpOwotCi0gICAgICAgICAvLyBHZXQgdGhlIGZ1bmN0 aW9uIGFyZ3VtZW50cwotLSAgICAgICAgQ2FsbFNpdGUgQ1MoJkkpOwotLSAgICAgICAgQ2FsbFNp dGU6OmFyZ19pdGVyYXRvciBBSSA9IENTLmFyZ19iZWdpbigpOwotKyAgICAgICAgVXNlcjo6b3Bf aXRlcmF0b3IgQUkgPSBJLmFyZ19iZWdpbigpOwotICNpZiBHQkVfREVCVUcKLS0gICAgICAgIENh bGxTaXRlOjphcmdfaXRlcmF0b3IgQUUgPSBDUy5hcmdfZW5kKCk7Ci0rICAgICAgICBVc2VyOjpv cF9pdGVyYXRvciBBRSA9IEkuYXJnX2VuZCgpOwotICNlbmRpZiAvKiBHQkVfREVCVUcgKi8KLSAg ICAgICAgIHN3aXRjaCAoRi0+Z2V0SW50cmluc2ljSUQoKSkgewotICAgICAgICAgICBjYXNlIElu dHJpbnNpYzo6c3RhY2tzYXZlOgotQEAgLTQ3NjQsMTcgKzQ3NjMsMTcgQEAKLSAgICAgICAgICAg ICBjdHguTUFEKHNyY1R5cGUsIGRzdCwgc3JjMCwgc3JjMSwgc3JjMik7Ci0gICAgICAgICAgIH0K LSAgICAgICAgICAgYnJlYWs7Ci0tICAgICAgICAgIGNhc2UgSW50cmluc2ljOjpzcXJ0OiB0aGlz LT5lbWl0VW5hcnlDYWxsSW5zdChJLENTLGlyOjpPUF9TUVIpOyBicmVhazsKLS0gICAgICAgICAg Y2FzZSBJbnRyaW5zaWM6OmNlaWw6IHRoaXMtPmVtaXRSb3VuZGluZ0NhbGxJbnN0KEksQ1MsaXI6 Ok9QX1JORFUpOyBicmVhazsKLS0gICAgICAgICAgY2FzZSBJbnRyaW5zaWM6OnRydW5jOiB0aGlz LT5lbWl0Um91bmRpbmdDYWxsSW5zdChJLENTLGlyOjpPUF9STkRaKTsgYnJlYWs7Ci0tICAgICAg ICAgIGNhc2UgSW50cmluc2ljOjpyaW50OiB0aGlzLT5lbWl0Um91bmRpbmdDYWxsSW5zdChJLENT LGlyOjpPUF9STkRFKTsgYnJlYWs7Ci0tICAgICAgICAgIGNhc2UgSW50cmluc2ljOjpmbG9vcjog dGhpcy0+ZW1pdFJvdW5kaW5nQ2FsbEluc3QoSSxDUyxpcjo6T1BfUk5ERCk7IGJyZWFrOwotLSAg ICAgICAgICBjYXNlIEludHJpbnNpYzo6c2luOiB0aGlzLT5lbWl0VW5hcnlDYWxsSW5zdChJLENT LGlyOjpPUF9TSU4pOyBicmVhazsKLS0gICAgICAgICAgY2FzZSBJbnRyaW5zaWM6OmNvczogdGhp cy0+ZW1pdFVuYXJ5Q2FsbEluc3QoSSxDUyxpcjo6T1BfQ09TKTsgYnJlYWs7Ci0tICAgICAgICAg IGNhc2UgSW50cmluc2ljOjpsb2cyOiB0aGlzLT5lbWl0VW5hcnlDYWxsSW5zdChJLENTLGlyOjpP UF9MT0cpOyBicmVhazsKLS0gICAgICAgICAgY2FzZSBJbnRyaW5zaWM6OmV4cDI6IHRoaXMtPmVt aXRVbmFyeUNhbGxJbnN0KEksQ1MsaXI6Ok9QX0VYUCk7IGJyZWFrOwotKyAgICAgICAgICBjYXNl IEludHJpbnNpYzo6c3FydDogdGhpcy0+ZW1pdFVuYXJ5Q2FsbEluc3QoSSxpcjo6T1BfU1FSKTsg YnJlYWs7Ci0rICAgICAgICAgIGNhc2UgSW50cmluc2ljOjpjZWlsOiB0aGlzLT5lbWl0Um91bmRp bmdDYWxsSW5zdChJLGlyOjpPUF9STkRVKTsgYnJlYWs7Ci0rICAgICAgICAgIGNhc2UgSW50cmlu c2ljOjp0cnVuYzogdGhpcy0+ZW1pdFJvdW5kaW5nQ2FsbEluc3QoSSxpcjo6T1BfUk5EWik7IGJy ZWFrOwotKyAgICAgICAgICBjYXNlIEludHJpbnNpYzo6cmludDogdGhpcy0+ZW1pdFJvdW5kaW5n Q2FsbEluc3QoSSxpcjo6T1BfUk5ERSk7IGJyZWFrOwotKyAgICAgICAgICBjYXNlIEludHJpbnNp Yzo6Zmxvb3I6IHRoaXMtPmVtaXRSb3VuZGluZ0NhbGxJbnN0KEksaXI6Ok9QX1JOREQpOyBicmVh azsKLSsgICAgICAgICAgY2FzZSBJbnRyaW5zaWM6OnNpbjogdGhpcy0+ZW1pdFVuYXJ5Q2FsbElu c3QoSSxpcjo6T1BfU0lOKTsgYnJlYWs7Ci0rICAgICAgICAgIGNhc2UgSW50cmluc2ljOjpjb3M6 IHRoaXMtPmVtaXRVbmFyeUNhbGxJbnN0KEksaXI6Ok9QX0NPUyk7IGJyZWFrOwotKyAgICAgICAg ICBjYXNlIEludHJpbnNpYzo6bG9nMjogdGhpcy0+ZW1pdFVuYXJ5Q2FsbEluc3QoSSxpcjo6T1Bf TE9HKTsgYnJlYWs7Ci0rICAgICAgICAgIGNhc2UgSW50cmluc2ljOjpleHAyOiB0aGlzLT5lbWl0 VW5hcnlDYWxsSW5zdChJLGlyOjpPUF9FWFApOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBJbnRy aW5zaWM6OmJzd2FwOgotLSAgICAgICAgICAgIHRoaXMtPmVtaXRVbmFyeUNhbGxJbnN0KEksQ1Ms aXI6Ok9QX0JTV0FQLCBnZXRVbnNpZ25lZFR5cGUoY3R4LCBJLmdldFR5cGUoKSkpOyBicmVhazsK LSsgICAgICAgICAgICB0aGlzLT5lbWl0VW5hcnlDYWxsSW5zdChJLGlyOjpPUF9CU1dBUCwgZ2V0 VW5zaWduZWRUeXBlKGN0eCwgSS5nZXRUeXBlKCkpKTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2Ug SW50cmluc2ljOjpwb3c6Ci0gICAgICAgICAgIHsKLSAgICAgICAgICAgICBjb25zdCBpcjo6UmVn aXN0ZXIgc3JjMCA9IHRoaXMtPmdldFJlZ2lzdGVyKCpBSSk7ICsrQUk7Ci1AQCAtNDc5NCwyMSAr NDc5MywyMCBAQAotICAgICAgICAgfQotICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAvLyBHZXQg dGhlIG5hbWUgb2YgdGhlIGNhbGxlZCBmdW5jdGlvbiBhbmQgaGFuZGxlIGl0Ci0tICAgICAgICBW YWx1ZSAqQ2FsbGVlID0gSS5nZXRDYWxsZWRWYWx1ZSgpOwotLSAgICAgICAgY29uc3Qgc3RkOjpz dHJpbmcgZm5OYW1lID0gQ2FsbGVlLT5zdHJpcFBvaW50ZXJDYXN0cygpLT5nZXROYW1lKCk7Ci0r ICAgICAgICBWYWx1ZSAqQ2FsbGVlID0gSS5nZXRDYWxsZWRPcGVyYW5kKCk7Ci0rICAgICAgICBj b25zdCBzdGQ6OnN0cmluZyBmbk5hbWUgPSBDYWxsZWUtPnN0cmlwUG9pbnRlckNhc3RzKCktPmdl dE5hbWUoKS5zdHIoKTsKLSAgICAgICAgIGF1dG8gZ2VuSW50cmluc2ljSUQgPSBpbnRyaW5zaWNN YXAuZmluZChmbk5hbWUpOwotCi0gICAgICAgICAvLyBHZXQgdGhlIGZ1bmN0aW9uIGFyZ3VtZW50 cwotLSAgICAgICAgQ2FsbFNpdGUgQ1MoJkkpOwotLSAgICAgICAgQ2FsbFNpdGU6OmFyZ19pdGVy YXRvciBBSSA9IENTLmFyZ19iZWdpbigpOwotKyAgICAgICAgVXNlcjo6b3BfaXRlcmF0b3IgQUkg PSBJLmFyZ19iZWdpbigpOwotICNpZiBHQkVfREVCVUcKLS0gICAgICAgIENhbGxTaXRlOjphcmdf aXRlcmF0b3IgQUUgPSBDUy5hcmdfZW5kKCk7Ci0rICAgICAgICBVc2VyOjpvcF9pdGVyYXRvciBB RSA9IEkuYXJnX2VuZCgpOwotICNlbmRpZiAvKiBHQkVfREVCVUcgKi8KLQotICAgICAgICAgc3dp dGNoIChnZW5JbnRyaW5zaWNJRCkgewotLSAgICAgICAgICBjYXNlIEdFTl9PQ0xfRkJIOiB0aGlz LT5lbWl0VW5hcnlDYWxsSW5zdChJLENTLGlyOjpPUF9GQkgsIGlyOjpUWVBFX1UzMik7IGJyZWFr OwotLSAgICAgICAgICBjYXNlIEdFTl9PQ0xfRkJMOiB0aGlzLT5lbWl0VW5hcnlDYWxsSW5zdChJ LENTLGlyOjpPUF9GQkwsIGlyOjpUWVBFX1UzMik7IGJyZWFrOwotLSAgICAgICAgICBjYXNlIEdF Tl9PQ0xfQ0JJVDogdGhpcy0+ZW1pdFVuYXJ5Q2FsbEluc3QoSSxDUyxpcjo6T1BfQ0JJVCwgZ2V0 VW5zaWduZWRUeXBlKGN0eCwgKCpBSSktPmdldFR5cGUoKSkpOyBicmVhazsKLSsgICAgICAgICAg Y2FzZSBHRU5fT0NMX0ZCSDogdGhpcy0+ZW1pdFVuYXJ5Q2FsbEluc3QoSSxpcjo6T1BfRkJILCBp cjo6VFlQRV9VMzIpOyBicmVhazsKLSsgICAgICAgICAgY2FzZSBHRU5fT0NMX0ZCTDogdGhpcy0+ ZW1pdFVuYXJ5Q2FsbEluc3QoSSxpcjo6T1BfRkJMLCBpcjo6VFlQRV9VMzIpOyBicmVhazsKLSsg ICAgICAgICAgY2FzZSBHRU5fT0NMX0NCSVQ6IHRoaXMtPmVtaXRVbmFyeUNhbGxJbnN0KEksaXI6 Ok9QX0NCSVQsIGdldFVuc2lnbmVkVHlwZShjdHgsICgqQUkpLT5nZXRUeXBlKCkpKTsgYnJlYWs7 Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9BQlM6Ci0gICAgICAgICAgIHsKLSAgICAgICAgICAg ICBjb25zdCBpcjo6UmVnaXN0ZXIgc3JjID0gdGhpcy0+Z2V0UmVnaXN0ZXIoKkFJKTsKLUBAIC00 OTE1LDggKzQ5MTMsOCBAQAotICAgICAgICAgICAgIGN0eC5SRUdJT04oZHN0LCBzcmMsIHguZ2V0 SW50ZWdlclZhbHVlKCkpOwotICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICB9Ci0tICAg ICAgICAgIGNhc2UgR0VOX09DTF9SU1E6IHRoaXMtPmVtaXRVbmFyeUNhbGxJbnN0KEksQ1MsaXI6 Ok9QX1JTUSk7IGJyZWFrOwotLSAgICAgICAgICBjYXNlIEdFTl9PQ0xfUkNQOiB0aGlzLT5lbWl0 VW5hcnlDYWxsSW5zdChJLENTLGlyOjpPUF9SQ1ApOyBicmVhazsKLSsgICAgICAgICAgY2FzZSBH RU5fT0NMX1JTUTogdGhpcy0+ZW1pdFVuYXJ5Q2FsbEluc3QoSSxpcjo6T1BfUlNRKTsgYnJlYWs7 Ci0rICAgICAgICAgIGNhc2UgR0VOX09DTF9SQ1A6IHRoaXMtPmVtaXRVbmFyeUNhbGxJbnN0KEks aXI6Ok9QX1JDUCk7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfRk9SQ0VfU0lNRDg6 IGN0eC5zZXRTaW1kV2lkdGgoOCk7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfRk9S Q0VfU0lNRDE2OiBjdHguc2V0U2ltZFdpZHRoKDE2KTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2Ug R0VOX09DTF9MQkFSUklFUjogY3R4LlNZTkMoaXI6OnN5bmNMb2NhbEJhcnJpZXIpOyBicmVhazsK LUBAIC00OTQ3LDMxICs0OTQ1LDMxIEBACi0gICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAg IH0KLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX0FUT01JQ19BREQwOgotLSAgICAgICAgICBjYXNl IEdFTl9PQ0xfQVRPTUlDX0FERDE6IHRoaXMtPmVtaXRBdG9taWNJbnN0KEksQ1MsaXI6OkFUT01J Q19PUF9BREQpOyBicmVhazsKLSsgICAgICAgICAgY2FzZSBHRU5fT0NMX0FUT01JQ19BREQxOiB0 aGlzLT5lbWl0QXRvbWljSW5zdChJLGlyOjpBVE9NSUNfT1BfQUREKTsgYnJlYWs7Ci0gICAgICAg ICAgIGNhc2UgR0VOX09DTF9BVE9NSUNfU1VCMDoKLS0gICAgICAgICAgY2FzZSBHRU5fT0NMX0FU T01JQ19TVUIxOiB0aGlzLT5lbWl0QXRvbWljSW5zdChJLENTLGlyOjpBVE9NSUNfT1BfU1VCKTsg YnJlYWs7Ci0rICAgICAgICAgIGNhc2UgR0VOX09DTF9BVE9NSUNfU1VCMTogdGhpcy0+ZW1pdEF0 b21pY0luc3QoSSxpcjo6QVRPTUlDX09QX1NVQik7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdF Tl9PQ0xfQVRPTUlDX0FORDA6Ci0tICAgICAgICAgIGNhc2UgR0VOX09DTF9BVE9NSUNfQU5EMTog dGhpcy0+ZW1pdEF0b21pY0luc3QoSSxDUyxpcjo6QVRPTUlDX09QX0FORCk7IGJyZWFrOwotKyAg ICAgICAgICBjYXNlIEdFTl9PQ0xfQVRPTUlDX0FORDE6IHRoaXMtPmVtaXRBdG9taWNJbnN0KEks aXI6OkFUT01JQ19PUF9BTkQpOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX0FUT01J Q19PUjA6Ci0tICAgICAgICAgIGNhc2UgR0VOX09DTF9BVE9NSUNfT1IxOiB0aGlzLT5lbWl0QXRv bWljSW5zdChJLENTLGlyOjpBVE9NSUNfT1BfT1IpOyBicmVhazsKLSsgICAgICAgICAgY2FzZSBH RU5fT0NMX0FUT01JQ19PUjE6IHRoaXMtPmVtaXRBdG9taWNJbnN0KEksaXI6OkFUT01JQ19PUF9P Uik7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfQVRPTUlDX1hPUjA6Ci0tICAgICAg ICAgIGNhc2UgR0VOX09DTF9BVE9NSUNfWE9SMTogdGhpcy0+ZW1pdEF0b21pY0luc3QoSSxDUyxp cjo6QVRPTUlDX09QX1hPUik7IGJyZWFrOwotKyAgICAgICAgICBjYXNlIEdFTl9PQ0xfQVRPTUlD X1hPUjE6IHRoaXMtPmVtaXRBdG9taWNJbnN0KEksaXI6OkFUT01JQ19PUF9YT1IpOyBicmVhazsK LSAgICAgICAgICAgY2FzZSBHRU5fT0NMX0FUT01JQ19YQ0hHMDoKLS0gICAgICAgICAgY2FzZSBH RU5fT0NMX0FUT01JQ19YQ0hHMTogdGhpcy0+ZW1pdEF0b21pY0luc3QoSSxDUyxpcjo6QVRPTUlD X09QX1hDSEcpOyBicmVhazsKLSsgICAgICAgICAgY2FzZSBHRU5fT0NMX0FUT01JQ19YQ0hHMTog dGhpcy0+ZW1pdEF0b21pY0luc3QoSSxpcjo6QVRPTUlDX09QX1hDSEcpOyBicmVhazsKLSAgICAg ICAgICAgY2FzZSBHRU5fT0NMX0FUT01JQ19JTkMwOgotLSAgICAgICAgICBjYXNlIEdFTl9PQ0xf QVRPTUlDX0lOQzE6IHRoaXMtPmVtaXRBdG9taWNJbnN0KEksQ1MsaXI6OkFUT01JQ19PUF9JTkMp OyBicmVhazsKLSsgICAgICAgICAgY2FzZSBHRU5fT0NMX0FUT01JQ19JTkMxOiB0aGlzLT5lbWl0 QXRvbWljSW5zdChJLGlyOjpBVE9NSUNfT1BfSU5DKTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2Ug R0VOX09DTF9BVE9NSUNfREVDMDoKLS0gICAgICAgICAgY2FzZSBHRU5fT0NMX0FUT01JQ19ERUMx OiB0aGlzLT5lbWl0QXRvbWljSW5zdChJLENTLGlyOjpBVE9NSUNfT1BfREVDKTsgYnJlYWs7Ci0r ICAgICAgICAgIGNhc2UgR0VOX09DTF9BVE9NSUNfREVDMTogdGhpcy0+ZW1pdEF0b21pY0luc3Qo SSxpcjo6QVRPTUlDX09QX0RFQyk7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfQVRP TUlDX1VNSU4wOgotLSAgICAgICAgICBjYXNlIEdFTl9PQ0xfQVRPTUlDX1VNSU4xOiB0aGlzLT5l bWl0QXRvbWljSW5zdChJLENTLGlyOjpBVE9NSUNfT1BfVU1JTik7IGJyZWFrOwotKyAgICAgICAg ICBjYXNlIEdFTl9PQ0xfQVRPTUlDX1VNSU4xOiB0aGlzLT5lbWl0QXRvbWljSW5zdChJLGlyOjpB VE9NSUNfT1BfVU1JTik7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfQVRPTUlDX1VN QVgwOgotLSAgICAgICAgICBjYXNlIEdFTl9PQ0xfQVRPTUlDX1VNQVgxOiB0aGlzLT5lbWl0QXRv bWljSW5zdChJLENTLGlyOjpBVE9NSUNfT1BfVU1BWCk7IGJyZWFrOwotKyAgICAgICAgICBjYXNl IEdFTl9PQ0xfQVRPTUlDX1VNQVgxOiB0aGlzLT5lbWl0QXRvbWljSW5zdChJLGlyOjpBVE9NSUNf T1BfVU1BWCk7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfQVRPTUlDX0lNSU4wOgot LSAgICAgICAgICBjYXNlIEdFTl9PQ0xfQVRPTUlDX0lNSU4xOiB0aGlzLT5lbWl0QXRvbWljSW5z dChJLENTLGlyOjpBVE9NSUNfT1BfSU1JTik7IGJyZWFrOwotKyAgICAgICAgICBjYXNlIEdFTl9P Q0xfQVRPTUlDX0lNSU4xOiB0aGlzLT5lbWl0QXRvbWljSW5zdChJLGlyOjpBVE9NSUNfT1BfSU1J Tik7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfQVRPTUlDX0lNQVgwOgotLSAgICAg ICAgICBjYXNlIEdFTl9PQ0xfQVRPTUlDX0lNQVgxOiB0aGlzLT5lbWl0QXRvbWljSW5zdChJLENT LGlyOjpBVE9NSUNfT1BfSU1BWCk7IGJyZWFrOwotKyAgICAgICAgICBjYXNlIEdFTl9PQ0xfQVRP TUlDX0lNQVgxOiB0aGlzLT5lbWl0QXRvbWljSW5zdChJLGlyOjpBVE9NSUNfT1BfSU1BWCk7IGJy ZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfQVRPTUlDX0NNUFhDSEcwOgotLSAgICAgICAg ICBjYXNlIEdFTl9PQ0xfQVRPTUlDX0NNUFhDSEcxOiB0aGlzLT5lbWl0QXRvbWljSW5zdChJLENT LGlyOjpBVE9NSUNfT1BfQ01QWENIRyk7IGJyZWFrOwotKyAgICAgICAgICBjYXNlIEdFTl9PQ0xf QVRPTUlDX0NNUFhDSEcxOiB0aGlzLT5lbWl0QXRvbWljSW5zdChJLGlyOjpBVE9NSUNfT1BfQ01Q WENIRyk7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfR0VUX0lNQUdFX1dJRFRIOgot ICAgICAgICAgICBjYXNlIEdFTl9PQ0xfR0VUX0lNQUdFX0hFSUdIVDoKLSAgICAgICAgICAgY2Fz ZSBHRU5fT0NMX0dFVF9JTUFHRV9ERVBUSDoKLUBAIC01NDI5LDQ4ICs1NDI3LDQ4IEBACi0gICAg ICAgICAgICAgY3R4LldBSVQoKTsKLSAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgfQot LSAgICAgICAgICBjYXNlIEdFTl9PQ0xfV09SS19HUk9VUF9BTEw6IHRoaXMtPmVtaXRXb3JrR3Jv dXBJbnN0KEksIENTLCBpcjo6V09SS0dST1VQX09QX0FMTCk7IGJyZWFrOwotLSAgICAgICAgICBj YXNlIEdFTl9PQ0xfV09SS19HUk9VUF9BTlk6IHRoaXMtPmVtaXRXb3JrR3JvdXBJbnN0KEksIENT LCBpcjo6V09SS0dST1VQX09QX0FOWSk7IGJyZWFrOwotKyAgICAgICAgICBjYXNlIEdFTl9PQ0xf V09SS19HUk9VUF9BTEw6IHRoaXMtPmVtaXRXb3JrR3JvdXBJbnN0KEksIGlyOjpXT1JLR1JPVVBf T1BfQUxMKTsgYnJlYWs7Ci0rICAgICAgICAgIGNhc2UgR0VOX09DTF9XT1JLX0dST1VQX0FOWTog dGhpcy0+ZW1pdFdvcmtHcm91cEluc3QoSSwgaXI6OldPUktHUk9VUF9PUF9BTlkpOyBicmVhazsK LSAgICAgICAgICAgY2FzZSBHRU5fT0NMX1dPUktfR1JPVVBfQlJPQURDQVNUOgotLSAgICAgICAg ICAgIHRoaXMtPmVtaXRXb3JrR3JvdXBJbnN0KEksIENTLCBpcjo6V09SS0dST1VQX09QX0JST0FE Q0FTVCk7IGJyZWFrOwotKyAgICAgICAgICAgIHRoaXMtPmVtaXRXb3JrR3JvdXBJbnN0KEksIGly OjpXT1JLR1JPVVBfT1BfQlJPQURDQVNUKTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09D TF9XT1JLX0dST1VQX1JFRFVDRV9BREQ6Ci0tICAgICAgICAgICAgdGhpcy0+ZW1pdFdvcmtHcm91 cEluc3QoSSwgQ1MsIGlyOjpXT1JLR1JPVVBfT1BfUkVEVUNFX0FERCk7IGJyZWFrOwotKyAgICAg ICAgICAgIHRoaXMtPmVtaXRXb3JrR3JvdXBJbnN0KEksIGlyOjpXT1JLR1JPVVBfT1BfUkVEVUNF X0FERCk7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfV09SS19HUk9VUF9SRURVQ0Vf TUFYOgotLSAgICAgICAgICAgIHRoaXMtPmVtaXRXb3JrR3JvdXBJbnN0KEksIENTLCBpcjo6V09S S0dST1VQX09QX1JFRFVDRV9NQVgpOyBicmVhazsKLSsgICAgICAgICAgICB0aGlzLT5lbWl0V29y a0dyb3VwSW5zdChJLCBpcjo6V09SS0dST1VQX09QX1JFRFVDRV9NQVgpOyBicmVhazsKLSAgICAg ICAgICAgY2FzZSBHRU5fT0NMX1dPUktfR1JPVVBfUkVEVUNFX01JTjoKLS0gICAgICAgICAgICB0 aGlzLT5lbWl0V29ya0dyb3VwSW5zdChJLCBDUywgaXI6OldPUktHUk9VUF9PUF9SRURVQ0VfTUlO KTsgYnJlYWs7Ci0rICAgICAgICAgICAgdGhpcy0+ZW1pdFdvcmtHcm91cEluc3QoSSwgaXI6OldP UktHUk9VUF9PUF9SRURVQ0VfTUlOKTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9X T1JLX0dST1VQX1NDQU5fRVhDTFVTSVZFX0FERDoKLS0gICAgICAgICAgICB0aGlzLT5lbWl0V29y a0dyb3VwSW5zdChJLCBDUywgaXI6OldPUktHUk9VUF9PUF9FWENMVVNJVkVfQUREKTsgYnJlYWs7 Ci0rICAgICAgICAgICAgdGhpcy0+ZW1pdFdvcmtHcm91cEluc3QoSSwgaXI6OldPUktHUk9VUF9P UF9FWENMVVNJVkVfQUREKTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9XT1JLX0dS T1VQX1NDQU5fRVhDTFVTSVZFX01BWDoKLS0gICAgICAgICAgICB0aGlzLT5lbWl0V29ya0dyb3Vw SW5zdChJLCBDUywgaXI6OldPUktHUk9VUF9PUF9FWENMVVNJVkVfTUFYKTsgYnJlYWs7Ci0rICAg ICAgICAgICAgdGhpcy0+ZW1pdFdvcmtHcm91cEluc3QoSSwgaXI6OldPUktHUk9VUF9PUF9FWENM VVNJVkVfTUFYKTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9XT1JLX0dST1VQX1ND QU5fRVhDTFVTSVZFX01JTjoKLS0gICAgICAgICAgICB0aGlzLT5lbWl0V29ya0dyb3VwSW5zdChJ LCBDUywgaXI6OldPUktHUk9VUF9PUF9FWENMVVNJVkVfTUlOKTsgYnJlYWs7Ci0rICAgICAgICAg ICAgdGhpcy0+ZW1pdFdvcmtHcm91cEluc3QoSSwgaXI6OldPUktHUk9VUF9PUF9FWENMVVNJVkVf TUlOKTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9XT1JLX0dST1VQX1NDQU5fSU5D TFVTSVZFX0FERDoKLS0gICAgICAgICAgICB0aGlzLT5lbWl0V29ya0dyb3VwSW5zdChJLCBDUywg aXI6OldPUktHUk9VUF9PUF9JTkNMVVNJVkVfQUREKTsgYnJlYWs7Ci0rICAgICAgICAgICAgdGhp cy0+ZW1pdFdvcmtHcm91cEluc3QoSSwgaXI6OldPUktHUk9VUF9PUF9JTkNMVVNJVkVfQUREKTsg YnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9XT1JLX0dST1VQX1NDQU5fSU5DTFVTSVZF X01BWDoKLS0gICAgICAgICAgICB0aGlzLT5lbWl0V29ya0dyb3VwSW5zdChJLCBDUywgaXI6OldP UktHUk9VUF9PUF9JTkNMVVNJVkVfTUFYKTsgYnJlYWs7Ci0rICAgICAgICAgICAgdGhpcy0+ZW1p dFdvcmtHcm91cEluc3QoSSwgaXI6OldPUktHUk9VUF9PUF9JTkNMVVNJVkVfTUFYKTsgYnJlYWs7 Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9XT1JLX0dST1VQX1NDQU5fSU5DTFVTSVZFX01JTjoK LS0gICAgICAgICAgICB0aGlzLT5lbWl0V29ya0dyb3VwSW5zdChJLCBDUywgaXI6OldPUktHUk9V UF9PUF9JTkNMVVNJVkVfTUlOKTsgYnJlYWs7Ci0rICAgICAgICAgICAgdGhpcy0+ZW1pdFdvcmtH cm91cEluc3QoSSwgaXI6OldPUktHUk9VUF9PUF9JTkNMVVNJVkVfTUlOKTsgYnJlYWs7Ci0gICAg ICAgICAgIGNhc2UgR0VOX09DTF9TVUJfR1JPVVBfQlJPQURDQVNUOgotLSAgICAgICAgICAgIHRo aXMtPmVtaXRTdWJHcm91cEluc3QoSSwgQ1MsIGlyOjpXT1JLR1JPVVBfT1BfQlJPQURDQVNUKTsg YnJlYWs7Ci0rICAgICAgICAgICAgdGhpcy0+ZW1pdFN1Ykdyb3VwSW5zdChJLCBpcjo6V09SS0dS T1VQX09QX0JST0FEQ0FTVCk7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfU1VCX0dS T1VQX1JFRFVDRV9BREQ6Ci0tICAgICAgICAgICAgdGhpcy0+ZW1pdFN1Ykdyb3VwSW5zdChJLCBD UywgaXI6OldPUktHUk9VUF9PUF9SRURVQ0VfQUREKTsgYnJlYWs7Ci0rICAgICAgICAgICAgdGhp cy0+ZW1pdFN1Ykdyb3VwSW5zdChJLCBpcjo6V09SS0dST1VQX09QX1JFRFVDRV9BREQpOyBicmVh azsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX1NVQl9HUk9VUF9SRURVQ0VfTUFYOgotLSAgICAg ICAgICAgIHRoaXMtPmVtaXRTdWJHcm91cEluc3QoSSwgQ1MsIGlyOjpXT1JLR1JPVVBfT1BfUkVE VUNFX01BWCk7IGJyZWFrOwotKyAgICAgICAgICAgIHRoaXMtPmVtaXRTdWJHcm91cEluc3QoSSwg aXI6OldPUktHUk9VUF9PUF9SRURVQ0VfTUFYKTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VO X09DTF9TVUJfR1JPVVBfUkVEVUNFX01JTjoKLS0gICAgICAgICAgICB0aGlzLT5lbWl0U3ViR3Jv dXBJbnN0KEksIENTLCBpcjo6V09SS0dST1VQX09QX1JFRFVDRV9NSU4pOyBicmVhazsKLSsgICAg ICAgICAgICB0aGlzLT5lbWl0U3ViR3JvdXBJbnN0KEksIGlyOjpXT1JLR1JPVVBfT1BfUkVEVUNF X01JTik7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfU1VCX0dST1VQX1NDQU5fRVhD TFVTSVZFX0FERDoKLS0gICAgICAgICAgICB0aGlzLT5lbWl0U3ViR3JvdXBJbnN0KEksIENTLCBp cjo6V09SS0dST1VQX09QX0VYQ0xVU0lWRV9BREQpOyBicmVhazsKLSsgICAgICAgICAgICB0aGlz LT5lbWl0U3ViR3JvdXBJbnN0KEksIGlyOjpXT1JLR1JPVVBfT1BfRVhDTFVTSVZFX0FERCk7IGJy ZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfU1VCX0dST1VQX1NDQU5fRVhDTFVTSVZFX01B WDoKLS0gICAgICAgICAgICB0aGlzLT5lbWl0U3ViR3JvdXBJbnN0KEksIENTLCBpcjo6V09SS0dS T1VQX09QX0VYQ0xVU0lWRV9NQVgpOyBicmVhazsKLSsgICAgICAgICAgICB0aGlzLT5lbWl0U3Vi R3JvdXBJbnN0KEksIGlyOjpXT1JLR1JPVVBfT1BfRVhDTFVTSVZFX01BWCk7IGJyZWFrOwotICAg ICAgICAgICBjYXNlIEdFTl9PQ0xfU1VCX0dST1VQX1NDQU5fRVhDTFVTSVZFX01JTjoKLS0gICAg ICAgICAgICB0aGlzLT5lbWl0U3ViR3JvdXBJbnN0KEksIENTLCBpcjo6V09SS0dST1VQX09QX0VY Q0xVU0lWRV9NSU4pOyBicmVhazsKLSsgICAgICAgICAgICB0aGlzLT5lbWl0U3ViR3JvdXBJbnN0 KEksIGlyOjpXT1JLR1JPVVBfT1BfRVhDTFVTSVZFX01JTik7IGJyZWFrOwotICAgICAgICAgICBj YXNlIEdFTl9PQ0xfU1VCX0dST1VQX1NDQU5fSU5DTFVTSVZFX0FERDoKLS0gICAgICAgICAgICB0 aGlzLT5lbWl0U3ViR3JvdXBJbnN0KEksIENTLCBpcjo6V09SS0dST1VQX09QX0lOQ0xVU0lWRV9B REQpOyBicmVhazsKLSsgICAgICAgICAgICB0aGlzLT5lbWl0U3ViR3JvdXBJbnN0KEksIGlyOjpX T1JLR1JPVVBfT1BfSU5DTFVTSVZFX0FERCk7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9P Q0xfU1VCX0dST1VQX1NDQU5fSU5DTFVTSVZFX01BWDoKLS0gICAgICAgICAgICB0aGlzLT5lbWl0 U3ViR3JvdXBJbnN0KEksIENTLCBpcjo6V09SS0dST1VQX09QX0lOQ0xVU0lWRV9NQVgpOyBicmVh azsKLSsgICAgICAgICAgICB0aGlzLT5lbWl0U3ViR3JvdXBJbnN0KEksIGlyOjpXT1JLR1JPVVBf T1BfSU5DTFVTSVZFX01BWCk7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfU1VCX0dS T1VQX1NDQU5fSU5DTFVTSVZFX01JTjoKLS0gICAgICAgICAgICB0aGlzLT5lbWl0U3ViR3JvdXBJ bnN0KEksIENTLCBpcjo6V09SS0dST1VQX09QX0lOQ0xVU0lWRV9NSU4pOyBicmVhazsKLSsgICAg ICAgICAgICB0aGlzLT5lbWl0U3ViR3JvdXBJbnN0KEksIGlyOjpXT1JLR1JPVVBfT1BfSU5DTFVT SVZFX01JTik7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfTFJQOgotICAgICAgICAg ICB7Ci0gICAgICAgICAgICAgY29uc3QgaXI6OlJlZ2lzdGVyIGRzdCAgPSB0aGlzLT5nZXRSZWdp c3RlcigmSSk7Ci1AQCAtNTQ4NCw2OSArNTQ4Miw2OSBAQAotICAgICAgICAgICAgIGJyZWFrOwot ICAgICAgICAgICB9Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9TVUJfR1JPVVBfQkxPQ0tfUkVB RF9VSV9NRU06Ci0tICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlTWVtSW5zdChJ LCBDUywgZmFsc2UsIDEpOyBicmVhazsKLSsgICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFk V3JpdGVNZW1JbnN0KEksIGZhbHNlLCAxKTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09D TF9TVUJfR1JPVVBfQkxPQ0tfUkVBRF9VSV9NRU0yOgotLSAgICAgICAgICAgIHRoaXMtPmVtaXRC bG9ja1JlYWRXcml0ZU1lbUluc3QoSSwgQ1MsIGZhbHNlLCAyKTsgYnJlYWs7Ci0rICAgICAgICAg ICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlTWVtSW5zdChJLCBmYWxzZSwgMik7IGJyZWFrOwot ICAgICAgICAgICBjYXNlIEdFTl9PQ0xfU1VCX0dST1VQX0JMT0NLX1JFQURfVUlfTUVNNDoKLS0g ICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVNZW1JbnN0KEksIENTLCBmYWxzZSwg NCk7IGJyZWFrOwotKyAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZU1lbUluc3Qo SSwgZmFsc2UsIDQpOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX1NVQl9HUk9VUF9C TE9DS19SRUFEX1VJX01FTTg6Ci0tICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRl TWVtSW5zdChJLCBDUywgZmFsc2UsIDgpOyBicmVhazsKLSsgICAgICAgICAgICB0aGlzLT5lbWl0 QmxvY2tSZWFkV3JpdGVNZW1JbnN0KEksIGZhbHNlLCA4KTsgYnJlYWs7Ci0gICAgICAgICAgIGNh c2UgR0VOX09DTF9TVUJfR1JPVVBfQkxPQ0tfV1JJVEVfVUlfTUVNOgotLSAgICAgICAgICAgIHRo aXMtPmVtaXRCbG9ja1JlYWRXcml0ZU1lbUluc3QoSSwgQ1MsIHRydWUsIDEpOyBicmVhazsKLSsg ICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVNZW1JbnN0KEksIHRydWUsIDEpOyBi cmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX1NVQl9HUk9VUF9CTE9DS19XUklURV9VSV9N RU0yOgotLSAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZU1lbUluc3QoSSwgQ1Ms IHRydWUsIDIpOyBicmVhazsKLSsgICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVN ZW1JbnN0KEksIHRydWUsIDIpOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX1NVQl9H Uk9VUF9CTE9DS19XUklURV9VSV9NRU00OgotLSAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1Jl YWRXcml0ZU1lbUluc3QoSSwgQ1MsIHRydWUsIDQpOyBicmVhazsKLSsgICAgICAgICAgICB0aGlz LT5lbWl0QmxvY2tSZWFkV3JpdGVNZW1JbnN0KEksIHRydWUsIDQpOyBicmVhazsKLSAgICAgICAg ICAgY2FzZSBHRU5fT0NMX1NVQl9HUk9VUF9CTE9DS19XUklURV9VSV9NRU04OgotLSAgICAgICAg ICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZU1lbUluc3QoSSwgQ1MsIHRydWUsIDgpOyBicmVh azsKLSsgICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVNZW1JbnN0KEksIHRydWUs IDgpOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX1NVQl9HUk9VUF9CTE9DS19SRUFE X1VJX0lNQUdFOgotLSAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZUltYWdlSW5z dChJLCBDUywgZmFsc2UsIDEpOyBicmVhazsKLSsgICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tS ZWFkV3JpdGVJbWFnZUluc3QoSSwgZmFsc2UsIDEpOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBH RU5fT0NMX1NVQl9HUk9VUF9CTE9DS19SRUFEX1VJX0lNQUdFMjoKLS0gICAgICAgICAgICB0aGlz LT5lbWl0QmxvY2tSZWFkV3JpdGVJbWFnZUluc3QoSSwgQ1MsIGZhbHNlLCAyKTsgYnJlYWs7Ci0r ICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlSW1hZ2VJbnN0KEksIGZhbHNlLCAy KTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9TVUJfR1JPVVBfQkxPQ0tfUkVBRF9V SV9JTUFHRTQ6Ci0tICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlSW1hZ2VJbnN0 KEksIENTLCBmYWxzZSwgNCk7IGJyZWFrOwotKyAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1Jl YWRXcml0ZUltYWdlSW5zdChJLCBmYWxzZSwgNCk7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdF Tl9PQ0xfU1VCX0dST1VQX0JMT0NLX1JFQURfVUlfSU1BR0U4OgotLSAgICAgICAgICAgIHRoaXMt PmVtaXRCbG9ja1JlYWRXcml0ZUltYWdlSW5zdChJLCBDUywgZmFsc2UsIDgpOyBicmVhazsKLSsg ICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVJbWFnZUluc3QoSSwgZmFsc2UsIDgp OyBicmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX1NVQl9HUk9VUF9CTE9DS19XUklURV9V SV9JTUFHRToKLS0gICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVJbWFnZUluc3Qo SSwgQ1MsIHRydWUsIDEpOyBicmVhazsKLSsgICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFk V3JpdGVJbWFnZUluc3QoSSwgdHJ1ZSwgMSk7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9P Q0xfU1VCX0dST1VQX0JMT0NLX1dSSVRFX1VJX0lNQUdFMjoKLS0gICAgICAgICAgICB0aGlzLT5l bWl0QmxvY2tSZWFkV3JpdGVJbWFnZUluc3QoSSwgQ1MsIHRydWUsIDIpOyBicmVhazsKLSsgICAg ICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVJbWFnZUluc3QoSSwgdHJ1ZSwgMik7IGJy ZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfU1VCX0dST1VQX0JMT0NLX1dSSVRFX1VJX0lN QUdFNDoKLS0gICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVJbWFnZUluc3QoSSwg Q1MsIHRydWUsIDQpOyBicmVhazsKLSsgICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3Jp dGVJbWFnZUluc3QoSSwgdHJ1ZSwgNCk7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xf U1VCX0dST1VQX0JMT0NLX1dSSVRFX1VJX0lNQUdFODoKLS0gICAgICAgICAgICB0aGlzLT5lbWl0 QmxvY2tSZWFkV3JpdGVJbWFnZUluc3QoSSwgQ1MsIHRydWUsIDgpOyBicmVhazsKLSsgICAgICAg ICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVJbWFnZUluc3QoSSwgdHJ1ZSwgOCk7IGJyZWFr OwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfU1VCX0dST1VQX0JMT0NLX1JFQURfVVNfTUVNOgot LSAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZU1lbUluc3QoSSwgQ1MsIGZhbHNl LCAxLCBpcjo6VFlQRV9VMTYpOyBicmVhazsKLSsgICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tS ZWFkV3JpdGVNZW1JbnN0KEksIGZhbHNlLCAxLCBpcjo6VFlQRV9VMTYpOyBicmVhazsKLSAgICAg ICAgICAgY2FzZSBHRU5fT0NMX1NVQl9HUk9VUF9CTE9DS19SRUFEX1VTX01FTTI6Ci0tICAgICAg ICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlTWVtSW5zdChJLCBDUywgZmFsc2UsIDIsIGly OjpUWVBFX1UxNik7IGJyZWFrOwotKyAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0 ZU1lbUluc3QoSSwgZmFsc2UsIDIsIGlyOjpUWVBFX1UxNik7IGJyZWFrOwotICAgICAgICAgICBj YXNlIEdFTl9PQ0xfU1VCX0dST1VQX0JMT0NLX1JFQURfVVNfTUVNNDoKLS0gICAgICAgICAgICB0 aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVNZW1JbnN0KEksIENTLCBmYWxzZSwgNCwgaXI6OlRZUEVf VTE2KTsgYnJlYWs7Ci0rICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlTWVtSW5z dChJLCBmYWxzZSwgNCwgaXI6OlRZUEVfVTE2KTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VO X09DTF9TVUJfR1JPVVBfQkxPQ0tfUkVBRF9VU19NRU04OgotLSAgICAgICAgICAgIHRoaXMtPmVt aXRCbG9ja1JlYWRXcml0ZU1lbUluc3QoSSwgQ1MsIGZhbHNlLCA4LCBpcjo6VFlQRV9VMTYpOyBi cmVhazsKLSsgICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVNZW1JbnN0KEksIGZh bHNlLCA4LCBpcjo6VFlQRV9VMTYpOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX1NV Ql9HUk9VUF9CTE9DS19XUklURV9VU19NRU06Ci0tICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2Nr UmVhZFdyaXRlTWVtSW5zdChJLCBDUywgdHJ1ZSwgMSwgaXI6OlRZUEVfVTE2KTsgYnJlYWs7Ci0r ICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlTWVtSW5zdChJLCB0cnVlLCAxLCBp cjo6VFlQRV9VMTYpOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX1NVQl9HUk9VUF9C TE9DS19XUklURV9VU19NRU0yOgotLSAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0 ZU1lbUluc3QoSSwgQ1MsIHRydWUsIDIsIGlyOjpUWVBFX1UxNik7IGJyZWFrOwotKyAgICAgICAg ICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZU1lbUluc3QoSSwgdHJ1ZSwgMiwgaXI6OlRZUEVf VTE2KTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9TVUJfR1JPVVBfQkxPQ0tfV1JJ VEVfVVNfTUVNNDoKLS0gICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVNZW1JbnN0 KEksIENTLCB0cnVlLCA0LCBpcjo6VFlQRV9VMTYpOyBicmVhazsKLSsgICAgICAgICAgICB0aGlz LT5lbWl0QmxvY2tSZWFkV3JpdGVNZW1JbnN0KEksIHRydWUsIDQsIGlyOjpUWVBFX1UxNik7IGJy ZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfU1VCX0dST1VQX0JMT0NLX1dSSVRFX1VTX01F TTg6Ci0tICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlTWVtSW5zdChJLCBDUywg dHJ1ZSwgOCwgaXI6OlRZUEVfVTE2KTsgYnJlYWs7Ci0rICAgICAgICAgICAgdGhpcy0+ZW1pdEJs b2NrUmVhZFdyaXRlTWVtSW5zdChJLCB0cnVlLCA4LCBpcjo6VFlQRV9VMTYpOyBicmVhazsKLSAg ICAgICAgICAgY2FzZSBHRU5fT0NMX1NVQl9HUk9VUF9CTE9DS19SRUFEX1VTX0lNQUdFOgotLSAg ICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZUltYWdlSW5zdChJLCBDUywgZmFsc2Us IDEsIGlyOjpUWVBFX1UxNik7IGJyZWFrOwotKyAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1Jl YWRXcml0ZUltYWdlSW5zdChJLCBmYWxzZSwgMSwgaXI6OlRZUEVfVTE2KTsgYnJlYWs7Ci0gICAg ICAgICAgIGNhc2UgR0VOX09DTF9TVUJfR1JPVVBfQkxPQ0tfUkVBRF9VU19JTUFHRTI6Ci0tICAg ICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlSW1hZ2VJbnN0KEksIENTLCBmYWxzZSwg MiwgaXI6OlRZUEVfVTE2KTsgYnJlYWs7Ci0rICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVh ZFdyaXRlSW1hZ2VJbnN0KEksIGZhbHNlLCAyLCBpcjo6VFlQRV9VMTYpOyBicmVhazsKLSAgICAg ICAgICAgY2FzZSBHRU5fT0NMX1NVQl9HUk9VUF9CTE9DS19SRUFEX1VTX0lNQUdFNDoKLS0gICAg ICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVJbWFnZUluc3QoSSwgQ1MsIGZhbHNlLCA0 LCBpcjo6VFlQRV9VMTYpOyBicmVhazsKLSsgICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFk V3JpdGVJbWFnZUluc3QoSSwgZmFsc2UsIDQsIGlyOjpUWVBFX1UxNik7IGJyZWFrOwotICAgICAg ICAgICBjYXNlIEdFTl9PQ0xfU1VCX0dST1VQX0JMT0NLX1JFQURfVVNfSU1BR0U4OgotLSAgICAg ICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZUltYWdlSW5zdChJLCBDUywgZmFsc2UsIDgs IGlyOjpUWVBFX1UxNik7IGJyZWFrOwotKyAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRX cml0ZUltYWdlSW5zdChJLCBmYWxzZSwgOCwgaXI6OlRZUEVfVTE2KTsgYnJlYWs7Ci0gICAgICAg ICAgIGNhc2UgR0VOX09DTF9TVUJfR1JPVVBfQkxPQ0tfV1JJVEVfVVNfSU1BR0U6Ci0tICAgICAg ICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlSW1hZ2VJbnN0KEksIENTLCB0cnVlLCAxLCBp cjo6VFlQRV9VMTYpOyBicmVhazsKLSsgICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3Jp dGVJbWFnZUluc3QoSSwgdHJ1ZSwgMSwgaXI6OlRZUEVfVTE2KTsgYnJlYWs7Ci0gICAgICAgICAg IGNhc2UgR0VOX09DTF9TVUJfR1JPVVBfQkxPQ0tfV1JJVEVfVVNfSU1BR0UyOgotLSAgICAgICAg ICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZUltYWdlSW5zdChJLCBDUywgdHJ1ZSwgMiwgaXI6 OlRZUEVfVTE2KTsgYnJlYWs7Ci0rICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRl SW1hZ2VJbnN0KEksIHRydWUsIDIsIGlyOjpUWVBFX1UxNik7IGJyZWFrOwotICAgICAgICAgICBj YXNlIEdFTl9PQ0xfU1VCX0dST1VQX0JMT0NLX1dSSVRFX1VTX0lNQUdFNDoKLS0gICAgICAgICAg ICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVJbWFnZUluc3QoSSwgQ1MsIHRydWUsIDQsIGlyOjpU WVBFX1UxNik7IGJyZWFrOwotKyAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZUlt YWdlSW5zdChJLCB0cnVlLCA0LCBpcjo6VFlQRV9VMTYpOyBicmVhazsKLSAgICAgICAgICAgY2Fz ZSBHRU5fT0NMX1NVQl9HUk9VUF9CTE9DS19XUklURV9VU19JTUFHRTg6Ci0tICAgICAgICAgICAg dGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlSW1hZ2VJbnN0KEksIENTLCB0cnVlLCA4LCBpcjo6VFlQ RV9VMTYpOyBicmVhazsKLSsgICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVJbWFn ZUluc3QoSSwgdHJ1ZSwgOCwgaXI6OlRZUEVfVTE2KTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2Ug R0VOX09DTF9HRVRfUElQRToKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX01BS0VfUklEOgotICAg ICAgICAgICBjYXNlIEdFTl9PQ0xfR0VUX1JJRDoKLS0tLSBhL2JhY2tlbmQvc3JjL2xsdm0vbGx2 bV9pbmNsdWRlcy5ocHAJMjAyMC0xMS0wOSAxNjo0ODoyMC44MjM4NjYxMTIgKzAxMDAKLSsrKyBi L2JhY2tlbmQvc3JjL2xsdm0vbGx2bV9pbmNsdWRlcy5ocHAJMjAyMC0xMS0wOSAxOTowMDowOS45 NTU5MjY3OTUgKzAxMDAKLUBAIC0xMDMsNyArMTAzLDYgQEAKLQotICNpZiBMTFZNX1ZFUlNJT05f TUFKT1IgKiAxMCArIExMVk1fVkVSU0lPTl9NSU5PUiA+PSAzNQotICNpbmNsdWRlICJsbHZtL0lS L01hbmdsZXIuaCIKLS0jaW5jbHVkZSAibGx2bS9JUi9DYWxsU2l0ZS5oIgotICNpbmNsdWRlICJs bHZtL0lSL0NGRy5oIgotICNpbmNsdWRlICJsbHZtL0lSL0luc3RWaXNpdG9yLmgiCi0gI2luY2x1 ZGUgImxsdm0vSVIvSVJQcmludGluZ1Bhc3Nlcy5oIgotLS0tIGEvYmFja2VuZC9zcmMvbGx2bS9s bHZtX2xvYWRzdG9yZV9vcHRpbWl6YXRpb24uY3BwCTIwMjAtMTEtMDkgMTY6NDg6MjAuODIzODY2 MTEyICswMTAwCi0rKysgYi9iYWNrZW5kL3NyYy9sbHZtL2xsdm1fbG9hZHN0b3JlX29wdGltaXph dGlvbi5jcHAJMjAyMC0xMS0wOSAxOToxMDozNy4xNDE4NTIzMDggKzAxMDAKLUBAIC0xNjAsNyAr MTYwLDcgQEAKLSAgICAgVmFsdWUgKnZlY1B0ciA9IEJ1aWxkZXIuQ3JlYXRlQml0Q2FzdChsZC0+ Z2V0UG9pbnRlck9wZXJhbmQoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgUG9pbnRlclR5cGU6OmdldCh2ZWNUeSwgYWRkclNwYWNlKSk7Ci0gICAgIExvYWRJbnN0 ICp2ZWNWYWx1ZSA9IEJ1aWxkZXIuQ3JlYXRlTG9hZCh2ZWNQdHIpOwotLSAgICB2ZWNWYWx1ZS0+ c2V0QWxpZ25tZW50KGFsaWduKTsKLSsgICAgdmVjVmFsdWUtPnNldEFsaWdubWVudChhbGlnbi52 YWx1ZU9yT25lKCkpOwotCi0gICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBzaXplOyArK2kp IHsKLSAgICAgICBWYWx1ZSAqUyA9IEJ1aWxkZXIuQ3JlYXRlRXh0cmFjdEVsZW1lbnQodmVjVmFs dWUsIEJ1aWxkZXIuZ2V0SW50MzIoaSkpOwotQEAgLTI1MSw3ICsyNTEsNyBAQAotICAgICAgIHJl dHVybjsKLSAgICAgVmFsdWUgKm5ld1B0ciA9IEJ1aWxkZXIuQ3JlYXRlQml0Q2FzdChzdFBvaW50 ZXIsIFBvaW50ZXJUeXBlOjpnZXQodmVjVHksIGFkZHJTcGFjZSkpOwotICAgICBTdG9yZUluc3Qg Km5ld1NUID0gQnVpbGRlci5DcmVhdGVTdG9yZShwYXJlbnQsIG5ld1B0cik7Ci0tICAgIG5ld1NU LT5zZXRBbGlnbm1lbnQoYWxpZ24pOwotKyAgICBuZXdTVC0+c2V0QWxpZ25tZW50KGFsaWduLnZh bHVlT3JPbmUoKSk7Ci0gICB9Ci0KLSAgIC8vIEZpbmQgdGhlIHNhZmUgaXRlcmF0b3Igd2UgY2Fu IHBvaW50IHRvLiBJZiByZW9yZGVyIGhhcHBlbnMsIHdlIG5lZWQgdG8KLS0tLSBhL2JhY2tlbmQv c3JjL2xsdm0vbGx2bV9wYXNzZXMuY3BwCTIwMjAtMTEtMDkgMTY6NDg6MjAuODIzODY2MTEyICsw MTAwCi0rKysgYi9iYWNrZW5kL3NyYy9sbHZtL2xsdm1fcGFzc2VzLmNwcAkyMDIwLTExLTA5IDE4 OjQ4OjU1Ljk5NzAwNjgzNyArMDEwMAotQEAgLTk1LDcgKzk1LDcgQEAKLSAgIHsKLSAgICAgc3dp dGNoIChUeS0+Z2V0VHlwZUlEKCkpIHsKLSAgICAgICBjYXNlIFR5cGU6OlZvaWRUeUlEOiBOT1Rf U1VQUE9SVEVEOwotLSAgICAgIGNhc2UgVHlwZTo6VmVjdG9yVHlJRDoKLSsgICAgICBjYXNlIFR5 cGU6OkZpeGVkVmVjdG9yVHlJRDoKLSAgICAgICB7Ci0gICAgICAgICBjb25zdCBWZWN0b3JUeXBl KiBWZWNUeSA9IGNhc3Q8VmVjdG9yVHlwZT4oVHkpOwotICAgICAgICAgdWludDMyX3QgZWxlbU51 bSA9IFZlY1R5LT5nZXROdW1FbGVtZW50cygpOwotQEAgLTEzOCw3ICsxMzgsNyBAQAotICAgICAg IGNhc2UgVHlwZTo6SGFsZlR5SUQ6ICAgIHJldHVybiAxNjsKLSAgICAgICBjYXNlIFR5cGU6OkZs b2F0VHlJRDogICByZXR1cm4gMzI7Ci0gICAgICAgY2FzZSBUeXBlOjpEb3VibGVUeUlEOiAgcmV0 dXJuIDY0OwotLSAgICAgIGNhc2UgVHlwZTo6VmVjdG9yVHlJRDoKLSsgICAgICBjYXNlIFR5cGU6 OkZpeGVkVmVjdG9yVHlJRDoKLSAgICAgICB7Ci0gICAgICAgICBjb25zdCBWZWN0b3JUeXBlKiBW ZWNUeSA9IGNhc3Q8VmVjdG9yVHlwZT4oVHkpOwotICAgICAgICAgdWludDMyX3QgbnVtRWxlbSA9 IFZlY1R5LT5nZXROdW1FbGVtZW50cygpOwotQEAgLTE4NCwxMCArMTg0LDEyIEBACi0gICAgIFR5 cGUgKmVsZW1lbnRUeXBlID0gTlVMTDsKLSAgICAgaWYgKFBvaW50ZXJUeXBlKiBwdHJUeXBlID0g ZHluX2Nhc3Q8UG9pbnRlclR5cGU+KGVsdFR5KSkKLSAgICAgICBlbGVtZW50VHlwZSA9IHB0clR5 cGUtPmdldEVsZW1lbnRUeXBlKCk7Ci0tICAgIGVsc2UgaWYoU2VxdWVudGlhbFR5cGUgKiBzZXFU eXBlID0gZHluX2Nhc3Q8U2VxdWVudGlhbFR5cGU+KGVsdFR5KSkKLS0gICAgICBlbGVtZW50VHlw ZSA9IHNlcVR5cGUtPmdldEVsZW1lbnRUeXBlKCk7Ci0tICAgIGVsc2UgaWYoQ29tcG9zaXRlVHlw ZSAqIGNvbXBUeT0gZHluX2Nhc3Q8Q29tcG9zaXRlVHlwZT4oZWx0VHkpKQotLSAgICAgIGVsZW1l bnRUeXBlID0gY29tcFR5LT5nZXRUeXBlQXRJbmRleChpbmRleCk7Ci0rICAgIGVsc2UgaWYgKEFy cmF5VHlwZSAqIGFyclR5cGUgPSBkeW5fY2FzdDxBcnJheVR5cGU+KGVsdFR5KSkKLSsgICAgICBl bGVtZW50VHlwZSA9IGFyclR5cGUtPmdldEVsZW1lbnRUeXBlKCk7Ci0rICAgIGVsc2UgaWYoVmVj dG9yVHlwZSAqIHZlY1R5cGUgPSBkeW5fY2FzdDxWZWN0b3JUeXBlPihlbHRUeSkpCi0rICAgICAg ZWxlbWVudFR5cGUgPSB2ZWNUeXBlLT5nZXRFbGVtZW50VHlwZSgpOwotKyAgICBlbHNlIGlmKFN0 cnVjdFR5cGUgKiBzdHJ1Y3RUeXBlID0gZHluX2Nhc3Q8U3RydWN0VHlwZT4oZWx0VHkpKQotKyAg ICAgIGVsZW1lbnRUeXBlID0gc3RydWN0VHlwZS0+Z2V0VHlwZUF0SW5kZXgoaW5kZXgpOwotICAg ICBHQkVfQVNTRVJUKGVsZW1lbnRUeXBlKTsKLSAgICAgcmV0dXJuIGVsZW1lbnRUeXBlOwotICAg fQotLS0tIGEvYmFja2VuZC9zcmMvbGx2bS9sbHZtX3ByaW50Zl9wYXJzZXIuY3BwCTIwMjAtMTEt MDkgMTY6NDg6MjAuODIzODY2MTEyICswMTAwCi0rKysgYi9iYWNrZW5kL3NyYy9sbHZtL2xsdm1f cHJpbnRmX3BhcnNlci5jcHAJMjAyMC0xMS0wOSAxODo1Nzo1Mi42MTg5NDMxMDUgKzAxMDAKLUBA IC0zMjMsOCArMzIzLDcgQEAKLQotICAgYm9vbCBQcmludGZQYXJzZXI6OnBhcnNlT25lUHJpbnRm SW5zdHJ1Y3Rpb24oQ2FsbEluc3QgKiBjYWxsKQotICAgewotLSAgICBDYWxsU2l0ZSBDUyhjYWxs KTsKLS0gICAgQ2FsbFNpdGU6OmFyZ19pdGVyYXRvciBDSV9GTVQgPSBDUy5hcmdfYmVnaW4oKTsK LSsgICAgVXNlcjo6b3BfaXRlcmF0b3IgQ0lfRk1UID0gY2FsbC0+YXJnX2JlZ2luKCk7Ci0gICAg IGludCBwYXJhbV9udW0gPSAwOwotCi0gICAgIGxsdm06OkNvbnN0YW50KiBhcmcwID0gZHluX2Nh c3Q8bGx2bTo6Q29uc3RhbnRFeHByPigqQ0lfRk1UKTsKLUBAIC0zNDEsNyArMzQwLDcgQEAKLSAg ICAgICByZXR1cm4gZmFsc2U7Ci0gICAgIH0KLQotLSAgICBzdGQ6OnN0cmluZyBmbXQgPSBmbXRf YXJnLT5nZXRBc0NTdHJpbmcoKTsKLSsgICAgc3RkOjpzdHJpbmcgZm10ID0gZm10X2FyZy0+Z2V0 QXNDU3RyaW5nKCkuc3RyKCk7Ci0gICAgIGlmIChmbXQuc2l6ZSgpID09IDApCi0gICAgICAgcmV0 dXJuIGZhbHNlOwotCi1AQCAtNDM3LDggKzQzNiw4IEBACi0gICAgICAgICBpZiAoIGNhbGxGdW5j LT5nZXRJbnRyaW5zaWNJRCgpICE9IDApCi0gICAgICAgICAgIGNvbnRpbnVlOwotCi0tICAgICAg ICBWYWx1ZSAqQ2FsbGVlID0gY2FsbC0+Z2V0Q2FsbGVkVmFsdWUoKTsKLS0gICAgICAgIGNvbnN0 IHN0ZDo6c3RyaW5nIGZuTmFtZSA9IENhbGxlZS0+Z2V0TmFtZSgpOwotKyAgICAgICAgVmFsdWUg KkNhbGxlZSA9IGNhbGwtPmdldENhbGxlZE9wZXJhbmQoKTsKLSsgICAgICAgIGNvbnN0IHN0ZDo6 c3RyaW5nIGZuTmFtZSA9IENhbGxlZS0+Z2V0TmFtZSgpLnN0cigpOwotCi0gICAgICAgICBpZiAo Zm5OYW1lICE9ICJfX2dlbl9vY2xfcHJpbnRmX3N0dWIiICYmIGZuTmFtZSAhPSAiX19nZW5fb2Ns X3B1dHNfc3R1YiIpCi0gICAgICAgICAgIGNvbnRpbnVlOwotQEAgLTU4Miw3ICs1ODEsNyBAQAot ICAgICAgICAgICAgIGlmICghZm10X2FyZyB8fCAhZm10X2FyZy0+aXNDU3RyaW5nKCkpIHsKLSAg ICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAg c2xvdC5zdGF0ZS5zdHIgPSBmbXRfYXJnLT5nZXRBc0NTdHJpbmcoKTsKLSsgICAgICAgICAgICBz bG90LnN0YXRlLnN0ciA9IGZtdF9hcmctPmdldEFzQ1N0cmluZygpLnN0cigpOwotICAgICAgICAg ICAgIHJldHVybiB0cnVlOwotICAgICAgICAgICB9Ci0gICAgICAgICAgIGNhc2UgUFJJTlRGX0NP TlZFUlNJT05fUDogewotQEAgLTU5NSwxMCArNTk0LDEwIEBACi0KLSAgICAgICAgIGJyZWFrOwot Ci0tICAgICAgY2FzZSBUeXBlOjpWZWN0b3JUeUlEOiB7Ci0tICAgICAgICBUeXBlKiB2ZWN0X3R5 cGUgPSBhcmctPmdldFR5cGUoKTsKLS0gICAgICAgIFR5cGUqIGVsdF90eXBlID0gdmVjdF90eXBl LT5nZXRWZWN0b3JFbGVtZW50VHlwZSgpOwotLSAgICAgICAgaW50IHZlY19udW0gPSB2ZWN0X3R5 cGUtPmdldFZlY3Rvck51bUVsZW1lbnRzKCk7Ci0rICAgICAgY2FzZSBUeXBlOjpGaXhlZFZlY3Rv clR5SUQ6IHsKLSsgICAgICAgIFZlY3RvclR5cGUqIHZlY3RfdHlwZSA9IGR5bl9jYXN0PFZlY3Rv clR5cGU+KGFyZy0+Z2V0VHlwZSgpKTsKLSsgICAgICAgIFR5cGUqIGVsdF90eXBlID0gdmVjdF90 eXBlLT5nZXRFbGVtZW50VHlwZSgpOwotKyAgICAgICAgaW50IHZlY19udW0gPSB2ZWN0X3R5cGUt PmdldE51bUVsZW1lbnRzKCk7Ci0gICAgICAgICBib29sIHNpZ24gPSBmYWxzZTsKLQotICAgICAg ICAgaWYgKHZlY19udW0gIT0gc2xvdC5zdGF0ZS52ZWN0b3JfbikgewotLS0tIGEvYmFja2VuZC9z cmMvbGx2bS9sbHZtX3Byb2ZpbGluZy5jcHAJMjAyMC0xMS0wOSAxNjo0ODoyMC44MjM4NjYxMTIg KzAxMDAKLSsrKyBiL2JhY2tlbmQvc3JjL2xsdm0vbGx2bV9wcm9maWxpbmcuY3BwCTIwMjAtMTEt MDkgMTg6NTk6NTAuMTIwOTI5MTUwICswMTAwCi1AQCAtMzUsNyArMzUsNiBAQAotICNpbmNsdWRl ICJsbHZtL0lSL0lSQnVpbGRlci5oIgotCi0gI2lmIExMVk1fVkVSU0lPTl9NQUpPUiAqIDEwICsg TExWTV9WRVJTSU9OX01JTk9SID49IDM1Ci0tI2luY2x1ZGUgImxsdm0vSVIvQ2FsbFNpdGUuaCIK LSAjaW5jbHVkZSAibGx2bS9JUi9DRkcuaCIKLSAjZWxzZQotICNpbmNsdWRlICJsbHZtL1N1cHBv cnQvQ2FsbFNpdGUuaCIKLS0tLSBhL2JhY2tlbmQvc3JjL2xsdm0vbGx2bV9zYW1wbGVyX2ZpeC5j cHAJMjAyMC0xMS0wOSAxNjo0ODoyMC44MjM4NjYxMTIgKzAxMDAKLSsrKyBiL2JhY2tlbmQvc3Jj L2xsdm0vbGx2bV9zYW1wbGVyX2ZpeC5jcHAJMjAyMC0xMS0wOSAxNzowMTowOS40MDc3NzQ4MzIg KzAxMDAKLUBAIC00NSw4ICs0NSw4IEBACi0gICAgIGJvb2wgdmlzaXRDYWxsSW5zdChDYWxsSW5z dCAqSSkgewotICAgICAgIGlmKCFJKQotICAgICAgICAgcmV0dXJuIGZhbHNlOwotLSAgICAgIFZh bHVlICpDYWxsZWUgPSBJLT5nZXRDYWxsZWRWYWx1ZSgpOwotLSAgICAgIGNvbnN0IHN0ZDo6c3Ry aW5nIGZuTmFtZSA9IENhbGxlZS0+Z2V0TmFtZSgpOwotKyAgICAgIFZhbHVlICpDYWxsZWUgPSBJ LT5nZXRDYWxsZWRPcGVyYW5kKCk7Ci0rICAgICAgY29uc3Qgc3RkOjpzdHJpbmcgZm5OYW1lID0g Q2FsbGVlLT5nZXROYW1lKCkuc3RyKCk7Ci0gICAgICAgYm9vbCBjaGFuZ2VkID0gZmFsc2U7Ci0g ICAgICAgVHlwZSAqYm9vbFR5ID0gSW50ZWdlclR5cGU6OmdldChJLT5nZXRDb250ZXh0KCksIDEp OwotICAgICAgIFR5cGUgKmkzMlR5ID0gSW50ZWdlclR5cGU6OmdldChJLT5nZXRDb250ZXh0KCks IDMyKTsKLUBAIC01OSw3ICs1OSw3IEBACi0gICAgICAgICBWYWx1ZSAqbmVlZEZpeFZhbDsKLSAj aWYgTExWTV9WRVJTSU9OX01BSk9SICogMTAgKyBMTFZNX1ZFUlNJT05fTUlOT1IgPj0gNDAKLSAg ICAgICAgIENhbGxJbnN0ICppbml0ID0gZHluX2Nhc3Q8Q2FsbEluc3Q+KEktPmdldE9wZXJhbmQo MCkpOwotLSAgICAgICAgaWYgKGluaXQgJiYgaW5pdC0+Z2V0Q2FsbGVkVmFsdWUoKS0+Z2V0TmFt ZSgpLmNvbXBhcmUoIl9fdHJhbnNsYXRlX3NhbXBsZXJfaW5pdGlhbGl6ZXIiKSkKLSsgICAgICAg IGlmIChpbml0ICYmIGluaXQtPmdldENhbGxlZE9wZXJhbmQoKS0+Z2V0TmFtZSgpLmNvbXBhcmUo Il9fdHJhbnNsYXRlX3NhbXBsZXJfaW5pdGlhbGl6ZXIiKSkKLSAgICAgICAgIHsKLSAgICAgICAg ICAgY29uc3QgQ29uc3RhbnRJbnQgKmNpID0gZHluX2Nhc3Q8Q29uc3RhbnRJbnQ+KGluaXQtPmdl dE9wZXJhbmQoMCkpOwotICAgICAgICAgICB1aW50MzJfdCBzYW1wbGVySW50ID0gY2ktPmdldFpF eHRWYWx1ZSgpOwotQEAgLTExMyw3ICsxMTMsNyBAQAotICAgICAgICAgVmFsdWUgKm5lZWRGaXhW YWw7Ci0gICNpZiBMTFZNX1ZFUlNJT05fTUFKT1IgKiAxMCArIExMVk1fVkVSU0lPTl9NSU5PUiA+ PSA0MAotICAgICAgICAgQ2FsbEluc3QgKmluaXQgPSBkeW5fY2FzdDxDYWxsSW5zdD4oSS0+Z2V0 T3BlcmFuZCgwKSk7Ci0tICAgICAgICBpZiAoaW5pdCAmJiBpbml0LT5nZXRDYWxsZWRWYWx1ZSgp LT5nZXROYW1lKCkuY29tcGFyZSgiX190cmFuc2xhdGVfc2FtcGxlcl9pbml0aWFsaXplciIpKQot KyAgICAgICAgaWYgKGluaXQgJiYgaW5pdC0+Z2V0Q2FsbGVkT3BlcmFuZCgpLT5nZXROYW1lKCku Y29tcGFyZSgiX190cmFuc2xhdGVfc2FtcGxlcl9pbml0aWFsaXplciIpKQotICAgICAgICAgewot ICAgICAgICAgICBjb25zdCBDb25zdGFudEludCAqY2kgPSBkeW5fY2FzdDxDb25zdGFudEludD4o aW5pdC0+Z2V0T3BlcmFuZCgwKSk7Ci0gICAgICAgICAgIHVpbnQzMl90IHNhbXBsZXJJbnQgPSBj aS0+Z2V0WkV4dFZhbHVlKCk7Ci0tLS0gYS9iYWNrZW5kL3NyYy9sbHZtL2xsdm1fc2NhbGFyaXpl LmNwcAkyMDIwLTExLTA5IDE2OjQ4OjIwLjgyMzg2NjExMiArMDEwMAotKysrIGIvYmFja2VuZC9z cmMvbGx2bS9sbHZtX3NjYWxhcml6ZS5jcHAJMjAyMC0xMS0wOSAxODo1MToxNi44ODg5OTAxMDQg KzAxMDAKLUBAIC0xNzgsNyArMTc4LDcgQEAKLSAgICAgICBpZighdHlwZSkKLSAgICAgICAgIHJl dHVybiB0eXBlOwotICAgICAgIHN3aXRjaCh0eXBlLT5nZXRUeXBlSUQoKSkgewotLSAgICAgIGNh c2UgVHlwZTo6VmVjdG9yVHlJRDoKLSsgICAgICBjYXNlIFR5cGU6OkZpeGVkVmVjdG9yVHlJRDoK LSAgICAgICBjYXNlIFR5cGU6OkFycmF5VHlJRDoKLSAgICAgICAgIHJldHVybiBHZXRCYXNpY1R5 cGUodHlwZS0+Z2V0Q29udGFpbmVkVHlwZSgwKSk7Ci0gICAgICAgZGVmYXVsdDoKLUBAIC0xODgs NyArMTg4LDcgQEAKLSAgICAgfQotCi0gICAgIGludCBHZXRDb21wb25lbnRDb3VudChjb25zdCBU eXBlKiB0eXBlKSAgewotLSAgICAgIGlmICh0eXBlICYmIHR5cGUtPmdldFR5cGVJRCgpID09IFR5 cGU6OlZlY3RvclR5SUQpCi0rICAgICAgaWYgKHR5cGUgJiYgdHlwZS0+Z2V0VHlwZUlEKCkgPT0g VHlwZTo6Rml4ZWRWZWN0b3JUeUlEKQotICAgICAgICAgcmV0dXJuIGxsdm06OmR5bl9jYXN0PFZl Y3RvclR5cGU+KHR5cGUpLT5nZXROdW1FbGVtZW50cygpOwotICAgICAgIGVsc2UKLSAgICAgICAg IHJldHVybiAxOwotQEAgLTY1MiwxMyArNjUyLDEyIEBACi0gICAgICAgICAgIGJyZWFrOwotICAg ICAgICAgfQotICAgICAgIH0gZWxzZSB7Ci0tICAgICAgICBWYWx1ZSAqQ2FsbGVlID0gY2FsbC0+ Z2V0Q2FsbGVkVmFsdWUoKTsKLS0gICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nIGZuTmFtZSA9IENh bGxlZS0+Z2V0TmFtZSgpOwotKyAgICAgICAgVmFsdWUgKkNhbGxlZSA9IGNhbGwtPmdldENhbGxl ZE9wZXJhbmQoKTsKLSsgICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nIGZuTmFtZSA9IENhbGxlZS0+ Z2V0TmFtZSgpLnN0cigpOwotICAgICAgICAgYXV0byBnZW5JbnRyaW5zaWNJRCA9IGludHJpbnNp Y01hcC5maW5kKGZuTmFtZSk7Ci0KLSAgICAgICAgIC8vIEdldCB0aGUgZnVuY3Rpb24gYXJndW1l bnRzCi0tICAgICAgICBDYWxsU2l0ZSBDUyhjYWxsKTsKLS0gICAgICAgIENhbGxTaXRlOjphcmdf aXRlcmF0b3IgQ0kgPSBDUy5hcmdfYmVnaW4oKSArIDE7Ci0rICAgICAgICBVc2VyOjpvcF9pdGVy YXRvciBDSSA9IGNhbGwtPmFyZ19iZWdpbigpICsgMTsKLQotICAgICAgICAgc3dpdGNoIChnZW5J bnRyaW5zaWNJRCkgewotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfTk9UX0ZPVU5EOgotQEAgLTcy OSw3ICs3MjgsNyBAQAotICAgICAgICAgICAgIGV4dHJhY3RGcm9tVmVjdG9yKGNhbGwpOwotICAg ICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfUFJJTlRGOgotLSAgICAg ICAgICAgIGZvciAoOyBDSSAhPSBDUy5hcmdfZW5kKCk7ICsrQ0kpCi0rICAgICAgICAgICAgZm9y ICg7IENJICE9IGNhbGwtPmFyZ19lbmQoKTsgKytDSSkKLSAgICAgICAgICAgICAgIGlmICgoKkNJ KS0+Z2V0VHlwZSgpLT5pc1ZlY3RvclR5KCkpCi0gICAgICAgICAgICAgICAgICpDSSA9IEluc2Vy dFRvVmVjdG9yKGNhbGwsICpDSSk7Ci0gICAgICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9z cmNwa2dzL2JlaWduZXQvcGF0Y2hlcy9sbHZtMTIucGF0Y2ggYi9zcmNwa2dzL2JlaWduZXQvcGF0 Y2hlcy9sbHZtMTIucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZmOGFiMDA1 YzE0OC4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvYmVpZ25ldC9wYXRjaGVzL2xsdm0xMi5w YXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDExNSArMCwwIEBACi1kaWZmIC0tZ2l0IGJhY2tlbmQv c3JjL2xsdm0vRXhwYW5kTGFyZ2VJbnRlZ2Vycy5jcHAgYmFja2VuZC9zcmMvbGx2bS9FeHBhbmRM YXJnZUludGVnZXJzLmNwcAotaW5kZXggODUxNWRjMTMuLjI3MDgwMzgwIDEwMDY0NAotLS0tIGEv YmFja2VuZC9zcmMvbGx2bS9FeHBhbmRMYXJnZUludGVnZXJzLmNwcAotKysrIGIvYmFja2VuZC9z cmMvbGx2bS9FeHBhbmRMYXJnZUludGVnZXJzLmNwcAotQEAgLTMyOCw3ICszMjgsNyBAQCBzdGF0 aWMgVmFsdWUgKmJ1aWxkVmVjdG9yT3JTY2FsYXIoQ29udmVyc2lvblN0YXRlICZTdGF0ZSwgSVJC dWlsZGVyPD4gJklSQiwgU21hbAotICAgICAvLyBzcGxpdGVkLCB0aGF0J3Mgd2h5IHRoZXNlIHRl bXBvcmFyeSB2YWx1ZXMgc2hvdWxkIGJlIGVyYXNlZC4KLSAgICAgYm9vbCBLZWVwSW5zZXJ0ID0g aXNMZWdhbEJpdFNpemUoRWxlbVR5LT5nZXRQcmltaXRpdmVTaXplSW5CaXRzKCkgKiBFbGVtTm8p OwotICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgRWxlbU5vOyArK2kpIHsKLS0gICAgICBW YWx1ZSAqdG1wID0gdmVjID8gdmVjIDogVW5kZWZWYWx1ZTo6Z2V0KFZlY3RvclR5cGU6OmdldChF bGVtVHksIEVsZW1ObykpOwotKyAgICAgIFZhbHVlICp0bXAgPSB2ZWMgPyB2ZWMgOiBVbmRlZlZh bHVlOjpnZXQoVmVjdG9yVHlwZTo6Z2V0KEVsZW1UeSwgRWxlbU5vLCBmYWxzZSkpOwotICAgICAg IFZhbHVlICppZHggPSBDb25zdGFudEludDo6Z2V0KEludFR5LCBpKTsKLSAgICAgICB2ZWMgPSBJ UkIuQ3JlYXRlSW5zZXJ0RWxlbWVudCh0bXAsIEVsZW1lbnRzW2ldLCBpZHgpOwotICAgICAgIGlm ICghS2VlcEluc2VydCAmJiAhaXNhPENvbnN0YW50Pih2ZWMpKSB7Ci1AQCAtMzczLDcgKzM3Myw3 IEBAIHN0YXRpYyB2b2lkIHVuaWZ5RWxlbWVudFR5cGUoSVJCdWlsZGVyPD4gJklSQiwgU21hbGxW ZWN0b3I8VmFsdWUgKiwgMTY+ICZTcmMsIFNtCi0gICAgICAgYXNzZXJ0KChTaXplICUgTWluV2lk dGgpID09IDApOwotIAotICAgICAgIGlmIChTaXplID4gTWluV2lkdGgpIHsKLS0gICAgICAgIFZl Y3RvclR5cGUgKlZlY1R5ID0gVmVjdG9yVHlwZTo6Z2V0KEVsZW1UeSwgU2l6ZS9NaW5XaWR0aCk7 Ci0rICAgICAgICBWZWN0b3JUeXBlICpWZWNUeSA9IFZlY3RvclR5cGU6OmdldChFbGVtVHksIFNp emUvTWluV2lkdGgsIGZhbHNlKTsKLSAgICAgICAgIFZhbHVlICpDYXN0ZWQgPSBJUkIuQ3JlYXRl Qml0Q2FzdChTcmNbaV0sIFZlY1R5KTsKLSAgICAgICAgIGZvciAodW5zaWduZWQgaiA9IDA7IGog PCBTaXplL01pbldpZHRoOyBqKyspCi0gICAgICAgICAgIERzdC5wdXNoX2JhY2soSVJCLkNyZWF0 ZUV4dHJhY3RFbGVtZW50KENhc3RlZCwgQ29uc3RhbnRJbnQ6OmdldChJbnRUeSwgaikpKTsKLUBA IC00NjIsNyArNDYyLDcgQEAgc3RhdGljIHZvaWQgY29udmVydEluc3RydWN0aW9uKEluc3RydWN0 aW9uICpJbnN0LCBDb252ZXJzaW9uU3RhdGUgJlN0YXRlLAotICAgICAgIHVuc2lnbmVkIEVsZW1O byA9IFVuaWZpZWQuc2l6ZSgpOwotICAgICAgIFR5cGUgKkVsZW1UeSA9IFVuaWZpZWRbMF0tPmdl dFR5cGUoKTsKLSAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgRWxlbU5vOyArK2kpIHsK LS0gICAgICAgIFZhbHVlICp0bXAgPSB2ZWMgPyB2ZWMgOiBVbmRlZlZhbHVlOjpnZXQoVmVjdG9y VHlwZTo6Z2V0KEVsZW1UeSwgRWxlbU5vKSk7Ci0rICAgICAgICBWYWx1ZSAqdG1wID0gdmVjID8g dmVjIDogVW5kZWZWYWx1ZTo6Z2V0KFZlY3RvclR5cGU6OmdldChFbGVtVHksIEVsZW1ObywgZmFs c2UpKTsKLSAgICAgICAgIFZhbHVlICppZHggPSBDb25zdGFudEludDo6Z2V0KEludFR5LCBpKTsK LSAgICAgICAgIHZlYyA9IElSQi5DcmVhdGVJbnNlcnRFbGVtZW50KHRtcCwgVW5pZmllZFtpXSwg aWR4KTsKLSAgICAgICB9Ci1kaWZmIC0tZ2l0IGJhY2tlbmQvc3JjL2xsdm0vbGx2bV9nZW5fYmFj a2VuZC5jcHAgYmFja2VuZC9zcmMvbGx2bS9sbHZtX2dlbl9iYWNrZW5kLmNwcAotaW5kZXggYzkz ZDg5Y2MuLjY0ZDViMGU1IDEwMDY0NAotLS0tIGEvYmFja2VuZC9zcmMvbGx2bS9sbHZtX2dlbl9i YWNrZW5kLmNwcAotKysrIGIvYmFja2VuZC9zcmMvbGx2bS9sbHZtX2dlbl9iYWNrZW5kLmNwcAot QEAgLTMwNCw3ICszMDQsNyBAQCBuYW1lc3BhY2UgZ2JlCi0gICAgICAgVFlQRVNJWkVWRUMobG9u Zyw4KQotICAgICAgIFRZUEVTSVpFVkVDKHVuc2lnbmVkIGxvbmcsOCkKLSAgICAgICBlbHNlewot LSAgICAgICAgU3RydWN0VHlwZSAqU3RyVHkgPSBNLT5nZXRUeXBlQnlOYW1lKCJzdHJ1Y3QuIitu YW1lKTsKLSsgICAgICAgIFN0cnVjdFR5cGUgKlN0clR5ID0gU3RydWN0VHlwZTo6Z2V0VHlwZUJ5 TmFtZShNLT5nZXRDb250ZXh0KCksICJzdHJ1Y3QuIituYW1lKTsKLSAgICAgICAgIGlmKFN0clR5 KQotICAgICAgICAgICByZXR1cm4gZ2V0VHlwZUJ5dGVTaXplKHVuaXQsU3RyVHkpOwotICAgICAg IH0KLWRpZmYgLS1naXQgYmFja2VuZC9zcmMvbGx2bS9sbHZtX2xvYWRzdG9yZV9vcHRpbWl6YXRp b24uY3BwIGJhY2tlbmQvc3JjL2xsdm0vbGx2bV9sb2Fkc3RvcmVfb3B0aW1pemF0aW9uLmNwcAot aW5kZXggNWFhMzhiZWYuLjZiNWMxYmFkIDEwMDY0NAotLS0tIGEvYmFja2VuZC9zcmMvbGx2bS9s bHZtX2xvYWRzdG9yZV9vcHRpbWl6YXRpb24uY3BwCi0rKysgYi9iYWNrZW5kL3NyYy9sbHZtL2xs dm1fbG9hZHN0b3JlX29wdGltaXphdGlvbi5jcHAKLUBAIC0xNTIsNyArMTUyLDcgQEAgbmFtZXNw YWNlIGdiZSB7Ci0gICAgIHVuc2lnbmVkIGFkZHJTcGFjZSA9IGxkLT5nZXRQb2ludGVyQWRkcmVz c1NwYWNlKCk7Ci0gICAgIC8vIGluc2VydCBiZWZvcmUgZmlyc3QgbG9hZAotICAgICBCdWlsZGVy LlNldEluc2VydFBvaW50KGxkKTsKLS0gICAgVmVjdG9yVHlwZSAqdmVjVHkgPSBWZWN0b3JUeXBl OjpnZXQobGQtPmdldFR5cGUoKSwgc2l6ZSk7Ci0rICAgIFZlY3RvclR5cGUgKnZlY1R5ID0gVmVj dG9yVHlwZTo6Z2V0KGxkLT5nZXRUeXBlKCksIHNpemUsIGZhbHNlKTsKLSAgICAgVmFsdWUgKnZl Y1B0ciA9IEJ1aWxkZXIuQ3JlYXRlQml0Q2FzdChsZC0+Z2V0UG9pbnRlck9wZXJhbmQoKSwKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUG9pbnRlclR5cGU6OmdldCh2 ZWNUeSwgYWRkclNwYWNlKSk7Ci0gICAgIExvYWRJbnN0ICp2ZWNWYWx1ZSA9IEJ1aWxkZXIuQ3Jl YXRlTG9hZCh2ZWNQdHIpOwotQEAgLTIzNiw3ICsyMzYsNyBAQCBuYW1lc3BhY2UgZ2JlIHsKLSAg ICAgQnVpbGRlci5TZXRJbnNlcnRQb2ludChtZXJnZWRbc2l6ZS0xXSk7Ci0gCi0gICAgIFR5cGUg KmRhdGFUeSA9IHN0LT5nZXRWYWx1ZU9wZXJhbmQoKS0+Z2V0VHlwZSgpOwotLSAgICBWZWN0b3JU eXBlICp2ZWNUeSA9IFZlY3RvclR5cGU6OmdldChkYXRhVHksIHNpemUpOwotKyAgICBWZWN0b3JU eXBlICp2ZWNUeSA9IFZlY3RvclR5cGU6OmdldChkYXRhVHksIHNpemUsIGZhbHNlKTsKLSAgICAg VmFsdWUgKiBwYXJlbnQgPSBVbmRlZlZhbHVlOjpnZXQodmVjVHkpOwotICAgICBmb3IodW5zaWdu ZWQgaSA9IDA7IGkgPCBzaXplOyBpKyspIHsKLSAgICAgICBwYXJlbnQgPSBCdWlsZGVyLkNyZWF0 ZUluc2VydEVsZW1lbnQocGFyZW50LCB2YWx1ZXNbaV0sIENvbnN0YW50SW50OjpnZXQoSW50ZWdl clR5cGU6OmdldChzdC0+Z2V0Q29udGV4dCgpLCAzMiksIGkpKTsKLWRpZmYgLS1naXQgYmFja2Vu ZC9zcmMvbGx2bS9sbHZtX3ByaW50Zl9wYXJzZXIuY3BwIGJhY2tlbmQvc3JjL2xsdm0vbGx2bV9w cmludGZfcGFyc2VyLmNwcAotaW5kZXggNmJiN2M1MmEuLmFmNDU5Y2QyIDEwMDY0NAotLS0tIGEv YmFja2VuZC9zcmMvbGx2bS9sbHZtX3ByaW50Zl9wYXJzZXIuY3BwCi0rKysgYi9iYWNrZW5kL3Ny Yy9sbHZtL2xsdm1fcHJpbnRmX3BhcnNlci5jcHAKLUBAIC02MzAsNyArNjMwLDcgQEAgZXJyb3I6 Ci0gICAgICAgICAgICAgaWYgKGVsdF90eXBlICE9IGVsdF9kc3RfdHlwZSkgewotICAgICAgICAg ICAgICAgVmFsdWUgKklJID0gTlVMTDsKLSAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBp IDwgdmVjX251bTsgaSsrKSB7Ci0tICAgICAgICAgICAgICAgIFZhbHVlICp2ZWMgPSBJSSA/IElJ IDogVW5kZWZWYWx1ZTo6Z2V0KFZlY3RvclR5cGU6OmdldChlbHRfZHN0X3R5cGUsIHZlY19udW0p KTsKLSsgICAgICAgICAgICAgICAgVmFsdWUgKnZlYyA9IElJID8gSUkgOiBVbmRlZlZhbHVlOjpn ZXQoVmVjdG9yVHlwZTo6Z2V0KGVsdF9kc3RfdHlwZSwgdmVjX251bSwgZmFsc2UpKTsKLSAgICAg ICAgICAgICAgICAgVmFsdWUgKmN2ID0gQ29uc3RhbnRJbnQ6OmdldChUeXBlOjpnZXRJbnQzMlR5 KGVsdF90eXBlLT5nZXRDb250ZXh0KCkpLCBpKTsKLSAgICAgICAgICAgICAgICAgVmFsdWUgKm9y ZyA9IGJ1aWxkZXItPkNyZWF0ZUV4dHJhY3RFbGVtZW50KGFyZywgY3YpOwotICAgICAgICAgICAg ICAgICBWYWx1ZSAqY3Z0ID0gYnVpbGRlci0+Q3JlYXRlSW50Q2FzdChvcmcsIGVsdF9kc3RfdHlw ZSwgc2lnbik7Ci1AQCAtNjU4LDcgKzY1OCw3IEBAIGVycm9yOgotICAgICAgICAgICAgIGlmIChl bHRfdHlwZS0+Z2V0VHlwZUlEKCkgIT0gVHlwZTo6RmxvYXRUeUlEKSB7Ci0gICAgICAgICAgICAg ICBWYWx1ZSAqSUkgPSBOVUxMOwotICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB2 ZWNfbnVtOyBpKyspIHsKLS0gICAgICAgICAgICAgICAgVmFsdWUgKnZlYyA9IElJID8gSUkgOiBV bmRlZlZhbHVlOjpnZXQoVmVjdG9yVHlwZTo6Z2V0KFR5cGU6OmdldEZsb2F0VHkoZWx0X3R5cGUt PmdldENvbnRleHQoKSksIHZlY19udW0pKTsKLSsgICAgICAgICAgICAgICAgVmFsdWUgKnZlYyA9 IElJID8gSUkgOiBVbmRlZlZhbHVlOjpnZXQoVmVjdG9yVHlwZTo6Z2V0KFR5cGU6OmdldEZsb2F0 VHkoZWx0X3R5cGUtPmdldENvbnRleHQoKSksIHZlY19udW0sIGZhbHNlKSk7Ci0gICAgICAgICAg ICAgICAgIFZhbHVlICpjdiA9IENvbnN0YW50SW50OjpnZXQoVHlwZTo6Z2V0SW50MzJUeShlbHRf dHlwZS0+Z2V0Q29udGV4dCgpKSwgaSk7Ci0gICAgICAgICAgICAgICAgIFZhbHVlICpvcmcgPSBi dWlsZGVyLT5DcmVhdGVFeHRyYWN0RWxlbWVudChhcmcsIGN2KTsKLSAgICAgICAgICAgICAgICAg VmFsdWUqIGN2dCAgPSBidWlsZGVyLT5DcmVhdGVGUENhc3Qob3JnLCBUeXBlOjpnZXRGbG9hdFR5 KG1vZHVsZS0+Z2V0Q29udGV4dCgpKSk7Ci1kaWZmIC0tZ2l0IGJhY2tlbmQvc3JjL2xsdm0vbGx2 bV90b19nZW4uY3BwIGJhY2tlbmQvc3JjL2xsdm0vbGx2bV90b19nZW4uY3BwCi1pbmRleCA3Zjdk ZWZmZS4uOWU4Y2NjNjcgMTAwNjQ0Ci0tLS0gYS9iYWNrZW5kL3NyYy9sbHZtL2xsdm1fdG9fZ2Vu LmNwcAotKysrIGIvYmFja2VuZC9zcmMvbGx2bS9sbHZtX3RvX2dlbi5jcHAKLUBAIC0zNTgsNyAr MzU4LDcgQEAgbmFtZXNwYWNlIGdiZQotICAgICBwYXNzZXMuYWRkKGNyZWF0ZVNjYWxhclJlcGxB Z2dyZWdhdGVzUGFzcyg2NCwgdHJ1ZSwgLTEsIC0xLCA2NCkpOwotICNlbmRpZgotICAgICBwYXNz ZXMuYWRkKGNyZWF0ZUxvYWRTdG9yZU9wdGltaXphdGlvblBhc3MoKSk7Ci0tICAgIHBhc3Nlcy5h ZGQoY3JlYXRlQ29uc3RhbnRQcm9wYWdhdGlvblBhc3MoKSk7Ci0rICAgIC8vcGFzc2VzLmFkZChj cmVhdGVDb25zdGFudFByb3BhZ2F0aW9uUGFzcygpKTsKLSAgICAgcGFzc2VzLmFkZChjcmVhdGVQ cm9tb3RlTWVtb3J5VG9SZWdpc3RlclBhc3MoKSk7Ci0gICAgIGlmKG9wdExldmVsID4gMCkKLSAg ICAgICBwYXNzZXMuYWRkKGNyZWF0ZUdWTlBhc3MoKSk7ICAgICAgICAgICAgICAgICAvLyBSZW1v dmUgcmVkdW5kYW5jaWVzCi1AQCAtMzY3LDExICszNjcsMTEgQEAgbmFtZXNwYWNlIGdiZQotICAg ICBwYXNzZXMuYWRkKGNyZWF0ZVNjYWxhcml6ZVBhc3MoKSk7ICAgICAgICAgICAgIC8vIEV4cGFu ZCBhbGwgdmVjdG9yIG9wcwotICAgICBwYXNzZXMuYWRkKGNyZWF0ZUV4cGFuZExhcmdlSW50ZWdl cnNQYXNzKCkpOyAgIC8vIGxlZ2FsaXplIGxhcmdlIGludGVnZXIgb3BlcmF0aW9uCi0gICAgIHBh c3Nlcy5hZGQoY3JlYXRlSW5zdHJ1Y3Rpb25Db21iaW5pbmdQYXNzKCkpOyAgLy8gbGVnYWxpemUg d2lsbCBnZW5lcmF0ZSBzb21lIHNpbGx5IGluc3RydWN0aW9ucwotLSAgICBwYXNzZXMuYWRkKGNy ZWF0ZUNvbnN0YW50UHJvcGFnYXRpb25QYXNzKCkpOyAgIC8vIHByb3BhZ2F0ZSBjb25zdGFudCBh ZnRlciBzY2FsYXJpemUvbGVnYWxpemUKLSsgICAgLy9wYXNzZXMuYWRkKGNyZWF0ZUNvbnN0YW50 UHJvcGFnYXRpb25QYXNzKCkpOyAgIC8vIHByb3BhZ2F0ZSBjb25zdGFudCBhZnRlciBzY2FsYXJp emUvbGVnYWxpemUKLSAgICAgcGFzc2VzLmFkZChjcmVhdGVFeHBhbmRDb25zdGFudEV4cHJQYXNz KCkpOyAgICAvLyBjb25zdGFudCBwcm9wIG1heSBnZW5lcmF0ZSBDb25zdGFudEV4cHIKLSAgICAg cGFzc2VzLmFkZChjcmVhdGVQcm9tb3RlSW50ZWdlcnNQYXNzKCkpOyAgICAgICAvLyBhbGlnbiBp bnRlZ2VyIHNpemUgdG8gcG93ZXIgb2YgdHdvCi0gICAgIHBhc3Nlcy5hZGQoY3JlYXRlUmVtb3Zl R0VQUGFzcyh1bml0KSk7ICAgICAgICAgLy8gQ29uc3RhbnQgcHJvcCBtYXkgZ2VuZXJhdGUgZ2Vw Ci0tICAgIHBhc3Nlcy5hZGQoY3JlYXRlRGVhZEluc3RFbGltaW5hdGlvblBhc3MoKSk7ICAgLy8g UmVtb3ZlIHNpbXBsaWZpZWQgaW5zdHJ1Y3Rpb25zCi0rICAgIC8vcGFzc2VzLmFkZChjcmVhdGVE ZWFkSW5zdEVsaW1pbmF0aW9uUGFzcygpKTsgICAvLyBSZW1vdmUgc2ltcGxpZmllZCBpbnN0cnVj dGlvbnMKLSAgICAgcGFzc2VzLmFkZChjcmVhdGVDRkdTaW1wbGlmaWNhdGlvblBhc3MoKSk7ICAg ICAvLyBNZXJnZSAmIHJlbW92ZSBCQnMKLSAgICAgcGFzc2VzLmFkZChjcmVhdGVMb3dlclN3aXRj aFBhc3MoKSk7ICAgICAgICAgICAvLyBzaW1wbGlmeSBjZmcgd2lsbCBnZW5lcmF0ZSBzd2l0Y2gt Y2FzZSBpbnN0cnVjdGlvbgotICAgICBpZiAocHJvZmlsaW5nKSB7CmRpZmYgLS1naXQgYS9zcmNw a2dzL2JlaWduZXQvcGF0Y2hlcy9tdXNsLnBhdGNoIGIvc3JjcGtncy9iZWlnbmV0L3BhdGNoZXMv bXVzbC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2VmYWZiYjY1NTg4Li4w MDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9iZWlnbmV0L3BhdGNoZXMvbXVzbC5wYXRjaAorKysg L2Rldi9udWxsCkBAIC0xLDExICswLDAgQEAKLS0tLSBhL2JhY2tlbmQvc3JjL2JhY2tlbmQvZ2Vu L2dlbl9tZXNhX2Rpc2FzbS5jCi0rKysgYi9iYWNrZW5kL3NyYy9iYWNrZW5kL2dlbi9nZW5fbWVz YV9kaXNhc20uYwotQEAgLTExMzcsNyArMTEzNyw3IEBAIHN0YXRpYyB1aW50MzJfdCBfX2NvbnZf aGFsZl90b19mbG9hdCh1aW50MTZfdCBoKQotICAgICAgIC8vIEFkanVzdCBtYW50aXNzYSBzbyBp dCdzIG5vcm1hbGl6ZWQgKGFuZCBrZWVwCi0gICAgICAgLy8gdHJhY2sgb2YgZXhwb25lbnQgYWRq dXN0bWVudCkKLSAgICAgICBpbnQgZSA9IC0xOwotLSAgICAgIHVpbnQgbSA9IGkubWFudGlzc2E7 Ci0rICAgICAgdW5zaWduZWQgaW50IG0gPSBpLm1hbnRpc3NhOwotICAgICAgIGRvIHsKLSAgICAg ICAgIGUrKzsKLSAgICAgICAgIG0gPDw9IDE7CmRpZmYgLS1naXQgYS9zcmNwa2dzL2JlaWduZXQv dGVtcGxhdGUgYi9zcmNwa2dzL2JlaWduZXQvdGVtcGxhdGUKZGVsZXRlZCBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IGRjZTZiYmI3YWUyNC4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvYmVpZ25l dC90ZW1wbGF0ZQorKysgL2Rldi9udWxsCkBAIC0xLDIyICswLDAgQEAKLSMgVGVtcGxhdGUgZmls ZSBmb3IgJ2JlaWduZXQnCi1wa2duYW1lPWJlaWduZXQKLXZlcnNpb249MS4zLjIKLXJldmlzaW9u PTEwCi1hcmNocz0iaTY4NiogeDg2XzY0KiIKLXdya3NyYz0iQmVpZ25ldC0ke3ZlcnNpb259LVNv dXJjZSIKLWJ1aWxkX3N0eWxlPWNtYWtlCi1ob3N0bWFrZWRlcGVuZHM9ImNsYW5nIGxsdm0gcGtn LWNvbmZpZyIKLW1ha2VkZXBlbmRzPSJNZXNhTGliLWRldmVsIGxpYmVkaXQtZGV2ZWwgbGliZmZp LWRldmVsIG9jbC1pY2QtZGV2ZWwgemxpYi1kZXZlbAotIGxpYlhmaXhlcy1kZXZlbCIKLWRlcGVu ZHM9Im9jbC1pY2QiCi1zaG9ydF9kZXNjPSJCZWlnbmV0IEdQR1BVIFN5c3RlbSBmb3IgSW50ZWwg R1BVcyIKLW1haW50YWluZXI9Ik9ycGhhbmVkIDxvcnBoYW5Adm9pZGxpbnV4Lm9yZz4iCi1saWNl bnNlPSJMR1BMLTIuMS1vci1sYXRlciIKLWhvbWVwYWdlPSJodHRwOi8vd3d3LmZyZWVkZXNrdG9w Lm9yZy93aWtpL1NvZnR3YXJlL0JlaWduZXQvIgotZGlzdGZpbGVzPSJodHRwczovLzAxLm9yZy9z aXRlcy9kZWZhdWx0L2ZpbGVzLyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS1zb3VyY2UudGFyLmd6Igot Y2hlY2tzdW09YzU1NWVkYmExNDlkZTIzMjQzOTY1YTcwM2YzOWY3OWZhMDZmMTViY2ZmNWEzNzYy YjU1NDRiMDkyNTAxMGI0MwotCi1wb3N0X2luc3RhbGwoKSB7Ci0JIyByZW1vdmUgQ0wgaGVhZGVy cywgd2UgZG8gdXNlIG9wZW5jbC1oZWFkZXJzIGluc3RlYWQuCi0Jcm0gLXIgJHtERVNURElSfS91 c3IvaW5jbHVkZQotfQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9iZWlnbmV0L3VwZGF0ZSBiL3NyY3Br Z3MvYmVpZ25ldC91cGRhdGUKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNhNDFlMGFm ZTYwYy4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvYmVpZ25ldC91cGRhdGUKKysrIC9kZXYv bnVsbApAQCAtMSArMCwwIEBACi1zaXRlPSJodHRwczovLzAxLm9yZy9iZWlnbmV0L2Rvd25sb2Fk cyIKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcmVtb3ZlZC1wYWNrYWdlcy90ZW1wbGF0ZSBiL3NyY3Br Z3MvcmVtb3ZlZC1wYWNrYWdlcy90ZW1wbGF0ZQppbmRleCA2NTUxNmRmYTkyMWMuLmI2ZjJlZmE1 ZTQxNSAxMDA2NDQKLS0tIGEvc3JjcGtncy9yZW1vdmVkLXBhY2thZ2VzL3RlbXBsYXRlCisrKyBi L3NyY3BrZ3MvcmVtb3ZlZC1wYWNrYWdlcy90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVt cGxhdGUgZmlsZSBmb3IgJ3JlbW92ZWQtcGFja2FnZXMnCiBwa2duYW1lPXJlbW92ZWQtcGFja2Fn ZXMKIHZlcnNpb249MC4xCi1yZXZpc2lvbj02OQorcmV2aXNpb249NzAKIGJ1aWxkX3N0eWxlPW1l dGEKIHNob3J0X2Rlc2M9IlVuaW5zdGFsbHMgcGFja2FnZXMgcmVtb3ZlZCBmcm9tIHJlcG9zaXRv cnkiCiBtYWludGFpbmVyPSJQaW90ciBXw7NqY2lrIDxjaG9jaW1pZXJAdGxlbi5wbD4iCkBAIC0y NSw2ICsyNSw3IEBAIHJlcGxhY2VzPSIKICBhdG9tPD0xLjQ0LjBfMQogIGF2b2dhZHJvLWRldmVs PD0xLjIuMF84CiAgYXZvZ2Fkcm88PTEuMi4wXzgKKyBiZWlnbmV0PD0xLjMuMl8xMAogIGJva2tl bjw9MS44XzMKICBib21pPD0wLjkuMTFfMTcKICBidXJwLWNsaWVudDw9MS40LjQwXzEzCgpGcm9t IDgwNWM5Zjk2NGU2N2UxZGYwMTViMzNiZmViMzc1ZDc0YjYxYTdjYTMgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IHByZXogPHByZXpAbmF0aW9uYWwuc2hpdHBvc3RpbmcuYWdlbmN5PgpE YXRlOiBNb24sIDIgTWF5IDIwMjIgMTk6MDc6MzggKzAyMDAKU3ViamVjdDogW1BBVENIIDIwLzI3 XSBsZGM6IHJlYnVpbGQgZm9yIGxsdm0xNAoKLS0tCiBzcmNwa2dzL2xkYy90ZW1wbGF0ZSB8IDIg Ky0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAt LWdpdCBhL3NyY3BrZ3MvbGRjL3RlbXBsYXRlIGIvc3JjcGtncy9sZGMvdGVtcGxhdGUKaW5kZXgg YTI3MjgwZGRlM2I4Li5lMjFiYzY1NTVlMzggMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvbGRjL3RlbXBs YXRlCisrKyBiL3NyY3BrZ3MvbGRjL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0 ZSBmaWxlIGZvciAnbGRjJwogcGtnbmFtZT1sZGMKIHZlcnNpb249MS4yOC4wCi1yZXZpc2lvbj0x CityZXZpc2lvbj0yCiB3cmtzcmM9ImxkYy0ke3ZlcnNpb259LXNyYyIKIGJ1aWxkX3N0eWxlPWNt YWtlCiBjb25maWd1cmVfYXJncz0iCgpGcm9tIDM2ZjFiMzE2NzY3ZTE0ZDFhZTJjMDIyN2YzYzAy YWE1YzkyNjliMjkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IHByZXogPHByZXpAbmF0 aW9uYWwuc2hpdHBvc3RpbmcuYWdlbmN5PgpEYXRlOiBNb24sIDIgTWF5IDIwMjIgMjI6MzE6MjUg KzAyMDAKU3ViamVjdDogW1BBVENIIDIxLzI3XSBsZGM6IHVwZGF0ZSB0byAxLjI5LjAuCgotLS0K IHNyY3BrZ3MvbGRjL3RlbXBsYXRlIHwgOCArKysrLS0tLQogMSBmaWxlIGNoYW5nZWQsIDQgaW5z ZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xkYy90ZW1w bGF0ZSBiL3NyY3BrZ3MvbGRjL3RlbXBsYXRlCmluZGV4IGUyMWJjNjU1NWUzOC4uMWQ3MmE4ODA1 ZWI2IDEwMDY0NAotLS0gYS9zcmNwa2dzL2xkYy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2xkYy90 ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2xkYycKIHBrZ25h bWU9bGRjCi12ZXJzaW9uPTEuMjguMAotcmV2aXNpb249MgordmVyc2lvbj0xLjI5LjAKK3Jldmlz aW9uPTEKIHdya3NyYz0ibGRjLSR7dmVyc2lvbn0tc3JjIgogYnVpbGRfc3R5bGU9Y21ha2UKIGNv bmZpZ3VyZV9hcmdzPSIKQEAgLTExLDcgKzExLDcgQEAgY29uZmlndXJlX2FyZ3M9IgogIC1EQkFT SF9DT01QTEVUSU9OX0NPTVBMRVRJT05TRElSPS91c3Ivc2hhcmUvYmFzaC1jb21wbGV0aW9uCiAg LURDX1NZU1RFTV9MSUJTPSd1bndpbmQ7bTtwdGhyZWFkO3J0O2RsJyIKIGNvbmZfZmlsZXM9Ii9l dGMvbGRjMi5jb25mIgotaG9zdG1ha2VkZXBlbmRzPSJkbWQgbGx2bTEyIHBlcmwgcGtnLWNvbmZp ZyIKK2hvc3RtYWtlZGVwZW5kcz0iZG1kIGxsdm0xNCBwZXJsIHBrZy1jb25maWciCiBtYWtlZGVw ZW5kcz0ibGliY3VybC1kZXZlbCBsaWJmZmktZGV2ZWwgbmN1cnNlcy1kZXZlbCB6bGliLWRldmVs CiAgbGx2bS1saWJ1bndpbmQtZGV2ZWwiCiBkZXBlbmRzPSJsZGMtcnVudGltZSBsbHZtLWxpYnVu d2luZC1kZXZlbCIKQEAgLTIyLDcgKzIyLDcgQEAgbGljZW5zZT0iQlNELTMtQ2xhdXNlLCBCU0wt MS4wIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5kbGFuZy5vcmcvTERDIgogY2hhbmdlbG9nPSJo dHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vbGRjLWRldmVsb3BlcnMvbGRjL21hc3Rl ci9DSEFOR0VMT0cubWQiCiBkaXN0ZmlsZXM9Imh0dHBzOi8vZ2l0aHViLmNvbS9sZGMtZGV2ZWxv cGVycy9sZGMvcmVsZWFzZXMvZG93bmxvYWQvdiR7dmVyc2lvbn0vbGRjLSR7dmVyc2lvbn0tc3Jj LnRhci5neiIKLWNoZWNrc3VtPTE3ZmVlOGJiNTM1YmNiOGNkYTBhNDU5NDc1MjY1NTVjNDZjMDQ1 ZjMwMmE3MzQ5Y2M4NzExYjI1NGU1NGNmMDkKK2NoZWNrc3VtPWQwYzA2NmViOTY1NDY3NjI1ZDlj NWU3NWMwMGM1ODM0NTFiOWZmYTM2MzYwMWY5ZTM3Mjc1Y2E4YThhZWExNDAKIG5vcGllPXllcwog bm9jcm9zcz0iZG1kIGNvbXBpbGF0aW9uIGZhaWxzIG9uIGNyb3NzIgogIyB0ZXN0cyB0aW1lb3V0 IG9uIG11c2w7IGFsc28gcmVxdWlyZSB1bnBhY2thZ2VkIHB5dGhvbjMtbGl0CgpGcm9tIDBlZjBm YjAzMmQzNTg2NjhhODA0NGJkMzA4OGFkMGEyMDU0OGM0NjUgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCkZyb206IHByZXogPHByZXpAbmF0aW9uYWwuc2hpdHBvc3RpbmcuYWdlbmN5PgpEYXRlOiBN b24sIDIgTWF5IDIwMjIgMTk6MDc6NDAgKzAyMDAKU3ViamVjdDogW1BBVENIIDIyLzI3XSBpbmNs dWRlLXdoYXQteW91LXVzZTogdXBkYXRlIHRvIDAuMTguCgotLS0KIHNyY3BrZ3MvaW5jbHVkZS13 aGF0LXlvdS11c2UvdGVtcGxhdGUgfCA0ICsrLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlv bnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9pbmNsdWRlLXdoYXQt eW91LXVzZS90ZW1wbGF0ZSBiL3NyY3BrZ3MvaW5jbHVkZS13aGF0LXlvdS11c2UvdGVtcGxhdGUK aW5kZXggYjEzYmI3ZWU1NmFmLi4yOTc2NjlmNjA0NTkgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvaW5j bHVkZS13aGF0LXlvdS11c2UvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9pbmNsdWRlLXdoYXQteW91 LXVzZS90ZW1wbGF0ZQpAQCAtMSw2ICsxLDYgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2luY2x1 ZGUtd2hhdC15b3UtdXNlJwogcGtnbmFtZT1pbmNsdWRlLXdoYXQteW91LXVzZQotdmVyc2lvbj0w LjE2Cit2ZXJzaW9uPTAuMTgKIHJldmlzaW9uPTEKIHdya3NyYz0iJHtwa2duYW1lfSIKIGJ1aWxk X3N0eWxlPWNtYWtlCkBAIC0xMiw3ICsxMiw3IEBAIG1haW50YWluZXI9IkxlYWggTmV1a2lyY2hl biA8bGVhaEB2dXh1Lm9yZz4iCiBsaWNlbnNlPSJOQ1NBIgogaG9tZXBhZ2U9Imh0dHBzOi8vaW5j bHVkZS13aGF0LXlvdS11c2Uub3JnLyIKIGRpc3RmaWxlcz0iaHR0cHM6Ly9pbmNsdWRlLXdoYXQt eW91LXVzZS5vcmcvZG93bmxvYWRzLyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS5zcmMudGFyLmd6Igot Y2hlY2tzdW09OGQ2ZmM5YjI1NTM0M2JjMWU1ZWM0NTllMzk1MTJkZjFkNTFjNjBlMDM1NjI5ODVl MDA3NjAzNjExOWZmNWExYworY2hlY2tzdW09OTEwMmZjODQxOTI5NDc1N2RmODZhODljZTZlYzMw NWY4ZDkwYTgxOGQxZjI1OThhMTM5ZDE1ZWIxODk0YjhmMwogcHl0aG9uX3ZlcnNpb249MwogCiBw b3N0X2luc3RhbGwoKSB7CgpGcm9tIDg4YTM0YjNmNDc0NjAwZjRlMmI3NDBlYTgwMmViOTljNjky MGI3NmMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IHByZXogPHByZXpAbmF0aW9uYWwu c2hpdHBvc3RpbmcuYWdlbmN5PgpEYXRlOiBNb24sIDIgTWF5IDIwMjIgMjE6MTg6MjQgKzAyMDAK U3ViamVjdDogW1BBVENIIDIzLzI3XSBTUElSVi1MTFZNLVRyYW5zbGF0b3I6IHVwZGF0ZSB0byAx NC4wLjAuCgotLS0KIGNvbW1vbi9zaGxpYnMgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDEg Kwogc3JjcGtncy9TUElSVi1MTFZNLVRyYW5zbGF0b3IvdGVtcGxhdGUgfCAxMSArKysrKystLS0t LQogMiBmaWxlcyBjaGFuZ2VkLCA3IGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvY29tbW9uL3NobGlicyBiL2NvbW1vbi9zaGxpYnMKaW5kZXggMzZiYWIxZDNkOTk5 Li41ZDA2YzIzODFmZWQgMTAwNjQ0Ci0tLSBhL2NvbW1vbi9zaGxpYnMKKysrIGIvY29tbW9uL3No bGlicwpAQCAtOTgxLDYgKzk4MSw3IEBAIGxpYmNsYW5nLWNwcC5zby4xNCBsaWJjbGFuZy1jcHAt MTQuMC4zXzEKIGxpYkxMVk0tMTEuc28gbGlibGx2bTExLTExLjAuMF8xCiBsaWJMTFZNLTEyLnNv IGxpYmxsdm0xMi0xMi4wLjBfMQogbGliTExWTS0xNC5zbyBsaWJsbHZtMTQtMTQuMC4zXzEKK2xp YkxMVk1TUElSVkxpYi5zby4xNCBTUElSVi1MTFZNLVRyYW5zbGF0b3ItMTQuMC4wXzEKIGxpYmlz b2ZzLnNvLjYgbGliaXNvZnMtMC42LjI0XzEKIGxpYm1wYWNrLnNvLjAgbGlibXBhY2stMS4wLjVf MQogbGliR2VvSVAuc28uMSBsaWJnZW9pcC0xLjQuOF8xCmRpZmYgLS1naXQgYS9zcmNwa2dzL1NQ SVJWLUxMVk0tVHJhbnNsYXRvci90ZW1wbGF0ZSBiL3NyY3BrZ3MvU1BJUlYtTExWTS1UcmFuc2xh dG9yL3RlbXBsYXRlCmluZGV4IDI1MDRjYWJlZDM2Ny4uMjI3N2QwNjJkOTkyIDEwMDY0NAotLS0g YS9zcmNwa2dzL1NQSVJWLUxMVk0tVHJhbnNsYXRvci90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL1NQ SVJWLUxMVk0tVHJhbnNsYXRvci90ZW1wbGF0ZQpAQCAtMSwxOSArMSwyMCBAQAogIyBUZW1wbGF0 ZSBmaWxlIGZvciAnU1BJUlYtTExWTS1UcmFuc2xhdG9yJwogcGtnbmFtZT1TUElSVi1MTFZNLVRy YW5zbGF0b3IKLXZlcnNpb249MTIuMC4wCit2ZXJzaW9uPTE0LjAuMAogcmV2aXNpb249MQogYnVp bGRfc3R5bGU9Y21ha2UKIG1ha2VfYnVpbGRfYXJncz0ibGx2bS1zcGlydiIKLWNvbmZpZ3VyZV9h cmdzPSItV25vLWRldiAtRExMVk1fTElOS19MTFZNX0RZTElCPU9OIC1EQ01BS0VfU0tJUF9SUEFU SD1PTgotIC1ETExWTV9TUElSVl9JTkNMVURFX1RFU1RTPU9GRiAtREJVSUxEX1NIQVJFRF9MSUJT PU9OIgorY29uZmlndXJlX2FyZ3M9Ii1EQlVJTERfU0hBUkVEX0xJQlM9T04gLURDTUFLRV9CVUlM RF9UWVBFPVJlbGVhc2UKKyAtRENNQUtFX1BPU0lUSU9OX0lOREVQRU5ERU5UX0NPREU9T04gLURD TUFLRV9TS0lQX1JQQVRIPU9OIC1ETExWTV9JTkNMVURFX1RFU1RTPU9GRgorIC1ETExWTV9MSU5L X0xMVk1fRFlMSUI9T04gLURMTFZNX0VYVEVSTkFMX0xJVD0vdXNyL2Jpbi9saXQgLVduby1kZXYg LURMTFZNX0VYVEVSTkFMX1NQSVJWX0hFQURFUlNfU09VUkNFX0RJUj0vdXNyL2luY2x1ZGUvc3Bp cnYvICIKIGhvc3RtYWtlZGVwZW5kcz0iY2xhbmcgY2xhbmctdG9vbHMtZXh0cmEgbGx2bSIKLW1h a2VkZXBlbmRzPSJsbHZtIgorbWFrZWRlcGVuZHM9Imxsdm0gU1BJUlYtSGVhZGVycyIKIHNob3J0 X2Rlc2M9IkFQSSBhbmQgY29tbWFuZHMgZm9yIHByb2Nlc3NpbmcgU1BJUi1WIG1vZHVsZXMiCiBt YWludGFpbmVyPSJPcnBoYW5lZCA8b3JwaGFuQHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iTkNT QSIKIGhvbWVwYWdlPSJodHRwczovL2dpdGh1Yi5jb20vS2hyb25vc0dyb3VwL1NQSVJWLUxMVk0t VHJhbnNsYXRvciIKIGRpc3RmaWxlcz0iaHR0cHM6Ly9naXRodWIuY29tL0tocm9ub3NHcm91cC8k e3BrZ25hbWV9L2FyY2hpdmUvcmVmcy90YWdzL3Yke3ZlcnNpb259LnRhci5neiIKLWNoZWNrc3Vt PTZlNGZhZDA0MjAzZjI1ZmNkZTRjMzA4YzUzZTlmNTliZDA1YTM5MDk3ODk5MmRiMzIxMmQ0YjYz YWZmNjIxMDgKK2NoZWNrc3VtPTFhZmM1MmJiNGUzOWFlYjliNWI2OTMyNGEyMDFjODFiZDk4NjM2 NGYzNDdiNTU5OTk1ZWZmNmZkNmYwMTMzMTgKIG1ha2VfY2hlY2s9bm8KIAogcG9zdF9pbnN0YWxs KCkgewoKRnJvbSBlMWQyZWYxMWVmYjIyZWQ0ZjMxNjhiNjRkOTYwZjEwZWM0NGEzYjhkIE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBwcmV6IDxwcmV6QG5hdGlvbmFsLnNoaXRwb3N0aW5n LmFnZW5jeT4KRGF0ZTogTW9uLCAyIE1heSAyMDIyIDIxOjM1OjQzICswMjAwClN1YmplY3Q6IFtQ QVRDSCAyNC8yN10gaXNwYzogdXBkYXRlIHRvIDEuMTcuMC4KCi0tLQogLi4uL2lzcGMvcGF0Y2hl cy9jbWFrZS1idWlsZC10eXBlLW5vbmUucGF0Y2ggIHwgICAxOCAtCiBzcmNwa2dzL2lzcGMvcGF0 Y2hlcy9sbHZtMTItMDAxLnBhdGNoICAgICAgICAgfCAgIDU3IC0KIHNyY3BrZ3MvaXNwYy9wYXRj aGVzL2xsdm0xMi0wMDIucGF0Y2ggICAgICAgICB8ICA5MjMgLS0tLS0tLS0KIHNyY3BrZ3MvaXNw Yy9wYXRjaGVzL2xsdm0xMi0wMDMucGF0Y2ggICAgICAgICB8IDE1MDQgLS0tLS0tLS0tLS0tCiBz cmNwa2dzL2lzcGMvcGF0Y2hlcy9sbHZtMTItMDA0LnBhdGNoICAgICAgICAgfCAgIDM0IC0KIHNy Y3BrZ3MvaXNwYy9wYXRjaGVzL2xsdm0xMi0wMDUucGF0Y2ggICAgICAgICB8ICAzNzIgLS0tCiBz cmNwa2dzL2lzcGMvcGF0Y2hlcy9sbHZtMTItMDA2LnBhdGNoICAgICAgICAgfCAgMTI2IC0KIHNy Y3BrZ3MvaXNwYy9wYXRjaGVzL2xsdm0xMi0wMDcucGF0Y2ggICAgICAgICB8ICAxNjAgLS0KIHNy Y3BrZ3MvaXNwYy9wYXRjaGVzL2xsdm0xMi0wMDgucGF0Y2ggICAgICAgICB8ICAxNDkgLS0KIHNy Y3BrZ3MvaXNwYy9wYXRjaGVzL2xsdm0xMi0wMDkucGF0Y2ggICAgICAgICB8IDIxMDkgLS0tLS0t LS0tLS0tLS0tLS0KIHNyY3BrZ3MvaXNwYy90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgICAgICAg ICB8ICAgIDYgKy0KIDExIGZpbGVzIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgNTQ1NSBkZWxl dGlvbnMoLSkKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2lzcGMvcGF0Y2hlcy9jbWFrZS1i dWlsZC10eXBlLW5vbmUucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2lzcGMvcGF0 Y2hlcy9sbHZtMTItMDAxLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9pc3BjL3Bh dGNoZXMvbGx2bTEyLTAwMi5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvaXNwYy9w YXRjaGVzL2xsdm0xMi0wMDMucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2lzcGMv cGF0Y2hlcy9sbHZtMTItMDA0LnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9pc3Bj L3BhdGNoZXMvbGx2bTEyLTAwNS5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvaXNw Yy9wYXRjaGVzL2xsdm0xMi0wMDYucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2lz cGMvcGF0Y2hlcy9sbHZtMTItMDA3LnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9p c3BjL3BhdGNoZXMvbGx2bTEyLTAwOC5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mv aXNwYy9wYXRjaGVzL2xsdm0xMi0wMDkucGF0Y2gKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2lzcGMv cGF0Y2hlcy9jbWFrZS1idWlsZC10eXBlLW5vbmUucGF0Y2ggYi9zcmNwa2dzL2lzcGMvcGF0Y2hl cy9jbWFrZS1idWlsZC10eXBlLW5vbmUucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDQxMWUzNTNjNzMxNC4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvaXNwYy9wYXRjaGVz L2NtYWtlLWJ1aWxkLXR5cGUtbm9uZS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDE4ICswLDAg QEAKLUluZGV4OiBpc3BjLTEuMTUuMC9DTWFrZUxpc3RzLnR4dAotPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGlz cGMtMS4xNS4wLm9yaWcvQ01ha2VMaXN0cy50eHQKLSsrKyBpc3BjLTEuMTUuMC9DTWFrZUxpc3Rz LnR4dAotQEAgLTE1NywxMyArMTU3LDYgQEAgc2V0KE9VVFBVVF9SRUxFQVNFIFJlbGVhc2UvYmlu KQotIHNldChDTUFLRV9SVU5USU1FX09VVFBVVF9ESVJFQ1RPUlkgJHtDTUFLRV9DVVJSRU5UX0JJ TkFSWV9ESVJ9L2JpbiApCi0gCi0gaWYoQ01BS0VfQlVJTERfVFlQRSkKLS0gICAgIyBWYWxpZGF0 ZSBidWlsZCB0eXBlCi0tICAgIHNldChDT05GSUdVUkFUSU9OX1RZUEVTICJEZWJ1ZztSZWxlYXNl O1JlbFdpdGhEZWJJbmZvIikKLS0KLS0gICAgc3RyaW5nKEZJTkQgIiR7Q09ORklHVVJBVElPTl9U WVBFU30iICIke0NNQUtFX0JVSUxEX1RZUEV9IiBNQVRDSEVEX0NPTkZJRykKLS0gICAgaWYgKCR7 TUFUQ0hFRF9DT05GSUd9IEVRVUFMIC0xKQotLSAgICAgICAgIG1lc3NhZ2UoRkFUQUxfRVJST1Ig IkNNQUtFX0JVSUxEX1RZUEUgKCR7Q01BS0VfQlVJTERfVFlQRX0pIGFsbG93cyBvbmx5IHRoZSBm b2xsb3dpbmcgdmFsdWVzOiAke0NPTkZJR1VSQVRJT05fVFlQRVN9IikKLS0gICAgZW5kaWYoKQot IGVsc2UoTk9UIENNQUtFX0JVSUxEX1RZUEUpCi0gICAgIHNldChDTUFLRV9CVUlMRF9UWVBFICJS ZWxlYXNlIikKLSAgICAgbWVzc2FnZShTVEFUVVMgIkJ1aWxkIHR5cGUgbm90IHNwZWNpZmllZDog VXNlIFJlbGVhc2UgYnkgZGVmYXVsdC4iKQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9pc3BjL3BhdGNo ZXMvbGx2bTEyLTAwMS5wYXRjaCBiL3NyY3BrZ3MvaXNwYy9wYXRjaGVzL2xsdm0xMi0wMDEucGF0 Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVmMmQzZjVhNDA5ZS4uMDAwMDAwMDAw MDAwCi0tLSBhL3NyY3BrZ3MvaXNwYy9wYXRjaGVzL2xsdm0xMi0wMDEucGF0Y2gKKysrIC9kZXYv bnVsbApAQCAtMSw1NyArMCwwIEBACi1Gcm9tIDFjMGY4OWRjY2I3NzRmMjE2YzdmNmU3NmE5OWVl OTA3YTFlNjQxY2IgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBEbWl0cnkgQmFib2tp biA8ZG1pdHJ5LnkuYmFib2tpbkBpbnRlbC5jb20+Ci1EYXRlOiBUdWUsIDIyIERlYyAyMDIwIDE3 OjAzOjU5IC0wODAwCi1TdWJqZWN0OiBbUEFUQ0hdIEZpeCB0byB3b3JrIHdpdGggTExWTSB0cnVu ayBhZnRlciBsbHZtL2xsdm0tcHJvamVjdEA0MWMzYjI3MTMKLQotLS0tCi0gc3JjL2N0eC5jcHAg fCAxOCArKysrKysrKysrKystLS0tLS0KLSAxIGZpbGUgY2hhbmdlZCwgMTIgaW5zZXJ0aW9ucygr KSwgNiBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL3NyYy9jdHguY3BwIGIvc3JjL2N0eC5j cHAKLWluZGV4IDZmYmI4YjljZi4uOTc3ZTlkMjIyIDEwMDY0NAotLS0tIGEvc3JjL2N0eC5jcHAK LSsrKyBiL3NyYy9jdHguY3BwCi1AQCAtMTQ3MywxMSArMTQ3MywxNSBAQCB2b2lkIEZ1bmN0aW9u RW1pdENvbnRleHQ6OkFkZERlYnVnUG9zKGxsdm06OlZhbHVlICp2YWx1ZSwgY29uc3QgU291cmNl UG9zICpwb3MsCi0gICAgIGxsdm06Okluc3RydWN0aW9uICppbnN0ID0gbGx2bTo6ZHluX2Nhc3Q8 bGx2bTo6SW5zdHJ1Y3Rpb24+KHZhbHVlKTsKLSAgICAgaWYgKGluc3QgIT0gTlVMTCAmJiBtLT5k aUJ1aWxkZXIpIHsKLSAgICAgICAgIFNvdXJjZVBvcyBwID0gcG9zID8gKnBvcyA6IGN1cnJlbnRQ b3M7Ci0tICAgICAgICBpZiAocC5maXJzdF9saW5lICE9IDApCi0rICAgICAgICBpZiAocC5maXJz dF9saW5lICE9IDApIHsKLSAgICAgICAgICAgICAvLyBJZiBmaXJzdF9saW5lID09IDAsIHRoZW4g d2UncmUgaW4gdGhlIG1pZGRsZSBvZiBzZXR0aW5nIHVwCi0gICAgICAgICAgICAgLy8gdGhlIHN0 YW5kYXJkIGxpYnJhcnkgb3IgdGhlIGxpa2U7IGRvbid0IGFkZCBkZWJ1ZyBwb3NpdGlvbnMKLSAg ICAgICAgICAgICAvLyBmb3IgdGhvc2UgZnVuY3Rpb25zCi0tICAgICAgICAgICAgaW5zdC0+c2V0 RGVidWdMb2MobGx2bTo6RGVidWdMb2M6OmdldChwLmZpcnN0X2xpbmUsIHAuZmlyc3RfY29sdW1u LCBzY29wZSA/IHNjb3BlIDogR2V0RElTY29wZSgpKSk7Ci0rICAgICAgICAgICAgc2NvcGUgPSBz Y29wZSA/IHNjb3BlIDogR2V0RElTY29wZSgpOwotKyAgICAgICAgICAgIGxsdm06OkRlYnVnTG9j IGRpTG9jID0KLSsgICAgICAgICAgICAgICAgbGx2bTo6RElMb2NhdGlvbjo6Z2V0KHNjb3BlLT5n ZXRDb250ZXh0KCksIHAuZmlyc3RfbGluZSwgcC5maXJzdF9jb2x1bW4sIHNjb3BlLCBudWxscHRy LCBmYWxzZSk7Ci0rICAgICAgICAgICAgaW5zdC0+c2V0RGVidWdMb2MoZGlMb2MpOwotKyAgICAg ICAgfQotICAgICB9Ci0gfQotIAotQEAgLTE1MTgsOSArMTUyMiwxMCBAQCB2b2lkIEZ1bmN0aW9u RW1pdENvbnRleHQ6OkVtaXRWYXJpYWJsZURlYnVnSW5mbyhTeW1ib2wgKnN5bSkgewotICAgICBs bHZtOjpESUxvY2FsVmFyaWFibGUgKnZhciA9IG0tPmRpQnVpbGRlci0+Y3JlYXRlQXV0b1Zhcmlh YmxlKAotICAgICAgICAgc2NvcGUsIHN5bS0+bmFtZSwgc3ltLT5wb3MuR2V0RElGaWxlKCksIHN5 bS0+cG9zLmZpcnN0X2xpbmUsIGRpVHlwZSwgdHJ1ZSAvKiBwcmVzZXJ2ZSB0aHJvdWdoIG9wdHMg Ki8pOwotIAotKyAgICBsbHZtOjpEZWJ1Z0xvYyBkaUxvYyA9Ci0rICAgICAgICBsbHZtOjpESUxv Y2F0aW9uOjpnZXQoc2NvcGUtPmdldENvbnRleHQoKSwgc3ltLT5wb3MuZmlyc3RfbGluZSwgc3lt LT5wb3MuZmlyc3RfY29sdW1uLCBzY29wZSwgbnVsbHB0ciwgZmFsc2UpOwotICAgICBsbHZtOjpJ bnN0cnVjdGlvbiAqZGVjbGFyZUluc3QgPQotLSAgICAgICAgbS0+ZGlCdWlsZGVyLT5pbnNlcnRE ZWNsYXJlKHN5bS0+c3RvcmFnZVB0ciwgdmFyLCBtLT5kaUJ1aWxkZXItPmNyZWF0ZUV4cHJlc3Np b24oKSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpEZWJ1Z0xv Yzo6Z2V0KHN5bS0+cG9zLmZpcnN0X2xpbmUsIHN5bS0+cG9zLmZpcnN0X2NvbHVtbiwgc2NvcGUp LCBiYmxvY2spOwotKyAgICAgICAgbS0+ZGlCdWlsZGVyLT5pbnNlcnREZWNsYXJlKHN5bS0+c3Rv cmFnZVB0ciwgdmFyLCBtLT5kaUJ1aWxkZXItPmNyZWF0ZUV4cHJlc3Npb24oKSwgZGlMb2MsIGJi bG9jayk7Ci0gICAgIEFkZERlYnVnUG9zKGRlY2xhcmVJbnN0LCAmc3ltLT5wb3MsIHNjb3BlKTsK LSB9Ci0gCi1AQCAtMTUzNSw5ICsxNTQwLDEwIEBAIHZvaWQgRnVuY3Rpb25FbWl0Q29udGV4dDo6 RW1pdEZ1bmN0aW9uUGFyYW1ldGVyRGVidWdJbmZvKFN5bWJvbCAqc3ltLCBpbnQgYXJnTnVtCi0g ICAgICAgICBtLT5kaUJ1aWxkZXItPmNyZWF0ZVBhcmFtZXRlclZhcmlhYmxlKHNjb3BlLCBzeW0t Pm5hbWUsIGFyZ051bSArIDEsIHN5bS0+cG9zLkdldERJRmlsZSgpLCBzeW0tPnBvcy5maXJzdF9s aW5lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaVR5 cGUsIHRydWUgLyogcHJlc2VydmUgdGhyb3VnaCBvcHRzICovLCBmbGFncyk7Ci0gCi0rICAgIGxs dm06OkRlYnVnTG9jIGRpTG9jID0KLSsgICAgICAgIGxsdm06OkRJTG9jYXRpb246OmdldChzY29w ZS0+Z2V0Q29udGV4dCgpLCBzeW0tPnBvcy5maXJzdF9saW5lLCBzeW0tPnBvcy5maXJzdF9jb2x1 bW4sIHNjb3BlLCBudWxscHRyLCBmYWxzZSk7Ci0gICAgIGxsdm06Okluc3RydWN0aW9uICpkZWNs YXJlSW5zdCA9Ci0tICAgICAgICBtLT5kaUJ1aWxkZXItPmluc2VydERlY2xhcmUoc3ltLT5zdG9y YWdlUHRyLCB2YXIsIG0tPmRpQnVpbGRlci0+Y3JlYXRlRXhwcmVzc2lvbigpLAotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06OkRlYnVnTG9jOjpnZXQoc3ltLT5wb3Mu Zmlyc3RfbGluZSwgc3ltLT5wb3MuZmlyc3RfY29sdW1uLCBzY29wZSksIGJibG9jayk7Ci0rICAg ICAgICBtLT5kaUJ1aWxkZXItPmluc2VydERlY2xhcmUoc3ltLT5zdG9yYWdlUHRyLCB2YXIsIG0t PmRpQnVpbGRlci0+Y3JlYXRlRXhwcmVzc2lvbigpLCBkaUxvYywgYmJsb2NrKTsKLSAgICAgQWRk RGVidWdQb3MoZGVjbGFyZUluc3QsICZzeW0tPnBvcywgc2NvcGUpOwotIH0KLSAKZGlmZiAtLWdp dCBhL3NyY3BrZ3MvaXNwYy9wYXRjaGVzL2xsdm0xMi0wMDIucGF0Y2ggYi9zcmNwa2dzL2lzcGMv cGF0Y2hlcy9sbHZtMTItMDAyLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw OTAzZjMwZGExMGQuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2lzcGMvcGF0Y2hlcy9sbHZt MTItMDAyLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsOTIzICswLDAgQEAKLUZyb20gMDU5N2E3 OWQwODRjMDE0NzgwMTM2ZGE5MDZhZmUyMWQxNWU5ODJjYiBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKLUZyb206IERlZXBha1JhamVuZHJha3VtYXJhbiA8ZGVlcGFrLnJhamVuZHJha3VtYXJhbkBp bnRlbC5jb20+Ci1EYXRlOiBUdWUsIDUgSmFuIDIwMjEgMTM6NTM6MzAgLTA4MDAKLVN1YmplY3Q6 IFtQQVRDSF0gUmVtb3ZlIExMVk0gOC4wIGFuZCBMTFZNIDkuMC4gKCMxOTY2KQotCi0tLS0KLSAu YXBwdmV5b3IueW1sICAgICAgICAgICAgICAgICAgICAgICAgfCAgMyAtLQotIC50cmF2aXMueW1s ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA3IC0tLQotIENNYWtlTGlzdHMudHh0ICAgICAg ICAgICAgICAgICAgICAgICB8IDEyICsrLS0tLQotIHNyYy9hc3QuY3BwICAgICAgICAgICAgICAg ICAgICAgICAgICB8ICA0IC0tCi0gc3JjL2N0eC5jcHAgICAgICAgICAgICAgICAgICAgICAgICAg IHwgMzAgLS0tLS0tLS0tLS0tLQotIHNyYy9nZW4vR2xvYmFsc0xvY2FsaXphdGlvbi5jcHAgICAg ICB8ICA0IC0tCi0gc3JjL2lzcGMuY3BwICAgICAgICAgICAgICAgICAgICAgICAgIHwgMjAgLS0t LS0tLS0tCi0gc3JjL2lzcGMuaCAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDMgKy0KLSBz cmMvaXNwY192ZXJzaW9uLmggICAgICAgICAgICAgICAgICAgfCAgNCArLQotIHNyYy9tYWluLmNw cCAgICAgICAgICAgICAgICAgICAgICAgICB8IDEzIC0tLS0tLQotIHNyYy9tb2R1bGUuY3BwICAg ICAgICAgICAgICAgICAgICAgICB8IDI3IC0tLS0tLS0tLS0tLQotIHNyYy9tb2R1bGUuaCAgICAg ICAgICAgICAgICAgICAgICAgICB8ICAyIC0KLSBzcmMvb3B0LmNwcCAgICAgICAgICAgICAgICAg ICAgICAgICAgfCA2NCArKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gc3JjL3R5cGUuY3Bw ICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTAgKystLS0KLSB0ZXN0cy9saXQtdGVzdHMvMTc3 MS5pc3BjICAgICAgICAgICAgfCAgMSAtCi0gdGVzdHMvbGl0LXRlc3RzLzE4NDQuaXNwYyAgICAg ICAgICAgIHwgIDMgLS0KLSB0ZXN0cy9saXQtdGVzdHMvMTkyNi5pc3BjICAgICAgICAgICAgfCAg MiAtCi0gdGVzdHMvbGl0LXRlc3RzL2NwdXNfeDg2LmlzcGMgICAgICAgIHwgIDIgKwotIHRlc3Rz L2xpdC10ZXN0cy9jcHVzX3g4Nl9sbHZtMTAuaXNwYyB8IDExIC0tLS0tCi0gdGVzdHMvbGl0LXRl c3RzL2xpdC5jZmcgICAgICAgICAgICAgIHwgIDUgLS0tCi0gMjAgZmlsZXMgY2hhbmdlZCwgMTQg aW5zZXJ0aW9ucygrKSwgMjEzIGRlbGV0aW9ucygtKQotIGRlbGV0ZSBtb2RlIDEwMDY0NCB0ZXN0 cy9saXQtdGVzdHMvY3B1c194ODZfbGx2bTEwLmlzcGMKLQotZGlmZiAtLWdpdCBhLy5hcHB2ZXlv ci55bWwgYi8uYXBwdmV5b3IueW1sCi1pbmRleCA0NTFhN2IzZTAuLjc5NDVjY2EyYSAxMDA2NDQK LS0tLSBhLy5hcHB2ZXlvci55bWwKLSsrKyBiLy5hcHB2ZXlvci55bWwKLUBAIC00MSw4ICs0MSw2 IEBAIGVudmlyb25tZW50OgotICAgICAgIExMVk1fVkVSU0lPTjogbGF0ZXN0Ci0gICAgIC0gQVBQ VkVZT1JfQlVJTERfV09SS0VSX0lNQUdFOiBWaXN1YWwgU3R1ZGlvIDIwMTkKLSAgICAgICBMTFZN X1ZFUlNJT046IDEwLjAKLS0gICAgLSBBUFBWRVlPUl9CVUlMRF9XT1JLRVJfSU1BR0U6IFZpc3Vh bCBTdHVkaW8gMjAxOQotLSAgICAgIExMVk1fVkVSU0lPTjogOS4wCi0gCi0gZm9yOgotIC0KLUBA IC02Miw3ICs2MCw2IEBAIGZvcjoKLSAgICAgICAgIGlmICIlQVBQVkVZT1JfQlVJTERfV09SS0VS X0lNQUdFJSI9PSJWaXN1YWwgU3R1ZGlvIDIwMTkiICggKHNldCBnZW5lcmF0b3I9IlZpc3VhbCBT dHVkaW8gMTYiKSAmIChzZXQgdnN2ZXJzaW9uPTIwMTkpKQotICAgICAgICAgc2V0IExMVk1fVEFS PWxsdm0tMTEuMC4wLXdpbi52czIwMTktUmVsZWFzZStBc3NlcnRzLXg4Ni5hcm0ud2FzbS43egot ICAgICAgICAgaWYgIiVMTFZNX1ZFUlNJT04lIj09IjEwLjAiIChzZXQgTExWTV9UQVI9bGx2bS0x MC4wLjEtd2luLnZzMjAxOS1SZWxlYXNlK0Fzc2VydHMteDg2LmFybS53YXNtLnppcCkKLS0gICAg ICAgIGlmICIlTExWTV9WRVJTSU9OJSI9PSI5LjAiIChzZXQgTExWTV9UQVI9bGx2bS05LjAuMS13 aW4udnMyMDE3LVJlbGVhc2UrQXNzZXJ0cy14ODYuYXJtLndhc20uemlwKQotICAgaW5zdGFsbDoK LSAgICAgLSBwczogY2hvY28gaW5zdGFsbCAtLW5vLXByb2dyZXNzIHdpbmZsZXhiaXNvbjMgd2dl dCA3emlwCi0gICAgIC0gY21kOiB8LQotZGlmZiAtLWdpdCBhLy50cmF2aXMueW1sIGIvLnRyYXZp cy55bWwKLWluZGV4IDJlOTYwMTdhNi4uM2E2Yjg1MjY0IDEwMDY0NAotLS0tIGEvLnRyYXZpcy55 bWwKLSsrKyBiLy50cmF2aXMueW1sCi1AQCAtMTA4LDEzICsxMDgsNiBAQCBqb2JzOgotICAgICAg ICAgLSBMTFZNX1RBUj1sbHZtLTEwLjAuMS11YnVudHUxNi4wNC1SZWxlYXNlK0Fzc2VydHMteDg2 LmFybS53YXNtLnRhci54egotICAgICAgICAgLSBMTFZNX1JFUE89aHR0cHM6Ly9naXRodWIuY29t L2RiYWJva2luL2xsdm0tcHJvamVjdAotICAgICAgICAgLSBJU1BDX0hPTUU9JFRSQVZJU19CVUlM RF9ESVIKLS0gICAgIyBMTFZNIDkuMCArIFVidW50dSAxNi4wNDogYnVpbGQsIGxpdCB0ZXN0cywg ZXhhbXBsZXMgKGJ1aWxkICsgcnVuKSwgYmVuY2htYXJrcyAoYnVpbGQgKyB0cmlhbCBydW4pCi0t ICAgIC0gPDw6ICpteV90YWcKLS0gICAgICBlbnY6Ci0tICAgICAgICAtIExMVk1fVkVSU0lPTj05 LjAgT1M9VWJ1bnR1MTYuMDQKLS0gICAgICAgIC0gTExWTV9UQVI9bGx2bS05LjAuMS11YnVudHUx Ni4wNC1SZWxlYXNlK0Fzc2VydHMteDg2LmFybS53YXNtLnRhci54egotLSAgICAgICAgLSBMTFZN X1JFUE89aHR0cHM6Ly9naXRodWIuY29tL2RiYWJva2luL2xsdm0tcHJvamVjdAotLSAgICAgICAg LSBJU1BDX0hPTUU9JFRSQVZJU19CVUlMRF9ESVIKLSAgICAgIyBXQVNNIGVuYWJsZWQgYnVpbGQK LSAgICAgIyBMTFZNIDExLjAgKyBVYnVudHUgMTYuMDQ6IGJ1aWxkLCBsaXQgdGVzdHMsIGV4YW1w bGVzIChidWlsZCksIGJlbmNobWFya3MgKGJ1aWxkICsgdHJpYWwgcnVuKQotICAgICAtIDw8OiAq bXlfdGFnCi1kaWZmIC0tZ2l0IGEvQ01ha2VMaXN0cy50eHQgYi9DTWFrZUxpc3RzLnR4dAotaW5k ZXggNWZhODYzZmNmLi5hNmIzZWQyNTEgMTAwNjQ0Ci0tLS0gYS9DTWFrZUxpc3RzLnR4dAotKysr IGIvQ01ha2VMaXN0cy50eHQKLUBAIC0yNDEsMTAgKzI0MSw4IEBAIGlmIChYODZfRU5BQkxFRCkK LSAgICAgICAgIGF2eDItaTh4MzIgYXZ4Mi1pMTZ4MTYKLSAgICAgICAgIGF2eDItaTMyeDQgYXZ4 Mi1pMzJ4OCBhdngyLWkzMngxNiBhdngyLWk2NHg0Ci0gICAgICAgICBhdng1MTJrbmwtaTMyeDE2 Ci0tICAgICAgICBhdng1MTJza3gtaTMyeDE2IGF2eDUxMnNreC1pMzJ4OCkKLS0gICAgaWYgKCR7 TExWTV9WRVJTSU9OX05VTUJFUn0gVkVSU0lPTl9HUkVBVEVSX0VRVUFMICIxMC4wLjAiKQotLSAg ICAgICAgbGlzdChBUFBFTkQgSVNQQ19UQVJHRVRTIGF2eDUxMnNreC1pOHg2NCBhdng1MTJza3gt aTE2eDMyKQotLSAgICBlbmRpZigpCi0rICAgICAgICBhdng1MTJza3gtaTMyeDE2IGF2eDUxMnNr eC1pMzJ4OAotKyAgICAgICAgYXZ4NTEyc2t4LWk4eDY0IGF2eDUxMnNreC1pMTZ4MzIpCi0gZW5k aWYoKQotIGlmIChBUk1fRU5BQkxFRCkKLSAgICAgbGlzdChBUFBFTkQgSVNQQ19UQVJHRVRTIG5l b24taTh4MTYgbmVvbi1pMTZ4OCBuZW9uLWkzMng0IG5lb24taTMyeDgpCi1AQCAtMjU5LDExICsy NTcsNyBAQCBpZiAoV0FTTV9FTkFCTEVEKQotIGVuZGlmKCkKLSAKLSBzZXQoQ0xBTkdfTElCUkFS WV9MSVNUIGNsYW5nRnJvbnRlbmQgY2xhbmdEcml2ZXIgY2xhbmdTZXJpYWxpemF0aW9uIGNsYW5n UGFyc2UgY2xhbmdTZW1hIGNsYW5nQW5hbHlzaXMgY2xhbmdBU1QgY2xhbmdCYXNpYyBjbGFuZ0Vk aXQgY2xhbmdMZXgpCi0tc2V0KExMVk1fQ09NUE9ORU5UUyBlbmdpbmUgaXBvIGJpdHJlYWRlciBi aXR3cml0ZXIgaW5zdHJ1bWVudGF0aW9uIGxpbmtlciBvcHRpb24pCi0tCi0taWYgKCR7TExWTV9W RVJTSU9OX05VTUJFUn0gVkVSU0lPTl9HUkVBVEVSX0VRVUFMICIxMC4wLjAiKQotLSAgICBsaXN0 KEFQUEVORCBMTFZNX0NPTVBPTkVOVFMgZnJvbnRlbmRvcGVubXApCi0tZW5kaWYoKQotK3NldChM TFZNX0NPTVBPTkVOVFMgZW5naW5lIGlwbyBiaXRyZWFkZXIgYml0d3JpdGVyIGluc3RydW1lbnRh dGlvbiBsaW5rZXIgb3B0aW9uIGZyb250ZW5kb3Blbm1wKQotIAotIGlmIChYODZfRU5BQkxFRCkK LSAgICAgbGlzdChBUFBFTkQgTExWTV9DT01QT05FTlRTIHg4NikKLWRpZmYgLS1naXQgYS9zcmMv YXN0LmNwcCBiL3NyYy9hc3QuY3BwCi1pbmRleCAyMGY3NWEyOWMuLjVhNDNjNDg1NCAxMDA2NDQK LS0tLSBhL3NyYy9hc3QuY3BwCi0rKysgYi9zcmMvYXN0LmNwcAotQEAgLTQ0LDkgKzQ0LDcgQEAK LSAjaW5jbHVkZSAic3ltLmgiCi0gI2luY2x1ZGUgInV0aWwuaCIKLSAKLS0jaWYgSVNQQ19MTFZN X1ZFUlNJT04gPj0gSVNQQ19MTFZNXzEwXzAKLSAjaW5jbHVkZSA8bGx2bS9TdXBwb3J0L1RpbWVQ cm9maWxlci5oPgotLSNlbmRpZgotIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotIC8vIEFTVE5vZGUKLSAK LUBAIC02Miw5ICs2MCw3IEBAIHZvaWQgQVNUOjpBZGRGdW5jdGlvbihTeW1ib2wgKnN5bSwgU3Rt dCAqY29kZSkgewotIH0KLSAKLSB2b2lkIEFTVDo6R2VuZXJhdGVJUigpIHsKLS0jaWYgSVNQQ19M TFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzEwXzAKLSAgICAgbGx2bTo6VGltZVRyYWNlU2NvcGUg VGltZVNjb3BlKCJHZW5lcmF0ZUlSIik7Ci0tI2VuZGlmCi0gICAgIGZvciAodW5zaWduZWQgaW50 IGkgPSAwOyBpIDwgZnVuY3Rpb25zLnNpemUoKTsgKytpKQotICAgICAgICAgZnVuY3Rpb25zW2ld LT5HZW5lcmF0ZUlSKCk7Ci0gfQotZGlmZiAtLWdpdCBhL3NyYy9jdHguY3BwIGIvc3JjL2N0eC5j cHAKLWluZGV4IDk3N2U5ZDIyMi4uNDJjNGVhMDlkIDEwMDY0NAotLS0tIGEvc3JjL2N0eC5jcHAK LSsrKyBiL3NyYy9jdHguY3BwCi1AQCAtMzA5LDIxICszMDksMTMgQEAgRnVuY3Rpb25FbWl0Q29u dGV4dDo6RnVuY3Rpb25FbWl0Q29udGV4dChGdW5jdGlvbiAqZnVuYywgU3ltYm9sICpmdW5TeW0s IGxsdm06OkYKLSAgICAgICAgICAgICBjaGFyIGJ1ZlsyNTZdOwotICAgICAgICAgICAgIHNucHJp bnRmKGJ1Ziwgc2l6ZW9mKGJ1ZiksICJfX29mZl9hbGxfb25fbWFza18lcyIsIGctPnRhcmdldC0+ R2V0SVNBU3RyaW5nKCkpOwotIAotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA8PSBJU1BDX0xMVk1f OF8wCi0tICAgICAgICAgICAgbGx2bTo6Q29uc3RhbnQgKm9mZkZ1bmMgPSBtLT5tb2R1bGUtPmdl dE9ySW5zZXJ0RnVuY3Rpb24oYnVmLCBMTFZNVHlwZXM6OlZvaWRUeXBlKTsKLS0jZWxzZSAvLyBM TFZNIDkuMCsKLSAgICAgICAgICAgICBsbHZtOjpGdW5jdGlvbkNhbGxlZSBvZmZGdW5jQ2FsbGVl ID0gbS0+bW9kdWxlLT5nZXRPckluc2VydEZ1bmN0aW9uKGJ1ZiwgTExWTVR5cGVzOjpWb2lkVHlw ZSk7Ci0gICAgICAgICAgICAgbGx2bTo6Q29uc3RhbnQgKm9mZkZ1bmMgPSBsbHZtOjpjYXN0PGxs dm06OkNvbnN0YW50PihvZmZGdW5jQ2FsbGVlLmdldENhbGxlZSgpKTsKLS0jZW5kaWYKLSAgICAg ICAgICAgICBBc3NlcnRQb3MoY3VycmVudFBvcywgbGx2bTo6aXNhPGxsdm06OkZ1bmN0aW9uPihv ZmZGdW5jKSk7Ci0gICAgICAgICAgICAgbGx2bTo6QmFzaWNCbG9jayAqb2ZmQkIgPSBsbHZtOjpC YXNpY0Jsb2NrOjpDcmVhdGUoKmctPmN0eCwgImVudHJ5IiwgKGxsdm06OkZ1bmN0aW9uICopb2Zm RnVuYywgMCk7Ci0gICAgICAgICAgICAgbGx2bTo6U3RvcmVJbnN0ICppbnN0ID0gbmV3IGxsdm06 OlN0b3JlSW5zdChMTFZNTWFza0FsbE9mZiwgZ2xvYmFsQWxsT25NYXNrUHRyLCBvZmZCQik7Ci0g ICAgICAgICAgICAgaWYgKGctPm9wdC5mb3JjZUFsaWduZWRNZW1vcnkpIHsKLS0jaWYgSVNQQ19M TFZNX1ZFUlNJT04gPD0gSVNQQ19MTFZNXzlfMAotLSAgICAgICAgICAgICAgICBpbnN0LT5zZXRB bGlnbm1lbnQoZy0+dGFyZ2V0LT5nZXROYXRpdmVWZWN0b3JBbGlnbm1lbnQoKSk7Ci0tI2Vsc2Ug Ly8gTExWTSAxMC4wKwotICAgICAgICAgICAgICAgICBpbnN0LT5zZXRBbGlnbm1lbnQobGx2bTo6 TWF5YmVBbGlnbihnLT50YXJnZXQtPmdldE5hdGl2ZVZlY3RvckFsaWdubWVudCgpKS52YWx1ZU9y T25lKCkpOwotLSNlbmRpZgotICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICBsbHZtOjpSZXR1 cm5JbnN0OjpDcmVhdGUoKmctPmN0eCwgb2ZmQkIpOwotICAgICAgICAgfQotQEAgLTIyODgsMTEg KzIyODAsNyBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6TG9hZEluc3QobGx2 bTo6VmFsdWUgKnB0ciwgY29uc3QgVHlwZSAqdHlwZSwgYwotICNlbmRpZgotIAotICAgICBpZiAo Zy0+b3B0LmZvcmNlQWxpZ25lZE1lbW9yeSAmJiBsbHZtOjpkeW5fY2FzdDxsbHZtOjpWZWN0b3JU eXBlPihwdC0+Z2V0RWxlbWVudFR5cGUoKSkpIHsKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPD0g SVNQQ19MTFZNXzlfMAotLSAgICAgICAgaW5zdC0+c2V0QWxpZ25tZW50KGctPnRhcmdldC0+Z2V0 TmF0aXZlVmVjdG9yQWxpZ25tZW50KCkpOwotLSNlbHNlIC8vIExMVk0gMTAuMCsKLSAgICAgICAg IGluc3QtPnNldEFsaWdubWVudChsbHZtOjpNYXliZUFsaWduKGctPnRhcmdldC0+Z2V0TmF0aXZl VmVjdG9yQWxpZ25tZW50KCkpLnZhbHVlT3JPbmUoKSk7Ci0tI2VuZGlmCi0gICAgIH0KLSAKLSAg ICAgQWRkRGVidWdQb3MoaW5zdCk7Ci1AQCAtMjQzMSwxMSArMjQxOSw3IEBAIGxsdm06OlZhbHVl ICpGdW5jdGlvbkVtaXRDb250ZXh0OjpMb2FkSW5zdChsbHZtOjpWYWx1ZSAqcHRyLCBsbHZtOjpW YWx1ZSAqbWFzaywKLSAgICAgICAgICAgICAgICAgLy8gdnMgdGhlIHByb3BlciBhbGlnbm1lbnQg aW4gcHJhY3RpY2UuKQotICAgICAgICAgICAgICAgICBpbnQgYWxpZ24gPSAxOwotIAotLSNpZiBJ U1BDX0xMVk1fVkVSU0lPTiA8PSBJU1BDX0xMVk1fOV8wCi0tICAgICAgICAgICAgICAgIGluc3Qt PnNldEFsaWdubWVudChhbGlnbik7Ci0tI2Vsc2UgLy8gTExWTSAxMC4wKwotICAgICAgICAgICAg ICAgICBpbnN0LT5zZXRBbGlnbm1lbnQobGx2bTo6TWF5YmVBbGlnbihhbGlnbikudmFsdWVPck9u ZSgpKTsKLS0jZW5kaWYKLSAgICAgICAgICAgICB9Ci0gCi0gICAgICAgICAgICAgQWRkRGVidWdQ b3MoaW5zdCk7Ci1AQCAtMjY0OSwxMSArMjYzMyw3IEBAIGxsdm06OlZhbHVlICpGdW5jdGlvbkVt aXRDb250ZXh0OjpBbGxvY2FJbnN0KGxsdm06OlR5cGUgKmxsdm1UeXBlLCBjb25zdCBjaGFyICpu Ci0gICAgICAgICBhbGlnbiA9IGctPnRhcmdldC0+Z2V0TmF0aXZlVmVjdG9yQWxpZ25tZW50KCk7 Ci0gCi0gICAgIGlmIChhbGlnbiAhPSAwKSB7Ci0tI2lmIElTUENfTExWTV9WRVJTSU9OIDw9IElT UENfTExWTV85XzAKLS0gICAgICAgIGluc3QtPnNldEFsaWdubWVudChhbGlnbik7Ci0tI2Vsc2Ug Ly8gTExWTSAxMC4wKwotICAgICAgICAgaW5zdC0+c2V0QWxpZ25tZW50KGxsdm06Ok1heWJlQWxp Z24oYWxpZ24pLnZhbHVlT3JPbmUoKSk7Ci0tI2VuZGlmCi0gICAgIH0KLSAgICAgLy8gRG9uJ3Qg YWRkIGRlYnVnZ2luZyBpbmZvIHRvIGFsbG9jYSBpbnN0cnVjdGlvbnMKLSAgICAgcmV0dXJuIGlu c3Q7Ci1AQCAtMjkyNiwxMSArMjkwNiw3IEBAIHZvaWQgRnVuY3Rpb25FbWl0Q29udGV4dDo6U3Rv cmVJbnN0KGxsdm06OlZhbHVlICp2YWx1ZSwgbGx2bTo6VmFsdWUgKnB0ciwgY29uc3QKLSAgICAg bGx2bTo6U3RvcmVJbnN0ICppbnN0ID0gbmV3IGxsdm06OlN0b3JlSW5zdCh2YWx1ZSwgcHRyLCBi YmxvY2spOwotIAotICAgICBpZiAoZy0+b3B0LmZvcmNlQWxpZ25lZE1lbW9yeSAmJiBsbHZtOjpk eW5fY2FzdDxsbHZtOjpWZWN0b3JUeXBlPihwdC0+Z2V0RWxlbWVudFR5cGUoKSkpIHsKLS0jaWYg SVNQQ19MTFZNX1ZFUlNJT04gPD0gSVNQQ19MTFZNXzlfMAotLSAgICAgICAgaW5zdC0+c2V0QWxp Z25tZW50KGctPnRhcmdldC0+Z2V0TmF0aXZlVmVjdG9yQWxpZ25tZW50KCkpOwotLSNlbHNlIC8v IExMVk0gMTAuMCsKLSAgICAgICAgIGluc3QtPnNldEFsaWdubWVudChsbHZtOjpNYXliZUFsaWdu KGctPnRhcmdldC0+Z2V0TmF0aXZlVmVjdG9yQWxpZ25tZW50KCkpLnZhbHVlT3JPbmUoKSk7Ci0t I2VuZGlmCi0gICAgIH0KLSAKLSAjaWZkZWYgSVNQQ19HRU5YX0VOQUJMRUQKLUBAIC0zMDI1LDE2 ICszMDAxLDEwIEBAIHZvaWQgRnVuY3Rpb25FbWl0Q29udGV4dDo6TWVtY3B5SW5zdChsbHZtOjpW YWx1ZSAqZGVzdCwgbGx2bTo6VmFsdWUgKnNyYywgbGx2bTo6Ci0gICAgIH0KLSAgICAgaWYgKGFs aWduID09IE5VTEwpCi0gICAgICAgICBhbGlnbiA9IExMVk1JbnQzMigxKTsKLS0jaWYgSVNQQ19M TFZNX1ZFUlNJT04gPD0gSVNQQ19MTFZNXzhfMAotLSAgICBsbHZtOjpDb25zdGFudCAqbWNGdW5j ID0KLS0gICAgICAgIG0tPm1vZHVsZS0+Z2V0T3JJbnNlcnRGdW5jdGlvbigibGx2bS5tZW1jcHku cDBpOC5wMGk4Lmk2NCIsIExMVk1UeXBlczo6Vm9pZFR5cGUsIExMVk1UeXBlczo6Vm9pZFBvaW50 ZXJUeXBlLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExMVk1UeXBl czo6Vm9pZFBvaW50ZXJUeXBlLCBMTFZNVHlwZXM6OkludDY0VHlwZSwgTExWTVR5cGVzOjpCb29s VHlwZSk7Ci0tI2Vsc2UgLy8gTExWTSA5LjArCi0gICAgIGxsdm06OkZ1bmN0aW9uQ2FsbGVlIG1j RnVuY0NhbGxlZSA9Ci0gICAgICAgICBtLT5tb2R1bGUtPmdldE9ySW5zZXJ0RnVuY3Rpb24oImxs dm0ubWVtY3B5LnAwaTgucDBpOC5pNjQiLCBMTFZNVHlwZXM6OlZvaWRUeXBlLCBMTFZNVHlwZXM6 OlZvaWRQb2ludGVyVHlwZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBMTFZNVHlwZXM6OlZvaWRQb2ludGVyVHlwZSwgTExWTVR5cGVzOjpJbnQ2NFR5cGUsIExMVk1U eXBlczo6Qm9vbFR5cGUpOwotICAgICBsbHZtOjpDb25zdGFudCAqbWNGdW5jID0gbGx2bTo6Y2Fz dDxsbHZtOjpDb25zdGFudD4obWNGdW5jQ2FsbGVlLmdldENhbGxlZSgpKTsKLS0jZW5kaWYKLSAg ICAgQXNzZXJ0UG9zKGN1cnJlbnRQb3MsIG1jRnVuYyAhPSBOVUxMKTsKLSAgICAgQXNzZXJ0UG9z KGN1cnJlbnRQb3MsIGxsdm06OmlzYTxsbHZtOjpGdW5jdGlvbj4obWNGdW5jKSk7Ci0gCi1kaWZm IC0tZ2l0IGEvc3JjL2dlbi9HbG9iYWxzTG9jYWxpemF0aW9uLmNwcCBiL3NyYy9nZW4vR2xvYmFs c0xvY2FsaXphdGlvbi5jcHAKLWluZGV4IDE5M2E2NjI4OS4uYTE3NmU5NDYyIDEwMDY0NAotLS0t IGEvc3JjL2dlbi9HbG9iYWxzTG9jYWxpemF0aW9uLmNwcAotKysrIGIvc3JjL2dlbi9HbG9iYWxz TG9jYWxpemF0aW9uLmNwcAotQEAgLTQ3MCwxMSArNDcwLDcgQEAgdm9pZCBHbG9iYWxzTG9jYWxp emF0aW9uOjpMb2NhbGl6ZUdsb2JhbHMoTG9jYWxpemF0aW9uSW5mbyAmTEkpIHsKLSAgICAgICAg IEluc3RydWN0aW9uICZGaXJzdEkgPSAqRm4tPmdldEVudHJ5QmxvY2soKS5iZWdpbigpOwotICAg ICAgICAgVHlwZSAqRWxlbVR5ID0gR1YtPmdldFR5cGUoKS0+Z2V0RWxlbWVudFR5cGUoKTsKLSAg ICAgICAgIEFsbG9jYUluc3QgKkFsbG9jYSA9IG5ldyBBbGxvY2FJbnN0KEVsZW1UeSwgMCwgR1Yt PmdldE5hbWUoKSArICIubG9jYWwiLCAmRmlyc3RJKTsKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04g PD0gSVNQQ19MTFZNXzlfMAotLSAgICAgICAgQWxsb2NhLT5zZXRBbGlnbm1lbnQoR1YtPmdldEFs aWdubWVudCgpKTsKLS0jZWxzZSAvLyBMTFZNIDEwLjArCi0gICAgICAgICBBbGxvY2EtPnNldEFs aWdubWVudChsbHZtOjpNYXliZUFsaWduKEdWLT5nZXRBbGlnbm1lbnQoKSkpOwotLSNlbmRpZgot ICAgICAgICAgaWYgKCFpc2E8VW5kZWZWYWx1ZT4oR1YtPmdldEluaXRpYWxpemVyKCkpKQotICAg ICAgICAgICAgIG5ldyBTdG9yZUluc3QoR1YtPmdldEluaXRpYWxpemVyKCksIEFsbG9jYSwgJkZp cnN0SSk7Ci0gCi1kaWZmIC0tZ2l0IGEvc3JjL2lzcGMuY3BwIGIvc3JjL2lzcGMuY3BwCi1pbmRl eCBlMmQwZjIwNmUuLmZhYzUyMzNmNyAxMDA2NDQKLS0tLSBhL3NyYy9pc3BjLmNwcAotKysrIGIv c3JjL2lzcGMuY3BwCi1AQCAtMjcyLDkgKzI3Miw3IEBAIHR5cGVkZWYgZW51bSB7Ci0gICAgIENQ VV9TaWx2ZXJtb250LAotIAotICAgICBDUFVfSUNYLAotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+ PSBJU1BDX0xMVk1fMTBfMAotICAgICBDUFVfVEdMLAotLSNlbmRpZgotICNpZiBJU1BDX0xMVk1f VkVSU0lPTiA+PSBJU1BDX0xMVk1fMTJfMAotICAgICBDUFVfQURMLAotICAgICBDUFVfU1BSLAot QEAgLTM2NSwxMCArMzYzLDggQEAgY2xhc3MgQWxsQ1BVcyB7Ci0gCi0gICAgICAgICBuYW1lc1tD UFVfSUNYXS5wdXNoX2JhY2soImljZWxha2Utc2VydmVyIik7Ci0gICAgICAgICBuYW1lc1tDUFVf SUNYXS5wdXNoX2JhY2soImljeCIpOwotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xM Vk1fMTBfMAotICAgICAgICAgbmFtZXNbQ1BVX1RHTF0ucHVzaF9iYWNrKCJ0aWdlcmxha2UiKTsK LSAgICAgICAgIG5hbWVzW0NQVV9UR0xdLnB1c2hfYmFjaygidGdsIik7Ci0tI2VuZGlmCi0gI2lm IElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMl8wCi0gICAgICAgICBuYW1lc1tDUFVf QURMXS5wdXNoX2JhY2soImFsZGVybGFrZSIpOwotICAgICAgICAgbmFtZXNbQ1BVX0FETF0ucHVz aF9iYWNrKCJhZGwiKTsKLUBAIC00MTEsMTEgKzQwNyw5IEBAIGNsYXNzIEFsbENQVXMgewotICAg ICAgICAgY29tcGF0W0NQVV9BRExdID0gU2V0KENQVV9BREwsIENQVV94ODZfNjQsIENQVV9Cb25u ZWxsLCBDUFVfUGVucnluLCBDUFVfQ29yZTIsIENQVV9OZWhhbGVtLCBDUFVfU2lsdmVybW9udCwK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDUFVfU2FuZHlCcmlkZ2UsIENQVV9JdnlC cmlkZ2UsIENQVV9IYXN3ZWxsLCBDUFVfQnJvYWR3ZWxsLCBDUFVfTm9uZSk7Ci0gI2VuZGlmCi0t I2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMF8wCi0gICAgICAgICBjb21wYXRb Q1BVX1RHTF0gPQotICAgICAgICAgICAgIFNldChDUFVfVEdMLCBDUFVfeDg2XzY0LCBDUFVfQm9u bmVsbCwgQ1BVX1BlbnJ5biwgQ1BVX0NvcmUyLCBDUFVfTmVoYWxlbSwgQ1BVX1NpbHZlcm1vbnQs IENQVV9TYW5keUJyaWRnZSwKLSAgICAgICAgICAgICAgICAgQ1BVX0l2eUJyaWRnZSwgQ1BVX0hh c3dlbGwsIENQVV9Ccm9hZHdlbGwsIENQVV9TS1gsIENQVV9JQ0wsIENQVV9JQ1gsIENQVV9Ob25l KTsKLS0jZW5kaWYKLSAgICAgICAgIGNvbXBhdFtDUFVfSUNYXSA9IFNldChDUFVfSUNYLCBDUFVf eDg2XzY0LCBDUFVfQm9ubmVsbCwgQ1BVX1BlbnJ5biwgQ1BVX0NvcmUyLCBDUFVfTmVoYWxlbSwg Q1BVX1NpbHZlcm1vbnQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ1BVX1NhbmR5 QnJpZGdlLCBDUFVfSXZ5QnJpZGdlLCBDUFVfSGFzd2VsbCwgQ1BVX0Jyb2Fkd2VsbCwgQ1BVX1NL WCwgQ1BVX0lDTCwgQ1BVX05vbmUpOwotIAotQEAgLTU1Niw5ICs1NTAsNyBAQCBUYXJnZXQ6OlRh cmdldChBcmNoIGFyY2gsIGNvbnN0IGNoYXIgKmNwdSwgSVNQQ1RhcmdldCBpc3BjX3RhcmdldCwg Ym9vbCBwaWMsIGJvbwotICNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTJfMAot ICAgICAgICAgY2FzZSBDUFVfU1BSOgotICNlbmRpZgotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+ PSBJU1BDX0xMVk1fMTBfMAotICAgICAgICAgY2FzZSBDUFVfVEdMOgotLSNlbmRpZgotICAgICAg ICAgY2FzZSBDUFVfSUNYOgotICAgICAgICAgY2FzZSBDUFVfSUNMOgotICAgICAgICAgY2FzZSBD UFVfU0tYOgotQEAgLTkxNiw3ICs5MDgsNiBAQCBUYXJnZXQ6OlRhcmdldChBcmNoIGFyY2gsIGNv bnN0IGNoYXIgKmNwdSwgSVNQQ1RhcmdldCBpc3BjX3RhcmdldCwgYm9vbCBwaWMsIGJvbwotICAg ICAgICAgfQotICAgICAgICAgYnJlYWs7Ci0gICAgIGNhc2UgSVNQQ1RhcmdldDo6YXZ4NTEyc2t4 X2k4eDY0OgotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTBfMCAvLyBMTFZN IDEwLjArCi0gICAgICAgICAvLyBUaGlzIHRhcmdldCBpcyBlbmFibGVkIG9ubHkgZm9yIExMVk0g MTAuMCBhbmQgbGF0ZXIKLSAgICAgICAgIC8vIGJlY2F1c2UgTExWTSByZXF1aXJlcyBhIG51bWJl ciBvZiBmaXhlcywgd2hpY2ggYXJlCi0gICAgICAgICAvLyBjb21taXR0ZWQgdG8gTExWTSAxMS4w IGFuZCBjYW4gYmUgYXBwbGllZCB0byAxMC4wLCBidXQgbm90Ci1AQCAtOTM3LDEyICs5MjgsNyBA QCBUYXJnZXQ6OlRhcmdldChBcmNoIGFyY2gsIGNvbnN0IGNoYXIgKmNwdSwgSVNQQ1RhcmdldCBp c3BjX3RhcmdldCwgYm9vbCBwaWMsIGJvbwotICAgICAgICAgdGhpcy0+bV9oYXNWZWNQcmVmZXRj aCA9IGZhbHNlOwotICAgICAgICAgQ1BVZnJvbUlTQSA9IENQVV9TS1g7Ci0gICAgICAgICBicmVh azsKLS0jZWxzZQotLSAgICAgICAgdW5zdXBwb3J0ZWRfdGFyZ2V0ID0gdHJ1ZTsKLS0gICAgICAg IGJyZWFrOwotLSNlbmRpZgotICAgICBjYXNlIElTUENUYXJnZXQ6OmF2eDUxMnNreF9pMTZ4MzI6 Ci0tI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMF8wIC8vIExMVk0gMTAuMCsK LSAgICAgICAgIC8vIFRoaXMgdGFyZ2V0IGlzIGVuYWJsZWQgb25seSBmb3IgTExWTSAxMC4wIGFu ZCBsYXRlcgotICAgICAgICAgLy8gYmVjYXVzZSBMTFZNIHJlcXVpcmVzIGEgbnVtYmVyIG9mIGZp eGVzLCB3aGljaCBhcmUKLSAgICAgICAgIC8vIGNvbW1pdHRlZCB0byBMTFZNIDExLjAgYW5kIGNh biBiZSBhcHBsaWVkIHRvIDEwLjAsIGJ1dCBub3QKLUBAIC05NjMsMTAgKzk0OSw2IEBAIFRhcmdl dDo6VGFyZ2V0KEFyY2ggYXJjaCwgY29uc3QgY2hhciAqY3B1LCBJU1BDVGFyZ2V0IGlzcGNfdGFy Z2V0LCBib29sIHBpYywgYm9vCi0gICAgICAgICB0aGlzLT5tX2hhc1ZlY1ByZWZldGNoID0gZmFs c2U7Ci0gICAgICAgICBDUFVmcm9tSVNBID0gQ1BVX1NLWDsKLSAgICAgICAgIGJyZWFrOwotLSNl bHNlCi0tICAgICAgICB1bnN1cHBvcnRlZF90YXJnZXQgPSB0cnVlOwotLSAgICAgICAgYnJlYWs7 Ci0tI2VuZGlmCi0gI2lmZGVmIElTUENfQVJNX0VOQUJMRUQKLSAgICAgY2FzZSBJU1BDVGFyZ2V0 OjpuZW9uX2k4eDE2OgotICAgICAgICAgdGhpcy0+bV9pc2EgPSBUYXJnZXQ6Ok5FT047Ci1AQCAt MTY2MiwxMSArMTY0NCw5IEBAIEdsb2JhbHM6Okdsb2JhbHMoKSB7Ci0gICAgIGlzTXVsdGlUYXJn ZXRDb21waWxhdGlvbiA9IGZhbHNlOwotICAgICBlcnJvckxpbWl0ID0gLTE7Ci0gCi0tI2lmIElT UENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMF8wCi0gICAgIGVuYWJsZVRpbWVUcmFjZSA9 IGZhbHNlOwotICAgICAvLyBzZXQgZGVmYXVsdCBncmFudWxhcml0eSB0byA1MDAuCi0gICAgIHRp bWVUcmFjZUdyYW51bGFyaXR5ID0gNTAwOwotLSNlbmRpZgotICAgICB0YXJnZXQgPSBOVUxMOwot ICAgICBjdHggPSBuZXcgbGx2bTo6TExWTUNvbnRleHQ7Ci0gCi1kaWZmIC0tZ2l0IGEvc3JjL2lz cGMuaCBiL3NyYy9pc3BjLmgKLWluZGV4IGUyNWQ4ODMwZS4uZGUzNTdhMjFjIDEwMDY0NAotLS0t IGEvc3JjL2lzcGMuaAotKysrIGIvc3JjL2lzcGMuaAotQEAgLTY5NSwxMyArNjk1LDEyIEBAIHN0 cnVjdCBHbG9iYWxzIHsKLSAKLSAgICAgLyogTnVtYmVyIG9mIGVycm9ycyB0byBzaG93IGluIElT UEMuICovCi0gICAgIGludCBlcnJvckxpbWl0OwotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJ U1BDX0xMVk1fMTBfMAotKwotICAgICAvKiBXaGVuIHRydWUsIGVuYWJsZSBjb21waWxlIHRpbWUg dHJhY2luZy4gKi8KLSAgICAgYm9vbCBlbmFibGVUaW1lVHJhY2U7Ci0gCi0gICAgIC8qIFdoZW4g Y29tcGlsZSB0aW1lIHRyYWNpbmcgaXMgZW5hYmxlZCwgc2V0IHRpbWUgZ3JhbnVsYXJpdHkuICov Ci0gICAgIGludCB0aW1lVHJhY2VHcmFudWxhcml0eTsKLS0jZW5kaWYKLSB9OwotIAotIGVudW0g ewotZGlmZiAtLWdpdCBhL3NyYy9pc3BjX3ZlcnNpb24uaCBiL3NyYy9pc3BjX3ZlcnNpb24uaAot aW5kZXggZDc4MTM0N2ZkLi40MzRiMmQ2NzggMTAwNjQ0Ci0tLS0gYS9zcmMvaXNwY192ZXJzaW9u LmgKLSsrKyBiL3NyYy9pc3BjX3ZlcnNpb24uaAotQEAgLTQ0LDEzICs0NCwxMSBAQAotIAotICNk ZWZpbmUgSVNQQ19MTFZNX1ZFUlNJT04gKExMVk1fVkVSU0lPTl9NQUpPUiAqIDEwMDAwICsgTExW TV9WRVJTSU9OX01JTk9SICogMTAwKQotIAotLSNkZWZpbmUgSVNQQ19MTFZNXzhfMCA4MDAwMAot LSNkZWZpbmUgSVNQQ19MTFZNXzlfMCA5MDAwMAotICNkZWZpbmUgSVNQQ19MTFZNXzEwXzAgMTAw MDAwCi0gI2RlZmluZSBJU1BDX0xMVk1fMTFfMCAxMTAwMDAKLSAjZGVmaW5lIElTUENfTExWTV8x Ml8wIDEyMDAwMAotIAotLSNkZWZpbmUgT0xERVNUX1NVUFBPUlRFRF9MTFZNIElTUENfTExWTV84 XzAKLSsjZGVmaW5lIE9MREVTVF9TVVBQT1JURURfTExWTSBJU1BDX0xMVk1fMTBfMAotICNkZWZp bmUgTEFURVNUX1NVUFBPUlRFRF9MTFZNIElTUENfTExWTV8xMl8wCi0gCi0gI2lmZGVmIF9faXNw Y19feHN0cgotZGlmZiAtLWdpdCBhL3NyYy9tYWluLmNwcCBiL3NyYy9tYWluLmNwcAotaW5kZXgg OGY2NDMzMGNjLi41YzkyMGVhYmMgMTAwNjQ0Ci0tLS0gYS9zcmMvbWFpbi5jcHAKLSsrKyBiL3Ny Yy9tYWluLmNwcAotQEAgLTU1LDkgKzU1LDcgQEAKLSAjaW5jbHVkZSA8bGx2bS9TdXBwb3J0L1Np Z25hbHMuaD4KLSAjaW5jbHVkZSA8bGx2bS9TdXBwb3J0L1RhcmdldFJlZ2lzdHJ5Lmg+Ci0gI2lu Y2x1ZGUgPGxsdm0vU3VwcG9ydC9UYXJnZXRTZWxlY3QuaD4KLS0jaWYgSVNQQ19MTFZNX1ZFUlNJ T04gPj0gSVNQQ19MTFZNXzEwXzAKLSAjaW5jbHVkZSA8bGx2bS9TdXBwb3J0L1Rvb2xPdXRwdXRG aWxlLmg+Ci0tI2VuZGlmCi0gCi0gI2lmZGVmIElTUENfSE9TVF9JU19XSU5ET1dTCi0gI2RlZmlu ZSBzdHJjYXNlY21wIHN0cmljbXAKLUBAIC0xODEsMTEgKzE3OSw5IEBAIHN0YXRpYyB2b2lkIGxQ cmludFZlcnNpb24oKSB7Ci0gICAgIHNucHJpbnRmKHRhcmdldEhlbHAsIHNpemVvZih0YXJnZXRI ZWxwKSwgIlstLXRhcmdldC1vcz08b3M+XVx0XHRcdFNlbGVjdCB0YXJnZXQgT1MuICA8b3M+PXsl c30iLAotICAgICAgICAgICAgICBnLT50YXJnZXRfcmVnaXN0cnktPmdldFN1cHBvcnRlZE9TZXMo KS5jX3N0cigpKTsKLSAgICAgUHJpbnRXaXRoV29yZEJyZWFrcyh0YXJnZXRIZWxwLCAyNCwgVGVy bWluYWxXaWR0aCgpLCBzdGRvdXQpOwotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xM Vk1fMTBfMAotICAgICBwcmludGYoIiAgICBbLS10aW1lLXRyYWNlXVx0XHRcdFR1cm4gb24gdGlt ZSBwcm9maWxlci4gR2VuZXJhdGVzIEpTT04gZmlsZSBiYXNlZCBvbiBvdXRwdXQgZmlsZW5hbWUu XG4iKTsKLSAgICAgcHJpbnRmKCIgICAgWy0tdGltZS10cmFjZS1ncmFudWxhcml0eT08dmFsdWU+ XHRNaW5pbXVtIHRpbWUgZ3JhbnVsYXJpdHkgKGluIG1pY3Jvc2Vjb25kcykgdHJhY2VkIGJ5IHRp bWUgIgotICAgICAgICAgICAgInByb2ZpbGVyLlxuIik7Ci0tI2VuZGlmCi0gICAgIHByaW50Zigi ICAgIFstLXZlcnNpb25dXHRcdFx0XHRQcmludCBpc3BjIHZlcnNpb25cbiIpOwotICNpZmRlZiBJ U1BDX0dFTlhfRU5BQkxFRAotICAgICBwcmludGYoIiAgICBbLS12Yy1vcHRpb25zPTxcIi1vcHRp b24xIC1vcHRpb24yLi4uXCI+XVx0XHRcdFx0UGFzcyBhZGRpdGlvbmFsIG9wdGlvbnMgdG8gVmVj dG9yIENvbXBpbGVyIGJhY2tlbmRcbiIpOwotQEAgLTQ2Miw3ICs0NTgsNiBAQCBzdGF0aWMgdm9p ZCBzZXRDYWxsaW5nQ29udihWZWN0b3JDYWxsU3RhdHVzIHZlY3RvckNhbGwsIEFyY2ggYXJjaCkg ewotICAgICB9Ci0gfQotIAotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTBf MAotIHN0YXRpYyB2b2lkIHdyaXRlQ29tcGlsZVRpbWVGaWxlKGNvbnN0IGNoYXIgKm91dEZpbGVO YW1lKSB7Ci0gICAgIGxsdm06OlNtYWxsU3RyaW5nPDEyOD4ganNvbkZpbGVOYW1lKG91dEZpbGVO YW1lKTsKLSAgICAganNvbkZpbGVOYW1lLmFwcGVuZCgiLmpzb24iKTsKLUBAIC00NzksNyArNDc0 LDYgQEAgc3RhdGljIHZvaWQgd3JpdGVDb21waWxlVGltZUZpbGUoY29uc3QgY2hhciAqb3V0Rmls ZU5hbWUpIHsKLSAgICAgb2YtPmtlZXAoKTsKLSAgICAgcmV0dXJuOwotIH0KLS0jZW5kaWYKLSAK LSBzdGF0aWMgc3RkOjpzZXQ8aW50PiBQYXJzaW5nUGhhc2VzKGNoYXIgKnN0YWdlcywgQXJnRXJy b3JzICZlcnJvckhhbmRsZXIpIHsKLSAgICAgY29uc3RleHByIGludCBwYXJzaW5nX2xpbWl0ID0g MTAwOwotQEAgLTc5MSwxMiArNzg1LDEwIEBAIGludCBtYWluKGludCBBcmdjLCBjaGFyICpBcmd2 W10pIHsKLSAgICAgICAgICAgICB9Ci0gICAgICAgICB9IGVsc2UgaWYgKCFzdHJuY21wKGFyZ3Zb aV0sICItLWZvcmNlLWFsaWdubWVudD0iLCAxOCkpIHsKLSAgICAgICAgICAgICBnLT5mb3JjZUFs aWdubWVudCA9IGF0b2koYXJndltpXSArIDE4KTsKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0g SVNQQ19MTFZNXzEwXzAKLSAgICAgICAgIH0gZWxzZSBpZiAoIXN0cmNtcChhcmd2W2ldLCAiLS10 aW1lLXRyYWNlIikpIHsKLSAgICAgICAgICAgICBnLT5lbmFibGVUaW1lVHJhY2UgPSB0cnVlOwot ICAgICAgICAgfSBlbHNlIGlmICghc3RybmNtcChhcmd2W2ldLCAiLS10aW1lLXRyYWNlLWdyYW51 bGFyaXR5PSIsIDI1KSkgewotICAgICAgICAgICAgIGctPnRpbWVUcmFjZUdyYW51bGFyaXR5ID0g YXRvaShhcmd2W2ldICsgMjUpOwotLSNlbmRpZgotICAgICAgICAgfSBlbHNlIGlmICghc3RyY21w KGFyZ3ZbaV0sICItLXdvZmYiKSB8fCAhc3RyY21wKGFyZ3ZbaV0sICItd29mZiIpKSB7Ci0gICAg ICAgICAgICAgZy0+ZGlzYWJsZVdhcm5pbmdzID0gdHJ1ZTsKLSAgICAgICAgICAgICBnLT5lbWl0 UGVyZldhcm5pbmdzID0gZmFsc2U7Ci1AQCAtMTA1OSw3ICsxMDUxLDYgQEAgaW50IG1haW4oaW50 IEFyZ2MsIGNoYXIgKkFyZ3ZbXSkgewotIAotICAgICAvLyBUaGlzIG5lZWRzIHRvIGhhcHBlbiBh ZnRlciB0aGUgVGFyZ2V0T1MgaXMgZGVjaWRlZC4KLSAgICAgc2V0Q2FsbGluZ0NvbnYodmVjdG9y Q2FsbCwgYXJjaCk7Ci0tI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMF8wCi0g ICAgIGlmIChnLT5lbmFibGVUaW1lVHJhY2UpIHsKLSAgICAgICAgIGxsdm06OnRpbWVUcmFjZVBy b2ZpbGVySW5pdGlhbGl6ZShnLT50aW1lVHJhY2VHcmFudWxhcml0eSwgImlzcGMiKTsKLSAgICAg fQotQEAgLTEwNzcsOSArMTA2OCw1IEBAIGludCBtYWluKGludCBBcmdjLCBjaGFyICpBcmd2W10p IHsKLSAgICAgICAgIH0KLSAgICAgICAgIGxsdm06OnRpbWVUcmFjZVByb2ZpbGVyQ2xlYW51cCgp OwotICAgICB9Ci0tI2Vsc2UKLS0gICAgaW50IHJldCA9IE1vZHVsZTo6Q29tcGlsZUFuZE91dHB1 dChmaWxlLCBhcmNoLCBjcHUsIHRhcmdldHMsIGZsYWdzLCBvdCwgb3V0RmlsZU5hbWUsIGhlYWRl ckZpbGVOYW1lLCBkZXBzRmlsZU5hbWUsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZGVwc1RhcmdldE5hbWUsIGhvc3RTdHViRmlsZU5hbWUsIGRldlN0dWJGaWxlTmFt ZSk7Ci0tI2VuZGlmCi0gICAgIHJldHVybiByZXQ7Ci0gfQotZGlmZiAtLWdpdCBhL3NyYy9tb2R1 bGUuY3BwIGIvc3JjL21vZHVsZS5jcHAKLWluZGV4IGZlNzQ1MmRmMS4uYTg1ZmVjNzdhIDEwMDY0 NAotLS0tIGEvc3JjL21vZHVsZS5jcHAKLSsrKyBiL3NyYy9tb2R1bGUuY3BwCi1AQCAtMTcwLDkg KzE3MCw3IEBAIE1vZHVsZTo6TW9kdWxlKGNvbnN0IGNoYXIgKmZuKSB7Ci0gICAgIG1vZHVsZS0+ c2V0RGF0YUxheW91dChnLT50YXJnZXQtPmdldERhdGFMYXlvdXQoKS0+Z2V0U3RyaW5nUmVwcmVz ZW50YXRpb24oKSk7Ci0gCi0gICAgIGlmIChnLT5nZW5lcmF0ZURlYnVnZ2luZ1N5bWJvbHMpIHsK LS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzEwXzAKLSAgICAgICAgIGxsdm06 OlRpbWVUcmFjZVNjb3BlIFRpbWVTY29wZSgiQ3JlYXRlIERlYnVnIERhdGEiKTsKLS0jZW5kaWYK LSAgICAgICAgIC8vIFRvIGVuYWJsZSBkZWJ1ZyBpbmZvcm1hdGlvbiBvbiBXaW5kb3dzLCB3ZSBo YXZlIHRvIGxldCBsbHZtIGtub3csIHRoYXQKLSAgICAgICAgIC8vIGRlYnVnIGluZm9ybWF0aW9u IHNob3VsZCBiZSBlbWl0dGVkIGluIENvZGVWaWV3IGZvcm1hdC4KLSAgICAgICAgIGlmIChnLT50 YXJnZXRfb3MgPT0gVGFyZ2V0T1M6OndpbmRvd3MpIHsKLUBAIC0yMjYsMTAgKzIyNCw4IEBAIGV4 dGVybiBZWV9CVUZGRVJfU1RBVEUgeXlfY3JlYXRlX2J1ZmZlcihGSUxFICosIGludCk7Ci0gZXh0 ZXJuIHZvaWQgeXlfZGVsZXRlX2J1ZmZlcihZWV9CVUZGRVJfU1RBVEUpOwotIAotIGludCBNb2R1 bGU6OkNvbXBpbGVGaWxlKCkgewotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1f MTBfMAotICAgICBsbHZtOjpUaW1lVHJhY2VTY29wZSBDb21waWxlRmlsZVRpbWVTY29wZSgKLSAg ICAgICAgICJDb21waWxlRmlsZSIsIGxsdm06OlN0cmluZ1JlZihmaWxlbmFtZSArICgiXyIgKyBz dGQ6OnN0cmluZyhnLT50YXJnZXQtPkdldElTQVN0cmluZygpKSkpKTsKLS0jZW5kaWYKLSAgICAg ZXh0ZXJuIHZvaWQgUGFyc2VySW5pdCgpOwotICAgICBQYXJzZXJJbml0KCk7Ci0gCi1AQCAtMjM4 LDE4ICsyMzQsMTQgQEAgaW50IE1vZHVsZTo6Q29tcGlsZUZpbGUoKSB7Ci0gICAgIC8vIHZhcmlh YmxlICdtJyB0byBiZSBpbml0aWFsaXplZCBhbmQgYXZhaWxhYmxlICh3aGljaCBpdCBpc24ndCB1 bnRpbAotICAgICAvLyB0aGUgTW9kdWxlIGNvbnN0cnVjdG9yIHJldHVybnMuLi4pCi0gICAgIHsK LS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzEwXzAKLSAgICAgICAgIGxsdm06 OlRpbWVUcmFjZVNjb3BlIFRpbWVTY29wZSgiRGVmaW5lU3RkbGliIik7Ci0tI2VuZGlmCi0gICAg ICAgICBEZWZpbmVTdGRsaWIoc3ltYm9sVGFibGUsIGctPmN0eCwgbW9kdWxlLCBnLT5pbmNsdWRl U3RkbGliKTsKLSAgICAgfQotIAotICAgICBib29sIHJ1blByZXByb2Nlc3NvciA9IGctPnJ1bkNQ UDsKLSAKLSAgICAgaWYgKHJ1blByZXByb2Nlc3NvcikgewotLSNpZiBJU1BDX0xMVk1fVkVSU0lP TiA+PSBJU1BDX0xMVk1fMTBfMAotICAgICAgICAgbGx2bTo6VGltZVRyYWNlU2NvcGUgVGltZVNj b3BlKCJGcm9udGVuZCBwYXJzZXIiKTsKLS0jZW5kaWYKLSAgICAgICAgIGlmICghSXNTdGRpbihm aWxlbmFtZSkpIHsKLSAgICAgICAgICAgICAvLyBUcnkgdG8gb3BlbiB0aGUgZmlsZSBmaXJzdCwg c2luY2Ugb3RoZXJ3aXNlIHdlIGNyYXNoIGluIHRoZQotICAgICAgICAgICAgIC8vIHByZXByb2Nl c3NvciBpZiB0aGUgZmlsZSBkb2Vzbid0IGV4aXN0LgotQEAgLTI2OCw5ICsyNjAsNyBAQCBpbnQg TW9kdWxlOjpDb21waWxlRmlsZSgpIHsKLSAgICAgICAgIHl5cGFyc2UoKTsKLSAgICAgICAgIHl5 X2RlbGV0ZV9idWZmZXIoc3RyYnVmKTsKLSAgICAgfSBlbHNlIHsKLS0jaWYgSVNQQ19MTFZNX1ZF UlNJT04gPj0gSVNQQ19MTFZNXzEwXzAKLSAgICAgICAgIGxsdm06OlRpbWVUcmFjZVNjb3BlIFRp bWVTY29wZSgiRnJvbnRlbmQgcGFyc2VyIik7Ci0tI2VuZGlmCi0gICAgICAgICAvLyBObyBwcmVw cm9jZXNzb3IsIGp1c3Qgb3BlbiB1cCB0aGUgZmlsZSBpZiBpdCdzIG5vdCBzdGRpbi4uCi0gICAg ICAgICBGSUxFICpmID0gTlVMTDsKLSAgICAgICAgIGlmIChJc1N0ZGluKGZpbGVuYW1lKSkgewot QEAgLTI5Nyw5ICsyODcsNyBAQCBpbnQgTW9kdWxlOjpDb21waWxlRmlsZSgpIHsKLSAKLSAgICAg aWYgKGRpQnVpbGRlcikKLSAgICAgICAgIGRpQnVpbGRlci0+ZmluYWxpemUoKTsKLS0jaWYgSVNQ Q19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzEwXzAKLSAgICAgbGx2bTo6VGltZVRyYWNlU2Nv cGUgVGltZVNjb3BlKCJPcHRpbWl6ZSIpOwotLSNlbmRpZgotICAgICBpZiAoZXJyb3JDb3VudCA9 PSAwKQotICAgICAgICAgT3B0aW1pemUobW9kdWxlLCBnLT5vcHQubGV2ZWwpOwotIAotQEAgLTEy NDMsMTUgKzEyMzEsOCBAQCBib29sIE1vZHVsZTo6d3JpdGVPYmplY3RGaWxlT3JBc3NlbWJseShs bHZtOjpUYXJnZXRNYWNoaW5lICp0YXJnZXRNYWNoaW5lLCBsbHZtOgotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKm91dEZpbGVOYW1lKSB7Ci0gICAg IC8vIEZpZ3VyZSBvdXQgaWYgd2UncmUgZ2VuZXJhdGluZyBvYmplY3QgZmlsZSBvciBhc3NlbWJs eSBvdXRwdXQsIGFuZAotICAgICAvLyBzZXQgYmluYXJ5IG91dHB1dCBmb3Igb2JqZWN0IGZpbGVz Ci0tI2lmIElTUENfTExWTV9WRVJTSU9OIDw9IElTUENfTExWTV85XzAKLS0gICAgQXNzZXJ0KCFn LT50YXJnZXQtPmlzR2VuWFRhcmdldCgpKTsKLS0gICAgbGx2bTo6VGFyZ2V0TWFjaGluZTo6Q29k ZUdlbkZpbGVUeXBlIGZpbGVUeXBlID0KLS0gICAgICAgIChvdXRwdXRUeXBlID09IE9iamVjdCkg PyBsbHZtOjpUYXJnZXRNYWNoaW5lOjpDR0ZUX09iamVjdEZpbGUgOiBsbHZtOjpUYXJnZXRNYWNo aW5lOjpDR0ZUX0Fzc2VtYmx5RmlsZTsKLS0gICAgYm9vbCBiaW5hcnkgPSAoZmlsZVR5cGUgPT0g bGx2bTo6VGFyZ2V0TWFjaGluZTo6Q0dGVF9PYmplY3RGaWxlKTsKLS0jZWxzZSAvLyBMTFZNIDEw LjArCi0gICAgIGxsdm06OkNvZGVHZW5GaWxlVHlwZSBmaWxlVHlwZSA9IChvdXRwdXRUeXBlID09 IE9iamVjdCkgPyBsbHZtOjpDR0ZUX09iamVjdEZpbGUgOiBsbHZtOjpDR0ZUX0Fzc2VtYmx5Rmls ZTsKLSAgICAgYm9vbCBiaW5hcnkgPSAoZmlsZVR5cGUgPT0gbGx2bTo6Q0dGVF9PYmplY3RGaWxl KTsKLS0jZW5kaWYKLSAKLSAgICAgbGx2bTo6c3lzOjpmczo6T3BlbkZsYWdzIGZsYWdzID0gYmlu YXJ5ID8gbGx2bTo6c3lzOjpmczo6Rl9Ob25lIDogbGx2bTo6c3lzOjpmczo6Rl9UZXh0OwotIAot QEAgLTIyMTksMTEgKzIyMDAsNyBAQCB2b2lkIE1vZHVsZTo6ZXhlY1ByZXByb2Nlc3Nvcihjb25z dCBjaGFyICppbmZpbGVuYW1lLCBsbHZtOjpyYXdfc3RyaW5nX29zdHJlYW0gKgotICAgICBpbnN0 LnNldFRhcmdldCh0YXJnZXQpOwotICAgICBpbnN0LmNyZWF0ZVNvdXJjZU1hbmFnZXIoaW5zdC5n ZXRGaWxlTWFuYWdlcigpKTsKLSAKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPD0gSVNQQ19MTFZN XzlfMAotLSAgICBjbGFuZzo6RnJvbnRlbmRJbnB1dEZpbGUgaW5wdXRGaWxlKGluZmlsZW5hbWUs IGNsYW5nOjpJbnB1dEtpbmQ6OlVua25vd24pOwotLSNlbHNlIC8vIExMVk0gMTAuMCsKLSAgICAg Y2xhbmc6OkZyb250ZW5kSW5wdXRGaWxlIGlucHV0RmlsZShpbmZpbGVuYW1lLCBjbGFuZzo6SW5w dXRLaW5kKCkpOwotLSNlbmRpZgotIAotICAgICBpbnN0LkluaXRpYWxpemVTb3VyY2VNYW5hZ2Vy KGlucHV0RmlsZSk7Ci0gCi1AQCAtMjcyMiw5ICsyNjk5LDcgQEAgaW50IE1vZHVsZTo6Q29tcGls ZUFuZE91dHB1dChjb25zdCBjaGFyICpzcmNGaWxlLCBBcmNoIGFyY2gsIGNvbnN0IGNoYXIgKmNw dSwgc3QKLSAKLSAgICAgICAgIG0gPSBuZXcgTW9kdWxlKHNyY0ZpbGUpOwotICAgICAgICAgaWYg KG0tPkNvbXBpbGVGaWxlKCkgPT0gMCkgewotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BD X0xMVk1fMTBfMAotICAgICAgICAgICAgIGxsdm06OlRpbWVUcmFjZVNjb3BlIFRpbWVTY29wZSgi QmFja2VuZCIpOwotLSNlbmRpZgotICNpZmRlZiBJU1BDX0dFTlhfRU5BQkxFRAotICAgICAgICAg ICAgIGlmIChvdXRwdXRUeXBlID09IEFzbSB8fCBvdXRwdXRUeXBlID09IE9iamVjdCkgewotICAg ICAgICAgICAgICAgICBpZiAoZy0+dGFyZ2V0LT5pc0dlblhUYXJnZXQoKSkgewotQEAgLTI4NTUs OSArMjgzMCw3IEBAIGludCBNb2R1bGU6OkNvbXBpbGVBbmRPdXRwdXQoY29uc3QgY2hhciAqc3Jj RmlsZSwgQXJjaCBhcmNoLCBjb25zdCBjaGFyICpjcHUsIHN0Ci0gCi0gICAgICAgICAgICAgbSA9 IG5ldyBNb2R1bGUoc3JjRmlsZSk7Ci0gICAgICAgICAgICAgaW50IGNvbXBpbGVGaWxlRXJyb3Ig PSBtLT5Db21waWxlRmlsZSgpOwotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1f MTBfMAotICAgICAgICAgICAgIGxsdm06OlRpbWVUcmFjZVNjb3BlIFRpbWVTY29wZSgiQmFja2Vu ZCIpOwotLSNlbmRpZgotICAgICAgICAgICAgIGlmIChjb21waWxlRmlsZUVycm9yID09IDApIHsK LSAgICAgICAgICAgICAgICAgLy8gQ3JlYXRlIHRoZSBkaXNwYXRjaCBtb2R1bGUsIHVubGVzcyBh bHJlYWR5IGNyZWF0ZWQ7Ci0gICAgICAgICAgICAgICAgIC8vIGluIHRoZSBsYXR0ZXIgY2FzZSwg anVzdCBkbyB0aGUgY2hlY2tpbmcKLWRpZmYgLS1naXQgYS9zcmMvbW9kdWxlLmggYi9zcmMvbW9k dWxlLmgKLWluZGV4IDYxZDNjZmVhMC4uNjAzMTI0ZDUwIDEwMDY0NAotLS0tIGEvc3JjL21vZHVs ZS5oCi0rKysgYi9zcmMvbW9kdWxlLmgKLUBAIC00Myw5ICs0Myw3IEBACi0gCi0gI2luY2x1ZGUg PGxsdm0vSVIvRGVidWdJbmZvLmg+Ci0gCi0tI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENf TExWTV8xMF8wCi0gI2luY2x1ZGUgPGxsdm0vU3VwcG9ydC9UaW1lUHJvZmlsZXIuaD4KLS0jZW5k aWYKLSAKLSAjaWZkZWYgSVNQQ19HRU5YX0VOQUJMRUQKLSAjaW5jbHVkZSAib2NsX2lnY19pbnRl cmZhY2UvaWdjX29jbF9kZXZpY2VfY3R4LmgiCi1kaWZmIC0tZ2l0IGEvc3JjL29wdC5jcHAgYi9z cmMvb3B0LmNwcAotaW5kZXggYTY1NWE4MzQ0Li41YjFhYzdiNjMgMTAwNjQ0Ci0tLS0gYS9zcmMv b3B0LmNwcAotKysrIGIvc3JjL29wdC5jcHAKLUBAIC02Niw2ICs2Niw3IEBACi0gI2luY2x1ZGUg PGxsdm0vSVIvSW5zdHJ1Y3Rpb25zLmg+Ci0gI2luY2x1ZGUgPGxsdm0vSVIvSW50cmluc2ljSW5z dC5oPgotICNpbmNsdWRlIDxsbHZtL0lSL0ludHJpbnNpY3MuaD4KLSsjaW5jbHVkZSA8bGx2bS9J Ui9JbnRyaW5zaWNzWDg2Lmg+Ci0gI2luY2x1ZGUgPGxsdm0vSVIvTGVnYWN5UGFzc01hbmFnZXIu aD4KLSAjaW5jbHVkZSA8bGx2bS9JUi9Nb2R1bGUuaD4KLSAjaW5jbHVkZSA8bGx2bS9JUi9QYXR0 ZXJuTWF0Y2guaD4KLUBAIC04NSw5ICs4Niw2IEBACi0gI2luY2x1ZGUgPGxsdm0vVHJhbnNmb3Jt cy9TY2FsYXIvSW5zdFNpbXBsaWZ5UGFzcy5oPgotICNpbmNsdWRlIDxsbHZtL1RyYW5zZm9ybXMv VXRpbHMuaD4KLSAjaW5jbHVkZSA8bGx2bS9UcmFuc2Zvcm1zL1V0aWxzL0Jhc2ljQmxvY2tVdGls cy5oPgotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTBfMAotLSNpbmNsdWRl IDxsbHZtL0lSL0ludHJpbnNpY3NYODYuaD4KLS0jZW5kaWYKLSAKLSAjaWZkZWYgSVNQQ19IT1NU X0lTX0xJTlVYCi0gI2luY2x1ZGUgPGFsbG9jYS5oPgotQEAgLTEwMDMsMTAgKzEwMDEsNyBAQCBi b29sIEludHJpbnNpY3NPcHQ6OnJ1bk9uQmFzaWNCbG9jayhsbHZtOjpCYXNpY0Jsb2NrICZiYikg ewotICAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgICBhbGlnbiA9IGNh bGxJbnN0LT5nZXRDYWxsZWRGdW5jdGlvbigpID09IGF2eE1hc2tlZExvYWQzMiA/IDQgOiA4Owot ICAgICAgICAgICAgICAgICBuYW1lID0gTExWTUdldE5hbWUoY2FsbEluc3QtPmdldEFyZ09wZXJh bmQoMCksICJfbG9hZCIpOwotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA8PSBJU1BDX0xMVk1fOV8w Ci0tICAgICAgICAgICAgICAgIGxsdm06Okluc3RydWN0aW9uICpsb2FkSW5zdCA9Ci0tICAgICAg ICAgICAgICAgICAgICBuZXcgbGx2bTo6TG9hZEluc3QoY2FzdFB0ciwgbmFtZSwgZmFsc2UgLyog bm90IHZvbGF0aWxlICovLCBhbGlnbiwgKGxsdm06Okluc3RydWN0aW9uICopTlVMTCk7Ci0tI2Vs aWYgSVNQQ19MTFZNX1ZFUlNJT04gPT0gSVNQQ19MTFZNXzEwXzAKLSsjaWYgSVNQQ19MTFZNX1ZF UlNJT04gPT0gSVNQQ19MTFZNXzEwXzAKLSAgICAgICAgICAgICAgICAgbGx2bTo6SW5zdHJ1Y3Rp b24gKmxvYWRJbnN0ID0gbmV3IGxsdm06OkxvYWRJbnN0KGNhc3RQdHIsIG5hbWUsIGZhbHNlIC8q IG5vdCB2b2xhdGlsZSAqLywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06Ok1heWJlQWxpZ24oYWxpZ24pLCAobGx2 bTo6SW5zdHJ1Y3Rpb24gKilOVUxMKTsKLSAjZWxzZQotQEAgLTEwNDMsMTMgKzEwMzgsOCBAQCBi b29sIEludHJpbnNpY3NPcHQ6OnJ1bk9uQmFzaWNCbG9jayhsbHZtOjpCYXNpY0Jsb2NrICZiYikg ewotICAgICAgICAgICAgICAgICAgICAgYWxpZ24gPSBnLT50YXJnZXQtPmdldE5hdGl2ZVZlY3Rv ckFsaWdubWVudCgpOwotICAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAg ICBhbGlnbiA9IGNhbGxJbnN0LT5nZXRDYWxsZWRGdW5jdGlvbigpID09IGF2eE1hc2tlZFN0b3Jl MzIgPyA0IDogODsKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPD0gSVNQQ19MTFZNXzlfMAotLSAg ICAgICAgICAgICAgICBsbHZtOjpTdG9yZUluc3QgKnN0b3JlSW5zdCA9IG5ldyBsbHZtOjpTdG9y ZUluc3QocnZhbHVlLCBjYXN0UHRyLCAobGx2bTo6SW5zdHJ1Y3Rpb24gKilOVUxMKTsKLS0gICAg ICAgICAgICAgICAgc3RvcmVJbnN0LT5zZXRBbGlnbm1lbnQoYWxpZ24pOwotLSNlbHNlCi0gICAg ICAgICAgICAgICAgIGxsdm06OlN0b3JlSW5zdCAqc3RvcmVJbnN0ID0gbmV3IGxsdm06OlN0b3Jl SW5zdChydmFsdWUsIGNhc3RQdHIsIChsbHZtOjpJbnN0cnVjdGlvbiAqKU5VTEwsCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBsbHZtOjpNYXliZUFsaWduKGFsaWduKS52YWx1ZU9yT25lKCkpOwotLSNlbmRpZgotICAgICAg ICAgICAgICAgICBsQ29weU1ldGFkYXRhKHN0b3JlSW5zdCwgY2FsbEluc3QpOwotICAgICAgICAg ICAgICAgICBsbHZtOjpSZXBsYWNlSW5zdFdpdGhJbnN0KGNhbGxJbnN0LCBzdG9yZUluc3QpOwot IAotQEAgLTEwNjYsOSArMTA1Niw3IEBAIGJvb2wgSW50cmluc2ljc09wdDo6cnVuT25CYXNpY0Js b2NrKGxsdm06OkJhc2ljQmxvY2sgJmJiKSB7Ci0gCi0gYm9vbCBJbnRyaW5zaWNzT3B0OjpydW5P bkZ1bmN0aW9uKGxsdm06OkZ1bmN0aW9uICZGKSB7Ci0gCi0tI2lmIElTUENfTExWTV9WRVJTSU9O ID49IElTUENfTExWTV8xMF8wCi0gICAgIGxsdm06OlRpbWVUcmFjZVNjb3BlIEZ1bmNTY29wZSgi SW50cmluc2ljc09wdDo6cnVuT25GdW5jdGlvbiIsIEYuZ2V0TmFtZSgpKTsKLS0jZW5kaWYKLSAg ICAgYm9vbCBtb2RpZmllZEFueSA9IGZhbHNlOwotICAgICBmb3IgKGxsdm06OkJhc2ljQmxvY2sg JkJCIDogRikgewotICAgICAgICAgbW9kaWZpZWRBbnkgfD0gcnVuT25CYXNpY0Jsb2NrKEJCKTsK LUBAIC0xMjM5LDkgKzEyMjcsNyBAQCBib29sIEluc3RydWN0aW9uU2ltcGxpZnlQYXNzOjpydW5P bkJhc2ljQmxvY2sobGx2bTo6QmFzaWNCbG9jayAmYmIpIHsKLSAKLSBib29sIEluc3RydWN0aW9u U2ltcGxpZnlQYXNzOjpydW5PbkZ1bmN0aW9uKGxsdm06OkZ1bmN0aW9uICZGKSB7Ci0gCi0tI2lm IElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMF8wCi0gICAgIGxsdm06OlRpbWVUcmFj ZVNjb3BlIEZ1bmNTY29wZSgiSW5zdHJ1Y3Rpb25TaW1wbGlmeVBhc3M6OnJ1bk9uRnVuY3Rpb24i LCBGLmdldE5hbWUoKSk7Ci0tI2VuZGlmCi0gICAgIGJvb2wgbW9kaWZpZWRBbnkgPSBmYWxzZTsK LSAgICAgZm9yIChsbHZtOjpCYXNpY0Jsb2NrICZCQiA6IEYpIHsKLSAgICAgICAgIG1vZGlmaWVk QW55IHw9IHJ1bk9uQmFzaWNCbG9jayhCQik7Ci1AQCAtMjk3NCwxNiArMjk2MCwxMCBAQCBzdGF0 aWMgYm9vbCBsSW1wcm92ZU1hc2tlZFN0b3JlKGxsdm06OkNhbGxJbnN0ICpjYWxsSW5zdCkgewot IAotICAgICAgICAgICAgIGx2YWx1ZSA9IG5ldyBsbHZtOjpCaXRDYXN0SW5zdChsdmFsdWUsIHB0 clR5cGUsICJsdmFsdWVfdG9fcHRyX3R5cGUiLCBjYWxsSW5zdCk7Ci0gICAgICAgICAgICAgbENv cHlNZXRhZGF0YShsdmFsdWUsIGNhbGxJbnN0KTsKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPD0g SVNQQ19MTFZNXzlfMAotLSAgICAgICAgICAgIHN0b3JlID0KLS0gICAgICAgICAgICAgICAgbmV3 IGxsdm06OlN0b3JlSW5zdChydmFsdWUsIGx2YWx1ZSwgZmFsc2UgLyogbm90IHZvbGF0aWxlICov LAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGctPm9wdC5mb3JjZUFsaWdu ZWRNZW1vcnkgPyBnLT50YXJnZXQtPmdldE5hdGl2ZVZlY3RvckFsaWdubWVudCgpIDogaW5mby0+ YWxpZ24pOwotLSNlbHNlCi0gICAgICAgICAgICAgc3RvcmUgPSBuZXcgbGx2bTo6U3RvcmVJbnN0 KAotICAgICAgICAgICAgICAgICBydmFsdWUsIGx2YWx1ZSwgZmFsc2UgLyogbm90IHZvbGF0aWxl ICovLAotICAgICAgICAgICAgICAgICBsbHZtOjpNYXliZUFsaWduKGctPm9wdC5mb3JjZUFsaWdu ZWRNZW1vcnkgPyBnLT50YXJnZXQtPmdldE5hdGl2ZVZlY3RvckFsaWdubWVudCgpIDogaW5mby0+ YWxpZ24pCi0gICAgICAgICAgICAgICAgICAgICAudmFsdWVPck9uZSgpKTsKLS0jZW5kaWYKLSAg ICAgICAgIH0KLSAgICAgICAgIGlmIChzdG9yZSAhPSBOVUxMKSB7Ci0gICAgICAgICAgICAgbENv cHlNZXRhZGF0YShzdG9yZSwgY2FsbEluc3QpOwotQEAgLTMwNTksMTEgKzMwMzksNyBAQCBzdGF0 aWMgYm9vbCBsSW1wcm92ZU1hc2tlZExvYWQobGx2bTo6Q2FsbEluc3QgKmNhbGxJbnN0LCBsbHZt OjpCYXNpY0Jsb2NrOjppdGVyYQotICAgICAgICAgewotICAgICAgICAgICAgIGxsdm06OlR5cGUg KnB0clR5cGUgPSBsbHZtOjpQb2ludGVyVHlwZTo6Z2V0KGNhbGxJbnN0LT5nZXRUeXBlKCksIDAp OwotICAgICAgICAgICAgIHB0ciA9IG5ldyBsbHZtOjpCaXRDYXN0SW5zdChwdHIsIHB0clR5cGUs ICJwdHJfY2FzdF9mb3JfbG9hZCIsIGNhbGxJbnN0KTsKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04g PD0gSVNQQ19MTFZNXzlfMAotLSAgICAgICAgICAgIGxvYWQgPSBuZXcgbGx2bTo6TG9hZEluc3Qo cHRyLCBjYWxsSW5zdC0+Z2V0TmFtZSgpLCBmYWxzZSAvKiBub3Qgdm9sYXRpbGUgKi8sCi0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnLT5vcHQuZm9yY2VBbGlnbmVkTWVt b3J5ID8gZy0+dGFyZ2V0LT5nZXROYXRpdmVWZWN0b3JBbGlnbm1lbnQoKSA6IGluZm8tPmFsaWdu LAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxsdm06Okluc3RydWN0 aW9uICopTlVMTCk7Ci0tI2VsaWYgSVNQQ19MTFZNX1ZFUlNJT04gPT0gSVNQQ19MTFZNXzEwXzAK LSsjaWYgSVNQQ19MTFZNX1ZFUlNJT04gPT0gSVNQQ19MTFZNXzEwXzAKLSAgICAgICAgICAgICBs b2FkID0gbmV3IGxsdm06OkxvYWRJbnN0KAotICAgICAgICAgICAgICAgICBwdHIsIGNhbGxJbnN0 LT5nZXROYW1lKCksIGZhbHNlIC8qIG5vdCB2b2xhdGlsZSAqLywKLSAgICAgICAgICAgICAgICAg bGx2bTo6TWF5YmVBbGlnbihnLT5vcHQuZm9yY2VBbGlnbmVkTWVtb3J5ID8gZy0+dGFyZ2V0LT5n ZXROYXRpdmVWZWN0b3JBbGlnbm1lbnQoKSA6IGluZm8tPmFsaWduKQotQEAgLTMxMjksOSArMzEw NSw3IEBAIGJvb2wgSW1wcm92ZU1lbW9yeU9wc1Bhc3M6OnJ1bk9uQmFzaWNCbG9jayhsbHZtOjpC YXNpY0Jsb2NrICZiYikgewotIAotIGJvb2wgSW1wcm92ZU1lbW9yeU9wc1Bhc3M6OnJ1bk9uRnVu Y3Rpb24obGx2bTo6RnVuY3Rpb24gJkYpIHsKLSAKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0g SVNQQ19MTFZNXzEwXzAKLSAgICAgbGx2bTo6VGltZVRyYWNlU2NvcGUgRnVuY1Njb3BlKCJJbXBy b3ZlTWVtb3J5T3BzUGFzczo6cnVuT25GdW5jdGlvbiIsIEYuZ2V0TmFtZSgpKTsKLS0jZW5kaWYK LSAgICAgYm9vbCBtb2RpZmllZEFueSA9IGZhbHNlOwotICAgICBmb3IgKGxsdm06OkJhc2ljQmxv Y2sgJkJCIDogRikgewotICAgICAgICAgbW9kaWZpZWRBbnkgfD0gcnVuT25CYXNpY0Jsb2NrKEJC KTsKLUBAIC0zNDI0LDkgKzMzOTgsNyBAQCBsbHZtOjpWYWx1ZSAqbEdFUEFuZExvYWQobGx2bTo6 VmFsdWUgKmJhc2VQdHIsIGludDY0X3Qgb2Zmc2V0LCBpbnQgYWxpZ24sIGxsdm06OgotICAgICAg ICAgICAgICAgICAgICAgICAgICBsbHZtOjpUeXBlICp0eXBlKSB7Ci0gICAgIGxsdm06OlZhbHVl ICpwdHIgPSBsR0VQSW5zdChiYXNlUHRyLCBMTFZNSW50NjQob2Zmc2V0KSwgIm5ld19iYXNlIiwg aW5zZXJ0QmVmb3JlKTsKLSAgICAgcHRyID0gbmV3IGxsdm06OkJpdENhc3RJbnN0KHB0ciwgbGx2 bTo6UG9pbnRlclR5cGU6OmdldCh0eXBlLCAwKSwgInB0cl9jYXN0IiwgaW5zZXJ0QmVmb3JlKTsK LS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPD0gSVNQQ19MTFZNXzlfMAotLSAgICByZXR1cm4gbmV3 IGxsdm06OkxvYWRJbnN0KHB0ciwgImdhdGhlcl9sb2FkIiwgZmFsc2UgLyogbm90IHZvbGF0aWxl ICovLCBhbGlnbiwgaW5zZXJ0QmVmb3JlKTsKLS0jZWxpZiBJU1BDX0xMVk1fVkVSU0lPTiA9PSBJ U1BDX0xMVk1fMTBfMAotKyNpZiBJU1BDX0xMVk1fVkVSU0lPTiA9PSBJU1BDX0xMVk1fMTBfMAot ICAgICByZXR1cm4gbmV3IGxsdm06OkxvYWRJbnN0KHB0ciwgImdhdGhlcl9sb2FkIiwgZmFsc2Ug Lyogbm90IHZvbGF0aWxlICovLCBsbHZtOjpNYXliZUFsaWduKGFsaWduKSwgaW5zZXJ0QmVmb3Jl KTsKLSAjZWxzZSAvLyBMTFZNIDExLjArCi0gICAgIHJldHVybiBuZXcgbGx2bTo6TG9hZEluc3Qo bGx2bTo6ZHluX2Nhc3Q8bGx2bTo6UG9pbnRlclR5cGU+KHB0ci0+Z2V0VHlwZSgpKS0+Z2V0UG9p bnRlckVsZW1lbnRUeXBlKCksIHB0ciwKLUBAIC00MTM1LDkgKzQxMDcsNyBAQCBib29sIEdhdGhl ckNvYWxlc2NlUGFzczo6cnVuT25CYXNpY0Jsb2NrKGxsdm06OkJhc2ljQmxvY2sgJmJiKSB7Ci0g Ci0gYm9vbCBHYXRoZXJDb2FsZXNjZVBhc3M6OnJ1bk9uRnVuY3Rpb24obGx2bTo6RnVuY3Rpb24g JkYpIHsKLSAKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzEwXzAKLSAgICAg bGx2bTo6VGltZVRyYWNlU2NvcGUgRnVuY1Njb3BlKCJHYXRoZXJDb2FsZXNjZVBhc3M6OnJ1bk9u RnVuY3Rpb24iLCBGLmdldE5hbWUoKSk7Ci0tI2VuZGlmCi0gICAgIGJvb2wgbW9kaWZpZWRBbnkg PSBmYWxzZTsKLSAgICAgZm9yIChsbHZtOjpCYXNpY0Jsb2NrICZCQiA6IEYpIHsKLSAgICAgICAg IG1vZGlmaWVkQW55IHw9IHJ1bk9uQmFzaWNCbG9jayhCQik7Ci1AQCAtNDQ2Nyw5ICs0NDM3LDcg QEAgYm9vbCBSZXBsYWNlUHNldWRvTWVtb3J5T3BzUGFzczo6cnVuT25CYXNpY0Jsb2NrKGxsdm06 OkJhc2ljQmxvY2sgJmJiKSB7Ci0gCi0gYm9vbCBSZXBsYWNlUHNldWRvTWVtb3J5T3BzUGFzczo6 cnVuT25GdW5jdGlvbihsbHZtOjpGdW5jdGlvbiAmRikgewotIAotLSNpZiBJU1BDX0xMVk1fVkVS U0lPTiA+PSBJU1BDX0xMVk1fMTBfMAotICAgICBsbHZtOjpUaW1lVHJhY2VTY29wZSBGdW5jU2Nv cGUoIlJlcGxhY2VQc2V1ZG9NZW1vcnlPcHNQYXNzOjpydW5PbkZ1bmN0aW9uIiwgRi5nZXROYW1l KCkpOwotLSNlbmRpZgotICAgICBib29sIG1vZGlmaWVkQW55ID0gZmFsc2U7Ci0gICAgIGZvciAo bGx2bTo6QmFzaWNCbG9jayAmQkIgOiBGKSB7Ci0gICAgICAgICBtb2RpZmllZEFueSB8PSBydW5P bkJhc2ljQmxvY2soQkIpOwotQEAgLTQ1NzMsOSArNDU0MSw3IEBAIGJvb2wgSXNDb21waWxlVGlt ZUNvbnN0YW50UGFzczo6cnVuT25CYXNpY0Jsb2NrKGxsdm06OkJhc2ljQmxvY2sgJmJiKSB7Ci0g Ci0gYm9vbCBJc0NvbXBpbGVUaW1lQ29uc3RhbnRQYXNzOjpydW5PbkZ1bmN0aW9uKGxsdm06OkZ1 bmN0aW9uICZGKSB7Ci0gCi0tI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMF8w Ci0gICAgIGxsdm06OlRpbWVUcmFjZVNjb3BlIEZ1bmNTY29wZSgiSXNDb21waWxlVGltZUNvbnN0 YW50UGFzczo6cnVuT25GdW5jdGlvbiIsIEYuZ2V0TmFtZSgpKTsKLS0jZW5kaWYKLSAgICAgYm9v bCBtb2RpZmllZEFueSA9IGZhbHNlOwotICAgICBmb3IgKGxsdm06OkJhc2ljQmxvY2sgJkJCIDog RikgewotICAgICAgICAgbW9kaWZpZWRBbnkgfD0gcnVuT25CYXNpY0Jsb2NrKEJCKTsKLUBAIC01 MjAxLDkgKzUxNjcsNyBAQCBib29sIFBlZXBob2xlUGFzczo6cnVuT25CYXNpY0Jsb2NrKGxsdm06 OkJhc2ljQmxvY2sgJmJiKSB7Ci0gCi0gYm9vbCBQZWVwaG9sZVBhc3M6OnJ1bk9uRnVuY3Rpb24o bGx2bTo6RnVuY3Rpb24gJkYpIHsKLSAKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19M TFZNXzEwXzAKLSAgICAgbGx2bTo6VGltZVRyYWNlU2NvcGUgRnVuY1Njb3BlKCJQZWVwaG9sZVBh c3M6OnJ1bk9uRnVuY3Rpb24iLCBGLmdldE5hbWUoKSk7Ci0tI2VuZGlmCi0gICAgIGJvb2wgbW9k aWZpZWRBbnkgPSBmYWxzZTsKLSAgICAgZm9yIChsbHZtOjpCYXNpY0Jsb2NrICZCQiA6IEYpIHsK LSAgICAgICAgIG1vZGlmaWVkQW55IHw9IHJ1bk9uQmFzaWNCbG9jayhCQik7Ci1AQCAtNTI5OSw5 ICs1MjYzLDcgQEAgYm9vbCBSZXBsYWNlU3RkbGliU2hpZnRQYXNzOjpydW5PbkJhc2ljQmxvY2so bGx2bTo6QmFzaWNCbG9jayAmYmIpIHsKLSAKLSBib29sIFJlcGxhY2VTdGRsaWJTaGlmdFBhc3M6 OnJ1bk9uRnVuY3Rpb24obGx2bTo6RnVuY3Rpb24gJkYpIHsKLSAKLS0jaWYgSVNQQ19MTFZNX1ZF UlNJT04gPj0gSVNQQ19MTFZNXzEwXzAKLSAgICAgbGx2bTo6VGltZVRyYWNlU2NvcGUgRnVuY1Nj b3BlKCJSZXBsYWNlU3RkbGliU2hpZnRQYXNzOjpydW5PbkZ1bmN0aW9uIiwgRi5nZXROYW1lKCkp OwotLSNlbmRpZgotICAgICBib29sIG1vZGlmaWVkQW55ID0gZmFsc2U7Ci0gICAgIGZvciAobGx2 bTo6QmFzaWNCbG9jayAmQkIgOiBGKSB7Ci0gICAgICAgICBtb2RpZmllZEFueSB8PSBydW5PbkJh c2ljQmxvY2soQkIpOwotQEAgLTUzOTksOSArNTM2MSw3IEBAIGxsdm06Okluc3RydWN0aW9uICpG aXhCb29sZWFuU2VsZWN0UGFzczo6Zml4U2VsZWN0KGxsdm06OlNlbGVjdEluc3QgKnNlbCwgbGx2 bTo6Ci0gfQotIAotIGJvb2wgRml4Qm9vbGVhblNlbGVjdFBhc3M6OnJ1bk9uRnVuY3Rpb24obGx2 bTo6RnVuY3Rpb24gJkYpIHsKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzEw XzAKLSAgICAgbGx2bTo6VGltZVRyYWNlU2NvcGUgRnVuY1Njb3BlKCJGaXhCb29sZWFuU2VsZWN0 UGFzczo6cnVuT25GdW5jdGlvbiIsIEYuZ2V0TmFtZSgpKTsKLS0jZW5kaWYKLSAgICAgYm9vbCBt b2RpZmllZEFueSA9IGZhbHNlOwotIAotICAgICByZXR1cm4gbW9kaWZpZWRBbnk7Ci1AQCAtNTk2 NCw5ICs1OTI0LDcgQEAgYm9vbCBHZW5YR2F0aGVyQ29hbGVzY2luZzo6cnVuT25CYXNpY0Jsb2Nr KGxsdm06OkJhc2ljQmxvY2sgJmJiKSB7Ci0gfQotIAotIGJvb2wgR2VuWEdhdGhlckNvYWxlc2Np bmc6OnJ1bk9uRnVuY3Rpb24obGx2bTo6RnVuY3Rpb24gJkYpIHsKLS0jaWYgSVNQQ19MTFZNX1ZF UlNJT04gPj0gSVNQQ19MTFZNXzEwXzAKLSAgICAgbGx2bTo6VGltZVRyYWNlU2NvcGUgRnVuY1Nj b3BlKCJHZW5YR2F0aGVyQ29hbGVzY2luZzo6cnVuT25GdW5jdGlvbiIsIEYuZ2V0TmFtZSgpKTsK LS0jZW5kaWYKLSAgICAgYm9vbCBtb2RpZmllZEFueSA9IGZhbHNlOwotICAgICBmb3IgKGxsdm06 OkJhc2ljQmxvY2sgJkJCIDogRikgewotICAgICAgICAgbW9kaWZpZWRBbnkgfD0gcnVuT25CYXNp Y0Jsb2NrKEJCKTsKLUBAIC02MTEzLDkgKzYwNzEsNyBAQCBib29sIFByb21vdGVUb1ByaXZhdGVN ZW1vcnlQYXNzOjpydW5PbkJhc2ljQmxvY2sobGx2bTo6QmFzaWNCbG9jayAmYmIpIHsKLSAKLSBi b29sIFByb21vdGVUb1ByaXZhdGVNZW1vcnlQYXNzOjpydW5PbkZ1bmN0aW9uKGxsdm06OkZ1bmN0 aW9uICZGKSB7Ci0gCi0tI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMF8wCi0g ICAgIGxsdm06OlRpbWVUcmFjZVNjb3BlIEZ1bmNTY29wZSgiUHJvbW90ZVRvUHJpdmF0ZU1lbW9y eVBhc3M6OnJ1bk9uRnVuY3Rpb24iLCBGLmdldE5hbWUoKSk7Ci0tI2VuZGlmCi0gICAgIGJvb2wg bW9kaWZpZWRBbnkgPSBmYWxzZTsKLSAgICAgZm9yIChsbHZtOjpCYXNpY0Jsb2NrICZCQiA6IEYp IHsKLSAgICAgICAgIG1vZGlmaWVkQW55IHw9IHJ1bk9uQmFzaWNCbG9jayhCQik7Ci1AQCAtNjE4 MSw5ICs2MTM3LDcgQEAgYm9vbCBSZXBsYWNlTExWTUludHJpbnNpY3M6OnJ1bk9uQmFzaWNCbG9j ayhsbHZtOjpCYXNpY0Jsb2NrICZiYikgewotIAotIGJvb2wgUmVwbGFjZUxMVk1JbnRyaW5zaWNz OjpydW5PbkZ1bmN0aW9uKGxsdm06OkZ1bmN0aW9uICZGKSB7Ci0gCi0tI2lmIElTUENfTExWTV9W RVJTSU9OID49IElTUENfTExWTV8xMF8wCi0gICAgIGxsdm06OlRpbWVUcmFjZVNjb3BlIEZ1bmNT Y29wZSgiUmVwbGFjZUxMVk1JbnRyaW5zaWNzOjpydW5PbkZ1bmN0aW9uIiwgRi5nZXROYW1lKCkp OwotLSNlbmRpZgotICAgICBib29sIG1vZGlmaWVkQW55ID0gZmFsc2U7Ci0gICAgIGZvciAobGx2 bTo6QmFzaWNCbG9jayAmQkIgOiBGKSB7Ci0gICAgICAgICBtb2RpZmllZEFueSB8PSBydW5PbkJh c2ljQmxvY2soQkIpOwotQEAgLTYyNzgsOSArNjIzMiw3IEBAIGJvb2wgUmVwbGFjZVVuc3VwcG9y dGVkSW5zdHM6OnJ1bk9uQmFzaWNCbG9jayhsbHZtOjpCYXNpY0Jsb2NrICZiYikgewotIAotIGJv b2wgUmVwbGFjZVVuc3VwcG9ydGVkSW5zdHM6OnJ1bk9uRnVuY3Rpb24obGx2bTo6RnVuY3Rpb24g JkYpIHsKLSAKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzEwXzAKLSAgICAg bGx2bTo6VGltZVRyYWNlU2NvcGUgRnVuY1Njb3BlKCJSZXBsYWNlVW5zdXBwb3J0ZWRJbnN0czo6 cnVuT25GdW5jdGlvbiIsIEYuZ2V0TmFtZSgpKTsKLS0jZW5kaWYKLSAgICAgYm9vbCBtb2RpZmll ZEFueSA9IGZhbHNlOwotICAgICBmb3IgKGxsdm06OkJhc2ljQmxvY2sgJkJCIDogRikgewotICAg ICAgICAgbW9kaWZpZWRBbnkgfD0gcnVuT25CYXNpY0Jsb2NrKEJCKTsKLUBAIC02MzY5LDkgKzYz MjEsNyBAQCBib29sIENoZWNrVW5zdXBwb3J0ZWRJbnN0czo6cnVuT25CYXNpY0Jsb2NrKGxsdm06 OkJhc2ljQmxvY2sgJmJiKSB7Ci0gfQotIAotIGJvb2wgQ2hlY2tVbnN1cHBvcnRlZEluc3RzOjpy dW5PbkZ1bmN0aW9uKGxsdm06OkZ1bmN0aW9uICZGKSB7Ci0tI2lmIElTUENfTExWTV9WRVJTSU9O ID49IElTUENfTExWTV8xMF8wCi0gICAgIGxsdm06OlRpbWVUcmFjZVNjb3BlIEZ1bmNTY29wZSgi Q2hlY2tVbnN1cHBvcnRlZEluc3RzOjpydW5PbkZ1bmN0aW9uIiwgRi5nZXROYW1lKCkpOwotLSNl bmRpZgotICAgICBib29sIG1vZGlmaWVkQW55ID0gZmFsc2U7Ci0gICAgIGZvciAobGx2bTo6QmFz aWNCbG9jayAmQkIgOiBGKSB7Ci0gICAgICAgICBtb2RpZmllZEFueSB8PSBydW5PbkJhc2ljQmxv Y2soQkIpOwotQEAgLTY0NDAsOSArNjM5MCw3IEBAIGJvb2wgTWFuZ2xlT3BlbkNMQnVpbHRpbnM6 OnJ1bk9uQmFzaWNCbG9jayhsbHZtOjpCYXNpY0Jsb2NrICZiYikgewotIH0KLSAKLSBib29sIE1h bmdsZU9wZW5DTEJ1aWx0aW5zOjpydW5PbkZ1bmN0aW9uKGxsdm06OkZ1bmN0aW9uICZGKSB7Ci0t I2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMF8wCi0gICAgIGxsdm06OlRpbWVU cmFjZVNjb3BlIEZ1bmNTY29wZSgiTWFuZ2xlT3BlbkNMQnVpbHRpbnM6OnJ1bk9uRnVuY3Rpb24i LCBGLmdldE5hbWUoKSk7Ci0tI2VuZGlmCi0gICAgIGJvb2wgbW9kaWZpZWRBbnkgPSBmYWxzZTsK LSAgICAgZm9yIChsbHZtOjpCYXNpY0Jsb2NrICZCQiA6IEYpIHsKLSAgICAgICAgIG1vZGlmaWVk QW55IHw9IHJ1bk9uQmFzaWNCbG9jayhCQik7Ci1AQCAtNjgyOCw5ICs2Nzc2LDcgQEAgYm9vbCBG aXhBZGRyZXNzU3BhY2U6OnJ1bk9uRnVuY3Rpb24obGx2bTo6RnVuY3Rpb24gJkYpIHsKLSAgICAg Ly8gVHJhbnNmb3JtYXRpb25zIGFyZSBjb3JyZWN0IHdoZW4gdGhlIGZ1bmN0aW9uIGlzIG5vdCBp bnRlcm5hbC4KLSAgICAgLy8gVGhpcyBpcyBkdWUgdG8gYWRkcmVzcyBzcGFjZSBjYWxjdWxhdGlv biBhbGdvcml0aG0uCi0gICAgIC8vIFRPRE86IHByb2JsZW1zIGNhbiBiZSBtZXQgaW4gY2FzZSBv ZiBTdGFjayBDYWxscwotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTBfMAot ICAgICBsbHZtOjpUaW1lVHJhY2VTY29wZSBGdW5jU2NvcGUoIkZpeEFkZHJlc3NTcGFjZTo6cnVu T25GdW5jdGlvbiIsIEYuZ2V0TmFtZSgpKTsKLS0jZW5kaWYKLSAgICAgaWYgKEYuZ2V0TGlua2Fn ZSgpID09IGxsdm06Okdsb2JhbFZhbHVlOjpMaW5rYWdlVHlwZXM6OkludGVybmFsTGlua2FnZSkK LSAgICAgICAgIHJldHVybiBmYWxzZTsKLSAKLUBAIC02ODU0LDkgKzY4MDAsNyBAQCBjbGFzcyBE ZW1vdGVQSElzIDogcHVibGljIGxsdm06OkZ1bmN0aW9uUGFzcyB7Ci0gY2hhciBEZW1vdGVQSElz OjpJRCA9IDA7Ci0gCi0gYm9vbCBEZW1vdGVQSElzOjpydW5PbkZ1bmN0aW9uKGxsdm06OkZ1bmN0 aW9uICZGKSB7Ci0tI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMF8wCi0gICAg IGxsdm06OlRpbWVUcmFjZVNjb3BlIEZ1bmNTY29wZSgiRGVtb3RlUEhJczo6cnVuT25GdW5jdGlv biIsIEYuZ2V0TmFtZSgpKTsKLS0jZW5kaWYKLSAgICAgaWYgKEYuaXNEZWNsYXJhdGlvbigpIHx8 IHNraXBGdW5jdGlvbihGKSkKLSAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgc3RkOjp2ZWN0 b3I8bGx2bTo6SW5zdHJ1Y3Rpb24gKj4gV29ya0xpc3Q7Ci1kaWZmIC0tZ2l0IGEvc3JjL3R5cGUu Y3BwIGIvc3JjL3R5cGUuY3BwCi1pbmRleCA2ODhhNGU4NzQuLmZhMGNiMDRkYiAxMDA2NDQKLS0t LSBhL3NyYy90eXBlLmNwcAotKysrIGIvc3JjL3R5cGUuY3BwCi1AQCAtMTgyMiwxNCArMTgyMiwx MCBAQCBsbHZtOjpESVR5cGUgKlN0cnVjdFR5cGU6OkdldERJVHlwZShsbHZtOjpESVNjb3BlICpz Y29wZSkgY29uc3QgewotICAgICBsbHZtOjpESUZpbGUgKmRpRmlsZSA9IHBvcy5HZXRESUZpbGUo KTsKLSAgICAgbGx2bTo6RElOYW1lc3BhY2UgKmRpU3BhY2UgPSBwb3MuR2V0RElOYW1lc3BhY2Uo KTsKLSAgICAgcmV0dXJuIG0tPmRpQnVpbGRlci0+Y3JlYXRlU3RydWN0VHlwZShkaVNwYWNlLCBH ZXRTdHJpbmcoKSwgZGlGaWxlLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHBvcy5maXJzdF9saW5lLCAgICAgICAgICAvLyBMaW5lIG51bWJlcgotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxheW91dC0+Z2V0U2l6ZUluQml0cygp LCAvLyBTaXplIGluIGJpdHMKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPD0gSVNQQ19MTFZNXzlf MAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxheW91dC0+Z2V0 QWxpZ25tZW50KCkgKiA4LCAvLyBBbGlnbm1lbnQgaW4gYml0cwotLSNlbHNlICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBM TFZNIDEwLjArCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9z LmZpcnN0X2xpbmUsICAgICAgICAgICAgICAgICAgICAgLy8gTGluZSBudW1iZXIKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXlvdXQtPmdldFNpemVJbkJpdHMo KSwgICAgICAgICAgICAvLyBTaXplIGluIGJpdHMKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBsYXlvdXQtPmdldEFsaWdubWVudCgpLnZhbHVlKCkgKiA4LCAvLyBB bGlnbm1lbnQgaW4gYml0cwotLSNlbmRpZgotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGxsdm06OkRJTm9kZTo6RmxhZ1plcm8sIC8vIEZsYWdzCi0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6RElOb2RlOjpGbGFnWmVybywg ICAgICAgICAgICAgLy8gRmxhZ3MKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBOVUxMLCBlbGVtZW50cyk7Ci0gfQotIAotZGlmZiAtLWdpdCBhL3Rlc3RzL2xpdC10 ZXN0cy8xNzcxLmlzcGMgYi90ZXN0cy9saXQtdGVzdHMvMTc3MS5pc3BjCi1pbmRleCA5ODA2NGQ4 NGQuLjRmZWI3M2RkNyAxMDA2NDQKLS0tLSBhL3Rlc3RzL2xpdC10ZXN0cy8xNzcxLmlzcGMKLSsr KyBiL3Rlc3RzL2xpdC10ZXN0cy8xNzcxLmlzcGMKLUBAIC01LDcgKzUsNiBAQAotIC8vIFJVTjog JXtpc3BjfSAlcyAtLXRhcmdldD1zc2U0LWkxNng4IC0tZW1pdC1hc20gLW8gLSB8IEZpbGVDaGVj ayAlcyAtY2hlY2stcHJlZml4PUNIRUNLU1NFNF9JMTZYOAotIC8vIFJVTjogJXtpc3BjfSAlcyAt LXRhcmdldD1zc2U0LWk4eDE2IC0tZW1pdC1hc20gLW8gLSB8IEZpbGVDaGVjayAlcyAtY2hlY2st cHJlZml4PUNIRUNLU1NFNF9JOFgxNgotIAotLS8vIFJFUVVJUkVTOiBMTFZNXzEwXzArCi0gLy8g UkVRVUlSRVM6IFg4Nl9FTkFCTEVECi0gCi0gLy8gQ0hFQ0tBVlgyX0kzMlg4OiB7e1thLXpdKnhv clthLXpdKn19ICAleG1tMCwgJXhtbTAsICV4bW0wCi1kaWZmIC0tZ2l0IGEvdGVzdHMvbGl0LXRl c3RzLzE4NDQuaXNwYyBiL3Rlc3RzL2xpdC10ZXN0cy8xODQ0LmlzcGMKLWluZGV4IDc5M2E4ODY2 Yy4uMTg5ZWRmNGMzIDEwMDY0NAotLS0tIGEvdGVzdHMvbGl0LXRlc3RzLzE4NDQuaXNwYwotKysr IGIvdGVzdHMvbGl0LXRlc3RzLzE4NDQuaXNwYwotQEAgLTYsOSArNiw2IEBACi0gCi0gLy8gUkVR VUlSRVM6IFg4Nl9FTkFCTEVECi0gCi0tLy8gSXQgZG9lc24ndCB3b3JrIGZvciBhbnl0aGluZyBl YXJsaWVyIHRoYW4gMTAuMCwgYnV0IGl0IHdpbGwgbm90IGJlIGZpeGVkLCBzbyBkb24ndCBydW4u Ci0tLy8gUkVRVUlSRVM6IExMVk1fMTBfMCsKLS0KLSBleHRlcm4gdW5pZm9ybSB1bnNpZ25lZCBp bnQ2NCB2YXJfNjsKLSBleHRlcm4gdW5pZm9ybSB1bnNpZ25lZCBpbnQxNiB2YXJfMTE7Ci0gZXh0 ZXJuIHVuaWZvcm0gYm9vbCBhcnJfMjAxIFsxXSBbMTVdIFsyMF07Ci1kaWZmIC0tZ2l0IGEvdGVz dHMvbGl0LXRlc3RzLzE5MjYuaXNwYyBiL3Rlc3RzL2xpdC10ZXN0cy8xOTI2LmlzcGMKLWluZGV4 IDcwZjdjYzNjMi4uNzkyMWM5MWE2IDEwMDY0NAotLS0tIGEvdGVzdHMvbGl0LXRlc3RzLzE5MjYu aXNwYwotKysrIGIvdGVzdHMvbGl0LXRlc3RzLzE5MjYuaXNwYwotQEAgLTIsOCArMiw2IEBACi0g Ly8gUlVOOiBjYXQgJVQvMTkyNi5vLmpzb24gXAotIC8vIFJVTjogICB8IEZpbGVDaGVjayAlcwot IAotLS8vIFJFUVVJUkVTOiBMTFZNXzEwXzArCi0tCi0gLy8gQ0hFQ0s6ICJ0cmFjZUV2ZW50cyIK LSAvLyBDSEVDSzogImRldGFpbCIKLSBleHBvcnQgdW5pZm9ybSBpbnQgZm9vKHVuaWZvcm0gaW50 IGFbXSwgdW5pZm9ybSBpbnQgY291bnQpIHsKLWRpZmYgLS1naXQgYS90ZXN0cy9saXQtdGVzdHMv Y3B1c194ODYuaXNwYyBiL3Rlc3RzL2xpdC10ZXN0cy9jcHVzX3g4Ni5pc3BjCi1pbmRleCA1MTZl ZmRkNGMuLjRkNjAxODZmNiAxMDA2NDQKLS0tLSBhL3Rlc3RzL2xpdC10ZXN0cy9jcHVzX3g4Ni5p c3BjCi0rKysgYi90ZXN0cy9saXQtdGVzdHMvY3B1c194ODYuaXNwYwotQEAgLTI0LDYgKzI0LDgg QEAKLSAvLzsgUlVOOiAle2lzcGN9ICVzIC1vICV0Lm8gLS1ub3N0ZGxpYiAtLXRhcmdldD1zc2Uy LWkzMng0IC0tY3B1PWljbAotIC8vOyBSVU46ICV7aXNwY30gJXMgLW8gJXQubyAtLW5vc3RkbGli IC0tdGFyZ2V0PXNzZTItaTMyeDQgLS1jcHU9aWNlbGFrZS1zZXJ2ZXIKLSAvLzsgUlVOOiAle2lz cGN9ICVzIC1vICV0Lm8gLS1ub3N0ZGxpYiAtLXRhcmdldD1zc2UyLWkzMng0IC0tY3B1PWljeAot Ky8vOyBSVU46ICV7aXNwY30gJXMgLW8gJXQubyAtLW5vc3RkbGliIC0tdGFyZ2V0PXNzZTItaTMy eDQgLS1jcHU9dGlnZXJsYWtlCi0rLy87IFJVTjogJXtpc3BjfSAlcyAtbyAldC5vIC0tbm9zdGRs aWIgLS10YXJnZXQ9c3NlMi1pMzJ4NCAtLWNwdT10Z2wKLSAKLSAvLyBSRVFVSVJFUzogWDg2X0VO QUJMRUQKLSAKLWRpZmYgLS1naXQgYS90ZXN0cy9saXQtdGVzdHMvY3B1c194ODZfbGx2bTEwLmlz cGMgYi90ZXN0cy9saXQtdGVzdHMvY3B1c194ODZfbGx2bTEwLmlzcGMKLWRlbGV0ZWQgZmlsZSBt b2RlIDEwMDY0NAotaW5kZXggZWYwMDAwMGU1Li4wMDAwMDAwMDAKLS0tLSBhL3Rlc3RzL2xpdC10 ZXN0cy9jcHVzX3g4Nl9sbHZtMTAuaXNwYwotKysrIC9kZXYvbnVsbAotQEAgLTEsMTEgKzAsMCBA QAotLS8vIFRoZSB0ZXN0IGNoZWNrcyB0aGF0IGNwdSBkZWZpbml0aW9ucyAoaW5jbHVkaW5nIGFs bCBzeW5vbnltcykgYXJlIHN1Y2Nlc3NmdWxseSBjb25zdW1lZCBieSBjb21waWxlci4KLS0KLS0v LzsgUlVOOiAle2lzcGN9ICVzIC1vICV0Lm8gLS1ub3N0ZGxpYiAtLXRhcmdldD1zc2UyLWkzMng0 IC0tY3B1PXRpZ2VybGFrZQotLS8vOyBSVU46ICV7aXNwY30gJXMgLW8gJXQubyAtLW5vc3RkbGli IC0tdGFyZ2V0PXNzZTItaTMyeDQgLS1jcHU9dGdsCi0tCi0tLy8gUkVRVUlSRVM6IFg4Nl9FTkFC TEVECi0tLy8gUkVRVUlSRVM6IExMVk1fMTBfMCsKLS0KLS11bmlmb3JtIGludCBpOwotLQotLXZv aWQgZm9vKCkge30KLWRpZmYgLS1naXQgYS90ZXN0cy9saXQtdGVzdHMvbGl0LmNmZyBiL3Rlc3Rz L2xpdC10ZXN0cy9saXQuY2ZnCi1pbmRleCAxNzAxNjU3OWQuLjA0NWU2OTQzNyAxMDA2NDQKLS0t LSBhL3Rlc3RzL2xpdC10ZXN0cy9saXQuY2ZnCi0rKysgYi90ZXN0cy9saXQtdGVzdHMvbGl0LmNm ZwotQEAgLTMwLDExICszMCw2IEBAIHByaW50KCJDb25maWc6IikKLSAKLSAjIExMVk0gdmVyc2lv bgotIGxsdm1fdmVyc2lvbiA9IExvb3NlVmVyc2lvbihpc3BjX2xsdm1fdmVyc2lvbl9udW1iZXIp Ci0taWYgbGx2bV92ZXJzaW9uID49IExvb3NlVmVyc2lvbigiMTAuMC4wIik6Ci0tICAgIHByaW50 KCJMTFZNXzEwXzArOiBZRVMiKQotLSAgICBjb25maWcuYXZhaWxhYmxlX2ZlYXR1cmVzLmFkZCgi TExWTV8xMF8wKyIpCi0tZWxzZToKLS0gICAgcHJpbnQoIkxMVk1fMTBfMCs6IE5PIikKLSAKLSBp ZiBsbHZtX3ZlcnNpb24gPj0gTG9vc2VWZXJzaW9uKCIxMi4wLjAiKToKLSAgICAgcHJpbnQoIkxM Vk1fMTJfMCs6IFlFUyIpCmRpZmYgLS1naXQgYS9zcmNwa2dzL2lzcGMvcGF0Y2hlcy9sbHZtMTIt MDAzLnBhdGNoIGIvc3JjcGtncy9pc3BjL3BhdGNoZXMvbGx2bTEyLTAwMy5wYXRjaApkZWxldGVk IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDQyM2FmYzllM2Y5Li4wMDAwMDAwMDAwMDAKLS0tIGEv c3JjcGtncy9pc3BjL3BhdGNoZXMvbGx2bTEyLTAwMy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0x LDE1MDQgKzAsMCBAQAotRnJvbSAxODUxZDE4YjIxM2RiYWQxNjk5MzcwNzYxNzZiMmQ1NTA5NzMz Yzc2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogRGVlcGFrIFJhamVuZHJha3VtYXJh biA8ZGVlcGFrLnJhamVuZHJha3VtYXJhbkBpbnRlbC5jb20+Ci1EYXRlOiBUdWUsIDEyIEphbiAy MDIxIDIyOjE1OjEyIC0wODAwCi1TdWJqZWN0OiBbUEFUQ0hdIGZpeGVzICMxODIxIC0gUmVtb3Zp bmcgTExWTUdldE5hbWUoKSBhbmQgc3dpdGNoaW5nIHRvCi0gTExWTTo6VHdpbmUuCi0KLS0tLQot IHNyYy9jdHguY3BwICAgICAgfCAzMDQgKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KLSBzcmMvY3R4LmggICAgICAgIHwgIDcyICsrKysrLS0tLS0tCi0gc3Jj L2V4cHIuY3BwICAgICB8ICAzNiArKystLS0KLSBzcmMvbGx2bXV0aWwuY3BwIHwgIDE3IC0tLQot IHNyYy9sbHZtdXRpbC5oICAgfCAgIDUgLQotIHNyYy9vcHQuY3BwICAgICAgfCAxMDMgKysrKysr KysrLS0tLS0tLQotIDYgZmlsZXMgY2hhbmdlZCwgMjU1IGluc2VydGlvbnMoKyksIDI4MiBkZWxl dGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL3NyYy9jdHguY3BwIGIvc3JjL2N0eC5jcHAKLWluZGV4 IDQyYzRlYTA5ZC4uZGVkNTI0YjcxIDEwMDY0NAotLS0tIGEvc3JjL2N0eC5jcHAKLSsrKyBiL3Ny Yy9jdHguY3BwCi1AQCAtMTAyMCw4ICsxMDIwLDggQEAgdm9pZCBGdW5jdGlvbkVtaXRDb250ZXh0 OjpFbWl0Q2FzZUxhYmVsKGludCB2YWx1ZSwgYm9vbCBjaGVja01hc2ssIFNvdXJjZVBvcyBwb3MK LSAgICAgbGx2bTo6QmFzaWNCbG9jayAqYmJDYXNlSW1wbCA9IE5VTEw7Ci0gICAgIGlmIChlbWl0 R2VuWEhhcmR3YXJlTWFzaygpKSB7Ci0gICAgICAgICAvLyBDcmVhdGUgYmFzaWMgYmxvY2sgd2l0 aCBhY3R1YWwgY2FzZSBpbXBsZW1lbnRhdGlvbgotLSAgICAgICAgc3RkOjpzdHJpbmcgYmJOYW1l ID0gYmJDYXNlLT5nZXROYW1lKCkuc3RyKCkgKyAiX2ltcGwiOwotLSAgICAgICAgYmJDYXNlSW1w bCA9IENyZWF0ZUJhc2ljQmxvY2soYmJOYW1lLmNfc3RyKCksIGJiQ2FzZSk7Ci0rICAgICAgICBs bHZtOjpUd2luZSBiYk5hbWUgPSBsbHZtOjpUd2luZShiYkNhc2UtPmdldE5hbWUoKSkgKyAiX2lt cGwiOwotKyAgICAgICAgYmJDYXNlSW1wbCA9IENyZWF0ZUJhc2ljQmxvY2soYmJOYW1lLCBiYkNh c2UpOwotICAgICB9Ci0gI2VuZGlmCi0gCi1AQCAtMTE4NSw3ICsxMTg1LDcgQEAgYm9vbCBGdW5j dGlvbkVtaXRDb250ZXh0Ojppbml0TGFiZWxCQmxvY2tzKEFTVE5vZGUgKm5vZGUsIHZvaWQgKmRh dGEpIHsKLSAgICAgaWYgKGN0eC0+bGFiZWxNYXAuZmluZChscy0+bmFtZSkgIT0gY3R4LT5sYWJl bE1hcC5lbmQoKSkKLSAgICAgICAgIEVycm9yKGxzLT5wb3MsICJNdWx0aXBsZSBsYWJlbHMgbmFt ZWQgXCIlc1wiIGluIGZ1bmN0aW9uLiIsIGxzLT5uYW1lLmNfc3RyKCkpOwotICAgICBlbHNlIHsK LS0gICAgICAgIGxsdm06OkJhc2ljQmxvY2sgKmJiID0gY3R4LT5DcmVhdGVCYXNpY0Jsb2NrKGxz LT5uYW1lLmNfc3RyKCkpOwotKyAgICAgICAgbGx2bTo6QmFzaWNCbG9jayAqYmIgPSBjdHgtPkNy ZWF0ZUJhc2ljQmxvY2sobHMtPm5hbWUpOwotICAgICAgICAgY3R4LT5sYWJlbE1hcFtscy0+bmFt ZV0gPSBiYjsKLSAgICAgfQotICAgICByZXR1cm4gdHJ1ZTsKLUBAIC0xMjk5LDcgKzEyOTksNyBA QCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6QW55KGxsdm06OlZhbHVlICptYXNr KSB7Ci0gICAgIC8vIFdlIGNhbiBhY3R1YWxseSBjYWxsIGVpdGhlciBvbmUsIHNpbmNlIGJvdGgg YXJlIGkzMnMgYXMgZmFyIGFzCi0gICAgIC8vIExMVk0ncyB0eXBlIHN5c3RlbSBpcyBjb25jZXJu ZWQuLi4KLSAgICAgbGx2bTo6RnVuY3Rpb24gKmZtbSA9IG1tWzBdLT5mdW5jdGlvbjsKLS0gICAg cmV0dXJuIENhbGxJbnN0KGZtbSwgTlVMTCwgbWFzaywgTExWTUdldE5hbWUobWFzaywgIl9hbnki KSk7Ci0rICAgIHJldHVybiBDYWxsSW5zdChmbW0sIE5VTEwsIG1hc2ssIGxsdm06OlR3aW5lKG1h c2stPmdldE5hbWUoKSkgKyAiX2FueSIpOwotIH0KLSAKLSBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25F bWl0Q29udGV4dDo6QWxsKGxsdm06OlZhbHVlICptYXNrKSB7Ci1AQCAtMTMxNSw3ICsxMzE1LDcg QEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkFsbChsbHZtOjpWYWx1ZSAqbWFz aykgewotICAgICAvLyBXZSBjYW4gYWN0dWFsbHkgY2FsbCBlaXRoZXIgb25lLCBzaW5jZSBib3Ro IGFyZSBpMzJzIGFzIGZhciBhcwotICAgICAvLyBMTFZNJ3MgdHlwZSBzeXN0ZW0gaXMgY29uY2Vy bmVkLi4uCi0gICAgIGxsdm06OkZ1bmN0aW9uICpmbW0gPSBtbVswXS0+ZnVuY3Rpb247Ci0tICAg IHJldHVybiBDYWxsSW5zdChmbW0sIE5VTEwsIG1hc2ssIExMVk1HZXROYW1lKG1hc2ssICJfYWxs IikpOwotKyAgICByZXR1cm4gQ2FsbEluc3QoZm1tLCBOVUxMLCBtYXNrLCBsbHZtOjpUd2luZSht YXNrLT5nZXROYW1lKCkpICsgIl9hbGwiKTsKLSB9Ci0gCi0gbGx2bTo6VmFsdWUgKkZ1bmN0aW9u RW1pdENvbnRleHQ6Ok5vbmUobGx2bTo6VmFsdWUgKm1hc2spIHsKLUBAIC0xMzMxLDcgKzEzMzEs NyBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6Tm9uZShsbHZtOjpWYWx1ZSAq bWFzaykgewotICAgICAvLyBXZSBjYW4gYWN0dWFsbHkgY2FsbCBlaXRoZXIgb25lLCBzaW5jZSBi b3RoIGFyZSBpMzJzIGFzIGZhciBhcwotICAgICAvLyBMTFZNJ3MgdHlwZSBzeXN0ZW0gaXMgY29u Y2VybmVkLi4uCi0gICAgIGxsdm06OkZ1bmN0aW9uICpmbW0gPSBtbVswXS0+ZnVuY3Rpb247Ci0t ICAgIHJldHVybiBDYWxsSW5zdChmbW0sIE5VTEwsIG1hc2ssIExMVk1HZXROYW1lKG1hc2ssICJf bm9uZSIpKTsKLSsgICAgcmV0dXJuIENhbGxJbnN0KGZtbSwgTlVMTCwgbWFzaywgbGx2bTo6VHdp bmUobWFzay0+Z2V0TmFtZSgpKSArICJfbm9uZSIpOwotIH0KLSAKLSBsbHZtOjpWYWx1ZSAqRnVu Y3Rpb25FbWl0Q29udGV4dDo6TGFuZU1hc2sobGx2bTo6VmFsdWUgKnYpIHsKLUBAIC0xMzQ5LDcg KzEzNDksNyBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6TGFuZU1hc2sobGx2 bTo6VmFsdWUgKnYpIHsKLSAgICAgLy8gV2UgY2FuIGFjdHVhbGx5IGNhbGwgZWl0aGVyIG9uZSwg c2luY2UgYm90aCBhcmUgaTMycyBhcyBmYXIgYXMKLSAgICAgLy8gTExWTSdzIHR5cGUgc3lzdGVt IGlzIGNvbmNlcm5lZC4uLgotICAgICBsbHZtOjpGdW5jdGlvbiAqZm1tID0gbW1bMF0tPmZ1bmN0 aW9uOwotLSAgICByZXR1cm4gQ2FsbEluc3QoZm1tLCBOVUxMLCB2LCBMTFZNR2V0TmFtZSh2LCAi X21vdm1zayIpKTsKLSsgICAgcmV0dXJuIENhbGxJbnN0KGZtbSwgTlVMTCwgdiwgbGx2bTo6VHdp bmUodi0+Z2V0TmFtZSgpKSArICJfbW92bXNrIik7Ci0gfQotIAotIGxsdm06OlZhbHVlICpGdW5j dGlvbkVtaXRDb250ZXh0OjpNYXNrc0FsbEVxdWFsKGxsdm06OlZhbHVlICp2MSwgbGx2bTo6VmFs dWUgKnYyKSB7Ci1AQCAtMTM2NCwxMSArMTM2NCwxMiBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25F bWl0Q29udGV4dDo6TWFza3NBbGxFcXVhbChsbHZtOjpWYWx1ZSAqdjEsIGxsdm06OlZhbHVlICp2 MgotICNlbHNlCi0gICAgIGlmIChnLT50YXJnZXQtPmdldEFyY2goKSA9PSBBcmNoOjp3YXNtMzIp IHsKLSAgICAgICAgIGxsdm06OkZ1bmN0aW9uICpmbW0gPSBtLT5tb2R1bGUtPmdldEZ1bmN0aW9u KCJfX3dhc21fY21wX21za19lcSIpOwotLSAgICAgICAgcmV0dXJuIENhbGxJbnN0KGZtbSwgTlVM TCwge3YxLCB2Mn0sIExMVk1HZXROYW1lKCJ3YXNtX2NtcF9tc2tfZXEiLCB2MSwgdjIpKTsKLSsg ICAgICAgIHJldHVybiBDYWxsSW5zdChmbW0sIE5VTEwsIHt2MSwgdjJ9LCAoKGxsdm06OlR3aW5l KCJ3YXNtX2NtcF9tc2tfZXFfIikgKyB2MS0+Z2V0TmFtZSgpKSArICJfIikgKyB2Mi0+Z2V0TmFt ZSgpKTsKLSAgICAgfQotICAgICBsbHZtOjpWYWx1ZSAqbW0xID0gTGFuZU1hc2sodjEpOwotICAg ICBsbHZtOjpWYWx1ZSAqbW0yID0gTGFuZU1hc2sodjIpOwotLSAgICByZXR1cm4gQ21wSW5zdChs bHZtOjpJbnN0cnVjdGlvbjo6SUNtcCwgbGx2bTo6Q21wSW5zdDo6SUNNUF9FUSwgbW0xLCBtbTIs IExMVk1HZXROYW1lKCJlcXVhbCIsIHYxLCB2MikpOwotKyAgICByZXR1cm4gQ21wSW5zdChsbHZt OjpJbnN0cnVjdGlvbjo6SUNtcCwgbGx2bTo6Q21wSW5zdDo6SUNNUF9FUSwgbW0xLCBtbTIsCi0r ICAgICAgICAgICAgICAgICAgICgobGx2bTo6VHdpbmUoImVxdWFsXyIpICsgdjEtPmdldE5hbWUo KSkgKyAiXyIpICsgdjItPmdldE5hbWUoKSk7Ci0gI2VuZGlmCi0gfQotIAotQEAgLTEzOTIsNyAr MTM5Myw3IEBAIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpHZXRTdHJpbmdQdHIo Y29uc3Qgc3RkOjpzdHJpbmcgJnN0cikgewotICAgICByZXR1cm4gbmV3IGxsdm06OkJpdENhc3RJ bnN0KGxzdHJQdHIsIExMVk1UeXBlczo6Vm9pZFBvaW50ZXJUeXBlLCAic3RyX3ZvaWRfcHRyIiwg YmJsb2NrKTsKLSB9Ci0gCi0tbGx2bTo6QmFzaWNCbG9jayAqRnVuY3Rpb25FbWl0Q29udGV4dDo6 Q3JlYXRlQmFzaWNCbG9jayhjb25zdCBjaGFyICpuYW1lLCBsbHZtOjpCYXNpY0Jsb2NrICppbnNl cnRBZnRlcikgewotK2xsdm06OkJhc2ljQmxvY2sgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkNyZWF0 ZUJhc2ljQmxvY2soY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUsIGxsdm06OkJhc2ljQmxvY2sgKmlu c2VydEFmdGVyKSB7Ci0gICAgIGxsdm06OkJhc2ljQmxvY2sgKm5ld0JCID0gbGx2bTo6QmFzaWNC bG9jazo6Q3JlYXRlKCpnLT5jdHgsIG5hbWUsIGxsdm1GdW5jdGlvbik7Ci0gICAgIGlmIChpbnNl cnRBZnRlcikKLSAgICAgICAgIG5ld0JCLT5tb3ZlQWZ0ZXIoaW5zZXJ0QWZ0ZXIpOwotQEAgLTE0 MTYsMTQgKzE0MTcsMTUgQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkkxVmVj VG9Cb29sVmVjKGxsdm06OlZhbHVlICpiKSB7Ci0gCi0gICAgICAgICBmb3IgKHVuc2lnbmVkIGlu dCBpID0gMDsgaSA8IGF0LT5nZXROdW1FbGVtZW50cygpOyArK2kpIHsKLSAgICAgICAgICAgICBs bHZtOjpWYWx1ZSAqZWx0ID0gRXh0cmFjdEluc3QoYiwgaSk7Ci0tICAgICAgICAgICAgbGx2bTo6 VmFsdWUgKnNleHQgPSBTd2l0Y2hCb29sU2l6ZShlbHQsIExMVk1UeXBlczo6Qm9vbFZlY3RvclN0 b3JhZ2VUeXBlLCBMTFZNR2V0TmFtZShlbHQsICJfdG9fYm9vbHZlYyIpKTsKLSsgICAgICAgICAg ICBsbHZtOjpWYWx1ZSAqc2V4dCA9Ci0rICAgICAgICAgICAgICAgIFN3aXRjaEJvb2xTaXplKGVs dCwgTExWTVR5cGVzOjpCb29sVmVjdG9yU3RvcmFnZVR5cGUsIGxsdm06OlR3aW5lKGVsdC0+Z2V0 TmFtZSgpKSArICJfdG9fYm9vbHZlYyIpOwotICAgICAgICAgICAgIHJldCA9IEluc2VydEluc3Qo cmV0LCBzZXh0LCBpKTsKLSAgICAgICAgIH0KLSAgICAgICAgIHJldHVybiByZXQ7Ci0gICAgIH0g ZWxzZSB7Ci0gICAgICAgICAvLyBGb3Igbm9uLWFycmF5IHR5cGVzLCBjb252ZXJ0IHRvICdMTFZN VHlwZXM6OkJvb2xWZWN0b3JUeXBlJyBpZgotICAgICAgICAgLy8gbmVjZXNzYXJ5LgotLSAgICAg ICAgcmV0dXJuIFN3aXRjaEJvb2xTaXplKGIsIExMVk1UeXBlczo6Qm9vbFZlY3RvclR5cGUsIExM Vk1HZXROYW1lKGIsICJfdG9fYm9vbHZlYyIpKTsKLSsgICAgICAgIHJldHVybiBTd2l0Y2hCb29s U2l6ZShiLCBMTFZNVHlwZXM6OkJvb2xWZWN0b3JUeXBlLCBsbHZtOjpUd2luZShiLT5nZXROYW1l KCkpICsgIl90b19ib29sdmVjIik7Ci0gICAgIH0KLSB9Ci0gCi1AQCAtMTU2Myw3ICsxNTY1LDcg QEAgc3RhdGljIGludCBsQXJyYXlWZWN0b3JXaWR0aChsbHZtOjpUeXBlICp0KSB7Ci0gfQotIAot IGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpCaW5hcnlPcGVyYXRvcihsbHZtOjpJ bnN0cnVjdGlvbjo6QmluYXJ5T3BzIGluc3QsIGxsdm06OlZhbHVlICp2MCwgbGx2bTo6VmFsdWUg KnYxLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj b25zdCBjaGFyICpuYW1lKSB7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lKSB7Ci0gICAgIGlmICh2MCA9PSBO VUxMIHx8IHYxID09IE5VTEwpIHsKLSAgICAgICAgIEFzc2VydFBvcyhjdXJyZW50UG9zLCBtLT5l cnJvckNvdW50ID4gMCk7Ci0gICAgICAgICByZXR1cm4gTlVMTDsKLUBAIC0xNTczLDcgKzE1NzUs NyBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6QmluYXJ5T3BlcmF0b3IobGx2 bTo6SW5zdHJ1Y3Rpb246OkJpbmFyeU9wcyBpbgotICAgICBsbHZtOjpUeXBlICp0eXBlID0gdjAt PmdldFR5cGUoKTsKLSAgICAgaW50IGFycmF5U2l6ZSA9IGxBcnJheVZlY3RvcldpZHRoKHR5cGUp OwotICAgICBpZiAoYXJyYXlTaXplID09IDApIHsKLS0gICAgICAgIGxsdm06Okluc3RydWN0aW9u ICpib3AgPSBsbHZtOjpCaW5hcnlPcGVyYXRvcjo6Q3JlYXRlKGluc3QsIHYwLCB2MSwgbmFtZSA/ IG5hbWUgOiAiIiwgYmJsb2NrKTsKLSsgICAgICAgIGxsdm06Okluc3RydWN0aW9uICpib3AgPSBs bHZtOjpCaW5hcnlPcGVyYXRvcjo6Q3JlYXRlKGluc3QsIHYwLCB2MSwgbmFtZSwgYmJsb2NrKTsK LSAgICAgICAgIEFkZERlYnVnUG9zKGJvcCk7Ci0gICAgICAgICByZXR1cm4gYm9wOwotICAgICB9 IGVsc2UgewotQEAgLTE1OTEsNyArMTU5Myw3IEBAIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRD b250ZXh0OjpCaW5hcnlPcGVyYXRvcihsbHZtOjpJbnN0cnVjdGlvbjo6QmluYXJ5T3BzIGluCi0g ICAgIH0KLSB9Ci0gCi0tbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6Ok5vdE9wZXJh dG9yKGxsdm06OlZhbHVlICp2LCBjb25zdCBjaGFyICpuYW1lKSB7Ci0rbGx2bTo6VmFsdWUgKkZ1 bmN0aW9uRW1pdENvbnRleHQ6Ok5vdE9wZXJhdG9yKGxsdm06OlZhbHVlICp2LCBjb25zdCBsbHZt OjpUd2luZSAmbmFtZSkgewotICAgICBpZiAodiA9PSBOVUxMKSB7Ci0gICAgICAgICBBc3NlcnRQ b3MoY3VycmVudFBvcywgbS0+ZXJyb3JDb3VudCA+IDApOwotICAgICAgICAgcmV0dXJuIE5VTEw7 Ci1AQCAtMTYwMywxNCArMTYwNSwxNCBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4 dDo6Tm90T3BlcmF0b3IobGx2bTo6VmFsdWUgKnYsIGNvbnN0IGNoYXIgKm5hbWUpCi0gICAgIGxs dm06OlR5cGUgKnR5cGUgPSB2LT5nZXRUeXBlKCk7Ci0gICAgIGludCBhcnJheVNpemUgPSBsQXJy YXlWZWN0b3JXaWR0aCh0eXBlKTsKLSAgICAgaWYgKGFycmF5U2l6ZSA9PSAwKSB7Ci0tICAgICAg ICBsbHZtOjpJbnN0cnVjdGlvbiAqYmluc3QgPSBsbHZtOjpCaW5hcnlPcGVyYXRvcjo6Q3JlYXRl Tm90KHYsIG5hbWUgPyBuYW1lIDogIm5vdCIsIGJibG9jayk7Ci0rICAgICAgICBsbHZtOjpJbnN0 cnVjdGlvbiAqYmluc3QgPSBsbHZtOjpCaW5hcnlPcGVyYXRvcjo6Q3JlYXRlTm90KHYsIG5hbWUu aXNUcml2aWFsbHlFbXB0eSgpID8gIm5vdCIgOiBuYW1lLCBiYmxvY2spOwotICAgICAgICAgQWRk RGVidWdQb3MoYmluc3QpOwotICAgICAgICAgcmV0dXJuIGJpbnN0OwotICAgICB9IGVsc2Ugewot ICAgICAgICAgbGx2bTo6VmFsdWUgKnJldCA9IGxsdm06OlVuZGVmVmFsdWU6OmdldCh0eXBlKTsK LSAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgYXJyYXlTaXplOyArK2kpIHsKLSAgICAgICAg ICAgICBsbHZtOjpWYWx1ZSAqYSA9IEV4dHJhY3RJbnN0KHYsIGkpOwotLSAgICAgICAgICAgIGxs dm06OlZhbHVlICpvcCA9IGxsdm06OkJpbmFyeU9wZXJhdG9yOjpDcmVhdGVOb3QoYSwgbmFtZSA/ IG5hbWUgOiAibm90IiwgYmJsb2NrKTsKLSsgICAgICAgICAgICBsbHZtOjpWYWx1ZSAqb3AgPSBs bHZtOjpCaW5hcnlPcGVyYXRvcjo6Q3JlYXRlTm90KGEsIG5hbWUuaXNUcml2aWFsbHlFbXB0eSgp ID8gIm5vdCIgOiBuYW1lLCBiYmxvY2spOwotICAgICAgICAgICAgIEFkZERlYnVnUG9zKG9wKTsK LSAgICAgICAgICAgICByZXQgPSBJbnNlcnRJbnN0KHJldCwgb3AsIGkpOwotICAgICAgICAgfQot QEAgLTE2MzgsNyArMTY0MCw3IEBAIHN0YXRpYyBsbHZtOjpUeXBlICpsR2V0TWF0Y2hpbmdCb29s VmVjdG9yVHlwZShsbHZtOjpUeXBlICp0eXBlKSB7Ci0gfQotIAotIGxsdm06OlZhbHVlICpGdW5j dGlvbkVtaXRDb250ZXh0OjpDbXBJbnN0KGxsdm06Okluc3RydWN0aW9uOjpPdGhlck9wcyBpbnN0 LCBsbHZtOjpDbXBJbnN0OjpQcmVkaWNhdGUgcHJlZCwKLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBsbHZtOjpWYWx1ZSAqdjAsIGxsdm06OlZhbHVlICp2MSwgY29u c3QgY2hhciAqbmFtZSkgewotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGxsdm06OlZhbHVlICp2MCwgbGx2bTo6VmFsdWUgKnYxLCBjb25zdCBsbHZtOjpUd2luZSAm bmFtZSkgewotICAgICBpZiAodjAgPT0gTlVMTCB8fCB2MSA9PSBOVUxMKSB7Ci0gICAgICAgICBB c3NlcnRQb3MoY3VycmVudFBvcywgbS0+ZXJyb3JDb3VudCA+IDApOwotICAgICAgICAgcmV0dXJu IE5VTEw7Ci1AQCAtMTY0OCw3ICsxNjUwLDggQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENv bnRleHQ6OkNtcEluc3QobGx2bTo6SW5zdHJ1Y3Rpb246Ok90aGVyT3BzIGluc3QsIGxsdm0KLSAg ICAgbGx2bTo6VHlwZSAqdHlwZSA9IHYwLT5nZXRUeXBlKCk7Ci0gICAgIGludCBhcnJheVNpemUg PSBsQXJyYXlWZWN0b3JXaWR0aCh0eXBlKTsKLSAgICAgaWYgKGFycmF5U2l6ZSA9PSAwKSB7Ci0t ICAgICAgICBsbHZtOjpJbnN0cnVjdGlvbiAqY2kgPSBsbHZtOjpDbXBJbnN0OjpDcmVhdGUoaW5z dCwgcHJlZCwgdjAsIHYxLCBuYW1lID8gbmFtZSA6ICJjbXAiLCBiYmxvY2spOwotKyAgICAgICAg bGx2bTo6SW5zdHJ1Y3Rpb24gKmNpID0KLSsgICAgICAgICAgICBsbHZtOjpDbXBJbnN0OjpDcmVh dGUoaW5zdCwgcHJlZCwgdjAsIHYxLCBuYW1lLmlzVHJpdmlhbGx5RW1wdHkoKSA/ICJjbXAiIDog bmFtZSwgYmJsb2NrKTsKLSAgICAgICAgIEFkZERlYnVnUG9zKGNpKTsKLSAgICAgICAgIHJldHVy biBjaTsKLSAgICAgfSBlbHNlIHsKLUBAIC0xNjU3LDE0ICsxNjYwLDE0IEBAIGxsdm06OlZhbHVl ICpGdW5jdGlvbkVtaXRDb250ZXh0OjpDbXBJbnN0KGxsdm06Okluc3RydWN0aW9uOjpPdGhlck9w cyBpbnN0LCBsbHZtCi0gICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGFycmF5U2l6ZTsgKytp KSB7Ci0gICAgICAgICAgICAgbGx2bTo6VmFsdWUgKmEgPSBFeHRyYWN0SW5zdCh2MCwgaSk7Ci0g ICAgICAgICAgICAgbGx2bTo6VmFsdWUgKmIgPSBFeHRyYWN0SW5zdCh2MSwgaSk7Ci0tICAgICAg ICAgICAgbGx2bTo6VmFsdWUgKm9wID0gQ21wSW5zdChpbnN0LCBwcmVkLCBhLCBiLCBuYW1lKTsK LSsgICAgICAgICAgICBsbHZtOjpWYWx1ZSAqb3AgPSBDbXBJbnN0KGluc3QsIHByZWQsIGEsIGIs IG5hbWUuaXNUcml2aWFsbHlFbXB0eSgpID8gImNtcCIgOiBuYW1lKTsKLSAgICAgICAgICAgICBy ZXQgPSBJbnNlcnRJbnN0KHJldCwgb3AsIGkpOwotICAgICAgICAgfQotICAgICAgICAgcmV0dXJu IHJldDsKLSAgICAgfQotIH0KLSAKLS1sbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6 U21lYXJVbmlmb3JtKGxsdm06OlZhbHVlICp2YWx1ZSwgY29uc3QgY2hhciAqbmFtZSkgewotK2xs dm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpTbWVhclVuaWZvcm0obGx2bTo6VmFsdWUg KnZhbHVlLCBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSkgewotICAgICBpZiAodmFsdWUgPT0gTlVM TCkgewotICAgICAgICAgQXNzZXJ0UG9zKGN1cnJlbnRQb3MsIG0tPmVycm9yQ291bnQgPiAwKTsK LSAgICAgICAgIHJldHVybiBOVUxMOwotQEAgLTE3MDQsMjEgKzE3MDcsMTkgQEAgbGx2bTo6VmFs dWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OlNtZWFyVW5pZm9ybShsbHZtOjpWYWx1ZSAqdmFsdWUs IGNvbnN0IGNoYXIgKm4KLSAgICAgcmV0dXJuIHJldDsKLSB9Ci0gCi0tbGx2bTo6VmFsdWUgKkZ1 bmN0aW9uRW1pdENvbnRleHQ6OkJpdENhc3RJbnN0KGxsdm06OlZhbHVlICp2YWx1ZSwgbGx2bTo6 VHlwZSAqdHlwZSwgY29uc3QgY2hhciAqbmFtZSkgewotK2xsdm06OlZhbHVlICpGdW5jdGlvbkVt aXRDb250ZXh0OjpCaXRDYXN0SW5zdChsbHZtOjpWYWx1ZSAqdmFsdWUsIGxsdm06OlR5cGUgKnR5 cGUsIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lKSB7Ci0gICAgIGlmICh2YWx1ZSA9PSBOVUxMKSB7 Ci0gICAgICAgICBBc3NlcnRQb3MoY3VycmVudFBvcywgbS0+ZXJyb3JDb3VudCA+IDApOwotICAg ICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgIH0KLSAKLS0gICAgaWYgKG5hbWUgPT0gTlVMTCkKLS0g ICAgICAgIG5hbWUgPSBMTFZNR2V0TmFtZSh2YWx1ZSwgIl9iaXRjYXN0Iik7Ci0tCi0tICAgIGxs dm06Okluc3RydWN0aW9uICppbnN0ID0gbmV3IGxsdm06OkJpdENhc3RJbnN0KHZhbHVlLCB0eXBl LCBuYW1lLCBiYmxvY2spOwotKyAgICBsbHZtOjpJbnN0cnVjdGlvbiAqaW5zdCA9IG5ldyBsbHZt OjpCaXRDYXN0SW5zdCgKLSsgICAgICAgIHZhbHVlLCB0eXBlLCBuYW1lLmlzVHJpdmlhbGx5RW1w dHkoKSA/IGxsdm06OlR3aW5lKHZhbHVlLT5nZXROYW1lKCkpICsgIl9iaXRjYXN0IiA6IG5hbWUs IGJibG9jayk7Ci0gICAgIEFkZERlYnVnUG9zKGluc3QpOwotICAgICByZXR1cm4gaW5zdDsKLSB9 Ci0gCi0tbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OlB0clRvSW50SW5zdChsbHZt OjpWYWx1ZSAqdmFsdWUsIGNvbnN0IGNoYXIgKm5hbWUpIHsKLStsbHZtOjpWYWx1ZSAqRnVuY3Rp b25FbWl0Q29udGV4dDo6UHRyVG9JbnRJbnN0KGxsdm06OlZhbHVlICp2YWx1ZSwgY29uc3QgbGx2 bTo6VHdpbmUgJm5hbWUpIHsKLSAgICAgaWYgKHZhbHVlID09IE5VTEwpIHsKLSAgICAgICAgIEFz c2VydFBvcyhjdXJyZW50UG9zLCBtLT5lcnJvckNvdW50ID4gMCk7Ci0gICAgICAgICByZXR1cm4g TlVMTDsKLUBAIC0xNzI4LDIzICsxNzI5LDE5IEBAIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRD b250ZXh0OjpQdHJUb0ludEluc3QobGx2bTo6VmFsdWUgKnZhbHVlLCBjb25zdCBjaGFyICpuCi0g ICAgICAgICAvLyBuby1vcCBmb3IgdmFyeWluZyBwb2ludGVyczsgdGhleSdyZSBhbHJlYWR5IHZl Y3RvcnMgb2YgaW50cwotICAgICAgICAgcmV0dXJuIHZhbHVlOwotIAotLSAgICBpZiAobmFtZSA9 PSBOVUxMKQotLSAgICAgICAgbmFtZSA9IExMVk1HZXROYW1lKHZhbHVlLCAiX3B0cjJpbnQiKTsK LSAgICAgbGx2bTo6VHlwZSAqdHlwZSA9IExMVk1UeXBlczo6UG9pbnRlckludFR5cGU7Ci0tICAg IGxsdm06Okluc3RydWN0aW9uICppbnN0ID0gbmV3IGxsdm06OlB0clRvSW50SW5zdCh2YWx1ZSwg dHlwZSwgbmFtZSwgYmJsb2NrKTsKLSsgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmluc3QgPSBuZXcg bGx2bTo6UHRyVG9JbnRJbnN0KAotKyAgICAgICAgdmFsdWUsIHR5cGUsIG5hbWUuaXNUcml2aWFs bHlFbXB0eSgpID8gbGx2bTo6VHdpbmUodmFsdWUtPmdldE5hbWUoKSkgKyAiX3B0cjJpbnQiIDog bmFtZSwgYmJsb2NrKTsKLSAgICAgQWRkRGVidWdQb3MoaW5zdCk7Ci0gICAgIHJldHVybiBpbnN0 OwotIH0KLSAKLS1sbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6UHRyVG9JbnRJbnN0 KGxsdm06OlZhbHVlICp2YWx1ZSwgbGx2bTo6VHlwZSAqdG9UeXBlLCBjb25zdCBjaGFyICpuYW1l KSB7Ci0rbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OlB0clRvSW50SW5zdChsbHZt OjpWYWx1ZSAqdmFsdWUsIGxsdm06OlR5cGUgKnRvVHlwZSwgY29uc3QgbGx2bTo6VHdpbmUgJm5h bWUpIHsKLSAgICAgaWYgKHZhbHVlID09IE5VTEwpIHsKLSAgICAgICAgIEFzc2VydFBvcyhjdXJy ZW50UG9zLCBtLT5lcnJvckNvdW50ID4gMCk7Ci0gICAgICAgICByZXR1cm4gTlVMTDsKLSAgICAg fQotIAotLSAgICBpZiAobmFtZSA9PSBOVUxMKQotLSAgICAgICAgbmFtZSA9IExMVk1HZXROYW1l KHZhbHVlLCAiX3B0cjJpbnQiKTsKLS0KLSAgICAgbGx2bTo6VHlwZSAqZnJvbVR5cGUgPSB2YWx1 ZS0+Z2V0VHlwZSgpOwotICAgICBpZiAobGx2bTo6aXNhPGxsdm06OlZlY3RvclR5cGU+KGZyb21U eXBlKSkgewotICAgICAgICAgLy8gdmFyeWluZyBwb2ludGVyCi1AQCAtMTc1MiwyNyArMTc0OSwy NiBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6UHRyVG9JbnRJbnN0KGxsdm06 OlZhbHVlICp2YWx1ZSwgbGx2bTo6VHlwZSAqdAotICAgICAgICAgICAgIC8vIGFscmVhZHkgdGhl IHJpZ2h0IHR5cGUtLWRvbmUKLSAgICAgICAgICAgICByZXR1cm4gdmFsdWU7Ci0gICAgICAgICBl bHNlIGlmIChmcm9tVHlwZS0+Z2V0U2NhbGFyU2l6ZUluQml0cygpID4gdG9UeXBlLT5nZXRTY2Fs YXJTaXplSW5CaXRzKCkpCi0tICAgICAgICAgICAgcmV0dXJuIFRydW5jSW5zdCh2YWx1ZSwgdG9U eXBlLCBuYW1lKTsKLSsgICAgICAgICAgICByZXR1cm4gVHJ1bmNJbnN0KHZhbHVlLCB0b1R5cGUs Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lLmlzVHJpdmlhbGx5RW1wdHkoKSA/ IGxsdm06OlR3aW5lKHZhbHVlLT5nZXROYW1lKCkpICsgIl9wdHIyaW50IiA6IG5hbWUpOwotICAg ICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgQXNzZXJ0UG9zKGN1cnJlbnRQb3MsIGZyb21UeXBl LT5nZXRTY2FsYXJTaXplSW5CaXRzKCkgPCB0b1R5cGUtPmdldFNjYWxhclNpemVJbkJpdHMoKSk7 Ci0tICAgICAgICAgICAgcmV0dXJuIFpFeHRJbnN0KHZhbHVlLCB0b1R5cGUsIG5hbWUpOwotKyAg ICAgICAgICAgIHJldHVybiBaRXh0SW5zdCh2YWx1ZSwgdG9UeXBlLCBuYW1lLmlzVHJpdmlhbGx5 RW1wdHkoKSA/IGxsdm06OlR3aW5lKHZhbHVlLT5nZXROYW1lKCkpICsgIl9wdHIyaW50IiA6IG5h bWUpOwotICAgICAgICAgfQotICAgICB9Ci0gCi0tICAgIGxsdm06Okluc3RydWN0aW9uICppbnN0 ID0gbmV3IGxsdm06OlB0clRvSW50SW5zdCh2YWx1ZSwgdG9UeXBlLCBuYW1lLCBiYmxvY2spOwot KyAgICBsbHZtOjpJbnN0cnVjdGlvbiAqaW5zdCA9IG5ldyBsbHZtOjpQdHJUb0ludEluc3QoCi0r ICAgICAgICB2YWx1ZSwgdG9UeXBlLCBuYW1lLmlzVHJpdmlhbGx5RW1wdHkoKSA/IGxsdm06OlR3 aW5lKHZhbHVlLT5nZXROYW1lKCkpICsgIl9wdHIyaW50IiA6IG5hbWUsIGJibG9jayk7Ci0gICAg IEFkZERlYnVnUG9zKGluc3QpOwotICAgICByZXR1cm4gaW5zdDsKLSB9Ci0gCi0tbGx2bTo6VmFs dWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkludFRvUHRySW5zdChsbHZtOjpWYWx1ZSAqdmFsdWUs IGxsdm06OlR5cGUgKnRvVHlwZSwgY29uc3QgY2hhciAqbmFtZSkgewotK2xsdm06OlZhbHVlICpG dW5jdGlvbkVtaXRDb250ZXh0OjpJbnRUb1B0ckluc3QobGx2bTo6VmFsdWUgKnZhbHVlLCBsbHZt OjpUeXBlICp0b1R5cGUsIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lKSB7Ci0gICAgIGlmICh2YWx1 ZSA9PSBOVUxMKSB7Ci0gICAgICAgICBBc3NlcnRQb3MoY3VycmVudFBvcywgbS0+ZXJyb3JDb3Vu dCA+IDApOwotICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgIH0KLSAKLS0gICAgaWYgKG5hbWUg PT0gTlVMTCkKLS0gICAgICAgIG5hbWUgPSBMTFZNR2V0TmFtZSh2YWx1ZSwgIl9pbnQycHRyIik7 Ci0tCi0gICAgIGxsdm06OlR5cGUgKmZyb21UeXBlID0gdmFsdWUtPmdldFR5cGUoKTsKLSAgICAg aWYgKGxsdm06OmlzYTxsbHZtOjpWZWN0b3JUeXBlPihmcm9tVHlwZSkpIHsKLSAgICAgICAgIC8v IHZhcnlpbmcgcG9pbnRlcgotQEAgLTE3ODAsOTUgKzE3NzYsODcgQEAgbGx2bTo6VmFsdWUgKkZ1 bmN0aW9uRW1pdENvbnRleHQ6OkludFRvUHRySW5zdChsbHZtOjpWYWx1ZSAqdmFsdWUsIGxsdm06 OlR5cGUgKnQKLSAgICAgICAgICAgICAvLyBkb25lCi0gICAgICAgICAgICAgcmV0dXJuIHZhbHVl OwotICAgICAgICAgZWxzZSBpZiAoZnJvbVR5cGUtPmdldFNjYWxhclNpemVJbkJpdHMoKSA+IHRv VHlwZS0+Z2V0U2NhbGFyU2l6ZUluQml0cygpKQotLSAgICAgICAgICAgIHJldHVybiBUcnVuY0lu c3QodmFsdWUsIHRvVHlwZSwgbmFtZSk7Ci0rICAgICAgICAgICAgcmV0dXJuIFRydW5jSW5zdCh2 YWx1ZSwgdG9UeXBlLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZS5pc1RyaXZp YWxseUVtcHR5KCkgPyBsbHZtOjpUd2luZSh2YWx1ZS0+Z2V0TmFtZSgpKSArICJfaW50MnB0ciIg OiBuYW1lKTsKLSAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgIEFzc2VydFBvcyhjdXJyZW50 UG9zLCBmcm9tVHlwZS0+Z2V0U2NhbGFyU2l6ZUluQml0cygpIDwgdG9UeXBlLT5nZXRTY2FsYXJT aXplSW5CaXRzKCkpOwotLSAgICAgICAgICAgIHJldHVybiBaRXh0SW5zdCh2YWx1ZSwgdG9UeXBl LCBuYW1lKTsKLSsgICAgICAgICAgICByZXR1cm4gWkV4dEluc3QodmFsdWUsIHRvVHlwZSwgbmFt ZS5pc1RyaXZpYWxseUVtcHR5KCkgPyBsbHZtOjpUd2luZSh2YWx1ZS0+Z2V0TmFtZSgpKSArICJf aW50MnB0ciIgOiBuYW1lKTsKLSAgICAgICAgIH0KLSAgICAgfQotIAotLSAgICBsbHZtOjpJbnN0 cnVjdGlvbiAqaW5zdCA9IG5ldyBsbHZtOjpJbnRUb1B0ckluc3QodmFsdWUsIHRvVHlwZSwgbmFt ZSwgYmJsb2NrKTsKLSsgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmluc3QgPSBuZXcgbGx2bTo6SW50 VG9QdHJJbnN0KAotKyAgICAgICAgdmFsdWUsIHRvVHlwZSwgbmFtZS5pc1RyaXZpYWxseUVtcHR5 KCkgPyBsbHZtOjpUd2luZSh2YWx1ZS0+Z2V0TmFtZSgpKSArICJfaW50MnB0ciIgOiBuYW1lLCBi YmxvY2spOwotICAgICBBZGREZWJ1Z1BvcyhpbnN0KTsKLSAgICAgcmV0dXJuIGluc3Q7Ci0gfQot IAotLWxsdm06Okluc3RydWN0aW9uICpGdW5jdGlvbkVtaXRDb250ZXh0OjpUcnVuY0luc3QobGx2 bTo6VmFsdWUgKnZhbHVlLCBsbHZtOjpUeXBlICp0eXBlLCBjb25zdCBjaGFyICpuYW1lKSB7Ci0r bGx2bTo6SW5zdHJ1Y3Rpb24gKkZ1bmN0aW9uRW1pdENvbnRleHQ6OlRydW5jSW5zdChsbHZtOjpW YWx1ZSAqdmFsdWUsIGxsdm06OlR5cGUgKnR5cGUsIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lKSB7 Ci0gICAgIGlmICh2YWx1ZSA9PSBOVUxMKSB7Ci0gICAgICAgICBBc3NlcnRQb3MoY3VycmVudFBv cywgbS0+ZXJyb3JDb3VudCA+IDApOwotICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgIH0KLSAK LS0gICAgaWYgKG5hbWUgPT0gTlVMTCkKLS0gICAgICAgIG5hbWUgPSBMTFZNR2V0TmFtZSh2YWx1 ZSwgIl90cnVuYyIpOwotLQotICAgICAvLyBUT0RPOiB3ZSBzaG91bGQgcHJvYmFibHkgaGFuZGxl IHRoZSBhcnJheSBjYXNlIGFzIGluCi0gICAgIC8vIGUuZy4gQml0Q2FzdEluc3QoKSwgYnV0IHdl IGRvbid0IGN1cnJlbnRseSBuZWVkIHRoYXQgZnVuY3Rpb25hbGl0eQotLSAgICBsbHZtOjpJbnN0 cnVjdGlvbiAqaW5zdCA9IG5ldyBsbHZtOjpUcnVuY0luc3QodmFsdWUsIHR5cGUsIG5hbWUsIGJi bG9jayk7Ci0rICAgIGxsdm06Okluc3RydWN0aW9uICppbnN0ID0gbmV3IGxsdm06OlRydW5jSW5z dCgKLSsgICAgICAgIHZhbHVlLCB0eXBlLCBuYW1lLmlzVHJpdmlhbGx5RW1wdHkoKSA/IGxsdm06 OlR3aW5lKHZhbHVlLT5nZXROYW1lKCkpICsgIl90cnVuYyIgOiBuYW1lLCBiYmxvY2spOwotICAg ICBBZGREZWJ1Z1BvcyhpbnN0KTsKLSAgICAgcmV0dXJuIGluc3Q7Ci0gfQotIAotIGxsdm06Oklu c3RydWN0aW9uICpGdW5jdGlvbkVtaXRDb250ZXh0OjpDYXN0SW5zdChsbHZtOjpJbnN0cnVjdGlv bjo6Q2FzdE9wcyBvcCwgbGx2bTo6VmFsdWUgKnZhbHVlLCBsbHZtOjpUeXBlICp0eXBlLAotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFy ICpuYW1lKSB7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lKSB7Ci0gICAgIGlmICh2YWx1ZSA9PSBOVUxMKSB7 Ci0gICAgICAgICBBc3NlcnRQb3MoY3VycmVudFBvcywgbS0+ZXJyb3JDb3VudCA+IDApOwotICAg ICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgIH0KLSAKLS0gICAgaWYgKG5hbWUgPT0gTlVMTCkKLS0g ICAgICAgIG5hbWUgPSBMTFZNR2V0TmFtZSh2YWx1ZSwgIl9jYXN0Iik7Ci0tCi0gICAgIC8vIFRP RE86IHdlIHNob3VsZCBwcm9iYWJseSBoYW5kbGUgdGhlIGFycmF5IGNhc2UgYXMgaW4KLSAgICAg Ly8gZS5nLiBCaXRDYXN0SW5zdCgpLCBidXQgd2UgZG9uJ3QgY3VycmVudGx5IG5lZWQgdGhhdCBm dW5jdGlvbmFsaXR5Ci0tICAgIGxsdm06Okluc3RydWN0aW9uICppbnN0ID0gbGx2bTo6Q2FzdElu c3Q6OkNyZWF0ZShvcCwgdmFsdWUsIHR5cGUsIG5hbWUsIGJibG9jayk7Ci0rICAgIGxsdm06Oklu c3RydWN0aW9uICppbnN0ID0gbGx2bTo6Q2FzdEluc3Q6OkNyZWF0ZSgKLSsgICAgICAgIG9wLCB2 YWx1ZSwgdHlwZSwgbmFtZS5pc1RyaXZpYWxseUVtcHR5KCkgPyBsbHZtOjpUd2luZSh2YWx1ZS0+ Z2V0TmFtZSgpKSArICJfY2FzdCIgOiBuYW1lLCBiYmxvY2spOwotICAgICBBZGREZWJ1Z1Bvcyhp bnN0KTsKLSAgICAgcmV0dXJuIGluc3Q7Ci0gfQotIAotLWxsdm06Okluc3RydWN0aW9uICpGdW5j dGlvbkVtaXRDb250ZXh0OjpGUENhc3RJbnN0KGxsdm06OlZhbHVlICp2YWx1ZSwgbGx2bTo6VHlw ZSAqdHlwZSwgY29uc3QgY2hhciAqbmFtZSkgewotK2xsdm06Okluc3RydWN0aW9uICpGdW5jdGlv bkVtaXRDb250ZXh0OjpGUENhc3RJbnN0KGxsdm06OlZhbHVlICp2YWx1ZSwgbGx2bTo6VHlwZSAq dHlwZSwgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUpIHsKLSAgICAgaWYgKHZhbHVlID09IE5VTEwp IHsKLSAgICAgICAgIEFzc2VydFBvcyhjdXJyZW50UG9zLCBtLT5lcnJvckNvdW50ID4gMCk7Ci0g ICAgICAgICByZXR1cm4gTlVMTDsKLSAgICAgfQotIAotLSAgICBpZiAobmFtZSA9PSBOVUxMKQot LSAgICAgICAgbmFtZSA9IExMVk1HZXROYW1lKHZhbHVlLCAiX2Nhc3QiKTsKLS0KLSAgICAgLy8g VE9ETzogd2Ugc2hvdWxkIHByb2JhYmx5IGhhbmRsZSB0aGUgYXJyYXkgY2FzZSBhcyBpbgotICAg ICAvLyBlLmcuIEJpdENhc3RJbnN0KCksIGJ1dCB3ZSBkb24ndCBjdXJyZW50bHkgbmVlZCB0aGF0 IGZ1bmN0aW9uYWxpdHkKLS0gICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmluc3QgPSBsbHZtOjpDYXN0 SW5zdDo6Q3JlYXRlRlBDYXN0KHZhbHVlLCB0eXBlLCBuYW1lLCBiYmxvY2spOwotKyAgICBsbHZt OjpJbnN0cnVjdGlvbiAqaW5zdCA9IGxsdm06OkNhc3RJbnN0OjpDcmVhdGVGUENhc3QoCi0rICAg ICAgICB2YWx1ZSwgdHlwZSwgbmFtZS5pc1RyaXZpYWxseUVtcHR5KCkgPyBsbHZtOjpUd2luZSh2 YWx1ZS0+Z2V0TmFtZSgpKSArICJfY2FzdCIgOiBuYW1lLCBiYmxvY2spOwotICAgICBBZGREZWJ1 Z1BvcyhpbnN0KTsKLSAgICAgcmV0dXJuIGluc3Q7Ci0gfQotIAotLWxsdm06Okluc3RydWN0aW9u ICpGdW5jdGlvbkVtaXRDb250ZXh0OjpTRXh0SW5zdChsbHZtOjpWYWx1ZSAqdmFsdWUsIGxsdm06 OlR5cGUgKnR5cGUsIGNvbnN0IGNoYXIgKm5hbWUpIHsKLStsbHZtOjpJbnN0cnVjdGlvbiAqRnVu Y3Rpb25FbWl0Q29udGV4dDo6U0V4dEluc3QobGx2bTo6VmFsdWUgKnZhbHVlLCBsbHZtOjpUeXBl ICp0eXBlLCBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSkgewotICAgICBpZiAodmFsdWUgPT0gTlVM TCkgewotICAgICAgICAgQXNzZXJ0UG9zKGN1cnJlbnRQb3MsIG0tPmVycm9yQ291bnQgPiAwKTsK LSAgICAgICAgIHJldHVybiBOVUxMOwotICAgICB9Ci0gCi0tICAgIGlmIChuYW1lID09IE5VTEwp Ci0tICAgICAgICBuYW1lID0gTExWTUdldE5hbWUodmFsdWUsICJfc2V4dCIpOwotLQotICAgICAv LyBUT0RPOiB3ZSBzaG91bGQgcHJvYmFibHkgaGFuZGxlIHRoZSBhcnJheSBjYXNlIGFzIGluCi0g ICAgIC8vIGUuZy4gQml0Q2FzdEluc3QoKSwgYnV0IHdlIGRvbid0IGN1cnJlbnRseSBuZWVkIHRo YXQgZnVuY3Rpb25hbGl0eQotLSAgICBsbHZtOjpJbnN0cnVjdGlvbiAqaW5zdCA9IG5ldyBsbHZt OjpTRXh0SW5zdCh2YWx1ZSwgdHlwZSwgbmFtZSwgYmJsb2NrKTsKLSsgICAgbGx2bTo6SW5zdHJ1 Y3Rpb24gKmluc3QgPSBuZXcgbGx2bTo6U0V4dEluc3QoCi0rICAgICAgICB2YWx1ZSwgdHlwZSwg bmFtZS5pc1RyaXZpYWxseUVtcHR5KCkgPyBsbHZtOjpUd2luZSh2YWx1ZS0+Z2V0TmFtZSgpKSAr ICJfc2V4dCIgOiBuYW1lLCBiYmxvY2spOwotICAgICBBZGREZWJ1Z1BvcyhpbnN0KTsKLSAgICAg cmV0dXJuIGluc3Q7Ci0gfQotIAotLWxsdm06Okluc3RydWN0aW9uICpGdW5jdGlvbkVtaXRDb250 ZXh0OjpaRXh0SW5zdChsbHZtOjpWYWx1ZSAqdmFsdWUsIGxsdm06OlR5cGUgKnR5cGUsIGNvbnN0 IGNoYXIgKm5hbWUpIHsKLStsbHZtOjpJbnN0cnVjdGlvbiAqRnVuY3Rpb25FbWl0Q29udGV4dDo6 WkV4dEluc3QobGx2bTo6VmFsdWUgKnZhbHVlLCBsbHZtOjpUeXBlICp0eXBlLCBjb25zdCBsbHZt OjpUd2luZSAmbmFtZSkgewotICAgICBpZiAodmFsdWUgPT0gTlVMTCkgewotICAgICAgICAgQXNz ZXJ0UG9zKGN1cnJlbnRQb3MsIG0tPmVycm9yQ291bnQgPiAwKTsKLSAgICAgICAgIHJldHVybiBO VUxMOwotICAgICB9Ci0gCi0tICAgIGlmIChuYW1lID09IE5VTEwpCi0tICAgICAgICBuYW1lID0g TExWTUdldE5hbWUodmFsdWUsICJfemV4dCIpOwotLQotICAgICAvLyBUT0RPOiB3ZSBzaG91bGQg cHJvYmFibHkgaGFuZGxlIHRoZSBhcnJheSBjYXNlIGFzIGluCi0gICAgIC8vIGUuZy4gQml0Q2Fz dEluc3QoKSwgYnV0IHdlIGRvbid0IGN1cnJlbnRseSBuZWVkIHRoYXQgZnVuY3Rpb25hbGl0eQot LSAgICBsbHZtOjpJbnN0cnVjdGlvbiAqaW5zdCA9IG5ldyBsbHZtOjpaRXh0SW5zdCh2YWx1ZSwg dHlwZSwgbmFtZSwgYmJsb2NrKTsKLSsgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmluc3QgPSBuZXcg bGx2bTo6WkV4dEluc3QoCi0rICAgICAgICB2YWx1ZSwgdHlwZSwgbmFtZS5pc1RyaXZpYWxseUVt cHR5KCkgPyBsbHZtOjpUd2luZSh2YWx1ZS0+Z2V0TmFtZSgpKSArICJfemV4dCIgOiBuYW1lLCBi YmxvY2spOwotICAgICBBZGREZWJ1Z1BvcyhpbnN0KTsKLSAgICAgcmV0dXJuIGluc3Q7Ci0gfQot QEAgLTE5MTMsMTQgKzE5MDEsMTUgQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6 OmFwcGx5VmFyeWluZ0dFUChsbHZtOjpWYWx1ZSAqYmFzZVB0ciwgbGx2bTo6VmEKLSAgICAgICAg IHNjYWxlID0gU21lYXJVbmlmb3JtKHNjYWxlKTsKLSAgICAgICAgIEFzc2VydChpbmRleCAhPSBO VUxMKTsKLSAgICAgICAgIC8vIG9mZnNldCA9IGluZGV4ICogc2NhbGUKLS0gICAgICAgIG9mZnNl dCA9IEJpbmFyeU9wZXJhdG9yKGxsdm06Okluc3RydWN0aW9uOjpNdWwsIHNjYWxlLCBpbmRleCwg TExWTUdldE5hbWUoIm11bCIsIHNjYWxlLCBpbmRleCkpOwotKyAgICAgICAgb2Zmc2V0ID0gQmlu YXJ5T3BlcmF0b3IobGx2bTo6SW5zdHJ1Y3Rpb246Ok11bCwgc2NhbGUsIGluZGV4LAotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsbHZtOjpUd2luZSgibXVsXyIpICsgc2NhbGUt PmdldE5hbWUoKSkgKyAiXyIpICsgaW5kZXgtPmdldE5hbWUoKSk7Ci0gICAgIH0KLSAKLSAgICAg Ly8gRm9yIDY0LWJpdCB0YXJnZXRzLCBpZiB3ZSd2ZSBiZWVuIGRvaW5nIG91ciBvZmZzZXQgY2Fs Y3VsYXRpb25zIGluCi0gICAgIC8vIDMyIGJpdHMsIHdlIHN0aWxsIGhhdmUgdG8gY29udmVydCB0 byBhIDY0LWJpdCB2YWx1ZSBiZWZvcmUgd2UKLSAgICAgLy8gYWN0dWFsbHkgYWRkIHRoZSBvZmZz ZXQgdG8gdGhlIHBvaW50ZXIuCi0gICAgIGlmIChnLT50YXJnZXQtPmlzMzJCaXQoKSA9PSBmYWxz ZSAmJiBnLT5vcHQuZm9yY2UzMkJpdEFkZHJlc3NpbmcgPT0gdHJ1ZSkKLS0gICAgICAgIG9mZnNl dCA9IFNFeHRJbnN0KG9mZnNldCwgTExWTVR5cGVzOjpJbnQ2NFZlY3RvclR5cGUsIExMVk1HZXRO YW1lKG9mZnNldCwgIl90b182NCIpKTsKLSsgICAgICAgIG9mZnNldCA9IFNFeHRJbnN0KG9mZnNl dCwgTExWTVR5cGVzOjpJbnQ2NFZlY3RvclR5cGUsIGxsdm06OlR3aW5lKG9mZnNldC0+Z2V0TmFt ZSgpKSArICJfdG9fNjQiKTsKLSAKLSAgICAgLy8gU21lYXIgb3V0IHRoZSBwb2ludGVyIHRvIGJl IHZhcnlpbmc7IGVpdGhlciB0aGUgYmFzZSBwb2ludGVyIG9yIHRoZQotICAgICAvLyBpbmRleCBt dXN0IGJlIHZhcnlpbmcgZm9yIHRoaXMgbWV0aG9kIHRvIGJlIGNhbGxlZC4KLUBAIC0xOTI5LDcg KzE5MTgsNyBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6YXBwbHlWYXJ5aW5n R0VQKGxsdm06OlZhbHVlICpiYXNlUHRyLCBsbHZtOjpWYQotICAgICBsbHZtOjpWYWx1ZSAqdmFy eWluZ1B0ciA9IGJhc2VJc1VuaWZvcm0gPyBTbWVhclVuaWZvcm0oYmFzZVB0cikgOiBiYXNlUHRy OwotIAotICAgICAvLyBuZXdQdHIgPSBwdHIgKyBvZmZzZXQKLS0gICAgcmV0dXJuIEJpbmFyeU9w ZXJhdG9yKGxsdm06Okluc3RydWN0aW9uOjpBZGQsIHZhcnlpbmdQdHIsIG9mZnNldCwgTExWTUdl dE5hbWUoYmFzZVB0ciwgIl9vZmZzZXQiKSk7Ci0rICAgIHJldHVybiBCaW5hcnlPcGVyYXRvcihs bHZtOjpJbnN0cnVjdGlvbjo6QWRkLCB2YXJ5aW5nUHRyLCBvZmZzZXQsIGxsdm06OlR3aW5lKGJh c2VQdHItPmdldE5hbWUoKSkgKyAiX29mZnNldCIpOwotIH0KLSAKLSB2b2lkIEZ1bmN0aW9uRW1p dENvbnRleHQ6Ok1hdGNoSW50ZWdlclR5cGVzKGxsdm06OlZhbHVlICoqdjAsIGxsdm06OlZhbHVl ICoqdjEpIHsKLUBAIC0yMDA2LDEzICsxOTk1LDEzIEBAIGxsdm06OlZhbHVlICpGdW5jdGlvbkVt aXRDb250ZXh0OjpNYWtlU2xpY2VQb2ludGVyKGxsdm06OlZhbHVlICpwdHIsIGxsdm06OlZhbHVl Ci0gICAgIGxsdm06OlN0cnVjdFR5cGUgKnN0ID0gbGx2bTo6U3RydWN0VHlwZTo6Z2V0KCpnLT5j dHgsIGVsdFR5cGVzKTsKLSAKLSAgICAgbGx2bTo6VmFsdWUgKnJldCA9IGxsdm06OlVuZGVmVmFs dWU6OmdldChzdCk7Ci0tICAgIHJldCA9IEluc2VydEluc3QocmV0LCBwdHIsIDAsIExMVk1HZXRO YW1lKHJldCwgIl9zbGljZV9wdHIiKSk7Ci0tICAgIHJldCA9IEluc2VydEluc3QocmV0LCBvZmZz ZXQsIDEsIExMVk1HZXROYW1lKHJldCwgIl9zbGljZV9vZmZzZXQiKSk7Ci0rICAgIHJldCA9IElu c2VydEluc3QocmV0LCBwdHIsIDAsIGxsdm06OlR3aW5lKHJldC0+Z2V0TmFtZSgpKSArICJfc2xp Y2VfcHRyIik7Ci0rICAgIHJldCA9IEluc2VydEluc3QocmV0LCBvZmZzZXQsIDEsIGxsdm06OlR3 aW5lKHJldC0+Z2V0TmFtZSgpKSArICJfc2xpY2Vfb2Zmc2V0Iik7Ci0gICAgIHJldHVybiByZXQ7 Ci0gfQotIAotIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpHZXRFbGVtZW50UHRy SW5zdChsbHZtOjpWYWx1ZSAqYmFzZVB0ciwgbGx2bTo6VmFsdWUgKmluZGV4LCBjb25zdCBUeXBl ICpwdHJSZWZUeXBlLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBjb25zdCBjaGFyICpuYW1lKSB7Ci0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lKSB7Ci0g ICAgIGlmIChiYXNlUHRyID09IE5VTEwgfHwgaW5kZXggPT0gTlVMTCkgewotICAgICAgICAgQXNz ZXJ0UG9zKGN1cnJlbnRQb3MsIG0tPmVycm9yQ291bnQgPiAwKTsKLSAgICAgICAgIHJldHVybiBO VUxMOwotQEAgLTIwNjUsOCArMjA1NCw4IEBAIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250 ZXh0OjpHZXRFbGVtZW50UHRySW5zdChsbHZtOjpWYWx1ZSAqYmFzZVB0ciwgbGx2bTo6Ci0gICAg ICAgICAvLyB1bmlmb3JtLCBzbyBqdXN0IGVtaXQgdGhlIHJlZ3VsYXIgTExWTSBHRVAgaW5zdHJ1 Y3Rpb24KLSAgICAgICAgIGxsdm06OlZhbHVlICppbmRbMV0gPSB7aW5kZXh9OwotICAgICAgICAg bGx2bTo6QXJyYXlSZWY8bGx2bTo6VmFsdWUgKj4gYXJyYXlSZWYoJmluZFswXSwgJmluZFsxXSk7 Ci0tICAgICAgICBsbHZtOjpJbnN0cnVjdGlvbiAqaW5zdCA9Ci0tICAgICAgICAgICAgbGx2bTo6 R2V0RWxlbWVudFB0ckluc3Q6OkNyZWF0ZShQVFlQRShiYXNlUHRyKSwgYmFzZVB0ciwgYXJyYXlS ZWYsIG5hbWUgPyBuYW1lIDogImdlcCIsIGJibG9jayk7Ci0rICAgICAgICBsbHZtOjpJbnN0cnVj dGlvbiAqaW5zdCA9IGxsdm06OkdldEVsZW1lbnRQdHJJbnN0OjpDcmVhdGUoUFRZUEUoYmFzZVB0 ciksIGJhc2VQdHIsIGFycmF5UmVmLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUuaXNUcml2aWFsbHlFbXB0eSgp ID8gImdlcCIgOiBuYW1lLCBiYmxvY2spOwotICAgICAgICAgQWRkRGVidWdQb3MoaW5zdCk7Ci0g ICAgICAgICByZXR1cm4gaW5zdDsKLSAgICAgfSBlbHNlCi1AQCAtMjA3NCw3ICsyMDYzLDcgQEAg bGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkdldEVsZW1lbnRQdHJJbnN0KGxsdm06 OlZhbHVlICpiYXNlUHRyLCBsbHZtOjoKLSB9Ci0gCi0gbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1p dENvbnRleHQ6OkdldEVsZW1lbnRQdHJJbnN0KGxsdm06OlZhbHVlICpiYXNlUHRyLCBsbHZtOjpW YWx1ZSAqaW5kZXgwLCBsbHZtOjpWYWx1ZSAqaW5kZXgxLAotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBUeXBlICpwdHJSZWZUeXBlLCBj b25zdCBjaGFyICpuYW1lKSB7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGNvbnN0IFR5cGUgKnB0clJlZlR5cGUsIGNvbnN0IGxsdm06OlR3aW5l ICZuYW1lKSB7Ci0gICAgIGlmIChiYXNlUHRyID09IE5VTEwgfHwgaW5kZXgwID09IE5VTEwgfHwg aW5kZXgxID09IE5VTEwpIHsKLSAgICAgICAgIEFzc2VydFBvcyhjdXJyZW50UG9zLCBtLT5lcnJv ckNvdW50ID4gMCk7Ci0gICAgICAgICByZXR1cm4gTlVMTDsKLUBAIC0yMTE0LDggKzIxMDMsOCBA QCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6R2V0RWxlbWVudFB0ckluc3QobGx2 bTo6VmFsdWUgKmJhc2VQdHIsIGxsdm06OgotICAgICAgICAgLy8gdW5pZm9ybSwgc28ganVzdCBl bWl0IHRoZSByZWd1bGFyIExMVk0gR0VQIGluc3RydWN0aW9uCi0gICAgICAgICBsbHZtOjpWYWx1 ZSAqaW5kaWNlc1syXSA9IHtpbmRleDAsIGluZGV4MX07Ci0gICAgICAgICBsbHZtOjpBcnJheVJl ZjxsbHZtOjpWYWx1ZSAqPiBhcnJheVJlZigmaW5kaWNlc1swXSwgJmluZGljZXNbMl0pOwotLSAg ICAgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmluc3QgPQotLSAgICAgICAgICAgIGxsdm06OkdldEVs ZW1lbnRQdHJJbnN0OjpDcmVhdGUoUFRZUEUoYmFzZVB0ciksIGJhc2VQdHIsIGFycmF5UmVmLCBu YW1lID8gbmFtZSA6ICJnZXAiLCBiYmxvY2spOwotKyAgICAgICAgbGx2bTo6SW5zdHJ1Y3Rpb24g Kmluc3QgPSBsbHZtOjpHZXRFbGVtZW50UHRySW5zdDo6Q3JlYXRlKFBUWVBFKGJhc2VQdHIpLCBi YXNlUHRyLCBhcnJheVJlZiwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lLmlzVHJpdmlhbGx5RW1wdHkoKSA/ICJn ZXAiIDogbmFtZSwgYmJsb2NrKTsKLSAgICAgICAgIEFkZERlYnVnUG9zKGluc3QpOwotICAgICAg ICAgcmV0dXJuIGluc3Q7Ci0gICAgIH0gZWxzZSB7Ci1AQCAtMjEzOCw3ICsyMTI3LDcgQEAgbGx2 bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkdldEVsZW1lbnRQdHJJbnN0KGxsdm06OlZh bHVlICpiYXNlUHRyLCBsbHZtOjoKLSB9Ci0gCi0gbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENv bnRleHQ6OkFkZEVsZW1lbnRPZmZzZXQobGx2bTo6VmFsdWUgKmZ1bGxCYXNlUHRyLCBpbnQgZWxl bWVudE51bSwgY29uc3QgVHlwZSAqcHRyUmVmVHlwZSwKLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpuYW1lLCBjb25zdCBQb2lu dGVyVHlwZSAqKnJlc3VsdFB0clR5cGUpIHsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSwgY29uc3QgUG9p bnRlclR5cGUgKipyZXN1bHRQdHJUeXBlKSB7Ci0gICAgIGlmIChyZXN1bHRQdHJUeXBlICE9IE5V TEwpCi0gICAgICAgICBBc3NlcnRQb3MoY3VycmVudFBvcywgcHRyUmVmVHlwZSAhPSBOVUxMKTsK LSAKLUBAIC0yMTk1LDggKzIxODQsOCBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4 dDo6QWRkRWxlbWVudE9mZnNldChsbHZtOjpWYWx1ZSAqZnVsbEJhc2VQdHIsIGludAotICAgICAg ICAgLy8gSWYgdGhlIHBvaW50ZXIgaXMgdW5pZm9ybSwgd2UgY2FuIHVzZSB0aGUgcmVndWxhciBM TFZNIEdFUC4KLSAgICAgICAgIGxsdm06OlZhbHVlICpvZmZzZXRzWzJdID0ge0xMVk1JbnQzMigw KSwgTExWTUludDMyKGVsZW1lbnROdW0pfTsKLSAgICAgICAgIGxsdm06OkFycmF5UmVmPGxsdm06 OlZhbHVlICo+IGFycmF5UmVmKCZvZmZzZXRzWzBdLCAmb2Zmc2V0c1syXSk7Ci0tICAgICAgICBy ZXN1bHRQdHIgPQotLSAgICAgICAgICAgIGxsdm06OkdldEVsZW1lbnRQdHJJbnN0OjpDcmVhdGUo UFRZUEUoYmFzZVB0ciksIGJhc2VQdHIsIGFycmF5UmVmLCBuYW1lID8gbmFtZSA6ICJzdHJ1Y3Rf b2Zmc2V0IiwgYmJsb2NrKTsKLSsgICAgICAgIHJlc3VsdFB0ciA9IGxsdm06OkdldEVsZW1lbnRQ dHJJbnN0OjpDcmVhdGUoUFRZUEUoYmFzZVB0ciksIGJhc2VQdHIsIGFycmF5UmVmLAotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lLmlzVHJp dmlhbGx5RW1wdHkoKSA/ICJzdHJ1Y3Rfb2Zmc2V0IiA6IG5hbWUsIGJibG9jayk7Ci0gICAgIH0g ZWxzZSB7Ci0gICAgICAgICAvLyBPdGhlcndpc2UgZG8gdGhlIG1hdGggdG8gZmluZCB0aGUgb2Zm c2V0IGFuZCBhZGQgaXQgdG8gdGhlIGdpdmVuCi0gICAgICAgICAvLyB2YXJ5aW5nIHBvaW50ZXJz Ci1AQCAtMjIzNyw3ICsyMjI2LDcgQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6 OkFkZEVsZW1lbnRPZmZzZXQobGx2bTo6VmFsdWUgKmZ1bGxCYXNlUHRyLCBpbnQKLSAgICAgICAg IHJldHVybiByZXN1bHRQdHI7Ci0gfQotIAotLWxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250 ZXh0OjpTd2l0Y2hCb29sU2l6ZShsbHZtOjpWYWx1ZSAqdmFsdWUsIGxsdm06OlR5cGUgKnRvVHlw ZSwgY29uc3QgY2hhciAqbmFtZSkgewotK2xsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0 OjpTd2l0Y2hCb29sU2l6ZShsbHZtOjpWYWx1ZSAqdmFsdWUsIGxsdm06OlR5cGUgKnRvVHlwZSwg Y29uc3QgbGx2bTo6VHdpbmUgJm5hbWUpIHsKLSAgICAgaWYgKCh2YWx1ZSA9PSBOVUxMKSB8fCAo dG9UeXBlID09IE5VTEwpKSB7Ci0gICAgICAgICBBc3NlcnRQb3MoY3VycmVudFBvcywgbS0+ZXJy b3JDb3VudCA+IDApOwotICAgICAgICAgcmV0dXJuIE5VTEw7Ci1AQCAtMjI0OCwyMCArMjIzNywx OCBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6U3dpdGNoQm9vbFNpemUobGx2 bTo6VmFsdWUgKnZhbHVlLCBsbHZtOjpUeXBlCi0gICAgIGxsdm06OlZhbHVlICpuZXdCb29sID0g dmFsdWU7Ci0gICAgIGlmIChnLT50YXJnZXQtPmdldERhdGFMYXlvdXQoKS0+Z2V0VHlwZVNpemVJ bkJpdHMoZnJvbVR5cGUpID4KLSAgICAgICAgIGctPnRhcmdldC0+Z2V0RGF0YUxheW91dCgpLT5n ZXRUeXBlU2l6ZUluQml0cyh0b1R5cGUpKSB7Ci0tICAgICAgICBpZiAobmFtZSA9PSBOVUxMKQot LSAgICAgICAgICAgIG5hbWUgPSBMTFZNR2V0TmFtZSh2YWx1ZSwgIl9zd2l0Y2hCb29sIik7Ci0t ICAgICAgICBuZXdCb29sID0gVHJ1bmNJbnN0KHZhbHVlLCB0b1R5cGUsIG5hbWUpOwotKyAgICAg ICAgbmV3Qm9vbCA9Ci0rICAgICAgICAgICAgVHJ1bmNJbnN0KHZhbHVlLCB0b1R5cGUsIG5hbWUu aXNUcml2aWFsbHlFbXB0eSgpID8gKGxsdm06OlR3aW5lKHZhbHVlLT5nZXROYW1lKCkpICsgIl9z d2l0Y2hCb29sIikgOiBuYW1lKTsKLSAgICAgfSBlbHNlIGlmIChnLT50YXJnZXQtPmdldERhdGFM YXlvdXQoKS0+Z2V0VHlwZVNpemVJbkJpdHMoZnJvbVR5cGUpIDwKLSAgICAgICAgICAgICAgICBn LT50YXJnZXQtPmdldERhdGFMYXlvdXQoKS0+Z2V0VHlwZVNpemVJbkJpdHModG9UeXBlKSkgewot LSAgICAgICAgaWYgKG5hbWUgPT0gTlVMTCkKLS0gICAgICAgICAgICBuYW1lID0gTExWTUdldE5h bWUodmFsdWUsICJfc3dpdGNoQm9vbCIpOwotLSAgICAgICAgbmV3Qm9vbCA9IFNFeHRJbnN0KHZh bHVlLCB0b1R5cGUsIG5hbWUpOwotKyAgICAgICAgbmV3Qm9vbCA9Ci0rICAgICAgICAgICAgU0V4 dEluc3QodmFsdWUsIHRvVHlwZSwgbmFtZS5pc1RyaXZpYWxseUVtcHR5KCkgPyAobGx2bTo6VHdp bmUodmFsdWUtPmdldE5hbWUoKSkgKyAiX3N3aXRjaEJvb2wiKSA6IG5hbWUpOwotICAgICB9Ci0g Ci0gICAgIHJldHVybiBuZXdCb29sOwotIH0KLSAKLS1sbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0 Q29udGV4dDo6TG9hZEluc3QobGx2bTo6VmFsdWUgKnB0ciwgY29uc3QgVHlwZSAqdHlwZSwgY29u c3QgY2hhciAqbmFtZSkgewotK2xsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpMb2Fk SW5zdChsbHZtOjpWYWx1ZSAqcHRyLCBjb25zdCBUeXBlICp0eXBlLCBjb25zdCBsbHZtOjpUd2lu ZSAmbmFtZSkgewotICAgICBpZiAocHRyID09IE5VTEwpIHsKLSAgICAgICAgIEFzc2VydFBvcyhj dXJyZW50UG9zLCBtLT5lcnJvckNvdW50ID4gMCk7Ci0gICAgICAgICByZXR1cm4gTlVMTDsKLUBA IC0yMjcwLDEzICsyMjU3LDEzIEBAIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpM b2FkSW5zdChsbHZtOjpWYWx1ZSAqcHRyLCBjb25zdCBUeXBlICp0eXBlLCBjCi0gICAgIGxsdm06 OlBvaW50ZXJUeXBlICpwdCA9IGxsdm06OmR5bl9jYXN0PGxsdm06OlBvaW50ZXJUeXBlPihwdHIt PmdldFR5cGUoKSk7Ci0gICAgIEFzc2VydFBvcyhjdXJyZW50UG9zLCBwdCAhPSBOVUxMKTsKLSAK LS0gICAgaWYgKG5hbWUgPT0gTlVMTCkKLS0gICAgICAgIG5hbWUgPSBMTFZNR2V0TmFtZShwdHIs ICJfbG9hZCIpOwotLQotICNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTFfMAot LSAgICBsbHZtOjpMb2FkSW5zdCAqaW5zdCA9IG5ldyBsbHZtOjpMb2FkSW5zdChwdC0+Z2V0UG9p bnRlckVsZW1lbnRUeXBlKCksIHB0ciwgbmFtZSwgYmJsb2NrKTsKLSsgICAgbGx2bTo6TG9hZElu c3QgKmluc3QgPQotKyAgICAgICAgbmV3IGxsdm06OkxvYWRJbnN0KHB0LT5nZXRQb2ludGVyRWxl bWVudFR5cGUoKSwgcHRyLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUuaXNUcml2 aWFsbHlFbXB0eSgpID8gKGxsdm06OlR3aW5lKHB0ci0+Z2V0TmFtZSgpKSArICJfbG9hZCIpIDog bmFtZSwgYmJsb2NrKTsKLSAjZWxzZQotLSAgICBsbHZtOjpMb2FkSW5zdCAqaW5zdCA9IG5ldyBs bHZtOjpMb2FkSW5zdChwdHIsIG5hbWUsIGJibG9jayk7Ci0rICAgIGxsdm06OkxvYWRJbnN0ICpp bnN0ID0KLSsgICAgICAgIG5ldyBsbHZtOjpMb2FkSW5zdChwdHIsIG5hbWUuaXNUcml2aWFsbHlF bXB0eSgpID8gKGxsdm06OlR3aW5lKHB0ci0+Z2V0TmFtZSgpKSArICJfbG9hZCIpIDogbmFtZSwg YmJsb2NrKTsKLSAjZW5kaWYKLSAKLSAgICAgaWYgKGctPm9wdC5mb3JjZUFsaWduZWRNZW1vcnkg JiYgbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6VmVjdG9yVHlwZT4ocHQtPmdldEVsZW1lbnRUeXBlKCkp KSB7Ci1AQCAtMjMwNyw4ICsyMjk0LDggQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRl eHQ6OkxvYWRJbnN0KGxsdm06OlZhbHVlICpwdHIsIGNvbnN0IFR5cGUgKnR5cGUsIGMKLSBzdGF0 aWMgbGx2bTo6VmFsdWUgKmxGaW5hbFNsaWNlT2Zmc2V0KEZ1bmN0aW9uRW1pdENvbnRleHQgKmN0 eCwgbGx2bTo6VmFsdWUgKnB0ciwgY29uc3QgUG9pbnRlclR5cGUgKipwdHJUeXBlKSB7Ci0gICAg IEFzc2VydChDYXN0VHlwZTxQb2ludGVyVHlwZT4oKnB0clR5cGUpICE9IE5VTEwpOwotIAotLSAg ICBsbHZtOjpWYWx1ZSAqc2xpY2VQdHIgPSBjdHgtPkV4dHJhY3RJbnN0KHB0ciwgMCwgTExWTUdl dE5hbWUocHRyLCAiX3B0ciIpKTsKLS0gICAgbGx2bTo6VmFsdWUgKnNsaWNlT2Zmc2V0ID0gY3R4 LT5FeHRyYWN0SW5zdChwdHIsIDEsIExMVk1HZXROYW1lKHB0ciwgIl9vZmZzZXQiKSk7Ci0rICAg IGxsdm06OlZhbHVlICpzbGljZVB0ciA9IGN0eC0+RXh0cmFjdEluc3QocHRyLCAwLCBsbHZtOjpU d2luZShwdHItPmdldE5hbWUoKSkgKyAiX3B0ciIpOwotKyAgICBsbHZtOjpWYWx1ZSAqc2xpY2VP ZmZzZXQgPSBjdHgtPkV4dHJhY3RJbnN0KHB0ciwgMSwgbGx2bTo6VHdpbmUocHRyLT5nZXROYW1l KCkpICsgIl9vZmZzZXQiKTsKLSAKLSAgICAgLy8gc2xpY2VQdHIgc2hvdWxkIGJlIGEgcG9pbnRl ciB0byBhbiBzb2Etd2lkdGggd2lkZSBhcnJheSBvZiB0aGUKLSAgICAgLy8gZmluYWwgYXRvbWlj L2VudW0vcG9pbnRlciB0eXBlCi1AQCAtMjMyNywxNCArMjMxNCwxNCBAQCBzdGF0aWMgbGx2bTo6 VmFsdWUgKmxGaW5hbFNsaWNlT2Zmc2V0KEZ1bmN0aW9uRW1pdENvbnRleHQgKmN0eCwgbGx2bTo6 VmFsdWUgKnB0cgotICAgICAgICAgc2xpY2VQdHIgPSBjdHgtPkJpdENhc3RJbnN0KHNsaWNlUHRy LCAoKnB0clR5cGUpLT5MTFZNVHlwZShnLT5jdHgpKTsKLSAKLSAgICAgLy8gQW5kIGZpbmFsbHkg aW5kZXggYmFzZWQgb24gdGhlIHNsaWNlIG9mZnNldAotLSAgICByZXR1cm4gY3R4LT5HZXRFbGVt ZW50UHRySW5zdChzbGljZVB0ciwgc2xpY2VPZmZzZXQsICpwdHJUeXBlLCBMTFZNR2V0TmFtZShz bGljZVB0ciwgIl9maW5hbF9nZXAiKSk7Ci0rICAgIHJldHVybiBjdHgtPkdldEVsZW1lbnRQdHJJ bnN0KHNsaWNlUHRyLCBzbGljZU9mZnNldCwgKnB0clR5cGUsIGxsdm06OlR3aW5lKHNsaWNlUHRy LT5nZXROYW1lKCkpICsgIl9maW5hbF9nZXAiKTsKLSB9Ci0gCi0gLyoqIFV0aWxpdHkgcm91dGlu ZSB0aGF0IGxvYWRzIGZyb20gYSB1bmlmb3JtIHBvaW50ZXIgdG8gc29hPD4gZGF0YSwKLSAgICAg cmV0dXJuaW5nIGEgcmVndWxhciB1bmlmb3JtIChub24tU09BIHJlc3VsdCkuCi0gICovCi0gbGx2 bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OmxvYWRVbmlmb3JtRnJvbVNPQShsbHZtOjpW YWx1ZSAqcHRyLCBsbHZtOjpWYWx1ZSAqbWFzaywgY29uc3QgUG9pbnRlclR5cGUgKnB0clR5cGUs Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj b25zdCBjaGFyICpuYW1lKSB7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSkgewotICAgICBjb25zdCBU eXBlICp1bmlmVHlwZSA9IHB0clR5cGUtPkdldEJhc2VUeXBlKCktPkdldEFzVW5pZm9ybVR5cGUo KTsKLSAKLSAgICAgY29uc3QgQ29sbGVjdGlvblR5cGUgKmN0ID0gQ2FzdFR5cGU8Q29sbGVjdGlv blR5cGU+KHB0clR5cGUtPkdldEJhc2VUeXBlKCkpOwotQEAgLTIzNjMsNyArMjM1MCw3IEBAIGxs dm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0Ojpsb2FkVW5pZm9ybUZyb21TT0EobGx2bTo6 VmFsdWUgKnB0ciwgbGx2bTo6VmFsCi0gfQotIAotIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRD b250ZXh0OjpMb2FkSW5zdChsbHZtOjpWYWx1ZSAqcHRyLCBsbHZtOjpWYWx1ZSAqbWFzaywgY29u c3QgVHlwZSAqcHRyUmVmVHlwZSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgY29uc3QgY2hhciAqbmFtZSwgYm9vbCBvbmVfZWxlbSkgewotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSwg Ym9vbCBvbmVfZWxlbSkgewotICAgICBpZiAocHRyID09IE5VTEwpIHsKLSAgICAgICAgIEFzc2Vy dFBvcyhjdXJyZW50UG9zLCBtLT5lcnJvckNvdW50ID4gMCk7Ci0gICAgICAgICByZXR1cm4gTlVM TDsKLUBAIC0yMzcxLDkgKzIzNTgsNiBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4 dDo6TG9hZEluc3QobGx2bTo6VmFsdWUgKnB0ciwgbGx2bTo6VmFsdWUgKm1hc2ssCi0gCi0gICAg IEFzc2VydFBvcyhjdXJyZW50UG9zLCBwdHJSZWZUeXBlICE9IE5VTEwgJiYgbWFzayAhPSBOVUxM KTsKLSAKLS0gICAgaWYgKG5hbWUgPT0gTlVMTCkKLS0gICAgICAgIG5hbWUgPSBMTFZNR2V0TmFt ZShwdHIsICJfbG9hZCIpOwotLQotICAgICBjb25zdCBQb2ludGVyVHlwZSAqcHRyVHlwZTsKLSAg ICAgY29uc3QgVHlwZSAqZWxUeXBlOwotICAgICBpZiAoQ2FzdFR5cGU8UmVmZXJlbmNlVHlwZT4o cHRyUmVmVHlwZSkgIT0gTlVMTCkgewotQEAgLTIzOTMsNyArMjM3Nyw4IEBAIGxsdm06OlZhbHVl ICpGdW5jdGlvbkVtaXRDb250ZXh0OjpMb2FkSW5zdChsbHZtOjpWYWx1ZSAqcHRyLCBsbHZtOjpW YWx1ZSAqbWFzaywKLSAKLSAgICAgaWYgKHB0clR5cGUtPklzVW5pZm9ybVR5cGUoKSkgewotICAg ICAgICAgaWYgKHB0clR5cGUtPklzU2xpY2UoKSkgewotLSAgICAgICAgICAgIHJldHVybiBsb2Fk VW5pZm9ybUZyb21TT0EocHRyLCBtYXNrLCBwdHJUeXBlLCBuYW1lKTsKLSsgICAgICAgICAgICBy ZXR1cm4gbG9hZFVuaWZvcm1Gcm9tU09BKHB0ciwgbWFzaywgcHRyVHlwZSwKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUuaXNUcml2aWFsbHlFbXB0eSgpID8gKGxs dm06OlR3aW5lKHB0ci0+Z2V0TmFtZSgpKSArICJfbG9hZCIpIDogbmFtZSk7Ci0gICAgICAgICB9 IGVsc2UgewotICAgICAgICAgICAgIC8vIEZJWE1FOiBzYW1lIGlzc3VlIGFzIGFib3ZlIGxvYWQg aW5zdCByZWdhcmRpbmcgYWxpZ25tZW50Li4uCi0gICAgICAgICAgICAgLy8KLUBAIC0yNDA1LDEx ICsyMzkwLDE1IEBAIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpMb2FkSW5zdChs bHZtOjpWYWx1ZSAqcHRyLCBsbHZtOjpWYWx1ZSAqbWFzaywKLSAgICAgICAgICAgICBjb25zdCBB dG9taWNUeXBlICphdG9taWNUeXBlID0gQ2FzdFR5cGU8QXRvbWljVHlwZT4ocHRyVHlwZS0+R2V0 QmFzZVR5cGUoKSk7Ci0gCi0gI2lmIElTUENfTExWTV9WRVJTSU9OIDw9IElTUENfTExWTV8xMF8w Ci0tICAgICAgICAgICAgbGx2bTo6TG9hZEluc3QgKmluc3QgPSBuZXcgbGx2bTo6TG9hZEluc3Qo cHRyLCBuYW1lLCBmYWxzZSAvKiBub3Qgdm9sYXRpbGUgKi8sIGJibG9jayk7Ci0rICAgICAgICAg ICAgbGx2bTo6TG9hZEluc3QgKmluc3QgPQotKyAgICAgICAgICAgICAgICBuZXcgbGx2bTo6TG9h ZEluc3QocHRyLCBuYW1lLmlzVHJpdmlhbGx5RW1wdHkoKSA/IChsbHZtOjpUd2luZShwdHItPmdl dE5hbWUoKSkgKyAiX2xvYWQiKSA6IG5hbWUsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBmYWxzZSAvKiBub3Qgdm9sYXRpbGUgKi8sIGJibG9jayk7Ci0gI2Vsc2UgLy8gTExW TSAxMS4wKwotICAgICAgICAgICAgIGxsdm06OlBvaW50ZXJUeXBlICpwdHJfdHlwZSA9IGxsdm06 OmR5bl9jYXN0PGxsdm06OlBvaW50ZXJUeXBlPihwdHItPmdldFR5cGUoKSk7Ci0gICAgICAgICAg ICAgbGx2bTo6TG9hZEluc3QgKmluc3QgPQotLSAgICAgICAgICAgICAgICBuZXcgbGx2bTo6TG9h ZEluc3QocHRyX3R5cGUtPmdldFBvaW50ZXJFbGVtZW50VHlwZSgpLCBwdHIsIG5hbWUsIGZhbHNl IC8qIG5vdCB2b2xhdGlsZSAqLywgYmJsb2NrKTsKLSsgICAgICAgICAgICAgICAgbmV3IGxsdm06 OkxvYWRJbnN0KHB0cl90eXBlLT5nZXRQb2ludGVyRWxlbWVudFR5cGUoKSwgcHRyLAotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZS5pc1RyaXZpYWxseUVtcHR5KCkgPyAo bGx2bTo6VHdpbmUocHRyLT5nZXROYW1lKCkpICsgIl9sb2FkIikgOiBuYW1lLAotKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UgLyogbm90IHZvbGF0aWxlICovLCBiYmxv Y2spOwotICNlbmRpZgotIAotICAgICAgICAgICAgIGlmIChhdG9taWNUeXBlICE9IE5VTEwgJiYg YXRvbWljVHlwZS0+SXNWYXJ5aW5nVHlwZSgpKSB7Ci1AQCAtMjQzMyw3ICsyNDIyLDggQEAgbGx2 bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkxvYWRJbnN0KGxsdm06OlZhbHVlICpwdHIs IGxsdm06OlZhbHVlICptYXNrLAotICAgICB9IGVsc2UgewotICAgICAgICAgLy8gT3RoZXJ3aXNl IHdlIHNob3VsZCBoYXZlIGEgdmFyeWluZyBwdHIgYW5kIGl0J3MgdGltZSBmb3IgYQotICAgICAg ICAgLy8gZ2F0aGVyLgotLSAgICAgICAgbGx2bTo6VmFsdWUgKmdhdGhlcl9yZXN1bHQgPSBnYXRo ZXIocHRyLCBwdHJUeXBlLCBHZXRGdWxsTWFzaygpLCBuYW1lKTsKLSsgICAgICAgIGxsdm06OlZh bHVlICpnYXRoZXJfcmVzdWx0ID0gZ2F0aGVyKHB0ciwgcHRyVHlwZSwgR2V0RnVsbE1hc2soKSwK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUuaXNUcml2 aWFsbHlFbXB0eSgpID8gKGxsdm06OlR3aW5lKHB0ci0+Z2V0TmFtZSgpKSArICJfbG9hZCIpIDog bmFtZSk7Ci0gICAgICAgICBpZiAoIW9uZV9lbGVtKQotICAgICAgICAgICAgIHJldHVybiBnYXRo ZXJfcmVzdWx0OwotIAotQEAgLTI0NTMsMTkgKzI0NDMsMTkgQEAgbGx2bTo6VmFsdWUgKkZ1bmN0 aW9uRW1pdENvbnRleHQ6OkxvYWRJbnN0KGxsdm06OlZhbHVlICpwdHIsIGxsdm06OlZhbHVlICpt YXNrLAotICAgICAgICAgLy8gV2UgY2FuIGFjdHVhbGx5IGNhbGwgZWl0aGVyIG9uZSwgc2luY2Ug Ym90aCBhcmUgaTMycyBhcyBmYXIgYXMKLSAgICAgICAgIC8vIExMVk0ncyB0eXBlIHN5c3RlbSBp cyBjb25jZXJuZWQuLi4KLSAgICAgICAgIGxsdm06OkZ1bmN0aW9uICpmbW0gPSBtbVswXS0+ZnVu Y3Rpb247Ci0tICAgICAgICBsbHZtOjpWYWx1ZSAqaW50X21hc2sgPSBDYWxsSW5zdChmbW0sIE5V TEwsIG1hc2ssIExMVk1HZXROYW1lKG1hc2ssICJfbW92bXNrIikpOwotKyAgICAgICAgbGx2bTo6 VmFsdWUgKmludF9tYXNrID0gQ2FsbEluc3QoZm1tLCBOVUxMLCBtYXNrLCBsbHZtOjpUd2luZSht YXNrLT5nZXROYW1lKCkpICsgIl9tb3Ztc2siKTsKLSAgICAgICAgIHN0ZDo6dmVjdG9yPFN5bWJv bCAqPiBsejsKLSAgICAgICAgIG0tPnN5bWJvbFRhYmxlLT5Mb29rdXBGdW5jdGlvbigiX19jb3Vu dF90cmFpbGluZ196ZXJvc19pNjQiLCAmbHopOwotICAgICAgICAgbGx2bTo6RnVuY3Rpb24gKmZs eiA9IGx6WzBdLT5mdW5jdGlvbjsKLS0gICAgICAgIGxsdm06OlZhbHVlICplbGVtX2lkeCA9IENh bGxJbnN0KGZseiwgTlVMTCwgaW50X21hc2ssIExMVk1HZXROYW1lKG1hc2ssICJfY2x6IikpOwot LSAgICAgICAgbGx2bTo6VmFsdWUgKmVsZW0gPSBsbHZtOjpFeHRyYWN0RWxlbWVudEluc3Q6OkNy ZWF0ZShnYXRoZXJfcmVzdWx0LCBlbGVtX2lkeCwKLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTExWTUdldE5hbWUoZ2F0aGVyX3Jl c3VsdCwgIl91bWFza2VkX2VsZW0iKSwgYmJsb2NrKTsKLSsgICAgICAgIGxsdm06OlZhbHVlICpl bGVtX2lkeCA9IENhbGxJbnN0KGZseiwgTlVMTCwgaW50X21hc2ssIGxsdm06OlR3aW5lKG1hc2st PmdldE5hbWUoKSkgKyAiX2NseiIpOwotKyAgICAgICAgbGx2bTo6VmFsdWUgKmVsZW0gPSBsbHZt OjpFeHRyYWN0RWxlbWVudEluc3Q6OkNyZWF0ZSgKLSsgICAgICAgICAgICBnYXRoZXJfcmVzdWx0 LCBlbGVtX2lkeCwgbGx2bTo6VHdpbmUoZ2F0aGVyX3Jlc3VsdC0+Z2V0TmFtZSgpKSArICJfdW1h c2tlZF9lbGVtIiwgYmJsb2NrKTsKLSAgICAgICAgIHJldHVybiBlbGVtOwotICAgICB9Ci0gfQot IAotIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpnYXRoZXIobGx2bTo6VmFsdWUg KnB0ciwgY29uc3QgUG9pbnRlclR5cGUgKnB0clR5cGUsIGxsdm06OlZhbHVlICptYXNrLAotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqbmFtZSkg ewotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGx2bTo6 VHdpbmUgJm5hbWUpIHsKLSAgICAgLy8gV2Ugc2hvdWxkIGhhdmUgYSB2YXJ5aW5nIHBvaW50ZXIg aWYgd2UgZ2V0IGhlcmUuLi4KLSAgICAgQXNzZXJ0UG9zKGN1cnJlbnRQb3MsIHB0clR5cGUtPklz VmFyeWluZ1R5cGUoKSk7Ci0gCi1AQCAtMjYwMiw3ICsyNTkyLDggQEAgdm9pZCBGdW5jdGlvbkVt aXRDb250ZXh0OjphZGRHU01ldGFkYXRhKGxsdm06OlZhbHVlICp2LCBTb3VyY2VQb3MgcG9zKSB7 Ci0gICAgIGluc3QtPnNldE1ldGFkYXRhKCJsYXN0X2NvbHVtbiIsIG1kKTsKLSB9Ci0gCi0tbGx2 bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkFsbG9jYUluc3QobGx2bTo6VHlwZSAqbGx2 bVR5cGUsIGNvbnN0IGNoYXIgKm5hbWUsIGludCBhbGlnbiwgYm9vbCBhdEVudHJ5QmxvY2spIHsK LStsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6QWxsb2NhSW5zdChsbHZtOjpUeXBl ICpsbHZtVHlwZSwgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUsIGludCBhbGlnbiwKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIGF0RW50cnlCbG9jaykg ewotICAgICBpZiAobGx2bVR5cGUgPT0gTlVMTCkgewotICAgICAgICAgQXNzZXJ0UG9zKGN1cnJl bnRQb3MsIG0tPmVycm9yQ291bnQgPiAwKTsKLSAgICAgICAgIHJldHVybiBOVUxMOwotQEAgLTI2 MTUsMTIgKzI2MDYsMTIgQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkFsbG9j YUluc3QobGx2bTo6VHlwZSAqbGx2bVR5cGUsIGNvbnN0IGNoYXIgKm4KLSAgICAgICAgIGxsdm06 Okluc3RydWN0aW9uICpyZXRJbnN0ID0gYWxsb2NhQmxvY2stPmdldFRlcm1pbmF0b3IoKTsKLSAg ICAgICAgIEFzc2VydFBvcyhjdXJyZW50UG9zLCByZXRJbnN0KTsKLSAgICAgICAgIHVuc2lnbmVk IEFTID0gbGx2bUZ1bmN0aW9uLT5nZXRQYXJlbnQoKS0+Z2V0RGF0YUxheW91dCgpLmdldEFsbG9j YUFkZHJTcGFjZSgpOwotLSAgICAgICAgaW5zdCA9IG5ldyBsbHZtOjpBbGxvY2FJbnN0KGxsdm1U eXBlLCBBUywgbmFtZSA/IG5hbWUgOiAiIiwgcmV0SW5zdCk7Ci0rICAgICAgICBpbnN0ID0gbmV3 IGxsdm06OkFsbG9jYUluc3QobGx2bVR5cGUsIEFTLCBuYW1lLCByZXRJbnN0KTsKLSAgICAgfSBl bHNlIHsKLSAgICAgICAgIC8vIFVubGVzcyB0aGUgY2FsbGVyIG92ZXJyb2RlIHRoZSBkZWZhdWx0 IGFuZCB3YW50cyBpdCBpbiB0aGUKLSAgICAgICAgIC8vIGN1cnJlbnQgYmFzaWMgYmxvY2sKLSAg ICAgICAgIHVuc2lnbmVkIEFTID0gbGx2bUZ1bmN0aW9uLT5nZXRQYXJlbnQoKS0+Z2V0RGF0YUxh eW91dCgpLmdldEFsbG9jYUFkZHJTcGFjZSgpOwotLSAgICAgICAgaW5zdCA9IG5ldyBsbHZtOjpB bGxvY2FJbnN0KGxsdm1UeXBlLCBBUywgbmFtZSA/IG5hbWUgOiAiIiwgYmJsb2NrKTsKLSsgICAg ICAgIGluc3QgPSBuZXcgbGx2bTo6QWxsb2NhSW5zdChsbHZtVHlwZSwgQVMsIG5hbWUsIGJibG9j ayk7Ci0gICAgIH0KLSAKLSAgICAgLy8gSWYgbm8gYWxpZ25tZW50IHdhcyBzcGVjaWZpZWQgYnV0 IHdlIGhhdmUgYW4gYXJyYXkgb2YgYSB1bmlmb3JtCi1AQCAtMjYzOSw3ICsyNjMwLDggQEAgbGx2 bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkFsbG9jYUluc3QobGx2bTo6VHlwZSAqbGx2 bVR5cGUsIGNvbnN0IGNoYXIgKm4KLSAgICAgcmV0dXJuIGluc3Q7Ci0gfQotIAotLWxsdm06OlZh bHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpBbGxvY2FJbnN0KGNvbnN0IFR5cGUgKnB0clR5cGUs IGNvbnN0IGNoYXIgKm5hbWUsIGludCBhbGlnbiwgYm9vbCBhdEVudHJ5QmxvY2spIHsKLStsbHZt OjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6QWxsb2NhSW5zdChjb25zdCBUeXBlICpwdHJU eXBlLCBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSwgaW50IGFsaWduLAotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgYXRFbnRyeUJsb2NrKSB7Ci0gICAg IGlmIChwdHJUeXBlID09IE5VTEwpIHsKLSAgICAgICAgIEFzc2VydFBvcyhjdXJyZW50UG9zLCBt LT5lcnJvckNvdW50ID4gMCk7Ci0gICAgICAgICByZXR1cm4gTlVMTDsKLUBAIC0zMDc1LDY2ICsz MDY3LDU5IEBAIGxsdm06Okluc3RydWN0aW9uICpGdW5jdGlvbkVtaXRDb250ZXh0OjpCcmFuY2hJ bnN0KGxsdm06OkJhc2ljQmxvY2sgKnRydWVCbG9jaywKLSAgICAgcmV0dXJuIGI7Ci0gfQotIAot LWxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpFeHRyYWN0SW5zdChsbHZtOjpWYWx1 ZSAqdiwgaW50IGVsdCwgY29uc3QgY2hhciAqbmFtZSkgewotK2xsdm06OlZhbHVlICpGdW5jdGlv bkVtaXRDb250ZXh0OjpFeHRyYWN0SW5zdChsbHZtOjpWYWx1ZSAqdiwgaW50IGVsdCwgY29uc3Qg bGx2bTo6VHdpbmUgJm5hbWUpIHsKLSAgICAgaWYgKHYgPT0gTlVMTCkgewotICAgICAgICAgQXNz ZXJ0UG9zKGN1cnJlbnRQb3MsIG0tPmVycm9yQ291bnQgPiAwKTsKLSAgICAgICAgIHJldHVybiBO VUxMOwotICAgICB9Ci0gCi0tICAgIGlmIChuYW1lID09IE5VTEwpIHsKLS0gICAgICAgIGNoYXIg YnVmWzMyXTsKLS0gICAgICAgIHNucHJpbnRmKGJ1Ziwgc2l6ZW9mKGJ1ZiksICJfZXh0cmFjdF8l ZCIsIGVsdCk7Ci0tICAgICAgICBuYW1lID0gTExWTUdldE5hbWUodiwgYnVmKTsKLS0gICAgfQot ICAgICBsbHZtOjpJbnN0cnVjdGlvbiAqZWkgPSBOVUxMOwotICAgICBpZiAobGx2bTo6aXNhPGxs dm06OlZlY3RvclR5cGU+KHYtPmdldFR5cGUoKSkpCi0tICAgICAgICBlaSA9IGxsdm06OkV4dHJh Y3RFbGVtZW50SW5zdDo6Q3JlYXRlKHYsIExMVk1JbnQzMihlbHQpLCBuYW1lLCBiYmxvY2spOwot KyAgICAgICAgZWkgPSBsbHZtOjpFeHRyYWN0RWxlbWVudEluc3Q6OkNyZWF0ZSgKLSsgICAgICAg ICAgICB2LCBMTFZNSW50MzIoZWx0KSwKLSsgICAgICAgICAgICBuYW1lLmlzVHJpdmlhbGx5RW1w dHkoKSA/ICgobGx2bTo6VHdpbmUodi0+Z2V0TmFtZSgpKSArICJfZXh0cmFjdF8iKSArIGxsdm06 OlR3aW5lKGVsdCkpIDogbmFtZSwgYmJsb2NrKTsKLSAgICAgZWxzZQotLSAgICAgICAgZWkgPSBs bHZtOjpFeHRyYWN0VmFsdWVJbnN0OjpDcmVhdGUodiwgZWx0LCBuYW1lLCBiYmxvY2spOwotKyAg ICAgICAgZWkgPSBsbHZtOjpFeHRyYWN0VmFsdWVJbnN0OjpDcmVhdGUoCi0rICAgICAgICAgICAg diwgZWx0LCBuYW1lLmlzVHJpdmlhbGx5RW1wdHkoKSA/ICgobGx2bTo6VHdpbmUodi0+Z2V0TmFt ZSgpKSArICJfZXh0cmFjdF8iKSArIGxsdm06OlR3aW5lKGVsdCkpIDogbmFtZSwKLSsgICAgICAg ICAgICBiYmxvY2spOwotICAgICBBZGREZWJ1Z1BvcyhlaSk7Ci0gICAgIHJldHVybiBlaTsKLSB9 Ci0gCi0tbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6Okluc2VydEluc3QobGx2bTo6 VmFsdWUgKnYsIGxsdm06OlZhbHVlICplbHRWYWwsIGludCBlbHQsIGNvbnN0IGNoYXIgKm5hbWUp IHsKLStsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6SW5zZXJ0SW5zdChsbHZtOjpW YWx1ZSAqdiwgbGx2bTo6VmFsdWUgKmVsdFZhbCwgaW50IGVsdCwgY29uc3QgbGx2bTo6VHdpbmUg Jm5hbWUpIHsKLSAgICAgaWYgKHYgPT0gTlVMTCB8fCBlbHRWYWwgPT0gTlVMTCkgewotICAgICAg ICAgQXNzZXJ0UG9zKGN1cnJlbnRQb3MsIG0tPmVycm9yQ291bnQgPiAwKTsKLSAgICAgICAgIHJl dHVybiBOVUxMOwotICAgICB9Ci0gCi0tICAgIGlmIChuYW1lID09IE5VTEwpIHsKLS0gICAgICAg IGNoYXIgYnVmWzMyXTsKLS0gICAgICAgIHNucHJpbnRmKGJ1Ziwgc2l6ZW9mKGJ1ZiksICJfaW5z ZXJ0XyVkIiwgZWx0KTsKLS0gICAgICAgIG5hbWUgPSBMTFZNR2V0TmFtZSh2LCBidWYpOwotLSAg ICB9Ci0tCi0gICAgIGxsdm06Okluc3RydWN0aW9uICppaSA9IE5VTEw7Ci0gICAgIGlmIChsbHZt Ojppc2E8bGx2bTo6VmVjdG9yVHlwZT4odi0+Z2V0VHlwZSgpKSkKLS0gICAgICAgIGlpID0gbGx2 bTo6SW5zZXJ0RWxlbWVudEluc3Q6OkNyZWF0ZSh2LCBlbHRWYWwsIExMVk1JbnQzMihlbHQpLCBu YW1lLCBiYmxvY2spOwotKyAgICAgICAgaWkgPSBsbHZtOjpJbnNlcnRFbGVtZW50SW5zdDo6Q3Jl YXRlKAotKyAgICAgICAgICAgIHYsIGVsdFZhbCwgTExWTUludDMyKGVsdCksCi0rICAgICAgICAg ICAgbmFtZS5pc1RyaXZpYWxseUVtcHR5KCkgPyAoKGxsdm06OlR3aW5lKHYtPmdldE5hbWUoKSkg KyAiX2luc2VydF8iKSArIGxsdm06OlR3aW5lKGVsdCkpIDogbmFtZSwgYmJsb2NrKTsKLSAgICAg ZWxzZQotLSAgICAgICAgaWkgPSBsbHZtOjpJbnNlcnRWYWx1ZUluc3Q6OkNyZWF0ZSh2LCBlbHRW YWwsIGVsdCwgbmFtZSwgYmJsb2NrKTsKLSsgICAgICAgIGlpID0gbGx2bTo6SW5zZXJ0VmFsdWVJ bnN0OjpDcmVhdGUoCi0rICAgICAgICAgICAgdiwgZWx0VmFsLCBlbHQsCi0rICAgICAgICAgICAg bmFtZS5pc1RyaXZpYWxseUVtcHR5KCkgPyAoKGxsdm06OlR3aW5lKHYtPmdldE5hbWUoKSkgKyAi X2luc2VydF8iKSArIGxsdm06OlR3aW5lKGVsdCkpIDogbmFtZSwgYmJsb2NrKTsKLSAgICAgQWRk RGVidWdQb3MoaWkpOwotICAgICByZXR1cm4gaWk7Ci0gfQotIAotLWxsdm06OlZhbHVlICpGdW5j dGlvbkVtaXRDb250ZXh0OjpTaHVmZmxlSW5zdChsbHZtOjpWYWx1ZSAqdjEsIGxsdm06OlZhbHVl ICp2MiwgbGx2bTo6VmFsdWUgKm1hc2ssIGNvbnN0IGNoYXIgKm5hbWUpIHsKLStsbHZtOjpWYWx1 ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6U2h1ZmZsZUluc3QobGx2bTo6VmFsdWUgKnYxLCBsbHZt OjpWYWx1ZSAqdjIsIGxsdm06OlZhbHVlICptYXNrLAotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSkgewotICAgICBp ZiAodjEgPT0gTlVMTCB8fCB2MiA9PSBOVUxMIHx8IG1hc2sgPT0gTlVMTCkgewotICAgICAgICAg QXNzZXJ0UG9zKGN1cnJlbnRQb3MsIG0tPmVycm9yQ291bnQgPiAwKTsKLSAgICAgICAgIHJldHVy biBOVUxMOwotICAgICB9Ci0gCi0tICAgIGlmIChuYW1lID09IE5VTEwpIHsKLS0gICAgICAgIGNo YXIgYnVmWzMyXTsKLS0gICAgICAgIHNucHJpbnRmKGJ1Ziwgc2l6ZW9mKGJ1ZiksICJfc2h1ZmZs ZSIpOwotLSAgICAgICAgbmFtZSA9IExMVk1HZXROYW1lKHYxLCBidWYpOwotLSAgICB9Ci0tCi0t ICAgIGxsdm06Okluc3RydWN0aW9uICppaSA9IG5ldyBsbHZtOjpTaHVmZmxlVmVjdG9ySW5zdCh2 MSwgdjIsIG1hc2ssIG5hbWUsIGJibG9jayk7Ci0rICAgIGxsdm06Okluc3RydWN0aW9uICppaSA9 IG5ldyBsbHZtOjpTaHVmZmxlVmVjdG9ySW5zdCgKLSsgICAgICAgIHYxLCB2MiwgbWFzaywgbmFt ZS5pc1RyaXZpYWxseUVtcHR5KCkgPyAobGx2bTo6VHdpbmUodjEtPmdldE5hbWUoKSkgKyAiX3No dWZmbGUiKSA6IG5hbWUsIGJibG9jayk7Ci0gCi0gICAgIEFkZERlYnVnUG9zKGlpKTsKLSAgICAg cmV0dXJuIGlpOwotIH0KLSAKLS1sbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6QnJv YWRjYXN0VmFsdWUobGx2bTo6VmFsdWUgKnYsIGxsdm06OlR5cGUgKnZlY1R5cGUsIGNvbnN0IGNo YXIgKm5hbWUpIHsKLStsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6QnJvYWRjYXN0 VmFsdWUobGx2bTo6VmFsdWUgKnYsIGxsdm06OlR5cGUgKnZlY1R5cGUsIGNvbnN0IGxsdm06OlR3 aW5lICZuYW1lKSB7Ci0gICAgIGlmICh2ID09IE5VTEwgfHwgdmVjVHlwZSA9PSBOVUxMKSB7Ci0g ICAgICAgICBBc3NlcnRQb3MoY3VycmVudFBvcywgbS0+ZXJyb3JDb3VudCA+IDApOwotICAgICAg ICAgcmV0dXJuIE5VTEw7Ci1AQCAtMzE0OCwxMiArMzEzMyw2IEBAIGxsdm06OlZhbHVlICpGdW5j dGlvbkVtaXRDb250ZXh0OjpCcm9hZGNhc3RWYWx1ZShsbHZtOjpWYWx1ZSAqdiwgbGx2bTo6VHlw ZSAqdmVjCi0gICAgIEFzc2VydCh0eSAmJiB0eS0+Z2V0VmVjdG9yRWxlbWVudFR5cGUoKSA9PSB2 LT5nZXRUeXBlKCkpOwotICNlbmRpZgotIAotLSAgICBpZiAobmFtZSA9PSBOVUxMKSB7Ci0tICAg ICAgICBjaGFyIGJ1ZlszMl07Ci0tICAgICAgICBzbnByaW50ZihidWYsIHNpemVvZihidWYpLCAi X2Jyb2FkY2FzdCIpOwotLSAgICAgICAgbmFtZSA9IExMVk1HZXROYW1lKHYsIGJ1Zik7Ci0tICAg IH0KLS0KLSAgICAgLy8gR2VuZXJhdGUgdGhlIGZvbGxvd2luZyBzZXF1ZW5jZToKLSAgICAgLy8g ICAlbmFtZV9pbml0LmkgPSBpbnNlcnRlbGVtZW50IDw0IHggaTMyPiB1bmRlZiwgaTMyICV2YWws IGkzMiAwCi0gICAgIC8vICAgJW5hbWUuaSA9IHNodWZmbGV2ZWN0b3IgPDQgeCBpMzI+ICVuYW1l X2luaXQuaSwgPDQgeCBpMzI+IHVuZGVmLAotQEAgLTMxNjMsNyArMzE0Miw3IEBAIGxsdm06OlZh bHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpCcm9hZGNhc3RWYWx1ZShsbHZtOjpWYWx1ZSAqdiwg bGx2bTo6VHlwZSAqdmVjCi0gICAgIGxsdm06OlZhbHVlICp1bmRlZjIgPSBsbHZtOjpVbmRlZlZh bHVlOjpnZXQodmVjVHlwZSk7Ci0gCi0gICAgIC8vIEluc2VydEVsZW1lbnQKLS0gICAgbGx2bTo6 VHdpbmUgdHcgPSBsbHZtOjpUd2luZShuYW1lKSArIGxsdm06OlR3aW5lKCJfaW5pdCIpOwotKyAg ICBsbHZtOjpUd2luZSB0dyA9IG5hbWUuaXNUcml2aWFsbHlFbXB0eSgpID8gKGxsdm06OlR3aW5l KHYtPmdldE5hbWUoKSkgKyAiX2Jyb2FkY2FzdCIpIDogbmFtZSArIGxsdm06OlR3aW5lKCJfaW5p dCIpOwotICAgICBsbHZtOjpWYWx1ZSAqaW5zZXJ0ID0gSW5zZXJ0SW5zdCh1bmRlZjEsIHYsIDAs IHR3LnN0cigpLmNfc3RyKCkpOwotIAotICAgICAvLyBTaHVmZmxlVmVjdG9yCi1AQCAtMzE3OSwy OCArMzE1OCwyNyBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6QnJvYWRjYXN0 VmFsdWUobGx2bTo6VmFsdWUgKnYsIGxsdm06OlR5cGUgKnZlYwotICAgICAgICAgbGx2bTo6Q29u c3RhbnRWZWN0b3I6OmdldFNwbGF0KGxsdm06OkVsZW1lbnRDb3VudDo6Z2V0KHN0YXRpY19jYXN0 PHVuc2lnbmVkIGludD4odHktPmdldE51bUVsZW1lbnRzKCkpLCBmYWxzZSksCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6Q29uc3RhbnQ6OmdldE51bGxWYWx1 ZShsbHZtOjpUeXBlOjpnZXRJbnQzMlR5KCpnLT5jdHgpKSk7Ci0gI2VuZGlmCi0tICAgIGxsdm06 OlZhbHVlICpyZXQgPSBTaHVmZmxlSW5zdChpbnNlcnQsIHVuZGVmMiwgemVyb1ZlYywgbmFtZSk7 Ci0rICAgIGxsdm06OlZhbHVlICpyZXQgPSBTaHVmZmxlSW5zdChpbnNlcnQsIHVuZGVmMiwgemVy b1ZlYywKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUuaXNUcml2aWFs bHlFbXB0eSgpID8gKGxsdm06OlR3aW5lKHYtPmdldE5hbWUoKSkgKyAiX2Jyb2FkY2FzdCIpIDog bmFtZSk7Ci0gCi0gICAgIHJldHVybiByZXQ7Ci0gfQotIAotLWxsdm06OlBISU5vZGUgKkZ1bmN0 aW9uRW1pdENvbnRleHQ6OlBoaU5vZGUobGx2bTo6VHlwZSAqdHlwZSwgaW50IGNvdW50LCBjb25z dCBjaGFyICpuYW1lKSB7Ci0tICAgIGxsdm06OlBISU5vZGUgKnBuID0gbGx2bTo6UEhJTm9kZTo6 Q3JlYXRlKHR5cGUsIGNvdW50LCBuYW1lID8gbmFtZSA6ICJwaGkiLCBiYmxvY2spOwotK2xsdm06 OlBISU5vZGUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OlBoaU5vZGUobGx2bTo6VHlwZSAqdHlwZSwg aW50IGNvdW50LCBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSkgewotKyAgICBsbHZtOjpQSElOb2Rl ICpwbiA9IGxsdm06OlBISU5vZGU6OkNyZWF0ZSh0eXBlLCBjb3VudCwgbmFtZS5pc1RyaXZpYWxs eUVtcHR5KCkgPyAicGhpIiA6IG5hbWUsIGJibG9jayk7Ci0gICAgIEFkZERlYnVnUG9zKHBuKTsK LSAgICAgcmV0dXJuIHBuOwotIH0KLSAKLSBsbHZtOjpJbnN0cnVjdGlvbiAqRnVuY3Rpb25FbWl0 Q29udGV4dDo6U2VsZWN0SW5zdChsbHZtOjpWYWx1ZSAqdGVzdCwgbGx2bTo6VmFsdWUgKnZhbDAs IGxsdm06OlZhbHVlICp2YWwxLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKm5hbWUpIHsKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSkg ewotICAgICBpZiAodGVzdCA9PSBOVUxMIHx8IHZhbDAgPT0gTlVMTCB8fCB2YWwxID09IE5VTEwp IHsKLSAgICAgICAgIEFzc2VydFBvcyhjdXJyZW50UG9zLCBtLT5lcnJvckNvdW50ID4gMCk7Ci0g ICAgICAgICByZXR1cm4gTlVMTDsKLSAgICAgfQotIAotLSAgICBpZiAobmFtZSA9PSBOVUxMKQot LSAgICAgICAgbmFtZSA9IExMVk1HZXROYW1lKHRlc3QsICJfc2VsZWN0Iik7Ci0tCi0tICAgIGxs dm06Okluc3RydWN0aW9uICppbnN0ID0gbGx2bTo6U2VsZWN0SW5zdDo6Q3JlYXRlKHRlc3QsIHZh bDAsIHZhbDEsIG5hbWUsIGJibG9jayk7Ci0rICAgIGxsdm06Okluc3RydWN0aW9uICppbnN0ID0g bGx2bTo6U2VsZWN0SW5zdDo6Q3JlYXRlKAotKyAgICAgICAgdGVzdCwgdmFsMCwgdmFsMSwgbmFt ZS5pc1RyaXZpYWxseUVtcHR5KCkgPyAobGx2bTo6VHdpbmUodGVzdC0+Z2V0TmFtZSgpKSArICJf c2VsZWN0IikgOiBuYW1lLCBiYmxvY2spOwotICAgICBBZGREZWJ1Z1BvcyhpbnN0KTsKLSAgICAg cmV0dXJuIGluc3Q7Ci0gfQotQEAgLTMyMjYsNyArMzIwNCw3IEBAIHN0YXRpYyB1bnNpZ25lZCBp bnQgbENhbGxlZUFyZ0NvdW50KGxsdm06OlZhbHVlICpjYWxsZWUsIGNvbnN0IEZ1bmN0aW9uVHlw ZSAqZnVuCi0gfQotIAotIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpDYWxsSW5z dChsbHZtOjpWYWx1ZSAqZnVuYywgY29uc3QgRnVuY3Rpb25UeXBlICpmdW5jVHlwZSwKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RkOjp2ZWN0b3I8 bGx2bTo6VmFsdWUgKj4gJmFyZ3MsIGNvbnN0IGNoYXIgKm5hbWUpIHsKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RkOjp2ZWN0b3I8bGx2bTo6VmFs dWUgKj4gJmFyZ3MsIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lKSB7Ci0gICAgIGlmIChmdW5jID09 IE5VTEwpIHsKLSAgICAgICAgIEFzc2VydFBvcyhjdXJyZW50UG9zLCBtLT5lcnJvckNvdW50ID4g MCk7Ci0gICAgICAgICByZXR1cm4gTlVMTDsKLUBAIC0zMjU4LDkgKzMyMzYsOSBAQCBsbHZtOjpW YWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6Q2FsbEluc3QobGx2bTo6VmFsdWUgKmZ1bmMsIGNv bnN0IEZ1bmN0aW9uVHlwZQotICNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTFf MAotICAgICAgICAgbGx2bTo6UG9pbnRlclR5cGUgKmZ1bmNfcHRyX3R5cGUgPSBsbHZtOjpkeW5f Y2FzdDxsbHZtOjpQb2ludGVyVHlwZT4oZnVuYy0+Z2V0VHlwZSgpKTsKLSAgICAgICAgIGxsdm06 OkZ1bmN0aW9uVHlwZSAqZnVuY190eXBlID0gbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6RnVuY3Rpb25U eXBlPihmdW5jX3B0cl90eXBlLT5nZXRQb2ludGVyRWxlbWVudFR5cGUoKSk7Ci0tICAgICAgICBs bHZtOjpDYWxsSW5zdCAqY2FsbGluc3QgPSBsbHZtOjpDYWxsSW5zdDo6Q3JlYXRlKGZ1bmNfdHlw ZSwgZnVuYywgYXJnVmFscywgbmFtZSA/IG5hbWUgOiAiIiwgYmJsb2NrKTsKLSsgICAgICAgIGxs dm06OkNhbGxJbnN0ICpjYWxsaW5zdCA9IGxsdm06OkNhbGxJbnN0OjpDcmVhdGUoZnVuY190eXBl LCBmdW5jLCBhcmdWYWxzLCBuYW1lLCBiYmxvY2spOwotICNlbHNlCi0tICAgICAgICBsbHZtOjpD YWxsSW5zdCAqY2FsbGluc3QgPSBsbHZtOjpDYWxsSW5zdDo6Q3JlYXRlKGZ1bmMsIGFyZ1ZhbHMs IG5hbWUgPyBuYW1lIDogIiIsIGJibG9jayk7Ci0rICAgICAgICBsbHZtOjpDYWxsSW5zdCAqY2Fs bGluc3QgPSBsbHZtOjpDYWxsSW5zdDo6Q3JlYXRlKGZ1bmMsIGFyZ1ZhbHMsIG5hbWUsIGJibG9j ayk7Ci0gI2VuZGlmCi0gCi0gICAgICAgICAvLyBXZSBjb3VsZCBiZSBkZWFsaW5nIHdpdGggYSBm dW5jdGlvbiBwb2ludGVyIGluIHdoaWNoIGNhc2UgdGhpcyB3aWxsIG5vdCBiZSBhICdsbHZtOjpG dW5jdGlvbicuCi1AQCAtMzQ2NCwxNCArMzQ0MiwxNCBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25F bWl0Q29udGV4dDo6Q2FsbEluc3QobGx2bTo6VmFsdWUgKmZ1bmMsIGNvbnN0IEZ1bmN0aW9uVHlw ZQotIH0KLSAKLSBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6Q2FsbEluc3QobGx2 bTo6VmFsdWUgKmZ1bmMsIGNvbnN0IEZ1bmN0aW9uVHlwZSAqZnVuY1R5cGUsIGxsdm06OlZhbHVl ICphcmcsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0 IGNoYXIgKm5hbWUpIHsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUpIHsKLSAgICAgc3RkOjp2ZWN0b3I8bGx2bTo6VmFs dWUgKj4gYXJnczsKLSAgICAgYXJncy5wdXNoX2JhY2soYXJnKTsKLSAgICAgcmV0dXJuIENhbGxJ bnN0KGZ1bmMsIGZ1bmNUeXBlLCBhcmdzLCBuYW1lKTsKLSB9Ci0gCi0gbGx2bTo6VmFsdWUgKkZ1 bmN0aW9uRW1pdENvbnRleHQ6OkNhbGxJbnN0KGxsdm06OlZhbHVlICpmdW5jLCBjb25zdCBGdW5j dGlvblR5cGUgKmZ1bmNUeXBlLCBsbHZtOjpWYWx1ZSAqYXJnMCwKLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6VmFsdWUgKmFyZzEsIGNvbnN0IGNoYXIg Km5hbWUpIHsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGx2 bTo6VmFsdWUgKmFyZzEsIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lKSB7Ci0gICAgIHN0ZDo6dmVj dG9yPGxsdm06OlZhbHVlICo+IGFyZ3M7Ci0gICAgIGFyZ3MucHVzaF9iYWNrKGFyZzApOwotICAg ICBhcmdzLnB1c2hfYmFjayhhcmcxKTsKLWRpZmYgLS1naXQgYS9zcmMvY3R4LmggYi9zcmMvY3R4 LmgKLWluZGV4IDZlNWFkNzRiYS4uNDhiM2JiODI2IDEwMDY0NAotLS0tIGEvc3JjL2N0eC5oCi0r KysgYi9zcmMvY3R4LmgKLUBAIC0zMDIsNyArMzAyLDcgQEAgY2xhc3MgRnVuY3Rpb25FbWl0Q29u dGV4dCB7Ci0gICAgIGxsdm06OlZhbHVlICpHZXRTdHJpbmdQdHIoY29uc3Qgc3RkOjpzdHJpbmcg JnN0cik7Ci0gCi0gICAgIC8qKiBDcmVhdGUgYSBuZXcgYmFzaWMgYmxvY2sgd2l0aCBnaXZlbiBu YW1lICovCi0tICAgIGxsdm06OkJhc2ljQmxvY2sgKkNyZWF0ZUJhc2ljQmxvY2soY29uc3QgY2hh ciAqbmFtZSwgbGx2bTo6QmFzaWNCbG9jayAqaW5zZXJ0QWZ0ZXIgPSBOVUxMKTsKLSsgICAgbGx2 bTo6QmFzaWNCbG9jayAqQ3JlYXRlQmFzaWNCbG9jayhjb25zdCBsbHZtOjpUd2luZSAmbmFtZSwg bGx2bTo6QmFzaWNCbG9jayAqaW5zZXJ0QWZ0ZXIgPSBOVUxMKTsKLSAKLSAgICAgLyoqIEdpdmVu IGEgdmVjdG9yIHdpdGggZWxlbWVudCB0eXBlIGkxLCByZXR1cm4gYSB2ZWN0b3Igb2YgdHlwZQot ICAgICAgICAgTExWTVR5cGVzOjpCb29sVmVjdG9yVHlwZS4gIFRoaXMgbWV0aG9kIGhhbmRsZXMg dGhlIGNvbnZlcnNpb24gZm9yCi1AQCAtMzgwLDMzICszODAsMzMgQEAgY2xhc3MgRnVuY3Rpb25F bWl0Q29udGV4dCB7Ci0gICAgICAgICB0aGlzIGFsc28gaGFuZGxlcyBhcHBseWluZyB0aGUgZ2l2 ZW4gb3BlcmF0aW9uIHRvIHRoZSB2ZWN0b3IKLSAgICAgICAgIGVsZW1lbnRzLiAqLwotICAgICBs bHZtOjpWYWx1ZSAqQmluYXJ5T3BlcmF0b3IobGx2bTo6SW5zdHJ1Y3Rpb246OkJpbmFyeU9wcyBp bnN0LCBsbHZtOjpWYWx1ZSAqdjAsIGxsdm06OlZhbHVlICp2MSwKLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKm5hbWUgPSBOVUxMKTsKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lID0gIiIpOwotIAotICAg ICAvKiogRW1pdCB0aGUgIm5vdCIgb3BlcmF0b3IuICBMaWtlIEJpbmFyeU9wZXJhdG9yKCksIHRo aXMgYWxzbyBoYW5kbGVzCi0gICAgICAgICBhIFZlY3RvclR5cGUtYmFzZWQgb3BlcmFuZC4gKi8K LS0gICAgbGx2bTo6VmFsdWUgKk5vdE9wZXJhdG9yKGxsdm06OlZhbHVlICp2LCBjb25zdCBjaGFy ICpuYW1lID0gTlVMTCk7Ci0rICAgIGxsdm06OlZhbHVlICpOb3RPcGVyYXRvcihsbHZtOjpWYWx1 ZSAqdiwgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUgPSAiIik7Ci0gCi0gICAgIC8qKiBFbWl0IGEg Y29tcGFyaXNvbiBpbnN0cnVjdGlvbi4gIElmIHRoZSBvcGVyYW5kcyBhcmUgVmVjdG9yVHlwZXMs Ci0gICAgICAgICB0aGVuIGEgdmFsdWUgZm9yIHRoZSBjb3JyZXNwb25kaW5nIGJvb2xlYW4gVmVj dG9yVHlwZSBpcwotICAgICAgICAgcmV0dXJuZWQuICovCi0gICAgIGxsdm06OlZhbHVlICpDbXBJ bnN0KGxsdm06Okluc3RydWN0aW9uOjpPdGhlck9wcyBpbnN0LCBsbHZtOjpDbXBJbnN0OjpQcmVk aWNhdGUgcHJlZCwgbGx2bTo6VmFsdWUgKnYwLAotLSAgICAgICAgICAgICAgICAgICAgICAgICBs bHZtOjpWYWx1ZSAqdjEsIGNvbnN0IGNoYXIgKm5hbWUgPSBOVUxMKTsKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgbGx2bTo6VmFsdWUgKnYxLCBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSA9ICIi KTsKLSAKLSAgICAgLyoqIEdpdmVuIGEgc2NhbGFyIHZhbHVlLCByZXR1cm4gYSB2ZWN0b3Igb2Yg dGhlIHNhbWUgdHlwZSAob3IgYW4KLSAgICAgICAgIGFycmF5LCBmb3IgcG9pbnRlciB0eXBlcyku ICovCi0tICAgIGxsdm06OlZhbHVlICpTbWVhclVuaWZvcm0obGx2bTo6VmFsdWUgKnZhbHVlLCBj b25zdCBjaGFyICpuYW1lID0gTlVMTCk7Ci0rICAgIGxsdm06OlZhbHVlICpTbWVhclVuaWZvcm0o bGx2bTo6VmFsdWUgKnZhbHVlLCBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSA9ICIiKTsKLSAKLS0g ICAgbGx2bTo6VmFsdWUgKkJpdENhc3RJbnN0KGxsdm06OlZhbHVlICp2YWx1ZSwgbGx2bTo6VHlw ZSAqdHlwZSwgY29uc3QgY2hhciAqbmFtZSA9IE5VTEwpOwotLSAgICBsbHZtOjpWYWx1ZSAqUHRy VG9JbnRJbnN0KGxsdm06OlZhbHVlICp2YWx1ZSwgY29uc3QgY2hhciAqbmFtZSA9IE5VTEwpOwot LSAgICBsbHZtOjpWYWx1ZSAqUHRyVG9JbnRJbnN0KGxsdm06OlZhbHVlICp2YWx1ZSwgbGx2bTo6 VHlwZSAqdHlwZSwgY29uc3QgY2hhciAqbmFtZSA9IE5VTEwpOwotLSAgICBsbHZtOjpWYWx1ZSAq SW50VG9QdHJJbnN0KGxsdm06OlZhbHVlICp2YWx1ZSwgbGx2bTo6VHlwZSAqdHlwZSwgY29uc3Qg Y2hhciAqbmFtZSA9IE5VTEwpOwotKyAgICBsbHZtOjpWYWx1ZSAqQml0Q2FzdEluc3QobGx2bTo6 VmFsdWUgKnZhbHVlLCBsbHZtOjpUeXBlICp0eXBlLCBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSA9 ICIiKTsKLSsgICAgbGx2bTo6VmFsdWUgKlB0clRvSW50SW5zdChsbHZtOjpWYWx1ZSAqdmFsdWUs IGNvbnN0IGxsdm06OlR3aW5lICZuYW1lID0gIiIpOwotKyAgICBsbHZtOjpWYWx1ZSAqUHRyVG9J bnRJbnN0KGxsdm06OlZhbHVlICp2YWx1ZSwgbGx2bTo6VHlwZSAqdHlwZSwgY29uc3QgbGx2bTo6 VHdpbmUgJm5hbWUgPSAiIik7Ci0rICAgIGxsdm06OlZhbHVlICpJbnRUb1B0ckluc3QobGx2bTo6 VmFsdWUgKnZhbHVlLCBsbHZtOjpUeXBlICp0eXBlLCBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSA9 ICIiKTsKLSAKLS0gICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKlRydW5jSW5zdChsbHZtOjpWYWx1ZSAq dmFsdWUsIGxsdm06OlR5cGUgKnR5cGUsIGNvbnN0IGNoYXIgKm5hbWUgPSBOVUxMKTsKLSsgICAg bGx2bTo6SW5zdHJ1Y3Rpb24gKlRydW5jSW5zdChsbHZtOjpWYWx1ZSAqdmFsdWUsIGxsdm06OlR5 cGUgKnR5cGUsIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lID0gIiIpOwotICAgICBsbHZtOjpJbnN0 cnVjdGlvbiAqQ2FzdEluc3QobGx2bTo6SW5zdHJ1Y3Rpb246OkNhc3RPcHMgb3AsIGxsdm06OlZh bHVlICp2YWx1ZSwgbGx2bTo6VHlwZSAqdHlwZSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGNvbnN0IGNoYXIgKm5hbWUgPSBOVUxMKTsKLS0gICAgbGx2bTo6SW5zdHJ1Y3Rpb24g KkZQQ2FzdEluc3QobGx2bTo6VmFsdWUgKnZhbHVlLCBsbHZtOjpUeXBlICp0eXBlLCBjb25zdCBj aGFyICpuYW1lID0gTlVMTCk7Ci0tICAgIGxsdm06Okluc3RydWN0aW9uICpTRXh0SW5zdChsbHZt OjpWYWx1ZSAqdmFsdWUsIGxsdm06OlR5cGUgKnR5cGUsIGNvbnN0IGNoYXIgKm5hbWUgPSBOVUxM KTsKLS0gICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKlpFeHRJbnN0KGxsdm06OlZhbHVlICp2YWx1ZSwg bGx2bTo6VHlwZSAqdHlwZSwgY29uc3QgY2hhciAqbmFtZSA9IE5VTEwpOwotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUgPSAiIik7Ci0rICAg IGxsdm06Okluc3RydWN0aW9uICpGUENhc3RJbnN0KGxsdm06OlZhbHVlICp2YWx1ZSwgbGx2bTo6 VHlwZSAqdHlwZSwgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUgPSAiIik7Ci0rICAgIGxsdm06Oklu c3RydWN0aW9uICpTRXh0SW5zdChsbHZtOjpWYWx1ZSAqdmFsdWUsIGxsdm06OlR5cGUgKnR5cGUs IGNvbnN0IGxsdm06OlR3aW5lICZuYW1lID0gIiIpOwotKyAgICBsbHZtOjpJbnN0cnVjdGlvbiAq WkV4dEluc3QobGx2bTo6VmFsdWUgKnZhbHVlLCBsbHZtOjpUeXBlICp0eXBlLCBjb25zdCBsbHZt OjpUd2luZSAmbmFtZSA9ICIiKTsKLSAKLSAgICAgLyoqIEdpdmVuIHR3byBpbnRlZ2VyLXR5cGVk IHZhbHVlcyAoYnV0IHBvc3NpYmx5IG9uZSB2ZWN0b3IgYW5kIHRoZQotICAgICAgICAgb3RoZXIg bm90LCBhbmQgb3Igb2YgcG9zc2libHktZGlmZmVyZW50IGJpdC13aWR0aHMpLCB1cGRhdGUgdGhl aXIKLUBAIC00MjYsOSArNDI2LDkgQEAgY2xhc3MgRnVuY3Rpb25FbWl0Q29udGV4dCB7Ci0gICAg ICAgICBwb2ludGVycy4gIFRoZSB1bmRlcmx5aW5nIHR5cGUgb2YgdGhlIGJhc2UgcG9pbnRlciBt dXN0IGJlIHByb3ZpZGVkCi0gICAgICAgICB2aWEgdGhlIHB0clR5cGUgcGFyYW1ldGVyICovCi0g ICAgIGxsdm06OlZhbHVlICpHZXRFbGVtZW50UHRySW5zdChsbHZtOjpWYWx1ZSAqYmFzZVB0ciwg bGx2bTo6VmFsdWUgKmluZGV4LCBjb25zdCBUeXBlICpwdHJUeXBlLAotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqbmFtZSA9IE5VTEwpOwotKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUgPSAiIik7 Ci0gICAgIGxsdm06OlZhbHVlICpHZXRFbGVtZW50UHRySW5zdChsbHZtOjpWYWx1ZSAqYmFzZVB0 ciwgbGx2bTo6VmFsdWUgKmluZGV4MCwgbGx2bTo6VmFsdWUgKmluZGV4MSwgY29uc3QgVHlwZSAq cHRyVHlwZSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIg Km5hbWUgPSBOVUxMKTsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0 IGxsdm06OlR3aW5lICZuYW1lID0gIiIpOwotIAotICAgICAvKiogVGhpcyBtZXRob2QgcmV0dXJu cyBhIG5ldyBwb2ludGVyIHRoYXQgcmVwcmVzZW50cyBvZmZzZXR0aW5nIHRoZQotICAgICAgICAg Z2l2ZW4gYmFzZSBwb2ludGVyIHRvIHBvaW50IGF0IHRoZSBnaXZlbiBlbGVtZW50IG51bWJlciBv ZiB0aGUKLUBAIC00MzYsMjYgKzQzNiwyNiBAQCBjbGFzcyBGdW5jdGlvbkVtaXRDb250ZXh0IHsK LSAgICAgICAgIHBvaW50ZXIgbXVzdCBiZSBhIHBvaW50ZXIgdG8gYSBzdHJ1Y3R1cmUgdHlwZS4g IFRoZSBwdHJUeXBlIGdpdmVzCi0gICAgICAgICB0aGUgdHlwZSBvZiB0aGUgcG9pbnRlciwgdGhv dWdoIGl0IG1heSBiZSBOVUxMIGlmIHRoZSBiYXNlIHBvaW50ZXIKLSAgICAgICAgIGlzIHVuaWZv cm0uICovCi0tICAgIGxsdm06OlZhbHVlICpBZGRFbGVtZW50T2Zmc2V0KGxsdm06OlZhbHVlICpi YXNlUHRyLCBpbnQgZWxlbWVudE51bSwgY29uc3QgVHlwZSAqcHRyVHlwZSwgY29uc3QgY2hhciAq bmFtZSA9IE5VTEwsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFBv aW50ZXJUeXBlICoqcmVzdWx0UHRyVHlwZSA9IE5VTEwpOwotKyAgICBsbHZtOjpWYWx1ZSAqQWRk RWxlbWVudE9mZnNldChsbHZtOjpWYWx1ZSAqYmFzZVB0ciwgaW50IGVsZW1lbnROdW0sIGNvbnN0 IFR5cGUgKnB0clR5cGUsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0 IGxsdm06OlR3aW5lICZuYW1lID0gIiIsIGNvbnN0IFBvaW50ZXJUeXBlICoqcmVzdWx0UHRyVHlw ZSA9IE5VTEwpOwotIAotICAgICAvKiogQm9vbCBpcyBzdG9yZWQgYXMgaTggYW5kIDxXSURUSCB4 IGk4PiBidXQgcmVwcmVzZW50ZWQgaW4gSVIgYXMgaTEgYW5kCi0gICAgICAqIDxXSURUSCB4IE1B U0s+LiBUaGlzIGlzIGEgaGVscGVyIGZ1bmN0aW9uIHRvIG1hdGNoIGJvb2wgc2l6ZSBhdCBzdG9y YWdlCi0gICAgICAqIGludGVyZmFjZS4gKi8KLS0gICAgbGx2bTo6VmFsdWUgKlN3aXRjaEJvb2xT aXplKGxsdm06OlZhbHVlICp2YWx1ZSwgbGx2bTo6VHlwZSAqdG9UeXBlLCBjb25zdCBjaGFyICpu YW1lID0gTlVMTCk7Ci0rICAgIGxsdm06OlZhbHVlICpTd2l0Y2hCb29sU2l6ZShsbHZtOjpWYWx1 ZSAqdmFsdWUsIGxsdm06OlR5cGUgKnRvVHlwZSwgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUgPSAi Iik7Ci0gICAgIC8qKiBMb2FkIGZyb20gdGhlIG1lbW9yeSBsb2NhdGlvbihzKSBnaXZlbiBieSBs dmFsdWUsIHVzaW5nIHRoZSBnaXZlbgotICAgICAgICAgbWFzay4gIFRoZSBsdmFsdWUgbWF5IGJl IHZhcnlpbmcsIGluIHdoaWNoIGNhc2UgdGhpcyBjb3JyZXNwb25kcyB0bwotICAgICAgICAgYSBn YXRoZXIgZnJvbSB0aGUgbXVsdGlwbGUgbWVtb3J5IGxvY2F0aW9ucyBnaXZlbiBieSB0aGUgYXJy YXkgb2YKLSAgICAgICAgIHBvaW50ZXIgdmFsdWVzIGdpdmVuIGJ5IHRoZSBsdmFsdWUuICBJZiB0 aGUgbHZhbHVlIGlzIG5vdCB2YXJ5aW5nLAotICAgICAgICAgdGhlbiBib3RoIHRoZSBtYXNrIHBv aW50ZXIgYW5kIHRoZSB0eXBlIHBvaW50ZXIgbWF5IGJlIE5VTEwuICovCi0tICAgIGxsdm06OlZh bHVlICpMb2FkSW5zdChsbHZtOjpWYWx1ZSAqcHRyLCBsbHZtOjpWYWx1ZSAqbWFzaywgY29uc3Qg VHlwZSAqcHRyVHlwZSwgY29uc3QgY2hhciAqbmFtZSA9IE5VTEwsCi0rICAgIGxsdm06OlZhbHVl ICpMb2FkSW5zdChsbHZtOjpWYWx1ZSAqcHRyLCBsbHZtOjpWYWx1ZSAqbWFzaywgY29uc3QgVHlw ZSAqcHRyVHlwZSwgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUgPSAiIiwKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgIGJvb2wgb25lX2VsZW0gPSBmYWxzZSk7Ci0gCi0gICAgIC8qIExvYWQgZnJv bSBtZW1vcnkgbG9jYXRpb24ocykgZ2l2ZW4uCi0gICAgICAqICd0eXBlJyBuZWVkcyB0byBiZSBw cm92aWRlZCB3aGVuIHN0b3JhZ2UgdHlwZSBpcyBkaWZmZXJlbnQgZnJvbSBJUiB0eXBlLiBGb3Ig ZXhhbXBsZSwKLSAgICAgICogJ3VuZm9ybSBib29sJyBpcyAnaTEnIGluIElSIGJ1dCBzdG9yZWQg YXMgJ2k4Jy4KLSAgICAgICogT3RoZXJ3aXNlIGxlYXZlIHRoaXMgYXMgTlVMTC4gKi8KLS0gICAg bGx2bTo6VmFsdWUgKkxvYWRJbnN0KGxsdm06OlZhbHVlICpwdHIsIGNvbnN0IFR5cGUgKnR5cGUg PSBOVUxMLCBjb25zdCBjaGFyICpuYW1lID0gTlVMTCk7Ci0rICAgIGxsdm06OlZhbHVlICpMb2Fk SW5zdChsbHZtOjpWYWx1ZSAqcHRyLCBjb25zdCBUeXBlICp0eXBlID0gTlVMTCwgY29uc3QgbGx2 bTo6VHdpbmUgJm5hbWUgPSAiIik7Ci0gCi0gICAgIC8qKiBFbWl0cyBhbiBhbGxvY2EgaW5zdHJ1 Y3Rpb24gdG8gYWxsb2NhdGUgc3RhY2sgc3RvcmFnZSBmb3IgdGhlIGdpdmVuCi0gICAgICAgICB0 eXBlLiAgSWYgYSBub24temVybyBhbGlnbm1lbnQgaXMgc3BlY2lmaWVkLCB0aGUgb2JqZWN0IGlz IGFsc28KLUBAIC00NjMsNyArNDYzLDggQEAgY2xhc3MgRnVuY3Rpb25FbWl0Q29udGV4dCB7Ci0g ICAgICAgICBpbnN0cnVjdGlvbiBpcyBhZGRlZCBhdCB0aGUgc3RhcnQgb2YgdGhlIGZ1bmN0aW9u IGluIHRoZSBlbnRyeQotICAgICAgICAgYmFzaWMgYmxvY2s7IGlmIGl0IHNob3VsZCBiZSBhZGRl ZCB0byB0aGUgY3VycmVudCBiYXNpYyBibG9jaywgdGhlbgotICAgICAgICAgdGhlIGF0RW50cnlC bG9jayBwYXJhbWV0ZXIgc2hvdWxkIGJlIGZhbHNlLiAqLwotLSAgICBsbHZtOjpWYWx1ZSAqQWxs b2NhSW5zdChsbHZtOjpUeXBlICpsbHZtVHlwZSwgY29uc3QgY2hhciAqbmFtZSA9IE5VTEwsIGlu dCBhbGlnbiA9IDAsIGJvb2wgYXRFbnRyeUJsb2NrID0gdHJ1ZSk7Ci0rICAgIGxsdm06OlZhbHVl ICpBbGxvY2FJbnN0KGxsdm06OlR5cGUgKmxsdm1UeXBlLCBjb25zdCBsbHZtOjpUd2luZSAmbmFt ZSA9ICIiLCBpbnQgYWxpZ24gPSAwLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29s IGF0RW50cnlCbG9jayA9IHRydWUpOwotIAotICAgICAvKiogRW1pdHMgYW4gYWxsb2NhIGluc3Ry dWN0aW9uIHRvIGFsbG9jYXRlIHN0YWNrIHN0b3JhZ2UgZm9yIHRoZSBnaXZlbgotICAgICAgICAg dHlwZS4gIElmIGEgbm9uLXplcm8gYWxpZ25tZW50IGlzIHNwZWNpZmllZCwgdGhlIG9iamVjdCBp cyBhbHNvCi1AQCAtNDc0LDcgKzQ3NSw3IEBAIGNsYXNzIEZ1bmN0aW9uRW1pdENvbnRleHQgewot ICAgICAgICAgVGhpcyBpbXBsZW1lbnRhdGlvbiBpcyBwcmVmZXJyZWQgd2hlbiBwb3NzaWJsZS4g SXQgaXMgbmVlZGVkIHdoZW4KLSAgICAgICAgIHN0b3JhZ2UgdHlwZSBpcyBkaWZmZXJlbnQgZnJv bSBJUiB0eXBlLiBGb3IgZXhhbXBsZSwKLSAgICAgICAgICd1bmZvcm0gYm9vbCcgaXMgJ2kxJyBp biBJUiBidXQgc3RvcmVkIGFzICdpOCcuICovCi0tICAgIGxsdm06OlZhbHVlICpBbGxvY2FJbnN0 KGNvbnN0IFR5cGUgKnB0clR5cGUsIGNvbnN0IGNoYXIgKm5hbWUgPSBOVUxMLCBpbnQgYWxpZ24g PSAwLCBib29sIGF0RW50cnlCbG9jayA9IHRydWUpOwotKyAgICBsbHZtOjpWYWx1ZSAqQWxsb2Nh SW5zdChjb25zdCBUeXBlICpwdHJUeXBlLCBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSA9ICIiLCBp bnQgYWxpZ24gPSAwLCBib29sIGF0RW50cnlCbG9jayA9IHRydWUpOwotIAotICAgICAvKiogU3Rh bmRhcmQgc3RvcmUgaW5zdHJ1Y3Rpb247IGZvciB0aGlzIHZhcmlhbnQsIHRoZSBsdmFsdWUgbXVz dCBiZSBhCi0gICAgICAgICBzaW5nbGUgcG9pbnRlciwgbm90IGEgdmFyeWluZyBsdmFsdWUuCi1A QCAtNTAyLDM5ICs1MDMsNDEgQEAgY2xhc3MgRnVuY3Rpb25FbWl0Q29udGV4dCB7Ci0gICAgIC8q KiBUaGlzIGNvbnZlbmllbmNlIG1ldGhvZCBtYXBzIHRvIGFuIGxsdm06OkV4dHJhY3RFbGVtZW50 SW5zdCBpZiB0aGUKLSAgICAgICAgIGdpdmVuIHZhbHVlIGlzIGEgbGx2bTo6VmVjdG9yVHlwZSwg YW5kIHRvIGFuIGxsdm06OkV4dHJhY3RWYWx1ZUluc3QKLSAgICAgICAgIG90aGVyd2lzZS4gKi8K LS0gICAgbGx2bTo6VmFsdWUgKkV4dHJhY3RJbnN0KGxsdm06OlZhbHVlICp2LCBpbnQgZWx0LCBj b25zdCBjaGFyICpuYW1lID0gTlVMTCk7Ci0rICAgIGxsdm06OlZhbHVlICpFeHRyYWN0SW5zdChs bHZtOjpWYWx1ZSAqdiwgaW50IGVsdCwgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUgPSAiIik7Ci0g Ci0gICAgIC8qKiBUaGlzIGNvbnZlbmllbmNlIG1ldGhvZCBtYXBzIHRvIGFuIGxsdm06Okluc2Vy dEVsZW1lbnRJbnN0IGlmIHRoZQotICAgICAgICAgZ2l2ZW4gdmFsdWUgaXMgYSBsbHZtOjpWZWN0 b3JUeXBlLCBhbmQgdG8gYW4gbGx2bTo6SW5zZXJ0VmFsdWVJbnN0Ci0gICAgICAgICBvdGhlcndp c2UuICovCi0tICAgIGxsdm06OlZhbHVlICpJbnNlcnRJbnN0KGxsdm06OlZhbHVlICp2LCBsbHZt OjpWYWx1ZSAqZWx0VmFsLCBpbnQgZWx0LCBjb25zdCBjaGFyICpuYW1lID0gTlVMTCk7Ci0rICAg IGxsdm06OlZhbHVlICpJbnNlcnRJbnN0KGxsdm06OlZhbHVlICp2LCBsbHZtOjpWYWx1ZSAqZWx0 VmFsLCBpbnQgZWx0LCBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSA9ICIiKTsKLSAKLSAgICAgLyoq IFRoaXMgY29udmVuaWVuY2UgbWV0aG9kIG1hcHMgdG8gYW4gbGx2bTo6U2h1ZmZsZVZlY3Rvcklu c3QuICovCi0tICAgIGxsdm06OlZhbHVlICpTaHVmZmxlSW5zdChsbHZtOjpWYWx1ZSAqdjEsIGxs dm06OlZhbHVlICp2MiwgbGx2bTo6VmFsdWUgKm1hc2ssIGNvbnN0IGNoYXIgKm5hbWUgPSBOVUxM KTsKLSsgICAgbGx2bTo6VmFsdWUgKlNodWZmbGVJbnN0KGxsdm06OlZhbHVlICp2MSwgbGx2bTo6 VmFsdWUgKnYyLCBsbHZtOjpWYWx1ZSAqbWFzaywgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUgPSAi Iik7Ci0gCi0gICAgIC8qKiBUaGlzIGNvbnZlbmllbmNlIG1ldGhvZCB0byBnZW5lcmF0ZSBicm9h ZGNhc3QgcGF0dGVybi4gSXQgdGFrZXMgYSB2YWx1ZQotICAgICAgICAgYW5kIGEgdmVjdG9yIHR5 cGUuIFR5cGUgb2YgdGhlIHZhbHVlIG11c3QgbWF0Y2ggZWxlbWVudCB0eXBlIG9mIHRoZQotICAg ICAgICAgdmVjdG9yLiAqLwotLSAgICBsbHZtOjpWYWx1ZSAqQnJvYWRjYXN0VmFsdWUobGx2bTo6 VmFsdWUgKnYsIGxsdm06OlR5cGUgKnZlY1R5cGUsIGNvbnN0IGNoYXIgKm5hbWUgPSBOVUxMKTsK LSsgICAgbGx2bTo6VmFsdWUgKkJyb2FkY2FzdFZhbHVlKGxsdm06OlZhbHVlICp2LCBsbHZtOjpU eXBlICp2ZWNUeXBlLCBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSA9ICIiKTsKLSAKLS0gICAgbGx2 bTo6UEhJTm9kZSAqUGhpTm9kZShsbHZtOjpUeXBlICp0eXBlLCBpbnQgY291bnQsIGNvbnN0IGNo YXIgKm5hbWUgPSBOVUxMKTsKLS0gICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKlNlbGVjdEluc3QobGx2 bTo6VmFsdWUgKnRlc3QsIGxsdm06OlZhbHVlICp2YWwwLCBsbHZtOjpWYWx1ZSAqdmFsMSwgY29u c3QgY2hhciAqbmFtZSA9IE5VTEwpOwotKyAgICBsbHZtOjpQSElOb2RlICpQaGlOb2RlKGxsdm06 OlR5cGUgKnR5cGUsIGludCBjb3VudCwgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUgPSAiIik7Ci0r ICAgIGxsdm06Okluc3RydWN0aW9uICpTZWxlY3RJbnN0KGxsdm06OlZhbHVlICp0ZXN0LCBsbHZt OjpWYWx1ZSAqdmFsMCwgbGx2bTo6VmFsdWUgKnZhbDEsCi0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lID0gIiIpOwotIAotICAgICAvKiog RW1pdHMgSVIgdG8gZG8gYSBmdW5jdGlvbiBjYWxsIHdpdGggdGhlIGdpdmVuIGFyZ3VtZW50cy4g IElmIHRoZQotICAgICAgICAgZnVuY3Rpb24gdHlwZSBpcyBhIHZhcnlpbmcgZnVuY3Rpb24gcG9p bnRlciB0eXBlLCBpdHMgZnVsbCB0eXBlCi0gICAgICAgICBtdXN0IGJlIHByb3ZpZGVkIGluIGZ1 bmNUeXBlLiAgZnVuY1R5cGUgY2FuIGJlIE5VTEwgaWYgZnVuYyBpcyBhCi0gICAgICAgICB1bmlm b3JtIGZ1bmN0aW9uIHBvaW50ZXIuICovCi0gICAgIGxsdm06OlZhbHVlICpDYWxsSW5zdChsbHZt OjpWYWx1ZSAqZnVuYywgY29uc3QgRnVuY3Rpb25UeXBlICpmdW5jVHlwZSwgY29uc3Qgc3RkOjp2 ZWN0b3I8bGx2bTo6VmFsdWUgKj4gJmFyZ3MsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICBj b25zdCBjaGFyICpuYW1lID0gTlVMTCk7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z dCBsbHZtOjpUd2luZSAmbmFtZSA9ICIiKTsKLSAKLSAgICAgLyoqIFRoaXMgaXMgYSBjb252ZW5p ZW5jZSBtZXRob2QgdGhhdCBpc3N1ZXMgYSBjYWxsIGluc3RydWN0aW9uIHRvIGEKLSAgICAgICAg IGZ1bmN0aW9uIHRoYXQgdGFrZXMganVzdCBhIHNpbmdsZSBhcmd1bWVudC4gKi8KLS0gICAgbGx2 bTo6VmFsdWUgKkNhbGxJbnN0KGxsdm06OlZhbHVlICpmdW5jLCBjb25zdCBGdW5jdGlvblR5cGUg KmZ1bmNUeXBlLCBsbHZtOjpWYWx1ZSAqYXJnLCBjb25zdCBjaGFyICpuYW1lID0gTlVMTCk7Ci0r ICAgIGxsdm06OlZhbHVlICpDYWxsSW5zdChsbHZtOjpWYWx1ZSAqZnVuYywgY29uc3QgRnVuY3Rp b25UeXBlICpmdW5jVHlwZSwgbGx2bTo6VmFsdWUgKmFyZywKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lID0gIiIpOwotIAotICAgICAvKiogVGhpcyBp cyBhIGNvbnZlbmllbmNlIG1ldGhvZCB0aGF0IGlzc3VlcyBhIGNhbGwgaW5zdHJ1Y3Rpb24gdG8g YQotICAgICAgICAgZnVuY3Rpb24gdGhhdCB0YWtlcyB0d28gYXJndW1lbnRzLiAqLwotICAgICBs bHZtOjpWYWx1ZSAqQ2FsbEluc3QobGx2bTo6VmFsdWUgKmZ1bmMsIGNvbnN0IEZ1bmN0aW9uVHlw ZSAqZnVuY1R5cGUsIGxsdm06OlZhbHVlICphcmcwLCBsbHZtOjpWYWx1ZSAqYXJnMSwKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKm5hbWUgPSBOVUxMKTsKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lID0gIiIpOwotIAotICAg ICAvKiogTGF1bmNoIGFuIGFzeW5jaHJvbm91cyB0YXNrIHRvIHJ1biB0aGUgZ2l2ZW4gZnVuY3Rp b24sIHBhc3NpbmcgaXQKLSAgICAgICAgIGhlIGdpdmVuIGFyZ3VtZW50IHZhbHVlcy4gKi8KLUBA IC03NTYsOSArNzU5LDEwIEBAIGNsYXNzIEZ1bmN0aW9uRW1pdENvbnRleHQgewotICAgICB2b2lk IG1hc2tlZFN0b3JlKGxsdm06OlZhbHVlICp2YWx1ZSwgbGx2bTo6VmFsdWUgKnB0ciwgY29uc3Qg VHlwZSAqcHRyVHlwZSwgbGx2bTo6VmFsdWUgKm1hc2spOwotICAgICB2b2lkIHN0b3JlVW5pZm9y bVRvU09BKGxsdm06OlZhbHVlICp2YWx1ZSwgbGx2bTo6VmFsdWUgKnB0ciwgbGx2bTo6VmFsdWUg Km1hc2ssIGNvbnN0IFR5cGUgKnZhbHVlVHlwZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICBjb25zdCBQb2ludGVyVHlwZSAqcHRyVHlwZSk7Ci0tICAgIGxsdm06OlZhbHVlICpsb2FkVW5p Zm9ybUZyb21TT0EobGx2bTo6VmFsdWUgKnB0ciwgbGx2bTo6VmFsdWUgKm1hc2ssIGNvbnN0IFBv aW50ZXJUeXBlICpwdHJUeXBlLCBjb25zdCBjaGFyICpuYW1lKTsKLSsgICAgbGx2bTo6VmFsdWUg KmxvYWRVbmlmb3JtRnJvbVNPQShsbHZtOjpWYWx1ZSAqcHRyLCBsbHZtOjpWYWx1ZSAqbWFzaywg Y29uc3QgUG9pbnRlclR5cGUgKnB0clR5cGUsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUgPSAiIik7Ci0gCi0tICAgIGxsdm06OlZh bHVlICpnYXRoZXIobGx2bTo6VmFsdWUgKnB0ciwgY29uc3QgUG9pbnRlclR5cGUgKnB0clR5cGUs IGxsdm06OlZhbHVlICptYXNrLCBjb25zdCBjaGFyICpuYW1lKTsKLSsgICAgbGx2bTo6VmFsdWUg KmdhdGhlcihsbHZtOjpWYWx1ZSAqcHRyLCBjb25zdCBQb2ludGVyVHlwZSAqcHRyVHlwZSwgbGx2 bTo6VmFsdWUgKm1hc2ssIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lID0gIiIpOwotIAotICAgICBs bHZtOjpWYWx1ZSAqYWRkVmFyeWluZ09mZnNldHNJZk5lZWRlZChsbHZtOjpWYWx1ZSAqcHRyLCBj b25zdCBUeXBlICpwdHJUeXBlKTsKLSB9OwotZGlmZiAtLWdpdCBhL3NyYy9leHByLmNwcCBiL3Ny Yy9leHByLmNwcAotaW5kZXggODBjYzMwMjBhLi42ZDM4ZDE4ODkgMTAwNjQ0Ci0tLS0gYS9zcmMv ZXhwci5jcHAKLSsrKyBiL3NyYy9leHByLmNwcAotQEAgLTEwMjEsMTEgKzEwMjEsMTEgQEAgc3Rh dGljIGxsdm06OlZhbHVlICpsRW1pdE5lZ2F0ZShFeHByICphcmcsIFNvdXJjZVBvcyBwb3MsIEZ1 bmN0aW9uRW1pdENvbnRleHQgKmMKLSAgICAgY3R4LT5TZXREZWJ1Z1Bvcyhwb3MpOwotICAgICBp ZiAodHlwZS0+SXNGbG9hdFR5cGUoKSkgewotICAgICAgICAgbGx2bTo6VmFsdWUgKnplcm8gPSBs bHZtOjpDb25zdGFudEZQOjpnZXRaZXJvVmFsdWVGb3JOZWdhdGlvbih0eXBlLT5MTFZNVHlwZShn LT5jdHgpKTsKLS0gICAgICAgIHJldHVybiBjdHgtPkJpbmFyeU9wZXJhdG9yKGxsdm06Okluc3Ry dWN0aW9uOjpGU3ViLCB6ZXJvLCBhcmdWYWwsIExMVk1HZXROYW1lKGFyZ1ZhbCwgIl9uZWdhdGUi KSk7Ci0rICAgICAgICByZXR1cm4gY3R4LT5CaW5hcnlPcGVyYXRvcihsbHZtOjpJbnN0cnVjdGlv bjo6RlN1YiwgemVybywgYXJnVmFsLCBsbHZtOjpUd2luZShhcmdWYWwtPmdldE5hbWUoKSkgKyAi X25lZ2F0ZSIpOwotICAgICB9IGVsc2UgewotICAgICAgICAgbGx2bTo6VmFsdWUgKnplcm8gPSBs TExWTUNvbnN0YW50VmFsdWUodHlwZSwgZy0+Y3R4LCAwLik7Ci0gICAgICAgICBBc3NlcnRQb3Mo cG9zLCB0eXBlLT5Jc0ludFR5cGUoKSk7Ci0tICAgICAgICByZXR1cm4gY3R4LT5CaW5hcnlPcGVy YXRvcihsbHZtOjpJbnN0cnVjdGlvbjo6U3ViLCB6ZXJvLCBhcmdWYWwsIExMVk1HZXROYW1lKGFy Z1ZhbCwgIl9uZWdhdGUiKSk7Ci0rICAgICAgICByZXR1cm4gY3R4LT5CaW5hcnlPcGVyYXRvcihs bHZtOjpJbnN0cnVjdGlvbjo6U3ViLCB6ZXJvLCBhcmdWYWwsIGxsdm06OlR3aW5lKGFyZ1ZhbC0+ Z2V0TmFtZSgpKSArICJfbmVnYXRlIik7Ci0gICAgIH0KLSB9Ci0gCi1AQCAtMTA0NywxMSArMTA0 NywxMSBAQCBsbHZtOjpWYWx1ZSAqVW5hcnlFeHByOjpHZXRWYWx1ZShGdW5jdGlvbkVtaXRDb250 ZXh0ICpjdHgpIGNvbnN0IHsKLSAgICAgICAgIHJldHVybiBsRW1pdE5lZ2F0ZShleHByLCBwb3Ms IGN0eCk7Ci0gICAgIGNhc2UgTG9naWNhbE5vdDogewotICAgICAgICAgbGx2bTo6VmFsdWUgKmFy Z1ZhbCA9IGV4cHItPkdldFZhbHVlKGN0eCk7Ci0tICAgICAgICByZXR1cm4gY3R4LT5Ob3RPcGVy YXRvcihhcmdWYWwsIExMVk1HZXROYW1lKGFyZ1ZhbCwgIl9sb2dpY2Fsbm90IikpOwotKyAgICAg ICAgcmV0dXJuIGN0eC0+Tm90T3BlcmF0b3IoYXJnVmFsLCBsbHZtOjpUd2luZShhcmdWYWwtPmdl dE5hbWUoKSkgKyAiX2xvZ2ljYWxub3QiKTsKLSAgICAgfQotICAgICBjYXNlIEJpdE5vdDogewot ICAgICAgICAgbGx2bTo6VmFsdWUgKmFyZ1ZhbCA9IGV4cHItPkdldFZhbHVlKGN0eCk7Ci0tICAg ICAgICByZXR1cm4gY3R4LT5Ob3RPcGVyYXRvcihhcmdWYWwsIExMVk1HZXROYW1lKGFyZ1ZhbCwg Il9iaXRub3QiKSk7Ci0rICAgICAgICByZXR1cm4gY3R4LT5Ob3RPcGVyYXRvcihhcmdWYWwsIGxs dm06OlR3aW5lKGFyZ1ZhbC0+Z2V0TmFtZSgpKSArICJfYml0bm90Iik7Ci0gICAgIH0KLSAgICAg ZGVmYXVsdDoKLSAgICAgICAgIEZBVEFMKCJsb2dpYyBlcnJvciIpOwotQEAgLTE1MTgsNyArMTUx OCw4IEBAIHN0YXRpYyBsbHZtOjpWYWx1ZSAqbEVtaXRCaW5hcnlBcml0aChCaW5hcnlFeHByOjpP cCBvcCwgbGx2bTo6VmFsdWUgKnZhbHVlMCwgbGx2Ci0gICAgICAgICAgICAgcmV0dXJuIE5VTEw7 Ci0gICAgICAgICB9Ci0gCi0tICAgICAgICByZXR1cm4gY3R4LT5CaW5hcnlPcGVyYXRvcihpbnN0 LCB2YWx1ZTAsIHZhbHVlMSwgTExWTUdldE5hbWUob3BOYW1lLCB2YWx1ZTAsIHZhbHVlMSkpOwot KyAgICAgICAgcmV0dXJuIGN0eC0+QmluYXJ5T3BlcmF0b3IoaW5zdCwgdmFsdWUwLCB2YWx1ZTEs Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKChsbHZtOjpUd2luZShvcE5h bWUpICsgIl8iKSArIHZhbHVlMC0+Z2V0TmFtZSgpKSArICJfIikgKyB2YWx1ZTEtPmdldE5hbWUo KSk7Ci0gICAgIH0KLSB9Ci0gCi1AQCAtMTU2Myw3ICsxNTY0LDcgQEAgc3RhdGljIGxsdm06OlZh bHVlICpsRW1pdEJpbmFyeUNtcChCaW5hcnlFeHByOjpPcCBvcCwgbGx2bTo6VmFsdWUgKmUwVmFs LCBsbHZtOjoKLSAgICAgfQotIAotICAgICBsbHZtOjpWYWx1ZSAqY21wID0gY3R4LT5DbXBJbnN0 KGlzRmxvYXRPcCA/IGxsdm06Okluc3RydWN0aW9uOjpGQ21wIDogbGx2bTo6SW5zdHJ1Y3Rpb246 OklDbXAsIHByZWQsIGUwVmFsLCBlMVZhbCwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBMTFZNR2V0TmFtZShvcE5hbWUsIGUwVmFsLCBlMVZhbCkpOwotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICgoKGxsdm06OlR3aW5lKG9wTmFtZSkgKyAiXyIpICsg ZTBWYWwtPmdldE5hbWUoKSkgKyAiXyIpICsgZTFWYWwtPmdldE5hbWUoKSk7Ci0gICAgIC8vIFRo aXMgaXMgYSBsaXR0bGUgdWdseTogQ21wSW5zdCByZXR1cm5zIGkxIHZhbHVlcywgYnV0IHdlIHVz ZSB2ZWN0b3JzCi0gICAgIC8vIG9mIGkzMnMgZm9yIHZhcnlpbmcgYm9vbCB2YWx1ZXM7IHR5cGUg Y29udmVydCB0aGUgcmVzdWx0IGhlcmUgaWYKLSAgICAgLy8gbmVlZGVkLgotQEAgLTQxNzcsNyAr NDE3OCw3IEBAIHN0YXRpYyBsbHZtOjpWYWx1ZSAqbENvbnZlcnRUb1NsaWNlUG9pbnRlcihGdW5j dGlvbkVtaXRDb250ZXh0ICpjdHgsIGxsdm06OlZhbHVlCi0gICAgIC8vIG9mZnNldHMKLSAgICAg bGx2bTo6VmFsdWUgKnJlc3VsdCA9IGxsdm06OkNvbnN0YW50OjpnZXROdWxsVmFsdWUoc2xpY2VT dHJ1Y3RUeXBlKTsKLSAgICAgLy8gQW5kIHJlcGxhY2UgdGhlIHBvaW50ZXIgaW4gdGhlIHN0cnVj dCB3aXRoIHRoZSBnaXZlbiBwb2ludGVyCi0tICAgIHJldHVybiBjdHgtPkluc2VydEluc3QocmVz dWx0LCBwdHIsIDAsIExMVk1HZXROYW1lKHB0ciwgIl9zbGljZSIpKTsKLSsgICAgcmV0dXJuIGN0 eC0+SW5zZXJ0SW5zdChyZXN1bHQsIHB0ciwgMCwgbGx2bTo6VHdpbmUocHRyLT5nZXROYW1lKCkp ICsgIl9zbGljZSIpOwotIH0KLSAKLSAvKiogSWYgdGhlIGdpdmVuIGFycmF5IGluZGV4IGlzIGEg Y29tcGlsZSB0aW1lIGNvbnN0YW50LCBjaGVjayB0byBzZWUgaWYgaXQKLUBAIC00MjU4LDggKzQy NTksOCBAQCBsbHZtOjpWYWx1ZSAqSW5kZXhFeHByOjpHZXRMVmFsdWUoRnVuY3Rpb25FbWl0Q29u dGV4dCAqY3R4KSBjb25zdCB7Ci0gICAgICAgICAvLyBDb252ZXJ0IHRvIGEgc2xpY2UgcG9pbnRl ciBpZiB3ZSdyZSBpbmRleGluZyBpbnRvIFNPQSBkYXRhCi0gICAgICAgICBiYXNlUHRyVmFsdWUg PSBsQ29udmVydFB0clRvU2xpY2VJZk5lZWRlZChjdHgsIGJhc2VQdHJWYWx1ZSwgJmJhc2VFeHBy VHlwZSk7Ci0gCi0tICAgICAgICBsbHZtOjpWYWx1ZSAqcHRyID0KLS0gICAgICAgICAgICBjdHgt PkdldEVsZW1lbnRQdHJJbnN0KGJhc2VQdHJWYWx1ZSwgaW5kZXhWYWx1ZSwgYmFzZUV4cHJUeXBl LCBMTFZNR2V0TmFtZShiYXNlUHRyVmFsdWUsICJfb2Zmc2V0IikpOwotKyAgICAgICAgbGx2bTo6 VmFsdWUgKnB0ciA9IGN0eC0+R2V0RWxlbWVudFB0ckluc3QoYmFzZVB0clZhbHVlLCBpbmRleFZh bHVlLCBiYXNlRXhwclR5cGUsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBsbHZtOjpUd2luZShiYXNlUHRyVmFsdWUtPmdldE5hbWUoKSkgKyAiX29m ZnNldCIpOwotICAgICAgICAgcmV0dXJuIGxBZGRWYXJ5aW5nT2Zmc2V0c0lmTmVlZGVkKGN0eCwg cHRyLCBHZXRMVmFsdWVUeXBlKCkpOwotICAgICB9Ci0gCi1AQCAtNDI5MCw4ICs0MjkxLDggQEAg bGx2bTo6VmFsdWUgKkluZGV4RXhwcjo6R2V0TFZhbHVlKEZ1bmN0aW9uRW1pdENvbnRleHQgKmN0 eCkgY29uc3QgewotICAgICBjdHgtPlNldERlYnVnUG9zKHBvcyk7Ci0gCi0gICAgIC8vIEFuZCBk byB0aGUgYWN0dWFsIGluZGV4aW5nIGNhbGN1bGF0aW9uLi4KLS0gICAgbGx2bTo6VmFsdWUgKnB0 ciA9Ci0tICAgICAgICBjdHgtPkdldEVsZW1lbnRQdHJJbnN0KGJhc2VQdHIsIExMVk1JbnQzMigw KSwgaW5kZXhWYWx1ZSwgYmFzZVB0clR5cGUsIExMVk1HZXROYW1lKGJhc2VQdHIsICJfb2Zmc2V0 IikpOwotKyAgICBsbHZtOjpWYWx1ZSAqcHRyID0gY3R4LT5HZXRFbGVtZW50UHRySW5zdChiYXNl UHRyLCBMTFZNSW50MzIoMCksIGluZGV4VmFsdWUsIGJhc2VQdHJUeXBlLAotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpUd2luZShiYXNlUHRyLT5n ZXROYW1lKCkpICsgIl9vZmZzZXQiKTsKLSAgICAgcmV0dXJuIGxBZGRWYXJ5aW5nT2Zmc2V0c0lm TmVlZGVkKGN0eCwgcHRyLCBHZXRMVmFsdWVUeXBlKCkpOwotIH0KLSAKLUBAIC00Nzg4LDE1ICs0 Nzg5LDE0IEBAIGxsdm06OlZhbHVlICpWZWN0b3JNZW1iZXJFeHByOjpHZXRWYWx1ZShGdW5jdGlv bkVtaXRDb250ZXh0ICpjdHgpIGNvbnN0IHsKLSAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBp IDwgaWRlbnRpZmllci5zaXplKCk7ICsraSkgewotICAgICAgICAgICAgIGNoYXIgaWRTdHJbMl0g PSB7aWRlbnRpZmllcltpXSwgJ1wwJ307Ci0gICAgICAgICAgICAgbGx2bTo6VmFsdWUgKmVsZW1l bnRQdHIgPQotLSAgICAgICAgICAgICAgICBjdHgtPkFkZEVsZW1lbnRPZmZzZXQoYmFzZVB0ciwg aW5kaWNlc1tpXSwgYmFzZVB0clR5cGUsIExMVk1HZXROYW1lKGJhc2VQdHIsIGlkU3RyKSk7Ci0r ICAgICAgICAgICAgICAgIGN0eC0+QWRkRWxlbWVudE9mZnNldChiYXNlUHRyLCBpbmRpY2VzW2ld LCBiYXNlUHRyVHlwZSwgbGx2bTo6VHdpbmUoYmFzZVB0ci0+Z2V0TmFtZSgpKSArIGlkU3RyKTsK LSAgICAgICAgICAgICBsbHZtOjpWYWx1ZSAqZWxlbWVudFZhbHVlID0gY3R4LT5Mb2FkSW5zdChl bGVtZW50UHRyLCBlbGVtZW50TWFzaywgZWxlbWVudFB0clR5cGUpOwotIAotLSAgICAgICAgICAg IGNvbnN0IGNoYXIgKnJlc3VsdE5hbWUgPSBMTFZNR2V0TmFtZShyZXN1bHRQdHIsIGlkU3RyKTsK LS0gICAgICAgICAgICBsbHZtOjpWYWx1ZSAqcHRtcCA9IGN0eC0+QWRkRWxlbWVudE9mZnNldChy ZXN1bHRQdHIsIGksIE5VTEwsIHJlc3VsdE5hbWUpOwotKyAgICAgICAgICAgIGxsdm06OlZhbHVl ICpwdG1wID0gY3R4LT5BZGRFbGVtZW50T2Zmc2V0KHJlc3VsdFB0ciwgaSwgTlVMTCwgbGx2bTo6 VHdpbmUocmVzdWx0UHRyLT5nZXROYW1lKCkpICsgaWRTdHIpOwotICAgICAgICAgICAgIGN0eC0+ U3RvcmVJbnN0KGVsZW1lbnRWYWx1ZSwgcHRtcCwgZWxlbWVudFB0clR5cGUsIGV4cHItPkdldFR5 cGUoKS0+SXNVbmlmb3JtVHlwZSgpKTsKLSAgICAgICAgIH0KLSAKLS0gICAgICAgIHJldHVybiBj dHgtPkxvYWRJbnN0KHJlc3VsdFB0ciwgbWVtYmVyVHlwZSwgTExWTUdldE5hbWUoYmFzZVB0ciwg Il9zd2l6emxlIikpOwotKyAgICAgICAgcmV0dXJuIGN0eC0+TG9hZEluc3QocmVzdWx0UHRyLCBt ZW1iZXJUeXBlLCBsbHZtOjpUd2luZShiYXNlUHRyLT5nZXROYW1lKCkpICsgIl9zd2l6emxlIik7 Ci0gICAgIH0KLSB9Ci0gCi1AQCAtNDkzMiw3ICs0OTMyLDcgQEAgbGx2bTo6VmFsdWUgKk1lbWJl ckV4cHI6OkdldFZhbHVlKEZ1bmN0aW9uRW1pdENvbnRleHQgKmN0eCkgY29uc3QgewotIAotICAg ICBjdHgtPlNldERlYnVnUG9zKHBvcyk7Ci0gICAgIHN0ZDo6c3RyaW5nIHN1ZmZpeCA9IHN0ZDo6 c3RyaW5nKCJfIikgKyBpZGVudGlmaWVyOwotLSAgICByZXR1cm4gY3R4LT5Mb2FkSW5zdChsdmFs dWUsIG1hc2ssIGx2YWx1ZVR5cGUsIExMVk1HZXROYW1lKGx2YWx1ZSwgc3VmZml4LmNfc3RyKCkp KTsKLSsgICAgcmV0dXJuIGN0eC0+TG9hZEluc3QobHZhbHVlLCBtYXNrLCBsdmFsdWVUeXBlLCBs bHZtOjpUd2luZShsdmFsdWUtPmdldE5hbWUoKSkgKyBzdWZmaXgpOwotIH0KLSAKLSBjb25zdCBU eXBlICpNZW1iZXJFeHByOjpHZXRUeXBlKCkgY29uc3QgeyByZXR1cm4gTlVMTDsgfQotQEAgLTY1 MDIsNyArNjUwMiw3IEBAIHN0YXRpYyBsbHZtOjpWYWx1ZSAqbFR5cGVDb252QXRvbWljKEZ1bmN0 aW9uRW1pdENvbnRleHQgKmN0eCwgbGx2bTo6VmFsdWUgKmV4cHJWCi0gICAgICAgICAgICAgICAg IC8vIGRvZXMgZm9yIGV2ZXJ5b25lIGVsc2UuLi4KLSAgICAgICAgICAgICAgICAgQXNzZXJ0KGNh c3QpOwotICAgICAgICAgICAgICAgICBjYXN0ID0gY3R4LT5Td2l0Y2hCb29sU2l6ZShjYXN0LCBM TFZNVHlwZXM6OkJvb2xWZWN0b3JUeXBlLT5nZXRFbGVtZW50VHlwZSgpLAotLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMTFZNR2V0TmFtZShjYXN0LCAidG9faV9i b29sIikpOwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsbHZt OjpUd2luZShjYXN0LT5nZXROYW1lKCkpICsgInRvX2lfYm9vbCIpOwotICAgICAgICAgICAgIH0K LSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgLy8gZnJvbVR5cGUtPklzVmFyeWluZ1R5 cGUoKSkKLUBAIC04MjQ2LDcgKzgyNDYsNyBAQCBsbHZtOjpWYWx1ZSAqTmV3RXhwcjo6R2V0VmFs dWUoRnVuY3Rpb25FbWl0Q29udGV4dCAqY3R4KSBjb25zdCB7Ci0gICAgICAgICAvLyBwb2ludGVy IG9mIHRoZSByZXR1cm4gdHlwZSBhbmQgdG8gcnVuIHRoZSBjb2RlIGZvciBpbml0aWFsaXplcnMs Ci0gICAgICAgICAvLyBpZiBwcmVzZW50LgotICAgICAgICAgbGx2bTo6VHlwZSAqcHRyVHlwZSA9 IHJldFR5cGUtPkxMVk1UeXBlKGctPmN0eCk7Ci0tICAgICAgICBwdHJWYWx1ZSA9IGN0eC0+Qml0 Q2FzdEluc3QocHRyVmFsdWUsIHB0clR5cGUsIExMVk1HZXROYW1lKHB0clZhbHVlLCAiX2Nhc3Rf cHRyIikpOwotKyAgICAgICAgcHRyVmFsdWUgPSBjdHgtPkJpdENhc3RJbnN0KHB0clZhbHVlLCBw dHJUeXBlLCBsbHZtOjpUd2luZShwdHJWYWx1ZS0+Z2V0TmFtZSgpKSArICJfY2FzdF9wdHIiKTsK LSAKLSAgICAgICAgIGlmIChpbml0RXhwciAhPSBOVUxMKQotICAgICAgICAgICAgIEluaXRTeW1i b2wocHRyVmFsdWUsIGFsbG9jVHlwZSwgaW5pdEV4cHIsIGN0eCwgcG9zKTsKLWRpZmYgLS1naXQg YS9zcmMvbGx2bXV0aWwuY3BwIGIvc3JjL2xsdm11dGlsLmNwcAotaW5kZXggOTcwMTc1ZGJmLi5k MGJlY2I5ZjUgMTAwNjQ0Ci0tLS0gYS9zcmMvbGx2bXV0aWwuY3BwCi0rKysgYi9zcmMvbGx2bXV0 aWwuY3BwCi1AQCAtMTYwNSwyMyArMTYwNSw2IEBAIGxsdm06OlZhbHVlICpMTFZNU2h1ZmZsZVZl Y3RvcnMobGx2bTo6VmFsdWUgKnYxLCBsbHZtOjpWYWx1ZSAqdjIsIGludDMyX3Qgc2h1ZltdCi0g ICAgIHJldHVybiBuZXcgbGx2bTo6U2h1ZmZsZVZlY3Rvckluc3QodjEsIHYyLCB2ZWMsICJzaHVm ZmxlIiwgaW5zZXJ0QmVmb3JlKTsKLSB9Ci0gCi0tY29uc3QgY2hhciAqTExWTUdldE5hbWUobGx2 bTo6VmFsdWUgKnYsIGNvbnN0IGNoYXIgKnMpIHsKLS0gICAgaWYgKHYgPT0gTlVMTCkKLS0gICAg ICAgIHJldHVybiBzOwotLSAgICBzdGQ6OnN0cmluZyByZXQgPSBzdGQ6OnN0cmluZyh2LT5nZXRO YW1lKCkpOwotLSAgICByZXQgKz0gczsKLS0gICAgcmV0dXJuIHN0cmR1cChyZXQuY19zdHIoKSk7 Ci0tfQotLQotLWNvbnN0IGNoYXIgKkxMVk1HZXROYW1lKGNvbnN0IGNoYXIgKm9wLCBsbHZtOjpW YWx1ZSAqdjEsIGxsdm06OlZhbHVlICp2MikgewotLSAgICBzdGQ6OnN0cmluZyByID0gb3A7Ci0t ICAgIHIgKz0gIl8iOwotLSAgICByICs9IHYxLT5nZXROYW1lKCkuc3RyKCk7Ci0tICAgIHIgKz0g Il8iOwotLSAgICByICs9IHYyLT5nZXROYW1lKCkuc3RyKCk7Ci0tICAgIHJldHVybiBzdHJkdXAo ci5jX3N0cigpKTsKLS19Ci0tCi0gI2lmZGVmIElTUENfR0VOWF9FTkFCTEVECi0gYm9vbCBsSXNT Vk1Mb2FkKGxsdm06Okluc3RydWN0aW9uICppbnN0KSB7Ci0gICAgIEFzc2VydChpbnN0KTsKLWRp ZmYgLS1naXQgYS9zcmMvbGx2bXV0aWwuaCBiL3NyYy9sbHZtdXRpbC5oCi1pbmRleCA0MmNjZTRk ODMuLjA3ZDA4OWJiNCAxMDA2NDQKLS0tLSBhL3NyYy9sbHZtdXRpbC5oCi0rKysgYi9zcmMvbGx2 bXV0aWwuaAotQEAgLTMyOCwxMSArMzI4LDYgQEAgZXh0ZXJuIGxsdm06OlZhbHVlICpMTFZNQ29u Y2F0VmVjdG9ycyhsbHZtOjpWYWx1ZSAqdjEsIGxsdm06OlZhbHVlICp2MiwgbGx2bTo6SW4KLSBl eHRlcm4gbGx2bTo6VmFsdWUgKkxMVk1TaHVmZmxlVmVjdG9ycyhsbHZtOjpWYWx1ZSAqdjEsIGxs dm06OlZhbHVlICp2MiwgaW50MzJfdCBzaHVmW10sIGludCBzaHVmU2l6ZSwKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpJbnN0cnVjdGlvbiAqaW5zZXJ0QmVm b3JlKTsKLSAKLS0vKiogVXRpbGl0eSByb3V0aW5lcyB0byBjb25jYXQgc3RyaW5ncyB3aXRoIHRo ZSBuYW1lcyBvZiBleGlzdGluZyB2YWx1ZXMgdG8KLS0gICAgY3JlYXRlIG1lYW5pbmdmdWwgbmV3 IG5hbWVzIGZvciBpbnN0cnVjdGlvbiB2YWx1ZXMuCi0tKi8KLS1leHRlcm4gY29uc3QgY2hhciAq TExWTUdldE5hbWUobGx2bTo6VmFsdWUgKnYsIGNvbnN0IGNoYXIgKik7Ci0tZXh0ZXJuIGNvbnN0 IGNoYXIgKkxMVk1HZXROYW1lKGNvbnN0IGNoYXIgKm9wLCBsbHZtOjpWYWx1ZSAqdjEsIGxsdm06 OlZhbHVlICp2Mik7Ci0gI2lmZGVmIElTUENfR0VOWF9FTkFCTEVECi0gZW51bSBBZGRyZXNzU3Bh Y2UgeyBMb2NhbCwgR2xvYmFsLCBFeHRlcm5hbCB9OwotIAotZGlmZiAtLWdpdCBhL3NyYy9vcHQu Y3BwIGIvc3JjL29wdC5jcHAKLWluZGV4IDViMWFjN2I2My4uOWQ2Y2FlMDU4IDEwMDY0NAotLS0t IGEvc3JjL29wdC5jcHAKLSsrKyBiL3NyYy9vcHQuY3BwCi1AQCAtMjU3LDcgKzI1Nyw3IEBAIHN0 YXRpYyBib29sIGxHZXRTb3VyY2VQb3NGcm9tTWV0YWRhdGEoY29uc3QgbGx2bTo6SW5zdHJ1Y3Rp b24gKmluc3QsIFNvdXJjZVBvcyAqCi0gICAgIHJldHVybiB0cnVlOwotIH0KLSAKLS1zdGF0aWMg bGx2bTo6SW5zdHJ1Y3Rpb24gKmxDYWxsSW5zdChsbHZtOjpGdW5jdGlvbiAqZnVuYywgbGx2bTo6 VmFsdWUgKmFyZzAsIGxsdm06OlZhbHVlICphcmcxLCBjb25zdCBjaGFyICpuYW1lLAotK3N0YXRp YyBsbHZtOjpJbnN0cnVjdGlvbiAqbENhbGxJbnN0KGxsdm06OkZ1bmN0aW9uICpmdW5jLCBsbHZt OjpWYWx1ZSAqYXJnMCwgbGx2bTo6VmFsdWUgKmFyZzEsIGNvbnN0IGxsdm06OlR3aW5lICZuYW1l LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06Okluc3RydWN0aW9u ICppbnNlcnRCZWZvcmUgPSBOVUxMKSB7Ci0gICAgIGxsdm06OlZhbHVlICphcmdzWzJdID0ge2Fy ZzAsIGFyZzF9OwotICAgICBsbHZtOjpBcnJheVJlZjxsbHZtOjpWYWx1ZSAqPiBuZXdBcmdBcnJh eSgmYXJnc1swXSwgJmFyZ3NbMl0pOwotQEAgLTI2NSwyMSArMjY1LDIyIEBAIHN0YXRpYyBsbHZt OjpJbnN0cnVjdGlvbiAqbENhbGxJbnN0KGxsdm06OkZ1bmN0aW9uICpmdW5jLCBsbHZtOjpWYWx1 ZSAqYXJnMCwgbGx2Ci0gfQotIAotIHN0YXRpYyBsbHZtOjpJbnN0cnVjdGlvbiAqbENhbGxJbnN0 KGxsdm06OkZ1bmN0aW9uICpmdW5jLCBsbHZtOjpWYWx1ZSAqYXJnMCwgbGx2bTo6VmFsdWUgKmFy ZzEsIGxsdm06OlZhbHVlICphcmcyLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGNvbnN0IGNoYXIgKm5hbWUsIGxsdm06Okluc3RydWN0aW9uICppbnNlcnRCZWZvcmUgPSBO VUxMKSB7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGx2bTo6 VHdpbmUgJm5hbWUsIGxsdm06Okluc3RydWN0aW9uICppbnNlcnRCZWZvcmUgPSBOVUxMKSB7Ci0g ICAgIGxsdm06OlZhbHVlICphcmdzWzNdID0ge2FyZzAsIGFyZzEsIGFyZzJ9OwotICAgICBsbHZt OjpBcnJheVJlZjxsbHZtOjpWYWx1ZSAqPiBuZXdBcmdBcnJheSgmYXJnc1swXSwgJmFyZ3NbM10p OwotICAgICByZXR1cm4gbGx2bTo6Q2FsbEluc3Q6OkNyZWF0ZShmdW5jLCBuZXdBcmdBcnJheSwg bmFtZSwgaW5zZXJ0QmVmb3JlKTsKLSB9Ci0gCi0gc3RhdGljIGxsdm06Okluc3RydWN0aW9uICps Q2FsbEluc3QobGx2bTo6RnVuY3Rpb24gKmZ1bmMsIGxsdm06OlZhbHVlICphcmcwLCBsbHZtOjpW YWx1ZSAqYXJnMSwgbGx2bTo6VmFsdWUgKmFyZzIsCi0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgbGx2bTo6VmFsdWUgKmFyZzMsIGNvbnN0IGNoYXIgKm5hbWUsIGxsdm06Oklu c3RydWN0aW9uICppbnNlcnRCZWZvcmUgPSBOVUxMKSB7Ci0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgbGx2bTo6VmFsdWUgKmFyZzMsIGNvbnN0IGxsdm06OlR3aW5lICZuYW1l LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06Okluc3RydWN0aW9u ICppbnNlcnRCZWZvcmUgPSBOVUxMKSB7Ci0gICAgIGxsdm06OlZhbHVlICphcmdzWzRdID0ge2Fy ZzAsIGFyZzEsIGFyZzIsIGFyZzN9OwotICAgICBsbHZtOjpBcnJheVJlZjxsbHZtOjpWYWx1ZSAq PiBuZXdBcmdBcnJheSgmYXJnc1swXSwgJmFyZ3NbNF0pOwotICAgICByZXR1cm4gbGx2bTo6Q2Fs bEluc3Q6OkNyZWF0ZShmdW5jLCBuZXdBcmdBcnJheSwgbmFtZSwgaW5zZXJ0QmVmb3JlKTsKLSB9 Ci0gCi0gc3RhdGljIGxsdm06Okluc3RydWN0aW9uICpsQ2FsbEluc3QobGx2bTo6RnVuY3Rpb24g KmZ1bmMsIGxsdm06OlZhbHVlICphcmcwLCBsbHZtOjpWYWx1ZSAqYXJnMSwgbGx2bTo6VmFsdWUg KmFyZzIsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6VmFsdWUg KmFyZzMsIGxsdm06OlZhbHVlICphcmc0LCBjb25zdCBjaGFyICpuYW1lLAotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06OlZhbHVlICphcmczLCBsbHZtOjpWYWx1ZSAq YXJnNCwgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmluc2VydEJlZm9yZSA9IE5VTEwpIHsKLSAg ICAgbGx2bTo6VmFsdWUgKmFyZ3NbNV0gPSB7YXJnMCwgYXJnMSwgYXJnMiwgYXJnMywgYXJnNH07 Ci0gICAgIGxsdm06OkFycmF5UmVmPGxsdm06OlZhbHVlICo+IG5ld0FyZ0FycmF5KCZhcmdzWzBd LCAmYXJnc1s1XSk7Ci1AQCAtMjg3LDcgKzI4OCw3IEBAIHN0YXRpYyBsbHZtOjpJbnN0cnVjdGlv biAqbENhbGxJbnN0KGxsdm06OkZ1bmN0aW9uICpmdW5jLCBsbHZtOjpWYWx1ZSAqYXJnMCwgbGx2 Ci0gfQotIAotIHN0YXRpYyBsbHZtOjpJbnN0cnVjdGlvbiAqbENhbGxJbnN0KGxsdm06OkZ1bmN0 aW9uICpmdW5jLCBsbHZtOjpWYWx1ZSAqYXJnMCwgbGx2bTo6VmFsdWUgKmFyZzEsIGxsdm06OlZh bHVlICphcmcyLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06OlZh bHVlICphcmczLCBsbHZtOjpWYWx1ZSAqYXJnNCwgbGx2bTo6VmFsdWUgKmFyZzUsIGNvbnN0IGNo YXIgKm5hbWUsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6VmFs dWUgKmFyZzMsIGxsdm06OlZhbHVlICphcmc0LCBsbHZtOjpWYWx1ZSAqYXJnNSwgY29uc3QgbGx2 bTo6VHdpbmUgJm5hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGx2 bTo6SW5zdHJ1Y3Rpb24gKmluc2VydEJlZm9yZSA9IE5VTEwpIHsKLSAgICAgbGx2bTo6VmFsdWUg KmFyZ3NbNl0gPSB7YXJnMCwgYXJnMSwgYXJnMiwgYXJnMywgYXJnNCwgYXJnNX07Ci0gICAgIGxs dm06OkFycmF5UmVmPGxsdm06OlZhbHVlICo+IG5ld0FyZ0FycmF5KCZhcmdzWzBdLCAmYXJnc1s2 XSk7Ci1AQCAtOTkxLDIzICs5OTIsMjQgQEAgYm9vbCBJbnRyaW5zaWNzT3B0OjpydW5PbkJhc2lj QmxvY2sobGx2bTo6QmFzaWNCbG9jayAmYmIpIHsKLSAgICAgICAgICAgICAgICAgbGx2bTo6VHlw ZSAqcmV0dXJuVHlwZSA9IGNhbGxJbnN0LT5nZXRUeXBlKCk7Ci0gICAgICAgICAgICAgICAgIEFz c2VydChsbHZtOjppc2E8bGx2bTo6VmVjdG9yVHlwZT4ocmV0dXJuVHlwZSkpOwotICAgICAgICAg ICAgICAgICAvLyBjYXN0IHRoZSBpOCAqIHRvIHRoZSBhcHByb3ByaWF0ZSB0eXBlCi0tICAgICAg ICAgICAgICAgIGNvbnN0IGNoYXIgKm5hbWUgPSBMTFZNR2V0TmFtZShjYWxsSW5zdC0+Z2V0QXJn T3BlcmFuZCgwKSwgIl9jYXN0Iik7Ci0tICAgICAgICAgICAgICAgIGxsdm06OlZhbHVlICpjYXN0 UHRyID0gbmV3IGxsdm06OkJpdENhc3RJbnN0KGNhbGxJbnN0LT5nZXRBcmdPcGVyYW5kKDApLAot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBsbHZtOjpQb2ludGVyVHlwZTo6Z2V0KHJldHVyblR5cGUsIDApLCBuYW1lLCBjYWxsSW5z dCk7Ci0rICAgICAgICAgICAgICAgIGxsdm06OlZhbHVlICpjYXN0UHRyID0KLSsgICAgICAgICAg ICAgICAgICAgIG5ldyBsbHZtOjpCaXRDYXN0SW5zdChjYWxsSW5zdC0+Z2V0QXJnT3BlcmFuZCgw KSwgbGx2bTo6UG9pbnRlclR5cGU6OmdldChyZXR1cm5UeXBlLCAwKSwKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpUd2luZShjYWxsSW5zdC0+Z2V0QXJn T3BlcmFuZCgwKS0+Z2V0TmFtZSgpKSArICJfY2FzdCIsIGNhbGxJbnN0KTsKLSAgICAgICAgICAg ICAgICAgbENvcHlNZXRhZGF0YShjYXN0UHRyLCBjYWxsSW5zdCk7Ci0gICAgICAgICAgICAgICAg IGludCBhbGlnbjsKLSAgICAgICAgICAgICAgICAgaWYgKGctPm9wdC5mb3JjZUFsaWduZWRNZW1v cnkpCi0gICAgICAgICAgICAgICAgICAgICBhbGlnbiA9IGctPnRhcmdldC0+Z2V0TmF0aXZlVmVj dG9yQWxpZ25tZW50KCk7Ci0gICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAg ICAgIGFsaWduID0gY2FsbEluc3QtPmdldENhbGxlZEZ1bmN0aW9uKCkgPT0gYXZ4TWFza2VkTG9h ZDMyID8gNCA6IDg7Ci0tICAgICAgICAgICAgICAgIG5hbWUgPSBMTFZNR2V0TmFtZShjYWxsSW5z dC0+Z2V0QXJnT3BlcmFuZCgwKSwgIl9sb2FkIik7Ci0gI2lmIElTUENfTExWTV9WRVJTSU9OID09 IElTUENfTExWTV8xMF8wCi0tICAgICAgICAgICAgICAgIGxsdm06Okluc3RydWN0aW9uICpsb2Fk SW5zdCA9IG5ldyBsbHZtOjpMb2FkSW5zdChjYXN0UHRyLCBuYW1lLCBmYWxzZSAvKiBub3Qgdm9s YXRpbGUgKi8sCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBsbHZtOjpNYXliZUFsaWduKGFsaWduKSwgKGxsdm06Okluc3Ry dWN0aW9uICopTlVMTCk7Ci0rICAgICAgICAgICAgICAgIGxsdm06Okluc3RydWN0aW9uICpsb2Fk SW5zdCA9Ci0rICAgICAgICAgICAgICAgICAgICBuZXcgbGx2bTo6TG9hZEluc3QoY2FzdFB0ciwg bGx2bTo6VHdpbmUoY2FsbEluc3QtPmdldEFyZ09wZXJhbmQoMCktPmdldE5hbWUoKSkgKyAiX2xv YWQiLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlIC8qIG5v dCB2b2xhdGlsZSAqLywgbGx2bTo6TWF5YmVBbGlnbihhbGlnbiksIChsbHZtOjpJbnN0cnVjdGlv biAqKU5VTEwpOwotICNlbHNlCi0gICAgICAgICAgICAgICAgIGxsdm06Okluc3RydWN0aW9uICps b2FkSW5zdCA9IG5ldyBsbHZtOjpMb2FkSW5zdCgKLS0gICAgICAgICAgICAgICAgICAgIGxsdm06 OmR5bl9jYXN0PGxsdm06OlBvaW50ZXJUeXBlPihjYXN0UHRyLT5nZXRUeXBlKCkpLT5nZXRQb2lu dGVyRWxlbWVudFR5cGUoKSwgY2FzdFB0ciwgbmFtZSwKLS0gICAgICAgICAgICAgICAgICAgIGZh bHNlIC8qIG5vdCB2b2xhdGlsZSAqLywgbGx2bTo6TWF5YmVBbGlnbihhbGlnbikudmFsdWVPck9u ZSgpLCAobGx2bTo6SW5zdHJ1Y3Rpb24gKilOVUxMKTsKLSsgICAgICAgICAgICAgICAgICAgIGxs dm06OmR5bl9jYXN0PGxsdm06OlBvaW50ZXJUeXBlPihjYXN0UHRyLT5nZXRUeXBlKCkpLT5nZXRQ b2ludGVyRWxlbWVudFR5cGUoKSwgY2FzdFB0ciwKLSsgICAgICAgICAgICAgICAgICAgIGxsdm06 OlR3aW5lKGNhbGxJbnN0LT5nZXRBcmdPcGVyYW5kKDApLT5nZXROYW1lKCkpICsgIl9sb2FkIiwg ZmFsc2UgLyogbm90IHZvbGF0aWxlICovLAotKyAgICAgICAgICAgICAgICAgICAgbGx2bTo6TWF5 YmVBbGlnbihhbGlnbikudmFsdWVPck9uZSgpLCAobGx2bTo6SW5zdHJ1Y3Rpb24gKilOVUxMKTsK LSAjZW5kaWYKLSAgICAgICAgICAgICAgICAgbENvcHlNZXRhZGF0YShsb2FkSW5zdCwgY2FsbElu c3QpOwotICAgICAgICAgICAgICAgICBsbHZtOjpSZXBsYWNlSW5zdFdpdGhJbnN0KGNhbGxJbnN0 LCBsb2FkSW5zdCk7Ci1AQCAtMTAyOCw5ICsxMDMwLDkgQEAgYm9vbCBJbnRyaW5zaWNzT3B0Ojpy dW5PbkJhc2ljQmxvY2sobGx2bTo6QmFzaWNCbG9jayAmYmIpIHsKLSAgICAgICAgICAgICAgICAg Ly8gYWxsIGxhbmVzIHN0b3JpbmcsIHNvIHJlcGxhY2Ugd2l0aCBhIHJlZ3VsYXIgc3RvcmUKLSAg ICAgICAgICAgICAgICAgbGx2bTo6VmFsdWUgKnJ2YWx1ZSA9IGNhbGxJbnN0LT5nZXRBcmdPcGVy YW5kKDIpOwotICAgICAgICAgICAgICAgICBsbHZtOjpUeXBlICpzdG9yZVR5cGUgPSBydmFsdWUt PmdldFR5cGUoKTsKLS0gICAgICAgICAgICAgICAgY29uc3QgY2hhciAqbmFtZSA9IExMVk1HZXRO YW1lKGNhbGxJbnN0LT5nZXRBcmdPcGVyYW5kKDApLCAiX3B0cmNhc3QiKTsKLS0gICAgICAgICAg ICAgICAgbGx2bTo6VmFsdWUgKmNhc3RQdHIgPSBuZXcgbGx2bTo6Qml0Q2FzdEluc3QoY2FsbElu c3QtPmdldEFyZ09wZXJhbmQoMCksCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06OlBvaW50ZXJUeXBlOjpnZXQoc3RvcmVU eXBlLCAwKSwgbmFtZSwgY2FsbEluc3QpOwotKyAgICAgICAgICAgICAgICBsbHZtOjpWYWx1ZSAq Y2FzdFB0ciA9Ci0rICAgICAgICAgICAgICAgICAgICBuZXcgbGx2bTo6Qml0Q2FzdEluc3QoY2Fs bEluc3QtPmdldEFyZ09wZXJhbmQoMCksIGxsdm06OlBvaW50ZXJUeXBlOjpnZXQoc3RvcmVUeXBl LCAwKSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpU d2luZShjYWxsSW5zdC0+Z2V0QXJnT3BlcmFuZCgwKS0+Z2V0TmFtZSgpKSArICJfcHRyY2FzdCIs IGNhbGxJbnN0KTsKLSAgICAgICAgICAgICAgICAgbENvcHlNZXRhZGF0YShjYXN0UHRyLCBjYWxs SW5zdCk7Ci0gCi0gICAgICAgICAgICAgICAgIGludCBhbGlnbjsKLUBAIC0xMzM5LDggKzEzNDEs OCBAQCBzdGF0aWMgbGx2bTo6VmFsdWUgKmxHZXRCYXNlUG9pbnRlcihsbHZtOjpWYWx1ZSAqdiwg bGx2bTo6SW5zdHJ1Y3Rpb24gKmluc2VydEJlZgotICAgICAgICAgaWYgKHQgPT0gTlVMTCkgewot ICAgICAgICAgICAgIHJldHVybiBOVUxMOwotICAgICAgICAgfSBlbHNlIHsKLS0gICAgICAgICAg ICByZXR1cm4gbGx2bTo6Q2FzdEluc3Q6OkNyZWF0ZShjaS0+Z2V0T3Bjb2RlKCksIHQsIGNpLT5n ZXRUeXBlKCktPmdldFNjYWxhclR5cGUoKSwgTExWTUdldE5hbWUodCwgIl9jYXN0IiksCi0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5zZXJ0QmVmb3JlKTsKLSsg ICAgICAgICAgICByZXR1cm4gbGx2bTo6Q2FzdEluc3Q6OkNyZWF0ZShjaS0+Z2V0T3Bjb2RlKCks IHQsIGNpLT5nZXRUeXBlKCktPmdldFNjYWxhclR5cGUoKSwKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpUd2luZSh0LT5nZXROYW1lKCkpICsgIl9jYXN0 IiwgaW5zZXJ0QmVmb3JlKTsKLSAgICAgICAgIH0KLSAgICAgfQotIAotQEAgLTE1ODMsMTMgKzE1 ODUsMTMgQEAgc3RhdGljIHZvaWQgbEV4dHJhY3RDb25zdGFudE9mZnNldChsbHZtOjpWYWx1ZSAq dmVjLCBsbHZtOjpWYWx1ZSAqKmNvbnN0T2Zmc2V0LAotICAgICAgICAgaWYgKGNvID09IE5VTEwp Ci0gICAgICAgICAgICAgKmNvbnN0T2Zmc2V0ID0gTlVMTDsKLSAgICAgICAgIGVsc2UKLS0gICAg ICAgICAgICAqY29uc3RPZmZzZXQgPQotLSAgICAgICAgICAgICAgICBsbHZtOjpDYXN0SW5zdDo6 Q3JlYXRlKGNhc3QtPmdldE9wY29kZSgpLCBjbywgY2FzdC0+Z2V0VHlwZSgpLCBMTFZNR2V0TmFt ZShjbywgIl9jYXN0IiksIGluc2VydEJlZm9yZSk7Ci0rICAgICAgICAgICAgKmNvbnN0T2Zmc2V0 ID0gbGx2bTo6Q2FzdEluc3Q6OkNyZWF0ZShjYXN0LT5nZXRPcGNvZGUoKSwgY28sIGNhc3QtPmdl dFR5cGUoKSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGxsdm06OlR3aW5lKGNvLT5nZXROYW1lKCkpICsgIl9jYXN0IiwgaW5zZXJ0QmVmb3JlKTsK LSAgICAgICAgIGlmICh2byA9PSBOVUxMKQotICAgICAgICAgICAgICp2YXJpYWJsZU9mZnNldCA9 IE5VTEw7Ci0gICAgICAgICBlbHNlCi0tICAgICAgICAgICAgKnZhcmlhYmxlT2Zmc2V0ID0KLS0g ICAgICAgICAgICAgICAgbGx2bTo6Q2FzdEluc3Q6OkNyZWF0ZShjYXN0LT5nZXRPcGNvZGUoKSwg dm8sIGNhc3QtPmdldFR5cGUoKSwgTExWTUdldE5hbWUodm8sICJfY2FzdCIpLCBpbnNlcnRCZWZv cmUpOwotKyAgICAgICAgICAgICp2YXJpYWJsZU9mZnNldCA9IGxsdm06OkNhc3RJbnN0OjpDcmVh dGUoY2FzdC0+Z2V0T3Bjb2RlKCksIHZvLCBjYXN0LT5nZXRUeXBlKCksCi0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpUd2luZSh2by0+ Z2V0TmFtZSgpKSArICJfY2FzdCIsIGluc2VydEJlZm9yZSk7Ci0gICAgICAgICByZXR1cm47Ci0g ICAgIH0KLSAKLUBAIC0xNjA4LDE2ICsxNjEwLDE4IEBAIHN0YXRpYyB2b2lkIGxFeHRyYWN0Q29u c3RhbnRPZmZzZXQobGx2bTo6VmFsdWUgKnZlYywgbGx2bTo6VmFsdWUgKipjb25zdE9mZnNldCwK LSAgICAgICAgICAgICBlbHNlIGlmIChjMSA9PSBOVUxMIHx8IGxsdm06OmlzYTxsbHZtOjpDb25z dGFudEFnZ3JlZ2F0ZVplcm8+KGMxKSkKLSAgICAgICAgICAgICAgICAgKmNvbnN0T2Zmc2V0ID0g YzA7Ci0gICAgICAgICAgICAgZWxzZQotLSAgICAgICAgICAgICAgICAqY29uc3RPZmZzZXQgPSBs bHZtOjpCaW5hcnlPcGVyYXRvcjo6Q3JlYXRlKGxsdm06Okluc3RydWN0aW9uOjpBZGQsIGMwLCBj MSwgTExWTUdldE5hbWUoImFkZCIsIGMwLCBjMSksCi0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5zZXJ0QmVmb3JlKTsKLSsgICAg ICAgICAgICAgICAgKmNvbnN0T2Zmc2V0ID0gbGx2bTo6QmluYXJ5T3BlcmF0b3I6OkNyZWF0ZSgK LSsgICAgICAgICAgICAgICAgICAgIGxsdm06Okluc3RydWN0aW9uOjpBZGQsIGMwLCBjMSwgKChs bHZtOjpUd2luZSgiYWRkXyIpICsgYzAtPmdldE5hbWUoKSkgKyAiXyIpICsgYzEtPmdldE5hbWUo KSwKLSsgICAgICAgICAgICAgICAgICAgIGluc2VydEJlZm9yZSk7Ci0gCi0gICAgICAgICAgICAg aWYgKHYwID09IE5VTEwgfHwgbGx2bTo6aXNhPGxsdm06OkNvbnN0YW50QWdncmVnYXRlWmVybz4o djApKQotICAgICAgICAgICAgICAgICAqdmFyaWFibGVPZmZzZXQgPSB2MTsKLSAgICAgICAgICAg ICBlbHNlIGlmICh2MSA9PSBOVUxMIHx8IGxsdm06OmlzYTxsbHZtOjpDb25zdGFudEFnZ3JlZ2F0 ZVplcm8+KHYxKSkKLSAgICAgICAgICAgICAgICAgKnZhcmlhYmxlT2Zmc2V0ID0gdjA7Ci0gICAg ICAgICAgICAgZWxzZQotLSAgICAgICAgICAgICAgICAqdmFyaWFibGVPZmZzZXQgPSBsbHZtOjpC aW5hcnlPcGVyYXRvcjo6Q3JlYXRlKGxsdm06Okluc3RydWN0aW9uOjpBZGQsIHYwLCB2MSwKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBMTFZNR2V0TmFtZSgiYWRkIiwgdjAsIHYxKSwgaW5zZXJ0QmVmb3JlKTsKLSsgICAgICAg ICAgICAgICAgKnZhcmlhYmxlT2Zmc2V0ID0gbGx2bTo6QmluYXJ5T3BlcmF0b3I6OkNyZWF0ZSgK LSsgICAgICAgICAgICAgICAgICAgIGxsdm06Okluc3RydWN0aW9uOjpBZGQsIHYwLCB2MSwgKChs bHZtOjpUd2luZSgiYWRkXyIpICsgdjAtPmdldE5hbWUoKSkgKyAiXyIpICsgdjEtPmdldE5hbWUo KSwKLSsgICAgICAgICAgICAgICAgICAgIGluc2VydEJlZm9yZSk7Ci0gICAgICAgICAgICAgcmV0 dXJuOwotICAgICAgICAgfSBlbHNlIGlmIChib3AtPmdldE9wY29kZSgpID09IGxsdm06Okluc3Ry dWN0aW9uOjpTaGwpIHsKLSAgICAgICAgICAgICBsRXh0cmFjdENvbnN0YW50T2Zmc2V0KG9wMCwg JmMwLCAmdjAsIGluc2VydEJlZm9yZSk7Ci1AQCAtMTYzMywxMCArMTYzNywxMiBAQCBzdGF0aWMg dm9pZCBsRXh0cmFjdENvbnN0YW50T2Zmc2V0KGxsdm06OlZhbHVlICp2ZWMsIGxsdm06OlZhbHVl ICoqY29uc3RPZmZzZXQsCi0gICAgICAgICAgICAgICAgICpjb25zdE9mZnNldCA9IHZlYzsKLSAg ICAgICAgICAgICAgICAgKnZhcmlhYmxlT2Zmc2V0ID0gTlVMTDsKLSAgICAgICAgICAgICB9IGVs c2UgewotLSAgICAgICAgICAgICAgICAqY29uc3RPZmZzZXQgPSBsbHZtOjpCaW5hcnlPcGVyYXRv cjo6Q3JlYXRlKGxsdm06Okluc3RydWN0aW9uOjpTaGwsIGMwLCBjMSwgTExWTUdldE5hbWUoInNo bCIsIGMwLCBjMSksCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgaW5zZXJ0QmVmb3JlKTsKLS0gICAgICAgICAgICAgICAgKnZhcmlh YmxlT2Zmc2V0ID0gbGx2bTo6QmluYXJ5T3BlcmF0b3I6OkNyZWF0ZShsbHZtOjpJbnN0cnVjdGlv bjo6U2hsLCB2MCwgYzEsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgTExWTUdldE5hbWUoInNobCIsIHYwLCBjMSksIGluc2Vy dEJlZm9yZSk7Ci0rICAgICAgICAgICAgICAgICpjb25zdE9mZnNldCA9IGxsdm06OkJpbmFyeU9w ZXJhdG9yOjpDcmVhdGUoCi0rICAgICAgICAgICAgICAgICAgICBsbHZtOjpJbnN0cnVjdGlvbjo6 U2hsLCBjMCwgYzEsICgobGx2bTo6VHdpbmUoInNobF8iKSArIGMwLT5nZXROYW1lKCkpICsgIl8i KSArIGMxLT5nZXROYW1lKCksCi0rICAgICAgICAgICAgICAgICAgICBpbnNlcnRCZWZvcmUpOwot KyAgICAgICAgICAgICAgICAqdmFyaWFibGVPZmZzZXQgPSBsbHZtOjpCaW5hcnlPcGVyYXRvcjo6 Q3JlYXRlKAotKyAgICAgICAgICAgICAgICAgICAgbGx2bTo6SW5zdHJ1Y3Rpb246OlNobCwgdjAs IGMxLCAoKGxsdm06OlR3aW5lKCJzaGxfIikgKyB2MC0+Z2V0TmFtZSgpKSArICJfIikgKyBjMS0+ Z2V0TmFtZSgpLAotKyAgICAgICAgICAgICAgICAgICAgaW5zZXJ0QmVmb3JlKTsKLSAgICAgICAg ICAgICB9Ci0gICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgfSBlbHNlIGlmIChib3AtPmdl dE9wY29kZSgpID09IGxsdm06Okluc3RydWN0aW9uOjpNdWwpIHsKLUBAIC0xNjQ4LDI1ICsxNjU0 LDMwIEBAIHN0YXRpYyB2b2lkIGxFeHRyYWN0Q29uc3RhbnRPZmZzZXQobGx2bTo6VmFsdWUgKnZl YywgbGx2bTo6VmFsdWUgKipjb25zdE9mZnNldCwKLSAgICAgICAgICAgICAvLyBOb3RlIHRoYXQg dGhlIGZpcnN0IHRlcm0gaXMgYSBjb25zdGFudCBhbmQgdGhlIGxhc3QgdGhyZWUgYXJlCi0gICAg ICAgICAgICAgLy8gdmFyaWFibGUuCi0gICAgICAgICAgICAgaWYgKGMwICE9IE5VTEwgJiYgYzEg IT0gTlVMTCkKLS0gICAgICAgICAgICAgICAgKmNvbnN0T2Zmc2V0ID0gbGx2bTo6QmluYXJ5T3Bl cmF0b3I6OkNyZWF0ZShsbHZtOjpJbnN0cnVjdGlvbjo6TXVsLCBjMCwgYzEsIExMVk1HZXROYW1l KCJtdWwiLCBjMCwgYzEpLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGluc2VydEJlZm9yZSk7Ci0rICAgICAgICAgICAgICAgICpj b25zdE9mZnNldCA9IGxsdm06OkJpbmFyeU9wZXJhdG9yOjpDcmVhdGUoCi0rICAgICAgICAgICAg ICAgICAgICBsbHZtOjpJbnN0cnVjdGlvbjo6TXVsLCBjMCwgYzEsICgobGx2bTo6VHdpbmUoIm11 bF8iKSArIGMwLT5nZXROYW1lKCkpICsgIl8iKSArIGMxLT5nZXROYW1lKCksCi0rICAgICAgICAg ICAgICAgICAgICBpbnNlcnRCZWZvcmUpOwotICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAg ICAgICAgKmNvbnN0T2Zmc2V0ID0gTlVMTDsKLSAKLSAgICAgICAgICAgICBsbHZtOjpWYWx1ZSAq dmEgPSBOVUxMLCAqdmIgPSBOVUxMLCAqdmMgPSBOVUxMOwotICAgICAgICAgICAgIGlmICh2MCAh PSBOVUxMICYmIGMxICE9IE5VTEwpCi0tICAgICAgICAgICAgICAgIHZhID0gbGx2bTo6QmluYXJ5 T3BlcmF0b3I6OkNyZWF0ZShsbHZtOjpJbnN0cnVjdGlvbjo6TXVsLCB2MCwgYzEsIExMVk1HZXRO YW1lKCJtdWwiLCB2MCwgYzEpLAotKyAgICAgICAgICAgICAgICB2YSA9IGxsdm06OkJpbmFyeU9w ZXJhdG9yOjpDcmVhdGUobGx2bTo6SW5zdHJ1Y3Rpb246Ok11bCwgdjAsIGMxLAotKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsbHZtOjpUd2luZSgi bXVsXyIpICsgdjAtPmdldE5hbWUoKSkgKyAiXyIpICsgYzEtPmdldE5hbWUoKSwKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluc2VydEJlZm9yZSk7 Ci0gICAgICAgICAgICAgaWYgKGMwICE9IE5VTEwgJiYgdjEgIT0gTlVMTCkKLS0gICAgICAgICAg ICAgICAgdmIgPSBsbHZtOjpCaW5hcnlPcGVyYXRvcjo6Q3JlYXRlKGxsdm06Okluc3RydWN0aW9u OjpNdWwsIGMwLCB2MSwgTExWTUdldE5hbWUoIm11bCIsIGMwLCB2MSksCi0rICAgICAgICAgICAg ICAgIHZiID0gbGx2bTo6QmluYXJ5T3BlcmF0b3I6OkNyZWF0ZShsbHZtOjpJbnN0cnVjdGlvbjo6 TXVsLCBjMCwgdjEsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAoKGxsdm06OlR3aW5lKCJtdWxfIikgKyBjMC0+Z2V0TmFtZSgpKSArICJfIikgKyB2 MS0+Z2V0TmFtZSgpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgaW5zZXJ0QmVmb3JlKTsKLSAgICAgICAgICAgICBpZiAodjAgIT0gTlVMTCAmJiB2 MSAhPSBOVUxMKQotLSAgICAgICAgICAgICAgICB2YyA9IGxsdm06OkJpbmFyeU9wZXJhdG9yOjpD cmVhdGUobGx2bTo6SW5zdHJ1Y3Rpb246Ok11bCwgdjAsIHYxLCBMTFZNR2V0TmFtZSgibXVsIiwg djAsIHYxKSwKLSsgICAgICAgICAgICAgICAgdmMgPSBsbHZtOjpCaW5hcnlPcGVyYXRvcjo6Q3Jl YXRlKGxsdm06Okluc3RydWN0aW9uOjpNdWwsIHYwLCB2MSwKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobGx2bTo6VHdpbmUoIm11bF8iKSArIHYw LT5nZXROYW1lKCkpICsgIl8iKSArIHYxLT5nZXROYW1lKCksCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnNlcnRCZWZvcmUpOwotIAotICAgICAg ICAgICAgIGxsdm06OlZhbHVlICp2YWIgPSBOVUxMOwotICAgICAgICAgICAgIGlmICh2YSAhPSBO VUxMICYmIHZiICE9IE5VTEwpCi0tICAgICAgICAgICAgICAgIHZhYiA9IGxsdm06OkJpbmFyeU9w ZXJhdG9yOjpDcmVhdGUobGx2bTo6SW5zdHJ1Y3Rpb246OkFkZCwgdmEsIHZiLCBMTFZNR2V0TmFt ZSgiYWRkIiwgdmEsIHZiKSwKLSsgICAgICAgICAgICAgICAgdmFiID0gbGx2bTo6QmluYXJ5T3Bl cmF0b3I6OkNyZWF0ZShsbHZtOjpJbnN0cnVjdGlvbjo6QWRkLCB2YSwgdmIsCi0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsbHZtOjpUd2luZSgi YWRkXyIpICsgdmEtPmdldE5hbWUoKSkgKyAiXyIpICsgdmItPmdldE5hbWUoKSwKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnNlcnRCZWZvcmUp OwotICAgICAgICAgICAgIGVsc2UgaWYgKHZhICE9IE5VTEwpCi0gICAgICAgICAgICAgICAgIHZh YiA9IHZhOwotQEAgLTE2NzQsOCArMTY4NSw5IEBAIHN0YXRpYyB2b2lkIGxFeHRyYWN0Q29uc3Rh bnRPZmZzZXQobGx2bTo6VmFsdWUgKnZlYywgbGx2bTo6VmFsdWUgKipjb25zdE9mZnNldCwKLSAg ICAgICAgICAgICAgICAgdmFiID0gdmI7Ci0gCi0gICAgICAgICAgICAgaWYgKHZhYiAhPSBOVUxM ICYmIHZjICE9IE5VTEwpCi0tICAgICAgICAgICAgICAgICp2YXJpYWJsZU9mZnNldCA9IGxsdm06 OkJpbmFyeU9wZXJhdG9yOjpDcmVhdGUobGx2bTo6SW5zdHJ1Y3Rpb246OkFkZCwgdmFiLCB2YywK LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBMTFZNR2V0TmFtZSgiYWRkIiwgdmFiLCB2YyksIGluc2VydEJlZm9yZSk7Ci0rICAg ICAgICAgICAgICAgICp2YXJpYWJsZU9mZnNldCA9IGxsdm06OkJpbmFyeU9wZXJhdG9yOjpDcmVh dGUoCi0rICAgICAgICAgICAgICAgICAgICBsbHZtOjpJbnN0cnVjdGlvbjo6QWRkLCB2YWIsIHZj LCAoKGxsdm06OlR3aW5lKCJhZGRfIikgKyB2YWItPmdldE5hbWUoKSkgKyAiXyIpICsgdmMtPmdl dE5hbWUoKSwKLSsgICAgICAgICAgICAgICAgICAgIGluc2VydEJlZm9yZSk7Ci0gICAgICAgICAg ICAgZWxzZSBpZiAodmFiICE9IE5VTEwpCi0gICAgICAgICAgICAgICAgICp2YXJpYWJsZU9mZnNl dCA9IHZhYjsKLSAgICAgICAgICAgICBlbHNlCi1AQCAtMTk0Myw3ICsxOTU1LDcgQEAgc3RhdGlj IGJvb2wgbE9mZnNldHMzMkJpdFNhZmUobGx2bTo6VmFsdWUgKip2YXJpYWJsZU9mZnNldFB0ciwg bGx2bTo6VmFsdWUgKipjb24KLSAgICAgICAgICAgICAvLyBhbGwgemVyb3MgKGkuZS4gYSBDb25z dGFudEFnZ3JlZ2F0ZVplcm8sIGJ1dCBqdXN0IGluIGNhc2UsCi0gICAgICAgICAgICAgLy8gZG8g dGhlIG1vcmUgZ2VuZXJhbCBjaGVjayB3aXRoIGxWZWN0b3JJczMyQml0SW50cygpLgotICAgICAg ICAgICAgIHZhcmlhYmxlT2Zmc2V0ID0gbmV3IGxsdm06OlRydW5jSW5zdCh2YXJpYWJsZU9mZnNl dCwgTExWTVR5cGVzOjpJbnQzMlZlY3RvclR5cGUsCi0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIExMVk1HZXROYW1lKHZhcmlhYmxlT2Zmc2V0LCAiX3Ry dW5jIiksIGluc2VydEJlZm9yZSk7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGxsdm06OlR3aW5lKHZhcmlhYmxlT2Zmc2V0LT5nZXROYW1lKCkpICsg Il90cnVuYyIsIGluc2VydEJlZm9yZSk7Ci0gICAgICAgICBlbHNlCi0gICAgICAgICAgICAgcmV0 dXJuIGZhbHNlOwotICAgICB9Ci1AQCAtMTk1Miw3ICsxOTY0LDcgQEAgc3RhdGljIGJvb2wgbE9m ZnNldHMzMkJpdFNhZmUobGx2bTo6VmFsdWUgKip2YXJpYWJsZU9mZnNldFB0ciwgbGx2bTo6VmFs dWUgKipjb24KLSAgICAgICAgIGlmIChsVmVjdG9ySXMzMkJpdEludHMoY29uc3RPZmZzZXQpKSB7 Ci0gICAgICAgICAgICAgLy8gVHJ1bmNhdGUgdGhlbSBzbyB3ZSBoYXZlIGEgMzItYml0IHZlY3Rv ciB0eXBlIGZvciB0aGVtLgotICAgICAgICAgICAgIGNvbnN0T2Zmc2V0ID0gbmV3IGxsdm06OlRy dW5jSW5zdChjb25zdE9mZnNldCwgTExWTVR5cGVzOjpJbnQzMlZlY3RvclR5cGUsCi0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExMVk1HZXROYW1lKGNvbnN0 T2Zmc2V0LCAiX3RydW5jIiksIGluc2VydEJlZm9yZSk7Ci0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06OlR3aW5lKGNvbnN0T2Zmc2V0LT5nZXROYW1l KCkpICsgIl90cnVuYyIsIGluc2VydEJlZm9yZSk7Ci0gICAgICAgICB9IGVsc2UgewotICAgICAg ICAgICAgIC8vIEZJWE1FOiBvdGhlcndpc2Ugd2UganVzdCBhc3N1bWUgdGhhdCBhbGwgY29uc3Rh bnQgb2Zmc2V0cwotICAgICAgICAgICAgIC8vIGNhbiBhY3R1YWxseSBhbHdheXMgZml0IGludG8g MzItYml0cy4uLiAgKFRoaXMgY291bGQgYmUKLUBAIC0xOTYzLDcgKzE5NzUsNyBAQCBzdGF0aWMg Ym9vbCBsT2Zmc2V0czMyQml0U2FmZShsbHZtOjpWYWx1ZSAqKnZhcmlhYmxlT2Zmc2V0UHRyLCBs bHZtOjpWYWx1ZSAqKmNvbgotICAgICAgICAgICAgIC8vIGxsdm06OkNvbnN0YW50Rm9sZEluc3Ry dWN0aW9uKCkgZG9lc24ndCBzZWVtIHRvIGJlIGRvaW5nCi0gICAgICAgICAgICAgLy8gZW5vdWdo IGZvciB1cyBpbiBzb21lIGNhc2VzIGlmIHdlIGNhbGwgaXQgZnJvbSBoZXJlLgotICAgICAgICAg ICAgIGNvbnN0T2Zmc2V0ID0gbmV3IGxsdm06OlRydW5jSW5zdChjb25zdE9mZnNldCwgTExWTVR5 cGVzOjpJbnQzMlZlY3RvclR5cGUsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIExMVk1HZXROYW1lKGNvbnN0T2Zmc2V0LCAiX3RydW5jIiksIGluc2VydEJl Zm9yZSk7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxs dm06OlR3aW5lKGNvbnN0T2Zmc2V0LT5nZXROYW1lKCkpICsgIl90cnVuYyIsIGluc2VydEJlZm9y ZSk7Ci0gICAgICAgICB9Ci0gICAgIH0KLSAKLUBAIC0yMDEyLDggKzIwMjQsOCBAQCBzdGF0aWMg Ym9vbCBsT2Zmc2V0czMyQml0U2FmZShsbHZtOjpWYWx1ZSAqKm9mZnNldFB0ciwgbGx2bTo6SW5z dHJ1Y3Rpb24gKmluc2VydAotIAotICAgICAgICAgLy8gQWx0ZXJuYXRpdmVseSwgb2Zmc2V0IGNv dWxkIGJlIGEgc2VxdWVuY2Ugb2YgYWRkcyB0ZXJtaW5hdGluZwotICAgICAgICAgLy8gaW4gc2Fm ZSBjb25zdGFudCB2ZWN0b3JzIG9yIGEgU0V4dC4KLS0gICAgICAgICpvZmZzZXRQdHIgPQotLSAg ICAgICAgICAgIG5ldyBsbHZtOjpUcnVuY0luc3Qob2Zmc2V0LCBMTFZNVHlwZXM6OkludDMyVmVj dG9yVHlwZSwgTExWTUdldE5hbWUob2Zmc2V0LCAiX3RydW5jIiksIGluc2VydEJlZm9yZSk7Ci0r ICAgICAgICAqb2Zmc2V0UHRyID0gbmV3IGxsdm06OlRydW5jSW5zdChvZmZzZXQsIExMVk1UeXBl czo6SW50MzJWZWN0b3JUeXBlLCBsbHZtOjpUd2luZShvZmZzZXQtPmdldE5hbWUoKSkgKyAiX3Ry dW5jIiwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluc2VydEJl Zm9yZSk7Ci0gICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgfSBlbHNlCi0gICAgICAgICByZXR1 cm4gZmFsc2U7Ci1AQCAtMjIyOSw3ICsyMjQxLDggQEAgc3RhdGljIGJvb2wgbEdTVG9HU0Jhc2VP ZmZzZXRzKGxsdm06OkNhbGxJbnN0ICpjYWxsSW5zdCkgewotICAgICB9Ci0gICAgIC8vIENhc3Qg dGhlIGJhc2UgcG9pbnRlciB0byBhIHZvaWQgKiwgc2luY2UgdGhhdCdzIHdoYXQgdGhlCi0gICAg IC8vIF9fcHNldWRvXypfYmFzZV9vZmZzZXRzXyogZnVuY3Rpb25zIHdhbnQuCi0tICAgIGJhc2VQ dHIgPSBuZXcgbGx2bTo6SW50VG9QdHJJbnN0KGJhc2VQdHIsIExMVk1UeXBlczo6Vm9pZFBvaW50 ZXJUeXBlLCBMTFZNR2V0TmFtZShiYXNlUHRyLCAiXzJ2b2lkIiksIGNhbGxJbnN0KTsKLSsgICAg YmFzZVB0ciA9IG5ldyBsbHZtOjpJbnRUb1B0ckluc3QoYmFzZVB0ciwgTExWTVR5cGVzOjpWb2lk UG9pbnRlclR5cGUsIGxsdm06OlR3aW5lKGJhc2VQdHItPmdldE5hbWUoKSkgKyAiXzJ2b2lkIiwK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsbEluc3QpOwotICAgICBs Q29weU1ldGFkYXRhKGJhc2VQdHIsIGNhbGxJbnN0KTsKLSAgICAgbGx2bTo6RnVuY3Rpb24gKmdh dGhlclNjYXR0ZXJGdW5jID0gaW5mby0+YmFzZU9mZnNldHNGdW5jOwotIAotQEAgLTI4MDMsNyAr MjgxNiw3IEBAIHN0YXRpYyBib29sIGxHU1RvTG9hZFN0b3JlKGxsdm06OkNhbGxJbnN0ICpjYWxs SW5zdCkgewotICAgICAgICAgICAgICAgICBsQ29weU1ldGFkYXRhKHB0ciwgY2FsbEluc3QpOwot ICAgICAgICAgICAgICAgICBEZWJ1Zyhwb3MsICJUcmFuc2Zvcm1lZCBnYXRoZXIgdG8gdW5hbGln bmVkIHZlY3RvciBsb2FkISIpOwotICAgICAgICAgICAgICAgICBsbHZtOjpJbnN0cnVjdGlvbiAq bmV3Q2FsbCA9Ci0tICAgICAgICAgICAgICAgICAgICBsQ2FsbEluc3QoZ2F0aGVySW5mby0+bG9h ZE1hc2tlZEZ1bmMsIHB0ciwgbWFzaywgTExWTUdldE5hbWUocHRyLCAiX21hc2tlZF9sb2FkIikp OwotKyAgICAgICAgICAgICAgICAgICAgbENhbGxJbnN0KGdhdGhlckluZm8tPmxvYWRNYXNrZWRG dW5jLCBwdHIsIG1hc2ssIGxsdm06OlR3aW5lKHB0ci0+Z2V0TmFtZSgpKSArICJfbWFza2VkX2xv YWQiKTsKLSAgICAgICAgICAgICAgICAgbENvcHlNZXRhZGF0YShuZXdDYWxsLCBjYWxsSW5zdCk7 Ci0gICAgICAgICAgICAgICAgIGxsdm06OlJlcGxhY2VJbnN0V2l0aEluc3QoY2FsbEluc3QsIG5l d0NhbGwpOwotICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL3NyY3Br Z3MvaXNwYy9wYXRjaGVzL2xsdm0xMi0wMDQucGF0Y2ggYi9zcmNwa2dzL2lzcGMvcGF0Y2hlcy9s bHZtMTItMDA0LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzYTk0ZDg0NDNh NWUuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2lzcGMvcGF0Y2hlcy9sbHZtMTItMDA0LnBh dGNoCisrKyAvZGV2L251bGwKQEAgLTEsMzQgKzAsMCBAQAotRnJvbSBjMDNhNTE0MjQ0NDQ3NmEx Y2FhNWMyYmE3ZmEyZDkyZDc3OTNkNmYxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTog RGVlcGFrIFJhamVuZHJha3VtYXJhbiA8ZGVlcGFrLnJhamVuZHJha3VtYXJhbkBpbnRlbC5jb20+ Ci1EYXRlOiBNb24sIDI1IEphbiAyMDIxIDA5OjIyOjQ5IC0wODAwCi1TdWJqZWN0OiBbUEFUQ0hd IEZpeGluZyBidWlsZCBvbiBsbHZtIHRydW5rLgotCi0tLS0KLSBzcmMvY3R4LmNwcCB8IDcgKysr LS0tLQotIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCi0K LWRpZmYgLS1naXQgYS9zcmMvY3R4LmNwcCBiL3NyYy9jdHguY3BwCi1pbmRleCBkZWQ1MjRiNzEu LmI2MGU2ZmU4NCAxMDA2NDQKLS0tLSBhL3NyYy9jdHguY3BwCi0rKysgYi9zcmMvY3R4LmNwcAot QEAgLTEwMjAsOCArMTAyMCw3IEBAIHZvaWQgRnVuY3Rpb25FbWl0Q29udGV4dDo6RW1pdENhc2VM YWJlbChpbnQgdmFsdWUsIGJvb2wgY2hlY2tNYXNrLCBTb3VyY2VQb3MgcG9zCi0gICAgIGxsdm06 OkJhc2ljQmxvY2sgKmJiQ2FzZUltcGwgPSBOVUxMOwotICAgICBpZiAoZW1pdEdlblhIYXJkd2Fy ZU1hc2soKSkgewotICAgICAgICAgLy8gQ3JlYXRlIGJhc2ljIGJsb2NrIHdpdGggYWN0dWFsIGNh c2UgaW1wbGVtZW50YXRpb24KLS0gICAgICAgIGxsdm06OlR3aW5lIGJiTmFtZSA9IGxsdm06OlR3 aW5lKGJiQ2FzZS0+Z2V0TmFtZSgpKSArICJfaW1wbCI7Ci0tICAgICAgICBiYkNhc2VJbXBsID0g Q3JlYXRlQmFzaWNCbG9jayhiYk5hbWUsIGJiQ2FzZSk7Ci0rICAgICAgICBiYkNhc2VJbXBsID0g Q3JlYXRlQmFzaWNCbG9jayhsbHZtOjpUd2luZShiYkNhc2UtPmdldE5hbWUoKSkgKyAiX2ltcGwi LCBiYkNhc2UpOwotICAgICB9Ci0gI2VuZGlmCi0gCi1AQCAtMzE0Miw4ICszMTQxLDggQEAgbGx2 bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkJyb2FkY2FzdFZhbHVlKGxsdm06OlZhbHVl ICp2LCBsbHZtOjpUeXBlICp2ZWMKLSAgICAgbGx2bTo6VmFsdWUgKnVuZGVmMiA9IGxsdm06OlVu ZGVmVmFsdWU6OmdldCh2ZWNUeXBlKTsKLSAKLSAgICAgLy8gSW5zZXJ0RWxlbWVudAotLSAgICBs bHZtOjpUd2luZSB0dyA9IG5hbWUuaXNUcml2aWFsbHlFbXB0eSgpID8gKGxsdm06OlR3aW5lKHYt PmdldE5hbWUoKSkgKyAiX2Jyb2FkY2FzdCIpIDogbmFtZSArIGxsdm06OlR3aW5lKCJfaW5pdCIp OwotLSAgICBsbHZtOjpWYWx1ZSAqaW5zZXJ0ID0gSW5zZXJ0SW5zdCh1bmRlZjEsIHYsIDAsIHR3 LnN0cigpLmNfc3RyKCkpOwotKyAgICBsbHZtOjpWYWx1ZSAqaW5zZXJ0ID0KLSsgICAgICAgIElu c2VydEluc3QodW5kZWYxLCB2LCAwLCBuYW1lLmlzVHJpdmlhbGx5RW1wdHkoKSA/IChsbHZtOjpU d2luZSh2LT5nZXROYW1lKCkpICsgIl9icm9hZGNhc3QiKSA6IG5hbWUgKyAiX2luaXQiKTsKLSAK LSAgICAgLy8gU2h1ZmZsZVZlY3RvcgotICNpZiBJU1BDX0xMVk1fVkVSU0lPTiA8IElTUENfTExW TV8xMV8wCmRpZmYgLS1naXQgYS9zcmNwa2dzL2lzcGMvcGF0Y2hlcy9sbHZtMTItMDA1LnBhdGNo IGIvc3JjcGtncy9pc3BjL3BhdGNoZXMvbGx2bTEyLTAwNS5wYXRjaApkZWxldGVkIGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggZTNlOTZiMDBhYmZhLi4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9p c3BjL3BhdGNoZXMvbGx2bTEyLTAwNS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDM3MiArMCww IEBACi1Gcm9tIGMxZDBhNTFiZjg0MTZkNDIxNDRkZTllMmJkZDU5ODI1ZWFlZmYxYWMgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBBcmluYSBOZXNobHlhZXZhIDxhcmluYS5uZXNobHlh ZXZhQGludGVsLmNvbT4KLURhdGU6IEZyaSwgOCBKYW4gMjAyMSAxNDoxMzo0OSAtMDgwMAotU3Vi amVjdDogW1BBVENIXSBMTFZNIDExIHN1cHBvcnQgZm9yIGdlbiBjb2RlCi0KLS0tLQotIHNyYy9j dHguY3BwICAgICAgICAgICAgICAgICAgICAgfCAgMTMgKystCi0gc3JjL2dlbi9HbG9iYWxzTG9j YWxpemF0aW9uLmNwcCB8ICAgOSArLQotIHNyYy9vcHQuY3BwICAgICAgICAgICAgICAgICAgICAg fCAxNDMgKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0KLSAzIGZpbGVzIGNoYW5nZWQs IDEyNCBpbnNlcnRpb25zKCspLCA0MSBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL3NyYy9j dHguY3BwIGIvc3JjL2N0eC5jcHAKLWluZGV4IGI2MGU2ZmU4NC4uMmE3MmU2ODM3IDEwMDY0NAot LS0tIGEvc3JjL2N0eC5jcHAKLSsrKyBiL3NyYy9jdHguY3BwCi1AQCAtMSw1ICsxLDUgQEAKLSAv KgotLSAgQ29weXJpZ2h0IChjKSAyMDEwLTIwMjAsIEludGVsIENvcnBvcmF0aW9uCi0rICBDb3B5 cmlnaHQgKGMpIDIwMTAtMjAyMSwgSW50ZWwgQ29ycG9yYXRpb24KLSAgIEFsbCByaWdodHMgcmVz ZXJ2ZWQuCi0gCi0gICBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5 IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLUBAIC0zNjg1LDggKzM2ODUsMTcgQEAgbGx2bTo6VmFs dWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkdlblhTaW1kQ0ZQcmVkaWNhdGUobGx2bTo6VmFsdWUg KnZhbHVlLCBsbHZtOjoKLSAgICAgQXNzZXJ0UG9zKGN1cnJlbnRQb3MsIGxsdm06OmlzYTxsbHZt OjpWZWN0b3JUeXBlPih2YWx1ZS0+Z2V0VHlwZSgpKSk7Ci0gICAgIGxsdm06OlZlY3RvclR5cGUg KnZ0ID0gbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6VmVjdG9yVHlwZT4odmFsdWUtPmdldFR5cGUoKSk7 Ci0gICAgIGlmIChkZWZhdWx0cyA9PSBOVUxMKSB7Ci0tICAgICAgICBkZWZhdWx0cyA9IGxsdm06 OkNvbnN0YW50VmVjdG9yOjpnZXRTcGxhdCh2YWx1ZS0+Z2V0VHlwZSgpLT5nZXRWZWN0b3JOdW1F bGVtZW50cygpLAotKyNpZiBJU1BDX0xMVk1fVkVSU0lPTiA8IElTUENfTExWTV8xMV8wCi0rICAg ICAgICBkZWZhdWx0cyA9IGxsdm06OkNvbnN0YW50VmVjdG9yOjpnZXRTcGxhdCh2dC0+Z2V0VmVj dG9yTnVtRWxlbWVudHMoKSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGxsdm06OkNvbnN0YW50OjpnZXROdWxsVmFsdWUodnQtPmdldEVsZW1lbnRU eXBlKCkpKTsKLSsjZWxpZiBJU1BDX0xMVk1fVkVSU0lPTiA9PSBJU1BDX0xMVk1fMTFfMAotKyAg ICAgICAgZGVmYXVsdHMgPSBsbHZtOjpDb25zdGFudFZlY3Rvcjo6Z2V0U3BsYXQoe3N0YXRpY19j YXN0PHVuc2lnbmVkIGludD4odnQtPmdldE51bUVsZW1lbnRzKCkpLCBmYWxzZX0sCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpDb25zdGFu dDo6Z2V0TnVsbFZhbHVlKHZ0LT5nZXRFbGVtZW50VHlwZSgpKSk7Ci0rI2Vsc2UKLSsgICAgICAg IGRlZmF1bHRzID0gbGx2bTo6Q29uc3RhbnRWZWN0b3I6OmdldFNwbGF0KAotKyAgICAgICAgICAg IGxsdm06OkVsZW1lbnRDb3VudDo6Z2V0KHN0YXRpY19jYXN0PHVuc2lnbmVkIGludD4odnQtPmdl dE51bUVsZW1lbnRzKCkpLCBmYWxzZSksCi0rICAgICAgICAgICAgbGx2bTo6Q29uc3RhbnQ6Omdl dE51bGxWYWx1ZSh2dC0+Z2V0RWxlbWVudFR5cGUoKSkpOwotKyNlbmRpZgotICAgICB9Ci0gCi0g ICAgIGF1dG8gRm4gPSBsbHZtOjpHZW5YSW50cmluc2ljOjpnZXRHZW5YRGVjbGFyYXRpb24obS0+ bW9kdWxlLCBsbHZtOjpHZW5YSW50cmluc2ljOjpnZW54X3NpbWRjZl9wcmVkaWNhdGUsCi1kaWZm IC0tZ2l0IGEvc3JjL2dlbi9HbG9iYWxzTG9jYWxpemF0aW9uLmNwcCBiL3NyYy9nZW4vR2xvYmFs c0xvY2FsaXphdGlvbi5jcHAKLWluZGV4IGExNzZlOTQ2Mi4uNDFmM2IwMGUyIDEwMDY0NAotLS0t IGEvc3JjL2dlbi9HbG9iYWxzTG9jYWxpemF0aW9uLmNwcAotKysrIGIvc3JjL2dlbi9HbG9iYWxz TG9jYWxpemF0aW9uLmNwcAotQEAgLTEsNSArMSw1IEBACi0gLyoKLS0gIENvcHlyaWdodCAoYykg MjAxNCwgMjAxNi0yMDIwLCBJbnRlbCBDb3Jwb3JhdGlvbgotKyAgQ29weXJpZ2h0IChjKSAyMDE0 LCAyMDE2LTIwMjEsIEludGVsIENvcnBvcmF0aW9uCi0gICBBbGwgcmlnaHRzIHJlc2VydmVkLgot IAotICAgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg d2l0aCBvciB3aXRob3V0Ci1AQCAtNTMsOCArNTMsMTAgQEAKLSAjaW5jbHVkZSA8bGx2bS9HZW5Y SW50cmluc2ljcy9HZW5YSW50ck9wdHMuaD4KLSAjaW5jbHVkZSA8bGx2bS9HZW5YSW50cmluc2lj cy9HZW5YSW50cmluc2ljcy5oPgotICNpbmNsdWRlIDxsbHZtL0dlblhJbnRyaW5zaWNzL0dlblhN ZXRhZGF0YS5oPgotLSNpbmNsdWRlIDxsbHZtL0lSL0NGRy5oPgotKyNpZiBJU1BDX0xMVk1fVkVS U0lPTiA8IElTUENfTExWTV8xMV8wCi0gI2luY2x1ZGUgPGxsdm0vSVIvQ2FsbFNpdGUuaD4KLSsj ZW5kaWYKLSsjaW5jbHVkZSA8bGx2bS9JUi9DRkcuaD4KLSAjaW5jbHVkZSA8bGx2bS9JUi9EZWJ1 Z0luZm8uaD4KLSAjaW5jbHVkZSA8bGx2bS9JUi9Eb21pbmF0b3JzLmg+Ci0gI2luY2x1ZGUgPGxs dm0vSVIvRnVuY3Rpb24uaD4KLUBAIC00NzAsNyArNDcyLDggQEAgdm9pZCBHbG9iYWxzTG9jYWxp emF0aW9uOjpMb2NhbGl6ZUdsb2JhbHMoTG9jYWxpemF0aW9uSW5mbyAmTEkpIHsKLSAgICAgICAg IEluc3RydWN0aW9uICZGaXJzdEkgPSAqRm4tPmdldEVudHJ5QmxvY2soKS5iZWdpbigpOwotICAg ICAgICAgVHlwZSAqRWxlbVR5ID0gR1YtPmdldFR5cGUoKS0+Z2V0RWxlbWVudFR5cGUoKTsKLSAg ICAgICAgIEFsbG9jYUluc3QgKkFsbG9jYSA9IG5ldyBBbGxvY2FJbnN0KEVsZW1UeSwgMCwgR1Yt PmdldE5hbWUoKSArICIubG9jYWwiLCAmRmlyc3RJKTsKLS0gICAgICAgIEFsbG9jYS0+c2V0QWxp Z25tZW50KGxsdm06Ok1heWJlQWxpZ24oR1YtPmdldEFsaWdubWVudCgpKSk7Ci0rICAgICAgICBB bGxvY2EtPnNldEFsaWdubWVudChsbHZtOjpNYXliZUFsaWduKEdWLT5nZXRBbGlnbm1lbnQoKSku dmFsdWVPck9uZSgpKTsKLSsKLSAgICAgICAgIGlmICghaXNhPFVuZGVmVmFsdWU+KEdWLT5nZXRJ bml0aWFsaXplcigpKSkKLSAgICAgICAgICAgICBuZXcgU3RvcmVJbnN0KEdWLT5nZXRJbml0aWFs aXplcigpLCBBbGxvY2EsICZGaXJzdEkpOwotIAotZGlmZiAtLWdpdCBhL3NyYy9vcHQuY3BwIGIv c3JjL29wdC5jcHAKLWluZGV4IGQ1OGQ3N2Y3My4uMTc4OWI4NDc2IDEwMDY0NAotLS0tIGEvc3Jj L29wdC5jcHAKLSsrKyBiL3NyYy9vcHQuY3BwCi1AQCAtMjg5OSwxNSArMjg5OSwxNyBAQCBzdGF0 aWMgbGx2bTo6RnVuY3Rpb24gKmxHZW5YTWFza2VkSW50OEluc3QobGx2bTo6SW5zdHJ1Y3Rpb24g Kmluc3QsIGJvb2wgaXNTdG9yZQotIHN0YXRpYyBsbHZtOjpDYWxsSW5zdCAqbEdlblhTdG9yZUlu c3QobGx2bTo6VmFsdWUgKnZhbCwgbGx2bTo6VmFsdWUgKnB0ciwgbGx2bTo6SW5zdHJ1Y3Rpb24g Kmluc3QpIHsKLSAgICAgQXNzZXJ0KGctPnRhcmdldC0+aXNHZW5YVGFyZ2V0KCkpOwotICAgICBB c3NlcnQobGx2bTo6aXNhPGxsdm06OlZlY3RvclR5cGU+KHZhbC0+Z2V0VHlwZSgpKSk7Ci0tICAg IEFzc2VydChsbHZtOjppc1Bvd2VyT2YyXzMyKHZhbC0+Z2V0VHlwZSgpLT5nZXRWZWN0b3JOdW1F bGVtZW50cygpKSk7Ci0tICAgIEFzc2VydCh2YWwtPmdldFR5cGUoKS0+Z2V0UHJpbWl0aXZlU2l6 ZUluQml0cygpIC8gOCA8PSA4ICogT1dPUkQpOwotKwotKyAgICBsbHZtOjpWZWN0b3JUeXBlICp2 YWxWZWNUeXBlID0gbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6VmVjdG9yVHlwZT4odmFsLT5nZXRUeXBl KCkpOwotKyAgICBBc3NlcnQobGx2bTo6aXNQb3dlck9mMl8zMih2YWxWZWNUeXBlLT5nZXROdW1F bGVtZW50cygpKSk7Ci0rICAgIEFzc2VydCh2YWxWZWNUeXBlLT5nZXRQcmltaXRpdmVTaXplSW5C aXRzKCkgLyA4IDw9IDggKiBPV09SRCk7Ci0gCi0gICAgIC8vIFRoZSBkYXRhIHdyaXRlIG9mIHN2 bSBzdG9yZSBtdXN0IGhhdmUgYSBzaXplIHRoYXQgaXMgYSBwb3dlciBvZiB0d28gZnJvbSAxNiB0 byAxMjgKLSAgICAgLy8gYnl0ZXMuIEhvd2V2ZXIgZm9yIGludDggdHlwZSBhbmQgc2ltZCB3aWR0 aCA9IDgsIHRoZSBkYXRhIHdyaXRlIHNpemUgaXMgOC4KLSAgICAgLy8gU28gd2UgdXNlIG1hc2tl ZCBzdG9yZSBmdW5jdGlvbiBoZXJlIGluc3RlYWQgb2Ygc3ZtIHN0b3JlIHdoaWNoIHByb2Nlc3Mg aW50OCB0eXBlCi0gICAgIC8vIGNvcnJlY3RseS4KLS0gICAgaWYgKHZhbC0+Z2V0VHlwZSgpLT5n ZXRQcmltaXRpdmVTaXplSW5CaXRzKCkgLyA4IDwgMTYpIHsKLS0gICAgICAgIEFzc2VydCh2YWwt PmdldFR5cGUoKS0+Z2V0U2NhbGFyVHlwZSgpID09IExMVk1UeXBlczo6SW50OFR5cGUpOwotKyAg ICBpZiAodmFsVmVjVHlwZS0+Z2V0UHJpbWl0aXZlU2l6ZUluQml0cygpIC8gOCA8IDE2KSB7Ci0r ICAgICAgICBBc3NlcnQodmFsVmVjVHlwZS0+Z2V0U2NhbGFyVHlwZSgpID09IExMVk1UeXBlczo6 SW50OFR5cGUpOwotICAgICAgICAgaWYgKGxsdm06OkZ1bmN0aW9uICptYXNrZWRGdW5jID0gbEdl blhNYXNrZWRJbnQ4SW5zdChpbnN0LCB0cnVlKSkKLSAgICAgICAgICAgICByZXR1cm4gbGx2bTo6 ZHluX2Nhc3Q8bGx2bTo6Q2FsbEluc3Q+KGxDYWxsSW5zdChtYXNrZWRGdW5jLCBwdHIsIHZhbCwg TExWTU1hc2tBbGxPbiwgIiIpKTsKLSAgICAgICAgIGVsc2UgewotQEAgLTI5MjMsMTUgKzI5MjUs MTcgQEAgc3RhdGljIGxsdm06OkNhbGxJbnN0ICpsR2VuWFN0b3JlSW5zdChsbHZtOjpWYWx1ZSAq dmFsLCBsbHZtOjpWYWx1ZSAqcHRyLCBsbHZtOjoKLSAKLSBzdGF0aWMgbGx2bTo6Q2FsbEluc3Qg KmxHZW5YTG9hZEluc3QobGx2bTo6VmFsdWUgKnB0ciwgbGx2bTo6VHlwZSAqcmV0VHlwZSwgbGx2 bTo6SW5zdHJ1Y3Rpb24gKmluc3QpIHsKLSAgICAgQXNzZXJ0KGxsdm06OmlzYTxsbHZtOjpWZWN0 b3JUeXBlPihyZXRUeXBlKSk7Ci0tICAgIEFzc2VydChsbHZtOjppc1Bvd2VyT2YyXzMyKHJldFR5 cGUtPmdldFZlY3Rvck51bUVsZW1lbnRzKCkpKTsKLS0gICAgQXNzZXJ0KHJldFR5cGUtPmdldFBy aW1pdGl2ZVNpemVJbkJpdHMoKSk7Ci0tICAgIEFzc2VydChyZXRUeXBlLT5nZXRQcmltaXRpdmVT aXplSW5CaXRzKCkgLyA4IDw9IDggKiBPV09SRCk7Ci0rCi0rICAgIGxsdm06OlZlY3RvclR5cGUg KnJldFZlY1R5cGUgPSBsbHZtOjpkeW5fY2FzdDxsbHZtOjpWZWN0b3JUeXBlPihyZXRUeXBlKTsK LSsgICAgQXNzZXJ0KGxsdm06OmlzUG93ZXJPZjJfMzIocmV0VmVjVHlwZS0+Z2V0TnVtRWxlbWVu dHMoKSkpOwotKyAgICBBc3NlcnQocmV0VmVjVHlwZS0+Z2V0UHJpbWl0aXZlU2l6ZUluQml0cygp KTsKLSsgICAgQXNzZXJ0KHJldFZlY1R5cGUtPmdldFByaW1pdGl2ZVNpemVJbkJpdHMoKSAvIDgg PD0gOCAqIE9XT1JEKTsKLSAgICAgLy8gVGhlIGRhdGEgcmVhZCBvZiBzdm0gbG9hZCBtdXN0IGhh dmUgYSBzaXplIHRoYXQgaXMgYSBwb3dlciBvZiB0d28gZnJvbSAxNiB0byAxMjgKLSAgICAgLy8g Ynl0ZXMuIEhvd2V2ZXIgZm9yIGludDggdHlwZSBhbmQgc2ltZCB3aWR0aCA9IDgsIHRoZSBkYXRh IHJlYWQgc2l6ZSBpcyA4LgotICAgICAvLyBTbyB3ZSB1c2UgbWFza2VkIGxvYWQgZnVuY3Rpb24g aGVyZSBpbnN0ZWFkIG9mIHN2bSBsb2FkIHdoaWNoIHByb2Nlc3MgaW50OCB0eXBlCi0gICAgIC8v IGNvcnJlY3RseS4KLS0gICAgaWYgKHJldFR5cGUtPmdldFByaW1pdGl2ZVNpemVJbkJpdHMoKSAv IDggPCAxNikgewotLSAgICAgICAgQXNzZXJ0KHJldFR5cGUtPmdldFNjYWxhclR5cGUoKSA9PSBM TFZNVHlwZXM6OkludDhUeXBlKTsKLSsgICAgaWYgKHJldFZlY1R5cGUtPmdldFByaW1pdGl2ZVNp emVJbkJpdHMoKSAvIDggPCAxNikgewotKyAgICAgICAgQXNzZXJ0KHJldFZlY1R5cGUtPmdldFNj YWxhclR5cGUoKSA9PSBMTFZNVHlwZXM6OkludDhUeXBlKTsKLSAgICAgICAgIGlmIChsbHZtOjpG dW5jdGlvbiAqbWFza2VkRnVuYyA9IGxHZW5YTWFza2VkSW50OEluc3QoaW5zdCwgZmFsc2UpKQot ICAgICAgICAgICAgIHJldHVybiBsbHZtOjpkeW5fY2FzdDxsbHZtOjpDYWxsSW5zdD4obENhbGxJ bnN0KG1hc2tlZEZ1bmMsIHB0ciwgTExWTU1hc2tBbGxPbiwgIiIpKTsKLSAgICAgICAgIGVsc2Ug ewotQEAgLTU2MjIsMTUgKzU2MjYsMjQgQEAgc3RhdGljIGJvb2wgbFZlY3Rvcml6ZUdFUHMobGx2 bTo6VmFsdWUgKnB0ciwgc3RkOjp2ZWN0b3I8UHRyVXNlPiAmcHRyVXNlcywgc3RkOjoKLSAgICAg ICAgIGxsdm06OlB0clRvSW50SW5zdCAqcHRyVG9JbnQgPQotICAgICAgICAgICAgIG5ldyBsbHZt OjpQdHJUb0ludEluc3QocHRyLCBMTFZNVHlwZXM6OkludDY0VHlwZSwgInZlY3Rvcml6ZWRfcHRy dG9pbnQiLCBpbnNlcnRCZWZvcmUpOwotICAgICAgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmFkZHIg PSBsbHZtOjpCaW5hcnlPcGVyYXRvcjo6Q3JlYXRlQWRkKHB0clRvSW50LCBvZmZzZXQsICJ2ZWN0 b3JpemVkX2FkZHJlc3MiLCBpbnNlcnRCZWZvcmUpOwotKyNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+ PSBJU1BDX0xMVk1fMTFfMAotKyAgICAgICAgbGx2bTo6VHlwZSAqcmV0VHlwZSA9IGxsdm06OkZp eGVkVmVjdG9yVHlwZTo6Z2V0KHNjYWxhcl90eXBlLCByZXFTaXplIC8gdF9zaXplKTsKLSsjZWxz ZQotICAgICAgICAgbGx2bTo6VHlwZSAqcmV0VHlwZSA9IGxsdm06OlZlY3RvclR5cGU6OmdldChz Y2FsYXJfdHlwZSwgcmVxU2l6ZSAvIHRfc2l6ZSk7Ci0rI2VuZGlmCi0gICAgICAgICBsbHZtOjpG dW5jdGlvbiAqZm4gPSBsbHZtOjpHZW5YSW50cmluc2ljOjpnZXRHZW5YRGVjbGFyYXRpb24oCi0g ICAgICAgICAgICAgbS0+bW9kdWxlLCBsbHZtOjpHZW5YSW50cmluc2ljOjpnZW54X3N2bV9ibG9j a19sZF91bmFsaWduZWQsIHtyZXRUeXBlLCBhZGRyLT5nZXRUeXBlKCl9KTsKLSAgICAgICAgIGxs dm06Okluc3RydWN0aW9uICpsZCA9IGxsdm06OkNhbGxJbnN0OjpDcmVhdGUoZm4sIHthZGRyfSwg InZlY3Rvcml6ZWRfbGQiLCBpbnNlcnRCZWZvcmUpOwotIAotICAgICAgICAgaWYgKGxvYWRpbmdQ dHIpIHsKLSAgICAgICAgICAgICAvLyBDYXN0IGludCB0byBwdHIgdmlhIGludHRvcHRyCi0rI2lm IElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMV8wCi0rICAgICAgICAgICAgbGQgPSBu ZXcgbGx2bTo6SW50VG9QdHJJbnN0KGxkLCBsbHZtOjpGaXhlZFZlY3RvclR5cGU6OmdldChvcmln aW5hbFR5cGUsIHJlcVNpemUgLyB0X3NpemUpLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAidmVjdG9yaXplZF9pbnR0b3B0ciIsIGluc2VydEJlZm9yZSk7Ci0rI2Vs c2UKLSAgICAgICAgICAgICBsZCA9IG5ldyBsbHZtOjpJbnRUb1B0ckluc3QobGQsIGxsdm06OlZl Y3RvclR5cGU6OmdldChvcmlnaW5hbFR5cGUsIHJlcVNpemUgLyB0X3NpemUpLAotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidmVjdG9yaXplZF9pbnR0b3B0ciIsIGlu c2VydEJlZm9yZSk7Ci0rI2VuZGlmCi0gICAgICAgICB9Ci0gCi0gICAgICAgICAvLyBTY2FsYXIg ZXh0cmFjdHMgZm9yIGFsbCBsb2FkZWQgZWxlbWVudHMKLUBAIC02MTYwLDE5ICs2MTczLDM0IEBA IGJvb2wgUmVwbGFjZUxMVk1JbnRyaW5zaWNzOjpydW5PbkJhc2ljQmxvY2sobGx2bTo6QmFzaWNC bG9jayAmYmIpIHsKLSAgICAgICAgIGxsdm06Okluc3RydWN0aW9uICppbnN0ID0gJipJOwotICAg ICAgICAgaWYgKGxsdm06OkNhbGxJbnN0ICpjaSA9IGxsdm06OmR5bl9jYXN0PGxsdm06OkNhbGxJ bnN0PihpbnN0KSkgewotICAgICAgICAgICAgIGxsdm06OkZ1bmN0aW9uICpmdW5jID0gY2ktPmdl dENhbGxlZEZ1bmN0aW9uKCk7Ci0tICAgICAgICAgICAgaWYgKGZ1bmMgJiYgZnVuYy0+Z2V0TmFt ZSgpID09ICJsbHZtLnRyYXAiKSB7Ci0rICAgICAgICAgICAgaWYgKGZ1bmMgJiYgZnVuYy0+Z2V0 TmFtZSgpLmVxdWFscygibGx2bS50cmFwIikpIHsKLSAgICAgICAgICAgICAgICAgbGx2bTo6VHlw ZSAqYXJnVHlwZXNbXSA9IHtMTFZNVHlwZXM6OkludDFWZWN0b3JUeXBlLCBMTFZNVHlwZXM6Oklu dDE2VmVjdG9yVHlwZX07Ci0gICAgICAgICAgICAgICAgIC8vIERlc2NyaXB0aW9uIG9mIHBhcmFt ZXRlcnMgZm9yIGdlbnhfcmF3X3NlbmRfbm9yZXN1bHQgY2FuIGJlIGZvdW5kIGluIHRhcmdldC1n ZW54LmxsCi0gICAgICAgICAgICAgICAgIGF1dG8gRm4gPSArbGx2bTo6R2VuWEludHJpbnNpYzo6 Z2V0R2VuWERlY2xhcmF0aW9uKAotICAgICAgICAgICAgICAgICAgICAgbS0+bW9kdWxlLCBsbHZt OjpHZW5YSW50cmluc2ljOjpnZW54X3Jhd19zZW5kX25vcmVzdWx0LCBhcmdUeXBlcyk7Ci0gICAg ICAgICAgICAgICAgIGxsdm06OlNtYWxsVmVjdG9yPGxsdm06OlZhbHVlICosIDg+IEFyZ3M7Ci0g ICAgICAgICAgICAgICAgIEFyZ3MucHVzaF9iYWNrKGxsdm06OkNvbnN0YW50SW50OjpnZXQoTExW TVR5cGVzOjpJbnQzMlR5cGUsIDApKTsKLS0gICAgICAgICAgICAgICAgQXJncy5wdXNoX2JhY2so bGx2bTo6Q29uc3RhbnRWZWN0b3I6OmdldFNwbGF0KGctPnRhcmdldC0+Z2V0TmF0aXZlVmVjdG9y V2lkdGgoKSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGxsdm06OkNvbnN0YW50SW50OjpnZXRUcnVlKCpnLT5jdHgpKSk7Ci0r ICAgICAgICAgICAgICAgIEFyZ3MucHVzaF9iYWNrKGxsdm06OkNvbnN0YW50VmVjdG9yOjpnZXRT cGxhdCgKLSsjaWYgSVNQQ19MTFZNX1ZFUlNJT04gPCBJU1BDX0xMVk1fMTFfMAotKyAgICAgICAg ICAgICAgICAgICAgZy0+dGFyZ2V0LT5nZXROYXRpdmVWZWN0b3JXaWR0aCgpLAotKyNlbGlmIElT UENfTExWTV9WRVJTSU9OID09IElTUENfTExWTV8xMV8wCi0rICAgICAgICAgICAgICAgICAgICB7 c3RhdGljX2Nhc3Q8dW5zaWduZWQgaW50PihnLT50YXJnZXQtPmdldE5hdGl2ZVZlY3RvcldpZHRo KCkpLCBmYWxzZX0sCi0rI2Vsc2UgLy8gTExWTSAxMi4wKwotKyAgICAgICAgICAgICAgICAgICAg bGx2bTo6RWxlbWVudENvdW50OjpnZXQoc3RhdGljX2Nhc3Q8dW5zaWduZWQgaW50PihnLT50YXJn ZXQtPmdldE5hdGl2ZVZlY3RvcldpZHRoKCkpLCBmYWxzZSksCi0rI2VuZGlmCi0rICAgICAgICAg ICAgICAgICAgICBsbHZtOjpDb25zdGFudEludDo6Z2V0VHJ1ZSgqZy0+Y3R4KSkpOwotKwotICAg ICAgICAgICAgICAgICBBcmdzLnB1c2hfYmFjayhsbHZtOjpDb25zdGFudEludDo6Z2V0KExMVk1U eXBlczo6SW50MzJUeXBlLCAzOSkpOwotICAgICAgICAgICAgICAgICBBcmdzLnB1c2hfYmFjayhs bHZtOjpDb25zdGFudEludDo6Z2V0KExMVk1UeXBlczo6SW50MzJUeXBlLCAzMzU1NDQ0OCkpOwot ICAgICAgICAgICAgICAgICBsbHZtOjpWYWx1ZSAqemVyb01hc2sgPSBsbHZtOjpDb25zdGFudFZl Y3Rvcjo6Z2V0U3BsYXQoCi0tICAgICAgICAgICAgICAgICAgICBnLT50YXJnZXQtPmdldE5hdGl2 ZVZlY3RvcldpZHRoKCksIGxsdm06OkNvbnN0YW50OjpnZXROdWxsVmFsdWUobGx2bTo6VHlwZTo6 Z2V0SW50MTZUeSgqZy0+Y3R4KSkpOwotKyNpZiBJU1BDX0xMVk1fVkVSU0lPTiA8IElTUENfTExW TV8xMV8wCi0rICAgICAgICAgICAgICAgICAgICBnLT50YXJnZXQtPmdldE5hdGl2ZVZlY3Rvcldp ZHRoKCksCi0rI2VsaWYgSVNQQ19MTFZNX1ZFUlNJT04gPT0gSVNQQ19MTFZNXzExXzAKLSsgICAg ICAgICAgICAgICAgICAgIHtzdGF0aWNfY2FzdDx1bnNpZ25lZCBpbnQ+KGctPnRhcmdldC0+Z2V0 TmF0aXZlVmVjdG9yV2lkdGgoKSksIGZhbHNlfSwKLSsjZWxzZSAvLyBMTFZNIDEyLjArCi0rICAg ICAgICAgICAgICAgICAgICBsbHZtOjpFbGVtZW50Q291bnQ6OmdldChzdGF0aWNfY2FzdDx1bnNp Z25lZCBpbnQ+KGctPnRhcmdldC0+Z2V0TmF0aXZlVmVjdG9yV2lkdGgoKSksIGZhbHNlKSwKLSsj ZW5kaWYKLSsgICAgICAgICAgICAgICAgICAgIGxsdm06OkNvbnN0YW50OjpnZXROdWxsVmFsdWUo bGx2bTo6VHlwZTo6Z2V0SW50MTZUeSgqZy0+Y3R4KSkpOwotICAgICAgICAgICAgICAgICBBcmdz LnB1c2hfYmFjayh6ZXJvTWFzayk7Ci0gCi0gICAgICAgICAgICAgICAgIGxsdm06Okluc3RydWN0 aW9uICpuZXdJbnN0ID0gbGx2bTo6Q2FsbEluc3Q6OkNyZWF0ZShGbiwgQXJncywgY2ktPmdldE5h bWUoKSk7Ci1AQCAtNjE4MSw3ICs2MjA5LDcgQEAgYm9vbCBSZXBsYWNlTExWTUludHJpbnNpY3M6 OnJ1bk9uQmFzaWNCbG9jayhsbHZtOjpCYXNpY0Jsb2NrICZiYikgewotICAgICAgICAgICAgICAg ICAgICAgbW9kaWZpZWRBbnkgPSB0cnVlOwotICAgICAgICAgICAgICAgICAgICAgZ290byByZXN0 YXJ0OwotICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgfSBlbHNlIGlmIChmdW5jICYm IGZ1bmMtPmdldE5hbWUoKSA9PSAibGx2bS5hc3N1bWUiKSB7Ci0rICAgICAgICAgICAgfSBlbHNl IGlmIChmdW5jICYmIGZ1bmMtPmdldE5hbWUoKS5lcXVhbHMoImxsdm0uYXNzdW1lIikpIHsKLSAg ICAgICAgICAgICAgICAgY2ktPmVyYXNlRnJvbVBhcmVudCgpOwotICAgICAgICAgICAgICAgICBt b2RpZmllZEFueSA9IHRydWU7Ci0gICAgICAgICAgICAgICAgIGdvdG8gcmVzdGFydDsKLUBAIC02 MzM1LDcgKzYzNjMsNyBAQCBib29sIENoZWNrVW5zdXBwb3J0ZWRJbnN0czo6cnVuT25CYXNpY0Js b2NrKGxsdm06OkJhc2ljQmxvY2sgJmJiKSB7Ci0gICAgICAgICAgICAgICAgIGNvbnRpbnVlOwot ICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdW5zdXBwb3J0ZWRGdW5jcy5zaXplKCk7 IGkrKykgewotICAgICAgICAgICAgICAgICBzdGQ6OnNtYXRjaCBtYXRjaDsKLS0gICAgICAgICAg ICAgICAgc3RkOjpzdHJpbmcgZnVuY05hbWUgPSBmdW5jLT5nZXROYW1lKCk7Ci0rICAgICAgICAg ICAgICAgIHN0ZDo6c3RyaW5nIGZ1bmNOYW1lID0gZnVuYy0+Z2V0TmFtZSgpLnN0cigpOwotICAg ICAgICAgICAgICAgICBpZiAoc3RkOjpyZWdleF9tYXRjaChmdW5jTmFtZSwgbWF0Y2gsIHVuc3Vw cG9ydGVkRnVuY3NbaV0pKSB7Ci0gICAgICAgICAgICAgICAgICAgICAvLyBXZSBmb3VuZCB1bnN1 cHBvcnRlZCBmdW5jdGlvbi4gR2VuZXJhdGUgZXJyb3IgYW5kIHN0b3AgY29tcGlsYXRpb24uCi0g ICAgICAgICAgICAgICAgICAgICBTb3VyY2VQb3MgcG9zOwotQEAgLTY0MTgsMTIgKzY0NDYsMTQg QEAgYm9vbCBNYW5nbGVPcGVuQ0xCdWlsdGluczo6cnVuT25CYXNpY0Jsb2NrKGxsdm06OkJhc2lj QmxvY2sgJmJiKSB7Ci0gICAgICAgICAgICAgaWYgKGZ1bmMtPmdldE5hbWUoKS5zdGFydHN3aXRo KCJfX3NwaXJ2X29jbCIpKSB7Ci0gICAgICAgICAgICAgICAgIHN0ZDo6c3RyaW5nIG1hbmdsZWRO YW1lOwotICAgICAgICAgICAgICAgICBsbHZtOjpUeXBlICpyZXRUeXBlID0gZnVuYy0+Z2V0UmV0 dXJuVHlwZSgpOwotLSAgICAgICAgICAgICAgICBzdGQ6OnN0cmluZyBmdW5jTmFtZSA9IGZ1bmMt PmdldE5hbWUoKTsKLSsgICAgICAgICAgICAgICAgc3RkOjpzdHJpbmcgZnVuY05hbWUgPSBmdW5j LT5nZXROYW1lKCkuc3RyKCk7Ci0gICAgICAgICAgICAgICAgIHN0ZDo6dmVjdG9yPGxsdm06OlR5 cGUgKj4gQXJnVHk7Ci0gICAgICAgICAgICAgICAgIC8vIHNwaXJ2IE9wZW5DTCBidWlsdGlucyBh cmUgdXNlZCBmb3IgZG91YmxlIHR5cGVzIG9ubHkKLS0gICAgICAgICAgICAgICAgQXNzZXJ0KHJl dFR5cGUtPmlzVmVjdG9yVHkoKSAmJiByZXRUeXBlLT5nZXRWZWN0b3JFbGVtZW50VHlwZSgpLT5p c0RvdWJsZVR5KCkgfHwKLSsgICAgICAgICAgICAgICAgQXNzZXJ0KHJldFR5cGUtPmlzVmVjdG9y VHkoKSAmJgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06OmR5bl9jYXN0PGxsdm06 OlZlY3RvclR5cGU+KHJldFR5cGUpLT5nZXRFbGVtZW50VHlwZSgpLT5pc0RvdWJsZVR5KCkgfHwK LSAgICAgICAgICAgICAgICAgICAgICAgIHJldFR5cGUtPmlzU2luZ2xlVmFsdWVUeXBlKCkgJiYg cmV0VHlwZS0+aXNEb3VibGVUeSgpKTsKLS0gICAgICAgICAgICAgICAgaWYgKHJldFR5cGUtPmlz VmVjdG9yVHkoKSAmJiByZXRUeXBlLT5nZXRWZWN0b3JFbGVtZW50VHlwZSgpLT5pc0RvdWJsZVR5 KCkpIHsKLSsgICAgICAgICAgICAgICAgaWYgKHJldFR5cGUtPmlzVmVjdG9yVHkoKSAmJgotKyAg ICAgICAgICAgICAgICAgICAgbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6VmVjdG9yVHlwZT4ocmV0VHlw ZSktPmdldEVsZW1lbnRUeXBlKCktPmlzRG91YmxlVHkoKSkgewotICAgICAgICAgICAgICAgICAg ICAgQXJnVHkucHVzaF9iYWNrKExMVk1UeXBlczo6RG91YmxlVmVjdG9yVHlwZSk7Ci0gICAgICAg ICAgICAgICAgICAgICAvLyBfRHZXSURUSCBzdWZmaXggaXMgdXNlZCBpbiB0YXJnZXQgZmlsZSB0 byBkaWZmZXJlbnRpYXRlIHNjYWxhcgotICAgICAgICAgICAgICAgICAgICAgLy8gYW5kIHZlY3Rv ciB2ZXJzaW9ucyBvZiBpbnRyaW5zaWNzLiBIZXJlIHdlIHJlbW92ZSB0aGlzCi1AQCAtNjUxMSw4 ICs2NTQxLDE1IEBAIGxsdm06OlZhbHVlICpGaXhBZGRyZXNzU3BhY2U6OmNhbGN1bGF0ZUdhdGhl clNjYXR0ZXJBZGRyZXNzKGxsdm06OlZhbHVlICpQdHIsIGxsCi0gCi0gICAgIC8vIENhc3Qgb2Zm c2V0cyB0byBpbnQ2NAotICAgICBPZmZzZXRzID0gbmV3IGxsdm06OlpFeHRJbnN0KAotKyNpZiBJ U1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTFfMAotKyAgICAgICAgT2Zmc2V0cywKLSsg ICAgICAgIGxsdm06OkZpeGVkVmVjdG9yVHlwZTo6Z2V0KExMVk1UeXBlczo6SW50NjRUeXBlLAot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6 VmVjdG9yVHlwZT4oT2Zmc2V0cy0+Z2V0VHlwZSgpKS0+Z2V0TnVtRWxlbWVudHMoKSksCi0rICAg ICAgICAic3ZtX29mZnNldF96ZXh0IiwgSW5zZXJ0QmVmb3JlKTsKLSsjZWxzZQotICAgICAgICAg T2Zmc2V0cywgbGx2bTo6VmVjdG9yVHlwZTo6Z2V0KExMVk1UeXBlczo6SW50NjRUeXBlLCBPZmZz ZXRzLT5nZXRUeXBlKCktPmdldFZlY3Rvck51bUVsZW1lbnRzKCkpLAotICAgICAgICAgInN2bV9v ZmZzZXRfemV4dCIsIEluc2VydEJlZm9yZSk7Ci0rI2VuZGlmCi0gCi0gICAgIGlmICghbGx2bTo6 aXNhPGxsdm06OkNvbnN0YW50UG9pbnRlck51bGw+KFB0cikpIHsKLSAgICAgICAgIC8vIENhc3Qg cHRyIHRvIGludDY0Ci1AQCAtNjUyMCwxMyArNjU1NywzMSBAQCBsbHZtOjpWYWx1ZSAqRml4QWRk cmVzc1NwYWNlOjpjYWxjdWxhdGVHYXRoZXJTY2F0dGVyQWRkcmVzcyhsbHZtOjpWYWx1ZSAqUHRy LCBsbAotIAotICAgICAgICAgLy8gVmVjdG9yaXplIHB0cgotICAgICAgICAgbGx2bTo6VmFsdWUg KnVuZGVmSW5zZXJ0VmFsdWUgPQotKyNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1f MTFfMAotKyAgICAgICAgICAgIGxsdm06OlVuZGVmVmFsdWU6OmdldChsbHZtOjpGaXhlZFZlY3Rv clR5cGU6OmdldCgKLSsgICAgICAgICAgICAgICAgTExWTVR5cGVzOjpJbnQ2NFR5cGUsIGxsdm06 OmR5bl9jYXN0PGxsdm06OlZlY3RvclR5cGU+KGFkZHJlc3NUeXBlKS0+Z2V0TnVtRWxlbWVudHMo KSkpOwotKyNlbHNlCi0gICAgICAgICAgICAgbGx2bTo6VW5kZWZWYWx1ZTo6Z2V0KGxsdm06OlZl Y3RvclR5cGU6OmdldChMTFZNVHlwZXM6OkludDY0VHlwZSwgYWRkcmVzc1R5cGUtPmdldFZlY3Rv ck51bUVsZW1lbnRzKCkpKTsKLSsjZW5kaWYKLSAgICAgICAgIGFkZHJlc3MgPSBsbHZtOjpJbnNl cnRFbGVtZW50SW5zdDo6Q3JlYXRlKHVuZGVmSW5zZXJ0VmFsdWUsIGFkZHJlc3MsIExMVk1JbnQz MigwKSwgInN2bV9wdHJfaWVpIiwgSW5zZXJ0QmVmb3JlKTsKLSAgICAgICAgIGxsdm06OkNvbnN0 YW50ICp6ZXJvVmVjID0gbGx2bTo6Q29uc3RhbnRWZWN0b3I6OmdldFNwbGF0KAotKyNpZiBJU1BD X0xMVk1fVkVSU0lPTiA8IElTUENfTExWTV8xMV8wCi0gICAgICAgICAgICAgYWRkcmVzc1R5cGUt PmdldFZlY3Rvck51bUVsZW1lbnRzKCksCi0rI2VsaWYgSVNQQ19MTFZNX1ZFUlNJT04gPT0gSVNQ Q19MTFZNXzExXzAKLSsgICAgICAgICAgICB7bGx2bTo6ZHluX2Nhc3Q8bGx2bTo6VmVjdG9yVHlw ZT4oYWRkcmVzc1R5cGUpLT5nZXROdW1FbGVtZW50cygpLCBmYWxzZX0sCi0rI2Vsc2UKLSsgICAg ICAgIGxsdm06OkVsZW1lbnRDb3VudDo6Z2V0KAotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6Rml4ZWRWZWN0b3JUeXBlPihhZGRyZXNzVHlwZS0+ Z2V0TnVtRWxlbWVudHMoKSwgZmFsc2UpLAotKyNlbmRpZgotICAgICAgICAgICAgIGxsdm06OkNv bnN0YW50OjpnZXROdWxsVmFsdWUobGx2bTo6VHlwZTo6Z2V0SW50MzJUeShJbnNlcnRCZWZvcmUt PmdldENvbnRleHQoKSkpKTsKLSsKLSAgICAgICAgIGxsdm06OlZhbHVlICp1bmRlZlNodWZmbGVW YWx1ZSA9Ci0rI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMV8wCi0rICAgICAg ICAgICAgbGx2bTo6VW5kZWZWYWx1ZTo6Z2V0KGxsdm06OkZpeGVkVmVjdG9yVHlwZTo6Z2V0KAot KyAgICAgICAgICAgICAgICBMTFZNVHlwZXM6OkludDY0VHlwZSwgbGx2bTo6ZHluX2Nhc3Q8bGx2 bTo6VmVjdG9yVHlwZT4oYWRkcmVzc1R5cGUpLT5nZXROdW1FbGVtZW50cygpKSk7Ci0rI2Vsc2UK LSAgICAgICAgICAgICBsbHZtOjpVbmRlZlZhbHVlOjpnZXQobGx2bTo6VmVjdG9yVHlwZTo6Z2V0 KExMVk1UeXBlczo6SW50NjRUeXBlLCBhZGRyZXNzVHlwZS0+Z2V0VmVjdG9yTnVtRWxlbWVudHMo KSkpOwotKyNlbmRpZgotICAgICAgICAgYWRkcmVzcyA9IG5ldyBsbHZtOjpTaHVmZmxlVmVjdG9y SW5zdChhZGRyZXNzLCB1bmRlZlNodWZmbGVWYWx1ZSwgemVyb1ZlYywgInN2bV9wdHJfc3ZpIiwg SW5zZXJ0QmVmb3JlKTsKLSAKLSAgICAgICAgIC8vIENhbGN1bGF0ZSBhZGRyZXNzCi1AQCAtNjU1 Myw5ICs2NjA4LDEyIEBAIGxsdm06Okluc3RydWN0aW9uICpGaXhBZGRyZXNzU3BhY2U6OnByb2Nl c3NWZWN0b3JMb2FkKGxsdm06OkxvYWRJbnN0ICpMSSkgewotICAgICBpZiAocmV0VHlwZS0+Z2V0 U2NhbGFyVHlwZSgpLT5pc1BvaW50ZXJUeSgpKSB7Ci0gICAgICAgICBpc1B0ckxvYWQgPSB0cnVl OwotICAgICAgICAgYXV0byBzY2FsYXJUeXBlID0gZy0+dGFyZ2V0LT5pczMyQml0KCkgPyBMTFZN VHlwZXM6OkludDMyVHlwZSA6IExMVk1UeXBlczo6SW50NjRUeXBlOwotKyNpZiBJU1BDX0xMVk1f VkVSU0lPTiA+PSBJU1BDX0xMVk1fMTFfMAotKyAgICAgICAgcmV0VHlwZSA9IGxsdm06OkZpeGVk VmVjdG9yVHlwZTo6Z2V0KHNjYWxhclR5cGUsIGxsdm06OmR5bl9jYXN0PGxsdm06OlZlY3RvclR5 cGU+KHJldFR5cGUpLT5nZXROdW1FbGVtZW50cygpKTsKLSsjZWxzZQotICAgICAgICAgcmV0VHlw ZSA9IGxsdm06OlZlY3RvclR5cGU6OmdldChzY2FsYXJUeXBlLCByZXRUeXBlLT5nZXRWZWN0b3JO dW1FbGVtZW50cygpKTsKLSsjZW5kaWYKLSAgICAgfQotLQotICAgICBsbHZtOjpJbnN0cnVjdGlv biAqcmVzID0gbEdlblhMb2FkSW5zdChwdHIsIHJldFR5cGUsIGxsdm06OmR5bl9jYXN0PGxsdm06 Okluc3RydWN0aW9uPihMSSkpOwotICAgICBBc3NlcnQocmVzKTsKLSAKLUBAIC02NTgwLDExICs2 NjM4LDE2IEBAIGxsdm06Okluc3RydWN0aW9uICpGaXhBZGRyZXNzU3BhY2U6OnByb2Nlc3NTVk1W ZWN0b3JMb2FkKGxsdm06Okluc3RydWN0aW9uICpDSSkKLSAgICAgcHRyID0gbmV3IGxsdm06Oklu dFRvUHRySW5zdChwdHIsIGxsdm06OlBvaW50ZXJUeXBlOjpnZXQocmV0VHlwZSwgMCksIENJLT5n ZXROYW1lKCkgKyAiX2ludHRvcHRyIiwgQ0kpOwotICAgICBsbHZtOjpJbnN0cnVjdGlvbiAqbG9h ZEluc3QgPSBOVUxMOwotICNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTFfMAot LSAgICBsb2FkSW5zdCA9IG5ldyBsbHZtOjpMb2FkSW5zdChsbHZtOjpkeW5fY2FzdDxsbHZtOjpQ b2ludGVyVHlwZT4ocHRyLT5nZXRUeXBlKCkpLT5nZXRQb2ludGVyRWxlbWVudFR5cGUoKSwgbG9h ZEluc3QsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENJLT5nZXROYW1lKCks IChsbHZtOjpJbnN0cnVjdGlvbiAqKU5VTEwpOwotKyAgICBsb2FkSW5zdCA9IG5ldyBsbHZtOjpM b2FkSW5zdChsbHZtOjpkeW5fY2FzdDxsbHZtOjpQb2ludGVyVHlwZT4ocHRyLT5nZXRUeXBlKCkp LT5nZXRQb2ludGVyRWxlbWVudFR5cGUoKSwgcHRyLAotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBDSS0+Z2V0TmFtZSgpLCBmYWxzZSAvKiBub3Qgdm9sYXRpbGUgKi8sCi0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06Ok1heWJlQWxpZ24oZy0+dGFyZ2V0 LT5nZXROYXRpdmVWZWN0b3JBbGlnbm1lbnQoKSkudmFsdWVPck9uZSgpLAotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAobGx2bTo6SW5zdHJ1Y3Rpb24gKilOVUxMKTsKLSAjZWxz ZQotLSAgICBsb2FkSW5zdCA9IG5ldyBsbHZtOjpMb2FkSW5zdChwdHIsIENJLT5nZXROYW1lKCks IChsbHZtOjpJbnN0cnVjdGlvbiAqKU5VTEwpOwotKyAgICBsb2FkSW5zdCA9IG5ldyBsbHZtOjpM b2FkSW5zdChwdHIsIENJLT5nZXROYW1lKCksIGZhbHNlLAotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBsbHZtOjpNYXliZUFsaWduKGctPnRhcmdldC0+Z2V0TmF0aXZlVmVjdG9y QWxpZ25tZW50KCkpLnZhbHVlT3JPbmUoKSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKGxsdm06Okluc3RydWN0aW9uICopTlVMTCk7Ci0gI2VuZGlmCi0rCi0gICAgIEFzc2Vy dChsb2FkSW5zdCk7Ci0gICAgIHJldHVybiBsb2FkSW5zdDsKLSB9Ci1AQCAtNjYwNiw3ICs2NjY5 LDExIEBAIGxsdm06Okluc3RydWN0aW9uICpGaXhBZGRyZXNzU3BhY2U6OnByb2Nlc3NWZWN0b3JT dG9yZShsbHZtOjpTdG9yZUluc3QgKlNJKSB7Ci0gICAgIC8vIE5vdGU6IGl0IGRvZXNuJ3QgbG9v ayBsaWtlIGEgbm9ybWFsIGNhc2UgZm9yIEdlblggdGFyZ2V0Ci0gICAgIGlmICh2YWxUeXBlLT5n ZXRTY2FsYXJUeXBlKCktPmlzUG9pbnRlclR5KCkpIHsKLSAgICAgICAgIGF1dG8gc2NhbGFyVHlw ZSA9IGctPnRhcmdldC0+aXMzMkJpdCgpID8gTExWTVR5cGVzOjpJbnQzMlR5cGUgOiBMTFZNVHlw ZXM6OkludDY0VHlwZTsKLSsjaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzExXzAK LSsgICAgICAgIHZhbFR5cGUgPSBsbHZtOjpGaXhlZFZlY3RvclR5cGU6OmdldChzY2FsYXJUeXBl LCBsbHZtOjpkeW5fY2FzdDxsbHZtOjpWZWN0b3JUeXBlPih2YWxUeXBlKS0+Z2V0TnVtRWxlbWVu dHMoKSk7Ci0rI2Vsc2UKLSAgICAgICAgIHZhbFR5cGUgPSBsbHZtOjpWZWN0b3JUeXBlOjpnZXQo c2NhbGFyVHlwZSwgdmFsVHlwZS0+Z2V0VmVjdG9yTnVtRWxlbWVudHMoKSk7Ci0rI2VuZGlmCi0g ICAgICAgICB2YWwgPSBuZXcgbGx2bTo6UHRyVG9JbnRJbnN0KHZhbCwgdmFsVHlwZSwgInN2bV9z dF92YWxfcHRydG9pbnQiLCBTSSk7Ci0gICAgIH0KLSAKLUBAIC02NjMxLDEyICs2Njk4LDggQEAg bGx2bTo6SW5zdHJ1Y3Rpb24gKkZpeEFkZHJlc3NTcGFjZTo6cHJvY2Vzc1NWTVZlY3RvclN0b3Jl KGxsdm06Okluc3RydWN0aW9uICpDSSkKLSAgICAgcHRyID0gbmV3IGxsdm06OkludFRvUHRySW5z dChwdHIsIGxsdm06OlBvaW50ZXJUeXBlOjpnZXQodmFsVHlwZSwgMCksIENJLT5nZXROYW1lKCkg KyAiX2ludHRvcHRyIiwgQ0kpOwotIAotICAgICBsbHZtOjpJbnN0cnVjdGlvbiAqc3RvcmVJbnN0 ID0gTlVMTDsKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzExXzAKLS0gICAg bG9hZEluc3QgPSBuZXcgbGx2bTo6U3RvcmVJbnN0KHZhbCwgbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6 UG9pbnRlclR5cGU+KHB0ci0+Z2V0VHlwZSgpKS0+Z2V0UG9pbnRlckVsZW1lbnRUeXBlKCksCi0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdG9yZUluc3QsIENJLT5nZXROYW1l KCksIChsbHZtOjpJbnN0cnVjdGlvbiAqKU5VTEwpOwotLSNlbHNlCi0tICAgIHN0b3JlSW5zdCA9 IG5ldyBsbHZtOjpTdG9yZUluc3QodmFsLCBwdHIsIChsbHZtOjpJbnN0cnVjdGlvbiAqKU5VTEwp OwotLSNlbmRpZgotKyAgICBzdG9yZUluc3QgPSBuZXcgbGx2bTo6U3RvcmVJbnN0KHZhbCwgcHRy LCAobGx2bTo6SW5zdHJ1Y3Rpb24gKilOVUxMLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGxsdm06Ok1heWJlQWxpZ24oZy0+dGFyZ2V0LT5nZXROYXRpdmVWZWN0b3JBbGln bm1lbnQoKSkudmFsdWVPck9uZSgpKTsKLSAgICAgQXNzZXJ0KHN0b3JlSW5zdCk7Ci0gICAgIHJl dHVybiBzdG9yZUluc3Q7Ci0gfQotQEAgLTY2NDUsMTUgKzY3MDgsMTggQEAgbGx2bTo6SW5zdHJ1 Y3Rpb24gKkZpeEFkZHJlc3NTcGFjZTo6Y3JlYXRlSW50OFdyUmVnaW9uKGxsdm06OlZhbHVlICpW YWwsIGxsdm06OlYKLSAgICAgaW50IHdpZHRoID0gZy0+dGFyZ2V0LT5nZXRWZWN0b3JXaWR0aCgp OwotIAotICAgICBsbHZtOjpWYWx1ZSAqQXJnc1s4XTsKLS0KLSsjaWYgSVNQQ19MTFZNX1ZFUlNJ T04gPj0gSVNQQ19MTFZNXzExXzAKLSsgICAgQXJnc1swXSA9IGxsdm06OlVuZGVmVmFsdWU6Omdl dChsbHZtOjpGaXhlZFZlY3RvclR5cGU6OmdldChMTFZNVHlwZXM6OkludDhUeXBlLCB3aWR0aCAq IDQpKTsgLy8gb2xkIHZhbHVlCi0rI2Vsc2UKLSAgICAgQXJnc1swXSA9IGxsdm06OlVuZGVmVmFs dWU6OmdldChsbHZtOjpWZWN0b3JUeXBlOjpnZXQoTExWTVR5cGVzOjpJbnQ4VHlwZSwgd2lkdGgg KiA0KSk7IC8vIG9sZCB2YWx1ZQotLSAgICBBcmdzWzFdID0gVmFsOyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Ly8gdmFsdWUgdG8gc3RvcmUKLS0gICAgQXJnc1syXSA9IGxsdm06OkNvbnN0YW50SW50OjpnZXQo TExWTVR5cGVzOjpJbnQzMlR5cGUsIDApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8v IHZzdHJpZGUKLS0gICAgQXJnc1szXSA9IGxsdm06OkNvbnN0YW50SW50OjpnZXQoTExWTVR5cGVz OjpJbnQzMlR5cGUsIHdpZHRoKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdpZHRoCi0t ICAgIEFyZ3NbNF0gPSBsbHZtOjpDb25zdGFudEludDo6Z2V0KExMVk1UeXBlczo6SW50MzJUeXBl LCA0KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBzdHJpZGUKLS0gICAgQXJnc1s1 XSA9IGxsdm06OkNvbnN0YW50SW50OjpnZXQoTExWTVR5cGVzOjpJbnQxNlR5cGUsIDApOyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG9mZnNldHMKLS0gICAgQXJnc1s2XSA9IGxsdm06 OkNvbnN0YW50SW50OjpnZXQoTExWTVR5cGVzOjpJbnQzMlR5cGUsIDApOyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIC8vIHBhcmVudCB3aWR0aCAoaWdub3JlZCkKLS0gICAgQXJnc1s3XSA9 IE1hc2s7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIC8vIG1hc2sKLSsjZW5kaWYKLSsgICAgQXJnc1sxXSA9IFZh bDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdmFs dWUgdG8gc3RvcmUKLSsgICAgQXJnc1syXSA9IGxsdm06OkNvbnN0YW50SW50OjpnZXQoTExWTVR5 cGVzOjpJbnQzMlR5cGUsIDApOyAgICAgLy8gdnN0cmlkZQotKyAgICBBcmdzWzNdID0gbGx2bTo6 Q29uc3RhbnRJbnQ6OmdldChMTFZNVHlwZXM6OkludDMyVHlwZSwgd2lkdGgpOyAvLyB3aWR0aAot KyAgICBBcmdzWzRdID0gbGx2bTo6Q29uc3RhbnRJbnQ6OmdldChMTFZNVHlwZXM6OkludDMyVHlw ZSwgNCk7ICAgICAvLyBzdHJpZGUKLSsgICAgQXJnc1s1XSA9IGxsdm06OkNvbnN0YW50SW50Ojpn ZXQoTExWTVR5cGVzOjpJbnQxNlR5cGUsIDApOyAgICAgLy8gb2Zmc2V0cwotKyAgICBBcmdzWzZd ID0gbGx2bTo6Q29uc3RhbnRJbnQ6OmdldChMTFZNVHlwZXM6OkludDMyVHlwZSwgMCk7ICAgICAv LyBwYXJlbnQgd2lkdGggKGlnbm9yZWQpCi0rICAgIEFyZ3NbN10gPSBNYXNrOyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG1hc2sKLSAKLSAgICAgbGx2 bTo6VHlwZSAqVHlzWzRdOwotIAotQEAgLTY3MDgsNyArNjc3NCwxMiBAQCBsbHZtOjpJbnN0cnVj dGlvbiAqRml4QWRkcmVzc1NwYWNlOjpwcm9jZXNzR2F0aGVyU2NhdHRlclByaXZhdGUobGx2bTo6 Q2FsbEluc3QgKgotICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gCi0gICAgIGxsdm06OlZhbHVlICph ZGRyZXNzID0gY2FsY3VsYXRlR2F0aGVyU2NhdHRlckFkZHJlc3MocHRyLCBvZmZzZXRzLCBDSSk7 Ci0rI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMV8wCi0rICAgIGxsdm06OlR5 cGUgKmk4VmVjVHlwZSA9IGxsdm06OkZpeGVkVmVjdG9yVHlwZTo6Z2V0KExMVk1UeXBlczo6SW50 OFR5cGUsIHdpZHRoICogNCk7Ci0rI2Vsc2UKLSAgICAgbGx2bTo6VHlwZSAqaThWZWNUeXBlID0g bGx2bTo6VmVjdG9yVHlwZTo6Z2V0KExMVk1UeXBlczo6SW50OFR5cGUsIHdpZHRoICogNCk7Ci0r I2VuZGlmCi0rCi0gICAgIGJvb2wgaXNJbnQ4ID0gKHZhbHVlLT5nZXRUeXBlKCktPmdldFNjYWxh clR5cGUoKSA9PSBMTFZNVHlwZXM6OkludDhUeXBlKTsKLSAKLSAgICAgQXNzZXJ0KGFkZHJlc3Mg JiYgIkJhZCBnYXRoZXIvc2NhdHRlciBhZGRyZXNzISIpOwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9p c3BjL3BhdGNoZXMvbGx2bTEyLTAwNi5wYXRjaCBiL3NyY3BrZ3MvaXNwYy9wYXRjaGVzL2xsdm0x Mi0wMDYucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE4MjllYTQ4MzkxZS4u MDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvaXNwYy9wYXRjaGVzL2xsdm0xMi0wMDYucGF0Y2gK KysrIC9kZXYvbnVsbApAQCAtMSwxMjYgKzAsMCBAQAotRnJvbSBiYjNmNDkzZDFmYmQ0NWM3OWUx ZDlkZWU2N2EwNDMwYmEzMTNlYWFkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogQXJp bmEgTmVzaGx5YWV2YSA8YXJpbmEubmVzaGx5YWV2YUBpbnRlbC5jb20+Ci1EYXRlOiBUdWUsIDE5 IEphbiAyMDIxIDExOjA3OjMzIC0wODAwCi1TdWJqZWN0OiBbUEFUQ0hdIEZpeGVkIGlmZGVmcyBm b3IgTExWTV8xMQotCi0tLS0KLSBzcmMvY3R4LmNwcCB8ICA2ICsrKy0tLQotIHNyYy9vcHQuY3Bw IHwgMTggKysrKysrKysrLS0tLS0tLS0tCi0gMiBmaWxlcyBjaGFuZ2VkLCAxMiBpbnNlcnRpb25z KCspLCAxMiBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL3NyYy9jdHguY3BwIGIvc3JjL2N0 eC5jcHAKLWluZGV4IDJhNzJlNjgzNy4uNTI3YTAyZjMwIDEwMDY0NAotLS0tIGEvc3JjL2N0eC5j cHAKLSsrKyBiL3NyYy9jdHguY3BwCi1AQCAtMTY5MSw3ICsxNjkxLDcgQEAgbGx2bTo6VmFsdWUg KkZ1bmN0aW9uRW1pdENvbnRleHQ6OlNtZWFyVW5pZm9ybShsbHZtOjpWYWx1ZSAqdmFsdWUsIGNv bnN0IGxsdm06OlQKLSAgICAgaWYgKGxsdm06OkNvbnN0YW50ICpjb25zdF92YWwgPSBsbHZtOjpk eW5fY2FzdDxsbHZtOjpDb25zdGFudD4odmFsdWUpKSB7Ci0gI2lmIElTUENfTExWTV9WRVJTSU9O IDwgSVNQQ19MTFZNXzExXzAKLSAgICAgICAgIHJldCA9IGxsdm06OkNvbnN0YW50VmVjdG9yOjpn ZXRTcGxhdChnLT50YXJnZXQtPmdldFZlY3RvcldpZHRoKCksIGNvbnN0X3ZhbCk7Ci0tI2VsaWYg SVNQQ19MTFZNX1ZFUlNJT04gPT0gSVNQQ19MTFZNXzExXzAKLSsjZWxpZiBJU1BDX0xMVk1fVkVS U0lPTiA8IElTUENfTExWTV8xMl8wCi0gICAgICAgICByZXQgPQotICAgICAgICAgICAgIGxsdm06 OkNvbnN0YW50VmVjdG9yOjpnZXRTcGxhdCh7c3RhdGljX2Nhc3Q8dW5zaWduZWQgaW50PihnLT50 YXJnZXQtPmdldFZlY3RvcldpZHRoKCkpLCBmYWxzZX0sIGNvbnN0X3ZhbCk7Ci0gI2Vsc2UgLy8g TExWTSAxMi4wKwotQEAgLTMxNDgsNyArMzE0OCw3IEBAIGxsdm06OlZhbHVlICpGdW5jdGlvbkVt aXRDb250ZXh0OjpCcm9hZGNhc3RWYWx1ZShsbHZtOjpWYWx1ZSAqdiwgbGx2bTo6VHlwZSAqdmVj Ci0gI2lmIElTUENfTExWTV9WRVJTSU9OIDwgSVNQQ19MTFZNXzExXzAKLSAgICAgbGx2bTo6Q29u c3RhbnQgKnplcm9WZWMgPSBsbHZtOjpDb25zdGFudFZlY3Rvcjo6Z2V0U3BsYXQoCi0gICAgICAg ICB2ZWNUeXBlLT5nZXRWZWN0b3JOdW1FbGVtZW50cygpLCBsbHZtOjpDb25zdGFudDo6Z2V0TnVs bFZhbHVlKGxsdm06OlR5cGU6OmdldEludDMyVHkoKmctPmN0eCkpKTsKLS0jZWxpZiBJU1BDX0xM Vk1fVkVSU0lPTiA9PSBJU1BDX0xMVk1fMTFfMAotKyNlbGlmIElTUENfTExWTV9WRVJTSU9OIDwg SVNQQ19MTFZNXzEyXzAKLSAgICAgbGx2bTo6Q29uc3RhbnQgKnplcm9WZWMgPQotICAgICAgICAg bGx2bTo6Q29uc3RhbnRWZWN0b3I6OmdldFNwbGF0KHtzdGF0aWNfY2FzdDx1bnNpZ25lZCBpbnQ+ KHR5LT5nZXROdW1FbGVtZW50cygpKSwgZmFsc2V9LAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGxsdm06OkNvbnN0YW50OjpnZXROdWxsVmFsdWUobGx2bTo6VHlwZTo6 Z2V0SW50MzJUeSgqZy0+Y3R4KSkpOwotQEAgLTM2ODgsNyArMzY4OCw3IEBAIGxsdm06OlZhbHVl ICpGdW5jdGlvbkVtaXRDb250ZXh0OjpHZW5YU2ltZENGUHJlZGljYXRlKGxsdm06OlZhbHVlICp2 YWx1ZSwgbGx2bTo6Ci0gI2lmIElTUENfTExWTV9WRVJTSU9OIDwgSVNQQ19MTFZNXzExXzAKLSAg ICAgICAgIGRlZmF1bHRzID0gbGx2bTo6Q29uc3RhbnRWZWN0b3I6OmdldFNwbGF0KHZ0LT5nZXRW ZWN0b3JOdW1FbGVtZW50cygpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgbGx2bTo6Q29uc3RhbnQ6OmdldE51bGxWYWx1ZSh2dC0+Z2V0RWxlbWVu dFR5cGUoKSkpOwotLSNlbGlmIElTUENfTExWTV9WRVJTSU9OID09IElTUENfTExWTV8xMV8wCi0r I2VsaWYgSVNQQ19MTFZNX1ZFUlNJT04gPCBJU1BDX0xMVk1fMTJfMAotICAgICAgICAgZGVmYXVs dHMgPSBsbHZtOjpDb25zdGFudFZlY3Rvcjo6Z2V0U3BsYXQoe3N0YXRpY19jYXN0PHVuc2lnbmVk IGludD4odnQtPmdldE51bUVsZW1lbnRzKCkpLCBmYWxzZX0sCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpDb25zdGFudDo6Z2V0TnVsbFZh bHVlKHZ0LT5nZXRFbGVtZW50VHlwZSgpKSk7Ci0gI2Vsc2UKLWRpZmYgLS1naXQgYS9zcmMvb3B0 LmNwcCBiL3NyYy9vcHQuY3BwCi1pbmRleCAxNzg5Yjg0NzYuLjNmZjE5MWEwYSAxMDA2NDQKLS0t LSBhL3NyYy9vcHQuY3BwCi0rKysgYi9zcmMvb3B0LmNwcAotQEAgLTEwNDUsNyArMTA0NSw3IEBA IGJvb2wgSW50cmluc2ljc09wdDo6cnVuT25CYXNpY0Jsb2NrKGxsdm06OkJhc2ljQmxvY2sgJmJi KSB7Ci0gICAgICAgICAgICAgICAgICAgICBhbGlnbiA9IGctPnRhcmdldC0+Z2V0TmF0aXZlVmVj dG9yQWxpZ25tZW50KCk7Ci0gICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAg ICAgIGFsaWduID0gY2FsbEluc3QtPmdldENhbGxlZEZ1bmN0aW9uKCkgPT0gYXZ4TWFza2VkTG9h ZDMyID8gNCA6IDg7Ci0tI2lmIElTUENfTExWTV9WRVJTSU9OID09IElTUENfTExWTV8xMF8wCi0r I2lmIElTUENfTExWTV9WRVJTSU9OIDwgSVNQQ19MTFZNXzExXzAKLSAgICAgICAgICAgICAgICAg bGx2bTo6SW5zdHJ1Y3Rpb24gKmxvYWRJbnN0ID0KLSAgICAgICAgICAgICAgICAgICAgIG5ldyBs bHZtOjpMb2FkSW5zdChjYXN0UHRyLCBsbHZtOjpUd2luZShjYWxsSW5zdC0+Z2V0QXJnT3BlcmFu ZCgwKS0+Z2V0TmFtZSgpKSArICJfbG9hZCIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZmFsc2UgLyogbm90IHZvbGF0aWxlICovLCBsbHZtOjpNYXliZUFsaWduKGFs aWduKSwgKGxsdm06Okluc3RydWN0aW9uICopTlVMTCk7Ci1AQCAtMTQ3Miw3ICsxNDcyLDcgQEAg c3RhdGljIGxsdm06OlZhbHVlICpsR2V0QmFzZVB0ckFuZE9mZnNldHMobGx2bTo6VmFsdWUgKnB0 cnMsIGxsdm06OlZhbHVlICoqb2Zmc2UKLSAgICAgICAgICAgICAgICAgICAgIGxsdm06OlZhbHVl ICp6ZXJvTWFzayA9Ci0gI2lmIElTUENfTExWTV9WRVJTSU9OIDwgSVNQQ19MTFZNXzExXzAKLSAg ICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpDb25zdGFudFZlY3Rvcjo6Z2V0U3BsYXQoY3Yt PmdldFR5cGUoKS0+Z2V0VmVjdG9yTnVtRWxlbWVudHMoKSwKLS0jZWxpZiBJU1BDX0xMVk1fVkVS U0lPTiA9PSBJU1BDX0xMVk1fMTFfMAotKyNlbGlmIElTUENfTExWTV9WRVJTSU9OIDwgSVNQQ19M TFZNXzEyXzAKLSAgICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpDb25zdGFudFZlY3Rvcjo6 Z2V0U3BsYXQoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtsbHZtOjpkeW5fY2FzdDxs bHZtOjpWZWN0b3JUeXBlPihjdi0+Z2V0VHlwZSgpKS0+Z2V0TnVtRWxlbWVudHMoKSwgZmFsc2V9 LAotICNlbHNlIC8vIExMVk0gMTIuMCsKLUBAIC0xNDk1LDcgKzE0OTUsNyBAQCBzdGF0aWMgbGx2 bTo6VmFsdWUgKmxHZXRCYXNlUHRyQW5kT2Zmc2V0cyhsbHZtOjpWYWx1ZSAqcHRycywgbGx2bTo6 VmFsdWUgKipvZmZzZQotICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06OlZhbHVlICp6ZXJv TWFzayA9IGxsdm06OkNvbnN0YW50VmVjdG9yOjpnZXRTcGxhdCgKLSAjaWYgSVNQQ19MTFZNX1ZF UlNJT04gPCBJU1BDX0xMVk1fMTFfMAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3Bf dmFyX3R5cGUtPmdldFZlY3Rvck51bUVsZW1lbnRzKCksCi0tI2VsaWYgSVNQQ19MTFZNX1ZFUlNJ T04gPT0gSVNQQ19MTFZNXzExXzAKLSsjZWxpZiBJU1BDX0xMVk1fVkVSU0lPTiA8IElTUENfTExW TV8xMl8wCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtsbHZtOjpkeW5fY2FzdDxsbHZt OjpWZWN0b3JUeXBlPihib3BfdmFyX3R5cGUpLT5nZXROdW1FbGVtZW50cygpLCBmYWxzZX0sCi0g I2Vsc2UgLy8gTExWTSAxMi4wKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpF bGVtZW50Q291bnQ6OmdldCgKLUBAIC0yODAzLDcgKzI4MDMsNyBAQCBzdGF0aWMgYm9vbCBsR1NU b0xvYWRTdG9yZShsbHZtOjpDYWxsSW5zdCAqY2FsbEluc3QpIHsKLSAgICAgICAgICAgICBsbHZt OjpWYWx1ZSAqemVyb01hc2sgPQotICNpZiBJU1BDX0xMVk1fVkVSU0lPTiA8IElTUENfTExWTV8x MV8wCi0gICAgICAgICAgICAgICAgIGxsdm06OkNvbnN0YW50VmVjdG9yOjpnZXRTcGxhdChjYWxs SW5zdC0+Z2V0VHlwZSgpLT5nZXRWZWN0b3JOdW1FbGVtZW50cygpLAotLSNlbGlmIElTUENfTExW TV9WRVJTSU9OID09IElTUENfTExWTV8xMV8wCi0rI2VsaWYgSVNQQ19MTFZNX1ZFUlNJT04gPCBJ U1BDX0xMVk1fMTJfMAotICAgICAgICAgICAgICAgICBsbHZtOjpDb25zdGFudFZlY3Rvcjo6Z2V0 U3BsYXQoCi0gICAgICAgICAgICAgICAgICAgICB7bGx2bTo6ZHluX2Nhc3Q8bGx2bTo6VmVjdG9y VHlwZT4oY2FsbEluc3QtPmdldFR5cGUoKSktPmdldE51bUVsZW1lbnRzKCksIGZhbHNlfSwKLSAK LUBAIC0zMTAwLDcgKzMxMDAsNyBAQCBzdGF0aWMgYm9vbCBsSW1wcm92ZU1hc2tlZExvYWQobGx2 bTo6Q2FsbEluc3QgKmNhbGxJbnN0LCBsbHZtOjpCYXNpY0Jsb2NrOjppdGVyYQotICAgICAgICAg ewotICAgICAgICAgICAgIGxsdm06OlR5cGUgKnB0clR5cGUgPSBsbHZtOjpQb2ludGVyVHlwZTo6 Z2V0KGNhbGxJbnN0LT5nZXRUeXBlKCksIDApOwotICAgICAgICAgICAgIHB0ciA9IG5ldyBsbHZt OjpCaXRDYXN0SW5zdChwdHIsIHB0clR5cGUsICJwdHJfY2FzdF9mb3JfbG9hZCIsIGNhbGxJbnN0 KTsKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPT0gSVNQQ19MTFZNXzEwXzAKLSsjaWYgSVNQQ19M TFZNX1ZFUlNJT04gPCBJU1BDX0xMVk1fMTFfMAotICAgICAgICAgICAgIGxvYWQgPSBuZXcgbGx2 bTo6TG9hZEluc3QoCi0gICAgICAgICAgICAgICAgIHB0ciwgY2FsbEluc3QtPmdldE5hbWUoKSwg ZmFsc2UgLyogbm90IHZvbGF0aWxlICovLAotICAgICAgICAgICAgICAgICBsbHZtOjpNYXliZUFs aWduKGctPm9wdC5mb3JjZUFsaWduZWRNZW1vcnkgPyBnLT50YXJnZXQtPmdldE5hdGl2ZVZlY3Rv ckFsaWdubWVudCgpIDogaW5mby0+YWxpZ24pCi1AQCAtMzQ1OSw3ICszNDU5LDcgQEAgbGx2bTo6 VmFsdWUgKmxHRVBBbmRMb2FkKGxsdm06OlZhbHVlICpiYXNlUHRyLCBpbnQ2NF90IG9mZnNldCwg aW50IGFsaWduLCBsbHZtOjoKLSAgICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6VHlwZSAq dHlwZSkgewotICAgICBsbHZtOjpWYWx1ZSAqcHRyID0gbEdFUEluc3QoYmFzZVB0ciwgTExWTUlu dDY0KG9mZnNldCksICJuZXdfYmFzZSIsIGluc2VydEJlZm9yZSk7Ci0gICAgIHB0ciA9IG5ldyBs bHZtOjpCaXRDYXN0SW5zdChwdHIsIGxsdm06OlBvaW50ZXJUeXBlOjpnZXQodHlwZSwgMCksICJw dHJfY2FzdCIsIGluc2VydEJlZm9yZSk7Ci0tI2lmIElTUENfTExWTV9WRVJTSU9OID09IElTUENf TExWTV8xMF8wCi0rI2lmIElTUENfTExWTV9WRVJTSU9OIDwgSVNQQ19MTFZNXzExXzAKLSAgICAg cmV0dXJuIG5ldyBsbHZtOjpMb2FkSW5zdChwdHIsICJnYXRoZXJfbG9hZCIsIGZhbHNlIC8qIG5v dCB2b2xhdGlsZSAqLywgbGx2bTo6TWF5YmVBbGlnbihhbGlnbiksIGluc2VydEJlZm9yZSk7Ci0g I2Vsc2UgLy8gTExWTSAxMS4wKwotICAgICByZXR1cm4gbmV3IGxsdm06OkxvYWRJbnN0KGxsdm06 OmR5bl9jYXN0PGxsdm06OlBvaW50ZXJUeXBlPihwdHItPmdldFR5cGUoKSktPmdldFBvaW50ZXJF bGVtZW50VHlwZSgpLCBwdHIsCi1AQCAtNjE4Myw3ICs2MTgzLDcgQEAgYm9vbCBSZXBsYWNlTExW TUludHJpbnNpY3M6OnJ1bk9uQmFzaWNCbG9jayhsbHZtOjpCYXNpY0Jsb2NrICZiYikgewotICAg ICAgICAgICAgICAgICBBcmdzLnB1c2hfYmFjayhsbHZtOjpDb25zdGFudFZlY3Rvcjo6Z2V0U3Bs YXQoCi0gI2lmIElTUENfTExWTV9WRVJTSU9OIDwgSVNQQ19MTFZNXzExXzAKLSAgICAgICAgICAg ICAgICAgICAgIGctPnRhcmdldC0+Z2V0TmF0aXZlVmVjdG9yV2lkdGgoKSwKLS0jZWxpZiBJU1BD X0xMVk1fVkVSU0lPTiA9PSBJU1BDX0xMVk1fMTFfMAotKyNlbGlmIElTUENfTExWTV9WRVJTSU9O IDwgSVNQQ19MTFZNXzEyXzAKLSAgICAgICAgICAgICAgICAgICAgIHtzdGF0aWNfY2FzdDx1bnNp Z25lZCBpbnQ+KGctPnRhcmdldC0+Z2V0TmF0aXZlVmVjdG9yV2lkdGgoKSksIGZhbHNlfSwKLSAj ZWxzZSAvLyBMTFZNIDEyLjArCi0gICAgICAgICAgICAgICAgICAgICBsbHZtOjpFbGVtZW50Q291 bnQ6OmdldChzdGF0aWNfY2FzdDx1bnNpZ25lZCBpbnQ+KGctPnRhcmdldC0+Z2V0TmF0aXZlVmVj dG9yV2lkdGgoKSksIGZhbHNlKSwKLUBAIC02MTk1LDcgKzYxOTUsNyBAQCBib29sIFJlcGxhY2VM TFZNSW50cmluc2ljczo6cnVuT25CYXNpY0Jsb2NrKGxsdm06OkJhc2ljQmxvY2sgJmJiKSB7Ci0g ICAgICAgICAgICAgICAgIGxsdm06OlZhbHVlICp6ZXJvTWFzayA9IGxsdm06OkNvbnN0YW50VmVj dG9yOjpnZXRTcGxhdCgKLSAjaWYgSVNQQ19MTFZNX1ZFUlNJT04gPCBJU1BDX0xMVk1fMTFfMAot ICAgICAgICAgICAgICAgICAgICAgZy0+dGFyZ2V0LT5nZXROYXRpdmVWZWN0b3JXaWR0aCgpLAot LSNlbGlmIElTUENfTExWTV9WRVJTSU9OID09IElTUENfTExWTV8xMV8wCi0rI2VsaWYgSVNQQ19M TFZNX1ZFUlNJT04gPCBJU1BDX0xMVk1fMTJfMAotICAgICAgICAgICAgICAgICAgICAge3N0YXRp Y19jYXN0PHVuc2lnbmVkIGludD4oZy0+dGFyZ2V0LT5nZXROYXRpdmVWZWN0b3JXaWR0aCgpKSwg ZmFsc2V9LAotICNlbHNlIC8vIExMVk0gMTIuMCsKLSAgICAgICAgICAgICAgICAgICAgIGxsdm06 OkVsZW1lbnRDb3VudDo6Z2V0KHN0YXRpY19jYXN0PHVuc2lnbmVkIGludD4oZy0+dGFyZ2V0LT5n ZXROYXRpdmVWZWN0b3JXaWR0aCgpKSwgZmFsc2UpLAotQEAgLTY1NjcsNyArNjU2Nyw3IEBAIGxs dm06OlZhbHVlICpGaXhBZGRyZXNzU3BhY2U6OmNhbGN1bGF0ZUdhdGhlclNjYXR0ZXJBZGRyZXNz KGxsdm06OlZhbHVlICpQdHIsIGxsCi0gICAgICAgICBsbHZtOjpDb25zdGFudCAqemVyb1ZlYyA9 IGxsdm06OkNvbnN0YW50VmVjdG9yOjpnZXRTcGxhdCgKLSAjaWYgSVNQQ19MTFZNX1ZFUlNJT04g PCBJU1BDX0xMVk1fMTFfMAotICAgICAgICAgICAgIGFkZHJlc3NUeXBlLT5nZXRWZWN0b3JOdW1F bGVtZW50cygpLAotLSNlbGlmIElTUENfTExWTV9WRVJTSU9OID09IElTUENfTExWTV8xMV8wCi0r I2VsaWYgSVNQQ19MTFZNX1ZFUlNJT04gPCBJU1BDX0xMVk1fMTJfMAotICAgICAgICAgICAgIHts bHZtOjpkeW5fY2FzdDxsbHZtOjpWZWN0b3JUeXBlPihhZGRyZXNzVHlwZSktPmdldE51bUVsZW1l bnRzKCksIGZhbHNlfSwKLSAjZWxzZQotICAgICAgICAgbGx2bTo6RWxlbWVudENvdW50OjpnZXQo CmRpZmYgLS1naXQgYS9zcmNwa2dzL2lzcGMvcGF0Y2hlcy9sbHZtMTItMDA3LnBhdGNoIGIvc3Jj cGtncy9pc3BjL3BhdGNoZXMvbGx2bTEyLTAwNy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMWI5NzVmODk2YzdlLi4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9pc3BjL3Bh dGNoZXMvbGx2bTEyLTAwNy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDE2MCArMCwwIEBACi1G cm9tIDYyZjVhNmMzN2JmMjZmYzI1YTdjZjgxODY4MDUyZDM0NzI4NzQ2MTAgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCi1Gcm9tOiBBcmluYSBOZXNobHlhZXZhIDxhcmluYS5uZXNobHlhZXZhQGlu dGVsLmNvbT4KLURhdGU6IFR1ZSwgMjMgTWFyIDIwMjEgMjM6MDc6MzAgLTA3MDAKLVN1YmplY3Q6 IFtQQVRDSF0gRG8gbm90IGdlbmVyYXRlIGZ1bmN0aW9uIG1hc2sgd2hlbiBpdCBpcyBub3QgcmVx dWlyZWQKLQotLS0tCi0gc3JjL2N0eC5jcHAgICAgICAgICAgICAgICAgICAgIHwgMzkgKysrKysr KysrKysrKystLS0tLS0tCi0gdGVzdHMvbGl0LXRlc3RzL2Z1bGxfbWFzay5pc3BjIHwgNjMgKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwotIDIgZmlsZXMgY2hhbmdlZCwgOTAgaW5z ZXJ0aW9ucygrKSwgMTIgZGVsZXRpb25zKC0pCi0gY3JlYXRlIG1vZGUgMTAwNjQ0IHRlc3RzL2xp dC10ZXN0cy9mdWxsX21hc2suaXNwYwotCi1kaWZmIC0tZ2l0IGEvc3JjL2N0eC5jcHAgYi9zcmMv Y3R4LmNwcAotaW5kZXggNTI3YTAyZjMwLi45ZTc3NWZjNWMgMTAwNjQ0Ci0tLS0gYS9zcmMvY3R4 LmNwcAotKysrIGIvc3JjL2N0eC5jcHAKLUBAIC0yMzEsMTAgKzIzMSwxOCBAQCBGdW5jdGlvbkVt aXRDb250ZXh0OjpGdW5jdGlvbkVtaXRDb250ZXh0KEZ1bmN0aW9uICpmdW5jLCBTeW1ib2wgKmZ1 blN5bSwgbGx2bTo6RgotICAgICBpbnRlcm5hbE1hc2tQb2ludGVyID0gQWxsb2NhSW5zdChMTFZN VHlwZXM6Ok1hc2tUeXBlLCAiaW50ZXJuYWxfbWFza19tZW1vcnkiKTsKLSAgICAgU3RvcmVJbnN0 KExMVk1NYXNrQWxsT24sIGludGVybmFsTWFza1BvaW50ZXIpOwotIAotLSAgICBmdW5jdGlvbk1h c2tWYWx1ZSA9IExMVk1NYXNrQWxsT247Ci0tCi0tICAgIGZ1bGxNYXNrUG9pbnRlciA9IEFsbG9j YUluc3QoTExWTVR5cGVzOjpNYXNrVHlwZSwgImZ1bGxfbWFza19tZW1vcnkiKTsKLS0gICAgU3Rv cmVJbnN0KExMVk1NYXNrQWxsT24sIGZ1bGxNYXNrUG9pbnRlcik7Ci0rICAgIC8vIElmIHRoZSBm dW5jdGlvbiBkb2Vzbid0IGhhdmUgX19tYXNrIGluIHBhcmFtZXRlcnMsIHRoZXJlIGlzIG5vIG5l ZWQgdG8KLSsgICAgLy8gaGF2ZSBmdW5jdGlvbiBtYXNrCi0rICAgIGlmICgoZnVuYy0+R2V0VHlw ZSgpLT5pc0V4cG9ydGVkICYmCi0rICAgICAgICAgKGxmLT5nZXRGdW5jdGlvblR5cGUoKS0+Z2V0 TnVtUGFyYW1zKCkgPT0gZnVuYy0+R2V0VHlwZSgpLT5HZXROdW1QYXJhbWV0ZXJzKCkpKSB8fAot KyAgICAgICAgKGZ1bmMtPkdldFR5cGUoKS0+aXNVbm1hc2tlZCkgfHwgKGZ1bmMtPkdldFR5cGUo KS0+aXNUYXNrKSkgewotKyAgICAgICAgZnVuY3Rpb25NYXNrVmFsdWUgPSBOVUxMOwotKyAgICAg ICAgZnVsbE1hc2tQb2ludGVyID0gTlVMTDsKLSsgICAgfSBlbHNlIHsKLSsgICAgICAgIGZ1bmN0 aW9uTWFza1ZhbHVlID0gTExWTU1hc2tBbGxPbjsKLSsgICAgICAgIGZ1bGxNYXNrUG9pbnRlciA9 IEFsbG9jYUluc3QoTExWTVR5cGVzOjpNYXNrVHlwZSwgImZ1bGxfbWFza19tZW1vcnkiKTsKLSsg ICAgICAgIFN0b3JlSW5zdChMTFZNTWFza0FsbE9uLCBmdWxsTWFza1BvaW50ZXIpOwotKyAgICB9 Ci0gCi0gICAgIGJsb2NrRW50cnlNYXNrID0gTlVMTDsKLSAgICAgYnJlYWtMYW5lc1B0ciA9IGNv bnRpbnVlTGFuZXNQdHIgPSBOVUxMOwotQEAgLTM4OSwyMCArMzk3LDI2IEBAIGxsdm06OkJhc2lj QmxvY2sgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkdldEN1cnJlbnRCYXNpY0Jsb2NrKCkgeyByZXR1 cm4gYmJsb2NrOyB9Ci0gCi0gdm9pZCBGdW5jdGlvbkVtaXRDb250ZXh0OjpTZXRDdXJyZW50QmFz aWNCbG9jayhsbHZtOjpCYXNpY0Jsb2NrICpiYikgeyBiYmxvY2sgPSBiYjsgfQotIAotLWxsdm06 OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpHZXRGdW5jdGlvbk1hc2soKSB7IHJldHVybiBm dW5jdGlvbk1hc2tWYWx1ZTsgfQotK2xsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpH ZXRGdW5jdGlvbk1hc2soKSB7IHJldHVybiBmdWxsTWFza1BvaW50ZXIgPyBmdW5jdGlvbk1hc2tW YWx1ZSA6IExMVk1NYXNrQWxsT247IH0KLSAKLSBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29u dGV4dDo6R2V0SW50ZXJuYWxNYXNrKCkgeyByZXR1cm4gTG9hZEluc3QoaW50ZXJuYWxNYXNrUG9p bnRlciwgTlVMTCwgImxvYWRfbWFzayIpOyB9Ci0gCi0gbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1p dENvbnRleHQ6OkdldEZ1bGxNYXNrKCkgewotLSAgICByZXR1cm4gQmluYXJ5T3BlcmF0b3IobGx2 bTo6SW5zdHJ1Y3Rpb246OkFuZCwgR2V0SW50ZXJuYWxNYXNrKCksIGZ1bmN0aW9uTWFza1ZhbHVl LCAiaW50ZXJuYWxfbWFzayZmdW5jdGlvbl9tYXNrIik7Ci0rICAgIHJldHVybiBmdWxsTWFza1Bv aW50ZXIgPyBCaW5hcnlPcGVyYXRvcihsbHZtOjpJbnN0cnVjdGlvbjo6QW5kLCBHZXRJbnRlcm5h bE1hc2soKSwgZnVuY3Rpb25NYXNrVmFsdWUsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAiaW50ZXJuYWxfbWFzayZmdW5jdGlvbl9tYXNrIikKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICA6IEdldEludGVybmFsTWFzaygpOwotIH0KLSAKLS1sbHZtOjpW YWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6R2V0RnVsbE1hc2tQb2ludGVyKCkgeyByZXR1cm4g ZnVsbE1hc2tQb2ludGVyOyB9Ci0rbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6Okdl dEZ1bGxNYXNrUG9pbnRlcigpIHsKLSsgICAgcmV0dXJuIGZ1bGxNYXNrUG9pbnRlciA/IGZ1bGxN YXNrUG9pbnRlciA6IGludGVybmFsTWFza1BvaW50ZXI7Ci0rfQotIAotIHZvaWQgRnVuY3Rpb25F bWl0Q29udGV4dDo6U2V0RnVuY3Rpb25NYXNrKGxsdm06OlZhbHVlICp2YWx1ZSkgewotLSAgICBm dW5jdGlvbk1hc2tWYWx1ZSA9IHZhbHVlOwotLSAgICBpZiAoYmJsb2NrICE9IE5VTEwpCi0tICAg ICAgICBTdG9yZUluc3QoR2V0RnVsbE1hc2soKSwgZnVsbE1hc2tQb2ludGVyKTsKLSsgICAgaWYg KGZ1bGxNYXNrUG9pbnRlciAhPSBOVUxMKSB7Ci0rICAgICAgICBmdW5jdGlvbk1hc2tWYWx1ZSA9 IHZhbHVlOwotKyAgICAgICAgaWYgKGJibG9jayAhPSBOVUxMKQotKyAgICAgICAgICAgIFN0b3Jl SW5zdChHZXRGdWxsTWFzaygpLCBmdWxsTWFza1BvaW50ZXIpOwotKyAgICB9Ci0gfQotIAotIHZv aWQgRnVuY3Rpb25FbWl0Q29udGV4dDo6U2V0QmxvY2tFbnRyeU1hc2sobGx2bTo6VmFsdWUgKnZh bHVlKSB7IGJsb2NrRW50cnlNYXNrID0gdmFsdWU7IH0KLUBAIC00MTAsNyArNDI0LDggQEAgdm9p ZCBGdW5jdGlvbkVtaXRDb250ZXh0OjpTZXRCbG9ja0VudHJ5TWFzayhsbHZtOjpWYWx1ZSAqdmFs dWUpIHsgYmxvY2tFbnRyeU1hc2sKLSB2b2lkIEZ1bmN0aW9uRW1pdENvbnRleHQ6OlNldEludGVy bmFsTWFzayhsbHZtOjpWYWx1ZSAqdmFsdWUpIHsKLSAgICAgU3RvcmVJbnN0KHZhbHVlLCBpbnRl cm5hbE1hc2tQb2ludGVyKTsKLSAgICAgLy8ga2x1ZGdlIHNvIHRoYXQgX19tYXNrIHJldHVybnMg dGhlIHJpZ2h0IHZhbHVlIGluIGlzcGMgY29kZS4KLS0gICAgU3RvcmVJbnN0KEdldEZ1bGxNYXNr KCksIGZ1bGxNYXNrUG9pbnRlcik7Ci0rICAgIGlmIChmdWxsTWFza1BvaW50ZXIpCi0rICAgICAg ICBTdG9yZUluc3QoR2V0RnVsbE1hc2soKSwgZnVsbE1hc2tQb2ludGVyKTsKLSB9Ci0gCi0gdm9p ZCBGdW5jdGlvbkVtaXRDb250ZXh0OjpTZXRJbnRlcm5hbE1hc2tBbmQobGx2bTo6VmFsdWUgKm9s ZE1hc2ssIGxsdm06OlZhbHVlICp0ZXN0KSB7Ci1AQCAtMTI2NSw3ICsxMjgwLDcgQEAgdm9pZCBG dW5jdGlvbkVtaXRDb250ZXh0OjpDdXJyZW50TGFuZXNSZXR1cm5lZChFeHByICpleHByLCBib29s IGRvQ29oZXJlbmNlQ2hlY2sKLSAgICAgICAgIC8vIGxhbmVzIGhhdmUgcmV0dXJuZWQKLSAgICAg ICAgIGlmIChkb0NvaGVyZW5jZUNoZWNrKSB7Ci0gICAgICAgICAgICAgLy8gaWYgbmV3UmV0dXJu ZWRMYW5lcyA9PSBmdW5jdGlvbk1hc2tWYWx1ZSwgZ2V0IG91dCBvZiBoZXJlIQotLSAgICAgICAg ICAgIGxsdm06OlZhbHVlICpjbXAgPSBNYXNrc0FsbEVxdWFsKGZ1bmN0aW9uTWFza1ZhbHVlLCBu ZXdSZXR1cm5lZExhbmVzKTsKLSsgICAgICAgICAgICBsbHZtOjpWYWx1ZSAqY21wID0gTWFza3NB bGxFcXVhbChHZXRGdW5jdGlvbk1hc2soKSwgbmV3UmV0dXJuZWRMYW5lcyk7Ci0gICAgICAgICAg ICAgbGx2bTo6QmFzaWNCbG9jayAqYkRvUmV0dXJuID0gQ3JlYXRlQmFzaWNCbG9jaygiZG9fcmV0 dXJuIik7Ci0gICAgICAgICAgICAgbGx2bTo6QmFzaWNCbG9jayAqYk5vUmV0dXJuID0gQ3JlYXRl QmFzaWNCbG9jaygibm9fcmV0dXJuIik7Ci0gICAgICAgICAgICAgQnJhbmNoSW5zdChiRG9SZXR1 cm4sIGJOb1JldHVybiwgY21wKTsKLWRpZmYgLS1naXQgYS90ZXN0cy9saXQtdGVzdHMvZnVsbF9t YXNrLmlzcGMgYi90ZXN0cy9saXQtdGVzdHMvZnVsbF9tYXNrLmlzcGMKLW5ldyBmaWxlIG1vZGUg MTAwNjQ0Ci1pbmRleCAwMDAwMDAwMDAuLmFjMGIwYmNhMwotLS0tIC9kZXYvbnVsbAotKysrIGIv dGVzdHMvbGl0LXRlc3RzL2Z1bGxfbWFzay5pc3BjCi1AQCAtMCwwICsxLDYzIEBACi0rLy8gUlVO OiAle2lzcGN9ICVzIC1ESVNQQ19FWFBPUlQgLS1lbWl0LWxsdm0tdGV4dCAtTzAgLS1ub3dyYXAg LW8gJXQubGwKLSsvLyBSVU46IEZpbGVDaGVjayAtLWlucHV0LWZpbGU9JXQubGwgLWNoZWNrLXBy ZWZpeD1DSEVDS19JU1BDX0VYUE9SVCAlcwotKwotKy8vIFJVTjogJXtpc3BjfSAlcyAtRElTUENf VU5NQVNLRUQgLS1lbWl0LWxsdm0tdGV4dCAtTzAgLS1ub3dyYXAgLW8gJXQubGwKLSsvLyBSVU46 IEZpbGVDaGVjayAtLWlucHV0LWZpbGU9JXQubGwgLWNoZWNrLXByZWZpeD1DSEVDS19JU1BDX1VO TUFTS0VEICVzCi0rCi0rLy8gUlVOOiAle2lzcGN9ICVzIC1ESVNQQ19OT1FVQUxJRiAtLWVtaXQt bGx2bS10ZXh0IC1PMCAtLW5vd3JhcCAtbyAldC5sbAotKy8vIFJVTjogRmlsZUNoZWNrIC0taW5w dXQtZmlsZT0ldC5sbCAtY2hlY2stcHJlZml4PUNIRUNLX0lTUENfTk9RVUFMSUYgJXMKLSsKLSsv LyBSVU46ICV7aXNwY30gJXMgLURJU1BDX1RBU0sgLS1lbWl0LWxsdm0tdGV4dCAtTzAgLS1ub3dy YXAgLW8gJXQubGwKLSsvLyBSVU46IEZpbGVDaGVjayAtLWlucHV0LWZpbGU9JXQubGwgLWNoZWNr LXByZWZpeD1DSEVDS19JU1BDX1RBU0sgJXMKLSsKLStzdHJ1Y3QgUGFyYW1ldGVycyB7Ci0rICAg IGZsb2F0ICp2b3V0OwotKyAgICBpbnQgcGFyYW07Ci0rfTsKLSsKLSsjaWZkZWYgSVNQQ19FWFBP UlQKLSsvLyBDSEVDS19JU1BDX0VYUE9SVDogZGVmaW5lIHZvaWQgQHNpbXBsZV9leHBvcnRfX18K LSsvLyBDSEVDS19JU1BDX0VYUE9SVDogJWZ1bGxfbWFza19tZW1vcnkgPSBhbGxvY2EKLSsvLyBD SEVDS19JU1BDX0VYUE9SVDogZGVmaW5lIHZvaWQgQHNpbXBsZV9leHBvcnQoCi0rLy8gQ0hFQ0tf SVNQQ19FWFBPUlQtTk9UOiAlZnVsbF9tYXNrX21lbW9yeSA9IGFsbG9jYQotK2V4cG9ydCB2b2lk IHNpbXBsZV9leHBvcnQodm9pZCAqdW5pZm9ybSBfcCkgewotKyAgICBQYXJhbWV0ZXJzICp1bmlm b3JtIHAgPSAoUGFyYW1ldGVycyAqIHVuaWZvcm0pIF9wOwotKyAgICBpZiAocHJvZ3JhbUluZGV4 ID4gcC0+cGFyYW0pCi0rICAgICAgICBwLT52b3V0W3Byb2dyYW1JbmRleF0gPSBwcm9ncmFtQ291 bnQgKiBwcm9ncmFtSW5kZXg7Ci0rfQotKyNlbmRpZgotKyNpZmRlZiBJU1BDX1VOTUFTS0VECi0r Ly8gQ0hFQ0tfSVNQQ19VTk1BU0tFRDogZGVmaW5lIHZvaWQgQHNpbXBsZV91bm1hc2tlZAotKy8v IENIRUNLX0lTUENfVU5NQVNLRUQtTk9UOiAlZnVsbF9tYXNrX21lbW9yeSA9IGFsbG9jYQotK3Vu bWFza2VkIHZvaWQgc2ltcGxlX3VubWFza2VkKHZvaWQgKnVuaWZvcm0gX3ApIHsKLSsgICAgUGFy YW1ldGVycyAqdW5pZm9ybSBwID0gKFBhcmFtZXRlcnMgKiB1bmlmb3JtKSBfcDsKLSsgICAgaWYg KHByb2dyYW1JbmRleCA+IHAtPnBhcmFtKQotKyAgICAgICAgcC0+dm91dFtwcm9ncmFtSW5kZXhd ID0gcHJvZ3JhbUNvdW50ICogcHJvZ3JhbUluZGV4OwotK30KLSsjZW5kaWYKLSsjaWZkZWYgSVNQ Q19OT1FVQUxJRgotKy8vIENIRUNLX0lTUENfTk9RVUFMSUY6IGRlZmluZSB2b2lkIEBzaW1wbGUK LSsvLyBDSEVDS19JU1BDX05PUVVBTElGOiAlZnVsbF9tYXNrX21lbW9yeSA9IGFsbG9jYQotK3Zv aWQgc2ltcGxlKHZvaWQgKnVuaWZvcm0gX3ApIHsKLSsgICAgUGFyYW1ldGVycyAqdW5pZm9ybSBw ID0gKFBhcmFtZXRlcnMgKiB1bmlmb3JtKSBfcDsKLSsgICAgaWYgKHByb2dyYW1JbmRleCA+IHAt PnBhcmFtKQotKyAgICAgICAgcC0+dm91dFtwcm9ncmFtSW5kZXhdID0gcHJvZ3JhbUNvdW50ICog cHJvZ3JhbUluZGV4OwotK30KLSsjZW5kaWYKLSsjaWZkZWYgSVNQQ19UQVNLCi0rCi0rLy8gQ0hF Q0tfSVNQQ19UQVNLOiBkZWZpbmUgdm9pZCBAc2ltcGxlX3Rhc2sKLSsvLyBDSEVDS19JU1BDX1RB U0stTk9UOiAlZnVsbF9tYXNrX21lbW9yeSA9IGFsbG9jYQotKy8vIENIRUNLX0lTUENfVEFTSzog ZGVmaW5lIHZvaWQgQHNpbXBsZV9lbnRyeV9wb2ludF9fCi0rLy8gQ0hFQ0tfSVNQQ19UQVNLOiAl ZnVsbF9tYXNrX21lbW9yeSA9IGFsbG9jYQotKy8vIENIRUNLX0lTUENfVEFTSzogZGVmaW5lIHZv aWQgQHNpbXBsZV9lbnRyeV9wb2ludCgKLSsvLyBDSEVDS19JU1BDX1RBU0stTk9UOiAlZnVsbF9t YXNrX21lbW9yeSA9IGFsbG9jYQotK3Rhc2sgdm9pZCBzaW1wbGVfdGFzayh2b2lkICp1bmlmb3Jt IF9wKSB7Ci0rICAgIFBhcmFtZXRlcnMgKnVuaWZvcm0gcCA9IChQYXJhbWV0ZXJzICogdW5pZm9y bSkgX3A7Ci0rICAgIGlmIChwcm9ncmFtSW5kZXggPiBwLT5wYXJhbSkKLSsgICAgICAgIHAtPnZv dXRbcHJvZ3JhbUluZGV4XSA9IHByb2dyYW1Db3VudCAqIHByb2dyYW1JbmRleDsKLSt9Ci0rZXhw b3J0IHZvaWQgc2ltcGxlX2VudHJ5X3BvaW50KHZvaWQgKnVuaWZvcm0gcGFyYW1ldGVycywgdW5p Zm9ybSBpbnQgZGltMCwgdW5pZm9ybSBpbnQgZGltMSwgdW5pZm9ybSBpbnQgZGltMikgewotKyAg ICBsYXVuY2hbZGltMCwgZGltMSwgZGltMl0gc2ltcGxlX3Rhc2socGFyYW1ldGVycyk7Ci0rfQot KyNlbmRpZgotXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmNwa2dz L2lzcGMvcGF0Y2hlcy9sbHZtMTItMDA4LnBhdGNoIGIvc3JjcGtncy9pc3BjL3BhdGNoZXMvbGx2 bTEyLTAwOC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzg0MTNkOGI3ODg3 Li4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9pc3BjL3BhdGNoZXMvbGx2bTEyLTAwOC5wYXRj aAorKysgL2Rldi9udWxsCkBAIC0xLDE0OSArMCwwIEBACi1Gcm9tIGFmYWQxNDIyN2Q5MjA0YTNj OGE2MjZjYTYwOGY1YjQzYzMyMThmZTkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBB cmluYSBOZXNobHlhZXZhIDxhcmluYS5uZXNobHlhZXZhQGludGVsLmNvbT4KLURhdGU6IFR1ZSwg NCBNYXkgMjAyMSAxMTo0Mzo1MiAtMDcwMAotU3ViamVjdDogW1BBVENIXSBGaXhlZCBJU1BDIGdl biBidWlsZCBmb3IgTExWTTEyCi0KLS0tLQotIHNyYy9jdHguY3BwIHwgIDQgKysrKwotIHNyYy9v cHQuY3BwIHwgNDMgKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLQot IDIgZmlsZXMgY2hhbmdlZCwgMzMgaW5zZXJ0aW9ucygrKSwgMTQgZGVsZXRpb25zKC0pCi0KLWRp ZmYgLS1naXQgYS9zcmMvY3R4LmNwcCBiL3NyYy9jdHguY3BwCi1pbmRleCAwYzcwNTA1OTEuLmY3 ZGMwNjkzOSAxMDA2NDQKLS0tLSBhL3NyYy9jdHguY3BwCi0rKysgYi9zcmMvY3R4LmNwcAotQEAg LTM3MzgsNyArMzczOCwxMSBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6R2Vu WFNpbWRDRkFueShsbHZtOjpWYWx1ZSAqdmFsdWUpIHsKLSAKLSBsbHZtOjpWYWx1ZSAqRnVuY3Rp b25FbWl0Q29udGV4dDo6R2VuWFNpbWRDRlByZWRpY2F0ZShsbHZtOjpWYWx1ZSAqdmFsdWUsIGxs dm06OlZhbHVlICpkZWZhdWx0cykgewotICAgICBBc3NlcnRQb3MoY3VycmVudFBvcywgbGx2bTo6 aXNhPGxsdm06OlZlY3RvclR5cGU+KHZhbHVlLT5nZXRUeXBlKCkpKTsKLSsjaWYgSVNQQ19MTFZN X1ZFUlNJT04gPj0gSVNQQ19MTFZNXzExXzAKLSsgICAgbGx2bTo6Rml4ZWRWZWN0b3JUeXBlICp2 dCA9IGxsdm06OmR5bl9jYXN0PGxsdm06OkZpeGVkVmVjdG9yVHlwZT4odmFsdWUtPmdldFR5cGUo KSk7Ci0rI2Vsc2UKLSAgICAgbGx2bTo6VmVjdG9yVHlwZSAqdnQgPSBsbHZtOjpkeW5fY2FzdDxs bHZtOjpWZWN0b3JUeXBlPih2YWx1ZS0+Z2V0VHlwZSgpKTsKLSsjZW5kaWYKLSAgICAgaWYgKGRl ZmF1bHRzID09IE5VTEwpIHsKLSAjaWYgSVNQQ19MTFZNX1ZFUlNJT04gPCBJU1BDX0xMVk1fMTFf MAotICAgICAgICAgZGVmYXVsdHMgPSBsbHZtOjpDb25zdGFudFZlY3Rvcjo6Z2V0U3BsYXQodnQt PmdldFZlY3Rvck51bUVsZW1lbnRzKCksCi1kaWZmIC0tZ2l0IGEvc3JjL29wdC5jcHAgYi9zcmMv b3B0LmNwcAotaW5kZXggY2VhNGFmYTIzLi40ZTMzZDZiMWEgMTAwNjQ0Ci0tLS0gYS9zcmMvb3B0 LmNwcAotKysrIGIvc3JjL29wdC5jcHAKLUBAIC0yOTE2LDkgKzI5MTYsMTMgQEAgc3RhdGljIGxs dm06OkZ1bmN0aW9uICpsR2VuWE1hc2tlZEludDhJbnN0KGxsdm06Okluc3RydWN0aW9uICppbnN0 LCBib29sIGlzU3RvcmUKLSAKLSBzdGF0aWMgbGx2bTo6Q2FsbEluc3QgKmxHZW5YU3RvcmVJbnN0 KGxsdm06OlZhbHVlICp2YWwsIGxsdm06OlZhbHVlICpwdHIsIGxsdm06Okluc3RydWN0aW9uICpp bnN0KSB7Ci0gICAgIEFzc2VydChnLT50YXJnZXQtPmlzR2VuWFRhcmdldCgpKTsKLSsjaWYgSVNQ Q19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzExXzAKLSsgICAgQXNzZXJ0KGxsdm06OmlzYTxs bHZtOjpGaXhlZFZlY3RvclR5cGU+KHZhbC0+Z2V0VHlwZSgpKSk7Ci0rICAgIGxsdm06OkZpeGVk VmVjdG9yVHlwZSAqdmFsVmVjVHlwZSA9IGxsdm06OmR5bl9jYXN0PGxsdm06OkZpeGVkVmVjdG9y VHlwZT4odmFsLT5nZXRUeXBlKCkpOwotKyNlbHNlCi0gICAgIEFzc2VydChsbHZtOjppc2E8bGx2 bTo6VmVjdG9yVHlwZT4odmFsLT5nZXRUeXBlKCkpKTsKLS0KLSAgICAgbGx2bTo6VmVjdG9yVHlw ZSAqdmFsVmVjVHlwZSA9IGxsdm06OmR5bl9jYXN0PGxsdm06OlZlY3RvclR5cGU+KHZhbC0+Z2V0 VHlwZSgpKTsKLSsjZW5kaWYKLSAgICAgQXNzZXJ0KGxsdm06OmlzUG93ZXJPZjJfMzIodmFsVmVj VHlwZS0+Z2V0TnVtRWxlbWVudHMoKSkpOwotICAgICBBc3NlcnQodmFsVmVjVHlwZS0+Z2V0UHJp bWl0aXZlU2l6ZUluQml0cygpIC8gOCA8PSA4ICogT1dPUkQpOwotIAotQEAgLTI5NDIsOSArMjk0 NiwxMyBAQCBzdGF0aWMgbGx2bTo6Q2FsbEluc3QgKmxHZW5YU3RvcmVJbnN0KGxsdm06OlZhbHVl ICp2YWwsIGxsdm06OlZhbHVlICpwdHIsIGxsdm06OgotIH0KLSAKLSBzdGF0aWMgbGx2bTo6Q2Fs bEluc3QgKmxHZW5YTG9hZEluc3QobGx2bTo6VmFsdWUgKnB0ciwgbGx2bTo6VHlwZSAqcmV0VHlw ZSwgbGx2bTo6SW5zdHJ1Y3Rpb24gKmluc3QpIHsKLSsjaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0g SVNQQ19MTFZNXzExXzAKLSsgICAgQXNzZXJ0KGxsdm06OmlzYTxsbHZtOjpGaXhlZFZlY3RvclR5 cGU+KHJldFR5cGUpKTsKLSsgICAgbGx2bTo6Rml4ZWRWZWN0b3JUeXBlICpyZXRWZWNUeXBlID0g bGx2bTo6ZHluX2Nhc3Q8bGx2bTo6Rml4ZWRWZWN0b3JUeXBlPihyZXRUeXBlKTsKLSsjZWxzZQot ICAgICBBc3NlcnQobGx2bTo6aXNhPGxsdm06OlZlY3RvclR5cGU+KHJldFR5cGUpKTsKLS0KLSAg ICAgbGx2bTo6VmVjdG9yVHlwZSAqcmV0VmVjVHlwZSA9IGxsdm06OmR5bl9jYXN0PGxsdm06OlZl Y3RvclR5cGU+KHJldFR5cGUpOwotKyNlbmRpZgotICAgICBBc3NlcnQobGx2bTo6aXNQb3dlck9m Ml8zMihyZXRWZWNUeXBlLT5nZXROdW1FbGVtZW50cygpKSk7Ci0gICAgIEFzc2VydChyZXRWZWNU eXBlLT5nZXRQcmltaXRpdmVTaXplSW5CaXRzKCkpOwotICAgICBBc3NlcnQocmV0VmVjVHlwZS0+ Z2V0UHJpbWl0aXZlU2l6ZUluQml0cygpIC8gOCA8PSA4ICogT1dPUkQpOwotQEAgLTU0ODUsOCAr NTQ5MywxMyBAQCBzdGF0aWMgdm9pZCBsQ3JlYXRlQmxvY2tMRFVzZShsbHZtOjpJbnN0cnVjdGlv biAqY3Vyckluc3QsIHN0ZDo6dmVjdG9yPGxsdm06OkV4dAotICAgICAgICAgfSBlbHNlIGlmIChh dXRvIGdhdGhlciA9IGxHZXRQc2V1ZG9HYXRoZXIobGx2bTo6ZHluX2Nhc3Q8bGx2bTo6SW5zdHJ1 Y3Rpb24+KHVpLT5nZXRVc2VyKCkpKSkgewotICAgICAgICAgICAgIC8vIENvbGxlY3QgaWR4cyBm cm9tIGdhdGhlciBhbmQgZml4IHVzZXJzCi0gICAgICAgICAgICAgbGx2bTo6VmFsdWUgKnJlcyA9 IGxsdm06OlVuZGVmVmFsdWU6OmdldChnYXRoZXItPmdldFR5cGUoKSk7Ci0tICAgICAgICAgICAg Zm9yICh1bnNpZ25lZCBpID0gMCwgZW5kID0gbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6VmVjdG9yVHlw ZT4ocmVzLT5nZXRUeXBlKCkpLT5nZXROdW1FbGVtZW50cygpOyBpIDwgZW5kOwotLSAgICAgICAg ICAgICAgICAgKytpKSB7Ci0rI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMV8w Ci0rICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMCwgZW5kID0gbGx2bTo6ZHluX2Nhc3Q8 bGx2bTo6Rml4ZWRWZWN0b3JUeXBlPihyZXMtPmdldFR5cGUoKSktPmdldE51bUVsZW1lbnRzKCk7 IGkgPCBlbmQ7Ci0rICAgICAgICAgICAgICAgICArK2kpCi0rI2Vsc2UKLSsgICAgICAgICAgICBm b3IgKHVuc2lnbmVkIGkgPSAwLCBlbmQgPSBsbHZtOjpkeW5fY2FzdDxsbHZtOjpWZWN0b3JUeXBl PihyZXMtPmdldFR5cGUoKSktPmdldE51bUVsZW1lbnRzKCk7IGkgPCBlbmQ7ICsraSkKLSsjZW5k aWYKLSsgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgIC8vIEdldCBlbGVtZW50IHZpYSBJ RUkKLSAgICAgICAgICAgICAgICAgcmVzID0gbGx2bTo6SW5zZXJ0RWxlbWVudEluc3Q6OkNyZWF0 ZShyZXMsIEVFSXNbcHRyVXNlLmlkeHNbY3Vycl9pZHgrK11dLAotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06OkNvbnN0YW50SW50Ojpn ZXQoTExWTVR5cGVzOjpJbnQzMlR5cGUsIGkpLAotQEAgLTU1MjIsMTAgKzU1MzUsMTEgQEAgc3Rh dGljIGJvb2wgbFZlY3Rvcml6ZUdFUHMobGx2bTo6VmFsdWUgKnB0ciwgc3RkOjp2ZWN0b3I8UHRy VXNlPiAmcHRyVXNlcywgc3RkOjoKLSAKLSAgICAgLy8gQWRqdXN0IHZhbHVlcyBmb3IgdmVjdG9y IGxvYWQKLSAjaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzExXzAKLS0gICAgaWYg KGF1dG8gdmVjVHkgPSBsbHZtOjpkeW5fY2FzdDxsbHZtOjpGaXhlZFZlY3RvclR5cGU+KHR5cGUp KSB7Ci0rICAgIGlmIChhdXRvIHZlY1R5ID0gbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6Rml4ZWRWZWN0 b3JUeXBlPih0eXBlKSkKLSAjZWxzZQotLSAgICBpZiAoYXV0byB2ZWNUeSA9IGxsdm06OmR5bl9j YXN0PGxsdm06OlZlY3RvclR5cGU+KHR5cGUpKSB7Ci0rICAgIGlmIChhdXRvIHZlY1R5ID0gbGx2 bTo6ZHluX2Nhc3Q8bGx2bTo6VmVjdG9yVHlwZT4odHlwZSkpCi0gI2VuZGlmCi0rICAgIHsKLSAg ICAgICAgIC8vIEdldCBzaW5nbGUgZWxlbWVudCBzaXplCi0gICAgICAgICB0X3NpemUgLz0gdmVj VHktPmdldE51bUVsZW1lbnRzKCk7Ci0gICAgICAgICAvLyBHZXQgc2luZ2xlIGVsZW1lbnQgdHlw ZQotQEAgLTY0NzcsNyArNjQ5MSw3IEBAIGxsdm06OlZhbHVlICpGaXhBZGRyZXNzU3BhY2U6OmNh bGN1bGF0ZUdhdGhlclNjYXR0ZXJBZGRyZXNzKGxsdm06OlZhbHVlICpQdHIsIGxsCi0gI2lmIElT UENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMV8wCi0gICAgICAgICBPZmZzZXRzLAotICAg ICAgICAgbGx2bTo6Rml4ZWRWZWN0b3JUeXBlOjpnZXQoTExWTVR5cGVzOjpJbnQ2NFR5cGUsCi0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpkeW5fY2FzdDxsbHZtOjpW ZWN0b3JUeXBlPihPZmZzZXRzLT5nZXRUeXBlKCkpLT5nZXROdW1FbGVtZW50cygpKSwKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06OmR5bl9jYXN0PGxsdm06OkZpeGVk VmVjdG9yVHlwZT4oT2Zmc2V0cy0+Z2V0VHlwZSgpKS0+Z2V0TnVtRWxlbWVudHMoKSksCi0gICAg ICAgICAic3ZtX29mZnNldF96ZXh0IiwgSW5zZXJ0QmVmb3JlKTsKLSAjZWxzZQotICAgICAgICAg T2Zmc2V0cywgbGx2bTo6VmVjdG9yVHlwZTo6Z2V0KExMVk1UeXBlczo6SW50NjRUeXBlLCBPZmZz ZXRzLT5nZXRUeXBlKCktPmdldFZlY3Rvck51bUVsZW1lbnRzKCkpLAotQEAgLTY0OTIsNyArNjUw Niw3IEBAIGxsdm06OlZhbHVlICpGaXhBZGRyZXNzU3BhY2U6OmNhbGN1bGF0ZUdhdGhlclNjYXR0 ZXJBZGRyZXNzKGxsdm06OlZhbHVlICpQdHIsIGxsCi0gICAgICAgICBsbHZtOjpWYWx1ZSAqdW5k ZWZJbnNlcnRWYWx1ZSA9Ci0gI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMV8w Ci0gICAgICAgICAgICAgbGx2bTo6VW5kZWZWYWx1ZTo6Z2V0KGxsdm06OkZpeGVkVmVjdG9yVHlw ZTo6Z2V0KAotLSAgICAgICAgICAgICAgICBMTFZNVHlwZXM6OkludDY0VHlwZSwgbGx2bTo6ZHlu X2Nhc3Q8bGx2bTo6VmVjdG9yVHlwZT4oYWRkcmVzc1R5cGUpLT5nZXROdW1FbGVtZW50cygpKSk7 Ci0rICAgICAgICAgICAgICAgIExMVk1UeXBlczo6SW50NjRUeXBlLCBsbHZtOjpkeW5fY2FzdDxs bHZtOjpGaXhlZFZlY3RvclR5cGU+KGFkZHJlc3NUeXBlKS0+Z2V0TnVtRWxlbWVudHMoKSkpOwot ICNlbHNlCi0gICAgICAgICAgICAgbGx2bTo6VW5kZWZWYWx1ZTo6Z2V0KGxsdm06OlZlY3RvclR5 cGU6OmdldChMTFZNVHlwZXM6OkludDY0VHlwZSwgYWRkcmVzc1R5cGUtPmdldFZlY3Rvck51bUVs ZW1lbnRzKCkpKTsKLSAjZW5kaWYKLUBAIC02NTAxLDE3ICs2NTE1LDE2IEBAIGxsdm06OlZhbHVl ICpGaXhBZGRyZXNzU3BhY2U6OmNhbGN1bGF0ZUdhdGhlclNjYXR0ZXJBZGRyZXNzKGxsdm06OlZh bHVlICpQdHIsIGxsCi0gI2lmIElTUENfTExWTV9WRVJTSU9OIDwgSVNQQ19MTFZNXzExXzAKLSAg ICAgICAgICAgICBhZGRyZXNzVHlwZS0+Z2V0VmVjdG9yTnVtRWxlbWVudHMoKSwKLSAjZWxpZiBJ U1BDX0xMVk1fVkVSU0lPTiA8IElTUENfTExWTV8xMl8wCi0tICAgICAgICAgICAge2xsdm06OmR5 bl9jYXN0PGxsdm06OlZlY3RvclR5cGU+KGFkZHJlc3NUeXBlKS0+Z2V0TnVtRWxlbWVudHMoKSwg ZmFsc2V9LAotKyAgICAgICAgICAgIHtsbHZtOjpkeW5fY2FzdDxsbHZtOjpGaXhlZFZlY3RvclR5 cGU+KGFkZHJlc3NUeXBlKS0+Z2V0TnVtRWxlbWVudHMoKSwgZmFsc2V9LAotICNlbHNlCi0tICAg ICAgICBsbHZtOjpFbGVtZW50Q291bnQ6OmdldCgKLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGxsdm06OmR5bl9jYXN0PGxsdm06OkZpeGVkVmVjdG9yVHlwZT4oYWRkcmVzc1R5cGUt PmdldE51bUVsZW1lbnRzKCksIGZhbHNlKSwKLSsgICAgICAgICAgICBsbHZtOjpFbGVtZW50Q291 bnQ6OmdldChsbHZtOjpkeW5fY2FzdDxsbHZtOjpGaXhlZFZlY3RvclR5cGU+KGFkZHJlc3NUeXBl KS0+Z2V0TnVtRWxlbWVudHMoKSwgZmFsc2UpLAotICNlbmRpZgotICAgICAgICAgICAgIGxsdm06 OkNvbnN0YW50OjpnZXROdWxsVmFsdWUobGx2bTo6VHlwZTo6Z2V0SW50MzJUeShJbnNlcnRCZWZv cmUtPmdldENvbnRleHQoKSkpKTsKLSAKLSAgICAgICAgIGxsdm06OlZhbHVlICp1bmRlZlNodWZm bGVWYWx1ZSA9Ci0gI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMV8wCi0gICAg ICAgICAgICAgbGx2bTo6VW5kZWZWYWx1ZTo6Z2V0KGxsdm06OkZpeGVkVmVjdG9yVHlwZTo6Z2V0 KAotLSAgICAgICAgICAgICAgICBMTFZNVHlwZXM6OkludDY0VHlwZSwgbGx2bTo6ZHluX2Nhc3Q8 bGx2bTo6VmVjdG9yVHlwZT4oYWRkcmVzc1R5cGUpLT5nZXROdW1FbGVtZW50cygpKSk7Ci0rICAg ICAgICAgICAgICAgIExMVk1UeXBlczo6SW50NjRUeXBlLCBsbHZtOjpkeW5fY2FzdDxsbHZtOjpG aXhlZFZlY3RvclR5cGU+KGFkZHJlc3NUeXBlKS0+Z2V0TnVtRWxlbWVudHMoKSkpOwotICNlbHNl Ci0gICAgICAgICAgICAgbGx2bTo6VW5kZWZWYWx1ZTo6Z2V0KGxsdm06OlZlY3RvclR5cGU6Omdl dChMTFZNVHlwZXM6OkludDY0VHlwZSwgYWRkcmVzc1R5cGUtPmdldFZlY3Rvck51bUVsZW1lbnRz KCkpKTsKLSAjZW5kaWYKLUBAIC02NTQyLDcgKzY1NTUsOCBAQCBsbHZtOjpJbnN0cnVjdGlvbiAq Rml4QWRkcmVzc1NwYWNlOjpwcm9jZXNzVmVjdG9yTG9hZChsbHZtOjpMb2FkSW5zdCAqTEkpIHsK LSAgICAgICAgIGlzUHRyTG9hZCA9IHRydWU7Ci0gICAgICAgICBhdXRvIHNjYWxhclR5cGUgPSBn LT50YXJnZXQtPmlzMzJCaXQoKSA/IExMVk1UeXBlczo6SW50MzJUeXBlIDogTExWTVR5cGVzOjpJ bnQ2NFR5cGU7Ci0gI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMV8wCi0tICAg ICAgICByZXRUeXBlID0gbGx2bTo6Rml4ZWRWZWN0b3JUeXBlOjpnZXQoc2NhbGFyVHlwZSwgbGx2 bTo6ZHluX2Nhc3Q8bGx2bTo6VmVjdG9yVHlwZT4ocmV0VHlwZSktPmdldE51bUVsZW1lbnRzKCkp OwotKyAgICAgICAgcmV0VHlwZSA9Ci0rICAgICAgICAgICAgbGx2bTo6Rml4ZWRWZWN0b3JUeXBl OjpnZXQoc2NhbGFyVHlwZSwgbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6Rml4ZWRWZWN0b3JUeXBlPihy ZXRUeXBlKS0+Z2V0TnVtRWxlbWVudHMoKSk7Ci0gI2Vsc2UKLSAgICAgICAgIHJldFR5cGUgPSBs bHZtOjpWZWN0b3JUeXBlOjpnZXQoc2NhbGFyVHlwZSwgcmV0VHlwZS0+Z2V0VmVjdG9yTnVtRWxl bWVudHMoKSk7Ci0gI2VuZGlmCi1AQCAtNjYwNCw3ICs2NjE4LDggQEAgbGx2bTo6SW5zdHJ1Y3Rp b24gKkZpeEFkZHJlc3NTcGFjZTo6cHJvY2Vzc1ZlY3RvclN0b3JlKGxsdm06OlN0b3JlSW5zdCAq U0kpIHsKLSAgICAgaWYgKHZhbFR5cGUtPmdldFNjYWxhclR5cGUoKS0+aXNQb2ludGVyVHkoKSkg ewotICAgICAgICAgYXV0byBzY2FsYXJUeXBlID0gZy0+dGFyZ2V0LT5pczMyQml0KCkgPyBMTFZN VHlwZXM6OkludDMyVHlwZSA6IExMVk1UeXBlczo6SW50NjRUeXBlOwotICNpZiBJU1BDX0xMVk1f VkVSU0lPTiA+PSBJU1BDX0xMVk1fMTFfMAotLSAgICAgICAgdmFsVHlwZSA9IGxsdm06OkZpeGVk VmVjdG9yVHlwZTo6Z2V0KHNjYWxhclR5cGUsIGxsdm06OmR5bl9jYXN0PGxsdm06OlZlY3RvclR5 cGU+KHZhbFR5cGUpLT5nZXROdW1FbGVtZW50cygpKTsKLSsgICAgICAgIHZhbFR5cGUgPQotKyAg ICAgICAgICAgIGxsdm06OkZpeGVkVmVjdG9yVHlwZTo6Z2V0KHNjYWxhclR5cGUsIGxsdm06OmR5 bl9jYXN0PGxsdm06OkZpeGVkVmVjdG9yVHlwZT4odmFsVHlwZSktPmdldE51bUVsZW1lbnRzKCkp OwotICNlbHNlCi0gICAgICAgICB2YWxUeXBlID0gbGx2bTo6VmVjdG9yVHlwZTo6Z2V0KHNjYWxh clR5cGUsIHZhbFR5cGUtPmdldFZlY3Rvck51bUVsZW1lbnRzKCkpOwotICNlbmRpZgpkaWZmIC0t Z2l0IGEvc3JjcGtncy9pc3BjL3BhdGNoZXMvbGx2bTEyLTAwOS5wYXRjaCBiL3NyY3BrZ3MvaXNw Yy9wYXRjaGVzL2xsdm0xMi0wMDkucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IGQzZWE2NzgyODU4Mi4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvaXNwYy9wYXRjaGVzL2xs dm0xMi0wMDkucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwyMTA5ICswLDAgQEAKLUZyb20gOTdi MTNjMzIxMzJlMjcwNGE1ZTNlN2IyZWFlNDlkODU0ZDA4N2UzZSBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKLUZyb206IEFyaW5hIE5lc2hseWFldmEgPGFyaW5hLm5lc2hseWFldmFAaW50ZWwuY29t PgotRGF0ZTogVHVlLCA0IE1heSAyMDIxIDExOjMxOjU1IC0wNzAwCi1TdWJqZWN0OiBbUEFUQ0hd IFVwZGF0ZWQgYnVpbHRpbnMtY20qIGZvciBzd2l0Y2ggdG8gTExWTTEyCi0KLS0tLQotIGJ1aWx0 aW5zL2J1aWx0aW5zLWNtLTMyLmxsIHwgMjM0ICsrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0t LS0tLS0tLS0KLSBidWlsdGlucy9idWlsdGlucy1jbS02NC5sbCB8IDIzMiArKysrKysrKysrKysr KysrKystLS0tLS0tLS0tLS0tLS0tLS0KLSAyIGZpbGVzIGNoYW5nZWQsIDIzMyBpbnNlcnRpb25z KCspLCAyMzMgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9idWlsdGlucy9idWlsdGlucy1j bS0zMi5sbCBiL2J1aWx0aW5zL2J1aWx0aW5zLWNtLTMyLmxsCi1pbmRleCAzMmRlYmYzMmUuLjQ4 MWJiZGM0OCAxMDA2NDQKLS0tLSBhL2J1aWx0aW5zL2J1aWx0aW5zLWNtLTMyLmxsCi0rKysgYi9i dWlsdGlucy9idWlsdGlucy1jbS0zMi5sbAotQEAgLTU1Nyw3ICs1NTcsNyBAQCAkX1pOMTNWYXJ5 aW5nV3JpdGVyMTJXcml0ZVZlY0VsZW1JUHZFRXZ2ID0gY29tZGF0IGFueQotIEAuc3RyLjEwID0g cHJpdmF0ZSB1bm5hbWVkX2FkZHIgY29uc3RhbnQgWzUgeCBpOF0gYyIlMDhYXDAwIiwgYWxpZ24g MQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19s b2NhbCBzaWduZXh0IGk4IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2Y2MoaTggc2lnbmV4 dCwgaTggc2lnbmV4dCkgIzAgewotK2RlZmluZSBpbnRlcm5hbCBzaWduZXh0IGk4IEBfWjI0X19j bV9pbnRyaW5zaWNfaW1wbF9zZGl2Y2MoaTggc2lnbmV4dCwgaTggc2lnbmV4dCkgIzAgewotICAg JTMgPSBhbGxvY2EgaTgsIGFsaWduIDEKLSAgICU0ID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0gICAl NSA9IGFsbG9jYSA8MSB4IGk4PiwgYWxpZ24gMQotQEAgLTYxOCw3ICs2MTgsNyBAQCBkZWZpbmUg aW50ZXJuYWwgPDEgeCBpOD4gQF9aTjdkZXRhaWxzMTNfX2ltcGxfZGl2cmVtSUxpMUVFRXUyQ012 YlRfX2NTMV9TMV91MkNNdgotIGRlY2xhcmUgPDEgeCBpOD4gQGxsdm0uZ2VueC5yZHJlZ2lvbmku djFpOC52MWk4LmkxNig8MSB4IGk4PiwgaTMyLCBpMzIsIGkzMiwgaTE2LCBpMzIpICMyCi0gCi0g OyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwx IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZiMV9jU18oPDEgeCBpOD4s IDwxIHggaTg+KSAjMCB7Ci0rZGVmaW5lIGludGVybmFsIDwxIHggaTg+IEBfWjI0X19jbV9pbnRy aW5zaWNfaW1wbF9zZGl2dTJDTXZiMV9jU18oPDEgeCBpOD4sIDwxIHggaTg+KSAjMCB7Ci0gICAl MyA9IGFsbG9jYSA8MSB4IGk4PiwgYWxpZ24gMQotICAgJTQgPSBhbGxvY2EgPDEgeCBpOD4sIGFs aWduIDEKLSAgICU1ID0gYWxsb2NhIDwxIHggaTg+LCBhbGlnbiAxCi1AQCAtNjM0LDcgKzYzNCw3 IEBAIGRlZmluZSBkc29fbG9jYWwgPDEgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3Nk aXZ1MkNNdmIxX2NTXyg8MSB4IGk4PiwgPDEKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9p bmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwyIHggaTg+IEBfWjI0X19jbV9pbnRy aW5zaWNfaW1wbF9zZGl2dTJDTXZiMl9jU18oPDIgeCBpOD4sIDwyIHggaTg+KSAjMyB7Ci0rZGVm aW5lIGludGVybmFsIDwyIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZi Ml9jU18oPDIgeCBpOD4sIDwyIHggaTg+KSAjMyB7Ci0gICAlMyA9IGFsbG9jYSA8MiB4IGk4Piwg YWxpZ24gMgotICAgJTQgPSBhbGxvY2EgPDIgeCBpOD4sIGFsaWduIDIKLSAgICU1ID0gYWxsb2Nh IDwyIHggaTg+LCBhbGlnbiAyCi1AQCAtNjgwLDcgKzY4MCw3IEBAIGRlZmluZSBpbnRlcm5hbCA8 MiB4IGk4PiBAX1pON2RldGFpbHMxM19faW1wbF9kaXZyZW1JTGkyRUVFdTJDTXZiVF9fY1MxX1Mx X3UyQ012Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVm aW5lIGRzb19sb2NhbCA8NCB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012 YjRfY1NfKDw0IHggaTg+LCA8NCB4IGk4PikgIzUgewotK2RlZmluZSBpbnRlcm5hbCA8NCB4IGk4 PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjRfY1NfKDw0IHggaTg+LCA8NCB4 IGk4PikgIzUgewotICAgJTMgPSBhbGxvY2EgPDQgeCBpOD4sIGFsaWduIDQKLSAgICU0ID0gYWxs b2NhIDw0IHggaTg+LCBhbGlnbiA0Ci0gICAlNSA9IGFsbG9jYSA8NCB4IGk4PiwgYWxpZ24gNAot QEAgLTgxOCw3ICs4MTgsNyBAQCBkZWZpbmUgaW50ZXJuYWwgPDE2IHggaTg+IEBfWk43ZGV0YWls czEzX19pbXBsX2RpdnJlbUlMaTE2RUVFdTJDTXZiVF9fY1MxX1MxX3UyQwotIH0KLSAKLSA7IEZ1 bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDMyIHgg aTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZiMzJfY1NfKDwzMiB4IGk4Piwg PDMyIHggaTg+KSAjMTEgewotK2RlZmluZSBpbnRlcm5hbCA8MzIgeCBpOD4gQF9aMjRfX2NtX2lu dHJpbnNpY19pbXBsX3NkaXZ1MkNNdmIzMl9jU18oPDMyIHggaTg+LCA8MzIgeCBpOD4pICMxMSB7 Ci0gICAlMyA9IGFsbG9jYSA8MzIgeCBpOD4sIGFsaWduIDMyCi0gICAlNCA9IGFsbG9jYSA8MzIg eCBpOD4sIGFsaWduIDMyCi0gICAlNSA9IGFsbG9jYSA8MzIgeCBpOD4sIGFsaWduIDMyCi1AQCAt ODY0LDcgKzg2NCw3IEBAIGRlZmluZSBpbnRlcm5hbCA8MzIgeCBpOD4gQF9aTjdkZXRhaWxzMTNf X2ltcGxfZGl2cmVtSUxpMzJFRUV1MkNNdmJUX19jUzFfUzFfdTJDCi0gfQotIAotIDsgRnVuY3Rp b24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCBzaWduZXh0IGk4 IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtY2MoaTggc2lnbmV4dCwgaTggc2lnbmV4dCkg IzAgewotK2RlZmluZSBpbnRlcm5hbCBzaWduZXh0IGk4IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1w bF9zcmVtY2MoaTggc2lnbmV4dCwgaTggc2lnbmV4dCkgIzAgewotICAgJTMgPSBhbGxvY2EgaTgs IGFsaWduIDEKLSAgICU0ID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSA8MSB4 IGk4PiwgYWxpZ24gMQotQEAgLTg5MCw3ICs4OTAsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIHNpZ25l eHQgaTggQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW1jYyhpOCBzaWduZXh0LCBpOCBzaWdu ZQotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBk c29fbG9jYWwgPDEgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIxX2NT Xyg8MSB4IGk4PiwgPDEgeCBpOD4pICMwIHsKLStkZWZpbmUgaW50ZXJuYWwgPDEgeCBpOD4gQF9a MjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIxX2NTXyg8MSB4IGk4PiwgPDEgeCBpOD4p ICMwIHsKLSAgICUzID0gYWxsb2NhIDwxIHggaTg+LCBhbGlnbiAxCi0gICAlNCA9IGFsbG9jYSA8 MSB4IGk4PiwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2EgPDEgeCBpOD4sIGFsaWduIDEKLUBAIC05 MDQsNyArOTA0LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MSB4IGk4PiBAX1oyNF9fY21faW50cmlu c2ljX2ltcGxfc3JlbXUyQ012YjFfY1NfKDwxIHggaTg+LCA8MQotIH0KLSAKLSA7IEZ1bmN0aW9u IEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDIgeCBpOD4gQF9a MjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIyX2NTXyg8MiB4IGk4PiwgPDIgeCBpOD4p ICMzIHsKLStkZWZpbmUgaW50ZXJuYWwgPDIgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBs X3NyZW11MkNNdmIyX2NTXyg8MiB4IGk4PiwgPDIgeCBpOD4pICMzIHsKLSAgICUzID0gYWxsb2Nh IDwyIHggaTg+LCBhbGlnbiAyCi0gICAlNCA9IGFsbG9jYSA8MiB4IGk4PiwgYWxpZ24gMgotICAg JTUgPSBhbGxvY2EgPDIgeCBpOD4sIGFsaWduIDIKLUBAIC05MTgsNyArOTE4LDcgQEAgZGVmaW5l IGRzb19sb2NhbCA8MiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjJf Y1NfKDwyIHggaTg+LCA8MgotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vu d2luZAotLWRlZmluZSBkc29fbG9jYWwgPDQgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBs X3NyZW11MkNNdmI0X2NTXyg8NCB4IGk4PiwgPDQgeCBpOD4pICM1IHsKLStkZWZpbmUgaW50ZXJu YWwgPDQgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmI0X2NTXyg8NCB4 IGk4PiwgPDQgeCBpOD4pICM1IHsKLSAgICUzID0gYWxsb2NhIDw0IHggaTg+LCBhbGlnbiA0Ci0g ICAlNCA9IGFsbG9jYSA8NCB4IGk4PiwgYWxpZ24gNAotICAgJTUgPSBhbGxvY2EgPDQgeCBpOD4s IGFsaWduIDQKLUBAIC05MzIsNyArOTMyLDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8NCB4IGk4PiBA X1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjRfY1NfKDw0IHggaTg+LCA8NAotIH0K LSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9j YWwgPDggeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmI4X2NTXyg8OCB4 IGk4PiwgPDggeCBpOD4pICM3IHsKLStkZWZpbmUgaW50ZXJuYWwgPDggeCBpOD4gQF9aMjRfX2Nt X2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmI4X2NTXyg8OCB4IGk4PiwgPDggeCBpOD4pICM3IHsK LSAgICUzID0gYWxsb2NhIDw4IHggaTg+LCBhbGlnbiA4Ci0gICAlNCA9IGFsbG9jYSA8OCB4IGk4 PiwgYWxpZ24gOAotICAgJTUgPSBhbGxvY2EgPDggeCBpOD4sIGFsaWduIDgKLUBAIC05NDYsNyAr OTQ2LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8OCB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2lt cGxfc3JlbXUyQ012YjhfY1NfKDw4IHggaTg+LCA8OAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJz OiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDE2IHggaTg+IEBfWjI0X19j bV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMTZfY1NfKDwxNiB4IGk4PiwgPDE2IHggaTg+KSAj OSB7Ci0rZGVmaW5lIGludGVybmFsIDwxNiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxf c3JlbXUyQ012YjE2X2NTXyg8MTYgeCBpOD4sIDwxNiB4IGk4PikgIzkgewotICAgJTMgPSBhbGxv Y2EgPDE2IHggaTg+LCBhbGlnbiAxNgotICAgJTQgPSBhbGxvY2EgPDE2IHggaTg+LCBhbGlnbiAx NgotICAgJTUgPSBhbGxvY2EgPDE2IHggaTg+LCBhbGlnbiAxNgotQEAgLTk2MCw3ICs5NjAsNyBA QCBkZWZpbmUgZHNvX2xvY2FsIDwxNiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3Jl bXUyQ012YjE2X2NTXyg8MTYgeCBpOD4sCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5s aW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MzIgeCBpOD4gQF9aMjRfX2NtX2ludHJp bnNpY19pbXBsX3NyZW11MkNNdmIzMl9jU18oPDMyIHggaTg+LCA8MzIgeCBpOD4pICMxMSB7Ci0r ZGVmaW5lIGludGVybmFsIDwzMiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUy Q012YjMyX2NTXyg8MzIgeCBpOD4sIDwzMiB4IGk4PikgIzExIHsKLSAgICUzID0gYWxsb2NhIDwz MiB4IGk4PiwgYWxpZ24gMzIKLSAgICU0ID0gYWxsb2NhIDwzMiB4IGk4PiwgYWxpZ24gMzIKLSAg ICU1ID0gYWxsb2NhIDwzMiB4IGk4PiwgYWxpZ24gMzIKLUBAIC05NzQsNyArOTc0LDcgQEAgZGVm aW5lIGRzb19sb2NhbCA8MzIgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNN dmIzMl9jU18oPDMyIHggaTg+LAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBu b3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgc2lnbmV4dCBpMTYgQF9aMjRfX2NtX2ludHJpbnNp Y19pbXBsX3NkaXZzcyhpMTYgc2lnbmV4dCwgaTE2IHNpZ25leHQpICMzIHsKLStkZWZpbmUgaW50 ZXJuYWwgc2lnbmV4dCBpMTYgQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZzcyhpMTYgc2ln bmV4dCwgaTE2IHNpZ25leHQpICMzIHsKLSAgICUzID0gYWxsb2NhIGkxNiwgYWxpZ24gMgotICAg JTQgPSBhbGxvY2EgaTE2LCBhbGlnbiAyCi0gICAlNSA9IGFsbG9jYSA8MSB4IGkxNj4sIGFsaWdu IDIKLUBAIC0xMDU4LDcgKzEwNTgsNyBAQCBkZWZpbmUgaW50ZXJuYWwgPDEgeCBpMTY+IEBfWk43 ZGV0YWlsczEzX19pbXBsX2RpdnJlbUlMaTFFRUV1MkNNdmJUX19zUzFfUzFfdTJDTQotIGRlY2xh cmUgPDEgeCBpMTY+IEBsbHZtLmdlbngucmRyZWdpb25pLnYxaTE2LnYxaTE2LmkxNig8MSB4IGkx Nj4sIGkzMiwgaTMyLCBpMzIsIGkxNiwgaTMyKSAjMgotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5v aW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MSB4IGkxNj4gQF9aMjRfX2NtX2lu dHJpbnNpY19pbXBsX3NkaXZ1MkNNdmIxX3NTXyg8MSB4IGkxNj4sIDwxIHggaTE2PikgIzMgewot K2RlZmluZSBpbnRlcm5hbCA8MSB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1 MkNNdmIxX3NTXyg8MSB4IGkxNj4sIDwxIHggaTE2PikgIzMgewotICAgJTMgPSBhbGxvY2EgPDEg eCBpMTY+LCBhbGlnbiAyCi0gICAlNCA9IGFsbG9jYSA8MSB4IGkxNj4sIGFsaWduIDIKLSAgICU1 ID0gYWxsb2NhIDwxIHggaTE2PiwgYWxpZ24gMgotQEAgLTEwNzQsNyArMTA3NCw3IEBAIGRlZmlu ZSBkc29fbG9jYWwgPDEgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZi MV9zU18oPDEgeCBpMTY+LCA8Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5v dW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MiB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19p bXBsX3NkaXZ1MkNNdmIyX3NTXyg8MiB4IGkxNj4sIDwyIHggaTE2PikgIzUgewotK2RlZmluZSBp bnRlcm5hbCA8MiB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmIyX3NT Xyg8MiB4IGkxNj4sIDwyIHggaTE2PikgIzUgewotICAgJTMgPSBhbGxvY2EgPDIgeCBpMTY+LCBh bGlnbiA0Ci0gICAlNCA9IGFsbG9jYSA8MiB4IGkxNj4sIGFsaWduIDQKLSAgICU1ID0gYWxsb2Nh IDwyIHggaTE2PiwgYWxpZ24gNAotQEAgLTExNDMsNyArMTE0Myw3IEBAIGRlZmluZSBpbnRlcm5h bCA8MiB4IGkxNj4gQF9aTjdkZXRhaWxzMTNfX2ltcGxfZGl2cmVtSUxpMkVFRXUyQ012YlRfX3NT MV9TMV91MkNNCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0t ZGVmaW5lIGRzb19sb2NhbCA8NCB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1 MkNNdmI0X3NTXyg8NCB4IGkxNj4sIDw0IHggaTE2PikgIzcgewotK2RlZmluZSBpbnRlcm5hbCA8 NCB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmI0X3NTXyg8NCB4IGkx Nj4sIDw0IHggaTE2PikgIzcgewotICAgJTMgPSBhbGxvY2EgPDQgeCBpMTY+LCBhbGlnbiA4Ci0g ICAlNCA9IGFsbG9jYSA8NCB4IGkxNj4sIGFsaWduIDgKLSAgICU1ID0gYWxsb2NhIDw0IHggaTE2 PiwgYWxpZ24gOAotQEAgLTEzNTAsNyArMTM1MCw3IEBAIGRlZmluZSBpbnRlcm5hbCA8MTYgeCBp MTY+IEBfWk43ZGV0YWlsczEzX19pbXBsX2RpdnJlbUlMaTE2RUVFdTJDTXZiVF9fc1MxX1MxX3Uy Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRz b19sb2NhbCA8MzIgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZiMzJf c1NfKDwzMiB4IGkxNj4sIDwzMiB4IGkxNj4pICMxMyB7Ci0rZGVmaW5lIGludGVybmFsIDwzMiB4 IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmIzMl9zU18oPDMyIHggaTE2 PiwgPDMyIHggaTE2PikgIzEzIHsKLSAgICUzID0gYWxsb2NhIDwzMiB4IGkxNj4sIGFsaWduIDY0 Ci0gICAlNCA9IGFsbG9jYSA8MzIgeCBpMTY+LCBhbGlnbiA2NAotICAgJTUgPSBhbGxvY2EgPDMy IHggaTE2PiwgYWxpZ24gNjQKLUBAIC0xNDE5LDcgKzE0MTksNyBAQCBkZWZpbmUgaW50ZXJuYWwg PDMyIHggaTE2PiBAX1pON2RldGFpbHMxM19faW1wbF9kaXZyZW1JTGkzMkVFRXUyQ012YlRfX3NT MV9TMV91MgotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRl ZmluZSBkc29fbG9jYWwgc2lnbmV4dCBpMTYgQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW1z cyhpMTYgc2lnbmV4dCwgaTE2IHNpZ25leHQpICMzIHsKLStkZWZpbmUgaW50ZXJuYWwgc2lnbmV4 dCBpMTYgQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW1zcyhpMTYgc2lnbmV4dCwgaTE2IHNp Z25leHQpICMzIHsKLSAgICUzID0gYWxsb2NhIGkxNiwgYWxpZ24gMgotICAgJTQgPSBhbGxvY2Eg aTE2LCBhbGlnbiAyCi0gICAlNSA9IGFsbG9jYSA8MSB4IGkxNj4sIGFsaWduIDIKLUBAIC0xNDQ1 LDcgKzE0NDUsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIHNpZ25leHQgaTE2IEBfWjI0X19jbV9pbnRy aW5zaWNfaW1wbF9zcmVtc3MoaTE2IHNpZ25leHQsIGkxNiBzaQotIH0KLSAKLSA7IEZ1bmN0aW9u IEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDEgeCBpMTY+IEBf WjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMV9zU18oPDEgeCBpMTY+LCA8MSB4IGkx Nj4pICMzIHsKLStkZWZpbmUgaW50ZXJuYWwgPDEgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNf aW1wbF9zcmVtdTJDTXZiMV9zU18oPDEgeCBpMTY+LCA8MSB4IGkxNj4pICMzIHsKLSAgICUzID0g YWxsb2NhIDwxIHggaTE2PiwgYWxpZ24gMgotICAgJTQgPSBhbGxvY2EgPDEgeCBpMTY+LCBhbGln biAyCi0gICAlNSA9IGFsbG9jYSA8MSB4IGkxNj4sIGFsaWduIDIKLUBAIC0xNDU5LDcgKzE0NTks NyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwxIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxf c3JlbXUyQ012YjFfc1NfKDwxIHggaTE2PiwgPAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBu b2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDIgeCBpMTY+IEBfWjI0X19jbV9p bnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMl9zU18oPDIgeCBpMTY+LCA8MiB4IGkxNj4pICM1IHsK LStkZWZpbmUgaW50ZXJuYWwgPDIgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVt dTJDTXZiMl9zU18oPDIgeCBpMTY+LCA8MiB4IGkxNj4pICM1IHsKLSAgICUzID0gYWxsb2NhIDwy IHggaTE2PiwgYWxpZ24gNAotICAgJTQgPSBhbGxvY2EgPDIgeCBpMTY+LCBhbGlnbiA0Ci0gICAl NSA9IGFsbG9jYSA8MiB4IGkxNj4sIGFsaWduIDQKLUBAIC0xNDczLDcgKzE0NzMsNyBAQCBkZWZp bmUgZHNvX2xvY2FsIDwyIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012 YjJfc1NfKDwyIHggaTE2PiwgPAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBu b3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDQgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNf aW1wbF9zcmVtdTJDTXZiNF9zU18oPDQgeCBpMTY+LCA8NCB4IGkxNj4pICM3IHsKLStkZWZpbmUg aW50ZXJuYWwgPDQgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiNF9z U18oPDQgeCBpMTY+LCA8NCB4IGkxNj4pICM3IHsKLSAgICUzID0gYWxsb2NhIDw0IHggaTE2Piwg YWxpZ24gOAotICAgJTQgPSBhbGxvY2EgPDQgeCBpMTY+LCBhbGlnbiA4Ci0gICAlNSA9IGFsbG9j YSA8NCB4IGkxNj4sIGFsaWduIDgKLUBAIC0xNDg3LDcgKzE0ODcsNyBAQCBkZWZpbmUgZHNvX2xv Y2FsIDw0IHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjRfc1NfKDw0 IHggaTE2PiwgPAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAot LWRlZmluZSBkc29fbG9jYWwgPDggeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVt dTJDTXZiOF9zU18oPDggeCBpMTY+LCA8OCB4IGkxNj4pICM5IHsKLStkZWZpbmUgaW50ZXJuYWwg PDggeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiOF9zU18oPDggeCBp MTY+LCA8OCB4IGkxNj4pICM5IHsKLSAgICUzID0gYWxsb2NhIDw4IHggaTE2PiwgYWxpZ24gMTYK LSAgICU0ID0gYWxsb2NhIDw4IHggaTE2PiwgYWxpZ24gMTYKLSAgICU1ID0gYWxsb2NhIDw4IHgg aTE2PiwgYWxpZ24gMTYKLUBAIC0xNTAxLDcgKzE1MDEsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDw4 IHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012Yjhfc1NfKDw4IHggaTE2 PiwgPAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmlu ZSBkc29fbG9jYWwgPDE2IHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012 YjE2X3NTXyg8MTYgeCBpMTY+LCA8MTYgeCBpMTY+KSAjMTEgewotK2RlZmluZSBpbnRlcm5hbCA8 MTYgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMTZfc1NfKDwxNiB4 IGkxNj4sIDwxNiB4IGkxNj4pICMxMSB7Ci0gICAlMyA9IGFsbG9jYSA8MTYgeCBpMTY+LCBhbGln biAzMgotICAgJTQgPSBhbGxvY2EgPDE2IHggaTE2PiwgYWxpZ24gMzIKLSAgICU1ID0gYWxsb2Nh IDwxNiB4IGkxNj4sIGFsaWduIDMyCi1AQCAtMTUxNSw3ICsxNTE1LDcgQEAgZGVmaW5lIGRzb19s b2NhbCA8MTYgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMTZfc1Nf KDwxNiB4IGkxNj4KLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQK LS1kZWZpbmUgZHNvX2xvY2FsIDwzMiB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3Ny ZW11MkNNdmIzMl9zU18oPDMyIHggaTE2PiwgPDMyIHggaTE2PikgIzEzIHsKLStkZWZpbmUgaW50 ZXJuYWwgPDMyIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjMyX3NT Xyg8MzIgeCBpMTY+LCA8MzIgeCBpMTY+KSAjMTMgewotICAgJTMgPSBhbGxvY2EgPDMyIHggaTE2 PiwgYWxpZ24gNjQKLSAgICU0ID0gYWxsb2NhIDwzMiB4IGkxNj4sIGFsaWduIDY0Ci0gICAlNSA9 IGFsbG9jYSA8MzIgeCBpMTY+LCBhbGlnbiA2NAotQEAgLTE1MjksNyArMTUyOSw3IEBAIGRlZmlu ZSBkc29fbG9jYWwgPDMyIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012 YjMyX3NTXyg8MzIgeCBpMTY+Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5v dW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCBpMzIgQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3Nk aXZpaShpMzIsIGkzMikgIzE0IHsKLStkZWZpbmUgaW50ZXJuYWwgaTMyIEBfWjI0X19jbV9pbnRy aW5zaWNfaW1wbF9zZGl2aWkoaTMyLCBpMzIpICMxNCB7Ci0gICAlMyA9IGFsbG9jYSBpMzIsIGFs aWduIDQKLSAgICU0ID0gYWxsb2NhIGkzMiwgYWxpZ24gNAotICAgJTUgPSBhbGxvY2EgPDEgeCBp MzI+LCBhbGlnbiA0Ci1AQCAtMTczMCw3ICsxNzMwLDcgQEAgZGVmaW5lIGludGVybmFsIDwxIHgg aTMyPiBAX1pON2RldGFpbHMxM19faW1wbF9kaXZyZW1JTGkxRUVFdTJDTXZiVF9faVMxX1MxX3Uy Q00KLSBkZWNsYXJlIDwxIHggaTMyPiBAbGx2bS5nZW54LnJkcmVnaW9uaS52MWkzMi52MWkzMi5p MTYoPDEgeCBpMzI+LCBpMzIsIGkzMiwgaTMyLCBpMTYsIGkzMikgIzIKLSAKLSA7IEZ1bmN0aW9u IEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDEgeCBpMzI+IEBf WjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZiMV9pU18oPDEgeCBpMzI+LCA8MSB4IGkz Mj4pICMxNCB7Ci0rZGVmaW5lIGludGVybmFsIDwxIHggaTMyPiBAX1oyNF9fY21faW50cmluc2lj X2ltcGxfc2RpdnUyQ012YjFfaVNfKDwxIHggaTMyPiwgPDEgeCBpMzI+KSAjMTQgewotICAgJTMg PSBhbGxvY2EgPDEgeCBpMzI+LCBhbGlnbiA0Ci0gICAlNCA9IGFsbG9jYSA8MSB4IGkzMj4sIGFs aWduIDQKLSAgICU1ID0gYWxsb2NhIDwxIHggaTMyPiwgYWxpZ24gNAotQEAgLTE3NDYsNyArMTc0 Niw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDEgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1w bF9zZGl2dTJDTXZiMV9pU18oPDEgeCBpMzI+LCA8Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6 IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MiB4IGkzMj4gQF9aMjRfX2Nt X2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmIyX2lTXyg8MiB4IGkzMj4sIDwyIHggaTMyPikgIzE1 IHsKLStkZWZpbmUgaW50ZXJuYWwgPDIgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9z ZGl2dTJDTXZiMl9pU18oPDIgeCBpMzI+LCA8MiB4IGkzMj4pICMxNSB7Ci0gICAlMyA9IGFsbG9j YSA8MiB4IGkzMj4sIGFsaWduIDgKLSAgICU0ID0gYWxsb2NhIDwyIHggaTMyPiwgYWxpZ24gOAot ICAgJTUgPSBhbGxvY2EgPDIgeCBpMzI+LCBhbGlnbiA4Ci1AQCAtMTkzMiw3ICsxOTMyLDcgQEAg ZGVmaW5lIGludGVybmFsIDwyIHggaTMyPiBAX1pON2RldGFpbHMxM19faW1wbF9kaXZyZW1JTGky RUVFdTJDTXZiVF9faVMxX1MxX3UyQ00KLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxp bmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDw0IHggaTMyPiBAX1oyNF9fY21faW50cmlu c2ljX2ltcGxfc2RpdnUyQ012YjRfaVNfKDw0IHggaTMyPiwgPDQgeCBpMzI+KSAjMTYgewotK2Rl ZmluZSBpbnRlcm5hbCA8NCB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNN dmI0X2lTXyg8NCB4IGkzMj4sIDw0IHggaTMyPikgIzE2IHsKLSAgICUzID0gYWxsb2NhIDw0IHgg aTMyPiwgYWxpZ24gMTYKLSAgICU0ID0gYWxsb2NhIDw0IHggaTMyPiwgYWxpZ24gMTYKLSAgICU1 ID0gYWxsb2NhIDw0IHggaTMyPiwgYWxpZ24gMTYKLUBAIC0yNDkwLDcgKzI0OTAsNyBAQCBkZWZp bmUgaW50ZXJuYWwgPDE2IHggaTMyPiBAX1pON2RldGFpbHMxM19faW1wbF9kaXZyZW1JTGkxNkVF RXUyQ012YlRfX2lTMV9TMV91MgotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBu b3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDMyIHggaTMyPiBAX1oyNF9fY21faW50cmluc2lj X2ltcGxfc2RpdnUyQ012YjMyX2lTXyg8MzIgeCBpMzI+LCA8MzIgeCBpMzI+KSAjMTkgewotK2Rl ZmluZSBpbnRlcm5hbCA8MzIgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJD TXZiMzJfaVNfKDwzMiB4IGkzMj4sIDwzMiB4IGkzMj4pICMxOSB7Ci0gICAlMyA9IGFsbG9jYSA8 MzIgeCBpMzI+LCBhbGlnbiAxMjgKLSAgICU0ID0gYWxsb2NhIDwzMiB4IGkzMj4sIGFsaWduIDEy OAotICAgJTUgPSBhbGxvY2EgPDMyIHggaTMyPiwgYWxpZ24gMTI4Ci1AQCAtMjY3Niw3ICsyNjc2 LDcgQEAgZGVmaW5lIGludGVybmFsIDwzMiB4IGkzMj4gQF9aTjdkZXRhaWxzMTNfX2ltcGxfZGl2 cmVtSUxpMzJFRUV1MkNNdmJUX19pUzFfUzFfdTIKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczog bm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIGkzMiBAX1oyNF9fY21faW50cmlu c2ljX2ltcGxfc3JlbWlpKGkzMiwgaTMyKSAjMTQgewotK2RlZmluZSBpbnRlcm5hbCBpMzIgQF9a MjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW1paShpMzIsIGkzMikgIzE0IHsKLSAgICUzID0gYWxs b2NhIGkzMiwgYWxpZ24gNAotICAgJTQgPSBhbGxvY2EgaTMyLCBhbGlnbiA0Ci0gICAlNSA9IGFs bG9jYSA8MSB4IGkzMj4sIGFsaWduIDQKLUBAIC0yNzAyLDcgKzI3MDIsNyBAQCBkZWZpbmUgZHNv X2xvY2FsIGkzMiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbWlpKGkzMiwgaTMyKSAjMTQg ewotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBk c29fbG9jYWwgPDEgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMV9p U18oPDEgeCBpMzI+LCA8MSB4IGkzMj4pICMxNCB7Ci0rZGVmaW5lIGludGVybmFsIDwxIHggaTMy PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjFfaVNfKDwxIHggaTMyPiwgPDEg eCBpMzI+KSAjMTQgewotICAgJTMgPSBhbGxvY2EgPDEgeCBpMzI+LCBhbGlnbiA0Ci0gICAlNCA9 IGFsbG9jYSA8MSB4IGkzMj4sIGFsaWduIDQKLSAgICU1ID0gYWxsb2NhIDwxIHggaTMyPiwgYWxp Z24gNAotQEAgLTI3MTYsNyArMjcxNiw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDEgeCBpMzI+IEBf WjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMV9pU18oPDEgeCBpMzI+LCA8Ci0gfQot IAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2Nh bCA8MiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIyX2lTXyg8MiB4 IGkzMj4sIDwyIHggaTMyPikgIzE1IHsKLStkZWZpbmUgaW50ZXJuYWwgPDIgeCBpMzI+IEBfWjI0 X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMl9pU18oPDIgeCBpMzI+LCA8MiB4IGkzMj4p ICMxNSB7Ci0gICAlMyA9IGFsbG9jYSA8MiB4IGkzMj4sIGFsaWduIDgKLSAgICU0ID0gYWxsb2Nh IDwyIHggaTMyPiwgYWxpZ24gOAotICAgJTUgPSBhbGxvY2EgPDIgeCBpMzI+LCBhbGlnbiA4Ci1A QCAtMjczMCw3ICsyNzMwLDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MiB4IGkzMj4gQF9aMjRfX2Nt X2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIyX2lTXyg8MiB4IGkzMj4sIDwKLSB9Ci0gCi0gOyBG dW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDw0IHgg aTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjRfaVNfKDw0IHggaTMyPiwg PDQgeCBpMzI+KSAjMTYgewotK2RlZmluZSBpbnRlcm5hbCA8NCB4IGkzMj4gQF9aMjRfX2NtX2lu dHJpbnNpY19pbXBsX3NyZW11MkNNdmI0X2lTXyg8NCB4IGkzMj4sIDw0IHggaTMyPikgIzE2IHsK LSAgICUzID0gYWxsb2NhIDw0IHggaTMyPiwgYWxpZ24gMTYKLSAgICU0ID0gYWxsb2NhIDw0IHgg aTMyPiwgYWxpZ24gMTYKLSAgICU1ID0gYWxsb2NhIDw0IHggaTMyPiwgYWxpZ24gMTYKLUBAIC0y NzQ0LDcgKzI3NDQsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDw0IHggaTMyPiBAX1oyNF9fY21faW50 cmluc2ljX2ltcGxfc3JlbXUyQ012YjRfaVNfKDw0IHggaTMyPiwgPAotIH0KLSAKLSA7IEZ1bmN0 aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDggeCBpMzI+ IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiOF9pU18oPDggeCBpMzI+LCA8OCB4 IGkzMj4pICMxNyB7Ci0rZGVmaW5lIGludGVybmFsIDw4IHggaTMyPiBAX1oyNF9fY21faW50cmlu c2ljX2ltcGxfc3JlbXUyQ012YjhfaVNfKDw4IHggaTMyPiwgPDggeCBpMzI+KSAjMTcgewotICAg JTMgPSBhbGxvY2EgPDggeCBpMzI+LCBhbGlnbiAzMgotICAgJTQgPSBhbGxvY2EgPDggeCBpMzI+ LCBhbGlnbiAzMgotICAgJTUgPSBhbGxvY2EgPDggeCBpMzI+LCBhbGlnbiAzMgotQEAgLTI3NTgs NyArMjc1OCw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDggeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5z aWNfaW1wbF9zcmVtdTJDTXZiOF9pU18oPDggeCBpMzI+LCA8Ci0gfQotIAotIDsgRnVuY3Rpb24g QXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MTYgeCBpMzI+IEBf WjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMTZfaVNfKDwxNiB4IGkzMj4sIDwxNiB4 IGkzMj4pICMxOCB7Ci0rZGVmaW5lIGludGVybmFsIDwxNiB4IGkzMj4gQF9aMjRfX2NtX2ludHJp bnNpY19pbXBsX3NyZW11MkNNdmIxNl9pU18oPDE2IHggaTMyPiwgPDE2IHggaTMyPikgIzE4IHsK LSAgICUzID0gYWxsb2NhIDwxNiB4IGkzMj4sIGFsaWduIDY0Ci0gICAlNCA9IGFsbG9jYSA8MTYg eCBpMzI+LCBhbGlnbiA2NAotICAgJTUgPSBhbGxvY2EgPDE2IHggaTMyPiwgYWxpZ24gNjQKLUBA IC0yNzcyLDcgKzI3NzIsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwxNiB4IGkzMj4gQF9aMjRfX2Nt X2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIxNl9pU18oPDE2IHggaTMyPgotIH0KLSAKLSA7IEZ1 bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDMyIHgg aTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjMyX2lTXyg8MzIgeCBpMzI+ LCA8MzIgeCBpMzI+KSAjMTkgewotK2RlZmluZSBpbnRlcm5hbCA8MzIgeCBpMzI+IEBfWjI0X19j bV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMzJfaVNfKDwzMiB4IGkzMj4sIDwzMiB4IGkzMj4p ICMxOSB7Ci0gICAlMyA9IGFsbG9jYSA8MzIgeCBpMzI+LCBhbGlnbiAxMjgKLSAgICU0ID0gYWxs b2NhIDwzMiB4IGkzMj4sIGFsaWduIDEyOAotICAgJTUgPSBhbGxvY2EgPDMyIHggaTMyPiwgYWxp Z24gMTI4Ci1AQCAtMjc4Niw3ICsyNzg2LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MzIgeCBpMzI+ IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMzJfaVNfKDwzMiB4IGkzMj4KLSB9 Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xv Y2FsIHplcm9leHQgaTggQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZoaChpOCB6ZXJvZXh0 LCBpOCB6ZXJvZXh0KSAjMjEgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGk4IEBfWjI0X19j bV9pbnRyaW5zaWNfaW1wbF91ZGl2aGgoaTggemVyb2V4dCwgaTggemVyb2V4dCkgIzIxIHsKLSAg ICUzID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0gICAlNCA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAg JTUgPSBhbGxvY2EgPDEgeCBpOD4sIGFsaWduIDEKLUBAIC0yODQ0LDcgKzI4NDQsNyBAQCBkZWZp bmUgaW50ZXJuYWwgPDEgeCBpOD4gQF9aTjdkZXRhaWxzMTRfX2ltcGxfdWRpdnJlbUlMaTFFRUV1 MkNNdmJUX19oUzFfUzFfdTJDTQotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBu b3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDEgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19p bXBsX3VkaXZ1MkNNdmIxX2hTXyg8MSB4IGk4PiwgPDEgeCBpOD4pICMyMSB7Ci0rZGVmaW5lIGlu dGVybmFsIDwxIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZiMV9oU18o PDEgeCBpOD4sIDwxIHggaTg+KSAjMjEgewotICAgJTMgPSBhbGxvY2EgPDEgeCBpOD4sIGFsaWdu IDEKLSAgICU0ID0gYWxsb2NhIDwxIHggaTg+LCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSA8MSB4 IGk4PiwgYWxpZ24gMQotQEAgLTI4NjAsNyArMjg2MCw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDEg eCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1MkNNdmIxX2hTXyg8MSB4IGk4Piwg PDEKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUg ZHNvX2xvY2FsIDwyIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZiMl9o U18oPDIgeCBpOD4sIDwyIHggaTg+KSAjMjIgewotK2RlZmluZSBpbnRlcm5hbCA8MiB4IGk4PiBA X1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRpdnUyQ012YjJfaFNfKDwyIHggaTg+LCA8MiB4IGk4 PikgIzIyIHsKLSAgICUzID0gYWxsb2NhIDwyIHggaTg+LCBhbGlnbiAyCi0gICAlNCA9IGFsbG9j YSA8MiB4IGk4PiwgYWxpZ24gMgotICAgJTUgPSBhbGxvY2EgPDIgeCBpOD4sIGFsaWduIDIKLUBA IC0yOTA2LDcgKzI5MDYsNyBAQCBkZWZpbmUgaW50ZXJuYWwgPDIgeCBpOD4gQF9aTjdkZXRhaWxz MTRfX2ltcGxfdWRpdnJlbUlMaTJFRUV1MkNNdmJUX19oUzFfUzFfdTJDTQotIH0KLSAKLSA7IEZ1 bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDQgeCBp OD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1MkNNdmI0X2hTXyg8NCB4IGk4PiwgPDQg eCBpOD4pICMxNCB7Ci0rZGVmaW5lIGludGVybmFsIDw0IHggaTg+IEBfWjI0X19jbV9pbnRyaW5z aWNfaW1wbF91ZGl2dTJDTXZiNF9oU18oPDQgeCBpOD4sIDw0IHggaTg+KSAjMTQgewotICAgJTMg PSBhbGxvY2EgPDQgeCBpOD4sIGFsaWduIDQKLSAgICU0ID0gYWxsb2NhIDw0IHggaTg+LCBhbGln biA0Ci0gICAlNSA9IGFsbG9jYSA8NCB4IGk4PiwgYWxpZ24gNAotQEAgLTMwNDQsNyArMzA0NCw3 IEBAIGRlZmluZSBpbnRlcm5hbCA8MTYgeCBpOD4gQF9aTjdkZXRhaWxzMTRfX2ltcGxfdWRpdnJl bUlMaTE2RUVFdTJDTXZiVF9faFMxX1MxX3UyCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5v aW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MzIgeCBpOD4gQF9aMjRfX2NtX2lu dHJpbnNpY19pbXBsX3VkaXZ1MkNNdmIzMl9oU18oPDMyIHggaTg+LCA8MzIgeCBpOD4pICMxNyB7 Ci0rZGVmaW5lIGludGVybmFsIDwzMiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRp dnUyQ012YjMyX2hTXyg8MzIgeCBpOD4sIDwzMiB4IGk4PikgIzE3IHsKLSAgICUzID0gYWxsb2Nh IDwzMiB4IGk4PiwgYWxpZ24gMzIKLSAgICU0ID0gYWxsb2NhIDwzMiB4IGk4PiwgYWxpZ24gMzIK LSAgICU1ID0gYWxsb2NhIDwzMiB4IGk4PiwgYWxpZ24gMzIKLUBAIC0zMDkwLDcgKzMwOTAsNyBA QCBkZWZpbmUgaW50ZXJuYWwgPDMyIHggaTg+IEBfWk43ZGV0YWlsczE0X19pbXBsX3VkaXZyZW1J TGkzMkVFRXUyQ012YlRfX2hTMV9TMV91MgotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lu bGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgemVyb2V4dCBpOCBAX1oyNF9fY21faW50 cmluc2ljX2ltcGxfdXJlbWhoKGk4IHplcm9leHQsIGk4IHplcm9leHQpICMyMSB7Ci0rZGVmaW5l IGludGVybmFsIHplcm9leHQgaTggQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW1oaChpOCB6 ZXJvZXh0LCBpOCB6ZXJvZXh0KSAjMjEgewotICAgJTMgPSBhbGxvY2EgaTgsIGFsaWduIDEKLSAg ICU0ID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSA8MSB4IGk4PiwgYWxpZ24g MQotQEAgLTMxMTYsNyArMzExNiw3IEBAIGRlZmluZSBkc29fbG9jYWwgemVyb2V4dCBpOCBAX1oy NF9fY21faW50cmluc2ljX2ltcGxfdXJlbWhoKGk4IHplcm9leHQsIGk4IHplcm9lCi0gfQotIAot IDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8 MSB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjFfaFNfKDwxIHggaTg+ LCA8MSB4IGk4PikgIzIxIHsKLStkZWZpbmUgaW50ZXJuYWwgPDEgeCBpOD4gQF9aMjRfX2NtX2lu dHJpbnNpY19pbXBsX3VyZW11MkNNdmIxX2hTXyg8MSB4IGk4PiwgPDEgeCBpOD4pICMyMSB7Ci0g ICAlMyA9IGFsbG9jYSA8MSB4IGk4PiwgYWxpZ24gMQotICAgJTQgPSBhbGxvY2EgPDEgeCBpOD4s IGFsaWduIDEKLSAgICU1ID0gYWxsb2NhIDwxIHggaTg+LCBhbGlnbiAxCi1AQCAtMzEzMCw3ICsz MTMwLDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MSB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2lt cGxfdXJlbXUyQ012YjFfaFNfKDwxIHggaTg+LCA8MQotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJz OiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDIgeCBpOD4gQF9aMjRfX2Nt X2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIyX2hTXyg8MiB4IGk4PiwgPDIgeCBpOD4pICMyMiB7 Ci0rZGVmaW5lIGludGVybmFsIDwyIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVt dTJDTXZiMl9oU18oPDIgeCBpOD4sIDwyIHggaTg+KSAjMjIgewotICAgJTMgPSBhbGxvY2EgPDIg eCBpOD4sIGFsaWduIDIKLSAgICU0ID0gYWxsb2NhIDwyIHggaTg+LCBhbGlnbiAyCi0gICAlNSA9 IGFsbG9jYSA8MiB4IGk4PiwgYWxpZ24gMgotQEAgLTMxNDQsNyArMzE0NCw3IEBAIGRlZmluZSBk c29fbG9jYWwgPDIgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIyX2hT Xyg8MiB4IGk4PiwgPDIKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndp bmQKLS1kZWZpbmUgZHNvX2xvY2FsIDw0IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91 cmVtdTJDTXZiNF9oU18oPDQgeCBpOD4sIDw0IHggaTg+KSAjMTQgewotK2RlZmluZSBpbnRlcm5h bCA8NCB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjRfaFNfKDw0IHgg aTg+LCA8NCB4IGk4PikgIzE0IHsKLSAgICUzID0gYWxsb2NhIDw0IHggaTg+LCBhbGlnbiA0Ci0g ICAlNCA9IGFsbG9jYSA8NCB4IGk4PiwgYWxpZ24gNAotICAgJTUgPSBhbGxvY2EgPDQgeCBpOD4s IGFsaWduIDQKLUBAIC0zMTU4LDcgKzMxNTgsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDw0IHggaTg+ IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiNF9oU18oPDQgeCBpOD4sIDw0Ci0g fQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19s b2NhbCA8OCB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjhfaFNfKDw4 IHggaTg+LCA8OCB4IGk4PikgIzE1IHsKLStkZWZpbmUgaW50ZXJuYWwgPDggeCBpOD4gQF9aMjRf X2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmI4X2hTXyg8OCB4IGk4PiwgPDggeCBpOD4pICMx NSB7Ci0gICAlMyA9IGFsbG9jYSA8OCB4IGk4PiwgYWxpZ24gOAotICAgJTQgPSBhbGxvY2EgPDgg eCBpOD4sIGFsaWduIDgKLSAgICU1ID0gYWxsb2NhIDw4IHggaTg+LCBhbGlnbiA4Ci1AQCAtMzE3 Miw3ICszMTcyLDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8OCB4IGk4PiBAX1oyNF9fY21faW50cmlu c2ljX2ltcGxfdXJlbXUyQ012YjhfaFNfKDw4IHggaTg+LCA8OAotIH0KLSAKLSA7IEZ1bmN0aW9u IEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDE2IHggaTg+IEBf WjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMTZfaFNfKDwxNiB4IGk4PiwgPDE2IHgg aTg+KSAjMTYgewotK2RlZmluZSBpbnRlcm5hbCA8MTYgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNp Y19pbXBsX3VyZW11MkNNdmIxNl9oU18oPDE2IHggaTg+LCA8MTYgeCBpOD4pICMxNiB7Ci0gICAl MyA9IGFsbG9jYSA8MTYgeCBpOD4sIGFsaWduIDE2Ci0gICAlNCA9IGFsbG9jYSA8MTYgeCBpOD4s IGFsaWduIDE2Ci0gICAlNSA9IGFsbG9jYSA8MTYgeCBpOD4sIGFsaWduIDE2Ci1AQCAtMzE4Niw3 ICszMTg2LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MTYgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNp Y19pbXBsX3VyZW11MkNNdmIxNl9oU18oPDE2IHggaTg+LAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0 dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDMyIHggaTg+IEBfWjI0 X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMzJfaFNfKDwzMiB4IGk4PiwgPDMyIHggaTg+ KSAjMTcgewotK2RlZmluZSBpbnRlcm5hbCA8MzIgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19p bXBsX3VyZW11MkNNdmIzMl9oU18oPDMyIHggaTg+LCA8MzIgeCBpOD4pICMxNyB7Ci0gICAlMyA9 IGFsbG9jYSA8MzIgeCBpOD4sIGFsaWduIDMyCi0gICAlNCA9IGFsbG9jYSA8MzIgeCBpOD4sIGFs aWduIDMyCi0gICAlNSA9IGFsbG9jYSA8MzIgeCBpOD4sIGFsaWduIDMyCi1AQCAtMzIwMCw3ICsz MjAwLDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MzIgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19p bXBsX3VyZW11MkNNdmIzMl9oU18oPDMyIHggaTg+LAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJz OiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgemVyb2V4dCBpMTYgQF9aMjRf X2NtX2ludHJpbnNpY19pbXBsX3VkaXZ0dChpMTYgemVyb2V4dCwgaTE2IHplcm9leHQpICMyMiB7 Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQgaTE2IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91 ZGl2dHQoaTE2IHplcm9leHQsIGkxNiB6ZXJvZXh0KSAjMjIgewotICAgJTMgPSBhbGxvY2EgaTE2 LCBhbGlnbiAyCi0gICAlNCA9IGFsbG9jYSBpMTYsIGFsaWduIDIKLSAgICU1ID0gYWxsb2NhIDwx IHggaTE2PiwgYWxpZ24gMgotQEAgLTMyNzgsNyArMzI3OCw3IEBAIGRlZmluZSBpbnRlcm5hbCA8 MSB4IGkxNj4gQF9aTjdkZXRhaWxzMTRfX2ltcGxfdWRpdnJlbUlMaTFFRUV1MkNNdmJUX190UzFf UzFfdTJDCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVm aW5lIGRzb19sb2NhbCA8MSB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1MkNN dmIxX3RTXyg8MSB4IGkxNj4sIDwxIHggaTE2PikgIzIyIHsKLStkZWZpbmUgaW50ZXJuYWwgPDEg eCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZiMV90U18oPDEgeCBpMTY+ LCA8MSB4IGkxNj4pICMyMiB7Ci0gICAlMyA9IGFsbG9jYSA8MSB4IGkxNj4sIGFsaWduIDIKLSAg ICU0ID0gYWxsb2NhIDwxIHggaTE2PiwgYWxpZ24gMgotICAgJTUgPSBhbGxvY2EgPDEgeCBpMTY+ LCBhbGlnbiAyCi1AQCAtMzI5NCw3ICszMjk0LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MSB4IGkx Nj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1MkNNdmIxX3RTXyg8MSB4IGkxNj4sIDwK LSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNv X2xvY2FsIDwyIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRpdnUyQ012YjJfdFNf KDwyIHggaTE2PiwgPDIgeCBpMTY+KSAjMTQgewotK2RlZmluZSBpbnRlcm5hbCA8MiB4IGkxNj4g QF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1MkNNdmIyX3RTXyg8MiB4IGkxNj4sIDwyIHgg aTE2PikgIzE0IHsKLSAgICUzID0gYWxsb2NhIDwyIHggaTE2PiwgYWxpZ24gNAotICAgJTQgPSBh bGxvY2EgPDIgeCBpMTY+LCBhbGlnbiA0Ci0gICAlNSA9IGFsbG9jYSA8MiB4IGkxNj4sIGFsaWdu IDQKLUBAIC0zMzYwLDcgKzMzNjAsNyBAQCBkZWZpbmUgaW50ZXJuYWwgPDIgeCBpMTY+IEBfWk43 ZGV0YWlsczE0X19pbXBsX3VkaXZyZW1JTGkyRUVFdTJDTXZiVF9fdFMxX1MxX3UyQwotIH0KLSAK LSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwg PDQgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZiNF90U18oPDQgeCBp MTY+LCA8NCB4IGkxNj4pICMxNSB7Ci0rZGVmaW5lIGludGVybmFsIDw0IHggaTE2PiBAX1oyNF9f Y21faW50cmluc2ljX2ltcGxfdWRpdnUyQ012YjRfdFNfKDw0IHggaTE2PiwgPDQgeCBpMTY+KSAj MTUgewotICAgJTMgPSBhbGxvY2EgPDQgeCBpMTY+LCBhbGlnbiA4Ci0gICAlNCA9IGFsbG9jYSA8 NCB4IGkxNj4sIGFsaWduIDgKLSAgICU1ID0gYWxsb2NhIDw0IHggaTE2PiwgYWxpZ24gOAotQEAg LTM1NTgsNyArMzU1OCw3IEBAIGRlZmluZSBpbnRlcm5hbCA8MTYgeCBpMTY+IEBfWk43ZGV0YWls czE0X19pbXBsX3VkaXZyZW1JTGkxNkVFRXUyQ012YlRfX3RTMV9TMV91Ci0gfQotIAotIDsgRnVu Y3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MzIgeCBp MTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZiMzJfdFNfKDwzMiB4IGkxNj4s IDwzMiB4IGkxNj4pICMxOCB7Ci0rZGVmaW5lIGludGVybmFsIDwzMiB4IGkxNj4gQF9aMjRfX2Nt X2ludHJpbnNpY19pbXBsX3VkaXZ1MkNNdmIzMl90U18oPDMyIHggaTE2PiwgPDMyIHggaTE2Pikg IzE4IHsKLSAgICUzID0gYWxsb2NhIDwzMiB4IGkxNj4sIGFsaWduIDY0Ci0gICAlNCA9IGFsbG9j YSA8MzIgeCBpMTY+LCBhbGlnbiA2NAotICAgJTUgPSBhbGxvY2EgPDMyIHggaTE2PiwgYWxpZ24g NjQKLUBAIC0zNjI0LDcgKzM2MjQsNyBAQCBkZWZpbmUgaW50ZXJuYWwgPDMyIHggaTE2PiBAX1pO N2RldGFpbHMxNF9faW1wbF91ZGl2cmVtSUxpMzJFRUV1MkNNdmJUX190UzFfUzFfdQotIH0KLSAK LSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwg emVyb2V4dCBpMTYgQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW10dChpMTYgemVyb2V4dCwg aTE2IHplcm9leHQpICMyMiB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQgaTE2IEBfWjI0X19j bV9pbnRyaW5zaWNfaW1wbF91cmVtdHQoaTE2IHplcm9leHQsIGkxNiB6ZXJvZXh0KSAjMjIgewot ICAgJTMgPSBhbGxvY2EgaTE2LCBhbGlnbiAyCi0gICAlNCA9IGFsbG9jYSBpMTYsIGFsaWduIDIK LSAgICU1ID0gYWxsb2NhIDwxIHggaTE2PiwgYWxpZ24gMgotQEAgLTM2NTAsNyArMzY1MCw3IEBA IGRlZmluZSBkc29fbG9jYWwgemVyb2V4dCBpMTYgQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3Vy ZW10dChpMTYgemVyb2V4dCwgaTE2IHplCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5s aW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MSB4IGkxNj4gQF9aMjRfX2NtX2ludHJp bnNpY19pbXBsX3VyZW11MkNNdmIxX3RTXyg8MSB4IGkxNj4sIDwxIHggaTE2PikgIzIyIHsKLStk ZWZpbmUgaW50ZXJuYWwgPDEgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJD TXZiMV90U18oPDEgeCBpMTY+LCA8MSB4IGkxNj4pICMyMiB7Ci0gICAlMyA9IGFsbG9jYSA8MSB4 IGkxNj4sIGFsaWduIDIKLSAgICU0ID0gYWxsb2NhIDwxIHggaTE2PiwgYWxpZ24gMgotICAgJTUg PSBhbGxvY2EgPDEgeCBpMTY+LCBhbGlnbiAyCi1AQCAtMzY2NCw3ICszNjY0LDcgQEAgZGVmaW5l IGRzb19sb2NhbCA8MSB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIx X3RTXyg8MSB4IGkxNj4sIDwKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91 bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwyIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2lt cGxfdXJlbXUyQ012YjJfdFNfKDwyIHggaTE2PiwgPDIgeCBpMTY+KSAjMTQgewotK2RlZmluZSBp bnRlcm5hbCA8MiB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIyX3RT Xyg8MiB4IGkxNj4sIDwyIHggaTE2PikgIzE0IHsKLSAgICUzID0gYWxsb2NhIDwyIHggaTE2Piwg YWxpZ24gNAotICAgJTQgPSBhbGxvY2EgPDIgeCBpMTY+LCBhbGlnbiA0Ci0gICAlNSA9IGFsbG9j YSA8MiB4IGkxNj4sIGFsaWduIDQKLUBAIC0zNjc4LDcgKzM2NzgsNyBAQCBkZWZpbmUgZHNvX2xv Y2FsIDwyIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjJfdFNfKDwy IHggaTE2PiwgPAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAot LWRlZmluZSBkc29fbG9jYWwgPDQgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVt dTJDTXZiNF90U18oPDQgeCBpMTY+LCA8NCB4IGkxNj4pICMxNSB7Ci0rZGVmaW5lIGludGVybmFs IDw0IHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjRfdFNfKDw0IHgg aTE2PiwgPDQgeCBpMTY+KSAjMTUgewotICAgJTMgPSBhbGxvY2EgPDQgeCBpMTY+LCBhbGlnbiA4 Ci0gICAlNCA9IGFsbG9jYSA8NCB4IGkxNj4sIGFsaWduIDgKLSAgICU1ID0gYWxsb2NhIDw0IHgg aTE2PiwgYWxpZ24gOAotQEAgLTM2OTIsNyArMzY5Miw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDQg eCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiNF90U18oPDQgeCBpMTY+ LCA8Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5l IGRzb19sb2NhbCA8OCB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmI4 X3RTXyg8OCB4IGkxNj4sIDw4IHggaTE2PikgIzE2IHsKLStkZWZpbmUgaW50ZXJuYWwgPDggeCBp MTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiOF90U18oPDggeCBpMTY+LCA8 OCB4IGkxNj4pICMxNiB7Ci0gICAlMyA9IGFsbG9jYSA8OCB4IGkxNj4sIGFsaWduIDE2Ci0gICAl NCA9IGFsbG9jYSA8OCB4IGkxNj4sIGFsaWduIDE2Ci0gICAlNSA9IGFsbG9jYSA8OCB4IGkxNj4s IGFsaWduIDE2Ci1AQCAtMzcwNiw3ICszNzA2LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8OCB4IGkx Nj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmI4X3RTXyg8OCB4IGkxNj4sIDwK LSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNv X2xvY2FsIDwxNiB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIxNl90 U18oPDE2IHggaTE2PiwgPDE2IHggaTE2PikgIzE3IHsKLStkZWZpbmUgaW50ZXJuYWwgPDE2IHgg aTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjE2X3RTXyg8MTYgeCBpMTY+ LCA8MTYgeCBpMTY+KSAjMTcgewotICAgJTMgPSBhbGxvY2EgPDE2IHggaTE2PiwgYWxpZ24gMzIK LSAgICU0ID0gYWxsb2NhIDwxNiB4IGkxNj4sIGFsaWduIDMyCi0gICAlNSA9IGFsbG9jYSA8MTYg eCBpMTY+LCBhbGlnbiAzMgotQEAgLTM3MjAsNyArMzcyMCw3IEBAIGRlZmluZSBkc29fbG9jYWwg PDE2IHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjE2X3RTXyg8MTYg eCBpMTY+Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVm aW5lIGRzb19sb2NhbCA8MzIgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJD TXZiMzJfdFNfKDwzMiB4IGkxNj4sIDwzMiB4IGkxNj4pICMxOCB7Ci0rZGVmaW5lIGludGVybmFs IDwzMiB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIzMl90U18oPDMy IHggaTE2PiwgPDMyIHggaTE2PikgIzE4IHsKLSAgICUzID0gYWxsb2NhIDwzMiB4IGkxNj4sIGFs aWduIDY0Ci0gICAlNCA9IGFsbG9jYSA8MzIgeCBpMTY+LCBhbGlnbiA2NAotICAgJTUgPSBhbGxv Y2EgPDMyIHggaTE2PiwgYWxpZ24gNjQKLUBAIC0zNzM0LDcgKzM3MzQsNyBAQCBkZWZpbmUgZHNv X2xvY2FsIDwzMiB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIzMl90 U18oPDMyIHggaTE2PgotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2lu ZAotLWRlZmluZSBkc29fbG9jYWwgaTMyIEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2amoo aTMyLCBpMzIpICMxNCB7Ci0rZGVmaW5lIGludGVybmFsIGkzMiBAX1oyNF9fY21faW50cmluc2lj X2ltcGxfdWRpdmpqKGkzMiwgaTMyKSAjMTQgewotICAgJTMgPSBhbGxvY2EgaTMyLCBhbGlnbiA0 Ci0gICAlNCA9IGFsbG9jYSBpMzIsIGFsaWduIDQKLSAgICU1ID0gYWxsb2NhIDwxIHggaTMyPiwg YWxpZ24gNAotQEAgLTM4OTIsNyArMzg5Miw3IEBAIGRlZmluZSBpbnRlcm5hbCA8MSB4IGkzMj4g QF9aTjdkZXRhaWxzMTRfX2ltcGxfdWRpdnJlbUlMaTFFRUV1MkNNdmJUX19qUzFfUzFfdTJDCi0g fQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19s b2NhbCA8MSB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1MkNNdmIxX2pTXyg8 MSB4IGkzMj4sIDwxIHggaTMyPikgIzE0IHsKLStkZWZpbmUgaW50ZXJuYWwgPDEgeCBpMzI+IEBf WjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZiMV9qU18oPDEgeCBpMzI+LCA8MSB4IGkz Mj4pICMxNCB7Ci0gICAlMyA9IGFsbG9jYSA8MSB4IGkzMj4sIGFsaWduIDQKLSAgICU0ID0gYWxs b2NhIDwxIHggaTMyPiwgYWxpZ24gNAotICAgJTUgPSBhbGxvY2EgPDEgeCBpMzI+LCBhbGlnbiA0 Ci1AQCAtMzkwOCw3ICszOTA4LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MSB4IGkzMj4gQF9aMjRf X2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1MkNNdmIxX2pTXyg8MSB4IGkzMj4sIDwKLSB9Ci0gCi0g OyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwy IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRpdnUyQ012YjJfalNfKDwyIHggaTMy PiwgPDIgeCBpMzI+KSAjMTUgewotK2RlZmluZSBpbnRlcm5hbCA8MiB4IGkzMj4gQF9aMjRfX2Nt X2ludHJpbnNpY19pbXBsX3VkaXZ1MkNNdmIyX2pTXyg8MiB4IGkzMj4sIDwyIHggaTMyPikgIzE1 IHsKLSAgICUzID0gYWxsb2NhIDwyIHggaTMyPiwgYWxpZ24gOAotICAgJTQgPSBhbGxvY2EgPDIg eCBpMzI+LCBhbGlnbiA4Ci0gICAlNSA9IGFsbG9jYSA8MiB4IGkzMj4sIGFsaWduIDgKLUBAIC00 MDU0LDcgKzQwNTQsNyBAQCBkZWZpbmUgaW50ZXJuYWwgPDIgeCBpMzI+IEBfWk43ZGV0YWlsczE0 X19pbXBsX3VkaXZyZW1JTGkyRUVFdTJDTXZiVF9falMxX1MxX3UyQwotIH0KLSAKLSA7IEZ1bmN0 aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDQgeCBpMzI+ IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZiNF9qU18oPDQgeCBpMzI+LCA8NCB4 IGkzMj4pICMxNiB7Ci0rZGVmaW5lIGludGVybmFsIDw0IHggaTMyPiBAX1oyNF9fY21faW50cmlu c2ljX2ltcGxfdWRpdnUyQ012YjRfalNfKDw0IHggaTMyPiwgPDQgeCBpMzI+KSAjMTYgewotICAg JTMgPSBhbGxvY2EgPDQgeCBpMzI+LCBhbGlnbiAxNgotICAgJTQgPSBhbGxvY2EgPDQgeCBpMzI+ LCBhbGlnbiAxNgotICAgJTUgPSBhbGxvY2EgPDQgeCBpMzI+LCBhbGlnbiAxNgotQEAgLTQ0OTIs NyArNDQ5Miw3IEBAIGRlZmluZSBpbnRlcm5hbCA8MTYgeCBpMzI+IEBfWk43ZGV0YWlsczE0X19p bXBsX3VkaXZyZW1JTGkxNkVFRXUyQ012YlRfX2pTMV9TMV91Ci0gfQotIAotIDsgRnVuY3Rpb24g QXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MzIgeCBpMzI+IEBf WjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZiMzJfalNfKDwzMiB4IGkzMj4sIDwzMiB4 IGkzMj4pICMxOSB7Ci0rZGVmaW5lIGludGVybmFsIDwzMiB4IGkzMj4gQF9aMjRfX2NtX2ludHJp bnNpY19pbXBsX3VkaXZ1MkNNdmIzMl9qU18oPDMyIHggaTMyPiwgPDMyIHggaTMyPikgIzE5IHsK LSAgICUzID0gYWxsb2NhIDwzMiB4IGkzMj4sIGFsaWduIDEyOAotICAgJTQgPSBhbGxvY2EgPDMy IHggaTMyPiwgYWxpZ24gMTI4Ci0gICAlNSA9IGFsbG9jYSA8MzIgeCBpMzI+LCBhbGlnbiAxMjgK LUBAIC00NjM4LDcgKzQ2MzgsNyBAQCBkZWZpbmUgaW50ZXJuYWwgPDMyIHggaTMyPiBAX1pON2Rl dGFpbHMxNF9faW1wbF91ZGl2cmVtSUxpMzJFRUV1MkNNdmJUX19qUzFfUzFfdQotIH0KLSAKLSA7 IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgaTMy IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtamooaTMyLCBpMzIpICMxNCB7Ci0rZGVmaW5l IGludGVybmFsIGkzMiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbWpqKGkzMiwgaTMyKSAj MTQgewotICAgJTMgPSBhbGxvY2EgaTMyLCBhbGlnbiA0Ci0gICAlNCA9IGFsbG9jYSBpMzIsIGFs aWduIDQKLSAgICU1ID0gYWxsb2NhIDwxIHggaTMyPiwgYWxpZ24gNAotQEAgLTQ2NjQsNyArNDY2 NCw3IEBAIGRlZmluZSBkc29fbG9jYWwgaTMyIEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVt amooaTMyLCBpMzIpICMxNCB7Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5v dW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MSB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19p bXBsX3VyZW11MkNNdmIxX2pTXyg8MSB4IGkzMj4sIDwxIHggaTMyPikgIzE0IHsKLStkZWZpbmUg aW50ZXJuYWwgPDEgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMV9q U18oPDEgeCBpMzI+LCA8MSB4IGkzMj4pICMxNCB7Ci0gICAlMyA9IGFsbG9jYSA8MSB4IGkzMj4s IGFsaWduIDQKLSAgICU0ID0gYWxsb2NhIDwxIHggaTMyPiwgYWxpZ24gNAotICAgJTUgPSBhbGxv Y2EgPDEgeCBpMzI+LCBhbGlnbiA0Ci1AQCAtNDY3OCw3ICs0Njc4LDcgQEAgZGVmaW5lIGRzb19s b2NhbCA8MSB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIxX2pTXyg8 MSB4IGkzMj4sIDwKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQK LS1kZWZpbmUgZHNvX2xvY2FsIDwyIHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJl bXUyQ012YjJfalNfKDwyIHggaTMyPiwgPDIgeCBpMzI+KSAjMTUgewotK2RlZmluZSBpbnRlcm5h bCA8MiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIyX2pTXyg8MiB4 IGkzMj4sIDwyIHggaTMyPikgIzE1IHsKLSAgICUzID0gYWxsb2NhIDwyIHggaTMyPiwgYWxpZ24g OAotICAgJTQgPSBhbGxvY2EgPDIgeCBpMzI+LCBhbGlnbiA4Ci0gICAlNSA9IGFsbG9jYSA8MiB4 IGkzMj4sIGFsaWduIDgKLUBAIC00NjkyLDcgKzQ2OTIsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwy IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjJfalNfKDwyIHggaTMy PiwgPAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmlu ZSBkc29fbG9jYWwgPDQgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZi NF9qU18oPDQgeCBpMzI+LCA8NCB4IGkzMj4pICMxNiB7Ci0rZGVmaW5lIGludGVybmFsIDw0IHgg aTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjRfalNfKDw0IHggaTMyPiwg PDQgeCBpMzI+KSAjMTYgewotICAgJTMgPSBhbGxvY2EgPDQgeCBpMzI+LCBhbGlnbiAxNgotICAg JTQgPSBhbGxvY2EgPDQgeCBpMzI+LCBhbGlnbiAxNgotICAgJTUgPSBhbGxvY2EgPDQgeCBpMzI+ LCBhbGlnbiAxNgotQEAgLTQ3MDYsNyArNDcwNiw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDQgeCBp MzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiNF9qU18oPDQgeCBpMzI+LCA8 Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRz b19sb2NhbCA8OCB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmI4X2pT Xyg8OCB4IGkzMj4sIDw4IHggaTMyPikgIzE3IHsKLStkZWZpbmUgaW50ZXJuYWwgPDggeCBpMzI+ IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiOF9qU18oPDggeCBpMzI+LCA8OCB4 IGkzMj4pICMxNyB7Ci0gICAlMyA9IGFsbG9jYSA8OCB4IGkzMj4sIGFsaWduIDMyCi0gICAlNCA9 IGFsbG9jYSA8OCB4IGkzMj4sIGFsaWduIDMyCi0gICAlNSA9IGFsbG9jYSA8OCB4IGkzMj4sIGFs aWduIDMyCi1AQCAtNDcyMCw3ICs0NzIwLDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8OCB4IGkzMj4g QF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmI4X2pTXyg8OCB4IGkzMj4sIDwKLSB9 Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xv Y2FsIDwxNiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIxNl9qU18o PDE2IHggaTMyPiwgPDE2IHggaTMyPikgIzE4IHsKLStkZWZpbmUgaW50ZXJuYWwgPDE2IHggaTMy PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjE2X2pTXyg8MTYgeCBpMzI+LCA8 MTYgeCBpMzI+KSAjMTggewotICAgJTMgPSBhbGxvY2EgPDE2IHggaTMyPiwgYWxpZ24gNjQKLSAg ICU0ID0gYWxsb2NhIDwxNiB4IGkzMj4sIGFsaWduIDY0Ci0gICAlNSA9IGFsbG9jYSA8MTYgeCBp MzI+LCBhbGlnbiA2NAotQEAgLTQ3MzQsNyArNDczNCw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDE2 IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjE2X2pTXyg8MTYgeCBp MzI+Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5l IGRzb19sb2NhbCA8MzIgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZi MzJfalNfKDwzMiB4IGkzMj4sIDwzMiB4IGkzMj4pICMxOSB7Ci0rZGVmaW5lIGludGVybmFsIDwz MiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIzMl9qU18oPDMyIHgg aTMyPiwgPDMyIHggaTMyPikgIzE5IHsKLSAgICUzID0gYWxsb2NhIDwzMiB4IGkzMj4sIGFsaWdu IDEyOAotICAgJTQgPSBhbGxvY2EgPDMyIHggaTMyPiwgYWxpZ24gMTI4Ci0gICAlNSA9IGFsbG9j YSA8MzIgeCBpMzI+LCBhbGlnbiAxMjgKLUBAIC00NzQ4LDcgKzQ3NDgsNyBAQCBkZWZpbmUgZHNv X2xvY2FsIDwzMiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIzMl9q U18oPDMyIHggaTMyPgotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2lu ZAotLWRlZmluZSBkc29fbG9jYWwgdm9pZCBAX19kb19wcmludF9jbShpOCosIGk4KiwgaTMyLCBp NjQsIGkzMiosIGkzMiwgaTMyKSAjMjMgIWRiZyAhMTUgewotK2RlZmluZSBpbnRlcm5hbCB2b2lk IEBfX2RvX3ByaW50X2NtKGk4KiwgaTgqLCBpMzIsIGk2NCwgaTMyKiwgaTMyLCBpMzIpICMyMyAh ZGJnICExNSB7Ci0gICAlOCA9IGFsbG9jYSBpOCosIGFsaWduIDQKLSAgICU5ID0gYWxsb2NhIGk4 KiwgYWxpZ24gNAotICAgJTEwID0gYWxsb2NhIGkzMiwgYWxpZ24gNAotQEAgLTQ5ODgsNyArNDk4 OCw3IEBAIGRlZmluZSBpbnRlcm5hbCB2b2lkIEBfWk43ZGV0YWlsczE2X2NtX3ByaW50X2Zvcm1h dElMaTEyOEVFRXYxNWNtX3N1cmZhY2VpbmRleGp1Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6 IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCB2b2lkIEBfX2RvX3ByaW50X2x6 KGkzMiwgaTgqLCBpMzIsIGk2NCwgaTMyKiwgaTMyLCBpMzIsIGkzMiwgaTMyKSAjMjYgIWRiZyAh MTE3IHsKLStkZWZpbmUgaW50ZXJuYWwgdm9pZCBAX19kb19wcmludF9seihpMzIsIGk4KiwgaTMy LCBpNjQsIGkzMiosIGkzMiwgaTMyLCBpMzIsIGkzMikgIzI2ICFkYmcgITExNyB7Ci0gICAlMTAg PSBhbGxvY2EgaTMyLCBhbGlnbiA0Ci0gICAlMTEgPSBhbGxvY2EgaTgqLCBhbGlnbiA0Ci0gICAl MTIgPSBhbGxvY2EgaTMyLCBhbGlnbiA0Ci1AQCAtNTA2OSw3ICs1MDY5LDcgQEAgZGVmaW5lIGRz b19sb2NhbCB2b2lkIEBfX2RvX3ByaW50X2x6KGkzMiwgaTgqLCBpMzIsIGk2NCwgaTMyKiwgaTMy LCBpMzIsIGkzMiwgaTMKLSAgICU2NyA9IGxvYWQgaTY0LCBpNjQqICUxMywgYWxpZ24gOCwgIWRi ZyAhMTU5LCAhdGJhYSAhMTkKLSAgICU2OCA9IGxvYWQgPDUgeCBpMzI+LCA8NSB4IGkzMj4qICUy MSwgYWxpZ24gMzIsICFkYmcgITE2MCwgIXRiYWEgITcKLSAgIGNhbGwgdm9pZCBAX1pOMTNWYXJ5 aW5nV3JpdGVyQzJFUmpSUEtqaXl1MkNNdmI1X2koJWNsYXNzLlZhcnlpbmdXcml0ZXIqICUyMywg aTMyKiBkZXJlZmVyZW5jZWFibGUoNCkgJTE5LCBpMzIqKiBkZXJlZmVyZW5jZWFibGUoNCkgJTE0 LCBpMzIgJTY2LCBpNjQgJTY3LCA8NSB4IGkzMj4gJTY4KSwgIWRiZyAhMTYxCi0tICAlNjkgPSBj YWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm8xNHN3aXRjaEVuY29kaW5nSTEzVW5pZm9ybVdy aXRlcjEzVmFyeWluZ1dyaXRlckVFYk5TXzhFbmNvZGluZ0VUX1QwXyhpOCBzaWduZXh0ICU2Miwg JWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsIGFsaWduIDMyICUyMiwgJWNsYXNzLlZhcnlpbmdX cml0ZXIqIGJ5dmFsIGFsaWduIDMyICUyMyksICFkYmcgITE2MgotKyAgJTY5ID0gY2FsbCB6ZXJv ZXh0IGkxIEBfWk45UHJpbnRJbmZvMTRzd2l0Y2hFbmNvZGluZ0kxM1VuaWZvcm1Xcml0ZXIxM1Zh cnlpbmdXcml0ZXJFRWJOU184RW5jb2RpbmdFVF9UMF8oaTggc2lnbmV4dCAlNjIsICVjbGFzcy5V bmlmb3JtV3JpdGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24gMzIgJTIyLCAl Y2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwoJWNsYXNzLlZhcnlpbmdXcml0ZXIpIGFsaWduIDMy ICUyMyksICFkYmcgITE2MgotICAgYnIgbGFiZWwgJTcwLCAhZGJnICExNjMKLSAKLSA7IDxsYWJl bD46NzA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsgcHJlZHMgPSAlNjAK LUBAIC01MTg3LDcgKzUxODcsNyBAQCBkZWZpbmUgaW50ZXJuYWwgPDUgeCBpMzI+IEBfWjE3Z2V0 X2F1eGlsaWFyeV9zdHJ2KCkgIzI4IGNvbWRhdCAhZGJnICExNzggewotIH0KLSAKLSA7IEZ1bmN0 aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2luZAotLWRlZmluZSBpbnRl cm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvMTRzd2l0Y2hFbmNvZGluZ0kxM1VuaWZvcm1X cml0ZXIxM1ZhcnlpbmdXcml0ZXJFRWJOU184RW5jb2RpbmdFVF9UMF8oaTggc2lnbmV4dCwgJWNs YXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsIGFsaWduIDMyLCAlY2xhc3MuVmFyeWluZ1dyaXRlciog Ynl2YWwgYWxpZ24gMzIpICMyNSBjb21kYXQgIWRiZyAhMTkxIHsKLStkZWZpbmUgaW50ZXJuYWwg emVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzE0c3dpdGNoRW5jb2RpbmdJMTNVbmlmb3JtV3JpdGVy MTNWYXJ5aW5nV3JpdGVyRUViTlNfOEVuY29kaW5nRVRfVDBfKGk4IHNpZ25leHQsICVjbGFzcy5V bmlmb3JtV3JpdGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24gMzIsICVjbGFz cy5WYXJ5aW5nV3JpdGVyKiBieXZhbCglY2xhc3MuVmFyeWluZ1dyaXRlcikgYWxpZ24gMzIpICMy NSBjb21kYXQgIWRiZyAhMTkxIHsKLSAgICU0ID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0gICAlNSA9 IGFsbG9jYSAlY2xhc3MuVW5pZm9ybVdyaXRlciwgYWxpZ24gMzIKLSAgICU2ID0gYWxsb2NhICVj bGFzcy5WYXJ5aW5nV3JpdGVyLCBhbGlnbiAzMgotQEAgLTUxOTYsNyArNTE5Niw3IEBAIGRlZmlu ZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvMTRzd2l0Y2hFbmNvZGluZ0kxM1Vu aWZvcm1Xcml0ZXIxM1ZhcnlpCi0gICAlOCA9IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIq ICU1IHRvIGk4KiwgIWRiZyAhMTk2Ci0gICAlOSA9IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0 ZXIqICUxIHRvIGk4KiwgIWRiZyAhMTk2Ci0gICBjYWxsIHZvaWQgQGxsdm0ubWVtY3B5LnAwaTgu cDBpOC5pMzIoaTgqIGFsaWduIDMyICU4LCBpOCogYWxpZ24gMzIgJTksIGkzMiA2NCwgaTEgZmFs c2UpLCAhZGJnICExOTYsICF0YmFhLnN0cnVjdCAhMTk3Ci0tICAlMTAgPSBjYWxsIHplcm9leHQg aTEgQF9aTjlQcmludEluZm8yMnN3aXRjaEVuY29kaW5nNFVuaWZvcm1JMTNVbmlmb3JtV3JpdGVy RUViTlNfOEVuY29kaW5nRVRfKGk4IHNpZ25leHQgJTcsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBi eXZhbCBhbGlnbiAzMiAlNSksICFkYmcgITE5OAotKyAgJTEwID0gY2FsbCB6ZXJvZXh0IGkxIEBf Wk45UHJpbnRJbmZvMjJzd2l0Y2hFbmNvZGluZzRVbmlmb3JtSTEzVW5pZm9ybVdyaXRlckVFYk5T XzhFbmNvZGluZ0VUXyhpOCBzaWduZXh0ICU3LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwo JWNsYXNzLlVuaWZvcm1Xcml0ZXIpIGFsaWduIDMyICU1KSwgIWRiZyAhMTk4Ci0gICBiciBpMSAl MTAsIGxhYmVsICUxNiwgbGFiZWwgJTExLCAhZGJnICExOTkKLSAKLSA7IDxsYWJlbD46MTE6ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsgcHJlZHMgPSAlMwotQEAgLTUyMDQs NyArNTIwNCw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvMTRz d2l0Y2hFbmNvZGluZ0kxM1VuaWZvcm1Xcml0ZXIxM1ZhcnlpCi0gICAlMTMgPSBiaXRjYXN0ICVj bGFzcy5WYXJ5aW5nV3JpdGVyKiAlNiB0byBpOCosICFkYmcgITIwMQotICAgJTE0ID0gYml0Y2Fz dCAlY2xhc3MuVmFyeWluZ1dyaXRlciogJTIgdG8gaTgqLCAhZGJnICEyMDEKLSAgIGNhbGwgdm9p ZCBAbGx2bS5tZW1jcHkucDBpOC5wMGk4LmkzMihpOCogYWxpZ24gMzIgJTEzLCBpOCogYWxpZ24g MzIgJTE0LCBpMzIgNjQsIGkxIGZhbHNlKSwgIWRiZyAhMjAxLCAhdGJhYS5zdHJ1Y3QgITE5Nwot LSAgJTE1ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvMjJzd2l0Y2hFbmNvZGluZzRW YXJ5aW5nSTEzVmFyeWluZ1dyaXRlckVFYk5TXzhFbmNvZGluZ0VUXyhpOCBzaWduZXh0ICUxMiwg JWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsIGFsaWduIDMyICU2KSwgIWRiZyAhMjAyCi0rICAl MTUgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm8yMnN3aXRjaEVuY29kaW5nNFZhcnlp bmdJMTNWYXJ5aW5nV3JpdGVyRUViTlNfOEVuY29kaW5nRVRfKGk4IHNpZ25leHQgJTEyLCAlY2xh c3MuVmFyeWluZ1dyaXRlciogYnl2YWwoJWNsYXNzLlZhcnlpbmdXcml0ZXIpIGFsaWduIDMyICU2 KSwgIWRiZyAhMjAyCi0gICBiciBsYWJlbCAlMTYsICFkYmcgITE5OQotIAotIDsgPGxhYmVsPjox NjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOyBwcmVkcyA9ICUxMSwgJTMK LUBAIC01Mjc5LDcgKzUyNzksNyBAQCBkZWZpbmUgaW50ZXJuYWwgdm9pZCBAX1pOMTNWYXJ5aW5n V3JpdGVyQzJFUmpSUEtqaXl1MkNNdmI1X2koJWNsYXNzLlZhcnlpbmdXcml0ZQotIH0KLSAKLSA7 IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgaTMy IEBfX251bV9jb3JlcygpICMyOSAhZGJnICEyMzYgewotK2RlZmluZSBpbnRlcm5hbCBpMzIgQF9f bnVtX2NvcmVzKCkgIzI5ICFkYmcgITIzNiB7Ci0gICByZXQgaTMyIC0xLCAhZGJnICEyMzcKLSB9 Ci0gCi1AQCAtODg2MCw3ICs4ODYwLDcgQEAgZGVjbGFyZSBkc29fbG9jYWwgdm9pZCBAX1pON2Rl dGFpbHMzN19fY21faW50cmluc2ljX2ltcGxfc3ZtX3NjYXR0ZXJfd3JpdGVJaUxpMUUKLSBkZWNs YXJlIHZvaWQgQGxsdm0uZ2VueC5zdm0uc2NhdHRlci52MWkxLnYxaTY0LnYxaTMyKDwxIHggaTE+ LCBpMzIsIDwxIHggaTY0PiwgPDEgeCBpMzI+KSAjMjcKLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBh bHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2luZAotLWRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0 IGkxIEBfWk45UHJpbnRJbmZvMjJzd2l0Y2hFbmNvZGluZzRVbmlmb3JtSTEzVW5pZm9ybVdyaXRl ckVFYk5TXzhFbmNvZGluZ0VUXyhpOCBzaWduZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2 YWwgYWxpZ24gMzIpICMyNSBjb21kYXQgIWRiZyAhMTY0NSB7Ci0rZGVmaW5lIGludGVybmFsIHpl cm9leHQgaTEgQF9aTjlQcmludEluZm8yMnN3aXRjaEVuY29kaW5nNFVuaWZvcm1JMTNVbmlmb3Jt V3JpdGVyRUViTlNfOEVuY29kaW5nRVRfKGk4IHNpZ25leHQsICVjbGFzcy5Vbmlmb3JtV3JpdGVy KiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24gMzIpICMyNSBjb21kYXQgIWRiZyAh MTY0NSB7Ci0gICAlMyA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgJTQgPSBhbGxvY2EgJWNsYXNz LlVuaWZvcm1Xcml0ZXIsIGFsaWduIDMyCi0gICAlNSA9IGFsbG9jYSAlInN0cnVjdC5QcmludElu Zm86OkVuY29kaW5nNFVuaWZvcm0iLCBhbGlnbiAxCi1AQCAtODg2OSw3ICs4ODY5LDcgQEAgZGVm aW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm8yMnN3aXRjaEVuY29kaW5nNFVu aWZvcm1JMTNVbmlmb3JtV3JpdGUKLSAgICU3ID0gYml0Y2FzdCAlY2xhc3MuVW5pZm9ybVdyaXRl ciogJTQgdG8gaTgqLCAhZGJnICExNjQ3Ci0gICAlOCA9IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1X cml0ZXIqICUxIHRvIGk4KiwgIWRiZyAhMTY0NwotICAgY2FsbCB2b2lkIEBsbHZtLm1lbWNweS5w MGk4LnAwaTguaTMyKGk4KiBhbGlnbiAzMiAlNywgaTgqIGFsaWduIDMyICU4LCBpMzIgNjQsIGkx IGZhbHNlKSwgIWRiZyAhMTY0NywgIXRiYWEuc3RydWN0ICExOTcKLS0gICU5ID0gY2FsbCB6ZXJv ZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNVbmlmb3JtV3Jp dGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUX1QwXyhpOCBzaWduZXh0 ICU2LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwgYWxpZ24gMzIgJTQsICUic3RydWN0LlBy aW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsIGFsaWduIDEgJTUpLCAhZGJnICExNjQ4 Ci0rICAlOSA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwxNHN3aXRjaEVu Y29kaW5nSTEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2Rp bmdFVF9UMF8oaTggc2lnbmV4dCAlNiwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsKCVjbGFz cy5Vbmlmb3JtV3JpdGVyKSBhbGlnbiAzMiAlNCwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGlu ZzRVbmlmb3JtIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIikg YWxpZ24gMSAlNSksICFkYmcgITE2NDgKLSAgIHJldCBpMSAlOSwgIWRiZyAhMTY0OQotIH0KLSAK LUBAIC04ODc3LDcgKzg4NzcsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVBy aW50SW5mbzIyc3dpdGNoRW5jb2Rpbmc0VW5pZm9ybUkxM1VuaWZvcm1Xcml0ZQotIGRlY2xhcmUg dm9pZCBAbGx2bS5tZW1jcHkucDBpOC5wMGk4LmkzMihpOCogbm9jYXB0dXJlIHdyaXRlb25seSwg aTgqIG5vY2FwdHVyZSByZWFkb25seSwgaTMyLCBpMSkgIzMyCi0gCi0gOyBGdW5jdGlvbiBBdHRy czogYWx3YXlzaW5saW5lIGlubGluZWhpbnQgbm91bndpbmQKLS1kZWZpbmUgaW50ZXJuYWwgemVy b2V4dCBpMSBAX1pOOVByaW50SW5mbzIyc3dpdGNoRW5jb2Rpbmc0VmFyeWluZ0kxM1ZhcnlpbmdX cml0ZXJFRWJOU184RW5jb2RpbmdFVF8oaTggc2lnbmV4dCwgJWNsYXNzLlZhcnlpbmdXcml0ZXIq IGJ5dmFsIGFsaWduIDMyKSAjMjUgY29tZGF0ICFkYmcgITE2NTAgewotK2RlZmluZSBpbnRlcm5h bCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvMjJzd2l0Y2hFbmNvZGluZzRWYXJ5aW5nSTEzVmFy eWluZ1dyaXRlckVFYk5TXzhFbmNvZGluZ0VUXyhpOCBzaWduZXh0LCAlY2xhc3MuVmFyeWluZ1dy aXRlciogYnl2YWwoJWNsYXNzLlZhcnlpbmdXcml0ZXIpIGFsaWduIDMyKSAjMjUgY29tZGF0ICFk YmcgITE2NTAgewotICAgJTMgPSBhbGxvY2EgaTgsIGFsaWduIDEKLSAgICU0ID0gYWxsb2NhICVj bGFzcy5WYXJ5aW5nV3JpdGVyLCBhbGlnbiAzMgotICAgJTUgPSBhbGxvY2EgJSJzdHJ1Y3QuUHJp bnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiwgYWxpZ24gMQotQEAgLTg4ODYsMTIgKzg4ODYsMTIg QEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm8yMnN3aXRjaEVuY29k aW5nNFZhcnlpbmdJMTNWYXJ5aW5nV3JpdGUKLSAgICU3ID0gYml0Y2FzdCAlY2xhc3MuVmFyeWlu Z1dyaXRlciogJTQgdG8gaTgqLCAhZGJnICExNjUyCi0gICAlOCA9IGJpdGNhc3QgJWNsYXNzLlZh cnlpbmdXcml0ZXIqICUxIHRvIGk4KiwgIWRiZyAhMTY1MgotICAgY2FsbCB2b2lkIEBsbHZtLm1l bWNweS5wMGk4LnAwaTguaTMyKGk4KiBhbGlnbiAzMiAlNywgaTgqIGFsaWduIDMyICU4LCBpMzIg NjQsIGkxIGZhbHNlKSwgIWRiZyAhMTY1MiwgIXRiYWEuc3RydWN0ICExOTcKLS0gICU5ID0gY2Fs bCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNWYXJ5 aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUX1QwXyhpOCBz aWduZXh0ICU2LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwgYWxpZ24gMzIgJTQsICUic3Ry dWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsIGFsaWduIDEgJTUpLCAhZGJn ICExNjUzCi0rICAlOSA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwxNHN3 aXRjaEVuY29kaW5nSTEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184 RW5jb2RpbmdFVF9UMF8oaTggc2lnbmV4dCAlNiwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFs KCVjbGFzcy5WYXJ5aW5nV3JpdGVyKSBhbGlnbiAzMiAlNCwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpF bmNvZGluZzRWYXJ5aW5nIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5 aW5nIikgYWxpZ24gMSAlNSksICFkYmcgITE2NTMKLSAgIHJldCBpMSAlOSwgIWRiZyAhMTY1NAot IH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2lu ZAotLWRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dp dGNoRW5jb2RpbmdJMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhF bmNvZGluZ0VUX1QwXyhpOCBzaWduZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwgYWxp Z24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsIGFsaWdu IDEpICMyNSBjb21kYXQgIWRiZyAhMTY1NSB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEg QF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1VuaWZvcm1Xcml0ZXJOU18x NkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVRfVDBfKGk4IHNpZ25leHQsICVjbGFz cy5Vbmlmb3JtV3JpdGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24gMzIsICUi c3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsKCUic3RydWN0LlByaW50 SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIpIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMTY1NSB7 Ci0gICAlNCA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2EgJWNsYXNzLlVuaWZv cm1Xcml0ZXIsIGFsaWduIDMyCi0gICAlNiA9IGFsbG9jYSAlInN0cnVjdC5QcmludEluZm86OkVu Y29kaW5nNFVuaWZvcm0iLCBhbGlnbiAxCi1AQCAtODkxNCw3ICs4OTE0LDcgQEAgZGVmaW5lIGlu dGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kx M1VuaWZvcm1Xcml0ZXIKLSAgICUyMiA9IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqICU1 IHRvIGk4KiwgIWRiZyAhMTY1NwotICAgJTIzID0gYml0Y2FzdCAlY2xhc3MuVW5pZm9ybVdyaXRl ciogJTEgdG8gaTgqLCAhZGJnICExNjU3Ci0gICBjYWxsIHZvaWQgQGxsdm0ubWVtY3B5LnAwaTgu cDBpOC5pMzIoaTgqIGFsaWduIDMyICUyMiwgaTgqIGFsaWduIDMyICUyMywgaTMyIDY0LCBpMSBm YWxzZSksICFkYmcgITE2NTcsICF0YmFhLnN0cnVjdCAhMTk3Ci0tICAlMjQgPSBjYWxsIHplcm9l eHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJYjEzVW5p Zm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4 IHNpZ25leHQgJTIxLCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwgYWxpZ24gMzIgJTUsICUi c3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsIGFsaWduIDEgJTYpLCAh ZGJnICExNjU4Ci0rICAlMjQgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWls MjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJYjEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5p Zm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTIxLCAlY2xhc3MuVW5pZm9y bVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1Xcml0ZXIpIGFsaWduIDMyICU1LCAlInN0cnVj dC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCglInN0cnVjdC5QcmludEluZm86 OkVuY29kaW5nNFVuaWZvcm0iKSBhbGlnbiAxICU2KSwgIWRiZyAhMTY1OAotICAgYnIgaTEgJTI0 LCBsYWJlbCAlNjAsIGxhYmVsICUyNSwgIWRiZyAhMTY1OQotIAotIDsgPGxhYmVsPjoyNTogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOyBwcmVkcyA9ICUzCi1AQCAtODkyMiw3 ICs4OTIyLDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0 YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1VuaWZvcm1Xcml0ZXIKLSAgICUyNyA9IGJpdGNhc3QgJWNs YXNzLlVuaWZvcm1Xcml0ZXIqICU3IHRvIGk4KiwgIWRiZyAhMTY2MQotICAgJTI4ID0gYml0Y2Fz dCAlY2xhc3MuVW5pZm9ybVdyaXRlciogJTEgdG8gaTgqLCAhZGJnICExNjYxCi0gICBjYWxsIHZv aWQgQGxsdm0ubWVtY3B5LnAwaTgucDBpOC5pMzIoaTgqIGFsaWduIDMyICUyNywgaTgqIGFsaWdu IDMyICUyOCwgaTMyIDY0LCBpMSBmYWxzZSksICFkYmcgITE2NjEsICF0YmFhLnN0cnVjdCAhMTk3 Ci0tICAlMjkgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlm UHJvcGVyRW5jb2RpbmdJaTEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJO U184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTI2LCAlY2xhc3MuVW5pZm9ybVdyaXRlciog Ynl2YWwgYWxpZ24gMzIgJTcsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIq IGJ5dmFsIGFsaWduIDEgJTgpLCAhZGJnICExNjYyCi0rICAlMjkgPSBjYWxsIHplcm9leHQgaTEg QF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJaTEzVW5pZm9ybVdy aXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25l eHQgJTI2LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1Xcml0ZXIp IGFsaWduIDMyICU3LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZh bCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKSBhbGlnbiAxICU4KSwgIWRi ZyAhMTY2MgotICAgYnIgaTEgJTI5LCBsYWJlbCAlNjAsIGxhYmVsICUzMCwgIWRiZyAhMTY2Mwot IAotIDsgPGxhYmVsPjozMDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOyBw cmVkcyA9ICUyNQotQEAgLTg5MzAsNyArODkzMCw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0 IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNVbmlmb3JtV3JpdGVy Ci0gICAlMzIgPSBiaXRjYXN0ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiAlOSB0byBpOCosICFkYmcg ITE2NjUKLSAgICUzMyA9IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqICUxIHRvIGk4Kiwg IWRiZyAhMTY2NQotICAgY2FsbCB2b2lkIEBsbHZtLm1lbWNweS5wMGk4LnAwaTguaTMyKGk4KiBh bGlnbiAzMiAlMzIsIGk4KiBhbGlnbiAzMiAlMzMsIGkzMiA2NCwgaTEgZmFsc2UpLCAhZGJnICEx NjY1LCAhdGJhYS5zdHJ1Y3QgITE5NwotLSAgJTM0ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJp bnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWoxM1VuaWZvcm1Xcml0ZXJOU18x NkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICUzMSwg JWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsIGFsaWduIDMyICU5LCAlInN0cnVjdC5QcmludElu Zm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCBhbGlnbiAxICUxMCksICFkYmcgITE2NjYKLSsg ICUzNCA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9w ZXJFbmNvZGluZ0lqMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhF bmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlMzEsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZh bCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24gMzIgJTksICUic3RydWN0LlByaW50SW5mbzo6 RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5p Zm9ybSIpIGFsaWduIDEgJTEwKSwgIWRiZyAhMTY2NgotICAgYnIgaTEgJTM0LCBsYWJlbCAlNjAs IGxhYmVsICUzNSwgIWRiZyAhMTY2NwotIAotIDsgPGxhYmVsPjozNTogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgOyBwcmVkcyA9ICUzMAotQEAgLTg5MzgsNyArODkzOCw3IEBA IGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNo RW5jb2RpbmdJMTNVbmlmb3JtV3JpdGVyCi0gICAlMzcgPSBiaXRjYXN0ICVjbGFzcy5Vbmlmb3Jt V3JpdGVyKiAlMTEgdG8gaTgqLCAhZGJnICExNjY5Ci0gICAlMzggPSBiaXRjYXN0ICVjbGFzcy5V bmlmb3JtV3JpdGVyKiAlMSB0byBpOCosICFkYmcgITE2NjkKLSAgIGNhbGwgdm9pZCBAbGx2bS5t ZW1jcHkucDBpOC5wMGk4LmkzMihpOCogYWxpZ24gMzIgJTM3LCBpOCogYWxpZ24gMzIgJTM4LCBp MzIgNjQsIGkxIGZhbHNlKSwgIWRiZyAhMTY2OSwgIXRiYWEuc3RydWN0ICExOTcKLS0gICUzOSA9 IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNv ZGluZ0lmMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGlu Z0VUMF9UMV8oaTggc2lnbmV4dCAlMzYsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBhbGln biAzMiAlMTEsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsIGFs aWduIDEgJTEyKSwgIWRiZyAhMTY3MAotKyAgJTM5ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJp bnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWYxM1VuaWZvcm1Xcml0ZXJOU18x NkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICUzNiwg JWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsKCVjbGFzcy5Vbmlmb3JtV3JpdGVyKSBhbGlnbiAz MiAlMTEsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsKCUic3Ry dWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIpIGFsaWduIDEgJTEyKSwgIWRiZyAhMTY3 MAotICAgYnIgaTEgJTM5LCBsYWJlbCAlNjAsIGxhYmVsICU0MCwgIWRiZyAhMTY3MQotIAotIDsg PGxhYmVsPjo0MDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOyBwcmVkcyA9 ICUzNQotQEAgLTg5NDYsNyArODk0Niw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBf Wk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNVbmlmb3JtV3JpdGVyCi0gICAl NDIgPSBiaXRjYXN0ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiAlMTMgdG8gaTgqLCAhZGJnICExNjcz Ci0gICAlNDMgPSBiaXRjYXN0ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiAlMSB0byBpOCosICFkYmcg ITE2NzMKLSAgIGNhbGwgdm9pZCBAbGx2bS5tZW1jcHkucDBpOC5wMGk4LmkzMihpOCogYWxpZ24g MzIgJTQyLCBpOCogYWxpZ24gMzIgJTQzLCBpMzIgNjQsIGkxIGZhbHNlKSwgIWRiZyAhMTY3Mywg IXRiYWEuc3RydWN0ICExOTcKLS0gICU0NCA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5m bzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0l4MTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNv ZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlNDEsICVjbGFz cy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBhbGlnbiAzMiAlMTMsICUic3RydWN0LlByaW50SW5mbzo6 RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsIGFsaWduIDEgJTE0KSwgIWRiZyAhMTY3NAotKyAgJTQ0 ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVu Y29kaW5nSXgxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29k aW5nRVQwX1QxXyhpOCBzaWduZXh0ICU0MSwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsKCVj bGFzcy5Vbmlmb3JtV3JpdGVyKSBhbGlnbiAzMiAlMTMsICUic3RydWN0LlByaW50SW5mbzo6RW5j b2Rpbmc0VW5pZm9ybSIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9y bSIpIGFsaWduIDEgJTE0KSwgIWRiZyAhMTY3NAotICAgYnIgaTEgJTQ0LCBsYWJlbCAlNjAsIGxh YmVsICU0NSwgIWRiZyAhMTY3NQotIAotIDsgPGxhYmVsPjo0NTogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgOyBwcmVkcyA9ICU0MAotQEAgLTg5NTQsNyArODk1NCw3IEBAIGRl ZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5j b2RpbmdJMTNVbmlmb3JtV3JpdGVyCi0gICAlNDcgPSBiaXRjYXN0ICVjbGFzcy5Vbmlmb3JtV3Jp dGVyKiAlMTUgdG8gaTgqLCAhZGJnICExNjc3Ci0gICAlNDggPSBiaXRjYXN0ICVjbGFzcy5Vbmlm b3JtV3JpdGVyKiAlMSB0byBpOCosICFkYmcgITE2NzcKLSAgIGNhbGwgdm9pZCBAbGx2bS5tZW1j cHkucDBpOC5wMGk4LmkzMihpOCogYWxpZ24gMzIgJTQ3LCBpOCogYWxpZ24gMzIgJTQ4LCBpMzIg NjQsIGkxIGZhbHNlKSwgIWRiZyAhMTY3NywgIXRiYWEuc3RydWN0ICExOTcKLS0gICU0OSA9IGNh bGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGlu Z0l5MTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VU MF9UMV8oaTggc2lnbmV4dCAlNDYsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBhbGlnbiAz MiAlMTUsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsIGFsaWdu IDEgJTE2KSwgIWRiZyAhMTY3OAotKyAgJTQ5ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJ bmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSXkxM1VuaWZvcm1Xcml0ZXJOU18xNkVu Y29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICU0NiwgJWNs YXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsKCVjbGFzcy5Vbmlmb3JtV3JpdGVyKSBhbGlnbiAzMiAl MTUsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsKCUic3RydWN0 LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIpIGFsaWduIDEgJTE2KSwgIWRiZyAhMTY3OAot ICAgYnIgaTEgJTQ5LCBsYWJlbCAlNjAsIGxhYmVsICU1MCwgIWRiZyAhMTY3OQotIAotIDsgPGxh YmVsPjo1MDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOyBwcmVkcyA9ICU0 NQotQEAgLTg5NjIsNyArODk2Miw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45 UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNVbmlmb3JtV3JpdGVyCi0gICAlNTIg PSBiaXRjYXN0ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiAlMTcgdG8gaTgqLCAhZGJnICExNjgxCi0g ICAlNTMgPSBiaXRjYXN0ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiAlMSB0byBpOCosICFkYmcgITE2 ODEKLSAgIGNhbGwgdm9pZCBAbGx2bS5tZW1jcHkucDBpOC5wMGk4LmkzMihpOCogYWxpZ24gMzIg JTUyLCBpOCogYWxpZ24gMzIgJTUzLCBpMzIgNjQsIGkxIGZhbHNlKSwgIWRiZyAhMTY4MSwgIXRi YWEuc3RydWN0ICExOTcKLS0gICU1NCA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZk ZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lkMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGlu ZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlNTEsICVjbGFzcy5V bmlmb3JtV3JpdGVyKiBieXZhbCBhbGlnbiAzMiAlMTcsICUic3RydWN0LlByaW50SW5mbzo6RW5j b2Rpbmc0VW5pZm9ybSIqIGJ5dmFsIGFsaWduIDEgJTE4KSwgIWRiZyAhMTY4MgotKyAgJTU0ID0g Y2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29k aW5nSWQxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5n RVQwX1QxXyhpOCBzaWduZXh0ICU1MSwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsKCVjbGFz cy5Vbmlmb3JtV3JpdGVyKSBhbGlnbiAzMiAlMTcsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rp bmc0VW5pZm9ybSIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIp IGFsaWduIDEgJTE4KSwgIWRiZyAhMTY4MgotICAgYnIgaTEgJTU0LCBsYWJlbCAlNjAsIGxhYmVs ICU1NSwgIWRiZyAhMTY4MwotIAotIDsgPGxhYmVsPjo1NTogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgOyBwcmVkcyA9ICU1MAotQEAgLTg5NzAsNyArODk3MCw3IEBAIGRlZmlu ZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2Rp bmdJMTNVbmlmb3JtV3JpdGVyCi0gICAlNTcgPSBiaXRjYXN0ICVjbGFzcy5Vbmlmb3JtV3JpdGVy KiAlMTkgdG8gaTgqLCAhZGJnICExNjg1Ci0gICAlNTggPSBiaXRjYXN0ICVjbGFzcy5Vbmlmb3Jt V3JpdGVyKiAlMSB0byBpOCosICFkYmcgITE2ODUKLSAgIGNhbGwgdm9pZCBAbGx2bS5tZW1jcHku cDBpOC5wMGk4LmkzMihpOCogYWxpZ24gMzIgJTU3LCBpOCogYWxpZ24gMzIgJTU4LCBpMzIgNjQs IGkxIGZhbHNlKSwgIWRiZyAhMTY4NSwgIXRiYWEuc3RydWN0ICExOTcKLS0gICU1OSA9IGNhbGwg emVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lQ djEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBf VDFfKGk4IHNpZ25leHQgJTU2LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwgYWxpZ24gMzIg JTE5LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCBhbGlnbiAx ICUyMCksICFkYmcgITE2ODYKLSsgICU1OSA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5m bzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lQdjEzVW5pZm9ybVdyaXRlck5TXzE2RW5j b2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTU2LCAlY2xh c3MuVW5pZm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1Xcml0ZXIpIGFsaWduIDMyICUx OSwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwoJSJzdHJ1Y3Qu UHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIikgYWxpZ24gMSAlMjApLCAhZGJnICExNjg2Ci0g ICBiciBsYWJlbCAlNjAsICFkYmcgITE2ODMKLSAKLSA7IDxsYWJlbD46NjA6ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDsgcHJlZHMgPSAlNTUsICU1MCwgJTQ1LCAlNDAsICUz NSwgJTMwLCAlMjUsICUzCi1AQCAtODk3OSw3ICs4OTc5LDcgQEAgZGVmaW5lIGludGVybmFsIHpl cm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1VuaWZvcm1X cml0ZXIKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogYWx3YXlzaW5saW5lIGlubGluZWhpbnQg bm91bndpbmQKLS1kZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRh aWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0liMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRV bmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1X cml0ZXIqIGJ5dmFsIGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZv cm0iKiBieXZhbCBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITE2ODggewotK2RlZmluZSBpbnRl cm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29k aW5nSWIxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5n RVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVu aWZvcm1Xcml0ZXIpIGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZv cm0iKiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKSBhbGlnbiAx KSAjMjUgY29tZGF0ICFkYmcgITE2ODggewotICAgJTQgPSBhbGxvY2EgaTEsIGFsaWduIDEKLSAg ICU1ID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0gICBzdG9yZSBpOCAlMCwgaTgqICU1LCBhbGlnbiAx LCAhdGJhYSAhMTkzCi1AQCAtOTAwNSw3ICs5MDA1LDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9l eHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJYjEzVW5p Zm8KLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogYWx3YXlzaW5saW5lIGlubGluZWhpbnQgbm91 bndpbmQKLS1kZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwy MWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lpMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlm b3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1Xcml0 ZXIqIGJ5dmFsIGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0i KiBieXZhbCBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITE2OTcgewotK2RlZmluZSBpbnRlcm5h bCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5n SWkxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQw X1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZv cm1Xcml0ZXIpIGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0i KiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKSBhbGlnbiAxKSAj MjUgY29tZGF0ICFkYmcgITE2OTcgewotICAgJTQgPSBhbGxvY2EgaTEsIGFsaWduIDEKLSAgICU1 ID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0gICBzdG9yZSBpOCAlMCwgaTgqICU1LCBhbGlnbiAxLCAh dGJhYSAhMTkzCi1AQCAtOTAzMSw3ICs5MDMxLDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQg aTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJaTEzVW5pZm8K LSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogYWx3YXlzaW5saW5lIGlubGluZWhpbnQgbm91bndp bmQKLS1kZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFw cGx5SWZQcm9wZXJFbmNvZGluZ0lqMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3Jt RUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIq IGJ5dmFsIGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBi eXZhbCBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITE3MDYgewotK2RlZmluZSBpbnRlcm5hbCB6 ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWox M1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1Qx XyhpOCBzaWduZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1X cml0ZXIpIGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBi eXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKSBhbGlnbiAxKSAjMjUg Y29tZGF0ICFkYmcgITE3MDYgewotICAgJTQgPSBhbGxvY2EgaTEsIGFsaWduIDEKLSAgICU1ID0g YWxsb2NhIGk4LCBhbGlnbiAxCi0gICBzdG9yZSBpOCAlMCwgaTgqICU1LCBhbGlnbiAxLCAhdGJh YSAhMTkzCi1AQCAtOTA1Nyw3ICs5MDU3LDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEg QF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJajEzVW5pZm8KLSB9 Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogYWx3YXlzaW5saW5lIGlubGluZWhpbnQgbm91bndpbmQK LS1kZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5 SWZQcm9wZXJFbmNvZGluZ0lmMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVF Yk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5 dmFsIGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZh bCBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITE3MTUgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJv ZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWYxM1Vu aWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhp OCBzaWduZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1Xcml0 ZXIpIGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZh bCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKSBhbGlnbiAxKSAjMjUgY29t ZGF0ICFkYmcgITE3MTUgewotICAgJTQgPSBhbGxvY2EgaTEsIGFsaWduIDEKLSAgICU1ID0gYWxs b2NhIGk4LCBhbGlnbiAxCi0gICBzdG9yZSBpOCAlMCwgaTgqICU1LCBhbGlnbiAxLCAhdGJhYSAh MTkzCi1AQCAtOTA4Myw3ICs5MDgzLDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9a TjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJZjEzVW5pZm8KLSB9Ci0g Ci0gOyBGdW5jdGlvbiBBdHRyczogYWx3YXlzaW5saW5lIGlubGluZWhpbnQgbm91bndpbmQKLS1k ZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQ cm9wZXJFbmNvZGluZ0l4MTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5T XzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFs IGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCBh bGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITE3MjQgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0 IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSXgxM1VuaWZv cm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBz aWduZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1Xcml0ZXIp IGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCgl InN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKSBhbGlnbiAxKSAjMjUgY29tZGF0 ICFkYmcgITE3MjQgewotICAgJTQgPSBhbGxvY2EgaTEsIGFsaWduIDEKLSAgICU1ID0gYWxsb2Nh IGk4LCBhbGlnbiAxCi0gICBzdG9yZSBpOCAlMCwgaTgqICU1LCBhbGlnbiAxLCAhdGJhYSAhMTkz Ci1AQCAtOTEwOSw3ICs5MTA5LDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQ cmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJeDEzVW5pZm8KLSB9Ci0gCi0g OyBGdW5jdGlvbiBBdHRyczogYWx3YXlzaW5saW5lIGlubGluZWhpbnQgbm91bndpbmQKLS1kZWZp bmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9w ZXJFbmNvZGluZ0l5MTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhF bmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsIGFs aWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCBhbGln biAxKSAjMjUgY29tZGF0ICFkYmcgITE3MzMgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkx IEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSXkxM1VuaWZvcm1X cml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWdu ZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1Xcml0ZXIpIGFs aWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCglInN0 cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKSBhbGlnbiAxKSAjMjUgY29tZGF0ICFk YmcgITE3MzMgewotICAgJTQgPSBhbGxvY2EgaTEsIGFsaWduIDEKLSAgICU1ID0gYWxsb2NhIGk4 LCBhbGlnbiAxCi0gICBzdG9yZSBpOCAlMCwgaTgqICU1LCBhbGlnbiAxLCAhdGJhYSAhMTkzCi1A QCAtOTEzNSw3ICs5MTM1LDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmlu dEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJeTEzVW5pZm8KLSB9Ci0gCi0gOyBG dW5jdGlvbiBBdHRyczogYWx3YXlzaW5saW5lIGlubGluZWhpbnQgbm91bndpbmQKLS1kZWZpbmUg aW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJF bmNvZGluZ0lkMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNv ZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsIGFsaWdu IDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCBhbGlnbiAx KSAjMjUgY29tZGF0ICFkYmcgITE3NDIgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBf Wk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWQxM1VuaWZvcm1Xcml0 ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0 LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1Xcml0ZXIpIGFsaWdu IDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCglInN0cnVj dC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKSBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcg ITE3NDIgewotICAgJTQgPSBhbGxvY2EgaTEsIGFsaWduIDEKLSAgICU1ID0gYWxsb2NhIGk4LCBh bGlnbiAxCi0gICBzdG9yZSBpOCAlMCwgaTgqICU1LCBhbGlnbiAxLCAhdGJhYSAhMTkzCi1AQCAt OTE2MSw3ICs5MTYxLDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludElu Zm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJZDEzVW5pZm8KLSB9Ci0gCi0gOyBGdW5j dGlvbiBBdHRyczogYWx3YXlzaW5saW5lIGlubGluZWhpbnQgbm91bndpbmQKLS1kZWZpbmUgaW50 ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNv ZGluZ0lQdjEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2Rp bmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBhbGlnbiAz MiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwgYWxpZ24gMSkg IzI1IGNvbWRhdCAhZGJnICExNzUxIHsKLStkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pO OVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lQdjEzVW5pZm9ybVdyaXRl ck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQs ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24g MzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsKCUic3RydWN0 LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIpIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAh MTc1MSB7Ci0gICAlNCA9IGFsbG9jYSBpMSwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2EgaTgsIGFs aWduIDEKLSAgIHN0b3JlIGk4ICUwLCBpOCogJTUsIGFsaWduIDEsICF0YmFhICExOTMKLUBAIC05 OTg0LDcgKzk5ODQsNyBAQCBkZWZpbmUgaW50ZXJuYWwgaTMyIEBfWk43ZGV0YWlsczE4X2NtX3By aW50X3R5cGVfb2NsSVB2RUVOU18xOFNIQURFUl9QUklOVEZfVFlQRQotIH0KLSAKLSA7IEZ1bmN0 aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2luZAotLWRlZmluZSBpbnRl cm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNW YXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUX1QwXyhp OCBzaWduZXh0LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwgYWxpZ24gMzIsICUic3RydWN0 LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsIGFsaWduIDEpICMyNSBjb21kYXQg IWRiZyAhMjA1NSB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82 ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlp bmdFRUViTlNfOEVuY29kaW5nRVRfVDBfKGk4IHNpZ25leHQsICVjbGFzcy5WYXJ5aW5nV3JpdGVy KiBieXZhbCglY2xhc3MuVmFyeWluZ1dyaXRlcikgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5m bzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0 VmFyeWluZyIpIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMjA1NSB7Ci0gICAlNCA9IGFsbG9j YSBpOCwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2EgJWNsYXNzLlZhcnlpbmdXcml0ZXIsIGFsaWdu IDMyCi0gICAlNiA9IGFsbG9jYSAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmci LCBhbGlnbiAxCi1AQCAtMTAwMDcsNyArMTAwMDcsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4 dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEzVmFyeWluZ1dyaXRl cgotICAgJTIyID0gYml0Y2FzdCAlY2xhc3MuVmFyeWluZ1dyaXRlciogJTUgdG8gaTgqLCAhZGJn ICEyMDU3Ci0gICAlMjMgPSBiaXRjYXN0ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiAlMSB0byBpOCos ICFkYmcgITIwNTcKLSAgIGNhbGwgdm9pZCBAbGx2bS5tZW1jcHkucDBpOC5wMGk4LmkzMihpOCog YWxpZ24gMzIgJTIyLCBpOCogYWxpZ24gMzIgJTIzLCBpMzIgNjQsIGkxIGZhbHNlKSwgIWRiZyAh MjA1NywgIXRiYWEuc3RydWN0ICExOTcKLS0gICUyNCA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVBy aW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0liMTNWYXJ5aW5nV3JpdGVyTlNf MTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlMjEs ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCBhbGlnbiAzMiAlNSwgJSJzdHJ1Y3QuUHJpbnRJ bmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwgYWxpZ24gMSAlNiksICFkYmcgITIwNTgKLSsg ICUyNCA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9w ZXJFbmNvZGluZ0liMTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhF bmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlMjEsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZh bCglY2xhc3MuVmFyeWluZ1dyaXRlcikgYWxpZ24gMzIgJTUsICUic3RydWN0LlByaW50SW5mbzo6 RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFy eWluZyIpIGFsaWduIDEgJTYpLCAhZGJnICEyMDU4Ci0gICBiciBpMSAlMjQsIGxhYmVsICU2MCwg bGFiZWwgJTI1LCAhZGJnICEyMDU5Ci0gCi0gOyA8bGFiZWw+OjI1OiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICA7IHByZWRzID0gJTMKLUBAIC0xMDAxNSw3ICsxMDAxNSw3IEBA IGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNo RW5jb2RpbmdJMTNWYXJ5aW5nV3JpdGVyCi0gICAlMjcgPSBiaXRjYXN0ICVjbGFzcy5WYXJ5aW5n V3JpdGVyKiAlNyB0byBpOCosICFkYmcgITIwNjEKLSAgICUyOCA9IGJpdGNhc3QgJWNsYXNzLlZh cnlpbmdXcml0ZXIqICUxIHRvIGk4KiwgIWRiZyAhMjA2MQotICAgY2FsbCB2b2lkIEBsbHZtLm1l bWNweS5wMGk4LnAwaTguaTMyKGk4KiBhbGlnbiAzMiAlMjcsIGk4KiBhbGlnbiAzMiAlMjgsIGkz MiA2NCwgaTEgZmFsc2UpLCAhZGJnICEyMDYxLCAhdGJhYS5zdHJ1Y3QgITE5NwotLSAgJTI5ID0g Y2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29k aW5nSWkxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5n RVQwX1QxXyhpOCBzaWduZXh0ICUyNiwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsIGFsaWdu IDMyICU3LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCBhbGln biAxICU4KSwgIWRiZyAhMjA2MgotKyAgJTI5ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJ bmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWkxM1ZhcnlpbmdXcml0ZXJOU18xNkVu Y29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICUyNiwgJWNs YXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5aW5nV3JpdGVyKSBhbGlnbiAzMiAl NywgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwoJSJzdHJ1Y3Qu UHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIikgYWxpZ24gMSAlOCksICFkYmcgITIwNjIKLSAg IGJyIGkxICUyOSwgbGFiZWwgJTYwLCBsYWJlbCAlMzAsICFkYmcgITIwNjMKLSAKLSA7IDxsYWJl bD46MzA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsgcHJlZHMgPSAlMjUK LUBAIC0xMDAyMyw3ICsxMDAyMyw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45 UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNWYXJ5aW5nV3JpdGVyCi0gICAlMzIg PSBiaXRjYXN0ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiAlOSB0byBpOCosICFkYmcgITIwNjUKLSAg ICUzMyA9IGJpdGNhc3QgJWNsYXNzLlZhcnlpbmdXcml0ZXIqICUxIHRvIGk4KiwgIWRiZyAhMjA2 NQotICAgY2FsbCB2b2lkIEBsbHZtLm1lbWNweS5wMGk4LnAwaTguaTMyKGk4KiBhbGlnbiAzMiAl MzIsIGk4KiBhbGlnbiAzMiAlMzMsIGkzMiA2NCwgaTEgZmFsc2UpLCAhZGJnICEyMDY1LCAhdGJh YS5zdHJ1Y3QgITE5NwotLSAgJTM0ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRl dGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWoxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5n NFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICUzMSwgJWNsYXNzLlZh cnlpbmdXcml0ZXIqIGJ5dmFsIGFsaWduIDMyICU5LCAlInN0cnVjdC5QcmludEluZm86OkVuY29k aW5nNFZhcnlpbmciKiBieXZhbCBhbGlnbiAxICUxMCksICFkYmcgITIwNjYKLSsgICUzNCA9IGNh bGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGlu Z0lqMTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VU MF9UMV8oaTggc2lnbmV4dCAlMzEsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCglY2xhc3Mu VmFyeWluZ1dyaXRlcikgYWxpZ24gMzIgJTksICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0 VmFyeWluZyIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIpIGFs aWduIDEgJTEwKSwgIWRiZyAhMjA2NgotICAgYnIgaTEgJTM0LCBsYWJlbCAlNjAsIGxhYmVsICUz NSwgIWRiZyAhMjA2NwotIAotIDsgPGxhYmVsPjozNTogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgOyBwcmVkcyA9ICUzMAotQEAgLTEwMDMxLDcgKzEwMDMxLDcgQEAgZGVmaW5l IGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGlu Z0kxM1ZhcnlpbmdXcml0ZXIKLSAgICUzNyA9IGJpdGNhc3QgJWNsYXNzLlZhcnlpbmdXcml0ZXIq ICUxMSB0byBpOCosICFkYmcgITIwNjkKLSAgICUzOCA9IGJpdGNhc3QgJWNsYXNzLlZhcnlpbmdX cml0ZXIqICUxIHRvIGk4KiwgIWRiZyAhMjA2OQotICAgY2FsbCB2b2lkIEBsbHZtLm1lbWNweS5w MGk4LnAwaTguaTMyKGk4KiBhbGlnbiAzMiAlMzcsIGk4KiBhbGlnbiAzMiAlMzgsIGkzMiA2NCwg aTEgZmFsc2UpLCAhZGJnICEyMDY5LCAhdGJhYS5zdHJ1Y3QgITE5NwotLSAgJTM5ID0gY2FsbCB6 ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWYx M1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1Qx XyhpOCBzaWduZXh0ICUzNiwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsIGFsaWduIDMyICUx MSwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwgYWxpZ24gMSAl MTIpLCAhZGJnICEyMDcwCi0rICAlMzkgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82 ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJZjEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rp bmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTM2LCAlY2xhc3Mu VmFyeWluZ1dyaXRlciogYnl2YWwoJWNsYXNzLlZhcnlpbmdXcml0ZXIpIGFsaWduIDMyICUxMSwg JSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwoJSJzdHJ1Y3QuUHJp bnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIikgYWxpZ24gMSAlMTIpLCAhZGJnICEyMDcwCi0gICBi ciBpMSAlMzksIGxhYmVsICU2MCwgbGFiZWwgJTQwLCAhZGJnICEyMDcxCi0gCi0gOyA8bGFiZWw+ OjQwOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7IHByZWRzID0gJTM1Ci1A QCAtMTAwMzksNyArMTAwMzksNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVBy aW50SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEzVmFyeWluZ1dyaXRlcgotICAgJTQyID0g Yml0Y2FzdCAlY2xhc3MuVmFyeWluZ1dyaXRlciogJTEzIHRvIGk4KiwgIWRiZyAhMjA3MwotICAg JTQzID0gYml0Y2FzdCAlY2xhc3MuVmFyeWluZ1dyaXRlciogJTEgdG8gaTgqLCAhZGJnICEyMDcz Ci0gICBjYWxsIHZvaWQgQGxsdm0ubWVtY3B5LnAwaTgucDBpOC5pMzIoaTgqIGFsaWduIDMyICU0 MiwgaTgqIGFsaWduIDMyICU0MywgaTMyIDY0LCBpMSBmYWxzZSksICFkYmcgITIwNzMsICF0YmFh LnN0cnVjdCAhMTk3Ci0tICAlNDQgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0 YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJeDEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0 VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTQxLCAlY2xhc3MuVmFy eWluZ1dyaXRlciogYnl2YWwgYWxpZ24gMzIgJTEzLCAlInN0cnVjdC5QcmludEluZm86OkVuY29k aW5nNFZhcnlpbmciKiBieXZhbCBhbGlnbiAxICUxNCksICFkYmcgITIwNzQKLSsgICU0NCA9IGNh bGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGlu Z0l4MTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VU MF9UMV8oaTggc2lnbmV4dCAlNDEsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCglY2xhc3Mu VmFyeWluZ1dyaXRlcikgYWxpZ24gMzIgJTEzLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5n NFZhcnlpbmciKiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKSBh bGlnbiAxICUxNCksICFkYmcgITIwNzQKLSAgIGJyIGkxICU0NCwgbGFiZWwgJTYwLCBsYWJlbCAl NDUsICFkYmcgITIwNzUKLSAKLSA7IDxsYWJlbD46NDU6ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDsgcHJlZHMgPSAlNDAKLUBAIC0xMDA0Nyw3ICsxMDA0Nyw3IEBAIGRlZmlu ZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2Rp bmdJMTNWYXJ5aW5nV3JpdGVyCi0gICAlNDcgPSBiaXRjYXN0ICVjbGFzcy5WYXJ5aW5nV3JpdGVy KiAlMTUgdG8gaTgqLCAhZGJnICEyMDc3Ci0gICAlNDggPSBiaXRjYXN0ICVjbGFzcy5WYXJ5aW5n V3JpdGVyKiAlMSB0byBpOCosICFkYmcgITIwNzcKLSAgIGNhbGwgdm9pZCBAbGx2bS5tZW1jcHku cDBpOC5wMGk4LmkzMihpOCogYWxpZ24gMzIgJTQ3LCBpOCogYWxpZ24gMzIgJTQ4LCBpMzIgNjQs IGkxIGZhbHNlKSwgIWRiZyAhMjA3NywgIXRiYWEuc3RydWN0ICExOTcKLS0gICU0OSA9IGNhbGwg emVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0l5 MTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9U MV8oaTggc2lnbmV4dCAlNDYsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCBhbGlnbiAzMiAl MTUsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsIGFsaWduIDEg JTE2KSwgIWRiZyAhMjA3OAotKyAgJTQ5ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZv NmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSXkxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29k aW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICU0NiwgJWNsYXNz LlZhcnlpbmdXcml0ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5aW5nV3JpdGVyKSBhbGlnbiAzMiAlMTUs ICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsKCUic3RydWN0LlBy aW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIpIGFsaWduIDEgJTE2KSwgIWRiZyAhMjA3OAotICAg YnIgaTEgJTQ5LCBsYWJlbCAlNjAsIGxhYmVsICU1MCwgIWRiZyAhMjA3OQotIAotIDsgPGxhYmVs Pjo1MDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOyBwcmVkcyA9ICU0NQot QEAgLTEwMDU1LDcgKzEwMDU1LDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQ cmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1ZhcnlpbmdXcml0ZXIKLSAgICU1MiA9 IGJpdGNhc3QgJWNsYXNzLlZhcnlpbmdXcml0ZXIqICUxNyB0byBpOCosICFkYmcgITIwODEKLSAg ICU1MyA9IGJpdGNhc3QgJWNsYXNzLlZhcnlpbmdXcml0ZXIqICUxIHRvIGk4KiwgIWRiZyAhMjA4 MQotICAgY2FsbCB2b2lkIEBsbHZtLm1lbWNweS5wMGk4LnAwaTguaTMyKGk4KiBhbGlnbiAzMiAl NTIsIGk4KiBhbGlnbiAzMiAlNTMsIGkzMiA2NCwgaTEgZmFsc2UpLCAhZGJnICEyMDgxLCAhdGJh YS5zdHJ1Y3QgITE5NwotLSAgJTU0ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRl dGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWQxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5n NFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICU1MSwgJWNsYXNzLlZh cnlpbmdXcml0ZXIqIGJ5dmFsIGFsaWduIDMyICUxNywgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNv ZGluZzRWYXJ5aW5nIiogYnl2YWwgYWxpZ24gMSAlMTgpLCAhZGJnICEyMDgyCi0rICAlNTQgPSBj YWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2Rp bmdJZDEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdF VDBfVDFfKGk4IHNpZ25leHQgJTUxLCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwoJWNsYXNz LlZhcnlpbmdXcml0ZXIpIGFsaWduIDMyICUxNywgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGlu ZzRWYXJ5aW5nIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIikg YWxpZ24gMSAlMTgpLCAhZGJnICEyMDgyCi0gICBiciBpMSAlNTQsIGxhYmVsICU2MCwgbGFiZWwg JTU1LCAhZGJnICEyMDgzCi0gCi0gOyA8bGFiZWw+OjU1OiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICA7IHByZWRzID0gJTUwCi1AQCAtMTAwNjMsNyArMTAwNjMsNyBAQCBkZWZp bmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29k aW5nSTEzVmFyeWluZ1dyaXRlcgotICAgJTU3ID0gYml0Y2FzdCAlY2xhc3MuVmFyeWluZ1dyaXRl ciogJTE5IHRvIGk4KiwgIWRiZyAhMjA4NQotICAgJTU4ID0gYml0Y2FzdCAlY2xhc3MuVmFyeWlu Z1dyaXRlciogJTEgdG8gaTgqLCAhZGJnICEyMDg1Ci0gICBjYWxsIHZvaWQgQGxsdm0ubWVtY3B5 LnAwaTgucDBpOC5pMzIoaTgqIGFsaWduIDMyICU1NywgaTgqIGFsaWduIDMyICU1OCwgaTMyIDY0 LCBpMSBmYWxzZSksICFkYmcgITIwODUsICF0YmFhLnN0cnVjdCAhMTk3Ci0tICAlNTkgPSBjYWxs IHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJ UHYxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQw X1QxXyhpOCBzaWduZXh0ICU1NiwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsIGFsaWduIDMy ICUxOSwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwgYWxpZ24g MSAlMjApLCAhZGJnICEyMDg2Ci0rICAlNTkgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludElu Zm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJUHYxM1ZhcnlpbmdXcml0ZXJOU18xNkVu Y29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICU1NiwgJWNs YXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5aW5nV3JpdGVyKSBhbGlnbiAzMiAl MTksICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsKCUic3RydWN0 LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIpIGFsaWduIDEgJTIwKSwgIWRiZyAhMjA4Ngot ICAgYnIgbGFiZWwgJTYwLCAhZGJnICEyMDgzCi0gCi0gOyA8bGFiZWw+OjYwOiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICA7IHByZWRzID0gJTU1LCAlNTAsICU0NSwgJTQwLCAl MzUsICUzMCwgJTI1LCAlMwotQEAgLTEwMDcyLDcgKzEwMDcyLDcgQEAgZGVmaW5lIGludGVybmFs IHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1Zhcnlp bmdXcml0ZXIKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogYWx3YXlzaW5saW5lIGlubGluZWhp bnQgbm91bndpbmQKLS1kZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZk ZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0liMTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGlu ZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlZhcnlp bmdXcml0ZXIqIGJ5dmFsIGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZh cnlpbmciKiBieXZhbCBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITIwODggewotK2RlZmluZSBp bnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVu Y29kaW5nSWIxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29k aW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwoJWNsYXNz LlZhcnlpbmdXcml0ZXIpIGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZh cnlpbmciKiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKSBhbGln biAxKSAjMjUgY29tZGF0ICFkYmcgITIwODggewotICAgJTQgPSBhbGxvY2EgaTEsIGFsaWduIDEK LSAgICU1ID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0gICBzdG9yZSBpOCAlMCwgaTgqICU1LCBhbGln biAxLCAhdGJhYSAhMTkzCi1AQCAtMTAwOTgsNyArMTAwOTgsNyBAQCBkZWZpbmUgaW50ZXJuYWwg emVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0li MTNWYXJ5aQotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGlu dCBub3Vud2luZAotLWRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRl dGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWkxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5n NFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVmFyeWlu Z1dyaXRlciogYnl2YWwgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFy eWluZyIqIGJ5dmFsIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMjA5NyB7Ci0rZGVmaW5lIGlu dGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5j b2RpbmdJaTEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2Rp bmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCglY2xhc3Mu VmFyeWluZ1dyaXRlcikgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFy eWluZyIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIpIGFsaWdu IDEpICMyNSBjb21kYXQgIWRiZyAhMjA5NyB7Ci0gICAlNCA9IGFsbG9jYSBpMSwgYWxpZ24gMQot ICAgJTUgPSBhbGxvY2EgaTgsIGFsaWduIDEKLSAgIHN0b3JlIGk4ICUwLCBpOCogJTUsIGFsaWdu IDEsICF0YmFhICExOTMKLUBAIC0xMDEyNCw3ICsxMDEyNCw3IEBAIGRlZmluZSBpbnRlcm5hbCB6 ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWkx M1ZhcnlpCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IGFsd2F5c2lubGluZSBpbmxpbmVoaW50 IG5vdW53aW5kCi0tZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0 YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJajEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0 VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5WYXJ5aW5n V3JpdGVyKiBieXZhbCBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5 aW5nIiogYnl2YWwgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICEyMTA2IHsKLStkZWZpbmUgaW50 ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNv ZGluZ0lqMTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGlu Z0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsKCVjbGFzcy5W YXJ5aW5nV3JpdGVyKSBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5 aW5nIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIikgYWxpZ24g MSkgIzI1IGNvbWRhdCAhZGJnICEyMTA2IHsKLSAgICU0ID0gYWxsb2NhIGkxLCBhbGlnbiAxCi0g ICAlNSA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgc3RvcmUgaTggJTAsIGk4KiAlNSwgYWxpZ24g MSwgIXRiYWEgITE5MwotQEAgLTEwMTUwLDcgKzEwMTUwLDcgQEAgZGVmaW5lIGludGVybmFsIHpl cm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJajEz VmFyeWkKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogYWx3YXlzaW5saW5lIGlubGluZWhpbnQg bm91bndpbmQKLS1kZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRh aWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lmMTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRW YXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlZhcnlpbmdX cml0ZXIqIGJ5dmFsIGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlp bmciKiBieXZhbCBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITIxMTUgewotK2RlZmluZSBpbnRl cm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29k aW5nSWYxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5n RVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwoJWNsYXNzLlZh cnlpbmdXcml0ZXIpIGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlp bmciKiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKSBhbGlnbiAx KSAjMjUgY29tZGF0ICFkYmcgITIxMTUgewotICAgJTQgPSBhbGxvY2EgaTEsIGFsaWduIDEKLSAg ICU1ID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0gICBzdG9yZSBpOCAlMCwgaTgqICU1LCBhbGlnbiAx LCAhdGJhYSAhMTkzCi1AQCAtMTAxNzYsNyArMTAxNzYsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVy b2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lmMTNW YXJ5aQotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBu b3Vud2luZAotLWRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFp bDIxYXBwbHlJZlByb3BlckVuY29kaW5nSXgxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZh cnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVmFyeWluZ1dy aXRlciogYnl2YWwgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWlu ZyIqIGJ5dmFsIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMjEyNCB7Ci0rZGVmaW5lIGludGVy bmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2Rp bmdJeDEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdF VDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCglY2xhc3MuVmFy eWluZ1dyaXRlcikgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWlu ZyIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIpIGFsaWduIDEp ICMyNSBjb21kYXQgIWRiZyAhMjEyNCB7Ci0gICAlNCA9IGFsbG9jYSBpMSwgYWxpZ24gMQotICAg JTUgPSBhbGxvY2EgaTgsIGFsaWduIDEKLSAgIHN0b3JlIGk4ICUwLCBpOCogJTUsIGFsaWduIDEs ICF0YmFhICExOTMKLUBAIC0xMDIwMiw3ICsxMDIwMiw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJv ZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSXgxM1Zh cnlpCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IGFsd2F5c2lubGluZSBpbmxpbmVoaW50IG5v dW53aW5kCi0tZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWls MjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJeTEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFy eWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5WYXJ5aW5nV3Jp dGVyKiBieXZhbCBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5n IiogYnl2YWwgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICEyMTMzIHsKLStkZWZpbmUgaW50ZXJu YWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGlu Z0l5MTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VU MF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5 aW5nV3JpdGVyKSBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5n IiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIikgYWxpZ24gMSkg IzI1IGNvbWRhdCAhZGJnICEyMTMzIHsKLSAgICU0ID0gYWxsb2NhIGkxLCBhbGlnbiAxCi0gICAl NSA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgc3RvcmUgaTggJTAsIGk4KiAlNSwgYWxpZ24gMSwg IXRiYWEgITE5MwotQEAgLTEwMjI4LDcgKzEwMjI4LDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9l eHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJeTEzVmFy eWkKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogYWx3YXlzaW5saW5lIGlubGluZWhpbnQgbm91 bndpbmQKLS1kZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwy MWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lkMTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5 aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlZhcnlpbmdXcml0 ZXIqIGJ5dmFsIGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmci KiBieXZhbCBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITIxNDIgewotK2RlZmluZSBpbnRlcm5h bCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5n SWQxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQw X1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwoJWNsYXNzLlZhcnlp bmdXcml0ZXIpIGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmci KiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKSBhbGlnbiAxKSAj MjUgY29tZGF0ICFkYmcgITIxNDIgewotICAgJTQgPSBhbGxvY2EgaTEsIGFsaWduIDEKLSAgICU1 ID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0gICBzdG9yZSBpOCAlMCwgaTgqICU1LCBhbGlnbiAxLCAh dGJhYSAhMTkzCi1AQCAtMTAyNTQsNyArMTAyNTQsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4 dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lkMTNWYXJ5 aQotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vu d2luZAotLWRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIx YXBwbHlJZlByb3BlckVuY29kaW5nSVB2MTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5 aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlZhcnlpbmdXcml0 ZXIqIGJ5dmFsIGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmci KiBieXZhbCBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITIxNTEgewotK2RlZmluZSBpbnRlcm5h bCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5n SVB2MTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VU MF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5 aW5nV3JpdGVyKSBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5n IiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIikgYWxpZ24gMSkg IzI1IGNvbWRhdCAhZGJnICEyMTUxIHsKLSAgICU0ID0gYWxsb2NhIGkxLCBhbGlnbiAxCi0gICAl NSA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgc3RvcmUgaTggJTAsIGk4KiAlNSwgYWxpZ24gMSwg IXRiYWEgITE5MwotZGlmZiAtLWdpdCBhL2J1aWx0aW5zL2J1aWx0aW5zLWNtLTY0LmxsIGIvYnVp bHRpbnMvYnVpbHRpbnMtY20tNjQubGwKLWluZGV4IDM5YTJkZDhiZS4uMzc1ZDAxYmVkIDEwMDY0 NAotLS0tIGEvYnVpbHRpbnMvYnVpbHRpbnMtY20tNjQubGwKLSsrKyBiL2J1aWx0aW5zL2J1aWx0 aW5zLWNtLTY0LmxsCi1AQCAtNTU3LDcgKzU1Nyw3IEBAICRfWk4xM1ZhcnlpbmdXcml0ZXIxMldy aXRlVmVjRWxlbUlQdkVFdnYgPSBjb21kYXQgYW55Ci0gQC5zdHIuMTAgPSBwcml2YXRlIHVubmFt ZWRfYWRkciBjb25zdGFudCBbOCB4IGk4XSBjIiUwMTZsbFhcMDAiLCBhbGlnbiAxCi0gCi0gOyBG dW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIHNpZ25l eHQgaTggQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZjYyhpOCBzaWduZXh0LCBpOCBzaWdu ZXh0KSAjMCB7Ci0rZGVmaW5lIGludGVybmFsIHNpZ25leHQgaTggQF9aMjRfX2NtX2ludHJpbnNp Y19pbXBsX3NkaXZjYyhpOCBzaWduZXh0LCBpOCBzaWduZXh0KSAjMCB7Ci0gICAlMyA9IGFsbG9j YSBpOCwgYWxpZ24gMQotICAgJTQgPSBhbGxvY2EgaTgsIGFsaWduIDEKLSAgICU1ID0gYWxsb2Nh IDwxIHggaTg+LCBhbGlnbiAxCi1AQCAtNjE4LDcgKzYxOCw3IEBAIGRlZmluZSBpbnRlcm5hbCA8 MSB4IGk4PiBAX1pON2RldGFpbHMxM19faW1wbF9kaXZyZW1JTGkxRUVFdTJDTXZiVF9fY1MxX1Mx X3UyQ012Ci0gZGVjbGFyZSA8MSB4IGk4PiBAbGx2bS5nZW54LnJkcmVnaW9uaS52MWk4LnYxaTgu aTE2KDwxIHggaTg+LCBpMzIsIGkzMiwgaTMyLCBpMTYsIGkzMikgIzIKLSAKLSA7IEZ1bmN0aW9u IEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDEgeCBpOD4gQF9a MjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmIxX2NTXyg8MSB4IGk4PiwgPDEgeCBpOD4p ICMwIHsKLStkZWZpbmUgaW50ZXJuYWwgPDEgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBs X3NkaXZ1MkNNdmIxX2NTXyg8MSB4IGk4PiwgPDEgeCBpOD4pICMwIHsKLSAgICUzID0gYWxsb2Nh IDwxIHggaTg+LCBhbGlnbiAxCi0gICAlNCA9IGFsbG9jYSA8MSB4IGk4PiwgYWxpZ24gMQotICAg JTUgPSBhbGxvY2EgPDEgeCBpOD4sIGFsaWduIDEKLUBAIC02MzQsNyArNjM0LDcgQEAgZGVmaW5l IGRzb19sb2NhbCA8MSB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjFf Y1NfKDwxIHggaTg+LCA8MQotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vu d2luZAotLWRlZmluZSBkc29fbG9jYWwgPDIgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBs X3NkaXZ1MkNNdmIyX2NTXyg8MiB4IGk4PiwgPDIgeCBpOD4pICMzIHsKLStkZWZpbmUgaW50ZXJu YWwgPDIgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmIyX2NTXyg8MiB4 IGk4PiwgPDIgeCBpOD4pICMzIHsKLSAgICUzID0gYWxsb2NhIDwyIHggaTg+LCBhbGlnbiAyCi0g ICAlNCA9IGFsbG9jYSA8MiB4IGk4PiwgYWxpZ24gMgotICAgJTUgPSBhbGxvY2EgPDIgeCBpOD4s IGFsaWduIDIKLUBAIC02ODAsNyArNjgwLDcgQEAgZGVmaW5lIGludGVybmFsIDwyIHggaTg+IEBf Wk43ZGV0YWlsczEzX19pbXBsX2RpdnJlbUlMaTJFRUV1MkNNdmJUX19jUzFfUzFfdTJDTXYKLSB9 Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xv Y2FsIDw0IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZiNF9jU18oPDQg eCBpOD4sIDw0IHggaTg+KSAjNSB7Ci0rZGVmaW5lIGludGVybmFsIDw0IHggaTg+IEBfWjI0X19j bV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZiNF9jU18oPDQgeCBpOD4sIDw0IHggaTg+KSAjNSB7 Ci0gICAlMyA9IGFsbG9jYSA8NCB4IGk4PiwgYWxpZ24gNAotICAgJTQgPSBhbGxvY2EgPDQgeCBp OD4sIGFsaWduIDQKLSAgICU1ID0gYWxsb2NhIDw0IHggaTg+LCBhbGlnbiA0Ci1AQCAtODE4LDcg KzgxOCw3IEBAIGRlZmluZSBpbnRlcm5hbCA8MTYgeCBpOD4gQF9aTjdkZXRhaWxzMTNfX2ltcGxf ZGl2cmVtSUxpMTZFRUV1MkNNdmJUX19jUzFfUzFfdTJDCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0 cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MzIgeCBpOD4gQF9aMjRf X2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmIzMl9jU18oPDMyIHggaTg+LCA8MzIgeCBpOD4p ICMxMSB7Ci0rZGVmaW5lIGludGVybmFsIDwzMiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2lt cGxfc2RpdnUyQ012YjMyX2NTXyg8MzIgeCBpOD4sIDwzMiB4IGk4PikgIzExIHsKLSAgICUzID0g YWxsb2NhIDwzMiB4IGk4PiwgYWxpZ24gMzIKLSAgICU0ID0gYWxsb2NhIDwzMiB4IGk4PiwgYWxp Z24gMzIKLSAgICU1ID0gYWxsb2NhIDwzMiB4IGk4PiwgYWxpZ24gMzIKLUBAIC04NjQsNyArODY0 LDcgQEAgZGVmaW5lIGludGVybmFsIDwzMiB4IGk4PiBAX1pON2RldGFpbHMxM19faW1wbF9kaXZy ZW1JTGkzMkVFRXUyQ012YlRfX2NTMV9TMV91MkMKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczog bm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIHNpZ25leHQgaTggQF9aMjRfX2Nt X2ludHJpbnNpY19pbXBsX3NyZW1jYyhpOCBzaWduZXh0LCBpOCBzaWduZXh0KSAjMCB7Ci0rZGVm aW5lIGludGVybmFsIHNpZ25leHQgaTggQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW1jYyhp OCBzaWduZXh0LCBpOCBzaWduZXh0KSAjMCB7Ci0gICAlMyA9IGFsbG9jYSBpOCwgYWxpZ24gMQot ICAgJTQgPSBhbGxvY2EgaTgsIGFsaWduIDEKLSAgICU1ID0gYWxsb2NhIDwxIHggaTg+LCBhbGln biAxCi1AQCAtODkwLDcgKzg5MCw3IEBAIGRlZmluZSBkc29fbG9jYWwgc2lnbmV4dCBpOCBAX1oy NF9fY21faW50cmluc2ljX2ltcGxfc3JlbWNjKGk4IHNpZ25leHQsIGk4IHNpZ25lCi0gfQotIAot IDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8 MSB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjFfY1NfKDwxIHggaTg+ LCA8MSB4IGk4PikgIzAgewotK2RlZmluZSBpbnRlcm5hbCA8MSB4IGk4PiBAX1oyNF9fY21faW50 cmluc2ljX2ltcGxfc3JlbXUyQ012YjFfY1NfKDwxIHggaTg+LCA8MSB4IGk4PikgIzAgewotICAg JTMgPSBhbGxvY2EgPDEgeCBpOD4sIGFsaWduIDEKLSAgICU0ID0gYWxsb2NhIDwxIHggaTg+LCBh bGlnbiAxCi0gICAlNSA9IGFsbG9jYSA8MSB4IGk4PiwgYWxpZ24gMQotQEAgLTkwNCw3ICs5MDQs NyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwxIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9z cmVtdTJDTXZiMV9jU18oPDEgeCBpOD4sIDwxCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5v aW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MiB4IGk4PiBAX1oyNF9fY21faW50 cmluc2ljX2ltcGxfc3JlbXUyQ012YjJfY1NfKDwyIHggaTg+LCA8MiB4IGk4PikgIzMgewotK2Rl ZmluZSBpbnRlcm5hbCA8MiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012 YjJfY1NfKDwyIHggaTg+LCA8MiB4IGk4PikgIzMgewotICAgJTMgPSBhbGxvY2EgPDIgeCBpOD4s IGFsaWduIDIKLSAgICU0ID0gYWxsb2NhIDwyIHggaTg+LCBhbGlnbiAyCi0gICAlNSA9IGFsbG9j YSA8MiB4IGk4PiwgYWxpZ24gMgotQEAgLTkxOCw3ICs5MTgsNyBAQCBkZWZpbmUgZHNvX2xvY2Fs IDwyIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMl9jU18oPDIgeCBp OD4sIDwyCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVm aW5lIGRzb19sb2NhbCA8NCB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012 YjRfY1NfKDw0IHggaTg+LCA8NCB4IGk4PikgIzUgewotK2RlZmluZSBpbnRlcm5hbCA8NCB4IGk4 PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjRfY1NfKDw0IHggaTg+LCA8NCB4 IGk4PikgIzUgewotICAgJTMgPSBhbGxvY2EgPDQgeCBpOD4sIGFsaWduIDQKLSAgICU0ID0gYWxs b2NhIDw0IHggaTg+LCBhbGlnbiA0Ci0gICAlNSA9IGFsbG9jYSA8NCB4IGk4PiwgYWxpZ24gNAot QEAgLTkzMiw3ICs5MzIsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDw0IHggaTg+IEBfWjI0X19jbV9p bnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiNF9jU18oPDQgeCBpOD4sIDw0Ci0gfQotIAotIDsgRnVu Y3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8OCB4IGk4 PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjhfY1NfKDw4IHggaTg+LCA8OCB4 IGk4PikgIzcgewotK2RlZmluZSBpbnRlcm5hbCA8OCB4IGk4PiBAX1oyNF9fY21faW50cmluc2lj X2ltcGxfc3JlbXUyQ012YjhfY1NfKDw4IHggaTg+LCA8OCB4IGk4PikgIzcgewotICAgJTMgPSBh bGxvY2EgPDggeCBpOD4sIGFsaWduIDgKLSAgICU0ID0gYWxsb2NhIDw4IHggaTg+LCBhbGlnbiA4 Ci0gICAlNSA9IGFsbG9jYSA8OCB4IGk4PiwgYWxpZ24gOAotQEAgLTk0Niw3ICs5NDYsNyBAQCBk ZWZpbmUgZHNvX2xvY2FsIDw4IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJD TXZiOF9jU18oPDggeCBpOD4sIDw4Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5l IG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MTYgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNp Y19pbXBsX3NyZW11MkNNdmIxNl9jU18oPDE2IHggaTg+LCA8MTYgeCBpOD4pICM5IHsKLStkZWZp bmUgaW50ZXJuYWwgPDE2IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZi MTZfY1NfKDwxNiB4IGk4PiwgPDE2IHggaTg+KSAjOSB7Ci0gICAlMyA9IGFsbG9jYSA8MTYgeCBp OD4sIGFsaWduIDE2Ci0gICAlNCA9IGFsbG9jYSA8MTYgeCBpOD4sIGFsaWduIDE2Ci0gICAlNSA9 IGFsbG9jYSA8MTYgeCBpOD4sIGFsaWduIDE2Ci1AQCAtOTYwLDcgKzk2MCw3IEBAIGRlZmluZSBk c29fbG9jYWwgPDE2IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMTZf Y1NfKDwxNiB4IGk4PiwKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndp bmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwzMiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxf c3JlbXUyQ012YjMyX2NTXyg8MzIgeCBpOD4sIDwzMiB4IGk4PikgIzExIHsKLStkZWZpbmUgaW50 ZXJuYWwgPDMyIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMzJfY1Nf KDwzMiB4IGk4PiwgPDMyIHggaTg+KSAjMTEgewotICAgJTMgPSBhbGxvY2EgPDMyIHggaTg+LCBh bGlnbiAzMgotICAgJTQgPSBhbGxvY2EgPDMyIHggaTg+LCBhbGlnbiAzMgotICAgJTUgPSBhbGxv Y2EgPDMyIHggaTg+LCBhbGlnbiAzMgotQEAgLTk3NCw3ICs5NzQsNyBAQCBkZWZpbmUgZHNvX2xv Y2FsIDwzMiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjMyX2NTXyg8 MzIgeCBpOD4sCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0t ZGVmaW5lIGRzb19sb2NhbCBzaWduZXh0IGkxNiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2Rp dnNzKGkxNiBzaWduZXh0LCBpMTYgc2lnbmV4dCkgIzMgewotK2RlZmluZSBpbnRlcm5hbCBzaWdu ZXh0IGkxNiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnNzKGkxNiBzaWduZXh0LCBpMTYg c2lnbmV4dCkgIzMgewotICAgJTMgPSBhbGxvY2EgaTE2LCBhbGlnbiAyCi0gICAlNCA9IGFsbG9j YSBpMTYsIGFsaWduIDIKLSAgICU1ID0gYWxsb2NhIDwxIHggaTE2PiwgYWxpZ24gMgotQEAgLTEw NTgsNyArMTA1OCw3IEBAIGRlZmluZSBpbnRlcm5hbCA8MSB4IGkxNj4gQF9aTjdkZXRhaWxzMTNf X2ltcGxfZGl2cmVtSUxpMUVFRXUyQ012YlRfX3NTMV9TMV91MkNNCi0gZGVjbGFyZSA8MSB4IGkx Nj4gQGxsdm0uZ2VueC5yZHJlZ2lvbmkudjFpMTYudjFpMTYuaTE2KDwxIHggaTE2PiwgaTMyLCBp MzIsIGkzMiwgaTE2LCBpMzIpICMyCi0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91 bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwxIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2lt cGxfc2RpdnUyQ012YjFfc1NfKDwxIHggaTE2PiwgPDEgeCBpMTY+KSAjMyB7Ci0rZGVmaW5lIGlu dGVybmFsIDwxIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjFfc1Nf KDwxIHggaTE2PiwgPDEgeCBpMTY+KSAjMyB7Ci0gICAlMyA9IGFsbG9jYSA8MSB4IGkxNj4sIGFs aWduIDIKLSAgICU0ID0gYWxsb2NhIDwxIHggaTE2PiwgYWxpZ24gMgotICAgJTUgPSBhbGxvY2Eg PDEgeCBpMTY+LCBhbGlnbiAyCi1AQCAtMTA3NCw3ICsxMDc0LDcgQEAgZGVmaW5lIGRzb19sb2Nh bCA8MSB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmIxX3NTXyg8MSB4 IGkxNj4sIDwKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1k ZWZpbmUgZHNvX2xvY2FsIDwyIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUy Q012YjJfc1NfKDwyIHggaTE2PiwgPDIgeCBpMTY+KSAjNSB7Ci0rZGVmaW5lIGludGVybmFsIDwy IHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjJfc1NfKDwyIHggaTE2 PiwgPDIgeCBpMTY+KSAjNSB7Ci0gICAlMyA9IGFsbG9jYSA8MiB4IGkxNj4sIGFsaWduIDQKLSAg ICU0ID0gYWxsb2NhIDwyIHggaTE2PiwgYWxpZ24gNAotICAgJTUgPSBhbGxvY2EgPDIgeCBpMTY+ LCBhbGlnbiA0Ci1AQCAtMTE0Myw3ICsxMTQzLDcgQEAgZGVmaW5lIGludGVybmFsIDwyIHggaTE2 PiBAX1pON2RldGFpbHMxM19faW1wbF9kaXZyZW1JTGkyRUVFdTJDTXZiVF9fc1MxX1MxX3UyQ00K LSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNv X2xvY2FsIDw0IHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjRfc1Nf KDw0IHggaTE2PiwgPDQgeCBpMTY+KSAjNyB7Ci0rZGVmaW5lIGludGVybmFsIDw0IHggaTE2PiBA X1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjRfc1NfKDw0IHggaTE2PiwgPDQgeCBp MTY+KSAjNyB7Ci0gICAlMyA9IGFsbG9jYSA8NCB4IGkxNj4sIGFsaWduIDgKLSAgICU0ID0gYWxs b2NhIDw0IHggaTE2PiwgYWxpZ24gOAotICAgJTUgPSBhbGxvY2EgPDQgeCBpMTY+LCBhbGlnbiA4 Ci1AQCAtMTM1MCw3ICsxMzUwLDcgQEAgZGVmaW5lIGludGVybmFsIDwxNiB4IGkxNj4gQF9aTjdk ZXRhaWxzMTNfX2ltcGxfZGl2cmVtSUxpMTZFRUV1MkNNdmJUX19zUzFfUzFfdTIKLSB9Ci0gCi0g OyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwz MiB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmIzMl9zU18oPDMyIHgg aTE2PiwgPDMyIHggaTE2PikgIzEzIHsKLStkZWZpbmUgaW50ZXJuYWwgPDMyIHggaTE2PiBAX1oy NF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjMyX3NTXyg8MzIgeCBpMTY+LCA8MzIgeCBp MTY+KSAjMTMgewotICAgJTMgPSBhbGxvY2EgPDMyIHggaTE2PiwgYWxpZ24gNjQKLSAgICU0ID0g YWxsb2NhIDwzMiB4IGkxNj4sIGFsaWduIDY0Ci0gICAlNSA9IGFsbG9jYSA8MzIgeCBpMTY+LCBh bGlnbiA2NAotQEAgLTE0MTksNyArMTQxOSw3IEBAIGRlZmluZSBpbnRlcm5hbCA8MzIgeCBpMTY+ IEBfWk43ZGV0YWlsczEzX19pbXBsX2RpdnJlbUlMaTMyRUVFdTJDTXZiVF9fc1MxX1MxX3UyCi0g fQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19s b2NhbCBzaWduZXh0IGkxNiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXNzKGkxNiBzaWdu ZXh0LCBpMTYgc2lnbmV4dCkgIzMgewotK2RlZmluZSBpbnRlcm5hbCBzaWduZXh0IGkxNiBAX1oy NF9fY21faW50cmluc2ljX2ltcGxfc3JlbXNzKGkxNiBzaWduZXh0LCBpMTYgc2lnbmV4dCkgIzMg ewotICAgJTMgPSBhbGxvY2EgaTE2LCBhbGlnbiAyCi0gICAlNCA9IGFsbG9jYSBpMTYsIGFsaWdu IDIKLSAgICU1ID0gYWxsb2NhIDwxIHggaTE2PiwgYWxpZ24gMgotQEAgLTE0NDUsNyArMTQ0NSw3 IEBAIGRlZmluZSBkc29fbG9jYWwgc2lnbmV4dCBpMTYgQF9aMjRfX2NtX2ludHJpbnNpY19pbXBs X3NyZW1zcyhpMTYgc2lnbmV4dCwgaTE2IHNpCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5v aW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MSB4IGkxNj4gQF9aMjRfX2NtX2lu dHJpbnNpY19pbXBsX3NyZW11MkNNdmIxX3NTXyg8MSB4IGkxNj4sIDwxIHggaTE2PikgIzMgewot K2RlZmluZSBpbnRlcm5hbCA8MSB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11 MkNNdmIxX3NTXyg8MSB4IGkxNj4sIDwxIHggaTE2PikgIzMgewotICAgJTMgPSBhbGxvY2EgPDEg eCBpMTY+LCBhbGlnbiAyCi0gICAlNCA9IGFsbG9jYSA8MSB4IGkxNj4sIGFsaWduIDIKLSAgICU1 ID0gYWxsb2NhIDwxIHggaTE2PiwgYWxpZ24gMgotQEAgLTE0NTksNyArMTQ1OSw3IEBAIGRlZmlu ZSBkc29fbG9jYWwgPDEgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZi MV9zU18oPDEgeCBpMTY+LCA8Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5v dW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MiB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19p bXBsX3NyZW11MkNNdmIyX3NTXyg8MiB4IGkxNj4sIDwyIHggaTE2PikgIzUgewotK2RlZmluZSBp bnRlcm5hbCA8MiB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIyX3NT Xyg8MiB4IGkxNj4sIDwyIHggaTE2PikgIzUgewotICAgJTMgPSBhbGxvY2EgPDIgeCBpMTY+LCBh bGlnbiA0Ci0gICAlNCA9IGFsbG9jYSA8MiB4IGkxNj4sIGFsaWduIDQKLSAgICU1ID0gYWxsb2Nh IDwyIHggaTE2PiwgYWxpZ24gNAotQEAgLTE0NzMsNyArMTQ3Myw3IEBAIGRlZmluZSBkc29fbG9j YWwgPDIgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMl9zU18oPDIg eCBpMTY+LCA8Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0t ZGVmaW5lIGRzb19sb2NhbCA8NCB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11 MkNNdmI0X3NTXyg8NCB4IGkxNj4sIDw0IHggaTE2PikgIzcgewotK2RlZmluZSBpbnRlcm5hbCA8 NCB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmI0X3NTXyg8NCB4IGkx Nj4sIDw0IHggaTE2PikgIzcgewotICAgJTMgPSBhbGxvY2EgPDQgeCBpMTY+LCBhbGlnbiA4Ci0g ICAlNCA9IGFsbG9jYSA8NCB4IGkxNj4sIGFsaWduIDgKLSAgICU1ID0gYWxsb2NhIDw0IHggaTE2 PiwgYWxpZ24gOAotQEAgLTE0ODcsNyArMTQ4Nyw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDQgeCBp MTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiNF9zU18oPDQgeCBpMTY+LCA8 Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRz b19sb2NhbCA8OCB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmI4X3NT Xyg8OCB4IGkxNj4sIDw4IHggaTE2PikgIzkgewotK2RlZmluZSBpbnRlcm5hbCA8OCB4IGkxNj4g QF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmI4X3NTXyg8OCB4IGkxNj4sIDw4IHgg aTE2PikgIzkgewotICAgJTMgPSBhbGxvY2EgPDggeCBpMTY+LCBhbGlnbiAxNgotICAgJTQgPSBh bGxvY2EgPDggeCBpMTY+LCBhbGlnbiAxNgotICAgJTUgPSBhbGxvY2EgPDggeCBpMTY+LCBhbGln biAxNgotQEAgLTE1MDEsNyArMTUwMSw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDggeCBpMTY+IEBf WjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiOF9zU18oPDggeCBpMTY+LCA8Ci0gfQot IAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2Nh bCA8MTYgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMTZfc1NfKDwx NiB4IGkxNj4sIDwxNiB4IGkxNj4pICMxMSB7Ci0rZGVmaW5lIGludGVybmFsIDwxNiB4IGkxNj4g QF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIxNl9zU18oPDE2IHggaTE2PiwgPDE2 IHggaTE2PikgIzExIHsKLSAgICUzID0gYWxsb2NhIDwxNiB4IGkxNj4sIGFsaWduIDMyCi0gICAl NCA9IGFsbG9jYSA8MTYgeCBpMTY+LCBhbGlnbiAzMgotICAgJTUgPSBhbGxvY2EgPDE2IHggaTE2 PiwgYWxpZ24gMzIKLUBAIC0xNTE1LDcgKzE1MTUsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwxNiB4 IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIxNl9zU18oPDE2IHggaTE2 PgotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBk c29fbG9jYWwgPDMyIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjMy X3NTXyg8MzIgeCBpMTY+LCA8MzIgeCBpMTY+KSAjMTMgewotK2RlZmluZSBpbnRlcm5hbCA8MzIg eCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMzJfc1NfKDwzMiB4IGkx Nj4sIDwzMiB4IGkxNj4pICMxMyB7Ci0gICAlMyA9IGFsbG9jYSA8MzIgeCBpMTY+LCBhbGlnbiA2 NAotICAgJTQgPSBhbGxvY2EgPDMyIHggaTE2PiwgYWxpZ24gNjQKLSAgICU1ID0gYWxsb2NhIDwz MiB4IGkxNj4sIGFsaWduIDY0Ci1AQCAtMTUyOSw3ICsxNTI5LDcgQEAgZGVmaW5lIGRzb19sb2Nh bCA8MzIgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMzJfc1NfKDwz MiB4IGkxNj4KLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1k ZWZpbmUgZHNvX2xvY2FsIGkzMiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdmlpKGkzMiwg aTMyKSAjMTQgewotK2RlZmluZSBpbnRlcm5hbCBpMzIgQF9aMjRfX2NtX2ludHJpbnNpY19pbXBs X3NkaXZpaShpMzIsIGkzMikgIzE0IHsKLSAgICUzID0gYWxsb2NhIGkzMiwgYWxpZ24gNAotICAg JTQgPSBhbGxvY2EgaTMyLCBhbGlnbiA0Ci0gICAlNSA9IGFsbG9jYSA8MSB4IGkzMj4sIGFsaWdu IDQKLUBAIC0xNzMwLDcgKzE3MzAsNyBAQCBkZWZpbmUgaW50ZXJuYWwgPDEgeCBpMzI+IEBfWk43 ZGV0YWlsczEzX19pbXBsX2RpdnJlbUlMaTFFRUV1MkNNdmJUX19pUzFfUzFfdTJDTQotIGRlY2xh cmUgPDEgeCBpMzI+IEBsbHZtLmdlbngucmRyZWdpb25pLnYxaTMyLnYxaTMyLmkxNig8MSB4IGkz Mj4sIGkzMiwgaTMyLCBpMzIsIGkxNiwgaTMyKSAjMgotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5v aW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MSB4IGkzMj4gQF9aMjRfX2NtX2lu dHJpbnNpY19pbXBsX3NkaXZ1MkNNdmIxX2lTXyg8MSB4IGkzMj4sIDwxIHggaTMyPikgIzE0IHsK LStkZWZpbmUgaW50ZXJuYWwgPDEgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2 dTJDTXZiMV9pU18oPDEgeCBpMzI+LCA8MSB4IGkzMj4pICMxNCB7Ci0gICAlMyA9IGFsbG9jYSA8 MSB4IGkzMj4sIGFsaWduIDQKLSAgICU0ID0gYWxsb2NhIDwxIHggaTMyPiwgYWxpZ24gNAotICAg JTUgPSBhbGxvY2EgPDEgeCBpMzI+LCBhbGlnbiA0Ci1AQCAtMTc0Niw3ICsxNzQ2LDcgQEAgZGVm aW5lIGRzb19sb2NhbCA8MSB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNN dmIxX2lTXyg8MSB4IGkzMj4sIDwKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUg bm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwyIHggaTMyPiBAX1oyNF9fY21faW50cmluc2lj X2ltcGxfc2RpdnUyQ012YjJfaVNfKDwyIHggaTMyPiwgPDIgeCBpMzI+KSAjMTUgewotK2RlZmlu ZSBpbnRlcm5hbCA8MiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmIy X2lTXyg8MiB4IGkzMj4sIDwyIHggaTMyPikgIzE1IHsKLSAgICUzID0gYWxsb2NhIDwyIHggaTMy PiwgYWxpZ24gOAotICAgJTQgPSBhbGxvY2EgPDIgeCBpMzI+LCBhbGlnbiA4Ci0gICAlNSA9IGFs bG9jYSA8MiB4IGkzMj4sIGFsaWduIDgKLUBAIC0xOTMyLDcgKzE5MzIsNyBAQCBkZWZpbmUgaW50 ZXJuYWwgPDIgeCBpMzI+IEBfWk43ZGV0YWlsczEzX19pbXBsX2RpdnJlbUlMaTJFRUV1MkNNdmJU X19pUzFfUzFfdTJDTQotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2lu ZAotLWRlZmluZSBkc29fbG9jYWwgPDQgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9z ZGl2dTJDTXZiNF9pU18oPDQgeCBpMzI+LCA8NCB4IGkzMj4pICMxNiB7Ci0rZGVmaW5lIGludGVy bmFsIDw0IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjRfaVNfKDw0 IHggaTMyPiwgPDQgeCBpMzI+KSAjMTYgewotICAgJTMgPSBhbGxvY2EgPDQgeCBpMzI+LCBhbGln biAxNgotICAgJTQgPSBhbGxvY2EgPDQgeCBpMzI+LCBhbGlnbiAxNgotICAgJTUgPSBhbGxvY2Eg PDQgeCBpMzI+LCBhbGlnbiAxNgotQEAgLTI0OTAsNyArMjQ5MCw3IEBAIGRlZmluZSBpbnRlcm5h bCA8MTYgeCBpMzI+IEBfWk43ZGV0YWlsczEzX19pbXBsX2RpdnJlbUlMaTE2RUVFdTJDTXZiVF9f aVMxX1MxX3UyCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0t ZGVmaW5lIGRzb19sb2NhbCA8MzIgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2 dTJDTXZiMzJfaVNfKDwzMiB4IGkzMj4sIDwzMiB4IGkzMj4pICMxOSB7Ci0rZGVmaW5lIGludGVy bmFsIDwzMiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmIzMl9pU18o PDMyIHggaTMyPiwgPDMyIHggaTMyPikgIzE5IHsKLSAgICUzID0gYWxsb2NhIDwzMiB4IGkzMj4s IGFsaWduIDEyOAotICAgJTQgPSBhbGxvY2EgPDMyIHggaTMyPiwgYWxpZ24gMTI4Ci0gICAlNSA9 IGFsbG9jYSA8MzIgeCBpMzI+LCBhbGlnbiAxMjgKLUBAIC0yNjc2LDcgKzI2NzYsNyBAQCBkZWZp bmUgaW50ZXJuYWwgPDMyIHggaTMyPiBAX1pON2RldGFpbHMxM19faW1wbF9kaXZyZW1JTGkzMkVF RXUyQ012YlRfX2lTMV9TMV91MgotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBu b3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgaTMyIEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9z cmVtaWkoaTMyLCBpMzIpICMxNCB7Ci0rZGVmaW5lIGludGVybmFsIGkzMiBAX1oyNF9fY21faW50 cmluc2ljX2ltcGxfc3JlbWlpKGkzMiwgaTMyKSAjMTQgewotICAgJTMgPSBhbGxvY2EgaTMyLCBh bGlnbiA0Ci0gICAlNCA9IGFsbG9jYSBpMzIsIGFsaWduIDQKLSAgICU1ID0gYWxsb2NhIDwxIHgg aTMyPiwgYWxpZ24gNAotQEAgLTI3MDIsNyArMjcwMiw3IEBAIGRlZmluZSBkc29fbG9jYWwgaTMy IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtaWkoaTMyLCBpMzIpICMxNCB7Ci0gfQotIAot IDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8 MSB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIxX2lTXyg8MSB4IGkz Mj4sIDwxIHggaTMyPikgIzE0IHsKLStkZWZpbmUgaW50ZXJuYWwgPDEgeCBpMzI+IEBfWjI0X19j bV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMV9pU18oPDEgeCBpMzI+LCA8MSB4IGkzMj4pICMx NCB7Ci0gICAlMyA9IGFsbG9jYSA8MSB4IGkzMj4sIGFsaWduIDQKLSAgICU0ID0gYWxsb2NhIDwx IHggaTMyPiwgYWxpZ24gNAotICAgJTUgPSBhbGxvY2EgPDEgeCBpMzI+LCBhbGlnbiA0Ci1AQCAt MjcxNiw3ICsyNzE2LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MSB4IGkzMj4gQF9aMjRfX2NtX2lu dHJpbnNpY19pbXBsX3NyZW11MkNNdmIxX2lTXyg8MSB4IGkzMj4sIDwKLSB9Ci0gCi0gOyBGdW5j dGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwyIHggaTMy PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjJfaVNfKDwyIHggaTMyPiwgPDIg eCBpMzI+KSAjMTUgewotK2RlZmluZSBpbnRlcm5hbCA8MiB4IGkzMj4gQF9aMjRfX2NtX2ludHJp bnNpY19pbXBsX3NyZW11MkNNdmIyX2lTXyg8MiB4IGkzMj4sIDwyIHggaTMyPikgIzE1IHsKLSAg ICUzID0gYWxsb2NhIDwyIHggaTMyPiwgYWxpZ24gOAotICAgJTQgPSBhbGxvY2EgPDIgeCBpMzI+ LCBhbGlnbiA4Ci0gICAlNSA9IGFsbG9jYSA8MiB4IGkzMj4sIGFsaWduIDgKLUBAIC0yNzMwLDcg KzI3MzAsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwyIHggaTMyPiBAX1oyNF9fY21faW50cmluc2lj X2ltcGxfc3JlbXUyQ012YjJfaVNfKDwyIHggaTMyPiwgPAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0 dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDQgeCBpMzI+IEBfWjI0 X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiNF9pU18oPDQgeCBpMzI+LCA8NCB4IGkzMj4p ICMxNiB7Ci0rZGVmaW5lIGludGVybmFsIDw0IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2lt cGxfc3JlbXUyQ012YjRfaVNfKDw0IHggaTMyPiwgPDQgeCBpMzI+KSAjMTYgewotICAgJTMgPSBh bGxvY2EgPDQgeCBpMzI+LCBhbGlnbiAxNgotICAgJTQgPSBhbGxvY2EgPDQgeCBpMzI+LCBhbGln biAxNgotICAgJTUgPSBhbGxvY2EgPDQgeCBpMzI+LCBhbGlnbiAxNgotQEAgLTI3NDQsNyArMjc0 NCw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDQgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1w bF9zcmVtdTJDTXZiNF9pU18oPDQgeCBpMzI+LCA8Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6 IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8OCB4IGkzMj4gQF9aMjRfX2Nt X2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmI4X2lTXyg8OCB4IGkzMj4sIDw4IHggaTMyPikgIzE3 IHsKLStkZWZpbmUgaW50ZXJuYWwgPDggeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9z cmVtdTJDTXZiOF9pU18oPDggeCBpMzI+LCA8OCB4IGkzMj4pICMxNyB7Ci0gICAlMyA9IGFsbG9j YSA8OCB4IGkzMj4sIGFsaWduIDMyCi0gICAlNCA9IGFsbG9jYSA8OCB4IGkzMj4sIGFsaWduIDMy Ci0gICAlNSA9IGFsbG9jYSA8OCB4IGkzMj4sIGFsaWduIDMyCi1AQCAtMjc1OCw3ICsyNzU4LDcg QEAgZGVmaW5lIGRzb19sb2NhbCA8OCB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3Ny ZW11MkNNdmI4X2lTXyg8OCB4IGkzMj4sIDwKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9p bmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwxNiB4IGkzMj4gQF9aMjRfX2NtX2lu dHJpbnNpY19pbXBsX3NyZW11MkNNdmIxNl9pU18oPDE2IHggaTMyPiwgPDE2IHggaTMyPikgIzE4 IHsKLStkZWZpbmUgaW50ZXJuYWwgPDE2IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxf c3JlbXUyQ012YjE2X2lTXyg8MTYgeCBpMzI+LCA8MTYgeCBpMzI+KSAjMTggewotICAgJTMgPSBh bGxvY2EgPDE2IHggaTMyPiwgYWxpZ24gNjQKLSAgICU0ID0gYWxsb2NhIDwxNiB4IGkzMj4sIGFs aWduIDY0Ci0gICAlNSA9IGFsbG9jYSA8MTYgeCBpMzI+LCBhbGlnbiA2NAotQEAgLTI3NzIsNyAr Mjc3Miw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDE2IHggaTMyPiBAX1oyNF9fY21faW50cmluc2lj X2ltcGxfc3JlbXUyQ012YjE2X2lTXyg8MTYgeCBpMzI+Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0 cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MzIgeCBpMzI+IEBfWjI0 X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMzJfaVNfKDwzMiB4IGkzMj4sIDwzMiB4IGkz Mj4pICMxOSB7Ci0rZGVmaW5lIGludGVybmFsIDwzMiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNp Y19pbXBsX3NyZW11MkNNdmIzMl9pU18oPDMyIHggaTMyPiwgPDMyIHggaTMyPikgIzE5IHsKLSAg ICUzID0gYWxsb2NhIDwzMiB4IGkzMj4sIGFsaWduIDEyOAotICAgJTQgPSBhbGxvY2EgPDMyIHgg aTMyPiwgYWxpZ24gMTI4Ci0gICAlNSA9IGFsbG9jYSA8MzIgeCBpMzI+LCBhbGlnbiAxMjgKLUBA IC0yNzg2LDcgKzI3ODYsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwzMiB4IGkzMj4gQF9aMjRfX2Nt X2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIzMl9pU18oPDMyIHggaTMyPgotIH0KLSAKLSA7IEZ1 bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgemVyb2V4 dCBpOCBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRpdmhoKGk4IHplcm9leHQsIGk4IHplcm9l eHQpICMyMSB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQgaTggQF9aMjRfX2NtX2ludHJpbnNp Y19pbXBsX3VkaXZoaChpOCB6ZXJvZXh0LCBpOCB6ZXJvZXh0KSAjMjEgewotICAgJTMgPSBhbGxv Y2EgaTgsIGFsaWduIDEKLSAgICU0ID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0gICAlNSA9IGFsbG9j YSA8MSB4IGk4PiwgYWxpZ24gMQotQEAgLTI4NDQsNyArMjg0NCw3IEBAIGRlZmluZSBpbnRlcm5h bCA8MSB4IGk4PiBAX1pON2RldGFpbHMxNF9faW1wbF91ZGl2cmVtSUxpMUVFRXUyQ012YlRfX2hT MV9TMV91MkNNCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0t ZGVmaW5lIGRzb19sb2NhbCA8MSB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRpdnUy Q012YjFfaFNfKDwxIHggaTg+LCA8MSB4IGk4PikgIzIxIHsKLStkZWZpbmUgaW50ZXJuYWwgPDEg eCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1MkNNdmIxX2hTXyg8MSB4IGk4Piwg PDEgeCBpOD4pICMyMSB7Ci0gICAlMyA9IGFsbG9jYSA8MSB4IGk4PiwgYWxpZ24gMQotICAgJTQg PSBhbGxvY2EgPDEgeCBpOD4sIGFsaWduIDEKLSAgICU1ID0gYWxsb2NhIDwxIHggaTg+LCBhbGln biAxCi1AQCAtMjg2MCw3ICsyODYwLDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MSB4IGk4PiBAX1oy NF9fY21faW50cmluc2ljX2ltcGxfdWRpdnUyQ012YjFfaFNfKDwxIHggaTg+LCA8MQotIH0KLSAK LSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwg PDIgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1MkNNdmIyX2hTXyg8MiB4IGk4 PiwgPDIgeCBpOD4pICMyMiB7Ci0rZGVmaW5lIGludGVybmFsIDwyIHggaTg+IEBfWjI0X19jbV9p bnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZiMl9oU18oPDIgeCBpOD4sIDwyIHggaTg+KSAjMjIgewot ICAgJTMgPSBhbGxvY2EgPDIgeCBpOD4sIGFsaWduIDIKLSAgICU0ID0gYWxsb2NhIDwyIHggaTg+ LCBhbGlnbiAyCi0gICAlNSA9IGFsbG9jYSA8MiB4IGk4PiwgYWxpZ24gMgotQEAgLTI5MDYsNyAr MjkwNiw3IEBAIGRlZmluZSBpbnRlcm5hbCA8MiB4IGk4PiBAX1pON2RldGFpbHMxNF9faW1wbF91 ZGl2cmVtSUxpMkVFRXUyQ012YlRfX2hTMV9TMV91MkNNCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0 cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8NCB4IGk4PiBAX1oyNF9f Y21faW50cmluc2ljX2ltcGxfdWRpdnUyQ012YjRfaFNfKDw0IHggaTg+LCA8NCB4IGk4PikgIzE0 IHsKLStkZWZpbmUgaW50ZXJuYWwgPDQgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3Vk aXZ1MkNNdmI0X2hTXyg8NCB4IGk4PiwgPDQgeCBpOD4pICMxNCB7Ci0gICAlMyA9IGFsbG9jYSA8 NCB4IGk4PiwgYWxpZ24gNAotICAgJTQgPSBhbGxvY2EgPDQgeCBpOD4sIGFsaWduIDQKLSAgICU1 ID0gYWxsb2NhIDw0IHggaTg+LCBhbGlnbiA0Ci1AQCAtMzA0NCw3ICszMDQ0LDcgQEAgZGVmaW5l IGludGVybmFsIDwxNiB4IGk4PiBAX1pON2RldGFpbHMxNF9faW1wbF91ZGl2cmVtSUxpMTZFRUV1 MkNNdmJUX19oUzFfUzFfdTIKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91 bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwzMiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2lt cGxfdWRpdnUyQ012YjMyX2hTXyg8MzIgeCBpOD4sIDwzMiB4IGk4PikgIzE3IHsKLStkZWZpbmUg aW50ZXJuYWwgPDMyIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZiMzJf aFNfKDwzMiB4IGk4PiwgPDMyIHggaTg+KSAjMTcgewotICAgJTMgPSBhbGxvY2EgPDMyIHggaTg+ LCBhbGlnbiAzMgotICAgJTQgPSBhbGxvY2EgPDMyIHggaTg+LCBhbGlnbiAzMgotICAgJTUgPSBh bGxvY2EgPDMyIHggaTg+LCBhbGlnbiAzMgotQEAgLTMwOTAsNyArMzA5MCw3IEBAIGRlZmluZSBp bnRlcm5hbCA8MzIgeCBpOD4gQF9aTjdkZXRhaWxzMTRfX2ltcGxfdWRpdnJlbUlMaTMyRUVFdTJD TXZiVF9faFMxX1MxX3UyCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53 aW5kCi0tZGVmaW5lIGRzb19sb2NhbCB6ZXJvZXh0IGk4IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1w bF91cmVtaGgoaTggemVyb2V4dCwgaTggemVyb2V4dCkgIzIxIHsKLStkZWZpbmUgaW50ZXJuYWwg emVyb2V4dCBpOCBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbWhoKGk4IHplcm9leHQsIGk4 IHplcm9leHQpICMyMSB7Ci0gICAlMyA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgJTQgPSBhbGxv Y2EgaTgsIGFsaWduIDEKLSAgICU1ID0gYWxsb2NhIDwxIHggaTg+LCBhbGlnbiAxCi1AQCAtMzEx Niw3ICszMTE2LDcgQEAgZGVmaW5lIGRzb19sb2NhbCB6ZXJvZXh0IGk4IEBfWjI0X19jbV9pbnRy aW5zaWNfaW1wbF91cmVtaGgoaTggemVyb2V4dCwgaTggemVyb2UKLSB9Ci0gCi0gOyBGdW5jdGlv biBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwxIHggaTg+IEBf WjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMV9oU18oPDEgeCBpOD4sIDwxIHggaTg+ KSAjMjEgewotK2RlZmluZSBpbnRlcm5hbCA8MSB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2lt cGxfdXJlbXUyQ012YjFfaFNfKDwxIHggaTg+LCA8MSB4IGk4PikgIzIxIHsKLSAgICUzID0gYWxs b2NhIDwxIHggaTg+LCBhbGlnbiAxCi0gICAlNCA9IGFsbG9jYSA8MSB4IGk4PiwgYWxpZ24gMQot ICAgJTUgPSBhbGxvY2EgPDEgeCBpOD4sIGFsaWduIDEKLUBAIC0zMTMwLDcgKzMxMzAsNyBAQCBk ZWZpbmUgZHNvX2xvY2FsIDwxIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJD TXZiMV9oU18oPDEgeCBpOD4sIDwxCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5l IG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MiB4IGk4PiBAX1oyNF9fY21faW50cmluc2lj X2ltcGxfdXJlbXUyQ012YjJfaFNfKDwyIHggaTg+LCA8MiB4IGk4PikgIzIyIHsKLStkZWZpbmUg aW50ZXJuYWwgPDIgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIyX2hT Xyg8MiB4IGk4PiwgPDIgeCBpOD4pICMyMiB7Ci0gICAlMyA9IGFsbG9jYSA8MiB4IGk4PiwgYWxp Z24gMgotICAgJTQgPSBhbGxvY2EgPDIgeCBpOD4sIGFsaWduIDIKLSAgICU1ID0gYWxsb2NhIDwy IHggaTg+LCBhbGlnbiAyCi1AQCAtMzE0NCw3ICszMTQ0LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8 MiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjJfaFNfKDwyIHggaTg+ LCA8MgotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmlu ZSBkc29fbG9jYWwgPDQgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmI0 X2hTXyg8NCB4IGk4PiwgPDQgeCBpOD4pICMxNCB7Ci0rZGVmaW5lIGludGVybmFsIDw0IHggaTg+ IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiNF9oU18oPDQgeCBpOD4sIDw0IHgg aTg+KSAjMTQgewotICAgJTMgPSBhbGxvY2EgPDQgeCBpOD4sIGFsaWduIDQKLSAgICU0ID0gYWxs b2NhIDw0IHggaTg+LCBhbGlnbiA0Ci0gICAlNSA9IGFsbG9jYSA8NCB4IGk4PiwgYWxpZ24gNAot QEAgLTMxNTgsNyArMzE1OCw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDQgeCBpOD4gQF9aMjRfX2Nt X2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmI0X2hTXyg8NCB4IGk4PiwgPDQKLSB9Ci0gCi0gOyBG dW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDw4IHgg aTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiOF9oU18oPDggeCBpOD4sIDw4 IHggaTg+KSAjMTUgewotK2RlZmluZSBpbnRlcm5hbCA8OCB4IGk4PiBAX1oyNF9fY21faW50cmlu c2ljX2ltcGxfdXJlbXUyQ012YjhfaFNfKDw4IHggaTg+LCA8OCB4IGk4PikgIzE1IHsKLSAgICUz ID0gYWxsb2NhIDw4IHggaTg+LCBhbGlnbiA4Ci0gICAlNCA9IGFsbG9jYSA8OCB4IGk4PiwgYWxp Z24gOAotICAgJTUgPSBhbGxvY2EgPDggeCBpOD4sIGFsaWduIDgKLUBAIC0zMTcyLDcgKzMxNzIs NyBAQCBkZWZpbmUgZHNvX2xvY2FsIDw4IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91 cmVtdTJDTXZiOF9oU18oPDggeCBpOD4sIDw4Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5v aW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MTYgeCBpOD4gQF9aMjRfX2NtX2lu dHJpbnNpY19pbXBsX3VyZW11MkNNdmIxNl9oU18oPDE2IHggaTg+LCA8MTYgeCBpOD4pICMxNiB7 Ci0rZGVmaW5lIGludGVybmFsIDwxNiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJl bXUyQ012YjE2X2hTXyg8MTYgeCBpOD4sIDwxNiB4IGk4PikgIzE2IHsKLSAgICUzID0gYWxsb2Nh IDwxNiB4IGk4PiwgYWxpZ24gMTYKLSAgICU0ID0gYWxsb2NhIDwxNiB4IGk4PiwgYWxpZ24gMTYK LSAgICU1ID0gYWxsb2NhIDwxNiB4IGk4PiwgYWxpZ24gMTYKLUBAIC0zMTg2LDcgKzMxODYsNyBA QCBkZWZpbmUgZHNvX2xvY2FsIDwxNiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJl bXUyQ012YjE2X2hTXyg8MTYgeCBpOD4sCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5s aW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MzIgeCBpOD4gQF9aMjRfX2NtX2ludHJp bnNpY19pbXBsX3VyZW11MkNNdmIzMl9oU18oPDMyIHggaTg+LCA8MzIgeCBpOD4pICMxNyB7Ci0r ZGVmaW5lIGludGVybmFsIDwzMiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUy Q012YjMyX2hTXyg8MzIgeCBpOD4sIDwzMiB4IGk4PikgIzE3IHsKLSAgICUzID0gYWxsb2NhIDwz MiB4IGk4PiwgYWxpZ24gMzIKLSAgICU0ID0gYWxsb2NhIDwzMiB4IGk4PiwgYWxpZ24gMzIKLSAg ICU1ID0gYWxsb2NhIDwzMiB4IGk4PiwgYWxpZ24gMzIKLUBAIC0zMjAwLDcgKzMyMDAsNyBAQCBk ZWZpbmUgZHNvX2xvY2FsIDwzMiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUy Q012YjMyX2hTXyg8MzIgeCBpOD4sCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5l IG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCB6ZXJvZXh0IGkxNiBAX1oyNF9fY21faW50cmlu c2ljX2ltcGxfdWRpdnR0KGkxNiB6ZXJvZXh0LCBpMTYgemVyb2V4dCkgIzIyIHsKLStkZWZpbmUg aW50ZXJuYWwgemVyb2V4dCBpMTYgQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZ0dChpMTYg emVyb2V4dCwgaTE2IHplcm9leHQpICMyMiB7Ci0gICAlMyA9IGFsbG9jYSBpMTYsIGFsaWduIDIK LSAgICU0ID0gYWxsb2NhIGkxNiwgYWxpZ24gMgotICAgJTUgPSBhbGxvY2EgPDEgeCBpMTY+LCBh bGlnbiAyCi1AQCAtMzI3OCw3ICszMjc4LDcgQEAgZGVmaW5lIGludGVybmFsIDwxIHggaTE2PiBA X1pON2RldGFpbHMxNF9faW1wbF91ZGl2cmVtSUxpMUVFRXUyQ012YlRfX3RTMV9TMV91MkMKLSB9 Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xv Y2FsIDwxIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRpdnUyQ012YjFfdFNfKDwx IHggaTE2PiwgPDEgeCBpMTY+KSAjMjIgewotK2RlZmluZSBpbnRlcm5hbCA8MSB4IGkxNj4gQF9a MjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1MkNNdmIxX3RTXyg8MSB4IGkxNj4sIDwxIHggaTE2 PikgIzIyIHsKLSAgICUzID0gYWxsb2NhIDwxIHggaTE2PiwgYWxpZ24gMgotICAgJTQgPSBhbGxv Y2EgPDEgeCBpMTY+LCBhbGlnbiAyCi0gICAlNSA9IGFsbG9jYSA8MSB4IGkxNj4sIGFsaWduIDIK LUBAIC0zMjk0LDcgKzMyOTQsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwxIHggaTE2PiBAX1oyNF9f Y21faW50cmluc2ljX2ltcGxfdWRpdnUyQ012YjFfdFNfKDwxIHggaTE2PiwgPAotIH0KLSAKLSA7 IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDIg eCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZiMl90U18oPDIgeCBpMTY+ LCA8MiB4IGkxNj4pICMxNCB7Ci0rZGVmaW5lIGludGVybmFsIDwyIHggaTE2PiBAX1oyNF9fY21f aW50cmluc2ljX2ltcGxfdWRpdnUyQ012YjJfdFNfKDwyIHggaTE2PiwgPDIgeCBpMTY+KSAjMTQg ewotICAgJTMgPSBhbGxvY2EgPDIgeCBpMTY+LCBhbGlnbiA0Ci0gICAlNCA9IGFsbG9jYSA8MiB4 IGkxNj4sIGFsaWduIDQKLSAgICU1ID0gYWxsb2NhIDwyIHggaTE2PiwgYWxpZ24gNAotQEAgLTMz NjAsNyArMzM2MCw3IEBAIGRlZmluZSBpbnRlcm5hbCA8MiB4IGkxNj4gQF9aTjdkZXRhaWxzMTRf X2ltcGxfdWRpdnJlbUlMaTJFRUV1MkNNdmJUX190UzFfUzFfdTJDCi0gfQotIAotIDsgRnVuY3Rp b24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8NCB4IGkxNj4g QF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1MkNNdmI0X3RTXyg8NCB4IGkxNj4sIDw0IHgg aTE2PikgIzE1IHsKLStkZWZpbmUgaW50ZXJuYWwgPDQgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5z aWNfaW1wbF91ZGl2dTJDTXZiNF90U18oPDQgeCBpMTY+LCA8NCB4IGkxNj4pICMxNSB7Ci0gICAl MyA9IGFsbG9jYSA8NCB4IGkxNj4sIGFsaWduIDgKLSAgICU0ID0gYWxsb2NhIDw0IHggaTE2Piwg YWxpZ24gOAotICAgJTUgPSBhbGxvY2EgPDQgeCBpMTY+LCBhbGlnbiA4Ci1AQCAtMzU1OCw3ICsz NTU4LDcgQEAgZGVmaW5lIGludGVybmFsIDwxNiB4IGkxNj4gQF9aTjdkZXRhaWxzMTRfX2ltcGxf dWRpdnJlbUlMaTE2RUVFdTJDTXZiVF9fdFMxX1MxX3UKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRy czogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwzMiB4IGkxNj4gQF9aMjRf X2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1MkNNdmIzMl90U18oPDMyIHggaTE2PiwgPDMyIHggaTE2 PikgIzE4IHsKLStkZWZpbmUgaW50ZXJuYWwgPDMyIHggaTE2PiBAX1oyNF9fY21faW50cmluc2lj X2ltcGxfdWRpdnUyQ012YjMyX3RTXyg8MzIgeCBpMTY+LCA8MzIgeCBpMTY+KSAjMTggewotICAg JTMgPSBhbGxvY2EgPDMyIHggaTE2PiwgYWxpZ24gNjQKLSAgICU0ID0gYWxsb2NhIDwzMiB4IGkx Nj4sIGFsaWduIDY0Ci0gICAlNSA9IGFsbG9jYSA8MzIgeCBpMTY+LCBhbGlnbiA2NAotQEAgLTM2 MjQsNyArMzYyNCw3IEBAIGRlZmluZSBpbnRlcm5hbCA8MzIgeCBpMTY+IEBfWk43ZGV0YWlsczE0 X19pbXBsX3VkaXZyZW1JTGkzMkVFRXUyQ012YlRfX3RTMV9TMV91Ci0gfQotIAotIDsgRnVuY3Rp b24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCB6ZXJvZXh0IGkx NiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXR0KGkxNiB6ZXJvZXh0LCBpMTYgemVyb2V4 dCkgIzIyIHsKLStkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMTYgQF9aMjRfX2NtX2ludHJpbnNp Y19pbXBsX3VyZW10dChpMTYgemVyb2V4dCwgaTE2IHplcm9leHQpICMyMiB7Ci0gICAlMyA9IGFs bG9jYSBpMTYsIGFsaWduIDIKLSAgICU0ID0gYWxsb2NhIGkxNiwgYWxpZ24gMgotICAgJTUgPSBh bGxvY2EgPDEgeCBpMTY+LCBhbGlnbiAyCi1AQCAtMzY1MCw3ICszNjUwLDcgQEAgZGVmaW5lIGRz b19sb2NhbCB6ZXJvZXh0IGkxNiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXR0KGkxNiB6 ZXJvZXh0LCBpMTYgemUKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndp bmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwxIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxf dXJlbXUyQ012YjFfdFNfKDwxIHggaTE2PiwgPDEgeCBpMTY+KSAjMjIgewotK2RlZmluZSBpbnRl cm5hbCA8MSB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIxX3RTXyg8 MSB4IGkxNj4sIDwxIHggaTE2PikgIzIyIHsKLSAgICUzID0gYWxsb2NhIDwxIHggaTE2PiwgYWxp Z24gMgotICAgJTQgPSBhbGxvY2EgPDEgeCBpMTY+LCBhbGlnbiAyCi0gICAlNSA9IGFsbG9jYSA8 MSB4IGkxNj4sIGFsaWduIDIKLUBAIC0zNjY0LDcgKzM2NjQsNyBAQCBkZWZpbmUgZHNvX2xvY2Fs IDwxIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjFfdFNfKDwxIHgg aTE2PiwgPAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRl ZmluZSBkc29fbG9jYWwgPDIgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJD TXZiMl90U18oPDIgeCBpMTY+LCA8MiB4IGkxNj4pICMxNCB7Ci0rZGVmaW5lIGludGVybmFsIDwy IHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjJfdFNfKDwyIHggaTE2 PiwgPDIgeCBpMTY+KSAjMTQgewotICAgJTMgPSBhbGxvY2EgPDIgeCBpMTY+LCBhbGlnbiA0Ci0g ICAlNCA9IGFsbG9jYSA8MiB4IGkxNj4sIGFsaWduIDQKLSAgICU1ID0gYWxsb2NhIDwyIHggaTE2 PiwgYWxpZ24gNAotQEAgLTM2NzgsNyArMzY3OCw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDIgeCBp MTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMl90U18oPDIgeCBpMTY+LCA8 Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRz b19sb2NhbCA8NCB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmI0X3RT Xyg8NCB4IGkxNj4sIDw0IHggaTE2PikgIzE1IHsKLStkZWZpbmUgaW50ZXJuYWwgPDQgeCBpMTY+ IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiNF90U18oPDQgeCBpMTY+LCA8NCB4 IGkxNj4pICMxNSB7Ci0gICAlMyA9IGFsbG9jYSA8NCB4IGkxNj4sIGFsaWduIDgKLSAgICU0ID0g YWxsb2NhIDw0IHggaTE2PiwgYWxpZ24gOAotICAgJTUgPSBhbGxvY2EgPDQgeCBpMTY+LCBhbGln biA4Ci1AQCAtMzY5Miw3ICszNjkyLDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8NCB4IGkxNj4gQF9a MjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmI0X3RTXyg8NCB4IGkxNj4sIDwKLSB9Ci0g Ci0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2Fs IDw4IHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjhfdFNfKDw4IHgg aTE2PiwgPDggeCBpMTY+KSAjMTYgewotK2RlZmluZSBpbnRlcm5hbCA8OCB4IGkxNj4gQF9aMjRf X2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmI4X3RTXyg8OCB4IGkxNj4sIDw4IHggaTE2Pikg IzE2IHsKLSAgICUzID0gYWxsb2NhIDw4IHggaTE2PiwgYWxpZ24gMTYKLSAgICU0ID0gYWxsb2Nh IDw4IHggaTE2PiwgYWxpZ24gMTYKLSAgICU1ID0gYWxsb2NhIDw4IHggaTE2PiwgYWxpZ24gMTYK LUBAIC0zNzA2LDcgKzM3MDYsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDw4IHggaTE2PiBAX1oyNF9f Y21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjhfdFNfKDw4IHggaTE2PiwgPAotIH0KLSAKLSA7 IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDE2 IHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjE2X3RTXyg8MTYgeCBp MTY+LCA8MTYgeCBpMTY+KSAjMTcgewotK2RlZmluZSBpbnRlcm5hbCA8MTYgeCBpMTY+IEBfWjI0 X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMTZfdFNfKDwxNiB4IGkxNj4sIDwxNiB4IGkx Nj4pICMxNyB7Ci0gICAlMyA9IGFsbG9jYSA8MTYgeCBpMTY+LCBhbGlnbiAzMgotICAgJTQgPSBh bGxvY2EgPDE2IHggaTE2PiwgYWxpZ24gMzIKLSAgICU1ID0gYWxsb2NhIDwxNiB4IGkxNj4sIGFs aWduIDMyCi1AQCAtMzcyMCw3ICszNzIwLDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MTYgeCBpMTY+ IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMTZfdFNfKDwxNiB4IGkxNj4KLSB9 Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xv Y2FsIDwzMiB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIzMl90U18o PDMyIHggaTE2PiwgPDMyIHggaTE2PikgIzE4IHsKLStkZWZpbmUgaW50ZXJuYWwgPDMyIHggaTE2 PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjMyX3RTXyg8MzIgeCBpMTY+LCA8 MzIgeCBpMTY+KSAjMTggewotICAgJTMgPSBhbGxvY2EgPDMyIHggaTE2PiwgYWxpZ24gNjQKLSAg ICU0ID0gYWxsb2NhIDwzMiB4IGkxNj4sIGFsaWduIDY0Ci0gICAlNSA9IGFsbG9jYSA8MzIgeCBp MTY+LCBhbGlnbiA2NAotQEAgLTM3MzQsNyArMzczNCw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDMy IHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjMyX3RTXyg8MzIgeCBp MTY+Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5l IGRzb19sb2NhbCBpMzIgQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZqaihpMzIsIGkzMikg IzE0IHsKLStkZWZpbmUgaW50ZXJuYWwgaTMyIEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2 amooaTMyLCBpMzIpICMxNCB7Ci0gICAlMyA9IGFsbG9jYSBpMzIsIGFsaWduIDQKLSAgICU0ID0g YWxsb2NhIGkzMiwgYWxpZ24gNAotICAgJTUgPSBhbGxvY2EgPDEgeCBpMzI+LCBhbGlnbiA0Ci1A QCAtMzg5Miw3ICszODkyLDcgQEAgZGVmaW5lIGludGVybmFsIDwxIHggaTMyPiBAX1pON2RldGFp bHMxNF9faW1wbF91ZGl2cmVtSUxpMUVFRXUyQ012YlRfX2pTMV9TMV91MkMKLSB9Ci0gCi0gOyBG dW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwxIHgg aTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRpdnUyQ012YjFfalNfKDwxIHggaTMyPiwg PDEgeCBpMzI+KSAjMTQgewotK2RlZmluZSBpbnRlcm5hbCA8MSB4IGkzMj4gQF9aMjRfX2NtX2lu dHJpbnNpY19pbXBsX3VkaXZ1MkNNdmIxX2pTXyg8MSB4IGkzMj4sIDwxIHggaTMyPikgIzE0IHsK LSAgICUzID0gYWxsb2NhIDwxIHggaTMyPiwgYWxpZ24gNAotICAgJTQgPSBhbGxvY2EgPDEgeCBp MzI+LCBhbGlnbiA0Ci0gICAlNSA9IGFsbG9jYSA8MSB4IGkzMj4sIGFsaWduIDQKLUBAIC0zOTA4 LDcgKzM5MDgsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwxIHggaTMyPiBAX1oyNF9fY21faW50cmlu c2ljX2ltcGxfdWRpdnUyQ012YjFfalNfKDwxIHggaTMyPiwgPAotIH0KLSAKLSA7IEZ1bmN0aW9u IEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDIgeCBpMzI+IEBf WjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZiMl9qU18oPDIgeCBpMzI+LCA8MiB4IGkz Mj4pICMxNSB7Ci0rZGVmaW5lIGludGVybmFsIDwyIHggaTMyPiBAX1oyNF9fY21faW50cmluc2lj X2ltcGxfdWRpdnUyQ012YjJfalNfKDwyIHggaTMyPiwgPDIgeCBpMzI+KSAjMTUgewotICAgJTMg PSBhbGxvY2EgPDIgeCBpMzI+LCBhbGlnbiA4Ci0gICAlNCA9IGFsbG9jYSA8MiB4IGkzMj4sIGFs aWduIDgKLSAgICU1ID0gYWxsb2NhIDwyIHggaTMyPiwgYWxpZ24gOAotQEAgLTQwNTQsNyArNDA1 NCw3IEBAIGRlZmluZSBpbnRlcm5hbCA8MiB4IGkzMj4gQF9aTjdkZXRhaWxzMTRfX2ltcGxfdWRp dnJlbUlMaTJFRUV1MkNNdmJUX19qUzFfUzFfdTJDCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6 IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8NCB4IGkzMj4gQF9aMjRfX2Nt X2ludHJpbnNpY19pbXBsX3VkaXZ1MkNNdmI0X2pTXyg8NCB4IGkzMj4sIDw0IHggaTMyPikgIzE2 IHsKLStkZWZpbmUgaW50ZXJuYWwgPDQgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91 ZGl2dTJDTXZiNF9qU18oPDQgeCBpMzI+LCA8NCB4IGkzMj4pICMxNiB7Ci0gICAlMyA9IGFsbG9j YSA8NCB4IGkzMj4sIGFsaWduIDE2Ci0gICAlNCA9IGFsbG9jYSA8NCB4IGkzMj4sIGFsaWduIDE2 Ci0gICAlNSA9IGFsbG9jYSA8NCB4IGkzMj4sIGFsaWduIDE2Ci1AQCAtNDQ5Miw3ICs0NDkyLDcg QEAgZGVmaW5lIGludGVybmFsIDwxNiB4IGkzMj4gQF9aTjdkZXRhaWxzMTRfX2ltcGxfdWRpdnJl bUlMaTE2RUVFdTJDTXZiVF9falMxX1MxX3UKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9p bmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwzMiB4IGkzMj4gQF9aMjRfX2NtX2lu dHJpbnNpY19pbXBsX3VkaXZ1MkNNdmIzMl9qU18oPDMyIHggaTMyPiwgPDMyIHggaTMyPikgIzE5 IHsKLStkZWZpbmUgaW50ZXJuYWwgPDMyIHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxf dWRpdnUyQ012YjMyX2pTXyg8MzIgeCBpMzI+LCA8MzIgeCBpMzI+KSAjMTkgewotICAgJTMgPSBh bGxvY2EgPDMyIHggaTMyPiwgYWxpZ24gMTI4Ci0gICAlNCA9IGFsbG9jYSA8MzIgeCBpMzI+LCBh bGlnbiAxMjgKLSAgICU1ID0gYWxsb2NhIDwzMiB4IGkzMj4sIGFsaWduIDEyOAotQEAgLTQ2Mzgs NyArNDYzOCw3IEBAIGRlZmluZSBpbnRlcm5hbCA8MzIgeCBpMzI+IEBfWk43ZGV0YWlsczE0X19p bXBsX3VkaXZyZW1JTGkzMkVFRXUyQ012YlRfX2pTMV9TMV91Ci0gfQotIAotIDsgRnVuY3Rpb24g QXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCBpMzIgQF9aMjRfX2Nt X2ludHJpbnNpY19pbXBsX3VyZW1qaihpMzIsIGkzMikgIzE0IHsKLStkZWZpbmUgaW50ZXJuYWwg aTMyIEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtamooaTMyLCBpMzIpICMxNCB7Ci0gICAl MyA9IGFsbG9jYSBpMzIsIGFsaWduIDQKLSAgICU0ID0gYWxsb2NhIGkzMiwgYWxpZ24gNAotICAg JTUgPSBhbGxvY2EgPDEgeCBpMzI+LCBhbGlnbiA0Ci1AQCAtNDY2NCw3ICs0NjY0LDcgQEAgZGVm aW5lIGRzb19sb2NhbCBpMzIgQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW1qaihpMzIsIGkz MikgIzE0IHsKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1k ZWZpbmUgZHNvX2xvY2FsIDwxIHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUy Q012YjFfalNfKDwxIHggaTMyPiwgPDEgeCBpMzI+KSAjMTQgewotK2RlZmluZSBpbnRlcm5hbCA8 MSB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIxX2pTXyg8MSB4IGkz Mj4sIDwxIHggaTMyPikgIzE0IHsKLSAgICUzID0gYWxsb2NhIDwxIHggaTMyPiwgYWxpZ24gNAot ICAgJTQgPSBhbGxvY2EgPDEgeCBpMzI+LCBhbGlnbiA0Ci0gICAlNSA9IGFsbG9jYSA8MSB4IGkz Mj4sIGFsaWduIDQKLUBAIC00Njc4LDcgKzQ2NzgsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwxIHgg aTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjFfalNfKDwxIHggaTMyPiwg PAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBk c29fbG9jYWwgPDIgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMl9q U18oPDIgeCBpMzI+LCA8MiB4IGkzMj4pICMxNSB7Ci0rZGVmaW5lIGludGVybmFsIDwyIHggaTMy PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjJfalNfKDwyIHggaTMyPiwgPDIg eCBpMzI+KSAjMTUgewotICAgJTMgPSBhbGxvY2EgPDIgeCBpMzI+LCBhbGlnbiA4Ci0gICAlNCA9 IGFsbG9jYSA8MiB4IGkzMj4sIGFsaWduIDgKLSAgICU1ID0gYWxsb2NhIDwyIHggaTMyPiwgYWxp Z24gOAotQEAgLTQ2OTIsNyArNDY5Miw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDIgeCBpMzI+IEBf WjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMl9qU18oPDIgeCBpMzI+LCA8Ci0gfQot IAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2Nh bCA8NCB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmI0X2pTXyg8NCB4 IGkzMj4sIDw0IHggaTMyPikgIzE2IHsKLStkZWZpbmUgaW50ZXJuYWwgPDQgeCBpMzI+IEBfWjI0 X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiNF9qU18oPDQgeCBpMzI+LCA8NCB4IGkzMj4p ICMxNiB7Ci0gICAlMyA9IGFsbG9jYSA8NCB4IGkzMj4sIGFsaWduIDE2Ci0gICAlNCA9IGFsbG9j YSA8NCB4IGkzMj4sIGFsaWduIDE2Ci0gICAlNSA9IGFsbG9jYSA8NCB4IGkzMj4sIGFsaWduIDE2 Ci1AQCAtNDcwNiw3ICs0NzA2LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8NCB4IGkzMj4gQF9aMjRf X2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmI0X2pTXyg8NCB4IGkzMj4sIDwKLSB9Ci0gCi0g OyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDw4 IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjhfalNfKDw4IHggaTMy PiwgPDggeCBpMzI+KSAjMTcgewotK2RlZmluZSBpbnRlcm5hbCA8OCB4IGkzMj4gQF9aMjRfX2Nt X2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmI4X2pTXyg8OCB4IGkzMj4sIDw4IHggaTMyPikgIzE3 IHsKLSAgICUzID0gYWxsb2NhIDw4IHggaTMyPiwgYWxpZ24gMzIKLSAgICU0ID0gYWxsb2NhIDw4 IHggaTMyPiwgYWxpZ24gMzIKLSAgICU1ID0gYWxsb2NhIDw4IHggaTMyPiwgYWxpZ24gMzIKLUBA IC00NzIwLDcgKzQ3MjAsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDw4IHggaTMyPiBAX1oyNF9fY21f aW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjhfalNfKDw4IHggaTMyPiwgPAotIH0KLSAKLSA7IEZ1 bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDE2IHgg aTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjE2X2pTXyg8MTYgeCBpMzI+ LCA8MTYgeCBpMzI+KSAjMTggewotK2RlZmluZSBpbnRlcm5hbCA8MTYgeCBpMzI+IEBfWjI0X19j bV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMTZfalNfKDwxNiB4IGkzMj4sIDwxNiB4IGkzMj4p ICMxOCB7Ci0gICAlMyA9IGFsbG9jYSA8MTYgeCBpMzI+LCBhbGlnbiA2NAotICAgJTQgPSBhbGxv Y2EgPDE2IHggaTMyPiwgYWxpZ24gNjQKLSAgICU1ID0gYWxsb2NhIDwxNiB4IGkzMj4sIGFsaWdu IDY0Ci1AQCAtNDczNCw3ICs0NzM0LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MTYgeCBpMzI+IEBf WjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMTZfalNfKDwxNiB4IGkzMj4KLSB9Ci0g Ci0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2Fs IDwzMiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIzMl9qU18oPDMy IHggaTMyPiwgPDMyIHggaTMyPikgIzE5IHsKLStkZWZpbmUgaW50ZXJuYWwgPDMyIHggaTMyPiBA X1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjMyX2pTXyg8MzIgeCBpMzI+LCA8MzIg eCBpMzI+KSAjMTkgewotICAgJTMgPSBhbGxvY2EgPDMyIHggaTMyPiwgYWxpZ24gMTI4Ci0gICAl NCA9IGFsbG9jYSA8MzIgeCBpMzI+LCBhbGlnbiAxMjgKLSAgICU1ID0gYWxsb2NhIDwzMiB4IGkz Mj4sIGFsaWduIDEyOAotQEAgLTQ3NDgsNyArNDc0OCw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDMy IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjMyX2pTXyg8MzIgeCBp MzI+Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5l IGRzb19sb2NhbCB2b2lkIEBfX2RvX3ByaW50X2NtKGk4KiwgaTgqLCBpMzIsIGk2NCwgaTMyKiwg aTMyLCBpMzIpICMyMyAhZGJnICExNSB7Ci0rZGVmaW5lIGludGVybmFsIHZvaWQgQF9fZG9fcHJp bnRfY20oaTgqLCBpOCosIGkzMiwgaTY0LCBpMzIqLCBpMzIsIGkzMikgIzIzICFkYmcgITE1IHsK LSAgICU4ID0gYWxsb2NhIGk4KiwgYWxpZ24gOAotICAgJTkgPSBhbGxvY2EgaTgqLCBhbGlnbiA4 Ci0gICAlMTAgPSBhbGxvY2EgaTMyLCBhbGlnbiA0Ci1AQCAtNTA3MCw3ICs1MDcwLDcgQEAgZGVm aW5lIGRzb19sb2NhbCB2b2lkIEBfX2RvX3ByaW50X2x6KGkzMiwgaTgqLCBpMzIsIGk2NCwgaTMy KiwgaTMyLCBpMzIsIGkzMiwgaTMKLSAgICU2NyA9IGxvYWQgaTY0LCBpNjQqICUxMywgYWxpZ24g OCwgIWRiZyAhMTU5LCAhdGJhYSAhMTkKLSAgICU2OCA9IGxvYWQgPDUgeCBpMzI+LCA8NSB4IGkz Mj4qICUyMSwgYWxpZ24gMzIsICFkYmcgITE2MCwgIXRiYWEgITcKLSAgIGNhbGwgdm9pZCBAX1pO MTNWYXJ5aW5nV3JpdGVyQzJFUnlSUEtqaXl1MkNNdmI1X2koJWNsYXNzLlZhcnlpbmdXcml0ZXIq ICUyMywgaTY0KiBkZXJlZmVyZW5jZWFibGUoOCkgJTE5LCBpMzIqKiBkZXJlZmVyZW5jZWFibGUo OCkgJTE0LCBpMzIgJTY2LCBpNjQgJTY3LCA8NSB4IGkzMj4gJTY4KSwgIWRiZyAhMTYxCi0tICAl NjkgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm8xNHN3aXRjaEVuY29kaW5nSTEzVW5p Zm9ybVdyaXRlcjEzVmFyeWluZ1dyaXRlckVFYk5TXzhFbmNvZGluZ0VUX1QwXyhpOCBzaWduZXh0 ICU2MiwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsIGFsaWduIDMyICUyMiwgJWNsYXNzLlZh cnlpbmdXcml0ZXIqIGJ5dmFsIGFsaWduIDMyICUyMyksICFkYmcgITE2MgotKyAgJTY5ID0gY2Fs bCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvMTRzd2l0Y2hFbmNvZGluZ0kxM1VuaWZvcm1Xcml0 ZXIxM1ZhcnlpbmdXcml0ZXJFRWJOU184RW5jb2RpbmdFVF9UMF8oaTggc2lnbmV4dCAlNjIsICVj bGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24gMzIg JTIyLCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwoJWNsYXNzLlZhcnlpbmdXcml0ZXIpIGFs aWduIDMyICUyMyksICFkYmcgITE2MgotICAgYnIgbGFiZWwgJTcwLCAhZGJnICExNjMKLSAKLSA7 IDxsYWJlbD46NzA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsgcHJlZHMg PSAlNjAKLUBAIC01MTg4LDcgKzUxODgsNyBAQCBkZWZpbmUgaW50ZXJuYWwgPDUgeCBpMzI+IEBf WjE3Z2V0X2F1eGlsaWFyeV9zdHJ2KCkgIzI4IGNvbWRhdCAhZGJnICExNzggewotIH0KLSAKLSA7 IEZ1bmN0aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2luZAotLWRlZmlu ZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvMTRzd2l0Y2hFbmNvZGluZ0kxM1Vu aWZvcm1Xcml0ZXIxM1ZhcnlpbmdXcml0ZXJFRWJOU184RW5jb2RpbmdFVF9UMF8oaTggc2lnbmV4 dCwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsIGFsaWduIDMyLCAlY2xhc3MuVmFyeWluZ1dy aXRlciogYnl2YWwgYWxpZ24gMzIpICMyNSBjb21kYXQgIWRiZyAhMTkxIHsKLStkZWZpbmUgaW50 ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzE0c3dpdGNoRW5jb2RpbmdJMTNVbmlmb3Jt V3JpdGVyMTNWYXJ5aW5nV3JpdGVyRUViTlNfOEVuY29kaW5nRVRfVDBfKGk4IHNpZ25leHQsICVj bGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24gMzIs ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCglY2xhc3MuVmFyeWluZ1dyaXRlcikgYWxpZ24g MzIpICMyNSBjb21kYXQgIWRiZyAhMTkxIHsKLSAgICU0ID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0g ICAlNSA9IGFsbG9jYSAlY2xhc3MuVW5pZm9ybVdyaXRlciwgYWxpZ24gMzIKLSAgICU2ID0gYWxs b2NhICVjbGFzcy5WYXJ5aW5nV3JpdGVyLCBhbGlnbiAzMgotQEAgLTUxOTcsNyArNTE5Nyw3IEBA IGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvMTRzd2l0Y2hFbmNvZGlu Z0kxM1VuaWZvcm1Xcml0ZXIxM1ZhcnlpCi0gICAlOCA9IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1X cml0ZXIqICU1IHRvIGk4KiwgIWRiZyAhMTk2Ci0gICAlOSA9IGJpdGNhc3QgJWNsYXNzLlVuaWZv cm1Xcml0ZXIqICUxIHRvIGk4KiwgIWRiZyAhMTk2Ci0gICBjYWxsIHZvaWQgQGxsdm0ubWVtY3B5 LnAwaTgucDBpOC5pNjQoaTgqIGFsaWduIDMyICU4LCBpOCogYWxpZ24gMzIgJTksIGk2NCA2NCwg aTEgZmFsc2UpLCAhZGJnICExOTYsICF0YmFhLnN0cnVjdCAhMTk3Ci0tICAlMTAgPSBjYWxsIHpl cm9leHQgaTEgQF9aTjlQcmludEluZm8yMnN3aXRjaEVuY29kaW5nNFVuaWZvcm1JMTNVbmlmb3Jt V3JpdGVyRUViTlNfOEVuY29kaW5nRVRfKGk4IHNpZ25leHQgJTcsICVjbGFzcy5Vbmlmb3JtV3Jp dGVyKiBieXZhbCBhbGlnbiAzMiAlNSksICFkYmcgITE5OAotKyAgJTEwID0gY2FsbCB6ZXJvZXh0 IGkxIEBfWk45UHJpbnRJbmZvMjJzd2l0Y2hFbmNvZGluZzRVbmlmb3JtSTEzVW5pZm9ybVdyaXRl ckVFYk5TXzhFbmNvZGluZ0VUXyhpOCBzaWduZXh0ICU3LCAlY2xhc3MuVW5pZm9ybVdyaXRlciog Ynl2YWwoJWNsYXNzLlVuaWZvcm1Xcml0ZXIpIGFsaWduIDMyICU1KSwgIWRiZyAhMTk4Ci0gICBi ciBpMSAlMTAsIGxhYmVsICUxNiwgbGFiZWwgJTExLCAhZGJnICExOTkKLSAKLSA7IDxsYWJlbD46 MTE6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsgcHJlZHMgPSAlMwotQEAg LTUyMDUsNyArNTIwNSw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJ bmZvMTRzd2l0Y2hFbmNvZGluZ0kxM1VuaWZvcm1Xcml0ZXIxM1ZhcnlpCi0gICAlMTMgPSBiaXRj YXN0ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiAlNiB0byBpOCosICFkYmcgITIwMQotICAgJTE0ID0g Yml0Y2FzdCAlY2xhc3MuVmFyeWluZ1dyaXRlciogJTIgdG8gaTgqLCAhZGJnICEyMDEKLSAgIGNh bGwgdm9pZCBAbGx2bS5tZW1jcHkucDBpOC5wMGk4Lmk2NChpOCogYWxpZ24gMzIgJTEzLCBpOCog YWxpZ24gMzIgJTE0LCBpNjQgNjQsIGkxIGZhbHNlKSwgIWRiZyAhMjAxLCAhdGJhYS5zdHJ1Y3Qg ITE5NwotLSAgJTE1ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvMjJzd2l0Y2hFbmNv ZGluZzRWYXJ5aW5nSTEzVmFyeWluZ1dyaXRlckVFYk5TXzhFbmNvZGluZ0VUXyhpOCBzaWduZXh0 ICUxMiwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsIGFsaWduIDMyICU2KSwgIWRiZyAhMjAy Ci0rICAlMTUgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm8yMnN3aXRjaEVuY29kaW5n NFZhcnlpbmdJMTNWYXJ5aW5nV3JpdGVyRUViTlNfOEVuY29kaW5nRVRfKGk4IHNpZ25leHQgJTEy LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwoJWNsYXNzLlZhcnlpbmdXcml0ZXIpIGFsaWdu IDMyICU2KSwgIWRiZyAhMjAyCi0gICBiciBsYWJlbCAlMTYsICFkYmcgITE5OQotIAotIDsgPGxh YmVsPjoxNjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOyBwcmVkcyA9ICUx MSwgJTMKLUBAIC01MjgwLDcgKzUyODAsNyBAQCBkZWZpbmUgaW50ZXJuYWwgdm9pZCBAX1pOMTNW YXJ5aW5nV3JpdGVyQzJFUnlSUEtqaXl1MkNNdmI1X2koJWNsYXNzLlZhcnlpbmdXcml0ZQotIH0K LSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9j YWwgaTMyIEBfX251bV9jb3JlcygpICMyOSAhZGJnICEyMzYgewotK2RlZmluZSBpbnRlcm5hbCBp MzIgQF9fbnVtX2NvcmVzKCkgIzI5ICFkYmcgITIzNiB7Ci0gICByZXQgaTMyIC0xLCAhZGJnICEy MzcKLSB9Ci0gCi1AQCAtODg3MCw3ICs4ODcwLDcgQEAgZGVjbGFyZSBkc29fbG9jYWwgdm9pZCBA X1pON2RldGFpbHMzN19fY21faW50cmluc2ljX2ltcGxfc3ZtX3NjYXR0ZXJfd3JpdGVJaUxpMUUK LSBkZWNsYXJlIHZvaWQgQGxsdm0uZ2VueC5zdm0uc2NhdHRlci52MWkxLnYxaTY0LnYxaTMyKDwx IHggaTE+LCBpMzIsIDwxIHggaTY0PiwgPDEgeCBpMzI+KSAjMjcKLSAKLSA7IEZ1bmN0aW9uIEF0 dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2luZAotLWRlZmluZSBpbnRlcm5hbCB6 ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvMjJzd2l0Y2hFbmNvZGluZzRVbmlmb3JtSTEzVW5pZm9y bVdyaXRlckVFYk5TXzhFbmNvZGluZ0VUXyhpOCBzaWduZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRl ciogYnl2YWwgYWxpZ24gMzIpICMyNSBjb21kYXQgIWRiZyAhMTY0NSB7Ci0rZGVmaW5lIGludGVy bmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm8yMnN3aXRjaEVuY29kaW5nNFVuaWZvcm1JMTNV bmlmb3JtV3JpdGVyRUViTlNfOEVuY29kaW5nRVRfKGk4IHNpZ25leHQsICVjbGFzcy5Vbmlmb3Jt V3JpdGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24gMzIpICMyNSBjb21kYXQg IWRiZyAhMTY0NSB7Ci0gICAlMyA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgJTQgPSBhbGxvY2Eg JWNsYXNzLlVuaWZvcm1Xcml0ZXIsIGFsaWduIDMyCi0gICAlNSA9IGFsbG9jYSAlInN0cnVjdC5Q cmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iLCBhbGlnbiAxCi1AQCAtODg3OSw3ICs4ODc5LDcg QEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm8yMnN3aXRjaEVuY29k aW5nNFVuaWZvcm1JMTNVbmlmb3JtV3JpdGUKLSAgICU3ID0gYml0Y2FzdCAlY2xhc3MuVW5pZm9y bVdyaXRlciogJTQgdG8gaTgqLCAhZGJnICExNjQ3Ci0gICAlOCA9IGJpdGNhc3QgJWNsYXNzLlVu aWZvcm1Xcml0ZXIqICUxIHRvIGk4KiwgIWRiZyAhMTY0NwotICAgY2FsbCB2b2lkIEBsbHZtLm1l bWNweS5wMGk4LnAwaTguaTY0KGk4KiBhbGlnbiAzMiAlNywgaTgqIGFsaWduIDMyICU4LCBpNjQg NjQsIGkxIGZhbHNlKSwgIWRiZyAhMTY0NywgIXRiYWEuc3RydWN0ICExOTcKLS0gICU5ID0gY2Fs bCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNVbmlm b3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUX1QwXyhpOCBz aWduZXh0ICU2LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwgYWxpZ24gMzIgJTQsICUic3Ry dWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsIGFsaWduIDEgJTUpLCAhZGJn ICExNjQ4Ci0rICAlOSA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwxNHN3 aXRjaEVuY29kaW5nSTEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184 RW5jb2RpbmdFVF9UMF8oaTggc2lnbmV4dCAlNiwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFs KCVjbGFzcy5Vbmlmb3JtV3JpdGVyKSBhbGlnbiAzMiAlNCwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpF bmNvZGluZzRVbmlmb3JtIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlm b3JtIikgYWxpZ24gMSAlNSksICFkYmcgITE2NDgKLSAgIHJldCBpMSAlOSwgIWRiZyAhMTY0OQot IH0KLSAKLUBAIC04ODg3LDcgKzg4ODcsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBA X1pOOVByaW50SW5mbzIyc3dpdGNoRW5jb2Rpbmc0VW5pZm9ybUkxM1VuaWZvcm1Xcml0ZQotIGRl Y2xhcmUgdm9pZCBAbGx2bS5tZW1jcHkucDBpOC5wMGk4Lmk2NChpOCogbm9jYXB0dXJlIHdyaXRl b25seSwgaTgqIG5vY2FwdHVyZSByZWFkb25seSwgaTY0LCBpMSkgIzMyCi0gCi0gOyBGdW5jdGlv biBBdHRyczogYWx3YXlzaW5saW5lIGlubGluZWhpbnQgbm91bndpbmQKLS1kZWZpbmUgaW50ZXJu YWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzIyc3dpdGNoRW5jb2Rpbmc0VmFyeWluZ0kxM1Zh cnlpbmdXcml0ZXJFRWJOU184RW5jb2RpbmdFVF8oaTggc2lnbmV4dCwgJWNsYXNzLlZhcnlpbmdX cml0ZXIqIGJ5dmFsIGFsaWduIDMyKSAjMjUgY29tZGF0ICFkYmcgITE2NTAgewotK2RlZmluZSBp bnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvMjJzd2l0Y2hFbmNvZGluZzRWYXJ5aW5n STEzVmFyeWluZ1dyaXRlckVFYk5TXzhFbmNvZGluZ0VUXyhpOCBzaWduZXh0LCAlY2xhc3MuVmFy eWluZ1dyaXRlciogYnl2YWwoJWNsYXNzLlZhcnlpbmdXcml0ZXIpIGFsaWduIDMyKSAjMjUgY29t ZGF0ICFkYmcgITE2NTAgewotICAgJTMgPSBhbGxvY2EgaTgsIGFsaWduIDEKLSAgICU0ID0gYWxs b2NhICVjbGFzcy5WYXJ5aW5nV3JpdGVyLCBhbGlnbiAzMgotICAgJTUgPSBhbGxvY2EgJSJzdHJ1 Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiwgYWxpZ24gMQotQEAgLTg4OTYsMTIgKzg4 OTYsMTIgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm8yMnN3aXRj aEVuY29kaW5nNFZhcnlpbmdJMTNWYXJ5aW5nV3JpdGUKLSAgICU3ID0gYml0Y2FzdCAlY2xhc3Mu VmFyeWluZ1dyaXRlciogJTQgdG8gaTgqLCAhZGJnICExNjUyCi0gICAlOCA9IGJpdGNhc3QgJWNs YXNzLlZhcnlpbmdXcml0ZXIqICUxIHRvIGk4KiwgIWRiZyAhMTY1MgotICAgY2FsbCB2b2lkIEBs bHZtLm1lbWNweS5wMGk4LnAwaTguaTY0KGk4KiBhbGlnbiAzMiAlNywgaTgqIGFsaWduIDMyICU4 LCBpNjQgNjQsIGkxIGZhbHNlKSwgIWRiZyAhMTY1MiwgIXRiYWEuc3RydWN0ICExOTcKLS0gICU5 ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJ MTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUX1Qw XyhpOCBzaWduZXh0ICU2LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwgYWxpZ24gMzIgJTQs ICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsIGFsaWduIDEgJTUp LCAhZGJnICExNjUzCi0rICAlOSA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRh aWwxNHN3aXRjaEVuY29kaW5nSTEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VF RWJOU184RW5jb2RpbmdFVF9UMF8oaTggc2lnbmV4dCAlNiwgJWNsYXNzLlZhcnlpbmdXcml0ZXIq IGJ5dmFsKCVjbGFzcy5WYXJ5aW5nV3JpdGVyKSBhbGlnbiAzMiAlNCwgJSJzdHJ1Y3QuUHJpbnRJ bmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGlu ZzRWYXJ5aW5nIikgYWxpZ24gMSAlNSksICFkYmcgITE2NTMKLSAgIHJldCBpMSAlOSwgIWRiZyAh MTY1NAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBu b3Vud2luZAotLWRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFp bDE0c3dpdGNoRW5jb2RpbmdJMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVF Yk5TXzhFbmNvZGluZ0VUX1QwXyhpOCBzaWduZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2 YWwgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFs IGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMTY1NSB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9l eHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1VuaWZvcm1Xcml0 ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVRfVDBfKGk4IHNpZ25leHQs ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24g MzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsKCUic3RydWN0 LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIpIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAh MTY1NSB7Ci0gICAlNCA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2EgJWNsYXNz LlVuaWZvcm1Xcml0ZXIsIGFsaWduIDMyCi0gICAlNiA9IGFsbG9jYSAlInN0cnVjdC5QcmludElu Zm86OkVuY29kaW5nNFVuaWZvcm0iLCBhbGlnbiAxCi1AQCAtODkyNCw3ICs4OTI0LDcgQEAgZGVm aW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNv ZGluZ0kxM1VuaWZvcm1Xcml0ZXIKLSAgICUyMiA9IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0 ZXIqICU1IHRvIGk4KiwgIWRiZyAhMTY1NwotICAgJTIzID0gYml0Y2FzdCAlY2xhc3MuVW5pZm9y bVdyaXRlciogJTEgdG8gaTgqLCAhZGJnICExNjU3Ci0gICBjYWxsIHZvaWQgQGxsdm0ubWVtY3B5 LnAwaTgucDBpOC5pNjQoaTgqIGFsaWduIDMyICUyMiwgaTgqIGFsaWduIDMyICUyMywgaTY0IDY0 LCBpMSBmYWxzZSksICFkYmcgITE2NTcsICF0YmFhLnN0cnVjdCAhMTk3Ci0tICAlMjQgPSBjYWxs IHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJ YjEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBf VDFfKGk4IHNpZ25leHQgJTIxLCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwgYWxpZ24gMzIg JTUsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsIGFsaWduIDEg JTYpLCAhZGJnICExNjU4Ci0rICAlMjQgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82 ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJYjEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rp bmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTIxLCAlY2xhc3Mu VW5pZm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1Xcml0ZXIpIGFsaWduIDMyICU1LCAl InN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCglInN0cnVjdC5Qcmlu dEluZm86OkVuY29kaW5nNFVuaWZvcm0iKSBhbGlnbiAxICU2KSwgIWRiZyAhMTY1OAotICAgYnIg aTEgJTI0LCBsYWJlbCAlNjAsIGxhYmVsICUyNSwgIWRiZyAhMTY1OQotIAotIDsgPGxhYmVsPjoy NTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOyBwcmVkcyA9ICUzCi1AQCAt ODkzMiw3ICs4OTMyLDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludElu Zm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1VuaWZvcm1Xcml0ZXIKLSAgICUyNyA9IGJpdGNh c3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqICU3IHRvIGk4KiwgIWRiZyAhMTY2MQotICAgJTI4ID0g Yml0Y2FzdCAlY2xhc3MuVW5pZm9ybVdyaXRlciogJTEgdG8gaTgqLCAhZGJnICExNjYxCi0gICBj YWxsIHZvaWQgQGxsdm0ubWVtY3B5LnAwaTgucDBpOC5pNjQoaTgqIGFsaWduIDMyICUyNywgaTgq IGFsaWduIDMyICUyOCwgaTY0IDY0LCBpMSBmYWxzZSksICFkYmcgITE2NjEsICF0YmFhLnN0cnVj dCAhMTk3Ci0tICAlMjkgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFh cHBseUlmUHJvcGVyRW5jb2RpbmdJaTEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9y bUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTI2LCAlY2xhc3MuVW5pZm9ybVdy aXRlciogYnl2YWwgYWxpZ24gMzIgJTcsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5p Zm9ybSIqIGJ5dmFsIGFsaWduIDEgJTgpLCAhZGJnICExNjYyCi0rICAlMjkgPSBjYWxsIHplcm9l eHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJaTEzVW5p Zm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4 IHNpZ25leHQgJTI2LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1X cml0ZXIpIGFsaWduIDMyICU3LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0i KiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKSBhbGlnbiAxICU4 KSwgIWRiZyAhMTY2MgotICAgYnIgaTEgJTI5LCBsYWJlbCAlNjAsIGxhYmVsICUzMCwgIWRiZyAh MTY2MwotIAotIDsgPGxhYmVsPjozMDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgOyBwcmVkcyA9ICUyNQotQEAgLTg5NDAsNyArODk0MCw3IEBAIGRlZmluZSBpbnRlcm5hbCB6 ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNVbmlmb3Jt V3JpdGVyCi0gICAlMzIgPSBiaXRjYXN0ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiAlOSB0byBpOCos ICFkYmcgITE2NjUKLSAgICUzMyA9IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqICUxIHRv IGk4KiwgIWRiZyAhMTY2NQotICAgY2FsbCB2b2lkIEBsbHZtLm1lbWNweS5wMGk4LnAwaTguaTY0 KGk4KiBhbGlnbiAzMiAlMzIsIGk4KiBhbGlnbiAzMiAlMzMsIGk2NCA2NCwgaTEgZmFsc2UpLCAh ZGJnICExNjY1LCAhdGJhYS5zdHJ1Y3QgITE5NwotLSAgJTM0ID0gY2FsbCB6ZXJvZXh0IGkxIEBf Wk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWoxM1VuaWZvcm1Xcml0 ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0 ICUzMSwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsIGFsaWduIDMyICU5LCAlInN0cnVjdC5Q cmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCBhbGlnbiAxICUxMCksICFkYmcgITE2 NjYKLSsgICUzNCA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5 SWZQcm9wZXJFbmNvZGluZ0lqMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVF Yk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlMzEsICVjbGFzcy5Vbmlmb3JtV3JpdGVy KiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24gMzIgJTksICUic3RydWN0LlByaW50 SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rp bmc0VW5pZm9ybSIpIGFsaWduIDEgJTEwKSwgIWRiZyAhMTY2NgotICAgYnIgaTEgJTM0LCBsYWJl bCAlNjAsIGxhYmVsICUzNSwgIWRiZyAhMTY2NwotIAotIDsgPGxhYmVsPjozNTogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgOyBwcmVkcyA9ICUzMAotQEAgLTg5NDgsNyArODk0 OCw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0 c3dpdGNoRW5jb2RpbmdJMTNVbmlmb3JtV3JpdGVyCi0gICAlMzcgPSBiaXRjYXN0ICVjbGFzcy5V bmlmb3JtV3JpdGVyKiAlMTEgdG8gaTgqLCAhZGJnICExNjY5Ci0gICAlMzggPSBiaXRjYXN0ICVj bGFzcy5Vbmlmb3JtV3JpdGVyKiAlMSB0byBpOCosICFkYmcgITE2NjkKLSAgIGNhbGwgdm9pZCBA bGx2bS5tZW1jcHkucDBpOC5wMGk4Lmk2NChpOCogYWxpZ24gMzIgJTM3LCBpOCogYWxpZ24gMzIg JTM4LCBpNjQgNjQsIGkxIGZhbHNlKSwgIWRiZyAhMTY2OSwgIXRiYWEuc3RydWN0ICExOTcKLS0g ICUzOSA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9w ZXJFbmNvZGluZ0lmMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhF bmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlMzYsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZh bCBhbGlnbiAzMiAlMTEsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5 dmFsIGFsaWduIDEgJTEyKSwgIWRiZyAhMTY3MAotKyAgJTM5ID0gY2FsbCB6ZXJvZXh0IGkxIEBf Wk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWYxM1VuaWZvcm1Xcml0 ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0 ICUzNiwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsKCVjbGFzcy5Vbmlmb3JtV3JpdGVyKSBh bGlnbiAzMiAlMTEsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFs KCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIpIGFsaWduIDEgJTEyKSwgIWRi ZyAhMTY3MAotICAgYnIgaTEgJTM5LCBsYWJlbCAlNjAsIGxhYmVsICU0MCwgIWRiZyAhMTY3MQot IAotIDsgPGxhYmVsPjo0MDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOyBw cmVkcyA9ICUzNQotQEAgLTg5NTYsNyArODk1Niw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0 IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNVbmlmb3JtV3JpdGVy Ci0gICAlNDIgPSBiaXRjYXN0ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiAlMTMgdG8gaTgqLCAhZGJn ICExNjczCi0gICAlNDMgPSBiaXRjYXN0ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiAlMSB0byBpOCos ICFkYmcgITE2NzMKLSAgIGNhbGwgdm9pZCBAbGx2bS5tZW1jcHkucDBpOC5wMGk4Lmk2NChpOCog YWxpZ24gMzIgJTQyLCBpOCogYWxpZ24gMzIgJTQzLCBpNjQgNjQsIGkxIGZhbHNlKSwgIWRiZyAh MTY3MywgIXRiYWEuc3RydWN0ICExOTcKLS0gICU0NCA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVBy aW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0l4MTNVbmlmb3JtV3JpdGVyTlNf MTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlNDEs ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBhbGlnbiAzMiAlMTMsICUic3RydWN0LlByaW50 SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsIGFsaWduIDEgJTE0KSwgIWRiZyAhMTY3NAot KyAgJTQ0ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlBy b3BlckVuY29kaW5nSXgxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNf OEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICU0MSwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5 dmFsKCVjbGFzcy5Vbmlmb3JtV3JpdGVyKSBhbGlnbiAzMiAlMTMsICUic3RydWN0LlByaW50SW5m bzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0 VW5pZm9ybSIpIGFsaWduIDEgJTE0KSwgIWRiZyAhMTY3NAotICAgYnIgaTEgJTQ0LCBsYWJlbCAl NjAsIGxhYmVsICU0NSwgIWRiZyAhMTY3NQotIAotIDsgPGxhYmVsPjo0NTogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgOyBwcmVkcyA9ICU0MAotQEAgLTg5NjQsNyArODk2NCw3 IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dp dGNoRW5jb2RpbmdJMTNVbmlmb3JtV3JpdGVyCi0gICAlNDcgPSBiaXRjYXN0ICVjbGFzcy5Vbmlm b3JtV3JpdGVyKiAlMTUgdG8gaTgqLCAhZGJnICExNjc3Ci0gICAlNDggPSBiaXRjYXN0ICVjbGFz cy5Vbmlmb3JtV3JpdGVyKiAlMSB0byBpOCosICFkYmcgITE2NzcKLSAgIGNhbGwgdm9pZCBAbGx2 bS5tZW1jcHkucDBpOC5wMGk4Lmk2NChpOCogYWxpZ24gMzIgJTQ3LCBpOCogYWxpZ24gMzIgJTQ4 LCBpNjQgNjQsIGkxIGZhbHNlKSwgIWRiZyAhMTY3NywgIXRiYWEuc3RydWN0ICExOTcKLS0gICU0 OSA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJF bmNvZGluZ0l5MTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNv ZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlNDYsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBh bGlnbiAzMiAlMTUsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFs IGFsaWduIDEgJTE2KSwgIWRiZyAhMTY3OAotKyAgJTQ5ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45 UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSXkxM1VuaWZvcm1Xcml0ZXJO U18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICU0 NiwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsKCVjbGFzcy5Vbmlmb3JtV3JpdGVyKSBhbGln biAzMiAlMTUsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsKCUi c3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIpIGFsaWduIDEgJTE2KSwgIWRiZyAh MTY3OAotICAgYnIgaTEgJTQ5LCBsYWJlbCAlNjAsIGxhYmVsICU1MCwgIWRiZyAhMTY3OQotIAot IDsgPGxhYmVsPjo1MDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOyBwcmVk cyA9ICU0NQotQEAgLTg5NzIsNyArODk3Miw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkx IEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNVbmlmb3JtV3JpdGVyCi0g ICAlNTIgPSBiaXRjYXN0ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiAlMTcgdG8gaTgqLCAhZGJnICEx NjgxCi0gICAlNTMgPSBiaXRjYXN0ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiAlMSB0byBpOCosICFk YmcgITE2ODEKLSAgIGNhbGwgdm9pZCBAbGx2bS5tZW1jcHkucDBpOC5wMGk4Lmk2NChpOCogYWxp Z24gMzIgJTUyLCBpOCogYWxpZ24gMzIgJTUzLCBpNjQgNjQsIGkxIGZhbHNlKSwgIWRiZyAhMTY4 MSwgIXRiYWEuc3RydWN0ICExOTcKLS0gICU1NCA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50 SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lkMTNVbmlmb3JtV3JpdGVyTlNfMTZF bmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlNTEsICVj bGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBhbGlnbiAzMiAlMTcsICUic3RydWN0LlByaW50SW5m bzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsIGFsaWduIDEgJTE4KSwgIWRiZyAhMTY4MgotKyAg JTU0ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3Bl ckVuY29kaW5nSWQxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVu Y29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICU1MSwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFs KCVjbGFzcy5Vbmlmb3JtV3JpdGVyKSBhbGlnbiAzMiAlMTcsICUic3RydWN0LlByaW50SW5mbzo6 RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5p Zm9ybSIpIGFsaWduIDEgJTE4KSwgIWRiZyAhMTY4MgotICAgYnIgaTEgJTU0LCBsYWJlbCAlNjAs IGxhYmVsICU1NSwgIWRiZyAhMTY4MwotIAotIDsgPGxhYmVsPjo1NTogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgOyBwcmVkcyA9ICU1MAotQEAgLTg5ODAsNyArODk4MCw3IEBA IGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNo RW5jb2RpbmdJMTNVbmlmb3JtV3JpdGVyCi0gICAlNTcgPSBiaXRjYXN0ICVjbGFzcy5Vbmlmb3Jt V3JpdGVyKiAlMTkgdG8gaTgqLCAhZGJnICExNjg1Ci0gICAlNTggPSBiaXRjYXN0ICVjbGFzcy5V bmlmb3JtV3JpdGVyKiAlMSB0byBpOCosICFkYmcgITE2ODUKLSAgIGNhbGwgdm9pZCBAbGx2bS5t ZW1jcHkucDBpOC5wMGk4Lmk2NChpOCogYWxpZ24gMzIgJTU3LCBpOCogYWxpZ24gMzIgJTU4LCBp NjQgNjQsIGkxIGZhbHNlKSwgIWRiZyAhMTY4NSwgIXRiYWEuc3RydWN0ICExOTcKLS0gICU1OSA9 IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNv ZGluZ0lQdjEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2Rp bmdFVDBfVDFfKGk4IHNpZ25leHQgJTU2LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwgYWxp Z24gMzIgJTE5LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCBh bGlnbiAxICUyMCksICFkYmcgITE2ODYKLSsgICU1OSA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVBy aW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lQdjEzVW5pZm9ybVdyaXRlck5T XzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTU2 LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1Xcml0ZXIpIGFsaWdu IDMyICUxOSwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwoJSJz dHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIikgYWxpZ24gMSAlMjApLCAhZGJnICEx Njg2Ci0gICBiciBsYWJlbCAlNjAsICFkYmcgITE2ODMKLSAKLSA7IDxsYWJlbD46NjA6ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsgcHJlZHMgPSAlNTUsICU1MCwgJTQ1LCAl NDAsICUzNSwgJTMwLCAlMjUsICUzCi1AQCAtODk4OSw3ICs4OTg5LDcgQEAgZGVmaW5lIGludGVy bmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1Vu aWZvcm1Xcml0ZXIKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogYWx3YXlzaW5saW5lIGlubGlu ZWhpbnQgbm91bndpbmQKLS1kZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5m bzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0liMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNv ZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlVu aWZvcm1Xcml0ZXIqIGJ5dmFsIGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5n NFVuaWZvcm0iKiBieXZhbCBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITE2ODggewotK2RlZmlu ZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3Bl ckVuY29kaW5nSWIxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVu Y29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwoJWNs YXNzLlVuaWZvcm1Xcml0ZXIpIGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5n NFVuaWZvcm0iKiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKSBh bGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITE2ODggewotICAgJTQgPSBhbGxvY2EgaTEsIGFsaWdu IDEKLSAgICU1ID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0gICBzdG9yZSBpOCAlMCwgaTgqICU1LCBh bGlnbiAxLCAhdGJhYSAhMTkzCi1AQCAtOTAxNSw3ICs5MDE1LDcgQEAgZGVmaW5lIGludGVybmFs IHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJ YjEzVW5pZm8KLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogYWx3YXlzaW5saW5lIGlubGluZWhp bnQgbm91bndpbmQKLS1kZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZk ZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lpMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGlu ZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZv cm1Xcml0ZXIqIGJ5dmFsIGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVu aWZvcm0iKiBieXZhbCBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITE2OTcgewotK2RlZmluZSBp bnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVu Y29kaW5nSWkxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29k aW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwoJWNsYXNz LlVuaWZvcm1Xcml0ZXIpIGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVu aWZvcm0iKiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKSBhbGln biAxKSAjMjUgY29tZGF0ICFkYmcgITE2OTcgewotICAgJTQgPSBhbGxvY2EgaTEsIGFsaWduIDEK LSAgICU1ID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0gICBzdG9yZSBpOCAlMCwgaTgqICU1LCBhbGln biAxLCAhdGJhYSAhMTkzCi1AQCAtOTA0MSw3ICs5MDQxLDcgQEAgZGVmaW5lIGludGVybmFsIHpl cm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJaTEz VW5pZm8KLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogYWx3YXlzaW5saW5lIGlubGluZWhpbnQg bm91bndpbmQKLS1kZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRh aWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lqMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRV bmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1X cml0ZXIqIGJ5dmFsIGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZv cm0iKiBieXZhbCBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITE3MDYgewotK2RlZmluZSBpbnRl cm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29k aW5nSWoxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5n RVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVu aWZvcm1Xcml0ZXIpIGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZv cm0iKiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKSBhbGlnbiAx KSAjMjUgY29tZGF0ICFkYmcgITE3MDYgewotICAgJTQgPSBhbGxvY2EgaTEsIGFsaWduIDEKLSAg ICU1ID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0gICBzdG9yZSBpOCAlMCwgaTgqICU1LCBhbGlnbiAx LCAhdGJhYSAhMTkzCi1AQCAtOTA2Nyw3ICs5MDY3LDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9l eHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJajEzVW5p Zm8KLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogYWx3YXlzaW5saW5lIGlubGluZWhpbnQgbm91 bndpbmQKLS1kZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwy MWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lmMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlm b3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1Xcml0 ZXIqIGJ5dmFsIGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0i KiBieXZhbCBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITE3MTUgewotK2RlZmluZSBpbnRlcm5h bCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5n SWYxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQw X1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZv cm1Xcml0ZXIpIGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0i KiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKSBhbGlnbiAxKSAj MjUgY29tZGF0ICFkYmcgITE3MTUgewotICAgJTQgPSBhbGxvY2EgaTEsIGFsaWduIDEKLSAgICU1 ID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0gICBzdG9yZSBpOCAlMCwgaTgqICU1LCBhbGlnbiAxLCAh dGJhYSAhMTkzCi1AQCAtOTA5Myw3ICs5MDkzLDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQg aTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJZjEzVW5pZm8K LSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogYWx3YXlzaW5saW5lIGlubGluZWhpbnQgbm91bndp bmQKLS1kZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFw cGx5SWZQcm9wZXJFbmNvZGluZ0l4MTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3Jt RUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIq IGJ5dmFsIGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBi eXZhbCBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITE3MjQgewotK2RlZmluZSBpbnRlcm5hbCB6 ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSXgx M1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1Qx XyhpOCBzaWduZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1X cml0ZXIpIGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBi eXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKSBhbGlnbiAxKSAjMjUg Y29tZGF0ICFkYmcgITE3MjQgewotICAgJTQgPSBhbGxvY2EgaTEsIGFsaWduIDEKLSAgICU1ID0g YWxsb2NhIGk4LCBhbGlnbiAxCi0gICBzdG9yZSBpOCAlMCwgaTgqICU1LCBhbGlnbiAxLCAhdGJh YSAhMTkzCi1AQCAtOTExOSw3ICs5MTE5LDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEg QF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJeDEzVW5pZm8KLSB9 Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogYWx3YXlzaW5saW5lIGlubGluZWhpbnQgbm91bndpbmQK LS1kZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5 SWZQcm9wZXJFbmNvZGluZ0l5MTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVF Yk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5 dmFsIGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZh bCBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITE3MzMgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJv ZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSXkxM1Vu aWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhp OCBzaWduZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1Xcml0 ZXIpIGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZh bCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKSBhbGlnbiAxKSAjMjUgY29t ZGF0ICFkYmcgITE3MzMgewotICAgJTQgPSBhbGxvY2EgaTEsIGFsaWduIDEKLSAgICU1ID0gYWxs b2NhIGk4LCBhbGlnbiAxCi0gICBzdG9yZSBpOCAlMCwgaTgqICU1LCBhbGlnbiAxLCAhdGJhYSAh MTkzCi1AQCAtOTE0NSw3ICs5MTQ1LDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9a TjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJeTEzVW5pZm8KLSB9Ci0g Ci0gOyBGdW5jdGlvbiBBdHRyczogYWx3YXlzaW5saW5lIGlubGluZWhpbnQgbm91bndpbmQKLS1k ZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQ cm9wZXJFbmNvZGluZ0lkMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5T XzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFs IGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCBh bGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITE3NDIgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0 IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWQxM1VuaWZv cm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBz aWduZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1Xcml0ZXIp IGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCgl InN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKSBhbGlnbiAxKSAjMjUgY29tZGF0 ICFkYmcgITE3NDIgewotICAgJTQgPSBhbGxvY2EgaTEsIGFsaWduIDEKLSAgICU1ID0gYWxsb2Nh IGk4LCBhbGlnbiAxCi0gICBzdG9yZSBpOCAlMCwgaTgqICU1LCBhbGlnbiAxLCAhdGJhYSAhMTkz Ci1AQCAtOTE3MSw3ICs5MTcxLDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQ cmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJZDEzVW5pZm8KLSB9Ci0gCi0g OyBGdW5jdGlvbiBBdHRyczogYWx3YXlzaW5saW5lIGlubGluZWhpbnQgbm91bndpbmQKLS1kZWZp bmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9w ZXJFbmNvZGluZ0lQdjEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184 RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBh bGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwgYWxp Z24gMSkgIzI1IGNvbWRhdCAhZGJnICExNzUxIHsKLStkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBp MSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lQdjEzVW5pZm9y bVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNp Z25leHQsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikg YWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsKCUi c3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIpIGFsaWduIDEpICMyNSBjb21kYXQg IWRiZyAhMTc1MSB7Ci0gICAlNCA9IGFsbG9jYSBpMSwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2Eg aTgsIGFsaWduIDEKLSAgIHN0b3JlIGk4ICUwLCBpOCogJTUsIGFsaWduIDEsICF0YmFhICExOTMK LUBAIC0xMDAxMyw3ICsxMDAxMyw3IEBAIGRlZmluZSBpbnRlcm5hbCBpMzIgQF9aTjdkZXRhaWxz MThfY21fcHJpbnRfdHlwZV9vY2xJUHZFRU5TXzE4U0hBREVSX1BSSU5URl9UWVBFCi0gfQotIAot IDsgRnVuY3Rpb24gQXR0cnM6IGFsd2F5c2lubGluZSBpbmxpbmVoaW50IG5vdW53aW5kCi0tZGVm aW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNv ZGluZ0kxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5n RVRfVDBfKGk4IHNpZ25leHQsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCBhbGlnbiAzMiwg JSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwgYWxpZ24gMSkgIzI1 IGNvbWRhdCAhZGJnICEyMDYxIHsKLStkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVBy aW50SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rp bmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVF9UMF8oaTggc2lnbmV4dCwgJWNsYXNzLlZhcnlp bmdXcml0ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5aW5nV3JpdGVyKSBhbGlnbiAzMiwgJSJzdHJ1Y3Qu UHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpF bmNvZGluZzRWYXJ5aW5nIikgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICEyMDYxIHsKLSAgICU0 ID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSAlY2xhc3MuVmFyeWluZ1dyaXRl ciwgYWxpZ24gMzIKLSAgICU2ID0gYWxsb2NhICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0 VmFyeWluZyIsIGFsaWduIDEKLUBAIC0xMDAzNiw3ICsxMDAzNiw3IEBAIGRlZmluZSBpbnRlcm5h bCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNWYXJ5 aW5nV3JpdGVyCi0gICAlMjIgPSBiaXRjYXN0ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiAlNSB0byBp OCosICFkYmcgITIwNjMKLSAgICUyMyA9IGJpdGNhc3QgJWNsYXNzLlZhcnlpbmdXcml0ZXIqICUx IHRvIGk4KiwgIWRiZyAhMjA2MwotICAgY2FsbCB2b2lkIEBsbHZtLm1lbWNweS5wMGk4LnAwaTgu aTY0KGk4KiBhbGlnbiAzMiAlMjIsIGk4KiBhbGlnbiAzMiAlMjMsIGk2NCA2NCwgaTEgZmFsc2Up LCAhZGJnICEyMDYzLCAhdGJhYS5zdHJ1Y3QgITE5NwotLSAgJTI0ID0gY2FsbCB6ZXJvZXh0IGkx IEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWIxM1ZhcnlpbmdX cml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWdu ZXh0ICUyMSwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsIGFsaWduIDMyICU1LCAlInN0cnVj dC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCBhbGlnbiAxICU2KSwgIWRiZyAh MjA2NAotKyAgJTI0ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBw bHlJZlByb3BlckVuY29kaW5nSWIxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdF RUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICUyMSwgJWNsYXNzLlZhcnlpbmdXcml0 ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5aW5nV3JpdGVyKSBhbGlnbiAzMiAlNSwgJSJzdHJ1Y3QuUHJp bnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNv ZGluZzRWYXJ5aW5nIikgYWxpZ24gMSAlNiksICFkYmcgITIwNjQKLSAgIGJyIGkxICUyNCwgbGFi ZWwgJTYwLCBsYWJlbCAlMjUsICFkYmcgITIwNjUKLSAKLSA7IDxsYWJlbD46MjU6ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsgcHJlZHMgPSAlMwotQEAgLTEwMDQ0LDcgKzEw MDQ0LDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWls MTRzd2l0Y2hFbmNvZGluZ0kxM1ZhcnlpbmdXcml0ZXIKLSAgICUyNyA9IGJpdGNhc3QgJWNsYXNz LlZhcnlpbmdXcml0ZXIqICU3IHRvIGk4KiwgIWRiZyAhMjA2NwotICAgJTI4ID0gYml0Y2FzdCAl Y2xhc3MuVmFyeWluZ1dyaXRlciogJTEgdG8gaTgqLCAhZGJnICEyMDY3Ci0gICBjYWxsIHZvaWQg QGxsdm0ubWVtY3B5LnAwaTgucDBpOC5pNjQoaTgqIGFsaWduIDMyICUyNywgaTgqIGFsaWduIDMy ICUyOCwgaTY0IDY0LCBpMSBmYWxzZSksICFkYmcgITIwNjcsICF0YmFhLnN0cnVjdCAhMTk3Ci0t ICAlMjkgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJv cGVyRW5jb2RpbmdJaTEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184 RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTI2LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2 YWwgYWxpZ24gMzIgJTcsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5 dmFsIGFsaWduIDEgJTgpLCAhZGJnICEyMDY4Ci0rICAlMjkgPSBjYWxsIHplcm9leHQgaTEgQF9a TjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJaTEzVmFyeWluZ1dyaXRl ck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQg JTI2LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwoJWNsYXNzLlZhcnlpbmdXcml0ZXIpIGFs aWduIDMyICU3LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCgl InN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKSBhbGlnbiAxICU4KSwgIWRiZyAh MjA2OAotICAgYnIgaTEgJTI5LCBsYWJlbCAlNjAsIGxhYmVsICUzMCwgIWRiZyAhMjA2OQotIAot IDsgPGxhYmVsPjozMDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOyBwcmVk cyA9ICUyNQotQEAgLTEwMDUyLDcgKzEwMDUyLDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQg aTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1ZhcnlpbmdXcml0ZXIK LSAgICUzMiA9IGJpdGNhc3QgJWNsYXNzLlZhcnlpbmdXcml0ZXIqICU5IHRvIGk4KiwgIWRiZyAh MjA3MQotICAgJTMzID0gYml0Y2FzdCAlY2xhc3MuVmFyeWluZ1dyaXRlciogJTEgdG8gaTgqLCAh ZGJnICEyMDcxCi0gICBjYWxsIHZvaWQgQGxsdm0ubWVtY3B5LnAwaTgucDBpOC5pNjQoaTgqIGFs aWduIDMyICUzMiwgaTgqIGFsaWduIDMyICUzMywgaTY0IDY0LCBpMSBmYWxzZSksICFkYmcgITIw NzEsICF0YmFhLnN0cnVjdCAhMTk3Ci0tICAlMzQgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmlu dEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJajEzVmFyeWluZ1dyaXRlck5TXzE2 RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTMxLCAl Y2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwgYWxpZ24gMzIgJTksICUic3RydWN0LlByaW50SW5m bzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsIGFsaWduIDEgJTEwKSwgIWRiZyAhMjA3MgotKyAg JTM0ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3Bl ckVuY29kaW5nSWoxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVu Y29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICUzMSwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFs KCVjbGFzcy5WYXJ5aW5nV3JpdGVyKSBhbGlnbiAzMiAlOSwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpF bmNvZGluZzRWYXJ5aW5nIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5 aW5nIikgYWxpZ24gMSAlMTApLCAhZGJnICEyMDcyCi0gICBiciBpMSAlMzQsIGxhYmVsICU2MCwg bGFiZWwgJTM1LCAhZGJnICEyMDczCi0gCi0gOyA8bGFiZWw+OjM1OiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICA7IHByZWRzID0gJTMwCi1AQCAtMTAwNjAsNyArMTAwNjAsNyBA QCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwxNHN3aXRj aEVuY29kaW5nSTEzVmFyeWluZ1dyaXRlcgotICAgJTM3ID0gYml0Y2FzdCAlY2xhc3MuVmFyeWlu Z1dyaXRlciogJTExIHRvIGk4KiwgIWRiZyAhMjA3NQotICAgJTM4ID0gYml0Y2FzdCAlY2xhc3Mu VmFyeWluZ1dyaXRlciogJTEgdG8gaTgqLCAhZGJnICEyMDc1Ci0gICBjYWxsIHZvaWQgQGxsdm0u bWVtY3B5LnAwaTgucDBpOC5pNjQoaTgqIGFsaWduIDMyICUzNywgaTgqIGFsaWduIDMyICUzOCwg aTY0IDY0LCBpMSBmYWxzZSksICFkYmcgITIwNzUsICF0YmFhLnN0cnVjdCAhMTk3Ci0tICAlMzkg PSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5j b2RpbmdJZjEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2Rp bmdFVDBfVDFfKGk4IHNpZ25leHQgJTM2LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwgYWxp Z24gMzIgJTExLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCBh bGlnbiAxICUxMiksICFkYmcgITIwNzYKLSsgICUzOSA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVBy aW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lmMTNWYXJ5aW5nV3JpdGVyTlNf MTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlMzYs ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCglY2xhc3MuVmFyeWluZ1dyaXRlcikgYWxpZ24g MzIgJTExLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCglInN0 cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKSBhbGlnbiAxICUxMiksICFkYmcgITIw NzYKLSAgIGJyIGkxICUzOSwgbGFiZWwgJTYwLCBsYWJlbCAlNDAsICFkYmcgITIwNzcKLSAKLSA7 IDxsYWJlbD46NDA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsgcHJlZHMg PSAlMzUKLUBAIC0xMDA2OCw3ICsxMDA2OCw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkx IEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNWYXJ5aW5nV3JpdGVyCi0g ICAlNDIgPSBiaXRjYXN0ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiAlMTMgdG8gaTgqLCAhZGJnICEy MDc5Ci0gICAlNDMgPSBiaXRjYXN0ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiAlMSB0byBpOCosICFk YmcgITIwNzkKLSAgIGNhbGwgdm9pZCBAbGx2bS5tZW1jcHkucDBpOC5wMGk4Lmk2NChpOCogYWxp Z24gMzIgJTQyLCBpOCogYWxpZ24gMzIgJTQzLCBpNjQgNjQsIGkxIGZhbHNlKSwgIWRiZyAhMjA3 OSwgIXRiYWEuc3RydWN0ICExOTcKLS0gICU0NCA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50 SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0l4MTNWYXJ5aW5nV3JpdGVyTlNfMTZF bmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlNDEsICVj bGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCBhbGlnbiAzMiAlMTMsICUic3RydWN0LlByaW50SW5m bzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsIGFsaWduIDEgJTE0KSwgIWRiZyAhMjA4MAotKyAg JTQ0ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3Bl ckVuY29kaW5nSXgxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVu Y29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICU0MSwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFs KCVjbGFzcy5WYXJ5aW5nV3JpdGVyKSBhbGlnbiAzMiAlMTMsICUic3RydWN0LlByaW50SW5mbzo6 RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFy eWluZyIpIGFsaWduIDEgJTE0KSwgIWRiZyAhMjA4MAotICAgYnIgaTEgJTQ0LCBsYWJlbCAlNjAs IGxhYmVsICU0NSwgIWRiZyAhMjA4MQotIAotIDsgPGxhYmVsPjo0NTogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgOyBwcmVkcyA9ICU0MAotQEAgLTEwMDc2LDcgKzEwMDc2LDcg QEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0 Y2hFbmNvZGluZ0kxM1ZhcnlpbmdXcml0ZXIKLSAgICU0NyA9IGJpdGNhc3QgJWNsYXNzLlZhcnlp bmdXcml0ZXIqICUxNSB0byBpOCosICFkYmcgITIwODMKLSAgICU0OCA9IGJpdGNhc3QgJWNsYXNz LlZhcnlpbmdXcml0ZXIqICUxIHRvIGk4KiwgIWRiZyAhMjA4MwotICAgY2FsbCB2b2lkIEBsbHZt Lm1lbWNweS5wMGk4LnAwaTguaTY0KGk4KiBhbGlnbiAzMiAlNDcsIGk4KiBhbGlnbiAzMiAlNDgs IGk2NCA2NCwgaTEgZmFsc2UpLCAhZGJnICEyMDgzLCAhdGJhYS5zdHJ1Y3QgITE5NwotLSAgJTQ5 ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVu Y29kaW5nSXkxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29k aW5nRVQwX1QxXyhpOCBzaWduZXh0ICU0NiwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsIGFs aWduIDMyICUxNSwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwg YWxpZ24gMSAlMTYpLCAhZGJnICEyMDg0Ci0rICAlNDkgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQ cmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJeTEzVmFyeWluZ1dyaXRlck5T XzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTQ2 LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwoJWNsYXNzLlZhcnlpbmdXcml0ZXIpIGFsaWdu IDMyICUxNSwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwoJSJz dHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIikgYWxpZ24gMSAlMTYpLCAhZGJnICEy MDg0Ci0gICBiciBpMSAlNDksIGxhYmVsICU2MCwgbGFiZWwgJTUwLCAhZGJnICEyMDg1Ci0gCi0g OyA8bGFiZWw+OjUwOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7IHByZWRz ID0gJTQ1Ci1AQCAtMTAwODQsNyArMTAwODQsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBp MSBAX1pOOVByaW50SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEzVmFyeWluZ1dyaXRlcgot ICAgJTUyID0gYml0Y2FzdCAlY2xhc3MuVmFyeWluZ1dyaXRlciogJTE3IHRvIGk4KiwgIWRiZyAh MjA4NwotICAgJTUzID0gYml0Y2FzdCAlY2xhc3MuVmFyeWluZ1dyaXRlciogJTEgdG8gaTgqLCAh ZGJnICEyMDg3Ci0gICBjYWxsIHZvaWQgQGxsdm0ubWVtY3B5LnAwaTgucDBpOC5pNjQoaTgqIGFs aWduIDMyICU1MiwgaTgqIGFsaWduIDMyICU1MywgaTY0IDY0LCBpMSBmYWxzZSksICFkYmcgITIw ODcsICF0YmFhLnN0cnVjdCAhMTk3Ci0tICAlNTQgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmlu dEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJZDEzVmFyeWluZ1dyaXRlck5TXzE2 RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTUxLCAl Y2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwgYWxpZ24gMzIgJTE3LCAlInN0cnVjdC5QcmludElu Zm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCBhbGlnbiAxICUxOCksICFkYmcgITIwODgKLSsg ICU1NCA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9w ZXJFbmNvZGluZ0lkMTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhF bmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlNTEsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZh bCglY2xhc3MuVmFyeWluZ1dyaXRlcikgYWxpZ24gMzIgJTE3LCAlInN0cnVjdC5QcmludEluZm86 OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZh cnlpbmciKSBhbGlnbiAxICUxOCksICFkYmcgITIwODgKLSAgIGJyIGkxICU1NCwgbGFiZWwgJTYw LCBsYWJlbCAlNTUsICFkYmcgITIwODkKLSAKLSA7IDxsYWJlbD46NTU6ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDsgcHJlZHMgPSAlNTAKLUBAIC0xMDA5Miw3ICsxMDA5Miw3 IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dp dGNoRW5jb2RpbmdJMTNWYXJ5aW5nV3JpdGVyCi0gICAlNTcgPSBiaXRjYXN0ICVjbGFzcy5WYXJ5 aW5nV3JpdGVyKiAlMTkgdG8gaTgqLCAhZGJnICEyMDkxCi0gICAlNTggPSBiaXRjYXN0ICVjbGFz cy5WYXJ5aW5nV3JpdGVyKiAlMSB0byBpOCosICFkYmcgITIwOTEKLSAgIGNhbGwgdm9pZCBAbGx2 bS5tZW1jcHkucDBpOC5wMGk4Lmk2NChpOCogYWxpZ24gMzIgJTU3LCBpOCogYWxpZ24gMzIgJTU4 LCBpNjQgNjQsIGkxIGZhbHNlKSwgIWRiZyAhMjA5MSwgIXRiYWEuc3RydWN0ICExOTcKLS0gICU1 OSA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJF bmNvZGluZ0lQdjEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5j b2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTU2LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwg YWxpZ24gMzIgJTE5LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZh bCBhbGlnbiAxICUyMCksICFkYmcgITIwOTIKLSsgICU1OSA9IGNhbGwgemVyb2V4dCBpMSBAX1pO OVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lQdjEzVmFyeWluZ1dyaXRl ck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQg JTU2LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwoJWNsYXNzLlZhcnlpbmdXcml0ZXIpIGFs aWduIDMyICUxOSwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwo JSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIikgYWxpZ24gMSAlMjApLCAhZGJn ICEyMDkyCi0gICBiciBsYWJlbCAlNjAsICFkYmcgITIwODkKLSAKLSA7IDxsYWJlbD46NjA6ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsgcHJlZHMgPSAlNTUsICU1MCwgJTQ1 LCAlNDAsICUzNSwgJTMwLCAlMjUsICUzCi1AQCAtMTAxMDEsNyArMTAxMDEsNyBAQCBkZWZpbmUg aW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29kaW5n STEzVmFyeWluZ1dyaXRlcgotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUg aW5saW5laGludCBub3Vud2luZAotLWRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJp bnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWIxM1ZhcnlpbmdXcml0ZXJOU18x NkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xh c3MuVmFyeWluZ1dyaXRlciogYnl2YWwgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5j b2Rpbmc0VmFyeWluZyIqIGJ5dmFsIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMjA5NCB7Ci0r ZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlm UHJvcGVyRW5jb2RpbmdJYjEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJO U184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZh bCglY2xhc3MuVmFyeWluZ1dyaXRlcikgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5j b2Rpbmc0VmFyeWluZyIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWlu ZyIpIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMjA5NCB7Ci0gICAlNCA9IGFsbG9jYSBpMSwg YWxpZ24gMQotICAgJTUgPSBhbGxvY2EgaTgsIGFsaWduIDEKLSAgIHN0b3JlIGk4ICUwLCBpOCog JTUsIGFsaWduIDEsICF0YmFhICExOTMKLUBAIC0xMDEyNyw3ICsxMDEyNyw3IEBAIGRlZmluZSBp bnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVu Y29kaW5nSWIxM1ZhcnlpCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IGFsd2F5c2lubGluZSBp bmxpbmVoaW50IG5vdW53aW5kCi0tZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmlu dEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJaTEzVmFyeWluZ1dyaXRlck5TXzE2 RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFz cy5WYXJ5aW5nV3JpdGVyKiBieXZhbCBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNv ZGluZzRWYXJ5aW5nIiogYnl2YWwgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICEyMTAzIHsKLStk ZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQ cm9wZXJFbmNvZGluZ0lpMTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5T XzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFs KCVjbGFzcy5WYXJ5aW5nV3JpdGVyKSBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNv ZGluZzRWYXJ5aW5nIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5n IikgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICEyMTAzIHsKLSAgICU0ID0gYWxsb2NhIGkxLCBh bGlnbiAxCi0gICAlNSA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgc3RvcmUgaTggJTAsIGk4KiAl NSwgYWxpZ24gMSwgIXRiYWEgITE5MwotQEAgLTEwMTUzLDcgKzEwMTUzLDcgQEAgZGVmaW5lIGlu dGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5j b2RpbmdJaTEzVmFyeWkKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogYWx3YXlzaW5saW5lIGlu bGluZWhpbnQgbm91bndpbmQKLS1kZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50 SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lqMTNWYXJ5aW5nV3JpdGVyTlNfMTZF bmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNz LlZhcnlpbmdXcml0ZXIqIGJ5dmFsIGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29k aW5nNFZhcnlpbmciKiBieXZhbCBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITIxMTIgewotK2Rl ZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlBy b3BlckVuY29kaW5nSWoxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNf OEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwo JWNsYXNzLlZhcnlpbmdXcml0ZXIpIGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29k aW5nNFZhcnlpbmciKiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmci KSBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITIxMTIgewotICAgJTQgPSBhbGxvY2EgaTEsIGFs aWduIDEKLSAgICU1ID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0gICBzdG9yZSBpOCAlMCwgaTgqICU1 LCBhbGlnbiAxLCAhdGJhYSAhMTkzCi1AQCAtMTAxNzksNyArMTAxNzksNyBAQCBkZWZpbmUgaW50 ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNv ZGluZ0lqMTNWYXJ5aQotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUgaW5s aW5laGludCBub3Vud2luZAotLWRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJ bmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWYxM1ZhcnlpbmdXcml0ZXJOU18xNkVu Y29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3Mu VmFyeWluZ1dyaXRlciogYnl2YWwgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rp bmc0VmFyeWluZyIqIGJ5dmFsIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMjEyMSB7Ci0rZGVm aW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJv cGVyRW5jb2RpbmdJZjEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184 RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCgl Y2xhc3MuVmFyeWluZ1dyaXRlcikgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rp bmc0VmFyeWluZyIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIp IGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMjEyMSB7Ci0gICAlNCA9IGFsbG9jYSBpMSwgYWxp Z24gMQotICAgJTUgPSBhbGxvY2EgaTgsIGFsaWduIDEKLSAgIHN0b3JlIGk4ICUwLCBpOCogJTUs IGFsaWduIDEsICF0YmFhICExOTMKLUBAIC0xMDIwNSw3ICsxMDIwNSw3IEBAIGRlZmluZSBpbnRl cm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29k aW5nSWYxM1ZhcnlpCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IGFsd2F5c2lubGluZSBpbmxp bmVoaW50IG5vdW53aW5kCi0tZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludElu Zm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJeDEzVmFyeWluZ1dyaXRlck5TXzE2RW5j b2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5W YXJ5aW5nV3JpdGVyKiBieXZhbCBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGlu ZzRWYXJ5aW5nIiogYnl2YWwgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICEyMTMwIHsKLStkZWZp bmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9w ZXJFbmNvZGluZ0l4MTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhF bmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsKCVj bGFzcy5WYXJ5aW5nV3JpdGVyKSBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGlu ZzRWYXJ5aW5nIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIikg YWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICEyMTMwIHsKLSAgICU0ID0gYWxsb2NhIGkxLCBhbGln biAxCi0gICAlNSA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgc3RvcmUgaTggJTAsIGk4KiAlNSwg YWxpZ24gMSwgIXRiYWEgITE5MwotQEAgLTEwMjMxLDcgKzEwMjMxLDcgQEAgZGVmaW5lIGludGVy bmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2Rp bmdJeDEzVmFyeWkKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogYWx3YXlzaW5saW5lIGlubGlu ZWhpbnQgbm91bndpbmQKLS1kZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5m bzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0l5MTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNv ZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlZh cnlpbmdXcml0ZXIqIGJ5dmFsIGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5n NFZhcnlpbmciKiBieXZhbCBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITIxMzkgewotK2RlZmlu ZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3Bl ckVuY29kaW5nSXkxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVu Y29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwoJWNs YXNzLlZhcnlpbmdXcml0ZXIpIGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5n NFZhcnlpbmciKiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKSBh bGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITIxMzkgewotICAgJTQgPSBhbGxvY2EgaTEsIGFsaWdu IDEKLSAgICU1ID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0gICBzdG9yZSBpOCAlMCwgaTgqICU1LCBh bGlnbiAxLCAhdGJhYSAhMTkzCi1AQCAtMTAyNTcsNyArMTAyNTcsNyBAQCBkZWZpbmUgaW50ZXJu YWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGlu Z0l5MTNWYXJ5aQotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5l aGludCBub3Vud2luZAotLWRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZv NmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWQxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29k aW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVmFy eWluZ1dyaXRlciogYnl2YWwgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0 VmFyeWluZyIqIGJ5dmFsIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMjE0OCB7Ci0rZGVmaW5l IGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVy RW5jb2RpbmdJZDEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5j b2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCglY2xh c3MuVmFyeWluZ1dyaXRlcikgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0 VmFyeWluZyIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIpIGFs aWduIDEpICMyNSBjb21kYXQgIWRiZyAhMjE0OCB7Ci0gICAlNCA9IGFsbG9jYSBpMSwgYWxpZ24g MQotICAgJTUgPSBhbGxvY2EgaTgsIGFsaWduIDEKLSAgIHN0b3JlIGk4ICUwLCBpOCogJTUsIGFs aWduIDEsICF0YmFhICExOTMKLUBAIC0xMDI4Myw3ICsxMDI4Myw3IEBAIGRlZmluZSBpbnRlcm5h bCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5n SWQxM1ZhcnlpCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IGFsd2F5c2lubGluZSBpbmxpbmVo aW50IG5vdW53aW5kCi0tZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82 ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJUHYxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29k aW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVmFy eWluZ1dyaXRlciogYnl2YWwgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0 VmFyeWluZyIqIGJ5dmFsIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMjE1NyB7Ci0rZGVmaW5l IGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVy RW5jb2RpbmdJUHYxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVu Y29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwoJWNs YXNzLlZhcnlpbmdXcml0ZXIpIGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5n NFZhcnlpbmciKiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKSBh bGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITIxNTcgewotICAgJTQgPSBhbGxvY2EgaTEsIGFsaWdu IDEKLSAgICU1ID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0gICBzdG9yZSBpOCAlMCwgaTgqICU1LCBh bGlnbiAxLCAhdGJhYSAhMTkzCmRpZmYgLS1naXQgYS9zcmNwa2dzL2lzcGMvdGVtcGxhdGUgYi9z cmNwa2dzL2lzcGMvdGVtcGxhdGUKaW5kZXggOWMzYWNiNDJhOWNmLi4zYTg1ZmYyNjA1YWYgMTAw NjQ0Ci0tLSBhL3NyY3BrZ3MvaXNwYy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2lzcGMvdGVtcGxh dGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdpc3BjJwogcGtnbmFtZT1p c3BjCi12ZXJzaW9uPTEuMTUuMAotcmV2aXNpb249MgordmVyc2lvbj0xLjE3LjAKK3JldmlzaW9u PTEKIGFyY2hzPSJ4ODZfNjQqIgogYnVpbGRfc3R5bGU9Y21ha2UKIGNvbmZpZ3VyZV9hcmdzPSIt RElTUENfTk9fRFVNUFM9T04gLURBUk1fRU5BQkxFRD1PRkYiCkBAIC0xMiw3ICsxMiw3IEBAIG1h aW50YWluZXI9IkFuZHJlYSBCcmFuY2FsZW9uaSA8YWJjQHBvbXBlbC5tZT4iCiBsaWNlbnNlPSJC U0QtMy1DbGF1c2UiCiBob21lcGFnZT0iaHR0cHM6Ly9pc3BjLmdpdGh1Yi5pbyIKIGRpc3RmaWxl cz0iaHR0cHM6Ly9naXRodWIuY29tL2lzcGMvaXNwYy9hcmNoaXZlL3Yke3ZlcnNpb259LnRhci5n eiIKLWNoZWNrc3VtPTI2NThmZjAwZGMwNDVhYzlmY2VmYmY2YmQyNmRmZmFmNzIzYjA1OWE5NDJh MjdkZjkxYmJiNjFiYzUwM2EyODUKK2NoZWNrc3VtPTM3ZmIxMDU1ZDZjNmIyMzJlMTEyZDhkNTAx NDVkNzI2ODI0ZWQ0ZDhkYTkzYTczOTYzMTVkY2ViYTZjNzZlNjIKIG5vY3Jvc3M9eWVzCiBub3Bp ZT15ZXMKIAoKRnJvbSA2OGRlMzgzZmE0YWM3NTc0M2RjODIyMDRkODQyNTE5ZmZlZTA5ZDYwIE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBwcmV6IDxwcmV6QG5hdGlvbmFsLnNoaXRwb3N0 aW5nLmFnZW5jeT4KRGF0ZTogVHVlLCAzIE1heSAyMDIyIDAxOjIwOjAzICswMjAwClN1YmplY3Q6 IFtQQVRDSCAyNS8yN10gbGx2bTE0OiBzd2l0Y2ggdG8gcnVudGltZXMgYnVpbGQuCgpodHRwczov L3Jldmlld3MubGx2bS5vcmcvckdhYzcwMzFiMmIyZmEKaHR0cHM6Ly9yZXZpZXdzLmxsdm0ub3Jn L0QxMTAzMzgjMzAyMjk1MgotLS0KIHNyY3BrZ3MvbGx2bTE0L3RlbXBsYXRlIHwgMTAgKysrKysr LS0tLQogMSBmaWxlIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0xNC90ZW1wbGF0ZSBiL3NyY3BrZ3MvbGx2bTE0L3RlbXBs YXRlCmluZGV4IDNlN2U2YWIyYzAwYi4uZTczMWFhNzYxMzBhIDEwMDY0NAotLS0gYS9zcmNwa2dz L2xsdm0xNC90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2xsdm0xNC90ZW1wbGF0ZQpAQCAtNTEsNyAr NTEsOCBAQCBjYXNlICIkWEJQU19UQVJHRVRfTUFDSElORSIgaW4KIAlwcGMqKSBjb25maWd1cmVf YXJncys9IiAtRENMQU5HX0VOQUJMRV9DTEFOR0Q9T0ZGIiA7OwogZXNhYwogCi1fZW5hYmxlZF9w cm9qZWN0cz0iY2xhbmc7Y2xhbmctdG9vbHMtZXh0cmE7Y29tcGlsZXItcnQ7bGliY3h4O2xpYmN4 eGFiaTtsaWJ1bndpbmQ7bGxkIgorX2VuYWJsZWRfcHJvamVjdHM9ImNsYW5nO2NsYW5nLXRvb2xz LWV4dHJhO2xsZCIKK19lbmFibGVkX3J1bnRpbWVzPSJjb21waWxlci1ydDtsaWJjeHg7bGliY3h4 YWJpO2xpYnVud2luZCIKIAogX2xsZGJfZW5hYmxlPXllcwogX2xpYm9tcF9lbmFibGU9bm8KQEAg LTY3LDkgKzY4LDggQEAgZXNhYwogCiBzdWJwYWNrYWdlcz0iY2xhbmctdG9vbHMtZXh0cmEiCiAK LSMgbXVzdCBnbyBiZWZvcmUgY2xhbmcKIGlmIFsgIiRfbGlib21wX2VuYWJsZSIgPSAieWVzIiBd OyB0aGVuCi0JX2VuYWJsZWRfcHJvamVjdHMrPSI7b3Blbm1wIgorCV9lbmFibGVkX3J1bnRpbWVz Kz0iO29wZW5tcCIKIAlzdWJwYWNrYWdlcys9IiBsaWJvbXAgbGlib21wLWRldmVsIgogCSMgYmVj YXVzZSBvZiBjbWFrZSBub25zZW5zZSByZWZlcmVuY2luZyBsaWJvbXB0YXJnZXQuc28uKgogCWRl cGVuZHMrPSIgbGlib21wPj0ke3ZlcnNpb259XyR7cmV2aXNpb259IgpAQCAtODgsNiArODgsNyBA QCBmaQogc3VicGFja2FnZXMrPSIgbGxkIGxsZC1kZXZlbCIKIAogY29uZmlndXJlX2FyZ3MrPSIg LURMTFZNX0VOQUJMRV9QUk9KRUNUUz0ke19lbmFibGVkX3Byb2plY3RzfSIKK2NvbmZpZ3VyZV9h cmdzKz0iIC1ETExWTV9FTkFCTEVfUlVOVElNRVM9JHtfZW5hYmxlZF9ydW50aW1lc30iCiAKIHBv c3RfcGF0Y2goKSB7CiAJaWYgWyAiJF9sbGRiX2VuYWJsZSIgPSAieWVzIiBdOyB0aGVuCkBAIC0x NTYsNyArMTU3LDggQEAgcHJlX2NvbmZpZ3VyZSgpIHsKIAkJQ0M9IiRCVUlMRF9DQyIgQ1hYPSIk QlVJTERfQ1hYIiBDRkxBR1M9IiRCVUlMRF9DRkxBR1MiIFwKIAkJCUNYWEZMQUdTPSIkQlVJTERf Q1hYRkxBR1MiIExERkxBR1M9IiRCVUlMRF9MREZMQUdTIiBcCiAJCQljbWFrZSAuLi8uLiAtRENN QUtFX0JVSUxEX1RZUEU9UmVsZWFzZSBcCi0JCQktRExMVk1fRU5BQkxFX1BST0pFQ1RTPSR7X2Vu YWJsZWRfcHJvamVjdHN9CisJCQktRExMVk1fRU5BQkxFX1BST0pFQ1RTPSR7X2VuYWJsZWRfcHJv amVjdHN9IFwKKwkJCS1ETExWTV9FTkFCTEVfUlVOVElNRVM9JHtfZW5hYmxlZF9ydW50aW1lc30K IAkJbWFrZSAke21ha2Vqb2JzfSAtQyB1dGlscy9UYWJsZUdlbgogCQltYWtlICR7bWFrZWpvYnN9 IC1DIHRvb2xzL2NsYW5nL3V0aWxzL1RhYmxlR2VuCiAJCVsgIiRfbGxkYl9lbmFibGUiID0gInll cyIgXSAmJiBtYWtlICR7bWFrZWpvYnN9IC1DIHRvb2xzL2xsZGIvdXRpbHMvVGFibGVHZW4KCkZy b20gODE4NWVlY2ZjMTgxOGNjYjlmYjA4ZmIyNjRjOTBkOWFhODRkODE0NCBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogcHJleiA8cHJlekBuYXRpb25hbC5zaGl0cG9zdGluZy5hZ2VuY3k+ CkRhdGU6IFdlZCwgNCBNYXkgMjAyMiAxNDowNzoxNCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMjYv MjddIHppZzogZml4IGJ1aWxkLgoKLS0tCiBzcmNwa2dzL3ppZy90ZW1wbGF0ZSB8IDIgKy0KIDEg ZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBh L3NyY3BrZ3MvemlnL3RlbXBsYXRlIGIvc3JjcGtncy96aWcvdGVtcGxhdGUKaW5kZXggNzI4YzVh NjRlOWRmLi5jMTc1ZGU2MmM1ZjcgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvemlnL3RlbXBsYXRlCisr KyBiL3NyY3BrZ3MvemlnL3RlbXBsYXRlCkBAIC01LDcgKzUsNyBAQCByZXZpc2lvbj0yCiBhcmNo cz0ieDg2XzY0KiBhYXJjaDY0KiIKIGJ1aWxkX3N0eWxlPWNtYWtlCiBtYWtlX2NtZD1tYWtlCi1t YWtlZGVwZW5kcz0iY2xhbmcgbGx2bTEyIGxsZC1kZXZlbCIKK21ha2VkZXBlbmRzPSJjbGFuZzEy IGxsdm0xMiBsbGQxMi1kZXZlbCIKIHNob3J0X2Rlc2M9IlByb2dyYW1taW5nIGxhbmd1YWdlIGRl c2lnbmVkIGZvciByb2J1c3RuZXNzLCBvcHRpbWFsaXR5LCBhbmQgY2xhcml0eSIKIG1haW50YWlu ZXI9IklzYWFjIEZyZXVuZCA8bWFpbEBpc2FhY2ZyZXVuZC5jb20+IgogbGljZW5zZT0iTUlUIgoK RnJvbSBiNmU5MTllN2YxMmU1NjhhNjIzMTY4Mzc1ODlmYjFmMzg2YzRiZDkyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBwcmV6IDxwcmV6QG5hdGlvbmFsLnNoaXRwb3N0aW5nLmFnZW5j eT4KRGF0ZTogV2VkLCA0IE1heSAyMDIyIDAzOjM5OjU4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAy Ny8yN10gbGx2bTE0OiBmaXggYnVpbGQuCgotLS0KIGNvbW1vbi9zaGxpYnMgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB8ICAyICstCiAuLi4vbGx2bTE0L2ZpbGVzL2xsdm0tQ29uZmln LWxsdm0tY29uZmlnLmggICAgfCAgOSArKysKIHNyY3BrZ3MvbGx2bTE0L3RlbXBsYXRlICAgICAg ICAgICAgICAgICAgICAgICB8IDY1ICsrKysrKysrKysrKy0tLS0tLS0KIDMgZmlsZXMgY2hhbmdl ZCwgNTMgaW5zZXJ0aW9ucygrKSwgMjMgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQg c3JjcGtncy9sbHZtMTQvZmlsZXMvbGx2bS1Db25maWctbGx2bS1jb25maWcuaAoKZGlmZiAtLWdp dCBhL2NvbW1vbi9zaGxpYnMgYi9jb21tb24vc2hsaWJzCmluZGV4IDVkMDZjMjM4MWZlZC4uMGJj NTBlYTFjZTg4IDEwMDY0NAotLS0gYS9jb21tb24vc2hsaWJzCisrKyBiL2NvbW1vbi9zaGxpYnMK QEAgLTk3Niw3ICs5NzYsNyBAQCBsaWJjb25mdXNlLnNvLjIgY29uZnVzZS0zLjIuMV8xCiBsaWJj bGFuZy5zby4xMiBsaWJjbGFuZzEyLTEyLjAuMF8xCiBsaWJjbGFuZy1jcHAuc28uMTIgbGliY2xh bmcxMi1jcHAtMTIuMC4wXzEKIGxpYmxsZGIuc28uMTQgbGxkYi0xNC4wLjNfMQotbGliY2xhbmcu c28uMTQgbGliY2xhbmctMTQuMC4zXzEKK2xpYmNsYW5nLnNvLjEzIGxpYmNsYW5nLTE0LjAuM18x CiBsaWJjbGFuZy1jcHAuc28uMTQgbGliY2xhbmctY3BwLTE0LjAuM18xCiBsaWJMTFZNLTExLnNv IGxpYmxsdm0xMS0xMS4wLjBfMQogbGliTExWTS0xMi5zbyBsaWJsbHZtMTItMTIuMC4wXzEKZGlm ZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bTE0L2ZpbGVzL2xsdm0tQ29uZmlnLWxsdm0tY29uZmlnLmgg Yi9zcmNwa2dzL2xsdm0xNC9maWxlcy9sbHZtLUNvbmZpZy1sbHZtLWNvbmZpZy5oCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMmZhMDhjOWJlNjk2Ci0tLSAvZGV2L251 bGwKKysrIGIvc3JjcGtncy9sbHZtMTQvZmlsZXMvbGx2bS1Db25maWctbGx2bS1jb25maWcuaApA QCAtMCwwICsxLDkgQEAKKyNpbmNsdWRlIDxiaXRzL3dvcmRzaXplLmg+CisKKyNpZiBfX1dPUkRT SVpFID09IDMyCisjaW5jbHVkZSAibGx2bS1jb25maWctMzIuaCIKKyNlbGlmIF9fV09SRFNJWkUg PT0gNjQKKyNpbmNsdWRlICJsbHZtLWNvbmZpZy02NC5oIgorI2Vsc2UKKyNlcnJvciAiVW5rbm93 biB3b3JkIHNpemUiCisjZW5kaWYKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bTE0L3RlbXBsYXRl IGIvc3JjcGtncy9sbHZtMTQvdGVtcGxhdGUKaW5kZXggZTczMWFhNzYxMzBhLi5mMzI0MmYwNTQ5 YTIgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvbGx2bTE0L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvbGx2 bTE0L3RlbXBsYXRlCkBAIC0xNSw2ICsxNSw3IEBAIGNvbmZpZ3VyZV9hcmdzPSIKICAtRExJQkNY WEFCSV9FTkFCTEVfU1RBVElDX1VOV0lOREVSPVlFUwogIC1ETElCT01QX0VOQUJMRV9TSEFSRUQ9 WUVTCiAgLURMSUJPTVBfSU5TVEFMTF9BTElBU0VTPU5PCisgLURDT01QSUxFUl9SVF9ERUZBVUxU X1RBUkdFVF9PTkxZPVlFUwogIC1ETExWTV9JTkNMVURFX0RPQ1M9WUVTCiAgLURMTFZNX0JVSUxE X0RPQ1M9WUVTCiAgLURMTFZNX0VOQUJMRV9TUEhJTlg9WUVTCkBAIC0zOCw2ICszOSw3IEBAIGRp c3RmaWxlcz0iaHR0cHM6Ly9naXRodWIuY29tL2xsdm0vbGx2bS1wcm9qZWN0L3JlbGVhc2VzL2Rv d25sb2FkL2xsdm1vcmctJHt2ZXJzCiBjaGVja3N1bT00NGQzZTdhNzg0ZDVjZjgwNWU3Mjg1M2Ji MDNmMjE4YmQxMDU4ZDQ0OGMwM2NhODgzZGFiYmViYzk5MjA0ZTBjCiBsaWIzMmRpc2FibGVkPXll cwogcHl0aG9uX3ZlcnNpb249Mworbm9waWVfZmlsZXM9Ii91c3IvYmluL2xsdm0tb21wLWRldmlj ZS1pbmZvIgogCiBpZiBbICIkWEJQU19UQVJHRVRfTElCQyIgPSAibXVzbCIgXTsgdGhlbgogCWNv bmZpZ3VyZV9hcmdzKz0iIC1ETElCQ1hYX0hBU19NVVNMX0xJQkM9WUVTIgpAQCAtOTAsNiArOTIs MzMgQEAgc3VicGFja2FnZXMrPSIgbGxkIGxsZC1kZXZlbCIKIGNvbmZpZ3VyZV9hcmdzKz0iIC1E TExWTV9FTkFCTEVfUFJPSkVDVFM9JHtfZW5hYmxlZF9wcm9qZWN0c30iCiBjb25maWd1cmVfYXJn cys9IiAtRExMVk1fRU5BQkxFX1JVTlRJTUVTPSR7X2VuYWJsZWRfcnVudGltZXN9IgogCitjYXNl ICIkWEJQU19UQVJHRVRfTUFDSElORSIgaW4KKwlpNjg2KSBfdHJwPSJpNjg2LXBjLWxpbnV4LWdu dSI7OworCWk2ODYtbXVzbCkgX3RycD0iaTY4Ni1saW51eC1tdXNsIjs7CisJeDg2XzY0KSBfdHJw PSJ4ODZfNjQtdW5rbm93bi1saW51eC1nbnUiOzsKKwl4ODZfNjQtbXVzbCkgX3RycD0ieDg2XzY0 LWxpbnV4LW11c2wiOzsKKwlhcm12NXRlbCkgX3RycD0iYXJtLWxpbnV4LWdudWVhYmkiOzsKKwlh cm12NXRlbC1tdXNsKSBfdHJwPSJhcm0tbGludXgtbXVzbGVhYmkiOzsKKwlhcm12NmwpIF90cnA9 ImFybS1saW51eC1nbnVlYWJpaGYiOzsKKwlhcm12N2wpIF90cnA9ImFybXY3bC1saW51eC1nbnVl YWJpaGYiOzsKKwlhcm12NmwtbXVzbCkgX3RycD0iYXJtLWxpbnV4LW11c2xlYWJpaGYiOzsKKwlh cm12N2wtbXVzbCkgX3RycD0iYXJtdjdsLWxpbnV4LW11c2xlYWJpaGYiOzsKKwlhYXJjaDY0KSBf dHJwPSJhYXJjaDY0LWxpbnV4LWdudSI7OworCWFhcmNoNjQtbXVzbCkgX3RycD0iYWFyY2g2NC1s aW51eC1tdXNsIjs7CisJcHBjKSBfdHJwPSJwb3dlcnBjLWxpbnV4LWdudSI7OworCXBwYy1tdXNs KSBfdHJwPSJwb3dlcnBjLWxpbnV4LW11c2wiOzsKKwlwcGNsZSkgX3RycD0icG93ZXJwY2xlLWxp bnV4LWdudSI7OworCXBwY2xlLW11c2wpIF90cnA9InBvd2VycGNsZS1saW51eC1tdXNsIjs7CisJ cHBjNjRsZSkgX3RycD0icG93ZXJwYzY0bGUtbGludXgtZ251Ijs7CisJcHBjNjRsZS1tdXNsKSBf dHJwPSJwb3dlcnBjNjRsZS1saW51eC1tdXNsIjs7CisJcHBjNjQpIF90cnA9InBvd2VycGM2NC1s aW51eC1nbnUiOzsKKwlwcGM2NC1tdXNsKSBfdHJwPSJwb3dlcnBjNjQtbGludXgtbXVzbCI7Owor CW1pcHMtbXVzbCkgX3RycD0ibWlwcy1saW51eC1tdXNsIjs7CisJbWlwc2hmLW11c2wpIF90cnA9 Im1pcHMtbGludXgtbXVzbGhmIjs7CisJbWlwc2VsLW11c2wpIF90cnA9Im1pcHNlbC1saW51eC1t dXNsIjs7CisJbWlwc2VsaGYtbXVzbCkgX3RycD0ibWlwc2VsLWxpbnV4LW11c2xoZiI7OworZXNh YworCiBwb3N0X3BhdGNoKCkgewogCWlmIFsgIiRfbGxkYl9lbmFibGUiID0gInllcyIgXTsgdGhl bgogCQlpZiBbICIkWEJQU19UQVJHRVRfTElCQyIgPSAibXVzbCIgXTsgdGhlbgpAQCAtMTM2LDgg KzE2NSw3IEBAIHBvc3RfcGF0Y2goKSB7CiB9CiAKIHByZV9jb25maWd1cmUoKSB7Ci0JbG9jYWwg dHJpcGxldAotCisJbG9jYWwgdHJpcGxldD0ke1hCUFNfQ1JPU1NfVFJJUExFVDotJFhCUFNfVFJJ UExFVH0KIAkjIFZhc3RseSByZWR1Y2Ugc2l6ZSBvZiBkZWJ1Z2dpbmcgc3ltYm9sczoKIAlDRkxB R1M9JHtDRkxBR1MvIC1nLyAtZzF9CiAJQ1hYRkxBR1M9JHtDWFhGTEFHUy8gLWcvIC1nMX0KQEAg LTE4MCw4ICsyMDgsNiBAQCBwcmVfY29uZmlndXJlKCkgewogCQlyaXNjdjY0KikgX2FyY2g9IlJJ U0NWNjQiOzsKIAllc2FjCiAKLQl0cmlwbGV0PSR7WEJQU19DUk9TU19UUklQTEVUOi0kWEJQU19U UklQTEVUfQotCiAJY29uZmlndXJlX2FyZ3MrPSIgLURMTFZNX1RBUkdFVF9BUkNIPSR7X2FyY2h9 IgogCWNvbmZpZ3VyZV9hcmdzKz0iIC1ETExWTV9IT1NUX1RSSVBMRT0ke3RyaXBsZXR9IgogCWNv bmZpZ3VyZV9hcmdzKz0iIC1ETExWTV9ERUZBVUxUX1RBUkdFVF9UUklQTEU9JHt0cmlwbGV0fSIK QEAgLTI1MSw3ICsyNzcsNyBAQCBjbGFuZy10b29scy1leHRyYV9wYWNrYWdlKCkgewogCQl2bW92 ZSAidXNyL2xpYi9saWJjbGFuZ1F1ZXJ5KiIKIAkJdm1vdmUgInVzci9saWIvbGliY2xhbmdUaWR5 KiIKIAkJdm1vdmUgInVzci9zaGFyZS9jbGFuZy8qdGlkeSoiCi0JCXZtb3ZlIHVzci9zaGFyZS9k b2MvY2xhbmctdG9vbHMKKwkJdm1vdmUgdXNyL3NoYXJlL2RvYy9MTFZNL2NsYW5nLXRvb2xzCiAJ CXZtb3ZlIHVzci9zaGFyZS9tYW4vbWFuMS9leHRyYWNsYW5ndG9vbHMuMQogCQl2bW92ZSB1c3Iv c2hhcmUvbWFuL21hbjEvZGlhZ3Rvb2wuMQogCX0KQEAgLTI3Myw3ICsyOTksNyBAQCBjbGFuZ19w YWNrYWdlKCkgewogCQl2bW92ZSAidXNyL2xpYi9saWJjbGFuZyouYSIKIAkJdm1vdmUgInVzci9s aWIvbGliY2xhbmcqLnNvIgogCQl2bW92ZSB1c3Ivc2hhcmUvY2xhbmcKLQkJdm1vdmUgdXNyL3No YXJlL2RvYy9jbGFuZworCQl2bW92ZSB1c3Ivc2hhcmUvZG9jL0xMVk0vY2xhbmcKIAkJdm1vdmUg dXNyL3NoYXJlL21hbi9tYW4xL2NsYW5nLjEKIAl9CiB9CkBAIC0zMDEsNyArMzI3LDcgQEAgbGxk X3BhY2thZ2UoKSB7CiAJCXZtb3ZlIHVzci9iaW4vd2FzbS1sZAogCQl2bW92ZSB1c3IvYmluL2xk LmxsZCoKIAkJdm1vdmUgdXNyL2Jpbi9sZDY0LmxsZCoKLQkJdm1vdmUgdXNyL3NoYXJlL2RvYy9s bGQKKwkJdm1vdmUgdXNyL3NoYXJlL2RvYy9MTFZNL2xsZAogCX0KIH0KIApAQCAtMzQyLDcgKzM2 OCw3IEBAIGxsZGItZGV2ZWxfcGFja2FnZSgpIHsKIGxsdm0tbGlidW53aW5kX3BhY2thZ2UoKSB7 CiAJc2hvcnRfZGVzYys9IiAtIGxpYnVud2luZCIKIAlwa2dfaW5zdGFsbCgpIHsKLQkJdm1vdmUg InVzci9saWIvbGlidW53aW5kLnNvLioiCisJCXZtb3ZlICJ1c3IvbGliLyR7X3RycH0vbGlidW53 aW5kLnNvLioiCiAJfQogfQogCkBAIC0zNTEsMTggKzM3NywxNyBAQCBsbHZtLWxpYnVud2luZC1k ZXZlbF9wYWNrYWdlKCkgewogCWRlcGVuZHM9Imxsdm0tbGlidW53aW5kPj0ke3ZlcnNpb259XyR7 cmV2aXNpb259IgogCWNvbmZsaWN0cz0ibGlidW53aW5kLWRldmVsPj0wIgogCXBrZ19pbnN0YWxs KCkgewotCQl2bW92ZSB1c3IvbGliL2xpYnVud2luZC5zbwotCQl2bW92ZSB1c3IvbGliL2xpYnVu d2luZC5hCisJCXZtb3ZlIHVzci9saWIvJHtfdHJwfS9saWJ1bndpbmQuc28KKwkJdm1vdmUgdXNy L2xpYi8ke190cnB9L2xpYnVud2luZC5hCiAJCXZtb3ZlICJ1c3IvaW5jbHVkZS8qdW53aW5kKiIK IAkJdm1vdmUgdXNyL2luY2x1ZGUvbWFjaC1vCi0JCXZtb3ZlIHVzci9zaGFyZS9kb2MvbGlidW53 aW5kCiAJfQogfQogCiBsaWJjeHhhYmlfcGFja2FnZSgpIHsKIAlzaG9ydF9kZXNjKz0iIC0gbG93 IGxldmVsIHN1cHBvcnQgZm9yIGxpYmMrKyIKIAlwa2dfaW5zdGFsbCgpIHsKLQkJdm1vdmUgInVz ci9saWIvbGliYysrYWJpLnNvLioiCisJCXZtb3ZlICJ1c3IvbGliLyR7X3RycH0vbGliYysrYWJp LnNvLioiCiAJfQogfQogCkBAIC0zNzAsOCArMzk1LDggQEAgbGliY3h4YWJpLWRldmVsX3BhY2th Z2UoKSB7CiAJc2hvcnRfZGVzYys9IiAtIGxvdyBsZXZlbCBzdXBwb3J0IGZvciBsaWJjKysgLSBk ZXZlbG9wbWVudCBmaWxlcyIKIAlkZXBlbmRzPSJsaWJjeHhhYmk+PSR7dmVyc2lvbn1fJHtyZXZp c2lvbn0iCiAJcGtnX2luc3RhbGwoKSB7Ci0JCXZtb3ZlIHVzci9saWIvbGliYysrYWJpLnNvCi0J CXZtb3ZlIHVzci9saWIvbGliYysrYWJpLmEKKwkJdm1vdmUgdXNyL2xpYi8ke190cnB9L2xpYmMr K2FiaS5zbworCQl2bW92ZSB1c3IvbGliLyR7X3RycH0vbGliYysrYWJpLmEKIAkJdm1vdmUgInVz ci9pbmNsdWRlLypjeHhhYmkqIgogCX0KIH0KQEAgLTM3OSw3ICs0MDQsNyBAQCBsaWJjeHhhYmkt ZGV2ZWxfcGFja2FnZSgpIHsKIGxpYmN4eF9wYWNrYWdlKCkgewogCXNob3J0X2Rlc2MrPSIgLSBD Kysgc3RhbmRhcmQgbGlicmFyeSIKIAlwa2dfaW5zdGFsbCgpIHsKLQkJdm1vdmUgInVzci9saWIv bGliYysrLnNvLioiCisJCXZtb3ZlICJ1c3IvbGliLyR7X3RycH0vbGliYysrLnNvLioiCiAJfQog fQogCkBAIC0zODcsMTEgKzQxMiwxMCBAQCBsaWJjeHgtZGV2ZWxfcGFja2FnZSgpIHsKIAlzaG9y dF9kZXNjKz0iIC0gQysrIHN0YW5kYXJkIGxpYnJhcnkgLSBkZXZlbG9wbWVudCBmaWxlcyIKIAlk ZXBlbmRzPSJsaWJjeHg+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCiAJcGtnX2luc3RhbGwoKSB7 Ci0JCXZtb3ZlIHVzci9saWIvbGliYysrLnNvCi0JCXZtb3ZlIHVzci9saWIvbGliYysrLmEKLQkJ dm1vdmUgdXNyL2xpYi9saWJjKytleHBlcmltZW50YWwuYQorCQl2bW92ZSB1c3IvbGliLyR7X3Ry cH0vbGliYysrLnNvCisJCXZtb3ZlIHVzci9saWIvJHtfdHJwfS9saWJjKysuYQorCQl2bW92ZSB1 c3IvbGliLyR7X3RycH0vbGliYysrZXhwZXJpbWVudGFsLmEKIAkJdm1vdmUgdXNyL2luY2x1ZGUv YysrCi0JCXZtb3ZlIHVzci9zaGFyZS9kb2MvbGliY3h4CiAJfQogfQogCkBAIC00MDEsNyArNDI1 LDYgQEAgbGlib21wX3BhY2thZ2UoKSB7CiAJCXZtb3ZlIHVzci9saWIvbGlib21wLnNvCiAJCXZt b3ZlICJ1c3IvbGliL2xpYm9tcHRhcmdldC5ydGwuKi5zbyIKIAkJdm1vdmUgdXNyL2xpYi9saWJh cmNoZXIuc28KLQkJdm1vdmUgInVzci9saWIvbGlib21wKi5zby4qIgogCX0KIH0KIApAQCAtNDEz LDggKzQzNiw2IEBAIGxpYm9tcC1kZXZlbF9wYWNrYWdlKCkgewogCQl2bW92ZSAidXNyL2xpYi9s aWJhcmNoZXIqIgogCQl2bW92ZSAidXNyL2luY2x1ZGUvb21wKi5oIgogCQl2bW92ZSAidXNyL2xp Yi9jbGFuZy8ke3ZlcnNpb259L2luY2x1ZGUvb21wKi5oIgotCQl2bW92ZSB1c3Ivc2hhcmUvbWFu L21hbjEvbGx2bW9wZW5tcC4xCi0JCXZtb3ZlIHVzci9zaGFyZS9kb2Mvb3Blbm1wCiAJfQogfQog Cg== --===============4788363768612827022==--