From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (qmail 5803 invoked from network); 22 Feb 2023 19:26:40 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 22 Feb 2023 19:26:40 -0000 Content-Type: multipart/mixed; boundary="===============2127465499525270122==" MIME-Version: 1.0 Subject: =?utf8?q?Re=3A_=5BPR_PATCH=5D_=5BUpdated=5D_=5BWIP=5D_LLVM_15?= To: ml@inbox.vuxu.org From: tranzystorek-io Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Wed, 22 Feb 2023 20:26:40 +0100 List-Id: Message-ID: <20230222192640.i2wzd2Efp8jfQn2mnYhvnCcfZNi9h_w8FPZx5OSyvf0@z> GitHub notification mails are now in MIME to allow UTF8. --===============2127465499525270122== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgdHJhbnp5c3RvcmVrLWlvIGFnYWlu c3QgbWFzdGVyIG9uIHRoZSB2b2lkLXBhY2thZ2VzIHJlcG9zaXRvcnkKCmh0dHBzOi8vZ2l0aHVi LmNvbS90cmFuenlzdG9yZWstaW8vdm9pZC1wYWNrYWdlcyBsbHZtMTUKaHR0cHM6Ly9naXRodWIu Y29tL3ZvaWQtbGludXgvdm9pZC1wYWNrYWdlcy9wdWxsLzQwODIxCgpbV0lQXSBMTFZNIDE1Cltj aSBza2lwXQ0KDQpUT0RPOg0KDQotIFt4XSB+fkFkanVzdCBwYXRjaGVzIG1hcmtlZCBhcyBgLnBh dGNoLnNraXBgfn4gZHJvcHBlZCBzdXBwb3J0IGZvciBwcGMNCi0gW3hdIE1ha2UgbGlib21wIGEg c2hsaWIgKGNoYW5nZSBzbyBmaWxlIG5hbWUgYW5kIGluc3RhbGwgYSBzeW1saW5rKQ0KLSBbeF0g QXZvaWQgY3JlYXRpbmcgdHJpcGxldCBkaXJzIHVuZGVyIC91c3IvDQoNClRPRE8gTExWTSByZGVw czoNCg0KLSBbeF0gY2xhenkgfn4oYnJlYWtpbmcgY2hhbmdlcyBpbiBjbGFuZyBBUEkpfn4gLSBw YXRjaGVkDQotIFt4XSBiZWlnbmV0IChodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lk LXBhY2thZ2VzL3B1bGwvNDE1MjkpDQotIFsgXSBpc3BjICgxLjE4LjEgc3VwcG9ydHMgTExWTSBg PD0gMTRgKQ0KLSBbeF0gbGRjICgxLjMwLjAgc3VwcG9ydHMgTExWTSBgPD0gMTRgKSAtIGJ1aWxk cyBpbiB2ZXJzaW9uIDEuMzENCiAgLSBbeF0gdGlsaXggZmFpbHMgdG8gYnVpbGQgd2l0aCBsZGMg MS4zMSAoaHR0cHM6Ly9naXRodWIuY29tL2dudW5uMS90aWxpeC9pc3N1ZXMvMjE1MSkgLSBwYXRj aGVkIHRvIHVzZSB1bmRlYUQNCi0gW3hdIGdoZGwgKDIuMC4wIHN1cHBvcnRzIExMVk0gYDw9IDE0 YCkgLSBidWlsZHMgd2l0aCBsbHZtMTINCi0gW3hdIHF0DQotIFt4XSBxdGNyZWF0b3IgKCM0MjI5 MCkNCi0gW3hdIHNoaWJva2VuMiAodGVzdHMgZmFpbGluZyB3aXRoIGxsdm0xNSkNCi0gW3hdIGJw ZnRyYWNlIChodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL3B1bGwv MzkwMDIpDQotIFt4XSBsaWJjbGMgKHRlc3RzIGZhaWwgd2l0aCB1bnJlc29sdmVkIGNhbGxzIGh0 dHBzOi8vZ2lzdC5naXRodWJ1c2VyY29udGVudC5jb20vdHJhbnp5c3RvcmVrLWlvL2EyYWE4YTBk ODAxMGFmNTI5OWY3ZDFmZjlmODJjMjJiL3Jhdy82ZDMxNmQ5OWQ2MDc5OTkwYjczYWU3N2QyNzRk ZDEyMGI5NTYwNTg5L0xhc3RUZXN0LmxvZykgLT4gcmVtb3ZlZCBjbHNwdg0KLSBbeF0gemlnCgpB IHBhdGNoIGZpbGUgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2th Z2VzL3B1bGwvNDA4MjEucGF0Y2ggaXMgYXR0YWNoZWQ= --===============2127465499525270122== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-llvm15-40821.patch" RnJvbSA3ZmQ0Yzk4ZWNlMjYzMGQyZWEyMjA5OGExOTcwYmE0MTM0Nzg0YTE4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJjaW4gUHVjIDx0cmFuenlzdG9yZWsuaW9AcHJvdG9ubWFp bC5jb20+CkRhdGU6IFN1biwgMTggRGVjIDIwMjIgMDA6MzY6NTkgKzAxMDAKU3ViamVjdDogW1BB VENIIDAxLzI2XSBOZXcgcGFja2FnZTogbGx2bTE1LTE1LjAuNwoKLS0tCiBjb21tb24vc2hsaWJz 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 PSIqLXJjKiIKCkZyb20gODBjOTRjZDE3ZDQ2ZTZiM2JlNmJmZjk4YmVlOTQ1ZDU3ZTM5ZDdmOSBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogTWFyY2luIFB1YyA8dHJhbnp5c3RvcmVrLmlv QHByb3Rvbm1haWwuY29tPgpEYXRlOiBTdW4sIDE4IERlYyAyMDIyIDAwOjQwOjE4ICswMTAwClN1 YmplY3Q6IFtQQVRDSCAwMi8yNl0gbGx2bTogdXBkYXRlIHRvIDE1CgotLS0KIGNvbW1vbi9zaGxp 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+PTAiCgpGcm9tIGQx Mjg0Mzc2MjJlZmY1OGFlNmU5YjZkNDFiY2Q5M2Y4ZGI1YjVjMDQgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206IE1hcmNpbiBQdWMgPHRyYW56eXN0b3Jlay5pb0Bwcm90b25tYWlsLmNvbT4K RGF0ZTogU3VuLCAxOCBEZWMgMjAyMiAxMjoyMDowOCArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMDMv MjZdIGxsdm0xMjogcmVtb3ZlIGJ1bXBlZCBzdWJwYWNrYWdlcwoKLS0tCiBzcmNwa2dzL2xsdm0x 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 ZS9kb2Mvb3Blbm1wCi0JfQogfQogCiBsaWJsbHZtMTJfcGFja2FnZSgpIHsKCkZyb20gZjk5NjE3 M2E0NDkwNGIyODcyZDcyY2JiMDhjODhlN2Y3NDgwNDc0MiBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogTWFyY2luIFB1YyA8dHJhbnp5c3RvcmVrLmlvQHByb3Rvbm1haWwuY29tPgpEYXRl OiBUaHUsIDUgSmFuIDIwMjMgMTU6MTE6MDYgKzAxMDAKU3ViamVjdDogW1BBVENIIDA0LzI2XSBT 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 RnJvbSBiZWNkNDcwMWFlYWVkZGYxYThhOWQ5MjRmZDIyM2Q4ODAyZmNiYWM3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJjaW4gUHVjIDx0cmFuenlzdG9yZWsuaW9AcHJvdG9ubWFp bC5jb20+CkRhdGU6IFRodSwgNSBKYW4gMjAyMyAxNDoyNzowMyArMDEwMApTdWJqZWN0OiBbUEFU Q0ggMDUvMjZdIG1lc2E6IHJlYnVpbGQgZm9yIGxsdm0xNQoKLS0tCiBzcmNwa2dzL21lc2EvdGVt cGxhdGUgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24o LSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL21lc2EvdGVtcGxhdGUgYi9zcmNwa2dzL21lc2EvdGVt cGxhdGUKaW5kZXggZDlmZjBiMmZmMjNkLi4xMzIyNjNkMzU5OWYgMTAwNjQ0Ci0tLSBhL3NyY3Br Z3MvbWVzYS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL21lc2EvdGVtcGxhdGUKQEAgLTEsNyArMSw3 IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdtZXNhJwogcGtnbmFtZT1tZXNhCiB2ZXJzaW9uPTIy LjMuNQotcmV2aXNpb249MQorcmV2aXNpb249MgogYnVpbGRfc3R5bGU9bWVzb24KIGNvbmZpZ3Vy ZV9hcmdzPSItRGdsdm5kPXRydWUgLURzaGFyZWQtZ2xhcGk9ZW5hYmxlZCAtRGdibT1lbmFibGVk IC1EZWdsPWVuYWJsZWQKICAtRG9zbWVzYT10cnVlIC1EZ2xlczE9ZW5hYmxlZCAtRGdsZXMyPWVu YWJsZWQgLURnbHg9ZHJpIC1EZHJpMz1lbmFibGVkCgpGcm9tIDY3YjYwMWQ2MTZkM2U1N2JkYzZj MGUwMGQ3YTYzNTYzZWRiMjJiOGQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IE1hcmNp biBQdWMgPHRyYW56eXN0b3Jlay5pb0Bwcm90b25tYWlsLmNvbT4KRGF0ZTogVGh1LCA1IEphbiAy MDIzIDE0OjM0OjA0ICswMTAwClN1YmplY3Q6IFtQQVRDSCAwNi8yNl0gYmNjOiByZWJ1aWxkIGZv ciBsbHZtMTUKCi0tLQogc3JjcGtncy9iY2MvdGVtcGxhdGUgfCAyICstCiAxIGZpbGUgY2hhbmdl ZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2Jj Yy90ZW1wbGF0ZSBiL3NyY3BrZ3MvYmNjL3RlbXBsYXRlCmluZGV4IDc1MjY1ODBmMTdlZC4uYmRi Y2ZmNzIyN2EwIDEwMDY0NAotLS0gYS9zcmNwa2dzL2JjYy90ZW1wbGF0ZQorKysgYi9zcmNwa2dz L2JjYy90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2JjYycK IHBrZ25hbWU9YmNjCiB2ZXJzaW9uPTAuMjYuMAotcmV2aXNpb249MgorcmV2aXNpb249MwogYnVp bGRfc3R5bGU9Y21ha2UKIGNvbmZpZ3VyZV9hcmdzPSItRFJFVklTSU9OPSR7dmVyc2lvbn0gLURF TkFCTEVfTExWTV9TSEFSRUQ9MSIKIGhvc3RtYWtlZGVwZW5kcz0iZmxleCBweXRob24zLXNldHVw dG9vbHMiCgpGcm9tIDNlNjEyMzQ5MjMwZDA2MjhlNzc5ZmZkZDIxNmEzYzRlYzc1NjJjNjggTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IE1hcmNpbiBQdWMgPHRyYW56eXN0b3Jlay5pb0Bw cm90b25tYWlsLmNvbT4KRGF0ZTogVGh1LCA1IEphbiAyMDIzIDE0OjM3OjI1ICswMTAwClN1Ympl Y3Q6IFtQQVRDSCAwNy8yNl0gYnBmdHJhY2U6IHJlYnVpbGQgZm9yIGxsdm0xNQoKLS0tCiBzcmNw a2dzL2JwZnRyYWNlL3RlbXBsYXRlIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9u KCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9icGZ0cmFjZS90ZW1wbGF0 ZSBiL3NyY3BrZ3MvYnBmdHJhY2UvdGVtcGxhdGUKaW5kZXggOTUyNjgyNjYyMTI4Li4yZjAxZGJm Njk1MzAgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvYnBmdHJhY2UvdGVtcGxhdGUKKysrIGIvc3JjcGtn cy9icGZ0cmFjZS90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3Ig J2JwZnRyYWNlJwogcGtnbmFtZT1icGZ0cmFjZQogdmVyc2lvbj0wLjE3LjAKLXJldmlzaW9uPTEK K3JldmlzaW9uPTIKIGFyY2hzPSJ4ODZfNjQqIGFhcmNoNjQqIHBwYzY0KiIKIGJ1aWxkX3N0eWxl PWNtYWtlCiBjb25maWd1cmVfYXJncz0iLURVU0VfU1lTVEVNX0JQRl9CQ0M9T04gLURCVUlMRF9U RVNUSU5HPU9GRiIgIyBuZWVkcyByb290IHRvIHJ1bgoKRnJvbSBlZTAwYWJkMzk3YTY5MTI3NTVm OWYzNDRjMTczY2I0YTU4ZGQzMzAyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJj aW4gUHVjIDx0cmFuenlzdG9yZWsuaW9AcHJvdG9ubWFpbC5jb20+CkRhdGU6IFRodSwgNSBKYW4g MjAyMyAxNDo0Mzo1MyArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMDgvMjZdIENhc3RYTUw6IHJlYnVp bGQgZm9yIGxsdm0xNQoKLS0tCiBzcmNwa2dzL0Nhc3RYTUwvdGVtcGxhdGUgfCA2ICsrKy0tLQog MSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9zcmNwa2dzL0Nhc3RYTUwvdGVtcGxhdGUgYi9zcmNwa2dzL0Nhc3RYTUwvdGVtcGxhdGUK aW5kZXggNWQ3ZDk1MDM2NThjLi4yOGM0MjRjNzgwNzMgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvQ2Fz dFhNTC90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL0Nhc3RYTUwvdGVtcGxhdGUKQEAgLTEsNyArMSw3 IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdDYXN0WE1MJwogcGtnbmFtZT1DYXN0WE1MCiB2ZXJz aW9uPTAuNC42Ci1yZXZpc2lvbj0xCityZXZpc2lvbj0yCiBidWlsZF9zdHlsZT1jbWFrZQogY29u ZmlndXJlX2FyZ3M9Ii1EU1BISU5YX01BTj1ZRVMgLURDYXN0WE1MX0lOU1RBTExfTUFOX0RJUj1z aGFyZS9tYW4iCiBob3N0bWFrZWRlcGVuZHM9ImNsYW5nIHB5dGhvbjMtU3BoaW54IgpAQCAtMTIs OCArMTIsOCBAQCBzaG9ydF9kZXNjPSJDLWZhbWlseSBhYnN0cmFjdCBzeW50YXggdHJlZSBYTUwg b3V0cHV0IHRvb2wiCiBtYWludGFpbmVyPSJFdmdlbnkgRXJtYWtvdiA8ZXZnZW55LnYuZXJtYWtv dkBnbWFpbC5jb20+IgogbGljZW5zZT0iQXBhY2hlLTIuMCIKIGhvbWVwYWdlPSJodHRwczovL2dp dGh1Yi5jb20vQ2FzdFhNTC9DYXN0WE1MIgotZGlzdGZpbGVzPSJodHRwczovL2dpdGh1Yi5jb20v Q2FzdFhNTC9DYXN0WE1ML2FyY2hpdmUvdiR7dmVyc2lvbn0udGFyLmd6IgotY2hlY2tzdW09OGRj ZGJjMWYyM2ExMzBlNGJkYjBiMDlmNTdjMzA3NjFhMDJhMzQ2YjRkYjQwMzc1NTUwNDhhZjJhMjkz ZDY2YQorZGlzdGZpbGVzPSJodHRwczovL2dpdGh1Yi5jb20vQ2FzdFhNTC9DYXN0WE1ML2FyY2hp dmUvcmVmcy90YWdzL3Yke3ZlcnNpb259LnRhci5neiIKK2NoZWNrc3VtPWJiOTAyNGVjOWVhNTA4 MmUwZDUyN2YxOWJmM2MyZGY3OWYxNjk5ZjU0YjZjZWMxNjhjMDI0ZTcyN2IzMmU2ZDEKIAogcG9z dF9pbnN0YWxsKCkgewogCXJtIC1yICR7REVTVERJUn0vdXNyL3NoYXJlL2Nhc3R4bWwvY2xhbmcv aW5jbHVkZQoKRnJvbSBkOTUzODUwNmFlOTJkZGEwZjI5NDkwNTlkNDk4ZjQ5NDhlM2FiZTI2IE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJjaW4gUHVjIDx0cmFuenlzdG9yZWsuaW9A cHJvdG9ubWFpbC5jb20+CkRhdGU6IFRodSwgNSBKYW4gMjAyMyAxNDo0ODo1NSArMDEwMApTdWJq ZWN0OiBbUEFUQ0ggMDkvMjZdIGNjbHM6IHJlYnVpbGQgZm9yIGxsdm0xNQoKLS0tCiBzcmNwa2dz L2NjbHMvdGVtcGxhdGUgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEg ZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2NjbHMvdGVtcGxhdGUgYi9zcmNwa2dz L2NjbHMvdGVtcGxhdGUKaW5kZXggODJmYTYxOTMzODc4Li5lY2M5ZjNlMzhhNWQgMTAwNjQ0Ci0t LSBhL3NyY3BrZ3MvY2Nscy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2NjbHMvdGVtcGxhdGUKQEAg LTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdjY2xzJwogcGtnbmFtZT1jY2xzCiB2 ZXJzaW9uPTAuMjAyMjA3MjkKLXJldmlzaW9uPTEKK3JldmlzaW9uPTIKIGJ1aWxkX3N0eWxlPWNt YWtlCiBob3N0bWFrZWRlcGVuZHM9ImNsYW5nLXRvb2xzLWV4dHJhIgogbWFrZWRlcGVuZHM9ImNs YW5nLXRvb2xzLWV4dHJhIGxpYnhtbDItZGV2ZWwgbGx2bSBuY3Vyc2VzLWRldmVsIHJhcGlkanNv biB6bGliLWRldmVsIgoKRnJvbSA2NjY2NzllNTI1ZjUzYTBiN2NkY2M2ZDU5ZjJhNmJkMTI5ODBh M2JhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJjaW4gUHVjIDx0cmFuenlzdG9y ZWsuaW9AcHJvdG9ubWFpbC5jb20+CkRhdGU6IFRodSwgNSBKYW4gMjAyMyAxNDo1MjoxNCArMDEw MApTdWJqZWN0OiBbUEFUQ0ggMTAvMjZdIGluY2x1ZGUtd2hhdC15b3UtdXNlOiB1cGRhdGUgdG8g MC4xOQoKLS0tCiBzcmNwa2dzL2luY2x1ZGUtd2hhdC15b3UtdXNlL3RlbXBsYXRlIHwgNCArKy0t CiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL3NyY3BrZ3MvaW5jbHVkZS13aGF0LXlvdS11c2UvdGVtcGxhdGUgYi9zcmNwa2dzL2lu Y2x1ZGUtd2hhdC15b3UtdXNlL3RlbXBsYXRlCmluZGV4IGQzNjU1NzA5YzIwYy4uMWEzMGJjMDRi YjJkIDEwMDY0NAotLS0gYS9zcmNwa2dzL2luY2x1ZGUtd2hhdC15b3UtdXNlL3RlbXBsYXRlCisr KyBiL3NyY3BrZ3MvaW5jbHVkZS13aGF0LXlvdS11c2UvdGVtcGxhdGUKQEAgLTEsNiArMSw2IEBA CiAjIFRlbXBsYXRlIGZpbGUgZm9yICdpbmNsdWRlLXdoYXQteW91LXVzZScKIHBrZ25hbWU9aW5j bHVkZS13aGF0LXlvdS11c2UKLXZlcnNpb249MC4xNgordmVyc2lvbj0wLjE5CiByZXZpc2lvbj0x CiBidWlsZF9zdHlsZT1jbWFrZQogY29uZmlndXJlX2FyZ3M9Ii1ESVdZVV9MTFZNX1JPT1RfUEFU SD0ke1hCUFNfQ1JPU1NfQkFTRX0vdXNyICIKQEAgLTExLDcgKzExLDcgQEAgbWFpbnRhaW5lcj0i TGVhaCBOZXVraXJjaGVuIDxsZWFoQHZ1eHUub3JnPiIKIGxpY2Vuc2U9Ik5DU0EiCiBob21lcGFn ZT0iaHR0cHM6Ly9pbmNsdWRlLXdoYXQteW91LXVzZS5vcmcvIgogZGlzdGZpbGVzPSJodHRwczov L2luY2x1ZGUtd2hhdC15b3UtdXNlLm9yZy9kb3dubG9hZHMvJHtwa2duYW1lfS0ke3ZlcnNpb259 LnNyYy50YXIuZ3oiCi1jaGVja3N1bT04ZDZmYzliMjU1MzQzYmMxZTVlYzQ1OWUzOTUxMmRmMWQ1 MWM2MGUwMzU2Mjk4NWUwMDc2MDM2MTE5ZmY1YTFjCitjaGVja3N1bT0yYjEwMTU3YjYwZWEwOGFk YzA4ZTM4OTZiNDkyMWM3M2ZjYWRkNWVjNGViNjUyYjI5YTM0MTI5ZDUwMWU1ZWUwCiBweXRob25f dmVyc2lvbj0zCiAKIHBvc3RfaW5zdGFsbCgpIHsKCkZyb20gOGY0NjQ2ZGZhM2MzMTVmNDc4MTg5 NDY4M2M3ZTAxNjI1ZDgyZGYzZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogTWFyY2lu IFB1YyA8dHJhbnp5c3RvcmVrLmlvQHByb3Rvbm1haWwuY29tPgpEYXRlOiBGcmksIDYgSmFuIDIw MjMgMTc6MTE6MDQgKzAxMDAKU3ViamVjdDogW1BBVENIIDExLzI2XSBydGFnczogcmVidWlsZCBm b3IgbGx2bTE1CgotLS0KIHNyY3BrZ3MvcnRhZ3MvdGVtcGxhdGUgfCAyICstCiAxIGZpbGUgY2hh bmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dz L3J0YWdzL3RlbXBsYXRlIGIvc3JjcGtncy9ydGFncy90ZW1wbGF0ZQppbmRleCBiNDk2YTFiMGU3 MjEuLjliMTYxZTY5MGQ3NiAxMDA2NDQKLS0tIGEvc3JjcGtncy9ydGFncy90ZW1wbGF0ZQorKysg Yi9zcmNwa2dzL3J0YWdzL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxl IGZvciAncnRhZ3MnCiBwa2duYW1lPXJ0YWdzCiB2ZXJzaW9uPTIuMzgKLXJldmlzaW9uPTUKK3Jl dmlzaW9uPTYKIGJ1aWxkX3N0eWxlPWNtYWtlCiAjIERvbid0IHJ1biB0ZXN0cyBpbiBkb19pbnN0 YWxsLCBwbGVhc2UuCiBjb25maWd1cmVfYXJncz0iLURTS0lQX0NURVNUPVRSVUUiCgpGcm9tIGM3 NThmYTNhZDRmOTk0NmUxYjlkZTllOWE3YzA0ODU2NTAyNGVmZmQgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206IE1hcmNpbiBQdWMgPHRyYW56eXN0b3Jlay5pb0Bwcm90b25tYWlsLmNvbT4K RGF0ZTogRnJpLCA2IEphbiAyMDIzIDE3OjE0OjE0ICswMTAwClN1YmplY3Q6IFtQQVRDSCAxMi8y Nl0ganVDaSsrOiByZWJ1aWxkIGZvciBsbHZtMTUKCi0tLQogc3JjcGtncy9qdUNpKysvdGVtcGxh dGUgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkK CmRpZmYgLS1naXQgYS9zcmNwa2dzL2p1Q2krKy90ZW1wbGF0ZSBiL3NyY3BrZ3MvanVDaSsrL3Rl bXBsYXRlCmluZGV4IGMxOTY5MjM3ZjExZC4uNDE2YmRlN2NjNGQwIDEwMDY0NAotLS0gYS9zcmNw a2dzL2p1Q2krKy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2p1Q2krKy90ZW1wbGF0ZQpAQCAtMSw3 ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2p1Q2krKycKIHBrZ25hbWU9anVDaSsrCiB2 ZXJzaW9uPTEuNy4yCi1yZXZpc2lvbj0yCityZXZpc2lvbj0zCiBfbGliY2xhbmdtbV9jb21taXQ9 Ijk3MDRiOWI2ZGUwOTgyYTU4OGZhNDE3NDExNTdkNTY0MGFmZWRmMzAiCiBfdGlueV9jb21taXQ9 IjgzOWZmODA2ZGM0NDdmZjQ5YWY4MGY5YTllYWE3OTQ5Zjc3MGY4ZTUiCiBjcmVhdGVfd3Jrc3Jj PXllcwoKRnJvbSAyOTZlOTBjOTg1OWQ5YmQ5Yzk3YWNkNWE3NjgxZWUwZjIzMDk5ZGM1IE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJjaW4gUHVjIDx0cmFuenlzdG9yZWsuaW9AcHJv dG9ubWFpbC5jb20+CkRhdGU6IFNhdCwgNyBKYW4gMjAyMyAxMTozMToxNCArMDEwMApTdWJqZWN0 OiBbUEFUQ0ggMTMvMjZdIHF0NTogcmVidWlsZCBmb3IgbGx2bTE1CgotLS0KIHNyY3BrZ3MvcXQ1 L3RlbXBsYXRlIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0 aW9uKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDUvdGVtcGxhdGUgYi9zcmNwa2dzL3F0NS90 ZW1wbGF0ZQppbmRleCBmNGY5ZjViNTM0NGEuLmI1MTdiNDllYWQyZCAxMDA2NDQKLS0tIGEvc3Jj cGtncy9xdDUvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9xdDUvdGVtcGxhdGUKQEAgLTUsNyArNSw3 IEBAIHBrZ25hbWU9cXQ1CiB2ZXJzaW9uPTUuMTUuNysyMDIyMTExOQogIyBjb21taXQgZjhjOWZi MzA0YmMzZTUzYjNhYTA3Zjk2MmNkNzRlOTE2MGRlY2NjYwogIyBiYXNlIHJlcG86IGh0dHBzOi8v aW52ZW50LmtkZS5vcmcvcXQvcXQvcXQ1Ci1yZXZpc2lvbj0xCityZXZpc2lvbj0yCiBidWlsZF9z dHlsZT1tZXRhCiBob3N0bWFrZWRlcGVuZHM9ImNtYWtlIGNsYW5nIGZsZXggcGVybCBnbGliLWRl dmVsIHBrZy1jb25maWcKICBweXRob24gcmUyYyBydWJ5IHdoaWNoIgoKRnJvbSA3ZWM0MDdiN2Jh NDFlZDhhYWNjMjlmYmYzMmViNmY4ZTJhYjg3NDVmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiBNYXJjaW4gUHVjIDx0cmFuenlzdG9yZWsuaW9AcHJvdG9ubWFpbC5jb20+CkRhdGU6IE1v biwgOSBKYW4gMjAyMyAwMToyMjoxOCArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMTQvMjZdIGNvZGVs aXRlOiByZWJ1aWxkIGZvciBsbHZtMTUKCi0tLQogc3JjcGtncy9jb2RlbGl0ZS90ZW1wbGF0ZSB8 IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlm ZiAtLWdpdCBhL3NyY3BrZ3MvY29kZWxpdGUvdGVtcGxhdGUgYi9zcmNwa2dzL2NvZGVsaXRlL3Rl bXBsYXRlCmluZGV4IDZiOGIwMDdjOGE0My4uYzYxMTVlMDI3NGNlIDEwMDY0NAotLS0gYS9zcmNw a2dzL2NvZGVsaXRlL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvY29kZWxpdGUvdGVtcGxhdGUKQEAg LTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdjb2RlbGl0ZScKIHBrZ25hbWU9Y29k ZWxpdGUKIHZlcnNpb249MTYuMC4wCi1yZXZpc2lvbj0yCityZXZpc2lvbj0zCiBjcmVhdGVfd3Jr c3JjPXllcwogYnVpbGRfc3R5bGU9Y21ha2UKIGJ1aWxkX2hlbHBlcj1jbWFrZS13eFdpZGdldHMt Z3RrMwoKRnJvbSAxNTYwMTU1YTY3NzExMDA2OTgwM2Y1NDhjNjQxNjIwYTQzMWE1Mjk5IE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJjaW4gUHVjIDx0cmFuenlzdG9yZWsuaW9AcHJv dG9ubWFpbC5jb20+CkRhdGU6IE1vbiwgOSBKYW4gMjAyMyAwMTo1ODoyMSArMDEwMApTdWJqZWN0 OiBbUEFUQ0ggMTUvMjZdIGtkZXZlbG9wOiByZWJ1aWxkIGZvciBsbHZtMTUKCi0tLQogc3JjcGtn cy9rZGV2ZWxvcC90ZW1wbGF0ZSB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigr KSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mva2RldmVsb3AvdGVtcGxhdGUg Yi9zcmNwa2dzL2tkZXZlbG9wL3RlbXBsYXRlCmluZGV4IDVlYjI3NTU4MzEzOC4uYzMyZWU1MjQw YTQ0IDEwMDY0NAotLS0gYS9zcmNwa2dzL2tkZXZlbG9wL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3Mv a2RldmVsb3AvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdr ZGV2ZWxvcCcKIHBrZ25hbWU9a2RldmVsb3AKIHZlcnNpb249MjIuMTIuMQotcmV2aXNpb249MQor cmV2aXNpb249MgogYnVpbGRfc3R5bGU9Y21ha2UKIGNvbmZpZ3VyZV9hcmdzPSItREJVSUxEX1RF U1RJTkc9T0ZGIgogaG9zdG1ha2VkZXBlbmRzPSJleHRyYS1jbWFrZS1tb2R1bGVzIHF0NS1xbWFr ZSBxdDUtaG9zdC10b29scyBxdDUtdG9vbHMKCkZyb20gNWIxYzM1ZjY5OTFlZTk5NGQ1ZGMyZDg1 MGU1OWNkZjI3M2E0ZTkzZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogTWFyY2luIFB1 YyA8dHJhbnp5c3RvcmVrLmlvQHByb3Rvbm1haWwuY29tPgpEYXRlOiBNb24sIDE2IEphbiAyMDIz IDE0OjQzOjQ3ICswMTAwClN1YmplY3Q6IFtQQVRDSCAxNi8yNl0gemlnOiB1cGRhdGUgdG8gMC4x 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 cGllPXllcwogbm9jcm9zcz15ZXMKIAoKRnJvbSAxNGM1NThmMGRhMWI3N2E0OGZlYzgyZmViMDBk MTczYjZlMWM5M2VjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJjaW4gUHVjIDx0 cmFuenlzdG9yZWsuaW9AcHJvdG9ubWFpbC5jb20+CkRhdGU6IFR1ZSwgMjQgSmFuIDIwMjMgMTQ6 MDM6NTEgKzAxMDAKU3ViamVjdDogW1BBVENIIDE3LzI2XSByaXZlcjogdXBkYXRlIHRvIDAuMi4z 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 cz0ieHdheWxhbmQiCiBidWlsZF9vcHRpb25zX2RlZmF1bHQ9Inh3YXlsYW5kIgoKRnJvbSA2ZWM3 YWJiMWQxNTdlNGEyZWE5NmQ0ZGU2NTliNGZmYjM2NWQwYzI5IE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQpGcm9tOiBNYXJjaW4gUHVjIDx0cmFuenlzdG9yZWsuaW9AcHJvdG9ubWFpbC5jb20+CkRh dGU6IEZyaSwgMTAgRmViIDIwMjMgMTc6MjU6MzIgKzAxMDAKU3ViamVjdDogW1BBVENIIDE4LzI2 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 aWd1cmUoKSB7CgpGcm9tIDAxNzMzNWExMjYyNzhhZTg0NmU3NDZlZjA1Zjg5NzdjN2NjMmE5YTQg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IE1hcmNpbiBQdWMgPHRyYW56eXN0b3Jlay5p b0Bwcm90b25tYWlsLmNvbT4KRGF0ZTogRnJpLCAxMCBGZWIgMjAyMyAyMDoyMDo0MyArMDEwMApT dWJqZWN0OiBbUEFUQ0ggMTkvMjZdIHNoaWJva2VuMjogdXBkYXRlIHRvIDUuMTUuNwoKLS0tCiBz cmNwa2dzL3NoaWJva2VuMi90ZW1wbGF0ZSB8IDYgKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgMyBp bnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvc2hpYm9r ZW4yL3RlbXBsYXRlIGIvc3JjcGtncy9zaGlib2tlbjIvdGVtcGxhdGUKaW5kZXggOWNlYjhiMzEz ZGU3Li4wODRlY2MzYmExZTEgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mvc2hpYm9rZW4yL3RlbXBsYXRl CisrKyBiL3NyY3BrZ3Mvc2hpYm9rZW4yL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1w bGF0ZSBmaWxlIGZvciAnc2hpYm9rZW4yJwogcGtnbmFtZT1zaGlib2tlbjIKLXZlcnNpb249NS4x NS41Ci1yZXZpc2lvbj0yCit2ZXJzaW9uPTUuMTUuNworcmV2aXNpb249MQogX3BrZ25hbWU9InB5 c2lkZS1zZXR1cC1vcGVuc291cmNlLXNyYy0ke3ZlcnNpb259IgogYnVpbGRfd3Jrc3JjPSJzb3Vy Y2VzL3NoaWJva2VuMiIKIGJ1aWxkX3N0eWxlPWNtYWtlCkBAIC0xNCw3ICsxNCw3IEBAIG1haW50 YWluZXI9InlvcGl0byA8cGllcnJlLmJvdXJnaW5AZnJlZS5mcj4iCiBsaWNlbnNlPSJHUEwtMy4w LW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5xdC5pby9RdF9mb3JfUHl0aG9uL1No aWJva2VuIgogZGlzdGZpbGVzPSJodHRwczovL2Rvd25sb2FkLnF0LmlvL29mZmljaWFsX3JlbGVh c2VzL1F0Rm9yUHl0aG9uL3B5c2lkZTIvUHlTaWRlMi0ke3ZlcnNpb259LXNyYy8ke19wa2duYW1l fS50YXIueHoiCi1jaGVja3N1bT0zOTIwYTRmYjM1MzMwMDI2MGM5YmM0NmZmNzBmMWZiOTc1YzVl N2VmYTIyZTlkNTEyMjI1ODg5MjhjZTE5YjMzCitjaGVja3N1bT1mNjEyMTBhZTI0ZTY4ODJkNWQw Y2EwMDU5MjI5ZTVkYzRmMzVlMmJjYTkyZGQ2Y2FmOTZjMGY0MTk0M2E4Mjk0CiAKIHB5dGhvbl92 ZXJzaW9uPTMKIGV4cG9ydCBDTEFOR19JTlNUQUxMX0RJUj0ke1hCUFNfQ1JPU1NfQkFTRX0vdXNy CgpGcm9tIDcyNmExOGUxZjUxMDMyNmNlZTk2OTVlNWE4ZWU4Y2ZjNWM5MDUzNDAgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCkZyb206IE1hcmNpbiBQdWMgPHRyYW56eXN0b3Jlay5pb0Bwcm90b25t YWlsLmNvbT4KRGF0ZTogVGh1LCAxNiBGZWIgMjAyMyAyMDoxMzowMiArMDEwMApTdWJqZWN0OiBb UEFUQ0ggMjAvMjZdIGNsYXp5OiByZWJ1aWxkIGZvciBsbHZtMTUKCi0tLQogLi4uL3BhdGNoZXMv 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 ZWxwZXI9cWVtdQogaG9zdG1ha2VkZXBlbmRzPSJsbHZtIgoKRnJvbSA4Y2VkZTZjZTNiZjM3YWEw M2ViYTUyN2Y2NGFlZjA3NjZhMDUwNDIxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBN YXJjaW4gUHVjIDx0cmFuenlzdG9yZWsuaW9AcHJvdG9ubWFpbC5jb20+CkRhdGU6IFRodSwgMTYg RmViIDIwMjMgMjM6NDI6MDAgKzAxMDAKU3ViamVjdDogW1BBVENIIDIxLzI2XSBsZGM6IHVwZGF0 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 CkZyb20gZGQwOWE4YjQ2ZjhhYmU5MTJmMGRkNGUyN2JkYTYyOWZhNmJmYTdjYSBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogTWFyY2luIFB1YyA8dHJhbnp5c3RvcmVrLmlvQHByb3Rvbm1h aWwuY29tPgpEYXRlOiBUaHUsIDE2IEZlYiAyMDIzIDIzOjQyOjQ2ICswMTAwClN1YmplY3Q6IFtQ QVRDSCAyMi8yNl0gZ3RrZDogcmVidWlsZCBmb3IgbGRjIDEuMzEKCi0tLQogc3JjcGtncy9ndGtk L3RlbXBsYXRlIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0 aW9uKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9ndGtkL3RlbXBsYXRlIGIvc3JjcGtncy9ndGtk L3RlbXBsYXRlCmluZGV4IGU2NGExZjU0ZmI5Ni4uNmE3NWQ2OWUxOWNlIDEwMDY0NAotLS0gYS9z cmNwa2dzL2d0a2QvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9ndGtkL3RlbXBsYXRlCkBAIC0xLDcg KzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZ3RrZCcKIHBrZ25hbWU9Z3RrZAogdmVyc2lv bj0zLjkuMAotcmV2aXNpb249OQorcmV2aXNpb249MTAKIGJ1aWxkX3N0eWxlPWdudS1tYWtlZmls ZQogbWFrZV9idWlsZF9hcmdzPSJMREZMQUdTPSctbGlua2VyPWJmZCcgREM9bGRjMiIKIG1ha2Vf YnVpbGRfdGFyZ2V0PSJzaGFyZWQtbGlicyBzaGFyZWQtZ3N0cmVhbWVyIHNoYXJlZC12dGUgc2hh cmVkLXBlYXMgc2hhcmVkLWd0a2RnbCIKCkZyb20gNjU2ODFiOGJjYjQ4ZmZjOTJhMzg2ZTc4YWI2 YTQxNTBmNTVlYzk0YiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogTWFyY2luIFB1YyA8 dHJhbnp5c3RvcmVrLmlvQHByb3Rvbm1haWwuY29tPgpEYXRlOiBUaHUsIDE2IEZlYiAyMDIzIDIz OjQzOjI5ICswMTAwClN1YmplY3Q6IFtQQVRDSCAyMy8yNl0gb25lZHJpdmU6IHJlYnVpbGQgZm9y IGxkYyAxLjMxCgotLS0KIHNyY3BrZ3Mvb25lZHJpdmUvdGVtcGxhdGUgfCAyICstCiAxIGZpbGUg Y2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmNw a2dzL29uZWRyaXZlL3RlbXBsYXRlIGIvc3JjcGtncy9vbmVkcml2ZS90ZW1wbGF0ZQppbmRleCAy ODE2M2YzMzQ1NTIuLjYzZTRmNDNhN2ZiZCAxMDA2NDQKLS0tIGEvc3JjcGtncy9vbmVkcml2ZS90 ZW1wbGF0ZQorKysgYi9zcmNwa2dzL29uZWRyaXZlL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAog IyBUZW1wbGF0ZSBmaWxlIGZvciAnb25lZHJpdmUnCiBwa2duYW1lPW9uZWRyaXZlCiB2ZXJzaW9u PTIuNC4xMwotcmV2aXNpb249NAorcmV2aXNpb249NQogYnVpbGRfc3R5bGU9Z251LWNvbmZpZ3Vy ZQogY29uZmlndXJlX2FyZ3M9IkRDPWxkYzIiCiBob3N0bWFrZWRlcGVuZHM9ImxkYyBwa2ctY29u ZmlnIgoKRnJvbSA2NGVhOTQ2N2FkM2ZmZWMzNzNmMjY4NmZiNWFiYjMyNTJjYjgwZjU3IE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJjaW4gUHVjIDx0cmFuenlzdG9yZWsuaW9AcHJv dG9ubWFpbC5jb20+CkRhdGU6IFNhdCwgMTggRmViIDIwMjMgMjA6MzM6MTkgKzAxMDAKU3ViamVj dDogW1BBVENIIDI0LzI2XSBxdGNyZWF0b3I6IHJlYnVpbGQgZm9yIGxsdm0xNQoKLS0tCiBzcmNw a2dzL3F0Y3JlYXRvci90ZW1wbGF0ZSB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlv bigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXRjcmVhdG9yL3RlbXBs YXRlIGIvc3JjcGtncy9xdGNyZWF0b3IvdGVtcGxhdGUKaW5kZXggZTQyODQwYmY2ZmU0Li5iMWRm ZmQzMDQxOTggMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvcXRjcmVhdG9yL3RlbXBsYXRlCisrKyBiL3Ny Y3BrZ3MvcXRjcmVhdG9yL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxl IGZvciAncXRjcmVhdG9yJwogcGtnbmFtZT1xdGNyZWF0b3IKIHZlcnNpb249OS4wLjEKLXJldmlz aW9uPTEKK3JldmlzaW9uPTIKIGJ1aWxkX3N0eWxlPWNtYWtlCiBjb25maWd1cmVfYXJncz0iJCh2 b3B0X2Jvb2wgcWJzIEJVSUxEX1FCUykgLURXSVRIX0RPQ1M9T04gLURCVUlMRF9XSVRIX1BDSD1P RkYKICAtRFFUX0hPU1RfUEFUSD0vdXNyLyAtRFFUX0hPU1RfUEFUSF9DTUFLRV9ESVI9L3Vzci9s aWI2NC9jbWFrZS9RdDYiCgpGcm9tIDg1NjMyNGJjYTYyNjAzYWFiMGFmOWM5ZjFmYWVmNzJjNWZk Mzc2ODQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IE1hcmNpbiBQdWMgPHRyYW56eXN0 b3Jlay5pb0Bwcm90b25tYWlsLmNvbT4KRGF0ZTogV2VkLCAyMiBGZWIgMjAyMyAxMzozMzo0MSAr MDEwMApTdWJqZWN0OiBbUEFUQ0ggMjUvMjZdIHRpbGl4OiByZWJ1aWxkIGZvciBsZGMgMS4zMQoK LS0tCiBzcmNwa2dzL3RpbGl4L3BhdGNoZXMvdW5kZWFkLnBhdGNoIHwgMjEgKysrKysrKysrKysr KysrKysrKysrCiBzcmNwa2dzL3RpbGl4L3RlbXBsYXRlICAgICAgICAgICAgIHwgMTUgKysrKysr KysrKysrLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDMzIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25z KC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy90aWxpeC9wYXRjaGVzL3VuZGVhZC5wYXRj aAoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvdGlsaXgvcGF0Y2hlcy91bmRlYWQucGF0Y2ggYi9zcmNw a2dzL3RpbGl4L3BhdGNoZXMvdW5kZWFkLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMDAwMC4uM2JjNDBkNjlmMjY5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy90 aWxpeC9wYXRjaGVzL3VuZGVhZC5wYXRjaApAQCAtMCwwICsxLDIxIEBACistLS0gYS9zb3VyY2Uv Z3gvdGlsaXgvcHJlZmVkaXRvci9wcmVmZGlhbG9nLmQKKysrKyBiL3NvdXJjZS9neC90aWxpeC9w cmVmZWRpdG9yL3ByZWZkaWFsb2cuZAorQEAgLTk1Nyw3ICs5NTcsNyBAQCBwcml2YXRlOgorICAg ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgIH0KKyAKKy0gICAgICAgIGltcG9ydCBzdGQueG1s OiBEb2N1bWVudFBhcnNlciwgRWxlbWVudFBhcnNlciwgRWxlbWVudCwgWE1MRXhjZXB0aW9uOwor KyAgICAgICAgaW1wb3J0IHVuZGVhZC54bWw6IERvY3VtZW50UGFyc2VyLCBFbGVtZW50UGFyc2Vy LCBFbGVtZW50LCBYTUxFeGNlcHRpb247CisgCisgICAgICAgICB0cnkgeworICAgICAgICAgICAg IERvY3VtZW50UGFyc2VyIHBhcnNlciA9IG5ldyBEb2N1bWVudFBhcnNlcih1aSk7CistLS0gYS9t ZXNvbi5idWlsZAorKysrIGIvbWVzb24uYnVpbGQKK0BAIC05MSw2ICs5MSw3IEBAIHRpbGl4X3Nv dXJjZXMgPSBbCisgICAgICdzb3VyY2Uvc2VjcmV0Yy9zZWNyZXR0eXBlcy5kJywKKyAgICAgJ3Nv dXJjZS94MTEvWC5kJywKKyAgICAgJ3NvdXJjZS94MTEvWGxpYi5kJywKKysgICAgJ3NvdXJjZS91 bmRlYWQveG1sLmQnLAorICAgICAnc291cmNlL2FwcC5kJworIF0KKyAKZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MvdGlsaXgvdGVtcGxhdGUgYi9zcmNwa2dzL3RpbGl4L3RlbXBsYXRlCmluZGV4IDU2ODk5 NDhiYWJhYS4uYmM3MDllNGVjNGIzIDEwMDY0NAotLS0gYS9zcmNwa2dzL3RpbGl4L3RlbXBsYXRl CisrKyBiL3NyY3BrZ3MvdGlsaXgvdGVtcGxhdGUKQEAgLTEsOSArMSwxMiBAQAogIyBUZW1wbGF0 ZSBmaWxlIGZvciAndGlsaXgnCiBwa2duYW1lPXRpbGl4CiB2ZXJzaW9uPTEuOS40Ci1yZXZpc2lv bj02CityZXZpc2lvbj03CitfdW5kZWFkX3ZlcnNpb249MS4xLjgKK2J1aWxkX3dya3NyYz0iJHtw a2duYW1lfS0ke3ZlcnNpb259IgogYnVpbGRfc3R5bGU9bWVzb24KIGNvbmZpZ3VyZV9hcmdzPSIt RGJfbHRvPWZhbHNlIgorcGF0Y2hfYXJncz0iLWQgJHtidWlsZF93cmtzcmN9IC1OcDEiCiBob3N0 bWFrZWRlcGVuZHM9ImF1dG9tYWtlIGdldHRleHQtZGV2ZWwgZ2RrLXBpeGJ1ZiBnbGliLWRldmVs IGxkYyBwbzRhIHBrZy1jb25maWcKICBsaWJyc3ZnIHRhciBBcHBTdHJlYW0iCiBtYWtlZGVwZW5k cz0iZGNvbmYtZGV2ZWwgZ3RrZC1kZXZlbCBsaWJnbGliLWRldmVsIGxpYnZ0ZWQtZGV2ZWwgbGli WDExLWRldmVsIgpAQCAtMTMsOCArMTYsMTQgQEAgc2hvcnRfZGVzYz0iVGlsaW5nIHRlcm1pbmFs IGVtdWxhdG9yIGZvciBMaW51eCIKIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9p ZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJNUEwtMi4wIgogaG9tZXBhZ2U9Imh0dHBzOi8vZ251bm4x LmdpdGh1Yi5pby90aWxpeC13ZWIvIgotZGlzdGZpbGVzPSJodHRwczovL2dpdGh1Yi5jb20vZ251 bm4xLyR7cGtnbmFtZX0vYXJjaGl2ZS8ke3ZlcnNpb259LnRhci5neiIKLWNoZWNrc3VtPTJhOTQ4 Mjc3MDM5MWQxMWQ1ZWRjODM1MWQ0MjZjNzAwYzJjYzZjMTk0YTMwMzkxZWYyYWUyNWJiNzA5NWI1 OWIKK2Rpc3RmaWxlcz0iaHR0cHM6Ly9naXRodWIuY29tL2dudW5uMS8ke3BrZ25hbWV9L2FyY2hp dmUvJHt2ZXJzaW9ufS50YXIuZ3oKKyBodHRwczovL2dpdGh1Yi5jb20vZGxhbmcvdW5kZWFEL2Fy Y2hpdmUvcmVmcy90YWdzL3Yke191bmRlYWRfdmVyc2lvbn0udGFyLmd6IgorY2hlY2tzdW09IjJh OTQ4Mjc3MDM5MWQxMWQ1ZWRjODM1MWQ0MjZjNzAwYzJjYzZjMTk0YTMwMzkxZWYyYWUyNWJiNzA5 NWI1OWIKKyAzNmE1OWI0NzQwYjE0N2Y0MzQ1Y2FhMjY5MDhmNDBhOTdmYzdjYzY3ZGFjNjk4M2My MjYzNjljNTlmOTA5ZTkyIgorCitwb3N0X2V4dHJhY3QoKSB7CisJbXYgdW5kZWFELSR7X3VuZGVh ZF92ZXJzaW9ufS9zcmMvdW5kZWFkICR7YnVpbGRfd3Jrc3JjfS9zb3VyY2UvCit9CiAKIHByZV9j b25maWd1cmUoKSB7CiAJY2FzZSAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiIGluCgpGcm9tIGMxOGRl M2JkYWZiNTNiNjQ2MTk2ZTViNmIwMjZhMWRlMjRkODMyOTQgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCkZyb206IE1hcmNpbiBQdWMgPHRyYW56eXN0b3Jlay5pb0Bwcm90b25tYWlsLmNvbT4KRGF0 ZTogV2VkLCAyMiBGZWIgMjAyMyAyMDoyNToxOSArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMjYvMjZd IGlzcGM6IHVwZGF0ZSB0byAxLjE4LjEucjI5MCtlODhlNDllCgotLS0KIC4uLi9pc3BjL3BhdGNo ZXMvY21ha2UtYnVpbGQtdHlwZS1ub25lLnBhdGNoICB8ICAgMjUgKy0KIHNyY3BrZ3MvaXNwYy9w YXRjaGVzL2xsdm0xMi0wMDEucGF0Y2ggICAgICAgICB8ICAgNTcgLQogc3JjcGtncy9pc3BjL3Bh dGNoZXMvbGx2bTEyLTAwMi5wYXRjaCAgICAgICAgIHwgIDkyMyAtLS0tLS0tLQogc3JjcGtncy9p c3BjL3BhdGNoZXMvbGx2bTEyLTAwMy5wYXRjaCAgICAgICAgIHwgMTUwNCAtLS0tLS0tLS0tLS0K IHNyY3BrZ3MvaXNwYy9wYXRjaGVzL2xsdm0xMi0wMDQucGF0Y2ggICAgICAgICB8ICAgMzQgLQog c3JjcGtncy9pc3BjL3BhdGNoZXMvbGx2bTEyLTAwNS5wYXRjaCAgICAgICAgIHwgIDM3MiAtLS0K IHNyY3BrZ3MvaXNwYy9wYXRjaGVzL2xsdm0xMi0wMDYucGF0Y2ggICAgICAgICB8ICAxMjYgLQog c3JjcGtncy9pc3BjL3BhdGNoZXMvbGx2bTEyLTAwNy5wYXRjaCAgICAgICAgIHwgIDE2MCAtLQog c3JjcGtncy9pc3BjL3BhdGNoZXMvbGx2bTEyLTAwOC5wYXRjaCAgICAgICAgIHwgIDE0OSAtLQog c3JjcGtncy9pc3BjL3BhdGNoZXMvbGx2bTEyLTAwOS5wYXRjaCAgICAgICAgIHwgMjEwOSAtLS0t LS0tLS0tLS0tLS0tLQogc3JjcGtncy9pc3BjL3RlbXBsYXRlICAgICAgICAgICAgICAgICAgICAg ICAgIHwgICAxMyArLQogMTEgZmlsZXMgY2hhbmdlZCwgMTcgaW5zZXJ0aW9ucygrKSwgNTQ1NSBk ZWxldGlvbnMoLSkKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2lzcGMvcGF0Y2hlcy9sbHZt MTItMDAxLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9pc3BjL3BhdGNoZXMvbGx2 bTEyLTAwMi5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvaXNwYy9wYXRjaGVzL2xs dm0xMi0wMDMucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2lzcGMvcGF0Y2hlcy9s bHZtMTItMDA0LnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9pc3BjL3BhdGNoZXMv bGx2bTEyLTAwNS5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvaXNwYy9wYXRjaGVz L2xsdm0xMi0wMDYucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2lzcGMvcGF0Y2hl cy9sbHZtMTItMDA3LnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9pc3BjL3BhdGNo ZXMvbGx2bTEyLTAwOC5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvaXNwYy9wYXRj aGVzL2xsdm0xMi0wMDkucGF0Y2gKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2lzcGMvcGF0Y2hlcy9j bWFrZS1idWlsZC10eXBlLW5vbmUucGF0Y2ggYi9zcmNwa2dzL2lzcGMvcGF0Y2hlcy9jbWFrZS1i dWlsZC10eXBlLW5vbmUucGF0Y2gKaW5kZXggNDExZTM1M2M3MzE0Li5hOTYyNjE5ZDkzMzUgMTAw NjQ0Ci0tLSBhL3NyY3BrZ3MvaXNwYy9wYXRjaGVzL2NtYWtlLWJ1aWxkLXR5cGUtbm9uZS5wYXRj aAorKysgYi9zcmNwa2dzL2lzcGMvcGF0Y2hlcy9jbWFrZS1idWlsZC10eXBlLW5vbmUucGF0Y2gK QEAgLTEsMTggKzEsMTMgQEAKLUluZGV4OiBpc3BjLTEuMTUuMC9DTWFrZUxpc3RzLnR4dAotPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQotLS0tIGlzcGMtMS4xNS4wLm9yaWcvQ01ha2VMaXN0cy50eHQKLSsrKyBpc3BjLTEu MTUuMC9DTWFrZUxpc3RzLnR4dAotQEAgLTE1NywxMyArMTU3LDYgQEAgc2V0KE9VVFBVVF9SRUxF QVNFIFJlbGVhc2UvYmluKQotIHNldChDTUFLRV9SVU5USU1FX09VVFBVVF9ESVJFQ1RPUlkgJHtD TUFLRV9DVVJSRU5UX0JJTkFSWV9ESVJ9L2JpbiApCitkaWZmIC0tZ2l0IGEvQ01ha2VMaXN0cy50 eHQgYi9DTWFrZUxpc3RzLnR4dAoraW5kZXggYzY5NDE2Ni4uNDA1ZGM5MCAxMDA2NDQKKy0tLSBh L0NNYWtlTGlzdHMudHh0CisrKysgYi9DTWFrZUxpc3RzLnR4dAorQEAgLTE5OSw3ICsxOTksNyBA QCBzZXQoQ01BS0VfUlVOVElNRV9PVVRQVVRfRElSRUNUT1JZICR7Q01BS0VfQ1VSUkVOVF9CSU5B UllfRElSfS9iaW4gKQogIAogIGlmKENNQUtFX0JVSUxEX1RZUEUpCi0tICAgICMgVmFsaWRhdGUg YnVpbGQgdHlwZQorICAgICAjIFZhbGlkYXRlIGJ1aWxkIHR5cGUKIC0gICAgc2V0KENPTkZJR1VS QVRJT05fVFlQRVMgIkRlYnVnO1JlbGVhc2U7UmVsV2l0aERlYkluZm8iKQotLQotLSAgICBzdHJp bmcoRklORCAiJHtDT05GSUdVUkFUSU9OX1RZUEVTfSIgIiR7Q01BS0VfQlVJTERfVFlQRX0iIE1B VENIRURfQ09ORklHKQotLSAgICBpZiAoJHtNQVRDSEVEX0NPTkZJR30gRVFVQUwgLTEpCi0tICAg ICAgICAgbWVzc2FnZShGQVRBTF9FUlJPUiAiQ01BS0VfQlVJTERfVFlQRSAoJHtDTUFLRV9CVUlM RF9UWVBFfSkgYWxsb3dzIG9ubHkgdGhlIGZvbGxvd2luZyB2YWx1ZXM6ICR7Q09ORklHVVJBVElP Tl9UWVBFU30iKQotLSAgICBlbmRpZigpCi0gZWxzZShOT1QgQ01BS0VfQlVJTERfVFlQRSkKLSAg ICAgc2V0KENNQUtFX0JVSUxEX1RZUEUgIlJlbGVhc2UiKQotICAgICBtZXNzYWdlKFNUQVRVUyAi QnVpbGQgdHlwZSBub3Qgc3BlY2lmaWVkOiBVc2UgUmVsZWFzZSBieSBkZWZhdWx0LiIpCisrICAg IHNldChDT05GSUdVUkFUSU9OX1RZUEVTICJEZWJ1ZztSZWxlYXNlO1JlbFdpdGhEZWJJbmZvO05v bmUiKQorIAorICAgICBzdHJpbmcoRklORCAiJHtDT05GSUdVUkFUSU9OX1RZUEVTfSIgIiR7Q01B S0VfQlVJTERfVFlQRX0iIE1BVENIRURfQ09ORklHKQorICAgICBpZiAoJHtNQVRDSEVEX0NPTkZJ R30gRVFVQUwgLTEpCmRpZmYgLS1naXQgYS9zcmNwa2dzL2lzcGMvcGF0Y2hlcy9sbHZtMTItMDAx LnBhdGNoIGIvc3JjcGtncy9pc3BjL3BhdGNoZXMvbGx2bTEyLTAwMS5wYXRjaApkZWxldGVkIGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggNWYyZDNmNWE0MDllLi4wMDAwMDAwMDAwMDAKLS0tIGEvc3Jj cGtncy9pc3BjL3BhdGNoZXMvbGx2bTEyLTAwMS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDU3 ICswLDAgQEAKLUZyb20gMWMwZjg5ZGNjYjc3NGYyMTZjN2Y2ZTc2YTk5ZWU5MDdhMWU2NDFjYiBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IERtaXRyeSBCYWJva2luIDxkbWl0cnkueS5i YWJva2luQGludGVsLmNvbT4KLURhdGU6IFR1ZSwgMjIgRGVjIDIwMjAgMTc6MDM6NTkgLTA4MDAK LVN1YmplY3Q6IFtQQVRDSF0gRml4IHRvIHdvcmsgd2l0aCBMTFZNIHRydW5rIGFmdGVyIGxsdm0v bGx2bS1wcm9qZWN0QDQxYzNiMjcxMwotCi0tLS0KLSBzcmMvY3R4LmNwcCB8IDE4ICsrKysrKysr KysrKy0tLS0tLQotIDEgZmlsZSBjaGFuZ2VkLCAxMiBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9u cygtKQotCi1kaWZmIC0tZ2l0IGEvc3JjL2N0eC5jcHAgYi9zcmMvY3R4LmNwcAotaW5kZXggNmZi YjhiOWNmLi45NzdlOWQyMjIgMTAwNjQ0Ci0tLS0gYS9zcmMvY3R4LmNwcAotKysrIGIvc3JjL2N0 eC5jcHAKLUBAIC0xNDczLDExICsxNDczLDE1IEBAIHZvaWQgRnVuY3Rpb25FbWl0Q29udGV4dDo6 QWRkRGVidWdQb3MobGx2bTo6VmFsdWUgKnZhbHVlLCBjb25zdCBTb3VyY2VQb3MgKnBvcywKLSAg ICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmluc3QgPSBsbHZtOjpkeW5fY2FzdDxsbHZtOjpJbnN0cnVj dGlvbj4odmFsdWUpOwotICAgICBpZiAoaW5zdCAhPSBOVUxMICYmIG0tPmRpQnVpbGRlcikgewot ICAgICAgICAgU291cmNlUG9zIHAgPSBwb3MgPyAqcG9zIDogY3VycmVudFBvczsKLS0gICAgICAg IGlmIChwLmZpcnN0X2xpbmUgIT0gMCkKLSsgICAgICAgIGlmIChwLmZpcnN0X2xpbmUgIT0gMCkg ewotICAgICAgICAgICAgIC8vIElmIGZpcnN0X2xpbmUgPT0gMCwgdGhlbiB3ZSdyZSBpbiB0aGUg bWlkZGxlIG9mIHNldHRpbmcgdXAKLSAgICAgICAgICAgICAvLyB0aGUgc3RhbmRhcmQgbGlicmFy eSBvciB0aGUgbGlrZTsgZG9uJ3QgYWRkIGRlYnVnIHBvc2l0aW9ucwotICAgICAgICAgICAgIC8v IGZvciB0aG9zZSBmdW5jdGlvbnMKLS0gICAgICAgICAgICBpbnN0LT5zZXREZWJ1Z0xvYyhsbHZt OjpEZWJ1Z0xvYzo6Z2V0KHAuZmlyc3RfbGluZSwgcC5maXJzdF9jb2x1bW4sIHNjb3BlID8gc2Nv cGUgOiBHZXRESVNjb3BlKCkpKTsKLSsgICAgICAgICAgICBzY29wZSA9IHNjb3BlID8gc2NvcGUg OiBHZXRESVNjb3BlKCk7Ci0rICAgICAgICAgICAgbGx2bTo6RGVidWdMb2MgZGlMb2MgPQotKyAg ICAgICAgICAgICAgICBsbHZtOjpESUxvY2F0aW9uOjpnZXQoc2NvcGUtPmdldENvbnRleHQoKSwg cC5maXJzdF9saW5lLCBwLmZpcnN0X2NvbHVtbiwgc2NvcGUsIG51bGxwdHIsIGZhbHNlKTsKLSsg ICAgICAgICAgICBpbnN0LT5zZXREZWJ1Z0xvYyhkaUxvYyk7Ci0rICAgICAgICB9Ci0gICAgIH0K LSB9Ci0gCi1AQCAtMTUxOCw5ICsxNTIyLDEwIEBAIHZvaWQgRnVuY3Rpb25FbWl0Q29udGV4dDo6 RW1pdFZhcmlhYmxlRGVidWdJbmZvKFN5bWJvbCAqc3ltKSB7Ci0gICAgIGxsdm06OkRJTG9jYWxW YXJpYWJsZSAqdmFyID0gbS0+ZGlCdWlsZGVyLT5jcmVhdGVBdXRvVmFyaWFibGUoCi0gICAgICAg ICBzY29wZSwgc3ltLT5uYW1lLCBzeW0tPnBvcy5HZXRESUZpbGUoKSwgc3ltLT5wb3MuZmlyc3Rf bGluZSwgZGlUeXBlLCB0cnVlIC8qIHByZXNlcnZlIHRocm91Z2ggb3B0cyAqLyk7Ci0gCi0rICAg IGxsdm06OkRlYnVnTG9jIGRpTG9jID0KLSsgICAgICAgIGxsdm06OkRJTG9jYXRpb246OmdldChz Y29wZS0+Z2V0Q29udGV4dCgpLCBzeW0tPnBvcy5maXJzdF9saW5lLCBzeW0tPnBvcy5maXJzdF9j b2x1bW4sIHNjb3BlLCBudWxscHRyLCBmYWxzZSk7Ci0gICAgIGxsdm06Okluc3RydWN0aW9uICpk ZWNsYXJlSW5zdCA9Ci0tICAgICAgICBtLT5kaUJ1aWxkZXItPmluc2VydERlY2xhcmUoc3ltLT5z dG9yYWdlUHRyLCB2YXIsIG0tPmRpQnVpbGRlci0+Y3JlYXRlRXhwcmVzc2lvbigpLAotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06OkRlYnVnTG9jOjpnZXQoc3ltLT5w b3MuZmlyc3RfbGluZSwgc3ltLT5wb3MuZmlyc3RfY29sdW1uLCBzY29wZSksIGJibG9jayk7Ci0r ICAgICAgICBtLT5kaUJ1aWxkZXItPmluc2VydERlY2xhcmUoc3ltLT5zdG9yYWdlUHRyLCB2YXIs IG0tPmRpQnVpbGRlci0+Y3JlYXRlRXhwcmVzc2lvbigpLCBkaUxvYywgYmJsb2NrKTsKLSAgICAg QWRkRGVidWdQb3MoZGVjbGFyZUluc3QsICZzeW0tPnBvcywgc2NvcGUpOwotIH0KLSAKLUBAIC0x NTM1LDkgKzE1NDAsMTAgQEAgdm9pZCBGdW5jdGlvbkVtaXRDb250ZXh0OjpFbWl0RnVuY3Rpb25Q YXJhbWV0ZXJEZWJ1Z0luZm8oU3ltYm9sICpzeW0sIGludCBhcmdOdW0KLSAgICAgICAgIG0tPmRp QnVpbGRlci0+Y3JlYXRlUGFyYW1ldGVyVmFyaWFibGUoc2NvcGUsIHN5bS0+bmFtZSwgYXJnTnVt ICsgMSwgc3ltLT5wb3MuR2V0RElGaWxlKCksIHN5bS0+cG9zLmZpcnN0X2xpbmUsCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpVHlwZSwgdHJ1ZSAvKiBw cmVzZXJ2ZSB0aHJvdWdoIG9wdHMgKi8sIGZsYWdzKTsKLSAKLSsgICAgbGx2bTo6RGVidWdMb2Mg ZGlMb2MgPQotKyAgICAgICAgbGx2bTo6RElMb2NhdGlvbjo6Z2V0KHNjb3BlLT5nZXRDb250ZXh0 KCksIHN5bS0+cG9zLmZpcnN0X2xpbmUsIHN5bS0+cG9zLmZpcnN0X2NvbHVtbiwgc2NvcGUsIG51 bGxwdHIsIGZhbHNlKTsKLSAgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmRlY2xhcmVJbnN0ID0KLS0g ICAgICAgIG0tPmRpQnVpbGRlci0+aW5zZXJ0RGVjbGFyZShzeW0tPnN0b3JhZ2VQdHIsIHZhciwg bS0+ZGlCdWlsZGVyLT5jcmVhdGVFeHByZXNzaW9uKCksCi0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgbGx2bTo6RGVidWdMb2M6OmdldChzeW0tPnBvcy5maXJzdF9saW5lLCBz eW0tPnBvcy5maXJzdF9jb2x1bW4sIHNjb3BlKSwgYmJsb2NrKTsKLSsgICAgICAgIG0tPmRpQnVp bGRlci0+aW5zZXJ0RGVjbGFyZShzeW0tPnN0b3JhZ2VQdHIsIHZhciwgbS0+ZGlCdWlsZGVyLT5j cmVhdGVFeHByZXNzaW9uKCksIGRpTG9jLCBiYmxvY2spOwotICAgICBBZGREZWJ1Z1BvcyhkZWNs YXJlSW5zdCwgJnN5bS0+cG9zLCBzY29wZSk7Ci0gfQotIApkaWZmIC0tZ2l0IGEvc3JjcGtncy9p c3BjL3BhdGNoZXMvbGx2bTEyLTAwMi5wYXRjaCBiL3NyY3BrZ3MvaXNwYy9wYXRjaGVzL2xsdm0x Mi0wMDIucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA5MDNmMzBkYTEwZC4u MDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvaXNwYy9wYXRjaGVzL2xsdm0xMi0wMDIucGF0Y2gK KysrIC9kZXYvbnVsbApAQCAtMSw5MjMgKzAsMCBAQAotRnJvbSAwNTk3YTc5ZDA4NGMwMTQ3ODAx MzZkYTkwNmFmZTIxZDE1ZTk4MmNiIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogRGVl cGFrUmFqZW5kcmFrdW1hcmFuIDxkZWVwYWsucmFqZW5kcmFrdW1hcmFuQGludGVsLmNvbT4KLURh dGU6IFR1ZSwgNSBKYW4gMjAyMSAxMzo1MzozMCAtMDgwMAotU3ViamVjdDogW1BBVENIXSBSZW1v dmUgTExWTSA4LjAgYW5kIExMVk0gOS4wLiAoIzE5NjYpCi0KLS0tLQotIC5hcHB2ZXlvci55bWwg ICAgICAgICAgICAgICAgICAgICAgICB8ICAzIC0tCi0gLnRyYXZpcy55bWwgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgIDcgLS0tCi0gQ01ha2VMaXN0cy50eHQgICAgICAgICAgICAgICAgICAg ICAgIHwgMTIgKystLS0tCi0gc3JjL2FzdC5jcHAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg IDQgLS0KLSBzcmMvY3R4LmNwcCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAzMCAtLS0tLS0t LS0tLS0tCi0gc3JjL2dlbi9HbG9iYWxzTG9jYWxpemF0aW9uLmNwcCAgICAgIHwgIDQgLS0KLSBz cmMvaXNwYy5jcHAgICAgICAgICAgICAgICAgICAgICAgICAgfCAyMCAtLS0tLS0tLS0KLSBzcmMv aXNwYy5oICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMyArLQotIHNyYy9pc3BjX3ZlcnNp b24uaCAgICAgICAgICAgICAgICAgICB8ICA0ICstCi0gc3JjL21haW4uY3BwICAgICAgICAgICAg ICAgICAgICAgICAgIHwgMTMgLS0tLS0tCi0gc3JjL21vZHVsZS5jcHAgICAgICAgICAgICAgICAg ICAgICAgIHwgMjcgLS0tLS0tLS0tLS0tCi0gc3JjL21vZHVsZS5oICAgICAgICAgICAgICAgICAg ICAgICAgIHwgIDIgLQotIHNyYy9vcHQuY3BwICAgICAgICAgICAgICAgICAgICAgICAgICB8IDY0 ICsrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSBzcmMvdHlwZS5jcHAgICAgICAgICAgICAg ICAgICAgICAgICAgfCAxMCArKy0tLQotIHRlc3RzL2xpdC10ZXN0cy8xNzcxLmlzcGMgICAgICAg ICAgICB8ICAxIC0KLSB0ZXN0cy9saXQtdGVzdHMvMTg0NC5pc3BjICAgICAgICAgICAgfCAgMyAt LQotIHRlc3RzL2xpdC10ZXN0cy8xOTI2LmlzcGMgICAgICAgICAgICB8ICAyIC0KLSB0ZXN0cy9s aXQtdGVzdHMvY3B1c194ODYuaXNwYyAgICAgICAgfCAgMiArCi0gdGVzdHMvbGl0LXRlc3RzL2Nw dXNfeDg2X2xsdm0xMC5pc3BjIHwgMTEgLS0tLS0KLSB0ZXN0cy9saXQtdGVzdHMvbGl0LmNmZyAg ICAgICAgICAgICAgfCAgNSAtLS0KLSAyMCBmaWxlcyBjaGFuZ2VkLCAxNCBpbnNlcnRpb25zKCsp LCAyMTMgZGVsZXRpb25zKC0pCi0gZGVsZXRlIG1vZGUgMTAwNjQ0IHRlc3RzL2xpdC10ZXN0cy9j cHVzX3g4Nl9sbHZtMTAuaXNwYwotCi1kaWZmIC0tZ2l0IGEvLmFwcHZleW9yLnltbCBiLy5hcHB2 ZXlvci55bWwKLWluZGV4IDQ1MWE3YjNlMC4uNzk0NWNjYTJhIDEwMDY0NAotLS0tIGEvLmFwcHZl eW9yLnltbAotKysrIGIvLmFwcHZleW9yLnltbAotQEAgLTQxLDggKzQxLDYgQEAgZW52aXJvbm1l bnQ6Ci0gICAgICAgTExWTV9WRVJTSU9OOiBsYXRlc3QKLSAgICAgLSBBUFBWRVlPUl9CVUlMRF9X T1JLRVJfSU1BR0U6IFZpc3VhbCBTdHVkaW8gMjAxOQotICAgICAgIExMVk1fVkVSU0lPTjogMTAu MAotLSAgICAtIEFQUFZFWU9SX0JVSUxEX1dPUktFUl9JTUFHRTogVmlzdWFsIFN0dWRpbyAyMDE5 Ci0tICAgICAgTExWTV9WRVJTSU9OOiA5LjAKLSAKLSBmb3I6Ci0gLQotQEAgLTYyLDcgKzYwLDYg QEAgZm9yOgotICAgICAgICAgaWYgIiVBUFBWRVlPUl9CVUlMRF9XT1JLRVJfSU1BR0UlIj09IlZp c3VhbCBTdHVkaW8gMjAxOSIgKCAoc2V0IGdlbmVyYXRvcj0iVmlzdWFsIFN0dWRpbyAxNiIpICYg KHNldCB2c3ZlcnNpb249MjAxOSkpCi0gICAgICAgICBzZXQgTExWTV9UQVI9bGx2bS0xMS4wLjAt d2luLnZzMjAxOS1SZWxlYXNlK0Fzc2VydHMteDg2LmFybS53YXNtLjd6Ci0gICAgICAgICBpZiAi JUxMVk1fVkVSU0lPTiUiPT0iMTAuMCIgKHNldCBMTFZNX1RBUj1sbHZtLTEwLjAuMS13aW4udnMy MDE5LVJlbGVhc2UrQXNzZXJ0cy14ODYuYXJtLndhc20uemlwKQotLSAgICAgICAgaWYgIiVMTFZN X1ZFUlNJT04lIj09IjkuMCIgKHNldCBMTFZNX1RBUj1sbHZtLTkuMC4xLXdpbi52czIwMTctUmVs ZWFzZStBc3NlcnRzLXg4Ni5hcm0ud2FzbS56aXApCi0gICBpbnN0YWxsOgotICAgICAtIHBzOiBj aG9jbyBpbnN0YWxsIC0tbm8tcHJvZ3Jlc3Mgd2luZmxleGJpc29uMyB3Z2V0IDd6aXAKLSAgICAg LSBjbWQ6IHwtCi1kaWZmIC0tZ2l0IGEvLnRyYXZpcy55bWwgYi8udHJhdmlzLnltbAotaW5kZXgg MmU5NjAxN2E2Li4zYTZiODUyNjQgMTAwNjQ0Ci0tLS0gYS8udHJhdmlzLnltbAotKysrIGIvLnRy YXZpcy55bWwKLUBAIC0xMDgsMTMgKzEwOCw2IEBAIGpvYnM6Ci0gICAgICAgICAtIExMVk1fVEFS PWxsdm0tMTAuMC4xLXVidW50dTE2LjA0LVJlbGVhc2UrQXNzZXJ0cy14ODYuYXJtLndhc20udGFy Lnh6Ci0gICAgICAgICAtIExMVk1fUkVQTz1odHRwczovL2dpdGh1Yi5jb20vZGJhYm9raW4vbGx2 bS1wcm9qZWN0Ci0gICAgICAgICAtIElTUENfSE9NRT0kVFJBVklTX0JVSUxEX0RJUgotLSAgICAj IExMVk0gOS4wICsgVWJ1bnR1IDE2LjA0OiBidWlsZCwgbGl0IHRlc3RzLCBleGFtcGxlcyAoYnVp bGQgKyBydW4pLCBiZW5jaG1hcmtzIChidWlsZCArIHRyaWFsIHJ1bikKLS0gICAgLSA8PDogKm15 X3RhZwotLSAgICAgIGVudjoKLS0gICAgICAgIC0gTExWTV9WRVJTSU9OPTkuMCBPUz1VYnVudHUx Ni4wNAotLSAgICAgICAgLSBMTFZNX1RBUj1sbHZtLTkuMC4xLXVidW50dTE2LjA0LVJlbGVhc2Ur QXNzZXJ0cy14ODYuYXJtLndhc20udGFyLnh6Ci0tICAgICAgICAtIExMVk1fUkVQTz1odHRwczov L2dpdGh1Yi5jb20vZGJhYm9raW4vbGx2bS1wcm9qZWN0Ci0tICAgICAgICAtIElTUENfSE9NRT0k VFJBVklTX0JVSUxEX0RJUgotICAgICAjIFdBU00gZW5hYmxlZCBidWlsZAotICAgICAjIExMVk0g MTEuMCArIFVidW50dSAxNi4wNDogYnVpbGQsIGxpdCB0ZXN0cywgZXhhbXBsZXMgKGJ1aWxkKSwg YmVuY2htYXJrcyAoYnVpbGQgKyB0cmlhbCBydW4pCi0gICAgIC0gPDw6ICpteV90YWcKLWRpZmYg LS1naXQgYS9DTWFrZUxpc3RzLnR4dCBiL0NNYWtlTGlzdHMudHh0Ci1pbmRleCA1ZmE4NjNmY2Yu LmE2YjNlZDI1MSAxMDA2NDQKLS0tLSBhL0NNYWtlTGlzdHMudHh0Ci0rKysgYi9DTWFrZUxpc3Rz LnR4dAotQEAgLTI0MSwxMCArMjQxLDggQEAgaWYgKFg4Nl9FTkFCTEVEKQotICAgICAgICAgYXZ4 Mi1pOHgzMiBhdngyLWkxNngxNgotICAgICAgICAgYXZ4Mi1pMzJ4NCBhdngyLWkzMng4IGF2eDIt aTMyeDE2IGF2eDItaTY0eDQKLSAgICAgICAgIGF2eDUxMmtubC1pMzJ4MTYKLS0gICAgICAgIGF2 eDUxMnNreC1pMzJ4MTYgYXZ4NTEyc2t4LWkzMng4KQotLSAgICBpZiAoJHtMTFZNX1ZFUlNJT05f TlVNQkVSfSBWRVJTSU9OX0dSRUFURVJfRVFVQUwgIjEwLjAuMCIpCi0tICAgICAgICBsaXN0KEFQ UEVORCBJU1BDX1RBUkdFVFMgYXZ4NTEyc2t4LWk4eDY0IGF2eDUxMnNreC1pMTZ4MzIpCi0tICAg IGVuZGlmKCkKLSsgICAgICAgIGF2eDUxMnNreC1pMzJ4MTYgYXZ4NTEyc2t4LWkzMng4Ci0rICAg ICAgICBhdng1MTJza3gtaTh4NjQgYXZ4NTEyc2t4LWkxNngzMikKLSBlbmRpZigpCi0gaWYgKEFS TV9FTkFCTEVEKQotICAgICBsaXN0KEFQUEVORCBJU1BDX1RBUkdFVFMgbmVvbi1pOHgxNiBuZW9u LWkxNng4IG5lb24taTMyeDQgbmVvbi1pMzJ4OCkKLUBAIC0yNTksMTEgKzI1Nyw3IEBAIGlmIChX QVNNX0VOQUJMRUQpCi0gZW5kaWYoKQotIAotIHNldChDTEFOR19MSUJSQVJZX0xJU1QgY2xhbmdG cm9udGVuZCBjbGFuZ0RyaXZlciBjbGFuZ1NlcmlhbGl6YXRpb24gY2xhbmdQYXJzZSBjbGFuZ1Nl bWEgY2xhbmdBbmFseXNpcyBjbGFuZ0FTVCBjbGFuZ0Jhc2ljIGNsYW5nRWRpdCBjbGFuZ0xleCkK LS1zZXQoTExWTV9DT01QT05FTlRTIGVuZ2luZSBpcG8gYml0cmVhZGVyIGJpdHdyaXRlciBpbnN0 cnVtZW50YXRpb24gbGlua2VyIG9wdGlvbikKLS0KLS1pZiAoJHtMTFZNX1ZFUlNJT05fTlVNQkVS fSBWRVJTSU9OX0dSRUFURVJfRVFVQUwgIjEwLjAuMCIpCi0tICAgIGxpc3QoQVBQRU5EIExMVk1f Q09NUE9ORU5UUyBmcm9udGVuZG9wZW5tcCkKLS1lbmRpZigpCi0rc2V0KExMVk1fQ09NUE9ORU5U UyBlbmdpbmUgaXBvIGJpdHJlYWRlciBiaXR3cml0ZXIgaW5zdHJ1bWVudGF0aW9uIGxpbmtlciBv cHRpb24gZnJvbnRlbmRvcGVubXApCi0gCi0gaWYgKFg4Nl9FTkFCTEVEKQotICAgICBsaXN0KEFQ UEVORCBMTFZNX0NPTVBPTkVOVFMgeDg2KQotZGlmZiAtLWdpdCBhL3NyYy9hc3QuY3BwIGIvc3Jj L2FzdC5jcHAKLWluZGV4IDIwZjc1YTI5Yy4uNWE0M2M0ODU0IDEwMDY0NAotLS0tIGEvc3JjL2Fz dC5jcHAKLSsrKyBiL3NyYy9hc3QuY3BwCi1AQCAtNDQsOSArNDQsNyBAQAotICNpbmNsdWRlICJz eW0uaCIKLSAjaW5jbHVkZSAidXRpbC5oIgotIAotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJ U1BDX0xMVk1fMTBfMAotICNpbmNsdWRlIDxsbHZtL1N1cHBvcnQvVGltZVByb2ZpbGVyLmg+Ci0t I2VuZGlmCi0gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0gLy8gQVNUTm9kZQotIAotQEAgLTYyLDkgKzYw LDcgQEAgdm9pZCBBU1Q6OkFkZEZ1bmN0aW9uKFN5bWJvbCAqc3ltLCBTdG10ICpjb2RlKSB7Ci0g fQotIAotIHZvaWQgQVNUOjpHZW5lcmF0ZUlSKCkgewotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+ PSBJU1BDX0xMVk1fMTBfMAotICAgICBsbHZtOjpUaW1lVHJhY2VTY29wZSBUaW1lU2NvcGUoIkdl bmVyYXRlSVIiKTsKLS0jZW5kaWYKLSAgICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBm dW5jdGlvbnMuc2l6ZSgpOyArK2kpCi0gICAgICAgICBmdW5jdGlvbnNbaV0tPkdlbmVyYXRlSVIo KTsKLSB9Ci1kaWZmIC0tZ2l0IGEvc3JjL2N0eC5jcHAgYi9zcmMvY3R4LmNwcAotaW5kZXggOTc3 ZTlkMjIyLi40MmM0ZWEwOWQgMTAwNjQ0Ci0tLS0gYS9zcmMvY3R4LmNwcAotKysrIGIvc3JjL2N0 eC5jcHAKLUBAIC0zMDksMjEgKzMwOSwxMyBAQCBGdW5jdGlvbkVtaXRDb250ZXh0OjpGdW5jdGlv bkVtaXRDb250ZXh0KEZ1bmN0aW9uICpmdW5jLCBTeW1ib2wgKmZ1blN5bSwgbGx2bTo6RgotICAg ICAgICAgICAgIGNoYXIgYnVmWzI1Nl07Ci0gICAgICAgICAgICAgc25wcmludGYoYnVmLCBzaXpl b2YoYnVmKSwgIl9fb2ZmX2FsbF9vbl9tYXNrXyVzIiwgZy0+dGFyZ2V0LT5HZXRJU0FTdHJpbmco KSk7Ci0gCi0tI2lmIElTUENfTExWTV9WRVJTSU9OIDw9IElTUENfTExWTV84XzAKLS0gICAgICAg ICAgICBsbHZtOjpDb25zdGFudCAqb2ZmRnVuYyA9IG0tPm1vZHVsZS0+Z2V0T3JJbnNlcnRGdW5j dGlvbihidWYsIExMVk1UeXBlczo6Vm9pZFR5cGUpOwotLSNlbHNlIC8vIExMVk0gOS4wKwotICAg ICAgICAgICAgIGxsdm06OkZ1bmN0aW9uQ2FsbGVlIG9mZkZ1bmNDYWxsZWUgPSBtLT5tb2R1bGUt PmdldE9ySW5zZXJ0RnVuY3Rpb24oYnVmLCBMTFZNVHlwZXM6OlZvaWRUeXBlKTsKLSAgICAgICAg ICAgICBsbHZtOjpDb25zdGFudCAqb2ZmRnVuYyA9IGxsdm06OmNhc3Q8bGx2bTo6Q29uc3RhbnQ+ KG9mZkZ1bmNDYWxsZWUuZ2V0Q2FsbGVlKCkpOwotLSNlbmRpZgotICAgICAgICAgICAgIEFzc2Vy dFBvcyhjdXJyZW50UG9zLCBsbHZtOjppc2E8bGx2bTo6RnVuY3Rpb24+KG9mZkZ1bmMpKTsKLSAg ICAgICAgICAgICBsbHZtOjpCYXNpY0Jsb2NrICpvZmZCQiA9IGxsdm06OkJhc2ljQmxvY2s6OkNy ZWF0ZSgqZy0+Y3R4LCAiZW50cnkiLCAobGx2bTo6RnVuY3Rpb24gKilvZmZGdW5jLCAwKTsKLSAg ICAgICAgICAgICBsbHZtOjpTdG9yZUluc3QgKmluc3QgPSBuZXcgbGx2bTo6U3RvcmVJbnN0KExM Vk1NYXNrQWxsT2ZmLCBnbG9iYWxBbGxPbk1hc2tQdHIsIG9mZkJCKTsKLSAgICAgICAgICAgICBp ZiAoZy0+b3B0LmZvcmNlQWxpZ25lZE1lbW9yeSkgewotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA8 PSBJU1BDX0xMVk1fOV8wCi0tICAgICAgICAgICAgICAgIGluc3QtPnNldEFsaWdubWVudChnLT50 YXJnZXQtPmdldE5hdGl2ZVZlY3RvckFsaWdubWVudCgpKTsKLS0jZWxzZSAvLyBMTFZNIDEwLjAr Ci0gICAgICAgICAgICAgICAgIGluc3QtPnNldEFsaWdubWVudChsbHZtOjpNYXliZUFsaWduKGct PnRhcmdldC0+Z2V0TmF0aXZlVmVjdG9yQWxpZ25tZW50KCkpLnZhbHVlT3JPbmUoKSk7Ci0tI2Vu ZGlmCi0gICAgICAgICAgICAgfQotICAgICAgICAgICAgIGxsdm06OlJldHVybkluc3Q6OkNyZWF0 ZSgqZy0+Y3R4LCBvZmZCQik7Ci0gICAgICAgICB9Ci1AQCAtMjI4OCwxMSArMjI4MCw3IEBAIGxs dm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpMb2FkSW5zdChsbHZtOjpWYWx1ZSAqcHRy LCBjb25zdCBUeXBlICp0eXBlLCBjCi0gI2VuZGlmCi0gCi0gICAgIGlmIChnLT5vcHQuZm9yY2VB bGlnbmVkTWVtb3J5ICYmIGxsdm06OmR5bl9jYXN0PGxsdm06OlZlY3RvclR5cGU+KHB0LT5nZXRF bGVtZW50VHlwZSgpKSkgewotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA8PSBJU1BDX0xMVk1fOV8w Ci0tICAgICAgICBpbnN0LT5zZXRBbGlnbm1lbnQoZy0+dGFyZ2V0LT5nZXROYXRpdmVWZWN0b3JB bGlnbm1lbnQoKSk7Ci0tI2Vsc2UgLy8gTExWTSAxMC4wKwotICAgICAgICAgaW5zdC0+c2V0QWxp Z25tZW50KGxsdm06Ok1heWJlQWxpZ24oZy0+dGFyZ2V0LT5nZXROYXRpdmVWZWN0b3JBbGlnbm1l bnQoKSkudmFsdWVPck9uZSgpKTsKLS0jZW5kaWYKLSAgICAgfQotIAotICAgICBBZGREZWJ1Z1Bv cyhpbnN0KTsKLUBAIC0yNDMxLDExICsyNDE5LDcgQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1p dENvbnRleHQ6OkxvYWRJbnN0KGxsdm06OlZhbHVlICpwdHIsIGxsdm06OlZhbHVlICptYXNrLAot ICAgICAgICAgICAgICAgICAvLyB2cyB0aGUgcHJvcGVyIGFsaWdubWVudCBpbiBwcmFjdGljZS4p Ci0gICAgICAgICAgICAgICAgIGludCBhbGlnbiA9IDE7Ci0gCi0tI2lmIElTUENfTExWTV9WRVJT SU9OIDw9IElTUENfTExWTV85XzAKLS0gICAgICAgICAgICAgICAgaW5zdC0+c2V0QWxpZ25tZW50 KGFsaWduKTsKLS0jZWxzZSAvLyBMTFZNIDEwLjArCi0gICAgICAgICAgICAgICAgIGluc3QtPnNl dEFsaWdubWVudChsbHZtOjpNYXliZUFsaWduKGFsaWduKS52YWx1ZU9yT25lKCkpOwotLSNlbmRp ZgotICAgICAgICAgICAgIH0KLSAKLSAgICAgICAgICAgICBBZGREZWJ1Z1BvcyhpbnN0KTsKLUBA IC0yNjQ5LDExICsyNjMzLDcgQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkFs bG9jYUluc3QobGx2bTo6VHlwZSAqbGx2bVR5cGUsIGNvbnN0IGNoYXIgKm4KLSAgICAgICAgIGFs aWduID0gZy0+dGFyZ2V0LT5nZXROYXRpdmVWZWN0b3JBbGlnbm1lbnQoKTsKLSAKLSAgICAgaWYg KGFsaWduICE9IDApIHsKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPD0gSVNQQ19MTFZNXzlfMAot LSAgICAgICAgaW5zdC0+c2V0QWxpZ25tZW50KGFsaWduKTsKLS0jZWxzZSAvLyBMTFZNIDEwLjAr Ci0gICAgICAgICBpbnN0LT5zZXRBbGlnbm1lbnQobGx2bTo6TWF5YmVBbGlnbihhbGlnbikudmFs dWVPck9uZSgpKTsKLS0jZW5kaWYKLSAgICAgfQotICAgICAvLyBEb24ndCBhZGQgZGVidWdnaW5n IGluZm8gdG8gYWxsb2NhIGluc3RydWN0aW9ucwotICAgICByZXR1cm4gaW5zdDsKLUBAIC0yOTI2 LDExICsyOTA2LDcgQEAgdm9pZCBGdW5jdGlvbkVtaXRDb250ZXh0OjpTdG9yZUluc3QobGx2bTo6 VmFsdWUgKnZhbHVlLCBsbHZtOjpWYWx1ZSAqcHRyLCBjb25zdAotICAgICBsbHZtOjpTdG9yZUlu c3QgKmluc3QgPSBuZXcgbGx2bTo6U3RvcmVJbnN0KHZhbHVlLCBwdHIsIGJibG9jayk7Ci0gCi0g ICAgIGlmIChnLT5vcHQuZm9yY2VBbGlnbmVkTWVtb3J5ICYmIGxsdm06OmR5bl9jYXN0PGxsdm06 OlZlY3RvclR5cGU+KHB0LT5nZXRFbGVtZW50VHlwZSgpKSkgewotLSNpZiBJU1BDX0xMVk1fVkVS U0lPTiA8PSBJU1BDX0xMVk1fOV8wCi0tICAgICAgICBpbnN0LT5zZXRBbGlnbm1lbnQoZy0+dGFy Z2V0LT5nZXROYXRpdmVWZWN0b3JBbGlnbm1lbnQoKSk7Ci0tI2Vsc2UgLy8gTExWTSAxMC4wKwot ICAgICAgICAgaW5zdC0+c2V0QWxpZ25tZW50KGxsdm06Ok1heWJlQWxpZ24oZy0+dGFyZ2V0LT5n ZXROYXRpdmVWZWN0b3JBbGlnbm1lbnQoKSkudmFsdWVPck9uZSgpKTsKLS0jZW5kaWYKLSAgICAg fQotIAotICNpZmRlZiBJU1BDX0dFTlhfRU5BQkxFRAotQEAgLTMwMjUsMTYgKzMwMDEsMTAgQEAg dm9pZCBGdW5jdGlvbkVtaXRDb250ZXh0OjpNZW1jcHlJbnN0KGxsdm06OlZhbHVlICpkZXN0LCBs bHZtOjpWYWx1ZSAqc3JjLCBsbHZtOjoKLSAgICAgfQotICAgICBpZiAoYWxpZ24gPT0gTlVMTCkK LSAgICAgICAgIGFsaWduID0gTExWTUludDMyKDEpOwotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA8 PSBJU1BDX0xMVk1fOF8wCi0tICAgIGxsdm06OkNvbnN0YW50ICptY0Z1bmMgPQotLSAgICAgICAg bS0+bW9kdWxlLT5nZXRPckluc2VydEZ1bmN0aW9uKCJsbHZtLm1lbWNweS5wMGk4LnAwaTguaTY0 IiwgTExWTVR5cGVzOjpWb2lkVHlwZSwgTExWTVR5cGVzOjpWb2lkUG9pbnRlclR5cGUsCi0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTExWTVR5cGVzOjpWb2lkUG9pbnRl clR5cGUsIExMVk1UeXBlczo6SW50NjRUeXBlLCBMTFZNVHlwZXM6OkJvb2xUeXBlKTsKLS0jZWxz ZSAvLyBMTFZNIDkuMCsKLSAgICAgbGx2bTo6RnVuY3Rpb25DYWxsZWUgbWNGdW5jQ2FsbGVlID0K LSAgICAgICAgIG0tPm1vZHVsZS0+Z2V0T3JJbnNlcnRGdW5jdGlvbigibGx2bS5tZW1jcHkucDBp OC5wMGk4Lmk2NCIsIExMVk1UeXBlczo6Vm9pZFR5cGUsIExMVk1UeXBlczo6Vm9pZFBvaW50ZXJU eXBlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExMVk1UeXBlczo6 Vm9pZFBvaW50ZXJUeXBlLCBMTFZNVHlwZXM6OkludDY0VHlwZSwgTExWTVR5cGVzOjpCb29sVHlw ZSk7Ci0gICAgIGxsdm06OkNvbnN0YW50ICptY0Z1bmMgPSBsbHZtOjpjYXN0PGxsdm06OkNvbnN0 YW50PihtY0Z1bmNDYWxsZWUuZ2V0Q2FsbGVlKCkpOwotLSNlbmRpZgotICAgICBBc3NlcnRQb3Mo Y3VycmVudFBvcywgbWNGdW5jICE9IE5VTEwpOwotICAgICBBc3NlcnRQb3MoY3VycmVudFBvcywg bGx2bTo6aXNhPGxsdm06OkZ1bmN0aW9uPihtY0Z1bmMpKTsKLSAKLWRpZmYgLS1naXQgYS9zcmMv Z2VuL0dsb2JhbHNMb2NhbGl6YXRpb24uY3BwIGIvc3JjL2dlbi9HbG9iYWxzTG9jYWxpemF0aW9u LmNwcAotaW5kZXggMTkzYTY2Mjg5Li5hMTc2ZTk0NjIgMTAwNjQ0Ci0tLS0gYS9zcmMvZ2VuL0ds b2JhbHNMb2NhbGl6YXRpb24uY3BwCi0rKysgYi9zcmMvZ2VuL0dsb2JhbHNMb2NhbGl6YXRpb24u Y3BwCi1AQCAtNDcwLDExICs0NzAsNyBAQCB2b2lkIEdsb2JhbHNMb2NhbGl6YXRpb246OkxvY2Fs aXplR2xvYmFscyhMb2NhbGl6YXRpb25JbmZvICZMSSkgewotICAgICAgICAgSW5zdHJ1Y3Rpb24g JkZpcnN0SSA9ICpGbi0+Z2V0RW50cnlCbG9jaygpLmJlZ2luKCk7Ci0gICAgICAgICBUeXBlICpF bGVtVHkgPSBHVi0+Z2V0VHlwZSgpLT5nZXRFbGVtZW50VHlwZSgpOwotICAgICAgICAgQWxsb2Nh SW5zdCAqQWxsb2NhID0gbmV3IEFsbG9jYUluc3QoRWxlbVR5LCAwLCBHVi0+Z2V0TmFtZSgpICsg Ii5sb2NhbCIsICZGaXJzdEkpOwotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA8PSBJU1BDX0xMVk1f OV8wCi0tICAgICAgICBBbGxvY2EtPnNldEFsaWdubWVudChHVi0+Z2V0QWxpZ25tZW50KCkpOwot LSNlbHNlIC8vIExMVk0gMTAuMCsKLSAgICAgICAgIEFsbG9jYS0+c2V0QWxpZ25tZW50KGxsdm06 Ok1heWJlQWxpZ24oR1YtPmdldEFsaWdubWVudCgpKSk7Ci0tI2VuZGlmCi0gICAgICAgICBpZiAo IWlzYTxVbmRlZlZhbHVlPihHVi0+Z2V0SW5pdGlhbGl6ZXIoKSkpCi0gICAgICAgICAgICAgbmV3 IFN0b3JlSW5zdChHVi0+Z2V0SW5pdGlhbGl6ZXIoKSwgQWxsb2NhLCAmRmlyc3RJKTsKLSAKLWRp ZmYgLS1naXQgYS9zcmMvaXNwYy5jcHAgYi9zcmMvaXNwYy5jcHAKLWluZGV4IGUyZDBmMjA2ZS4u ZmFjNTIzM2Y3IDEwMDY0NAotLS0tIGEvc3JjL2lzcGMuY3BwCi0rKysgYi9zcmMvaXNwYy5jcHAK LUBAIC0yNzIsOSArMjcyLDcgQEAgdHlwZWRlZiBlbnVtIHsKLSAgICAgQ1BVX1NpbHZlcm1vbnQs Ci0gCi0gICAgIENQVV9JQ1gsCi0tI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8x MF8wCi0gICAgIENQVV9UR0wsCi0tI2VuZGlmCi0gI2lmIElTUENfTExWTV9WRVJTSU9OID49IElT UENfTExWTV8xMl8wCi0gICAgIENQVV9BREwsCi0gICAgIENQVV9TUFIsCi1AQCAtMzY1LDEwICsz NjMsOCBAQCBjbGFzcyBBbGxDUFVzIHsKLSAKLSAgICAgICAgIG5hbWVzW0NQVV9JQ1hdLnB1c2hf YmFjaygiaWNlbGFrZS1zZXJ2ZXIiKTsKLSAgICAgICAgIG5hbWVzW0NQVV9JQ1hdLnB1c2hfYmFj aygiaWN4Iik7Ci0tI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMF8wCi0gICAg ICAgICBuYW1lc1tDUFVfVEdMXS5wdXNoX2JhY2soInRpZ2VybGFrZSIpOwotICAgICAgICAgbmFt ZXNbQ1BVX1RHTF0ucHVzaF9iYWNrKCJ0Z2wiKTsKLS0jZW5kaWYKLSAjaWYgSVNQQ19MTFZNX1ZF UlNJT04gPj0gSVNQQ19MTFZNXzEyXzAKLSAgICAgICAgIG5hbWVzW0NQVV9BRExdLnB1c2hfYmFj aygiYWxkZXJsYWtlIik7Ci0gICAgICAgICBuYW1lc1tDUFVfQURMXS5wdXNoX2JhY2soImFkbCIp OwotQEAgLTQxMSwxMSArNDA3LDkgQEAgY2xhc3MgQWxsQ1BVcyB7Ci0gICAgICAgICBjb21wYXRb Q1BVX0FETF0gPSBTZXQoQ1BVX0FETCwgQ1BVX3g4Nl82NCwgQ1BVX0Jvbm5lbGwsIENQVV9QZW5y eW4sIENQVV9Db3JlMiwgQ1BVX05laGFsZW0sIENQVV9TaWx2ZXJtb250LAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIENQVV9TYW5keUJyaWRnZSwgQ1BVX0l2eUJyaWRnZSwgQ1BVX0hh c3dlbGwsIENQVV9Ccm9hZHdlbGwsIENQVV9Ob25lKTsKLSAjZW5kaWYKLS0jaWYgSVNQQ19MTFZN X1ZFUlNJT04gPj0gSVNQQ19MTFZNXzEwXzAKLSAgICAgICAgIGNvbXBhdFtDUFVfVEdMXSA9Ci0g ICAgICAgICAgICAgU2V0KENQVV9UR0wsIENQVV94ODZfNjQsIENQVV9Cb25uZWxsLCBDUFVfUGVu cnluLCBDUFVfQ29yZTIsIENQVV9OZWhhbGVtLCBDUFVfU2lsdmVybW9udCwgQ1BVX1NhbmR5QnJp ZGdlLAotICAgICAgICAgICAgICAgICBDUFVfSXZ5QnJpZGdlLCBDUFVfSGFzd2VsbCwgQ1BVX0Jy b2Fkd2VsbCwgQ1BVX1NLWCwgQ1BVX0lDTCwgQ1BVX0lDWCwgQ1BVX05vbmUpOwotLSNlbmRpZgot ICAgICAgICAgY29tcGF0W0NQVV9JQ1hdID0gU2V0KENQVV9JQ1gsIENQVV94ODZfNjQsIENQVV9C b25uZWxsLCBDUFVfUGVucnluLCBDUFVfQ29yZTIsIENQVV9OZWhhbGVtLCBDUFVfU2lsdmVybW9u dCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDUFVfU2FuZHlCcmlkZ2UsIENQVV9J dnlCcmlkZ2UsIENQVV9IYXN3ZWxsLCBDUFVfQnJvYWR3ZWxsLCBDUFVfU0tYLCBDUFVfSUNMLCBD UFVfTm9uZSk7Ci0gCi1AQCAtNTU2LDkgKzU1MCw3IEBAIFRhcmdldDo6VGFyZ2V0KEFyY2ggYXJj aCwgY29uc3QgY2hhciAqY3B1LCBJU1BDVGFyZ2V0IGlzcGNfdGFyZ2V0LCBib29sIHBpYywgYm9v Ci0gI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMl8wCi0gICAgICAgICBjYXNl IENQVV9TUFI6Ci0gI2VuZGlmCi0tI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8x MF8wCi0gICAgICAgICBjYXNlIENQVV9UR0w6Ci0tI2VuZGlmCi0gICAgICAgICBjYXNlIENQVV9J Q1g6Ci0gICAgICAgICBjYXNlIENQVV9JQ0w6Ci0gICAgICAgICBjYXNlIENQVV9TS1g6Ci1AQCAt OTE2LDcgKzkwOCw2IEBAIFRhcmdldDo6VGFyZ2V0KEFyY2ggYXJjaCwgY29uc3QgY2hhciAqY3B1 LCBJU1BDVGFyZ2V0IGlzcGNfdGFyZ2V0LCBib29sIHBpYywgYm9vCi0gICAgICAgICB9Ci0gICAg ICAgICBicmVhazsKLSAgICAgY2FzZSBJU1BDVGFyZ2V0Ojphdng1MTJza3hfaTh4NjQ6Ci0tI2lm IElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMF8wIC8vIExMVk0gMTAuMCsKLSAgICAg ICAgIC8vIFRoaXMgdGFyZ2V0IGlzIGVuYWJsZWQgb25seSBmb3IgTExWTSAxMC4wIGFuZCBsYXRl cgotICAgICAgICAgLy8gYmVjYXVzZSBMTFZNIHJlcXVpcmVzIGEgbnVtYmVyIG9mIGZpeGVzLCB3 aGljaCBhcmUKLSAgICAgICAgIC8vIGNvbW1pdHRlZCB0byBMTFZNIDExLjAgYW5kIGNhbiBiZSBh cHBsaWVkIHRvIDEwLjAsIGJ1dCBub3QKLUBAIC05MzcsMTIgKzkyOCw3IEBAIFRhcmdldDo6VGFy Z2V0KEFyY2ggYXJjaCwgY29uc3QgY2hhciAqY3B1LCBJU1BDVGFyZ2V0IGlzcGNfdGFyZ2V0LCBi b29sIHBpYywgYm9vCi0gICAgICAgICB0aGlzLT5tX2hhc1ZlY1ByZWZldGNoID0gZmFsc2U7Ci0g ICAgICAgICBDUFVmcm9tSVNBID0gQ1BVX1NLWDsKLSAgICAgICAgIGJyZWFrOwotLSNlbHNlCi0t ICAgICAgICB1bnN1cHBvcnRlZF90YXJnZXQgPSB0cnVlOwotLSAgICAgICAgYnJlYWs7Ci0tI2Vu ZGlmCi0gICAgIGNhc2UgSVNQQ1RhcmdldDo6YXZ4NTEyc2t4X2kxNngzMjoKLS0jaWYgSVNQQ19M TFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzEwXzAgLy8gTExWTSAxMC4wKwotICAgICAgICAgLy8g VGhpcyB0YXJnZXQgaXMgZW5hYmxlZCBvbmx5IGZvciBMTFZNIDEwLjAgYW5kIGxhdGVyCi0gICAg ICAgICAvLyBiZWNhdXNlIExMVk0gcmVxdWlyZXMgYSBudW1iZXIgb2YgZml4ZXMsIHdoaWNoIGFy ZQotICAgICAgICAgLy8gY29tbWl0dGVkIHRvIExMVk0gMTEuMCBhbmQgY2FuIGJlIGFwcGxpZWQg dG8gMTAuMCwgYnV0IG5vdAotQEAgLTk2MywxMCArOTQ5LDYgQEAgVGFyZ2V0OjpUYXJnZXQoQXJj aCBhcmNoLCBjb25zdCBjaGFyICpjcHUsIElTUENUYXJnZXQgaXNwY190YXJnZXQsIGJvb2wgcGlj LCBib28KLSAgICAgICAgIHRoaXMtPm1faGFzVmVjUHJlZmV0Y2ggPSBmYWxzZTsKLSAgICAgICAg IENQVWZyb21JU0EgPSBDUFVfU0tYOwotICAgICAgICAgYnJlYWs7Ci0tI2Vsc2UKLS0gICAgICAg IHVuc3VwcG9ydGVkX3RhcmdldCA9IHRydWU7Ci0tICAgICAgICBicmVhazsKLS0jZW5kaWYKLSAj aWZkZWYgSVNQQ19BUk1fRU5BQkxFRAotICAgICBjYXNlIElTUENUYXJnZXQ6Om5lb25faTh4MTY6 Ci0gICAgICAgICB0aGlzLT5tX2lzYSA9IFRhcmdldDo6TkVPTjsKLUBAIC0xNjYyLDExICsxNjQ0 LDkgQEAgR2xvYmFsczo6R2xvYmFscygpIHsKLSAgICAgaXNNdWx0aVRhcmdldENvbXBpbGF0aW9u ID0gZmFsc2U7Ci0gICAgIGVycm9yTGltaXQgPSAtMTsKLSAKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJ T04gPj0gSVNQQ19MTFZNXzEwXzAKLSAgICAgZW5hYmxlVGltZVRyYWNlID0gZmFsc2U7Ci0gICAg IC8vIHNldCBkZWZhdWx0IGdyYW51bGFyaXR5IHRvIDUwMC4KLSAgICAgdGltZVRyYWNlR3JhbnVs YXJpdHkgPSA1MDA7Ci0tI2VuZGlmCi0gICAgIHRhcmdldCA9IE5VTEw7Ci0gICAgIGN0eCA9IG5l dyBsbHZtOjpMTFZNQ29udGV4dDsKLSAKLWRpZmYgLS1naXQgYS9zcmMvaXNwYy5oIGIvc3JjL2lz cGMuaAotaW5kZXggZTI1ZDg4MzBlLi5kZTM1N2EyMWMgMTAwNjQ0Ci0tLS0gYS9zcmMvaXNwYy5o Ci0rKysgYi9zcmMvaXNwYy5oCi1AQCAtNjk1LDEzICs2OTUsMTIgQEAgc3RydWN0IEdsb2JhbHMg ewotIAotICAgICAvKiBOdW1iZXIgb2YgZXJyb3JzIHRvIHNob3cgaW4gSVNQQy4gKi8KLSAgICAg aW50IGVycm9yTGltaXQ7Ci0tI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMF8w Ci0rCi0gICAgIC8qIFdoZW4gdHJ1ZSwgZW5hYmxlIGNvbXBpbGUgdGltZSB0cmFjaW5nLiAqLwot ICAgICBib29sIGVuYWJsZVRpbWVUcmFjZTsKLSAKLSAgICAgLyogV2hlbiBjb21waWxlIHRpbWUg dHJhY2luZyBpcyBlbmFibGVkLCBzZXQgdGltZSBncmFudWxhcml0eS4gKi8KLSAgICAgaW50IHRp bWVUcmFjZUdyYW51bGFyaXR5OwotLSNlbmRpZgotIH07Ci0gCi0gZW51bSB7Ci1kaWZmIC0tZ2l0 IGEvc3JjL2lzcGNfdmVyc2lvbi5oIGIvc3JjL2lzcGNfdmVyc2lvbi5oCi1pbmRleCBkNzgxMzQ3 ZmQuLjQzNGIyZDY3OCAxMDA2NDQKLS0tLSBhL3NyYy9pc3BjX3ZlcnNpb24uaAotKysrIGIvc3Jj L2lzcGNfdmVyc2lvbi5oCi1AQCAtNDQsMTMgKzQ0LDExIEBACi0gCi0gI2RlZmluZSBJU1BDX0xM Vk1fVkVSU0lPTiAoTExWTV9WRVJTSU9OX01BSk9SICogMTAwMDAgKyBMTFZNX1ZFUlNJT05fTUlO T1IgKiAxMDApCi0gCi0tI2RlZmluZSBJU1BDX0xMVk1fOF8wIDgwMDAwCi0tI2RlZmluZSBJU1BD X0xMVk1fOV8wIDkwMDAwCi0gI2RlZmluZSBJU1BDX0xMVk1fMTBfMCAxMDAwMDAKLSAjZGVmaW5l IElTUENfTExWTV8xMV8wIDExMDAwMAotICNkZWZpbmUgSVNQQ19MTFZNXzEyXzAgMTIwMDAwCi0g Ci0tI2RlZmluZSBPTERFU1RfU1VQUE9SVEVEX0xMVk0gSVNQQ19MTFZNXzhfMAotKyNkZWZpbmUg T0xERVNUX1NVUFBPUlRFRF9MTFZNIElTUENfTExWTV8xMF8wCi0gI2RlZmluZSBMQVRFU1RfU1VQ UE9SVEVEX0xMVk0gSVNQQ19MTFZNXzEyXzAKLSAKLSAjaWZkZWYgX19pc3BjX194c3RyCi1kaWZm IC0tZ2l0IGEvc3JjL21haW4uY3BwIGIvc3JjL21haW4uY3BwCi1pbmRleCA4ZjY0MzMwY2MuLjVj OTIwZWFiYyAxMDA2NDQKLS0tLSBhL3NyYy9tYWluLmNwcAotKysrIGIvc3JjL21haW4uY3BwCi1A QCAtNTUsOSArNTUsNyBAQAotICNpbmNsdWRlIDxsbHZtL1N1cHBvcnQvU2lnbmFscy5oPgotICNp bmNsdWRlIDxsbHZtL1N1cHBvcnQvVGFyZ2V0UmVnaXN0cnkuaD4KLSAjaW5jbHVkZSA8bGx2bS9T dXBwb3J0L1RhcmdldFNlbGVjdC5oPgotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xM Vk1fMTBfMAotICNpbmNsdWRlIDxsbHZtL1N1cHBvcnQvVG9vbE91dHB1dEZpbGUuaD4KLS0jZW5k aWYKLSAKLSAjaWZkZWYgSVNQQ19IT1NUX0lTX1dJTkRPV1MKLSAjZGVmaW5lIHN0cmNhc2VjbXAg c3RyaWNtcAotQEAgLTE4MSwxMSArMTc5LDkgQEAgc3RhdGljIHZvaWQgbFByaW50VmVyc2lvbigp IHsKLSAgICAgc25wcmludGYodGFyZ2V0SGVscCwgc2l6ZW9mKHRhcmdldEhlbHApLCAiWy0tdGFy Z2V0LW9zPTxvcz5dXHRcdFx0U2VsZWN0IHRhcmdldCBPUy4gIDxvcz49eyVzfSIsCi0gICAgICAg ICAgICAgIGctPnRhcmdldF9yZWdpc3RyeS0+Z2V0U3VwcG9ydGVkT1NlcygpLmNfc3RyKCkpOwot ICAgICBQcmludFdpdGhXb3JkQnJlYWtzKHRhcmdldEhlbHAsIDI0LCBUZXJtaW5hbFdpZHRoKCks IHN0ZG91dCk7Ci0tI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMF8wCi0gICAg IHByaW50ZigiICAgIFstLXRpbWUtdHJhY2VdXHRcdFx0VHVybiBvbiB0aW1lIHByb2ZpbGVyLiBH ZW5lcmF0ZXMgSlNPTiBmaWxlIGJhc2VkIG9uIG91dHB1dCBmaWxlbmFtZS5cbiIpOwotICAgICBw cmludGYoIiAgICBbLS10aW1lLXRyYWNlLWdyYW51bGFyaXR5PTx2YWx1ZT5cdE1pbmltdW0gdGlt ZSBncmFudWxhcml0eSAoaW4gbWljcm9zZWNvbmRzKSB0cmFjZWQgYnkgdGltZSAiCi0gICAgICAg ICAgICAicHJvZmlsZXIuXG4iKTsKLS0jZW5kaWYKLSAgICAgcHJpbnRmKCIgICAgWy0tdmVyc2lv bl1cdFx0XHRcdFByaW50IGlzcGMgdmVyc2lvblxuIik7Ci0gI2lmZGVmIElTUENfR0VOWF9FTkFC TEVECi0gICAgIHByaW50ZigiICAgIFstLXZjLW9wdGlvbnM9PFwiLW9wdGlvbjEgLW9wdGlvbjIu Li5cIj5dXHRcdFx0XHRQYXNzIGFkZGl0aW9uYWwgb3B0aW9ucyB0byBWZWN0b3IgQ29tcGlsZXIg YmFja2VuZFxuIik7Ci1AQCAtNDYyLDcgKzQ1OCw2IEBAIHN0YXRpYyB2b2lkIHNldENhbGxpbmdD b252KFZlY3RvckNhbGxTdGF0dXMgdmVjdG9yQ2FsbCwgQXJjaCBhcmNoKSB7Ci0gICAgIH0KLSB9 Ci0gCi0tI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMF8wCi0gc3RhdGljIHZv aWQgd3JpdGVDb21waWxlVGltZUZpbGUoY29uc3QgY2hhciAqb3V0RmlsZU5hbWUpIHsKLSAgICAg bGx2bTo6U21hbGxTdHJpbmc8MTI4PiBqc29uRmlsZU5hbWUob3V0RmlsZU5hbWUpOwotICAgICBq c29uRmlsZU5hbWUuYXBwZW5kKCIuanNvbiIpOwotQEAgLTQ3OSw3ICs0NzQsNiBAQCBzdGF0aWMg dm9pZCB3cml0ZUNvbXBpbGVUaW1lRmlsZShjb25zdCBjaGFyICpvdXRGaWxlTmFtZSkgewotICAg ICBvZi0+a2VlcCgpOwotICAgICByZXR1cm47Ci0gfQotLSNlbmRpZgotIAotIHN0YXRpYyBzdGQ6 OnNldDxpbnQ+IFBhcnNpbmdQaGFzZXMoY2hhciAqc3RhZ2VzLCBBcmdFcnJvcnMgJmVycm9ySGFu ZGxlcikgewotICAgICBjb25zdGV4cHIgaW50IHBhcnNpbmdfbGltaXQgPSAxMDA7Ci1AQCAtNzkx LDEyICs3ODUsMTAgQEAgaW50IG1haW4oaW50IEFyZ2MsIGNoYXIgKkFyZ3ZbXSkgewotICAgICAg ICAgICAgIH0KLSAgICAgICAgIH0gZWxzZSBpZiAoIXN0cm5jbXAoYXJndltpXSwgIi0tZm9yY2Ut YWxpZ25tZW50PSIsIDE4KSkgewotICAgICAgICAgICAgIGctPmZvcmNlQWxpZ25tZW50ID0gYXRv aShhcmd2W2ldICsgMTgpOwotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTBf MAotICAgICAgICAgfSBlbHNlIGlmICghc3RyY21wKGFyZ3ZbaV0sICItLXRpbWUtdHJhY2UiKSkg ewotICAgICAgICAgICAgIGctPmVuYWJsZVRpbWVUcmFjZSA9IHRydWU7Ci0gICAgICAgICB9IGVs c2UgaWYgKCFzdHJuY21wKGFyZ3ZbaV0sICItLXRpbWUtdHJhY2UtZ3JhbnVsYXJpdHk9IiwgMjUp KSB7Ci0gICAgICAgICAgICAgZy0+dGltZVRyYWNlR3JhbnVsYXJpdHkgPSBhdG9pKGFyZ3ZbaV0g KyAyNSk7Ci0tI2VuZGlmCi0gICAgICAgICB9IGVsc2UgaWYgKCFzdHJjbXAoYXJndltpXSwgIi0t d29mZiIpIHx8ICFzdHJjbXAoYXJndltpXSwgIi13b2ZmIikpIHsKLSAgICAgICAgICAgICBnLT5k aXNhYmxlV2FybmluZ3MgPSB0cnVlOwotICAgICAgICAgICAgIGctPmVtaXRQZXJmV2FybmluZ3Mg PSBmYWxzZTsKLUBAIC0xMDU5LDcgKzEwNTEsNiBAQCBpbnQgbWFpbihpbnQgQXJnYywgY2hhciAq QXJndltdKSB7Ci0gCi0gICAgIC8vIFRoaXMgbmVlZHMgdG8gaGFwcGVuIGFmdGVyIHRoZSBUYXJn ZXRPUyBpcyBkZWNpZGVkLgotICAgICBzZXRDYWxsaW5nQ29udih2ZWN0b3JDYWxsLCBhcmNoKTsK LS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzEwXzAKLSAgICAgaWYgKGctPmVu YWJsZVRpbWVUcmFjZSkgewotICAgICAgICAgbGx2bTo6dGltZVRyYWNlUHJvZmlsZXJJbml0aWFs aXplKGctPnRpbWVUcmFjZUdyYW51bGFyaXR5LCAiaXNwYyIpOwotICAgICB9Ci1AQCAtMTA3Nyw5 ICsxMDY4LDUgQEAgaW50IG1haW4oaW50IEFyZ2MsIGNoYXIgKkFyZ3ZbXSkgewotICAgICAgICAg fQotICAgICAgICAgbGx2bTo6dGltZVRyYWNlUHJvZmlsZXJDbGVhbnVwKCk7Ci0gICAgIH0KLS0j ZWxzZQotLSAgICBpbnQgcmV0ID0gTW9kdWxlOjpDb21waWxlQW5kT3V0cHV0KGZpbGUsIGFyY2gs IGNwdSwgdGFyZ2V0cywgZmxhZ3MsIG90LCBvdXRGaWxlTmFtZSwgaGVhZGVyRmlsZU5hbWUsIGRl cHNGaWxlTmFtZSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXBz VGFyZ2V0TmFtZSwgaG9zdFN0dWJGaWxlTmFtZSwgZGV2U3R1YkZpbGVOYW1lKTsKLS0jZW5kaWYK LSAgICAgcmV0dXJuIHJldDsKLSB9Ci1kaWZmIC0tZ2l0IGEvc3JjL21vZHVsZS5jcHAgYi9zcmMv bW9kdWxlLmNwcAotaW5kZXggZmU3NDUyZGYxLi5hODVmZWM3N2EgMTAwNjQ0Ci0tLS0gYS9zcmMv bW9kdWxlLmNwcAotKysrIGIvc3JjL21vZHVsZS5jcHAKLUBAIC0xNzAsOSArMTcwLDcgQEAgTW9k dWxlOjpNb2R1bGUoY29uc3QgY2hhciAqZm4pIHsKLSAgICAgbW9kdWxlLT5zZXREYXRhTGF5b3V0 KGctPnRhcmdldC0+Z2V0RGF0YUxheW91dCgpLT5nZXRTdHJpbmdSZXByZXNlbnRhdGlvbigpKTsK LSAKLSAgICAgaWYgKGctPmdlbmVyYXRlRGVidWdnaW5nU3ltYm9scykgewotLSNpZiBJU1BDX0xM Vk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTBfMAotICAgICAgICAgbGx2bTo6VGltZVRyYWNlU2Nv cGUgVGltZVNjb3BlKCJDcmVhdGUgRGVidWcgRGF0YSIpOwotLSNlbmRpZgotICAgICAgICAgLy8g VG8gZW5hYmxlIGRlYnVnIGluZm9ybWF0aW9uIG9uIFdpbmRvd3MsIHdlIGhhdmUgdG8gbGV0IGxs dm0ga25vdywgdGhhdAotICAgICAgICAgLy8gZGVidWcgaW5mb3JtYXRpb24gc2hvdWxkIGJlIGVt aXR0ZWQgaW4gQ29kZVZpZXcgZm9ybWF0LgotICAgICAgICAgaWYgKGctPnRhcmdldF9vcyA9PSBU YXJnZXRPUzo6d2luZG93cykgewotQEAgLTIyNiwxMCArMjI0LDggQEAgZXh0ZXJuIFlZX0JVRkZF Ul9TVEFURSB5eV9jcmVhdGVfYnVmZmVyKEZJTEUgKiwgaW50KTsKLSBleHRlcm4gdm9pZCB5eV9k ZWxldGVfYnVmZmVyKFlZX0JVRkZFUl9TVEFURSk7Ci0gCi0gaW50IE1vZHVsZTo6Q29tcGlsZUZp bGUoKSB7Ci0tI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMF8wCi0gICAgIGxs dm06OlRpbWVUcmFjZVNjb3BlIENvbXBpbGVGaWxlVGltZVNjb3BlKAotICAgICAgICAgIkNvbXBp bGVGaWxlIiwgbGx2bTo6U3RyaW5nUmVmKGZpbGVuYW1lICsgKCJfIiArIHN0ZDo6c3RyaW5nKGct PnRhcmdldC0+R2V0SVNBU3RyaW5nKCkpKSkpOwotLSNlbmRpZgotICAgICBleHRlcm4gdm9pZCBQ YXJzZXJJbml0KCk7Ci0gICAgIFBhcnNlckluaXQoKTsKLSAKLUBAIC0yMzgsMTggKzIzNCwxNCBA QCBpbnQgTW9kdWxlOjpDb21waWxlRmlsZSgpIHsKLSAgICAgLy8gdmFyaWFibGUgJ20nIHRvIGJl IGluaXRpYWxpemVkIGFuZCBhdmFpbGFibGUgKHdoaWNoIGl0IGlzbid0IHVudGlsCi0gICAgIC8v IHRoZSBNb2R1bGUgY29uc3RydWN0b3IgcmV0dXJucy4uLikKLSAgICAgewotLSNpZiBJU1BDX0xM Vk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTBfMAotICAgICAgICAgbGx2bTo6VGltZVRyYWNlU2Nv cGUgVGltZVNjb3BlKCJEZWZpbmVTdGRsaWIiKTsKLS0jZW5kaWYKLSAgICAgICAgIERlZmluZVN0 ZGxpYihzeW1ib2xUYWJsZSwgZy0+Y3R4LCBtb2R1bGUsIGctPmluY2x1ZGVTdGRsaWIpOwotICAg ICB9Ci0gCi0gICAgIGJvb2wgcnVuUHJlcHJvY2Vzc29yID0gZy0+cnVuQ1BQOwotIAotICAgICBp ZiAocnVuUHJlcHJvY2Vzc29yKSB7Ci0tI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExW TV8xMF8wCi0gICAgICAgICBsbHZtOjpUaW1lVHJhY2VTY29wZSBUaW1lU2NvcGUoIkZyb250ZW5k IHBhcnNlciIpOwotLSNlbmRpZgotICAgICAgICAgaWYgKCFJc1N0ZGluKGZpbGVuYW1lKSkgewot ICAgICAgICAgICAgIC8vIFRyeSB0byBvcGVuIHRoZSBmaWxlIGZpcnN0LCBzaW5jZSBvdGhlcndp c2Ugd2UgY3Jhc2ggaW4gdGhlCi0gICAgICAgICAgICAgLy8gcHJlcHJvY2Vzc29yIGlmIHRoZSBm aWxlIGRvZXNuJ3QgZXhpc3QuCi1AQCAtMjY4LDkgKzI2MCw3IEBAIGludCBNb2R1bGU6OkNvbXBp bGVGaWxlKCkgewotICAgICAgICAgeXlwYXJzZSgpOwotICAgICAgICAgeXlfZGVsZXRlX2J1ZmZl cihzdHJidWYpOwotICAgICB9IGVsc2UgewotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BD X0xMVk1fMTBfMAotICAgICAgICAgbGx2bTo6VGltZVRyYWNlU2NvcGUgVGltZVNjb3BlKCJGcm9u dGVuZCBwYXJzZXIiKTsKLS0jZW5kaWYKLSAgICAgICAgIC8vIE5vIHByZXByb2Nlc3NvciwganVz dCBvcGVuIHVwIHRoZSBmaWxlIGlmIGl0J3Mgbm90IHN0ZGluLi4KLSAgICAgICAgIEZJTEUgKmYg PSBOVUxMOwotICAgICAgICAgaWYgKElzU3RkaW4oZmlsZW5hbWUpKSB7Ci1AQCAtMjk3LDkgKzI4 Nyw3IEBAIGludCBNb2R1bGU6OkNvbXBpbGVGaWxlKCkgewotIAotICAgICBpZiAoZGlCdWlsZGVy KQotICAgICAgICAgZGlCdWlsZGVyLT5maW5hbGl6ZSgpOwotLSNpZiBJU1BDX0xMVk1fVkVSU0lP TiA+PSBJU1BDX0xMVk1fMTBfMAotICAgICBsbHZtOjpUaW1lVHJhY2VTY29wZSBUaW1lU2NvcGUo Ik9wdGltaXplIik7Ci0tI2VuZGlmCi0gICAgIGlmIChlcnJvckNvdW50ID09IDApCi0gICAgICAg ICBPcHRpbWl6ZShtb2R1bGUsIGctPm9wdC5sZXZlbCk7Ci0gCi1AQCAtMTI0MywxNSArMTIzMSw4 IEBAIGJvb2wgTW9kdWxlOjp3cml0ZU9iamVjdEZpbGVPckFzc2VtYmx5KGxsdm06OlRhcmdldE1h Y2hpbmUgKnRhcmdldE1hY2hpbmUsIGxsdm06Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgY29uc3QgY2hhciAqb3V0RmlsZU5hbWUpIHsKLSAgICAgLy8gRmlndXJlIG91 dCBpZiB3ZSdyZSBnZW5lcmF0aW5nIG9iamVjdCBmaWxlIG9yIGFzc2VtYmx5IG91dHB1dCwgYW5k Ci0gICAgIC8vIHNldCBiaW5hcnkgb3V0cHV0IGZvciBvYmplY3QgZmlsZXMKLS0jaWYgSVNQQ19M TFZNX1ZFUlNJT04gPD0gSVNQQ19MTFZNXzlfMAotLSAgICBBc3NlcnQoIWctPnRhcmdldC0+aXNH ZW5YVGFyZ2V0KCkpOwotLSAgICBsbHZtOjpUYXJnZXRNYWNoaW5lOjpDb2RlR2VuRmlsZVR5cGUg ZmlsZVR5cGUgPQotLSAgICAgICAgKG91dHB1dFR5cGUgPT0gT2JqZWN0KSA/IGxsdm06OlRhcmdl dE1hY2hpbmU6OkNHRlRfT2JqZWN0RmlsZSA6IGxsdm06OlRhcmdldE1hY2hpbmU6OkNHRlRfQXNz ZW1ibHlGaWxlOwotLSAgICBib29sIGJpbmFyeSA9IChmaWxlVHlwZSA9PSBsbHZtOjpUYXJnZXRN YWNoaW5lOjpDR0ZUX09iamVjdEZpbGUpOwotLSNlbHNlIC8vIExMVk0gMTAuMCsKLSAgICAgbGx2 bTo6Q29kZUdlbkZpbGVUeXBlIGZpbGVUeXBlID0gKG91dHB1dFR5cGUgPT0gT2JqZWN0KSA/IGxs dm06OkNHRlRfT2JqZWN0RmlsZSA6IGxsdm06OkNHRlRfQXNzZW1ibHlGaWxlOwotICAgICBib29s IGJpbmFyeSA9IChmaWxlVHlwZSA9PSBsbHZtOjpDR0ZUX09iamVjdEZpbGUpOwotLSNlbmRpZgot IAotICAgICBsbHZtOjpzeXM6OmZzOjpPcGVuRmxhZ3MgZmxhZ3MgPSBiaW5hcnkgPyBsbHZtOjpz eXM6OmZzOjpGX05vbmUgOiBsbHZtOjpzeXM6OmZzOjpGX1RleHQ7Ci0gCi1AQCAtMjIxOSwxMSAr MjIwMCw3IEBAIHZvaWQgTW9kdWxlOjpleGVjUHJlcHJvY2Vzc29yKGNvbnN0IGNoYXIgKmluZmls ZW5hbWUsIGxsdm06OnJhd19zdHJpbmdfb3N0cmVhbSAqCi0gICAgIGluc3Quc2V0VGFyZ2V0KHRh cmdldCk7Ci0gICAgIGluc3QuY3JlYXRlU291cmNlTWFuYWdlcihpbnN0LmdldEZpbGVNYW5hZ2Vy KCkpOwotIAotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA8PSBJU1BDX0xMVk1fOV8wCi0tICAgIGNs YW5nOjpGcm9udGVuZElucHV0RmlsZSBpbnB1dEZpbGUoaW5maWxlbmFtZSwgY2xhbmc6OklucHV0 S2luZDo6VW5rbm93bik7Ci0tI2Vsc2UgLy8gTExWTSAxMC4wKwotICAgICBjbGFuZzo6RnJvbnRl bmRJbnB1dEZpbGUgaW5wdXRGaWxlKGluZmlsZW5hbWUsIGNsYW5nOjpJbnB1dEtpbmQoKSk7Ci0t I2VuZGlmCi0gCi0gICAgIGluc3QuSW5pdGlhbGl6ZVNvdXJjZU1hbmFnZXIoaW5wdXRGaWxlKTsK LSAKLUBAIC0yNzIyLDkgKzI2OTksNyBAQCBpbnQgTW9kdWxlOjpDb21waWxlQW5kT3V0cHV0KGNv bnN0IGNoYXIgKnNyY0ZpbGUsIEFyY2ggYXJjaCwgY29uc3QgY2hhciAqY3B1LCBzdAotIAotICAg ICAgICAgbSA9IG5ldyBNb2R1bGUoc3JjRmlsZSk7Ci0gICAgICAgICBpZiAobS0+Q29tcGlsZUZp bGUoKSA9PSAwKSB7Ci0tI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMF8wCi0g ICAgICAgICAgICAgbGx2bTo6VGltZVRyYWNlU2NvcGUgVGltZVNjb3BlKCJCYWNrZW5kIik7Ci0t I2VuZGlmCi0gI2lmZGVmIElTUENfR0VOWF9FTkFCTEVECi0gICAgICAgICAgICAgaWYgKG91dHB1 dFR5cGUgPT0gQXNtIHx8IG91dHB1dFR5cGUgPT0gT2JqZWN0KSB7Ci0gICAgICAgICAgICAgICAg IGlmIChnLT50YXJnZXQtPmlzR2VuWFRhcmdldCgpKSB7Ci1AQCAtMjg1NSw5ICsyODMwLDcgQEAg aW50IE1vZHVsZTo6Q29tcGlsZUFuZE91dHB1dChjb25zdCBjaGFyICpzcmNGaWxlLCBBcmNoIGFy Y2gsIGNvbnN0IGNoYXIgKmNwdSwgc3QKLSAKLSAgICAgICAgICAgICBtID0gbmV3IE1vZHVsZShz cmNGaWxlKTsKLSAgICAgICAgICAgICBpbnQgY29tcGlsZUZpbGVFcnJvciA9IG0tPkNvbXBpbGVG aWxlKCk7Ci0tI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMF8wCi0gICAgICAg ICAgICAgbGx2bTo6VGltZVRyYWNlU2NvcGUgVGltZVNjb3BlKCJCYWNrZW5kIik7Ci0tI2VuZGlm Ci0gICAgICAgICAgICAgaWYgKGNvbXBpbGVGaWxlRXJyb3IgPT0gMCkgewotICAgICAgICAgICAg ICAgICAvLyBDcmVhdGUgdGhlIGRpc3BhdGNoIG1vZHVsZSwgdW5sZXNzIGFscmVhZHkgY3JlYXRl ZDsKLSAgICAgICAgICAgICAgICAgLy8gaW4gdGhlIGxhdHRlciBjYXNlLCBqdXN0IGRvIHRoZSBj aGVja2luZwotZGlmZiAtLWdpdCBhL3NyYy9tb2R1bGUuaCBiL3NyYy9tb2R1bGUuaAotaW5kZXgg NjFkM2NmZWEwLi42MDMxMjRkNTAgMTAwNjQ0Ci0tLS0gYS9zcmMvbW9kdWxlLmgKLSsrKyBiL3Ny Yy9tb2R1bGUuaAotQEAgLTQzLDkgKzQzLDcgQEAKLSAKLSAjaW5jbHVkZSA8bGx2bS9JUi9EZWJ1 Z0luZm8uaD4KLSAKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzEwXzAKLSAj aW5jbHVkZSA8bGx2bS9TdXBwb3J0L1RpbWVQcm9maWxlci5oPgotLSNlbmRpZgotIAotICNpZmRl ZiBJU1BDX0dFTlhfRU5BQkxFRAotICNpbmNsdWRlICJvY2xfaWdjX2ludGVyZmFjZS9pZ2Nfb2Ns X2RldmljZV9jdHguaCIKLWRpZmYgLS1naXQgYS9zcmMvb3B0LmNwcCBiL3NyYy9vcHQuY3BwCi1p bmRleCBhNjU1YTgzNDQuLjViMWFjN2I2MyAxMDA2NDQKLS0tLSBhL3NyYy9vcHQuY3BwCi0rKysg Yi9zcmMvb3B0LmNwcAotQEAgLTY2LDYgKzY2LDcgQEAKLSAjaW5jbHVkZSA8bGx2bS9JUi9JbnN0 cnVjdGlvbnMuaD4KLSAjaW5jbHVkZSA8bGx2bS9JUi9JbnRyaW5zaWNJbnN0Lmg+Ci0gI2luY2x1 ZGUgPGxsdm0vSVIvSW50cmluc2ljcy5oPgotKyNpbmNsdWRlIDxsbHZtL0lSL0ludHJpbnNpY3NY ODYuaD4KLSAjaW5jbHVkZSA8bGx2bS9JUi9MZWdhY3lQYXNzTWFuYWdlci5oPgotICNpbmNsdWRl IDxsbHZtL0lSL01vZHVsZS5oPgotICNpbmNsdWRlIDxsbHZtL0lSL1BhdHRlcm5NYXRjaC5oPgot QEAgLTg1LDkgKzg2LDYgQEAKLSAjaW5jbHVkZSA8bGx2bS9UcmFuc2Zvcm1zL1NjYWxhci9JbnN0 U2ltcGxpZnlQYXNzLmg+Ci0gI2luY2x1ZGUgPGxsdm0vVHJhbnNmb3Jtcy9VdGlscy5oPgotICNp bmNsdWRlIDxsbHZtL1RyYW5zZm9ybXMvVXRpbHMvQmFzaWNCbG9ja1V0aWxzLmg+Ci0tI2lmIElT UENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMF8wCi0tI2luY2x1ZGUgPGxsdm0vSVIvSW50 cmluc2ljc1g4Ni5oPgotLSNlbmRpZgotIAotICNpZmRlZiBJU1BDX0hPU1RfSVNfTElOVVgKLSAj aW5jbHVkZSA8YWxsb2NhLmg+Ci1AQCAtMTAwMywxMCArMTAwMSw3IEBAIGJvb2wgSW50cmluc2lj c09wdDo6cnVuT25CYXNpY0Jsb2NrKGxsdm06OkJhc2ljQmxvY2sgJmJiKSB7Ci0gICAgICAgICAg ICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgIGFsaWduID0gY2FsbEluc3QtPmdldENh bGxlZEZ1bmN0aW9uKCkgPT0gYXZ4TWFza2VkTG9hZDMyID8gNCA6IDg7Ci0gICAgICAgICAgICAg ICAgIG5hbWUgPSBMTFZNR2V0TmFtZShjYWxsSW5zdC0+Z2V0QXJnT3BlcmFuZCgwKSwgIl9sb2Fk Iik7Ci0tI2lmIElTUENfTExWTV9WRVJTSU9OIDw9IElTUENfTExWTV85XzAKLS0gICAgICAgICAg ICAgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmxvYWRJbnN0ID0KLS0gICAgICAgICAgICAgICAgICAg IG5ldyBsbHZtOjpMb2FkSW5zdChjYXN0UHRyLCBuYW1lLCBmYWxzZSAvKiBub3Qgdm9sYXRpbGUg Ki8sIGFsaWduLCAobGx2bTo6SW5zdHJ1Y3Rpb24gKilOVUxMKTsKLS0jZWxpZiBJU1BDX0xMVk1f VkVSU0lPTiA9PSBJU1BDX0xMVk1fMTBfMAotKyNpZiBJU1BDX0xMVk1fVkVSU0lPTiA9PSBJU1BD X0xMVk1fMTBfMAotICAgICAgICAgICAgICAgICBsbHZtOjpJbnN0cnVjdGlvbiAqbG9hZEluc3Qg PSBuZXcgbGx2bTo6TG9hZEluc3QoY2FzdFB0ciwgbmFtZSwgZmFsc2UgLyogbm90IHZvbGF0aWxl ICovLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgbGx2bTo6TWF5YmVBbGlnbihhbGlnbiksIChsbHZtOjpJbnN0cnVjdGlv biAqKU5VTEwpOwotICNlbHNlCi1AQCAtMTA0MywxMyArMTAzOCw4IEBAIGJvb2wgSW50cmluc2lj c09wdDo6cnVuT25CYXNpY0Jsb2NrKGxsdm06OkJhc2ljQmxvY2sgJmJiKSB7Ci0gICAgICAgICAg ICAgICAgICAgICBhbGlnbiA9IGctPnRhcmdldC0+Z2V0TmF0aXZlVmVjdG9yQWxpZ25tZW50KCk7 Ci0gICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgIGFsaWduID0gY2Fs bEluc3QtPmdldENhbGxlZEZ1bmN0aW9uKCkgPT0gYXZ4TWFza2VkU3RvcmUzMiA/IDQgOiA4Owot LSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA8PSBJU1BDX0xMVk1fOV8wCi0tICAgICAgICAgICAgICAg IGxsdm06OlN0b3JlSW5zdCAqc3RvcmVJbnN0ID0gbmV3IGxsdm06OlN0b3JlSW5zdChydmFsdWUs IGNhc3RQdHIsIChsbHZtOjpJbnN0cnVjdGlvbiAqKU5VTEwpOwotLSAgICAgICAgICAgICAgICBz dG9yZUluc3QtPnNldEFsaWdubWVudChhbGlnbik7Ci0tI2Vsc2UKLSAgICAgICAgICAgICAgICAg bGx2bTo6U3RvcmVJbnN0ICpzdG9yZUluc3QgPSBuZXcgbGx2bTo6U3RvcmVJbnN0KHJ2YWx1ZSwg Y2FzdFB0ciwgKGxsdm06Okluc3RydWN0aW9uICopTlVMTCwKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06Ok1heWJl QWxpZ24oYWxpZ24pLnZhbHVlT3JPbmUoKSk7Ci0tI2VuZGlmCi0gICAgICAgICAgICAgICAgIGxD b3B5TWV0YWRhdGEoc3RvcmVJbnN0LCBjYWxsSW5zdCk7Ci0gICAgICAgICAgICAgICAgIGxsdm06 OlJlcGxhY2VJbnN0V2l0aEluc3QoY2FsbEluc3QsIHN0b3JlSW5zdCk7Ci0gCi1AQCAtMTA2Niw5 ICsxMDU2LDcgQEAgYm9vbCBJbnRyaW5zaWNzT3B0OjpydW5PbkJhc2ljQmxvY2sobGx2bTo6QmFz aWNCbG9jayAmYmIpIHsKLSAKLSBib29sIEludHJpbnNpY3NPcHQ6OnJ1bk9uRnVuY3Rpb24obGx2 bTo6RnVuY3Rpb24gJkYpIHsKLSAKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZN XzEwXzAKLSAgICAgbGx2bTo6VGltZVRyYWNlU2NvcGUgRnVuY1Njb3BlKCJJbnRyaW5zaWNzT3B0 OjpydW5PbkZ1bmN0aW9uIiwgRi5nZXROYW1lKCkpOwotLSNlbmRpZgotICAgICBib29sIG1vZGlm aWVkQW55ID0gZmFsc2U7Ci0gICAgIGZvciAobGx2bTo6QmFzaWNCbG9jayAmQkIgOiBGKSB7Ci0g ICAgICAgICBtb2RpZmllZEFueSB8PSBydW5PbkJhc2ljQmxvY2soQkIpOwotQEAgLTEyMzksOSAr MTIyNyw3IEBAIGJvb2wgSW5zdHJ1Y3Rpb25TaW1wbGlmeVBhc3M6OnJ1bk9uQmFzaWNCbG9jayhs bHZtOjpCYXNpY0Jsb2NrICZiYikgewotIAotIGJvb2wgSW5zdHJ1Y3Rpb25TaW1wbGlmeVBhc3M6 OnJ1bk9uRnVuY3Rpb24obGx2bTo6RnVuY3Rpb24gJkYpIHsKLSAKLS0jaWYgSVNQQ19MTFZNX1ZF UlNJT04gPj0gSVNQQ19MTFZNXzEwXzAKLSAgICAgbGx2bTo6VGltZVRyYWNlU2NvcGUgRnVuY1Nj b3BlKCJJbnN0cnVjdGlvblNpbXBsaWZ5UGFzczo6cnVuT25GdW5jdGlvbiIsIEYuZ2V0TmFtZSgp KTsKLS0jZW5kaWYKLSAgICAgYm9vbCBtb2RpZmllZEFueSA9IGZhbHNlOwotICAgICBmb3IgKGxs dm06OkJhc2ljQmxvY2sgJkJCIDogRikgewotICAgICAgICAgbW9kaWZpZWRBbnkgfD0gcnVuT25C YXNpY0Jsb2NrKEJCKTsKLUBAIC0yOTc0LDE2ICsyOTYwLDEwIEBAIHN0YXRpYyBib29sIGxJbXBy b3ZlTWFza2VkU3RvcmUobGx2bTo6Q2FsbEluc3QgKmNhbGxJbnN0KSB7Ci0gCi0gICAgICAgICAg ICAgbHZhbHVlID0gbmV3IGxsdm06OkJpdENhc3RJbnN0KGx2YWx1ZSwgcHRyVHlwZSwgImx2YWx1 ZV90b19wdHJfdHlwZSIsIGNhbGxJbnN0KTsKLSAgICAgICAgICAgICBsQ29weU1ldGFkYXRhKGx2 YWx1ZSwgY2FsbEluc3QpOwotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA8PSBJU1BDX0xMVk1fOV8w Ci0tICAgICAgICAgICAgc3RvcmUgPQotLSAgICAgICAgICAgICAgICBuZXcgbGx2bTo6U3RvcmVJ bnN0KHJ2YWx1ZSwgbHZhbHVlLCBmYWxzZSAvKiBub3Qgdm9sYXRpbGUgKi8sCi0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZy0+b3B0LmZvcmNlQWxpZ25lZE1lbW9yeSA/IGct PnRhcmdldC0+Z2V0TmF0aXZlVmVjdG9yQWxpZ25tZW50KCkgOiBpbmZvLT5hbGlnbik7Ci0tI2Vs c2UKLSAgICAgICAgICAgICBzdG9yZSA9IG5ldyBsbHZtOjpTdG9yZUluc3QoCi0gICAgICAgICAg ICAgICAgIHJ2YWx1ZSwgbHZhbHVlLCBmYWxzZSAvKiBub3Qgdm9sYXRpbGUgKi8sCi0gICAgICAg ICAgICAgICAgIGxsdm06Ok1heWJlQWxpZ24oZy0+b3B0LmZvcmNlQWxpZ25lZE1lbW9yeSA/IGct PnRhcmdldC0+Z2V0TmF0aXZlVmVjdG9yQWxpZ25tZW50KCkgOiBpbmZvLT5hbGlnbikKLSAgICAg ICAgICAgICAgICAgICAgIC52YWx1ZU9yT25lKCkpOwotLSNlbmRpZgotICAgICAgICAgfQotICAg ICAgICAgaWYgKHN0b3JlICE9IE5VTEwpIHsKLSAgICAgICAgICAgICBsQ29weU1ldGFkYXRhKHN0 b3JlLCBjYWxsSW5zdCk7Ci1AQCAtMzA1OSwxMSArMzAzOSw3IEBAIHN0YXRpYyBib29sIGxJbXBy b3ZlTWFza2VkTG9hZChsbHZtOjpDYWxsSW5zdCAqY2FsbEluc3QsIGxsdm06OkJhc2ljQmxvY2s6 Oml0ZXJhCi0gICAgICAgICB7Ci0gICAgICAgICAgICAgbGx2bTo6VHlwZSAqcHRyVHlwZSA9IGxs dm06OlBvaW50ZXJUeXBlOjpnZXQoY2FsbEluc3QtPmdldFR5cGUoKSwgMCk7Ci0gICAgICAgICAg ICAgcHRyID0gbmV3IGxsdm06OkJpdENhc3RJbnN0KHB0ciwgcHRyVHlwZSwgInB0cl9jYXN0X2Zv cl9sb2FkIiwgY2FsbEluc3QpOwotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA8PSBJU1BDX0xMVk1f OV8wCi0tICAgICAgICAgICAgbG9hZCA9IG5ldyBsbHZtOjpMb2FkSW5zdChwdHIsIGNhbGxJbnN0 LT5nZXROYW1lKCksIGZhbHNlIC8qIG5vdCB2b2xhdGlsZSAqLywKLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGctPm9wdC5mb3JjZUFsaWduZWRNZW1vcnkgPyBnLT50YXJn ZXQtPmdldE5hdGl2ZVZlY3RvckFsaWdubWVudCgpIDogaW5mby0+YWxpZ24sCi0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGx2bTo6SW5zdHJ1Y3Rpb24gKilOVUxMKTsK LS0jZWxpZiBJU1BDX0xMVk1fVkVSU0lPTiA9PSBJU1BDX0xMVk1fMTBfMAotKyNpZiBJU1BDX0xM Vk1fVkVSU0lPTiA9PSBJU1BDX0xMVk1fMTBfMAotICAgICAgICAgICAgIGxvYWQgPSBuZXcgbGx2 bTo6TG9hZEluc3QoCi0gICAgICAgICAgICAgICAgIHB0ciwgY2FsbEluc3QtPmdldE5hbWUoKSwg ZmFsc2UgLyogbm90IHZvbGF0aWxlICovLAotICAgICAgICAgICAgICAgICBsbHZtOjpNYXliZUFs aWduKGctPm9wdC5mb3JjZUFsaWduZWRNZW1vcnkgPyBnLT50YXJnZXQtPmdldE5hdGl2ZVZlY3Rv ckFsaWdubWVudCgpIDogaW5mby0+YWxpZ24pCi1AQCAtMzEyOSw5ICszMTA1LDcgQEAgYm9vbCBJ bXByb3ZlTWVtb3J5T3BzUGFzczo6cnVuT25CYXNpY0Jsb2NrKGxsdm06OkJhc2ljQmxvY2sgJmJi KSB7Ci0gCi0gYm9vbCBJbXByb3ZlTWVtb3J5T3BzUGFzczo6cnVuT25GdW5jdGlvbihsbHZtOjpG dW5jdGlvbiAmRikgewotIAotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTBf MAotICAgICBsbHZtOjpUaW1lVHJhY2VTY29wZSBGdW5jU2NvcGUoIkltcHJvdmVNZW1vcnlPcHNQ YXNzOjpydW5PbkZ1bmN0aW9uIiwgRi5nZXROYW1lKCkpOwotLSNlbmRpZgotICAgICBib29sIG1v ZGlmaWVkQW55ID0gZmFsc2U7Ci0gICAgIGZvciAobGx2bTo6QmFzaWNCbG9jayAmQkIgOiBGKSB7 Ci0gICAgICAgICBtb2RpZmllZEFueSB8PSBydW5PbkJhc2ljQmxvY2soQkIpOwotQEAgLTM0MjQs OSArMzM5OCw3IEBAIGxsdm06OlZhbHVlICpsR0VQQW5kTG9hZChsbHZtOjpWYWx1ZSAqYmFzZVB0 ciwgaW50NjRfdCBvZmZzZXQsIGludCBhbGlnbiwgbGx2bTo6Ci0gICAgICAgICAgICAgICAgICAg ICAgICAgIGxsdm06OlR5cGUgKnR5cGUpIHsKLSAgICAgbGx2bTo6VmFsdWUgKnB0ciA9IGxHRVBJ bnN0KGJhc2VQdHIsIExMVk1JbnQ2NChvZmZzZXQpLCAibmV3X2Jhc2UiLCBpbnNlcnRCZWZvcmUp OwotICAgICBwdHIgPSBuZXcgbGx2bTo6Qml0Q2FzdEluc3QocHRyLCBsbHZtOjpQb2ludGVyVHlw ZTo6Z2V0KHR5cGUsIDApLCAicHRyX2Nhc3QiLCBpbnNlcnRCZWZvcmUpOwotLSNpZiBJU1BDX0xM Vk1fVkVSU0lPTiA8PSBJU1BDX0xMVk1fOV8wCi0tICAgIHJldHVybiBuZXcgbGx2bTo6TG9hZElu c3QocHRyLCAiZ2F0aGVyX2xvYWQiLCBmYWxzZSAvKiBub3Qgdm9sYXRpbGUgKi8sIGFsaWduLCBp bnNlcnRCZWZvcmUpOwotLSNlbGlmIElTUENfTExWTV9WRVJTSU9OID09IElTUENfTExWTV8xMF8w Ci0rI2lmIElTUENfTExWTV9WRVJTSU9OID09IElTUENfTExWTV8xMF8wCi0gICAgIHJldHVybiBu ZXcgbGx2bTo6TG9hZEluc3QocHRyLCAiZ2F0aGVyX2xvYWQiLCBmYWxzZSAvKiBub3Qgdm9sYXRp bGUgKi8sIGxsdm06Ok1heWJlQWxpZ24oYWxpZ24pLCBpbnNlcnRCZWZvcmUpOwotICNlbHNlIC8v IExMVk0gMTEuMCsKLSAgICAgcmV0dXJuIG5ldyBsbHZtOjpMb2FkSW5zdChsbHZtOjpkeW5fY2Fz dDxsbHZtOjpQb2ludGVyVHlwZT4ocHRyLT5nZXRUeXBlKCkpLT5nZXRQb2ludGVyRWxlbWVudFR5 cGUoKSwgcHRyLAotQEAgLTQxMzUsOSArNDEwNyw3IEBAIGJvb2wgR2F0aGVyQ29hbGVzY2VQYXNz OjpydW5PbkJhc2ljQmxvY2sobGx2bTo6QmFzaWNCbG9jayAmYmIpIHsKLSAKLSBib29sIEdhdGhl ckNvYWxlc2NlUGFzczo6cnVuT25GdW5jdGlvbihsbHZtOjpGdW5jdGlvbiAmRikgewotIAotLSNp ZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTBfMAotICAgICBsbHZtOjpUaW1lVHJh Y2VTY29wZSBGdW5jU2NvcGUoIkdhdGhlckNvYWxlc2NlUGFzczo6cnVuT25GdW5jdGlvbiIsIEYu Z2V0TmFtZSgpKTsKLS0jZW5kaWYKLSAgICAgYm9vbCBtb2RpZmllZEFueSA9IGZhbHNlOwotICAg ICBmb3IgKGxsdm06OkJhc2ljQmxvY2sgJkJCIDogRikgewotICAgICAgICAgbW9kaWZpZWRBbnkg fD0gcnVuT25CYXNpY0Jsb2NrKEJCKTsKLUBAIC00NDY3LDkgKzQ0MzcsNyBAQCBib29sIFJlcGxh Y2VQc2V1ZG9NZW1vcnlPcHNQYXNzOjpydW5PbkJhc2ljQmxvY2sobGx2bTo6QmFzaWNCbG9jayAm YmIpIHsKLSAKLSBib29sIFJlcGxhY2VQc2V1ZG9NZW1vcnlPcHNQYXNzOjpydW5PbkZ1bmN0aW9u KGxsdm06OkZ1bmN0aW9uICZGKSB7Ci0gCi0tI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENf TExWTV8xMF8wCi0gICAgIGxsdm06OlRpbWVUcmFjZVNjb3BlIEZ1bmNTY29wZSgiUmVwbGFjZVBz ZXVkb01lbW9yeU9wc1Bhc3M6OnJ1bk9uRnVuY3Rpb24iLCBGLmdldE5hbWUoKSk7Ci0tI2VuZGlm Ci0gICAgIGJvb2wgbW9kaWZpZWRBbnkgPSBmYWxzZTsKLSAgICAgZm9yIChsbHZtOjpCYXNpY0Js b2NrICZCQiA6IEYpIHsKLSAgICAgICAgIG1vZGlmaWVkQW55IHw9IHJ1bk9uQmFzaWNCbG9jayhC Qik7Ci1AQCAtNDU3Myw5ICs0NTQxLDcgQEAgYm9vbCBJc0NvbXBpbGVUaW1lQ29uc3RhbnRQYXNz OjpydW5PbkJhc2ljQmxvY2sobGx2bTo6QmFzaWNCbG9jayAmYmIpIHsKLSAKLSBib29sIElzQ29t cGlsZVRpbWVDb25zdGFudFBhc3M6OnJ1bk9uRnVuY3Rpb24obGx2bTo6RnVuY3Rpb24gJkYpIHsK LSAKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzEwXzAKLSAgICAgbGx2bTo6 VGltZVRyYWNlU2NvcGUgRnVuY1Njb3BlKCJJc0NvbXBpbGVUaW1lQ29uc3RhbnRQYXNzOjpydW5P bkZ1bmN0aW9uIiwgRi5nZXROYW1lKCkpOwotLSNlbmRpZgotICAgICBib29sIG1vZGlmaWVkQW55 ID0gZmFsc2U7Ci0gICAgIGZvciAobGx2bTo6QmFzaWNCbG9jayAmQkIgOiBGKSB7Ci0gICAgICAg ICBtb2RpZmllZEFueSB8PSBydW5PbkJhc2ljQmxvY2soQkIpOwotQEAgLTUyMDEsOSArNTE2Nyw3 IEBAIGJvb2wgUGVlcGhvbGVQYXNzOjpydW5PbkJhc2ljQmxvY2sobGx2bTo6QmFzaWNCbG9jayAm YmIpIHsKLSAKLSBib29sIFBlZXBob2xlUGFzczo6cnVuT25GdW5jdGlvbihsbHZtOjpGdW5jdGlv biAmRikgewotIAotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTBfMAotICAg ICBsbHZtOjpUaW1lVHJhY2VTY29wZSBGdW5jU2NvcGUoIlBlZXBob2xlUGFzczo6cnVuT25GdW5j dGlvbiIsIEYuZ2V0TmFtZSgpKTsKLS0jZW5kaWYKLSAgICAgYm9vbCBtb2RpZmllZEFueSA9IGZh bHNlOwotICAgICBmb3IgKGxsdm06OkJhc2ljQmxvY2sgJkJCIDogRikgewotICAgICAgICAgbW9k aWZpZWRBbnkgfD0gcnVuT25CYXNpY0Jsb2NrKEJCKTsKLUBAIC01Mjk5LDkgKzUyNjMsNyBAQCBi b29sIFJlcGxhY2VTdGRsaWJTaGlmdFBhc3M6OnJ1bk9uQmFzaWNCbG9jayhsbHZtOjpCYXNpY0Js b2NrICZiYikgewotIAotIGJvb2wgUmVwbGFjZVN0ZGxpYlNoaWZ0UGFzczo6cnVuT25GdW5jdGlv bihsbHZtOjpGdW5jdGlvbiAmRikgewotIAotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BD X0xMVk1fMTBfMAotICAgICBsbHZtOjpUaW1lVHJhY2VTY29wZSBGdW5jU2NvcGUoIlJlcGxhY2VT dGRsaWJTaGlmdFBhc3M6OnJ1bk9uRnVuY3Rpb24iLCBGLmdldE5hbWUoKSk7Ci0tI2VuZGlmCi0g ICAgIGJvb2wgbW9kaWZpZWRBbnkgPSBmYWxzZTsKLSAgICAgZm9yIChsbHZtOjpCYXNpY0Jsb2Nr ICZCQiA6IEYpIHsKLSAgICAgICAgIG1vZGlmaWVkQW55IHw9IHJ1bk9uQmFzaWNCbG9jayhCQik7 Ci1AQCAtNTM5OSw5ICs1MzYxLDcgQEAgbGx2bTo6SW5zdHJ1Y3Rpb24gKkZpeEJvb2xlYW5TZWxl Y3RQYXNzOjpmaXhTZWxlY3QobGx2bTo6U2VsZWN0SW5zdCAqc2VsLCBsbHZtOjoKLSB9Ci0gCi0g Ym9vbCBGaXhCb29sZWFuU2VsZWN0UGFzczo6cnVuT25GdW5jdGlvbihsbHZtOjpGdW5jdGlvbiAm RikgewotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTBfMAotICAgICBsbHZt OjpUaW1lVHJhY2VTY29wZSBGdW5jU2NvcGUoIkZpeEJvb2xlYW5TZWxlY3RQYXNzOjpydW5PbkZ1 bmN0aW9uIiwgRi5nZXROYW1lKCkpOwotLSNlbmRpZgotICAgICBib29sIG1vZGlmaWVkQW55ID0g ZmFsc2U7Ci0gCi0gICAgIHJldHVybiBtb2RpZmllZEFueTsKLUBAIC01OTY0LDkgKzU5MjQsNyBA QCBib29sIEdlblhHYXRoZXJDb2FsZXNjaW5nOjpydW5PbkJhc2ljQmxvY2sobGx2bTo6QmFzaWNC bG9jayAmYmIpIHsKLSB9Ci0gCi0gYm9vbCBHZW5YR2F0aGVyQ29hbGVzY2luZzo6cnVuT25GdW5j dGlvbihsbHZtOjpGdW5jdGlvbiAmRikgewotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BD X0xMVk1fMTBfMAotICAgICBsbHZtOjpUaW1lVHJhY2VTY29wZSBGdW5jU2NvcGUoIkdlblhHYXRo ZXJDb2FsZXNjaW5nOjpydW5PbkZ1bmN0aW9uIiwgRi5nZXROYW1lKCkpOwotLSNlbmRpZgotICAg ICBib29sIG1vZGlmaWVkQW55ID0gZmFsc2U7Ci0gICAgIGZvciAobGx2bTo6QmFzaWNCbG9jayAm QkIgOiBGKSB7Ci0gICAgICAgICBtb2RpZmllZEFueSB8PSBydW5PbkJhc2ljQmxvY2soQkIpOwot QEAgLTYxMTMsOSArNjA3MSw3IEBAIGJvb2wgUHJvbW90ZVRvUHJpdmF0ZU1lbW9yeVBhc3M6OnJ1 bk9uQmFzaWNCbG9jayhsbHZtOjpCYXNpY0Jsb2NrICZiYikgewotIAotIGJvb2wgUHJvbW90ZVRv UHJpdmF0ZU1lbW9yeVBhc3M6OnJ1bk9uRnVuY3Rpb24obGx2bTo6RnVuY3Rpb24gJkYpIHsKLSAK LS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzEwXzAKLSAgICAgbGx2bTo6VGlt ZVRyYWNlU2NvcGUgRnVuY1Njb3BlKCJQcm9tb3RlVG9Qcml2YXRlTWVtb3J5UGFzczo6cnVuT25G dW5jdGlvbiIsIEYuZ2V0TmFtZSgpKTsKLS0jZW5kaWYKLSAgICAgYm9vbCBtb2RpZmllZEFueSA9 IGZhbHNlOwotICAgICBmb3IgKGxsdm06OkJhc2ljQmxvY2sgJkJCIDogRikgewotICAgICAgICAg bW9kaWZpZWRBbnkgfD0gcnVuT25CYXNpY0Jsb2NrKEJCKTsKLUBAIC02MTgxLDkgKzYxMzcsNyBA QCBib29sIFJlcGxhY2VMTFZNSW50cmluc2ljczo6cnVuT25CYXNpY0Jsb2NrKGxsdm06OkJhc2lj QmxvY2sgJmJiKSB7Ci0gCi0gYm9vbCBSZXBsYWNlTExWTUludHJpbnNpY3M6OnJ1bk9uRnVuY3Rp b24obGx2bTo6RnVuY3Rpb24gJkYpIHsKLSAKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQ Q19MTFZNXzEwXzAKLSAgICAgbGx2bTo6VGltZVRyYWNlU2NvcGUgRnVuY1Njb3BlKCJSZXBsYWNl TExWTUludHJpbnNpY3M6OnJ1bk9uRnVuY3Rpb24iLCBGLmdldE5hbWUoKSk7Ci0tI2VuZGlmCi0g ICAgIGJvb2wgbW9kaWZpZWRBbnkgPSBmYWxzZTsKLSAgICAgZm9yIChsbHZtOjpCYXNpY0Jsb2Nr ICZCQiA6IEYpIHsKLSAgICAgICAgIG1vZGlmaWVkQW55IHw9IHJ1bk9uQmFzaWNCbG9jayhCQik7 Ci1AQCAtNjI3OCw5ICs2MjMyLDcgQEAgYm9vbCBSZXBsYWNlVW5zdXBwb3J0ZWRJbnN0czo6cnVu T25CYXNpY0Jsb2NrKGxsdm06OkJhc2ljQmxvY2sgJmJiKSB7Ci0gCi0gYm9vbCBSZXBsYWNlVW5z dXBwb3J0ZWRJbnN0czo6cnVuT25GdW5jdGlvbihsbHZtOjpGdW5jdGlvbiAmRikgewotIAotLSNp ZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTBfMAotICAgICBsbHZtOjpUaW1lVHJh Y2VTY29wZSBGdW5jU2NvcGUoIlJlcGxhY2VVbnN1cHBvcnRlZEluc3RzOjpydW5PbkZ1bmN0aW9u IiwgRi5nZXROYW1lKCkpOwotLSNlbmRpZgotICAgICBib29sIG1vZGlmaWVkQW55ID0gZmFsc2U7 Ci0gICAgIGZvciAobGx2bTo6QmFzaWNCbG9jayAmQkIgOiBGKSB7Ci0gICAgICAgICBtb2RpZmll ZEFueSB8PSBydW5PbkJhc2ljQmxvY2soQkIpOwotQEAgLTYzNjksOSArNjMyMSw3IEBAIGJvb2wg Q2hlY2tVbnN1cHBvcnRlZEluc3RzOjpydW5PbkJhc2ljQmxvY2sobGx2bTo6QmFzaWNCbG9jayAm YmIpIHsKLSB9Ci0gCi0gYm9vbCBDaGVja1Vuc3VwcG9ydGVkSW5zdHM6OnJ1bk9uRnVuY3Rpb24o bGx2bTo6RnVuY3Rpb24gJkYpIHsKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZN XzEwXzAKLSAgICAgbGx2bTo6VGltZVRyYWNlU2NvcGUgRnVuY1Njb3BlKCJDaGVja1Vuc3VwcG9y dGVkSW5zdHM6OnJ1bk9uRnVuY3Rpb24iLCBGLmdldE5hbWUoKSk7Ci0tI2VuZGlmCi0gICAgIGJv b2wgbW9kaWZpZWRBbnkgPSBmYWxzZTsKLSAgICAgZm9yIChsbHZtOjpCYXNpY0Jsb2NrICZCQiA6 IEYpIHsKLSAgICAgICAgIG1vZGlmaWVkQW55IHw9IHJ1bk9uQmFzaWNCbG9jayhCQik7Ci1AQCAt NjQ0MCw5ICs2MzkwLDcgQEAgYm9vbCBNYW5nbGVPcGVuQ0xCdWlsdGluczo6cnVuT25CYXNpY0Js b2NrKGxsdm06OkJhc2ljQmxvY2sgJmJiKSB7Ci0gfQotIAotIGJvb2wgTWFuZ2xlT3BlbkNMQnVp bHRpbnM6OnJ1bk9uRnVuY3Rpb24obGx2bTo6RnVuY3Rpb24gJkYpIHsKLS0jaWYgSVNQQ19MTFZN X1ZFUlNJT04gPj0gSVNQQ19MTFZNXzEwXzAKLSAgICAgbGx2bTo6VGltZVRyYWNlU2NvcGUgRnVu Y1Njb3BlKCJNYW5nbGVPcGVuQ0xCdWlsdGluczo6cnVuT25GdW5jdGlvbiIsIEYuZ2V0TmFtZSgp KTsKLS0jZW5kaWYKLSAgICAgYm9vbCBtb2RpZmllZEFueSA9IGZhbHNlOwotICAgICBmb3IgKGxs dm06OkJhc2ljQmxvY2sgJkJCIDogRikgewotICAgICAgICAgbW9kaWZpZWRBbnkgfD0gcnVuT25C YXNpY0Jsb2NrKEJCKTsKLUBAIC02ODI4LDkgKzY3NzYsNyBAQCBib29sIEZpeEFkZHJlc3NTcGFj ZTo6cnVuT25GdW5jdGlvbihsbHZtOjpGdW5jdGlvbiAmRikgewotICAgICAvLyBUcmFuc2Zvcm1h dGlvbnMgYXJlIGNvcnJlY3Qgd2hlbiB0aGUgZnVuY3Rpb24gaXMgbm90IGludGVybmFsLgotICAg ICAvLyBUaGlzIGlzIGR1ZSB0byBhZGRyZXNzIHNwYWNlIGNhbGN1bGF0aW9uIGFsZ29yaXRobS4K LSAgICAgLy8gVE9ETzogcHJvYmxlbXMgY2FuIGJlIG1ldCBpbiBjYXNlIG9mIFN0YWNrIENhbGxz Ci0tI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMF8wCi0gICAgIGxsdm06OlRp bWVUcmFjZVNjb3BlIEZ1bmNTY29wZSgiRml4QWRkcmVzc1NwYWNlOjpydW5PbkZ1bmN0aW9uIiwg Ri5nZXROYW1lKCkpOwotLSNlbmRpZgotICAgICBpZiAoRi5nZXRMaW5rYWdlKCkgPT0gbGx2bTo6 R2xvYmFsVmFsdWU6OkxpbmthZ2VUeXBlczo6SW50ZXJuYWxMaW5rYWdlKQotICAgICAgICAgcmV0 dXJuIGZhbHNlOwotIAotQEAgLTY4NTQsOSArNjgwMCw3IEBAIGNsYXNzIERlbW90ZVBISXMgOiBw dWJsaWMgbGx2bTo6RnVuY3Rpb25QYXNzIHsKLSBjaGFyIERlbW90ZVBISXM6OklEID0gMDsKLSAK LSBib29sIERlbW90ZVBISXM6OnJ1bk9uRnVuY3Rpb24obGx2bTo6RnVuY3Rpb24gJkYpIHsKLS0j aWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzEwXzAKLSAgICAgbGx2bTo6VGltZVRy YWNlU2NvcGUgRnVuY1Njb3BlKCJEZW1vdGVQSElzOjpydW5PbkZ1bmN0aW9uIiwgRi5nZXROYW1l KCkpOwotLSNlbmRpZgotICAgICBpZiAoRi5pc0RlY2xhcmF0aW9uKCkgfHwgc2tpcEZ1bmN0aW9u KEYpKQotICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICBzdGQ6OnZlY3RvcjxsbHZtOjpJbnN0 cnVjdGlvbiAqPiBXb3JrTGlzdDsKLWRpZmYgLS1naXQgYS9zcmMvdHlwZS5jcHAgYi9zcmMvdHlw ZS5jcHAKLWluZGV4IDY4OGE0ZTg3NC4uZmEwY2IwNGRiIDEwMDY0NAotLS0tIGEvc3JjL3R5cGUu Y3BwCi0rKysgYi9zcmMvdHlwZS5jcHAKLUBAIC0xODIyLDE0ICsxODIyLDEwIEBAIGxsdm06OkRJ VHlwZSAqU3RydWN0VHlwZTo6R2V0RElUeXBlKGxsdm06OkRJU2NvcGUgKnNjb3BlKSBjb25zdCB7 Ci0gICAgIGxsdm06OkRJRmlsZSAqZGlGaWxlID0gcG9zLkdldERJRmlsZSgpOwotICAgICBsbHZt OjpESU5hbWVzcGFjZSAqZGlTcGFjZSA9IHBvcy5HZXRESU5hbWVzcGFjZSgpOwotICAgICByZXR1 cm4gbS0+ZGlCdWlsZGVyLT5jcmVhdGVTdHJ1Y3RUeXBlKGRpU3BhY2UsIEdldFN0cmluZygpLCBk aUZpbGUsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zLmZp cnN0X2xpbmUsICAgICAgICAgIC8vIExpbmUgbnVtYmVyCi0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgbGF5b3V0LT5nZXRTaXplSW5CaXRzKCksIC8vIFNpemUgaW4g Yml0cwotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA8PSBJU1BDX0xMVk1fOV8wCi0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF5b3V0LT5nZXRBbGlnbm1lbnQoKSAq IDgsIC8vIEFsaWdubWVudCBpbiBiaXRzCi0tI2Vsc2UgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIExMVk0gMTAuMCsKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3MuZmlyc3RfbGluZSwg ICAgICAgICAgICAgICAgICAgICAvLyBMaW5lIG51bWJlcgotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGxheW91dC0+Z2V0U2l6ZUluQml0cygpLCAgICAgICAgICAg IC8vIFNpemUgaW4gYml0cwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGxheW91dC0+Z2V0QWxpZ25tZW50KCkudmFsdWUoKSAqIDgsIC8vIEFsaWdubWVudCBpbiBi aXRzCi0tI2VuZGlmCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg bGx2bTo6RElOb2RlOjpGbGFnWmVybywgLy8gRmxhZ3MKLSsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBsbHZtOjpESU5vZGU6OkZsYWdaZXJvLCAgICAgICAgICAgICAv LyBGbGFncwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEws IGVsZW1lbnRzKTsKLSB9Ci0gCi1kaWZmIC0tZ2l0IGEvdGVzdHMvbGl0LXRlc3RzLzE3NzEuaXNw YyBiL3Rlc3RzL2xpdC10ZXN0cy8xNzcxLmlzcGMKLWluZGV4IDk4MDY0ZDg0ZC4uNGZlYjczZGQ3 IDEwMDY0NAotLS0tIGEvdGVzdHMvbGl0LXRlc3RzLzE3NzEuaXNwYwotKysrIGIvdGVzdHMvbGl0 LXRlc3RzLzE3NzEuaXNwYwotQEAgLTUsNyArNSw2IEBACi0gLy8gUlVOOiAle2lzcGN9ICVzIC0t dGFyZ2V0PXNzZTQtaTE2eDggLS1lbWl0LWFzbSAtbyAtIHwgRmlsZUNoZWNrICVzIC1jaGVjay1w cmVmaXg9Q0hFQ0tTU0U0X0kxNlg4Ci0gLy8gUlVOOiAle2lzcGN9ICVzIC0tdGFyZ2V0PXNzZTQt aTh4MTYgLS1lbWl0LWFzbSAtbyAtIHwgRmlsZUNoZWNrICVzIC1jaGVjay1wcmVmaXg9Q0hFQ0tT U0U0X0k4WDE2Ci0gCi0tLy8gUkVRVUlSRVM6IExMVk1fMTBfMCsKLSAvLyBSRVFVSVJFUzogWDg2 X0VOQUJMRUQKLSAKLSAvLyBDSEVDS0FWWDJfSTMyWDg6IHt7W2Etel0qeG9yW2Etel0qfX0gICV4 bW0wLCAleG1tMCwgJXhtbTAKLWRpZmYgLS1naXQgYS90ZXN0cy9saXQtdGVzdHMvMTg0NC5pc3Bj IGIvdGVzdHMvbGl0LXRlc3RzLzE4NDQuaXNwYwotaW5kZXggNzkzYTg4NjZjLi4xODllZGY0YzMg MTAwNjQ0Ci0tLS0gYS90ZXN0cy9saXQtdGVzdHMvMTg0NC5pc3BjCi0rKysgYi90ZXN0cy9saXQt dGVzdHMvMTg0NC5pc3BjCi1AQCAtNiw5ICs2LDYgQEAKLSAKLSAvLyBSRVFVSVJFUzogWDg2X0VO QUJMRUQKLSAKLS0vLyBJdCBkb2Vzbid0IHdvcmsgZm9yIGFueXRoaW5nIGVhcmxpZXIgdGhhbiAx MC4wLCBidXQgaXQgd2lsbCBub3QgYmUgZml4ZWQsIHNvIGRvbid0IHJ1bi4KLS0vLyBSRVFVSVJF UzogTExWTV8xMF8wKwotLQotIGV4dGVybiB1bmlmb3JtIHVuc2lnbmVkIGludDY0IHZhcl82Owot IGV4dGVybiB1bmlmb3JtIHVuc2lnbmVkIGludDE2IHZhcl8xMTsKLSBleHRlcm4gdW5pZm9ybSBi b29sIGFycl8yMDEgWzFdIFsxNV0gWzIwXTsKLWRpZmYgLS1naXQgYS90ZXN0cy9saXQtdGVzdHMv MTkyNi5pc3BjIGIvdGVzdHMvbGl0LXRlc3RzLzE5MjYuaXNwYwotaW5kZXggNzBmN2NjM2MyLi43 OTIxYzkxYTYgMTAwNjQ0Ci0tLS0gYS90ZXN0cy9saXQtdGVzdHMvMTkyNi5pc3BjCi0rKysgYi90 ZXN0cy9saXQtdGVzdHMvMTkyNi5pc3BjCi1AQCAtMiw4ICsyLDYgQEAKLSAvLyBSVU46IGNhdCAl VC8xOTI2Lm8uanNvbiBcCi0gLy8gUlVOOiAgIHwgRmlsZUNoZWNrICVzCi0gCi0tLy8gUkVRVUlS RVM6IExMVk1fMTBfMCsKLS0KLSAvLyBDSEVDSzogInRyYWNlRXZlbnRzIgotIC8vIENIRUNLOiAi ZGV0YWlsIgotIGV4cG9ydCB1bmlmb3JtIGludCBmb28odW5pZm9ybSBpbnQgYVtdLCB1bmlmb3Jt IGludCBjb3VudCkgewotZGlmZiAtLWdpdCBhL3Rlc3RzL2xpdC10ZXN0cy9jcHVzX3g4Ni5pc3Bj IGIvdGVzdHMvbGl0LXRlc3RzL2NwdXNfeDg2LmlzcGMKLWluZGV4IDUxNmVmZGQ0Yy4uNGQ2MDE4 NmY2IDEwMDY0NAotLS0tIGEvdGVzdHMvbGl0LXRlc3RzL2NwdXNfeDg2LmlzcGMKLSsrKyBiL3Rl c3RzL2xpdC10ZXN0cy9jcHVzX3g4Ni5pc3BjCi1AQCAtMjQsNiArMjQsOCBAQAotIC8vOyBSVU46 ICV7aXNwY30gJXMgLW8gJXQubyAtLW5vc3RkbGliIC0tdGFyZ2V0PXNzZTItaTMyeDQgLS1jcHU9 aWNsCi0gLy87IFJVTjogJXtpc3BjfSAlcyAtbyAldC5vIC0tbm9zdGRsaWIgLS10YXJnZXQ9c3Nl Mi1pMzJ4NCAtLWNwdT1pY2VsYWtlLXNlcnZlcgotIC8vOyBSVU46ICV7aXNwY30gJXMgLW8gJXQu byAtLW5vc3RkbGliIC0tdGFyZ2V0PXNzZTItaTMyeDQgLS1jcHU9aWN4Ci0rLy87IFJVTjogJXtp c3BjfSAlcyAtbyAldC5vIC0tbm9zdGRsaWIgLS10YXJnZXQ9c3NlMi1pMzJ4NCAtLWNwdT10aWdl cmxha2UKLSsvLzsgUlVOOiAle2lzcGN9ICVzIC1vICV0Lm8gLS1ub3N0ZGxpYiAtLXRhcmdldD1z c2UyLWkzMng0IC0tY3B1PXRnbAotIAotIC8vIFJFUVVJUkVTOiBYODZfRU5BQkxFRAotIAotZGlm ZiAtLWdpdCBhL3Rlc3RzL2xpdC10ZXN0cy9jcHVzX3g4Nl9sbHZtMTAuaXNwYyBiL3Rlc3RzL2xp dC10ZXN0cy9jcHVzX3g4Nl9sbHZtMTAuaXNwYwotZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Ci1p bmRleCBlZjAwMDAwZTUuLjAwMDAwMDAwMAotLS0tIGEvdGVzdHMvbGl0LXRlc3RzL2NwdXNfeDg2 X2xsdm0xMC5pc3BjCi0rKysgL2Rldi9udWxsCi1AQCAtMSwxMSArMCwwIEBACi0tLy8gVGhlIHRl c3QgY2hlY2tzIHRoYXQgY3B1IGRlZmluaXRpb25zIChpbmNsdWRpbmcgYWxsIHN5bm9ueW1zKSBh cmUgc3VjY2Vzc2Z1bGx5IGNvbnN1bWVkIGJ5IGNvbXBpbGVyLgotLQotLS8vOyBSVU46ICV7aXNw Y30gJXMgLW8gJXQubyAtLW5vc3RkbGliIC0tdGFyZ2V0PXNzZTItaTMyeDQgLS1jcHU9dGlnZXJs YWtlCi0tLy87IFJVTjogJXtpc3BjfSAlcyAtbyAldC5vIC0tbm9zdGRsaWIgLS10YXJnZXQ9c3Nl Mi1pMzJ4NCAtLWNwdT10Z2wKLS0KLS0vLyBSRVFVSVJFUzogWDg2X0VOQUJMRUQKLS0vLyBSRVFV SVJFUzogTExWTV8xMF8wKwotLQotLXVuaWZvcm0gaW50IGk7Ci0tCi0tdm9pZCBmb28oKSB7fQot ZGlmZiAtLWdpdCBhL3Rlc3RzL2xpdC10ZXN0cy9saXQuY2ZnIGIvdGVzdHMvbGl0LXRlc3RzL2xp dC5jZmcKLWluZGV4IDE3MDE2NTc5ZC4uMDQ1ZTY5NDM3IDEwMDY0NAotLS0tIGEvdGVzdHMvbGl0 LXRlc3RzL2xpdC5jZmcKLSsrKyBiL3Rlc3RzL2xpdC10ZXN0cy9saXQuY2ZnCi1AQCAtMzAsMTEg KzMwLDYgQEAgcHJpbnQoIkNvbmZpZzoiKQotIAotICMgTExWTSB2ZXJzaW9uCi0gbGx2bV92ZXJz aW9uID0gTG9vc2VWZXJzaW9uKGlzcGNfbGx2bV92ZXJzaW9uX251bWJlcikKLS1pZiBsbHZtX3Zl cnNpb24gPj0gTG9vc2VWZXJzaW9uKCIxMC4wLjAiKToKLS0gICAgcHJpbnQoIkxMVk1fMTBfMCs6 IFlFUyIpCi0tICAgIGNvbmZpZy5hdmFpbGFibGVfZmVhdHVyZXMuYWRkKCJMTFZNXzEwXzArIikK LS1lbHNlOgotLSAgICBwcmludCgiTExWTV8xMF8wKzogTk8iKQotIAotIGlmIGxsdm1fdmVyc2lv biA+PSBMb29zZVZlcnNpb24oIjEyLjAuMCIpOgotICAgICBwcmludCgiTExWTV8xMl8wKzogWUVT IikKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvaXNwYy9wYXRjaGVzL2xsdm0xMi0wMDMucGF0Y2ggYi9z cmNwa2dzL2lzcGMvcGF0Y2hlcy9sbHZtMTItMDAzLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwNDIzYWZjOWUzZjkuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2lzcGMv cGF0Y2hlcy9sbHZtMTItMDAzLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTUwNCArMCwwIEBA Ci1Gcm9tIDE4NTFkMThiMjEzZGJhZDE2OTkzNzA3NjE3NmIyZDU1MDk3MzNjNzYgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCi1Gcm9tOiBEZWVwYWsgUmFqZW5kcmFrdW1hcmFuIDxkZWVwYWsucmFq ZW5kcmFrdW1hcmFuQGludGVsLmNvbT4KLURhdGU6IFR1ZSwgMTIgSmFuIDIwMjEgMjI6MTU6MTIg LTA4MDAKLVN1YmplY3Q6IFtQQVRDSF0gZml4ZXMgIzE4MjEgLSBSZW1vdmluZyBMTFZNR2V0TmFt ZSgpIGFuZCBzd2l0Y2hpbmcgdG8KLSBMTFZNOjpUd2luZS4KLQotLS0tCi0gc3JjL2N0eC5jcHAg ICAgICB8IDMwNCArKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQotIHNyYy9jdHguaCAgICAgICAgfCAgNzIgKysrKystLS0tLS0KLSBzcmMvZXhwci5jcHAgICAg IHwgIDM2ICsrKy0tLQotIHNyYy9sbHZtdXRpbC5jcHAgfCAgMTcgLS0tCi0gc3JjL2xsdm11dGls LmggICB8ICAgNSAtCi0gc3JjL29wdC5jcHAgICAgICB8IDEwMyArKysrKysrKystLS0tLS0tCi0g NiBmaWxlcyBjaGFuZ2VkLCAyNTUgaW5zZXJ0aW9ucygrKSwgMjgyIGRlbGV0aW9ucygtKQotCi1k aWZmIC0tZ2l0IGEvc3JjL2N0eC5jcHAgYi9zcmMvY3R4LmNwcAotaW5kZXggNDJjNGVhMDlkLi5k ZWQ1MjRiNzEgMTAwNjQ0Ci0tLS0gYS9zcmMvY3R4LmNwcAotKysrIGIvc3JjL2N0eC5jcHAKLUBA IC0xMDIwLDggKzEwMjAsOCBAQCB2b2lkIEZ1bmN0aW9uRW1pdENvbnRleHQ6OkVtaXRDYXNlTGFi ZWwoaW50IHZhbHVlLCBib29sIGNoZWNrTWFzaywgU291cmNlUG9zIHBvcwotICAgICBsbHZtOjpC YXNpY0Jsb2NrICpiYkNhc2VJbXBsID0gTlVMTDsKLSAgICAgaWYgKGVtaXRHZW5YSGFyZHdhcmVN YXNrKCkpIHsKLSAgICAgICAgIC8vIENyZWF0ZSBiYXNpYyBibG9jayB3aXRoIGFjdHVhbCBjYXNl IGltcGxlbWVudGF0aW9uCi0tICAgICAgICBzdGQ6OnN0cmluZyBiYk5hbWUgPSBiYkNhc2UtPmdl dE5hbWUoKS5zdHIoKSArICJfaW1wbCI7Ci0tICAgICAgICBiYkNhc2VJbXBsID0gQ3JlYXRlQmFz aWNCbG9jayhiYk5hbWUuY19zdHIoKSwgYmJDYXNlKTsKLSsgICAgICAgIGxsdm06OlR3aW5lIGJi TmFtZSA9IGxsdm06OlR3aW5lKGJiQ2FzZS0+Z2V0TmFtZSgpKSArICJfaW1wbCI7Ci0rICAgICAg ICBiYkNhc2VJbXBsID0gQ3JlYXRlQmFzaWNCbG9jayhiYk5hbWUsIGJiQ2FzZSk7Ci0gICAgIH0K LSAjZW5kaWYKLSAKLUBAIC0xMTg1LDcgKzExODUsNyBAQCBib29sIEZ1bmN0aW9uRW1pdENvbnRl eHQ6OmluaXRMYWJlbEJCbG9ja3MoQVNUTm9kZSAqbm9kZSwgdm9pZCAqZGF0YSkgewotICAgICBp ZiAoY3R4LT5sYWJlbE1hcC5maW5kKGxzLT5uYW1lKSAhPSBjdHgtPmxhYmVsTWFwLmVuZCgpKQot ICAgICAgICAgRXJyb3IobHMtPnBvcywgIk11bHRpcGxlIGxhYmVscyBuYW1lZCBcIiVzXCIgaW4g ZnVuY3Rpb24uIiwgbHMtPm5hbWUuY19zdHIoKSk7Ci0gICAgIGVsc2UgewotLSAgICAgICAgbGx2 bTo6QmFzaWNCbG9jayAqYmIgPSBjdHgtPkNyZWF0ZUJhc2ljQmxvY2sobHMtPm5hbWUuY19zdHIo KSk7Ci0rICAgICAgICBsbHZtOjpCYXNpY0Jsb2NrICpiYiA9IGN0eC0+Q3JlYXRlQmFzaWNCbG9j ayhscy0+bmFtZSk7Ci0gICAgICAgICBjdHgtPmxhYmVsTWFwW2xzLT5uYW1lXSA9IGJiOwotICAg ICB9Ci0gICAgIHJldHVybiB0cnVlOwotQEAgLTEyOTksNyArMTI5OSw3IEBAIGxsdm06OlZhbHVl ICpGdW5jdGlvbkVtaXRDb250ZXh0OjpBbnkobGx2bTo6VmFsdWUgKm1hc2spIHsKLSAgICAgLy8g V2UgY2FuIGFjdHVhbGx5IGNhbGwgZWl0aGVyIG9uZSwgc2luY2UgYm90aCBhcmUgaTMycyBhcyBm YXIgYXMKLSAgICAgLy8gTExWTSdzIHR5cGUgc3lzdGVtIGlzIGNvbmNlcm5lZC4uLgotICAgICBs bHZtOjpGdW5jdGlvbiAqZm1tID0gbW1bMF0tPmZ1bmN0aW9uOwotLSAgICByZXR1cm4gQ2FsbElu c3QoZm1tLCBOVUxMLCBtYXNrLCBMTFZNR2V0TmFtZShtYXNrLCAiX2FueSIpKTsKLSsgICAgcmV0 dXJuIENhbGxJbnN0KGZtbSwgTlVMTCwgbWFzaywgbGx2bTo6VHdpbmUobWFzay0+Z2V0TmFtZSgp KSArICJfYW55Iik7Ci0gfQotIAotIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpB bGwobGx2bTo6VmFsdWUgKm1hc2spIHsKLUBAIC0xMzE1LDcgKzEzMTUsNyBAQCBsbHZtOjpWYWx1 ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6QWxsKGxsdm06OlZhbHVlICptYXNrKSB7Ci0gICAgIC8v IFdlIGNhbiBhY3R1YWxseSBjYWxsIGVpdGhlciBvbmUsIHNpbmNlIGJvdGggYXJlIGkzMnMgYXMg ZmFyIGFzCi0gICAgIC8vIExMVk0ncyB0eXBlIHN5c3RlbSBpcyBjb25jZXJuZWQuLi4KLSAgICAg bGx2bTo6RnVuY3Rpb24gKmZtbSA9IG1tWzBdLT5mdW5jdGlvbjsKLS0gICAgcmV0dXJuIENhbGxJ bnN0KGZtbSwgTlVMTCwgbWFzaywgTExWTUdldE5hbWUobWFzaywgIl9hbGwiKSk7Ci0rICAgIHJl dHVybiBDYWxsSW5zdChmbW0sIE5VTEwsIG1hc2ssIGxsdm06OlR3aW5lKG1hc2stPmdldE5hbWUo KSkgKyAiX2FsbCIpOwotIH0KLSAKLSBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6 Tm9uZShsbHZtOjpWYWx1ZSAqbWFzaykgewotQEAgLTEzMzEsNyArMTMzMSw3IEBAIGxsdm06OlZh bHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpOb25lKGxsdm06OlZhbHVlICptYXNrKSB7Ci0gICAg IC8vIFdlIGNhbiBhY3R1YWxseSBjYWxsIGVpdGhlciBvbmUsIHNpbmNlIGJvdGggYXJlIGkzMnMg YXMgZmFyIGFzCi0gICAgIC8vIExMVk0ncyB0eXBlIHN5c3RlbSBpcyBjb25jZXJuZWQuLi4KLSAg ICAgbGx2bTo6RnVuY3Rpb24gKmZtbSA9IG1tWzBdLT5mdW5jdGlvbjsKLS0gICAgcmV0dXJuIENh bGxJbnN0KGZtbSwgTlVMTCwgbWFzaywgTExWTUdldE5hbWUobWFzaywgIl9ub25lIikpOwotKyAg ICByZXR1cm4gQ2FsbEluc3QoZm1tLCBOVUxMLCBtYXNrLCBsbHZtOjpUd2luZShtYXNrLT5nZXRO YW1lKCkpICsgIl9ub25lIik7Ci0gfQotIAotIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250 ZXh0OjpMYW5lTWFzayhsbHZtOjpWYWx1ZSAqdikgewotQEAgLTEzNDksNyArMTM0OSw3IEBAIGxs dm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpMYW5lTWFzayhsbHZtOjpWYWx1ZSAqdikg ewotICAgICAvLyBXZSBjYW4gYWN0dWFsbHkgY2FsbCBlaXRoZXIgb25lLCBzaW5jZSBib3RoIGFy ZSBpMzJzIGFzIGZhciBhcwotICAgICAvLyBMTFZNJ3MgdHlwZSBzeXN0ZW0gaXMgY29uY2VybmVk Li4uCi0gICAgIGxsdm06OkZ1bmN0aW9uICpmbW0gPSBtbVswXS0+ZnVuY3Rpb247Ci0tICAgIHJl dHVybiBDYWxsSW5zdChmbW0sIE5VTEwsIHYsIExMVk1HZXROYW1lKHYsICJfbW92bXNrIikpOwot KyAgICByZXR1cm4gQ2FsbEluc3QoZm1tLCBOVUxMLCB2LCBsbHZtOjpUd2luZSh2LT5nZXROYW1l KCkpICsgIl9tb3Ztc2siKTsKLSB9Ci0gCi0gbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRl eHQ6Ok1hc2tzQWxsRXF1YWwobGx2bTo6VmFsdWUgKnYxLCBsbHZtOjpWYWx1ZSAqdjIpIHsKLUBA IC0xMzY0LDExICsxMzY0LDEyIEBAIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpN YXNrc0FsbEVxdWFsKGxsdm06OlZhbHVlICp2MSwgbGx2bTo6VmFsdWUgKnYyCi0gI2Vsc2UKLSAg ICAgaWYgKGctPnRhcmdldC0+Z2V0QXJjaCgpID09IEFyY2g6Ondhc20zMikgewotICAgICAgICAg bGx2bTo6RnVuY3Rpb24gKmZtbSA9IG0tPm1vZHVsZS0+Z2V0RnVuY3Rpb24oIl9fd2FzbV9jbXBf bXNrX2VxIik7Ci0tICAgICAgICByZXR1cm4gQ2FsbEluc3QoZm1tLCBOVUxMLCB7djEsIHYyfSwg TExWTUdldE5hbWUoIndhc21fY21wX21za19lcSIsIHYxLCB2MikpOwotKyAgICAgICAgcmV0dXJu IENhbGxJbnN0KGZtbSwgTlVMTCwge3YxLCB2Mn0sICgobGx2bTo6VHdpbmUoIndhc21fY21wX21z a19lcV8iKSArIHYxLT5nZXROYW1lKCkpICsgIl8iKSArIHYyLT5nZXROYW1lKCkpOwotICAgICB9 Ci0gICAgIGxsdm06OlZhbHVlICptbTEgPSBMYW5lTWFzayh2MSk7Ci0gICAgIGxsdm06OlZhbHVl ICptbTIgPSBMYW5lTWFzayh2Mik7Ci0tICAgIHJldHVybiBDbXBJbnN0KGxsdm06Okluc3RydWN0 aW9uOjpJQ21wLCBsbHZtOjpDbXBJbnN0OjpJQ01QX0VRLCBtbTEsIG1tMiwgTExWTUdldE5hbWUo ImVxdWFsIiwgdjEsIHYyKSk7Ci0rICAgIHJldHVybiBDbXBJbnN0KGxsdm06Okluc3RydWN0aW9u OjpJQ21wLCBsbHZtOjpDbXBJbnN0OjpJQ01QX0VRLCBtbTEsIG1tMiwKLSsgICAgICAgICAgICAg ICAgICAgKChsbHZtOjpUd2luZSgiZXF1YWxfIikgKyB2MS0+Z2V0TmFtZSgpKSArICJfIikgKyB2 Mi0+Z2V0TmFtZSgpKTsKLSAjZW5kaWYKLSB9Ci0gCi1AQCAtMTM5Miw3ICsxMzkzLDcgQEAgbGx2 bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkdldFN0cmluZ1B0cihjb25zdCBzdGQ6OnN0 cmluZyAmc3RyKSB7Ci0gICAgIHJldHVybiBuZXcgbGx2bTo6Qml0Q2FzdEluc3QobHN0clB0ciwg TExWTVR5cGVzOjpWb2lkUG9pbnRlclR5cGUsICJzdHJfdm9pZF9wdHIiLCBiYmxvY2spOwotIH0K LSAKLS1sbHZtOjpCYXNpY0Jsb2NrICpGdW5jdGlvbkVtaXRDb250ZXh0OjpDcmVhdGVCYXNpY0Js b2NrKGNvbnN0IGNoYXIgKm5hbWUsIGxsdm06OkJhc2ljQmxvY2sgKmluc2VydEFmdGVyKSB7Ci0r bGx2bTo6QmFzaWNCbG9jayAqRnVuY3Rpb25FbWl0Q29udGV4dDo6Q3JlYXRlQmFzaWNCbG9jayhj b25zdCBsbHZtOjpUd2luZSAmbmFtZSwgbGx2bTo6QmFzaWNCbG9jayAqaW5zZXJ0QWZ0ZXIpIHsK LSAgICAgbGx2bTo6QmFzaWNCbG9jayAqbmV3QkIgPSBsbHZtOjpCYXNpY0Jsb2NrOjpDcmVhdGUo KmctPmN0eCwgbmFtZSwgbGx2bUZ1bmN0aW9uKTsKLSAgICAgaWYgKGluc2VydEFmdGVyKQotICAg ICAgICAgbmV3QkItPm1vdmVBZnRlcihpbnNlcnRBZnRlcik7Ci1AQCAtMTQxNiwxNCArMTQxNywx NSBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6STFWZWNUb0Jvb2xWZWMobGx2 bTo6VmFsdWUgKmIpIHsKLSAKLSAgICAgICAgIGZvciAodW5zaWduZWQgaW50IGkgPSAwOyBpIDwg YXQtPmdldE51bUVsZW1lbnRzKCk7ICsraSkgewotICAgICAgICAgICAgIGxsdm06OlZhbHVlICpl bHQgPSBFeHRyYWN0SW5zdChiLCBpKTsKLS0gICAgICAgICAgICBsbHZtOjpWYWx1ZSAqc2V4dCA9 IFN3aXRjaEJvb2xTaXplKGVsdCwgTExWTVR5cGVzOjpCb29sVmVjdG9yU3RvcmFnZVR5cGUsIExM Vk1HZXROYW1lKGVsdCwgIl90b19ib29sdmVjIikpOwotKyAgICAgICAgICAgIGxsdm06OlZhbHVl ICpzZXh0ID0KLSsgICAgICAgICAgICAgICAgU3dpdGNoQm9vbFNpemUoZWx0LCBMTFZNVHlwZXM6 OkJvb2xWZWN0b3JTdG9yYWdlVHlwZSwgbGx2bTo6VHdpbmUoZWx0LT5nZXROYW1lKCkpICsgIl90 b19ib29sdmVjIik7Ci0gICAgICAgICAgICAgcmV0ID0gSW5zZXJ0SW5zdChyZXQsIHNleHQsIGkp OwotICAgICAgICAgfQotICAgICAgICAgcmV0dXJuIHJldDsKLSAgICAgfSBlbHNlIHsKLSAgICAg ICAgIC8vIEZvciBub24tYXJyYXkgdHlwZXMsIGNvbnZlcnQgdG8gJ0xMVk1UeXBlczo6Qm9vbFZl Y3RvclR5cGUnIGlmCi0gICAgICAgICAvLyBuZWNlc3NhcnkuCi0tICAgICAgICByZXR1cm4gU3dp dGNoQm9vbFNpemUoYiwgTExWTVR5cGVzOjpCb29sVmVjdG9yVHlwZSwgTExWTUdldE5hbWUoYiwg Il90b19ib29sdmVjIikpOwotKyAgICAgICAgcmV0dXJuIFN3aXRjaEJvb2xTaXplKGIsIExMVk1U eXBlczo6Qm9vbFZlY3RvclR5cGUsIGxsdm06OlR3aW5lKGItPmdldE5hbWUoKSkgKyAiX3RvX2Jv b2x2ZWMiKTsKLSAgICAgfQotIH0KLSAKLUBAIC0xNTYzLDcgKzE1NjUsNyBAQCBzdGF0aWMgaW50 IGxBcnJheVZlY3RvcldpZHRoKGxsdm06OlR5cGUgKnQpIHsKLSB9Ci0gCi0gbGx2bTo6VmFsdWUg KkZ1bmN0aW9uRW1pdENvbnRleHQ6OkJpbmFyeU9wZXJhdG9yKGxsdm06Okluc3RydWN0aW9uOjpC aW5hcnlPcHMgaW5zdCwgbGx2bTo6VmFsdWUgKnYwLCBsbHZtOjpWYWx1ZSAqdjEsCi0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKm5h bWUpIHsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y29uc3QgbGx2bTo6VHdpbmUgJm5hbWUpIHsKLSAgICAgaWYgKHYwID09IE5VTEwgfHwgdjEgPT0g TlVMTCkgewotICAgICAgICAgQXNzZXJ0UG9zKGN1cnJlbnRQb3MsIG0tPmVycm9yQ291bnQgPiAw KTsKLSAgICAgICAgIHJldHVybiBOVUxMOwotQEAgLTE1NzMsNyArMTU3NSw3IEBAIGxsdm06OlZh bHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpCaW5hcnlPcGVyYXRvcihsbHZtOjpJbnN0cnVjdGlv bjo6QmluYXJ5T3BzIGluCi0gICAgIGxsdm06OlR5cGUgKnR5cGUgPSB2MC0+Z2V0VHlwZSgpOwot ICAgICBpbnQgYXJyYXlTaXplID0gbEFycmF5VmVjdG9yV2lkdGgodHlwZSk7Ci0gICAgIGlmIChh cnJheVNpemUgPT0gMCkgewotLSAgICAgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmJvcCA9IGxsdm06 OkJpbmFyeU9wZXJhdG9yOjpDcmVhdGUoaW5zdCwgdjAsIHYxLCBuYW1lID8gbmFtZSA6ICIiLCBi YmxvY2spOwotKyAgICAgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmJvcCA9IGxsdm06OkJpbmFyeU9w ZXJhdG9yOjpDcmVhdGUoaW5zdCwgdjAsIHYxLCBuYW1lLCBiYmxvY2spOwotICAgICAgICAgQWRk RGVidWdQb3MoYm9wKTsKLSAgICAgICAgIHJldHVybiBib3A7Ci0gICAgIH0gZWxzZSB7Ci1AQCAt MTU5MSw3ICsxNTkzLDcgQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkJpbmFy eU9wZXJhdG9yKGxsdm06Okluc3RydWN0aW9uOjpCaW5hcnlPcHMgaW4KLSAgICAgfQotIH0KLSAK LS1sbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6Tm90T3BlcmF0b3IobGx2bTo6VmFs dWUgKnYsIGNvbnN0IGNoYXIgKm5hbWUpIHsKLStsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29u dGV4dDo6Tm90T3BlcmF0b3IobGx2bTo6VmFsdWUgKnYsIGNvbnN0IGxsdm06OlR3aW5lICZuYW1l KSB7Ci0gICAgIGlmICh2ID09IE5VTEwpIHsKLSAgICAgICAgIEFzc2VydFBvcyhjdXJyZW50UG9z LCBtLT5lcnJvckNvdW50ID4gMCk7Ci0gICAgICAgICByZXR1cm4gTlVMTDsKLUBAIC0xNjAzLDE0 ICsxNjA1LDE0IEBAIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpOb3RPcGVyYXRv cihsbHZtOjpWYWx1ZSAqdiwgY29uc3QgY2hhciAqbmFtZSkKLSAgICAgbGx2bTo6VHlwZSAqdHlw ZSA9IHYtPmdldFR5cGUoKTsKLSAgICAgaW50IGFycmF5U2l6ZSA9IGxBcnJheVZlY3RvcldpZHRo KHR5cGUpOwotICAgICBpZiAoYXJyYXlTaXplID09IDApIHsKLS0gICAgICAgIGxsdm06Okluc3Ry dWN0aW9uICpiaW5zdCA9IGxsdm06OkJpbmFyeU9wZXJhdG9yOjpDcmVhdGVOb3QodiwgbmFtZSA/ IG5hbWUgOiAibm90IiwgYmJsb2NrKTsKLSsgICAgICAgIGxsdm06Okluc3RydWN0aW9uICpiaW5z dCA9IGxsdm06OkJpbmFyeU9wZXJhdG9yOjpDcmVhdGVOb3QodiwgbmFtZS5pc1RyaXZpYWxseUVt cHR5KCkgPyAibm90IiA6IG5hbWUsIGJibG9jayk7Ci0gICAgICAgICBBZGREZWJ1Z1BvcyhiaW5z dCk7Ci0gICAgICAgICByZXR1cm4gYmluc3Q7Ci0gICAgIH0gZWxzZSB7Ci0gICAgICAgICBsbHZt OjpWYWx1ZSAqcmV0ID0gbGx2bTo6VW5kZWZWYWx1ZTo6Z2V0KHR5cGUpOwotICAgICAgICAgZm9y IChpbnQgaSA9IDA7IGkgPCBhcnJheVNpemU7ICsraSkgewotICAgICAgICAgICAgIGxsdm06OlZh bHVlICphID0gRXh0cmFjdEluc3QodiwgaSk7Ci0tICAgICAgICAgICAgbGx2bTo6VmFsdWUgKm9w ID0gbGx2bTo6QmluYXJ5T3BlcmF0b3I6OkNyZWF0ZU5vdChhLCBuYW1lID8gbmFtZSA6ICJub3Qi LCBiYmxvY2spOwotKyAgICAgICAgICAgIGxsdm06OlZhbHVlICpvcCA9IGxsdm06OkJpbmFyeU9w ZXJhdG9yOjpDcmVhdGVOb3QoYSwgbmFtZS5pc1RyaXZpYWxseUVtcHR5KCkgPyAibm90IiA6IG5h bWUsIGJibG9jayk7Ci0gICAgICAgICAgICAgQWRkRGVidWdQb3Mob3ApOwotICAgICAgICAgICAg IHJldCA9IEluc2VydEluc3QocmV0LCBvcCwgaSk7Ci0gICAgICAgICB9Ci1AQCAtMTYzOCw3ICsx NjQwLDcgQEAgc3RhdGljIGxsdm06OlR5cGUgKmxHZXRNYXRjaGluZ0Jvb2xWZWN0b3JUeXBlKGxs dm06OlR5cGUgKnR5cGUpIHsKLSB9Ci0gCi0gbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRl eHQ6OkNtcEluc3QobGx2bTo6SW5zdHJ1Y3Rpb246Ok90aGVyT3BzIGluc3QsIGxsdm06OkNtcElu c3Q6OlByZWRpY2F0ZSBwcmVkLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGxsdm06OlZhbHVlICp2MCwgbGx2bTo6VmFsdWUgKnYxLCBjb25zdCBjaGFyICpuYW1l KSB7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6VmFs dWUgKnYwLCBsbHZtOjpWYWx1ZSAqdjEsIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lKSB7Ci0gICAg IGlmICh2MCA9PSBOVUxMIHx8IHYxID09IE5VTEwpIHsKLSAgICAgICAgIEFzc2VydFBvcyhjdXJy ZW50UG9zLCBtLT5lcnJvckNvdW50ID4gMCk7Ci0gICAgICAgICByZXR1cm4gTlVMTDsKLUBAIC0x NjQ4LDcgKzE2NTAsOCBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6Q21wSW5z dChsbHZtOjpJbnN0cnVjdGlvbjo6T3RoZXJPcHMgaW5zdCwgbGx2bQotICAgICBsbHZtOjpUeXBl ICp0eXBlID0gdjAtPmdldFR5cGUoKTsKLSAgICAgaW50IGFycmF5U2l6ZSA9IGxBcnJheVZlY3Rv cldpZHRoKHR5cGUpOwotICAgICBpZiAoYXJyYXlTaXplID09IDApIHsKLS0gICAgICAgIGxsdm06 Okluc3RydWN0aW9uICpjaSA9IGxsdm06OkNtcEluc3Q6OkNyZWF0ZShpbnN0LCBwcmVkLCB2MCwg djEsIG5hbWUgPyBuYW1lIDogImNtcCIsIGJibG9jayk7Ci0rICAgICAgICBsbHZtOjpJbnN0cnVj dGlvbiAqY2kgPQotKyAgICAgICAgICAgIGxsdm06OkNtcEluc3Q6OkNyZWF0ZShpbnN0LCBwcmVk LCB2MCwgdjEsIG5hbWUuaXNUcml2aWFsbHlFbXB0eSgpID8gImNtcCIgOiBuYW1lLCBiYmxvY2sp OwotICAgICAgICAgQWRkRGVidWdQb3MoY2kpOwotICAgICAgICAgcmV0dXJuIGNpOwotICAgICB9 IGVsc2UgewotQEAgLTE2NTcsMTQgKzE2NjAsMTQgQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1p dENvbnRleHQ6OkNtcEluc3QobGx2bTo6SW5zdHJ1Y3Rpb246Ok90aGVyT3BzIGluc3QsIGxsdm0K LSAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgYXJyYXlTaXplOyArK2kpIHsKLSAgICAgICAg ICAgICBsbHZtOjpWYWx1ZSAqYSA9IEV4dHJhY3RJbnN0KHYwLCBpKTsKLSAgICAgICAgICAgICBs bHZtOjpWYWx1ZSAqYiA9IEV4dHJhY3RJbnN0KHYxLCBpKTsKLS0gICAgICAgICAgICBsbHZtOjpW YWx1ZSAqb3AgPSBDbXBJbnN0KGluc3QsIHByZWQsIGEsIGIsIG5hbWUpOwotKyAgICAgICAgICAg IGxsdm06OlZhbHVlICpvcCA9IENtcEluc3QoaW5zdCwgcHJlZCwgYSwgYiwgbmFtZS5pc1RyaXZp YWxseUVtcHR5KCkgPyAiY21wIiA6IG5hbWUpOwotICAgICAgICAgICAgIHJldCA9IEluc2VydElu c3QocmV0LCBvcCwgaSk7Ci0gICAgICAgICB9Ci0gICAgICAgICByZXR1cm4gcmV0OwotICAgICB9 Ci0gfQotIAotLWxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpTbWVhclVuaWZvcm0o bGx2bTo6VmFsdWUgKnZhbHVlLCBjb25zdCBjaGFyICpuYW1lKSB7Ci0rbGx2bTo6VmFsdWUgKkZ1 bmN0aW9uRW1pdENvbnRleHQ6OlNtZWFyVW5pZm9ybShsbHZtOjpWYWx1ZSAqdmFsdWUsIGNvbnN0 IGxsdm06OlR3aW5lICZuYW1lKSB7Ci0gICAgIGlmICh2YWx1ZSA9PSBOVUxMKSB7Ci0gICAgICAg ICBBc3NlcnRQb3MoY3VycmVudFBvcywgbS0+ZXJyb3JDb3VudCA+IDApOwotICAgICAgICAgcmV0 dXJuIE5VTEw7Ci1AQCAtMTcwNCwyMSArMTcwNywxOSBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25F bWl0Q29udGV4dDo6U21lYXJVbmlmb3JtKGxsdm06OlZhbHVlICp2YWx1ZSwgY29uc3QgY2hhciAq bgotICAgICByZXR1cm4gcmV0OwotIH0KLSAKLS1sbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29u dGV4dDo6Qml0Q2FzdEluc3QobGx2bTo6VmFsdWUgKnZhbHVlLCBsbHZtOjpUeXBlICp0eXBlLCBj b25zdCBjaGFyICpuYW1lKSB7Ci0rbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkJp dENhc3RJbnN0KGxsdm06OlZhbHVlICp2YWx1ZSwgbGx2bTo6VHlwZSAqdHlwZSwgY29uc3QgbGx2 bTo6VHdpbmUgJm5hbWUpIHsKLSAgICAgaWYgKHZhbHVlID09IE5VTEwpIHsKLSAgICAgICAgIEFz c2VydFBvcyhjdXJyZW50UG9zLCBtLT5lcnJvckNvdW50ID4gMCk7Ci0gICAgICAgICByZXR1cm4g TlVMTDsKLSAgICAgfQotIAotLSAgICBpZiAobmFtZSA9PSBOVUxMKQotLSAgICAgICAgbmFtZSA9 IExMVk1HZXROYW1lKHZhbHVlLCAiX2JpdGNhc3QiKTsKLS0KLS0gICAgbGx2bTo6SW5zdHJ1Y3Rp b24gKmluc3QgPSBuZXcgbGx2bTo6Qml0Q2FzdEluc3QodmFsdWUsIHR5cGUsIG5hbWUsIGJibG9j ayk7Ci0rICAgIGxsdm06Okluc3RydWN0aW9uICppbnN0ID0gbmV3IGxsdm06OkJpdENhc3RJbnN0 KAotKyAgICAgICAgdmFsdWUsIHR5cGUsIG5hbWUuaXNUcml2aWFsbHlFbXB0eSgpID8gbGx2bTo6 VHdpbmUodmFsdWUtPmdldE5hbWUoKSkgKyAiX2JpdGNhc3QiIDogbmFtZSwgYmJsb2NrKTsKLSAg ICAgQWRkRGVidWdQb3MoaW5zdCk7Ci0gICAgIHJldHVybiBpbnN0OwotIH0KLSAKLS1sbHZtOjpW YWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6UHRyVG9JbnRJbnN0KGxsdm06OlZhbHVlICp2YWx1 ZSwgY29uc3QgY2hhciAqbmFtZSkgewotK2xsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0 OjpQdHJUb0ludEluc3QobGx2bTo6VmFsdWUgKnZhbHVlLCBjb25zdCBsbHZtOjpUd2luZSAmbmFt ZSkgewotICAgICBpZiAodmFsdWUgPT0gTlVMTCkgewotICAgICAgICAgQXNzZXJ0UG9zKGN1cnJl bnRQb3MsIG0tPmVycm9yQ291bnQgPiAwKTsKLSAgICAgICAgIHJldHVybiBOVUxMOwotQEAgLTE3 MjgsMjMgKzE3MjksMTkgQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OlB0clRv SW50SW5zdChsbHZtOjpWYWx1ZSAqdmFsdWUsIGNvbnN0IGNoYXIgKm4KLSAgICAgICAgIC8vIG5v LW9wIGZvciB2YXJ5aW5nIHBvaW50ZXJzOyB0aGV5J3JlIGFscmVhZHkgdmVjdG9ycyBvZiBpbnRz Ci0gICAgICAgICByZXR1cm4gdmFsdWU7Ci0gCi0tICAgIGlmIChuYW1lID09IE5VTEwpCi0tICAg ICAgICBuYW1lID0gTExWTUdldE5hbWUodmFsdWUsICJfcHRyMmludCIpOwotICAgICBsbHZtOjpU eXBlICp0eXBlID0gTExWTVR5cGVzOjpQb2ludGVySW50VHlwZTsKLS0gICAgbGx2bTo6SW5zdHJ1 Y3Rpb24gKmluc3QgPSBuZXcgbGx2bTo6UHRyVG9JbnRJbnN0KHZhbHVlLCB0eXBlLCBuYW1lLCBi YmxvY2spOwotKyAgICBsbHZtOjpJbnN0cnVjdGlvbiAqaW5zdCA9IG5ldyBsbHZtOjpQdHJUb0lu dEluc3QoCi0rICAgICAgICB2YWx1ZSwgdHlwZSwgbmFtZS5pc1RyaXZpYWxseUVtcHR5KCkgPyBs bHZtOjpUd2luZSh2YWx1ZS0+Z2V0TmFtZSgpKSArICJfcHRyMmludCIgOiBuYW1lLCBiYmxvY2sp OwotICAgICBBZGREZWJ1Z1BvcyhpbnN0KTsKLSAgICAgcmV0dXJuIGluc3Q7Ci0gfQotIAotLWxs dm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpQdHJUb0ludEluc3QobGx2bTo6VmFsdWUg KnZhbHVlLCBsbHZtOjpUeXBlICp0b1R5cGUsIGNvbnN0IGNoYXIgKm5hbWUpIHsKLStsbHZtOjpW YWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6UHRyVG9JbnRJbnN0KGxsdm06OlZhbHVlICp2YWx1 ZSwgbGx2bTo6VHlwZSAqdG9UeXBlLCBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSkgewotICAgICBp ZiAodmFsdWUgPT0gTlVMTCkgewotICAgICAgICAgQXNzZXJ0UG9zKGN1cnJlbnRQb3MsIG0tPmVy cm9yQ291bnQgPiAwKTsKLSAgICAgICAgIHJldHVybiBOVUxMOwotICAgICB9Ci0gCi0tICAgIGlm IChuYW1lID09IE5VTEwpCi0tICAgICAgICBuYW1lID0gTExWTUdldE5hbWUodmFsdWUsICJfcHRy MmludCIpOwotLQotICAgICBsbHZtOjpUeXBlICpmcm9tVHlwZSA9IHZhbHVlLT5nZXRUeXBlKCk7 Ci0gICAgIGlmIChsbHZtOjppc2E8bGx2bTo6VmVjdG9yVHlwZT4oZnJvbVR5cGUpKSB7Ci0gICAg ICAgICAvLyB2YXJ5aW5nIHBvaW50ZXIKLUBAIC0xNzUyLDI3ICsxNzQ5LDI2IEBAIGxsdm06OlZh bHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpQdHJUb0ludEluc3QobGx2bTo6VmFsdWUgKnZhbHVl LCBsbHZtOjpUeXBlICp0Ci0gICAgICAgICAgICAgLy8gYWxyZWFkeSB0aGUgcmlnaHQgdHlwZS0t ZG9uZQotICAgICAgICAgICAgIHJldHVybiB2YWx1ZTsKLSAgICAgICAgIGVsc2UgaWYgKGZyb21U eXBlLT5nZXRTY2FsYXJTaXplSW5CaXRzKCkgPiB0b1R5cGUtPmdldFNjYWxhclNpemVJbkJpdHMo KSkKLS0gICAgICAgICAgICByZXR1cm4gVHJ1bmNJbnN0KHZhbHVlLCB0b1R5cGUsIG5hbWUpOwot KyAgICAgICAgICAgIHJldHVybiBUcnVuY0luc3QodmFsdWUsIHRvVHlwZSwKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIG5hbWUuaXNUcml2aWFsbHlFbXB0eSgpID8gbGx2bTo6VHdpbmUo dmFsdWUtPmdldE5hbWUoKSkgKyAiX3B0cjJpbnQiIDogbmFtZSk7Ci0gICAgICAgICBlbHNlIHsK LSAgICAgICAgICAgICBBc3NlcnRQb3MoY3VycmVudFBvcywgZnJvbVR5cGUtPmdldFNjYWxhclNp emVJbkJpdHMoKSA8IHRvVHlwZS0+Z2V0U2NhbGFyU2l6ZUluQml0cygpKTsKLS0gICAgICAgICAg ICByZXR1cm4gWkV4dEluc3QodmFsdWUsIHRvVHlwZSwgbmFtZSk7Ci0rICAgICAgICAgICAgcmV0 dXJuIFpFeHRJbnN0KHZhbHVlLCB0b1R5cGUsIG5hbWUuaXNUcml2aWFsbHlFbXB0eSgpID8gbGx2 bTo6VHdpbmUodmFsdWUtPmdldE5hbWUoKSkgKyAiX3B0cjJpbnQiIDogbmFtZSk7Ci0gICAgICAg ICB9Ci0gICAgIH0KLSAKLS0gICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmluc3QgPSBuZXcgbGx2bTo6 UHRyVG9JbnRJbnN0KHZhbHVlLCB0b1R5cGUsIG5hbWUsIGJibG9jayk7Ci0rICAgIGxsdm06Oklu c3RydWN0aW9uICppbnN0ID0gbmV3IGxsdm06OlB0clRvSW50SW5zdCgKLSsgICAgICAgIHZhbHVl LCB0b1R5cGUsIG5hbWUuaXNUcml2aWFsbHlFbXB0eSgpID8gbGx2bTo6VHdpbmUodmFsdWUtPmdl dE5hbWUoKSkgKyAiX3B0cjJpbnQiIDogbmFtZSwgYmJsb2NrKTsKLSAgICAgQWRkRGVidWdQb3Mo aW5zdCk7Ci0gICAgIHJldHVybiBpbnN0OwotIH0KLSAKLS1sbHZtOjpWYWx1ZSAqRnVuY3Rpb25F bWl0Q29udGV4dDo6SW50VG9QdHJJbnN0KGxsdm06OlZhbHVlICp2YWx1ZSwgbGx2bTo6VHlwZSAq dG9UeXBlLCBjb25zdCBjaGFyICpuYW1lKSB7Ci0rbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENv bnRleHQ6OkludFRvUHRySW5zdChsbHZtOjpWYWx1ZSAqdmFsdWUsIGxsdm06OlR5cGUgKnRvVHlw ZSwgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUpIHsKLSAgICAgaWYgKHZhbHVlID09IE5VTEwpIHsK LSAgICAgICAgIEFzc2VydFBvcyhjdXJyZW50UG9zLCBtLT5lcnJvckNvdW50ID4gMCk7Ci0gICAg ICAgICByZXR1cm4gTlVMTDsKLSAgICAgfQotIAotLSAgICBpZiAobmFtZSA9PSBOVUxMKQotLSAg ICAgICAgbmFtZSA9IExMVk1HZXROYW1lKHZhbHVlLCAiX2ludDJwdHIiKTsKLS0KLSAgICAgbGx2 bTo6VHlwZSAqZnJvbVR5cGUgPSB2YWx1ZS0+Z2V0VHlwZSgpOwotICAgICBpZiAobGx2bTo6aXNh PGxsdm06OlZlY3RvclR5cGU+KGZyb21UeXBlKSkgewotICAgICAgICAgLy8gdmFyeWluZyBwb2lu dGVyCi1AQCAtMTc4MCw5NSArMTc3Niw4NyBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29u dGV4dDo6SW50VG9QdHJJbnN0KGxsdm06OlZhbHVlICp2YWx1ZSwgbGx2bTo6VHlwZSAqdAotICAg ICAgICAgICAgIC8vIGRvbmUKLSAgICAgICAgICAgICByZXR1cm4gdmFsdWU7Ci0gICAgICAgICBl bHNlIGlmIChmcm9tVHlwZS0+Z2V0U2NhbGFyU2l6ZUluQml0cygpID4gdG9UeXBlLT5nZXRTY2Fs YXJTaXplSW5CaXRzKCkpCi0tICAgICAgICAgICAgcmV0dXJuIFRydW5jSW5zdCh2YWx1ZSwgdG9U eXBlLCBuYW1lKTsKLSsgICAgICAgICAgICByZXR1cm4gVHJ1bmNJbnN0KHZhbHVlLCB0b1R5cGUs Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lLmlzVHJpdmlhbGx5RW1wdHkoKSA/ IGxsdm06OlR3aW5lKHZhbHVlLT5nZXROYW1lKCkpICsgIl9pbnQycHRyIiA6IG5hbWUpOwotICAg ICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgQXNzZXJ0UG9zKGN1cnJlbnRQb3MsIGZyb21UeXBl LT5nZXRTY2FsYXJTaXplSW5CaXRzKCkgPCB0b1R5cGUtPmdldFNjYWxhclNpemVJbkJpdHMoKSk7 Ci0tICAgICAgICAgICAgcmV0dXJuIFpFeHRJbnN0KHZhbHVlLCB0b1R5cGUsIG5hbWUpOwotKyAg ICAgICAgICAgIHJldHVybiBaRXh0SW5zdCh2YWx1ZSwgdG9UeXBlLCBuYW1lLmlzVHJpdmlhbGx5 RW1wdHkoKSA/IGxsdm06OlR3aW5lKHZhbHVlLT5nZXROYW1lKCkpICsgIl9pbnQycHRyIiA6IG5h bWUpOwotICAgICAgICAgfQotICAgICB9Ci0gCi0tICAgIGxsdm06Okluc3RydWN0aW9uICppbnN0 ID0gbmV3IGxsdm06OkludFRvUHRySW5zdCh2YWx1ZSwgdG9UeXBlLCBuYW1lLCBiYmxvY2spOwot KyAgICBsbHZtOjpJbnN0cnVjdGlvbiAqaW5zdCA9IG5ldyBsbHZtOjpJbnRUb1B0ckluc3QoCi0r ICAgICAgICB2YWx1ZSwgdG9UeXBlLCBuYW1lLmlzVHJpdmlhbGx5RW1wdHkoKSA/IGxsdm06OlR3 aW5lKHZhbHVlLT5nZXROYW1lKCkpICsgIl9pbnQycHRyIiA6IG5hbWUsIGJibG9jayk7Ci0gICAg IEFkZERlYnVnUG9zKGluc3QpOwotICAgICByZXR1cm4gaW5zdDsKLSB9Ci0gCi0tbGx2bTo6SW5z dHJ1Y3Rpb24gKkZ1bmN0aW9uRW1pdENvbnRleHQ6OlRydW5jSW5zdChsbHZtOjpWYWx1ZSAqdmFs dWUsIGxsdm06OlR5cGUgKnR5cGUsIGNvbnN0IGNoYXIgKm5hbWUpIHsKLStsbHZtOjpJbnN0cnVj dGlvbiAqRnVuY3Rpb25FbWl0Q29udGV4dDo6VHJ1bmNJbnN0KGxsdm06OlZhbHVlICp2YWx1ZSwg bGx2bTo6VHlwZSAqdHlwZSwgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUpIHsKLSAgICAgaWYgKHZh bHVlID09IE5VTEwpIHsKLSAgICAgICAgIEFzc2VydFBvcyhjdXJyZW50UG9zLCBtLT5lcnJvckNv dW50ID4gMCk7Ci0gICAgICAgICByZXR1cm4gTlVMTDsKLSAgICAgfQotIAotLSAgICBpZiAobmFt ZSA9PSBOVUxMKQotLSAgICAgICAgbmFtZSA9IExMVk1HZXROYW1lKHZhbHVlLCAiX3RydW5jIik7 Ci0tCi0gICAgIC8vIFRPRE86IHdlIHNob3VsZCBwcm9iYWJseSBoYW5kbGUgdGhlIGFycmF5IGNh c2UgYXMgaW4KLSAgICAgLy8gZS5nLiBCaXRDYXN0SW5zdCgpLCBidXQgd2UgZG9uJ3QgY3VycmVu dGx5IG5lZWQgdGhhdCBmdW5jdGlvbmFsaXR5Ci0tICAgIGxsdm06Okluc3RydWN0aW9uICppbnN0 ID0gbmV3IGxsdm06OlRydW5jSW5zdCh2YWx1ZSwgdHlwZSwgbmFtZSwgYmJsb2NrKTsKLSsgICAg bGx2bTo6SW5zdHJ1Y3Rpb24gKmluc3QgPSBuZXcgbGx2bTo6VHJ1bmNJbnN0KAotKyAgICAgICAg dmFsdWUsIHR5cGUsIG5hbWUuaXNUcml2aWFsbHlFbXB0eSgpID8gbGx2bTo6VHdpbmUodmFsdWUt PmdldE5hbWUoKSkgKyAiX3RydW5jIiA6IG5hbWUsIGJibG9jayk7Ci0gICAgIEFkZERlYnVnUG9z KGluc3QpOwotICAgICByZXR1cm4gaW5zdDsKLSB9Ci0gCi0gbGx2bTo6SW5zdHJ1Y3Rpb24gKkZ1 bmN0aW9uRW1pdENvbnRleHQ6OkNhc3RJbnN0KGxsdm06Okluc3RydWN0aW9uOjpDYXN0T3BzIG9w LCBsbHZtOjpWYWx1ZSAqdmFsdWUsIGxsdm06OlR5cGUgKnR5cGUsCi0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKm5hbWUpIHsKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGx2 bTo6VHdpbmUgJm5hbWUpIHsKLSAgICAgaWYgKHZhbHVlID09IE5VTEwpIHsKLSAgICAgICAgIEFz c2VydFBvcyhjdXJyZW50UG9zLCBtLT5lcnJvckNvdW50ID4gMCk7Ci0gICAgICAgICByZXR1cm4g TlVMTDsKLSAgICAgfQotIAotLSAgICBpZiAobmFtZSA9PSBOVUxMKQotLSAgICAgICAgbmFtZSA9 IExMVk1HZXROYW1lKHZhbHVlLCAiX2Nhc3QiKTsKLS0KLSAgICAgLy8gVE9ETzogd2Ugc2hvdWxk IHByb2JhYmx5IGhhbmRsZSB0aGUgYXJyYXkgY2FzZSBhcyBpbgotICAgICAvLyBlLmcuIEJpdENh c3RJbnN0KCksIGJ1dCB3ZSBkb24ndCBjdXJyZW50bHkgbmVlZCB0aGF0IGZ1bmN0aW9uYWxpdHkK LS0gICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmluc3QgPSBsbHZtOjpDYXN0SW5zdDo6Q3JlYXRlKG9w LCB2YWx1ZSwgdHlwZSwgbmFtZSwgYmJsb2NrKTsKLSsgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmlu c3QgPSBsbHZtOjpDYXN0SW5zdDo6Q3JlYXRlKAotKyAgICAgICAgb3AsIHZhbHVlLCB0eXBlLCBu YW1lLmlzVHJpdmlhbGx5RW1wdHkoKSA/IGxsdm06OlR3aW5lKHZhbHVlLT5nZXROYW1lKCkpICsg Il9jYXN0IiA6IG5hbWUsIGJibG9jayk7Ci0gICAgIEFkZERlYnVnUG9zKGluc3QpOwotICAgICBy ZXR1cm4gaW5zdDsKLSB9Ci0gCi0tbGx2bTo6SW5zdHJ1Y3Rpb24gKkZ1bmN0aW9uRW1pdENvbnRl eHQ6OkZQQ2FzdEluc3QobGx2bTo6VmFsdWUgKnZhbHVlLCBsbHZtOjpUeXBlICp0eXBlLCBjb25z dCBjaGFyICpuYW1lKSB7Ci0rbGx2bTo6SW5zdHJ1Y3Rpb24gKkZ1bmN0aW9uRW1pdENvbnRleHQ6 OkZQQ2FzdEluc3QobGx2bTo6VmFsdWUgKnZhbHVlLCBsbHZtOjpUeXBlICp0eXBlLCBjb25zdCBs bHZtOjpUd2luZSAmbmFtZSkgewotICAgICBpZiAodmFsdWUgPT0gTlVMTCkgewotICAgICAgICAg QXNzZXJ0UG9zKGN1cnJlbnRQb3MsIG0tPmVycm9yQ291bnQgPiAwKTsKLSAgICAgICAgIHJldHVy biBOVUxMOwotICAgICB9Ci0gCi0tICAgIGlmIChuYW1lID09IE5VTEwpCi0tICAgICAgICBuYW1l ID0gTExWTUdldE5hbWUodmFsdWUsICJfY2FzdCIpOwotLQotICAgICAvLyBUT0RPOiB3ZSBzaG91 bGQgcHJvYmFibHkgaGFuZGxlIHRoZSBhcnJheSBjYXNlIGFzIGluCi0gICAgIC8vIGUuZy4gQml0 Q2FzdEluc3QoKSwgYnV0IHdlIGRvbid0IGN1cnJlbnRseSBuZWVkIHRoYXQgZnVuY3Rpb25hbGl0 eQotLSAgICBsbHZtOjpJbnN0cnVjdGlvbiAqaW5zdCA9IGxsdm06OkNhc3RJbnN0OjpDcmVhdGVG UENhc3QodmFsdWUsIHR5cGUsIG5hbWUsIGJibG9jayk7Ci0rICAgIGxsdm06Okluc3RydWN0aW9u ICppbnN0ID0gbGx2bTo6Q2FzdEluc3Q6OkNyZWF0ZUZQQ2FzdCgKLSsgICAgICAgIHZhbHVlLCB0 eXBlLCBuYW1lLmlzVHJpdmlhbGx5RW1wdHkoKSA/IGxsdm06OlR3aW5lKHZhbHVlLT5nZXROYW1l KCkpICsgIl9jYXN0IiA6IG5hbWUsIGJibG9jayk7Ci0gICAgIEFkZERlYnVnUG9zKGluc3QpOwot ICAgICByZXR1cm4gaW5zdDsKLSB9Ci0gCi0tbGx2bTo6SW5zdHJ1Y3Rpb24gKkZ1bmN0aW9uRW1p dENvbnRleHQ6OlNFeHRJbnN0KGxsdm06OlZhbHVlICp2YWx1ZSwgbGx2bTo6VHlwZSAqdHlwZSwg Y29uc3QgY2hhciAqbmFtZSkgewotK2xsdm06Okluc3RydWN0aW9uICpGdW5jdGlvbkVtaXRDb250 ZXh0OjpTRXh0SW5zdChsbHZtOjpWYWx1ZSAqdmFsdWUsIGxsdm06OlR5cGUgKnR5cGUsIGNvbnN0 IGxsdm06OlR3aW5lICZuYW1lKSB7Ci0gICAgIGlmICh2YWx1ZSA9PSBOVUxMKSB7Ci0gICAgICAg ICBBc3NlcnRQb3MoY3VycmVudFBvcywgbS0+ZXJyb3JDb3VudCA+IDApOwotICAgICAgICAgcmV0 dXJuIE5VTEw7Ci0gICAgIH0KLSAKLS0gICAgaWYgKG5hbWUgPT0gTlVMTCkKLS0gICAgICAgIG5h bWUgPSBMTFZNR2V0TmFtZSh2YWx1ZSwgIl9zZXh0Iik7Ci0tCi0gICAgIC8vIFRPRE86IHdlIHNo b3VsZCBwcm9iYWJseSBoYW5kbGUgdGhlIGFycmF5IGNhc2UgYXMgaW4KLSAgICAgLy8gZS5nLiBC aXRDYXN0SW5zdCgpLCBidXQgd2UgZG9uJ3QgY3VycmVudGx5IG5lZWQgdGhhdCBmdW5jdGlvbmFs aXR5Ci0tICAgIGxsdm06Okluc3RydWN0aW9uICppbnN0ID0gbmV3IGxsdm06OlNFeHRJbnN0KHZh bHVlLCB0eXBlLCBuYW1lLCBiYmxvY2spOwotKyAgICBsbHZtOjpJbnN0cnVjdGlvbiAqaW5zdCA9 IG5ldyBsbHZtOjpTRXh0SW5zdCgKLSsgICAgICAgIHZhbHVlLCB0eXBlLCBuYW1lLmlzVHJpdmlh bGx5RW1wdHkoKSA/IGxsdm06OlR3aW5lKHZhbHVlLT5nZXROYW1lKCkpICsgIl9zZXh0IiA6IG5h bWUsIGJibG9jayk7Ci0gICAgIEFkZERlYnVnUG9zKGluc3QpOwotICAgICByZXR1cm4gaW5zdDsK LSB9Ci0gCi0tbGx2bTo6SW5zdHJ1Y3Rpb24gKkZ1bmN0aW9uRW1pdENvbnRleHQ6OlpFeHRJbnN0 KGxsdm06OlZhbHVlICp2YWx1ZSwgbGx2bTo6VHlwZSAqdHlwZSwgY29uc3QgY2hhciAqbmFtZSkg ewotK2xsdm06Okluc3RydWN0aW9uICpGdW5jdGlvbkVtaXRDb250ZXh0OjpaRXh0SW5zdChsbHZt OjpWYWx1ZSAqdmFsdWUsIGxsdm06OlR5cGUgKnR5cGUsIGNvbnN0IGxsdm06OlR3aW5lICZuYW1l KSB7Ci0gICAgIGlmICh2YWx1ZSA9PSBOVUxMKSB7Ci0gICAgICAgICBBc3NlcnRQb3MoY3VycmVu dFBvcywgbS0+ZXJyb3JDb3VudCA+IDApOwotICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgIH0K LSAKLS0gICAgaWYgKG5hbWUgPT0gTlVMTCkKLS0gICAgICAgIG5hbWUgPSBMTFZNR2V0TmFtZSh2 YWx1ZSwgIl96ZXh0Iik7Ci0tCi0gICAgIC8vIFRPRE86IHdlIHNob3VsZCBwcm9iYWJseSBoYW5k bGUgdGhlIGFycmF5IGNhc2UgYXMgaW4KLSAgICAgLy8gZS5nLiBCaXRDYXN0SW5zdCgpLCBidXQg d2UgZG9uJ3QgY3VycmVudGx5IG5lZWQgdGhhdCBmdW5jdGlvbmFsaXR5Ci0tICAgIGxsdm06Oklu c3RydWN0aW9uICppbnN0ID0gbmV3IGxsdm06OlpFeHRJbnN0KHZhbHVlLCB0eXBlLCBuYW1lLCBi YmxvY2spOwotKyAgICBsbHZtOjpJbnN0cnVjdGlvbiAqaW5zdCA9IG5ldyBsbHZtOjpaRXh0SW5z dCgKLSsgICAgICAgIHZhbHVlLCB0eXBlLCBuYW1lLmlzVHJpdmlhbGx5RW1wdHkoKSA/IGxsdm06 OlR3aW5lKHZhbHVlLT5nZXROYW1lKCkpICsgIl96ZXh0IiA6IG5hbWUsIGJibG9jayk7Ci0gICAg IEFkZERlYnVnUG9zKGluc3QpOwotICAgICByZXR1cm4gaW5zdDsKLSB9Ci1AQCAtMTkxMywxNCAr MTkwMSwxNSBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6YXBwbHlWYXJ5aW5n R0VQKGxsdm06OlZhbHVlICpiYXNlUHRyLCBsbHZtOjpWYQotICAgICAgICAgc2NhbGUgPSBTbWVh clVuaWZvcm0oc2NhbGUpOwotICAgICAgICAgQXNzZXJ0KGluZGV4ICE9IE5VTEwpOwotICAgICAg ICAgLy8gb2Zmc2V0ID0gaW5kZXggKiBzY2FsZQotLSAgICAgICAgb2Zmc2V0ID0gQmluYXJ5T3Bl cmF0b3IobGx2bTo6SW5zdHJ1Y3Rpb246Ok11bCwgc2NhbGUsIGluZGV4LCBMTFZNR2V0TmFtZSgi bXVsIiwgc2NhbGUsIGluZGV4KSk7Ci0rICAgICAgICBvZmZzZXQgPSBCaW5hcnlPcGVyYXRvcihs bHZtOjpJbnN0cnVjdGlvbjo6TXVsLCBzY2FsZSwgaW5kZXgsCi0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAoKGxsdm06OlR3aW5lKCJtdWxfIikgKyBzY2FsZS0+Z2V0TmFtZSgpKSAr ICJfIikgKyBpbmRleC0+Z2V0TmFtZSgpKTsKLSAgICAgfQotIAotICAgICAvLyBGb3IgNjQtYml0 IHRhcmdldHMsIGlmIHdlJ3ZlIGJlZW4gZG9pbmcgb3VyIG9mZnNldCBjYWxjdWxhdGlvbnMgaW4K LSAgICAgLy8gMzIgYml0cywgd2Ugc3RpbGwgaGF2ZSB0byBjb252ZXJ0IHRvIGEgNjQtYml0IHZh bHVlIGJlZm9yZSB3ZQotICAgICAvLyBhY3R1YWxseSBhZGQgdGhlIG9mZnNldCB0byB0aGUgcG9p bnRlci4KLSAgICAgaWYgKGctPnRhcmdldC0+aXMzMkJpdCgpID09IGZhbHNlICYmIGctPm9wdC5m b3JjZTMyQml0QWRkcmVzc2luZyA9PSB0cnVlKQotLSAgICAgICAgb2Zmc2V0ID0gU0V4dEluc3Qo b2Zmc2V0LCBMTFZNVHlwZXM6OkludDY0VmVjdG9yVHlwZSwgTExWTUdldE5hbWUob2Zmc2V0LCAi X3RvXzY0IikpOwotKyAgICAgICAgb2Zmc2V0ID0gU0V4dEluc3Qob2Zmc2V0LCBMTFZNVHlwZXM6 OkludDY0VmVjdG9yVHlwZSwgbGx2bTo6VHdpbmUob2Zmc2V0LT5nZXROYW1lKCkpICsgIl90b182 NCIpOwotIAotICAgICAvLyBTbWVhciBvdXQgdGhlIHBvaW50ZXIgdG8gYmUgdmFyeWluZzsgZWl0 aGVyIHRoZSBiYXNlIHBvaW50ZXIgb3IgdGhlCi0gICAgIC8vIGluZGV4IG11c3QgYmUgdmFyeWlu ZyBmb3IgdGhpcyBtZXRob2QgdG8gYmUgY2FsbGVkLgotQEAgLTE5MjksNyArMTkxOCw3IEBAIGxs dm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjphcHBseVZhcnlpbmdHRVAobGx2bTo6VmFs dWUgKmJhc2VQdHIsIGxsdm06OlZhCi0gICAgIGxsdm06OlZhbHVlICp2YXJ5aW5nUHRyID0gYmFz ZUlzVW5pZm9ybSA/IFNtZWFyVW5pZm9ybShiYXNlUHRyKSA6IGJhc2VQdHI7Ci0gCi0gICAgIC8v IG5ld1B0ciA9IHB0ciArIG9mZnNldAotLSAgICByZXR1cm4gQmluYXJ5T3BlcmF0b3IobGx2bTo6 SW5zdHJ1Y3Rpb246OkFkZCwgdmFyeWluZ1B0ciwgb2Zmc2V0LCBMTFZNR2V0TmFtZShiYXNlUHRy LCAiX29mZnNldCIpKTsKLSsgICAgcmV0dXJuIEJpbmFyeU9wZXJhdG9yKGxsdm06Okluc3RydWN0 aW9uOjpBZGQsIHZhcnlpbmdQdHIsIG9mZnNldCwgbGx2bTo6VHdpbmUoYmFzZVB0ci0+Z2V0TmFt ZSgpKSArICJfb2Zmc2V0Iik7Ci0gfQotIAotIHZvaWQgRnVuY3Rpb25FbWl0Q29udGV4dDo6TWF0 Y2hJbnRlZ2VyVHlwZXMobGx2bTo6VmFsdWUgKip2MCwgbGx2bTo6VmFsdWUgKip2MSkgewotQEAg LTIwMDYsMTMgKzE5OTUsMTMgQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6Ok1h a2VTbGljZVBvaW50ZXIobGx2bTo6VmFsdWUgKnB0ciwgbGx2bTo6VmFsdWUKLSAgICAgbGx2bTo6 U3RydWN0VHlwZSAqc3QgPSBsbHZtOjpTdHJ1Y3RUeXBlOjpnZXQoKmctPmN0eCwgZWx0VHlwZXMp OwotIAotICAgICBsbHZtOjpWYWx1ZSAqcmV0ID0gbGx2bTo6VW5kZWZWYWx1ZTo6Z2V0KHN0KTsK LS0gICAgcmV0ID0gSW5zZXJ0SW5zdChyZXQsIHB0ciwgMCwgTExWTUdldE5hbWUocmV0LCAiX3Ns aWNlX3B0ciIpKTsKLS0gICAgcmV0ID0gSW5zZXJ0SW5zdChyZXQsIG9mZnNldCwgMSwgTExWTUdl dE5hbWUocmV0LCAiX3NsaWNlX29mZnNldCIpKTsKLSsgICAgcmV0ID0gSW5zZXJ0SW5zdChyZXQs IHB0ciwgMCwgbGx2bTo6VHdpbmUocmV0LT5nZXROYW1lKCkpICsgIl9zbGljZV9wdHIiKTsKLSsg ICAgcmV0ID0gSW5zZXJ0SW5zdChyZXQsIG9mZnNldCwgMSwgbGx2bTo6VHdpbmUocmV0LT5nZXRO YW1lKCkpICsgIl9zbGljZV9vZmZzZXQiKTsKLSAgICAgcmV0dXJuIHJldDsKLSB9Ci0gCi0gbGx2 bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkdldEVsZW1lbnRQdHJJbnN0KGxsdm06OlZh bHVlICpiYXNlUHRyLCBsbHZtOjpWYWx1ZSAqaW5kZXgsIGNvbnN0IFR5cGUgKnB0clJlZlR5cGUs Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv bnN0IGNoYXIgKm5hbWUpIHsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUpIHsKLSAgICAgaWYgKGJhc2VQ dHIgPT0gTlVMTCB8fCBpbmRleCA9PSBOVUxMKSB7Ci0gICAgICAgICBBc3NlcnRQb3MoY3VycmVu dFBvcywgbS0+ZXJyb3JDb3VudCA+IDApOwotICAgICAgICAgcmV0dXJuIE5VTEw7Ci1AQCAtMjA2 NSw4ICsyMDU0LDggQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkdldEVsZW1l bnRQdHJJbnN0KGxsdm06OlZhbHVlICpiYXNlUHRyLCBsbHZtOjoKLSAgICAgICAgIC8vIHVuaWZv cm0sIHNvIGp1c3QgZW1pdCB0aGUgcmVndWxhciBMTFZNIEdFUCBpbnN0cnVjdGlvbgotICAgICAg ICAgbGx2bTo6VmFsdWUgKmluZFsxXSA9IHtpbmRleH07Ci0gICAgICAgICBsbHZtOjpBcnJheVJl ZjxsbHZtOjpWYWx1ZSAqPiBhcnJheVJlZigmaW5kWzBdLCAmaW5kWzFdKTsKLS0gICAgICAgIGxs dm06Okluc3RydWN0aW9uICppbnN0ID0KLS0gICAgICAgICAgICBsbHZtOjpHZXRFbGVtZW50UHRy SW5zdDo6Q3JlYXRlKFBUWVBFKGJhc2VQdHIpLCBiYXNlUHRyLCBhcnJheVJlZiwgbmFtZSA/IG5h bWUgOiAiZ2VwIiwgYmJsb2NrKTsKLSsgICAgICAgIGxsdm06Okluc3RydWN0aW9uICppbnN0ID0g bGx2bTo6R2V0RWxlbWVudFB0ckluc3Q6OkNyZWF0ZShQVFlQRShiYXNlUHRyKSwgYmFzZVB0ciwg YXJyYXlSZWYsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgbmFtZS5pc1RyaXZpYWxseUVtcHR5KCkgPyAiZ2VwIiA6IG5h bWUsIGJibG9jayk7Ci0gICAgICAgICBBZGREZWJ1Z1BvcyhpbnN0KTsKLSAgICAgICAgIHJldHVy biBpbnN0OwotICAgICB9IGVsc2UKLUBAIC0yMDc0LDcgKzIwNjMsNyBAQCBsbHZtOjpWYWx1ZSAq RnVuY3Rpb25FbWl0Q29udGV4dDo6R2V0RWxlbWVudFB0ckluc3QobGx2bTo6VmFsdWUgKmJhc2VQ dHIsIGxsdm06OgotIH0KLSAKLSBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6R2V0 RWxlbWVudFB0ckluc3QobGx2bTo6VmFsdWUgKmJhc2VQdHIsIGxsdm06OlZhbHVlICppbmRleDAs IGxsdm06OlZhbHVlICppbmRleDEsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGNvbnN0IFR5cGUgKnB0clJlZlR5cGUsIGNvbnN0IGNoYXIgKm5h bWUpIHsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgY29uc3QgVHlwZSAqcHRyUmVmVHlwZSwgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUpIHsKLSAg ICAgaWYgKGJhc2VQdHIgPT0gTlVMTCB8fCBpbmRleDAgPT0gTlVMTCB8fCBpbmRleDEgPT0gTlVM TCkgewotICAgICAgICAgQXNzZXJ0UG9zKGN1cnJlbnRQb3MsIG0tPmVycm9yQ291bnQgPiAwKTsK LSAgICAgICAgIHJldHVybiBOVUxMOwotQEAgLTIxMTQsOCArMjEwMyw4IEBAIGxsdm06OlZhbHVl ICpGdW5jdGlvbkVtaXRDb250ZXh0OjpHZXRFbGVtZW50UHRySW5zdChsbHZtOjpWYWx1ZSAqYmFz ZVB0ciwgbGx2bTo6Ci0gICAgICAgICAvLyB1bmlmb3JtLCBzbyBqdXN0IGVtaXQgdGhlIHJlZ3Vs YXIgTExWTSBHRVAgaW5zdHJ1Y3Rpb24KLSAgICAgICAgIGxsdm06OlZhbHVlICppbmRpY2VzWzJd ID0ge2luZGV4MCwgaW5kZXgxfTsKLSAgICAgICAgIGxsdm06OkFycmF5UmVmPGxsdm06OlZhbHVl ICo+IGFycmF5UmVmKCZpbmRpY2VzWzBdLCAmaW5kaWNlc1syXSk7Ci0tICAgICAgICBsbHZtOjpJ bnN0cnVjdGlvbiAqaW5zdCA9Ci0tICAgICAgICAgICAgbGx2bTo6R2V0RWxlbWVudFB0ckluc3Q6 OkNyZWF0ZShQVFlQRShiYXNlUHRyKSwgYmFzZVB0ciwgYXJyYXlSZWYsIG5hbWUgPyBuYW1lIDog ImdlcCIsIGJibG9jayk7Ci0rICAgICAgICBsbHZtOjpJbnN0cnVjdGlvbiAqaW5zdCA9IGxsdm06 OkdldEVsZW1lbnRQdHJJbnN0OjpDcmVhdGUoUFRZUEUoYmFzZVB0ciksIGJhc2VQdHIsIGFycmF5 UmVmLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIG5hbWUuaXNUcml2aWFsbHlFbXB0eSgpID8gImdlcCIgOiBuYW1lLCBi YmxvY2spOwotICAgICAgICAgQWRkRGVidWdQb3MoaW5zdCk7Ci0gICAgICAgICByZXR1cm4gaW5z dDsKLSAgICAgfSBlbHNlIHsKLUBAIC0yMTM4LDcgKzIxMjcsNyBAQCBsbHZtOjpWYWx1ZSAqRnVu Y3Rpb25FbWl0Q29udGV4dDo6R2V0RWxlbWVudFB0ckluc3QobGx2bTo6VmFsdWUgKmJhc2VQdHIs IGxsdm06OgotIH0KLSAKLSBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6QWRkRWxl bWVudE9mZnNldChsbHZtOjpWYWx1ZSAqZnVsbEJhc2VQdHIsIGludCBlbGVtZW50TnVtLCBjb25z dCBUeXBlICpwdHJSZWZUeXBlLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IFBvaW50ZXJUeXBlICoqcmVz dWx0UHRyVHlwZSkgewotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lLCBjb25zdCBQb2ludGVyVHlwZSAqKnJl c3VsdFB0clR5cGUpIHsKLSAgICAgaWYgKHJlc3VsdFB0clR5cGUgIT0gTlVMTCkKLSAgICAgICAg IEFzc2VydFBvcyhjdXJyZW50UG9zLCBwdHJSZWZUeXBlICE9IE5VTEwpOwotIAotQEAgLTIxOTUs OCArMjE4NCw4IEBAIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpBZGRFbGVtZW50 T2Zmc2V0KGxsdm06OlZhbHVlICpmdWxsQmFzZVB0ciwgaW50Ci0gICAgICAgICAvLyBJZiB0aGUg cG9pbnRlciBpcyB1bmlmb3JtLCB3ZSBjYW4gdXNlIHRoZSByZWd1bGFyIExMVk0gR0VQLgotICAg ICAgICAgbGx2bTo6VmFsdWUgKm9mZnNldHNbMl0gPSB7TExWTUludDMyKDApLCBMTFZNSW50MzIo ZWxlbWVudE51bSl9OwotICAgICAgICAgbGx2bTo6QXJyYXlSZWY8bGx2bTo6VmFsdWUgKj4gYXJy YXlSZWYoJm9mZnNldHNbMF0sICZvZmZzZXRzWzJdKTsKLS0gICAgICAgIHJlc3VsdFB0ciA9Ci0t ICAgICAgICAgICAgbGx2bTo6R2V0RWxlbWVudFB0ckluc3Q6OkNyZWF0ZShQVFlQRShiYXNlUHRy KSwgYmFzZVB0ciwgYXJyYXlSZWYsIG5hbWUgPyBuYW1lIDogInN0cnVjdF9vZmZzZXQiLCBiYmxv Y2spOwotKyAgICAgICAgcmVzdWx0UHRyID0gbGx2bTo6R2V0RWxlbWVudFB0ckluc3Q6OkNyZWF0 ZShQVFlQRShiYXNlUHRyKSwgYmFzZVB0ciwgYXJyYXlSZWYsCi0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUuaXNUcml2aWFsbHlFbXB0eSgp ID8gInN0cnVjdF9vZmZzZXQiIDogbmFtZSwgYmJsb2NrKTsKLSAgICAgfSBlbHNlIHsKLSAgICAg ICAgIC8vIE90aGVyd2lzZSBkbyB0aGUgbWF0aCB0byBmaW5kIHRoZSBvZmZzZXQgYW5kIGFkZCBp dCB0byB0aGUgZ2l2ZW4KLSAgICAgICAgIC8vIHZhcnlpbmcgcG9pbnRlcnMKLUBAIC0yMjM3LDcg KzIyMjYsNyBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6QWRkRWxlbWVudE9m ZnNldChsbHZtOjpWYWx1ZSAqZnVsbEJhc2VQdHIsIGludAotICAgICAgICAgcmV0dXJuIHJlc3Vs dFB0cjsKLSB9Ci0gCi0tbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OlN3aXRjaEJv b2xTaXplKGxsdm06OlZhbHVlICp2YWx1ZSwgbGx2bTo6VHlwZSAqdG9UeXBlLCBjb25zdCBjaGFy ICpuYW1lKSB7Ci0rbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OlN3aXRjaEJvb2xT aXplKGxsdm06OlZhbHVlICp2YWx1ZSwgbGx2bTo6VHlwZSAqdG9UeXBlLCBjb25zdCBsbHZtOjpU d2luZSAmbmFtZSkgewotICAgICBpZiAoKHZhbHVlID09IE5VTEwpIHx8ICh0b1R5cGUgPT0gTlVM TCkpIHsKLSAgICAgICAgIEFzc2VydFBvcyhjdXJyZW50UG9zLCBtLT5lcnJvckNvdW50ID4gMCk7 Ci0gICAgICAgICByZXR1cm4gTlVMTDsKLUBAIC0yMjQ4LDIwICsyMjM3LDE4IEBAIGxsdm06OlZh bHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpTd2l0Y2hCb29sU2l6ZShsbHZtOjpWYWx1ZSAqdmFs dWUsIGxsdm06OlR5cGUKLSAgICAgbGx2bTo6VmFsdWUgKm5ld0Jvb2wgPSB2YWx1ZTsKLSAgICAg aWYgKGctPnRhcmdldC0+Z2V0RGF0YUxheW91dCgpLT5nZXRUeXBlU2l6ZUluQml0cyhmcm9tVHlw ZSkgPgotICAgICAgICAgZy0+dGFyZ2V0LT5nZXREYXRhTGF5b3V0KCktPmdldFR5cGVTaXplSW5C aXRzKHRvVHlwZSkpIHsKLS0gICAgICAgIGlmIChuYW1lID09IE5VTEwpCi0tICAgICAgICAgICAg bmFtZSA9IExMVk1HZXROYW1lKHZhbHVlLCAiX3N3aXRjaEJvb2wiKTsKLS0gICAgICAgIG5ld0Jv b2wgPSBUcnVuY0luc3QodmFsdWUsIHRvVHlwZSwgbmFtZSk7Ci0rICAgICAgICBuZXdCb29sID0K LSsgICAgICAgICAgICBUcnVuY0luc3QodmFsdWUsIHRvVHlwZSwgbmFtZS5pc1RyaXZpYWxseUVt cHR5KCkgPyAobGx2bTo6VHdpbmUodmFsdWUtPmdldE5hbWUoKSkgKyAiX3N3aXRjaEJvb2wiKSA6 IG5hbWUpOwotICAgICB9IGVsc2UgaWYgKGctPnRhcmdldC0+Z2V0RGF0YUxheW91dCgpLT5nZXRU eXBlU2l6ZUluQml0cyhmcm9tVHlwZSkgPAotICAgICAgICAgICAgICAgIGctPnRhcmdldC0+Z2V0 RGF0YUxheW91dCgpLT5nZXRUeXBlU2l6ZUluQml0cyh0b1R5cGUpKSB7Ci0tICAgICAgICBpZiAo bmFtZSA9PSBOVUxMKQotLSAgICAgICAgICAgIG5hbWUgPSBMTFZNR2V0TmFtZSh2YWx1ZSwgIl9z d2l0Y2hCb29sIik7Ci0tICAgICAgICBuZXdCb29sID0gU0V4dEluc3QodmFsdWUsIHRvVHlwZSwg bmFtZSk7Ci0rICAgICAgICBuZXdCb29sID0KLSsgICAgICAgICAgICBTRXh0SW5zdCh2YWx1ZSwg dG9UeXBlLCBuYW1lLmlzVHJpdmlhbGx5RW1wdHkoKSA/IChsbHZtOjpUd2luZSh2YWx1ZS0+Z2V0 TmFtZSgpKSArICJfc3dpdGNoQm9vbCIpIDogbmFtZSk7Ci0gICAgIH0KLSAKLSAgICAgcmV0dXJu IG5ld0Jvb2w7Ci0gfQotIAotLWxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpMb2Fk SW5zdChsbHZtOjpWYWx1ZSAqcHRyLCBjb25zdCBUeXBlICp0eXBlLCBjb25zdCBjaGFyICpuYW1l KSB7Ci0rbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkxvYWRJbnN0KGxsdm06OlZh bHVlICpwdHIsIGNvbnN0IFR5cGUgKnR5cGUsIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lKSB7Ci0g ICAgIGlmIChwdHIgPT0gTlVMTCkgewotICAgICAgICAgQXNzZXJ0UG9zKGN1cnJlbnRQb3MsIG0t PmVycm9yQ291bnQgPiAwKTsKLSAgICAgICAgIHJldHVybiBOVUxMOwotQEAgLTIyNzAsMTMgKzIy NTcsMTMgQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkxvYWRJbnN0KGxsdm06 OlZhbHVlICpwdHIsIGNvbnN0IFR5cGUgKnR5cGUsIGMKLSAgICAgbGx2bTo6UG9pbnRlclR5cGUg KnB0ID0gbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6UG9pbnRlclR5cGU+KHB0ci0+Z2V0VHlwZSgpKTsK LSAgICAgQXNzZXJ0UG9zKGN1cnJlbnRQb3MsIHB0ICE9IE5VTEwpOwotIAotLSAgICBpZiAobmFt ZSA9PSBOVUxMKQotLSAgICAgICAgbmFtZSA9IExMVk1HZXROYW1lKHB0ciwgIl9sb2FkIik7Ci0t Ci0gI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMV8wCi0tICAgIGxsdm06Okxv YWRJbnN0ICppbnN0ID0gbmV3IGxsdm06OkxvYWRJbnN0KHB0LT5nZXRQb2ludGVyRWxlbWVudFR5 cGUoKSwgcHRyLCBuYW1lLCBiYmxvY2spOwotKyAgICBsbHZtOjpMb2FkSW5zdCAqaW5zdCA9Ci0r ICAgICAgICBuZXcgbGx2bTo6TG9hZEluc3QocHQtPmdldFBvaW50ZXJFbGVtZW50VHlwZSgpLCBw dHIsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZS5pc1RyaXZpYWxseUVtcHR5KCkg PyAobGx2bTo6VHdpbmUocHRyLT5nZXROYW1lKCkpICsgIl9sb2FkIikgOiBuYW1lLCBiYmxvY2sp OwotICNlbHNlCi0tICAgIGxsdm06OkxvYWRJbnN0ICppbnN0ID0gbmV3IGxsdm06OkxvYWRJbnN0 KHB0ciwgbmFtZSwgYmJsb2NrKTsKLSsgICAgbGx2bTo6TG9hZEluc3QgKmluc3QgPQotKyAgICAg ICAgbmV3IGxsdm06OkxvYWRJbnN0KHB0ciwgbmFtZS5pc1RyaXZpYWxseUVtcHR5KCkgPyAobGx2 bTo6VHdpbmUocHRyLT5nZXROYW1lKCkpICsgIl9sb2FkIikgOiBuYW1lLCBiYmxvY2spOwotICNl bmRpZgotIAotICAgICBpZiAoZy0+b3B0LmZvcmNlQWxpZ25lZE1lbW9yeSAmJiBsbHZtOjpkeW5f Y2FzdDxsbHZtOjpWZWN0b3JUeXBlPihwdC0+Z2V0RWxlbWVudFR5cGUoKSkpIHsKLUBAIC0yMzA3 LDggKzIyOTQsOCBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6TG9hZEluc3Qo bGx2bTo6VmFsdWUgKnB0ciwgY29uc3QgVHlwZSAqdHlwZSwgYwotIHN0YXRpYyBsbHZtOjpWYWx1 ZSAqbEZpbmFsU2xpY2VPZmZzZXQoRnVuY3Rpb25FbWl0Q29udGV4dCAqY3R4LCBsbHZtOjpWYWx1 ZSAqcHRyLCBjb25zdCBQb2ludGVyVHlwZSAqKnB0clR5cGUpIHsKLSAgICAgQXNzZXJ0KENhc3RU eXBlPFBvaW50ZXJUeXBlPigqcHRyVHlwZSkgIT0gTlVMTCk7Ci0gCi0tICAgIGxsdm06OlZhbHVl ICpzbGljZVB0ciA9IGN0eC0+RXh0cmFjdEluc3QocHRyLCAwLCBMTFZNR2V0TmFtZShwdHIsICJf cHRyIikpOwotLSAgICBsbHZtOjpWYWx1ZSAqc2xpY2VPZmZzZXQgPSBjdHgtPkV4dHJhY3RJbnN0 KHB0ciwgMSwgTExWTUdldE5hbWUocHRyLCAiX29mZnNldCIpKTsKLSsgICAgbGx2bTo6VmFsdWUg KnNsaWNlUHRyID0gY3R4LT5FeHRyYWN0SW5zdChwdHIsIDAsIGxsdm06OlR3aW5lKHB0ci0+Z2V0 TmFtZSgpKSArICJfcHRyIik7Ci0rICAgIGxsdm06OlZhbHVlICpzbGljZU9mZnNldCA9IGN0eC0+ RXh0cmFjdEluc3QocHRyLCAxLCBsbHZtOjpUd2luZShwdHItPmdldE5hbWUoKSkgKyAiX29mZnNl dCIpOwotIAotICAgICAvLyBzbGljZVB0ciBzaG91bGQgYmUgYSBwb2ludGVyIHRvIGFuIHNvYS13 aWR0aCB3aWRlIGFycmF5IG9mIHRoZQotICAgICAvLyBmaW5hbCBhdG9taWMvZW51bS9wb2ludGVy IHR5cGUKLUBAIC0yMzI3LDE0ICsyMzE0LDE0IEBAIHN0YXRpYyBsbHZtOjpWYWx1ZSAqbEZpbmFs U2xpY2VPZmZzZXQoRnVuY3Rpb25FbWl0Q29udGV4dCAqY3R4LCBsbHZtOjpWYWx1ZSAqcHRyCi0g ICAgICAgICBzbGljZVB0ciA9IGN0eC0+Qml0Q2FzdEluc3Qoc2xpY2VQdHIsICgqcHRyVHlwZSkt PkxMVk1UeXBlKGctPmN0eCkpOwotIAotICAgICAvLyBBbmQgZmluYWxseSBpbmRleCBiYXNlZCBv biB0aGUgc2xpY2Ugb2Zmc2V0Ci0tICAgIHJldHVybiBjdHgtPkdldEVsZW1lbnRQdHJJbnN0KHNs aWNlUHRyLCBzbGljZU9mZnNldCwgKnB0clR5cGUsIExMVk1HZXROYW1lKHNsaWNlUHRyLCAiX2Zp bmFsX2dlcCIpKTsKLSsgICAgcmV0dXJuIGN0eC0+R2V0RWxlbWVudFB0ckluc3Qoc2xpY2VQdHIs IHNsaWNlT2Zmc2V0LCAqcHRyVHlwZSwgbGx2bTo6VHdpbmUoc2xpY2VQdHItPmdldE5hbWUoKSkg KyAiX2ZpbmFsX2dlcCIpOwotIH0KLSAKLSAvKiogVXRpbGl0eSByb3V0aW5lIHRoYXQgbG9hZHMg ZnJvbSBhIHVuaWZvcm0gcG9pbnRlciB0byBzb2E8PiBkYXRhLAotICAgICByZXR1cm5pbmcgYSBy ZWd1bGFyIHVuaWZvcm0gKG5vbi1TT0EgcmVzdWx0KS4KLSAgKi8KLSBsbHZtOjpWYWx1ZSAqRnVu Y3Rpb25FbWl0Q29udGV4dDo6bG9hZFVuaWZvcm1Gcm9tU09BKGxsdm06OlZhbHVlICpwdHIsIGxs dm06OlZhbHVlICptYXNrLCBjb25zdCBQb2ludGVyVHlwZSAqcHRyVHlwZSwKLS0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKm5h bWUpIHsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lKSB7Ci0gICAgIGNvbnN0IFR5cGUgKnVuaWZUeXBl ID0gcHRyVHlwZS0+R2V0QmFzZVR5cGUoKS0+R2V0QXNVbmlmb3JtVHlwZSgpOwotIAotICAgICBj b25zdCBDb2xsZWN0aW9uVHlwZSAqY3QgPSBDYXN0VHlwZTxDb2xsZWN0aW9uVHlwZT4ocHRyVHlw ZS0+R2V0QmFzZVR5cGUoKSk7Ci1AQCAtMjM2Myw3ICsyMzUwLDcgQEAgbGx2bTo6VmFsdWUgKkZ1 bmN0aW9uRW1pdENvbnRleHQ6OmxvYWRVbmlmb3JtRnJvbVNPQShsbHZtOjpWYWx1ZSAqcHRyLCBs bHZtOjpWYWwKLSB9Ci0gCi0gbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkxvYWRJ bnN0KGxsdm06OlZhbHVlICpwdHIsIGxsdm06OlZhbHVlICptYXNrLCBjb25zdCBUeXBlICpwdHJS ZWZUeXBlLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z dCBjaGFyICpuYW1lLCBib29sIG9uZV9lbGVtKSB7Ci0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lLCBib29sIG9uZV9lbGVt KSB7Ci0gICAgIGlmIChwdHIgPT0gTlVMTCkgewotICAgICAgICAgQXNzZXJ0UG9zKGN1cnJlbnRQ b3MsIG0tPmVycm9yQ291bnQgPiAwKTsKLSAgICAgICAgIHJldHVybiBOVUxMOwotQEAgLTIzNzEs OSArMjM1OCw2IEBAIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpMb2FkSW5zdChs bHZtOjpWYWx1ZSAqcHRyLCBsbHZtOjpWYWx1ZSAqbWFzaywKLSAKLSAgICAgQXNzZXJ0UG9zKGN1 cnJlbnRQb3MsIHB0clJlZlR5cGUgIT0gTlVMTCAmJiBtYXNrICE9IE5VTEwpOwotIAotLSAgICBp ZiAobmFtZSA9PSBOVUxMKQotLSAgICAgICAgbmFtZSA9IExMVk1HZXROYW1lKHB0ciwgIl9sb2Fk Iik7Ci0tCi0gICAgIGNvbnN0IFBvaW50ZXJUeXBlICpwdHJUeXBlOwotICAgICBjb25zdCBUeXBl ICplbFR5cGU7Ci0gICAgIGlmIChDYXN0VHlwZTxSZWZlcmVuY2VUeXBlPihwdHJSZWZUeXBlKSAh PSBOVUxMKSB7Ci1AQCAtMjM5Myw3ICsyMzc3LDggQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1p dENvbnRleHQ6OkxvYWRJbnN0KGxsdm06OlZhbHVlICpwdHIsIGxsdm06OlZhbHVlICptYXNrLAot IAotICAgICBpZiAocHRyVHlwZS0+SXNVbmlmb3JtVHlwZSgpKSB7Ci0gICAgICAgICBpZiAocHRy VHlwZS0+SXNTbGljZSgpKSB7Ci0tICAgICAgICAgICAgcmV0dXJuIGxvYWRVbmlmb3JtRnJvbVNP QShwdHIsIG1hc2ssIHB0clR5cGUsIG5hbWUpOwotKyAgICAgICAgICAgIHJldHVybiBsb2FkVW5p Zm9ybUZyb21TT0EocHRyLCBtYXNrLCBwdHJUeXBlLAotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgbmFtZS5pc1RyaXZpYWxseUVtcHR5KCkgPyAobGx2bTo6VHdpbmUocHRy LT5nZXROYW1lKCkpICsgIl9sb2FkIikgOiBuYW1lKTsKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAg ICAgICAgICAgLy8gRklYTUU6IHNhbWUgaXNzdWUgYXMgYWJvdmUgbG9hZCBpbnN0IHJlZ2FyZGlu ZyBhbGlnbm1lbnQuLi4KLSAgICAgICAgICAgICAvLwotQEAgLTI0MDUsMTEgKzIzOTAsMTUgQEAg bGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkxvYWRJbnN0KGxsdm06OlZhbHVlICpw dHIsIGxsdm06OlZhbHVlICptYXNrLAotICAgICAgICAgICAgIGNvbnN0IEF0b21pY1R5cGUgKmF0 b21pY1R5cGUgPSBDYXN0VHlwZTxBdG9taWNUeXBlPihwdHJUeXBlLT5HZXRCYXNlVHlwZSgpKTsK LSAKLSAjaWYgSVNQQ19MTFZNX1ZFUlNJT04gPD0gSVNQQ19MTFZNXzEwXzAKLS0gICAgICAgICAg ICBsbHZtOjpMb2FkSW5zdCAqaW5zdCA9IG5ldyBsbHZtOjpMb2FkSW5zdChwdHIsIG5hbWUsIGZh bHNlIC8qIG5vdCB2b2xhdGlsZSAqLywgYmJsb2NrKTsKLSsgICAgICAgICAgICBsbHZtOjpMb2Fk SW5zdCAqaW5zdCA9Ci0rICAgICAgICAgICAgICAgIG5ldyBsbHZtOjpMb2FkSW5zdChwdHIsIG5h bWUuaXNUcml2aWFsbHlFbXB0eSgpID8gKGxsdm06OlR3aW5lKHB0ci0+Z2V0TmFtZSgpKSArICJf bG9hZCIpIDogbmFtZSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNl IC8qIG5vdCB2b2xhdGlsZSAqLywgYmJsb2NrKTsKLSAjZWxzZSAvLyBMTFZNIDExLjArCi0gICAg ICAgICAgICAgbGx2bTo6UG9pbnRlclR5cGUgKnB0cl90eXBlID0gbGx2bTo6ZHluX2Nhc3Q8bGx2 bTo6UG9pbnRlclR5cGU+KHB0ci0+Z2V0VHlwZSgpKTsKLSAgICAgICAgICAgICBsbHZtOjpMb2Fk SW5zdCAqaW5zdCA9Ci0tICAgICAgICAgICAgICAgIG5ldyBsbHZtOjpMb2FkSW5zdChwdHJfdHlw ZS0+Z2V0UG9pbnRlckVsZW1lbnRUeXBlKCksIHB0ciwgbmFtZSwgZmFsc2UgLyogbm90IHZvbGF0 aWxlICovLCBiYmxvY2spOwotKyAgICAgICAgICAgICAgICBuZXcgbGx2bTo6TG9hZEluc3QocHRy X3R5cGUtPmdldFBvaW50ZXJFbGVtZW50VHlwZSgpLCBwdHIsCi0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBuYW1lLmlzVHJpdmlhbGx5RW1wdHkoKSA/IChsbHZtOjpUd2luZShw dHItPmdldE5hbWUoKSkgKyAiX2xvYWQiKSA6IG5hbWUsCi0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBmYWxzZSAvKiBub3Qgdm9sYXRpbGUgKi8sIGJibG9jayk7Ci0gI2VuZGlm Ci0gCi0gICAgICAgICAgICAgaWYgKGF0b21pY1R5cGUgIT0gTlVMTCAmJiBhdG9taWNUeXBlLT5J c1ZhcnlpbmdUeXBlKCkpIHsKLUBAIC0yNDMzLDcgKzI0MjIsOCBAQCBsbHZtOjpWYWx1ZSAqRnVu Y3Rpb25FbWl0Q29udGV4dDo6TG9hZEluc3QobGx2bTo6VmFsdWUgKnB0ciwgbGx2bTo6VmFsdWUg Km1hc2ssCi0gICAgIH0gZWxzZSB7Ci0gICAgICAgICAvLyBPdGhlcndpc2Ugd2Ugc2hvdWxkIGhh dmUgYSB2YXJ5aW5nIHB0ciBhbmQgaXQncyB0aW1lIGZvciBhCi0gICAgICAgICAvLyBnYXRoZXIu Ci0tICAgICAgICBsbHZtOjpWYWx1ZSAqZ2F0aGVyX3Jlc3VsdCA9IGdhdGhlcihwdHIsIHB0clR5 cGUsIEdldEZ1bGxNYXNrKCksIG5hbWUpOwotKyAgICAgICAgbGx2bTo6VmFsdWUgKmdhdGhlcl9y ZXN1bHQgPSBnYXRoZXIocHRyLCBwdHJUeXBlLCBHZXRGdWxsTWFzaygpLAotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZS5pc1RyaXZpYWxseUVtcHR5KCkg PyAobGx2bTo6VHdpbmUocHRyLT5nZXROYW1lKCkpICsgIl9sb2FkIikgOiBuYW1lKTsKLSAgICAg ICAgIGlmICghb25lX2VsZW0pCi0gICAgICAgICAgICAgcmV0dXJuIGdhdGhlcl9yZXN1bHQ7Ci0g Ci1AQCAtMjQ1MywxOSArMjQ0MywxOSBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4 dDo6TG9hZEluc3QobGx2bTo6VmFsdWUgKnB0ciwgbGx2bTo6VmFsdWUgKm1hc2ssCi0gICAgICAg ICAvLyBXZSBjYW4gYWN0dWFsbHkgY2FsbCBlaXRoZXIgb25lLCBzaW5jZSBib3RoIGFyZSBpMzJz IGFzIGZhciBhcwotICAgICAgICAgLy8gTExWTSdzIHR5cGUgc3lzdGVtIGlzIGNvbmNlcm5lZC4u LgotICAgICAgICAgbGx2bTo6RnVuY3Rpb24gKmZtbSA9IG1tWzBdLT5mdW5jdGlvbjsKLS0gICAg ICAgIGxsdm06OlZhbHVlICppbnRfbWFzayA9IENhbGxJbnN0KGZtbSwgTlVMTCwgbWFzaywgTExW TUdldE5hbWUobWFzaywgIl9tb3Ztc2siKSk7Ci0rICAgICAgICBsbHZtOjpWYWx1ZSAqaW50X21h c2sgPSBDYWxsSW5zdChmbW0sIE5VTEwsIG1hc2ssIGxsdm06OlR3aW5lKG1hc2stPmdldE5hbWUo KSkgKyAiX21vdm1zayIpOwotICAgICAgICAgc3RkOjp2ZWN0b3I8U3ltYm9sICo+IGx6OwotICAg ICAgICAgbS0+c3ltYm9sVGFibGUtPkxvb2t1cEZ1bmN0aW9uKCJfX2NvdW50X3RyYWlsaW5nX3pl cm9zX2k2NCIsICZseik7Ci0gICAgICAgICBsbHZtOjpGdW5jdGlvbiAqZmx6ID0gbHpbMF0tPmZ1 bmN0aW9uOwotLSAgICAgICAgbGx2bTo6VmFsdWUgKmVsZW1faWR4ID0gQ2FsbEluc3QoZmx6LCBO VUxMLCBpbnRfbWFzaywgTExWTUdldE5hbWUobWFzaywgIl9jbHoiKSk7Ci0tICAgICAgICBsbHZt OjpWYWx1ZSAqZWxlbSA9IGxsdm06OkV4dHJhY3RFbGVtZW50SW5zdDo6Q3JlYXRlKGdhdGhlcl9y ZXN1bHQsIGVsZW1faWR4LAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBMTFZNR2V0TmFtZShnYXRoZXJfcmVzdWx0LCAiX3VtYXNr ZWRfZWxlbSIpLCBiYmxvY2spOwotKyAgICAgICAgbGx2bTo6VmFsdWUgKmVsZW1faWR4ID0gQ2Fs bEluc3QoZmx6LCBOVUxMLCBpbnRfbWFzaywgbGx2bTo6VHdpbmUobWFzay0+Z2V0TmFtZSgpKSAr ICJfY2x6Iik7Ci0rICAgICAgICBsbHZtOjpWYWx1ZSAqZWxlbSA9IGxsdm06OkV4dHJhY3RFbGVt ZW50SW5zdDo6Q3JlYXRlKAotKyAgICAgICAgICAgIGdhdGhlcl9yZXN1bHQsIGVsZW1faWR4LCBs bHZtOjpUd2luZShnYXRoZXJfcmVzdWx0LT5nZXROYW1lKCkpICsgIl91bWFza2VkX2VsZW0iLCBi YmxvY2spOwotICAgICAgICAgcmV0dXJuIGVsZW07Ci0gICAgIH0KLSB9Ci0gCi0gbGx2bTo6VmFs dWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OmdhdGhlcihsbHZtOjpWYWx1ZSAqcHRyLCBjb25zdCBQ b2ludGVyVHlwZSAqcHRyVHlwZSwgbGx2bTo6VmFsdWUgKm1hc2ssCi0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpuYW1lKSB7Ci0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSkg ewotICAgICAvLyBXZSBzaG91bGQgaGF2ZSBhIHZhcnlpbmcgcG9pbnRlciBpZiB3ZSBnZXQgaGVy ZS4uLgotICAgICBBc3NlcnRQb3MoY3VycmVudFBvcywgcHRyVHlwZS0+SXNWYXJ5aW5nVHlwZSgp KTsKLSAKLUBAIC0yNjAyLDcgKzI1OTIsOCBAQCB2b2lkIEZ1bmN0aW9uRW1pdENvbnRleHQ6OmFk ZEdTTWV0YWRhdGEobGx2bTo6VmFsdWUgKnYsIFNvdXJjZVBvcyBwb3MpIHsKLSAgICAgaW5zdC0+ c2V0TWV0YWRhdGEoImxhc3RfY29sdW1uIiwgbWQpOwotIH0KLSAKLS1sbHZtOjpWYWx1ZSAqRnVu Y3Rpb25FbWl0Q29udGV4dDo6QWxsb2NhSW5zdChsbHZtOjpUeXBlICpsbHZtVHlwZSwgY29uc3Qg Y2hhciAqbmFtZSwgaW50IGFsaWduLCBib29sIGF0RW50cnlCbG9jaykgewotK2xsdm06OlZhbHVl ICpGdW5jdGlvbkVtaXRDb250ZXh0OjpBbGxvY2FJbnN0KGxsdm06OlR5cGUgKmxsdm1UeXBlLCBj b25zdCBsbHZtOjpUd2luZSAmbmFtZSwgaW50IGFsaWduLAotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgYXRFbnRyeUJsb2NrKSB7Ci0gICAgIGlmIChs bHZtVHlwZSA9PSBOVUxMKSB7Ci0gICAgICAgICBBc3NlcnRQb3MoY3VycmVudFBvcywgbS0+ZXJy b3JDb3VudCA+IDApOwotICAgICAgICAgcmV0dXJuIE5VTEw7Ci1AQCAtMjYxNSwxMiArMjYwNiwx MiBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6QWxsb2NhSW5zdChsbHZtOjpU eXBlICpsbHZtVHlwZSwgY29uc3QgY2hhciAqbgotICAgICAgICAgbGx2bTo6SW5zdHJ1Y3Rpb24g KnJldEluc3QgPSBhbGxvY2FCbG9jay0+Z2V0VGVybWluYXRvcigpOwotICAgICAgICAgQXNzZXJ0 UG9zKGN1cnJlbnRQb3MsIHJldEluc3QpOwotICAgICAgICAgdW5zaWduZWQgQVMgPSBsbHZtRnVu Y3Rpb24tPmdldFBhcmVudCgpLT5nZXREYXRhTGF5b3V0KCkuZ2V0QWxsb2NhQWRkclNwYWNlKCk7 Ci0tICAgICAgICBpbnN0ID0gbmV3IGxsdm06OkFsbG9jYUluc3QobGx2bVR5cGUsIEFTLCBuYW1l ID8gbmFtZSA6ICIiLCByZXRJbnN0KTsKLSsgICAgICAgIGluc3QgPSBuZXcgbGx2bTo6QWxsb2Nh SW5zdChsbHZtVHlwZSwgQVMsIG5hbWUsIHJldEluc3QpOwotICAgICB9IGVsc2UgewotICAgICAg ICAgLy8gVW5sZXNzIHRoZSBjYWxsZXIgb3ZlcnJvZGUgdGhlIGRlZmF1bHQgYW5kIHdhbnRzIGl0 IGluIHRoZQotICAgICAgICAgLy8gY3VycmVudCBiYXNpYyBibG9jawotICAgICAgICAgdW5zaWdu ZWQgQVMgPSBsbHZtRnVuY3Rpb24tPmdldFBhcmVudCgpLT5nZXREYXRhTGF5b3V0KCkuZ2V0QWxs b2NhQWRkclNwYWNlKCk7Ci0tICAgICAgICBpbnN0ID0gbmV3IGxsdm06OkFsbG9jYUluc3QobGx2 bVR5cGUsIEFTLCBuYW1lID8gbmFtZSA6ICIiLCBiYmxvY2spOwotKyAgICAgICAgaW5zdCA9IG5l dyBsbHZtOjpBbGxvY2FJbnN0KGxsdm1UeXBlLCBBUywgbmFtZSwgYmJsb2NrKTsKLSAgICAgfQot IAotICAgICAvLyBJZiBubyBhbGlnbm1lbnQgd2FzIHNwZWNpZmllZCBidXQgd2UgaGF2ZSBhbiBh cnJheSBvZiBhIHVuaWZvcm0KLUBAIC0yNjM5LDcgKzI2MzAsOCBAQCBsbHZtOjpWYWx1ZSAqRnVu Y3Rpb25FbWl0Q29udGV4dDo6QWxsb2NhSW5zdChsbHZtOjpUeXBlICpsbHZtVHlwZSwgY29uc3Qg Y2hhciAqbgotICAgICByZXR1cm4gaW5zdDsKLSB9Ci0gCi0tbGx2bTo6VmFsdWUgKkZ1bmN0aW9u RW1pdENvbnRleHQ6OkFsbG9jYUluc3QoY29uc3QgVHlwZSAqcHRyVHlwZSwgY29uc3QgY2hhciAq bmFtZSwgaW50IGFsaWduLCBib29sIGF0RW50cnlCbG9jaykgewotK2xsdm06OlZhbHVlICpGdW5j dGlvbkVtaXRDb250ZXh0OjpBbGxvY2FJbnN0KGNvbnN0IFR5cGUgKnB0clR5cGUsIGNvbnN0IGxs dm06OlR3aW5lICZuYW1lLCBpbnQgYWxpZ24sCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgYm9vbCBhdEVudHJ5QmxvY2spIHsKLSAgICAgaWYgKHB0clR5cGUg PT0gTlVMTCkgewotICAgICAgICAgQXNzZXJ0UG9zKGN1cnJlbnRQb3MsIG0tPmVycm9yQ291bnQg PiAwKTsKLSAgICAgICAgIHJldHVybiBOVUxMOwotQEAgLTMwNzUsNjYgKzMwNjcsNTkgQEAgbGx2 bTo6SW5zdHJ1Y3Rpb24gKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkJyYW5jaEluc3QobGx2bTo6QmFz aWNCbG9jayAqdHJ1ZUJsb2NrLAotICAgICByZXR1cm4gYjsKLSB9Ci0gCi0tbGx2bTo6VmFsdWUg KkZ1bmN0aW9uRW1pdENvbnRleHQ6OkV4dHJhY3RJbnN0KGxsdm06OlZhbHVlICp2LCBpbnQgZWx0 LCBjb25zdCBjaGFyICpuYW1lKSB7Ci0rbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6 OkV4dHJhY3RJbnN0KGxsdm06OlZhbHVlICp2LCBpbnQgZWx0LCBjb25zdCBsbHZtOjpUd2luZSAm bmFtZSkgewotICAgICBpZiAodiA9PSBOVUxMKSB7Ci0gICAgICAgICBBc3NlcnRQb3MoY3VycmVu dFBvcywgbS0+ZXJyb3JDb3VudCA+IDApOwotICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgIH0K LSAKLS0gICAgaWYgKG5hbWUgPT0gTlVMTCkgewotLSAgICAgICAgY2hhciBidWZbMzJdOwotLSAg ICAgICAgc25wcmludGYoYnVmLCBzaXplb2YoYnVmKSwgIl9leHRyYWN0XyVkIiwgZWx0KTsKLS0g ICAgICAgIG5hbWUgPSBMTFZNR2V0TmFtZSh2LCBidWYpOwotLSAgICB9Ci0gICAgIGxsdm06Oklu c3RydWN0aW9uICplaSA9IE5VTEw7Ci0gICAgIGlmIChsbHZtOjppc2E8bGx2bTo6VmVjdG9yVHlw ZT4odi0+Z2V0VHlwZSgpKSkKLS0gICAgICAgIGVpID0gbGx2bTo6RXh0cmFjdEVsZW1lbnRJbnN0 OjpDcmVhdGUodiwgTExWTUludDMyKGVsdCksIG5hbWUsIGJibG9jayk7Ci0rICAgICAgICBlaSA9 IGxsdm06OkV4dHJhY3RFbGVtZW50SW5zdDo6Q3JlYXRlKAotKyAgICAgICAgICAgIHYsIExMVk1J bnQzMihlbHQpLAotKyAgICAgICAgICAgIG5hbWUuaXNUcml2aWFsbHlFbXB0eSgpID8gKChsbHZt OjpUd2luZSh2LT5nZXROYW1lKCkpICsgIl9leHRyYWN0XyIpICsgbGx2bTo6VHdpbmUoZWx0KSkg OiBuYW1lLCBiYmxvY2spOwotICAgICBlbHNlCi0tICAgICAgICBlaSA9IGxsdm06OkV4dHJhY3RW YWx1ZUluc3Q6OkNyZWF0ZSh2LCBlbHQsIG5hbWUsIGJibG9jayk7Ci0rICAgICAgICBlaSA9IGxs dm06OkV4dHJhY3RWYWx1ZUluc3Q6OkNyZWF0ZSgKLSsgICAgICAgICAgICB2LCBlbHQsIG5hbWUu aXNUcml2aWFsbHlFbXB0eSgpID8gKChsbHZtOjpUd2luZSh2LT5nZXROYW1lKCkpICsgIl9leHRy YWN0XyIpICsgbGx2bTo6VHdpbmUoZWx0KSkgOiBuYW1lLAotKyAgICAgICAgICAgIGJibG9jayk7 Ci0gICAgIEFkZERlYnVnUG9zKGVpKTsKLSAgICAgcmV0dXJuIGVpOwotIH0KLSAKLS1sbHZtOjpW YWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6SW5zZXJ0SW5zdChsbHZtOjpWYWx1ZSAqdiwgbGx2 bTo6VmFsdWUgKmVsdFZhbCwgaW50IGVsdCwgY29uc3QgY2hhciAqbmFtZSkgewotK2xsdm06OlZh bHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpJbnNlcnRJbnN0KGxsdm06OlZhbHVlICp2LCBsbHZt OjpWYWx1ZSAqZWx0VmFsLCBpbnQgZWx0LCBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSkgewotICAg ICBpZiAodiA9PSBOVUxMIHx8IGVsdFZhbCA9PSBOVUxMKSB7Ci0gICAgICAgICBBc3NlcnRQb3Mo Y3VycmVudFBvcywgbS0+ZXJyb3JDb3VudCA+IDApOwotICAgICAgICAgcmV0dXJuIE5VTEw7Ci0g ICAgIH0KLSAKLS0gICAgaWYgKG5hbWUgPT0gTlVMTCkgewotLSAgICAgICAgY2hhciBidWZbMzJd OwotLSAgICAgICAgc25wcmludGYoYnVmLCBzaXplb2YoYnVmKSwgIl9pbnNlcnRfJWQiLCBlbHQp OwotLSAgICAgICAgbmFtZSA9IExMVk1HZXROYW1lKHYsIGJ1Zik7Ci0tICAgIH0KLS0KLSAgICAg bGx2bTo6SW5zdHJ1Y3Rpb24gKmlpID0gTlVMTDsKLSAgICAgaWYgKGxsdm06OmlzYTxsbHZtOjpW ZWN0b3JUeXBlPih2LT5nZXRUeXBlKCkpKQotLSAgICAgICAgaWkgPSBsbHZtOjpJbnNlcnRFbGVt ZW50SW5zdDo6Q3JlYXRlKHYsIGVsdFZhbCwgTExWTUludDMyKGVsdCksIG5hbWUsIGJibG9jayk7 Ci0rICAgICAgICBpaSA9IGxsdm06Okluc2VydEVsZW1lbnRJbnN0OjpDcmVhdGUoCi0rICAgICAg ICAgICAgdiwgZWx0VmFsLCBMTFZNSW50MzIoZWx0KSwKLSsgICAgICAgICAgICBuYW1lLmlzVHJp dmlhbGx5RW1wdHkoKSA/ICgobGx2bTo6VHdpbmUodi0+Z2V0TmFtZSgpKSArICJfaW5zZXJ0XyIp ICsgbGx2bTo6VHdpbmUoZWx0KSkgOiBuYW1lLCBiYmxvY2spOwotICAgICBlbHNlCi0tICAgICAg ICBpaSA9IGxsdm06Okluc2VydFZhbHVlSW5zdDo6Q3JlYXRlKHYsIGVsdFZhbCwgZWx0LCBuYW1l LCBiYmxvY2spOwotKyAgICAgICAgaWkgPSBsbHZtOjpJbnNlcnRWYWx1ZUluc3Q6OkNyZWF0ZSgK LSsgICAgICAgICAgICB2LCBlbHRWYWwsIGVsdCwKLSsgICAgICAgICAgICBuYW1lLmlzVHJpdmlh bGx5RW1wdHkoKSA/ICgobGx2bTo6VHdpbmUodi0+Z2V0TmFtZSgpKSArICJfaW5zZXJ0XyIpICsg bGx2bTo6VHdpbmUoZWx0KSkgOiBuYW1lLCBiYmxvY2spOwotICAgICBBZGREZWJ1Z1BvcyhpaSk7 Ci0gICAgIHJldHVybiBpaTsKLSB9Ci0gCi0tbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRl eHQ6OlNodWZmbGVJbnN0KGxsdm06OlZhbHVlICp2MSwgbGx2bTo6VmFsdWUgKnYyLCBsbHZtOjpW YWx1ZSAqbWFzaywgY29uc3QgY2hhciAqbmFtZSkgewotK2xsdm06OlZhbHVlICpGdW5jdGlvbkVt aXRDb250ZXh0OjpTaHVmZmxlSW5zdChsbHZtOjpWYWx1ZSAqdjEsIGxsdm06OlZhbHVlICp2Miwg bGx2bTo6VmFsdWUgKm1hc2ssCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lKSB7Ci0gICAgIGlmICh2MSA9PSBOVUxM IHx8IHYyID09IE5VTEwgfHwgbWFzayA9PSBOVUxMKSB7Ci0gICAgICAgICBBc3NlcnRQb3MoY3Vy cmVudFBvcywgbS0+ZXJyb3JDb3VudCA+IDApOwotICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAg IH0KLSAKLS0gICAgaWYgKG5hbWUgPT0gTlVMTCkgewotLSAgICAgICAgY2hhciBidWZbMzJdOwot LSAgICAgICAgc25wcmludGYoYnVmLCBzaXplb2YoYnVmKSwgIl9zaHVmZmxlIik7Ci0tICAgICAg ICBuYW1lID0gTExWTUdldE5hbWUodjEsIGJ1Zik7Ci0tICAgIH0KLS0KLS0gICAgbGx2bTo6SW5z dHJ1Y3Rpb24gKmlpID0gbmV3IGxsdm06OlNodWZmbGVWZWN0b3JJbnN0KHYxLCB2MiwgbWFzaywg bmFtZSwgYmJsb2NrKTsKLSsgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmlpID0gbmV3IGxsdm06OlNo dWZmbGVWZWN0b3JJbnN0KAotKyAgICAgICAgdjEsIHYyLCBtYXNrLCBuYW1lLmlzVHJpdmlhbGx5 RW1wdHkoKSA/IChsbHZtOjpUd2luZSh2MS0+Z2V0TmFtZSgpKSArICJfc2h1ZmZsZSIpIDogbmFt ZSwgYmJsb2NrKTsKLSAKLSAgICAgQWRkRGVidWdQb3MoaWkpOwotICAgICByZXR1cm4gaWk7Ci0g fQotIAotLWxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpCcm9hZGNhc3RWYWx1ZShs bHZtOjpWYWx1ZSAqdiwgbGx2bTo6VHlwZSAqdmVjVHlwZSwgY29uc3QgY2hhciAqbmFtZSkgewot K2xsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpCcm9hZGNhc3RWYWx1ZShsbHZtOjpW YWx1ZSAqdiwgbGx2bTo6VHlwZSAqdmVjVHlwZSwgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUpIHsK LSAgICAgaWYgKHYgPT0gTlVMTCB8fCB2ZWNUeXBlID09IE5VTEwpIHsKLSAgICAgICAgIEFzc2Vy dFBvcyhjdXJyZW50UG9zLCBtLT5lcnJvckNvdW50ID4gMCk7Ci0gICAgICAgICByZXR1cm4gTlVM TDsKLUBAIC0zMTQ4LDEyICszMTMzLDYgQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRl eHQ6OkJyb2FkY2FzdFZhbHVlKGxsdm06OlZhbHVlICp2LCBsbHZtOjpUeXBlICp2ZWMKLSAgICAg QXNzZXJ0KHR5ICYmIHR5LT5nZXRWZWN0b3JFbGVtZW50VHlwZSgpID09IHYtPmdldFR5cGUoKSk7 Ci0gI2VuZGlmCi0gCi0tICAgIGlmIChuYW1lID09IE5VTEwpIHsKLS0gICAgICAgIGNoYXIgYnVm WzMyXTsKLS0gICAgICAgIHNucHJpbnRmKGJ1Ziwgc2l6ZW9mKGJ1ZiksICJfYnJvYWRjYXN0Iik7 Ci0tICAgICAgICBuYW1lID0gTExWTUdldE5hbWUodiwgYnVmKTsKLS0gICAgfQotLQotICAgICAv LyBHZW5lcmF0ZSB0aGUgZm9sbG93aW5nIHNlcXVlbmNlOgotICAgICAvLyAgICVuYW1lX2luaXQu aSA9IGluc2VydGVsZW1lbnQgPDQgeCBpMzI+IHVuZGVmLCBpMzIgJXZhbCwgaTMyIDAKLSAgICAg Ly8gICAlbmFtZS5pID0gc2h1ZmZsZXZlY3RvciA8NCB4IGkzMj4gJW5hbWVfaW5pdC5pLCA8NCB4 IGkzMj4gdW5kZWYsCi1AQCAtMzE2Myw3ICszMTQyLDcgQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9u RW1pdENvbnRleHQ6OkJyb2FkY2FzdFZhbHVlKGxsdm06OlZhbHVlICp2LCBsbHZtOjpUeXBlICp2 ZWMKLSAgICAgbGx2bTo6VmFsdWUgKnVuZGVmMiA9IGxsdm06OlVuZGVmVmFsdWU6OmdldCh2ZWNU eXBlKTsKLSAKLSAgICAgLy8gSW5zZXJ0RWxlbWVudAotLSAgICBsbHZtOjpUd2luZSB0dyA9IGxs dm06OlR3aW5lKG5hbWUpICsgbGx2bTo6VHdpbmUoIl9pbml0Iik7Ci0rICAgIGxsdm06OlR3aW5l IHR3ID0gbmFtZS5pc1RyaXZpYWxseUVtcHR5KCkgPyAobGx2bTo6VHdpbmUodi0+Z2V0TmFtZSgp KSArICJfYnJvYWRjYXN0IikgOiBuYW1lICsgbGx2bTo6VHdpbmUoIl9pbml0Iik7Ci0gICAgIGxs dm06OlZhbHVlICppbnNlcnQgPSBJbnNlcnRJbnN0KHVuZGVmMSwgdiwgMCwgdHcuc3RyKCkuY19z dHIoKSk7Ci0gCi0gICAgIC8vIFNodWZmbGVWZWN0b3IKLUBAIC0zMTc5LDI4ICszMTU4LDI3IEBA IGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpCcm9hZGNhc3RWYWx1ZShsbHZtOjpW YWx1ZSAqdiwgbGx2bTo6VHlwZSAqdmVjCi0gICAgICAgICBsbHZtOjpDb25zdGFudFZlY3Rvcjo6 Z2V0U3BsYXQobGx2bTo6RWxlbWVudENvdW50OjpnZXQoc3RhdGljX2Nhc3Q8dW5zaWduZWQgaW50 Pih0eS0+Z2V0TnVtRWxlbWVudHMoKSksIGZhbHNlKSwKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBsbHZtOjpDb25zdGFudDo6Z2V0TnVsbFZhbHVlKGxsdm06OlR5cGU6 OmdldEludDMyVHkoKmctPmN0eCkpKTsKLSAjZW5kaWYKLS0gICAgbGx2bTo6VmFsdWUgKnJldCA9 IFNodWZmbGVJbnN0KGluc2VydCwgdW5kZWYyLCB6ZXJvVmVjLCBuYW1lKTsKLSsgICAgbGx2bTo6 VmFsdWUgKnJldCA9IFNodWZmbGVJbnN0KGluc2VydCwgdW5kZWYyLCB6ZXJvVmVjLAotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZS5pc1RyaXZpYWxseUVtcHR5KCkgPyAo bGx2bTo6VHdpbmUodi0+Z2V0TmFtZSgpKSArICJfYnJvYWRjYXN0IikgOiBuYW1lKTsKLSAKLSAg ICAgcmV0dXJuIHJldDsKLSB9Ci0gCi0tbGx2bTo6UEhJTm9kZSAqRnVuY3Rpb25FbWl0Q29udGV4 dDo6UGhpTm9kZShsbHZtOjpUeXBlICp0eXBlLCBpbnQgY291bnQsIGNvbnN0IGNoYXIgKm5hbWUp IHsKLS0gICAgbGx2bTo6UEhJTm9kZSAqcG4gPSBsbHZtOjpQSElOb2RlOjpDcmVhdGUodHlwZSwg Y291bnQsIG5hbWUgPyBuYW1lIDogInBoaSIsIGJibG9jayk7Ci0rbGx2bTo6UEhJTm9kZSAqRnVu Y3Rpb25FbWl0Q29udGV4dDo6UGhpTm9kZShsbHZtOjpUeXBlICp0eXBlLCBpbnQgY291bnQsIGNv bnN0IGxsdm06OlR3aW5lICZuYW1lKSB7Ci0rICAgIGxsdm06OlBISU5vZGUgKnBuID0gbGx2bTo6 UEhJTm9kZTo6Q3JlYXRlKHR5cGUsIGNvdW50LCBuYW1lLmlzVHJpdmlhbGx5RW1wdHkoKSA/ICJw aGkiIDogbmFtZSwgYmJsb2NrKTsKLSAgICAgQWRkRGVidWdQb3MocG4pOwotICAgICByZXR1cm4g cG47Ci0gfQotIAotIGxsdm06Okluc3RydWN0aW9uICpGdW5jdGlvbkVtaXRDb250ZXh0OjpTZWxl Y3RJbnN0KGxsdm06OlZhbHVlICp0ZXN0LCBsbHZtOjpWYWx1ZSAqdmFsMCwgbGx2bTo6VmFsdWUg KnZhbDEsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgY29uc3QgY2hhciAqbmFtZSkgewotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lKSB7Ci0gICAgIGlmICh0 ZXN0ID09IE5VTEwgfHwgdmFsMCA9PSBOVUxMIHx8IHZhbDEgPT0gTlVMTCkgewotICAgICAgICAg QXNzZXJ0UG9zKGN1cnJlbnRQb3MsIG0tPmVycm9yQ291bnQgPiAwKTsKLSAgICAgICAgIHJldHVy biBOVUxMOwotICAgICB9Ci0gCi0tICAgIGlmIChuYW1lID09IE5VTEwpCi0tICAgICAgICBuYW1l ID0gTExWTUdldE5hbWUodGVzdCwgIl9zZWxlY3QiKTsKLS0KLS0gICAgbGx2bTo6SW5zdHJ1Y3Rp b24gKmluc3QgPSBsbHZtOjpTZWxlY3RJbnN0OjpDcmVhdGUodGVzdCwgdmFsMCwgdmFsMSwgbmFt ZSwgYmJsb2NrKTsKLSsgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmluc3QgPSBsbHZtOjpTZWxlY3RJ bnN0OjpDcmVhdGUoCi0rICAgICAgICB0ZXN0LCB2YWwwLCB2YWwxLCBuYW1lLmlzVHJpdmlhbGx5 RW1wdHkoKSA/IChsbHZtOjpUd2luZSh0ZXN0LT5nZXROYW1lKCkpICsgIl9zZWxlY3QiKSA6IG5h bWUsIGJibG9jayk7Ci0gICAgIEFkZERlYnVnUG9zKGluc3QpOwotICAgICByZXR1cm4gaW5zdDsK LSB9Ci1AQCAtMzIyNiw3ICszMjA0LDcgQEAgc3RhdGljIHVuc2lnbmVkIGludCBsQ2FsbGVlQXJn Q291bnQobGx2bTo6VmFsdWUgKmNhbGxlZSwgY29uc3QgRnVuY3Rpb25UeXBlICpmdW4KLSB9Ci0g Ci0gbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkNhbGxJbnN0KGxsdm06OlZhbHVl ICpmdW5jLCBjb25zdCBGdW5jdGlvblR5cGUgKmZ1bmNUeXBlLAotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdGQ6OnZlY3RvcjxsbHZtOjpWYWx1ZSAq PiAmYXJncywgY29uc3QgY2hhciAqbmFtZSkgewotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBjb25zdCBzdGQ6OnZlY3RvcjxsbHZtOjpWYWx1ZSAqPiAmYXJncywg Y29uc3QgbGx2bTo6VHdpbmUgJm5hbWUpIHsKLSAgICAgaWYgKGZ1bmMgPT0gTlVMTCkgewotICAg ICAgICAgQXNzZXJ0UG9zKGN1cnJlbnRQb3MsIG0tPmVycm9yQ291bnQgPiAwKTsKLSAgICAgICAg IHJldHVybiBOVUxMOwotQEAgLTMyNTgsOSArMzIzNiw5IEBAIGxsdm06OlZhbHVlICpGdW5jdGlv bkVtaXRDb250ZXh0OjpDYWxsSW5zdChsbHZtOjpWYWx1ZSAqZnVuYywgY29uc3QgRnVuY3Rpb25U eXBlCi0gI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMV8wCi0gICAgICAgICBs bHZtOjpQb2ludGVyVHlwZSAqZnVuY19wdHJfdHlwZSA9IGxsdm06OmR5bl9jYXN0PGxsdm06OlBv aW50ZXJUeXBlPihmdW5jLT5nZXRUeXBlKCkpOwotICAgICAgICAgbGx2bTo6RnVuY3Rpb25UeXBl ICpmdW5jX3R5cGUgPSBsbHZtOjpkeW5fY2FzdDxsbHZtOjpGdW5jdGlvblR5cGU+KGZ1bmNfcHRy X3R5cGUtPmdldFBvaW50ZXJFbGVtZW50VHlwZSgpKTsKLS0gICAgICAgIGxsdm06OkNhbGxJbnN0 ICpjYWxsaW5zdCA9IGxsdm06OkNhbGxJbnN0OjpDcmVhdGUoZnVuY190eXBlLCBmdW5jLCBhcmdW YWxzLCBuYW1lID8gbmFtZSA6ICIiLCBiYmxvY2spOwotKyAgICAgICAgbGx2bTo6Q2FsbEluc3Qg KmNhbGxpbnN0ID0gbGx2bTo6Q2FsbEluc3Q6OkNyZWF0ZShmdW5jX3R5cGUsIGZ1bmMsIGFyZ1Zh bHMsIG5hbWUsIGJibG9jayk7Ci0gI2Vsc2UKLS0gICAgICAgIGxsdm06OkNhbGxJbnN0ICpjYWxs aW5zdCA9IGxsdm06OkNhbGxJbnN0OjpDcmVhdGUoZnVuYywgYXJnVmFscywgbmFtZSA/IG5hbWUg OiAiIiwgYmJsb2NrKTsKLSsgICAgICAgIGxsdm06OkNhbGxJbnN0ICpjYWxsaW5zdCA9IGxsdm06 OkNhbGxJbnN0OjpDcmVhdGUoZnVuYywgYXJnVmFscywgbmFtZSwgYmJsb2NrKTsKLSAjZW5kaWYK LSAKLSAgICAgICAgIC8vIFdlIGNvdWxkIGJlIGRlYWxpbmcgd2l0aCBhIGZ1bmN0aW9uIHBvaW50 ZXIgaW4gd2hpY2ggY2FzZSB0aGlzIHdpbGwgbm90IGJlIGEgJ2xsdm06OkZ1bmN0aW9uJy4KLUBA IC0zNDY0LDE0ICszNDQyLDE0IEBAIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpD YWxsSW5zdChsbHZtOjpWYWx1ZSAqZnVuYywgY29uc3QgRnVuY3Rpb25UeXBlCi0gfQotIAotIGxs dm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpDYWxsSW5zdChsbHZtOjpWYWx1ZSAqZnVu YywgY29uc3QgRnVuY3Rpb25UeXBlICpmdW5jVHlwZSwgbGx2bTo6VmFsdWUgKmFyZywKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqbmFtZSkg ewotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBsbHZt OjpUd2luZSAmbmFtZSkgewotICAgICBzdGQ6OnZlY3RvcjxsbHZtOjpWYWx1ZSAqPiBhcmdzOwot ICAgICBhcmdzLnB1c2hfYmFjayhhcmcpOwotICAgICByZXR1cm4gQ2FsbEluc3QoZnVuYywgZnVu Y1R5cGUsIGFyZ3MsIG5hbWUpOwotIH0KLSAKLSBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29u dGV4dDo6Q2FsbEluc3QobGx2bTo6VmFsdWUgKmZ1bmMsIGNvbnN0IEZ1bmN0aW9uVHlwZSAqZnVu Y1R5cGUsIGxsdm06OlZhbHVlICphcmcwLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBsbHZtOjpWYWx1ZSAqYXJnMSwgY29uc3QgY2hhciAqbmFtZSkgewotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpWYWx1ZSAqYXJn MSwgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUpIHsKLSAgICAgc3RkOjp2ZWN0b3I8bGx2bTo6VmFs dWUgKj4gYXJnczsKLSAgICAgYXJncy5wdXNoX2JhY2soYXJnMCk7Ci0gICAgIGFyZ3MucHVzaF9i YWNrKGFyZzEpOwotZGlmZiAtLWdpdCBhL3NyYy9jdHguaCBiL3NyYy9jdHguaAotaW5kZXggNmU1 YWQ3NGJhLi40OGIzYmI4MjYgMTAwNjQ0Ci0tLS0gYS9zcmMvY3R4LmgKLSsrKyBiL3NyYy9jdHgu aAotQEAgLTMwMiw3ICszMDIsNyBAQCBjbGFzcyBGdW5jdGlvbkVtaXRDb250ZXh0IHsKLSAgICAg bGx2bTo6VmFsdWUgKkdldFN0cmluZ1B0cihjb25zdCBzdGQ6OnN0cmluZyAmc3RyKTsKLSAKLSAg ICAgLyoqIENyZWF0ZSBhIG5ldyBiYXNpYyBibG9jayB3aXRoIGdpdmVuIG5hbWUgKi8KLS0gICAg bGx2bTo6QmFzaWNCbG9jayAqQ3JlYXRlQmFzaWNCbG9jayhjb25zdCBjaGFyICpuYW1lLCBsbHZt OjpCYXNpY0Jsb2NrICppbnNlcnRBZnRlciA9IE5VTEwpOwotKyAgICBsbHZtOjpCYXNpY0Jsb2Nr ICpDcmVhdGVCYXNpY0Jsb2NrKGNvbnN0IGxsdm06OlR3aW5lICZuYW1lLCBsbHZtOjpCYXNpY0Js b2NrICppbnNlcnRBZnRlciA9IE5VTEwpOwotIAotICAgICAvKiogR2l2ZW4gYSB2ZWN0b3Igd2l0 aCBlbGVtZW50IHR5cGUgaTEsIHJldHVybiBhIHZlY3RvciBvZiB0eXBlCi0gICAgICAgICBMTFZN VHlwZXM6OkJvb2xWZWN0b3JUeXBlLiAgVGhpcyBtZXRob2QgaGFuZGxlcyB0aGUgY29udmVyc2lv biBmb3IKLUBAIC0zODAsMzMgKzM4MCwzMyBAQCBjbGFzcyBGdW5jdGlvbkVtaXRDb250ZXh0IHsK LSAgICAgICAgIHRoaXMgYWxzbyBoYW5kbGVzIGFwcGx5aW5nIHRoZSBnaXZlbiBvcGVyYXRpb24g dG8gdGhlIHZlY3RvcgotICAgICAgICAgZWxlbWVudHMuICovCi0gICAgIGxsdm06OlZhbHVlICpC aW5hcnlPcGVyYXRvcihsbHZtOjpJbnN0cnVjdGlvbjo6QmluYXJ5T3BzIGluc3QsIGxsdm06OlZh bHVlICp2MCwgbGx2bTo6VmFsdWUgKnYxLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgY29uc3QgY2hhciAqbmFtZSA9IE5VTEwpOwotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUgPSAiIik7Ci0gCi0gICAgIC8qKiBFbWl0IHRo ZSAibm90IiBvcGVyYXRvci4gIExpa2UgQmluYXJ5T3BlcmF0b3IoKSwgdGhpcyBhbHNvIGhhbmRs ZXMKLSAgICAgICAgIGEgVmVjdG9yVHlwZS1iYXNlZCBvcGVyYW5kLiAqLwotLSAgICBsbHZtOjpW YWx1ZSAqTm90T3BlcmF0b3IobGx2bTo6VmFsdWUgKnYsIGNvbnN0IGNoYXIgKm5hbWUgPSBOVUxM KTsKLSsgICAgbGx2bTo6VmFsdWUgKk5vdE9wZXJhdG9yKGxsdm06OlZhbHVlICp2LCBjb25zdCBs bHZtOjpUd2luZSAmbmFtZSA9ICIiKTsKLSAKLSAgICAgLyoqIEVtaXQgYSBjb21wYXJpc29uIGlu c3RydWN0aW9uLiAgSWYgdGhlIG9wZXJhbmRzIGFyZSBWZWN0b3JUeXBlcywKLSAgICAgICAgIHRo ZW4gYSB2YWx1ZSBmb3IgdGhlIGNvcnJlc3BvbmRpbmcgYm9vbGVhbiBWZWN0b3JUeXBlIGlzCi0g ICAgICAgICByZXR1cm5lZC4gKi8KLSAgICAgbGx2bTo6VmFsdWUgKkNtcEluc3QobGx2bTo6SW5z dHJ1Y3Rpb246Ok90aGVyT3BzIGluc3QsIGxsdm06OkNtcEluc3Q6OlByZWRpY2F0ZSBwcmVkLCBs bHZtOjpWYWx1ZSAqdjAsCi0tICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06OlZhbHVlICp2 MSwgY29uc3QgY2hhciAqbmFtZSA9IE5VTEwpOwotKyAgICAgICAgICAgICAgICAgICAgICAgICBs bHZtOjpWYWx1ZSAqdjEsIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lID0gIiIpOwotIAotICAgICAv KiogR2l2ZW4gYSBzY2FsYXIgdmFsdWUsIHJldHVybiBhIHZlY3RvciBvZiB0aGUgc2FtZSB0eXBl IChvciBhbgotICAgICAgICAgYXJyYXksIGZvciBwb2ludGVyIHR5cGVzKS4gKi8KLS0gICAgbGx2 bTo6VmFsdWUgKlNtZWFyVW5pZm9ybShsbHZtOjpWYWx1ZSAqdmFsdWUsIGNvbnN0IGNoYXIgKm5h bWUgPSBOVUxMKTsKLSsgICAgbGx2bTo6VmFsdWUgKlNtZWFyVW5pZm9ybShsbHZtOjpWYWx1ZSAq dmFsdWUsIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lID0gIiIpOwotIAotLSAgICBsbHZtOjpWYWx1 ZSAqQml0Q2FzdEluc3QobGx2bTo6VmFsdWUgKnZhbHVlLCBsbHZtOjpUeXBlICp0eXBlLCBjb25z dCBjaGFyICpuYW1lID0gTlVMTCk7Ci0tICAgIGxsdm06OlZhbHVlICpQdHJUb0ludEluc3QobGx2 bTo6VmFsdWUgKnZhbHVlLCBjb25zdCBjaGFyICpuYW1lID0gTlVMTCk7Ci0tICAgIGxsdm06OlZh bHVlICpQdHJUb0ludEluc3QobGx2bTo6VmFsdWUgKnZhbHVlLCBsbHZtOjpUeXBlICp0eXBlLCBj b25zdCBjaGFyICpuYW1lID0gTlVMTCk7Ci0tICAgIGxsdm06OlZhbHVlICpJbnRUb1B0ckluc3Qo bGx2bTo6VmFsdWUgKnZhbHVlLCBsbHZtOjpUeXBlICp0eXBlLCBjb25zdCBjaGFyICpuYW1lID0g TlVMTCk7Ci0rICAgIGxsdm06OlZhbHVlICpCaXRDYXN0SW5zdChsbHZtOjpWYWx1ZSAqdmFsdWUs IGxsdm06OlR5cGUgKnR5cGUsIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lID0gIiIpOwotKyAgICBs bHZtOjpWYWx1ZSAqUHRyVG9JbnRJbnN0KGxsdm06OlZhbHVlICp2YWx1ZSwgY29uc3QgbGx2bTo6 VHdpbmUgJm5hbWUgPSAiIik7Ci0rICAgIGxsdm06OlZhbHVlICpQdHJUb0ludEluc3QobGx2bTo6 VmFsdWUgKnZhbHVlLCBsbHZtOjpUeXBlICp0eXBlLCBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSA9 ICIiKTsKLSsgICAgbGx2bTo6VmFsdWUgKkludFRvUHRySW5zdChsbHZtOjpWYWx1ZSAqdmFsdWUs IGxsdm06OlR5cGUgKnR5cGUsIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lID0gIiIpOwotIAotLSAg ICBsbHZtOjpJbnN0cnVjdGlvbiAqVHJ1bmNJbnN0KGxsdm06OlZhbHVlICp2YWx1ZSwgbGx2bTo6 VHlwZSAqdHlwZSwgY29uc3QgY2hhciAqbmFtZSA9IE5VTEwpOwotKyAgICBsbHZtOjpJbnN0cnVj dGlvbiAqVHJ1bmNJbnN0KGxsdm06OlZhbHVlICp2YWx1ZSwgbGx2bTo6VHlwZSAqdHlwZSwgY29u c3QgbGx2bTo6VHdpbmUgJm5hbWUgPSAiIik7Ci0gICAgIGxsdm06Okluc3RydWN0aW9uICpDYXN0 SW5zdChsbHZtOjpJbnN0cnVjdGlvbjo6Q2FzdE9wcyBvcCwgbGx2bTo6VmFsdWUgKnZhbHVlLCBs bHZtOjpUeXBlICp0eXBlLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg Y2hhciAqbmFtZSA9IE5VTEwpOwotLSAgICBsbHZtOjpJbnN0cnVjdGlvbiAqRlBDYXN0SW5zdChs bHZtOjpWYWx1ZSAqdmFsdWUsIGxsdm06OlR5cGUgKnR5cGUsIGNvbnN0IGNoYXIgKm5hbWUgPSBO VUxMKTsKLS0gICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKlNFeHRJbnN0KGxsdm06OlZhbHVlICp2YWx1 ZSwgbGx2bTo6VHlwZSAqdHlwZSwgY29uc3QgY2hhciAqbmFtZSA9IE5VTEwpOwotLSAgICBsbHZt OjpJbnN0cnVjdGlvbiAqWkV4dEluc3QobGx2bTo6VmFsdWUgKnZhbHVlLCBsbHZtOjpUeXBlICp0 eXBlLCBjb25zdCBjaGFyICpuYW1lID0gTlVMTCk7Ci0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSA9ICIiKTsKLSsgICAgbGx2bTo6SW5zdHJ1 Y3Rpb24gKkZQQ2FzdEluc3QobGx2bTo6VmFsdWUgKnZhbHVlLCBsbHZtOjpUeXBlICp0eXBlLCBj b25zdCBsbHZtOjpUd2luZSAmbmFtZSA9ICIiKTsKLSsgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKlNF eHRJbnN0KGxsdm06OlZhbHVlICp2YWx1ZSwgbGx2bTo6VHlwZSAqdHlwZSwgY29uc3QgbGx2bTo6 VHdpbmUgJm5hbWUgPSAiIik7Ci0rICAgIGxsdm06Okluc3RydWN0aW9uICpaRXh0SW5zdChsbHZt OjpWYWx1ZSAqdmFsdWUsIGxsdm06OlR5cGUgKnR5cGUsIGNvbnN0IGxsdm06OlR3aW5lICZuYW1l ID0gIiIpOwotIAotICAgICAvKiogR2l2ZW4gdHdvIGludGVnZXItdHlwZWQgdmFsdWVzIChidXQg cG9zc2libHkgb25lIHZlY3RvciBhbmQgdGhlCi0gICAgICAgICBvdGhlciBub3QsIGFuZCBvciBv ZiBwb3NzaWJseS1kaWZmZXJlbnQgYml0LXdpZHRocyksIHVwZGF0ZSB0aGVpcgotQEAgLTQyNiw5 ICs0MjYsOSBAQCBjbGFzcyBGdW5jdGlvbkVtaXRDb250ZXh0IHsKLSAgICAgICAgIHBvaW50ZXJz LiAgVGhlIHVuZGVybHlpbmcgdHlwZSBvZiB0aGUgYmFzZSBwb2ludGVyIG11c3QgYmUgcHJvdmlk ZWQKLSAgICAgICAgIHZpYSB0aGUgcHRyVHlwZSBwYXJhbWV0ZXIgKi8KLSAgICAgbGx2bTo6VmFs dWUgKkdldEVsZW1lbnRQdHJJbnN0KGxsdm06OlZhbHVlICpiYXNlUHRyLCBsbHZtOjpWYWx1ZSAq aW5kZXgsIGNvbnN0IFR5cGUgKnB0clR5cGUsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBjb25zdCBjaGFyICpuYW1lID0gTlVMTCk7Ci0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSA9ICIiKTsKLSAgICAgbGx2bTo6 VmFsdWUgKkdldEVsZW1lbnRQdHJJbnN0KGxsdm06OlZhbHVlICpiYXNlUHRyLCBsbHZtOjpWYWx1 ZSAqaW5kZXgwLCBsbHZtOjpWYWx1ZSAqaW5kZXgxLCBjb25zdCBUeXBlICpwdHJUeXBlLAotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqbmFtZSA9IE5VTEwp OwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGx2bTo6VHdpbmUg Jm5hbWUgPSAiIik7Ci0gCi0gICAgIC8qKiBUaGlzIG1ldGhvZCByZXR1cm5zIGEgbmV3IHBvaW50 ZXIgdGhhdCByZXByZXNlbnRzIG9mZnNldHRpbmcgdGhlCi0gICAgICAgICBnaXZlbiBiYXNlIHBv aW50ZXIgdG8gcG9pbnQgYXQgdGhlIGdpdmVuIGVsZW1lbnQgbnVtYmVyIG9mIHRoZQotQEAgLTQz NiwyNiArNDM2LDI2IEBAIGNsYXNzIEZ1bmN0aW9uRW1pdENvbnRleHQgewotICAgICAgICAgcG9p bnRlciBtdXN0IGJlIGEgcG9pbnRlciB0byBhIHN0cnVjdHVyZSB0eXBlLiAgVGhlIHB0clR5cGUg Z2l2ZXMKLSAgICAgICAgIHRoZSB0eXBlIG9mIHRoZSBwb2ludGVyLCB0aG91Z2ggaXQgbWF5IGJl IE5VTEwgaWYgdGhlIGJhc2UgcG9pbnRlcgotICAgICAgICAgaXMgdW5pZm9ybS4gKi8KLS0gICAg bGx2bTo6VmFsdWUgKkFkZEVsZW1lbnRPZmZzZXQobGx2bTo6VmFsdWUgKmJhc2VQdHIsIGludCBl bGVtZW50TnVtLCBjb25zdCBUeXBlICpwdHJUeXBlLCBjb25zdCBjaGFyICpuYW1lID0gTlVMTCwK LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgUG9pbnRlclR5cGUgKipy ZXN1bHRQdHJUeXBlID0gTlVMTCk7Ci0rICAgIGxsdm06OlZhbHVlICpBZGRFbGVtZW50T2Zmc2V0 KGxsdm06OlZhbHVlICpiYXNlUHRyLCBpbnQgZWxlbWVudE51bSwgY29uc3QgVHlwZSAqcHRyVHlw ZSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGx2bTo6VHdpbmUg Jm5hbWUgPSAiIiwgY29uc3QgUG9pbnRlclR5cGUgKipyZXN1bHRQdHJUeXBlID0gTlVMTCk7Ci0g Ci0gICAgIC8qKiBCb29sIGlzIHN0b3JlZCBhcyBpOCBhbmQgPFdJRFRIIHggaTg+IGJ1dCByZXBy ZXNlbnRlZCBpbiBJUiBhcyBpMSBhbmQKLSAgICAgICogPFdJRFRIIHggTUFTSz4uIFRoaXMgaXMg YSBoZWxwZXIgZnVuY3Rpb24gdG8gbWF0Y2ggYm9vbCBzaXplIGF0IHN0b3JhZ2UKLSAgICAgICog aW50ZXJmYWNlLiAqLwotLSAgICBsbHZtOjpWYWx1ZSAqU3dpdGNoQm9vbFNpemUobGx2bTo6VmFs dWUgKnZhbHVlLCBsbHZtOjpUeXBlICp0b1R5cGUsIGNvbnN0IGNoYXIgKm5hbWUgPSBOVUxMKTsK LSsgICAgbGx2bTo6VmFsdWUgKlN3aXRjaEJvb2xTaXplKGxsdm06OlZhbHVlICp2YWx1ZSwgbGx2 bTo6VHlwZSAqdG9UeXBlLCBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSA9ICIiKTsKLSAgICAgLyoq IExvYWQgZnJvbSB0aGUgbWVtb3J5IGxvY2F0aW9uKHMpIGdpdmVuIGJ5IGx2YWx1ZSwgdXNpbmcg dGhlIGdpdmVuCi0gICAgICAgICBtYXNrLiAgVGhlIGx2YWx1ZSBtYXkgYmUgdmFyeWluZywgaW4g d2hpY2ggY2FzZSB0aGlzIGNvcnJlc3BvbmRzIHRvCi0gICAgICAgICBhIGdhdGhlciBmcm9tIHRo ZSBtdWx0aXBsZSBtZW1vcnkgbG9jYXRpb25zIGdpdmVuIGJ5IHRoZSBhcnJheSBvZgotICAgICAg ICAgcG9pbnRlciB2YWx1ZXMgZ2l2ZW4gYnkgdGhlIGx2YWx1ZS4gIElmIHRoZSBsdmFsdWUgaXMg bm90IHZhcnlpbmcsCi0gICAgICAgICB0aGVuIGJvdGggdGhlIG1hc2sgcG9pbnRlciBhbmQgdGhl IHR5cGUgcG9pbnRlciBtYXkgYmUgTlVMTC4gKi8KLS0gICAgbGx2bTo6VmFsdWUgKkxvYWRJbnN0 KGxsdm06OlZhbHVlICpwdHIsIGxsdm06OlZhbHVlICptYXNrLCBjb25zdCBUeXBlICpwdHJUeXBl LCBjb25zdCBjaGFyICpuYW1lID0gTlVMTCwKLSsgICAgbGx2bTo6VmFsdWUgKkxvYWRJbnN0KGxs dm06OlZhbHVlICpwdHIsIGxsdm06OlZhbHVlICptYXNrLCBjb25zdCBUeXBlICpwdHJUeXBlLCBj b25zdCBsbHZtOjpUd2luZSAmbmFtZSA9ICIiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg Ym9vbCBvbmVfZWxlbSA9IGZhbHNlKTsKLSAKLSAgICAgLyogTG9hZCBmcm9tIG1lbW9yeSBsb2Nh dGlvbihzKSBnaXZlbi4KLSAgICAgICogJ3R5cGUnIG5lZWRzIHRvIGJlIHByb3ZpZGVkIHdoZW4g c3RvcmFnZSB0eXBlIGlzIGRpZmZlcmVudCBmcm9tIElSIHR5cGUuIEZvciBleGFtcGxlLAotICAg ICAgKiAndW5mb3JtIGJvb2wnIGlzICdpMScgaW4gSVIgYnV0IHN0b3JlZCBhcyAnaTgnLgotICAg ICAgKiBPdGhlcndpc2UgbGVhdmUgdGhpcyBhcyBOVUxMLiAqLwotLSAgICBsbHZtOjpWYWx1ZSAq TG9hZEluc3QobGx2bTo6VmFsdWUgKnB0ciwgY29uc3QgVHlwZSAqdHlwZSA9IE5VTEwsIGNvbnN0 IGNoYXIgKm5hbWUgPSBOVUxMKTsKLSsgICAgbGx2bTo6VmFsdWUgKkxvYWRJbnN0KGxsdm06OlZh bHVlICpwdHIsIGNvbnN0IFR5cGUgKnR5cGUgPSBOVUxMLCBjb25zdCBsbHZtOjpUd2luZSAmbmFt ZSA9ICIiKTsKLSAKLSAgICAgLyoqIEVtaXRzIGFuIGFsbG9jYSBpbnN0cnVjdGlvbiB0byBhbGxv Y2F0ZSBzdGFjayBzdG9yYWdlIGZvciB0aGUgZ2l2ZW4KLSAgICAgICAgIHR5cGUuICBJZiBhIG5v bi16ZXJvIGFsaWdubWVudCBpcyBzcGVjaWZpZWQsIHRoZSBvYmplY3QgaXMgYWxzbwotQEAgLTQ2 Myw3ICs0NjMsOCBAQCBjbGFzcyBGdW5jdGlvbkVtaXRDb250ZXh0IHsKLSAgICAgICAgIGluc3Ry dWN0aW9uIGlzIGFkZGVkIGF0IHRoZSBzdGFydCBvZiB0aGUgZnVuY3Rpb24gaW4gdGhlIGVudHJ5 Ci0gICAgICAgICBiYXNpYyBibG9jazsgaWYgaXQgc2hvdWxkIGJlIGFkZGVkIHRvIHRoZSBjdXJy ZW50IGJhc2ljIGJsb2NrLCB0aGVuCi0gICAgICAgICB0aGUgYXRFbnRyeUJsb2NrIHBhcmFtZXRl ciBzaG91bGQgYmUgZmFsc2UuICovCi0tICAgIGxsdm06OlZhbHVlICpBbGxvY2FJbnN0KGxsdm06 OlR5cGUgKmxsdm1UeXBlLCBjb25zdCBjaGFyICpuYW1lID0gTlVMTCwgaW50IGFsaWduID0gMCwg Ym9vbCBhdEVudHJ5QmxvY2sgPSB0cnVlKTsKLSsgICAgbGx2bTo6VmFsdWUgKkFsbG9jYUluc3Qo bGx2bTo6VHlwZSAqbGx2bVR5cGUsIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lID0gIiIsIGludCBh bGlnbiA9IDAsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgYXRFbnRyeUJsb2Nr ID0gdHJ1ZSk7Ci0gCi0gICAgIC8qKiBFbWl0cyBhbiBhbGxvY2EgaW5zdHJ1Y3Rpb24gdG8gYWxs b2NhdGUgc3RhY2sgc3RvcmFnZSBmb3IgdGhlIGdpdmVuCi0gICAgICAgICB0eXBlLiAgSWYgYSBu b24temVybyBhbGlnbm1lbnQgaXMgc3BlY2lmaWVkLCB0aGUgb2JqZWN0IGlzIGFsc28KLUBAIC00 NzQsNyArNDc1LDcgQEAgY2xhc3MgRnVuY3Rpb25FbWl0Q29udGV4dCB7Ci0gICAgICAgICBUaGlz IGltcGxlbWVudGF0aW9uIGlzIHByZWZlcnJlZCB3aGVuIHBvc3NpYmxlLiBJdCBpcyBuZWVkZWQg d2hlbgotICAgICAgICAgc3RvcmFnZSB0eXBlIGlzIGRpZmZlcmVudCBmcm9tIElSIHR5cGUuIEZv ciBleGFtcGxlLAotICAgICAgICAgJ3VuZm9ybSBib29sJyBpcyAnaTEnIGluIElSIGJ1dCBzdG9y ZWQgYXMgJ2k4Jy4gKi8KLS0gICAgbGx2bTo6VmFsdWUgKkFsbG9jYUluc3QoY29uc3QgVHlwZSAq cHRyVHlwZSwgY29uc3QgY2hhciAqbmFtZSA9IE5VTEwsIGludCBhbGlnbiA9IDAsIGJvb2wgYXRF bnRyeUJsb2NrID0gdHJ1ZSk7Ci0rICAgIGxsdm06OlZhbHVlICpBbGxvY2FJbnN0KGNvbnN0IFR5 cGUgKnB0clR5cGUsIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lID0gIiIsIGludCBhbGlnbiA9IDAs IGJvb2wgYXRFbnRyeUJsb2NrID0gdHJ1ZSk7Ci0gCi0gICAgIC8qKiBTdGFuZGFyZCBzdG9yZSBp bnN0cnVjdGlvbjsgZm9yIHRoaXMgdmFyaWFudCwgdGhlIGx2YWx1ZSBtdXN0IGJlIGEKLSAgICAg ICAgIHNpbmdsZSBwb2ludGVyLCBub3QgYSB2YXJ5aW5nIGx2YWx1ZS4KLUBAIC01MDIsMzkgKzUw Myw0MSBAQCBjbGFzcyBGdW5jdGlvbkVtaXRDb250ZXh0IHsKLSAgICAgLyoqIFRoaXMgY29udmVu aWVuY2UgbWV0aG9kIG1hcHMgdG8gYW4gbGx2bTo6RXh0cmFjdEVsZW1lbnRJbnN0IGlmIHRoZQot ICAgICAgICAgZ2l2ZW4gdmFsdWUgaXMgYSBsbHZtOjpWZWN0b3JUeXBlLCBhbmQgdG8gYW4gbGx2 bTo6RXh0cmFjdFZhbHVlSW5zdAotICAgICAgICAgb3RoZXJ3aXNlLiAqLwotLSAgICBsbHZtOjpW YWx1ZSAqRXh0cmFjdEluc3QobGx2bTo6VmFsdWUgKnYsIGludCBlbHQsIGNvbnN0IGNoYXIgKm5h bWUgPSBOVUxMKTsKLSsgICAgbGx2bTo6VmFsdWUgKkV4dHJhY3RJbnN0KGxsdm06OlZhbHVlICp2 LCBpbnQgZWx0LCBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSA9ICIiKTsKLSAKLSAgICAgLyoqIFRo aXMgY29udmVuaWVuY2UgbWV0aG9kIG1hcHMgdG8gYW4gbGx2bTo6SW5zZXJ0RWxlbWVudEluc3Qg aWYgdGhlCi0gICAgICAgICBnaXZlbiB2YWx1ZSBpcyBhIGxsdm06OlZlY3RvclR5cGUsIGFuZCB0 byBhbiBsbHZtOjpJbnNlcnRWYWx1ZUluc3QKLSAgICAgICAgIG90aGVyd2lzZS4gKi8KLS0gICAg bGx2bTo6VmFsdWUgKkluc2VydEluc3QobGx2bTo6VmFsdWUgKnYsIGxsdm06OlZhbHVlICplbHRW YWwsIGludCBlbHQsIGNvbnN0IGNoYXIgKm5hbWUgPSBOVUxMKTsKLSsgICAgbGx2bTo6VmFsdWUg Kkluc2VydEluc3QobGx2bTo6VmFsdWUgKnYsIGxsdm06OlZhbHVlICplbHRWYWwsIGludCBlbHQs IGNvbnN0IGxsdm06OlR3aW5lICZuYW1lID0gIiIpOwotIAotICAgICAvKiogVGhpcyBjb252ZW5p ZW5jZSBtZXRob2QgbWFwcyB0byBhbiBsbHZtOjpTaHVmZmxlVmVjdG9ySW5zdC4gKi8KLS0gICAg bGx2bTo6VmFsdWUgKlNodWZmbGVJbnN0KGxsdm06OlZhbHVlICp2MSwgbGx2bTo6VmFsdWUgKnYy LCBsbHZtOjpWYWx1ZSAqbWFzaywgY29uc3QgY2hhciAqbmFtZSA9IE5VTEwpOwotKyAgICBsbHZt OjpWYWx1ZSAqU2h1ZmZsZUluc3QobGx2bTo6VmFsdWUgKnYxLCBsbHZtOjpWYWx1ZSAqdjIsIGxs dm06OlZhbHVlICptYXNrLCBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSA9ICIiKTsKLSAKLSAgICAg LyoqIFRoaXMgY29udmVuaWVuY2UgbWV0aG9kIHRvIGdlbmVyYXRlIGJyb2FkY2FzdCBwYXR0ZXJu LiBJdCB0YWtlcyBhIHZhbHVlCi0gICAgICAgICBhbmQgYSB2ZWN0b3IgdHlwZS4gVHlwZSBvZiB0 aGUgdmFsdWUgbXVzdCBtYXRjaCBlbGVtZW50IHR5cGUgb2YgdGhlCi0gICAgICAgICB2ZWN0b3Iu ICovCi0tICAgIGxsdm06OlZhbHVlICpCcm9hZGNhc3RWYWx1ZShsbHZtOjpWYWx1ZSAqdiwgbGx2 bTo6VHlwZSAqdmVjVHlwZSwgY29uc3QgY2hhciAqbmFtZSA9IE5VTEwpOwotKyAgICBsbHZtOjpW YWx1ZSAqQnJvYWRjYXN0VmFsdWUobGx2bTo6VmFsdWUgKnYsIGxsdm06OlR5cGUgKnZlY1R5cGUs IGNvbnN0IGxsdm06OlR3aW5lICZuYW1lID0gIiIpOwotIAotLSAgICBsbHZtOjpQSElOb2RlICpQ aGlOb2RlKGxsdm06OlR5cGUgKnR5cGUsIGludCBjb3VudCwgY29uc3QgY2hhciAqbmFtZSA9IE5V TEwpOwotLSAgICBsbHZtOjpJbnN0cnVjdGlvbiAqU2VsZWN0SW5zdChsbHZtOjpWYWx1ZSAqdGVz dCwgbGx2bTo6VmFsdWUgKnZhbDAsIGxsdm06OlZhbHVlICp2YWwxLCBjb25zdCBjaGFyICpuYW1l ID0gTlVMTCk7Ci0rICAgIGxsdm06OlBISU5vZGUgKlBoaU5vZGUobGx2bTo6VHlwZSAqdHlwZSwg aW50IGNvdW50LCBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSA9ICIiKTsKLSsgICAgbGx2bTo6SW5z dHJ1Y3Rpb24gKlNlbGVjdEluc3QobGx2bTo6VmFsdWUgKnRlc3QsIGxsdm06OlZhbHVlICp2YWww LCBsbHZtOjpWYWx1ZSAqdmFsMSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y29uc3QgbGx2bTo6VHdpbmUgJm5hbWUgPSAiIik7Ci0gCi0gICAgIC8qKiBFbWl0cyBJUiB0byBk byBhIGZ1bmN0aW9uIGNhbGwgd2l0aCB0aGUgZ2l2ZW4gYXJndW1lbnRzLiAgSWYgdGhlCi0gICAg ICAgICBmdW5jdGlvbiB0eXBlIGlzIGEgdmFyeWluZyBmdW5jdGlvbiBwb2ludGVyIHR5cGUsIGl0 cyBmdWxsIHR5cGUKLSAgICAgICAgIG11c3QgYmUgcHJvdmlkZWQgaW4gZnVuY1R5cGUuICBmdW5j VHlwZSBjYW4gYmUgTlVMTCBpZiBmdW5jIGlzIGEKLSAgICAgICAgIHVuaWZvcm0gZnVuY3Rpb24g cG9pbnRlci4gKi8KLSAgICAgbGx2bTo6VmFsdWUgKkNhbGxJbnN0KGxsdm06OlZhbHVlICpmdW5j LCBjb25zdCBGdW5jdGlvblR5cGUgKmZ1bmNUeXBlLCBjb25zdCBzdGQ6OnZlY3RvcjxsbHZtOjpW YWx1ZSAqPiAmYXJncywKLS0gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKm5h bWUgPSBOVUxMKTsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGxsdm06OlR3aW5l ICZuYW1lID0gIiIpOwotIAotICAgICAvKiogVGhpcyBpcyBhIGNvbnZlbmllbmNlIG1ldGhvZCB0 aGF0IGlzc3VlcyBhIGNhbGwgaW5zdHJ1Y3Rpb24gdG8gYQotICAgICAgICAgZnVuY3Rpb24gdGhh dCB0YWtlcyBqdXN0IGEgc2luZ2xlIGFyZ3VtZW50LiAqLwotLSAgICBsbHZtOjpWYWx1ZSAqQ2Fs bEluc3QobGx2bTo6VmFsdWUgKmZ1bmMsIGNvbnN0IEZ1bmN0aW9uVHlwZSAqZnVuY1R5cGUsIGxs dm06OlZhbHVlICphcmcsIGNvbnN0IGNoYXIgKm5hbWUgPSBOVUxMKTsKLSsgICAgbGx2bTo6VmFs dWUgKkNhbGxJbnN0KGxsdm06OlZhbHVlICpmdW5jLCBjb25zdCBGdW5jdGlvblR5cGUgKmZ1bmNU eXBlLCBsbHZtOjpWYWx1ZSAqYXJnLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg bGx2bTo6VHdpbmUgJm5hbWUgPSAiIik7Ci0gCi0gICAgIC8qKiBUaGlzIGlzIGEgY29udmVuaWVu Y2UgbWV0aG9kIHRoYXQgaXNzdWVzIGEgY2FsbCBpbnN0cnVjdGlvbiB0byBhCi0gICAgICAgICBm dW5jdGlvbiB0aGF0IHRha2VzIHR3byBhcmd1bWVudHMuICovCi0gICAgIGxsdm06OlZhbHVlICpD YWxsSW5zdChsbHZtOjpWYWx1ZSAqZnVuYywgY29uc3QgRnVuY3Rpb25UeXBlICpmdW5jVHlwZSwg bGx2bTo6VmFsdWUgKmFyZzAsIGxsdm06OlZhbHVlICphcmcxLAotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgY29uc3QgY2hhciAqbmFtZSA9IE5VTEwpOwotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUgPSAiIik7Ci0gCi0gICAgIC8qKiBMYXVuY2gg YW4gYXN5bmNocm9ub3VzIHRhc2sgdG8gcnVuIHRoZSBnaXZlbiBmdW5jdGlvbiwgcGFzc2luZyBp dAotICAgICAgICAgaGUgZ2l2ZW4gYXJndW1lbnQgdmFsdWVzLiAqLwotQEAgLTc1Niw5ICs3NTks MTAgQEAgY2xhc3MgRnVuY3Rpb25FbWl0Q29udGV4dCB7Ci0gICAgIHZvaWQgbWFza2VkU3RvcmUo bGx2bTo6VmFsdWUgKnZhbHVlLCBsbHZtOjpWYWx1ZSAqcHRyLCBjb25zdCBUeXBlICpwdHJUeXBl LCBsbHZtOjpWYWx1ZSAqbWFzayk7Ci0gICAgIHZvaWQgc3RvcmVVbmlmb3JtVG9TT0EobGx2bTo6 VmFsdWUgKnZhbHVlLCBsbHZtOjpWYWx1ZSAqcHRyLCBsbHZtOjpWYWx1ZSAqbWFzaywgY29uc3Qg VHlwZSAqdmFsdWVUeXBlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFBvaW50 ZXJUeXBlICpwdHJUeXBlKTsKLS0gICAgbGx2bTo6VmFsdWUgKmxvYWRVbmlmb3JtRnJvbVNPQShs bHZtOjpWYWx1ZSAqcHRyLCBsbHZtOjpWYWx1ZSAqbWFzaywgY29uc3QgUG9pbnRlclR5cGUgKnB0 clR5cGUsIGNvbnN0IGNoYXIgKm5hbWUpOwotKyAgICBsbHZtOjpWYWx1ZSAqbG9hZFVuaWZvcm1G cm9tU09BKGxsdm06OlZhbHVlICpwdHIsIGxsdm06OlZhbHVlICptYXNrLCBjb25zdCBQb2ludGVy VHlwZSAqcHRyVHlwZSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z dCBsbHZtOjpUd2luZSAmbmFtZSA9ICIiKTsKLSAKLS0gICAgbGx2bTo6VmFsdWUgKmdhdGhlcihs bHZtOjpWYWx1ZSAqcHRyLCBjb25zdCBQb2ludGVyVHlwZSAqcHRyVHlwZSwgbGx2bTo6VmFsdWUg Km1hc2ssIGNvbnN0IGNoYXIgKm5hbWUpOwotKyAgICBsbHZtOjpWYWx1ZSAqZ2F0aGVyKGxsdm06 OlZhbHVlICpwdHIsIGNvbnN0IFBvaW50ZXJUeXBlICpwdHJUeXBlLCBsbHZtOjpWYWx1ZSAqbWFz aywgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUgPSAiIik7Ci0gCi0gICAgIGxsdm06OlZhbHVlICph ZGRWYXJ5aW5nT2Zmc2V0c0lmTmVlZGVkKGxsdm06OlZhbHVlICpwdHIsIGNvbnN0IFR5cGUgKnB0 clR5cGUpOwotIH07Ci1kaWZmIC0tZ2l0IGEvc3JjL2V4cHIuY3BwIGIvc3JjL2V4cHIuY3BwCi1p bmRleCA4MGNjMzAyMGEuLjZkMzhkMTg4OSAxMDA2NDQKLS0tLSBhL3NyYy9leHByLmNwcAotKysr IGIvc3JjL2V4cHIuY3BwCi1AQCAtMTAyMSwxMSArMTAyMSwxMSBAQCBzdGF0aWMgbGx2bTo6VmFs dWUgKmxFbWl0TmVnYXRlKEV4cHIgKmFyZywgU291cmNlUG9zIHBvcywgRnVuY3Rpb25FbWl0Q29u dGV4dCAqYwotICAgICBjdHgtPlNldERlYnVnUG9zKHBvcyk7Ci0gICAgIGlmICh0eXBlLT5Jc0Zs b2F0VHlwZSgpKSB7Ci0gICAgICAgICBsbHZtOjpWYWx1ZSAqemVybyA9IGxsdm06OkNvbnN0YW50 RlA6OmdldFplcm9WYWx1ZUZvck5lZ2F0aW9uKHR5cGUtPkxMVk1UeXBlKGctPmN0eCkpOwotLSAg ICAgICAgcmV0dXJuIGN0eC0+QmluYXJ5T3BlcmF0b3IobGx2bTo6SW5zdHJ1Y3Rpb246OkZTdWIs IHplcm8sIGFyZ1ZhbCwgTExWTUdldE5hbWUoYXJnVmFsLCAiX25lZ2F0ZSIpKTsKLSsgICAgICAg IHJldHVybiBjdHgtPkJpbmFyeU9wZXJhdG9yKGxsdm06Okluc3RydWN0aW9uOjpGU3ViLCB6ZXJv LCBhcmdWYWwsIGxsdm06OlR3aW5lKGFyZ1ZhbC0+Z2V0TmFtZSgpKSArICJfbmVnYXRlIik7Ci0g ICAgIH0gZWxzZSB7Ci0gICAgICAgICBsbHZtOjpWYWx1ZSAqemVybyA9IGxMTFZNQ29uc3RhbnRW YWx1ZSh0eXBlLCBnLT5jdHgsIDAuKTsKLSAgICAgICAgIEFzc2VydFBvcyhwb3MsIHR5cGUtPklz SW50VHlwZSgpKTsKLS0gICAgICAgIHJldHVybiBjdHgtPkJpbmFyeU9wZXJhdG9yKGxsdm06Oklu c3RydWN0aW9uOjpTdWIsIHplcm8sIGFyZ1ZhbCwgTExWTUdldE5hbWUoYXJnVmFsLCAiX25lZ2F0 ZSIpKTsKLSsgICAgICAgIHJldHVybiBjdHgtPkJpbmFyeU9wZXJhdG9yKGxsdm06Okluc3RydWN0 aW9uOjpTdWIsIHplcm8sIGFyZ1ZhbCwgbGx2bTo6VHdpbmUoYXJnVmFsLT5nZXROYW1lKCkpICsg Il9uZWdhdGUiKTsKLSAgICAgfQotIH0KLSAKLUBAIC0xMDQ3LDExICsxMDQ3LDExIEBAIGxsdm06 OlZhbHVlICpVbmFyeUV4cHI6OkdldFZhbHVlKEZ1bmN0aW9uRW1pdENvbnRleHQgKmN0eCkgY29u c3QgewotICAgICAgICAgcmV0dXJuIGxFbWl0TmVnYXRlKGV4cHIsIHBvcywgY3R4KTsKLSAgICAg Y2FzZSBMb2dpY2FsTm90OiB7Ci0gICAgICAgICBsbHZtOjpWYWx1ZSAqYXJnVmFsID0gZXhwci0+ R2V0VmFsdWUoY3R4KTsKLS0gICAgICAgIHJldHVybiBjdHgtPk5vdE9wZXJhdG9yKGFyZ1ZhbCwg TExWTUdldE5hbWUoYXJnVmFsLCAiX2xvZ2ljYWxub3QiKSk7Ci0rICAgICAgICByZXR1cm4gY3R4 LT5Ob3RPcGVyYXRvcihhcmdWYWwsIGxsdm06OlR3aW5lKGFyZ1ZhbC0+Z2V0TmFtZSgpKSArICJf bG9naWNhbG5vdCIpOwotICAgICB9Ci0gICAgIGNhc2UgQml0Tm90OiB7Ci0gICAgICAgICBsbHZt OjpWYWx1ZSAqYXJnVmFsID0gZXhwci0+R2V0VmFsdWUoY3R4KTsKLS0gICAgICAgIHJldHVybiBj dHgtPk5vdE9wZXJhdG9yKGFyZ1ZhbCwgTExWTUdldE5hbWUoYXJnVmFsLCAiX2JpdG5vdCIpKTsK LSsgICAgICAgIHJldHVybiBjdHgtPk5vdE9wZXJhdG9yKGFyZ1ZhbCwgbGx2bTo6VHdpbmUoYXJn VmFsLT5nZXROYW1lKCkpICsgIl9iaXRub3QiKTsKLSAgICAgfQotICAgICBkZWZhdWx0OgotICAg ICAgICAgRkFUQUwoImxvZ2ljIGVycm9yIik7Ci1AQCAtMTUxOCw3ICsxNTE4LDggQEAgc3RhdGlj IGxsdm06OlZhbHVlICpsRW1pdEJpbmFyeUFyaXRoKEJpbmFyeUV4cHI6Ok9wIG9wLCBsbHZtOjpW YWx1ZSAqdmFsdWUwLCBsbHYKLSAgICAgICAgICAgICByZXR1cm4gTlVMTDsKLSAgICAgICAgIH0K LSAKLS0gICAgICAgIHJldHVybiBjdHgtPkJpbmFyeU9wZXJhdG9yKGluc3QsIHZhbHVlMCwgdmFs dWUxLCBMTFZNR2V0TmFtZShvcE5hbWUsIHZhbHVlMCwgdmFsdWUxKSk7Ci0rICAgICAgICByZXR1 cm4gY3R4LT5CaW5hcnlPcGVyYXRvcihpbnN0LCB2YWx1ZTAsIHZhbHVlMSwKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICgoKGxsdm06OlR3aW5lKG9wTmFtZSkgKyAiXyIpICsg dmFsdWUwLT5nZXROYW1lKCkpICsgIl8iKSArIHZhbHVlMS0+Z2V0TmFtZSgpKTsKLSAgICAgfQot IH0KLSAKLUBAIC0xNTYzLDcgKzE1NjQsNyBAQCBzdGF0aWMgbGx2bTo6VmFsdWUgKmxFbWl0Qmlu YXJ5Q21wKEJpbmFyeUV4cHI6Ok9wIG9wLCBsbHZtOjpWYWx1ZSAqZTBWYWwsIGxsdm06OgotICAg ICB9Ci0gCi0gICAgIGxsdm06OlZhbHVlICpjbXAgPSBjdHgtPkNtcEluc3QoaXNGbG9hdE9wID8g bGx2bTo6SW5zdHJ1Y3Rpb246OkZDbXAgOiBsbHZtOjpJbnN0cnVjdGlvbjo6SUNtcCwgcHJlZCwg ZTBWYWwsIGUxVmFsLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExMVk1H ZXROYW1lKG9wTmFtZSwgZTBWYWwsIGUxVmFsKSk7Ci0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKCgobGx2bTo6VHdpbmUob3BOYW1lKSArICJfIikgKyBlMFZhbC0+Z2V0TmFt ZSgpKSArICJfIikgKyBlMVZhbC0+Z2V0TmFtZSgpKTsKLSAgICAgLy8gVGhpcyBpcyBhIGxpdHRs ZSB1Z2x5OiBDbXBJbnN0IHJldHVybnMgaTEgdmFsdWVzLCBidXQgd2UgdXNlIHZlY3RvcnMKLSAg ICAgLy8gb2YgaTMycyBmb3IgdmFyeWluZyBib29sIHZhbHVlczsgdHlwZSBjb252ZXJ0IHRoZSBy ZXN1bHQgaGVyZSBpZgotICAgICAvLyBuZWVkZWQuCi1AQCAtNDE3Nyw3ICs0MTc4LDcgQEAgc3Rh dGljIGxsdm06OlZhbHVlICpsQ29udmVydFRvU2xpY2VQb2ludGVyKEZ1bmN0aW9uRW1pdENvbnRl eHQgKmN0eCwgbGx2bTo6VmFsdWUKLSAgICAgLy8gb2Zmc2V0cwotICAgICBsbHZtOjpWYWx1ZSAq cmVzdWx0ID0gbGx2bTo6Q29uc3RhbnQ6OmdldE51bGxWYWx1ZShzbGljZVN0cnVjdFR5cGUpOwot ICAgICAvLyBBbmQgcmVwbGFjZSB0aGUgcG9pbnRlciBpbiB0aGUgc3RydWN0IHdpdGggdGhlIGdp dmVuIHBvaW50ZXIKLS0gICAgcmV0dXJuIGN0eC0+SW5zZXJ0SW5zdChyZXN1bHQsIHB0ciwgMCwg TExWTUdldE5hbWUocHRyLCAiX3NsaWNlIikpOwotKyAgICByZXR1cm4gY3R4LT5JbnNlcnRJbnN0 KHJlc3VsdCwgcHRyLCAwLCBsbHZtOjpUd2luZShwdHItPmdldE5hbWUoKSkgKyAiX3NsaWNlIik7 Ci0gfQotIAotIC8qKiBJZiB0aGUgZ2l2ZW4gYXJyYXkgaW5kZXggaXMgYSBjb21waWxlIHRpbWUg Y29uc3RhbnQsIGNoZWNrIHRvIHNlZSBpZiBpdAotQEAgLTQyNTgsOCArNDI1OSw4IEBAIGxsdm06 OlZhbHVlICpJbmRleEV4cHI6OkdldExWYWx1ZShGdW5jdGlvbkVtaXRDb250ZXh0ICpjdHgpIGNv bnN0IHsKLSAgICAgICAgIC8vIENvbnZlcnQgdG8gYSBzbGljZSBwb2ludGVyIGlmIHdlJ3JlIGlu ZGV4aW5nIGludG8gU09BIGRhdGEKLSAgICAgICAgIGJhc2VQdHJWYWx1ZSA9IGxDb252ZXJ0UHRy VG9TbGljZUlmTmVlZGVkKGN0eCwgYmFzZVB0clZhbHVlLCAmYmFzZUV4cHJUeXBlKTsKLSAKLS0g ICAgICAgIGxsdm06OlZhbHVlICpwdHIgPQotLSAgICAgICAgICAgIGN0eC0+R2V0RWxlbWVudFB0 ckluc3QoYmFzZVB0clZhbHVlLCBpbmRleFZhbHVlLCBiYXNlRXhwclR5cGUsIExMVk1HZXROYW1l KGJhc2VQdHJWYWx1ZSwgIl9vZmZzZXQiKSk7Ci0rICAgICAgICBsbHZtOjpWYWx1ZSAqcHRyID0g Y3R4LT5HZXRFbGVtZW50UHRySW5zdChiYXNlUHRyVmFsdWUsIGluZGV4VmFsdWUsIGJhc2VFeHBy VHlwZSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGxsdm06OlR3aW5lKGJhc2VQdHJWYWx1ZS0+Z2V0TmFtZSgpKSArICJfb2Zmc2V0Iik7Ci0gICAg ICAgICByZXR1cm4gbEFkZFZhcnlpbmdPZmZzZXRzSWZOZWVkZWQoY3R4LCBwdHIsIEdldExWYWx1 ZVR5cGUoKSk7Ci0gICAgIH0KLSAKLUBAIC00MjkwLDggKzQyOTEsOCBAQCBsbHZtOjpWYWx1ZSAq SW5kZXhFeHByOjpHZXRMVmFsdWUoRnVuY3Rpb25FbWl0Q29udGV4dCAqY3R4KSBjb25zdCB7Ci0g ICAgIGN0eC0+U2V0RGVidWdQb3MocG9zKTsKLSAKLSAgICAgLy8gQW5kIGRvIHRoZSBhY3R1YWwg aW5kZXhpbmcgY2FsY3VsYXRpb24uLgotLSAgICBsbHZtOjpWYWx1ZSAqcHRyID0KLS0gICAgICAg IGN0eC0+R2V0RWxlbWVudFB0ckluc3QoYmFzZVB0ciwgTExWTUludDMyKDApLCBpbmRleFZhbHVl LCBiYXNlUHRyVHlwZSwgTExWTUdldE5hbWUoYmFzZVB0ciwgIl9vZmZzZXQiKSk7Ci0rICAgIGxs dm06OlZhbHVlICpwdHIgPSBjdHgtPkdldEVsZW1lbnRQdHJJbnN0KGJhc2VQdHIsIExMVk1JbnQz MigwKSwgaW5kZXhWYWx1ZSwgYmFzZVB0clR5cGUsCi0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGxsdm06OlR3aW5lKGJhc2VQdHItPmdldE5hbWUoKSkgKyAi X29mZnNldCIpOwotICAgICByZXR1cm4gbEFkZFZhcnlpbmdPZmZzZXRzSWZOZWVkZWQoY3R4LCBw dHIsIEdldExWYWx1ZVR5cGUoKSk7Ci0gfQotIAotQEAgLTQ3ODgsMTUgKzQ3ODksMTQgQEAgbGx2 bTo6VmFsdWUgKlZlY3Rvck1lbWJlckV4cHI6OkdldFZhbHVlKEZ1bmN0aW9uRW1pdENvbnRleHQg KmN0eCkgY29uc3QgewotICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBpZGVudGlmaWVy LnNpemUoKTsgKytpKSB7Ci0gICAgICAgICAgICAgY2hhciBpZFN0clsyXSA9IHtpZGVudGlmaWVy W2ldLCAnXDAnfTsKLSAgICAgICAgICAgICBsbHZtOjpWYWx1ZSAqZWxlbWVudFB0ciA9Ci0tICAg ICAgICAgICAgICAgIGN0eC0+QWRkRWxlbWVudE9mZnNldChiYXNlUHRyLCBpbmRpY2VzW2ldLCBi YXNlUHRyVHlwZSwgTExWTUdldE5hbWUoYmFzZVB0ciwgaWRTdHIpKTsKLSsgICAgICAgICAgICAg ICAgY3R4LT5BZGRFbGVtZW50T2Zmc2V0KGJhc2VQdHIsIGluZGljZXNbaV0sIGJhc2VQdHJUeXBl LCBsbHZtOjpUd2luZShiYXNlUHRyLT5nZXROYW1lKCkpICsgaWRTdHIpOwotICAgICAgICAgICAg IGxsdm06OlZhbHVlICplbGVtZW50VmFsdWUgPSBjdHgtPkxvYWRJbnN0KGVsZW1lbnRQdHIsIGVs ZW1lbnRNYXNrLCBlbGVtZW50UHRyVHlwZSk7Ci0gCi0tICAgICAgICAgICAgY29uc3QgY2hhciAq cmVzdWx0TmFtZSA9IExMVk1HZXROYW1lKHJlc3VsdFB0ciwgaWRTdHIpOwotLSAgICAgICAgICAg IGxsdm06OlZhbHVlICpwdG1wID0gY3R4LT5BZGRFbGVtZW50T2Zmc2V0KHJlc3VsdFB0ciwgaSwg TlVMTCwgcmVzdWx0TmFtZSk7Ci0rICAgICAgICAgICAgbGx2bTo6VmFsdWUgKnB0bXAgPSBjdHgt PkFkZEVsZW1lbnRPZmZzZXQocmVzdWx0UHRyLCBpLCBOVUxMLCBsbHZtOjpUd2luZShyZXN1bHRQ dHItPmdldE5hbWUoKSkgKyBpZFN0cik7Ci0gICAgICAgICAgICAgY3R4LT5TdG9yZUluc3QoZWxl bWVudFZhbHVlLCBwdG1wLCBlbGVtZW50UHRyVHlwZSwgZXhwci0+R2V0VHlwZSgpLT5Jc1VuaWZv cm1UeXBlKCkpOwotICAgICAgICAgfQotIAotLSAgICAgICAgcmV0dXJuIGN0eC0+TG9hZEluc3Qo cmVzdWx0UHRyLCBtZW1iZXJUeXBlLCBMTFZNR2V0TmFtZShiYXNlUHRyLCAiX3N3aXp6bGUiKSk7 Ci0rICAgICAgICByZXR1cm4gY3R4LT5Mb2FkSW5zdChyZXN1bHRQdHIsIG1lbWJlclR5cGUsIGxs dm06OlR3aW5lKGJhc2VQdHItPmdldE5hbWUoKSkgKyAiX3N3aXp6bGUiKTsKLSAgICAgfQotIH0K LSAKLUBAIC00OTMyLDcgKzQ5MzIsNyBAQCBsbHZtOjpWYWx1ZSAqTWVtYmVyRXhwcjo6R2V0VmFs dWUoRnVuY3Rpb25FbWl0Q29udGV4dCAqY3R4KSBjb25zdCB7Ci0gCi0gICAgIGN0eC0+U2V0RGVi dWdQb3MocG9zKTsKLSAgICAgc3RkOjpzdHJpbmcgc3VmZml4ID0gc3RkOjpzdHJpbmcoIl8iKSAr IGlkZW50aWZpZXI7Ci0tICAgIHJldHVybiBjdHgtPkxvYWRJbnN0KGx2YWx1ZSwgbWFzaywgbHZh bHVlVHlwZSwgTExWTUdldE5hbWUobHZhbHVlLCBzdWZmaXguY19zdHIoKSkpOwotKyAgICByZXR1 cm4gY3R4LT5Mb2FkSW5zdChsdmFsdWUsIG1hc2ssIGx2YWx1ZVR5cGUsIGxsdm06OlR3aW5lKGx2 YWx1ZS0+Z2V0TmFtZSgpKSArIHN1ZmZpeCk7Ci0gfQotIAotIGNvbnN0IFR5cGUgKk1lbWJlckV4 cHI6OkdldFR5cGUoKSBjb25zdCB7IHJldHVybiBOVUxMOyB9Ci1AQCAtNjUwMiw3ICs2NTAyLDcg QEAgc3RhdGljIGxsdm06OlZhbHVlICpsVHlwZUNvbnZBdG9taWMoRnVuY3Rpb25FbWl0Q29udGV4 dCAqY3R4LCBsbHZtOjpWYWx1ZSAqZXhwclYKLSAgICAgICAgICAgICAgICAgLy8gZG9lcyBmb3Ig ZXZlcnlvbmUgZWxzZS4uLgotICAgICAgICAgICAgICAgICBBc3NlcnQoY2FzdCk7Ci0gICAgICAg ICAgICAgICAgIGNhc3QgPSBjdHgtPlN3aXRjaEJvb2xTaXplKGNhc3QsIExMVk1UeXBlczo6Qm9v bFZlY3RvclR5cGUtPmdldEVsZW1lbnRUeXBlKCksCi0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIExMVk1HZXROYW1lKGNhc3QsICJ0b19pX2Jvb2wiKSk7Ci0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06OlR3aW5lKGNhc3Qt PmdldE5hbWUoKSkgKyAidG9faV9ib29sIik7Ci0gICAgICAgICAgICAgfQotICAgICAgICAgfSBl bHNlIHsKLSAgICAgICAgICAgICAvLyBmcm9tVHlwZS0+SXNWYXJ5aW5nVHlwZSgpKQotQEAgLTgy NDYsNyArODI0Niw3IEBAIGxsdm06OlZhbHVlICpOZXdFeHByOjpHZXRWYWx1ZShGdW5jdGlvbkVt aXRDb250ZXh0ICpjdHgpIGNvbnN0IHsKLSAgICAgICAgIC8vIHBvaW50ZXIgb2YgdGhlIHJldHVy biB0eXBlIGFuZCB0byBydW4gdGhlIGNvZGUgZm9yIGluaXRpYWxpemVycywKLSAgICAgICAgIC8v IGlmIHByZXNlbnQuCi0gICAgICAgICBsbHZtOjpUeXBlICpwdHJUeXBlID0gcmV0VHlwZS0+TExW TVR5cGUoZy0+Y3R4KTsKLS0gICAgICAgIHB0clZhbHVlID0gY3R4LT5CaXRDYXN0SW5zdChwdHJW YWx1ZSwgcHRyVHlwZSwgTExWTUdldE5hbWUocHRyVmFsdWUsICJfY2FzdF9wdHIiKSk7Ci0rICAg ICAgICBwdHJWYWx1ZSA9IGN0eC0+Qml0Q2FzdEluc3QocHRyVmFsdWUsIHB0clR5cGUsIGxsdm06 OlR3aW5lKHB0clZhbHVlLT5nZXROYW1lKCkpICsgIl9jYXN0X3B0ciIpOwotIAotICAgICAgICAg aWYgKGluaXRFeHByICE9IE5VTEwpCi0gICAgICAgICAgICAgSW5pdFN5bWJvbChwdHJWYWx1ZSwg YWxsb2NUeXBlLCBpbml0RXhwciwgY3R4LCBwb3MpOwotZGlmZiAtLWdpdCBhL3NyYy9sbHZtdXRp bC5jcHAgYi9zcmMvbGx2bXV0aWwuY3BwCi1pbmRleCA5NzAxNzVkYmYuLmQwYmVjYjlmNSAxMDA2 NDQKLS0tLSBhL3NyYy9sbHZtdXRpbC5jcHAKLSsrKyBiL3NyYy9sbHZtdXRpbC5jcHAKLUBAIC0x NjA1LDIzICsxNjA1LDYgQEAgbGx2bTo6VmFsdWUgKkxMVk1TaHVmZmxlVmVjdG9ycyhsbHZtOjpW YWx1ZSAqdjEsIGxsdm06OlZhbHVlICp2MiwgaW50MzJfdCBzaHVmW10KLSAgICAgcmV0dXJuIG5l dyBsbHZtOjpTaHVmZmxlVmVjdG9ySW5zdCh2MSwgdjIsIHZlYywgInNodWZmbGUiLCBpbnNlcnRC ZWZvcmUpOwotIH0KLSAKLS1jb25zdCBjaGFyICpMTFZNR2V0TmFtZShsbHZtOjpWYWx1ZSAqdiwg Y29uc3QgY2hhciAqcykgewotLSAgICBpZiAodiA9PSBOVUxMKQotLSAgICAgICAgcmV0dXJuIHM7 Ci0tICAgIHN0ZDo6c3RyaW5nIHJldCA9IHN0ZDo6c3RyaW5nKHYtPmdldE5hbWUoKSk7Ci0tICAg IHJldCArPSBzOwotLSAgICByZXR1cm4gc3RyZHVwKHJldC5jX3N0cigpKTsKLS19Ci0tCi0tY29u c3QgY2hhciAqTExWTUdldE5hbWUoY29uc3QgY2hhciAqb3AsIGxsdm06OlZhbHVlICp2MSwgbGx2 bTo6VmFsdWUgKnYyKSB7Ci0tICAgIHN0ZDo6c3RyaW5nIHIgPSBvcDsKLS0gICAgciArPSAiXyI7 Ci0tICAgIHIgKz0gdjEtPmdldE5hbWUoKS5zdHIoKTsKLS0gICAgciArPSAiXyI7Ci0tICAgIHIg Kz0gdjItPmdldE5hbWUoKS5zdHIoKTsKLS0gICAgcmV0dXJuIHN0cmR1cChyLmNfc3RyKCkpOwot LX0KLS0KLSAjaWZkZWYgSVNQQ19HRU5YX0VOQUJMRUQKLSBib29sIGxJc1NWTUxvYWQobGx2bTo6 SW5zdHJ1Y3Rpb24gKmluc3QpIHsKLSAgICAgQXNzZXJ0KGluc3QpOwotZGlmZiAtLWdpdCBhL3Ny Yy9sbHZtdXRpbC5oIGIvc3JjL2xsdm11dGlsLmgKLWluZGV4IDQyY2NlNGQ4My4uMDdkMDg5YmI0 IDEwMDY0NAotLS0tIGEvc3JjL2xsdm11dGlsLmgKLSsrKyBiL3NyYy9sbHZtdXRpbC5oCi1AQCAt MzI4LDExICszMjgsNiBAQCBleHRlcm4gbGx2bTo6VmFsdWUgKkxMVk1Db25jYXRWZWN0b3JzKGxs dm06OlZhbHVlICp2MSwgbGx2bTo6VmFsdWUgKnYyLCBsbHZtOjpJbgotIGV4dGVybiBsbHZtOjpW YWx1ZSAqTExWTVNodWZmbGVWZWN0b3JzKGxsdm06OlZhbHVlICp2MSwgbGx2bTo6VmFsdWUgKnYy LCBpbnQzMl90IHNodWZbXSwgaW50IHNodWZTaXplLAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGxsdm06Okluc3RydWN0aW9uICppbnNlcnRCZWZvcmUpOwotIAotLS8q KiBVdGlsaXR5IHJvdXRpbmVzIHRvIGNvbmNhdCBzdHJpbmdzIHdpdGggdGhlIG5hbWVzIG9mIGV4 aXN0aW5nIHZhbHVlcyB0bwotLSAgICBjcmVhdGUgbWVhbmluZ2Z1bCBuZXcgbmFtZXMgZm9yIGlu c3RydWN0aW9uIHZhbHVlcy4KLS0qLwotLWV4dGVybiBjb25zdCBjaGFyICpMTFZNR2V0TmFtZShs bHZtOjpWYWx1ZSAqdiwgY29uc3QgY2hhciAqKTsKLS1leHRlcm4gY29uc3QgY2hhciAqTExWTUdl dE5hbWUoY29uc3QgY2hhciAqb3AsIGxsdm06OlZhbHVlICp2MSwgbGx2bTo6VmFsdWUgKnYyKTsK LSAjaWZkZWYgSVNQQ19HRU5YX0VOQUJMRUQKLSBlbnVtIEFkZHJlc3NTcGFjZSB7IExvY2FsLCBH bG9iYWwsIEV4dGVybmFsIH07Ci0gCi1kaWZmIC0tZ2l0IGEvc3JjL29wdC5jcHAgYi9zcmMvb3B0 LmNwcAotaW5kZXggNWIxYWM3YjYzLi45ZDZjYWUwNTggMTAwNjQ0Ci0tLS0gYS9zcmMvb3B0LmNw cAotKysrIGIvc3JjL29wdC5jcHAKLUBAIC0yNTcsNyArMjU3LDcgQEAgc3RhdGljIGJvb2wgbEdl dFNvdXJjZVBvc0Zyb21NZXRhZGF0YShjb25zdCBsbHZtOjpJbnN0cnVjdGlvbiAqaW5zdCwgU291 cmNlUG9zICoKLSAgICAgcmV0dXJuIHRydWU7Ci0gfQotIAotLXN0YXRpYyBsbHZtOjpJbnN0cnVj dGlvbiAqbENhbGxJbnN0KGxsdm06OkZ1bmN0aW9uICpmdW5jLCBsbHZtOjpWYWx1ZSAqYXJnMCwg bGx2bTo6VmFsdWUgKmFyZzEsIGNvbnN0IGNoYXIgKm5hbWUsCi0rc3RhdGljIGxsdm06Okluc3Ry dWN0aW9uICpsQ2FsbEluc3QobGx2bTo6RnVuY3Rpb24gKmZ1bmMsIGxsdm06OlZhbHVlICphcmcw LCBsbHZtOjpWYWx1ZSAqYXJnMSwgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUsCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmluc2VydEJlZm9y ZSA9IE5VTEwpIHsKLSAgICAgbGx2bTo6VmFsdWUgKmFyZ3NbMl0gPSB7YXJnMCwgYXJnMX07Ci0g ICAgIGxsdm06OkFycmF5UmVmPGxsdm06OlZhbHVlICo+IG5ld0FyZ0FycmF5KCZhcmdzWzBdLCAm YXJnc1syXSk7Ci1AQCAtMjY1LDIxICsyNjUsMjIgQEAgc3RhdGljIGxsdm06Okluc3RydWN0aW9u ICpsQ2FsbEluc3QobGx2bTo6RnVuY3Rpb24gKmZ1bmMsIGxsdm06OlZhbHVlICphcmcwLCBsbHYK LSB9Ci0gCi0gc3RhdGljIGxsdm06Okluc3RydWN0aW9uICpsQ2FsbEluc3QobGx2bTo6RnVuY3Rp b24gKmZ1bmMsIGxsdm06OlZhbHVlICphcmcwLCBsbHZtOjpWYWx1ZSAqYXJnMSwgbGx2bTo6VmFs dWUgKmFyZzIsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hh ciAqbmFtZSwgbGx2bTo6SW5zdHJ1Y3Rpb24gKmluc2VydEJlZm9yZSA9IE5VTEwpIHsKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSwg bGx2bTo6SW5zdHJ1Y3Rpb24gKmluc2VydEJlZm9yZSA9IE5VTEwpIHsKLSAgICAgbGx2bTo6VmFs dWUgKmFyZ3NbM10gPSB7YXJnMCwgYXJnMSwgYXJnMn07Ci0gICAgIGxsdm06OkFycmF5UmVmPGxs dm06OlZhbHVlICo+IG5ld0FyZ0FycmF5KCZhcmdzWzBdLCAmYXJnc1szXSk7Ci0gICAgIHJldHVy biBsbHZtOjpDYWxsSW5zdDo6Q3JlYXRlKGZ1bmMsIG5ld0FyZ0FycmF5LCBuYW1lLCBpbnNlcnRC ZWZvcmUpOwotIH0KLSAKLSBzdGF0aWMgbGx2bTo6SW5zdHJ1Y3Rpb24gKmxDYWxsSW5zdChsbHZt OjpGdW5jdGlvbiAqZnVuYywgbGx2bTo6VmFsdWUgKmFyZzAsIGxsdm06OlZhbHVlICphcmcxLCBs bHZtOjpWYWx1ZSAqYXJnMiwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBs bHZtOjpWYWx1ZSAqYXJnMywgY29uc3QgY2hhciAqbmFtZSwgbGx2bTo6SW5zdHJ1Y3Rpb24gKmlu c2VydEJlZm9yZSA9IE5VTEwpIHsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBsbHZtOjpWYWx1ZSAqYXJnMywgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUsCi0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmluc2VydEJlZm9y ZSA9IE5VTEwpIHsKLSAgICAgbGx2bTo6VmFsdWUgKmFyZ3NbNF0gPSB7YXJnMCwgYXJnMSwgYXJn MiwgYXJnM307Ci0gICAgIGxsdm06OkFycmF5UmVmPGxsdm06OlZhbHVlICo+IG5ld0FyZ0FycmF5 KCZhcmdzWzBdLCAmYXJnc1s0XSk7Ci0gICAgIHJldHVybiBsbHZtOjpDYWxsSW5zdDo6Q3JlYXRl KGZ1bmMsIG5ld0FyZ0FycmF5LCBuYW1lLCBpbnNlcnRCZWZvcmUpOwotIH0KLSAKLSBzdGF0aWMg bGx2bTo6SW5zdHJ1Y3Rpb24gKmxDYWxsSW5zdChsbHZtOjpGdW5jdGlvbiAqZnVuYywgbGx2bTo6 VmFsdWUgKmFyZzAsIGxsdm06OlZhbHVlICphcmcxLCBsbHZtOjpWYWx1ZSAqYXJnMiwKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpWYWx1ZSAqYXJnMywgbGx2bTo6 VmFsdWUgKmFyZzQsIGNvbnN0IGNoYXIgKm5hbWUsCi0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgbGx2bTo6VmFsdWUgKmFyZzMsIGxsdm06OlZhbHVlICphcmc0LCBjb25zdCBs bHZtOjpUd2luZSAmbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBs bHZtOjpJbnN0cnVjdGlvbiAqaW5zZXJ0QmVmb3JlID0gTlVMTCkgewotICAgICBsbHZtOjpWYWx1 ZSAqYXJnc1s1XSA9IHthcmcwLCBhcmcxLCBhcmcyLCBhcmczLCBhcmc0fTsKLSAgICAgbGx2bTo6 QXJyYXlSZWY8bGx2bTo6VmFsdWUgKj4gbmV3QXJnQXJyYXkoJmFyZ3NbMF0sICZhcmdzWzVdKTsK LUBAIC0yODcsNyArMjg4LDcgQEAgc3RhdGljIGxsdm06Okluc3RydWN0aW9uICpsQ2FsbEluc3Qo bGx2bTo6RnVuY3Rpb24gKmZ1bmMsIGxsdm06OlZhbHVlICphcmcwLCBsbHYKLSB9Ci0gCi0gc3Rh dGljIGxsdm06Okluc3RydWN0aW9uICpsQ2FsbEluc3QobGx2bTo6RnVuY3Rpb24gKmZ1bmMsIGxs dm06OlZhbHVlICphcmcwLCBsbHZtOjpWYWx1ZSAqYXJnMSwgbGx2bTo6VmFsdWUgKmFyZzIsCi0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6VmFsdWUgKmFyZzMsIGxs dm06OlZhbHVlICphcmc0LCBsbHZtOjpWYWx1ZSAqYXJnNSwgY29uc3QgY2hhciAqbmFtZSwKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpWYWx1ZSAqYXJnMywgbGx2 bTo6VmFsdWUgKmFyZzQsIGxsdm06OlZhbHVlICphcmc1LCBjb25zdCBsbHZtOjpUd2luZSAmbmFt ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpJbnN0cnVjdGlv biAqaW5zZXJ0QmVmb3JlID0gTlVMTCkgewotICAgICBsbHZtOjpWYWx1ZSAqYXJnc1s2XSA9IHth cmcwLCBhcmcxLCBhcmcyLCBhcmczLCBhcmc0LCBhcmc1fTsKLSAgICAgbGx2bTo6QXJyYXlSZWY8 bGx2bTo6VmFsdWUgKj4gbmV3QXJnQXJyYXkoJmFyZ3NbMF0sICZhcmdzWzZdKTsKLUBAIC05OTEs MjMgKzk5MiwyNCBAQCBib29sIEludHJpbnNpY3NPcHQ6OnJ1bk9uQmFzaWNCbG9jayhsbHZtOjpC YXNpY0Jsb2NrICZiYikgewotICAgICAgICAgICAgICAgICBsbHZtOjpUeXBlICpyZXR1cm5UeXBl ID0gY2FsbEluc3QtPmdldFR5cGUoKTsKLSAgICAgICAgICAgICAgICAgQXNzZXJ0KGxsdm06Omlz YTxsbHZtOjpWZWN0b3JUeXBlPihyZXR1cm5UeXBlKSk7Ci0gICAgICAgICAgICAgICAgIC8vIGNh c3QgdGhlIGk4ICogdG8gdGhlIGFwcHJvcHJpYXRlIHR5cGUKLS0gICAgICAgICAgICAgICAgY29u c3QgY2hhciAqbmFtZSA9IExMVk1HZXROYW1lKGNhbGxJbnN0LT5nZXRBcmdPcGVyYW5kKDApLCAi X2Nhc3QiKTsKLS0gICAgICAgICAgICAgICAgbGx2bTo6VmFsdWUgKmNhc3RQdHIgPSBuZXcgbGx2 bTo6Qml0Q2FzdEluc3QoY2FsbEluc3QtPmdldEFyZ09wZXJhbmQoMCksCi0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06OlBv aW50ZXJUeXBlOjpnZXQocmV0dXJuVHlwZSwgMCksIG5hbWUsIGNhbGxJbnN0KTsKLSsgICAgICAg ICAgICAgICAgbGx2bTo6VmFsdWUgKmNhc3RQdHIgPQotKyAgICAgICAgICAgICAgICAgICAgbmV3 IGxsdm06OkJpdENhc3RJbnN0KGNhbGxJbnN0LT5nZXRBcmdPcGVyYW5kKDApLCBsbHZtOjpQb2lu dGVyVHlwZTo6Z2V0KHJldHVyblR5cGUsIDApLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGxsdm06OlR3aW5lKGNhbGxJbnN0LT5nZXRBcmdPcGVyYW5kKDApLT5n ZXROYW1lKCkpICsgIl9jYXN0IiwgY2FsbEluc3QpOwotICAgICAgICAgICAgICAgICBsQ29weU1l dGFkYXRhKGNhc3RQdHIsIGNhbGxJbnN0KTsKLSAgICAgICAgICAgICAgICAgaW50IGFsaWduOwot ICAgICAgICAgICAgICAgICBpZiAoZy0+b3B0LmZvcmNlQWxpZ25lZE1lbW9yeSkKLSAgICAgICAg ICAgICAgICAgICAgIGFsaWduID0gZy0+dGFyZ2V0LT5nZXROYXRpdmVWZWN0b3JBbGlnbm1lbnQo KTsKLSAgICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICAgYWxpZ24gPSBj YWxsSW5zdC0+Z2V0Q2FsbGVkRnVuY3Rpb24oKSA9PSBhdnhNYXNrZWRMb2FkMzIgPyA0IDogODsK LS0gICAgICAgICAgICAgICAgbmFtZSA9IExMVk1HZXROYW1lKGNhbGxJbnN0LT5nZXRBcmdPcGVy YW5kKDApLCAiX2xvYWQiKTsKLSAjaWYgSVNQQ19MTFZNX1ZFUlNJT04gPT0gSVNQQ19MTFZNXzEw XzAKLS0gICAgICAgICAgICAgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmxvYWRJbnN0ID0gbmV3IGxs dm06OkxvYWRJbnN0KGNhc3RQdHIsIG5hbWUsIGZhbHNlIC8qIG5vdCB2b2xhdGlsZSAqLywKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGxsdm06Ok1heWJlQWxpZ24oYWxpZ24pLCAobGx2bTo6SW5zdHJ1Y3Rpb24gKilOVUxM KTsKLSsgICAgICAgICAgICAgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmxvYWRJbnN0ID0KLSsgICAg ICAgICAgICAgICAgICAgIG5ldyBsbHZtOjpMb2FkSW5zdChjYXN0UHRyLCBsbHZtOjpUd2luZShj YWxsSW5zdC0+Z2V0QXJnT3BlcmFuZCgwKS0+Z2V0TmFtZSgpKSArICJfbG9hZCIsCi0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UgLyogbm90IHZvbGF0aWxlICov LCBsbHZtOjpNYXliZUFsaWduKGFsaWduKSwgKGxsdm06Okluc3RydWN0aW9uICopTlVMTCk7Ci0g I2Vsc2UKLSAgICAgICAgICAgICAgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmxvYWRJbnN0ID0gbmV3 IGxsdm06OkxvYWRJbnN0KAotLSAgICAgICAgICAgICAgICAgICAgbGx2bTo6ZHluX2Nhc3Q8bGx2 bTo6UG9pbnRlclR5cGU+KGNhc3RQdHItPmdldFR5cGUoKSktPmdldFBvaW50ZXJFbGVtZW50VHlw ZSgpLCBjYXN0UHRyLCBuYW1lLAotLSAgICAgICAgICAgICAgICAgICAgZmFsc2UgLyogbm90IHZv bGF0aWxlICovLCBsbHZtOjpNYXliZUFsaWduKGFsaWduKS52YWx1ZU9yT25lKCksIChsbHZtOjpJ bnN0cnVjdGlvbiAqKU5VTEwpOwotKyAgICAgICAgICAgICAgICAgICAgbGx2bTo6ZHluX2Nhc3Q8 bGx2bTo6UG9pbnRlclR5cGU+KGNhc3RQdHItPmdldFR5cGUoKSktPmdldFBvaW50ZXJFbGVtZW50 VHlwZSgpLCBjYXN0UHRyLAotKyAgICAgICAgICAgICAgICAgICAgbGx2bTo6VHdpbmUoY2FsbElu c3QtPmdldEFyZ09wZXJhbmQoMCktPmdldE5hbWUoKSkgKyAiX2xvYWQiLCBmYWxzZSAvKiBub3Qg dm9sYXRpbGUgKi8sCi0rICAgICAgICAgICAgICAgICAgICBsbHZtOjpNYXliZUFsaWduKGFsaWdu KS52YWx1ZU9yT25lKCksIChsbHZtOjpJbnN0cnVjdGlvbiAqKU5VTEwpOwotICNlbmRpZgotICAg ICAgICAgICAgICAgICBsQ29weU1ldGFkYXRhKGxvYWRJbnN0LCBjYWxsSW5zdCk7Ci0gICAgICAg ICAgICAgICAgIGxsdm06OlJlcGxhY2VJbnN0V2l0aEluc3QoY2FsbEluc3QsIGxvYWRJbnN0KTsK LUBAIC0xMDI4LDkgKzEwMzAsOSBAQCBib29sIEludHJpbnNpY3NPcHQ6OnJ1bk9uQmFzaWNCbG9j ayhsbHZtOjpCYXNpY0Jsb2NrICZiYikgewotICAgICAgICAgICAgICAgICAvLyBhbGwgbGFuZXMg c3RvcmluZywgc28gcmVwbGFjZSB3aXRoIGEgcmVndWxhciBzdG9yZQotICAgICAgICAgICAgICAg ICBsbHZtOjpWYWx1ZSAqcnZhbHVlID0gY2FsbEluc3QtPmdldEFyZ09wZXJhbmQoMik7Ci0gICAg ICAgICAgICAgICAgIGxsdm06OlR5cGUgKnN0b3JlVHlwZSA9IHJ2YWx1ZS0+Z2V0VHlwZSgpOwot LSAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpuYW1lID0gTExWTUdldE5hbWUoY2FsbEluc3Qt PmdldEFyZ09wZXJhbmQoMCksICJfcHRyY2FzdCIpOwotLSAgICAgICAgICAgICAgICBsbHZtOjpW YWx1ZSAqY2FzdFB0ciA9IG5ldyBsbHZtOjpCaXRDYXN0SW5zdChjYWxsSW5zdC0+Z2V0QXJnT3Bl cmFuZCgwKSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgbGx2bTo6UG9pbnRlclR5cGU6OmdldChzdG9yZVR5cGUsIDApLCBuYW1l LCBjYWxsSW5zdCk7Ci0rICAgICAgICAgICAgICAgIGxsdm06OlZhbHVlICpjYXN0UHRyID0KLSsg ICAgICAgICAgICAgICAgICAgIG5ldyBsbHZtOjpCaXRDYXN0SW5zdChjYWxsSW5zdC0+Z2V0QXJn T3BlcmFuZCgwKSwgbGx2bTo6UG9pbnRlclR5cGU6OmdldChzdG9yZVR5cGUsIDApLAotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06OlR3aW5lKGNhbGxJbnN0 LT5nZXRBcmdPcGVyYW5kKDApLT5nZXROYW1lKCkpICsgIl9wdHJjYXN0IiwgY2FsbEluc3QpOwot ICAgICAgICAgICAgICAgICBsQ29weU1ldGFkYXRhKGNhc3RQdHIsIGNhbGxJbnN0KTsKLSAKLSAg ICAgICAgICAgICAgICAgaW50IGFsaWduOwotQEAgLTEzMzksOCArMTM0MSw4IEBAIHN0YXRpYyBs bHZtOjpWYWx1ZSAqbEdldEJhc2VQb2ludGVyKGxsdm06OlZhbHVlICp2LCBsbHZtOjpJbnN0cnVj dGlvbiAqaW5zZXJ0QmVmCi0gICAgICAgICBpZiAodCA9PSBOVUxMKSB7Ci0gICAgICAgICAgICAg cmV0dXJuIE5VTEw7Ci0gICAgICAgICB9IGVsc2UgewotLSAgICAgICAgICAgIHJldHVybiBsbHZt OjpDYXN0SW5zdDo6Q3JlYXRlKGNpLT5nZXRPcGNvZGUoKSwgdCwgY2ktPmdldFR5cGUoKS0+Z2V0 U2NhbGFyVHlwZSgpLCBMTFZNR2V0TmFtZSh0LCAiX2Nhc3QiKSwKLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBpbnNlcnRCZWZvcmUpOwotKyAgICAgICAgICAgIHJl dHVybiBsbHZtOjpDYXN0SW5zdDo6Q3JlYXRlKGNpLT5nZXRPcGNvZGUoKSwgdCwgY2ktPmdldFR5 cGUoKS0+Z2V0U2NhbGFyVHlwZSgpLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGxsdm06OlR3aW5lKHQtPmdldE5hbWUoKSkgKyAiX2Nhc3QiLCBpbnNlcnRCZWZv cmUpOwotICAgICAgICAgfQotICAgICB9Ci0gCi1AQCAtMTU4MywxMyArMTU4NSwxMyBAQCBzdGF0 aWMgdm9pZCBsRXh0cmFjdENvbnN0YW50T2Zmc2V0KGxsdm06OlZhbHVlICp2ZWMsIGxsdm06OlZh bHVlICoqY29uc3RPZmZzZXQsCi0gICAgICAgICBpZiAoY28gPT0gTlVMTCkKLSAgICAgICAgICAg ICAqY29uc3RPZmZzZXQgPSBOVUxMOwotICAgICAgICAgZWxzZQotLSAgICAgICAgICAgICpjb25z dE9mZnNldCA9Ci0tICAgICAgICAgICAgICAgIGxsdm06OkNhc3RJbnN0OjpDcmVhdGUoY2FzdC0+ Z2V0T3Bjb2RlKCksIGNvLCBjYXN0LT5nZXRUeXBlKCksIExMVk1HZXROYW1lKGNvLCAiX2Nhc3Qi KSwgaW5zZXJ0QmVmb3JlKTsKLSsgICAgICAgICAgICAqY29uc3RPZmZzZXQgPSBsbHZtOjpDYXN0 SW5zdDo6Q3JlYXRlKGNhc3QtPmdldE9wY29kZSgpLCBjbywgY2FzdC0+Z2V0VHlwZSgpLAotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6VHdp bmUoY28tPmdldE5hbWUoKSkgKyAiX2Nhc3QiLCBpbnNlcnRCZWZvcmUpOwotICAgICAgICAgaWYg KHZvID09IE5VTEwpCi0gICAgICAgICAgICAgKnZhcmlhYmxlT2Zmc2V0ID0gTlVMTDsKLSAgICAg ICAgIGVsc2UKLS0gICAgICAgICAgICAqdmFyaWFibGVPZmZzZXQgPQotLSAgICAgICAgICAgICAg ICBsbHZtOjpDYXN0SW5zdDo6Q3JlYXRlKGNhc3QtPmdldE9wY29kZSgpLCB2bywgY2FzdC0+Z2V0 VHlwZSgpLCBMTFZNR2V0TmFtZSh2bywgIl9jYXN0IiksIGluc2VydEJlZm9yZSk7Ci0rICAgICAg ICAgICAgKnZhcmlhYmxlT2Zmc2V0ID0gbGx2bTo6Q2FzdEluc3Q6OkNyZWF0ZShjYXN0LT5nZXRP cGNvZGUoKSwgdm8sIGNhc3QtPmdldFR5cGUoKSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06OlR3aW5lKHZvLT5nZXROYW1lKCkpICsg Il9jYXN0IiwgaW5zZXJ0QmVmb3JlKTsKLSAgICAgICAgIHJldHVybjsKLSAgICAgfQotIAotQEAg LTE2MDgsMTYgKzE2MTAsMTggQEAgc3RhdGljIHZvaWQgbEV4dHJhY3RDb25zdGFudE9mZnNldChs bHZtOjpWYWx1ZSAqdmVjLCBsbHZtOjpWYWx1ZSAqKmNvbnN0T2Zmc2V0LAotICAgICAgICAgICAg IGVsc2UgaWYgKGMxID09IE5VTEwgfHwgbGx2bTo6aXNhPGxsdm06OkNvbnN0YW50QWdncmVnYXRl WmVybz4oYzEpKQotICAgICAgICAgICAgICAgICAqY29uc3RPZmZzZXQgPSBjMDsKLSAgICAgICAg ICAgICBlbHNlCi0tICAgICAgICAgICAgICAgICpjb25zdE9mZnNldCA9IGxsdm06OkJpbmFyeU9w ZXJhdG9yOjpDcmVhdGUobGx2bTo6SW5zdHJ1Y3Rpb246OkFkZCwgYzAsIGMxLCBMTFZNR2V0TmFt ZSgiYWRkIiwgYzAsIGMxKSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBpbnNlcnRCZWZvcmUpOwotKyAgICAgICAgICAgICAgICAq Y29uc3RPZmZzZXQgPSBsbHZtOjpCaW5hcnlPcGVyYXRvcjo6Q3JlYXRlKAotKyAgICAgICAgICAg ICAgICAgICAgbGx2bTo6SW5zdHJ1Y3Rpb246OkFkZCwgYzAsIGMxLCAoKGxsdm06OlR3aW5lKCJh ZGRfIikgKyBjMC0+Z2V0TmFtZSgpKSArICJfIikgKyBjMS0+Z2V0TmFtZSgpLAotKyAgICAgICAg ICAgICAgICAgICAgaW5zZXJ0QmVmb3JlKTsKLSAKLSAgICAgICAgICAgICBpZiAodjAgPT0gTlVM TCB8fCBsbHZtOjppc2E8bGx2bTo6Q29uc3RhbnRBZ2dyZWdhdGVaZXJvPih2MCkpCi0gICAgICAg ICAgICAgICAgICp2YXJpYWJsZU9mZnNldCA9IHYxOwotICAgICAgICAgICAgIGVsc2UgaWYgKHYx ID09IE5VTEwgfHwgbGx2bTo6aXNhPGxsdm06OkNvbnN0YW50QWdncmVnYXRlWmVybz4odjEpKQot ICAgICAgICAgICAgICAgICAqdmFyaWFibGVPZmZzZXQgPSB2MDsKLSAgICAgICAgICAgICBlbHNl Ci0tICAgICAgICAgICAgICAgICp2YXJpYWJsZU9mZnNldCA9IGxsdm06OkJpbmFyeU9wZXJhdG9y OjpDcmVhdGUobGx2bTo6SW5zdHJ1Y3Rpb246OkFkZCwgdjAsIHYxLAotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExMVk1HZXRO YW1lKCJhZGQiLCB2MCwgdjEpLCBpbnNlcnRCZWZvcmUpOwotKyAgICAgICAgICAgICAgICAqdmFy aWFibGVPZmZzZXQgPSBsbHZtOjpCaW5hcnlPcGVyYXRvcjo6Q3JlYXRlKAotKyAgICAgICAgICAg ICAgICAgICAgbGx2bTo6SW5zdHJ1Y3Rpb246OkFkZCwgdjAsIHYxLCAoKGxsdm06OlR3aW5lKCJh ZGRfIikgKyB2MC0+Z2V0TmFtZSgpKSArICJfIikgKyB2MS0+Z2V0TmFtZSgpLAotKyAgICAgICAg ICAgICAgICAgICAgaW5zZXJ0QmVmb3JlKTsKLSAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAg ICB9IGVsc2UgaWYgKGJvcC0+Z2V0T3Bjb2RlKCkgPT0gbGx2bTo6SW5zdHJ1Y3Rpb246OlNobCkg ewotICAgICAgICAgICAgIGxFeHRyYWN0Q29uc3RhbnRPZmZzZXQob3AwLCAmYzAsICZ2MCwgaW5z ZXJ0QmVmb3JlKTsKLUBAIC0xNjMzLDEwICsxNjM3LDEyIEBAIHN0YXRpYyB2b2lkIGxFeHRyYWN0 Q29uc3RhbnRPZmZzZXQobGx2bTo6VmFsdWUgKnZlYywgbGx2bTo6VmFsdWUgKipjb25zdE9mZnNl dCwKLSAgICAgICAgICAgICAgICAgKmNvbnN0T2Zmc2V0ID0gdmVjOwotICAgICAgICAgICAgICAg ICAqdmFyaWFibGVPZmZzZXQgPSBOVUxMOwotICAgICAgICAgICAgIH0gZWxzZSB7Ci0tICAgICAg ICAgICAgICAgICpjb25zdE9mZnNldCA9IGxsdm06OkJpbmFyeU9wZXJhdG9yOjpDcmVhdGUobGx2 bTo6SW5zdHJ1Y3Rpb246OlNobCwgYzAsIGMxLCBMTFZNR2V0TmFtZSgic2hsIiwgYzAsIGMxKSwK LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBpbnNlcnRCZWZvcmUpOwotLSAgICAgICAgICAgICAgICAqdmFyaWFibGVPZmZzZXQgPSBs bHZtOjpCaW5hcnlPcGVyYXRvcjo6Q3JlYXRlKGxsdm06Okluc3RydWN0aW9uOjpTaGwsIHYwLCBj MSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBMTFZNR2V0TmFtZSgic2hsIiwgdjAsIGMxKSwgaW5zZXJ0QmVmb3JlKTsKLSsg ICAgICAgICAgICAgICAgKmNvbnN0T2Zmc2V0ID0gbGx2bTo6QmluYXJ5T3BlcmF0b3I6OkNyZWF0 ZSgKLSsgICAgICAgICAgICAgICAgICAgIGxsdm06Okluc3RydWN0aW9uOjpTaGwsIGMwLCBjMSwg KChsbHZtOjpUd2luZSgic2hsXyIpICsgYzAtPmdldE5hbWUoKSkgKyAiXyIpICsgYzEtPmdldE5h bWUoKSwKLSsgICAgICAgICAgICAgICAgICAgIGluc2VydEJlZm9yZSk7Ci0rICAgICAgICAgICAg ICAgICp2YXJpYWJsZU9mZnNldCA9IGxsdm06OkJpbmFyeU9wZXJhdG9yOjpDcmVhdGUoCi0rICAg ICAgICAgICAgICAgICAgICBsbHZtOjpJbnN0cnVjdGlvbjo6U2hsLCB2MCwgYzEsICgobGx2bTo6 VHdpbmUoInNobF8iKSArIHYwLT5nZXROYW1lKCkpICsgIl8iKSArIGMxLT5nZXROYW1lKCksCi0r ICAgICAgICAgICAgICAgICAgICBpbnNlcnRCZWZvcmUpOwotICAgICAgICAgICAgIH0KLSAgICAg ICAgICAgICByZXR1cm47Ci0gICAgICAgICB9IGVsc2UgaWYgKGJvcC0+Z2V0T3Bjb2RlKCkgPT0g bGx2bTo6SW5zdHJ1Y3Rpb246Ok11bCkgewotQEAgLTE2NDgsMjUgKzE2NTQsMzAgQEAgc3RhdGlj IHZvaWQgbEV4dHJhY3RDb25zdGFudE9mZnNldChsbHZtOjpWYWx1ZSAqdmVjLCBsbHZtOjpWYWx1 ZSAqKmNvbnN0T2Zmc2V0LAotICAgICAgICAgICAgIC8vIE5vdGUgdGhhdCB0aGUgZmlyc3QgdGVy bSBpcyBhIGNvbnN0YW50IGFuZCB0aGUgbGFzdCB0aHJlZSBhcmUKLSAgICAgICAgICAgICAvLyB2 YXJpYWJsZS4KLSAgICAgICAgICAgICBpZiAoYzAgIT0gTlVMTCAmJiBjMSAhPSBOVUxMKQotLSAg ICAgICAgICAgICAgICAqY29uc3RPZmZzZXQgPSBsbHZtOjpCaW5hcnlPcGVyYXRvcjo6Q3JlYXRl KGxsdm06Okluc3RydWN0aW9uOjpNdWwsIGMwLCBjMSwgTExWTUdldE5hbWUoIm11bCIsIGMwLCBj MSksCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgaW5zZXJ0QmVmb3JlKTsKLSsgICAgICAgICAgICAgICAgKmNvbnN0T2Zmc2V0ID0g bGx2bTo6QmluYXJ5T3BlcmF0b3I6OkNyZWF0ZSgKLSsgICAgICAgICAgICAgICAgICAgIGxsdm06 Okluc3RydWN0aW9uOjpNdWwsIGMwLCBjMSwgKChsbHZtOjpUd2luZSgibXVsXyIpICsgYzAtPmdl dE5hbWUoKSkgKyAiXyIpICsgYzEtPmdldE5hbWUoKSwKLSsgICAgICAgICAgICAgICAgICAgIGlu c2VydEJlZm9yZSk7Ci0gICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAqY29uc3RP ZmZzZXQgPSBOVUxMOwotIAotICAgICAgICAgICAgIGxsdm06OlZhbHVlICp2YSA9IE5VTEwsICp2 YiA9IE5VTEwsICp2YyA9IE5VTEw7Ci0gICAgICAgICAgICAgaWYgKHYwICE9IE5VTEwgJiYgYzEg IT0gTlVMTCkKLS0gICAgICAgICAgICAgICAgdmEgPSBsbHZtOjpCaW5hcnlPcGVyYXRvcjo6Q3Jl YXRlKGxsdm06Okluc3RydWN0aW9uOjpNdWwsIHYwLCBjMSwgTExWTUdldE5hbWUoIm11bCIsIHYw LCBjMSksCi0rICAgICAgICAgICAgICAgIHZhID0gbGx2bTo6QmluYXJ5T3BlcmF0b3I6OkNyZWF0 ZShsbHZtOjpJbnN0cnVjdGlvbjo6TXVsLCB2MCwgYzEsCi0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxsdm06OlR3aW5lKCJtdWxfIikgKyB2MC0+ Z2V0TmFtZSgpKSArICJfIikgKyBjMS0+Z2V0TmFtZSgpLAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5zZXJ0QmVmb3JlKTsKLSAgICAgICAgICAg ICBpZiAoYzAgIT0gTlVMTCAmJiB2MSAhPSBOVUxMKQotLSAgICAgICAgICAgICAgICB2YiA9IGxs dm06OkJpbmFyeU9wZXJhdG9yOjpDcmVhdGUobGx2bTo6SW5zdHJ1Y3Rpb246Ok11bCwgYzAsIHYx LCBMTFZNR2V0TmFtZSgibXVsIiwgYzAsIHYxKSwKLSsgICAgICAgICAgICAgICAgdmIgPSBsbHZt OjpCaW5hcnlPcGVyYXRvcjo6Q3JlYXRlKGxsdm06Okluc3RydWN0aW9uOjpNdWwsIGMwLCB2MSwK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobGx2 bTo6VHdpbmUoIm11bF8iKSArIGMwLT5nZXROYW1lKCkpICsgIl8iKSArIHYxLT5nZXROYW1lKCks Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnNl cnRCZWZvcmUpOwotICAgICAgICAgICAgIGlmICh2MCAhPSBOVUxMICYmIHYxICE9IE5VTEwpCi0t ICAgICAgICAgICAgICAgIHZjID0gbGx2bTo6QmluYXJ5T3BlcmF0b3I6OkNyZWF0ZShsbHZtOjpJ bnN0cnVjdGlvbjo6TXVsLCB2MCwgdjEsIExMVk1HZXROYW1lKCJtdWwiLCB2MCwgdjEpLAotKyAg ICAgICAgICAgICAgICB2YyA9IGxsdm06OkJpbmFyeU9wZXJhdG9yOjpDcmVhdGUobGx2bTo6SW5z dHJ1Y3Rpb246Ok11bCwgdjAsIHYxLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKChsbHZtOjpUd2luZSgibXVsXyIpICsgdjAtPmdldE5hbWUoKSkg KyAiXyIpICsgdjEtPmdldE5hbWUoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGluc2VydEJlZm9yZSk7Ci0gCi0gICAgICAgICAgICAgbGx2bTo6 VmFsdWUgKnZhYiA9IE5VTEw7Ci0gICAgICAgICAgICAgaWYgKHZhICE9IE5VTEwgJiYgdmIgIT0g TlVMTCkKLS0gICAgICAgICAgICAgICAgdmFiID0gbGx2bTo6QmluYXJ5T3BlcmF0b3I6OkNyZWF0 ZShsbHZtOjpJbnN0cnVjdGlvbjo6QWRkLCB2YSwgdmIsIExMVk1HZXROYW1lKCJhZGQiLCB2YSwg dmIpLAotKyAgICAgICAgICAgICAgICB2YWIgPSBsbHZtOjpCaW5hcnlPcGVyYXRvcjo6Q3JlYXRl KGxsdm06Okluc3RydWN0aW9uOjpBZGQsIHZhLCB2YiwKLSsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxsdm06OlR3aW5lKCJhZGRfIikgKyB2YS0+ Z2V0TmFtZSgpKSArICJfIikgKyB2Yi0+Z2V0TmFtZSgpLAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluc2VydEJlZm9yZSk7Ci0gICAgICAgICAg ICAgZWxzZSBpZiAodmEgIT0gTlVMTCkKLSAgICAgICAgICAgICAgICAgdmFiID0gdmE7Ci1AQCAt MTY3NCw4ICsxNjg1LDkgQEAgc3RhdGljIHZvaWQgbEV4dHJhY3RDb25zdGFudE9mZnNldChsbHZt OjpWYWx1ZSAqdmVjLCBsbHZtOjpWYWx1ZSAqKmNvbnN0T2Zmc2V0LAotICAgICAgICAgICAgICAg ICB2YWIgPSB2YjsKLSAKLSAgICAgICAgICAgICBpZiAodmFiICE9IE5VTEwgJiYgdmMgIT0gTlVM TCkKLS0gICAgICAgICAgICAgICAgKnZhcmlhYmxlT2Zmc2V0ID0gbGx2bTo6QmluYXJ5T3BlcmF0 b3I6OkNyZWF0ZShsbHZtOjpJbnN0cnVjdGlvbjo6QWRkLCB2YWIsIHZjLAotLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExMVk1H ZXROYW1lKCJhZGQiLCB2YWIsIHZjKSwgaW5zZXJ0QmVmb3JlKTsKLSsgICAgICAgICAgICAgICAg KnZhcmlhYmxlT2Zmc2V0ID0gbGx2bTo6QmluYXJ5T3BlcmF0b3I6OkNyZWF0ZSgKLSsgICAgICAg ICAgICAgICAgICAgIGxsdm06Okluc3RydWN0aW9uOjpBZGQsIHZhYiwgdmMsICgobGx2bTo6VHdp bmUoImFkZF8iKSArIHZhYi0+Z2V0TmFtZSgpKSArICJfIikgKyB2Yy0+Z2V0TmFtZSgpLAotKyAg ICAgICAgICAgICAgICAgICAgaW5zZXJ0QmVmb3JlKTsKLSAgICAgICAgICAgICBlbHNlIGlmICh2 YWIgIT0gTlVMTCkKLSAgICAgICAgICAgICAgICAgKnZhcmlhYmxlT2Zmc2V0ID0gdmFiOwotICAg ICAgICAgICAgIGVsc2UKLUBAIC0xOTQzLDcgKzE5NTUsNyBAQCBzdGF0aWMgYm9vbCBsT2Zmc2V0 czMyQml0U2FmZShsbHZtOjpWYWx1ZSAqKnZhcmlhYmxlT2Zmc2V0UHRyLCBsbHZtOjpWYWx1ZSAq KmNvbgotICAgICAgICAgICAgIC8vIGFsbCB6ZXJvcyAoaS5lLiBhIENvbnN0YW50QWdncmVnYXRl WmVybywgYnV0IGp1c3QgaW4gY2FzZSwKLSAgICAgICAgICAgICAvLyBkbyB0aGUgbW9yZSBnZW5l cmFsIGNoZWNrIHdpdGggbFZlY3RvcklzMzJCaXRJbnRzKCkuCi0gICAgICAgICAgICAgdmFyaWFi bGVPZmZzZXQgPSBuZXcgbGx2bTo6VHJ1bmNJbnN0KHZhcmlhYmxlT2Zmc2V0LCBMTFZNVHlwZXM6 OkludDMyVmVjdG9yVHlwZSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgTExWTUdldE5hbWUodmFyaWFibGVPZmZzZXQsICJfdHJ1bmMiKSwgaW5zZXJ0 QmVmb3JlKTsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgbGx2bTo6VHdpbmUodmFyaWFibGVPZmZzZXQtPmdldE5hbWUoKSkgKyAiX3RydW5jIiwgaW5z ZXJ0QmVmb3JlKTsKLSAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0g ICAgIH0KLUBAIC0xOTUyLDcgKzE5NjQsNyBAQCBzdGF0aWMgYm9vbCBsT2Zmc2V0czMyQml0U2Fm ZShsbHZtOjpWYWx1ZSAqKnZhcmlhYmxlT2Zmc2V0UHRyLCBsbHZtOjpWYWx1ZSAqKmNvbgotICAg ICAgICAgaWYgKGxWZWN0b3JJczMyQml0SW50cyhjb25zdE9mZnNldCkpIHsKLSAgICAgICAgICAg ICAvLyBUcnVuY2F0ZSB0aGVtIHNvIHdlIGhhdmUgYSAzMi1iaXQgdmVjdG9yIHR5cGUgZm9yIHRo ZW0uCi0gICAgICAgICAgICAgY29uc3RPZmZzZXQgPSBuZXcgbGx2bTo6VHJ1bmNJbnN0KGNvbnN0 T2Zmc2V0LCBMTFZNVHlwZXM6OkludDMyVmVjdG9yVHlwZSwKLS0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgTExWTUdldE5hbWUoY29uc3RPZmZzZXQsICJfdHJ1 bmMiKSwgaW5zZXJ0QmVmb3JlKTsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgbGx2bTo6VHdpbmUoY29uc3RPZmZzZXQtPmdldE5hbWUoKSkgKyAiX3RydW5j IiwgaW5zZXJ0QmVmb3JlKTsKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgLy8gRklY TUU6IG90aGVyd2lzZSB3ZSBqdXN0IGFzc3VtZSB0aGF0IGFsbCBjb25zdGFudCBvZmZzZXRzCi0g ICAgICAgICAgICAgLy8gY2FuIGFjdHVhbGx5IGFsd2F5cyBmaXQgaW50byAzMi1iaXRzLi4uICAo VGhpcyBjb3VsZCBiZQotQEAgLTE5NjMsNyArMTk3NSw3IEBAIHN0YXRpYyBib29sIGxPZmZzZXRz MzJCaXRTYWZlKGxsdm06OlZhbHVlICoqdmFyaWFibGVPZmZzZXRQdHIsIGxsdm06OlZhbHVlICoq Y29uCi0gICAgICAgICAgICAgLy8gbGx2bTo6Q29uc3RhbnRGb2xkSW5zdHJ1Y3Rpb24oKSBkb2Vz bid0IHNlZW0gdG8gYmUgZG9pbmcKLSAgICAgICAgICAgICAvLyBlbm91Z2ggZm9yIHVzIGluIHNv bWUgY2FzZXMgaWYgd2UgY2FsbCBpdCBmcm9tIGhlcmUuCi0gICAgICAgICAgICAgY29uc3RPZmZz ZXQgPSBuZXcgbGx2bTo6VHJ1bmNJbnN0KGNvbnN0T2Zmc2V0LCBMTFZNVHlwZXM6OkludDMyVmVj dG9yVHlwZSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg TExWTUdldE5hbWUoY29uc3RPZmZzZXQsICJfdHJ1bmMiKSwgaW5zZXJ0QmVmb3JlKTsKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6VHdpbmUoY29u c3RPZmZzZXQtPmdldE5hbWUoKSkgKyAiX3RydW5jIiwgaW5zZXJ0QmVmb3JlKTsKLSAgICAgICAg IH0KLSAgICAgfQotIAotQEAgLTIwMTIsOCArMjAyNCw4IEBAIHN0YXRpYyBib29sIGxPZmZzZXRz MzJCaXRTYWZlKGxsdm06OlZhbHVlICoqb2Zmc2V0UHRyLCBsbHZtOjpJbnN0cnVjdGlvbiAqaW5z ZXJ0Ci0gCi0gICAgICAgICAvLyBBbHRlcm5hdGl2ZWx5LCBvZmZzZXQgY291bGQgYmUgYSBzZXF1 ZW5jZSBvZiBhZGRzIHRlcm1pbmF0aW5nCi0gICAgICAgICAvLyBpbiBzYWZlIGNvbnN0YW50IHZl Y3RvcnMgb3IgYSBTRXh0LgotLSAgICAgICAgKm9mZnNldFB0ciA9Ci0tICAgICAgICAgICAgbmV3 IGxsdm06OlRydW5jSW5zdChvZmZzZXQsIExMVk1UeXBlczo6SW50MzJWZWN0b3JUeXBlLCBMTFZN R2V0TmFtZShvZmZzZXQsICJfdHJ1bmMiKSwgaW5zZXJ0QmVmb3JlKTsKLSsgICAgICAgICpvZmZz ZXRQdHIgPSBuZXcgbGx2bTo6VHJ1bmNJbnN0KG9mZnNldCwgTExWTVR5cGVzOjpJbnQzMlZlY3Rv clR5cGUsIGxsdm06OlR3aW5lKG9mZnNldC0+Z2V0TmFtZSgpKSArICJfdHJ1bmMiLAotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5zZXJ0QmVmb3JlKTsKLSAgICAg ICAgIHJldHVybiB0cnVlOwotICAgICB9IGVsc2UKLSAgICAgICAgIHJldHVybiBmYWxzZTsKLUBA IC0yMjI5LDcgKzIyNDEsOCBAQCBzdGF0aWMgYm9vbCBsR1NUb0dTQmFzZU9mZnNldHMobGx2bTo6 Q2FsbEluc3QgKmNhbGxJbnN0KSB7Ci0gICAgIH0KLSAgICAgLy8gQ2FzdCB0aGUgYmFzZSBwb2lu dGVyIHRvIGEgdm9pZCAqLCBzaW5jZSB0aGF0J3Mgd2hhdCB0aGUKLSAgICAgLy8gX19wc2V1ZG9f Kl9iYXNlX29mZnNldHNfKiBmdW5jdGlvbnMgd2FudC4KLS0gICAgYmFzZVB0ciA9IG5ldyBsbHZt OjpJbnRUb1B0ckluc3QoYmFzZVB0ciwgTExWTVR5cGVzOjpWb2lkUG9pbnRlclR5cGUsIExMVk1H ZXROYW1lKGJhc2VQdHIsICJfMnZvaWQiKSwgY2FsbEluc3QpOwotKyAgICBiYXNlUHRyID0gbmV3 IGxsdm06OkludFRvUHRySW5zdChiYXNlUHRyLCBMTFZNVHlwZXM6OlZvaWRQb2ludGVyVHlwZSwg bGx2bTo6VHdpbmUoYmFzZVB0ci0+Z2V0TmFtZSgpKSArICJfMnZvaWQiLAotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxsSW5zdCk7Ci0gICAgIGxDb3B5TWV0YWRhdGEo YmFzZVB0ciwgY2FsbEluc3QpOwotICAgICBsbHZtOjpGdW5jdGlvbiAqZ2F0aGVyU2NhdHRlckZ1 bmMgPSBpbmZvLT5iYXNlT2Zmc2V0c0Z1bmM7Ci0gCi1AQCAtMjgwMyw3ICsyODE2LDcgQEAgc3Rh dGljIGJvb2wgbEdTVG9Mb2FkU3RvcmUobGx2bTo6Q2FsbEluc3QgKmNhbGxJbnN0KSB7Ci0gICAg ICAgICAgICAgICAgIGxDb3B5TWV0YWRhdGEocHRyLCBjYWxsSW5zdCk7Ci0gICAgICAgICAgICAg ICAgIERlYnVnKHBvcywgIlRyYW5zZm9ybWVkIGdhdGhlciB0byB1bmFsaWduZWQgdmVjdG9yIGxv YWQhIik7Ci0gICAgICAgICAgICAgICAgIGxsdm06Okluc3RydWN0aW9uICpuZXdDYWxsID0KLS0g ICAgICAgICAgICAgICAgICAgIGxDYWxsSW5zdChnYXRoZXJJbmZvLT5sb2FkTWFza2VkRnVuYywg cHRyLCBtYXNrLCBMTFZNR2V0TmFtZShwdHIsICJfbWFza2VkX2xvYWQiKSk7Ci0rICAgICAgICAg ICAgICAgICAgICBsQ2FsbEluc3QoZ2F0aGVySW5mby0+bG9hZE1hc2tlZEZ1bmMsIHB0ciwgbWFz aywgbGx2bTo6VHdpbmUocHRyLT5nZXROYW1lKCkpICsgIl9tYXNrZWRfbG9hZCIpOwotICAgICAg ICAgICAgICAgICBsQ29weU1ldGFkYXRhKG5ld0NhbGwsIGNhbGxJbnN0KTsKLSAgICAgICAgICAg ICAgICAgbGx2bTo6UmVwbGFjZUluc3RXaXRoSW5zdChjYWxsSW5zdCwgbmV3Q2FsbCk7Ci0gICAg ICAgICAgICAgICAgIHJldHVybiB0cnVlOwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9pc3BjL3BhdGNo ZXMvbGx2bTEyLTAwNC5wYXRjaCBiL3NyY3BrZ3MvaXNwYy9wYXRjaGVzL2xsdm0xMi0wMDQucGF0 Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNhOTRkODQ0M2E1ZS4uMDAwMDAwMDAw MDAwCi0tLSBhL3NyY3BrZ3MvaXNwYy9wYXRjaGVzL2xsdm0xMi0wMDQucGF0Y2gKKysrIC9kZXYv bnVsbApAQCAtMSwzNCArMCwwIEBACi1Gcm9tIGMwM2E1MTQyNDQ0NDc2YTFjYWE1YzJiYTdmYTJk OTJkNzc5M2Q2ZjEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBEZWVwYWsgUmFqZW5k cmFrdW1hcmFuIDxkZWVwYWsucmFqZW5kcmFrdW1hcmFuQGludGVsLmNvbT4KLURhdGU6IE1vbiwg MjUgSmFuIDIwMjEgMDk6MjI6NDkgLTA4MDAKLVN1YmplY3Q6IFtQQVRDSF0gRml4aW5nIGJ1aWxk IG9uIGxsdm0gdHJ1bmsuCi0KLS0tLQotIHNyYy9jdHguY3BwIHwgNyArKystLS0tCi0gMSBmaWxl IGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBh L3NyYy9jdHguY3BwIGIvc3JjL2N0eC5jcHAKLWluZGV4IGRlZDUyNGI3MS4uYjYwZTZmZTg0IDEw MDY0NAotLS0tIGEvc3JjL2N0eC5jcHAKLSsrKyBiL3NyYy9jdHguY3BwCi1AQCAtMTAyMCw4ICsx MDIwLDcgQEAgdm9pZCBGdW5jdGlvbkVtaXRDb250ZXh0OjpFbWl0Q2FzZUxhYmVsKGludCB2YWx1 ZSwgYm9vbCBjaGVja01hc2ssIFNvdXJjZVBvcyBwb3MKLSAgICAgbGx2bTo6QmFzaWNCbG9jayAq YmJDYXNlSW1wbCA9IE5VTEw7Ci0gICAgIGlmIChlbWl0R2VuWEhhcmR3YXJlTWFzaygpKSB7Ci0g ICAgICAgICAvLyBDcmVhdGUgYmFzaWMgYmxvY2sgd2l0aCBhY3R1YWwgY2FzZSBpbXBsZW1lbnRh dGlvbgotLSAgICAgICAgbGx2bTo6VHdpbmUgYmJOYW1lID0gbGx2bTo6VHdpbmUoYmJDYXNlLT5n ZXROYW1lKCkpICsgIl9pbXBsIjsKLS0gICAgICAgIGJiQ2FzZUltcGwgPSBDcmVhdGVCYXNpY0Js b2NrKGJiTmFtZSwgYmJDYXNlKTsKLSsgICAgICAgIGJiQ2FzZUltcGwgPSBDcmVhdGVCYXNpY0Js b2NrKGxsdm06OlR3aW5lKGJiQ2FzZS0+Z2V0TmFtZSgpKSArICJfaW1wbCIsIGJiQ2FzZSk7Ci0g ICAgIH0KLSAjZW5kaWYKLSAKLUBAIC0zMTQyLDggKzMxNDEsOCBAQCBsbHZtOjpWYWx1ZSAqRnVu Y3Rpb25FbWl0Q29udGV4dDo6QnJvYWRjYXN0VmFsdWUobGx2bTo6VmFsdWUgKnYsIGxsdm06OlR5 cGUgKnZlYwotICAgICBsbHZtOjpWYWx1ZSAqdW5kZWYyID0gbGx2bTo6VW5kZWZWYWx1ZTo6Z2V0 KHZlY1R5cGUpOwotIAotICAgICAvLyBJbnNlcnRFbGVtZW50Ci0tICAgIGxsdm06OlR3aW5lIHR3 ID0gbmFtZS5pc1RyaXZpYWxseUVtcHR5KCkgPyAobGx2bTo6VHdpbmUodi0+Z2V0TmFtZSgpKSAr ICJfYnJvYWRjYXN0IikgOiBuYW1lICsgbGx2bTo6VHdpbmUoIl9pbml0Iik7Ci0tICAgIGxsdm06 OlZhbHVlICppbnNlcnQgPSBJbnNlcnRJbnN0KHVuZGVmMSwgdiwgMCwgdHcuc3RyKCkuY19zdHIo KSk7Ci0rICAgIGxsdm06OlZhbHVlICppbnNlcnQgPQotKyAgICAgICAgSW5zZXJ0SW5zdCh1bmRl ZjEsIHYsIDAsIG5hbWUuaXNUcml2aWFsbHlFbXB0eSgpID8gKGxsdm06OlR3aW5lKHYtPmdldE5h bWUoKSkgKyAiX2Jyb2FkY2FzdCIpIDogbmFtZSArICJfaW5pdCIpOwotIAotICAgICAvLyBTaHVm ZmxlVmVjdG9yCi0gI2lmIElTUENfTExWTV9WRVJTSU9OIDwgSVNQQ19MTFZNXzExXzAKZGlmZiAt LWdpdCBhL3NyY3BrZ3MvaXNwYy9wYXRjaGVzL2xsdm0xMi0wMDUucGF0Y2ggYi9zcmNwa2dzL2lz cGMvcGF0Y2hlcy9sbHZtMTItMDA1LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCBlM2U5NmIwMGFiZmEuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2lzcGMvcGF0Y2hlcy9s bHZtMTItMDA1LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMzcyICswLDAgQEAKLUZyb20gYzFk MGE1MWJmODQxNmQ0MjE0NGRlOWUyYmRkNTk4MjVlYWVmZjFhYyBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKLUZyb206IEFyaW5hIE5lc2hseWFldmEgPGFyaW5hLm5lc2hseWFldmFAaW50ZWwuY29t PgotRGF0ZTogRnJpLCA4IEphbiAyMDIxIDE0OjEzOjQ5IC0wODAwCi1TdWJqZWN0OiBbUEFUQ0hd IExMVk0gMTEgc3VwcG9ydCBmb3IgZ2VuIGNvZGUKLQotLS0tCi0gc3JjL2N0eC5jcHAgICAgICAg ICAgICAgICAgICAgICB8ICAxMyArKy0KLSBzcmMvZ2VuL0dsb2JhbHNMb2NhbGl6YXRpb24uY3Bw IHwgICA5ICstCi0gc3JjL29wdC5jcHAgICAgICAgICAgICAgICAgICAgICB8IDE0MyArKysrKysr KysrKysrKysrKysrKysrKystLS0tLS0tLQotIDMgZmlsZXMgY2hhbmdlZCwgMTI0IGluc2VydGlv bnMoKyksIDQxIGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvc3JjL2N0eC5jcHAgYi9zcmMv Y3R4LmNwcAotaW5kZXggYjYwZTZmZTg0Li4yYTcyZTY4MzcgMTAwNjQ0Ci0tLS0gYS9zcmMvY3R4 LmNwcAotKysrIGIvc3JjL2N0eC5jcHAKLUBAIC0xLDUgKzEsNSBAQAotIC8qCi0tICBDb3B5cmln aHQgKGMpIDIwMTAtMjAyMCwgSW50ZWwgQ29ycG9yYXRpb24KLSsgIENvcHlyaWdodCAoYykgMjAx MC0yMDIxLCBJbnRlbCBDb3Jwb3JhdGlvbgotICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAKLSAg IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg b3Igd2l0aG91dAotQEAgLTM2ODUsOCArMzY4NSwxNyBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25F bWl0Q29udGV4dDo6R2VuWFNpbWRDRlByZWRpY2F0ZShsbHZtOjpWYWx1ZSAqdmFsdWUsIGxsdm06 OgotICAgICBBc3NlcnRQb3MoY3VycmVudFBvcywgbGx2bTo6aXNhPGxsdm06OlZlY3RvclR5cGU+ KHZhbHVlLT5nZXRUeXBlKCkpKTsKLSAgICAgbGx2bTo6VmVjdG9yVHlwZSAqdnQgPSBsbHZtOjpk eW5fY2FzdDxsbHZtOjpWZWN0b3JUeXBlPih2YWx1ZS0+Z2V0VHlwZSgpKTsKLSAgICAgaWYgKGRl ZmF1bHRzID09IE5VTEwpIHsKLS0gICAgICAgIGRlZmF1bHRzID0gbGx2bTo6Q29uc3RhbnRWZWN0 b3I6OmdldFNwbGF0KHZhbHVlLT5nZXRUeXBlKCktPmdldFZlY3Rvck51bUVsZW1lbnRzKCksCi0r I2lmIElTUENfTExWTV9WRVJTSU9OIDwgSVNQQ19MTFZNXzExXzAKLSsgICAgICAgIGRlZmF1bHRz ID0gbGx2bTo6Q29uc3RhbnRWZWN0b3I6OmdldFNwbGF0KHZ0LT5nZXRWZWN0b3JOdW1FbGVtZW50 cygpLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg bGx2bTo6Q29uc3RhbnQ6OmdldE51bGxWYWx1ZSh2dC0+Z2V0RWxlbWVudFR5cGUoKSkpOwotKyNl bGlmIElTUENfTExWTV9WRVJTSU9OID09IElTUENfTExWTV8xMV8wCi0rICAgICAgICBkZWZhdWx0 cyA9IGxsdm06OkNvbnN0YW50VmVjdG9yOjpnZXRTcGxhdCh7c3RhdGljX2Nhc3Q8dW5zaWduZWQg aW50Pih2dC0+Z2V0TnVtRWxlbWVudHMoKSksIGZhbHNlfSwKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06OkNvbnN0YW50OjpnZXROdWxsVmFs dWUodnQtPmdldEVsZW1lbnRUeXBlKCkpKTsKLSsjZWxzZQotKyAgICAgICAgZGVmYXVsdHMgPSBs bHZtOjpDb25zdGFudFZlY3Rvcjo6Z2V0U3BsYXQoCi0rICAgICAgICAgICAgbGx2bTo6RWxlbWVu dENvdW50OjpnZXQoc3RhdGljX2Nhc3Q8dW5zaWduZWQgaW50Pih2dC0+Z2V0TnVtRWxlbWVudHMo KSksIGZhbHNlKSwKLSsgICAgICAgICAgICBsbHZtOjpDb25zdGFudDo6Z2V0TnVsbFZhbHVlKHZ0 LT5nZXRFbGVtZW50VHlwZSgpKSk7Ci0rI2VuZGlmCi0gICAgIH0KLSAKLSAgICAgYXV0byBGbiA9 IGxsdm06OkdlblhJbnRyaW5zaWM6OmdldEdlblhEZWNsYXJhdGlvbihtLT5tb2R1bGUsIGxsdm06 OkdlblhJbnRyaW5zaWM6Omdlbnhfc2ltZGNmX3ByZWRpY2F0ZSwKLWRpZmYgLS1naXQgYS9zcmMv Z2VuL0dsb2JhbHNMb2NhbGl6YXRpb24uY3BwIGIvc3JjL2dlbi9HbG9iYWxzTG9jYWxpemF0aW9u LmNwcAotaW5kZXggYTE3NmU5NDYyLi40MWYzYjAwZTIgMTAwNjQ0Ci0tLS0gYS9zcmMvZ2VuL0ds b2JhbHNMb2NhbGl6YXRpb24uY3BwCi0rKysgYi9zcmMvZ2VuL0dsb2JhbHNMb2NhbGl6YXRpb24u Y3BwCi1AQCAtMSw1ICsxLDUgQEAKLSAvKgotLSAgQ29weXJpZ2h0IChjKSAyMDE0LCAyMDE2LTIw MjAsIEludGVsIENvcnBvcmF0aW9uCi0rICBDb3B5cmlnaHQgKGMpIDIwMTQsIDIwMTYtMjAyMSwg SW50ZWwgQ29ycG9yYXRpb24KLSAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gCi0gICBSZWRpc3Ry aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv dXQKLUBAIC01Myw4ICs1MywxMCBAQAotICNpbmNsdWRlIDxsbHZtL0dlblhJbnRyaW5zaWNzL0dl blhJbnRyT3B0cy5oPgotICNpbmNsdWRlIDxsbHZtL0dlblhJbnRyaW5zaWNzL0dlblhJbnRyaW5z aWNzLmg+Ci0gI2luY2x1ZGUgPGxsdm0vR2VuWEludHJpbnNpY3MvR2VuWE1ldGFkYXRhLmg+Ci0t I2luY2x1ZGUgPGxsdm0vSVIvQ0ZHLmg+Ci0rI2lmIElTUENfTExWTV9WRVJTSU9OIDwgSVNQQ19M TFZNXzExXzAKLSAjaW5jbHVkZSA8bGx2bS9JUi9DYWxsU2l0ZS5oPgotKyNlbmRpZgotKyNpbmNs dWRlIDxsbHZtL0lSL0NGRy5oPgotICNpbmNsdWRlIDxsbHZtL0lSL0RlYnVnSW5mby5oPgotICNp bmNsdWRlIDxsbHZtL0lSL0RvbWluYXRvcnMuaD4KLSAjaW5jbHVkZSA8bGx2bS9JUi9GdW5jdGlv bi5oPgotQEAgLTQ3MCw3ICs0NzIsOCBAQCB2b2lkIEdsb2JhbHNMb2NhbGl6YXRpb246OkxvY2Fs aXplR2xvYmFscyhMb2NhbGl6YXRpb25JbmZvICZMSSkgewotICAgICAgICAgSW5zdHJ1Y3Rpb24g JkZpcnN0SSA9ICpGbi0+Z2V0RW50cnlCbG9jaygpLmJlZ2luKCk7Ci0gICAgICAgICBUeXBlICpF bGVtVHkgPSBHVi0+Z2V0VHlwZSgpLT5nZXRFbGVtZW50VHlwZSgpOwotICAgICAgICAgQWxsb2Nh SW5zdCAqQWxsb2NhID0gbmV3IEFsbG9jYUluc3QoRWxlbVR5LCAwLCBHVi0+Z2V0TmFtZSgpICsg Ii5sb2NhbCIsICZGaXJzdEkpOwotLSAgICAgICAgQWxsb2NhLT5zZXRBbGlnbm1lbnQobGx2bTo6 TWF5YmVBbGlnbihHVi0+Z2V0QWxpZ25tZW50KCkpKTsKLSsgICAgICAgIEFsbG9jYS0+c2V0QWxp Z25tZW50KGxsdm06Ok1heWJlQWxpZ24oR1YtPmdldEFsaWdubWVudCgpKS52YWx1ZU9yT25lKCkp OwotKwotICAgICAgICAgaWYgKCFpc2E8VW5kZWZWYWx1ZT4oR1YtPmdldEluaXRpYWxpemVyKCkp KQotICAgICAgICAgICAgIG5ldyBTdG9yZUluc3QoR1YtPmdldEluaXRpYWxpemVyKCksIEFsbG9j YSwgJkZpcnN0SSk7Ci0gCi1kaWZmIC0tZ2l0IGEvc3JjL29wdC5jcHAgYi9zcmMvb3B0LmNwcAot aW5kZXggZDU4ZDc3ZjczLi4xNzg5Yjg0NzYgMTAwNjQ0Ci0tLS0gYS9zcmMvb3B0LmNwcAotKysr IGIvc3JjL29wdC5jcHAKLUBAIC0yODk5LDE1ICsyODk5LDE3IEBAIHN0YXRpYyBsbHZtOjpGdW5j dGlvbiAqbEdlblhNYXNrZWRJbnQ4SW5zdChsbHZtOjpJbnN0cnVjdGlvbiAqaW5zdCwgYm9vbCBp c1N0b3JlCi0gc3RhdGljIGxsdm06OkNhbGxJbnN0ICpsR2VuWFN0b3JlSW5zdChsbHZtOjpWYWx1 ZSAqdmFsLCBsbHZtOjpWYWx1ZSAqcHRyLCBsbHZtOjpJbnN0cnVjdGlvbiAqaW5zdCkgewotICAg ICBBc3NlcnQoZy0+dGFyZ2V0LT5pc0dlblhUYXJnZXQoKSk7Ci0gICAgIEFzc2VydChsbHZtOjpp c2E8bGx2bTo6VmVjdG9yVHlwZT4odmFsLT5nZXRUeXBlKCkpKTsKLS0gICAgQXNzZXJ0KGxsdm06 OmlzUG93ZXJPZjJfMzIodmFsLT5nZXRUeXBlKCktPmdldFZlY3Rvck51bUVsZW1lbnRzKCkpKTsK LS0gICAgQXNzZXJ0KHZhbC0+Z2V0VHlwZSgpLT5nZXRQcmltaXRpdmVTaXplSW5CaXRzKCkgLyA4 IDw9IDggKiBPV09SRCk7Ci0rCi0rICAgIGxsdm06OlZlY3RvclR5cGUgKnZhbFZlY1R5cGUgPSBs bHZtOjpkeW5fY2FzdDxsbHZtOjpWZWN0b3JUeXBlPih2YWwtPmdldFR5cGUoKSk7Ci0rICAgIEFz c2VydChsbHZtOjppc1Bvd2VyT2YyXzMyKHZhbFZlY1R5cGUtPmdldE51bUVsZW1lbnRzKCkpKTsK LSsgICAgQXNzZXJ0KHZhbFZlY1R5cGUtPmdldFByaW1pdGl2ZVNpemVJbkJpdHMoKSAvIDggPD0g OCAqIE9XT1JEKTsKLSAKLSAgICAgLy8gVGhlIGRhdGEgd3JpdGUgb2Ygc3ZtIHN0b3JlIG11c3Qg aGF2ZSBhIHNpemUgdGhhdCBpcyBhIHBvd2VyIG9mIHR3byBmcm9tIDE2IHRvIDEyOAotICAgICAv LyBieXRlcy4gSG93ZXZlciBmb3IgaW50OCB0eXBlIGFuZCBzaW1kIHdpZHRoID0gOCwgdGhlIGRh dGEgd3JpdGUgc2l6ZSBpcyA4LgotICAgICAvLyBTbyB3ZSB1c2UgbWFza2VkIHN0b3JlIGZ1bmN0 aW9uIGhlcmUgaW5zdGVhZCBvZiBzdm0gc3RvcmUgd2hpY2ggcHJvY2VzcyBpbnQ4IHR5cGUKLSAg ICAgLy8gY29ycmVjdGx5LgotLSAgICBpZiAodmFsLT5nZXRUeXBlKCktPmdldFByaW1pdGl2ZVNp emVJbkJpdHMoKSAvIDggPCAxNikgewotLSAgICAgICAgQXNzZXJ0KHZhbC0+Z2V0VHlwZSgpLT5n ZXRTY2FsYXJUeXBlKCkgPT0gTExWTVR5cGVzOjpJbnQ4VHlwZSk7Ci0rICAgIGlmICh2YWxWZWNU eXBlLT5nZXRQcmltaXRpdmVTaXplSW5CaXRzKCkgLyA4IDwgMTYpIHsKLSsgICAgICAgIEFzc2Vy dCh2YWxWZWNUeXBlLT5nZXRTY2FsYXJUeXBlKCkgPT0gTExWTVR5cGVzOjpJbnQ4VHlwZSk7Ci0g ICAgICAgICBpZiAobGx2bTo6RnVuY3Rpb24gKm1hc2tlZEZ1bmMgPSBsR2VuWE1hc2tlZEludDhJ bnN0KGluc3QsIHRydWUpKQotICAgICAgICAgICAgIHJldHVybiBsbHZtOjpkeW5fY2FzdDxsbHZt OjpDYWxsSW5zdD4obENhbGxJbnN0KG1hc2tlZEZ1bmMsIHB0ciwgdmFsLCBMTFZNTWFza0FsbE9u LCAiIikpOwotICAgICAgICAgZWxzZSB7Ci1AQCAtMjkyMywxNSArMjkyNSwxNyBAQCBzdGF0aWMg bGx2bTo6Q2FsbEluc3QgKmxHZW5YU3RvcmVJbnN0KGxsdm06OlZhbHVlICp2YWwsIGxsdm06OlZh bHVlICpwdHIsIGxsdm06OgotIAotIHN0YXRpYyBsbHZtOjpDYWxsSW5zdCAqbEdlblhMb2FkSW5z dChsbHZtOjpWYWx1ZSAqcHRyLCBsbHZtOjpUeXBlICpyZXRUeXBlLCBsbHZtOjpJbnN0cnVjdGlv biAqaW5zdCkgewotICAgICBBc3NlcnQobGx2bTo6aXNhPGxsdm06OlZlY3RvclR5cGU+KHJldFR5 cGUpKTsKLS0gICAgQXNzZXJ0KGxsdm06OmlzUG93ZXJPZjJfMzIocmV0VHlwZS0+Z2V0VmVjdG9y TnVtRWxlbWVudHMoKSkpOwotLSAgICBBc3NlcnQocmV0VHlwZS0+Z2V0UHJpbWl0aXZlU2l6ZUlu Qml0cygpKTsKLS0gICAgQXNzZXJ0KHJldFR5cGUtPmdldFByaW1pdGl2ZVNpemVJbkJpdHMoKSAv IDggPD0gOCAqIE9XT1JEKTsKLSsKLSsgICAgbGx2bTo6VmVjdG9yVHlwZSAqcmV0VmVjVHlwZSA9 IGxsdm06OmR5bl9jYXN0PGxsdm06OlZlY3RvclR5cGU+KHJldFR5cGUpOwotKyAgICBBc3NlcnQo bGx2bTo6aXNQb3dlck9mMl8zMihyZXRWZWNUeXBlLT5nZXROdW1FbGVtZW50cygpKSk7Ci0rICAg IEFzc2VydChyZXRWZWNUeXBlLT5nZXRQcmltaXRpdmVTaXplSW5CaXRzKCkpOwotKyAgICBBc3Nl cnQocmV0VmVjVHlwZS0+Z2V0UHJpbWl0aXZlU2l6ZUluQml0cygpIC8gOCA8PSA4ICogT1dPUkQp OwotICAgICAvLyBUaGUgZGF0YSByZWFkIG9mIHN2bSBsb2FkIG11c3QgaGF2ZSBhIHNpemUgdGhh dCBpcyBhIHBvd2VyIG9mIHR3byBmcm9tIDE2IHRvIDEyOAotICAgICAvLyBieXRlcy4gSG93ZXZl ciBmb3IgaW50OCB0eXBlIGFuZCBzaW1kIHdpZHRoID0gOCwgdGhlIGRhdGEgcmVhZCBzaXplIGlz IDguCi0gICAgIC8vIFNvIHdlIHVzZSBtYXNrZWQgbG9hZCBmdW5jdGlvbiBoZXJlIGluc3RlYWQg b2Ygc3ZtIGxvYWQgd2hpY2ggcHJvY2VzcyBpbnQ4IHR5cGUKLSAgICAgLy8gY29ycmVjdGx5Lgot LSAgICBpZiAocmV0VHlwZS0+Z2V0UHJpbWl0aXZlU2l6ZUluQml0cygpIC8gOCA8IDE2KSB7Ci0t ICAgICAgICBBc3NlcnQocmV0VHlwZS0+Z2V0U2NhbGFyVHlwZSgpID09IExMVk1UeXBlczo6SW50 OFR5cGUpOwotKyAgICBpZiAocmV0VmVjVHlwZS0+Z2V0UHJpbWl0aXZlU2l6ZUluQml0cygpIC8g OCA8IDE2KSB7Ci0rICAgICAgICBBc3NlcnQocmV0VmVjVHlwZS0+Z2V0U2NhbGFyVHlwZSgpID09 IExMVk1UeXBlczo6SW50OFR5cGUpOwotICAgICAgICAgaWYgKGxsdm06OkZ1bmN0aW9uICptYXNr ZWRGdW5jID0gbEdlblhNYXNrZWRJbnQ4SW5zdChpbnN0LCBmYWxzZSkpCi0gICAgICAgICAgICAg cmV0dXJuIGxsdm06OmR5bl9jYXN0PGxsdm06OkNhbGxJbnN0PihsQ2FsbEluc3QobWFza2VkRnVu YywgcHRyLCBMTFZNTWFza0FsbE9uLCAiIikpOwotICAgICAgICAgZWxzZSB7Ci1AQCAtNTYyMiwx NSArNTYyNiwyNCBAQCBzdGF0aWMgYm9vbCBsVmVjdG9yaXplR0VQcyhsbHZtOjpWYWx1ZSAqcHRy LCBzdGQ6OnZlY3RvcjxQdHJVc2U+ICZwdHJVc2VzLCBzdGQ6OgotICAgICAgICAgbGx2bTo6UHRy VG9JbnRJbnN0ICpwdHJUb0ludCA9Ci0gICAgICAgICAgICAgbmV3IGxsdm06OlB0clRvSW50SW5z dChwdHIsIExMVk1UeXBlczo6SW50NjRUeXBlLCAidmVjdG9yaXplZF9wdHJ0b2ludCIsIGluc2Vy dEJlZm9yZSk7Ci0gICAgICAgICBsbHZtOjpJbnN0cnVjdGlvbiAqYWRkciA9IGxsdm06OkJpbmFy eU9wZXJhdG9yOjpDcmVhdGVBZGQocHRyVG9JbnQsIG9mZnNldCwgInZlY3Rvcml6ZWRfYWRkcmVz cyIsIGluc2VydEJlZm9yZSk7Ci0rI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8x MV8wCi0rICAgICAgICBsbHZtOjpUeXBlICpyZXRUeXBlID0gbGx2bTo6Rml4ZWRWZWN0b3JUeXBl OjpnZXQoc2NhbGFyX3R5cGUsIHJlcVNpemUgLyB0X3NpemUpOwotKyNlbHNlCi0gICAgICAgICBs bHZtOjpUeXBlICpyZXRUeXBlID0gbGx2bTo6VmVjdG9yVHlwZTo6Z2V0KHNjYWxhcl90eXBlLCBy ZXFTaXplIC8gdF9zaXplKTsKLSsjZW5kaWYKLSAgICAgICAgIGxsdm06OkZ1bmN0aW9uICpmbiA9 IGxsdm06OkdlblhJbnRyaW5zaWM6OmdldEdlblhEZWNsYXJhdGlvbigKLSAgICAgICAgICAgICBt LT5tb2R1bGUsIGxsdm06OkdlblhJbnRyaW5zaWM6Omdlbnhfc3ZtX2Jsb2NrX2xkX3VuYWxpZ25l ZCwge3JldFR5cGUsIGFkZHItPmdldFR5cGUoKX0pOwotICAgICAgICAgbGx2bTo6SW5zdHJ1Y3Rp b24gKmxkID0gbGx2bTo6Q2FsbEluc3Q6OkNyZWF0ZShmbiwge2FkZHJ9LCAidmVjdG9yaXplZF9s ZCIsIGluc2VydEJlZm9yZSk7Ci0gCi0gICAgICAgICBpZiAobG9hZGluZ1B0cikgewotICAgICAg ICAgICAgIC8vIENhc3QgaW50IHRvIHB0ciB2aWEgaW50dG9wdHIKLSsjaWYgSVNQQ19MTFZNX1ZF UlNJT04gPj0gSVNQQ19MTFZNXzExXzAKLSsgICAgICAgICAgICBsZCA9IG5ldyBsbHZtOjpJbnRU b1B0ckluc3QobGQsIGxsdm06OkZpeGVkVmVjdG9yVHlwZTo6Z2V0KG9yaWdpbmFsVHlwZSwgcmVx U2l6ZSAvIHRfc2l6ZSksCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICJ2ZWN0b3JpemVkX2ludHRvcHRyIiwgaW5zZXJ0QmVmb3JlKTsKLSsjZWxzZQotICAgICAgICAg ICAgIGxkID0gbmV3IGxsdm06OkludFRvUHRySW5zdChsZCwgbGx2bTo6VmVjdG9yVHlwZTo6Z2V0 KG9yaWdpbmFsVHlwZSwgcmVxU2l6ZSAvIHRfc2l6ZSksCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICJ2ZWN0b3JpemVkX2ludHRvcHRyIiwgaW5zZXJ0QmVmb3JlKTsK LSsjZW5kaWYKLSAgICAgICAgIH0KLSAKLSAgICAgICAgIC8vIFNjYWxhciBleHRyYWN0cyBmb3Ig YWxsIGxvYWRlZCBlbGVtZW50cwotQEAgLTYxNjAsMTkgKzYxNzMsMzQgQEAgYm9vbCBSZXBsYWNl TExWTUludHJpbnNpY3M6OnJ1bk9uQmFzaWNCbG9jayhsbHZtOjpCYXNpY0Jsb2NrICZiYikgewot ICAgICAgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmluc3QgPSAmKkk7Ci0gICAgICAgICBpZiAobGx2 bTo6Q2FsbEluc3QgKmNpID0gbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6Q2FsbEluc3Q+KGluc3QpKSB7 Ci0gICAgICAgICAgICAgbGx2bTo6RnVuY3Rpb24gKmZ1bmMgPSBjaS0+Z2V0Q2FsbGVkRnVuY3Rp b24oKTsKLS0gICAgICAgICAgICBpZiAoZnVuYyAmJiBmdW5jLT5nZXROYW1lKCkgPT0gImxsdm0u dHJhcCIpIHsKLSsgICAgICAgICAgICBpZiAoZnVuYyAmJiBmdW5jLT5nZXROYW1lKCkuZXF1YWxz KCJsbHZtLnRyYXAiKSkgewotICAgICAgICAgICAgICAgICBsbHZtOjpUeXBlICphcmdUeXBlc1td ID0ge0xMVk1UeXBlczo6SW50MVZlY3RvclR5cGUsIExMVk1UeXBlczo6SW50MTZWZWN0b3JUeXBl fTsKLSAgICAgICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24gb2YgcGFyYW1ldGVycyBmb3IgZ2Vu eF9yYXdfc2VuZF9ub3Jlc3VsdCBjYW4gYmUgZm91bmQgaW4gdGFyZ2V0LWdlbngubGwKLSAgICAg ICAgICAgICAgICAgYXV0byBGbiA9ICtsbHZtOjpHZW5YSW50cmluc2ljOjpnZXRHZW5YRGVjbGFy YXRpb24oCi0gICAgICAgICAgICAgICAgICAgICBtLT5tb2R1bGUsIGxsdm06OkdlblhJbnRyaW5z aWM6OmdlbnhfcmF3X3NlbmRfbm9yZXN1bHQsIGFyZ1R5cGVzKTsKLSAgICAgICAgICAgICAgICAg bGx2bTo6U21hbGxWZWN0b3I8bGx2bTo6VmFsdWUgKiwgOD4gQXJnczsKLSAgICAgICAgICAgICAg ICAgQXJncy5wdXNoX2JhY2sobGx2bTo6Q29uc3RhbnRJbnQ6OmdldChMTFZNVHlwZXM6OkludDMy VHlwZSwgMCkpOwotLSAgICAgICAgICAgICAgICBBcmdzLnB1c2hfYmFjayhsbHZtOjpDb25zdGFu dFZlY3Rvcjo6Z2V0U3BsYXQoZy0+dGFyZ2V0LT5nZXROYXRpdmVWZWN0b3JXaWR0aCgpLAotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgbGx2bTo6Q29uc3RhbnRJbnQ6OmdldFRydWUoKmctPmN0eCkpKTsKLSsgICAgICAgICAgICAg ICAgQXJncy5wdXNoX2JhY2sobGx2bTo6Q29uc3RhbnRWZWN0b3I6OmdldFNwbGF0KAotKyNpZiBJ U1BDX0xMVk1fVkVSU0lPTiA8IElTUENfTExWTV8xMV8wCi0rICAgICAgICAgICAgICAgICAgICBn LT50YXJnZXQtPmdldE5hdGl2ZVZlY3RvcldpZHRoKCksCi0rI2VsaWYgSVNQQ19MTFZNX1ZFUlNJ T04gPT0gSVNQQ19MTFZNXzExXzAKLSsgICAgICAgICAgICAgICAgICAgIHtzdGF0aWNfY2FzdDx1 bnNpZ25lZCBpbnQ+KGctPnRhcmdldC0+Z2V0TmF0aXZlVmVjdG9yV2lkdGgoKSksIGZhbHNlfSwK LSsjZWxzZSAvLyBMTFZNIDEyLjArCi0rICAgICAgICAgICAgICAgICAgICBsbHZtOjpFbGVtZW50 Q291bnQ6OmdldChzdGF0aWNfY2FzdDx1bnNpZ25lZCBpbnQ+KGctPnRhcmdldC0+Z2V0TmF0aXZl VmVjdG9yV2lkdGgoKSksIGZhbHNlKSwKLSsjZW5kaWYKLSsgICAgICAgICAgICAgICAgICAgIGxs dm06OkNvbnN0YW50SW50OjpnZXRUcnVlKCpnLT5jdHgpKSk7Ci0rCi0gICAgICAgICAgICAgICAg IEFyZ3MucHVzaF9iYWNrKGxsdm06OkNvbnN0YW50SW50OjpnZXQoTExWTVR5cGVzOjpJbnQzMlR5 cGUsIDM5KSk7Ci0gICAgICAgICAgICAgICAgIEFyZ3MucHVzaF9iYWNrKGxsdm06OkNvbnN0YW50 SW50OjpnZXQoTExWTVR5cGVzOjpJbnQzMlR5cGUsIDMzNTU0NDQ4KSk7Ci0gICAgICAgICAgICAg ICAgIGxsdm06OlZhbHVlICp6ZXJvTWFzayA9IGxsdm06OkNvbnN0YW50VmVjdG9yOjpnZXRTcGxh dCgKLS0gICAgICAgICAgICAgICAgICAgIGctPnRhcmdldC0+Z2V0TmF0aXZlVmVjdG9yV2lkdGgo KSwgbGx2bTo6Q29uc3RhbnQ6OmdldE51bGxWYWx1ZShsbHZtOjpUeXBlOjpnZXRJbnQxNlR5KCpn LT5jdHgpKSk7Ci0rI2lmIElTUENfTExWTV9WRVJTSU9OIDwgSVNQQ19MTFZNXzExXzAKLSsgICAg ICAgICAgICAgICAgICAgIGctPnRhcmdldC0+Z2V0TmF0aXZlVmVjdG9yV2lkdGgoKSwKLSsjZWxp ZiBJU1BDX0xMVk1fVkVSU0lPTiA9PSBJU1BDX0xMVk1fMTFfMAotKyAgICAgICAgICAgICAgICAg ICAge3N0YXRpY19jYXN0PHVuc2lnbmVkIGludD4oZy0+dGFyZ2V0LT5nZXROYXRpdmVWZWN0b3JX aWR0aCgpKSwgZmFsc2V9LAotKyNlbHNlIC8vIExMVk0gMTIuMCsKLSsgICAgICAgICAgICAgICAg ICAgIGxsdm06OkVsZW1lbnRDb3VudDo6Z2V0KHN0YXRpY19jYXN0PHVuc2lnbmVkIGludD4oZy0+ dGFyZ2V0LT5nZXROYXRpdmVWZWN0b3JXaWR0aCgpKSwgZmFsc2UpLAotKyNlbmRpZgotKyAgICAg ICAgICAgICAgICAgICAgbGx2bTo6Q29uc3RhbnQ6OmdldE51bGxWYWx1ZShsbHZtOjpUeXBlOjpn ZXRJbnQxNlR5KCpnLT5jdHgpKSk7Ci0gICAgICAgICAgICAgICAgIEFyZ3MucHVzaF9iYWNrKHpl cm9NYXNrKTsKLSAKLSAgICAgICAgICAgICAgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKm5ld0luc3Qg PSBsbHZtOjpDYWxsSW5zdDo6Q3JlYXRlKEZuLCBBcmdzLCBjaS0+Z2V0TmFtZSgpKTsKLUBAIC02 MTgxLDcgKzYyMDksNyBAQCBib29sIFJlcGxhY2VMTFZNSW50cmluc2ljczo6cnVuT25CYXNpY0Js b2NrKGxsdm06OkJhc2ljQmxvY2sgJmJiKSB7Ci0gICAgICAgICAgICAgICAgICAgICBtb2RpZmll ZEFueSA9IHRydWU7Ci0gICAgICAgICAgICAgICAgICAgICBnb3RvIHJlc3RhcnQ7Ci0gICAgICAg ICAgICAgICAgIH0KLS0gICAgICAgICAgICB9IGVsc2UgaWYgKGZ1bmMgJiYgZnVuYy0+Z2V0TmFt ZSgpID09ICJsbHZtLmFzc3VtZSIpIHsKLSsgICAgICAgICAgICB9IGVsc2UgaWYgKGZ1bmMgJiYg ZnVuYy0+Z2V0TmFtZSgpLmVxdWFscygibGx2bS5hc3N1bWUiKSkgewotICAgICAgICAgICAgICAg ICBjaS0+ZXJhc2VGcm9tUGFyZW50KCk7Ci0gICAgICAgICAgICAgICAgIG1vZGlmaWVkQW55ID0g dHJ1ZTsKLSAgICAgICAgICAgICAgICAgZ290byByZXN0YXJ0OwotQEAgLTYzMzUsNyArNjM2Myw3 IEBAIGJvb2wgQ2hlY2tVbnN1cHBvcnRlZEluc3RzOjpydW5PbkJhc2ljQmxvY2sobGx2bTo6QmFz aWNCbG9jayAmYmIpIHsKLSAgICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICAg Zm9yIChpbnQgaSA9IDA7IGkgPCB1bnN1cHBvcnRlZEZ1bmNzLnNpemUoKTsgaSsrKSB7Ci0gICAg ICAgICAgICAgICAgIHN0ZDo6c21hdGNoIG1hdGNoOwotLSAgICAgICAgICAgICAgICBzdGQ6OnN0 cmluZyBmdW5jTmFtZSA9IGZ1bmMtPmdldE5hbWUoKTsKLSsgICAgICAgICAgICAgICAgc3RkOjpz dHJpbmcgZnVuY05hbWUgPSBmdW5jLT5nZXROYW1lKCkuc3RyKCk7Ci0gICAgICAgICAgICAgICAg IGlmIChzdGQ6OnJlZ2V4X21hdGNoKGZ1bmNOYW1lLCBtYXRjaCwgdW5zdXBwb3J0ZWRGdW5jc1tp XSkpIHsKLSAgICAgICAgICAgICAgICAgICAgIC8vIFdlIGZvdW5kIHVuc3VwcG9ydGVkIGZ1bmN0 aW9uLiBHZW5lcmF0ZSBlcnJvciBhbmQgc3RvcCBjb21waWxhdGlvbi4KLSAgICAgICAgICAgICAg ICAgICAgIFNvdXJjZVBvcyBwb3M7Ci1AQCAtNjQxOCwxMiArNjQ0NiwxNCBAQCBib29sIE1hbmds ZU9wZW5DTEJ1aWx0aW5zOjpydW5PbkJhc2ljQmxvY2sobGx2bTo6QmFzaWNCbG9jayAmYmIpIHsK LSAgICAgICAgICAgICBpZiAoZnVuYy0+Z2V0TmFtZSgpLnN0YXJ0c3dpdGgoIl9fc3BpcnZfb2Ns IikpIHsKLSAgICAgICAgICAgICAgICAgc3RkOjpzdHJpbmcgbWFuZ2xlZE5hbWU7Ci0gICAgICAg ICAgICAgICAgIGxsdm06OlR5cGUgKnJldFR5cGUgPSBmdW5jLT5nZXRSZXR1cm5UeXBlKCk7Ci0t ICAgICAgICAgICAgICAgIHN0ZDo6c3RyaW5nIGZ1bmNOYW1lID0gZnVuYy0+Z2V0TmFtZSgpOwot KyAgICAgICAgICAgICAgICBzdGQ6OnN0cmluZyBmdW5jTmFtZSA9IGZ1bmMtPmdldE5hbWUoKS5z dHIoKTsKLSAgICAgICAgICAgICAgICAgc3RkOjp2ZWN0b3I8bGx2bTo6VHlwZSAqPiBBcmdUeTsK LSAgICAgICAgICAgICAgICAgLy8gc3BpcnYgT3BlbkNMIGJ1aWx0aW5zIGFyZSB1c2VkIGZvciBk b3VibGUgdHlwZXMgb25seQotLSAgICAgICAgICAgICAgICBBc3NlcnQocmV0VHlwZS0+aXNWZWN0 b3JUeSgpICYmIHJldFR5cGUtPmdldFZlY3RvckVsZW1lbnRUeXBlKCktPmlzRG91YmxlVHkoKSB8 fAotKyAgICAgICAgICAgICAgICBBc3NlcnQocmV0VHlwZS0+aXNWZWN0b3JUeSgpICYmCi0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6VmVjdG9yVHlwZT4o cmV0VHlwZSktPmdldEVsZW1lbnRUeXBlKCktPmlzRG91YmxlVHkoKSB8fAotICAgICAgICAgICAg ICAgICAgICAgICAgcmV0VHlwZS0+aXNTaW5nbGVWYWx1ZVR5cGUoKSAmJiByZXRUeXBlLT5pc0Rv dWJsZVR5KCkpOwotLSAgICAgICAgICAgICAgICBpZiAocmV0VHlwZS0+aXNWZWN0b3JUeSgpICYm IHJldFR5cGUtPmdldFZlY3RvckVsZW1lbnRUeXBlKCktPmlzRG91YmxlVHkoKSkgewotKyAgICAg ICAgICAgICAgICBpZiAocmV0VHlwZS0+aXNWZWN0b3JUeSgpICYmCi0rICAgICAgICAgICAgICAg ICAgICBsbHZtOjpkeW5fY2FzdDxsbHZtOjpWZWN0b3JUeXBlPihyZXRUeXBlKS0+Z2V0RWxlbWVu dFR5cGUoKS0+aXNEb3VibGVUeSgpKSB7Ci0gICAgICAgICAgICAgICAgICAgICBBcmdUeS5wdXNo X2JhY2soTExWTVR5cGVzOjpEb3VibGVWZWN0b3JUeXBlKTsKLSAgICAgICAgICAgICAgICAgICAg IC8vIF9EdldJRFRIIHN1ZmZpeCBpcyB1c2VkIGluIHRhcmdldCBmaWxlIHRvIGRpZmZlcmVudGlh dGUgc2NhbGFyCi0gICAgICAgICAgICAgICAgICAgICAvLyBhbmQgdmVjdG9yIHZlcnNpb25zIG9m IGludHJpbnNpY3MuIEhlcmUgd2UgcmVtb3ZlIHRoaXMKLUBAIC02NTExLDggKzY1NDEsMTUgQEAg bGx2bTo6VmFsdWUgKkZpeEFkZHJlc3NTcGFjZTo6Y2FsY3VsYXRlR2F0aGVyU2NhdHRlckFkZHJl c3MobGx2bTo6VmFsdWUgKlB0ciwgbGwKLSAKLSAgICAgLy8gQ2FzdCBvZmZzZXRzIHRvIGludDY0 Ci0gICAgIE9mZnNldHMgPSBuZXcgbGx2bTo6WkV4dEluc3QoCi0rI2lmIElTUENfTExWTV9WRVJT SU9OID49IElTUENfTExWTV8xMV8wCi0rICAgICAgICBPZmZzZXRzLAotKyAgICAgICAgbGx2bTo6 Rml4ZWRWZWN0b3JUeXBlOjpnZXQoTExWTVR5cGVzOjpJbnQ2NFR5cGUsCi0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpkeW5fY2FzdDxsbHZtOjpWZWN0b3JUeXBlPihP ZmZzZXRzLT5nZXRUeXBlKCkpLT5nZXROdW1FbGVtZW50cygpKSwKLSsgICAgICAgICJzdm1fb2Zm c2V0X3pleHQiLCBJbnNlcnRCZWZvcmUpOwotKyNlbHNlCi0gICAgICAgICBPZmZzZXRzLCBsbHZt OjpWZWN0b3JUeXBlOjpnZXQoTExWTVR5cGVzOjpJbnQ2NFR5cGUsIE9mZnNldHMtPmdldFR5cGUo KS0+Z2V0VmVjdG9yTnVtRWxlbWVudHMoKSksCi0gICAgICAgICAic3ZtX29mZnNldF96ZXh0Iiwg SW5zZXJ0QmVmb3JlKTsKLSsjZW5kaWYKLSAKLSAgICAgaWYgKCFsbHZtOjppc2E8bGx2bTo6Q29u c3RhbnRQb2ludGVyTnVsbD4oUHRyKSkgewotICAgICAgICAgLy8gQ2FzdCBwdHIgdG8gaW50NjQK LUBAIC02NTIwLDEzICs2NTU3LDMxIEBAIGxsdm06OlZhbHVlICpGaXhBZGRyZXNzU3BhY2U6OmNh bGN1bGF0ZUdhdGhlclNjYXR0ZXJBZGRyZXNzKGxsdm06OlZhbHVlICpQdHIsIGxsCi0gCi0gICAg ICAgICAvLyBWZWN0b3JpemUgcHRyCi0gICAgICAgICBsbHZtOjpWYWx1ZSAqdW5kZWZJbnNlcnRW YWx1ZSA9Ci0rI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMV8wCi0rICAgICAg ICAgICAgbGx2bTo6VW5kZWZWYWx1ZTo6Z2V0KGxsdm06OkZpeGVkVmVjdG9yVHlwZTo6Z2V0KAot KyAgICAgICAgICAgICAgICBMTFZNVHlwZXM6OkludDY0VHlwZSwgbGx2bTo6ZHluX2Nhc3Q8bGx2 bTo6VmVjdG9yVHlwZT4oYWRkcmVzc1R5cGUpLT5nZXROdW1FbGVtZW50cygpKSk7Ci0rI2Vsc2UK LSAgICAgICAgICAgICBsbHZtOjpVbmRlZlZhbHVlOjpnZXQobGx2bTo6VmVjdG9yVHlwZTo6Z2V0 KExMVk1UeXBlczo6SW50NjRUeXBlLCBhZGRyZXNzVHlwZS0+Z2V0VmVjdG9yTnVtRWxlbWVudHMo KSkpOwotKyNlbmRpZgotICAgICAgICAgYWRkcmVzcyA9IGxsdm06Okluc2VydEVsZW1lbnRJbnN0 OjpDcmVhdGUodW5kZWZJbnNlcnRWYWx1ZSwgYWRkcmVzcywgTExWTUludDMyKDApLCAic3ZtX3B0 cl9pZWkiLCBJbnNlcnRCZWZvcmUpOwotICAgICAgICAgbGx2bTo6Q29uc3RhbnQgKnplcm9WZWMg PSBsbHZtOjpDb25zdGFudFZlY3Rvcjo6Z2V0U3BsYXQoCi0rI2lmIElTUENfTExWTV9WRVJTSU9O IDwgSVNQQ19MTFZNXzExXzAKLSAgICAgICAgICAgICBhZGRyZXNzVHlwZS0+Z2V0VmVjdG9yTnVt RWxlbWVudHMoKSwKLSsjZWxpZiBJU1BDX0xMVk1fVkVSU0lPTiA9PSBJU1BDX0xMVk1fMTFfMAot KyAgICAgICAgICAgIHtsbHZtOjpkeW5fY2FzdDxsbHZtOjpWZWN0b3JUeXBlPihhZGRyZXNzVHlw ZSktPmdldE51bUVsZW1lbnRzKCksIGZhbHNlfSwKLSsjZWxzZQotKyAgICAgICAgbGx2bTo6RWxl bWVudENvdW50OjpnZXQoCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpk eW5fY2FzdDxsbHZtOjpGaXhlZFZlY3RvclR5cGU+KGFkZHJlc3NUeXBlLT5nZXROdW1FbGVtZW50 cygpLCBmYWxzZSksCi0rI2VuZGlmCi0gICAgICAgICAgICAgbGx2bTo6Q29uc3RhbnQ6OmdldE51 bGxWYWx1ZShsbHZtOjpUeXBlOjpnZXRJbnQzMlR5KEluc2VydEJlZm9yZS0+Z2V0Q29udGV4dCgp KSkpOwotKwotICAgICAgICAgbGx2bTo6VmFsdWUgKnVuZGVmU2h1ZmZsZVZhbHVlID0KLSsjaWYg SVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzExXzAKLSsgICAgICAgICAgICBsbHZtOjpV bmRlZlZhbHVlOjpnZXQobGx2bTo6Rml4ZWRWZWN0b3JUeXBlOjpnZXQoCi0rICAgICAgICAgICAg ICAgIExMVk1UeXBlczo6SW50NjRUeXBlLCBsbHZtOjpkeW5fY2FzdDxsbHZtOjpWZWN0b3JUeXBl PihhZGRyZXNzVHlwZSktPmdldE51bUVsZW1lbnRzKCkpKTsKLSsjZWxzZQotICAgICAgICAgICAg IGxsdm06OlVuZGVmVmFsdWU6OmdldChsbHZtOjpWZWN0b3JUeXBlOjpnZXQoTExWTVR5cGVzOjpJ bnQ2NFR5cGUsIGFkZHJlc3NUeXBlLT5nZXRWZWN0b3JOdW1FbGVtZW50cygpKSk7Ci0rI2VuZGlm Ci0gICAgICAgICBhZGRyZXNzID0gbmV3IGxsdm06OlNodWZmbGVWZWN0b3JJbnN0KGFkZHJlc3Ms IHVuZGVmU2h1ZmZsZVZhbHVlLCB6ZXJvVmVjLCAic3ZtX3B0cl9zdmkiLCBJbnNlcnRCZWZvcmUp OwotIAotICAgICAgICAgLy8gQ2FsY3VsYXRlIGFkZHJlc3MKLUBAIC02NTUzLDkgKzY2MDgsMTIg QEAgbGx2bTo6SW5zdHJ1Y3Rpb24gKkZpeEFkZHJlc3NTcGFjZTo6cHJvY2Vzc1ZlY3RvckxvYWQo bGx2bTo6TG9hZEluc3QgKkxJKSB7Ci0gICAgIGlmIChyZXRUeXBlLT5nZXRTY2FsYXJUeXBlKCkt PmlzUG9pbnRlclR5KCkpIHsKLSAgICAgICAgIGlzUHRyTG9hZCA9IHRydWU7Ci0gICAgICAgICBh dXRvIHNjYWxhclR5cGUgPSBnLT50YXJnZXQtPmlzMzJCaXQoKSA/IExMVk1UeXBlczo6SW50MzJU eXBlIDogTExWTVR5cGVzOjpJbnQ2NFR5cGU7Ci0rI2lmIElTUENfTExWTV9WRVJTSU9OID49IElT UENfTExWTV8xMV8wCi0rICAgICAgICByZXRUeXBlID0gbGx2bTo6Rml4ZWRWZWN0b3JUeXBlOjpn ZXQoc2NhbGFyVHlwZSwgbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6VmVjdG9yVHlwZT4ocmV0VHlwZSkt PmdldE51bUVsZW1lbnRzKCkpOwotKyNlbHNlCi0gICAgICAgICByZXRUeXBlID0gbGx2bTo6VmVj dG9yVHlwZTo6Z2V0KHNjYWxhclR5cGUsIHJldFR5cGUtPmdldFZlY3Rvck51bUVsZW1lbnRzKCkp OwotKyNlbmRpZgotICAgICB9Ci0tCi0gICAgIGxsdm06Okluc3RydWN0aW9uICpyZXMgPSBsR2Vu WExvYWRJbnN0KHB0ciwgcmV0VHlwZSwgbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6SW5zdHJ1Y3Rpb24+ KExJKSk7Ci0gICAgIEFzc2VydChyZXMpOwotIAotQEAgLTY1ODAsMTEgKzY2MzgsMTYgQEAgbGx2 bTo6SW5zdHJ1Y3Rpb24gKkZpeEFkZHJlc3NTcGFjZTo6cHJvY2Vzc1NWTVZlY3RvckxvYWQobGx2 bTo6SW5zdHJ1Y3Rpb24gKkNJKQotICAgICBwdHIgPSBuZXcgbGx2bTo6SW50VG9QdHJJbnN0KHB0 ciwgbGx2bTo6UG9pbnRlclR5cGU6OmdldChyZXRUeXBlLCAwKSwgQ0ktPmdldE5hbWUoKSArICJf aW50dG9wdHIiLCBDSSk7Ci0gICAgIGxsdm06Okluc3RydWN0aW9uICpsb2FkSW5zdCA9IE5VTEw7 Ci0gI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMV8wCi0tICAgIGxvYWRJbnN0 ID0gbmV3IGxsdm06OkxvYWRJbnN0KGxsdm06OmR5bl9jYXN0PGxsdm06OlBvaW50ZXJUeXBlPihw dHItPmdldFR5cGUoKSktPmdldFBvaW50ZXJFbGVtZW50VHlwZSgpLCBsb2FkSW5zdCwKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ0ktPmdldE5hbWUoKSwgKGxsdm06Okluc3Ry dWN0aW9uICopTlVMTCk7Ci0rICAgIGxvYWRJbnN0ID0gbmV3IGxsdm06OkxvYWRJbnN0KGxsdm06 OmR5bl9jYXN0PGxsdm06OlBvaW50ZXJUeXBlPihwdHItPmdldFR5cGUoKSktPmdldFBvaW50ZXJF bGVtZW50VHlwZSgpLCBwdHIsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENJ LT5nZXROYW1lKCksIGZhbHNlIC8qIG5vdCB2b2xhdGlsZSAqLywKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgbGx2bTo6TWF5YmVBbGlnbihnLT50YXJnZXQtPmdldE5hdGl2ZVZl Y3RvckFsaWdubWVudCgpKS52YWx1ZU9yT25lKCksCi0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIChsbHZtOjpJbnN0cnVjdGlvbiAqKU5VTEwpOwotICNlbHNlCi0tICAgIGxvYWRJ bnN0ID0gbmV3IGxsdm06OkxvYWRJbnN0KHB0ciwgQ0ktPmdldE5hbWUoKSwgKGxsdm06Okluc3Ry dWN0aW9uICopTlVMTCk7Ci0rICAgIGxvYWRJbnN0ID0gbmV3IGxsdm06OkxvYWRJbnN0KHB0ciwg Q0ktPmdldE5hbWUoKSwgZmFsc2UsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGxsdm06Ok1heWJlQWxpZ24oZy0+dGFyZ2V0LT5nZXROYXRpdmVWZWN0b3JBbGlnbm1lbnQoKSku dmFsdWVPck9uZSgpLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGx2bTo6 SW5zdHJ1Y3Rpb24gKilOVUxMKTsKLSAjZW5kaWYKLSsKLSAgICAgQXNzZXJ0KGxvYWRJbnN0KTsK LSAgICAgcmV0dXJuIGxvYWRJbnN0OwotIH0KLUBAIC02NjA2LDcgKzY2NjksMTEgQEAgbGx2bTo6 SW5zdHJ1Y3Rpb24gKkZpeEFkZHJlc3NTcGFjZTo6cHJvY2Vzc1ZlY3RvclN0b3JlKGxsdm06OlN0 b3JlSW5zdCAqU0kpIHsKLSAgICAgLy8gTm90ZTogaXQgZG9lc24ndCBsb29rIGxpa2UgYSBub3Jt YWwgY2FzZSBmb3IgR2VuWCB0YXJnZXQKLSAgICAgaWYgKHZhbFR5cGUtPmdldFNjYWxhclR5cGUo KS0+aXNQb2ludGVyVHkoKSkgewotICAgICAgICAgYXV0byBzY2FsYXJUeXBlID0gZy0+dGFyZ2V0 LT5pczMyQml0KCkgPyBMTFZNVHlwZXM6OkludDMyVHlwZSA6IExMVk1UeXBlczo6SW50NjRUeXBl OwotKyNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTFfMAotKyAgICAgICAgdmFs VHlwZSA9IGxsdm06OkZpeGVkVmVjdG9yVHlwZTo6Z2V0KHNjYWxhclR5cGUsIGxsdm06OmR5bl9j YXN0PGxsdm06OlZlY3RvclR5cGU+KHZhbFR5cGUpLT5nZXROdW1FbGVtZW50cygpKTsKLSsjZWxz ZQotICAgICAgICAgdmFsVHlwZSA9IGxsdm06OlZlY3RvclR5cGU6OmdldChzY2FsYXJUeXBlLCB2 YWxUeXBlLT5nZXRWZWN0b3JOdW1FbGVtZW50cygpKTsKLSsjZW5kaWYKLSAgICAgICAgIHZhbCA9 IG5ldyBsbHZtOjpQdHJUb0ludEluc3QodmFsLCB2YWxUeXBlLCAic3ZtX3N0X3ZhbF9wdHJ0b2lu dCIsIFNJKTsKLSAgICAgfQotIAotQEAgLTY2MzEsMTIgKzY2OTgsOCBAQCBsbHZtOjpJbnN0cnVj dGlvbiAqRml4QWRkcmVzc1NwYWNlOjpwcm9jZXNzU1ZNVmVjdG9yU3RvcmUobGx2bTo6SW5zdHJ1 Y3Rpb24gKkNJKQotICAgICBwdHIgPSBuZXcgbGx2bTo6SW50VG9QdHJJbnN0KHB0ciwgbGx2bTo6 UG9pbnRlclR5cGU6OmdldCh2YWxUeXBlLCAwKSwgQ0ktPmdldE5hbWUoKSArICJfaW50dG9wdHIi LCBDSSk7Ci0gCi0gICAgIGxsdm06Okluc3RydWN0aW9uICpzdG9yZUluc3QgPSBOVUxMOwotLSNp ZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTFfMAotLSAgICBsb2FkSW5zdCA9IG5l dyBsbHZtOjpTdG9yZUluc3QodmFsLCBsbHZtOjpkeW5fY2FzdDxsbHZtOjpQb2ludGVyVHlwZT4o cHRyLT5nZXRUeXBlKCkpLT5nZXRQb2ludGVyRWxlbWVudFR5cGUoKSwKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHN0b3JlSW5zdCwgQ0ktPmdldE5hbWUoKSwgKGxsdm06Oklu c3RydWN0aW9uICopTlVMTCk7Ci0tI2Vsc2UKLS0gICAgc3RvcmVJbnN0ID0gbmV3IGxsdm06OlN0 b3JlSW5zdCh2YWwsIHB0ciwgKGxsdm06Okluc3RydWN0aW9uICopTlVMTCk7Ci0tI2VuZGlmCi0r ICAgIHN0b3JlSW5zdCA9IG5ldyBsbHZtOjpTdG9yZUluc3QodmFsLCBwdHIsIChsbHZtOjpJbnN0 cnVjdGlvbiAqKU5VTEwsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGx2 bTo6TWF5YmVBbGlnbihnLT50YXJnZXQtPmdldE5hdGl2ZVZlY3RvckFsaWdubWVudCgpKS52YWx1 ZU9yT25lKCkpOwotICAgICBBc3NlcnQoc3RvcmVJbnN0KTsKLSAgICAgcmV0dXJuIHN0b3JlSW5z dDsKLSB9Ci1AQCAtNjY0NSwxNSArNjcwOCwxOCBAQCBsbHZtOjpJbnN0cnVjdGlvbiAqRml4QWRk cmVzc1NwYWNlOjpjcmVhdGVJbnQ4V3JSZWdpb24obGx2bTo6VmFsdWUgKlZhbCwgbGx2bTo6Vgot ICAgICBpbnQgd2lkdGggPSBnLT50YXJnZXQtPmdldFZlY3RvcldpZHRoKCk7Ci0gCi0gICAgIGxs dm06OlZhbHVlICpBcmdzWzhdOwotLQotKyNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xM Vk1fMTFfMAotKyAgICBBcmdzWzBdID0gbGx2bTo6VW5kZWZWYWx1ZTo6Z2V0KGxsdm06OkZpeGVk VmVjdG9yVHlwZTo6Z2V0KExMVk1UeXBlczo6SW50OFR5cGUsIHdpZHRoICogNCkpOyAvLyBvbGQg dmFsdWUKLSsjZWxzZQotICAgICBBcmdzWzBdID0gbGx2bTo6VW5kZWZWYWx1ZTo6Z2V0KGxsdm06 OlZlY3RvclR5cGU6OmdldChMTFZNVHlwZXM6OkludDhUeXBlLCB3aWR0aCAqIDQpKTsgLy8gb2xk IHZhbHVlCi0tICAgIEFyZ3NbMV0gPSBWYWw7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB2YWx1ZSB0byBz dG9yZQotLSAgICBBcmdzWzJdID0gbGx2bTo6Q29uc3RhbnRJbnQ6OmdldChMTFZNVHlwZXM6Oklu dDMyVHlwZSwgMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdnN0cmlkZQotLSAg ICBBcmdzWzNdID0gbGx2bTo6Q29uc3RhbnRJbnQ6OmdldChMTFZNVHlwZXM6OkludDMyVHlwZSwg d2lkdGgpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2lkdGgKLS0gICAgQXJnc1s0XSA9 IGxsdm06OkNvbnN0YW50SW50OjpnZXQoTExWTVR5cGVzOjpJbnQzMlR5cGUsIDQpOyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIC8vIHN0cmlkZQotLSAgICBBcmdzWzVdID0gbGx2bTo6Q29u c3RhbnRJbnQ6OmdldChMTFZNVHlwZXM6OkludDE2VHlwZSwgMCk7ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgLy8gb2Zmc2V0cwotLSAgICBBcmdzWzZdID0gbGx2bTo6Q29uc3RhbnRJbnQ6 OmdldChMTFZNVHlwZXM6OkludDMyVHlwZSwgMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgLy8gcGFyZW50IHdpZHRoIChpZ25vcmVkKQotLSAgICBBcmdzWzddID0gTWFzazsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgLy8gbWFzawotKyNlbmRpZgotKyAgICBBcmdzWzFdID0gVmFsOyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB2YWx1ZSB0byBzdG9yZQot KyAgICBBcmdzWzJdID0gbGx2bTo6Q29uc3RhbnRJbnQ6OmdldChMTFZNVHlwZXM6OkludDMyVHlw ZSwgMCk7ICAgICAvLyB2c3RyaWRlCi0rICAgIEFyZ3NbM10gPSBsbHZtOjpDb25zdGFudEludDo6 Z2V0KExMVk1UeXBlczo6SW50MzJUeXBlLCB3aWR0aCk7IC8vIHdpZHRoCi0rICAgIEFyZ3NbNF0g PSBsbHZtOjpDb25zdGFudEludDo6Z2V0KExMVk1UeXBlczo6SW50MzJUeXBlLCA0KTsgICAgIC8v IHN0cmlkZQotKyAgICBBcmdzWzVdID0gbGx2bTo6Q29uc3RhbnRJbnQ6OmdldChMTFZNVHlwZXM6 OkludDE2VHlwZSwgMCk7ICAgICAvLyBvZmZzZXRzCi0rICAgIEFyZ3NbNl0gPSBsbHZtOjpDb25z dGFudEludDo6Z2V0KExMVk1UeXBlczo6SW50MzJUeXBlLCAwKTsgICAgIC8vIHBhcmVudCB3aWR0 aCAoaWdub3JlZCkKLSsgICAgQXJnc1s3XSA9IE1hc2s7ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgLy8gbWFzawotIAotICAgICBsbHZtOjpUeXBlICpUeXNb NF07Ci0gCi1AQCAtNjcwOCw3ICs2Nzc0LDEyIEBAIGxsdm06Okluc3RydWN0aW9uICpGaXhBZGRy ZXNzU3BhY2U6OnByb2Nlc3NHYXRoZXJTY2F0dGVyUHJpdmF0ZShsbHZtOjpDYWxsSW5zdCAqCi0g ICAgICAgICByZXR1cm4gTlVMTDsKLSAKLSAgICAgbGx2bTo6VmFsdWUgKmFkZHJlc3MgPSBjYWxj dWxhdGVHYXRoZXJTY2F0dGVyQWRkcmVzcyhwdHIsIG9mZnNldHMsIENJKTsKLSsjaWYgSVNQQ19M TFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzExXzAKLSsgICAgbGx2bTo6VHlwZSAqaThWZWNUeXBl ID0gbGx2bTo6Rml4ZWRWZWN0b3JUeXBlOjpnZXQoTExWTVR5cGVzOjpJbnQ4VHlwZSwgd2lkdGgg KiA0KTsKLSsjZWxzZQotICAgICBsbHZtOjpUeXBlICppOFZlY1R5cGUgPSBsbHZtOjpWZWN0b3JU eXBlOjpnZXQoTExWTVR5cGVzOjpJbnQ4VHlwZSwgd2lkdGggKiA0KTsKLSsjZW5kaWYKLSsKLSAg ICAgYm9vbCBpc0ludDggPSAodmFsdWUtPmdldFR5cGUoKS0+Z2V0U2NhbGFyVHlwZSgpID09IExM Vk1UeXBlczo6SW50OFR5cGUpOwotIAotICAgICBBc3NlcnQoYWRkcmVzcyAmJiAiQmFkIGdhdGhl ci9zY2F0dGVyIGFkZHJlc3MhIik7CmRpZmYgLS1naXQgYS9zcmNwa2dzL2lzcGMvcGF0Y2hlcy9s bHZtMTItMDA2LnBhdGNoIGIvc3JjcGtncy9pc3BjL3BhdGNoZXMvbGx2bTEyLTAwNi5wYXRjaApk ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTgyOWVhNDgzOTFlLi4wMDAwMDAwMDAwMDAK LS0tIGEvc3JjcGtncy9pc3BjL3BhdGNoZXMvbGx2bTEyLTAwNi5wYXRjaAorKysgL2Rldi9udWxs CkBAIC0xLDEyNiArMCwwIEBACi1Gcm9tIGJiM2Y0OTNkMWZiZDQ1Yzc5ZTFkOWRlZTY3YTA0MzBi YTMxM2VhYWQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBBcmluYSBOZXNobHlhZXZh IDxhcmluYS5uZXNobHlhZXZhQGludGVsLmNvbT4KLURhdGU6IFR1ZSwgMTkgSmFuIDIwMjEgMTE6 MDc6MzMgLTA4MDAKLVN1YmplY3Q6IFtQQVRDSF0gRml4ZWQgaWZkZWZzIGZvciBMTFZNXzExCi0K LS0tLQotIHNyYy9jdHguY3BwIHwgIDYgKysrLS0tCi0gc3JjL29wdC5jcHAgfCAxOCArKysrKysr KystLS0tLS0tLS0KLSAyIGZpbGVzIGNoYW5nZWQsIDEyIGluc2VydGlvbnMoKyksIDEyIGRlbGV0 aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvc3JjL2N0eC5jcHAgYi9zcmMvY3R4LmNwcAotaW5kZXgg MmE3MmU2ODM3Li41MjdhMDJmMzAgMTAwNjQ0Ci0tLS0gYS9zcmMvY3R4LmNwcAotKysrIGIvc3Jj L2N0eC5jcHAKLUBAIC0xNjkxLDcgKzE2OTEsNyBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0 Q29udGV4dDo6U21lYXJVbmlmb3JtKGxsdm06OlZhbHVlICp2YWx1ZSwgY29uc3QgbGx2bTo6VAot ICAgICBpZiAobGx2bTo6Q29uc3RhbnQgKmNvbnN0X3ZhbCA9IGxsdm06OmR5bl9jYXN0PGxsdm06 OkNvbnN0YW50Pih2YWx1ZSkpIHsKLSAjaWYgSVNQQ19MTFZNX1ZFUlNJT04gPCBJU1BDX0xMVk1f MTFfMAotICAgICAgICAgcmV0ID0gbGx2bTo6Q29uc3RhbnRWZWN0b3I6OmdldFNwbGF0KGctPnRh cmdldC0+Z2V0VmVjdG9yV2lkdGgoKSwgY29uc3RfdmFsKTsKLS0jZWxpZiBJU1BDX0xMVk1fVkVS U0lPTiA9PSBJU1BDX0xMVk1fMTFfMAotKyNlbGlmIElTUENfTExWTV9WRVJTSU9OIDwgSVNQQ19M TFZNXzEyXzAKLSAgICAgICAgIHJldCA9Ci0gICAgICAgICAgICAgbGx2bTo6Q29uc3RhbnRWZWN0 b3I6OmdldFNwbGF0KHtzdGF0aWNfY2FzdDx1bnNpZ25lZCBpbnQ+KGctPnRhcmdldC0+Z2V0VmVj dG9yV2lkdGgoKSksIGZhbHNlfSwgY29uc3RfdmFsKTsKLSAjZWxzZSAvLyBMTFZNIDEyLjArCi1A QCAtMzE0OCw3ICszMTQ4LDcgQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkJy b2FkY2FzdFZhbHVlKGxsdm06OlZhbHVlICp2LCBsbHZtOjpUeXBlICp2ZWMKLSAjaWYgSVNQQ19M TFZNX1ZFUlNJT04gPCBJU1BDX0xMVk1fMTFfMAotICAgICBsbHZtOjpDb25zdGFudCAqemVyb1Zl YyA9IGxsdm06OkNvbnN0YW50VmVjdG9yOjpnZXRTcGxhdCgKLSAgICAgICAgIHZlY1R5cGUtPmdl dFZlY3Rvck51bUVsZW1lbnRzKCksIGxsdm06OkNvbnN0YW50OjpnZXROdWxsVmFsdWUobGx2bTo6 VHlwZTo6Z2V0SW50MzJUeSgqZy0+Y3R4KSkpOwotLSNlbGlmIElTUENfTExWTV9WRVJTSU9OID09 IElTUENfTExWTV8xMV8wCi0rI2VsaWYgSVNQQ19MTFZNX1ZFUlNJT04gPCBJU1BDX0xMVk1fMTJf MAotICAgICBsbHZtOjpDb25zdGFudCAqemVyb1ZlYyA9Ci0gICAgICAgICBsbHZtOjpDb25zdGFu dFZlY3Rvcjo6Z2V0U3BsYXQoe3N0YXRpY19jYXN0PHVuc2lnbmVkIGludD4odHktPmdldE51bUVs ZW1lbnRzKCkpLCBmYWxzZX0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgbGx2bTo6Q29uc3RhbnQ6OmdldE51bGxWYWx1ZShsbHZtOjpUeXBlOjpnZXRJbnQzMlR5KCpn LT5jdHgpKSk7Ci1AQCAtMzY4OCw3ICszNjg4LDcgQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1p dENvbnRleHQ6OkdlblhTaW1kQ0ZQcmVkaWNhdGUobGx2bTo6VmFsdWUgKnZhbHVlLCBsbHZtOjoK LSAjaWYgSVNQQ19MTFZNX1ZFUlNJT04gPCBJU1BDX0xMVk1fMTFfMAotICAgICAgICAgZGVmYXVs dHMgPSBsbHZtOjpDb25zdGFudFZlY3Rvcjo6Z2V0U3BsYXQodnQtPmdldFZlY3Rvck51bUVsZW1l bnRzKCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBsbHZtOjpDb25zdGFudDo6Z2V0TnVsbFZhbHVlKHZ0LT5nZXRFbGVtZW50VHlwZSgpKSk7Ci0t I2VsaWYgSVNQQ19MTFZNX1ZFUlNJT04gPT0gSVNQQ19MTFZNXzExXzAKLSsjZWxpZiBJU1BDX0xM Vk1fVkVSU0lPTiA8IElTUENfTExWTV8xMl8wCi0gICAgICAgICBkZWZhdWx0cyA9IGxsdm06OkNv bnN0YW50VmVjdG9yOjpnZXRTcGxhdCh7c3RhdGljX2Nhc3Q8dW5zaWduZWQgaW50Pih2dC0+Z2V0 TnVtRWxlbWVudHMoKSksIGZhbHNlfSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGxsdm06OkNvbnN0YW50OjpnZXROdWxsVmFsdWUodnQtPmdldEVs ZW1lbnRUeXBlKCkpKTsKLSAjZWxzZQotZGlmZiAtLWdpdCBhL3NyYy9vcHQuY3BwIGIvc3JjL29w dC5jcHAKLWluZGV4IDE3ODliODQ3Ni4uM2ZmMTkxYTBhIDEwMDY0NAotLS0tIGEvc3JjL29wdC5j cHAKLSsrKyBiL3NyYy9vcHQuY3BwCi1AQCAtMTA0NSw3ICsxMDQ1LDcgQEAgYm9vbCBJbnRyaW5z aWNzT3B0OjpydW5PbkJhc2ljQmxvY2sobGx2bTo6QmFzaWNCbG9jayAmYmIpIHsKLSAgICAgICAg ICAgICAgICAgICAgIGFsaWduID0gZy0+dGFyZ2V0LT5nZXROYXRpdmVWZWN0b3JBbGlnbm1lbnQo KTsKLSAgICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICAgYWxpZ24gPSBj YWxsSW5zdC0+Z2V0Q2FsbGVkRnVuY3Rpb24oKSA9PSBhdnhNYXNrZWRMb2FkMzIgPyA0IDogODsK LS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPT0gSVNQQ19MTFZNXzEwXzAKLSsjaWYgSVNQQ19MTFZN X1ZFUlNJT04gPCBJU1BDX0xMVk1fMTFfMAotICAgICAgICAgICAgICAgICBsbHZtOjpJbnN0cnVj dGlvbiAqbG9hZEluc3QgPQotICAgICAgICAgICAgICAgICAgICAgbmV3IGxsdm06OkxvYWRJbnN0 KGNhc3RQdHIsIGxsdm06OlR3aW5lKGNhbGxJbnN0LT5nZXRBcmdPcGVyYW5kKDApLT5nZXROYW1l KCkpICsgIl9sb2FkIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBm YWxzZSAvKiBub3Qgdm9sYXRpbGUgKi8sIGxsdm06Ok1heWJlQWxpZ24oYWxpZ24pLCAobGx2bTo6 SW5zdHJ1Y3Rpb24gKilOVUxMKTsKLUBAIC0xNDcyLDcgKzE0NzIsNyBAQCBzdGF0aWMgbGx2bTo6 VmFsdWUgKmxHZXRCYXNlUHRyQW5kT2Zmc2V0cyhsbHZtOjpWYWx1ZSAqcHRycywgbGx2bTo6VmFs dWUgKipvZmZzZQotICAgICAgICAgICAgICAgICAgICAgbGx2bTo6VmFsdWUgKnplcm9NYXNrID0K LSAjaWYgSVNQQ19MTFZNX1ZFUlNJT04gPCBJU1BDX0xMVk1fMTFfMAotICAgICAgICAgICAgICAg ICAgICAgICAgIGxsdm06OkNvbnN0YW50VmVjdG9yOjpnZXRTcGxhdChjdi0+Z2V0VHlwZSgpLT5n ZXRWZWN0b3JOdW1FbGVtZW50cygpLAotLSNlbGlmIElTUENfTExWTV9WRVJTSU9OID09IElTUENf TExWTV8xMV8wCi0rI2VsaWYgSVNQQ19MTFZNX1ZFUlNJT04gPCBJU1BDX0xMVk1fMTJfMAotICAg ICAgICAgICAgICAgICAgICAgICAgIGxsdm06OkNvbnN0YW50VmVjdG9yOjpnZXRTcGxhdCgKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAge2xsdm06OmR5bl9jYXN0PGxsdm06OlZlY3RvclR5 cGU+KGN2LT5nZXRUeXBlKCkpLT5nZXROdW1FbGVtZW50cygpLCBmYWxzZX0sCi0gI2Vsc2UgLy8g TExWTSAxMi4wKwotQEAgLTE0OTUsNyArMTQ5NSw3IEBAIHN0YXRpYyBsbHZtOjpWYWx1ZSAqbEdl dEJhc2VQdHJBbmRPZmZzZXRzKGxsdm06OlZhbHVlICpwdHJzLCBsbHZtOjpWYWx1ZSAqKm9mZnNl Ci0gICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6VmFsdWUgKnplcm9NYXNrID0gbGx2bTo6 Q29uc3RhbnRWZWN0b3I6OmdldFNwbGF0KAotICNpZiBJU1BDX0xMVk1fVkVSU0lPTiA8IElTUENf TExWTV8xMV8wCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcF92YXJfdHlwZS0+Z2V0 VmVjdG9yTnVtRWxlbWVudHMoKSwKLS0jZWxpZiBJU1BDX0xMVk1fVkVSU0lPTiA9PSBJU1BDX0xM Vk1fMTFfMAotKyNlbGlmIElTUENfTExWTV9WRVJTSU9OIDwgSVNQQ19MTFZNXzEyXzAKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAge2xsdm06OmR5bl9jYXN0PGxsdm06OlZlY3RvclR5cGU+ KGJvcF92YXJfdHlwZSktPmdldE51bUVsZW1lbnRzKCksIGZhbHNlfSwKLSAjZWxzZSAvLyBMTFZN IDEyLjArCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06OkVsZW1lbnRDb3VudDo6 Z2V0KAotQEAgLTI4MDMsNyArMjgwMyw3IEBAIHN0YXRpYyBib29sIGxHU1RvTG9hZFN0b3JlKGxs dm06OkNhbGxJbnN0ICpjYWxsSW5zdCkgewotICAgICAgICAgICAgIGxsdm06OlZhbHVlICp6ZXJv TWFzayA9Ci0gI2lmIElTUENfTExWTV9WRVJTSU9OIDwgSVNQQ19MTFZNXzExXzAKLSAgICAgICAg ICAgICAgICAgbGx2bTo6Q29uc3RhbnRWZWN0b3I6OmdldFNwbGF0KGNhbGxJbnN0LT5nZXRUeXBl KCktPmdldFZlY3Rvck51bUVsZW1lbnRzKCksCi0tI2VsaWYgSVNQQ19MTFZNX1ZFUlNJT04gPT0g SVNQQ19MTFZNXzExXzAKLSsjZWxpZiBJU1BDX0xMVk1fVkVSU0lPTiA8IElTUENfTExWTV8xMl8w Ci0gICAgICAgICAgICAgICAgIGxsdm06OkNvbnN0YW50VmVjdG9yOjpnZXRTcGxhdCgKLSAgICAg ICAgICAgICAgICAgICAgIHtsbHZtOjpkeW5fY2FzdDxsbHZtOjpWZWN0b3JUeXBlPihjYWxsSW5z dC0+Z2V0VHlwZSgpKS0+Z2V0TnVtRWxlbWVudHMoKSwgZmFsc2V9LAotIAotQEAgLTMxMDAsNyAr MzEwMCw3IEBAIHN0YXRpYyBib29sIGxJbXByb3ZlTWFza2VkTG9hZChsbHZtOjpDYWxsSW5zdCAq Y2FsbEluc3QsIGxsdm06OkJhc2ljQmxvY2s6Oml0ZXJhCi0gICAgICAgICB7Ci0gICAgICAgICAg ICAgbGx2bTo6VHlwZSAqcHRyVHlwZSA9IGxsdm06OlBvaW50ZXJUeXBlOjpnZXQoY2FsbEluc3Qt PmdldFR5cGUoKSwgMCk7Ci0gICAgICAgICAgICAgcHRyID0gbmV3IGxsdm06OkJpdENhc3RJbnN0 KHB0ciwgcHRyVHlwZSwgInB0cl9jYXN0X2Zvcl9sb2FkIiwgY2FsbEluc3QpOwotLSNpZiBJU1BD X0xMVk1fVkVSU0lPTiA9PSBJU1BDX0xMVk1fMTBfMAotKyNpZiBJU1BDX0xMVk1fVkVSU0lPTiA8 IElTUENfTExWTV8xMV8wCi0gICAgICAgICAgICAgbG9hZCA9IG5ldyBsbHZtOjpMb2FkSW5zdCgK LSAgICAgICAgICAgICAgICAgcHRyLCBjYWxsSW5zdC0+Z2V0TmFtZSgpLCBmYWxzZSAvKiBub3Qg dm9sYXRpbGUgKi8sCi0gICAgICAgICAgICAgICAgIGxsdm06Ok1heWJlQWxpZ24oZy0+b3B0LmZv cmNlQWxpZ25lZE1lbW9yeSA/IGctPnRhcmdldC0+Z2V0TmF0aXZlVmVjdG9yQWxpZ25tZW50KCkg OiBpbmZvLT5hbGlnbikKLUBAIC0zNDU5LDcgKzM0NTksNyBAQCBsbHZtOjpWYWx1ZSAqbEdFUEFu ZExvYWQobGx2bTo6VmFsdWUgKmJhc2VQdHIsIGludDY0X3Qgb2Zmc2V0LCBpbnQgYWxpZ24sIGxs dm06OgotICAgICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpUeXBlICp0eXBlKSB7Ci0gICAg IGxsdm06OlZhbHVlICpwdHIgPSBsR0VQSW5zdChiYXNlUHRyLCBMTFZNSW50NjQob2Zmc2V0KSwg Im5ld19iYXNlIiwgaW5zZXJ0QmVmb3JlKTsKLSAgICAgcHRyID0gbmV3IGxsdm06OkJpdENhc3RJ bnN0KHB0ciwgbGx2bTo6UG9pbnRlclR5cGU6OmdldCh0eXBlLCAwKSwgInB0cl9jYXN0IiwgaW5z ZXJ0QmVmb3JlKTsKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPT0gSVNQQ19MTFZNXzEwXzAKLSsj aWYgSVNQQ19MTFZNX1ZFUlNJT04gPCBJU1BDX0xMVk1fMTFfMAotICAgICByZXR1cm4gbmV3IGxs dm06OkxvYWRJbnN0KHB0ciwgImdhdGhlcl9sb2FkIiwgZmFsc2UgLyogbm90IHZvbGF0aWxlICov LCBsbHZtOjpNYXliZUFsaWduKGFsaWduKSwgaW5zZXJ0QmVmb3JlKTsKLSAjZWxzZSAvLyBMTFZN IDExLjArCi0gICAgIHJldHVybiBuZXcgbGx2bTo6TG9hZEluc3QobGx2bTo6ZHluX2Nhc3Q8bGx2 bTo6UG9pbnRlclR5cGU+KHB0ci0+Z2V0VHlwZSgpKS0+Z2V0UG9pbnRlckVsZW1lbnRUeXBlKCks IHB0ciwKLUBAIC02MTgzLDcgKzYxODMsNyBAQCBib29sIFJlcGxhY2VMTFZNSW50cmluc2ljczo6 cnVuT25CYXNpY0Jsb2NrKGxsdm06OkJhc2ljQmxvY2sgJmJiKSB7Ci0gICAgICAgICAgICAgICAg IEFyZ3MucHVzaF9iYWNrKGxsdm06OkNvbnN0YW50VmVjdG9yOjpnZXRTcGxhdCgKLSAjaWYgSVNQ Q19MTFZNX1ZFUlNJT04gPCBJU1BDX0xMVk1fMTFfMAotICAgICAgICAgICAgICAgICAgICAgZy0+ dGFyZ2V0LT5nZXROYXRpdmVWZWN0b3JXaWR0aCgpLAotLSNlbGlmIElTUENfTExWTV9WRVJTSU9O ID09IElTUENfTExWTV8xMV8wCi0rI2VsaWYgSVNQQ19MTFZNX1ZFUlNJT04gPCBJU1BDX0xMVk1f MTJfMAotICAgICAgICAgICAgICAgICAgICAge3N0YXRpY19jYXN0PHVuc2lnbmVkIGludD4oZy0+ dGFyZ2V0LT5nZXROYXRpdmVWZWN0b3JXaWR0aCgpKSwgZmFsc2V9LAotICNlbHNlIC8vIExMVk0g MTIuMCsKLSAgICAgICAgICAgICAgICAgICAgIGxsdm06OkVsZW1lbnRDb3VudDo6Z2V0KHN0YXRp Y19jYXN0PHVuc2lnbmVkIGludD4oZy0+dGFyZ2V0LT5nZXROYXRpdmVWZWN0b3JXaWR0aCgpKSwg ZmFsc2UpLAotQEAgLTYxOTUsNyArNjE5NSw3IEBAIGJvb2wgUmVwbGFjZUxMVk1JbnRyaW5zaWNz OjpydW5PbkJhc2ljQmxvY2sobGx2bTo6QmFzaWNCbG9jayAmYmIpIHsKLSAgICAgICAgICAgICAg ICAgbGx2bTo6VmFsdWUgKnplcm9NYXNrID0gbGx2bTo6Q29uc3RhbnRWZWN0b3I6OmdldFNwbGF0 KAotICNpZiBJU1BDX0xMVk1fVkVSU0lPTiA8IElTUENfTExWTV8xMV8wCi0gICAgICAgICAgICAg ICAgICAgICBnLT50YXJnZXQtPmdldE5hdGl2ZVZlY3RvcldpZHRoKCksCi0tI2VsaWYgSVNQQ19M TFZNX1ZFUlNJT04gPT0gSVNQQ19MTFZNXzExXzAKLSsjZWxpZiBJU1BDX0xMVk1fVkVSU0lPTiA8 IElTUENfTExWTV8xMl8wCi0gICAgICAgICAgICAgICAgICAgICB7c3RhdGljX2Nhc3Q8dW5zaWdu ZWQgaW50PihnLT50YXJnZXQtPmdldE5hdGl2ZVZlY3RvcldpZHRoKCkpLCBmYWxzZX0sCi0gI2Vs c2UgLy8gTExWTSAxMi4wKwotICAgICAgICAgICAgICAgICAgICAgbGx2bTo6RWxlbWVudENvdW50 OjpnZXQoc3RhdGljX2Nhc3Q8dW5zaWduZWQgaW50PihnLT50YXJnZXQtPmdldE5hdGl2ZVZlY3Rv cldpZHRoKCkpLCBmYWxzZSksCi1AQCAtNjU2Nyw3ICs2NTY3LDcgQEAgbGx2bTo6VmFsdWUgKkZp eEFkZHJlc3NTcGFjZTo6Y2FsY3VsYXRlR2F0aGVyU2NhdHRlckFkZHJlc3MobGx2bTo6VmFsdWUg KlB0ciwgbGwKLSAgICAgICAgIGxsdm06OkNvbnN0YW50ICp6ZXJvVmVjID0gbGx2bTo6Q29uc3Rh bnRWZWN0b3I6OmdldFNwbGF0KAotICNpZiBJU1BDX0xMVk1fVkVSU0lPTiA8IElTUENfTExWTV8x MV8wCi0gICAgICAgICAgICAgYWRkcmVzc1R5cGUtPmdldFZlY3Rvck51bUVsZW1lbnRzKCksCi0t I2VsaWYgSVNQQ19MTFZNX1ZFUlNJT04gPT0gSVNQQ19MTFZNXzExXzAKLSsjZWxpZiBJU1BDX0xM Vk1fVkVSU0lPTiA8IElTUENfTExWTV8xMl8wCi0gICAgICAgICAgICAge2xsdm06OmR5bl9jYXN0 PGxsdm06OlZlY3RvclR5cGU+KGFkZHJlc3NUeXBlKS0+Z2V0TnVtRWxlbWVudHMoKSwgZmFsc2V9 LAotICNlbHNlCi0gICAgICAgICBsbHZtOjpFbGVtZW50Q291bnQ6OmdldCgKZGlmZiAtLWdpdCBh L3NyY3BrZ3MvaXNwYy9wYXRjaGVzL2xsdm0xMi0wMDcucGF0Y2ggYi9zcmNwa2dzL2lzcGMvcGF0 Y2hlcy9sbHZtMTItMDA3LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxYjk3 NWY4OTZjN2UuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2lzcGMvcGF0Y2hlcy9sbHZtMTIt MDA3LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTYwICswLDAgQEAKLUZyb20gNjJmNWE2YzM3 YmYyNmZjMjVhN2NmODE4NjgwNTJkMzQ3Mjg3NDYxMCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK LUZyb206IEFyaW5hIE5lc2hseWFldmEgPGFyaW5hLm5lc2hseWFldmFAaW50ZWwuY29tPgotRGF0 ZTogVHVlLCAyMyBNYXIgMjAyMSAyMzowNzozMCAtMDcwMAotU3ViamVjdDogW1BBVENIXSBEbyBu b3QgZ2VuZXJhdGUgZnVuY3Rpb24gbWFzayB3aGVuIGl0IGlzIG5vdCByZXF1aXJlZAotCi0tLS0K LSBzcmMvY3R4LmNwcCAgICAgICAgICAgICAgICAgICAgfCAzOSArKysrKysrKysrKysrKy0tLS0t LS0KLSB0ZXN0cy9saXQtdGVzdHMvZnVsbF9tYXNrLmlzcGMgfCA2MyArKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrCi0gMiBmaWxlcyBjaGFuZ2VkLCA5MCBpbnNlcnRpb25zKCspLCAx MiBkZWxldGlvbnMoLSkKLSBjcmVhdGUgbW9kZSAxMDA2NDQgdGVzdHMvbGl0LXRlc3RzL2Z1bGxf bWFzay5pc3BjCi0KLWRpZmYgLS1naXQgYS9zcmMvY3R4LmNwcCBiL3NyYy9jdHguY3BwCi1pbmRl eCA1MjdhMDJmMzAuLjllNzc1ZmM1YyAxMDA2NDQKLS0tLSBhL3NyYy9jdHguY3BwCi0rKysgYi9z cmMvY3R4LmNwcAotQEAgLTIzMSwxMCArMjMxLDE4IEBAIEZ1bmN0aW9uRW1pdENvbnRleHQ6OkZ1 bmN0aW9uRW1pdENvbnRleHQoRnVuY3Rpb24gKmZ1bmMsIFN5bWJvbCAqZnVuU3ltLCBsbHZtOjpG Ci0gICAgIGludGVybmFsTWFza1BvaW50ZXIgPSBBbGxvY2FJbnN0KExMVk1UeXBlczo6TWFza1R5 cGUsICJpbnRlcm5hbF9tYXNrX21lbW9yeSIpOwotICAgICBTdG9yZUluc3QoTExWTU1hc2tBbGxP biwgaW50ZXJuYWxNYXNrUG9pbnRlcik7Ci0gCi0tICAgIGZ1bmN0aW9uTWFza1ZhbHVlID0gTExW TU1hc2tBbGxPbjsKLS0KLS0gICAgZnVsbE1hc2tQb2ludGVyID0gQWxsb2NhSW5zdChMTFZNVHlw ZXM6Ok1hc2tUeXBlLCAiZnVsbF9tYXNrX21lbW9yeSIpOwotLSAgICBTdG9yZUluc3QoTExWTU1h c2tBbGxPbiwgZnVsbE1hc2tQb2ludGVyKTsKLSsgICAgLy8gSWYgdGhlIGZ1bmN0aW9uIGRvZXNu J3QgaGF2ZSBfX21hc2sgaW4gcGFyYW1ldGVycywgdGhlcmUgaXMgbm8gbmVlZCB0bwotKyAgICAv LyBoYXZlIGZ1bmN0aW9uIG1hc2sKLSsgICAgaWYgKChmdW5jLT5HZXRUeXBlKCktPmlzRXhwb3J0 ZWQgJiYKLSsgICAgICAgICAobGYtPmdldEZ1bmN0aW9uVHlwZSgpLT5nZXROdW1QYXJhbXMoKSA9 PSBmdW5jLT5HZXRUeXBlKCktPkdldE51bVBhcmFtZXRlcnMoKSkpIHx8Ci0rICAgICAgICAoZnVu Yy0+R2V0VHlwZSgpLT5pc1VubWFza2VkKSB8fCAoZnVuYy0+R2V0VHlwZSgpLT5pc1Rhc2spKSB7 Ci0rICAgICAgICBmdW5jdGlvbk1hc2tWYWx1ZSA9IE5VTEw7Ci0rICAgICAgICBmdWxsTWFza1Bv aW50ZXIgPSBOVUxMOwotKyAgICB9IGVsc2UgewotKyAgICAgICAgZnVuY3Rpb25NYXNrVmFsdWUg PSBMTFZNTWFza0FsbE9uOwotKyAgICAgICAgZnVsbE1hc2tQb2ludGVyID0gQWxsb2NhSW5zdChM TFZNVHlwZXM6Ok1hc2tUeXBlLCAiZnVsbF9tYXNrX21lbW9yeSIpOwotKyAgICAgICAgU3RvcmVJ bnN0KExMVk1NYXNrQWxsT24sIGZ1bGxNYXNrUG9pbnRlcik7Ci0rICAgIH0KLSAKLSAgICAgYmxv Y2tFbnRyeU1hc2sgPSBOVUxMOwotICAgICBicmVha0xhbmVzUHRyID0gY29udGludWVMYW5lc1B0 ciA9IE5VTEw7Ci1AQCAtMzg5LDIwICszOTcsMjYgQEAgbGx2bTo6QmFzaWNCbG9jayAqRnVuY3Rp b25FbWl0Q29udGV4dDo6R2V0Q3VycmVudEJhc2ljQmxvY2soKSB7IHJldHVybiBiYmxvY2s7IH0K LSAKLSB2b2lkIEZ1bmN0aW9uRW1pdENvbnRleHQ6OlNldEN1cnJlbnRCYXNpY0Jsb2NrKGxsdm06 OkJhc2ljQmxvY2sgKmJiKSB7IGJibG9jayA9IGJiOyB9Ci0gCi0tbGx2bTo6VmFsdWUgKkZ1bmN0 aW9uRW1pdENvbnRleHQ6OkdldEZ1bmN0aW9uTWFzaygpIHsgcmV0dXJuIGZ1bmN0aW9uTWFza1Zh bHVlOyB9Ci0rbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkdldEZ1bmN0aW9uTWFz aygpIHsgcmV0dXJuIGZ1bGxNYXNrUG9pbnRlciA/IGZ1bmN0aW9uTWFza1ZhbHVlIDogTExWTU1h c2tBbGxPbjsgfQotIAotIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpHZXRJbnRl cm5hbE1hc2soKSB7IHJldHVybiBMb2FkSW5zdChpbnRlcm5hbE1hc2tQb2ludGVyLCBOVUxMLCAi bG9hZF9tYXNrIik7IH0KLSAKLSBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6R2V0 RnVsbE1hc2soKSB7Ci0tICAgIHJldHVybiBCaW5hcnlPcGVyYXRvcihsbHZtOjpJbnN0cnVjdGlv bjo6QW5kLCBHZXRJbnRlcm5hbE1hc2soKSwgZnVuY3Rpb25NYXNrVmFsdWUsICJpbnRlcm5hbF9t YXNrJmZ1bmN0aW9uX21hc2siKTsKLSsgICAgcmV0dXJuIGZ1bGxNYXNrUG9pbnRlciA/IEJpbmFy eU9wZXJhdG9yKGxsdm06Okluc3RydWN0aW9uOjpBbmQsIEdldEludGVybmFsTWFzaygpLCBmdW5j dGlvbk1hc2tWYWx1ZSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICJpbnRlcm5hbF9tYXNrJmZ1bmN0aW9uX21hc2siKQotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgIDogR2V0SW50ZXJuYWxNYXNrKCk7Ci0gfQotIAotLWxsdm06OlZhbHVlICpGdW5jdGlv bkVtaXRDb250ZXh0OjpHZXRGdWxsTWFza1BvaW50ZXIoKSB7IHJldHVybiBmdWxsTWFza1BvaW50 ZXI7IH0KLStsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6R2V0RnVsbE1hc2tQb2lu dGVyKCkgewotKyAgICByZXR1cm4gZnVsbE1hc2tQb2ludGVyID8gZnVsbE1hc2tQb2ludGVyIDog aW50ZXJuYWxNYXNrUG9pbnRlcjsKLSt9Ci0gCi0gdm9pZCBGdW5jdGlvbkVtaXRDb250ZXh0OjpT ZXRGdW5jdGlvbk1hc2sobGx2bTo6VmFsdWUgKnZhbHVlKSB7Ci0tICAgIGZ1bmN0aW9uTWFza1Zh bHVlID0gdmFsdWU7Ci0tICAgIGlmIChiYmxvY2sgIT0gTlVMTCkKLS0gICAgICAgIFN0b3JlSW5z dChHZXRGdWxsTWFzaygpLCBmdWxsTWFza1BvaW50ZXIpOwotKyAgICBpZiAoZnVsbE1hc2tQb2lu dGVyICE9IE5VTEwpIHsKLSsgICAgICAgIGZ1bmN0aW9uTWFza1ZhbHVlID0gdmFsdWU7Ci0rICAg ICAgICBpZiAoYmJsb2NrICE9IE5VTEwpCi0rICAgICAgICAgICAgU3RvcmVJbnN0KEdldEZ1bGxN YXNrKCksIGZ1bGxNYXNrUG9pbnRlcik7Ci0rICAgIH0KLSB9Ci0gCi0gdm9pZCBGdW5jdGlvbkVt aXRDb250ZXh0OjpTZXRCbG9ja0VudHJ5TWFzayhsbHZtOjpWYWx1ZSAqdmFsdWUpIHsgYmxvY2tF bnRyeU1hc2sgPSB2YWx1ZTsgfQotQEAgLTQxMCw3ICs0MjQsOCBAQCB2b2lkIEZ1bmN0aW9uRW1p dENvbnRleHQ6OlNldEJsb2NrRW50cnlNYXNrKGxsdm06OlZhbHVlICp2YWx1ZSkgeyBibG9ja0Vu dHJ5TWFzawotIHZvaWQgRnVuY3Rpb25FbWl0Q29udGV4dDo6U2V0SW50ZXJuYWxNYXNrKGxsdm06 OlZhbHVlICp2YWx1ZSkgewotICAgICBTdG9yZUluc3QodmFsdWUsIGludGVybmFsTWFza1BvaW50 ZXIpOwotICAgICAvLyBrbHVkZ2Ugc28gdGhhdCBfX21hc2sgcmV0dXJucyB0aGUgcmlnaHQgdmFs dWUgaW4gaXNwYyBjb2RlLgotLSAgICBTdG9yZUluc3QoR2V0RnVsbE1hc2soKSwgZnVsbE1hc2tQ b2ludGVyKTsKLSsgICAgaWYgKGZ1bGxNYXNrUG9pbnRlcikKLSsgICAgICAgIFN0b3JlSW5zdChH ZXRGdWxsTWFzaygpLCBmdWxsTWFza1BvaW50ZXIpOwotIH0KLSAKLSB2b2lkIEZ1bmN0aW9uRW1p dENvbnRleHQ6OlNldEludGVybmFsTWFza0FuZChsbHZtOjpWYWx1ZSAqb2xkTWFzaywgbGx2bTo6 VmFsdWUgKnRlc3QpIHsKLUBAIC0xMjY1LDcgKzEyODAsNyBAQCB2b2lkIEZ1bmN0aW9uRW1pdENv bnRleHQ6OkN1cnJlbnRMYW5lc1JldHVybmVkKEV4cHIgKmV4cHIsIGJvb2wgZG9Db2hlcmVuY2VD aGVjawotICAgICAgICAgLy8gbGFuZXMgaGF2ZSByZXR1cm5lZAotICAgICAgICAgaWYgKGRvQ29o ZXJlbmNlQ2hlY2spIHsKLSAgICAgICAgICAgICAvLyBpZiBuZXdSZXR1cm5lZExhbmVzID09IGZ1 bmN0aW9uTWFza1ZhbHVlLCBnZXQgb3V0IG9mIGhlcmUhCi0tICAgICAgICAgICAgbGx2bTo6VmFs dWUgKmNtcCA9IE1hc2tzQWxsRXF1YWwoZnVuY3Rpb25NYXNrVmFsdWUsIG5ld1JldHVybmVkTGFu ZXMpOwotKyAgICAgICAgICAgIGxsdm06OlZhbHVlICpjbXAgPSBNYXNrc0FsbEVxdWFsKEdldEZ1 bmN0aW9uTWFzaygpLCBuZXdSZXR1cm5lZExhbmVzKTsKLSAgICAgICAgICAgICBsbHZtOjpCYXNp Y0Jsb2NrICpiRG9SZXR1cm4gPSBDcmVhdGVCYXNpY0Jsb2NrKCJkb19yZXR1cm4iKTsKLSAgICAg ICAgICAgICBsbHZtOjpCYXNpY0Jsb2NrICpiTm9SZXR1cm4gPSBDcmVhdGVCYXNpY0Jsb2NrKCJu b19yZXR1cm4iKTsKLSAgICAgICAgICAgICBCcmFuY2hJbnN0KGJEb1JldHVybiwgYk5vUmV0dXJu LCBjbXApOwotZGlmZiAtLWdpdCBhL3Rlc3RzL2xpdC10ZXN0cy9mdWxsX21hc2suaXNwYyBiL3Rl c3RzL2xpdC10ZXN0cy9mdWxsX21hc2suaXNwYwotbmV3IGZpbGUgbW9kZSAxMDA2NDQKLWluZGV4 IDAwMDAwMDAwMC4uYWMwYjBiY2EzCi0tLS0gL2Rldi9udWxsCi0rKysgYi90ZXN0cy9saXQtdGVz dHMvZnVsbF9tYXNrLmlzcGMKLUBAIC0wLDAgKzEsNjMgQEAKLSsvLyBSVU46ICV7aXNwY30gJXMg LURJU1BDX0VYUE9SVCAtLWVtaXQtbGx2bS10ZXh0IC1PMCAtLW5vd3JhcCAtbyAldC5sbAotKy8v IFJVTjogRmlsZUNoZWNrIC0taW5wdXQtZmlsZT0ldC5sbCAtY2hlY2stcHJlZml4PUNIRUNLX0lT UENfRVhQT1JUICVzCi0rCi0rLy8gUlVOOiAle2lzcGN9ICVzIC1ESVNQQ19VTk1BU0tFRCAtLWVt aXQtbGx2bS10ZXh0IC1PMCAtLW5vd3JhcCAtbyAldC5sbAotKy8vIFJVTjogRmlsZUNoZWNrIC0t aW5wdXQtZmlsZT0ldC5sbCAtY2hlY2stcHJlZml4PUNIRUNLX0lTUENfVU5NQVNLRUQgJXMKLSsK LSsvLyBSVU46ICV7aXNwY30gJXMgLURJU1BDX05PUVVBTElGIC0tZW1pdC1sbHZtLXRleHQgLU8w IC0tbm93cmFwIC1vICV0LmxsCi0rLy8gUlVOOiBGaWxlQ2hlY2sgLS1pbnB1dC1maWxlPSV0Lmxs IC1jaGVjay1wcmVmaXg9Q0hFQ0tfSVNQQ19OT1FVQUxJRiAlcwotKwotKy8vIFJVTjogJXtpc3Bj fSAlcyAtRElTUENfVEFTSyAtLWVtaXQtbGx2bS10ZXh0IC1PMCAtLW5vd3JhcCAtbyAldC5sbAot Ky8vIFJVTjogRmlsZUNoZWNrIC0taW5wdXQtZmlsZT0ldC5sbCAtY2hlY2stcHJlZml4PUNIRUNL X0lTUENfVEFTSyAlcwotKwotK3N0cnVjdCBQYXJhbWV0ZXJzIHsKLSsgICAgZmxvYXQgKnZvdXQ7 Ci0rICAgIGludCBwYXJhbTsKLSt9OwotKwotKyNpZmRlZiBJU1BDX0VYUE9SVAotKy8vIENIRUNL X0lTUENfRVhQT1JUOiBkZWZpbmUgdm9pZCBAc2ltcGxlX2V4cG9ydF9fXwotKy8vIENIRUNLX0lT UENfRVhQT1JUOiAlZnVsbF9tYXNrX21lbW9yeSA9IGFsbG9jYQotKy8vIENIRUNLX0lTUENfRVhQ T1JUOiBkZWZpbmUgdm9pZCBAc2ltcGxlX2V4cG9ydCgKLSsvLyBDSEVDS19JU1BDX0VYUE9SVC1O T1Q6ICVmdWxsX21hc2tfbWVtb3J5ID0gYWxsb2NhCi0rZXhwb3J0IHZvaWQgc2ltcGxlX2V4cG9y dCh2b2lkICp1bmlmb3JtIF9wKSB7Ci0rICAgIFBhcmFtZXRlcnMgKnVuaWZvcm0gcCA9IChQYXJh bWV0ZXJzICogdW5pZm9ybSkgX3A7Ci0rICAgIGlmIChwcm9ncmFtSW5kZXggPiBwLT5wYXJhbSkK LSsgICAgICAgIHAtPnZvdXRbcHJvZ3JhbUluZGV4XSA9IHByb2dyYW1Db3VudCAqIHByb2dyYW1J bmRleDsKLSt9Ci0rI2VuZGlmCi0rI2lmZGVmIElTUENfVU5NQVNLRUQKLSsvLyBDSEVDS19JU1BD X1VOTUFTS0VEOiBkZWZpbmUgdm9pZCBAc2ltcGxlX3VubWFza2VkCi0rLy8gQ0hFQ0tfSVNQQ19V Tk1BU0tFRC1OT1Q6ICVmdWxsX21hc2tfbWVtb3J5ID0gYWxsb2NhCi0rdW5tYXNrZWQgdm9pZCBz aW1wbGVfdW5tYXNrZWQodm9pZCAqdW5pZm9ybSBfcCkgewotKyAgICBQYXJhbWV0ZXJzICp1bmlm b3JtIHAgPSAoUGFyYW1ldGVycyAqIHVuaWZvcm0pIF9wOwotKyAgICBpZiAocHJvZ3JhbUluZGV4 ID4gcC0+cGFyYW0pCi0rICAgICAgICBwLT52b3V0W3Byb2dyYW1JbmRleF0gPSBwcm9ncmFtQ291 bnQgKiBwcm9ncmFtSW5kZXg7Ci0rfQotKyNlbmRpZgotKyNpZmRlZiBJU1BDX05PUVVBTElGCi0r Ly8gQ0hFQ0tfSVNQQ19OT1FVQUxJRjogZGVmaW5lIHZvaWQgQHNpbXBsZQotKy8vIENIRUNLX0lT UENfTk9RVUFMSUY6ICVmdWxsX21hc2tfbWVtb3J5ID0gYWxsb2NhCi0rdm9pZCBzaW1wbGUodm9p ZCAqdW5pZm9ybSBfcCkgewotKyAgICBQYXJhbWV0ZXJzICp1bmlmb3JtIHAgPSAoUGFyYW1ldGVy cyAqIHVuaWZvcm0pIF9wOwotKyAgICBpZiAocHJvZ3JhbUluZGV4ID4gcC0+cGFyYW0pCi0rICAg ICAgICBwLT52b3V0W3Byb2dyYW1JbmRleF0gPSBwcm9ncmFtQ291bnQgKiBwcm9ncmFtSW5kZXg7 Ci0rfQotKyNlbmRpZgotKyNpZmRlZiBJU1BDX1RBU0sKLSsKLSsvLyBDSEVDS19JU1BDX1RBU0s6 IGRlZmluZSB2b2lkIEBzaW1wbGVfdGFzawotKy8vIENIRUNLX0lTUENfVEFTSy1OT1Q6ICVmdWxs X21hc2tfbWVtb3J5ID0gYWxsb2NhCi0rLy8gQ0hFQ0tfSVNQQ19UQVNLOiBkZWZpbmUgdm9pZCBA c2ltcGxlX2VudHJ5X3BvaW50X18KLSsvLyBDSEVDS19JU1BDX1RBU0s6ICVmdWxsX21hc2tfbWVt b3J5ID0gYWxsb2NhCi0rLy8gQ0hFQ0tfSVNQQ19UQVNLOiBkZWZpbmUgdm9pZCBAc2ltcGxlX2Vu dHJ5X3BvaW50KAotKy8vIENIRUNLX0lTUENfVEFTSy1OT1Q6ICVmdWxsX21hc2tfbWVtb3J5ID0g YWxsb2NhCi0rdGFzayB2b2lkIHNpbXBsZV90YXNrKHZvaWQgKnVuaWZvcm0gX3ApIHsKLSsgICAg UGFyYW1ldGVycyAqdW5pZm9ybSBwID0gKFBhcmFtZXRlcnMgKiB1bmlmb3JtKSBfcDsKLSsgICAg aWYgKHByb2dyYW1JbmRleCA+IHAtPnBhcmFtKQotKyAgICAgICAgcC0+dm91dFtwcm9ncmFtSW5k ZXhdID0gcHJvZ3JhbUNvdW50ICogcHJvZ3JhbUluZGV4OwotK30KLStleHBvcnQgdm9pZCBzaW1w bGVfZW50cnlfcG9pbnQodm9pZCAqdW5pZm9ybSBwYXJhbWV0ZXJzLCB1bmlmb3JtIGludCBkaW0w LCB1bmlmb3JtIGludCBkaW0xLCB1bmlmb3JtIGludCBkaW0yKSB7Ci0rICAgIGxhdW5jaFtkaW0w LCBkaW0xLCBkaW0yXSBzaW1wbGVfdGFzayhwYXJhbWV0ZXJzKTsKLSt9Ci0rI2VuZGlmCi1cIE5v IG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvaXNwYy9wYXRjaGVz L2xsdm0xMi0wMDgucGF0Y2ggYi9zcmNwa2dzL2lzcGMvcGF0Y2hlcy9sbHZtMTItMDA4LnBhdGNo CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjODQxM2Q4Yjc4ODcuLjAwMDAwMDAwMDAw MAotLS0gYS9zcmNwa2dzL2lzcGMvcGF0Y2hlcy9sbHZtMTItMDA4LnBhdGNoCisrKyAvZGV2L251 bGwKQEAgLTEsMTQ5ICswLDAgQEAKLUZyb20gYWZhZDE0MjI3ZDkyMDRhM2M4YTYyNmNhNjA4ZjVi NDNjMzIxOGZlOSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEFyaW5hIE5lc2hseWFl dmEgPGFyaW5hLm5lc2hseWFldmFAaW50ZWwuY29tPgotRGF0ZTogVHVlLCA0IE1heSAyMDIxIDEx OjQzOjUyIC0wNzAwCi1TdWJqZWN0OiBbUEFUQ0hdIEZpeGVkIElTUEMgZ2VuIGJ1aWxkIGZvciBM TFZNMTIKLQotLS0tCi0gc3JjL2N0eC5jcHAgfCAgNCArKysrCi0gc3JjL29wdC5jcHAgfCA0MyAr KysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tCi0gMiBmaWxlcyBjaGFu Z2VkLCAzMyBpbnNlcnRpb25zKCspLCAxNCBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL3Ny Yy9jdHguY3BwIGIvc3JjL2N0eC5jcHAKLWluZGV4IDBjNzA1MDU5MS4uZjdkYzA2OTM5IDEwMDY0 NAotLS0tIGEvc3JjL2N0eC5jcHAKLSsrKyBiL3NyYy9jdHguY3BwCi1AQCAtMzczOCw3ICszNzM4 LDExIEBAIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpHZW5YU2ltZENGQW55KGxs dm06OlZhbHVlICp2YWx1ZSkgewotIAotIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0 OjpHZW5YU2ltZENGUHJlZGljYXRlKGxsdm06OlZhbHVlICp2YWx1ZSwgbGx2bTo6VmFsdWUgKmRl ZmF1bHRzKSB7Ci0gICAgIEFzc2VydFBvcyhjdXJyZW50UG9zLCBsbHZtOjppc2E8bGx2bTo6VmVj dG9yVHlwZT4odmFsdWUtPmdldFR5cGUoKSkpOwotKyNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJ U1BDX0xMVk1fMTFfMAotKyAgICBsbHZtOjpGaXhlZFZlY3RvclR5cGUgKnZ0ID0gbGx2bTo6ZHlu X2Nhc3Q8bGx2bTo6Rml4ZWRWZWN0b3JUeXBlPih2YWx1ZS0+Z2V0VHlwZSgpKTsKLSsjZWxzZQot ICAgICBsbHZtOjpWZWN0b3JUeXBlICp2dCA9IGxsdm06OmR5bl9jYXN0PGxsdm06OlZlY3RvclR5 cGU+KHZhbHVlLT5nZXRUeXBlKCkpOwotKyNlbmRpZgotICAgICBpZiAoZGVmYXVsdHMgPT0gTlVM TCkgewotICNpZiBJU1BDX0xMVk1fVkVSU0lPTiA8IElTUENfTExWTV8xMV8wCi0gICAgICAgICBk ZWZhdWx0cyA9IGxsdm06OkNvbnN0YW50VmVjdG9yOjpnZXRTcGxhdCh2dC0+Z2V0VmVjdG9yTnVt RWxlbWVudHMoKSwKLWRpZmYgLS1naXQgYS9zcmMvb3B0LmNwcCBiL3NyYy9vcHQuY3BwCi1pbmRl eCBjZWE0YWZhMjMuLjRlMzNkNmIxYSAxMDA2NDQKLS0tLSBhL3NyYy9vcHQuY3BwCi0rKysgYi9z cmMvb3B0LmNwcAotQEAgLTI5MTYsOSArMjkxNiwxMyBAQCBzdGF0aWMgbGx2bTo6RnVuY3Rpb24g KmxHZW5YTWFza2VkSW50OEluc3QobGx2bTo6SW5zdHJ1Y3Rpb24gKmluc3QsIGJvb2wgaXNTdG9y ZQotIAotIHN0YXRpYyBsbHZtOjpDYWxsSW5zdCAqbEdlblhTdG9yZUluc3QobGx2bTo6VmFsdWUg KnZhbCwgbGx2bTo6VmFsdWUgKnB0ciwgbGx2bTo6SW5zdHJ1Y3Rpb24gKmluc3QpIHsKLSAgICAg QXNzZXJ0KGctPnRhcmdldC0+aXNHZW5YVGFyZ2V0KCkpOwotKyNpZiBJU1BDX0xMVk1fVkVSU0lP TiA+PSBJU1BDX0xMVk1fMTFfMAotKyAgICBBc3NlcnQobGx2bTo6aXNhPGxsdm06OkZpeGVkVmVj dG9yVHlwZT4odmFsLT5nZXRUeXBlKCkpKTsKLSsgICAgbGx2bTo6Rml4ZWRWZWN0b3JUeXBlICp2 YWxWZWNUeXBlID0gbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6Rml4ZWRWZWN0b3JUeXBlPih2YWwtPmdl dFR5cGUoKSk7Ci0rI2Vsc2UKLSAgICAgQXNzZXJ0KGxsdm06OmlzYTxsbHZtOjpWZWN0b3JUeXBl Pih2YWwtPmdldFR5cGUoKSkpOwotLQotICAgICBsbHZtOjpWZWN0b3JUeXBlICp2YWxWZWNUeXBl ID0gbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6VmVjdG9yVHlwZT4odmFsLT5nZXRUeXBlKCkpOwotKyNl bmRpZgotICAgICBBc3NlcnQobGx2bTo6aXNQb3dlck9mMl8zMih2YWxWZWNUeXBlLT5nZXROdW1F bGVtZW50cygpKSk7Ci0gICAgIEFzc2VydCh2YWxWZWNUeXBlLT5nZXRQcmltaXRpdmVTaXplSW5C aXRzKCkgLyA4IDw9IDggKiBPV09SRCk7Ci0gCi1AQCAtMjk0Miw5ICsyOTQ2LDEzIEBAIHN0YXRp YyBsbHZtOjpDYWxsSW5zdCAqbEdlblhTdG9yZUluc3QobGx2bTo6VmFsdWUgKnZhbCwgbGx2bTo6 VmFsdWUgKnB0ciwgbGx2bTo6Ci0gfQotIAotIHN0YXRpYyBsbHZtOjpDYWxsSW5zdCAqbEdlblhM b2FkSW5zdChsbHZtOjpWYWx1ZSAqcHRyLCBsbHZtOjpUeXBlICpyZXRUeXBlLCBsbHZtOjpJbnN0 cnVjdGlvbiAqaW5zdCkgewotKyNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTFf MAotKyAgICBBc3NlcnQobGx2bTo6aXNhPGxsdm06OkZpeGVkVmVjdG9yVHlwZT4ocmV0VHlwZSkp OwotKyAgICBsbHZtOjpGaXhlZFZlY3RvclR5cGUgKnJldFZlY1R5cGUgPSBsbHZtOjpkeW5fY2Fz dDxsbHZtOjpGaXhlZFZlY3RvclR5cGU+KHJldFR5cGUpOwotKyNlbHNlCi0gICAgIEFzc2VydChs bHZtOjppc2E8bGx2bTo6VmVjdG9yVHlwZT4ocmV0VHlwZSkpOwotLQotICAgICBsbHZtOjpWZWN0 b3JUeXBlICpyZXRWZWNUeXBlID0gbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6VmVjdG9yVHlwZT4ocmV0 VHlwZSk7Ci0rI2VuZGlmCi0gICAgIEFzc2VydChsbHZtOjppc1Bvd2VyT2YyXzMyKHJldFZlY1R5 cGUtPmdldE51bUVsZW1lbnRzKCkpKTsKLSAgICAgQXNzZXJ0KHJldFZlY1R5cGUtPmdldFByaW1p dGl2ZVNpemVJbkJpdHMoKSk7Ci0gICAgIEFzc2VydChyZXRWZWNUeXBlLT5nZXRQcmltaXRpdmVT aXplSW5CaXRzKCkgLyA4IDw9IDggKiBPV09SRCk7Ci1AQCAtNTQ4NSw4ICs1NDkzLDEzIEBAIHN0 YXRpYyB2b2lkIGxDcmVhdGVCbG9ja0xEVXNlKGxsdm06Okluc3RydWN0aW9uICpjdXJySW5zdCwg c3RkOjp2ZWN0b3I8bGx2bTo6RXh0Ci0gICAgICAgICB9IGVsc2UgaWYgKGF1dG8gZ2F0aGVyID0g bEdldFBzZXVkb0dhdGhlcihsbHZtOjpkeW5fY2FzdDxsbHZtOjpJbnN0cnVjdGlvbj4odWktPmdl dFVzZXIoKSkpKSB7Ci0gICAgICAgICAgICAgLy8gQ29sbGVjdCBpZHhzIGZyb20gZ2F0aGVyIGFu ZCBmaXggdXNlcnMKLSAgICAgICAgICAgICBsbHZtOjpWYWx1ZSAqcmVzID0gbGx2bTo6VW5kZWZW YWx1ZTo6Z2V0KGdhdGhlci0+Z2V0VHlwZSgpKTsKLS0gICAgICAgICAgICBmb3IgKHVuc2lnbmVk IGkgPSAwLCBlbmQgPSBsbHZtOjpkeW5fY2FzdDxsbHZtOjpWZWN0b3JUeXBlPihyZXMtPmdldFR5 cGUoKSktPmdldE51bUVsZW1lbnRzKCk7IGkgPCBlbmQ7Ci0tICAgICAgICAgICAgICAgICArK2kp IHsKLSsjaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzExXzAKLSsgICAgICAgICAg ICBmb3IgKHVuc2lnbmVkIGkgPSAwLCBlbmQgPSBsbHZtOjpkeW5fY2FzdDxsbHZtOjpGaXhlZFZl Y3RvclR5cGU+KHJlcy0+Z2V0VHlwZSgpKS0+Z2V0TnVtRWxlbWVudHMoKTsgaSA8IGVuZDsKLSsg ICAgICAgICAgICAgICAgICsraSkKLSsjZWxzZQotKyAgICAgICAgICAgIGZvciAodW5zaWduZWQg aSA9IDAsIGVuZCA9IGxsdm06OmR5bl9jYXN0PGxsdm06OlZlY3RvclR5cGU+KHJlcy0+Z2V0VHlw ZSgpKS0+Z2V0TnVtRWxlbWVudHMoKTsgaSA8IGVuZDsgKytpKQotKyNlbmRpZgotKyAgICAgICAg ICAgIHsKLSAgICAgICAgICAgICAgICAgLy8gR2V0IGVsZW1lbnQgdmlhIElFSQotICAgICAgICAg ICAgICAgICByZXMgPSBsbHZtOjpJbnNlcnRFbGVtZW50SW5zdDo6Q3JlYXRlKHJlcywgRUVJc1tw dHJVc2UuaWR4c1tjdXJyX2lkeCsrXV0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6Q29uc3RhbnRJbnQ6OmdldChMTFZNVHlwZXM6 OkludDMyVHlwZSwgaSksCi1AQCAtNTUyMiwxMCArNTUzNSwxMSBAQCBzdGF0aWMgYm9vbCBsVmVj dG9yaXplR0VQcyhsbHZtOjpWYWx1ZSAqcHRyLCBzdGQ6OnZlY3RvcjxQdHJVc2U+ICZwdHJVc2Vz LCBzdGQ6OgotIAotICAgICAvLyBBZGp1c3QgdmFsdWVzIGZvciB2ZWN0b3IgbG9hZAotICNpZiBJ U1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTFfMAotLSAgICBpZiAoYXV0byB2ZWNUeSA9 IGxsdm06OmR5bl9jYXN0PGxsdm06OkZpeGVkVmVjdG9yVHlwZT4odHlwZSkpIHsKLSsgICAgaWYg KGF1dG8gdmVjVHkgPSBsbHZtOjpkeW5fY2FzdDxsbHZtOjpGaXhlZFZlY3RvclR5cGU+KHR5cGUp KQotICNlbHNlCi0tICAgIGlmIChhdXRvIHZlY1R5ID0gbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6VmVj dG9yVHlwZT4odHlwZSkpIHsKLSsgICAgaWYgKGF1dG8gdmVjVHkgPSBsbHZtOjpkeW5fY2FzdDxs bHZtOjpWZWN0b3JUeXBlPih0eXBlKSkKLSAjZW5kaWYKLSsgICAgewotICAgICAgICAgLy8gR2V0 IHNpbmdsZSBlbGVtZW50IHNpemUKLSAgICAgICAgIHRfc2l6ZSAvPSB2ZWNUeS0+Z2V0TnVtRWxl bWVudHMoKTsKLSAgICAgICAgIC8vIEdldCBzaW5nbGUgZWxlbWVudCB0eXBlCi1AQCAtNjQ3Nyw3 ICs2NDkxLDcgQEAgbGx2bTo6VmFsdWUgKkZpeEFkZHJlc3NTcGFjZTo6Y2FsY3VsYXRlR2F0aGVy U2NhdHRlckFkZHJlc3MobGx2bTo6VmFsdWUgKlB0ciwgbGwKLSAjaWYgSVNQQ19MTFZNX1ZFUlNJ T04gPj0gSVNQQ19MTFZNXzExXzAKLSAgICAgICAgIE9mZnNldHMsCi0gICAgICAgICBsbHZtOjpG aXhlZFZlY3RvclR5cGU6OmdldChMTFZNVHlwZXM6OkludDY0VHlwZSwKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGxsdm06OmR5bl9jYXN0PGxsdm06OlZlY3RvclR5cGU+KE9m ZnNldHMtPmdldFR5cGUoKSktPmdldE51bUVsZW1lbnRzKCkpLAotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6Rml4ZWRWZWN0b3JUeXBlPihP ZmZzZXRzLT5nZXRUeXBlKCkpLT5nZXROdW1FbGVtZW50cygpKSwKLSAgICAgICAgICJzdm1fb2Zm c2V0X3pleHQiLCBJbnNlcnRCZWZvcmUpOwotICNlbHNlCi0gICAgICAgICBPZmZzZXRzLCBsbHZt OjpWZWN0b3JUeXBlOjpnZXQoTExWTVR5cGVzOjpJbnQ2NFR5cGUsIE9mZnNldHMtPmdldFR5cGUo KS0+Z2V0VmVjdG9yTnVtRWxlbWVudHMoKSksCi1AQCAtNjQ5Miw3ICs2NTA2LDcgQEAgbGx2bTo6 VmFsdWUgKkZpeEFkZHJlc3NTcGFjZTo6Y2FsY3VsYXRlR2F0aGVyU2NhdHRlckFkZHJlc3MobGx2 bTo6VmFsdWUgKlB0ciwgbGwKLSAgICAgICAgIGxsdm06OlZhbHVlICp1bmRlZkluc2VydFZhbHVl ID0KLSAjaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzExXzAKLSAgICAgICAgICAg ICBsbHZtOjpVbmRlZlZhbHVlOjpnZXQobGx2bTo6Rml4ZWRWZWN0b3JUeXBlOjpnZXQoCi0tICAg ICAgICAgICAgICAgIExMVk1UeXBlczo6SW50NjRUeXBlLCBsbHZtOjpkeW5fY2FzdDxsbHZtOjpW ZWN0b3JUeXBlPihhZGRyZXNzVHlwZSktPmdldE51bUVsZW1lbnRzKCkpKTsKLSsgICAgICAgICAg ICAgICAgTExWTVR5cGVzOjpJbnQ2NFR5cGUsIGxsdm06OmR5bl9jYXN0PGxsdm06OkZpeGVkVmVj dG9yVHlwZT4oYWRkcmVzc1R5cGUpLT5nZXROdW1FbGVtZW50cygpKSk7Ci0gI2Vsc2UKLSAgICAg ICAgICAgICBsbHZtOjpVbmRlZlZhbHVlOjpnZXQobGx2bTo6VmVjdG9yVHlwZTo6Z2V0KExMVk1U eXBlczo6SW50NjRUeXBlLCBhZGRyZXNzVHlwZS0+Z2V0VmVjdG9yTnVtRWxlbWVudHMoKSkpOwot ICNlbmRpZgotQEAgLTY1MDEsMTcgKzY1MTUsMTYgQEAgbGx2bTo6VmFsdWUgKkZpeEFkZHJlc3NT cGFjZTo6Y2FsY3VsYXRlR2F0aGVyU2NhdHRlckFkZHJlc3MobGx2bTo6VmFsdWUgKlB0ciwgbGwK LSAjaWYgSVNQQ19MTFZNX1ZFUlNJT04gPCBJU1BDX0xMVk1fMTFfMAotICAgICAgICAgICAgIGFk ZHJlc3NUeXBlLT5nZXRWZWN0b3JOdW1FbGVtZW50cygpLAotICNlbGlmIElTUENfTExWTV9WRVJT SU9OIDwgSVNQQ19MTFZNXzEyXzAKLS0gICAgICAgICAgICB7bGx2bTo6ZHluX2Nhc3Q8bGx2bTo6 VmVjdG9yVHlwZT4oYWRkcmVzc1R5cGUpLT5nZXROdW1FbGVtZW50cygpLCBmYWxzZX0sCi0rICAg ICAgICAgICAge2xsdm06OmR5bl9jYXN0PGxsdm06OkZpeGVkVmVjdG9yVHlwZT4oYWRkcmVzc1R5 cGUpLT5nZXROdW1FbGVtZW50cygpLCBmYWxzZX0sCi0gI2Vsc2UKLS0gICAgICAgIGxsdm06OkVs ZW1lbnRDb3VudDo6Z2V0KAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6 ZHluX2Nhc3Q8bGx2bTo6Rml4ZWRWZWN0b3JUeXBlPihhZGRyZXNzVHlwZS0+Z2V0TnVtRWxlbWVu dHMoKSwgZmFsc2UpLAotKyAgICAgICAgICAgIGxsdm06OkVsZW1lbnRDb3VudDo6Z2V0KGxsdm06 OmR5bl9jYXN0PGxsdm06OkZpeGVkVmVjdG9yVHlwZT4oYWRkcmVzc1R5cGUpLT5nZXROdW1FbGVt ZW50cygpLCBmYWxzZSksCi0gI2VuZGlmCi0gICAgICAgICAgICAgbGx2bTo6Q29uc3RhbnQ6Omdl dE51bGxWYWx1ZShsbHZtOjpUeXBlOjpnZXRJbnQzMlR5KEluc2VydEJlZm9yZS0+Z2V0Q29udGV4 dCgpKSkpOwotIAotICAgICAgICAgbGx2bTo6VmFsdWUgKnVuZGVmU2h1ZmZsZVZhbHVlID0KLSAj aWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzExXzAKLSAgICAgICAgICAgICBsbHZt OjpVbmRlZlZhbHVlOjpnZXQobGx2bTo6Rml4ZWRWZWN0b3JUeXBlOjpnZXQoCi0tICAgICAgICAg ICAgICAgIExMVk1UeXBlczo6SW50NjRUeXBlLCBsbHZtOjpkeW5fY2FzdDxsbHZtOjpWZWN0b3JU eXBlPihhZGRyZXNzVHlwZSktPmdldE51bUVsZW1lbnRzKCkpKTsKLSsgICAgICAgICAgICAgICAg TExWTVR5cGVzOjpJbnQ2NFR5cGUsIGxsdm06OmR5bl9jYXN0PGxsdm06OkZpeGVkVmVjdG9yVHlw ZT4oYWRkcmVzc1R5cGUpLT5nZXROdW1FbGVtZW50cygpKSk7Ci0gI2Vsc2UKLSAgICAgICAgICAg ICBsbHZtOjpVbmRlZlZhbHVlOjpnZXQobGx2bTo6VmVjdG9yVHlwZTo6Z2V0KExMVk1UeXBlczo6 SW50NjRUeXBlLCBhZGRyZXNzVHlwZS0+Z2V0VmVjdG9yTnVtRWxlbWVudHMoKSkpOwotICNlbmRp ZgotQEAgLTY1NDIsNyArNjU1NSw4IEBAIGxsdm06Okluc3RydWN0aW9uICpGaXhBZGRyZXNzU3Bh Y2U6OnByb2Nlc3NWZWN0b3JMb2FkKGxsdm06OkxvYWRJbnN0ICpMSSkgewotICAgICAgICAgaXNQ dHJMb2FkID0gdHJ1ZTsKLSAgICAgICAgIGF1dG8gc2NhbGFyVHlwZSA9IGctPnRhcmdldC0+aXMz MkJpdCgpID8gTExWTVR5cGVzOjpJbnQzMlR5cGUgOiBMTFZNVHlwZXM6OkludDY0VHlwZTsKLSAj aWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzExXzAKLS0gICAgICAgIHJldFR5cGUg PSBsbHZtOjpGaXhlZFZlY3RvclR5cGU6OmdldChzY2FsYXJUeXBlLCBsbHZtOjpkeW5fY2FzdDxs bHZtOjpWZWN0b3JUeXBlPihyZXRUeXBlKS0+Z2V0TnVtRWxlbWVudHMoKSk7Ci0rICAgICAgICBy ZXRUeXBlID0KLSsgICAgICAgICAgICBsbHZtOjpGaXhlZFZlY3RvclR5cGU6OmdldChzY2FsYXJU eXBlLCBsbHZtOjpkeW5fY2FzdDxsbHZtOjpGaXhlZFZlY3RvclR5cGU+KHJldFR5cGUpLT5nZXRO dW1FbGVtZW50cygpKTsKLSAjZWxzZQotICAgICAgICAgcmV0VHlwZSA9IGxsdm06OlZlY3RvclR5 cGU6OmdldChzY2FsYXJUeXBlLCByZXRUeXBlLT5nZXRWZWN0b3JOdW1FbGVtZW50cygpKTsKLSAj ZW5kaWYKLUBAIC02NjA0LDcgKzY2MTgsOCBAQCBsbHZtOjpJbnN0cnVjdGlvbiAqRml4QWRkcmVz c1NwYWNlOjpwcm9jZXNzVmVjdG9yU3RvcmUobGx2bTo6U3RvcmVJbnN0ICpTSSkgewotICAgICBp ZiAodmFsVHlwZS0+Z2V0U2NhbGFyVHlwZSgpLT5pc1BvaW50ZXJUeSgpKSB7Ci0gICAgICAgICBh dXRvIHNjYWxhclR5cGUgPSBnLT50YXJnZXQtPmlzMzJCaXQoKSA/IExMVk1UeXBlczo6SW50MzJU eXBlIDogTExWTVR5cGVzOjpJbnQ2NFR5cGU7Ci0gI2lmIElTUENfTExWTV9WRVJTSU9OID49IElT UENfTExWTV8xMV8wCi0tICAgICAgICB2YWxUeXBlID0gbGx2bTo6Rml4ZWRWZWN0b3JUeXBlOjpn ZXQoc2NhbGFyVHlwZSwgbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6VmVjdG9yVHlwZT4odmFsVHlwZSkt PmdldE51bUVsZW1lbnRzKCkpOwotKyAgICAgICAgdmFsVHlwZSA9Ci0rICAgICAgICAgICAgbGx2 bTo6Rml4ZWRWZWN0b3JUeXBlOjpnZXQoc2NhbGFyVHlwZSwgbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6 Rml4ZWRWZWN0b3JUeXBlPih2YWxUeXBlKS0+Z2V0TnVtRWxlbWVudHMoKSk7Ci0gI2Vsc2UKLSAg ICAgICAgIHZhbFR5cGUgPSBsbHZtOjpWZWN0b3JUeXBlOjpnZXQoc2NhbGFyVHlwZSwgdmFsVHlw ZS0+Z2V0VmVjdG9yTnVtRWxlbWVudHMoKSk7Ci0gI2VuZGlmCmRpZmYgLS1naXQgYS9zcmNwa2dz L2lzcGMvcGF0Y2hlcy9sbHZtMTItMDA5LnBhdGNoIGIvc3JjcGtncy9pc3BjL3BhdGNoZXMvbGx2 bTEyLTAwOS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDNlYTY3ODI4NTgy Li4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9pc3BjL3BhdGNoZXMvbGx2bTEyLTAwOS5wYXRj aAorKysgL2Rldi9udWxsCkBAIC0xLDIxMDkgKzAsMCBAQAotRnJvbSA5N2IxM2MzMjEzMmUyNzA0 YTVlM2U3YjJlYWU0OWQ4NTRkMDg3ZTNlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTog QXJpbmEgTmVzaGx5YWV2YSA8YXJpbmEubmVzaGx5YWV2YUBpbnRlbC5jb20+Ci1EYXRlOiBUdWUs IDQgTWF5IDIwMjEgMTE6MzE6NTUgLTA3MDAKLVN1YmplY3Q6IFtQQVRDSF0gVXBkYXRlZCBidWls dGlucy1jbSogZm9yIHN3aXRjaCB0byBMTFZNMTIKLQotLS0tCi0gYnVpbHRpbnMvYnVpbHRpbnMt Y20tMzIubGwgfCAyMzQgKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLQotIGJ1 aWx0aW5zL2J1aWx0aW5zLWNtLTY0LmxsIHwgMjMyICsrKysrKysrKysrKysrKysrKy0tLS0tLS0t LS0tLS0tLS0tLQotIDIgZmlsZXMgY2hhbmdlZCwgMjMzIGluc2VydGlvbnMoKyksIDIzMyBkZWxl dGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2J1aWx0aW5zL2J1aWx0aW5zLWNtLTMyLmxsIGIvYnVp bHRpbnMvYnVpbHRpbnMtY20tMzIubGwKLWluZGV4IDMyZGViZjMyZS4uNDgxYmJkYzQ4IDEwMDY0 NAotLS0tIGEvYnVpbHRpbnMvYnVpbHRpbnMtY20tMzIubGwKLSsrKyBiL2J1aWx0aW5zL2J1aWx0 aW5zLWNtLTMyLmxsCi1AQCAtNTU3LDcgKzU1Nyw3IEBAICRfWk4xM1ZhcnlpbmdXcml0ZXIxMldy aXRlVmVjRWxlbUlQdkVFdnYgPSBjb21kYXQgYW55Ci0gQC5zdHIuMTAgPSBwcml2YXRlIHVubmFt ZWRfYWRkciBjb25zdGFudCBbNSB4IGk4XSBjIiUwOFhcMDAiLCBhbGlnbiAxCi0gCi0gOyBGdW5j dGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIHNpZ25leHQg aTggQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZjYyhpOCBzaWduZXh0LCBpOCBzaWduZXh0 KSAjMCB7Ci0rZGVmaW5lIGludGVybmFsIHNpZ25leHQgaTggQF9aMjRfX2NtX2ludHJpbnNpY19p bXBsX3NkaXZjYyhpOCBzaWduZXh0LCBpOCBzaWduZXh0KSAjMCB7Ci0gICAlMyA9IGFsbG9jYSBp OCwgYWxpZ24gMQotICAgJTQgPSBhbGxvY2EgaTgsIGFsaWduIDEKLSAgICU1ID0gYWxsb2NhIDwx IHggaTg+LCBhbGlnbiAxCi1AQCAtNjE4LDcgKzYxOCw3IEBAIGRlZmluZSBpbnRlcm5hbCA8MSB4 IGk4PiBAX1pON2RldGFpbHMxM19faW1wbF9kaXZyZW1JTGkxRUVFdTJDTXZiVF9fY1MxX1MxX3Uy Q012Ci0gZGVjbGFyZSA8MSB4IGk4PiBAbGx2bS5nZW54LnJkcmVnaW9uaS52MWk4LnYxaTguaTE2 KDwxIHggaTg+LCBpMzIsIGkzMiwgaTMyLCBpMTYsIGkzMikgIzIKLSAKLSA7IEZ1bmN0aW9uIEF0 dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDEgeCBpOD4gQF9aMjRf X2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmIxX2NTXyg8MSB4IGk4PiwgPDEgeCBpOD4pICMw IHsKLStkZWZpbmUgaW50ZXJuYWwgPDEgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3Nk aXZ1MkNNdmIxX2NTXyg8MSB4IGk4PiwgPDEgeCBpOD4pICMwIHsKLSAgICUzID0gYWxsb2NhIDwx IHggaTg+LCBhbGlnbiAxCi0gICAlNCA9IGFsbG9jYSA8MSB4IGk4PiwgYWxpZ24gMQotICAgJTUg PSBhbGxvY2EgPDEgeCBpOD4sIGFsaWduIDEKLUBAIC02MzQsNyArNjM0LDcgQEAgZGVmaW5lIGRz b19sb2NhbCA8MSB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjFfY1Nf KDwxIHggaTg+LCA8MQotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2lu ZAotLWRlZmluZSBkc29fbG9jYWwgPDIgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3Nk aXZ1MkNNdmIyX2NTXyg8MiB4IGk4PiwgPDIgeCBpOD4pICMzIHsKLStkZWZpbmUgaW50ZXJuYWwg PDIgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmIyX2NTXyg8MiB4IGk4 PiwgPDIgeCBpOD4pICMzIHsKLSAgICUzID0gYWxsb2NhIDwyIHggaTg+LCBhbGlnbiAyCi0gICAl NCA9IGFsbG9jYSA8MiB4IGk4PiwgYWxpZ24gMgotICAgJTUgPSBhbGxvY2EgPDIgeCBpOD4sIGFs aWduIDIKLUBAIC02ODAsNyArNjgwLDcgQEAgZGVmaW5lIGludGVybmFsIDwyIHggaTg+IEBfWk43 ZGV0YWlsczEzX19pbXBsX2RpdnJlbUlMaTJFRUV1MkNNdmJUX19jUzFfUzFfdTJDTXYKLSB9Ci0g Ci0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2Fs IDw0IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZiNF9jU18oPDQgeCBp OD4sIDw0IHggaTg+KSAjNSB7Ci0rZGVmaW5lIGludGVybmFsIDw0IHggaTg+IEBfWjI0X19jbV9p bnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZiNF9jU18oPDQgeCBpOD4sIDw0IHggaTg+KSAjNSB7Ci0g ICAlMyA9IGFsbG9jYSA8NCB4IGk4PiwgYWxpZ24gNAotICAgJTQgPSBhbGxvY2EgPDQgeCBpOD4s IGFsaWduIDQKLSAgICU1ID0gYWxsb2NhIDw0IHggaTg+LCBhbGlnbiA0Ci1AQCAtODE4LDcgKzgx OCw3IEBAIGRlZmluZSBpbnRlcm5hbCA8MTYgeCBpOD4gQF9aTjdkZXRhaWxzMTNfX2ltcGxfZGl2 cmVtSUxpMTZFRUV1MkNNdmJUX19jUzFfUzFfdTJDCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6 IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MzIgeCBpOD4gQF9aMjRfX2Nt X2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmIzMl9jU18oPDMyIHggaTg+LCA8MzIgeCBpOD4pICMx MSB7Ci0rZGVmaW5lIGludGVybmFsIDwzMiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxf c2RpdnUyQ012YjMyX2NTXyg8MzIgeCBpOD4sIDwzMiB4IGk4PikgIzExIHsKLSAgICUzID0gYWxs b2NhIDwzMiB4IGk4PiwgYWxpZ24gMzIKLSAgICU0ID0gYWxsb2NhIDwzMiB4IGk4PiwgYWxpZ24g MzIKLSAgICU1ID0gYWxsb2NhIDwzMiB4IGk4PiwgYWxpZ24gMzIKLUBAIC04NjQsNyArODY0LDcg QEAgZGVmaW5lIGludGVybmFsIDwzMiB4IGk4PiBAX1pON2RldGFpbHMxM19faW1wbF9kaXZyZW1J TGkzMkVFRXUyQ012YlRfX2NTMV9TMV91MkMKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9p bmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIHNpZ25leHQgaTggQF9aMjRfX2NtX2lu dHJpbnNpY19pbXBsX3NyZW1jYyhpOCBzaWduZXh0LCBpOCBzaWduZXh0KSAjMCB7Ci0rZGVmaW5l IGludGVybmFsIHNpZ25leHQgaTggQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW1jYyhpOCBz aWduZXh0LCBpOCBzaWduZXh0KSAjMCB7Ci0gICAlMyA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAg JTQgPSBhbGxvY2EgaTgsIGFsaWduIDEKLSAgICU1ID0gYWxsb2NhIDwxIHggaTg+LCBhbGlnbiAx Ci1AQCAtODkwLDcgKzg5MCw3IEBAIGRlZmluZSBkc29fbG9jYWwgc2lnbmV4dCBpOCBAX1oyNF9f Y21faW50cmluc2ljX2ltcGxfc3JlbWNjKGk4IHNpZ25leHQsIGk4IHNpZ25lCi0gfQotIAotIDsg RnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MSB4 IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjFfY1NfKDwxIHggaTg+LCA8 MSB4IGk4PikgIzAgewotK2RlZmluZSBpbnRlcm5hbCA8MSB4IGk4PiBAX1oyNF9fY21faW50cmlu c2ljX2ltcGxfc3JlbXUyQ012YjFfY1NfKDwxIHggaTg+LCA8MSB4IGk4PikgIzAgewotICAgJTMg PSBhbGxvY2EgPDEgeCBpOD4sIGFsaWduIDEKLSAgICU0ID0gYWxsb2NhIDwxIHggaTg+LCBhbGln biAxCi0gICAlNSA9IGFsbG9jYSA8MSB4IGk4PiwgYWxpZ24gMQotQEAgLTkwNCw3ICs5MDQsNyBA QCBkZWZpbmUgZHNvX2xvY2FsIDwxIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVt dTJDTXZiMV9jU18oPDEgeCBpOD4sIDwxCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5s aW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MiB4IGk4PiBAX1oyNF9fY21faW50cmlu c2ljX2ltcGxfc3JlbXUyQ012YjJfY1NfKDwyIHggaTg+LCA8MiB4IGk4PikgIzMgewotK2RlZmlu ZSBpbnRlcm5hbCA8MiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjJf Y1NfKDwyIHggaTg+LCA8MiB4IGk4PikgIzMgewotICAgJTMgPSBhbGxvY2EgPDIgeCBpOD4sIGFs aWduIDIKLSAgICU0ID0gYWxsb2NhIDwyIHggaTg+LCBhbGlnbiAyCi0gICAlNSA9IGFsbG9jYSA8 MiB4IGk4PiwgYWxpZ24gMgotQEAgLTkxOCw3ICs5MTgsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwy IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMl9jU18oPDIgeCBpOD4s IDwyCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5l IGRzb19sb2NhbCA8NCB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjRf Y1NfKDw0IHggaTg+LCA8NCB4IGk4PikgIzUgewotK2RlZmluZSBpbnRlcm5hbCA8NCB4IGk4PiBA X1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjRfY1NfKDw0IHggaTg+LCA8NCB4IGk4 PikgIzUgewotICAgJTMgPSBhbGxvY2EgPDQgeCBpOD4sIGFsaWduIDQKLSAgICU0ID0gYWxsb2Nh IDw0IHggaTg+LCBhbGlnbiA0Ci0gICAlNSA9IGFsbG9jYSA8NCB4IGk4PiwgYWxpZ24gNAotQEAg LTkzMiw3ICs5MzIsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDw0IHggaTg+IEBfWjI0X19jbV9pbnRy aW5zaWNfaW1wbF9zcmVtdTJDTXZiNF9jU18oPDQgeCBpOD4sIDw0Ci0gfQotIAotIDsgRnVuY3Rp b24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8OCB4IGk4PiBA X1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjhfY1NfKDw4IHggaTg+LCA8OCB4IGk4 PikgIzcgewotK2RlZmluZSBpbnRlcm5hbCA8OCB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2lt cGxfc3JlbXUyQ012YjhfY1NfKDw4IHggaTg+LCA8OCB4IGk4PikgIzcgewotICAgJTMgPSBhbGxv Y2EgPDggeCBpOD4sIGFsaWduIDgKLSAgICU0ID0gYWxsb2NhIDw4IHggaTg+LCBhbGlnbiA4Ci0g ICAlNSA9IGFsbG9jYSA8OCB4IGk4PiwgYWxpZ24gOAotQEAgLTk0Niw3ICs5NDYsNyBAQCBkZWZp bmUgZHNvX2xvY2FsIDw4IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZi OF9jU18oPDggeCBpOD4sIDw4Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5v dW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MTYgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19p bXBsX3NyZW11MkNNdmIxNl9jU18oPDE2IHggaTg+LCA8MTYgeCBpOD4pICM5IHsKLStkZWZpbmUg aW50ZXJuYWwgPDE2IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMTZf Y1NfKDwxNiB4IGk4PiwgPDE2IHggaTg+KSAjOSB7Ci0gICAlMyA9IGFsbG9jYSA8MTYgeCBpOD4s IGFsaWduIDE2Ci0gICAlNCA9IGFsbG9jYSA8MTYgeCBpOD4sIGFsaWduIDE2Ci0gICAlNSA9IGFs bG9jYSA8MTYgeCBpOD4sIGFsaWduIDE2Ci1AQCAtOTYwLDcgKzk2MCw3IEBAIGRlZmluZSBkc29f bG9jYWwgPDE2IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMTZfY1Nf KDwxNiB4IGk4PiwKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQK LS1kZWZpbmUgZHNvX2xvY2FsIDwzMiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3Jl bXUyQ012YjMyX2NTXyg8MzIgeCBpOD4sIDwzMiB4IGk4PikgIzExIHsKLStkZWZpbmUgaW50ZXJu YWwgPDMyIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMzJfY1NfKDwz MiB4IGk4PiwgPDMyIHggaTg+KSAjMTEgewotICAgJTMgPSBhbGxvY2EgPDMyIHggaTg+LCBhbGln biAzMgotICAgJTQgPSBhbGxvY2EgPDMyIHggaTg+LCBhbGlnbiAzMgotICAgJTUgPSBhbGxvY2Eg PDMyIHggaTg+LCBhbGlnbiAzMgotQEAgLTk3NCw3ICs5NzQsNyBAQCBkZWZpbmUgZHNvX2xvY2Fs IDwzMiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjMyX2NTXyg8MzIg eCBpOD4sCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVm aW5lIGRzb19sb2NhbCBzaWduZXh0IGkxNiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnNz KGkxNiBzaWduZXh0LCBpMTYgc2lnbmV4dCkgIzMgewotK2RlZmluZSBpbnRlcm5hbCBzaWduZXh0 IGkxNiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnNzKGkxNiBzaWduZXh0LCBpMTYgc2ln bmV4dCkgIzMgewotICAgJTMgPSBhbGxvY2EgaTE2LCBhbGlnbiAyCi0gICAlNCA9IGFsbG9jYSBp MTYsIGFsaWduIDIKLSAgICU1ID0gYWxsb2NhIDwxIHggaTE2PiwgYWxpZ24gMgotQEAgLTEwNTgs NyArMTA1OCw3IEBAIGRlZmluZSBpbnRlcm5hbCA8MSB4IGkxNj4gQF9aTjdkZXRhaWxzMTNfX2lt cGxfZGl2cmVtSUxpMUVFRXUyQ012YlRfX3NTMV9TMV91MkNNCi0gZGVjbGFyZSA8MSB4IGkxNj4g QGxsdm0uZ2VueC5yZHJlZ2lvbmkudjFpMTYudjFpMTYuaTE2KDwxIHggaTE2PiwgaTMyLCBpMzIs IGkzMiwgaTE2LCBpMzIpICMyCi0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndp bmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwxIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxf c2RpdnUyQ012YjFfc1NfKDwxIHggaTE2PiwgPDEgeCBpMTY+KSAjMyB7Ci0rZGVmaW5lIGludGVy bmFsIDwxIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjFfc1NfKDwx IHggaTE2PiwgPDEgeCBpMTY+KSAjMyB7Ci0gICAlMyA9IGFsbG9jYSA8MSB4IGkxNj4sIGFsaWdu IDIKLSAgICU0ID0gYWxsb2NhIDwxIHggaTE2PiwgYWxpZ24gMgotICAgJTUgPSBhbGxvY2EgPDEg eCBpMTY+LCBhbGlnbiAyCi1AQCAtMTA3NCw3ICsxMDc0LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8 MSB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmIxX3NTXyg8MSB4IGkx Nj4sIDwKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZp bmUgZHNvX2xvY2FsIDwyIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012 YjJfc1NfKDwyIHggaTE2PiwgPDIgeCBpMTY+KSAjNSB7Ci0rZGVmaW5lIGludGVybmFsIDwyIHgg aTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjJfc1NfKDwyIHggaTE2Piwg PDIgeCBpMTY+KSAjNSB7Ci0gICAlMyA9IGFsbG9jYSA8MiB4IGkxNj4sIGFsaWduIDQKLSAgICU0 ID0gYWxsb2NhIDwyIHggaTE2PiwgYWxpZ24gNAotICAgJTUgPSBhbGxvY2EgPDIgeCBpMTY+LCBh bGlnbiA0Ci1AQCAtMTE0Myw3ICsxMTQzLDcgQEAgZGVmaW5lIGludGVybmFsIDwyIHggaTE2PiBA X1pON2RldGFpbHMxM19faW1wbF9kaXZyZW1JTGkyRUVFdTJDTXZiVF9fc1MxX1MxX3UyQ00KLSB9 Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xv Y2FsIDw0IHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjRfc1NfKDw0 IHggaTE2PiwgPDQgeCBpMTY+KSAjNyB7Ci0rZGVmaW5lIGludGVybmFsIDw0IHggaTE2PiBAX1oy NF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjRfc1NfKDw0IHggaTE2PiwgPDQgeCBpMTY+ KSAjNyB7Ci0gICAlMyA9IGFsbG9jYSA8NCB4IGkxNj4sIGFsaWduIDgKLSAgICU0ID0gYWxsb2Nh IDw0IHggaTE2PiwgYWxpZ24gOAotICAgJTUgPSBhbGxvY2EgPDQgeCBpMTY+LCBhbGlnbiA4Ci1A QCAtMTM1MCw3ICsxMzUwLDcgQEAgZGVmaW5lIGludGVybmFsIDwxNiB4IGkxNj4gQF9aTjdkZXRh aWxzMTNfX2ltcGxfZGl2cmVtSUxpMTZFRUV1MkNNdmJUX19zUzFfUzFfdTIKLSB9Ci0gCi0gOyBG dW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwzMiB4 IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmIzMl9zU18oPDMyIHggaTE2 PiwgPDMyIHggaTE2PikgIzEzIHsKLStkZWZpbmUgaW50ZXJuYWwgPDMyIHggaTE2PiBAX1oyNF9f Y21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjMyX3NTXyg8MzIgeCBpMTY+LCA8MzIgeCBpMTY+ KSAjMTMgewotICAgJTMgPSBhbGxvY2EgPDMyIHggaTE2PiwgYWxpZ24gNjQKLSAgICU0ID0gYWxs b2NhIDwzMiB4IGkxNj4sIGFsaWduIDY0Ci0gICAlNSA9IGFsbG9jYSA8MzIgeCBpMTY+LCBhbGln biA2NAotQEAgLTE0MTksNyArMTQxOSw3IEBAIGRlZmluZSBpbnRlcm5hbCA8MzIgeCBpMTY+IEBf Wk43ZGV0YWlsczEzX19pbXBsX2RpdnJlbUlMaTMyRUVFdTJDTXZiVF9fc1MxX1MxX3UyCi0gfQot IAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2Nh bCBzaWduZXh0IGkxNiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXNzKGkxNiBzaWduZXh0 LCBpMTYgc2lnbmV4dCkgIzMgewotK2RlZmluZSBpbnRlcm5hbCBzaWduZXh0IGkxNiBAX1oyNF9f Y21faW50cmluc2ljX2ltcGxfc3JlbXNzKGkxNiBzaWduZXh0LCBpMTYgc2lnbmV4dCkgIzMgewot ICAgJTMgPSBhbGxvY2EgaTE2LCBhbGlnbiAyCi0gICAlNCA9IGFsbG9jYSBpMTYsIGFsaWduIDIK LSAgICU1ID0gYWxsb2NhIDwxIHggaTE2PiwgYWxpZ24gMgotQEAgLTE0NDUsNyArMTQ0NSw3IEBA IGRlZmluZSBkc29fbG9jYWwgc2lnbmV4dCBpMTYgQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3Ny ZW1zcyhpMTYgc2lnbmV4dCwgaTE2IHNpCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5s aW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MSB4IGkxNj4gQF9aMjRfX2NtX2ludHJp bnNpY19pbXBsX3NyZW11MkNNdmIxX3NTXyg8MSB4IGkxNj4sIDwxIHggaTE2PikgIzMgewotK2Rl ZmluZSBpbnRlcm5hbCA8MSB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNN dmIxX3NTXyg8MSB4IGkxNj4sIDwxIHggaTE2PikgIzMgewotICAgJTMgPSBhbGxvY2EgPDEgeCBp MTY+LCBhbGlnbiAyCi0gICAlNCA9IGFsbG9jYSA8MSB4IGkxNj4sIGFsaWduIDIKLSAgICU1ID0g YWxsb2NhIDwxIHggaTE2PiwgYWxpZ24gMgotQEAgLTE0NTksNyArMTQ1OSw3IEBAIGRlZmluZSBk c29fbG9jYWwgPDEgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMV9z U18oPDEgeCBpMTY+LCA8Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53 aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MiB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBs X3NyZW11MkNNdmIyX3NTXyg8MiB4IGkxNj4sIDwyIHggaTE2PikgIzUgewotK2RlZmluZSBpbnRl cm5hbCA8MiB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIyX3NTXyg8 MiB4IGkxNj4sIDwyIHggaTE2PikgIzUgewotICAgJTMgPSBhbGxvY2EgPDIgeCBpMTY+LCBhbGln biA0Ci0gICAlNCA9IGFsbG9jYSA8MiB4IGkxNj4sIGFsaWduIDQKLSAgICU1ID0gYWxsb2NhIDwy IHggaTE2PiwgYWxpZ24gNAotQEAgLTE0NzMsNyArMTQ3Myw3IEBAIGRlZmluZSBkc29fbG9jYWwg PDIgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMl9zU18oPDIgeCBp MTY+LCA8Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVm aW5lIGRzb19sb2NhbCA8NCB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNN dmI0X3NTXyg8NCB4IGkxNj4sIDw0IHggaTE2PikgIzcgewotK2RlZmluZSBpbnRlcm5hbCA8NCB4 IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmI0X3NTXyg8NCB4IGkxNj4s IDw0IHggaTE2PikgIzcgewotICAgJTMgPSBhbGxvY2EgPDQgeCBpMTY+LCBhbGlnbiA4Ci0gICAl NCA9IGFsbG9jYSA8NCB4IGkxNj4sIGFsaWduIDgKLSAgICU1ID0gYWxsb2NhIDw0IHggaTE2Piwg YWxpZ24gOAotQEAgLTE0ODcsNyArMTQ4Nyw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDQgeCBpMTY+ IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiNF9zU18oPDQgeCBpMTY+LCA8Ci0g fQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19s b2NhbCA8OCB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmI4X3NTXyg8 OCB4IGkxNj4sIDw4IHggaTE2PikgIzkgewotK2RlZmluZSBpbnRlcm5hbCA8OCB4IGkxNj4gQF9a MjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmI4X3NTXyg8OCB4IGkxNj4sIDw4IHggaTE2 PikgIzkgewotICAgJTMgPSBhbGxvY2EgPDggeCBpMTY+LCBhbGlnbiAxNgotICAgJTQgPSBhbGxv Y2EgPDggeCBpMTY+LCBhbGlnbiAxNgotICAgJTUgPSBhbGxvY2EgPDggeCBpMTY+LCBhbGlnbiAx NgotQEAgLTE1MDEsNyArMTUwMSw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDggeCBpMTY+IEBfWjI0 X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiOF9zU18oPDggeCBpMTY+LCA8Ci0gfQotIAot IDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8 MTYgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMTZfc1NfKDwxNiB4 IGkxNj4sIDwxNiB4IGkxNj4pICMxMSB7Ci0rZGVmaW5lIGludGVybmFsIDwxNiB4IGkxNj4gQF9a MjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIxNl9zU18oPDE2IHggaTE2PiwgPDE2IHgg aTE2PikgIzExIHsKLSAgICUzID0gYWxsb2NhIDwxNiB4IGkxNj4sIGFsaWduIDMyCi0gICAlNCA9 IGFsbG9jYSA8MTYgeCBpMTY+LCBhbGlnbiAzMgotICAgJTUgPSBhbGxvY2EgPDE2IHggaTE2Piwg YWxpZ24gMzIKLUBAIC0xNTE1LDcgKzE1MTUsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwxNiB4IGkx Nj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIxNl9zU18oPDE2IHggaTE2Pgot IH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29f bG9jYWwgPDMyIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjMyX3NT Xyg8MzIgeCBpMTY+LCA8MzIgeCBpMTY+KSAjMTMgewotK2RlZmluZSBpbnRlcm5hbCA8MzIgeCBp MTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMzJfc1NfKDwzMiB4IGkxNj4s IDwzMiB4IGkxNj4pICMxMyB7Ci0gICAlMyA9IGFsbG9jYSA8MzIgeCBpMTY+LCBhbGlnbiA2NAot ICAgJTQgPSBhbGxvY2EgPDMyIHggaTE2PiwgYWxpZ24gNjQKLSAgICU1ID0gYWxsb2NhIDwzMiB4 IGkxNj4sIGFsaWduIDY0Ci1AQCAtMTUyOSw3ICsxNTI5LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8 MzIgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMzJfc1NfKDwzMiB4 IGkxNj4KLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZp bmUgZHNvX2xvY2FsIGkzMiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdmlpKGkzMiwgaTMy KSAjMTQgewotK2RlZmluZSBpbnRlcm5hbCBpMzIgQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3Nk aXZpaShpMzIsIGkzMikgIzE0IHsKLSAgICUzID0gYWxsb2NhIGkzMiwgYWxpZ24gNAotICAgJTQg PSBhbGxvY2EgaTMyLCBhbGlnbiA0Ci0gICAlNSA9IGFsbG9jYSA8MSB4IGkzMj4sIGFsaWduIDQK LUBAIC0xNzMwLDcgKzE3MzAsNyBAQCBkZWZpbmUgaW50ZXJuYWwgPDEgeCBpMzI+IEBfWk43ZGV0 YWlsczEzX19pbXBsX2RpdnJlbUlMaTFFRUV1MkNNdmJUX19pUzFfUzFfdTJDTQotIGRlY2xhcmUg PDEgeCBpMzI+IEBsbHZtLmdlbngucmRyZWdpb25pLnYxaTMyLnYxaTMyLmkxNig8MSB4IGkzMj4s IGkzMiwgaTMyLCBpMzIsIGkxNiwgaTMyKSAjMgotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5s aW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MSB4IGkzMj4gQF9aMjRfX2NtX2ludHJp bnNpY19pbXBsX3NkaXZ1MkNNdmIxX2lTXyg8MSB4IGkzMj4sIDwxIHggaTMyPikgIzE0IHsKLStk ZWZpbmUgaW50ZXJuYWwgPDEgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJD TXZiMV9pU18oPDEgeCBpMzI+LCA8MSB4IGkzMj4pICMxNCB7Ci0gICAlMyA9IGFsbG9jYSA8MSB4 IGkzMj4sIGFsaWduIDQKLSAgICU0ID0gYWxsb2NhIDwxIHggaTMyPiwgYWxpZ24gNAotICAgJTUg PSBhbGxvY2EgPDEgeCBpMzI+LCBhbGlnbiA0Ci1AQCAtMTc0Niw3ICsxNzQ2LDcgQEAgZGVmaW5l IGRzb19sb2NhbCA8MSB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmIx X2lTXyg8MSB4IGkzMj4sIDwKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91 bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwyIHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2lt cGxfc2RpdnUyQ012YjJfaVNfKDwyIHggaTMyPiwgPDIgeCBpMzI+KSAjMTUgewotK2RlZmluZSBp bnRlcm5hbCA8MiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmIyX2lT Xyg8MiB4IGkzMj4sIDwyIHggaTMyPikgIzE1IHsKLSAgICUzID0gYWxsb2NhIDwyIHggaTMyPiwg YWxpZ24gOAotICAgJTQgPSBhbGxvY2EgPDIgeCBpMzI+LCBhbGlnbiA4Ci0gICAlNSA9IGFsbG9j YSA8MiB4IGkzMj4sIGFsaWduIDgKLUBAIC0xOTMyLDcgKzE5MzIsNyBAQCBkZWZpbmUgaW50ZXJu YWwgPDIgeCBpMzI+IEBfWk43ZGV0YWlsczEzX19pbXBsX2RpdnJlbUlMaTJFRUV1MkNNdmJUX19p UzFfUzFfdTJDTQotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAot LWRlZmluZSBkc29fbG9jYWwgPDQgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2 dTJDTXZiNF9pU18oPDQgeCBpMzI+LCA8NCB4IGkzMj4pICMxNiB7Ci0rZGVmaW5lIGludGVybmFs IDw0IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjRfaVNfKDw0IHgg aTMyPiwgPDQgeCBpMzI+KSAjMTYgewotICAgJTMgPSBhbGxvY2EgPDQgeCBpMzI+LCBhbGlnbiAx NgotICAgJTQgPSBhbGxvY2EgPDQgeCBpMzI+LCBhbGlnbiAxNgotICAgJTUgPSBhbGxvY2EgPDQg eCBpMzI+LCBhbGlnbiAxNgotQEAgLTI0OTAsNyArMjQ5MCw3IEBAIGRlZmluZSBpbnRlcm5hbCA8 MTYgeCBpMzI+IEBfWk43ZGV0YWlsczEzX19pbXBsX2RpdnJlbUlMaTE2RUVFdTJDTXZiVF9faVMx X1MxX3UyCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVm aW5lIGRzb19sb2NhbCA8MzIgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJD TXZiMzJfaVNfKDwzMiB4IGkzMj4sIDwzMiB4IGkzMj4pICMxOSB7Ci0rZGVmaW5lIGludGVybmFs IDwzMiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmIzMl9pU18oPDMy IHggaTMyPiwgPDMyIHggaTMyPikgIzE5IHsKLSAgICUzID0gYWxsb2NhIDwzMiB4IGkzMj4sIGFs aWduIDEyOAotICAgJTQgPSBhbGxvY2EgPDMyIHggaTMyPiwgYWxpZ24gMTI4Ci0gICAlNSA9IGFs bG9jYSA8MzIgeCBpMzI+LCBhbGlnbiAxMjgKLUBAIC0yNjc2LDcgKzI2NzYsNyBAQCBkZWZpbmUg aW50ZXJuYWwgPDMyIHggaTMyPiBAX1pON2RldGFpbHMxM19faW1wbF9kaXZyZW1JTGkzMkVFRXUy Q012YlRfX2lTMV9TMV91MgotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vu d2luZAotLWRlZmluZSBkc29fbG9jYWwgaTMyIEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVt aWkoaTMyLCBpMzIpICMxNCB7Ci0rZGVmaW5lIGludGVybmFsIGkzMiBAX1oyNF9fY21faW50cmlu c2ljX2ltcGxfc3JlbWlpKGkzMiwgaTMyKSAjMTQgewotICAgJTMgPSBhbGxvY2EgaTMyLCBhbGln biA0Ci0gICAlNCA9IGFsbG9jYSBpMzIsIGFsaWduIDQKLSAgICU1ID0gYWxsb2NhIDwxIHggaTMy PiwgYWxpZ24gNAotQEAgLTI3MDIsNyArMjcwMiw3IEBAIGRlZmluZSBkc29fbG9jYWwgaTMyIEBf WjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtaWkoaTMyLCBpMzIpICMxNCB7Ci0gfQotIAotIDsg RnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MSB4 IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIxX2lTXyg8MSB4IGkzMj4s IDwxIHggaTMyPikgIzE0IHsKLStkZWZpbmUgaW50ZXJuYWwgPDEgeCBpMzI+IEBfWjI0X19jbV9p bnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMV9pU18oPDEgeCBpMzI+LCA8MSB4IGkzMj4pICMxNCB7 Ci0gICAlMyA9IGFsbG9jYSA8MSB4IGkzMj4sIGFsaWduIDQKLSAgICU0ID0gYWxsb2NhIDwxIHgg aTMyPiwgYWxpZ24gNAotICAgJTUgPSBhbGxvY2EgPDEgeCBpMzI+LCBhbGlnbiA0Ci1AQCAtMjcx Niw3ICsyNzE2LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MSB4IGkzMj4gQF9aMjRfX2NtX2ludHJp bnNpY19pbXBsX3NyZW11MkNNdmIxX2lTXyg8MSB4IGkzMj4sIDwKLSB9Ci0gCi0gOyBGdW5jdGlv biBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwyIHggaTMyPiBA X1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjJfaVNfKDwyIHggaTMyPiwgPDIgeCBp MzI+KSAjMTUgewotK2RlZmluZSBpbnRlcm5hbCA8MiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNp Y19pbXBsX3NyZW11MkNNdmIyX2lTXyg8MiB4IGkzMj4sIDwyIHggaTMyPikgIzE1IHsKLSAgICUz ID0gYWxsb2NhIDwyIHggaTMyPiwgYWxpZ24gOAotICAgJTQgPSBhbGxvY2EgPDIgeCBpMzI+LCBh bGlnbiA4Ci0gICAlNSA9IGFsbG9jYSA8MiB4IGkzMj4sIGFsaWduIDgKLUBAIC0yNzMwLDcgKzI3 MzAsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwyIHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2lt cGxfc3JlbXUyQ012YjJfaVNfKDwyIHggaTMyPiwgPAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJz OiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDQgeCBpMzI+IEBfWjI0X19j bV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiNF9pU18oPDQgeCBpMzI+LCA8NCB4IGkzMj4pICMx NiB7Ci0rZGVmaW5lIGludGVybmFsIDw0IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxf c3JlbXUyQ012YjRfaVNfKDw0IHggaTMyPiwgPDQgeCBpMzI+KSAjMTYgewotICAgJTMgPSBhbGxv Y2EgPDQgeCBpMzI+LCBhbGlnbiAxNgotICAgJTQgPSBhbGxvY2EgPDQgeCBpMzI+LCBhbGlnbiAx NgotICAgJTUgPSBhbGxvY2EgPDQgeCBpMzI+LCBhbGlnbiAxNgotQEAgLTI3NDQsNyArMjc0NCw3 IEBAIGRlZmluZSBkc29fbG9jYWwgPDQgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9z cmVtdTJDTXZiNF9pU18oPDQgeCBpMzI+LCA8Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5v aW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8OCB4IGkzMj4gQF9aMjRfX2NtX2lu dHJpbnNpY19pbXBsX3NyZW11MkNNdmI4X2lTXyg8OCB4IGkzMj4sIDw4IHggaTMyPikgIzE3IHsK LStkZWZpbmUgaW50ZXJuYWwgPDggeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVt dTJDTXZiOF9pU18oPDggeCBpMzI+LCA8OCB4IGkzMj4pICMxNyB7Ci0gICAlMyA9IGFsbG9jYSA8 OCB4IGkzMj4sIGFsaWduIDMyCi0gICAlNCA9IGFsbG9jYSA8OCB4IGkzMj4sIGFsaWduIDMyCi0g ICAlNSA9IGFsbG9jYSA8OCB4IGkzMj4sIGFsaWduIDMyCi1AQCAtMjc1OCw3ICsyNzU4LDcgQEAg ZGVmaW5lIGRzb19sb2NhbCA8OCB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11 MkNNdmI4X2lTXyg8OCB4IGkzMj4sIDwKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxp bmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwxNiB4IGkzMj4gQF9aMjRfX2NtX2ludHJp bnNpY19pbXBsX3NyZW11MkNNdmIxNl9pU18oPDE2IHggaTMyPiwgPDE2IHggaTMyPikgIzE4IHsK LStkZWZpbmUgaW50ZXJuYWwgPDE2IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3Jl bXUyQ012YjE2X2lTXyg8MTYgeCBpMzI+LCA8MTYgeCBpMzI+KSAjMTggewotICAgJTMgPSBhbGxv Y2EgPDE2IHggaTMyPiwgYWxpZ24gNjQKLSAgICU0ID0gYWxsb2NhIDwxNiB4IGkzMj4sIGFsaWdu IDY0Ci0gICAlNSA9IGFsbG9jYSA8MTYgeCBpMzI+LCBhbGlnbiA2NAotQEAgLTI3NzIsNyArMjc3 Miw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDE2IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2lt cGxfc3JlbXUyQ012YjE2X2lTXyg8MTYgeCBpMzI+Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6 IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MzIgeCBpMzI+IEBfWjI0X19j bV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMzJfaVNfKDwzMiB4IGkzMj4sIDwzMiB4IGkzMj4p ICMxOSB7Ci0rZGVmaW5lIGludGVybmFsIDwzMiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19p bXBsX3NyZW11MkNNdmIzMl9pU18oPDMyIHggaTMyPiwgPDMyIHggaTMyPikgIzE5IHsKLSAgICUz ID0gYWxsb2NhIDwzMiB4IGkzMj4sIGFsaWduIDEyOAotICAgJTQgPSBhbGxvY2EgPDMyIHggaTMy PiwgYWxpZ24gMTI4Ci0gICAlNSA9IGFsbG9jYSA8MzIgeCBpMzI+LCBhbGlnbiAxMjgKLUBAIC0y Nzg2LDcgKzI3ODYsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwzMiB4IGkzMj4gQF9aMjRfX2NtX2lu dHJpbnNpY19pbXBsX3NyZW11MkNNdmIzMl9pU18oPDMyIHggaTMyPgotIH0KLSAKLSA7IEZ1bmN0 aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgemVyb2V4dCBp OCBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRpdmhoKGk4IHplcm9leHQsIGk4IHplcm9leHQp ICMyMSB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQgaTggQF9aMjRfX2NtX2ludHJpbnNpY19p bXBsX3VkaXZoaChpOCB6ZXJvZXh0LCBpOCB6ZXJvZXh0KSAjMjEgewotICAgJTMgPSBhbGxvY2Eg aTgsIGFsaWduIDEKLSAgICU0ID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSA8 MSB4IGk4PiwgYWxpZ24gMQotQEAgLTI4NDQsNyArMjg0NCw3IEBAIGRlZmluZSBpbnRlcm5hbCA8 MSB4IGk4PiBAX1pON2RldGFpbHMxNF9faW1wbF91ZGl2cmVtSUxpMUVFRXUyQ012YlRfX2hTMV9T MV91MkNNCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVm aW5lIGRzb19sb2NhbCA8MSB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRpdnUyQ012 YjFfaFNfKDwxIHggaTg+LCA8MSB4IGk4PikgIzIxIHsKLStkZWZpbmUgaW50ZXJuYWwgPDEgeCBp OD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1MkNNdmIxX2hTXyg8MSB4IGk4PiwgPDEg eCBpOD4pICMyMSB7Ci0gICAlMyA9IGFsbG9jYSA8MSB4IGk4PiwgYWxpZ24gMQotICAgJTQgPSBh bGxvY2EgPDEgeCBpOD4sIGFsaWduIDEKLSAgICU1ID0gYWxsb2NhIDwxIHggaTg+LCBhbGlnbiAx Ci1AQCAtMjg2MCw3ICsyODYwLDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MSB4IGk4PiBAX1oyNF9f Y21faW50cmluc2ljX2ltcGxfdWRpdnUyQ012YjFfaFNfKDwxIHggaTg+LCA8MQotIH0KLSAKLSA7 IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDIg eCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1MkNNdmIyX2hTXyg8MiB4IGk4Piwg PDIgeCBpOD4pICMyMiB7Ci0rZGVmaW5lIGludGVybmFsIDwyIHggaTg+IEBfWjI0X19jbV9pbnRy aW5zaWNfaW1wbF91ZGl2dTJDTXZiMl9oU18oPDIgeCBpOD4sIDwyIHggaTg+KSAjMjIgewotICAg JTMgPSBhbGxvY2EgPDIgeCBpOD4sIGFsaWduIDIKLSAgICU0ID0gYWxsb2NhIDwyIHggaTg+LCBh bGlnbiAyCi0gICAlNSA9IGFsbG9jYSA8MiB4IGk4PiwgYWxpZ24gMgotQEAgLTI5MDYsNyArMjkw Niw3IEBAIGRlZmluZSBpbnRlcm5hbCA8MiB4IGk4PiBAX1pON2RldGFpbHMxNF9faW1wbF91ZGl2 cmVtSUxpMkVFRXUyQ012YlRfX2hTMV9TMV91MkNNCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6 IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8NCB4IGk4PiBAX1oyNF9fY21f aW50cmluc2ljX2ltcGxfdWRpdnUyQ012YjRfaFNfKDw0IHggaTg+LCA8NCB4IGk4PikgIzE0IHsK LStkZWZpbmUgaW50ZXJuYWwgPDQgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1 MkNNdmI0X2hTXyg8NCB4IGk4PiwgPDQgeCBpOD4pICMxNCB7Ci0gICAlMyA9IGFsbG9jYSA8NCB4 IGk4PiwgYWxpZ24gNAotICAgJTQgPSBhbGxvY2EgPDQgeCBpOD4sIGFsaWduIDQKLSAgICU1ID0g YWxsb2NhIDw0IHggaTg+LCBhbGlnbiA0Ci1AQCAtMzA0NCw3ICszMDQ0LDcgQEAgZGVmaW5lIGlu dGVybmFsIDwxNiB4IGk4PiBAX1pON2RldGFpbHMxNF9faW1wbF91ZGl2cmVtSUxpMTZFRUV1MkNN dmJUX19oUzFfUzFfdTIKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndp bmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwzMiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxf dWRpdnUyQ012YjMyX2hTXyg8MzIgeCBpOD4sIDwzMiB4IGk4PikgIzE3IHsKLStkZWZpbmUgaW50 ZXJuYWwgPDMyIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZiMzJfaFNf KDwzMiB4IGk4PiwgPDMyIHggaTg+KSAjMTcgewotICAgJTMgPSBhbGxvY2EgPDMyIHggaTg+LCBh bGlnbiAzMgotICAgJTQgPSBhbGxvY2EgPDMyIHggaTg+LCBhbGlnbiAzMgotICAgJTUgPSBhbGxv Y2EgPDMyIHggaTg+LCBhbGlnbiAzMgotQEAgLTMwOTAsNyArMzA5MCw3IEBAIGRlZmluZSBpbnRl cm5hbCA8MzIgeCBpOD4gQF9aTjdkZXRhaWxzMTRfX2ltcGxfdWRpdnJlbUlMaTMyRUVFdTJDTXZi VF9faFMxX1MxX3UyCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5k Ci0tZGVmaW5lIGRzb19sb2NhbCB6ZXJvZXh0IGk4IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91 cmVtaGgoaTggemVyb2V4dCwgaTggemVyb2V4dCkgIzIxIHsKLStkZWZpbmUgaW50ZXJuYWwgemVy b2V4dCBpOCBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbWhoKGk4IHplcm9leHQsIGk4IHpl cm9leHQpICMyMSB7Ci0gICAlMyA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgJTQgPSBhbGxvY2Eg aTgsIGFsaWduIDEKLSAgICU1ID0gYWxsb2NhIDwxIHggaTg+LCBhbGlnbiAxCi1AQCAtMzExNiw3 ICszMTE2LDcgQEAgZGVmaW5lIGRzb19sb2NhbCB6ZXJvZXh0IGk4IEBfWjI0X19jbV9pbnRyaW5z aWNfaW1wbF91cmVtaGgoaTggemVyb2V4dCwgaTggemVyb2UKLSB9Ci0gCi0gOyBGdW5jdGlvbiBB dHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwxIHggaTg+IEBfWjI0 X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMV9oU18oPDEgeCBpOD4sIDwxIHggaTg+KSAj MjEgewotK2RlZmluZSBpbnRlcm5hbCA8MSB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxf dXJlbXUyQ012YjFfaFNfKDwxIHggaTg+LCA8MSB4IGk4PikgIzIxIHsKLSAgICUzID0gYWxsb2Nh IDwxIHggaTg+LCBhbGlnbiAxCi0gICAlNCA9IGFsbG9jYSA8MSB4IGk4PiwgYWxpZ24gMQotICAg JTUgPSBhbGxvY2EgPDEgeCBpOD4sIGFsaWduIDEKLUBAIC0zMTMwLDcgKzMxMzAsNyBAQCBkZWZp bmUgZHNvX2xvY2FsIDwxIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZi MV9oU18oPDEgeCBpOD4sIDwxCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5v dW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2lt cGxfdXJlbXUyQ012YjJfaFNfKDwyIHggaTg+LCA8MiB4IGk4PikgIzIyIHsKLStkZWZpbmUgaW50 ZXJuYWwgPDIgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIyX2hTXyg8 MiB4IGk4PiwgPDIgeCBpOD4pICMyMiB7Ci0gICAlMyA9IGFsbG9jYSA8MiB4IGk4PiwgYWxpZ24g MgotICAgJTQgPSBhbGxvY2EgPDIgeCBpOD4sIGFsaWduIDIKLSAgICU1ID0gYWxsb2NhIDwyIHgg aTg+LCBhbGlnbiAyCi1AQCAtMzE0NCw3ICszMTQ0LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MiB4 IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjJfaFNfKDwyIHggaTg+LCA8 MgotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBk c29fbG9jYWwgPDQgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmI0X2hT Xyg8NCB4IGk4PiwgPDQgeCBpOD4pICMxNCB7Ci0rZGVmaW5lIGludGVybmFsIDw0IHggaTg+IEBf WjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiNF9oU18oPDQgeCBpOD4sIDw0IHggaTg+ KSAjMTQgewotICAgJTMgPSBhbGxvY2EgPDQgeCBpOD4sIGFsaWduIDQKLSAgICU0ID0gYWxsb2Nh IDw0IHggaTg+LCBhbGlnbiA0Ci0gICAlNSA9IGFsbG9jYSA8NCB4IGk4PiwgYWxpZ24gNAotQEAg LTMxNTgsNyArMzE1OCw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDQgeCBpOD4gQF9aMjRfX2NtX2lu dHJpbnNpY19pbXBsX3VyZW11MkNNdmI0X2hTXyg8NCB4IGk4PiwgPDQKLSB9Ci0gCi0gOyBGdW5j dGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDw4IHggaTg+ IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiOF9oU18oPDggeCBpOD4sIDw4IHgg aTg+KSAjMTUgewotK2RlZmluZSBpbnRlcm5hbCA8OCB4IGk4PiBAX1oyNF9fY21faW50cmluc2lj X2ltcGxfdXJlbXUyQ012YjhfaFNfKDw4IHggaTg+LCA8OCB4IGk4PikgIzE1IHsKLSAgICUzID0g YWxsb2NhIDw4IHggaTg+LCBhbGlnbiA4Ci0gICAlNCA9IGFsbG9jYSA8OCB4IGk4PiwgYWxpZ24g OAotICAgJTUgPSBhbGxvY2EgPDggeCBpOD4sIGFsaWduIDgKLUBAIC0zMTcyLDcgKzMxNzIsNyBA QCBkZWZpbmUgZHNvX2xvY2FsIDw4IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVt dTJDTXZiOF9oU18oPDggeCBpOD4sIDw4Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5s aW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MTYgeCBpOD4gQF9aMjRfX2NtX2ludHJp bnNpY19pbXBsX3VyZW11MkNNdmIxNl9oU18oPDE2IHggaTg+LCA8MTYgeCBpOD4pICMxNiB7Ci0r ZGVmaW5lIGludGVybmFsIDwxNiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUy Q012YjE2X2hTXyg8MTYgeCBpOD4sIDwxNiB4IGk4PikgIzE2IHsKLSAgICUzID0gYWxsb2NhIDwx NiB4IGk4PiwgYWxpZ24gMTYKLSAgICU0ID0gYWxsb2NhIDwxNiB4IGk4PiwgYWxpZ24gMTYKLSAg ICU1ID0gYWxsb2NhIDwxNiB4IGk4PiwgYWxpZ24gMTYKLUBAIC0zMTg2LDcgKzMxODYsNyBAQCBk ZWZpbmUgZHNvX2xvY2FsIDwxNiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUy Q012YjE2X2hTXyg8MTYgeCBpOD4sCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5l IG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MzIgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNp Y19pbXBsX3VyZW11MkNNdmIzMl9oU18oPDMyIHggaTg+LCA8MzIgeCBpOD4pICMxNyB7Ci0rZGVm aW5lIGludGVybmFsIDwzMiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012 YjMyX2hTXyg8MzIgeCBpOD4sIDwzMiB4IGk4PikgIzE3IHsKLSAgICUzID0gYWxsb2NhIDwzMiB4 IGk4PiwgYWxpZ24gMzIKLSAgICU0ID0gYWxsb2NhIDwzMiB4IGk4PiwgYWxpZ24gMzIKLSAgICU1 ID0gYWxsb2NhIDwzMiB4IGk4PiwgYWxpZ24gMzIKLUBAIC0zMjAwLDcgKzMyMDAsNyBAQCBkZWZp bmUgZHNvX2xvY2FsIDwzMiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012 YjMyX2hTXyg8MzIgeCBpOD4sCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5v dW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCB6ZXJvZXh0IGkxNiBAX1oyNF9fY21faW50cmluc2lj X2ltcGxfdWRpdnR0KGkxNiB6ZXJvZXh0LCBpMTYgemVyb2V4dCkgIzIyIHsKLStkZWZpbmUgaW50 ZXJuYWwgemVyb2V4dCBpMTYgQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZ0dChpMTYgemVy b2V4dCwgaTE2IHplcm9leHQpICMyMiB7Ci0gICAlMyA9IGFsbG9jYSBpMTYsIGFsaWduIDIKLSAg ICU0ID0gYWxsb2NhIGkxNiwgYWxpZ24gMgotICAgJTUgPSBhbGxvY2EgPDEgeCBpMTY+LCBhbGln biAyCi1AQCAtMzI3OCw3ICszMjc4LDcgQEAgZGVmaW5lIGludGVybmFsIDwxIHggaTE2PiBAX1pO N2RldGFpbHMxNF9faW1wbF91ZGl2cmVtSUxpMUVFRXUyQ012YlRfX3RTMV9TMV91MkMKLSB9Ci0g Ci0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2Fs IDwxIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRpdnUyQ012YjFfdFNfKDwxIHgg aTE2PiwgPDEgeCBpMTY+KSAjMjIgewotK2RlZmluZSBpbnRlcm5hbCA8MSB4IGkxNj4gQF9aMjRf X2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1MkNNdmIxX3RTXyg8MSB4IGkxNj4sIDwxIHggaTE2Pikg IzIyIHsKLSAgICUzID0gYWxsb2NhIDwxIHggaTE2PiwgYWxpZ24gMgotICAgJTQgPSBhbGxvY2Eg PDEgeCBpMTY+LCBhbGlnbiAyCi0gICAlNSA9IGFsbG9jYSA8MSB4IGkxNj4sIGFsaWduIDIKLUBA IC0zMjk0LDcgKzMyOTQsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwxIHggaTE2PiBAX1oyNF9fY21f aW50cmluc2ljX2ltcGxfdWRpdnUyQ012YjFfdFNfKDwxIHggaTE2PiwgPAotIH0KLSAKLSA7IEZ1 bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDIgeCBp MTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZiMl90U18oPDIgeCBpMTY+LCA8 MiB4IGkxNj4pICMxNCB7Ci0rZGVmaW5lIGludGVybmFsIDwyIHggaTE2PiBAX1oyNF9fY21faW50 cmluc2ljX2ltcGxfdWRpdnUyQ012YjJfdFNfKDwyIHggaTE2PiwgPDIgeCBpMTY+KSAjMTQgewot ICAgJTMgPSBhbGxvY2EgPDIgeCBpMTY+LCBhbGlnbiA0Ci0gICAlNCA9IGFsbG9jYSA8MiB4IGkx Nj4sIGFsaWduIDQKLSAgICU1ID0gYWxsb2NhIDwyIHggaTE2PiwgYWxpZ24gNAotQEAgLTMzNjAs NyArMzM2MCw3IEBAIGRlZmluZSBpbnRlcm5hbCA8MiB4IGkxNj4gQF9aTjdkZXRhaWxzMTRfX2lt cGxfdWRpdnJlbUlMaTJFRUV1MkNNdmJUX190UzFfUzFfdTJDCi0gfQotIAotIDsgRnVuY3Rpb24g QXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8NCB4IGkxNj4gQF9a MjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1MkNNdmI0X3RTXyg8NCB4IGkxNj4sIDw0IHggaTE2 PikgIzE1IHsKLStkZWZpbmUgaW50ZXJuYWwgPDQgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNf aW1wbF91ZGl2dTJDTXZiNF90U18oPDQgeCBpMTY+LCA8NCB4IGkxNj4pICMxNSB7Ci0gICAlMyA9 IGFsbG9jYSA8NCB4IGkxNj4sIGFsaWduIDgKLSAgICU0ID0gYWxsb2NhIDw0IHggaTE2PiwgYWxp Z24gOAotICAgJTUgPSBhbGxvY2EgPDQgeCBpMTY+LCBhbGlnbiA4Ci1AQCAtMzU1OCw3ICszNTU4 LDcgQEAgZGVmaW5lIGludGVybmFsIDwxNiB4IGkxNj4gQF9aTjdkZXRhaWxzMTRfX2ltcGxfdWRp dnJlbUlMaTE2RUVFdTJDTXZiVF9fdFMxX1MxX3UKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczog bm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwzMiB4IGkxNj4gQF9aMjRfX2Nt X2ludHJpbnNpY19pbXBsX3VkaXZ1MkNNdmIzMl90U18oPDMyIHggaTE2PiwgPDMyIHggaTE2Pikg IzE4IHsKLStkZWZpbmUgaW50ZXJuYWwgPDMyIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2lt cGxfdWRpdnUyQ012YjMyX3RTXyg8MzIgeCBpMTY+LCA8MzIgeCBpMTY+KSAjMTggewotICAgJTMg PSBhbGxvY2EgPDMyIHggaTE2PiwgYWxpZ24gNjQKLSAgICU0ID0gYWxsb2NhIDwzMiB4IGkxNj4s IGFsaWduIDY0Ci0gICAlNSA9IGFsbG9jYSA8MzIgeCBpMTY+LCBhbGlnbiA2NAotQEAgLTM2MjQs NyArMzYyNCw3IEBAIGRlZmluZSBpbnRlcm5hbCA8MzIgeCBpMTY+IEBfWk43ZGV0YWlsczE0X19p bXBsX3VkaXZyZW1JTGkzMkVFRXUyQ012YlRfX3RTMV9TMV91Ci0gfQotIAotIDsgRnVuY3Rpb24g QXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCB6ZXJvZXh0IGkxNiBA X1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXR0KGkxNiB6ZXJvZXh0LCBpMTYgemVyb2V4dCkg IzIyIHsKLStkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMTYgQF9aMjRfX2NtX2ludHJpbnNpY19p bXBsX3VyZW10dChpMTYgemVyb2V4dCwgaTE2IHplcm9leHQpICMyMiB7Ci0gICAlMyA9IGFsbG9j YSBpMTYsIGFsaWduIDIKLSAgICU0ID0gYWxsb2NhIGkxNiwgYWxpZ24gMgotICAgJTUgPSBhbGxv Y2EgPDEgeCBpMTY+LCBhbGlnbiAyCi1AQCAtMzY1MCw3ICszNjUwLDcgQEAgZGVmaW5lIGRzb19s b2NhbCB6ZXJvZXh0IGkxNiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXR0KGkxNiB6ZXJv ZXh0LCBpMTYgemUKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQK LS1kZWZpbmUgZHNvX2xvY2FsIDwxIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJl bXUyQ012YjFfdFNfKDwxIHggaTE2PiwgPDEgeCBpMTY+KSAjMjIgewotK2RlZmluZSBpbnRlcm5h bCA8MSB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIxX3RTXyg8MSB4 IGkxNj4sIDwxIHggaTE2PikgIzIyIHsKLSAgICUzID0gYWxsb2NhIDwxIHggaTE2PiwgYWxpZ24g MgotICAgJTQgPSBhbGxvY2EgPDEgeCBpMTY+LCBhbGlnbiAyCi0gICAlNSA9IGFsbG9jYSA8MSB4 IGkxNj4sIGFsaWduIDIKLUBAIC0zNjY0LDcgKzM2NjQsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwx IHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjFfdFNfKDwxIHggaTE2 PiwgPAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmlu ZSBkc29fbG9jYWwgPDIgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZi Ml90U18oPDIgeCBpMTY+LCA8MiB4IGkxNj4pICMxNCB7Ci0rZGVmaW5lIGludGVybmFsIDwyIHgg aTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjJfdFNfKDwyIHggaTE2Piwg PDIgeCBpMTY+KSAjMTQgewotICAgJTMgPSBhbGxvY2EgPDIgeCBpMTY+LCBhbGlnbiA0Ci0gICAl NCA9IGFsbG9jYSA8MiB4IGkxNj4sIGFsaWduIDQKLSAgICU1ID0gYWxsb2NhIDwyIHggaTE2Piwg YWxpZ24gNAotQEAgLTM2NzgsNyArMzY3OCw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDIgeCBpMTY+ IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMl90U18oPDIgeCBpMTY+LCA8Ci0g fQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19s b2NhbCA8NCB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmI0X3RTXyg8 NCB4IGkxNj4sIDw0IHggaTE2PikgIzE1IHsKLStkZWZpbmUgaW50ZXJuYWwgPDQgeCBpMTY+IEBf WjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiNF90U18oPDQgeCBpMTY+LCA8NCB4IGkx Nj4pICMxNSB7Ci0gICAlMyA9IGFsbG9jYSA8NCB4IGkxNj4sIGFsaWduIDgKLSAgICU0ID0gYWxs b2NhIDw0IHggaTE2PiwgYWxpZ24gOAotICAgJTUgPSBhbGxvY2EgPDQgeCBpMTY+LCBhbGlnbiA4 Ci1AQCAtMzY5Miw3ICszNjkyLDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8NCB4IGkxNj4gQF9aMjRf X2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmI0X3RTXyg8NCB4IGkxNj4sIDwKLSB9Ci0gCi0g OyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDw4 IHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjhfdFNfKDw4IHggaTE2 PiwgPDggeCBpMTY+KSAjMTYgewotK2RlZmluZSBpbnRlcm5hbCA8OCB4IGkxNj4gQF9aMjRfX2Nt X2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmI4X3RTXyg8OCB4IGkxNj4sIDw4IHggaTE2PikgIzE2 IHsKLSAgICUzID0gYWxsb2NhIDw4IHggaTE2PiwgYWxpZ24gMTYKLSAgICU0ID0gYWxsb2NhIDw4 IHggaTE2PiwgYWxpZ24gMTYKLSAgICU1ID0gYWxsb2NhIDw4IHggaTE2PiwgYWxpZ24gMTYKLUBA IC0zNzA2LDcgKzM3MDYsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDw4IHggaTE2PiBAX1oyNF9fY21f aW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjhfdFNfKDw4IHggaTE2PiwgPAotIH0KLSAKLSA7IEZ1 bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDE2IHgg aTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjE2X3RTXyg8MTYgeCBpMTY+ LCA8MTYgeCBpMTY+KSAjMTcgewotK2RlZmluZSBpbnRlcm5hbCA8MTYgeCBpMTY+IEBfWjI0X19j bV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMTZfdFNfKDwxNiB4IGkxNj4sIDwxNiB4IGkxNj4p ICMxNyB7Ci0gICAlMyA9IGFsbG9jYSA8MTYgeCBpMTY+LCBhbGlnbiAzMgotICAgJTQgPSBhbGxv Y2EgPDE2IHggaTE2PiwgYWxpZ24gMzIKLSAgICU1ID0gYWxsb2NhIDwxNiB4IGkxNj4sIGFsaWdu IDMyCi1AQCAtMzcyMCw3ICszNzIwLDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MTYgeCBpMTY+IEBf WjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMTZfdFNfKDwxNiB4IGkxNj4KLSB9Ci0g Ci0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2Fs IDwzMiB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIzMl90U18oPDMy IHggaTE2PiwgPDMyIHggaTE2PikgIzE4IHsKLStkZWZpbmUgaW50ZXJuYWwgPDMyIHggaTE2PiBA X1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjMyX3RTXyg8MzIgeCBpMTY+LCA8MzIg eCBpMTY+KSAjMTggewotICAgJTMgPSBhbGxvY2EgPDMyIHggaTE2PiwgYWxpZ24gNjQKLSAgICU0 ID0gYWxsb2NhIDwzMiB4IGkxNj4sIGFsaWduIDY0Ci0gICAlNSA9IGFsbG9jYSA8MzIgeCBpMTY+ LCBhbGlnbiA2NAotQEAgLTM3MzQsNyArMzczNCw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDMyIHgg aTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjMyX3RTXyg8MzIgeCBpMTY+ Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRz b19sb2NhbCBpMzIgQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZqaihpMzIsIGkzMikgIzE0 IHsKLStkZWZpbmUgaW50ZXJuYWwgaTMyIEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2amoo aTMyLCBpMzIpICMxNCB7Ci0gICAlMyA9IGFsbG9jYSBpMzIsIGFsaWduIDQKLSAgICU0ID0gYWxs b2NhIGkzMiwgYWxpZ24gNAotICAgJTUgPSBhbGxvY2EgPDEgeCBpMzI+LCBhbGlnbiA0Ci1AQCAt Mzg5Miw3ICszODkyLDcgQEAgZGVmaW5lIGludGVybmFsIDwxIHggaTMyPiBAX1pON2RldGFpbHMx NF9faW1wbF91ZGl2cmVtSUxpMUVFRXUyQ012YlRfX2pTMV9TMV91MkMKLSB9Ci0gCi0gOyBGdW5j dGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwxIHggaTMy PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRpdnUyQ012YjFfalNfKDwxIHggaTMyPiwgPDEg eCBpMzI+KSAjMTQgewotK2RlZmluZSBpbnRlcm5hbCA8MSB4IGkzMj4gQF9aMjRfX2NtX2ludHJp bnNpY19pbXBsX3VkaXZ1MkNNdmIxX2pTXyg8MSB4IGkzMj4sIDwxIHggaTMyPikgIzE0IHsKLSAg ICUzID0gYWxsb2NhIDwxIHggaTMyPiwgYWxpZ24gNAotICAgJTQgPSBhbGxvY2EgPDEgeCBpMzI+ LCBhbGlnbiA0Ci0gICAlNSA9IGFsbG9jYSA8MSB4IGkzMj4sIGFsaWduIDQKLUBAIC0zOTA4LDcg KzM5MDgsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwxIHggaTMyPiBAX1oyNF9fY21faW50cmluc2lj X2ltcGxfdWRpdnUyQ012YjFfalNfKDwxIHggaTMyPiwgPAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0 dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDIgeCBpMzI+IEBfWjI0 X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZiMl9qU18oPDIgeCBpMzI+LCA8MiB4IGkzMj4p ICMxNSB7Ci0rZGVmaW5lIGludGVybmFsIDwyIHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2lt cGxfdWRpdnUyQ012YjJfalNfKDwyIHggaTMyPiwgPDIgeCBpMzI+KSAjMTUgewotICAgJTMgPSBh bGxvY2EgPDIgeCBpMzI+LCBhbGlnbiA4Ci0gICAlNCA9IGFsbG9jYSA8MiB4IGkzMj4sIGFsaWdu IDgKLSAgICU1ID0gYWxsb2NhIDwyIHggaTMyPiwgYWxpZ24gOAotQEAgLTQwNTQsNyArNDA1NCw3 IEBAIGRlZmluZSBpbnRlcm5hbCA8MiB4IGkzMj4gQF9aTjdkZXRhaWxzMTRfX2ltcGxfdWRpdnJl bUlMaTJFRUV1MkNNdmJUX19qUzFfUzFfdTJDCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5v aW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8NCB4IGkzMj4gQF9aMjRfX2NtX2lu dHJpbnNpY19pbXBsX3VkaXZ1MkNNdmI0X2pTXyg8NCB4IGkzMj4sIDw0IHggaTMyPikgIzE2IHsK LStkZWZpbmUgaW50ZXJuYWwgPDQgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2 dTJDTXZiNF9qU18oPDQgeCBpMzI+LCA8NCB4IGkzMj4pICMxNiB7Ci0gICAlMyA9IGFsbG9jYSA8 NCB4IGkzMj4sIGFsaWduIDE2Ci0gICAlNCA9IGFsbG9jYSA8NCB4IGkzMj4sIGFsaWduIDE2Ci0g ICAlNSA9IGFsbG9jYSA8NCB4IGkzMj4sIGFsaWduIDE2Ci1AQCAtNDQ5Miw3ICs0NDkyLDcgQEAg ZGVmaW5lIGludGVybmFsIDwxNiB4IGkzMj4gQF9aTjdkZXRhaWxzMTRfX2ltcGxfdWRpdnJlbUlM aTE2RUVFdTJDTXZiVF9falMxX1MxX3UKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxp bmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwzMiB4IGkzMj4gQF9aMjRfX2NtX2ludHJp bnNpY19pbXBsX3VkaXZ1MkNNdmIzMl9qU18oPDMyIHggaTMyPiwgPDMyIHggaTMyPikgIzE5IHsK LStkZWZpbmUgaW50ZXJuYWwgPDMyIHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRp dnUyQ012YjMyX2pTXyg8MzIgeCBpMzI+LCA8MzIgeCBpMzI+KSAjMTkgewotICAgJTMgPSBhbGxv Y2EgPDMyIHggaTMyPiwgYWxpZ24gMTI4Ci0gICAlNCA9IGFsbG9jYSA8MzIgeCBpMzI+LCBhbGln biAxMjgKLSAgICU1ID0gYWxsb2NhIDwzMiB4IGkzMj4sIGFsaWduIDEyOAotQEAgLTQ2MzgsNyAr NDYzOCw3IEBAIGRlZmluZSBpbnRlcm5hbCA8MzIgeCBpMzI+IEBfWk43ZGV0YWlsczE0X19pbXBs X3VkaXZyZW1JTGkzMkVFRXUyQ012YlRfX2pTMV9TMV91Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0 cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCBpMzIgQF9aMjRfX2NtX2lu dHJpbnNpY19pbXBsX3VyZW1qaihpMzIsIGkzMikgIzE0IHsKLStkZWZpbmUgaW50ZXJuYWwgaTMy IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtamooaTMyLCBpMzIpICMxNCB7Ci0gICAlMyA9 IGFsbG9jYSBpMzIsIGFsaWduIDQKLSAgICU0ID0gYWxsb2NhIGkzMiwgYWxpZ24gNAotICAgJTUg PSBhbGxvY2EgPDEgeCBpMzI+LCBhbGlnbiA0Ci1AQCAtNDY2NCw3ICs0NjY0LDcgQEAgZGVmaW5l IGRzb19sb2NhbCBpMzIgQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW1qaihpMzIsIGkzMikg IzE0IHsKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZp bmUgZHNvX2xvY2FsIDwxIHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012 YjFfalNfKDwxIHggaTMyPiwgPDEgeCBpMzI+KSAjMTQgewotK2RlZmluZSBpbnRlcm5hbCA8MSB4 IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIxX2pTXyg8MSB4IGkzMj4s IDwxIHggaTMyPikgIzE0IHsKLSAgICUzID0gYWxsb2NhIDwxIHggaTMyPiwgYWxpZ24gNAotICAg JTQgPSBhbGxvY2EgPDEgeCBpMzI+LCBhbGlnbiA0Ci0gICAlNSA9IGFsbG9jYSA8MSB4IGkzMj4s IGFsaWduIDQKLUBAIC00Njc4LDcgKzQ2NzgsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwxIHggaTMy PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjFfalNfKDwxIHggaTMyPiwgPAot IH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29f bG9jYWwgPDIgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMl9qU18o PDIgeCBpMzI+LCA8MiB4IGkzMj4pICMxNSB7Ci0rZGVmaW5lIGludGVybmFsIDwyIHggaTMyPiBA X1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjJfalNfKDwyIHggaTMyPiwgPDIgeCBp MzI+KSAjMTUgewotICAgJTMgPSBhbGxvY2EgPDIgeCBpMzI+LCBhbGlnbiA4Ci0gICAlNCA9IGFs bG9jYSA8MiB4IGkzMj4sIGFsaWduIDgKLSAgICU1ID0gYWxsb2NhIDwyIHggaTMyPiwgYWxpZ24g OAotQEAgLTQ2OTIsNyArNDY5Miw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDIgeCBpMzI+IEBfWjI0 X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMl9qU18oPDIgeCBpMzI+LCA8Ci0gfQotIAot IDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8 NCB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmI0X2pTXyg8NCB4IGkz Mj4sIDw0IHggaTMyPikgIzE2IHsKLStkZWZpbmUgaW50ZXJuYWwgPDQgeCBpMzI+IEBfWjI0X19j bV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiNF9qU18oPDQgeCBpMzI+LCA8NCB4IGkzMj4pICMx NiB7Ci0gICAlMyA9IGFsbG9jYSA8NCB4IGkzMj4sIGFsaWduIDE2Ci0gICAlNCA9IGFsbG9jYSA8 NCB4IGkzMj4sIGFsaWduIDE2Ci0gICAlNSA9IGFsbG9jYSA8NCB4IGkzMj4sIGFsaWduIDE2Ci1A QCAtNDcwNiw3ICs0NzA2LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8NCB4IGkzMj4gQF9aMjRfX2Nt X2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmI0X2pTXyg8NCB4IGkzMj4sIDwKLSB9Ci0gCi0gOyBG dW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDw4IHgg aTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjhfalNfKDw4IHggaTMyPiwg PDggeCBpMzI+KSAjMTcgewotK2RlZmluZSBpbnRlcm5hbCA8OCB4IGkzMj4gQF9aMjRfX2NtX2lu dHJpbnNpY19pbXBsX3VyZW11MkNNdmI4X2pTXyg8OCB4IGkzMj4sIDw4IHggaTMyPikgIzE3IHsK LSAgICUzID0gYWxsb2NhIDw4IHggaTMyPiwgYWxpZ24gMzIKLSAgICU0ID0gYWxsb2NhIDw4IHgg aTMyPiwgYWxpZ24gMzIKLSAgICU1ID0gYWxsb2NhIDw4IHggaTMyPiwgYWxpZ24gMzIKLUBAIC00 NzIwLDcgKzQ3MjAsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDw4IHggaTMyPiBAX1oyNF9fY21faW50 cmluc2ljX2ltcGxfdXJlbXUyQ012YjhfalNfKDw4IHggaTMyPiwgPAotIH0KLSAKLSA7IEZ1bmN0 aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDE2IHggaTMy PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjE2X2pTXyg8MTYgeCBpMzI+LCA8 MTYgeCBpMzI+KSAjMTggewotK2RlZmluZSBpbnRlcm5hbCA8MTYgeCBpMzI+IEBfWjI0X19jbV9p bnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMTZfalNfKDwxNiB4IGkzMj4sIDwxNiB4IGkzMj4pICMx OCB7Ci0gICAlMyA9IGFsbG9jYSA8MTYgeCBpMzI+LCBhbGlnbiA2NAotICAgJTQgPSBhbGxvY2Eg PDE2IHggaTMyPiwgYWxpZ24gNjQKLSAgICU1ID0gYWxsb2NhIDwxNiB4IGkzMj4sIGFsaWduIDY0 Ci1AQCAtNDczNCw3ICs0NzM0LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MTYgeCBpMzI+IEBfWjI0 X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMTZfalNfKDwxNiB4IGkzMj4KLSB9Ci0gCi0g OyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwz MiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIzMl9qU18oPDMyIHgg aTMyPiwgPDMyIHggaTMyPikgIzE5IHsKLStkZWZpbmUgaW50ZXJuYWwgPDMyIHggaTMyPiBAX1oy NF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjMyX2pTXyg8MzIgeCBpMzI+LCA8MzIgeCBp MzI+KSAjMTkgewotICAgJTMgPSBhbGxvY2EgPDMyIHggaTMyPiwgYWxpZ24gMTI4Ci0gICAlNCA9 IGFsbG9jYSA8MzIgeCBpMzI+LCBhbGlnbiAxMjgKLSAgICU1ID0gYWxsb2NhIDwzMiB4IGkzMj4s IGFsaWduIDEyOAotQEAgLTQ3NDgsNyArNDc0OCw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDMyIHgg aTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjMyX2pTXyg8MzIgeCBpMzI+ Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRz b19sb2NhbCB2b2lkIEBfX2RvX3ByaW50X2NtKGk4KiwgaTgqLCBpMzIsIGk2NCwgaTMyKiwgaTMy LCBpMzIpICMyMyAhZGJnICExNSB7Ci0rZGVmaW5lIGludGVybmFsIHZvaWQgQF9fZG9fcHJpbnRf Y20oaTgqLCBpOCosIGkzMiwgaTY0LCBpMzIqLCBpMzIsIGkzMikgIzIzICFkYmcgITE1IHsKLSAg ICU4ID0gYWxsb2NhIGk4KiwgYWxpZ24gNAotICAgJTkgPSBhbGxvY2EgaTgqLCBhbGlnbiA0Ci0g ICAlMTAgPSBhbGxvY2EgaTMyLCBhbGlnbiA0Ci1AQCAtNDk4OCw3ICs0OTg4LDcgQEAgZGVmaW5l IGludGVybmFsIHZvaWQgQF9aTjdkZXRhaWxzMTZfY21fcHJpbnRfZm9ybWF0SUxpMTI4RUVFdjE1 Y21fc3VyZmFjZWluZGV4anUKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91 bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIHZvaWQgQF9fZG9fcHJpbnRfbHooaTMyLCBpOCosIGkz MiwgaTY0LCBpMzIqLCBpMzIsIGkzMiwgaTMyLCBpMzIpICMyNiAhZGJnICExMTcgewotK2RlZmlu ZSBpbnRlcm5hbCB2b2lkIEBfX2RvX3ByaW50X2x6KGkzMiwgaTgqLCBpMzIsIGk2NCwgaTMyKiwg aTMyLCBpMzIsIGkzMiwgaTMyKSAjMjYgIWRiZyAhMTE3IHsKLSAgICUxMCA9IGFsbG9jYSBpMzIs IGFsaWduIDQKLSAgICUxMSA9IGFsbG9jYSBpOCosIGFsaWduIDQKLSAgICUxMiA9IGFsbG9jYSBp MzIsIGFsaWduIDQKLUBAIC01MDY5LDcgKzUwNjksNyBAQCBkZWZpbmUgZHNvX2xvY2FsIHZvaWQg QF9fZG9fcHJpbnRfbHooaTMyLCBpOCosIGkzMiwgaTY0LCBpMzIqLCBpMzIsIGkzMiwgaTMyLCBp MwotICAgJTY3ID0gbG9hZCBpNjQsIGk2NCogJTEzLCBhbGlnbiA4LCAhZGJnICExNTksICF0YmFh ICExOQotICAgJTY4ID0gbG9hZCA8NSB4IGkzMj4sIDw1IHggaTMyPiogJTIxLCBhbGlnbiAzMiwg IWRiZyAhMTYwLCAhdGJhYSAhNwotICAgY2FsbCB2b2lkIEBfWk4xM1ZhcnlpbmdXcml0ZXJDMkVS alJQS2ppeXUyQ012YjVfaSglY2xhc3MuVmFyeWluZ1dyaXRlciogJTIzLCBpMzIqIGRlcmVmZXJl bmNlYWJsZSg0KSAlMTksIGkzMioqIGRlcmVmZXJlbmNlYWJsZSg0KSAlMTQsIGkzMiAlNjYsIGk2 NCAlNjcsIDw1IHggaTMyPiAlNjgpLCAhZGJnICExNjEKLS0gICU2OSA9IGNhbGwgemVyb2V4dCBp MSBAX1pOOVByaW50SW5mbzE0c3dpdGNoRW5jb2RpbmdJMTNVbmlmb3JtV3JpdGVyMTNWYXJ5aW5n V3JpdGVyRUViTlNfOEVuY29kaW5nRVRfVDBfKGk4IHNpZ25leHQgJTYyLCAlY2xhc3MuVW5pZm9y bVdyaXRlciogYnl2YWwgYWxpZ24gMzIgJTIyLCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwg YWxpZ24gMzIgJTIzKSwgIWRiZyAhMTYyCi0rICAlNjkgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQ cmludEluZm8xNHN3aXRjaEVuY29kaW5nSTEzVW5pZm9ybVdyaXRlcjEzVmFyeWluZ1dyaXRlckVF Yk5TXzhFbmNvZGluZ0VUX1QwXyhpOCBzaWduZXh0ICU2MiwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIq IGJ5dmFsKCVjbGFzcy5Vbmlmb3JtV3JpdGVyKSBhbGlnbiAzMiAlMjIsICVjbGFzcy5WYXJ5aW5n V3JpdGVyKiBieXZhbCglY2xhc3MuVmFyeWluZ1dyaXRlcikgYWxpZ24gMzIgJTIzKSwgIWRiZyAh MTYyCi0gICBiciBsYWJlbCAlNzAsICFkYmcgITE2MwotIAotIDsgPGxhYmVsPjo3MDogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOyBwcmVkcyA9ICU2MAotQEAgLTUxODcsNyAr NTE4Nyw3IEBAIGRlZmluZSBpbnRlcm5hbCA8NSB4IGkzMj4gQF9aMTdnZXRfYXV4aWxpYXJ5X3N0 cnYoKSAjMjggY29tZGF0ICFkYmcgITE3OCB7Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IGFs d2F5c2lubGluZSBpbmxpbmVoaW50IG5vdW53aW5kCi0tZGVmaW5lIGludGVybmFsIHplcm9leHQg aTEgQF9aTjlQcmludEluZm8xNHN3aXRjaEVuY29kaW5nSTEzVW5pZm9ybVdyaXRlcjEzVmFyeWlu Z1dyaXRlckVFYk5TXzhFbmNvZGluZ0VUX1QwXyhpOCBzaWduZXh0LCAlY2xhc3MuVW5pZm9ybVdy aXRlciogYnl2YWwgYWxpZ24gMzIsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCBhbGlnbiAz MikgIzI1IGNvbWRhdCAhZGJnICExOTEgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBf Wk45UHJpbnRJbmZvMTRzd2l0Y2hFbmNvZGluZ0kxM1VuaWZvcm1Xcml0ZXIxM1ZhcnlpbmdXcml0 ZXJFRWJOU184RW5jb2RpbmdFVF9UMF8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIq IGJ5dmFsKCVjbGFzcy5Vbmlmb3JtV3JpdGVyKSBhbGlnbiAzMiwgJWNsYXNzLlZhcnlpbmdXcml0 ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5aW5nV3JpdGVyKSBhbGlnbiAzMikgIzI1IGNvbWRhdCAhZGJn ICExOTEgewotICAgJTQgPSBhbGxvY2EgaTgsIGFsaWduIDEKLSAgICU1ID0gYWxsb2NhICVjbGFz cy5Vbmlmb3JtV3JpdGVyLCBhbGlnbiAzMgotICAgJTYgPSBhbGxvY2EgJWNsYXNzLlZhcnlpbmdX cml0ZXIsIGFsaWduIDMyCi1AQCAtNTE5Niw3ICs1MTk2LDcgQEAgZGVmaW5lIGludGVybmFsIHpl cm9leHQgaTEgQF9aTjlQcmludEluZm8xNHN3aXRjaEVuY29kaW5nSTEzVW5pZm9ybVdyaXRlcjEz VmFyeWkKLSAgICU4ID0gYml0Y2FzdCAlY2xhc3MuVW5pZm9ybVdyaXRlciogJTUgdG8gaTgqLCAh ZGJnICExOTYKLSAgICU5ID0gYml0Y2FzdCAlY2xhc3MuVW5pZm9ybVdyaXRlciogJTEgdG8gaTgq LCAhZGJnICExOTYKLSAgIGNhbGwgdm9pZCBAbGx2bS5tZW1jcHkucDBpOC5wMGk4LmkzMihpOCog YWxpZ24gMzIgJTgsIGk4KiBhbGlnbiAzMiAlOSwgaTMyIDY0LCBpMSBmYWxzZSksICFkYmcgITE5 NiwgIXRiYWEuc3RydWN0ICExOTcKLS0gICUxMCA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50 SW5mbzIyc3dpdGNoRW5jb2Rpbmc0VW5pZm9ybUkxM1VuaWZvcm1Xcml0ZXJFRWJOU184RW5jb2Rp bmdFVF8oaTggc2lnbmV4dCAlNywgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsIGFsaWduIDMy ICU1KSwgIWRiZyAhMTk4Ci0rICAlMTAgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm8y MnN3aXRjaEVuY29kaW5nNFVuaWZvcm1JMTNVbmlmb3JtV3JpdGVyRUViTlNfOEVuY29kaW5nRVRf KGk4IHNpZ25leHQgJTcsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCglY2xhc3MuVW5pZm9y bVdyaXRlcikgYWxpZ24gMzIgJTUpLCAhZGJnICExOTgKLSAgIGJyIGkxICUxMCwgbGFiZWwgJTE2 LCBsYWJlbCAlMTEsICFkYmcgITE5OQotIAotIDsgPGxhYmVsPjoxMTogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgOyBwcmVkcyA9ICUzCi1AQCAtNTIwNCw3ICs1MjA0LDcgQEAg ZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm8xNHN3aXRjaEVuY29kaW5n STEzVW5pZm9ybVdyaXRlcjEzVmFyeWkKLSAgICUxMyA9IGJpdGNhc3QgJWNsYXNzLlZhcnlpbmdX cml0ZXIqICU2IHRvIGk4KiwgIWRiZyAhMjAxCi0gICAlMTQgPSBiaXRjYXN0ICVjbGFzcy5WYXJ5 aW5nV3JpdGVyKiAlMiB0byBpOCosICFkYmcgITIwMQotICAgY2FsbCB2b2lkIEBsbHZtLm1lbWNw eS5wMGk4LnAwaTguaTMyKGk4KiBhbGlnbiAzMiAlMTMsIGk4KiBhbGlnbiAzMiAlMTQsIGkzMiA2 NCwgaTEgZmFsc2UpLCAhZGJnICEyMDEsICF0YmFhLnN0cnVjdCAhMTk3Ci0tICAlMTUgPSBjYWxs IHplcm9leHQgaTEgQF9aTjlQcmludEluZm8yMnN3aXRjaEVuY29kaW5nNFZhcnlpbmdJMTNWYXJ5 aW5nV3JpdGVyRUViTlNfOEVuY29kaW5nRVRfKGk4IHNpZ25leHQgJTEyLCAlY2xhc3MuVmFyeWlu Z1dyaXRlciogYnl2YWwgYWxpZ24gMzIgJTYpLCAhZGJnICEyMDIKLSsgICUxNSA9IGNhbGwgemVy b2V4dCBpMSBAX1pOOVByaW50SW5mbzIyc3dpdGNoRW5jb2Rpbmc0VmFyeWluZ0kxM1ZhcnlpbmdX cml0ZXJFRWJOU184RW5jb2RpbmdFVF8oaTggc2lnbmV4dCAlMTIsICVjbGFzcy5WYXJ5aW5nV3Jp dGVyKiBieXZhbCglY2xhc3MuVmFyeWluZ1dyaXRlcikgYWxpZ24gMzIgJTYpLCAhZGJnICEyMDIK LSAgIGJyIGxhYmVsICUxNiwgIWRiZyAhMTk5Ci0gCi0gOyA8bGFiZWw+OjE2OiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICA7IHByZWRzID0gJTExLCAlMwotQEAgLTUyNzksNyAr NTI3OSw3IEBAIGRlZmluZSBpbnRlcm5hbCB2b2lkIEBfWk4xM1ZhcnlpbmdXcml0ZXJDMkVSalJQ S2ppeXUyQ012YjVfaSglY2xhc3MuVmFyeWluZ1dyaXRlCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0 cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCBpMzIgQF9fbnVtX2NvcmVz KCkgIzI5ICFkYmcgITIzNiB7Ci0rZGVmaW5lIGludGVybmFsIGkzMiBAX19udW1fY29yZXMoKSAj MjkgIWRiZyAhMjM2IHsKLSAgIHJldCBpMzIgLTEsICFkYmcgITIzNwotIH0KLSAKLUBAIC04ODYw LDcgKzg4NjAsNyBAQCBkZWNsYXJlIGRzb19sb2NhbCB2b2lkIEBfWk43ZGV0YWlsczM3X19jbV9p bnRyaW5zaWNfaW1wbF9zdm1fc2NhdHRlcl93cml0ZUlpTGkxRQotIGRlY2xhcmUgdm9pZCBAbGx2 bS5nZW54LnN2bS5zY2F0dGVyLnYxaTEudjFpNjQudjFpMzIoPDEgeCBpMT4sIGkzMiwgPDEgeCBp NjQ+LCA8MSB4IGkzMj4pICMyNwotIAotIDsgRnVuY3Rpb24gQXR0cnM6IGFsd2F5c2lubGluZSBp bmxpbmVoaW50IG5vdW53aW5kCi0tZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmlu dEluZm8yMnN3aXRjaEVuY29kaW5nNFVuaWZvcm1JMTNVbmlmb3JtV3JpdGVyRUViTlNfOEVuY29k aW5nRVRfKGk4IHNpZ25leHQsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBhbGlnbiAzMikg IzI1IGNvbWRhdCAhZGJnICExNjQ1IHsKLStkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pO OVByaW50SW5mbzIyc3dpdGNoRW5jb2Rpbmc0VW5pZm9ybUkxM1VuaWZvcm1Xcml0ZXJFRWJOU184 RW5jb2RpbmdFVF8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsKCVjbGFz cy5Vbmlmb3JtV3JpdGVyKSBhbGlnbiAzMikgIzI1IGNvbWRhdCAhZGJnICExNjQ1IHsKLSAgICUz ID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0gICAlNCA9IGFsbG9jYSAlY2xhc3MuVW5pZm9ybVdyaXRl ciwgYWxpZ24gMzIKLSAgICU1ID0gYWxsb2NhICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0 VW5pZm9ybSIsIGFsaWduIDEKLUBAIC04ODY5LDcgKzg4NjksNyBAQCBkZWZpbmUgaW50ZXJuYWwg emVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzIyc3dpdGNoRW5jb2Rpbmc0VW5pZm9ybUkxM1VuaWZv cm1Xcml0ZQotICAgJTcgPSBiaXRjYXN0ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiAlNCB0byBpOCos ICFkYmcgITE2NDcKLSAgICU4ID0gYml0Y2FzdCAlY2xhc3MuVW5pZm9ybVdyaXRlciogJTEgdG8g aTgqLCAhZGJnICExNjQ3Ci0gICBjYWxsIHZvaWQgQGxsdm0ubWVtY3B5LnAwaTgucDBpOC5pMzIo aTgqIGFsaWduIDMyICU3LCBpOCogYWxpZ24gMzIgJTgsIGkzMiA2NCwgaTEgZmFsc2UpLCAhZGJn ICExNjQ3LCAhdGJhYS5zdHJ1Y3QgITE5NwotLSAgJTkgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQ cmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29k aW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVRfVDBfKGk4IHNpZ25leHQgJTYsICVjbGFzcy5V bmlmb3JtV3JpdGVyKiBieXZhbCBhbGlnbiAzMiAlNCwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNv ZGluZzRVbmlmb3JtIiogYnl2YWwgYWxpZ24gMSAlNSksICFkYmcgITE2NDgKLSsgICU5ID0gY2Fs bCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNVbmlm b3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUX1QwXyhpOCBz aWduZXh0ICU2LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1Xcml0 ZXIpIGFsaWduIDMyICU0LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBi eXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKSBhbGlnbiAxICU1KSwg IWRiZyAhMTY0OAotICAgcmV0IGkxICU5LCAhZGJnICExNjQ5Ci0gfQotIAotQEAgLTg4NzcsNyAr ODg3Nyw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvMjJzd2l0 Y2hFbmNvZGluZzRVbmlmb3JtSTEzVW5pZm9ybVdyaXRlCi0gZGVjbGFyZSB2b2lkIEBsbHZtLm1l bWNweS5wMGk4LnAwaTguaTMyKGk4KiBub2NhcHR1cmUgd3JpdGVvbmx5LCBpOCogbm9jYXB0dXJl IHJlYWRvbmx5LCBpMzIsIGkxKSAjMzIKLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBhbHdheXNpbmxp bmUgaW5saW5laGludCBub3Vud2luZAotLWRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45 UHJpbnRJbmZvMjJzd2l0Y2hFbmNvZGluZzRWYXJ5aW5nSTEzVmFyeWluZ1dyaXRlckVFYk5TXzhF bmNvZGluZ0VUXyhpOCBzaWduZXh0LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwgYWxpZ24g MzIpICMyNSBjb21kYXQgIWRiZyAhMTY1MCB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEg QF9aTjlQcmludEluZm8yMnN3aXRjaEVuY29kaW5nNFZhcnlpbmdJMTNWYXJ5aW5nV3JpdGVyRUVi TlNfOEVuY29kaW5nRVRfKGk4IHNpZ25leHQsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCgl Y2xhc3MuVmFyeWluZ1dyaXRlcikgYWxpZ24gMzIpICMyNSBjb21kYXQgIWRiZyAhMTY1MCB7Ci0g ICAlMyA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgJTQgPSBhbGxvY2EgJWNsYXNzLlZhcnlpbmdX cml0ZXIsIGFsaWduIDMyCi0gICAlNSA9IGFsbG9jYSAlInN0cnVjdC5QcmludEluZm86OkVuY29k aW5nNFZhcnlpbmciLCBhbGlnbiAxCi1AQCAtODg4NiwxMiArODg4NiwxMiBAQCBkZWZpbmUgaW50 ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzIyc3dpdGNoRW5jb2Rpbmc0VmFyeWluZ0kx M1ZhcnlpbmdXcml0ZQotICAgJTcgPSBiaXRjYXN0ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiAlNCB0 byBpOCosICFkYmcgITE2NTIKLSAgICU4ID0gYml0Y2FzdCAlY2xhc3MuVmFyeWluZ1dyaXRlciog JTEgdG8gaTgqLCAhZGJnICExNjUyCi0gICBjYWxsIHZvaWQgQGxsdm0ubWVtY3B5LnAwaTgucDBp OC5pMzIoaTgqIGFsaWduIDMyICU3LCBpOCogYWxpZ24gMzIgJTgsIGkzMiA2NCwgaTEgZmFsc2Up LCAhZGJnICExNjUyLCAhdGJhYS5zdHJ1Y3QgITE5NwotLSAgJTkgPSBjYWxsIHplcm9leHQgaTEg QF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1ZhcnlpbmdXcml0ZXJOU18x NkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVRfVDBfKGk4IHNpZ25leHQgJTYsICVj bGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCBhbGlnbiAzMiAlNCwgJSJzdHJ1Y3QuUHJpbnRJbmZv OjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwgYWxpZ24gMSAlNSksICFkYmcgITE2NTMKLSsgICU5 ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJ MTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUX1Qw XyhpOCBzaWduZXh0ICU2LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwoJWNsYXNzLlZhcnlp bmdXcml0ZXIpIGFsaWduIDMyICU0LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlp bmciKiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKSBhbGlnbiAx ICU1KSwgIWRiZyAhMTY1MwotICAgcmV0IGkxICU5LCAhZGJnICExNjU0Ci0gfQotIAotIDsgRnVu Y3Rpb24gQXR0cnM6IGFsd2F5c2lubGluZSBpbmxpbmVoaW50IG5vdW53aW5kCi0tZGVmaW5lIGlu dGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kx M1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVRfVDBf KGk4IHNpZ25leHQsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBhbGlnbiAzMiwgJSJzdHJ1 Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwgYWxpZ24gMSkgIzI1IGNvbWRh dCAhZGJnICExNjU1IHsKLStkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5m bzZkZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5p Zm9ybUVFRWJOU184RW5jb2RpbmdFVF9UMF8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1Xcml0 ZXIqIGJ5dmFsKCVjbGFzcy5Vbmlmb3JtV3JpdGVyKSBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJ bmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGlu ZzRVbmlmb3JtIikgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICExNjU1IHsKLSAgICU0ID0gYWxs b2NhIGk4LCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSAlY2xhc3MuVW5pZm9ybVdyaXRlciwgYWxp Z24gMzIKLSAgICU2ID0gYWxsb2NhICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9y bSIsIGFsaWduIDEKLUBAIC04OTE0LDcgKzg5MTQsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4 dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEzVW5pZm9ybVdyaXRl cgotICAgJTIyID0gYml0Y2FzdCAlY2xhc3MuVW5pZm9ybVdyaXRlciogJTUgdG8gaTgqLCAhZGJn ICExNjU3Ci0gICAlMjMgPSBiaXRjYXN0ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiAlMSB0byBpOCos ICFkYmcgITE2NTcKLSAgIGNhbGwgdm9pZCBAbGx2bS5tZW1jcHkucDBpOC5wMGk4LmkzMihpOCog YWxpZ24gMzIgJTIyLCBpOCogYWxpZ24gMzIgJTIzLCBpMzIgNjQsIGkxIGZhbHNlKSwgIWRiZyAh MTY1NywgIXRiYWEuc3RydWN0ICExOTcKLS0gICUyNCA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVBy aW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0liMTNVbmlmb3JtV3JpdGVyTlNf MTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlMjEs ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBhbGlnbiAzMiAlNSwgJSJzdHJ1Y3QuUHJpbnRJ bmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwgYWxpZ24gMSAlNiksICFkYmcgITE2NTgKLSsg ICUyNCA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9w ZXJFbmNvZGluZ0liMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhF bmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlMjEsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZh bCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24gMzIgJTUsICUic3RydWN0LlByaW50SW5mbzo6 RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5p Zm9ybSIpIGFsaWduIDEgJTYpLCAhZGJnICExNjU4Ci0gICBiciBpMSAlMjQsIGxhYmVsICU2MCwg bGFiZWwgJTI1LCAhZGJnICExNjU5Ci0gCi0gOyA8bGFiZWw+OjI1OiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICA7IHByZWRzID0gJTMKLUBAIC04OTIyLDcgKzg5MjIsNyBAQCBk ZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwxNHN3aXRjaEVu Y29kaW5nSTEzVW5pZm9ybVdyaXRlcgotICAgJTI3ID0gYml0Y2FzdCAlY2xhc3MuVW5pZm9ybVdy aXRlciogJTcgdG8gaTgqLCAhZGJnICExNjYxCi0gICAlMjggPSBiaXRjYXN0ICVjbGFzcy5Vbmlm b3JtV3JpdGVyKiAlMSB0byBpOCosICFkYmcgITE2NjEKLSAgIGNhbGwgdm9pZCBAbGx2bS5tZW1j cHkucDBpOC5wMGk4LmkzMihpOCogYWxpZ24gMzIgJTI3LCBpOCogYWxpZ24gMzIgJTI4LCBpMzIg NjQsIGkxIGZhbHNlKSwgIWRiZyAhMTY2MSwgIXRiYWEuc3RydWN0ICExOTcKLS0gICUyOSA9IGNh bGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGlu Z0lpMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VU MF9UMV8oaTggc2lnbmV4dCAlMjYsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBhbGlnbiAz MiAlNywgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwgYWxpZ24g MSAlOCksICFkYmcgITE2NjIKLSsgICUyOSA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5m bzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lpMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNv ZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlMjYsICVjbGFz cy5Vbmlmb3JtV3JpdGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24gMzIgJTcs ICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsKCUic3RydWN0LlBy aW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIpIGFsaWduIDEgJTgpLCAhZGJnICExNjYyCi0gICBi ciBpMSAlMjksIGxhYmVsICU2MCwgbGFiZWwgJTMwLCAhZGJnICExNjYzCi0gCi0gOyA8bGFiZWw+ OjMwOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7IHByZWRzID0gJTI1Ci1A QCAtODkzMCw3ICs4OTMwLDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmlu dEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1VuaWZvcm1Xcml0ZXIKLSAgICUzMiA9IGJp dGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqICU5IHRvIGk4KiwgIWRiZyAhMTY2NQotICAgJTMz ID0gYml0Y2FzdCAlY2xhc3MuVW5pZm9ybVdyaXRlciogJTEgdG8gaTgqLCAhZGJnICExNjY1Ci0g ICBjYWxsIHZvaWQgQGxsdm0ubWVtY3B5LnAwaTgucDBpOC5pMzIoaTgqIGFsaWduIDMyICUzMiwg aTgqIGFsaWduIDMyICUzMywgaTMyIDY0LCBpMSBmYWxzZSksICFkYmcgITE2NjUsICF0YmFhLnN0 cnVjdCAhMTk3Ci0tICAlMzQgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWls MjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJajEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5p Zm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTMxLCAlY2xhc3MuVW5pZm9y bVdyaXRlciogYnl2YWwgYWxpZ24gMzIgJTksICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0 VW5pZm9ybSIqIGJ5dmFsIGFsaWduIDEgJTEwKSwgIWRiZyAhMTY2NgotKyAgJTM0ID0gY2FsbCB6 ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWox M1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1Qx XyhpOCBzaWduZXh0ICUzMSwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsKCVjbGFzcy5Vbmlm b3JtV3JpdGVyKSBhbGlnbiAzMiAlOSwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlm b3JtIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIikgYWxpZ24g MSAlMTApLCAhZGJnICExNjY2Ci0gICBiciBpMSAlMzQsIGxhYmVsICU2MCwgbGFiZWwgJTM1LCAh ZGJnICExNjY3Ci0gCi0gOyA8bGFiZWw+OjM1OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICA7IHByZWRzID0gJTMwCi1AQCAtODkzOCw3ICs4OTM4LDcgQEAgZGVmaW5lIGludGVy bmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1Vu aWZvcm1Xcml0ZXIKLSAgICUzNyA9IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqICUxMSB0 byBpOCosICFkYmcgITE2NjkKLSAgICUzOCA9IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIq ICUxIHRvIGk4KiwgIWRiZyAhMTY2OQotICAgY2FsbCB2b2lkIEBsbHZtLm1lbWNweS5wMGk4LnAw aTguaTMyKGk4KiBhbGlnbiAzMiAlMzcsIGk4KiBhbGlnbiAzMiAlMzgsIGkzMiA2NCwgaTEgZmFs c2UpLCAhZGJnICExNjY5LCAhdGJhYS5zdHJ1Y3QgITE5NwotLSAgJTM5ID0gY2FsbCB6ZXJvZXh0 IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWYxM1VuaWZv cm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBz aWduZXh0ICUzNiwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsIGFsaWduIDMyICUxMSwgJSJz dHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwgYWxpZ24gMSAlMTIpLCAh ZGJnICExNjcwCi0rICAlMzkgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWls MjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJZjEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5p Zm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTM2LCAlY2xhc3MuVW5pZm9y bVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1Xcml0ZXIpIGFsaWduIDMyICUxMSwgJSJzdHJ1 Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZv OjpFbmNvZGluZzRVbmlmb3JtIikgYWxpZ24gMSAlMTIpLCAhZGJnICExNjcwCi0gICBiciBpMSAl MzksIGxhYmVsICU2MCwgbGFiZWwgJTQwLCAhZGJnICExNjcxCi0gCi0gOyA8bGFiZWw+OjQwOiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7IHByZWRzID0gJTM1Ci1AQCAtODk0 Niw3ICs4OTQ2LDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82 ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1VuaWZvcm1Xcml0ZXIKLSAgICU0MiA9IGJpdGNhc3Qg JWNsYXNzLlVuaWZvcm1Xcml0ZXIqICUxMyB0byBpOCosICFkYmcgITE2NzMKLSAgICU0MyA9IGJp dGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqICUxIHRvIGk4KiwgIWRiZyAhMTY3MwotICAgY2Fs bCB2b2lkIEBsbHZtLm1lbWNweS5wMGk4LnAwaTguaTMyKGk4KiBhbGlnbiAzMiAlNDIsIGk4KiBh bGlnbiAzMiAlNDMsIGkzMiA2NCwgaTEgZmFsc2UpLCAhZGJnICExNjczLCAhdGJhYS5zdHJ1Y3Qg ITE5NwotLSAgJTQ0ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBw bHlJZlByb3BlckVuY29kaW5nSXgxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1F RUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICU0MSwgJWNsYXNzLlVuaWZvcm1Xcml0 ZXIqIGJ5dmFsIGFsaWduIDMyICUxMywgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlm b3JtIiogYnl2YWwgYWxpZ24gMSAlMTQpLCAhZGJnICExNjc0Ci0rICAlNDQgPSBjYWxsIHplcm9l eHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJeDEzVW5p Zm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4 IHNpZ25leHQgJTQxLCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1X cml0ZXIpIGFsaWduIDMyICUxMywgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3Jt IiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIikgYWxpZ24gMSAl MTQpLCAhZGJnICExNjc0Ci0gICBiciBpMSAlNDQsIGxhYmVsICU2MCwgbGFiZWwgJTQ1LCAhZGJn ICExNjc1Ci0gCi0gOyA8bGFiZWw+OjQ1OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICA7IHByZWRzID0gJTQwCi1AQCAtODk1NCw3ICs4OTU0LDcgQEAgZGVmaW5lIGludGVybmFs IHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1VuaWZv cm1Xcml0ZXIKLSAgICU0NyA9IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqICUxNSB0byBp OCosICFkYmcgITE2NzcKLSAgICU0OCA9IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqICUx IHRvIGk4KiwgIWRiZyAhMTY3NwotICAgY2FsbCB2b2lkIEBsbHZtLm1lbWNweS5wMGk4LnAwaTgu aTMyKGk4KiBhbGlnbiAzMiAlNDcsIGk4KiBhbGlnbiAzMiAlNDgsIGkzMiA2NCwgaTEgZmFsc2Up LCAhZGJnICExNjc3LCAhdGJhYS5zdHJ1Y3QgITE5NwotLSAgJTQ5ID0gY2FsbCB6ZXJvZXh0IGkx IEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSXkxM1VuaWZvcm1X cml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWdu ZXh0ICU0NiwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsIGFsaWduIDMyICUxNSwgJSJzdHJ1 Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwgYWxpZ24gMSAlMTYpLCAhZGJn ICExNjc4Ci0rICAlNDkgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFh cHBseUlmUHJvcGVyRW5jb2RpbmdJeTEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9y bUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTQ2LCAlY2xhc3MuVW5pZm9ybVdy aXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1Xcml0ZXIpIGFsaWduIDMyICUxNSwgJSJzdHJ1Y3Qu UHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpF bmNvZGluZzRVbmlmb3JtIikgYWxpZ24gMSAlMTYpLCAhZGJnICExNjc4Ci0gICBiciBpMSAlNDks IGxhYmVsICU2MCwgbGFiZWwgJTUwLCAhZGJnICExNjc5Ci0gCi0gOyA8bGFiZWw+OjUwOiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7IHByZWRzID0gJTQ1Ci1AQCAtODk2Miw3 ICs4OTYyLDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0 YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1VuaWZvcm1Xcml0ZXIKLSAgICU1MiA9IGJpdGNhc3QgJWNs YXNzLlVuaWZvcm1Xcml0ZXIqICUxNyB0byBpOCosICFkYmcgITE2ODEKLSAgICU1MyA9IGJpdGNh c3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqICUxIHRvIGk4KiwgIWRiZyAhMTY4MQotICAgY2FsbCB2 b2lkIEBsbHZtLm1lbWNweS5wMGk4LnAwaTguaTMyKGk4KiBhbGlnbiAzMiAlNTIsIGk4KiBhbGln biAzMiAlNTMsIGkzMiA2NCwgaTEgZmFsc2UpLCAhZGJnICExNjgxLCAhdGJhYS5zdHJ1Y3QgITE5 NwotLSAgJTU0ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJ ZlByb3BlckVuY29kaW5nSWQxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUVi TlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICU1MSwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIq IGJ5dmFsIGFsaWduIDMyICUxNywgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3Jt IiogYnl2YWwgYWxpZ24gMSAlMTgpLCAhZGJnICExNjgyCi0rICAlNTQgPSBjYWxsIHplcm9leHQg aTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJZDEzVW5pZm9y bVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNp Z25leHQgJTUxLCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1Xcml0 ZXIpIGFsaWduIDMyICUxNywgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiog Ynl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIikgYWxpZ24gMSAlMTgp LCAhZGJnICExNjgyCi0gICBiciBpMSAlNTQsIGxhYmVsICU2MCwgbGFiZWwgJTU1LCAhZGJnICEx NjgzCi0gCi0gOyA8bGFiZWw+OjU1OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICA7IHByZWRzID0gJTUwCi1AQCAtODk3MCw3ICs4OTcwLDcgQEAgZGVmaW5lIGludGVybmFsIHpl cm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1VuaWZvcm1X cml0ZXIKLSAgICU1NyA9IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqICUxOSB0byBpOCos ICFkYmcgITE2ODUKLSAgICU1OCA9IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqICUxIHRv IGk4KiwgIWRiZyAhMTY4NQotICAgY2FsbCB2b2lkIEBsbHZtLm1lbWNweS5wMGk4LnAwaTguaTMy KGk4KiBhbGlnbiAzMiAlNTcsIGk4KiBhbGlnbiAzMiAlNTgsIGkzMiA2NCwgaTEgZmFsc2UpLCAh ZGJnICExNjg1LCAhdGJhYS5zdHJ1Y3QgITE5NwotLSAgJTU5ID0gY2FsbCB6ZXJvZXh0IGkxIEBf Wk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSVB2MTNVbmlmb3JtV3Jp dGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4 dCAlNTYsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBhbGlnbiAzMiAlMTksICUic3RydWN0 LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsIGFsaWduIDEgJTIwKSwgIWRiZyAh MTY4NgotKyAgJTU5ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBw bHlJZlByb3BlckVuY29kaW5nSVB2MTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3Jt RUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlNTYsICVjbGFzcy5Vbmlmb3JtV3Jp dGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24gMzIgJTE5LCAlInN0cnVjdC5Q cmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVu Y29kaW5nNFVuaWZvcm0iKSBhbGlnbiAxICUyMCksICFkYmcgITE2ODYKLSAgIGJyIGxhYmVsICU2 MCwgIWRiZyAhMTY4MwotIAotIDsgPGxhYmVsPjo2MDogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgOyBwcmVkcyA9ICU1NSwgJTUwLCAlNDUsICU0MCwgJTM1LCAlMzAsICUyNSwg JTMKLUBAIC04OTc5LDcgKzg5NzksNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pO OVByaW50SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEzVW5pZm9ybVdyaXRlcgotIH0KLSAK LSA7IEZ1bmN0aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2luZAotLWRl ZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlBy b3BlckVuY29kaW5nSWIxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNf OEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwg YWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsIGFs aWduIDEpICMyNSBjb21kYXQgIWRiZyAhMTY4OCB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQg aTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJYjEzVW5pZm9y bVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNp Z25leHQsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikg YWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsKCUi c3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIpIGFsaWduIDEpICMyNSBjb21kYXQg IWRiZyAhMTY4OCB7Ci0gICAlNCA9IGFsbG9jYSBpMSwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2Eg aTgsIGFsaWduIDEKLSAgIHN0b3JlIGk4ICUwLCBpOCogJTUsIGFsaWduIDEsICF0YmFhICExOTMK LUBAIC05MDA1LDcgKzkwMDUsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVBy aW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0liMTNVbmlmbwotIH0KLSAKLSA7 IEZ1bmN0aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2luZAotLWRlZmlu ZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3Bl ckVuY29kaW5nSWkxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVu Y29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwgYWxp Z24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsIGFsaWdu IDEpICMyNSBjb21kYXQgIWRiZyAhMTY5NyB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEg QF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJaTEzVW5pZm9ybVdy aXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25l eHQsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxp Z24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsKCUic3Ry dWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIpIGFsaWduIDEpICMyNSBjb21kYXQgIWRi ZyAhMTY5NyB7Ci0gICAlNCA9IGFsbG9jYSBpMSwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2EgaTgs IGFsaWduIDEKLSAgIHN0b3JlIGk4ICUwLCBpOCogJTUsIGFsaWduIDEsICF0YmFhICExOTMKLUBA IC05MDMxLDcgKzkwMzEsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50 SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lpMTNVbmlmbwotIH0KLSAKLSA7IEZ1 bmN0aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2luZAotLWRlZmluZSBp bnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVu Y29kaW5nSWoxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29k aW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwgYWxpZ24g MzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsIGFsaWduIDEp ICMyNSBjb21kYXQgIWRiZyAhMTcwNiB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9a TjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJajEzVW5pZm9ybVdyaXRl ck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQs ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24g MzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsKCUic3RydWN0 LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIpIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAh MTcwNiB7Ci0gICAlNCA9IGFsbG9jYSBpMSwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2EgaTgsIGFs aWduIDEKLSAgIHN0b3JlIGk4ICUwLCBpOCogJTUsIGFsaWduIDEsICF0YmFhICExOTMKLUBAIC05 MDU3LDcgKzkwNTcsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5m bzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lqMTNVbmlmbwotIH0KLSAKLSA7IEZ1bmN0 aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2luZAotLWRlZmluZSBpbnRl cm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29k aW5nSWYxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5n RVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwgYWxpZ24gMzIs ICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsIGFsaWduIDEpICMy NSBjb21kYXQgIWRiZyAhMTcxNSB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQ cmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJZjEzVW5pZm9ybVdyaXRlck5T XzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVj bGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24gMzIs ICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsKCUic3RydWN0LlBy aW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIpIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMTcx NSB7Ci0gICAlNCA9IGFsbG9jYSBpMSwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2EgaTgsIGFsaWdu IDEKLSAgIHN0b3JlIGk4ICUwLCBpOCogJTUsIGFsaWduIDEsICF0YmFhICExOTMKLUBAIC05MDgz LDcgKzkwODMsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZk ZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lmMTNVbmlmbwotIH0KLSAKLSA7IEZ1bmN0aW9u IEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2luZAotLWRlZmluZSBpbnRlcm5h bCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5n SXgxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQw X1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwgYWxpZ24gMzIsICUi c3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsIGFsaWduIDEpICMyNSBj b21kYXQgIWRiZyAhMTcyNCB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmlu dEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJeDEzVW5pZm9ybVdyaXRlck5TXzE2 RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFz cy5Vbmlmb3JtV3JpdGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24gMzIsICUi c3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsKCUic3RydWN0LlByaW50 SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIpIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMTcyNCB7 Ci0gICAlNCA9IGFsbG9jYSBpMSwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2EgaTgsIGFsaWduIDEK LSAgIHN0b3JlIGk4ICUwLCBpOCogJTUsIGFsaWduIDEsICF0YmFhICExOTMKLUBAIC05MTA5LDcg KzkxMDksNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRh aWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0l4MTNVbmlmbwotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0 dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2luZAotLWRlZmluZSBpbnRlcm5hbCB6 ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSXkx M1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1Qx XyhpOCBzaWduZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwgYWxpZ24gMzIsICUic3Ry dWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsIGFsaWduIDEpICMyNSBjb21k YXQgIWRiZyAhMTczMyB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludElu Zm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJeTEzVW5pZm9ybVdyaXRlck5TXzE2RW5j b2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5V bmlmb3JtV3JpdGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24gMzIsICUic3Ry dWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5m bzo6RW5jb2Rpbmc0VW5pZm9ybSIpIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMTczMyB7Ci0g ICAlNCA9IGFsbG9jYSBpMSwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2EgaTgsIGFsaWduIDEKLSAg IHN0b3JlIGk4ICUwLCBpOCogJTUsIGFsaWduIDEsICF0YmFhICExOTMKLUBAIC05MTM1LDcgKzkx MzUsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwy MWFwcGx5SWZQcm9wZXJFbmNvZGluZ0l5MTNVbmlmbwotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJz OiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2luZAotLWRlZmluZSBpbnRlcm5hbCB6ZXJv ZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWQxM1Vu aWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhp OCBzaWduZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwgYWxpZ24gMzIsICUic3RydWN0 LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsIGFsaWduIDEpICMyNSBjb21kYXQg IWRiZyAhMTc0MiB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82 ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJZDEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rp bmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5Vbmlm b3JtV3JpdGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24gMzIsICUic3RydWN0 LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6 RW5jb2Rpbmc0VW5pZm9ybSIpIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMTc0MiB7Ci0gICAl NCA9IGFsbG9jYSBpMSwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2EgaTgsIGFsaWduIDEKLSAgIHN0 b3JlIGk4ICUwLCBpOCogJTUsIGFsaWduIDEsICF0YmFhICExOTMKLUBAIC05MTYxLDcgKzkxNjEs NyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFw cGx5SWZQcm9wZXJFbmNvZGluZ0lkMTNVbmlmbwotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBh bHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2luZAotLWRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0 IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSVB2MTNVbmlm b3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTgg c2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsIGFsaWduIDMyLCAlInN0cnVjdC5Q cmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCBhbGlnbiAxKSAjMjUgY29tZGF0ICFk YmcgITE3NTEgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRl dGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSVB2MTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGlu ZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZv cm1Xcml0ZXIqIGJ5dmFsKCVjbGFzcy5Vbmlmb3JtV3JpdGVyKSBhbGlnbiAzMiwgJSJzdHJ1Y3Qu UHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpF bmNvZGluZzRVbmlmb3JtIikgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICExNzUxIHsKLSAgICU0 ID0gYWxsb2NhIGkxLCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgc3Rv cmUgaTggJTAsIGk4KiAlNSwgYWxpZ24gMSwgIXRiYWEgITE5MwotQEAgLTk5ODQsNyArOTk4NCw3 IEBAIGRlZmluZSBpbnRlcm5hbCBpMzIgQF9aTjdkZXRhaWxzMThfY21fcHJpbnRfdHlwZV9vY2xJ UHZFRU5TXzE4U0hBREVSX1BSSU5URl9UWVBFCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IGFs d2F5c2lubGluZSBpbmxpbmVoaW50IG5vdW53aW5kCi0tZGVmaW5lIGludGVybmFsIHplcm9leHQg aTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1ZhcnlpbmdXcml0ZXJO U18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVRfVDBfKGk4IHNpZ25leHQsICVj bGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpF bmNvZGluZzRWYXJ5aW5nIiogYnl2YWwgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICEyMDU1IHsK LStkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwxNHN3aXRj aEVuY29kaW5nSTEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5j b2RpbmdFVF9UMF8oaTggc2lnbmV4dCwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsKCVjbGFz cy5WYXJ5aW5nV3JpdGVyKSBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRW YXJ5aW5nIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIikgYWxp Z24gMSkgIzI1IGNvbWRhdCAhZGJnICEyMDU1IHsKLSAgICU0ID0gYWxsb2NhIGk4LCBhbGlnbiAx Ci0gICAlNSA9IGFsbG9jYSAlY2xhc3MuVmFyeWluZ1dyaXRlciwgYWxpZ24gMzIKLSAgICU2ID0g YWxsb2NhICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIsIGFsaWduIDEKLUBA IC0xMDAwNyw3ICsxMDAwNyw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJp bnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNWYXJ5aW5nV3JpdGVyCi0gICAlMjIgPSBi aXRjYXN0ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiAlNSB0byBpOCosICFkYmcgITIwNTcKLSAgICUy MyA9IGJpdGNhc3QgJWNsYXNzLlZhcnlpbmdXcml0ZXIqICUxIHRvIGk4KiwgIWRiZyAhMjA1Nwot ICAgY2FsbCB2b2lkIEBsbHZtLm1lbWNweS5wMGk4LnAwaTguaTMyKGk4KiBhbGlnbiAzMiAlMjIs IGk4KiBhbGlnbiAzMiAlMjMsIGkzMiA2NCwgaTEgZmFsc2UpLCAhZGJnICEyMDU3LCAhdGJhYS5z dHJ1Y3QgITE5NwotLSAgJTI0ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFp bDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWIxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZh cnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICUyMSwgJWNsYXNzLlZhcnlp bmdXcml0ZXIqIGJ5dmFsIGFsaWduIDMyICU1LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5n NFZhcnlpbmciKiBieXZhbCBhbGlnbiAxICU2KSwgIWRiZyAhMjA1OAotKyAgJTI0ID0gY2FsbCB6 ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWIx M1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1Qx XyhpOCBzaWduZXh0ICUyMSwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5 aW5nV3JpdGVyKSBhbGlnbiAzMiAlNSwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5 aW5nIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIikgYWxpZ24g MSAlNiksICFkYmcgITIwNTgKLSAgIGJyIGkxICUyNCwgbGFiZWwgJTYwLCBsYWJlbCAlMjUsICFk YmcgITIwNTkKLSAKLSA7IDxsYWJlbD46MjU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDsgcHJlZHMgPSAlMwotQEAgLTEwMDE1LDcgKzEwMDE1LDcgQEAgZGVmaW5lIGludGVy bmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1Zh cnlpbmdXcml0ZXIKLSAgICUyNyA9IGJpdGNhc3QgJWNsYXNzLlZhcnlpbmdXcml0ZXIqICU3IHRv IGk4KiwgIWRiZyAhMjA2MQotICAgJTI4ID0gYml0Y2FzdCAlY2xhc3MuVmFyeWluZ1dyaXRlciog JTEgdG8gaTgqLCAhZGJnICEyMDYxCi0gICBjYWxsIHZvaWQgQGxsdm0ubWVtY3B5LnAwaTgucDBp OC5pMzIoaTgqIGFsaWduIDMyICUyNywgaTgqIGFsaWduIDMyICUyOCwgaTMyIDY0LCBpMSBmYWxz ZSksICFkYmcgITIwNjEsICF0YmFhLnN0cnVjdCAhMTk3Ci0tICAlMjkgPSBjYWxsIHplcm9leHQg aTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJaTEzVmFyeWlu Z1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNp Z25leHQgJTI2LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwgYWxpZ24gMzIgJTcsICUic3Ry dWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsIGFsaWduIDEgJTgpLCAhZGJn ICEyMDYyCi0rICAlMjkgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFh cHBseUlmUHJvcGVyRW5jb2RpbmdJaTEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWlu Z0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTI2LCAlY2xhc3MuVmFyeWluZ1dy aXRlciogYnl2YWwoJWNsYXNzLlZhcnlpbmdXcml0ZXIpIGFsaWduIDMyICU3LCAlInN0cnVjdC5Q cmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVu Y29kaW5nNFZhcnlpbmciKSBhbGlnbiAxICU4KSwgIWRiZyAhMjA2MgotICAgYnIgaTEgJTI5LCBs YWJlbCAlNjAsIGxhYmVsICUzMCwgIWRiZyAhMjA2MwotIAotIDsgPGxhYmVsPjozMDogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOyBwcmVkcyA9ICUyNQotQEAgLTEwMDIzLDcg KzEwMDIzLDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0 YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1ZhcnlpbmdXcml0ZXIKLSAgICUzMiA9IGJpdGNhc3QgJWNs YXNzLlZhcnlpbmdXcml0ZXIqICU5IHRvIGk4KiwgIWRiZyAhMjA2NQotICAgJTMzID0gYml0Y2Fz dCAlY2xhc3MuVmFyeWluZ1dyaXRlciogJTEgdG8gaTgqLCAhZGJnICEyMDY1Ci0gICBjYWxsIHZv aWQgQGxsdm0ubWVtY3B5LnAwaTgucDBpOC5pMzIoaTgqIGFsaWduIDMyICUzMiwgaTgqIGFsaWdu IDMyICUzMywgaTMyIDY0LCBpMSBmYWxzZSksICFkYmcgITIwNjUsICF0YmFhLnN0cnVjdCAhMTk3 Ci0tICAlMzQgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlm UHJvcGVyRW5jb2RpbmdJajEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJO U184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTMxLCAlY2xhc3MuVmFyeWluZ1dyaXRlciog Ynl2YWwgYWxpZ24gMzIgJTksICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIq IGJ5dmFsIGFsaWduIDEgJTEwKSwgIWRiZyAhMjA2NgotKyAgJTM0ID0gY2FsbCB6ZXJvZXh0IGkx IEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWoxM1ZhcnlpbmdX cml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWdu ZXh0ICUzMSwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5aW5nV3JpdGVy KSBhbGlnbiAzMiAlOSwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2 YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIikgYWxpZ24gMSAlMTApLCAh ZGJnICEyMDY2Ci0gICBiciBpMSAlMzQsIGxhYmVsICU2MCwgbGFiZWwgJTM1LCAhZGJnICEyMDY3 Ci0gCi0gOyA8bGFiZWw+OjM1OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7 IHByZWRzID0gJTMwCi1AQCAtMTAwMzEsNyArMTAwMzEsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVy b2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEzVmFyeWluZ1dy aXRlcgotICAgJTM3ID0gYml0Y2FzdCAlY2xhc3MuVmFyeWluZ1dyaXRlciogJTExIHRvIGk4Kiwg IWRiZyAhMjA2OQotICAgJTM4ID0gYml0Y2FzdCAlY2xhc3MuVmFyeWluZ1dyaXRlciogJTEgdG8g aTgqLCAhZGJnICEyMDY5Ci0gICBjYWxsIHZvaWQgQGxsdm0ubWVtY3B5LnAwaTgucDBpOC5pMzIo aTgqIGFsaWduIDMyICUzNywgaTgqIGFsaWduIDMyICUzOCwgaTMyIDY0LCBpMSBmYWxzZSksICFk YmcgITIwNjksICF0YmFhLnN0cnVjdCAhMTk3Ci0tICAlMzkgPSBjYWxsIHplcm9leHQgaTEgQF9a TjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJZjEzVmFyeWluZ1dyaXRl ck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQg JTM2LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwgYWxpZ24gMzIgJTExLCAlInN0cnVjdC5Q cmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCBhbGlnbiAxICUxMiksICFkYmcgITIw NzAKLSsgICUzOSA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5 SWZQcm9wZXJFbmNvZGluZ0lmMTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVF Yk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlMzYsICVjbGFzcy5WYXJ5aW5nV3JpdGVy KiBieXZhbCglY2xhc3MuVmFyeWluZ1dyaXRlcikgYWxpZ24gMzIgJTExLCAlInN0cnVjdC5Qcmlu dEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29k aW5nNFZhcnlpbmciKSBhbGlnbiAxICUxMiksICFkYmcgITIwNzAKLSAgIGJyIGkxICUzOSwgbGFi ZWwgJTYwLCBsYWJlbCAlNDAsICFkYmcgITIwNzEKLSAKLSA7IDxsYWJlbD46NDA6ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsgcHJlZHMgPSAlMzUKLUBAIC0xMDAzOSw3ICsx MDAzOSw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFp bDE0c3dpdGNoRW5jb2RpbmdJMTNWYXJ5aW5nV3JpdGVyCi0gICAlNDIgPSBiaXRjYXN0ICVjbGFz cy5WYXJ5aW5nV3JpdGVyKiAlMTMgdG8gaTgqLCAhZGJnICEyMDczCi0gICAlNDMgPSBiaXRjYXN0 ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiAlMSB0byBpOCosICFkYmcgITIwNzMKLSAgIGNhbGwgdm9p ZCBAbGx2bS5tZW1jcHkucDBpOC5wMGk4LmkzMihpOCogYWxpZ24gMzIgJTQyLCBpOCogYWxpZ24g MzIgJTQzLCBpMzIgNjQsIGkxIGZhbHNlKSwgIWRiZyAhMjA3MywgIXRiYWEuc3RydWN0ICExOTcK LS0gICU0NCA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQ cm9wZXJFbmNvZGluZ0l4MTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5T XzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlNDEsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBi eXZhbCBhbGlnbiAzMiAlMTMsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIq IGJ5dmFsIGFsaWduIDEgJTE0KSwgIWRiZyAhMjA3NAotKyAgJTQ0ID0gY2FsbCB6ZXJvZXh0IGkx IEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSXgxM1ZhcnlpbmdX cml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWdu ZXh0ICU0MSwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5aW5nV3JpdGVy KSBhbGlnbiAzMiAlMTMsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5 dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIpIGFsaWduIDEgJTE0KSwg IWRiZyAhMjA3NAotICAgYnIgaTEgJTQ0LCBsYWJlbCAlNjAsIGxhYmVsICU0NSwgIWRiZyAhMjA3 NQotIAotIDsgPGxhYmVsPjo0NTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg OyBwcmVkcyA9ICU0MAotQEAgLTEwMDQ3LDcgKzEwMDQ3LDcgQEAgZGVmaW5lIGludGVybmFsIHpl cm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1ZhcnlpbmdX cml0ZXIKLSAgICU0NyA9IGJpdGNhc3QgJWNsYXNzLlZhcnlpbmdXcml0ZXIqICUxNSB0byBpOCos ICFkYmcgITIwNzcKLSAgICU0OCA9IGJpdGNhc3QgJWNsYXNzLlZhcnlpbmdXcml0ZXIqICUxIHRv IGk4KiwgIWRiZyAhMjA3NwotICAgY2FsbCB2b2lkIEBsbHZtLm1lbWNweS5wMGk4LnAwaTguaTMy KGk4KiBhbGlnbiAzMiAlNDcsIGk4KiBhbGlnbiAzMiAlNDgsIGkzMiA2NCwgaTEgZmFsc2UpLCAh ZGJnICEyMDc3LCAhdGJhYS5zdHJ1Y3QgITE5NwotLSAgJTQ5ID0gY2FsbCB6ZXJvZXh0IGkxIEBf Wk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSXkxM1ZhcnlpbmdXcml0 ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0 ICU0NiwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsIGFsaWduIDMyICUxNSwgJSJzdHJ1Y3Qu UHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwgYWxpZ24gMSAlMTYpLCAhZGJnICEy MDc4Ci0rICAlNDkgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBs eUlmUHJvcGVyRW5jb2RpbmdJeTEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VF RWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTQ2LCAlY2xhc3MuVmFyeWluZ1dyaXRl ciogYnl2YWwoJWNsYXNzLlZhcnlpbmdXcml0ZXIpIGFsaWduIDMyICUxNSwgJSJzdHJ1Y3QuUHJp bnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNv ZGluZzRWYXJ5aW5nIikgYWxpZ24gMSAlMTYpLCAhZGJnICEyMDc4Ci0gICBiciBpMSAlNDksIGxh YmVsICU2MCwgbGFiZWwgJTUwLCAhZGJnICEyMDc5Ci0gCi0gOyA8bGFiZWw+OjUwOiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7IHByZWRzID0gJTQ1Ci1AQCAtMTAwNTUsNyAr MTAwNTUsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRh aWwxNHN3aXRjaEVuY29kaW5nSTEzVmFyeWluZ1dyaXRlcgotICAgJTUyID0gYml0Y2FzdCAlY2xh c3MuVmFyeWluZ1dyaXRlciogJTE3IHRvIGk4KiwgIWRiZyAhMjA4MQotICAgJTUzID0gYml0Y2Fz dCAlY2xhc3MuVmFyeWluZ1dyaXRlciogJTEgdG8gaTgqLCAhZGJnICEyMDgxCi0gICBjYWxsIHZv aWQgQGxsdm0ubWVtY3B5LnAwaTgucDBpOC5pMzIoaTgqIGFsaWduIDMyICU1MiwgaTgqIGFsaWdu IDMyICU1MywgaTMyIDY0LCBpMSBmYWxzZSksICFkYmcgITIwODEsICF0YmFhLnN0cnVjdCAhMTk3 Ci0tICAlNTQgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlm UHJvcGVyRW5jb2RpbmdJZDEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJO U184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTUxLCAlY2xhc3MuVmFyeWluZ1dyaXRlciog Ynl2YWwgYWxpZ24gMzIgJTE3LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmci KiBieXZhbCBhbGlnbiAxICUxOCksICFkYmcgITIwODIKLSsgICU1NCA9IGNhbGwgemVyb2V4dCBp MSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lkMTNWYXJ5aW5n V3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2ln bmV4dCAlNTEsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCglY2xhc3MuVmFyeWluZ1dyaXRl cikgYWxpZ24gMzIgJTE3LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBi eXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKSBhbGlnbiAxICUxOCks ICFkYmcgITIwODIKLSAgIGJyIGkxICU1NCwgbGFiZWwgJTYwLCBsYWJlbCAlNTUsICFkYmcgITIw ODMKLSAKLSA7IDxsYWJlbD46NTU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IDsgcHJlZHMgPSAlNTAKLUBAIC0xMDA2Myw3ICsxMDA2Myw3IEBAIGRlZmluZSBpbnRlcm5hbCB6 ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNWYXJ5aW5n V3JpdGVyCi0gICAlNTcgPSBiaXRjYXN0ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiAlMTkgdG8gaTgq LCAhZGJnICEyMDg1Ci0gICAlNTggPSBiaXRjYXN0ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiAlMSB0 byBpOCosICFkYmcgITIwODUKLSAgIGNhbGwgdm9pZCBAbGx2bS5tZW1jcHkucDBpOC5wMGk4Lmkz MihpOCogYWxpZ24gMzIgJTU3LCBpOCogYWxpZ24gMzIgJTU4LCBpMzIgNjQsIGkxIGZhbHNlKSwg IWRiZyAhMjA4NSwgIXRiYWEuc3RydWN0ICExOTcKLS0gICU1OSA9IGNhbGwgemVyb2V4dCBpMSBA X1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lQdjEzVmFyeWluZ1dy aXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25l eHQgJTU2LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwgYWxpZ24gMzIgJTE5LCAlInN0cnVj dC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCBhbGlnbiAxICUyMCksICFkYmcg ITIwODYKLSsgICU1OSA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFw cGx5SWZQcm9wZXJFbmNvZGluZ0lQdjEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWlu Z0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTU2LCAlY2xhc3MuVmFyeWluZ1dy aXRlciogYnl2YWwoJWNsYXNzLlZhcnlpbmdXcml0ZXIpIGFsaWduIDMyICUxOSwgJSJzdHJ1Y3Qu UHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpF bmNvZGluZzRWYXJ5aW5nIikgYWxpZ24gMSAlMjApLCAhZGJnICEyMDg2Ci0gICBiciBsYWJlbCAl NjAsICFkYmcgITIwODMKLSAKLSA7IDxsYWJlbD46NjA6ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDsgcHJlZHMgPSAlNTUsICU1MCwgJTQ1LCAlNDAsICUzNSwgJTMwLCAlMjUs ICUzCi1AQCAtMTAwNzIsNyArMTAwNzIsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBA X1pOOVByaW50SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEzVmFyeWluZ1dyaXRlcgotIH0K LSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2luZAot LWRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJ ZlByb3BlckVuY29kaW5nSWIxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUVi TlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2 YWwgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFs IGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMjA4OCB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9l eHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJYjEzVmFy eWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4 IHNpZ25leHQsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCglY2xhc3MuVmFyeWluZ1dyaXRl cikgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFs KCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIpIGFsaWduIDEpICMyNSBjb21k YXQgIWRiZyAhMjA4OCB7Ci0gICAlNCA9IGFsbG9jYSBpMSwgYWxpZ24gMQotICAgJTUgPSBhbGxv Y2EgaTgsIGFsaWduIDEKLSAgIHN0b3JlIGk4ICUwLCBpOCogJTUsIGFsaWduIDEsICF0YmFhICEx OTMKLUBAIC0xMDA5OCw3ICsxMDA5OCw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBf Wk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWIxM1ZhcnlpCi0gfQot IAotIDsgRnVuY3Rpb24gQXR0cnM6IGFsd2F5c2lubGluZSBpbmxpbmVoaW50IG5vdW53aW5kCi0t ZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlm UHJvcGVyRW5jb2RpbmdJaTEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJO U184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZh bCBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwg YWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICEyMDk3IHsKLStkZWZpbmUgaW50ZXJuYWwgemVyb2V4 dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lpMTNWYXJ5 aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTgg c2lnbmV4dCwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5aW5nV3JpdGVy KSBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwo JSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIikgYWxpZ24gMSkgIzI1IGNvbWRh dCAhZGJnICEyMDk3IHsKLSAgICU0ID0gYWxsb2NhIGkxLCBhbGlnbiAxCi0gICAlNSA9IGFsbG9j YSBpOCwgYWxpZ24gMQotICAgc3RvcmUgaTggJTAsIGk4KiAlNSwgYWxpZ24gMSwgIXRiYWEgITE5 MwotQEAgLTEwMTI0LDcgKzEwMTI0LDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9a TjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJaTEzVmFyeWkKLSB9Ci0g Ci0gOyBGdW5jdGlvbiBBdHRyczogYWx3YXlzaW5saW5lIGlubGluZWhpbnQgbm91bndpbmQKLS1k ZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQ cm9wZXJFbmNvZGluZ0lqMTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5T XzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFs IGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCBh bGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITIxMDYgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0 IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWoxM1Zhcnlp bmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBz aWduZXh0LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwoJWNsYXNzLlZhcnlpbmdXcml0ZXIp IGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCgl InN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKSBhbGlnbiAxKSAjMjUgY29tZGF0 ICFkYmcgITIxMDYgewotICAgJTQgPSBhbGxvY2EgaTEsIGFsaWduIDEKLSAgICU1ID0gYWxsb2Nh IGk4LCBhbGlnbiAxCi0gICBzdG9yZSBpOCAlMCwgaTgqICU1LCBhbGlnbiAxLCAhdGJhYSAhMTkz Ci1AQCAtMTAxNTAsNyArMTAxNTAsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pO OVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lqMTNWYXJ5aQotIH0KLSAK LSA7IEZ1bmN0aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2luZAotLWRl ZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlBy b3BlckVuY29kaW5nSWYxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNf OEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwg YWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsIGFs aWduIDEpICMyNSBjb21kYXQgIWRiZyAhMjExNSB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQg aTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJZjEzVmFyeWlu Z1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNp Z25leHQsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCglY2xhc3MuVmFyeWluZ1dyaXRlcikg YWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsKCUi c3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIpIGFsaWduIDEpICMyNSBjb21kYXQg IWRiZyAhMjExNSB7Ci0gICAlNCA9IGFsbG9jYSBpMSwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2Eg aTgsIGFsaWduIDEKLSAgIHN0b3JlIGk4ICUwLCBpOCogJTUsIGFsaWduIDEsICF0YmFhICExOTMK LUBAIC0xMDE3Niw3ICsxMDE3Niw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45 UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWYxM1ZhcnlpCi0gfQotIAot IDsgRnVuY3Rpb24gQXR0cnM6IGFsd2F5c2lubGluZSBpbmxpbmVoaW50IG5vdW53aW5kCi0tZGVm aW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJv cGVyRW5jb2RpbmdJeDEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184 RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCBh bGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwgYWxp Z24gMSkgIzI1IGNvbWRhdCAhZGJnICEyMTI0IHsKLStkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBp MSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0l4MTNWYXJ5aW5n V3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2ln bmV4dCwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5aW5nV3JpdGVyKSBh bGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwoJSJz dHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIikgYWxpZ24gMSkgIzI1IGNvbWRhdCAh ZGJnICEyMTI0IHsKLSAgICU0ID0gYWxsb2NhIGkxLCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSBp OCwgYWxpZ24gMQotICAgc3RvcmUgaTggJTAsIGk4KiAlNSwgYWxpZ24gMSwgIXRiYWEgITE5Mwot QEAgLTEwMjAyLDcgKzEwMjAyLDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQ cmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJeDEzVmFyeWkKLSB9Ci0gCi0g OyBGdW5jdGlvbiBBdHRyczogYWx3YXlzaW5saW5lIGlubGluZWhpbnQgbm91bndpbmQKLS1kZWZp bmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9w ZXJFbmNvZGluZ0l5MTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhF bmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsIGFs aWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCBhbGln biAxKSAjMjUgY29tZGF0ICFkYmcgITIxMzMgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkx IEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSXkxM1ZhcnlpbmdX cml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWdu ZXh0LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwoJWNsYXNzLlZhcnlpbmdXcml0ZXIpIGFs aWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCglInN0 cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKSBhbGlnbiAxKSAjMjUgY29tZGF0ICFk YmcgITIxMzMgewotICAgJTQgPSBhbGxvY2EgaTEsIGFsaWduIDEKLSAgICU1ID0gYWxsb2NhIGk4 LCBhbGlnbiAxCi0gICBzdG9yZSBpOCAlMCwgaTgqICU1LCBhbGlnbiAxLCAhdGJhYSAhMTkzCi1A QCAtMTAyMjgsNyArMTAyMjgsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVBy aW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0l5MTNWYXJ5aQotIH0KLSAKLSA7 IEZ1bmN0aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2luZAotLWRlZmlu ZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3Bl ckVuY29kaW5nSWQxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVu Y29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwgYWxp Z24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsIGFsaWdu IDEpICMyNSBjb21kYXQgIWRiZyAhMjE0MiB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEg QF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJZDEzVmFyeWluZ1dy aXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25l eHQsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCglY2xhc3MuVmFyeWluZ1dyaXRlcikgYWxp Z24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsKCUic3Ry dWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIpIGFsaWduIDEpICMyNSBjb21kYXQgIWRi ZyAhMjE0MiB7Ci0gICAlNCA9IGFsbG9jYSBpMSwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2EgaTgs IGFsaWduIDEKLSAgIHN0b3JlIGk4ICUwLCBpOCogJTUsIGFsaWduIDEsICF0YmFhICExOTMKLUBA IC0xMDI1NCw3ICsxMDI1NCw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJp bnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWQxM1ZhcnlpCi0gfQotIAotIDsg RnVuY3Rpb24gQXR0cnM6IGFsd2F5c2lubGluZSBpbmxpbmVoaW50IG5vdW53aW5kCi0tZGVmaW5l IGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVy RW5jb2RpbmdJUHYxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVu Y29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwgYWxp Z24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsIGFsaWdu IDEpICMyNSBjb21kYXQgIWRiZyAhMjE1MSB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEg QF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJUHYxM1ZhcnlpbmdX cml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWdu ZXh0LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwoJWNsYXNzLlZhcnlpbmdXcml0ZXIpIGFs aWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCglInN0 cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKSBhbGlnbiAxKSAjMjUgY29tZGF0ICFk YmcgITIxNTEgewotICAgJTQgPSBhbGxvY2EgaTEsIGFsaWduIDEKLSAgICU1ID0gYWxsb2NhIGk4 LCBhbGlnbiAxCi0gICBzdG9yZSBpOCAlMCwgaTgqICU1LCBhbGlnbiAxLCAhdGJhYSAhMTkzCi1k aWZmIC0tZ2l0IGEvYnVpbHRpbnMvYnVpbHRpbnMtY20tNjQubGwgYi9idWlsdGlucy9idWlsdGlu cy1jbS02NC5sbAotaW5kZXggMzlhMmRkOGJlLi4zNzVkMDFiZWQgMTAwNjQ0Ci0tLS0gYS9idWls dGlucy9idWlsdGlucy1jbS02NC5sbAotKysrIGIvYnVpbHRpbnMvYnVpbHRpbnMtY20tNjQubGwK LUBAIC01NTcsNyArNTU3LDcgQEAgJF9aTjEzVmFyeWluZ1dyaXRlcjEyV3JpdGVWZWNFbGVtSVB2 RUV2diA9IGNvbWRhdCBhbnkKLSBALnN0ci4xMCA9IHByaXZhdGUgdW5uYW1lZF9hZGRyIGNvbnN0 YW50IFs4IHggaThdIGMiJTAxNmxsWFwwMCIsIGFsaWduIDEKLSAKLSA7IEZ1bmN0aW9uIEF0dHJz OiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgc2lnbmV4dCBpOCBAX1oyNF9f Y21faW50cmluc2ljX2ltcGxfc2RpdmNjKGk4IHNpZ25leHQsIGk4IHNpZ25leHQpICMwIHsKLStk ZWZpbmUgaW50ZXJuYWwgc2lnbmV4dCBpOCBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdmNj KGk4IHNpZ25leHQsIGk4IHNpZ25leHQpICMwIHsKLSAgICUzID0gYWxsb2NhIGk4LCBhbGlnbiAx Ci0gICAlNCA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2EgPDEgeCBpOD4sIGFs aWduIDEKLUBAIC02MTgsNyArNjE4LDcgQEAgZGVmaW5lIGludGVybmFsIDwxIHggaTg+IEBfWk43 ZGV0YWlsczEzX19pbXBsX2RpdnJlbUlMaTFFRUV1MkNNdmJUX19jUzFfUzFfdTJDTXYKLSBkZWNs YXJlIDwxIHggaTg+IEBsbHZtLmdlbngucmRyZWdpb25pLnYxaTgudjFpOC5pMTYoPDEgeCBpOD4s IGkzMiwgaTMyLCBpMzIsIGkxNiwgaTMyKSAjMgotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5s aW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MSB4IGk4PiBAX1oyNF9fY21faW50cmlu c2ljX2ltcGxfc2RpdnUyQ012YjFfY1NfKDwxIHggaTg+LCA8MSB4IGk4PikgIzAgewotK2RlZmlu ZSBpbnRlcm5hbCA8MSB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjFf Y1NfKDwxIHggaTg+LCA8MSB4IGk4PikgIzAgewotICAgJTMgPSBhbGxvY2EgPDEgeCBpOD4sIGFs aWduIDEKLSAgICU0ID0gYWxsb2NhIDwxIHggaTg+LCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSA8 MSB4IGk4PiwgYWxpZ24gMQotQEAgLTYzNCw3ICs2MzQsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwx IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZiMV9jU18oPDEgeCBpOD4s IDwxCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5l IGRzb19sb2NhbCA8MiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjJf Y1NfKDwyIHggaTg+LCA8MiB4IGk4PikgIzMgewotK2RlZmluZSBpbnRlcm5hbCA8MiB4IGk4PiBA X1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjJfY1NfKDwyIHggaTg+LCA8MiB4IGk4 PikgIzMgewotICAgJTMgPSBhbGxvY2EgPDIgeCBpOD4sIGFsaWduIDIKLSAgICU0ID0gYWxsb2Nh IDwyIHggaTg+LCBhbGlnbiAyCi0gICAlNSA9IGFsbG9jYSA8MiB4IGk4PiwgYWxpZ24gMgotQEAg LTY4MCw3ICs2ODAsNyBAQCBkZWZpbmUgaW50ZXJuYWwgPDIgeCBpOD4gQF9aTjdkZXRhaWxzMTNf X2ltcGxfZGl2cmVtSUxpMkVFRXUyQ012YlRfX2NTMV9TMV91MkNNdgotIH0KLSAKLSA7IEZ1bmN0 aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDQgeCBpOD4g QF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmI0X2NTXyg8NCB4IGk4PiwgPDQgeCBp OD4pICM1IHsKLStkZWZpbmUgaW50ZXJuYWwgPDQgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19p bXBsX3NkaXZ1MkNNdmI0X2NTXyg8NCB4IGk4PiwgPDQgeCBpOD4pICM1IHsKLSAgICUzID0gYWxs b2NhIDw0IHggaTg+LCBhbGlnbiA0Ci0gICAlNCA9IGFsbG9jYSA8NCB4IGk4PiwgYWxpZ24gNAot ICAgJTUgPSBhbGxvY2EgPDQgeCBpOD4sIGFsaWduIDQKLUBAIC04MTgsNyArODE4LDcgQEAgZGVm aW5lIGludGVybmFsIDwxNiB4IGk4PiBAX1pON2RldGFpbHMxM19faW1wbF9kaXZyZW1JTGkxNkVF RXUyQ012YlRfX2NTMV9TMV91MkMKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUg bm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwzMiB4IGk4PiBAX1oyNF9fY21faW50cmluc2lj X2ltcGxfc2RpdnUyQ012YjMyX2NTXyg8MzIgeCBpOD4sIDwzMiB4IGk4PikgIzExIHsKLStkZWZp bmUgaW50ZXJuYWwgPDMyIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZi MzJfY1NfKDwzMiB4IGk4PiwgPDMyIHggaTg+KSAjMTEgewotICAgJTMgPSBhbGxvY2EgPDMyIHgg aTg+LCBhbGlnbiAzMgotICAgJTQgPSBhbGxvY2EgPDMyIHggaTg+LCBhbGlnbiAzMgotICAgJTUg PSBhbGxvY2EgPDMyIHggaTg+LCBhbGlnbiAzMgotQEAgLTg2NCw3ICs4NjQsNyBAQCBkZWZpbmUg aW50ZXJuYWwgPDMyIHggaTg+IEBfWk43ZGV0YWlsczEzX19pbXBsX2RpdnJlbUlMaTMyRUVFdTJD TXZiVF9fY1MxX1MxX3UyQwotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vu d2luZAotLWRlZmluZSBkc29fbG9jYWwgc2lnbmV4dCBpOCBAX1oyNF9fY21faW50cmluc2ljX2lt cGxfc3JlbWNjKGk4IHNpZ25leHQsIGk4IHNpZ25leHQpICMwIHsKLStkZWZpbmUgaW50ZXJuYWwg c2lnbmV4dCBpOCBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbWNjKGk4IHNpZ25leHQsIGk4 IHNpZ25leHQpICMwIHsKLSAgICUzID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0gICAlNCA9IGFsbG9j YSBpOCwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2EgPDEgeCBpOD4sIGFsaWduIDEKLUBAIC04OTAs NyArODkwLDcgQEAgZGVmaW5lIGRzb19sb2NhbCBzaWduZXh0IGk4IEBfWjI0X19jbV9pbnRyaW5z aWNfaW1wbF9zcmVtY2MoaTggc2lnbmV4dCwgaTggc2lnbmUKLSB9Ci0gCi0gOyBGdW5jdGlvbiBB dHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwxIHggaTg+IEBfWjI0 X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMV9jU18oPDEgeCBpOD4sIDwxIHggaTg+KSAj MCB7Ci0rZGVmaW5lIGludGVybmFsIDwxIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9z cmVtdTJDTXZiMV9jU18oPDEgeCBpOD4sIDwxIHggaTg+KSAjMCB7Ci0gICAlMyA9IGFsbG9jYSA8 MSB4IGk4PiwgYWxpZ24gMQotICAgJTQgPSBhbGxvY2EgPDEgeCBpOD4sIGFsaWduIDEKLSAgICU1 ID0gYWxsb2NhIDwxIHggaTg+LCBhbGlnbiAxCi1AQCAtOTA0LDcgKzkwNCw3IEBAIGRlZmluZSBk c29fbG9jYWwgPDEgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIxX2NT Xyg8MSB4IGk4PiwgPDEKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndp bmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwyIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9z cmVtdTJDTXZiMl9jU18oPDIgeCBpOD4sIDwyIHggaTg+KSAjMyB7Ci0rZGVmaW5lIGludGVybmFs IDwyIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMl9jU18oPDIgeCBp OD4sIDwyIHggaTg+KSAjMyB7Ci0gICAlMyA9IGFsbG9jYSA8MiB4IGk4PiwgYWxpZ24gMgotICAg JTQgPSBhbGxvY2EgPDIgeCBpOD4sIGFsaWduIDIKLSAgICU1ID0gYWxsb2NhIDwyIHggaTg+LCBh bGlnbiAyCi1AQCAtOTE4LDcgKzkxOCw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDIgeCBpOD4gQF9a MjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIyX2NTXyg8MiB4IGk4PiwgPDIKLSB9Ci0g Ci0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2Fs IDw0IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiNF9jU18oPDQgeCBp OD4sIDw0IHggaTg+KSAjNSB7Ci0rZGVmaW5lIGludGVybmFsIDw0IHggaTg+IEBfWjI0X19jbV9p bnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiNF9jU18oPDQgeCBpOD4sIDw0IHggaTg+KSAjNSB7Ci0g ICAlMyA9IGFsbG9jYSA8NCB4IGk4PiwgYWxpZ24gNAotICAgJTQgPSBhbGxvY2EgPDQgeCBpOD4s IGFsaWduIDQKLSAgICU1ID0gYWxsb2NhIDw0IHggaTg+LCBhbGlnbiA0Ci1AQCAtOTMyLDcgKzkz Miw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDQgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBs X3NyZW11MkNNdmI0X2NTXyg8NCB4IGk4PiwgPDQKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczog bm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDw4IHggaTg+IEBfWjI0X19jbV9p bnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiOF9jU18oPDggeCBpOD4sIDw4IHggaTg+KSAjNyB7Ci0r ZGVmaW5lIGludGVybmFsIDw4IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJD TXZiOF9jU18oPDggeCBpOD4sIDw4IHggaTg+KSAjNyB7Ci0gICAlMyA9IGFsbG9jYSA8OCB4IGk4 PiwgYWxpZ24gOAotICAgJTQgPSBhbGxvY2EgPDggeCBpOD4sIGFsaWduIDgKLSAgICU1ID0gYWxs b2NhIDw4IHggaTg+LCBhbGlnbiA4Ci1AQCAtOTQ2LDcgKzk0Niw3IEBAIGRlZmluZSBkc29fbG9j YWwgPDggeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmI4X2NTXyg8OCB4 IGk4PiwgPDgKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1k ZWZpbmUgZHNvX2xvY2FsIDwxNiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUy Q012YjE2X2NTXyg8MTYgeCBpOD4sIDwxNiB4IGk4PikgIzkgewotK2RlZmluZSBpbnRlcm5hbCA8 MTYgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIxNl9jU18oPDE2IHgg aTg+LCA8MTYgeCBpOD4pICM5IHsKLSAgICUzID0gYWxsb2NhIDwxNiB4IGk4PiwgYWxpZ24gMTYK LSAgICU0ID0gYWxsb2NhIDwxNiB4IGk4PiwgYWxpZ24gMTYKLSAgICU1ID0gYWxsb2NhIDwxNiB4 IGk4PiwgYWxpZ24gMTYKLUBAIC05NjAsNyArOTYwLDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MTYg eCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIxNl9jU18oPDE2IHggaTg+ LAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBk c29fbG9jYWwgPDMyIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMzJf Y1NfKDwzMiB4IGk4PiwgPDMyIHggaTg+KSAjMTEgewotK2RlZmluZSBpbnRlcm5hbCA8MzIgeCBp OD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIzMl9jU18oPDMyIHggaTg+LCA8 MzIgeCBpOD4pICMxMSB7Ci0gICAlMyA9IGFsbG9jYSA8MzIgeCBpOD4sIGFsaWduIDMyCi0gICAl NCA9IGFsbG9jYSA8MzIgeCBpOD4sIGFsaWduIDMyCi0gICAlNSA9IGFsbG9jYSA8MzIgeCBpOD4s IGFsaWduIDMyCi1AQCAtOTc0LDcgKzk3NCw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDMyIHggaTg+ IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMzJfY1NfKDwzMiB4IGk4PiwKLSB9 Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xv Y2FsIHNpZ25leHQgaTE2IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2c3MoaTE2IHNpZ25l eHQsIGkxNiBzaWduZXh0KSAjMyB7Ci0rZGVmaW5lIGludGVybmFsIHNpZ25leHQgaTE2IEBfWjI0 X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2c3MoaTE2IHNpZ25leHQsIGkxNiBzaWduZXh0KSAjMyB7 Ci0gICAlMyA9IGFsbG9jYSBpMTYsIGFsaWduIDIKLSAgICU0ID0gYWxsb2NhIGkxNiwgYWxpZ24g MgotICAgJTUgPSBhbGxvY2EgPDEgeCBpMTY+LCBhbGlnbiAyCi1AQCAtMTA1OCw3ICsxMDU4LDcg QEAgZGVmaW5lIGludGVybmFsIDwxIHggaTE2PiBAX1pON2RldGFpbHMxM19faW1wbF9kaXZyZW1J TGkxRUVFdTJDTXZiVF9fc1MxX1MxX3UyQ00KLSBkZWNsYXJlIDwxIHggaTE2PiBAbGx2bS5nZW54 LnJkcmVnaW9uaS52MWkxNi52MWkxNi5pMTYoPDEgeCBpMTY+LCBpMzIsIGkzMiwgaTMyLCBpMTYs IGkzMikgIzIKLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmlu ZSBkc29fbG9jYWwgPDEgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZi MV9zU18oPDEgeCBpMTY+LCA8MSB4IGkxNj4pICMzIHsKLStkZWZpbmUgaW50ZXJuYWwgPDEgeCBp MTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZiMV9zU18oPDEgeCBpMTY+LCA8 MSB4IGkxNj4pICMzIHsKLSAgICUzID0gYWxsb2NhIDwxIHggaTE2PiwgYWxpZ24gMgotICAgJTQg PSBhbGxvY2EgPDEgeCBpMTY+LCBhbGlnbiAyCi0gICAlNSA9IGFsbG9jYSA8MSB4IGkxNj4sIGFs aWduIDIKLUBAIC0xMDc0LDcgKzEwNzQsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwxIHggaTE2PiBA X1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjFfc1NfKDwxIHggaTE2PiwgPAotIH0K LSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9j YWwgPDIgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZiMl9zU18oPDIg eCBpMTY+LCA8MiB4IGkxNj4pICM1IHsKLStkZWZpbmUgaW50ZXJuYWwgPDIgeCBpMTY+IEBfWjI0 X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZiMl9zU18oPDIgeCBpMTY+LCA8MiB4IGkxNj4p ICM1IHsKLSAgICUzID0gYWxsb2NhIDwyIHggaTE2PiwgYWxpZ24gNAotICAgJTQgPSBhbGxvY2Eg PDIgeCBpMTY+LCBhbGlnbiA0Ci0gICAlNSA9IGFsbG9jYSA8MiB4IGkxNj4sIGFsaWduIDQKLUBA IC0xMTQzLDcgKzExNDMsNyBAQCBkZWZpbmUgaW50ZXJuYWwgPDIgeCBpMTY+IEBfWk43ZGV0YWls czEzX19pbXBsX2RpdnJlbUlMaTJFRUV1MkNNdmJUX19zUzFfUzFfdTJDTQotIH0KLSAKLSA7IEZ1 bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDQgeCBp MTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZiNF9zU18oPDQgeCBpMTY+LCA8 NCB4IGkxNj4pICM3IHsKLStkZWZpbmUgaW50ZXJuYWwgPDQgeCBpMTY+IEBfWjI0X19jbV9pbnRy aW5zaWNfaW1wbF9zZGl2dTJDTXZiNF9zU18oPDQgeCBpMTY+LCA8NCB4IGkxNj4pICM3IHsKLSAg ICUzID0gYWxsb2NhIDw0IHggaTE2PiwgYWxpZ24gOAotICAgJTQgPSBhbGxvY2EgPDQgeCBpMTY+ LCBhbGlnbiA4Ci0gICAlNSA9IGFsbG9jYSA8NCB4IGkxNj4sIGFsaWduIDgKLUBAIC0xMzUwLDcg KzEzNTAsNyBAQCBkZWZpbmUgaW50ZXJuYWwgPDE2IHggaTE2PiBAX1pON2RldGFpbHMxM19faW1w bF9kaXZyZW1JTGkxNkVFRXUyQ012YlRfX3NTMV9TMV91MgotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0 dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDMyIHggaTE2PiBAX1oy NF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjMyX3NTXyg8MzIgeCBpMTY+LCA8MzIgeCBp MTY+KSAjMTMgewotK2RlZmluZSBpbnRlcm5hbCA8MzIgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5z aWNfaW1wbF9zZGl2dTJDTXZiMzJfc1NfKDwzMiB4IGkxNj4sIDwzMiB4IGkxNj4pICMxMyB7Ci0g ICAlMyA9IGFsbG9jYSA8MzIgeCBpMTY+LCBhbGlnbiA2NAotICAgJTQgPSBhbGxvY2EgPDMyIHgg aTE2PiwgYWxpZ24gNjQKLSAgICU1ID0gYWxsb2NhIDwzMiB4IGkxNj4sIGFsaWduIDY0Ci1AQCAt MTQxOSw3ICsxNDE5LDcgQEAgZGVmaW5lIGludGVybmFsIDwzMiB4IGkxNj4gQF9aTjdkZXRhaWxz MTNfX2ltcGxfZGl2cmVtSUxpMzJFRUV1MkNNdmJUX19zUzFfUzFfdTIKLSB9Ci0gCi0gOyBGdW5j dGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIHNpZ25leHQg aTE2IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtc3MoaTE2IHNpZ25leHQsIGkxNiBzaWdu ZXh0KSAjMyB7Ci0rZGVmaW5lIGludGVybmFsIHNpZ25leHQgaTE2IEBfWjI0X19jbV9pbnRyaW5z aWNfaW1wbF9zcmVtc3MoaTE2IHNpZ25leHQsIGkxNiBzaWduZXh0KSAjMyB7Ci0gICAlMyA9IGFs bG9jYSBpMTYsIGFsaWduIDIKLSAgICU0ID0gYWxsb2NhIGkxNiwgYWxpZ24gMgotICAgJTUgPSBh bGxvY2EgPDEgeCBpMTY+LCBhbGlnbiAyCi1AQCAtMTQ0NSw3ICsxNDQ1LDcgQEAgZGVmaW5lIGRz b19sb2NhbCBzaWduZXh0IGkxNiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXNzKGkxNiBz aWduZXh0LCBpMTYgc2kKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndp bmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwxIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxf c3JlbXUyQ012YjFfc1NfKDwxIHggaTE2PiwgPDEgeCBpMTY+KSAjMyB7Ci0rZGVmaW5lIGludGVy bmFsIDwxIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjFfc1NfKDwx IHggaTE2PiwgPDEgeCBpMTY+KSAjMyB7Ci0gICAlMyA9IGFsbG9jYSA8MSB4IGkxNj4sIGFsaWdu IDIKLSAgICU0ID0gYWxsb2NhIDwxIHggaTE2PiwgYWxpZ24gMgotICAgJTUgPSBhbGxvY2EgPDEg eCBpMTY+LCBhbGlnbiAyCi1AQCAtMTQ1OSw3ICsxNDU5LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8 MSB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIxX3NTXyg8MSB4IGkx Nj4sIDwKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZp bmUgZHNvX2xvY2FsIDwyIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012 YjJfc1NfKDwyIHggaTE2PiwgPDIgeCBpMTY+KSAjNSB7Ci0rZGVmaW5lIGludGVybmFsIDwyIHgg aTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjJfc1NfKDwyIHggaTE2Piwg PDIgeCBpMTY+KSAjNSB7Ci0gICAlMyA9IGFsbG9jYSA8MiB4IGkxNj4sIGFsaWduIDQKLSAgICU0 ID0gYWxsb2NhIDwyIHggaTE2PiwgYWxpZ24gNAotICAgJTUgPSBhbGxvY2EgPDIgeCBpMTY+LCBh bGlnbiA0Ci1AQCAtMTQ3Myw3ICsxNDczLDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MiB4IGkxNj4g QF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIyX3NTXyg8MiB4IGkxNj4sIDwKLSB9 Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xv Y2FsIDw0IHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjRfc1NfKDw0 IHggaTE2PiwgPDQgeCBpMTY+KSAjNyB7Ci0rZGVmaW5lIGludGVybmFsIDw0IHggaTE2PiBAX1oy NF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjRfc1NfKDw0IHggaTE2PiwgPDQgeCBpMTY+ KSAjNyB7Ci0gICAlMyA9IGFsbG9jYSA8NCB4IGkxNj4sIGFsaWduIDgKLSAgICU0ID0gYWxsb2Nh IDw0IHggaTE2PiwgYWxpZ24gOAotICAgJTUgPSBhbGxvY2EgPDQgeCBpMTY+LCBhbGlnbiA4Ci1A QCAtMTQ4Nyw3ICsxNDg3LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8NCB4IGkxNj4gQF9aMjRfX2Nt X2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmI0X3NTXyg8NCB4IGkxNj4sIDwKLSB9Ci0gCi0gOyBG dW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDw4IHgg aTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012Yjhfc1NfKDw4IHggaTE2Piwg PDggeCBpMTY+KSAjOSB7Ci0rZGVmaW5lIGludGVybmFsIDw4IHggaTE2PiBAX1oyNF9fY21faW50 cmluc2ljX2ltcGxfc3JlbXUyQ012Yjhfc1NfKDw4IHggaTE2PiwgPDggeCBpMTY+KSAjOSB7Ci0g ICAlMyA9IGFsbG9jYSA8OCB4IGkxNj4sIGFsaWduIDE2Ci0gICAlNCA9IGFsbG9jYSA8OCB4IGkx Nj4sIGFsaWduIDE2Ci0gICAlNSA9IGFsbG9jYSA8OCB4IGkxNj4sIGFsaWduIDE2Ci1AQCAtMTUw MSw3ICsxNTAxLDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8OCB4IGkxNj4gQF9aMjRfX2NtX2ludHJp bnNpY19pbXBsX3NyZW11MkNNdmI4X3NTXyg8OCB4IGkxNj4sIDwKLSB9Ci0gCi0gOyBGdW5jdGlv biBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwxNiB4IGkxNj4g QF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIxNl9zU18oPDE2IHggaTE2PiwgPDE2 IHggaTE2PikgIzExIHsKLStkZWZpbmUgaW50ZXJuYWwgPDE2IHggaTE2PiBAX1oyNF9fY21faW50 cmluc2ljX2ltcGxfc3JlbXUyQ012YjE2X3NTXyg8MTYgeCBpMTY+LCA8MTYgeCBpMTY+KSAjMTEg ewotICAgJTMgPSBhbGxvY2EgPDE2IHggaTE2PiwgYWxpZ24gMzIKLSAgICU0ID0gYWxsb2NhIDwx NiB4IGkxNj4sIGFsaWduIDMyCi0gICAlNSA9IGFsbG9jYSA8MTYgeCBpMTY+LCBhbGlnbiAzMgot QEAgLTE1MTUsNyArMTUxNSw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDE2IHggaTE2PiBAX1oyNF9f Y21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjE2X3NTXyg8MTYgeCBpMTY+Ci0gfQotIAotIDsg RnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MzIg eCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMzJfc1NfKDwzMiB4IGkx Nj4sIDwzMiB4IGkxNj4pICMxMyB7Ci0rZGVmaW5lIGludGVybmFsIDwzMiB4IGkxNj4gQF9aMjRf X2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIzMl9zU18oPDMyIHggaTE2PiwgPDMyIHggaTE2 PikgIzEzIHsKLSAgICUzID0gYWxsb2NhIDwzMiB4IGkxNj4sIGFsaWduIDY0Ci0gICAlNCA9IGFs bG9jYSA8MzIgeCBpMTY+LCBhbGlnbiA2NAotICAgJTUgPSBhbGxvY2EgPDMyIHggaTE2PiwgYWxp Z24gNjQKLUBAIC0xNTI5LDcgKzE1MjksNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwzMiB4IGkxNj4g QF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIzMl9zU18oPDMyIHggaTE2PgotIH0K LSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9j YWwgaTMyIEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2aWkoaTMyLCBpMzIpICMxNCB7Ci0r ZGVmaW5lIGludGVybmFsIGkzMiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdmlpKGkzMiwg aTMyKSAjMTQgewotICAgJTMgPSBhbGxvY2EgaTMyLCBhbGlnbiA0Ci0gICAlNCA9IGFsbG9jYSBp MzIsIGFsaWduIDQKLSAgICU1ID0gYWxsb2NhIDwxIHggaTMyPiwgYWxpZ24gNAotQEAgLTE3MzAs NyArMTczMCw3IEBAIGRlZmluZSBpbnRlcm5hbCA8MSB4IGkzMj4gQF9aTjdkZXRhaWxzMTNfX2lt cGxfZGl2cmVtSUxpMUVFRXUyQ012YlRfX2lTMV9TMV91MkNNCi0gZGVjbGFyZSA8MSB4IGkzMj4g QGxsdm0uZ2VueC5yZHJlZ2lvbmkudjFpMzIudjFpMzIuaTE2KDwxIHggaTMyPiwgaTMyLCBpMzIs IGkzMiwgaTE2LCBpMzIpICMyCi0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndp bmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwxIHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxf c2RpdnUyQ012YjFfaVNfKDwxIHggaTMyPiwgPDEgeCBpMzI+KSAjMTQgewotK2RlZmluZSBpbnRl cm5hbCA8MSB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmIxX2lTXyg8 MSB4IGkzMj4sIDwxIHggaTMyPikgIzE0IHsKLSAgICUzID0gYWxsb2NhIDwxIHggaTMyPiwgYWxp Z24gNAotICAgJTQgPSBhbGxvY2EgPDEgeCBpMzI+LCBhbGlnbiA0Ci0gICAlNSA9IGFsbG9jYSA8 MSB4IGkzMj4sIGFsaWduIDQKLUBAIC0xNzQ2LDcgKzE3NDYsNyBAQCBkZWZpbmUgZHNvX2xvY2Fs IDwxIHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjFfaVNfKDwxIHgg aTMyPiwgPAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRl ZmluZSBkc29fbG9jYWwgPDIgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJD TXZiMl9pU18oPDIgeCBpMzI+LCA8MiB4IGkzMj4pICMxNSB7Ci0rZGVmaW5lIGludGVybmFsIDwy IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjJfaVNfKDwyIHggaTMy PiwgPDIgeCBpMzI+KSAjMTUgewotICAgJTMgPSBhbGxvY2EgPDIgeCBpMzI+LCBhbGlnbiA4Ci0g ICAlNCA9IGFsbG9jYSA8MiB4IGkzMj4sIGFsaWduIDgKLSAgICU1ID0gYWxsb2NhIDwyIHggaTMy PiwgYWxpZ24gOAotQEAgLTE5MzIsNyArMTkzMiw3IEBAIGRlZmluZSBpbnRlcm5hbCA8MiB4IGkz Mj4gQF9aTjdkZXRhaWxzMTNfX2ltcGxfZGl2cmVtSUxpMkVFRXUyQ012YlRfX2lTMV9TMV91MkNN Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRz b19sb2NhbCA8NCB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmI0X2lT Xyg8NCB4IGkzMj4sIDw0IHggaTMyPikgIzE2IHsKLStkZWZpbmUgaW50ZXJuYWwgPDQgeCBpMzI+ IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZiNF9pU18oPDQgeCBpMzI+LCA8NCB4 IGkzMj4pICMxNiB7Ci0gICAlMyA9IGFsbG9jYSA8NCB4IGkzMj4sIGFsaWduIDE2Ci0gICAlNCA9 IGFsbG9jYSA8NCB4IGkzMj4sIGFsaWduIDE2Ci0gICAlNSA9IGFsbG9jYSA8NCB4IGkzMj4sIGFs aWduIDE2Ci1AQCAtMjQ5MCw3ICsyNDkwLDcgQEAgZGVmaW5lIGludGVybmFsIDwxNiB4IGkzMj4g QF9aTjdkZXRhaWxzMTNfX2ltcGxfZGl2cmVtSUxpMTZFRUV1MkNNdmJUX19pUzFfUzFfdTIKLSB9 Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xv Y2FsIDwzMiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmIzMl9pU18o PDMyIHggaTMyPiwgPDMyIHggaTMyPikgIzE5IHsKLStkZWZpbmUgaW50ZXJuYWwgPDMyIHggaTMy PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjMyX2lTXyg8MzIgeCBpMzI+LCA8 MzIgeCBpMzI+KSAjMTkgewotICAgJTMgPSBhbGxvY2EgPDMyIHggaTMyPiwgYWxpZ24gMTI4Ci0g ICAlNCA9IGFsbG9jYSA8MzIgeCBpMzI+LCBhbGlnbiAxMjgKLSAgICU1ID0gYWxsb2NhIDwzMiB4 IGkzMj4sIGFsaWduIDEyOAotQEAgLTI2NzYsNyArMjY3Niw3IEBAIGRlZmluZSBpbnRlcm5hbCA8 MzIgeCBpMzI+IEBfWk43ZGV0YWlsczEzX19pbXBsX2RpdnJlbUlMaTMyRUVFdTJDTXZiVF9faVMx X1MxX3UyCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVm aW5lIGRzb19sb2NhbCBpMzIgQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW1paShpMzIsIGkz MikgIzE0IHsKLStkZWZpbmUgaW50ZXJuYWwgaTMyIEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9z cmVtaWkoaTMyLCBpMzIpICMxNCB7Ci0gICAlMyA9IGFsbG9jYSBpMzIsIGFsaWduIDQKLSAgICU0 ID0gYWxsb2NhIGkzMiwgYWxpZ24gNAotICAgJTUgPSBhbGxvY2EgPDEgeCBpMzI+LCBhbGlnbiA0 Ci1AQCAtMjcwMiw3ICsyNzAyLDcgQEAgZGVmaW5lIGRzb19sb2NhbCBpMzIgQF9aMjRfX2NtX2lu dHJpbnNpY19pbXBsX3NyZW1paShpMzIsIGkzMikgIzE0IHsKLSB9Ci0gCi0gOyBGdW5jdGlvbiBB dHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwxIHggaTMyPiBAX1oy NF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjFfaVNfKDwxIHggaTMyPiwgPDEgeCBpMzI+ KSAjMTQgewotK2RlZmluZSBpbnRlcm5hbCA8MSB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19p bXBsX3NyZW11MkNNdmIxX2lTXyg8MSB4IGkzMj4sIDwxIHggaTMyPikgIzE0IHsKLSAgICUzID0g YWxsb2NhIDwxIHggaTMyPiwgYWxpZ24gNAotICAgJTQgPSBhbGxvY2EgPDEgeCBpMzI+LCBhbGln biA0Ci0gICAlNSA9IGFsbG9jYSA8MSB4IGkzMj4sIGFsaWduIDQKLUBAIC0yNzE2LDcgKzI3MTYs NyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwxIHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxf c3JlbXUyQ012YjFfaVNfKDwxIHggaTMyPiwgPAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBu b2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDIgeCBpMzI+IEBfWjI0X19jbV9p bnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMl9pU18oPDIgeCBpMzI+LCA8MiB4IGkzMj4pICMxNSB7 Ci0rZGVmaW5lIGludGVybmFsIDwyIHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3Jl bXUyQ012YjJfaVNfKDwyIHggaTMyPiwgPDIgeCBpMzI+KSAjMTUgewotICAgJTMgPSBhbGxvY2Eg PDIgeCBpMzI+LCBhbGlnbiA4Ci0gICAlNCA9IGFsbG9jYSA8MiB4IGkzMj4sIGFsaWduIDgKLSAg ICU1ID0gYWxsb2NhIDwyIHggaTMyPiwgYWxpZ24gOAotQEAgLTI3MzAsNyArMjczMCw3IEBAIGRl ZmluZSBkc29fbG9jYWwgPDIgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJD TXZiMl9pU18oPDIgeCBpMzI+LCA8Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5l IG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8NCB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNp Y19pbXBsX3NyZW11MkNNdmI0X2lTXyg8NCB4IGkzMj4sIDw0IHggaTMyPikgIzE2IHsKLStkZWZp bmUgaW50ZXJuYWwgPDQgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZi NF9pU18oPDQgeCBpMzI+LCA8NCB4IGkzMj4pICMxNiB7Ci0gICAlMyA9IGFsbG9jYSA8NCB4IGkz Mj4sIGFsaWduIDE2Ci0gICAlNCA9IGFsbG9jYSA8NCB4IGkzMj4sIGFsaWduIDE2Ci0gICAlNSA9 IGFsbG9jYSA8NCB4IGkzMj4sIGFsaWduIDE2Ci1AQCAtMjc0NCw3ICsyNzQ0LDcgQEAgZGVmaW5l IGRzb19sb2NhbCA8NCB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmI0 X2lTXyg8NCB4IGkzMj4sIDwKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91 bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDw4IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2lt cGxfc3JlbXUyQ012YjhfaVNfKDw4IHggaTMyPiwgPDggeCBpMzI+KSAjMTcgewotK2RlZmluZSBp bnRlcm5hbCA8OCB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmI4X2lT Xyg8OCB4IGkzMj4sIDw4IHggaTMyPikgIzE3IHsKLSAgICUzID0gYWxsb2NhIDw4IHggaTMyPiwg YWxpZ24gMzIKLSAgICU0ID0gYWxsb2NhIDw4IHggaTMyPiwgYWxpZ24gMzIKLSAgICU1ID0gYWxs b2NhIDw4IHggaTMyPiwgYWxpZ24gMzIKLUBAIC0yNzU4LDcgKzI3NTgsNyBAQCBkZWZpbmUgZHNv X2xvY2FsIDw4IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjhfaVNf KDw4IHggaTMyPiwgPAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2lu ZAotLWRlZmluZSBkc29fbG9jYWwgPDE2IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxf c3JlbXUyQ012YjE2X2lTXyg8MTYgeCBpMzI+LCA8MTYgeCBpMzI+KSAjMTggewotK2RlZmluZSBp bnRlcm5hbCA8MTYgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMTZf aVNfKDwxNiB4IGkzMj4sIDwxNiB4IGkzMj4pICMxOCB7Ci0gICAlMyA9IGFsbG9jYSA8MTYgeCBp MzI+LCBhbGlnbiA2NAotICAgJTQgPSBhbGxvY2EgPDE2IHggaTMyPiwgYWxpZ24gNjQKLSAgICU1 ID0gYWxsb2NhIDwxNiB4IGkzMj4sIGFsaWduIDY0Ci1AQCAtMjc3Miw3ICsyNzcyLDcgQEAgZGVm aW5lIGRzb19sb2NhbCA8MTYgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJD TXZiMTZfaVNfKDwxNiB4IGkzMj4KLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUg bm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwzMiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNp Y19pbXBsX3NyZW11MkNNdmIzMl9pU18oPDMyIHggaTMyPiwgPDMyIHggaTMyPikgIzE5IHsKLStk ZWZpbmUgaW50ZXJuYWwgPDMyIHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUy Q012YjMyX2lTXyg8MzIgeCBpMzI+LCA8MzIgeCBpMzI+KSAjMTkgewotICAgJTMgPSBhbGxvY2Eg PDMyIHggaTMyPiwgYWxpZ24gMTI4Ci0gICAlNCA9IGFsbG9jYSA8MzIgeCBpMzI+LCBhbGlnbiAx MjgKLSAgICU1ID0gYWxsb2NhIDwzMiB4IGkzMj4sIGFsaWduIDEyOAotQEAgLTI3ODYsNyArMjc4 Niw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDMyIHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2lt cGxfc3JlbXUyQ012YjMyX2lTXyg8MzIgeCBpMzI+Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6 IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCB6ZXJvZXh0IGk4IEBfWjI0X19j bV9pbnRyaW5zaWNfaW1wbF91ZGl2aGgoaTggemVyb2V4dCwgaTggemVyb2V4dCkgIzIxIHsKLStk ZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpOCBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRpdmho KGk4IHplcm9leHQsIGk4IHplcm9leHQpICMyMSB7Ci0gICAlMyA9IGFsbG9jYSBpOCwgYWxpZ24g MQotICAgJTQgPSBhbGxvY2EgaTgsIGFsaWduIDEKLSAgICU1ID0gYWxsb2NhIDwxIHggaTg+LCBh bGlnbiAxCi1AQCAtMjg0NCw3ICsyODQ0LDcgQEAgZGVmaW5lIGludGVybmFsIDwxIHggaTg+IEBf Wk43ZGV0YWlsczE0X19pbXBsX3VkaXZyZW1JTGkxRUVFdTJDTXZiVF9faFMxX1MxX3UyQ00KLSB9 Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xv Y2FsIDwxIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZiMV9oU18oPDEg eCBpOD4sIDwxIHggaTg+KSAjMjEgewotK2RlZmluZSBpbnRlcm5hbCA8MSB4IGk4PiBAX1oyNF9f Y21faW50cmluc2ljX2ltcGxfdWRpdnUyQ012YjFfaFNfKDwxIHggaTg+LCA8MSB4IGk4PikgIzIx IHsKLSAgICUzID0gYWxsb2NhIDwxIHggaTg+LCBhbGlnbiAxCi0gICAlNCA9IGFsbG9jYSA8MSB4 IGk4PiwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2EgPDEgeCBpOD4sIGFsaWduIDEKLUBAIC0yODYw LDcgKzI4NjAsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwxIHggaTg+IEBfWjI0X19jbV9pbnRyaW5z aWNfaW1wbF91ZGl2dTJDTXZiMV9oU18oPDEgeCBpOD4sIDwxCi0gfQotIAotIDsgRnVuY3Rpb24g QXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MiB4IGk4PiBAX1oy NF9fY21faW50cmluc2ljX2ltcGxfdWRpdnUyQ012YjJfaFNfKDwyIHggaTg+LCA8MiB4IGk4Pikg IzIyIHsKLStkZWZpbmUgaW50ZXJuYWwgPDIgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBs X3VkaXZ1MkNNdmIyX2hTXyg8MiB4IGk4PiwgPDIgeCBpOD4pICMyMiB7Ci0gICAlMyA9IGFsbG9j YSA8MiB4IGk4PiwgYWxpZ24gMgotICAgJTQgPSBhbGxvY2EgPDIgeCBpOD4sIGFsaWduIDIKLSAg ICU1ID0gYWxsb2NhIDwyIHggaTg+LCBhbGlnbiAyCi1AQCAtMjkwNiw3ICsyOTA2LDcgQEAgZGVm aW5lIGludGVybmFsIDwyIHggaTg+IEBfWk43ZGV0YWlsczE0X19pbXBsX3VkaXZyZW1JTGkyRUVF dTJDTXZiVF9faFMxX1MxX3UyQ00KLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUg bm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDw0IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNf aW1wbF91ZGl2dTJDTXZiNF9oU18oPDQgeCBpOD4sIDw0IHggaTg+KSAjMTQgewotK2RlZmluZSBp bnRlcm5hbCA8NCB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRpdnUyQ012YjRfaFNf KDw0IHggaTg+LCA8NCB4IGk4PikgIzE0IHsKLSAgICUzID0gYWxsb2NhIDw0IHggaTg+LCBhbGln biA0Ci0gICAlNCA9IGFsbG9jYSA8NCB4IGk4PiwgYWxpZ24gNAotICAgJTUgPSBhbGxvY2EgPDQg eCBpOD4sIGFsaWduIDQKLUBAIC0zMDQ0LDcgKzMwNDQsNyBAQCBkZWZpbmUgaW50ZXJuYWwgPDE2 IHggaTg+IEBfWk43ZGV0YWlsczE0X19pbXBsX3VkaXZyZW1JTGkxNkVFRXUyQ012YlRfX2hTMV9T MV91MgotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmlu ZSBkc29fbG9jYWwgPDMyIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZi MzJfaFNfKDwzMiB4IGk4PiwgPDMyIHggaTg+KSAjMTcgewotK2RlZmluZSBpbnRlcm5hbCA8MzIg eCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1MkNNdmIzMl9oU18oPDMyIHggaTg+ LCA8MzIgeCBpOD4pICMxNyB7Ci0gICAlMyA9IGFsbG9jYSA8MzIgeCBpOD4sIGFsaWduIDMyCi0g ICAlNCA9IGFsbG9jYSA8MzIgeCBpOD4sIGFsaWduIDMyCi0gICAlNSA9IGFsbG9jYSA8MzIgeCBp OD4sIGFsaWduIDMyCi1AQCAtMzA5MCw3ICszMDkwLDcgQEAgZGVmaW5lIGludGVybmFsIDwzMiB4 IGk4PiBAX1pON2RldGFpbHMxNF9faW1wbF91ZGl2cmVtSUxpMzJFRUV1MkNNdmJUX19oUzFfUzFf dTIKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUg ZHNvX2xvY2FsIHplcm9leHQgaTggQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW1oaChpOCB6 ZXJvZXh0LCBpOCB6ZXJvZXh0KSAjMjEgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGk4IEBf WjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtaGgoaTggemVyb2V4dCwgaTggemVyb2V4dCkgIzIx IHsKLSAgICUzID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0gICAlNCA9IGFsbG9jYSBpOCwgYWxpZ24g MQotICAgJTUgPSBhbGxvY2EgPDEgeCBpOD4sIGFsaWduIDEKLUBAIC0zMTE2LDcgKzMxMTYsNyBA QCBkZWZpbmUgZHNvX2xvY2FsIHplcm9leHQgaTggQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3Vy ZW1oaChpOCB6ZXJvZXh0LCBpOCB6ZXJvZQotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lu bGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDEgeCBpOD4gQF9aMjRfX2NtX2ludHJp bnNpY19pbXBsX3VyZW11MkNNdmIxX2hTXyg8MSB4IGk4PiwgPDEgeCBpOD4pICMyMSB7Ci0rZGVm aW5lIGludGVybmFsIDwxIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZi MV9oU18oPDEgeCBpOD4sIDwxIHggaTg+KSAjMjEgewotICAgJTMgPSBhbGxvY2EgPDEgeCBpOD4s IGFsaWduIDEKLSAgICU0ID0gYWxsb2NhIDwxIHggaTg+LCBhbGlnbiAxCi0gICAlNSA9IGFsbG9j YSA8MSB4IGk4PiwgYWxpZ24gMQotQEAgLTMxMzAsNyArMzEzMCw3IEBAIGRlZmluZSBkc29fbG9j YWwgPDEgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIxX2hTXyg8MSB4 IGk4PiwgPDEKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1k ZWZpbmUgZHNvX2xvY2FsIDwyIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJD TXZiMl9oU18oPDIgeCBpOD4sIDwyIHggaTg+KSAjMjIgewotK2RlZmluZSBpbnRlcm5hbCA8MiB4 IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjJfaFNfKDwyIHggaTg+LCA8 MiB4IGk4PikgIzIyIHsKLSAgICUzID0gYWxsb2NhIDwyIHggaTg+LCBhbGlnbiAyCi0gICAlNCA9 IGFsbG9jYSA8MiB4IGk4PiwgYWxpZ24gMgotICAgJTUgPSBhbGxvY2EgPDIgeCBpOD4sIGFsaWdu IDIKLUBAIC0zMTQ0LDcgKzMxNDQsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwyIHggaTg+IEBfWjI0 X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMl9oU18oPDIgeCBpOD4sIDwyCi0gfQotIAot IDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8 NCB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjRfaFNfKDw0IHggaTg+ LCA8NCB4IGk4PikgIzE0IHsKLStkZWZpbmUgaW50ZXJuYWwgPDQgeCBpOD4gQF9aMjRfX2NtX2lu dHJpbnNpY19pbXBsX3VyZW11MkNNdmI0X2hTXyg8NCB4IGk4PiwgPDQgeCBpOD4pICMxNCB7Ci0g ICAlMyA9IGFsbG9jYSA8NCB4IGk4PiwgYWxpZ24gNAotICAgJTQgPSBhbGxvY2EgPDQgeCBpOD4s IGFsaWduIDQKLSAgICU1ID0gYWxsb2NhIDw0IHggaTg+LCBhbGlnbiA0Ci1AQCAtMzE1OCw3ICsz MTU4LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8NCB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2lt cGxfdXJlbXUyQ012YjRfaFNfKDw0IHggaTg+LCA8NAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJz OiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDggeCBpOD4gQF9aMjRfX2Nt X2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmI4X2hTXyg8OCB4IGk4PiwgPDggeCBpOD4pICMxNSB7 Ci0rZGVmaW5lIGludGVybmFsIDw4IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVt dTJDTXZiOF9oU18oPDggeCBpOD4sIDw4IHggaTg+KSAjMTUgewotICAgJTMgPSBhbGxvY2EgPDgg eCBpOD4sIGFsaWduIDgKLSAgICU0ID0gYWxsb2NhIDw4IHggaTg+LCBhbGlnbiA4Ci0gICAlNSA9 IGFsbG9jYSA8OCB4IGk4PiwgYWxpZ24gOAotQEAgLTMxNzIsNyArMzE3Miw3IEBAIGRlZmluZSBk c29fbG9jYWwgPDggeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmI4X2hT Xyg8OCB4IGk4PiwgPDgKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndp bmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwxNiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxf dXJlbXUyQ012YjE2X2hTXyg8MTYgeCBpOD4sIDwxNiB4IGk4PikgIzE2IHsKLStkZWZpbmUgaW50 ZXJuYWwgPDE2IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMTZfaFNf KDwxNiB4IGk4PiwgPDE2IHggaTg+KSAjMTYgewotICAgJTMgPSBhbGxvY2EgPDE2IHggaTg+LCBh bGlnbiAxNgotICAgJTQgPSBhbGxvY2EgPDE2IHggaTg+LCBhbGlnbiAxNgotICAgJTUgPSBhbGxv Y2EgPDE2IHggaTg+LCBhbGlnbiAxNgotQEAgLTMxODYsNyArMzE4Niw3IEBAIGRlZmluZSBkc29f bG9jYWwgPDE2IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMTZfaFNf KDwxNiB4IGk4PiwKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQK LS1kZWZpbmUgZHNvX2xvY2FsIDwzMiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJl bXUyQ012YjMyX2hTXyg8MzIgeCBpOD4sIDwzMiB4IGk4PikgIzE3IHsKLStkZWZpbmUgaW50ZXJu YWwgPDMyIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMzJfaFNfKDwz MiB4IGk4PiwgPDMyIHggaTg+KSAjMTcgewotICAgJTMgPSBhbGxvY2EgPDMyIHggaTg+LCBhbGln biAzMgotICAgJTQgPSBhbGxvY2EgPDMyIHggaTg+LCBhbGlnbiAzMgotICAgJTUgPSBhbGxvY2Eg PDMyIHggaTg+LCBhbGlnbiAzMgotQEAgLTMyMDAsNyArMzIwMCw3IEBAIGRlZmluZSBkc29fbG9j YWwgPDMyIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMzJfaFNfKDwz MiB4IGk4PiwKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1k ZWZpbmUgZHNvX2xvY2FsIHplcm9leHQgaTE2IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2 dHQoaTE2IHplcm9leHQsIGkxNiB6ZXJvZXh0KSAjMjIgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJv ZXh0IGkxNiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRpdnR0KGkxNiB6ZXJvZXh0LCBpMTYg emVyb2V4dCkgIzIyIHsKLSAgICUzID0gYWxsb2NhIGkxNiwgYWxpZ24gMgotICAgJTQgPSBhbGxv Y2EgaTE2LCBhbGlnbiAyCi0gICAlNSA9IGFsbG9jYSA8MSB4IGkxNj4sIGFsaWduIDIKLUBAIC0z Mjc4LDcgKzMyNzgsNyBAQCBkZWZpbmUgaW50ZXJuYWwgPDEgeCBpMTY+IEBfWk43ZGV0YWlsczE0 X19pbXBsX3VkaXZyZW1JTGkxRUVFdTJDTXZiVF9fdFMxX1MxX3UyQwotIH0KLSAKLSA7IEZ1bmN0 aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDEgeCBpMTY+ IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZiMV90U18oPDEgeCBpMTY+LCA8MSB4 IGkxNj4pICMyMiB7Ci0rZGVmaW5lIGludGVybmFsIDwxIHggaTE2PiBAX1oyNF9fY21faW50cmlu c2ljX2ltcGxfdWRpdnUyQ012YjFfdFNfKDwxIHggaTE2PiwgPDEgeCBpMTY+KSAjMjIgewotICAg JTMgPSBhbGxvY2EgPDEgeCBpMTY+LCBhbGlnbiAyCi0gICAlNCA9IGFsbG9jYSA8MSB4IGkxNj4s IGFsaWduIDIKLSAgICU1ID0gYWxsb2NhIDwxIHggaTE2PiwgYWxpZ24gMgotQEAgLTMyOTQsNyAr MzI5NCw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDEgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNf aW1wbF91ZGl2dTJDTXZiMV90U18oPDEgeCBpMTY+LCA8Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0 cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MiB4IGkxNj4gQF9aMjRf X2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1MkNNdmIyX3RTXyg8MiB4IGkxNj4sIDwyIHggaTE2Pikg IzE0IHsKLStkZWZpbmUgaW50ZXJuYWwgPDIgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1w bF91ZGl2dTJDTXZiMl90U18oPDIgeCBpMTY+LCA8MiB4IGkxNj4pICMxNCB7Ci0gICAlMyA9IGFs bG9jYSA8MiB4IGkxNj4sIGFsaWduIDQKLSAgICU0ID0gYWxsb2NhIDwyIHggaTE2PiwgYWxpZ24g NAotICAgJTUgPSBhbGxvY2EgPDIgeCBpMTY+LCBhbGlnbiA0Ci1AQCAtMzM2MCw3ICszMzYwLDcg QEAgZGVmaW5lIGludGVybmFsIDwyIHggaTE2PiBAX1pON2RldGFpbHMxNF9faW1wbF91ZGl2cmVt SUxpMkVFRXUyQ012YlRfX3RTMV9TMV91MkMKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9p bmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDw0IHggaTE2PiBAX1oyNF9fY21faW50 cmluc2ljX2ltcGxfdWRpdnUyQ012YjRfdFNfKDw0IHggaTE2PiwgPDQgeCBpMTY+KSAjMTUgewot K2RlZmluZSBpbnRlcm5hbCA8NCB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1 MkNNdmI0X3RTXyg8NCB4IGkxNj4sIDw0IHggaTE2PikgIzE1IHsKLSAgICUzID0gYWxsb2NhIDw0 IHggaTE2PiwgYWxpZ24gOAotICAgJTQgPSBhbGxvY2EgPDQgeCBpMTY+LCBhbGlnbiA4Ci0gICAl NSA9IGFsbG9jYSA8NCB4IGkxNj4sIGFsaWduIDgKLUBAIC0zNTU4LDcgKzM1NTgsNyBAQCBkZWZp bmUgaW50ZXJuYWwgPDE2IHggaTE2PiBAX1pON2RldGFpbHMxNF9faW1wbF91ZGl2cmVtSUxpMTZF RUV1MkNNdmJUX190UzFfUzFfdQotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBu b3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDMyIHggaTE2PiBAX1oyNF9fY21faW50cmluc2lj X2ltcGxfdWRpdnUyQ012YjMyX3RTXyg8MzIgeCBpMTY+LCA8MzIgeCBpMTY+KSAjMTggewotK2Rl ZmluZSBpbnRlcm5hbCA8MzIgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJD TXZiMzJfdFNfKDwzMiB4IGkxNj4sIDwzMiB4IGkxNj4pICMxOCB7Ci0gICAlMyA9IGFsbG9jYSA8 MzIgeCBpMTY+LCBhbGlnbiA2NAotICAgJTQgPSBhbGxvY2EgPDMyIHggaTE2PiwgYWxpZ24gNjQK LSAgICU1ID0gYWxsb2NhIDwzMiB4IGkxNj4sIGFsaWduIDY0Ci1AQCAtMzYyNCw3ICszNjI0LDcg QEAgZGVmaW5lIGludGVybmFsIDwzMiB4IGkxNj4gQF9aTjdkZXRhaWxzMTRfX2ltcGxfdWRpdnJl bUlMaTMyRUVFdTJDTXZiVF9fdFMxX1MxX3UKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9p bmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIHplcm9leHQgaTE2IEBfWjI0X19jbV9p bnRyaW5zaWNfaW1wbF91cmVtdHQoaTE2IHplcm9leHQsIGkxNiB6ZXJvZXh0KSAjMjIgewotK2Rl ZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxNiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXR0 KGkxNiB6ZXJvZXh0LCBpMTYgemVyb2V4dCkgIzIyIHsKLSAgICUzID0gYWxsb2NhIGkxNiwgYWxp Z24gMgotICAgJTQgPSBhbGxvY2EgaTE2LCBhbGlnbiAyCi0gICAlNSA9IGFsbG9jYSA8MSB4IGkx Nj4sIGFsaWduIDIKLUBAIC0zNjUwLDcgKzM2NTAsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIHplcm9l eHQgaTE2IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdHQoaTE2IHplcm9leHQsIGkxNiB6 ZQotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBk c29fbG9jYWwgPDEgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMV90 U18oPDEgeCBpMTY+LCA8MSB4IGkxNj4pICMyMiB7Ci0rZGVmaW5lIGludGVybmFsIDwxIHggaTE2 PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjFfdFNfKDwxIHggaTE2PiwgPDEg eCBpMTY+KSAjMjIgewotICAgJTMgPSBhbGxvY2EgPDEgeCBpMTY+LCBhbGlnbiAyCi0gICAlNCA9 IGFsbG9jYSA8MSB4IGkxNj4sIGFsaWduIDIKLSAgICU1ID0gYWxsb2NhIDwxIHggaTE2PiwgYWxp Z24gMgotQEAgLTM2NjQsNyArMzY2NCw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDEgeCBpMTY+IEBf WjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMV90U18oPDEgeCBpMTY+LCA8Ci0gfQot IAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2Nh bCA8MiB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIyX3RTXyg8MiB4 IGkxNj4sIDwyIHggaTE2PikgIzE0IHsKLStkZWZpbmUgaW50ZXJuYWwgPDIgeCBpMTY+IEBfWjI0 X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMl90U18oPDIgeCBpMTY+LCA8MiB4IGkxNj4p ICMxNCB7Ci0gICAlMyA9IGFsbG9jYSA8MiB4IGkxNj4sIGFsaWduIDQKLSAgICU0ID0gYWxsb2Nh IDwyIHggaTE2PiwgYWxpZ24gNAotICAgJTUgPSBhbGxvY2EgPDIgeCBpMTY+LCBhbGlnbiA0Ci1A QCAtMzY3OCw3ICszNjc4LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MiB4IGkxNj4gQF9aMjRfX2Nt X2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIyX3RTXyg8MiB4IGkxNj4sIDwKLSB9Ci0gCi0gOyBG dW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDw0IHgg aTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjRfdFNfKDw0IHggaTE2Piwg PDQgeCBpMTY+KSAjMTUgewotK2RlZmluZSBpbnRlcm5hbCA8NCB4IGkxNj4gQF9aMjRfX2NtX2lu dHJpbnNpY19pbXBsX3VyZW11MkNNdmI0X3RTXyg8NCB4IGkxNj4sIDw0IHggaTE2PikgIzE1IHsK LSAgICUzID0gYWxsb2NhIDw0IHggaTE2PiwgYWxpZ24gOAotICAgJTQgPSBhbGxvY2EgPDQgeCBp MTY+LCBhbGlnbiA4Ci0gICAlNSA9IGFsbG9jYSA8NCB4IGkxNj4sIGFsaWduIDgKLUBAIC0zNjky LDcgKzM2OTIsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDw0IHggaTE2PiBAX1oyNF9fY21faW50cmlu c2ljX2ltcGxfdXJlbXUyQ012YjRfdFNfKDw0IHggaTE2PiwgPAotIH0KLSAKLSA7IEZ1bmN0aW9u IEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDggeCBpMTY+IEBf WjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiOF90U18oPDggeCBpMTY+LCA8OCB4IGkx Nj4pICMxNiB7Ci0rZGVmaW5lIGludGVybmFsIDw4IHggaTE2PiBAX1oyNF9fY21faW50cmluc2lj X2ltcGxfdXJlbXUyQ012YjhfdFNfKDw4IHggaTE2PiwgPDggeCBpMTY+KSAjMTYgewotICAgJTMg PSBhbGxvY2EgPDggeCBpMTY+LCBhbGlnbiAxNgotICAgJTQgPSBhbGxvY2EgPDggeCBpMTY+LCBh bGlnbiAxNgotICAgJTUgPSBhbGxvY2EgPDggeCBpMTY+LCBhbGlnbiAxNgotQEAgLTM3MDYsNyAr MzcwNiw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDggeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNf aW1wbF91cmVtdTJDTXZiOF90U18oPDggeCBpMTY+LCA8Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0 cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MTYgeCBpMTY+IEBfWjI0 X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMTZfdFNfKDwxNiB4IGkxNj4sIDwxNiB4IGkx Nj4pICMxNyB7Ci0rZGVmaW5lIGludGVybmFsIDwxNiB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNp Y19pbXBsX3VyZW11MkNNdmIxNl90U18oPDE2IHggaTE2PiwgPDE2IHggaTE2PikgIzE3IHsKLSAg ICUzID0gYWxsb2NhIDwxNiB4IGkxNj4sIGFsaWduIDMyCi0gICAlNCA9IGFsbG9jYSA8MTYgeCBp MTY+LCBhbGlnbiAzMgotICAgJTUgPSBhbGxvY2EgPDE2IHggaTE2PiwgYWxpZ24gMzIKLUBAIC0z NzIwLDcgKzM3MjAsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwxNiB4IGkxNj4gQF9aMjRfX2NtX2lu dHJpbnNpY19pbXBsX3VyZW11MkNNdmIxNl90U18oPDE2IHggaTE2PgotIH0KLSAKLSA7IEZ1bmN0 aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDMyIHggaTE2 PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjMyX3RTXyg8MzIgeCBpMTY+LCA8 MzIgeCBpMTY+KSAjMTggewotK2RlZmluZSBpbnRlcm5hbCA8MzIgeCBpMTY+IEBfWjI0X19jbV9p bnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMzJfdFNfKDwzMiB4IGkxNj4sIDwzMiB4IGkxNj4pICMx OCB7Ci0gICAlMyA9IGFsbG9jYSA8MzIgeCBpMTY+LCBhbGlnbiA2NAotICAgJTQgPSBhbGxvY2Eg PDMyIHggaTE2PiwgYWxpZ24gNjQKLSAgICU1ID0gYWxsb2NhIDwzMiB4IGkxNj4sIGFsaWduIDY0 Ci1AQCAtMzczNCw3ICszNzM0LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MzIgeCBpMTY+IEBfWjI0 X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMzJfdFNfKDwzMiB4IGkxNj4KLSB9Ci0gCi0g OyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIGkz MiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRpdmpqKGkzMiwgaTMyKSAjMTQgewotK2RlZmlu ZSBpbnRlcm5hbCBpMzIgQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZqaihpMzIsIGkzMikg IzE0IHsKLSAgICUzID0gYWxsb2NhIGkzMiwgYWxpZ24gNAotICAgJTQgPSBhbGxvY2EgaTMyLCBh bGlnbiA0Ci0gICAlNSA9IGFsbG9jYSA8MSB4IGkzMj4sIGFsaWduIDQKLUBAIC0zODkyLDcgKzM4 OTIsNyBAQCBkZWZpbmUgaW50ZXJuYWwgPDEgeCBpMzI+IEBfWk43ZGV0YWlsczE0X19pbXBsX3Vk aXZyZW1JTGkxRUVFdTJDTXZiVF9falMxX1MxX3UyQwotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJz OiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDEgeCBpMzI+IEBfWjI0X19j bV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZiMV9qU18oPDEgeCBpMzI+LCA8MSB4IGkzMj4pICMx NCB7Ci0rZGVmaW5lIGludGVybmFsIDwxIHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxf dWRpdnUyQ012YjFfalNfKDwxIHggaTMyPiwgPDEgeCBpMzI+KSAjMTQgewotICAgJTMgPSBhbGxv Y2EgPDEgeCBpMzI+LCBhbGlnbiA0Ci0gICAlNCA9IGFsbG9jYSA8MSB4IGkzMj4sIGFsaWduIDQK LSAgICU1ID0gYWxsb2NhIDwxIHggaTMyPiwgYWxpZ24gNAotQEAgLTM5MDgsNyArMzkwOCw3IEBA IGRlZmluZSBkc29fbG9jYWwgPDEgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2 dTJDTXZiMV9qU18oPDEgeCBpMzI+LCA8Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5s aW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MiB4IGkzMj4gQF9aMjRfX2NtX2ludHJp bnNpY19pbXBsX3VkaXZ1MkNNdmIyX2pTXyg8MiB4IGkzMj4sIDwyIHggaTMyPikgIzE1IHsKLStk ZWZpbmUgaW50ZXJuYWwgPDIgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJD TXZiMl9qU18oPDIgeCBpMzI+LCA8MiB4IGkzMj4pICMxNSB7Ci0gICAlMyA9IGFsbG9jYSA8MiB4 IGkzMj4sIGFsaWduIDgKLSAgICU0ID0gYWxsb2NhIDwyIHggaTMyPiwgYWxpZ24gOAotICAgJTUg PSBhbGxvY2EgPDIgeCBpMzI+LCBhbGlnbiA4Ci1AQCAtNDA1NCw3ICs0MDU0LDcgQEAgZGVmaW5l IGludGVybmFsIDwyIHggaTMyPiBAX1pON2RldGFpbHMxNF9faW1wbF91ZGl2cmVtSUxpMkVFRXUy Q012YlRfX2pTMV9TMV91MkMKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91 bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDw0IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2lt cGxfdWRpdnUyQ012YjRfalNfKDw0IHggaTMyPiwgPDQgeCBpMzI+KSAjMTYgewotK2RlZmluZSBp bnRlcm5hbCA8NCB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1MkNNdmI0X2pT Xyg8NCB4IGkzMj4sIDw0IHggaTMyPikgIzE2IHsKLSAgICUzID0gYWxsb2NhIDw0IHggaTMyPiwg YWxpZ24gMTYKLSAgICU0ID0gYWxsb2NhIDw0IHggaTMyPiwgYWxpZ24gMTYKLSAgICU1ID0gYWxs b2NhIDw0IHggaTMyPiwgYWxpZ24gMTYKLUBAIC00NDkyLDcgKzQ0OTIsNyBAQCBkZWZpbmUgaW50 ZXJuYWwgPDE2IHggaTMyPiBAX1pON2RldGFpbHMxNF9faW1wbF91ZGl2cmVtSUxpMTZFRUV1MkNN dmJUX19qUzFfUzFfdQotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2lu ZAotLWRlZmluZSBkc29fbG9jYWwgPDMyIHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxf dWRpdnUyQ012YjMyX2pTXyg8MzIgeCBpMzI+LCA8MzIgeCBpMzI+KSAjMTkgewotK2RlZmluZSBp bnRlcm5hbCA8MzIgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZiMzJf alNfKDwzMiB4IGkzMj4sIDwzMiB4IGkzMj4pICMxOSB7Ci0gICAlMyA9IGFsbG9jYSA8MzIgeCBp MzI+LCBhbGlnbiAxMjgKLSAgICU0ID0gYWxsb2NhIDwzMiB4IGkzMj4sIGFsaWduIDEyOAotICAg JTUgPSBhbGxvY2EgPDMyIHggaTMyPiwgYWxpZ24gMTI4Ci1AQCAtNDYzOCw3ICs0NjM4LDcgQEAg ZGVmaW5lIGludGVybmFsIDwzMiB4IGkzMj4gQF9aTjdkZXRhaWxzMTRfX2ltcGxfdWRpdnJlbUlM aTMyRUVFdTJDTXZiVF9falMxX1MxX3UKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxp bmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIGkzMiBAX1oyNF9fY21faW50cmluc2ljX2lt cGxfdXJlbWpqKGkzMiwgaTMyKSAjMTQgewotK2RlZmluZSBpbnRlcm5hbCBpMzIgQF9aMjRfX2Nt X2ludHJpbnNpY19pbXBsX3VyZW1qaihpMzIsIGkzMikgIzE0IHsKLSAgICUzID0gYWxsb2NhIGkz MiwgYWxpZ24gNAotICAgJTQgPSBhbGxvY2EgaTMyLCBhbGlnbiA0Ci0gICAlNSA9IGFsbG9jYSA8 MSB4IGkzMj4sIGFsaWduIDQKLUBAIC00NjY0LDcgKzQ2NjQsNyBAQCBkZWZpbmUgZHNvX2xvY2Fs IGkzMiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbWpqKGkzMiwgaTMyKSAjMTQgewotIH0K LSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9j YWwgPDEgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMV9qU18oPDEg eCBpMzI+LCA8MSB4IGkzMj4pICMxNCB7Ci0rZGVmaW5lIGludGVybmFsIDwxIHggaTMyPiBAX1oy NF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjFfalNfKDwxIHggaTMyPiwgPDEgeCBpMzI+ KSAjMTQgewotICAgJTMgPSBhbGxvY2EgPDEgeCBpMzI+LCBhbGlnbiA0Ci0gICAlNCA9IGFsbG9j YSA8MSB4IGkzMj4sIGFsaWduIDQKLSAgICU1ID0gYWxsb2NhIDwxIHggaTMyPiwgYWxpZ24gNAot QEAgLTQ2NzgsNyArNDY3OCw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDEgeCBpMzI+IEBfWjI0X19j bV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMV9qU18oPDEgeCBpMzI+LCA8Ci0gfQotIAotIDsg RnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MiB4 IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIyX2pTXyg8MiB4IGkzMj4s IDwyIHggaTMyPikgIzE1IHsKLStkZWZpbmUgaW50ZXJuYWwgPDIgeCBpMzI+IEBfWjI0X19jbV9p bnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMl9qU18oPDIgeCBpMzI+LCA8MiB4IGkzMj4pICMxNSB7 Ci0gICAlMyA9IGFsbG9jYSA8MiB4IGkzMj4sIGFsaWduIDgKLSAgICU0ID0gYWxsb2NhIDwyIHgg aTMyPiwgYWxpZ24gOAotICAgJTUgPSBhbGxvY2EgPDIgeCBpMzI+LCBhbGlnbiA4Ci1AQCAtNDY5 Miw3ICs0NjkyLDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MiB4IGkzMj4gQF9aMjRfX2NtX2ludHJp bnNpY19pbXBsX3VyZW11MkNNdmIyX2pTXyg8MiB4IGkzMj4sIDwKLSB9Ci0gCi0gOyBGdW5jdGlv biBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDw0IHggaTMyPiBA X1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjRfalNfKDw0IHggaTMyPiwgPDQgeCBp MzI+KSAjMTYgewotK2RlZmluZSBpbnRlcm5hbCA8NCB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNp Y19pbXBsX3VyZW11MkNNdmI0X2pTXyg8NCB4IGkzMj4sIDw0IHggaTMyPikgIzE2IHsKLSAgICUz ID0gYWxsb2NhIDw0IHggaTMyPiwgYWxpZ24gMTYKLSAgICU0ID0gYWxsb2NhIDw0IHggaTMyPiwg YWxpZ24gMTYKLSAgICU1ID0gYWxsb2NhIDw0IHggaTMyPiwgYWxpZ24gMTYKLUBAIC00NzA2LDcg KzQ3MDYsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDw0IHggaTMyPiBAX1oyNF9fY21faW50cmluc2lj X2ltcGxfdXJlbXUyQ012YjRfalNfKDw0IHggaTMyPiwgPAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0 dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDggeCBpMzI+IEBfWjI0 X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiOF9qU18oPDggeCBpMzI+LCA8OCB4IGkzMj4p ICMxNyB7Ci0rZGVmaW5lIGludGVybmFsIDw4IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2lt cGxfdXJlbXUyQ012YjhfalNfKDw4IHggaTMyPiwgPDggeCBpMzI+KSAjMTcgewotICAgJTMgPSBh bGxvY2EgPDggeCBpMzI+LCBhbGlnbiAzMgotICAgJTQgPSBhbGxvY2EgPDggeCBpMzI+LCBhbGln biAzMgotICAgJTUgPSBhbGxvY2EgPDggeCBpMzI+LCBhbGlnbiAzMgotQEAgLTQ3MjAsNyArNDcy MCw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDggeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1w bF91cmVtdTJDTXZiOF9qU18oPDggeCBpMzI+LCA8Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6 IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MTYgeCBpMzI+IEBfWjI0X19j bV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMTZfalNfKDwxNiB4IGkzMj4sIDwxNiB4IGkzMj4p ICMxOCB7Ci0rZGVmaW5lIGludGVybmFsIDwxNiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19p bXBsX3VyZW11MkNNdmIxNl9qU18oPDE2IHggaTMyPiwgPDE2IHggaTMyPikgIzE4IHsKLSAgICUz ID0gYWxsb2NhIDwxNiB4IGkzMj4sIGFsaWduIDY0Ci0gICAlNCA9IGFsbG9jYSA8MTYgeCBpMzI+ LCBhbGlnbiA2NAotICAgJTUgPSBhbGxvY2EgPDE2IHggaTMyPiwgYWxpZ24gNjQKLUBAIC00NzM0 LDcgKzQ3MzQsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwxNiB4IGkzMj4gQF9aMjRfX2NtX2ludHJp bnNpY19pbXBsX3VyZW11MkNNdmIxNl9qU18oPDE2IHggaTMyPgotIH0KLSAKLSA7IEZ1bmN0aW9u IEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDMyIHggaTMyPiBA X1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjMyX2pTXyg8MzIgeCBpMzI+LCA8MzIg eCBpMzI+KSAjMTkgewotK2RlZmluZSBpbnRlcm5hbCA8MzIgeCBpMzI+IEBfWjI0X19jbV9pbnRy aW5zaWNfaW1wbF91cmVtdTJDTXZiMzJfalNfKDwzMiB4IGkzMj4sIDwzMiB4IGkzMj4pICMxOSB7 Ci0gICAlMyA9IGFsbG9jYSA8MzIgeCBpMzI+LCBhbGlnbiAxMjgKLSAgICU0ID0gYWxsb2NhIDwz MiB4IGkzMj4sIGFsaWduIDEyOAotICAgJTUgPSBhbGxvY2EgPDMyIHggaTMyPiwgYWxpZ24gMTI4 Ci1AQCAtNDc0OCw3ICs0NzQ4LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MzIgeCBpMzI+IEBfWjI0 X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMzJfalNfKDwzMiB4IGkzMj4KLSB9Ci0gCi0g OyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIHZv aWQgQF9fZG9fcHJpbnRfY20oaTgqLCBpOCosIGkzMiwgaTY0LCBpMzIqLCBpMzIsIGkzMikgIzIz ICFkYmcgITE1IHsKLStkZWZpbmUgaW50ZXJuYWwgdm9pZCBAX19kb19wcmludF9jbShpOCosIGk4 KiwgaTMyLCBpNjQsIGkzMiosIGkzMiwgaTMyKSAjMjMgIWRiZyAhMTUgewotICAgJTggPSBhbGxv Y2EgaTgqLCBhbGlnbiA4Ci0gICAlOSA9IGFsbG9jYSBpOCosIGFsaWduIDgKLSAgICUxMCA9IGFs bG9jYSBpMzIsIGFsaWduIDQKLUBAIC01MDcwLDcgKzUwNzAsNyBAQCBkZWZpbmUgZHNvX2xvY2Fs IHZvaWQgQF9fZG9fcHJpbnRfbHooaTMyLCBpOCosIGkzMiwgaTY0LCBpMzIqLCBpMzIsIGkzMiwg aTMyLCBpMwotICAgJTY3ID0gbG9hZCBpNjQsIGk2NCogJTEzLCBhbGlnbiA4LCAhZGJnICExNTks ICF0YmFhICExOQotICAgJTY4ID0gbG9hZCA8NSB4IGkzMj4sIDw1IHggaTMyPiogJTIxLCBhbGln biAzMiwgIWRiZyAhMTYwLCAhdGJhYSAhNwotICAgY2FsbCB2b2lkIEBfWk4xM1ZhcnlpbmdXcml0 ZXJDMkVSeVJQS2ppeXUyQ012YjVfaSglY2xhc3MuVmFyeWluZ1dyaXRlciogJTIzLCBpNjQqIGRl cmVmZXJlbmNlYWJsZSg4KSAlMTksIGkzMioqIGRlcmVmZXJlbmNlYWJsZSg4KSAlMTQsIGkzMiAl NjYsIGk2NCAlNjcsIDw1IHggaTMyPiAlNjgpLCAhZGJnICExNjEKLS0gICU2OSA9IGNhbGwgemVy b2V4dCBpMSBAX1pOOVByaW50SW5mbzE0c3dpdGNoRW5jb2RpbmdJMTNVbmlmb3JtV3JpdGVyMTNW YXJ5aW5nV3JpdGVyRUViTlNfOEVuY29kaW5nRVRfVDBfKGk4IHNpZ25leHQgJTYyLCAlY2xhc3Mu VW5pZm9ybVdyaXRlciogYnl2YWwgYWxpZ24gMzIgJTIyLCAlY2xhc3MuVmFyeWluZ1dyaXRlciog Ynl2YWwgYWxpZ24gMzIgJTIzKSwgIWRiZyAhMTYyCi0rICAlNjkgPSBjYWxsIHplcm9leHQgaTEg QF9aTjlQcmludEluZm8xNHN3aXRjaEVuY29kaW5nSTEzVW5pZm9ybVdyaXRlcjEzVmFyeWluZ1dy aXRlckVFYk5TXzhFbmNvZGluZ0VUX1QwXyhpOCBzaWduZXh0ICU2MiwgJWNsYXNzLlVuaWZvcm1X cml0ZXIqIGJ5dmFsKCVjbGFzcy5Vbmlmb3JtV3JpdGVyKSBhbGlnbiAzMiAlMjIsICVjbGFzcy5W YXJ5aW5nV3JpdGVyKiBieXZhbCglY2xhc3MuVmFyeWluZ1dyaXRlcikgYWxpZ24gMzIgJTIzKSwg IWRiZyAhMTYyCi0gICBiciBsYWJlbCAlNzAsICFkYmcgITE2MwotIAotIDsgPGxhYmVsPjo3MDog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOyBwcmVkcyA9ICU2MAotQEAgLTUx ODgsNyArNTE4OCw3IEBAIGRlZmluZSBpbnRlcm5hbCA8NSB4IGkzMj4gQF9aMTdnZXRfYXV4aWxp YXJ5X3N0cnYoKSAjMjggY29tZGF0ICFkYmcgITE3OCB7Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0 cnM6IGFsd2F5c2lubGluZSBpbmxpbmVoaW50IG5vdW53aW5kCi0tZGVmaW5lIGludGVybmFsIHpl cm9leHQgaTEgQF9aTjlQcmludEluZm8xNHN3aXRjaEVuY29kaW5nSTEzVW5pZm9ybVdyaXRlcjEz VmFyeWluZ1dyaXRlckVFYk5TXzhFbmNvZGluZ0VUX1QwXyhpOCBzaWduZXh0LCAlY2xhc3MuVW5p Zm9ybVdyaXRlciogYnl2YWwgYWxpZ24gMzIsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCBh bGlnbiAzMikgIzI1IGNvbWRhdCAhZGJnICExOTEgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0 IGkxIEBfWk45UHJpbnRJbmZvMTRzd2l0Y2hFbmNvZGluZ0kxM1VuaWZvcm1Xcml0ZXIxM1Zhcnlp bmdXcml0ZXJFRWJOU184RW5jb2RpbmdFVF9UMF8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1X cml0ZXIqIGJ5dmFsKCVjbGFzcy5Vbmlmb3JtV3JpdGVyKSBhbGlnbiAzMiwgJWNsYXNzLlZhcnlp bmdXcml0ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5aW5nV3JpdGVyKSBhbGlnbiAzMikgIzI1IGNvbWRh dCAhZGJnICExOTEgewotICAgJTQgPSBhbGxvY2EgaTgsIGFsaWduIDEKLSAgICU1ID0gYWxsb2Nh ICVjbGFzcy5Vbmlmb3JtV3JpdGVyLCBhbGlnbiAzMgotICAgJTYgPSBhbGxvY2EgJWNsYXNzLlZh cnlpbmdXcml0ZXIsIGFsaWduIDMyCi1AQCAtNTE5Nyw3ICs1MTk3LDcgQEAgZGVmaW5lIGludGVy bmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm8xNHN3aXRjaEVuY29kaW5nSTEzVW5pZm9ybVdy aXRlcjEzVmFyeWkKLSAgICU4ID0gYml0Y2FzdCAlY2xhc3MuVW5pZm9ybVdyaXRlciogJTUgdG8g aTgqLCAhZGJnICExOTYKLSAgICU5ID0gYml0Y2FzdCAlY2xhc3MuVW5pZm9ybVdyaXRlciogJTEg dG8gaTgqLCAhZGJnICExOTYKLSAgIGNhbGwgdm9pZCBAbGx2bS5tZW1jcHkucDBpOC5wMGk4Lmk2 NChpOCogYWxpZ24gMzIgJTgsIGk4KiBhbGlnbiAzMiAlOSwgaTY0IDY0LCBpMSBmYWxzZSksICFk YmcgITE5NiwgIXRiYWEuc3RydWN0ICExOTcKLS0gICUxMCA9IGNhbGwgemVyb2V4dCBpMSBAX1pO OVByaW50SW5mbzIyc3dpdGNoRW5jb2Rpbmc0VW5pZm9ybUkxM1VuaWZvcm1Xcml0ZXJFRWJOU184 RW5jb2RpbmdFVF8oaTggc2lnbmV4dCAlNywgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsIGFs aWduIDMyICU1KSwgIWRiZyAhMTk4Ci0rICAlMTAgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmlu dEluZm8yMnN3aXRjaEVuY29kaW5nNFVuaWZvcm1JMTNVbmlmb3JtV3JpdGVyRUViTlNfOEVuY29k aW5nRVRfKGk4IHNpZ25leHQgJTcsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCglY2xhc3Mu VW5pZm9ybVdyaXRlcikgYWxpZ24gMzIgJTUpLCAhZGJnICExOTgKLSAgIGJyIGkxICUxMCwgbGFi ZWwgJTE2LCBsYWJlbCAlMTEsICFkYmcgITE5OQotIAotIDsgPGxhYmVsPjoxMTogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgOyBwcmVkcyA9ICUzCi1AQCAtNTIwNSw3ICs1MjA1 LDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm8xNHN3aXRjaEVu Y29kaW5nSTEzVW5pZm9ybVdyaXRlcjEzVmFyeWkKLSAgICUxMyA9IGJpdGNhc3QgJWNsYXNzLlZh cnlpbmdXcml0ZXIqICU2IHRvIGk4KiwgIWRiZyAhMjAxCi0gICAlMTQgPSBiaXRjYXN0ICVjbGFz cy5WYXJ5aW5nV3JpdGVyKiAlMiB0byBpOCosICFkYmcgITIwMQotICAgY2FsbCB2b2lkIEBsbHZt Lm1lbWNweS5wMGk4LnAwaTguaTY0KGk4KiBhbGlnbiAzMiAlMTMsIGk4KiBhbGlnbiAzMiAlMTQs IGk2NCA2NCwgaTEgZmFsc2UpLCAhZGJnICEyMDEsICF0YmFhLnN0cnVjdCAhMTk3Ci0tICAlMTUg PSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm8yMnN3aXRjaEVuY29kaW5nNFZhcnlpbmdJ MTNWYXJ5aW5nV3JpdGVyRUViTlNfOEVuY29kaW5nRVRfKGk4IHNpZ25leHQgJTEyLCAlY2xhc3Mu VmFyeWluZ1dyaXRlciogYnl2YWwgYWxpZ24gMzIgJTYpLCAhZGJnICEyMDIKLSsgICUxNSA9IGNh bGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzIyc3dpdGNoRW5jb2Rpbmc0VmFyeWluZ0kxM1Zh cnlpbmdXcml0ZXJFRWJOU184RW5jb2RpbmdFVF8oaTggc2lnbmV4dCAlMTIsICVjbGFzcy5WYXJ5 aW5nV3JpdGVyKiBieXZhbCglY2xhc3MuVmFyeWluZ1dyaXRlcikgYWxpZ24gMzIgJTYpLCAhZGJn ICEyMDIKLSAgIGJyIGxhYmVsICUxNiwgIWRiZyAhMTk5Ci0gCi0gOyA8bGFiZWw+OjE2OiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7IHByZWRzID0gJTExLCAlMwotQEAgLTUy ODAsNyArNTI4MCw3IEBAIGRlZmluZSBpbnRlcm5hbCB2b2lkIEBfWk4xM1ZhcnlpbmdXcml0ZXJD MkVSeVJQS2ppeXUyQ012YjVfaSglY2xhc3MuVmFyeWluZ1dyaXRlCi0gfQotIAotIDsgRnVuY3Rp b24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCBpMzIgQF9fbnVt X2NvcmVzKCkgIzI5ICFkYmcgITIzNiB7Ci0rZGVmaW5lIGludGVybmFsIGkzMiBAX19udW1fY29y ZXMoKSAjMjkgIWRiZyAhMjM2IHsKLSAgIHJldCBpMzIgLTEsICFkYmcgITIzNwotIH0KLSAKLUBA IC04ODcwLDcgKzg4NzAsNyBAQCBkZWNsYXJlIGRzb19sb2NhbCB2b2lkIEBfWk43ZGV0YWlsczM3 X19jbV9pbnRyaW5zaWNfaW1wbF9zdm1fc2NhdHRlcl93cml0ZUlpTGkxRQotIGRlY2xhcmUgdm9p ZCBAbGx2bS5nZW54LnN2bS5zY2F0dGVyLnYxaTEudjFpNjQudjFpMzIoPDEgeCBpMT4sIGkzMiwg PDEgeCBpNjQ+LCA8MSB4IGkzMj4pICMyNwotIAotIDsgRnVuY3Rpb24gQXR0cnM6IGFsd2F5c2lu bGluZSBpbmxpbmVoaW50IG5vdW53aW5kCi0tZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9a TjlQcmludEluZm8yMnN3aXRjaEVuY29kaW5nNFVuaWZvcm1JMTNVbmlmb3JtV3JpdGVyRUViTlNf OEVuY29kaW5nRVRfKGk4IHNpZ25leHQsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBhbGln biAzMikgIzI1IGNvbWRhdCAhZGJnICExNjQ1IHsKLStkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBp MSBAX1pOOVByaW50SW5mbzIyc3dpdGNoRW5jb2Rpbmc0VW5pZm9ybUkxM1VuaWZvcm1Xcml0ZXJF RWJOU184RW5jb2RpbmdFVF8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFs KCVjbGFzcy5Vbmlmb3JtV3JpdGVyKSBhbGlnbiAzMikgIzI1IGNvbWRhdCAhZGJnICExNjQ1IHsK LSAgICUzID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0gICAlNCA9IGFsbG9jYSAlY2xhc3MuVW5pZm9y bVdyaXRlciwgYWxpZ24gMzIKLSAgICU1ID0gYWxsb2NhICUic3RydWN0LlByaW50SW5mbzo6RW5j b2Rpbmc0VW5pZm9ybSIsIGFsaWduIDEKLUBAIC04ODc5LDcgKzg4NzksNyBAQCBkZWZpbmUgaW50 ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzIyc3dpdGNoRW5jb2Rpbmc0VW5pZm9ybUkx M1VuaWZvcm1Xcml0ZQotICAgJTcgPSBiaXRjYXN0ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiAlNCB0 byBpOCosICFkYmcgITE2NDcKLSAgICU4ID0gYml0Y2FzdCAlY2xhc3MuVW5pZm9ybVdyaXRlciog JTEgdG8gaTgqLCAhZGJnICExNjQ3Ci0gICBjYWxsIHZvaWQgQGxsdm0ubWVtY3B5LnAwaTgucDBp OC5pNjQoaTgqIGFsaWduIDMyICU3LCBpOCogYWxpZ24gMzIgJTgsIGk2NCA2NCwgaTEgZmFsc2Up LCAhZGJnICExNjQ3LCAhdGJhYS5zdHJ1Y3QgITE5NwotLSAgJTkgPSBjYWxsIHplcm9leHQgaTEg QF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1VuaWZvcm1Xcml0ZXJOU18x NkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVRfVDBfKGk4IHNpZ25leHQgJTYsICVj bGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBhbGlnbiAzMiAlNCwgJSJzdHJ1Y3QuUHJpbnRJbmZv OjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwgYWxpZ24gMSAlNSksICFkYmcgITE2NDgKLSsgICU5 ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJ MTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUX1Qw XyhpOCBzaWduZXh0ICU2LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZv cm1Xcml0ZXIpIGFsaWduIDMyICU0LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZv cm0iKiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKSBhbGlnbiAx ICU1KSwgIWRiZyAhMTY0OAotICAgcmV0IGkxICU5LCAhZGJnICExNjQ5Ci0gfQotIAotQEAgLTg4 ODcsNyArODg4Nyw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZv MjJzd2l0Y2hFbmNvZGluZzRVbmlmb3JtSTEzVW5pZm9ybVdyaXRlCi0gZGVjbGFyZSB2b2lkIEBs bHZtLm1lbWNweS5wMGk4LnAwaTguaTY0KGk4KiBub2NhcHR1cmUgd3JpdGVvbmx5LCBpOCogbm9j YXB0dXJlIHJlYWRvbmx5LCBpNjQsIGkxKSAjMzIKLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBhbHdh eXNpbmxpbmUgaW5saW5laGludCBub3Vud2luZAotLWRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkx IEBfWk45UHJpbnRJbmZvMjJzd2l0Y2hFbmNvZGluZzRWYXJ5aW5nSTEzVmFyeWluZ1dyaXRlckVF Yk5TXzhFbmNvZGluZ0VUXyhpOCBzaWduZXh0LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwg YWxpZ24gMzIpICMyNSBjb21kYXQgIWRiZyAhMTY1MCB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9l eHQgaTEgQF9aTjlQcmludEluZm8yMnN3aXRjaEVuY29kaW5nNFZhcnlpbmdJMTNWYXJ5aW5nV3Jp dGVyRUViTlNfOEVuY29kaW5nRVRfKGk4IHNpZ25leHQsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBi eXZhbCglY2xhc3MuVmFyeWluZ1dyaXRlcikgYWxpZ24gMzIpICMyNSBjb21kYXQgIWRiZyAhMTY1 MCB7Ci0gICAlMyA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgJTQgPSBhbGxvY2EgJWNsYXNzLlZh cnlpbmdXcml0ZXIsIGFsaWduIDMyCi0gICAlNSA9IGFsbG9jYSAlInN0cnVjdC5QcmludEluZm86 OkVuY29kaW5nNFZhcnlpbmciLCBhbGlnbiAxCi1AQCAtODg5NiwxMiArODg5NiwxMiBAQCBkZWZp bmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzIyc3dpdGNoRW5jb2Rpbmc0VmFy eWluZ0kxM1ZhcnlpbmdXcml0ZQotICAgJTcgPSBiaXRjYXN0ICVjbGFzcy5WYXJ5aW5nV3JpdGVy KiAlNCB0byBpOCosICFkYmcgITE2NTIKLSAgICU4ID0gYml0Y2FzdCAlY2xhc3MuVmFyeWluZ1dy aXRlciogJTEgdG8gaTgqLCAhZGJnICExNjUyCi0gICBjYWxsIHZvaWQgQGxsdm0ubWVtY3B5LnAw aTgucDBpOC5pNjQoaTgqIGFsaWduIDMyICU3LCBpOCogYWxpZ24gMzIgJTgsIGk2NCA2NCwgaTEg ZmFsc2UpLCAhZGJnICExNjUyLCAhdGJhYS5zdHJ1Y3QgITE5NwotLSAgJTkgPSBjYWxsIHplcm9l eHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1ZhcnlpbmdXcml0 ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVRfVDBfKGk4IHNpZ25leHQg JTYsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCBhbGlnbiAzMiAlNCwgJSJzdHJ1Y3QuUHJp bnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwgYWxpZ24gMSAlNSksICFkYmcgITE2NTMK LSsgICU5ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5j b2RpbmdJMTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGlu Z0VUX1QwXyhpOCBzaWduZXh0ICU2LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwoJWNsYXNz LlZhcnlpbmdXcml0ZXIpIGFsaWduIDMyICU0LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5n NFZhcnlpbmciKiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKSBh bGlnbiAxICU1KSwgIWRiZyAhMTY1MwotICAgcmV0IGkxICU5LCAhZGJnICExNjU0Ci0gfQotIAot IDsgRnVuY3Rpb24gQXR0cnM6IGFsd2F5c2lubGluZSBpbmxpbmVoaW50IG5vdW53aW5kCi0tZGVm aW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNv ZGluZ0kxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5n RVRfVDBfKGk4IHNpZ25leHQsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBhbGlnbiAzMiwg JSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwgYWxpZ24gMSkgIzI1 IGNvbWRhdCAhZGJnICExNjU1IHsKLStkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVBy aW50SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rp bmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVF9UMF8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZv cm1Xcml0ZXIqIGJ5dmFsKCVjbGFzcy5Vbmlmb3JtV3JpdGVyKSBhbGlnbiAzMiwgJSJzdHJ1Y3Qu UHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpF bmNvZGluZzRVbmlmb3JtIikgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICExNjU1IHsKLSAgICU0 ID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSAlY2xhc3MuVW5pZm9ybVdyaXRl ciwgYWxpZ24gMzIKLSAgICU2ID0gYWxsb2NhICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0 VW5pZm9ybSIsIGFsaWduIDEKLUBAIC04OTI0LDcgKzg5MjQsNyBAQCBkZWZpbmUgaW50ZXJuYWwg emVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEzVW5pZm9y bVdyaXRlcgotICAgJTIyID0gYml0Y2FzdCAlY2xhc3MuVW5pZm9ybVdyaXRlciogJTUgdG8gaTgq LCAhZGJnICExNjU3Ci0gICAlMjMgPSBiaXRjYXN0ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiAlMSB0 byBpOCosICFkYmcgITE2NTcKLSAgIGNhbGwgdm9pZCBAbGx2bS5tZW1jcHkucDBpOC5wMGk4Lmk2 NChpOCogYWxpZ24gMzIgJTIyLCBpOCogYWxpZ24gMzIgJTIzLCBpNjQgNjQsIGkxIGZhbHNlKSwg IWRiZyAhMTY1NywgIXRiYWEuc3RydWN0ICExOTcKLS0gICUyNCA9IGNhbGwgemVyb2V4dCBpMSBA X1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0liMTNVbmlmb3JtV3Jp dGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4 dCAlMjEsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBhbGlnbiAzMiAlNSwgJSJzdHJ1Y3Qu UHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwgYWxpZ24gMSAlNiksICFkYmcgITE2 NTgKLSsgICUyNCA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5 SWZQcm9wZXJFbmNvZGluZ0liMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVF Yk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlMjEsICVjbGFzcy5Vbmlmb3JtV3JpdGVy KiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24gMzIgJTUsICUic3RydWN0LlByaW50 SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rp bmc0VW5pZm9ybSIpIGFsaWduIDEgJTYpLCAhZGJnICExNjU4Ci0gICBiciBpMSAlMjQsIGxhYmVs ICU2MCwgbGFiZWwgJTI1LCAhZGJnICExNjU5Ci0gCi0gOyA8bGFiZWw+OjI1OiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICA7IHByZWRzID0gJTMKLUBAIC04OTMyLDcgKzg5MzIs NyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwxNHN3 aXRjaEVuY29kaW5nSTEzVW5pZm9ybVdyaXRlcgotICAgJTI3ID0gYml0Y2FzdCAlY2xhc3MuVW5p Zm9ybVdyaXRlciogJTcgdG8gaTgqLCAhZGJnICExNjYxCi0gICAlMjggPSBiaXRjYXN0ICVjbGFz cy5Vbmlmb3JtV3JpdGVyKiAlMSB0byBpOCosICFkYmcgITE2NjEKLSAgIGNhbGwgdm9pZCBAbGx2 bS5tZW1jcHkucDBpOC5wMGk4Lmk2NChpOCogYWxpZ24gMzIgJTI3LCBpOCogYWxpZ24gMzIgJTI4 LCBpNjQgNjQsIGkxIGZhbHNlKSwgIWRiZyAhMTY2MSwgIXRiYWEuc3RydWN0ICExOTcKLS0gICUy OSA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJF bmNvZGluZ0lpMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNv ZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlMjYsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBh bGlnbiAzMiAlNywgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwg YWxpZ24gMSAlOCksICFkYmcgITE2NjIKLSsgICUyOSA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVBy aW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lpMTNVbmlmb3JtV3JpdGVyTlNf MTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlMjYs ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24g MzIgJTcsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsKCUic3Ry dWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIpIGFsaWduIDEgJTgpLCAhZGJnICExNjYy Ci0gICBiciBpMSAlMjksIGxhYmVsICU2MCwgbGFiZWwgJTMwLCAhZGJnICExNjYzCi0gCi0gOyA8 bGFiZWw+OjMwOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7IHByZWRzID0g JTI1Ci1AQCAtODk0MCw3ICs4OTQwLDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9a TjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1VuaWZvcm1Xcml0ZXIKLSAgICUz MiA9IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqICU5IHRvIGk4KiwgIWRiZyAhMTY2NQot ICAgJTMzID0gYml0Y2FzdCAlY2xhc3MuVW5pZm9ybVdyaXRlciogJTEgdG8gaTgqLCAhZGJnICEx NjY1Ci0gICBjYWxsIHZvaWQgQGxsdm0ubWVtY3B5LnAwaTgucDBpOC5pNjQoaTgqIGFsaWduIDMy ICUzMiwgaTgqIGFsaWduIDMyICUzMywgaTY0IDY0LCBpMSBmYWxzZSksICFkYmcgITE2NjUsICF0 YmFhLnN0cnVjdCAhMTk3Ci0tICAlMzQgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82 ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJajEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rp bmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTMxLCAlY2xhc3Mu VW5pZm9ybVdyaXRlciogYnl2YWwgYWxpZ24gMzIgJTksICUic3RydWN0LlByaW50SW5mbzo6RW5j b2Rpbmc0VW5pZm9ybSIqIGJ5dmFsIGFsaWduIDEgJTEwKSwgIWRiZyAhMTY2NgotKyAgJTM0ID0g Y2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29k aW5nSWoxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5n RVQwX1QxXyhpOCBzaWduZXh0ICUzMSwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsKCVjbGFz cy5Vbmlmb3JtV3JpdGVyKSBhbGlnbiAzMiAlOSwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGlu ZzRVbmlmb3JtIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIikg YWxpZ24gMSAlMTApLCAhZGJnICExNjY2Ci0gICBiciBpMSAlMzQsIGxhYmVsICU2MCwgbGFiZWwg JTM1LCAhZGJnICExNjY3Ci0gCi0gOyA8bGFiZWw+OjM1OiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICA7IHByZWRzID0gJTMwCi1AQCAtODk0OCw3ICs4OTQ4LDcgQEAgZGVmaW5l IGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGlu Z0kxM1VuaWZvcm1Xcml0ZXIKLSAgICUzNyA9IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIq ICUxMSB0byBpOCosICFkYmcgITE2NjkKLSAgICUzOCA9IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1X cml0ZXIqICUxIHRvIGk4KiwgIWRiZyAhMTY2OQotICAgY2FsbCB2b2lkIEBsbHZtLm1lbWNweS5w MGk4LnAwaTguaTY0KGk4KiBhbGlnbiAzMiAlMzcsIGk4KiBhbGlnbiAzMiAlMzgsIGk2NCA2NCwg aTEgZmFsc2UpLCAhZGJnICExNjY5LCAhdGJhYS5zdHJ1Y3QgITE5NwotLSAgJTM5ID0gY2FsbCB6 ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWYx M1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1Qx XyhpOCBzaWduZXh0ICUzNiwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsIGFsaWduIDMyICUx MSwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwgYWxpZ24gMSAl MTIpLCAhZGJnICExNjcwCi0rICAlMzkgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82 ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJZjEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rp bmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTM2LCAlY2xhc3Mu VW5pZm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1Xcml0ZXIpIGFsaWduIDMyICUxMSwg JSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwoJSJzdHJ1Y3QuUHJp bnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIikgYWxpZ24gMSAlMTIpLCAhZGJnICExNjcwCi0gICBi ciBpMSAlMzksIGxhYmVsICU2MCwgbGFiZWwgJTQwLCAhZGJnICExNjcxCi0gCi0gOyA8bGFiZWw+ OjQwOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7IHByZWRzID0gJTM1Ci1A QCAtODk1Niw3ICs4OTU2LDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmlu dEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1VuaWZvcm1Xcml0ZXIKLSAgICU0MiA9IGJp dGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqICUxMyB0byBpOCosICFkYmcgITE2NzMKLSAgICU0 MyA9IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqICUxIHRvIGk4KiwgIWRiZyAhMTY3Mwot ICAgY2FsbCB2b2lkIEBsbHZtLm1lbWNweS5wMGk4LnAwaTguaTY0KGk4KiBhbGlnbiAzMiAlNDIs IGk4KiBhbGlnbiAzMiAlNDMsIGk2NCA2NCwgaTEgZmFsc2UpLCAhZGJnICExNjczLCAhdGJhYS5z dHJ1Y3QgITE5NwotLSAgJTQ0ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFp bDIxYXBwbHlJZlByb3BlckVuY29kaW5nSXgxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVu aWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICU0MSwgJWNsYXNzLlVuaWZv cm1Xcml0ZXIqIGJ5dmFsIGFsaWduIDMyICUxMywgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGlu ZzRVbmlmb3JtIiogYnl2YWwgYWxpZ24gMSAlMTQpLCAhZGJnICExNjc0Ci0rICAlNDQgPSBjYWxs IHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJ eDEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBf VDFfKGk4IHNpZ25leHQgJTQxLCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVu aWZvcm1Xcml0ZXIpIGFsaWduIDMyICUxMywgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRV bmlmb3JtIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIikgYWxp Z24gMSAlMTQpLCAhZGJnICExNjc0Ci0gICBiciBpMSAlNDQsIGxhYmVsICU2MCwgbGFiZWwgJTQ1 LCAhZGJnICExNjc1Ci0gCi0gOyA8bGFiZWw+OjQ1OiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICA7IHByZWRzID0gJTQwCi1AQCAtODk2NCw3ICs4OTY0LDcgQEAgZGVmaW5lIGlu dGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kx M1VuaWZvcm1Xcml0ZXIKLSAgICU0NyA9IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqICUx NSB0byBpOCosICFkYmcgITE2NzcKLSAgICU0OCA9IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0 ZXIqICUxIHRvIGk4KiwgIWRiZyAhMTY3NwotICAgY2FsbCB2b2lkIEBsbHZtLm1lbWNweS5wMGk4 LnAwaTguaTY0KGk4KiBhbGlnbiAzMiAlNDcsIGk4KiBhbGlnbiAzMiAlNDgsIGk2NCA2NCwgaTEg ZmFsc2UpLCAhZGJnICExNjc3LCAhdGJhYS5zdHJ1Y3QgITE5NwotLSAgJTQ5ID0gY2FsbCB6ZXJv ZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSXkxM1Vu aWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhp OCBzaWduZXh0ICU0NiwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsIGFsaWduIDMyICUxNSwg JSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwgYWxpZ24gMSAlMTYp LCAhZGJnICExNjc4Ci0rICAlNDkgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0 YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJeTEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0 VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTQ2LCAlY2xhc3MuVW5p Zm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1Xcml0ZXIpIGFsaWduIDMyICUxNSwgJSJz dHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJ bmZvOjpFbmNvZGluZzRVbmlmb3JtIikgYWxpZ24gMSAlMTYpLCAhZGJnICExNjc4Ci0gICBiciBp MSAlNDksIGxhYmVsICU2MCwgbGFiZWwgJTUwLCAhZGJnICExNjc5Ci0gCi0gOyA8bGFiZWw+OjUw OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7IHByZWRzID0gJTQ1Ci1AQCAt ODk3Miw3ICs4OTcyLDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludElu Zm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1VuaWZvcm1Xcml0ZXIKLSAgICU1MiA9IGJpdGNh c3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqICUxNyB0byBpOCosICFkYmcgITE2ODEKLSAgICU1MyA9 IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqICUxIHRvIGk4KiwgIWRiZyAhMTY4MQotICAg Y2FsbCB2b2lkIEBsbHZtLm1lbWNweS5wMGk4LnAwaTguaTY0KGk4KiBhbGlnbiAzMiAlNTIsIGk4 KiBhbGlnbiAzMiAlNTMsIGk2NCA2NCwgaTEgZmFsc2UpLCAhZGJnICExNjgxLCAhdGJhYS5zdHJ1 Y3QgITE5NwotLSAgJTU0ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIx YXBwbHlJZlByb3BlckVuY29kaW5nSWQxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZv cm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICU1MSwgJWNsYXNzLlVuaWZvcm1X cml0ZXIqIGJ5dmFsIGFsaWduIDMyICUxNywgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRV bmlmb3JtIiogYnl2YWwgYWxpZ24gMSAlMTgpLCAhZGJnICExNjgyCi0rICAlNTQgPSBjYWxsIHpl cm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJZDEz VW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFf KGk4IHNpZ25leHQgJTUxLCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZv cm1Xcml0ZXIpIGFsaWduIDMyICUxNywgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlm b3JtIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIikgYWxpZ24g MSAlMTgpLCAhZGJnICExNjgyCi0gICBiciBpMSAlNTQsIGxhYmVsICU2MCwgbGFiZWwgJTU1LCAh ZGJnICExNjgzCi0gCi0gOyA8bGFiZWw+OjU1OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICA7IHByZWRzID0gJTUwCi1AQCAtODk4MCw3ICs4OTgwLDcgQEAgZGVmaW5lIGludGVy bmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1Vu aWZvcm1Xcml0ZXIKLSAgICU1NyA9IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqICUxOSB0 byBpOCosICFkYmcgITE2ODUKLSAgICU1OCA9IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIq ICUxIHRvIGk4KiwgIWRiZyAhMTY4NQotICAgY2FsbCB2b2lkIEBsbHZtLm1lbWNweS5wMGk4LnAw aTguaTY0KGk4KiBhbGlnbiAzMiAlNTcsIGk4KiBhbGlnbiAzMiAlNTgsIGk2NCA2NCwgaTEgZmFs c2UpLCAhZGJnICExNjg1LCAhdGJhYS5zdHJ1Y3QgITE5NwotLSAgJTU5ID0gY2FsbCB6ZXJvZXh0 IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSVB2MTNVbmlm b3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTgg c2lnbmV4dCAlNTYsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBhbGlnbiAzMiAlMTksICUi c3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsIGFsaWduIDEgJTIwKSwg IWRiZyAhMTY4NgotKyAgJTU5ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFp bDIxYXBwbHlJZlByb3BlckVuY29kaW5nSVB2MTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRV bmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlNTYsICVjbGFzcy5Vbmlm b3JtV3JpdGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24gMzIgJTE5LCAlInN0 cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCglInN0cnVjdC5QcmludElu Zm86OkVuY29kaW5nNFVuaWZvcm0iKSBhbGlnbiAxICUyMCksICFkYmcgITE2ODYKLSAgIGJyIGxh YmVsICU2MCwgIWRiZyAhMTY4MwotIAotIDsgPGxhYmVsPjo2MDogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgOyBwcmVkcyA9ICU1NSwgJTUwLCAlNDUsICU0MCwgJTM1LCAlMzAs ICUyNSwgJTMKLUBAIC04OTg5LDcgKzg5ODksNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBp MSBAX1pOOVByaW50SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEzVW5pZm9ybVdyaXRlcgot IH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2lu ZAotLWRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBw bHlJZlByb3BlckVuY29kaW5nSWIxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1F RUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciog Ynl2YWwgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5 dmFsIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMTY4OCB7Ci0rZGVmaW5lIGludGVybmFsIHpl cm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJYjEz VW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFf KGk4IHNpZ25leHQsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdy aXRlcikgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5 dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIpIGFsaWduIDEpICMyNSBj b21kYXQgIWRiZyAhMTY4OCB7Ci0gICAlNCA9IGFsbG9jYSBpMSwgYWxpZ24gMQotICAgJTUgPSBh bGxvY2EgaTgsIGFsaWduIDEKLSAgIHN0b3JlIGk4ICUwLCBpOCogJTUsIGFsaWduIDEsICF0YmFh ICExOTMKLUBAIC05MDE1LDcgKzkwMTUsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBA X1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0liMTNVbmlmbwotIH0K LSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2luZAot LWRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJ ZlByb3BlckVuY29kaW5nSWkxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUVi TlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2 YWwgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFs IGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMTY5NyB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9l eHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJaTEzVW5p Zm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4 IHNpZ25leHQsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRl cikgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFs KCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIpIGFsaWduIDEpICMyNSBjb21k YXQgIWRiZyAhMTY5NyB7Ci0gICAlNCA9IGFsbG9jYSBpMSwgYWxpZ24gMQotICAgJTUgPSBhbGxv Y2EgaTgsIGFsaWduIDEKLSAgIHN0b3JlIGk4ICUwLCBpOCogJTUsIGFsaWduIDEsICF0YmFhICEx OTMKLUBAIC05MDQxLDcgKzkwNDEsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pO OVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lpMTNVbmlmbwotIH0KLSAK LSA7IEZ1bmN0aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2luZAotLWRl ZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlBy b3BlckVuY29kaW5nSWoxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNf OEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwg YWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsIGFs aWduIDEpICMyNSBjb21kYXQgIWRiZyAhMTcwNiB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQg aTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJajEzVW5pZm9y bVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNp Z25leHQsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikg YWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsKCUi c3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIpIGFsaWduIDEpICMyNSBjb21kYXQg IWRiZyAhMTcwNiB7Ci0gICAlNCA9IGFsbG9jYSBpMSwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2Eg aTgsIGFsaWduIDEKLSAgIHN0b3JlIGk4ICUwLCBpOCogJTUsIGFsaWduIDEsICF0YmFhICExOTMK LUBAIC05MDY3LDcgKzkwNjcsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVBy aW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lqMTNVbmlmbwotIH0KLSAKLSA7 IEZ1bmN0aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2luZAotLWRlZmlu ZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3Bl ckVuY29kaW5nSWYxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVu Y29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwgYWxp Z24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsIGFsaWdu IDEpICMyNSBjb21kYXQgIWRiZyAhMTcxNSB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEg QF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJZjEzVW5pZm9ybVdy aXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25l eHQsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxp Z24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsKCUic3Ry dWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIpIGFsaWduIDEpICMyNSBjb21kYXQgIWRi ZyAhMTcxNSB7Ci0gICAlNCA9IGFsbG9jYSBpMSwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2EgaTgs IGFsaWduIDEKLSAgIHN0b3JlIGk4ICUwLCBpOCogJTUsIGFsaWduIDEsICF0YmFhICExOTMKLUBA IC05MDkzLDcgKzkwOTMsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50 SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lmMTNVbmlmbwotIH0KLSAKLSA7IEZ1 bmN0aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2luZAotLWRlZmluZSBp bnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVu Y29kaW5nSXgxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29k aW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwgYWxpZ24g MzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsIGFsaWduIDEp ICMyNSBjb21kYXQgIWRiZyAhMTcyNCB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9a TjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJeDEzVW5pZm9ybVdyaXRl ck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQs ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24g MzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsKCUic3RydWN0 LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIpIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAh MTcyNCB7Ci0gICAlNCA9IGFsbG9jYSBpMSwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2EgaTgsIGFs aWduIDEKLSAgIHN0b3JlIGk4ICUwLCBpOCogJTUsIGFsaWduIDEsICF0YmFhICExOTMKLUBAIC05 MTE5LDcgKzkxMTksNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5m bzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0l4MTNVbmlmbwotIH0KLSAKLSA7IEZ1bmN0 aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2luZAotLWRlZmluZSBpbnRl cm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29k aW5nSXkxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5n RVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwgYWxpZ24gMzIs ICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsIGFsaWduIDEpICMy NSBjb21kYXQgIWRiZyAhMTczMyB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQ cmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJeTEzVW5pZm9ybVdyaXRlck5T XzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVj bGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24gMzIs ICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsKCUic3RydWN0LlBy aW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIpIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMTcz MyB7Ci0gICAlNCA9IGFsbG9jYSBpMSwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2EgaTgsIGFsaWdu IDEKLSAgIHN0b3JlIGk4ICUwLCBpOCogJTUsIGFsaWduIDEsICF0YmFhICExOTMKLUBAIC05MTQ1 LDcgKzkxNDUsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZk ZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0l5MTNVbmlmbwotIH0KLSAKLSA7IEZ1bmN0aW9u IEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2luZAotLWRlZmluZSBpbnRlcm5h bCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5n SWQxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQw X1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwgYWxpZ24gMzIsICUi c3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsIGFsaWduIDEpICMyNSBj b21kYXQgIWRiZyAhMTc0MiB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmlu dEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJZDEzVW5pZm9ybVdyaXRlck5TXzE2 RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFz cy5Vbmlmb3JtV3JpdGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24gMzIsICUi c3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsKCUic3RydWN0LlByaW50 SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIpIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMTc0MiB7 Ci0gICAlNCA9IGFsbG9jYSBpMSwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2EgaTgsIGFsaWduIDEK LSAgIHN0b3JlIGk4ICUwLCBpOCogJTUsIGFsaWduIDEsICF0YmFhICExOTMKLUBAIC05MTcxLDcg KzkxNzEsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRh aWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lkMTNVbmlmbwotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0 dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2luZAotLWRlZmluZSBpbnRlcm5hbCB6 ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSVB2 MTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9U MV8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsIGFsaWduIDMyLCAlInN0 cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCBhbGlnbiAxKSAjMjUgY29t ZGF0ICFkYmcgITE3NTEgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJ bmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSVB2MTNVbmlmb3JtV3JpdGVyTlNfMTZF bmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNz LlVuaWZvcm1Xcml0ZXIqIGJ5dmFsKCVjbGFzcy5Vbmlmb3JtV3JpdGVyKSBhbGlnbiAzMiwgJSJz dHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJ bmZvOjpFbmNvZGluZzRVbmlmb3JtIikgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICExNzUxIHsK LSAgICU0ID0gYWxsb2NhIGkxLCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSBpOCwgYWxpZ24gMQot ICAgc3RvcmUgaTggJTAsIGk4KiAlNSwgYWxpZ24gMSwgIXRiYWEgITE5MwotQEAgLTEwMDEzLDcg KzEwMDEzLDcgQEAgZGVmaW5lIGludGVybmFsIGkzMiBAX1pON2RldGFpbHMxOF9jbV9wcmludF90 eXBlX29jbElQdkVFTlNfMThTSEFERVJfUFJJTlRGX1RZUEUKLSB9Ci0gCi0gOyBGdW5jdGlvbiBB dHRyczogYWx3YXlzaW5saW5lIGlubGluZWhpbnQgbm91bndpbmQKLS1kZWZpbmUgaW50ZXJuYWwg emVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEzVmFyeWlu Z1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVF9UMF8oaTggc2ln bmV4dCwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsIGFsaWduIDMyLCAlInN0cnVjdC5Qcmlu dEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcg ITIwNjEgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFp bDE0c3dpdGNoRW5jb2RpbmdJMTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVF Yk5TXzhFbmNvZGluZ0VUX1QwXyhpOCBzaWduZXh0LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2 YWwoJWNsYXNzLlZhcnlpbmdXcml0ZXIpIGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVu Y29kaW5nNFZhcnlpbmciKiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlp bmciKSBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITIwNjEgewotICAgJTQgPSBhbGxvY2EgaTgs IGFsaWduIDEKLSAgICU1ID0gYWxsb2NhICVjbGFzcy5WYXJ5aW5nV3JpdGVyLCBhbGlnbiAzMgot ICAgJTYgPSBhbGxvY2EgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiwgYWxp Z24gMQotQEAgLTEwMDM2LDcgKzEwMDM2LDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEg QF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1ZhcnlpbmdXcml0ZXIKLSAg ICUyMiA9IGJpdGNhc3QgJWNsYXNzLlZhcnlpbmdXcml0ZXIqICU1IHRvIGk4KiwgIWRiZyAhMjA2 MwotICAgJTIzID0gYml0Y2FzdCAlY2xhc3MuVmFyeWluZ1dyaXRlciogJTEgdG8gaTgqLCAhZGJn ICEyMDYzCi0gICBjYWxsIHZvaWQgQGxsdm0ubWVtY3B5LnAwaTgucDBpOC5pNjQoaTgqIGFsaWdu IDMyICUyMiwgaTgqIGFsaWduIDMyICUyMywgaTY0IDY0LCBpMSBmYWxzZSksICFkYmcgITIwNjMs ICF0YmFhLnN0cnVjdCAhMTk3Ci0tICAlMjQgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludElu Zm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJYjEzVmFyeWluZ1dyaXRlck5TXzE2RW5j b2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTIxLCAlY2xh c3MuVmFyeWluZ1dyaXRlciogYnl2YWwgYWxpZ24gMzIgJTUsICUic3RydWN0LlByaW50SW5mbzo6 RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsIGFsaWduIDEgJTYpLCAhZGJnICEyMDY0Ci0rICAlMjQg PSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5j b2RpbmdJYjEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2Rp bmdFVDBfVDFfKGk4IHNpZ25leHQgJTIxLCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwoJWNs YXNzLlZhcnlpbmdXcml0ZXIpIGFsaWduIDMyICU1LCAlInN0cnVjdC5QcmludEluZm86OkVuY29k aW5nNFZhcnlpbmciKiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmci KSBhbGlnbiAxICU2KSwgIWRiZyAhMjA2NAotICAgYnIgaTEgJTI0LCBsYWJlbCAlNjAsIGxhYmVs ICUyNSwgIWRiZyAhMjA2NQotIAotIDsgPGxhYmVsPjoyNTogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgOyBwcmVkcyA9ICUzCi1AQCAtMTAwNDQsNyArMTAwNDQsNyBAQCBkZWZp bmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29k aW5nSTEzVmFyeWluZ1dyaXRlcgotICAgJTI3ID0gYml0Y2FzdCAlY2xhc3MuVmFyeWluZ1dyaXRl ciogJTcgdG8gaTgqLCAhZGJnICEyMDY3Ci0gICAlMjggPSBiaXRjYXN0ICVjbGFzcy5WYXJ5aW5n V3JpdGVyKiAlMSB0byBpOCosICFkYmcgITIwNjcKLSAgIGNhbGwgdm9pZCBAbGx2bS5tZW1jcHku cDBpOC5wMGk4Lmk2NChpOCogYWxpZ24gMzIgJTI3LCBpOCogYWxpZ24gMzIgJTI4LCBpNjQgNjQs IGkxIGZhbHNlKSwgIWRiZyAhMjA2NywgIXRiYWEuc3RydWN0ICExOTcKLS0gICUyOSA9IGNhbGwg emVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lp MTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9U MV8oaTggc2lnbmV4dCAlMjYsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCBhbGlnbiAzMiAl NywgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwgYWxpZ24gMSAl OCksICFkYmcgITIwNjgKLSsgICUyOSA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZk ZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lpMTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGlu ZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlMjYsICVjbGFzcy5W YXJ5aW5nV3JpdGVyKiBieXZhbCglY2xhc3MuVmFyeWluZ1dyaXRlcikgYWxpZ24gMzIgJTcsICUi c3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsKCUic3RydWN0LlByaW50 SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIpIGFsaWduIDEgJTgpLCAhZGJnICEyMDY4Ci0gICBiciBp MSAlMjksIGxhYmVsICU2MCwgbGFiZWwgJTMwLCAhZGJnICEyMDY5Ci0gCi0gOyA8bGFiZWw+OjMw OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7IHByZWRzID0gJTI1Ci1AQCAt MTAwNTIsNyArMTAwNTIsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50 SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEzVmFyeWluZ1dyaXRlcgotICAgJTMyID0gYml0 Y2FzdCAlY2xhc3MuVmFyeWluZ1dyaXRlciogJTkgdG8gaTgqLCAhZGJnICEyMDcxCi0gICAlMzMg PSBiaXRjYXN0ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiAlMSB0byBpOCosICFkYmcgITIwNzEKLSAg IGNhbGwgdm9pZCBAbGx2bS5tZW1jcHkucDBpOC5wMGk4Lmk2NChpOCogYWxpZ24gMzIgJTMyLCBp OCogYWxpZ24gMzIgJTMzLCBpNjQgNjQsIGkxIGZhbHNlKSwgIWRiZyAhMjA3MSwgIXRiYWEuc3Ry dWN0ICExOTcKLS0gICUzNCA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwy MWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lqMTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5 aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlMzEsICVjbGFzcy5WYXJ5aW5n V3JpdGVyKiBieXZhbCBhbGlnbiAzMiAlOSwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRW YXJ5aW5nIiogYnl2YWwgYWxpZ24gMSAlMTApLCAhZGJnICEyMDcyCi0rICAlMzQgPSBjYWxsIHpl cm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJajEz VmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFf KGk4IHNpZ25leHQgJTMxLCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwoJWNsYXNzLlZhcnlp bmdXcml0ZXIpIGFsaWduIDMyICU5LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlp bmciKiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKSBhbGlnbiAx ICUxMCksICFkYmcgITIwNzIKLSAgIGJyIGkxICUzNCwgbGFiZWwgJTYwLCBsYWJlbCAlMzUsICFk YmcgITIwNzMKLSAKLSA7IDxsYWJlbD46MzU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDsgcHJlZHMgPSAlMzAKLUBAIC0xMDA2MCw3ICsxMDA2MCw3IEBAIGRlZmluZSBpbnRl cm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNW YXJ5aW5nV3JpdGVyCi0gICAlMzcgPSBiaXRjYXN0ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiAlMTEg dG8gaTgqLCAhZGJnICEyMDc1Ci0gICAlMzggPSBiaXRjYXN0ICVjbGFzcy5WYXJ5aW5nV3JpdGVy KiAlMSB0byBpOCosICFkYmcgITIwNzUKLSAgIGNhbGwgdm9pZCBAbGx2bS5tZW1jcHkucDBpOC5w MGk4Lmk2NChpOCogYWxpZ24gMzIgJTM3LCBpOCogYWxpZ24gMzIgJTM4LCBpNjQgNjQsIGkxIGZh bHNlKSwgIWRiZyAhMjA3NSwgIXRiYWEuc3RydWN0ICExOTcKLS0gICUzOSA9IGNhbGwgemVyb2V4 dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lmMTNWYXJ5 aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTgg c2lnbmV4dCAlMzYsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCBhbGlnbiAzMiAlMTEsICUi c3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsIGFsaWduIDEgJTEyKSwg IWRiZyAhMjA3NgotKyAgJTM5ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFp bDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWYxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZh cnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICUzNiwgJWNsYXNzLlZhcnlp bmdXcml0ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5aW5nV3JpdGVyKSBhbGlnbiAzMiAlMTEsICUic3Ry dWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5m bzo6RW5jb2Rpbmc0VmFyeWluZyIpIGFsaWduIDEgJTEyKSwgIWRiZyAhMjA3NgotICAgYnIgaTEg JTM5LCBsYWJlbCAlNjAsIGxhYmVsICU0MCwgIWRiZyAhMjA3NwotIAotIDsgPGxhYmVsPjo0MDog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOyBwcmVkcyA9ICUzNQotQEAgLTEw MDY4LDcgKzEwMDY4LDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludElu Zm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1ZhcnlpbmdXcml0ZXIKLSAgICU0MiA9IGJpdGNh c3QgJWNsYXNzLlZhcnlpbmdXcml0ZXIqICUxMyB0byBpOCosICFkYmcgITIwNzkKLSAgICU0MyA9 IGJpdGNhc3QgJWNsYXNzLlZhcnlpbmdXcml0ZXIqICUxIHRvIGk4KiwgIWRiZyAhMjA3OQotICAg Y2FsbCB2b2lkIEBsbHZtLm1lbWNweS5wMGk4LnAwaTguaTY0KGk4KiBhbGlnbiAzMiAlNDIsIGk4 KiBhbGlnbiAzMiAlNDMsIGk2NCA2NCwgaTEgZmFsc2UpLCAhZGJnICEyMDc5LCAhdGJhYS5zdHJ1 Y3QgITE5NwotLSAgJTQ0ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIx YXBwbHlJZlByb3BlckVuY29kaW5nSXgxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlp bmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICU0MSwgJWNsYXNzLlZhcnlpbmdX cml0ZXIqIGJ5dmFsIGFsaWduIDMyICUxMywgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRW YXJ5aW5nIiogYnl2YWwgYWxpZ24gMSAlMTQpLCAhZGJnICEyMDgwCi0rICAlNDQgPSBjYWxsIHpl cm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJeDEz VmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFf KGk4IHNpZ25leHQgJTQxLCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwoJWNsYXNzLlZhcnlp bmdXcml0ZXIpIGFsaWduIDMyICUxMywgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5 aW5nIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIikgYWxpZ24g MSAlMTQpLCAhZGJnICEyMDgwCi0gICBiciBpMSAlNDQsIGxhYmVsICU2MCwgbGFiZWwgJTQ1LCAh ZGJnICEyMDgxCi0gCi0gOyA8bGFiZWw+OjQ1OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICA7IHByZWRzID0gJTQwCi1AQCAtMTAwNzYsNyArMTAwNzYsNyBAQCBkZWZpbmUgaW50 ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEz VmFyeWluZ1dyaXRlcgotICAgJTQ3ID0gYml0Y2FzdCAlY2xhc3MuVmFyeWluZ1dyaXRlciogJTE1 IHRvIGk4KiwgIWRiZyAhMjA4MwotICAgJTQ4ID0gYml0Y2FzdCAlY2xhc3MuVmFyeWluZ1dyaXRl ciogJTEgdG8gaTgqLCAhZGJnICEyMDgzCi0gICBjYWxsIHZvaWQgQGxsdm0ubWVtY3B5LnAwaTgu cDBpOC5pNjQoaTgqIGFsaWduIDMyICU0NywgaTgqIGFsaWduIDMyICU0OCwgaTY0IDY0LCBpMSBm YWxzZSksICFkYmcgITIwODMsICF0YmFhLnN0cnVjdCAhMTk3Ci0tICAlNDkgPSBjYWxsIHplcm9l eHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJeTEzVmFy eWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4 IHNpZ25leHQgJTQ2LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwgYWxpZ24gMzIgJTE1LCAl InN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCBhbGlnbiAxICUxNiks ICFkYmcgITIwODQKLSsgICU0OSA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRh aWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0l5MTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRW YXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlNDYsICVjbGFzcy5WYXJ5 aW5nV3JpdGVyKiBieXZhbCglY2xhc3MuVmFyeWluZ1dyaXRlcikgYWxpZ24gMzIgJTE1LCAlInN0 cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCglInN0cnVjdC5QcmludElu Zm86OkVuY29kaW5nNFZhcnlpbmciKSBhbGlnbiAxICUxNiksICFkYmcgITIwODQKLSAgIGJyIGkx ICU0OSwgbGFiZWwgJTYwLCBsYWJlbCAlNTAsICFkYmcgITIwODUKLSAKLSA7IDxsYWJlbD46NTA6 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsgcHJlZHMgPSAlNDUKLUBAIC0x MDA4NCw3ICsxMDA4NCw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJ bmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNWYXJ5aW5nV3JpdGVyCi0gICAlNTIgPSBiaXRj YXN0ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiAlMTcgdG8gaTgqLCAhZGJnICEyMDg3Ci0gICAlNTMg PSBiaXRjYXN0ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiAlMSB0byBpOCosICFkYmcgITIwODcKLSAg IGNhbGwgdm9pZCBAbGx2bS5tZW1jcHkucDBpOC5wMGk4Lmk2NChpOCogYWxpZ24gMzIgJTUyLCBp OCogYWxpZ24gMzIgJTUzLCBpNjQgNjQsIGkxIGZhbHNlKSwgIWRiZyAhMjA4NywgIXRiYWEuc3Ry dWN0ICExOTcKLS0gICU1NCA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwy MWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lkMTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5 aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlNTEsICVjbGFzcy5WYXJ5aW5n V3JpdGVyKiBieXZhbCBhbGlnbiAzMiAlMTcsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0 VmFyeWluZyIqIGJ5dmFsIGFsaWduIDEgJTE4KSwgIWRiZyAhMjA4OAotKyAgJTU0ID0gY2FsbCB6 ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWQx M1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1Qx XyhpOCBzaWduZXh0ICU1MSwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5 aW5nV3JpdGVyKSBhbGlnbiAzMiAlMTcsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFy eWluZyIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIpIGFsaWdu IDEgJTE4KSwgIWRiZyAhMjA4OAotICAgYnIgaTEgJTU0LCBsYWJlbCAlNjAsIGxhYmVsICU1NSwg IWRiZyAhMjA4OQotIAotIDsgPGxhYmVsPjo1NTogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgOyBwcmVkcyA9ICU1MAotQEAgLTEwMDkyLDcgKzEwMDkyLDcgQEAgZGVmaW5lIGlu dGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kx M1ZhcnlpbmdXcml0ZXIKLSAgICU1NyA9IGJpdGNhc3QgJWNsYXNzLlZhcnlpbmdXcml0ZXIqICUx OSB0byBpOCosICFkYmcgITIwOTEKLSAgICU1OCA9IGJpdGNhc3QgJWNsYXNzLlZhcnlpbmdXcml0 ZXIqICUxIHRvIGk4KiwgIWRiZyAhMjA5MQotICAgY2FsbCB2b2lkIEBsbHZtLm1lbWNweS5wMGk4 LnAwaTguaTY0KGk4KiBhbGlnbiAzMiAlNTcsIGk4KiBhbGlnbiAzMiAlNTgsIGk2NCA2NCwgaTEg ZmFsc2UpLCAhZGJnICEyMDkxLCAhdGJhYS5zdHJ1Y3QgITE5NwotLSAgJTU5ID0gY2FsbCB6ZXJv ZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSVB2MTNW YXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8o aTggc2lnbmV4dCAlNTYsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCBhbGlnbiAzMiAlMTks ICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsIGFsaWduIDEgJTIw KSwgIWRiZyAhMjA5MgotKyAgJTU5ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRl dGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSVB2MTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGlu ZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlNTYsICVjbGFzcy5W YXJ5aW5nV3JpdGVyKiBieXZhbCglY2xhc3MuVmFyeWluZ1dyaXRlcikgYWxpZ24gMzIgJTE5LCAl InN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCglInN0cnVjdC5Qcmlu dEluZm86OkVuY29kaW5nNFZhcnlpbmciKSBhbGlnbiAxICUyMCksICFkYmcgITIwOTIKLSAgIGJy IGxhYmVsICU2MCwgIWRiZyAhMjA4OQotIAotIDsgPGxhYmVsPjo2MDogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgOyBwcmVkcyA9ICU1NSwgJTUwLCAlNDUsICU0MCwgJTM1LCAl MzAsICUyNSwgJTMKLUBAIC0xMDEwMSw3ICsxMDEwMSw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJv ZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNWYXJ5aW5nV3Jp dGVyCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IGFsd2F5c2lubGluZSBpbmxpbmVoaW50IG5v dW53aW5kCi0tZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWls MjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJYjEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFy eWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5WYXJ5aW5nV3Jp dGVyKiBieXZhbCBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5n IiogYnl2YWwgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICEyMDk0IHsKLStkZWZpbmUgaW50ZXJu YWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGlu Z0liMTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VU MF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5 aW5nV3JpdGVyKSBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5n IiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIikgYWxpZ24gMSkg IzI1IGNvbWRhdCAhZGJnICEyMDk0IHsKLSAgICU0ID0gYWxsb2NhIGkxLCBhbGlnbiAxCi0gICAl NSA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgc3RvcmUgaTggJTAsIGk4KiAlNSwgYWxpZ24gMSwg IXRiYWEgITE5MwotQEAgLTEwMTI3LDcgKzEwMTI3LDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9l eHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJYjEzVmFy eWkKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogYWx3YXlzaW5saW5lIGlubGluZWhpbnQgbm91 bndpbmQKLS1kZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwy MWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lpMTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5 aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlZhcnlpbmdXcml0 ZXIqIGJ5dmFsIGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmci KiBieXZhbCBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITIxMDMgewotK2RlZmluZSBpbnRlcm5h bCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5n SWkxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQw X1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwoJWNsYXNzLlZhcnlp bmdXcml0ZXIpIGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmci KiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKSBhbGlnbiAxKSAj MjUgY29tZGF0ICFkYmcgITIxMDMgewotICAgJTQgPSBhbGxvY2EgaTEsIGFsaWduIDEKLSAgICU1 ID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0gICBzdG9yZSBpOCAlMCwgaTgqICU1LCBhbGlnbiAxLCAh dGJhYSAhMTkzCi1AQCAtMTAxNTMsNyArMTAxNTMsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4 dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lpMTNWYXJ5 aQotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vu d2luZAotLWRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIx YXBwbHlJZlByb3BlckVuY29kaW5nSWoxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlp bmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVmFyeWluZ1dyaXRl ciogYnl2YWwgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIq IGJ5dmFsIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMjExMiB7Ci0rZGVmaW5lIGludGVybmFs IHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJ ajEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBf VDFfKGk4IHNpZ25leHQsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCglY2xhc3MuVmFyeWlu Z1dyaXRlcikgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIq IGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIpIGFsaWduIDEpICMy NSBjb21kYXQgIWRiZyAhMjExMiB7Ci0gICAlNCA9IGFsbG9jYSBpMSwgYWxpZ24gMQotICAgJTUg PSBhbGxvY2EgaTgsIGFsaWduIDEKLSAgIHN0b3JlIGk4ICUwLCBpOCogJTUsIGFsaWduIDEsICF0 YmFhICExOTMKLUBAIC0xMDE3OSw3ICsxMDE3OSw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0 IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWoxM1Zhcnlp Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IGFsd2F5c2lubGluZSBpbmxpbmVoaW50IG5vdW53 aW5kCi0tZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFh cHBseUlmUHJvcGVyRW5jb2RpbmdJZjEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWlu Z0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5WYXJ5aW5nV3JpdGVy KiBieXZhbCBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiog Ynl2YWwgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICEyMTIxIHsKLStkZWZpbmUgaW50ZXJuYWwg emVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lm MTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9U MV8oaTggc2lnbmV4dCwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5aW5n V3JpdGVyKSBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiog Ynl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIikgYWxpZ24gMSkgIzI1 IGNvbWRhdCAhZGJnICEyMTIxIHsKLSAgICU0ID0gYWxsb2NhIGkxLCBhbGlnbiAxCi0gICAlNSA9 IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgc3RvcmUgaTggJTAsIGk4KiAlNSwgYWxpZ24gMSwgIXRi YWEgITE5MwotQEAgLTEwMjA1LDcgKzEwMjA1LDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQg aTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJZjEzVmFyeWkK LSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogYWx3YXlzaW5saW5lIGlubGluZWhpbnQgbm91bndp bmQKLS1kZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFw cGx5SWZQcm9wZXJFbmNvZGluZ0l4MTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5n RUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlZhcnlpbmdXcml0ZXIq IGJ5dmFsIGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBi eXZhbCBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITIxMzAgewotK2RlZmluZSBpbnRlcm5hbCB6 ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSXgx M1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1Qx XyhpOCBzaWduZXh0LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwoJWNsYXNzLlZhcnlpbmdX cml0ZXIpIGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBi eXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKSBhbGlnbiAxKSAjMjUg Y29tZGF0ICFkYmcgITIxMzAgewotICAgJTQgPSBhbGxvY2EgaTEsIGFsaWduIDEKLSAgICU1ID0g YWxsb2NhIGk4LCBhbGlnbiAxCi0gICBzdG9yZSBpOCAlMCwgaTgqICU1LCBhbGlnbiAxLCAhdGJh YSAhMTkzCi1AQCAtMTAyMzEsNyArMTAyMzEsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBp MSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0l4MTNWYXJ5aQot IH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2lu ZAotLWRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBw bHlJZlByb3BlckVuY29kaW5nSXkxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdF RUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVmFyeWluZ1dyaXRlciog Ynl2YWwgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5 dmFsIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMjEzOSB7Ci0rZGVmaW5lIGludGVybmFsIHpl cm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJeTEz VmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFf KGk4IHNpZ25leHQsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCglY2xhc3MuVmFyeWluZ1dy aXRlcikgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5 dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIpIGFsaWduIDEpICMyNSBj b21kYXQgIWRiZyAhMjEzOSB7Ci0gICAlNCA9IGFsbG9jYSBpMSwgYWxpZ24gMQotICAgJTUgPSBh bGxvY2EgaTgsIGFsaWduIDEKLSAgIHN0b3JlIGk4ICUwLCBpOCogJTUsIGFsaWduIDEsICF0YmFh ICExOTMKLUBAIC0xMDI1Nyw3ICsxMDI1Nyw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkx IEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSXkxM1ZhcnlpCi0g fQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IGFsd2F5c2lubGluZSBpbmxpbmVoaW50IG5vdW53aW5k Ci0tZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBs eUlmUHJvcGVyRW5jb2RpbmdJZDEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VF RWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBi eXZhbCBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2 YWwgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICEyMTQ4IHsKLStkZWZpbmUgaW50ZXJuYWwgemVy b2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lkMTNW YXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8o aTggc2lnbmV4dCwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5aW5nV3Jp dGVyKSBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2 YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIikgYWxpZ24gMSkgIzI1IGNv bWRhdCAhZGJnICEyMTQ4IHsKLSAgICU0ID0gYWxsb2NhIGkxLCBhbGlnbiAxCi0gICAlNSA9IGFs bG9jYSBpOCwgYWxpZ24gMQotICAgc3RvcmUgaTggJTAsIGk4KiAlNSwgYWxpZ24gMSwgIXRiYWEg ITE5MwotQEAgLTEwMjgzLDcgKzEwMjgzLDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEg QF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJZDEzVmFyeWkKLSB9 Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogYWx3YXlzaW5saW5lIGlubGluZWhpbnQgbm91bndpbmQK LS1kZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5 SWZQcm9wZXJFbmNvZGluZ0lQdjEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VF RWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBi eXZhbCBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2 YWwgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICEyMTU3IHsKLStkZWZpbmUgaW50ZXJuYWwgemVy b2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lQdjEz VmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFf KGk4IHNpZ25leHQsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCglY2xhc3MuVmFyeWluZ1dy aXRlcikgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5 dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIpIGFsaWduIDEpICMyNSBj b21kYXQgIWRiZyAhMjE1NyB7Ci0gICAlNCA9IGFsbG9jYSBpMSwgYWxpZ24gMQotICAgJTUgPSBh bGxvY2EgaTgsIGFsaWduIDEKLSAgIHN0b3JlIGk4ICUwLCBpOCogJTUsIGFsaWduIDEsICF0YmFh ICExOTMKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvaXNwYy90ZW1wbGF0ZSBiL3NyY3BrZ3MvaXNwYy90 ZW1wbGF0ZQppbmRleCA5YzNhY2I0MmE5Y2YuLmQ2MWRjYzFiOTYxYSAxMDA2NDQKLS0tIGEvc3Jj cGtncy9pc3BjL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvaXNwYy90ZW1wbGF0ZQpAQCAtMSwxOCAr MSwxOSBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnaXNwYycKIHBrZ25hbWU9aXNwYwotdmVyc2lv bj0xLjE1LjAKLXJldmlzaW9uPTIKK3ZlcnNpb249MS4xOC4xLnIyOTArZTg4ZTQ5ZQorcmV2aXNp b249MQorX2lzcGNfY29tbWl0PWU4OGU0OWViMTYxYWE1ZTc1YWVjYzg0M2Q0NzlkNWU3NTdmNWM0 M2UKIGFyY2hzPSJ4ODZfNjQqIgogYnVpbGRfc3R5bGU9Y21ha2UKLWNvbmZpZ3VyZV9hcmdzPSIt RElTUENfTk9fRFVNUFM9T04gLURBUk1fRU5BQkxFRD1PRkYiCitjb25maWd1cmVfYXJncz0iLURB Uk1fRU5BQkxFRD1PRkYgLURJU1BDX0lOQ0xVREVfRVhBTVBMRVM9T0ZGIC1ESVNQQ19JTkNMVURF X1JUPU9GRiIKIGhvc3RtYWtlZGVwZW5kcz0iY2xhbmcgY2xhbmctdG9vbHMtZXh0cmEgcHl0aG9u MyBtNCBiaXNvbiBmbGV4IGxsdm0iCiBtYWtlZGVwZW5kcz0ibmN1cnNlcy1kZXZlbCBuY3Vyc2Vz LWxpYnRpbmZvLWRldmVsIHpsaWItZGV2ZWwiCiBzaG9ydF9kZXNjPSJDb21waWxlciBmb3IgaGln aC1wZXJmb3JtYW5jZSBTSU1EIHByb2dyYW1taW5nIG9uIHRoZSBDUFUiCiBtYWludGFpbmVyPSJB bmRyZWEgQnJhbmNhbGVvbmkgPGFiY0Bwb21wZWwubWU+IgogbGljZW5zZT0iQlNELTMtQ2xhdXNl IgogaG9tZXBhZ2U9Imh0dHBzOi8vaXNwYy5naXRodWIuaW8iCi1kaXN0ZmlsZXM9Imh0dHBzOi8v Z2l0aHViLmNvbS9pc3BjL2lzcGMvYXJjaGl2ZS92JHt2ZXJzaW9ufS50YXIuZ3oiCi1jaGVja3N1 bT0yNjU4ZmYwMGRjMDQ1YWM5ZmNlZmJmNmJkMjZkZmZhZjcyM2IwNTlhOTQyYTI3ZGY5MWJiYjYx YmM1MDNhMjg1CitkaXN0ZmlsZXM9Imh0dHBzOi8vZ2l0aHViLmNvbS9pc3BjL2lzcGMvYXJjaGl2 ZS8ke19pc3BjX2NvbW1pdH0udGFyLmd6IgorY2hlY2tzdW09ZTAxODFmMGY0ZGM3ODgwOTE2NmE4 YzI4YTQ2YTNjYjFmMjRkM2RiYmVhZDRmNGZmN2U0ZWJmZDhkMTA5ZWJiZAogbm9jcm9zcz15ZXMK IG5vcGllPXllcwogCkBAIC0yMiw3ICsyMyw3IEBAIGNhc2UgIiRYQlBTX1RBUkdFVF9NQUNISU5F IiBpbgogZXNhYwogCiBwcmVfYnVpbGQoKSB7Ci0Jc2VkIC1pICcvdGluZm8vZCcgQ01ha2VMaXN0 cy50eHQKKwl2c2VkIC1pICcvdGluZm8vZCcgQ01ha2VMaXN0cy50eHQKIH0KIAogcG9zdF9pbnN0 YWxsKCkgewo= --===============2127465499525270122==--