From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (qmail 8634 invoked from network); 22 Feb 2023 19:48:06 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 22 Feb 2023 19:48:06 -0000 Content-Type: multipart/mixed; boundary="===============6011662384979480619==" MIME-Version: 1.0 Subject: =?utf8?q?Re=3A_=5BPR_PATCH=5D_=5BUpdated=5D_=5BWIP=5D_Rust_1=2E67?= To: ml@inbox.vuxu.org From: tranzystorek-io Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Wed, 22 Feb 2023 20:48:05 +0100 List-Id: Message-ID: <20230222194805.-WSow7DDsu7iZOF93Vutmy3bYHgWScmux2YcAi3rza8@z> GitHub notification mails are now in MIME to allow UTF8. --===============6011662384979480619== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgdHJhbnp5c3RvcmVrLWlvIGFnYWlu c3QgbWFzdGVyIG9uIHRoZSB2b2lkLXBhY2thZ2VzIHJlcG9zaXRvcnkKCmh0dHBzOi8vZ2l0aHVi LmNvbS90cmFuenlzdG9yZWstaW8vdm9pZC1wYWNrYWdlcyBydXN0Cmh0dHBzOi8vZ2l0aHViLmNv bS92b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvcHVsbC80MjEzMAoKW1dJUF0gUnVzdCAxLjY3Cltj aSBza2lwXQ0KDQpUT0RPOg0KDQotIFt4XSB+fkdlbmVyYXRlIGJvb3N0cmFwIHBhY2thZ2VzIGZv ciBwcGN+fiBkcm9wcGVkIHN1cHBvcnQNCg0KPCEtLQ0KIyMjIyBOZXcgcGFja2FnZQ0KLSBUaGlz IG5ldyBwYWNrYWdlIGNvbmZvcm1zIHRvIHRoZSBbcGFja2FnZSByZXF1aXJlbWVudHNdKGh0dHBz Oi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvYmxvYi9tYXN0ZXIvQ09OVFJJ QlVUSU5HLm1kI3BhY2thZ2UtcmVxdWlyZW1lbnRzKTogKipZRVMqKnwqKk5PKioNCi0tPg0KDQo8 IS0tIE5vdGU6IElmIHRoZSBidWlsZCBpcyBsaWtlbHkgdG8gdGFrZSBtb3JlIHRoYW4gMiBob3Vy cywgcGxlYXNlIGFkZCBjaSBza2lwIHRhZyBhcyBkZXNjcmliZWQgaW4NCmh0dHBzOi8vZ2l0aHVi LmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvYmxvYi9tYXN0ZXIvQ09OVFJJQlVUSU5HLm1k I2NvbnRpbnVvdXMtaW50ZWdyYXRpb24NCmFuZCB0ZXN0IGF0IGxlYXN0IG9uZSBuYXRpdmUgYnVp bGQgYW5kLCBpZiBzdXBwb3J0ZWQsIGF0IGxlYXN0IG9uZSBjcm9zcyBidWlsZC4NCklnbm9yZSB0 aGlzIHNlY3Rpb24gaWYgdGhpcyBQUiBpcyBub3Qgc2tpcHBpbmcgQ0kuDQotLT4NCjwhLS0NCiMj IyMgTG9jYWwgYnVpbGQgdGVzdGluZw0KLSBJIGJ1aWx0IHRoaXMgUFIgbG9jYWxseSBmb3IgbXkg bmF0aXZlIGFyY2hpdGVjdHVyZSwgKEFSQ0gtTElCQykNCi0gSSBidWlsdCB0aGlzIFBSIGxvY2Fs bHkgZm9yIHRoZXNlIGFyY2hpdGVjdHVyZXMgKGlmIHN1cHBvcnRlZC4gbWFyayBjcm9zc2J1aWxk cyk6DQogIC0gYWFyY2g2NC1tdXNsDQogIC0gYXJtdjdsDQogIC0gYXJtdjZsLW11c2wNCi0tPg0K CgpBIHBhdGNoIGZpbGUgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBh Y2thZ2VzL3B1bGwvNDIxMzAucGF0Y2ggaXMgYXR0YWNoZWQ= --===============6011662384979480619== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-rust-42130.patch" RnJvbSBjNDc1NDVkZGRjZjBiY2FhODdhYzJmY2YzNzU5NjdlYjViMGI3YTIzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJjaW4gUHVjIDx0cmFuenlzdG9yZWsuaW9AcHJvdG9ubWFp bC5jb20+CkRhdGU6IFN1biwgMTggRGVjIDIwMjIgMDA6MzY6NTkgKzAxMDAKU3ViamVjdDogW1BB VENIIDAxLzMyXSBOZXcgcGFja2FnZTogbGx2bTE1LTE1LjAuNwoKLS0tCiBjb21tb24vc2hsaWJz ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDMgKwogc3JjcGtncy9saWJsbHZt MTUgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxICsKIC4uLi9sbHZtMTUvZmlsZXMv bGx2bS1Db25maWctbGx2bS1jb25maWcuaCAgICB8ICAgOSArCiAuLi5jbGFuZy0wMDEtZml4LXVu d2luZC1jaGFpbi1pbmNsdXNpb24ucGF0Y2ggfCAgNDQgKysKIC4uLi9wYXRjaGVzL2NsYW5nLTAw Mi1hZGQtbXVzbC10cmlwbGVzLnBhdGNoICB8IDExNSArKysrKwogLi4uL2NsYW5nLTAwMy1wcGM2 NC1keW5hbWljLWxpbmtlci1wYXRoLnBhdGNoIHwgIDEzICsKIC4uLi9wYXRjaGVzL2NsYW5nLTAw NC1wcGM2NC1tdXNsLWVsZnYyLnBhdGNoICB8ICA0OCArKwogLi4uL2NvbXBpbGVyLXJ0LXNhbml0 aXplci1wcGM2NC1tdXNsLnBhdGNoICAgIHwgIDM1ICsrCiBzcmNwa2dzL2xsdm0xNS9wYXRjaGVz L2xpYmN4eC1tdXNsLnBhdGNoICAgICAgfCAgMjYgKysKIHNyY3BrZ3MvbGx2bTE1L3BhdGNoZXMv bGliY3h4LXBwYy5wYXRjaCAgICAgICB8ICAyMiArCiAuLi4vbGx2bTE1L3BhdGNoZXMvbGliY3h4 LXNzcC1ub25zaGFyZWQucGF0Y2ggfCAgMTEgKwogc3JjcGtncy9sbHZtMTUvcGF0Y2hlcy9saWJj eHhhYmktZGwucGF0Y2ggICAgIHwgIDI1ICsKIHNyY3BrZ3MvbGx2bTE1L3BhdGNoZXMvbGliY3h4 YWJpLW11c2wucGF0Y2ggICB8ICAzNyArKwogc3JjcGtncy9sbHZtMTUvcGF0Y2hlcy9saWJvbXAt c29uYW1lLnBhdGNoICAgIHwgIDEyICsKIHNyY3BrZ3MvbGx2bTE1L3BhdGNoZXMvbGxkYi1tdXNs LnBhdGNoICAgICAgICB8ICA0MCArKwogc3JjcGtncy9sbHZtMTUvcGF0Y2hlcy9sbHZtLTAwMS1t dXNsLnBhdGNoICAgIHwgIDU3ICsrKwogLi4uL3BhdGNoZXMvbGx2bS0wMDItbXVzbC1wcGM2NC1l bGZ2Mi5wYXRjaCAgIHwgIDMwICsrCiAuLi4vcGF0Y2hlcy9sbHZtLTAwMy1wcGMtc2VjdXJlcGx0 LnBhdGNoICAgICAgfCAgMTEgKwogLi4uL3BhdGNoZXMvbGx2bS0wMDQtb3ZlcnJpZGUtb3B0LnBh dGNoICAgICAgIHwgIDE4ICsKIC4uLi9sbHZtMTUvcGF0Y2hlcy9sbHZtLTAwNS1wcGMtYmlncGlj LnBhdGNoICB8ICAzNiArKwogLi4uL3BhdGNoZXMvbGx2bS0wMDYtYWFyY2g2NC1tZl9leGVjLnBh dGNoICAgIHwgIDI1ICsKIHNyY3BrZ3MvbGx2bTE1L3RlbXBsYXRlICAgICAgICAgICAgICAgICAg ICAgICB8IDQ0MiArKysrKysrKysrKysrKysrKysKIHNyY3BrZ3MvbGx2bTE1L3VwZGF0ZSAgICAg ICAgICAgICAgICAgICAgICAgICB8ICAgMyArCiAyMyBmaWxlcyBjaGFuZ2VkLCAxMDYzIGluc2Vy dGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEyMDAwMCBzcmNwa2dzL2xpYmxsdm0xNQogY3JlYXRlIG1v ZGUgMTAwNjQ0IHNyY3BrZ3MvbGx2bTE1L2ZpbGVzL2xsdm0tQ29uZmlnLWxsdm0tY29uZmlnLmgK IGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xsdm0xNS9wYXRjaGVzL2NsYW5nLTAwMS1maXgt dW53aW5kLWNoYWluLWluY2x1c2lvbi5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mv bGx2bTE1L3BhdGNoZXMvY2xhbmctMDAyLWFkZC1tdXNsLXRyaXBsZXMucGF0Y2gKIGNyZWF0ZSBt b2RlIDEwMDY0NCBzcmNwa2dzL2xsdm0xNS9wYXRjaGVzL2NsYW5nLTAwMy1wcGM2NC1keW5hbWlj LWxpbmtlci1wYXRoLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9sbHZtMTUvcGF0 Y2hlcy9jbGFuZy0wMDQtcHBjNjQtbXVzbC1lbGZ2Mi5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0 IHNyY3BrZ3MvbGx2bTE1L3BhdGNoZXMvY29tcGlsZXItcnQtc2FuaXRpemVyLXBwYzY0LW11c2wu cGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xsdm0xNS9wYXRjaGVzL2xpYmN4eC1t dXNsLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9sbHZtMTUvcGF0Y2hlcy9saWJj eHgtcHBjLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9sbHZtMTUvcGF0Y2hlcy9s aWJjeHgtc3NwLW5vbnNoYXJlZC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGx2 bTE1L3BhdGNoZXMvbGliY3h4YWJpLWRsLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtn cy9sbHZtMTUvcGF0Y2hlcy9saWJjeHhhYmktbXVzbC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0 IHNyY3BrZ3MvbGx2bTE1L3BhdGNoZXMvbGlib21wLXNvbmFtZS5wYXRjaAogY3JlYXRlIG1vZGUg MTAwNjQ0IHNyY3BrZ3MvbGx2bTE1L3BhdGNoZXMvbGxkYi1tdXNsLnBhdGNoCiBjcmVhdGUgbW9k ZSAxMDA2NDQgc3JjcGtncy9sbHZtMTUvcGF0Y2hlcy9sbHZtLTAwMS1tdXNsLnBhdGNoCiBjcmVh dGUgbW9kZSAxMDA2NDQgc3JjcGtncy9sbHZtMTUvcGF0Y2hlcy9sbHZtLTAwMi1tdXNsLXBwYzY0 LWVsZnYyLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9sbHZtMTUvcGF0Y2hlcy9s bHZtLTAwMy1wcGMtc2VjdXJlcGx0LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9s bHZtMTUvcGF0Y2hlcy9sbHZtLTAwNC1vdmVycmlkZS1vcHQucGF0Y2gKIGNyZWF0ZSBtb2RlIDEw MDY0NCBzcmNwa2dzL2xsdm0xNS9wYXRjaGVzL2xsdm0tMDA1LXBwYy1iaWdwaWMucGF0Y2gKIGNy ZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xsdm0xNS9wYXRjaGVzL2xsdm0tMDA2LWFhcmNoNjQt bWZfZXhlYy5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGx2bTE1L3RlbXBsYXRl CiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9sbHZtMTUvdXBkYXRlCgpkaWZmIC0tZ2l0IGEv Y29tbW9uL3NobGlicyBiL2NvbW1vbi9zaGxpYnMKaW5kZXggMjAyODIyNjYwNmJjLi40MzVkZTVl ZGY1OTYgMTAwNjQ0Ci0tLSBhL2NvbW1vbi9zaGxpYnMKKysrIGIvY29tbW9uL3NobGlicwpAQCAt OTkwLDcgKzk5MCwxMCBAQCBsaWJjbGFuZy5zby4xMiBsaWJjbGFuZy0xMi4wLjBfMQogbGliY2xh bmctY3BwLnNvLjEyIGxpYmNsYW5nLWNwcC0xMi4wLjBfMQogbGliTExWTS0xMS5zbyBsaWJsbHZt MTEtMTEuMC4wXzEKIGxpYkxMVk0tMTIuc28gbGlibGx2bTEyLTEyLjAuMF8xCitsaWJMTFZNLTE1 LnNvIGxpYmxsdm0xNS0xNS4wLjdfMQogbGliTExWTVNQSVJWTGliLnNvLjEyIFNQSVJWLUxMVk0t VHJhbnNsYXRvci0xMi4wLjBfMQorbGlib21wLnNvLjUgbGlib21wLTE1LjAuN18xCitsaWJvbXB0 YXJnZXQuc28uMTUgbGlib21wLTE1LjAuN18xCiBsaWJpc29mcy5zby42IGxpYmlzb2ZzLTAuNi4y NF8xCiBsaWJtcGFjay5zby4wIGxpYm1wYWNrLTEuMC41XzEKIGxpYkdlb0lQLnNvLjEgbGliZ2Vv aXAtMS40LjhfMQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9saWJsbHZtMTUgYi9zcmNwa2dzL2xpYmxs dm0xNQpuZXcgZmlsZSBtb2RlIDEyMDAwMAppbmRleCAwMDAwMDAwMDAwMDAuLmFkNTdhOTY5Yjlm OQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbGlibGx2bTE1CkBAIC0wLDAgKzEgQEAKK2xs dm0xNQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2 bTE1L2ZpbGVzL2xsdm0tQ29uZmlnLWxsdm0tY29uZmlnLmggYi9zcmNwa2dzL2xsdm0xNS9maWxl cy9sbHZtLUNvbmZpZy1sbHZtLWNvbmZpZy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMDAwMC4uMmZhMDhjOWJlNjk2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9sbHZt MTUvZmlsZXMvbGx2bS1Db25maWctbGx2bS1jb25maWcuaApAQCAtMCwwICsxLDkgQEAKKyNpbmNs dWRlIDxiaXRzL3dvcmRzaXplLmg+CisKKyNpZiBfX1dPUkRTSVpFID09IDMyCisjaW5jbHVkZSAi bGx2bS1jb25maWctMzIuaCIKKyNlbGlmIF9fV09SRFNJWkUgPT0gNjQKKyNpbmNsdWRlICJsbHZt LWNvbmZpZy02NC5oIgorI2Vsc2UKKyNlcnJvciAiVW5rbm93biB3b3JkIHNpemUiCisjZW5kaWYK ZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bTE1L3BhdGNoZXMvY2xhbmctMDAxLWZpeC11bndpbmQt Y2hhaW4taW5jbHVzaW9uLnBhdGNoIGIvc3JjcGtncy9sbHZtMTUvcGF0Y2hlcy9jbGFuZy0wMDEt Zml4LXVud2luZC1jaGFpbi1pbmNsdXNpb24ucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMDAwMDAwLi5lNGVhYTc3ODNlN2EKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dz L2xsdm0xNS9wYXRjaGVzL2NsYW5nLTAwMS1maXgtdW53aW5kLWNoYWluLWluY2x1c2lvbi5wYXRj aApAQCAtMCwwICsxLDQ0IEBACitGcm9tIDM1Mjk3NDE2OWYwZDJiNWRhM2Q1MzIxZjU4OGY1ZTNi NTk0MTMzMGUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBBbmRyZWEgQnJhbmNhbGVv bmkgPG1pd2F4ZUBnbWFpbC5jb20+CitEYXRlOiBUdWUsIDggU2VwIDIwMTUgMjI6MTQ6NTcgKzAy MDAKK1N1YmplY3Q6IFtQQVRDSCAyLzddIGZpeCB1bndpbmQgY2hhaW4gaW5jbHVzaW9uCisKKy0t LQorIGxpYi9IZWFkZXJzL3Vud2luZC5oIHwgOSArKysrKy0tLS0KKyAxIGZpbGUgY2hhbmdlZCwg NSBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvbGliL0hlYWRl cnMvdW53aW5kLmggYi9saWIvSGVhZGVycy91bndpbmQuaAoraW5kZXggMzAzZDc5Mi4uNDRlMTBj YyAxMDA2NDQKKy0tLSBhL2NsYW5nL2xpYi9IZWFkZXJzL3Vud2luZC5oCisrKysgYi9jbGFuZy9s aWIvSGVhZGVycy91bndpbmQuaAorQEAgLTksOSArOSw2IEBACisgCisgLyogU2VlICJEYXRhIERl ZmluaXRpb25zIGZvciBsaWJnY2NfcyIgaW4gdGhlIExpbnV4IFN0YW5kYXJkIEJhc2UuKi8KKyAK Ky0jaWZuZGVmIF9fQ0xBTkdfVU5XSU5EX0gKKy0jZGVmaW5lIF9fQ0xBTkdfVU5XSU5EX0gKKy0K KyAjaWYgZGVmaW5lZChfX0FQUExFX18pICYmIF9faGFzX2luY2x1ZGVfbmV4dCg8dW53aW5kLmg+ KQorIC8qIERhcndpbiAoZnJvbSAxMS54IG9uKSBwcm92aWRlIGFuIHVud2luZC5oLiBJZiB0aGF0 J3MgYXZhaWxhYmxlLAorICAqIHVzZSBpdC4gbGlidW53aW5kIHdyYXBzIHNvbWUgb2YgaXRzIGRl ZmluaXRpb25zIGluICNpZmRlZiBfR05VX1NPVVJDRSwKK0BAIC0zOSw2ICszNiw5IEBACisgIyBl bmRpZgorICNlbHNlCisgCisrI2lmbmRlZiBfX0NMQU5HX1VOV0lORF9ICisrI2RlZmluZSBfX0NM QU5HX1VOV0lORF9ICisrCisgI2luY2x1ZGUgPHN0ZGludC5oPgorIAorICNpZmRlZiBfX2NwbHVz cGx1cworQEAgLTMyMiw2ICszMjIsNyBAQCBfVW53aW5kX1B0ciBfVW53aW5kX0dldFRleHRSZWxC YXNlKHN0cnVjdCBfVW53aW5kX0NvbnRleHQgKik7CisgfQorICNlbmRpZgorIAorKyNlbmRpZiAv KiBfX0NMQU5HX1VOV0lORF9IICovCisrCisgI2VuZGlmCisgCistI2VuZGlmIC8qIF9fQ0xBTkdf VU5XSU5EX0ggKi8KKy0tIAorMi41LjEKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bTE1L3BhdGNo ZXMvY2xhbmctMDAyLWFkZC1tdXNsLXRyaXBsZXMucGF0Y2ggYi9zcmNwa2dzL2xsdm0xNS9wYXRj aGVzL2NsYW5nLTAwMi1hZGQtbXVzbC10cmlwbGVzLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMDAwMC4uMGVmNGM3ZTc1ZDZiCi0tLSAvZGV2L251bGwKKysrIGIvc3Jj cGtncy9sbHZtMTUvcGF0Y2hlcy9jbGFuZy0wMDItYWRkLW11c2wtdHJpcGxlcy5wYXRjaApAQCAt MCwwICsxLDExNSBAQAorLS0tIGEvY2xhbmcvbGliL0RyaXZlci9Ub29sQ2hhaW5zL0dudS5jcHAK KysrKyBiL2NsYW5nL2xpYi9Ecml2ZXIvVG9vbENoYWlucy9HbnUuY3BwCitAQCAtMjA4Niw3ICsy MDg2LDggQEAgdm9pZCBHZW5lcmljX0dDQzo6R0NDSW5zdGFsbGF0aW9uRGV0ZWN0b3I6OkFkZERl ZmF1bHRHQ0NQcmVmaXhlcygKKyAgIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBBUk1IRlRyaXBs ZXNbXSA9IHsiYXJtLWxpbnV4LWdudWVhYmloZiIsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgImFybXY3aGwtcmVkaGF0LWxpbnV4LWdudWVhYmkiLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhcm12NmhsLXN1c2Ut bGludXgtZ251ZWFiaSIsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgImFybXY3aGwtc3VzZS1saW51eC1nbnVlYWJpIn07CisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgImFybXY3aGwtc3VzZS1saW51eC1nbnVlYWJpIiwK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYXJtdjdsLWxp bnV4LWdudWVhYmloZiJ9OworICAgc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IEFSTWViTGliRGly c1tdID0geyIvbGliIn07CisgICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgQVJNZWJUcmlwbGVz W10gPSB7ImFybWViLWxpbnV4LWdudWVhYmkiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICJhcm1lYi1saW51eC1hbmRyb2lkZWFiaSJ9OworQEAgLTIxNTMs OCArMjE1NCw3IEBAIHZvaWQgR2VuZXJpY19HQ0M6OkdDQ0luc3RhbGxhdGlvbkRldGVjdG9yOjpB ZGREZWZhdWx0R0NDUHJlZml4ZXMoCisgICAgICAgInBvd2VycGM2NC1zdXNlLWxpbnV4IiwgInBv d2VycGMtbW9udGF2aXN0YS1saW51eHNwZSJ9OworICAgc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0 IFBQQ0xFTGliRGlyc1tdID0geyIvbGliMzIiLCAiL2xpYiJ9OworICAgc3RhdGljIGNvbnN0IGNo YXIgKmNvbnN0IFBQQ0xFVHJpcGxlc1tdID0geyJwb3dlcnBjbGUtbGludXgtZ251IiwKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicG93ZXJwY2xlLXVua25v d24tbGludXgtZ251IiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAicG93ZXJwY2xlLWxpbnV4LW11c2wifTsKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAicG93ZXJwY2xlLXVua25vd24tbGludXgtZ251In07CisgCisg ICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgUFBDNjRMaWJEaXJzW10gPSB7Ii9saWI2NCIsICIv bGliIn07CisgICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgUFBDNjRUcmlwbGVzW10gPSB7CitA QCAtMjIzNSw2ICsyMjM1LDkyIEBAIHZvaWQgR2VuZXJpY19HQ0M6OkdDQ0luc3RhbGxhdGlvbkRl dGVjdG9yOjpBZGREZWZhdWx0R0NDUHJlZml4ZXMoCisgICAgIHJldHVybjsKKyAgIH0KKyAKKysg IGlmIChUYXJnZXRUcmlwbGUuaXNNdXNsKCkpIHsKKysgICAgc3RhdGljIGNvbnN0IGNoYXIgKmNv bnN0IEFBcmNoNjRNdXNsVHJpcGxlc1tdID0geyJhYXJjaDY0LWxpbnV4LW11c2wifTsKKysgICAg c3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IEFSTUhGTXVzbFRyaXBsZXNbXSA9IHsKKysgICAgICAg ICJhcm0tbGludXgtbXVzbGVhYmloZiIsICJhcm12N2wtbGludXgtbXVzbGVhYmloZiIKKysgICAg fTsKKysgICAgc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IEFSTU11c2xUcmlwbGVzW10gPSB7ImFy bS1saW51eC1tdXNsZWFiaSJ9OworKyAgICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgWDg2XzY0 TXVzbFRyaXBsZXNbXSA9IHsieDg2XzY0LWxpbnV4LW11c2wifTsKKysgICAgc3RhdGljIGNvbnN0 IGNoYXIgKmNvbnN0IFg4Nk11c2xUcmlwbGVzW10gPSB7Imk2ODYtbGludXgtbXVzbCJ9OworKyAg ICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgTUlQU011c2xUcmlwbGVzW10gPSB7CisrICAgICAg ICAibWlwcy1saW51eC1tdXNsIiwgIm1pcHNlbC1saW51eC1tdXNsIiwKKysgICAgICAgICJtaXBz ZWwtbGludXgtbXVzbGhmIiwgIm1pcHMtbGludXgtbXVzbGhmIgorKyAgICB9OworKyAgICBzdGF0 aWMgY29uc3QgY2hhciAqY29uc3QgUFBDTXVzbFRyaXBsZXNbXSA9IHsicG93ZXJwYy1saW51eC1t dXNsIn07CisrICAgIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBQUENMRU11c2xUcmlwbGVzW10g PSB7InBvd2VycGNsZS1saW51eC1tdXNsIn07CisrICAgIHN0YXRpYyBjb25zdCBjaGFyICpjb25z dCBQUEM2NE11c2xUcmlwbGVzW10gPSB7InBvd2VycGM2NC1saW51eC1tdXNsIn07CisrICAgIHN0 YXRpYyBjb25zdCBjaGFyICpjb25zdCBQUEM2NExFTXVzbFRyaXBsZXNbXSA9IHsicG93ZXJwYzY0 bGUtbGludXgtbXVzbCJ9OworKyAgICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgUklTQ1Y2NE11 c2xUcmlwbGVzW10gPSB7InJpc2N2NjQtbGludXgtbXVzbCJ9OworKworKyAgICBzd2l0Y2ggKFRh cmdldFRyaXBsZS5nZXRBcmNoKCkpIHsKKysgICAgY2FzZSBsbHZtOjpUcmlwbGU6OmFhcmNoNjQ6 CisrICAgICAgTGliRGlycy5hcHBlbmQoYmVnaW4oQUFyY2g2NExpYkRpcnMpLCBlbmQoQUFyY2g2 NExpYkRpcnMpKTsKKysgICAgICBUcmlwbGVBbGlhc2VzLmFwcGVuZChiZWdpbihBQXJjaDY0TXVz bFRyaXBsZXMpLCBlbmQoQUFyY2g2NE11c2xUcmlwbGVzKSk7CisrICAgICAgQmlhcmNoTGliRGly cy5hcHBlbmQoYmVnaW4oQUFyY2g2NExpYkRpcnMpLCBlbmQoQUFyY2g2NExpYkRpcnMpKTsKKysg ICAgICBCaWFyY2hUcmlwbGVBbGlhc2VzLmFwcGVuZChiZWdpbihBQXJjaDY0TXVzbFRyaXBsZXMp LCBlbmQoQUFyY2g2NE11c2xUcmlwbGVzKSk7CisrICAgICAgYnJlYWs7CisrICAgIGNhc2UgbGx2 bTo6VHJpcGxlOjphcm06CisrICAgICAgTGliRGlycy5hcHBlbmQoYmVnaW4oQVJNTGliRGlycyks IGVuZChBUk1MaWJEaXJzKSk7CisrICAgICAgaWYgKFRhcmdldFRyaXBsZS5nZXRFbnZpcm9ubWVu dCgpID09IGxsdm06OlRyaXBsZTo6TXVzbEVBQklIRikgeworKyAgICAgICAgVHJpcGxlQWxpYXNl cy5hcHBlbmQoYmVnaW4oQVJNSEZNdXNsVHJpcGxlcyksIGVuZChBUk1IRk11c2xUcmlwbGVzKSk7 CisrICAgICAgfSBlbHNlIHsKKysgICAgICAgIFRyaXBsZUFsaWFzZXMuYXBwZW5kKGJlZ2luKEFS TU11c2xUcmlwbGVzKSwgZW5kKEFSTU11c2xUcmlwbGVzKSk7CisrICAgICAgfQorKyAgICAgIGJy ZWFrOworKyAgICBjYXNlIGxsdm06OlRyaXBsZTo6eDg2XzY0OgorKyAgICAgIExpYkRpcnMuYXBw ZW5kKGJlZ2luKFg4Nl82NExpYkRpcnMpLCBlbmQoWDg2XzY0TGliRGlycykpOworKyAgICAgIFRy aXBsZUFsaWFzZXMuYXBwZW5kKGJlZ2luKFg4Nl82NE11c2xUcmlwbGVzKSwgZW5kKFg4Nl82NE11 c2xUcmlwbGVzKSk7CisrICAgICAgQmlhcmNoTGliRGlycy5hcHBlbmQoYmVnaW4oWDg2TGliRGly cyksIGVuZChYODZMaWJEaXJzKSk7CisrICAgICAgQmlhcmNoVHJpcGxlQWxpYXNlcy5hcHBlbmQo YmVnaW4oWDg2TXVzbFRyaXBsZXMpLCBlbmQoWDg2TXVzbFRyaXBsZXMpKTsKKysgICAgICBicmVh azsKKysgICAgY2FzZSBsbHZtOjpUcmlwbGU6Ong4NjoKKysgICAgICBMaWJEaXJzLmFwcGVuZChi ZWdpbihYODZMaWJEaXJzKSwgZW5kKFg4NkxpYkRpcnMpKTsKKysgICAgICBUcmlwbGVBbGlhc2Vz LmFwcGVuZChiZWdpbihYODZNdXNsVHJpcGxlcyksIGVuZChYODZNdXNsVHJpcGxlcykpOworKyAg ICAgIEJpYXJjaExpYkRpcnMuYXBwZW5kKGJlZ2luKFg4Nl82NExpYkRpcnMpLCBlbmQoWDg2XzY0 TGliRGlycykpOworKyAgICAgIEJpYXJjaFRyaXBsZUFsaWFzZXMuYXBwZW5kKGJlZ2luKFg4Nl82 NE11c2xUcmlwbGVzKSwgZW5kKFg4Nl82NE11c2xUcmlwbGVzKSk7CisrICAgICAgYnJlYWs7Cisr ICAgIGNhc2UgbGx2bTo6VHJpcGxlOjptaXBzOgorKyAgICAgIExpYkRpcnMuYXBwZW5kKGJlZ2lu KE1JUFNMaWJEaXJzKSwgZW5kKE1JUFNMaWJEaXJzKSk7CisrICAgICAgVHJpcGxlQWxpYXNlcy5h cHBlbmQoYmVnaW4oTUlQU011c2xUcmlwbGVzKSwgZW5kKE1JUFNNdXNsVHJpcGxlcykpOworKyAg ICAgIGJyZWFrOworKyAgICBjYXNlIGxsdm06OlRyaXBsZTo6cHBjOgorKyAgICAgIExpYkRpcnMu YXBwZW5kKGJlZ2luKFBQQ0xpYkRpcnMpLCBlbmQoUFBDTGliRGlycykpOworKyAgICAgIFRyaXBs ZUFsaWFzZXMuYXBwZW5kKGJlZ2luKFBQQ011c2xUcmlwbGVzKSwgZW5kKFBQQ011c2xUcmlwbGVz KSk7CisrICAgICAgQmlhcmNoTGliRGlycy5hcHBlbmQoYmVnaW4oUFBDNjRMaWJEaXJzKSwgZW5k KFBQQzY0TGliRGlycykpOworKyAgICAgIEJpYXJjaFRyaXBsZUFsaWFzZXMuYXBwZW5kKGJlZ2lu KFBQQzY0TXVzbFRyaXBsZXMpLCBlbmQoUFBDNjRNdXNsVHJpcGxlcykpOworKyAgICAgIGJyZWFr OworKyAgICBjYXNlIGxsdm06OlRyaXBsZTo6cHBjbGU6CisrICAgICAgTGliRGlycy5hcHBlbmQo YmVnaW4oUFBDTEVMaWJEaXJzKSwgZW5kKFBQQ0xFTGliRGlycykpOworKyAgICAgIFRyaXBsZUFs aWFzZXMuYXBwZW5kKGJlZ2luKFBQQ0xFTXVzbFRyaXBsZXMpLCBlbmQoUFBDTEVNdXNsVHJpcGxl cykpOworKyAgICAgIEJpYXJjaExpYkRpcnMuYXBwZW5kKGJlZ2luKFBQQzY0TEVMaWJEaXJzKSwg ZW5kKFBQQzY0TEVMaWJEaXJzKSk7CisrICAgICAgQmlhcmNoVHJpcGxlQWxpYXNlcy5hcHBlbmQo YmVnaW4oUFBDNjRMRU11c2xUcmlwbGVzKSwgZW5kKFBQQzY0TEVNdXNsVHJpcGxlcykpOworKyAg ICAgIGJyZWFrOworKyAgICBjYXNlIGxsdm06OlRyaXBsZTo6cHBjNjQ6CisrICAgICAgTGliRGly cy5hcHBlbmQoYmVnaW4oUFBDNjRMaWJEaXJzKSwgZW5kKFBQQzY0TGliRGlycykpOworKyAgICAg IFRyaXBsZUFsaWFzZXMuYXBwZW5kKGJlZ2luKFBQQzY0TXVzbFRyaXBsZXMpLCBlbmQoUFBDNjRN dXNsVHJpcGxlcykpOworKyAgICAgIEJpYXJjaExpYkRpcnMuYXBwZW5kKGJlZ2luKFBQQ0xpYkRp cnMpLCBlbmQoUFBDTGliRGlycykpOworKyAgICAgIEJpYXJjaFRyaXBsZUFsaWFzZXMuYXBwZW5k KGJlZ2luKFBQQ011c2xUcmlwbGVzKSwgZW5kKFBQQ011c2xUcmlwbGVzKSk7CisrICAgICAgYnJl YWs7CisrICAgIGNhc2UgbGx2bTo6VHJpcGxlOjpwcGM2NGxlOgorKyAgICAgIExpYkRpcnMuYXBw ZW5kKGJlZ2luKFBQQzY0TEVMaWJEaXJzKSwgZW5kKFBQQzY0TEVMaWJEaXJzKSk7CisrICAgICAg VHJpcGxlQWxpYXNlcy5hcHBlbmQoYmVnaW4oUFBDNjRMRU11c2xUcmlwbGVzKSwgZW5kKFBQQzY0 TEVNdXNsVHJpcGxlcykpOworKyAgICAgIEJpYXJjaExpYkRpcnMuYXBwZW5kKGJlZ2luKFBQQ0xF TGliRGlycyksIGVuZChQUENMRUxpYkRpcnMpKTsKKysgICAgICBCaWFyY2hUcmlwbGVBbGlhc2Vz LmFwcGVuZChiZWdpbihQUENMRU11c2xUcmlwbGVzKSwgZW5kKFBQQ0xFTXVzbFRyaXBsZXMpKTsK KysgICAgICBicmVhazsKKysgICAgY2FzZSBsbHZtOjpUcmlwbGU6OnJpc2N2NjQ6CisrICAgICAg TGliRGlycy5hcHBlbmQoYmVnaW4oUklTQ1Y2NExpYkRpcnMpLCBlbmQoUklTQ1Y2NExpYkRpcnMp KTsKKysgICAgICBUcmlwbGVBbGlhc2VzLmFwcGVuZChiZWdpbihSSVNDVjY0TXVzbFRyaXBsZXMp LCBlbmQoUklTQ1Y2NE11c2xUcmlwbGVzKSk7CisrICAgICAgYnJlYWs7CisrICAgIGRlZmF1bHQ6 CisrICAgICAgYnJlYWs7CisrICAgIH0KKysgICAgVHJpcGxlQWxpYXNlcy5wdXNoX2JhY2soVGFy Z2V0VHJpcGxlLnN0cigpKTsKKysgICAgaWYgKFRhcmdldFRyaXBsZS5zdHIoKSAhPSBCaWFyY2hU cmlwbGUuc3RyKCkpCisrICAgICAgQmlhcmNoVHJpcGxlQWxpYXNlcy5wdXNoX2JhY2soQmlhcmNo VHJpcGxlLnN0cigpKTsKKysgICAgcmV0dXJuOworKyAgfQorKworICAgLy8gQW5kcm9pZCB0YXJn ZXRzIHNob3VsZCBub3QgdXNlIEdOVS9MaW51eCB0b29scyBvciBsaWJyYXJpZXMuCisgICBpZiAo VGFyZ2V0VHJpcGxlLmlzQW5kcm9pZCgpKSB7CisgICAgIHN0YXRpYyBjb25zdCBjaGFyICpjb25z dCBBQXJjaDY0QW5kcm9pZFRyaXBsZXNbXSA9IHsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bTE1 L3BhdGNoZXMvY2xhbmctMDAzLXBwYzY0LWR5bmFtaWMtbGlua2VyLXBhdGgucGF0Y2ggYi9zcmNw a2dzL2xsdm0xNS9wYXRjaGVzL2NsYW5nLTAwMy1wcGM2NC1keW5hbWljLWxpbmtlci1wYXRoLnBh dGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNGFkNjQxMmQxZTZj Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9sbHZtMTUvcGF0Y2hlcy9jbGFuZy0wMDMtcHBj NjQtZHluYW1pYy1saW5rZXItcGF0aC5wYXRjaApAQCAtMCwwICsxLDEzIEBACistLS0gYS9jbGFu Zy9saWIvRHJpdmVyL1Rvb2xDaGFpbnMvTGludXguY3BwCisrKysgYi9jbGFuZy9saWIvRHJpdmVy L1Rvb2xDaGFpbnMvTGludXguY3BwCitAQCAtNTA0LDEwICs1MDQsNiBAQCBzdGQ6OnN0cmluZyBM aW51eDo6Z2V0RHluYW1pY0xpbmtlcihjb25zdCBBcmdMaXN0ICZBcmdzKSBjb25zdCB7CisgICAg IExvYWRlciA9ICJsZC5zby4xIjsKKyAgICAgYnJlYWs7CisgICBjYXNlIGxsdm06OlRyaXBsZTo6 cHBjNjQ6CistICAgIExpYkRpciA9ICJsaWI2NCI7CistICAgIExvYWRlciA9CistICAgICAgICAo dG9vbHM6OnBwYzo6aGFzUFBDQWJpQXJnKEFyZ3MsICJlbGZ2MiIpKSA/ICJsZDY0LnNvLjIiIDog ImxkNjQuc28uMSI7CistICAgIGJyZWFrOworICAgY2FzZSBsbHZtOjpUcmlwbGU6OnBwYzY0bGU6 CisgICAgIExpYkRpciA9ICJsaWI2NCI7CisgICAgIExvYWRlciA9CmRpZmYgLS1naXQgYS9zcmNw a2dzL2xsdm0xNS9wYXRjaGVzL2NsYW5nLTAwNC1wcGM2NC1tdXNsLWVsZnYyLnBhdGNoIGIvc3Jj cGtncy9sbHZtMTUvcGF0Y2hlcy9jbGFuZy0wMDQtcHBjNjQtbXVzbC1lbGZ2Mi5wYXRjaApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjIxZmM4MDAzYzVmMQotLS0gL2Rl di9udWxsCisrKyBiL3NyY3BrZ3MvbGx2bTE1L3BhdGNoZXMvY2xhbmctMDA0LXBwYzY0LW11c2wt ZWxmdjIucGF0Y2gKQEAgLTAsMCArMSw0OCBAQAorLS0tIGEvY2xhbmcvbGliL0Jhc2ljL1Rhcmdl dHMvUFBDLmgKKysrKyBiL2NsYW5nL2xpYi9CYXNpYy9UYXJnZXRzL1BQQy5oCitAQCAtNDE1LDEx ICs0MTUsMTAgQEAgcHVibGljOgorICAgICAgIExvbmdEb3VibGVGb3JtYXQgPSAmbGx2bTo6QVBG bG9hdDo6SUVFRWRvdWJsZSgpOworICAgICB9IGVsc2UgaWYgKChUcmlwbGUuZ2V0QXJjaCgpID09 IGxsdm06OlRyaXBsZTo6cHBjNjRsZSkpIHsKKyAgICAgICBEYXRhTGF5b3V0ID0gImUtbTplLWk2 NDo2NC1uMzI6NjQiOworLSAgICAgIEFCSSA9ICJlbGZ2MiI7CisgICAgIH0gZWxzZSB7CisgICAg ICAgRGF0YUxheW91dCA9ICJFLW06ZS1pNjQ6NjQtbjMyOjY0IjsKKy0gICAgICBBQkkgPSAiZWxm djEiOworICAgICB9CisrICAgIEFCSSA9ICJlbGZ2MiI7CisgCisgICAgIGlmIChUcmlwbGUuaXNP U0ZyZWVCU0QoKSB8fCBUcmlwbGUuaXNPU09wZW5CU0QoKSB8fCBUcmlwbGUuaXNNdXNsKCkpIHsK KyAgICAgICBMb25nRG91YmxlV2lkdGggPSBMb25nRG91YmxlQWxpZ24gPSA2NDsKKy0tLSBhL2Ns YW5nL2xpYi9Db2RlR2VuL1RhcmdldEluZm8uY3BwCisrKysgYi9jbGFuZy9saWIvQ29kZUdlbi9U YXJnZXRJbmZvLmNwcAorQEAgLTEwOTI3LDkgKzEwOTI3LDkgQEAgY29uc3QgVGFyZ2V0Q29kZUdl bkluZm8gJkNvZGVHZW5Nb2R1bGU6OmdldFRhcmdldENvZGVHZW5JbmZvKCkgeworICAgICAgIHJl dHVybiBTZXRDR0luZm8obmV3IEFJWFRhcmdldENvZGVHZW5JbmZvKFR5cGVzLCAvKklzNjRCaXQq LyB0cnVlKSk7CisgCisgICAgIGlmIChUcmlwbGUuaXNPU0JpbkZvcm1hdEVMRigpKSB7CistICAg ICAgUFBDNjRfU1ZSNF9BQklJbmZvOjpBQklLaW5kIEtpbmQgPSBQUEM2NF9TVlI0X0FCSUluZm86 OkVMRnYxOworLSAgICAgIGlmIChnZXRUYXJnZXQoKS5nZXRBQkkoKSA9PSAiZWxmdjIiKQorLSAg ICAgICAgS2luZCA9IFBQQzY0X1NWUjRfQUJJSW5mbzo6RUxGdjI7CisrICAgICAgUFBDNjRfU1ZS NF9BQklJbmZvOjpBQklLaW5kIEtpbmQgPSBQUEM2NF9TVlI0X0FCSUluZm86OkVMRnYyOworKyAg ICAgIGlmIChnZXRUYXJnZXQoKS5nZXRBQkkoKSA9PSAiZWxmdjEiKQorKyAgICAgICAgS2luZCA9 IFBQQzY0X1NWUjRfQUJJSW5mbzo6RUxGdjE7CisgICAgICAgYm9vbCBJc1NvZnRGbG9hdCA9IENv ZGVHZW5PcHRzLkZsb2F0QUJJID09ICJzb2Z0IjsKKyAKKyAgICAgICByZXR1cm4gU2V0Q0dJbmZv KAorLS0tIGEvY2xhbmcvbGliL0RyaXZlci9Ub29sQ2hhaW5zL0NsYW5nLmNwcAorKysrIGIvY2xh bmcvbGliL0RyaXZlci9Ub29sQ2hhaW5zL0NsYW5nLmNwcAorQEAgLTE5MjAsMTQgKzE5MjAsNyBA QCB2b2lkIENsYW5nOjpBZGRQUENUYXJnZXRBcmdzKGNvbnN0IEFyZ0xpc3QgJkFyZ3MsCisgICBj b25zdCBsbHZtOjpUcmlwbGUgJlQgPSBnZXRUb29sQ2hhaW4oKS5nZXRUcmlwbGUoKTsKKyAgIGlm IChULmlzT1NCaW5Gb3JtYXRFTEYoKSkgeworICAgICBzd2l0Y2ggKGdldFRvb2xDaGFpbigpLmdl dEFyY2goKSkgeworLSAgICBjYXNlIGxsdm06OlRyaXBsZTo6cHBjNjQ6IHsKKy0gICAgICBpZiAo KFQuaXNPU0ZyZWVCU0QoKSAmJiBULmdldE9TTWFqb3JWZXJzaW9uKCkgPj0gMTMpIHx8CistICAg ICAgICAgIFQuaXNPU09wZW5CU0QoKSB8fCBULmlzTXVzbCgpKQorLSAgICAgICAgQUJJTmFtZSA9 ICJlbGZ2MiI7CistICAgICAgZWxzZQorLSAgICAgICAgQUJJTmFtZSA9ICJlbGZ2MSI7CistICAg ICAgYnJlYWs7CistICAgIH0KKysgICAgY2FzZSBsbHZtOjpUcmlwbGU6OnBwYzY0OgorICAgICBj YXNlIGxsdm06OlRyaXBsZTo6cHBjNjRsZToKKyAgICAgICBBQklOYW1lID0gImVsZnYyIjsKKyAg ICAgICBicmVhazsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bTE1L3BhdGNoZXMvY29tcGlsZXIt cnQtc2FuaXRpemVyLXBwYzY0LW11c2wucGF0Y2ggYi9zcmNwa2dzL2xsdm0xNS9wYXRjaGVzL2Nv bXBpbGVyLXJ0LXNhbml0aXplci1wcGM2NC1tdXNsLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMDAwMC4uMzYwY2ZjMWJhN2YxCi0tLSAvZGV2L251bGwKKysrIGIvc3Jj cGtncy9sbHZtMTUvcGF0Y2hlcy9jb21waWxlci1ydC1zYW5pdGl6ZXItcHBjNjQtbXVzbC5wYXRj aApAQCAtMCwwICsxLDM1IEBACistLS0gYS9jb21waWxlci1ydC9saWIvc2FuaXRpemVyX2NvbW1v bi9zYW5pdGl6ZXJfbGludXguY3BwCisrKysgYi9jb21waWxlci1ydC9saWIvc2FuaXRpemVyX2Nv bW1vbi9zYW5pdGl6ZXJfbGludXguY3BwCitAQCAtNzQsNiArNzQsMTAgQEAKKyAjaW5jbHVkZSA8 c3lzL3V0c25hbWUuaD4KKyAjZW5kaWYKKyAKKysjaWYgU0FOSVRJWkVSX0xJTlVYICYmIGRlZmlu ZWQoX19wb3dlcnBjX18pCisrI2luY2x1ZGUgPGFzbS9wdHJhY2UuaD4KKysjZW5kaWYKKysKKyAj aWYgU0FOSVRJWkVSX0xJTlVYICYmICFTQU5JVElaRVJfQU5EUk9JRAorICNpbmNsdWRlIDxzeXMv cGVyc29uYWxpdHkuaD4KKyAjZW5kaWYKKy0tLSBhL2NvbXBpbGVyLXJ0L2xpYi9zYW5pdGl6ZXJf Y29tbW9uL3Nhbml0aXplcl9wbGF0Zm9ybV9saW1pdHNfcG9zaXguY3BwCisrKysgYi9jb21waWxl ci1ydC9saWIvc2FuaXRpemVyX2NvbW1vbi9zYW5pdGl6ZXJfcGxhdGZvcm1fbGltaXRzX3Bvc2l4 LmNwcAorQEAgLTk0LDcgKzk0LDcgQEAKKyAjIGluY2x1ZGUgPHV0aW1lLmg+CisgIyBpbmNsdWRl IDxzeXMvcHRyYWNlLmg+CisgIyAgICBpZiBkZWZpbmVkKF9fbWlwczY0KSB8fCBkZWZpbmVkKF9f YWFyY2g2NF9fKSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8IFwKKy0gICAgICAgIGRlZmluZWQoX19o ZXhhZ29uX18pIHx8IFNBTklUSVpFUl9SSVNDVjY0CisrICAgICAgICBkZWZpbmVkKF9faGV4YWdv bl9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwY19fKSB8fCBTQU5JVElaRVJfUklTQ1Y2NAorICMgICAg ICBpbmNsdWRlIDxhc20vcHRyYWNlLmg+CisgIyAgICAgIGlmZGVmIF9fYXJtX18KKyB0eXBlZGVm IHN0cnVjdCB1c2VyX2ZwcmVncyBlbGZfZnByZWdzZXRfdDsKKy0tLSBhL2NvbXBpbGVyLXJ0L2xp Yi9zYW5pdGl6ZXJfY29tbW9uL3Nhbml0aXplcl9zdG9wdGhld29ybGRfbGludXhfbGliY2RlcC5j cHAKKysrKyBiL2NvbXBpbGVyLXJ0L2xpYi9zYW5pdGl6ZXJfY29tbW9uL3Nhbml0aXplcl9zdG9w dGhld29ybGRfbGludXhfbGliY2RlcC5jcHAKK0BAIC0zMSw3ICszMSw3IEBACisgI2luY2x1ZGUg PHN5cy90eXBlcy5oPiAvLyBmb3IgcGlkX3QKKyAjaW5jbHVkZSA8c3lzL3Vpby5oPiAvLyBmb3Ig aW92ZWMKKyAjaW5jbHVkZSA8ZWxmLmg+IC8vIGZvciBOVF9QUlNUQVRVUworLSNpZiAoZGVmaW5l ZChfX2FhcmNoNjRfXykgfHwgU0FOSVRJWkVSX1JJU0NWNjQpICYmICFTQU5JVElaRVJfQU5EUk9J RAorKyNpZiAoZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgZGVmaW5lZChfX3Bvd2VycGNfXykgfHwg U0FOSVRJWkVSX1JJU0NWNjQpICYmICFTQU5JVElaRVJfQU5EUk9JRAorIC8vIEdMSUJDIDIuMjAr IHN5cy91c2VyIGRvZXMgbm90IGluY2x1ZGUgYXNtL3B0cmFjZS5oCisgIyBpbmNsdWRlIDxhc20v cHRyYWNlLmg+CisgI2VuZGlmCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0xNS9wYXRjaGVzL2xp YmN4eC1tdXNsLnBhdGNoIGIvc3JjcGtncy9sbHZtMTUvcGF0Y2hlcy9saWJjeHgtbXVzbC5wYXRj aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmJiZDMxZmZjMmNiMQot LS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbGx2bTE1L3BhdGNoZXMvbGliY3h4LW11c2wucGF0 Y2gKQEAgLTAsMCArMSwyNiBAQAorLS0tIGEvbGliY3h4L2luY2x1ZGUvbG9jYWxlCisrKysgYi9s aWJjeHgvaW5jbHVkZS9sb2NhbGUKK0BAIC03NDIsNyArNzQyLDExIEBAIF9fbnVtX2dldF9zaWdu ZWRfaW50ZWdyYWwoY29uc3QgY2hhciogX19hLCBjb25zdCBjaGFyKiBfX2FfZW5kLAorICAgICAg ICAgdHlwZW5hbWUgcmVtb3ZlX3JlZmVyZW5jZTxkZWNsdHlwZShlcnJubyk+Ojp0eXBlIF9fc2F2 ZV9lcnJubyA9IGVycm5vOworICAgICAgICAgZXJybm8gPSAwOworICAgICAgICAgY2hhciAqX19w MjsKKysjaWYgZGVmaW5lZChfX2xpbnV4X18pICYmICFkZWZpbmVkKF9fR0xJQkNfXykKKysgICAg ICAgIGxvbmcgbG9uZyBfX2xsID0gc3RydG9sbChfX2EsICZfX3AyLCBfX2Jhc2UpOworKyNlbHNl CisgICAgICAgICBsb25nIGxvbmcgX19sbCA9IHN0cnRvbGxfbChfX2EsICZfX3AyLCBfX2Jhc2Us IF9MSUJDUFBfR0VUX0NfTE9DQUxFKTsKKysjZW5kaWYKKyAgICAgICAgIHR5cGVuYW1lIHJlbW92 ZV9yZWZlcmVuY2U8ZGVjbHR5cGUoZXJybm8pPjo6dHlwZSBfX2N1cnJlbnRfZXJybm8gPSBlcnJu bzsKKyAgICAgICAgIGlmIChfX2N1cnJlbnRfZXJybm8gPT0gMCkKKyAgICAgICAgICAgICBlcnJu byA9IF9fc2F2ZV9lcnJubzsKK0BAIC03ODIsNyArNzg2LDExIEBAIF9fbnVtX2dldF91bnNpZ25l ZF9pbnRlZ3JhbChjb25zdCBjaGFyKiBfX2EsIGNvbnN0IGNoYXIqIF9fYV9lbmQsCisgICAgICAg ICB0eXBlbmFtZSByZW1vdmVfcmVmZXJlbmNlPGRlY2x0eXBlKGVycm5vKT46OnR5cGUgX19zYXZl X2Vycm5vID0gZXJybm87CisgICAgICAgICBlcnJubyA9IDA7CisgICAgICAgICBjaGFyICpfX3Ay OworKyNpZiBkZWZpbmVkKF9fbGludXhfXykgJiYgIWRlZmluZWQoX19HTElCQ19fKQorKyAgICAg ICAgdW5zaWduZWQgbG9uZyBsb25nIF9fbGwgPSBzdHJ0b3VsbChfX2EsICZfX3AyLCBfX2Jhc2Up OworKyNlbHNlCisgICAgICAgICB1bnNpZ25lZCBsb25nIGxvbmcgX19sbCA9IHN0cnRvdWxsX2wo X19hLCAmX19wMiwgX19iYXNlLCBfTElCQ1BQX0dFVF9DX0xPQ0FMRSk7CisrI2VuZGlmCisgICAg ICAgICB0eXBlbmFtZSByZW1vdmVfcmVmZXJlbmNlPGRlY2x0eXBlKGVycm5vKT46OnR5cGUgX19j dXJyZW50X2Vycm5vID0gZXJybm87CisgICAgICAgICBpZiAoX19jdXJyZW50X2Vycm5vID09IDAp CisgICAgICAgICAgICAgZXJybm8gPSBfX3NhdmVfZXJybm87CmRpZmYgLS1naXQgYS9zcmNwa2dz L2xsdm0xNS9wYXRjaGVzL2xpYmN4eC1wcGMucGF0Y2ggYi9zcmNwa2dzL2xsdm0xNS9wYXRjaGVz L2xpYmN4eC1wcGMucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw Li43YTkyZjgwMDRlMWMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xsdm0xNS9wYXRjaGVz L2xpYmN4eC1wcGMucGF0Y2gKQEAgLTAsMCArMSwyMiBAQAorVGhpcyBlbnN1cmVzIGBpc19pZWM1 NTlgIGlzIGRlZmluZWQgY29ycmVjdGx5IHVuZGVyIGFsbCBsb25nIGRvdWJsZSBBQklzLAoraW5j bHVkaW5nIG11c2wgYW5kIGl0cyA2NC1iaXQgbG9uZyBkb3VibGUuIEFsc28sIGBfX3BwY19fYCBv ciBgX19wcGM2NF9fYAoraXMgbm90IGRlZmluZWQgb24gZ2NjLgorCistLS0gYS9saWJjeHgvaW5j bHVkZS9saW1pdHMKKysrKyBiL2xpYmN4eC9pbmNsdWRlL2xpbWl0cworQEAgLTQyNiw4ICs0MjYs MTQgQEAgcHJvdGVjdGVkOgorICAgICBfTElCQ1BQX0lOTElORV9WSVNJQklMSVRZIHN0YXRpYyBf TElCQ1BQX0NPTlNURVhQUiB0eXBlIHNpZ25hbGluZ19OYU4oKSBfTk9FWENFUFQge3JldHVybiBf X2J1aWx0aW5fbmFuc2woIiIpO30KKyAgICAgX0xJQkNQUF9JTkxJTkVfVklTSUJJTElUWSBzdGF0 aWMgX0xJQkNQUF9DT05TVEVYUFIgdHlwZSBkZW5vcm1fbWluKCkgX05PRVhDRVBUIHtyZXR1cm4g X19MREJMX0RFTk9STV9NSU5fXzt9CisgCistI2lmIChkZWZpbmVkKF9fcHBjX18pIHx8IGRlZmlu ZWQoX19wcGM2NF9fKSkKKysjaWYgZGVmaW5lZChfX3Bvd2VycGNfXykgfHwgZGVmaW5lZChfX3Bv d2VycGM2NF9fKQorKyNpZiAoX19MREJMX01BWF9FWFBfXyA+IF9fREJMX01BWF9FWFBfXykgfHwg KF9fTERCTF9NQU5UX0RJR19fID09IF9fREJMX01BTlRfRElHX18pCisrICAgIC8qIElFRUUgNzU0 IHF1YWRydXBsZSBvciBkb3VibGUgcHJlY2lzaW9uICovCisrICAgIHN0YXRpYyBfTElCQ1BQX0NP TlNURVhQUiBjb25zdCBib29sIGlzX2llYzU1OSA9IHRydWU7CisrI2Vsc2UKKysgICAgLyogMTI4 LWJpdCBJQk0gZG91YmxlLWRvdWJsZSAqLworICAgICBzdGF0aWMgX0xJQkNQUF9DT05TVEVYUFIg Y29uc3QgYm9vbCBpc19pZWM1NTkgPSBmYWxzZTsKKysjZW5kaWYKKyAjZWxzZQorICAgICBzdGF0 aWMgX0xJQkNQUF9DT05TVEVYUFIgY29uc3QgYm9vbCBpc19pZWM1NTkgPSB0cnVlOworICNlbmRp ZgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtMTUvcGF0Y2hlcy9saWJjeHgtc3NwLW5vbnNoYXJl ZC5wYXRjaCBiL3NyY3BrZ3MvbGx2bTE1L3BhdGNoZXMvbGliY3h4LXNzcC1ub25zaGFyZWQucGF0 Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi43MDI5MmJlYjJmY2QK LS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xsdm0xNS9wYXRjaGVzL2xpYmN4eC1zc3Atbm9u c2hhcmVkLnBhdGNoCkBAIC0wLDAgKzEsMTEgQEAKKy0tLSBhL2xpYmN4eC9DTWFrZUxpc3RzLnR4 dAorKysrIGIvbGliY3h4L0NNYWtlTGlzdHMudHh0CitAQCAtNzY5LDYgKzc2OSw4IEBAIGZ1bmN0 aW9uKGN4eF9saW5rX3N5c3RlbV9saWJyYXJpZXMgdGFyZ2V0KQorICAgICB0YXJnZXRfbGlua19s aWJyYXJpZXMoJHt0YXJnZXR9IFBSSVZBVEUgYXRvbWljKQorICAgZW5kaWYoKQorIAorKyNzc3Ag IHRhcmdldF9saW5rX2xpYnJhcmllcygke3RhcmdldH0gUFJJVkFURSBzc3Bfbm9uc2hhcmVkKQor KworICAgaWYgKE1JTkdXKQorICAgICB0YXJnZXRfbGlua19saWJyYXJpZXMoJHt0YXJnZXR9IFBS SVZBVEUgIiR7TUlOR1dfTElCUkFSSUVTfSIpCisgICBlbmRpZigpCmRpZmYgLS1naXQgYS9zcmNw a2dzL2xsdm0xNS9wYXRjaGVzL2xpYmN4eGFiaS1kbC5wYXRjaCBiL3NyY3BrZ3MvbGx2bTE1L3Bh dGNoZXMvbGliY3h4YWJpLWRsLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwMDAwMC4uM2ExNWY5ZGI4Yzk4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9sbHZtMTUv cGF0Y2hlcy9saWJjeHhhYmktZGwucGF0Y2gKQEAgLTAsMCArMSwyNSBAQAorQWxzbyBsaW5rIHRv IC1sZGwgdG8gcHJldmVudCB1bmRlZmluZWQgcmVmZXJlbmNlcy4KKworLS0tIGEvbGliY3h4YWJp L3NyYy9DTWFrZUxpc3RzLnR4dAorKysrIGIvbGliY3h4YWJpL3NyYy9DTWFrZUxpc3RzLnR4dAor QEAgLTczLDYgKzczLDcgQEAKKyAgIGVuZGlmKCkKKyAKKyAgIGFkZF9saWJyYXJ5X2ZsYWdzX2lm KExJQkNYWEFCSV9IQVNfQ19MSUIgYykKKysgIGFkZF9saWJyYXJ5X2ZsYWdzX2lmKExJQkNYWEFC SV9IQVNfQ19MSUIgZGwpCisgZW5kaWYoKQorIAorIGlmIChMSUJDWFhBQklfVVNFX0xMVk1fVU5X SU5ERVIpCistLS0gYS9saWJjeHgvQ01ha2VMaXN0cy50eHQKKysrKyBiL2xpYmN4eC9DTWFrZUxp c3RzLnR4dAorQEAgLTc0NSw2ICs3NDUsMTAgQEAKKyAgICAgdGFyZ2V0X2xpbmtfbGlicmFyaWVz KCR7dGFyZ2V0fSBQUklWQVRFIG0pCisgICBlbmRpZigpCisgCisrICBpZiAoTElCQ1hYX0hBU19D X0xJQikKKysgICAgdGFyZ2V0X2xpbmtfbGlicmFyaWVzKCR7dGFyZ2V0fSBQUklWQVRFIGRsKQor KyAgZW5kaWYoKQorKworICAgaWYgKExJQkNYWF9IQVNfUlRfTElCKQorICAgICB0YXJnZXRfbGlu a19saWJyYXJpZXMoJHt0YXJnZXR9IFBSSVZBVEUgcnQpCisgICBlbmRpZigpCmRpZmYgLS1naXQg YS9zcmNwa2dzL2xsdm0xNS9wYXRjaGVzL2xpYmN4eGFiaS1tdXNsLnBhdGNoIGIvc3JjcGtncy9s bHZtMTUvcGF0Y2hlcy9saWJjeHhhYmktbXVzbC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAwMDAuLjU1YmY2ZjVhYWEwOAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3Br Z3MvbGx2bTE1L3BhdGNoZXMvbGliY3h4YWJpLW11c2wucGF0Y2gKQEAgLTAsMCArMSwzNyBAQAor ZGlmZiAtLWdpdCBhL2xpYmN4eC9pbmNsdWRlL19fc3VwcG9ydC9tdXNsL3hsb2NhbGUuaCBiL2xp YmN4eC9pbmNsdWRlL19fc3VwcG9ydC9tdXNsL3hsb2NhbGUuaAoraW5kZXggZTY3NGE0MWZhLi5m NTQ2MTE5YjkgMTAwNjQ0CistLS0gYS9saWJjeHgvaW5jbHVkZS9fX3N1cHBvcnQvbXVzbC94bG9j YWxlLmgKKysrKyBiL2xpYmN4eC9pbmNsdWRlL19fc3VwcG9ydC9tdXNsL3hsb2NhbGUuaAorQEAg LTI0LDI3ICsyNCwyNyBAQAorIGV4dGVybiAiQyIgeworICNlbmRpZgorIAorLWlubGluZSBfTElC Q1BQX0hJREVfRlJPTV9BQkkgbG9uZyBsb25nCisrc3RhdGljIGlubGluZSBsb25nIGxvbmcKKyBz dHJ0b2xsX2woY29uc3QgY2hhciAqX19ucHRyLCBjaGFyICoqX19lbmRwdHIsIGludCBfX2Jhc2Us IGxvY2FsZV90KSB7CisgICByZXR1cm4gOjpzdHJ0b2xsKF9fbnB0ciwgX19lbmRwdHIsIF9fYmFz ZSk7CisgfQorIAorLWlubGluZSBfTElCQ1BQX0hJREVfRlJPTV9BQkkgdW5zaWduZWQgbG9uZyBs b25nCisrc3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nIGxvbmcKKyBzdHJ0b3VsbF9sKGNvbnN0 IGNoYXIgKl9fbnB0ciwgY2hhciAqKl9fZW5kcHRyLCBpbnQgX19iYXNlLCBsb2NhbGVfdCkgewor ICAgcmV0dXJuIDo6c3RydG91bGwoX19ucHRyLCBfX2VuZHB0ciwgX19iYXNlKTsKKyB9CisgCist aW5saW5lIF9MSUJDUFBfSElERV9GUk9NX0FCSSBsb25nIGxvbmcKKytzdGF0aWMgaW5saW5lIGxv bmcgbG9uZworIHdjc3RvbGxfbChjb25zdCB3Y2hhcl90ICpfX25wdHIsIHdjaGFyX3QgKipfX2Vu ZHB0ciwgaW50IF9fYmFzZSwgbG9jYWxlX3QpIHsKKyAgIHJldHVybiA6Ondjc3RvbGwoX19ucHRy LCBfX2VuZHB0ciwgX19iYXNlKTsKKyB9CisgCistaW5saW5lIF9MSUJDUFBfSElERV9GUk9NX0FC SSB1bnNpZ25lZCBsb25nIGxvbmcKKytzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcgbG9uZwor IHdjc3RvdWxsX2woY29uc3Qgd2NoYXJfdCAqX19ucHRyLCB3Y2hhcl90ICoqX19lbmRwdHIsIGlu dCBfX2Jhc2UsIGxvY2FsZV90KSB7CisgICByZXR1cm4gOjp3Y3N0b3VsbChfX25wdHIsIF9fZW5k cHRyLCBfX2Jhc2UpOworIH0KKyAKKy1pbmxpbmUgX0xJQkNQUF9ISURFX0ZST01fQUJJIGxvbmcg ZG91YmxlCisrc3RhdGljIGlubGluZSBsb25nIGRvdWJsZQorIHdjc3RvbGRfbChjb25zdCB3Y2hh cl90ICpfX25wdHIsIHdjaGFyX3QgKipfX2VuZHB0ciwgbG9jYWxlX3QpIHsKKyAgIHJldHVybiA6 Ondjc3RvbGQoX19ucHRyLCBfX2VuZHB0cik7CisgfQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZt MTUvcGF0Y2hlcy9saWJvbXAtc29uYW1lLnBhdGNoIGIvc3JjcGtncy9sbHZtMTUvcGF0Y2hlcy9s aWJvbXAtc29uYW1lLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw MC4uOWE2MjJjZDkyNTRjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9sbHZtMTUvcGF0Y2hl cy9saWJvbXAtc29uYW1lLnBhdGNoCkBAIC0wLDAgKzEsMTIgQEAKK2RpZmYgLS1naXQgYS9vcGVu bXAvcnVudGltZS9zcmMvQ01ha2VMaXN0cy50eHQgYi9vcGVubXAvcnVudGltZS9zcmMvQ01ha2VM aXN0cy50eHQKK2luZGV4IGRmMWNhOWQ5MC4uOWQyYzNiN2I5IDEwMDY0NAorLS0tIGEvb3Blbm1w L3J1bnRpbWUvc3JjL0NNYWtlTGlzdHMudHh0CisrKysgYi9vcGVubXAvcnVudGltZS9zcmMvQ01h a2VMaXN0cy50eHQKK0BAIC0xNTAsNiArMTUwLDcgQEAgbGlib21wX2dldF9saWJmbGFncyhMSUJP TVBfQ09ORklHVVJFRF9MSUJGTEFHUykKKyAjIEJ1aWxkIGxpYm9tcCBsaWJyYXJ5LiBBZGQgTExW TVN1cHBvcnQgZGVwZW5kZW5jeSBpZiBidWlsZGluZyBpbi10cmVlIHdpdGggbGlib21wdGFyZ2V0 IHByb2ZpbGluZyBlbmFibGVkLgorIGlmKE9QRU5NUF9TVEFOREFMT05FX0JVSUxEIE9SIChOT1Qg T1BFTk1QX0VOQUJMRV9MSUJPTVBfUFJPRklMSU5HKSkKKyAgIGFkZF9saWJyYXJ5KG9tcCAke0xJ Qk9NUF9MSUJSQVJZX0tJTkR9ICR7TElCT01QX1NPVVJDRV9GSUxFU30pCisrICBzZXRfdGFyZ2V0 X3Byb3BlcnRpZXMob21wIFBST1BFUlRJRVMgVkVSU0lPTiAke0xJQk9NUF9WRVJTSU9OX01BSk9S fSBTT1ZFUlNJT04gJHtMSUJPTVBfVkVSU0lPTl9NQUpPUn0pCisgICAjIExpbmtpbmcgY29tbWFu ZCB3aWxsIGluY2x1ZGUgbGlicmFyaWVzIGluIExJQk9NUF9DT05GSUdVUkVEX0xJQkZMQUdTCisg ICB0YXJnZXRfbGlua19saWJyYXJpZXMob21wICR7TElCT01QX0NPTkZJR1VSRURfTElCRkxBR1N9 ICR7TElCT01QX0RMX0xJQlN9KQorIGVsc2UoKQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtMTUv cGF0Y2hlcy9sbGRiLW11c2wucGF0Y2ggYi9zcmNwa2dzL2xsdm0xNS9wYXRjaGVzL2xsZGItbXVz bC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjAyNmM1ZTFl NjFiYQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbGx2bTE1L3BhdGNoZXMvbGxkYi1tdXNs LnBhdGNoCkBAIC0wLDAgKzEsNDAgQEAKKy0tLSBhL2xsZGIvc291cmNlL1BsdWdpbnMvUHJvY2Vz cy9MaW51eC9Qcm9jZnMuaAorKysrIGIvbGxkYi9zb3VyY2UvUGx1Z2lucy9Qcm9jZXNzL0xpbnV4 L1Byb2Nmcy5oCitAQCAtMTAsNiArMTAsNyBAQAorIC8vIHN5cy9wcm9jZnMuaCBvbiBBbmRyb2lk L0xpbnV4IGZvciBhbGwgc3VwcG9ydGVkIGFyY2hpdGVjdHVyZXMuCisgCisgI2luY2x1ZGUgPHN5 cy9wdHJhY2UuaD4KKysjaW5jbHVkZSA8YXNtL3B0cmFjZS5oPgorIAorICNpbmNsdWRlICJsbGRi L2xsZGItdHlwZXMuaCIKKyAKK0BAIC0xNywyMyArMTgsMTMgQEAKKyAKKyAjaW5jbHVkZSA8dmVj dG9yPgorIAorLSNpZmRlZiBfX0FORFJPSURfXworLSNpZiBkZWZpbmVkKF9fYXJtNjRfXykgfHwg ZGVmaW5lZChfX2FhcmNoNjRfXykKKy10eXBlZGVmIHVuc2lnbmVkIGxvbmcgZWxmX2dyZWdfdDsK Ky10eXBlZGVmIGVsZl9ncmVnX3QKKy0gICAgZWxmX2dyZWdzZXRfdFsoc2l6ZW9mKHN0cnVjdCB1 c2VyX3B0X3JlZ3MpIC8gc2l6ZW9mKGVsZl9ncmVnX3QpKV07CistdHlwZWRlZiBzdHJ1Y3QgdXNl cl9mcHNpbWRfc3RhdGUgZWxmX2ZwcmVnc2V0X3Q7CistI2lmbmRlZiBOVF9GUFJFR1NFVAorLSNk ZWZpbmUgTlRfRlBSRUdTRVQgTlRfUFJGUFJFRworLSNlbmRpZiAvLyBOVF9GUFJFR1NFVAorLSNl bGlmIGRlZmluZWQoX19taXBzX18pCistI2lmbmRlZiBOVF9GUFJFR1NFVAorLSNkZWZpbmUgTlRf RlBSRUdTRVQgTlRfUFJGUFJFRworLSNlbmRpZiAvLyBOVF9GUFJFR1NFVAorLSNlbmRpZgorLSNl bHNlIC8vIF9fQU5EUk9JRF9fCisrI2lmICFkZWZpbmVkKF9fR0xJQkNfXykgJiYgZGVmaW5lZChf X3Bvd2VycGNfXykKKysjZGVmaW5lIHB0X3JlZ3MgbXVzbF9wdF9yZWdzCisrI2luY2x1ZGUgPHN5 cy9wcm9jZnMuaD4KKysjdW5kZWYgcHRfcmVncworKyNlbHNlCisgI2luY2x1ZGUgPHN5cy9wcm9j ZnMuaD4KKy0jZW5kaWYgLy8gX19BTkRST0lEX18KKysjZW5kaWYKKyAKKyBuYW1lc3BhY2UgbGxk Yl9wcml2YXRlIHsKKyBuYW1lc3BhY2UgcHJvY2Vzc19saW51eCB7CmRpZmYgLS1naXQgYS9zcmNw a2dzL2xsdm0xNS9wYXRjaGVzL2xsdm0tMDAxLW11c2wucGF0Y2ggYi9zcmNwa2dzL2xsdm0xNS9w YXRjaGVzL2xsdm0tMDAxLW11c2wucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMDAwMDAwLi5mMmEzZjhkNjI4MTMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xsdm0x NS9wYXRjaGVzL2xsdm0tMDAxLW11c2wucGF0Y2gKQEAgLTAsMCArMSw1NyBAQAorRnJvbSBmYWNh M2ZiZDE1ZDBjMzEwODQ5M2MzYzU0Y2Q5MzEzOGUwNDlhYzQzIE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQorRnJvbTogQW5kcmVhIEJyYW5jYWxlb25pIDxtaXdheGVAZ21haWwuY29tPgorRGF0ZTog VHVlLCA4IFNlcCAyMDE1IDIyOjAzOjAyICswMjAwCitTdWJqZWN0OiBbUEFUQ0ggMy8zXSBtdXNs CisKKy0tLQorIGluY2x1ZGUvbGx2bS9BbmFseXNpcy9UYXJnZXRMaWJyYXJ5SW5mby5oIHwgOSAr KysrKysrKysKKyBsaWIvU3VwcG9ydC9EeW5hbWljTGlicmFyeS5jcHAgICAgICAgICAgICB8IDIg Ky0KKyBsaWIvU3VwcG9ydC9Vbml4L1NpZ25hbHMuaW5jICAgICAgICAgICAgICB8IDYgKysrLS0t CisgdXRpbHMvdW5pdHRlc3QvZ29vZ2xldGVzdC9zcmMvZ3Rlc3QuY2MgICAgfCAxICsKKyA1IGZp bGVzIGNoYW5nZWQsIDE3IGluc2VydGlvbnMoKyksIDYgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1n aXQgYS9pbmNsdWRlL2xsdm0vQW5hbHlzaXMvVGFyZ2V0TGlicmFyeUluZm8uaCBiL2luY2x1ZGUv bGx2bS9BbmFseXNpcy9UYXJnZXRMaWJyYXJ5SW5mby5oCitpbmRleCAzNGE4YTFlMy4uMTIxNGVj ZTUgMTAwNjQ0CistLS0gYS9sbHZtL2luY2x1ZGUvbGx2bS9BbmFseXNpcy9UYXJnZXRMaWJyYXJ5 SW5mby5oCisrKysgYi9sbHZtL2luY2x1ZGUvbGx2bS9BbmFseXNpcy9UYXJnZXRMaWJyYXJ5SW5m by5oCitAQCAtMTgsNiArMTgsMTUgQEAKKyAjaW5jbHVkZSAibGx2bS9JUi9QYXNzTWFuYWdlci5o IgorICNpbmNsdWRlICJsbHZtL1Bhc3MuaCIKKyAKKysjdW5kZWYgZm9wZW42NAorKyN1bmRlZiBm c2Vla282NAorKyN1bmRlZiBmc3RhdDY0CisrI3VuZGVmIGZzdGF0dmZzNjQKKysjdW5kZWYgZnRl bGxvNjQKKysjdW5kZWYgbHN0YXQ2NAorKyN1bmRlZiBzdGF0NjQKKysjdW5kZWYgdG1wZmlsZTY0 CisrCisgbmFtZXNwYWNlIGxsdm0geworIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBjbGFzcyBBcnJh eVJlZjsKKyBjbGFzcyBUcmlwbGU7CitkaWZmIC0tZ2l0IGEvbGliL1N1cHBvcnQvVW5peC9EeW5h bWljTGlicmFyeS5pbmMgYi9saWIvU3VwcG9ydC9Vbml4L0R5bmFtaWNMaWJyYXJ5LmluYworaW5k ZXggYTJhMzc5OTYuLjJmODZjNDcwIDEwMDY0NAorLS0tIGEvbGx2bS9saWIvU3VwcG9ydC9Vbml4 L0R5bmFtaWNMaWJyYXJ5LmluYworKysrIGIvbGx2bS9saWIvU3VwcG9ydC9Vbml4L0R5bmFtaWNM aWJyYXJ5LmluYworQEAgLTEwMiw3ICsxMDIsNyBAQCBzdGF0aWMgdm9pZCAqRG9TZWFyY2goY29u c3QgY2hhciogU3ltYm9sTmFtZSkgeworIAorIC8vIFRoaXMgbWFjcm8gcmV0dXJucyB0aGUgYWRk cmVzcyBvZiBhIHdlbGwta25vd24sIGV4cGxpY2l0IHN5bWJvbAorICNkZWZpbmUgRVhQTElDSVRf U1lNQk9MKFNZTSkgXAorLSAgIGlmICghc3RyY21wKFN5bWJvbE5hbWUsICNTWU0pKSByZXR1cm4g JlNZTQorKyAgIGlmICghc3RyY21wKFN5bWJvbE5hbWUsICNTWU0pKSByZXR1cm4gKHZvaWQgKikm U1lNCisgCisgLy8gVW5kZXIgZ2xpYmMgd2UgaGF2ZSBhIHdlaXJkIHNpdHVhdGlvbi4gVGhlIHN0 ZGVyci9vdXQvaW4gc3ltYm9scyBhcmUgYm90aAorIC8vIG1hY3JvcyBhbmQgZ2xvYmFsIHZhcmlh YmxlcyBiZWNhdXNlIG9mIHN0YW5kYXJkcyByZXF1aXJlbWVudHMuIFNvLCB3ZQorZGlmZiAtLWdp dCBhL3V0aWxzL3VuaXR0ZXN0L2dvb2dsZXRlc3Qvc3JjL2d0ZXN0LmNjIGIvdXRpbHMvdW5pdHRl c3QvZ29vZ2xldGVzdC9zcmMvZ3Rlc3QuY2MKK2luZGV4IGQ4ODJhYjJlLi5mMWZiMTJkMCAxMDA2 NDQKKy0tLSBhL2xsdm0vdXRpbHMvdW5pdHRlc3QvZ29vZ2xldGVzdC9zcmMvZ3Rlc3QuY2MKKysr KyBiL2xsdm0vdXRpbHMvdW5pdHRlc3QvZ29vZ2xldGVzdC9zcmMvZ3Rlc3QuY2MKK0BAIC0xMjgs NiArMTI4LDcgQEAKKyAKKyAjaWYgR1RFU1RfQ0FOX1NUUkVBTV9SRVNVTFRTXworICMgaW5jbHVk ZSA8YXJwYS9pbmV0Lmg+ICAvLyBOT0xJTlQKKysjIGluY2x1ZGUgPHN5cy9zb2NrZXQuaD4gIC8v IE5PTElOVAorICMgaW5jbHVkZSA8bmV0ZGIuaD4gIC8vIE5PTElOVAorICMgaW5jbHVkZSA8c3lz L3NvY2tldC5oPiAgLy8gTk9MSU5UCisgIyBpbmNsdWRlIDxzeXMvdHlwZXMuaD4gIC8vIE5PTElO VApkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtMTUvcGF0Y2hlcy9sbHZtLTAwMi1tdXNsLXBwYzY0 LWVsZnYyLnBhdGNoIGIvc3JjcGtncy9sbHZtMTUvcGF0Y2hlcy9sbHZtLTAwMi1tdXNsLXBwYzY0 LWVsZnYyLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMDA3 MWQ5NjRiZDM3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9sbHZtMTUvcGF0Y2hlcy9sbHZt LTAwMi1tdXNsLXBwYzY0LWVsZnYyLnBhdGNoCkBAIC0wLDAgKzEsMzAgQEAKK1RoaXMgcGF0Y2hl cyBMTFZNIHRvIHVzZSBFTEZ2MiBvbiBwcGM2NCB1bmNvbmRpdGlvbmFsbHkgdW5sZXNzIG92ZXJy aWRkZW4uIFdlCituZWVkIHRoaXMgYmVjYXVzZSB1bmxpa2UgbW9zdCBkaXN0cm9zIHdlIHVzZSBF TEZ2MiBmb3IgYm90aCBnbGliYyBhbmQgbXVzbAorb24gYmlnIGVuZGlhbiBwcGM2NC4KKworZGlm ZiAtLWdpdCBhL2xpYi9UYXJnZXQvUG93ZXJQQy9QUENUYXJnZXRNYWNoaW5lLmNwcCBiL2xpYi9U YXJnZXQvUG93ZXJQQy9QUENUYXJnZXRNYWNoaW5lLmNwcAoraW5kZXggMDYzNDgzM2UuLmI3Y2Jj MmU3IDEwMDY0NAorLS0tIGEvbGx2bS9saWIvVGFyZ2V0L1Bvd2VyUEMvUFBDVGFyZ2V0TWFjaGlu ZS5jcHAKKysrKyBiL2xsdm0vbGliL1RhcmdldC9Qb3dlclBDL1BQQ1RhcmdldE1hY2hpbmUuY3Bw CitAQCAtMjIyLDkgKzIyMiw4IEBAIHN0YXRpYyBQUENUYXJnZXRNYWNoaW5lOjpQUENBQkkgY29t cHV0ZVRhcmdldEFCSShjb25zdCBUcmlwbGUgJlRULAorIAorICAgc3dpdGNoIChUVC5nZXRBcmNo KCkpIHsKKyAgIGNhc2UgVHJpcGxlOjpwcGM2NGxlOgorLSAgICByZXR1cm4gUFBDVGFyZ2V0TWFj aGluZTo6UFBDX0FCSV9FTEZ2MjsKKyAgIGNhc2UgVHJpcGxlOjpwcGM2NDoKKy0gICAgcmV0dXJu IFBQQ1RhcmdldE1hY2hpbmU6OlBQQ19BQklfRUxGdjE7CisrICAgIHJldHVybiBQUENUYXJnZXRN YWNoaW5lOjpQUENfQUJJX0VMRnYyOworICAgZGVmYXVsdDoKKyAgICAgcmV0dXJuIFBQQ1Rhcmdl dE1hY2hpbmU6OlBQQ19BQklfVU5LTk9XTjsKKyAgIH0KK2RpZmYgLS1naXQgYS90ZXN0L0NvZGVH ZW4vUG93ZXJQQy9wcGM2NC1lbGYtYWJpLmxsIGIvdGVzdC9Db2RlR2VuL1Bvd2VyUEMvcHBjNjQt ZWxmLWFiaS5sbAoraW5kZXggOGIxY2Y2YjUuLjI5NmEyYWZhIDEwMDY0NAorLS0tIGEvbGx2bS90 ZXN0L0NvZGVHZW4vUG93ZXJQQy9wcGM2NC1lbGYtYWJpLmxsCisrKysgYi9sbHZtL3Rlc3QvQ29k ZUdlbi9Qb3dlclBDL3BwYzY0LWVsZi1hYmkubGwKK0BAIC0xLDQgKzEsNSBAQAorLTsgUlVOOiBs bGMgLXZlcmlmeS1tYWNoaW5laW5zdHJzIC1tdHJpcGxlPXBvd2VycGM2NC11bmtub3duLWxpbnV4 LWdudSA8ICVzIHwgRmlsZUNoZWNrICVzIC1jaGVjay1wcmVmaXg9Q0hFQ0stRUxGdjEKKys7IFJV TjogbGxjIC12ZXJpZnktbWFjaGluZWluc3RycyAtbXRyaXBsZT1wb3dlcnBjNjQtdW5rbm93bi1s aW51eC1nbnUgPCAlcyB8IEZpbGVDaGVjayAlcyAtY2hlY2stcHJlZml4PUNIRUNLLUVMRnYyCisr OyBSVU46IGxsYyAtdmVyaWZ5LW1hY2hpbmVpbnN0cnMgLW10cmlwbGU9cG93ZXJwYzY0LXVua25v d24tbGludXgtbXVzbCA8ICVzIHwgRmlsZUNoZWNrICVzIC1jaGVjay1wcmVmaXg9Q0hFQ0stRUxG djIKKyA7IFJVTjogbGxjIC12ZXJpZnktbWFjaGluZWluc3RycyAtbXRyaXBsZT1wb3dlcnBjNjQt dW5rbm93bi1saW51eC1nbnUgLXRhcmdldC1hYmkgZWxmdjEgPCAlcyB8IEZpbGVDaGVjayAlcyAt Y2hlY2stcHJlZml4PUNIRUNLLUVMRnYxCisgOyBSVU46IGxsYyAtdmVyaWZ5LW1hY2hpbmVpbnN0 cnMgLW10cmlwbGU9cG93ZXJwYzY0LXVua25vd24tbGludXgtZ251IC10YXJnZXQtYWJpIGVsZnYy IDwgJXMgfCBGaWxlQ2hlY2sgJXMgLWNoZWNrLXByZWZpeD1DSEVDSy1FTEZ2MgorIDsgUlVOOiBs bGMgLXZlcmlmeS1tYWNoaW5laW5zdHJzIC1tdHJpcGxlPXBvd2VycGM2NGxlLXVua25vd24tbGlu dXgtZ251IDwgJXMgfCBGaWxlQ2hlY2sgJXMgLWNoZWNrLXByZWZpeD1DSEVDSy1FTEZ2MgpkaWZm IC0tZ2l0IGEvc3JjcGtncy9sbHZtMTUvcGF0Y2hlcy9sbHZtLTAwMy1wcGMtc2VjdXJlcGx0LnBh dGNoIGIvc3JjcGtncy9sbHZtMTUvcGF0Y2hlcy9sbHZtLTAwMy1wcGMtc2VjdXJlcGx0LnBhdGNo Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uYjVkMTU5NzQzNzVkCi0t LSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9sbHZtMTUvcGF0Y2hlcy9sbHZtLTAwMy1wcGMtc2Vj dXJlcGx0LnBhdGNoCkBAIC0wLDAgKzEsMTEgQEAKKy0tLSBhL2xsdm0vbGliL1RhcmdldC9Qb3dl clBDL1BQQ1N1YnRhcmdldC5jcHAKKysrKyBiL2xsdm0vbGliL1RhcmdldC9Qb3dlclBDL1BQQ1N1 YnRhcmdldC5jcHAKK0BAIC0xNjUsNyArMTY1LDcgQEAgdm9pZCBQUENTdWJ0YXJnZXQ6OmluaXRT dWJ0YXJnZXRGZWF0dXJlcyhTdHJpbmdSZWYgQ1BVLCBTdHJpbmdSZWYgRlMpIHsKKyAKKyAgIGlm ICgoVGFyZ2V0VHJpcGxlLmlzT1NGcmVlQlNEKCkgJiYgVGFyZ2V0VHJpcGxlLmdldE9TTWFqb3JW ZXJzaW9uKCkgPj0gMTMpIHx8CisgICAgICAgVGFyZ2V0VHJpcGxlLmlzT1NOZXRCU0QoKSB8fCBU YXJnZXRUcmlwbGUuaXNPU09wZW5CU0QoKSB8fAorLSAgICAgIFRhcmdldFRyaXBsZS5pc011c2wo KSkKKysgICAgICBpc1RhcmdldExpbnV4KCkpCisgICAgIFNlY3VyZVBsdCA9IHRydWU7CisgCisg ICBpZiAoSGFzU1BFICYmIElzUFBDNjQpCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0xNS9wYXRj aGVzL2xsdm0tMDA0LW92ZXJyaWRlLW9wdC5wYXRjaCBiL3NyY3BrZ3MvbGx2bTE1L3BhdGNoZXMv bGx2bS0wMDQtb3ZlcnJpZGUtb3B0LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMDAwMC4uNTFkMGU0YjMxYjMyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9sbHZt MTUvcGF0Y2hlcy9sbHZtLTAwNC1vdmVycmlkZS1vcHQucGF0Y2gKQEAgLTAsMCArMSwxOCBAQAor VGhpcyBhbGxvd3MgdXMgdG8gb3ZlcnJpZGUgdGhlIG9wdGltaXphdGlvbiBsZXZlbCBhcyBub3Qg YWxsIHBsYXRmb3JtcyBjYW4KK2RlYWwgd2l0aCAtTzMuCisKKy0tLSBhL2xsdm0vQ01ha2VMaXN0 cy50eHQKKysrKyBiL2xsdm0vQ01ha2VMaXN0cy50eHQKK0BAIC05MTgsNiArOTE4LDEyIEBAIGlm KCBNSU5HVyBBTkQgTk9UICIke0NNQUtFX0NYWF9DT01QSUxFUl9JRH0iIE1BVENIRVMgIkNsYW5n IiApCisgICBsbHZtX3JlcGxhY2VfY29tcGlsZXJfb3B0aW9uKENNQUtFX0NYWF9GTEFHU19SRUxF QVNFICItTzMiICItTzIiKQorIGVuZGlmKCkKKyAKKytzZXQoVk9JRF9DWFhfT1BUX0ZMQUdTICIi IENBQ0hFIFNUUklORyAiT3B0aW1pemF0aW9uIGxldmVsIHRvIHVzZSIpCisrCisraWYgKE5PVCBW T0lEX0NYWF9PUFRfRkxBR1MgU1RSRVFVQUwgIiIpCisrICAgIGxsdm1fcmVwbGFjZV9jb21waWxl cl9vcHRpb24oQ01BS0VfQ1hYX0ZMQUdTX1JFTEVBU0UgIi1PMyIgIiR7Vk9JRF9DWFhfT1BUX0ZM QUdTfSIpCisrZW5kaWYoKQorKworICMgUHV0IHRoaXMgYmVmb3JlIHRibGdlbi4gRWxzZSB3ZSBo YXZlIGEgY2lyY3VsYXIgZGVwZW5kZW5jZS4KKyBhZGRfc3ViZGlyZWN0b3J5KGxpYi9EZW1hbmds ZSkKKyBhZGRfc3ViZGlyZWN0b3J5KGxpYi9TdXBwb3J0KQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9s bHZtMTUvcGF0Y2hlcy9sbHZtLTAwNS1wcGMtYmlncGljLnBhdGNoIGIvc3JjcGtncy9sbHZtMTUv cGF0Y2hlcy9sbHZtLTAwNS1wcGMtYmlncGljLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAwMC4uZDMzMjY4N2I5ZDkyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtn cy9sbHZtMTUvcGF0Y2hlcy9sbHZtLTAwNS1wcGMtYmlncGljLnBhdGNoCkBAIC0wLDAgKzEsMzYg QEAKK0Zyb20gZjNkYmRkNDljMDZiZmFmYzFkNjEzODA5NGNmNDI4ODljMTRkMzhiNiBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFNhbXVlbCBIb2xsYW5kIDxzYW11ZWxAc2hvbGxhbmQu b3JnPgorRGF0ZTogU3VuLCAzIE5vdiAyMDE5IDEwOjU3OjI3IC0wNjAwCitTdWJqZWN0OiBbUEFU Q0hdIFtMTFZNXVtQb3dlclBDXSBBc3N1bWUgQmlnUElDIGlmIG5vIFBJQyBsZXZlbCBpcyBzcGVj aWZpZWQKKworLS0tCisgbGx2bS9saWIvVGFyZ2V0L1Bvd2VyUEMvUFBDQXNtUHJpbnRlci5jcHAg IHwgMiArLQorIGxsdm0vbGliL1RhcmdldC9Qb3dlclBDL1BQQ01DSW5zdExvd2VyLmNwcCB8IDIg Ky0KKyAyIGZpbGVzIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKKwor ZGlmZiAtLWdpdCBhL2xpYi9UYXJnZXQvUG93ZXJQQy9QUENBc21QcmludGVyLmNwcCBiL2xpYi9U YXJnZXQvUG93ZXJQQy9QUENBc21QcmludGVyLmNwcAoraW5kZXggY2NlMjFmMzIuLjg3Y2E1Zjli IDEwMDY0NAorLS0tIGEvbGx2bS9saWIvVGFyZ2V0L1Bvd2VyUEMvUFBDQXNtUHJpbnRlci5jcHAK KysrKyBiL2xsdm0vbGliL1RhcmdldC9Qb3dlclBDL1BQQ0FzbVByaW50ZXIuY3BwCitAQCAtNTIw LDcgKzUyMCw3IEBAIHZvaWQgUFBDQXNtUHJpbnRlcjo6RW1pdFRsc0NhbGwoY29uc3QgTWFjaGlu ZUluc3RyICpNSSwKKyAKKyAgIC8vIEFkZCAzMjc2OCBvZmZzZXQgdG8gdGhlIHN5bWJvbCBzbyB3 ZSBmb2xsb3cgdXAgdGhlIGxhdGVzdCBHT1QvUExUIEFCSS4KKyAgIGlmIChLaW5kID09IE1DU3lt Ym9sUmVmRXhwcjo6VktfUExUICYmIFN1YnRhcmdldC0+aXNTZWN1cmVQbHQoKSAmJgorLSAgICAg IE0tPmdldFBJQ0xldmVsKCkgPT0gUElDTGV2ZWw6OkJpZ1BJQykKKysgICAgICBNLT5nZXRQSUNM ZXZlbCgpICE9IFBJQ0xldmVsOjpTbWFsbFBJQykKKyAgICAgVGxzUmVmID0gTUNCaW5hcnlFeHBy OjpjcmVhdGVBZGQoCisgICAgICAgICBUbHNSZWYsIE1DQ29uc3RhbnRFeHByOjpjcmVhdGUoMzI3 NjgsIE91dENvbnRleHQpLCBPdXRDb250ZXh0KTsKKyAgIGNvbnN0IE1hY2hpbmVPcGVyYW5kICZN TyA9IE1JLT5nZXRPcGVyYW5kKDIpOworZGlmZiAtLWdpdCBhL2xpYi9UYXJnZXQvUG93ZXJQQy9Q UENNQ0luc3RMb3dlci5jcHAgYi9saWIvVGFyZ2V0L1Bvd2VyUEMvUFBDTUNJbnN0TG93ZXIuY3Bw CitpbmRleCA1Y2MxODBkNy4uYTViMDI1NjUgMTAwNjQ0CistLS0gYS9sbHZtL2xpYi9UYXJnZXQv UG93ZXJQQy9QUENNQ0luc3RMb3dlci5jcHAKKysrKyBiL2xsdm0vbGliL1RhcmdldC9Qb3dlclBD L1BQQ01DSW5zdExvd2VyLmNwcAorQEAgLTExNyw3ICsxMTcsNyBAQCBzdGF0aWMgTUNPcGVyYW5k IEdldFN5bWJvbFJlZihjb25zdCBNYWNoaW5lT3BlcmFuZCAmTU8sIGNvbnN0IE1DU3ltYm9sICpT eW1ib2wsCisgICBjb25zdCBNQ0V4cHIgKkV4cHIgPSBNQ1N5bWJvbFJlZkV4cHI6OmNyZWF0ZShT eW1ib2wsIFJlZktpbmQsIEN0eCk7CisgICAvLyBJZiAtbXNlY3VyZS1wbHQgLWZQSUMsIGFkZCAz Mjc2OCB0byBzeW1ib2wuCisgICBpZiAoU3VidGFyZ2V0LT5pc1NlY3VyZVBsdCgpICYmIFRNLmlz UG9zaXRpb25JbmRlcGVuZGVudCgpICYmCistICAgICAgTS0+Z2V0UElDTGV2ZWwoKSA9PSBQSUNM ZXZlbDo6QmlnUElDICYmCisrICAgICAgTS0+Z2V0UElDTGV2ZWwoKSAhPSBQSUNMZXZlbDo6U21h bGxQSUMgJiYKKyAgICAgICBNTy5nZXRUYXJnZXRGbGFncygpID09IFBQQ0lJOjpNT19QTFQpCisg ICAgIEV4cHIgPQorICAgICAgICAgTUNCaW5hcnlFeHByOjpjcmVhdGVBZGQoRXhwciwgTUNDb25z dGFudEV4cHI6OmNyZWF0ZSgzMjc2OCwgQ3R4KSwgQ3R4KTsKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv bGx2bTE1L3BhdGNoZXMvbGx2bS0wMDYtYWFyY2g2NC1tZl9leGVjLnBhdGNoIGIvc3JjcGtncy9s bHZtMTUvcGF0Y2hlcy9sbHZtLTAwNi1hYXJjaDY0LW1mX2V4ZWMucGF0Y2gKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5hMDBhYmQyMTY2NjUKLS0tIC9kZXYvbnVsbAor KysgYi9zcmNwa2dzL2xsdm0xNS9wYXRjaGVzL2xsdm0tMDA2LWFhcmNoNjQtbWZfZXhlYy5wYXRj aApAQCAtMCwwICsxLDI1IEBACitGaXggZmFpbHVyZXMgaW4gQWxsb2NhdGlvblRlc3RzL01hcHBl ZE1lbW9yeVRlc3QuKiBvbiBhYXJjaDY0OgorCisgICAgRmFpbGluZyBUZXN0cyAoOCk6CisgICAg ICAgIExMVk0tVW5pdCA6OiBTdXBwb3J0Ly4vU3VwcG9ydFRlc3RzL0FsbG9jYXRpb25UZXN0cy9N YXBwZWRNZW1vcnlUZXN0LkFsbG9jQW5kUmVsZWFzZS8zCisgICAgICAgIExMVk0tVW5pdCA6OiBT dXBwb3J0Ly4vU3VwcG9ydFRlc3RzL0FsbG9jYXRpb25UZXN0cy9NYXBwZWRNZW1vcnlUZXN0LkR1 cGxpY2F0ZU5lYXIvMworICAgICAgICBMTFZNLVVuaXQgOjogU3VwcG9ydC8uL1N1cHBvcnRUZXN0 cy9BbGxvY2F0aW9uVGVzdHMvTWFwcGVkTWVtb3J5VGVzdC5FbmFibGVkV3JpdGUvMworICAgICAg ICBMTFZNLVVuaXQgOjogU3VwcG9ydC8uL1N1cHBvcnRUZXN0cy9BbGxvY2F0aW9uVGVzdHMvTWFw cGVkTWVtb3J5VGVzdC5NdWx0aXBsZUFsbG9jQW5kUmVsZWFzZS8zCisgICAgICAgIExMVk0tVW5p dCA6OiBTdXBwb3J0Ly4vU3VwcG9ydFRlc3RzL0FsbG9jYXRpb25UZXN0cy9NYXBwZWRNZW1vcnlU ZXN0LlN1Y2Nlc3NpdmVOZWFyLzMKKyAgICAgICAgTExWTS1Vbml0IDo6IFN1cHBvcnQvLi9TdXBw b3J0VGVzdHMvQWxsb2NhdGlvblRlc3RzL01hcHBlZE1lbW9yeVRlc3QuVW5hbGlnbmVkTmVhci8z CisgICAgICAgIExMVk0tVW5pdCA6OiBTdXBwb3J0Ly4vU3VwcG9ydFRlc3RzL0FsbG9jYXRpb25U ZXN0cy9NYXBwZWRNZW1vcnlUZXN0Llplcm9OZWFyLzMKKyAgICAgICAgTExWTS1Vbml0IDo6IFN1 cHBvcnQvLi9TdXBwb3J0VGVzdHMvQWxsb2NhdGlvblRlc3RzL01hcHBlZE1lbW9yeVRlc3QuWmVy b1NpemVOZWFyLzMKKworVXBzdHJlYW0tSXNzdWU6IGh0dHBzOi8vYnVncy5sbHZtLm9yZy9zaG93 X2J1Zy5jZ2k/aWQ9MTQyNzgjYzEwCisKKy0tLSBhL2xsdm0vbGliL1N1cHBvcnQvVW5peC9NZW1v cnkuaW5jCisrKysgYi9sbHZtL2xpYi9TdXBwb3J0L1VuaXgvTWVtb3J5LmluYworQEAgLTU4LDcg KzU4LDcgQEAgc3RhdGljIGludCBnZXRQb3NpeFByb3RlY3Rpb25GbGFncyh1bnNpZ25lZCBGbGFn cykgeworICAgICByZXR1cm4gUFJPVF9SRUFEIHwgUFJPVF9XUklURSB8IFBST1RfRVhFQzsKKyAg IGNhc2UgbGx2bTo6c3lzOjpNZW1vcnk6Ok1GX0VYRUM6CisgI2lmIChkZWZpbmVkKF9fRnJlZUJT RF9fKSB8fCBkZWZpbmVkKF9fUE9XRVJQQ19fKSB8fCBkZWZpbmVkIChfX3BwY19fKSB8fCBcCist ICAgICBkZWZpbmVkKF9QT1dFUikgfHwgZGVmaW5lZChfQVJDSF9QUEMpKQorKyAgICAgZGVmaW5l ZChfUE9XRVIpIHx8IGRlZmluZWQoX0FSQ0hfUFBDKSB8fCAoZGVmaW5lZChfX2xpbnV4X18pICYm IGRlZmluZWQoX19hYXJjaDY0X18pKSkKKyAgICAgLy8gT24gUG93ZXJQQywgaGF2aW5nIGFuIGV4 ZWN1dGFibGUgcGFnZSB0aGF0IGhhcyBubyByZWFkIHBlcm1pc3Npb24KKyAgICAgLy8gY2FuIGhh dmUgdW5pbnRlbmRlZCBjb25zZXF1ZW5jZXMuICBUaGUgZnVuY3Rpb24gSW52YWxpZGF0ZUluc3Ry dWN0aW9uLQorICAgICAvLyBDYWNoZSB1c2VzIGluc3RydWN0aW9ucyBkY2JmIGFuZCBpY2JpLCBi b3RoIG9mIHdoaWNoIGFyZSB0cmVhdGVkIGJ5CmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0xNS90 ZW1wbGF0ZSBiL3NyY3BrZ3MvbGx2bTE1L3RlbXBsYXRlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAwMC4uNGQyNzc3NDUxZTI0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtn cy9sbHZtMTUvdGVtcGxhdGUKQEAgLTAsMCArMSw0NDIgQEAKKyMgVGVtcGxhdGUgZmlsZSBmb3Ig J2xsdm0xNScKK3BrZ25hbWU9bGx2bTE1Cit2ZXJzaW9uPTE1LjAuNworcmV2aXNpb249MQorYnVp bGRfd3Jrc3JjPWxsdm0KK2J1aWxkX3N0eWxlPWNtYWtlCitfZXh0X3N1ZmZpeD0iLmNweXRob24t JHtweTNfdmVyLy4vfS1saW51eC0ke1hCUFNfVEFSR0VUX0xJQkMvZ2xpYmMvZ251fS5zbyIKK2Nv bmZpZ3VyZV9hcmdzPSIKKyAtRENNQUtFX0JVSUxEX1RZUEU9UmVsZWFzZSAtV25vLWRldgorIC1E RU5BQkxFX0xJTktFUl9CVUlMRF9JRD1ZRVMKKyAtRExMREJfVVNFX1NZU1RFTV9TSVg9WUVTCisg LURMSUJDWFhfQ1hYX0FCST1saWJjeHhhYmkKKyAtRExJQkNYWF9FTkFCTEVfU1RBVElDX0FCSV9M SUJSQVJZPVlFUworIC1ETElCQ1hYQUJJX1VTRV9MTFZNX1VOV0lOREVSPVlFUworIC1ETElCQ1hY QUJJX0VOQUJMRV9TVEFUSUNfVU5XSU5ERVI9WUVTCisgLURMSUJPTVBfRU5BQkxFX1NIQVJFRD1Z RVMKKyAtRExJQk9NUF9JTlNUQUxMX0FMSUFTRVM9Tk8KKyAtRExMVk1fSU5DTFVERV9ET0NTPVlF UworIC1ETExWTV9CVUlMRF9ET0NTPVlFUworIC1ETExWTV9FTkFCTEVfU1BISU5YPVlFUworIC1E U1BISU5YX1dBUk5JTkdTX0FTX0VSUk9SUz1OTworIC1ETExWTV9JTlNUQUxMX1VUSUxTPVlFUwor IC1ETExWTV9CVUlMRF9MTFZNX0RZTElCPVlFUworIC1ETExWTV9MSU5LX0xMVk1fRFlMSUI9WUVT CisgLURMTFZNX0VOQUJMRV9SVFRJPVlFUworIC1ETExWTV9FTkFCTEVfRkZJPVlFUworIC1ETExW TV9CSU5VVElMU19JTkNESVI9L3Vzci9pbmNsdWRlCisgLURMTFZNX0VOQUJMRV9QRVJfVEFSR0VU X1JVTlRJTUVfRElSPU5PCisgLURMTERCX1BZVEhPTl9SRUxBVElWRV9QQVRIPWxpYi9weXRob24k e3B5M192ZXJ9L3NpdGUtcGFja2FnZXMKKyAtRExMREJfUFlUSE9OX0VYRV9SRUxBVElWRV9QQVRI PWJpbi9weXRob24ke3B5M192ZXJ9CisgLURMTERCX1BZVEhPTl9FWFRfU1VGRklYPSRfZXh0X3N1 ZmZpeCIKK2hvc3RtYWtlZGVwZW5kcz0icGVybCBweXRob24zIHpsaWItZGV2ZWwgbGliZmZpLWRl dmVsIHN3aWcgcHl0aG9uMy1TcGhpbngKKyBweXRob24zLXJlY29tbW9ubWFyayBweXRob24zLXNw aGlueC1hdXRvbW9kYXBpIgorbWFrZWRlcGVuZHM9InB5dGhvbjMtZGV2ZWwgemxpYi1kZXZlbCBl bGZ1dGlscy1kZXZlbCBsaWJmZmktZGV2ZWwgbGliZWRpdC1kZXZlbAorIGxpYnhtbDItZGV2ZWwg YmludXRpbHMtZGV2ZWwgbGliYXRvbWljLWRldmVsIgorZGVwZW5kcz0ibGlibGx2bTE1Pj0ke3Zl cnNpb259XyR7cmV2aXNpb259Igorc2hvcnRfZGVzYz0iTG93IExldmVsIFZpcnR1YWwgTWFjaGlu ZSIKK21haW50YWluZXI9Ik9ycGhhbmVkIDxvcnBoYW5Adm9pZGxpbnV4Lm9yZz4iCitsaWNlbnNl PSJBcGFjaGUtMi4wIgoraG9tZXBhZ2U9Imh0dHBzOi8vd3d3Lmxsdm0ub3JnIgorZGlzdGZpbGVz PSJodHRwczovL2dpdGh1Yi5jb20vbGx2bS9sbHZtLXByb2plY3QvcmVsZWFzZXMvZG93bmxvYWQv bGx2bW9yZy0ke3ZlcnNpb259L2xsdm0tcHJvamVjdC0ke3ZlcnNpb259LnNyYy50YXIueHoiCitj aGVja3N1bT04YjVmY2IyNGI0MTI4Y2YwNGRmMWIwYjk0MTBjZThiMWE3MjljYjNjNTQ0ZTZkYTg4 NWQyMzQyODBkZWRlYWM2CitsaWIzMmRpc2FibGVkPXllcworcHl0aG9uX3ZlcnNpb249MworCitp ZiBbICIkWEJQU19UQVJHRVRfTElCQyIgPSAibXVzbCIgXTsgdGhlbgorCWNvbmZpZ3VyZV9hcmdz Kz0iIC1ETElCQ1hYX0hBU19NVVNMX0xJQkM9WUVTCisJIC1EQ09NUElMRVJfUlRfQlVJTERfR1dQ X0FTQU49T0ZGIgorZmkKKworIyAib3BlcmFuZCBvdXQgb2YgcmFuZ2UiIGFzc2VtYmxlciBmYWls dXJlcworY2FzZSAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiIGluCisJcHBjNjQqKSA7OworCXBwYyop IGNvbmZpZ3VyZV9hcmdzKz0iIC1EQ0xBTkdfRU5BQkxFX0NMQU5HRD1PRkYiIDs7Citlc2FjCisK K19lbmFibGVkX3Byb2plY3RzPSJjbGFuZztjbGFuZy10b29scy1leHRyYTtjb21waWxlci1ydDts aWJjeHg7bGliY3h4YWJpO2xpYnVud2luZDtsbGQiCisKK19sbGRiX2VuYWJsZT15ZXMKK19saWJv bXBfZW5hYmxlPW5vCisKK2Nhc2UgIiRYQlBTX1RBUkdFVF9NQUNISU5FIiBpbgorCXBwYzY0bGUq KSA7OworCXBwYyp8aTY4Nip8cmlzY3Y2NCopIF9sbGRiX2VuYWJsZT1ubyA7OworZXNhYworCitj YXNlICIkWEJQU19UQVJHRVRfTUFDSElORSIgaW4KKwl4ODZfNjQqfGFhcmNoNjQqfHBwYzY0Kikg X2xpYm9tcF9lbmFibGU9eWVzOzsKK2VzYWMKKworc3VicGFja2FnZXM9ImNsYW5nLXRvb2xzLWV4 dHJhIgorCisjIG11c3QgZ28gYmVmb3JlIGNsYW5nCitpZiBbICIkX2xpYm9tcF9lbmFibGUiID0g InllcyIgXTsgdGhlbgorCV9lbmFibGVkX3Byb2plY3RzKz0iO29wZW5tcCIKKwlzdWJwYWNrYWdl cys9IiBsaWJvbXAgbGlib21wLWRldmVsIgorCSMgYmVjYXVzZSBvZiBjbWFrZSBub25zZW5zZSBy ZWZlcmVuY2luZyBsaWJvbXB0YXJnZXQuc28uKgorCWRlcGVuZHMrPSIgbGlib21wPj0ke3ZlcnNp b259XyR7cmV2aXNpb259IgorCWlmIFsgIiRDUk9TU19CVUlMRCIgXTsgdGhlbgorCQkjIFNlZW1z IHRvIHJlcXVpcmUgYSBmdWxsIGhvc3QgbGx2bS9jbGFuZyBidWlsZAorCQljb25maWd1cmVfYXJn cys9IiAtRExJQk9NUFRBUkdFVF9CVUlMRF9DVURBX1BMVUdJTj1PRkYiCisJCWNvbmZpZ3VyZV9h cmdzKz0iIC1ETElCT01QVEFSR0VUX0JVSUxEX0FNREdQVV9QTFVHSU49T0ZGIgorCWZpCitmaQor CitzdWJwYWNrYWdlcys9IiBjbGFuZyBjbGFuZy1hbmFseXplciBsaWJjbGFuZyBsaWJjbGFuZy1j cHAKKyBsbHZtLWxpYnVud2luZCBsbHZtLWxpYnVud2luZC1kZXZlbCBsaWJjeHggbGliY3h4LWRl dmVsCisgbGliY3h4YWJpIGxpYmN4eGFiaS1kZXZlbCBsaWJsbHZtMTUiCisKK2lmIFsgIiRfbGxk Yl9lbmFibGUiID0gInllcyIgXTsgdGhlbgorCSMgWFhYIGZhaWxzIHRvIGNyb3NzIGNvbXBpbGUg ZHVlIHRvIHB5dGhvbgorCV9lbmFibGVkX3Byb2plY3RzKz0iO2xsZGIiCisJc3VicGFja2FnZXMr PSIgbGxkYiBsbGRiLWRldmVsIgorZmkKKworc3VicGFja2FnZXMrPSIgbGxkIGxsZC1kZXZlbCIK KworY29uZmlndXJlX2FyZ3MrPSIgLURMTFZNX0VOQUJMRV9QUk9KRUNUUz0ke19lbmFibGVkX3By b2plY3RzfSIKKworcG9zdF9wYXRjaCgpIHsKKwlpZiBbICIkX2xsZGJfZW5hYmxlIiA9ICJ5ZXMi IF07IHRoZW4KKwkJaWYgWyAiJFhCUFNfVEFSR0VUX0xJQkMiID0gIm11c2wiIF07IHRoZW4KKwkJ CXZzZWQgLWkgJ3N8X19wdHJhY2VfcmVxdWVzdHxpbnR8ZycgXAorCQkJCSR7d3Jrc3JjfS9sbGRi L3NvdXJjZS9QbHVnaW5zL1Byb2Nlc3MvTGludXgvTmF0aXZlUHJvY2Vzc0xpbnV4LmNwcAorCQlm aQorCQkjIGRpc2FibGUgZG9jcyBmb3IgbGxkYiBhcyB0aGV5IGZhaWwgdG8gZ2VuZXJhdGUKKwkJ dnNlZCAtaSAnL2FkZF9zdWJkaXJlY3RvcnkoZG9jcykvZCcgXAorCQkJJHt3cmtzcmN9L2xsZGIv Q01ha2VMaXN0cy50eHQKKwlmaQorCisJIyB1cGRhdGUgY29uZmlnLmd1ZXNzIGZvciBiZXR0ZXIg cGxhdGZvcm0gZGV0ZWN0aW9uCisJY3AgJFhCUFNfQ09NTU9ORElSL2Vudmlyb25tZW50L2NvbmZp Z3VyZS9hdXRvbWFrZS9jb25maWcuZ3Vlc3MgXAorCQkke3dya3NyY30vbGx2bS9jbWFrZQorCisJ IyBmaXggbGlua2VyIGZhaWx1cmVzIG9uIHNvbWUgYXJjaHMKKwl2c2VkIC1pICdzLGNoZWNrX2xp YnJhcnlfZXhpc3RzKGdjY19zIC4qLHNldChMSUJDWFhBQklfSEFTX0dDQ19TX0xJQiBPTiksJyBc CisJCSR7d3Jrc3JjfS9saWJjeHhhYmkvY21ha2UvY29uZmlnLWl4LmNtYWtlCisJdnNlZCAtaSAn cyxjaGVja19saWJyYXJ5X2V4aXN0cyhnY2MgLiosc2V0KExJQkNYWEFCSV9IQVNfR0NDX0xJQiBP TiksJyBcCisJCSR7d3Jrc3JjfS9saWJjeHhhYmkvY21ha2UvY29uZmlnLWl4LmNtYWtlCisKKwkj IG5lZWQgbGlic3NwX25vbnNoYXJlZCBvbiBzb21lIG11c2wgcGxhdGZvcm1zIChiZWNhdXNlIG9m IG5vZGVmYXVsdGxpYnMpCisJY2FzZSAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiIGluCisJCXBwYzY0 KikgOzsKKwkJcHBjKi1tdXNsfGk2ODYtbXVzbHxtaXBzKi1tdXNsKQorCQkJdnNlZCAtaSAncyxe IyBTZXR1cCBmbGFncy4kLGFkZF9saWJyYXJ5X2ZsYWdzKHNzcF9ub25zaGFyZWQpLCcgXAorCQkJ CSR7d3Jrc3JjfS9saWJ1bndpbmQvc3JjL0NNYWtlTGlzdHMudHh0CisJCQl2c2VkIC1pICdzLF4j IFNldHVwIGZsYWdzLiQsYWRkX2xpYnJhcnlfZmxhZ3Moc3NwX25vbnNoYXJlZCksJyBcCisJCQkJ JHt3cmtzcmN9L2xpYmN4eGFiaS9zcmMvQ01ha2VMaXN0cy50eHQKKwkJCXZzZWQgLWkgJ3MsI3Nz cCwsJyAke3dya3NyY30vbGliY3h4L0NNYWtlTGlzdHMudHh0CisJCQk7OworCWVzYWMKKworCWNh c2UgIiRYQlBTX1RBUkdFVF9NQUNISU5FIiBpbgorCQlhcm0qLW11c2x8aTY4Ni1tdXNsKSAjIHNh bml0aXplciBjb2RlIGlzIGJyb2tlbiBzaW5jZSBpdCBkdXBsaWNhdGVzIHNvbWUgbGliYyBiaXRz CisJCQl2c2VkIC1pICdzL3NldChDT01QSUxFUl9SVF9IQVNfU0FOSVRJWkVSX0NPTU1PTiBUUlVF KS9zZXQoQ09NUElMRVJfUlRfSEFTX1NBTklUSVpFUl9DT01NT04gRkFMU0UpLycgXAorCQkJCSR7 d3Jrc3JjfS9jb21waWxlci1ydC9jbWFrZS9jb25maWctaXguY21ha2UKKwkJCTs7CisJZXNhYwor fQorCitwcmVfY29uZmlndXJlKCkgeworCWxvY2FsIHRyaXBsZXQKKworCSMgVmFzdGx5IHJlZHVj ZSBzaXplIG9mIGRlYnVnZ2luZyBzeW1ib2xzOgorCUNGTEFHUz0ke0NGTEFHUy8gLWcvIC1nMX0K KwlDWFhGTEFHUz0ke0NYWEZMQUdTLyAtZy8gLWcxfQorCisJIyBzaW5jZSBnY2M5LCB0aGUgYnVp bGQgbGlrZXMgdG8gYmxvdyB1cCBmb3IgcHBjMzIgYXBwYXJlbnRseSBiZWNhdXNlCisJIyBvZiBj bGFuZyBiZWluZyB0b28gbGFyZ2UgZm9yIGEgMjQtYml0IHJlbGF0aXZlIGNhbGwgdG8gdGhlIFBM VCwgc28KKwkjIG9wdGltaXplIGZvciBzaXplIGluc3RlYWQKKwljYXNlICIkWEJQU19UQVJHRVRf TUFDSElORSIgaW4KKwkJcHBjNjQqKSA7OworCQltaXBzKi1tdXNsfHBwYyopIGNvbmZpZ3VyZV9h cmdzKz0iIC1EVk9JRF9DWFhfT1BUX0ZMQUdTPS1PcyIgOzsKKwllc2FjCisKKwlpZiBbICIkQ1JP U1NfQlVJTEQiIF07IHRoZW4KKwkJbXNnX25vcm1hbCAiQnVpbGRpbmcgaG9zdCB0YmxnZW5cbiIK KwkJbWtkaXIgLXAgYnVpbGQvSE9TVAorCQljZCBidWlsZC9IT1NUCisJCUNDPSIkQlVJTERfQ0Mi IENYWD0iJEJVSUxEX0NYWCIgQ0ZMQUdTPSIkQlVJTERfQ0ZMQUdTIiBcCisJCQlDWFhGTEFHUz0i JEJVSUxEX0NYWEZMQUdTIiBMREZMQUdTPSIkQlVJTERfTERGTEFHUyIgXAorCQkJY21ha2UgLi4v Li4gLURDTUFLRV9CVUlMRF9UWVBFPVJlbGVhc2UgXAorCQkJLURMTFZNX0VOQUJMRV9QUk9KRUNU Uz0ke19lbmFibGVkX3Byb2plY3RzfQorCQltYWtlICR7bWFrZWpvYnN9IC1DIHV0aWxzL1RhYmxl R2VuCisJCW1ha2UgJHttYWtlam9ic30gLUMgdG9vbHMvY2xhbmcvdXRpbHMvVGFibGVHZW4KKwkJ bWFrZSAke21ha2Vqb2JzfSAtQyB0b29scy9jbGFuZy90b29scy9leHRyYS9jbGFuZy10aWR5L21p c2MvQ29uZnVzYWJsZVRhYmxlCisJCW1ha2UgJHttYWtlam9ic30gLUMgdG9vbHMvY2xhbmcvdG9v bHMvZXh0cmEvcHNldWRvL2dlbgorCQlbICIkX2xsZGJfZW5hYmxlIiA9ICJ5ZXMiIF0gJiYgbWFr ZSAke21ha2Vqb2JzfSAtQyB0b29scy9sbGRiL3V0aWxzL1RhYmxlR2VuCisJCWNvbmZpZ3VyZV9h cmdzKz0iIC1ETExWTV9UQUJMRUdFTj0ke3dya3NyY30vbGx2bS9idWlsZC9IT1NUL2Jpbi9sbHZt LXRibGdlbiIKKwkJY29uZmlndXJlX2FyZ3MrPSIgLURDTEFOR19UQUJMRUdFTj0ke3dya3NyY30v bGx2bS9idWlsZC9IT1NUL2Jpbi9jbGFuZy10YmxnZW4iCisJCWNvbmZpZ3VyZV9hcmdzKz0iIC1E Q0xBTkdfVElEWV9DT05GVVNBQkxFX0NIQVJTX0dFTj0ke3dya3NyY30vbGx2bS9idWlsZC9IT1NU L2Jpbi9jbGFuZy10aWR5LWNvbmZ1c2FibGUtY2hhcnMtZ2VuIgorCQljb25maWd1cmVfYXJncys9 IiAtRENMQU5HX1BTRVVET19HRU49JHt3cmtzcmN9L2xsdm0vYnVpbGQvSE9TVC9iaW4vY2xhbmct cHNldWRvLWdlbiIKKwkJWyAiJF9sbGRiX2VuYWJsZSIgPSAieWVzIiBdICYmIGNvbmZpZ3VyZV9h cmdzKz0iIC1ETExEQl9UQUJMRUdFTj0ke3dya3NyY30vbGx2bS9idWlsZC9IT1NUL2Jpbi9sbGRi LXRibGdlbiIKKwkJY2QgLi4vLi4KKwlmaQorCisJY2FzZSAiJFhCUFNfVEFSR0VUX01BQ0hJTkUi IGluCisJCWk2ODYqKSBfYXJjaD0iWDg2Ijs7CisJCXg4Nl82NCopIF9hcmNoPSJYODYiOzsKKwkJ YXJtdjUqKSBfYXJjaD0iQXJtdjV0ZSI7OworCQlhcm12NiopIF9hcmNoPSJBcm12NiI7OworCQlh cm12NyopIF9hcmNoPSJBcm12NyI7OworCQlhYXJjaDY0KikgX2FyY2g9IkFBcmNoNjQiOzsKKwkJ bWlwcyopIF9hcmNoPSJNaXBzIjs7CisJCXBwYyopIF9hcmNoPSJQb3dlclBDIjs7CisJCXJpc2N2 NjQqKSBfYXJjaD0iUklTQ1Y2NCI7OworCWVzYWMKKworCXRyaXBsZXQ9JHtYQlBTX0NST1NTX1RS SVBMRVQ6LSRYQlBTX1RSSVBMRVR9CisKKwljb25maWd1cmVfYXJncys9IiAtRExMVk1fVEFSR0VU X0FSQ0g9JHtfYXJjaH0iCisJY29uZmlndXJlX2FyZ3MrPSIgLURMTFZNX0hPU1RfVFJJUExFPSR7 dHJpcGxldH0iCisJY29uZmlndXJlX2FyZ3MrPSIgLURMTFZNX0RFRkFVTFRfVEFSR0VUX1RSSVBM RT0ke3RyaXBsZXR9IgorfQorCitkb19pbnN0YWxsKCkgeworCWNkIGJ1aWxkCisJY21ha2UgLURD TUFLRV9JTlNUQUxMX1BSRUZJWD0ke0RFU1RESVJ9L3VzciAtUCBjbWFrZV9pbnN0YWxsLmNtYWtl CisKKwkjIFJlcXVpcmVkIGZvciBtdWx0aWxpYi4KKwlpZiBbICIkWEJQU19UQVJHRVRfTUFDSElO RSIgPSAieDg2XzY0IiBdOyB0aGVuCisJCWZvciBfaGVhZGVyIGluIGxsdm0tY29uZmlnOyBkbwor CQkJbXYgJHtERVNURElSfS91c3IvaW5jbHVkZS9sbHZtL0NvbmZpZy8ke19oZWFkZXJ9eywtNjR9 LmgKKwkJCXZpbnN0YWxsICR7RklMRVNESVJ9L2xsdm0tQ29uZmlnLSR7X2hlYWRlcn0uaCA2NDQg XAorCQkJCXVzci9pbmNsdWRlL2xsdm0vQ29uZmlnICR7X2hlYWRlcn0uaAorCQlkb25lCisJZmkK KworCSMgUmVtb3ZlIGxsdm0tY29uZmlnLWhvc3QgaW4gY3Jvc3MgYnVpbGRzLgorCWlmIFsgIiRD Uk9TU19CVUlMRCIgXTsgdGhlbgorCQlybSAtZiAke0RFU1RESVJ9L3Vzci9iaW4vbGx2bS1jb25m aWctaG9zdAorCWZpCisKKwkjIEluc3RhbGwgbGliY3h4YWJpIGhlYWRlcnMKKwl2aW5zdGFsbCAk e3dya3NyY30vbGliY3h4YWJpL2luY2x1ZGUvX19jeHhhYmlfY29uZmlnLmggNjQ0IHVzci9pbmNs dWRlCisJdmluc3RhbGwgJHt3cmtzcmN9L2xpYmN4eGFiaS9pbmNsdWRlL2N4eGFiaS5oIDY0NCB1 c3IvaW5jbHVkZQorCisJIyBJbnN0YWxsIGxpYnVud2luZCBoZWFkZXJzCisJdmluc3RhbGwgJHt3 cmtzcmN9L2xpYnVud2luZC9pbmNsdWRlL19fbGlidW53aW5kX2NvbmZpZy5oIDY0NCB1c3IvaW5j bHVkZQorCXZpbnN0YWxsICR7d3Jrc3JjfS9saWJ1bndpbmQvaW5jbHVkZS9saWJ1bndpbmQuaCA2 NDQgdXNyL2luY2x1ZGUKKwl2aW5zdGFsbCAke3dya3NyY30vbGlidW53aW5kL2luY2x1ZGUvdW53 aW5kLmggNjQ0IHVzci9pbmNsdWRlCisJdmluc3RhbGwgJHt3cmtzcmN9L2xpYnVud2luZC9pbmNs dWRlL21hY2gtby9jb21wYWN0X3Vud2luZF9lbmNvZGluZy5oIFwKKwkJNjQ0IHVzci9pbmNsdWRl L21hY2gtbworfQorCitjbGFuZy1hbmFseXplcl9wYWNrYWdlKCkgeworCXB5Y29tcGlsZV9kaXJz PSJ1c3Ivc2hhcmUvc2Nhbi12aWV3IgorCWRlcGVuZHM9ImNsYW5nLSR7dmVyc2lvbn1fJHtyZXZp c2lvbn0gcHl0aG9uMyBwZXJsIgorCXNob3J0X2Rlc2MrPSIgLSBBIHNvdXJjZSBjb2RlIGFuYWx5 c2lzIGZyYW1ld29yayIKKwlob21lcGFnZT0iaHR0cHM6Ly9jbGFuZy1hbmFseXplci5sbHZtLm9y Zy8iCisJcGtnX2luc3RhbGwoKSB7CisJCXZtb3ZlICJ1c3IvYmluL3NjYW4tKiIKKwkJdm1vdmUg InVzci9saWJleGVjLyphbmFseXplciIKKwkJdm1vdmUgInVzci9zaGFyZS9zY2FuLSoiCisJCXZt b3ZlIHVzci9zaGFyZS9tYW4vbWFuMS9zY2FuLWJ1aWxkLjEKKwl9Cit9CisKK2NsYW5nLXRvb2xz LWV4dHJhX3BhY2thZ2UoKSB7CisJbGliMzJkaXNhYmxlZD15ZXMKKwlkZXBlbmRzPSJjbGFuZy0k e3ZlcnNpb259XyR7cmV2aXNpb259IHB5dGhvbjMiCisJc2hvcnRfZGVzYys9IiAtIEV4dHJhIENs YW5nIHRvb2xzIgorCWhvbWVwYWdlPSJodHRwczovL2NsYW5nLmxsdm0ub3JnL2V4dHJhLyIKKwlw a2dfaW5zdGFsbCgpIHsKKwkJdm1vdmUgdXNyL2Jpbi9jbGFuZy1hcHBseS1yZXBsYWNlbWVudHMK KwkJdm1vdmUgdXNyL2Jpbi9jbGFuZy1kb2MKKwkJdm1vdmUgdXNyL2Jpbi9jbGFuZy1pbmNsdWRl LWZpeGVyCisJCXZtb3ZlIHVzci9iaW4vY2xhbmctcXVlcnkKKwkJdm1vdmUgdXNyL2Jpbi9jbGFu Zy1yZW5hbWUKKwkJdm1vdmUgdXNyL2Jpbi9jbGFuZy1yZW9yZGVyLWZpZWxkcworCQl2bW92ZSB1 c3IvYmluL2NsYW5nLXRpZHkKKwkJdm1vdmUgdXNyL2Jpbi9jbGFuZ2QKKwkJdm1vdmUgdXNyL2Jp bi9kaWFndG9vbAorCQl2bW92ZSB1c3IvYmluL2ZpbmQtYWxsLXN5bWJvbHMKKwkJdm1vdmUgdXNy L2Jpbi9obWFwdG9vbAorCQl2bW92ZSB1c3IvYmluL21vZHVsYXJpemUKKwkJdm1vdmUgdXNyL2Jp bi9wcC10cmFjZQorCQl2bW92ZSB1c3IvYmluL3NhbmNvdgorCQl2bW92ZSB1c3IvaW5jbHVkZS9j bGFuZy10aWR5CisJCXZtb3ZlICJ1c3IvbGliL2xpYmNsYW5nQXBwbHlSZXBsYWNlbWVudHMqIgor CQl2bW92ZSAidXNyL2xpYi9saWJjbGFuZ0RvYyoiCisJCXZtb3ZlICJ1c3IvbGliL2xpYmNsYW5n SW5jbHVkZUZpeGVyKiIKKwkJdm1vdmUgInVzci9saWIvbGliY2xhbmdSZW9yZGVyRmllbGRzKiIK KwkJdm1vdmUgInVzci9saWIvbGliY2xhbmdRdWVyeSoiCisJCXZtb3ZlICJ1c3IvbGliL2xpYmNs YW5nVGlkeSoiCisJCXZtb3ZlICJ1c3Ivc2hhcmUvY2xhbmcvKmluY2x1ZGUtZml4ZXIqIgorCQl2 bW92ZSAidXNyL3NoYXJlL2NsYW5nLypyZW5hbWUqIgorCQl2bW92ZSAidXNyL3NoYXJlL2NsYW5n Lyp0aWR5KiIKKwkJdm1vdmUgdXNyL3NoYXJlL2RvYy9MTFZNL2NsYW5nLXRvb2xzCisJCXZtb3Zl IHVzci9zaGFyZS9tYW4vbWFuMS9kaWFndG9vbC4xCisJCXZtb3ZlIHVzci9zaGFyZS9tYW4vbWFu MS9leHRyYWNsYW5ndG9vbHMuMQorCX0KK30KKworY2xhbmdfcGFja2FnZSgpIHsKKwlsaWIzMmRp c2FibGVkPXllcworCWRlcGVuZHM9ImxpYnN0ZGMrKy1kZXZlbCBsaWJnY2MtZGV2ZWwgIGJpbnV0 aWxzICR7WEJQU19UQVJHRVRfTElCQ30tZGV2ZWwKKwkgbGliY2xhbmctJHt2ZXJzaW9ufV8ke3Jl dmlzaW9ufSIKKwlzaG9ydF9kZXNjKz0iIC0gQyBsYW5ndWFnZSBmYW1pbHkgZnJvbnRlbmQiCisJ aG9tZXBhZ2U9Imh0dHBzOi8vY2xhbmcubGx2bS5vcmcvIgorCXBrZ19pbnN0YWxsKCkgeworCQl2 bW92ZSAidXNyL2Jpbi8qY2xhbmcqIgorCQl2bW92ZSB1c3IvYmluL2MtaW5kZXgtdGVzdAorCQl2 bW92ZSB1c3IvaW5jbHVkZS9jbGFuZworCQl2bW92ZSB1c3IvaW5jbHVkZS9jbGFuZy1jCisJCXZt b3ZlIHVzci9saWIvY2xhbmcKKwkJdm1vdmUgdXNyL2xpYi9jbWFrZS9jbGFuZworCQl2bW92ZSAi dXNyL2xpYi9saWJjbGFuZyouYSIKKwkJdm1vdmUgInVzci9saWIvbGliY2xhbmcqLnNvIgorCQl2 bW92ZSB1c3Ivc2hhcmUvY2xhbmcKKwkJdm1vdmUgdXNyL3NoYXJlL2RvYy9MTFZNL2NsYW5nCisJ CXZtb3ZlIHVzci9zaGFyZS9tYW4vbWFuMS9jbGFuZy4xCisJfQorfQorCitsaWJjbGFuZ19wYWNr YWdlKCkgeworCXNob3J0X2Rlc2MrPSIgLSBDIGZyb250ZW5kIHJ1bnRpbWUgbGlicmFyeSIKKwlw a2dfaW5zdGFsbCgpIHsKKwkJdm1vdmUgInVzci9saWIvbGliY2xhbmcuc28uKiIKKwl9Cit9CisK K2xpYmNsYW5nLWNwcF9wYWNrYWdlKCkgeworCXNob3J0X2Rlc2MrPSIgLSBDIGZyb250ZW5kIHJ1 bnRpbWUgbGlicmFyeSAoQysrIGludGVyZmFjZSkiCisJcGtnX2luc3RhbGwoKSB7CisJCXZtb3Zl ICJ1c3IvbGliL2xpYmNsYW5nLWNwcC5zby4qIgorCX0KK30KKworbGxkX3BhY2thZ2UoKSB7CisJ bGliMzJkaXNhYmxlZD15ZXMKKwlzaG9ydF9kZXNjKz0iIC0gbGlua2VyIgorCWhvbWVwYWdlPSJo dHRwczovL2xsZC5sbHZtLm9yZyIKKwlwa2dfaW5zdGFsbCgpIHsKKwkJdm1vdmUgInVzci9iaW4v bGQubGxkKiIKKwkJdm1vdmUgInVzci9iaW4vbGQ2NC5sbGQqIgorCQl2bW92ZSAidXNyL2Jpbi9s bGQqIgorCQl2bW92ZSB1c3IvYmluL3dhc20tbGQKKwkJdm1vdmUgdXNyL3NoYXJlL2RvYy9MTFZN L2xsZAorCX0KK30KKworbGxkLWRldmVsX3BhY2thZ2UoKSB7CisJbGliMzJkaXNhYmxlZD15ZXMK KwlzaG9ydF9kZXNjKz0iIC0gbGlua2VyIC0gZGV2ZWxvcG1lbnQgZmlsZXMiCisJaG9tZXBhZ2U9 Imh0dHBzOi8vbGxkLmxsdm0ub3JnIgorCWRlcGVuZHM9ImxsZD49JHt2ZXJzaW9ufV8ke3Jldmlz aW9ufSIKKwlwa2dfaW5zdGFsbCgpIHsKKwkJdm1vdmUgdXNyL2luY2x1ZGUvbGxkCisJCXZtb3Zl IHVzci9saWIvY21ha2UvbGxkCisJCXZtb3ZlICJ1c3IvbGliL2xpYmxsZCphIgorCX0KK30KKwor bGxkYl9wYWNrYWdlKCkgeworCWxpYjMyZGlzYWJsZWQ9eWVzCisJZGVwZW5kcys9IiBweXRob24z LXNpeCIKKwlzaG9ydF9kZXNjKz0iIC0gTExEQiBkZWJ1Z2dlciIKKwlob21lcGFnZT0iaHR0cHM6 Ly9sbGRiLmxsdm0ub3JnLyIKKwlwa2dfaW5zdGFsbCgpIHsKKwkJdm1vdmUgInVzci9iaW4vKmxs ZGIqIgorCQl2bW92ZSAidXNyL2xpYi9saWJsbGRiKnNvLioiCisJCXZtb3ZlIHVzci9saWIvcHl0 aG9uKgorCX0KK30KKworbGxkYi1kZXZlbF9wYWNrYWdlKCkgeworCWxpYjMyZGlzYWJsZWQ9eWVz CisJZGVwZW5kcz0ibGxkYj49JHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKKwlzaG9ydF9kZXNjKz0i IC0gTExEQiBkZWJ1Z2dlciAtIGRldmVsb3BtZW50IGZpbGVzIgorCXBrZ19pbnN0YWxsKCkgewor CQl2bW92ZSB1c3IvaW5jbHVkZS9sbGRiCisJCXZtb3ZlICJ1c3IvbGliL2xpYmxsZGIqLnNvIgor CX0KK30KKworbGx2bS1saWJ1bndpbmRfcGFja2FnZSgpIHsKKwlzaG9ydF9kZXNjKz0iIC0gbGli dW53aW5kIgorCXBrZ19pbnN0YWxsKCkgeworCQl2bW92ZSAidXNyL2xpYi9saWJ1bndpbmQuc28u KiIKKwl9Cit9CisKK2xsdm0tbGlidW53aW5kLWRldmVsX3BhY2thZ2UoKSB7CisJc2hvcnRfZGVz Yys9IiAtIGxpYnVud2luZCAtIGRldmVsb3BtZW50IGZpbGVzIgorCWRlcGVuZHM9Imxsdm0tbGli dW53aW5kPj0ke3ZlcnNpb259XyR7cmV2aXNpb259IgorCWNvbmZsaWN0cz0ibGlidW53aW5kLWRl dmVsPj0wIgorCXBrZ19pbnN0YWxsKCkgeworCQl2bW92ZSB1c3IvaW5jbHVkZS9tYWNoLW8KKwkJ dm1vdmUgInVzci9pbmNsdWRlLyp1bndpbmQqIgorCQl2bW92ZSAidXNyL2xpYi9saWJ1bndpbmQu YSIKKwkJdm1vdmUgInVzci9saWIvbGlidW53aW5kLnNvIgorCQl2bW92ZSB1c3Ivc2hhcmUvZG9j L0xMVk0vbGlidW53aW5kCisJfQorfQorCitsaWJjeHhhYmlfcGFja2FnZSgpIHsKKwlzaG9ydF9k ZXNjKz0iIC0gbG93IGxldmVsIHN1cHBvcnQgZm9yIGxpYmMrKyIKKwlwa2dfaW5zdGFsbCgpIHsK KwkJdm1vdmUgInVzci9saWIvbGliYysrYWJpLnNvLioiCisJfQorfQorCitsaWJjeHhhYmktZGV2 ZWxfcGFja2FnZSgpIHsKKwlzaG9ydF9kZXNjKz0iIC0gbG93IGxldmVsIHN1cHBvcnQgZm9yIGxp YmMrKyAtIGRldmVsb3BtZW50IGZpbGVzIgorCWRlcGVuZHM9ImxpYmN4eGFiaT49JHt2ZXJzaW9u fV8ke3JldmlzaW9ufSIKKwlwa2dfaW5zdGFsbCgpIHsKKwkJdm1vdmUgInVzci9pbmNsdWRlLypj eHhhYmkqIgorCQl2bW92ZSAidXNyL2xpYi9saWJjKythYmkuc28iCisJCXZtb3ZlICJ1c3IvbGli L2xpYmMrK2FiaS5hIgorCX0KK30KKworbGliY3h4X3BhY2thZ2UoKSB7CisJc2hvcnRfZGVzYys9 IiAtIEMrKyBzdGFuZGFyZCBsaWJyYXJ5IgorCXBrZ19pbnN0YWxsKCkgeworCQl2bW92ZSAidXNy L2xpYi9saWJjKysuc28uKiIKKwl9Cit9CisKK2xpYmN4eC1kZXZlbF9wYWNrYWdlKCkgeworCXNo b3J0X2Rlc2MrPSIgLSBDKysgc3RhbmRhcmQgbGlicmFyeSAtIGRldmVsb3BtZW50IGZpbGVzIgor CWRlcGVuZHM9ImxpYmN4eD49JHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKKwlwa2dfaW5zdGFsbCgp IHsKKwkJdm1vdmUgdXNyL2luY2x1ZGUvYysrCisJCXZtb3ZlICJ1c3IvbGliL2xpYmMrKy5zbyIK KwkJdm1vdmUgInVzci9saWIvbGliYysrLmEiCisJCXZtb3ZlICJ1c3IvbGliL2xpYmMrK2V4cGVy aW1lbnRhbC5hIgorCQl2bW92ZSB1c3Ivc2hhcmUvZG9jL0xMVk0vbGliY3h4CisJfQorfQorCits aWJvbXBfcGFja2FnZSgpIHsKKwlzaG9ydF9kZXNjKz0iIC0gQ2xhbmcgT3Blbk1QIHN1cHBvcnQg bGlicmFyeSIKKwlwa2dfaW5zdGFsbCgpIHsKKwkJdm1vdmUgdXNyL2xpYi9saWJhcmNoZXIuc28K KwkJdm1vdmUgdXNyL2xpYi9saWJvbXBkLnNvCisJCXZtb3ZlICJ1c3IvbGliL2xpYm9tcHRhcmdl dC5ydGwuKi5zbyIKKwkJdm1vdmUgInVzci9saWIvbGlib21wKi5zby4qIgorCX0KK30KKworbGli b21wLWRldmVsX3BhY2thZ2UoKSB7CisJc2hvcnRfZGVzYys9IiAtIENsYW5nIE9wZW5NUCBzdXBw b3J0IGxpYnJhcnkgLSBkZXZlbG9wbWVudCBmaWxlcyIKKwlkZXBlbmRzPSJsaWJvbXA+PSR7dmVy c2lvbn1fJHtyZXZpc2lvbn0iCisJcGtnX2luc3RhbGwoKSB7CisJCXZtb3ZlICJ1c3IvaW5jbHVk ZS9vbXAqLmgiCisJCXZtb3ZlICJ1c3IvbGliL2NsYW5nLyR7dmVyc2lvbn0vaW5jbHVkZS9vbXAq LmgiCisJCXZtb3ZlICJ1c3IvbGliL2xpYmFyY2hlcioiCisJCXZtb3ZlICJ1c3IvbGliL2xpYm9t cCouc28iCisJCXZtb3ZlIHVzci9saWIvY21ha2Uvb3Blbm1wCisJCXZtb3ZlIHVzci9zaGFyZS9k b2MvTExWTS9vcGVubXAKKwkJdm1vdmUgdXNyL3NoYXJlL21hbi9tYW4xL2xsdm1vcGVubXAuMQor CX0KK30KKworbGlibGx2bTE1X3BhY2thZ2UoKSB7CisJc2hvcnRfZGVzYys9IiAtIHJ1bnRpbWUg bGlicmFyeSIKKwlwa2dfaW5zdGFsbCgpIHsKKwkJdm1vdmUgInVzci9saWIvbGliTExWTS0qLnNv KiIKKwl9Cit9CmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0xNS91cGRhdGUgYi9zcmNwa2dzL2xs dm0xNS91cGRhdGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5lOTVj ZjI2YjM1ODYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xsdm0xNS91cGRhdGUKQEAgLTAs MCArMSwzIEBACitzaXRlPSJodHRwczovL2dpdGh1Yi5jb20vbGx2bS9sbHZtLXByb2plY3QvcmVs ZWFzZXMiCitwYXR0ZXJuPSJsbHZtb3JnLVxLKFxkKy4pezJ9XGQrKC1yY1xkKyk/IgoraWdub3Jl PSIqLXJjKiIKCkZyb20gNGQyYWNlYzE3MTlkYmI2OTA4Mzg4NjYzMzAyMjc2MTc0MDQ0ZGI0MiBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogTWFyY2luIFB1YyA8dHJhbnp5c3RvcmVrLmlv QHByb3Rvbm1haWwuY29tPgpEYXRlOiBTdW4sIDE4IERlYyAyMDIyIDAwOjQwOjE4ICswMTAwClN1 YmplY3Q6IFtQQVRDSCAwMi8zMl0gbGx2bTogdXBkYXRlIHRvIDE1CgotLS0KIGNvbW1vbi9zaGxp YnMgICAgICAgICAgICAgICAgfCA2ICsrKy0tLQogc3JjcGtncy9jbGFuZyAgICAgICAgICAgICAg ICB8IDIgKy0KIHNyY3BrZ3MvY2xhbmctYW5hbHl6ZXIgICAgICAgfCAyICstCiBzcmNwa2dzL2Ns YW5nLXRvb2xzLWV4dHJhICAgIHwgMiArLQogc3JjcGtncy9saWJjbGFuZyAgICAgICAgICAgICB8 IDIgKy0KIHNyY3BrZ3MvbGliY2xhbmctY3BwICAgICAgICAgfCAyICstCiBzcmNwa2dzL2xpYmN4 eCAgICAgICAgICAgICAgIHwgMiArLQogc3JjcGtncy9saWJjeHgtZGV2ZWwgICAgICAgICB8IDIg Ky0KIHNyY3BrZ3MvbGliY3h4YWJpICAgICAgICAgICAgfCAyICstCiBzcmNwa2dzL2xpYmN4eGFi aS1kZXZlbCAgICAgIHwgMiArLQogc3JjcGtncy9saWJvbXAgICAgICAgICAgICAgICB8IDIgKy0K IHNyY3BrZ3MvbGlib21wLWRldmVsICAgICAgICAgfCAyICstCiBzcmNwa2dzL2xsZCAgICAgICAg ICAgICAgICAgIHwgMiArLQogc3JjcGtncy9sbGQtZGV2ZWwgICAgICAgICAgICB8IDIgKy0KIHNy Y3BrZ3MvbGxkYiAgICAgICAgICAgICAgICAgfCAyICstCiBzcmNwa2dzL2xsZGItZGV2ZWwgICAg ICAgICAgIHwgMiArLQogc3JjcGtncy9sbHZtLWxpYnVud2luZCAgICAgICB8IDIgKy0KIHNyY3Br Z3MvbGx2bS1saWJ1bndpbmQtZGV2ZWwgfCAyICstCiBzcmNwa2dzL2xsdm0vdGVtcGxhdGUgICAg ICAgIHwgNiArKystLS0KIDE5IGZpbGVzIGNoYW5nZWQsIDIzIGluc2VydGlvbnMoKyksIDIzIGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2NvbW1vbi9zaGxpYnMgYi9jb21tb24vc2hsaWJzCmlu ZGV4IDQzNWRlNWVkZjU5Ni4uMDcwMDRjZTcxYzBiIDEwMDY0NAotLS0gYS9jb21tb24vc2hsaWJz CisrKyBiL2NvbW1vbi9zaGxpYnMKQEAgLTk4NSw5ICs5ODUsOSBAQCBsaWJ1Y2hhcmRldC5zby4w IHVjaGFyZGV0LTAuMC42XzEKIGxpYmd0a3NvdXJjZXZpZXdtbS0zLjAuc28uMCBndGtzb3VyY2V2 aWV3bW0tMy4yLjBfMQogbGlieWFqbC5zby4yIHlhamwtMi4wLjFfMQogbGliY29uZnVzZS5zby4y IGNvbmZ1c2UtMy4yLjFfMQotbGlibGxkYi5zby4xMiBsbGRiLTEyLjAuMF8xCi1saWJjbGFuZy5z by4xMiBsaWJjbGFuZy0xMi4wLjBfMQotbGliY2xhbmctY3BwLnNvLjEyIGxpYmNsYW5nLWNwcC0x Mi4wLjBfMQorbGlibGxkYi5zby4xNSBsbGRiLTE1LjAuN18xCitsaWJjbGFuZy5zby4xNSBsaWJj bGFuZy0xNS4wLjdfMQorbGliY2xhbmctY3BwLnNvLjE1IGxpYmNsYW5nLWNwcC0xNS4wLjdfMQog bGliTExWTS0xMS5zbyBsaWJsbHZtMTEtMTEuMC4wXzEKIGxpYkxMVk0tMTIuc28gbGlibGx2bTEy LTEyLjAuMF8xCiBsaWJMTFZNLTE1LnNvIGxpYmxsdm0xNS0xNS4wLjdfMQpkaWZmIC0tZ2l0IGEv c3JjcGtncy9jbGFuZyBiL3NyY3BrZ3MvY2xhbmcKaW5kZXggY2Q2MGZkN2E5ODFiLi5hZDU3YTk2 OWI5ZjkgMTIwMDAwCi0tLSBhL3NyY3BrZ3MvY2xhbmcKKysrIGIvc3JjcGtncy9jbGFuZwpAQCAt MSArMSBAQAotbGx2bTEyClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorbGx2bTE1ClwgTm8g bmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9jbGFuZy1hbmFseXpl ciBiL3NyY3BrZ3MvY2xhbmctYW5hbHl6ZXIKaW5kZXggY2Q2MGZkN2E5ODFiLi5hZDU3YTk2OWI5 ZjkgMTIwMDAwCi0tLSBhL3NyY3BrZ3MvY2xhbmctYW5hbHl6ZXIKKysrIGIvc3JjcGtncy9jbGFu Zy1hbmFseXplcgpAQCAtMSArMSBAQAotbGx2bTEyClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls ZQorbGx2bTE1ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9jbGFuZy10b29scy1leHRyYSBiL3NyY3BrZ3MvY2xhbmctdG9vbHMtZXh0cmEKaW5kZXggY2Q2 MGZkN2E5ODFiLi5hZDU3YTk2OWI5ZjkgMTIwMDAwCi0tLSBhL3NyY3BrZ3MvY2xhbmctdG9vbHMt ZXh0cmEKKysrIGIvc3JjcGtncy9jbGFuZy10b29scy1leHRyYQpAQCAtMSArMSBAQAotbGx2bTEy ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorbGx2bTE1ClwgTm8gbmV3bGluZSBhdCBlbmQg b2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9saWJjbGFuZyBiL3NyY3BrZ3MvbGliY2xhbmcK aW5kZXggY2Q2MGZkN2E5ODFiLi5hZDU3YTk2OWI5ZjkgMTIwMDAwCi0tLSBhL3NyY3BrZ3MvbGli Y2xhbmcKKysrIGIvc3JjcGtncy9saWJjbGFuZwpAQCAtMSArMSBAQAotbGx2bTEyClwgTm8gbmV3 bGluZSBhdCBlbmQgb2YgZmlsZQorbGx2bTE1ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpk aWZmIC0tZ2l0IGEvc3JjcGtncy9saWJjbGFuZy1jcHAgYi9zcmNwa2dzL2xpYmNsYW5nLWNwcApp bmRleCBjZDYwZmQ3YTk4MWIuLmFkNTdhOTY5YjlmOSAxMjAwMDAKLS0tIGEvc3JjcGtncy9saWJj bGFuZy1jcHAKKysrIGIvc3JjcGtncy9saWJjbGFuZy1jcHAKQEAgLTEgKzEgQEAKLWxsdm0xMgpc IE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK2xsdm0xNQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9m IGZpbGUKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGliY3h4IGIvc3JjcGtncy9saWJjeHgKaW5kZXgg Y2Q2MGZkN2E5ODFiLi5hZDU3YTk2OWI5ZjkgMTIwMDAwCi0tLSBhL3NyY3BrZ3MvbGliY3h4Cisr KyBiL3NyY3BrZ3MvbGliY3h4CkBAIC0xICsxIEBACi1sbHZtMTIKXCBObyBuZXdsaW5lIGF0IGVu ZCBvZiBmaWxlCitsbHZtMTUKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQg YS9zcmNwa2dzL2xpYmN4eC1kZXZlbCBiL3NyY3BrZ3MvbGliY3h4LWRldmVsCmluZGV4IGNkNjBm ZDdhOTgxYi4uYWQ1N2E5NjliOWY5IDEyMDAwMAotLS0gYS9zcmNwa2dzL2xpYmN4eC1kZXZlbAor KysgYi9zcmNwa2dzL2xpYmN4eC1kZXZlbApAQCAtMSArMSBAQAotbGx2bTEyClwgTm8gbmV3bGlu ZSBhdCBlbmQgb2YgZmlsZQorbGx2bTE1ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZm IC0tZ2l0IGEvc3JjcGtncy9saWJjeHhhYmkgYi9zcmNwa2dzL2xpYmN4eGFiaQppbmRleCBjZDYw ZmQ3YTk4MWIuLmFkNTdhOTY5YjlmOSAxMjAwMDAKLS0tIGEvc3JjcGtncy9saWJjeHhhYmkKKysr IGIvc3JjcGtncy9saWJjeHhhYmkKQEAgLTEgKzEgQEAKLWxsdm0xMgpcIE5vIG5ld2xpbmUgYXQg ZW5kIG9mIGZpbGUKK2xsdm0xNQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdp dCBhL3NyY3BrZ3MvbGliY3h4YWJpLWRldmVsIGIvc3JjcGtncy9saWJjeHhhYmktZGV2ZWwKaW5k ZXggY2Q2MGZkN2E5ODFiLi5hZDU3YTk2OWI5ZjkgMTIwMDAwCi0tLSBhL3NyY3BrZ3MvbGliY3h4 YWJpLWRldmVsCisrKyBiL3NyY3BrZ3MvbGliY3h4YWJpLWRldmVsCkBAIC0xICsxIEBACi1sbHZt MTIKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCitsbHZtMTUKXCBObyBuZXdsaW5lIGF0IGVu ZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xpYm9tcCBiL3NyY3BrZ3MvbGlib21wCmlu ZGV4IGNkNjBmZDdhOTgxYi4uYWQ1N2E5NjliOWY5IDEyMDAwMAotLS0gYS9zcmNwa2dzL2xpYm9t cAorKysgYi9zcmNwa2dzL2xpYm9tcApAQCAtMSArMSBAQAotbGx2bTEyClwgTm8gbmV3bGluZSBh dCBlbmQgb2YgZmlsZQorbGx2bTE1ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0t Z2l0IGEvc3JjcGtncy9saWJvbXAtZGV2ZWwgYi9zcmNwa2dzL2xpYm9tcC1kZXZlbAppbmRleCBj ZDYwZmQ3YTk4MWIuLmFkNTdhOTY5YjlmOSAxMjAwMDAKLS0tIGEvc3JjcGtncy9saWJvbXAtZGV2 ZWwKKysrIGIvc3JjcGtncy9saWJvbXAtZGV2ZWwKQEAgLTEgKzEgQEAKLWxsdm0xMgpcIE5vIG5l d2xpbmUgYXQgZW5kIG9mIGZpbGUKK2xsdm0xNQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK ZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGxkIGIvc3JjcGtncy9sbGQKaW5kZXggY2Q2MGZkN2E5ODFi Li5hZDU3YTk2OWI5ZjkgMTIwMDAwCi0tLSBhL3NyY3BrZ3MvbGxkCisrKyBiL3NyY3BrZ3MvbGxk CkBAIC0xICsxIEBACi1sbHZtMTIKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCitsbHZtMTUK XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsZC1kZXZl bCBiL3NyY3BrZ3MvbGxkLWRldmVsCmluZGV4IGNkNjBmZDdhOTgxYi4uYWQ1N2E5NjliOWY5IDEy MDAwMAotLS0gYS9zcmNwa2dzL2xsZC1kZXZlbAorKysgYi9zcmNwa2dzL2xsZC1kZXZlbApAQCAt MSArMSBAQAotbGx2bTEyClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorbGx2bTE1ClwgTm8g bmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbGRiIGIvc3JjcGtn cy9sbGRiCmluZGV4IGNkNjBmZDdhOTgxYi4uYWQ1N2E5NjliOWY5IDEyMDAwMAotLS0gYS9zcmNw a2dzL2xsZGIKKysrIGIvc3JjcGtncy9sbGRiCkBAIC0xICsxIEBACi1sbHZtMTIKXCBObyBuZXds aW5lIGF0IGVuZCBvZiBmaWxlCitsbHZtMTUKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRp ZmYgLS1naXQgYS9zcmNwa2dzL2xsZGItZGV2ZWwgYi9zcmNwa2dzL2xsZGItZGV2ZWwKaW5kZXgg Y2Q2MGZkN2E5ODFiLi5hZDU3YTk2OWI5ZjkgMTIwMDAwCi0tLSBhL3NyY3BrZ3MvbGxkYi1kZXZl bAorKysgYi9zcmNwa2dzL2xsZGItZGV2ZWwKQEAgLTEgKzEgQEAKLWxsdm0xMgpcIE5vIG5ld2xp bmUgYXQgZW5kIG9mIGZpbGUKK2xsdm0xNQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlm ZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bS1saWJ1bndpbmQgYi9zcmNwa2dzL2xsdm0tbGlidW53aW5k CmluZGV4IGNkNjBmZDdhOTgxYi4uYWQ1N2E5NjliOWY5IDEyMDAwMAotLS0gYS9zcmNwa2dzL2xs dm0tbGlidW53aW5kCisrKyBiL3NyY3BrZ3MvbGx2bS1saWJ1bndpbmQKQEAgLTEgKzEgQEAKLWxs dm0xMgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK2xsdm0xNQpcIE5vIG5ld2xpbmUgYXQg ZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bS1saWJ1bndpbmQtZGV2ZWwgYi9z cmNwa2dzL2xsdm0tbGlidW53aW5kLWRldmVsCmluZGV4IGNkNjBmZDdhOTgxYi4uYWQ1N2E5Njli OWY5IDEyMDAwMAotLS0gYS9zcmNwa2dzL2xsdm0tbGlidW53aW5kLWRldmVsCisrKyBiL3NyY3Br Z3MvbGx2bS1saWJ1bndpbmQtZGV2ZWwKQEAgLTEgKzEgQEAKLWxsdm0xMgpcIE5vIG5ld2xpbmUg YXQgZW5kIG9mIGZpbGUKK2xsdm0xNQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAt LWdpdCBhL3NyY3BrZ3MvbGx2bS90ZW1wbGF0ZSBiL3NyY3BrZ3MvbGx2bS90ZW1wbGF0ZQppbmRl eCBhOTJkYjZmOTRmOWYuLmZjMWM4NTBiZDI2ZiAxMDA2NDQKLS0tIGEvc3JjcGtncy9sbHZtL3Rl bXBsYXRlCisrKyBiL3NyY3BrZ3MvbGx2bS90ZW1wbGF0ZQpAQCAtMSwxMSArMSwxMSBAQAogIyBU ZW1wbGF0ZSBmaWxlIGZvciAnbGx2bScKIHBrZ25hbWU9bGx2bQotdmVyc2lvbj0xMi4wLjAKK3Zl cnNpb249MTUKIHJldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPW1ldGEKLWRlcGVuZHM9Imxsdm0xMiIK LXJlcGxhY2VzPSJsbHZtMTE+PTAgbGx2bTEwPj0wIGxsdm05Pj0wIGxsdm04Pj0wIGxsdm03Pj0w IGxsdm02LjA+PTAgbGx2bTMuOT49MCIKK2RlcGVuZHM9Imxsdm0xNSIKIHNob3J0X2Rlc2M9IkxM Vk0gbWV0YSBwYWNrYWdlIgogbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGlu dXgub3JnPiIKIGxpY2Vuc2U9IlB1YmxpYyBEb21haW4iCiBob21lcGFnZT0iaHR0cHM6Ly93d3cu dm9pZGxpbnV4Lm9yZyIKK3JlcGxhY2VzPSJsbHZtMTI+PTAgbGx2bTExPj0wIGxsdm0xMD49MCBs bHZtOT49MCBsbHZtOD49MCBsbHZtNz49MCBsbHZtNi4wPj0wIGxsdm0zLjk+PTAiCgpGcm9tIDY2 N2U2NjNjMWFlYTg1MGFkZWFlNjAyY2ZkM2IyMzA1MmNkMTFiMTkgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206IE1hcmNpbiBQdWMgPHRyYW56eXN0b3Jlay5pb0Bwcm90b25tYWlsLmNvbT4K RGF0ZTogU3VuLCAxOCBEZWMgMjAyMiAxMjoyMDowOCArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMDMv MzJdIGxsdm0xMjogcmVtb3ZlIGJ1bXBlZCBzdWJwYWNrYWdlcwoKLS0tCiBzcmNwa2dzL2xsdm0x Mi90ZW1wbGF0ZSB8IDI2NCArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDI2MyBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9zcmNwa2dzL2xsdm0xMi90ZW1wbGF0ZSBiL3NyY3BrZ3MvbGx2bTEyL3RlbXBsYXRl CmluZGV4IGY4ZWEzYmE2NDFhZS4uYWVhMGI0M2NmNTczIDEwMDY0NAotLS0gYS9zcmNwa2dzL2xs dm0xMi90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2xsdm0xMi90ZW1wbGF0ZQpAQCAtNTAsNTUgKzUw LDcgQEAgY2FzZSAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiIGluCiAJcHBjKikgY29uZmlndXJlX2Fy Z3MrPSIgLURDTEFOR19FTkFCTEVfQ0xBTkdEPU9GRiIgOzsKIGVzYWMKIAotX2VuYWJsZWRfcHJv amVjdHM9ImNsYW5nO2NsYW5nLXRvb2xzLWV4dHJhO2NvbXBpbGVyLXJ0O2xpYmN4eDtsaWJjeHhh Ymk7bGlidW53aW5kO2xsZCIKLQotX2xsZGJfZW5hYmxlPXllcwotX2xpYm9tcF9lbmFibGU9bm8K LQotY2FzZSAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiIGluCi0JcHBjNjRsZSopIDs7Ci0JcHBjKnxp Njg2KikgX2xsZGJfZW5hYmxlPW5vIDs7Ci1lc2FjCi0KLWNhc2UgIiRYQlBTX1RBUkdFVF9NQUNI SU5FIiBpbgotCXg4Nl82NCp8YWFyY2g2NCp8cHBjNjQqKSBfbGlib21wX2VuYWJsZT15ZXM7Owot ZXNhYwotCi1zdWJwYWNrYWdlcz0iY2xhbmctdG9vbHMtZXh0cmEiCi0KLSMgbXVzdCBnbyBiZWZv cmUgY2xhbmcKLWlmIFsgIiRfbGlib21wX2VuYWJsZSIgPSAieWVzIiBdOyB0aGVuCi0JX2VuYWJs ZWRfcHJvamVjdHMrPSI7b3Blbm1wIgotCXN1YnBhY2thZ2VzKz0iIGxpYm9tcCBsaWJvbXAtZGV2 ZWwiCi0JIyBiZWNhdXNlIG9mIGNtYWtlIG5vbnNlbnNlIHJlZmVyZW5jaW5nIGxpYm9tcHRhcmdl dC5zby4qCi0JZGVwZW5kcys9IiBsaWJvbXA+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCi1maQot Ci1zdWJwYWNrYWdlcys9IiBjbGFuZyBjbGFuZy1hbmFseXplciBsaWJjbGFuZyBsaWJjbGFuZy1j cHAKLSBsbHZtLWxpYnVud2luZCBsbHZtLWxpYnVud2luZC1kZXZlbCBsaWJjeHggbGliY3h4LWRl dmVsCi0gbGliY3h4YWJpIGxpYmN4eGFiaS1kZXZlbCBsaWJsbHZtMTIiCi0KLWlmIFsgIiRfbGxk Yl9lbmFibGUiID0gInllcyIgXTsgdGhlbgotCSMgWFhYIGZhaWxzIHRvIGNyb3NzIGNvbXBpbGUg ZHVlIHRvIHB5dGhvbgotCV9lbmFibGVkX3Byb2plY3RzKz0iO2xsZGIiCi0Jc3VicGFja2FnZXMr PSIgbGxkYiBsbGRiLWRldmVsIgotZmkKLQotc3VicGFja2FnZXMrPSIgbGxkIGxsZC1kZXZlbCIK LQotY29uZmlndXJlX2FyZ3MrPSIgLURMTFZNX0VOQUJMRV9QUk9KRUNUUz0ke19lbmFibGVkX3By b2plY3RzfSIKLQogcG9zdF9wYXRjaCgpIHsKLQlpZiBbICIkX2xsZGJfZW5hYmxlIiA9ICJ5ZXMi IF07IHRoZW4KLQkJaWYgWyAiJFhCUFNfVEFSR0VUX0xJQkMiID0gIm11c2wiIF07IHRoZW4KLQkJ CXZzZWQgLWkgJ3N8X19wdHJhY2VfcmVxdWVzdHxpbnR8ZycgXAotCQkJCSR7d3Jrc3JjfS9sbGRi L3NvdXJjZS9QbHVnaW5zL1Byb2Nlc3MvTGludXgvTmF0aXZlUHJvY2Vzc0xpbnV4LmNwcAotCQlm aQotCQkjIGRpc2FibGUgZG9jcyBmb3IgbGxkYiBhcyB0aGV5IGZhaWwgdG8gZ2VuZXJhdGUKLQkJ dnNlZCAtaSAnL2FkZF9zdWJkaXJlY3RvcnkoZG9jcykvZCcgXAotCQkJJHt3cmtzcmN9L2xsZGIv Q01ha2VMaXN0cy50eHQKLQlmaQotCiAJIyB1cGRhdGUgY29uZmlnLmd1ZXNzIGZvciBiZXR0ZXIg cGxhdGZvcm0gZGV0ZWN0aW9uCiAJY3AgJFhCUFNfQ09NTU9ORElSL2Vudmlyb25tZW50L2NvbmZp Z3VyZS9hdXRvbWFrZS9jb25maWcuZ3Vlc3MgXAogCQkke3dya3NyY30vbGx2bS9jbWFrZQpAQCAt MTU0LDE0ICsxMDYsMTIgQEAgcHJlX2NvbmZpZ3VyZSgpIHsKIAkJY2QgYnVpbGQvSE9TVAogCQlD Qz0iJEJVSUxEX0NDIiBDWFg9IiRCVUlMRF9DWFgiIENGTEFHUz0iJEJVSUxEX0NGTEFHUyIgXAog CQkJQ1hYRkxBR1M9IiRCVUlMRF9DWFhGTEFHUyIgTERGTEFHUz0iJEJVSUxEX0xERkxBR1MiIFwK LQkJCWNtYWtlIC4uLy4uIC1EQ01BS0VfQlVJTERfVFlQRT1SZWxlYXNlIFwKLQkJCS1ETExWTV9F TkFCTEVfUFJPSkVDVFM9JHtfZW5hYmxlZF9wcm9qZWN0c30KKwkJCWNtYWtlIC4uLy4uIC1EQ01B S0VfQlVJTERfVFlQRT1SZWxlYXNlCiAJCW1ha2UgJHttYWtlam9ic30gLUMgdXRpbHMvVGFibGVH ZW4KIAkJbWFrZSAke21ha2Vqb2JzfSAtQyB0b29scy9jbGFuZy91dGlscy9UYWJsZUdlbgogCQlb ICIkX2xsZGJfZW5hYmxlIiA9ICJ5ZXMiIF0gJiYgbWFrZSAke21ha2Vqb2JzfSAtQyB0b29scy9s bGRiL3V0aWxzL1RhYmxlR2VuCiAJCWNvbmZpZ3VyZV9hcmdzKz0iIC1ETExWTV9UQUJMRUdFTj0k e3dya3NyY30vbGx2bS9idWlsZC9IT1NUL2Jpbi9sbHZtLXRibGdlbiIKIAkJY29uZmlndXJlX2Fy Z3MrPSIgLURDTEFOR19UQUJMRUdFTj0ke3dya3NyY30vbGx2bS9idWlsZC9IT1NUL2Jpbi9jbGFu Zy10YmxnZW4iCi0JCVsgIiRfbGxkYl9lbmFibGUiID0gInllcyIgXSAmJiBjb25maWd1cmVfYXJn cys9IiAtRExMREJfVEFCTEVHRU49JHt3cmtzcmN9L2xsdm0vYnVpbGQvSE9TVC9iaW4vbGxkYi10 YmxnZW4iCiAJCWNkIC4uLy4uCiAJZmkKIApAQCAtMjAxLDIxOCArMTUxLDYgQEAgZG9faW5zdGFs bCgpIHsKIAlpZiBbICIkQ1JPU1NfQlVJTEQiIF07IHRoZW4KIAkJcm0gLWYgJHtERVNURElSfS91 c3IvYmluL2xsdm0tY29uZmlnLWhvc3QKIAlmaQotCi0JIyBJbnN0YWxsIGxpYmN4eGFiaSBoZWFk ZXJzCi0Jdmluc3RhbGwgJHt3cmtzcmN9L2xpYmN4eGFiaS9pbmNsdWRlL19fY3h4YWJpX2NvbmZp Zy5oIDY0NCB1c3IvaW5jbHVkZQotCXZpbnN0YWxsICR7d3Jrc3JjfS9saWJjeHhhYmkvaW5jbHVk ZS9jeHhhYmkuaCA2NDQgdXNyL2luY2x1ZGUKLQotCSMgSW5zdGFsbCBsaWJ1bndpbmQgaGVhZGVy cwotCXZpbnN0YWxsICR7d3Jrc3JjfS9saWJ1bndpbmQvaW5jbHVkZS9fX2xpYnVud2luZF9jb25m aWcuaCA2NDQgdXNyL2luY2x1ZGUKLQl2aW5zdGFsbCAke3dya3NyY30vbGlidW53aW5kL2luY2x1 ZGUvbGlidW53aW5kLmggNjQ0IHVzci9pbmNsdWRlCi0Jdmluc3RhbGwgJHt3cmtzcmN9L2xpYnVu d2luZC9pbmNsdWRlL3Vud2luZC5oIDY0NCB1c3IvaW5jbHVkZQotCXZpbnN0YWxsICR7d3Jrc3Jj fS9saWJ1bndpbmQvaW5jbHVkZS9tYWNoLW8vY29tcGFjdF91bndpbmRfZW5jb2RpbmcuaCBcCi0J CTY0NCB1c3IvaW5jbHVkZS9tYWNoLW8KLX0KLQotY2xhbmctYW5hbHl6ZXJfcGFja2FnZSgpIHsK LQlweWNvbXBpbGVfZGlycz0idXNyL3NoYXJlL3NjYW4tdmlldyIKLQlkZXBlbmRzPSJjbGFuZy0k e3ZlcnNpb259XyR7cmV2aXNpb259IHB5dGhvbjMgcGVybCIKLQlzaG9ydF9kZXNjKz0iIC0gQSBz b3VyY2UgY29kZSBhbmFseXNpcyBmcmFtZXdvcmsiCi0JaG9tZXBhZ2U9Imh0dHBzOi8vY2xhbmct YW5hbHl6ZXIubGx2bS5vcmcvIgotCXBrZ19pbnN0YWxsKCkgewotCQl2bW92ZSB1c3Ivc2hhcmUv bWFuL21hbjEvc2Nhbi1idWlsZC4xCi0JCXZtb3ZlICIvdXNyL2Jpbi9zY2FuLSoiCi0JCXZtb3Zl ICIvdXNyL3NoYXJlL3NjYW4tKiIKLQkJdm1vdmUgIi91c3IvbGliZXhlYy8qYW5hbHl6ZXIiCi0J fQotfQotCi1jbGFuZy10b29scy1leHRyYV9wYWNrYWdlKCkgewotCWxpYjMyZGlzYWJsZWQ9eWVz Ci0JZGVwZW5kcz0iY2xhbmctJHt2ZXJzaW9ufV8ke3JldmlzaW9ufSBweXRob24zIgotCXNob3J0 X2Rlc2MrPSIgLSBFeHRyYSBDbGFuZyB0b29scyIKLQlob21lcGFnZT0iaHR0cHM6Ly9jbGFuZy5s bHZtLm9yZy9leHRyYS8iCi0JcGtnX2luc3RhbGwoKSB7Ci0JCXZtb3ZlIHVzci9pbmNsdWRlL2Ns YW5nLXRpZHkKLQkJdm1vdmUgdXNyL2Jpbi9jbGFuZy1hcHBseS1yZXBsYWNlbWVudHMKLQkJdm1v dmUgdXNyL2Jpbi9jbGFuZy1xdWVyeQotCQl2bW92ZSB1c3IvYmluL2NsYW5nLXJlbmFtZQotCQl2 bW92ZSB1c3IvYmluL2NsYW5nLXRpZHkKLQkJdm1vdmUgdXNyL2Jpbi9kaWFndG9vbAotCQl2bW92 ZSB1c3IvYmluL2ZpbmQtYWxsLXN5bWJvbHMKLQkJdm1vdmUgdXNyL2Jpbi9obWFwdG9vbAotCQl2 bW92ZSB1c3IvYmluL21vZHVsYXJpemUKLQkJdm1vdmUgdXNyL2Jpbi9wcC10cmFjZQotCQl2bW92 ZSB1c3IvYmluL3NhbmNvdgotCQl2bW92ZSAidXNyL2xpYi9saWJjbGFuZ0FwcGx5UmVwbGFjZW1l bnRzKiIKLQkJdm1vdmUgInVzci9saWIvbGliY2xhbmdRdWVyeSoiCi0JCXZtb3ZlICJ1c3IvbGli L2xpYmNsYW5nVGlkeSoiCi0JCXZtb3ZlICJ1c3Ivc2hhcmUvY2xhbmcvKnRpZHkqIgotCQl2bW92 ZSB1c3Ivc2hhcmUvZG9jL2NsYW5nLXRvb2xzCi0JCXZtb3ZlIHVzci9zaGFyZS9tYW4vbWFuMS9l eHRyYWNsYW5ndG9vbHMuMQotCQl2bW92ZSB1c3Ivc2hhcmUvbWFuL21hbjEvZGlhZ3Rvb2wuMQot CX0KLX0KLQotY2xhbmdfcGFja2FnZSgpIHsKLQlsaWIzMmRpc2FibGVkPXllcwotCWRlcGVuZHM9 ImxpYnN0ZGMrKy1kZXZlbCBsaWJnY2MtZGV2ZWwgIGJpbnV0aWxzICR7WEJQU19UQVJHRVRfTElC Q30tZGV2ZWwKLQkgbGliY2xhbmctJHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKLQlzaG9ydF9kZXNj Kz0iIC0gQyBsYW5ndWFnZSBmYW1pbHkgZnJvbnRlbmQiCi0JaG9tZXBhZ2U9Imh0dHBzOi8vY2xh bmcubGx2bS5vcmcvIgotCXBrZ19pbnN0YWxsKCkgewotCQl2bW92ZSB1c3IvaW5jbHVkZS9jbGFu ZwotCQl2bW92ZSB1c3IvaW5jbHVkZS9jbGFuZy1jCi0JCXZtb3ZlICJ1c3IvYmluLypjbGFuZyoi Ci0JCXZtb3ZlIHVzci9iaW4vYy1pbmRleC10ZXN0Ci0JCXZtb3ZlIHVzci9saWIvY2xhbmcKLQkJ dm1vdmUgdXNyL2xpYi9jbWFrZS9jbGFuZwotCQl2bW92ZSAidXNyL2xpYi9saWJjbGFuZyouYSIK LQkJdm1vdmUgInVzci9saWIvbGliY2xhbmcqLnNvIgotCQl2bW92ZSB1c3Ivc2hhcmUvY2xhbmcK LQkJdm1vdmUgdXNyL3NoYXJlL2RvYy9jbGFuZwotCQl2bW92ZSB1c3Ivc2hhcmUvbWFuL21hbjEv Y2xhbmcuMQotCX0KLX0KLQotbGliY2xhbmdfcGFja2FnZSgpIHsKLQlzaG9ydF9kZXNjKz0iIC0g QyBmcm9udGVuZCBydW50aW1lIGxpYnJhcnkiCi0JcGtnX2luc3RhbGwoKSB7Ci0JCXZtb3ZlICJ1 c3IvbGliL2xpYmNsYW5nLnNvLioiCi0JfQotfQotCi1saWJjbGFuZy1jcHBfcGFja2FnZSgpIHsK LQlzaG9ydF9kZXNjKz0iIC0gQyBmcm9udGVuZCBydW50aW1lIGxpYnJhcnkgKEMrKyBpbnRlcmZh Y2UpIgotCXBrZ19pbnN0YWxsKCkgewotCQl2bW92ZSAidXNyL2xpYi9saWJjbGFuZy1jcHAuc28u KiIKLQl9Ci19Ci0KLWxsZF9wYWNrYWdlKCkgewotCWxpYjMyZGlzYWJsZWQ9eWVzCi0Jc2hvcnRf ZGVzYys9IiAtIGxpbmtlciIKLQlob21lcGFnZT0iaHR0cHM6Ly9sbGQubGx2bS5vcmciCi0JcGtn X2luc3RhbGwoKSB7Ci0JCXZtb3ZlIHVzci9iaW4vbGxkKgotCQl2bW92ZSB1c3IvYmluL3dhc20t bGQKLQkJdm1vdmUgdXNyL2Jpbi9sZC5sbGQqCi0JCXZtb3ZlIHVzci9iaW4vbGQ2NC5sbGQqCi0J CXZtb3ZlIHVzci9zaGFyZS9kb2MvbGxkCi0JfQotfQotCi1sbGQtZGV2ZWxfcGFja2FnZSgpIHsK LQlsaWIzMmRpc2FibGVkPXllcwotCXNob3J0X2Rlc2MrPSIgLSBsaW5rZXIgLSBkZXZlbG9wbWVu dCBmaWxlcyIKLQlob21lcGFnZT0iaHR0cHM6Ly9sbGQubGx2bS5vcmciCi0JZGVwZW5kcz0ibGxk Pj0ke3ZlcnNpb259XyR7cmV2aXNpb259IgotCXBrZ19pbnN0YWxsKCkgewotCQl2bW92ZSB1c3Iv aW5jbHVkZS9sbGQKLQkJdm1vdmUgdXNyL2xpYi9jbWFrZS9sbGQKLQkJdm1vdmUgInVzci9saWIv bGlibGxkKmEiCi0JfQotfQotCi1sbGRiX3BhY2thZ2UoKSB7Ci0JbGliMzJkaXNhYmxlZD15ZXMK LQlkZXBlbmRzKz0iIHB5dGhvbjMtc2l4IgotCXNob3J0X2Rlc2MrPSIgLSBMTERCIGRlYnVnZ2Vy IgotCWhvbWVwYWdlPSJodHRwczovL2xsZGIubGx2bS5vcmcvIgotCXBrZ19pbnN0YWxsKCkgewot CQl2bW92ZSB1c3IvYmluLypsbGRiKgotCQl2bW92ZSB1c3IvbGliL2xpYmxsZGIqc28uKgotCQl2 bW92ZSAvdXNyL2xpYi9weXRob24qCi0JfQotfQotCi1sbGRiLWRldmVsX3BhY2thZ2UoKSB7Ci0J bGliMzJkaXNhYmxlZD15ZXMKLQlkZXBlbmRzPSJsbGRiPj0ke3ZlcnNpb259XyR7cmV2aXNpb259 IgotCXNob3J0X2Rlc2MrPSIgLSBMTERCIGRlYnVnZ2VyIC0gZGV2ZWxvcG1lbnQgZmlsZXMiCi0J cGtnX2luc3RhbGwoKSB7Ci0JCXZtb3ZlIHVzci9pbmNsdWRlL2xsZGIKLQkJdm1vdmUgInVzci9s aWIvbGlibGxkYiouc28iCi0JfQotfQotCi1sbHZtLWxpYnVud2luZF9wYWNrYWdlKCkgewotCXNo b3J0X2Rlc2MrPSIgLSBsaWJ1bndpbmQiCi0JcGtnX2luc3RhbGwoKSB7Ci0JCXZtb3ZlICJ1c3Iv bGliL2xpYnVud2luZC5zby4qIgotCX0KLX0KLQotbGx2bS1saWJ1bndpbmQtZGV2ZWxfcGFja2Fn ZSgpIHsKLQlzaG9ydF9kZXNjKz0iIC0gbGlidW53aW5kIC0gZGV2ZWxvcG1lbnQgZmlsZXMiCi0J ZGVwZW5kcz0ibGx2bS1saWJ1bndpbmQ+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCi0JY29uZmxp Y3RzPSJsaWJ1bndpbmQtZGV2ZWw+PTAiCi0JcGtnX2luc3RhbGwoKSB7Ci0JCXZtb3ZlIHVzci9s aWIvbGlidW53aW5kLnNvCi0JCXZtb3ZlIHVzci9saWIvbGlidW53aW5kLmEKLQkJdm1vdmUgInVz ci9pbmNsdWRlLyp1bndpbmQqIgotCQl2bW92ZSB1c3IvaW5jbHVkZS9tYWNoLW8KLQkJdm1vdmUg dXNyL3NoYXJlL2RvYy9saWJ1bndpbmQKLQl9Ci19Ci0KLWxpYmN4eGFiaV9wYWNrYWdlKCkgewot CXNob3J0X2Rlc2MrPSIgLSBsb3cgbGV2ZWwgc3VwcG9ydCBmb3IgbGliYysrIgotCXBrZ19pbnN0 YWxsKCkgewotCQl2bW92ZSAidXNyL2xpYi9saWJjKythYmkuc28uKiIKLQl9Ci19Ci0KLWxpYmN4 eGFiaS1kZXZlbF9wYWNrYWdlKCkgewotCXNob3J0X2Rlc2MrPSIgLSBsb3cgbGV2ZWwgc3VwcG9y dCBmb3IgbGliYysrIC0gZGV2ZWxvcG1lbnQgZmlsZXMiCi0JZGVwZW5kcz0ibGliY3h4YWJpPj0k e3ZlcnNpb259XyR7cmV2aXNpb259IgotCXBrZ19pbnN0YWxsKCkgewotCQl2bW92ZSB1c3IvbGli L2xpYmMrK2FiaS5zbwotCQl2bW92ZSB1c3IvbGliL2xpYmMrK2FiaS5hCi0JCXZtb3ZlICJ1c3Iv aW5jbHVkZS8qY3h4YWJpKiIKLQl9Ci19Ci0KLWxpYmN4eF9wYWNrYWdlKCkgewotCXNob3J0X2Rl c2MrPSIgLSBDKysgc3RhbmRhcmQgbGlicmFyeSIKLQlwa2dfaW5zdGFsbCgpIHsKLQkJdm1vdmUg InVzci9saWIvbGliYysrLnNvLioiCi0JfQotfQotCi1saWJjeHgtZGV2ZWxfcGFja2FnZSgpIHsK LQlzaG9ydF9kZXNjKz0iIC0gQysrIHN0YW5kYXJkIGxpYnJhcnkgLSBkZXZlbG9wbWVudCBmaWxl cyIKLQlkZXBlbmRzPSJsaWJjeHg+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCi0JcGtnX2luc3Rh bGwoKSB7Ci0JCXZtb3ZlIHVzci9saWIvbGliYysrLnNvCi0JCXZtb3ZlIHVzci9saWIvbGliYysr LmEKLQkJdm1vdmUgdXNyL2xpYi9saWJjKytleHBlcmltZW50YWwuYQotCQl2bW92ZSB1c3IvaW5j bHVkZS9jKysKLQkJdm1vdmUgdXNyL3NoYXJlL2RvYy9saWJjeHgKLQl9Ci19Ci0KLWxpYm9tcF9w YWNrYWdlKCkgewotCXNob3J0X2Rlc2MrPSIgLSBDbGFuZyBPcGVuTVAgc3VwcG9ydCBsaWJyYXJ5 IgotCXBrZ19pbnN0YWxsKCkgewotCQl2bW92ZSB1c3IvbGliL2xpYm9tcC5zbwotCQl2bW92ZSAi dXNyL2xpYi9saWJvbXB0YXJnZXQucnRsLiouc28iCi0JCXZtb3ZlIHVzci9saWIvbGliYXJjaGVy LnNvCi0JCXZtb3ZlICJ1c3IvbGliL2xpYm9tcCouc28uKiIKLQl9Ci19Ci0KLWxpYm9tcC1kZXZl bF9wYWNrYWdlKCkgewotCXNob3J0X2Rlc2MrPSIgLSBDbGFuZyBPcGVuTVAgc3VwcG9ydCBsaWJy YXJ5IC0gZGV2ZWxvcG1lbnQgZmlsZXMiCi0JZGVwZW5kcz0ibGlib21wPj0ke3ZlcnNpb259XyR7 cmV2aXNpb259IgotCXBrZ19pbnN0YWxsKCkgewotCQl2bW92ZSAidXNyL2xpYi9saWJvbXAqLnNv IgotCQl2bW92ZSAidXNyL2xpYi9saWJhcmNoZXIqIgotCQl2bW92ZSAidXNyL2luY2x1ZGUvb21w Ki5oIgotCQl2bW92ZSAidXNyL2xpYi9jbGFuZy8ke3ZlcnNpb259L2luY2x1ZGUvb21wKi5oIgot CQl2bW92ZSB1c3Ivc2hhcmUvbWFuL21hbjEvbGx2bW9wZW5tcC4xCi0JCXZtb3ZlIHVzci9zaGFy ZS9kb2Mvb3Blbm1wCi0JfQogfQogCiBsaWJsbHZtMTJfcGFja2FnZSgpIHsKCkZyb20gYzM0NTE1 MzMzYmExZWUxZDI4ZDZhN2U0MDRkNzBlYzhkNjY3Yzg0OSBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogTWFyY2luIFB1YyA8dHJhbnp5c3RvcmVrLmlvQHByb3Rvbm1haWwuY29tPgpEYXRl OiBUaHUsIDUgSmFuIDIwMjMgMTU6MTE6MDYgKzAxMDAKU3ViamVjdDogW1BBVENIIDA0LzMyXSBT UElSVi1MTFZNLVRyYW5zbGF0b3I6IHVwZGF0ZSB0byAxNS4wLjAKCi0tLQogY29tbW9uL3NobGli cyAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQogc3JjcGtncy9TUElSVi1MTFZNLVRy YW5zbGF0b3IvdGVtcGxhdGUgfCAxMyArKysrKysrLS0tLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDgg aW5zZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9jb21tb24vc2hsaWJz IGIvY29tbW9uL3NobGlicwppbmRleCAwNzAwNGNlNzFjMGIuLjY2ODE4ZDQ3OGE2ZiAxMDA2NDQK LS0tIGEvY29tbW9uL3NobGlicworKysgYi9jb21tb24vc2hsaWJzCkBAIC05OTEsNyArOTkxLDcg QEAgbGliY2xhbmctY3BwLnNvLjE1IGxpYmNsYW5nLWNwcC0xNS4wLjdfMQogbGliTExWTS0xMS5z byBsaWJsbHZtMTEtMTEuMC4wXzEKIGxpYkxMVk0tMTIuc28gbGlibGx2bTEyLTEyLjAuMF8xCiBs aWJMTFZNLTE1LnNvIGxpYmxsdm0xNS0xNS4wLjdfMQotbGliTExWTVNQSVJWTGliLnNvLjEyIFNQ SVJWLUxMVk0tVHJhbnNsYXRvci0xMi4wLjBfMQorbGliTExWTVNQSVJWTGliLnNvLjE1IFNQSVJW LUxMVk0tVHJhbnNsYXRvci0xNS4wLjBfMQogbGlib21wLnNvLjUgbGlib21wLTE1LjAuN18xCiBs aWJvbXB0YXJnZXQuc28uMTUgbGlib21wLTE1LjAuN18xCiBsaWJpc29mcy5zby42IGxpYmlzb2Zz LTAuNi4yNF8xCmRpZmYgLS1naXQgYS9zcmNwa2dzL1NQSVJWLUxMVk0tVHJhbnNsYXRvci90ZW1w bGF0ZSBiL3NyY3BrZ3MvU1BJUlYtTExWTS1UcmFuc2xhdG9yL3RlbXBsYXRlCmluZGV4IGEyNzU0 ZTU4YzBlOC4uYmVlOTlmOWJjYmIyIDEwMDY0NAotLS0gYS9zcmNwa2dzL1NQSVJWLUxMVk0tVHJh bnNsYXRvci90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL1NQSVJWLUxMVk0tVHJhbnNsYXRvci90ZW1w bGF0ZQpAQCAtMSwxOSArMSwyMCBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnU1BJUlYtTExWTS1U cmFuc2xhdG9yJwogcGtnbmFtZT1TUElSVi1MTFZNLVRyYW5zbGF0b3IKLXZlcnNpb249MTIuMC4w Ci1yZXZpc2lvbj0yCit2ZXJzaW9uPTE1LjAuMAorcmV2aXNpb249MQogYnVpbGRfc3R5bGU9Y21h a2UKIG1ha2VfYnVpbGRfYXJncz0ibGx2bS1zcGlydiIKIGNvbmZpZ3VyZV9hcmdzPSItV25vLWRl diAtRExMVk1fTElOS19MTFZNX0RZTElCPU9OIC1EQ01BS0VfU0tJUF9SUEFUSD1PTgotIC1ETExW TV9TUElSVl9JTkNMVURFX1RFU1RTPU9GRiAtREJVSUxEX1NIQVJFRF9MSUJTPU9OIgorIC1ETExW TV9TUElSVl9JTkNMVURFX1RFU1RTPU9GRiAtREJVSUxEX1NIQVJFRF9MSUJTPU9OCisgLURMTFZN X0VYVEVSTkFMX1NQSVJWX0hFQURFUlNfU09VUkNFX0RJUj0vdXNyIgogaG9zdG1ha2VkZXBlbmRz PSJjbGFuZyBsbHZtIgotbWFrZWRlcGVuZHM9ImNsYW5nLXRvb2xzLWV4dHJhIGxsdm0iCittYWtl ZGVwZW5kcz0iY2xhbmctdG9vbHMtZXh0cmEgbGx2bSBTUElSVi1IZWFkZXJzIgogc2hvcnRfZGVz Yz0iQVBJIGFuZCBjb21tYW5kcyBmb3IgcHJvY2Vzc2luZyBTUElSLVYgbW9kdWxlcyIKIG1haW50 YWluZXI9Ik9ycGhhbmVkIDxvcnBoYW5Adm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJOQ1NBIgog aG9tZXBhZ2U9Imh0dHBzOi8vZ2l0aHViLmNvbS9LaHJvbm9zR3JvdXAvU1BJUlYtTExWTS1UcmFu c2xhdG9yIgotZGlzdGZpbGVzPSJodHRwczovL2dpdGh1Yi5jb20vS2hyb25vc0dyb3VwLyR7cGtn bmFtZX0vYXJjaGl2ZS9yZWZzL3RhZ3MvdiR7dmVyc2lvbn0udGFyLmd6IgotY2hlY2tzdW09NmU0 ZmFkMDQyMDNmMjVmY2RlNGMzMDhjNTNlOWY1OWJkMDVhMzkwOTc4OTkyZGIzMjEyZDRiNjNhZmY2 MjEwOAorZGlzdGZpbGVzPSJodHRwczovL2dpdGh1Yi5jb20vS2hyb25vc0dyb3VwL1NQSVJWLUxM Vk0tVHJhbnNsYXRvci9hcmNoaXZlL3JlZnMvdGFncy92JHt2ZXJzaW9ufS50YXIuZ3oiCitjaGVj a3N1bT1iMWJlYmQ3N2Y3Mjk4ODc1OGMwMDg1MmU3OGMyZGRjNTQ1ODE1YTYxMjE2OWEwY2IzNzdk MDIxZTJmODQ2ZDg4CiAKIHBvc3RfaW5zdGFsbCgpIHsKIAl2bGljZW5zZSBMSUNFTlNFLlRYVAoK RnJvbSA2NGQ2ZjYxY2M5YWNlMTg2MTkzMzk3MWQxYmE3OGM3ZTI3ZWE2ZmNmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJjaW4gUHVjIDx0cmFuenlzdG9yZWsuaW9AcHJvdG9ubWFp bC5jb20+CkRhdGU6IFRodSwgNSBKYW4gMjAyMyAxNDoyNzowMyArMDEwMApTdWJqZWN0OiBbUEFU Q0ggMDUvMzJdIG1lc2E6IHJlYnVpbGQgZm9yIGxsdm0xNQoKLS0tCiBzcmNwa2dzL21lc2EvdGVt cGxhdGUgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24o LSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL21lc2EvdGVtcGxhdGUgYi9zcmNwa2dzL21lc2EvdGVt cGxhdGUKaW5kZXggZDlmZjBiMmZmMjNkLi4xMzIyNjNkMzU5OWYgMTAwNjQ0Ci0tLSBhL3NyY3Br Z3MvbWVzYS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL21lc2EvdGVtcGxhdGUKQEAgLTEsNyArMSw3 IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdtZXNhJwogcGtnbmFtZT1tZXNhCiB2ZXJzaW9uPTIy LjMuNQotcmV2aXNpb249MQorcmV2aXNpb249MgogYnVpbGRfc3R5bGU9bWVzb24KIGNvbmZpZ3Vy ZV9hcmdzPSItRGdsdm5kPXRydWUgLURzaGFyZWQtZ2xhcGk9ZW5hYmxlZCAtRGdibT1lbmFibGVk IC1EZWdsPWVuYWJsZWQKICAtRG9zbWVzYT10cnVlIC1EZ2xlczE9ZW5hYmxlZCAtRGdsZXMyPWVu YWJsZWQgLURnbHg9ZHJpIC1EZHJpMz1lbmFibGVkCgpGcm9tIDlhNDkxNjczNmMzODA5ZGM2MjVh ZTVhYTU1NmM3OGI4ODI2NjMzNjQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IE1hcmNp biBQdWMgPHRyYW56eXN0b3Jlay5pb0Bwcm90b25tYWlsLmNvbT4KRGF0ZTogVGh1LCA1IEphbiAy MDIzIDE0OjM0OjA0ICswMTAwClN1YmplY3Q6IFtQQVRDSCAwNi8zMl0gYmNjOiByZWJ1aWxkIGZv ciBsbHZtMTUKCi0tLQogc3JjcGtncy9iY2MvdGVtcGxhdGUgfCAyICstCiAxIGZpbGUgY2hhbmdl ZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2Jj Yy90ZW1wbGF0ZSBiL3NyY3BrZ3MvYmNjL3RlbXBsYXRlCmluZGV4IDc1MjY1ODBmMTdlZC4uYmRi Y2ZmNzIyN2EwIDEwMDY0NAotLS0gYS9zcmNwa2dzL2JjYy90ZW1wbGF0ZQorKysgYi9zcmNwa2dz L2JjYy90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2JjYycK IHBrZ25hbWU9YmNjCiB2ZXJzaW9uPTAuMjYuMAotcmV2aXNpb249MgorcmV2aXNpb249MwogYnVp bGRfc3R5bGU9Y21ha2UKIGNvbmZpZ3VyZV9hcmdzPSItRFJFVklTSU9OPSR7dmVyc2lvbn0gLURF TkFCTEVfTExWTV9TSEFSRUQ9MSIKIGhvc3RtYWtlZGVwZW5kcz0iZmxleCBweXRob24zLXNldHVw dG9vbHMiCgpGcm9tIDJiMjQ2ZmU1OTRiOTZjZGJkODRjMmFhMzA5Njk1ZjJiOTMwYjAxYzcgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IE1hcmNpbiBQdWMgPHRyYW56eXN0b3Jlay5pb0Bw cm90b25tYWlsLmNvbT4KRGF0ZTogVGh1LCA1IEphbiAyMDIzIDE0OjM3OjI1ICswMTAwClN1Ympl Y3Q6IFtQQVRDSCAwNy8zMl0gYnBmdHJhY2U6IHJlYnVpbGQgZm9yIGxsdm0xNQoKLS0tCiBzcmNw a2dzL2JwZnRyYWNlL3RlbXBsYXRlIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9u KCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9icGZ0cmFjZS90ZW1wbGF0 ZSBiL3NyY3BrZ3MvYnBmdHJhY2UvdGVtcGxhdGUKaW5kZXggOTUyNjgyNjYyMTI4Li4yZjAxZGJm Njk1MzAgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvYnBmdHJhY2UvdGVtcGxhdGUKKysrIGIvc3JjcGtn cy9icGZ0cmFjZS90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3Ig J2JwZnRyYWNlJwogcGtnbmFtZT1icGZ0cmFjZQogdmVyc2lvbj0wLjE3LjAKLXJldmlzaW9uPTEK K3JldmlzaW9uPTIKIGFyY2hzPSJ4ODZfNjQqIGFhcmNoNjQqIHBwYzY0KiIKIGJ1aWxkX3N0eWxl PWNtYWtlCiBjb25maWd1cmVfYXJncz0iLURVU0VfU1lTVEVNX0JQRl9CQ0M9T04gLURCVUlMRF9U RVNUSU5HPU9GRiIgIyBuZWVkcyByb290IHRvIHJ1bgoKRnJvbSBjZjdlMzZhOGRkYWEwMDNmMjhh OTk3ZGU5YzFkMjRjMjRkN2ZiN2E0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJj aW4gUHVjIDx0cmFuenlzdG9yZWsuaW9AcHJvdG9ubWFpbC5jb20+CkRhdGU6IFRodSwgNSBKYW4g MjAyMyAxNDo0Mzo1MyArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMDgvMzJdIENhc3RYTUw6IHJlYnVp bGQgZm9yIGxsdm0xNQoKLS0tCiBzcmNwa2dzL0Nhc3RYTUwvdGVtcGxhdGUgfCA2ICsrKy0tLQog MSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9zcmNwa2dzL0Nhc3RYTUwvdGVtcGxhdGUgYi9zcmNwa2dzL0Nhc3RYTUwvdGVtcGxhdGUK aW5kZXggNWQ3ZDk1MDM2NThjLi4yOGM0MjRjNzgwNzMgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvQ2Fz dFhNTC90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL0Nhc3RYTUwvdGVtcGxhdGUKQEAgLTEsNyArMSw3 IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdDYXN0WE1MJwogcGtnbmFtZT1DYXN0WE1MCiB2ZXJz aW9uPTAuNC42Ci1yZXZpc2lvbj0xCityZXZpc2lvbj0yCiBidWlsZF9zdHlsZT1jbWFrZQogY29u ZmlndXJlX2FyZ3M9Ii1EU1BISU5YX01BTj1ZRVMgLURDYXN0WE1MX0lOU1RBTExfTUFOX0RJUj1z aGFyZS9tYW4iCiBob3N0bWFrZWRlcGVuZHM9ImNsYW5nIHB5dGhvbjMtU3BoaW54IgpAQCAtMTIs OCArMTIsOCBAQCBzaG9ydF9kZXNjPSJDLWZhbWlseSBhYnN0cmFjdCBzeW50YXggdHJlZSBYTUwg b3V0cHV0IHRvb2wiCiBtYWludGFpbmVyPSJFdmdlbnkgRXJtYWtvdiA8ZXZnZW55LnYuZXJtYWtv dkBnbWFpbC5jb20+IgogbGljZW5zZT0iQXBhY2hlLTIuMCIKIGhvbWVwYWdlPSJodHRwczovL2dp dGh1Yi5jb20vQ2FzdFhNTC9DYXN0WE1MIgotZGlzdGZpbGVzPSJodHRwczovL2dpdGh1Yi5jb20v Q2FzdFhNTC9DYXN0WE1ML2FyY2hpdmUvdiR7dmVyc2lvbn0udGFyLmd6IgotY2hlY2tzdW09OGRj ZGJjMWYyM2ExMzBlNGJkYjBiMDlmNTdjMzA3NjFhMDJhMzQ2YjRkYjQwMzc1NTUwNDhhZjJhMjkz ZDY2YQorZGlzdGZpbGVzPSJodHRwczovL2dpdGh1Yi5jb20vQ2FzdFhNTC9DYXN0WE1ML2FyY2hp dmUvcmVmcy90YWdzL3Yke3ZlcnNpb259LnRhci5neiIKK2NoZWNrc3VtPWJiOTAyNGVjOWVhNTA4 MmUwZDUyN2YxOWJmM2MyZGY3OWYxNjk5ZjU0YjZjZWMxNjhjMDI0ZTcyN2IzMmU2ZDEKIAogcG9z dF9pbnN0YWxsKCkgewogCXJtIC1yICR7REVTVERJUn0vdXNyL3NoYXJlL2Nhc3R4bWwvY2xhbmcv aW5jbHVkZQoKRnJvbSAyYWYyZmJjYTE1ZWVkYjEyOGMxZTg0ZjkzODI3NjYyNDNhOThkNjZmIE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJjaW4gUHVjIDx0cmFuenlzdG9yZWsuaW9A cHJvdG9ubWFpbC5jb20+CkRhdGU6IFRodSwgNSBKYW4gMjAyMyAxNDo0ODo1NSArMDEwMApTdWJq ZWN0OiBbUEFUQ0ggMDkvMzJdIGNjbHM6IHJlYnVpbGQgZm9yIGxsdm0xNQoKLS0tCiBzcmNwa2dz L2NjbHMvdGVtcGxhdGUgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEg ZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2NjbHMvdGVtcGxhdGUgYi9zcmNwa2dz L2NjbHMvdGVtcGxhdGUKaW5kZXggODJmYTYxOTMzODc4Li5lY2M5ZjNlMzhhNWQgMTAwNjQ0Ci0t LSBhL3NyY3BrZ3MvY2Nscy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2NjbHMvdGVtcGxhdGUKQEAg LTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdjY2xzJwogcGtnbmFtZT1jY2xzCiB2 ZXJzaW9uPTAuMjAyMjA3MjkKLXJldmlzaW9uPTEKK3JldmlzaW9uPTIKIGJ1aWxkX3N0eWxlPWNt YWtlCiBob3N0bWFrZWRlcGVuZHM9ImNsYW5nLXRvb2xzLWV4dHJhIgogbWFrZWRlcGVuZHM9ImNs YW5nLXRvb2xzLWV4dHJhIGxpYnhtbDItZGV2ZWwgbGx2bSBuY3Vyc2VzLWRldmVsIHJhcGlkanNv biB6bGliLWRldmVsIgoKRnJvbSBjNWU5MzRhM2FlOTIzYjZjMTRlNjY3YmE1OTNlZjlkZTU0MDJh N2U0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJjaW4gUHVjIDx0cmFuenlzdG9y ZWsuaW9AcHJvdG9ubWFpbC5jb20+CkRhdGU6IFRodSwgNSBKYW4gMjAyMyAxNDo1MjoxNCArMDEw MApTdWJqZWN0OiBbUEFUQ0ggMTAvMzJdIGluY2x1ZGUtd2hhdC15b3UtdXNlOiB1cGRhdGUgdG8g MC4xOQoKLS0tCiBzcmNwa2dzL2luY2x1ZGUtd2hhdC15b3UtdXNlL3RlbXBsYXRlIHwgNCArKy0t CiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL3NyY3BrZ3MvaW5jbHVkZS13aGF0LXlvdS11c2UvdGVtcGxhdGUgYi9zcmNwa2dzL2lu Y2x1ZGUtd2hhdC15b3UtdXNlL3RlbXBsYXRlCmluZGV4IGQzNjU1NzA5YzIwYy4uMWEzMGJjMDRi YjJkIDEwMDY0NAotLS0gYS9zcmNwa2dzL2luY2x1ZGUtd2hhdC15b3UtdXNlL3RlbXBsYXRlCisr KyBiL3NyY3BrZ3MvaW5jbHVkZS13aGF0LXlvdS11c2UvdGVtcGxhdGUKQEAgLTEsNiArMSw2IEBA CiAjIFRlbXBsYXRlIGZpbGUgZm9yICdpbmNsdWRlLXdoYXQteW91LXVzZScKIHBrZ25hbWU9aW5j bHVkZS13aGF0LXlvdS11c2UKLXZlcnNpb249MC4xNgordmVyc2lvbj0wLjE5CiByZXZpc2lvbj0x CiBidWlsZF9zdHlsZT1jbWFrZQogY29uZmlndXJlX2FyZ3M9Ii1ESVdZVV9MTFZNX1JPT1RfUEFU SD0ke1hCUFNfQ1JPU1NfQkFTRX0vdXNyICIKQEAgLTExLDcgKzExLDcgQEAgbWFpbnRhaW5lcj0i TGVhaCBOZXVraXJjaGVuIDxsZWFoQHZ1eHUub3JnPiIKIGxpY2Vuc2U9Ik5DU0EiCiBob21lcGFn ZT0iaHR0cHM6Ly9pbmNsdWRlLXdoYXQteW91LXVzZS5vcmcvIgogZGlzdGZpbGVzPSJodHRwczov L2luY2x1ZGUtd2hhdC15b3UtdXNlLm9yZy9kb3dubG9hZHMvJHtwa2duYW1lfS0ke3ZlcnNpb259 LnNyYy50YXIuZ3oiCi1jaGVja3N1bT04ZDZmYzliMjU1MzQzYmMxZTVlYzQ1OWUzOTUxMmRmMWQ1 MWM2MGUwMzU2Mjk4NWUwMDc2MDM2MTE5ZmY1YTFjCitjaGVja3N1bT0yYjEwMTU3YjYwZWEwOGFk YzA4ZTM4OTZiNDkyMWM3M2ZjYWRkNWVjNGViNjUyYjI5YTM0MTI5ZDUwMWU1ZWUwCiBweXRob25f dmVyc2lvbj0zCiAKIHBvc3RfaW5zdGFsbCgpIHsKCkZyb20gYzVkMzdlMmUwNGRlZmE0MWJmZmZm NzM1YmY2YTBlNzY5MzE1OWMzNiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogTWFyY2lu IFB1YyA8dHJhbnp5c3RvcmVrLmlvQHByb3Rvbm1haWwuY29tPgpEYXRlOiBGcmksIDYgSmFuIDIw MjMgMTc6MTE6MDQgKzAxMDAKU3ViamVjdDogW1BBVENIIDExLzMyXSBydGFnczogcmVidWlsZCBm b3IgbGx2bTE1CgotLS0KIHNyY3BrZ3MvcnRhZ3MvdGVtcGxhdGUgfCAyICstCiAxIGZpbGUgY2hh bmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dz L3J0YWdzL3RlbXBsYXRlIGIvc3JjcGtncy9ydGFncy90ZW1wbGF0ZQppbmRleCBiNDk2YTFiMGU3 MjEuLjliMTYxZTY5MGQ3NiAxMDA2NDQKLS0tIGEvc3JjcGtncy9ydGFncy90ZW1wbGF0ZQorKysg Yi9zcmNwa2dzL3J0YWdzL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxl IGZvciAncnRhZ3MnCiBwa2duYW1lPXJ0YWdzCiB2ZXJzaW9uPTIuMzgKLXJldmlzaW9uPTUKK3Jl dmlzaW9uPTYKIGJ1aWxkX3N0eWxlPWNtYWtlCiAjIERvbid0IHJ1biB0ZXN0cyBpbiBkb19pbnN0 YWxsLCBwbGVhc2UuCiBjb25maWd1cmVfYXJncz0iLURTS0lQX0NURVNUPVRSVUUiCgpGcm9tIGRj MTA1MTU2MmZlODJmOGU3OTVjMTM3NzY4NDc0ZDkxNzQzNzY3NWYgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206IE1hcmNpbiBQdWMgPHRyYW56eXN0b3Jlay5pb0Bwcm90b25tYWlsLmNvbT4K RGF0ZTogRnJpLCA2IEphbiAyMDIzIDE3OjE0OjE0ICswMTAwClN1YmplY3Q6IFtQQVRDSCAxMi8z Ml0ganVDaSsrOiByZWJ1aWxkIGZvciBsbHZtMTUKCi0tLQogc3JjcGtncy9qdUNpKysvdGVtcGxh dGUgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkK CmRpZmYgLS1naXQgYS9zcmNwa2dzL2p1Q2krKy90ZW1wbGF0ZSBiL3NyY3BrZ3MvanVDaSsrL3Rl bXBsYXRlCmluZGV4IGMxOTY5MjM3ZjExZC4uNDE2YmRlN2NjNGQwIDEwMDY0NAotLS0gYS9zcmNw a2dzL2p1Q2krKy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2p1Q2krKy90ZW1wbGF0ZQpAQCAtMSw3 ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2p1Q2krKycKIHBrZ25hbWU9anVDaSsrCiB2 ZXJzaW9uPTEuNy4yCi1yZXZpc2lvbj0yCityZXZpc2lvbj0zCiBfbGliY2xhbmdtbV9jb21taXQ9 Ijk3MDRiOWI2ZGUwOTgyYTU4OGZhNDE3NDExNTdkNTY0MGFmZWRmMzAiCiBfdGlueV9jb21taXQ9 IjgzOWZmODA2ZGM0NDdmZjQ5YWY4MGY5YTllYWE3OTQ5Zjc3MGY4ZTUiCiBjcmVhdGVfd3Jrc3Jj PXllcwoKRnJvbSA0NWY5NDQ5MzM1MzY1ZTkwMmZmZmFjNzc5ZTZjODgxZWUwMmJkODZhIE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJjaW4gUHVjIDx0cmFuenlzdG9yZWsuaW9AcHJv dG9ubWFpbC5jb20+CkRhdGU6IFNhdCwgNyBKYW4gMjAyMyAxMTozMToxNCArMDEwMApTdWJqZWN0 OiBbUEFUQ0ggMTMvMzJdIHF0NTogcmVidWlsZCBmb3IgbGx2bTE1CgotLS0KIHNyY3BrZ3MvcXQ1 L3RlbXBsYXRlIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0 aW9uKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDUvdGVtcGxhdGUgYi9zcmNwa2dzL3F0NS90 ZW1wbGF0ZQppbmRleCBmNGY5ZjViNTM0NGEuLmI1MTdiNDllYWQyZCAxMDA2NDQKLS0tIGEvc3Jj cGtncy9xdDUvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9xdDUvdGVtcGxhdGUKQEAgLTUsNyArNSw3 IEBAIHBrZ25hbWU9cXQ1CiB2ZXJzaW9uPTUuMTUuNysyMDIyMTExOQogIyBjb21taXQgZjhjOWZi MzA0YmMzZTUzYjNhYTA3Zjk2MmNkNzRlOTE2MGRlY2NjYwogIyBiYXNlIHJlcG86IGh0dHBzOi8v aW52ZW50LmtkZS5vcmcvcXQvcXQvcXQ1Ci1yZXZpc2lvbj0xCityZXZpc2lvbj0yCiBidWlsZF9z dHlsZT1tZXRhCiBob3N0bWFrZWRlcGVuZHM9ImNtYWtlIGNsYW5nIGZsZXggcGVybCBnbGliLWRl dmVsIHBrZy1jb25maWcKICBweXRob24gcmUyYyBydWJ5IHdoaWNoIgoKRnJvbSBhM2UwNWQxMDM0 NzY4OTE4MzdmNzY0Y2UwYzk4NWZkN2E5YWQ4NzZhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiBNYXJjaW4gUHVjIDx0cmFuenlzdG9yZWsuaW9AcHJvdG9ubWFpbC5jb20+CkRhdGU6IE1v biwgOSBKYW4gMjAyMyAwMToyMjoxOCArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMTQvMzJdIGNvZGVs aXRlOiByZWJ1aWxkIGZvciBsbHZtMTUKCi0tLQogc3JjcGtncy9jb2RlbGl0ZS90ZW1wbGF0ZSB8 IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlm ZiAtLWdpdCBhL3NyY3BrZ3MvY29kZWxpdGUvdGVtcGxhdGUgYi9zcmNwa2dzL2NvZGVsaXRlL3Rl bXBsYXRlCmluZGV4IDZiOGIwMDdjOGE0My4uYzYxMTVlMDI3NGNlIDEwMDY0NAotLS0gYS9zcmNw a2dzL2NvZGVsaXRlL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvY29kZWxpdGUvdGVtcGxhdGUKQEAg LTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdjb2RlbGl0ZScKIHBrZ25hbWU9Y29k ZWxpdGUKIHZlcnNpb249MTYuMC4wCi1yZXZpc2lvbj0yCityZXZpc2lvbj0zCiBjcmVhdGVfd3Jr c3JjPXllcwogYnVpbGRfc3R5bGU9Y21ha2UKIGJ1aWxkX2hlbHBlcj1jbWFrZS13eFdpZGdldHMt Z3RrMwoKRnJvbSA0ODIzZGY5MjczODA2NjIzNWM1YTYxYTc0ZGYxMzczOWZiOGQ3OTJmIE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJjaW4gUHVjIDx0cmFuenlzdG9yZWsuaW9AcHJv dG9ubWFpbC5jb20+CkRhdGU6IE1vbiwgOSBKYW4gMjAyMyAwMTo1ODoyMSArMDEwMApTdWJqZWN0 OiBbUEFUQ0ggMTUvMzJdIGtkZXZlbG9wOiByZWJ1aWxkIGZvciBsbHZtMTUKCi0tLQogc3JjcGtn cy9rZGV2ZWxvcC90ZW1wbGF0ZSB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigr KSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mva2RldmVsb3AvdGVtcGxhdGUg Yi9zcmNwa2dzL2tkZXZlbG9wL3RlbXBsYXRlCmluZGV4IDVlYjI3NTU4MzEzOC4uYzMyZWU1MjQw YTQ0IDEwMDY0NAotLS0gYS9zcmNwa2dzL2tkZXZlbG9wL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3Mv a2RldmVsb3AvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdr ZGV2ZWxvcCcKIHBrZ25hbWU9a2RldmVsb3AKIHZlcnNpb249MjIuMTIuMQotcmV2aXNpb249MQor cmV2aXNpb249MgogYnVpbGRfc3R5bGU9Y21ha2UKIGNvbmZpZ3VyZV9hcmdzPSItREJVSUxEX1RF U1RJTkc9T0ZGIgogaG9zdG1ha2VkZXBlbmRzPSJleHRyYS1jbWFrZS1tb2R1bGVzIHF0NS1xbWFr ZSBxdDUtaG9zdC10b29scyBxdDUtdG9vbHMKCkZyb20gOTMzOTNmYjg4NTY1M2IyMTFkNTQ4ODE1 MmJiYTliZGJlM2Y3ZWQ3MSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogTWFyY2luIFB1 YyA8dHJhbnp5c3RvcmVrLmlvQHByb3Rvbm1haWwuY29tPgpEYXRlOiBNb24sIDE2IEphbiAyMDIz IDE0OjQzOjQ3ICswMTAwClN1YmplY3Q6IFtQQVRDSCAxNi8zMl0gemlnOiB1cGRhdGUgdG8gMC4x MC4xCgotLS0KIC4uLi8wMDAxLXN0ZC5idWlsZC1maXgtaGFuZGxpbmctb2YtRGNwdS5wYXRjaCB8 IDQ4IC0tLS0tLS0tLS0tLS0tLS0tLS0KIHNyY3BrZ3MvemlnL3RlbXBsYXRlICAgICAgICAgICAg ICAgICAgICAgICAgICB8IDEwICsrLS0KIDIgZmlsZXMgY2hhbmdlZCwgNiBpbnNlcnRpb25zKCsp LCA1MiBkZWxldGlvbnMoLSkKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3ppZy9wYXRjaGVz LzAwMDEtc3RkLmJ1aWxkLWZpeC1oYW5kbGluZy1vZi1EY3B1LnBhdGNoCgpkaWZmIC0tZ2l0IGEv c3JjcGtncy96aWcvcGF0Y2hlcy8wMDAxLXN0ZC5idWlsZC1maXgtaGFuZGxpbmctb2YtRGNwdS5w YXRjaCBiL3NyY3BrZ3MvemlnL3BhdGNoZXMvMDAwMS1zdGQuYnVpbGQtZml4LWhhbmRsaW5nLW9m LURjcHUucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQxMDFmMjQ0NTliYi4u MDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvemlnL3BhdGNoZXMvMDAwMS1zdGQuYnVpbGQtZml4 LWhhbmRsaW5nLW9mLURjcHUucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw0OCArMCwwIEBACi1G cm9tIDFlOGNkYWNlN2FkMzI0YTQyMjI4YWViNWNkNmViOGRkMTU0Mjk0MTMgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCi1Gcm9tOiBJc2FhYyBGcmV1bmQgPGlmcmV1bmRAaWZyZXVuZC54eXo+Ci1E YXRlOiBUdWUsIDIxIFNlcCAyMDIxIDIxOjA2OjEwICswMjAwCi1TdWJqZWN0OiBbUEFUQ0hdIHN0 ZC5idWlsZDogZml4IGhhbmRsaW5nIG9mIC1EY3B1Ci0KLUN1cnJlbnRseSAtRGNwdSBpcyBjb21w bGV0ZWx5IGlnbm9yZWQgaWYgLUR0YXJnZXQgaXNuJ3QgcGFzc2VkIGFzIHdlbGwuCi1GdXJ0aGVy LCAtRGNwdT1iYXNlbGluZSBpcyBpZ25vcmVkIGV2ZW4gaWYgLUR0YXJnZXQ9bmF0aXZlIGlzIHBh c3NlZC4KLQotVGhpcyBwYXRjaCBmaXhlcyB0aGVzZSAyIGlzc3VlcywgYWx3YXlzIHJlc3BlY3Rp bmcgdGhlIC1EY3B1IG9wdGlvbiBpZgotcHJlc2VudC4KLS0tLQotIGxpYi9zdGQvYnVpbGQuemln IHwgMTMgKysrKysrKy0tLS0tLQotIDEgZmlsZSBjaGFuZ2VkLCA3IGluc2VydGlvbnMoKyksIDYg ZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9saWIvc3RkL2J1aWxkLnppZyBiL2xpYi9zdGQv YnVpbGQuemlnCi1pbmRleCA5YjdlYmIxZjQuLmUzOTg1MjlmOSAxMDA2NDQKLS0tLSBhL2xpYi9z dGQvYnVpbGQuemlnCi0rKysgYi9saWIvc3RkL2J1aWxkLnppZwotQEAgLTY4NSw3ICs2ODUsMTEg QEAgcHViIGNvbnN0IEJ1aWxkZXIgPSBzdHJ1Y3QgewotICAgICAgICAgKTsKLSAgICAgICAgIGNv bnN0IG1jcHUgPSBzZWxmLm9wdGlvbihbXWNvbnN0IHU4LCAiY3B1IiwgIlRhcmdldCBDUFUiKTsK LSAKLS0gICAgICAgIGNvbnN0IHRyaXBsZSA9IG1heWJlX3RyaXBsZSBvcmVsc2UgcmV0dXJuIGFy Z3MuZGVmYXVsdF90YXJnZXQ7Ci0rICAgICAgICBpZiAobWF5YmVfdHJpcGxlID09IG51bGwgYW5k IG1jcHUgPT0gbnVsbCkgewotKyAgICAgICAgICAgIHJldHVybiBhcmdzLmRlZmF1bHRfdGFyZ2V0 OwotKyAgICAgICAgfQotKwotKyAgICAgICAgY29uc3QgdHJpcGxlID0gbWF5YmVfdHJpcGxlIG9y ZWxzZSAibmF0aXZlIjsKLSAKLSAgICAgICAgIHZhciBkaWFnczogQ3Jvc3NUYXJnZXQuUGFyc2VP cHRpb25zLkRpYWdub3N0aWNzID0gLnt9OwotICAgICAgICAgY29uc3Qgc2VsZWN0ZWRfdGFyZ2V0 ID0gQ3Jvc3NUYXJnZXQucGFyc2UoLnsKLUBAIC0yNDUxLDExICsyNDU1LDggQEAgcHViIGNvbnN0 IExpYkV4ZU9ialN0ZXAgPSBzdHJ1Y3QgewotIAotICAgICAgICAgICAgIGlmIChwb3B1bGF0ZWRf Y3B1X2ZlYXR1cmVzLmVxbChjcm9zcy5jcHUuZmVhdHVyZXMpKSB7Ci0gICAgICAgICAgICAgICAg IC8vIFRoZSBDUFUgbmFtZSBhbG9uZSBpcyBzdWZmaWNpZW50LgotLSAgICAgICAgICAgICAgICAv LyBJZiBpdCBpcyB0aGUgYmFzZWxpbmUgQ1BVLCBubyBjb21tYW5kIGxpbmUgYXJncyBhcmUgcmVx dWlyZWQuCi0tICAgICAgICAgICAgICAgIGlmIChjcm9zcy5jcHUubW9kZWwgIT0gc3RkLlRhcmdl dC5DcHUuYmFzZWxpbmUoY3Jvc3MuY3B1LmFyY2gpLm1vZGVsKSB7Ci0tICAgICAgICAgICAgICAg ICAgICB0cnkgemlnX2FyZ3MuYXBwZW5kKCItbWNwdSIpOwotLSAgICAgICAgICAgICAgICAgICAg dHJ5IHppZ19hcmdzLmFwcGVuZChjcm9zcy5jcHUubW9kZWwubmFtZSk7Ci0tICAgICAgICAgICAg ICAgIH0KLSsgICAgICAgICAgICAgICAgdHJ5IHppZ19hcmdzLmFwcGVuZCgiLW1jcHUiKTsKLSsg ICAgICAgICAgICAgICAgdHJ5IHppZ19hcmdzLmFwcGVuZChjcm9zcy5jcHUubW9kZWwubmFtZSk7 Ci0gICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgdmFyIG1jcHVfYnVmZmVy ID0gc3RkLkFycmF5TGlzdCh1OCkuaW5pdChidWlsZGVyLmFsbG9jYXRvcik7Ci0gCi0tLSAKLTIu MzMuMQotCmRpZmYgLS1naXQgYS9zcmNwa2dzL3ppZy90ZW1wbGF0ZSBiL3NyY3BrZ3MvemlnL3Rl bXBsYXRlCmluZGV4IDcyOGM1YTY0ZTlkZi4uOTgwN2Y3YWIyMDZiIDEwMDY0NAotLS0gYS9zcmNw a2dzL3ppZy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3ppZy90ZW1wbGF0ZQpAQCAtMSwxNyArMSwx OSBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnemlnJwogcGtnbmFtZT16aWcKLXZlcnNpb249MC44 LjEKLXJldmlzaW9uPTIKK3ZlcnNpb249MC4xMC4xCityZXZpc2lvbj0xCiBhcmNocz0ieDg2XzY0 KiBhYXJjaDY0KiIKIGJ1aWxkX3N0eWxlPWNtYWtlCiBtYWtlX2NtZD1tYWtlCi1tYWtlZGVwZW5k cz0iY2xhbmcgbGx2bTEyIGxsZC1kZXZlbCIKKyMgd2UgYWRkIHhtbDIsIHpzdGQsIHpsaWIgYW5k IG5jdXJzZXMKKyMgYmVjYXVzZSBvdXIgbGxkIGlzIHN0YXRpYy1vbmx5IGFuZCByZXF1aXJlcyB0 aG9zZSB0byB3b3JrCittYWtlZGVwZW5kcz0iY2xhbmcgbGx2bTE1IGxsZC1kZXZlbCBsaWJ4bWwy LWRldmVsIGxpYnpzdGQtZGV2ZWwgbmN1cnNlcy1kZXZlbCB6bGliLWRldmVsIgogc2hvcnRfZGVz Yz0iUHJvZ3JhbW1pbmcgbGFuZ3VhZ2UgZGVzaWduZWQgZm9yIHJvYnVzdG5lc3MsIG9wdGltYWxp dHksIGFuZCBjbGFyaXR5IgogbWFpbnRhaW5lcj0iSXNhYWMgRnJldW5kIDxtYWlsQGlzYWFjZnJl dW5kLmNvbT4iCiBsaWNlbnNlPSJNSVQiCiBob21lcGFnZT0iaHR0cHM6Ly96aWdsYW5nLm9yZyIK IGRpc3RmaWxlcz0iaHR0cHM6Ly96aWdsYW5nLm9yZy9kb3dubG9hZC8ke3ZlcnNpb259L3ppZy0k e3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPThjNDI4ZTE0YTBhODljYjdhMTVhNjc2ODQyNGEz NzQ0MjI5Mjg1OGNkYjY5NWUyZWI1MDNmYTNjN2JmNDdmMWEKK2NoZWNrc3VtPTY5NDU5YmM4MDQz MzNkZjA3N2Q0NDFlZjA1MmZmYTE0M2Q1MzAxMmI2NTVhNTFmMDRjZmVmMTQxNGMwNDE2OGMKIG5v cGllPXllcwogbm9jcm9zcz15ZXMKIAoKRnJvbSA5NzU1ODc5YzBhODMzZTQ4ZDI3MzFiOWIzMmNh MDgwZGM1OGE5M2YyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJjaW4gUHVjIDx0 cmFuenlzdG9yZWsuaW9AcHJvdG9ubWFpbC5jb20+CkRhdGU6IFR1ZSwgMjQgSmFuIDIwMjMgMTQ6 MDM6NTEgKzAxMDAKU3ViamVjdDogW1BBVENIIDE3LzMyXSByaXZlcjogdXBkYXRlIHRvIDAuMi4z CgotLS0KIC4uLmJsZS1QSUUtZm9yLXJpdmVyLXJpdmVyY3RsLXJpdmVydGlsZS5wYXRjaCB8IDQy IC0tLS0tLS0tLS0tLS0tLS0tLS0KIHNyY3BrZ3Mvcml2ZXIvdGVtcGxhdGUgICAgICAgICAgICAg ICAgICAgICAgICB8IDEwICsrLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKSwg NDcgZGVsZXRpb25zKC0pCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9yaXZlci9wYXRjaGVz LzAwMDEtRW5hYmxlLVBJRS1mb3Itcml2ZXItcml2ZXJjdGwtcml2ZXJ0aWxlLnBhdGNoCgpkaWZm IC0tZ2l0IGEvc3JjcGtncy9yaXZlci9wYXRjaGVzLzAwMDEtRW5hYmxlLVBJRS1mb3Itcml2ZXIt cml2ZXJjdGwtcml2ZXJ0aWxlLnBhdGNoIGIvc3JjcGtncy9yaXZlci9wYXRjaGVzLzAwMDEtRW5h YmxlLVBJRS1mb3Itcml2ZXItcml2ZXJjdGwtcml2ZXJ0aWxlLnBhdGNoCmRlbGV0ZWQgZmlsZSBt b2RlIDEwMDY0NAppbmRleCBlY2M2ODMwMmRiMDkuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dz L3JpdmVyL3BhdGNoZXMvMDAwMS1FbmFibGUtUElFLWZvci1yaXZlci1yaXZlcmN0bC1yaXZlcnRp bGUucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw0MiArMCwwIEBACi1Gcm9tIDc1OWMxYzdhOTE1 MDgzZjNkYTQ2OTYwZmY4MmZhMmEzNTY2YTcwNjUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1G cm9tOiBJc2FhYyBGcmV1bmQgPG1haWxAaXNhYWNmcmV1bmQuY29tPgotRGF0ZTogV2VkLCAzIE5v diAyMDIxIDE0OjIxOjM1ICswMTAwCi1TdWJqZWN0OiBbUEFUQ0hdIEVuYWJsZSBQSUUgZm9yIHJp dmVyLCByaXZlcmN0bCwgcml2ZXJ0aWxlCi0KLVRoZXJlIGlzIHNhZGx5IG5vdCB5ZXQgYSBzdGFu ZGFyZCB3YXkgdG8gZG8gdGhpcyBleHBvc2VkIGJ5IHRoZSB6aWcKLWJ1aWxkIHN5c3RlbS4gU2Vl OiBodHRwczovL2dpdGh1Yi5jb20vemlnbGFuZy96aWcvaXNzdWVzLzcyMDEKLS0tLQotIGJ1aWxk LnppZyB8IDMgKysrCi0gMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKQotCi1kaWZmIC0t Z2l0IGEvYnVpbGQuemlnIGIvYnVpbGQuemlnCi1pbmRleCBkNTYxZjQ5Li44YWM5YTRlIDEwMDY0 NAotLS0tIGEvYnVpbGQuemlnCi0rKysgYi9idWlsZC56aWcKLUBAIC04NSw2ICs4NSw3IEBAIHB1 YiBmbiBidWlsZChiOiAqemJzLkJ1aWxkZXIpICF2b2lkIHsKLSAgICAgICAgIGNvbnN0IHJpdmVy ID0gYi5hZGRFeGVjdXRhYmxlKCJyaXZlciIsICJyaXZlci9tYWluLnppZyIpOwotICAgICAgICAg cml2ZXIuc2V0VGFyZ2V0KHRhcmdldCk7Ci0gICAgICAgICByaXZlci5zZXRCdWlsZE1vZGUobW9k ZSk7Ci0rICAgICAgICByaXZlci5waWUgPSB0cnVlOwotICAgICAgICAgcml2ZXIuYWRkQnVpbGRP cHRpb24oYm9vbCwgInh3YXlsYW5kIiwgeHdheWxhbmQpOwotICAgICAgICAgcml2ZXIuYWRkQnVp bGRPcHRpb24oWzowXWNvbnN0IHU4LCAidmVyc2lvbiIsIGZ1bGxfdmVyc2lvbik7Ci0gCi1AQCAt OTcsNiArOTgsNyBAQCBwdWIgZm4gYnVpbGQoYjogKnpicy5CdWlsZGVyKSAhdm9pZCB7Ci0gICAg ICAgICBjb25zdCByaXZlcmN0bCA9IGIuYWRkRXhlY3V0YWJsZSgicml2ZXJjdGwiLCAicml2ZXJj dGwvbWFpbi56aWciKTsKLSAgICAgICAgIHJpdmVyY3RsLnNldFRhcmdldCh0YXJnZXQpOwotICAg ICAgICAgcml2ZXJjdGwuc2V0QnVpbGRNb2RlKG1vZGUpOwotKyAgICAgICAgcml2ZXJjdGwucGll ID0gdHJ1ZTsKLSAgICAgICAgIHJpdmVyY3RsLmFkZEJ1aWxkT3B0aW9uKFs6MF1jb25zdCB1OCwg InZlcnNpb24iLCBmdWxsX3ZlcnNpb24pOwotIAotICAgICAgICAgcml2ZXJjdGwuc3RlcC5kZXBl bmRPbigmc2Nhbm5lci5zdGVwKTsKLUBAIC0xMTQsNiArMTE2LDcgQEAgcHViIGZuIGJ1aWxkKGI6 ICp6YnMuQnVpbGRlcikgIXZvaWQgewotICAgICAgICAgY29uc3Qgcml2ZXJ0aWxlID0gYi5hZGRF eGVjdXRhYmxlKCJyaXZlcnRpbGUiLCAicml2ZXJ0aWxlL21haW4uemlnIik7Ci0gICAgICAgICBy aXZlcnRpbGUuc2V0VGFyZ2V0KHRhcmdldCk7Ci0gICAgICAgICByaXZlcnRpbGUuc2V0QnVpbGRN b2RlKG1vZGUpOwotKyAgICAgICAgcml2ZXJ0aWxlLnBpZSA9IHRydWU7Ci0gICAgICAgICByaXZl cnRpbGUuYWRkQnVpbGRPcHRpb24oWzowXWNvbnN0IHU4LCAidmVyc2lvbiIsIGZ1bGxfdmVyc2lv bik7Ci0gCi0gICAgICAgICByaXZlcnRpbGUuc3RlcC5kZXBlbmRPbigmc2Nhbm5lci5zdGVwKTsK LS0tIAotMi4zMy4xCi0KZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvcml2ZXIvdGVtcGxhdGUgYi9zcmNw a2dzL3JpdmVyL3RlbXBsYXRlCmluZGV4IDM5MDY4NThkNTA3ZS4uNDMxYWE0YmQ4ZThlIDEwMDY0 NAotLS0gYS9zcmNwa2dzL3JpdmVyL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3Mvcml2ZXIvdGVtcGxh dGUKQEAgLTEsMTggKzEsMTggQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3JpdmVyJwogcGtnbmFt ZT1yaXZlcgotdmVyc2lvbj0wLjEuMQotcmV2aXNpb249MgordmVyc2lvbj0wLjIuMworcmV2aXNp b249MQogYnVpbGRfc3R5bGU9emlnLWJ1aWxkCi1jb25maWd1cmVfYXJncz0iJCh2b3B0X2lmIHh3 YXlsYW5kIC1EeHdheWxhbmQpIgorY29uZmlndXJlX2FyZ3M9IiQodm9wdF9pZiB4d2F5bGFuZCAt RHh3YXlsYW5kKSAtRHBpZSIKIGhvc3RtYWtlZGVwZW5kcz0icGtnLWNvbmZpZyB3YXlsYW5kLWRl dmVsIHNjZG9jIgotbWFrZWRlcGVuZHM9Indscm9vdHMwLjE1LWRldmVsIGxpYmV2ZGV2LWRldmVs IgorbWFrZWRlcGVuZHM9Indscm9vdHMtZGV2ZWwgbGliZXZkZXYtZGV2ZWwiCiBkZXBlbmRzPSIk KHZvcHRfaWYgeHdheWxhbmQgeG9yZy1zZXJ2ZXIteHdheWxhbmQpIgogc2hvcnRfZGVzYz0iRHlu YW1pYyB0aWxpbmcgV2F5bGFuZCBjb21wb3NpdG9yIgogbWFpbnRhaW5lcj0iSXNhYWMgRnJldW5k IDxtYWlsQGlzYWFjZnJldW5kLmNvbT4iCiBsaWNlbnNlPSJHUEwtMy4wLW9yLWxhdGVyIgogaG9t ZXBhZ2U9Imh0dHBzOi8vZ2l0aHViLmNvbS9yaXZlcndtL3JpdmVyIgogZGlzdGZpbGVzPSIke2hv bWVwYWdlfS9yZWxlYXNlcy9kb3dubG9hZC92JHt2ZXJzaW9ufS9yaXZlci0ke3ZlcnNpb259LnRh ci5neiIKLWNoZWNrc3VtPTJhMGJjZDQ2NzBlZDllYmQzOWMyNzlmMmJmMTA4MDNmYzY1YzlmM2Vl MjMwN2NlNDA3MjhkZjIzY2U5MTRkMTgKK2NoZWNrc3VtPTdhY2RkMmI5MjllMTZhMjAwMDZiNGJh ZjFmMjllN2E4ZGM3ZjcwY2Y1NzQ3ZTE1MDNhNjEwYTkwZDE2MzcxMzIKIAogYnVpbGRfb3B0aW9u cz0ieHdheWxhbmQiCiBidWlsZF9vcHRpb25zX2RlZmF1bHQ9Inh3YXlsYW5kIgoKRnJvbSBiNGYz ZTk1NTQxMWQ3NTRlNDUzNTRhNGVhOWU5NjQ1MDQ5ZmRlNzZlIE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQpGcm9tOiBNYXJjaW4gUHVjIDx0cmFuenlzdG9yZWsuaW9AcHJvdG9ubWFpbC5jb20+CkRh dGU6IEZyaSwgMTAgRmViIDIwMjMgMTc6MjU6MzIgKzAxMDAKU3ViamVjdDogW1BBVENIIDE4LzMy XSBsaWJjbGM6IHVwZGF0ZSB0byAxNS4wLjcKCi0tLQogc3JjcGtncy9saWJjbGMvdGVtcGxhdGUg fCA4ICsrKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGliY2xjL3RlbXBsYXRlIGIvc3JjcGtncy9saWJj bGMvdGVtcGxhdGUKaW5kZXggNzc5NTE5ZmQ2NjZmLi5hZGI2MGY2YWQxZjEgMTAwNjQ0Ci0tLSBh L3NyY3BrZ3MvbGliY2xjL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvbGliY2xjL3RlbXBsYXRlCkBA IC0xLDkgKzEsMTEgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2xpYmNsYycKIHBrZ25hbWU9bGli Y2xjCi12ZXJzaW9uPTEyLjAuMAordmVyc2lvbj0xNS4wLjcKIHJldmlzaW9uPTEKIGJ1aWxkX3N0 eWxlPWNtYWtlCi1jb25maWd1cmVfYXJncz0iLURDTUFLRV9JTlNUQUxMX1BSRUZJWD0vdXNyIC1E Q01BS0VfQlVJTERfVFlQRT1SZWxlYXNlIgorIyBkaXNhYmxlIGNsc3B2IChmYWlsaW5nIHRlc3Rz LCB3ZSBkb24ndCBzaGlwIGl0KQorY29uZmlndXJlX2FyZ3M9Ii1EQ01BS0VfSU5TVEFMTF9QUkVG SVg9L3VzciAtRENNQUtFX0JVSUxEX1RZUEU9UmVsZWFzZQorIC1ETElCQ0xDX1RBUkdFVFNfVE9f QlVJTEQ9YW1kZ2NuLS07YW1kZ2NuLS1hbWRoc2E7cjYwMC0tO252cHR4LS07bnZwdHg2NC0tO252 cHR4LS1udmlkaWFjbDtudnB0eDY0LS1udmlkaWFjbDtzcGlydi1tZXNhM2QtO3NwaXJ2NjQtbWVz YTNkLSIKIGhvc3RtYWtlZGVwZW5kcz0iY21ha2UgY2xhbmcgbGx2bSBweXRob24zIGxpYmVkaXQt ZGV2ZWwgbGliZmZpLWRldmVsCiAgbmN1cnNlcy1kZXZlbCB6bGliLWRldmVsIFNQSVJWLUxMVk0t VHJhbnNsYXRvciIKIHNob3J0X2Rlc2M9Ik9wZW4gaW1wbGVtZW50YXRpb24gb2YgdGhlIE9wZW5D TCBDIHByb2dyYW1taW5nIGxhbmd1YWdlIgpAQCAtMTEsNyArMTMsNyBAQCBtYWludGFpbmVyPSJP cnBoYW5lZCA8b3JwaGFuQHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iQlNELTMtQ2xhdXNlLCBN SVQiCiBob21lcGFnZT0iaHR0cHM6Ly9saWJjbGMubGx2bS5vcmciCiBkaXN0ZmlsZXM9Imh0dHBz Oi8vZ2l0aHViLmNvbS9sbHZtL2xsdm0tcHJvamVjdC9yZWxlYXNlcy9kb3dubG9hZC9sbHZtb3Jn LSR7dmVyc2lvbn0vbGliY2xjLSR7dmVyc2lvbn0uc3JjLnRhci54eiIKLWNoZWNrc3VtPTZiNzc3 ZWUyY2Q1N2RhMWIxMjJmNzZjMjA4NDYzZjYyMGVlZjUwOGY0MTI4MjEwYzZiMWE5NmJmYjc1Yzc0 ZGMKK2NoZWNrc3VtPTM1NzMxZmVhN2JlMjI0ZjIxYWNmNWJmM2NkOWYwZWQwNThiZjRhZGE1ZWNl YWY3ZjEwZWU5NmUxMzliZDMzODkKIHJlcGxhY2VzPSJsaWJjbGMtZ2l0Pj0wIgogCiBkb19jb25m aWd1cmUoKSB7CgpGcm9tIDIwZjc1MGE0YTQyMjhkODYxMzE5OGE1YjFhMDFhODUyNGVhMTg1OWIg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IE1hcmNpbiBQdWMgPHRyYW56eXN0b3Jlay5p b0Bwcm90b25tYWlsLmNvbT4KRGF0ZTogRnJpLCAxMCBGZWIgMjAyMyAyMDoyMDo0MyArMDEwMApT dWJqZWN0OiBbUEFUQ0ggMTkvMzJdIHNoaWJva2VuMjogdXBkYXRlIHRvIDUuMTUuNwoKLS0tCiBz cmNwa2dzL3NoaWJva2VuMi90ZW1wbGF0ZSB8IDYgKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgMyBp bnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvc2hpYm9r ZW4yL3RlbXBsYXRlIGIvc3JjcGtncy9zaGlib2tlbjIvdGVtcGxhdGUKaW5kZXggOWNlYjhiMzEz ZGU3Li4wODRlY2MzYmExZTEgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mvc2hpYm9rZW4yL3RlbXBsYXRl CisrKyBiL3NyY3BrZ3Mvc2hpYm9rZW4yL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1w bGF0ZSBmaWxlIGZvciAnc2hpYm9rZW4yJwogcGtnbmFtZT1zaGlib2tlbjIKLXZlcnNpb249NS4x NS41Ci1yZXZpc2lvbj0yCit2ZXJzaW9uPTUuMTUuNworcmV2aXNpb249MQogX3BrZ25hbWU9InB5 c2lkZS1zZXR1cC1vcGVuc291cmNlLXNyYy0ke3ZlcnNpb259IgogYnVpbGRfd3Jrc3JjPSJzb3Vy Y2VzL3NoaWJva2VuMiIKIGJ1aWxkX3N0eWxlPWNtYWtlCkBAIC0xNCw3ICsxNCw3IEBAIG1haW50 YWluZXI9InlvcGl0byA8cGllcnJlLmJvdXJnaW5AZnJlZS5mcj4iCiBsaWNlbnNlPSJHUEwtMy4w LW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5xdC5pby9RdF9mb3JfUHl0aG9uL1No aWJva2VuIgogZGlzdGZpbGVzPSJodHRwczovL2Rvd25sb2FkLnF0LmlvL29mZmljaWFsX3JlbGVh c2VzL1F0Rm9yUHl0aG9uL3B5c2lkZTIvUHlTaWRlMi0ke3ZlcnNpb259LXNyYy8ke19wa2duYW1l fS50YXIueHoiCi1jaGVja3N1bT0zOTIwYTRmYjM1MzMwMDI2MGM5YmM0NmZmNzBmMWZiOTc1YzVl N2VmYTIyZTlkNTEyMjI1ODg5MjhjZTE5YjMzCitjaGVja3N1bT1mNjEyMTBhZTI0ZTY4ODJkNWQw Y2EwMDU5MjI5ZTVkYzRmMzVlMmJjYTkyZGQ2Y2FmOTZjMGY0MTk0M2E4Mjk0CiAKIHB5dGhvbl92 ZXJzaW9uPTMKIGV4cG9ydCBDTEFOR19JTlNUQUxMX0RJUj0ke1hCUFNfQ1JPU1NfQkFTRX0vdXNy CgpGcm9tIGM1MGQyNjIyMWFjZmRhMjIwYmZjMmYwMjcxZGNjYmI5MTViZjA1NjkgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCkZyb206IE1hcmNpbiBQdWMgPHRyYW56eXN0b3Jlay5pb0Bwcm90b25t YWlsLmNvbT4KRGF0ZTogVGh1LCAxNiBGZWIgMjAyMyAyMDoxMzowMiArMDEwMApTdWJqZWN0OiBb UEFUQ0ggMjAvMzJdIGNsYXp5OiByZWJ1aWxkIGZvciBsbHZtMTUKCi0tLQogLi4uL3BhdGNoZXMv MDAwMi1sbHZtMTUtY29tcGF0aWJpbGl0eS5wYXRjaCAgIHwgMjIwICsrKysrKysrKysrKysrKysr Kwogc3JjcGtncy9jbGF6eS90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyICst CiAyIGZpbGVzIGNoYW5nZWQsIDIyMSBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCiBjcmVh dGUgbW9kZSAxMDA2NDQgc3JjcGtncy9jbGF6eS9wYXRjaGVzLzAwMDItbGx2bTE1LWNvbXBhdGli aWxpdHkucGF0Y2gKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2NsYXp5L3BhdGNoZXMvMDAwMi1sbHZt MTUtY29tcGF0aWJpbGl0eS5wYXRjaCBiL3NyY3BrZ3MvY2xhenkvcGF0Y2hlcy8wMDAyLWxsdm0x NS1jb21wYXRpYmlsaXR5LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw MDAwMC4uMTgyMTNhNjZmY2ExCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9jbGF6eS9wYXRj aGVzLzAwMDItbGx2bTE1LWNvbXBhdGliaWxpdHkucGF0Y2gKQEAgLTAsMCArMSwyMjAgQEAKK0Zy b20gMjBmY2E1MmRhNzM5ZWJlZmE0N2UzNWY2YjMzOGJiOTlhMGRhM2NmZSBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKK0Zyb206IENyaXN0aWFuIEFkYW0gPGNyaXN0aWFuLmFkYW1AcXQuaW8+CitE YXRlOiBUdWUsIDYgU2VwIDIwMjIgMTY6MzA6MDIgKzAyMDAKK1N1YmplY3Q6IFtQQVRDSF0gQnVp bGQgZml4ZXMgZm9yIExMVk0vQ2xhbmcgMTUuMC4wCisKK0NoYW5nZS1JZDogSWNjMzlhMGIxYWNm ZmI1YTZhNDc5OGIxMjU5ZDhhZDRlN2RkNDdiYzUKKy0tLQorIENNYWtlTGlzdHMudHh0ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfCAgNiArKysrKysKKyBzcmMvUHJlUHJvY2Vzc29yVmlz aXRvci5jcHAgICAgICAgICAgICAgICAgIHwgIDIgKy0KKyBzcmMvUHJlUHJvY2Vzc29yVmlzaXRv ci5oICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KKyBzcmMvU291cmNlQ29tcGF0aWJpbGl0eUhl bHBlcnMuaCAgICAgICAgICAgIHwgMTUgKysrKysrKysrKysrKysrCisgc3JjL1V0aWxzLmNwcCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAzICsrLQorIHNyYy9jaGVja2Jhc2UuY3Bw ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNCArKy0tCisgc3JjL2NoZWNrYmFzZS5oICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA0ICsrLS0KKyBzcmMvY2hlY2tzL21hbnVhbGxl dmVsL3F0Ni1md2QtZml4ZXMuY3BwICAgIHwgIDIgKy0KKyBzcmMvY2hlY2tzL21hbnVhbGxldmVs L3F0Ni1md2QtZml4ZXMuaCAgICAgIHwgIDIgKy0KKyBzcmMvY2hlY2tzL21hbnVhbGxldmVsL3F0 Ni1oZWFkZXItZml4ZXMuY3BwIHwgIDIgKy0KKyBzcmMvY2hlY2tzL21hbnVhbGxldmVsL3F0Ni1o ZWFkZXItZml4ZXMuaCAgIHwgIDIgKy0KKyAxMSBmaWxlcyBjaGFuZ2VkLCAzMyBpbnNlcnRpb25z KCspLCAxMSBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL0NNYWtlTGlzdHMudHh0IGIvQ01h a2VMaXN0cy50eHQKK2luZGV4IDNjNzgwYjBkLi4xMDAxMzVhZiAxMDA2NDQKKy0tLSBhL0NNYWtl TGlzdHMudHh0CisrKysgYi9DTWFrZUxpc3RzLnR4dAorQEAgLTExNCw2ICsxMTQsMTAgQEAgZWxz ZSgpCisgICAgIHNldChjbGFuZ190b29saW5nX3JlZmFjdG9yaW5nX2xpYiBjbGFuZ1Rvb2xpbmdS ZWZhY3RvcikKKyBlbmRpZigpCisgCisraWYgKCR7TExWTV9WRVJTSU9OfSBWRVJTSU9OX0dSRUFU RVJfRVFVQUwgIjE1LjAuMCIpCisrICBzZXQoY2xhbmdfc3VwcG9ydF9saWIgY2xhbmdTdXBwb3J0 KQorK2VuZGlmKCkKKysKKyBtYWNybyhsaW5rX3RvX2xsdm0gbmFtZSBpc19zdGFuZGFsb25lKQor ICAgaWYgKENMQVpZX0xJTktfQ0xBTkdfRFlMSUIpCisgICAgIHRhcmdldF9saW5rX2xpYnJhcmll cygke25hbWV9IGNsYW5nLWNwcCkKK0BAIC0xMzEsNiArMTM1LDcgQEAgbWFjcm8obGlua190b19s bHZtIG5hbWUgaXNfc3RhbmRhbG9uZSkKKyAKKyAgICAgICB0YXJnZXRfbGlua19saWJyYXJpZXMo JHtuYW1lfSAke2NsYW5nX2xpYn0pCisgICAgIGVuZGZvcmVhY2goKQorKyAgICB0YXJnZXRfbGlu a19saWJyYXJpZXMoJHtuYW1lfSAke2NsYW5nX3N1cHBvcnRfbGlifSkKKyAgICAgdGFyZ2V0X2xp bmtfbGlicmFyaWVzKCR7bmFtZX0gY2xhbmdUb29saW5nKQorICAgICB0YXJnZXRfbGlua19saWJy YXJpZXMoJHtuYW1lfSBjbGFuZ1Rvb2xpbmdDb3JlKQorICAgICB0YXJnZXRfbGlua19saWJyYXJp ZXMoJHtuYW1lfSAke2NsYW5nX3Rvb2xpbmdfcmVmYWN0b3JpbmdfbGlifSkKK0BAIC0zMDIsNiAr MzA3LDcgQEAgZWxzZSgpCisgICAgIGNsYW5nRnJvbnRlbmRUb29sCisgICAgIGNsYW5nUmV3cml0 ZQorICAgICBjbGFuZ1NlcmlhbGl6YXRpb24KKysgICAgJHtjbGFuZ19zdXBwb3J0X2xpYn0KKyAg ICAgY2xhbmdUb29saW5nCisgICAgIGNsYW5nU3RhdGljQW5hbHl6ZXJDaGVja2VycworICAgICBj bGFuZ1N0YXRpY0FuYWx5emVyQ29yZQorZGlmZiAtLWdpdCBhL3NyYy9QcmVQcm9jZXNzb3JWaXNp dG9yLmNwcCBiL3NyYy9QcmVQcm9jZXNzb3JWaXNpdG9yLmNwcAoraW5kZXggNWU2M2ExMzEuLjVm ZGZlNWYzIDEwMDY0NAorLS0tIGEvc3JjL1ByZVByb2Nlc3NvclZpc2l0b3IuY3BwCisrKysgYi9z cmMvUHJlUHJvY2Vzc29yVmlzaXRvci5jcHAKK0BAIC0xODUsNyArMTg1LDcgQEAgdm9pZCBQcmVQ cm9jZXNzb3JWaXNpdG9yOjpNYWNyb0V4cGFuZHMoY29uc3QgVG9rZW4gJk1hY3JvTmFtZVRvaywg Y29uc3QgTWFjcm9EZWYKKyAKKyB2b2lkIFByZVByb2Nlc3NvclZpc2l0b3I6OkluY2x1c2lvbkRp cmVjdGl2ZSAoY2xhbmc6OlNvdXJjZUxvY2F0aW9uLCBjb25zdCBjbGFuZzo6VG9rZW4gJiwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhbmc6OlN0cmlu Z1JlZiBGaWxlTmFtZSwgYm9vbCBJc0FuZ2xlZCwgY2xhbmc6OkNoYXJTb3VyY2VSYW5nZSBGaWxl bmFtZVJhbmdlLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBjb25zdCBjbGFuZzo6RmlsZUVudHJ5ICosIGNsYW5nOjpTdHJpbmdSZWYsIGNsYW5nOjpTdHJp bmdSZWYsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNs YXp5OjpPcHRpb25hbEZpbGVFbnRyeVJlZiwgY2xhbmc6OlN0cmluZ1JlZiwgY2xhbmc6OlN0cmlu Z1JlZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u c3QgY2xhbmc6Ok1vZHVsZSAqLCBjbGFuZzo6U3JjTWdyOjpDaGFyYWN0ZXJpc3RpY0tpbmQpCisg eworICAgIGlmIChtX2NpLmdldFByZXByb2Nlc3NvcigpLmlzSW5QcmltYXJ5RmlsZSgpICYmICFj bGF6eTo6ZW5kc1dpdGgoRmlsZU5hbWUuc3RyKCksICIubW9jIikpIHsKK2RpZmYgLS1naXQgYS9z cmMvUHJlUHJvY2Vzc29yVmlzaXRvci5oIGIvc3JjL1ByZVByb2Nlc3NvclZpc2l0b3IuaAoraW5k ZXggZGM4MGZmMzYuLjFiYjE3YTVlIDEwMDY0NAorLS0tIGEvc3JjL1ByZVByb2Nlc3NvclZpc2l0 b3IuaAorKysrIGIvc3JjL1ByZVByb2Nlc3NvclZpc2l0b3IuaAorQEAgLTcxLDcgKzcxLDcgQEAg Y2xhc3MgUHJlUHJvY2Vzc29yVmlzaXRvcgorICAgICAgICAgICAgICAgICAgICAgICBjbGFuZzo6 U291cmNlUmFuZ2UgcmFuZ2UsIGNvbnN0IGNsYW5nOjpNYWNyb0FyZ3MgKikgb3ZlcnJpZGU7Cisg ICAgIHZvaWQgSW5jbHVzaW9uRGlyZWN0aXZlIChjbGFuZzo6U291cmNlTG9jYXRpb24gSGFzaExv YywgY29uc3QgY2xhbmc6OlRva2VuICZJbmNsdWRlVG9rLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgY2xhbmc6OlN0cmluZ1JlZiBGaWxlTmFtZSwgYm9vbCBJc0FuZ2xlZCwgY2xhbmc6 OkNoYXJTb3VyY2VSYW5nZSBGaWxlbmFtZVJhbmdlLAorLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgY29uc3QgY2xhbmc6OkZpbGVFbnRyeSAqRmlsZSwgY2xhbmc6OlN0cmluZ1JlZiBTZWFy Y2hQYXRoLCBjbGFuZzo6U3RyaW5nUmVmIFJlbGF0aXZlUGF0aCwKKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGNsYXp5OjpPcHRpb25hbEZpbGVFbnRyeVJlZiBGaWxlLCBjbGFuZzo6U3Ry aW5nUmVmIFNlYXJjaFBhdGgsIGNsYW5nOjpTdHJpbmdSZWYgUmVsYXRpdmVQYXRoLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2xhbmc6Ok1vZHVsZSAqSW1wb3J0ZWQsIGNs YW5nOjpTcmNNZ3I6OkNoYXJhY3RlcmlzdGljS2luZCBGaWxlVHlwZSkgb3ZlcnJpZGU7CisgcHJp dmF0ZToKKyAgICAgc3RkOjpzdHJpbmcgZ2V0VG9rZW5TcGVsbGluZyhjb25zdCBjbGFuZzo6TWFj cm9EZWZpbml0aW9uICYpIGNvbnN0OworZGlmZiAtLWdpdCBhL3NyYy9Tb3VyY2VDb21wYXRpYmls aXR5SGVscGVycy5oIGIvc3JjL1NvdXJjZUNvbXBhdGliaWxpdHlIZWxwZXJzLmgKK2luZGV4IDRl YTkyM2EyLi5jMWEyM2E0YiAxMDA2NDQKKy0tLSBhL3NyYy9Tb3VyY2VDb21wYXRpYmlsaXR5SGVs cGVycy5oCisrKysgYi9zcmMvU291cmNlQ29tcGF0aWJpbGl0eUhlbHBlcnMuaAorQEAgLTE0NCw2 ICsxNDQsMjEgQEAgaW5saW5lIGJvb2wgY29udGFpbnNfbG93ZXIoY2xhbmc6OlN0cmluZ1JlZiBo YXlzdGFjaywgY2xhbmc6OlN0cmluZ1JlZiBuZWVkbGUpCisgI2VuZGlmCisgfQorIAorKyNpZiBM TFZNX1ZFUlNJT05fTUFKT1IgPj0gMTUKKyt1c2luZyBPcHRpb25hbEZpbGVFbnRyeVJlZiA9IGNs YW5nOjpPcHRpb25hbDxjbGFuZzo6RmlsZUVudHJ5UmVmPjsKKysjZWxzZQorK3VzaW5nIE9wdGlv bmFsRmlsZUVudHJ5UmVmID0gY29uc3QgY2xhbmc6OkZpbGVFbnRyeSo7CisrI2VuZGlmCisrCisr aW5saW5lIGJvb2wgaXNBc2NpaShjbGFuZzo6U3RyaW5nTGl0ZXJhbCAqbHQpCisreworKyNpZiBM TFZNX1ZFUlNJT05fTUFKT1IgPj0gMTUKKysgICAgcmV0dXJuIGx0LT5pc09yZGluYXJ5KCk7Cisr I2Vsc2UKKysgICAgcmV0dXJuIGx0LT5pc0FzY2lpKCk7CisrI2VuZGlmCisrfQorKworIH0KKyAK KyAjZW5kaWYKK2RpZmYgLS1naXQgYS9zcmMvVXRpbHMuY3BwIGIvc3JjL1V0aWxzLmNwcAoraW5k ZXggM2NkZjc4NzYuLjcwZTA1NzdjIDEwMDY0NAorLS0tIGEvc3JjL1V0aWxzLmNwcAorKysrIGIv c3JjL1V0aWxzLmNwcAorQEAgLTI1LDYgKzI1LDcgQEAKKyAjaW5jbHVkZSAiVXRpbHMuaCIKKyAj aW5jbHVkZSAiU3RyaW5nVXRpbHMuaCIKKyAjaW5jbHVkZSAiSGllcmFyY2h5VXRpbHMuaCIKKysj aW5jbHVkZSAiU291cmNlQ29tcGF0aWJpbGl0eUhlbHBlcnMuaCIKKyAjaW5jbHVkZSAiU3RtdEJv ZHlSYW5nZS5oIgorICNpbmNsdWRlICJjbGF6eV9zdGwuaCIKKyAKK0BAIC02NzAsNyArNjcxLDcg QEAgY29uc3QgQ1hYUmVjb3JkRGVjbCAqVXRpbHM6OnJlY29yZEZvck1lbWJlckNhbGwoQ1hYTWVt YmVyQ2FsbEV4cHIgKmNhbGwsIHN0cmluZworIGJvb2wgVXRpbHM6OmlzQXNjaWkoU3RyaW5nTGl0 ZXJhbCAqbHQpCisgeworICAgICAvLyAnw6knIGZvciBzb21lIHJlYXNvbiBoYXMgaXNBc2NpaSgp ID09IHRydWUsIHNvIGFsc28gY2FsbCBjb250YWluc05vbkFzY2lpT3JOdWxsCistICAgIHJldHVy biBsdCAmJiBsdC0+aXNBc2NpaSgpICYmICFsdC0+Y29udGFpbnNOb25Bc2NpaU9yTnVsbCgpOwor KyAgICByZXR1cm4gbHQgJiYgY2xhenk6OmlzQXNjaWkobHQpICYmICFsdC0+Y29udGFpbnNOb25B c2NpaU9yTnVsbCgpOworIH0KKyAKKyBib29sIFV0aWxzOjppc0luRGVyZWZFeHByZXNzaW9uKFN0 bXQgKnMsIFBhcmVudE1hcCAqbWFwKQorZGlmZiAtLWdpdCBhL3NyYy9jaGVja2Jhc2UuY3BwIGIv c3JjL2NoZWNrYmFzZS5jcHAKK2luZGV4IGY1OTM2ZGZkLi5kY2M3Yzk5OSAxMDA2NDQKKy0tLSBh L3NyYy9jaGVja2Jhc2UuY3BwCisrKysgYi9zcmMvY2hlY2tiYXNlLmNwcAorQEAgLTEwNSw3ICsx MDUsNyBAQCB2b2lkIENsYXp5UHJlcHJvY2Vzc29yQ2FsbGJhY2tzOjpNYWNyb0RlZmluZWQoY29u c3QgVG9rZW4gJm1hY3JvTmFtZVRvaywgY29uc3QgTQorIH0KKyAKKyB2b2lkIENsYXp5UHJlcHJv Y2Vzc29yQ2FsbGJhY2tzOjpJbmNsdXNpb25EaXJlY3RpdmUoY2xhbmc6OlNvdXJjZUxvY2F0aW9u IEhhc2hMb2MsIGNvbnN0IGNsYW5nOjpUb2tlbiAmSW5jbHVkZVRvaywgY2xhbmc6OlN0cmluZ1Jl ZiBGaWxlTmFtZSwgYm9vbCBJc0FuZ2xlZCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgY2xhbmc6OkNoYXJTb3VyY2VSYW5nZSBGaWxlbmFtZVJh bmdlLCBjb25zdCBjbGFuZzo6RmlsZUVudHJ5ICpGaWxlLCBjbGFuZzo6U3RyaW5nUmVmIFNlYXJj aFBhdGgsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGNsYW5nOjpDaGFyU291cmNlUmFuZ2UgRmlsZW5hbWVSYW5nZSwgY2xhenk6Ok9wdGlvbmFs RmlsZUVudHJ5UmVmIEZpbGUsIGNsYW5nOjpTdHJpbmdSZWYgU2VhcmNoUGF0aCwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhbmc6OlN0cmlu Z1JlZiBSZWxhdGl2ZVBhdGgsIGNvbnN0IGNsYW5nOjpNb2R1bGUgKkltcG9ydGVkLCBjbGFuZzo6 U3JjTWdyOjpDaGFyYWN0ZXJpc3RpY0tpbmQgRmlsZVR5cGUpCisgeworICAgICBjaGVjay0+Vmlz aXRJbmNsdXNpb25EaXJlY3RpdmUoSGFzaExvYywgSW5jbHVkZVRvaywgRmlsZU5hbWUsIElzQW5n bGVkLCBGaWxlbmFtZVJhbmdlLCBGaWxlLCBTZWFyY2hQYXRoLCBSZWxhdGl2ZVBhdGgsIEltcG9y dGVkLCBGaWxlVHlwZSk7CitAQCAtMTgyLDcgKzE4Miw3IEBAIHZvaWQgQ2hlY2tCYXNlOjpWaXNp dEVuZGlmKFNvdXJjZUxvY2F0aW9uLCBTb3VyY2VMb2NhdGlvbikKKyB9CisgCisgdm9pZCBDaGVj a0Jhc2U6OlZpc2l0SW5jbHVzaW9uRGlyZWN0aXZlKGNsYW5nOjpTb3VyY2VMb2NhdGlvbiAsIGNv bnN0IGNsYW5nOjpUb2tlbiAmLCBjbGFuZzo6U3RyaW5nUmVmICwgYm9vbCAsCistICAgICAgICAg ICAgICAgICAgICAgICAgY2xhbmc6OkNoYXJTb3VyY2VSYW5nZSAsIGNvbnN0IGNsYW5nOjpGaWxl RW50cnkgKiwgY2xhbmc6OlN0cmluZ1JlZiAsCisrICAgICAgICAgICAgICAgICAgICAgICAgY2xh bmc6OkNoYXJTb3VyY2VSYW5nZSAsIGNsYXp5OjpPcHRpb25hbEZpbGVFbnRyeVJlZiwgY2xhbmc6 OlN0cmluZ1JlZiAsCisgICAgICAgICAgICAgICAgICAgICAgICAgY2xhbmc6OlN0cmluZ1JlZiAs IGNvbnN0IGNsYW5nOjpNb2R1bGUgKiwgY2xhbmc6OlNyY01ncjo6Q2hhcmFjdGVyaXN0aWNLaW5k ICkKKyB7CisgICAgIC8vIE92ZXJyaWRlbiBpbiBkZXJpdmVkIGNsYXNzZXMKK2RpZmYgLS1naXQg YS9zcmMvY2hlY2tiYXNlLmggYi9zcmMvY2hlY2tiYXNlLmgKK2luZGV4IGM1ZGIyZGFmLi4wMmY2 YTZiZiAxMDA2NDQKKy0tLSBhL3NyYy9jaGVja2Jhc2UuaAorKysrIGIvc3JjL2NoZWNrYmFzZS5o CitAQCAtOTEsNyArOTEsNyBAQCBjbGFzcyBDbGF6eVByZXByb2Nlc3NvckNhbGxiYWNrcworICAg ICB2b2lkIEVsc2UoY2xhbmc6OlNvdXJjZUxvY2F0aW9uIGxvYywgY2xhbmc6OlNvdXJjZUxvY2F0 aW9uIGlmTG9jKSBvdmVycmlkZTsKKyAgICAgdm9pZCBFbmRpZihjbGFuZzo6U291cmNlTG9jYXRp b24gbG9jLCBjbGFuZzo6U291cmNlTG9jYXRpb24gaWZMb2MpIG92ZXJyaWRlOworICAgICB2b2lk IEluY2x1c2lvbkRpcmVjdGl2ZShjbGFuZzo6U291cmNlTG9jYXRpb24gSGFzaExvYywgY29uc3Qg Y2xhbmc6OlRva2VuICZJbmNsdWRlVG9rLCBjbGFuZzo6U3RyaW5nUmVmIEZpbGVOYW1lLCBib29s IElzQW5nbGVkLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFuZzo6Q2hhclNvdXJj ZVJhbmdlIEZpbGVuYW1lUmFuZ2UsIGNvbnN0IGNsYW5nOjpGaWxlRW50cnkgKkZpbGUsIGNsYW5n OjpTdHJpbmdSZWYgU2VhcmNoUGF0aCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xh bmc6OkNoYXJTb3VyY2VSYW5nZSBGaWxlbmFtZVJhbmdlLCBjbGF6eTo6T3B0aW9uYWxGaWxlRW50 cnlSZWYgRmlsZSwgY2xhbmc6OlN0cmluZ1JlZiBTZWFyY2hQYXRoLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBjbGFuZzo6U3RyaW5nUmVmIFJlbGF0aXZlUGF0aCwgY29uc3QgY2xhbmc6 Ok1vZHVsZSAqSW1wb3J0ZWQsIGNsYW5nOjpTcmNNZ3I6OkNoYXJhY3RlcmlzdGljS2luZCBGaWxl VHlwZSkgb3ZlcnJpZGU7CisgcHJpdmF0ZToKKyAgICAgQ2hlY2tCYXNlICpjb25zdCBjaGVjazsK K0BAIC0xNTEsNyArMTUxLDcgQEAgY2xhc3MgQ2hlY2tCYXNlCisgICAgIHZpcnR1YWwgdm9pZCBW aXNpdEVsc2UoY2xhbmc6OlNvdXJjZUxvY2F0aW9uIGxvYywgY2xhbmc6OlNvdXJjZUxvY2F0aW9u IGlmTG9jKTsKKyAgICAgdmlydHVhbCB2b2lkIFZpc2l0RW5kaWYoY2xhbmc6OlNvdXJjZUxvY2F0 aW9uIGxvYywgY2xhbmc6OlNvdXJjZUxvY2F0aW9uIGlmTG9jKTsKKyAgICAgdmlydHVhbCB2b2lk IFZpc2l0SW5jbHVzaW9uRGlyZWN0aXZlKGNsYW5nOjpTb3VyY2VMb2NhdGlvbiBIYXNoTG9jLCBj b25zdCBjbGFuZzo6VG9rZW4gJkluY2x1ZGVUb2ssIGNsYW5nOjpTdHJpbmdSZWYgRmlsZU5hbWUs IGJvb2wgSXNBbmdsZWQsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYW5nOjpDaGFy U291cmNlUmFuZ2UgRmlsZW5hbWVSYW5nZSwgY29uc3QgY2xhbmc6OkZpbGVFbnRyeSAqRmlsZSwg Y2xhbmc6OlN0cmluZ1JlZiBTZWFyY2hQYXRoLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICBjbGFuZzo6Q2hhclNvdXJjZVJhbmdlIEZpbGVuYW1lUmFuZ2UsIGNsYXp5OjpPcHRpb25hbEZp bGVFbnRyeVJlZiBGaWxlLCBjbGFuZzo6U3RyaW5nUmVmIFNlYXJjaFBhdGgsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGNsYW5nOjpTdHJpbmdSZWYgUmVsYXRpdmVQYXRoLCBjb25zdCBj bGFuZzo6TW9kdWxlICpJbXBvcnRlZCwgY2xhbmc6OlNyY01ncjo6Q2hhcmFjdGVyaXN0aWNLaW5k IEZpbGVUeXBlKTsKKyAKKyAgICAgdm9pZCBlbmFibGVQcmVQcm9jZXNzb3JDYWxsYmFja3MoKTsK K2RpZmYgLS1naXQgYS9zcmMvY2hlY2tzL21hbnVhbGxldmVsL3F0Ni1md2QtZml4ZXMuY3BwIGIv c3JjL2NoZWNrcy9tYW51YWxsZXZlbC9xdDYtZndkLWZpeGVzLmNwcAoraW5kZXggODNiZjgxZWUu LmM4N2Q5Y2EwIDEwMDY0NAorLS0tIGEvc3JjL2NoZWNrcy9tYW51YWxsZXZlbC9xdDYtZndkLWZp eGVzLmNwcAorKysrIGIvc3JjL2NoZWNrcy9tYW51YWxsZXZlbC9xdDYtZndkLWZpeGVzLmNwcAor QEAgLTE2Niw3ICsxNjYsNyBAQCB2b2lkIFF0NkZ3ZEZpeGVzOjpWaXNpdERlY2woY2xhbmc6OkRl Y2wgKmRlY2wpCisgfQorIAorIHZvaWQgUXQ2RndkRml4ZXM6OlZpc2l0SW5jbHVzaW9uRGlyZWN0 aXZlKGNsYW5nOjpTb3VyY2VMb2NhdGlvbiBIYXNoTG9jLCBjb25zdCBjbGFuZzo6VG9rZW4gJklu Y2x1ZGVUb2ssIGNsYW5nOjpTdHJpbmdSZWYgRmlsZU5hbWUsIGJvb2wgSXNBbmdsZWQsCistICAg ICAgICAgICAgICAgICAgICAgICAgY2xhbmc6OkNoYXJTb3VyY2VSYW5nZSBGaWxlbmFtZVJhbmdl LCBjb25zdCBjbGFuZzo6RmlsZUVudHJ5ICpGaWxlLCBjbGFuZzo6U3RyaW5nUmVmIFNlYXJjaFBh dGgsCisrICAgICAgICAgICAgICAgICAgICAgICAgY2xhbmc6OkNoYXJTb3VyY2VSYW5nZSBGaWxl bmFtZVJhbmdlLCBjbGF6eTo6T3B0aW9uYWxGaWxlRW50cnlSZWYgRmlsZSwgY2xhbmc6OlN0cmlu Z1JlZiBTZWFyY2hQYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgIGNsYW5nOjpTdHJpbmdS ZWYgUmVsYXRpdmVQYXRoLCBjb25zdCBjbGFuZzo6TW9kdWxlICpJbXBvcnRlZCwgY2xhbmc6OlNy Y01ncjo6Q2hhcmFjdGVyaXN0aWNLaW5kIEZpbGVUeXBlKQorIHsKKyAgICAgYXV0byBjdXJyZW50 X2ZpbGUgPSBtX3NtLmdldEZpbGVuYW1lKEhhc2hMb2MpOworZGlmZiAtLWdpdCBhL3NyYy9jaGVj a3MvbWFudWFsbGV2ZWwvcXQ2LWZ3ZC1maXhlcy5oIGIvc3JjL2NoZWNrcy9tYW51YWxsZXZlbC9x dDYtZndkLWZpeGVzLmgKK2luZGV4IDM3YjU5ZDk1Li5iYjkyOGJhNiAxMDA2NDQKKy0tLSBhL3Ny Yy9jaGVja3MvbWFudWFsbGV2ZWwvcXQ2LWZ3ZC1maXhlcy5oCisrKysgYi9zcmMvY2hlY2tzL21h bnVhbGxldmVsL3F0Ni1md2QtZml4ZXMuaAorQEAgLTQ3LDcgKzQ3LDcgQEAgY2xhc3MgUXQ2Rndk Rml4ZXMKKyAgICAgZXhwbGljaXQgUXQ2RndkRml4ZXMoY29uc3Qgc3RkOjpzdHJpbmcgJm5hbWUs IENsYXp5Q29udGV4dCAqY29udGV4dCk7CisgICAgIHZvaWQgVmlzaXREZWNsKGNsYW5nOjpEZWNs ICpkZWNsKSBvdmVycmlkZTsKKyAgICAgdm9pZCBWaXNpdEluY2x1c2lvbkRpcmVjdGl2ZShjbGFu Zzo6U291cmNlTG9jYXRpb24gSGFzaExvYywgY29uc3QgY2xhbmc6OlRva2VuICZJbmNsdWRlVG9r LCBjbGFuZzo6U3RyaW5nUmVmIEZpbGVOYW1lLCBib29sIElzQW5nbGVkLAorLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICBjbGFuZzo6Q2hhclNvdXJjZVJhbmdlIEZpbGVuYW1lUmFuZ2UsIGNv bnN0IGNsYW5nOjpGaWxlRW50cnkgKkZpbGUsIGNsYW5nOjpTdHJpbmdSZWYgU2VhcmNoUGF0aCwK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhbmc6OkNoYXJTb3VyY2VSYW5nZSBGaWxl bmFtZVJhbmdlLCBjbGF6eTo6T3B0aW9uYWxGaWxlRW50cnlSZWYgRmlsZSwgY2xhbmc6OlN0cmlu Z1JlZiBTZWFyY2hQYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFuZzo6U3Ry aW5nUmVmIFJlbGF0aXZlUGF0aCwgY29uc3QgY2xhbmc6Ok1vZHVsZSAqSW1wb3J0ZWQsIGNsYW5n OjpTcmNNZ3I6OkNoYXJhY3RlcmlzdGljS2luZCBGaWxlVHlwZSkgb3ZlcnJpZGU7CisgICAgIGJv b2wgbV9pbmNsdWRpbmdfcWNvbnRhaW5lcmZ3ZCA9IGZhbHNlOworICAgICBzdGQ6OnNldDxjbGFu Zzo6U3RyaW5nUmVmPiBtX3Fjb250YWluZXJmd2RfaW5jbHVkZWRfaW5fZmlsZXM7CitkaWZmIC0t Z2l0IGEvc3JjL2NoZWNrcy9tYW51YWxsZXZlbC9xdDYtaGVhZGVyLWZpeGVzLmNwcCBiL3NyYy9j aGVja3MvbWFudWFsbGV2ZWwvcXQ2LWhlYWRlci1maXhlcy5jcHAKK2luZGV4IGQ0NThiNzdjLi5h YWEyODA5MyAxMDA2NDQKKy0tLSBhL3NyYy9jaGVja3MvbWFudWFsbGV2ZWwvcXQ2LWhlYWRlci1m aXhlcy5jcHAKKysrKyBiL3NyYy9jaGVja3MvbWFudWFsbGV2ZWwvcXQ2LWhlYWRlci1maXhlcy5j cHAKK0BAIC0yNzAsNyArMjcwLDcgQEAgUXQ2SGVhZGVyRml4ZXM6OlF0NkhlYWRlckZpeGVzKGNv bnN0IHN0ZDo6c3RyaW5nICZuYW1lLCBDbGF6eUNvbnRleHQgKmNvbnRleHQpCisgfQorIAorIHZv aWQgUXQ2SGVhZGVyRml4ZXM6OlZpc2l0SW5jbHVzaW9uRGlyZWN0aXZlKGNsYW5nOjpTb3VyY2VM b2NhdGlvbiBIYXNoTG9jLCBjb25zdCBjbGFuZzo6VG9rZW4gJkluY2x1ZGVUb2ssIGNsYW5nOjpT dHJpbmdSZWYgRmlsZU5hbWUsIGJvb2wgSXNBbmdsZWQsCistICAgICAgICAgICAgICAgICAgICAg ICAgY2xhbmc6OkNoYXJTb3VyY2VSYW5nZSBGaWxlbmFtZVJhbmdlLCBjb25zdCBjbGFuZzo6Rmls ZUVudHJ5ICpGaWxlLCBjbGFuZzo6U3RyaW5nUmVmIFNlYXJjaFBhdGgsCisrICAgICAgICAgICAg ICAgICAgICAgICAgY2xhbmc6OkNoYXJTb3VyY2VSYW5nZSBGaWxlbmFtZVJhbmdlLCBjbGF6eTo6 T3B0aW9uYWxGaWxlRW50cnlSZWYgRmlsZSwgY2xhbmc6OlN0cmluZ1JlZiBTZWFyY2hQYXRoLAor ICAgICAgICAgICAgICAgICAgICAgICAgIGNsYW5nOjpTdHJpbmdSZWYgUmVsYXRpdmVQYXRoLCBj b25zdCBjbGFuZzo6TW9kdWxlICpJbXBvcnRlZCwgY2xhbmc6OlNyY01ncjo6Q2hhcmFjdGVyaXN0 aWNLaW5kIEZpbGVUeXBlKQorIHsKKyAgICAgaWYgKHNob3VsZElnbm9yZUZpbGUoSGFzaExvYykp CitkaWZmIC0tZ2l0IGEvc3JjL2NoZWNrcy9tYW51YWxsZXZlbC9xdDYtaGVhZGVyLWZpeGVzLmgg Yi9zcmMvY2hlY2tzL21hbnVhbGxldmVsL3F0Ni1oZWFkZXItZml4ZXMuaAoraW5kZXggYWUwOWY3 YWQuLjhmZmJiMTAwIDEwMDY0NAorLS0tIGEvc3JjL2NoZWNrcy9tYW51YWxsZXZlbC9xdDYtaGVh ZGVyLWZpeGVzLmgKKysrKyBiL3NyYy9jaGVja3MvbWFudWFsbGV2ZWwvcXQ2LWhlYWRlci1maXhl cy5oCitAQCAtNDYsNyArNDYsNyBAQCBjbGFzcyBRdDZIZWFkZXJGaXhlcworIHB1YmxpYzoKKyAg ICAgZXhwbGljaXQgUXQ2SGVhZGVyRml4ZXMoY29uc3Qgc3RkOjpzdHJpbmcgJm5hbWUsIENsYXp5 Q29udGV4dCAqY29udGV4dCk7CisgICAgIHZvaWQgVmlzaXRJbmNsdXNpb25EaXJlY3RpdmUoY2xh bmc6OlNvdXJjZUxvY2F0aW9uIEhhc2hMb2MsIGNvbnN0IGNsYW5nOjpUb2tlbiAmSW5jbHVkZVRv aywgY2xhbmc6OlN0cmluZ1JlZiBGaWxlTmFtZSwgYm9vbCBJc0FuZ2xlZCwKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgY2xhbmc6OkNoYXJTb3VyY2VSYW5nZSBGaWxlbmFtZVJhbmdlLCBj b25zdCBjbGFuZzo6RmlsZUVudHJ5ICpGaWxlLCBjbGFuZzo6U3RyaW5nUmVmIFNlYXJjaFBhdGgs CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYW5nOjpDaGFyU291cmNlUmFuZ2UgRmls ZW5hbWVSYW5nZSwgY2xhenk6Ok9wdGlvbmFsRmlsZUVudHJ5UmVmIEZpbGUsIGNsYW5nOjpTdHJp bmdSZWYgU2VhcmNoUGF0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhbmc6OlN0 cmluZ1JlZiBSZWxhdGl2ZVBhdGgsIGNvbnN0IGNsYW5nOjpNb2R1bGUgKkltcG9ydGVkLCBjbGFu Zzo6U3JjTWdyOjpDaGFyYWN0ZXJpc3RpY0tpbmQgRmlsZVR5cGUpIG92ZXJyaWRlOworIAorIH07 CmRpZmYgLS1naXQgYS9zcmNwa2dzL2NsYXp5L3RlbXBsYXRlIGIvc3JjcGtncy9jbGF6eS90ZW1w bGF0ZQppbmRleCAxMWYzYmFiNTVhZWYuLmY4MWRlMDhhYjgzNiAxMDA2NDQKLS0tIGEvc3JjcGtn cy9jbGF6eS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2NsYXp5L3RlbXBsYXRlCkBAIC0xLDcgKzEs NyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnY2xhenknCiBwa2duYW1lPWNsYXp5CiB2ZXJzaW9u PTEuMTEKLXJldmlzaW9uPTEKK3JldmlzaW9uPTIKIGJ1aWxkX3N0eWxlPWNtYWtlCiBidWlsZF9o ZWxwZXI9cWVtdQogaG9zdG1ha2VkZXBlbmRzPSJsbHZtIgoKRnJvbSAyZDI3ZGM4ODNhOWFkZmEx OWZmZDczNzFiNjgxNjUwYjhmZjljZWJkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBN YXJjaW4gUHVjIDx0cmFuenlzdG9yZWsuaW9AcHJvdG9ubWFpbC5jb20+CkRhdGU6IFRodSwgMTYg RmViIDIwMjMgMjM6NDI6MDAgKzAxMDAKU3ViamVjdDogW1BBVENIIDIxLzMyXSBsZGM6IHVwZGF0 ZSB0byAxLjMxLjAKCi0tLQogY29tbW9uL3NobGlicyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHwgIDggKy0tCiAuLi40MjYwYTg0OGM4ZWJhZDU1ODJlMjdhYzFlMDk2MjdjZGZiMTcu cGF0Y2ggfCA1NyAtLS0tLS0tLS0tLS0tLS0tLS0tCiBzcmNwa2dzL2xkYy90ZW1wbGF0ZSAgICAg ICAgICAgICAgICAgICAgICAgICAgfCAgNiArLQogMyBmaWxlcyBjaGFuZ2VkLCA3IGluc2VydGlv bnMoKyksIDY0IGRlbGV0aW9ucygtKQogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGRjL3Bh dGNoZXMvNTQ1NDQyNjBhODQ4YzhlYmFkNTU4MmUyN2FjMWUwOTYyN2NkZmIxNy5wYXRjaAoKZGlm ZiAtLWdpdCBhL2NvbW1vbi9zaGxpYnMgYi9jb21tb24vc2hsaWJzCmluZGV4IDY2ODE4ZDQ3OGE2 Zi4uNzQ5MzA2Yzk3Y2M4IDEwMDY0NAotLS0gYS9jb21tb24vc2hsaWJzCisrKyBiL2NvbW1vbi9z aGxpYnMKQEAgLTIxODgsMTAgKzIxODgsMTAgQEAgbGliRmNpdHg1Q29uZmlnLnNvLjYgbGliZmNp dHg1LTUuMC41XzEKIGxpYkZjaXR4NUdDbGllbnQuc28uMiBmY2l0eDUtZ3RrLTUuMC40XzEKIGxp YkZjaXR4NVF0NURCdXNBZGRvbnMuc28uMSBmY2l0eDUtcXQ1LTUuMC4zXzEKIGxpYkZjaXR4NVF0 NVdpZGdldHNBZGRvbnMuc28uMiBmY2l0eDUtcXQ1LTUuMC4zXzEKLWxpYmRydW50aW1lLWxkYy1k ZWJ1Zy1zaGFyZWQuc28uMTAwIGxkYy1ydW50aW1lLTEuMzAuMF8xCi1saWJkcnVudGltZS1sZGMt c2hhcmVkLnNvLjEwMCBsZGMtcnVudGltZS0xLjMwLjBfMQotbGlicGhvYm9zMi1sZGMtc2hhcmVk LnNvLjEwMCBsZGMtcnVudGltZS0xLjMwLjBfMQotbGlicGhvYm9zMi1sZGMtZGVidWctc2hhcmVk LnNvLjEwMCBsZGMtcnVudGltZS0xLjMwLjBfMQorbGliZHJ1bnRpbWUtbGRjLWRlYnVnLXNoYXJl ZC5zby4xMDEgbGRjLXJ1bnRpbWUtMS4zMS4wXzEKK2xpYmRydW50aW1lLWxkYy1zaGFyZWQuc28u MTAxIGxkYy1ydW50aW1lLTEuMzEuMF8xCitsaWJwaG9ib3MyLWxkYy1zaGFyZWQuc28uMTAxIGxk Yy1ydW50aW1lLTEuMzEuMF8xCitsaWJwaG9ib3MyLWxkYy1kZWJ1Zy1zaGFyZWQuc28uMTAxIGxk Yy1ydW50aW1lLTEuMzEuMF8xCiBsaWJtYXJibGV3aWRnZXQtcXQ1LnNvLjI4IG1hcmJsZTUtMTcu MTIuMl8xCiBsaWJhc3Ryby5zby4yIG1hcmJsZTUtMTcuMTIuMl8xCiBsaWJwYXJyb3Quc28uNi45 LjAgcGFycm90LTYuOS4wXzEKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGRjL3BhdGNoZXMvNTQ1NDQy NjBhODQ4YzhlYmFkNTU4MmUyN2FjMWUwOTYyN2NkZmIxNy5wYXRjaCBiL3NyY3BrZ3MvbGRjL3Bh dGNoZXMvNTQ1NDQyNjBhODQ4YzhlYmFkNTU4MmUyN2FjMWUwOTYyN2NkZmIxNy5wYXRjaApkZWxl dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzk2OTQzNzJiZmFhLi4wMDAwMDAwMDAwMDAKLS0t IGEvc3JjcGtncy9sZGMvcGF0Y2hlcy81NDU0NDI2MGE4NDhjOGViYWQ1NTgyZTI3YWMxZTA5NjI3 Y2RmYjE3LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNTcgKzAsMCBAQAotRnJvbSA1NDU0NDI2 MGE4NDhjOGViYWQ1NTgyZTI3YWMxZTA5NjI3Y2RmYjE3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQotRnJvbTogUmF6dmFuIE5pdHUgPHJhenZhbi5uaXR1MTMwNUBnbWFpbC5jb20+Ci1EYXRlOiBX ZWQsIDI0IEF1ZyAyMDIyIDEzOjU0OjE1ICswMzAwCi1TdWJqZWN0OiBbUEFUQ0hdIFBvcnQgdGhl IGZpeCBmb3IgaXNzdWUgMjMxNTcgKCMxNDM3OCkKLQotLS0tCi0gZHJ1bnRpbWUvc3JjL2NvcmUv c3lzL3Bvc2l4L3N5cy9zb2NrZXQuZCB8IDM2ICsrKysrKysrKysrKysrKysrKysrKystLQotIDEg ZmlsZSBjaGFuZ2VkLCAzMyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQotCi1kaWZmIC0t Z2l0IGEvZHJ1bnRpbWUvc3JjL2NvcmUvc3lzL3Bvc2l4L3N5cy9zb2NrZXQuZCBiL2RydW50aW1l L3NyYy9jb3JlL3N5cy9wb3NpeC9zeXMvc29ja2V0LmQKLWluZGV4IDNhN2I3NTNhZGZmLi5mYzVk YzVkMTY4NCAxMDA2NDQKLS0tLSBhL3J1bnRpbWUvZHJ1bnRpbWUvc3JjL2NvcmUvc3lzL3Bvc2l4 L3N5cy9zb2NrZXQuZAotKysrIGIvcnVudGltZS9kcnVudGltZS9zcmMvY29yZS9zeXMvcG9zaXgv c3lzL3NvY2tldC5kCi1AQCAtMTg4LDEwICsxODgsNDAgQEAgdmVyc2lvbiAobGludXgpCi0gCi0g ICAgIGV4dGVybiAoRCkgaW5vdXQodWJ5dGUpKiAgIENNU0dfREFUQSggcmV0dXJuIHNjb3BlIGlu b3V0KGNtc2doZHIpKiBjbXNnICkgcHVyZSBub3Rocm93IEBub2djIHsgcmV0dXJuIGNhc3QodWJ5 dGUqKSggY21zZyArIDEgKTsgfQotIAotLSAgICBwcml2YXRlIGlub3V0KGNtc2doZHIpKiBfX2Nt c2dfbnh0aGRyKGlub3V0KG1zZ2hkcikqLCBpbm91dChjbXNnaGRyKSopIHB1cmUgbm90aHJvdyBA bm9nYzsKLS0gICAgZXh0ZXJuIChEKSAgaW5vdXQoY21zZ2hkcikqIENNU0dfTlhUSERSKGlub3V0 KG1zZ2hkcikqIG1zZywgaW5vdXQoY21zZ2hkcikqIGNtc2cpIHB1cmUgbm90aHJvdyBAbm9nYwot KyAgICB2ZXJzaW9uIChDUnVudGltZV9NdXNsKQotICAgICB7Ci0tICAgICAgICByZXR1cm4gX19j bXNnX254dGhkcihtc2csIGNtc2cpOwotKyAgICAgICAgZXh0ZXJuIChEKQotKyAgICAgICAgewot KyAgICAgICAgICAgIHByaXZhdGUgc2l6ZV90IF9fQ01TR19MRU4oaW5vdXQoY21zZ2hkcikqIGNt c2cpIHB1cmUgbm90aHJvdyBAbm9nYwotKyAgICAgICAgICAgIHsKLSsgICAgICAgICAgICAgICAg cmV0dXJuIChjbXNnLmNtc2dfbGVuICsgc2l6ZV90LnNpemVvZiAtMSkgJiBjYXN0KHNpemVfdCko fihzaXplX3Quc2l6ZW9mIC0gMSkpOwotKyAgICAgICAgICAgIH0KLSsKLSsgICAgICAgICAgICBw cml2YXRlIGlub3V0KGNtc2doZHIpKiBfX0NNU0dfTkVYVChpbm91dChjbXNnaGRyKSogY21zZykg cHVyZSBub3Rocm93IEBub2djCi0rICAgICAgICAgICAgewotKyAgICAgICAgICAgICAgICByZXR1 cm4gY21zZyArIF9fQ01TR19MRU4oY21zZyk7Ci0rICAgICAgICAgICAgfQotKwotKyAgICAgICAg ICAgIHByaXZhdGUgaW5vdXQobXNnaGRyKSogX19NSERSX0VORChpbm91dChtc2doZHIpKiBtaGRy KSBwdXJlIG5vdGhyb3cgQG5vZ2MKLSsgICAgICAgICAgICB7Ci0rICAgICAgICAgICAgICAgIHJl dHVybiBjYXN0KGlub3V0KG1zZ2hkcikqKShtaGRyLm1zZ19jb250cm9sICsgbWhkci5tc2dfY29u dHJvbGxlbik7Ci0rICAgICAgICAgICAgfQotKwotKyAgICAgICAgICAgIGlub3V0KGNtc2doZHIp KiBDTVNHX05YVEhEUihpbm91dChtc2doZHIpKiBtc2csIGlub3V0KGNtc2doZHIpKiBjbXNnKSBw dXJlIG5vdGhyb3cgQG5vZ2MKLSsgICAgICAgICAgICB7Ci0rICAgICAgICAgICAgICAgIHJldHVy biBjbXNnLmNtc2dfbGVuIDwgY21zZ2hkci5zaXplb2YgfHwKLSsgICAgICAgICAgICAgICAgICAg IF9fQ01TR19MRU4oY21zZykgKyBjbXNnaGRyLnNpemVvZiA+PSBfX01IRFJfRU5EKG1zZykgLSBj YXN0KGlub3V0KG1zZ2hkcikqKShjbXNnKQotKyAgICAgICAgICAgICAgICAgICAgICAgID8gY2Fz dChpbm91dChjbXNnaGRyKSopIG51bGwgOiBjYXN0KGlub3V0KGNtc2doZHIpKikgX19DTVNHX05F WFQoY21zZyk7Ci0rICAgICAgICAgICAgfQotKyAgICAgICAgfQotKyAgICB9Ci0rICAgIGVsc2UK LSsgICAgewotKyAgICAgICAgcHJpdmF0ZSBpbm91dChjbXNnaGRyKSogX19jbXNnX254dGhkcihp bm91dChtc2doZHIpKiwgaW5vdXQoY21zZ2hkcikqKSBwdXJlIG5vdGhyb3cgQG5vZ2M7Ci0rICAg ICAgICBleHRlcm4gKEQpICBpbm91dChjbXNnaGRyKSogQ01TR19OWFRIRFIoaW5vdXQobXNnaGRy KSogbXNnLCBpbm91dChjbXNnaGRyKSogY21zZykgcHVyZSBub3Rocm93IEBub2djCi0rICAgICAg ICB7Ci0rICAgICAgICAgICAgcmV0dXJuIF9fY21zZ19ueHRoZHIobXNnLCBjbXNnKTsKLSsgICAg ICAgIH0KLSAgICAgfQotIAotICAgICBleHRlcm4gKEQpIGlub3V0KGNtc2doZHIpKiBDTVNHX0ZJ UlNUSERSKCBpbm91dChtc2doZHIpKiBtaGRyICkgcHVyZSBub3Rocm93IEBub2djCmRpZmYgLS1n aXQgYS9zcmNwa2dzL2xkYy90ZW1wbGF0ZSBiL3NyY3BrZ3MvbGRjL3RlbXBsYXRlCmluZGV4IDk5 ZDIyNjgyY2U3YS4uZjZkOGI3ZmZiZTk4IDEwMDY0NAotLS0gYS9zcmNwa2dzL2xkYy90ZW1wbGF0 ZQorKysgYi9zcmNwa2dzL2xkYy90ZW1wbGF0ZQpAQCAtMSw2ICsxLDYgQEAKICMgVGVtcGxhdGUg ZmlsZSBmb3IgJ2xkYycKIHBrZ25hbWU9bGRjCi12ZXJzaW9uPTEuMzAuMAordmVyc2lvbj0xLjMx LjAKIHJldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPWNtYWtlCiBjb25maWd1cmVfYXJncz0iCkBAIC0x MSw3ICsxMSw3IEBAIGNvbmZpZ3VyZV9hcmdzPSIKICAtRENPTVBJTEVfRF9NT0RVTEVTX1NFUEFS QVRFTFk9T04KICAtRENfU1lTVEVNX0xJQlM9J3Vud2luZDttO3B0aHJlYWQ7cnQ7ZGwnIgogY29u Zl9maWxlcz0iL2V0Yy9sZGMyLmNvbmYiCi1ob3N0bWFrZWRlcGVuZHM9ImRtZCBsbHZtMTIgcGVy bCBwa2ctY29uZmlnIgoraG9zdG1ha2VkZXBlbmRzPSJkbWQgbGx2bTE1IHBlcmwgcGtnLWNvbmZp ZyIKIG1ha2VkZXBlbmRzPSJsaWJjdXJsLWRldmVsIGxpYmZmaS1kZXZlbCBuY3Vyc2VzLWRldmVs IHpsaWItZGV2ZWwKICBsbHZtLWxpYnVud2luZC1kZXZlbCIKIGRlcGVuZHM9ImxkYy1ydW50aW1l IGxsdm0tbGlidW53aW5kLWRldmVsIgpAQCAtMjIsNyArMjIsNyBAQCBsaWNlbnNlPSJCU0QtMy1D bGF1c2UsIEJTTC0xLjAiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmRsYW5nLm9yZy9MREMiCiBj aGFuZ2Vsb2c9Imh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9sZGMtZGV2ZWxvcGVy cy9sZGMvbWFzdGVyL0NIQU5HRUxPRy5tZCIKIGRpc3RmaWxlcz0iaHR0cHM6Ly9naXRodWIuY29t L2xkYy1kZXZlbG9wZXJzL2xkYy9yZWxlYXNlcy9kb3dubG9hZC92JHt2ZXJzaW9ufS9sZGMtJHt2 ZXJzaW9ufS1zcmMudGFyLmd6IgotY2hlY2tzdW09ZmRiYjM3NmYwODI0MmQ5MTc5MjJhNmEyMmE3 NzM5ODAyMTdmYWZhMzEwMDQ2ZmM1ZDY0NTk0OTBhZjIzZGFjZAorY2hlY2tzdW09ZjFjOGVjZTll MWUzNTgwNmMzNDQxYmYyNGZiZTY2NmNkZGQ4ZWVmMzc1NTkyYzE5Y2Q4ZmVlNDcwMWNkNTQ1OAog bm9waWU9eWVzCiBub2Nyb3NzPSJkbWQgY29tcGlsYXRpb24gZmFpbHMgb24gY3Jvc3MiCiAjIHRl c3RzIHRpbWVvdXQgb24gbXVzbDsgYWxzbyByZXF1aXJlIHVucGFja2FnZWQgcHl0aG9uMy1saXQK CkZyb20gZGNhYWMzYTU3NTcwZTJiZDE1NDViM2Y4N2I2YjdlYTYxODY1NzViYiBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogTWFyY2luIFB1YyA8dHJhbnp5c3RvcmVrLmlvQHByb3Rvbm1h aWwuY29tPgpEYXRlOiBUaHUsIDE2IEZlYiAyMDIzIDIzOjQyOjQ2ICswMTAwClN1YmplY3Q6IFtQ QVRDSCAyMi8zMl0gZ3RrZDogcmVidWlsZCBmb3IgbGRjIDEuMzEKCi0tLQogc3JjcGtncy9ndGtk L3RlbXBsYXRlIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0 aW9uKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9ndGtkL3RlbXBsYXRlIGIvc3JjcGtncy9ndGtk L3RlbXBsYXRlCmluZGV4IGU2NGExZjU0ZmI5Ni4uNmE3NWQ2OWUxOWNlIDEwMDY0NAotLS0gYS9z cmNwa2dzL2d0a2QvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9ndGtkL3RlbXBsYXRlCkBAIC0xLDcg KzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZ3RrZCcKIHBrZ25hbWU9Z3RrZAogdmVyc2lv bj0zLjkuMAotcmV2aXNpb249OQorcmV2aXNpb249MTAKIGJ1aWxkX3N0eWxlPWdudS1tYWtlZmls ZQogbWFrZV9idWlsZF9hcmdzPSJMREZMQUdTPSctbGlua2VyPWJmZCcgREM9bGRjMiIKIG1ha2Vf YnVpbGRfdGFyZ2V0PSJzaGFyZWQtbGlicyBzaGFyZWQtZ3N0cmVhbWVyIHNoYXJlZC12dGUgc2hh cmVkLXBlYXMgc2hhcmVkLWd0a2RnbCIKCkZyb20gMGQ2OWYxMTYxMzZiMDA4ZDlmNjEzYzVhMGU4 OGFmZTE4ZDMzNGYzNCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogTWFyY2luIFB1YyA8 dHJhbnp5c3RvcmVrLmlvQHByb3Rvbm1haWwuY29tPgpEYXRlOiBUaHUsIDE2IEZlYiAyMDIzIDIz OjQzOjI5ICswMTAwClN1YmplY3Q6IFtQQVRDSCAyMy8zMl0gb25lZHJpdmU6IHJlYnVpbGQgZm9y IGxkYyAxLjMxCgotLS0KIHNyY3BrZ3Mvb25lZHJpdmUvdGVtcGxhdGUgfCAyICstCiAxIGZpbGUg Y2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmNw a2dzL29uZWRyaXZlL3RlbXBsYXRlIGIvc3JjcGtncy9vbmVkcml2ZS90ZW1wbGF0ZQppbmRleCAy ODE2M2YzMzQ1NTIuLjYzZTRmNDNhN2ZiZCAxMDA2NDQKLS0tIGEvc3JjcGtncy9vbmVkcml2ZS90 ZW1wbGF0ZQorKysgYi9zcmNwa2dzL29uZWRyaXZlL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAog IyBUZW1wbGF0ZSBmaWxlIGZvciAnb25lZHJpdmUnCiBwa2duYW1lPW9uZWRyaXZlCiB2ZXJzaW9u PTIuNC4xMwotcmV2aXNpb249NAorcmV2aXNpb249NQogYnVpbGRfc3R5bGU9Z251LWNvbmZpZ3Vy ZQogY29uZmlndXJlX2FyZ3M9IkRDPWxkYzIiCiBob3N0bWFrZWRlcGVuZHM9ImxkYyBwa2ctY29u ZmlnIgoKRnJvbSAzMDJmZTc4ZGZmYmQ2YmU4YjVjNGEyYzY5MzM3Y2ZhYTI5NGVlNDQzIE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJjaW4gUHVjIDx0cmFuenlzdG9yZWsuaW9AcHJv dG9ubWFpbC5jb20+CkRhdGU6IFNhdCwgMTggRmViIDIwMjMgMjA6MzM6MTkgKzAxMDAKU3ViamVj dDogW1BBVENIIDI0LzMyXSBxdGNyZWF0b3I6IHJlYnVpbGQgZm9yIGxsdm0xNQoKLS0tCiBzcmNw a2dzL3F0Y3JlYXRvci90ZW1wbGF0ZSB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlv bigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXRjcmVhdG9yL3RlbXBs YXRlIGIvc3JjcGtncy9xdGNyZWF0b3IvdGVtcGxhdGUKaW5kZXggZTQyODQwYmY2ZmU0Li5iMWRm ZmQzMDQxOTggMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvcXRjcmVhdG9yL3RlbXBsYXRlCisrKyBiL3Ny Y3BrZ3MvcXRjcmVhdG9yL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxl IGZvciAncXRjcmVhdG9yJwogcGtnbmFtZT1xdGNyZWF0b3IKIHZlcnNpb249OS4wLjEKLXJldmlz aW9uPTEKK3JldmlzaW9uPTIKIGJ1aWxkX3N0eWxlPWNtYWtlCiBjb25maWd1cmVfYXJncz0iJCh2 b3B0X2Jvb2wgcWJzIEJVSUxEX1FCUykgLURXSVRIX0RPQ1M9T04gLURCVUlMRF9XSVRIX1BDSD1P RkYKICAtRFFUX0hPU1RfUEFUSD0vdXNyLyAtRFFUX0hPU1RfUEFUSF9DTUFLRV9ESVI9L3Vzci9s aWI2NC9jbWFrZS9RdDYiCgpGcm9tIDEyODdjOTFlNjhlODBlOGZhMDdkOGFmMDU1Y2YwMDEwMmM0 OWFiZWEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IE1hcmNpbiBQdWMgPHRyYW56eXN0 b3Jlay5pb0Bwcm90b25tYWlsLmNvbT4KRGF0ZTogV2VkLCAyMiBGZWIgMjAyMyAxMzozMzo0MSAr MDEwMApTdWJqZWN0OiBbUEFUQ0ggMjUvMzJdIHRpbGl4OiByZWJ1aWxkIGZvciBsZGMgMS4zMQoK LS0tCiBzcmNwa2dzL3RpbGl4L3BhdGNoZXMvdW5kZWFkLnBhdGNoIHwgMjEgKysrKysrKysrKysr KysrKysrKysrCiBzcmNwa2dzL3RpbGl4L3RlbXBsYXRlICAgICAgICAgICAgIHwgMTUgKysrKysr KysrKysrLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDMzIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25z KC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy90aWxpeC9wYXRjaGVzL3VuZGVhZC5wYXRj aAoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvdGlsaXgvcGF0Y2hlcy91bmRlYWQucGF0Y2ggYi9zcmNw a2dzL3RpbGl4L3BhdGNoZXMvdW5kZWFkLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMDAwMC4uM2JjNDBkNjlmMjY5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy90 aWxpeC9wYXRjaGVzL3VuZGVhZC5wYXRjaApAQCAtMCwwICsxLDIxIEBACistLS0gYS9zb3VyY2Uv Z3gvdGlsaXgvcHJlZmVkaXRvci9wcmVmZGlhbG9nLmQKKysrKyBiL3NvdXJjZS9neC90aWxpeC9w cmVmZWRpdG9yL3ByZWZkaWFsb2cuZAorQEAgLTk1Nyw3ICs5NTcsNyBAQCBwcml2YXRlOgorICAg ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgIH0KKyAKKy0gICAgICAgIGltcG9ydCBzdGQueG1s OiBEb2N1bWVudFBhcnNlciwgRWxlbWVudFBhcnNlciwgRWxlbWVudCwgWE1MRXhjZXB0aW9uOwor KyAgICAgICAgaW1wb3J0IHVuZGVhZC54bWw6IERvY3VtZW50UGFyc2VyLCBFbGVtZW50UGFyc2Vy LCBFbGVtZW50LCBYTUxFeGNlcHRpb247CisgCisgICAgICAgICB0cnkgeworICAgICAgICAgICAg IERvY3VtZW50UGFyc2VyIHBhcnNlciA9IG5ldyBEb2N1bWVudFBhcnNlcih1aSk7CistLS0gYS9t ZXNvbi5idWlsZAorKysrIGIvbWVzb24uYnVpbGQKK0BAIC05MSw2ICs5MSw3IEBAIHRpbGl4X3Nv dXJjZXMgPSBbCisgICAgICdzb3VyY2Uvc2VjcmV0Yy9zZWNyZXR0eXBlcy5kJywKKyAgICAgJ3Nv dXJjZS94MTEvWC5kJywKKyAgICAgJ3NvdXJjZS94MTEvWGxpYi5kJywKKysgICAgJ3NvdXJjZS91 bmRlYWQveG1sLmQnLAorICAgICAnc291cmNlL2FwcC5kJworIF0KKyAKZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MvdGlsaXgvdGVtcGxhdGUgYi9zcmNwa2dzL3RpbGl4L3RlbXBsYXRlCmluZGV4IDU2ODk5 NDhiYWJhYS4uNzRjY2I0ZGQ0NTkyIDEwMDY0NAotLS0gYS9zcmNwa2dzL3RpbGl4L3RlbXBsYXRl CisrKyBiL3NyY3BrZ3MvdGlsaXgvdGVtcGxhdGUKQEAgLTEsNyArMSw5IEBACiAjIFRlbXBsYXRl IGZpbGUgZm9yICd0aWxpeCcKIHBrZ25hbWU9dGlsaXgKIHZlcnNpb249MS45LjQKLXJldmlzaW9u PTYKK3JldmlzaW9uPTcKK191bmRlYWRfdmVyc2lvbj0xLjEuOAorYnVpbGRfd3Jrc3JjPSIke3Br Z25hbWV9LSR7dmVyc2lvbn0iCiBidWlsZF9zdHlsZT1tZXNvbgogY29uZmlndXJlX2FyZ3M9Ii1E Yl9sdG89ZmFsc2UiCiBob3N0bWFrZWRlcGVuZHM9ImF1dG9tYWtlIGdldHRleHQtZGV2ZWwgZ2Rr LXBpeGJ1ZiBnbGliLWRldmVsIGxkYyBwbzRhIHBrZy1jb25maWcKQEAgLTEzLDggKzE1LDE1IEBA IHNob3J0X2Rlc2M9IlRpbGluZyB0ZXJtaW5hbCBlbXVsYXRvciBmb3IgTGludXgiCiBtYWludGFp bmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iTVBMLTIu MCIKIGhvbWVwYWdlPSJodHRwczovL2dudW5uMS5naXRodWIuaW8vdGlsaXgtd2ViLyIKLWRpc3Rm aWxlcz0iaHR0cHM6Ly9naXRodWIuY29tL2dudW5uMS8ke3BrZ25hbWV9L2FyY2hpdmUvJHt2ZXJz aW9ufS50YXIuZ3oiCi1jaGVja3N1bT0yYTk0ODI3NzAzOTFkMTFkNWVkYzgzNTFkNDI2YzcwMGMy Y2M2YzE5NGEzMDM5MWVmMmFlMjViYjcwOTViNTliCitkaXN0ZmlsZXM9Imh0dHBzOi8vZ2l0aHVi LmNvbS9nbnVubjEvJHtwa2duYW1lfS9hcmNoaXZlLyR7dmVyc2lvbn0udGFyLmd6CisgaHR0cHM6 Ly9naXRodWIuY29tL2RsYW5nL3VuZGVhRC9hcmNoaXZlL3JlZnMvdGFncy92JHtfdW5kZWFkX3Zl cnNpb259LnRhci5neiIKK2NoZWNrc3VtPSIyYTk0ODI3NzAzOTFkMTFkNWVkYzgzNTFkNDI2Yzcw MGMyY2M2YzE5NGEzMDM5MWVmMmFlMjViYjcwOTViNTliCisgMzZhNTliNDc0MGIxNDdmNDM0NWNh YTI2OTA4ZjQwYTk3ZmM3Y2M2N2RhYzY5ODNjMjI2MzY5YzU5ZjkwOWU5MiIKK3BhdGNoX2FyZ3M9 Ii1kICR7YnVpbGRfd3Jrc3JjfSAtTnAxIgorCitwb3N0X2V4dHJhY3QoKSB7CisJbXYgdW5kZWFE LSR7X3VuZGVhZF92ZXJzaW9ufS9zcmMvdW5kZWFkICR7YnVpbGRfd3Jrc3JjfS9zb3VyY2UvCit9 CiAKIHByZV9jb25maWd1cmUoKSB7CiAJY2FzZSAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiIGluCgpG cm9tIGI4NTExNmQzY2VkZWVlYTk2YzQ1YWVjZTg3MDdmNWNjOTdkNmI2MTMgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206IE1hcmNpbiBQdWMgPHRyYW56eXN0b3Jlay5pb0Bwcm90b25tYWls LmNvbT4KRGF0ZTogV2VkLCAyMiBGZWIgMjAyMyAyMDoyNToxOSArMDEwMApTdWJqZWN0OiBbUEFU Q0ggMjYvMzJdIGlzcGM6IHVwZGF0ZSB0byAxLjE4LjEucjI5MCtlODhlNDllCgotLS0KIC4uLi9p c3BjL3BhdGNoZXMvY21ha2UtYnVpbGQtdHlwZS1ub25lLnBhdGNoICB8ICAgMjUgKy0KIHNyY3Br Z3MvaXNwYy9wYXRjaGVzL2xsdm0xMi0wMDEucGF0Y2ggICAgICAgICB8ICAgNTcgLQogc3JjcGtn cy9pc3BjL3BhdGNoZXMvbGx2bTEyLTAwMi5wYXRjaCAgICAgICAgIHwgIDkyMyAtLS0tLS0tLQog c3JjcGtncy9pc3BjL3BhdGNoZXMvbGx2bTEyLTAwMy5wYXRjaCAgICAgICAgIHwgMTUwNCAtLS0t LS0tLS0tLS0KIHNyY3BrZ3MvaXNwYy9wYXRjaGVzL2xsdm0xMi0wMDQucGF0Y2ggICAgICAgICB8 ICAgMzQgLQogc3JjcGtncy9pc3BjL3BhdGNoZXMvbGx2bTEyLTAwNS5wYXRjaCAgICAgICAgIHwg IDM3MiAtLS0KIHNyY3BrZ3MvaXNwYy9wYXRjaGVzL2xsdm0xMi0wMDYucGF0Y2ggICAgICAgICB8 ICAxMjYgLQogc3JjcGtncy9pc3BjL3BhdGNoZXMvbGx2bTEyLTAwNy5wYXRjaCAgICAgICAgIHwg IDE2MCAtLQogc3JjcGtncy9pc3BjL3BhdGNoZXMvbGx2bTEyLTAwOC5wYXRjaCAgICAgICAgIHwg IDE0OSAtLQogc3JjcGtncy9pc3BjL3BhdGNoZXMvbGx2bTEyLTAwOS5wYXRjaCAgICAgICAgIHwg MjEwOSAtLS0tLS0tLS0tLS0tLS0tLQogc3JjcGtncy9pc3BjL3RlbXBsYXRlICAgICAgICAgICAg ICAgICAgICAgICAgIHwgICAxMyArLQogMTEgZmlsZXMgY2hhbmdlZCwgMTcgaW5zZXJ0aW9ucygr KSwgNTQ1NSBkZWxldGlvbnMoLSkKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2lzcGMvcGF0 Y2hlcy9sbHZtMTItMDAxLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9pc3BjL3Bh dGNoZXMvbGx2bTEyLTAwMi5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvaXNwYy9w YXRjaGVzL2xsdm0xMi0wMDMucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2lzcGMv cGF0Y2hlcy9sbHZtMTItMDA0LnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9pc3Bj L3BhdGNoZXMvbGx2bTEyLTAwNS5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvaXNw Yy9wYXRjaGVzL2xsdm0xMi0wMDYucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2lz cGMvcGF0Y2hlcy9sbHZtMTItMDA3LnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9p c3BjL3BhdGNoZXMvbGx2bTEyLTAwOC5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mv aXNwYy9wYXRjaGVzL2xsdm0xMi0wMDkucGF0Y2gKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2lzcGMv cGF0Y2hlcy9jbWFrZS1idWlsZC10eXBlLW5vbmUucGF0Y2ggYi9zcmNwa2dzL2lzcGMvcGF0Y2hl cy9jbWFrZS1idWlsZC10eXBlLW5vbmUucGF0Y2gKaW5kZXggNDExZTM1M2M3MzE0Li5hOTYyNjE5 ZDkzMzUgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvaXNwYy9wYXRjaGVzL2NtYWtlLWJ1aWxkLXR5cGUt bm9uZS5wYXRjaAorKysgYi9zcmNwa2dzL2lzcGMvcGF0Y2hlcy9jbWFrZS1idWlsZC10eXBlLW5v bmUucGF0Y2gKQEAgLTEsMTggKzEsMTMgQEAKLUluZGV4OiBpc3BjLTEuMTUuMC9DTWFrZUxpc3Rz LnR4dAotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQotLS0tIGlzcGMtMS4xNS4wLm9yaWcvQ01ha2VMaXN0cy50eHQKLSsr KyBpc3BjLTEuMTUuMC9DTWFrZUxpc3RzLnR4dAotQEAgLTE1NywxMyArMTU3LDYgQEAgc2V0KE9V VFBVVF9SRUxFQVNFIFJlbGVhc2UvYmluKQotIHNldChDTUFLRV9SVU5USU1FX09VVFBVVF9ESVJF Q1RPUlkgJHtDTUFLRV9DVVJSRU5UX0JJTkFSWV9ESVJ9L2JpbiApCitkaWZmIC0tZ2l0IGEvQ01h a2VMaXN0cy50eHQgYi9DTWFrZUxpc3RzLnR4dAoraW5kZXggYzY5NDE2Ni4uNDA1ZGM5MCAxMDA2 NDQKKy0tLSBhL0NNYWtlTGlzdHMudHh0CisrKysgYi9DTWFrZUxpc3RzLnR4dAorQEAgLTE5OSw3 ICsxOTksNyBAQCBzZXQoQ01BS0VfUlVOVElNRV9PVVRQVVRfRElSRUNUT1JZICR7Q01BS0VfQ1VS UkVOVF9CSU5BUllfRElSfS9iaW4gKQogIAogIGlmKENNQUtFX0JVSUxEX1RZUEUpCi0tICAgICMg VmFsaWRhdGUgYnVpbGQgdHlwZQorICAgICAjIFZhbGlkYXRlIGJ1aWxkIHR5cGUKIC0gICAgc2V0 KENPTkZJR1VSQVRJT05fVFlQRVMgIkRlYnVnO1JlbGVhc2U7UmVsV2l0aERlYkluZm8iKQotLQot LSAgICBzdHJpbmcoRklORCAiJHtDT05GSUdVUkFUSU9OX1RZUEVTfSIgIiR7Q01BS0VfQlVJTERf VFlQRX0iIE1BVENIRURfQ09ORklHKQotLSAgICBpZiAoJHtNQVRDSEVEX0NPTkZJR30gRVFVQUwg LTEpCi0tICAgICAgICAgbWVzc2FnZShGQVRBTF9FUlJPUiAiQ01BS0VfQlVJTERfVFlQRSAoJHtD TUFLRV9CVUlMRF9UWVBFfSkgYWxsb3dzIG9ubHkgdGhlIGZvbGxvd2luZyB2YWx1ZXM6ICR7Q09O RklHVVJBVElPTl9UWVBFU30iKQotLSAgICBlbmRpZigpCi0gZWxzZShOT1QgQ01BS0VfQlVJTERf VFlQRSkKLSAgICAgc2V0KENNQUtFX0JVSUxEX1RZUEUgIlJlbGVhc2UiKQotICAgICBtZXNzYWdl KFNUQVRVUyAiQnVpbGQgdHlwZSBub3Qgc3BlY2lmaWVkOiBVc2UgUmVsZWFzZSBieSBkZWZhdWx0 LiIpCisrICAgIHNldChDT05GSUdVUkFUSU9OX1RZUEVTICJEZWJ1ZztSZWxlYXNlO1JlbFdpdGhE ZWJJbmZvO05vbmUiKQorIAorICAgICBzdHJpbmcoRklORCAiJHtDT05GSUdVUkFUSU9OX1RZUEVT fSIgIiR7Q01BS0VfQlVJTERfVFlQRX0iIE1BVENIRURfQ09ORklHKQorICAgICBpZiAoJHtNQVRD SEVEX0NPTkZJR30gRVFVQUwgLTEpCmRpZmYgLS1naXQgYS9zcmNwa2dzL2lzcGMvcGF0Y2hlcy9s bHZtMTItMDAxLnBhdGNoIGIvc3JjcGtncy9pc3BjL3BhdGNoZXMvbGx2bTEyLTAwMS5wYXRjaApk ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWYyZDNmNWE0MDllLi4wMDAwMDAwMDAwMDAK LS0tIGEvc3JjcGtncy9pc3BjL3BhdGNoZXMvbGx2bTEyLTAwMS5wYXRjaAorKysgL2Rldi9udWxs CkBAIC0xLDU3ICswLDAgQEAKLUZyb20gMWMwZjg5ZGNjYjc3NGYyMTZjN2Y2ZTc2YTk5ZWU5MDdh MWU2NDFjYiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IERtaXRyeSBCYWJva2luIDxk bWl0cnkueS5iYWJva2luQGludGVsLmNvbT4KLURhdGU6IFR1ZSwgMjIgRGVjIDIwMjAgMTc6MDM6 NTkgLTA4MDAKLVN1YmplY3Q6IFtQQVRDSF0gRml4IHRvIHdvcmsgd2l0aCBMTFZNIHRydW5rIGFm dGVyIGxsdm0vbGx2bS1wcm9qZWN0QDQxYzNiMjcxMwotCi0tLS0KLSBzcmMvY3R4LmNwcCB8IDE4 ICsrKysrKysrKysrKy0tLS0tLQotIDEgZmlsZSBjaGFuZ2VkLCAxMiBpbnNlcnRpb25zKCspLCA2 IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvc3JjL2N0eC5jcHAgYi9zcmMvY3R4LmNwcAot aW5kZXggNmZiYjhiOWNmLi45NzdlOWQyMjIgMTAwNjQ0Ci0tLS0gYS9zcmMvY3R4LmNwcAotKysr IGIvc3JjL2N0eC5jcHAKLUBAIC0xNDczLDExICsxNDczLDE1IEBAIHZvaWQgRnVuY3Rpb25FbWl0 Q29udGV4dDo6QWRkRGVidWdQb3MobGx2bTo6VmFsdWUgKnZhbHVlLCBjb25zdCBTb3VyY2VQb3Mg KnBvcywKLSAgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmluc3QgPSBsbHZtOjpkeW5fY2FzdDxsbHZt OjpJbnN0cnVjdGlvbj4odmFsdWUpOwotICAgICBpZiAoaW5zdCAhPSBOVUxMICYmIG0tPmRpQnVp bGRlcikgewotICAgICAgICAgU291cmNlUG9zIHAgPSBwb3MgPyAqcG9zIDogY3VycmVudFBvczsK LS0gICAgICAgIGlmIChwLmZpcnN0X2xpbmUgIT0gMCkKLSsgICAgICAgIGlmIChwLmZpcnN0X2xp bmUgIT0gMCkgewotICAgICAgICAgICAgIC8vIElmIGZpcnN0X2xpbmUgPT0gMCwgdGhlbiB3ZSdy ZSBpbiB0aGUgbWlkZGxlIG9mIHNldHRpbmcgdXAKLSAgICAgICAgICAgICAvLyB0aGUgc3RhbmRh cmQgbGlicmFyeSBvciB0aGUgbGlrZTsgZG9uJ3QgYWRkIGRlYnVnIHBvc2l0aW9ucwotICAgICAg ICAgICAgIC8vIGZvciB0aG9zZSBmdW5jdGlvbnMKLS0gICAgICAgICAgICBpbnN0LT5zZXREZWJ1 Z0xvYyhsbHZtOjpEZWJ1Z0xvYzo6Z2V0KHAuZmlyc3RfbGluZSwgcC5maXJzdF9jb2x1bW4sIHNj b3BlID8gc2NvcGUgOiBHZXRESVNjb3BlKCkpKTsKLSsgICAgICAgICAgICBzY29wZSA9IHNjb3Bl ID8gc2NvcGUgOiBHZXRESVNjb3BlKCk7Ci0rICAgICAgICAgICAgbGx2bTo6RGVidWdMb2MgZGlM b2MgPQotKyAgICAgICAgICAgICAgICBsbHZtOjpESUxvY2F0aW9uOjpnZXQoc2NvcGUtPmdldENv bnRleHQoKSwgcC5maXJzdF9saW5lLCBwLmZpcnN0X2NvbHVtbiwgc2NvcGUsIG51bGxwdHIsIGZh bHNlKTsKLSsgICAgICAgICAgICBpbnN0LT5zZXREZWJ1Z0xvYyhkaUxvYyk7Ci0rICAgICAgICB9 Ci0gICAgIH0KLSB9Ci0gCi1AQCAtMTUxOCw5ICsxNTIyLDEwIEBAIHZvaWQgRnVuY3Rpb25FbWl0 Q29udGV4dDo6RW1pdFZhcmlhYmxlRGVidWdJbmZvKFN5bWJvbCAqc3ltKSB7Ci0gICAgIGxsdm06 OkRJTG9jYWxWYXJpYWJsZSAqdmFyID0gbS0+ZGlCdWlsZGVyLT5jcmVhdGVBdXRvVmFyaWFibGUo Ci0gICAgICAgICBzY29wZSwgc3ltLT5uYW1lLCBzeW0tPnBvcy5HZXRESUZpbGUoKSwgc3ltLT5w b3MuZmlyc3RfbGluZSwgZGlUeXBlLCB0cnVlIC8qIHByZXNlcnZlIHRocm91Z2ggb3B0cyAqLyk7 Ci0gCi0rICAgIGxsdm06OkRlYnVnTG9jIGRpTG9jID0KLSsgICAgICAgIGxsdm06OkRJTG9jYXRp b246OmdldChzY29wZS0+Z2V0Q29udGV4dCgpLCBzeW0tPnBvcy5maXJzdF9saW5lLCBzeW0tPnBv cy5maXJzdF9jb2x1bW4sIHNjb3BlLCBudWxscHRyLCBmYWxzZSk7Ci0gICAgIGxsdm06Okluc3Ry dWN0aW9uICpkZWNsYXJlSW5zdCA9Ci0tICAgICAgICBtLT5kaUJ1aWxkZXItPmluc2VydERlY2xh cmUoc3ltLT5zdG9yYWdlUHRyLCB2YXIsIG0tPmRpQnVpbGRlci0+Y3JlYXRlRXhwcmVzc2lvbigp LAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06OkRlYnVnTG9jOjpn ZXQoc3ltLT5wb3MuZmlyc3RfbGluZSwgc3ltLT5wb3MuZmlyc3RfY29sdW1uLCBzY29wZSksIGJi bG9jayk7Ci0rICAgICAgICBtLT5kaUJ1aWxkZXItPmluc2VydERlY2xhcmUoc3ltLT5zdG9yYWdl UHRyLCB2YXIsIG0tPmRpQnVpbGRlci0+Y3JlYXRlRXhwcmVzc2lvbigpLCBkaUxvYywgYmJsb2Nr KTsKLSAgICAgQWRkRGVidWdQb3MoZGVjbGFyZUluc3QsICZzeW0tPnBvcywgc2NvcGUpOwotIH0K LSAKLUBAIC0xNTM1LDkgKzE1NDAsMTAgQEAgdm9pZCBGdW5jdGlvbkVtaXRDb250ZXh0OjpFbWl0 RnVuY3Rpb25QYXJhbWV0ZXJEZWJ1Z0luZm8oU3ltYm9sICpzeW0sIGludCBhcmdOdW0KLSAgICAg ICAgIG0tPmRpQnVpbGRlci0+Y3JlYXRlUGFyYW1ldGVyVmFyaWFibGUoc2NvcGUsIHN5bS0+bmFt ZSwgYXJnTnVtICsgMSwgc3ltLT5wb3MuR2V0RElGaWxlKCksIHN5bS0+cG9zLmZpcnN0X2xpbmUs Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpVHlwZSwg dHJ1ZSAvKiBwcmVzZXJ2ZSB0aHJvdWdoIG9wdHMgKi8sIGZsYWdzKTsKLSAKLSsgICAgbGx2bTo6 RGVidWdMb2MgZGlMb2MgPQotKyAgICAgICAgbGx2bTo6RElMb2NhdGlvbjo6Z2V0KHNjb3BlLT5n ZXRDb250ZXh0KCksIHN5bS0+cG9zLmZpcnN0X2xpbmUsIHN5bS0+cG9zLmZpcnN0X2NvbHVtbiwg c2NvcGUsIG51bGxwdHIsIGZhbHNlKTsKLSAgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmRlY2xhcmVJ bnN0ID0KLS0gICAgICAgIG0tPmRpQnVpbGRlci0+aW5zZXJ0RGVjbGFyZShzeW0tPnN0b3JhZ2VQ dHIsIHZhciwgbS0+ZGlCdWlsZGVyLT5jcmVhdGVFeHByZXNzaW9uKCksCi0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6RGVidWdMb2M6OmdldChzeW0tPnBvcy5maXJz dF9saW5lLCBzeW0tPnBvcy5maXJzdF9jb2x1bW4sIHNjb3BlKSwgYmJsb2NrKTsKLSsgICAgICAg IG0tPmRpQnVpbGRlci0+aW5zZXJ0RGVjbGFyZShzeW0tPnN0b3JhZ2VQdHIsIHZhciwgbS0+ZGlC dWlsZGVyLT5jcmVhdGVFeHByZXNzaW9uKCksIGRpTG9jLCBiYmxvY2spOwotICAgICBBZGREZWJ1 Z1BvcyhkZWNsYXJlSW5zdCwgJnN5bS0+cG9zLCBzY29wZSk7Ci0gfQotIApkaWZmIC0tZ2l0IGEv c3JjcGtncy9pc3BjL3BhdGNoZXMvbGx2bTEyLTAwMi5wYXRjaCBiL3NyY3BrZ3MvaXNwYy9wYXRj aGVzL2xsdm0xMi0wMDIucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA5MDNm MzBkYTEwZC4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvaXNwYy9wYXRjaGVzL2xsdm0xMi0w MDIucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw5MjMgKzAsMCBAQAotRnJvbSAwNTk3YTc5ZDA4 NGMwMTQ3ODAxMzZkYTkwNmFmZTIxZDE1ZTk4MmNiIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQot RnJvbTogRGVlcGFrUmFqZW5kcmFrdW1hcmFuIDxkZWVwYWsucmFqZW5kcmFrdW1hcmFuQGludGVs LmNvbT4KLURhdGU6IFR1ZSwgNSBKYW4gMjAyMSAxMzo1MzozMCAtMDgwMAotU3ViamVjdDogW1BB VENIXSBSZW1vdmUgTExWTSA4LjAgYW5kIExMVk0gOS4wLiAoIzE5NjYpCi0KLS0tLQotIC5hcHB2 ZXlvci55bWwgICAgICAgICAgICAgICAgICAgICAgICB8ICAzIC0tCi0gLnRyYXZpcy55bWwgICAg ICAgICAgICAgICAgICAgICAgICAgIHwgIDcgLS0tCi0gQ01ha2VMaXN0cy50eHQgICAgICAgICAg ICAgICAgICAgICAgIHwgMTIgKystLS0tCi0gc3JjL2FzdC5jcHAgICAgICAgICAgICAgICAgICAg ICAgICAgIHwgIDQgLS0KLSBzcmMvY3R4LmNwcCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAz MCAtLS0tLS0tLS0tLS0tCi0gc3JjL2dlbi9HbG9iYWxzTG9jYWxpemF0aW9uLmNwcCAgICAgIHwg IDQgLS0KLSBzcmMvaXNwYy5jcHAgICAgICAgICAgICAgICAgICAgICAgICAgfCAyMCAtLS0tLS0t LS0KLSBzcmMvaXNwYy5oICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMyArLQotIHNyYy9p c3BjX3ZlcnNpb24uaCAgICAgICAgICAgICAgICAgICB8ICA0ICstCi0gc3JjL21haW4uY3BwICAg ICAgICAgICAgICAgICAgICAgICAgIHwgMTMgLS0tLS0tCi0gc3JjL21vZHVsZS5jcHAgICAgICAg ICAgICAgICAgICAgICAgIHwgMjcgLS0tLS0tLS0tLS0tCi0gc3JjL21vZHVsZS5oICAgICAgICAg ICAgICAgICAgICAgICAgIHwgIDIgLQotIHNyYy9vcHQuY3BwICAgICAgICAgICAgICAgICAgICAg ICAgICB8IDY0ICsrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSBzcmMvdHlwZS5jcHAgICAg ICAgICAgICAgICAgICAgICAgICAgfCAxMCArKy0tLQotIHRlc3RzL2xpdC10ZXN0cy8xNzcxLmlz cGMgICAgICAgICAgICB8ICAxIC0KLSB0ZXN0cy9saXQtdGVzdHMvMTg0NC5pc3BjICAgICAgICAg ICAgfCAgMyAtLQotIHRlc3RzL2xpdC10ZXN0cy8xOTI2LmlzcGMgICAgICAgICAgICB8ICAyIC0K LSB0ZXN0cy9saXQtdGVzdHMvY3B1c194ODYuaXNwYyAgICAgICAgfCAgMiArCi0gdGVzdHMvbGl0 LXRlc3RzL2NwdXNfeDg2X2xsdm0xMC5pc3BjIHwgMTEgLS0tLS0KLSB0ZXN0cy9saXQtdGVzdHMv bGl0LmNmZyAgICAgICAgICAgICAgfCAgNSAtLS0KLSAyMCBmaWxlcyBjaGFuZ2VkLCAxNCBpbnNl cnRpb25zKCspLCAyMTMgZGVsZXRpb25zKC0pCi0gZGVsZXRlIG1vZGUgMTAwNjQ0IHRlc3RzL2xp dC10ZXN0cy9jcHVzX3g4Nl9sbHZtMTAuaXNwYwotCi1kaWZmIC0tZ2l0IGEvLmFwcHZleW9yLnlt bCBiLy5hcHB2ZXlvci55bWwKLWluZGV4IDQ1MWE3YjNlMC4uNzk0NWNjYTJhIDEwMDY0NAotLS0t IGEvLmFwcHZleW9yLnltbAotKysrIGIvLmFwcHZleW9yLnltbAotQEAgLTQxLDggKzQxLDYgQEAg ZW52aXJvbm1lbnQ6Ci0gICAgICAgTExWTV9WRVJTSU9OOiBsYXRlc3QKLSAgICAgLSBBUFBWRVlP Ul9CVUlMRF9XT1JLRVJfSU1BR0U6IFZpc3VhbCBTdHVkaW8gMjAxOQotICAgICAgIExMVk1fVkVS U0lPTjogMTAuMAotLSAgICAtIEFQUFZFWU9SX0JVSUxEX1dPUktFUl9JTUFHRTogVmlzdWFsIFN0 dWRpbyAyMDE5Ci0tICAgICAgTExWTV9WRVJTSU9OOiA5LjAKLSAKLSBmb3I6Ci0gLQotQEAgLTYy LDcgKzYwLDYgQEAgZm9yOgotICAgICAgICAgaWYgIiVBUFBWRVlPUl9CVUlMRF9XT1JLRVJfSU1B R0UlIj09IlZpc3VhbCBTdHVkaW8gMjAxOSIgKCAoc2V0IGdlbmVyYXRvcj0iVmlzdWFsIFN0dWRp byAxNiIpICYgKHNldCB2c3ZlcnNpb249MjAxOSkpCi0gICAgICAgICBzZXQgTExWTV9UQVI9bGx2 bS0xMS4wLjAtd2luLnZzMjAxOS1SZWxlYXNlK0Fzc2VydHMteDg2LmFybS53YXNtLjd6Ci0gICAg ICAgICBpZiAiJUxMVk1fVkVSU0lPTiUiPT0iMTAuMCIgKHNldCBMTFZNX1RBUj1sbHZtLTEwLjAu MS13aW4udnMyMDE5LVJlbGVhc2UrQXNzZXJ0cy14ODYuYXJtLndhc20uemlwKQotLSAgICAgICAg aWYgIiVMTFZNX1ZFUlNJT04lIj09IjkuMCIgKHNldCBMTFZNX1RBUj1sbHZtLTkuMC4xLXdpbi52 czIwMTctUmVsZWFzZStBc3NlcnRzLXg4Ni5hcm0ud2FzbS56aXApCi0gICBpbnN0YWxsOgotICAg ICAtIHBzOiBjaG9jbyBpbnN0YWxsIC0tbm8tcHJvZ3Jlc3Mgd2luZmxleGJpc29uMyB3Z2V0IDd6 aXAKLSAgICAgLSBjbWQ6IHwtCi1kaWZmIC0tZ2l0IGEvLnRyYXZpcy55bWwgYi8udHJhdmlzLnlt bAotaW5kZXggMmU5NjAxN2E2Li4zYTZiODUyNjQgMTAwNjQ0Ci0tLS0gYS8udHJhdmlzLnltbAot KysrIGIvLnRyYXZpcy55bWwKLUBAIC0xMDgsMTMgKzEwOCw2IEBAIGpvYnM6Ci0gICAgICAgICAt IExMVk1fVEFSPWxsdm0tMTAuMC4xLXVidW50dTE2LjA0LVJlbGVhc2UrQXNzZXJ0cy14ODYuYXJt Lndhc20udGFyLnh6Ci0gICAgICAgICAtIExMVk1fUkVQTz1odHRwczovL2dpdGh1Yi5jb20vZGJh Ym9raW4vbGx2bS1wcm9qZWN0Ci0gICAgICAgICAtIElTUENfSE9NRT0kVFJBVklTX0JVSUxEX0RJ UgotLSAgICAjIExMVk0gOS4wICsgVWJ1bnR1IDE2LjA0OiBidWlsZCwgbGl0IHRlc3RzLCBleGFt cGxlcyAoYnVpbGQgKyBydW4pLCBiZW5jaG1hcmtzIChidWlsZCArIHRyaWFsIHJ1bikKLS0gICAg LSA8PDogKm15X3RhZwotLSAgICAgIGVudjoKLS0gICAgICAgIC0gTExWTV9WRVJTSU9OPTkuMCBP Uz1VYnVudHUxNi4wNAotLSAgICAgICAgLSBMTFZNX1RBUj1sbHZtLTkuMC4xLXVidW50dTE2LjA0 LVJlbGVhc2UrQXNzZXJ0cy14ODYuYXJtLndhc20udGFyLnh6Ci0tICAgICAgICAtIExMVk1fUkVQ Tz1odHRwczovL2dpdGh1Yi5jb20vZGJhYm9raW4vbGx2bS1wcm9qZWN0Ci0tICAgICAgICAtIElT UENfSE9NRT0kVFJBVklTX0JVSUxEX0RJUgotICAgICAjIFdBU00gZW5hYmxlZCBidWlsZAotICAg ICAjIExMVk0gMTEuMCArIFVidW50dSAxNi4wNDogYnVpbGQsIGxpdCB0ZXN0cywgZXhhbXBsZXMg KGJ1aWxkKSwgYmVuY2htYXJrcyAoYnVpbGQgKyB0cmlhbCBydW4pCi0gICAgIC0gPDw6ICpteV90 YWcKLWRpZmYgLS1naXQgYS9DTWFrZUxpc3RzLnR4dCBiL0NNYWtlTGlzdHMudHh0Ci1pbmRleCA1 ZmE4NjNmY2YuLmE2YjNlZDI1MSAxMDA2NDQKLS0tLSBhL0NNYWtlTGlzdHMudHh0Ci0rKysgYi9D TWFrZUxpc3RzLnR4dAotQEAgLTI0MSwxMCArMjQxLDggQEAgaWYgKFg4Nl9FTkFCTEVEKQotICAg ICAgICAgYXZ4Mi1pOHgzMiBhdngyLWkxNngxNgotICAgICAgICAgYXZ4Mi1pMzJ4NCBhdngyLWkz Mng4IGF2eDItaTMyeDE2IGF2eDItaTY0eDQKLSAgICAgICAgIGF2eDUxMmtubC1pMzJ4MTYKLS0g ICAgICAgIGF2eDUxMnNreC1pMzJ4MTYgYXZ4NTEyc2t4LWkzMng4KQotLSAgICBpZiAoJHtMTFZN X1ZFUlNJT05fTlVNQkVSfSBWRVJTSU9OX0dSRUFURVJfRVFVQUwgIjEwLjAuMCIpCi0tICAgICAg ICBsaXN0KEFQUEVORCBJU1BDX1RBUkdFVFMgYXZ4NTEyc2t4LWk4eDY0IGF2eDUxMnNreC1pMTZ4 MzIpCi0tICAgIGVuZGlmKCkKLSsgICAgICAgIGF2eDUxMnNreC1pMzJ4MTYgYXZ4NTEyc2t4LWkz Mng4Ci0rICAgICAgICBhdng1MTJza3gtaTh4NjQgYXZ4NTEyc2t4LWkxNngzMikKLSBlbmRpZigp Ci0gaWYgKEFSTV9FTkFCTEVEKQotICAgICBsaXN0KEFQUEVORCBJU1BDX1RBUkdFVFMgbmVvbi1p OHgxNiBuZW9uLWkxNng4IG5lb24taTMyeDQgbmVvbi1pMzJ4OCkKLUBAIC0yNTksMTEgKzI1Nyw3 IEBAIGlmIChXQVNNX0VOQUJMRUQpCi0gZW5kaWYoKQotIAotIHNldChDTEFOR19MSUJSQVJZX0xJ U1QgY2xhbmdGcm9udGVuZCBjbGFuZ0RyaXZlciBjbGFuZ1NlcmlhbGl6YXRpb24gY2xhbmdQYXJz ZSBjbGFuZ1NlbWEgY2xhbmdBbmFseXNpcyBjbGFuZ0FTVCBjbGFuZ0Jhc2ljIGNsYW5nRWRpdCBj bGFuZ0xleCkKLS1zZXQoTExWTV9DT01QT05FTlRTIGVuZ2luZSBpcG8gYml0cmVhZGVyIGJpdHdy aXRlciBpbnN0cnVtZW50YXRpb24gbGlua2VyIG9wdGlvbikKLS0KLS1pZiAoJHtMTFZNX1ZFUlNJ T05fTlVNQkVSfSBWRVJTSU9OX0dSRUFURVJfRVFVQUwgIjEwLjAuMCIpCi0tICAgIGxpc3QoQVBQ RU5EIExMVk1fQ09NUE9ORU5UUyBmcm9udGVuZG9wZW5tcCkKLS1lbmRpZigpCi0rc2V0KExMVk1f Q09NUE9ORU5UUyBlbmdpbmUgaXBvIGJpdHJlYWRlciBiaXR3cml0ZXIgaW5zdHJ1bWVudGF0aW9u IGxpbmtlciBvcHRpb24gZnJvbnRlbmRvcGVubXApCi0gCi0gaWYgKFg4Nl9FTkFCTEVEKQotICAg ICBsaXN0KEFQUEVORCBMTFZNX0NPTVBPTkVOVFMgeDg2KQotZGlmZiAtLWdpdCBhL3NyYy9hc3Qu Y3BwIGIvc3JjL2FzdC5jcHAKLWluZGV4IDIwZjc1YTI5Yy4uNWE0M2M0ODU0IDEwMDY0NAotLS0t IGEvc3JjL2FzdC5jcHAKLSsrKyBiL3NyYy9hc3QuY3BwCi1AQCAtNDQsOSArNDQsNyBAQAotICNp bmNsdWRlICJzeW0uaCIKLSAjaW5jbHVkZSAidXRpbC5oIgotIAotLSNpZiBJU1BDX0xMVk1fVkVS U0lPTiA+PSBJU1BDX0xMVk1fMTBfMAotICNpbmNsdWRlIDxsbHZtL1N1cHBvcnQvVGltZVByb2Zp bGVyLmg+Ci0tI2VuZGlmCi0gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0gLy8gQVNUTm9kZQotIAotQEAg LTYyLDkgKzYwLDcgQEAgdm9pZCBBU1Q6OkFkZEZ1bmN0aW9uKFN5bWJvbCAqc3ltLCBTdG10ICpj b2RlKSB7Ci0gfQotIAotIHZvaWQgQVNUOjpHZW5lcmF0ZUlSKCkgewotLSNpZiBJU1BDX0xMVk1f VkVSU0lPTiA+PSBJU1BDX0xMVk1fMTBfMAotICAgICBsbHZtOjpUaW1lVHJhY2VTY29wZSBUaW1l U2NvcGUoIkdlbmVyYXRlSVIiKTsKLS0jZW5kaWYKLSAgICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9 IDA7IGkgPCBmdW5jdGlvbnMuc2l6ZSgpOyArK2kpCi0gICAgICAgICBmdW5jdGlvbnNbaV0tPkdl bmVyYXRlSVIoKTsKLSB9Ci1kaWZmIC0tZ2l0IGEvc3JjL2N0eC5jcHAgYi9zcmMvY3R4LmNwcAot aW5kZXggOTc3ZTlkMjIyLi40MmM0ZWEwOWQgMTAwNjQ0Ci0tLS0gYS9zcmMvY3R4LmNwcAotKysr IGIvc3JjL2N0eC5jcHAKLUBAIC0zMDksMjEgKzMwOSwxMyBAQCBGdW5jdGlvbkVtaXRDb250ZXh0 OjpGdW5jdGlvbkVtaXRDb250ZXh0KEZ1bmN0aW9uICpmdW5jLCBTeW1ib2wgKmZ1blN5bSwgbGx2 bTo6RgotICAgICAgICAgICAgIGNoYXIgYnVmWzI1Nl07Ci0gICAgICAgICAgICAgc25wcmludGYo YnVmLCBzaXplb2YoYnVmKSwgIl9fb2ZmX2FsbF9vbl9tYXNrXyVzIiwgZy0+dGFyZ2V0LT5HZXRJ U0FTdHJpbmcoKSk7Ci0gCi0tI2lmIElTUENfTExWTV9WRVJTSU9OIDw9IElTUENfTExWTV84XzAK LS0gICAgICAgICAgICBsbHZtOjpDb25zdGFudCAqb2ZmRnVuYyA9IG0tPm1vZHVsZS0+Z2V0T3JJ bnNlcnRGdW5jdGlvbihidWYsIExMVk1UeXBlczo6Vm9pZFR5cGUpOwotLSNlbHNlIC8vIExMVk0g OS4wKwotICAgICAgICAgICAgIGxsdm06OkZ1bmN0aW9uQ2FsbGVlIG9mZkZ1bmNDYWxsZWUgPSBt LT5tb2R1bGUtPmdldE9ySW5zZXJ0RnVuY3Rpb24oYnVmLCBMTFZNVHlwZXM6OlZvaWRUeXBlKTsK LSAgICAgICAgICAgICBsbHZtOjpDb25zdGFudCAqb2ZmRnVuYyA9IGxsdm06OmNhc3Q8bGx2bTo6 Q29uc3RhbnQ+KG9mZkZ1bmNDYWxsZWUuZ2V0Q2FsbGVlKCkpOwotLSNlbmRpZgotICAgICAgICAg ICAgIEFzc2VydFBvcyhjdXJyZW50UG9zLCBsbHZtOjppc2E8bGx2bTo6RnVuY3Rpb24+KG9mZkZ1 bmMpKTsKLSAgICAgICAgICAgICBsbHZtOjpCYXNpY0Jsb2NrICpvZmZCQiA9IGxsdm06OkJhc2lj QmxvY2s6OkNyZWF0ZSgqZy0+Y3R4LCAiZW50cnkiLCAobGx2bTo6RnVuY3Rpb24gKilvZmZGdW5j LCAwKTsKLSAgICAgICAgICAgICBsbHZtOjpTdG9yZUluc3QgKmluc3QgPSBuZXcgbGx2bTo6U3Rv cmVJbnN0KExMVk1NYXNrQWxsT2ZmLCBnbG9iYWxBbGxPbk1hc2tQdHIsIG9mZkJCKTsKLSAgICAg ICAgICAgICBpZiAoZy0+b3B0LmZvcmNlQWxpZ25lZE1lbW9yeSkgewotLSNpZiBJU1BDX0xMVk1f VkVSU0lPTiA8PSBJU1BDX0xMVk1fOV8wCi0tICAgICAgICAgICAgICAgIGluc3QtPnNldEFsaWdu bWVudChnLT50YXJnZXQtPmdldE5hdGl2ZVZlY3RvckFsaWdubWVudCgpKTsKLS0jZWxzZSAvLyBM TFZNIDEwLjArCi0gICAgICAgICAgICAgICAgIGluc3QtPnNldEFsaWdubWVudChsbHZtOjpNYXli ZUFsaWduKGctPnRhcmdldC0+Z2V0TmF0aXZlVmVjdG9yQWxpZ25tZW50KCkpLnZhbHVlT3JPbmUo KSk7Ci0tI2VuZGlmCi0gICAgICAgICAgICAgfQotICAgICAgICAgICAgIGxsdm06OlJldHVybklu c3Q6OkNyZWF0ZSgqZy0+Y3R4LCBvZmZCQik7Ci0gICAgICAgICB9Ci1AQCAtMjI4OCwxMSArMjI4 MCw3IEBAIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpMb2FkSW5zdChsbHZtOjpW YWx1ZSAqcHRyLCBjb25zdCBUeXBlICp0eXBlLCBjCi0gI2VuZGlmCi0gCi0gICAgIGlmIChnLT5v cHQuZm9yY2VBbGlnbmVkTWVtb3J5ICYmIGxsdm06OmR5bl9jYXN0PGxsdm06OlZlY3RvclR5cGU+ KHB0LT5nZXRFbGVtZW50VHlwZSgpKSkgewotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA8PSBJU1BD X0xMVk1fOV8wCi0tICAgICAgICBpbnN0LT5zZXRBbGlnbm1lbnQoZy0+dGFyZ2V0LT5nZXROYXRp dmVWZWN0b3JBbGlnbm1lbnQoKSk7Ci0tI2Vsc2UgLy8gTExWTSAxMC4wKwotICAgICAgICAgaW5z dC0+c2V0QWxpZ25tZW50KGxsdm06Ok1heWJlQWxpZ24oZy0+dGFyZ2V0LT5nZXROYXRpdmVWZWN0 b3JBbGlnbm1lbnQoKSkudmFsdWVPck9uZSgpKTsKLS0jZW5kaWYKLSAgICAgfQotIAotICAgICBB ZGREZWJ1Z1BvcyhpbnN0KTsKLUBAIC0yNDMxLDExICsyNDE5LDcgQEAgbGx2bTo6VmFsdWUgKkZ1 bmN0aW9uRW1pdENvbnRleHQ6OkxvYWRJbnN0KGxsdm06OlZhbHVlICpwdHIsIGxsdm06OlZhbHVl ICptYXNrLAotICAgICAgICAgICAgICAgICAvLyB2cyB0aGUgcHJvcGVyIGFsaWdubWVudCBpbiBw cmFjdGljZS4pCi0gICAgICAgICAgICAgICAgIGludCBhbGlnbiA9IDE7Ci0gCi0tI2lmIElTUENf TExWTV9WRVJTSU9OIDw9IElTUENfTExWTV85XzAKLS0gICAgICAgICAgICAgICAgaW5zdC0+c2V0 QWxpZ25tZW50KGFsaWduKTsKLS0jZWxzZSAvLyBMTFZNIDEwLjArCi0gICAgICAgICAgICAgICAg IGluc3QtPnNldEFsaWdubWVudChsbHZtOjpNYXliZUFsaWduKGFsaWduKS52YWx1ZU9yT25lKCkp OwotLSNlbmRpZgotICAgICAgICAgICAgIH0KLSAKLSAgICAgICAgICAgICBBZGREZWJ1Z1Bvcyhp bnN0KTsKLUBAIC0yNjQ5LDExICsyNjMzLDcgQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENv bnRleHQ6OkFsbG9jYUluc3QobGx2bTo6VHlwZSAqbGx2bVR5cGUsIGNvbnN0IGNoYXIgKm4KLSAg ICAgICAgIGFsaWduID0gZy0+dGFyZ2V0LT5nZXROYXRpdmVWZWN0b3JBbGlnbm1lbnQoKTsKLSAK LSAgICAgaWYgKGFsaWduICE9IDApIHsKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPD0gSVNQQ19M TFZNXzlfMAotLSAgICAgICAgaW5zdC0+c2V0QWxpZ25tZW50KGFsaWduKTsKLS0jZWxzZSAvLyBM TFZNIDEwLjArCi0gICAgICAgICBpbnN0LT5zZXRBbGlnbm1lbnQobGx2bTo6TWF5YmVBbGlnbihh bGlnbikudmFsdWVPck9uZSgpKTsKLS0jZW5kaWYKLSAgICAgfQotICAgICAvLyBEb24ndCBhZGQg ZGVidWdnaW5nIGluZm8gdG8gYWxsb2NhIGluc3RydWN0aW9ucwotICAgICByZXR1cm4gaW5zdDsK LUBAIC0yOTI2LDExICsyOTA2LDcgQEAgdm9pZCBGdW5jdGlvbkVtaXRDb250ZXh0OjpTdG9yZUlu c3QobGx2bTo6VmFsdWUgKnZhbHVlLCBsbHZtOjpWYWx1ZSAqcHRyLCBjb25zdAotICAgICBsbHZt OjpTdG9yZUluc3QgKmluc3QgPSBuZXcgbGx2bTo6U3RvcmVJbnN0KHZhbHVlLCBwdHIsIGJibG9j ayk7Ci0gCi0gICAgIGlmIChnLT5vcHQuZm9yY2VBbGlnbmVkTWVtb3J5ICYmIGxsdm06OmR5bl9j YXN0PGxsdm06OlZlY3RvclR5cGU+KHB0LT5nZXRFbGVtZW50VHlwZSgpKSkgewotLSNpZiBJU1BD X0xMVk1fVkVSU0lPTiA8PSBJU1BDX0xMVk1fOV8wCi0tICAgICAgICBpbnN0LT5zZXRBbGlnbm1l bnQoZy0+dGFyZ2V0LT5nZXROYXRpdmVWZWN0b3JBbGlnbm1lbnQoKSk7Ci0tI2Vsc2UgLy8gTExW TSAxMC4wKwotICAgICAgICAgaW5zdC0+c2V0QWxpZ25tZW50KGxsdm06Ok1heWJlQWxpZ24oZy0+ dGFyZ2V0LT5nZXROYXRpdmVWZWN0b3JBbGlnbm1lbnQoKSkudmFsdWVPck9uZSgpKTsKLS0jZW5k aWYKLSAgICAgfQotIAotICNpZmRlZiBJU1BDX0dFTlhfRU5BQkxFRAotQEAgLTMwMjUsMTYgKzMw MDEsMTAgQEAgdm9pZCBGdW5jdGlvbkVtaXRDb250ZXh0OjpNZW1jcHlJbnN0KGxsdm06OlZhbHVl ICpkZXN0LCBsbHZtOjpWYWx1ZSAqc3JjLCBsbHZtOjoKLSAgICAgfQotICAgICBpZiAoYWxpZ24g PT0gTlVMTCkKLSAgICAgICAgIGFsaWduID0gTExWTUludDMyKDEpOwotLSNpZiBJU1BDX0xMVk1f VkVSU0lPTiA8PSBJU1BDX0xMVk1fOF8wCi0tICAgIGxsdm06OkNvbnN0YW50ICptY0Z1bmMgPQot LSAgICAgICAgbS0+bW9kdWxlLT5nZXRPckluc2VydEZ1bmN0aW9uKCJsbHZtLm1lbWNweS5wMGk4 LnAwaTguaTY0IiwgTExWTVR5cGVzOjpWb2lkVHlwZSwgTExWTVR5cGVzOjpWb2lkUG9pbnRlclR5 cGUsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTExWTVR5cGVzOjpW b2lkUG9pbnRlclR5cGUsIExMVk1UeXBlczo6SW50NjRUeXBlLCBMTFZNVHlwZXM6OkJvb2xUeXBl KTsKLS0jZWxzZSAvLyBMTFZNIDkuMCsKLSAgICAgbGx2bTo6RnVuY3Rpb25DYWxsZWUgbWNGdW5j Q2FsbGVlID0KLSAgICAgICAgIG0tPm1vZHVsZS0+Z2V0T3JJbnNlcnRGdW5jdGlvbigibGx2bS5t ZW1jcHkucDBpOC5wMGk4Lmk2NCIsIExMVk1UeXBlczo6Vm9pZFR5cGUsIExMVk1UeXBlczo6Vm9p ZFBvaW50ZXJUeXBlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExM Vk1UeXBlczo6Vm9pZFBvaW50ZXJUeXBlLCBMTFZNVHlwZXM6OkludDY0VHlwZSwgTExWTVR5cGVz OjpCb29sVHlwZSk7Ci0gICAgIGxsdm06OkNvbnN0YW50ICptY0Z1bmMgPSBsbHZtOjpjYXN0PGxs dm06OkNvbnN0YW50PihtY0Z1bmNDYWxsZWUuZ2V0Q2FsbGVlKCkpOwotLSNlbmRpZgotICAgICBB c3NlcnRQb3MoY3VycmVudFBvcywgbWNGdW5jICE9IE5VTEwpOwotICAgICBBc3NlcnRQb3MoY3Vy cmVudFBvcywgbGx2bTo6aXNhPGxsdm06OkZ1bmN0aW9uPihtY0Z1bmMpKTsKLSAKLWRpZmYgLS1n aXQgYS9zcmMvZ2VuL0dsb2JhbHNMb2NhbGl6YXRpb24uY3BwIGIvc3JjL2dlbi9HbG9iYWxzTG9j YWxpemF0aW9uLmNwcAotaW5kZXggMTkzYTY2Mjg5Li5hMTc2ZTk0NjIgMTAwNjQ0Ci0tLS0gYS9z cmMvZ2VuL0dsb2JhbHNMb2NhbGl6YXRpb24uY3BwCi0rKysgYi9zcmMvZ2VuL0dsb2JhbHNMb2Nh bGl6YXRpb24uY3BwCi1AQCAtNDcwLDExICs0NzAsNyBAQCB2b2lkIEdsb2JhbHNMb2NhbGl6YXRp b246OkxvY2FsaXplR2xvYmFscyhMb2NhbGl6YXRpb25JbmZvICZMSSkgewotICAgICAgICAgSW5z dHJ1Y3Rpb24gJkZpcnN0SSA9ICpGbi0+Z2V0RW50cnlCbG9jaygpLmJlZ2luKCk7Ci0gICAgICAg ICBUeXBlICpFbGVtVHkgPSBHVi0+Z2V0VHlwZSgpLT5nZXRFbGVtZW50VHlwZSgpOwotICAgICAg ICAgQWxsb2NhSW5zdCAqQWxsb2NhID0gbmV3IEFsbG9jYUluc3QoRWxlbVR5LCAwLCBHVi0+Z2V0 TmFtZSgpICsgIi5sb2NhbCIsICZGaXJzdEkpOwotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA8PSBJ U1BDX0xMVk1fOV8wCi0tICAgICAgICBBbGxvY2EtPnNldEFsaWdubWVudChHVi0+Z2V0QWxpZ25t ZW50KCkpOwotLSNlbHNlIC8vIExMVk0gMTAuMCsKLSAgICAgICAgIEFsbG9jYS0+c2V0QWxpZ25t ZW50KGxsdm06Ok1heWJlQWxpZ24oR1YtPmdldEFsaWdubWVudCgpKSk7Ci0tI2VuZGlmCi0gICAg ICAgICBpZiAoIWlzYTxVbmRlZlZhbHVlPihHVi0+Z2V0SW5pdGlhbGl6ZXIoKSkpCi0gICAgICAg ICAgICAgbmV3IFN0b3JlSW5zdChHVi0+Z2V0SW5pdGlhbGl6ZXIoKSwgQWxsb2NhLCAmRmlyc3RJ KTsKLSAKLWRpZmYgLS1naXQgYS9zcmMvaXNwYy5jcHAgYi9zcmMvaXNwYy5jcHAKLWluZGV4IGUy ZDBmMjA2ZS4uZmFjNTIzM2Y3IDEwMDY0NAotLS0tIGEvc3JjL2lzcGMuY3BwCi0rKysgYi9zcmMv aXNwYy5jcHAKLUBAIC0yNzIsOSArMjcyLDcgQEAgdHlwZWRlZiBlbnVtIHsKLSAgICAgQ1BVX1Np bHZlcm1vbnQsCi0gCi0gICAgIENQVV9JQ1gsCi0tI2lmIElTUENfTExWTV9WRVJTSU9OID49IElT UENfTExWTV8xMF8wCi0gICAgIENQVV9UR0wsCi0tI2VuZGlmCi0gI2lmIElTUENfTExWTV9WRVJT SU9OID49IElTUENfTExWTV8xMl8wCi0gICAgIENQVV9BREwsCi0gICAgIENQVV9TUFIsCi1AQCAt MzY1LDEwICszNjMsOCBAQCBjbGFzcyBBbGxDUFVzIHsKLSAKLSAgICAgICAgIG5hbWVzW0NQVV9J Q1hdLnB1c2hfYmFjaygiaWNlbGFrZS1zZXJ2ZXIiKTsKLSAgICAgICAgIG5hbWVzW0NQVV9JQ1hd LnB1c2hfYmFjaygiaWN4Iik7Ci0tI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8x MF8wCi0gICAgICAgICBuYW1lc1tDUFVfVEdMXS5wdXNoX2JhY2soInRpZ2VybGFrZSIpOwotICAg ICAgICAgbmFtZXNbQ1BVX1RHTF0ucHVzaF9iYWNrKCJ0Z2wiKTsKLS0jZW5kaWYKLSAjaWYgSVNQ Q19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzEyXzAKLSAgICAgICAgIG5hbWVzW0NQVV9BRExd LnB1c2hfYmFjaygiYWxkZXJsYWtlIik7Ci0gICAgICAgICBuYW1lc1tDUFVfQURMXS5wdXNoX2Jh Y2soImFkbCIpOwotQEAgLTQxMSwxMSArNDA3LDkgQEAgY2xhc3MgQWxsQ1BVcyB7Ci0gICAgICAg ICBjb21wYXRbQ1BVX0FETF0gPSBTZXQoQ1BVX0FETCwgQ1BVX3g4Nl82NCwgQ1BVX0Jvbm5lbGws IENQVV9QZW5yeW4sIENQVV9Db3JlMiwgQ1BVX05laGFsZW0sIENQVV9TaWx2ZXJtb250LAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIENQVV9TYW5keUJyaWRnZSwgQ1BVX0l2eUJyaWRn ZSwgQ1BVX0hhc3dlbGwsIENQVV9Ccm9hZHdlbGwsIENQVV9Ob25lKTsKLSAjZW5kaWYKLS0jaWYg SVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzEwXzAKLSAgICAgICAgIGNvbXBhdFtDUFVf VEdMXSA9Ci0gICAgICAgICAgICAgU2V0KENQVV9UR0wsIENQVV94ODZfNjQsIENQVV9Cb25uZWxs LCBDUFVfUGVucnluLCBDUFVfQ29yZTIsIENQVV9OZWhhbGVtLCBDUFVfU2lsdmVybW9udCwgQ1BV X1NhbmR5QnJpZGdlLAotICAgICAgICAgICAgICAgICBDUFVfSXZ5QnJpZGdlLCBDUFVfSGFzd2Vs bCwgQ1BVX0Jyb2Fkd2VsbCwgQ1BVX1NLWCwgQ1BVX0lDTCwgQ1BVX0lDWCwgQ1BVX05vbmUpOwot LSNlbmRpZgotICAgICAgICAgY29tcGF0W0NQVV9JQ1hdID0gU2V0KENQVV9JQ1gsIENQVV94ODZf NjQsIENQVV9Cb25uZWxsLCBDUFVfUGVucnluLCBDUFVfQ29yZTIsIENQVV9OZWhhbGVtLCBDUFVf U2lsdmVybW9udCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDUFVfU2FuZHlCcmlk Z2UsIENQVV9JdnlCcmlkZ2UsIENQVV9IYXN3ZWxsLCBDUFVfQnJvYWR3ZWxsLCBDUFVfU0tYLCBD UFVfSUNMLCBDUFVfTm9uZSk7Ci0gCi1AQCAtNTU2LDkgKzU1MCw3IEBAIFRhcmdldDo6VGFyZ2V0 KEFyY2ggYXJjaCwgY29uc3QgY2hhciAqY3B1LCBJU1BDVGFyZ2V0IGlzcGNfdGFyZ2V0LCBib29s IHBpYywgYm9vCi0gI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMl8wCi0gICAg ICAgICBjYXNlIENQVV9TUFI6Ci0gI2VuZGlmCi0tI2lmIElTUENfTExWTV9WRVJTSU9OID49IElT UENfTExWTV8xMF8wCi0gICAgICAgICBjYXNlIENQVV9UR0w6Ci0tI2VuZGlmCi0gICAgICAgICBj YXNlIENQVV9JQ1g6Ci0gICAgICAgICBjYXNlIENQVV9JQ0w6Ci0gICAgICAgICBjYXNlIENQVV9T S1g6Ci1AQCAtOTE2LDcgKzkwOCw2IEBAIFRhcmdldDo6VGFyZ2V0KEFyY2ggYXJjaCwgY29uc3Qg Y2hhciAqY3B1LCBJU1BDVGFyZ2V0IGlzcGNfdGFyZ2V0LCBib29sIHBpYywgYm9vCi0gICAgICAg ICB9Ci0gICAgICAgICBicmVhazsKLSAgICAgY2FzZSBJU1BDVGFyZ2V0Ojphdng1MTJza3hfaTh4 NjQ6Ci0tI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMF8wIC8vIExMVk0gMTAu MCsKLSAgICAgICAgIC8vIFRoaXMgdGFyZ2V0IGlzIGVuYWJsZWQgb25seSBmb3IgTExWTSAxMC4w IGFuZCBsYXRlcgotICAgICAgICAgLy8gYmVjYXVzZSBMTFZNIHJlcXVpcmVzIGEgbnVtYmVyIG9m IGZpeGVzLCB3aGljaCBhcmUKLSAgICAgICAgIC8vIGNvbW1pdHRlZCB0byBMTFZNIDExLjAgYW5k IGNhbiBiZSBhcHBsaWVkIHRvIDEwLjAsIGJ1dCBub3QKLUBAIC05MzcsMTIgKzkyOCw3IEBAIFRh cmdldDo6VGFyZ2V0KEFyY2ggYXJjaCwgY29uc3QgY2hhciAqY3B1LCBJU1BDVGFyZ2V0IGlzcGNf dGFyZ2V0LCBib29sIHBpYywgYm9vCi0gICAgICAgICB0aGlzLT5tX2hhc1ZlY1ByZWZldGNoID0g ZmFsc2U7Ci0gICAgICAgICBDUFVmcm9tSVNBID0gQ1BVX1NLWDsKLSAgICAgICAgIGJyZWFrOwot LSNlbHNlCi0tICAgICAgICB1bnN1cHBvcnRlZF90YXJnZXQgPSB0cnVlOwotLSAgICAgICAgYnJl YWs7Ci0tI2VuZGlmCi0gICAgIGNhc2UgSVNQQ1RhcmdldDo6YXZ4NTEyc2t4X2kxNngzMjoKLS0j aWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzEwXzAgLy8gTExWTSAxMC4wKwotICAg ICAgICAgLy8gVGhpcyB0YXJnZXQgaXMgZW5hYmxlZCBvbmx5IGZvciBMTFZNIDEwLjAgYW5kIGxh dGVyCi0gICAgICAgICAvLyBiZWNhdXNlIExMVk0gcmVxdWlyZXMgYSBudW1iZXIgb2YgZml4ZXMs IHdoaWNoIGFyZQotICAgICAgICAgLy8gY29tbWl0dGVkIHRvIExMVk0gMTEuMCBhbmQgY2FuIGJl IGFwcGxpZWQgdG8gMTAuMCwgYnV0IG5vdAotQEAgLTk2MywxMCArOTQ5LDYgQEAgVGFyZ2V0OjpU YXJnZXQoQXJjaCBhcmNoLCBjb25zdCBjaGFyICpjcHUsIElTUENUYXJnZXQgaXNwY190YXJnZXQs IGJvb2wgcGljLCBib28KLSAgICAgICAgIHRoaXMtPm1faGFzVmVjUHJlZmV0Y2ggPSBmYWxzZTsK LSAgICAgICAgIENQVWZyb21JU0EgPSBDUFVfU0tYOwotICAgICAgICAgYnJlYWs7Ci0tI2Vsc2UK LS0gICAgICAgIHVuc3VwcG9ydGVkX3RhcmdldCA9IHRydWU7Ci0tICAgICAgICBicmVhazsKLS0j ZW5kaWYKLSAjaWZkZWYgSVNQQ19BUk1fRU5BQkxFRAotICAgICBjYXNlIElTUENUYXJnZXQ6Om5l b25faTh4MTY6Ci0gICAgICAgICB0aGlzLT5tX2lzYSA9IFRhcmdldDo6TkVPTjsKLUBAIC0xNjYy LDExICsxNjQ0LDkgQEAgR2xvYmFsczo6R2xvYmFscygpIHsKLSAgICAgaXNNdWx0aVRhcmdldENv bXBpbGF0aW9uID0gZmFsc2U7Ci0gICAgIGVycm9yTGltaXQgPSAtMTsKLSAKLS0jaWYgSVNQQ19M TFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzEwXzAKLSAgICAgZW5hYmxlVGltZVRyYWNlID0gZmFs c2U7Ci0gICAgIC8vIHNldCBkZWZhdWx0IGdyYW51bGFyaXR5IHRvIDUwMC4KLSAgICAgdGltZVRy YWNlR3JhbnVsYXJpdHkgPSA1MDA7Ci0tI2VuZGlmCi0gICAgIHRhcmdldCA9IE5VTEw7Ci0gICAg IGN0eCA9IG5ldyBsbHZtOjpMTFZNQ29udGV4dDsKLSAKLWRpZmYgLS1naXQgYS9zcmMvaXNwYy5o IGIvc3JjL2lzcGMuaAotaW5kZXggZTI1ZDg4MzBlLi5kZTM1N2EyMWMgMTAwNjQ0Ci0tLS0gYS9z cmMvaXNwYy5oCi0rKysgYi9zcmMvaXNwYy5oCi1AQCAtNjk1LDEzICs2OTUsMTIgQEAgc3RydWN0 IEdsb2JhbHMgewotIAotICAgICAvKiBOdW1iZXIgb2YgZXJyb3JzIHRvIHNob3cgaW4gSVNQQy4g Ki8KLSAgICAgaW50IGVycm9yTGltaXQ7Ci0tI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENf TExWTV8xMF8wCi0rCi0gICAgIC8qIFdoZW4gdHJ1ZSwgZW5hYmxlIGNvbXBpbGUgdGltZSB0cmFj aW5nLiAqLwotICAgICBib29sIGVuYWJsZVRpbWVUcmFjZTsKLSAKLSAgICAgLyogV2hlbiBjb21w aWxlIHRpbWUgdHJhY2luZyBpcyBlbmFibGVkLCBzZXQgdGltZSBncmFudWxhcml0eS4gKi8KLSAg ICAgaW50IHRpbWVUcmFjZUdyYW51bGFyaXR5OwotLSNlbmRpZgotIH07Ci0gCi0gZW51bSB7Ci1k aWZmIC0tZ2l0IGEvc3JjL2lzcGNfdmVyc2lvbi5oIGIvc3JjL2lzcGNfdmVyc2lvbi5oCi1pbmRl eCBkNzgxMzQ3ZmQuLjQzNGIyZDY3OCAxMDA2NDQKLS0tLSBhL3NyYy9pc3BjX3ZlcnNpb24uaAot KysrIGIvc3JjL2lzcGNfdmVyc2lvbi5oCi1AQCAtNDQsMTMgKzQ0LDExIEBACi0gCi0gI2RlZmlu ZSBJU1BDX0xMVk1fVkVSU0lPTiAoTExWTV9WRVJTSU9OX01BSk9SICogMTAwMDAgKyBMTFZNX1ZF UlNJT05fTUlOT1IgKiAxMDApCi0gCi0tI2RlZmluZSBJU1BDX0xMVk1fOF8wIDgwMDAwCi0tI2Rl ZmluZSBJU1BDX0xMVk1fOV8wIDkwMDAwCi0gI2RlZmluZSBJU1BDX0xMVk1fMTBfMCAxMDAwMDAK LSAjZGVmaW5lIElTUENfTExWTV8xMV8wIDExMDAwMAotICNkZWZpbmUgSVNQQ19MTFZNXzEyXzAg MTIwMDAwCi0gCi0tI2RlZmluZSBPTERFU1RfU1VQUE9SVEVEX0xMVk0gSVNQQ19MTFZNXzhfMAot KyNkZWZpbmUgT0xERVNUX1NVUFBPUlRFRF9MTFZNIElTUENfTExWTV8xMF8wCi0gI2RlZmluZSBM QVRFU1RfU1VQUE9SVEVEX0xMVk0gSVNQQ19MTFZNXzEyXzAKLSAKLSAjaWZkZWYgX19pc3BjX194 c3RyCi1kaWZmIC0tZ2l0IGEvc3JjL21haW4uY3BwIGIvc3JjL21haW4uY3BwCi1pbmRleCA4ZjY0 MzMwY2MuLjVjOTIwZWFiYyAxMDA2NDQKLS0tLSBhL3NyYy9tYWluLmNwcAotKysrIGIvc3JjL21h aW4uY3BwCi1AQCAtNTUsOSArNTUsNyBAQAotICNpbmNsdWRlIDxsbHZtL1N1cHBvcnQvU2lnbmFs cy5oPgotICNpbmNsdWRlIDxsbHZtL1N1cHBvcnQvVGFyZ2V0UmVnaXN0cnkuaD4KLSAjaW5jbHVk ZSA8bGx2bS9TdXBwb3J0L1RhcmdldFNlbGVjdC5oPgotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+ PSBJU1BDX0xMVk1fMTBfMAotICNpbmNsdWRlIDxsbHZtL1N1cHBvcnQvVG9vbE91dHB1dEZpbGUu aD4KLS0jZW5kaWYKLSAKLSAjaWZkZWYgSVNQQ19IT1NUX0lTX1dJTkRPV1MKLSAjZGVmaW5lIHN0 cmNhc2VjbXAgc3RyaWNtcAotQEAgLTE4MSwxMSArMTc5LDkgQEAgc3RhdGljIHZvaWQgbFByaW50 VmVyc2lvbigpIHsKLSAgICAgc25wcmludGYodGFyZ2V0SGVscCwgc2l6ZW9mKHRhcmdldEhlbHAp LCAiWy0tdGFyZ2V0LW9zPTxvcz5dXHRcdFx0U2VsZWN0IHRhcmdldCBPUy4gIDxvcz49eyVzfSIs Ci0gICAgICAgICAgICAgIGctPnRhcmdldF9yZWdpc3RyeS0+Z2V0U3VwcG9ydGVkT1NlcygpLmNf c3RyKCkpOwotICAgICBQcmludFdpdGhXb3JkQnJlYWtzKHRhcmdldEhlbHAsIDI0LCBUZXJtaW5h bFdpZHRoKCksIHN0ZG91dCk7Ci0tI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8x MF8wCi0gICAgIHByaW50ZigiICAgIFstLXRpbWUtdHJhY2VdXHRcdFx0VHVybiBvbiB0aW1lIHBy b2ZpbGVyLiBHZW5lcmF0ZXMgSlNPTiBmaWxlIGJhc2VkIG9uIG91dHB1dCBmaWxlbmFtZS5cbiIp OwotICAgICBwcmludGYoIiAgICBbLS10aW1lLXRyYWNlLWdyYW51bGFyaXR5PTx2YWx1ZT5cdE1p bmltdW0gdGltZSBncmFudWxhcml0eSAoaW4gbWljcm9zZWNvbmRzKSB0cmFjZWQgYnkgdGltZSAi Ci0gICAgICAgICAgICAicHJvZmlsZXIuXG4iKTsKLS0jZW5kaWYKLSAgICAgcHJpbnRmKCIgICAg Wy0tdmVyc2lvbl1cdFx0XHRcdFByaW50IGlzcGMgdmVyc2lvblxuIik7Ci0gI2lmZGVmIElTUENf R0VOWF9FTkFCTEVECi0gICAgIHByaW50ZigiICAgIFstLXZjLW9wdGlvbnM9PFwiLW9wdGlvbjEg LW9wdGlvbjIuLi5cIj5dXHRcdFx0XHRQYXNzIGFkZGl0aW9uYWwgb3B0aW9ucyB0byBWZWN0b3Ig Q29tcGlsZXIgYmFja2VuZFxuIik7Ci1AQCAtNDYyLDcgKzQ1OCw2IEBAIHN0YXRpYyB2b2lkIHNl dENhbGxpbmdDb252KFZlY3RvckNhbGxTdGF0dXMgdmVjdG9yQ2FsbCwgQXJjaCBhcmNoKSB7Ci0g ICAgIH0KLSB9Ci0gCi0tI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMF8wCi0g c3RhdGljIHZvaWQgd3JpdGVDb21waWxlVGltZUZpbGUoY29uc3QgY2hhciAqb3V0RmlsZU5hbWUp IHsKLSAgICAgbGx2bTo6U21hbGxTdHJpbmc8MTI4PiBqc29uRmlsZU5hbWUob3V0RmlsZU5hbWUp OwotICAgICBqc29uRmlsZU5hbWUuYXBwZW5kKCIuanNvbiIpOwotQEAgLTQ3OSw3ICs0NzQsNiBA QCBzdGF0aWMgdm9pZCB3cml0ZUNvbXBpbGVUaW1lRmlsZShjb25zdCBjaGFyICpvdXRGaWxlTmFt ZSkgewotICAgICBvZi0+a2VlcCgpOwotICAgICByZXR1cm47Ci0gfQotLSNlbmRpZgotIAotIHN0 YXRpYyBzdGQ6OnNldDxpbnQ+IFBhcnNpbmdQaGFzZXMoY2hhciAqc3RhZ2VzLCBBcmdFcnJvcnMg JmVycm9ySGFuZGxlcikgewotICAgICBjb25zdGV4cHIgaW50IHBhcnNpbmdfbGltaXQgPSAxMDA7 Ci1AQCAtNzkxLDEyICs3ODUsMTAgQEAgaW50IG1haW4oaW50IEFyZ2MsIGNoYXIgKkFyZ3ZbXSkg ewotICAgICAgICAgICAgIH0KLSAgICAgICAgIH0gZWxzZSBpZiAoIXN0cm5jbXAoYXJndltpXSwg Ii0tZm9yY2UtYWxpZ25tZW50PSIsIDE4KSkgewotICAgICAgICAgICAgIGctPmZvcmNlQWxpZ25t ZW50ID0gYXRvaShhcmd2W2ldICsgMTgpOwotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BD X0xMVk1fMTBfMAotICAgICAgICAgfSBlbHNlIGlmICghc3RyY21wKGFyZ3ZbaV0sICItLXRpbWUt dHJhY2UiKSkgewotICAgICAgICAgICAgIGctPmVuYWJsZVRpbWVUcmFjZSA9IHRydWU7Ci0gICAg ICAgICB9IGVsc2UgaWYgKCFzdHJuY21wKGFyZ3ZbaV0sICItLXRpbWUtdHJhY2UtZ3JhbnVsYXJp dHk9IiwgMjUpKSB7Ci0gICAgICAgICAgICAgZy0+dGltZVRyYWNlR3JhbnVsYXJpdHkgPSBhdG9p KGFyZ3ZbaV0gKyAyNSk7Ci0tI2VuZGlmCi0gICAgICAgICB9IGVsc2UgaWYgKCFzdHJjbXAoYXJn dltpXSwgIi0td29mZiIpIHx8ICFzdHJjbXAoYXJndltpXSwgIi13b2ZmIikpIHsKLSAgICAgICAg ICAgICBnLT5kaXNhYmxlV2FybmluZ3MgPSB0cnVlOwotICAgICAgICAgICAgIGctPmVtaXRQZXJm V2FybmluZ3MgPSBmYWxzZTsKLUBAIC0xMDU5LDcgKzEwNTEsNiBAQCBpbnQgbWFpbihpbnQgQXJn YywgY2hhciAqQXJndltdKSB7Ci0gCi0gICAgIC8vIFRoaXMgbmVlZHMgdG8gaGFwcGVuIGFmdGVy IHRoZSBUYXJnZXRPUyBpcyBkZWNpZGVkLgotICAgICBzZXRDYWxsaW5nQ29udih2ZWN0b3JDYWxs LCBhcmNoKTsKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzEwXzAKLSAgICAg aWYgKGctPmVuYWJsZVRpbWVUcmFjZSkgewotICAgICAgICAgbGx2bTo6dGltZVRyYWNlUHJvZmls ZXJJbml0aWFsaXplKGctPnRpbWVUcmFjZUdyYW51bGFyaXR5LCAiaXNwYyIpOwotICAgICB9Ci1A QCAtMTA3Nyw5ICsxMDY4LDUgQEAgaW50IG1haW4oaW50IEFyZ2MsIGNoYXIgKkFyZ3ZbXSkgewot ICAgICAgICAgfQotICAgICAgICAgbGx2bTo6dGltZVRyYWNlUHJvZmlsZXJDbGVhbnVwKCk7Ci0g ICAgIH0KLS0jZWxzZQotLSAgICBpbnQgcmV0ID0gTW9kdWxlOjpDb21waWxlQW5kT3V0cHV0KGZp bGUsIGFyY2gsIGNwdSwgdGFyZ2V0cywgZmxhZ3MsIG90LCBvdXRGaWxlTmFtZSwgaGVhZGVyRmls ZU5hbWUsIGRlcHNGaWxlTmFtZSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBkZXBzVGFyZ2V0TmFtZSwgaG9zdFN0dWJGaWxlTmFtZSwgZGV2U3R1YkZpbGVOYW1lKTsK LS0jZW5kaWYKLSAgICAgcmV0dXJuIHJldDsKLSB9Ci1kaWZmIC0tZ2l0IGEvc3JjL21vZHVsZS5j cHAgYi9zcmMvbW9kdWxlLmNwcAotaW5kZXggZmU3NDUyZGYxLi5hODVmZWM3N2EgMTAwNjQ0Ci0t LS0gYS9zcmMvbW9kdWxlLmNwcAotKysrIGIvc3JjL21vZHVsZS5jcHAKLUBAIC0xNzAsOSArMTcw LDcgQEAgTW9kdWxlOjpNb2R1bGUoY29uc3QgY2hhciAqZm4pIHsKLSAgICAgbW9kdWxlLT5zZXRE YXRhTGF5b3V0KGctPnRhcmdldC0+Z2V0RGF0YUxheW91dCgpLT5nZXRTdHJpbmdSZXByZXNlbnRh dGlvbigpKTsKLSAKLSAgICAgaWYgKGctPmdlbmVyYXRlRGVidWdnaW5nU3ltYm9scykgewotLSNp ZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTBfMAotICAgICAgICAgbGx2bTo6VGlt ZVRyYWNlU2NvcGUgVGltZVNjb3BlKCJDcmVhdGUgRGVidWcgRGF0YSIpOwotLSNlbmRpZgotICAg ICAgICAgLy8gVG8gZW5hYmxlIGRlYnVnIGluZm9ybWF0aW9uIG9uIFdpbmRvd3MsIHdlIGhhdmUg dG8gbGV0IGxsdm0ga25vdywgdGhhdAotICAgICAgICAgLy8gZGVidWcgaW5mb3JtYXRpb24gc2hv dWxkIGJlIGVtaXR0ZWQgaW4gQ29kZVZpZXcgZm9ybWF0LgotICAgICAgICAgaWYgKGctPnRhcmdl dF9vcyA9PSBUYXJnZXRPUzo6d2luZG93cykgewotQEAgLTIyNiwxMCArMjI0LDggQEAgZXh0ZXJu IFlZX0JVRkZFUl9TVEFURSB5eV9jcmVhdGVfYnVmZmVyKEZJTEUgKiwgaW50KTsKLSBleHRlcm4g dm9pZCB5eV9kZWxldGVfYnVmZmVyKFlZX0JVRkZFUl9TVEFURSk7Ci0gCi0gaW50IE1vZHVsZTo6 Q29tcGlsZUZpbGUoKSB7Ci0tI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMF8w Ci0gICAgIGxsdm06OlRpbWVUcmFjZVNjb3BlIENvbXBpbGVGaWxlVGltZVNjb3BlKAotICAgICAg ICAgIkNvbXBpbGVGaWxlIiwgbGx2bTo6U3RyaW5nUmVmKGZpbGVuYW1lICsgKCJfIiArIHN0ZDo6 c3RyaW5nKGctPnRhcmdldC0+R2V0SVNBU3RyaW5nKCkpKSkpOwotLSNlbmRpZgotICAgICBleHRl cm4gdm9pZCBQYXJzZXJJbml0KCk7Ci0gICAgIFBhcnNlckluaXQoKTsKLSAKLUBAIC0yMzgsMTgg KzIzNCwxNCBAQCBpbnQgTW9kdWxlOjpDb21waWxlRmlsZSgpIHsKLSAgICAgLy8gdmFyaWFibGUg J20nIHRvIGJlIGluaXRpYWxpemVkIGFuZCBhdmFpbGFibGUgKHdoaWNoIGl0IGlzbid0IHVudGls Ci0gICAgIC8vIHRoZSBNb2R1bGUgY29uc3RydWN0b3IgcmV0dXJucy4uLikKLSAgICAgewotLSNp ZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTBfMAotICAgICAgICAgbGx2bTo6VGlt ZVRyYWNlU2NvcGUgVGltZVNjb3BlKCJEZWZpbmVTdGRsaWIiKTsKLS0jZW5kaWYKLSAgICAgICAg IERlZmluZVN0ZGxpYihzeW1ib2xUYWJsZSwgZy0+Y3R4LCBtb2R1bGUsIGctPmluY2x1ZGVTdGRs aWIpOwotICAgICB9Ci0gCi0gICAgIGJvb2wgcnVuUHJlcHJvY2Vzc29yID0gZy0+cnVuQ1BQOwot IAotICAgICBpZiAocnVuUHJlcHJvY2Vzc29yKSB7Ci0tI2lmIElTUENfTExWTV9WRVJTSU9OID49 IElTUENfTExWTV8xMF8wCi0gICAgICAgICBsbHZtOjpUaW1lVHJhY2VTY29wZSBUaW1lU2NvcGUo IkZyb250ZW5kIHBhcnNlciIpOwotLSNlbmRpZgotICAgICAgICAgaWYgKCFJc1N0ZGluKGZpbGVu YW1lKSkgewotICAgICAgICAgICAgIC8vIFRyeSB0byBvcGVuIHRoZSBmaWxlIGZpcnN0LCBzaW5j ZSBvdGhlcndpc2Ugd2UgY3Jhc2ggaW4gdGhlCi0gICAgICAgICAgICAgLy8gcHJlcHJvY2Vzc29y IGlmIHRoZSBmaWxlIGRvZXNuJ3QgZXhpc3QuCi1AQCAtMjY4LDkgKzI2MCw3IEBAIGludCBNb2R1 bGU6OkNvbXBpbGVGaWxlKCkgewotICAgICAgICAgeXlwYXJzZSgpOwotICAgICAgICAgeXlfZGVs ZXRlX2J1ZmZlcihzdHJidWYpOwotICAgICB9IGVsc2UgewotLSNpZiBJU1BDX0xMVk1fVkVSU0lP TiA+PSBJU1BDX0xMVk1fMTBfMAotICAgICAgICAgbGx2bTo6VGltZVRyYWNlU2NvcGUgVGltZVNj b3BlKCJGcm9udGVuZCBwYXJzZXIiKTsKLS0jZW5kaWYKLSAgICAgICAgIC8vIE5vIHByZXByb2Nl c3NvciwganVzdCBvcGVuIHVwIHRoZSBmaWxlIGlmIGl0J3Mgbm90IHN0ZGluLi4KLSAgICAgICAg IEZJTEUgKmYgPSBOVUxMOwotICAgICAgICAgaWYgKElzU3RkaW4oZmlsZW5hbWUpKSB7Ci1AQCAt Mjk3LDkgKzI4Nyw3IEBAIGludCBNb2R1bGU6OkNvbXBpbGVGaWxlKCkgewotIAotICAgICBpZiAo ZGlCdWlsZGVyKQotICAgICAgICAgZGlCdWlsZGVyLT5maW5hbGl6ZSgpOwotLSNpZiBJU1BDX0xM Vk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTBfMAotICAgICBsbHZtOjpUaW1lVHJhY2VTY29wZSBU aW1lU2NvcGUoIk9wdGltaXplIik7Ci0tI2VuZGlmCi0gICAgIGlmIChlcnJvckNvdW50ID09IDAp Ci0gICAgICAgICBPcHRpbWl6ZShtb2R1bGUsIGctPm9wdC5sZXZlbCk7Ci0gCi1AQCAtMTI0Mywx NSArMTIzMSw4IEBAIGJvb2wgTW9kdWxlOjp3cml0ZU9iamVjdEZpbGVPckFzc2VtYmx5KGxsdm06 OlRhcmdldE1hY2hpbmUgKnRhcmdldE1hY2hpbmUsIGxsdm06Ci0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqb3V0RmlsZU5hbWUpIHsKLSAgICAgLy8g RmlndXJlIG91dCBpZiB3ZSdyZSBnZW5lcmF0aW5nIG9iamVjdCBmaWxlIG9yIGFzc2VtYmx5IG91 dHB1dCwgYW5kCi0gICAgIC8vIHNldCBiaW5hcnkgb3V0cHV0IGZvciBvYmplY3QgZmlsZXMKLS0j aWYgSVNQQ19MTFZNX1ZFUlNJT04gPD0gSVNQQ19MTFZNXzlfMAotLSAgICBBc3NlcnQoIWctPnRh cmdldC0+aXNHZW5YVGFyZ2V0KCkpOwotLSAgICBsbHZtOjpUYXJnZXRNYWNoaW5lOjpDb2RlR2Vu RmlsZVR5cGUgZmlsZVR5cGUgPQotLSAgICAgICAgKG91dHB1dFR5cGUgPT0gT2JqZWN0KSA/IGxs dm06OlRhcmdldE1hY2hpbmU6OkNHRlRfT2JqZWN0RmlsZSA6IGxsdm06OlRhcmdldE1hY2hpbmU6 OkNHRlRfQXNzZW1ibHlGaWxlOwotLSAgICBib29sIGJpbmFyeSA9IChmaWxlVHlwZSA9PSBsbHZt OjpUYXJnZXRNYWNoaW5lOjpDR0ZUX09iamVjdEZpbGUpOwotLSNlbHNlIC8vIExMVk0gMTAuMCsK LSAgICAgbGx2bTo6Q29kZUdlbkZpbGVUeXBlIGZpbGVUeXBlID0gKG91dHB1dFR5cGUgPT0gT2Jq ZWN0KSA/IGxsdm06OkNHRlRfT2JqZWN0RmlsZSA6IGxsdm06OkNHRlRfQXNzZW1ibHlGaWxlOwot ICAgICBib29sIGJpbmFyeSA9IChmaWxlVHlwZSA9PSBsbHZtOjpDR0ZUX09iamVjdEZpbGUpOwot LSNlbmRpZgotIAotICAgICBsbHZtOjpzeXM6OmZzOjpPcGVuRmxhZ3MgZmxhZ3MgPSBiaW5hcnkg PyBsbHZtOjpzeXM6OmZzOjpGX05vbmUgOiBsbHZtOjpzeXM6OmZzOjpGX1RleHQ7Ci0gCi1AQCAt MjIxOSwxMSArMjIwMCw3IEBAIHZvaWQgTW9kdWxlOjpleGVjUHJlcHJvY2Vzc29yKGNvbnN0IGNo YXIgKmluZmlsZW5hbWUsIGxsdm06OnJhd19zdHJpbmdfb3N0cmVhbSAqCi0gICAgIGluc3Quc2V0 VGFyZ2V0KHRhcmdldCk7Ci0gICAgIGluc3QuY3JlYXRlU291cmNlTWFuYWdlcihpbnN0LmdldEZp bGVNYW5hZ2VyKCkpOwotIAotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA8PSBJU1BDX0xMVk1fOV8w Ci0tICAgIGNsYW5nOjpGcm9udGVuZElucHV0RmlsZSBpbnB1dEZpbGUoaW5maWxlbmFtZSwgY2xh bmc6OklucHV0S2luZDo6VW5rbm93bik7Ci0tI2Vsc2UgLy8gTExWTSAxMC4wKwotICAgICBjbGFu Zzo6RnJvbnRlbmRJbnB1dEZpbGUgaW5wdXRGaWxlKGluZmlsZW5hbWUsIGNsYW5nOjpJbnB1dEtp bmQoKSk7Ci0tI2VuZGlmCi0gCi0gICAgIGluc3QuSW5pdGlhbGl6ZVNvdXJjZU1hbmFnZXIoaW5w dXRGaWxlKTsKLSAKLUBAIC0yNzIyLDkgKzI2OTksNyBAQCBpbnQgTW9kdWxlOjpDb21waWxlQW5k T3V0cHV0KGNvbnN0IGNoYXIgKnNyY0ZpbGUsIEFyY2ggYXJjaCwgY29uc3QgY2hhciAqY3B1LCBz dAotIAotICAgICAgICAgbSA9IG5ldyBNb2R1bGUoc3JjRmlsZSk7Ci0gICAgICAgICBpZiAobS0+ Q29tcGlsZUZpbGUoKSA9PSAwKSB7Ci0tI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExW TV8xMF8wCi0gICAgICAgICAgICAgbGx2bTo6VGltZVRyYWNlU2NvcGUgVGltZVNjb3BlKCJCYWNr ZW5kIik7Ci0tI2VuZGlmCi0gI2lmZGVmIElTUENfR0VOWF9FTkFCTEVECi0gICAgICAgICAgICAg aWYgKG91dHB1dFR5cGUgPT0gQXNtIHx8IG91dHB1dFR5cGUgPT0gT2JqZWN0KSB7Ci0gICAgICAg ICAgICAgICAgIGlmIChnLT50YXJnZXQtPmlzR2VuWFRhcmdldCgpKSB7Ci1AQCAtMjg1NSw5ICsy ODMwLDcgQEAgaW50IE1vZHVsZTo6Q29tcGlsZUFuZE91dHB1dChjb25zdCBjaGFyICpzcmNGaWxl LCBBcmNoIGFyY2gsIGNvbnN0IGNoYXIgKmNwdSwgc3QKLSAKLSAgICAgICAgICAgICBtID0gbmV3 IE1vZHVsZShzcmNGaWxlKTsKLSAgICAgICAgICAgICBpbnQgY29tcGlsZUZpbGVFcnJvciA9IG0t PkNvbXBpbGVGaWxlKCk7Ci0tI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMF8w Ci0gICAgICAgICAgICAgbGx2bTo6VGltZVRyYWNlU2NvcGUgVGltZVNjb3BlKCJCYWNrZW5kIik7 Ci0tI2VuZGlmCi0gICAgICAgICAgICAgaWYgKGNvbXBpbGVGaWxlRXJyb3IgPT0gMCkgewotICAg ICAgICAgICAgICAgICAvLyBDcmVhdGUgdGhlIGRpc3BhdGNoIG1vZHVsZSwgdW5sZXNzIGFscmVh ZHkgY3JlYXRlZDsKLSAgICAgICAgICAgICAgICAgLy8gaW4gdGhlIGxhdHRlciBjYXNlLCBqdXN0 IGRvIHRoZSBjaGVja2luZwotZGlmZiAtLWdpdCBhL3NyYy9tb2R1bGUuaCBiL3NyYy9tb2R1bGUu aAotaW5kZXggNjFkM2NmZWEwLi42MDMxMjRkNTAgMTAwNjQ0Ci0tLS0gYS9zcmMvbW9kdWxlLmgK LSsrKyBiL3NyYy9tb2R1bGUuaAotQEAgLTQzLDkgKzQzLDcgQEAKLSAKLSAjaW5jbHVkZSA8bGx2 bS9JUi9EZWJ1Z0luZm8uaD4KLSAKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZN XzEwXzAKLSAjaW5jbHVkZSA8bGx2bS9TdXBwb3J0L1RpbWVQcm9maWxlci5oPgotLSNlbmRpZgot IAotICNpZmRlZiBJU1BDX0dFTlhfRU5BQkxFRAotICNpbmNsdWRlICJvY2xfaWdjX2ludGVyZmFj ZS9pZ2Nfb2NsX2RldmljZV9jdHguaCIKLWRpZmYgLS1naXQgYS9zcmMvb3B0LmNwcCBiL3NyYy9v cHQuY3BwCi1pbmRleCBhNjU1YTgzNDQuLjViMWFjN2I2MyAxMDA2NDQKLS0tLSBhL3NyYy9vcHQu Y3BwCi0rKysgYi9zcmMvb3B0LmNwcAotQEAgLTY2LDYgKzY2LDcgQEAKLSAjaW5jbHVkZSA8bGx2 bS9JUi9JbnN0cnVjdGlvbnMuaD4KLSAjaW5jbHVkZSA8bGx2bS9JUi9JbnRyaW5zaWNJbnN0Lmg+ Ci0gI2luY2x1ZGUgPGxsdm0vSVIvSW50cmluc2ljcy5oPgotKyNpbmNsdWRlIDxsbHZtL0lSL0lu dHJpbnNpY3NYODYuaD4KLSAjaW5jbHVkZSA8bGx2bS9JUi9MZWdhY3lQYXNzTWFuYWdlci5oPgot ICNpbmNsdWRlIDxsbHZtL0lSL01vZHVsZS5oPgotICNpbmNsdWRlIDxsbHZtL0lSL1BhdHRlcm5N YXRjaC5oPgotQEAgLTg1LDkgKzg2LDYgQEAKLSAjaW5jbHVkZSA8bGx2bS9UcmFuc2Zvcm1zL1Nj YWxhci9JbnN0U2ltcGxpZnlQYXNzLmg+Ci0gI2luY2x1ZGUgPGxsdm0vVHJhbnNmb3Jtcy9VdGls cy5oPgotICNpbmNsdWRlIDxsbHZtL1RyYW5zZm9ybXMvVXRpbHMvQmFzaWNCbG9ja1V0aWxzLmg+ Ci0tI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMF8wCi0tI2luY2x1ZGUgPGxs dm0vSVIvSW50cmluc2ljc1g4Ni5oPgotLSNlbmRpZgotIAotICNpZmRlZiBJU1BDX0hPU1RfSVNf TElOVVgKLSAjaW5jbHVkZSA8YWxsb2NhLmg+Ci1AQCAtMTAwMywxMCArMTAwMSw3IEBAIGJvb2wg SW50cmluc2ljc09wdDo6cnVuT25CYXNpY0Jsb2NrKGxsdm06OkJhc2ljQmxvY2sgJmJiKSB7Ci0g ICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgIGFsaWduID0gY2FsbElu c3QtPmdldENhbGxlZEZ1bmN0aW9uKCkgPT0gYXZ4TWFza2VkTG9hZDMyID8gNCA6IDg7Ci0gICAg ICAgICAgICAgICAgIG5hbWUgPSBMTFZNR2V0TmFtZShjYWxsSW5zdC0+Z2V0QXJnT3BlcmFuZCgw KSwgIl9sb2FkIik7Ci0tI2lmIElTUENfTExWTV9WRVJTSU9OIDw9IElTUENfTExWTV85XzAKLS0g ICAgICAgICAgICAgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmxvYWRJbnN0ID0KLS0gICAgICAgICAg ICAgICAgICAgIG5ldyBsbHZtOjpMb2FkSW5zdChjYXN0UHRyLCBuYW1lLCBmYWxzZSAvKiBub3Qg dm9sYXRpbGUgKi8sIGFsaWduLCAobGx2bTo6SW5zdHJ1Y3Rpb24gKilOVUxMKTsKLS0jZWxpZiBJ U1BDX0xMVk1fVkVSU0lPTiA9PSBJU1BDX0xMVk1fMTBfMAotKyNpZiBJU1BDX0xMVk1fVkVSU0lP TiA9PSBJU1BDX0xMVk1fMTBfMAotICAgICAgICAgICAgICAgICBsbHZtOjpJbnN0cnVjdGlvbiAq bG9hZEluc3QgPSBuZXcgbGx2bTo6TG9hZEluc3QoY2FzdFB0ciwgbmFtZSwgZmFsc2UgLyogbm90 IHZvbGF0aWxlICovLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6TWF5YmVBbGlnbihhbGlnbiksIChsbHZtOjpJ bnN0cnVjdGlvbiAqKU5VTEwpOwotICNlbHNlCi1AQCAtMTA0MywxMyArMTAzOCw4IEBAIGJvb2wg SW50cmluc2ljc09wdDo6cnVuT25CYXNpY0Jsb2NrKGxsdm06OkJhc2ljQmxvY2sgJmJiKSB7Ci0g ICAgICAgICAgICAgICAgICAgICBhbGlnbiA9IGctPnRhcmdldC0+Z2V0TmF0aXZlVmVjdG9yQWxp Z25tZW50KCk7Ci0gICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgIGFs aWduID0gY2FsbEluc3QtPmdldENhbGxlZEZ1bmN0aW9uKCkgPT0gYXZ4TWFza2VkU3RvcmUzMiA/ IDQgOiA4OwotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA8PSBJU1BDX0xMVk1fOV8wCi0tICAgICAg ICAgICAgICAgIGxsdm06OlN0b3JlSW5zdCAqc3RvcmVJbnN0ID0gbmV3IGxsdm06OlN0b3JlSW5z dChydmFsdWUsIGNhc3RQdHIsIChsbHZtOjpJbnN0cnVjdGlvbiAqKU5VTEwpOwotLSAgICAgICAg ICAgICAgICBzdG9yZUluc3QtPnNldEFsaWdubWVudChhbGlnbik7Ci0tI2Vsc2UKLSAgICAgICAg ICAgICAgICAgbGx2bTo6U3RvcmVJbnN0ICpzdG9yZUluc3QgPSBuZXcgbGx2bTo6U3RvcmVJbnN0 KHJ2YWx1ZSwgY2FzdFB0ciwgKGxsdm06Okluc3RydWN0aW9uICopTlVMTCwKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxs dm06Ok1heWJlQWxpZ24oYWxpZ24pLnZhbHVlT3JPbmUoKSk7Ci0tI2VuZGlmCi0gICAgICAgICAg ICAgICAgIGxDb3B5TWV0YWRhdGEoc3RvcmVJbnN0LCBjYWxsSW5zdCk7Ci0gICAgICAgICAgICAg ICAgIGxsdm06OlJlcGxhY2VJbnN0V2l0aEluc3QoY2FsbEluc3QsIHN0b3JlSW5zdCk7Ci0gCi1A QCAtMTA2Niw5ICsxMDU2LDcgQEAgYm9vbCBJbnRyaW5zaWNzT3B0OjpydW5PbkJhc2ljQmxvY2so bGx2bTo6QmFzaWNCbG9jayAmYmIpIHsKLSAKLSBib29sIEludHJpbnNpY3NPcHQ6OnJ1bk9uRnVu Y3Rpb24obGx2bTo6RnVuY3Rpb24gJkYpIHsKLSAKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0g SVNQQ19MTFZNXzEwXzAKLSAgICAgbGx2bTo6VGltZVRyYWNlU2NvcGUgRnVuY1Njb3BlKCJJbnRy aW5zaWNzT3B0OjpydW5PbkZ1bmN0aW9uIiwgRi5nZXROYW1lKCkpOwotLSNlbmRpZgotICAgICBi b29sIG1vZGlmaWVkQW55ID0gZmFsc2U7Ci0gICAgIGZvciAobGx2bTo6QmFzaWNCbG9jayAmQkIg OiBGKSB7Ci0gICAgICAgICBtb2RpZmllZEFueSB8PSBydW5PbkJhc2ljQmxvY2soQkIpOwotQEAg LTEyMzksOSArMTIyNyw3IEBAIGJvb2wgSW5zdHJ1Y3Rpb25TaW1wbGlmeVBhc3M6OnJ1bk9uQmFz aWNCbG9jayhsbHZtOjpCYXNpY0Jsb2NrICZiYikgewotIAotIGJvb2wgSW5zdHJ1Y3Rpb25TaW1w bGlmeVBhc3M6OnJ1bk9uRnVuY3Rpb24obGx2bTo6RnVuY3Rpb24gJkYpIHsKLSAKLS0jaWYgSVNQ Q19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzEwXzAKLSAgICAgbGx2bTo6VGltZVRyYWNlU2Nv cGUgRnVuY1Njb3BlKCJJbnN0cnVjdGlvblNpbXBsaWZ5UGFzczo6cnVuT25GdW5jdGlvbiIsIEYu Z2V0TmFtZSgpKTsKLS0jZW5kaWYKLSAgICAgYm9vbCBtb2RpZmllZEFueSA9IGZhbHNlOwotICAg ICBmb3IgKGxsdm06OkJhc2ljQmxvY2sgJkJCIDogRikgewotICAgICAgICAgbW9kaWZpZWRBbnkg fD0gcnVuT25CYXNpY0Jsb2NrKEJCKTsKLUBAIC0yOTc0LDE2ICsyOTYwLDEwIEBAIHN0YXRpYyBi b29sIGxJbXByb3ZlTWFza2VkU3RvcmUobGx2bTo6Q2FsbEluc3QgKmNhbGxJbnN0KSB7Ci0gCi0g ICAgICAgICAgICAgbHZhbHVlID0gbmV3IGxsdm06OkJpdENhc3RJbnN0KGx2YWx1ZSwgcHRyVHlw ZSwgImx2YWx1ZV90b19wdHJfdHlwZSIsIGNhbGxJbnN0KTsKLSAgICAgICAgICAgICBsQ29weU1l dGFkYXRhKGx2YWx1ZSwgY2FsbEluc3QpOwotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA8PSBJU1BD X0xMVk1fOV8wCi0tICAgICAgICAgICAgc3RvcmUgPQotLSAgICAgICAgICAgICAgICBuZXcgbGx2 bTo6U3RvcmVJbnN0KHJ2YWx1ZSwgbHZhbHVlLCBmYWxzZSAvKiBub3Qgdm9sYXRpbGUgKi8sCi0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZy0+b3B0LmZvcmNlQWxpZ25lZE1l bW9yeSA/IGctPnRhcmdldC0+Z2V0TmF0aXZlVmVjdG9yQWxpZ25tZW50KCkgOiBpbmZvLT5hbGln bik7Ci0tI2Vsc2UKLSAgICAgICAgICAgICBzdG9yZSA9IG5ldyBsbHZtOjpTdG9yZUluc3QoCi0g ICAgICAgICAgICAgICAgIHJ2YWx1ZSwgbHZhbHVlLCBmYWxzZSAvKiBub3Qgdm9sYXRpbGUgKi8s Ci0gICAgICAgICAgICAgICAgIGxsdm06Ok1heWJlQWxpZ24oZy0+b3B0LmZvcmNlQWxpZ25lZE1l bW9yeSA/IGctPnRhcmdldC0+Z2V0TmF0aXZlVmVjdG9yQWxpZ25tZW50KCkgOiBpbmZvLT5hbGln bikKLSAgICAgICAgICAgICAgICAgICAgIC52YWx1ZU9yT25lKCkpOwotLSNlbmRpZgotICAgICAg ICAgfQotICAgICAgICAgaWYgKHN0b3JlICE9IE5VTEwpIHsKLSAgICAgICAgICAgICBsQ29weU1l dGFkYXRhKHN0b3JlLCBjYWxsSW5zdCk7Ci1AQCAtMzA1OSwxMSArMzAzOSw3IEBAIHN0YXRpYyBi b29sIGxJbXByb3ZlTWFza2VkTG9hZChsbHZtOjpDYWxsSW5zdCAqY2FsbEluc3QsIGxsdm06OkJh c2ljQmxvY2s6Oml0ZXJhCi0gICAgICAgICB7Ci0gICAgICAgICAgICAgbGx2bTo6VHlwZSAqcHRy VHlwZSA9IGxsdm06OlBvaW50ZXJUeXBlOjpnZXQoY2FsbEluc3QtPmdldFR5cGUoKSwgMCk7Ci0g ICAgICAgICAgICAgcHRyID0gbmV3IGxsdm06OkJpdENhc3RJbnN0KHB0ciwgcHRyVHlwZSwgInB0 cl9jYXN0X2Zvcl9sb2FkIiwgY2FsbEluc3QpOwotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA8PSBJ U1BDX0xMVk1fOV8wCi0tICAgICAgICAgICAgbG9hZCA9IG5ldyBsbHZtOjpMb2FkSW5zdChwdHIs IGNhbGxJbnN0LT5nZXROYW1lKCksIGZhbHNlIC8qIG5vdCB2b2xhdGlsZSAqLywKLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGctPm9wdC5mb3JjZUFsaWduZWRNZW1vcnkg PyBnLT50YXJnZXQtPmdldE5hdGl2ZVZlY3RvckFsaWdubWVudCgpIDogaW5mby0+YWxpZ24sCi0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGx2bTo6SW5zdHJ1Y3Rpb24g KilOVUxMKTsKLS0jZWxpZiBJU1BDX0xMVk1fVkVSU0lPTiA9PSBJU1BDX0xMVk1fMTBfMAotKyNp ZiBJU1BDX0xMVk1fVkVSU0lPTiA9PSBJU1BDX0xMVk1fMTBfMAotICAgICAgICAgICAgIGxvYWQg PSBuZXcgbGx2bTo6TG9hZEluc3QoCi0gICAgICAgICAgICAgICAgIHB0ciwgY2FsbEluc3QtPmdl dE5hbWUoKSwgZmFsc2UgLyogbm90IHZvbGF0aWxlICovLAotICAgICAgICAgICAgICAgICBsbHZt OjpNYXliZUFsaWduKGctPm9wdC5mb3JjZUFsaWduZWRNZW1vcnkgPyBnLT50YXJnZXQtPmdldE5h dGl2ZVZlY3RvckFsaWdubWVudCgpIDogaW5mby0+YWxpZ24pCi1AQCAtMzEyOSw5ICszMTA1LDcg QEAgYm9vbCBJbXByb3ZlTWVtb3J5T3BzUGFzczo6cnVuT25CYXNpY0Jsb2NrKGxsdm06OkJhc2lj QmxvY2sgJmJiKSB7Ci0gCi0gYm9vbCBJbXByb3ZlTWVtb3J5T3BzUGFzczo6cnVuT25GdW5jdGlv bihsbHZtOjpGdW5jdGlvbiAmRikgewotIAotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BD X0xMVk1fMTBfMAotICAgICBsbHZtOjpUaW1lVHJhY2VTY29wZSBGdW5jU2NvcGUoIkltcHJvdmVN ZW1vcnlPcHNQYXNzOjpydW5PbkZ1bmN0aW9uIiwgRi5nZXROYW1lKCkpOwotLSNlbmRpZgotICAg ICBib29sIG1vZGlmaWVkQW55ID0gZmFsc2U7Ci0gICAgIGZvciAobGx2bTo6QmFzaWNCbG9jayAm QkIgOiBGKSB7Ci0gICAgICAgICBtb2RpZmllZEFueSB8PSBydW5PbkJhc2ljQmxvY2soQkIpOwot QEAgLTM0MjQsOSArMzM5OCw3IEBAIGxsdm06OlZhbHVlICpsR0VQQW5kTG9hZChsbHZtOjpWYWx1 ZSAqYmFzZVB0ciwgaW50NjRfdCBvZmZzZXQsIGludCBhbGlnbiwgbGx2bTo6Ci0gICAgICAgICAg ICAgICAgICAgICAgICAgIGxsdm06OlR5cGUgKnR5cGUpIHsKLSAgICAgbGx2bTo6VmFsdWUgKnB0 ciA9IGxHRVBJbnN0KGJhc2VQdHIsIExMVk1JbnQ2NChvZmZzZXQpLCAibmV3X2Jhc2UiLCBpbnNl cnRCZWZvcmUpOwotICAgICBwdHIgPSBuZXcgbGx2bTo6Qml0Q2FzdEluc3QocHRyLCBsbHZtOjpQ b2ludGVyVHlwZTo6Z2V0KHR5cGUsIDApLCAicHRyX2Nhc3QiLCBpbnNlcnRCZWZvcmUpOwotLSNp ZiBJU1BDX0xMVk1fVkVSU0lPTiA8PSBJU1BDX0xMVk1fOV8wCi0tICAgIHJldHVybiBuZXcgbGx2 bTo6TG9hZEluc3QocHRyLCAiZ2F0aGVyX2xvYWQiLCBmYWxzZSAvKiBub3Qgdm9sYXRpbGUgKi8s IGFsaWduLCBpbnNlcnRCZWZvcmUpOwotLSNlbGlmIElTUENfTExWTV9WRVJTSU9OID09IElTUENf TExWTV8xMF8wCi0rI2lmIElTUENfTExWTV9WRVJTSU9OID09IElTUENfTExWTV8xMF8wCi0gICAg IHJldHVybiBuZXcgbGx2bTo6TG9hZEluc3QocHRyLCAiZ2F0aGVyX2xvYWQiLCBmYWxzZSAvKiBu b3Qgdm9sYXRpbGUgKi8sIGxsdm06Ok1heWJlQWxpZ24oYWxpZ24pLCBpbnNlcnRCZWZvcmUpOwot ICNlbHNlIC8vIExMVk0gMTEuMCsKLSAgICAgcmV0dXJuIG5ldyBsbHZtOjpMb2FkSW5zdChsbHZt OjpkeW5fY2FzdDxsbHZtOjpQb2ludGVyVHlwZT4ocHRyLT5nZXRUeXBlKCkpLT5nZXRQb2ludGVy RWxlbWVudFR5cGUoKSwgcHRyLAotQEAgLTQxMzUsOSArNDEwNyw3IEBAIGJvb2wgR2F0aGVyQ29h bGVzY2VQYXNzOjpydW5PbkJhc2ljQmxvY2sobGx2bTo6QmFzaWNCbG9jayAmYmIpIHsKLSAKLSBi b29sIEdhdGhlckNvYWxlc2NlUGFzczo6cnVuT25GdW5jdGlvbihsbHZtOjpGdW5jdGlvbiAmRikg ewotIAotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTBfMAotICAgICBsbHZt OjpUaW1lVHJhY2VTY29wZSBGdW5jU2NvcGUoIkdhdGhlckNvYWxlc2NlUGFzczo6cnVuT25GdW5j dGlvbiIsIEYuZ2V0TmFtZSgpKTsKLS0jZW5kaWYKLSAgICAgYm9vbCBtb2RpZmllZEFueSA9IGZh bHNlOwotICAgICBmb3IgKGxsdm06OkJhc2ljQmxvY2sgJkJCIDogRikgewotICAgICAgICAgbW9k aWZpZWRBbnkgfD0gcnVuT25CYXNpY0Jsb2NrKEJCKTsKLUBAIC00NDY3LDkgKzQ0MzcsNyBAQCBi b29sIFJlcGxhY2VQc2V1ZG9NZW1vcnlPcHNQYXNzOjpydW5PbkJhc2ljQmxvY2sobGx2bTo6QmFz aWNCbG9jayAmYmIpIHsKLSAKLSBib29sIFJlcGxhY2VQc2V1ZG9NZW1vcnlPcHNQYXNzOjpydW5P bkZ1bmN0aW9uKGxsdm06OkZ1bmN0aW9uICZGKSB7Ci0gCi0tI2lmIElTUENfTExWTV9WRVJTSU9O ID49IElTUENfTExWTV8xMF8wCi0gICAgIGxsdm06OlRpbWVUcmFjZVNjb3BlIEZ1bmNTY29wZSgi UmVwbGFjZVBzZXVkb01lbW9yeU9wc1Bhc3M6OnJ1bk9uRnVuY3Rpb24iLCBGLmdldE5hbWUoKSk7 Ci0tI2VuZGlmCi0gICAgIGJvb2wgbW9kaWZpZWRBbnkgPSBmYWxzZTsKLSAgICAgZm9yIChsbHZt OjpCYXNpY0Jsb2NrICZCQiA6IEYpIHsKLSAgICAgICAgIG1vZGlmaWVkQW55IHw9IHJ1bk9uQmFz aWNCbG9jayhCQik7Ci1AQCAtNDU3Myw5ICs0NTQxLDcgQEAgYm9vbCBJc0NvbXBpbGVUaW1lQ29u c3RhbnRQYXNzOjpydW5PbkJhc2ljQmxvY2sobGx2bTo6QmFzaWNCbG9jayAmYmIpIHsKLSAKLSBi b29sIElzQ29tcGlsZVRpbWVDb25zdGFudFBhc3M6OnJ1bk9uRnVuY3Rpb24obGx2bTo6RnVuY3Rp b24gJkYpIHsKLSAKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzEwXzAKLSAg ICAgbGx2bTo6VGltZVRyYWNlU2NvcGUgRnVuY1Njb3BlKCJJc0NvbXBpbGVUaW1lQ29uc3RhbnRQ YXNzOjpydW5PbkZ1bmN0aW9uIiwgRi5nZXROYW1lKCkpOwotLSNlbmRpZgotICAgICBib29sIG1v ZGlmaWVkQW55ID0gZmFsc2U7Ci0gICAgIGZvciAobGx2bTo6QmFzaWNCbG9jayAmQkIgOiBGKSB7 Ci0gICAgICAgICBtb2RpZmllZEFueSB8PSBydW5PbkJhc2ljQmxvY2soQkIpOwotQEAgLTUyMDEs OSArNTE2Nyw3IEBAIGJvb2wgUGVlcGhvbGVQYXNzOjpydW5PbkJhc2ljQmxvY2sobGx2bTo6QmFz aWNCbG9jayAmYmIpIHsKLSAKLSBib29sIFBlZXBob2xlUGFzczo6cnVuT25GdW5jdGlvbihsbHZt OjpGdW5jdGlvbiAmRikgewotIAotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1f MTBfMAotICAgICBsbHZtOjpUaW1lVHJhY2VTY29wZSBGdW5jU2NvcGUoIlBlZXBob2xlUGFzczo6 cnVuT25GdW5jdGlvbiIsIEYuZ2V0TmFtZSgpKTsKLS0jZW5kaWYKLSAgICAgYm9vbCBtb2RpZmll ZEFueSA9IGZhbHNlOwotICAgICBmb3IgKGxsdm06OkJhc2ljQmxvY2sgJkJCIDogRikgewotICAg ICAgICAgbW9kaWZpZWRBbnkgfD0gcnVuT25CYXNpY0Jsb2NrKEJCKTsKLUBAIC01Mjk5LDkgKzUy NjMsNyBAQCBib29sIFJlcGxhY2VTdGRsaWJTaGlmdFBhc3M6OnJ1bk9uQmFzaWNCbG9jayhsbHZt OjpCYXNpY0Jsb2NrICZiYikgewotIAotIGJvb2wgUmVwbGFjZVN0ZGxpYlNoaWZ0UGFzczo6cnVu T25GdW5jdGlvbihsbHZtOjpGdW5jdGlvbiAmRikgewotIAotLSNpZiBJU1BDX0xMVk1fVkVSU0lP TiA+PSBJU1BDX0xMVk1fMTBfMAotICAgICBsbHZtOjpUaW1lVHJhY2VTY29wZSBGdW5jU2NvcGUo IlJlcGxhY2VTdGRsaWJTaGlmdFBhc3M6OnJ1bk9uRnVuY3Rpb24iLCBGLmdldE5hbWUoKSk7Ci0t I2VuZGlmCi0gICAgIGJvb2wgbW9kaWZpZWRBbnkgPSBmYWxzZTsKLSAgICAgZm9yIChsbHZtOjpC YXNpY0Jsb2NrICZCQiA6IEYpIHsKLSAgICAgICAgIG1vZGlmaWVkQW55IHw9IHJ1bk9uQmFzaWNC bG9jayhCQik7Ci1AQCAtNTM5OSw5ICs1MzYxLDcgQEAgbGx2bTo6SW5zdHJ1Y3Rpb24gKkZpeEJv b2xlYW5TZWxlY3RQYXNzOjpmaXhTZWxlY3QobGx2bTo6U2VsZWN0SW5zdCAqc2VsLCBsbHZtOjoK LSB9Ci0gCi0gYm9vbCBGaXhCb29sZWFuU2VsZWN0UGFzczo6cnVuT25GdW5jdGlvbihsbHZtOjpG dW5jdGlvbiAmRikgewotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTBfMAot ICAgICBsbHZtOjpUaW1lVHJhY2VTY29wZSBGdW5jU2NvcGUoIkZpeEJvb2xlYW5TZWxlY3RQYXNz OjpydW5PbkZ1bmN0aW9uIiwgRi5nZXROYW1lKCkpOwotLSNlbmRpZgotICAgICBib29sIG1vZGlm aWVkQW55ID0gZmFsc2U7Ci0gCi0gICAgIHJldHVybiBtb2RpZmllZEFueTsKLUBAIC01OTY0LDkg KzU5MjQsNyBAQCBib29sIEdlblhHYXRoZXJDb2FsZXNjaW5nOjpydW5PbkJhc2ljQmxvY2sobGx2 bTo6QmFzaWNCbG9jayAmYmIpIHsKLSB9Ci0gCi0gYm9vbCBHZW5YR2F0aGVyQ29hbGVzY2luZzo6 cnVuT25GdW5jdGlvbihsbHZtOjpGdW5jdGlvbiAmRikgewotLSNpZiBJU1BDX0xMVk1fVkVSU0lP TiA+PSBJU1BDX0xMVk1fMTBfMAotICAgICBsbHZtOjpUaW1lVHJhY2VTY29wZSBGdW5jU2NvcGUo IkdlblhHYXRoZXJDb2FsZXNjaW5nOjpydW5PbkZ1bmN0aW9uIiwgRi5nZXROYW1lKCkpOwotLSNl bmRpZgotICAgICBib29sIG1vZGlmaWVkQW55ID0gZmFsc2U7Ci0gICAgIGZvciAobGx2bTo6QmFz aWNCbG9jayAmQkIgOiBGKSB7Ci0gICAgICAgICBtb2RpZmllZEFueSB8PSBydW5PbkJhc2ljQmxv Y2soQkIpOwotQEAgLTYxMTMsOSArNjA3MSw3IEBAIGJvb2wgUHJvbW90ZVRvUHJpdmF0ZU1lbW9y eVBhc3M6OnJ1bk9uQmFzaWNCbG9jayhsbHZtOjpCYXNpY0Jsb2NrICZiYikgewotIAotIGJvb2wg UHJvbW90ZVRvUHJpdmF0ZU1lbW9yeVBhc3M6OnJ1bk9uRnVuY3Rpb24obGx2bTo6RnVuY3Rpb24g JkYpIHsKLSAKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzEwXzAKLSAgICAg bGx2bTo6VGltZVRyYWNlU2NvcGUgRnVuY1Njb3BlKCJQcm9tb3RlVG9Qcml2YXRlTWVtb3J5UGFz czo6cnVuT25GdW5jdGlvbiIsIEYuZ2V0TmFtZSgpKTsKLS0jZW5kaWYKLSAgICAgYm9vbCBtb2Rp ZmllZEFueSA9IGZhbHNlOwotICAgICBmb3IgKGxsdm06OkJhc2ljQmxvY2sgJkJCIDogRikgewot ICAgICAgICAgbW9kaWZpZWRBbnkgfD0gcnVuT25CYXNpY0Jsb2NrKEJCKTsKLUBAIC02MTgxLDkg KzYxMzcsNyBAQCBib29sIFJlcGxhY2VMTFZNSW50cmluc2ljczo6cnVuT25CYXNpY0Jsb2NrKGxs dm06OkJhc2ljQmxvY2sgJmJiKSB7Ci0gCi0gYm9vbCBSZXBsYWNlTExWTUludHJpbnNpY3M6OnJ1 bk9uRnVuY3Rpb24obGx2bTo6RnVuY3Rpb24gJkYpIHsKLSAKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJ T04gPj0gSVNQQ19MTFZNXzEwXzAKLSAgICAgbGx2bTo6VGltZVRyYWNlU2NvcGUgRnVuY1Njb3Bl KCJSZXBsYWNlTExWTUludHJpbnNpY3M6OnJ1bk9uRnVuY3Rpb24iLCBGLmdldE5hbWUoKSk7Ci0t I2VuZGlmCi0gICAgIGJvb2wgbW9kaWZpZWRBbnkgPSBmYWxzZTsKLSAgICAgZm9yIChsbHZtOjpC YXNpY0Jsb2NrICZCQiA6IEYpIHsKLSAgICAgICAgIG1vZGlmaWVkQW55IHw9IHJ1bk9uQmFzaWNC bG9jayhCQik7Ci1AQCAtNjI3OCw5ICs2MjMyLDcgQEAgYm9vbCBSZXBsYWNlVW5zdXBwb3J0ZWRJ bnN0czo6cnVuT25CYXNpY0Jsb2NrKGxsdm06OkJhc2ljQmxvY2sgJmJiKSB7Ci0gCi0gYm9vbCBS ZXBsYWNlVW5zdXBwb3J0ZWRJbnN0czo6cnVuT25GdW5jdGlvbihsbHZtOjpGdW5jdGlvbiAmRikg ewotIAotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTBfMAotICAgICBsbHZt OjpUaW1lVHJhY2VTY29wZSBGdW5jU2NvcGUoIlJlcGxhY2VVbnN1cHBvcnRlZEluc3RzOjpydW5P bkZ1bmN0aW9uIiwgRi5nZXROYW1lKCkpOwotLSNlbmRpZgotICAgICBib29sIG1vZGlmaWVkQW55 ID0gZmFsc2U7Ci0gICAgIGZvciAobGx2bTo6QmFzaWNCbG9jayAmQkIgOiBGKSB7Ci0gICAgICAg ICBtb2RpZmllZEFueSB8PSBydW5PbkJhc2ljQmxvY2soQkIpOwotQEAgLTYzNjksOSArNjMyMSw3 IEBAIGJvb2wgQ2hlY2tVbnN1cHBvcnRlZEluc3RzOjpydW5PbkJhc2ljQmxvY2sobGx2bTo6QmFz aWNCbG9jayAmYmIpIHsKLSB9Ci0gCi0gYm9vbCBDaGVja1Vuc3VwcG9ydGVkSW5zdHM6OnJ1bk9u RnVuY3Rpb24obGx2bTo6RnVuY3Rpb24gJkYpIHsKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0g SVNQQ19MTFZNXzEwXzAKLSAgICAgbGx2bTo6VGltZVRyYWNlU2NvcGUgRnVuY1Njb3BlKCJDaGVj a1Vuc3VwcG9ydGVkSW5zdHM6OnJ1bk9uRnVuY3Rpb24iLCBGLmdldE5hbWUoKSk7Ci0tI2VuZGlm Ci0gICAgIGJvb2wgbW9kaWZpZWRBbnkgPSBmYWxzZTsKLSAgICAgZm9yIChsbHZtOjpCYXNpY0Js b2NrICZCQiA6IEYpIHsKLSAgICAgICAgIG1vZGlmaWVkQW55IHw9IHJ1bk9uQmFzaWNCbG9jayhC Qik7Ci1AQCAtNjQ0MCw5ICs2MzkwLDcgQEAgYm9vbCBNYW5nbGVPcGVuQ0xCdWlsdGluczo6cnVu T25CYXNpY0Jsb2NrKGxsdm06OkJhc2ljQmxvY2sgJmJiKSB7Ci0gfQotIAotIGJvb2wgTWFuZ2xl T3BlbkNMQnVpbHRpbnM6OnJ1bk9uRnVuY3Rpb24obGx2bTo6RnVuY3Rpb24gJkYpIHsKLS0jaWYg SVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzEwXzAKLSAgICAgbGx2bTo6VGltZVRyYWNl U2NvcGUgRnVuY1Njb3BlKCJNYW5nbGVPcGVuQ0xCdWlsdGluczo6cnVuT25GdW5jdGlvbiIsIEYu Z2V0TmFtZSgpKTsKLS0jZW5kaWYKLSAgICAgYm9vbCBtb2RpZmllZEFueSA9IGZhbHNlOwotICAg ICBmb3IgKGxsdm06OkJhc2ljQmxvY2sgJkJCIDogRikgewotICAgICAgICAgbW9kaWZpZWRBbnkg fD0gcnVuT25CYXNpY0Jsb2NrKEJCKTsKLUBAIC02ODI4LDkgKzY3NzYsNyBAQCBib29sIEZpeEFk ZHJlc3NTcGFjZTo6cnVuT25GdW5jdGlvbihsbHZtOjpGdW5jdGlvbiAmRikgewotICAgICAvLyBU cmFuc2Zvcm1hdGlvbnMgYXJlIGNvcnJlY3Qgd2hlbiB0aGUgZnVuY3Rpb24gaXMgbm90IGludGVy bmFsLgotICAgICAvLyBUaGlzIGlzIGR1ZSB0byBhZGRyZXNzIHNwYWNlIGNhbGN1bGF0aW9uIGFs Z29yaXRobS4KLSAgICAgLy8gVE9ETzogcHJvYmxlbXMgY2FuIGJlIG1ldCBpbiBjYXNlIG9mIFN0 YWNrIENhbGxzCi0tI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMF8wCi0gICAg IGxsdm06OlRpbWVUcmFjZVNjb3BlIEZ1bmNTY29wZSgiRml4QWRkcmVzc1NwYWNlOjpydW5PbkZ1 bmN0aW9uIiwgRi5nZXROYW1lKCkpOwotLSNlbmRpZgotICAgICBpZiAoRi5nZXRMaW5rYWdlKCkg PT0gbGx2bTo6R2xvYmFsVmFsdWU6OkxpbmthZ2VUeXBlczo6SW50ZXJuYWxMaW5rYWdlKQotICAg ICAgICAgcmV0dXJuIGZhbHNlOwotIAotQEAgLTY4NTQsOSArNjgwMCw3IEBAIGNsYXNzIERlbW90 ZVBISXMgOiBwdWJsaWMgbGx2bTo6RnVuY3Rpb25QYXNzIHsKLSBjaGFyIERlbW90ZVBISXM6OklE ID0gMDsKLSAKLSBib29sIERlbW90ZVBISXM6OnJ1bk9uRnVuY3Rpb24obGx2bTo6RnVuY3Rpb24g JkYpIHsKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzEwXzAKLSAgICAgbGx2 bTo6VGltZVRyYWNlU2NvcGUgRnVuY1Njb3BlKCJEZW1vdGVQSElzOjpydW5PbkZ1bmN0aW9uIiwg Ri5nZXROYW1lKCkpOwotLSNlbmRpZgotICAgICBpZiAoRi5pc0RlY2xhcmF0aW9uKCkgfHwgc2tp cEZ1bmN0aW9uKEYpKQotICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICBzdGQ6OnZlY3Rvcjxs bHZtOjpJbnN0cnVjdGlvbiAqPiBXb3JrTGlzdDsKLWRpZmYgLS1naXQgYS9zcmMvdHlwZS5jcHAg Yi9zcmMvdHlwZS5jcHAKLWluZGV4IDY4OGE0ZTg3NC4uZmEwY2IwNGRiIDEwMDY0NAotLS0tIGEv c3JjL3R5cGUuY3BwCi0rKysgYi9zcmMvdHlwZS5jcHAKLUBAIC0xODIyLDE0ICsxODIyLDEwIEBA IGxsdm06OkRJVHlwZSAqU3RydWN0VHlwZTo6R2V0RElUeXBlKGxsdm06OkRJU2NvcGUgKnNjb3Bl KSBjb25zdCB7Ci0gICAgIGxsdm06OkRJRmlsZSAqZGlGaWxlID0gcG9zLkdldERJRmlsZSgpOwot ICAgICBsbHZtOjpESU5hbWVzcGFjZSAqZGlTcGFjZSA9IHBvcy5HZXRESU5hbWVzcGFjZSgpOwot ICAgICByZXR1cm4gbS0+ZGlCdWlsZGVyLT5jcmVhdGVTdHJ1Y3RUeXBlKGRpU3BhY2UsIEdldFN0 cmluZygpLCBkaUZpbGUsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgcG9zLmZpcnN0X2xpbmUsICAgICAgICAgIC8vIExpbmUgbnVtYmVyCi0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF5b3V0LT5nZXRTaXplSW5CaXRzKCksIC8v IFNpemUgaW4gYml0cwotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA8PSBJU1BDX0xMVk1fOV8wCi0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF5b3V0LT5nZXRBbGln bm1lbnQoKSAqIDgsIC8vIEFsaWdubWVudCBpbiBiaXRzCi0tI2Vsc2UgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIExMVk0g MTAuMCsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3MuZmly c3RfbGluZSwgICAgICAgICAgICAgICAgICAgICAvLyBMaW5lIG51bWJlcgotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxheW91dC0+Z2V0U2l6ZUluQml0cygpLCAg ICAgICAgICAgIC8vIFNpemUgaW4gYml0cwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGxheW91dC0+Z2V0QWxpZ25tZW50KCkudmFsdWUoKSAqIDgsIC8vIEFsaWdu bWVudCBpbiBiaXRzCi0tI2VuZGlmCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgbGx2bTo6RElOb2RlOjpGbGFnWmVybywgLy8gRmxhZ3MKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpESU5vZGU6OkZsYWdaZXJvLCAgICAg ICAgICAgICAvLyBGbGFncwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIE5VTEwsIGVsZW1lbnRzKTsKLSB9Ci0gCi1kaWZmIC0tZ2l0IGEvdGVzdHMvbGl0LXRlc3Rz LzE3NzEuaXNwYyBiL3Rlc3RzL2xpdC10ZXN0cy8xNzcxLmlzcGMKLWluZGV4IDk4MDY0ZDg0ZC4u NGZlYjczZGQ3IDEwMDY0NAotLS0tIGEvdGVzdHMvbGl0LXRlc3RzLzE3NzEuaXNwYwotKysrIGIv dGVzdHMvbGl0LXRlc3RzLzE3NzEuaXNwYwotQEAgLTUsNyArNSw2IEBACi0gLy8gUlVOOiAle2lz cGN9ICVzIC0tdGFyZ2V0PXNzZTQtaTE2eDggLS1lbWl0LWFzbSAtbyAtIHwgRmlsZUNoZWNrICVz IC1jaGVjay1wcmVmaXg9Q0hFQ0tTU0U0X0kxNlg4Ci0gLy8gUlVOOiAle2lzcGN9ICVzIC0tdGFy Z2V0PXNzZTQtaTh4MTYgLS1lbWl0LWFzbSAtbyAtIHwgRmlsZUNoZWNrICVzIC1jaGVjay1wcmVm aXg9Q0hFQ0tTU0U0X0k4WDE2Ci0gCi0tLy8gUkVRVUlSRVM6IExMVk1fMTBfMCsKLSAvLyBSRVFV SVJFUzogWDg2X0VOQUJMRUQKLSAKLSAvLyBDSEVDS0FWWDJfSTMyWDg6IHt7W2Etel0qeG9yW2Et el0qfX0gICV4bW0wLCAleG1tMCwgJXhtbTAKLWRpZmYgLS1naXQgYS90ZXN0cy9saXQtdGVzdHMv MTg0NC5pc3BjIGIvdGVzdHMvbGl0LXRlc3RzLzE4NDQuaXNwYwotaW5kZXggNzkzYTg4NjZjLi4x ODllZGY0YzMgMTAwNjQ0Ci0tLS0gYS90ZXN0cy9saXQtdGVzdHMvMTg0NC5pc3BjCi0rKysgYi90 ZXN0cy9saXQtdGVzdHMvMTg0NC5pc3BjCi1AQCAtNiw5ICs2LDYgQEAKLSAKLSAvLyBSRVFVSVJF UzogWDg2X0VOQUJMRUQKLSAKLS0vLyBJdCBkb2Vzbid0IHdvcmsgZm9yIGFueXRoaW5nIGVhcmxp ZXIgdGhhbiAxMC4wLCBidXQgaXQgd2lsbCBub3QgYmUgZml4ZWQsIHNvIGRvbid0IHJ1bi4KLS0v LyBSRVFVSVJFUzogTExWTV8xMF8wKwotLQotIGV4dGVybiB1bmlmb3JtIHVuc2lnbmVkIGludDY0 IHZhcl82OwotIGV4dGVybiB1bmlmb3JtIHVuc2lnbmVkIGludDE2IHZhcl8xMTsKLSBleHRlcm4g dW5pZm9ybSBib29sIGFycl8yMDEgWzFdIFsxNV0gWzIwXTsKLWRpZmYgLS1naXQgYS90ZXN0cy9s aXQtdGVzdHMvMTkyNi5pc3BjIGIvdGVzdHMvbGl0LXRlc3RzLzE5MjYuaXNwYwotaW5kZXggNzBm N2NjM2MyLi43OTIxYzkxYTYgMTAwNjQ0Ci0tLS0gYS90ZXN0cy9saXQtdGVzdHMvMTkyNi5pc3Bj Ci0rKysgYi90ZXN0cy9saXQtdGVzdHMvMTkyNi5pc3BjCi1AQCAtMiw4ICsyLDYgQEAKLSAvLyBS VU46IGNhdCAlVC8xOTI2Lm8uanNvbiBcCi0gLy8gUlVOOiAgIHwgRmlsZUNoZWNrICVzCi0gCi0t Ly8gUkVRVUlSRVM6IExMVk1fMTBfMCsKLS0KLSAvLyBDSEVDSzogInRyYWNlRXZlbnRzIgotIC8v IENIRUNLOiAiZGV0YWlsIgotIGV4cG9ydCB1bmlmb3JtIGludCBmb28odW5pZm9ybSBpbnQgYVtd LCB1bmlmb3JtIGludCBjb3VudCkgewotZGlmZiAtLWdpdCBhL3Rlc3RzL2xpdC10ZXN0cy9jcHVz X3g4Ni5pc3BjIGIvdGVzdHMvbGl0LXRlc3RzL2NwdXNfeDg2LmlzcGMKLWluZGV4IDUxNmVmZGQ0 Yy4uNGQ2MDE4NmY2IDEwMDY0NAotLS0tIGEvdGVzdHMvbGl0LXRlc3RzL2NwdXNfeDg2LmlzcGMK LSsrKyBiL3Rlc3RzL2xpdC10ZXN0cy9jcHVzX3g4Ni5pc3BjCi1AQCAtMjQsNiArMjQsOCBAQAot IC8vOyBSVU46ICV7aXNwY30gJXMgLW8gJXQubyAtLW5vc3RkbGliIC0tdGFyZ2V0PXNzZTItaTMy eDQgLS1jcHU9aWNsCi0gLy87IFJVTjogJXtpc3BjfSAlcyAtbyAldC5vIC0tbm9zdGRsaWIgLS10 YXJnZXQ9c3NlMi1pMzJ4NCAtLWNwdT1pY2VsYWtlLXNlcnZlcgotIC8vOyBSVU46ICV7aXNwY30g JXMgLW8gJXQubyAtLW5vc3RkbGliIC0tdGFyZ2V0PXNzZTItaTMyeDQgLS1jcHU9aWN4Ci0rLy87 IFJVTjogJXtpc3BjfSAlcyAtbyAldC5vIC0tbm9zdGRsaWIgLS10YXJnZXQ9c3NlMi1pMzJ4NCAt LWNwdT10aWdlcmxha2UKLSsvLzsgUlVOOiAle2lzcGN9ICVzIC1vICV0Lm8gLS1ub3N0ZGxpYiAt LXRhcmdldD1zc2UyLWkzMng0IC0tY3B1PXRnbAotIAotIC8vIFJFUVVJUkVTOiBYODZfRU5BQkxF RAotIAotZGlmZiAtLWdpdCBhL3Rlc3RzL2xpdC10ZXN0cy9jcHVzX3g4Nl9sbHZtMTAuaXNwYyBi L3Rlc3RzL2xpdC10ZXN0cy9jcHVzX3g4Nl9sbHZtMTAuaXNwYwotZGVsZXRlZCBmaWxlIG1vZGUg MTAwNjQ0Ci1pbmRleCBlZjAwMDAwZTUuLjAwMDAwMDAwMAotLS0tIGEvdGVzdHMvbGl0LXRlc3Rz L2NwdXNfeDg2X2xsdm0xMC5pc3BjCi0rKysgL2Rldi9udWxsCi1AQCAtMSwxMSArMCwwIEBACi0t Ly8gVGhlIHRlc3QgY2hlY2tzIHRoYXQgY3B1IGRlZmluaXRpb25zIChpbmNsdWRpbmcgYWxsIHN5 bm9ueW1zKSBhcmUgc3VjY2Vzc2Z1bGx5IGNvbnN1bWVkIGJ5IGNvbXBpbGVyLgotLQotLS8vOyBS VU46ICV7aXNwY30gJXMgLW8gJXQubyAtLW5vc3RkbGliIC0tdGFyZ2V0PXNzZTItaTMyeDQgLS1j cHU9dGlnZXJsYWtlCi0tLy87IFJVTjogJXtpc3BjfSAlcyAtbyAldC5vIC0tbm9zdGRsaWIgLS10 YXJnZXQ9c3NlMi1pMzJ4NCAtLWNwdT10Z2wKLS0KLS0vLyBSRVFVSVJFUzogWDg2X0VOQUJMRUQK LS0vLyBSRVFVSVJFUzogTExWTV8xMF8wKwotLQotLXVuaWZvcm0gaW50IGk7Ci0tCi0tdm9pZCBm b28oKSB7fQotZGlmZiAtLWdpdCBhL3Rlc3RzL2xpdC10ZXN0cy9saXQuY2ZnIGIvdGVzdHMvbGl0 LXRlc3RzL2xpdC5jZmcKLWluZGV4IDE3MDE2NTc5ZC4uMDQ1ZTY5NDM3IDEwMDY0NAotLS0tIGEv dGVzdHMvbGl0LXRlc3RzL2xpdC5jZmcKLSsrKyBiL3Rlc3RzL2xpdC10ZXN0cy9saXQuY2ZnCi1A QCAtMzAsMTEgKzMwLDYgQEAgcHJpbnQoIkNvbmZpZzoiKQotIAotICMgTExWTSB2ZXJzaW9uCi0g bGx2bV92ZXJzaW9uID0gTG9vc2VWZXJzaW9uKGlzcGNfbGx2bV92ZXJzaW9uX251bWJlcikKLS1p ZiBsbHZtX3ZlcnNpb24gPj0gTG9vc2VWZXJzaW9uKCIxMC4wLjAiKToKLS0gICAgcHJpbnQoIkxM Vk1fMTBfMCs6IFlFUyIpCi0tICAgIGNvbmZpZy5hdmFpbGFibGVfZmVhdHVyZXMuYWRkKCJMTFZN XzEwXzArIikKLS1lbHNlOgotLSAgICBwcmludCgiTExWTV8xMF8wKzogTk8iKQotIAotIGlmIGxs dm1fdmVyc2lvbiA+PSBMb29zZVZlcnNpb24oIjEyLjAuMCIpOgotICAgICBwcmludCgiTExWTV8x Ml8wKzogWUVTIikKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvaXNwYy9wYXRjaGVzL2xsdm0xMi0wMDMu cGF0Y2ggYi9zcmNwa2dzL2lzcGMvcGF0Y2hlcy9sbHZtMTItMDAzLnBhdGNoCmRlbGV0ZWQgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwNDIzYWZjOWUzZjkuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNw a2dzL2lzcGMvcGF0Y2hlcy9sbHZtMTItMDAzLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTUw NCArMCwwIEBACi1Gcm9tIDE4NTFkMThiMjEzZGJhZDE2OTkzNzA3NjE3NmIyZDU1MDk3MzNjNzYg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBEZWVwYWsgUmFqZW5kcmFrdW1hcmFuIDxk ZWVwYWsucmFqZW5kcmFrdW1hcmFuQGludGVsLmNvbT4KLURhdGU6IFR1ZSwgMTIgSmFuIDIwMjEg MjI6MTU6MTIgLTA4MDAKLVN1YmplY3Q6IFtQQVRDSF0gZml4ZXMgIzE4MjEgLSBSZW1vdmluZyBM TFZNR2V0TmFtZSgpIGFuZCBzd2l0Y2hpbmcgdG8KLSBMTFZNOjpUd2luZS4KLQotLS0tCi0gc3Jj L2N0eC5jcHAgICAgICB8IDMwNCArKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQotIHNyYy9jdHguaCAgICAgICAgfCAgNzIgKysrKystLS0tLS0KLSBzcmMvZXhw ci5jcHAgICAgIHwgIDM2ICsrKy0tLQotIHNyYy9sbHZtdXRpbC5jcHAgfCAgMTcgLS0tCi0gc3Jj L2xsdm11dGlsLmggICB8ICAgNSAtCi0gc3JjL29wdC5jcHAgICAgICB8IDEwMyArKysrKysrKyst LS0tLS0tCi0gNiBmaWxlcyBjaGFuZ2VkLCAyNTUgaW5zZXJ0aW9ucygrKSwgMjgyIGRlbGV0aW9u cygtKQotCi1kaWZmIC0tZ2l0IGEvc3JjL2N0eC5jcHAgYi9zcmMvY3R4LmNwcAotaW5kZXggNDJj NGVhMDlkLi5kZWQ1MjRiNzEgMTAwNjQ0Ci0tLS0gYS9zcmMvY3R4LmNwcAotKysrIGIvc3JjL2N0 eC5jcHAKLUBAIC0xMDIwLDggKzEwMjAsOCBAQCB2b2lkIEZ1bmN0aW9uRW1pdENvbnRleHQ6OkVt aXRDYXNlTGFiZWwoaW50IHZhbHVlLCBib29sIGNoZWNrTWFzaywgU291cmNlUG9zIHBvcwotICAg ICBsbHZtOjpCYXNpY0Jsb2NrICpiYkNhc2VJbXBsID0gTlVMTDsKLSAgICAgaWYgKGVtaXRHZW5Y SGFyZHdhcmVNYXNrKCkpIHsKLSAgICAgICAgIC8vIENyZWF0ZSBiYXNpYyBibG9jayB3aXRoIGFj dHVhbCBjYXNlIGltcGxlbWVudGF0aW9uCi0tICAgICAgICBzdGQ6OnN0cmluZyBiYk5hbWUgPSBi YkNhc2UtPmdldE5hbWUoKS5zdHIoKSArICJfaW1wbCI7Ci0tICAgICAgICBiYkNhc2VJbXBsID0g Q3JlYXRlQmFzaWNCbG9jayhiYk5hbWUuY19zdHIoKSwgYmJDYXNlKTsKLSsgICAgICAgIGxsdm06 OlR3aW5lIGJiTmFtZSA9IGxsdm06OlR3aW5lKGJiQ2FzZS0+Z2V0TmFtZSgpKSArICJfaW1wbCI7 Ci0rICAgICAgICBiYkNhc2VJbXBsID0gQ3JlYXRlQmFzaWNCbG9jayhiYk5hbWUsIGJiQ2FzZSk7 Ci0gICAgIH0KLSAjZW5kaWYKLSAKLUBAIC0xMTg1LDcgKzExODUsNyBAQCBib29sIEZ1bmN0aW9u RW1pdENvbnRleHQ6OmluaXRMYWJlbEJCbG9ja3MoQVNUTm9kZSAqbm9kZSwgdm9pZCAqZGF0YSkg ewotICAgICBpZiAoY3R4LT5sYWJlbE1hcC5maW5kKGxzLT5uYW1lKSAhPSBjdHgtPmxhYmVsTWFw LmVuZCgpKQotICAgICAgICAgRXJyb3IobHMtPnBvcywgIk11bHRpcGxlIGxhYmVscyBuYW1lZCBc IiVzXCIgaW4gZnVuY3Rpb24uIiwgbHMtPm5hbWUuY19zdHIoKSk7Ci0gICAgIGVsc2UgewotLSAg ICAgICAgbGx2bTo6QmFzaWNCbG9jayAqYmIgPSBjdHgtPkNyZWF0ZUJhc2ljQmxvY2sobHMtPm5h bWUuY19zdHIoKSk7Ci0rICAgICAgICBsbHZtOjpCYXNpY0Jsb2NrICpiYiA9IGN0eC0+Q3JlYXRl QmFzaWNCbG9jayhscy0+bmFtZSk7Ci0gICAgICAgICBjdHgtPmxhYmVsTWFwW2xzLT5uYW1lXSA9 IGJiOwotICAgICB9Ci0gICAgIHJldHVybiB0cnVlOwotQEAgLTEyOTksNyArMTI5OSw3IEBAIGxs dm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpBbnkobGx2bTo6VmFsdWUgKm1hc2spIHsK LSAgICAgLy8gV2UgY2FuIGFjdHVhbGx5IGNhbGwgZWl0aGVyIG9uZSwgc2luY2UgYm90aCBhcmUg aTMycyBhcyBmYXIgYXMKLSAgICAgLy8gTExWTSdzIHR5cGUgc3lzdGVtIGlzIGNvbmNlcm5lZC4u LgotICAgICBsbHZtOjpGdW5jdGlvbiAqZm1tID0gbW1bMF0tPmZ1bmN0aW9uOwotLSAgICByZXR1 cm4gQ2FsbEluc3QoZm1tLCBOVUxMLCBtYXNrLCBMTFZNR2V0TmFtZShtYXNrLCAiX2FueSIpKTsK LSsgICAgcmV0dXJuIENhbGxJbnN0KGZtbSwgTlVMTCwgbWFzaywgbGx2bTo6VHdpbmUobWFzay0+ Z2V0TmFtZSgpKSArICJfYW55Iik7Ci0gfQotIAotIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRD b250ZXh0OjpBbGwobGx2bTo6VmFsdWUgKm1hc2spIHsKLUBAIC0xMzE1LDcgKzEzMTUsNyBAQCBs bHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6QWxsKGxsdm06OlZhbHVlICptYXNrKSB7 Ci0gICAgIC8vIFdlIGNhbiBhY3R1YWxseSBjYWxsIGVpdGhlciBvbmUsIHNpbmNlIGJvdGggYXJl IGkzMnMgYXMgZmFyIGFzCi0gICAgIC8vIExMVk0ncyB0eXBlIHN5c3RlbSBpcyBjb25jZXJuZWQu Li4KLSAgICAgbGx2bTo6RnVuY3Rpb24gKmZtbSA9IG1tWzBdLT5mdW5jdGlvbjsKLS0gICAgcmV0 dXJuIENhbGxJbnN0KGZtbSwgTlVMTCwgbWFzaywgTExWTUdldE5hbWUobWFzaywgIl9hbGwiKSk7 Ci0rICAgIHJldHVybiBDYWxsSW5zdChmbW0sIE5VTEwsIG1hc2ssIGxsdm06OlR3aW5lKG1hc2st PmdldE5hbWUoKSkgKyAiX2FsbCIpOwotIH0KLSAKLSBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0 Q29udGV4dDo6Tm9uZShsbHZtOjpWYWx1ZSAqbWFzaykgewotQEAgLTEzMzEsNyArMTMzMSw3IEBA IGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpOb25lKGxsdm06OlZhbHVlICptYXNr KSB7Ci0gICAgIC8vIFdlIGNhbiBhY3R1YWxseSBjYWxsIGVpdGhlciBvbmUsIHNpbmNlIGJvdGgg YXJlIGkzMnMgYXMgZmFyIGFzCi0gICAgIC8vIExMVk0ncyB0eXBlIHN5c3RlbSBpcyBjb25jZXJu ZWQuLi4KLSAgICAgbGx2bTo6RnVuY3Rpb24gKmZtbSA9IG1tWzBdLT5mdW5jdGlvbjsKLS0gICAg cmV0dXJuIENhbGxJbnN0KGZtbSwgTlVMTCwgbWFzaywgTExWTUdldE5hbWUobWFzaywgIl9ub25l IikpOwotKyAgICByZXR1cm4gQ2FsbEluc3QoZm1tLCBOVUxMLCBtYXNrLCBsbHZtOjpUd2luZSht YXNrLT5nZXROYW1lKCkpICsgIl9ub25lIik7Ci0gfQotIAotIGxsdm06OlZhbHVlICpGdW5jdGlv bkVtaXRDb250ZXh0OjpMYW5lTWFzayhsbHZtOjpWYWx1ZSAqdikgewotQEAgLTEzNDksNyArMTM0 OSw3IEBAIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpMYW5lTWFzayhsbHZtOjpW YWx1ZSAqdikgewotICAgICAvLyBXZSBjYW4gYWN0dWFsbHkgY2FsbCBlaXRoZXIgb25lLCBzaW5j ZSBib3RoIGFyZSBpMzJzIGFzIGZhciBhcwotICAgICAvLyBMTFZNJ3MgdHlwZSBzeXN0ZW0gaXMg Y29uY2VybmVkLi4uCi0gICAgIGxsdm06OkZ1bmN0aW9uICpmbW0gPSBtbVswXS0+ZnVuY3Rpb247 Ci0tICAgIHJldHVybiBDYWxsSW5zdChmbW0sIE5VTEwsIHYsIExMVk1HZXROYW1lKHYsICJfbW92 bXNrIikpOwotKyAgICByZXR1cm4gQ2FsbEluc3QoZm1tLCBOVUxMLCB2LCBsbHZtOjpUd2luZSh2 LT5nZXROYW1lKCkpICsgIl9tb3Ztc2siKTsKLSB9Ci0gCi0gbGx2bTo6VmFsdWUgKkZ1bmN0aW9u RW1pdENvbnRleHQ6Ok1hc2tzQWxsRXF1YWwobGx2bTo6VmFsdWUgKnYxLCBsbHZtOjpWYWx1ZSAq djIpIHsKLUBAIC0xMzY0LDExICsxMzY0LDEyIEBAIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRD b250ZXh0OjpNYXNrc0FsbEVxdWFsKGxsdm06OlZhbHVlICp2MSwgbGx2bTo6VmFsdWUgKnYyCi0g I2Vsc2UKLSAgICAgaWYgKGctPnRhcmdldC0+Z2V0QXJjaCgpID09IEFyY2g6Ondhc20zMikgewot ICAgICAgICAgbGx2bTo6RnVuY3Rpb24gKmZtbSA9IG0tPm1vZHVsZS0+Z2V0RnVuY3Rpb24oIl9f d2FzbV9jbXBfbXNrX2VxIik7Ci0tICAgICAgICByZXR1cm4gQ2FsbEluc3QoZm1tLCBOVUxMLCB7 djEsIHYyfSwgTExWTUdldE5hbWUoIndhc21fY21wX21za19lcSIsIHYxLCB2MikpOwotKyAgICAg ICAgcmV0dXJuIENhbGxJbnN0KGZtbSwgTlVMTCwge3YxLCB2Mn0sICgobGx2bTo6VHdpbmUoIndh c21fY21wX21za19lcV8iKSArIHYxLT5nZXROYW1lKCkpICsgIl8iKSArIHYyLT5nZXROYW1lKCkp OwotICAgICB9Ci0gICAgIGxsdm06OlZhbHVlICptbTEgPSBMYW5lTWFzayh2MSk7Ci0gICAgIGxs dm06OlZhbHVlICptbTIgPSBMYW5lTWFzayh2Mik7Ci0tICAgIHJldHVybiBDbXBJbnN0KGxsdm06 Okluc3RydWN0aW9uOjpJQ21wLCBsbHZtOjpDbXBJbnN0OjpJQ01QX0VRLCBtbTEsIG1tMiwgTExW TUdldE5hbWUoImVxdWFsIiwgdjEsIHYyKSk7Ci0rICAgIHJldHVybiBDbXBJbnN0KGxsdm06Oklu c3RydWN0aW9uOjpJQ21wLCBsbHZtOjpDbXBJbnN0OjpJQ01QX0VRLCBtbTEsIG1tMiwKLSsgICAg ICAgICAgICAgICAgICAgKChsbHZtOjpUd2luZSgiZXF1YWxfIikgKyB2MS0+Z2V0TmFtZSgpKSAr ICJfIikgKyB2Mi0+Z2V0TmFtZSgpKTsKLSAjZW5kaWYKLSB9Ci0gCi1AQCAtMTM5Miw3ICsxMzkz LDcgQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkdldFN0cmluZ1B0cihjb25z dCBzdGQ6OnN0cmluZyAmc3RyKSB7Ci0gICAgIHJldHVybiBuZXcgbGx2bTo6Qml0Q2FzdEluc3Qo bHN0clB0ciwgTExWTVR5cGVzOjpWb2lkUG9pbnRlclR5cGUsICJzdHJfdm9pZF9wdHIiLCBiYmxv Y2spOwotIH0KLSAKLS1sbHZtOjpCYXNpY0Jsb2NrICpGdW5jdGlvbkVtaXRDb250ZXh0OjpDcmVh dGVCYXNpY0Jsb2NrKGNvbnN0IGNoYXIgKm5hbWUsIGxsdm06OkJhc2ljQmxvY2sgKmluc2VydEFm dGVyKSB7Ci0rbGx2bTo6QmFzaWNCbG9jayAqRnVuY3Rpb25FbWl0Q29udGV4dDo6Q3JlYXRlQmFz aWNCbG9jayhjb25zdCBsbHZtOjpUd2luZSAmbmFtZSwgbGx2bTo6QmFzaWNCbG9jayAqaW5zZXJ0 QWZ0ZXIpIHsKLSAgICAgbGx2bTo6QmFzaWNCbG9jayAqbmV3QkIgPSBsbHZtOjpCYXNpY0Jsb2Nr OjpDcmVhdGUoKmctPmN0eCwgbmFtZSwgbGx2bUZ1bmN0aW9uKTsKLSAgICAgaWYgKGluc2VydEFm dGVyKQotICAgICAgICAgbmV3QkItPm1vdmVBZnRlcihpbnNlcnRBZnRlcik7Ci1AQCAtMTQxNiwx NCArMTQxNywxNSBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6STFWZWNUb0Jv b2xWZWMobGx2bTo6VmFsdWUgKmIpIHsKLSAKLSAgICAgICAgIGZvciAodW5zaWduZWQgaW50IGkg PSAwOyBpIDwgYXQtPmdldE51bUVsZW1lbnRzKCk7ICsraSkgewotICAgICAgICAgICAgIGxsdm06 OlZhbHVlICplbHQgPSBFeHRyYWN0SW5zdChiLCBpKTsKLS0gICAgICAgICAgICBsbHZtOjpWYWx1 ZSAqc2V4dCA9IFN3aXRjaEJvb2xTaXplKGVsdCwgTExWTVR5cGVzOjpCb29sVmVjdG9yU3RvcmFn ZVR5cGUsIExMVk1HZXROYW1lKGVsdCwgIl90b19ib29sdmVjIikpOwotKyAgICAgICAgICAgIGxs dm06OlZhbHVlICpzZXh0ID0KLSsgICAgICAgICAgICAgICAgU3dpdGNoQm9vbFNpemUoZWx0LCBM TFZNVHlwZXM6OkJvb2xWZWN0b3JTdG9yYWdlVHlwZSwgbGx2bTo6VHdpbmUoZWx0LT5nZXROYW1l KCkpICsgIl90b19ib29sdmVjIik7Ci0gICAgICAgICAgICAgcmV0ID0gSW5zZXJ0SW5zdChyZXQs IHNleHQsIGkpOwotICAgICAgICAgfQotICAgICAgICAgcmV0dXJuIHJldDsKLSAgICAgfSBlbHNl IHsKLSAgICAgICAgIC8vIEZvciBub24tYXJyYXkgdHlwZXMsIGNvbnZlcnQgdG8gJ0xMVk1UeXBl czo6Qm9vbFZlY3RvclR5cGUnIGlmCi0gICAgICAgICAvLyBuZWNlc3NhcnkuCi0tICAgICAgICBy ZXR1cm4gU3dpdGNoQm9vbFNpemUoYiwgTExWTVR5cGVzOjpCb29sVmVjdG9yVHlwZSwgTExWTUdl dE5hbWUoYiwgIl90b19ib29sdmVjIikpOwotKyAgICAgICAgcmV0dXJuIFN3aXRjaEJvb2xTaXpl KGIsIExMVk1UeXBlczo6Qm9vbFZlY3RvclR5cGUsIGxsdm06OlR3aW5lKGItPmdldE5hbWUoKSkg KyAiX3RvX2Jvb2x2ZWMiKTsKLSAgICAgfQotIH0KLSAKLUBAIC0xNTYzLDcgKzE1NjUsNyBAQCBz dGF0aWMgaW50IGxBcnJheVZlY3RvcldpZHRoKGxsdm06OlR5cGUgKnQpIHsKLSB9Ci0gCi0gbGx2 bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkJpbmFyeU9wZXJhdG9yKGxsdm06Okluc3Ry dWN0aW9uOjpCaW5hcnlPcHMgaW5zdCwgbGx2bTo6VmFsdWUgKnYwLCBsbHZtOjpWYWx1ZSAqdjEs Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0 IGNoYXIgKm5hbWUpIHsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUpIHsKLSAgICAgaWYgKHYwID09IE5VTEwg fHwgdjEgPT0gTlVMTCkgewotICAgICAgICAgQXNzZXJ0UG9zKGN1cnJlbnRQb3MsIG0tPmVycm9y Q291bnQgPiAwKTsKLSAgICAgICAgIHJldHVybiBOVUxMOwotQEAgLTE1NzMsNyArMTU3NSw3IEBA IGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpCaW5hcnlPcGVyYXRvcihsbHZtOjpJ bnN0cnVjdGlvbjo6QmluYXJ5T3BzIGluCi0gICAgIGxsdm06OlR5cGUgKnR5cGUgPSB2MC0+Z2V0 VHlwZSgpOwotICAgICBpbnQgYXJyYXlTaXplID0gbEFycmF5VmVjdG9yV2lkdGgodHlwZSk7Ci0g ICAgIGlmIChhcnJheVNpemUgPT0gMCkgewotLSAgICAgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmJv cCA9IGxsdm06OkJpbmFyeU9wZXJhdG9yOjpDcmVhdGUoaW5zdCwgdjAsIHYxLCBuYW1lID8gbmFt ZSA6ICIiLCBiYmxvY2spOwotKyAgICAgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmJvcCA9IGxsdm06 OkJpbmFyeU9wZXJhdG9yOjpDcmVhdGUoaW5zdCwgdjAsIHYxLCBuYW1lLCBiYmxvY2spOwotICAg ICAgICAgQWRkRGVidWdQb3MoYm9wKTsKLSAgICAgICAgIHJldHVybiBib3A7Ci0gICAgIH0gZWxz ZSB7Ci1AQCAtMTU5MSw3ICsxNTkzLDcgQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRl eHQ6OkJpbmFyeU9wZXJhdG9yKGxsdm06Okluc3RydWN0aW9uOjpCaW5hcnlPcHMgaW4KLSAgICAg fQotIH0KLSAKLS1sbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6Tm90T3BlcmF0b3Io bGx2bTo6VmFsdWUgKnYsIGNvbnN0IGNoYXIgKm5hbWUpIHsKLStsbHZtOjpWYWx1ZSAqRnVuY3Rp b25FbWl0Q29udGV4dDo6Tm90T3BlcmF0b3IobGx2bTo6VmFsdWUgKnYsIGNvbnN0IGxsdm06OlR3 aW5lICZuYW1lKSB7Ci0gICAgIGlmICh2ID09IE5VTEwpIHsKLSAgICAgICAgIEFzc2VydFBvcyhj dXJyZW50UG9zLCBtLT5lcnJvckNvdW50ID4gMCk7Ci0gICAgICAgICByZXR1cm4gTlVMTDsKLUBA IC0xNjAzLDE0ICsxNjA1LDE0IEBAIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpO b3RPcGVyYXRvcihsbHZtOjpWYWx1ZSAqdiwgY29uc3QgY2hhciAqbmFtZSkKLSAgICAgbGx2bTo6 VHlwZSAqdHlwZSA9IHYtPmdldFR5cGUoKTsKLSAgICAgaW50IGFycmF5U2l6ZSA9IGxBcnJheVZl Y3RvcldpZHRoKHR5cGUpOwotICAgICBpZiAoYXJyYXlTaXplID09IDApIHsKLS0gICAgICAgIGxs dm06Okluc3RydWN0aW9uICpiaW5zdCA9IGxsdm06OkJpbmFyeU9wZXJhdG9yOjpDcmVhdGVOb3Qo diwgbmFtZSA/IG5hbWUgOiAibm90IiwgYmJsb2NrKTsKLSsgICAgICAgIGxsdm06Okluc3RydWN0 aW9uICpiaW5zdCA9IGxsdm06OkJpbmFyeU9wZXJhdG9yOjpDcmVhdGVOb3QodiwgbmFtZS5pc1Ry aXZpYWxseUVtcHR5KCkgPyAibm90IiA6IG5hbWUsIGJibG9jayk7Ci0gICAgICAgICBBZGREZWJ1 Z1BvcyhiaW5zdCk7Ci0gICAgICAgICByZXR1cm4gYmluc3Q7Ci0gICAgIH0gZWxzZSB7Ci0gICAg ICAgICBsbHZtOjpWYWx1ZSAqcmV0ID0gbGx2bTo6VW5kZWZWYWx1ZTo6Z2V0KHR5cGUpOwotICAg ICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBhcnJheVNpemU7ICsraSkgewotICAgICAgICAgICAg IGxsdm06OlZhbHVlICphID0gRXh0cmFjdEluc3QodiwgaSk7Ci0tICAgICAgICAgICAgbGx2bTo6 VmFsdWUgKm9wID0gbGx2bTo6QmluYXJ5T3BlcmF0b3I6OkNyZWF0ZU5vdChhLCBuYW1lID8gbmFt ZSA6ICJub3QiLCBiYmxvY2spOwotKyAgICAgICAgICAgIGxsdm06OlZhbHVlICpvcCA9IGxsdm06 OkJpbmFyeU9wZXJhdG9yOjpDcmVhdGVOb3QoYSwgbmFtZS5pc1RyaXZpYWxseUVtcHR5KCkgPyAi bm90IiA6IG5hbWUsIGJibG9jayk7Ci0gICAgICAgICAgICAgQWRkRGVidWdQb3Mob3ApOwotICAg ICAgICAgICAgIHJldCA9IEluc2VydEluc3QocmV0LCBvcCwgaSk7Ci0gICAgICAgICB9Ci1AQCAt MTYzOCw3ICsxNjQwLDcgQEAgc3RhdGljIGxsdm06OlR5cGUgKmxHZXRNYXRjaGluZ0Jvb2xWZWN0 b3JUeXBlKGxsdm06OlR5cGUgKnR5cGUpIHsKLSB9Ci0gCi0gbGx2bTo6VmFsdWUgKkZ1bmN0aW9u RW1pdENvbnRleHQ6OkNtcEluc3QobGx2bTo6SW5zdHJ1Y3Rpb246Ok90aGVyT3BzIGluc3QsIGxs dm06OkNtcEluc3Q6OlByZWRpY2F0ZSBwcmVkLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGxsdm06OlZhbHVlICp2MCwgbGx2bTo6VmFsdWUgKnYxLCBjb25zdCBj aGFyICpuYW1lKSB7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg bGx2bTo6VmFsdWUgKnYwLCBsbHZtOjpWYWx1ZSAqdjEsIGNvbnN0IGxsdm06OlR3aW5lICZuYW1l KSB7Ci0gICAgIGlmICh2MCA9PSBOVUxMIHx8IHYxID09IE5VTEwpIHsKLSAgICAgICAgIEFzc2Vy dFBvcyhjdXJyZW50UG9zLCBtLT5lcnJvckNvdW50ID4gMCk7Ci0gICAgICAgICByZXR1cm4gTlVM TDsKLUBAIC0xNjQ4LDcgKzE2NTAsOCBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4 dDo6Q21wSW5zdChsbHZtOjpJbnN0cnVjdGlvbjo6T3RoZXJPcHMgaW5zdCwgbGx2bQotICAgICBs bHZtOjpUeXBlICp0eXBlID0gdjAtPmdldFR5cGUoKTsKLSAgICAgaW50IGFycmF5U2l6ZSA9IGxB cnJheVZlY3RvcldpZHRoKHR5cGUpOwotICAgICBpZiAoYXJyYXlTaXplID09IDApIHsKLS0gICAg ICAgIGxsdm06Okluc3RydWN0aW9uICpjaSA9IGxsdm06OkNtcEluc3Q6OkNyZWF0ZShpbnN0LCBw cmVkLCB2MCwgdjEsIG5hbWUgPyBuYW1lIDogImNtcCIsIGJibG9jayk7Ci0rICAgICAgICBsbHZt OjpJbnN0cnVjdGlvbiAqY2kgPQotKyAgICAgICAgICAgIGxsdm06OkNtcEluc3Q6OkNyZWF0ZShp bnN0LCBwcmVkLCB2MCwgdjEsIG5hbWUuaXNUcml2aWFsbHlFbXB0eSgpID8gImNtcCIgOiBuYW1l LCBiYmxvY2spOwotICAgICAgICAgQWRkRGVidWdQb3MoY2kpOwotICAgICAgICAgcmV0dXJuIGNp OwotICAgICB9IGVsc2UgewotQEAgLTE2NTcsMTQgKzE2NjAsMTQgQEAgbGx2bTo6VmFsdWUgKkZ1 bmN0aW9uRW1pdENvbnRleHQ6OkNtcEluc3QobGx2bTo6SW5zdHJ1Y3Rpb246Ok90aGVyT3BzIGlu c3QsIGxsdm0KLSAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgYXJyYXlTaXplOyArK2kpIHsK LSAgICAgICAgICAgICBsbHZtOjpWYWx1ZSAqYSA9IEV4dHJhY3RJbnN0KHYwLCBpKTsKLSAgICAg ICAgICAgICBsbHZtOjpWYWx1ZSAqYiA9IEV4dHJhY3RJbnN0KHYxLCBpKTsKLS0gICAgICAgICAg ICBsbHZtOjpWYWx1ZSAqb3AgPSBDbXBJbnN0KGluc3QsIHByZWQsIGEsIGIsIG5hbWUpOwotKyAg ICAgICAgICAgIGxsdm06OlZhbHVlICpvcCA9IENtcEluc3QoaW5zdCwgcHJlZCwgYSwgYiwgbmFt ZS5pc1RyaXZpYWxseUVtcHR5KCkgPyAiY21wIiA6IG5hbWUpOwotICAgICAgICAgICAgIHJldCA9 IEluc2VydEluc3QocmV0LCBvcCwgaSk7Ci0gICAgICAgICB9Ci0gICAgICAgICByZXR1cm4gcmV0 OwotICAgICB9Ci0gfQotIAotLWxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpTbWVh clVuaWZvcm0obGx2bTo6VmFsdWUgKnZhbHVlLCBjb25zdCBjaGFyICpuYW1lKSB7Ci0rbGx2bTo6 VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OlNtZWFyVW5pZm9ybShsbHZtOjpWYWx1ZSAqdmFs dWUsIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lKSB7Ci0gICAgIGlmICh2YWx1ZSA9PSBOVUxMKSB7 Ci0gICAgICAgICBBc3NlcnRQb3MoY3VycmVudFBvcywgbS0+ZXJyb3JDb3VudCA+IDApOwotICAg ICAgICAgcmV0dXJuIE5VTEw7Ci1AQCAtMTcwNCwyMSArMTcwNywxOSBAQCBsbHZtOjpWYWx1ZSAq RnVuY3Rpb25FbWl0Q29udGV4dDo6U21lYXJVbmlmb3JtKGxsdm06OlZhbHVlICp2YWx1ZSwgY29u c3QgY2hhciAqbgotICAgICByZXR1cm4gcmV0OwotIH0KLSAKLS1sbHZtOjpWYWx1ZSAqRnVuY3Rp b25FbWl0Q29udGV4dDo6Qml0Q2FzdEluc3QobGx2bTo6VmFsdWUgKnZhbHVlLCBsbHZtOjpUeXBl ICp0eXBlLCBjb25zdCBjaGFyICpuYW1lKSB7Ci0rbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENv bnRleHQ6OkJpdENhc3RJbnN0KGxsdm06OlZhbHVlICp2YWx1ZSwgbGx2bTo6VHlwZSAqdHlwZSwg Y29uc3QgbGx2bTo6VHdpbmUgJm5hbWUpIHsKLSAgICAgaWYgKHZhbHVlID09IE5VTEwpIHsKLSAg ICAgICAgIEFzc2VydFBvcyhjdXJyZW50UG9zLCBtLT5lcnJvckNvdW50ID4gMCk7Ci0gICAgICAg ICByZXR1cm4gTlVMTDsKLSAgICAgfQotIAotLSAgICBpZiAobmFtZSA9PSBOVUxMKQotLSAgICAg ICAgbmFtZSA9IExMVk1HZXROYW1lKHZhbHVlLCAiX2JpdGNhc3QiKTsKLS0KLS0gICAgbGx2bTo6 SW5zdHJ1Y3Rpb24gKmluc3QgPSBuZXcgbGx2bTo6Qml0Q2FzdEluc3QodmFsdWUsIHR5cGUsIG5h bWUsIGJibG9jayk7Ci0rICAgIGxsdm06Okluc3RydWN0aW9uICppbnN0ID0gbmV3IGxsdm06OkJp dENhc3RJbnN0KAotKyAgICAgICAgdmFsdWUsIHR5cGUsIG5hbWUuaXNUcml2aWFsbHlFbXB0eSgp ID8gbGx2bTo6VHdpbmUodmFsdWUtPmdldE5hbWUoKSkgKyAiX2JpdGNhc3QiIDogbmFtZSwgYmJs b2NrKTsKLSAgICAgQWRkRGVidWdQb3MoaW5zdCk7Ci0gICAgIHJldHVybiBpbnN0OwotIH0KLSAK LS1sbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6UHRyVG9JbnRJbnN0KGxsdm06OlZh bHVlICp2YWx1ZSwgY29uc3QgY2hhciAqbmFtZSkgewotK2xsdm06OlZhbHVlICpGdW5jdGlvbkVt aXRDb250ZXh0OjpQdHJUb0ludEluc3QobGx2bTo6VmFsdWUgKnZhbHVlLCBjb25zdCBsbHZtOjpU d2luZSAmbmFtZSkgewotICAgICBpZiAodmFsdWUgPT0gTlVMTCkgewotICAgICAgICAgQXNzZXJ0 UG9zKGN1cnJlbnRQb3MsIG0tPmVycm9yQ291bnQgPiAwKTsKLSAgICAgICAgIHJldHVybiBOVUxM OwotQEAgLTE3MjgsMjMgKzE3MjksMTkgQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRl eHQ6OlB0clRvSW50SW5zdChsbHZtOjpWYWx1ZSAqdmFsdWUsIGNvbnN0IGNoYXIgKm4KLSAgICAg ICAgIC8vIG5vLW9wIGZvciB2YXJ5aW5nIHBvaW50ZXJzOyB0aGV5J3JlIGFscmVhZHkgdmVjdG9y cyBvZiBpbnRzCi0gICAgICAgICByZXR1cm4gdmFsdWU7Ci0gCi0tICAgIGlmIChuYW1lID09IE5V TEwpCi0tICAgICAgICBuYW1lID0gTExWTUdldE5hbWUodmFsdWUsICJfcHRyMmludCIpOwotICAg ICBsbHZtOjpUeXBlICp0eXBlID0gTExWTVR5cGVzOjpQb2ludGVySW50VHlwZTsKLS0gICAgbGx2 bTo6SW5zdHJ1Y3Rpb24gKmluc3QgPSBuZXcgbGx2bTo6UHRyVG9JbnRJbnN0KHZhbHVlLCB0eXBl LCBuYW1lLCBiYmxvY2spOwotKyAgICBsbHZtOjpJbnN0cnVjdGlvbiAqaW5zdCA9IG5ldyBsbHZt OjpQdHJUb0ludEluc3QoCi0rICAgICAgICB2YWx1ZSwgdHlwZSwgbmFtZS5pc1RyaXZpYWxseUVt cHR5KCkgPyBsbHZtOjpUd2luZSh2YWx1ZS0+Z2V0TmFtZSgpKSArICJfcHRyMmludCIgOiBuYW1l LCBiYmxvY2spOwotICAgICBBZGREZWJ1Z1BvcyhpbnN0KTsKLSAgICAgcmV0dXJuIGluc3Q7Ci0g fQotIAotLWxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpQdHJUb0ludEluc3QobGx2 bTo6VmFsdWUgKnZhbHVlLCBsbHZtOjpUeXBlICp0b1R5cGUsIGNvbnN0IGNoYXIgKm5hbWUpIHsK LStsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6UHRyVG9JbnRJbnN0KGxsdm06OlZh bHVlICp2YWx1ZSwgbGx2bTo6VHlwZSAqdG9UeXBlLCBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSkg ewotICAgICBpZiAodmFsdWUgPT0gTlVMTCkgewotICAgICAgICAgQXNzZXJ0UG9zKGN1cnJlbnRQ b3MsIG0tPmVycm9yQ291bnQgPiAwKTsKLSAgICAgICAgIHJldHVybiBOVUxMOwotICAgICB9Ci0g Ci0tICAgIGlmIChuYW1lID09IE5VTEwpCi0tICAgICAgICBuYW1lID0gTExWTUdldE5hbWUodmFs dWUsICJfcHRyMmludCIpOwotLQotICAgICBsbHZtOjpUeXBlICpmcm9tVHlwZSA9IHZhbHVlLT5n ZXRUeXBlKCk7Ci0gICAgIGlmIChsbHZtOjppc2E8bGx2bTo6VmVjdG9yVHlwZT4oZnJvbVR5cGUp KSB7Ci0gICAgICAgICAvLyB2YXJ5aW5nIHBvaW50ZXIKLUBAIC0xNzUyLDI3ICsxNzQ5LDI2IEBA IGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpQdHJUb0ludEluc3QobGx2bTo6VmFs dWUgKnZhbHVlLCBsbHZtOjpUeXBlICp0Ci0gICAgICAgICAgICAgLy8gYWxyZWFkeSB0aGUgcmln aHQgdHlwZS0tZG9uZQotICAgICAgICAgICAgIHJldHVybiB2YWx1ZTsKLSAgICAgICAgIGVsc2Ug aWYgKGZyb21UeXBlLT5nZXRTY2FsYXJTaXplSW5CaXRzKCkgPiB0b1R5cGUtPmdldFNjYWxhclNp emVJbkJpdHMoKSkKLS0gICAgICAgICAgICByZXR1cm4gVHJ1bmNJbnN0KHZhbHVlLCB0b1R5cGUs IG5hbWUpOwotKyAgICAgICAgICAgIHJldHVybiBUcnVuY0luc3QodmFsdWUsIHRvVHlwZSwKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUuaXNUcml2aWFsbHlFbXB0eSgpID8gbGx2 bTo6VHdpbmUodmFsdWUtPmdldE5hbWUoKSkgKyAiX3B0cjJpbnQiIDogbmFtZSk7Ci0gICAgICAg ICBlbHNlIHsKLSAgICAgICAgICAgICBBc3NlcnRQb3MoY3VycmVudFBvcywgZnJvbVR5cGUtPmdl dFNjYWxhclNpemVJbkJpdHMoKSA8IHRvVHlwZS0+Z2V0U2NhbGFyU2l6ZUluQml0cygpKTsKLS0g ICAgICAgICAgICByZXR1cm4gWkV4dEluc3QodmFsdWUsIHRvVHlwZSwgbmFtZSk7Ci0rICAgICAg ICAgICAgcmV0dXJuIFpFeHRJbnN0KHZhbHVlLCB0b1R5cGUsIG5hbWUuaXNUcml2aWFsbHlFbXB0 eSgpID8gbGx2bTo6VHdpbmUodmFsdWUtPmdldE5hbWUoKSkgKyAiX3B0cjJpbnQiIDogbmFtZSk7 Ci0gICAgICAgICB9Ci0gICAgIH0KLSAKLS0gICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmluc3QgPSBu ZXcgbGx2bTo6UHRyVG9JbnRJbnN0KHZhbHVlLCB0b1R5cGUsIG5hbWUsIGJibG9jayk7Ci0rICAg IGxsdm06Okluc3RydWN0aW9uICppbnN0ID0gbmV3IGxsdm06OlB0clRvSW50SW5zdCgKLSsgICAg ICAgIHZhbHVlLCB0b1R5cGUsIG5hbWUuaXNUcml2aWFsbHlFbXB0eSgpID8gbGx2bTo6VHdpbmUo dmFsdWUtPmdldE5hbWUoKSkgKyAiX3B0cjJpbnQiIDogbmFtZSwgYmJsb2NrKTsKLSAgICAgQWRk RGVidWdQb3MoaW5zdCk7Ci0gICAgIHJldHVybiBpbnN0OwotIH0KLSAKLS1sbHZtOjpWYWx1ZSAq RnVuY3Rpb25FbWl0Q29udGV4dDo6SW50VG9QdHJJbnN0KGxsdm06OlZhbHVlICp2YWx1ZSwgbGx2 bTo6VHlwZSAqdG9UeXBlLCBjb25zdCBjaGFyICpuYW1lKSB7Ci0rbGx2bTo6VmFsdWUgKkZ1bmN0 aW9uRW1pdENvbnRleHQ6OkludFRvUHRySW5zdChsbHZtOjpWYWx1ZSAqdmFsdWUsIGxsdm06OlR5 cGUgKnRvVHlwZSwgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUpIHsKLSAgICAgaWYgKHZhbHVlID09 IE5VTEwpIHsKLSAgICAgICAgIEFzc2VydFBvcyhjdXJyZW50UG9zLCBtLT5lcnJvckNvdW50ID4g MCk7Ci0gICAgICAgICByZXR1cm4gTlVMTDsKLSAgICAgfQotIAotLSAgICBpZiAobmFtZSA9PSBO VUxMKQotLSAgICAgICAgbmFtZSA9IExMVk1HZXROYW1lKHZhbHVlLCAiX2ludDJwdHIiKTsKLS0K LSAgICAgbGx2bTo6VHlwZSAqZnJvbVR5cGUgPSB2YWx1ZS0+Z2V0VHlwZSgpOwotICAgICBpZiAo bGx2bTo6aXNhPGxsdm06OlZlY3RvclR5cGU+KGZyb21UeXBlKSkgewotICAgICAgICAgLy8gdmFy eWluZyBwb2ludGVyCi1AQCAtMTc4MCw5NSArMTc3Niw4NyBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rp b25FbWl0Q29udGV4dDo6SW50VG9QdHJJbnN0KGxsdm06OlZhbHVlICp2YWx1ZSwgbGx2bTo6VHlw ZSAqdAotICAgICAgICAgICAgIC8vIGRvbmUKLSAgICAgICAgICAgICByZXR1cm4gdmFsdWU7Ci0g ICAgICAgICBlbHNlIGlmIChmcm9tVHlwZS0+Z2V0U2NhbGFyU2l6ZUluQml0cygpID4gdG9UeXBl LT5nZXRTY2FsYXJTaXplSW5CaXRzKCkpCi0tICAgICAgICAgICAgcmV0dXJuIFRydW5jSW5zdCh2 YWx1ZSwgdG9UeXBlLCBuYW1lKTsKLSsgICAgICAgICAgICByZXR1cm4gVHJ1bmNJbnN0KHZhbHVl LCB0b1R5cGUsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lLmlzVHJpdmlhbGx5 RW1wdHkoKSA/IGxsdm06OlR3aW5lKHZhbHVlLT5nZXROYW1lKCkpICsgIl9pbnQycHRyIiA6IG5h bWUpOwotICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgQXNzZXJ0UG9zKGN1cnJlbnRQb3Ms IGZyb21UeXBlLT5nZXRTY2FsYXJTaXplSW5CaXRzKCkgPCB0b1R5cGUtPmdldFNjYWxhclNpemVJ bkJpdHMoKSk7Ci0tICAgICAgICAgICAgcmV0dXJuIFpFeHRJbnN0KHZhbHVlLCB0b1R5cGUsIG5h bWUpOwotKyAgICAgICAgICAgIHJldHVybiBaRXh0SW5zdCh2YWx1ZSwgdG9UeXBlLCBuYW1lLmlz VHJpdmlhbGx5RW1wdHkoKSA/IGxsdm06OlR3aW5lKHZhbHVlLT5nZXROYW1lKCkpICsgIl9pbnQy cHRyIiA6IG5hbWUpOwotICAgICAgICAgfQotICAgICB9Ci0gCi0tICAgIGxsdm06Okluc3RydWN0 aW9uICppbnN0ID0gbmV3IGxsdm06OkludFRvUHRySW5zdCh2YWx1ZSwgdG9UeXBlLCBuYW1lLCBi YmxvY2spOwotKyAgICBsbHZtOjpJbnN0cnVjdGlvbiAqaW5zdCA9IG5ldyBsbHZtOjpJbnRUb1B0 ckluc3QoCi0rICAgICAgICB2YWx1ZSwgdG9UeXBlLCBuYW1lLmlzVHJpdmlhbGx5RW1wdHkoKSA/ IGxsdm06OlR3aW5lKHZhbHVlLT5nZXROYW1lKCkpICsgIl9pbnQycHRyIiA6IG5hbWUsIGJibG9j ayk7Ci0gICAgIEFkZERlYnVnUG9zKGluc3QpOwotICAgICByZXR1cm4gaW5zdDsKLSB9Ci0gCi0t bGx2bTo6SW5zdHJ1Y3Rpb24gKkZ1bmN0aW9uRW1pdENvbnRleHQ6OlRydW5jSW5zdChsbHZtOjpW YWx1ZSAqdmFsdWUsIGxsdm06OlR5cGUgKnR5cGUsIGNvbnN0IGNoYXIgKm5hbWUpIHsKLStsbHZt OjpJbnN0cnVjdGlvbiAqRnVuY3Rpb25FbWl0Q29udGV4dDo6VHJ1bmNJbnN0KGxsdm06OlZhbHVl ICp2YWx1ZSwgbGx2bTo6VHlwZSAqdHlwZSwgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUpIHsKLSAg ICAgaWYgKHZhbHVlID09IE5VTEwpIHsKLSAgICAgICAgIEFzc2VydFBvcyhjdXJyZW50UG9zLCBt LT5lcnJvckNvdW50ID4gMCk7Ci0gICAgICAgICByZXR1cm4gTlVMTDsKLSAgICAgfQotIAotLSAg ICBpZiAobmFtZSA9PSBOVUxMKQotLSAgICAgICAgbmFtZSA9IExMVk1HZXROYW1lKHZhbHVlLCAi X3RydW5jIik7Ci0tCi0gICAgIC8vIFRPRE86IHdlIHNob3VsZCBwcm9iYWJseSBoYW5kbGUgdGhl IGFycmF5IGNhc2UgYXMgaW4KLSAgICAgLy8gZS5nLiBCaXRDYXN0SW5zdCgpLCBidXQgd2UgZG9u J3QgY3VycmVudGx5IG5lZWQgdGhhdCBmdW5jdGlvbmFsaXR5Ci0tICAgIGxsdm06Okluc3RydWN0 aW9uICppbnN0ID0gbmV3IGxsdm06OlRydW5jSW5zdCh2YWx1ZSwgdHlwZSwgbmFtZSwgYmJsb2Nr KTsKLSsgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmluc3QgPSBuZXcgbGx2bTo6VHJ1bmNJbnN0KAot KyAgICAgICAgdmFsdWUsIHR5cGUsIG5hbWUuaXNUcml2aWFsbHlFbXB0eSgpID8gbGx2bTo6VHdp bmUodmFsdWUtPmdldE5hbWUoKSkgKyAiX3RydW5jIiA6IG5hbWUsIGJibG9jayk7Ci0gICAgIEFk ZERlYnVnUG9zKGluc3QpOwotICAgICByZXR1cm4gaW5zdDsKLSB9Ci0gCi0gbGx2bTo6SW5zdHJ1 Y3Rpb24gKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkNhc3RJbnN0KGxsdm06Okluc3RydWN0aW9uOjpD YXN0T3BzIG9wLCBsbHZtOjpWYWx1ZSAqdmFsdWUsIGxsdm06OlR5cGUgKnR5cGUsCi0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKm5h bWUpIHsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y29uc3QgbGx2bTo6VHdpbmUgJm5hbWUpIHsKLSAgICAgaWYgKHZhbHVlID09IE5VTEwpIHsKLSAg ICAgICAgIEFzc2VydFBvcyhjdXJyZW50UG9zLCBtLT5lcnJvckNvdW50ID4gMCk7Ci0gICAgICAg ICByZXR1cm4gTlVMTDsKLSAgICAgfQotIAotLSAgICBpZiAobmFtZSA9PSBOVUxMKQotLSAgICAg ICAgbmFtZSA9IExMVk1HZXROYW1lKHZhbHVlLCAiX2Nhc3QiKTsKLS0KLSAgICAgLy8gVE9ETzog d2Ugc2hvdWxkIHByb2JhYmx5IGhhbmRsZSB0aGUgYXJyYXkgY2FzZSBhcyBpbgotICAgICAvLyBl LmcuIEJpdENhc3RJbnN0KCksIGJ1dCB3ZSBkb24ndCBjdXJyZW50bHkgbmVlZCB0aGF0IGZ1bmN0 aW9uYWxpdHkKLS0gICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmluc3QgPSBsbHZtOjpDYXN0SW5zdDo6 Q3JlYXRlKG9wLCB2YWx1ZSwgdHlwZSwgbmFtZSwgYmJsb2NrKTsKLSsgICAgbGx2bTo6SW5zdHJ1 Y3Rpb24gKmluc3QgPSBsbHZtOjpDYXN0SW5zdDo6Q3JlYXRlKAotKyAgICAgICAgb3AsIHZhbHVl LCB0eXBlLCBuYW1lLmlzVHJpdmlhbGx5RW1wdHkoKSA/IGxsdm06OlR3aW5lKHZhbHVlLT5nZXRO YW1lKCkpICsgIl9jYXN0IiA6IG5hbWUsIGJibG9jayk7Ci0gICAgIEFkZERlYnVnUG9zKGluc3Qp OwotICAgICByZXR1cm4gaW5zdDsKLSB9Ci0gCi0tbGx2bTo6SW5zdHJ1Y3Rpb24gKkZ1bmN0aW9u RW1pdENvbnRleHQ6OkZQQ2FzdEluc3QobGx2bTo6VmFsdWUgKnZhbHVlLCBsbHZtOjpUeXBlICp0 eXBlLCBjb25zdCBjaGFyICpuYW1lKSB7Ci0rbGx2bTo6SW5zdHJ1Y3Rpb24gKkZ1bmN0aW9uRW1p dENvbnRleHQ6OkZQQ2FzdEluc3QobGx2bTo6VmFsdWUgKnZhbHVlLCBsbHZtOjpUeXBlICp0eXBl LCBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSkgewotICAgICBpZiAodmFsdWUgPT0gTlVMTCkgewot ICAgICAgICAgQXNzZXJ0UG9zKGN1cnJlbnRQb3MsIG0tPmVycm9yQ291bnQgPiAwKTsKLSAgICAg ICAgIHJldHVybiBOVUxMOwotICAgICB9Ci0gCi0tICAgIGlmIChuYW1lID09IE5VTEwpCi0tICAg ICAgICBuYW1lID0gTExWTUdldE5hbWUodmFsdWUsICJfY2FzdCIpOwotLQotICAgICAvLyBUT0RP OiB3ZSBzaG91bGQgcHJvYmFibHkgaGFuZGxlIHRoZSBhcnJheSBjYXNlIGFzIGluCi0gICAgIC8v IGUuZy4gQml0Q2FzdEluc3QoKSwgYnV0IHdlIGRvbid0IGN1cnJlbnRseSBuZWVkIHRoYXQgZnVu Y3Rpb25hbGl0eQotLSAgICBsbHZtOjpJbnN0cnVjdGlvbiAqaW5zdCA9IGxsdm06OkNhc3RJbnN0 OjpDcmVhdGVGUENhc3QodmFsdWUsIHR5cGUsIG5hbWUsIGJibG9jayk7Ci0rICAgIGxsdm06Oklu c3RydWN0aW9uICppbnN0ID0gbGx2bTo6Q2FzdEluc3Q6OkNyZWF0ZUZQQ2FzdCgKLSsgICAgICAg IHZhbHVlLCB0eXBlLCBuYW1lLmlzVHJpdmlhbGx5RW1wdHkoKSA/IGxsdm06OlR3aW5lKHZhbHVl LT5nZXROYW1lKCkpICsgIl9jYXN0IiA6IG5hbWUsIGJibG9jayk7Ci0gICAgIEFkZERlYnVnUG9z KGluc3QpOwotICAgICByZXR1cm4gaW5zdDsKLSB9Ci0gCi0tbGx2bTo6SW5zdHJ1Y3Rpb24gKkZ1 bmN0aW9uRW1pdENvbnRleHQ6OlNFeHRJbnN0KGxsdm06OlZhbHVlICp2YWx1ZSwgbGx2bTo6VHlw ZSAqdHlwZSwgY29uc3QgY2hhciAqbmFtZSkgewotK2xsdm06Okluc3RydWN0aW9uICpGdW5jdGlv bkVtaXRDb250ZXh0OjpTRXh0SW5zdChsbHZtOjpWYWx1ZSAqdmFsdWUsIGxsdm06OlR5cGUgKnR5 cGUsIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lKSB7Ci0gICAgIGlmICh2YWx1ZSA9PSBOVUxMKSB7 Ci0gICAgICAgICBBc3NlcnRQb3MoY3VycmVudFBvcywgbS0+ZXJyb3JDb3VudCA+IDApOwotICAg ICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgIH0KLSAKLS0gICAgaWYgKG5hbWUgPT0gTlVMTCkKLS0g ICAgICAgIG5hbWUgPSBMTFZNR2V0TmFtZSh2YWx1ZSwgIl9zZXh0Iik7Ci0tCi0gICAgIC8vIFRP RE86IHdlIHNob3VsZCBwcm9iYWJseSBoYW5kbGUgdGhlIGFycmF5IGNhc2UgYXMgaW4KLSAgICAg Ly8gZS5nLiBCaXRDYXN0SW5zdCgpLCBidXQgd2UgZG9uJ3QgY3VycmVudGx5IG5lZWQgdGhhdCBm dW5jdGlvbmFsaXR5Ci0tICAgIGxsdm06Okluc3RydWN0aW9uICppbnN0ID0gbmV3IGxsdm06OlNF eHRJbnN0KHZhbHVlLCB0eXBlLCBuYW1lLCBiYmxvY2spOwotKyAgICBsbHZtOjpJbnN0cnVjdGlv biAqaW5zdCA9IG5ldyBsbHZtOjpTRXh0SW5zdCgKLSsgICAgICAgIHZhbHVlLCB0eXBlLCBuYW1l LmlzVHJpdmlhbGx5RW1wdHkoKSA/IGxsdm06OlR3aW5lKHZhbHVlLT5nZXROYW1lKCkpICsgIl9z ZXh0IiA6IG5hbWUsIGJibG9jayk7Ci0gICAgIEFkZERlYnVnUG9zKGluc3QpOwotICAgICByZXR1 cm4gaW5zdDsKLSB9Ci0gCi0tbGx2bTo6SW5zdHJ1Y3Rpb24gKkZ1bmN0aW9uRW1pdENvbnRleHQ6 OlpFeHRJbnN0KGxsdm06OlZhbHVlICp2YWx1ZSwgbGx2bTo6VHlwZSAqdHlwZSwgY29uc3QgY2hh ciAqbmFtZSkgewotK2xsdm06Okluc3RydWN0aW9uICpGdW5jdGlvbkVtaXRDb250ZXh0OjpaRXh0 SW5zdChsbHZtOjpWYWx1ZSAqdmFsdWUsIGxsdm06OlR5cGUgKnR5cGUsIGNvbnN0IGxsdm06OlR3 aW5lICZuYW1lKSB7Ci0gICAgIGlmICh2YWx1ZSA9PSBOVUxMKSB7Ci0gICAgICAgICBBc3NlcnRQ b3MoY3VycmVudFBvcywgbS0+ZXJyb3JDb3VudCA+IDApOwotICAgICAgICAgcmV0dXJuIE5VTEw7 Ci0gICAgIH0KLSAKLS0gICAgaWYgKG5hbWUgPT0gTlVMTCkKLS0gICAgICAgIG5hbWUgPSBMTFZN R2V0TmFtZSh2YWx1ZSwgIl96ZXh0Iik7Ci0tCi0gICAgIC8vIFRPRE86IHdlIHNob3VsZCBwcm9i YWJseSBoYW5kbGUgdGhlIGFycmF5IGNhc2UgYXMgaW4KLSAgICAgLy8gZS5nLiBCaXRDYXN0SW5z dCgpLCBidXQgd2UgZG9uJ3QgY3VycmVudGx5IG5lZWQgdGhhdCBmdW5jdGlvbmFsaXR5Ci0tICAg IGxsdm06Okluc3RydWN0aW9uICppbnN0ID0gbmV3IGxsdm06OlpFeHRJbnN0KHZhbHVlLCB0eXBl LCBuYW1lLCBiYmxvY2spOwotKyAgICBsbHZtOjpJbnN0cnVjdGlvbiAqaW5zdCA9IG5ldyBsbHZt OjpaRXh0SW5zdCgKLSsgICAgICAgIHZhbHVlLCB0eXBlLCBuYW1lLmlzVHJpdmlhbGx5RW1wdHko KSA/IGxsdm06OlR3aW5lKHZhbHVlLT5nZXROYW1lKCkpICsgIl96ZXh0IiA6IG5hbWUsIGJibG9j ayk7Ci0gICAgIEFkZERlYnVnUG9zKGluc3QpOwotICAgICByZXR1cm4gaW5zdDsKLSB9Ci1AQCAt MTkxMywxNCArMTkwMSwxNSBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6YXBw bHlWYXJ5aW5nR0VQKGxsdm06OlZhbHVlICpiYXNlUHRyLCBsbHZtOjpWYQotICAgICAgICAgc2Nh bGUgPSBTbWVhclVuaWZvcm0oc2NhbGUpOwotICAgICAgICAgQXNzZXJ0KGluZGV4ICE9IE5VTEwp OwotICAgICAgICAgLy8gb2Zmc2V0ID0gaW5kZXggKiBzY2FsZQotLSAgICAgICAgb2Zmc2V0ID0g QmluYXJ5T3BlcmF0b3IobGx2bTo6SW5zdHJ1Y3Rpb246Ok11bCwgc2NhbGUsIGluZGV4LCBMTFZN R2V0TmFtZSgibXVsIiwgc2NhbGUsIGluZGV4KSk7Ci0rICAgICAgICBvZmZzZXQgPSBCaW5hcnlP cGVyYXRvcihsbHZtOjpJbnN0cnVjdGlvbjo6TXVsLCBzY2FsZSwgaW5kZXgsCi0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAoKGxsdm06OlR3aW5lKCJtdWxfIikgKyBzY2FsZS0+Z2V0 TmFtZSgpKSArICJfIikgKyBpbmRleC0+Z2V0TmFtZSgpKTsKLSAgICAgfQotIAotICAgICAvLyBG b3IgNjQtYml0IHRhcmdldHMsIGlmIHdlJ3ZlIGJlZW4gZG9pbmcgb3VyIG9mZnNldCBjYWxjdWxh dGlvbnMgaW4KLSAgICAgLy8gMzIgYml0cywgd2Ugc3RpbGwgaGF2ZSB0byBjb252ZXJ0IHRvIGEg NjQtYml0IHZhbHVlIGJlZm9yZSB3ZQotICAgICAvLyBhY3R1YWxseSBhZGQgdGhlIG9mZnNldCB0 byB0aGUgcG9pbnRlci4KLSAgICAgaWYgKGctPnRhcmdldC0+aXMzMkJpdCgpID09IGZhbHNlICYm IGctPm9wdC5mb3JjZTMyQml0QWRkcmVzc2luZyA9PSB0cnVlKQotLSAgICAgICAgb2Zmc2V0ID0g U0V4dEluc3Qob2Zmc2V0LCBMTFZNVHlwZXM6OkludDY0VmVjdG9yVHlwZSwgTExWTUdldE5hbWUo b2Zmc2V0LCAiX3RvXzY0IikpOwotKyAgICAgICAgb2Zmc2V0ID0gU0V4dEluc3Qob2Zmc2V0LCBM TFZNVHlwZXM6OkludDY0VmVjdG9yVHlwZSwgbGx2bTo6VHdpbmUob2Zmc2V0LT5nZXROYW1lKCkp ICsgIl90b182NCIpOwotIAotICAgICAvLyBTbWVhciBvdXQgdGhlIHBvaW50ZXIgdG8gYmUgdmFy eWluZzsgZWl0aGVyIHRoZSBiYXNlIHBvaW50ZXIgb3IgdGhlCi0gICAgIC8vIGluZGV4IG11c3Qg YmUgdmFyeWluZyBmb3IgdGhpcyBtZXRob2QgdG8gYmUgY2FsbGVkLgotQEAgLTE5MjksNyArMTkx OCw3IEBAIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjphcHBseVZhcnlpbmdHRVAo bGx2bTo6VmFsdWUgKmJhc2VQdHIsIGxsdm06OlZhCi0gICAgIGxsdm06OlZhbHVlICp2YXJ5aW5n UHRyID0gYmFzZUlzVW5pZm9ybSA/IFNtZWFyVW5pZm9ybShiYXNlUHRyKSA6IGJhc2VQdHI7Ci0g Ci0gICAgIC8vIG5ld1B0ciA9IHB0ciArIG9mZnNldAotLSAgICByZXR1cm4gQmluYXJ5T3BlcmF0 b3IobGx2bTo6SW5zdHJ1Y3Rpb246OkFkZCwgdmFyeWluZ1B0ciwgb2Zmc2V0LCBMTFZNR2V0TmFt ZShiYXNlUHRyLCAiX29mZnNldCIpKTsKLSsgICAgcmV0dXJuIEJpbmFyeU9wZXJhdG9yKGxsdm06 Okluc3RydWN0aW9uOjpBZGQsIHZhcnlpbmdQdHIsIG9mZnNldCwgbGx2bTo6VHdpbmUoYmFzZVB0 ci0+Z2V0TmFtZSgpKSArICJfb2Zmc2V0Iik7Ci0gfQotIAotIHZvaWQgRnVuY3Rpb25FbWl0Q29u dGV4dDo6TWF0Y2hJbnRlZ2VyVHlwZXMobGx2bTo6VmFsdWUgKip2MCwgbGx2bTo6VmFsdWUgKip2 MSkgewotQEAgLTIwMDYsMTMgKzE5OTUsMTMgQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENv bnRleHQ6Ok1ha2VTbGljZVBvaW50ZXIobGx2bTo6VmFsdWUgKnB0ciwgbGx2bTo6VmFsdWUKLSAg ICAgbGx2bTo6U3RydWN0VHlwZSAqc3QgPSBsbHZtOjpTdHJ1Y3RUeXBlOjpnZXQoKmctPmN0eCwg ZWx0VHlwZXMpOwotIAotICAgICBsbHZtOjpWYWx1ZSAqcmV0ID0gbGx2bTo6VW5kZWZWYWx1ZTo6 Z2V0KHN0KTsKLS0gICAgcmV0ID0gSW5zZXJ0SW5zdChyZXQsIHB0ciwgMCwgTExWTUdldE5hbWUo cmV0LCAiX3NsaWNlX3B0ciIpKTsKLS0gICAgcmV0ID0gSW5zZXJ0SW5zdChyZXQsIG9mZnNldCwg MSwgTExWTUdldE5hbWUocmV0LCAiX3NsaWNlX29mZnNldCIpKTsKLSsgICAgcmV0ID0gSW5zZXJ0 SW5zdChyZXQsIHB0ciwgMCwgbGx2bTo6VHdpbmUocmV0LT5nZXROYW1lKCkpICsgIl9zbGljZV9w dHIiKTsKLSsgICAgcmV0ID0gSW5zZXJ0SW5zdChyZXQsIG9mZnNldCwgMSwgbGx2bTo6VHdpbmUo cmV0LT5nZXROYW1lKCkpICsgIl9zbGljZV9vZmZzZXQiKTsKLSAgICAgcmV0dXJuIHJldDsKLSB9 Ci0gCi0gbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkdldEVsZW1lbnRQdHJJbnN0 KGxsdm06OlZhbHVlICpiYXNlUHRyLCBsbHZtOjpWYWx1ZSAqaW5kZXgsIGNvbnN0IFR5cGUgKnB0 clJlZlR5cGUsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGNvbnN0IGNoYXIgKm5hbWUpIHsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUpIHsKLSAgICAg aWYgKGJhc2VQdHIgPT0gTlVMTCB8fCBpbmRleCA9PSBOVUxMKSB7Ci0gICAgICAgICBBc3NlcnRQ b3MoY3VycmVudFBvcywgbS0+ZXJyb3JDb3VudCA+IDApOwotICAgICAgICAgcmV0dXJuIE5VTEw7 Ci1AQCAtMjA2NSw4ICsyMDU0LDggQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6 OkdldEVsZW1lbnRQdHJJbnN0KGxsdm06OlZhbHVlICpiYXNlUHRyLCBsbHZtOjoKLSAgICAgICAg IC8vIHVuaWZvcm0sIHNvIGp1c3QgZW1pdCB0aGUgcmVndWxhciBMTFZNIEdFUCBpbnN0cnVjdGlv bgotICAgICAgICAgbGx2bTo6VmFsdWUgKmluZFsxXSA9IHtpbmRleH07Ci0gICAgICAgICBsbHZt OjpBcnJheVJlZjxsbHZtOjpWYWx1ZSAqPiBhcnJheVJlZigmaW5kWzBdLCAmaW5kWzFdKTsKLS0g ICAgICAgIGxsdm06Okluc3RydWN0aW9uICppbnN0ID0KLS0gICAgICAgICAgICBsbHZtOjpHZXRF bGVtZW50UHRySW5zdDo6Q3JlYXRlKFBUWVBFKGJhc2VQdHIpLCBiYXNlUHRyLCBhcnJheVJlZiwg bmFtZSA/IG5hbWUgOiAiZ2VwIiwgYmJsb2NrKTsKLSsgICAgICAgIGxsdm06Okluc3RydWN0aW9u ICppbnN0ID0gbGx2bTo6R2V0RWxlbWVudFB0ckluc3Q6OkNyZWF0ZShQVFlQRShiYXNlUHRyKSwg YmFzZVB0ciwgYXJyYXlSZWYsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZS5pc1RyaXZpYWxseUVtcHR5KCkgPyAi Z2VwIiA6IG5hbWUsIGJibG9jayk7Ci0gICAgICAgICBBZGREZWJ1Z1BvcyhpbnN0KTsKLSAgICAg ICAgIHJldHVybiBpbnN0OwotICAgICB9IGVsc2UKLUBAIC0yMDc0LDcgKzIwNjMsNyBAQCBsbHZt OjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6R2V0RWxlbWVudFB0ckluc3QobGx2bTo6VmFs dWUgKmJhc2VQdHIsIGxsdm06OgotIH0KLSAKLSBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29u dGV4dDo6R2V0RWxlbWVudFB0ckluc3QobGx2bTo6VmFsdWUgKmJhc2VQdHIsIGxsdm06OlZhbHVl ICppbmRleDAsIGxsdm06OlZhbHVlICppbmRleDEsCi0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFR5cGUgKnB0clJlZlR5cGUsIGNvbnN0 IGNoYXIgKm5hbWUpIHsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgY29uc3QgVHlwZSAqcHRyUmVmVHlwZSwgY29uc3QgbGx2bTo6VHdpbmUgJm5h bWUpIHsKLSAgICAgaWYgKGJhc2VQdHIgPT0gTlVMTCB8fCBpbmRleDAgPT0gTlVMTCB8fCBpbmRl eDEgPT0gTlVMTCkgewotICAgICAgICAgQXNzZXJ0UG9zKGN1cnJlbnRQb3MsIG0tPmVycm9yQ291 bnQgPiAwKTsKLSAgICAgICAgIHJldHVybiBOVUxMOwotQEAgLTIxMTQsOCArMjEwMyw4IEBAIGxs dm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpHZXRFbGVtZW50UHRySW5zdChsbHZtOjpW YWx1ZSAqYmFzZVB0ciwgbGx2bTo6Ci0gICAgICAgICAvLyB1bmlmb3JtLCBzbyBqdXN0IGVtaXQg dGhlIHJlZ3VsYXIgTExWTSBHRVAgaW5zdHJ1Y3Rpb24KLSAgICAgICAgIGxsdm06OlZhbHVlICpp bmRpY2VzWzJdID0ge2luZGV4MCwgaW5kZXgxfTsKLSAgICAgICAgIGxsdm06OkFycmF5UmVmPGxs dm06OlZhbHVlICo+IGFycmF5UmVmKCZpbmRpY2VzWzBdLCAmaW5kaWNlc1syXSk7Ci0tICAgICAg ICBsbHZtOjpJbnN0cnVjdGlvbiAqaW5zdCA9Ci0tICAgICAgICAgICAgbGx2bTo6R2V0RWxlbWVu dFB0ckluc3Q6OkNyZWF0ZShQVFlQRShiYXNlUHRyKSwgYmFzZVB0ciwgYXJyYXlSZWYsIG5hbWUg PyBuYW1lIDogImdlcCIsIGJibG9jayk7Ci0rICAgICAgICBsbHZtOjpJbnN0cnVjdGlvbiAqaW5z dCA9IGxsdm06OkdldEVsZW1lbnRQdHJJbnN0OjpDcmVhdGUoUFRZUEUoYmFzZVB0ciksIGJhc2VQ dHIsIGFycmF5UmVmLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUuaXNUcml2aWFsbHlFbXB0eSgpID8gImdlcCIg OiBuYW1lLCBiYmxvY2spOwotICAgICAgICAgQWRkRGVidWdQb3MoaW5zdCk7Ci0gICAgICAgICBy ZXR1cm4gaW5zdDsKLSAgICAgfSBlbHNlIHsKLUBAIC0yMTM4LDcgKzIxMjcsNyBAQCBsbHZtOjpW YWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6R2V0RWxlbWVudFB0ckluc3QobGx2bTo6VmFsdWUg KmJhc2VQdHIsIGxsdm06OgotIH0KLSAKLSBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4 dDo6QWRkRWxlbWVudE9mZnNldChsbHZtOjpWYWx1ZSAqZnVsbEJhc2VQdHIsIGludCBlbGVtZW50 TnVtLCBjb25zdCBUeXBlICpwdHJSZWZUeXBlLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IFBvaW50ZXJU eXBlICoqcmVzdWx0UHRyVHlwZSkgewotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lLCBjb25zdCBQb2ludGVy VHlwZSAqKnJlc3VsdFB0clR5cGUpIHsKLSAgICAgaWYgKHJlc3VsdFB0clR5cGUgIT0gTlVMTCkK LSAgICAgICAgIEFzc2VydFBvcyhjdXJyZW50UG9zLCBwdHJSZWZUeXBlICE9IE5VTEwpOwotIAot QEAgLTIxOTUsOCArMjE4NCw4IEBAIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpB ZGRFbGVtZW50T2Zmc2V0KGxsdm06OlZhbHVlICpmdWxsQmFzZVB0ciwgaW50Ci0gICAgICAgICAv LyBJZiB0aGUgcG9pbnRlciBpcyB1bmlmb3JtLCB3ZSBjYW4gdXNlIHRoZSByZWd1bGFyIExMVk0g R0VQLgotICAgICAgICAgbGx2bTo6VmFsdWUgKm9mZnNldHNbMl0gPSB7TExWTUludDMyKDApLCBM TFZNSW50MzIoZWxlbWVudE51bSl9OwotICAgICAgICAgbGx2bTo6QXJyYXlSZWY8bGx2bTo6VmFs dWUgKj4gYXJyYXlSZWYoJm9mZnNldHNbMF0sICZvZmZzZXRzWzJdKTsKLS0gICAgICAgIHJlc3Vs dFB0ciA9Ci0tICAgICAgICAgICAgbGx2bTo6R2V0RWxlbWVudFB0ckluc3Q6OkNyZWF0ZShQVFlQ RShiYXNlUHRyKSwgYmFzZVB0ciwgYXJyYXlSZWYsIG5hbWUgPyBuYW1lIDogInN0cnVjdF9vZmZz ZXQiLCBiYmxvY2spOwotKyAgICAgICAgcmVzdWx0UHRyID0gbGx2bTo6R2V0RWxlbWVudFB0cklu c3Q6OkNyZWF0ZShQVFlQRShiYXNlUHRyKSwgYmFzZVB0ciwgYXJyYXlSZWYsCi0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUuaXNUcml2aWFs bHlFbXB0eSgpID8gInN0cnVjdF9vZmZzZXQiIDogbmFtZSwgYmJsb2NrKTsKLSAgICAgfSBlbHNl IHsKLSAgICAgICAgIC8vIE90aGVyd2lzZSBkbyB0aGUgbWF0aCB0byBmaW5kIHRoZSBvZmZzZXQg YW5kIGFkZCBpdCB0byB0aGUgZ2l2ZW4KLSAgICAgICAgIC8vIHZhcnlpbmcgcG9pbnRlcnMKLUBA IC0yMjM3LDcgKzIyMjYsNyBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6QWRk RWxlbWVudE9mZnNldChsbHZtOjpWYWx1ZSAqZnVsbEJhc2VQdHIsIGludAotICAgICAgICAgcmV0 dXJuIHJlc3VsdFB0cjsKLSB9Ci0gCi0tbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6 OlN3aXRjaEJvb2xTaXplKGxsdm06OlZhbHVlICp2YWx1ZSwgbGx2bTo6VHlwZSAqdG9UeXBlLCBj b25zdCBjaGFyICpuYW1lKSB7Ci0rbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OlN3 aXRjaEJvb2xTaXplKGxsdm06OlZhbHVlICp2YWx1ZSwgbGx2bTo6VHlwZSAqdG9UeXBlLCBjb25z dCBsbHZtOjpUd2luZSAmbmFtZSkgewotICAgICBpZiAoKHZhbHVlID09IE5VTEwpIHx8ICh0b1R5 cGUgPT0gTlVMTCkpIHsKLSAgICAgICAgIEFzc2VydFBvcyhjdXJyZW50UG9zLCBtLT5lcnJvckNv dW50ID4gMCk7Ci0gICAgICAgICByZXR1cm4gTlVMTDsKLUBAIC0yMjQ4LDIwICsyMjM3LDE4IEBA IGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpTd2l0Y2hCb29sU2l6ZShsbHZtOjpW YWx1ZSAqdmFsdWUsIGxsdm06OlR5cGUKLSAgICAgbGx2bTo6VmFsdWUgKm5ld0Jvb2wgPSB2YWx1 ZTsKLSAgICAgaWYgKGctPnRhcmdldC0+Z2V0RGF0YUxheW91dCgpLT5nZXRUeXBlU2l6ZUluQml0 cyhmcm9tVHlwZSkgPgotICAgICAgICAgZy0+dGFyZ2V0LT5nZXREYXRhTGF5b3V0KCktPmdldFR5 cGVTaXplSW5CaXRzKHRvVHlwZSkpIHsKLS0gICAgICAgIGlmIChuYW1lID09IE5VTEwpCi0tICAg ICAgICAgICAgbmFtZSA9IExMVk1HZXROYW1lKHZhbHVlLCAiX3N3aXRjaEJvb2wiKTsKLS0gICAg ICAgIG5ld0Jvb2wgPSBUcnVuY0luc3QodmFsdWUsIHRvVHlwZSwgbmFtZSk7Ci0rICAgICAgICBu ZXdCb29sID0KLSsgICAgICAgICAgICBUcnVuY0luc3QodmFsdWUsIHRvVHlwZSwgbmFtZS5pc1Ry aXZpYWxseUVtcHR5KCkgPyAobGx2bTo6VHdpbmUodmFsdWUtPmdldE5hbWUoKSkgKyAiX3N3aXRj aEJvb2wiKSA6IG5hbWUpOwotICAgICB9IGVsc2UgaWYgKGctPnRhcmdldC0+Z2V0RGF0YUxheW91 dCgpLT5nZXRUeXBlU2l6ZUluQml0cyhmcm9tVHlwZSkgPAotICAgICAgICAgICAgICAgIGctPnRh cmdldC0+Z2V0RGF0YUxheW91dCgpLT5nZXRUeXBlU2l6ZUluQml0cyh0b1R5cGUpKSB7Ci0tICAg ICAgICBpZiAobmFtZSA9PSBOVUxMKQotLSAgICAgICAgICAgIG5hbWUgPSBMTFZNR2V0TmFtZSh2 YWx1ZSwgIl9zd2l0Y2hCb29sIik7Ci0tICAgICAgICBuZXdCb29sID0gU0V4dEluc3QodmFsdWUs IHRvVHlwZSwgbmFtZSk7Ci0rICAgICAgICBuZXdCb29sID0KLSsgICAgICAgICAgICBTRXh0SW5z dCh2YWx1ZSwgdG9UeXBlLCBuYW1lLmlzVHJpdmlhbGx5RW1wdHkoKSA/IChsbHZtOjpUd2luZSh2 YWx1ZS0+Z2V0TmFtZSgpKSArICJfc3dpdGNoQm9vbCIpIDogbmFtZSk7Ci0gICAgIH0KLSAKLSAg ICAgcmV0dXJuIG5ld0Jvb2w7Ci0gfQotIAotLWxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250 ZXh0OjpMb2FkSW5zdChsbHZtOjpWYWx1ZSAqcHRyLCBjb25zdCBUeXBlICp0eXBlLCBjb25zdCBj aGFyICpuYW1lKSB7Ci0rbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkxvYWRJbnN0 KGxsdm06OlZhbHVlICpwdHIsIGNvbnN0IFR5cGUgKnR5cGUsIGNvbnN0IGxsdm06OlR3aW5lICZu YW1lKSB7Ci0gICAgIGlmIChwdHIgPT0gTlVMTCkgewotICAgICAgICAgQXNzZXJ0UG9zKGN1cnJl bnRQb3MsIG0tPmVycm9yQ291bnQgPiAwKTsKLSAgICAgICAgIHJldHVybiBOVUxMOwotQEAgLTIy NzAsMTMgKzIyNTcsMTMgQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkxvYWRJ bnN0KGxsdm06OlZhbHVlICpwdHIsIGNvbnN0IFR5cGUgKnR5cGUsIGMKLSAgICAgbGx2bTo6UG9p bnRlclR5cGUgKnB0ID0gbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6UG9pbnRlclR5cGU+KHB0ci0+Z2V0 VHlwZSgpKTsKLSAgICAgQXNzZXJ0UG9zKGN1cnJlbnRQb3MsIHB0ICE9IE5VTEwpOwotIAotLSAg ICBpZiAobmFtZSA9PSBOVUxMKQotLSAgICAgICAgbmFtZSA9IExMVk1HZXROYW1lKHB0ciwgIl9s b2FkIik7Ci0tCi0gI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMV8wCi0tICAg IGxsdm06OkxvYWRJbnN0ICppbnN0ID0gbmV3IGxsdm06OkxvYWRJbnN0KHB0LT5nZXRQb2ludGVy RWxlbWVudFR5cGUoKSwgcHRyLCBuYW1lLCBiYmxvY2spOwotKyAgICBsbHZtOjpMb2FkSW5zdCAq aW5zdCA9Ci0rICAgICAgICBuZXcgbGx2bTo6TG9hZEluc3QocHQtPmdldFBvaW50ZXJFbGVtZW50 VHlwZSgpLCBwdHIsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZS5pc1RyaXZpYWxs eUVtcHR5KCkgPyAobGx2bTo6VHdpbmUocHRyLT5nZXROYW1lKCkpICsgIl9sb2FkIikgOiBuYW1l LCBiYmxvY2spOwotICNlbHNlCi0tICAgIGxsdm06OkxvYWRJbnN0ICppbnN0ID0gbmV3IGxsdm06 OkxvYWRJbnN0KHB0ciwgbmFtZSwgYmJsb2NrKTsKLSsgICAgbGx2bTo6TG9hZEluc3QgKmluc3Qg PQotKyAgICAgICAgbmV3IGxsdm06OkxvYWRJbnN0KHB0ciwgbmFtZS5pc1RyaXZpYWxseUVtcHR5 KCkgPyAobGx2bTo6VHdpbmUocHRyLT5nZXROYW1lKCkpICsgIl9sb2FkIikgOiBuYW1lLCBiYmxv Y2spOwotICNlbmRpZgotIAotICAgICBpZiAoZy0+b3B0LmZvcmNlQWxpZ25lZE1lbW9yeSAmJiBs bHZtOjpkeW5fY2FzdDxsbHZtOjpWZWN0b3JUeXBlPihwdC0+Z2V0RWxlbWVudFR5cGUoKSkpIHsK LUBAIC0yMzA3LDggKzIyOTQsOCBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6 TG9hZEluc3QobGx2bTo6VmFsdWUgKnB0ciwgY29uc3QgVHlwZSAqdHlwZSwgYwotIHN0YXRpYyBs bHZtOjpWYWx1ZSAqbEZpbmFsU2xpY2VPZmZzZXQoRnVuY3Rpb25FbWl0Q29udGV4dCAqY3R4LCBs bHZtOjpWYWx1ZSAqcHRyLCBjb25zdCBQb2ludGVyVHlwZSAqKnB0clR5cGUpIHsKLSAgICAgQXNz ZXJ0KENhc3RUeXBlPFBvaW50ZXJUeXBlPigqcHRyVHlwZSkgIT0gTlVMTCk7Ci0gCi0tICAgIGxs dm06OlZhbHVlICpzbGljZVB0ciA9IGN0eC0+RXh0cmFjdEluc3QocHRyLCAwLCBMTFZNR2V0TmFt ZShwdHIsICJfcHRyIikpOwotLSAgICBsbHZtOjpWYWx1ZSAqc2xpY2VPZmZzZXQgPSBjdHgtPkV4 dHJhY3RJbnN0KHB0ciwgMSwgTExWTUdldE5hbWUocHRyLCAiX29mZnNldCIpKTsKLSsgICAgbGx2 bTo6VmFsdWUgKnNsaWNlUHRyID0gY3R4LT5FeHRyYWN0SW5zdChwdHIsIDAsIGxsdm06OlR3aW5l KHB0ci0+Z2V0TmFtZSgpKSArICJfcHRyIik7Ci0rICAgIGxsdm06OlZhbHVlICpzbGljZU9mZnNl dCA9IGN0eC0+RXh0cmFjdEluc3QocHRyLCAxLCBsbHZtOjpUd2luZShwdHItPmdldE5hbWUoKSkg KyAiX29mZnNldCIpOwotIAotICAgICAvLyBzbGljZVB0ciBzaG91bGQgYmUgYSBwb2ludGVyIHRv IGFuIHNvYS13aWR0aCB3aWRlIGFycmF5IG9mIHRoZQotICAgICAvLyBmaW5hbCBhdG9taWMvZW51 bS9wb2ludGVyIHR5cGUKLUBAIC0yMzI3LDE0ICsyMzE0LDE0IEBAIHN0YXRpYyBsbHZtOjpWYWx1 ZSAqbEZpbmFsU2xpY2VPZmZzZXQoRnVuY3Rpb25FbWl0Q29udGV4dCAqY3R4LCBsbHZtOjpWYWx1 ZSAqcHRyCi0gICAgICAgICBzbGljZVB0ciA9IGN0eC0+Qml0Q2FzdEluc3Qoc2xpY2VQdHIsICgq cHRyVHlwZSktPkxMVk1UeXBlKGctPmN0eCkpOwotIAotICAgICAvLyBBbmQgZmluYWxseSBpbmRl eCBiYXNlZCBvbiB0aGUgc2xpY2Ugb2Zmc2V0Ci0tICAgIHJldHVybiBjdHgtPkdldEVsZW1lbnRQ dHJJbnN0KHNsaWNlUHRyLCBzbGljZU9mZnNldCwgKnB0clR5cGUsIExMVk1HZXROYW1lKHNsaWNl UHRyLCAiX2ZpbmFsX2dlcCIpKTsKLSsgICAgcmV0dXJuIGN0eC0+R2V0RWxlbWVudFB0ckluc3Qo c2xpY2VQdHIsIHNsaWNlT2Zmc2V0LCAqcHRyVHlwZSwgbGx2bTo6VHdpbmUoc2xpY2VQdHItPmdl dE5hbWUoKSkgKyAiX2ZpbmFsX2dlcCIpOwotIH0KLSAKLSAvKiogVXRpbGl0eSByb3V0aW5lIHRo YXQgbG9hZHMgZnJvbSBhIHVuaWZvcm0gcG9pbnRlciB0byBzb2E8PiBkYXRhLAotICAgICByZXR1 cm5pbmcgYSByZWd1bGFyIHVuaWZvcm0gKG5vbi1TT0EgcmVzdWx0KS4KLSAgKi8KLSBsbHZtOjpW YWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6bG9hZFVuaWZvcm1Gcm9tU09BKGxsdm06OlZhbHVl ICpwdHIsIGxsdm06OlZhbHVlICptYXNrLCBjb25zdCBQb2ludGVyVHlwZSAqcHRyVHlwZSwKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0 IGNoYXIgKm5hbWUpIHsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lKSB7Ci0gICAgIGNvbnN0IFR5cGUg KnVuaWZUeXBlID0gcHRyVHlwZS0+R2V0QmFzZVR5cGUoKS0+R2V0QXNVbmlmb3JtVHlwZSgpOwot IAotICAgICBjb25zdCBDb2xsZWN0aW9uVHlwZSAqY3QgPSBDYXN0VHlwZTxDb2xsZWN0aW9uVHlw ZT4ocHRyVHlwZS0+R2V0QmFzZVR5cGUoKSk7Ci1AQCAtMjM2Myw3ICsyMzUwLDcgQEAgbGx2bTo6 VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OmxvYWRVbmlmb3JtRnJvbVNPQShsbHZtOjpWYWx1 ZSAqcHRyLCBsbHZtOjpWYWwKLSB9Ci0gCi0gbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRl eHQ6OkxvYWRJbnN0KGxsdm06OlZhbHVlICpwdHIsIGxsdm06OlZhbHVlICptYXNrLCBjb25zdCBU eXBlICpwdHJSZWZUeXBlLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBjb25zdCBjaGFyICpuYW1lLCBib29sIG9uZV9lbGVtKSB7Ci0rICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lLCBib29s IG9uZV9lbGVtKSB7Ci0gICAgIGlmIChwdHIgPT0gTlVMTCkgewotICAgICAgICAgQXNzZXJ0UG9z KGN1cnJlbnRQb3MsIG0tPmVycm9yQ291bnQgPiAwKTsKLSAgICAgICAgIHJldHVybiBOVUxMOwot QEAgLTIzNzEsOSArMjM1OCw2IEBAIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpM b2FkSW5zdChsbHZtOjpWYWx1ZSAqcHRyLCBsbHZtOjpWYWx1ZSAqbWFzaywKLSAKLSAgICAgQXNz ZXJ0UG9zKGN1cnJlbnRQb3MsIHB0clJlZlR5cGUgIT0gTlVMTCAmJiBtYXNrICE9IE5VTEwpOwot IAotLSAgICBpZiAobmFtZSA9PSBOVUxMKQotLSAgICAgICAgbmFtZSA9IExMVk1HZXROYW1lKHB0 ciwgIl9sb2FkIik7Ci0tCi0gICAgIGNvbnN0IFBvaW50ZXJUeXBlICpwdHJUeXBlOwotICAgICBj b25zdCBUeXBlICplbFR5cGU7Ci0gICAgIGlmIChDYXN0VHlwZTxSZWZlcmVuY2VUeXBlPihwdHJS ZWZUeXBlKSAhPSBOVUxMKSB7Ci1AQCAtMjM5Myw3ICsyMzc3LDggQEAgbGx2bTo6VmFsdWUgKkZ1 bmN0aW9uRW1pdENvbnRleHQ6OkxvYWRJbnN0KGxsdm06OlZhbHVlICpwdHIsIGxsdm06OlZhbHVl ICptYXNrLAotIAotICAgICBpZiAocHRyVHlwZS0+SXNVbmlmb3JtVHlwZSgpKSB7Ci0gICAgICAg ICBpZiAocHRyVHlwZS0+SXNTbGljZSgpKSB7Ci0tICAgICAgICAgICAgcmV0dXJuIGxvYWRVbmlm b3JtRnJvbVNPQShwdHIsIG1hc2ssIHB0clR5cGUsIG5hbWUpOwotKyAgICAgICAgICAgIHJldHVy biBsb2FkVW5pZm9ybUZyb21TT0EocHRyLCBtYXNrLCBwdHJUeXBlLAotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgbmFtZS5pc1RyaXZpYWxseUVtcHR5KCkgPyAobGx2bTo6 VHdpbmUocHRyLT5nZXROYW1lKCkpICsgIl9sb2FkIikgOiBuYW1lKTsKLSAgICAgICAgIH0gZWxz ZSB7Ci0gICAgICAgICAgICAgLy8gRklYTUU6IHNhbWUgaXNzdWUgYXMgYWJvdmUgbG9hZCBpbnN0 IHJlZ2FyZGluZyBhbGlnbm1lbnQuLi4KLSAgICAgICAgICAgICAvLwotQEAgLTI0MDUsMTEgKzIz OTAsMTUgQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkxvYWRJbnN0KGxsdm06 OlZhbHVlICpwdHIsIGxsdm06OlZhbHVlICptYXNrLAotICAgICAgICAgICAgIGNvbnN0IEF0b21p Y1R5cGUgKmF0b21pY1R5cGUgPSBDYXN0VHlwZTxBdG9taWNUeXBlPihwdHJUeXBlLT5HZXRCYXNl VHlwZSgpKTsKLSAKLSAjaWYgSVNQQ19MTFZNX1ZFUlNJT04gPD0gSVNQQ19MTFZNXzEwXzAKLS0g ICAgICAgICAgICBsbHZtOjpMb2FkSW5zdCAqaW5zdCA9IG5ldyBsbHZtOjpMb2FkSW5zdChwdHIs IG5hbWUsIGZhbHNlIC8qIG5vdCB2b2xhdGlsZSAqLywgYmJsb2NrKTsKLSsgICAgICAgICAgICBs bHZtOjpMb2FkSW5zdCAqaW5zdCA9Ci0rICAgICAgICAgICAgICAgIG5ldyBsbHZtOjpMb2FkSW5z dChwdHIsIG5hbWUuaXNUcml2aWFsbHlFbXB0eSgpID8gKGxsdm06OlR3aW5lKHB0ci0+Z2V0TmFt ZSgpKSArICJfbG9hZCIpIDogbmFtZSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGZhbHNlIC8qIG5vdCB2b2xhdGlsZSAqLywgYmJsb2NrKTsKLSAjZWxzZSAvLyBMTFZNIDEx LjArCi0gICAgICAgICAgICAgbGx2bTo6UG9pbnRlclR5cGUgKnB0cl90eXBlID0gbGx2bTo6ZHlu X2Nhc3Q8bGx2bTo6UG9pbnRlclR5cGU+KHB0ci0+Z2V0VHlwZSgpKTsKLSAgICAgICAgICAgICBs bHZtOjpMb2FkSW5zdCAqaW5zdCA9Ci0tICAgICAgICAgICAgICAgIG5ldyBsbHZtOjpMb2FkSW5z dChwdHJfdHlwZS0+Z2V0UG9pbnRlckVsZW1lbnRUeXBlKCksIHB0ciwgbmFtZSwgZmFsc2UgLyog bm90IHZvbGF0aWxlICovLCBiYmxvY2spOwotKyAgICAgICAgICAgICAgICBuZXcgbGx2bTo6TG9h ZEluc3QocHRyX3R5cGUtPmdldFBvaW50ZXJFbGVtZW50VHlwZSgpLCBwdHIsCi0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lLmlzVHJpdmlhbGx5RW1wdHkoKSA/IChsbHZt OjpUd2luZShwdHItPmdldE5hbWUoKSkgKyAiX2xvYWQiKSA6IG5hbWUsCi0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSAvKiBub3Qgdm9sYXRpbGUgKi8sIGJibG9jayk7 Ci0gI2VuZGlmCi0gCi0gICAgICAgICAgICAgaWYgKGF0b21pY1R5cGUgIT0gTlVMTCAmJiBhdG9t aWNUeXBlLT5Jc1ZhcnlpbmdUeXBlKCkpIHsKLUBAIC0yNDMzLDcgKzI0MjIsOCBAQCBsbHZtOjpW YWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6TG9hZEluc3QobGx2bTo6VmFsdWUgKnB0ciwgbGx2 bTo6VmFsdWUgKm1hc2ssCi0gICAgIH0gZWxzZSB7Ci0gICAgICAgICAvLyBPdGhlcndpc2Ugd2Ug c2hvdWxkIGhhdmUgYSB2YXJ5aW5nIHB0ciBhbmQgaXQncyB0aW1lIGZvciBhCi0gICAgICAgICAv LyBnYXRoZXIuCi0tICAgICAgICBsbHZtOjpWYWx1ZSAqZ2F0aGVyX3Jlc3VsdCA9IGdhdGhlcihw dHIsIHB0clR5cGUsIEdldEZ1bGxNYXNrKCksIG5hbWUpOwotKyAgICAgICAgbGx2bTo6VmFsdWUg KmdhdGhlcl9yZXN1bHQgPSBnYXRoZXIocHRyLCBwdHJUeXBlLCBHZXRGdWxsTWFzaygpLAotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZS5pc1RyaXZpYWxs eUVtcHR5KCkgPyAobGx2bTo6VHdpbmUocHRyLT5nZXROYW1lKCkpICsgIl9sb2FkIikgOiBuYW1l KTsKLSAgICAgICAgIGlmICghb25lX2VsZW0pCi0gICAgICAgICAgICAgcmV0dXJuIGdhdGhlcl9y ZXN1bHQ7Ci0gCi1AQCAtMjQ1MywxOSArMjQ0MywxOSBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25F bWl0Q29udGV4dDo6TG9hZEluc3QobGx2bTo6VmFsdWUgKnB0ciwgbGx2bTo6VmFsdWUgKm1hc2ss Ci0gICAgICAgICAvLyBXZSBjYW4gYWN0dWFsbHkgY2FsbCBlaXRoZXIgb25lLCBzaW5jZSBib3Ro IGFyZSBpMzJzIGFzIGZhciBhcwotICAgICAgICAgLy8gTExWTSdzIHR5cGUgc3lzdGVtIGlzIGNv bmNlcm5lZC4uLgotICAgICAgICAgbGx2bTo6RnVuY3Rpb24gKmZtbSA9IG1tWzBdLT5mdW5jdGlv bjsKLS0gICAgICAgIGxsdm06OlZhbHVlICppbnRfbWFzayA9IENhbGxJbnN0KGZtbSwgTlVMTCwg bWFzaywgTExWTUdldE5hbWUobWFzaywgIl9tb3Ztc2siKSk7Ci0rICAgICAgICBsbHZtOjpWYWx1 ZSAqaW50X21hc2sgPSBDYWxsSW5zdChmbW0sIE5VTEwsIG1hc2ssIGxsdm06OlR3aW5lKG1hc2st PmdldE5hbWUoKSkgKyAiX21vdm1zayIpOwotICAgICAgICAgc3RkOjp2ZWN0b3I8U3ltYm9sICo+ IGx6OwotICAgICAgICAgbS0+c3ltYm9sVGFibGUtPkxvb2t1cEZ1bmN0aW9uKCJfX2NvdW50X3Ry YWlsaW5nX3plcm9zX2k2NCIsICZseik7Ci0gICAgICAgICBsbHZtOjpGdW5jdGlvbiAqZmx6ID0g bHpbMF0tPmZ1bmN0aW9uOwotLSAgICAgICAgbGx2bTo6VmFsdWUgKmVsZW1faWR4ID0gQ2FsbElu c3QoZmx6LCBOVUxMLCBpbnRfbWFzaywgTExWTUdldE5hbWUobWFzaywgIl9jbHoiKSk7Ci0tICAg ICAgICBsbHZtOjpWYWx1ZSAqZWxlbSA9IGxsdm06OkV4dHJhY3RFbGVtZW50SW5zdDo6Q3JlYXRl KGdhdGhlcl9yZXN1bHQsIGVsZW1faWR4LAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMTFZNR2V0TmFtZShnYXRoZXJfcmVzdWx0 LCAiX3VtYXNrZWRfZWxlbSIpLCBiYmxvY2spOwotKyAgICAgICAgbGx2bTo6VmFsdWUgKmVsZW1f aWR4ID0gQ2FsbEluc3QoZmx6LCBOVUxMLCBpbnRfbWFzaywgbGx2bTo6VHdpbmUobWFzay0+Z2V0 TmFtZSgpKSArICJfY2x6Iik7Ci0rICAgICAgICBsbHZtOjpWYWx1ZSAqZWxlbSA9IGxsdm06OkV4 dHJhY3RFbGVtZW50SW5zdDo6Q3JlYXRlKAotKyAgICAgICAgICAgIGdhdGhlcl9yZXN1bHQsIGVs ZW1faWR4LCBsbHZtOjpUd2luZShnYXRoZXJfcmVzdWx0LT5nZXROYW1lKCkpICsgIl91bWFza2Vk X2VsZW0iLCBiYmxvY2spOwotICAgICAgICAgcmV0dXJuIGVsZW07Ci0gICAgIH0KLSB9Ci0gCi0g bGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OmdhdGhlcihsbHZtOjpWYWx1ZSAqcHRy LCBjb25zdCBQb2ludGVyVHlwZSAqcHRyVHlwZSwgbGx2bTo6VmFsdWUgKm1hc2ssCi0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpuYW1lKSB7Ci0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBsbHZtOjpUd2lu ZSAmbmFtZSkgewotICAgICAvLyBXZSBzaG91bGQgaGF2ZSBhIHZhcnlpbmcgcG9pbnRlciBpZiB3 ZSBnZXQgaGVyZS4uLgotICAgICBBc3NlcnRQb3MoY3VycmVudFBvcywgcHRyVHlwZS0+SXNWYXJ5 aW5nVHlwZSgpKTsKLSAKLUBAIC0yNjAyLDcgKzI1OTIsOCBAQCB2b2lkIEZ1bmN0aW9uRW1pdENv bnRleHQ6OmFkZEdTTWV0YWRhdGEobGx2bTo6VmFsdWUgKnYsIFNvdXJjZVBvcyBwb3MpIHsKLSAg ICAgaW5zdC0+c2V0TWV0YWRhdGEoImxhc3RfY29sdW1uIiwgbWQpOwotIH0KLSAKLS1sbHZtOjpW YWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6QWxsb2NhSW5zdChsbHZtOjpUeXBlICpsbHZtVHlw ZSwgY29uc3QgY2hhciAqbmFtZSwgaW50IGFsaWduLCBib29sIGF0RW50cnlCbG9jaykgewotK2xs dm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpBbGxvY2FJbnN0KGxsdm06OlR5cGUgKmxs dm1UeXBlLCBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSwgaW50IGFsaWduLAotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgYXRFbnRyeUJsb2NrKSB7Ci0g ICAgIGlmIChsbHZtVHlwZSA9PSBOVUxMKSB7Ci0gICAgICAgICBBc3NlcnRQb3MoY3VycmVudFBv cywgbS0+ZXJyb3JDb3VudCA+IDApOwotICAgICAgICAgcmV0dXJuIE5VTEw7Ci1AQCAtMjYxNSwx MiArMjYwNiwxMiBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6QWxsb2NhSW5z dChsbHZtOjpUeXBlICpsbHZtVHlwZSwgY29uc3QgY2hhciAqbgotICAgICAgICAgbGx2bTo6SW5z dHJ1Y3Rpb24gKnJldEluc3QgPSBhbGxvY2FCbG9jay0+Z2V0VGVybWluYXRvcigpOwotICAgICAg ICAgQXNzZXJ0UG9zKGN1cnJlbnRQb3MsIHJldEluc3QpOwotICAgICAgICAgdW5zaWduZWQgQVMg PSBsbHZtRnVuY3Rpb24tPmdldFBhcmVudCgpLT5nZXREYXRhTGF5b3V0KCkuZ2V0QWxsb2NhQWRk clNwYWNlKCk7Ci0tICAgICAgICBpbnN0ID0gbmV3IGxsdm06OkFsbG9jYUluc3QobGx2bVR5cGUs IEFTLCBuYW1lID8gbmFtZSA6ICIiLCByZXRJbnN0KTsKLSsgICAgICAgIGluc3QgPSBuZXcgbGx2 bTo6QWxsb2NhSW5zdChsbHZtVHlwZSwgQVMsIG5hbWUsIHJldEluc3QpOwotICAgICB9IGVsc2Ug ewotICAgICAgICAgLy8gVW5sZXNzIHRoZSBjYWxsZXIgb3ZlcnJvZGUgdGhlIGRlZmF1bHQgYW5k IHdhbnRzIGl0IGluIHRoZQotICAgICAgICAgLy8gY3VycmVudCBiYXNpYyBibG9jawotICAgICAg ICAgdW5zaWduZWQgQVMgPSBsbHZtRnVuY3Rpb24tPmdldFBhcmVudCgpLT5nZXREYXRhTGF5b3V0 KCkuZ2V0QWxsb2NhQWRkclNwYWNlKCk7Ci0tICAgICAgICBpbnN0ID0gbmV3IGxsdm06OkFsbG9j YUluc3QobGx2bVR5cGUsIEFTLCBuYW1lID8gbmFtZSA6ICIiLCBiYmxvY2spOwotKyAgICAgICAg aW5zdCA9IG5ldyBsbHZtOjpBbGxvY2FJbnN0KGxsdm1UeXBlLCBBUywgbmFtZSwgYmJsb2NrKTsK LSAgICAgfQotIAotICAgICAvLyBJZiBubyBhbGlnbm1lbnQgd2FzIHNwZWNpZmllZCBidXQgd2Ug aGF2ZSBhbiBhcnJheSBvZiBhIHVuaWZvcm0KLUBAIC0yNjM5LDcgKzI2MzAsOCBAQCBsbHZtOjpW YWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6QWxsb2NhSW5zdChsbHZtOjpUeXBlICpsbHZtVHlw ZSwgY29uc3QgY2hhciAqbgotICAgICByZXR1cm4gaW5zdDsKLSB9Ci0gCi0tbGx2bTo6VmFsdWUg KkZ1bmN0aW9uRW1pdENvbnRleHQ6OkFsbG9jYUluc3QoY29uc3QgVHlwZSAqcHRyVHlwZSwgY29u c3QgY2hhciAqbmFtZSwgaW50IGFsaWduLCBib29sIGF0RW50cnlCbG9jaykgewotK2xsdm06OlZh bHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpBbGxvY2FJbnN0KGNvbnN0IFR5cGUgKnB0clR5cGUs IGNvbnN0IGxsdm06OlR3aW5lICZuYW1lLCBpbnQgYWxpZ24sCi0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBhdEVudHJ5QmxvY2spIHsKLSAgICAgaWYg KHB0clR5cGUgPT0gTlVMTCkgewotICAgICAgICAgQXNzZXJ0UG9zKGN1cnJlbnRQb3MsIG0tPmVy cm9yQ291bnQgPiAwKTsKLSAgICAgICAgIHJldHVybiBOVUxMOwotQEAgLTMwNzUsNjYgKzMwNjcs NTkgQEAgbGx2bTo6SW5zdHJ1Y3Rpb24gKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkJyYW5jaEluc3Qo bGx2bTo6QmFzaWNCbG9jayAqdHJ1ZUJsb2NrLAotICAgICByZXR1cm4gYjsKLSB9Ci0gCi0tbGx2 bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkV4dHJhY3RJbnN0KGxsdm06OlZhbHVlICp2 LCBpbnQgZWx0LCBjb25zdCBjaGFyICpuYW1lKSB7Ci0rbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1p dENvbnRleHQ6OkV4dHJhY3RJbnN0KGxsdm06OlZhbHVlICp2LCBpbnQgZWx0LCBjb25zdCBsbHZt OjpUd2luZSAmbmFtZSkgewotICAgICBpZiAodiA9PSBOVUxMKSB7Ci0gICAgICAgICBBc3NlcnRQ b3MoY3VycmVudFBvcywgbS0+ZXJyb3JDb3VudCA+IDApOwotICAgICAgICAgcmV0dXJuIE5VTEw7 Ci0gICAgIH0KLSAKLS0gICAgaWYgKG5hbWUgPT0gTlVMTCkgewotLSAgICAgICAgY2hhciBidWZb MzJdOwotLSAgICAgICAgc25wcmludGYoYnVmLCBzaXplb2YoYnVmKSwgIl9leHRyYWN0XyVkIiwg ZWx0KTsKLS0gICAgICAgIG5hbWUgPSBMTFZNR2V0TmFtZSh2LCBidWYpOwotLSAgICB9Ci0gICAg IGxsdm06Okluc3RydWN0aW9uICplaSA9IE5VTEw7Ci0gICAgIGlmIChsbHZtOjppc2E8bGx2bTo6 VmVjdG9yVHlwZT4odi0+Z2V0VHlwZSgpKSkKLS0gICAgICAgIGVpID0gbGx2bTo6RXh0cmFjdEVs ZW1lbnRJbnN0OjpDcmVhdGUodiwgTExWTUludDMyKGVsdCksIG5hbWUsIGJibG9jayk7Ci0rICAg ICAgICBlaSA9IGxsdm06OkV4dHJhY3RFbGVtZW50SW5zdDo6Q3JlYXRlKAotKyAgICAgICAgICAg IHYsIExMVk1JbnQzMihlbHQpLAotKyAgICAgICAgICAgIG5hbWUuaXNUcml2aWFsbHlFbXB0eSgp ID8gKChsbHZtOjpUd2luZSh2LT5nZXROYW1lKCkpICsgIl9leHRyYWN0XyIpICsgbGx2bTo6VHdp bmUoZWx0KSkgOiBuYW1lLCBiYmxvY2spOwotICAgICBlbHNlCi0tICAgICAgICBlaSA9IGxsdm06 OkV4dHJhY3RWYWx1ZUluc3Q6OkNyZWF0ZSh2LCBlbHQsIG5hbWUsIGJibG9jayk7Ci0rICAgICAg ICBlaSA9IGxsdm06OkV4dHJhY3RWYWx1ZUluc3Q6OkNyZWF0ZSgKLSsgICAgICAgICAgICB2LCBl bHQsIG5hbWUuaXNUcml2aWFsbHlFbXB0eSgpID8gKChsbHZtOjpUd2luZSh2LT5nZXROYW1lKCkp ICsgIl9leHRyYWN0XyIpICsgbGx2bTo6VHdpbmUoZWx0KSkgOiBuYW1lLAotKyAgICAgICAgICAg IGJibG9jayk7Ci0gICAgIEFkZERlYnVnUG9zKGVpKTsKLSAgICAgcmV0dXJuIGVpOwotIH0KLSAK LS1sbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6SW5zZXJ0SW5zdChsbHZtOjpWYWx1 ZSAqdiwgbGx2bTo6VmFsdWUgKmVsdFZhbCwgaW50IGVsdCwgY29uc3QgY2hhciAqbmFtZSkgewot K2xsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpJbnNlcnRJbnN0KGxsdm06OlZhbHVl ICp2LCBsbHZtOjpWYWx1ZSAqZWx0VmFsLCBpbnQgZWx0LCBjb25zdCBsbHZtOjpUd2luZSAmbmFt ZSkgewotICAgICBpZiAodiA9PSBOVUxMIHx8IGVsdFZhbCA9PSBOVUxMKSB7Ci0gICAgICAgICBB c3NlcnRQb3MoY3VycmVudFBvcywgbS0+ZXJyb3JDb3VudCA+IDApOwotICAgICAgICAgcmV0dXJu IE5VTEw7Ci0gICAgIH0KLSAKLS0gICAgaWYgKG5hbWUgPT0gTlVMTCkgewotLSAgICAgICAgY2hh ciBidWZbMzJdOwotLSAgICAgICAgc25wcmludGYoYnVmLCBzaXplb2YoYnVmKSwgIl9pbnNlcnRf JWQiLCBlbHQpOwotLSAgICAgICAgbmFtZSA9IExMVk1HZXROYW1lKHYsIGJ1Zik7Ci0tICAgIH0K LS0KLSAgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmlpID0gTlVMTDsKLSAgICAgaWYgKGxsdm06Omlz YTxsbHZtOjpWZWN0b3JUeXBlPih2LT5nZXRUeXBlKCkpKQotLSAgICAgICAgaWkgPSBsbHZtOjpJ bnNlcnRFbGVtZW50SW5zdDo6Q3JlYXRlKHYsIGVsdFZhbCwgTExWTUludDMyKGVsdCksIG5hbWUs IGJibG9jayk7Ci0rICAgICAgICBpaSA9IGxsdm06Okluc2VydEVsZW1lbnRJbnN0OjpDcmVhdGUo Ci0rICAgICAgICAgICAgdiwgZWx0VmFsLCBMTFZNSW50MzIoZWx0KSwKLSsgICAgICAgICAgICBu YW1lLmlzVHJpdmlhbGx5RW1wdHkoKSA/ICgobGx2bTo6VHdpbmUodi0+Z2V0TmFtZSgpKSArICJf aW5zZXJ0XyIpICsgbGx2bTo6VHdpbmUoZWx0KSkgOiBuYW1lLCBiYmxvY2spOwotICAgICBlbHNl Ci0tICAgICAgICBpaSA9IGxsdm06Okluc2VydFZhbHVlSW5zdDo6Q3JlYXRlKHYsIGVsdFZhbCwg ZWx0LCBuYW1lLCBiYmxvY2spOwotKyAgICAgICAgaWkgPSBsbHZtOjpJbnNlcnRWYWx1ZUluc3Q6 OkNyZWF0ZSgKLSsgICAgICAgICAgICB2LCBlbHRWYWwsIGVsdCwKLSsgICAgICAgICAgICBuYW1l LmlzVHJpdmlhbGx5RW1wdHkoKSA/ICgobGx2bTo6VHdpbmUodi0+Z2V0TmFtZSgpKSArICJfaW5z ZXJ0XyIpICsgbGx2bTo6VHdpbmUoZWx0KSkgOiBuYW1lLCBiYmxvY2spOwotICAgICBBZGREZWJ1 Z1BvcyhpaSk7Ci0gICAgIHJldHVybiBpaTsKLSB9Ci0gCi0tbGx2bTo6VmFsdWUgKkZ1bmN0aW9u RW1pdENvbnRleHQ6OlNodWZmbGVJbnN0KGxsdm06OlZhbHVlICp2MSwgbGx2bTo6VmFsdWUgKnYy LCBsbHZtOjpWYWx1ZSAqbWFzaywgY29uc3QgY2hhciAqbmFtZSkgewotK2xsdm06OlZhbHVlICpG dW5jdGlvbkVtaXRDb250ZXh0OjpTaHVmZmxlSW5zdChsbHZtOjpWYWx1ZSAqdjEsIGxsdm06OlZh bHVlICp2MiwgbGx2bTo6VmFsdWUgKm1hc2ssCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lKSB7Ci0gICAgIGlmICh2 MSA9PSBOVUxMIHx8IHYyID09IE5VTEwgfHwgbWFzayA9PSBOVUxMKSB7Ci0gICAgICAgICBBc3Nl cnRQb3MoY3VycmVudFBvcywgbS0+ZXJyb3JDb3VudCA+IDApOwotICAgICAgICAgcmV0dXJuIE5V TEw7Ci0gICAgIH0KLSAKLS0gICAgaWYgKG5hbWUgPT0gTlVMTCkgewotLSAgICAgICAgY2hhciBi dWZbMzJdOwotLSAgICAgICAgc25wcmludGYoYnVmLCBzaXplb2YoYnVmKSwgIl9zaHVmZmxlIik7 Ci0tICAgICAgICBuYW1lID0gTExWTUdldE5hbWUodjEsIGJ1Zik7Ci0tICAgIH0KLS0KLS0gICAg bGx2bTo6SW5zdHJ1Y3Rpb24gKmlpID0gbmV3IGxsdm06OlNodWZmbGVWZWN0b3JJbnN0KHYxLCB2 MiwgbWFzaywgbmFtZSwgYmJsb2NrKTsKLSsgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmlpID0gbmV3 IGxsdm06OlNodWZmbGVWZWN0b3JJbnN0KAotKyAgICAgICAgdjEsIHYyLCBtYXNrLCBuYW1lLmlz VHJpdmlhbGx5RW1wdHkoKSA/IChsbHZtOjpUd2luZSh2MS0+Z2V0TmFtZSgpKSArICJfc2h1ZmZs ZSIpIDogbmFtZSwgYmJsb2NrKTsKLSAKLSAgICAgQWRkRGVidWdQb3MoaWkpOwotICAgICByZXR1 cm4gaWk7Ci0gfQotIAotLWxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpCcm9hZGNh c3RWYWx1ZShsbHZtOjpWYWx1ZSAqdiwgbGx2bTo6VHlwZSAqdmVjVHlwZSwgY29uc3QgY2hhciAq bmFtZSkgewotK2xsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpCcm9hZGNhc3RWYWx1 ZShsbHZtOjpWYWx1ZSAqdiwgbGx2bTo6VHlwZSAqdmVjVHlwZSwgY29uc3QgbGx2bTo6VHdpbmUg Jm5hbWUpIHsKLSAgICAgaWYgKHYgPT0gTlVMTCB8fCB2ZWNUeXBlID09IE5VTEwpIHsKLSAgICAg ICAgIEFzc2VydFBvcyhjdXJyZW50UG9zLCBtLT5lcnJvckNvdW50ID4gMCk7Ci0gICAgICAgICBy ZXR1cm4gTlVMTDsKLUBAIC0zMTQ4LDEyICszMTMzLDYgQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9u RW1pdENvbnRleHQ6OkJyb2FkY2FzdFZhbHVlKGxsdm06OlZhbHVlICp2LCBsbHZtOjpUeXBlICp2 ZWMKLSAgICAgQXNzZXJ0KHR5ICYmIHR5LT5nZXRWZWN0b3JFbGVtZW50VHlwZSgpID09IHYtPmdl dFR5cGUoKSk7Ci0gI2VuZGlmCi0gCi0tICAgIGlmIChuYW1lID09IE5VTEwpIHsKLS0gICAgICAg IGNoYXIgYnVmWzMyXTsKLS0gICAgICAgIHNucHJpbnRmKGJ1Ziwgc2l6ZW9mKGJ1ZiksICJfYnJv YWRjYXN0Iik7Ci0tICAgICAgICBuYW1lID0gTExWTUdldE5hbWUodiwgYnVmKTsKLS0gICAgfQot LQotICAgICAvLyBHZW5lcmF0ZSB0aGUgZm9sbG93aW5nIHNlcXVlbmNlOgotICAgICAvLyAgICVu YW1lX2luaXQuaSA9IGluc2VydGVsZW1lbnQgPDQgeCBpMzI+IHVuZGVmLCBpMzIgJXZhbCwgaTMy IDAKLSAgICAgLy8gICAlbmFtZS5pID0gc2h1ZmZsZXZlY3RvciA8NCB4IGkzMj4gJW5hbWVfaW5p dC5pLCA8NCB4IGkzMj4gdW5kZWYsCi1AQCAtMzE2Myw3ICszMTQyLDcgQEAgbGx2bTo6VmFsdWUg KkZ1bmN0aW9uRW1pdENvbnRleHQ6OkJyb2FkY2FzdFZhbHVlKGxsdm06OlZhbHVlICp2LCBsbHZt OjpUeXBlICp2ZWMKLSAgICAgbGx2bTo6VmFsdWUgKnVuZGVmMiA9IGxsdm06OlVuZGVmVmFsdWU6 OmdldCh2ZWNUeXBlKTsKLSAKLSAgICAgLy8gSW5zZXJ0RWxlbWVudAotLSAgICBsbHZtOjpUd2lu ZSB0dyA9IGxsdm06OlR3aW5lKG5hbWUpICsgbGx2bTo6VHdpbmUoIl9pbml0Iik7Ci0rICAgIGxs dm06OlR3aW5lIHR3ID0gbmFtZS5pc1RyaXZpYWxseUVtcHR5KCkgPyAobGx2bTo6VHdpbmUodi0+ Z2V0TmFtZSgpKSArICJfYnJvYWRjYXN0IikgOiBuYW1lICsgbGx2bTo6VHdpbmUoIl9pbml0Iik7 Ci0gICAgIGxsdm06OlZhbHVlICppbnNlcnQgPSBJbnNlcnRJbnN0KHVuZGVmMSwgdiwgMCwgdHcu c3RyKCkuY19zdHIoKSk7Ci0gCi0gICAgIC8vIFNodWZmbGVWZWN0b3IKLUBAIC0zMTc5LDI4ICsz MTU4LDI3IEBAIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpCcm9hZGNhc3RWYWx1 ZShsbHZtOjpWYWx1ZSAqdiwgbGx2bTo6VHlwZSAqdmVjCi0gICAgICAgICBsbHZtOjpDb25zdGFu dFZlY3Rvcjo6Z2V0U3BsYXQobGx2bTo6RWxlbWVudENvdW50OjpnZXQoc3RhdGljX2Nhc3Q8dW5z aWduZWQgaW50Pih0eS0+Z2V0TnVtRWxlbWVudHMoKSksIGZhbHNlKSwKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpDb25zdGFudDo6Z2V0TnVsbFZhbHVlKGxs dm06OlR5cGU6OmdldEludDMyVHkoKmctPmN0eCkpKTsKLSAjZW5kaWYKLS0gICAgbGx2bTo6VmFs dWUgKnJldCA9IFNodWZmbGVJbnN0KGluc2VydCwgdW5kZWYyLCB6ZXJvVmVjLCBuYW1lKTsKLSsg ICAgbGx2bTo6VmFsdWUgKnJldCA9IFNodWZmbGVJbnN0KGluc2VydCwgdW5kZWYyLCB6ZXJvVmVj LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZS5pc1RyaXZpYWxseUVt cHR5KCkgPyAobGx2bTo6VHdpbmUodi0+Z2V0TmFtZSgpKSArICJfYnJvYWRjYXN0IikgOiBuYW1l KTsKLSAKLSAgICAgcmV0dXJuIHJldDsKLSB9Ci0gCi0tbGx2bTo6UEhJTm9kZSAqRnVuY3Rpb25F bWl0Q29udGV4dDo6UGhpTm9kZShsbHZtOjpUeXBlICp0eXBlLCBpbnQgY291bnQsIGNvbnN0IGNo YXIgKm5hbWUpIHsKLS0gICAgbGx2bTo6UEhJTm9kZSAqcG4gPSBsbHZtOjpQSElOb2RlOjpDcmVh dGUodHlwZSwgY291bnQsIG5hbWUgPyBuYW1lIDogInBoaSIsIGJibG9jayk7Ci0rbGx2bTo6UEhJ Tm9kZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6UGhpTm9kZShsbHZtOjpUeXBlICp0eXBlLCBpbnQg Y291bnQsIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lKSB7Ci0rICAgIGxsdm06OlBISU5vZGUgKnBu ID0gbGx2bTo6UEhJTm9kZTo6Q3JlYXRlKHR5cGUsIGNvdW50LCBuYW1lLmlzVHJpdmlhbGx5RW1w dHkoKSA/ICJwaGkiIDogbmFtZSwgYmJsb2NrKTsKLSAgICAgQWRkRGVidWdQb3MocG4pOwotICAg ICByZXR1cm4gcG47Ci0gfQotIAotIGxsdm06Okluc3RydWN0aW9uICpGdW5jdGlvbkVtaXRDb250 ZXh0OjpTZWxlY3RJbnN0KGxsdm06OlZhbHVlICp0ZXN0LCBsbHZtOjpWYWx1ZSAqdmFsMCwgbGx2 bTo6VmFsdWUgKnZhbDEsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgY29uc3QgY2hhciAqbmFtZSkgewotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lKSB7Ci0g ICAgIGlmICh0ZXN0ID09IE5VTEwgfHwgdmFsMCA9PSBOVUxMIHx8IHZhbDEgPT0gTlVMTCkgewot ICAgICAgICAgQXNzZXJ0UG9zKGN1cnJlbnRQb3MsIG0tPmVycm9yQ291bnQgPiAwKTsKLSAgICAg ICAgIHJldHVybiBOVUxMOwotICAgICB9Ci0gCi0tICAgIGlmIChuYW1lID09IE5VTEwpCi0tICAg ICAgICBuYW1lID0gTExWTUdldE5hbWUodGVzdCwgIl9zZWxlY3QiKTsKLS0KLS0gICAgbGx2bTo6 SW5zdHJ1Y3Rpb24gKmluc3QgPSBsbHZtOjpTZWxlY3RJbnN0OjpDcmVhdGUodGVzdCwgdmFsMCwg dmFsMSwgbmFtZSwgYmJsb2NrKTsKLSsgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmluc3QgPSBsbHZt OjpTZWxlY3RJbnN0OjpDcmVhdGUoCi0rICAgICAgICB0ZXN0LCB2YWwwLCB2YWwxLCBuYW1lLmlz VHJpdmlhbGx5RW1wdHkoKSA/IChsbHZtOjpUd2luZSh0ZXN0LT5nZXROYW1lKCkpICsgIl9zZWxl Y3QiKSA6IG5hbWUsIGJibG9jayk7Ci0gICAgIEFkZERlYnVnUG9zKGluc3QpOwotICAgICByZXR1 cm4gaW5zdDsKLSB9Ci1AQCAtMzIyNiw3ICszMjA0LDcgQEAgc3RhdGljIHVuc2lnbmVkIGludCBs Q2FsbGVlQXJnQ291bnQobGx2bTo6VmFsdWUgKmNhbGxlZSwgY29uc3QgRnVuY3Rpb25UeXBlICpm dW4KLSB9Ci0gCi0gbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkNhbGxJbnN0KGxs dm06OlZhbHVlICpmdW5jLCBjb25zdCBGdW5jdGlvblR5cGUgKmZ1bmNUeXBlLAotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdGQ6OnZlY3RvcjxsbHZt OjpWYWx1ZSAqPiAmYXJncywgY29uc3QgY2hhciAqbmFtZSkgewotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdGQ6OnZlY3RvcjxsbHZtOjpWYWx1ZSAq PiAmYXJncywgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUpIHsKLSAgICAgaWYgKGZ1bmMgPT0gTlVM TCkgewotICAgICAgICAgQXNzZXJ0UG9zKGN1cnJlbnRQb3MsIG0tPmVycm9yQ291bnQgPiAwKTsK LSAgICAgICAgIHJldHVybiBOVUxMOwotQEAgLTMyNTgsOSArMzIzNiw5IEBAIGxsdm06OlZhbHVl ICpGdW5jdGlvbkVtaXRDb250ZXh0OjpDYWxsSW5zdChsbHZtOjpWYWx1ZSAqZnVuYywgY29uc3Qg RnVuY3Rpb25UeXBlCi0gI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMV8wCi0g ICAgICAgICBsbHZtOjpQb2ludGVyVHlwZSAqZnVuY19wdHJfdHlwZSA9IGxsdm06OmR5bl9jYXN0 PGxsdm06OlBvaW50ZXJUeXBlPihmdW5jLT5nZXRUeXBlKCkpOwotICAgICAgICAgbGx2bTo6RnVu Y3Rpb25UeXBlICpmdW5jX3R5cGUgPSBsbHZtOjpkeW5fY2FzdDxsbHZtOjpGdW5jdGlvblR5cGU+ KGZ1bmNfcHRyX3R5cGUtPmdldFBvaW50ZXJFbGVtZW50VHlwZSgpKTsKLS0gICAgICAgIGxsdm06 OkNhbGxJbnN0ICpjYWxsaW5zdCA9IGxsdm06OkNhbGxJbnN0OjpDcmVhdGUoZnVuY190eXBlLCBm dW5jLCBhcmdWYWxzLCBuYW1lID8gbmFtZSA6ICIiLCBiYmxvY2spOwotKyAgICAgICAgbGx2bTo6 Q2FsbEluc3QgKmNhbGxpbnN0ID0gbGx2bTo6Q2FsbEluc3Q6OkNyZWF0ZShmdW5jX3R5cGUsIGZ1 bmMsIGFyZ1ZhbHMsIG5hbWUsIGJibG9jayk7Ci0gI2Vsc2UKLS0gICAgICAgIGxsdm06OkNhbGxJ bnN0ICpjYWxsaW5zdCA9IGxsdm06OkNhbGxJbnN0OjpDcmVhdGUoZnVuYywgYXJnVmFscywgbmFt ZSA/IG5hbWUgOiAiIiwgYmJsb2NrKTsKLSsgICAgICAgIGxsdm06OkNhbGxJbnN0ICpjYWxsaW5z dCA9IGxsdm06OkNhbGxJbnN0OjpDcmVhdGUoZnVuYywgYXJnVmFscywgbmFtZSwgYmJsb2NrKTsK LSAjZW5kaWYKLSAKLSAgICAgICAgIC8vIFdlIGNvdWxkIGJlIGRlYWxpbmcgd2l0aCBhIGZ1bmN0 aW9uIHBvaW50ZXIgaW4gd2hpY2ggY2FzZSB0aGlzIHdpbGwgbm90IGJlIGEgJ2xsdm06OkZ1bmN0 aW9uJy4KLUBAIC0zNDY0LDE0ICszNDQyLDE0IEBAIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRD b250ZXh0OjpDYWxsSW5zdChsbHZtOjpWYWx1ZSAqZnVuYywgY29uc3QgRnVuY3Rpb25UeXBlCi0g fQotIAotIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpDYWxsSW5zdChsbHZtOjpW YWx1ZSAqZnVuYywgY29uc3QgRnVuY3Rpb25UeXBlICpmdW5jVHlwZSwgbGx2bTo6VmFsdWUgKmFy ZywKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hh ciAqbmFtZSkgewotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj b25zdCBsbHZtOjpUd2luZSAmbmFtZSkgewotICAgICBzdGQ6OnZlY3RvcjxsbHZtOjpWYWx1ZSAq PiBhcmdzOwotICAgICBhcmdzLnB1c2hfYmFjayhhcmcpOwotICAgICByZXR1cm4gQ2FsbEluc3Qo ZnVuYywgZnVuY1R5cGUsIGFyZ3MsIG5hbWUpOwotIH0KLSAKLSBsbHZtOjpWYWx1ZSAqRnVuY3Rp b25FbWl0Q29udGV4dDo6Q2FsbEluc3QobGx2bTo6VmFsdWUgKmZ1bmMsIGNvbnN0IEZ1bmN0aW9u VHlwZSAqZnVuY1R5cGUsIGxsdm06OlZhbHVlICphcmcwLAotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpWYWx1ZSAqYXJnMSwgY29uc3QgY2hhciAqbmFt ZSkgewotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpW YWx1ZSAqYXJnMSwgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUpIHsKLSAgICAgc3RkOjp2ZWN0b3I8 bGx2bTo6VmFsdWUgKj4gYXJnczsKLSAgICAgYXJncy5wdXNoX2JhY2soYXJnMCk7Ci0gICAgIGFy Z3MucHVzaF9iYWNrKGFyZzEpOwotZGlmZiAtLWdpdCBhL3NyYy9jdHguaCBiL3NyYy9jdHguaAot aW5kZXggNmU1YWQ3NGJhLi40OGIzYmI4MjYgMTAwNjQ0Ci0tLS0gYS9zcmMvY3R4LmgKLSsrKyBi L3NyYy9jdHguaAotQEAgLTMwMiw3ICszMDIsNyBAQCBjbGFzcyBGdW5jdGlvbkVtaXRDb250ZXh0 IHsKLSAgICAgbGx2bTo6VmFsdWUgKkdldFN0cmluZ1B0cihjb25zdCBzdGQ6OnN0cmluZyAmc3Ry KTsKLSAKLSAgICAgLyoqIENyZWF0ZSBhIG5ldyBiYXNpYyBibG9jayB3aXRoIGdpdmVuIG5hbWUg Ki8KLS0gICAgbGx2bTo6QmFzaWNCbG9jayAqQ3JlYXRlQmFzaWNCbG9jayhjb25zdCBjaGFyICpu YW1lLCBsbHZtOjpCYXNpY0Jsb2NrICppbnNlcnRBZnRlciA9IE5VTEwpOwotKyAgICBsbHZtOjpC YXNpY0Jsb2NrICpDcmVhdGVCYXNpY0Jsb2NrKGNvbnN0IGxsdm06OlR3aW5lICZuYW1lLCBsbHZt OjpCYXNpY0Jsb2NrICppbnNlcnRBZnRlciA9IE5VTEwpOwotIAotICAgICAvKiogR2l2ZW4gYSB2 ZWN0b3Igd2l0aCBlbGVtZW50IHR5cGUgaTEsIHJldHVybiBhIHZlY3RvciBvZiB0eXBlCi0gICAg ICAgICBMTFZNVHlwZXM6OkJvb2xWZWN0b3JUeXBlLiAgVGhpcyBtZXRob2QgaGFuZGxlcyB0aGUg Y29udmVyc2lvbiBmb3IKLUBAIC0zODAsMzMgKzM4MCwzMyBAQCBjbGFzcyBGdW5jdGlvbkVtaXRD b250ZXh0IHsKLSAgICAgICAgIHRoaXMgYWxzbyBoYW5kbGVzIGFwcGx5aW5nIHRoZSBnaXZlbiBv cGVyYXRpb24gdG8gdGhlIHZlY3RvcgotICAgICAgICAgZWxlbWVudHMuICovCi0gICAgIGxsdm06 OlZhbHVlICpCaW5hcnlPcGVyYXRvcihsbHZtOjpJbnN0cnVjdGlvbjo6QmluYXJ5T3BzIGluc3Qs IGxsdm06OlZhbHVlICp2MCwgbGx2bTo6VmFsdWUgKnYxLAotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgY29uc3QgY2hhciAqbmFtZSA9IE5VTEwpOwotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUgPSAiIik7Ci0gCi0gICAgIC8q KiBFbWl0IHRoZSAibm90IiBvcGVyYXRvci4gIExpa2UgQmluYXJ5T3BlcmF0b3IoKSwgdGhpcyBh bHNvIGhhbmRsZXMKLSAgICAgICAgIGEgVmVjdG9yVHlwZS1iYXNlZCBvcGVyYW5kLiAqLwotLSAg ICBsbHZtOjpWYWx1ZSAqTm90T3BlcmF0b3IobGx2bTo6VmFsdWUgKnYsIGNvbnN0IGNoYXIgKm5h bWUgPSBOVUxMKTsKLSsgICAgbGx2bTo6VmFsdWUgKk5vdE9wZXJhdG9yKGxsdm06OlZhbHVlICp2 LCBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSA9ICIiKTsKLSAKLSAgICAgLyoqIEVtaXQgYSBjb21w YXJpc29uIGluc3RydWN0aW9uLiAgSWYgdGhlIG9wZXJhbmRzIGFyZSBWZWN0b3JUeXBlcywKLSAg ICAgICAgIHRoZW4gYSB2YWx1ZSBmb3IgdGhlIGNvcnJlc3BvbmRpbmcgYm9vbGVhbiBWZWN0b3JU eXBlIGlzCi0gICAgICAgICByZXR1cm5lZC4gKi8KLSAgICAgbGx2bTo6VmFsdWUgKkNtcEluc3Qo bGx2bTo6SW5zdHJ1Y3Rpb246Ok90aGVyT3BzIGluc3QsIGxsdm06OkNtcEluc3Q6OlByZWRpY2F0 ZSBwcmVkLCBsbHZtOjpWYWx1ZSAqdjAsCi0tICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06 OlZhbHVlICp2MSwgY29uc3QgY2hhciAqbmFtZSA9IE5VTEwpOwotKyAgICAgICAgICAgICAgICAg ICAgICAgICBsbHZtOjpWYWx1ZSAqdjEsIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lID0gIiIpOwot IAotICAgICAvKiogR2l2ZW4gYSBzY2FsYXIgdmFsdWUsIHJldHVybiBhIHZlY3RvciBvZiB0aGUg c2FtZSB0eXBlIChvciBhbgotICAgICAgICAgYXJyYXksIGZvciBwb2ludGVyIHR5cGVzKS4gKi8K LS0gICAgbGx2bTo6VmFsdWUgKlNtZWFyVW5pZm9ybShsbHZtOjpWYWx1ZSAqdmFsdWUsIGNvbnN0 IGNoYXIgKm5hbWUgPSBOVUxMKTsKLSsgICAgbGx2bTo6VmFsdWUgKlNtZWFyVW5pZm9ybShsbHZt OjpWYWx1ZSAqdmFsdWUsIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lID0gIiIpOwotIAotLSAgICBs bHZtOjpWYWx1ZSAqQml0Q2FzdEluc3QobGx2bTo6VmFsdWUgKnZhbHVlLCBsbHZtOjpUeXBlICp0 eXBlLCBjb25zdCBjaGFyICpuYW1lID0gTlVMTCk7Ci0tICAgIGxsdm06OlZhbHVlICpQdHJUb0lu dEluc3QobGx2bTo6VmFsdWUgKnZhbHVlLCBjb25zdCBjaGFyICpuYW1lID0gTlVMTCk7Ci0tICAg IGxsdm06OlZhbHVlICpQdHJUb0ludEluc3QobGx2bTo6VmFsdWUgKnZhbHVlLCBsbHZtOjpUeXBl ICp0eXBlLCBjb25zdCBjaGFyICpuYW1lID0gTlVMTCk7Ci0tICAgIGxsdm06OlZhbHVlICpJbnRU b1B0ckluc3QobGx2bTo6VmFsdWUgKnZhbHVlLCBsbHZtOjpUeXBlICp0eXBlLCBjb25zdCBjaGFy ICpuYW1lID0gTlVMTCk7Ci0rICAgIGxsdm06OlZhbHVlICpCaXRDYXN0SW5zdChsbHZtOjpWYWx1 ZSAqdmFsdWUsIGxsdm06OlR5cGUgKnR5cGUsIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lID0gIiIp OwotKyAgICBsbHZtOjpWYWx1ZSAqUHRyVG9JbnRJbnN0KGxsdm06OlZhbHVlICp2YWx1ZSwgY29u c3QgbGx2bTo6VHdpbmUgJm5hbWUgPSAiIik7Ci0rICAgIGxsdm06OlZhbHVlICpQdHJUb0ludElu c3QobGx2bTo6VmFsdWUgKnZhbHVlLCBsbHZtOjpUeXBlICp0eXBlLCBjb25zdCBsbHZtOjpUd2lu ZSAmbmFtZSA9ICIiKTsKLSsgICAgbGx2bTo6VmFsdWUgKkludFRvUHRySW5zdChsbHZtOjpWYWx1 ZSAqdmFsdWUsIGxsdm06OlR5cGUgKnR5cGUsIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lID0gIiIp OwotIAotLSAgICBsbHZtOjpJbnN0cnVjdGlvbiAqVHJ1bmNJbnN0KGxsdm06OlZhbHVlICp2YWx1 ZSwgbGx2bTo6VHlwZSAqdHlwZSwgY29uc3QgY2hhciAqbmFtZSA9IE5VTEwpOwotKyAgICBsbHZt OjpJbnN0cnVjdGlvbiAqVHJ1bmNJbnN0KGxsdm06OlZhbHVlICp2YWx1ZSwgbGx2bTo6VHlwZSAq dHlwZSwgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUgPSAiIik7Ci0gICAgIGxsdm06Okluc3RydWN0 aW9uICpDYXN0SW5zdChsbHZtOjpJbnN0cnVjdGlvbjo6Q2FzdE9wcyBvcCwgbGx2bTo6VmFsdWUg KnZhbHVlLCBsbHZtOjpUeXBlICp0eXBlLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgY29uc3QgY2hhciAqbmFtZSA9IE5VTEwpOwotLSAgICBsbHZtOjpJbnN0cnVjdGlvbiAqRlBD YXN0SW5zdChsbHZtOjpWYWx1ZSAqdmFsdWUsIGxsdm06OlR5cGUgKnR5cGUsIGNvbnN0IGNoYXIg Km5hbWUgPSBOVUxMKTsKLS0gICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKlNFeHRJbnN0KGxsdm06OlZh bHVlICp2YWx1ZSwgbGx2bTo6VHlwZSAqdHlwZSwgY29uc3QgY2hhciAqbmFtZSA9IE5VTEwpOwot LSAgICBsbHZtOjpJbnN0cnVjdGlvbiAqWkV4dEluc3QobGx2bTo6VmFsdWUgKnZhbHVlLCBsbHZt OjpUeXBlICp0eXBlLCBjb25zdCBjaGFyICpuYW1lID0gTlVMTCk7Ci0rICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSA9ICIiKTsKLSsgICAgbGx2 bTo6SW5zdHJ1Y3Rpb24gKkZQQ2FzdEluc3QobGx2bTo6VmFsdWUgKnZhbHVlLCBsbHZtOjpUeXBl ICp0eXBlLCBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSA9ICIiKTsKLSsgICAgbGx2bTo6SW5zdHJ1 Y3Rpb24gKlNFeHRJbnN0KGxsdm06OlZhbHVlICp2YWx1ZSwgbGx2bTo6VHlwZSAqdHlwZSwgY29u c3QgbGx2bTo6VHdpbmUgJm5hbWUgPSAiIik7Ci0rICAgIGxsdm06Okluc3RydWN0aW9uICpaRXh0 SW5zdChsbHZtOjpWYWx1ZSAqdmFsdWUsIGxsdm06OlR5cGUgKnR5cGUsIGNvbnN0IGxsdm06OlR3 aW5lICZuYW1lID0gIiIpOwotIAotICAgICAvKiogR2l2ZW4gdHdvIGludGVnZXItdHlwZWQgdmFs dWVzIChidXQgcG9zc2libHkgb25lIHZlY3RvciBhbmQgdGhlCi0gICAgICAgICBvdGhlciBub3Qs IGFuZCBvciBvZiBwb3NzaWJseS1kaWZmZXJlbnQgYml0LXdpZHRocyksIHVwZGF0ZSB0aGVpcgot QEAgLTQyNiw5ICs0MjYsOSBAQCBjbGFzcyBGdW5jdGlvbkVtaXRDb250ZXh0IHsKLSAgICAgICAg IHBvaW50ZXJzLiAgVGhlIHVuZGVybHlpbmcgdHlwZSBvZiB0aGUgYmFzZSBwb2ludGVyIG11c3Qg YmUgcHJvdmlkZWQKLSAgICAgICAgIHZpYSB0aGUgcHRyVHlwZSBwYXJhbWV0ZXIgKi8KLSAgICAg bGx2bTo6VmFsdWUgKkdldEVsZW1lbnRQdHJJbnN0KGxsdm06OlZhbHVlICpiYXNlUHRyLCBsbHZt OjpWYWx1ZSAqaW5kZXgsIGNvbnN0IFR5cGUgKnB0clR5cGUsCi0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpuYW1lID0gTlVMTCk7Ci0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSA9ICIiKTsKLSAg ICAgbGx2bTo6VmFsdWUgKkdldEVsZW1lbnRQdHJJbnN0KGxsdm06OlZhbHVlICpiYXNlUHRyLCBs bHZtOjpWYWx1ZSAqaW5kZXgwLCBsbHZtOjpWYWx1ZSAqaW5kZXgxLCBjb25zdCBUeXBlICpwdHJU eXBlLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqbmFt ZSA9IE5VTEwpOwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGx2 bTo6VHdpbmUgJm5hbWUgPSAiIik7Ci0gCi0gICAgIC8qKiBUaGlzIG1ldGhvZCByZXR1cm5zIGEg bmV3IHBvaW50ZXIgdGhhdCByZXByZXNlbnRzIG9mZnNldHRpbmcgdGhlCi0gICAgICAgICBnaXZl biBiYXNlIHBvaW50ZXIgdG8gcG9pbnQgYXQgdGhlIGdpdmVuIGVsZW1lbnQgbnVtYmVyIG9mIHRo ZQotQEAgLTQzNiwyNiArNDM2LDI2IEBAIGNsYXNzIEZ1bmN0aW9uRW1pdENvbnRleHQgewotICAg ICAgICAgcG9pbnRlciBtdXN0IGJlIGEgcG9pbnRlciB0byBhIHN0cnVjdHVyZSB0eXBlLiAgVGhl IHB0clR5cGUgZ2l2ZXMKLSAgICAgICAgIHRoZSB0eXBlIG9mIHRoZSBwb2ludGVyLCB0aG91Z2gg aXQgbWF5IGJlIE5VTEwgaWYgdGhlIGJhc2UgcG9pbnRlcgotICAgICAgICAgaXMgdW5pZm9ybS4g Ki8KLS0gICAgbGx2bTo6VmFsdWUgKkFkZEVsZW1lbnRPZmZzZXQobGx2bTo6VmFsdWUgKmJhc2VQ dHIsIGludCBlbGVtZW50TnVtLCBjb25zdCBUeXBlICpwdHJUeXBlLCBjb25zdCBjaGFyICpuYW1l ID0gTlVMTCwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgUG9pbnRl clR5cGUgKipyZXN1bHRQdHJUeXBlID0gTlVMTCk7Ci0rICAgIGxsdm06OlZhbHVlICpBZGRFbGVt ZW50T2Zmc2V0KGxsdm06OlZhbHVlICpiYXNlUHRyLCBpbnQgZWxlbWVudE51bSwgY29uc3QgVHlw ZSAqcHRyVHlwZSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGx2 bTo6VHdpbmUgJm5hbWUgPSAiIiwgY29uc3QgUG9pbnRlclR5cGUgKipyZXN1bHRQdHJUeXBlID0g TlVMTCk7Ci0gCi0gICAgIC8qKiBCb29sIGlzIHN0b3JlZCBhcyBpOCBhbmQgPFdJRFRIIHggaTg+ IGJ1dCByZXByZXNlbnRlZCBpbiBJUiBhcyBpMSBhbmQKLSAgICAgICogPFdJRFRIIHggTUFTSz4u IFRoaXMgaXMgYSBoZWxwZXIgZnVuY3Rpb24gdG8gbWF0Y2ggYm9vbCBzaXplIGF0IHN0b3JhZ2UK LSAgICAgICogaW50ZXJmYWNlLiAqLwotLSAgICBsbHZtOjpWYWx1ZSAqU3dpdGNoQm9vbFNpemUo bGx2bTo6VmFsdWUgKnZhbHVlLCBsbHZtOjpUeXBlICp0b1R5cGUsIGNvbnN0IGNoYXIgKm5hbWUg PSBOVUxMKTsKLSsgICAgbGx2bTo6VmFsdWUgKlN3aXRjaEJvb2xTaXplKGxsdm06OlZhbHVlICp2 YWx1ZSwgbGx2bTo6VHlwZSAqdG9UeXBlLCBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSA9ICIiKTsK LSAgICAgLyoqIExvYWQgZnJvbSB0aGUgbWVtb3J5IGxvY2F0aW9uKHMpIGdpdmVuIGJ5IGx2YWx1 ZSwgdXNpbmcgdGhlIGdpdmVuCi0gICAgICAgICBtYXNrLiAgVGhlIGx2YWx1ZSBtYXkgYmUgdmFy eWluZywgaW4gd2hpY2ggY2FzZSB0aGlzIGNvcnJlc3BvbmRzIHRvCi0gICAgICAgICBhIGdhdGhl ciBmcm9tIHRoZSBtdWx0aXBsZSBtZW1vcnkgbG9jYXRpb25zIGdpdmVuIGJ5IHRoZSBhcnJheSBv ZgotICAgICAgICAgcG9pbnRlciB2YWx1ZXMgZ2l2ZW4gYnkgdGhlIGx2YWx1ZS4gIElmIHRoZSBs dmFsdWUgaXMgbm90IHZhcnlpbmcsCi0gICAgICAgICB0aGVuIGJvdGggdGhlIG1hc2sgcG9pbnRl ciBhbmQgdGhlIHR5cGUgcG9pbnRlciBtYXkgYmUgTlVMTC4gKi8KLS0gICAgbGx2bTo6VmFsdWUg KkxvYWRJbnN0KGxsdm06OlZhbHVlICpwdHIsIGxsdm06OlZhbHVlICptYXNrLCBjb25zdCBUeXBl ICpwdHJUeXBlLCBjb25zdCBjaGFyICpuYW1lID0gTlVMTCwKLSsgICAgbGx2bTo6VmFsdWUgKkxv YWRJbnN0KGxsdm06OlZhbHVlICpwdHIsIGxsdm06OlZhbHVlICptYXNrLCBjb25zdCBUeXBlICpw dHJUeXBlLCBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSA9ICIiLAotICAgICAgICAgICAgICAgICAg ICAgICAgICAgYm9vbCBvbmVfZWxlbSA9IGZhbHNlKTsKLSAKLSAgICAgLyogTG9hZCBmcm9tIG1l bW9yeSBsb2NhdGlvbihzKSBnaXZlbi4KLSAgICAgICogJ3R5cGUnIG5lZWRzIHRvIGJlIHByb3Zp ZGVkIHdoZW4gc3RvcmFnZSB0eXBlIGlzIGRpZmZlcmVudCBmcm9tIElSIHR5cGUuIEZvciBleGFt cGxlLAotICAgICAgKiAndW5mb3JtIGJvb2wnIGlzICdpMScgaW4gSVIgYnV0IHN0b3JlZCBhcyAn aTgnLgotICAgICAgKiBPdGhlcndpc2UgbGVhdmUgdGhpcyBhcyBOVUxMLiAqLwotLSAgICBsbHZt OjpWYWx1ZSAqTG9hZEluc3QobGx2bTo6VmFsdWUgKnB0ciwgY29uc3QgVHlwZSAqdHlwZSA9IE5V TEwsIGNvbnN0IGNoYXIgKm5hbWUgPSBOVUxMKTsKLSsgICAgbGx2bTo6VmFsdWUgKkxvYWRJbnN0 KGxsdm06OlZhbHVlICpwdHIsIGNvbnN0IFR5cGUgKnR5cGUgPSBOVUxMLCBjb25zdCBsbHZtOjpU d2luZSAmbmFtZSA9ICIiKTsKLSAKLSAgICAgLyoqIEVtaXRzIGFuIGFsbG9jYSBpbnN0cnVjdGlv biB0byBhbGxvY2F0ZSBzdGFjayBzdG9yYWdlIGZvciB0aGUgZ2l2ZW4KLSAgICAgICAgIHR5cGUu ICBJZiBhIG5vbi16ZXJvIGFsaWdubWVudCBpcyBzcGVjaWZpZWQsIHRoZSBvYmplY3QgaXMgYWxz bwotQEAgLTQ2Myw3ICs0NjMsOCBAQCBjbGFzcyBGdW5jdGlvbkVtaXRDb250ZXh0IHsKLSAgICAg ICAgIGluc3RydWN0aW9uIGlzIGFkZGVkIGF0IHRoZSBzdGFydCBvZiB0aGUgZnVuY3Rpb24gaW4g dGhlIGVudHJ5Ci0gICAgICAgICBiYXNpYyBibG9jazsgaWYgaXQgc2hvdWxkIGJlIGFkZGVkIHRv IHRoZSBjdXJyZW50IGJhc2ljIGJsb2NrLCB0aGVuCi0gICAgICAgICB0aGUgYXRFbnRyeUJsb2Nr IHBhcmFtZXRlciBzaG91bGQgYmUgZmFsc2UuICovCi0tICAgIGxsdm06OlZhbHVlICpBbGxvY2FJ bnN0KGxsdm06OlR5cGUgKmxsdm1UeXBlLCBjb25zdCBjaGFyICpuYW1lID0gTlVMTCwgaW50IGFs aWduID0gMCwgYm9vbCBhdEVudHJ5QmxvY2sgPSB0cnVlKTsKLSsgICAgbGx2bTo6VmFsdWUgKkFs bG9jYUluc3QobGx2bTo6VHlwZSAqbGx2bVR5cGUsIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lID0g IiIsIGludCBhbGlnbiA9IDAsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgYXRF bnRyeUJsb2NrID0gdHJ1ZSk7Ci0gCi0gICAgIC8qKiBFbWl0cyBhbiBhbGxvY2EgaW5zdHJ1Y3Rp b24gdG8gYWxsb2NhdGUgc3RhY2sgc3RvcmFnZSBmb3IgdGhlIGdpdmVuCi0gICAgICAgICB0eXBl LiAgSWYgYSBub24temVybyBhbGlnbm1lbnQgaXMgc3BlY2lmaWVkLCB0aGUgb2JqZWN0IGlzIGFs c28KLUBAIC00NzQsNyArNDc1LDcgQEAgY2xhc3MgRnVuY3Rpb25FbWl0Q29udGV4dCB7Ci0gICAg ICAgICBUaGlzIGltcGxlbWVudGF0aW9uIGlzIHByZWZlcnJlZCB3aGVuIHBvc3NpYmxlLiBJdCBp cyBuZWVkZWQgd2hlbgotICAgICAgICAgc3RvcmFnZSB0eXBlIGlzIGRpZmZlcmVudCBmcm9tIElS IHR5cGUuIEZvciBleGFtcGxlLAotICAgICAgICAgJ3VuZm9ybSBib29sJyBpcyAnaTEnIGluIElS IGJ1dCBzdG9yZWQgYXMgJ2k4Jy4gKi8KLS0gICAgbGx2bTo6VmFsdWUgKkFsbG9jYUluc3QoY29u c3QgVHlwZSAqcHRyVHlwZSwgY29uc3QgY2hhciAqbmFtZSA9IE5VTEwsIGludCBhbGlnbiA9IDAs IGJvb2wgYXRFbnRyeUJsb2NrID0gdHJ1ZSk7Ci0rICAgIGxsdm06OlZhbHVlICpBbGxvY2FJbnN0 KGNvbnN0IFR5cGUgKnB0clR5cGUsIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lID0gIiIsIGludCBh bGlnbiA9IDAsIGJvb2wgYXRFbnRyeUJsb2NrID0gdHJ1ZSk7Ci0gCi0gICAgIC8qKiBTdGFuZGFy ZCBzdG9yZSBpbnN0cnVjdGlvbjsgZm9yIHRoaXMgdmFyaWFudCwgdGhlIGx2YWx1ZSBtdXN0IGJl IGEKLSAgICAgICAgIHNpbmdsZSBwb2ludGVyLCBub3QgYSB2YXJ5aW5nIGx2YWx1ZS4KLUBAIC01 MDIsMzkgKzUwMyw0MSBAQCBjbGFzcyBGdW5jdGlvbkVtaXRDb250ZXh0IHsKLSAgICAgLyoqIFRo aXMgY29udmVuaWVuY2UgbWV0aG9kIG1hcHMgdG8gYW4gbGx2bTo6RXh0cmFjdEVsZW1lbnRJbnN0 IGlmIHRoZQotICAgICAgICAgZ2l2ZW4gdmFsdWUgaXMgYSBsbHZtOjpWZWN0b3JUeXBlLCBhbmQg dG8gYW4gbGx2bTo6RXh0cmFjdFZhbHVlSW5zdAotICAgICAgICAgb3RoZXJ3aXNlLiAqLwotLSAg ICBsbHZtOjpWYWx1ZSAqRXh0cmFjdEluc3QobGx2bTo6VmFsdWUgKnYsIGludCBlbHQsIGNvbnN0 IGNoYXIgKm5hbWUgPSBOVUxMKTsKLSsgICAgbGx2bTo6VmFsdWUgKkV4dHJhY3RJbnN0KGxsdm06 OlZhbHVlICp2LCBpbnQgZWx0LCBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSA9ICIiKTsKLSAKLSAg ICAgLyoqIFRoaXMgY29udmVuaWVuY2UgbWV0aG9kIG1hcHMgdG8gYW4gbGx2bTo6SW5zZXJ0RWxl bWVudEluc3QgaWYgdGhlCi0gICAgICAgICBnaXZlbiB2YWx1ZSBpcyBhIGxsdm06OlZlY3RvclR5 cGUsIGFuZCB0byBhbiBsbHZtOjpJbnNlcnRWYWx1ZUluc3QKLSAgICAgICAgIG90aGVyd2lzZS4g Ki8KLS0gICAgbGx2bTo6VmFsdWUgKkluc2VydEluc3QobGx2bTo6VmFsdWUgKnYsIGxsdm06OlZh bHVlICplbHRWYWwsIGludCBlbHQsIGNvbnN0IGNoYXIgKm5hbWUgPSBOVUxMKTsKLSsgICAgbGx2 bTo6VmFsdWUgKkluc2VydEluc3QobGx2bTo6VmFsdWUgKnYsIGxsdm06OlZhbHVlICplbHRWYWws IGludCBlbHQsIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lID0gIiIpOwotIAotICAgICAvKiogVGhp cyBjb252ZW5pZW5jZSBtZXRob2QgbWFwcyB0byBhbiBsbHZtOjpTaHVmZmxlVmVjdG9ySW5zdC4g Ki8KLS0gICAgbGx2bTo6VmFsdWUgKlNodWZmbGVJbnN0KGxsdm06OlZhbHVlICp2MSwgbGx2bTo6 VmFsdWUgKnYyLCBsbHZtOjpWYWx1ZSAqbWFzaywgY29uc3QgY2hhciAqbmFtZSA9IE5VTEwpOwot KyAgICBsbHZtOjpWYWx1ZSAqU2h1ZmZsZUluc3QobGx2bTo6VmFsdWUgKnYxLCBsbHZtOjpWYWx1 ZSAqdjIsIGxsdm06OlZhbHVlICptYXNrLCBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSA9ICIiKTsK LSAKLSAgICAgLyoqIFRoaXMgY29udmVuaWVuY2UgbWV0aG9kIHRvIGdlbmVyYXRlIGJyb2FkY2Fz dCBwYXR0ZXJuLiBJdCB0YWtlcyBhIHZhbHVlCi0gICAgICAgICBhbmQgYSB2ZWN0b3IgdHlwZS4g VHlwZSBvZiB0aGUgdmFsdWUgbXVzdCBtYXRjaCBlbGVtZW50IHR5cGUgb2YgdGhlCi0gICAgICAg ICB2ZWN0b3IuICovCi0tICAgIGxsdm06OlZhbHVlICpCcm9hZGNhc3RWYWx1ZShsbHZtOjpWYWx1 ZSAqdiwgbGx2bTo6VHlwZSAqdmVjVHlwZSwgY29uc3QgY2hhciAqbmFtZSA9IE5VTEwpOwotKyAg ICBsbHZtOjpWYWx1ZSAqQnJvYWRjYXN0VmFsdWUobGx2bTo6VmFsdWUgKnYsIGxsdm06OlR5cGUg KnZlY1R5cGUsIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lID0gIiIpOwotIAotLSAgICBsbHZtOjpQ SElOb2RlICpQaGlOb2RlKGxsdm06OlR5cGUgKnR5cGUsIGludCBjb3VudCwgY29uc3QgY2hhciAq bmFtZSA9IE5VTEwpOwotLSAgICBsbHZtOjpJbnN0cnVjdGlvbiAqU2VsZWN0SW5zdChsbHZtOjpW YWx1ZSAqdGVzdCwgbGx2bTo6VmFsdWUgKnZhbDAsIGxsdm06OlZhbHVlICp2YWwxLCBjb25zdCBj aGFyICpuYW1lID0gTlVMTCk7Ci0rICAgIGxsdm06OlBISU5vZGUgKlBoaU5vZGUobGx2bTo6VHlw ZSAqdHlwZSwgaW50IGNvdW50LCBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSA9ICIiKTsKLSsgICAg bGx2bTo6SW5zdHJ1Y3Rpb24gKlNlbGVjdEluc3QobGx2bTo6VmFsdWUgKnRlc3QsIGxsdm06OlZh bHVlICp2YWwwLCBsbHZtOjpWYWx1ZSAqdmFsMSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUgPSAiIik7Ci0gCi0gICAgIC8qKiBFbWl0 cyBJUiB0byBkbyBhIGZ1bmN0aW9uIGNhbGwgd2l0aCB0aGUgZ2l2ZW4gYXJndW1lbnRzLiAgSWYg dGhlCi0gICAgICAgICBmdW5jdGlvbiB0eXBlIGlzIGEgdmFyeWluZyBmdW5jdGlvbiBwb2ludGVy IHR5cGUsIGl0cyBmdWxsIHR5cGUKLSAgICAgICAgIG11c3QgYmUgcHJvdmlkZWQgaW4gZnVuY1R5 cGUuICBmdW5jVHlwZSBjYW4gYmUgTlVMTCBpZiBmdW5jIGlzIGEKLSAgICAgICAgIHVuaWZvcm0g ZnVuY3Rpb24gcG9pbnRlci4gKi8KLSAgICAgbGx2bTo6VmFsdWUgKkNhbGxJbnN0KGxsdm06OlZh bHVlICpmdW5jLCBjb25zdCBGdW5jdGlvblR5cGUgKmZ1bmNUeXBlLCBjb25zdCBzdGQ6OnZlY3Rv cjxsbHZtOjpWYWx1ZSAqPiAmYXJncywKLS0gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0 IGNoYXIgKm5hbWUgPSBOVUxMKTsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGxs dm06OlR3aW5lICZuYW1lID0gIiIpOwotIAotICAgICAvKiogVGhpcyBpcyBhIGNvbnZlbmllbmNl IG1ldGhvZCB0aGF0IGlzc3VlcyBhIGNhbGwgaW5zdHJ1Y3Rpb24gdG8gYQotICAgICAgICAgZnVu Y3Rpb24gdGhhdCB0YWtlcyBqdXN0IGEgc2luZ2xlIGFyZ3VtZW50LiAqLwotLSAgICBsbHZtOjpW YWx1ZSAqQ2FsbEluc3QobGx2bTo6VmFsdWUgKmZ1bmMsIGNvbnN0IEZ1bmN0aW9uVHlwZSAqZnVu Y1R5cGUsIGxsdm06OlZhbHVlICphcmcsIGNvbnN0IGNoYXIgKm5hbWUgPSBOVUxMKTsKLSsgICAg bGx2bTo6VmFsdWUgKkNhbGxJbnN0KGxsdm06OlZhbHVlICpmdW5jLCBjb25zdCBGdW5jdGlvblR5 cGUgKmZ1bmNUeXBlLCBsbHZtOjpWYWx1ZSAqYXJnLAotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUgPSAiIik7Ci0gCi0gICAgIC8qKiBUaGlzIGlzIGEg Y29udmVuaWVuY2UgbWV0aG9kIHRoYXQgaXNzdWVzIGEgY2FsbCBpbnN0cnVjdGlvbiB0byBhCi0g ICAgICAgICBmdW5jdGlvbiB0aGF0IHRha2VzIHR3byBhcmd1bWVudHMuICovCi0gICAgIGxsdm06 OlZhbHVlICpDYWxsSW5zdChsbHZtOjpWYWx1ZSAqZnVuYywgY29uc3QgRnVuY3Rpb25UeXBlICpm dW5jVHlwZSwgbGx2bTo6VmFsdWUgKmFyZzAsIGxsdm06OlZhbHVlICphcmcxLAotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqbmFtZSA9IE5VTEwpOwotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUgPSAiIik7Ci0gCi0gICAgIC8q KiBMYXVuY2ggYW4gYXN5bmNocm9ub3VzIHRhc2sgdG8gcnVuIHRoZSBnaXZlbiBmdW5jdGlvbiwg cGFzc2luZyBpdAotICAgICAgICAgaGUgZ2l2ZW4gYXJndW1lbnQgdmFsdWVzLiAqLwotQEAgLTc1 Niw5ICs3NTksMTAgQEAgY2xhc3MgRnVuY3Rpb25FbWl0Q29udGV4dCB7Ci0gICAgIHZvaWQgbWFz a2VkU3RvcmUobGx2bTo6VmFsdWUgKnZhbHVlLCBsbHZtOjpWYWx1ZSAqcHRyLCBjb25zdCBUeXBl ICpwdHJUeXBlLCBsbHZtOjpWYWx1ZSAqbWFzayk7Ci0gICAgIHZvaWQgc3RvcmVVbmlmb3JtVG9T T0EobGx2bTo6VmFsdWUgKnZhbHVlLCBsbHZtOjpWYWx1ZSAqcHRyLCBsbHZtOjpWYWx1ZSAqbWFz aywgY29uc3QgVHlwZSAqdmFsdWVUeXBlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv bnN0IFBvaW50ZXJUeXBlICpwdHJUeXBlKTsKLS0gICAgbGx2bTo6VmFsdWUgKmxvYWRVbmlmb3Jt RnJvbVNPQShsbHZtOjpWYWx1ZSAqcHRyLCBsbHZtOjpWYWx1ZSAqbWFzaywgY29uc3QgUG9pbnRl clR5cGUgKnB0clR5cGUsIGNvbnN0IGNoYXIgKm5hbWUpOwotKyAgICBsbHZtOjpWYWx1ZSAqbG9h ZFVuaWZvcm1Gcm9tU09BKGxsdm06OlZhbHVlICpwdHIsIGxsdm06OlZhbHVlICptYXNrLCBjb25z dCBQb2ludGVyVHlwZSAqcHRyVHlwZSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSA9ICIiKTsKLSAKLS0gICAgbGx2bTo6VmFsdWUg KmdhdGhlcihsbHZtOjpWYWx1ZSAqcHRyLCBjb25zdCBQb2ludGVyVHlwZSAqcHRyVHlwZSwgbGx2 bTo6VmFsdWUgKm1hc2ssIGNvbnN0IGNoYXIgKm5hbWUpOwotKyAgICBsbHZtOjpWYWx1ZSAqZ2F0 aGVyKGxsdm06OlZhbHVlICpwdHIsIGNvbnN0IFBvaW50ZXJUeXBlICpwdHJUeXBlLCBsbHZtOjpW YWx1ZSAqbWFzaywgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUgPSAiIik7Ci0gCi0gICAgIGxsdm06 OlZhbHVlICphZGRWYXJ5aW5nT2Zmc2V0c0lmTmVlZGVkKGxsdm06OlZhbHVlICpwdHIsIGNvbnN0 IFR5cGUgKnB0clR5cGUpOwotIH07Ci1kaWZmIC0tZ2l0IGEvc3JjL2V4cHIuY3BwIGIvc3JjL2V4 cHIuY3BwCi1pbmRleCA4MGNjMzAyMGEuLjZkMzhkMTg4OSAxMDA2NDQKLS0tLSBhL3NyYy9leHBy LmNwcAotKysrIGIvc3JjL2V4cHIuY3BwCi1AQCAtMTAyMSwxMSArMTAyMSwxMSBAQCBzdGF0aWMg bGx2bTo6VmFsdWUgKmxFbWl0TmVnYXRlKEV4cHIgKmFyZywgU291cmNlUG9zIHBvcywgRnVuY3Rp b25FbWl0Q29udGV4dCAqYwotICAgICBjdHgtPlNldERlYnVnUG9zKHBvcyk7Ci0gICAgIGlmICh0 eXBlLT5Jc0Zsb2F0VHlwZSgpKSB7Ci0gICAgICAgICBsbHZtOjpWYWx1ZSAqemVybyA9IGxsdm06 OkNvbnN0YW50RlA6OmdldFplcm9WYWx1ZUZvck5lZ2F0aW9uKHR5cGUtPkxMVk1UeXBlKGctPmN0 eCkpOwotLSAgICAgICAgcmV0dXJuIGN0eC0+QmluYXJ5T3BlcmF0b3IobGx2bTo6SW5zdHJ1Y3Rp b246OkZTdWIsIHplcm8sIGFyZ1ZhbCwgTExWTUdldE5hbWUoYXJnVmFsLCAiX25lZ2F0ZSIpKTsK LSsgICAgICAgIHJldHVybiBjdHgtPkJpbmFyeU9wZXJhdG9yKGxsdm06Okluc3RydWN0aW9uOjpG U3ViLCB6ZXJvLCBhcmdWYWwsIGxsdm06OlR3aW5lKGFyZ1ZhbC0+Z2V0TmFtZSgpKSArICJfbmVn YXRlIik7Ci0gICAgIH0gZWxzZSB7Ci0gICAgICAgICBsbHZtOjpWYWx1ZSAqemVybyA9IGxMTFZN Q29uc3RhbnRWYWx1ZSh0eXBlLCBnLT5jdHgsIDAuKTsKLSAgICAgICAgIEFzc2VydFBvcyhwb3Ms IHR5cGUtPklzSW50VHlwZSgpKTsKLS0gICAgICAgIHJldHVybiBjdHgtPkJpbmFyeU9wZXJhdG9y KGxsdm06Okluc3RydWN0aW9uOjpTdWIsIHplcm8sIGFyZ1ZhbCwgTExWTUdldE5hbWUoYXJnVmFs LCAiX25lZ2F0ZSIpKTsKLSsgICAgICAgIHJldHVybiBjdHgtPkJpbmFyeU9wZXJhdG9yKGxsdm06 Okluc3RydWN0aW9uOjpTdWIsIHplcm8sIGFyZ1ZhbCwgbGx2bTo6VHdpbmUoYXJnVmFsLT5nZXRO YW1lKCkpICsgIl9uZWdhdGUiKTsKLSAgICAgfQotIH0KLSAKLUBAIC0xMDQ3LDExICsxMDQ3LDEx IEBAIGxsdm06OlZhbHVlICpVbmFyeUV4cHI6OkdldFZhbHVlKEZ1bmN0aW9uRW1pdENvbnRleHQg KmN0eCkgY29uc3QgewotICAgICAgICAgcmV0dXJuIGxFbWl0TmVnYXRlKGV4cHIsIHBvcywgY3R4 KTsKLSAgICAgY2FzZSBMb2dpY2FsTm90OiB7Ci0gICAgICAgICBsbHZtOjpWYWx1ZSAqYXJnVmFs ID0gZXhwci0+R2V0VmFsdWUoY3R4KTsKLS0gICAgICAgIHJldHVybiBjdHgtPk5vdE9wZXJhdG9y KGFyZ1ZhbCwgTExWTUdldE5hbWUoYXJnVmFsLCAiX2xvZ2ljYWxub3QiKSk7Ci0rICAgICAgICBy ZXR1cm4gY3R4LT5Ob3RPcGVyYXRvcihhcmdWYWwsIGxsdm06OlR3aW5lKGFyZ1ZhbC0+Z2V0TmFt ZSgpKSArICJfbG9naWNhbG5vdCIpOwotICAgICB9Ci0gICAgIGNhc2UgQml0Tm90OiB7Ci0gICAg ICAgICBsbHZtOjpWYWx1ZSAqYXJnVmFsID0gZXhwci0+R2V0VmFsdWUoY3R4KTsKLS0gICAgICAg IHJldHVybiBjdHgtPk5vdE9wZXJhdG9yKGFyZ1ZhbCwgTExWTUdldE5hbWUoYXJnVmFsLCAiX2Jp dG5vdCIpKTsKLSsgICAgICAgIHJldHVybiBjdHgtPk5vdE9wZXJhdG9yKGFyZ1ZhbCwgbGx2bTo6 VHdpbmUoYXJnVmFsLT5nZXROYW1lKCkpICsgIl9iaXRub3QiKTsKLSAgICAgfQotICAgICBkZWZh dWx0OgotICAgICAgICAgRkFUQUwoImxvZ2ljIGVycm9yIik7Ci1AQCAtMTUxOCw3ICsxNTE4LDgg QEAgc3RhdGljIGxsdm06OlZhbHVlICpsRW1pdEJpbmFyeUFyaXRoKEJpbmFyeUV4cHI6Ok9wIG9w LCBsbHZtOjpWYWx1ZSAqdmFsdWUwLCBsbHYKLSAgICAgICAgICAgICByZXR1cm4gTlVMTDsKLSAg ICAgICAgIH0KLSAKLS0gICAgICAgIHJldHVybiBjdHgtPkJpbmFyeU9wZXJhdG9yKGluc3QsIHZh bHVlMCwgdmFsdWUxLCBMTFZNR2V0TmFtZShvcE5hbWUsIHZhbHVlMCwgdmFsdWUxKSk7Ci0rICAg ICAgICByZXR1cm4gY3R4LT5CaW5hcnlPcGVyYXRvcihpbnN0LCB2YWx1ZTAsIHZhbHVlMSwKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoKGxsdm06OlR3aW5lKG9wTmFtZSkg KyAiXyIpICsgdmFsdWUwLT5nZXROYW1lKCkpICsgIl8iKSArIHZhbHVlMS0+Z2V0TmFtZSgpKTsK LSAgICAgfQotIH0KLSAKLUBAIC0xNTYzLDcgKzE1NjQsNyBAQCBzdGF0aWMgbGx2bTo6VmFsdWUg KmxFbWl0QmluYXJ5Q21wKEJpbmFyeUV4cHI6Ok9wIG9wLCBsbHZtOjpWYWx1ZSAqZTBWYWwsIGxs dm06OgotICAgICB9Ci0gCi0gICAgIGxsdm06OlZhbHVlICpjbXAgPSBjdHgtPkNtcEluc3QoaXNG bG9hdE9wID8gbGx2bTo6SW5zdHJ1Y3Rpb246OkZDbXAgOiBsbHZtOjpJbnN0cnVjdGlvbjo6SUNt cCwgcHJlZCwgZTBWYWwsIGUxVmFsLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIExMVk1HZXROYW1lKG9wTmFtZSwgZTBWYWwsIGUxVmFsKSk7Ci0rICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKCgobGx2bTo6VHdpbmUob3BOYW1lKSArICJfIikgKyBlMFZh bC0+Z2V0TmFtZSgpKSArICJfIikgKyBlMVZhbC0+Z2V0TmFtZSgpKTsKLSAgICAgLy8gVGhpcyBp cyBhIGxpdHRsZSB1Z2x5OiBDbXBJbnN0IHJldHVybnMgaTEgdmFsdWVzLCBidXQgd2UgdXNlIHZl Y3RvcnMKLSAgICAgLy8gb2YgaTMycyBmb3IgdmFyeWluZyBib29sIHZhbHVlczsgdHlwZSBjb252 ZXJ0IHRoZSByZXN1bHQgaGVyZSBpZgotICAgICAvLyBuZWVkZWQuCi1AQCAtNDE3Nyw3ICs0MTc4 LDcgQEAgc3RhdGljIGxsdm06OlZhbHVlICpsQ29udmVydFRvU2xpY2VQb2ludGVyKEZ1bmN0aW9u RW1pdENvbnRleHQgKmN0eCwgbGx2bTo6VmFsdWUKLSAgICAgLy8gb2Zmc2V0cwotICAgICBsbHZt OjpWYWx1ZSAqcmVzdWx0ID0gbGx2bTo6Q29uc3RhbnQ6OmdldE51bGxWYWx1ZShzbGljZVN0cnVj dFR5cGUpOwotICAgICAvLyBBbmQgcmVwbGFjZSB0aGUgcG9pbnRlciBpbiB0aGUgc3RydWN0IHdp dGggdGhlIGdpdmVuIHBvaW50ZXIKLS0gICAgcmV0dXJuIGN0eC0+SW5zZXJ0SW5zdChyZXN1bHQs IHB0ciwgMCwgTExWTUdldE5hbWUocHRyLCAiX3NsaWNlIikpOwotKyAgICByZXR1cm4gY3R4LT5J bnNlcnRJbnN0KHJlc3VsdCwgcHRyLCAwLCBsbHZtOjpUd2luZShwdHItPmdldE5hbWUoKSkgKyAi X3NsaWNlIik7Ci0gfQotIAotIC8qKiBJZiB0aGUgZ2l2ZW4gYXJyYXkgaW5kZXggaXMgYSBjb21w aWxlIHRpbWUgY29uc3RhbnQsIGNoZWNrIHRvIHNlZSBpZiBpdAotQEAgLTQyNTgsOCArNDI1OSw4 IEBAIGxsdm06OlZhbHVlICpJbmRleEV4cHI6OkdldExWYWx1ZShGdW5jdGlvbkVtaXRDb250ZXh0 ICpjdHgpIGNvbnN0IHsKLSAgICAgICAgIC8vIENvbnZlcnQgdG8gYSBzbGljZSBwb2ludGVyIGlm IHdlJ3JlIGluZGV4aW5nIGludG8gU09BIGRhdGEKLSAgICAgICAgIGJhc2VQdHJWYWx1ZSA9IGxD b252ZXJ0UHRyVG9TbGljZUlmTmVlZGVkKGN0eCwgYmFzZVB0clZhbHVlLCAmYmFzZUV4cHJUeXBl KTsKLSAKLS0gICAgICAgIGxsdm06OlZhbHVlICpwdHIgPQotLSAgICAgICAgICAgIGN0eC0+R2V0 RWxlbWVudFB0ckluc3QoYmFzZVB0clZhbHVlLCBpbmRleFZhbHVlLCBiYXNlRXhwclR5cGUsIExM Vk1HZXROYW1lKGJhc2VQdHJWYWx1ZSwgIl9vZmZzZXQiKSk7Ci0rICAgICAgICBsbHZtOjpWYWx1 ZSAqcHRyID0gY3R4LT5HZXRFbGVtZW50UHRySW5zdChiYXNlUHRyVmFsdWUsIGluZGV4VmFsdWUs IGJhc2VFeHByVHlwZSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGxsdm06OlR3aW5lKGJhc2VQdHJWYWx1ZS0+Z2V0TmFtZSgpKSArICJfb2Zmc2V0 Iik7Ci0gICAgICAgICByZXR1cm4gbEFkZFZhcnlpbmdPZmZzZXRzSWZOZWVkZWQoY3R4LCBwdHIs IEdldExWYWx1ZVR5cGUoKSk7Ci0gICAgIH0KLSAKLUBAIC00MjkwLDggKzQyOTEsOCBAQCBsbHZt OjpWYWx1ZSAqSW5kZXhFeHByOjpHZXRMVmFsdWUoRnVuY3Rpb25FbWl0Q29udGV4dCAqY3R4KSBj b25zdCB7Ci0gICAgIGN0eC0+U2V0RGVidWdQb3MocG9zKTsKLSAKLSAgICAgLy8gQW5kIGRvIHRo ZSBhY3R1YWwgaW5kZXhpbmcgY2FsY3VsYXRpb24uLgotLSAgICBsbHZtOjpWYWx1ZSAqcHRyID0K LS0gICAgICAgIGN0eC0+R2V0RWxlbWVudFB0ckluc3QoYmFzZVB0ciwgTExWTUludDMyKDApLCBp bmRleFZhbHVlLCBiYXNlUHRyVHlwZSwgTExWTUdldE5hbWUoYmFzZVB0ciwgIl9vZmZzZXQiKSk7 Ci0rICAgIGxsdm06OlZhbHVlICpwdHIgPSBjdHgtPkdldEVsZW1lbnRQdHJJbnN0KGJhc2VQdHIs IExMVk1JbnQzMigwKSwgaW5kZXhWYWx1ZSwgYmFzZVB0clR5cGUsCi0rICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06OlR3aW5lKGJhc2VQdHItPmdldE5h bWUoKSkgKyAiX29mZnNldCIpOwotICAgICByZXR1cm4gbEFkZFZhcnlpbmdPZmZzZXRzSWZOZWVk ZWQoY3R4LCBwdHIsIEdldExWYWx1ZVR5cGUoKSk7Ci0gfQotIAotQEAgLTQ3ODgsMTUgKzQ3ODks MTQgQEAgbGx2bTo6VmFsdWUgKlZlY3Rvck1lbWJlckV4cHI6OkdldFZhbHVlKEZ1bmN0aW9uRW1p dENvbnRleHQgKmN0eCkgY29uc3QgewotICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBp ZGVudGlmaWVyLnNpemUoKTsgKytpKSB7Ci0gICAgICAgICAgICAgY2hhciBpZFN0clsyXSA9IHtp ZGVudGlmaWVyW2ldLCAnXDAnfTsKLSAgICAgICAgICAgICBsbHZtOjpWYWx1ZSAqZWxlbWVudFB0 ciA9Ci0tICAgICAgICAgICAgICAgIGN0eC0+QWRkRWxlbWVudE9mZnNldChiYXNlUHRyLCBpbmRp Y2VzW2ldLCBiYXNlUHRyVHlwZSwgTExWTUdldE5hbWUoYmFzZVB0ciwgaWRTdHIpKTsKLSsgICAg ICAgICAgICAgICAgY3R4LT5BZGRFbGVtZW50T2Zmc2V0KGJhc2VQdHIsIGluZGljZXNbaV0sIGJh c2VQdHJUeXBlLCBsbHZtOjpUd2luZShiYXNlUHRyLT5nZXROYW1lKCkpICsgaWRTdHIpOwotICAg ICAgICAgICAgIGxsdm06OlZhbHVlICplbGVtZW50VmFsdWUgPSBjdHgtPkxvYWRJbnN0KGVsZW1l bnRQdHIsIGVsZW1lbnRNYXNrLCBlbGVtZW50UHRyVHlwZSk7Ci0gCi0tICAgICAgICAgICAgY29u c3QgY2hhciAqcmVzdWx0TmFtZSA9IExMVk1HZXROYW1lKHJlc3VsdFB0ciwgaWRTdHIpOwotLSAg ICAgICAgICAgIGxsdm06OlZhbHVlICpwdG1wID0gY3R4LT5BZGRFbGVtZW50T2Zmc2V0KHJlc3Vs dFB0ciwgaSwgTlVMTCwgcmVzdWx0TmFtZSk7Ci0rICAgICAgICAgICAgbGx2bTo6VmFsdWUgKnB0 bXAgPSBjdHgtPkFkZEVsZW1lbnRPZmZzZXQocmVzdWx0UHRyLCBpLCBOVUxMLCBsbHZtOjpUd2lu ZShyZXN1bHRQdHItPmdldE5hbWUoKSkgKyBpZFN0cik7Ci0gICAgICAgICAgICAgY3R4LT5TdG9y ZUluc3QoZWxlbWVudFZhbHVlLCBwdG1wLCBlbGVtZW50UHRyVHlwZSwgZXhwci0+R2V0VHlwZSgp LT5Jc1VuaWZvcm1UeXBlKCkpOwotICAgICAgICAgfQotIAotLSAgICAgICAgcmV0dXJuIGN0eC0+ TG9hZEluc3QocmVzdWx0UHRyLCBtZW1iZXJUeXBlLCBMTFZNR2V0TmFtZShiYXNlUHRyLCAiX3N3 aXp6bGUiKSk7Ci0rICAgICAgICByZXR1cm4gY3R4LT5Mb2FkSW5zdChyZXN1bHRQdHIsIG1lbWJl clR5cGUsIGxsdm06OlR3aW5lKGJhc2VQdHItPmdldE5hbWUoKSkgKyAiX3N3aXp6bGUiKTsKLSAg ICAgfQotIH0KLSAKLUBAIC00OTMyLDcgKzQ5MzIsNyBAQCBsbHZtOjpWYWx1ZSAqTWVtYmVyRXhw cjo6R2V0VmFsdWUoRnVuY3Rpb25FbWl0Q29udGV4dCAqY3R4KSBjb25zdCB7Ci0gCi0gICAgIGN0 eC0+U2V0RGVidWdQb3MocG9zKTsKLSAgICAgc3RkOjpzdHJpbmcgc3VmZml4ID0gc3RkOjpzdHJp bmcoIl8iKSArIGlkZW50aWZpZXI7Ci0tICAgIHJldHVybiBjdHgtPkxvYWRJbnN0KGx2YWx1ZSwg bWFzaywgbHZhbHVlVHlwZSwgTExWTUdldE5hbWUobHZhbHVlLCBzdWZmaXguY19zdHIoKSkpOwot KyAgICByZXR1cm4gY3R4LT5Mb2FkSW5zdChsdmFsdWUsIG1hc2ssIGx2YWx1ZVR5cGUsIGxsdm06 OlR3aW5lKGx2YWx1ZS0+Z2V0TmFtZSgpKSArIHN1ZmZpeCk7Ci0gfQotIAotIGNvbnN0IFR5cGUg Kk1lbWJlckV4cHI6OkdldFR5cGUoKSBjb25zdCB7IHJldHVybiBOVUxMOyB9Ci1AQCAtNjUwMiw3 ICs2NTAyLDcgQEAgc3RhdGljIGxsdm06OlZhbHVlICpsVHlwZUNvbnZBdG9taWMoRnVuY3Rpb25F bWl0Q29udGV4dCAqY3R4LCBsbHZtOjpWYWx1ZSAqZXhwclYKLSAgICAgICAgICAgICAgICAgLy8g ZG9lcyBmb3IgZXZlcnlvbmUgZWxzZS4uLgotICAgICAgICAgICAgICAgICBBc3NlcnQoY2FzdCk7 Ci0gICAgICAgICAgICAgICAgIGNhc3QgPSBjdHgtPlN3aXRjaEJvb2xTaXplKGNhc3QsIExMVk1U eXBlczo6Qm9vbFZlY3RvclR5cGUtPmdldEVsZW1lbnRUeXBlKCksCi0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIExMVk1HZXROYW1lKGNhc3QsICJ0b19pX2Jvb2wi KSk7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06OlR3 aW5lKGNhc3QtPmdldE5hbWUoKSkgKyAidG9faV9ib29sIik7Ci0gICAgICAgICAgICAgfQotICAg ICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAvLyBmcm9tVHlwZS0+SXNWYXJ5aW5nVHlwZSgp KQotQEAgLTgyNDYsNyArODI0Niw3IEBAIGxsdm06OlZhbHVlICpOZXdFeHByOjpHZXRWYWx1ZShG dW5jdGlvbkVtaXRDb250ZXh0ICpjdHgpIGNvbnN0IHsKLSAgICAgICAgIC8vIHBvaW50ZXIgb2Yg dGhlIHJldHVybiB0eXBlIGFuZCB0byBydW4gdGhlIGNvZGUgZm9yIGluaXRpYWxpemVycywKLSAg ICAgICAgIC8vIGlmIHByZXNlbnQuCi0gICAgICAgICBsbHZtOjpUeXBlICpwdHJUeXBlID0gcmV0 VHlwZS0+TExWTVR5cGUoZy0+Y3R4KTsKLS0gICAgICAgIHB0clZhbHVlID0gY3R4LT5CaXRDYXN0 SW5zdChwdHJWYWx1ZSwgcHRyVHlwZSwgTExWTUdldE5hbWUocHRyVmFsdWUsICJfY2FzdF9wdHIi KSk7Ci0rICAgICAgICBwdHJWYWx1ZSA9IGN0eC0+Qml0Q2FzdEluc3QocHRyVmFsdWUsIHB0clR5 cGUsIGxsdm06OlR3aW5lKHB0clZhbHVlLT5nZXROYW1lKCkpICsgIl9jYXN0X3B0ciIpOwotIAot ICAgICAgICAgaWYgKGluaXRFeHByICE9IE5VTEwpCi0gICAgICAgICAgICAgSW5pdFN5bWJvbChw dHJWYWx1ZSwgYWxsb2NUeXBlLCBpbml0RXhwciwgY3R4LCBwb3MpOwotZGlmZiAtLWdpdCBhL3Ny Yy9sbHZtdXRpbC5jcHAgYi9zcmMvbGx2bXV0aWwuY3BwCi1pbmRleCA5NzAxNzVkYmYuLmQwYmVj YjlmNSAxMDA2NDQKLS0tLSBhL3NyYy9sbHZtdXRpbC5jcHAKLSsrKyBiL3NyYy9sbHZtdXRpbC5j cHAKLUBAIC0xNjA1LDIzICsxNjA1LDYgQEAgbGx2bTo6VmFsdWUgKkxMVk1TaHVmZmxlVmVjdG9y cyhsbHZtOjpWYWx1ZSAqdjEsIGxsdm06OlZhbHVlICp2MiwgaW50MzJfdCBzaHVmW10KLSAgICAg cmV0dXJuIG5ldyBsbHZtOjpTaHVmZmxlVmVjdG9ySW5zdCh2MSwgdjIsIHZlYywgInNodWZmbGUi LCBpbnNlcnRCZWZvcmUpOwotIH0KLSAKLS1jb25zdCBjaGFyICpMTFZNR2V0TmFtZShsbHZtOjpW YWx1ZSAqdiwgY29uc3QgY2hhciAqcykgewotLSAgICBpZiAodiA9PSBOVUxMKQotLSAgICAgICAg cmV0dXJuIHM7Ci0tICAgIHN0ZDo6c3RyaW5nIHJldCA9IHN0ZDo6c3RyaW5nKHYtPmdldE5hbWUo KSk7Ci0tICAgIHJldCArPSBzOwotLSAgICByZXR1cm4gc3RyZHVwKHJldC5jX3N0cigpKTsKLS19 Ci0tCi0tY29uc3QgY2hhciAqTExWTUdldE5hbWUoY29uc3QgY2hhciAqb3AsIGxsdm06OlZhbHVl ICp2MSwgbGx2bTo6VmFsdWUgKnYyKSB7Ci0tICAgIHN0ZDo6c3RyaW5nIHIgPSBvcDsKLS0gICAg ciArPSAiXyI7Ci0tICAgIHIgKz0gdjEtPmdldE5hbWUoKS5zdHIoKTsKLS0gICAgciArPSAiXyI7 Ci0tICAgIHIgKz0gdjItPmdldE5hbWUoKS5zdHIoKTsKLS0gICAgcmV0dXJuIHN0cmR1cChyLmNf c3RyKCkpOwotLX0KLS0KLSAjaWZkZWYgSVNQQ19HRU5YX0VOQUJMRUQKLSBib29sIGxJc1NWTUxv YWQobGx2bTo6SW5zdHJ1Y3Rpb24gKmluc3QpIHsKLSAgICAgQXNzZXJ0KGluc3QpOwotZGlmZiAt LWdpdCBhL3NyYy9sbHZtdXRpbC5oIGIvc3JjL2xsdm11dGlsLmgKLWluZGV4IDQyY2NlNGQ4My4u MDdkMDg5YmI0IDEwMDY0NAotLS0tIGEvc3JjL2xsdm11dGlsLmgKLSsrKyBiL3NyYy9sbHZtdXRp bC5oCi1AQCAtMzI4LDExICszMjgsNiBAQCBleHRlcm4gbGx2bTo6VmFsdWUgKkxMVk1Db25jYXRW ZWN0b3JzKGxsdm06OlZhbHVlICp2MSwgbGx2bTo6VmFsdWUgKnYyLCBsbHZtOjpJbgotIGV4dGVy biBsbHZtOjpWYWx1ZSAqTExWTVNodWZmbGVWZWN0b3JzKGxsdm06OlZhbHVlICp2MSwgbGx2bTo6 VmFsdWUgKnYyLCBpbnQzMl90IHNodWZbXSwgaW50IHNodWZTaXplLAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06Okluc3RydWN0aW9uICppbnNlcnRCZWZvcmUp OwotIAotLS8qKiBVdGlsaXR5IHJvdXRpbmVzIHRvIGNvbmNhdCBzdHJpbmdzIHdpdGggdGhlIG5h bWVzIG9mIGV4aXN0aW5nIHZhbHVlcyB0bwotLSAgICBjcmVhdGUgbWVhbmluZ2Z1bCBuZXcgbmFt ZXMgZm9yIGluc3RydWN0aW9uIHZhbHVlcy4KLS0qLwotLWV4dGVybiBjb25zdCBjaGFyICpMTFZN R2V0TmFtZShsbHZtOjpWYWx1ZSAqdiwgY29uc3QgY2hhciAqKTsKLS1leHRlcm4gY29uc3QgY2hh ciAqTExWTUdldE5hbWUoY29uc3QgY2hhciAqb3AsIGxsdm06OlZhbHVlICp2MSwgbGx2bTo6VmFs dWUgKnYyKTsKLSAjaWZkZWYgSVNQQ19HRU5YX0VOQUJMRUQKLSBlbnVtIEFkZHJlc3NTcGFjZSB7 IExvY2FsLCBHbG9iYWwsIEV4dGVybmFsIH07Ci0gCi1kaWZmIC0tZ2l0IGEvc3JjL29wdC5jcHAg Yi9zcmMvb3B0LmNwcAotaW5kZXggNWIxYWM3YjYzLi45ZDZjYWUwNTggMTAwNjQ0Ci0tLS0gYS9z cmMvb3B0LmNwcAotKysrIGIvc3JjL29wdC5jcHAKLUBAIC0yNTcsNyArMjU3LDcgQEAgc3RhdGlj IGJvb2wgbEdldFNvdXJjZVBvc0Zyb21NZXRhZGF0YShjb25zdCBsbHZtOjpJbnN0cnVjdGlvbiAq aW5zdCwgU291cmNlUG9zICoKLSAgICAgcmV0dXJuIHRydWU7Ci0gfQotIAotLXN0YXRpYyBsbHZt OjpJbnN0cnVjdGlvbiAqbENhbGxJbnN0KGxsdm06OkZ1bmN0aW9uICpmdW5jLCBsbHZtOjpWYWx1 ZSAqYXJnMCwgbGx2bTo6VmFsdWUgKmFyZzEsIGNvbnN0IGNoYXIgKm5hbWUsCi0rc3RhdGljIGxs dm06Okluc3RydWN0aW9uICpsQ2FsbEluc3QobGx2bTo6RnVuY3Rpb24gKmZ1bmMsIGxsdm06OlZh bHVlICphcmcwLCBsbHZtOjpWYWx1ZSAqYXJnMSwgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUsCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmlu c2VydEJlZm9yZSA9IE5VTEwpIHsKLSAgICAgbGx2bTo6VmFsdWUgKmFyZ3NbMl0gPSB7YXJnMCwg YXJnMX07Ci0gICAgIGxsdm06OkFycmF5UmVmPGxsdm06OlZhbHVlICo+IG5ld0FyZ0FycmF5KCZh cmdzWzBdLCAmYXJnc1syXSk7Ci1AQCAtMjY1LDIxICsyNjUsMjIgQEAgc3RhdGljIGxsdm06Oklu c3RydWN0aW9uICpsQ2FsbEluc3QobGx2bTo6RnVuY3Rpb24gKmZ1bmMsIGxsdm06OlZhbHVlICph cmcwLCBsbHYKLSB9Ci0gCi0gc3RhdGljIGxsdm06Okluc3RydWN0aW9uICpsQ2FsbEluc3QobGx2 bTo6RnVuY3Rpb24gKmZ1bmMsIGxsdm06OlZhbHVlICphcmcwLCBsbHZtOjpWYWx1ZSAqYXJnMSwg bGx2bTo6VmFsdWUgKmFyZzIsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y29uc3QgY2hhciAqbmFtZSwgbGx2bTo6SW5zdHJ1Y3Rpb24gKmluc2VydEJlZm9yZSA9IE5VTEwp IHsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBsbHZtOjpUd2lu ZSAmbmFtZSwgbGx2bTo6SW5zdHJ1Y3Rpb24gKmluc2VydEJlZm9yZSA9IE5VTEwpIHsKLSAgICAg bGx2bTo6VmFsdWUgKmFyZ3NbM10gPSB7YXJnMCwgYXJnMSwgYXJnMn07Ci0gICAgIGxsdm06OkFy cmF5UmVmPGxsdm06OlZhbHVlICo+IG5ld0FyZ0FycmF5KCZhcmdzWzBdLCAmYXJnc1szXSk7Ci0g ICAgIHJldHVybiBsbHZtOjpDYWxsSW5zdDo6Q3JlYXRlKGZ1bmMsIG5ld0FyZ0FycmF5LCBuYW1l LCBpbnNlcnRCZWZvcmUpOwotIH0KLSAKLSBzdGF0aWMgbGx2bTo6SW5zdHJ1Y3Rpb24gKmxDYWxs SW5zdChsbHZtOjpGdW5jdGlvbiAqZnVuYywgbGx2bTo6VmFsdWUgKmFyZzAsIGxsdm06OlZhbHVl ICphcmcxLCBsbHZtOjpWYWx1ZSAqYXJnMiwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBsbHZtOjpWYWx1ZSAqYXJnMywgY29uc3QgY2hhciAqbmFtZSwgbGx2bTo6SW5zdHJ1 Y3Rpb24gKmluc2VydEJlZm9yZSA9IE5VTEwpIHsKLSsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBsbHZtOjpWYWx1ZSAqYXJnMywgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUsCi0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmlu c2VydEJlZm9yZSA9IE5VTEwpIHsKLSAgICAgbGx2bTo6VmFsdWUgKmFyZ3NbNF0gPSB7YXJnMCwg YXJnMSwgYXJnMiwgYXJnM307Ci0gICAgIGxsdm06OkFycmF5UmVmPGxsdm06OlZhbHVlICo+IG5l d0FyZ0FycmF5KCZhcmdzWzBdLCAmYXJnc1s0XSk7Ci0gICAgIHJldHVybiBsbHZtOjpDYWxsSW5z dDo6Q3JlYXRlKGZ1bmMsIG5ld0FyZ0FycmF5LCBuYW1lLCBpbnNlcnRCZWZvcmUpOwotIH0KLSAK LSBzdGF0aWMgbGx2bTo6SW5zdHJ1Y3Rpb24gKmxDYWxsSW5zdChsbHZtOjpGdW5jdGlvbiAqZnVu YywgbGx2bTo6VmFsdWUgKmFyZzAsIGxsdm06OlZhbHVlICphcmcxLCBsbHZtOjpWYWx1ZSAqYXJn MiwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpWYWx1ZSAqYXJn MywgbGx2bTo6VmFsdWUgKmFyZzQsIGNvbnN0IGNoYXIgKm5hbWUsCi0rICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgbGx2bTo6VmFsdWUgKmFyZzMsIGxsdm06OlZhbHVlICphcmc0 LCBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBsbHZtOjpJbnN0cnVjdGlvbiAqaW5zZXJ0QmVmb3JlID0gTlVMTCkgewotICAgICBs bHZtOjpWYWx1ZSAqYXJnc1s1XSA9IHthcmcwLCBhcmcxLCBhcmcyLCBhcmczLCBhcmc0fTsKLSAg ICAgbGx2bTo6QXJyYXlSZWY8bGx2bTo6VmFsdWUgKj4gbmV3QXJnQXJyYXkoJmFyZ3NbMF0sICZh cmdzWzVdKTsKLUBAIC0yODcsNyArMjg4LDcgQEAgc3RhdGljIGxsdm06Okluc3RydWN0aW9uICps Q2FsbEluc3QobGx2bTo6RnVuY3Rpb24gKmZ1bmMsIGxsdm06OlZhbHVlICphcmcwLCBsbHYKLSB9 Ci0gCi0gc3RhdGljIGxsdm06Okluc3RydWN0aW9uICpsQ2FsbEluc3QobGx2bTo6RnVuY3Rpb24g KmZ1bmMsIGxsdm06OlZhbHVlICphcmcwLCBsbHZtOjpWYWx1ZSAqYXJnMSwgbGx2bTo6VmFsdWUg KmFyZzIsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6VmFsdWUg KmFyZzMsIGxsdm06OlZhbHVlICphcmc0LCBsbHZtOjpWYWx1ZSAqYXJnNSwgY29uc3QgY2hhciAq bmFtZSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpWYWx1ZSAq YXJnMywgbGx2bTo6VmFsdWUgKmFyZzQsIGxsdm06OlZhbHVlICphcmc1LCBjb25zdCBsbHZtOjpU d2luZSAmbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpJ bnN0cnVjdGlvbiAqaW5zZXJ0QmVmb3JlID0gTlVMTCkgewotICAgICBsbHZtOjpWYWx1ZSAqYXJn c1s2XSA9IHthcmcwLCBhcmcxLCBhcmcyLCBhcmczLCBhcmc0LCBhcmc1fTsKLSAgICAgbGx2bTo6 QXJyYXlSZWY8bGx2bTo6VmFsdWUgKj4gbmV3QXJnQXJyYXkoJmFyZ3NbMF0sICZhcmdzWzZdKTsK LUBAIC05OTEsMjMgKzk5MiwyNCBAQCBib29sIEludHJpbnNpY3NPcHQ6OnJ1bk9uQmFzaWNCbG9j ayhsbHZtOjpCYXNpY0Jsb2NrICZiYikgewotICAgICAgICAgICAgICAgICBsbHZtOjpUeXBlICpy ZXR1cm5UeXBlID0gY2FsbEluc3QtPmdldFR5cGUoKTsKLSAgICAgICAgICAgICAgICAgQXNzZXJ0 KGxsdm06OmlzYTxsbHZtOjpWZWN0b3JUeXBlPihyZXR1cm5UeXBlKSk7Ci0gICAgICAgICAgICAg ICAgIC8vIGNhc3QgdGhlIGk4ICogdG8gdGhlIGFwcHJvcHJpYXRlIHR5cGUKLS0gICAgICAgICAg ICAgICAgY29uc3QgY2hhciAqbmFtZSA9IExMVk1HZXROYW1lKGNhbGxJbnN0LT5nZXRBcmdPcGVy YW5kKDApLCAiX2Nhc3QiKTsKLS0gICAgICAgICAgICAgICAgbGx2bTo6VmFsdWUgKmNhc3RQdHIg PSBuZXcgbGx2bTo6Qml0Q2FzdEluc3QoY2FsbEluc3QtPmdldEFyZ09wZXJhbmQoMCksCi0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGxsdm06OlBvaW50ZXJUeXBlOjpnZXQocmV0dXJuVHlwZSwgMCksIG5hbWUsIGNhbGxJbnN0KTsK LSsgICAgICAgICAgICAgICAgbGx2bTo6VmFsdWUgKmNhc3RQdHIgPQotKyAgICAgICAgICAgICAg ICAgICAgbmV3IGxsdm06OkJpdENhc3RJbnN0KGNhbGxJbnN0LT5nZXRBcmdPcGVyYW5kKDApLCBs bHZtOjpQb2ludGVyVHlwZTo6Z2V0KHJldHVyblR5cGUsIDApLAotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06OlR3aW5lKGNhbGxJbnN0LT5nZXRBcmdPcGVy YW5kKDApLT5nZXROYW1lKCkpICsgIl9jYXN0IiwgY2FsbEluc3QpOwotICAgICAgICAgICAgICAg ICBsQ29weU1ldGFkYXRhKGNhc3RQdHIsIGNhbGxJbnN0KTsKLSAgICAgICAgICAgICAgICAgaW50 IGFsaWduOwotICAgICAgICAgICAgICAgICBpZiAoZy0+b3B0LmZvcmNlQWxpZ25lZE1lbW9yeSkK LSAgICAgICAgICAgICAgICAgICAgIGFsaWduID0gZy0+dGFyZ2V0LT5nZXROYXRpdmVWZWN0b3JB bGlnbm1lbnQoKTsKLSAgICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICAg YWxpZ24gPSBjYWxsSW5zdC0+Z2V0Q2FsbGVkRnVuY3Rpb24oKSA9PSBhdnhNYXNrZWRMb2FkMzIg PyA0IDogODsKLS0gICAgICAgICAgICAgICAgbmFtZSA9IExMVk1HZXROYW1lKGNhbGxJbnN0LT5n ZXRBcmdPcGVyYW5kKDApLCAiX2xvYWQiKTsKLSAjaWYgSVNQQ19MTFZNX1ZFUlNJT04gPT0gSVNQ Q19MTFZNXzEwXzAKLS0gICAgICAgICAgICAgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmxvYWRJbnN0 ID0gbmV3IGxsdm06OkxvYWRJbnN0KGNhc3RQdHIsIG5hbWUsIGZhbHNlIC8qIG5vdCB2b2xhdGls ZSAqLywKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGxsdm06Ok1heWJlQWxpZ24oYWxpZ24pLCAobGx2bTo6SW5zdHJ1Y3Rp b24gKilOVUxMKTsKLSsgICAgICAgICAgICAgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmxvYWRJbnN0 ID0KLSsgICAgICAgICAgICAgICAgICAgIG5ldyBsbHZtOjpMb2FkSW5zdChjYXN0UHRyLCBsbHZt OjpUd2luZShjYWxsSW5zdC0+Z2V0QXJnT3BlcmFuZCgwKS0+Z2V0TmFtZSgpKSArICJfbG9hZCIs Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UgLyogbm90IHZv bGF0aWxlICovLCBsbHZtOjpNYXliZUFsaWduKGFsaWduKSwgKGxsdm06Okluc3RydWN0aW9uICop TlVMTCk7Ci0gI2Vsc2UKLSAgICAgICAgICAgICAgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmxvYWRJ bnN0ID0gbmV3IGxsdm06OkxvYWRJbnN0KAotLSAgICAgICAgICAgICAgICAgICAgbGx2bTo6ZHlu X2Nhc3Q8bGx2bTo6UG9pbnRlclR5cGU+KGNhc3RQdHItPmdldFR5cGUoKSktPmdldFBvaW50ZXJF bGVtZW50VHlwZSgpLCBjYXN0UHRyLCBuYW1lLAotLSAgICAgICAgICAgICAgICAgICAgZmFsc2Ug Lyogbm90IHZvbGF0aWxlICovLCBsbHZtOjpNYXliZUFsaWduKGFsaWduKS52YWx1ZU9yT25lKCks IChsbHZtOjpJbnN0cnVjdGlvbiAqKU5VTEwpOwotKyAgICAgICAgICAgICAgICAgICAgbGx2bTo6 ZHluX2Nhc3Q8bGx2bTo6UG9pbnRlclR5cGU+KGNhc3RQdHItPmdldFR5cGUoKSktPmdldFBvaW50 ZXJFbGVtZW50VHlwZSgpLCBjYXN0UHRyLAotKyAgICAgICAgICAgICAgICAgICAgbGx2bTo6VHdp bmUoY2FsbEluc3QtPmdldEFyZ09wZXJhbmQoMCktPmdldE5hbWUoKSkgKyAiX2xvYWQiLCBmYWxz ZSAvKiBub3Qgdm9sYXRpbGUgKi8sCi0rICAgICAgICAgICAgICAgICAgICBsbHZtOjpNYXliZUFs aWduKGFsaWduKS52YWx1ZU9yT25lKCksIChsbHZtOjpJbnN0cnVjdGlvbiAqKU5VTEwpOwotICNl bmRpZgotICAgICAgICAgICAgICAgICBsQ29weU1ldGFkYXRhKGxvYWRJbnN0LCBjYWxsSW5zdCk7 Ci0gICAgICAgICAgICAgICAgIGxsdm06OlJlcGxhY2VJbnN0V2l0aEluc3QoY2FsbEluc3QsIGxv YWRJbnN0KTsKLUBAIC0xMDI4LDkgKzEwMzAsOSBAQCBib29sIEludHJpbnNpY3NPcHQ6OnJ1bk9u QmFzaWNCbG9jayhsbHZtOjpCYXNpY0Jsb2NrICZiYikgewotICAgICAgICAgICAgICAgICAvLyBh bGwgbGFuZXMgc3RvcmluZywgc28gcmVwbGFjZSB3aXRoIGEgcmVndWxhciBzdG9yZQotICAgICAg ICAgICAgICAgICBsbHZtOjpWYWx1ZSAqcnZhbHVlID0gY2FsbEluc3QtPmdldEFyZ09wZXJhbmQo Mik7Ci0gICAgICAgICAgICAgICAgIGxsdm06OlR5cGUgKnN0b3JlVHlwZSA9IHJ2YWx1ZS0+Z2V0 VHlwZSgpOwotLSAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpuYW1lID0gTExWTUdldE5hbWUo Y2FsbEluc3QtPmdldEFyZ09wZXJhbmQoMCksICJfcHRyY2FzdCIpOwotLSAgICAgICAgICAgICAg ICBsbHZtOjpWYWx1ZSAqY2FzdFB0ciA9IG5ldyBsbHZtOjpCaXRDYXN0SW5zdChjYWxsSW5zdC0+ Z2V0QXJnT3BlcmFuZCgwKSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6UG9pbnRlclR5cGU6OmdldChzdG9yZVR5cGUs IDApLCBuYW1lLCBjYWxsSW5zdCk7Ci0rICAgICAgICAgICAgICAgIGxsdm06OlZhbHVlICpjYXN0 UHRyID0KLSsgICAgICAgICAgICAgICAgICAgIG5ldyBsbHZtOjpCaXRDYXN0SW5zdChjYWxsSW5z dC0+Z2V0QXJnT3BlcmFuZCgwKSwgbGx2bTo6UG9pbnRlclR5cGU6OmdldChzdG9yZVR5cGUsIDAp LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06OlR3aW5l KGNhbGxJbnN0LT5nZXRBcmdPcGVyYW5kKDApLT5nZXROYW1lKCkpICsgIl9wdHJjYXN0IiwgY2Fs bEluc3QpOwotICAgICAgICAgICAgICAgICBsQ29weU1ldGFkYXRhKGNhc3RQdHIsIGNhbGxJbnN0 KTsKLSAKLSAgICAgICAgICAgICAgICAgaW50IGFsaWduOwotQEAgLTEzMzksOCArMTM0MSw4IEBA IHN0YXRpYyBsbHZtOjpWYWx1ZSAqbEdldEJhc2VQb2ludGVyKGxsdm06OlZhbHVlICp2LCBsbHZt OjpJbnN0cnVjdGlvbiAqaW5zZXJ0QmVmCi0gICAgICAgICBpZiAodCA9PSBOVUxMKSB7Ci0gICAg ICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgICAgICB9IGVsc2UgewotLSAgICAgICAgICAgIHJl dHVybiBsbHZtOjpDYXN0SW5zdDo6Q3JlYXRlKGNpLT5nZXRPcGNvZGUoKSwgdCwgY2ktPmdldFR5 cGUoKS0+Z2V0U2NhbGFyVHlwZSgpLCBMTFZNR2V0TmFtZSh0LCAiX2Nhc3QiKSwKLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnNlcnRCZWZvcmUpOwotKyAgICAg ICAgICAgIHJldHVybiBsbHZtOjpDYXN0SW5zdDo6Q3JlYXRlKGNpLT5nZXRPcGNvZGUoKSwgdCwg Y2ktPmdldFR5cGUoKS0+Z2V0U2NhbGFyVHlwZSgpLAotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGxsdm06OlR3aW5lKHQtPmdldE5hbWUoKSkgKyAiX2Nhc3QiLCBp bnNlcnRCZWZvcmUpOwotICAgICAgICAgfQotICAgICB9Ci0gCi1AQCAtMTU4MywxMyArMTU4NSwx MyBAQCBzdGF0aWMgdm9pZCBsRXh0cmFjdENvbnN0YW50T2Zmc2V0KGxsdm06OlZhbHVlICp2ZWMs IGxsdm06OlZhbHVlICoqY29uc3RPZmZzZXQsCi0gICAgICAgICBpZiAoY28gPT0gTlVMTCkKLSAg ICAgICAgICAgICAqY29uc3RPZmZzZXQgPSBOVUxMOwotICAgICAgICAgZWxzZQotLSAgICAgICAg ICAgICpjb25zdE9mZnNldCA9Ci0tICAgICAgICAgICAgICAgIGxsdm06OkNhc3RJbnN0OjpDcmVh dGUoY2FzdC0+Z2V0T3Bjb2RlKCksIGNvLCBjYXN0LT5nZXRUeXBlKCksIExMVk1HZXROYW1lKGNv LCAiX2Nhc3QiKSwgaW5zZXJ0QmVmb3JlKTsKLSsgICAgICAgICAgICAqY29uc3RPZmZzZXQgPSBs bHZtOjpDYXN0SW5zdDo6Q3JlYXRlKGNhc3QtPmdldE9wY29kZSgpLCBjbywgY2FzdC0+Z2V0VHlw ZSgpLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg bGx2bTo6VHdpbmUoY28tPmdldE5hbWUoKSkgKyAiX2Nhc3QiLCBpbnNlcnRCZWZvcmUpOwotICAg ICAgICAgaWYgKHZvID09IE5VTEwpCi0gICAgICAgICAgICAgKnZhcmlhYmxlT2Zmc2V0ID0gTlVM TDsKLSAgICAgICAgIGVsc2UKLS0gICAgICAgICAgICAqdmFyaWFibGVPZmZzZXQgPQotLSAgICAg ICAgICAgICAgICBsbHZtOjpDYXN0SW5zdDo6Q3JlYXRlKGNhc3QtPmdldE9wY29kZSgpLCB2bywg Y2FzdC0+Z2V0VHlwZSgpLCBMTFZNR2V0TmFtZSh2bywgIl9jYXN0IiksIGluc2VydEJlZm9yZSk7 Ci0rICAgICAgICAgICAgKnZhcmlhYmxlT2Zmc2V0ID0gbGx2bTo6Q2FzdEluc3Q6OkNyZWF0ZShj YXN0LT5nZXRPcGNvZGUoKSwgdm8sIGNhc3QtPmdldFR5cGUoKSwKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06OlR3aW5lKHZvLT5nZXRO YW1lKCkpICsgIl9jYXN0IiwgaW5zZXJ0QmVmb3JlKTsKLSAgICAgICAgIHJldHVybjsKLSAgICAg fQotIAotQEAgLTE2MDgsMTYgKzE2MTAsMTggQEAgc3RhdGljIHZvaWQgbEV4dHJhY3RDb25zdGFu dE9mZnNldChsbHZtOjpWYWx1ZSAqdmVjLCBsbHZtOjpWYWx1ZSAqKmNvbnN0T2Zmc2V0LAotICAg ICAgICAgICAgIGVsc2UgaWYgKGMxID09IE5VTEwgfHwgbGx2bTo6aXNhPGxsdm06OkNvbnN0YW50 QWdncmVnYXRlWmVybz4oYzEpKQotICAgICAgICAgICAgICAgICAqY29uc3RPZmZzZXQgPSBjMDsK LSAgICAgICAgICAgICBlbHNlCi0tICAgICAgICAgICAgICAgICpjb25zdE9mZnNldCA9IGxsdm06 OkJpbmFyeU9wZXJhdG9yOjpDcmVhdGUobGx2bTo6SW5zdHJ1Y3Rpb246OkFkZCwgYzAsIGMxLCBM TFZNR2V0TmFtZSgiYWRkIiwgYzAsIGMxKSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnNlcnRCZWZvcmUpOwotKyAgICAgICAg ICAgICAgICAqY29uc3RPZmZzZXQgPSBsbHZtOjpCaW5hcnlPcGVyYXRvcjo6Q3JlYXRlKAotKyAg ICAgICAgICAgICAgICAgICAgbGx2bTo6SW5zdHJ1Y3Rpb246OkFkZCwgYzAsIGMxLCAoKGxsdm06 OlR3aW5lKCJhZGRfIikgKyBjMC0+Z2V0TmFtZSgpKSArICJfIikgKyBjMS0+Z2V0TmFtZSgpLAot KyAgICAgICAgICAgICAgICAgICAgaW5zZXJ0QmVmb3JlKTsKLSAKLSAgICAgICAgICAgICBpZiAo djAgPT0gTlVMTCB8fCBsbHZtOjppc2E8bGx2bTo6Q29uc3RhbnRBZ2dyZWdhdGVaZXJvPih2MCkp Ci0gICAgICAgICAgICAgICAgICp2YXJpYWJsZU9mZnNldCA9IHYxOwotICAgICAgICAgICAgIGVs c2UgaWYgKHYxID09IE5VTEwgfHwgbGx2bTo6aXNhPGxsdm06OkNvbnN0YW50QWdncmVnYXRlWmVy bz4odjEpKQotICAgICAgICAgICAgICAgICAqdmFyaWFibGVPZmZzZXQgPSB2MDsKLSAgICAgICAg ICAgICBlbHNlCi0tICAgICAgICAgICAgICAgICp2YXJpYWJsZU9mZnNldCA9IGxsdm06OkJpbmFy eU9wZXJhdG9yOjpDcmVhdGUobGx2bTo6SW5zdHJ1Y3Rpb246OkFkZCwgdjAsIHYxLAotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IExMVk1HZXROYW1lKCJhZGQiLCB2MCwgdjEpLCBpbnNlcnRCZWZvcmUpOwotKyAgICAgICAgICAg ICAgICAqdmFyaWFibGVPZmZzZXQgPSBsbHZtOjpCaW5hcnlPcGVyYXRvcjo6Q3JlYXRlKAotKyAg ICAgICAgICAgICAgICAgICAgbGx2bTo6SW5zdHJ1Y3Rpb246OkFkZCwgdjAsIHYxLCAoKGxsdm06 OlR3aW5lKCJhZGRfIikgKyB2MC0+Z2V0TmFtZSgpKSArICJfIikgKyB2MS0+Z2V0TmFtZSgpLAot KyAgICAgICAgICAgICAgICAgICAgaW5zZXJ0QmVmb3JlKTsKLSAgICAgICAgICAgICByZXR1cm47 Ci0gICAgICAgICB9IGVsc2UgaWYgKGJvcC0+Z2V0T3Bjb2RlKCkgPT0gbGx2bTo6SW5zdHJ1Y3Rp b246OlNobCkgewotICAgICAgICAgICAgIGxFeHRyYWN0Q29uc3RhbnRPZmZzZXQob3AwLCAmYzAs ICZ2MCwgaW5zZXJ0QmVmb3JlKTsKLUBAIC0xNjMzLDEwICsxNjM3LDEyIEBAIHN0YXRpYyB2b2lk IGxFeHRyYWN0Q29uc3RhbnRPZmZzZXQobGx2bTo6VmFsdWUgKnZlYywgbGx2bTo6VmFsdWUgKipj b25zdE9mZnNldCwKLSAgICAgICAgICAgICAgICAgKmNvbnN0T2Zmc2V0ID0gdmVjOwotICAgICAg ICAgICAgICAgICAqdmFyaWFibGVPZmZzZXQgPSBOVUxMOwotICAgICAgICAgICAgIH0gZWxzZSB7 Ci0tICAgICAgICAgICAgICAgICpjb25zdE9mZnNldCA9IGxsdm06OkJpbmFyeU9wZXJhdG9yOjpD cmVhdGUobGx2bTo6SW5zdHJ1Y3Rpb246OlNobCwgYzAsIGMxLCBMTFZNR2V0TmFtZSgic2hsIiwg YzAsIGMxKSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBpbnNlcnRCZWZvcmUpOwotLSAgICAgICAgICAgICAgICAqdmFyaWFibGVP ZmZzZXQgPSBsbHZtOjpCaW5hcnlPcGVyYXRvcjo6Q3JlYXRlKGxsdm06Okluc3RydWN0aW9uOjpT aGwsIHYwLCBjMSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBMTFZNR2V0TmFtZSgic2hsIiwgdjAsIGMxKSwgaW5zZXJ0QmVm b3JlKTsKLSsgICAgICAgICAgICAgICAgKmNvbnN0T2Zmc2V0ID0gbGx2bTo6QmluYXJ5T3BlcmF0 b3I6OkNyZWF0ZSgKLSsgICAgICAgICAgICAgICAgICAgIGxsdm06Okluc3RydWN0aW9uOjpTaGws IGMwLCBjMSwgKChsbHZtOjpUd2luZSgic2hsXyIpICsgYzAtPmdldE5hbWUoKSkgKyAiXyIpICsg YzEtPmdldE5hbWUoKSwKLSsgICAgICAgICAgICAgICAgICAgIGluc2VydEJlZm9yZSk7Ci0rICAg ICAgICAgICAgICAgICp2YXJpYWJsZU9mZnNldCA9IGxsdm06OkJpbmFyeU9wZXJhdG9yOjpDcmVh dGUoCi0rICAgICAgICAgICAgICAgICAgICBsbHZtOjpJbnN0cnVjdGlvbjo6U2hsLCB2MCwgYzEs ICgobGx2bTo6VHdpbmUoInNobF8iKSArIHYwLT5nZXROYW1lKCkpICsgIl8iKSArIGMxLT5nZXRO YW1lKCksCi0rICAgICAgICAgICAgICAgICAgICBpbnNlcnRCZWZvcmUpOwotICAgICAgICAgICAg IH0KLSAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICB9IGVsc2UgaWYgKGJvcC0+Z2V0T3Bj b2RlKCkgPT0gbGx2bTo6SW5zdHJ1Y3Rpb246Ok11bCkgewotQEAgLTE2NDgsMjUgKzE2NTQsMzAg QEAgc3RhdGljIHZvaWQgbEV4dHJhY3RDb25zdGFudE9mZnNldChsbHZtOjpWYWx1ZSAqdmVjLCBs bHZtOjpWYWx1ZSAqKmNvbnN0T2Zmc2V0LAotICAgICAgICAgICAgIC8vIE5vdGUgdGhhdCB0aGUg Zmlyc3QgdGVybSBpcyBhIGNvbnN0YW50IGFuZCB0aGUgbGFzdCB0aHJlZSBhcmUKLSAgICAgICAg ICAgICAvLyB2YXJpYWJsZS4KLSAgICAgICAgICAgICBpZiAoYzAgIT0gTlVMTCAmJiBjMSAhPSBO VUxMKQotLSAgICAgICAgICAgICAgICAqY29uc3RPZmZzZXQgPSBsbHZtOjpCaW5hcnlPcGVyYXRv cjo6Q3JlYXRlKGxsdm06Okluc3RydWN0aW9uOjpNdWwsIGMwLCBjMSwgTExWTUdldE5hbWUoIm11 bCIsIGMwLCBjMSksCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgaW5zZXJ0QmVmb3JlKTsKLSsgICAgICAgICAgICAgICAgKmNvbnN0 T2Zmc2V0ID0gbGx2bTo6QmluYXJ5T3BlcmF0b3I6OkNyZWF0ZSgKLSsgICAgICAgICAgICAgICAg ICAgIGxsdm06Okluc3RydWN0aW9uOjpNdWwsIGMwLCBjMSwgKChsbHZtOjpUd2luZSgibXVsXyIp ICsgYzAtPmdldE5hbWUoKSkgKyAiXyIpICsgYzEtPmdldE5hbWUoKSwKLSsgICAgICAgICAgICAg ICAgICAgIGluc2VydEJlZm9yZSk7Ci0gICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAg ICAqY29uc3RPZmZzZXQgPSBOVUxMOwotIAotICAgICAgICAgICAgIGxsdm06OlZhbHVlICp2YSA9 IE5VTEwsICp2YiA9IE5VTEwsICp2YyA9IE5VTEw7Ci0gICAgICAgICAgICAgaWYgKHYwICE9IE5V TEwgJiYgYzEgIT0gTlVMTCkKLS0gICAgICAgICAgICAgICAgdmEgPSBsbHZtOjpCaW5hcnlPcGVy YXRvcjo6Q3JlYXRlKGxsdm06Okluc3RydWN0aW9uOjpNdWwsIHYwLCBjMSwgTExWTUdldE5hbWUo Im11bCIsIHYwLCBjMSksCi0rICAgICAgICAgICAgICAgIHZhID0gbGx2bTo6QmluYXJ5T3BlcmF0 b3I6OkNyZWF0ZShsbHZtOjpJbnN0cnVjdGlvbjo6TXVsLCB2MCwgYzEsCi0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxsdm06OlR3aW5lKCJtdWxf IikgKyB2MC0+Z2V0TmFtZSgpKSArICJfIikgKyBjMS0+Z2V0TmFtZSgpLAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5zZXJ0QmVmb3JlKTsKLSAg ICAgICAgICAgICBpZiAoYzAgIT0gTlVMTCAmJiB2MSAhPSBOVUxMKQotLSAgICAgICAgICAgICAg ICB2YiA9IGxsdm06OkJpbmFyeU9wZXJhdG9yOjpDcmVhdGUobGx2bTo6SW5zdHJ1Y3Rpb246Ok11 bCwgYzAsIHYxLCBMTFZNR2V0TmFtZSgibXVsIiwgYzAsIHYxKSwKLSsgICAgICAgICAgICAgICAg dmIgPSBsbHZtOjpCaW5hcnlPcGVyYXRvcjo6Q3JlYXRlKGxsdm06Okluc3RydWN0aW9uOjpNdWws IGMwLCB2MSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICgobGx2bTo6VHdpbmUoIm11bF8iKSArIGMwLT5nZXROYW1lKCkpICsgIl8iKSArIHYxLT5n ZXROYW1lKCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBpbnNlcnRCZWZvcmUpOwotICAgICAgICAgICAgIGlmICh2MCAhPSBOVUxMICYmIHYxICE9 IE5VTEwpCi0tICAgICAgICAgICAgICAgIHZjID0gbGx2bTo6QmluYXJ5T3BlcmF0b3I6OkNyZWF0 ZShsbHZtOjpJbnN0cnVjdGlvbjo6TXVsLCB2MCwgdjEsIExMVk1HZXROYW1lKCJtdWwiLCB2MCwg djEpLAotKyAgICAgICAgICAgICAgICB2YyA9IGxsdm06OkJpbmFyeU9wZXJhdG9yOjpDcmVhdGUo bGx2bTo6SW5zdHJ1Y3Rpb246Ok11bCwgdjAsIHYxLAotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsbHZtOjpUd2luZSgibXVsXyIpICsgdjAtPmdl dE5hbWUoKSkgKyAiXyIpICsgdjEtPmdldE5hbWUoKSwKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluc2VydEJlZm9yZSk7Ci0gCi0gICAgICAgICAg ICAgbGx2bTo6VmFsdWUgKnZhYiA9IE5VTEw7Ci0gICAgICAgICAgICAgaWYgKHZhICE9IE5VTEwg JiYgdmIgIT0gTlVMTCkKLS0gICAgICAgICAgICAgICAgdmFiID0gbGx2bTo6QmluYXJ5T3BlcmF0 b3I6OkNyZWF0ZShsbHZtOjpJbnN0cnVjdGlvbjo6QWRkLCB2YSwgdmIsIExMVk1HZXROYW1lKCJh ZGQiLCB2YSwgdmIpLAotKyAgICAgICAgICAgICAgICB2YWIgPSBsbHZtOjpCaW5hcnlPcGVyYXRv cjo6Q3JlYXRlKGxsdm06Okluc3RydWN0aW9uOjpBZGQsIHZhLCB2YiwKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxsdm06OlR3aW5lKCJhZGRf IikgKyB2YS0+Z2V0TmFtZSgpKSArICJfIikgKyB2Yi0+Z2V0TmFtZSgpLAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluc2VydEJlZm9yZSk7Ci0g ICAgICAgICAgICAgZWxzZSBpZiAodmEgIT0gTlVMTCkKLSAgICAgICAgICAgICAgICAgdmFiID0g dmE7Ci1AQCAtMTY3NCw4ICsxNjg1LDkgQEAgc3RhdGljIHZvaWQgbEV4dHJhY3RDb25zdGFudE9m ZnNldChsbHZtOjpWYWx1ZSAqdmVjLCBsbHZtOjpWYWx1ZSAqKmNvbnN0T2Zmc2V0LAotICAgICAg ICAgICAgICAgICB2YWIgPSB2YjsKLSAKLSAgICAgICAgICAgICBpZiAodmFiICE9IE5VTEwgJiYg dmMgIT0gTlVMTCkKLS0gICAgICAgICAgICAgICAgKnZhcmlhYmxlT2Zmc2V0ID0gbGx2bTo6Qmlu YXJ5T3BlcmF0b3I6OkNyZWF0ZShsbHZtOjpJbnN0cnVjdGlvbjo6QWRkLCB2YWIsIHZjLAotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIExMVk1HZXROYW1lKCJhZGQiLCB2YWIsIHZjKSwgaW5zZXJ0QmVmb3JlKTsKLSsgICAgICAg ICAgICAgICAgKnZhcmlhYmxlT2Zmc2V0ID0gbGx2bTo6QmluYXJ5T3BlcmF0b3I6OkNyZWF0ZSgK LSsgICAgICAgICAgICAgICAgICAgIGxsdm06Okluc3RydWN0aW9uOjpBZGQsIHZhYiwgdmMsICgo bGx2bTo6VHdpbmUoImFkZF8iKSArIHZhYi0+Z2V0TmFtZSgpKSArICJfIikgKyB2Yy0+Z2V0TmFt ZSgpLAotKyAgICAgICAgICAgICAgICAgICAgaW5zZXJ0QmVmb3JlKTsKLSAgICAgICAgICAgICBl bHNlIGlmICh2YWIgIT0gTlVMTCkKLSAgICAgICAgICAgICAgICAgKnZhcmlhYmxlT2Zmc2V0ID0g dmFiOwotICAgICAgICAgICAgIGVsc2UKLUBAIC0xOTQzLDcgKzE5NTUsNyBAQCBzdGF0aWMgYm9v bCBsT2Zmc2V0czMyQml0U2FmZShsbHZtOjpWYWx1ZSAqKnZhcmlhYmxlT2Zmc2V0UHRyLCBsbHZt OjpWYWx1ZSAqKmNvbgotICAgICAgICAgICAgIC8vIGFsbCB6ZXJvcyAoaS5lLiBhIENvbnN0YW50 QWdncmVnYXRlWmVybywgYnV0IGp1c3QgaW4gY2FzZSwKLSAgICAgICAgICAgICAvLyBkbyB0aGUg bW9yZSBnZW5lcmFsIGNoZWNrIHdpdGggbFZlY3RvcklzMzJCaXRJbnRzKCkuCi0gICAgICAgICAg ICAgdmFyaWFibGVPZmZzZXQgPSBuZXcgbGx2bTo6VHJ1bmNJbnN0KHZhcmlhYmxlT2Zmc2V0LCBM TFZNVHlwZXM6OkludDMyVmVjdG9yVHlwZSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgTExWTUdldE5hbWUodmFyaWFibGVPZmZzZXQsICJfdHJ1bmMi KSwgaW5zZXJ0QmVmb3JlKTsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgbGx2bTo6VHdpbmUodmFyaWFibGVPZmZzZXQtPmdldE5hbWUoKSkgKyAiX3Ry dW5jIiwgaW5zZXJ0QmVmb3JlKTsKLSAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICByZXR1cm4g ZmFsc2U7Ci0gICAgIH0KLUBAIC0xOTUyLDcgKzE5NjQsNyBAQCBzdGF0aWMgYm9vbCBsT2Zmc2V0 czMyQml0U2FmZShsbHZtOjpWYWx1ZSAqKnZhcmlhYmxlT2Zmc2V0UHRyLCBsbHZtOjpWYWx1ZSAq KmNvbgotICAgICAgICAgaWYgKGxWZWN0b3JJczMyQml0SW50cyhjb25zdE9mZnNldCkpIHsKLSAg ICAgICAgICAgICAvLyBUcnVuY2F0ZSB0aGVtIHNvIHdlIGhhdmUgYSAzMi1iaXQgdmVjdG9yIHR5 cGUgZm9yIHRoZW0uCi0gICAgICAgICAgICAgY29uc3RPZmZzZXQgPSBuZXcgbGx2bTo6VHJ1bmNJ bnN0KGNvbnN0T2Zmc2V0LCBMTFZNVHlwZXM6OkludDMyVmVjdG9yVHlwZSwKLS0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTExWTUdldE5hbWUoY29uc3RPZmZz ZXQsICJfdHJ1bmMiKSwgaW5zZXJ0QmVmb3JlKTsKLSsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgbGx2bTo6VHdpbmUoY29uc3RPZmZzZXQtPmdldE5hbWUoKSkg KyAiX3RydW5jIiwgaW5zZXJ0QmVmb3JlKTsKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAg ICAgLy8gRklYTUU6IG90aGVyd2lzZSB3ZSBqdXN0IGFzc3VtZSB0aGF0IGFsbCBjb25zdGFudCBv ZmZzZXRzCi0gICAgICAgICAgICAgLy8gY2FuIGFjdHVhbGx5IGFsd2F5cyBmaXQgaW50byAzMi1i aXRzLi4uICAoVGhpcyBjb3VsZCBiZQotQEAgLTE5NjMsNyArMTk3NSw3IEBAIHN0YXRpYyBib29s IGxPZmZzZXRzMzJCaXRTYWZlKGxsdm06OlZhbHVlICoqdmFyaWFibGVPZmZzZXRQdHIsIGxsdm06 OlZhbHVlICoqY29uCi0gICAgICAgICAgICAgLy8gbGx2bTo6Q29uc3RhbnRGb2xkSW5zdHJ1Y3Rp b24oKSBkb2Vzbid0IHNlZW0gdG8gYmUgZG9pbmcKLSAgICAgICAgICAgICAvLyBlbm91Z2ggZm9y IHVzIGluIHNvbWUgY2FzZXMgaWYgd2UgY2FsbCBpdCBmcm9tIGhlcmUuCi0gICAgICAgICAgICAg Y29uc3RPZmZzZXQgPSBuZXcgbGx2bTo6VHJ1bmNJbnN0KGNvbnN0T2Zmc2V0LCBMTFZNVHlwZXM6 OkludDMyVmVjdG9yVHlwZSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgTExWTUdldE5hbWUoY29uc3RPZmZzZXQsICJfdHJ1bmMiKSwgaW5zZXJ0QmVmb3Jl KTsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6 VHdpbmUoY29uc3RPZmZzZXQtPmdldE5hbWUoKSkgKyAiX3RydW5jIiwgaW5zZXJ0QmVmb3JlKTsK LSAgICAgICAgIH0KLSAgICAgfQotIAotQEAgLTIwMTIsOCArMjAyNCw4IEBAIHN0YXRpYyBib29s IGxPZmZzZXRzMzJCaXRTYWZlKGxsdm06OlZhbHVlICoqb2Zmc2V0UHRyLCBsbHZtOjpJbnN0cnVj dGlvbiAqaW5zZXJ0Ci0gCi0gICAgICAgICAvLyBBbHRlcm5hdGl2ZWx5LCBvZmZzZXQgY291bGQg YmUgYSBzZXF1ZW5jZSBvZiBhZGRzIHRlcm1pbmF0aW5nCi0gICAgICAgICAvLyBpbiBzYWZlIGNv bnN0YW50IHZlY3RvcnMgb3IgYSBTRXh0LgotLSAgICAgICAgKm9mZnNldFB0ciA9Ci0tICAgICAg ICAgICAgbmV3IGxsdm06OlRydW5jSW5zdChvZmZzZXQsIExMVk1UeXBlczo6SW50MzJWZWN0b3JU eXBlLCBMTFZNR2V0TmFtZShvZmZzZXQsICJfdHJ1bmMiKSwgaW5zZXJ0QmVmb3JlKTsKLSsgICAg ICAgICpvZmZzZXRQdHIgPSBuZXcgbGx2bTo6VHJ1bmNJbnN0KG9mZnNldCwgTExWTVR5cGVzOjpJ bnQzMlZlY3RvclR5cGUsIGxsdm06OlR3aW5lKG9mZnNldC0+Z2V0TmFtZSgpKSArICJfdHJ1bmMi LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5zZXJ0QmVmb3Jl KTsKLSAgICAgICAgIHJldHVybiB0cnVlOwotICAgICB9IGVsc2UKLSAgICAgICAgIHJldHVybiBm YWxzZTsKLUBAIC0yMjI5LDcgKzIyNDEsOCBAQCBzdGF0aWMgYm9vbCBsR1NUb0dTQmFzZU9mZnNl dHMobGx2bTo6Q2FsbEluc3QgKmNhbGxJbnN0KSB7Ci0gICAgIH0KLSAgICAgLy8gQ2FzdCB0aGUg YmFzZSBwb2ludGVyIHRvIGEgdm9pZCAqLCBzaW5jZSB0aGF0J3Mgd2hhdCB0aGUKLSAgICAgLy8g X19wc2V1ZG9fKl9iYXNlX29mZnNldHNfKiBmdW5jdGlvbnMgd2FudC4KLS0gICAgYmFzZVB0ciA9 IG5ldyBsbHZtOjpJbnRUb1B0ckluc3QoYmFzZVB0ciwgTExWTVR5cGVzOjpWb2lkUG9pbnRlclR5 cGUsIExMVk1HZXROYW1lKGJhc2VQdHIsICJfMnZvaWQiKSwgY2FsbEluc3QpOwotKyAgICBiYXNl UHRyID0gbmV3IGxsdm06OkludFRvUHRySW5zdChiYXNlUHRyLCBMTFZNVHlwZXM6OlZvaWRQb2lu dGVyVHlwZSwgbGx2bTo6VHdpbmUoYmFzZVB0ci0+Z2V0TmFtZSgpKSArICJfMnZvaWQiLAotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxsSW5zdCk7Ci0gICAgIGxDb3B5 TWV0YWRhdGEoYmFzZVB0ciwgY2FsbEluc3QpOwotICAgICBsbHZtOjpGdW5jdGlvbiAqZ2F0aGVy U2NhdHRlckZ1bmMgPSBpbmZvLT5iYXNlT2Zmc2V0c0Z1bmM7Ci0gCi1AQCAtMjgwMyw3ICsyODE2 LDcgQEAgc3RhdGljIGJvb2wgbEdTVG9Mb2FkU3RvcmUobGx2bTo6Q2FsbEluc3QgKmNhbGxJbnN0 KSB7Ci0gICAgICAgICAgICAgICAgIGxDb3B5TWV0YWRhdGEocHRyLCBjYWxsSW5zdCk7Ci0gICAg ICAgICAgICAgICAgIERlYnVnKHBvcywgIlRyYW5zZm9ybWVkIGdhdGhlciB0byB1bmFsaWduZWQg dmVjdG9yIGxvYWQhIik7Ci0gICAgICAgICAgICAgICAgIGxsdm06Okluc3RydWN0aW9uICpuZXdD YWxsID0KLS0gICAgICAgICAgICAgICAgICAgIGxDYWxsSW5zdChnYXRoZXJJbmZvLT5sb2FkTWFz a2VkRnVuYywgcHRyLCBtYXNrLCBMTFZNR2V0TmFtZShwdHIsICJfbWFza2VkX2xvYWQiKSk7Ci0r ICAgICAgICAgICAgICAgICAgICBsQ2FsbEluc3QoZ2F0aGVySW5mby0+bG9hZE1hc2tlZEZ1bmMs IHB0ciwgbWFzaywgbGx2bTo6VHdpbmUocHRyLT5nZXROYW1lKCkpICsgIl9tYXNrZWRfbG9hZCIp OwotICAgICAgICAgICAgICAgICBsQ29weU1ldGFkYXRhKG5ld0NhbGwsIGNhbGxJbnN0KTsKLSAg ICAgICAgICAgICAgICAgbGx2bTo6UmVwbGFjZUluc3RXaXRoSW5zdChjYWxsSW5zdCwgbmV3Q2Fs bCk7Ci0gICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9p c3BjL3BhdGNoZXMvbGx2bTEyLTAwNC5wYXRjaCBiL3NyY3BrZ3MvaXNwYy9wYXRjaGVzL2xsdm0x Mi0wMDQucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNhOTRkODQ0M2E1ZS4u MDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvaXNwYy9wYXRjaGVzL2xsdm0xMi0wMDQucGF0Y2gK KysrIC9kZXYvbnVsbApAQCAtMSwzNCArMCwwIEBACi1Gcm9tIGMwM2E1MTQyNDQ0NDc2YTFjYWE1 YzJiYTdmYTJkOTJkNzc5M2Q2ZjEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBEZWVw YWsgUmFqZW5kcmFrdW1hcmFuIDxkZWVwYWsucmFqZW5kcmFrdW1hcmFuQGludGVsLmNvbT4KLURh dGU6IE1vbiwgMjUgSmFuIDIwMjEgMDk6MjI6NDkgLTA4MDAKLVN1YmplY3Q6IFtQQVRDSF0gRml4 aW5nIGJ1aWxkIG9uIGxsdm0gdHJ1bmsuCi0KLS0tLQotIHNyYy9jdHguY3BwIHwgNyArKystLS0t Ci0gMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKLQotZGlm ZiAtLWdpdCBhL3NyYy9jdHguY3BwIGIvc3JjL2N0eC5jcHAKLWluZGV4IGRlZDUyNGI3MS4uYjYw ZTZmZTg0IDEwMDY0NAotLS0tIGEvc3JjL2N0eC5jcHAKLSsrKyBiL3NyYy9jdHguY3BwCi1AQCAt MTAyMCw4ICsxMDIwLDcgQEAgdm9pZCBGdW5jdGlvbkVtaXRDb250ZXh0OjpFbWl0Q2FzZUxhYmVs KGludCB2YWx1ZSwgYm9vbCBjaGVja01hc2ssIFNvdXJjZVBvcyBwb3MKLSAgICAgbGx2bTo6QmFz aWNCbG9jayAqYmJDYXNlSW1wbCA9IE5VTEw7Ci0gICAgIGlmIChlbWl0R2VuWEhhcmR3YXJlTWFz aygpKSB7Ci0gICAgICAgICAvLyBDcmVhdGUgYmFzaWMgYmxvY2sgd2l0aCBhY3R1YWwgY2FzZSBp bXBsZW1lbnRhdGlvbgotLSAgICAgICAgbGx2bTo6VHdpbmUgYmJOYW1lID0gbGx2bTo6VHdpbmUo YmJDYXNlLT5nZXROYW1lKCkpICsgIl9pbXBsIjsKLS0gICAgICAgIGJiQ2FzZUltcGwgPSBDcmVh dGVCYXNpY0Jsb2NrKGJiTmFtZSwgYmJDYXNlKTsKLSsgICAgICAgIGJiQ2FzZUltcGwgPSBDcmVh dGVCYXNpY0Jsb2NrKGxsdm06OlR3aW5lKGJiQ2FzZS0+Z2V0TmFtZSgpKSArICJfaW1wbCIsIGJi Q2FzZSk7Ci0gICAgIH0KLSAjZW5kaWYKLSAKLUBAIC0zMTQyLDggKzMxNDEsOCBAQCBsbHZtOjpW YWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6QnJvYWRjYXN0VmFsdWUobGx2bTo6VmFsdWUgKnYs IGxsdm06OlR5cGUgKnZlYwotICAgICBsbHZtOjpWYWx1ZSAqdW5kZWYyID0gbGx2bTo6VW5kZWZW YWx1ZTo6Z2V0KHZlY1R5cGUpOwotIAotICAgICAvLyBJbnNlcnRFbGVtZW50Ci0tICAgIGxsdm06 OlR3aW5lIHR3ID0gbmFtZS5pc1RyaXZpYWxseUVtcHR5KCkgPyAobGx2bTo6VHdpbmUodi0+Z2V0 TmFtZSgpKSArICJfYnJvYWRjYXN0IikgOiBuYW1lICsgbGx2bTo6VHdpbmUoIl9pbml0Iik7Ci0t ICAgIGxsdm06OlZhbHVlICppbnNlcnQgPSBJbnNlcnRJbnN0KHVuZGVmMSwgdiwgMCwgdHcuc3Ry KCkuY19zdHIoKSk7Ci0rICAgIGxsdm06OlZhbHVlICppbnNlcnQgPQotKyAgICAgICAgSW5zZXJ0 SW5zdCh1bmRlZjEsIHYsIDAsIG5hbWUuaXNUcml2aWFsbHlFbXB0eSgpID8gKGxsdm06OlR3aW5l KHYtPmdldE5hbWUoKSkgKyAiX2Jyb2FkY2FzdCIpIDogbmFtZSArICJfaW5pdCIpOwotIAotICAg ICAvLyBTaHVmZmxlVmVjdG9yCi0gI2lmIElTUENfTExWTV9WRVJTSU9OIDwgSVNQQ19MTFZNXzEx XzAKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvaXNwYy9wYXRjaGVzL2xsdm0xMi0wMDUucGF0Y2ggYi9z cmNwa2dzL2lzcGMvcGF0Y2hlcy9sbHZtMTItMDA1LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEw MDY0NAppbmRleCBlM2U5NmIwMGFiZmEuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2lzcGMv cGF0Y2hlcy9sbHZtMTItMDA1LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMzcyICswLDAgQEAK LUZyb20gYzFkMGE1MWJmODQxNmQ0MjE0NGRlOWUyYmRkNTk4MjVlYWVmZjFhYyBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKLUZyb206IEFyaW5hIE5lc2hseWFldmEgPGFyaW5hLm5lc2hseWFldmFA aW50ZWwuY29tPgotRGF0ZTogRnJpLCA4IEphbiAyMDIxIDE0OjEzOjQ5IC0wODAwCi1TdWJqZWN0 OiBbUEFUQ0hdIExMVk0gMTEgc3VwcG9ydCBmb3IgZ2VuIGNvZGUKLQotLS0tCi0gc3JjL2N0eC5j cHAgICAgICAgICAgICAgICAgICAgICB8ICAxMyArKy0KLSBzcmMvZ2VuL0dsb2JhbHNMb2NhbGl6 YXRpb24uY3BwIHwgICA5ICstCi0gc3JjL29wdC5jcHAgICAgICAgICAgICAgICAgICAgICB8IDE0 MyArKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLQotIDMgZmlsZXMgY2hhbmdlZCwgMTI0 IGluc2VydGlvbnMoKyksIDQxIGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvc3JjL2N0eC5j cHAgYi9zcmMvY3R4LmNwcAotaW5kZXggYjYwZTZmZTg0Li4yYTcyZTY4MzcgMTAwNjQ0Ci0tLS0g YS9zcmMvY3R4LmNwcAotKysrIGIvc3JjL2N0eC5jcHAKLUBAIC0xLDUgKzEsNSBAQAotIC8qCi0t ICBDb3B5cmlnaHQgKGMpIDIwMTAtMjAyMCwgSW50ZWwgQ29ycG9yYXRpb24KLSsgIENvcHlyaWdo dCAoYykgMjAxMC0yMDIxLCBJbnRlbCBDb3Jwb3JhdGlvbgotICAgQWxsIHJpZ2h0cyByZXNlcnZl ZC4KLSAKLSAgIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y bXMsIHdpdGggb3Igd2l0aG91dAotQEAgLTM2ODUsOCArMzY4NSwxNyBAQCBsbHZtOjpWYWx1ZSAq RnVuY3Rpb25FbWl0Q29udGV4dDo6R2VuWFNpbWRDRlByZWRpY2F0ZShsbHZtOjpWYWx1ZSAqdmFs dWUsIGxsdm06OgotICAgICBBc3NlcnRQb3MoY3VycmVudFBvcywgbGx2bTo6aXNhPGxsdm06OlZl Y3RvclR5cGU+KHZhbHVlLT5nZXRUeXBlKCkpKTsKLSAgICAgbGx2bTo6VmVjdG9yVHlwZSAqdnQg PSBsbHZtOjpkeW5fY2FzdDxsbHZtOjpWZWN0b3JUeXBlPih2YWx1ZS0+Z2V0VHlwZSgpKTsKLSAg ICAgaWYgKGRlZmF1bHRzID09IE5VTEwpIHsKLS0gICAgICAgIGRlZmF1bHRzID0gbGx2bTo6Q29u c3RhbnRWZWN0b3I6OmdldFNwbGF0KHZhbHVlLT5nZXRUeXBlKCktPmdldFZlY3Rvck51bUVsZW1l bnRzKCksCi0rI2lmIElTUENfTExWTV9WRVJTSU9OIDwgSVNQQ19MTFZNXzExXzAKLSsgICAgICAg IGRlZmF1bHRzID0gbGx2bTo6Q29uc3RhbnRWZWN0b3I6OmdldFNwbGF0KHZ0LT5nZXRWZWN0b3JO dW1FbGVtZW50cygpLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgbGx2bTo6Q29uc3RhbnQ6OmdldE51bGxWYWx1ZSh2dC0+Z2V0RWxlbWVudFR5cGUo KSkpOwotKyNlbGlmIElTUENfTExWTV9WRVJTSU9OID09IElTUENfTExWTV8xMV8wCi0rICAgICAg ICBkZWZhdWx0cyA9IGxsdm06OkNvbnN0YW50VmVjdG9yOjpnZXRTcGxhdCh7c3RhdGljX2Nhc3Q8 dW5zaWduZWQgaW50Pih2dC0+Z2V0TnVtRWxlbWVudHMoKSksIGZhbHNlfSwKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06OkNvbnN0YW50Ojpn ZXROdWxsVmFsdWUodnQtPmdldEVsZW1lbnRUeXBlKCkpKTsKLSsjZWxzZQotKyAgICAgICAgZGVm YXVsdHMgPSBsbHZtOjpDb25zdGFudFZlY3Rvcjo6Z2V0U3BsYXQoCi0rICAgICAgICAgICAgbGx2 bTo6RWxlbWVudENvdW50OjpnZXQoc3RhdGljX2Nhc3Q8dW5zaWduZWQgaW50Pih2dC0+Z2V0TnVt RWxlbWVudHMoKSksIGZhbHNlKSwKLSsgICAgICAgICAgICBsbHZtOjpDb25zdGFudDo6Z2V0TnVs bFZhbHVlKHZ0LT5nZXRFbGVtZW50VHlwZSgpKSk7Ci0rI2VuZGlmCi0gICAgIH0KLSAKLSAgICAg YXV0byBGbiA9IGxsdm06OkdlblhJbnRyaW5zaWM6OmdldEdlblhEZWNsYXJhdGlvbihtLT5tb2R1 bGUsIGxsdm06OkdlblhJbnRyaW5zaWM6Omdlbnhfc2ltZGNmX3ByZWRpY2F0ZSwKLWRpZmYgLS1n aXQgYS9zcmMvZ2VuL0dsb2JhbHNMb2NhbGl6YXRpb24uY3BwIGIvc3JjL2dlbi9HbG9iYWxzTG9j YWxpemF0aW9uLmNwcAotaW5kZXggYTE3NmU5NDYyLi40MWYzYjAwZTIgMTAwNjQ0Ci0tLS0gYS9z cmMvZ2VuL0dsb2JhbHNMb2NhbGl6YXRpb24uY3BwCi0rKysgYi9zcmMvZ2VuL0dsb2JhbHNMb2Nh bGl6YXRpb24uY3BwCi1AQCAtMSw1ICsxLDUgQEAKLSAvKgotLSAgQ29weXJpZ2h0IChjKSAyMDE0 LCAyMDE2LTIwMjAsIEludGVsIENvcnBvcmF0aW9uCi0rICBDb3B5cmlnaHQgKGMpIDIwMTQsIDIw MTYtMjAyMSwgSW50ZWwgQ29ycG9yYXRpb24KLSAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gCi0g ICBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo IG9yIHdpdGhvdXQKLUBAIC01Myw4ICs1MywxMCBAQAotICNpbmNsdWRlIDxsbHZtL0dlblhJbnRy aW5zaWNzL0dlblhJbnRyT3B0cy5oPgotICNpbmNsdWRlIDxsbHZtL0dlblhJbnRyaW5zaWNzL0dl blhJbnRyaW5zaWNzLmg+Ci0gI2luY2x1ZGUgPGxsdm0vR2VuWEludHJpbnNpY3MvR2VuWE1ldGFk YXRhLmg+Ci0tI2luY2x1ZGUgPGxsdm0vSVIvQ0ZHLmg+Ci0rI2lmIElTUENfTExWTV9WRVJTSU9O IDwgSVNQQ19MTFZNXzExXzAKLSAjaW5jbHVkZSA8bGx2bS9JUi9DYWxsU2l0ZS5oPgotKyNlbmRp ZgotKyNpbmNsdWRlIDxsbHZtL0lSL0NGRy5oPgotICNpbmNsdWRlIDxsbHZtL0lSL0RlYnVnSW5m by5oPgotICNpbmNsdWRlIDxsbHZtL0lSL0RvbWluYXRvcnMuaD4KLSAjaW5jbHVkZSA8bGx2bS9J Ui9GdW5jdGlvbi5oPgotQEAgLTQ3MCw3ICs0NzIsOCBAQCB2b2lkIEdsb2JhbHNMb2NhbGl6YXRp b246OkxvY2FsaXplR2xvYmFscyhMb2NhbGl6YXRpb25JbmZvICZMSSkgewotICAgICAgICAgSW5z dHJ1Y3Rpb24gJkZpcnN0SSA9ICpGbi0+Z2V0RW50cnlCbG9jaygpLmJlZ2luKCk7Ci0gICAgICAg ICBUeXBlICpFbGVtVHkgPSBHVi0+Z2V0VHlwZSgpLT5nZXRFbGVtZW50VHlwZSgpOwotICAgICAg ICAgQWxsb2NhSW5zdCAqQWxsb2NhID0gbmV3IEFsbG9jYUluc3QoRWxlbVR5LCAwLCBHVi0+Z2V0 TmFtZSgpICsgIi5sb2NhbCIsICZGaXJzdEkpOwotLSAgICAgICAgQWxsb2NhLT5zZXRBbGlnbm1l bnQobGx2bTo6TWF5YmVBbGlnbihHVi0+Z2V0QWxpZ25tZW50KCkpKTsKLSsgICAgICAgIEFsbG9j YS0+c2V0QWxpZ25tZW50KGxsdm06Ok1heWJlQWxpZ24oR1YtPmdldEFsaWdubWVudCgpKS52YWx1 ZU9yT25lKCkpOwotKwotICAgICAgICAgaWYgKCFpc2E8VW5kZWZWYWx1ZT4oR1YtPmdldEluaXRp YWxpemVyKCkpKQotICAgICAgICAgICAgIG5ldyBTdG9yZUluc3QoR1YtPmdldEluaXRpYWxpemVy KCksIEFsbG9jYSwgJkZpcnN0SSk7Ci0gCi1kaWZmIC0tZ2l0IGEvc3JjL29wdC5jcHAgYi9zcmMv b3B0LmNwcAotaW5kZXggZDU4ZDc3ZjczLi4xNzg5Yjg0NzYgMTAwNjQ0Ci0tLS0gYS9zcmMvb3B0 LmNwcAotKysrIGIvc3JjL29wdC5jcHAKLUBAIC0yODk5LDE1ICsyODk5LDE3IEBAIHN0YXRpYyBs bHZtOjpGdW5jdGlvbiAqbEdlblhNYXNrZWRJbnQ4SW5zdChsbHZtOjpJbnN0cnVjdGlvbiAqaW5z dCwgYm9vbCBpc1N0b3JlCi0gc3RhdGljIGxsdm06OkNhbGxJbnN0ICpsR2VuWFN0b3JlSW5zdChs bHZtOjpWYWx1ZSAqdmFsLCBsbHZtOjpWYWx1ZSAqcHRyLCBsbHZtOjpJbnN0cnVjdGlvbiAqaW5z dCkgewotICAgICBBc3NlcnQoZy0+dGFyZ2V0LT5pc0dlblhUYXJnZXQoKSk7Ci0gICAgIEFzc2Vy dChsbHZtOjppc2E8bGx2bTo6VmVjdG9yVHlwZT4odmFsLT5nZXRUeXBlKCkpKTsKLS0gICAgQXNz ZXJ0KGxsdm06OmlzUG93ZXJPZjJfMzIodmFsLT5nZXRUeXBlKCktPmdldFZlY3Rvck51bUVsZW1l bnRzKCkpKTsKLS0gICAgQXNzZXJ0KHZhbC0+Z2V0VHlwZSgpLT5nZXRQcmltaXRpdmVTaXplSW5C aXRzKCkgLyA4IDw9IDggKiBPV09SRCk7Ci0rCi0rICAgIGxsdm06OlZlY3RvclR5cGUgKnZhbFZl Y1R5cGUgPSBsbHZtOjpkeW5fY2FzdDxsbHZtOjpWZWN0b3JUeXBlPih2YWwtPmdldFR5cGUoKSk7 Ci0rICAgIEFzc2VydChsbHZtOjppc1Bvd2VyT2YyXzMyKHZhbFZlY1R5cGUtPmdldE51bUVsZW1l bnRzKCkpKTsKLSsgICAgQXNzZXJ0KHZhbFZlY1R5cGUtPmdldFByaW1pdGl2ZVNpemVJbkJpdHMo KSAvIDggPD0gOCAqIE9XT1JEKTsKLSAKLSAgICAgLy8gVGhlIGRhdGEgd3JpdGUgb2Ygc3ZtIHN0 b3JlIG11c3QgaGF2ZSBhIHNpemUgdGhhdCBpcyBhIHBvd2VyIG9mIHR3byBmcm9tIDE2IHRvIDEy OAotICAgICAvLyBieXRlcy4gSG93ZXZlciBmb3IgaW50OCB0eXBlIGFuZCBzaW1kIHdpZHRoID0g OCwgdGhlIGRhdGEgd3JpdGUgc2l6ZSBpcyA4LgotICAgICAvLyBTbyB3ZSB1c2UgbWFza2VkIHN0 b3JlIGZ1bmN0aW9uIGhlcmUgaW5zdGVhZCBvZiBzdm0gc3RvcmUgd2hpY2ggcHJvY2VzcyBpbnQ4 IHR5cGUKLSAgICAgLy8gY29ycmVjdGx5LgotLSAgICBpZiAodmFsLT5nZXRUeXBlKCktPmdldFBy aW1pdGl2ZVNpemVJbkJpdHMoKSAvIDggPCAxNikgewotLSAgICAgICAgQXNzZXJ0KHZhbC0+Z2V0 VHlwZSgpLT5nZXRTY2FsYXJUeXBlKCkgPT0gTExWTVR5cGVzOjpJbnQ4VHlwZSk7Ci0rICAgIGlm ICh2YWxWZWNUeXBlLT5nZXRQcmltaXRpdmVTaXplSW5CaXRzKCkgLyA4IDwgMTYpIHsKLSsgICAg ICAgIEFzc2VydCh2YWxWZWNUeXBlLT5nZXRTY2FsYXJUeXBlKCkgPT0gTExWTVR5cGVzOjpJbnQ4 VHlwZSk7Ci0gICAgICAgICBpZiAobGx2bTo6RnVuY3Rpb24gKm1hc2tlZEZ1bmMgPSBsR2VuWE1h c2tlZEludDhJbnN0KGluc3QsIHRydWUpKQotICAgICAgICAgICAgIHJldHVybiBsbHZtOjpkeW5f Y2FzdDxsbHZtOjpDYWxsSW5zdD4obENhbGxJbnN0KG1hc2tlZEZ1bmMsIHB0ciwgdmFsLCBMTFZN TWFza0FsbE9uLCAiIikpOwotICAgICAgICAgZWxzZSB7Ci1AQCAtMjkyMywxNSArMjkyNSwxNyBA QCBzdGF0aWMgbGx2bTo6Q2FsbEluc3QgKmxHZW5YU3RvcmVJbnN0KGxsdm06OlZhbHVlICp2YWws IGxsdm06OlZhbHVlICpwdHIsIGxsdm06OgotIAotIHN0YXRpYyBsbHZtOjpDYWxsSW5zdCAqbEdl blhMb2FkSW5zdChsbHZtOjpWYWx1ZSAqcHRyLCBsbHZtOjpUeXBlICpyZXRUeXBlLCBsbHZtOjpJ bnN0cnVjdGlvbiAqaW5zdCkgewotICAgICBBc3NlcnQobGx2bTo6aXNhPGxsdm06OlZlY3RvclR5 cGU+KHJldFR5cGUpKTsKLS0gICAgQXNzZXJ0KGxsdm06OmlzUG93ZXJPZjJfMzIocmV0VHlwZS0+ Z2V0VmVjdG9yTnVtRWxlbWVudHMoKSkpOwotLSAgICBBc3NlcnQocmV0VHlwZS0+Z2V0UHJpbWl0 aXZlU2l6ZUluQml0cygpKTsKLS0gICAgQXNzZXJ0KHJldFR5cGUtPmdldFByaW1pdGl2ZVNpemVJ bkJpdHMoKSAvIDggPD0gOCAqIE9XT1JEKTsKLSsKLSsgICAgbGx2bTo6VmVjdG9yVHlwZSAqcmV0 VmVjVHlwZSA9IGxsdm06OmR5bl9jYXN0PGxsdm06OlZlY3RvclR5cGU+KHJldFR5cGUpOwotKyAg ICBBc3NlcnQobGx2bTo6aXNQb3dlck9mMl8zMihyZXRWZWNUeXBlLT5nZXROdW1FbGVtZW50cygp KSk7Ci0rICAgIEFzc2VydChyZXRWZWNUeXBlLT5nZXRQcmltaXRpdmVTaXplSW5CaXRzKCkpOwot KyAgICBBc3NlcnQocmV0VmVjVHlwZS0+Z2V0UHJpbWl0aXZlU2l6ZUluQml0cygpIC8gOCA8PSA4 ICogT1dPUkQpOwotICAgICAvLyBUaGUgZGF0YSByZWFkIG9mIHN2bSBsb2FkIG11c3QgaGF2ZSBh IHNpemUgdGhhdCBpcyBhIHBvd2VyIG9mIHR3byBmcm9tIDE2IHRvIDEyOAotICAgICAvLyBieXRl cy4gSG93ZXZlciBmb3IgaW50OCB0eXBlIGFuZCBzaW1kIHdpZHRoID0gOCwgdGhlIGRhdGEgcmVh ZCBzaXplIGlzIDguCi0gICAgIC8vIFNvIHdlIHVzZSBtYXNrZWQgbG9hZCBmdW5jdGlvbiBoZXJl IGluc3RlYWQgb2Ygc3ZtIGxvYWQgd2hpY2ggcHJvY2VzcyBpbnQ4IHR5cGUKLSAgICAgLy8gY29y cmVjdGx5LgotLSAgICBpZiAocmV0VHlwZS0+Z2V0UHJpbWl0aXZlU2l6ZUluQml0cygpIC8gOCA8 IDE2KSB7Ci0tICAgICAgICBBc3NlcnQocmV0VHlwZS0+Z2V0U2NhbGFyVHlwZSgpID09IExMVk1U eXBlczo6SW50OFR5cGUpOwotKyAgICBpZiAocmV0VmVjVHlwZS0+Z2V0UHJpbWl0aXZlU2l6ZUlu Qml0cygpIC8gOCA8IDE2KSB7Ci0rICAgICAgICBBc3NlcnQocmV0VmVjVHlwZS0+Z2V0U2NhbGFy VHlwZSgpID09IExMVk1UeXBlczo6SW50OFR5cGUpOwotICAgICAgICAgaWYgKGxsdm06OkZ1bmN0 aW9uICptYXNrZWRGdW5jID0gbEdlblhNYXNrZWRJbnQ4SW5zdChpbnN0LCBmYWxzZSkpCi0gICAg ICAgICAgICAgcmV0dXJuIGxsdm06OmR5bl9jYXN0PGxsdm06OkNhbGxJbnN0PihsQ2FsbEluc3Qo bWFza2VkRnVuYywgcHRyLCBMTFZNTWFza0FsbE9uLCAiIikpOwotICAgICAgICAgZWxzZSB7Ci1A QCAtNTYyMiwxNSArNTYyNiwyNCBAQCBzdGF0aWMgYm9vbCBsVmVjdG9yaXplR0VQcyhsbHZtOjpW YWx1ZSAqcHRyLCBzdGQ6OnZlY3RvcjxQdHJVc2U+ICZwdHJVc2VzLCBzdGQ6OgotICAgICAgICAg bGx2bTo6UHRyVG9JbnRJbnN0ICpwdHJUb0ludCA9Ci0gICAgICAgICAgICAgbmV3IGxsdm06OlB0 clRvSW50SW5zdChwdHIsIExMVk1UeXBlczo6SW50NjRUeXBlLCAidmVjdG9yaXplZF9wdHJ0b2lu dCIsIGluc2VydEJlZm9yZSk7Ci0gICAgICAgICBsbHZtOjpJbnN0cnVjdGlvbiAqYWRkciA9IGxs dm06OkJpbmFyeU9wZXJhdG9yOjpDcmVhdGVBZGQocHRyVG9JbnQsIG9mZnNldCwgInZlY3Rvcml6 ZWRfYWRkcmVzcyIsIGluc2VydEJlZm9yZSk7Ci0rI2lmIElTUENfTExWTV9WRVJTSU9OID49IElT UENfTExWTV8xMV8wCi0rICAgICAgICBsbHZtOjpUeXBlICpyZXRUeXBlID0gbGx2bTo6Rml4ZWRW ZWN0b3JUeXBlOjpnZXQoc2NhbGFyX3R5cGUsIHJlcVNpemUgLyB0X3NpemUpOwotKyNlbHNlCi0g ICAgICAgICBsbHZtOjpUeXBlICpyZXRUeXBlID0gbGx2bTo6VmVjdG9yVHlwZTo6Z2V0KHNjYWxh cl90eXBlLCByZXFTaXplIC8gdF9zaXplKTsKLSsjZW5kaWYKLSAgICAgICAgIGxsdm06OkZ1bmN0 aW9uICpmbiA9IGxsdm06OkdlblhJbnRyaW5zaWM6OmdldEdlblhEZWNsYXJhdGlvbigKLSAgICAg ICAgICAgICBtLT5tb2R1bGUsIGxsdm06OkdlblhJbnRyaW5zaWM6Omdlbnhfc3ZtX2Jsb2NrX2xk X3VuYWxpZ25lZCwge3JldFR5cGUsIGFkZHItPmdldFR5cGUoKX0pOwotICAgICAgICAgbGx2bTo6 SW5zdHJ1Y3Rpb24gKmxkID0gbGx2bTo6Q2FsbEluc3Q6OkNyZWF0ZShmbiwge2FkZHJ9LCAidmVj dG9yaXplZF9sZCIsIGluc2VydEJlZm9yZSk7Ci0gCi0gICAgICAgICBpZiAobG9hZGluZ1B0cikg ewotICAgICAgICAgICAgIC8vIENhc3QgaW50IHRvIHB0ciB2aWEgaW50dG9wdHIKLSsjaWYgSVNQ Q19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzExXzAKLSsgICAgICAgICAgICBsZCA9IG5ldyBs bHZtOjpJbnRUb1B0ckluc3QobGQsIGxsdm06OkZpeGVkVmVjdG9yVHlwZTo6Z2V0KG9yaWdpbmFs VHlwZSwgcmVxU2l6ZSAvIHRfc2l6ZSksCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICJ2ZWN0b3JpemVkX2ludHRvcHRyIiwgaW5zZXJ0QmVmb3JlKTsKLSsjZWxzZQot ICAgICAgICAgICAgIGxkID0gbmV3IGxsdm06OkludFRvUHRySW5zdChsZCwgbGx2bTo6VmVjdG9y VHlwZTo6Z2V0KG9yaWdpbmFsVHlwZSwgcmVxU2l6ZSAvIHRfc2l6ZSksCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ2ZWN0b3JpemVkX2ludHRvcHRyIiwgaW5zZXJ0 QmVmb3JlKTsKLSsjZW5kaWYKLSAgICAgICAgIH0KLSAKLSAgICAgICAgIC8vIFNjYWxhciBleHRy YWN0cyBmb3IgYWxsIGxvYWRlZCBlbGVtZW50cwotQEAgLTYxNjAsMTkgKzYxNzMsMzQgQEAgYm9v bCBSZXBsYWNlTExWTUludHJpbnNpY3M6OnJ1bk9uQmFzaWNCbG9jayhsbHZtOjpCYXNpY0Jsb2Nr ICZiYikgewotICAgICAgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmluc3QgPSAmKkk7Ci0gICAgICAg ICBpZiAobGx2bTo6Q2FsbEluc3QgKmNpID0gbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6Q2FsbEluc3Q+ KGluc3QpKSB7Ci0gICAgICAgICAgICAgbGx2bTo6RnVuY3Rpb24gKmZ1bmMgPSBjaS0+Z2V0Q2Fs bGVkRnVuY3Rpb24oKTsKLS0gICAgICAgICAgICBpZiAoZnVuYyAmJiBmdW5jLT5nZXROYW1lKCkg PT0gImxsdm0udHJhcCIpIHsKLSsgICAgICAgICAgICBpZiAoZnVuYyAmJiBmdW5jLT5nZXROYW1l KCkuZXF1YWxzKCJsbHZtLnRyYXAiKSkgewotICAgICAgICAgICAgICAgICBsbHZtOjpUeXBlICph cmdUeXBlc1tdID0ge0xMVk1UeXBlczo6SW50MVZlY3RvclR5cGUsIExMVk1UeXBlczo6SW50MTZW ZWN0b3JUeXBlfTsKLSAgICAgICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24gb2YgcGFyYW1ldGVy cyBmb3IgZ2VueF9yYXdfc2VuZF9ub3Jlc3VsdCBjYW4gYmUgZm91bmQgaW4gdGFyZ2V0LWdlbngu bGwKLSAgICAgICAgICAgICAgICAgYXV0byBGbiA9ICtsbHZtOjpHZW5YSW50cmluc2ljOjpnZXRH ZW5YRGVjbGFyYXRpb24oCi0gICAgICAgICAgICAgICAgICAgICBtLT5tb2R1bGUsIGxsdm06Okdl blhJbnRyaW5zaWM6OmdlbnhfcmF3X3NlbmRfbm9yZXN1bHQsIGFyZ1R5cGVzKTsKLSAgICAgICAg ICAgICAgICAgbGx2bTo6U21hbGxWZWN0b3I8bGx2bTo6VmFsdWUgKiwgOD4gQXJnczsKLSAgICAg ICAgICAgICAgICAgQXJncy5wdXNoX2JhY2sobGx2bTo6Q29uc3RhbnRJbnQ6OmdldChMTFZNVHlw ZXM6OkludDMyVHlwZSwgMCkpOwotLSAgICAgICAgICAgICAgICBBcmdzLnB1c2hfYmFjayhsbHZt OjpDb25zdGFudFZlY3Rvcjo6Z2V0U3BsYXQoZy0+dGFyZ2V0LT5nZXROYXRpdmVWZWN0b3JXaWR0 aCgpLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgbGx2bTo6Q29uc3RhbnRJbnQ6OmdldFRydWUoKmctPmN0eCkpKTsKLSsgICAg ICAgICAgICAgICAgQXJncy5wdXNoX2JhY2sobGx2bTo6Q29uc3RhbnRWZWN0b3I6OmdldFNwbGF0 KAotKyNpZiBJU1BDX0xMVk1fVkVSU0lPTiA8IElTUENfTExWTV8xMV8wCi0rICAgICAgICAgICAg ICAgICAgICBnLT50YXJnZXQtPmdldE5hdGl2ZVZlY3RvcldpZHRoKCksCi0rI2VsaWYgSVNQQ19M TFZNX1ZFUlNJT04gPT0gSVNQQ19MTFZNXzExXzAKLSsgICAgICAgICAgICAgICAgICAgIHtzdGF0 aWNfY2FzdDx1bnNpZ25lZCBpbnQ+KGctPnRhcmdldC0+Z2V0TmF0aXZlVmVjdG9yV2lkdGgoKSks IGZhbHNlfSwKLSsjZWxzZSAvLyBMTFZNIDEyLjArCi0rICAgICAgICAgICAgICAgICAgICBsbHZt OjpFbGVtZW50Q291bnQ6OmdldChzdGF0aWNfY2FzdDx1bnNpZ25lZCBpbnQ+KGctPnRhcmdldC0+ Z2V0TmF0aXZlVmVjdG9yV2lkdGgoKSksIGZhbHNlKSwKLSsjZW5kaWYKLSsgICAgICAgICAgICAg ICAgICAgIGxsdm06OkNvbnN0YW50SW50OjpnZXRUcnVlKCpnLT5jdHgpKSk7Ci0rCi0gICAgICAg ICAgICAgICAgIEFyZ3MucHVzaF9iYWNrKGxsdm06OkNvbnN0YW50SW50OjpnZXQoTExWTVR5cGVz OjpJbnQzMlR5cGUsIDM5KSk7Ci0gICAgICAgICAgICAgICAgIEFyZ3MucHVzaF9iYWNrKGxsdm06 OkNvbnN0YW50SW50OjpnZXQoTExWTVR5cGVzOjpJbnQzMlR5cGUsIDMzNTU0NDQ4KSk7Ci0gICAg ICAgICAgICAgICAgIGxsdm06OlZhbHVlICp6ZXJvTWFzayA9IGxsdm06OkNvbnN0YW50VmVjdG9y OjpnZXRTcGxhdCgKLS0gICAgICAgICAgICAgICAgICAgIGctPnRhcmdldC0+Z2V0TmF0aXZlVmVj dG9yV2lkdGgoKSwgbGx2bTo6Q29uc3RhbnQ6OmdldE51bGxWYWx1ZShsbHZtOjpUeXBlOjpnZXRJ bnQxNlR5KCpnLT5jdHgpKSk7Ci0rI2lmIElTUENfTExWTV9WRVJTSU9OIDwgSVNQQ19MTFZNXzEx XzAKLSsgICAgICAgICAgICAgICAgICAgIGctPnRhcmdldC0+Z2V0TmF0aXZlVmVjdG9yV2lkdGgo KSwKLSsjZWxpZiBJU1BDX0xMVk1fVkVSU0lPTiA9PSBJU1BDX0xMVk1fMTFfMAotKyAgICAgICAg ICAgICAgICAgICAge3N0YXRpY19jYXN0PHVuc2lnbmVkIGludD4oZy0+dGFyZ2V0LT5nZXROYXRp dmVWZWN0b3JXaWR0aCgpKSwgZmFsc2V9LAotKyNlbHNlIC8vIExMVk0gMTIuMCsKLSsgICAgICAg ICAgICAgICAgICAgIGxsdm06OkVsZW1lbnRDb3VudDo6Z2V0KHN0YXRpY19jYXN0PHVuc2lnbmVk IGludD4oZy0+dGFyZ2V0LT5nZXROYXRpdmVWZWN0b3JXaWR0aCgpKSwgZmFsc2UpLAotKyNlbmRp ZgotKyAgICAgICAgICAgICAgICAgICAgbGx2bTo6Q29uc3RhbnQ6OmdldE51bGxWYWx1ZShsbHZt OjpUeXBlOjpnZXRJbnQxNlR5KCpnLT5jdHgpKSk7Ci0gICAgICAgICAgICAgICAgIEFyZ3MucHVz aF9iYWNrKHplcm9NYXNrKTsKLSAKLSAgICAgICAgICAgICAgICAgbGx2bTo6SW5zdHJ1Y3Rpb24g Km5ld0luc3QgPSBsbHZtOjpDYWxsSW5zdDo6Q3JlYXRlKEZuLCBBcmdzLCBjaS0+Z2V0TmFtZSgp KTsKLUBAIC02MTgxLDcgKzYyMDksNyBAQCBib29sIFJlcGxhY2VMTFZNSW50cmluc2ljczo6cnVu T25CYXNpY0Jsb2NrKGxsdm06OkJhc2ljQmxvY2sgJmJiKSB7Ci0gICAgICAgICAgICAgICAgICAg ICBtb2RpZmllZEFueSA9IHRydWU7Ci0gICAgICAgICAgICAgICAgICAgICBnb3RvIHJlc3RhcnQ7 Ci0gICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICB9IGVsc2UgaWYgKGZ1bmMgJiYgZnVu Yy0+Z2V0TmFtZSgpID09ICJsbHZtLmFzc3VtZSIpIHsKLSsgICAgICAgICAgICB9IGVsc2UgaWYg KGZ1bmMgJiYgZnVuYy0+Z2V0TmFtZSgpLmVxdWFscygibGx2bS5hc3N1bWUiKSkgewotICAgICAg ICAgICAgICAgICBjaS0+ZXJhc2VGcm9tUGFyZW50KCk7Ci0gICAgICAgICAgICAgICAgIG1vZGlm aWVkQW55ID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgZ290byByZXN0YXJ0OwotQEAgLTYzMzUs NyArNjM2Myw3IEBAIGJvb2wgQ2hlY2tVbnN1cHBvcnRlZEluc3RzOjpydW5PbkJhc2ljQmxvY2so bGx2bTo6QmFzaWNCbG9jayAmYmIpIHsKLSAgICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAg ICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB1bnN1cHBvcnRlZEZ1bmNzLnNpemUoKTsgaSsr KSB7Ci0gICAgICAgICAgICAgICAgIHN0ZDo6c21hdGNoIG1hdGNoOwotLSAgICAgICAgICAgICAg ICBzdGQ6OnN0cmluZyBmdW5jTmFtZSA9IGZ1bmMtPmdldE5hbWUoKTsKLSsgICAgICAgICAgICAg ICAgc3RkOjpzdHJpbmcgZnVuY05hbWUgPSBmdW5jLT5nZXROYW1lKCkuc3RyKCk7Ci0gICAgICAg ICAgICAgICAgIGlmIChzdGQ6OnJlZ2V4X21hdGNoKGZ1bmNOYW1lLCBtYXRjaCwgdW5zdXBwb3J0 ZWRGdW5jc1tpXSkpIHsKLSAgICAgICAgICAgICAgICAgICAgIC8vIFdlIGZvdW5kIHVuc3VwcG9y dGVkIGZ1bmN0aW9uLiBHZW5lcmF0ZSBlcnJvciBhbmQgc3RvcCBjb21waWxhdGlvbi4KLSAgICAg ICAgICAgICAgICAgICAgIFNvdXJjZVBvcyBwb3M7Ci1AQCAtNjQxOCwxMiArNjQ0NiwxNCBAQCBi b29sIE1hbmdsZU9wZW5DTEJ1aWx0aW5zOjpydW5PbkJhc2ljQmxvY2sobGx2bTo6QmFzaWNCbG9j ayAmYmIpIHsKLSAgICAgICAgICAgICBpZiAoZnVuYy0+Z2V0TmFtZSgpLnN0YXJ0c3dpdGgoIl9f c3BpcnZfb2NsIikpIHsKLSAgICAgICAgICAgICAgICAgc3RkOjpzdHJpbmcgbWFuZ2xlZE5hbWU7 Ci0gICAgICAgICAgICAgICAgIGxsdm06OlR5cGUgKnJldFR5cGUgPSBmdW5jLT5nZXRSZXR1cm5U eXBlKCk7Ci0tICAgICAgICAgICAgICAgIHN0ZDo6c3RyaW5nIGZ1bmNOYW1lID0gZnVuYy0+Z2V0 TmFtZSgpOwotKyAgICAgICAgICAgICAgICBzdGQ6OnN0cmluZyBmdW5jTmFtZSA9IGZ1bmMtPmdl dE5hbWUoKS5zdHIoKTsKLSAgICAgICAgICAgICAgICAgc3RkOjp2ZWN0b3I8bGx2bTo6VHlwZSAq PiBBcmdUeTsKLSAgICAgICAgICAgICAgICAgLy8gc3BpcnYgT3BlbkNMIGJ1aWx0aW5zIGFyZSB1 c2VkIGZvciBkb3VibGUgdHlwZXMgb25seQotLSAgICAgICAgICAgICAgICBBc3NlcnQocmV0VHlw ZS0+aXNWZWN0b3JUeSgpICYmIHJldFR5cGUtPmdldFZlY3RvckVsZW1lbnRUeXBlKCktPmlzRG91 YmxlVHkoKSB8fAotKyAgICAgICAgICAgICAgICBBc3NlcnQocmV0VHlwZS0+aXNWZWN0b3JUeSgp ICYmCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6VmVj dG9yVHlwZT4ocmV0VHlwZSktPmdldEVsZW1lbnRUeXBlKCktPmlzRG91YmxlVHkoKSB8fAotICAg ICAgICAgICAgICAgICAgICAgICAgcmV0VHlwZS0+aXNTaW5nbGVWYWx1ZVR5cGUoKSAmJiByZXRU eXBlLT5pc0RvdWJsZVR5KCkpOwotLSAgICAgICAgICAgICAgICBpZiAocmV0VHlwZS0+aXNWZWN0 b3JUeSgpICYmIHJldFR5cGUtPmdldFZlY3RvckVsZW1lbnRUeXBlKCktPmlzRG91YmxlVHkoKSkg ewotKyAgICAgICAgICAgICAgICBpZiAocmV0VHlwZS0+aXNWZWN0b3JUeSgpICYmCi0rICAgICAg ICAgICAgICAgICAgICBsbHZtOjpkeW5fY2FzdDxsbHZtOjpWZWN0b3JUeXBlPihyZXRUeXBlKS0+ Z2V0RWxlbWVudFR5cGUoKS0+aXNEb3VibGVUeSgpKSB7Ci0gICAgICAgICAgICAgICAgICAgICBB cmdUeS5wdXNoX2JhY2soTExWTVR5cGVzOjpEb3VibGVWZWN0b3JUeXBlKTsKLSAgICAgICAgICAg ICAgICAgICAgIC8vIF9EdldJRFRIIHN1ZmZpeCBpcyB1c2VkIGluIHRhcmdldCBmaWxlIHRvIGRp ZmZlcmVudGlhdGUgc2NhbGFyCi0gICAgICAgICAgICAgICAgICAgICAvLyBhbmQgdmVjdG9yIHZl cnNpb25zIG9mIGludHJpbnNpY3MuIEhlcmUgd2UgcmVtb3ZlIHRoaXMKLUBAIC02NTExLDggKzY1 NDEsMTUgQEAgbGx2bTo6VmFsdWUgKkZpeEFkZHJlc3NTcGFjZTo6Y2FsY3VsYXRlR2F0aGVyU2Nh dHRlckFkZHJlc3MobGx2bTo6VmFsdWUgKlB0ciwgbGwKLSAKLSAgICAgLy8gQ2FzdCBvZmZzZXRz IHRvIGludDY0Ci0gICAgIE9mZnNldHMgPSBuZXcgbGx2bTo6WkV4dEluc3QoCi0rI2lmIElTUENf TExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMV8wCi0rICAgICAgICBPZmZzZXRzLAotKyAgICAg ICAgbGx2bTo6Rml4ZWRWZWN0b3JUeXBlOjpnZXQoTExWTVR5cGVzOjpJbnQ2NFR5cGUsCi0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpkeW5fY2FzdDxsbHZtOjpWZWN0 b3JUeXBlPihPZmZzZXRzLT5nZXRUeXBlKCkpLT5nZXROdW1FbGVtZW50cygpKSwKLSsgICAgICAg ICJzdm1fb2Zmc2V0X3pleHQiLCBJbnNlcnRCZWZvcmUpOwotKyNlbHNlCi0gICAgICAgICBPZmZz ZXRzLCBsbHZtOjpWZWN0b3JUeXBlOjpnZXQoTExWTVR5cGVzOjpJbnQ2NFR5cGUsIE9mZnNldHMt PmdldFR5cGUoKS0+Z2V0VmVjdG9yTnVtRWxlbWVudHMoKSksCi0gICAgICAgICAic3ZtX29mZnNl dF96ZXh0IiwgSW5zZXJ0QmVmb3JlKTsKLSsjZW5kaWYKLSAKLSAgICAgaWYgKCFsbHZtOjppc2E8 bGx2bTo6Q29uc3RhbnRQb2ludGVyTnVsbD4oUHRyKSkgewotICAgICAgICAgLy8gQ2FzdCBwdHIg dG8gaW50NjQKLUBAIC02NTIwLDEzICs2NTU3LDMxIEBAIGxsdm06OlZhbHVlICpGaXhBZGRyZXNz U3BhY2U6OmNhbGN1bGF0ZUdhdGhlclNjYXR0ZXJBZGRyZXNzKGxsdm06OlZhbHVlICpQdHIsIGxs Ci0gCi0gICAgICAgICAvLyBWZWN0b3JpemUgcHRyCi0gICAgICAgICBsbHZtOjpWYWx1ZSAqdW5k ZWZJbnNlcnRWYWx1ZSA9Ci0rI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMV8w Ci0rICAgICAgICAgICAgbGx2bTo6VW5kZWZWYWx1ZTo6Z2V0KGxsdm06OkZpeGVkVmVjdG9yVHlw ZTo6Z2V0KAotKyAgICAgICAgICAgICAgICBMTFZNVHlwZXM6OkludDY0VHlwZSwgbGx2bTo6ZHlu X2Nhc3Q8bGx2bTo6VmVjdG9yVHlwZT4oYWRkcmVzc1R5cGUpLT5nZXROdW1FbGVtZW50cygpKSk7 Ci0rI2Vsc2UKLSAgICAgICAgICAgICBsbHZtOjpVbmRlZlZhbHVlOjpnZXQobGx2bTo6VmVjdG9y VHlwZTo6Z2V0KExMVk1UeXBlczo6SW50NjRUeXBlLCBhZGRyZXNzVHlwZS0+Z2V0VmVjdG9yTnVt RWxlbWVudHMoKSkpOwotKyNlbmRpZgotICAgICAgICAgYWRkcmVzcyA9IGxsdm06Okluc2VydEVs ZW1lbnRJbnN0OjpDcmVhdGUodW5kZWZJbnNlcnRWYWx1ZSwgYWRkcmVzcywgTExWTUludDMyKDAp LCAic3ZtX3B0cl9pZWkiLCBJbnNlcnRCZWZvcmUpOwotICAgICAgICAgbGx2bTo6Q29uc3RhbnQg Knplcm9WZWMgPSBsbHZtOjpDb25zdGFudFZlY3Rvcjo6Z2V0U3BsYXQoCi0rI2lmIElTUENfTExW TV9WRVJTSU9OIDwgSVNQQ19MTFZNXzExXzAKLSAgICAgICAgICAgICBhZGRyZXNzVHlwZS0+Z2V0 VmVjdG9yTnVtRWxlbWVudHMoKSwKLSsjZWxpZiBJU1BDX0xMVk1fVkVSU0lPTiA9PSBJU1BDX0xM Vk1fMTFfMAotKyAgICAgICAgICAgIHtsbHZtOjpkeW5fY2FzdDxsbHZtOjpWZWN0b3JUeXBlPihh ZGRyZXNzVHlwZSktPmdldE51bUVsZW1lbnRzKCksIGZhbHNlfSwKLSsjZWxzZQotKyAgICAgICAg bGx2bTo6RWxlbWVudENvdW50OjpnZXQoCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBsbHZtOjpkeW5fY2FzdDxsbHZtOjpGaXhlZFZlY3RvclR5cGU+KGFkZHJlc3NUeXBlLT5nZXRO dW1FbGVtZW50cygpLCBmYWxzZSksCi0rI2VuZGlmCi0gICAgICAgICAgICAgbGx2bTo6Q29uc3Rh bnQ6OmdldE51bGxWYWx1ZShsbHZtOjpUeXBlOjpnZXRJbnQzMlR5KEluc2VydEJlZm9yZS0+Z2V0 Q29udGV4dCgpKSkpOwotKwotICAgICAgICAgbGx2bTo6VmFsdWUgKnVuZGVmU2h1ZmZsZVZhbHVl ID0KLSsjaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzExXzAKLSsgICAgICAgICAg ICBsbHZtOjpVbmRlZlZhbHVlOjpnZXQobGx2bTo6Rml4ZWRWZWN0b3JUeXBlOjpnZXQoCi0rICAg ICAgICAgICAgICAgIExMVk1UeXBlczo6SW50NjRUeXBlLCBsbHZtOjpkeW5fY2FzdDxsbHZtOjpW ZWN0b3JUeXBlPihhZGRyZXNzVHlwZSktPmdldE51bUVsZW1lbnRzKCkpKTsKLSsjZWxzZQotICAg ICAgICAgICAgIGxsdm06OlVuZGVmVmFsdWU6OmdldChsbHZtOjpWZWN0b3JUeXBlOjpnZXQoTExW TVR5cGVzOjpJbnQ2NFR5cGUsIGFkZHJlc3NUeXBlLT5nZXRWZWN0b3JOdW1FbGVtZW50cygpKSk7 Ci0rI2VuZGlmCi0gICAgICAgICBhZGRyZXNzID0gbmV3IGxsdm06OlNodWZmbGVWZWN0b3JJbnN0 KGFkZHJlc3MsIHVuZGVmU2h1ZmZsZVZhbHVlLCB6ZXJvVmVjLCAic3ZtX3B0cl9zdmkiLCBJbnNl cnRCZWZvcmUpOwotIAotICAgICAgICAgLy8gQ2FsY3VsYXRlIGFkZHJlc3MKLUBAIC02NTUzLDkg KzY2MDgsMTIgQEAgbGx2bTo6SW5zdHJ1Y3Rpb24gKkZpeEFkZHJlc3NTcGFjZTo6cHJvY2Vzc1Zl Y3RvckxvYWQobGx2bTo6TG9hZEluc3QgKkxJKSB7Ci0gICAgIGlmIChyZXRUeXBlLT5nZXRTY2Fs YXJUeXBlKCktPmlzUG9pbnRlclR5KCkpIHsKLSAgICAgICAgIGlzUHRyTG9hZCA9IHRydWU7Ci0g ICAgICAgICBhdXRvIHNjYWxhclR5cGUgPSBnLT50YXJnZXQtPmlzMzJCaXQoKSA/IExMVk1UeXBl czo6SW50MzJUeXBlIDogTExWTVR5cGVzOjpJbnQ2NFR5cGU7Ci0rI2lmIElTUENfTExWTV9WRVJT SU9OID49IElTUENfTExWTV8xMV8wCi0rICAgICAgICByZXRUeXBlID0gbGx2bTo6Rml4ZWRWZWN0 b3JUeXBlOjpnZXQoc2NhbGFyVHlwZSwgbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6VmVjdG9yVHlwZT4o cmV0VHlwZSktPmdldE51bUVsZW1lbnRzKCkpOwotKyNlbHNlCi0gICAgICAgICByZXRUeXBlID0g bGx2bTo6VmVjdG9yVHlwZTo6Z2V0KHNjYWxhclR5cGUsIHJldFR5cGUtPmdldFZlY3Rvck51bUVs ZW1lbnRzKCkpOwotKyNlbmRpZgotICAgICB9Ci0tCi0gICAgIGxsdm06Okluc3RydWN0aW9uICpy ZXMgPSBsR2VuWExvYWRJbnN0KHB0ciwgcmV0VHlwZSwgbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6SW5z dHJ1Y3Rpb24+KExJKSk7Ci0gICAgIEFzc2VydChyZXMpOwotIAotQEAgLTY1ODAsMTEgKzY2Mzgs MTYgQEAgbGx2bTo6SW5zdHJ1Y3Rpb24gKkZpeEFkZHJlc3NTcGFjZTo6cHJvY2Vzc1NWTVZlY3Rv ckxvYWQobGx2bTo6SW5zdHJ1Y3Rpb24gKkNJKQotICAgICBwdHIgPSBuZXcgbGx2bTo6SW50VG9Q dHJJbnN0KHB0ciwgbGx2bTo6UG9pbnRlclR5cGU6OmdldChyZXRUeXBlLCAwKSwgQ0ktPmdldE5h bWUoKSArICJfaW50dG9wdHIiLCBDSSk7Ci0gICAgIGxsdm06Okluc3RydWN0aW9uICpsb2FkSW5z dCA9IE5VTEw7Ci0gI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMV8wCi0tICAg IGxvYWRJbnN0ID0gbmV3IGxsdm06OkxvYWRJbnN0KGxsdm06OmR5bl9jYXN0PGxsdm06OlBvaW50 ZXJUeXBlPihwdHItPmdldFR5cGUoKSktPmdldFBvaW50ZXJFbGVtZW50VHlwZSgpLCBsb2FkSW5z dCwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ0ktPmdldE5hbWUoKSwgKGxs dm06Okluc3RydWN0aW9uICopTlVMTCk7Ci0rICAgIGxvYWRJbnN0ID0gbmV3IGxsdm06OkxvYWRJ bnN0KGxsdm06OmR5bl9jYXN0PGxsdm06OlBvaW50ZXJUeXBlPihwdHItPmdldFR5cGUoKSktPmdl dFBvaW50ZXJFbGVtZW50VHlwZSgpLCBwdHIsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIENJLT5nZXROYW1lKCksIGZhbHNlIC8qIG5vdCB2b2xhdGlsZSAqLywKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6TWF5YmVBbGlnbihnLT50YXJnZXQtPmdl dE5hdGl2ZVZlY3RvckFsaWdubWVudCgpKS52YWx1ZU9yT25lKCksCi0rICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIChsbHZtOjpJbnN0cnVjdGlvbiAqKU5VTEwpOwotICNlbHNlCi0t ICAgIGxvYWRJbnN0ID0gbmV3IGxsdm06OkxvYWRJbnN0KHB0ciwgQ0ktPmdldE5hbWUoKSwgKGxs dm06Okluc3RydWN0aW9uICopTlVMTCk7Ci0rICAgIGxvYWRJbnN0ID0gbmV3IGxsdm06OkxvYWRJ bnN0KHB0ciwgQ0ktPmdldE5hbWUoKSwgZmFsc2UsCi0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGxsdm06Ok1heWJlQWxpZ24oZy0+dGFyZ2V0LT5nZXROYXRpdmVWZWN0b3JBbGln bm1lbnQoKSkudmFsdWVPck9uZSgpLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAobGx2bTo6SW5zdHJ1Y3Rpb24gKilOVUxMKTsKLSAjZW5kaWYKLSsKLSAgICAgQXNzZXJ0KGxv YWRJbnN0KTsKLSAgICAgcmV0dXJuIGxvYWRJbnN0OwotIH0KLUBAIC02NjA2LDcgKzY2NjksMTEg QEAgbGx2bTo6SW5zdHJ1Y3Rpb24gKkZpeEFkZHJlc3NTcGFjZTo6cHJvY2Vzc1ZlY3RvclN0b3Jl KGxsdm06OlN0b3JlSW5zdCAqU0kpIHsKLSAgICAgLy8gTm90ZTogaXQgZG9lc24ndCBsb29rIGxp a2UgYSBub3JtYWwgY2FzZSBmb3IgR2VuWCB0YXJnZXQKLSAgICAgaWYgKHZhbFR5cGUtPmdldFNj YWxhclR5cGUoKS0+aXNQb2ludGVyVHkoKSkgewotICAgICAgICAgYXV0byBzY2FsYXJUeXBlID0g Zy0+dGFyZ2V0LT5pczMyQml0KCkgPyBMTFZNVHlwZXM6OkludDMyVHlwZSA6IExMVk1UeXBlczo6 SW50NjRUeXBlOwotKyNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTFfMAotKyAg ICAgICAgdmFsVHlwZSA9IGxsdm06OkZpeGVkVmVjdG9yVHlwZTo6Z2V0KHNjYWxhclR5cGUsIGxs dm06OmR5bl9jYXN0PGxsdm06OlZlY3RvclR5cGU+KHZhbFR5cGUpLT5nZXROdW1FbGVtZW50cygp KTsKLSsjZWxzZQotICAgICAgICAgdmFsVHlwZSA9IGxsdm06OlZlY3RvclR5cGU6OmdldChzY2Fs YXJUeXBlLCB2YWxUeXBlLT5nZXRWZWN0b3JOdW1FbGVtZW50cygpKTsKLSsjZW5kaWYKLSAgICAg ICAgIHZhbCA9IG5ldyBsbHZtOjpQdHJUb0ludEluc3QodmFsLCB2YWxUeXBlLCAic3ZtX3N0X3Zh bF9wdHJ0b2ludCIsIFNJKTsKLSAgICAgfQotIAotQEAgLTY2MzEsMTIgKzY2OTgsOCBAQCBsbHZt OjpJbnN0cnVjdGlvbiAqRml4QWRkcmVzc1NwYWNlOjpwcm9jZXNzU1ZNVmVjdG9yU3RvcmUobGx2 bTo6SW5zdHJ1Y3Rpb24gKkNJKQotICAgICBwdHIgPSBuZXcgbGx2bTo6SW50VG9QdHJJbnN0KHB0 ciwgbGx2bTo6UG9pbnRlclR5cGU6OmdldCh2YWxUeXBlLCAwKSwgQ0ktPmdldE5hbWUoKSArICJf aW50dG9wdHIiLCBDSSk7Ci0gCi0gICAgIGxsdm06Okluc3RydWN0aW9uICpzdG9yZUluc3QgPSBO VUxMOwotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTFfMAotLSAgICBsb2Fk SW5zdCA9IG5ldyBsbHZtOjpTdG9yZUluc3QodmFsLCBsbHZtOjpkeW5fY2FzdDxsbHZtOjpQb2lu dGVyVHlwZT4ocHRyLT5nZXRUeXBlKCkpLT5nZXRQb2ludGVyRWxlbWVudFR5cGUoKSwKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0b3JlSW5zdCwgQ0ktPmdldE5hbWUoKSwg KGxsdm06Okluc3RydWN0aW9uICopTlVMTCk7Ci0tI2Vsc2UKLS0gICAgc3RvcmVJbnN0ID0gbmV3 IGxsdm06OlN0b3JlSW5zdCh2YWwsIHB0ciwgKGxsdm06Okluc3RydWN0aW9uICopTlVMTCk7Ci0t I2VuZGlmCi0rICAgIHN0b3JlSW5zdCA9IG5ldyBsbHZtOjpTdG9yZUluc3QodmFsLCBwdHIsIChs bHZtOjpJbnN0cnVjdGlvbiAqKU5VTEwsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgbGx2bTo6TWF5YmVBbGlnbihnLT50YXJnZXQtPmdldE5hdGl2ZVZlY3RvckFsaWdubWVu dCgpKS52YWx1ZU9yT25lKCkpOwotICAgICBBc3NlcnQoc3RvcmVJbnN0KTsKLSAgICAgcmV0dXJu IHN0b3JlSW5zdDsKLSB9Ci1AQCAtNjY0NSwxNSArNjcwOCwxOCBAQCBsbHZtOjpJbnN0cnVjdGlv biAqRml4QWRkcmVzc1NwYWNlOjpjcmVhdGVJbnQ4V3JSZWdpb24obGx2bTo6VmFsdWUgKlZhbCwg bGx2bTo6VgotICAgICBpbnQgd2lkdGggPSBnLT50YXJnZXQtPmdldFZlY3RvcldpZHRoKCk7Ci0g Ci0gICAgIGxsdm06OlZhbHVlICpBcmdzWzhdOwotLQotKyNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+ PSBJU1BDX0xMVk1fMTFfMAotKyAgICBBcmdzWzBdID0gbGx2bTo6VW5kZWZWYWx1ZTo6Z2V0KGxs dm06OkZpeGVkVmVjdG9yVHlwZTo6Z2V0KExMVk1UeXBlczo6SW50OFR5cGUsIHdpZHRoICogNCkp OyAvLyBvbGQgdmFsdWUKLSsjZWxzZQotICAgICBBcmdzWzBdID0gbGx2bTo6VW5kZWZWYWx1ZTo6 Z2V0KGxsdm06OlZlY3RvclR5cGU6OmdldChMTFZNVHlwZXM6OkludDhUeXBlLCB3aWR0aCAqIDQp KTsgLy8gb2xkIHZhbHVlCi0tICAgIEFyZ3NbMV0gPSBWYWw7ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB2 YWx1ZSB0byBzdG9yZQotLSAgICBBcmdzWzJdID0gbGx2bTo6Q29uc3RhbnRJbnQ6OmdldChMTFZN VHlwZXM6OkludDMyVHlwZSwgMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdnN0 cmlkZQotLSAgICBBcmdzWzNdID0gbGx2bTo6Q29uc3RhbnRJbnQ6OmdldChMTFZNVHlwZXM6Oklu dDMyVHlwZSwgd2lkdGgpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2lkdGgKLS0gICAg QXJnc1s0XSA9IGxsdm06OkNvbnN0YW50SW50OjpnZXQoTExWTVR5cGVzOjpJbnQzMlR5cGUsIDQp OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHN0cmlkZQotLSAgICBBcmdzWzVdID0g bGx2bTo6Q29uc3RhbnRJbnQ6OmdldChMTFZNVHlwZXM6OkludDE2VHlwZSwgMCk7ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgLy8gb2Zmc2V0cwotLSAgICBBcmdzWzZdID0gbGx2bTo6Q29u c3RhbnRJbnQ6OmdldChMTFZNVHlwZXM6OkludDMyVHlwZSwgMCk7ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgLy8gcGFyZW50IHdpZHRoIChpZ25vcmVkKQotLSAgICBBcmdzWzddID0gTWFz azsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgLy8gbWFzawotKyNlbmRpZgotKyAgICBBcmdzWzFdID0gVmFsOyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB2YWx1ZSB0 byBzdG9yZQotKyAgICBBcmdzWzJdID0gbGx2bTo6Q29uc3RhbnRJbnQ6OmdldChMTFZNVHlwZXM6 OkludDMyVHlwZSwgMCk7ICAgICAvLyB2c3RyaWRlCi0rICAgIEFyZ3NbM10gPSBsbHZtOjpDb25z dGFudEludDo6Z2V0KExMVk1UeXBlczo6SW50MzJUeXBlLCB3aWR0aCk7IC8vIHdpZHRoCi0rICAg IEFyZ3NbNF0gPSBsbHZtOjpDb25zdGFudEludDo6Z2V0KExMVk1UeXBlczo6SW50MzJUeXBlLCA0 KTsgICAgIC8vIHN0cmlkZQotKyAgICBBcmdzWzVdID0gbGx2bTo6Q29uc3RhbnRJbnQ6OmdldChM TFZNVHlwZXM6OkludDE2VHlwZSwgMCk7ICAgICAvLyBvZmZzZXRzCi0rICAgIEFyZ3NbNl0gPSBs bHZtOjpDb25zdGFudEludDo6Z2V0KExMVk1UeXBlczo6SW50MzJUeXBlLCAwKTsgICAgIC8vIHBh cmVudCB3aWR0aCAoaWdub3JlZCkKLSsgICAgQXJnc1s3XSA9IE1hc2s7ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbWFzawotIAotICAgICBsbHZtOjpU eXBlICpUeXNbNF07Ci0gCi1AQCAtNjcwOCw3ICs2Nzc0LDEyIEBAIGxsdm06Okluc3RydWN0aW9u ICpGaXhBZGRyZXNzU3BhY2U6OnByb2Nlc3NHYXRoZXJTY2F0dGVyUHJpdmF0ZShsbHZtOjpDYWxs SW5zdCAqCi0gICAgICAgICByZXR1cm4gTlVMTDsKLSAKLSAgICAgbGx2bTo6VmFsdWUgKmFkZHJl c3MgPSBjYWxjdWxhdGVHYXRoZXJTY2F0dGVyQWRkcmVzcyhwdHIsIG9mZnNldHMsIENJKTsKLSsj aWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzExXzAKLSsgICAgbGx2bTo6VHlwZSAq aThWZWNUeXBlID0gbGx2bTo6Rml4ZWRWZWN0b3JUeXBlOjpnZXQoTExWTVR5cGVzOjpJbnQ4VHlw ZSwgd2lkdGggKiA0KTsKLSsjZWxzZQotICAgICBsbHZtOjpUeXBlICppOFZlY1R5cGUgPSBsbHZt OjpWZWN0b3JUeXBlOjpnZXQoTExWTVR5cGVzOjpJbnQ4VHlwZSwgd2lkdGggKiA0KTsKLSsjZW5k aWYKLSsKLSAgICAgYm9vbCBpc0ludDggPSAodmFsdWUtPmdldFR5cGUoKS0+Z2V0U2NhbGFyVHlw ZSgpID09IExMVk1UeXBlczo6SW50OFR5cGUpOwotIAotICAgICBBc3NlcnQoYWRkcmVzcyAmJiAi QmFkIGdhdGhlci9zY2F0dGVyIGFkZHJlc3MhIik7CmRpZmYgLS1naXQgYS9zcmNwa2dzL2lzcGMv cGF0Y2hlcy9sbHZtMTItMDA2LnBhdGNoIGIvc3JjcGtncy9pc3BjL3BhdGNoZXMvbGx2bTEyLTAw Ni5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTgyOWVhNDgzOTFlLi4wMDAw MDAwMDAwMDAKLS0tIGEvc3JjcGtncy9pc3BjL3BhdGNoZXMvbGx2bTEyLTAwNi5wYXRjaAorKysg L2Rldi9udWxsCkBAIC0xLDEyNiArMCwwIEBACi1Gcm9tIGJiM2Y0OTNkMWZiZDQ1Yzc5ZTFkOWRl ZTY3YTA0MzBiYTMxM2VhYWQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBBcmluYSBO ZXNobHlhZXZhIDxhcmluYS5uZXNobHlhZXZhQGludGVsLmNvbT4KLURhdGU6IFR1ZSwgMTkgSmFu IDIwMjEgMTE6MDc6MzMgLTA4MDAKLVN1YmplY3Q6IFtQQVRDSF0gRml4ZWQgaWZkZWZzIGZvciBM TFZNXzExCi0KLS0tLQotIHNyYy9jdHguY3BwIHwgIDYgKysrLS0tCi0gc3JjL29wdC5jcHAgfCAx OCArKysrKysrKystLS0tLS0tLS0KLSAyIGZpbGVzIGNoYW5nZWQsIDEyIGluc2VydGlvbnMoKyks IDEyIGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvc3JjL2N0eC5jcHAgYi9zcmMvY3R4LmNw cAotaW5kZXggMmE3MmU2ODM3Li41MjdhMDJmMzAgMTAwNjQ0Ci0tLS0gYS9zcmMvY3R4LmNwcAot KysrIGIvc3JjL2N0eC5jcHAKLUBAIC0xNjkxLDcgKzE2OTEsNyBAQCBsbHZtOjpWYWx1ZSAqRnVu Y3Rpb25FbWl0Q29udGV4dDo6U21lYXJVbmlmb3JtKGxsdm06OlZhbHVlICp2YWx1ZSwgY29uc3Qg bGx2bTo6VAotICAgICBpZiAobGx2bTo6Q29uc3RhbnQgKmNvbnN0X3ZhbCA9IGxsdm06OmR5bl9j YXN0PGxsdm06OkNvbnN0YW50Pih2YWx1ZSkpIHsKLSAjaWYgSVNQQ19MTFZNX1ZFUlNJT04gPCBJ U1BDX0xMVk1fMTFfMAotICAgICAgICAgcmV0ID0gbGx2bTo6Q29uc3RhbnRWZWN0b3I6OmdldFNw bGF0KGctPnRhcmdldC0+Z2V0VmVjdG9yV2lkdGgoKSwgY29uc3RfdmFsKTsKLS0jZWxpZiBJU1BD X0xMVk1fVkVSU0lPTiA9PSBJU1BDX0xMVk1fMTFfMAotKyNlbGlmIElTUENfTExWTV9WRVJTSU9O IDwgSVNQQ19MTFZNXzEyXzAKLSAgICAgICAgIHJldCA9Ci0gICAgICAgICAgICAgbGx2bTo6Q29u c3RhbnRWZWN0b3I6OmdldFNwbGF0KHtzdGF0aWNfY2FzdDx1bnNpZ25lZCBpbnQ+KGctPnRhcmdl dC0+Z2V0VmVjdG9yV2lkdGgoKSksIGZhbHNlfSwgY29uc3RfdmFsKTsKLSAjZWxzZSAvLyBMTFZN IDEyLjArCi1AQCAtMzE0OCw3ICszMTQ4LDcgQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENv bnRleHQ6OkJyb2FkY2FzdFZhbHVlKGxsdm06OlZhbHVlICp2LCBsbHZtOjpUeXBlICp2ZWMKLSAj aWYgSVNQQ19MTFZNX1ZFUlNJT04gPCBJU1BDX0xMVk1fMTFfMAotICAgICBsbHZtOjpDb25zdGFu dCAqemVyb1ZlYyA9IGxsdm06OkNvbnN0YW50VmVjdG9yOjpnZXRTcGxhdCgKLSAgICAgICAgIHZl Y1R5cGUtPmdldFZlY3Rvck51bUVsZW1lbnRzKCksIGxsdm06OkNvbnN0YW50OjpnZXROdWxsVmFs dWUobGx2bTo6VHlwZTo6Z2V0SW50MzJUeSgqZy0+Y3R4KSkpOwotLSNlbGlmIElTUENfTExWTV9W RVJTSU9OID09IElTUENfTExWTV8xMV8wCi0rI2VsaWYgSVNQQ19MTFZNX1ZFUlNJT04gPCBJU1BD X0xMVk1fMTJfMAotICAgICBsbHZtOjpDb25zdGFudCAqemVyb1ZlYyA9Ci0gICAgICAgICBsbHZt OjpDb25zdGFudFZlY3Rvcjo6Z2V0U3BsYXQoe3N0YXRpY19jYXN0PHVuc2lnbmVkIGludD4odHkt PmdldE51bUVsZW1lbnRzKCkpLCBmYWxzZX0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgbGx2bTo6Q29uc3RhbnQ6OmdldE51bGxWYWx1ZShsbHZtOjpUeXBlOjpnZXRJ bnQzMlR5KCpnLT5jdHgpKSk7Ci1AQCAtMzY4OCw3ICszNjg4LDcgQEAgbGx2bTo6VmFsdWUgKkZ1 bmN0aW9uRW1pdENvbnRleHQ6OkdlblhTaW1kQ0ZQcmVkaWNhdGUobGx2bTo6VmFsdWUgKnZhbHVl LCBsbHZtOjoKLSAjaWYgSVNQQ19MTFZNX1ZFUlNJT04gPCBJU1BDX0xMVk1fMTFfMAotICAgICAg ICAgZGVmYXVsdHMgPSBsbHZtOjpDb25zdGFudFZlY3Rvcjo6Z2V0U3BsYXQodnQtPmdldFZlY3Rv ck51bUVsZW1lbnRzKCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBsbHZtOjpDb25zdGFudDo6Z2V0TnVsbFZhbHVlKHZ0LT5nZXRFbGVtZW50VHlw ZSgpKSk7Ci0tI2VsaWYgSVNQQ19MTFZNX1ZFUlNJT04gPT0gSVNQQ19MTFZNXzExXzAKLSsjZWxp ZiBJU1BDX0xMVk1fVkVSU0lPTiA8IElTUENfTExWTV8xMl8wCi0gICAgICAgICBkZWZhdWx0cyA9 IGxsdm06OkNvbnN0YW50VmVjdG9yOjpnZXRTcGxhdCh7c3RhdGljX2Nhc3Q8dW5zaWduZWQgaW50 Pih2dC0+Z2V0TnVtRWxlbWVudHMoKSksIGZhbHNlfSwKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06OkNvbnN0YW50OjpnZXROdWxsVmFsdWUo dnQtPmdldEVsZW1lbnRUeXBlKCkpKTsKLSAjZWxzZQotZGlmZiAtLWdpdCBhL3NyYy9vcHQuY3Bw IGIvc3JjL29wdC5jcHAKLWluZGV4IDE3ODliODQ3Ni4uM2ZmMTkxYTBhIDEwMDY0NAotLS0tIGEv c3JjL29wdC5jcHAKLSsrKyBiL3NyYy9vcHQuY3BwCi1AQCAtMTA0NSw3ICsxMDQ1LDcgQEAgYm9v bCBJbnRyaW5zaWNzT3B0OjpydW5PbkJhc2ljQmxvY2sobGx2bTo6QmFzaWNCbG9jayAmYmIpIHsK LSAgICAgICAgICAgICAgICAgICAgIGFsaWduID0gZy0+dGFyZ2V0LT5nZXROYXRpdmVWZWN0b3JB bGlnbm1lbnQoKTsKLSAgICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICAg YWxpZ24gPSBjYWxsSW5zdC0+Z2V0Q2FsbGVkRnVuY3Rpb24oKSA9PSBhdnhNYXNrZWRMb2FkMzIg PyA0IDogODsKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPT0gSVNQQ19MTFZNXzEwXzAKLSsjaWYg SVNQQ19MTFZNX1ZFUlNJT04gPCBJU1BDX0xMVk1fMTFfMAotICAgICAgICAgICAgICAgICBsbHZt OjpJbnN0cnVjdGlvbiAqbG9hZEluc3QgPQotICAgICAgICAgICAgICAgICAgICAgbmV3IGxsdm06 OkxvYWRJbnN0KGNhc3RQdHIsIGxsdm06OlR3aW5lKGNhbGxJbnN0LT5nZXRBcmdPcGVyYW5kKDAp LT5nZXROYW1lKCkpICsgIl9sb2FkIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBmYWxzZSAvKiBub3Qgdm9sYXRpbGUgKi8sIGxsdm06Ok1heWJlQWxpZ24oYWxpZ24p LCAobGx2bTo6SW5zdHJ1Y3Rpb24gKilOVUxMKTsKLUBAIC0xNDcyLDcgKzE0NzIsNyBAQCBzdGF0 aWMgbGx2bTo6VmFsdWUgKmxHZXRCYXNlUHRyQW5kT2Zmc2V0cyhsbHZtOjpWYWx1ZSAqcHRycywg bGx2bTo6VmFsdWUgKipvZmZzZQotICAgICAgICAgICAgICAgICAgICAgbGx2bTo6VmFsdWUgKnpl cm9NYXNrID0KLSAjaWYgSVNQQ19MTFZNX1ZFUlNJT04gPCBJU1BDX0xMVk1fMTFfMAotICAgICAg ICAgICAgICAgICAgICAgICAgIGxsdm06OkNvbnN0YW50VmVjdG9yOjpnZXRTcGxhdChjdi0+Z2V0 VHlwZSgpLT5nZXRWZWN0b3JOdW1FbGVtZW50cygpLAotLSNlbGlmIElTUENfTExWTV9WRVJTSU9O ID09IElTUENfTExWTV8xMV8wCi0rI2VsaWYgSVNQQ19MTFZNX1ZFUlNJT04gPCBJU1BDX0xMVk1f MTJfMAotICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06OkNvbnN0YW50VmVjdG9yOjpnZXRT cGxhdCgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2xsdm06OmR5bl9jYXN0PGxsdm06 OlZlY3RvclR5cGU+KGN2LT5nZXRUeXBlKCkpLT5nZXROdW1FbGVtZW50cygpLCBmYWxzZX0sCi0g I2Vsc2UgLy8gTExWTSAxMi4wKwotQEAgLTE0OTUsNyArMTQ5NSw3IEBAIHN0YXRpYyBsbHZtOjpW YWx1ZSAqbEdldEJhc2VQdHJBbmRPZmZzZXRzKGxsdm06OlZhbHVlICpwdHJzLCBsbHZtOjpWYWx1 ZSAqKm9mZnNlCi0gICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6VmFsdWUgKnplcm9NYXNr ID0gbGx2bTo6Q29uc3RhbnRWZWN0b3I6OmdldFNwbGF0KAotICNpZiBJU1BDX0xMVk1fVkVSU0lP TiA8IElTUENfTExWTV8xMV8wCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcF92YXJf dHlwZS0+Z2V0VmVjdG9yTnVtRWxlbWVudHMoKSwKLS0jZWxpZiBJU1BDX0xMVk1fVkVSU0lPTiA9 PSBJU1BDX0xMVk1fMTFfMAotKyNlbGlmIElTUENfTExWTV9WRVJTSU9OIDwgSVNQQ19MTFZNXzEy XzAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2xsdm06OmR5bl9jYXN0PGxsdm06OlZl Y3RvclR5cGU+KGJvcF92YXJfdHlwZSktPmdldE51bUVsZW1lbnRzKCksIGZhbHNlfSwKLSAjZWxz ZSAvLyBMTFZNIDEyLjArCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06OkVsZW1l bnRDb3VudDo6Z2V0KAotQEAgLTI4MDMsNyArMjgwMyw3IEBAIHN0YXRpYyBib29sIGxHU1RvTG9h ZFN0b3JlKGxsdm06OkNhbGxJbnN0ICpjYWxsSW5zdCkgewotICAgICAgICAgICAgIGxsdm06OlZh bHVlICp6ZXJvTWFzayA9Ci0gI2lmIElTUENfTExWTV9WRVJTSU9OIDwgSVNQQ19MTFZNXzExXzAK LSAgICAgICAgICAgICAgICAgbGx2bTo6Q29uc3RhbnRWZWN0b3I6OmdldFNwbGF0KGNhbGxJbnN0 LT5nZXRUeXBlKCktPmdldFZlY3Rvck51bUVsZW1lbnRzKCksCi0tI2VsaWYgSVNQQ19MTFZNX1ZF UlNJT04gPT0gSVNQQ19MTFZNXzExXzAKLSsjZWxpZiBJU1BDX0xMVk1fVkVSU0lPTiA8IElTUENf TExWTV8xMl8wCi0gICAgICAgICAgICAgICAgIGxsdm06OkNvbnN0YW50VmVjdG9yOjpnZXRTcGxh dCgKLSAgICAgICAgICAgICAgICAgICAgIHtsbHZtOjpkeW5fY2FzdDxsbHZtOjpWZWN0b3JUeXBl PihjYWxsSW5zdC0+Z2V0VHlwZSgpKS0+Z2V0TnVtRWxlbWVudHMoKSwgZmFsc2V9LAotIAotQEAg LTMxMDAsNyArMzEwMCw3IEBAIHN0YXRpYyBib29sIGxJbXByb3ZlTWFza2VkTG9hZChsbHZtOjpD YWxsSW5zdCAqY2FsbEluc3QsIGxsdm06OkJhc2ljQmxvY2s6Oml0ZXJhCi0gICAgICAgICB7Ci0g ICAgICAgICAgICAgbGx2bTo6VHlwZSAqcHRyVHlwZSA9IGxsdm06OlBvaW50ZXJUeXBlOjpnZXQo Y2FsbEluc3QtPmdldFR5cGUoKSwgMCk7Ci0gICAgICAgICAgICAgcHRyID0gbmV3IGxsdm06OkJp dENhc3RJbnN0KHB0ciwgcHRyVHlwZSwgInB0cl9jYXN0X2Zvcl9sb2FkIiwgY2FsbEluc3QpOwot LSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA9PSBJU1BDX0xMVk1fMTBfMAotKyNpZiBJU1BDX0xMVk1f VkVSU0lPTiA8IElTUENfTExWTV8xMV8wCi0gICAgICAgICAgICAgbG9hZCA9IG5ldyBsbHZtOjpM b2FkSW5zdCgKLSAgICAgICAgICAgICAgICAgcHRyLCBjYWxsSW5zdC0+Z2V0TmFtZSgpLCBmYWxz ZSAvKiBub3Qgdm9sYXRpbGUgKi8sCi0gICAgICAgICAgICAgICAgIGxsdm06Ok1heWJlQWxpZ24o Zy0+b3B0LmZvcmNlQWxpZ25lZE1lbW9yeSA/IGctPnRhcmdldC0+Z2V0TmF0aXZlVmVjdG9yQWxp Z25tZW50KCkgOiBpbmZvLT5hbGlnbikKLUBAIC0zNDU5LDcgKzM0NTksNyBAQCBsbHZtOjpWYWx1 ZSAqbEdFUEFuZExvYWQobGx2bTo6VmFsdWUgKmJhc2VQdHIsIGludDY0X3Qgb2Zmc2V0LCBpbnQg YWxpZ24sIGxsdm06OgotICAgICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpUeXBlICp0eXBl KSB7Ci0gICAgIGxsdm06OlZhbHVlICpwdHIgPSBsR0VQSW5zdChiYXNlUHRyLCBMTFZNSW50NjQo b2Zmc2V0KSwgIm5ld19iYXNlIiwgaW5zZXJ0QmVmb3JlKTsKLSAgICAgcHRyID0gbmV3IGxsdm06 OkJpdENhc3RJbnN0KHB0ciwgbGx2bTo6UG9pbnRlclR5cGU6OmdldCh0eXBlLCAwKSwgInB0cl9j YXN0IiwgaW5zZXJ0QmVmb3JlKTsKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPT0gSVNQQ19MTFZN XzEwXzAKLSsjaWYgSVNQQ19MTFZNX1ZFUlNJT04gPCBJU1BDX0xMVk1fMTFfMAotICAgICByZXR1 cm4gbmV3IGxsdm06OkxvYWRJbnN0KHB0ciwgImdhdGhlcl9sb2FkIiwgZmFsc2UgLyogbm90IHZv bGF0aWxlICovLCBsbHZtOjpNYXliZUFsaWduKGFsaWduKSwgaW5zZXJ0QmVmb3JlKTsKLSAjZWxz ZSAvLyBMTFZNIDExLjArCi0gICAgIHJldHVybiBuZXcgbGx2bTo6TG9hZEluc3QobGx2bTo6ZHlu X2Nhc3Q8bGx2bTo6UG9pbnRlclR5cGU+KHB0ci0+Z2V0VHlwZSgpKS0+Z2V0UG9pbnRlckVsZW1l bnRUeXBlKCksIHB0ciwKLUBAIC02MTgzLDcgKzYxODMsNyBAQCBib29sIFJlcGxhY2VMTFZNSW50 cmluc2ljczo6cnVuT25CYXNpY0Jsb2NrKGxsdm06OkJhc2ljQmxvY2sgJmJiKSB7Ci0gICAgICAg ICAgICAgICAgIEFyZ3MucHVzaF9iYWNrKGxsdm06OkNvbnN0YW50VmVjdG9yOjpnZXRTcGxhdCgK LSAjaWYgSVNQQ19MTFZNX1ZFUlNJT04gPCBJU1BDX0xMVk1fMTFfMAotICAgICAgICAgICAgICAg ICAgICAgZy0+dGFyZ2V0LT5nZXROYXRpdmVWZWN0b3JXaWR0aCgpLAotLSNlbGlmIElTUENfTExW TV9WRVJTSU9OID09IElTUENfTExWTV8xMV8wCi0rI2VsaWYgSVNQQ19MTFZNX1ZFUlNJT04gPCBJ U1BDX0xMVk1fMTJfMAotICAgICAgICAgICAgICAgICAgICAge3N0YXRpY19jYXN0PHVuc2lnbmVk IGludD4oZy0+dGFyZ2V0LT5nZXROYXRpdmVWZWN0b3JXaWR0aCgpKSwgZmFsc2V9LAotICNlbHNl IC8vIExMVk0gMTIuMCsKLSAgICAgICAgICAgICAgICAgICAgIGxsdm06OkVsZW1lbnRDb3VudDo6 Z2V0KHN0YXRpY19jYXN0PHVuc2lnbmVkIGludD4oZy0+dGFyZ2V0LT5nZXROYXRpdmVWZWN0b3JX aWR0aCgpKSwgZmFsc2UpLAotQEAgLTYxOTUsNyArNjE5NSw3IEBAIGJvb2wgUmVwbGFjZUxMVk1J bnRyaW5zaWNzOjpydW5PbkJhc2ljQmxvY2sobGx2bTo6QmFzaWNCbG9jayAmYmIpIHsKLSAgICAg ICAgICAgICAgICAgbGx2bTo6VmFsdWUgKnplcm9NYXNrID0gbGx2bTo6Q29uc3RhbnRWZWN0b3I6 OmdldFNwbGF0KAotICNpZiBJU1BDX0xMVk1fVkVSU0lPTiA8IElTUENfTExWTV8xMV8wCi0gICAg ICAgICAgICAgICAgICAgICBnLT50YXJnZXQtPmdldE5hdGl2ZVZlY3RvcldpZHRoKCksCi0tI2Vs aWYgSVNQQ19MTFZNX1ZFUlNJT04gPT0gSVNQQ19MTFZNXzExXzAKLSsjZWxpZiBJU1BDX0xMVk1f VkVSU0lPTiA8IElTUENfTExWTV8xMl8wCi0gICAgICAgICAgICAgICAgICAgICB7c3RhdGljX2Nh c3Q8dW5zaWduZWQgaW50PihnLT50YXJnZXQtPmdldE5hdGl2ZVZlY3RvcldpZHRoKCkpLCBmYWxz ZX0sCi0gI2Vsc2UgLy8gTExWTSAxMi4wKwotICAgICAgICAgICAgICAgICAgICAgbGx2bTo6RWxl bWVudENvdW50OjpnZXQoc3RhdGljX2Nhc3Q8dW5zaWduZWQgaW50PihnLT50YXJnZXQtPmdldE5h dGl2ZVZlY3RvcldpZHRoKCkpLCBmYWxzZSksCi1AQCAtNjU2Nyw3ICs2NTY3LDcgQEAgbGx2bTo6 VmFsdWUgKkZpeEFkZHJlc3NTcGFjZTo6Y2FsY3VsYXRlR2F0aGVyU2NhdHRlckFkZHJlc3MobGx2 bTo6VmFsdWUgKlB0ciwgbGwKLSAgICAgICAgIGxsdm06OkNvbnN0YW50ICp6ZXJvVmVjID0gbGx2 bTo6Q29uc3RhbnRWZWN0b3I6OmdldFNwbGF0KAotICNpZiBJU1BDX0xMVk1fVkVSU0lPTiA8IElT UENfTExWTV8xMV8wCi0gICAgICAgICAgICAgYWRkcmVzc1R5cGUtPmdldFZlY3Rvck51bUVsZW1l bnRzKCksCi0tI2VsaWYgSVNQQ19MTFZNX1ZFUlNJT04gPT0gSVNQQ19MTFZNXzExXzAKLSsjZWxp ZiBJU1BDX0xMVk1fVkVSU0lPTiA8IElTUENfTExWTV8xMl8wCi0gICAgICAgICAgICAge2xsdm06 OmR5bl9jYXN0PGxsdm06OlZlY3RvclR5cGU+KGFkZHJlc3NUeXBlKS0+Z2V0TnVtRWxlbWVudHMo KSwgZmFsc2V9LAotICNlbHNlCi0gICAgICAgICBsbHZtOjpFbGVtZW50Q291bnQ6OmdldCgKZGlm ZiAtLWdpdCBhL3NyY3BrZ3MvaXNwYy9wYXRjaGVzL2xsdm0xMi0wMDcucGF0Y2ggYi9zcmNwa2dz L2lzcGMvcGF0Y2hlcy9sbHZtMTItMDA3LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAxYjk3NWY4OTZjN2UuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2lzcGMvcGF0Y2hl cy9sbHZtMTItMDA3LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTYwICswLDAgQEAKLUZyb20g NjJmNWE2YzM3YmYyNmZjMjVhN2NmODE4NjgwNTJkMzQ3Mjg3NDYxMCBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKLUZyb206IEFyaW5hIE5lc2hseWFldmEgPGFyaW5hLm5lc2hseWFldmFAaW50ZWwu Y29tPgotRGF0ZTogVHVlLCAyMyBNYXIgMjAyMSAyMzowNzozMCAtMDcwMAotU3ViamVjdDogW1BB VENIXSBEbyBub3QgZ2VuZXJhdGUgZnVuY3Rpb24gbWFzayB3aGVuIGl0IGlzIG5vdCByZXF1aXJl ZAotCi0tLS0KLSBzcmMvY3R4LmNwcCAgICAgICAgICAgICAgICAgICAgfCAzOSArKysrKysrKysr KysrKy0tLS0tLS0KLSB0ZXN0cy9saXQtdGVzdHMvZnVsbF9tYXNrLmlzcGMgfCA2MyArKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrCi0gMiBmaWxlcyBjaGFuZ2VkLCA5MCBpbnNlcnRp b25zKCspLCAxMiBkZWxldGlvbnMoLSkKLSBjcmVhdGUgbW9kZSAxMDA2NDQgdGVzdHMvbGl0LXRl c3RzL2Z1bGxfbWFzay5pc3BjCi0KLWRpZmYgLS1naXQgYS9zcmMvY3R4LmNwcCBiL3NyYy9jdHgu Y3BwCi1pbmRleCA1MjdhMDJmMzAuLjllNzc1ZmM1YyAxMDA2NDQKLS0tLSBhL3NyYy9jdHguY3Bw Ci0rKysgYi9zcmMvY3R4LmNwcAotQEAgLTIzMSwxMCArMjMxLDE4IEBAIEZ1bmN0aW9uRW1pdENv bnRleHQ6OkZ1bmN0aW9uRW1pdENvbnRleHQoRnVuY3Rpb24gKmZ1bmMsIFN5bWJvbCAqZnVuU3lt LCBsbHZtOjpGCi0gICAgIGludGVybmFsTWFza1BvaW50ZXIgPSBBbGxvY2FJbnN0KExMVk1UeXBl czo6TWFza1R5cGUsICJpbnRlcm5hbF9tYXNrX21lbW9yeSIpOwotICAgICBTdG9yZUluc3QoTExW TU1hc2tBbGxPbiwgaW50ZXJuYWxNYXNrUG9pbnRlcik7Ci0gCi0tICAgIGZ1bmN0aW9uTWFza1Zh bHVlID0gTExWTU1hc2tBbGxPbjsKLS0KLS0gICAgZnVsbE1hc2tQb2ludGVyID0gQWxsb2NhSW5z dChMTFZNVHlwZXM6Ok1hc2tUeXBlLCAiZnVsbF9tYXNrX21lbW9yeSIpOwotLSAgICBTdG9yZUlu c3QoTExWTU1hc2tBbGxPbiwgZnVsbE1hc2tQb2ludGVyKTsKLSsgICAgLy8gSWYgdGhlIGZ1bmN0 aW9uIGRvZXNuJ3QgaGF2ZSBfX21hc2sgaW4gcGFyYW1ldGVycywgdGhlcmUgaXMgbm8gbmVlZCB0 bwotKyAgICAvLyBoYXZlIGZ1bmN0aW9uIG1hc2sKLSsgICAgaWYgKChmdW5jLT5HZXRUeXBlKCkt PmlzRXhwb3J0ZWQgJiYKLSsgICAgICAgICAobGYtPmdldEZ1bmN0aW9uVHlwZSgpLT5nZXROdW1Q YXJhbXMoKSA9PSBmdW5jLT5HZXRUeXBlKCktPkdldE51bVBhcmFtZXRlcnMoKSkpIHx8Ci0rICAg ICAgICAoZnVuYy0+R2V0VHlwZSgpLT5pc1VubWFza2VkKSB8fCAoZnVuYy0+R2V0VHlwZSgpLT5p c1Rhc2spKSB7Ci0rICAgICAgICBmdW5jdGlvbk1hc2tWYWx1ZSA9IE5VTEw7Ci0rICAgICAgICBm dWxsTWFza1BvaW50ZXIgPSBOVUxMOwotKyAgICB9IGVsc2UgewotKyAgICAgICAgZnVuY3Rpb25N YXNrVmFsdWUgPSBMTFZNTWFza0FsbE9uOwotKyAgICAgICAgZnVsbE1hc2tQb2ludGVyID0gQWxs b2NhSW5zdChMTFZNVHlwZXM6Ok1hc2tUeXBlLCAiZnVsbF9tYXNrX21lbW9yeSIpOwotKyAgICAg ICAgU3RvcmVJbnN0KExMVk1NYXNrQWxsT24sIGZ1bGxNYXNrUG9pbnRlcik7Ci0rICAgIH0KLSAK LSAgICAgYmxvY2tFbnRyeU1hc2sgPSBOVUxMOwotICAgICBicmVha0xhbmVzUHRyID0gY29udGlu dWVMYW5lc1B0ciA9IE5VTEw7Ci1AQCAtMzg5LDIwICszOTcsMjYgQEAgbGx2bTo6QmFzaWNCbG9j ayAqRnVuY3Rpb25FbWl0Q29udGV4dDo6R2V0Q3VycmVudEJhc2ljQmxvY2soKSB7IHJldHVybiBi YmxvY2s7IH0KLSAKLSB2b2lkIEZ1bmN0aW9uRW1pdENvbnRleHQ6OlNldEN1cnJlbnRCYXNpY0Js b2NrKGxsdm06OkJhc2ljQmxvY2sgKmJiKSB7IGJibG9jayA9IGJiOyB9Ci0gCi0tbGx2bTo6VmFs dWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkdldEZ1bmN0aW9uTWFzaygpIHsgcmV0dXJuIGZ1bmN0 aW9uTWFza1ZhbHVlOyB9Ci0rbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkdldEZ1 bmN0aW9uTWFzaygpIHsgcmV0dXJuIGZ1bGxNYXNrUG9pbnRlciA/IGZ1bmN0aW9uTWFza1ZhbHVl IDogTExWTU1hc2tBbGxPbjsgfQotIAotIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0 OjpHZXRJbnRlcm5hbE1hc2soKSB7IHJldHVybiBMb2FkSW5zdChpbnRlcm5hbE1hc2tQb2ludGVy LCBOVUxMLCAibG9hZF9tYXNrIik7IH0KLSAKLSBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29u dGV4dDo6R2V0RnVsbE1hc2soKSB7Ci0tICAgIHJldHVybiBCaW5hcnlPcGVyYXRvcihsbHZtOjpJ bnN0cnVjdGlvbjo6QW5kLCBHZXRJbnRlcm5hbE1hc2soKSwgZnVuY3Rpb25NYXNrVmFsdWUsICJp bnRlcm5hbF9tYXNrJmZ1bmN0aW9uX21hc2siKTsKLSsgICAgcmV0dXJuIGZ1bGxNYXNrUG9pbnRl ciA/IEJpbmFyeU9wZXJhdG9yKGxsdm06Okluc3RydWN0aW9uOjpBbmQsIEdldEludGVybmFsTWFz aygpLCBmdW5jdGlvbk1hc2tWYWx1ZSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICJpbnRlcm5hbF9tYXNrJmZ1bmN0aW9uX21hc2siKQotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgIDogR2V0SW50ZXJuYWxNYXNrKCk7Ci0gfQotIAotLWxsdm06OlZhbHVl ICpGdW5jdGlvbkVtaXRDb250ZXh0OjpHZXRGdWxsTWFza1BvaW50ZXIoKSB7IHJldHVybiBmdWxs TWFza1BvaW50ZXI7IH0KLStsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6R2V0RnVs bE1hc2tQb2ludGVyKCkgewotKyAgICByZXR1cm4gZnVsbE1hc2tQb2ludGVyID8gZnVsbE1hc2tQ b2ludGVyIDogaW50ZXJuYWxNYXNrUG9pbnRlcjsKLSt9Ci0gCi0gdm9pZCBGdW5jdGlvbkVtaXRD b250ZXh0OjpTZXRGdW5jdGlvbk1hc2sobGx2bTo6VmFsdWUgKnZhbHVlKSB7Ci0tICAgIGZ1bmN0 aW9uTWFza1ZhbHVlID0gdmFsdWU7Ci0tICAgIGlmIChiYmxvY2sgIT0gTlVMTCkKLS0gICAgICAg IFN0b3JlSW5zdChHZXRGdWxsTWFzaygpLCBmdWxsTWFza1BvaW50ZXIpOwotKyAgICBpZiAoZnVs bE1hc2tQb2ludGVyICE9IE5VTEwpIHsKLSsgICAgICAgIGZ1bmN0aW9uTWFza1ZhbHVlID0gdmFs dWU7Ci0rICAgICAgICBpZiAoYmJsb2NrICE9IE5VTEwpCi0rICAgICAgICAgICAgU3RvcmVJbnN0 KEdldEZ1bGxNYXNrKCksIGZ1bGxNYXNrUG9pbnRlcik7Ci0rICAgIH0KLSB9Ci0gCi0gdm9pZCBG dW5jdGlvbkVtaXRDb250ZXh0OjpTZXRCbG9ja0VudHJ5TWFzayhsbHZtOjpWYWx1ZSAqdmFsdWUp IHsgYmxvY2tFbnRyeU1hc2sgPSB2YWx1ZTsgfQotQEAgLTQxMCw3ICs0MjQsOCBAQCB2b2lkIEZ1 bmN0aW9uRW1pdENvbnRleHQ6OlNldEJsb2NrRW50cnlNYXNrKGxsdm06OlZhbHVlICp2YWx1ZSkg eyBibG9ja0VudHJ5TWFzawotIHZvaWQgRnVuY3Rpb25FbWl0Q29udGV4dDo6U2V0SW50ZXJuYWxN YXNrKGxsdm06OlZhbHVlICp2YWx1ZSkgewotICAgICBTdG9yZUluc3QodmFsdWUsIGludGVybmFs TWFza1BvaW50ZXIpOwotICAgICAvLyBrbHVkZ2Ugc28gdGhhdCBfX21hc2sgcmV0dXJucyB0aGUg cmlnaHQgdmFsdWUgaW4gaXNwYyBjb2RlLgotLSAgICBTdG9yZUluc3QoR2V0RnVsbE1hc2soKSwg ZnVsbE1hc2tQb2ludGVyKTsKLSsgICAgaWYgKGZ1bGxNYXNrUG9pbnRlcikKLSsgICAgICAgIFN0 b3JlSW5zdChHZXRGdWxsTWFzaygpLCBmdWxsTWFza1BvaW50ZXIpOwotIH0KLSAKLSB2b2lkIEZ1 bmN0aW9uRW1pdENvbnRleHQ6OlNldEludGVybmFsTWFza0FuZChsbHZtOjpWYWx1ZSAqb2xkTWFz aywgbGx2bTo6VmFsdWUgKnRlc3QpIHsKLUBAIC0xMjY1LDcgKzEyODAsNyBAQCB2b2lkIEZ1bmN0 aW9uRW1pdENvbnRleHQ6OkN1cnJlbnRMYW5lc1JldHVybmVkKEV4cHIgKmV4cHIsIGJvb2wgZG9D b2hlcmVuY2VDaGVjawotICAgICAgICAgLy8gbGFuZXMgaGF2ZSByZXR1cm5lZAotICAgICAgICAg aWYgKGRvQ29oZXJlbmNlQ2hlY2spIHsKLSAgICAgICAgICAgICAvLyBpZiBuZXdSZXR1cm5lZExh bmVzID09IGZ1bmN0aW9uTWFza1ZhbHVlLCBnZXQgb3V0IG9mIGhlcmUhCi0tICAgICAgICAgICAg bGx2bTo6VmFsdWUgKmNtcCA9IE1hc2tzQWxsRXF1YWwoZnVuY3Rpb25NYXNrVmFsdWUsIG5ld1Jl dHVybmVkTGFuZXMpOwotKyAgICAgICAgICAgIGxsdm06OlZhbHVlICpjbXAgPSBNYXNrc0FsbEVx dWFsKEdldEZ1bmN0aW9uTWFzaygpLCBuZXdSZXR1cm5lZExhbmVzKTsKLSAgICAgICAgICAgICBs bHZtOjpCYXNpY0Jsb2NrICpiRG9SZXR1cm4gPSBDcmVhdGVCYXNpY0Jsb2NrKCJkb19yZXR1cm4i KTsKLSAgICAgICAgICAgICBsbHZtOjpCYXNpY0Jsb2NrICpiTm9SZXR1cm4gPSBDcmVhdGVCYXNp Y0Jsb2NrKCJub19yZXR1cm4iKTsKLSAgICAgICAgICAgICBCcmFuY2hJbnN0KGJEb1JldHVybiwg Yk5vUmV0dXJuLCBjbXApOwotZGlmZiAtLWdpdCBhL3Rlc3RzL2xpdC10ZXN0cy9mdWxsX21hc2su aXNwYyBiL3Rlc3RzL2xpdC10ZXN0cy9mdWxsX21hc2suaXNwYwotbmV3IGZpbGUgbW9kZSAxMDA2 NDQKLWluZGV4IDAwMDAwMDAwMC4uYWMwYjBiY2EzCi0tLS0gL2Rldi9udWxsCi0rKysgYi90ZXN0 cy9saXQtdGVzdHMvZnVsbF9tYXNrLmlzcGMKLUBAIC0wLDAgKzEsNjMgQEAKLSsvLyBSVU46ICV7 aXNwY30gJXMgLURJU1BDX0VYUE9SVCAtLWVtaXQtbGx2bS10ZXh0IC1PMCAtLW5vd3JhcCAtbyAl dC5sbAotKy8vIFJVTjogRmlsZUNoZWNrIC0taW5wdXQtZmlsZT0ldC5sbCAtY2hlY2stcHJlZml4 PUNIRUNLX0lTUENfRVhQT1JUICVzCi0rCi0rLy8gUlVOOiAle2lzcGN9ICVzIC1ESVNQQ19VTk1B U0tFRCAtLWVtaXQtbGx2bS10ZXh0IC1PMCAtLW5vd3JhcCAtbyAldC5sbAotKy8vIFJVTjogRmls ZUNoZWNrIC0taW5wdXQtZmlsZT0ldC5sbCAtY2hlY2stcHJlZml4PUNIRUNLX0lTUENfVU5NQVNL RUQgJXMKLSsKLSsvLyBSVU46ICV7aXNwY30gJXMgLURJU1BDX05PUVVBTElGIC0tZW1pdC1sbHZt LXRleHQgLU8wIC0tbm93cmFwIC1vICV0LmxsCi0rLy8gUlVOOiBGaWxlQ2hlY2sgLS1pbnB1dC1m aWxlPSV0LmxsIC1jaGVjay1wcmVmaXg9Q0hFQ0tfSVNQQ19OT1FVQUxJRiAlcwotKwotKy8vIFJV TjogJXtpc3BjfSAlcyAtRElTUENfVEFTSyAtLWVtaXQtbGx2bS10ZXh0IC1PMCAtLW5vd3JhcCAt byAldC5sbAotKy8vIFJVTjogRmlsZUNoZWNrIC0taW5wdXQtZmlsZT0ldC5sbCAtY2hlY2stcHJl Zml4PUNIRUNLX0lTUENfVEFTSyAlcwotKwotK3N0cnVjdCBQYXJhbWV0ZXJzIHsKLSsgICAgZmxv YXQgKnZvdXQ7Ci0rICAgIGludCBwYXJhbTsKLSt9OwotKwotKyNpZmRlZiBJU1BDX0VYUE9SVAot Ky8vIENIRUNLX0lTUENfRVhQT1JUOiBkZWZpbmUgdm9pZCBAc2ltcGxlX2V4cG9ydF9fXwotKy8v IENIRUNLX0lTUENfRVhQT1JUOiAlZnVsbF9tYXNrX21lbW9yeSA9IGFsbG9jYQotKy8vIENIRUNL X0lTUENfRVhQT1JUOiBkZWZpbmUgdm9pZCBAc2ltcGxlX2V4cG9ydCgKLSsvLyBDSEVDS19JU1BD X0VYUE9SVC1OT1Q6ICVmdWxsX21hc2tfbWVtb3J5ID0gYWxsb2NhCi0rZXhwb3J0IHZvaWQgc2lt cGxlX2V4cG9ydCh2b2lkICp1bmlmb3JtIF9wKSB7Ci0rICAgIFBhcmFtZXRlcnMgKnVuaWZvcm0g cCA9IChQYXJhbWV0ZXJzICogdW5pZm9ybSkgX3A7Ci0rICAgIGlmIChwcm9ncmFtSW5kZXggPiBw LT5wYXJhbSkKLSsgICAgICAgIHAtPnZvdXRbcHJvZ3JhbUluZGV4XSA9IHByb2dyYW1Db3VudCAq IHByb2dyYW1JbmRleDsKLSt9Ci0rI2VuZGlmCi0rI2lmZGVmIElTUENfVU5NQVNLRUQKLSsvLyBD SEVDS19JU1BDX1VOTUFTS0VEOiBkZWZpbmUgdm9pZCBAc2ltcGxlX3VubWFza2VkCi0rLy8gQ0hF Q0tfSVNQQ19VTk1BU0tFRC1OT1Q6ICVmdWxsX21hc2tfbWVtb3J5ID0gYWxsb2NhCi0rdW5tYXNr ZWQgdm9pZCBzaW1wbGVfdW5tYXNrZWQodm9pZCAqdW5pZm9ybSBfcCkgewotKyAgICBQYXJhbWV0 ZXJzICp1bmlmb3JtIHAgPSAoUGFyYW1ldGVycyAqIHVuaWZvcm0pIF9wOwotKyAgICBpZiAocHJv Z3JhbUluZGV4ID4gcC0+cGFyYW0pCi0rICAgICAgICBwLT52b3V0W3Byb2dyYW1JbmRleF0gPSBw cm9ncmFtQ291bnQgKiBwcm9ncmFtSW5kZXg7Ci0rfQotKyNlbmRpZgotKyNpZmRlZiBJU1BDX05P UVVBTElGCi0rLy8gQ0hFQ0tfSVNQQ19OT1FVQUxJRjogZGVmaW5lIHZvaWQgQHNpbXBsZQotKy8v IENIRUNLX0lTUENfTk9RVUFMSUY6ICVmdWxsX21hc2tfbWVtb3J5ID0gYWxsb2NhCi0rdm9pZCBz aW1wbGUodm9pZCAqdW5pZm9ybSBfcCkgewotKyAgICBQYXJhbWV0ZXJzICp1bmlmb3JtIHAgPSAo UGFyYW1ldGVycyAqIHVuaWZvcm0pIF9wOwotKyAgICBpZiAocHJvZ3JhbUluZGV4ID4gcC0+cGFy YW0pCi0rICAgICAgICBwLT52b3V0W3Byb2dyYW1JbmRleF0gPSBwcm9ncmFtQ291bnQgKiBwcm9n cmFtSW5kZXg7Ci0rfQotKyNlbmRpZgotKyNpZmRlZiBJU1BDX1RBU0sKLSsKLSsvLyBDSEVDS19J U1BDX1RBU0s6IGRlZmluZSB2b2lkIEBzaW1wbGVfdGFzawotKy8vIENIRUNLX0lTUENfVEFTSy1O T1Q6ICVmdWxsX21hc2tfbWVtb3J5ID0gYWxsb2NhCi0rLy8gQ0hFQ0tfSVNQQ19UQVNLOiBkZWZp bmUgdm9pZCBAc2ltcGxlX2VudHJ5X3BvaW50X18KLSsvLyBDSEVDS19JU1BDX1RBU0s6ICVmdWxs X21hc2tfbWVtb3J5ID0gYWxsb2NhCi0rLy8gQ0hFQ0tfSVNQQ19UQVNLOiBkZWZpbmUgdm9pZCBA c2ltcGxlX2VudHJ5X3BvaW50KAotKy8vIENIRUNLX0lTUENfVEFTSy1OT1Q6ICVmdWxsX21hc2tf bWVtb3J5ID0gYWxsb2NhCi0rdGFzayB2b2lkIHNpbXBsZV90YXNrKHZvaWQgKnVuaWZvcm0gX3Ap IHsKLSsgICAgUGFyYW1ldGVycyAqdW5pZm9ybSBwID0gKFBhcmFtZXRlcnMgKiB1bmlmb3JtKSBf cDsKLSsgICAgaWYgKHByb2dyYW1JbmRleCA+IHAtPnBhcmFtKQotKyAgICAgICAgcC0+dm91dFtw cm9ncmFtSW5kZXhdID0gcHJvZ3JhbUNvdW50ICogcHJvZ3JhbUluZGV4OwotK30KLStleHBvcnQg dm9pZCBzaW1wbGVfZW50cnlfcG9pbnQodm9pZCAqdW5pZm9ybSBwYXJhbWV0ZXJzLCB1bmlmb3Jt IGludCBkaW0wLCB1bmlmb3JtIGludCBkaW0xLCB1bmlmb3JtIGludCBkaW0yKSB7Ci0rICAgIGxh dW5jaFtkaW0wLCBkaW0xLCBkaW0yXSBzaW1wbGVfdGFzayhwYXJhbWV0ZXJzKTsKLSt9Ci0rI2Vu ZGlmCi1cIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvaXNw Yy9wYXRjaGVzL2xsdm0xMi0wMDgucGF0Y2ggYi9zcmNwa2dzL2lzcGMvcGF0Y2hlcy9sbHZtMTIt MDA4LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjODQxM2Q4Yjc4ODcuLjAw MDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2lzcGMvcGF0Y2hlcy9sbHZtMTItMDA4LnBhdGNoCisr KyAvZGV2L251bGwKQEAgLTEsMTQ5ICswLDAgQEAKLUZyb20gYWZhZDE0MjI3ZDkyMDRhM2M4YTYy NmNhNjA4ZjViNDNjMzIxOGZlOSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEFyaW5h IE5lc2hseWFldmEgPGFyaW5hLm5lc2hseWFldmFAaW50ZWwuY29tPgotRGF0ZTogVHVlLCA0IE1h eSAyMDIxIDExOjQzOjUyIC0wNzAwCi1TdWJqZWN0OiBbUEFUQ0hdIEZpeGVkIElTUEMgZ2VuIGJ1 aWxkIGZvciBMTFZNMTIKLQotLS0tCi0gc3JjL2N0eC5jcHAgfCAgNCArKysrCi0gc3JjL29wdC5j cHAgfCA0MyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tCi0gMiBm aWxlcyBjaGFuZ2VkLCAzMyBpbnNlcnRpb25zKCspLCAxNCBkZWxldGlvbnMoLSkKLQotZGlmZiAt LWdpdCBhL3NyYy9jdHguY3BwIGIvc3JjL2N0eC5jcHAKLWluZGV4IDBjNzA1MDU5MS4uZjdkYzA2 OTM5IDEwMDY0NAotLS0tIGEvc3JjL2N0eC5jcHAKLSsrKyBiL3NyYy9jdHguY3BwCi1AQCAtMzcz OCw3ICszNzM4LDExIEBAIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpHZW5YU2lt ZENGQW55KGxsdm06OlZhbHVlICp2YWx1ZSkgewotIAotIGxsdm06OlZhbHVlICpGdW5jdGlvbkVt aXRDb250ZXh0OjpHZW5YU2ltZENGUHJlZGljYXRlKGxsdm06OlZhbHVlICp2YWx1ZSwgbGx2bTo6 VmFsdWUgKmRlZmF1bHRzKSB7Ci0gICAgIEFzc2VydFBvcyhjdXJyZW50UG9zLCBsbHZtOjppc2E8 bGx2bTo6VmVjdG9yVHlwZT4odmFsdWUtPmdldFR5cGUoKSkpOwotKyNpZiBJU1BDX0xMVk1fVkVS U0lPTiA+PSBJU1BDX0xMVk1fMTFfMAotKyAgICBsbHZtOjpGaXhlZFZlY3RvclR5cGUgKnZ0ID0g bGx2bTo6ZHluX2Nhc3Q8bGx2bTo6Rml4ZWRWZWN0b3JUeXBlPih2YWx1ZS0+Z2V0VHlwZSgpKTsK LSsjZWxzZQotICAgICBsbHZtOjpWZWN0b3JUeXBlICp2dCA9IGxsdm06OmR5bl9jYXN0PGxsdm06 OlZlY3RvclR5cGU+KHZhbHVlLT5nZXRUeXBlKCkpOwotKyNlbmRpZgotICAgICBpZiAoZGVmYXVs dHMgPT0gTlVMTCkgewotICNpZiBJU1BDX0xMVk1fVkVSU0lPTiA8IElTUENfTExWTV8xMV8wCi0g ICAgICAgICBkZWZhdWx0cyA9IGxsdm06OkNvbnN0YW50VmVjdG9yOjpnZXRTcGxhdCh2dC0+Z2V0 VmVjdG9yTnVtRWxlbWVudHMoKSwKLWRpZmYgLS1naXQgYS9zcmMvb3B0LmNwcCBiL3NyYy9vcHQu Y3BwCi1pbmRleCBjZWE0YWZhMjMuLjRlMzNkNmIxYSAxMDA2NDQKLS0tLSBhL3NyYy9vcHQuY3Bw Ci0rKysgYi9zcmMvb3B0LmNwcAotQEAgLTI5MTYsOSArMjkxNiwxMyBAQCBzdGF0aWMgbGx2bTo6 RnVuY3Rpb24gKmxHZW5YTWFza2VkSW50OEluc3QobGx2bTo6SW5zdHJ1Y3Rpb24gKmluc3QsIGJv b2wgaXNTdG9yZQotIAotIHN0YXRpYyBsbHZtOjpDYWxsSW5zdCAqbEdlblhTdG9yZUluc3QobGx2 bTo6VmFsdWUgKnZhbCwgbGx2bTo6VmFsdWUgKnB0ciwgbGx2bTo6SW5zdHJ1Y3Rpb24gKmluc3Qp IHsKLSAgICAgQXNzZXJ0KGctPnRhcmdldC0+aXNHZW5YVGFyZ2V0KCkpOwotKyNpZiBJU1BDX0xM Vk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTFfMAotKyAgICBBc3NlcnQobGx2bTo6aXNhPGxsdm06 OkZpeGVkVmVjdG9yVHlwZT4odmFsLT5nZXRUeXBlKCkpKTsKLSsgICAgbGx2bTo6Rml4ZWRWZWN0 b3JUeXBlICp2YWxWZWNUeXBlID0gbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6Rml4ZWRWZWN0b3JUeXBl Pih2YWwtPmdldFR5cGUoKSk7Ci0rI2Vsc2UKLSAgICAgQXNzZXJ0KGxsdm06OmlzYTxsbHZtOjpW ZWN0b3JUeXBlPih2YWwtPmdldFR5cGUoKSkpOwotLQotICAgICBsbHZtOjpWZWN0b3JUeXBlICp2 YWxWZWNUeXBlID0gbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6VmVjdG9yVHlwZT4odmFsLT5nZXRUeXBl KCkpOwotKyNlbmRpZgotICAgICBBc3NlcnQobGx2bTo6aXNQb3dlck9mMl8zMih2YWxWZWNUeXBl LT5nZXROdW1FbGVtZW50cygpKSk7Ci0gICAgIEFzc2VydCh2YWxWZWNUeXBlLT5nZXRQcmltaXRp dmVTaXplSW5CaXRzKCkgLyA4IDw9IDggKiBPV09SRCk7Ci0gCi1AQCAtMjk0Miw5ICsyOTQ2LDEz IEBAIHN0YXRpYyBsbHZtOjpDYWxsSW5zdCAqbEdlblhTdG9yZUluc3QobGx2bTo6VmFsdWUgKnZh bCwgbGx2bTo6VmFsdWUgKnB0ciwgbGx2bTo6Ci0gfQotIAotIHN0YXRpYyBsbHZtOjpDYWxsSW5z dCAqbEdlblhMb2FkSW5zdChsbHZtOjpWYWx1ZSAqcHRyLCBsbHZtOjpUeXBlICpyZXRUeXBlLCBs bHZtOjpJbnN0cnVjdGlvbiAqaW5zdCkgewotKyNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BD X0xMVk1fMTFfMAotKyAgICBBc3NlcnQobGx2bTo6aXNhPGxsdm06OkZpeGVkVmVjdG9yVHlwZT4o cmV0VHlwZSkpOwotKyAgICBsbHZtOjpGaXhlZFZlY3RvclR5cGUgKnJldFZlY1R5cGUgPSBsbHZt OjpkeW5fY2FzdDxsbHZtOjpGaXhlZFZlY3RvclR5cGU+KHJldFR5cGUpOwotKyNlbHNlCi0gICAg IEFzc2VydChsbHZtOjppc2E8bGx2bTo6VmVjdG9yVHlwZT4ocmV0VHlwZSkpOwotLQotICAgICBs bHZtOjpWZWN0b3JUeXBlICpyZXRWZWNUeXBlID0gbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6VmVjdG9y VHlwZT4ocmV0VHlwZSk7Ci0rI2VuZGlmCi0gICAgIEFzc2VydChsbHZtOjppc1Bvd2VyT2YyXzMy KHJldFZlY1R5cGUtPmdldE51bUVsZW1lbnRzKCkpKTsKLSAgICAgQXNzZXJ0KHJldFZlY1R5cGUt PmdldFByaW1pdGl2ZVNpemVJbkJpdHMoKSk7Ci0gICAgIEFzc2VydChyZXRWZWNUeXBlLT5nZXRQ cmltaXRpdmVTaXplSW5CaXRzKCkgLyA4IDw9IDggKiBPV09SRCk7Ci1AQCAtNTQ4NSw4ICs1NDkz LDEzIEBAIHN0YXRpYyB2b2lkIGxDcmVhdGVCbG9ja0xEVXNlKGxsdm06Okluc3RydWN0aW9uICpj dXJySW5zdCwgc3RkOjp2ZWN0b3I8bGx2bTo6RXh0Ci0gICAgICAgICB9IGVsc2UgaWYgKGF1dG8g Z2F0aGVyID0gbEdldFBzZXVkb0dhdGhlcihsbHZtOjpkeW5fY2FzdDxsbHZtOjpJbnN0cnVjdGlv bj4odWktPmdldFVzZXIoKSkpKSB7Ci0gICAgICAgICAgICAgLy8gQ29sbGVjdCBpZHhzIGZyb20g Z2F0aGVyIGFuZCBmaXggdXNlcnMKLSAgICAgICAgICAgICBsbHZtOjpWYWx1ZSAqcmVzID0gbGx2 bTo6VW5kZWZWYWx1ZTo6Z2V0KGdhdGhlci0+Z2V0VHlwZSgpKTsKLS0gICAgICAgICAgICBmb3Ig KHVuc2lnbmVkIGkgPSAwLCBlbmQgPSBsbHZtOjpkeW5fY2FzdDxsbHZtOjpWZWN0b3JUeXBlPihy ZXMtPmdldFR5cGUoKSktPmdldE51bUVsZW1lbnRzKCk7IGkgPCBlbmQ7Ci0tICAgICAgICAgICAg ICAgICArK2kpIHsKLSsjaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzExXzAKLSsg ICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwLCBlbmQgPSBsbHZtOjpkeW5fY2FzdDxsbHZt OjpGaXhlZFZlY3RvclR5cGU+KHJlcy0+Z2V0VHlwZSgpKS0+Z2V0TnVtRWxlbWVudHMoKTsgaSA8 IGVuZDsKLSsgICAgICAgICAgICAgICAgICsraSkKLSsjZWxzZQotKyAgICAgICAgICAgIGZvciAo dW5zaWduZWQgaSA9IDAsIGVuZCA9IGxsdm06OmR5bl9jYXN0PGxsdm06OlZlY3RvclR5cGU+KHJl cy0+Z2V0VHlwZSgpKS0+Z2V0TnVtRWxlbWVudHMoKTsgaSA8IGVuZDsgKytpKQotKyNlbmRpZgot KyAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgLy8gR2V0IGVsZW1lbnQgdmlhIElFSQot ICAgICAgICAgICAgICAgICByZXMgPSBsbHZtOjpJbnNlcnRFbGVtZW50SW5zdDo6Q3JlYXRlKHJl cywgRUVJc1twdHJVc2UuaWR4c1tjdXJyX2lkeCsrXV0sCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6Q29uc3RhbnRJbnQ6OmdldChM TFZNVHlwZXM6OkludDMyVHlwZSwgaSksCi1AQCAtNTUyMiwxMCArNTUzNSwxMSBAQCBzdGF0aWMg Ym9vbCBsVmVjdG9yaXplR0VQcyhsbHZtOjpWYWx1ZSAqcHRyLCBzdGQ6OnZlY3RvcjxQdHJVc2U+ ICZwdHJVc2VzLCBzdGQ6OgotIAotICAgICAvLyBBZGp1c3QgdmFsdWVzIGZvciB2ZWN0b3IgbG9h ZAotICNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTFfMAotLSAgICBpZiAoYXV0 byB2ZWNUeSA9IGxsdm06OmR5bl9jYXN0PGxsdm06OkZpeGVkVmVjdG9yVHlwZT4odHlwZSkpIHsK LSsgICAgaWYgKGF1dG8gdmVjVHkgPSBsbHZtOjpkeW5fY2FzdDxsbHZtOjpGaXhlZFZlY3RvclR5 cGU+KHR5cGUpKQotICNlbHNlCi0tICAgIGlmIChhdXRvIHZlY1R5ID0gbGx2bTo6ZHluX2Nhc3Q8 bGx2bTo6VmVjdG9yVHlwZT4odHlwZSkpIHsKLSsgICAgaWYgKGF1dG8gdmVjVHkgPSBsbHZtOjpk eW5fY2FzdDxsbHZtOjpWZWN0b3JUeXBlPih0eXBlKSkKLSAjZW5kaWYKLSsgICAgewotICAgICAg ICAgLy8gR2V0IHNpbmdsZSBlbGVtZW50IHNpemUKLSAgICAgICAgIHRfc2l6ZSAvPSB2ZWNUeS0+ Z2V0TnVtRWxlbWVudHMoKTsKLSAgICAgICAgIC8vIEdldCBzaW5nbGUgZWxlbWVudCB0eXBlCi1A QCAtNjQ3Nyw3ICs2NDkxLDcgQEAgbGx2bTo6VmFsdWUgKkZpeEFkZHJlc3NTcGFjZTo6Y2FsY3Vs YXRlR2F0aGVyU2NhdHRlckFkZHJlc3MobGx2bTo6VmFsdWUgKlB0ciwgbGwKLSAjaWYgSVNQQ19M TFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzExXzAKLSAgICAgICAgIE9mZnNldHMsCi0gICAgICAg ICBsbHZtOjpGaXhlZFZlY3RvclR5cGU6OmdldChMTFZNVHlwZXM6OkludDY0VHlwZSwKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06OmR5bl9jYXN0PGxsdm06OlZlY3Rv clR5cGU+KE9mZnNldHMtPmdldFR5cGUoKSktPmdldE51bUVsZW1lbnRzKCkpLAotKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6Rml4ZWRWZWN0 b3JUeXBlPihPZmZzZXRzLT5nZXRUeXBlKCkpLT5nZXROdW1FbGVtZW50cygpKSwKLSAgICAgICAg ICJzdm1fb2Zmc2V0X3pleHQiLCBJbnNlcnRCZWZvcmUpOwotICNlbHNlCi0gICAgICAgICBPZmZz ZXRzLCBsbHZtOjpWZWN0b3JUeXBlOjpnZXQoTExWTVR5cGVzOjpJbnQ2NFR5cGUsIE9mZnNldHMt PmdldFR5cGUoKS0+Z2V0VmVjdG9yTnVtRWxlbWVudHMoKSksCi1AQCAtNjQ5Miw3ICs2NTA2LDcg QEAgbGx2bTo6VmFsdWUgKkZpeEFkZHJlc3NTcGFjZTo6Y2FsY3VsYXRlR2F0aGVyU2NhdHRlckFk ZHJlc3MobGx2bTo6VmFsdWUgKlB0ciwgbGwKLSAgICAgICAgIGxsdm06OlZhbHVlICp1bmRlZklu c2VydFZhbHVlID0KLSAjaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzExXzAKLSAg ICAgICAgICAgICBsbHZtOjpVbmRlZlZhbHVlOjpnZXQobGx2bTo6Rml4ZWRWZWN0b3JUeXBlOjpn ZXQoCi0tICAgICAgICAgICAgICAgIExMVk1UeXBlczo6SW50NjRUeXBlLCBsbHZtOjpkeW5fY2Fz dDxsbHZtOjpWZWN0b3JUeXBlPihhZGRyZXNzVHlwZSktPmdldE51bUVsZW1lbnRzKCkpKTsKLSsg ICAgICAgICAgICAgICAgTExWTVR5cGVzOjpJbnQ2NFR5cGUsIGxsdm06OmR5bl9jYXN0PGxsdm06 OkZpeGVkVmVjdG9yVHlwZT4oYWRkcmVzc1R5cGUpLT5nZXROdW1FbGVtZW50cygpKSk7Ci0gI2Vs c2UKLSAgICAgICAgICAgICBsbHZtOjpVbmRlZlZhbHVlOjpnZXQobGx2bTo6VmVjdG9yVHlwZTo6 Z2V0KExMVk1UeXBlczo6SW50NjRUeXBlLCBhZGRyZXNzVHlwZS0+Z2V0VmVjdG9yTnVtRWxlbWVu dHMoKSkpOwotICNlbmRpZgotQEAgLTY1MDEsMTcgKzY1MTUsMTYgQEAgbGx2bTo6VmFsdWUgKkZp eEFkZHJlc3NTcGFjZTo6Y2FsY3VsYXRlR2F0aGVyU2NhdHRlckFkZHJlc3MobGx2bTo6VmFsdWUg KlB0ciwgbGwKLSAjaWYgSVNQQ19MTFZNX1ZFUlNJT04gPCBJU1BDX0xMVk1fMTFfMAotICAgICAg ICAgICAgIGFkZHJlc3NUeXBlLT5nZXRWZWN0b3JOdW1FbGVtZW50cygpLAotICNlbGlmIElTUENf TExWTV9WRVJTSU9OIDwgSVNQQ19MTFZNXzEyXzAKLS0gICAgICAgICAgICB7bGx2bTo6ZHluX2Nh c3Q8bGx2bTo6VmVjdG9yVHlwZT4oYWRkcmVzc1R5cGUpLT5nZXROdW1FbGVtZW50cygpLCBmYWxz ZX0sCi0rICAgICAgICAgICAge2xsdm06OmR5bl9jYXN0PGxsdm06OkZpeGVkVmVjdG9yVHlwZT4o YWRkcmVzc1R5cGUpLT5nZXROdW1FbGVtZW50cygpLCBmYWxzZX0sCi0gI2Vsc2UKLS0gICAgICAg IGxsdm06OkVsZW1lbnRDb3VudDo6Z2V0KAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6Rml4ZWRWZWN0b3JUeXBlPihhZGRyZXNzVHlwZS0+Z2V0 TnVtRWxlbWVudHMoKSwgZmFsc2UpLAotKyAgICAgICAgICAgIGxsdm06OkVsZW1lbnRDb3VudDo6 Z2V0KGxsdm06OmR5bl9jYXN0PGxsdm06OkZpeGVkVmVjdG9yVHlwZT4oYWRkcmVzc1R5cGUpLT5n ZXROdW1FbGVtZW50cygpLCBmYWxzZSksCi0gI2VuZGlmCi0gICAgICAgICAgICAgbGx2bTo6Q29u c3RhbnQ6OmdldE51bGxWYWx1ZShsbHZtOjpUeXBlOjpnZXRJbnQzMlR5KEluc2VydEJlZm9yZS0+ Z2V0Q29udGV4dCgpKSkpOwotIAotICAgICAgICAgbGx2bTo6VmFsdWUgKnVuZGVmU2h1ZmZsZVZh bHVlID0KLSAjaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzExXzAKLSAgICAgICAg ICAgICBsbHZtOjpVbmRlZlZhbHVlOjpnZXQobGx2bTo6Rml4ZWRWZWN0b3JUeXBlOjpnZXQoCi0t ICAgICAgICAgICAgICAgIExMVk1UeXBlczo6SW50NjRUeXBlLCBsbHZtOjpkeW5fY2FzdDxsbHZt OjpWZWN0b3JUeXBlPihhZGRyZXNzVHlwZSktPmdldE51bUVsZW1lbnRzKCkpKTsKLSsgICAgICAg ICAgICAgICAgTExWTVR5cGVzOjpJbnQ2NFR5cGUsIGxsdm06OmR5bl9jYXN0PGxsdm06OkZpeGVk VmVjdG9yVHlwZT4oYWRkcmVzc1R5cGUpLT5nZXROdW1FbGVtZW50cygpKSk7Ci0gI2Vsc2UKLSAg ICAgICAgICAgICBsbHZtOjpVbmRlZlZhbHVlOjpnZXQobGx2bTo6VmVjdG9yVHlwZTo6Z2V0KExM Vk1UeXBlczo6SW50NjRUeXBlLCBhZGRyZXNzVHlwZS0+Z2V0VmVjdG9yTnVtRWxlbWVudHMoKSkp OwotICNlbmRpZgotQEAgLTY1NDIsNyArNjU1NSw4IEBAIGxsdm06Okluc3RydWN0aW9uICpGaXhB ZGRyZXNzU3BhY2U6OnByb2Nlc3NWZWN0b3JMb2FkKGxsdm06OkxvYWRJbnN0ICpMSSkgewotICAg ICAgICAgaXNQdHJMb2FkID0gdHJ1ZTsKLSAgICAgICAgIGF1dG8gc2NhbGFyVHlwZSA9IGctPnRh cmdldC0+aXMzMkJpdCgpID8gTExWTVR5cGVzOjpJbnQzMlR5cGUgOiBMTFZNVHlwZXM6OkludDY0 VHlwZTsKLSAjaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzExXzAKLS0gICAgICAg IHJldFR5cGUgPSBsbHZtOjpGaXhlZFZlY3RvclR5cGU6OmdldChzY2FsYXJUeXBlLCBsbHZtOjpk eW5fY2FzdDxsbHZtOjpWZWN0b3JUeXBlPihyZXRUeXBlKS0+Z2V0TnVtRWxlbWVudHMoKSk7Ci0r ICAgICAgICByZXRUeXBlID0KLSsgICAgICAgICAgICBsbHZtOjpGaXhlZFZlY3RvclR5cGU6Omdl dChzY2FsYXJUeXBlLCBsbHZtOjpkeW5fY2FzdDxsbHZtOjpGaXhlZFZlY3RvclR5cGU+KHJldFR5 cGUpLT5nZXROdW1FbGVtZW50cygpKTsKLSAjZWxzZQotICAgICAgICAgcmV0VHlwZSA9IGxsdm06 OlZlY3RvclR5cGU6OmdldChzY2FsYXJUeXBlLCByZXRUeXBlLT5nZXRWZWN0b3JOdW1FbGVtZW50 cygpKTsKLSAjZW5kaWYKLUBAIC02NjA0LDcgKzY2MTgsOCBAQCBsbHZtOjpJbnN0cnVjdGlvbiAq Rml4QWRkcmVzc1NwYWNlOjpwcm9jZXNzVmVjdG9yU3RvcmUobGx2bTo6U3RvcmVJbnN0ICpTSSkg ewotICAgICBpZiAodmFsVHlwZS0+Z2V0U2NhbGFyVHlwZSgpLT5pc1BvaW50ZXJUeSgpKSB7Ci0g ICAgICAgICBhdXRvIHNjYWxhclR5cGUgPSBnLT50YXJnZXQtPmlzMzJCaXQoKSA/IExMVk1UeXBl czo6SW50MzJUeXBlIDogTExWTVR5cGVzOjpJbnQ2NFR5cGU7Ci0gI2lmIElTUENfTExWTV9WRVJT SU9OID49IElTUENfTExWTV8xMV8wCi0tICAgICAgICB2YWxUeXBlID0gbGx2bTo6Rml4ZWRWZWN0 b3JUeXBlOjpnZXQoc2NhbGFyVHlwZSwgbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6VmVjdG9yVHlwZT4o dmFsVHlwZSktPmdldE51bUVsZW1lbnRzKCkpOwotKyAgICAgICAgdmFsVHlwZSA9Ci0rICAgICAg ICAgICAgbGx2bTo6Rml4ZWRWZWN0b3JUeXBlOjpnZXQoc2NhbGFyVHlwZSwgbGx2bTo6ZHluX2Nh c3Q8bGx2bTo6Rml4ZWRWZWN0b3JUeXBlPih2YWxUeXBlKS0+Z2V0TnVtRWxlbWVudHMoKSk7Ci0g I2Vsc2UKLSAgICAgICAgIHZhbFR5cGUgPSBsbHZtOjpWZWN0b3JUeXBlOjpnZXQoc2NhbGFyVHlw ZSwgdmFsVHlwZS0+Z2V0VmVjdG9yTnVtRWxlbWVudHMoKSk7Ci0gI2VuZGlmCmRpZmYgLS1naXQg YS9zcmNwa2dzL2lzcGMvcGF0Y2hlcy9sbHZtMTItMDA5LnBhdGNoIGIvc3JjcGtncy9pc3BjL3Bh dGNoZXMvbGx2bTEyLTAwOS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDNl YTY3ODI4NTgyLi4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9pc3BjL3BhdGNoZXMvbGx2bTEy LTAwOS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDIxMDkgKzAsMCBAQAotRnJvbSA5N2IxM2Mz MjEzMmUyNzA0YTVlM2U3YjJlYWU0OWQ4NTRkMDg3ZTNlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQotRnJvbTogQXJpbmEgTmVzaGx5YWV2YSA8YXJpbmEubmVzaGx5YWV2YUBpbnRlbC5jb20+Ci1E YXRlOiBUdWUsIDQgTWF5IDIwMjEgMTE6MzE6NTUgLTA3MDAKLVN1YmplY3Q6IFtQQVRDSF0gVXBk YXRlZCBidWlsdGlucy1jbSogZm9yIHN3aXRjaCB0byBMTFZNMTIKLQotLS0tCi0gYnVpbHRpbnMv YnVpbHRpbnMtY20tMzIubGwgfCAyMzQgKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0t LS0tLQotIGJ1aWx0aW5zL2J1aWx0aW5zLWNtLTY0LmxsIHwgMjMyICsrKysrKysrKysrKysrKysr Ky0tLS0tLS0tLS0tLS0tLS0tLQotIDIgZmlsZXMgY2hhbmdlZCwgMjMzIGluc2VydGlvbnMoKyks IDIzMyBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2J1aWx0aW5zL2J1aWx0aW5zLWNtLTMy LmxsIGIvYnVpbHRpbnMvYnVpbHRpbnMtY20tMzIubGwKLWluZGV4IDMyZGViZjMyZS4uNDgxYmJk YzQ4IDEwMDY0NAotLS0tIGEvYnVpbHRpbnMvYnVpbHRpbnMtY20tMzIubGwKLSsrKyBiL2J1aWx0 aW5zL2J1aWx0aW5zLWNtLTMyLmxsCi1AQCAtNTU3LDcgKzU1Nyw3IEBAICRfWk4xM1ZhcnlpbmdX cml0ZXIxMldyaXRlVmVjRWxlbUlQdkVFdnYgPSBjb21kYXQgYW55Ci0gQC5zdHIuMTAgPSBwcml2 YXRlIHVubmFtZWRfYWRkciBjb25zdGFudCBbNSB4IGk4XSBjIiUwOFhcMDAiLCBhbGlnbiAxCi0g Ci0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2Fs IHNpZ25leHQgaTggQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZjYyhpOCBzaWduZXh0LCBp OCBzaWduZXh0KSAjMCB7Ci0rZGVmaW5lIGludGVybmFsIHNpZ25leHQgaTggQF9aMjRfX2NtX2lu dHJpbnNpY19pbXBsX3NkaXZjYyhpOCBzaWduZXh0LCBpOCBzaWduZXh0KSAjMCB7Ci0gICAlMyA9 IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgJTQgPSBhbGxvY2EgaTgsIGFsaWduIDEKLSAgICU1ID0g YWxsb2NhIDwxIHggaTg+LCBhbGlnbiAxCi1AQCAtNjE4LDcgKzYxOCw3IEBAIGRlZmluZSBpbnRl cm5hbCA8MSB4IGk4PiBAX1pON2RldGFpbHMxM19faW1wbF9kaXZyZW1JTGkxRUVFdTJDTXZiVF9f Y1MxX1MxX3UyQ012Ci0gZGVjbGFyZSA8MSB4IGk4PiBAbGx2bS5nZW54LnJkcmVnaW9uaS52MWk4 LnYxaTguaTE2KDwxIHggaTg+LCBpMzIsIGkzMiwgaTMyLCBpMTYsIGkzMikgIzIKLSAKLSA7IEZ1 bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDEgeCBp OD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmIxX2NTXyg8MSB4IGk4PiwgPDEg eCBpOD4pICMwIHsKLStkZWZpbmUgaW50ZXJuYWwgPDEgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNp Y19pbXBsX3NkaXZ1MkNNdmIxX2NTXyg8MSB4IGk4PiwgPDEgeCBpOD4pICMwIHsKLSAgICUzID0g YWxsb2NhIDwxIHggaTg+LCBhbGlnbiAxCi0gICAlNCA9IGFsbG9jYSA8MSB4IGk4PiwgYWxpZ24g MQotICAgJTUgPSBhbGxvY2EgPDEgeCBpOD4sIGFsaWduIDEKLUBAIC02MzQsNyArNjM0LDcgQEAg ZGVmaW5lIGRzb19sb2NhbCA8MSB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUy Q012YjFfY1NfKDwxIHggaTg+LCA8MQotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGlu ZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDIgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNp Y19pbXBsX3NkaXZ1MkNNdmIyX2NTXyg8MiB4IGk4PiwgPDIgeCBpOD4pICMzIHsKLStkZWZpbmUg aW50ZXJuYWwgPDIgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmIyX2NT Xyg8MiB4IGk4PiwgPDIgeCBpOD4pICMzIHsKLSAgICUzID0gYWxsb2NhIDwyIHggaTg+LCBhbGln biAyCi0gICAlNCA9IGFsbG9jYSA8MiB4IGk4PiwgYWxpZ24gMgotICAgJTUgPSBhbGxvY2EgPDIg eCBpOD4sIGFsaWduIDIKLUBAIC02ODAsNyArNjgwLDcgQEAgZGVmaW5lIGludGVybmFsIDwyIHgg aTg+IEBfWk43ZGV0YWlsczEzX19pbXBsX2RpdnJlbUlMaTJFRUV1MkNNdmJUX19jUzFfUzFfdTJD TXYKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUg ZHNvX2xvY2FsIDw0IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZiNF9j U18oPDQgeCBpOD4sIDw0IHggaTg+KSAjNSB7Ci0rZGVmaW5lIGludGVybmFsIDw0IHggaTg+IEBf WjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZiNF9jU18oPDQgeCBpOD4sIDw0IHggaTg+ KSAjNSB7Ci0gICAlMyA9IGFsbG9jYSA8NCB4IGk4PiwgYWxpZ24gNAotICAgJTQgPSBhbGxvY2Eg PDQgeCBpOD4sIGFsaWduIDQKLSAgICU1ID0gYWxsb2NhIDw0IHggaTg+LCBhbGlnbiA0Ci1AQCAt ODE4LDcgKzgxOCw3IEBAIGRlZmluZSBpbnRlcm5hbCA8MTYgeCBpOD4gQF9aTjdkZXRhaWxzMTNf X2ltcGxfZGl2cmVtSUxpMTZFRUV1MkNNdmJUX19jUzFfUzFfdTJDCi0gfQotIAotIDsgRnVuY3Rp b24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MzIgeCBpOD4g QF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmIzMl9jU18oPDMyIHggaTg+LCA8MzIg eCBpOD4pICMxMSB7Ci0rZGVmaW5lIGludGVybmFsIDwzMiB4IGk4PiBAX1oyNF9fY21faW50cmlu c2ljX2ltcGxfc2RpdnUyQ012YjMyX2NTXyg8MzIgeCBpOD4sIDwzMiB4IGk4PikgIzExIHsKLSAg ICUzID0gYWxsb2NhIDwzMiB4IGk4PiwgYWxpZ24gMzIKLSAgICU0ID0gYWxsb2NhIDwzMiB4IGk4 PiwgYWxpZ24gMzIKLSAgICU1ID0gYWxsb2NhIDwzMiB4IGk4PiwgYWxpZ24gMzIKLUBAIC04NjQs NyArODY0LDcgQEAgZGVmaW5lIGludGVybmFsIDwzMiB4IGk4PiBAX1pON2RldGFpbHMxM19faW1w bF9kaXZyZW1JTGkzMkVFRXUyQ012YlRfX2NTMV9TMV91MkMKLSB9Ci0gCi0gOyBGdW5jdGlvbiBB dHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIHNpZ25leHQgaTggQF9a MjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW1jYyhpOCBzaWduZXh0LCBpOCBzaWduZXh0KSAjMCB7 Ci0rZGVmaW5lIGludGVybmFsIHNpZ25leHQgaTggQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3Ny ZW1jYyhpOCBzaWduZXh0LCBpOCBzaWduZXh0KSAjMCB7Ci0gICAlMyA9IGFsbG9jYSBpOCwgYWxp Z24gMQotICAgJTQgPSBhbGxvY2EgaTgsIGFsaWduIDEKLSAgICU1ID0gYWxsb2NhIDwxIHggaTg+ LCBhbGlnbiAxCi1AQCAtODkwLDcgKzg5MCw3IEBAIGRlZmluZSBkc29fbG9jYWwgc2lnbmV4dCBp OCBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbWNjKGk4IHNpZ25leHQsIGk4IHNpZ25lCi0g fQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19s b2NhbCA8MSB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjFfY1NfKDwx IHggaTg+LCA8MSB4IGk4PikgIzAgewotK2RlZmluZSBpbnRlcm5hbCA8MSB4IGk4PiBAX1oyNF9f Y21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjFfY1NfKDwxIHggaTg+LCA8MSB4IGk4PikgIzAg ewotICAgJTMgPSBhbGxvY2EgPDEgeCBpOD4sIGFsaWduIDEKLSAgICU0ID0gYWxsb2NhIDwxIHgg aTg+LCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSA8MSB4IGk4PiwgYWxpZ24gMQotQEAgLTkwNCw3 ICs5MDQsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwxIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNf aW1wbF9zcmVtdTJDTXZiMV9jU18oPDEgeCBpOD4sIDwxCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0 cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MiB4IGk4PiBAX1oyNF9f Y21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjJfY1NfKDwyIHggaTg+LCA8MiB4IGk4PikgIzMg ewotK2RlZmluZSBpbnRlcm5hbCA8MiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3Jl bXUyQ012YjJfY1NfKDwyIHggaTg+LCA8MiB4IGk4PikgIzMgewotICAgJTMgPSBhbGxvY2EgPDIg eCBpOD4sIGFsaWduIDIKLSAgICU0ID0gYWxsb2NhIDwyIHggaTg+LCBhbGlnbiAyCi0gICAlNSA9 IGFsbG9jYSA8MiB4IGk4PiwgYWxpZ24gMgotQEAgLTkxOCw3ICs5MTgsNyBAQCBkZWZpbmUgZHNv X2xvY2FsIDwyIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMl9jU18o PDIgeCBpOD4sIDwyCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5k Ci0tZGVmaW5lIGRzb19sb2NhbCA8NCB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3Jl bXUyQ012YjRfY1NfKDw0IHggaTg+LCA8NCB4IGk4PikgIzUgewotK2RlZmluZSBpbnRlcm5hbCA8 NCB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjRfY1NfKDw0IHggaTg+ LCA8NCB4IGk4PikgIzUgewotICAgJTMgPSBhbGxvY2EgPDQgeCBpOD4sIGFsaWduIDQKLSAgICU0 ID0gYWxsb2NhIDw0IHggaTg+LCBhbGlnbiA0Ci0gICAlNSA9IGFsbG9jYSA8NCB4IGk4PiwgYWxp Z24gNAotQEAgLTkzMiw3ICs5MzIsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDw0IHggaTg+IEBfWjI0 X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiNF9jU18oPDQgeCBpOD4sIDw0Ci0gfQotIAot IDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8 OCB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjhfY1NfKDw4IHggaTg+ LCA8OCB4IGk4PikgIzcgewotK2RlZmluZSBpbnRlcm5hbCA8OCB4IGk4PiBAX1oyNF9fY21faW50 cmluc2ljX2ltcGxfc3JlbXUyQ012YjhfY1NfKDw4IHggaTg+LCA8OCB4IGk4PikgIzcgewotICAg JTMgPSBhbGxvY2EgPDggeCBpOD4sIGFsaWduIDgKLSAgICU0ID0gYWxsb2NhIDw4IHggaTg+LCBh bGlnbiA4Ci0gICAlNSA9IGFsbG9jYSA8OCB4IGk4PiwgYWxpZ24gOAotQEAgLTk0Niw3ICs5NDYs NyBAQCBkZWZpbmUgZHNvX2xvY2FsIDw4IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9z cmVtdTJDTXZiOF9jU18oPDggeCBpOD4sIDw4Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5v aW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MTYgeCBpOD4gQF9aMjRfX2NtX2lu dHJpbnNpY19pbXBsX3NyZW11MkNNdmIxNl9jU18oPDE2IHggaTg+LCA8MTYgeCBpOD4pICM5IHsK LStkZWZpbmUgaW50ZXJuYWwgPDE2IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVt dTJDTXZiMTZfY1NfKDwxNiB4IGk4PiwgPDE2IHggaTg+KSAjOSB7Ci0gICAlMyA9IGFsbG9jYSA8 MTYgeCBpOD4sIGFsaWduIDE2Ci0gICAlNCA9IGFsbG9jYSA8MTYgeCBpOD4sIGFsaWduIDE2Ci0g ICAlNSA9IGFsbG9jYSA8MTYgeCBpOD4sIGFsaWduIDE2Ci1AQCAtOTYwLDcgKzk2MCw3IEBAIGRl ZmluZSBkc29fbG9jYWwgPDE2IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJD TXZiMTZfY1NfKDwxNiB4IGk4PiwKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUg bm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwzMiB4IGk4PiBAX1oyNF9fY21faW50cmluc2lj X2ltcGxfc3JlbXUyQ012YjMyX2NTXyg8MzIgeCBpOD4sIDwzMiB4IGk4PikgIzExIHsKLStkZWZp bmUgaW50ZXJuYWwgPDMyIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZi MzJfY1NfKDwzMiB4IGk4PiwgPDMyIHggaTg+KSAjMTEgewotICAgJTMgPSBhbGxvY2EgPDMyIHgg aTg+LCBhbGlnbiAzMgotICAgJTQgPSBhbGxvY2EgPDMyIHggaTg+LCBhbGlnbiAzMgotICAgJTUg PSBhbGxvY2EgPDMyIHggaTg+LCBhbGlnbiAzMgotQEAgLTk3NCw3ICs5NzQsNyBAQCBkZWZpbmUg ZHNvX2xvY2FsIDwzMiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjMy X2NTXyg8MzIgeCBpOD4sCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53 aW5kCi0tZGVmaW5lIGRzb19sb2NhbCBzaWduZXh0IGkxNiBAX1oyNF9fY21faW50cmluc2ljX2lt cGxfc2RpdnNzKGkxNiBzaWduZXh0LCBpMTYgc2lnbmV4dCkgIzMgewotK2RlZmluZSBpbnRlcm5h bCBzaWduZXh0IGkxNiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnNzKGkxNiBzaWduZXh0 LCBpMTYgc2lnbmV4dCkgIzMgewotICAgJTMgPSBhbGxvY2EgaTE2LCBhbGlnbiAyCi0gICAlNCA9 IGFsbG9jYSBpMTYsIGFsaWduIDIKLSAgICU1ID0gYWxsb2NhIDwxIHggaTE2PiwgYWxpZ24gMgot QEAgLTEwNTgsNyArMTA1OCw3IEBAIGRlZmluZSBpbnRlcm5hbCA8MSB4IGkxNj4gQF9aTjdkZXRh aWxzMTNfX2ltcGxfZGl2cmVtSUxpMUVFRXUyQ012YlRfX3NTMV9TMV91MkNNCi0gZGVjbGFyZSA8 MSB4IGkxNj4gQGxsdm0uZ2VueC5yZHJlZ2lvbmkudjFpMTYudjFpMTYuaTE2KDwxIHggaTE2Piwg aTMyLCBpMzIsIGkzMiwgaTE2LCBpMzIpICMyCi0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxp bmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwxIHggaTE2PiBAX1oyNF9fY21faW50cmlu c2ljX2ltcGxfc2RpdnUyQ012YjFfc1NfKDwxIHggaTE2PiwgPDEgeCBpMTY+KSAjMyB7Ci0rZGVm aW5lIGludGVybmFsIDwxIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012 YjFfc1NfKDwxIHggaTE2PiwgPDEgeCBpMTY+KSAjMyB7Ci0gICAlMyA9IGFsbG9jYSA8MSB4IGkx Nj4sIGFsaWduIDIKLSAgICU0ID0gYWxsb2NhIDwxIHggaTE2PiwgYWxpZ24gMgotICAgJTUgPSBh bGxvY2EgPDEgeCBpMTY+LCBhbGlnbiAyCi1AQCAtMTA3NCw3ICsxMDc0LDcgQEAgZGVmaW5lIGRz b19sb2NhbCA8MSB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmIxX3NT Xyg8MSB4IGkxNj4sIDwKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndp bmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwyIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxf c2RpdnUyQ012YjJfc1NfKDwyIHggaTE2PiwgPDIgeCBpMTY+KSAjNSB7Ci0rZGVmaW5lIGludGVy bmFsIDwyIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjJfc1NfKDwy IHggaTE2PiwgPDIgeCBpMTY+KSAjNSB7Ci0gICAlMyA9IGFsbG9jYSA8MiB4IGkxNj4sIGFsaWdu IDQKLSAgICU0ID0gYWxsb2NhIDwyIHggaTE2PiwgYWxpZ24gNAotICAgJTUgPSBhbGxvY2EgPDIg eCBpMTY+LCBhbGlnbiA0Ci1AQCAtMTE0Myw3ICsxMTQzLDcgQEAgZGVmaW5lIGludGVybmFsIDwy IHggaTE2PiBAX1pON2RldGFpbHMxM19faW1wbF9kaXZyZW1JTGkyRUVFdTJDTXZiVF9fc1MxX1Mx X3UyQ00KLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZp bmUgZHNvX2xvY2FsIDw0IHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012 YjRfc1NfKDw0IHggaTE2PiwgPDQgeCBpMTY+KSAjNyB7Ci0rZGVmaW5lIGludGVybmFsIDw0IHgg aTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjRfc1NfKDw0IHggaTE2Piwg PDQgeCBpMTY+KSAjNyB7Ci0gICAlMyA9IGFsbG9jYSA8NCB4IGkxNj4sIGFsaWduIDgKLSAgICU0 ID0gYWxsb2NhIDw0IHggaTE2PiwgYWxpZ24gOAotICAgJTUgPSBhbGxvY2EgPDQgeCBpMTY+LCBh bGlnbiA4Ci1AQCAtMTM1MCw3ICsxMzUwLDcgQEAgZGVmaW5lIGludGVybmFsIDwxNiB4IGkxNj4g QF9aTjdkZXRhaWxzMTNfX2ltcGxfZGl2cmVtSUxpMTZFRUV1MkNNdmJUX19zUzFfUzFfdTIKLSB9 Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xv Y2FsIDwzMiB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmIzMl9zU18o PDMyIHggaTE2PiwgPDMyIHggaTE2PikgIzEzIHsKLStkZWZpbmUgaW50ZXJuYWwgPDMyIHggaTE2 PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjMyX3NTXyg8MzIgeCBpMTY+LCA8 MzIgeCBpMTY+KSAjMTMgewotICAgJTMgPSBhbGxvY2EgPDMyIHggaTE2PiwgYWxpZ24gNjQKLSAg ICU0ID0gYWxsb2NhIDwzMiB4IGkxNj4sIGFsaWduIDY0Ci0gICAlNSA9IGFsbG9jYSA8MzIgeCBp MTY+LCBhbGlnbiA2NAotQEAgLTE0MTksNyArMTQxOSw3IEBAIGRlZmluZSBpbnRlcm5hbCA8MzIg eCBpMTY+IEBfWk43ZGV0YWlsczEzX19pbXBsX2RpdnJlbUlMaTMyRUVFdTJDTXZiVF9fc1MxX1Mx X3UyCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5l IGRzb19sb2NhbCBzaWduZXh0IGkxNiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXNzKGkx NiBzaWduZXh0LCBpMTYgc2lnbmV4dCkgIzMgewotK2RlZmluZSBpbnRlcm5hbCBzaWduZXh0IGkx NiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXNzKGkxNiBzaWduZXh0LCBpMTYgc2lnbmV4 dCkgIzMgewotICAgJTMgPSBhbGxvY2EgaTE2LCBhbGlnbiAyCi0gICAlNCA9IGFsbG9jYSBpMTYs IGFsaWduIDIKLSAgICU1ID0gYWxsb2NhIDwxIHggaTE2PiwgYWxpZ24gMgotQEAgLTE0NDUsNyAr MTQ0NSw3IEBAIGRlZmluZSBkc29fbG9jYWwgc2lnbmV4dCBpMTYgQF9aMjRfX2NtX2ludHJpbnNp Y19pbXBsX3NyZW1zcyhpMTYgc2lnbmV4dCwgaTE2IHNpCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0 cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MSB4IGkxNj4gQF9aMjRf X2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIxX3NTXyg8MSB4IGkxNj4sIDwxIHggaTE2Pikg IzMgewotK2RlZmluZSBpbnRlcm5hbCA8MSB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBs X3NyZW11MkNNdmIxX3NTXyg8MSB4IGkxNj4sIDwxIHggaTE2PikgIzMgewotICAgJTMgPSBhbGxv Y2EgPDEgeCBpMTY+LCBhbGlnbiAyCi0gICAlNCA9IGFsbG9jYSA8MSB4IGkxNj4sIGFsaWduIDIK LSAgICU1ID0gYWxsb2NhIDwxIHggaTE2PiwgYWxpZ24gMgotQEAgLTE0NTksNyArMTQ1OSw3IEBA IGRlZmluZSBkc29fbG9jYWwgPDEgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVt dTJDTXZiMV9zU18oPDEgeCBpMTY+LCA8Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5s aW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MiB4IGkxNj4gQF9aMjRfX2NtX2ludHJp bnNpY19pbXBsX3NyZW11MkNNdmIyX3NTXyg8MiB4IGkxNj4sIDwyIHggaTE2PikgIzUgewotK2Rl ZmluZSBpbnRlcm5hbCA8MiB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNN dmIyX3NTXyg8MiB4IGkxNj4sIDwyIHggaTE2PikgIzUgewotICAgJTMgPSBhbGxvY2EgPDIgeCBp MTY+LCBhbGlnbiA0Ci0gICAlNCA9IGFsbG9jYSA8MiB4IGkxNj4sIGFsaWduIDQKLSAgICU1ID0g YWxsb2NhIDwyIHggaTE2PiwgYWxpZ24gNAotQEAgLTE0NzMsNyArMTQ3Myw3IEBAIGRlZmluZSBk c29fbG9jYWwgPDIgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMl9z U18oPDIgeCBpMTY+LCA8Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53 aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8NCB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBs X3NyZW11MkNNdmI0X3NTXyg8NCB4IGkxNj4sIDw0IHggaTE2PikgIzcgewotK2RlZmluZSBpbnRl cm5hbCA8NCB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmI0X3NTXyg8 NCB4IGkxNj4sIDw0IHggaTE2PikgIzcgewotICAgJTMgPSBhbGxvY2EgPDQgeCBpMTY+LCBhbGln biA4Ci0gICAlNCA9IGFsbG9jYSA8NCB4IGkxNj4sIGFsaWduIDgKLSAgICU1ID0gYWxsb2NhIDw0 IHggaTE2PiwgYWxpZ24gOAotQEAgLTE0ODcsNyArMTQ4Nyw3IEBAIGRlZmluZSBkc29fbG9jYWwg PDQgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiNF9zU18oPDQgeCBp MTY+LCA8Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVm aW5lIGRzb19sb2NhbCA8OCB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNN dmI4X3NTXyg8OCB4IGkxNj4sIDw4IHggaTE2PikgIzkgewotK2RlZmluZSBpbnRlcm5hbCA8OCB4 IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmI4X3NTXyg8OCB4IGkxNj4s IDw4IHggaTE2PikgIzkgewotICAgJTMgPSBhbGxvY2EgPDggeCBpMTY+LCBhbGlnbiAxNgotICAg JTQgPSBhbGxvY2EgPDggeCBpMTY+LCBhbGlnbiAxNgotICAgJTUgPSBhbGxvY2EgPDggeCBpMTY+ LCBhbGlnbiAxNgotQEAgLTE1MDEsNyArMTUwMSw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDggeCBp MTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiOF9zU18oPDggeCBpMTY+LCA8 Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRz b19sb2NhbCA8MTYgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMTZf c1NfKDwxNiB4IGkxNj4sIDwxNiB4IGkxNj4pICMxMSB7Ci0rZGVmaW5lIGludGVybmFsIDwxNiB4 IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIxNl9zU18oPDE2IHggaTE2 PiwgPDE2IHggaTE2PikgIzExIHsKLSAgICUzID0gYWxsb2NhIDwxNiB4IGkxNj4sIGFsaWduIDMy Ci0gICAlNCA9IGFsbG9jYSA8MTYgeCBpMTY+LCBhbGlnbiAzMgotICAgJTUgPSBhbGxvY2EgPDE2 IHggaTE2PiwgYWxpZ24gMzIKLUBAIC0xNTE1LDcgKzE1MTUsNyBAQCBkZWZpbmUgZHNvX2xvY2Fs IDwxNiB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIxNl9zU18oPDE2 IHggaTE2PgotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRl ZmluZSBkc29fbG9jYWwgPDMyIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUy Q012YjMyX3NTXyg8MzIgeCBpMTY+LCA8MzIgeCBpMTY+KSAjMTMgewotK2RlZmluZSBpbnRlcm5h bCA8MzIgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMzJfc1NfKDwz MiB4IGkxNj4sIDwzMiB4IGkxNj4pICMxMyB7Ci0gICAlMyA9IGFsbG9jYSA8MzIgeCBpMTY+LCBh bGlnbiA2NAotICAgJTQgPSBhbGxvY2EgPDMyIHggaTE2PiwgYWxpZ24gNjQKLSAgICU1ID0gYWxs b2NhIDwzMiB4IGkxNj4sIGFsaWduIDY0Ci1AQCAtMTUyOSw3ICsxNTI5LDcgQEAgZGVmaW5lIGRz b19sb2NhbCA8MzIgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMzJf c1NfKDwzMiB4IGkxNj4KLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndp bmQKLS1kZWZpbmUgZHNvX2xvY2FsIGkzMiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2Rpdmlp KGkzMiwgaTMyKSAjMTQgewotK2RlZmluZSBpbnRlcm5hbCBpMzIgQF9aMjRfX2NtX2ludHJpbnNp Y19pbXBsX3NkaXZpaShpMzIsIGkzMikgIzE0IHsKLSAgICUzID0gYWxsb2NhIGkzMiwgYWxpZ24g NAotICAgJTQgPSBhbGxvY2EgaTMyLCBhbGlnbiA0Ci0gICAlNSA9IGFsbG9jYSA8MSB4IGkzMj4s IGFsaWduIDQKLUBAIC0xNzMwLDcgKzE3MzAsNyBAQCBkZWZpbmUgaW50ZXJuYWwgPDEgeCBpMzI+ IEBfWk43ZGV0YWlsczEzX19pbXBsX2RpdnJlbUlMaTFFRUV1MkNNdmJUX19pUzFfUzFfdTJDTQot IGRlY2xhcmUgPDEgeCBpMzI+IEBsbHZtLmdlbngucmRyZWdpb25pLnYxaTMyLnYxaTMyLmkxNig8 MSB4IGkzMj4sIGkzMiwgaTMyLCBpMzIsIGkxNiwgaTMyKSAjMgotIAotIDsgRnVuY3Rpb24gQXR0 cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MSB4IGkzMj4gQF9aMjRf X2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmIxX2lTXyg8MSB4IGkzMj4sIDwxIHggaTMyPikg IzE0IHsKLStkZWZpbmUgaW50ZXJuYWwgPDEgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1w bF9zZGl2dTJDTXZiMV9pU18oPDEgeCBpMzI+LCA8MSB4IGkzMj4pICMxNCB7Ci0gICAlMyA9IGFs bG9jYSA8MSB4IGkzMj4sIGFsaWduIDQKLSAgICU0ID0gYWxsb2NhIDwxIHggaTMyPiwgYWxpZ24g NAotICAgJTUgPSBhbGxvY2EgPDEgeCBpMzI+LCBhbGlnbiA0Ci1AQCAtMTc0Niw3ICsxNzQ2LDcg QEAgZGVmaW5lIGRzb19sb2NhbCA8MSB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3Nk aXZ1MkNNdmIxX2lTXyg8MSB4IGkzMj4sIDwKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9p bmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwyIHggaTMyPiBAX1oyNF9fY21faW50 cmluc2ljX2ltcGxfc2RpdnUyQ012YjJfaVNfKDwyIHggaTMyPiwgPDIgeCBpMzI+KSAjMTUgewot K2RlZmluZSBpbnRlcm5hbCA8MiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1 MkNNdmIyX2lTXyg8MiB4IGkzMj4sIDwyIHggaTMyPikgIzE1IHsKLSAgICUzID0gYWxsb2NhIDwy IHggaTMyPiwgYWxpZ24gOAotICAgJTQgPSBhbGxvY2EgPDIgeCBpMzI+LCBhbGlnbiA4Ci0gICAl NSA9IGFsbG9jYSA8MiB4IGkzMj4sIGFsaWduIDgKLUBAIC0xOTMyLDcgKzE5MzIsNyBAQCBkZWZp bmUgaW50ZXJuYWwgPDIgeCBpMzI+IEBfWk43ZGV0YWlsczEzX19pbXBsX2RpdnJlbUlMaTJFRUV1 MkNNdmJUX19pUzFfUzFfdTJDTQotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBu b3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDQgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNf aW1wbF9zZGl2dTJDTXZiNF9pU18oPDQgeCBpMzI+LCA8NCB4IGkzMj4pICMxNiB7Ci0rZGVmaW5l IGludGVybmFsIDw0IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjRf aVNfKDw0IHggaTMyPiwgPDQgeCBpMzI+KSAjMTYgewotICAgJTMgPSBhbGxvY2EgPDQgeCBpMzI+ LCBhbGlnbiAxNgotICAgJTQgPSBhbGxvY2EgPDQgeCBpMzI+LCBhbGlnbiAxNgotICAgJTUgPSBh bGxvY2EgPDQgeCBpMzI+LCBhbGlnbiAxNgotQEAgLTI0OTAsNyArMjQ5MCw3IEBAIGRlZmluZSBp bnRlcm5hbCA8MTYgeCBpMzI+IEBfWk43ZGV0YWlsczEzX19pbXBsX2RpdnJlbUlMaTE2RUVFdTJD TXZiVF9faVMxX1MxX3UyCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53 aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MzIgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1w bF9zZGl2dTJDTXZiMzJfaVNfKDwzMiB4IGkzMj4sIDwzMiB4IGkzMj4pICMxOSB7Ci0rZGVmaW5l IGludGVybmFsIDwzMiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmIz Ml9pU18oPDMyIHggaTMyPiwgPDMyIHggaTMyPikgIzE5IHsKLSAgICUzID0gYWxsb2NhIDwzMiB4 IGkzMj4sIGFsaWduIDEyOAotICAgJTQgPSBhbGxvY2EgPDMyIHggaTMyPiwgYWxpZ24gMTI4Ci0g ICAlNSA9IGFsbG9jYSA8MzIgeCBpMzI+LCBhbGlnbiAxMjgKLUBAIC0yNjc2LDcgKzI2NzYsNyBA QCBkZWZpbmUgaW50ZXJuYWwgPDMyIHggaTMyPiBAX1pON2RldGFpbHMxM19faW1wbF9kaXZyZW1J TGkzMkVFRXUyQ012YlRfX2lTMV9TMV91MgotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lu bGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgaTMyIEBfWjI0X19jbV9pbnRyaW5zaWNf aW1wbF9zcmVtaWkoaTMyLCBpMzIpICMxNCB7Ci0rZGVmaW5lIGludGVybmFsIGkzMiBAX1oyNF9f Y21faW50cmluc2ljX2ltcGxfc3JlbWlpKGkzMiwgaTMyKSAjMTQgewotICAgJTMgPSBhbGxvY2Eg aTMyLCBhbGlnbiA0Ci0gICAlNCA9IGFsbG9jYSBpMzIsIGFsaWduIDQKLSAgICU1ID0gYWxsb2Nh IDwxIHggaTMyPiwgYWxpZ24gNAotQEAgLTI3MDIsNyArMjcwMiw3IEBAIGRlZmluZSBkc29fbG9j YWwgaTMyIEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtaWkoaTMyLCBpMzIpICMxNCB7Ci0g fQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19s b2NhbCA8MSB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIxX2lTXyg8 MSB4IGkzMj4sIDwxIHggaTMyPikgIzE0IHsKLStkZWZpbmUgaW50ZXJuYWwgPDEgeCBpMzI+IEBf WjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMV9pU18oPDEgeCBpMzI+LCA8MSB4IGkz Mj4pICMxNCB7Ci0gICAlMyA9IGFsbG9jYSA8MSB4IGkzMj4sIGFsaWduIDQKLSAgICU0ID0gYWxs b2NhIDwxIHggaTMyPiwgYWxpZ24gNAotICAgJTUgPSBhbGxvY2EgPDEgeCBpMzI+LCBhbGlnbiA0 Ci1AQCAtMjcxNiw3ICsyNzE2LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MSB4IGkzMj4gQF9aMjRf X2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIxX2lTXyg8MSB4IGkzMj4sIDwKLSB9Ci0gCi0g OyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwy IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjJfaVNfKDwyIHggaTMy PiwgPDIgeCBpMzI+KSAjMTUgewotK2RlZmluZSBpbnRlcm5hbCA8MiB4IGkzMj4gQF9aMjRfX2Nt X2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIyX2lTXyg8MiB4IGkzMj4sIDwyIHggaTMyPikgIzE1 IHsKLSAgICUzID0gYWxsb2NhIDwyIHggaTMyPiwgYWxpZ24gOAotICAgJTQgPSBhbGxvY2EgPDIg eCBpMzI+LCBhbGlnbiA4Ci0gICAlNSA9IGFsbG9jYSA8MiB4IGkzMj4sIGFsaWduIDgKLUBAIC0y NzMwLDcgKzI3MzAsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwyIHggaTMyPiBAX1oyNF9fY21faW50 cmluc2ljX2ltcGxfc3JlbXUyQ012YjJfaVNfKDwyIHggaTMyPiwgPAotIH0KLSAKLSA7IEZ1bmN0 aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDQgeCBpMzI+ IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiNF9pU18oPDQgeCBpMzI+LCA8NCB4 IGkzMj4pICMxNiB7Ci0rZGVmaW5lIGludGVybmFsIDw0IHggaTMyPiBAX1oyNF9fY21faW50cmlu c2ljX2ltcGxfc3JlbXUyQ012YjRfaVNfKDw0IHggaTMyPiwgPDQgeCBpMzI+KSAjMTYgewotICAg JTMgPSBhbGxvY2EgPDQgeCBpMzI+LCBhbGlnbiAxNgotICAgJTQgPSBhbGxvY2EgPDQgeCBpMzI+ LCBhbGlnbiAxNgotICAgJTUgPSBhbGxvY2EgPDQgeCBpMzI+LCBhbGlnbiAxNgotQEAgLTI3NDQs NyArMjc0NCw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDQgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5z aWNfaW1wbF9zcmVtdTJDTXZiNF9pU18oPDQgeCBpMzI+LCA8Ci0gfQotIAotIDsgRnVuY3Rpb24g QXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8OCB4IGkzMj4gQF9a MjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmI4X2lTXyg8OCB4IGkzMj4sIDw4IHggaTMy PikgIzE3IHsKLStkZWZpbmUgaW50ZXJuYWwgPDggeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNf aW1wbF9zcmVtdTJDTXZiOF9pU18oPDggeCBpMzI+LCA8OCB4IGkzMj4pICMxNyB7Ci0gICAlMyA9 IGFsbG9jYSA8OCB4IGkzMj4sIGFsaWduIDMyCi0gICAlNCA9IGFsbG9jYSA8OCB4IGkzMj4sIGFs aWduIDMyCi0gICAlNSA9IGFsbG9jYSA8OCB4IGkzMj4sIGFsaWduIDMyCi1AQCAtMjc1OCw3ICsy NzU4LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8OCB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19p bXBsX3NyZW11MkNNdmI4X2lTXyg8OCB4IGkzMj4sIDwKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRy czogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwxNiB4IGkzMj4gQF9aMjRf X2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIxNl9pU18oPDE2IHggaTMyPiwgPDE2IHggaTMy PikgIzE4IHsKLStkZWZpbmUgaW50ZXJuYWwgPDE2IHggaTMyPiBAX1oyNF9fY21faW50cmluc2lj X2ltcGxfc3JlbXUyQ012YjE2X2lTXyg8MTYgeCBpMzI+LCA8MTYgeCBpMzI+KSAjMTggewotICAg JTMgPSBhbGxvY2EgPDE2IHggaTMyPiwgYWxpZ24gNjQKLSAgICU0ID0gYWxsb2NhIDwxNiB4IGkz Mj4sIGFsaWduIDY0Ci0gICAlNSA9IGFsbG9jYSA8MTYgeCBpMzI+LCBhbGlnbiA2NAotQEAgLTI3 NzIsNyArMjc3Miw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDE2IHggaTMyPiBAX1oyNF9fY21faW50 cmluc2ljX2ltcGxfc3JlbXUyQ012YjE2X2lTXyg8MTYgeCBpMzI+Ci0gfQotIAotIDsgRnVuY3Rp b24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MzIgeCBpMzI+ IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMzJfaVNfKDwzMiB4IGkzMj4sIDwz MiB4IGkzMj4pICMxOSB7Ci0rZGVmaW5lIGludGVybmFsIDwzMiB4IGkzMj4gQF9aMjRfX2NtX2lu dHJpbnNpY19pbXBsX3NyZW11MkNNdmIzMl9pU18oPDMyIHggaTMyPiwgPDMyIHggaTMyPikgIzE5 IHsKLSAgICUzID0gYWxsb2NhIDwzMiB4IGkzMj4sIGFsaWduIDEyOAotICAgJTQgPSBhbGxvY2Eg PDMyIHggaTMyPiwgYWxpZ24gMTI4Ci0gICAlNSA9IGFsbG9jYSA8MzIgeCBpMzI+LCBhbGlnbiAx MjgKLUBAIC0yNzg2LDcgKzI3ODYsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwzMiB4IGkzMj4gQF9a MjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIzMl9pU18oPDMyIHggaTMyPgotIH0KLSAK LSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwg emVyb2V4dCBpOCBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRpdmhoKGk4IHplcm9leHQsIGk4 IHplcm9leHQpICMyMSB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQgaTggQF9aMjRfX2NtX2lu dHJpbnNpY19pbXBsX3VkaXZoaChpOCB6ZXJvZXh0LCBpOCB6ZXJvZXh0KSAjMjEgewotICAgJTMg PSBhbGxvY2EgaTgsIGFsaWduIDEKLSAgICU0ID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0gICAlNSA9 IGFsbG9jYSA8MSB4IGk4PiwgYWxpZ24gMQotQEAgLTI4NDQsNyArMjg0NCw3IEBAIGRlZmluZSBp bnRlcm5hbCA8MSB4IGk4PiBAX1pON2RldGFpbHMxNF9faW1wbF91ZGl2cmVtSUxpMUVFRXUyQ012 YlRfX2hTMV9TMV91MkNNCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53 aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MSB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxf dWRpdnUyQ012YjFfaFNfKDwxIHggaTg+LCA8MSB4IGk4PikgIzIxIHsKLStkZWZpbmUgaW50ZXJu YWwgPDEgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1MkNNdmIxX2hTXyg8MSB4 IGk4PiwgPDEgeCBpOD4pICMyMSB7Ci0gICAlMyA9IGFsbG9jYSA8MSB4IGk4PiwgYWxpZ24gMQot ICAgJTQgPSBhbGxvY2EgPDEgeCBpOD4sIGFsaWduIDEKLSAgICU1ID0gYWxsb2NhIDwxIHggaTg+ LCBhbGlnbiAxCi1AQCAtMjg2MCw3ICsyODYwLDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MSB4IGk4 PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRpdnUyQ012YjFfaFNfKDwxIHggaTg+LCA8MQot IH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29f bG9jYWwgPDIgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1MkNNdmIyX2hTXyg8 MiB4IGk4PiwgPDIgeCBpOD4pICMyMiB7Ci0rZGVmaW5lIGludGVybmFsIDwyIHggaTg+IEBfWjI0 X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZiMl9oU18oPDIgeCBpOD4sIDwyIHggaTg+KSAj MjIgewotICAgJTMgPSBhbGxvY2EgPDIgeCBpOD4sIGFsaWduIDIKLSAgICU0ID0gYWxsb2NhIDwy IHggaTg+LCBhbGlnbiAyCi0gICAlNSA9IGFsbG9jYSA8MiB4IGk4PiwgYWxpZ24gMgotQEAgLTI5 MDYsNyArMjkwNiw3IEBAIGRlZmluZSBpbnRlcm5hbCA8MiB4IGk4PiBAX1pON2RldGFpbHMxNF9f aW1wbF91ZGl2cmVtSUxpMkVFRXUyQ012YlRfX2hTMV9TMV91MkNNCi0gfQotIAotIDsgRnVuY3Rp b24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8NCB4IGk4PiBA X1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRpdnUyQ012YjRfaFNfKDw0IHggaTg+LCA8NCB4IGk4 PikgIzE0IHsKLStkZWZpbmUgaW50ZXJuYWwgPDQgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19p bXBsX3VkaXZ1MkNNdmI0X2hTXyg8NCB4IGk4PiwgPDQgeCBpOD4pICMxNCB7Ci0gICAlMyA9IGFs bG9jYSA8NCB4IGk4PiwgYWxpZ24gNAotICAgJTQgPSBhbGxvY2EgPDQgeCBpOD4sIGFsaWduIDQK LSAgICU1ID0gYWxsb2NhIDw0IHggaTg+LCBhbGlnbiA0Ci1AQCAtMzA0NCw3ICszMDQ0LDcgQEAg ZGVmaW5lIGludGVybmFsIDwxNiB4IGk4PiBAX1pON2RldGFpbHMxNF9faW1wbF91ZGl2cmVtSUxp MTZFRUV1MkNNdmJUX19oUzFfUzFfdTIKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxp bmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwzMiB4IGk4PiBAX1oyNF9fY21faW50cmlu c2ljX2ltcGxfdWRpdnUyQ012YjMyX2hTXyg8MzIgeCBpOD4sIDwzMiB4IGk4PikgIzE3IHsKLStk ZWZpbmUgaW50ZXJuYWwgPDMyIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJD TXZiMzJfaFNfKDwzMiB4IGk4PiwgPDMyIHggaTg+KSAjMTcgewotICAgJTMgPSBhbGxvY2EgPDMy IHggaTg+LCBhbGlnbiAzMgotICAgJTQgPSBhbGxvY2EgPDMyIHggaTg+LCBhbGlnbiAzMgotICAg JTUgPSBhbGxvY2EgPDMyIHggaTg+LCBhbGlnbiAzMgotQEAgLTMwOTAsNyArMzA5MCw3IEBAIGRl ZmluZSBpbnRlcm5hbCA8MzIgeCBpOD4gQF9aTjdkZXRhaWxzMTRfX2ltcGxfdWRpdnJlbUlMaTMy RUVFdTJDTXZiVF9faFMxX1MxX3UyCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5l IG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCB6ZXJvZXh0IGk4IEBfWjI0X19jbV9pbnRyaW5z aWNfaW1wbF91cmVtaGgoaTggemVyb2V4dCwgaTggemVyb2V4dCkgIzIxIHsKLStkZWZpbmUgaW50 ZXJuYWwgemVyb2V4dCBpOCBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbWhoKGk4IHplcm9l eHQsIGk4IHplcm9leHQpICMyMSB7Ci0gICAlMyA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgJTQg PSBhbGxvY2EgaTgsIGFsaWduIDEKLSAgICU1ID0gYWxsb2NhIDwxIHggaTg+LCBhbGlnbiAxCi1A QCAtMzExNiw3ICszMTE2LDcgQEAgZGVmaW5lIGRzb19sb2NhbCB6ZXJvZXh0IGk4IEBfWjI0X19j bV9pbnRyaW5zaWNfaW1wbF91cmVtaGgoaTggemVyb2V4dCwgaTggemVyb2UKLSB9Ci0gCi0gOyBG dW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwxIHgg aTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMV9oU18oPDEgeCBpOD4sIDwx IHggaTg+KSAjMjEgewotK2RlZmluZSBpbnRlcm5hbCA8MSB4IGk4PiBAX1oyNF9fY21faW50cmlu c2ljX2ltcGxfdXJlbXUyQ012YjFfaFNfKDwxIHggaTg+LCA8MSB4IGk4PikgIzIxIHsKLSAgICUz ID0gYWxsb2NhIDwxIHggaTg+LCBhbGlnbiAxCi0gICAlNCA9IGFsbG9jYSA8MSB4IGk4PiwgYWxp Z24gMQotICAgJTUgPSBhbGxvY2EgPDEgeCBpOD4sIGFsaWduIDEKLUBAIC0zMTMwLDcgKzMxMzAs NyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwxIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91 cmVtdTJDTXZiMV9oU18oPDEgeCBpOD4sIDwxCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5v aW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MiB4IGk4PiBAX1oyNF9fY21faW50 cmluc2ljX2ltcGxfdXJlbXUyQ012YjJfaFNfKDwyIHggaTg+LCA8MiB4IGk4PikgIzIyIHsKLStk ZWZpbmUgaW50ZXJuYWwgPDIgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNN dmIyX2hTXyg8MiB4IGk4PiwgPDIgeCBpOD4pICMyMiB7Ci0gICAlMyA9IGFsbG9jYSA8MiB4IGk4 PiwgYWxpZ24gMgotICAgJTQgPSBhbGxvY2EgPDIgeCBpOD4sIGFsaWduIDIKLSAgICU1ID0gYWxs b2NhIDwyIHggaTg+LCBhbGlnbiAyCi1AQCAtMzE0NCw3ICszMTQ0LDcgQEAgZGVmaW5lIGRzb19s b2NhbCA8MiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjJfaFNfKDwy IHggaTg+LCA8MgotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAot LWRlZmluZSBkc29fbG9jYWwgPDQgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11 MkNNdmI0X2hTXyg8NCB4IGk4PiwgPDQgeCBpOD4pICMxNCB7Ci0rZGVmaW5lIGludGVybmFsIDw0 IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiNF9oU18oPDQgeCBpOD4s IDw0IHggaTg+KSAjMTQgewotICAgJTMgPSBhbGxvY2EgPDQgeCBpOD4sIGFsaWduIDQKLSAgICU0 ID0gYWxsb2NhIDw0IHggaTg+LCBhbGlnbiA0Ci0gICAlNSA9IGFsbG9jYSA8NCB4IGk4PiwgYWxp Z24gNAotQEAgLTMxNTgsNyArMzE1OCw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDQgeCBpOD4gQF9a MjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmI0X2hTXyg8NCB4IGk4PiwgPDQKLSB9Ci0g Ci0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2Fs IDw4IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiOF9oU18oPDggeCBp OD4sIDw4IHggaTg+KSAjMTUgewotK2RlZmluZSBpbnRlcm5hbCA8OCB4IGk4PiBAX1oyNF9fY21f aW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjhfaFNfKDw4IHggaTg+LCA8OCB4IGk4PikgIzE1IHsK LSAgICUzID0gYWxsb2NhIDw4IHggaTg+LCBhbGlnbiA4Ci0gICAlNCA9IGFsbG9jYSA8OCB4IGk4 PiwgYWxpZ24gOAotICAgJTUgPSBhbGxvY2EgPDggeCBpOD4sIGFsaWduIDgKLUBAIC0zMTcyLDcg KzMxNzIsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDw4IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNf aW1wbF91cmVtdTJDTXZiOF9oU18oPDggeCBpOD4sIDw4Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0 cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MTYgeCBpOD4gQF9aMjRf X2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIxNl9oU18oPDE2IHggaTg+LCA8MTYgeCBpOD4p ICMxNiB7Ci0rZGVmaW5lIGludGVybmFsIDwxNiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2lt cGxfdXJlbXUyQ012YjE2X2hTXyg8MTYgeCBpOD4sIDwxNiB4IGk4PikgIzE2IHsKLSAgICUzID0g YWxsb2NhIDwxNiB4IGk4PiwgYWxpZ24gMTYKLSAgICU0ID0gYWxsb2NhIDwxNiB4IGk4PiwgYWxp Z24gMTYKLSAgICU1ID0gYWxsb2NhIDwxNiB4IGk4PiwgYWxpZ24gMTYKLUBAIC0zMTg2LDcgKzMx ODYsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwxNiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2lt cGxfdXJlbXUyQ012YjE2X2hTXyg8MTYgeCBpOD4sCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6 IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MzIgeCBpOD4gQF9aMjRfX2Nt X2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIzMl9oU18oPDMyIHggaTg+LCA8MzIgeCBpOD4pICMx NyB7Ci0rZGVmaW5lIGludGVybmFsIDwzMiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxf dXJlbXUyQ012YjMyX2hTXyg8MzIgeCBpOD4sIDwzMiB4IGk4PikgIzE3IHsKLSAgICUzID0gYWxs b2NhIDwzMiB4IGk4PiwgYWxpZ24gMzIKLSAgICU0ID0gYWxsb2NhIDwzMiB4IGk4PiwgYWxpZ24g MzIKLSAgICU1ID0gYWxsb2NhIDwzMiB4IGk4PiwgYWxpZ24gMzIKLUBAIC0zMjAwLDcgKzMyMDAs NyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwzMiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxf dXJlbXUyQ012YjMyX2hTXyg8MzIgeCBpOD4sCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5v aW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCB6ZXJvZXh0IGkxNiBAX1oyNF9fY21f aW50cmluc2ljX2ltcGxfdWRpdnR0KGkxNiB6ZXJvZXh0LCBpMTYgemVyb2V4dCkgIzIyIHsKLStk ZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMTYgQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZ0 dChpMTYgemVyb2V4dCwgaTE2IHplcm9leHQpICMyMiB7Ci0gICAlMyA9IGFsbG9jYSBpMTYsIGFs aWduIDIKLSAgICU0ID0gYWxsb2NhIGkxNiwgYWxpZ24gMgotICAgJTUgPSBhbGxvY2EgPDEgeCBp MTY+LCBhbGlnbiAyCi1AQCAtMzI3OCw3ICszMjc4LDcgQEAgZGVmaW5lIGludGVybmFsIDwxIHgg aTE2PiBAX1pON2RldGFpbHMxNF9faW1wbF91ZGl2cmVtSUxpMUVFRXUyQ012YlRfX3RTMV9TMV91 MkMKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUg ZHNvX2xvY2FsIDwxIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRpdnUyQ012YjFf dFNfKDwxIHggaTE2PiwgPDEgeCBpMTY+KSAjMjIgewotK2RlZmluZSBpbnRlcm5hbCA8MSB4IGkx Nj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1MkNNdmIxX3RTXyg8MSB4IGkxNj4sIDwx IHggaTE2PikgIzIyIHsKLSAgICUzID0gYWxsb2NhIDwxIHggaTE2PiwgYWxpZ24gMgotICAgJTQg PSBhbGxvY2EgPDEgeCBpMTY+LCBhbGlnbiAyCi0gICAlNSA9IGFsbG9jYSA8MSB4IGkxNj4sIGFs aWduIDIKLUBAIC0zMjk0LDcgKzMyOTQsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwxIHggaTE2PiBA X1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRpdnUyQ012YjFfdFNfKDwxIHggaTE2PiwgPAotIH0K LSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9j YWwgPDIgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZiMl90U18oPDIg eCBpMTY+LCA8MiB4IGkxNj4pICMxNCB7Ci0rZGVmaW5lIGludGVybmFsIDwyIHggaTE2PiBAX1oy NF9fY21faW50cmluc2ljX2ltcGxfdWRpdnUyQ012YjJfdFNfKDwyIHggaTE2PiwgPDIgeCBpMTY+ KSAjMTQgewotICAgJTMgPSBhbGxvY2EgPDIgeCBpMTY+LCBhbGlnbiA0Ci0gICAlNCA9IGFsbG9j YSA8MiB4IGkxNj4sIGFsaWduIDQKLSAgICU1ID0gYWxsb2NhIDwyIHggaTE2PiwgYWxpZ24gNAot QEAgLTMzNjAsNyArMzM2MCw3IEBAIGRlZmluZSBpbnRlcm5hbCA8MiB4IGkxNj4gQF9aTjdkZXRh aWxzMTRfX2ltcGxfdWRpdnJlbUlMaTJFRUV1MkNNdmJUX190UzFfUzFfdTJDCi0gfQotIAotIDsg RnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8NCB4 IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1MkNNdmI0X3RTXyg8NCB4IGkxNj4s IDw0IHggaTE2PikgIzE1IHsKLStkZWZpbmUgaW50ZXJuYWwgPDQgeCBpMTY+IEBfWjI0X19jbV9p bnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZiNF90U18oPDQgeCBpMTY+LCA8NCB4IGkxNj4pICMxNSB7 Ci0gICAlMyA9IGFsbG9jYSA8NCB4IGkxNj4sIGFsaWduIDgKLSAgICU0ID0gYWxsb2NhIDw0IHgg aTE2PiwgYWxpZ24gOAotICAgJTUgPSBhbGxvY2EgPDQgeCBpMTY+LCBhbGlnbiA4Ci1AQCAtMzU1 OCw3ICszNTU4LDcgQEAgZGVmaW5lIGludGVybmFsIDwxNiB4IGkxNj4gQF9aTjdkZXRhaWxzMTRf X2ltcGxfdWRpdnJlbUlMaTE2RUVFdTJDTXZiVF9fdFMxX1MxX3UKLSB9Ci0gCi0gOyBGdW5jdGlv biBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwzMiB4IGkxNj4g QF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1MkNNdmIzMl90U18oPDMyIHggaTE2PiwgPDMy IHggaTE2PikgIzE4IHsKLStkZWZpbmUgaW50ZXJuYWwgPDMyIHggaTE2PiBAX1oyNF9fY21faW50 cmluc2ljX2ltcGxfdWRpdnUyQ012YjMyX3RTXyg8MzIgeCBpMTY+LCA8MzIgeCBpMTY+KSAjMTgg ewotICAgJTMgPSBhbGxvY2EgPDMyIHggaTE2PiwgYWxpZ24gNjQKLSAgICU0ID0gYWxsb2NhIDwz MiB4IGkxNj4sIGFsaWduIDY0Ci0gICAlNSA9IGFsbG9jYSA8MzIgeCBpMTY+LCBhbGlnbiA2NAot QEAgLTM2MjQsNyArMzYyNCw3IEBAIGRlZmluZSBpbnRlcm5hbCA8MzIgeCBpMTY+IEBfWk43ZGV0 YWlsczE0X19pbXBsX3VkaXZyZW1JTGkzMkVFRXUyQ012YlRfX3RTMV9TMV91Ci0gfQotIAotIDsg RnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCB6ZXJv ZXh0IGkxNiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXR0KGkxNiB6ZXJvZXh0LCBpMTYg emVyb2V4dCkgIzIyIHsKLStkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMTYgQF9aMjRfX2NtX2lu dHJpbnNpY19pbXBsX3VyZW10dChpMTYgemVyb2V4dCwgaTE2IHplcm9leHQpICMyMiB7Ci0gICAl MyA9IGFsbG9jYSBpMTYsIGFsaWduIDIKLSAgICU0ID0gYWxsb2NhIGkxNiwgYWxpZ24gMgotICAg JTUgPSBhbGxvY2EgPDEgeCBpMTY+LCBhbGlnbiAyCi1AQCAtMzY1MCw3ICszNjUwLDcgQEAgZGVm aW5lIGRzb19sb2NhbCB6ZXJvZXh0IGkxNiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXR0 KGkxNiB6ZXJvZXh0LCBpMTYgemUKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUg bm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwxIHggaTE2PiBAX1oyNF9fY21faW50cmluc2lj X2ltcGxfdXJlbXUyQ012YjFfdFNfKDwxIHggaTE2PiwgPDEgeCBpMTY+KSAjMjIgewotK2RlZmlu ZSBpbnRlcm5hbCA8MSB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIx X3RTXyg8MSB4IGkxNj4sIDwxIHggaTE2PikgIzIyIHsKLSAgICUzID0gYWxsb2NhIDwxIHggaTE2 PiwgYWxpZ24gMgotICAgJTQgPSBhbGxvY2EgPDEgeCBpMTY+LCBhbGlnbiAyCi0gICAlNSA9IGFs bG9jYSA8MSB4IGkxNj4sIGFsaWduIDIKLUBAIC0zNjY0LDcgKzM2NjQsNyBAQCBkZWZpbmUgZHNv X2xvY2FsIDwxIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjFfdFNf KDwxIHggaTE2PiwgPAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2lu ZAotLWRlZmluZSBkc29fbG9jYWwgPDIgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91 cmVtdTJDTXZiMl90U18oPDIgeCBpMTY+LCA8MiB4IGkxNj4pICMxNCB7Ci0rZGVmaW5lIGludGVy bmFsIDwyIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjJfdFNfKDwy IHggaTE2PiwgPDIgeCBpMTY+KSAjMTQgewotICAgJTMgPSBhbGxvY2EgPDIgeCBpMTY+LCBhbGln biA0Ci0gICAlNCA9IGFsbG9jYSA8MiB4IGkxNj4sIGFsaWduIDQKLSAgICU1ID0gYWxsb2NhIDwy IHggaTE2PiwgYWxpZ24gNAotQEAgLTM2NzgsNyArMzY3OCw3IEBAIGRlZmluZSBkc29fbG9jYWwg PDIgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMl90U18oPDIgeCBp MTY+LCA8Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVm aW5lIGRzb19sb2NhbCA8NCB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNN dmI0X3RTXyg8NCB4IGkxNj4sIDw0IHggaTE2PikgIzE1IHsKLStkZWZpbmUgaW50ZXJuYWwgPDQg eCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiNF90U18oPDQgeCBpMTY+ LCA8NCB4IGkxNj4pICMxNSB7Ci0gICAlMyA9IGFsbG9jYSA8NCB4IGkxNj4sIGFsaWduIDgKLSAg ICU0ID0gYWxsb2NhIDw0IHggaTE2PiwgYWxpZ24gOAotICAgJTUgPSBhbGxvY2EgPDQgeCBpMTY+ LCBhbGlnbiA4Ci1AQCAtMzY5Miw3ICszNjkyLDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8NCB4IGkx Nj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmI0X3RTXyg8NCB4IGkxNj4sIDwK LSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNv X2xvY2FsIDw4IHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjhfdFNf KDw4IHggaTE2PiwgPDggeCBpMTY+KSAjMTYgewotK2RlZmluZSBpbnRlcm5hbCA8OCB4IGkxNj4g QF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmI4X3RTXyg8OCB4IGkxNj4sIDw4IHgg aTE2PikgIzE2IHsKLSAgICUzID0gYWxsb2NhIDw4IHggaTE2PiwgYWxpZ24gMTYKLSAgICU0ID0g YWxsb2NhIDw4IHggaTE2PiwgYWxpZ24gMTYKLSAgICU1ID0gYWxsb2NhIDw4IHggaTE2PiwgYWxp Z24gMTYKLUBAIC0zNzA2LDcgKzM3MDYsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDw4IHggaTE2PiBA X1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjhfdFNfKDw4IHggaTE2PiwgPAotIH0K LSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9j YWwgPDE2IHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjE2X3RTXyg8 MTYgeCBpMTY+LCA8MTYgeCBpMTY+KSAjMTcgewotK2RlZmluZSBpbnRlcm5hbCA8MTYgeCBpMTY+ IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMTZfdFNfKDwxNiB4IGkxNj4sIDwx NiB4IGkxNj4pICMxNyB7Ci0gICAlMyA9IGFsbG9jYSA8MTYgeCBpMTY+LCBhbGlnbiAzMgotICAg JTQgPSBhbGxvY2EgPDE2IHggaTE2PiwgYWxpZ24gMzIKLSAgICU1ID0gYWxsb2NhIDwxNiB4IGkx Nj4sIGFsaWduIDMyCi1AQCAtMzcyMCw3ICszNzIwLDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MTYg eCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMTZfdFNfKDwxNiB4IGkx Nj4KLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUg ZHNvX2xvY2FsIDwzMiB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIz Ml90U18oPDMyIHggaTE2PiwgPDMyIHggaTE2PikgIzE4IHsKLStkZWZpbmUgaW50ZXJuYWwgPDMy IHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjMyX3RTXyg8MzIgeCBp MTY+LCA8MzIgeCBpMTY+KSAjMTggewotICAgJTMgPSBhbGxvY2EgPDMyIHggaTE2PiwgYWxpZ24g NjQKLSAgICU0ID0gYWxsb2NhIDwzMiB4IGkxNj4sIGFsaWduIDY0Ci0gICAlNSA9IGFsbG9jYSA8 MzIgeCBpMTY+LCBhbGlnbiA2NAotQEAgLTM3MzQsNyArMzczNCw3IEBAIGRlZmluZSBkc29fbG9j YWwgPDMyIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjMyX3RTXyg8 MzIgeCBpMTY+Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0t ZGVmaW5lIGRzb19sb2NhbCBpMzIgQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZqaihpMzIs IGkzMikgIzE0IHsKLStkZWZpbmUgaW50ZXJuYWwgaTMyIEBfWjI0X19jbV9pbnRyaW5zaWNfaW1w bF91ZGl2amooaTMyLCBpMzIpICMxNCB7Ci0gICAlMyA9IGFsbG9jYSBpMzIsIGFsaWduIDQKLSAg ICU0ID0gYWxsb2NhIGkzMiwgYWxpZ24gNAotICAgJTUgPSBhbGxvY2EgPDEgeCBpMzI+LCBhbGln biA0Ci1AQCAtMzg5Miw3ICszODkyLDcgQEAgZGVmaW5lIGludGVybmFsIDwxIHggaTMyPiBAX1pO N2RldGFpbHMxNF9faW1wbF91ZGl2cmVtSUxpMUVFRXUyQ012YlRfX2pTMV9TMV91MkMKLSB9Ci0g Ci0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2Fs IDwxIHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRpdnUyQ012YjFfalNfKDwxIHgg aTMyPiwgPDEgeCBpMzI+KSAjMTQgewotK2RlZmluZSBpbnRlcm5hbCA8MSB4IGkzMj4gQF9aMjRf X2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1MkNNdmIxX2pTXyg8MSB4IGkzMj4sIDwxIHggaTMyPikg IzE0IHsKLSAgICUzID0gYWxsb2NhIDwxIHggaTMyPiwgYWxpZ24gNAotICAgJTQgPSBhbGxvY2Eg PDEgeCBpMzI+LCBhbGlnbiA0Ci0gICAlNSA9IGFsbG9jYSA8MSB4IGkzMj4sIGFsaWduIDQKLUBA IC0zOTA4LDcgKzM5MDgsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwxIHggaTMyPiBAX1oyNF9fY21f aW50cmluc2ljX2ltcGxfdWRpdnUyQ012YjFfalNfKDwxIHggaTMyPiwgPAotIH0KLSAKLSA7IEZ1 bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDIgeCBp MzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZiMl9qU18oPDIgeCBpMzI+LCA8 MiB4IGkzMj4pICMxNSB7Ci0rZGVmaW5lIGludGVybmFsIDwyIHggaTMyPiBAX1oyNF9fY21faW50 cmluc2ljX2ltcGxfdWRpdnUyQ012YjJfalNfKDwyIHggaTMyPiwgPDIgeCBpMzI+KSAjMTUgewot ICAgJTMgPSBhbGxvY2EgPDIgeCBpMzI+LCBhbGlnbiA4Ci0gICAlNCA9IGFsbG9jYSA8MiB4IGkz Mj4sIGFsaWduIDgKLSAgICU1ID0gYWxsb2NhIDwyIHggaTMyPiwgYWxpZ24gOAotQEAgLTQwNTQs NyArNDA1NCw3IEBAIGRlZmluZSBpbnRlcm5hbCA8MiB4IGkzMj4gQF9aTjdkZXRhaWxzMTRfX2lt cGxfdWRpdnJlbUlMaTJFRUV1MkNNdmJUX19qUzFfUzFfdTJDCi0gfQotIAotIDsgRnVuY3Rpb24g QXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8NCB4IGkzMj4gQF9a MjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1MkNNdmI0X2pTXyg8NCB4IGkzMj4sIDw0IHggaTMy PikgIzE2IHsKLStkZWZpbmUgaW50ZXJuYWwgPDQgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNf aW1wbF91ZGl2dTJDTXZiNF9qU18oPDQgeCBpMzI+LCA8NCB4IGkzMj4pICMxNiB7Ci0gICAlMyA9 IGFsbG9jYSA8NCB4IGkzMj4sIGFsaWduIDE2Ci0gICAlNCA9IGFsbG9jYSA8NCB4IGkzMj4sIGFs aWduIDE2Ci0gICAlNSA9IGFsbG9jYSA8NCB4IGkzMj4sIGFsaWduIDE2Ci1AQCAtNDQ5Miw3ICs0 NDkyLDcgQEAgZGVmaW5lIGludGVybmFsIDwxNiB4IGkzMj4gQF9aTjdkZXRhaWxzMTRfX2ltcGxf dWRpdnJlbUlMaTE2RUVFdTJDTXZiVF9falMxX1MxX3UKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRy czogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwzMiB4IGkzMj4gQF9aMjRf X2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1MkNNdmIzMl9qU18oPDMyIHggaTMyPiwgPDMyIHggaTMy PikgIzE5IHsKLStkZWZpbmUgaW50ZXJuYWwgPDMyIHggaTMyPiBAX1oyNF9fY21faW50cmluc2lj X2ltcGxfdWRpdnUyQ012YjMyX2pTXyg8MzIgeCBpMzI+LCA8MzIgeCBpMzI+KSAjMTkgewotICAg JTMgPSBhbGxvY2EgPDMyIHggaTMyPiwgYWxpZ24gMTI4Ci0gICAlNCA9IGFsbG9jYSA8MzIgeCBp MzI+LCBhbGlnbiAxMjgKLSAgICU1ID0gYWxsb2NhIDwzMiB4IGkzMj4sIGFsaWduIDEyOAotQEAg LTQ2MzgsNyArNDYzOCw3IEBAIGRlZmluZSBpbnRlcm5hbCA8MzIgeCBpMzI+IEBfWk43ZGV0YWls czE0X19pbXBsX3VkaXZyZW1JTGkzMkVFRXUyQ012YlRfX2pTMV9TMV91Ci0gfQotIAotIDsgRnVu Y3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCBpMzIgQF9a MjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW1qaihpMzIsIGkzMikgIzE0IHsKLStkZWZpbmUgaW50 ZXJuYWwgaTMyIEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtamooaTMyLCBpMzIpICMxNCB7 Ci0gICAlMyA9IGFsbG9jYSBpMzIsIGFsaWduIDQKLSAgICU0ID0gYWxsb2NhIGkzMiwgYWxpZ24g NAotICAgJTUgPSBhbGxvY2EgPDEgeCBpMzI+LCBhbGlnbiA0Ci1AQCAtNDY2NCw3ICs0NjY0LDcg QEAgZGVmaW5lIGRzb19sb2NhbCBpMzIgQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW1qaihp MzIsIGkzMikgIzE0IHsKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndp bmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwxIHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxf dXJlbXUyQ012YjFfalNfKDwxIHggaTMyPiwgPDEgeCBpMzI+KSAjMTQgewotK2RlZmluZSBpbnRl cm5hbCA8MSB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIxX2pTXyg8 MSB4IGkzMj4sIDwxIHggaTMyPikgIzE0IHsKLSAgICUzID0gYWxsb2NhIDwxIHggaTMyPiwgYWxp Z24gNAotICAgJTQgPSBhbGxvY2EgPDEgeCBpMzI+LCBhbGlnbiA0Ci0gICAlNSA9IGFsbG9jYSA8 MSB4IGkzMj4sIGFsaWduIDQKLUBAIC00Njc4LDcgKzQ2NzgsNyBAQCBkZWZpbmUgZHNvX2xvY2Fs IDwxIHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjFfalNfKDwxIHgg aTMyPiwgPAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRl ZmluZSBkc29fbG9jYWwgPDIgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJD TXZiMl9qU18oPDIgeCBpMzI+LCA8MiB4IGkzMj4pICMxNSB7Ci0rZGVmaW5lIGludGVybmFsIDwy IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjJfalNfKDwyIHggaTMy PiwgPDIgeCBpMzI+KSAjMTUgewotICAgJTMgPSBhbGxvY2EgPDIgeCBpMzI+LCBhbGlnbiA4Ci0g ICAlNCA9IGFsbG9jYSA8MiB4IGkzMj4sIGFsaWduIDgKLSAgICU1ID0gYWxsb2NhIDwyIHggaTMy PiwgYWxpZ24gOAotQEAgLTQ2OTIsNyArNDY5Miw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDIgeCBp MzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMl9qU18oPDIgeCBpMzI+LCA8 Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRz b19sb2NhbCA8NCB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmI0X2pT Xyg8NCB4IGkzMj4sIDw0IHggaTMyPikgIzE2IHsKLStkZWZpbmUgaW50ZXJuYWwgPDQgeCBpMzI+ IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiNF9qU18oPDQgeCBpMzI+LCA8NCB4 IGkzMj4pICMxNiB7Ci0gICAlMyA9IGFsbG9jYSA8NCB4IGkzMj4sIGFsaWduIDE2Ci0gICAlNCA9 IGFsbG9jYSA8NCB4IGkzMj4sIGFsaWduIDE2Ci0gICAlNSA9IGFsbG9jYSA8NCB4IGkzMj4sIGFs aWduIDE2Ci1AQCAtNDcwNiw3ICs0NzA2LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8NCB4IGkzMj4g QF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmI0X2pTXyg8NCB4IGkzMj4sIDwKLSB9 Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xv Y2FsIDw4IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjhfalNfKDw4 IHggaTMyPiwgPDggeCBpMzI+KSAjMTcgewotK2RlZmluZSBpbnRlcm5hbCA8OCB4IGkzMj4gQF9a MjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmI4X2pTXyg8OCB4IGkzMj4sIDw4IHggaTMy PikgIzE3IHsKLSAgICUzID0gYWxsb2NhIDw4IHggaTMyPiwgYWxpZ24gMzIKLSAgICU0ID0gYWxs b2NhIDw4IHggaTMyPiwgYWxpZ24gMzIKLSAgICU1ID0gYWxsb2NhIDw4IHggaTMyPiwgYWxpZ24g MzIKLUBAIC00NzIwLDcgKzQ3MjAsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDw4IHggaTMyPiBAX1oy NF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjhfalNfKDw4IHggaTMyPiwgPAotIH0KLSAK LSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwg PDE2IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjE2X2pTXyg8MTYg eCBpMzI+LCA8MTYgeCBpMzI+KSAjMTggewotK2RlZmluZSBpbnRlcm5hbCA8MTYgeCBpMzI+IEBf WjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMTZfalNfKDwxNiB4IGkzMj4sIDwxNiB4 IGkzMj4pICMxOCB7Ci0gICAlMyA9IGFsbG9jYSA8MTYgeCBpMzI+LCBhbGlnbiA2NAotICAgJTQg PSBhbGxvY2EgPDE2IHggaTMyPiwgYWxpZ24gNjQKLSAgICU1ID0gYWxsb2NhIDwxNiB4IGkzMj4s IGFsaWduIDY0Ci1AQCAtNDczNCw3ICs0NzM0LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MTYgeCBp MzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMTZfalNfKDwxNiB4IGkzMj4K LSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNv X2xvY2FsIDwzMiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIzMl9q U18oPDMyIHggaTMyPiwgPDMyIHggaTMyPikgIzE5IHsKLStkZWZpbmUgaW50ZXJuYWwgPDMyIHgg aTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjMyX2pTXyg8MzIgeCBpMzI+ LCA8MzIgeCBpMzI+KSAjMTkgewotICAgJTMgPSBhbGxvY2EgPDMyIHggaTMyPiwgYWxpZ24gMTI4 Ci0gICAlNCA9IGFsbG9jYSA8MzIgeCBpMzI+LCBhbGlnbiAxMjgKLSAgICU1ID0gYWxsb2NhIDwz MiB4IGkzMj4sIGFsaWduIDEyOAotQEAgLTQ3NDgsNyArNDc0OCw3IEBAIGRlZmluZSBkc29fbG9j YWwgPDMyIHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjMyX2pTXyg8 MzIgeCBpMzI+Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0t ZGVmaW5lIGRzb19sb2NhbCB2b2lkIEBfX2RvX3ByaW50X2NtKGk4KiwgaTgqLCBpMzIsIGk2NCwg aTMyKiwgaTMyLCBpMzIpICMyMyAhZGJnICExNSB7Ci0rZGVmaW5lIGludGVybmFsIHZvaWQgQF9f ZG9fcHJpbnRfY20oaTgqLCBpOCosIGkzMiwgaTY0LCBpMzIqLCBpMzIsIGkzMikgIzIzICFkYmcg ITE1IHsKLSAgICU4ID0gYWxsb2NhIGk4KiwgYWxpZ24gNAotICAgJTkgPSBhbGxvY2EgaTgqLCBh bGlnbiA0Ci0gICAlMTAgPSBhbGxvY2EgaTMyLCBhbGlnbiA0Ci1AQCAtNDk4OCw3ICs0OTg4LDcg QEAgZGVmaW5lIGludGVybmFsIHZvaWQgQF9aTjdkZXRhaWxzMTZfY21fcHJpbnRfZm9ybWF0SUxp MTI4RUVFdjE1Y21fc3VyZmFjZWluZGV4anUKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9p bmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIHZvaWQgQF9fZG9fcHJpbnRfbHooaTMy LCBpOCosIGkzMiwgaTY0LCBpMzIqLCBpMzIsIGkzMiwgaTMyLCBpMzIpICMyNiAhZGJnICExMTcg ewotK2RlZmluZSBpbnRlcm5hbCB2b2lkIEBfX2RvX3ByaW50X2x6KGkzMiwgaTgqLCBpMzIsIGk2 NCwgaTMyKiwgaTMyLCBpMzIsIGkzMiwgaTMyKSAjMjYgIWRiZyAhMTE3IHsKLSAgICUxMCA9IGFs bG9jYSBpMzIsIGFsaWduIDQKLSAgICUxMSA9IGFsbG9jYSBpOCosIGFsaWduIDQKLSAgICUxMiA9 IGFsbG9jYSBpMzIsIGFsaWduIDQKLUBAIC01MDY5LDcgKzUwNjksNyBAQCBkZWZpbmUgZHNvX2xv Y2FsIHZvaWQgQF9fZG9fcHJpbnRfbHooaTMyLCBpOCosIGkzMiwgaTY0LCBpMzIqLCBpMzIsIGkz MiwgaTMyLCBpMwotICAgJTY3ID0gbG9hZCBpNjQsIGk2NCogJTEzLCBhbGlnbiA4LCAhZGJnICEx NTksICF0YmFhICExOQotICAgJTY4ID0gbG9hZCA8NSB4IGkzMj4sIDw1IHggaTMyPiogJTIxLCBh bGlnbiAzMiwgIWRiZyAhMTYwLCAhdGJhYSAhNwotICAgY2FsbCB2b2lkIEBfWk4xM1ZhcnlpbmdX cml0ZXJDMkVSalJQS2ppeXUyQ012YjVfaSglY2xhc3MuVmFyeWluZ1dyaXRlciogJTIzLCBpMzIq IGRlcmVmZXJlbmNlYWJsZSg0KSAlMTksIGkzMioqIGRlcmVmZXJlbmNlYWJsZSg0KSAlMTQsIGkz MiAlNjYsIGk2NCAlNjcsIDw1IHggaTMyPiAlNjgpLCAhZGJnICExNjEKLS0gICU2OSA9IGNhbGwg emVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzE0c3dpdGNoRW5jb2RpbmdJMTNVbmlmb3JtV3JpdGVy MTNWYXJ5aW5nV3JpdGVyRUViTlNfOEVuY29kaW5nRVRfVDBfKGk4IHNpZ25leHQgJTYyLCAlY2xh c3MuVW5pZm9ybVdyaXRlciogYnl2YWwgYWxpZ24gMzIgJTIyLCAlY2xhc3MuVmFyeWluZ1dyaXRl ciogYnl2YWwgYWxpZ24gMzIgJTIzKSwgIWRiZyAhMTYyCi0rICAlNjkgPSBjYWxsIHplcm9leHQg aTEgQF9aTjlQcmludEluZm8xNHN3aXRjaEVuY29kaW5nSTEzVW5pZm9ybVdyaXRlcjEzVmFyeWlu Z1dyaXRlckVFYk5TXzhFbmNvZGluZ0VUX1QwXyhpOCBzaWduZXh0ICU2MiwgJWNsYXNzLlVuaWZv cm1Xcml0ZXIqIGJ5dmFsKCVjbGFzcy5Vbmlmb3JtV3JpdGVyKSBhbGlnbiAzMiAlMjIsICVjbGFz cy5WYXJ5aW5nV3JpdGVyKiBieXZhbCglY2xhc3MuVmFyeWluZ1dyaXRlcikgYWxpZ24gMzIgJTIz KSwgIWRiZyAhMTYyCi0gICBiciBsYWJlbCAlNzAsICFkYmcgITE2MwotIAotIDsgPGxhYmVsPjo3 MDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOyBwcmVkcyA9ICU2MAotQEAg LTUxODcsNyArNTE4Nyw3IEBAIGRlZmluZSBpbnRlcm5hbCA8NSB4IGkzMj4gQF9aMTdnZXRfYXV4 aWxpYXJ5X3N0cnYoKSAjMjggY29tZGF0ICFkYmcgITE3OCB7Ci0gfQotIAotIDsgRnVuY3Rpb24g QXR0cnM6IGFsd2F5c2lubGluZSBpbmxpbmVoaW50IG5vdW53aW5kCi0tZGVmaW5lIGludGVybmFs IHplcm9leHQgaTEgQF9aTjlQcmludEluZm8xNHN3aXRjaEVuY29kaW5nSTEzVW5pZm9ybVdyaXRl cjEzVmFyeWluZ1dyaXRlckVFYk5TXzhFbmNvZGluZ0VUX1QwXyhpOCBzaWduZXh0LCAlY2xhc3Mu VW5pZm9ybVdyaXRlciogYnl2YWwgYWxpZ24gMzIsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZh bCBhbGlnbiAzMikgIzI1IGNvbWRhdCAhZGJnICExOTEgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJv ZXh0IGkxIEBfWk45UHJpbnRJbmZvMTRzd2l0Y2hFbmNvZGluZ0kxM1VuaWZvcm1Xcml0ZXIxM1Zh cnlpbmdXcml0ZXJFRWJOU184RW5jb2RpbmdFVF9UMF8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZv cm1Xcml0ZXIqIGJ5dmFsKCVjbGFzcy5Vbmlmb3JtV3JpdGVyKSBhbGlnbiAzMiwgJWNsYXNzLlZh cnlpbmdXcml0ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5aW5nV3JpdGVyKSBhbGlnbiAzMikgIzI1IGNv bWRhdCAhZGJnICExOTEgewotICAgJTQgPSBhbGxvY2EgaTgsIGFsaWduIDEKLSAgICU1ID0gYWxs b2NhICVjbGFzcy5Vbmlmb3JtV3JpdGVyLCBhbGlnbiAzMgotICAgJTYgPSBhbGxvY2EgJWNsYXNz LlZhcnlpbmdXcml0ZXIsIGFsaWduIDMyCi1AQCAtNTE5Niw3ICs1MTk2LDcgQEAgZGVmaW5lIGlu dGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm8xNHN3aXRjaEVuY29kaW5nSTEzVW5pZm9y bVdyaXRlcjEzVmFyeWkKLSAgICU4ID0gYml0Y2FzdCAlY2xhc3MuVW5pZm9ybVdyaXRlciogJTUg dG8gaTgqLCAhZGJnICExOTYKLSAgICU5ID0gYml0Y2FzdCAlY2xhc3MuVW5pZm9ybVdyaXRlciog JTEgdG8gaTgqLCAhZGJnICExOTYKLSAgIGNhbGwgdm9pZCBAbGx2bS5tZW1jcHkucDBpOC5wMGk4 LmkzMihpOCogYWxpZ24gMzIgJTgsIGk4KiBhbGlnbiAzMiAlOSwgaTMyIDY0LCBpMSBmYWxzZSks ICFkYmcgITE5NiwgIXRiYWEuc3RydWN0ICExOTcKLS0gICUxMCA9IGNhbGwgemVyb2V4dCBpMSBA X1pOOVByaW50SW5mbzIyc3dpdGNoRW5jb2Rpbmc0VW5pZm9ybUkxM1VuaWZvcm1Xcml0ZXJFRWJO U184RW5jb2RpbmdFVF8oaTggc2lnbmV4dCAlNywgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFs IGFsaWduIDMyICU1KSwgIWRiZyAhMTk4Ci0rICAlMTAgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQ cmludEluZm8yMnN3aXRjaEVuY29kaW5nNFVuaWZvcm1JMTNVbmlmb3JtV3JpdGVyRUViTlNfOEVu Y29kaW5nRVRfKGk4IHNpZ25leHQgJTcsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCglY2xh c3MuVW5pZm9ybVdyaXRlcikgYWxpZ24gMzIgJTUpLCAhZGJnICExOTgKLSAgIGJyIGkxICUxMCwg bGFiZWwgJTE2LCBsYWJlbCAlMTEsICFkYmcgITE5OQotIAotIDsgPGxhYmVsPjoxMTogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOyBwcmVkcyA9ICUzCi1AQCAtNTIwNCw3ICs1 MjA0LDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm8xNHN3aXRj aEVuY29kaW5nSTEzVW5pZm9ybVdyaXRlcjEzVmFyeWkKLSAgICUxMyA9IGJpdGNhc3QgJWNsYXNz LlZhcnlpbmdXcml0ZXIqICU2IHRvIGk4KiwgIWRiZyAhMjAxCi0gICAlMTQgPSBiaXRjYXN0ICVj bGFzcy5WYXJ5aW5nV3JpdGVyKiAlMiB0byBpOCosICFkYmcgITIwMQotICAgY2FsbCB2b2lkIEBs bHZtLm1lbWNweS5wMGk4LnAwaTguaTMyKGk4KiBhbGlnbiAzMiAlMTMsIGk4KiBhbGlnbiAzMiAl MTQsIGkzMiA2NCwgaTEgZmFsc2UpLCAhZGJnICEyMDEsICF0YmFhLnN0cnVjdCAhMTk3Ci0tICAl MTUgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm8yMnN3aXRjaEVuY29kaW5nNFZhcnlp bmdJMTNWYXJ5aW5nV3JpdGVyRUViTlNfOEVuY29kaW5nRVRfKGk4IHNpZ25leHQgJTEyLCAlY2xh c3MuVmFyeWluZ1dyaXRlciogYnl2YWwgYWxpZ24gMzIgJTYpLCAhZGJnICEyMDIKLSsgICUxNSA9 IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzIyc3dpdGNoRW5jb2Rpbmc0VmFyeWluZ0kx M1ZhcnlpbmdXcml0ZXJFRWJOU184RW5jb2RpbmdFVF8oaTggc2lnbmV4dCAlMTIsICVjbGFzcy5W YXJ5aW5nV3JpdGVyKiBieXZhbCglY2xhc3MuVmFyeWluZ1dyaXRlcikgYWxpZ24gMzIgJTYpLCAh ZGJnICEyMDIKLSAgIGJyIGxhYmVsICUxNiwgIWRiZyAhMTk5Ci0gCi0gOyA8bGFiZWw+OjE2OiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7IHByZWRzID0gJTExLCAlMwotQEAg LTUyNzksNyArNTI3OSw3IEBAIGRlZmluZSBpbnRlcm5hbCB2b2lkIEBfWk4xM1ZhcnlpbmdXcml0 ZXJDMkVSalJQS2ppeXUyQ012YjVfaSglY2xhc3MuVmFyeWluZ1dyaXRlCi0gfQotIAotIDsgRnVu Y3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCBpMzIgQF9f bnVtX2NvcmVzKCkgIzI5ICFkYmcgITIzNiB7Ci0rZGVmaW5lIGludGVybmFsIGkzMiBAX19udW1f Y29yZXMoKSAjMjkgIWRiZyAhMjM2IHsKLSAgIHJldCBpMzIgLTEsICFkYmcgITIzNwotIH0KLSAK LUBAIC04ODYwLDcgKzg4NjAsNyBAQCBkZWNsYXJlIGRzb19sb2NhbCB2b2lkIEBfWk43ZGV0YWls czM3X19jbV9pbnRyaW5zaWNfaW1wbF9zdm1fc2NhdHRlcl93cml0ZUlpTGkxRQotIGRlY2xhcmUg dm9pZCBAbGx2bS5nZW54LnN2bS5zY2F0dGVyLnYxaTEudjFpNjQudjFpMzIoPDEgeCBpMT4sIGkz MiwgPDEgeCBpNjQ+LCA8MSB4IGkzMj4pICMyNwotIAotIDsgRnVuY3Rpb24gQXR0cnM6IGFsd2F5 c2lubGluZSBpbmxpbmVoaW50IG5vdW53aW5kCi0tZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEg QF9aTjlQcmludEluZm8yMnN3aXRjaEVuY29kaW5nNFVuaWZvcm1JMTNVbmlmb3JtV3JpdGVyRUVi TlNfOEVuY29kaW5nRVRfKGk4IHNpZ25leHQsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBh bGlnbiAzMikgIzI1IGNvbWRhdCAhZGJnICExNjQ1IHsKLStkZWZpbmUgaW50ZXJuYWwgemVyb2V4 dCBpMSBAX1pOOVByaW50SW5mbzIyc3dpdGNoRW5jb2Rpbmc0VW5pZm9ybUkxM1VuaWZvcm1Xcml0 ZXJFRWJOU184RW5jb2RpbmdFVF8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5 dmFsKCVjbGFzcy5Vbmlmb3JtV3JpdGVyKSBhbGlnbiAzMikgIzI1IGNvbWRhdCAhZGJnICExNjQ1 IHsKLSAgICUzID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0gICAlNCA9IGFsbG9jYSAlY2xhc3MuVW5p Zm9ybVdyaXRlciwgYWxpZ24gMzIKLSAgICU1ID0gYWxsb2NhICUic3RydWN0LlByaW50SW5mbzo6 RW5jb2Rpbmc0VW5pZm9ybSIsIGFsaWduIDEKLUBAIC04ODY5LDcgKzg4NjksNyBAQCBkZWZpbmUg aW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzIyc3dpdGNoRW5jb2Rpbmc0VW5pZm9y bUkxM1VuaWZvcm1Xcml0ZQotICAgJTcgPSBiaXRjYXN0ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiAl NCB0byBpOCosICFkYmcgITE2NDcKLSAgICU4ID0gYml0Y2FzdCAlY2xhc3MuVW5pZm9ybVdyaXRl ciogJTEgdG8gaTgqLCAhZGJnICExNjQ3Ci0gICBjYWxsIHZvaWQgQGxsdm0ubWVtY3B5LnAwaTgu cDBpOC5pMzIoaTgqIGFsaWduIDMyICU3LCBpOCogYWxpZ24gMzIgJTgsIGkzMiA2NCwgaTEgZmFs c2UpLCAhZGJnICExNjQ3LCAhdGJhYS5zdHJ1Y3QgITE5NwotLSAgJTkgPSBjYWxsIHplcm9leHQg aTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1VuaWZvcm1Xcml0ZXJO U18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVRfVDBfKGk4IHNpZ25leHQgJTYs ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBhbGlnbiAzMiAlNCwgJSJzdHJ1Y3QuUHJpbnRJ bmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwgYWxpZ24gMSAlNSksICFkYmcgITE2NDgKLSsg ICU5ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2Rp bmdJMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VU X1QwXyhpOCBzaWduZXh0ICU2LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVu aWZvcm1Xcml0ZXIpIGFsaWduIDMyICU0LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVu aWZvcm0iKiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKSBhbGln biAxICU1KSwgIWRiZyAhMTY0OAotICAgcmV0IGkxICU5LCAhZGJnICExNjQ5Ci0gfQotIAotQEAg LTg4NzcsNyArODg3Nyw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJ bmZvMjJzd2l0Y2hFbmNvZGluZzRVbmlmb3JtSTEzVW5pZm9ybVdyaXRlCi0gZGVjbGFyZSB2b2lk IEBsbHZtLm1lbWNweS5wMGk4LnAwaTguaTMyKGk4KiBub2NhcHR1cmUgd3JpdGVvbmx5LCBpOCog bm9jYXB0dXJlIHJlYWRvbmx5LCBpMzIsIGkxKSAjMzIKLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBh bHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2luZAotLWRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0 IGkxIEBfWk45UHJpbnRJbmZvMjJzd2l0Y2hFbmNvZGluZzRWYXJ5aW5nSTEzVmFyeWluZ1dyaXRl ckVFYk5TXzhFbmNvZGluZ0VUXyhpOCBzaWduZXh0LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2 YWwgYWxpZ24gMzIpICMyNSBjb21kYXQgIWRiZyAhMTY1MCB7Ci0rZGVmaW5lIGludGVybmFsIHpl cm9leHQgaTEgQF9aTjlQcmludEluZm8yMnN3aXRjaEVuY29kaW5nNFZhcnlpbmdJMTNWYXJ5aW5n V3JpdGVyRUViTlNfOEVuY29kaW5nRVRfKGk4IHNpZ25leHQsICVjbGFzcy5WYXJ5aW5nV3JpdGVy KiBieXZhbCglY2xhc3MuVmFyeWluZ1dyaXRlcikgYWxpZ24gMzIpICMyNSBjb21kYXQgIWRiZyAh MTY1MCB7Ci0gICAlMyA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgJTQgPSBhbGxvY2EgJWNsYXNz LlZhcnlpbmdXcml0ZXIsIGFsaWduIDMyCi0gICAlNSA9IGFsbG9jYSAlInN0cnVjdC5QcmludElu Zm86OkVuY29kaW5nNFZhcnlpbmciLCBhbGlnbiAxCi1AQCAtODg4NiwxMiArODg4NiwxMiBAQCBk ZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzIyc3dpdGNoRW5jb2Rpbmc0 VmFyeWluZ0kxM1ZhcnlpbmdXcml0ZQotICAgJTcgPSBiaXRjYXN0ICVjbGFzcy5WYXJ5aW5nV3Jp dGVyKiAlNCB0byBpOCosICFkYmcgITE2NTIKLSAgICU4ID0gYml0Y2FzdCAlY2xhc3MuVmFyeWlu Z1dyaXRlciogJTEgdG8gaTgqLCAhZGJnICExNjUyCi0gICBjYWxsIHZvaWQgQGxsdm0ubWVtY3B5 LnAwaTgucDBpOC5pMzIoaTgqIGFsaWduIDMyICU3LCBpOCogYWxpZ24gMzIgJTgsIGkzMiA2NCwg aTEgZmFsc2UpLCAhZGJnICExNjUyLCAhdGJhYS5zdHJ1Y3QgITE5NwotLSAgJTkgPSBjYWxsIHpl cm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1ZhcnlpbmdX cml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVRfVDBfKGk4IHNpZ25l eHQgJTYsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCBhbGlnbiAzMiAlNCwgJSJzdHJ1Y3Qu UHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwgYWxpZ24gMSAlNSksICFkYmcgITE2 NTMKLSsgICU5ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNo RW5jb2RpbmdJMTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNv ZGluZ0VUX1QwXyhpOCBzaWduZXh0ICU2LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwoJWNs YXNzLlZhcnlpbmdXcml0ZXIpIGFsaWduIDMyICU0LCAlInN0cnVjdC5QcmludEluZm86OkVuY29k aW5nNFZhcnlpbmciKiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmci KSBhbGlnbiAxICU1KSwgIWRiZyAhMTY1MwotICAgcmV0IGkxICU5LCAhZGJnICExNjU0Ci0gfQot IAotIDsgRnVuY3Rpb24gQXR0cnM6IGFsd2F5c2lubGluZSBpbmxpbmVoaW50IG5vdW53aW5kCi0t ZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hF bmNvZGluZ0kxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29k aW5nRVRfVDBfKGk4IHNpZ25leHQsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBhbGlnbiAz MiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwgYWxpZ24gMSkg IzI1IGNvbWRhdCAhZGJnICExNjU1IHsKLStkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pO OVByaW50SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEzVW5pZm9ybVdyaXRlck5TXzE2RW5j b2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVF9UMF8oaTggc2lnbmV4dCwgJWNsYXNzLlVu aWZvcm1Xcml0ZXIqIGJ5dmFsKCVjbGFzcy5Vbmlmb3JtV3JpdGVyKSBhbGlnbiAzMiwgJSJzdHJ1 Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZv OjpFbmNvZGluZzRVbmlmb3JtIikgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICExNjU1IHsKLSAg ICU0ID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSAlY2xhc3MuVW5pZm9ybVdy aXRlciwgYWxpZ24gMzIKLSAgICU2ID0gYWxsb2NhICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rp bmc0VW5pZm9ybSIsIGFsaWduIDEKLUBAIC04OTE0LDcgKzg5MTQsNyBAQCBkZWZpbmUgaW50ZXJu YWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEzVW5p Zm9ybVdyaXRlcgotICAgJTIyID0gYml0Y2FzdCAlY2xhc3MuVW5pZm9ybVdyaXRlciogJTUgdG8g aTgqLCAhZGJnICExNjU3Ci0gICAlMjMgPSBiaXRjYXN0ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiAl MSB0byBpOCosICFkYmcgITE2NTcKLSAgIGNhbGwgdm9pZCBAbGx2bS5tZW1jcHkucDBpOC5wMGk4 LmkzMihpOCogYWxpZ24gMzIgJTIyLCBpOCogYWxpZ24gMzIgJTIzLCBpMzIgNjQsIGkxIGZhbHNl KSwgIWRiZyAhMTY1NywgIXRiYWEuc3RydWN0ICExOTcKLS0gICUyNCA9IGNhbGwgemVyb2V4dCBp MSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0liMTNVbmlmb3Jt V3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2ln bmV4dCAlMjEsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBhbGlnbiAzMiAlNSwgJSJzdHJ1 Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwgYWxpZ24gMSAlNiksICFkYmcg ITE2NTgKLSsgICUyNCA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFw cGx5SWZQcm9wZXJFbmNvZGluZ0liMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3Jt RUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlMjEsICVjbGFzcy5Vbmlmb3JtV3Jp dGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24gMzIgJTUsICUic3RydWN0LlBy aW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5j b2Rpbmc0VW5pZm9ybSIpIGFsaWduIDEgJTYpLCAhZGJnICExNjU4Ci0gICBiciBpMSAlMjQsIGxh YmVsICU2MCwgbGFiZWwgJTI1LCAhZGJnICExNjU5Ci0gCi0gOyA8bGFiZWw+OjI1OiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7IHByZWRzID0gJTMKLUBAIC04OTIyLDcgKzg5 MjIsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwx NHN3aXRjaEVuY29kaW5nSTEzVW5pZm9ybVdyaXRlcgotICAgJTI3ID0gYml0Y2FzdCAlY2xhc3Mu VW5pZm9ybVdyaXRlciogJTcgdG8gaTgqLCAhZGJnICExNjYxCi0gICAlMjggPSBiaXRjYXN0ICVj bGFzcy5Vbmlmb3JtV3JpdGVyKiAlMSB0byBpOCosICFkYmcgITE2NjEKLSAgIGNhbGwgdm9pZCBA bGx2bS5tZW1jcHkucDBpOC5wMGk4LmkzMihpOCogYWxpZ24gMzIgJTI3LCBpOCogYWxpZ24gMzIg JTI4LCBpMzIgNjQsIGkxIGZhbHNlKSwgIWRiZyAhMTY2MSwgIXRiYWEuc3RydWN0ICExOTcKLS0g ICUyOSA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9w ZXJFbmNvZGluZ0lpMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhF bmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlMjYsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZh bCBhbGlnbiAzMiAlNywgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2 YWwgYWxpZ24gMSAlOCksICFkYmcgITE2NjIKLSsgICUyOSA9IGNhbGwgemVyb2V4dCBpMSBAX1pO OVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lpMTNVbmlmb3JtV3JpdGVy TlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAl MjYsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxp Z24gMzIgJTcsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsKCUi c3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIpIGFsaWduIDEgJTgpLCAhZGJnICEx NjYyCi0gICBiciBpMSAlMjksIGxhYmVsICU2MCwgbGFiZWwgJTMwLCAhZGJnICExNjYzCi0gCi0g OyA8bGFiZWw+OjMwOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7IHByZWRz ID0gJTI1Ci1AQCAtODkzMCw3ICs4OTMwLDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEg QF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1VuaWZvcm1Xcml0ZXIKLSAg ICUzMiA9IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqICU5IHRvIGk4KiwgIWRiZyAhMTY2 NQotICAgJTMzID0gYml0Y2FzdCAlY2xhc3MuVW5pZm9ybVdyaXRlciogJTEgdG8gaTgqLCAhZGJn ICExNjY1Ci0gICBjYWxsIHZvaWQgQGxsdm0ubWVtY3B5LnAwaTgucDBpOC5pMzIoaTgqIGFsaWdu IDMyICUzMiwgaTgqIGFsaWduIDMyICUzMywgaTMyIDY0LCBpMSBmYWxzZSksICFkYmcgITE2NjUs ICF0YmFhLnN0cnVjdCAhMTk3Ci0tICAlMzQgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludElu Zm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJajEzVW5pZm9ybVdyaXRlck5TXzE2RW5j b2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTMxLCAlY2xh c3MuVW5pZm9ybVdyaXRlciogYnl2YWwgYWxpZ24gMzIgJTksICUic3RydWN0LlByaW50SW5mbzo6 RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsIGFsaWduIDEgJTEwKSwgIWRiZyAhMTY2NgotKyAgJTM0 ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVu Y29kaW5nSWoxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29k aW5nRVQwX1QxXyhpOCBzaWduZXh0ICUzMSwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsKCVj bGFzcy5Vbmlmb3JtV3JpdGVyKSBhbGlnbiAzMiAlOSwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNv ZGluZzRVbmlmb3JtIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3Jt IikgYWxpZ24gMSAlMTApLCAhZGJnICExNjY2Ci0gICBiciBpMSAlMzQsIGxhYmVsICU2MCwgbGFi ZWwgJTM1LCAhZGJnICExNjY3Ci0gCi0gOyA8bGFiZWw+OjM1OiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICA7IHByZWRzID0gJTMwCi1AQCAtODkzOCw3ICs4OTM4LDcgQEAgZGVm aW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNv ZGluZ0kxM1VuaWZvcm1Xcml0ZXIKLSAgICUzNyA9IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0 ZXIqICUxMSB0byBpOCosICFkYmcgITE2NjkKLSAgICUzOCA9IGJpdGNhc3QgJWNsYXNzLlVuaWZv cm1Xcml0ZXIqICUxIHRvIGk4KiwgIWRiZyAhMTY2OQotICAgY2FsbCB2b2lkIEBsbHZtLm1lbWNw eS5wMGk4LnAwaTguaTMyKGk4KiBhbGlnbiAzMiAlMzcsIGk4KiBhbGlnbiAzMiAlMzgsIGkzMiA2 NCwgaTEgZmFsc2UpLCAhZGJnICExNjY5LCAhdGJhYS5zdHJ1Y3QgITE5NwotLSAgJTM5ID0gY2Fs bCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5n SWYxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQw X1QxXyhpOCBzaWduZXh0ICUzNiwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsIGFsaWduIDMy ICUxMSwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwgYWxpZ24g MSAlMTIpLCAhZGJnICExNjcwCi0rICAlMzkgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludElu Zm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJZjEzVW5pZm9ybVdyaXRlck5TXzE2RW5j b2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTM2LCAlY2xh c3MuVW5pZm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1Xcml0ZXIpIGFsaWduIDMyICUx MSwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwoJSJzdHJ1Y3Qu UHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIikgYWxpZ24gMSAlMTIpLCAhZGJnICExNjcwCi0g ICBiciBpMSAlMzksIGxhYmVsICU2MCwgbGFiZWwgJTQwLCAhZGJnICExNjcxCi0gCi0gOyA8bGFi ZWw+OjQwOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7IHByZWRzID0gJTM1 Ci1AQCAtODk0Niw3ICs4OTQ2LDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQ cmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1VuaWZvcm1Xcml0ZXIKLSAgICU0MiA9 IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqICUxMyB0byBpOCosICFkYmcgITE2NzMKLSAg ICU0MyA9IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqICUxIHRvIGk4KiwgIWRiZyAhMTY3 MwotICAgY2FsbCB2b2lkIEBsbHZtLm1lbWNweS5wMGk4LnAwaTguaTMyKGk4KiBhbGlnbiAzMiAl NDIsIGk4KiBhbGlnbiAzMiAlNDMsIGkzMiA2NCwgaTEgZmFsc2UpLCAhZGJnICExNjczLCAhdGJh YS5zdHJ1Y3QgITE5NwotLSAgJTQ0ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRl dGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSXgxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5n NFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICU0MSwgJWNsYXNzLlVu aWZvcm1Xcml0ZXIqIGJ5dmFsIGFsaWduIDMyICUxMywgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNv ZGluZzRVbmlmb3JtIiogYnl2YWwgYWxpZ24gMSAlMTQpLCAhZGJnICExNjc0Ci0rICAlNDQgPSBj YWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2Rp bmdJeDEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdF VDBfVDFfKGk4IHNpZ25leHQgJTQxLCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwoJWNsYXNz LlVuaWZvcm1Xcml0ZXIpIGFsaWduIDMyICUxMywgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGlu ZzRVbmlmb3JtIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIikg YWxpZ24gMSAlMTQpLCAhZGJnICExNjc0Ci0gICBiciBpMSAlNDQsIGxhYmVsICU2MCwgbGFiZWwg JTQ1LCAhZGJnICExNjc1Ci0gCi0gOyA8bGFiZWw+OjQ1OiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICA7IHByZWRzID0gJTQwCi1AQCAtODk1NCw3ICs4OTU0LDcgQEAgZGVmaW5l IGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGlu Z0kxM1VuaWZvcm1Xcml0ZXIKLSAgICU0NyA9IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIq ICUxNSB0byBpOCosICFkYmcgITE2NzcKLSAgICU0OCA9IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1X cml0ZXIqICUxIHRvIGk4KiwgIWRiZyAhMTY3NwotICAgY2FsbCB2b2lkIEBsbHZtLm1lbWNweS5w MGk4LnAwaTguaTMyKGk4KiBhbGlnbiAzMiAlNDcsIGk4KiBhbGlnbiAzMiAlNDgsIGkzMiA2NCwg aTEgZmFsc2UpLCAhZGJnICExNjc3LCAhdGJhYS5zdHJ1Y3QgITE5NwotLSAgJTQ5ID0gY2FsbCB6 ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSXkx M1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1Qx XyhpOCBzaWduZXh0ICU0NiwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsIGFsaWduIDMyICUx NSwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwgYWxpZ24gMSAl MTYpLCAhZGJnICExNjc4Ci0rICAlNDkgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82 ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJeTEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rp bmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTQ2LCAlY2xhc3Mu VW5pZm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1Xcml0ZXIpIGFsaWduIDMyICUxNSwg JSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwoJSJzdHJ1Y3QuUHJp bnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIikgYWxpZ24gMSAlMTYpLCAhZGJnICExNjc4Ci0gICBi ciBpMSAlNDksIGxhYmVsICU2MCwgbGFiZWwgJTUwLCAhZGJnICExNjc5Ci0gCi0gOyA8bGFiZWw+ OjUwOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7IHByZWRzID0gJTQ1Ci1A QCAtODk2Miw3ICs4OTYyLDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmlu dEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1VuaWZvcm1Xcml0ZXIKLSAgICU1MiA9IGJp dGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqICUxNyB0byBpOCosICFkYmcgITE2ODEKLSAgICU1 MyA9IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqICUxIHRvIGk4KiwgIWRiZyAhMTY4MQot ICAgY2FsbCB2b2lkIEBsbHZtLm1lbWNweS5wMGk4LnAwaTguaTMyKGk4KiBhbGlnbiAzMiAlNTIs IGk4KiBhbGlnbiAzMiAlNTMsIGkzMiA2NCwgaTEgZmFsc2UpLCAhZGJnICExNjgxLCAhdGJhYS5z dHJ1Y3QgITE5NwotLSAgJTU0ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFp bDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWQxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVu aWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICU1MSwgJWNsYXNzLlVuaWZv cm1Xcml0ZXIqIGJ5dmFsIGFsaWduIDMyICUxNywgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGlu ZzRVbmlmb3JtIiogYnl2YWwgYWxpZ24gMSAlMTgpLCAhZGJnICExNjgyCi0rICAlNTQgPSBjYWxs IHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJ ZDEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBf VDFfKGk4IHNpZ25leHQgJTUxLCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVu aWZvcm1Xcml0ZXIpIGFsaWduIDMyICUxNywgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRV bmlmb3JtIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIikgYWxp Z24gMSAlMTgpLCAhZGJnICExNjgyCi0gICBiciBpMSAlNTQsIGxhYmVsICU2MCwgbGFiZWwgJTU1 LCAhZGJnICExNjgzCi0gCi0gOyA8bGFiZWw+OjU1OiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICA7IHByZWRzID0gJTUwCi1AQCAtODk3MCw3ICs4OTcwLDcgQEAgZGVmaW5lIGlu dGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kx M1VuaWZvcm1Xcml0ZXIKLSAgICU1NyA9IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqICUx OSB0byBpOCosICFkYmcgITE2ODUKLSAgICU1OCA9IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0 ZXIqICUxIHRvIGk4KiwgIWRiZyAhMTY4NQotICAgY2FsbCB2b2lkIEBsbHZtLm1lbWNweS5wMGk4 LnAwaTguaTMyKGk4KiBhbGlnbiAzMiAlNTcsIGk4KiBhbGlnbiAzMiAlNTgsIGkzMiA2NCwgaTEg ZmFsc2UpLCAhZGJnICExNjg1LCAhdGJhYS5zdHJ1Y3QgITE5NwotLSAgJTU5ID0gY2FsbCB6ZXJv ZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSVB2MTNV bmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8o aTggc2lnbmV4dCAlNTYsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBhbGlnbiAzMiAlMTks ICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsIGFsaWduIDEgJTIw KSwgIWRiZyAhMTY4NgotKyAgJTU5ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRl dGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSVB2MTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGlu ZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlNTYsICVjbGFzcy5V bmlmb3JtV3JpdGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24gMzIgJTE5LCAl InN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCglInN0cnVjdC5Qcmlu dEluZm86OkVuY29kaW5nNFVuaWZvcm0iKSBhbGlnbiAxICUyMCksICFkYmcgITE2ODYKLSAgIGJy IGxhYmVsICU2MCwgIWRiZyAhMTY4MwotIAotIDsgPGxhYmVsPjo2MDogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgOyBwcmVkcyA9ICU1NSwgJTUwLCAlNDUsICU0MCwgJTM1LCAl MzAsICUyNSwgJTMKLUBAIC04OTc5LDcgKzg5NzksNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4 dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEzVW5pZm9ybVdyaXRl cgotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vu d2luZAotLWRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIx YXBwbHlJZlByb3BlckVuY29kaW5nSWIxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZv cm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRl ciogYnl2YWwgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIq IGJ5dmFsIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMTY4OCB7Ci0rZGVmaW5lIGludGVybmFs IHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJ YjEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBf VDFfKGk4IHNpZ25leHQsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCglY2xhc3MuVW5pZm9y bVdyaXRlcikgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIq IGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIpIGFsaWduIDEpICMy NSBjb21kYXQgIWRiZyAhMTY4OCB7Ci0gICAlNCA9IGFsbG9jYSBpMSwgYWxpZ24gMQotICAgJTUg PSBhbGxvY2EgaTgsIGFsaWduIDEKLSAgIHN0b3JlIGk4ICUwLCBpOCogJTUsIGFsaWduIDEsICF0 YmFhICExOTMKLUBAIC05MDA1LDcgKzkwMDUsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBp MSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0liMTNVbmlmbwot IH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2lu ZAotLWRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBw bHlJZlByb3BlckVuY29kaW5nSWkxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1F RUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciog Ynl2YWwgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5 dmFsIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMTY5NyB7Ci0rZGVmaW5lIGludGVybmFsIHpl cm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJaTEz VW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFf KGk4IHNpZ25leHQsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdy aXRlcikgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5 dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIpIGFsaWduIDEpICMyNSBj b21kYXQgIWRiZyAhMTY5NyB7Ci0gICAlNCA9IGFsbG9jYSBpMSwgYWxpZ24gMQotICAgJTUgPSBh bGxvY2EgaTgsIGFsaWduIDEKLSAgIHN0b3JlIGk4ICUwLCBpOCogJTUsIGFsaWduIDEsICF0YmFh ICExOTMKLUBAIC05MDMxLDcgKzkwMzEsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBA X1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lpMTNVbmlmbwotIH0K LSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2luZAot LWRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJ ZlByb3BlckVuY29kaW5nSWoxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUVi TlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2 YWwgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFs IGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMTcwNiB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9l eHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJajEzVW5p Zm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4 IHNpZ25leHQsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRl cikgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFs KCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIpIGFsaWduIDEpICMyNSBjb21k YXQgIWRiZyAhMTcwNiB7Ci0gICAlNCA9IGFsbG9jYSBpMSwgYWxpZ24gMQotICAgJTUgPSBhbGxv Y2EgaTgsIGFsaWduIDEKLSAgIHN0b3JlIGk4ICUwLCBpOCogJTUsIGFsaWduIDEsICF0YmFhICEx OTMKLUBAIC05MDU3LDcgKzkwNTcsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pO OVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lqMTNVbmlmbwotIH0KLSAK LSA7IEZ1bmN0aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2luZAotLWRl ZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlBy b3BlckVuY29kaW5nSWYxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNf OEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwg YWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsIGFs aWduIDEpICMyNSBjb21kYXQgIWRiZyAhMTcxNSB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQg aTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJZjEzVW5pZm9y bVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNp Z25leHQsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikg YWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsKCUi c3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIpIGFsaWduIDEpICMyNSBjb21kYXQg IWRiZyAhMTcxNSB7Ci0gICAlNCA9IGFsbG9jYSBpMSwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2Eg aTgsIGFsaWduIDEKLSAgIHN0b3JlIGk4ICUwLCBpOCogJTUsIGFsaWduIDEsICF0YmFhICExOTMK LUBAIC05MDgzLDcgKzkwODMsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVBy aW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lmMTNVbmlmbwotIH0KLSAKLSA7 IEZ1bmN0aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2luZAotLWRlZmlu ZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3Bl ckVuY29kaW5nSXgxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVu Y29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwgYWxp Z24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsIGFsaWdu IDEpICMyNSBjb21kYXQgIWRiZyAhMTcyNCB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEg QF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJeDEzVW5pZm9ybVdy aXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25l eHQsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxp Z24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsKCUic3Ry dWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIpIGFsaWduIDEpICMyNSBjb21kYXQgIWRi ZyAhMTcyNCB7Ci0gICAlNCA9IGFsbG9jYSBpMSwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2EgaTgs IGFsaWduIDEKLSAgIHN0b3JlIGk4ICUwLCBpOCogJTUsIGFsaWduIDEsICF0YmFhICExOTMKLUBA IC05MTA5LDcgKzkxMDksNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50 SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0l4MTNVbmlmbwotIH0KLSAKLSA7IEZ1 bmN0aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2luZAotLWRlZmluZSBp bnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVu Y29kaW5nSXkxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29k aW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwgYWxpZ24g MzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsIGFsaWduIDEp ICMyNSBjb21kYXQgIWRiZyAhMTczMyB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9a TjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJeTEzVW5pZm9ybVdyaXRl ck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQs ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24g MzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsKCUic3RydWN0 LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIpIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAh MTczMyB7Ci0gICAlNCA9IGFsbG9jYSBpMSwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2EgaTgsIGFs aWduIDEKLSAgIHN0b3JlIGk4ICUwLCBpOCogJTUsIGFsaWduIDEsICF0YmFhICExOTMKLUBAIC05 MTM1LDcgKzkxMzUsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5m bzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0l5MTNVbmlmbwotIH0KLSAKLSA7IEZ1bmN0 aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2luZAotLWRlZmluZSBpbnRl cm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29k aW5nSWQxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5n RVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwgYWxpZ24gMzIs ICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsIGFsaWduIDEpICMy NSBjb21kYXQgIWRiZyAhMTc0MiB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQ cmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJZDEzVW5pZm9ybVdyaXRlck5T XzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVj bGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24gMzIs ICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsKCUic3RydWN0LlBy aW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIpIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMTc0 MiB7Ci0gICAlNCA9IGFsbG9jYSBpMSwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2EgaTgsIGFsaWdu IDEKLSAgIHN0b3JlIGk4ICUwLCBpOCogJTUsIGFsaWduIDEsICF0YmFhICExOTMKLUBAIC05MTYx LDcgKzkxNjEsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZk ZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lkMTNVbmlmbwotIH0KLSAKLSA7IEZ1bmN0aW9u IEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2luZAotLWRlZmluZSBpbnRlcm5h bCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5n SVB2MTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VU MF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsIGFsaWduIDMyLCAl InN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCBhbGlnbiAxKSAjMjUg Y29tZGF0ICFkYmcgITE3NTEgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJp bnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSVB2MTNVbmlmb3JtV3JpdGVyTlNf MTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNs YXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsKCVjbGFzcy5Vbmlmb3JtV3JpdGVyKSBhbGlnbiAzMiwg JSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwoJSJzdHJ1Y3QuUHJp bnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIikgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICExNzUx IHsKLSAgICU0ID0gYWxsb2NhIGkxLCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSBpOCwgYWxpZ24g MQotICAgc3RvcmUgaTggJTAsIGk4KiAlNSwgYWxpZ24gMSwgIXRiYWEgITE5MwotQEAgLTk5ODQs NyArOTk4NCw3IEBAIGRlZmluZSBpbnRlcm5hbCBpMzIgQF9aTjdkZXRhaWxzMThfY21fcHJpbnRf dHlwZV9vY2xJUHZFRU5TXzE4U0hBREVSX1BSSU5URl9UWVBFCi0gfQotIAotIDsgRnVuY3Rpb24g QXR0cnM6IGFsd2F5c2lubGluZSBpbmxpbmVoaW50IG5vdW53aW5kCi0tZGVmaW5lIGludGVybmFs IHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1Zhcnlp bmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVRfVDBfKGk4IHNp Z25leHQsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJp bnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJn ICEyMDU1IHsKLStkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRh aWwxNHN3aXRjaEVuY29kaW5nSTEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VF RWJOU184RW5jb2RpbmdFVF9UMF8oaTggc2lnbmV4dCwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5 dmFsKCVjbGFzcy5WYXJ5aW5nV3JpdGVyKSBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpF bmNvZGluZzRWYXJ5aW5nIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5 aW5nIikgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICEyMDU1IHsKLSAgICU0ID0gYWxsb2NhIGk4 LCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSAlY2xhc3MuVmFyeWluZ1dyaXRlciwgYWxpZ24gMzIK LSAgICU2ID0gYWxsb2NhICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIsIGFs aWduIDEKLUBAIC0xMDAwNyw3ICsxMDAwNyw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkx IEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNWYXJ5aW5nV3JpdGVyCi0g ICAlMjIgPSBiaXRjYXN0ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiAlNSB0byBpOCosICFkYmcgITIw NTcKLSAgICUyMyA9IGJpdGNhc3QgJWNsYXNzLlZhcnlpbmdXcml0ZXIqICUxIHRvIGk4KiwgIWRi ZyAhMjA1NwotICAgY2FsbCB2b2lkIEBsbHZtLm1lbWNweS5wMGk4LnAwaTguaTMyKGk4KiBhbGln biAzMiAlMjIsIGk4KiBhbGlnbiAzMiAlMjMsIGkzMiA2NCwgaTEgZmFsc2UpLCAhZGJnICEyMDU3 LCAhdGJhYS5zdHJ1Y3QgITE5NwotLSAgJTI0ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJ bmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWIxM1ZhcnlpbmdXcml0ZXJOU18xNkVu Y29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICUyMSwgJWNs YXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsIGFsaWduIDMyICU1LCAlInN0cnVjdC5QcmludEluZm86 OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCBhbGlnbiAxICU2KSwgIWRiZyAhMjA1OAotKyAgJTI0 ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVu Y29kaW5nSWIxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29k aW5nRVQwX1QxXyhpOCBzaWduZXh0ICUyMSwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsKCVj bGFzcy5WYXJ5aW5nV3JpdGVyKSBhbGlnbiAzMiAlNSwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNv ZGluZzRWYXJ5aW5nIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5n IikgYWxpZ24gMSAlNiksICFkYmcgITIwNTgKLSAgIGJyIGkxICUyNCwgbGFiZWwgJTYwLCBsYWJl bCAlMjUsICFkYmcgITIwNTkKLSAKLSA7IDxsYWJlbD46MjU6ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDsgcHJlZHMgPSAlMwotQEAgLTEwMDE1LDcgKzEwMDE1LDcgQEAgZGVm aW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNv ZGluZ0kxM1ZhcnlpbmdXcml0ZXIKLSAgICUyNyA9IGJpdGNhc3QgJWNsYXNzLlZhcnlpbmdXcml0 ZXIqICU3IHRvIGk4KiwgIWRiZyAhMjA2MQotICAgJTI4ID0gYml0Y2FzdCAlY2xhc3MuVmFyeWlu Z1dyaXRlciogJTEgdG8gaTgqLCAhZGJnICEyMDYxCi0gICBjYWxsIHZvaWQgQGxsdm0ubWVtY3B5 LnAwaTgucDBpOC5pMzIoaTgqIGFsaWduIDMyICUyNywgaTgqIGFsaWduIDMyICUyOCwgaTMyIDY0 LCBpMSBmYWxzZSksICFkYmcgITIwNjEsICF0YmFhLnN0cnVjdCAhMTk3Ci0tICAlMjkgPSBjYWxs IHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJ aTEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBf VDFfKGk4IHNpZ25leHQgJTI2LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwgYWxpZ24gMzIg JTcsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsIGFsaWduIDEg JTgpLCAhZGJnICEyMDYyCi0rICAlMjkgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82 ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJaTEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rp bmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTI2LCAlY2xhc3Mu VmFyeWluZ1dyaXRlciogYnl2YWwoJWNsYXNzLlZhcnlpbmdXcml0ZXIpIGFsaWduIDMyICU3LCAl InN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCglInN0cnVjdC5Qcmlu dEluZm86OkVuY29kaW5nNFZhcnlpbmciKSBhbGlnbiAxICU4KSwgIWRiZyAhMjA2MgotICAgYnIg aTEgJTI5LCBsYWJlbCAlNjAsIGxhYmVsICUzMCwgIWRiZyAhMjA2MwotIAotIDsgPGxhYmVsPjoz MDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOyBwcmVkcyA9ICUyNQotQEAg LTEwMDIzLDcgKzEwMDIzLDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmlu dEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1ZhcnlpbmdXcml0ZXIKLSAgICUzMiA9IGJp dGNhc3QgJWNsYXNzLlZhcnlpbmdXcml0ZXIqICU5IHRvIGk4KiwgIWRiZyAhMjA2NQotICAgJTMz ID0gYml0Y2FzdCAlY2xhc3MuVmFyeWluZ1dyaXRlciogJTEgdG8gaTgqLCAhZGJnICEyMDY1Ci0g ICBjYWxsIHZvaWQgQGxsdm0ubWVtY3B5LnAwaTgucDBpOC5pMzIoaTgqIGFsaWduIDMyICUzMiwg aTgqIGFsaWduIDMyICUzMywgaTMyIDY0LCBpMSBmYWxzZSksICFkYmcgITIwNjUsICF0YmFhLnN0 cnVjdCAhMTk3Ci0tICAlMzQgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWls MjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJajEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFy eWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTMxLCAlY2xhc3MuVmFyeWlu Z1dyaXRlciogYnl2YWwgYWxpZ24gMzIgJTksICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0 VmFyeWluZyIqIGJ5dmFsIGFsaWduIDEgJTEwKSwgIWRiZyAhMjA2NgotKyAgJTM0ID0gY2FsbCB6 ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWox M1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1Qx XyhpOCBzaWduZXh0ICUzMSwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5 aW5nV3JpdGVyKSBhbGlnbiAzMiAlOSwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5 aW5nIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIikgYWxpZ24g MSAlMTApLCAhZGJnICEyMDY2Ci0gICBiciBpMSAlMzQsIGxhYmVsICU2MCwgbGFiZWwgJTM1LCAh ZGJnICEyMDY3Ci0gCi0gOyA8bGFiZWw+OjM1OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICA7IHByZWRzID0gJTMwCi1AQCAtMTAwMzEsNyArMTAwMzEsNyBAQCBkZWZpbmUgaW50 ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEz VmFyeWluZ1dyaXRlcgotICAgJTM3ID0gYml0Y2FzdCAlY2xhc3MuVmFyeWluZ1dyaXRlciogJTEx IHRvIGk4KiwgIWRiZyAhMjA2OQotICAgJTM4ID0gYml0Y2FzdCAlY2xhc3MuVmFyeWluZ1dyaXRl ciogJTEgdG8gaTgqLCAhZGJnICEyMDY5Ci0gICBjYWxsIHZvaWQgQGxsdm0ubWVtY3B5LnAwaTgu cDBpOC5pMzIoaTgqIGFsaWduIDMyICUzNywgaTgqIGFsaWduIDMyICUzOCwgaTMyIDY0LCBpMSBm YWxzZSksICFkYmcgITIwNjksICF0YmFhLnN0cnVjdCAhMTk3Ci0tICAlMzkgPSBjYWxsIHplcm9l eHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJZjEzVmFy eWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4 IHNpZ25leHQgJTM2LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwgYWxpZ24gMzIgJTExLCAl InN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCBhbGlnbiAxICUxMiks ICFkYmcgITIwNzAKLSsgICUzOSA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRh aWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lmMTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRW YXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlMzYsICVjbGFzcy5WYXJ5 aW5nV3JpdGVyKiBieXZhbCglY2xhc3MuVmFyeWluZ1dyaXRlcikgYWxpZ24gMzIgJTExLCAlInN0 cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCglInN0cnVjdC5QcmludElu Zm86OkVuY29kaW5nNFZhcnlpbmciKSBhbGlnbiAxICUxMiksICFkYmcgITIwNzAKLSAgIGJyIGkx ICUzOSwgbGFiZWwgJTYwLCBsYWJlbCAlNDAsICFkYmcgITIwNzEKLSAKLSA7IDxsYWJlbD46NDA6 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsgcHJlZHMgPSAlMzUKLUBAIC0x MDAzOSw3ICsxMDAzOSw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJ bmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNWYXJ5aW5nV3JpdGVyCi0gICAlNDIgPSBiaXRj YXN0ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiAlMTMgdG8gaTgqLCAhZGJnICEyMDczCi0gICAlNDMg PSBiaXRjYXN0ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiAlMSB0byBpOCosICFkYmcgITIwNzMKLSAg IGNhbGwgdm9pZCBAbGx2bS5tZW1jcHkucDBpOC5wMGk4LmkzMihpOCogYWxpZ24gMzIgJTQyLCBp OCogYWxpZ24gMzIgJTQzLCBpMzIgNjQsIGkxIGZhbHNlKSwgIWRiZyAhMjA3MywgIXRiYWEuc3Ry dWN0ICExOTcKLS0gICU0NCA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwy MWFwcGx5SWZQcm9wZXJFbmNvZGluZ0l4MTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5 aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlNDEsICVjbGFzcy5WYXJ5aW5n V3JpdGVyKiBieXZhbCBhbGlnbiAzMiAlMTMsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0 VmFyeWluZyIqIGJ5dmFsIGFsaWduIDEgJTE0KSwgIWRiZyAhMjA3NAotKyAgJTQ0ID0gY2FsbCB6 ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSXgx M1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1Qx XyhpOCBzaWduZXh0ICU0MSwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5 aW5nV3JpdGVyKSBhbGlnbiAzMiAlMTMsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFy eWluZyIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIpIGFsaWdu IDEgJTE0KSwgIWRiZyAhMjA3NAotICAgYnIgaTEgJTQ0LCBsYWJlbCAlNjAsIGxhYmVsICU0NSwg IWRiZyAhMjA3NQotIAotIDsgPGxhYmVsPjo0NTogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgOyBwcmVkcyA9ICU0MAotQEAgLTEwMDQ3LDcgKzEwMDQ3LDcgQEAgZGVmaW5lIGlu dGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kx M1ZhcnlpbmdXcml0ZXIKLSAgICU0NyA9IGJpdGNhc3QgJWNsYXNzLlZhcnlpbmdXcml0ZXIqICUx NSB0byBpOCosICFkYmcgITIwNzcKLSAgICU0OCA9IGJpdGNhc3QgJWNsYXNzLlZhcnlpbmdXcml0 ZXIqICUxIHRvIGk4KiwgIWRiZyAhMjA3NwotICAgY2FsbCB2b2lkIEBsbHZtLm1lbWNweS5wMGk4 LnAwaTguaTMyKGk4KiBhbGlnbiAzMiAlNDcsIGk4KiBhbGlnbiAzMiAlNDgsIGkzMiA2NCwgaTEg ZmFsc2UpLCAhZGJnICEyMDc3LCAhdGJhYS5zdHJ1Y3QgITE5NwotLSAgJTQ5ID0gY2FsbCB6ZXJv ZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSXkxM1Zh cnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhp OCBzaWduZXh0ICU0NiwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsIGFsaWduIDMyICUxNSwg JSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwgYWxpZ24gMSAlMTYp LCAhZGJnICEyMDc4Ci0rICAlNDkgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0 YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJeTEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0 VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTQ2LCAlY2xhc3MuVmFy eWluZ1dyaXRlciogYnl2YWwoJWNsYXNzLlZhcnlpbmdXcml0ZXIpIGFsaWduIDMyICUxNSwgJSJz dHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJ bmZvOjpFbmNvZGluZzRWYXJ5aW5nIikgYWxpZ24gMSAlMTYpLCAhZGJnICEyMDc4Ci0gICBiciBp MSAlNDksIGxhYmVsICU2MCwgbGFiZWwgJTUwLCAhZGJnICEyMDc5Ci0gCi0gOyA8bGFiZWw+OjUw OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7IHByZWRzID0gJTQ1Ci1AQCAt MTAwNTUsNyArMTAwNTUsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50 SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEzVmFyeWluZ1dyaXRlcgotICAgJTUyID0gYml0 Y2FzdCAlY2xhc3MuVmFyeWluZ1dyaXRlciogJTE3IHRvIGk4KiwgIWRiZyAhMjA4MQotICAgJTUz ID0gYml0Y2FzdCAlY2xhc3MuVmFyeWluZ1dyaXRlciogJTEgdG8gaTgqLCAhZGJnICEyMDgxCi0g ICBjYWxsIHZvaWQgQGxsdm0ubWVtY3B5LnAwaTgucDBpOC5pMzIoaTgqIGFsaWduIDMyICU1Miwg aTgqIGFsaWduIDMyICU1MywgaTMyIDY0LCBpMSBmYWxzZSksICFkYmcgITIwODEsICF0YmFhLnN0 cnVjdCAhMTk3Ci0tICAlNTQgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWls MjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJZDEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFy eWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTUxLCAlY2xhc3MuVmFyeWlu Z1dyaXRlciogYnl2YWwgYWxpZ24gMzIgJTE3LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5n NFZhcnlpbmciKiBieXZhbCBhbGlnbiAxICUxOCksICFkYmcgITIwODIKLSsgICU1NCA9IGNhbGwg emVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lk MTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9U MV8oaTggc2lnbmV4dCAlNTEsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCglY2xhc3MuVmFy eWluZ1dyaXRlcikgYWxpZ24gMzIgJTE3LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZh cnlpbmciKiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKSBhbGln biAxICUxOCksICFkYmcgITIwODIKLSAgIGJyIGkxICU1NCwgbGFiZWwgJTYwLCBsYWJlbCAlNTUs ICFkYmcgITIwODMKLSAKLSA7IDxsYWJlbD46NTU6ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDsgcHJlZHMgPSAlNTAKLUBAIC0xMDA2Myw3ICsxMDA2Myw3IEBAIGRlZmluZSBp bnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJ MTNWYXJ5aW5nV3JpdGVyCi0gICAlNTcgPSBiaXRjYXN0ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiAl MTkgdG8gaTgqLCAhZGJnICEyMDg1Ci0gICAlNTggPSBiaXRjYXN0ICVjbGFzcy5WYXJ5aW5nV3Jp dGVyKiAlMSB0byBpOCosICFkYmcgITIwODUKLSAgIGNhbGwgdm9pZCBAbGx2bS5tZW1jcHkucDBp OC5wMGk4LmkzMihpOCogYWxpZ24gMzIgJTU3LCBpOCogYWxpZ24gMzIgJTU4LCBpMzIgNjQsIGkx IGZhbHNlKSwgIWRiZyAhMjA4NSwgIXRiYWEuc3RydWN0ICExOTcKLS0gICU1OSA9IGNhbGwgemVy b2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lQdjEz VmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFf KGk4IHNpZ25leHQgJTU2LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwgYWxpZ24gMzIgJTE5 LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCBhbGlnbiAxICUy MCksICFkYmcgITIwODYKLSsgICU1OSA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZk ZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lQdjEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rp bmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTU2LCAlY2xhc3Mu VmFyeWluZ1dyaXRlciogYnl2YWwoJWNsYXNzLlZhcnlpbmdXcml0ZXIpIGFsaWduIDMyICUxOSwg JSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwoJSJzdHJ1Y3QuUHJp bnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIikgYWxpZ24gMSAlMjApLCAhZGJnICEyMDg2Ci0gICBi ciBsYWJlbCAlNjAsICFkYmcgITIwODMKLSAKLSA7IDxsYWJlbD46NjA6ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDsgcHJlZHMgPSAlNTUsICU1MCwgJTQ1LCAlNDAsICUzNSwg JTMwLCAlMjUsICUzCi1AQCAtMTAwNzIsNyArMTAwNzIsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVy b2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEzVmFyeWluZ1dy aXRlcgotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBu b3Vud2luZAotLWRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFp bDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWIxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZh cnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVmFyeWluZ1dy aXRlciogYnl2YWwgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWlu ZyIqIGJ5dmFsIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMjA4OCB7Ci0rZGVmaW5lIGludGVy bmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2Rp bmdJYjEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdF VDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCglY2xhc3MuVmFy eWluZ1dyaXRlcikgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWlu ZyIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIpIGFsaWduIDEp ICMyNSBjb21kYXQgIWRiZyAhMjA4OCB7Ci0gICAlNCA9IGFsbG9jYSBpMSwgYWxpZ24gMQotICAg JTUgPSBhbGxvY2EgaTgsIGFsaWduIDEKLSAgIHN0b3JlIGk4ICUwLCBpOCogJTUsIGFsaWduIDEs ICF0YmFhICExOTMKLUBAIC0xMDA5OCw3ICsxMDA5OCw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJv ZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWIxM1Zh cnlpCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IGFsd2F5c2lubGluZSBpbmxpbmVoaW50IG5v dW53aW5kCi0tZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWls MjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJaTEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFy eWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5WYXJ5aW5nV3Jp dGVyKiBieXZhbCBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5n IiogYnl2YWwgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICEyMDk3IHsKLStkZWZpbmUgaW50ZXJu YWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGlu Z0lpMTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VU MF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5 aW5nV3JpdGVyKSBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5n IiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIikgYWxpZ24gMSkg IzI1IGNvbWRhdCAhZGJnICEyMDk3IHsKLSAgICU0ID0gYWxsb2NhIGkxLCBhbGlnbiAxCi0gICAl NSA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgc3RvcmUgaTggJTAsIGk4KiAlNSwgYWxpZ24gMSwg IXRiYWEgITE5MwotQEAgLTEwMTI0LDcgKzEwMTI0LDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9l eHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJaTEzVmFy eWkKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogYWx3YXlzaW5saW5lIGlubGluZWhpbnQgbm91 bndpbmQKLS1kZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwy MWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lqMTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5 aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlZhcnlpbmdXcml0 ZXIqIGJ5dmFsIGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmci KiBieXZhbCBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITIxMDYgewotK2RlZmluZSBpbnRlcm5h bCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5n SWoxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQw X1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwoJWNsYXNzLlZhcnlp bmdXcml0ZXIpIGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmci KiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKSBhbGlnbiAxKSAj MjUgY29tZGF0ICFkYmcgITIxMDYgewotICAgJTQgPSBhbGxvY2EgaTEsIGFsaWduIDEKLSAgICU1 ID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0gICBzdG9yZSBpOCAlMCwgaTgqICU1LCBhbGlnbiAxLCAh dGJhYSAhMTkzCi1AQCAtMTAxNTAsNyArMTAxNTAsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4 dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lqMTNWYXJ5 aQotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vu d2luZAotLWRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIx YXBwbHlJZlByb3BlckVuY29kaW5nSWYxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlp bmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVmFyeWluZ1dyaXRl ciogYnl2YWwgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIq IGJ5dmFsIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMjExNSB7Ci0rZGVmaW5lIGludGVybmFs IHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJ ZjEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBf VDFfKGk4IHNpZ25leHQsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCglY2xhc3MuVmFyeWlu Z1dyaXRlcikgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIq IGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIpIGFsaWduIDEpICMy NSBjb21kYXQgIWRiZyAhMjExNSB7Ci0gICAlNCA9IGFsbG9jYSBpMSwgYWxpZ24gMQotICAgJTUg PSBhbGxvY2EgaTgsIGFsaWduIDEKLSAgIHN0b3JlIGk4ICUwLCBpOCogJTUsIGFsaWduIDEsICF0 YmFhICExOTMKLUBAIC0xMDE3Niw3ICsxMDE3Niw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0 IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWYxM1Zhcnlp Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IGFsd2F5c2lubGluZSBpbmxpbmVoaW50IG5vdW53 aW5kCi0tZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFh cHBseUlmUHJvcGVyRW5jb2RpbmdJeDEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWlu Z0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5WYXJ5aW5nV3JpdGVy KiBieXZhbCBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiog Ynl2YWwgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICEyMTI0IHsKLStkZWZpbmUgaW50ZXJuYWwg emVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0l4 MTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9U MV8oaTggc2lnbmV4dCwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5aW5n V3JpdGVyKSBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiog Ynl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIikgYWxpZ24gMSkgIzI1 IGNvbWRhdCAhZGJnICEyMTI0IHsKLSAgICU0ID0gYWxsb2NhIGkxLCBhbGlnbiAxCi0gICAlNSA9 IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgc3RvcmUgaTggJTAsIGk4KiAlNSwgYWxpZ24gMSwgIXRi YWEgITE5MwotQEAgLTEwMjAyLDcgKzEwMjAyLDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQg aTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJeDEzVmFyeWkK LSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogYWx3YXlzaW5saW5lIGlubGluZWhpbnQgbm91bndp bmQKLS1kZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFw cGx5SWZQcm9wZXJFbmNvZGluZ0l5MTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5n RUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlZhcnlpbmdXcml0ZXIq IGJ5dmFsIGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBi eXZhbCBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITIxMzMgewotK2RlZmluZSBpbnRlcm5hbCB6 ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSXkx M1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1Qx XyhpOCBzaWduZXh0LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwoJWNsYXNzLlZhcnlpbmdX cml0ZXIpIGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBi eXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKSBhbGlnbiAxKSAjMjUg Y29tZGF0ICFkYmcgITIxMzMgewotICAgJTQgPSBhbGxvY2EgaTEsIGFsaWduIDEKLSAgICU1ID0g YWxsb2NhIGk4LCBhbGlnbiAxCi0gICBzdG9yZSBpOCAlMCwgaTgqICU1LCBhbGlnbiAxLCAhdGJh YSAhMTkzCi1AQCAtMTAyMjgsNyArMTAyMjgsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBp MSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0l5MTNWYXJ5aQot IH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2lu ZAotLWRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBw bHlJZlByb3BlckVuY29kaW5nSWQxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdF RUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVmFyeWluZ1dyaXRlciog Ynl2YWwgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5 dmFsIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMjE0MiB7Ci0rZGVmaW5lIGludGVybmFsIHpl cm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJZDEz VmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFf KGk4IHNpZ25leHQsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCglY2xhc3MuVmFyeWluZ1dy aXRlcikgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5 dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIpIGFsaWduIDEpICMyNSBj b21kYXQgIWRiZyAhMjE0MiB7Ci0gICAlNCA9IGFsbG9jYSBpMSwgYWxpZ24gMQotICAgJTUgPSBh bGxvY2EgaTgsIGFsaWduIDEKLSAgIHN0b3JlIGk4ICUwLCBpOCogJTUsIGFsaWduIDEsICF0YmFh ICExOTMKLUBAIC0xMDI1NCw3ICsxMDI1NCw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkx IEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWQxM1ZhcnlpCi0g fQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IGFsd2F5c2lubGluZSBpbmxpbmVoaW50IG5vdW53aW5k Ci0tZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBs eUlmUHJvcGVyRW5jb2RpbmdJUHYxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdF RUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVmFyeWluZ1dyaXRlciog Ynl2YWwgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5 dmFsIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMjE1MSB7Ci0rZGVmaW5lIGludGVybmFsIHpl cm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJUHYx M1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1Qx XyhpOCBzaWduZXh0LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwoJWNsYXNzLlZhcnlpbmdX cml0ZXIpIGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBi eXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKSBhbGlnbiAxKSAjMjUg Y29tZGF0ICFkYmcgITIxNTEgewotICAgJTQgPSBhbGxvY2EgaTEsIGFsaWduIDEKLSAgICU1ID0g YWxsb2NhIGk4LCBhbGlnbiAxCi0gICBzdG9yZSBpOCAlMCwgaTgqICU1LCBhbGlnbiAxLCAhdGJh YSAhMTkzCi1kaWZmIC0tZ2l0IGEvYnVpbHRpbnMvYnVpbHRpbnMtY20tNjQubGwgYi9idWlsdGlu cy9idWlsdGlucy1jbS02NC5sbAotaW5kZXggMzlhMmRkOGJlLi4zNzVkMDFiZWQgMTAwNjQ0Ci0t LS0gYS9idWlsdGlucy9idWlsdGlucy1jbS02NC5sbAotKysrIGIvYnVpbHRpbnMvYnVpbHRpbnMt Y20tNjQubGwKLUBAIC01NTcsNyArNTU3LDcgQEAgJF9aTjEzVmFyeWluZ1dyaXRlcjEyV3JpdGVW ZWNFbGVtSVB2RUV2diA9IGNvbWRhdCBhbnkKLSBALnN0ci4xMCA9IHByaXZhdGUgdW5uYW1lZF9h ZGRyIGNvbnN0YW50IFs4IHggaThdIGMiJTAxNmxsWFwwMCIsIGFsaWduIDEKLSAKLSA7IEZ1bmN0 aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgc2lnbmV4dCBp OCBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdmNjKGk4IHNpZ25leHQsIGk4IHNpZ25leHQp ICMwIHsKLStkZWZpbmUgaW50ZXJuYWwgc2lnbmV4dCBpOCBAX1oyNF9fY21faW50cmluc2ljX2lt cGxfc2RpdmNjKGk4IHNpZ25leHQsIGk4IHNpZ25leHQpICMwIHsKLSAgICUzID0gYWxsb2NhIGk4 LCBhbGlnbiAxCi0gICAlNCA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2EgPDEg eCBpOD4sIGFsaWduIDEKLUBAIC02MTgsNyArNjE4LDcgQEAgZGVmaW5lIGludGVybmFsIDwxIHgg aTg+IEBfWk43ZGV0YWlsczEzX19pbXBsX2RpdnJlbUlMaTFFRUV1MkNNdmJUX19jUzFfUzFfdTJD TXYKLSBkZWNsYXJlIDwxIHggaTg+IEBsbHZtLmdlbngucmRyZWdpb25pLnYxaTgudjFpOC5pMTYo PDEgeCBpOD4sIGkzMiwgaTMyLCBpMzIsIGkxNiwgaTMyKSAjMgotIAotIDsgRnVuY3Rpb24gQXR0 cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MSB4IGk4PiBAX1oyNF9f Y21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjFfY1NfKDwxIHggaTg+LCA8MSB4IGk4PikgIzAg ewotK2RlZmluZSBpbnRlcm5hbCA8MSB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2Rp dnUyQ012YjFfY1NfKDwxIHggaTg+LCA8MSB4IGk4PikgIzAgewotICAgJTMgPSBhbGxvY2EgPDEg eCBpOD4sIGFsaWduIDEKLSAgICU0ID0gYWxsb2NhIDwxIHggaTg+LCBhbGlnbiAxCi0gICAlNSA9 IGFsbG9jYSA8MSB4IGk4PiwgYWxpZ24gMQotQEAgLTYzNCw3ICs2MzQsNyBAQCBkZWZpbmUgZHNv X2xvY2FsIDwxIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZiMV9jU18o PDEgeCBpOD4sIDwxCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5k Ci0tZGVmaW5lIGRzb19sb2NhbCA8MiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2Rp dnUyQ012YjJfY1NfKDwyIHggaTg+LCA8MiB4IGk4PikgIzMgewotK2RlZmluZSBpbnRlcm5hbCA8 MiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjJfY1NfKDwyIHggaTg+ LCA8MiB4IGk4PikgIzMgewotICAgJTMgPSBhbGxvY2EgPDIgeCBpOD4sIGFsaWduIDIKLSAgICU0 ID0gYWxsb2NhIDwyIHggaTg+LCBhbGlnbiAyCi0gICAlNSA9IGFsbG9jYSA8MiB4IGk4PiwgYWxp Z24gMgotQEAgLTY4MCw3ICs2ODAsNyBAQCBkZWZpbmUgaW50ZXJuYWwgPDIgeCBpOD4gQF9aTjdk ZXRhaWxzMTNfX2ltcGxfZGl2cmVtSUxpMkVFRXUyQ012YlRfX2NTMV9TMV91MkNNdgotIH0KLSAK LSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwg PDQgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmI0X2NTXyg8NCB4IGk4 PiwgPDQgeCBpOD4pICM1IHsKLStkZWZpbmUgaW50ZXJuYWwgPDQgeCBpOD4gQF9aMjRfX2NtX2lu dHJpbnNpY19pbXBsX3NkaXZ1MkNNdmI0X2NTXyg8NCB4IGk4PiwgPDQgeCBpOD4pICM1IHsKLSAg ICUzID0gYWxsb2NhIDw0IHggaTg+LCBhbGlnbiA0Ci0gICAlNCA9IGFsbG9jYSA8NCB4IGk4Piwg YWxpZ24gNAotICAgJTUgPSBhbGxvY2EgPDQgeCBpOD4sIGFsaWduIDQKLUBAIC04MTgsNyArODE4 LDcgQEAgZGVmaW5lIGludGVybmFsIDwxNiB4IGk4PiBAX1pON2RldGFpbHMxM19faW1wbF9kaXZy ZW1JTGkxNkVFRXUyQ012YlRfX2NTMV9TMV91MkMKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczog bm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwzMiB4IGk4PiBAX1oyNF9fY21f aW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjMyX2NTXyg8MzIgeCBpOD4sIDwzMiB4IGk4PikgIzEx IHsKLStkZWZpbmUgaW50ZXJuYWwgPDMyIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9z ZGl2dTJDTXZiMzJfY1NfKDwzMiB4IGk4PiwgPDMyIHggaTg+KSAjMTEgewotICAgJTMgPSBhbGxv Y2EgPDMyIHggaTg+LCBhbGlnbiAzMgotICAgJTQgPSBhbGxvY2EgPDMyIHggaTg+LCBhbGlnbiAz MgotICAgJTUgPSBhbGxvY2EgPDMyIHggaTg+LCBhbGlnbiAzMgotQEAgLTg2NCw3ICs4NjQsNyBA QCBkZWZpbmUgaW50ZXJuYWwgPDMyIHggaTg+IEBfWk43ZGV0YWlsczEzX19pbXBsX2RpdnJlbUlM aTMyRUVFdTJDTXZiVF9fY1MxX1MxX3UyQwotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lu bGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgc2lnbmV4dCBpOCBAX1oyNF9fY21faW50 cmluc2ljX2ltcGxfc3JlbWNjKGk4IHNpZ25leHQsIGk4IHNpZ25leHQpICMwIHsKLStkZWZpbmUg aW50ZXJuYWwgc2lnbmV4dCBpOCBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbWNjKGk4IHNp Z25leHQsIGk4IHNpZ25leHQpICMwIHsKLSAgICUzID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0gICAl NCA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2EgPDEgeCBpOD4sIGFsaWduIDEK LUBAIC04OTAsNyArODkwLDcgQEAgZGVmaW5lIGRzb19sb2NhbCBzaWduZXh0IGk4IEBfWjI0X19j bV9pbnRyaW5zaWNfaW1wbF9zcmVtY2MoaTggc2lnbmV4dCwgaTggc2lnbmUKLSB9Ci0gCi0gOyBG dW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwxIHgg aTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMV9jU18oPDEgeCBpOD4sIDwx IHggaTg+KSAjMCB7Ci0rZGVmaW5lIGludGVybmFsIDwxIHggaTg+IEBfWjI0X19jbV9pbnRyaW5z aWNfaW1wbF9zcmVtdTJDTXZiMV9jU18oPDEgeCBpOD4sIDwxIHggaTg+KSAjMCB7Ci0gICAlMyA9 IGFsbG9jYSA8MSB4IGk4PiwgYWxpZ24gMQotICAgJTQgPSBhbGxvY2EgPDEgeCBpOD4sIGFsaWdu IDEKLSAgICU1ID0gYWxsb2NhIDwxIHggaTg+LCBhbGlnbiAxCi1AQCAtOTA0LDcgKzkwNCw3IEBA IGRlZmluZSBkc29fbG9jYWwgPDEgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11 MkNNdmIxX2NTXyg8MSB4IGk4PiwgPDEKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxp bmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwyIHggaTg+IEBfWjI0X19jbV9pbnRyaW5z aWNfaW1wbF9zcmVtdTJDTXZiMl9jU18oPDIgeCBpOD4sIDwyIHggaTg+KSAjMyB7Ci0rZGVmaW5l IGludGVybmFsIDwyIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMl9j U18oPDIgeCBpOD4sIDwyIHggaTg+KSAjMyB7Ci0gICAlMyA9IGFsbG9jYSA8MiB4IGk4PiwgYWxp Z24gMgotICAgJTQgPSBhbGxvY2EgPDIgeCBpOD4sIGFsaWduIDIKLSAgICU1ID0gYWxsb2NhIDwy IHggaTg+LCBhbGlnbiAyCi1AQCAtOTE4LDcgKzkxOCw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDIg eCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIyX2NTXyg8MiB4IGk4Piwg PDIKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUg ZHNvX2xvY2FsIDw0IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiNF9j U18oPDQgeCBpOD4sIDw0IHggaTg+KSAjNSB7Ci0rZGVmaW5lIGludGVybmFsIDw0IHggaTg+IEBf WjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiNF9jU18oPDQgeCBpOD4sIDw0IHggaTg+ KSAjNSB7Ci0gICAlMyA9IGFsbG9jYSA8NCB4IGk4PiwgYWxpZ24gNAotICAgJTQgPSBhbGxvY2Eg PDQgeCBpOD4sIGFsaWduIDQKLSAgICU1ID0gYWxsb2NhIDw0IHggaTg+LCBhbGlnbiA0Ci1AQCAt OTMyLDcgKzkzMiw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDQgeCBpOD4gQF9aMjRfX2NtX2ludHJp bnNpY19pbXBsX3NyZW11MkNNdmI0X2NTXyg8NCB4IGk4PiwgPDQKLSB9Ci0gCi0gOyBGdW5jdGlv biBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDw4IHggaTg+IEBf WjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiOF9jU18oPDggeCBpOD4sIDw4IHggaTg+ KSAjNyB7Ci0rZGVmaW5lIGludGVybmFsIDw4IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1w bF9zcmVtdTJDTXZiOF9jU18oPDggeCBpOD4sIDw4IHggaTg+KSAjNyB7Ci0gICAlMyA9IGFsbG9j YSA8OCB4IGk4PiwgYWxpZ24gOAotICAgJTQgPSBhbGxvY2EgPDggeCBpOD4sIGFsaWduIDgKLSAg ICU1ID0gYWxsb2NhIDw4IHggaTg+LCBhbGlnbiA4Ci1AQCAtOTQ2LDcgKzk0Niw3IEBAIGRlZmlu ZSBkc29fbG9jYWwgPDggeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmI4 X2NTXyg8OCB4IGk4PiwgPDgKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91 bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwxNiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2lt cGxfc3JlbXUyQ012YjE2X2NTXyg8MTYgeCBpOD4sIDwxNiB4IGk4PikgIzkgewotK2RlZmluZSBp bnRlcm5hbCA8MTYgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIxNl9j U18oPDE2IHggaTg+LCA8MTYgeCBpOD4pICM5IHsKLSAgICUzID0gYWxsb2NhIDwxNiB4IGk4Piwg YWxpZ24gMTYKLSAgICU0ID0gYWxsb2NhIDwxNiB4IGk4PiwgYWxpZ24gMTYKLSAgICU1ID0gYWxs b2NhIDwxNiB4IGk4PiwgYWxpZ24gMTYKLUBAIC05NjAsNyArOTYwLDcgQEAgZGVmaW5lIGRzb19s b2NhbCA8MTYgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIxNl9jU18o PDE2IHggaTg+LAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAot LWRlZmluZSBkc29fbG9jYWwgPDMyIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVt dTJDTXZiMzJfY1NfKDwzMiB4IGk4PiwgPDMyIHggaTg+KSAjMTEgewotK2RlZmluZSBpbnRlcm5h bCA8MzIgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIzMl9jU18oPDMy IHggaTg+LCA8MzIgeCBpOD4pICMxMSB7Ci0gICAlMyA9IGFsbG9jYSA8MzIgeCBpOD4sIGFsaWdu IDMyCi0gICAlNCA9IGFsbG9jYSA8MzIgeCBpOD4sIGFsaWduIDMyCi0gICAlNSA9IGFsbG9jYSA8 MzIgeCBpOD4sIGFsaWduIDMyCi1AQCAtOTc0LDcgKzk3NCw3IEBAIGRlZmluZSBkc29fbG9jYWwg PDMyIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMzJfY1NfKDwzMiB4 IGk4PiwKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZp bmUgZHNvX2xvY2FsIHNpZ25leHQgaTE2IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2c3Mo aTE2IHNpZ25leHQsIGkxNiBzaWduZXh0KSAjMyB7Ci0rZGVmaW5lIGludGVybmFsIHNpZ25leHQg aTE2IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2c3MoaTE2IHNpZ25leHQsIGkxNiBzaWdu ZXh0KSAjMyB7Ci0gICAlMyA9IGFsbG9jYSBpMTYsIGFsaWduIDIKLSAgICU0ID0gYWxsb2NhIGkx NiwgYWxpZ24gMgotICAgJTUgPSBhbGxvY2EgPDEgeCBpMTY+LCBhbGlnbiAyCi1AQCAtMTA1OCw3 ICsxMDU4LDcgQEAgZGVmaW5lIGludGVybmFsIDwxIHggaTE2PiBAX1pON2RldGFpbHMxM19faW1w bF9kaXZyZW1JTGkxRUVFdTJDTXZiVF9fc1MxX1MxX3UyQ00KLSBkZWNsYXJlIDwxIHggaTE2PiBA bGx2bS5nZW54LnJkcmVnaW9uaS52MWkxNi52MWkxNi5pMTYoPDEgeCBpMTY+LCBpMzIsIGkzMiwg aTMyLCBpMTYsIGkzMikgIzIKLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2lu ZAotLWRlZmluZSBkc29fbG9jYWwgPDEgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9z ZGl2dTJDTXZiMV9zU18oPDEgeCBpMTY+LCA8MSB4IGkxNj4pICMzIHsKLStkZWZpbmUgaW50ZXJu YWwgPDEgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZiMV9zU18oPDEg eCBpMTY+LCA8MSB4IGkxNj4pICMzIHsKLSAgICUzID0gYWxsb2NhIDwxIHggaTE2PiwgYWxpZ24g MgotICAgJTQgPSBhbGxvY2EgPDEgeCBpMTY+LCBhbGlnbiAyCi0gICAlNSA9IGFsbG9jYSA8MSB4 IGkxNj4sIGFsaWduIDIKLUBAIC0xMDc0LDcgKzEwNzQsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwx IHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjFfc1NfKDwxIHggaTE2 PiwgPAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmlu ZSBkc29fbG9jYWwgPDIgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZi Ml9zU18oPDIgeCBpMTY+LCA8MiB4IGkxNj4pICM1IHsKLStkZWZpbmUgaW50ZXJuYWwgPDIgeCBp MTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZiMl9zU18oPDIgeCBpMTY+LCA8 MiB4IGkxNj4pICM1IHsKLSAgICUzID0gYWxsb2NhIDwyIHggaTE2PiwgYWxpZ24gNAotICAgJTQg PSBhbGxvY2EgPDIgeCBpMTY+LCBhbGlnbiA0Ci0gICAlNSA9IGFsbG9jYSA8MiB4IGkxNj4sIGFs aWduIDQKLUBAIC0xMTQzLDcgKzExNDMsNyBAQCBkZWZpbmUgaW50ZXJuYWwgPDIgeCBpMTY+IEBf Wk43ZGV0YWlsczEzX19pbXBsX2RpdnJlbUlMaTJFRUV1MkNNdmJUX19zUzFfUzFfdTJDTQotIH0K LSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9j YWwgPDQgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZiNF9zU18oPDQg eCBpMTY+LCA8NCB4IGkxNj4pICM3IHsKLStkZWZpbmUgaW50ZXJuYWwgPDQgeCBpMTY+IEBfWjI0 X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZiNF9zU18oPDQgeCBpMTY+LCA8NCB4IGkxNj4p ICM3IHsKLSAgICUzID0gYWxsb2NhIDw0IHggaTE2PiwgYWxpZ24gOAotICAgJTQgPSBhbGxvY2Eg PDQgeCBpMTY+LCBhbGlnbiA4Ci0gICAlNSA9IGFsbG9jYSA8NCB4IGkxNj4sIGFsaWduIDgKLUBA IC0xMzUwLDcgKzEzNTAsNyBAQCBkZWZpbmUgaW50ZXJuYWwgPDE2IHggaTE2PiBAX1pON2RldGFp bHMxM19faW1wbF9kaXZyZW1JTGkxNkVFRXUyQ012YlRfX3NTMV9TMV91MgotIH0KLSAKLSA7IEZ1 bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDMyIHgg aTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjMyX3NTXyg8MzIgeCBpMTY+ LCA8MzIgeCBpMTY+KSAjMTMgewotK2RlZmluZSBpbnRlcm5hbCA8MzIgeCBpMTY+IEBfWjI0X19j bV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZiMzJfc1NfKDwzMiB4IGkxNj4sIDwzMiB4IGkxNj4p ICMxMyB7Ci0gICAlMyA9IGFsbG9jYSA8MzIgeCBpMTY+LCBhbGlnbiA2NAotICAgJTQgPSBhbGxv Y2EgPDMyIHggaTE2PiwgYWxpZ24gNjQKLSAgICU1ID0gYWxsb2NhIDwzMiB4IGkxNj4sIGFsaWdu IDY0Ci1AQCAtMTQxOSw3ICsxNDE5LDcgQEAgZGVmaW5lIGludGVybmFsIDwzMiB4IGkxNj4gQF9a TjdkZXRhaWxzMTNfX2ltcGxfZGl2cmVtSUxpMzJFRUV1MkNNdmJUX19zUzFfUzFfdTIKLSB9Ci0g Ci0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2Fs IHNpZ25leHQgaTE2IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtc3MoaTE2IHNpZ25leHQs IGkxNiBzaWduZXh0KSAjMyB7Ci0rZGVmaW5lIGludGVybmFsIHNpZ25leHQgaTE2IEBfWjI0X19j bV9pbnRyaW5zaWNfaW1wbF9zcmVtc3MoaTE2IHNpZ25leHQsIGkxNiBzaWduZXh0KSAjMyB7Ci0g ICAlMyA9IGFsbG9jYSBpMTYsIGFsaWduIDIKLSAgICU0ID0gYWxsb2NhIGkxNiwgYWxpZ24gMgot ICAgJTUgPSBhbGxvY2EgPDEgeCBpMTY+LCBhbGlnbiAyCi1AQCAtMTQ0NSw3ICsxNDQ1LDcgQEAg ZGVmaW5lIGRzb19sb2NhbCBzaWduZXh0IGkxNiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3Jl bXNzKGkxNiBzaWduZXh0LCBpMTYgc2kKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxp bmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwxIHggaTE2PiBAX1oyNF9fY21faW50cmlu c2ljX2ltcGxfc3JlbXUyQ012YjFfc1NfKDwxIHggaTE2PiwgPDEgeCBpMTY+KSAjMyB7Ci0rZGVm aW5lIGludGVybmFsIDwxIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012 YjFfc1NfKDwxIHggaTE2PiwgPDEgeCBpMTY+KSAjMyB7Ci0gICAlMyA9IGFsbG9jYSA8MSB4IGkx Nj4sIGFsaWduIDIKLSAgICU0ID0gYWxsb2NhIDwxIHggaTE2PiwgYWxpZ24gMgotICAgJTUgPSBh bGxvY2EgPDEgeCBpMTY+LCBhbGlnbiAyCi1AQCAtMTQ1OSw3ICsxNDU5LDcgQEAgZGVmaW5lIGRz b19sb2NhbCA8MSB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIxX3NT Xyg8MSB4IGkxNj4sIDwKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndp bmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwyIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxf c3JlbXUyQ012YjJfc1NfKDwyIHggaTE2PiwgPDIgeCBpMTY+KSAjNSB7Ci0rZGVmaW5lIGludGVy bmFsIDwyIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjJfc1NfKDwy IHggaTE2PiwgPDIgeCBpMTY+KSAjNSB7Ci0gICAlMyA9IGFsbG9jYSA8MiB4IGkxNj4sIGFsaWdu IDQKLSAgICU0ID0gYWxsb2NhIDwyIHggaTE2PiwgYWxpZ24gNAotICAgJTUgPSBhbGxvY2EgPDIg eCBpMTY+LCBhbGlnbiA0Ci1AQCAtMTQ3Myw3ICsxNDczLDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8 MiB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIyX3NTXyg8MiB4IGkx Nj4sIDwKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZp bmUgZHNvX2xvY2FsIDw0IHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012 YjRfc1NfKDw0IHggaTE2PiwgPDQgeCBpMTY+KSAjNyB7Ci0rZGVmaW5lIGludGVybmFsIDw0IHgg aTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjRfc1NfKDw0IHggaTE2Piwg PDQgeCBpMTY+KSAjNyB7Ci0gICAlMyA9IGFsbG9jYSA8NCB4IGkxNj4sIGFsaWduIDgKLSAgICU0 ID0gYWxsb2NhIDw0IHggaTE2PiwgYWxpZ24gOAotICAgJTUgPSBhbGxvY2EgPDQgeCBpMTY+LCBh bGlnbiA4Ci1AQCAtMTQ4Nyw3ICsxNDg3LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8NCB4IGkxNj4g QF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmI0X3NTXyg8NCB4IGkxNj4sIDwKLSB9 Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xv Y2FsIDw4IHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012Yjhfc1NfKDw4 IHggaTE2PiwgPDggeCBpMTY+KSAjOSB7Ci0rZGVmaW5lIGludGVybmFsIDw4IHggaTE2PiBAX1oy NF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012Yjhfc1NfKDw4IHggaTE2PiwgPDggeCBpMTY+ KSAjOSB7Ci0gICAlMyA9IGFsbG9jYSA8OCB4IGkxNj4sIGFsaWduIDE2Ci0gICAlNCA9IGFsbG9j YSA8OCB4IGkxNj4sIGFsaWduIDE2Ci0gICAlNSA9IGFsbG9jYSA8OCB4IGkxNj4sIGFsaWduIDE2 Ci1AQCAtMTUwMSw3ICsxNTAxLDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8OCB4IGkxNj4gQF9aMjRf X2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmI4X3NTXyg8OCB4IGkxNj4sIDwKLSB9Ci0gCi0g OyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwx NiB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIxNl9zU18oPDE2IHgg aTE2PiwgPDE2IHggaTE2PikgIzExIHsKLStkZWZpbmUgaW50ZXJuYWwgPDE2IHggaTE2PiBAX1oy NF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjE2X3NTXyg8MTYgeCBpMTY+LCA8MTYgeCBp MTY+KSAjMTEgewotICAgJTMgPSBhbGxvY2EgPDE2IHggaTE2PiwgYWxpZ24gMzIKLSAgICU0ID0g YWxsb2NhIDwxNiB4IGkxNj4sIGFsaWduIDMyCi0gICAlNSA9IGFsbG9jYSA8MTYgeCBpMTY+LCBh bGlnbiAzMgotQEAgLTE1MTUsNyArMTUxNSw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDE2IHggaTE2 PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjE2X3NTXyg8MTYgeCBpMTY+Ci0g fQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19s b2NhbCA8MzIgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMzJfc1Nf KDwzMiB4IGkxNj4sIDwzMiB4IGkxNj4pICMxMyB7Ci0rZGVmaW5lIGludGVybmFsIDwzMiB4IGkx Nj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIzMl9zU18oPDMyIHggaTE2Piwg PDMyIHggaTE2PikgIzEzIHsKLSAgICUzID0gYWxsb2NhIDwzMiB4IGkxNj4sIGFsaWduIDY0Ci0g ICAlNCA9IGFsbG9jYSA8MzIgeCBpMTY+LCBhbGlnbiA2NAotICAgJTUgPSBhbGxvY2EgPDMyIHgg aTE2PiwgYWxpZ24gNjQKLUBAIC0xNTI5LDcgKzE1MjksNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwz MiB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIzMl9zU18oPDMyIHgg aTE2PgotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmlu ZSBkc29fbG9jYWwgaTMyIEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2aWkoaTMyLCBpMzIp ICMxNCB7Ci0rZGVmaW5lIGludGVybmFsIGkzMiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2Rp dmlpKGkzMiwgaTMyKSAjMTQgewotICAgJTMgPSBhbGxvY2EgaTMyLCBhbGlnbiA0Ci0gICAlNCA9 IGFsbG9jYSBpMzIsIGFsaWduIDQKLSAgICU1ID0gYWxsb2NhIDwxIHggaTMyPiwgYWxpZ24gNAot QEAgLTE3MzAsNyArMTczMCw3IEBAIGRlZmluZSBpbnRlcm5hbCA8MSB4IGkzMj4gQF9aTjdkZXRh aWxzMTNfX2ltcGxfZGl2cmVtSUxpMUVFRXUyQ012YlRfX2lTMV9TMV91MkNNCi0gZGVjbGFyZSA8 MSB4IGkzMj4gQGxsdm0uZ2VueC5yZHJlZ2lvbmkudjFpMzIudjFpMzIuaTE2KDwxIHggaTMyPiwg aTMyLCBpMzIsIGkzMiwgaTE2LCBpMzIpICMyCi0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxp bmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwxIHggaTMyPiBAX1oyNF9fY21faW50cmlu c2ljX2ltcGxfc2RpdnUyQ012YjFfaVNfKDwxIHggaTMyPiwgPDEgeCBpMzI+KSAjMTQgewotK2Rl ZmluZSBpbnRlcm5hbCA8MSB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNN dmIxX2lTXyg8MSB4IGkzMj4sIDwxIHggaTMyPikgIzE0IHsKLSAgICUzID0gYWxsb2NhIDwxIHgg aTMyPiwgYWxpZ24gNAotICAgJTQgPSBhbGxvY2EgPDEgeCBpMzI+LCBhbGlnbiA0Ci0gICAlNSA9 IGFsbG9jYSA8MSB4IGkzMj4sIGFsaWduIDQKLUBAIC0xNzQ2LDcgKzE3NDYsNyBAQCBkZWZpbmUg ZHNvX2xvY2FsIDwxIHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjFf aVNfKDwxIHggaTMyPiwgPAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vu d2luZAotLWRlZmluZSBkc29fbG9jYWwgPDIgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1w bF9zZGl2dTJDTXZiMl9pU18oPDIgeCBpMzI+LCA8MiB4IGkzMj4pICMxNSB7Ci0rZGVmaW5lIGlu dGVybmFsIDwyIHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjJfaVNf KDwyIHggaTMyPiwgPDIgeCBpMzI+KSAjMTUgewotICAgJTMgPSBhbGxvY2EgPDIgeCBpMzI+LCBh bGlnbiA4Ci0gICAlNCA9IGFsbG9jYSA8MiB4IGkzMj4sIGFsaWduIDgKLSAgICU1ID0gYWxsb2Nh IDwyIHggaTMyPiwgYWxpZ24gOAotQEAgLTE5MzIsNyArMTkzMiw3IEBAIGRlZmluZSBpbnRlcm5h bCA8MiB4IGkzMj4gQF9aTjdkZXRhaWxzMTNfX2ltcGxfZGl2cmVtSUxpMkVFRXUyQ012YlRfX2lT MV9TMV91MkNNCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0t ZGVmaW5lIGRzb19sb2NhbCA8NCB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1 MkNNdmI0X2lTXyg8NCB4IGkzMj4sIDw0IHggaTMyPikgIzE2IHsKLStkZWZpbmUgaW50ZXJuYWwg PDQgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZiNF9pU18oPDQgeCBp MzI+LCA8NCB4IGkzMj4pICMxNiB7Ci0gICAlMyA9IGFsbG9jYSA8NCB4IGkzMj4sIGFsaWduIDE2 Ci0gICAlNCA9IGFsbG9jYSA8NCB4IGkzMj4sIGFsaWduIDE2Ci0gICAlNSA9IGFsbG9jYSA8NCB4 IGkzMj4sIGFsaWduIDE2Ci1AQCAtMjQ5MCw3ICsyNDkwLDcgQEAgZGVmaW5lIGludGVybmFsIDwx NiB4IGkzMj4gQF9aTjdkZXRhaWxzMTNfX2ltcGxfZGl2cmVtSUxpMTZFRUV1MkNNdmJUX19pUzFf UzFfdTIKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZp bmUgZHNvX2xvY2FsIDwzMiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNN dmIzMl9pU18oPDMyIHggaTMyPiwgPDMyIHggaTMyPikgIzE5IHsKLStkZWZpbmUgaW50ZXJuYWwg PDMyIHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjMyX2lTXyg8MzIg eCBpMzI+LCA8MzIgeCBpMzI+KSAjMTkgewotICAgJTMgPSBhbGxvY2EgPDMyIHggaTMyPiwgYWxp Z24gMTI4Ci0gICAlNCA9IGFsbG9jYSA8MzIgeCBpMzI+LCBhbGlnbiAxMjgKLSAgICU1ID0gYWxs b2NhIDwzMiB4IGkzMj4sIGFsaWduIDEyOAotQEAgLTI2NzYsNyArMjY3Niw3IEBAIGRlZmluZSBp bnRlcm5hbCA8MzIgeCBpMzI+IEBfWk43ZGV0YWlsczEzX19pbXBsX2RpdnJlbUlMaTMyRUVFdTJD TXZiVF9faVMxX1MxX3UyCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53 aW5kCi0tZGVmaW5lIGRzb19sb2NhbCBpMzIgQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW1p aShpMzIsIGkzMikgIzE0IHsKLStkZWZpbmUgaW50ZXJuYWwgaTMyIEBfWjI0X19jbV9pbnRyaW5z aWNfaW1wbF9zcmVtaWkoaTMyLCBpMzIpICMxNCB7Ci0gICAlMyA9IGFsbG9jYSBpMzIsIGFsaWdu IDQKLSAgICU0ID0gYWxsb2NhIGkzMiwgYWxpZ24gNAotICAgJTUgPSBhbGxvY2EgPDEgeCBpMzI+ LCBhbGlnbiA0Ci1AQCAtMjcwMiw3ICsyNzAyLDcgQEAgZGVmaW5lIGRzb19sb2NhbCBpMzIgQF9a MjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW1paShpMzIsIGkzMikgIzE0IHsKLSB9Ci0gCi0gOyBG dW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwxIHgg aTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjFfaVNfKDwxIHggaTMyPiwg PDEgeCBpMzI+KSAjMTQgewotK2RlZmluZSBpbnRlcm5hbCA8MSB4IGkzMj4gQF9aMjRfX2NtX2lu dHJpbnNpY19pbXBsX3NyZW11MkNNdmIxX2lTXyg8MSB4IGkzMj4sIDwxIHggaTMyPikgIzE0IHsK LSAgICUzID0gYWxsb2NhIDwxIHggaTMyPiwgYWxpZ24gNAotICAgJTQgPSBhbGxvY2EgPDEgeCBp MzI+LCBhbGlnbiA0Ci0gICAlNSA9IGFsbG9jYSA8MSB4IGkzMj4sIGFsaWduIDQKLUBAIC0yNzE2 LDcgKzI3MTYsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwxIHggaTMyPiBAX1oyNF9fY21faW50cmlu c2ljX2ltcGxfc3JlbXUyQ012YjFfaVNfKDwxIHggaTMyPiwgPAotIH0KLSAKLSA7IEZ1bmN0aW9u IEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDIgeCBpMzI+IEBf WjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMl9pU18oPDIgeCBpMzI+LCA8MiB4IGkz Mj4pICMxNSB7Ci0rZGVmaW5lIGludGVybmFsIDwyIHggaTMyPiBAX1oyNF9fY21faW50cmluc2lj X2ltcGxfc3JlbXUyQ012YjJfaVNfKDwyIHggaTMyPiwgPDIgeCBpMzI+KSAjMTUgewotICAgJTMg PSBhbGxvY2EgPDIgeCBpMzI+LCBhbGlnbiA4Ci0gICAlNCA9IGFsbG9jYSA8MiB4IGkzMj4sIGFs aWduIDgKLSAgICU1ID0gYWxsb2NhIDwyIHggaTMyPiwgYWxpZ24gOAotQEAgLTI3MzAsNyArMjcz MCw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDIgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1w bF9zcmVtdTJDTXZiMl9pU18oPDIgeCBpMzI+LCA8Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6 IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8NCB4IGkzMj4gQF9aMjRfX2Nt X2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmI0X2lTXyg8NCB4IGkzMj4sIDw0IHggaTMyPikgIzE2 IHsKLStkZWZpbmUgaW50ZXJuYWwgPDQgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9z cmVtdTJDTXZiNF9pU18oPDQgeCBpMzI+LCA8NCB4IGkzMj4pICMxNiB7Ci0gICAlMyA9IGFsbG9j YSA8NCB4IGkzMj4sIGFsaWduIDE2Ci0gICAlNCA9IGFsbG9jYSA8NCB4IGkzMj4sIGFsaWduIDE2 Ci0gICAlNSA9IGFsbG9jYSA8NCB4IGkzMj4sIGFsaWduIDE2Ci1AQCAtMjc0NCw3ICsyNzQ0LDcg QEAgZGVmaW5lIGRzb19sb2NhbCA8NCB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3Ny ZW11MkNNdmI0X2lTXyg8NCB4IGkzMj4sIDwKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9p bmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDw4IHggaTMyPiBAX1oyNF9fY21faW50 cmluc2ljX2ltcGxfc3JlbXUyQ012YjhfaVNfKDw4IHggaTMyPiwgPDggeCBpMzI+KSAjMTcgewot K2RlZmluZSBpbnRlcm5hbCA8OCB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11 MkNNdmI4X2lTXyg8OCB4IGkzMj4sIDw4IHggaTMyPikgIzE3IHsKLSAgICUzID0gYWxsb2NhIDw4 IHggaTMyPiwgYWxpZ24gMzIKLSAgICU0ID0gYWxsb2NhIDw4IHggaTMyPiwgYWxpZ24gMzIKLSAg ICU1ID0gYWxsb2NhIDw4IHggaTMyPiwgYWxpZ24gMzIKLUBAIC0yNzU4LDcgKzI3NTgsNyBAQCBk ZWZpbmUgZHNvX2xvY2FsIDw4IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUy Q012YjhfaVNfKDw4IHggaTMyPiwgPAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGlu ZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDE2IHggaTMyPiBAX1oyNF9fY21faW50cmlu c2ljX2ltcGxfc3JlbXUyQ012YjE2X2lTXyg8MTYgeCBpMzI+LCA8MTYgeCBpMzI+KSAjMTggewot K2RlZmluZSBpbnRlcm5hbCA8MTYgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVt dTJDTXZiMTZfaVNfKDwxNiB4IGkzMj4sIDwxNiB4IGkzMj4pICMxOCB7Ci0gICAlMyA9IGFsbG9j YSA8MTYgeCBpMzI+LCBhbGlnbiA2NAotICAgJTQgPSBhbGxvY2EgPDE2IHggaTMyPiwgYWxpZ24g NjQKLSAgICU1ID0gYWxsb2NhIDwxNiB4IGkzMj4sIGFsaWduIDY0Ci1AQCAtMjc3Miw3ICsyNzcy LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MTYgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1w bF9zcmVtdTJDTXZiMTZfaVNfKDwxNiB4IGkzMj4KLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczog bm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwzMiB4IGkzMj4gQF9aMjRfX2Nt X2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIzMl9pU18oPDMyIHggaTMyPiwgPDMyIHggaTMyPikg IzE5IHsKLStkZWZpbmUgaW50ZXJuYWwgPDMyIHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2lt cGxfc3JlbXUyQ012YjMyX2lTXyg8MzIgeCBpMzI+LCA8MzIgeCBpMzI+KSAjMTkgewotICAgJTMg PSBhbGxvY2EgPDMyIHggaTMyPiwgYWxpZ24gMTI4Ci0gICAlNCA9IGFsbG9jYSA8MzIgeCBpMzI+ LCBhbGlnbiAxMjgKLSAgICU1ID0gYWxsb2NhIDwzMiB4IGkzMj4sIGFsaWduIDEyOAotQEAgLTI3 ODYsNyArMjc4Niw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDMyIHggaTMyPiBAX1oyNF9fY21faW50 cmluc2ljX2ltcGxfc3JlbXUyQ012YjMyX2lTXyg8MzIgeCBpMzI+Ci0gfQotIAotIDsgRnVuY3Rp b24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCB6ZXJvZXh0IGk4 IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2aGgoaTggemVyb2V4dCwgaTggemVyb2V4dCkg IzIxIHsKLStkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpOCBAX1oyNF9fY21faW50cmluc2ljX2lt cGxfdWRpdmhoKGk4IHplcm9leHQsIGk4IHplcm9leHQpICMyMSB7Ci0gICAlMyA9IGFsbG9jYSBp OCwgYWxpZ24gMQotICAgJTQgPSBhbGxvY2EgaTgsIGFsaWduIDEKLSAgICU1ID0gYWxsb2NhIDwx IHggaTg+LCBhbGlnbiAxCi1AQCAtMjg0NCw3ICsyODQ0LDcgQEAgZGVmaW5lIGludGVybmFsIDwx IHggaTg+IEBfWk43ZGV0YWlsczE0X19pbXBsX3VkaXZyZW1JTGkxRUVFdTJDTXZiVF9faFMxX1Mx X3UyQ00KLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZp bmUgZHNvX2xvY2FsIDwxIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZi MV9oU18oPDEgeCBpOD4sIDwxIHggaTg+KSAjMjEgewotK2RlZmluZSBpbnRlcm5hbCA8MSB4IGk4 PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRpdnUyQ012YjFfaFNfKDwxIHggaTg+LCA8MSB4 IGk4PikgIzIxIHsKLSAgICUzID0gYWxsb2NhIDwxIHggaTg+LCBhbGlnbiAxCi0gICAlNCA9IGFs bG9jYSA8MSB4IGk4PiwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2EgPDEgeCBpOD4sIGFsaWduIDEK LUBAIC0yODYwLDcgKzI4NjAsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwxIHggaTg+IEBfWjI0X19j bV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZiMV9oU18oPDEgeCBpOD4sIDwxCi0gfQotIAotIDsg RnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MiB4 IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRpdnUyQ012YjJfaFNfKDwyIHggaTg+LCA8 MiB4IGk4PikgIzIyIHsKLStkZWZpbmUgaW50ZXJuYWwgPDIgeCBpOD4gQF9aMjRfX2NtX2ludHJp bnNpY19pbXBsX3VkaXZ1MkNNdmIyX2hTXyg8MiB4IGk4PiwgPDIgeCBpOD4pICMyMiB7Ci0gICAl MyA9IGFsbG9jYSA8MiB4IGk4PiwgYWxpZ24gMgotICAgJTQgPSBhbGxvY2EgPDIgeCBpOD4sIGFs aWduIDIKLSAgICU1ID0gYWxsb2NhIDwyIHggaTg+LCBhbGlnbiAyCi1AQCAtMjkwNiw3ICsyOTA2 LDcgQEAgZGVmaW5lIGludGVybmFsIDwyIHggaTg+IEBfWk43ZGV0YWlsczE0X19pbXBsX3VkaXZy ZW1JTGkyRUVFdTJDTXZiVF9faFMxX1MxX3UyQ00KLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczog bm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDw0IHggaTg+IEBfWjI0X19jbV9p bnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZiNF9oU18oPDQgeCBpOD4sIDw0IHggaTg+KSAjMTQgewot K2RlZmluZSBpbnRlcm5hbCA8NCB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRpdnUy Q012YjRfaFNfKDw0IHggaTg+LCA8NCB4IGk4PikgIzE0IHsKLSAgICUzID0gYWxsb2NhIDw0IHgg aTg+LCBhbGlnbiA0Ci0gICAlNCA9IGFsbG9jYSA8NCB4IGk4PiwgYWxpZ24gNAotICAgJTUgPSBh bGxvY2EgPDQgeCBpOD4sIGFsaWduIDQKLUBAIC0zMDQ0LDcgKzMwNDQsNyBAQCBkZWZpbmUgaW50 ZXJuYWwgPDE2IHggaTg+IEBfWk43ZGV0YWlsczE0X19pbXBsX3VkaXZyZW1JTGkxNkVFRXUyQ012 YlRfX2hTMV9TMV91MgotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2lu ZAotLWRlZmluZSBkc29fbG9jYWwgPDMyIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91 ZGl2dTJDTXZiMzJfaFNfKDwzMiB4IGk4PiwgPDMyIHggaTg+KSAjMTcgewotK2RlZmluZSBpbnRl cm5hbCA8MzIgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1MkNNdmIzMl9oU18o PDMyIHggaTg+LCA8MzIgeCBpOD4pICMxNyB7Ci0gICAlMyA9IGFsbG9jYSA8MzIgeCBpOD4sIGFs aWduIDMyCi0gICAlNCA9IGFsbG9jYSA8MzIgeCBpOD4sIGFsaWduIDMyCi0gICAlNSA9IGFsbG9j YSA8MzIgeCBpOD4sIGFsaWduIDMyCi1AQCAtMzA5MCw3ICszMDkwLDcgQEAgZGVmaW5lIGludGVy bmFsIDwzMiB4IGk4PiBAX1pON2RldGFpbHMxNF9faW1wbF91ZGl2cmVtSUxpMzJFRUV1MkNNdmJU X19oUzFfUzFfdTIKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQK LS1kZWZpbmUgZHNvX2xvY2FsIHplcm9leHQgaTggQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3Vy ZW1oaChpOCB6ZXJvZXh0LCBpOCB6ZXJvZXh0KSAjMjEgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJv ZXh0IGk4IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtaGgoaTggemVyb2V4dCwgaTggemVy b2V4dCkgIzIxIHsKLSAgICUzID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0gICAlNCA9IGFsbG9jYSBp OCwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2EgPDEgeCBpOD4sIGFsaWduIDEKLUBAIC0zMTE2LDcg KzMxMTYsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIHplcm9leHQgaTggQF9aMjRfX2NtX2ludHJpbnNp Y19pbXBsX3VyZW1oaChpOCB6ZXJvZXh0LCBpOCB6ZXJvZQotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0 dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDEgeCBpOD4gQF9aMjRf X2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIxX2hTXyg8MSB4IGk4PiwgPDEgeCBpOD4pICMy MSB7Ci0rZGVmaW5lIGludGVybmFsIDwxIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91 cmVtdTJDTXZiMV9oU18oPDEgeCBpOD4sIDwxIHggaTg+KSAjMjEgewotICAgJTMgPSBhbGxvY2Eg PDEgeCBpOD4sIGFsaWduIDEKLSAgICU0ID0gYWxsb2NhIDwxIHggaTg+LCBhbGlnbiAxCi0gICAl NSA9IGFsbG9jYSA8MSB4IGk4PiwgYWxpZ24gMQotQEAgLTMxMzAsNyArMzEzMCw3IEBAIGRlZmlu ZSBkc29fbG9jYWwgPDEgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIx X2hTXyg8MSB4IGk4PiwgPDEKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91 bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwyIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1w bF91cmVtdTJDTXZiMl9oU18oPDIgeCBpOD4sIDwyIHggaTg+KSAjMjIgewotK2RlZmluZSBpbnRl cm5hbCA8MiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjJfaFNfKDwy IHggaTg+LCA8MiB4IGk4PikgIzIyIHsKLSAgICUzID0gYWxsb2NhIDwyIHggaTg+LCBhbGlnbiAy Ci0gICAlNCA9IGFsbG9jYSA8MiB4IGk4PiwgYWxpZ24gMgotICAgJTUgPSBhbGxvY2EgPDIgeCBp OD4sIGFsaWduIDIKLUBAIC0zMTQ0LDcgKzMxNDQsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwyIHgg aTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMl9oU18oPDIgeCBpOD4sIDwy Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRz b19sb2NhbCA8NCB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjRfaFNf KDw0IHggaTg+LCA8NCB4IGk4PikgIzE0IHsKLStkZWZpbmUgaW50ZXJuYWwgPDQgeCBpOD4gQF9a MjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmI0X2hTXyg8NCB4IGk4PiwgPDQgeCBpOD4p ICMxNCB7Ci0gICAlMyA9IGFsbG9jYSA8NCB4IGk4PiwgYWxpZ24gNAotICAgJTQgPSBhbGxvY2Eg PDQgeCBpOD4sIGFsaWduIDQKLSAgICU1ID0gYWxsb2NhIDw0IHggaTg+LCBhbGlnbiA0Ci1AQCAt MzE1OCw3ICszMTU4LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8NCB4IGk4PiBAX1oyNF9fY21faW50 cmluc2ljX2ltcGxfdXJlbXUyQ012YjRfaFNfKDw0IHggaTg+LCA8NAotIH0KLSAKLSA7IEZ1bmN0 aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDggeCBpOD4g QF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmI4X2hTXyg8OCB4IGk4PiwgPDggeCBp OD4pICMxNSB7Ci0rZGVmaW5lIGludGVybmFsIDw4IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNf aW1wbF91cmVtdTJDTXZiOF9oU18oPDggeCBpOD4sIDw4IHggaTg+KSAjMTUgewotICAgJTMgPSBh bGxvY2EgPDggeCBpOD4sIGFsaWduIDgKLSAgICU0ID0gYWxsb2NhIDw4IHggaTg+LCBhbGlnbiA4 Ci0gICAlNSA9IGFsbG9jYSA8OCB4IGk4PiwgYWxpZ24gOAotQEAgLTMxNzIsNyArMzE3Miw3IEBA IGRlZmluZSBkc29fbG9jYWwgPDggeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11 MkNNdmI4X2hTXyg8OCB4IGk4PiwgPDgKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxp bmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwxNiB4IGk4PiBAX1oyNF9fY21faW50cmlu c2ljX2ltcGxfdXJlbXUyQ012YjE2X2hTXyg8MTYgeCBpOD4sIDwxNiB4IGk4PikgIzE2IHsKLStk ZWZpbmUgaW50ZXJuYWwgPDE2IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJD TXZiMTZfaFNfKDwxNiB4IGk4PiwgPDE2IHggaTg+KSAjMTYgewotICAgJTMgPSBhbGxvY2EgPDE2 IHggaTg+LCBhbGlnbiAxNgotICAgJTQgPSBhbGxvY2EgPDE2IHggaTg+LCBhbGlnbiAxNgotICAg JTUgPSBhbGxvY2EgPDE2IHggaTg+LCBhbGlnbiAxNgotQEAgLTMxODYsNyArMzE4Niw3IEBAIGRl ZmluZSBkc29fbG9jYWwgPDE2IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJD TXZiMTZfaFNfKDwxNiB4IGk4PiwKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUg bm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwzMiB4IGk4PiBAX1oyNF9fY21faW50cmluc2lj X2ltcGxfdXJlbXUyQ012YjMyX2hTXyg8MzIgeCBpOD4sIDwzMiB4IGk4PikgIzE3IHsKLStkZWZp bmUgaW50ZXJuYWwgPDMyIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZi MzJfaFNfKDwzMiB4IGk4PiwgPDMyIHggaTg+KSAjMTcgewotICAgJTMgPSBhbGxvY2EgPDMyIHgg aTg+LCBhbGlnbiAzMgotICAgJTQgPSBhbGxvY2EgPDMyIHggaTg+LCBhbGlnbiAzMgotICAgJTUg PSBhbGxvY2EgPDMyIHggaTg+LCBhbGlnbiAzMgotQEAgLTMyMDAsNyArMzIwMCw3IEBAIGRlZmlu ZSBkc29fbG9jYWwgPDMyIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZi MzJfaFNfKDwzMiB4IGk4PiwKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91 bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIHplcm9leHQgaTE2IEBfWjI0X19jbV9pbnRyaW5zaWNf aW1wbF91ZGl2dHQoaTE2IHplcm9leHQsIGkxNiB6ZXJvZXh0KSAjMjIgewotK2RlZmluZSBpbnRl cm5hbCB6ZXJvZXh0IGkxNiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRpdnR0KGkxNiB6ZXJv ZXh0LCBpMTYgemVyb2V4dCkgIzIyIHsKLSAgICUzID0gYWxsb2NhIGkxNiwgYWxpZ24gMgotICAg JTQgPSBhbGxvY2EgaTE2LCBhbGlnbiAyCi0gICAlNSA9IGFsbG9jYSA8MSB4IGkxNj4sIGFsaWdu IDIKLUBAIC0zMjc4LDcgKzMyNzgsNyBAQCBkZWZpbmUgaW50ZXJuYWwgPDEgeCBpMTY+IEBfWk43 ZGV0YWlsczE0X19pbXBsX3VkaXZyZW1JTGkxRUVFdTJDTXZiVF9fdFMxX1MxX3UyQwotIH0KLSAK LSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwg PDEgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZiMV90U18oPDEgeCBp MTY+LCA8MSB4IGkxNj4pICMyMiB7Ci0rZGVmaW5lIGludGVybmFsIDwxIHggaTE2PiBAX1oyNF9f Y21faW50cmluc2ljX2ltcGxfdWRpdnUyQ012YjFfdFNfKDwxIHggaTE2PiwgPDEgeCBpMTY+KSAj MjIgewotICAgJTMgPSBhbGxvY2EgPDEgeCBpMTY+LCBhbGlnbiAyCi0gICAlNCA9IGFsbG9jYSA8 MSB4IGkxNj4sIGFsaWduIDIKLSAgICU1ID0gYWxsb2NhIDwxIHggaTE2PiwgYWxpZ24gMgotQEAg LTMyOTQsNyArMzI5NCw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDEgeCBpMTY+IEBfWjI0X19jbV9p bnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZiMV90U18oPDEgeCBpMTY+LCA8Ci0gfQotIAotIDsgRnVu Y3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MiB4IGkx Nj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1MkNNdmIyX3RTXyg8MiB4IGkxNj4sIDwy IHggaTE2PikgIzE0IHsKLStkZWZpbmUgaW50ZXJuYWwgPDIgeCBpMTY+IEBfWjI0X19jbV9pbnRy aW5zaWNfaW1wbF91ZGl2dTJDTXZiMl90U18oPDIgeCBpMTY+LCA8MiB4IGkxNj4pICMxNCB7Ci0g ICAlMyA9IGFsbG9jYSA8MiB4IGkxNj4sIGFsaWduIDQKLSAgICU0ID0gYWxsb2NhIDwyIHggaTE2 PiwgYWxpZ24gNAotICAgJTUgPSBhbGxvY2EgPDIgeCBpMTY+LCBhbGlnbiA0Ci1AQCAtMzM2MCw3 ICszMzYwLDcgQEAgZGVmaW5lIGludGVybmFsIDwyIHggaTE2PiBAX1pON2RldGFpbHMxNF9faW1w bF91ZGl2cmVtSUxpMkVFRXUyQ012YlRfX3RTMV9TMV91MkMKLSB9Ci0gCi0gOyBGdW5jdGlvbiBB dHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDw0IHggaTE2PiBAX1oy NF9fY21faW50cmluc2ljX2ltcGxfdWRpdnUyQ012YjRfdFNfKDw0IHggaTE2PiwgPDQgeCBpMTY+ KSAjMTUgewotK2RlZmluZSBpbnRlcm5hbCA8NCB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19p bXBsX3VkaXZ1MkNNdmI0X3RTXyg8NCB4IGkxNj4sIDw0IHggaTE2PikgIzE1IHsKLSAgICUzID0g YWxsb2NhIDw0IHggaTE2PiwgYWxpZ24gOAotICAgJTQgPSBhbGxvY2EgPDQgeCBpMTY+LCBhbGln biA4Ci0gICAlNSA9IGFsbG9jYSA8NCB4IGkxNj4sIGFsaWduIDgKLUBAIC0zNTU4LDcgKzM1NTgs NyBAQCBkZWZpbmUgaW50ZXJuYWwgPDE2IHggaTE2PiBAX1pON2RldGFpbHMxNF9faW1wbF91ZGl2 cmVtSUxpMTZFRUV1MkNNdmJUX190UzFfUzFfdQotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBu b2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDMyIHggaTE2PiBAX1oyNF9fY21f aW50cmluc2ljX2ltcGxfdWRpdnUyQ012YjMyX3RTXyg8MzIgeCBpMTY+LCA8MzIgeCBpMTY+KSAj MTggewotK2RlZmluZSBpbnRlcm5hbCA8MzIgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1w bF91ZGl2dTJDTXZiMzJfdFNfKDwzMiB4IGkxNj4sIDwzMiB4IGkxNj4pICMxOCB7Ci0gICAlMyA9 IGFsbG9jYSA8MzIgeCBpMTY+LCBhbGlnbiA2NAotICAgJTQgPSBhbGxvY2EgPDMyIHggaTE2Piwg YWxpZ24gNjQKLSAgICU1ID0gYWxsb2NhIDwzMiB4IGkxNj4sIGFsaWduIDY0Ci1AQCAtMzYyNCw3 ICszNjI0LDcgQEAgZGVmaW5lIGludGVybmFsIDwzMiB4IGkxNj4gQF9aTjdkZXRhaWxzMTRfX2lt cGxfdWRpdnJlbUlMaTMyRUVFdTJDTXZiVF9fdFMxX1MxX3UKLSB9Ci0gCi0gOyBGdW5jdGlvbiBB dHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIHplcm9leHQgaTE2IEBf WjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdHQoaTE2IHplcm9leHQsIGkxNiB6ZXJvZXh0KSAj MjIgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxNiBAX1oyNF9fY21faW50cmluc2ljX2lt cGxfdXJlbXR0KGkxNiB6ZXJvZXh0LCBpMTYgemVyb2V4dCkgIzIyIHsKLSAgICUzID0gYWxsb2Nh IGkxNiwgYWxpZ24gMgotICAgJTQgPSBhbGxvY2EgaTE2LCBhbGlnbiAyCi0gICAlNSA9IGFsbG9j YSA8MSB4IGkxNj4sIGFsaWduIDIKLUBAIC0zNjUwLDcgKzM2NTAsNyBAQCBkZWZpbmUgZHNvX2xv Y2FsIHplcm9leHQgaTE2IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdHQoaTE2IHplcm9l eHQsIGkxNiB6ZQotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAot LWRlZmluZSBkc29fbG9jYWwgPDEgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVt dTJDTXZiMV90U18oPDEgeCBpMTY+LCA8MSB4IGkxNj4pICMyMiB7Ci0rZGVmaW5lIGludGVybmFs IDwxIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjFfdFNfKDwxIHgg aTE2PiwgPDEgeCBpMTY+KSAjMjIgewotICAgJTMgPSBhbGxvY2EgPDEgeCBpMTY+LCBhbGlnbiAy Ci0gICAlNCA9IGFsbG9jYSA8MSB4IGkxNj4sIGFsaWduIDIKLSAgICU1ID0gYWxsb2NhIDwxIHgg aTE2PiwgYWxpZ24gMgotQEAgLTM2NjQsNyArMzY2NCw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDEg eCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMV90U18oPDEgeCBpMTY+ LCA8Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5l IGRzb19sb2NhbCA8MiB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIy X3RTXyg8MiB4IGkxNj4sIDwyIHggaTE2PikgIzE0IHsKLStkZWZpbmUgaW50ZXJuYWwgPDIgeCBp MTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMl90U18oPDIgeCBpMTY+LCA8 MiB4IGkxNj4pICMxNCB7Ci0gICAlMyA9IGFsbG9jYSA8MiB4IGkxNj4sIGFsaWduIDQKLSAgICU0 ID0gYWxsb2NhIDwyIHggaTE2PiwgYWxpZ24gNAotICAgJTUgPSBhbGxvY2EgPDIgeCBpMTY+LCBh bGlnbiA0Ci1AQCAtMzY3OCw3ICszNjc4LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MiB4IGkxNj4g QF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIyX3RTXyg8MiB4IGkxNj4sIDwKLSB9 Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xv Y2FsIDw0IHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjRfdFNfKDw0 IHggaTE2PiwgPDQgeCBpMTY+KSAjMTUgewotK2RlZmluZSBpbnRlcm5hbCA8NCB4IGkxNj4gQF9a MjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmI0X3RTXyg8NCB4IGkxNj4sIDw0IHggaTE2 PikgIzE1IHsKLSAgICUzID0gYWxsb2NhIDw0IHggaTE2PiwgYWxpZ24gOAotICAgJTQgPSBhbGxv Y2EgPDQgeCBpMTY+LCBhbGlnbiA4Ci0gICAlNSA9IGFsbG9jYSA8NCB4IGkxNj4sIGFsaWduIDgK LUBAIC0zNjkyLDcgKzM2OTIsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDw0IHggaTE2PiBAX1oyNF9f Y21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjRfdFNfKDw0IHggaTE2PiwgPAotIH0KLSAKLSA7 IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDgg eCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiOF90U18oPDggeCBpMTY+ LCA8OCB4IGkxNj4pICMxNiB7Ci0rZGVmaW5lIGludGVybmFsIDw4IHggaTE2PiBAX1oyNF9fY21f aW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjhfdFNfKDw4IHggaTE2PiwgPDggeCBpMTY+KSAjMTYg ewotICAgJTMgPSBhbGxvY2EgPDggeCBpMTY+LCBhbGlnbiAxNgotICAgJTQgPSBhbGxvY2EgPDgg eCBpMTY+LCBhbGlnbiAxNgotICAgJTUgPSBhbGxvY2EgPDggeCBpMTY+LCBhbGlnbiAxNgotQEAg LTM3MDYsNyArMzcwNiw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDggeCBpMTY+IEBfWjI0X19jbV9p bnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiOF90U18oPDggeCBpMTY+LCA8Ci0gfQotIAotIDsgRnVu Y3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MTYgeCBp MTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMTZfdFNfKDwxNiB4IGkxNj4s IDwxNiB4IGkxNj4pICMxNyB7Ci0rZGVmaW5lIGludGVybmFsIDwxNiB4IGkxNj4gQF9aMjRfX2Nt X2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIxNl90U18oPDE2IHggaTE2PiwgPDE2IHggaTE2Pikg IzE3IHsKLSAgICUzID0gYWxsb2NhIDwxNiB4IGkxNj4sIGFsaWduIDMyCi0gICAlNCA9IGFsbG9j YSA8MTYgeCBpMTY+LCBhbGlnbiAzMgotICAgJTUgPSBhbGxvY2EgPDE2IHggaTE2PiwgYWxpZ24g MzIKLUBAIC0zNzIwLDcgKzM3MjAsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwxNiB4IGkxNj4gQF9a MjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIxNl90U18oPDE2IHggaTE2PgotIH0KLSAK LSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwg PDMyIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjMyX3RTXyg8MzIg eCBpMTY+LCA8MzIgeCBpMTY+KSAjMTggewotK2RlZmluZSBpbnRlcm5hbCA8MzIgeCBpMTY+IEBf WjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMzJfdFNfKDwzMiB4IGkxNj4sIDwzMiB4 IGkxNj4pICMxOCB7Ci0gICAlMyA9IGFsbG9jYSA8MzIgeCBpMTY+LCBhbGlnbiA2NAotICAgJTQg PSBhbGxvY2EgPDMyIHggaTE2PiwgYWxpZ24gNjQKLSAgICU1ID0gYWxsb2NhIDwzMiB4IGkxNj4s IGFsaWduIDY0Ci1AQCAtMzczNCw3ICszNzM0LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MzIgeCBp MTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMzJfdFNfKDwzMiB4IGkxNj4K LSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNv X2xvY2FsIGkzMiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRpdmpqKGkzMiwgaTMyKSAjMTQg ewotK2RlZmluZSBpbnRlcm5hbCBpMzIgQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZqaihp MzIsIGkzMikgIzE0IHsKLSAgICUzID0gYWxsb2NhIGkzMiwgYWxpZ24gNAotICAgJTQgPSBhbGxv Y2EgaTMyLCBhbGlnbiA0Ci0gICAlNSA9IGFsbG9jYSA8MSB4IGkzMj4sIGFsaWduIDQKLUBAIC0z ODkyLDcgKzM4OTIsNyBAQCBkZWZpbmUgaW50ZXJuYWwgPDEgeCBpMzI+IEBfWk43ZGV0YWlsczE0 X19pbXBsX3VkaXZyZW1JTGkxRUVFdTJDTXZiVF9falMxX1MxX3UyQwotIH0KLSAKLSA7IEZ1bmN0 aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDEgeCBpMzI+ IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZiMV9qU18oPDEgeCBpMzI+LCA8MSB4 IGkzMj4pICMxNCB7Ci0rZGVmaW5lIGludGVybmFsIDwxIHggaTMyPiBAX1oyNF9fY21faW50cmlu c2ljX2ltcGxfdWRpdnUyQ012YjFfalNfKDwxIHggaTMyPiwgPDEgeCBpMzI+KSAjMTQgewotICAg JTMgPSBhbGxvY2EgPDEgeCBpMzI+LCBhbGlnbiA0Ci0gICAlNCA9IGFsbG9jYSA8MSB4IGkzMj4s IGFsaWduIDQKLSAgICU1ID0gYWxsb2NhIDwxIHggaTMyPiwgYWxpZ24gNAotQEAgLTM5MDgsNyAr MzkwOCw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDEgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNf aW1wbF91ZGl2dTJDTXZiMV9qU18oPDEgeCBpMzI+LCA8Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0 cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MiB4IGkzMj4gQF9aMjRf X2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1MkNNdmIyX2pTXyg8MiB4IGkzMj4sIDwyIHggaTMyPikg IzE1IHsKLStkZWZpbmUgaW50ZXJuYWwgPDIgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1w bF91ZGl2dTJDTXZiMl9qU18oPDIgeCBpMzI+LCA8MiB4IGkzMj4pICMxNSB7Ci0gICAlMyA9IGFs bG9jYSA8MiB4IGkzMj4sIGFsaWduIDgKLSAgICU0ID0gYWxsb2NhIDwyIHggaTMyPiwgYWxpZ24g OAotICAgJTUgPSBhbGxvY2EgPDIgeCBpMzI+LCBhbGlnbiA4Ci1AQCAtNDA1NCw3ICs0MDU0LDcg QEAgZGVmaW5lIGludGVybmFsIDwyIHggaTMyPiBAX1pON2RldGFpbHMxNF9faW1wbF91ZGl2cmVt SUxpMkVFRXUyQ012YlRfX2pTMV9TMV91MkMKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9p bmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDw0IHggaTMyPiBAX1oyNF9fY21faW50 cmluc2ljX2ltcGxfdWRpdnUyQ012YjRfalNfKDw0IHggaTMyPiwgPDQgeCBpMzI+KSAjMTYgewot K2RlZmluZSBpbnRlcm5hbCA8NCB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1 MkNNdmI0X2pTXyg8NCB4IGkzMj4sIDw0IHggaTMyPikgIzE2IHsKLSAgICUzID0gYWxsb2NhIDw0 IHggaTMyPiwgYWxpZ24gMTYKLSAgICU0ID0gYWxsb2NhIDw0IHggaTMyPiwgYWxpZ24gMTYKLSAg ICU1ID0gYWxsb2NhIDw0IHggaTMyPiwgYWxpZ24gMTYKLUBAIC00NDkyLDcgKzQ0OTIsNyBAQCBk ZWZpbmUgaW50ZXJuYWwgPDE2IHggaTMyPiBAX1pON2RldGFpbHMxNF9faW1wbF91ZGl2cmVtSUxp MTZFRUV1MkNNdmJUX19qUzFfUzFfdQotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGlu ZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDMyIHggaTMyPiBAX1oyNF9fY21faW50cmlu c2ljX2ltcGxfdWRpdnUyQ012YjMyX2pTXyg8MzIgeCBpMzI+LCA8MzIgeCBpMzI+KSAjMTkgewot K2RlZmluZSBpbnRlcm5hbCA8MzIgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2 dTJDTXZiMzJfalNfKDwzMiB4IGkzMj4sIDwzMiB4IGkzMj4pICMxOSB7Ci0gICAlMyA9IGFsbG9j YSA8MzIgeCBpMzI+LCBhbGlnbiAxMjgKLSAgICU0ID0gYWxsb2NhIDwzMiB4IGkzMj4sIGFsaWdu IDEyOAotICAgJTUgPSBhbGxvY2EgPDMyIHggaTMyPiwgYWxpZ24gMTI4Ci1AQCAtNDYzOCw3ICs0 NjM4LDcgQEAgZGVmaW5lIGludGVybmFsIDwzMiB4IGkzMj4gQF9aTjdkZXRhaWxzMTRfX2ltcGxf dWRpdnJlbUlMaTMyRUVFdTJDTXZiVF9falMxX1MxX3UKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRy czogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIGkzMiBAX1oyNF9fY21faW50 cmluc2ljX2ltcGxfdXJlbWpqKGkzMiwgaTMyKSAjMTQgewotK2RlZmluZSBpbnRlcm5hbCBpMzIg QF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW1qaihpMzIsIGkzMikgIzE0IHsKLSAgICUzID0g YWxsb2NhIGkzMiwgYWxpZ24gNAotICAgJTQgPSBhbGxvY2EgaTMyLCBhbGlnbiA0Ci0gICAlNSA9 IGFsbG9jYSA8MSB4IGkzMj4sIGFsaWduIDQKLUBAIC00NjY0LDcgKzQ2NjQsNyBAQCBkZWZpbmUg ZHNvX2xvY2FsIGkzMiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbWpqKGkzMiwgaTMyKSAj MTQgewotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmlu ZSBkc29fbG9jYWwgPDEgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZi MV9qU18oPDEgeCBpMzI+LCA8MSB4IGkzMj4pICMxNCB7Ci0rZGVmaW5lIGludGVybmFsIDwxIHgg aTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjFfalNfKDwxIHggaTMyPiwg PDEgeCBpMzI+KSAjMTQgewotICAgJTMgPSBhbGxvY2EgPDEgeCBpMzI+LCBhbGlnbiA0Ci0gICAl NCA9IGFsbG9jYSA8MSB4IGkzMj4sIGFsaWduIDQKLSAgICU1ID0gYWxsb2NhIDwxIHggaTMyPiwg YWxpZ24gNAotQEAgLTQ2NzgsNyArNDY3OCw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDEgeCBpMzI+ IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMV9qU18oPDEgeCBpMzI+LCA8Ci0g fQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19s b2NhbCA8MiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIyX2pTXyg8 MiB4IGkzMj4sIDwyIHggaTMyPikgIzE1IHsKLStkZWZpbmUgaW50ZXJuYWwgPDIgeCBpMzI+IEBf WjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMl9qU18oPDIgeCBpMzI+LCA8MiB4IGkz Mj4pICMxNSB7Ci0gICAlMyA9IGFsbG9jYSA8MiB4IGkzMj4sIGFsaWduIDgKLSAgICU0ID0gYWxs b2NhIDwyIHggaTMyPiwgYWxpZ24gOAotICAgJTUgPSBhbGxvY2EgPDIgeCBpMzI+LCBhbGlnbiA4 Ci1AQCAtNDY5Miw3ICs0NjkyLDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MiB4IGkzMj4gQF9aMjRf X2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIyX2pTXyg8MiB4IGkzMj4sIDwKLSB9Ci0gCi0g OyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDw0 IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjRfalNfKDw0IHggaTMy PiwgPDQgeCBpMzI+KSAjMTYgewotK2RlZmluZSBpbnRlcm5hbCA8NCB4IGkzMj4gQF9aMjRfX2Nt X2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmI0X2pTXyg8NCB4IGkzMj4sIDw0IHggaTMyPikgIzE2 IHsKLSAgICUzID0gYWxsb2NhIDw0IHggaTMyPiwgYWxpZ24gMTYKLSAgICU0ID0gYWxsb2NhIDw0 IHggaTMyPiwgYWxpZ24gMTYKLSAgICU1ID0gYWxsb2NhIDw0IHggaTMyPiwgYWxpZ24gMTYKLUBA IC00NzA2LDcgKzQ3MDYsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDw0IHggaTMyPiBAX1oyNF9fY21f aW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjRfalNfKDw0IHggaTMyPiwgPAotIH0KLSAKLSA7IEZ1 bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDggeCBp MzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiOF9qU18oPDggeCBpMzI+LCA8 OCB4IGkzMj4pICMxNyB7Ci0rZGVmaW5lIGludGVybmFsIDw4IHggaTMyPiBAX1oyNF9fY21faW50 cmluc2ljX2ltcGxfdXJlbXUyQ012YjhfalNfKDw4IHggaTMyPiwgPDggeCBpMzI+KSAjMTcgewot ICAgJTMgPSBhbGxvY2EgPDggeCBpMzI+LCBhbGlnbiAzMgotICAgJTQgPSBhbGxvY2EgPDggeCBp MzI+LCBhbGlnbiAzMgotICAgJTUgPSBhbGxvY2EgPDggeCBpMzI+LCBhbGlnbiAzMgotQEAgLTQ3 MjAsNyArNDcyMCw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDggeCBpMzI+IEBfWjI0X19jbV9pbnRy aW5zaWNfaW1wbF91cmVtdTJDTXZiOF9qU18oPDggeCBpMzI+LCA8Ci0gfQotIAotIDsgRnVuY3Rp b24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MTYgeCBpMzI+ IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMTZfalNfKDwxNiB4IGkzMj4sIDwx NiB4IGkzMj4pICMxOCB7Ci0rZGVmaW5lIGludGVybmFsIDwxNiB4IGkzMj4gQF9aMjRfX2NtX2lu dHJpbnNpY19pbXBsX3VyZW11MkNNdmIxNl9qU18oPDE2IHggaTMyPiwgPDE2IHggaTMyPikgIzE4 IHsKLSAgICUzID0gYWxsb2NhIDwxNiB4IGkzMj4sIGFsaWduIDY0Ci0gICAlNCA9IGFsbG9jYSA8 MTYgeCBpMzI+LCBhbGlnbiA2NAotICAgJTUgPSBhbGxvY2EgPDE2IHggaTMyPiwgYWxpZ24gNjQK LUBAIC00NzM0LDcgKzQ3MzQsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwxNiB4IGkzMj4gQF9aMjRf X2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIxNl9qU18oPDE2IHggaTMyPgotIH0KLSAKLSA7 IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDMy IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjMyX2pTXyg8MzIgeCBp MzI+LCA8MzIgeCBpMzI+KSAjMTkgewotK2RlZmluZSBpbnRlcm5hbCA8MzIgeCBpMzI+IEBfWjI0 X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMzJfalNfKDwzMiB4IGkzMj4sIDwzMiB4IGkz Mj4pICMxOSB7Ci0gICAlMyA9IGFsbG9jYSA8MzIgeCBpMzI+LCBhbGlnbiAxMjgKLSAgICU0ID0g YWxsb2NhIDwzMiB4IGkzMj4sIGFsaWduIDEyOAotICAgJTUgPSBhbGxvY2EgPDMyIHggaTMyPiwg YWxpZ24gMTI4Ci1AQCAtNDc0OCw3ICs0NzQ4LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MzIgeCBp MzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMzJfalNfKDwzMiB4IGkzMj4K LSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNv X2xvY2FsIHZvaWQgQF9fZG9fcHJpbnRfY20oaTgqLCBpOCosIGkzMiwgaTY0LCBpMzIqLCBpMzIs IGkzMikgIzIzICFkYmcgITE1IHsKLStkZWZpbmUgaW50ZXJuYWwgdm9pZCBAX19kb19wcmludF9j bShpOCosIGk4KiwgaTMyLCBpNjQsIGkzMiosIGkzMiwgaTMyKSAjMjMgIWRiZyAhMTUgewotICAg JTggPSBhbGxvY2EgaTgqLCBhbGlnbiA4Ci0gICAlOSA9IGFsbG9jYSBpOCosIGFsaWduIDgKLSAg ICUxMCA9IGFsbG9jYSBpMzIsIGFsaWduIDQKLUBAIC01MDcwLDcgKzUwNzAsNyBAQCBkZWZpbmUg ZHNvX2xvY2FsIHZvaWQgQF9fZG9fcHJpbnRfbHooaTMyLCBpOCosIGkzMiwgaTY0LCBpMzIqLCBp MzIsIGkzMiwgaTMyLCBpMwotICAgJTY3ID0gbG9hZCBpNjQsIGk2NCogJTEzLCBhbGlnbiA4LCAh ZGJnICExNTksICF0YmFhICExOQotICAgJTY4ID0gbG9hZCA8NSB4IGkzMj4sIDw1IHggaTMyPiog JTIxLCBhbGlnbiAzMiwgIWRiZyAhMTYwLCAhdGJhYSAhNwotICAgY2FsbCB2b2lkIEBfWk4xM1Zh cnlpbmdXcml0ZXJDMkVSeVJQS2ppeXUyQ012YjVfaSglY2xhc3MuVmFyeWluZ1dyaXRlciogJTIz LCBpNjQqIGRlcmVmZXJlbmNlYWJsZSg4KSAlMTksIGkzMioqIGRlcmVmZXJlbmNlYWJsZSg4KSAl MTQsIGkzMiAlNjYsIGk2NCAlNjcsIDw1IHggaTMyPiAlNjgpLCAhZGJnICExNjEKLS0gICU2OSA9 IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzE0c3dpdGNoRW5jb2RpbmdJMTNVbmlmb3Jt V3JpdGVyMTNWYXJ5aW5nV3JpdGVyRUViTlNfOEVuY29kaW5nRVRfVDBfKGk4IHNpZ25leHQgJTYy LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwgYWxpZ24gMzIgJTIyLCAlY2xhc3MuVmFyeWlu Z1dyaXRlciogYnl2YWwgYWxpZ24gMzIgJTIzKSwgIWRiZyAhMTYyCi0rICAlNjkgPSBjYWxsIHpl cm9leHQgaTEgQF9aTjlQcmludEluZm8xNHN3aXRjaEVuY29kaW5nSTEzVW5pZm9ybVdyaXRlcjEz VmFyeWluZ1dyaXRlckVFYk5TXzhFbmNvZGluZ0VUX1QwXyhpOCBzaWduZXh0ICU2MiwgJWNsYXNz LlVuaWZvcm1Xcml0ZXIqIGJ5dmFsKCVjbGFzcy5Vbmlmb3JtV3JpdGVyKSBhbGlnbiAzMiAlMjIs ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCglY2xhc3MuVmFyeWluZ1dyaXRlcikgYWxpZ24g MzIgJTIzKSwgIWRiZyAhMTYyCi0gICBiciBsYWJlbCAlNzAsICFkYmcgITE2MwotIAotIDsgPGxh YmVsPjo3MDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOyBwcmVkcyA9ICU2 MAotQEAgLTUxODgsNyArNTE4OCw3IEBAIGRlZmluZSBpbnRlcm5hbCA8NSB4IGkzMj4gQF9aMTdn ZXRfYXV4aWxpYXJ5X3N0cnYoKSAjMjggY29tZGF0ICFkYmcgITE3OCB7Ci0gfQotIAotIDsgRnVu Y3Rpb24gQXR0cnM6IGFsd2F5c2lubGluZSBpbmxpbmVoaW50IG5vdW53aW5kCi0tZGVmaW5lIGlu dGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm8xNHN3aXRjaEVuY29kaW5nSTEzVW5pZm9y bVdyaXRlcjEzVmFyeWluZ1dyaXRlckVFYk5TXzhFbmNvZGluZ0VUX1QwXyhpOCBzaWduZXh0LCAl Y2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwgYWxpZ24gMzIsICVjbGFzcy5WYXJ5aW5nV3JpdGVy KiBieXZhbCBhbGlnbiAzMikgIzI1IGNvbWRhdCAhZGJnICExOTEgewotK2RlZmluZSBpbnRlcm5h bCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvMTRzd2l0Y2hFbmNvZGluZ0kxM1VuaWZvcm1Xcml0 ZXIxM1ZhcnlpbmdXcml0ZXJFRWJOU184RW5jb2RpbmdFVF9UMF8oaTggc2lnbmV4dCwgJWNsYXNz LlVuaWZvcm1Xcml0ZXIqIGJ5dmFsKCVjbGFzcy5Vbmlmb3JtV3JpdGVyKSBhbGlnbiAzMiwgJWNs YXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5aW5nV3JpdGVyKSBhbGlnbiAzMikg IzI1IGNvbWRhdCAhZGJnICExOTEgewotICAgJTQgPSBhbGxvY2EgaTgsIGFsaWduIDEKLSAgICU1 ID0gYWxsb2NhICVjbGFzcy5Vbmlmb3JtV3JpdGVyLCBhbGlnbiAzMgotICAgJTYgPSBhbGxvY2Eg JWNsYXNzLlZhcnlpbmdXcml0ZXIsIGFsaWduIDMyCi1AQCAtNTE5Nyw3ICs1MTk3LDcgQEAgZGVm aW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm8xNHN3aXRjaEVuY29kaW5nSTEz VW5pZm9ybVdyaXRlcjEzVmFyeWkKLSAgICU4ID0gYml0Y2FzdCAlY2xhc3MuVW5pZm9ybVdyaXRl ciogJTUgdG8gaTgqLCAhZGJnICExOTYKLSAgICU5ID0gYml0Y2FzdCAlY2xhc3MuVW5pZm9ybVdy aXRlciogJTEgdG8gaTgqLCAhZGJnICExOTYKLSAgIGNhbGwgdm9pZCBAbGx2bS5tZW1jcHkucDBp OC5wMGk4Lmk2NChpOCogYWxpZ24gMzIgJTgsIGk4KiBhbGlnbiAzMiAlOSwgaTY0IDY0LCBpMSBm YWxzZSksICFkYmcgITE5NiwgIXRiYWEuc3RydWN0ICExOTcKLS0gICUxMCA9IGNhbGwgemVyb2V4 dCBpMSBAX1pOOVByaW50SW5mbzIyc3dpdGNoRW5jb2Rpbmc0VW5pZm9ybUkxM1VuaWZvcm1Xcml0 ZXJFRWJOU184RW5jb2RpbmdFVF8oaTggc2lnbmV4dCAlNywgJWNsYXNzLlVuaWZvcm1Xcml0ZXIq IGJ5dmFsIGFsaWduIDMyICU1KSwgIWRiZyAhMTk4Ci0rICAlMTAgPSBjYWxsIHplcm9leHQgaTEg QF9aTjlQcmludEluZm8yMnN3aXRjaEVuY29kaW5nNFVuaWZvcm1JMTNVbmlmb3JtV3JpdGVyRUVi TlNfOEVuY29kaW5nRVRfKGk4IHNpZ25leHQgJTcsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZh bCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24gMzIgJTUpLCAhZGJnICExOTgKLSAgIGJyIGkx ICUxMCwgbGFiZWwgJTE2LCBsYWJlbCAlMTEsICFkYmcgITE5OQotIAotIDsgPGxhYmVsPjoxMTog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOyBwcmVkcyA9ICUzCi1AQCAtNTIw NSw3ICs1MjA1LDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm8x NHN3aXRjaEVuY29kaW5nSTEzVW5pZm9ybVdyaXRlcjEzVmFyeWkKLSAgICUxMyA9IGJpdGNhc3Qg JWNsYXNzLlZhcnlpbmdXcml0ZXIqICU2IHRvIGk4KiwgIWRiZyAhMjAxCi0gICAlMTQgPSBiaXRj YXN0ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiAlMiB0byBpOCosICFkYmcgITIwMQotICAgY2FsbCB2 b2lkIEBsbHZtLm1lbWNweS5wMGk4LnAwaTguaTY0KGk4KiBhbGlnbiAzMiAlMTMsIGk4KiBhbGln biAzMiAlMTQsIGk2NCA2NCwgaTEgZmFsc2UpLCAhZGJnICEyMDEsICF0YmFhLnN0cnVjdCAhMTk3 Ci0tICAlMTUgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm8yMnN3aXRjaEVuY29kaW5n NFZhcnlpbmdJMTNWYXJ5aW5nV3JpdGVyRUViTlNfOEVuY29kaW5nRVRfKGk4IHNpZ25leHQgJTEy LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwgYWxpZ24gMzIgJTYpLCAhZGJnICEyMDIKLSsg ICUxNSA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzIyc3dpdGNoRW5jb2Rpbmc0VmFy eWluZ0kxM1ZhcnlpbmdXcml0ZXJFRWJOU184RW5jb2RpbmdFVF8oaTggc2lnbmV4dCAlMTIsICVj bGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCglY2xhc3MuVmFyeWluZ1dyaXRlcikgYWxpZ24gMzIg JTYpLCAhZGJnICEyMDIKLSAgIGJyIGxhYmVsICUxNiwgIWRiZyAhMTk5Ci0gCi0gOyA8bGFiZWw+ OjE2OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7IHByZWRzID0gJTExLCAl MwotQEAgLTUyODAsNyArNTI4MCw3IEBAIGRlZmluZSBpbnRlcm5hbCB2b2lkIEBfWk4xM1Zhcnlp bmdXcml0ZXJDMkVSeVJQS2ppeXUyQ012YjVfaSglY2xhc3MuVmFyeWluZ1dyaXRlCi0gfQotIAot IDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCBp MzIgQF9fbnVtX2NvcmVzKCkgIzI5ICFkYmcgITIzNiB7Ci0rZGVmaW5lIGludGVybmFsIGkzMiBA X19udW1fY29yZXMoKSAjMjkgIWRiZyAhMjM2IHsKLSAgIHJldCBpMzIgLTEsICFkYmcgITIzNwot IH0KLSAKLUBAIC04ODcwLDcgKzg4NzAsNyBAQCBkZWNsYXJlIGRzb19sb2NhbCB2b2lkIEBfWk43 ZGV0YWlsczM3X19jbV9pbnRyaW5zaWNfaW1wbF9zdm1fc2NhdHRlcl93cml0ZUlpTGkxRQotIGRl Y2xhcmUgdm9pZCBAbGx2bS5nZW54LnN2bS5zY2F0dGVyLnYxaTEudjFpNjQudjFpMzIoPDEgeCBp MT4sIGkzMiwgPDEgeCBpNjQ+LCA8MSB4IGkzMj4pICMyNwotIAotIDsgRnVuY3Rpb24gQXR0cnM6 IGFsd2F5c2lubGluZSBpbmxpbmVoaW50IG5vdW53aW5kCi0tZGVmaW5lIGludGVybmFsIHplcm9l eHQgaTEgQF9aTjlQcmludEluZm8yMnN3aXRjaEVuY29kaW5nNFVuaWZvcm1JMTNVbmlmb3JtV3Jp dGVyRUViTlNfOEVuY29kaW5nRVRfKGk4IHNpZ25leHQsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBi eXZhbCBhbGlnbiAzMikgIzI1IGNvbWRhdCAhZGJnICExNjQ1IHsKLStkZWZpbmUgaW50ZXJuYWwg emVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzIyc3dpdGNoRW5jb2Rpbmc0VW5pZm9ybUkxM1VuaWZv cm1Xcml0ZXJFRWJOU184RW5jb2RpbmdFVF8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1Xcml0 ZXIqIGJ5dmFsKCVjbGFzcy5Vbmlmb3JtV3JpdGVyKSBhbGlnbiAzMikgIzI1IGNvbWRhdCAhZGJn ICExNjQ1IHsKLSAgICUzID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0gICAlNCA9IGFsbG9jYSAlY2xh c3MuVW5pZm9ybVdyaXRlciwgYWxpZ24gMzIKLSAgICU1ID0gYWxsb2NhICUic3RydWN0LlByaW50 SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIsIGFsaWduIDEKLUBAIC04ODc5LDcgKzg4NzksNyBAQCBk ZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzIyc3dpdGNoRW5jb2Rpbmc0 VW5pZm9ybUkxM1VuaWZvcm1Xcml0ZQotICAgJTcgPSBiaXRjYXN0ICVjbGFzcy5Vbmlmb3JtV3Jp dGVyKiAlNCB0byBpOCosICFkYmcgITE2NDcKLSAgICU4ID0gYml0Y2FzdCAlY2xhc3MuVW5pZm9y bVdyaXRlciogJTEgdG8gaTgqLCAhZGJnICExNjQ3Ci0gICBjYWxsIHZvaWQgQGxsdm0ubWVtY3B5 LnAwaTgucDBpOC5pNjQoaTgqIGFsaWduIDMyICU3LCBpOCogYWxpZ24gMzIgJTgsIGk2NCA2NCwg aTEgZmFsc2UpLCAhZGJnICExNjQ3LCAhdGJhYS5zdHJ1Y3QgITE5NwotLSAgJTkgPSBjYWxsIHpl cm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1VuaWZvcm1X cml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVRfVDBfKGk4IHNpZ25l eHQgJTYsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBhbGlnbiAzMiAlNCwgJSJzdHJ1Y3Qu UHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwgYWxpZ24gMSAlNSksICFkYmcgITE2 NDgKLSsgICU5ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNo RW5jb2RpbmdJMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNv ZGluZ0VUX1QwXyhpOCBzaWduZXh0ICU2LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwoJWNs YXNzLlVuaWZvcm1Xcml0ZXIpIGFsaWduIDMyICU0LCAlInN0cnVjdC5QcmludEluZm86OkVuY29k aW5nNFVuaWZvcm0iKiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0i KSBhbGlnbiAxICU1KSwgIWRiZyAhMTY0OAotICAgcmV0IGkxICU5LCAhZGJnICExNjQ5Ci0gfQot IAotQEAgLTg4ODcsNyArODg4Nyw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45 UHJpbnRJbmZvMjJzd2l0Y2hFbmNvZGluZzRVbmlmb3JtSTEzVW5pZm9ybVdyaXRlCi0gZGVjbGFy ZSB2b2lkIEBsbHZtLm1lbWNweS5wMGk4LnAwaTguaTY0KGk4KiBub2NhcHR1cmUgd3JpdGVvbmx5 LCBpOCogbm9jYXB0dXJlIHJlYWRvbmx5LCBpNjQsIGkxKSAjMzIKLSAKLSA7IEZ1bmN0aW9uIEF0 dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2luZAotLWRlZmluZSBpbnRlcm5hbCB6 ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvMjJzd2l0Y2hFbmNvZGluZzRWYXJ5aW5nSTEzVmFyeWlu Z1dyaXRlckVFYk5TXzhFbmNvZGluZ0VUXyhpOCBzaWduZXh0LCAlY2xhc3MuVmFyeWluZ1dyaXRl ciogYnl2YWwgYWxpZ24gMzIpICMyNSBjb21kYXQgIWRiZyAhMTY1MCB7Ci0rZGVmaW5lIGludGVy bmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm8yMnN3aXRjaEVuY29kaW5nNFZhcnlpbmdJMTNW YXJ5aW5nV3JpdGVyRUViTlNfOEVuY29kaW5nRVRfKGk4IHNpZ25leHQsICVjbGFzcy5WYXJ5aW5n V3JpdGVyKiBieXZhbCglY2xhc3MuVmFyeWluZ1dyaXRlcikgYWxpZ24gMzIpICMyNSBjb21kYXQg IWRiZyAhMTY1MCB7Ci0gICAlMyA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgJTQgPSBhbGxvY2Eg JWNsYXNzLlZhcnlpbmdXcml0ZXIsIGFsaWduIDMyCi0gICAlNSA9IGFsbG9jYSAlInN0cnVjdC5Q cmludEluZm86OkVuY29kaW5nNFZhcnlpbmciLCBhbGlnbiAxCi1AQCAtODg5NiwxMiArODg5Niwx MiBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzIyc3dpdGNoRW5j b2Rpbmc0VmFyeWluZ0kxM1ZhcnlpbmdXcml0ZQotICAgJTcgPSBiaXRjYXN0ICVjbGFzcy5WYXJ5 aW5nV3JpdGVyKiAlNCB0byBpOCosICFkYmcgITE2NTIKLSAgICU4ID0gYml0Y2FzdCAlY2xhc3Mu VmFyeWluZ1dyaXRlciogJTEgdG8gaTgqLCAhZGJnICExNjUyCi0gICBjYWxsIHZvaWQgQGxsdm0u bWVtY3B5LnAwaTgucDBpOC5pNjQoaTgqIGFsaWduIDMyICU3LCBpOCogYWxpZ24gMzIgJTgsIGk2 NCA2NCwgaTEgZmFsc2UpLCAhZGJnICExNjUyLCAhdGJhYS5zdHJ1Y3QgITE5NwotLSAgJTkgPSBj YWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1Zh cnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVRfVDBfKGk4 IHNpZ25leHQgJTYsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCBhbGlnbiAzMiAlNCwgJSJz dHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwgYWxpZ24gMSAlNSksICFk YmcgITE2NTMKLSsgICU5ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0 c3dpdGNoRW5jb2RpbmdJMTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5T XzhFbmNvZGluZ0VUX1QwXyhpOCBzaWduZXh0ICU2LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2 YWwoJWNsYXNzLlZhcnlpbmdXcml0ZXIpIGFsaWduIDMyICU0LCAlInN0cnVjdC5QcmludEluZm86 OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZh cnlpbmciKSBhbGlnbiAxICU1KSwgIWRiZyAhMTY1MwotICAgcmV0IGkxICU5LCAhZGJnICExNjU0 Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IGFsd2F5c2lubGluZSBpbmxpbmVoaW50IG5vdW53 aW5kCi0tZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRz d2l0Y2hFbmNvZGluZ0kxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNf OEVuY29kaW5nRVRfVDBfKGk4IHNpZ25leHQsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBh bGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwgYWxp Z24gMSkgIzI1IGNvbWRhdCAhZGJnICExNjU1IHsKLStkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBp MSBAX1pOOVByaW50SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEzVW5pZm9ybVdyaXRlck5T XzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVF9UMF8oaTggc2lnbmV4dCwgJWNs YXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsKCVjbGFzcy5Vbmlmb3JtV3JpdGVyKSBhbGlnbiAzMiwg JSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwoJSJzdHJ1Y3QuUHJp bnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIikgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICExNjU1 IHsKLSAgICU0ID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSAlY2xhc3MuVW5p Zm9ybVdyaXRlciwgYWxpZ24gMzIKLSAgICU2ID0gYWxsb2NhICUic3RydWN0LlByaW50SW5mbzo6 RW5jb2Rpbmc0VW5pZm9ybSIsIGFsaWduIDEKLUBAIC04OTI0LDcgKzg5MjQsNyBAQCBkZWZpbmUg aW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29kaW5n STEzVW5pZm9ybVdyaXRlcgotICAgJTIyID0gYml0Y2FzdCAlY2xhc3MuVW5pZm9ybVdyaXRlciog JTUgdG8gaTgqLCAhZGJnICExNjU3Ci0gICAlMjMgPSBiaXRjYXN0ICVjbGFzcy5Vbmlmb3JtV3Jp dGVyKiAlMSB0byBpOCosICFkYmcgITE2NTcKLSAgIGNhbGwgdm9pZCBAbGx2bS5tZW1jcHkucDBp OC5wMGk4Lmk2NChpOCogYWxpZ24gMzIgJTIyLCBpOCogYWxpZ24gMzIgJTIzLCBpNjQgNjQsIGkx IGZhbHNlKSwgIWRiZyAhMTY1NywgIXRiYWEuc3RydWN0ICExOTcKLS0gICUyNCA9IGNhbGwgemVy b2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0liMTNV bmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8o aTggc2lnbmV4dCAlMjEsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBhbGlnbiAzMiAlNSwg JSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwgYWxpZ24gMSAlNiks ICFkYmcgITE2NTgKLSsgICUyNCA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRh aWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0liMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRV bmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlMjEsICVjbGFzcy5Vbmlm b3JtV3JpdGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24gMzIgJTUsICUic3Ry dWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5m bzo6RW5jb2Rpbmc0VW5pZm9ybSIpIGFsaWduIDEgJTYpLCAhZGJnICExNjU4Ci0gICBiciBpMSAl MjQsIGxhYmVsICU2MCwgbGFiZWwgJTI1LCAhZGJnICExNjU5Ci0gCi0gOyA8bGFiZWw+OjI1OiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7IHByZWRzID0gJTMKLUBAIC04OTMy LDcgKzg5MzIsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZk ZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEzVW5pZm9ybVdyaXRlcgotICAgJTI3ID0gYml0Y2FzdCAl Y2xhc3MuVW5pZm9ybVdyaXRlciogJTcgdG8gaTgqLCAhZGJnICExNjYxCi0gICAlMjggPSBiaXRj YXN0ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiAlMSB0byBpOCosICFkYmcgITE2NjEKLSAgIGNhbGwg dm9pZCBAbGx2bS5tZW1jcHkucDBpOC5wMGk4Lmk2NChpOCogYWxpZ24gMzIgJTI3LCBpOCogYWxp Z24gMzIgJTI4LCBpNjQgNjQsIGkxIGZhbHNlKSwgIWRiZyAhMTY2MSwgIXRiYWEuc3RydWN0ICEx OTcKLS0gICUyOSA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5 SWZQcm9wZXJFbmNvZGluZ0lpMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVF Yk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlMjYsICVjbGFzcy5Vbmlmb3JtV3JpdGVy KiBieXZhbCBhbGlnbiAzMiAlNywgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3Jt IiogYnl2YWwgYWxpZ24gMSAlOCksICFkYmcgITE2NjIKLSsgICUyOSA9IGNhbGwgemVyb2V4dCBp MSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lpMTNVbmlmb3Jt V3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2ln bmV4dCAlMjYsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRl cikgYWxpZ24gMzIgJTcsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5 dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIpIGFsaWduIDEgJTgpLCAh ZGJnICExNjYyCi0gICBiciBpMSAlMjksIGxhYmVsICU2MCwgbGFiZWwgJTMwLCAhZGJnICExNjYz Ci0gCi0gOyA8bGFiZWw+OjMwOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7 IHByZWRzID0gJTI1Ci1AQCAtODk0MCw3ICs4OTQwLDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9l eHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1VuaWZvcm1Xcml0 ZXIKLSAgICUzMiA9IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqICU5IHRvIGk4KiwgIWRi ZyAhMTY2NQotICAgJTMzID0gYml0Y2FzdCAlY2xhc3MuVW5pZm9ybVdyaXRlciogJTEgdG8gaTgq LCAhZGJnICExNjY1Ci0gICBjYWxsIHZvaWQgQGxsdm0ubWVtY3B5LnAwaTgucDBpOC5pNjQoaTgq IGFsaWduIDMyICUzMiwgaTgqIGFsaWduIDMyICUzMywgaTY0IDY0LCBpMSBmYWxzZSksICFkYmcg ITE2NjUsICF0YmFhLnN0cnVjdCAhMTk3Ci0tICAlMzQgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQ cmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJajEzVW5pZm9ybVdyaXRlck5T XzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTMx LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwgYWxpZ24gMzIgJTksICUic3RydWN0LlByaW50 SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsIGFsaWduIDEgJTEwKSwgIWRiZyAhMTY2Ngot KyAgJTM0ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlBy b3BlckVuY29kaW5nSWoxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNf OEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICUzMSwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5 dmFsKCVjbGFzcy5Vbmlmb3JtV3JpdGVyKSBhbGlnbiAzMiAlOSwgJSJzdHJ1Y3QuUHJpbnRJbmZv OjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRV bmlmb3JtIikgYWxpZ24gMSAlMTApLCAhZGJnICExNjY2Ci0gICBiciBpMSAlMzQsIGxhYmVsICU2 MCwgbGFiZWwgJTM1LCAhZGJnICExNjY3Ci0gCi0gOyA8bGFiZWw+OjM1OiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICA7IHByZWRzID0gJTMwCi1AQCAtODk0OCw3ICs4OTQ4LDcg QEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0 Y2hFbmNvZGluZ0kxM1VuaWZvcm1Xcml0ZXIKLSAgICUzNyA9IGJpdGNhc3QgJWNsYXNzLlVuaWZv cm1Xcml0ZXIqICUxMSB0byBpOCosICFkYmcgITE2NjkKLSAgICUzOCA9IGJpdGNhc3QgJWNsYXNz LlVuaWZvcm1Xcml0ZXIqICUxIHRvIGk4KiwgIWRiZyAhMTY2OQotICAgY2FsbCB2b2lkIEBsbHZt Lm1lbWNweS5wMGk4LnAwaTguaTY0KGk4KiBhbGlnbiAzMiAlMzcsIGk4KiBhbGlnbiAzMiAlMzgs IGk2NCA2NCwgaTEgZmFsc2UpLCAhZGJnICExNjY5LCAhdGJhYS5zdHJ1Y3QgITE5NwotLSAgJTM5 ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVu Y29kaW5nSWYxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29k aW5nRVQwX1QxXyhpOCBzaWduZXh0ICUzNiwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsIGFs aWduIDMyICUxMSwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwg YWxpZ24gMSAlMTIpLCAhZGJnICExNjcwCi0rICAlMzkgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQ cmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJZjEzVW5pZm9ybVdyaXRlck5T XzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTM2 LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1Xcml0ZXIpIGFsaWdu IDMyICUxMSwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwoJSJz dHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIikgYWxpZ24gMSAlMTIpLCAhZGJnICEx NjcwCi0gICBiciBpMSAlMzksIGxhYmVsICU2MCwgbGFiZWwgJTQwLCAhZGJnICExNjcxCi0gCi0g OyA8bGFiZWw+OjQwOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7IHByZWRz ID0gJTM1Ci1AQCAtODk1Niw3ICs4OTU2LDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEg QF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1VuaWZvcm1Xcml0ZXIKLSAg ICU0MiA9IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqICUxMyB0byBpOCosICFkYmcgITE2 NzMKLSAgICU0MyA9IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqICUxIHRvIGk4KiwgIWRi ZyAhMTY3MwotICAgY2FsbCB2b2lkIEBsbHZtLm1lbWNweS5wMGk4LnAwaTguaTY0KGk4KiBhbGln biAzMiAlNDIsIGk4KiBhbGlnbiAzMiAlNDMsIGk2NCA2NCwgaTEgZmFsc2UpLCAhZGJnICExNjcz LCAhdGJhYS5zdHJ1Y3QgITE5NwotLSAgJTQ0ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJ bmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSXgxM1VuaWZvcm1Xcml0ZXJOU18xNkVu Y29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICU0MSwgJWNs YXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsIGFsaWduIDMyICUxMywgJSJzdHJ1Y3QuUHJpbnRJbmZv OjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwgYWxpZ24gMSAlMTQpLCAhZGJnICExNjc0Ci0rICAl NDQgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVy RW5jb2RpbmdJeDEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5j b2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTQxLCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwo JWNsYXNzLlVuaWZvcm1Xcml0ZXIpIGFsaWduIDMyICUxMywgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpF bmNvZGluZzRVbmlmb3JtIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlm b3JtIikgYWxpZ24gMSAlMTQpLCAhZGJnICExNjc0Ci0gICBiciBpMSAlNDQsIGxhYmVsICU2MCwg bGFiZWwgJTQ1LCAhZGJnICExNjc1Ci0gCi0gOyA8bGFiZWw+OjQ1OiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICA7IHByZWRzID0gJTQwCi1AQCAtODk2NCw3ICs4OTY0LDcgQEAg ZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hF bmNvZGluZ0kxM1VuaWZvcm1Xcml0ZXIKLSAgICU0NyA9IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1X cml0ZXIqICUxNSB0byBpOCosICFkYmcgITE2NzcKLSAgICU0OCA9IGJpdGNhc3QgJWNsYXNzLlVu aWZvcm1Xcml0ZXIqICUxIHRvIGk4KiwgIWRiZyAhMTY3NwotICAgY2FsbCB2b2lkIEBsbHZtLm1l bWNweS5wMGk4LnAwaTguaTY0KGk4KiBhbGlnbiAzMiAlNDcsIGk4KiBhbGlnbiAzMiAlNDgsIGk2 NCA2NCwgaTEgZmFsc2UpLCAhZGJnICExNjc3LCAhdGJhYS5zdHJ1Y3QgITE5NwotLSAgJTQ5ID0g Y2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29k aW5nSXkxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5n RVQwX1QxXyhpOCBzaWduZXh0ICU0NiwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsIGFsaWdu IDMyICUxNSwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwgYWxp Z24gMSAlMTYpLCAhZGJnICExNjc4Ci0rICAlNDkgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmlu dEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJeTEzVW5pZm9ybVdyaXRlck5TXzE2 RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTQ2LCAl Y2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1Xcml0ZXIpIGFsaWduIDMy ICUxNSwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwoJSJzdHJ1 Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIikgYWxpZ24gMSAlMTYpLCAhZGJnICExNjc4 Ci0gICBiciBpMSAlNDksIGxhYmVsICU2MCwgbGFiZWwgJTUwLCAhZGJnICExNjc5Ci0gCi0gOyA8 bGFiZWw+OjUwOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7IHByZWRzID0g JTQ1Ci1AQCAtODk3Miw3ICs4OTcyLDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9a TjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1VuaWZvcm1Xcml0ZXIKLSAgICU1 MiA9IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqICUxNyB0byBpOCosICFkYmcgITE2ODEK LSAgICU1MyA9IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqICUxIHRvIGk4KiwgIWRiZyAh MTY4MQotICAgY2FsbCB2b2lkIEBsbHZtLm1lbWNweS5wMGk4LnAwaTguaTY0KGk4KiBhbGlnbiAz MiAlNTIsIGk4KiBhbGlnbiAzMiAlNTMsIGk2NCA2NCwgaTEgZmFsc2UpLCAhZGJnICExNjgxLCAh dGJhYS5zdHJ1Y3QgITE5NwotLSAgJTU0ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZv NmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWQxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29k aW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICU1MSwgJWNsYXNz LlVuaWZvcm1Xcml0ZXIqIGJ5dmFsIGFsaWduIDMyICUxNywgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpF bmNvZGluZzRVbmlmb3JtIiogYnl2YWwgYWxpZ24gMSAlMTgpLCAhZGJnICExNjgyCi0rICAlNTQg PSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5j b2RpbmdJZDEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2Rp bmdFVDBfVDFfKGk4IHNpZ25leHQgJTUxLCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwoJWNs YXNzLlVuaWZvcm1Xcml0ZXIpIGFsaWduIDMyICUxNywgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNv ZGluZzRVbmlmb3JtIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3Jt IikgYWxpZ24gMSAlMTgpLCAhZGJnICExNjgyCi0gICBiciBpMSAlNTQsIGxhYmVsICU2MCwgbGFi ZWwgJTU1LCAhZGJnICExNjgzCi0gCi0gOyA8bGFiZWw+OjU1OiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICA7IHByZWRzID0gJTUwCi1AQCAtODk4MCw3ICs4OTgwLDcgQEAgZGVm aW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNv ZGluZ0kxM1VuaWZvcm1Xcml0ZXIKLSAgICU1NyA9IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0 ZXIqICUxOSB0byBpOCosICFkYmcgITE2ODUKLSAgICU1OCA9IGJpdGNhc3QgJWNsYXNzLlVuaWZv cm1Xcml0ZXIqICUxIHRvIGk4KiwgIWRiZyAhMTY4NQotICAgY2FsbCB2b2lkIEBsbHZtLm1lbWNw eS5wMGk4LnAwaTguaTY0KGk4KiBhbGlnbiAzMiAlNTcsIGk4KiBhbGlnbiAzMiAlNTgsIGk2NCA2 NCwgaTEgZmFsc2UpLCAhZGJnICExNjg1LCAhdGJhYS5zdHJ1Y3QgITE5NwotLSAgJTU5ID0gY2Fs bCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5n SVB2MTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VU MF9UMV8oaTggc2lnbmV4dCAlNTYsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBhbGlnbiAz MiAlMTksICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsIGFsaWdu IDEgJTIwKSwgIWRiZyAhMTY4NgotKyAgJTU5ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJ bmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSVB2MTNVbmlmb3JtV3JpdGVyTlNfMTZF bmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlNTYsICVj bGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24gMzIg JTE5LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCglInN0cnVj dC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKSBhbGlnbiAxICUyMCksICFkYmcgITE2ODYK LSAgIGJyIGxhYmVsICU2MCwgIWRiZyAhMTY4MwotIAotIDsgPGxhYmVsPjo2MDogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgOyBwcmVkcyA9ICU1NSwgJTUwLCAlNDUsICU0MCwg JTM1LCAlMzAsICUyNSwgJTMKLUBAIC04OTg5LDcgKzg5ODksNyBAQCBkZWZpbmUgaW50ZXJuYWwg emVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEzVW5pZm9y bVdyaXRlcgotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGlu dCBub3Vud2luZAotLWRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRl dGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWIxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5n NFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVW5pZm9y bVdyaXRlciogYnl2YWwgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5p Zm9ybSIqIGJ5dmFsIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMTY4OCB7Ci0rZGVmaW5lIGlu dGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5j b2RpbmdJYjEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2Rp bmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCglY2xhc3Mu VW5pZm9ybVdyaXRlcikgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5p Zm9ybSIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIpIGFsaWdu IDEpICMyNSBjb21kYXQgIWRiZyAhMTY4OCB7Ci0gICAlNCA9IGFsbG9jYSBpMSwgYWxpZ24gMQot ICAgJTUgPSBhbGxvY2EgaTgsIGFsaWduIDEKLSAgIHN0b3JlIGk4ICUwLCBpOCogJTUsIGFsaWdu IDEsICF0YmFhICExOTMKLUBAIC05MDE1LDcgKzkwMTUsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVy b2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0liMTNV bmlmbwotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBu b3Vud2luZAotLWRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFp bDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWkxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVu aWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVW5pZm9ybVdy aXRlciogYnl2YWwgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9y bSIqIGJ5dmFsIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMTY5NyB7Ci0rZGVmaW5lIGludGVy bmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2Rp bmdJaTEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdF VDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCglY2xhc3MuVW5p Zm9ybVdyaXRlcikgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9y bSIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIpIGFsaWduIDEp ICMyNSBjb21kYXQgIWRiZyAhMTY5NyB7Ci0gICAlNCA9IGFsbG9jYSBpMSwgYWxpZ24gMQotICAg JTUgPSBhbGxvY2EgaTgsIGFsaWduIDEKLSAgIHN0b3JlIGk4ICUwLCBpOCogJTUsIGFsaWduIDEs ICF0YmFhICExOTMKLUBAIC05MDQxLDcgKzkwNDEsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4 dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lpMTNVbmlm bwotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vu d2luZAotLWRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIx YXBwbHlJZlByb3BlckVuY29kaW5nSWoxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZv cm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRl ciogYnl2YWwgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIq IGJ5dmFsIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMTcwNiB7Ci0rZGVmaW5lIGludGVybmFs IHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJ ajEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBf VDFfKGk4IHNpZ25leHQsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCglY2xhc3MuVW5pZm9y bVdyaXRlcikgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIq IGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIpIGFsaWduIDEpICMy NSBjb21kYXQgIWRiZyAhMTcwNiB7Ci0gICAlNCA9IGFsbG9jYSBpMSwgYWxpZ24gMQotICAgJTUg PSBhbGxvY2EgaTgsIGFsaWduIDEKLSAgIHN0b3JlIGk4ICUwLCBpOCogJTUsIGFsaWduIDEsICF0 YmFhICExOTMKLUBAIC05MDY3LDcgKzkwNjcsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBp MSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lqMTNVbmlmbwot IH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2lu ZAotLWRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBw bHlJZlByb3BlckVuY29kaW5nSWYxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1F RUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciog Ynl2YWwgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5 dmFsIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMTcxNSB7Ci0rZGVmaW5lIGludGVybmFsIHpl cm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJZjEz VW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFf KGk4IHNpZ25leHQsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdy aXRlcikgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5 dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIpIGFsaWduIDEpICMyNSBj b21kYXQgIWRiZyAhMTcxNSB7Ci0gICAlNCA9IGFsbG9jYSBpMSwgYWxpZ24gMQotICAgJTUgPSBh bGxvY2EgaTgsIGFsaWduIDEKLSAgIHN0b3JlIGk4ICUwLCBpOCogJTUsIGFsaWduIDEsICF0YmFh ICExOTMKLUBAIC05MDkzLDcgKzkwOTMsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBA X1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lmMTNVbmlmbwotIH0K LSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2luZAot LWRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJ ZlByb3BlckVuY29kaW5nSXgxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUVi TlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2 YWwgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFs IGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMTcyNCB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9l eHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJeDEzVW5p Zm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4 IHNpZ25leHQsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRl cikgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFs KCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIpIGFsaWduIDEpICMyNSBjb21k YXQgIWRiZyAhMTcyNCB7Ci0gICAlNCA9IGFsbG9jYSBpMSwgYWxpZ24gMQotICAgJTUgPSBhbGxv Y2EgaTgsIGFsaWduIDEKLSAgIHN0b3JlIGk4ICUwLCBpOCogJTUsIGFsaWduIDEsICF0YmFhICEx OTMKLUBAIC05MTE5LDcgKzkxMTksNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pO OVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0l4MTNVbmlmbwotIH0KLSAK LSA7IEZ1bmN0aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2luZAotLWRl ZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlBy b3BlckVuY29kaW5nSXkxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNf OEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwg YWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsIGFs aWduIDEpICMyNSBjb21kYXQgIWRiZyAhMTczMyB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQg aTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJeTEzVW5pZm9y bVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNp Z25leHQsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikg YWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsKCUi c3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIpIGFsaWduIDEpICMyNSBjb21kYXQg IWRiZyAhMTczMyB7Ci0gICAlNCA9IGFsbG9jYSBpMSwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2Eg aTgsIGFsaWduIDEKLSAgIHN0b3JlIGk4ICUwLCBpOCogJTUsIGFsaWduIDEsICF0YmFhICExOTMK LUBAIC05MTQ1LDcgKzkxNDUsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVBy aW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0l5MTNVbmlmbwotIH0KLSAKLSA7 IEZ1bmN0aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2luZAotLWRlZmlu ZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3Bl ckVuY29kaW5nSWQxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVu Y29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwgYWxp Z24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsIGFsaWdu IDEpICMyNSBjb21kYXQgIWRiZyAhMTc0MiB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEg QF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJZDEzVW5pZm9ybVdy aXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25l eHQsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxp Z24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsKCUic3Ry dWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIpIGFsaWduIDEpICMyNSBjb21kYXQgIWRi ZyAhMTc0MiB7Ci0gICAlNCA9IGFsbG9jYSBpMSwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2EgaTgs IGFsaWduIDEKLSAgIHN0b3JlIGk4ICUwLCBpOCogJTUsIGFsaWduIDEsICF0YmFhICExOTMKLUBA IC05MTcxLDcgKzkxNzEsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50 SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lkMTNVbmlmbwotIH0KLSAKLSA7IEZ1 bmN0aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2luZAotLWRlZmluZSBp bnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVu Y29kaW5nSVB2MTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNv ZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsIGFsaWdu IDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCBhbGlnbiAx KSAjMjUgY29tZGF0ICFkYmcgITE3NTEgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBf Wk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSVB2MTNVbmlmb3JtV3Jp dGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4 dCwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsKCVjbGFzcy5Vbmlmb3JtV3JpdGVyKSBhbGln biAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwoJSJzdHJ1 Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIikgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJn ICExNzUxIHsKLSAgICU0ID0gYWxsb2NhIGkxLCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSBpOCwg YWxpZ24gMQotICAgc3RvcmUgaTggJTAsIGk4KiAlNSwgYWxpZ24gMSwgIXRiYWEgITE5MwotQEAg LTEwMDEzLDcgKzEwMDEzLDcgQEAgZGVmaW5lIGludGVybmFsIGkzMiBAX1pON2RldGFpbHMxOF9j bV9wcmludF90eXBlX29jbElQdkVFTlNfMThTSEFERVJfUFJJTlRGX1RZUEUKLSB9Ci0gCi0gOyBG dW5jdGlvbiBBdHRyczogYWx3YXlzaW5saW5lIGlubGluZWhpbnQgbm91bndpbmQKLS1kZWZpbmUg aW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29kaW5n STEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVF9U MF8oaTggc2lnbmV4dCwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsIGFsaWduIDMyLCAlInN0 cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCBhbGlnbiAxKSAjMjUgY29t ZGF0ICFkYmcgITIwNjEgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJ bmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRW YXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUX1QwXyhpOCBzaWduZXh0LCAlY2xhc3MuVmFyeWluZ1dy aXRlciogYnl2YWwoJWNsYXNzLlZhcnlpbmdXcml0ZXIpIGFsaWduIDMyLCAlInN0cnVjdC5Qcmlu dEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29k aW5nNFZhcnlpbmciKSBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITIwNjEgewotICAgJTQgPSBh bGxvY2EgaTgsIGFsaWduIDEKLSAgICU1ID0gYWxsb2NhICVjbGFzcy5WYXJ5aW5nV3JpdGVyLCBh bGlnbiAzMgotICAgJTYgPSBhbGxvY2EgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5 aW5nIiwgYWxpZ24gMQotQEAgLTEwMDM2LDcgKzEwMDM2LDcgQEAgZGVmaW5lIGludGVybmFsIHpl cm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1ZhcnlpbmdX cml0ZXIKLSAgICUyMiA9IGJpdGNhc3QgJWNsYXNzLlZhcnlpbmdXcml0ZXIqICU1IHRvIGk4Kiwg IWRiZyAhMjA2MwotICAgJTIzID0gYml0Y2FzdCAlY2xhc3MuVmFyeWluZ1dyaXRlciogJTEgdG8g aTgqLCAhZGJnICEyMDYzCi0gICBjYWxsIHZvaWQgQGxsdm0ubWVtY3B5LnAwaTgucDBpOC5pNjQo aTgqIGFsaWduIDMyICUyMiwgaTgqIGFsaWduIDMyICUyMywgaTY0IDY0LCBpMSBmYWxzZSksICFk YmcgITIwNjMsICF0YmFhLnN0cnVjdCAhMTk3Ci0tICAlMjQgPSBjYWxsIHplcm9leHQgaTEgQF9a TjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJYjEzVmFyeWluZ1dyaXRl ck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQg JTIxLCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwgYWxpZ24gMzIgJTUsICUic3RydWN0LlBy aW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsIGFsaWduIDEgJTYpLCAhZGJnICEyMDY0 Ci0rICAlMjQgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlm UHJvcGVyRW5jb2RpbmdJYjEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJO U184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTIxLCAlY2xhc3MuVmFyeWluZ1dyaXRlciog Ynl2YWwoJWNsYXNzLlZhcnlpbmdXcml0ZXIpIGFsaWduIDMyICU1LCAlInN0cnVjdC5QcmludElu Zm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5n NFZhcnlpbmciKSBhbGlnbiAxICU2KSwgIWRiZyAhMjA2NAotICAgYnIgaTEgJTI0LCBsYWJlbCAl NjAsIGxhYmVsICUyNSwgIWRiZyAhMjA2NQotIAotIDsgPGxhYmVsPjoyNTogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgOyBwcmVkcyA9ICUzCi1AQCAtMTAwNDQsNyArMTAwNDQs NyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwxNHN3 aXRjaEVuY29kaW5nSTEzVmFyeWluZ1dyaXRlcgotICAgJTI3ID0gYml0Y2FzdCAlY2xhc3MuVmFy eWluZ1dyaXRlciogJTcgdG8gaTgqLCAhZGJnICEyMDY3Ci0gICAlMjggPSBiaXRjYXN0ICVjbGFz cy5WYXJ5aW5nV3JpdGVyKiAlMSB0byBpOCosICFkYmcgITIwNjcKLSAgIGNhbGwgdm9pZCBAbGx2 bS5tZW1jcHkucDBpOC5wMGk4Lmk2NChpOCogYWxpZ24gMzIgJTI3LCBpOCogYWxpZ24gMzIgJTI4 LCBpNjQgNjQsIGkxIGZhbHNlKSwgIWRiZyAhMjA2NywgIXRiYWEuc3RydWN0ICExOTcKLS0gICUy OSA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJF bmNvZGluZ0lpMTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNv ZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlMjYsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCBh bGlnbiAzMiAlNywgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwg YWxpZ24gMSAlOCksICFkYmcgITIwNjgKLSsgICUyOSA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVBy aW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lpMTNWYXJ5aW5nV3JpdGVyTlNf MTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlMjYs ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCglY2xhc3MuVmFyeWluZ1dyaXRlcikgYWxpZ24g MzIgJTcsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsKCUic3Ry dWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIpIGFsaWduIDEgJTgpLCAhZGJnICEyMDY4 Ci0gICBiciBpMSAlMjksIGxhYmVsICU2MCwgbGFiZWwgJTMwLCAhZGJnICEyMDY5Ci0gCi0gOyA8 bGFiZWw+OjMwOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7IHByZWRzID0g JTI1Ci1AQCAtMTAwNTIsNyArMTAwNTIsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBA X1pOOVByaW50SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEzVmFyeWluZ1dyaXRlcgotICAg JTMyID0gYml0Y2FzdCAlY2xhc3MuVmFyeWluZ1dyaXRlciogJTkgdG8gaTgqLCAhZGJnICEyMDcx Ci0gICAlMzMgPSBiaXRjYXN0ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiAlMSB0byBpOCosICFkYmcg ITIwNzEKLSAgIGNhbGwgdm9pZCBAbGx2bS5tZW1jcHkucDBpOC5wMGk4Lmk2NChpOCogYWxpZ24g MzIgJTMyLCBpOCogYWxpZ24gMzIgJTMzLCBpNjQgNjQsIGkxIGZhbHNlKSwgIWRiZyAhMjA3MSwg IXRiYWEuc3RydWN0ICExOTcKLS0gICUzNCA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5m bzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lqMTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNv ZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlMzEsICVjbGFz cy5WYXJ5aW5nV3JpdGVyKiBieXZhbCBhbGlnbiAzMiAlOSwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpF bmNvZGluZzRWYXJ5aW5nIiogYnl2YWwgYWxpZ24gMSAlMTApLCAhZGJnICEyMDcyCi0rICAlMzQg PSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5j b2RpbmdJajEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2Rp bmdFVDBfVDFfKGk4IHNpZ25leHQgJTMxLCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwoJWNs YXNzLlZhcnlpbmdXcml0ZXIpIGFsaWduIDMyICU5LCAlInN0cnVjdC5QcmludEluZm86OkVuY29k aW5nNFZhcnlpbmciKiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmci KSBhbGlnbiAxICUxMCksICFkYmcgITIwNzIKLSAgIGJyIGkxICUzNCwgbGFiZWwgJTYwLCBsYWJl bCAlMzUsICFkYmcgITIwNzMKLSAKLSA7IDxsYWJlbD46MzU6ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDsgcHJlZHMgPSAlMzAKLUBAIC0xMDA2MCw3ICsxMDA2MCw3IEBAIGRl ZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5j b2RpbmdJMTNWYXJ5aW5nV3JpdGVyCi0gICAlMzcgPSBiaXRjYXN0ICVjbGFzcy5WYXJ5aW5nV3Jp dGVyKiAlMTEgdG8gaTgqLCAhZGJnICEyMDc1Ci0gICAlMzggPSBiaXRjYXN0ICVjbGFzcy5WYXJ5 aW5nV3JpdGVyKiAlMSB0byBpOCosICFkYmcgITIwNzUKLSAgIGNhbGwgdm9pZCBAbGx2bS5tZW1j cHkucDBpOC5wMGk4Lmk2NChpOCogYWxpZ24gMzIgJTM3LCBpOCogYWxpZ24gMzIgJTM4LCBpNjQg NjQsIGkxIGZhbHNlKSwgIWRiZyAhMjA3NSwgIXRiYWEuc3RydWN0ICExOTcKLS0gICUzOSA9IGNh bGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGlu Z0lmMTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VU MF9UMV8oaTggc2lnbmV4dCAlMzYsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCBhbGlnbiAz MiAlMTEsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsIGFsaWdu IDEgJTEyKSwgIWRiZyAhMjA3NgotKyAgJTM5ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJ bmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWYxM1ZhcnlpbmdXcml0ZXJOU18xNkVu Y29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICUzNiwgJWNs YXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5aW5nV3JpdGVyKSBhbGlnbiAzMiAl MTEsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsKCUic3RydWN0 LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIpIGFsaWduIDEgJTEyKSwgIWRiZyAhMjA3Ngot ICAgYnIgaTEgJTM5LCBsYWJlbCAlNjAsIGxhYmVsICU0MCwgIWRiZyAhMjA3NwotIAotIDsgPGxh YmVsPjo0MDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOyBwcmVkcyA9ICUz NQotQEAgLTEwMDY4LDcgKzEwMDY4LDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9a TjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1ZhcnlpbmdXcml0ZXIKLSAgICU0 MiA9IGJpdGNhc3QgJWNsYXNzLlZhcnlpbmdXcml0ZXIqICUxMyB0byBpOCosICFkYmcgITIwNzkK LSAgICU0MyA9IGJpdGNhc3QgJWNsYXNzLlZhcnlpbmdXcml0ZXIqICUxIHRvIGk4KiwgIWRiZyAh MjA3OQotICAgY2FsbCB2b2lkIEBsbHZtLm1lbWNweS5wMGk4LnAwaTguaTY0KGk4KiBhbGlnbiAz MiAlNDIsIGk4KiBhbGlnbiAzMiAlNDMsIGk2NCA2NCwgaTEgZmFsc2UpLCAhZGJnICEyMDc5LCAh dGJhYS5zdHJ1Y3QgITE5NwotLSAgJTQ0ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZv NmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSXgxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29k aW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICU0MSwgJWNsYXNz LlZhcnlpbmdXcml0ZXIqIGJ5dmFsIGFsaWduIDMyICUxMywgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpF bmNvZGluZzRWYXJ5aW5nIiogYnl2YWwgYWxpZ24gMSAlMTQpLCAhZGJnICEyMDgwCi0rICAlNDQg PSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5j b2RpbmdJeDEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2Rp bmdFVDBfVDFfKGk4IHNpZ25leHQgJTQxLCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwoJWNs YXNzLlZhcnlpbmdXcml0ZXIpIGFsaWduIDMyICUxMywgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNv ZGluZzRWYXJ5aW5nIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5n IikgYWxpZ24gMSAlMTQpLCAhZGJnICEyMDgwCi0gICBiciBpMSAlNDQsIGxhYmVsICU2MCwgbGFi ZWwgJTQ1LCAhZGJnICEyMDgxCi0gCi0gOyA8bGFiZWw+OjQ1OiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICA7IHByZWRzID0gJTQwCi1AQCAtMTAwNzYsNyArMTAwNzYsNyBAQCBk ZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwxNHN3aXRjaEVu Y29kaW5nSTEzVmFyeWluZ1dyaXRlcgotICAgJTQ3ID0gYml0Y2FzdCAlY2xhc3MuVmFyeWluZ1dy aXRlciogJTE1IHRvIGk4KiwgIWRiZyAhMjA4MwotICAgJTQ4ID0gYml0Y2FzdCAlY2xhc3MuVmFy eWluZ1dyaXRlciogJTEgdG8gaTgqLCAhZGJnICEyMDgzCi0gICBjYWxsIHZvaWQgQGxsdm0ubWVt Y3B5LnAwaTgucDBpOC5pNjQoaTgqIGFsaWduIDMyICU0NywgaTgqIGFsaWduIDMyICU0OCwgaTY0 IDY0LCBpMSBmYWxzZSksICFkYmcgITIwODMsICF0YmFhLnN0cnVjdCAhMTk3Ci0tICAlNDkgPSBj YWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2Rp bmdJeTEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdF VDBfVDFfKGk4IHNpZ25leHQgJTQ2LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwgYWxpZ24g MzIgJTE1LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCBhbGln biAxICUxNiksICFkYmcgITIwODQKLSsgICU0OSA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50 SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0l5MTNWYXJ5aW5nV3JpdGVyTlNfMTZF bmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlNDYsICVj bGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCglY2xhc3MuVmFyeWluZ1dyaXRlcikgYWxpZ24gMzIg JTE1LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCglInN0cnVj dC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKSBhbGlnbiAxICUxNiksICFkYmcgITIwODQK LSAgIGJyIGkxICU0OSwgbGFiZWwgJTYwLCBsYWJlbCAlNTAsICFkYmcgITIwODUKLSAKLSA7IDxs YWJlbD46NTA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsgcHJlZHMgPSAl NDUKLUBAIC0xMDA4NCw3ICsxMDA4NCw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBf Wk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNWYXJ5aW5nV3JpdGVyCi0gICAl NTIgPSBiaXRjYXN0ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiAlMTcgdG8gaTgqLCAhZGJnICEyMDg3 Ci0gICAlNTMgPSBiaXRjYXN0ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiAlMSB0byBpOCosICFkYmcg ITIwODcKLSAgIGNhbGwgdm9pZCBAbGx2bS5tZW1jcHkucDBpOC5wMGk4Lmk2NChpOCogYWxpZ24g MzIgJTUyLCBpOCogYWxpZ24gMzIgJTUzLCBpNjQgNjQsIGkxIGZhbHNlKSwgIWRiZyAhMjA4Nywg IXRiYWEuc3RydWN0ICExOTcKLS0gICU1NCA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5m bzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lkMTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNv ZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlNTEsICVjbGFz cy5WYXJ5aW5nV3JpdGVyKiBieXZhbCBhbGlnbiAzMiAlMTcsICUic3RydWN0LlByaW50SW5mbzo6 RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsIGFsaWduIDEgJTE4KSwgIWRiZyAhMjA4OAotKyAgJTU0 ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVu Y29kaW5nSWQxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29k aW5nRVQwX1QxXyhpOCBzaWduZXh0ICU1MSwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsKCVj bGFzcy5WYXJ5aW5nV3JpdGVyKSBhbGlnbiAzMiAlMTcsICUic3RydWN0LlByaW50SW5mbzo6RW5j b2Rpbmc0VmFyeWluZyIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWlu ZyIpIGFsaWduIDEgJTE4KSwgIWRiZyAhMjA4OAotICAgYnIgaTEgJTU0LCBsYWJlbCAlNjAsIGxh YmVsICU1NSwgIWRiZyAhMjA4OQotIAotIDsgPGxhYmVsPjo1NTogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgOyBwcmVkcyA9ICU1MAotQEAgLTEwMDkyLDcgKzEwMDkyLDcgQEAg ZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hF bmNvZGluZ0kxM1ZhcnlpbmdXcml0ZXIKLSAgICU1NyA9IGJpdGNhc3QgJWNsYXNzLlZhcnlpbmdX cml0ZXIqICUxOSB0byBpOCosICFkYmcgITIwOTEKLSAgICU1OCA9IGJpdGNhc3QgJWNsYXNzLlZh cnlpbmdXcml0ZXIqICUxIHRvIGk4KiwgIWRiZyAhMjA5MQotICAgY2FsbCB2b2lkIEBsbHZtLm1l bWNweS5wMGk4LnAwaTguaTY0KGk4KiBhbGlnbiAzMiAlNTcsIGk4KiBhbGlnbiAzMiAlNTgsIGk2 NCA2NCwgaTEgZmFsc2UpLCAhZGJnICEyMDkxLCAhdGJhYS5zdHJ1Y3QgITE5NwotLSAgJTU5ID0g Y2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29k aW5nSVB2MTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGlu Z0VUMF9UMV8oaTggc2lnbmV4dCAlNTYsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCBhbGln biAzMiAlMTksICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsIGFs aWduIDEgJTIwKSwgIWRiZyAhMjA5MgotKyAgJTU5ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJp bnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSVB2MTNWYXJ5aW5nV3JpdGVyTlNf MTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlNTYs ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCglY2xhc3MuVmFyeWluZ1dyaXRlcikgYWxpZ24g MzIgJTE5LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCglInN0 cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKSBhbGlnbiAxICUyMCksICFkYmcgITIw OTIKLSAgIGJyIGxhYmVsICU2MCwgIWRiZyAhMjA4OQotIAotIDsgPGxhYmVsPjo2MDogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOyBwcmVkcyA9ICU1NSwgJTUwLCAlNDUsICU0 MCwgJTM1LCAlMzAsICUyNSwgJTMKLUBAIC0xMDEwMSw3ICsxMDEwMSw3IEBAIGRlZmluZSBpbnRl cm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNW YXJ5aW5nV3JpdGVyCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IGFsd2F5c2lubGluZSBpbmxp bmVoaW50IG5vdW53aW5kCi0tZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludElu Zm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJYjEzVmFyeWluZ1dyaXRlck5TXzE2RW5j b2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5W YXJ5aW5nV3JpdGVyKiBieXZhbCBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGlu ZzRWYXJ5aW5nIiogYnl2YWwgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICEyMDk0IHsKLStkZWZp bmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9w ZXJFbmNvZGluZ0liMTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhF bmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsKCVj bGFzcy5WYXJ5aW5nV3JpdGVyKSBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGlu ZzRWYXJ5aW5nIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIikg YWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICEyMDk0IHsKLSAgICU0ID0gYWxsb2NhIGkxLCBhbGln biAxCi0gICAlNSA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgc3RvcmUgaTggJTAsIGk4KiAlNSwg YWxpZ24gMSwgIXRiYWEgITE5MwotQEAgLTEwMTI3LDcgKzEwMTI3LDcgQEAgZGVmaW5lIGludGVy bmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2Rp bmdJYjEzVmFyeWkKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogYWx3YXlzaW5saW5lIGlubGlu ZWhpbnQgbm91bndpbmQKLS1kZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5m bzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lpMTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNv ZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlZh cnlpbmdXcml0ZXIqIGJ5dmFsIGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5n NFZhcnlpbmciKiBieXZhbCBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITIxMDMgewotK2RlZmlu ZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3Bl ckVuY29kaW5nSWkxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVu Y29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwoJWNs YXNzLlZhcnlpbmdXcml0ZXIpIGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5n NFZhcnlpbmciKiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKSBh bGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITIxMDMgewotICAgJTQgPSBhbGxvY2EgaTEsIGFsaWdu IDEKLSAgICU1ID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0gICBzdG9yZSBpOCAlMCwgaTgqICU1LCBh bGlnbiAxLCAhdGJhYSAhMTkzCi1AQCAtMTAxNTMsNyArMTAxNTMsNyBAQCBkZWZpbmUgaW50ZXJu YWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGlu Z0lpMTNWYXJ5aQotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5l aGludCBub3Vud2luZAotLWRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZv NmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWoxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29k aW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVmFy eWluZ1dyaXRlciogYnl2YWwgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0 VmFyeWluZyIqIGJ5dmFsIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMjExMiB7Ci0rZGVmaW5l IGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVy RW5jb2RpbmdJajEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5j b2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCglY2xh c3MuVmFyeWluZ1dyaXRlcikgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0 VmFyeWluZyIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIpIGFs aWduIDEpICMyNSBjb21kYXQgIWRiZyAhMjExMiB7Ci0gICAlNCA9IGFsbG9jYSBpMSwgYWxpZ24g MQotICAgJTUgPSBhbGxvY2EgaTgsIGFsaWduIDEKLSAgIHN0b3JlIGk4ICUwLCBpOCogJTUsIGFs aWduIDEsICF0YmFhICExOTMKLUBAIC0xMDE3OSw3ICsxMDE3OSw3IEBAIGRlZmluZSBpbnRlcm5h bCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5n SWoxM1ZhcnlpCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IGFsd2F5c2lubGluZSBpbmxpbmVo aW50IG5vdW53aW5kCi0tZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82 ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJZjEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rp bmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5WYXJ5 aW5nV3JpdGVyKiBieXZhbCBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRW YXJ5aW5nIiogYnl2YWwgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICEyMTIxIHsKLStkZWZpbmUg aW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJF bmNvZGluZ0lmMTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNv ZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsKCVjbGFz cy5WYXJ5aW5nV3JpdGVyKSBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRW YXJ5aW5nIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIikgYWxp Z24gMSkgIzI1IGNvbWRhdCAhZGJnICEyMTIxIHsKLSAgICU0ID0gYWxsb2NhIGkxLCBhbGlnbiAx Ci0gICAlNSA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgc3RvcmUgaTggJTAsIGk4KiAlNSwgYWxp Z24gMSwgIXRiYWEgITE5MwotQEAgLTEwMjA1LDcgKzEwMjA1LDcgQEAgZGVmaW5lIGludGVybmFs IHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJ ZjEzVmFyeWkKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogYWx3YXlzaW5saW5lIGlubGluZWhp bnQgbm91bndpbmQKLS1kZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZk ZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0l4MTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGlu ZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlZhcnlp bmdXcml0ZXIqIGJ5dmFsIGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZh cnlpbmciKiBieXZhbCBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITIxMzAgewotK2RlZmluZSBp bnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVu Y29kaW5nSXgxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29k aW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwoJWNsYXNz LlZhcnlpbmdXcml0ZXIpIGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZh cnlpbmciKiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKSBhbGln biAxKSAjMjUgY29tZGF0ICFkYmcgITIxMzAgewotICAgJTQgPSBhbGxvY2EgaTEsIGFsaWduIDEK LSAgICU1ID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0gICBzdG9yZSBpOCAlMCwgaTgqICU1LCBhbGln biAxLCAhdGJhYSAhMTkzCi1AQCAtMTAyMzEsNyArMTAyMzEsNyBAQCBkZWZpbmUgaW50ZXJuYWwg emVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0l4 MTNWYXJ5aQotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGlu dCBub3Vud2luZAotLWRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRl dGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSXkxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5n NFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVmFyeWlu Z1dyaXRlciogYnl2YWwgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFy eWluZyIqIGJ5dmFsIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMjEzOSB7Ci0rZGVmaW5lIGlu dGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5j b2RpbmdJeTEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2Rp bmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCglY2xhc3Mu VmFyeWluZ1dyaXRlcikgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFy eWluZyIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIpIGFsaWdu IDEpICMyNSBjb21kYXQgIWRiZyAhMjEzOSB7Ci0gICAlNCA9IGFsbG9jYSBpMSwgYWxpZ24gMQot ICAgJTUgPSBhbGxvY2EgaTgsIGFsaWduIDEKLSAgIHN0b3JlIGk4ICUwLCBpOCogJTUsIGFsaWdu IDEsICF0YmFhICExOTMKLUBAIC0xMDI1Nyw3ICsxMDI1Nyw3IEBAIGRlZmluZSBpbnRlcm5hbCB6 ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSXkx M1ZhcnlpCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IGFsd2F5c2lubGluZSBpbmxpbmVoaW50 IG5vdW53aW5kCi0tZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0 YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJZDEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0 VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5WYXJ5aW5n V3JpdGVyKiBieXZhbCBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5 aW5nIiogYnl2YWwgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICEyMTQ4IHsKLStkZWZpbmUgaW50 ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNv ZGluZ0lkMTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGlu Z0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsKCVjbGFzcy5W YXJ5aW5nV3JpdGVyKSBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5 aW5nIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIikgYWxpZ24g MSkgIzI1IGNvbWRhdCAhZGJnICEyMTQ4IHsKLSAgICU0ID0gYWxsb2NhIGkxLCBhbGlnbiAxCi0g ICAlNSA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgc3RvcmUgaTggJTAsIGk4KiAlNSwgYWxpZ24g MSwgIXRiYWEgITE5MwotQEAgLTEwMjgzLDcgKzEwMjgzLDcgQEAgZGVmaW5lIGludGVybmFsIHpl cm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJZDEz VmFyeWkKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogYWx3YXlzaW5saW5lIGlubGluZWhpbnQg bm91bndpbmQKLS1kZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRh aWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lQdjEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0 VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5WYXJ5aW5n V3JpdGVyKiBieXZhbCBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5 aW5nIiogYnl2YWwgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICEyMTU3IHsKLStkZWZpbmUgaW50 ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNv ZGluZ0lQdjEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2Rp bmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCglY2xhc3Mu VmFyeWluZ1dyaXRlcikgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFy eWluZyIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIpIGFsaWdu IDEpICMyNSBjb21kYXQgIWRiZyAhMjE1NyB7Ci0gICAlNCA9IGFsbG9jYSBpMSwgYWxpZ24gMQot ICAgJTUgPSBhbGxvY2EgaTgsIGFsaWduIDEKLSAgIHN0b3JlIGk4ICUwLCBpOCogJTUsIGFsaWdu IDEsICF0YmFhICExOTMKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvaXNwYy90ZW1wbGF0ZSBiL3NyY3Br Z3MvaXNwYy90ZW1wbGF0ZQppbmRleCA5YzNhY2I0MmE5Y2YuLmQ2MWRjYzFiOTYxYSAxMDA2NDQK LS0tIGEvc3JjcGtncy9pc3BjL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvaXNwYy90ZW1wbGF0ZQpA QCAtMSwxOCArMSwxOSBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnaXNwYycKIHBrZ25hbWU9aXNw YwotdmVyc2lvbj0xLjE1LjAKLXJldmlzaW9uPTIKK3ZlcnNpb249MS4xOC4xLnIyOTArZTg4ZTQ5 ZQorcmV2aXNpb249MQorX2lzcGNfY29tbWl0PWU4OGU0OWViMTYxYWE1ZTc1YWVjYzg0M2Q0Nzlk NWU3NTdmNWM0M2UKIGFyY2hzPSJ4ODZfNjQqIgogYnVpbGRfc3R5bGU9Y21ha2UKLWNvbmZpZ3Vy ZV9hcmdzPSItRElTUENfTk9fRFVNUFM9T04gLURBUk1fRU5BQkxFRD1PRkYiCitjb25maWd1cmVf YXJncz0iLURBUk1fRU5BQkxFRD1PRkYgLURJU1BDX0lOQ0xVREVfRVhBTVBMRVM9T0ZGIC1ESVNQ Q19JTkNMVURFX1JUPU9GRiIKIGhvc3RtYWtlZGVwZW5kcz0iY2xhbmcgY2xhbmctdG9vbHMtZXh0 cmEgcHl0aG9uMyBtNCBiaXNvbiBmbGV4IGxsdm0iCiBtYWtlZGVwZW5kcz0ibmN1cnNlcy1kZXZl bCBuY3Vyc2VzLWxpYnRpbmZvLWRldmVsIHpsaWItZGV2ZWwiCiBzaG9ydF9kZXNjPSJDb21waWxl ciBmb3IgaGlnaC1wZXJmb3JtYW5jZSBTSU1EIHByb2dyYW1taW5nIG9uIHRoZSBDUFUiCiBtYWlu dGFpbmVyPSJBbmRyZWEgQnJhbmNhbGVvbmkgPGFiY0Bwb21wZWwubWU+IgogbGljZW5zZT0iQlNE LTMtQ2xhdXNlIgogaG9tZXBhZ2U9Imh0dHBzOi8vaXNwYy5naXRodWIuaW8iCi1kaXN0ZmlsZXM9 Imh0dHBzOi8vZ2l0aHViLmNvbS9pc3BjL2lzcGMvYXJjaGl2ZS92JHt2ZXJzaW9ufS50YXIuZ3oi Ci1jaGVja3N1bT0yNjU4ZmYwMGRjMDQ1YWM5ZmNlZmJmNmJkMjZkZmZhZjcyM2IwNTlhOTQyYTI3 ZGY5MWJiYjYxYmM1MDNhMjg1CitkaXN0ZmlsZXM9Imh0dHBzOi8vZ2l0aHViLmNvbS9pc3BjL2lz cGMvYXJjaGl2ZS8ke19pc3BjX2NvbW1pdH0udGFyLmd6IgorY2hlY2tzdW09ZTAxODFmMGY0ZGM3 ODgwOTE2NmE4YzI4YTQ2YTNjYjFmMjRkM2RiYmVhZDRmNGZmN2U0ZWJmZDhkMTA5ZWJiZAogbm9j cm9zcz15ZXMKIG5vcGllPXllcwogCkBAIC0yMiw3ICsyMyw3IEBAIGNhc2UgIiRYQlBTX1RBUkdF VF9NQUNISU5FIiBpbgogZXNhYwogCiBwcmVfYnVpbGQoKSB7Ci0Jc2VkIC1pICcvdGluZm8vZCcg Q01ha2VMaXN0cy50eHQKKwl2c2VkIC1pICcvdGluZm8vZCcgQ01ha2VMaXN0cy50eHQKIH0KIAog cG9zdF9pbnN0YWxsKCkgewoKRnJvbSAzNTE4MjRmMDIyM2UyYWY1M2QxZjZiOTk3ZGRlMzA4ZTM2 ODE4YmQ2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJjaW4gUHVjIDx0cmFuenlz dG9yZWsuaW9AcHJvdG9ubWFpbC5jb20+CkRhdGU6IFN1biwgNSBGZWIgMjAyMyAxNDowNDo1MSAr MDEwMApTdWJqZWN0OiBbUEFUQ0ggMjcvMzJdIHJ1c3QtYm9vdHN0cmFwOiB1cGRhdGUgdG8gMS42 Ny4xCgotLS0KIC4uLi9maWxlcy9nZW5lcmF0aW5nLWRpc3RmaWxlcy5tZCAgICAgICAgICAgICB8 ICAzICsrCiBzcmNwa2dzL3J1c3QtYm9vdHN0cmFwL3RlbXBsYXRlICAgICAgICAgICAgICAgfCA0 OSArKystLS0tLS0tLS0tLS0tLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDExIGluc2VydGlvbnMoKyks IDQxIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcnVzdC1ib290c3RyYXAvZmls ZXMvZ2VuZXJhdGluZy1kaXN0ZmlsZXMubWQgYi9zcmNwa2dzL3J1c3QtYm9vdHN0cmFwL2ZpbGVz L2dlbmVyYXRpbmctZGlzdGZpbGVzLm1kCmluZGV4IGVkNWFhMGRhODU5Ni4uMzZlZTBhZDIzMGYy IDEwMDY0NAotLS0gYS9zcmNwa2dzL3J1c3QtYm9vdHN0cmFwL2ZpbGVzL2dlbmVyYXRpbmctZGlz dGZpbGVzLm1kCisrKyBiL3NyY3BrZ3MvcnVzdC1ib290c3RyYXAvZmlsZXMvZ2VuZXJhdGluZy1k aXN0ZmlsZXMubWQKQEAgLTYsNiArNiw5IEBAIHNvIHdlIGhhdmUgdG8gZ2VuZXJhdGUgZGlzdGZp bGVzIGZvciBhIGZldyBhcmNoaXRlY3R1cmVzIGFzIHdlbGwsIG5hbWVseQogYGNhcmdvLWJvb3Rz dHJhcGAsIGFzIHRoZSBgcHBjYCBjYXJnbyBiaW5hcmllcyBwcm92aWRlZCBieSB1cHN0cmVhbSBo YXZlCiBwcm9ibGVtcy4KIAorTm90ZTogVm9pZCBubyBsb25nZXIgb2ZmaWNpYWxseSBzdXBwb3J0 cyBQb3dlclBDIHBsYXRmb3JtcywKK3RoaXMgZ3VpZGUgaXMga2VwdCBmb3IgaGlzdG9yaWNhbCBy ZWFzb25zIGFzIHdlbGwgYXMgZm9yIGZ1dHVyZSByZWZlcmVuY2UuCisKICMjIyBTZXQgdXAgYXBw cm9wcmlhdGUgbWFzdGVyZGlycyBhbmQgcmVtb3RlLXJlcG9zaXRvcmllcwogCiBUaGlzIGd1aWRl IGFzc3VtZXMgeW91J3JlIG9uIGFuIHg4NlxfNjQgbWFjaGluZS4gSWYgeW91J3JlIG5vdCwgcGxl YXNlIGFkYXB0IHRoZQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9ydXN0LWJvb3RzdHJhcC90ZW1wbGF0 ZSBiL3NyY3BrZ3MvcnVzdC1ib290c3RyYXAvdGVtcGxhdGUKaW5kZXggNTM5YTQwOTdlZjNjLi5l N2Q5YWRmZDE3MDAgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvcnVzdC1ib290c3RyYXAvdGVtcGxhdGUK KysrIGIvc3JjcGtncy9ydXN0LWJvb3RzdHJhcC90ZW1wbGF0ZQpAQCAtMSw4ICsxLDcgQEAKICMg VGVtcGxhdGUgZmlsZSBmb3IgJ3J1c3QtYm9vdHN0cmFwJwogcGtnbmFtZT1ydXN0LWJvb3RzdHJh cAotdmVyc2lvbj0xLjY0LjAKK3ZlcnNpb249MS42Ny4xCiByZXZpc2lvbj0xCi1jcmVhdGVfd3Jr c3JjPXllcwogc2hvcnRfZGVzYz0iUnVzdCBwcm9ncmFtbWluZyBsYW5ndWFnZSBib290c3RyYXAg dG9vbGNoYWluIgogbWFpbnRhaW5lcj0iT3JwaGFuZWQgPG9ycGhhbkB2b2lkbGludXgub3JnPiIK IGxpY2Vuc2U9Ik1JVCwgQXBhY2hlLTIuMCIKQEAgLTE5LDcgKzE4LDcgQEAgZmkKIF9ib290c3Ry YXBfdXJsPSJodHRwczovL3N0YXRpYy5ydXN0LWxhbmcub3JnL2Rpc3QiCiAKIGNhc2UgIiRYQlBT X1RBUkdFVF9NQUNISU5FIiBpbgotCXg4Nl82NCp8aTY4NnxwcGM2NGxlfHBwYykgOzsKKwl4ODZf NjQqfGk2ODYpIDs7CiAJIyBTZWUgc3JjcGtncy9ydXN0LWJvb3RzdHJhcC9maWxlcy9nZW5lcmF0 aW5nLWRpc3RmaWxlcy5tZCBmb3IgZGV0YWlscwogCSopIF9ib290c3RyYXBfdXJsPSJodHRwczov L3JlcG8tZGVmYXVsdC52b2lkbGludXgub3JnL2Rpc3RmaWxlcyI7OwogZXNhYwpAQCAtMzIsNTYg KzMxLDI0IEBAIGNhc2UgIiRYQlBTX1RBUkdFVF9NQUNISU5FIiBpbgogCQkgJHtfYm9vdHN0cmFw X3VybH0vcnVzdGMtJHt2ZXJzaW9ufS1pNjg2LXVua25vd24tbGludXgtZ251LnRhci54egogCQkg JHtfYm9vdHN0cmFwX3VybH0vcnVzdC1zdGQtJHt2ZXJzaW9ufS1pNjg2LXVua25vd24tbGludXgt Z251LnRhci54eiIKIAkJY2hlY2tzdW09IgotCQkgM2Q2MDRlMTUwYzQ2OTQ2MWE2NGMxN2I2ZDI2 Zjk2YTVhM2Q2OTc1MjQ2YzkyY2QxM2VlOWJjNmU0ZGYwYWFlYgotCQkgYzgwYzU3ZGY2MzUxN2Q2 MTcxYzA2MWU2YzA5NWI3OTQ1OTMxNzJhM2FiZWZhOWI0MjAyOTkyNzA2YmRhMTJlNSIKKwkJIDBj NzdmZGU2ZGFhODA4MjVmOGNiODFhNTUyNWM5OWRiMjM4YTNhYjRmMGIyMjY0NzA5NjQwNjJlNzQ2 MDNkZDYKKwkJIGFhYjJkN2FhNzY3OTNlNzhjOWM4ODEwZTkzZWQ4OTc4ZjY0MjI4NDNiMTI3N2U5 YzYwMzM3YjBmOTQzYTQ0MDkiCiAJCTs7CiAJeDg2XzY0KQogCQlkaXN0ZmlsZXM9IgogCQkgJHtf Ym9vdHN0cmFwX3VybH0vcnVzdGMtJHt2ZXJzaW9ufS14ODZfNjQtdW5rbm93bi1saW51eC1nbnUu dGFyLnh6CiAJCSAke19ib290c3RyYXBfdXJsfS9ydXN0LXN0ZC0ke3ZlcnNpb259LXg4Nl82NC11 bmtub3duLWxpbnV4LWdudS50YXIueHoiCiAJCWNoZWNrc3VtPSIKLQkJIDFmNTc1NmEwMzExOTg1 M2I1MzM1ODAxOGM1YjE1OTI5NDBhMjM1NGMzYzlmODRlZTdmYWY2ODRlMzQ3OGY4ZjAKLQkJIDZh Y2UzNGJjYmJhOTU1N2FhMmZjM2EwNTE1YzNkYTRhODNjYTI0ZDdkNDU1MDZjNWUxYjMyZjU4OWZh MzhhOGIiCisJCSBlMjdlYzBjNmQxYTJiMmIzOGU1MjU4OTA0YzM3NDFkZGIyNDZiZmY1NzE1YWE5 NWU1OTVmODE4YWE3N2Y3YmVlCisJCSBmNGRjODQ2OGRmYzFkYmQ4NmY4NjViMTBmMDZlMGU0YjRl NzZmNWEzYTFjYzI3MzE3YTUyMGFiMTY2MDg0NGU5IgogCQk7OwogCXg4Nl82NC1tdXNsKQogCQlk aXN0ZmlsZXM9IgogCQkgJHtfYm9vdHN0cmFwX3VybH0vcnVzdGMtJHt2ZXJzaW9ufS14ODZfNjQt dW5rbm93bi1saW51eC1tdXNsLnRhci54egogCQkgJHtfYm9vdHN0cmFwX3VybH0vcnVzdC1zdGQt JHt2ZXJzaW9ufS14ODZfNjQtdW5rbm93bi1saW51eC1tdXNsLnRhci54eiIKIAkJY2hlY2tzdW09 IgotCQkgNTE3N2Q3NDliNWRjYzc0NTk2ZTMxNGI3M2M1ZjNmM2VhYmVkOGIzZTIwN2Y4MTJmMjI5 ZmJmMDY4MmMxNjJhZQotCQkgMjlhZjEzYTg4MmFiYmU3OTdmYWRkNDNhZmNiNzViY2UyZTIzMDQ0 MzhkYjllMjFhM2U2NGEyZTkxMDA1MDFmYiIKLQkJOzsKLQlwcGM2NGxlKQotCQlkaXN0ZmlsZXM9 IgotCQkgJHtfYm9vdHN0cmFwX3VybH0vcnVzdGMtJHt2ZXJzaW9ufS1wb3dlcnBjNjRsZS11bmtu b3duLWxpbnV4LWdudS50YXIueHoKLQkJICR7X2Jvb3RzdHJhcF91cmx9L3J1c3Qtc3RkLSR7dmVy c2lvbn0tcG93ZXJwYzY0bGUtdW5rbm93bi1saW51eC1nbnUudGFyLnh6IgotCQljaGVja3N1bT0i Ci0JCSAxMTYzMGZjNTFmZmZlNzIyZTUyZjY0OTM1N2I1OTQ4YzI0YjUzMDVjZmI2MWE4MTE0NTI3 MjM0ZTA1NDQ1MWM0Ci0JCSBlZjY5NzQ2OWIyYTNlYTg4OTdmNDliNzBlM2JlMGM3YWFjYTNmMjZm ZDMyMzQ4MTIxMTNlMmU4NWNhZmFjNzM4IgotCQk7OwotCXBwYzY0bGUtbXVzbCkKLQkJZGlzdGZp bGVzPSIKLQkJICR7X2Jvb3RzdHJhcF91cmx9L3J1c3RjLSR7dmVyc2lvbn0tcG93ZXJwYzY0bGUt dW5rbm93bi1saW51eC1tdXNsLnRhci54egotCQkgJHtfYm9vdHN0cmFwX3VybH0vcnVzdC1zdGQt JHt2ZXJzaW9ufS1wb3dlcnBjNjRsZS11bmtub3duLWxpbnV4LW11c2wudGFyLnh6IgotCQljaGVj a3N1bT0iCi0JCSA5YWUxOWUwY2RiODgzYWE2N2RjM2U0ZWY3YWZjYTg4Zjk5YzhjNWQxNzZlZDkx NzVlMmY3NjUyMTIyYzdkMWQ4Ci0JCSA4MjViOGY2ODBkOWU2ZTNkNmIxNDUxNTg2YmIwOWVmYjBj MWY3ZDg0NGQ2ODc0NzM4ZTA0MGNmM2Q2YjIwNjYzIgotCQk7OwotCXBwYzY0KQotCQlkaXN0Zmls ZXM9IgotCQkgJHtfYm9vdHN0cmFwX3VybH0vcnVzdGMtJHt2ZXJzaW9ufS1wb3dlcnBjNjQtdW5r bm93bi1saW51eC1nbnUudGFyLnh6Ci0JCSAke19ib290c3RyYXBfdXJsfS9ydXN0LXN0ZC0ke3Zl cnNpb259LXBvd2VycGM2NC11bmtub3duLWxpbnV4LWdudS50YXIueHoiCi0JCWNoZWNrc3VtPSIK LQkJIGFhZTY0MThjNzE5ODZhN2Y0YWI3YzdhYjY2ZDRmOTc1MzFmMGJkYWI1MGYxNDk4NWM5NDAz ZTJjZmY0NDNkZTcKLQkJIDk2NDg1OTY1ZjBhMmRlYzI3NDY3OWNhZmJlNGQzOWJkOWU3YzcyODgy NGE2YzU1MDRmMTY0ZWM5ZDVmNTczODQiCi0JCTs7Ci0JcHBjKQotCQlkaXN0ZmlsZXM9IgotCQkg JHtfYm9vdHN0cmFwX3VybH0vcnVzdGMtJHt2ZXJzaW9ufS1wb3dlcnBjLXVua25vd24tbGludXgt Z251LnRhci54egotCQkgJHtfYm9vdHN0cmFwX3VybH0vcnVzdC1zdGQtJHt2ZXJzaW9ufS1wb3dl cnBjLXVua25vd24tbGludXgtZ251LnRhci54eiIKLQkJY2hlY2tzdW09IgotCQkgNWY0ZGU5NmJm ZjI5MzdmYzBhNjRhMjE2NjA0YzdhZjc2NWFmOTQ0NjBhMWYyODMzMzBlZGRjNjEwZDkxMjcxYgot CQkgNmIyOWViZWM0Y2Q3MDU3NjBkYjYzNDcxN2NmNmRmNjhhOWEzNzdkNTJjMjVkZWYzMGY1YTJl MjY0MWE4MzI3OSIKKwkJIDU1ZmE4YzYxYzc2N2QyMzM1NzA3NTE2MmViZDhjMmJlNzI5N2YyMTI3 ZTY4M2M0MGQ1ZGI1M2ViY2Y2YTczN2YKKwkJIDg5NzQxY2QyYWMwMGMzYTNmNTY1YmNjY2RmNDQy Y2MxZjllYzU4ZWE0MTlmMWYwZDA5ZTkxMWJlMGZmODZjODciCiAJCTs7CiAJKikgYnJva2VuPSJy dXN0IGJvb3RzdHJhcCBiaW5hcmllcyB1bmF2YWlsYWJsZSBmb3IgJHtYQlBTX1RBUkdFVF9NQUNI SU5FfSI7OwogZXNhYwoKRnJvbSBlNmJmNzYyNDQwYzI0YTQ3ODA4MjA0OGZmOGEwMTNmZjgzMjIx NmFjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJjaW4gUHVjIDx0cmFuenlzdG9y ZWsuaW9AcHJvdG9ubWFpbC5jb20+CkRhdGU6IFN1biwgNSBGZWIgMjAyMyAxNDowNjo0NyArMDEw MApTdWJqZWN0OiBbUEFUQ0ggMjgvMzJdIGNhcmdvLWJvb3RzdHJhcDogdXBkYXRlIHRvIDEuNjcu MQoKLS0tCiBzcmNwa2dzL2NhcmdvLWJvb3RzdHJhcC90ZW1wbGF0ZSB8IDI2ICsrKysrLS0tLS0t LS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspLCAyMSBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2NhcmdvLWJvb3RzdHJhcC90ZW1wbGF0ZSBi L3NyY3BrZ3MvY2FyZ28tYm9vdHN0cmFwL3RlbXBsYXRlCmluZGV4IDlkYTY0NmE2M2FkZS4uNGU0 MDZkMjlhNjRkIDEwMDY0NAotLS0gYS9zcmNwa2dzL2NhcmdvLWJvb3RzdHJhcC90ZW1wbGF0ZQor KysgYi9zcmNwa2dzL2NhcmdvLWJvb3RzdHJhcC90ZW1wbGF0ZQpAQCAtMSw2ICsxLDYgQEAKICMg VGVtcGxhdGUgZmlsZSBmb3IgJ2NhcmdvLWJvb3RzdHJhcCcKIHBrZ25hbWU9Y2FyZ28tYm9vdHN0 cmFwCi12ZXJzaW9uPTEuNjQuMAordmVyc2lvbj0xLjY3LjEKIHJldmlzaW9uPTEKIHNob3J0X2Rl c2M9IkJvb3RzdHJhcCBiaW5hcmllcyBvZiBSdXN0IHBhY2thZ2UgbWFuYWdlciIKIG1haW50YWlu ZXI9Ik9ycGhhbmVkIDxvcnBoYW5Adm9pZGxpbnV4Lm9yZz4iCkBAIC0xOCw3ICsxOCw3IEBAIF9i b290c3RyYXBfdXJsPSJodHRwczovL3N0YXRpYy5ydXN0LWxhbmcub3JnL2Rpc3QiCiAjIHVwZGF0 aW5nIHRoZSBjcmF0ZXMuaW8gaW5kZXgpCiAjIHBwYzY0IGlzIGV4Y2x1ZGVkIGJlY2F1c2Ugb2Yg QUJJIGluY29tcGF0aWJpbGl0eQogY2FzZSAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiIGluCi0JeDg2 XzY0KnxpNjg2fHBwYzY0bGUpIDs7CisJeDg2XzY0KnxpNjg2KSA7OwogCSMgU2VlIHNyY3BrZ3Mv cnVzdC1ib290c3RyYXAvZmlsZXMvZ2VuZXJhdGluZy1kaXN0ZmlsZXMubWQgZm9yIGRldGFpbHMK IAkqKSBfYm9vdHN0cmFwX3VybD0iaHR0cHM6Ly9yZXBvLWRlZmF1bHQudm9pZGxpbnV4Lm9yZy9k aXN0ZmlsZXMiIDs7CiBlc2FjCkBAIC0yOCwzMSArMjgsMTUgQEAgZXNhYwogY2FzZSAiJFhCUFNf VEFSR0VUX01BQ0hJTkUiIGluCiAJaTY4NikKIAkJZGlzdGZpbGVzPSIke19ib290c3RyYXBfdXJs fS9jYXJnby0ke3ZlcnNpb259LWk2ODYtdW5rbm93bi1saW51eC1nbnUudGFyLnh6IgotCQljaGVj a3N1bT0iZTJlMjBhMTZmNWRiNTJjZDZiNzczYzk0MjI1YjAzODgwNzQzNTQ0ZmYyZjMxN2RkODU3 Y2YwZGNlYWM2YWI1NyIKKwkJY2hlY2tzdW09IjM2ZGI0NmUxOWU4NTczZWExMTNjMzhkODhmNjZk ZWY1ZmFkODQ4NzIxYjNjNmRkNjkzNjFmMTk3YjdhMDJmODAiCiAJCTs7CiAJeDg2XzY0KQogCQlk aXN0ZmlsZXM9IiR7X2Jvb3RzdHJhcF91cmx9L2NhcmdvLSR7dmVyc2lvbn0teDg2XzY0LXVua25v d24tbGludXgtZ251LnRhci54eiIKLQkJY2hlY2tzdW09IjIxNDM0ZDgzYTMwYWQzZmE0ZTQ4MzE0 ODdjNTU3NGEyMGIwN2RkNTdkMjEzYjI2ZTEyNDYyOTBjNTdkNGVjNDEiCisJCWNoZWNrc3VtPSJl NzQ0ZGFkNzVkZTg0MTllN2ZlYTUzMGMyOWJkNTZjZjkzMWI0ZDRkZTYyZWI0YmQ0NDJiZmFjN2I1 NGU2MWVkIgogCQk7OwogCXg4Nl82NC1tdXNsKQogCQlkaXN0ZmlsZXM9IiR7X2Jvb3RzdHJhcF91 cmx9L2NhcmdvLSR7dmVyc2lvbn0teDg2XzY0LXVua25vd24tbGludXgtbXVzbC50YXIueHoiCi0J CWNoZWNrc3VtPSIwMWQwNjE3NmZkODk0YjkyOTllZDRmNWI3OGU4N2Q3OGE5YTI1YjliYTgwM2Qz ZjhjNTBiN2E0ZWEyMWQ4ODA3IgotCQk7OwotCXBwYzY0bGUpCi0JCWRpc3RmaWxlcz0iJHtfYm9v dHN0cmFwX3VybH0vY2FyZ28tJHt2ZXJzaW9ufS1wb3dlcnBjNjRsZS11bmtub3duLWxpbnV4LWdu dS50YXIueHoiCi0JCWNoZWNrc3VtPSJiYTcxODhiMmM3ODkwZTYxYmY1OGQzYWE5ZTk0YzMyM2Zl YzM3NWY2N2NmMDM4NDFiYmNjMGY2YzgwMGZlNmFkIgotCQk7OwotCXBwYzY0bGUtbXVzbCkKLQkJ ZGlzdGZpbGVzPSIke19ib290c3RyYXBfdXJsfS9jYXJnby0ke3ZlcnNpb259LXBvd2VycGM2NGxl LXVua25vd24tbGludXgtbXVzbC50YXIueHoiCi0JCWNoZWNrc3VtPSIxYjU0YWI0NzkzYWM2Yzlj NDNlZTllZTQ1Njc3ZjQwM2E5YmJhOWM2NjEwZTg4MzhjOTZlYzE5NGJjYjRmMjYxIgotCQk7Owot CXBwYzY0KQotCQlkaXN0ZmlsZXM9IiR7X2Jvb3RzdHJhcF91cmx9L2NhcmdvLSR7dmVyc2lvbn0t cG93ZXJwYzY0LXVua25vd24tbGludXgtZ251LnRhci54eiIKLQkJY2hlY2tzdW09Ijk2Y2UzOWRh Yzk0ODMzM2I4MzIxZDJiYzNhYzcwOTgyODc5YjE4NWQ2OTI2N2YzZDU4MGRmM2Y5YzY2MmRkMGQi Ci0JCTs7Ci0JcHBjKQotCQlkaXN0ZmlsZXM9IiR7X2Jvb3RzdHJhcF91cmx9L2NhcmdvLSR7dmVy c2lvbn0tcG93ZXJwYy11bmtub3duLWxpbnV4LWdudS50YXIueHoiCi0JCWNoZWNrc3VtPSJjN2Fh NDE1YjY0YjA0NjYyNjAwM2ZjYWZjNzZkYTkwMzczYWRjOGZjNzQ4ZjA2NWZhODM4NWRjMTlkM2Iz YTJhIgorCQljaGVja3N1bT0iZTUwOTcwNzViOTJjMzEwMDJiZjU4NTgzMTM2MmZhMDhhMTViMDcz NzMwMzIzYWFhNTBiYjA5YmEyZWEzNjQ2YSIKIAkJOzsKIAkqKSBicm9rZW49ImNhcmdvIGJvb3Rz dHJhcCBiaW5hcmllcyB1bmF2YWlsYWJsZSBmb3IgJHtYQlBTX1RBUkdFVF9NQUNISU5FfSI7Owog ZXNhYwoKRnJvbSA1OWYwZmYyMTNkMjFiM2NhZmMyMmFiNzY4NjA5ZTZjOWRlZDEyNjg2IE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJjaW4gUHVjIDx0cmFuenlzdG9yZWsuaW9AcHJv dG9ubWFpbC5jb20+CkRhdGU6IFN1biwgNSBGZWIgMjAyMyAxNDoxMToyMiArMDEwMApTdWJqZWN0 OiBbUEFUQ0ggMjkvMzJdIHJ1c3Q6IHVwZGF0ZSB0byAxLjY3LjEKCi0tLQogLi4uZGxpYi1hbmQt bXVzbF9yb290LWZyb20tbXVzbC10YXJnZXRzLnBhdGNoIHwgIDkzICsrLS0tCiAuLi5lLUVMRnYy LUFCSS1vbi1hbGwtcG93ZXJwYzY0LXRhcmdldHMucGF0Y2ggfCAgNDEgKy0KIC4uLmxlLWluaXRp YWwtZXhlYy1UTFMtbW9kZWwtb24tcG93ZXJwYy5wYXRjaCB8ICAxOSArLQogLi4uL3BhdGNoZXMv MDAxNS1pbml0aWFsLXBwY2xlLXBvcnQucGF0Y2ggICAgIHwgMzc5IC0tLS0tLS0tLS0tLS0tLS0t LQogc3JjcGtncy9ydXN0L3RlbXBsYXRlICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA4ICst CiA1IGZpbGVzIGNoYW5nZWQsIDQ0IGluc2VydGlvbnMoKyksIDQ5NiBkZWxldGlvbnMoLSkKIGRl bGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3J1c3QvcGF0Y2hlcy8wMDE1LWluaXRpYWwtcHBjbGUt cG9ydC5wYXRjaAoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcnVzdC9wYXRjaGVzLzAwMDItUmVtb3Zl LW5vc3RkbGliLWFuZC1tdXNsX3Jvb3QtZnJvbS1tdXNsLXRhcmdldHMucGF0Y2ggYi9zcmNwa2dz L3J1c3QvcGF0Y2hlcy8wMDAyLVJlbW92ZS1ub3N0ZGxpYi1hbmQtbXVzbF9yb290LWZyb20tbXVz bC10YXJnZXRzLnBhdGNoCmluZGV4IGMxNTY5NDViODExMS4uYzg0YzFjNGY0ODNkIDEwMDY0NAot LS0gYS9zcmNwa2dzL3J1c3QvcGF0Y2hlcy8wMDAyLVJlbW92ZS1ub3N0ZGxpYi1hbmQtbXVzbF9y b290LWZyb20tbXVzbC10YXJnZXRzLnBhdGNoCisrKyBiL3NyY3BrZ3MvcnVzdC9wYXRjaGVzLzAw MDItUmVtb3ZlLW5vc3RkbGliLWFuZC1tdXNsX3Jvb3QtZnJvbS1tdXNsLXRhcmdldHMucGF0Y2gK QEAgLTEsMzAgKzEsMTIgQEAKLUZyb20gNzIxOWJhMWM5YWNjYmFkOWI1MzBkMzEyZmQ5YTlmNjkz MzBjOTNkYSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IFNhbXVlbCBIb2xsYW5kIDxz YW11ZWxAc2hvbGxhbmQub3JnPgotRGF0ZTogU3VuLCAzIE1heSAyMDIwIDE3OjUzOjMzICswMjAw Ci1TdWJqZWN0OiBbUEFUQ0ggMDIvMTVdIFJlbW92ZSAtbm9zdGRsaWIgYW5kIG11c2xfcm9vdCBm cm9tIG11c2wgdGFyZ2V0cwotCi1leHRlbmRlZCBieSB2YXJpb3VzIHZvaWQgY29udHJpYnV0b3Jz IHRvIG1hdGNoIG91ciBtdXNsIHNldHVwCi0tLS0KLSBjb21waWxlci9ydXN0Y190YXJnZXQvc3Jj L3NwZWMvY3J0X29iamVjdHMucnMgfCAyMiAtLS0tLS0tLS0tCi0gLi4uL3J1c3RjX3RhcmdldC9z cmMvc3BlYy9saW51eF9tdXNsX2Jhc2UucnMgIHwgIDcgLS0tCi0gY29uZmlnLnRvbWwuZXhhbXBs ZSAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDggLS0tLQotIHNyYy9ib290c3RyYXAvY2Nf ZGV0ZWN0LnJzICAgICAgICAgICAgICAgICAgICB8IDI1ICstLS0tLS0tLS0tCi0gc3JjL2Jvb3Rz dHJhcC9jb21waWxlLnJzICAgICAgICAgICAgICAgICAgICAgIHwgNDMgKy0tLS0tLS0tLS0tLS0t LS0tLQotIHNyYy9ib290c3RyYXAvY29uZmlnLnJzICAgICAgICAgICAgICAgICAgICAgICB8ICA5 IC0tLS0KLSBzcmMvYm9vdHN0cmFwL2NvbmZpZ3VyZS5weSAgICAgICAgICAgICAgICAgICAgfCAy OCAtLS0tLS0tLS0tLS0KLSBzcmMvYm9vdHN0cmFwL2xpYi5ycyAgICAgICAgICAgICAgICAgICAg ICAgICAgfCAxOSAtLS0tLS0tLQotIHNyYy9ib290c3RyYXAvc2FuaXR5LnJzICAgICAgICAgICAg ICAgICAgICAgICB8IDIzIC0tLS0tLS0tLS0KLSA5IGZpbGVzIGNoYW5nZWQsIDMgaW5zZXJ0aW9u cygrKSwgMTgxIGRlbGV0aW9ucygtKQotCiBkaWZmIC0tZ2l0IGEvY29tcGlsZXIvcnVzdGNfdGFy Z2V0L3NyYy9zcGVjL2NydF9vYmplY3RzLnJzIGIvY29tcGlsZXIvcnVzdGNfdGFyZ2V0L3NyYy9z cGVjL2NydF9vYmplY3RzLnJzCi1pbmRleCA1MmFjMzYyMmUuLmYzNWU1YjlkOCAxMDA2NDQKK2lu ZGV4IGMxMjYzOTBmNS4uN2FlZjczZDNiIDEwMDY0NAogLS0tIGEvY29tcGlsZXIvcnVzdGNfdGFy Z2V0L3NyYy9zcGVjL2NydF9vYmplY3RzLnJzCiArKysgYi9jb21waWxlci9ydXN0Y190YXJnZXQv c3JjL3NwZWMvY3J0X29iamVjdHMucnMKIEBAIC02MywyOCArNjMsNiBAQCBwdWIoc3VwZXIpIGZu IGFsbChvYmo6ICYnc3RhdGljIHN0cikgLT4gQ3J0T2JqZWN0cyB7CiAgICAgIF0pCiAgfQogIAot LXB1YihzdXBlcikgZm4gcHJlX211c2xfZmFsbGJhY2soKSAtPiBDcnRPYmplY3RzIHsKKy1wdWIo c3VwZXIpIGZuIHByZV9tdXNsX3NlbGZfY29udGFpbmVkKCkgLT4gQ3J0T2JqZWN0cyB7CiAtICAg IG5ldygmWwogLSAgICAgICAgKExpbmtPdXRwdXRLaW5kOjpEeW5hbWljTm9QaWNFeGUsICZbImNy dDEubyIsICJjcnRpLm8iLCAiY3J0YmVnaW4ubyJdKSwKIC0gICAgICAgIChMaW5rT3V0cHV0S2lu ZDo6RHluYW1pY1BpY0V4ZSwgJlsiU2NydDEubyIsICJjcnRpLm8iLCAiY3J0YmVnaW5TLm8iXSks CkBAIC0zNSw3ICsxNyw3IEBAIGluZGV4IDUyYWMzNjIyZS4uZjM1ZTViOWQ4IDEwMDY0NAogLSAg ICBdKQogLX0KIC0KLS1wdWIoc3VwZXIpIGZuIHBvc3RfbXVzbF9mYWxsYmFjaygpIC0+IENydE9i amVjdHMgeworLXB1YihzdXBlcikgZm4gcG9zdF9tdXNsX3NlbGZfY29udGFpbmVkKCkgLT4gQ3J0 T2JqZWN0cyB7CiAtICAgIG5ldygmWwogLSAgICAgICAgKExpbmtPdXRwdXRLaW5kOjpEeW5hbWlj Tm9QaWNFeGUsICZbImNydGVuZC5vIiwgImNydG4ubyJdKSwKIC0gICAgICAgIChMaW5rT3V0cHV0 S2luZDo6RHluYW1pY1BpY0V4ZSwgJlsiY3J0ZW5kUy5vIiwgImNydG4ubyJdKSwKQEAgLTQ2LDI0 ICsyOCwyNCBAQCBpbmRleCA1MmFjMzYyMmUuLmYzNWU1YjlkOCAxMDA2NDQKIC0gICAgXSkKIC19 CiAtCi0gcHViKHN1cGVyKSBmbiBwcmVfbWluZ3dfZmFsbGJhY2soKSAtPiBDcnRPYmplY3RzIHsK KyBwdWIoc3VwZXIpIGZuIHByZV9taW5nd19zZWxmX2NvbnRhaW5lZCgpIC0+IENydE9iamVjdHMg ewogICAgICBuZXcoJlsKICAgICAgICAgIChMaW5rT3V0cHV0S2luZDo6RHluYW1pY05vUGljRXhl LCAmWyJjcnQyLm8iLCAicnNiZWdpbi5vIl0pLAogZGlmZiAtLWdpdCBhL2NvbXBpbGVyL3J1c3Rj X3RhcmdldC9zcmMvc3BlYy9saW51eF9tdXNsX2Jhc2UucnMgYi9jb21waWxlci9ydXN0Y190YXJn ZXQvc3JjL3NwZWMvbGludXhfbXVzbF9iYXNlLnJzCi1pbmRleCAyMDdhODdhYjAuLjg4ZjgwN2E1 OCAxMDA2NDQKK2luZGV4IDYxNTUzZTcxYi4uODhmODA3YTU4IDEwMDY0NAogLS0tIGEvY29tcGls ZXIvcnVzdGNfdGFyZ2V0L3NyYy9zcGVjL2xpbnV4X211c2xfYmFzZS5ycwogKysrIGIvY29tcGls ZXIvcnVzdGNfdGFyZ2V0L3NyYy9zcGVjL2xpbnV4X211c2xfYmFzZS5ycwogQEAgLTEsMTYgKzEs OSBAQAotLXVzZSBjcmF0ZTo6c3BlYzo6Y3J0X29iamVjdHM6OntzZWxmLCBDcnRPYmplY3RzRmFs bGJhY2t9OworLXVzZSBjcmF0ZTo6c3BlYzo6Y3J0X29iamVjdHM6OntzZWxmLCBMaW5rU2VsZkNv bnRhaW5lZERlZmF1bHR9OwogIHVzZSBjcmF0ZTo6c3BlYzo6VGFyZ2V0T3B0aW9uczsKICAKICBw dWIgZm4gb3B0cygpIC0+IFRhcmdldE9wdGlvbnMgewogICAgICBsZXQgbXV0IGJhc2UgPSBzdXBl cjo6bGludXhfYmFzZTo6b3B0cygpOwogIAogICAgICBiYXNlLmVudiA9ICJtdXNsIi5pbnRvKCk7 Ci0tICAgIGJhc2UucHJlX2xpbmtfb2JqZWN0c19mYWxsYmFjayA9IGNydF9vYmplY3RzOjpwcmVf bXVzbF9mYWxsYmFjaygpOwotLSAgICBiYXNlLnBvc3RfbGlua19vYmplY3RzX2ZhbGxiYWNrID0g Y3J0X29iamVjdHM6OnBvc3RfbXVzbF9mYWxsYmFjaygpOwotLSAgICBiYXNlLmNydF9vYmplY3Rz X2ZhbGxiYWNrID0gU29tZShDcnRPYmplY3RzRmFsbGJhY2s6Ok11c2wpOworLSAgICBiYXNlLnBy ZV9saW5rX29iamVjdHNfc2VsZl9jb250YWluZWQgPSBjcnRfb2JqZWN0czo6cHJlX211c2xfc2Vs Zl9jb250YWluZWQoKTsKKy0gICAgYmFzZS5wb3N0X2xpbmtfb2JqZWN0c19zZWxmX2NvbnRhaW5l ZCA9IGNydF9vYmplY3RzOjpwb3N0X211c2xfc2VsZl9jb250YWluZWQoKTsKKy0gICAgYmFzZS5s aW5rX3NlbGZfY29udGFpbmVkID0gTGlua1NlbGZDb250YWluZWREZWZhdWx0OjpNdXNsOwogLQog LSAgICAvLyBUaGVzZSB0YXJnZXRzIHN0YXRpY2FsbHkgbGluayBsaWJjIGJ5IGRlZmF1bHQKIC0g ICAgYmFzZS5jcnRfc3RhdGljX2RlZmF1bHQgPSB0cnVlOwpAQCAtNzEsMTEgKzUzLDExIEBAIGlu ZGV4IDIwN2E4N2FiMC4uODhmODA3YTU4IDEwMDY0NAogICAgICBiYXNlCiAgfQogZGlmZiAtLWdp dCBhL2NvbmZpZy50b21sLmV4YW1wbGUgYi9jb25maWcudG9tbC5leGFtcGxlCi1pbmRleCBiMzI4 NDA1MGYuLjYyYWMwN2Y4NyAxMDA2NDQKK2luZGV4IGNhNTRjYmQyZC4uYmVlYzliYjA0IDEwMDY0 NAogLS0tIGEvY29uZmlnLnRvbWwuZXhhbXBsZQogKysrIGIvY29uZmlnLnRvbWwuZXhhbXBsZQot QEAgLTUyMywxNCArNTIzLDYgQEAgY2hhbmdlbG9nLXNlZW4gPSAyCi0gIyBzdXBwbGVtZW50YXJ5 IGJ1aWxkIGluZm9ybWF0aW9uLCBsaWtlIGRpc3Ryby1zcGVjaWZpYyBwYWNrYWdlIHZlcnNpb25z LgorQEAgLTU0MCwxNCArNTQwLDYgQEAgY2hhbmdlbG9nLXNlZW4gPSAyCisgIyBiZWhhdmlvciAt LSB0aGlzIG1heSBsZWFkIHRvIG1pc2NvbXBpbGF0aW9ucyBvciBvdGhlciBidWdzLgogICNkZXNj cmlwdGlvbiA9IDxub25lPiAoc3RyaW5nKQogIAogLSMgVGhlIHJvb3QgbG9jYXRpb24gb2YgdGhl IG11c2wgaW5zdGFsbGF0aW9uIGRpcmVjdG9yeS4gVGhlIGxpYnJhcnkgZGlyZWN0b3J5CkBAIC05 MCwxMCArNzIsMTAgQEAgaW5kZXggYjMyODQwNTBmLi42MmFjMDdmODcgMTAwNjQ0CiAgIyBwbGF0 Zm9ybXMgdG8gZW5zdXJlIHRoYXQgdGhlIGNvbXBpbGVyIGlzIHVzYWJsZSBieSBkZWZhdWx0IGZy b20gdGhlIGJ1aWxkCiAgIyBkaXJlY3RvcnkgKGFzIGl0IGxpbmtzIHRvIGEgbnVtYmVyIG9mIGR5 bmFtaWMgbGlicmFyaWVzKS4gVGhpcyBtYXkgbm90IGJlCiBkaWZmIC0tZ2l0IGEvc3JjL2Jvb3Rz dHJhcC9jY19kZXRlY3QucnMgYi9zcmMvYm9vdHN0cmFwL2NjX2RldGVjdC5ycwotaW5kZXggZGNh NzgyYzI5Li44ZWIzNWVhNDMgMTAwNjQ0CitpbmRleCA3MTI4ZDU0MmEuLjY2ODI0NWYzYyAxMDA2 NDQKIC0tLSBhL3NyYy9ib290c3RyYXAvY2NfZGV0ZWN0LnJzCiArKysgYi9zcmMvYm9vdHN0cmFw L2NjX2RldGVjdC5ycwotQEAgLTk3LDcgKzk3LDcgQEAgcHViIGZuIGZpbmQoYnVpbGQ6ICZtdXQg QnVpbGQpIHsKK0BAIC0xMDEsNyArMTAxLDcgQEAgcHViIGZuIGZpbmQoYnVpbGQ6ICZtdXQgQnVp bGQpIHsKICAgICAgICAgIGlmIGxldCBTb21lKGNjKSA9IGNvbmZpZy5hbmRfdGhlbih8Y3wgYy5j Yy5hc19yZWYoKSkgewogICAgICAgICAgICAgIGNmZy5jb21waWxlcihjYyk7CiAgICAgICAgICB9 IGVsc2UgewpAQCAtMTAyLDcgKzg0LDcgQEAgaW5kZXggZGNhNzgyYzI5Li44ZWIzNWVhNDMgMTAw NjQ0CiAgICAgICAgICB9CiAgCiAgICAgICAgICBsZXQgY29tcGlsZXIgPSBjZmcuZ2V0X2NvbXBp bGVyKCk7Ci1AQCAtMTI1LDcgKzEyNSw3IEBAIHB1YiBmbiBmaW5kKGJ1aWxkOiAmbXV0IEJ1aWxk KSB7CitAQCAtMTIyLDcgKzEyMiw3IEBAIHB1YiBmbiBmaW5kKGJ1aWxkOiAmbXV0IEJ1aWxkKSB7 CiAgICAgICAgICAgICAgY2ZnLmNvbXBpbGVyKGN4eCk7CiAgICAgICAgICAgICAgdHJ1ZQogICAg ICAgICAgfSBlbHNlIGlmIGJ1aWxkLmhvc3RzLmNvbnRhaW5zKCZ0YXJnZXQpIHx8IGJ1aWxkLmJ1 aWxkID09IHRhcmdldCB7CkBAIC0xMTEsNyArOTMsNyBAQCBpbmRleCBkY2E3ODJjMjkuLjhlYjM1 ZWE0MyAxMDA2NDQKICAgICAgICAgICAgICB0cnVlCiAgICAgICAgICB9IGVsc2UgewogICAgICAg ICAgICAgIC8vIFVzZSBhbiBhdXRvLWRldGVjdGVkIGNvbXBpbGVyIChvciBvbmUgY29uZmlndXJl ZCB2aWEgYENYWF90YXJnZXRfdHJpcGxlYCBlbnYgdmFycykuCi1AQCAtMTYxLDcgKzE2MSw2IEBA IGZuIHNldF9jb21waWxlcigKK0BAIC0xNTgsNyArMTU4LDYgQEAgZm4gc2V0X2NvbXBpbGVyKAog ICAgICBjb21waWxlcjogTGFuZ3VhZ2UsCiAgICAgIHRhcmdldDogVGFyZ2V0U2VsZWN0aW9uLAog ICAgICBjb25maWc6IE9wdGlvbjwmVGFyZ2V0PiwKQEAgLTExOSw3ICsxMDEsNyBAQCBpbmRleCBk Y2E3ODJjMjkuLjhlYjM1ZWE0MyAxMDA2NDQKICApIHsKICAgICAgbWF0Y2ggJip0YXJnZXQudHJp cGxlIHsKICAgICAgICAgIC8vIFdoZW4gY29tcGlsaW5nIGZvciBhbmRyb2lkIHdlIG1heSBoYXZl IHRoZSBOREsgY29uZmlndXJlZCBpbiB0aGUKLUBAIC0yMDQsMjYgKzIwMyw2IEBAIGZuIHNldF9j b21waWxlcigKK0BAIC0xOTQsMjYgKzE5Myw2IEBAIGZuIHNldF9jb21waWxlcigKICAgICAgICAg ICAgICB9CiAgICAgICAgICB9CiAgCkBAIC0xNDcsMTAgKzEyOSwxMCBAQCBpbmRleCBkY2E3ODJj MjkuLjhlYjM1ZWE0MyAxMDA2NDQKICAgICAgfQogIH0KIGRpZmYgLS1naXQgYS9zcmMvYm9vdHN0 cmFwL2NvbXBpbGUucnMgYi9zcmMvYm9vdHN0cmFwL2NvbXBpbGUucnMKLWluZGV4IGI0ODA3ZDFh Yi4uY2U0ODNiZjZiIDEwMDY0NAoraW5kZXggMGRlZWQzZjk5Li4wYmRkYWM1ZDEgMTAwNjQ0CiAt LS0gYS9zcmMvYm9vdHN0cmFwL2NvbXBpbGUucnMKICsrKyBiL3NyYy9ib290c3RyYXAvY29tcGls ZS5ycwotQEAgLTIwMCwzOSArMjAwLDcgQEAgZm4gY29weV9zZWxmX2NvbnRhaW5lZF9vYmplY3Rz KAorQEAgLTIyOCwzOSArMjI4LDcgQEAgZm4gY29weV9zZWxmX2NvbnRhaW5lZF9vYmplY3RzKAog ICAgICBsZXQgbXV0IHRhcmdldF9kZXBzID0gdmVjIVtdOwogIAogICAgICAvLyBDb3BpZXMgdGhl IGxpYmMgYW5kIENSVCBvYmplY3RzLgpAQCAtMTkxLDcgKzE3Myw3IEBAIGluZGV4IGI0ODA3ZDFh Yi4uY2U0ODNiZjZiIDEwMDY0NAogICAgICAgICAgbGV0IHNyY2RpciA9IGJ1aWxkZXIKICAgICAg ICAgICAgICAud2FzaV9yb290KHRhcmdldCkKICAgICAgICAgICAgICAudW53cmFwX29yX2Vsc2Uo fHwgewotQEAgLTMxNiwxNSArMjg0LDYgQEAgcHViIGZuIHN0ZF9jYXJnbyhidWlsZGVyOiAmQnVp bGRlcjwnXz4sIHRhcmdldDogVGFyZ2V0U2VsZWN0aW9uLCBzdGFnZTogdTMyLCBjYXIKK0BAIC0z NDQsMTUgKzMxMiw2IEBAIHB1YiBmbiBzdGRfY2FyZ28oYnVpbGRlcjogJkJ1aWxkZXI8J18+LCB0 YXJnZXQ6IFRhcmdldFNlbGVjdGlvbiwgc3RhZ2U6IHUzMiwgY2FyCiAgICAgICAgICAgICAgLmFy ZygiLS1tYW5pZmVzdC1wYXRoIikKICAgICAgICAgICAgICAuYXJnKGJ1aWxkZXIuc3JjLmpvaW4o ImxpYnJhcnkvdGVzdC9DYXJnby50b21sIikpOwogIApAQCAtMjA4LDEwICsxOTAsMTAgQEAgaW5k ZXggYjQ4MDdkMWFiLi5jZTQ4M2JmNmIgMTAwNjQ0CiAgICAgICAgICAgICAgaWYgbGV0IFNvbWUo cCkgPSBidWlsZGVyLndhc2lfcm9vdCh0YXJnZXQpIHsKICAgICAgICAgICAgICAgICAgbGV0IHJv b3QgPSBmb3JtYXQhKCJuYXRpdmU9e30vbGliL3dhc20zMi13YXNpIiwgcC50b19zdHIoKS51bndy YXAoKSk7CiBkaWZmIC0tZ2l0IGEvc3JjL2Jvb3RzdHJhcC9jb25maWcucnMgYi9zcmMvYm9vdHN0 cmFwL2NvbmZpZy5ycwotaW5kZXggMTQ2MDc3NDE5Li4xOGE3NjQ2ODkgMTAwNjQ0CitpbmRleCBk OGMxNWM3NmUuLjUzZjk1ZTQ5YiAxMDA2NDQKIC0tLSBhL3NyYy9ib290c3RyYXAvY29uZmlnLnJz CiArKysgYi9zcmMvYm9vdHN0cmFwL2NvbmZpZy5ycwotQEAgLTE4Niw3ICsxODYsNiBAQCBwdWIg c3RydWN0IENvbmZpZyB7CitAQCAtMjAwLDcgKzIwMCw2IEBAIHB1YiBzdHJ1Y3QgQ29uZmlnIHsK ICAgICAgcHViIG1pc3NpbmdfdG9vbHM6IGJvb2wsCiAgCiAgICAgIC8vIEZhbGxiYWNrIG11c2wt cm9vdCBmb3IgYWxsIHRhcmdldHMKQEAgLTIxOSw3ICsyMDEsNyBAQCBpbmRleCAxNDYwNzc0MTku LjE4YTc2NDY4OSAxMDA2NDQKICAgICAgcHViIHByZWZpeDogT3B0aW9uPFBhdGhCdWY+LAogICAg ICBwdWIgc3lzY29uZmRpcjogT3B0aW9uPFBhdGhCdWY+LAogICAgICBwdWIgZGF0YWRpcjogT3B0 aW9uPFBhdGhCdWY+LAotQEAgLTQwMCw4ICszOTksNiBAQCBwdWIgc3RydWN0IFRhcmdldCB7CitA QCAtNDQwLDggKzQzOSw2IEBAIHB1YiBzdHJ1Y3QgVGFyZ2V0IHsKICAgICAgcHViIHNhbml0aXpl cnM6IE9wdGlvbjxib29sPiwKICAgICAgcHViIHByb2ZpbGVyOiBPcHRpb248Ym9vbD4sCiAgICAg IHB1YiBjcnRfc3RhdGljOiBPcHRpb248Ym9vbD4sCkBAIC0yMjgsNyArMjEwLDcgQEAgaW5kZXgg MTQ2MDc3NDE5Li4xOGE3NjQ2ODkgMTAwNjQ0CiAgICAgIHB1YiB3YXNpX3Jvb3Q6IE9wdGlvbjxQ YXRoQnVmPiwKICAgICAgcHViIHFlbXVfcm9vdGZzOiBPcHRpb248UGF0aEJ1Zj4sCiAgICAgIHB1 YiBub19zdGQ6IGJvb2wsCi1AQCAtNjg5LDcgKzY4Niw2IEBAIGRlZmluZV9jb25maWchIHsKK0BA IC03MzQsNyArNzMxLDYgQEAgZGVmaW5lX2NvbmZpZyEgewogICAgICAgICAgZGVmYXVsdF9saW5r ZXI6IE9wdGlvbjxTdHJpbmc+ID0gImRlZmF1bHQtbGlua2VyIiwKICAgICAgICAgIGNoYW5uZWw6 IE9wdGlvbjxTdHJpbmc+ID0gImNoYW5uZWwiLAogICAgICAgICAgZGVzY3JpcHRpb246IE9wdGlv bjxTdHJpbmc+ID0gImRlc2NyaXB0aW9uIiwKQEAgLTIzNiw3ICsyMTgsNyBAQCBpbmRleCAxNDYw Nzc0MTkuLjE4YTc2NDY4OSAxMDA2NDQKICAgICAgICAgIHJwYXRoOiBPcHRpb248Ym9vbD4gPSAi cnBhdGgiLAogICAgICAgICAgdmVyYm9zZV90ZXN0czogT3B0aW9uPGJvb2w+ID0gInZlcmJvc2Ut dGVzdHMiLAogICAgICAgICAgb3B0aW1pemVfdGVzdHM6IE9wdGlvbjxib29sPiA9ICJvcHRpbWl6 ZS10ZXN0cyIsCi1AQCAtNzM0LDggKzczMCw2IEBAIGRlZmluZV9jb25maWchIHsKK0BAIC03ODEs OCArNzc3LDYgQEAgZGVmaW5lX2NvbmZpZyEgewogICAgICAgICAgc2FuaXRpemVyczogT3B0aW9u PGJvb2w+ID0gInNhbml0aXplcnMiLAogICAgICAgICAgcHJvZmlsZXI6IE9wdGlvbjxib29sPiA9 ICJwcm9maWxlciIsCiAgICAgICAgICBjcnRfc3RhdGljOiBPcHRpb248Ym9vbD4gPSAiY3J0LXN0 YXRpYyIsCkBAIC0yNDUsNyArMjI3LDcgQEAgaW5kZXggMTQ2MDc3NDE5Li4xOGE3NjQ2ODkgMTAw NjQ0CiAgICAgICAgICB3YXNpX3Jvb3Q6IE9wdGlvbjxTdHJpbmc+ID0gIndhc2ktcm9vdCIsCiAg ICAgICAgICBxZW11X3Jvb3RmczogT3B0aW9uPFN0cmluZz4gPSAicWVtdS1yb290ZnMiLAogICAg ICAgICAgbm9fc3RkOiBPcHRpb248Ym9vbD4gPSAibm8tc3RkIiwKLUBAIC0xMTA3LDcgKzExMDEs NiBAQCBpbXBsIENvbmZpZyB7CitAQCAtMTE4Nyw3ICsxMTgxLDYgQEAgaW1wbCBDb25maWcgewog ICAgICAgICAgICAgIHNldCgmbXV0IGNvbmZpZy5sbHZtX3Rvb2xzX2VuYWJsZWQsIHJ1c3QubGx2 bV90b29scyk7CiAgICAgICAgICAgICAgY29uZmlnLnJ1c3RjX3BhcmFsbGVsID0gcnVzdC5wYXJh bGxlbF9jb21waWxlci51bndyYXBfb3IoZmFsc2UpOwogICAgICAgICAgICAgIGNvbmZpZy5ydXN0 Y19kZWZhdWx0X2xpbmtlciA9IHJ1c3QuZGVmYXVsdF9saW5rZXI7CkBAIC0yNTMsNyArMjM1LDcg QEAgaW5kZXggMTQ2MDc3NDE5Li4xOGE3NjQ2ODkgMTAwNjQ0CiAgICAgICAgICAgICAgY29uZmln LnNhdmVfdG9vbHN0YXRlcyA9IHJ1c3Quc2F2ZV90b29sc3RhdGVzLm1hcChQYXRoQnVmOjpmcm9t KTsKICAgICAgICAgICAgICBzZXQoJm11dCBjb25maWcuZGVueV93YXJuaW5ncywgZmxhZ3MuZGVu eV93YXJuaW5ncy5vcihydXN0LmRlbnlfd2FybmluZ3MpKTsKICAgICAgICAgICAgICBzZXQoJm11 dCBjb25maWcuYmFja3RyYWNlX29uX2ljZSwgcnVzdC5iYWNrdHJhY2Vfb25faWNlKTsKLUBAIC0x MTY0LDggKzExNTcsNiBAQCBpbXBsIENvbmZpZyB7CitAQCAtMTI1MSw4ICsxMjQ0LDYgQEAgaW1w bCBDb25maWcgewogICAgICAgICAgICAgICAgICB0YXJnZXQucmFubGliID0gY2ZnLnJhbmxpYi5t YXAoUGF0aEJ1Zjo6ZnJvbSk7CiAgICAgICAgICAgICAgICAgIHRhcmdldC5saW5rZXIgPSBjZmcu bGlua2VyLm1hcChQYXRoQnVmOjpmcm9tKTsKICAgICAgICAgICAgICAgICAgdGFyZ2V0LmNydF9z dGF0aWMgPSBjZmcuY3J0X3N0YXRpYzsKQEAgLTI2MywxMCArMjQ1LDEwIEBAIGluZGV4IDE0NjA3 NzQxOS4uMThhNzY0Njg5IDEwMDY0NAogICAgICAgICAgICAgICAgICB0YXJnZXQucWVtdV9yb290 ZnMgPSBjZmcucWVtdV9yb290ZnMubWFwKFBhdGhCdWY6OmZyb20pOwogICAgICAgICAgICAgICAg ICB0YXJnZXQuc2FuaXRpemVycyA9IGNmZy5zYW5pdGl6ZXJzOwogZGlmZiAtLWdpdCBhL3NyYy9i b290c3RyYXAvY29uZmlndXJlLnB5IGIvc3JjL2Jvb3RzdHJhcC9jb25maWd1cmUucHkKLWluZGV4 IDJmYzAzNjA4Mi4uOTE3MzdlMGVhIDEwMDc1NQoraW5kZXggNmIxMzlkZWNiLi5hMmUxOWI4ZjQg MTAwNzU1CiAtLS0gYS9zcmMvYm9vdHN0cmFwL2NvbmZpZ3VyZS5weQogKysrIGIvc3JjL2Jvb3Rz dHJhcC9jb25maWd1cmUucHkKLUBAIC0xMTQsMzQgKzExNCw2IEBAIHYoImFhcmNoNjQtbGludXgt YW5kcm9pZC1uZGsiLCAidGFyZ2V0LmFhcmNoNjQtbGludXgtYW5kcm9pZC5hbmRyb2lkLW5kayIs CitAQCAtMTEyLDM0ICsxMTIsNiBAQCB2KCJhYXJjaDY0LWxpbnV4LWFuZHJvaWQtbmRrIiwgInRh cmdldC5hYXJjaDY0LWxpbnV4LWFuZHJvaWQuYW5kcm9pZC1uZGsiLAogICAgImFhcmNoNjQtbGlu dXgtYW5kcm9pZCBOREsgc3RhbmRhbG9uZSBwYXRoIikKICB2KCJ4ODZfNjQtbGludXgtYW5kcm9p ZC1uZGsiLCAidGFyZ2V0Lng4Nl82NC1saW51eC1hbmRyb2lkLmFuZHJvaWQtbmRrIiwKICAgICJ4 ODZfNjQtbGludXgtYW5kcm9pZCBOREsgc3RhbmRhbG9uZSBwYXRoIikKQEAgLTMwMiwxMCArMjg0 LDEwIEBAIGluZGV4IDJmYzAzNjA4Mi4uOTE3MzdlMGVhIDEwMDc1NQogICAgInJvb3RmcyBpbiBx ZW11IHRlc3RpbmcsIHlvdSBwcm9iYWJseSBkb24ndCB3YW50IHRvIHVzZSB0aGlzIikKICB2KCJx ZW11LWFhcmNoNjQtcm9vdGZzIiwgInRhcmdldC5hYXJjaDY0LXVua25vd24tbGludXgtZ251LnFl bXUtcm9vdGZzIiwKIGRpZmYgLS1naXQgYS9zcmMvYm9vdHN0cmFwL2xpYi5ycyBiL3NyYy9ib290 c3RyYXAvbGliLnJzCi1pbmRleCBiNjAzYWU5MGEuLjBhNzAxMmRiZCAxMDA2NDQKK2luZGV4IDNl ZDUzNDUyMy4uYzdjN2E3NWYwIDEwMDY0NAogLS0tIGEvc3JjL2Jvb3RzdHJhcC9saWIucnMKICsr KyBiL3NyYy9ib290c3RyYXAvbGliLnJzCi1AQCAtMTE1MywyNSArMTE1Myw2IEBAIGltcGwgQnVp bGQgeworQEAgLTExODEsMjUgKzExODEsNiBAQCBpbXBsIEJ1aWxkIHsKICAgICAgICAgIH0KICAg ICAgfQogIApAQCAtMzMyLDcgKzMxNCw3IEBAIGluZGV4IGI2MDNhZTkwYS4uMGE3MDEyZGJkIDEw MDY0NAogICAgICBmbiB3YXNpX3Jvb3QoJnNlbGYsIHRhcmdldDogVGFyZ2V0U2VsZWN0aW9uKSAt PiBPcHRpb248JlBhdGg+IHsKICAgICAgICAgIHNlbGYuY29uZmlnLnRhcmdldF9jb25maWcuZ2V0 KCZ0YXJnZXQpLmFuZF90aGVuKHx0fCB0Lndhc2lfcm9vdC5hc19yZWYoKSkubWFwKHxwfCAmKipw KQogZGlmZiAtLWdpdCBhL3NyYy9ib290c3RyYXAvc2FuaXR5LnJzIGIvc3JjL2Jvb3RzdHJhcC9z YW5pdHkucnMKLWluZGV4IDY0YzVkZDdhZS4uYjhmOTEwNGVhIDEwMDY0NAoraW5kZXggOGE0MGIw ZjY0Li41OWUxMWQzMDQgMTAwNjQ0CiAtLS0gYS9zcmMvYm9vdHN0cmFwL3Nhbml0eS5ycwogKysr IGIvc3JjL2Jvb3RzdHJhcC9zYW5pdHkucnMKIEBAIC0xMSw3ICsxMSw2IEBACkBAIC0zNDMsNyAr MzI1LDcgQEAgaW5kZXggNjRjNWRkN2FlLi5iOGY5MTA0ZWEgMTAwNjQ0CiAgdXNlIHN0ZDo6cGF0 aDo6UGF0aEJ1ZjsKICB1c2Ugc3RkOjpwcm9jZXNzOjpDb21tYW5kOwogIAotQEAgLTE5MCwyOCAr MTg5LDYgQEAgdGhhbiBidWlsZGluZyBpdC4KK0BAIC0yMDUsMjggKzIwNCw2IEBAIHRoYW4gYnVp bGRpbmcgaXQuCiAgICAgICAgICAgICAgfQogICAgICAgICAgfQogIApAQCAtMzY5LDkgKzM1MSw2 IEBAIGluZGV4IDY0YzVkZDdhZS4uYjhmOTEwNGVhIDEwMDY0NAogLSAgICAgICAgICAgIH0KIC0g ICAgICAgIH0KIC0KLSAgICAgICAgIGlmIG5lZWRfY21ha2UgJiYgdGFyZ2V0LmNvbnRhaW5zKCJt c3ZjIikgewotICAgICAgICAgICAgIC8vIFRoZXJlIGFyZSB0aHJlZSBidWlsZHMgb2YgY21ha2Ug b24gd2luZG93czogTVNWQywgTWluR1csIGFuZAotICAgICAgICAgICAgIC8vIEN5Z3dpbi4gVGhl IEN5Z3dpbiBidWlsZCBkb2VzIG5vdCBoYXZlIGdlbmVyYXRvcnMgZm9yIFZpc3VhbAotLS0gCi0y LjM3LjIKLQorICAgICAgICAgLy8gU29tZSBlbnZpcm9ubWVudHMgZG9uJ3Qgd2FudCBvciBuZWVk IHRoZXNlIHRvb2xzLCBzdWNoIGFzIHdoZW4gdGVzdGluZyBNaXJpLgorICAgICAgICAgLy8gRklY TUU6IGl0IHdvdWxkIGJlIGJldHRlciB0byByZWZhY3RvciB0aGlzIGNvZGUgdG8gc3BsaXQgbmVj ZXNzYXJ5IHNldHVwIGZyb20gcHVyZSBzYW5pdHkKKyAgICAgICAgIC8vIGNoZWNrcywgYW5kIGhh dmUgYSByZWd1bGFyIGZsYWcgZm9yIHNraXBwaW5nIHRoZSBsYXR0ZXIuIEFsc28gc2VlCmRpZmYg LS1naXQgYS9zcmNwa2dzL3J1c3QvcGF0Y2hlcy8wMDExLVVzZS1FTEZ2Mi1BQkktb24tYWxsLXBv d2VycGM2NC10YXJnZXRzLnBhdGNoIGIvc3JjcGtncy9ydXN0L3BhdGNoZXMvMDAxMS1Vc2UtRUxG djItQUJJLW9uLWFsbC1wb3dlcnBjNjQtdGFyZ2V0cy5wYXRjaAppbmRleCAzNDdlZTYxMzk4M2Qu LjM4MTNjYzBkOTdjNyAxMDA2NDQKLS0tIGEvc3JjcGtncy9ydXN0L3BhdGNoZXMvMDAxMS1Vc2Ut RUxGdjItQUJJLW9uLWFsbC1wb3dlcnBjNjQtdGFyZ2V0cy5wYXRjaAorKysgYi9zcmNwa2dzL3J1 c3QvcGF0Y2hlcy8wMDExLVVzZS1FTEZ2Mi1BQkktb24tYWxsLXBvd2VycGM2NC10YXJnZXRzLnBh dGNoCkBAIC0xLDE5ICsxLDUgQEAKLUZyb20gZGU5M2FiZThhMGQ5ZGM3ODc4YTQ4ZjYxYjllM2Fl NGE5MjMwMjBmNiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IHE2NiA8ZGFuaWVsQG9j dGFmb3JnZS5vcmc+Ci1EYXRlOiBTdW4sIDMgTWF5IDIwMjAgMTg6MDg6MDkgKzAyMDAKLVN1Ympl Y3Q6IFtQQVRDSCAxMS8xNV0gVXNlIEVMRnYyIEFCSSBvbiBhbGwgcG93ZXJwYzY0IHRhcmdldHMK LQotVGhpcyBwYXRjaGVzIGxpYnJ1c3RjX3RhcmdldCBzbyB0aGF0IEVMRnYyIGlzIHVzZWQgZXZl cnl3aGVyZSwgbWF0Y2hpbmcgb3VyCi1MTFZNLiBXaGlsZSB0aGlzIGlzIG5vdCBwZXJmZWN0IChp dCBkb2VzIG5vdCBhbGxvdyBydXN0YyB0byBjb21waWxlIGxlZ2FjeQotYmluYXJpZXMpLCBydXN0 YyBuZXZlciByZXF1ZXN0cyBzcGVjaWZpYyBBQkkgZnJvbSBsbHZtIGluIHRoZSBmaXJzdCBwbGFj ZSwKLXNvIGF0IGxlYXN0IG1hdGNoIHRoZSBlbnZpcm9ubWVudCB3ZSBoYXZlLgotLS0tCi0gY29t cGlsZXIvcnVzdGNfdGFyZ2V0L3NyYy9hYmkvY2FsbC9wb3dlcnBjNjQucnMgICAgICAgICAgfCA5 ICstLS0tLS0tLQotIC4uLi9ydXN0Y190YXJnZXQvc3JjL3NwZWMvcG93ZXJwYzY0X3Vua25vd25f bGludXhfZ251LnJzIHwgNiArLS0tLS0KLSAyIGZpbGVzIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygr KSwgMTMgZGVsZXRpb25zKC0pCi0KIGRpZmYgLS1naXQgYS9jb21waWxlci9ydXN0Y190YXJnZXQv c3JjL2FiaS9jYWxsL3Bvd2VycGM2NC5ycyBiL2NvbXBpbGVyL3J1c3RjX3RhcmdldC9zcmMvYWJp L2NhbGwvcG93ZXJwYzY0LnJzCi1pbmRleCBjMjJlZjljOGYuLjkzMjE3MmIyZiAxMDA2NDQKK2lu ZGV4IDM1OWJiOGZjMC4uNDE0YzcwY2VhIDEwMDY0NAogLS0tIGEvY29tcGlsZXIvcnVzdGNfdGFy Z2V0L3NyYy9hYmkvY2FsbC9wb3dlcnBjNjQucnMKICsrKyBiL2NvbXBpbGVyL3J1c3RjX3Rhcmdl dC9zcmMvYWJpL2NhbGwvcG93ZXJwYzY0LnJzCiBAQCAtMTE5LDE0ICsxMTksNyBAQCB3aGVyZQpA QCAtMzIsMjggKzE4LDMgQEAgaW5kZXggYzIyZWY5YzhmLi45MzIxNzJiMmYgMTAwNjQ0CiAgCiAg ICAgIGlmICFmbl9hYmkucmV0LmlzX2lnbm9yZSgpIHsKICAgICAgICAgIGNsYXNzaWZ5X3JldChj eCwgJm11dCBmbl9hYmkucmV0LCBhYmkpOwotZGlmZiAtLWdpdCBhL2NvbXBpbGVyL3J1c3RjX3Rh cmdldC9zcmMvc3BlYy9wb3dlcnBjNjRfdW5rbm93bl9saW51eF9nbnUucnMgYi9jb21waWxlci9y dXN0Y190YXJnZXQvc3JjL3NwZWMvcG93ZXJwYzY0X3Vua25vd25fbGludXhfZ251LnJzCi1pbmRl eCAyNGQ1ZDE4N2UuLmFhNTk0YjAyZSAxMDA2NDQKLS0tLSBhL2NvbXBpbGVyL3J1c3RjX3Rhcmdl dC9zcmMvc3BlYy9wb3dlcnBjNjRfdW5rbm93bl9saW51eF9nbnUucnMKLSsrKyBiL2NvbXBpbGVy L3J1c3RjX3RhcmdldC9zcmMvc3BlYy9wb3dlcnBjNjRfdW5rbm93bl9saW51eF9nbnUucnMKLUBA IC0xLDUgKzEsNSBAQAotIHVzZSBjcmF0ZTo6YWJpOjpFbmRpYW47Ci0tdXNlIGNyYXRlOjpzcGVj Ojp7TGlua2VyRmxhdm9yLCBSZWxyb0xldmVsLCBUYXJnZXQsIFRhcmdldE9wdGlvbnN9OwotK3Vz ZSBjcmF0ZTo6c3BlYzo6e0xpbmtlckZsYXZvciwgVGFyZ2V0LCBUYXJnZXRPcHRpb25zfTsKLSAK LSBwdWIgZm4gdGFyZ2V0KCkgLT4gVGFyZ2V0IHsKLSAgICAgbGV0IG11dCBiYXNlID0gc3VwZXI6 OmxpbnV4X2dudV9iYXNlOjpvcHRzKCk7Ci1AQCAtNywxMCArNyw2IEBAIHB1YiBmbiB0YXJnZXQo KSAtPiBUYXJnZXQgewotICAgICBiYXNlLnByZV9saW5rX2FyZ3MuZW50cnkoTGlua2VyRmxhdm9y OjpHY2MpLm9yX2RlZmF1bHQoKS5wdXNoKCItbTY0Ii5pbnRvKCkpOwotICAgICBiYXNlLm1heF9h dG9taWNfd2lkdGggPSBTb21lKDY0KTsKLSAKLS0gICAgLy8gbGQuc28gaW4gYXQgbGVhc3QgUkhF TDYgb24gcHBjNjQgaGFzIGEgYnVnIHJlbGF0ZWQgdG8gQklORF9OT1csIHNvIG9ubHkgZW5hYmxl IHBhcnRpYWwgUkVMUk8KLS0gICAgLy8gZm9yIG5vdy4gaHR0cHM6Ly9naXRodWIuY29tL3J1c3Qt bGFuZy9ydXN0L3B1bGwvNDMxNzAjaXNzdWVjb21tZW50LTMxNTQxMTQ3NAotLSAgICBiYXNlLnJl bHJvX2xldmVsID0gUmVscm9MZXZlbDo6UGFydGlhbDsKLS0KLSAgICAgVGFyZ2V0IHsKLSAgICAg ICAgIGxsdm1fdGFyZ2V0OiAicG93ZXJwYzY0LXVua25vd24tbGludXgtZ251Ii5pbnRvKCksCi0g ICAgICAgICBwb2ludGVyX3dpZHRoOiA2NCwKLS0tIAotMi4zNy4yCi0KZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MvcnVzdC9wYXRjaGVzLzAwMTItYm9vdHN0cmFwLURpc2FibGUtaW5pdGlhbC1leGVjLVRM Uy1tb2RlbC1vbi1wb3dlcnBjLnBhdGNoIGIvc3JjcGtncy9ydXN0L3BhdGNoZXMvMDAxMi1ib290 c3RyYXAtRGlzYWJsZS1pbml0aWFsLWV4ZWMtVExTLW1vZGVsLW9uLXBvd2VycGMucGF0Y2gKaW5k ZXggN2IxYmE0NmIxZjJiLi4xY2E4ODcxZDAwNjYgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvcnVzdC9w YXRjaGVzLzAwMTItYm9vdHN0cmFwLURpc2FibGUtaW5pdGlhbC1leGVjLVRMUy1tb2RlbC1vbi1w b3dlcnBjLnBhdGNoCisrKyBiL3NyY3BrZ3MvcnVzdC9wYXRjaGVzLzAwMTItYm9vdHN0cmFwLURp c2FibGUtaW5pdGlhbC1leGVjLVRMUy1tb2RlbC1vbi1wb3dlcnBjLnBhdGNoCkBAIC0xLDI2ICsx LDEzIEBACi1Gcm9tIDRiODAzYjIxMWY3NjVmNmM2YjE4MjIzZTIzNjcwZGJmNzU0YTk4MGYgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBKb2huIFBhdWwgQWRyaWFuIEdsYXViaXR6IDxn bGF1Yml0ekBwaHlzaWsuZnUtYmVybGluLmRlPgotRGF0ZTogU2F0LCAyOSBNYXkgMjAyMSAxMjoz ODo0NiArMDAwMAotU3ViamVjdDogW1BBVENIIDEyLzE1XSBib290c3RyYXA6IERpc2FibGUgaW5p dGlhbC1leGVjIFRMUyBtb2RlbCBvbiBwb3dlcnBjCi0KLUZpeGVzICM4MTMzNC4KLS0tLQotIHNy Yy9ib290c3RyYXAvYnVpbGRlci5ycyB8IDIgKy0KLSAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRp b24oKyksIDEgZGVsZXRpb24oLSkKLQogZGlmZiAtLWdpdCBhL3NyYy9ib290c3RyYXAvYnVpbGRl ci5ycyBiL3NyYy9ib290c3RyYXAvYnVpbGRlci5ycwotaW5kZXggNTU0ZGQ0MTg4Li42YTAyYTIy NWMgMTAwNjQ0CitpbmRleCA4YjE0NGYxNDYuLmFjZmE3Y2YwNCAxMDA2NDQKIC0tLSBhL3NyYy9i b290c3RyYXAvYnVpbGRlci5ycwogKysrIGIvc3JjL2Jvb3RzdHJhcC9idWlsZGVyLnJzCi1AQCAt MTg0NCw3ICsxODQ0LDcgQEAgaW1wbDwnYT4gQnVpbGRlcjwnYT4geworQEAgLTE4NTYsNyArMTg1 Niw3IEBAIGltcGw8J2E+IEJ1aWxkZXI8J2E+IHsKICAgICAgICAgIC8vIGVmZmljaWVudCBpbml0 aWFsLWV4ZWMgVExTIG1vZGVsLiBUaGlzIGRvZXNuJ3Qgd29yayB3aXRoIGBkbG9wZW5gLAogICAg ICAgICAgLy8gc28gd2UgY2FuJ3QgdXNlIGl0IGJ5IGRlZmF1bHQgaW4gZ2VuZXJhbCwgYnV0IHdl IGNhbiB1c2UgaXQgZm9yIHRvb2xzCiAgICAgICAgICAvLyBhbmQgb3VyIG93biBpbnRlcm5hbCBs aWJyYXJpZXMuCiAtICAgICAgICBpZiAhbW9kZS5tdXN0X3N1cHBvcnRfZGxvcGVuKCkgJiYgIXRh cmdldC50cmlwbGUuc3RhcnRzX3dpdGgoInBvd2VycGMtIikgewogKyAgICAgICAgaWYgIW1vZGUu bXVzdF9zdXBwb3J0X2Rsb3BlbigpICYmICF0YXJnZXQudHJpcGxlLnN0YXJ0c193aXRoKCJwb3dl cnBjLSIpICYmICF0YXJnZXQudHJpcGxlLnN0YXJ0c193aXRoKCJwb3dlcnBjbGUtIikgewotICAg ICAgICAgICAgIHJ1c3RmbGFncy5hcmcoIi1adGxzLW1vZGVsPWluaXRpYWwtZXhlYyIpOworICAg ICAgICAgICAgIGNhcmdvLmVudigiUlVTVENfVExTX01PREVMX0lOSVRJQUxfRVhFQyIsICIxIik7 CiAgICAgICAgICB9CiAgCi0tLSAKLTIuMzcuMgotCmRpZmYgLS1naXQgYS9zcmNwa2dzL3J1c3Qv cGF0Y2hlcy8wMDE1LWluaXRpYWwtcHBjbGUtcG9ydC5wYXRjaCBiL3NyY3BrZ3MvcnVzdC9wYXRj aGVzLzAwMTUtaW5pdGlhbC1wcGNsZS1wb3J0LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCBkZDZiNzJlMjFiY2IuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL3J1c3QvcGF0 Y2hlcy8wMDE1LWluaXRpYWwtcHBjbGUtcG9ydC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDM3 OSArMCwwIEBACi1Gcm9tIDJiM2I0YTExZGQ3NWZmNDNlMGYxZjEyZGUzOTVkMGNlMjlmODU1NWYg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0 YWZvcmdlLm9yZz4KLURhdGU6IFNhdCwgMyBKdWwgMjAyMSAyMTowMjowMyArMDIwMAotU3ViamVj dDogW1BBVENIIDE1LzE1XSBpbml0aWFsIHBwY2xlIHBvcnQKLQotLS0tCi0gY29tcGlsZXIvcnVz dGNfbWlkZGxlL3NyYy90eS9sYXlvdXQucnMgICAgICAgICAgICB8ICA1ICsrKystCi0gY29tcGls ZXIvcnVzdGNfdGFyZ2V0L3NyYy9zcGVjL21vZC5ycyAgICAgICAgICAgICB8ICAyICsrCi0gLi4u L3NyYy9zcGVjL3Bvd2VycGNsZV91bmtub3duX2xpbnV4X2dudS5ycyAgICAgICB8IDE1ICsrKysr KysrKysrKysrKwotIC4uLi9zcmMvc3BlYy9wb3dlcnBjbGVfdW5rbm93bl9saW51eF9tdXNsLnJz ICAgICAgfCAxNSArKysrKysrKysrKysrKysKLSBzcmMvYm9vdHN0cmFwL2Jvb3RzdHJhcC5weSAg ICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKysKLSAuLi4vY29kZWdlbi9hYmktbWFpbi1zaWdu YXR1cmUtMTZiaXQtYy1pbnQucnMgICAgIHwgIDEgKwotIHNyYy90ZXN0L2NvZGVnZW4vZ2xvYmFs X2FzbS5ycyAgICAgICAgICAgICAgICAgICAgfCAgMSArCi0gc3JjL3Rlc3QvY29kZWdlbi9nbG9i YWxfYXNtX2luY2x1ZGUucnMgICAgICAgICAgICB8ICAxICsKLSBzcmMvdGVzdC9jb2RlZ2VuL2ds b2JhbF9hc21feDIucnMgICAgICAgICAgICAgICAgIHwgIDEgKwotIHNyYy90ZXN0L2NvZGVnZW4v cmVwci10cmFuc3BhcmVudC1hZ2dyZWdhdGVzLTEucnMgfCAgMSArCi0gc3JjL3Rlc3QvY29kZWdl bi9yZXByLXRyYW5zcGFyZW50LWFnZ3JlZ2F0ZXMtMi5ycyB8ICAxICsKLSBzcmMvdGVzdC9jb2Rl Z2VuL3N0YWNrLXByb2Jlcy5ycyAgICAgICAgICAgICAgICAgIHwgIDEgKwotIC4uLi9ydW4tbWFr ZS1mdWxsZGVwcy9hdG9taWMtbG9jay1mcmVlL01ha2VmaWxlICAgfCAgMiArKwotIHNyYy90ZXN0 L3VpL2FiaS9zdGFjay1wcm9iZXMtbHRvLnJzICAgICAgICAgICAgICAgfCAgMSArCi0gc3JjL3Rl c3QvdWkvYWJpL3N0YWNrLXByb2Jlcy5ycyAgICAgICAgICAgICAgICAgICB8ICAxICsKLSBzcmMv dGVzdC91aS90YXJnZXQtZmVhdHVyZS9nYXRlLnJzICAgICAgICAgICAgICAgIHwgIDEgKwotIHNy Yy90ZXN0L3VpL3RhcmdldC1mZWF0dXJlL2ludmFsaWQtYXR0cmlidXRlLnJzICAgfCAgMSArCi0g c3JjL3Rvb2xzL2NvbXBpbGV0ZXN0L3NyYy91dGlsLnJzICAgICAgICAgICAgICAgICB8ICAxICsK LSB2ZW5kb3IvY2Mvc3JjL2xpYi5ycyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDEg KwotIHZlbmRvci90YXJnZXQtbGV4aWNvbi9zcmMvdGFyZ2V0cy5ycyAgICAgICAgICAgICAgfCAg NyArKysrKysrCi0gdmVuZG9yL3Rpa3YtamVtYWxsb2NhdG9yL2JlbmNoZXMvcm91bmR0cmlwLnJz ICAgICB8ICAzICsrLQotIHZlbmRvci90aWt2LWplbWFsbG9jYXRvci9zcmMvbGliLnJzICAgICAg ICAgICAgICAgfCAgMyArKy0KLSAyMiBmaWxlcyBjaGFuZ2VkLCA2NCBpbnNlcnRpb25zKCspLCAz IGRlbGV0aW9ucygtKQotIGNyZWF0ZSBtb2RlIDEwMDY0NCBjb21waWxlci9ydXN0Y190YXJnZXQv c3JjL3NwZWMvcG93ZXJwY2xlX3Vua25vd25fbGludXhfZ251LnJzCi0gY3JlYXRlIG1vZGUgMTAw NjQ0IGNvbXBpbGVyL3J1c3RjX3RhcmdldC9zcmMvc3BlYy9wb3dlcnBjbGVfdW5rbm93bl9saW51 eF9tdXNsLnJzCi0KLWRpZmYgLS1naXQgYS9jb21waWxlci9ydXN0Y19taWRkbGUvc3JjL3R5L2xh eW91dC5ycyBiL2NvbXBpbGVyL3J1c3RjX21pZGRsZS9zcmMvdHkvbGF5b3V0LnJzCi1pbmRleCAz YjA1ZTQyYTUuLjY2NDIwZjUwNyAxMDA2NDQKLS0tLSBhL2NvbXBpbGVyL3J1c3RjX21pZGRsZS9z cmMvdHkvbGF5b3V0LnJzCi0rKysgYi9jb21waWxlci9ydXN0Y19taWRkbGUvc3JjL3R5L2xheW91 dC5ycwotQEAgLTMyMDUsNiArMzIwNSw4IEBAIGltcGw8J3RjeD4gTGF5b3V0Q3g8J3RjeCwgVHlD dHh0PCd0Y3g+PiB7Ci0gICAgICAgICAgICAgdGFyZ2V0Lm9zID09ICJsaW51eCIgJiYgdGFyZ2V0 LmFyY2ggPT0gInNwYXJjNjQiICYmIHRhcmdldF9lbnZfZ251X2xpa2U7Ci0gICAgICAgICBsZXQg bGludXhfcG93ZXJwY19nbnVfbGlrZSA9Ci0gICAgICAgICAgICAgdGFyZ2V0Lm9zID09ICJsaW51 eCIgJiYgdGFyZ2V0LmFyY2ggPT0gInBvd2VycGMiICYmIHRhcmdldF9lbnZfZ251X2xpa2U7Ci0r ICAgICAgICBsZXQgbGludXhfcG93ZXJwY2xlX2dudV9saWtlID0KLSsgICAgICAgICAgICB0YXJn ZXQub3MgPT0gImxpbnV4IiAmJiB0YXJnZXQuYXJjaCA9PSAicG93ZXJwY2xlIiAmJiB0YXJnZXRf ZW52X2dudV9saWtlOwotICAgICAgICAgdXNlIFNwZWNBYmk6Oio7Ci0gICAgICAgICBsZXQgcnVz dF9hYmkgPSBtYXRjaGVzIShzaWcuYWJpLCBSdXN0SW50cmluc2ljIHwgUGxhdGZvcm1JbnRyaW5z aWMgfCBSdXN0IHwgUnVzdENhbGwpOwotIAotQEAgLTMzMTEsNyArMzMxMyw4IEBAIGltcGw8J3Rj eD4gTGF5b3V0Q3g8J3RjeCwgVHlDdHh0PCd0Y3g+PiB7Ci0gICAgICAgICAgICAgICAgICAgICB8 fCAoIXdpbl94NjRfZ251Ci0gICAgICAgICAgICAgICAgICAgICAgICAgJiYgIWxpbnV4X3MzOTB4 X2dudV9saWtlCi0gICAgICAgICAgICAgICAgICAgICAgICAgJiYgIWxpbnV4X3NwYXJjNjRfZ251 X2xpa2UKLS0gICAgICAgICAgICAgICAgICAgICAgICAmJiAhbGludXhfcG93ZXJwY19nbnVfbGlr ZSkKLSsgICAgICAgICAgICAgICAgICAgICAgICAmJiAhbGludXhfcG93ZXJwY19nbnVfbGlrZQot KyAgICAgICAgICAgICAgICAgICAgICAgICYmICFsaW51eF9wb3dlcnBjbGVfZ251X2xpa2UpCi0g ICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgIGFyZy5tb2RlID0gUGFzc01v ZGU6Oklnbm9yZTsKLSAgICAgICAgICAgICAgICAgfQotZGlmZiAtLWdpdCBhL2NvbXBpbGVyL3J1 c3RjX3RhcmdldC9zcmMvc3BlYy9tb2QucnMgYi9jb21waWxlci9ydXN0Y190YXJnZXQvc3JjL3Nw ZWMvbW9kLnJzCi1pbmRleCBkYTA1ODljZGQuLjJkYjQwMzkxMyAxMDA2NDQKLS0tLSBhL2NvbXBp bGVyL3J1c3RjX3RhcmdldC9zcmMvc3BlYy9tb2QucnMKLSsrKyBiL2NvbXBpbGVyL3J1c3RjX3Rh cmdldC9zcmMvc3BlYy9tb2QucnMKLUBAIC04MzEsNiArODMxLDggQEAgc3VwcG9ydGVkX3Rhcmdl dHMhIHsKLSAgICAgKCJwb3dlcnBjLXVua25vd24tbGludXgtZ251IiwgcG93ZXJwY191bmtub3du X2xpbnV4X2dudSksCi0gICAgICgicG93ZXJwYy11bmtub3duLWxpbnV4LWdudXNwZSIsIHBvd2Vy cGNfdW5rbm93bl9saW51eF9nbnVzcGUpLAotICAgICAoInBvd2VycGMtdW5rbm93bi1saW51eC1t dXNsIiwgcG93ZXJwY191bmtub3duX2xpbnV4X211c2wpLAotKyAgICAoInBvd2VycGNsZS11bmtu b3duLWxpbnV4LWdudSIsIHBvd2VycGNsZV91bmtub3duX2xpbnV4X2dudSksCi0rICAgICgicG93 ZXJwY2xlLXVua25vd24tbGludXgtbXVzbCIsIHBvd2VycGNsZV91bmtub3duX2xpbnV4X211c2wp LAotICAgICAoInBvd2VycGM2NC11bmtub3duLWxpbnV4LWdudSIsIHBvd2VycGM2NF91bmtub3du X2xpbnV4X2dudSksCi0gICAgICgicG93ZXJwYzY0LXVua25vd24tbGludXgtbXVzbCIsIHBvd2Vy cGM2NF91bmtub3duX2xpbnV4X211c2wpLAotICAgICAoInBvd2VycGM2NGxlLXVua25vd24tbGlu dXgtZ251IiwgcG93ZXJwYzY0bGVfdW5rbm93bl9saW51eF9nbnUpLAotZGlmZiAtLWdpdCBhL2Nv bXBpbGVyL3J1c3RjX3RhcmdldC9zcmMvc3BlYy9wb3dlcnBjbGVfdW5rbm93bl9saW51eF9nbnUu cnMgYi9jb21waWxlci9ydXN0Y190YXJnZXQvc3JjL3NwZWMvcG93ZXJwY2xlX3Vua25vd25fbGlu dXhfZ251LnJzCi1uZXcgZmlsZSBtb2RlIDEwMDY0NAotaW5kZXggMDAwMDAwMDAwLi5iNzE0OGEy ZmMKLS0tLSAvZGV2L251bGwKLSsrKyBiL2NvbXBpbGVyL3J1c3RjX3RhcmdldC9zcmMvc3BlYy9w b3dlcnBjbGVfdW5rbm93bl9saW51eF9nbnUucnMKLUBAIC0wLDAgKzEsMTUgQEAKLSt1c2UgY3Jh dGU6OnNwZWM6OntMaW5rZXJGbGF2b3IsIFRhcmdldCwgVGFyZ2V0T3B0aW9uc307Ci0rCi0rcHVi IGZuIHRhcmdldCgpIC0+IFRhcmdldCB7Ci0rICAgIGxldCBtdXQgYmFzZSA9IHN1cGVyOjpsaW51 eF9nbnVfYmFzZTo6b3B0cygpOwotKyAgICBiYXNlLnByZV9saW5rX2FyZ3MuZW50cnkoTGlua2Vy Rmxhdm9yOjpHY2MpLm9yX2RlZmF1bHQoKS5wdXNoKCItbTMyIi5pbnRvKCkpOwotKyAgICBiYXNl Lm1heF9hdG9taWNfd2lkdGggPSBTb21lKDMyKTsKLSsKLSsgICAgVGFyZ2V0IHsKLSsgICAgICAg IGxsdm1fdGFyZ2V0OiAicG93ZXJwY2xlLXVua25vd24tbGludXgtZ251Ii5pbnRvKCksCi0rICAg ICAgICBwb2ludGVyX3dpZHRoOiAzMiwKLSsgICAgICAgIGRhdGFfbGF5b3V0OiAiZS1tOmUtcDoz MjozMi1pNjQ6NjQtbjMyIi5pbnRvKCksCi0rICAgICAgICBhcmNoOiAicG93ZXJwYyIuaW50bygp LAotKyAgICAgICAgb3B0aW9uczogVGFyZ2V0T3B0aW9ucyB7IG1jb3VudDogIl9tY291bnQiLmlu dG8oKSwgLi5iYXNlIH0sCi0rICAgIH0KLSt9Ci1kaWZmIC0tZ2l0IGEvY29tcGlsZXIvcnVzdGNf dGFyZ2V0L3NyYy9zcGVjL3Bvd2VycGNsZV91bmtub3duX2xpbnV4X211c2wucnMgYi9jb21waWxl ci9ydXN0Y190YXJnZXQvc3JjL3NwZWMvcG93ZXJwY2xlX3Vua25vd25fbGludXhfbXVzbC5ycwot bmV3IGZpbGUgbW9kZSAxMDA2NDQKLWluZGV4IDAwMDAwMDAwMC4uYTgyNmI2ZTQ3Ci0tLS0gL2Rl di9udWxsCi0rKysgYi9jb21waWxlci9ydXN0Y190YXJnZXQvc3JjL3NwZWMvcG93ZXJwY2xlX3Vu a25vd25fbGludXhfbXVzbC5ycwotQEAgLTAsMCArMSwxNSBAQAotK3VzZSBjcmF0ZTo6c3BlYzo6 e0xpbmtlckZsYXZvciwgVGFyZ2V0LCBUYXJnZXRPcHRpb25zfTsKLSsKLStwdWIgZm4gdGFyZ2V0 KCkgLT4gVGFyZ2V0IHsKLSsgICAgbGV0IG11dCBiYXNlID0gc3VwZXI6OmxpbnV4X211c2xfYmFz ZTo6b3B0cygpOwotKyAgICBiYXNlLnByZV9saW5rX2FyZ3MuZW50cnkoTGlua2VyRmxhdm9yOjpH Y2MpLm9yX2RlZmF1bHQoKS5wdXNoKCItbTMyIi5pbnRvKCkpOwotKyAgICBiYXNlLm1heF9hdG9t aWNfd2lkdGggPSBTb21lKDMyKTsKLSsKLSsgICAgVGFyZ2V0IHsKLSsgICAgICAgIGxsdm1fdGFy Z2V0OiAicG93ZXJwY2xlLXVua25vd24tbGludXgtbXVzbCIuaW50bygpLAotKyAgICAgICAgcG9p bnRlcl93aWR0aDogMzIsCi0rICAgICAgICBkYXRhX2xheW91dDogImUtbTplLXA6MzI6MzItaTY0 OjY0LW4zMiIuaW50bygpLAotKyAgICAgICAgYXJjaDogInBvd2VycGMiLmludG8oKSwKLSsgICAg ICAgIG9wdGlvbnM6IFRhcmdldE9wdGlvbnMgeyBtY291bnQ6ICJfbWNvdW50Ii5pbnRvKCksIC4u YmFzZSB9LAotKyAgICB9Ci0rfQotZGlmZiAtLWdpdCBhL3NyYy9ib290c3RyYXAvYm9vdHN0cmFw LnB5IGIvc3JjL2Jvb3RzdHJhcC9ib290c3RyYXAucHkKLWluZGV4IDM1MDFmZDkwMS4uYTI4ZjQ1 NmQzIDEwMDY0NAotLS0tIGEvc3JjL2Jvb3RzdHJhcC9ib290c3RyYXAucHkKLSsrKyBiL3NyYy9i b290c3RyYXAvYm9vdHN0cmFwLnB5Ci1AQCAtMzM5LDkgKzMzOSwxMSBAQCBkZWYgZGVmYXVsdF9i dWlsZF90cmlwbGUodmVyYm9zZSk6Ci0gICAgICAgICAnaTc4Nic6ICdpNjg2JywKLSAgICAgICAg ICdtNjhrJzogJ202OGsnLAotICAgICAgICAgJ3Bvd2VycGMnOiAncG93ZXJwYycsCi0rICAgICAg ICAncG93ZXJwY2xlJzogJ3Bvd2VycGNsZScsCi0gICAgICAgICAncG93ZXJwYzY0JzogJ3Bvd2Vy cGM2NCcsCi0gICAgICAgICAncG93ZXJwYzY0bGUnOiAncG93ZXJwYzY0bGUnLAotICAgICAgICAg J3BwYyc6ICdwb3dlcnBjJywKLSsgICAgICAgICdwcGNsZSc6ICdwb3dlcnBjbGUnLAotICAgICAg ICAgJ3BwYzY0JzogJ3Bvd2VycGM2NCcsCi0gICAgICAgICAncHBjNjRsZSc6ICdwb3dlcnBjNjRs ZScsCi0gICAgICAgICAncmlzY3Y2NCc6ICdyaXNjdjY0Z2MnLAotZGlmZiAtLWdpdCBhL3NyYy90 ZXN0L2NvZGVnZW4vYWJpLW1haW4tc2lnbmF0dXJlLTE2Yml0LWMtaW50LnJzIGIvc3JjL3Rlc3Qv Y29kZWdlbi9hYmktbWFpbi1zaWduYXR1cmUtMTZiaXQtYy1pbnQucnMKLWluZGV4IDRlZDQ5MWRm Yi4uODJlYzc3NTVkIDEwMDY0NAotLS0tIGEvc3JjL3Rlc3QvY29kZWdlbi9hYmktbWFpbi1zaWdu YXR1cmUtMTZiaXQtYy1pbnQucnMKLSsrKyBiL3NyYy90ZXN0L2NvZGVnZW4vYWJpLW1haW4tc2ln bmF0dXJlLTE2Yml0LWMtaW50LnJzCi1AQCAtOSw2ICs5LDcgQEAKLSAvLyBpZ25vcmUtbWlwcwot IC8vIGlnbm9yZS1taXBzNjQKLSAvLyBpZ25vcmUtcG93ZXJwYwotKy8vIGlnbm9yZS1wb3dlcnBj bGUKLSAvLyBpZ25vcmUtcG93ZXJwYzY0Ci0gLy8gaWdub3JlLXJpc2N2NjQKLSAvLyBpZ25vcmUt czM5MHgKLWRpZmYgLS1naXQgYS9zcmMvdGVzdC9jb2RlZ2VuL2dsb2JhbF9hc20ucnMgYi9zcmMv dGVzdC9jb2RlZ2VuL2dsb2JhbF9hc20ucnMKLWluZGV4IGZhYjg0ODY4Zi4uMTA0ZDkzZDAxIDEw MDY0NAotLS0tIGEvc3JjL3Rlc3QvY29kZWdlbi9nbG9iYWxfYXNtLnJzCi0rKysgYi9zcmMvdGVz dC9jb2RlZ2VuL2dsb2JhbF9hc20ucnMKLUBAIC0xMiw2ICsxMiw3IEBACi0gLy8gaWdub3JlLXBv d2VycGM2NAotIC8vIGlnbm9yZS1wb3dlcnBjNjRsZQotIC8vIGlnbm9yZS1wb3dlcnBjCi0rLy8g aWdub3JlLXBvd2VycGNsZQotIC8vIGlnbm9yZS1yNjAwCi0gLy8gaWdub3JlLWFtZGdjbgotIC8v IGlnbm9yZS1zcGFyYwotZGlmZiAtLWdpdCBhL3NyYy90ZXN0L2NvZGVnZW4vZ2xvYmFsX2FzbV9p bmNsdWRlLnJzIGIvc3JjL3Rlc3QvY29kZWdlbi9nbG9iYWxfYXNtX2luY2x1ZGUucnMKLWluZGV4 IDAyZWU5MTY0NS4uMTNmMzAzMzMyIDEwMDY0NAotLS0tIGEvc3JjL3Rlc3QvY29kZWdlbi9nbG9i YWxfYXNtX2luY2x1ZGUucnMKLSsrKyBiL3NyYy90ZXN0L2NvZGVnZW4vZ2xvYmFsX2FzbV9pbmNs dWRlLnJzCi1AQCAtMTIsNiArMTIsNyBAQAotIC8vIGlnbm9yZS1wb3dlcnBjNjQKLSAvLyBpZ25v cmUtcG93ZXJwYzY0bGUKLSAvLyBpZ25vcmUtcG93ZXJwYwotKy8vIGlnbm9yZS1wb3dlcnBjbGUK LSAvLyBpZ25vcmUtcjYwMAotIC8vIGlnbm9yZS1hbWRnY24KLSAvLyBpZ25vcmUtc3BhcmMKLWRp ZmYgLS1naXQgYS9zcmMvdGVzdC9jb2RlZ2VuL2dsb2JhbF9hc21feDIucnMgYi9zcmMvdGVzdC9j b2RlZ2VuL2dsb2JhbF9hc21feDIucnMKLWluZGV4IGJkY2YwZWE4NC4uMWUyZmY4YjhkIDEwMDY0 NAotLS0tIGEvc3JjL3Rlc3QvY29kZWdlbi9nbG9iYWxfYXNtX3gyLnJzCi0rKysgYi9zcmMvdGVz dC9jb2RlZ2VuL2dsb2JhbF9hc21feDIucnMKLUBAIC0xMiw2ICsxMiw3IEBACi0gLy8gaWdub3Jl LXBvd2VycGM2NAotIC8vIGlnbm9yZS1wb3dlcnBjNjRsZQotIC8vIGlnbm9yZS1wb3dlcnBjCi0r Ly8gaWdub3JlLXBvd2VycGNsZQotIC8vIGlnbm9yZS1yNjAwCi0gLy8gaWdub3JlLWFtZGdjbgot IC8vIGlnbm9yZS1zcGFyYwotZGlmZiAtLWdpdCBhL3NyYy90ZXN0L2NvZGVnZW4vcmVwci10cmFu c3BhcmVudC1hZ2dyZWdhdGVzLTEucnMgYi9zcmMvdGVzdC9jb2RlZ2VuL3JlcHItdHJhbnNwYXJl bnQtYWdncmVnYXRlcy0xLnJzCi1pbmRleCA5ZDE4YzVmMDMuLjhlNjlkMmFmZCAxMDA2NDQKLS0t LSBhL3NyYy90ZXN0L2NvZGVnZW4vcmVwci10cmFuc3BhcmVudC1hZ2dyZWdhdGVzLTEucnMKLSsr KyBiL3NyYy90ZXN0L2NvZGVnZW4vcmVwci10cmFuc3BhcmVudC1hZ2dyZWdhdGVzLTEucnMKLUBA IC02LDYgKzYsNyBAQAotIC8vIGlnbm9yZS1taXBzCi0gLy8gaWdub3JlLW1pcHM2NAotIC8vIGln bm9yZS1wb3dlcnBjCi0rLy8gaWdub3JlLXBvd2VycGNsZQotIC8vIGlnbm9yZS1wb3dlcnBjNjQK LSAvLyBpZ25vcmUtcmlzY3Y2NCBzZWUgY29kZWdlbi9yaXNjdi1hYmkKLSAvLyBpZ25vcmUtd2lu ZG93cwotZGlmZiAtLWdpdCBhL3NyYy90ZXN0L2NvZGVnZW4vcmVwci10cmFuc3BhcmVudC1hZ2dy ZWdhdGVzLTIucnMgYi9zcmMvdGVzdC9jb2RlZ2VuL3JlcHItdHJhbnNwYXJlbnQtYWdncmVnYXRl cy0yLnJzCi1pbmRleCBiNjhlOGU5ZWIuLjk3YzUwOWIxYiAxMDA2NDQKLS0tLSBhL3NyYy90ZXN0 L2NvZGVnZW4vcmVwci10cmFuc3BhcmVudC1hZ2dyZWdhdGVzLTIucnMKLSsrKyBiL3NyYy90ZXN0 L2NvZGVnZW4vcmVwci10cmFuc3BhcmVudC1hZ2dyZWdhdGVzLTIucnMKLUBAIC01LDYgKzUsNyBA QAotIC8vIGlnbm9yZS1lbXNjcmlwdGVuCi0gLy8gaWdub3JlLW1pcHM2NAotIC8vIGlnbm9yZS1w b3dlcnBjCi0rLy8gaWdub3JlLXBvd2VycGNsZQotIC8vIGlnbm9yZS1wb3dlcnBjNjQKLSAvLyBp Z25vcmUtcG93ZXJwYzY0bGUKLSAvLyBpZ25vcmUtcmlzY3Y2NCBzZWUgY29kZWdlbi9yaXNjdi1h YmkKLWRpZmYgLS1naXQgYS9zcmMvdGVzdC9jb2RlZ2VuL3N0YWNrLXByb2Jlcy5ycyBiL3NyYy90 ZXN0L2NvZGVnZW4vc3RhY2stcHJvYmVzLnJzCi1pbmRleCA5YmQzNTFkZjMuLjI5MDczZWI1NiAx MDA2NDQKLS0tLSBhL3NyYy90ZXN0L2NvZGVnZW4vc3RhY2stcHJvYmVzLnJzCi0rKysgYi9zcmMv dGVzdC9jb2RlZ2VuL3N0YWNrLXByb2Jlcy5ycwotQEAgLTMsNiArMyw3IEBACi0gLy8gaWdub3Jl LW1pcHMKLSAvLyBpZ25vcmUtbWlwczY0Ci0gLy8gaWdub3JlLXBvd2VycGMKLSsvLyBpZ25vcmUt cG93ZXJwY2xlCi0gLy8gaWdub3JlLXBvd2VycGM2NAotIC8vIGlnbm9yZS1wb3dlcnBjNjRsZQot IC8vIGlnbm9yZS1yaXNjdjY0Ci1kaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcnVuLW1ha2UtZnVsbGRl cHMvYXRvbWljLWxvY2stZnJlZS9NYWtlZmlsZSBiL3NyYy90ZXN0L3J1bi1tYWtlLWZ1bGxkZXBz L2F0b21pYy1sb2NrLWZyZWUvTWFrZWZpbGUKLWluZGV4IDllOGI0ZmFiZi4uNDAyZDM3YTQ1IDEw MDY0NAotLS0tIGEvc3JjL3Rlc3QvcnVuLW1ha2UtZnVsbGRlcHMvYXRvbWljLWxvY2stZnJlZS9N YWtlZmlsZQotKysrIGIvc3JjL3Rlc3QvcnVuLW1ha2UtZnVsbGRlcHMvYXRvbWljLWxvY2stZnJl ZS9NYWtlZmlsZQotQEAgLTM2LDYgKzM2LDggQEAgaWZlcSAoJChmaWx0ZXIgcG93ZXJwYywkKExM Vk1fQ09NUE9ORU5UUykpLHBvd2VycGMpCi0gCW5tICIkKFRNUERJUikvbGliYXRvbWljX2xvY2tf ZnJlZS5ybGliIiB8ICQoQ0dSRVApIC12IF9fYXRvbWljX2ZldGNoX2FkZAotIAkkKFJVU1RDKSAt LXRhcmdldD1wb3dlcnBjLXVua25vd24tbGludXgtZ251c3BlIGF0b21pY19sb2NrX2ZyZWUucnMK LSAJbm0gIiQoVE1QRElSKS9saWJhdG9taWNfbG9ja19mcmVlLnJsaWIiIHwgJChDR1JFUCkgLXYg X19hdG9taWNfZmV0Y2hfYWRkCi0rCSQoUlVTVEMpIC0tdGFyZ2V0PXBvd2VycGNsZS11bmtub3du LWxpbnV4LWdudSBhdG9taWNfbG9ja19mcmVlLnJzCi0rCW5tICIkKFRNUERJUikvbGliYXRvbWlj X2xvY2tfZnJlZS5ybGliIiB8ICQoQ0dSRVApIC12IF9fYXRvbWljX2ZldGNoX2FkZAotIAkkKFJV U1RDKSAtLXRhcmdldD1wb3dlcnBjNjQtdW5rbm93bi1saW51eC1nbnUgYXRvbWljX2xvY2tfZnJl ZS5ycwotIAlubSAiJChUTVBESVIpL2xpYmF0b21pY19sb2NrX2ZyZWUucmxpYiIgfCAkKENHUkVQ KSAtdiBfX2F0b21pY19mZXRjaF9hZGQKLSAJJChSVVNUQykgLS10YXJnZXQ9cG93ZXJwYzY0bGUt dW5rbm93bi1saW51eC1nbnUgYXRvbWljX2xvY2tfZnJlZS5ycwotZGlmZiAtLWdpdCBhL3NyYy90 ZXN0L3VpL2FiaS9zdGFjay1wcm9iZXMtbHRvLnJzIGIvc3JjL3Rlc3QvdWkvYWJpL3N0YWNrLXBy b2Jlcy1sdG8ucnMKLWluZGV4IDkwZGYxZjNmNS4uOGM2ZGRhOGI4IDEwMDY0NAotLS0tIGEvc3Jj L3Rlc3QvdWkvYWJpL3N0YWNrLXByb2Jlcy1sdG8ucnMKLSsrKyBiL3NyYy90ZXN0L3VpL2FiaS9z dGFjay1wcm9iZXMtbHRvLnJzCi1AQCAtNCw2ICs0LDcgQEAKLSAvLyBpZ25vcmUtbWlwcwotIC8v IGlnbm9yZS1taXBzNjQKLSAvLyBpZ25vcmUtcG93ZXJwYwotKy8vIGlnbm9yZS1wb3dlcnBjbGUK LSAvLyBpZ25vcmUtczM5MHgKLSAvLyBpZ25vcmUtc3BhcmMKLSAvLyBpZ25vcmUtc3BhcmM2NAot ZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3VpL2FiaS9zdGFjay1wcm9iZXMucnMgYi9zcmMvdGVzdC91 aS9hYmkvc3RhY2stcHJvYmVzLnJzCi1pbmRleCBlOTk4ZGQwZjguLjk0NzJlNTM4NyAxMDA2NDQK LS0tLSBhL3NyYy90ZXN0L3VpL2FiaS9zdGFjay1wcm9iZXMucnMKLSsrKyBiL3NyYy90ZXN0L3Vp L2FiaS9zdGFjay1wcm9iZXMucnMKLUBAIC00LDYgKzQsNyBAQAotIC8vIGlnbm9yZS1taXBzCi0g Ly8gaWdub3JlLW1pcHM2NAotIC8vIGlnbm9yZS1wb3dlcnBjCi0rLy8gaWdub3JlLXBvd2VycGNs ZQotIC8vIGlnbm9yZS1zMzkweAotIC8vIGlnbm9yZS1zcGFyYwotIC8vIGlnbm9yZS1zcGFyYzY0 Ci1kaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvdWkvdGFyZ2V0LWZlYXR1cmUvZ2F0ZS5ycyBiL3NyYy90 ZXN0L3VpL3RhcmdldC1mZWF0dXJlL2dhdGUucnMKLWluZGV4IDIzODJjOThmOC4uZTZmZTg1NWQ3 IDEwMDY0NAotLS0tIGEvc3JjL3Rlc3QvdWkvdGFyZ2V0LWZlYXR1cmUvZ2F0ZS5ycwotKysrIGIv c3JjL3Rlc3QvdWkvdGFyZ2V0LWZlYXR1cmUvZ2F0ZS5ycwotQEAgLTUsNiArNSw3IEBACi0gLy8g aWdub3JlLW1pcHMKLSAvLyBpZ25vcmUtbWlwczY0Ci0gLy8gaWdub3JlLXBvd2VycGMKLSsvLyBp Z25vcmUtcG93ZXJwY2xlCi0gLy8gaWdub3JlLXBvd2VycGM2NAotIC8vIGlnbm9yZS1wb3dlcnBj NjRsZQotIC8vIGlnbm9yZS1yaXNjdjY0Ci1kaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvdWkvdGFyZ2V0 LWZlYXR1cmUvaW52YWxpZC1hdHRyaWJ1dGUucnMgYi9zcmMvdGVzdC91aS90YXJnZXQtZmVhdHVy ZS9pbnZhbGlkLWF0dHJpYnV0ZS5ycwotaW5kZXggYWQxYjZlOTZiLi4xMjJkNTlhNTcgMTAwNjQ0 Ci0tLS0gYS9zcmMvdGVzdC91aS90YXJnZXQtZmVhdHVyZS9pbnZhbGlkLWF0dHJpYnV0ZS5ycwot KysrIGIvc3JjL3Rlc3QvdWkvdGFyZ2V0LWZlYXR1cmUvaW52YWxpZC1hdHRyaWJ1dGUucnMKLUBA IC01LDYgKzUsNyBAQAotIC8vIGlnbm9yZS1taXBzCi0gLy8gaWdub3JlLW1pcHM2NAotIC8vIGln bm9yZS1wb3dlcnBjCi0rLy8gaWdub3JlLXBvd2VycGNsZQotIC8vIGlnbm9yZS1wb3dlcnBjNjQK LSAvLyBpZ25vcmUtcG93ZXJwYzY0bGUKLSAvLyBpZ25vcmUtcmlzY3Y2NAotZGlmZiAtLWdpdCBh L3NyYy90b29scy9jb21waWxldGVzdC9zcmMvdXRpbC5ycyBiL3NyYy90b29scy9jb21waWxldGVz dC9zcmMvdXRpbC5ycwotaW5kZXggMjE1YWYzNDdmLi5hMWM3ZTRjNmEgMTAwNjQ0Ci0tLS0gYS9z cmMvdG9vbHMvY29tcGlsZXRlc3Qvc3JjL3V0aWwucnMKLSsrKyBiL3NyYy90b29scy9jb21waWxl dGVzdC9zcmMvdXRpbC5ycwotQEAgLTcxLDYgKzcxLDcgQEAgY29uc3QgQVJDSF9UQUJMRTogJlso JnN0ciwgJnN0cildID0gJlsKLSAgICAgKCJtc3A0MzAiLCAibXNwNDMwIiksCi0gICAgICgibnZw dHg2NCIsICJudnB0eDY0IiksCi0gICAgICgicG93ZXJwYyIsICJwb3dlcnBjIiksCi0rICAgICgi cG93ZXJwY2xlIiwgInBvd2VycGMiKSwKLSAgICAgKCJwb3dlcnBjNjQiLCAicG93ZXJwYzY0Iiks Ci0gICAgICgicG93ZXJwYzY0bGUiLCAicG93ZXJwYzY0IiksCi0gICAgICgicmlzY3Y2NGdjIiwg InJpc2N2NjQiKSwKLWRpZmYgLS1naXQgYS92ZW5kb3IvY2Mvc3JjL2xpYi5ycyBiL3ZlbmRvci9j Yy9zcmMvbGliLnJzCi1pbmRleCBlM2EyYjk4YjAuLjAyMzY3MjlmZCAxMDA2NDQKLS0tLSBhL3Zl bmRvci9jYy9zcmMvbGliLnJzCi0rKysgYi92ZW5kb3IvY2Mvc3JjL2xpYi5ycwotQEAgLTI1OTQs NiArMjU5NCw3IEBAIGltcGwgQnVpbGQgewotICAgICAgICAgICAgICJwb3dlcnBjLXVua25vd24t bGludXgtZ251IiA9PiBTb21lKCJwb3dlcnBjLWxpbnV4LWdudSIpLAotICAgICAgICAgICAgICJw b3dlcnBjLXVua25vd24tbGludXgtZ251c3BlIiA9PiBTb21lKCJwb3dlcnBjLWxpbnV4LWdudXNw ZSIpLAotICAgICAgICAgICAgICJwb3dlcnBjLXVua25vd24tbmV0YnNkIiA9PiBTb21lKCJwb3dl cnBjLS1uZXRic2QiKSwKLSsgICAgICAgICAgICAicG93ZXJwY2xlLXVua25vd24tbGludXgtZ251 IiA9PiBTb21lKCJwb3dlcnBjbGUtbGludXgtZ251IiksCi0gICAgICAgICAgICAgInBvd2VycGM2 NC11bmtub3duLWxpbnV4LWdudSIgPT4gU29tZSgicG93ZXJwYy1saW51eC1nbnUiKSwKLSAgICAg ICAgICAgICAicG93ZXJwYzY0bGUtdW5rbm93bi1saW51eC1nbnUiID0+IFNvbWUoInBvd2VycGM2 NGxlLWxpbnV4LWdudSIpLAotICAgICAgICAgICAgICJyaXNjdjMyaS11bmtub3duLW5vbmUtZWxm IiA9PiBzZWxmLmZpbmRfd29ya2luZ19nbnVfcHJlZml4KCZbCi1kaWZmIC0tZ2l0IGEvdmVuZG9y L3RhcmdldC1sZXhpY29uL3NyYy90YXJnZXRzLnJzIGIvdmVuZG9yL3RhcmdldC1sZXhpY29uL3Ny Yy90YXJnZXRzLnJzCi1pbmRleCAyMmNjOTVjYzMuLjQ2MTY3ZTM0ZSAxMDA2NDQKLS0tLSBhL3Zl bmRvci90YXJnZXQtbGV4aWNvbi9zcmMvdGFyZ2V0cy5ycwotKysrIGIvdmVuZG9yL3RhcmdldC1s ZXhpY29uL3NyYy90YXJnZXRzLnJzCi1AQCAtMjksNiArMjksNyBAQCBwdWIgZW51bSBBcmNoaXRl Y3R1cmUgewotICAgICBNc3A0MzAsCi0gICAgIE52cHR4NjQsCi0gICAgIFBvd2VycGMsCi0rICAg IFBvd2VycGNsZSwKLSAgICAgUG93ZXJwYzY0LAotICAgICBQb3dlcnBjNjRsZSwKLSAgICAgUmlz Y3YzMihSaXNjdjMyQXJjaGl0ZWN0dXJlKSwKLUBAIC01MzMsNiArNTM0LDcgQEAgaW1wbCBBcmNo aXRlY3R1cmUgewotICAgICAgICAgICAgIHwgTWlwczY0KE1pcHM2NEFyY2hpdGVjdHVyZTo6TWlw c2lzYTY0cjZlbCkKLSAgICAgICAgICAgICB8IE1zcDQzMAotICAgICAgICAgICAgIHwgTnZwdHg2 NAotKyAgICAgICAgICAgIHwgUG93ZXJwY2xlCi0gICAgICAgICAgICAgfCBQb3dlcnBjNjRsZQot ICAgICAgICAgICAgIHwgUmlzY3YzMihfKQotICAgICAgICAgICAgIHwgUmlzY3Y2NChfKQotQEAg LTU3NCw2ICs1NzYsNyBAQCBpbXBsIEFyY2hpdGVjdHVyZSB7Ci0gICAgICAgICAgICAgfCBNNjhr Ci0gICAgICAgICAgICAgfCBNaXBzMzIoXykKLSAgICAgICAgICAgICB8IFBvd2VycGMKLSsgICAg ICAgICAgICB8IFBvd2VycGNsZQotICAgICAgICAgICAgIHwgWFRlbnNhID0+IE9rKFBvaW50ZXJX aWR0aDo6VTMyKSwKLSAgICAgICAgICAgICBBbWRHY24KLSAgICAgICAgICAgICB8IEJwZmViCi1A QCAtNzYzLDYgKzc2Niw3IEBAIGltcGwgZm10OjpEaXNwbGF5IGZvciBBcmNoaXRlY3R1cmUgewot ICAgICAgICAgICAgIE1zcDQzMCA9PiBmLndyaXRlX3N0cigibXNwNDMwIiksCi0gICAgICAgICAg ICAgTnZwdHg2NCA9PiBmLndyaXRlX3N0cigibnZwdHg2NCIpLAotICAgICAgICAgICAgIFBvd2Vy cGMgPT4gZi53cml0ZV9zdHIoInBvd2VycGMiKSwKLSsgICAgICAgICAgICBQb3dlcnBjbGUgPT4g Zi53cml0ZV9zdHIoInBvd2VycGNsZSIpLAotICAgICAgICAgICAgIFBvd2VycGM2NCA9PiBmLndy aXRlX3N0cigicG93ZXJwYzY0IiksCi0gICAgICAgICAgICAgUG93ZXJwYzY0bGUgPT4gZi53cml0 ZV9zdHIoInBvd2VycGM2NGxlIiksCi0gICAgICAgICAgICAgUmlzY3YzMihyaXNjdjMyKSA9PiBy aXNjdjMyLmZtdChmKSwKLUBAIC05NDMsNiArOTQ3LDcgQEAgaW1wbCBGcm9tU3RyIGZvciBBcmNo aXRlY3R1cmUgewotICAgICAgICAgICAgICJtc3A0MzAiID0+IE1zcDQzMCwKLSAgICAgICAgICAg ICAibnZwdHg2NCIgPT4gTnZwdHg2NCwKLSAgICAgICAgICAgICAicG93ZXJwYyIgPT4gUG93ZXJw YywKLSsgICAgICAgICAgICAicG93ZXJwY2xlIiA9PiBQb3dlcnBjbGUsCi0gICAgICAgICAgICAg InBvd2VycGM2NCIgPT4gUG93ZXJwYzY0LAotICAgICAgICAgICAgICJwb3dlcnBjNjRsZSIgPT4g UG93ZXJwYzY0bGUsCi0gICAgICAgICAgICAgInMzOTB4IiA9PiBTMzkweCwKLUBAIC0xNDQ1LDYg KzE0NTAsOCBAQCBtb2QgdGVzdHMgewotICAgICAgICAgICAgICJwb3dlcnBjLXVua25vd24tb3Bl bmJzZCIsCi0gICAgICAgICAgICAgInBvd2VycGMtd3JzLXZ4d29ya3MiLAotICAgICAgICAgICAg ICJwb3dlcnBjLXdycy12eHdvcmtzLXNwZSIsCi0rICAgICAgICAgICAgInBvd2VycGNsZS11bmtu b3duLWxpbnV4LWdudSIsCi0rICAgICAgICAgICAgInBvd2VycGNsZS11bmtub3duLWxpbnV4LW11 c2wiLAotICAgICAgICAgICAgICJwb3dlcnBjNjQtdW5rbm93bi1mcmVlYnNkIiwKLSAgICAgICAg ICAgICAicG93ZXJwYzY0LXVua25vd24tbGludXgtZ251IiwKLSAgICAgICAgICAgICAicG93ZXJw YzY0LXVua25vd24tbGludXgtbXVzbCIsCi1kaWZmIC0tZ2l0IGEvdmVuZG9yL3Rpa3YtamVtYWxs b2NhdG9yL2JlbmNoZXMvcm91bmR0cmlwLnJzIGIvdmVuZG9yL3Rpa3YtamVtYWxsb2NhdG9yL2Jl bmNoZXMvcm91bmR0cmlwLnJzCi1pbmRleCA3NjdhYmU4ZDQuLjcwNGJmOTU1YSAxMDA2NDQKLS0t LSBhL3ZlbmRvci90aWt2LWplbWFsbG9jYXRvci9iZW5jaGVzL3JvdW5kdHJpcC5ycwotKysrIGIv dmVuZG9yL3Rpa3YtamVtYWxsb2NhdG9yL2JlbmNoZXMvcm91bmR0cmlwLnJzCi1AQCAtMjIsNyAr MjIsOCBAQCBzdGF0aWMgQTogSmVtYWxsb2MgPSBKZW1hbGxvYzsKLSAgICAgdGFyZ2V0X2FyY2gg PSAiYXJtIiwKLSAgICAgdGFyZ2V0X2FyY2ggPSAibWlwcyIsCi0gICAgIHRhcmdldF9hcmNoID0g Im1pcHNlbCIsCi0tICAgIHRhcmdldF9hcmNoID0gInBvd2VycGMiCi0rICAgIHRhcmdldF9hcmNo ID0gInBvd2VycGMiLAotKyAgICB0YXJnZXRfYXJjaCA9ICJwb3dlcnBjbGUiLAotICkpKV0KLSBj b25zdCBNSU5fQUxJR046IHVzaXplID0gODsKLSAjW2NmZyhhbGwoYW55KAotZGlmZiAtLWdpdCBh L3ZlbmRvci90aWt2LWplbWFsbG9jYXRvci9zcmMvbGliLnJzIGIvdmVuZG9yL3Rpa3YtamVtYWxs b2NhdG9yL3NyYy9saWIucnMKLWluZGV4IDRhOTM5NzMzMS4uNGNmNDdjMDVkIDEwMDY0NAotLS0t IGEvdmVuZG9yL3Rpa3YtamVtYWxsb2NhdG9yL3NyYy9saWIucnMKLSsrKyBiL3ZlbmRvci90aWt2 LWplbWFsbG9jYXRvci9zcmMvbGliLnJzCi1AQCAtNDYsNyArNDYsOCBAQCB1c2UgbGliYzo6e2Nf aW50LCBjX3ZvaWR9OwotICAgICB0YXJnZXRfYXJjaCA9ICJhcm0iLAotICAgICB0YXJnZXRfYXJj aCA9ICJtaXBzIiwKLSAgICAgdGFyZ2V0X2FyY2ggPSAibWlwc2VsIiwKLS0gICAgdGFyZ2V0X2Fy Y2ggPSAicG93ZXJwYyIKLSsgICAgdGFyZ2V0X2FyY2ggPSAicG93ZXJwYyIsCi0rICAgIHRhcmdl dF9hcmNoID0gInBvd2VycGNsZSIsCi0gKSkpXQotIGNvbnN0IEFMSUdOT0ZfTUFYX0FMSUdOX1Q6 IHVzaXplID0gODsKLSAjW2NmZyhhbGwoYW55KAotLS0gCi0yLjM3LjIKLQpkaWZmIC0tZ2l0IGEv c3JjcGtncy9ydXN0L3RlbXBsYXRlIGIvc3JjcGtncy9ydXN0L3RlbXBsYXRlCmluZGV4IDhlNjM5 YzQ4NjQ3MC4uNmZkOWZiY2YxODQ0IDEwMDY0NAotLS0gYS9zcmNwa2dzL3J1c3QvdGVtcGxhdGUK KysrIGIvc3JjcGtncy9ydXN0L3RlbXBsYXRlCkBAIC04LDE3ICs4LDE3IEBACiAjIHVwbG9hZGVk IHRvIGh0dHBzOi8vcmVwby1kZWZhdWx0LnZvaWRsaW51eC5vcmcvZGlzdGZpbGVzLwogIwogcGtn bmFtZT1ydXN0Ci12ZXJzaW9uPTEuNjQuMAordmVyc2lvbj0xLjY3LjEKIHJldmlzaW9uPTEKIGhv c3RtYWtlZGVwZW5kcz0iY21ha2UgY3VybCBwa2ctY29uZmlnIHB5dGhvbjMgdGFyIGNhcmdvLWJv b3RzdHJhcCIKLW1ha2VkZXBlbmRzPSJsaWJmZmktZGV2ZWwgbmN1cnNlcy1kZXZlbCBsaWJ4bWwy LWRldmVsIHpsaWItZGV2ZWwgbGx2bTEyIgorbWFrZWRlcGVuZHM9ImxpYmZmaS1kZXZlbCBuY3Vy c2VzLWRldmVsIGxpYnhtbDItZGV2ZWwgemxpYi1kZXZlbCBsbHZtMTUiCiBkZXBlbmRzPSJydXN0 LXN0ZCIKIHNob3J0X2Rlc2M9IlNhZmUsIGNvbmN1cnJlbnQsIHByYWN0aWNhbCBzeXN0ZW1zIGxh bmd1YWdlIgogbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIK IGxpY2Vuc2U9Ik1JVCwgQXBhY2hlLTIuMCIKIGhvbWVwYWdlPSJodHRwczovL3d3dy5ydXN0LWxh bmcub3JnLyIKIGRpc3RmaWxlcz0iaHR0cHM6Ly9zdGF0aWMucnVzdC1sYW5nLm9yZy9kaXN0L3J1 c3RjLSR7dmVyc2lvbn0tc3JjLnRhci5neiIKLWNoZWNrc3VtPWIzY2Q5ZjQ4MWUxYTI5MDFiZjZm MzgwOGQzMGM2OWNjNGVhODBkOTNjNGNjNGUyZWQ1MjI1OGIxODAzODEyMDUKK2NoZWNrc3VtPTQ2 NDgzZDNlNWRlODVhM2JkNDZmOGU3YTNhZTE4Mzc0OTYzOTEwNjdkYmU3MTNhMjVkM2NmMDUxYjNk OWZmNmUKIGxpYjMyZGlzYWJsZWQ9eWVzCiBtYWtlX2NoZWNrPW5vICMgQ0JBIGZvciBub3cKIApA QCAtMzMsNyArMzMsNyBAQCBpZiBbICIkWEJQU19UQVJHRVRfTElCQyIgPSAibXVzbCIgXTsgdGhl bgogZmkKIAogaWYgWyAiJENST1NTX0JVSUxEIiBdOyB0aGVuCi0JaG9zdG1ha2VkZXBlbmRzKz0i IHJ1c3QgbGx2bTEyIgorCWhvc3RtYWtlZGVwZW5kcys9IiBydXN0IGxsdm0xNSIKIAkjIFRoZXNl IGFyZSByZXF1aXJlZCBmb3IgYnVpbGRpbmcgdGhlIGJ1aWxkaG9zdCdzIHN0YWdlMC8xCiAJaG9z dG1ha2VkZXBlbmRzKz0iIGxpYmZmaS1kZXZlbCBsaWJ4bWwyLWRldmVsIG5jdXJzZXMtZGV2ZWwg emxpYi1kZXZlbCIKIGVsc2UKCkZyb20gMjA1ZWFlMmFhYTkwNDU5ZmExMTA3MjZhYTRmOGY3NjFk YjIxNmUzMiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogTWFyY2luIFB1YyA8dHJhbnp5 c3RvcmVrLmlvQHByb3Rvbm1haWwuY29tPgpEYXRlOiBTdW4sIDUgRmViIDIwMjMgMTQ6MTQ6MTYg KzAxMDAKU3ViamVjdDogW1BBVENIIDMwLzMyXSBjYXJnbzogdXBkYXRlIHRvIDEuNjcuMQoKLS0t CiBzcmNwa2dzL2NhcmdvL3BhdGNoZXMvY3Jvc3NiZWFtLXBwY2xlLnBhdGNoIHwgMTEgLS0tLS0t LS0tCiBzcmNwa2dzL2NhcmdvL3RlbXBsYXRlICAgICAgICAgICAgICAgICAgICAgIHwgMjUgKysr Ky0tLS0tLS0tLS0tLS0tLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgMzIg ZGVsZXRpb25zKC0pCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9jYXJnby9wYXRjaGVzL2Ny b3NzYmVhbS1wcGNsZS5wYXRjaAoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY2FyZ28vcGF0Y2hlcy9j cm9zc2JlYW0tcHBjbGUucGF0Y2ggYi9zcmNwa2dzL2NhcmdvL3BhdGNoZXMvY3Jvc3NiZWFtLXBw Y2xlLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzNmQ5MjU2ZTEwNzEuLjAw MDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2NhcmdvL3BhdGNoZXMvY3Jvc3NiZWFtLXBwY2xlLnBh dGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTEgKzAsMCBAQAotLS0tIGEvY3Jvc3NiZWFtLXV0aWxz L25vX2F0b21pYy5ycwotKysrIGIvY3Jvc3NiZWFtLXV0aWxzL25vX2F0b21pYy5ycwotQEAgLTMz LDYgKzMzLDggQEAgY29uc3QgTk9fQVRPTUlDXzY0OiAmWyZzdHJdID0gJlsKLSAgICAgInBvd2Vy cGMtdW5rbm93bi1saW51eC1nbnUiLAotICAgICAicG93ZXJwYy11bmtub3duLWxpbnV4LWdudXNw ZSIsCi0gICAgICJwb3dlcnBjLXVua25vd24tbGludXgtbXVzbCIsCi0rICAgICJwb3dlcnBjbGUt dW5rbm93bi1saW51eC1nbnUiLAotKyAgICAicG93ZXJwY2xlLXVua25vd24tbGludXgtbXVzbCIs Ci0gICAgICJwb3dlcnBjLXVua25vd24tbmV0YnNkIiwKLSAgICAgInBvd2VycGMtdW5rbm93bi1v cGVuYnNkIiwKLSAgICAgInBvd2VycGMtd3JzLXZ4d29ya3MiLApkaWZmIC0tZ2l0IGEvc3JjcGtn cy9jYXJnby90ZW1wbGF0ZSBiL3NyY3BrZ3MvY2FyZ28vdGVtcGxhdGUKaW5kZXggZTU1N2JiZTIw ODA1Li5iOTRmZTMzNGQ5ODAgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvY2FyZ28vdGVtcGxhdGUKKysr IGIvc3JjcGtncy9jYXJnby90ZW1wbGF0ZQpAQCAtMSw4ICsxLDggQEAKICMgVGVtcGxhdGUgZmls ZSBmb3IgJ2NhcmdvJwogcGtnbmFtZT1jYXJnbwotdmVyc2lvbj0xLjY0LjAKK3ZlcnNpb249MS42 Ny4xCiByZXZpc2lvbj0xCi1jcmVhdGVfd3Jrc3JjPXllcworX2NhcmdvX3JldmlzaW9uPTAuNjgu MAogYnVpbGRfaGVscGVyPXJ1c3QKIGhvc3RtYWtlZGVwZW5kcz0iY2FyZ28tYm9vdHN0cmFwIHJ1 c3QgcHl0aG9uMyBjdXJsIGNtYWtlIHBrZy1jb25maWcgemxpYi1kZXZlbCIKIG1ha2VkZXBlbmRz PSJydXN0IGxpYmN1cmwtZGV2ZWwgb3BlbnNzbC1kZXZlbCIKQEAgLTExLDEwICsxMSw4IEBAIHNo b3J0X2Rlc2M9IlJ1c3QgcGFja2FnZSBtYW5hZ2VyIgogbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQg PGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9Ik1JVCwgQXBhY2hlLTIuMCIKIGhvbWVw YWdlPSJodHRwczovL2NyYXRlcy5pby8iCi1kaXN0ZmlsZXM9Imh0dHBzOi8vZ2l0aHViLmNvbS9y dXN0LWxhbmcvY2FyZ28vYXJjaGl2ZS9ydXN0LSR7dmVyc2lvbn0udGFyLmd6Ci0gaHR0cHM6Ly9n aXRodWIuY29tL2Nyb3NzYmVhbS1ycy9jcm9zc2JlYW0vYXJjaGl2ZS9yZWZzL3RhZ3MvY3Jvc3Ni ZWFtLXV0aWxzLTAuOC44LnRhci5neiIKLWNoZWNrc3VtPSI4MzYzZWUzN2UxZmY4NWM3MzIyZjA2 MTkwODdiMTIzMGY0Mzg1MmRjYjI2MzE2NjI3YTFhNzAzZWQyMGVhNGI3Ci0gNTJjNDUxOTEwMjAz Y2Q5MDAyY2M0Yjg1Y2ZmOTVmNDVjNmJhMjQ1MzkyODAxZTgwZDc4OThjYTVjM2MzYWIyOSIKK2Rp c3RmaWxlcz0iaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jYXJnby9hcmNoaXZlL3JlZnMv dGFncy8ke19jYXJnb19yZXZpc2lvbn0udGFyLmd6IgorY2hlY2tzdW09YjYwYjc5NGRmZGNhNjFk ZmFkMTA2ZGJiYjljN2MyYzA3N2MxYTRiZDUwNWI5MDk4ODA1N2JlNWZkMWFlOTliNwogcmVwbGFj ZXM9ImNhcmdvLXRyZWU+PTAiCiAKIGJ1aWxkX29wdGlvbnM9InN0YXRpYyBiaW5kaXN0IgpAQCAt MjgsMjEgKzI2LDYgQEAgaWYgWyAteiAiJF9idWlsZF9zdGF0aWMiIF07IHRoZW4KIAltYWtlZGVw ZW5kcys9IiBsaWJnaXQyLWRldmVsIgogZmkKIAotcG9zdF9leHRyYWN0KCkgewotCW12IGNhcmdv LXJ1c3QtJHt2ZXJzaW9ufS8qIC4KLQltdiBjcm9zc2JlYW0tY3Jvc3NiZWFtLXV0aWxzLSogY3Jv c3NiZWFtLXV0aWxzCi19Ci0KLXBvc3RfcGF0Y2goKSB7Ci0Jcm0gY3Jvc3NiZWFtLXV0aWxzL2Ny b3NzYmVhbS11dGlscy9ub19hdG9taWMucnMKLQljcCBjcm9zc2JlYW0tdXRpbHMvbm9fYXRvbWlj LnJzIGNyb3NzYmVhbS11dGlscy9jcm9zc2JlYW0tdXRpbHMKLQotCWNhdCA+PiBDYXJnby50b21s IDw8LSBFT0YKLQkJW3BhdGNoLmNyYXRlcy1pb10KLQkJY3Jvc3NiZWFtLXV0aWxzID0geyBwYXRo ID0gJy4vY3Jvc3NiZWFtLXV0aWxzL2Nyb3NzYmVhbS11dGlscycgfQotCUVPRgotfQotCiBkb19i dWlsZCgpIHsKIAlsb2NhbCBjYXJncwogCgpGcm9tIGE2MjRhODdmOTJlZGI5OTljNTJmNzNlZTc5 MThmODE2MGExZGZhNmMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IE1hcmNpbiBQdWMg PHRyYW56eXN0b3Jlay5pb0Bwcm90b25tYWlsLmNvbT4KRGF0ZTogU3VuLCA1IEZlYiAyMDIzIDE0 OjE1OjIwICswMTAwClN1YmplY3Q6IFtQQVRDSCAzMS8zMl0gY2FyZ28tYXVkaXRhYmxlLWJvb3Rz dHJhcDogcmVidWlsZCBmb3IgcnVzdCAxLjY3CgotLS0KIHNyY3BrZ3MvY2FyZ28tYXVkaXRhYmxl LWJvb3RzdHJhcC90ZW1wbGF0ZSB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigr KSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY2FyZ28tYXVkaXRhYmxlLWJv b3RzdHJhcC90ZW1wbGF0ZSBiL3NyY3BrZ3MvY2FyZ28tYXVkaXRhYmxlLWJvb3RzdHJhcC90ZW1w bGF0ZQppbmRleCA0ZWZkMzIxMzdiOTEuLjQzZjg2MWEzNmYzYSAxMDA2NDQKLS0tIGEvc3JjcGtn cy9jYXJnby1hdWRpdGFibGUtYm9vdHN0cmFwL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvY2FyZ28t YXVkaXRhYmxlLWJvb3RzdHJhcC90ZW1wbGF0ZQpAQCAtMiw3ICsyLDcgQEAKICMgS2VlcCBzeW5j ZWQgd2l0aCBjYXJnby1hdWRpdGFibGUKIHBrZ25hbWU9Y2FyZ28tYXVkaXRhYmxlLWJvb3RzdHJh cAogdmVyc2lvbj0wLjYuMAotcmV2aXNpb249MQorcmV2aXNpb249MgogYnVpbGRfd3Jrc3JjPWNh cmdvLWF1ZGl0YWJsZQogYnVpbGRfc3R5bGU9Y2FyZ28KICMgUmVxdWlyZWQgZm9yIGJvb3RzdHJh cHBpbmcgcHVycG9zZXMKCkZyb20gZTMzYjQ3MmNlNWI3ZjBhMjE0Y2U5OGRlODBmNjQ2NmQ1MGUx YWRkMSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogTWFyY2luIFB1YyA8dHJhbnp5c3Rv cmVrLmlvQHByb3Rvbm1haWwuY29tPgpEYXRlOiBTdW4sIDUgRmViIDIwMjMgMTQ6MTY6MjkgKzAx MDAKU3ViamVjdDogW1BBVENIIDMyLzMyXSBjYXJnby1hdWRpdGFibGU6IHJlYnVpbGQgZm9yIHJ1 c3QgMS42NwoKLS0tCiBzcmNwa2dzL2NhcmdvLWF1ZGl0YWJsZS90ZW1wbGF0ZSB8IDIgKy0KIDEg ZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBh L3NyY3BrZ3MvY2FyZ28tYXVkaXRhYmxlL3RlbXBsYXRlIGIvc3JjcGtncy9jYXJnby1hdWRpdGFi bGUvdGVtcGxhdGUKaW5kZXggZDkzMDIzOTQ3MjViLi4xNzc4MGRiMTFhNWEgMTAwNjQ0Ci0tLSBh L3NyY3BrZ3MvY2FyZ28tYXVkaXRhYmxlL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvY2FyZ28tYXVk aXRhYmxlL3RlbXBsYXRlCkBAIC0yLDcgKzIsNyBAQAogIyBLZWVwIHN5bmNlZCB3aXRoIGNhcmdv LWF1ZGl0YWJsZS1ib290c3RyYXAKIHBrZ25hbWU9Y2FyZ28tYXVkaXRhYmxlCiB2ZXJzaW9uPTAu Ni4wCi1yZXZpc2lvbj0xCityZXZpc2lvbj0yCiBidWlsZF93cmtzcmM9Y2FyZ28tYXVkaXRhYmxl CiBidWlsZF9zdHlsZT1jYXJnbwogaG9zdG1ha2VkZXBlbmRzPSJjYXJnby1hdWRpdGFibGUtYm9v dHN0cmFwIgo= --===============6011662384979480619==--