From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (qmail 28022 invoked from network); 31 Mar 2022 16:03:53 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 31 Mar 2022 16:03:53 -0000 Content-Type: multipart/mixed; boundary="===============3304904132392411013==" MIME-Version: 1.0 Subject: =?utf8?q?Re=3A_=5BPR_PATCH=5D_=5BUpdated=5D_Llvm13?= To: ml@inbox.vuxu.org From: motorto Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Thu, 31 Mar 2022 18:03:52 +0200 List-Id: Message-ID: <20220331160352.XTxzCz850LI2q3Dfz-s_jHCCD1gLOacAeIok-sJIaVc@z> GitHub notification mails are now in MIME to allow UTF8. --===============3304904132392411013== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgbW90b3J0byBhZ2FpbnN0IG1hc3Rl ciBvbiB0aGUgdm9pZC1wYWNrYWdlcyByZXBvc2l0b3J5CgpodHRwczovL2dpdGh1Yi5jb20vbW90 b3J0by92b2lkLXBhY2thZ2VzIGxsdm0xMwpodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92 b2lkLXBhY2thZ2VzL3B1bGwvMzYyMjkKCkxsdm0xMwpUaGlzIGFkZHMgTExWTSAxMyBhbmQgdXBk YXRlcyBmcm9tIExMVk0gMTIuDQoNCldvcmstaW4tcHJvZ3Jlc3MNCg0KVGhlIGZvbGxvd2luZyBw YWNrYWdlcyB3ZXJlIHJlbW92ZWQ6DQogKiBiZWlnbmV0IC0tIHVwc3RyZWFtIGlzIGRlYWQNCiAq IHJ1bmRpcmQgLS0gIGhhcyBiZWVuIGRlcHJlY2F0ZWQgYnkgdXBzdHJlYW0gd2hpY2ggcmVjb21t ZW5kcyB1c2luZyBkdW1iX3J1bnRpbWVfZGlyDQoNClRoZSBmb2xsb3dpbmcgcGFja2FnZXMgd2Vy ZSB1cGRhdGVkIG9yIHBhdGNoZWQ6DQogKiBpc3BjDQogKiBxdGNyZWF0b3INCiAqIHJpdmVyDQog KiB6aWcNCg0KUmVidWlsdCBwYWNrYWdlczoNCg0KKHJlYnVpbHQgYmFzZWQgb24gb3V0cHV0IG9m OiAgYHhyZXZzaGxpYiBsaWJsbHZtezEyLDEzfWAgKQ0KDQoNCiogU1BJUlYtTExWTS1UcmFuc2xh dG9yIC0gRE9FU04nVCBCVUlMRCwgbmVlZCBoZWxwIHVwZGF0aW5nIHRoaXMgcGFja2FnZQ0KKiBi Y2MNCiogYnBmdHJhY2UgDQoqIGNjbHMgDQoqIGNsYXp5IA0KKiBjb2RlbGl0ZSANCiogZ2hkbCAt LSBET0VTTidUIEJVSUxELCBuZWVkIGhlbHAgdXBkYXRpbmcgdGhpcyBwYWNrYWdlDQoqIGdub21l LWJ1aWxkZXINCiogaW5jbHVkZS13aGF0LXlvdS11c2UgDQoqIGp1Q2krKyANCioga2RldmVsb3Ag DQoqIGxkYw0KKiBtZXNhIA0KKiBxdDUgDQoqIHJ0YWdzIA0KKiBydXN0DQoqIHNoaWJva2VuMiAN CiogdGlsaXgNCg0KVXBkYXRlZCBUZW1wbGF0ZXM6DQoNCiogQ2hyb21pdW0NCg0KKEkgYW0gcHJv YmFibHkgbWlzc2luZyBzb21lIHBhY2thZ2VzKQ0KDQoNClRoYW5rcyBAREJMb3VpcyBmb3IgeW91 ciBoYXJkIHdvcmshIA0KDQogW2NpIHNraXBdDQogDQogSSBudWtlZCB0aGUgIzM1ODk1CgpBIHBh dGNoIGZpbGUgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2thZ2Vz L3B1bGwvMzYyMjkucGF0Y2ggaXMgYXR0YWNoZWQ= --===============3304904132392411013== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-llvm13-36229.patch" RnJvbSBjMzA5ZDJjNzJlOTBiNTZkNjBiYWRhMjc5NjYyOTNhNDg1NDhmOTNjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/TG91aXM9MjBEdXByPUMzPUE5PTIwQmVydG9u aT89CiA8bG91aXNkYkBsZXNwZXRpdHNwZWRlc3RyZXMub3JnPgpEYXRlOiBGcmksIDMxIERlYyAy MDIxIDE2OjIxOjMwICswMjAwClN1YmplY3Q6IFtQQVRDSCAwMS8zMV0gTmV3IHBhY2thZ2U6IGxs dm0xMy0xMy4wLjAKCi0tLQogY29tbW9uL3NobGlicyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHwgIDE2ICstCiBzcmNwa2dzL2NsYW5nICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfCAgIDIgKy0KIHNyY3BrZ3MvY2xhbmctYW5hbHl6ZXIgICAgICAgICAgICAgICAgICAg ICAgICB8ICAgMiArLQogc3JjcGtncy9jbGFuZy10b29scy1leHRyYSAgICAgICAgICAgICAgICAg ICAgIHwgICAyICstCiBzcmNwa2dzL2xpYmNsYW5nICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfCAgIDIgKy0KIHNyY3BrZ3MvbGliY2xhbmctY3BwICAgICAgICAgICAgICAgICAgICAgICAg ICB8ICAgMiArLQogc3JjcGtncy9saWJjeHggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHwgICAyICstCiBzcmNwa2dzL2xpYmN4eC1kZXZlbCAgICAgICAgICAgICAgICAgICAgICAgICAg fCAgIDIgKy0KIHNyY3BrZ3MvbGliY3h4YWJpICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8 ICAgMiArLQogc3JjcGtncy9saWJjeHhhYmktZGV2ZWwgICAgICAgICAgICAgICAgICAgICAgIHwg ICAyICstCiBzcmNwa2dzL2xpYmxsdm0xMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg IDEgKwogc3JjcGtncy9saWJvbXAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAy ICstCiBzcmNwa2dzL2xpYm9tcC1kZXZlbCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIg Ky0KIHNyY3BrZ3MvbGxkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiAr LQogc3JjcGtncy9sbGQtZGV2ZWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyICst CiBzcmNwa2dzL2xsZGIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0K IHNyY3BrZ3MvbGxkYi1kZXZlbCAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQog c3JjcGtncy9sbHZtLWxpYnVud2luZCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyICstCiBz cmNwa2dzL2xsdm0tbGlidW53aW5kLWRldmVsICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIC4u Li9sbHZtMTMvZmlsZXMvbGx2bS1Db25maWctbGx2bS1jb25maWcuaCAgICB8ICAgOSArCiAuLi5j bGFuZy0wMDEtZml4LXVud2luZC1jaGFpbi1pbmNsdXNpb24ucGF0Y2ggfCAgNDQgKysKIC4uLi9w YXRjaGVzL2NsYW5nLTAwMi1hZGQtbXVzbC10cmlwbGVzLnBhdGNoICB8IDExMCArKysrKwogLi4u L2NsYW5nLTAwMy1wcGM2NC1keW5hbWljLWxpbmtlci1wYXRoLnBhdGNoIHwgIDEzICsKIC4uLi9w YXRjaGVzL2NsYW5nLTAwNC1wcGM2NC1tdXNsLWVsZnYyLnBhdGNoICB8ICA0OCArKwogLi4uL2Nv bXBpbGVyLXJ0LWFhcmNoNjQtdWNvbnRleHQucGF0Y2ggICAgICAgIHwgIDExICsKIC4uLi9jb21w aWxlci1ydC1zYW5pdGl6ZXItcHBjNjQtbXVzbC5wYXRjaCAgICB8ICAzNSArKwogLi4uL3BhdGNo ZXMvY29tcGlsZXItcnQteHJheS1wcGM2NC1tdXNsLnBhdGNoIHwgIDYyICsrKwogc3JjcGtncy9s bHZtMTMvcGF0Y2hlcy9saWJjeHgtbXVzbC5wYXRjaCAgICAgIHwgIDI2ICsrCiBzcmNwa2dzL2xs dm0xMy9wYXRjaGVzL2xpYmN4eC1wcGMucGF0Y2ggICAgICAgfCAgMjIgKwogLi4uL2xsdm0xMy9w YXRjaGVzL2xpYmN4eC1zc3Atbm9uc2hhcmVkLnBhdGNoIHwgIDExICsKIHNyY3BrZ3MvbGx2bTEz L3BhdGNoZXMvbGliY3h4YWJpLWRsLnBhdGNoICAgICB8ICAyNSArKwogc3JjcGtncy9sbHZtMTMv cGF0Y2hlcy9saWJ1bndpbmQtcHBjMzIucGF0Y2ggIHwgIDYzICsrKwogc3JjcGtncy9sbHZtMTMv cGF0Y2hlcy9sbGRiLW11c2wucGF0Y2ggICAgICAgIHwgIDMxICsrCiBzcmNwa2dzL2xsdm0xMy9w YXRjaGVzL2xsdm0tMDAxLW11c2wucGF0Y2ggICAgfCAgNTcgKysrCiAuLi4vcGF0Y2hlcy9sbHZt LTAwMi1tdXNsLXBwYzY0LWVsZnYyLnBhdGNoICAgfCAgMzAgKysKIC4uLi9wYXRjaGVzL2xsdm0t MDAzLXBwYy1zZWN1cmVwbHQucGF0Y2ggICAgICB8ICAxMSArCiAuLi4vcGF0Y2hlcy9sbHZtLTAw NC1vdmVycmlkZS1vcHQucGF0Y2ggICAgICAgfCAgMTggKwogLi4uL2xsdm0xMy9wYXRjaGVzL2xs dm0tMDA1LXBwYy1iaWdwaWMucGF0Y2ggIHwgIDM2ICsrCiAuLi4vcGF0Y2hlcy9sbHZtLTAwNi1h YXJjaDY0LW1mX2V4ZWMucGF0Y2ggICAgfCAgMjUgKysKIC4uLi9sbHZtMTMvcGF0Y2hlcy9wcGMz Mi1jb21waWxlci1ydC5wYXRjaCAgICB8ICAyMSArCiBzcmNwa2dzL2xsdm0xMy90ZW1wbGF0ZSAg ICAgICAgICAgICAgICAgICAgICAgfCA0MjMgKysrKysrKysrKysrKysrKysrCiBzcmNwa2dzL2xs dm0xMy91cGRhdGUgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDMgKwogNDIgZmlsZXMgY2hh bmdlZCwgMTE2NSBpbnNlcnRpb25zKCspLCAyMCBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEy MDAwMCBzcmNwa2dzL2xpYmxsdm0xMwogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGx2bTEz L2ZpbGVzL2xsdm0tQ29uZmlnLWxsdm0tY29uZmlnLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNw a2dzL2xsdm0xMy9wYXRjaGVzL2NsYW5nLTAwMS1maXgtdW53aW5kLWNoYWluLWluY2x1c2lvbi5w YXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGx2bTEzL3BhdGNoZXMvY2xhbmctMDAy LWFkZC1tdXNsLXRyaXBsZXMucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xsdm0x My9wYXRjaGVzL2NsYW5nLTAwMy1wcGM2NC1keW5hbWljLWxpbmtlci1wYXRoLnBhdGNoCiBjcmVh dGUgbW9kZSAxMDA2NDQgc3JjcGtncy9sbHZtMTMvcGF0Y2hlcy9jbGFuZy0wMDQtcHBjNjQtbXVz bC1lbGZ2Mi5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGx2bTEzL3BhdGNoZXMv Y29tcGlsZXItcnQtYWFyY2g2NC11Y29udGV4dC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNy Y3BrZ3MvbGx2bTEzL3BhdGNoZXMvY29tcGlsZXItcnQtc2FuaXRpemVyLXBwYzY0LW11c2wucGF0 Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xsdm0xMy9wYXRjaGVzL2NvbXBpbGVyLXJ0 LXhyYXktcHBjNjQtbXVzbC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGx2bTEz L3BhdGNoZXMvbGliY3h4LW11c2wucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xs dm0xMy9wYXRjaGVzL2xpYmN4eC1wcGMucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dz L2xsdm0xMy9wYXRjaGVzL2xpYmN4eC1zc3Atbm9uc2hhcmVkLnBhdGNoCiBjcmVhdGUgbW9kZSAx MDA2NDQgc3JjcGtncy9sbHZtMTMvcGF0Y2hlcy9saWJjeHhhYmktZGwucGF0Y2gKIGNyZWF0ZSBt b2RlIDEwMDY0NCBzcmNwa2dzL2xsdm0xMy9wYXRjaGVzL2xpYnVud2luZC1wcGMzMi5wYXRjaAog Y3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGx2bTEzL3BhdGNoZXMvbGxkYi1tdXNsLnBhdGNo CiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9sbHZtMTMvcGF0Y2hlcy9sbHZtLTAwMS1tdXNs LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9sbHZtMTMvcGF0Y2hlcy9sbHZtLTAw Mi1tdXNsLXBwYzY0LWVsZnYyLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9sbHZt MTMvcGF0Y2hlcy9sbHZtLTAwMy1wcGMtc2VjdXJlcGx0LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2 NDQgc3JjcGtncy9sbHZtMTMvcGF0Y2hlcy9sbHZtLTAwNC1vdmVycmlkZS1vcHQucGF0Y2gKIGNy ZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xsdm0xMy9wYXRjaGVzL2xsdm0tMDA1LXBwYy1iaWdw aWMucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xsdm0xMy9wYXRjaGVzL2xsdm0t MDA2LWFhcmNoNjQtbWZfZXhlYy5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGx2 bTEzL3BhdGNoZXMvcHBjMzItY29tcGlsZXItcnQucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBz cmNwa2dzL2xsdm0xMy90ZW1wbGF0ZQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGx2bTEz L3VwZGF0ZQoKZGlmZiAtLWdpdCBhL2NvbW1vbi9zaGxpYnMgYi9jb21tb24vc2hsaWJzCmluZGV4 IGNjYzU1YTFiMzc3Mi4uNzU2MTU4NWVjNTZlIDEwMDY0NAotLS0gYS9jb21tb24vc2hsaWJzCisr KyBiL2NvbW1vbi9zaGxpYnMKQEAgLTk3MywxMSArOTczLDEyIEBAIGxpYnVjaGFyZGV0LnNvLjAg dWNoYXJkZXQtMC4wLjZfMQogbGliZ3Rrc291cmNldmlld21tLTMuMC5zby4wIGd0a3NvdXJjZXZp ZXdtbS0zLjIuMF8xCiBsaWJ5YWpsLnNvLjIgeWFqbC0yLjAuMV8xCiBsaWJjb25mdXNlLnNvLjIg Y29uZnVzZS0zLjIuMV8xCi1saWJsbGRiLnNvLjEyIGxsZGItMTIuMC4wXzEKLWxpYmNsYW5nLnNv LjEyIGxpYmNsYW5nLTEyLjAuMF8xCi1saWJjbGFuZy1jcHAuc28uMTIgbGliY2xhbmctY3BwLTEy LjAuMF8xCitsaWJsbGRiLnNvLjEzIGxsZGItMTMuMC4wXzEKK2xpYmNsYW5nLnNvLjEzIGxpYmNs YW5nLTEzLjAuMF8xCitsaWJjbGFuZy1jcHAuc28uMTMgbGliY2xhbmctY3BwLTEzLjAuMF8xCiBs aWJMTFZNLTExLnNvIGxpYmxsdm0xMS0xMS4wLjBfMQogbGliTExWTS0xMi5zbyBsaWJsbHZtMTIt MTIuMC4wXzEKK2xpYkxMVk0tMTMuc28gbGlibGx2bTEzLTEzLjAuMF8xCiBsaWJpc29mcy5zby42 IGxpYmlzb2ZzLTAuNi4yNF8xCiBsaWJtcGFjay5zby4wIGxpYm1wYWNrLTEuMC41XzEKIGxpYkdl b0lQLnNvLjEgbGliZ2VvaXAtMS40LjhfMQpAQCAtNDE0NSwzICs0MTQ2LDEyIEBAIGxpYnJ6X2xh bmcuc28uMC4zLjQgcml6aW4tMC4zLjRfMQogbGlicnpfc2VhcmNoLnNvLjAuMy40IHJpemluLTAu My40XzEKIGxpYnJ6X2Jpbi5zby4wLjMuNCByaXppbi0wLjMuNF8xCiBsaWJhcmF2aXMtMC44LnNv LjAgbGliYXJhdmlzLTAuOC4yMV8xCitsaWJvbXAuc28gbGlib21wLTEzLjAuMF8xCitsaWJvbXB0 YXJnZXQucnRsLmFtZGdwdS5zbyBsaWJvbXAtMTMuMC4wXzEKK2xpYm9tcHRhcmdldC5ydGwuY3Vk YS5zbyBsaWJvbXAtMTMuMC4wXzEKK2xpYm9tcHRhcmdldC5ydGwueDg2XzY0LnNvIGxpYm9tcC0x My4wLjBfMQorbGliYXJjaGVyLnNvIGxpYm9tcC0xMy4wLjBfMQorbGlib21wdGFyZ2V0LnNvIGxp Ym9tcC0xMy4wLjBfMQorbGlibGxkYkludGVsRmVhdHVyZXMuc28uMTMgbGxkYi0xMy4wLjBfMQor bGliTFRPLnNvLjEzIGxsdm0xMy0xMy4wLjBfMQorbGliUmVtYXJrcy5zby4xMyBsbHZtMTMtMTMu MC4wXzEKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY2xhbmcgYi9zcmNwa2dzL2NsYW5nCmluZGV4IGNk NjBmZDdhOTgxYi4uZDYzNjZkN2QzYjk1IDEyMDAwMAotLS0gYS9zcmNwa2dzL2NsYW5nCisrKyBi L3NyY3BrZ3MvY2xhbmcKQEAgLTEgKzEgQEAKLWxsdm0xMgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9m IGZpbGUKK2xsdm0xMwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MvY2xhbmctYW5hbHl6ZXIgYi9zcmNwa2dzL2NsYW5nLWFuYWx5emVyCmluZGV4IGNkNjBm ZDdhOTgxYi4uZDYzNjZkN2QzYjk1IDEyMDAwMAotLS0gYS9zcmNwa2dzL2NsYW5nLWFuYWx5emVy CisrKyBiL3NyY3BrZ3MvY2xhbmctYW5hbHl6ZXIKQEAgLTEgKzEgQEAKLWxsdm0xMgpcIE5vIG5l d2xpbmUgYXQgZW5kIG9mIGZpbGUKK2xsdm0xMwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK ZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY2xhbmctdG9vbHMtZXh0cmEgYi9zcmNwa2dzL2NsYW5nLXRv b2xzLWV4dHJhCmluZGV4IGNkNjBmZDdhOTgxYi4uZDYzNjZkN2QzYjk1IDEyMDAwMAotLS0gYS9z cmNwa2dzL2NsYW5nLXRvb2xzLWV4dHJhCisrKyBiL3NyY3BrZ3MvY2xhbmctdG9vbHMtZXh0cmEK QEAgLTEgKzEgQEAKLWxsdm0xMgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK2xsdm0xMwpc IE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGliY2xhbmcg Yi9zcmNwa2dzL2xpYmNsYW5nCmluZGV4IGNkNjBmZDdhOTgxYi4uZDYzNjZkN2QzYjk1IDEyMDAw MAotLS0gYS9zcmNwa2dzL2xpYmNsYW5nCisrKyBiL3NyY3BrZ3MvbGliY2xhbmcKQEAgLTEgKzEg QEAKLWxsdm0xMgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK2xsdm0xMwpcIE5vIG5ld2xp bmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGliY2xhbmctY3BwIGIvc3Jj cGtncy9saWJjbGFuZy1jcHAKaW5kZXggY2Q2MGZkN2E5ODFiLi5kNjM2NmQ3ZDNiOTUgMTIwMDAw Ci0tLSBhL3NyY3BrZ3MvbGliY2xhbmctY3BwCisrKyBiL3NyY3BrZ3MvbGliY2xhbmctY3BwCkBA IC0xICsxIEBACi1sbHZtMTIKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCitsbHZtMTMKXCBO byBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xpYmN4eCBiL3Ny Y3BrZ3MvbGliY3h4CmluZGV4IGNkNjBmZDdhOTgxYi4uZDYzNjZkN2QzYjk1IDEyMDAwMAotLS0g YS9zcmNwa2dzL2xpYmN4eAorKysgYi9zcmNwa2dzL2xpYmN4eApAQCAtMSArMSBAQAotbGx2bTEy ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorbGx2bTEzClwgTm8gbmV3bGluZSBhdCBlbmQg b2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9saWJjeHgtZGV2ZWwgYi9zcmNwa2dzL2xpYmN4 eC1kZXZlbAppbmRleCBjZDYwZmQ3YTk4MWIuLmQ2MzY2ZDdkM2I5NSAxMjAwMDAKLS0tIGEvc3Jj cGtncy9saWJjeHgtZGV2ZWwKKysrIGIvc3JjcGtncy9saWJjeHgtZGV2ZWwKQEAgLTEgKzEgQEAK LWxsdm0xMgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK2xsdm0xMwpcIE5vIG5ld2xpbmUg YXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGliY3h4YWJpIGIvc3JjcGtncy9s aWJjeHhhYmkKaW5kZXggY2Q2MGZkN2E5ODFiLi5kNjM2NmQ3ZDNiOTUgMTIwMDAwCi0tLSBhL3Ny Y3BrZ3MvbGliY3h4YWJpCisrKyBiL3NyY3BrZ3MvbGliY3h4YWJpCkBAIC0xICsxIEBACi1sbHZt MTIKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCitsbHZtMTMKXCBObyBuZXdsaW5lIGF0IGVu ZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xpYmN4eGFiaS1kZXZlbCBiL3NyY3BrZ3Mv bGliY3h4YWJpLWRldmVsCmluZGV4IGNkNjBmZDdhOTgxYi4uZDYzNjZkN2QzYjk1IDEyMDAwMAot LS0gYS9zcmNwa2dzL2xpYmN4eGFiaS1kZXZlbAorKysgYi9zcmNwa2dzL2xpYmN4eGFiaS1kZXZl bApAQCAtMSArMSBAQAotbGx2bTEyClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorbGx2bTEz ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9saWJsbHZt MTMgYi9zcmNwa2dzL2xpYmxsdm0xMwpuZXcgZmlsZSBtb2RlIDEyMDAwMAppbmRleCAwMDAwMDAw MDAwMDAuLmQ2MzY2ZDdkM2I5NQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbGlibGx2bTEz CkBAIC0wLDAgKzEgQEAKK2xsdm0xMwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAt LWdpdCBhL3NyY3BrZ3MvbGlib21wIGIvc3JjcGtncy9saWJvbXAKaW5kZXggY2Q2MGZkN2E5ODFi Li5kNjM2NmQ3ZDNiOTUgMTIwMDAwCi0tLSBhL3NyY3BrZ3MvbGlib21wCisrKyBiL3NyY3BrZ3Mv bGlib21wCkBAIC0xICsxIEBACi1sbHZtMTIKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCits bHZtMTMKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xp Ym9tcC1kZXZlbCBiL3NyY3BrZ3MvbGlib21wLWRldmVsCmluZGV4IGNkNjBmZDdhOTgxYi4uZDYz NjZkN2QzYjk1IDEyMDAwMAotLS0gYS9zcmNwa2dzL2xpYm9tcC1kZXZlbAorKysgYi9zcmNwa2dz L2xpYm9tcC1kZXZlbApAQCAtMSArMSBAQAotbGx2bTEyClwgTm8gbmV3bGluZSBhdCBlbmQgb2Yg ZmlsZQorbGx2bTEzClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9sbGQgYi9zcmNwa2dzL2xsZAppbmRleCBjZDYwZmQ3YTk4MWIuLmQ2MzY2ZDdkM2I5NSAx MjAwMDAKLS0tIGEvc3JjcGtncy9sbGQKKysrIGIvc3JjcGtncy9sbGQKQEAgLTEgKzEgQEAKLWxs dm0xMgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK2xsdm0xMwpcIE5vIG5ld2xpbmUgYXQg ZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGxkLWRldmVsIGIvc3JjcGtncy9sbGQt ZGV2ZWwKaW5kZXggY2Q2MGZkN2E5ODFiLi5kNjM2NmQ3ZDNiOTUgMTIwMDAwCi0tLSBhL3NyY3Br Z3MvbGxkLWRldmVsCisrKyBiL3NyY3BrZ3MvbGxkLWRldmVsCkBAIC0xICsxIEBACi1sbHZtMTIK XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCitsbHZtMTMKXCBObyBuZXdsaW5lIGF0IGVuZCBv ZiBmaWxlCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsZGIgYi9zcmNwa2dzL2xsZGIKaW5kZXggY2Q2 MGZkN2E5ODFiLi5kNjM2NmQ3ZDNiOTUgMTIwMDAwCi0tLSBhL3NyY3BrZ3MvbGxkYgorKysgYi9z cmNwa2dzL2xsZGIKQEAgLTEgKzEgQEAKLWxsdm0xMgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZp bGUKK2xsdm0xMwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyY3Br Z3MvbGxkYi1kZXZlbCBiL3NyY3BrZ3MvbGxkYi1kZXZlbAppbmRleCBjZDYwZmQ3YTk4MWIuLmQ2 MzY2ZDdkM2I5NSAxMjAwMDAKLS0tIGEvc3JjcGtncy9sbGRiLWRldmVsCisrKyBiL3NyY3BrZ3Mv bGxkYi1kZXZlbApAQCAtMSArMSBAQAotbGx2bTEyClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls ZQorbGx2bTEzClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9sbHZtLWxpYnVud2luZCBiL3NyY3BrZ3MvbGx2bS1saWJ1bndpbmQKaW5kZXggY2Q2MGZkN2E5 ODFiLi5kNjM2NmQ3ZDNiOTUgMTIwMDAwCi0tLSBhL3NyY3BrZ3MvbGx2bS1saWJ1bndpbmQKKysr IGIvc3JjcGtncy9sbHZtLWxpYnVud2luZApAQCAtMSArMSBAQAotbGx2bTEyClwgTm8gbmV3bGlu ZSBhdCBlbmQgb2YgZmlsZQorbGx2bTEzClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZm IC0tZ2l0IGEvc3JjcGtncy9sbHZtLWxpYnVud2luZC1kZXZlbCBiL3NyY3BrZ3MvbGx2bS1saWJ1 bndpbmQtZGV2ZWwKaW5kZXggY2Q2MGZkN2E5ODFiLi5kNjM2NmQ3ZDNiOTUgMTIwMDAwCi0tLSBh L3NyY3BrZ3MvbGx2bS1saWJ1bndpbmQtZGV2ZWwKKysrIGIvc3JjcGtncy9sbHZtLWxpYnVud2lu ZC1kZXZlbApAQCAtMSArMSBAQAotbGx2bTEyClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQor bGx2bTEzClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9s bHZtMTMvZmlsZXMvbGx2bS1Db25maWctbGx2bS1jb25maWcuaCBiL3NyY3BrZ3MvbGx2bTEzL2Zp bGVzL2xsdm0tQ29uZmlnLWxsdm0tY29uZmlnLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMDAwLi4yZmEwOGM5YmU2OTYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xs dm0xMy9maWxlcy9sbHZtLUNvbmZpZy1sbHZtLWNvbmZpZy5oCkBAIC0wLDAgKzEsOSBAQAorI2lu Y2x1ZGUgPGJpdHMvd29yZHNpemUuaD4KKworI2lmIF9fV09SRFNJWkUgPT0gMzIKKyNpbmNsdWRl ICJsbHZtLWNvbmZpZy0zMi5oIgorI2VsaWYgX19XT1JEU0laRSA9PSA2NAorI2luY2x1ZGUgImxs dm0tY29uZmlnLTY0LmgiCisjZWxzZQorI2Vycm9yICJVbmtub3duIHdvcmQgc2l6ZSIKKyNlbmRp ZgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtMTMvcGF0Y2hlcy9jbGFuZy0wMDEtZml4LXVud2lu ZC1jaGFpbi1pbmNsdXNpb24ucGF0Y2ggYi9zcmNwa2dzL2xsdm0xMy9wYXRjaGVzL2NsYW5nLTAw MS1maXgtdW53aW5kLWNoYWluLWluY2x1c2lvbi5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAwMDAuLmU0ZWFhNzc4M2U3YQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3Br Z3MvbGx2bTEzL3BhdGNoZXMvY2xhbmctMDAxLWZpeC11bndpbmQtY2hhaW4taW5jbHVzaW9uLnBh dGNoCkBAIC0wLDAgKzEsNDQgQEAKK0Zyb20gMzUyOTc0MTY5ZjBkMmI1ZGEzZDUzMjFmNTg4ZjVl M2I1OTQxMzMwZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEFuZHJlYSBCcmFuY2Fs ZW9uaSA8bWl3YXhlQGdtYWlsLmNvbT4KK0RhdGU6IFR1ZSwgOCBTZXAgMjAxNSAyMjoxNDo1NyAr MDIwMAorU3ViamVjdDogW1BBVENIIDIvN10gZml4IHVud2luZCBjaGFpbiBpbmNsdXNpb24KKwor LS0tCisgbGliL0hlYWRlcnMvdW53aW5kLmggfCA5ICsrKysrLS0tLQorIDEgZmlsZSBjaGFuZ2Vk LCA1IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9saWIvSGVh ZGVycy91bndpbmQuaCBiL2xpYi9IZWFkZXJzL3Vud2luZC5oCitpbmRleCAzMDNkNzkyLi40NGUx MGNjIDEwMDY0NAorLS0tIGEvY2xhbmcvbGliL0hlYWRlcnMvdW53aW5kLmgKKysrKyBiL2NsYW5n L2xpYi9IZWFkZXJzL3Vud2luZC5oCitAQCAtOSw5ICs5LDYgQEAKKyAKKyAvKiBTZWUgIkRhdGEg RGVmaW5pdGlvbnMgZm9yIGxpYmdjY19zIiBpbiB0aGUgTGludXggU3RhbmRhcmQgQmFzZS4qLwor IAorLSNpZm5kZWYgX19DTEFOR19VTldJTkRfSAorLSNkZWZpbmUgX19DTEFOR19VTldJTkRfSAor LQorICNpZiBkZWZpbmVkKF9fQVBQTEVfXykgJiYgX19oYXNfaW5jbHVkZV9uZXh0KDx1bndpbmQu aD4pCisgLyogRGFyd2luIChmcm9tIDExLnggb24pIHByb3ZpZGUgYW4gdW53aW5kLmguIElmIHRo YXQncyBhdmFpbGFibGUsCisgICogdXNlIGl0LiBsaWJ1bndpbmQgd3JhcHMgc29tZSBvZiBpdHMg ZGVmaW5pdGlvbnMgaW4gI2lmZGVmIF9HTlVfU09VUkNFLAorQEAgLTM5LDYgKzM2LDkgQEAKKyAj IGVuZGlmCisgI2Vsc2UKKyAKKysjaWZuZGVmIF9fQ0xBTkdfVU5XSU5EX0gKKysjZGVmaW5lIF9f Q0xBTkdfVU5XSU5EX0gKKysKKyAjaW5jbHVkZSA8c3RkaW50Lmg+CisgCisgI2lmZGVmIF9fY3Bs dXNwbHVzCitAQCAtMzIyLDYgKzMyMiw3IEBAIF9VbndpbmRfUHRyIF9VbndpbmRfR2V0VGV4dFJl bEJhc2Uoc3RydWN0IF9VbndpbmRfQ29udGV4dCAqKTsKKyB9CisgI2VuZGlmCisgCisrI2VuZGlm IC8qIF9fQ0xBTkdfVU5XSU5EX0ggKi8KKysKKyAjZW5kaWYKKyAKKy0jZW5kaWYgLyogX19DTEFO R19VTldJTkRfSCAqLworLS0gCisyLjUuMQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtMTMvcGF0 Y2hlcy9jbGFuZy0wMDItYWRkLW11c2wtdHJpcGxlcy5wYXRjaCBiL3NyY3BrZ3MvbGx2bTEzL3Bh dGNoZXMvY2xhbmctMDAyLWFkZC1tdXNsLXRyaXBsZXMucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4yNTY4OGQ0MGRiYzIKLS0tIC9kZXYvbnVsbAorKysgYi9z cmNwa2dzL2xsdm0xMy9wYXRjaGVzL2NsYW5nLTAwMi1hZGQtbXVzbC10cmlwbGVzLnBhdGNoCkBA IC0wLDAgKzEsMTEwIEBACistLS0gYS9jbGFuZy9saWIvRHJpdmVyL1Rvb2xDaGFpbnMvR251LmNw cAorKysrIGIvY2xhbmcvbGliL0RyaXZlci9Ub29sQ2hhaW5zL0dudS5jcHAKK0BAIC0yMDg2LDcg KzIwODYsOCBAQCB2b2lkIEdlbmVyaWNfR0NDOjpHQ0NJbnN0YWxsYXRpb25EZXRlY3Rvcjo6QWRk RGVmYXVsdEdDQ1ByZWZpeGVzKAorICAgc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IEFSTUhGVHJp cGxlc1tdID0geyJhcm0tbGludXgtZ251ZWFiaWhmIiwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAiYXJtdjdobC1yZWRoYXQtbGludXgtZ251ZWFiaSIsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImFybXY2aGwtc3Vz ZS1saW51eC1nbnVlYWJpIiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAiYXJtdjdobC1zdXNlLWxpbnV4LWdudWVhYmkifTsKKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYXJtdjdobC1zdXNlLWxpbnV4LWdudWVhYmki LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhcm12N2wt bGludXgtZ251ZWFiaWhmIn07CisgICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgQVJNZWJMaWJE aXJzW10gPSB7Ii9saWIifTsKKyAgIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBBUk1lYlRyaXBs ZXNbXSA9IHsiYXJtZWItbGludXgtZ251ZWFiaSIsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgImFybWViLWxpbnV4LWFuZHJvaWRlYWJpIn07CitAQCAtMjE1 Myw4ICsyMTU0LDcgQEAgdm9pZCBHZW5lcmljX0dDQzo6R0NDSW5zdGFsbGF0aW9uRGV0ZWN0b3I6 OkFkZERlZmF1bHRHQ0NQcmVmaXhlcygKKyAgICAgICAicG93ZXJwYzY0LXN1c2UtbGludXgiLCAi cG93ZXJwYy1tb250YXZpc3RhLWxpbnV4c3BlIn07CisgICBzdGF0aWMgY29uc3QgY2hhciAqY29u c3QgUFBDTEVMaWJEaXJzW10gPSB7Ii9saWIzMiIsICIvbGliIn07CisgICBzdGF0aWMgY29uc3Qg Y2hhciAqY29uc3QgUFBDTEVUcmlwbGVzW10gPSB7InBvd2VycGNsZS1saW51eC1nbnUiLAorLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwb3dlcnBjbGUtdW5r bm93bi1saW51eC1nbnUiLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICJwb3dlcnBjbGUtbGludXgtbXVzbCJ9OworKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICJwb3dlcnBjbGUtdW5rbm93bi1saW51eC1nbnUifTsKKyAK KyAgIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBQUEM2NExpYkRpcnNbXSA9IHsiL2xpYjY0Iiwg Ii9saWIifTsKKyAgIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBQUEM2NFRyaXBsZXNbXSA9IHsK K0BAIC0yMjM1LDYgKzIyMzUsODcgQEAgdm9pZCBHZW5lcmljX0dDQzo6R0NDSW5zdGFsbGF0aW9u RGV0ZWN0b3I6OkFkZERlZmF1bHRHQ0NQcmVmaXhlcygKKyAgICAgcmV0dXJuOworICAgfQorIAor KyAgaWYgKFRhcmdldFRyaXBsZS5pc011c2woKSkgeworKyAgICBzdGF0aWMgY29uc3QgY2hhciAq Y29uc3QgQUFyY2g2NE11c2xUcmlwbGVzW10gPSB7ImFhcmNoNjQtbGludXgtbXVzbCJ9OworKyAg ICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgQVJNSEZNdXNsVHJpcGxlc1tdID0geworKyAgICAg ICAgImFybS1saW51eC1tdXNsZWFiaWhmIiwgImFybXY3bC1saW51eC1tdXNsZWFiaWhmIgorKyAg ICB9OworKyAgICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgQVJNTXVzbFRyaXBsZXNbXSA9IHsi YXJtLWxpbnV4LW11c2xlYWJpIn07CisrICAgIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBYODZf NjRNdXNsVHJpcGxlc1tdID0geyJ4ODZfNjQtbGludXgtbXVzbCJ9OworKyAgICBzdGF0aWMgY29u c3QgY2hhciAqY29uc3QgWDg2TXVzbFRyaXBsZXNbXSA9IHsiaTY4Ni1saW51eC1tdXNsIn07Cisr ICAgIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBNSVBTTXVzbFRyaXBsZXNbXSA9IHsKKysgICAg ICAgICJtaXBzLWxpbnV4LW11c2wiLCAibWlwc2VsLWxpbnV4LW11c2wiLAorKyAgICAgICAgIm1p cHNlbC1saW51eC1tdXNsaGYiLCAibWlwcy1saW51eC1tdXNsaGYiCisrICAgIH07CisrICAgIHN0 YXRpYyBjb25zdCBjaGFyICpjb25zdCBQUENNdXNsVHJpcGxlc1tdID0geyJwb3dlcnBjLWxpbnV4 LW11c2wifTsKKysgICAgc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IFBQQ0xFTXVzbFRyaXBsZXNb XSA9IHsicG93ZXJwY2xlLWxpbnV4LW11c2wifTsKKysgICAgc3RhdGljIGNvbnN0IGNoYXIgKmNv bnN0IFBQQzY0TXVzbFRyaXBsZXNbXSA9IHsicG93ZXJwYzY0LWxpbnV4LW11c2wifTsKKysgICAg c3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IFBQQzY0TEVNdXNsVHJpcGxlc1tdID0geyJwb3dlcnBj NjRsZS1saW51eC1tdXNsIn07CisrCisrICAgIHN3aXRjaCAoVGFyZ2V0VHJpcGxlLmdldEFyY2go KSkgeworKyAgICBjYXNlIGxsdm06OlRyaXBsZTo6YWFyY2g2NDoKKysgICAgICBMaWJEaXJzLmFw cGVuZChiZWdpbihBQXJjaDY0TGliRGlycyksIGVuZChBQXJjaDY0TGliRGlycykpOworKyAgICAg IFRyaXBsZUFsaWFzZXMuYXBwZW5kKGJlZ2luKEFBcmNoNjRNdXNsVHJpcGxlcyksIGVuZChBQXJj aDY0TXVzbFRyaXBsZXMpKTsKKysgICAgICBCaWFyY2hMaWJEaXJzLmFwcGVuZChiZWdpbihBQXJj aDY0TGliRGlycyksIGVuZChBQXJjaDY0TGliRGlycykpOworKyAgICAgIEJpYXJjaFRyaXBsZUFs aWFzZXMuYXBwZW5kKGJlZ2luKEFBcmNoNjRNdXNsVHJpcGxlcyksIGVuZChBQXJjaDY0TXVzbFRy aXBsZXMpKTsKKysgICAgICBicmVhazsKKysgICAgY2FzZSBsbHZtOjpUcmlwbGU6OmFybToKKysg ICAgICBMaWJEaXJzLmFwcGVuZChiZWdpbihBUk1MaWJEaXJzKSwgZW5kKEFSTUxpYkRpcnMpKTsK KysgICAgICBpZiAoVGFyZ2V0VHJpcGxlLmdldEVudmlyb25tZW50KCkgPT0gbGx2bTo6VHJpcGxl OjpNdXNsRUFCSUhGKSB7CisrICAgICAgICBUcmlwbGVBbGlhc2VzLmFwcGVuZChiZWdpbihBUk1I Rk11c2xUcmlwbGVzKSwgZW5kKEFSTUhGTXVzbFRyaXBsZXMpKTsKKysgICAgICB9IGVsc2Ugewor KyAgICAgICAgVHJpcGxlQWxpYXNlcy5hcHBlbmQoYmVnaW4oQVJNTXVzbFRyaXBsZXMpLCBlbmQo QVJNTXVzbFRyaXBsZXMpKTsKKysgICAgICB9CisrICAgICAgYnJlYWs7CisrICAgIGNhc2UgbGx2 bTo6VHJpcGxlOjp4ODZfNjQ6CisrICAgICAgTGliRGlycy5hcHBlbmQoYmVnaW4oWDg2XzY0TGli RGlycyksIGVuZChYODZfNjRMaWJEaXJzKSk7CisrICAgICAgVHJpcGxlQWxpYXNlcy5hcHBlbmQo YmVnaW4oWDg2XzY0TXVzbFRyaXBsZXMpLCBlbmQoWDg2XzY0TXVzbFRyaXBsZXMpKTsKKysgICAg ICBCaWFyY2hMaWJEaXJzLmFwcGVuZChiZWdpbihYODZMaWJEaXJzKSwgZW5kKFg4NkxpYkRpcnMp KTsKKysgICAgICBCaWFyY2hUcmlwbGVBbGlhc2VzLmFwcGVuZChiZWdpbihYODZNdXNsVHJpcGxl cyksIGVuZChYODZNdXNsVHJpcGxlcykpOworKyAgICAgIGJyZWFrOworKyAgICBjYXNlIGxsdm06 OlRyaXBsZTo6eDg2OgorKyAgICAgIExpYkRpcnMuYXBwZW5kKGJlZ2luKFg4NkxpYkRpcnMpLCBl bmQoWDg2TGliRGlycykpOworKyAgICAgIFRyaXBsZUFsaWFzZXMuYXBwZW5kKGJlZ2luKFg4Nk11 c2xUcmlwbGVzKSwgZW5kKFg4Nk11c2xUcmlwbGVzKSk7CisrICAgICAgQmlhcmNoTGliRGlycy5h cHBlbmQoYmVnaW4oWDg2XzY0TGliRGlycyksIGVuZChYODZfNjRMaWJEaXJzKSk7CisrICAgICAg QmlhcmNoVHJpcGxlQWxpYXNlcy5hcHBlbmQoYmVnaW4oWDg2XzY0TXVzbFRyaXBsZXMpLCBlbmQo WDg2XzY0TXVzbFRyaXBsZXMpKTsKKysgICAgICBicmVhazsKKysgICAgY2FzZSBsbHZtOjpUcmlw bGU6Om1pcHM6CisrICAgICAgTGliRGlycy5hcHBlbmQoYmVnaW4oTUlQU0xpYkRpcnMpLCBlbmQo TUlQU0xpYkRpcnMpKTsKKysgICAgICBUcmlwbGVBbGlhc2VzLmFwcGVuZChiZWdpbihNSVBTTXVz bFRyaXBsZXMpLCBlbmQoTUlQU011c2xUcmlwbGVzKSk7CisrICAgICAgYnJlYWs7CisrICAgIGNh c2UgbGx2bTo6VHJpcGxlOjpwcGM6CisrICAgICAgTGliRGlycy5hcHBlbmQoYmVnaW4oUFBDTGli RGlycyksIGVuZChQUENMaWJEaXJzKSk7CisrICAgICAgVHJpcGxlQWxpYXNlcy5hcHBlbmQoYmVn aW4oUFBDTXVzbFRyaXBsZXMpLCBlbmQoUFBDTXVzbFRyaXBsZXMpKTsKKysgICAgICBCaWFyY2hM aWJEaXJzLmFwcGVuZChiZWdpbihQUEM2NExpYkRpcnMpLCBlbmQoUFBDNjRMaWJEaXJzKSk7Cisr ICAgICAgQmlhcmNoVHJpcGxlQWxpYXNlcy5hcHBlbmQoYmVnaW4oUFBDNjRNdXNsVHJpcGxlcyks IGVuZChQUEM2NE11c2xUcmlwbGVzKSk7CisrICAgICAgYnJlYWs7CisrICAgIGNhc2UgbGx2bTo6 VHJpcGxlOjpwcGNsZToKKysgICAgICBMaWJEaXJzLmFwcGVuZChiZWdpbihQUENMRUxpYkRpcnMp LCBlbmQoUFBDTEVMaWJEaXJzKSk7CisrICAgICAgVHJpcGxlQWxpYXNlcy5hcHBlbmQoYmVnaW4o UFBDTEVNdXNsVHJpcGxlcyksIGVuZChQUENMRU11c2xUcmlwbGVzKSk7CisrICAgICAgQmlhcmNo TGliRGlycy5hcHBlbmQoYmVnaW4oUFBDNjRMRUxpYkRpcnMpLCBlbmQoUFBDNjRMRUxpYkRpcnMp KTsKKysgICAgICBCaWFyY2hUcmlwbGVBbGlhc2VzLmFwcGVuZChiZWdpbihQUEM2NExFTXVzbFRy aXBsZXMpLCBlbmQoUFBDNjRMRU11c2xUcmlwbGVzKSk7CisrICAgICAgYnJlYWs7CisrICAgIGNh c2UgbGx2bTo6VHJpcGxlOjpwcGM2NDoKKysgICAgICBMaWJEaXJzLmFwcGVuZChiZWdpbihQUEM2 NExpYkRpcnMpLCBlbmQoUFBDNjRMaWJEaXJzKSk7CisrICAgICAgVHJpcGxlQWxpYXNlcy5hcHBl bmQoYmVnaW4oUFBDNjRNdXNsVHJpcGxlcyksIGVuZChQUEM2NE11c2xUcmlwbGVzKSk7CisrICAg ICAgQmlhcmNoTGliRGlycy5hcHBlbmQoYmVnaW4oUFBDTGliRGlycyksIGVuZChQUENMaWJEaXJz KSk7CisrICAgICAgQmlhcmNoVHJpcGxlQWxpYXNlcy5hcHBlbmQoYmVnaW4oUFBDTXVzbFRyaXBs ZXMpLCBlbmQoUFBDTXVzbFRyaXBsZXMpKTsKKysgICAgICBicmVhazsKKysgICAgY2FzZSBsbHZt OjpUcmlwbGU6OnBwYzY0bGU6CisrICAgICAgTGliRGlycy5hcHBlbmQoYmVnaW4oUFBDNjRMRUxp YkRpcnMpLCBlbmQoUFBDNjRMRUxpYkRpcnMpKTsKKysgICAgICBUcmlwbGVBbGlhc2VzLmFwcGVu ZChiZWdpbihQUEM2NExFTXVzbFRyaXBsZXMpLCBlbmQoUFBDNjRMRU11c2xUcmlwbGVzKSk7Cisr ICAgICAgQmlhcmNoTGliRGlycy5hcHBlbmQoYmVnaW4oUFBDTEVMaWJEaXJzKSwgZW5kKFBQQ0xF TGliRGlycykpOworKyAgICAgIEJpYXJjaFRyaXBsZUFsaWFzZXMuYXBwZW5kKGJlZ2luKFBQQ0xF TXVzbFRyaXBsZXMpLCBlbmQoUFBDTEVNdXNsVHJpcGxlcykpOworKyAgICAgIGJyZWFrOworKyAg ICBkZWZhdWx0OgorKyAgICAgIGJyZWFrOworKyAgICB9CisrICAgIFRyaXBsZUFsaWFzZXMucHVz aF9iYWNrKFRhcmdldFRyaXBsZS5zdHIoKSk7CisrICAgIGlmIChUYXJnZXRUcmlwbGUuc3RyKCkg IT0gQmlhcmNoVHJpcGxlLnN0cigpKQorKyAgICAgIEJpYXJjaFRyaXBsZUFsaWFzZXMucHVzaF9i YWNrKEJpYXJjaFRyaXBsZS5zdHIoKSk7CisrICAgIHJldHVybjsKKysgIH0KKysKKyAgIC8vIEFu ZHJvaWQgdGFyZ2V0cyBzaG91bGQgbm90IHVzZSBHTlUvTGludXggdG9vbHMgb3IgbGlicmFyaWVz LgorICAgaWYgKFRhcmdldFRyaXBsZS5pc0FuZHJvaWQoKSkgeworICAgICBzdGF0aWMgY29uc3Qg Y2hhciAqY29uc3QgQUFyY2g2NEFuZHJvaWRUcmlwbGVzW10gPSB7CmRpZmYgLS1naXQgYS9zcmNw a2dzL2xsdm0xMy9wYXRjaGVzL2NsYW5nLTAwMy1wcGM2NC1keW5hbWljLWxpbmtlci1wYXRoLnBh dGNoIGIvc3JjcGtncy9sbHZtMTMvcGF0Y2hlcy9jbGFuZy0wMDMtcHBjNjQtZHluYW1pYy1saW5r ZXItcGF0aC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjRh ZDY0MTJkMWU2YwotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbGx2bTEzL3BhdGNoZXMvY2xh bmctMDAzLXBwYzY0LWR5bmFtaWMtbGlua2VyLXBhdGgucGF0Y2gKQEAgLTAsMCArMSwxMyBAQAor LS0tIGEvY2xhbmcvbGliL0RyaXZlci9Ub29sQ2hhaW5zL0xpbnV4LmNwcAorKysrIGIvY2xhbmcv bGliL0RyaXZlci9Ub29sQ2hhaW5zL0xpbnV4LmNwcAorQEAgLTUwNCwxMCArNTA0LDYgQEAgc3Rk OjpzdHJpbmcgTGludXg6OmdldER5bmFtaWNMaW5rZXIoY29uc3QgQXJnTGlzdCAmQXJncykgY29u c3QgeworICAgICBMb2FkZXIgPSAibGQuc28uMSI7CisgICAgIGJyZWFrOworICAgY2FzZSBsbHZt OjpUcmlwbGU6OnBwYzY0OgorLSAgICBMaWJEaXIgPSAibGliNjQiOworLSAgICBMb2FkZXIgPQor LSAgICAgICAgKHRvb2xzOjpwcGM6Omhhc1BQQ0FiaUFyZyhBcmdzLCAiZWxmdjIiKSkgPyAibGQ2 NC5zby4yIiA6ICJsZDY0LnNvLjEiOworLSAgICBicmVhazsKKyAgIGNhc2UgbGx2bTo6VHJpcGxl OjpwcGM2NGxlOgorICAgICBMaWJEaXIgPSAibGliNjQiOworICAgICBMb2FkZXIgPQpkaWZmIC0t Z2l0IGEvc3JjcGtncy9sbHZtMTMvcGF0Y2hlcy9jbGFuZy0wMDQtcHBjNjQtbXVzbC1lbGZ2Mi5w YXRjaCBiL3NyY3BrZ3MvbGx2bTEzL3BhdGNoZXMvY2xhbmctMDA0LXBwYzY0LW11c2wtZWxmdjIu cGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4yMWZjODAwM2M1 ZjEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xsdm0xMy9wYXRjaGVzL2NsYW5nLTAwNC1w cGM2NC1tdXNsLWVsZnYyLnBhdGNoCkBAIC0wLDAgKzEsNDggQEAKKy0tLSBhL2NsYW5nL2xpYi9C YXNpYy9UYXJnZXRzL1BQQy5oCisrKysgYi9jbGFuZy9saWIvQmFzaWMvVGFyZ2V0cy9QUEMuaAor QEAgLTQxNSwxMSArNDE1LDEwIEBAIHB1YmxpYzoKKyAgICAgICBMb25nRG91YmxlRm9ybWF0ID0g Jmxsdm06OkFQRmxvYXQ6OklFRUVkb3VibGUoKTsKKyAgICAgfSBlbHNlIGlmICgoVHJpcGxlLmdl dEFyY2goKSA9PSBsbHZtOjpUcmlwbGU6OnBwYzY0bGUpKSB7CisgICAgICAgRGF0YUxheW91dCA9 ICJlLW06ZS1pNjQ6NjQtbjMyOjY0IjsKKy0gICAgICBBQkkgPSAiZWxmdjIiOworICAgICB9IGVs c2UgeworICAgICAgIERhdGFMYXlvdXQgPSAiRS1tOmUtaTY0OjY0LW4zMjo2NCI7CistICAgICAg QUJJID0gImVsZnYxIjsKKyAgICAgfQorKyAgICBBQkkgPSAiZWxmdjIiOworIAorICAgICBpZiAo VHJpcGxlLmlzT1NGcmVlQlNEKCkgfHwgVHJpcGxlLmlzT1NPcGVuQlNEKCkgfHwgVHJpcGxlLmlz TXVzbCgpKSB7CisgICAgICAgTG9uZ0RvdWJsZVdpZHRoID0gTG9uZ0RvdWJsZUFsaWduID0gNjQ7 CistLS0gYS9jbGFuZy9saWIvQ29kZUdlbi9UYXJnZXRJbmZvLmNwcAorKysrIGIvY2xhbmcvbGli L0NvZGVHZW4vVGFyZ2V0SW5mby5jcHAKK0BAIC0xMDkyNyw5ICsxMDkyNyw5IEBAIGNvbnN0IFRh cmdldENvZGVHZW5JbmZvICZDb2RlR2VuTW9kdWxlOjpnZXRUYXJnZXRDb2RlR2VuSW5mbygpIHsK KyAgICAgICByZXR1cm4gU2V0Q0dJbmZvKG5ldyBBSVhUYXJnZXRDb2RlR2VuSW5mbyhUeXBlcywg LypJczY0Qml0Ki8gdHJ1ZSkpOworIAorICAgICBpZiAoVHJpcGxlLmlzT1NCaW5Gb3JtYXRFTEYo KSkgeworLSAgICAgIFBQQzY0X1NWUjRfQUJJSW5mbzo6QUJJS2luZCBLaW5kID0gUFBDNjRfU1ZS NF9BQklJbmZvOjpFTEZ2MTsKKy0gICAgICBpZiAoZ2V0VGFyZ2V0KCkuZ2V0QUJJKCkgPT0gImVs ZnYyIikKKy0gICAgICAgIEtpbmQgPSBQUEM2NF9TVlI0X0FCSUluZm86OkVMRnYyOworKyAgICAg IFBQQzY0X1NWUjRfQUJJSW5mbzo6QUJJS2luZCBLaW5kID0gUFBDNjRfU1ZSNF9BQklJbmZvOjpF TEZ2MjsKKysgICAgICBpZiAoZ2V0VGFyZ2V0KCkuZ2V0QUJJKCkgPT0gImVsZnYxIikKKysgICAg ICAgIEtpbmQgPSBQUEM2NF9TVlI0X0FCSUluZm86OkVMRnYxOworICAgICAgIGJvb2wgSXNTb2Z0 RmxvYXQgPSBDb2RlR2VuT3B0cy5GbG9hdEFCSSA9PSAic29mdCI7CisgCisgICAgICAgcmV0dXJu IFNldENHSW5mbygKKy0tLSBhL2NsYW5nL2xpYi9Ecml2ZXIvVG9vbENoYWlucy9DbGFuZy5jcHAK KysrKyBiL2NsYW5nL2xpYi9Ecml2ZXIvVG9vbENoYWlucy9DbGFuZy5jcHAKK0BAIC0xOTIwLDE0 ICsxOTIwLDcgQEAgdm9pZCBDbGFuZzo6QWRkUFBDVGFyZ2V0QXJncyhjb25zdCBBcmdMaXN0ICZB cmdzLAorICAgY29uc3QgbGx2bTo6VHJpcGxlICZUID0gZ2V0VG9vbENoYWluKCkuZ2V0VHJpcGxl KCk7CisgICBpZiAoVC5pc09TQmluRm9ybWF0RUxGKCkpIHsKKyAgICAgc3dpdGNoIChnZXRUb29s Q2hhaW4oKS5nZXRBcmNoKCkpIHsKKy0gICAgY2FzZSBsbHZtOjpUcmlwbGU6OnBwYzY0OiB7Cist ICAgICAgaWYgKChULmlzT1NGcmVlQlNEKCkgJiYgVC5nZXRPU01ham9yVmVyc2lvbigpID49IDEz KSB8fAorLSAgICAgICAgICBULmlzT1NPcGVuQlNEKCkgfHwgVC5pc011c2woKSkKKy0gICAgICAg IEFCSU5hbWUgPSAiZWxmdjIiOworLSAgICAgIGVsc2UKKy0gICAgICAgIEFCSU5hbWUgPSAiZWxm djEiOworLSAgICAgIGJyZWFrOworLSAgICB9CisrICAgIGNhc2UgbGx2bTo6VHJpcGxlOjpwcGM2 NDoKKyAgICAgY2FzZSBsbHZtOjpUcmlwbGU6OnBwYzY0bGU6CisgICAgICAgQUJJTmFtZSA9ICJl bGZ2MiI7CisgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0xMy9wYXRjaGVz L2NvbXBpbGVyLXJ0LWFhcmNoNjQtdWNvbnRleHQucGF0Y2ggYi9zcmNwa2dzL2xsdm0xMy9wYXRj aGVzL2NvbXBpbGVyLXJ0LWFhcmNoNjQtdWNvbnRleHQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwMDAwLi44OTNjMDU5ZDdiOGQKLS0tIC9kZXYvbnVsbAorKysgYi9z cmNwa2dzL2xsdm0xMy9wYXRjaGVzL2NvbXBpbGVyLXJ0LWFhcmNoNjQtdWNvbnRleHQucGF0Y2gK QEAgLTAsMCArMSwxMSBAQAorLS0tIGEvY29tcGlsZXItcnQvbGliL3Nhbml0aXplcl9jb21tb24v c2FuaXRpemVyX2xpbnV4LmNwcC5vcmlnCisrKysgYi9jb21waWxlci1ydC9saWIvc2FuaXRpemVy X2NvbW1vbi9zYW5pdGl6ZXJfbGludXguY3BwCitAQCAtMTc5OSw3ICsxNzk5LDcgQEAKKyAKKyBz dGF0aWMgYm9vbCBBYXJjaDY0R2V0RVNSKHVjb250ZXh0X3QgKnVjb250ZXh0LCB1NjQgKmVzcikg eworICAgc3RhdGljIGNvbnN0IHUzMiBrRXNyTWFnaWMgPSAweDQ1NTM1MjAxOworLSAgdTggKmF1 eCA9IHVjb250ZXh0LT51Y19tY29udGV4dC5fX3Jlc2VydmVkOworKyAgdTggKmF1eCA9IHJlaW50 ZXJwcmV0X2Nhc3Q8dTggKj4odWNvbnRleHQtPnVjX21jb250ZXh0Ll9fcmVzZXJ2ZWQpOworICAg d2hpbGUgKHRydWUpIHsKKyAgICAgX2FhcmNoNjRfY3R4ICpjdHggPSAoX2FhcmNoNjRfY3R4ICop YXV4OworICAgICBpZiAoY3R4LT5zaXplID09IDApIGJyZWFrOwpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9sbHZtMTMvcGF0Y2hlcy9jb21waWxlci1ydC1zYW5pdGl6ZXItcHBjNjQtbXVzbC5wYXRjaCBi L3NyY3BrZ3MvbGx2bTEzL3BhdGNoZXMvY29tcGlsZXItcnQtc2FuaXRpemVyLXBwYzY0LW11c2wu cGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4zNWYxNmQyNGYz NDAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xsdm0xMy9wYXRjaGVzL2NvbXBpbGVyLXJ0 LXNhbml0aXplci1wcGM2NC1tdXNsLnBhdGNoCkBAIC0wLDAgKzEsMzUgQEAKKy0tLSBhL2NvbXBp bGVyLXJ0L2xpYi9zYW5pdGl6ZXJfY29tbW9uL3Nhbml0aXplcl9saW51eC5jcHAKKysrKyBiL2Nv bXBpbGVyLXJ0L2xpYi9zYW5pdGl6ZXJfY29tbW9uL3Nhbml0aXplcl9saW51eC5jcHAKK0BAIC03 NCw2ICs3NCwxMCBAQAorICNpbmNsdWRlIDxzeXMvdXRzbmFtZS5oPgorICNlbmRpZgorIAorKyNp ZiBTQU5JVElaRVJfTElOVVggJiYgZGVmaW5lZChfX3Bvd2VycGNfXykKKysjaW5jbHVkZSA8YXNt L3B0cmFjZS5oPgorKyNlbmRpZgorKworICNpZiBTQU5JVElaRVJfTElOVVggJiYgIVNBTklUSVpF Ul9BTkRST0lECisgI2luY2x1ZGUgPHN5cy9wZXJzb25hbGl0eS5oPgorICNlbmRpZgorLS0tIGEv Y29tcGlsZXItcnQvbGliL3Nhbml0aXplcl9jb21tb24vc2FuaXRpemVyX3BsYXRmb3JtX2xpbWl0 c19wb3NpeC5jcHAKKysrKyBiL2NvbXBpbGVyLXJ0L2xpYi9zYW5pdGl6ZXJfY29tbW9uL3Nhbml0 aXplcl9wbGF0Zm9ybV9saW1pdHNfcG9zaXguY3BwCitAQCAtOTIsNyArOTIsNyBAQAorICMgaW5j bHVkZSA8dXRpbWUuaD4KKyAjIGluY2x1ZGUgPHN5cy9wdHJhY2UuaD4KKyAjaWYgZGVmaW5lZChf X21pcHM2NCkgfHwgZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBc CistICAgIFNBTklUSVpFUl9SSVNDVjY0CisrICAgIGRlZmluZWQoX19wb3dlcnBjX18pIHx8IFNB TklUSVpFUl9SSVNDVjY0CisgIyAgaW5jbHVkZSA8YXNtL3B0cmFjZS5oPgorICMgIGlmZGVmIF9f YXJtX18KKyB0eXBlZGVmIHN0cnVjdCB1c2VyX2ZwcmVncyBlbGZfZnByZWdzZXRfdDsKKy0tLSBh L2NvbXBpbGVyLXJ0L2xpYi9zYW5pdGl6ZXJfY29tbW9uL3Nhbml0aXplcl9zdG9wdGhld29ybGRf bGludXhfbGliY2RlcC5jcHAKKysrKyBiL2NvbXBpbGVyLXJ0L2xpYi9zYW5pdGl6ZXJfY29tbW9u L3Nhbml0aXplcl9zdG9wdGhld29ybGRfbGludXhfbGliY2RlcC5jcHAKK0BAIC0zMSw3ICszMSw3 IEBACisgI2luY2x1ZGUgPHN5cy90eXBlcy5oPiAvLyBmb3IgcGlkX3QKKyAjaW5jbHVkZSA8c3lz L3Vpby5oPiAvLyBmb3IgaW92ZWMKKyAjaW5jbHVkZSA8ZWxmLmg+IC8vIGZvciBOVF9QUlNUQVRV UworLSNpZiAoZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgU0FOSVRJWkVSX1JJU0NWNjQpICYmICFT QU5JVElaRVJfQU5EUk9JRAorKyNpZiAoZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgZGVmaW5lZChf X3Bvd2VycGNfXykgfHwgU0FOSVRJWkVSX1JJU0NWNjQpICYmICFTQU5JVElaRVJfQU5EUk9JRAor IC8vIEdMSUJDIDIuMjArIHN5cy91c2VyIGRvZXMgbm90IGluY2x1ZGUgYXNtL3B0cmFjZS5oCisg IyBpbmNsdWRlIDxhc20vcHRyYWNlLmg+CisgI2VuZGlmCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xs dm0xMy9wYXRjaGVzL2NvbXBpbGVyLXJ0LXhyYXktcHBjNjQtbXVzbC5wYXRjaCBiL3NyY3BrZ3Mv bGx2bTEzL3BhdGNoZXMvY29tcGlsZXItcnQteHJheS1wcGM2NC1tdXNsLnBhdGNoCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZDBiNjFjODBjODk3Ci0tLSAvZGV2L251 bGwKKysrIGIvc3JjcGtncy9sbHZtMTMvcGF0Y2hlcy9jb21waWxlci1ydC14cmF5LXBwYzY0LW11 c2wucGF0Y2gKQEAgLTAsMCArMSw2MiBAQAorLS0tIGEvY29tcGlsZXItcnQvbGliL3hyYXkveHJh eV9wb3dlcnBjNjQuaW5jCisrKysgYi9jb21waWxlci1ydC9saWIveHJheS94cmF5X3Bvd2VycGM2 NC5pbmMKK0BAIC0xMiw3ICsxMiwxMyBAQAorIAorICNpbmNsdWRlIDxjc3RkaW50PgorICNpbmNs dWRlIDxtdXRleD4KKysjaWZkZWYgX19HTElCQ19fCisgI2luY2x1ZGUgPHN5cy9wbGF0Zm9ybS9w cGMuaD4KKysjZWxzZQorKyNpbmNsdWRlIDxjY3R5cGU+CisrI2luY2x1ZGUgPGNzdHJpbmc+Cisr I2luY2x1ZGUgPGNzdGRsaWI+CisrI2VuZGlmCisgCisgI2luY2x1ZGUgInhyYXlfZGVmcy5oIgor IAorQEAgLTIwLDEzICsyNiw0NSBAQCBuYW1lc3BhY2UgX194cmF5IHsKKyAKKyBBTFdBWVNfSU5M SU5FIHVpbnQ2NF90IHJlYWRUU0ModWludDhfdCAmQ1BVKSBYUkFZX05FVkVSX0lOU1RSVU1FTlQg eworICAgQ1BVID0gMDsKKysjaWZkZWYgX19HTElCQ19fCisgICByZXR1cm4gX19wcGNfZ2V0X3Rp bWViYXNlKCk7CisrI2Vsc2UKKysgIHJldHVybiBfX2J1aWx0aW5fcHBjX2dldF90aW1lYmFzZSgp OworKyNlbmRpZgorIH0KKyAKKyBpbmxpbmUgdWludDY0X3QgZ2V0VFNDRnJlcXVlbmN5KCkgWFJB WV9ORVZFUl9JTlNUUlVNRU5UIHsKKyAgIHN0YXRpYyBzdGQ6Om11dGV4IE07CisgICBzdGQ6Omxv Y2tfZ3VhcmQ8c3RkOjptdXRleD4gR3VhcmQoTSk7CisrI2lmZGVmIF9fR0xJQkNfXworICAgcmV0 dXJuIF9fcHBjX2dldF90aW1lYmFzZV9mcmVxKCk7CisrI2Vsc2UKKysgIC8qIEZJWE1FOiBhIGxl c3MgZGlydHkgaW1wbGVtZW50YXRpb24/ICovCisrICBzdGF0aWMgdWludDY0X3QgYmFzZTsKKysg IGlmICghYmFzZSkgeworKyAgICBGSUxFICpmID0gZm9wZW4oIi9wcm9jL2NwdWluZm8iLCAicmIi KTsKKysgICAgaWYgKGYpIHsKKysgICAgICBzc2l6ZV90IG5yOworKyAgICAgIC8qIHZpcnR1YWxs eSBhbHdheXMgYmlnIGVub3VnaCB0byBob2xkIHRoZSBsaW5lICovCisrICAgICAgY2hhciBidWZb NTEyXTsKKysgICAgICB3aGlsZSAoZmdldHMoYnVmLCBzaXplb2YoYnVmKSwgZikpIHsKKysgICAg ICAgIGNoYXIgKnJldCA9IHN0cnN0cihidWYsICJ0aW1lYmFzZSIpOworKyAgICAgICAgaWYgKCFy ZXQpIHsKKysgICAgICAgICAgY29udGludWU7CisrICAgICAgICB9CisrICAgICAgICByZXQgKz0g c2l6ZW9mKCJ0aW1lYmFzZSIpIC0gMTsKKysgICAgICAgIHJldCA9IHN0cmNocihyZXQsICc6Jyk7 CisrICAgICAgICBpZiAoIXJldCkgeworKyAgICAgICAgICBjb250aW51ZTsKKysgICAgICAgIH0K KysgICAgICAgIGJhc2UgPSBzdHJ0b3VsKHJldCArIDEsIG51bGxwdHIsIDEwKTsKKysgICAgICAg IGJyZWFrOworKyAgICAgIH0KKysgICAgICBmY2xvc2UoZik7CisrICAgIH0KKysgIH0KKysgIHJl dHVybiBiYXNlOworKyNlbmRpZgorIH0KKyAKKyBpbmxpbmUgYm9vbCBwcm9iZVJlcXVpcmVkQ1BV RmVhdHVyZXMoKSBYUkFZX05FVkVSX0lOU1RSVU1FTlQgewpkaWZmIC0tZ2l0IGEvc3JjcGtncy9s bHZtMTMvcGF0Y2hlcy9saWJjeHgtbXVzbC5wYXRjaCBiL3NyY3BrZ3MvbGx2bTEzL3BhdGNoZXMv bGliY3h4LW11c2wucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw Li5iYmQzMWZmYzJjYjEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xsdm0xMy9wYXRjaGVz L2xpYmN4eC1tdXNsLnBhdGNoCkBAIC0wLDAgKzEsMjYgQEAKKy0tLSBhL2xpYmN4eC9pbmNsdWRl L2xvY2FsZQorKysrIGIvbGliY3h4L2luY2x1ZGUvbG9jYWxlCitAQCAtNzQyLDcgKzc0MiwxMSBA QCBfX251bV9nZXRfc2lnbmVkX2ludGVncmFsKGNvbnN0IGNoYXIqIF9fYSwgY29uc3QgY2hhciog X19hX2VuZCwKKyAgICAgICAgIHR5cGVuYW1lIHJlbW92ZV9yZWZlcmVuY2U8ZGVjbHR5cGUoZXJy bm8pPjo6dHlwZSBfX3NhdmVfZXJybm8gPSBlcnJubzsKKyAgICAgICAgIGVycm5vID0gMDsKKyAg ICAgICAgIGNoYXIgKl9fcDI7CisrI2lmIGRlZmluZWQoX19saW51eF9fKSAmJiAhZGVmaW5lZChf X0dMSUJDX18pCisrICAgICAgICBsb25nIGxvbmcgX19sbCA9IHN0cnRvbGwoX19hLCAmX19wMiwg X19iYXNlKTsKKysjZWxzZQorICAgICAgICAgbG9uZyBsb25nIF9fbGwgPSBzdHJ0b2xsX2woX19h LCAmX19wMiwgX19iYXNlLCBfTElCQ1BQX0dFVF9DX0xPQ0FMRSk7CisrI2VuZGlmCisgICAgICAg ICB0eXBlbmFtZSByZW1vdmVfcmVmZXJlbmNlPGRlY2x0eXBlKGVycm5vKT46OnR5cGUgX19jdXJy ZW50X2Vycm5vID0gZXJybm87CisgICAgICAgICBpZiAoX19jdXJyZW50X2Vycm5vID09IDApCisg ICAgICAgICAgICAgZXJybm8gPSBfX3NhdmVfZXJybm87CitAQCAtNzgyLDcgKzc4NiwxMSBAQCBf X251bV9nZXRfdW5zaWduZWRfaW50ZWdyYWwoY29uc3QgY2hhciogX19hLCBjb25zdCBjaGFyKiBf X2FfZW5kLAorICAgICAgICAgdHlwZW5hbWUgcmVtb3ZlX3JlZmVyZW5jZTxkZWNsdHlwZShlcnJu byk+Ojp0eXBlIF9fc2F2ZV9lcnJubyA9IGVycm5vOworICAgICAgICAgZXJybm8gPSAwOworICAg ICAgICAgY2hhciAqX19wMjsKKysjaWYgZGVmaW5lZChfX2xpbnV4X18pICYmICFkZWZpbmVkKF9f R0xJQkNfXykKKysgICAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2xsID0gc3RydG91bGwoX19h LCAmX19wMiwgX19iYXNlKTsKKysjZWxzZQorICAgICAgICAgdW5zaWduZWQgbG9uZyBsb25nIF9f bGwgPSBzdHJ0b3VsbF9sKF9fYSwgJl9fcDIsIF9fYmFzZSwgX0xJQkNQUF9HRVRfQ19MT0NBTEUp OworKyNlbmRpZgorICAgICAgICAgdHlwZW5hbWUgcmVtb3ZlX3JlZmVyZW5jZTxkZWNsdHlwZShl cnJubyk+Ojp0eXBlIF9fY3VycmVudF9lcnJubyA9IGVycm5vOworICAgICAgICAgaWYgKF9fY3Vy cmVudF9lcnJubyA9PSAwKQorICAgICAgICAgICAgIGVycm5vID0gX19zYXZlX2Vycm5vOwpkaWZm IC0tZ2l0IGEvc3JjcGtncy9sbHZtMTMvcGF0Y2hlcy9saWJjeHgtcHBjLnBhdGNoIGIvc3JjcGtn cy9sbHZtMTMvcGF0Y2hlcy9saWJjeHgtcHBjLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAwMC4uN2E5MmY4MDA0ZTFjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtn cy9sbHZtMTMvcGF0Y2hlcy9saWJjeHgtcHBjLnBhdGNoCkBAIC0wLDAgKzEsMjIgQEAKK1RoaXMg ZW5zdXJlcyBgaXNfaWVjNTU5YCBpcyBkZWZpbmVkIGNvcnJlY3RseSB1bmRlciBhbGwgbG9uZyBk b3VibGUgQUJJcywKK2luY2x1ZGluZyBtdXNsIGFuZCBpdHMgNjQtYml0IGxvbmcgZG91YmxlLiBB bHNvLCBgX19wcGNfX2Agb3IgYF9fcHBjNjRfX2AKK2lzIG5vdCBkZWZpbmVkIG9uIGdjYy4KKwor LS0tIGEvbGliY3h4L2luY2x1ZGUvbGltaXRzCisrKysgYi9saWJjeHgvaW5jbHVkZS9saW1pdHMK K0BAIC00MjYsOCArNDI2LDE0IEBAIHByb3RlY3RlZDoKKyAgICAgX0xJQkNQUF9JTkxJTkVfVklT SUJJTElUWSBzdGF0aWMgX0xJQkNQUF9DT05TVEVYUFIgdHlwZSBzaWduYWxpbmdfTmFOKCkgX05P RVhDRVBUIHtyZXR1cm4gX19idWlsdGluX25hbnNsKCIiKTt9CisgICAgIF9MSUJDUFBfSU5MSU5F X1ZJU0lCSUxJVFkgc3RhdGljIF9MSUJDUFBfQ09OU1RFWFBSIHR5cGUgZGVub3JtX21pbigpIF9O T0VYQ0VQVCB7cmV0dXJuIF9fTERCTF9ERU5PUk1fTUlOX187fQorIAorLSNpZiAoZGVmaW5lZChf X3BwY19fKSB8fCBkZWZpbmVkKF9fcHBjNjRfXykpCisrI2lmIGRlZmluZWQoX19wb3dlcnBjX18p IHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKKysjaWYgKF9fTERCTF9NQVhfRVhQX18gPiBfX0RC TF9NQVhfRVhQX18pIHx8IChfX0xEQkxfTUFOVF9ESUdfXyA9PSBfX0RCTF9NQU5UX0RJR19fKQor KyAgICAvKiBJRUVFIDc1NCBxdWFkcnVwbGUgb3IgZG91YmxlIHByZWNpc2lvbiAqLworKyAgICBz dGF0aWMgX0xJQkNQUF9DT05TVEVYUFIgY29uc3QgYm9vbCBpc19pZWM1NTkgPSB0cnVlOworKyNl bHNlCisrICAgIC8qIDEyOC1iaXQgSUJNIGRvdWJsZS1kb3VibGUgKi8KKyAgICAgc3RhdGljIF9M SUJDUFBfQ09OU1RFWFBSIGNvbnN0IGJvb2wgaXNfaWVjNTU5ID0gZmFsc2U7CisrI2VuZGlmCisg I2Vsc2UKKyAgICAgc3RhdGljIF9MSUJDUFBfQ09OU1RFWFBSIGNvbnN0IGJvb2wgaXNfaWVjNTU5 ID0gdHJ1ZTsKKyAjZW5kaWYKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bTEzL3BhdGNoZXMvbGli Y3h4LXNzcC1ub25zaGFyZWQucGF0Y2ggYi9zcmNwa2dzL2xsdm0xMy9wYXRjaGVzL2xpYmN4eC1z c3Atbm9uc2hhcmVkLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw MC4uNzAyOTJiZWIyZmNkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9sbHZtMTMvcGF0Y2hl cy9saWJjeHgtc3NwLW5vbnNoYXJlZC5wYXRjaApAQCAtMCwwICsxLDExIEBACistLS0gYS9saWJj eHgvQ01ha2VMaXN0cy50eHQKKysrKyBiL2xpYmN4eC9DTWFrZUxpc3RzLnR4dAorQEAgLTc2OSw2 ICs3NjksOCBAQCBmdW5jdGlvbihjeHhfbGlua19zeXN0ZW1fbGlicmFyaWVzIHRhcmdldCkKKyAg ICAgdGFyZ2V0X2xpbmtfbGlicmFyaWVzKCR7dGFyZ2V0fSBQUklWQVRFIGF0b21pYykKKyAgIGVu ZGlmKCkKKyAKKysjc3NwICB0YXJnZXRfbGlua19saWJyYXJpZXMoJHt0YXJnZXR9IFBSSVZBVEUg c3NwX25vbnNoYXJlZCkKKysKKyAgIGlmIChNSU5HVykKKyAgICAgdGFyZ2V0X2xpbmtfbGlicmFy aWVzKCR7dGFyZ2V0fSBQUklWQVRFICIke01JTkdXX0xJQlJBUklFU30iKQorICAgZW5kaWYoKQpk aWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtMTMvcGF0Y2hlcy9saWJjeHhhYmktZGwucGF0Y2ggYi9z cmNwa2dzL2xsdm0xMy9wYXRjaGVzL2xpYmN4eGFiaS1kbC5wYXRjaApuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjNhMTVmOWRiOGM5OAotLS0gL2Rldi9udWxsCisrKyBi L3NyY3BrZ3MvbGx2bTEzL3BhdGNoZXMvbGliY3h4YWJpLWRsLnBhdGNoCkBAIC0wLDAgKzEsMjUg QEAKK0Fsc28gbGluayB0byAtbGRsIHRvIHByZXZlbnQgdW5kZWZpbmVkIHJlZmVyZW5jZXMuCisK Ky0tLSBhL2xpYmN4eGFiaS9zcmMvQ01ha2VMaXN0cy50eHQKKysrKyBiL2xpYmN4eGFiaS9zcmMv Q01ha2VMaXN0cy50eHQKK0BAIC03Myw2ICs3Myw3IEBACisgICBlbmRpZigpCisgCisgICBhZGRf bGlicmFyeV9mbGFnc19pZihMSUJDWFhBQklfSEFTX0NfTElCIGMpCisrICBhZGRfbGlicmFyeV9m bGFnc19pZihMSUJDWFhBQklfSEFTX0NfTElCIGRsKQorIGVuZGlmKCkKKyAKKyBpZiAoTElCQ1hY QUJJX1VTRV9MTFZNX1VOV0lOREVSKQorLS0tIGEvbGliY3h4L0NNYWtlTGlzdHMudHh0CisrKysg Yi9saWJjeHgvQ01ha2VMaXN0cy50eHQKK0BAIC03NDUsNiArNzQ1LDEwIEBACisgICAgIHRhcmdl dF9saW5rX2xpYnJhcmllcygke3RhcmdldH0gUFJJVkFURSBtKQorICAgZW5kaWYoKQorIAorKyAg aWYgKExJQkNYWF9IQVNfQ19MSUIpCisrICAgIHRhcmdldF9saW5rX2xpYnJhcmllcygke3Rhcmdl dH0gUFJJVkFURSBkbCkKKysgIGVuZGlmKCkKKysKKyAgIGlmIChMSUJDWFhfSEFTX1JUX0xJQikK KyAgICAgdGFyZ2V0X2xpbmtfbGlicmFyaWVzKCR7dGFyZ2V0fSBQUklWQVRFIHJ0KQorICAgZW5k aWYoKQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtMTMvcGF0Y2hlcy9saWJ1bndpbmQtcHBjMzIu cGF0Y2ggYi9zcmNwa2dzL2xsdm0xMy9wYXRjaGVzL2xpYnVud2luZC1wcGMzMi5wYXRjaApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjc0YWE3NTc2ZWNmOQotLS0gL2Rl di9udWxsCisrKyBiL3NyY3BrZ3MvbGx2bTEzL3BhdGNoZXMvbGlidW53aW5kLXBwYzMyLnBhdGNo CkBAIC0wLDAgKzEsNjMgQEAKK1RoaXMgZml4ZXMgYnVpbGQgYXQgbGVhc3Qgd2l0aCBnY2M5IHdo aWNoIGRvZXMgbm90IGRlZmluZSBgX19wcGNfX2AuCisKKy0tLSBhL2xpYnVud2luZC9pbmNsdWRl L19fbGlidW53aW5kX2NvbmZpZy5oCisrKysgYi9saWJ1bndpbmQvaW5jbHVkZS9fX2xpYnVud2lu ZF9jb25maWcuaAorQEAgLTQ5LDcgKzQ5LDcgQEAKKyAjICBkZWZpbmUgX0xJQlVOV0lORF9DT05U RVhUX1NJWkUgMTY3CisgIyAgZGVmaW5lIF9MSUJVTldJTkRfQ1VSU09SX1NJWkUgMTc5CisgIyAg ZGVmaW5lIF9MSUJVTldJTkRfSElHSEVTVF9EV0FSRl9SRUdJU1RFUiBfTElCVU5XSU5EX0hJR0hF U1RfRFdBUkZfUkVHSVNURVJfUFBDNjQKKy0jIGVsaWYgZGVmaW5lZChfX3BwY19fKQorKyMgZWxp ZiBkZWZpbmVkKF9fcG93ZXJwY19fKQorICMgIGRlZmluZSBfTElCVU5XSU5EX1RBUkdFVF9QUEMg MQorICMgIGRlZmluZSBfTElCVU5XSU5EX0NPTlRFWFRfU0laRSAxMTcKKyAjICBkZWZpbmUgX0xJ QlVOV0lORF9DVVJTT1JfU0laRSAxMjQKKy0tLSBhL2xpYnVud2luZC9zcmMvVW53aW5kUmVnaXN0 ZXJzUmVzdG9yZS5TCisrKysgYi9saWJ1bndpbmQvc3JjL1Vud2luZFJlZ2lzdGVyc1Jlc3RvcmUu UworQEAgLTM5Miw3ICszOTIsNyBAQCBMbm92ZWM6CisgICBQUEM2NF9MUigzKQorICAgYmN0cgor IAorLSNlbGlmIGRlZmluZWQoX19wcGNfXykKKysjZWxpZiBkZWZpbmVkKF9fcG93ZXJwY19fKQor IAorIERFRklORV9MSUJVTldJTkRfRlVOQ1RJT04oX1pOOWxpYnVud2luZDEzUmVnaXN0ZXJzX3Bw YzZqdW1wdG9FdikKKyAvLworLS0tIGEvbGlidW53aW5kL3NyYy9VbndpbmRSZWdpc3RlcnNTYXZl LlMKKysrKyBiL2xpYnVud2luZC9zcmMvVW53aW5kUmVnaXN0ZXJzU2F2ZS5TCitAQCAtNTU0LDcg KzU1NCw3IEBAIERFRklORV9MSUJVTldJTkRfRlVOQ1RJT04oX191bndfZ2V0Y29udGV4dCkKKyAg IGJscgorIAorIAorLSNlbGlmIGRlZmluZWQoX19wcGNfXykKKysjZWxpZiBkZWZpbmVkKF9fcG93 ZXJwY19fKQorIAorIC8vCisgLy8gZXh0ZXJuIGludCB1bndfZ2V0Y29udGV4dCh1bndfY29udGV4 dF90KiB0aHJlYWRfc3RhdGUpCistLS0gYS9saWJ1bndpbmQvc3JjL2NvbmZpZy5oCisrKysgYi9s aWJ1bndpbmQvc3JjL2NvbmZpZy5oCitAQCAtOTUsMTIgKzk1LDEyIEBACisgI2RlZmluZSBfTElC VU5XSU5EX0JVSUxEX1NKTEpfQVBJUworICNlbmRpZgorIAorLSNpZiBkZWZpbmVkKF9faTM4Nl9f KSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19wcGNfXykgfHwgZGVmaW5lZChf X3BwYzY0X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKKysjaWYgZGVmaW5lZChfX2kzODZf XykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwY19fKSB8fCBkZWZp bmVkKF9fcG93ZXJwYzY0X18pCisgI2RlZmluZSBfTElCVU5XSU5EX1NVUFBPUlRfRlJBTUVfQVBJ UworICNlbmRpZgorIAorICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0 X18pIHx8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgIGRlZmluZWQoX19w cGNfXykgfHwgZGVmaW5lZChfX3BwYzY0X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykgfHwg ICAgICAgIFwKKysgICAgZGVmaW5lZChfX3Bvd2VycGNfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2 NF9fKSB8fCAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAoIWRlZmluZWQoX19BUFBM RV9fKSAmJiBkZWZpbmVkKF9fYXJtX18pKSB8fCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBcCisgICAgIChkZWZpbmVkKF9fYXJtNjRfXykgfHwgZGVmaW5lZChfX2FhcmNoNjRfXykpIHx8 ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgZGVmaW5lZChfX21pcHNfXykKKy0t LSBhL2xpYnVud2luZC9zcmMvbGlidW53aW5kLmNwcAorKysrIGIvbGlidW53aW5kL3NyYy9saWJ1 bndpbmQuY3BwCitAQCAtNDIsNyArNDIsNyBAQCBfTElCVU5XSU5EX0hJRERFTiBpbnQgX191bndf aW5pdF9sb2NhbCh1bndfY3Vyc29yX3QgKmN1cnNvciwKKyAjIGRlZmluZSBSRUdJU1RFUl9LSU5E IFJlZ2lzdGVyc194ODZfNjQKKyAjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisgIyBkZWZp bmUgUkVHSVNURVJfS0lORCBSZWdpc3RlcnNfcHBjNjQKKy0jZWxpZiBkZWZpbmVkKF9fcHBjX18p CisrI2VsaWYgZGVmaW5lZChfX3Bvd2VycGNfXykKKyAjIGRlZmluZSBSRUdJU1RFUl9LSU5EIFJl Z2lzdGVyc19wcGMKKyAjZWxpZiBkZWZpbmVkKF9fYWFyY2g2NF9fKQorICMgZGVmaW5lIFJFR0lT VEVSX0tJTkQgUmVnaXN0ZXJzX2FybTY0CmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0xMy9wYXRj aGVzL2xsZGItbXVzbC5wYXRjaCBiL3NyY3BrZ3MvbGx2bTEzL3BhdGNoZXMvbGxkYi1tdXNsLnBh dGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNjAxYzBkMTM4NTIz Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9sbHZtMTMvcGF0Y2hlcy9sbGRiLW11c2wucGF0 Y2gKQEAgLTAsMCArMSwzMSBAQAorLS0tIGEvbGxkYi9zb3VyY2UvUGx1Z2lucy9Qcm9jZXNzL0xp bnV4L1Byb2Nmcy5oCisrKysgYi9sbGRiL3NvdXJjZS9QbHVnaW5zL1Byb2Nlc3MvTGludXgvUHJv Y2ZzLmgKK0BAIC0xMCwyMSArMTAsMTIgQEAKKyAvLyBzeXMvcHJvY2ZzLmggb24gQW5kcm9pZC9M aW51eCBmb3IgYWxsIHN1cHBvcnRlZCBhcmNoaXRlY3R1cmVzLgorIAorICNpbmNsdWRlIDxzeXMv cHRyYWNlLmg+CisrI2luY2x1ZGUgPGFzbS9wdHJhY2UuaD4KKyAKKy0jaWZkZWYgX19BTkRST0lE X18KKy0jaWYgZGVmaW5lZChfX2FybTY0X18pIHx8IGRlZmluZWQoX19hYXJjaDY0X18pCistdHlw ZWRlZiB1bnNpZ25lZCBsb25nIGVsZl9ncmVnX3Q7CistdHlwZWRlZiBlbGZfZ3JlZ190CistICAg IGVsZl9ncmVnc2V0X3RbKHNpemVvZihzdHJ1Y3QgdXNlcl9wdF9yZWdzKSAvIHNpemVvZihlbGZf Z3JlZ190KSldOworLXR5cGVkZWYgc3RydWN0IHVzZXJfZnBzaW1kX3N0YXRlIGVsZl9mcHJlZ3Nl dF90OworLSNpZm5kZWYgTlRfRlBSRUdTRVQKKy0jZGVmaW5lIE5UX0ZQUkVHU0VUIE5UX1BSRlBS RUcKKy0jZW5kaWYgLy8gTlRfRlBSRUdTRVQKKy0jZWxpZiBkZWZpbmVkKF9fbWlwc19fKQorLSNp Zm5kZWYgTlRfRlBSRUdTRVQKKy0jZGVmaW5lIE5UX0ZQUkVHU0VUIE5UX1BSRlBSRUcKKy0jZW5k aWYgLy8gTlRfRlBSRUdTRVQKKy0jZW5kaWYKKy0jZWxzZSAvLyBfX0FORFJPSURfXworKyNpZiAh ZGVmaW5lZChfX0dMSUJDX18pICYmIGRlZmluZWQoX19wb3dlcnBjX18pCisrI2RlZmluZSBwdF9y ZWdzIG11c2xfcHRfcmVncworKyNpbmNsdWRlIDxzeXMvcHJvY2ZzLmg+CisrI3VuZGVmIHB0X3Jl Z3MKKysjZWxzZQorICNpbmNsdWRlIDxzeXMvcHJvY2ZzLmg+CistI2VuZGlmIC8vIF9fQU5EUk9J RF9fCisrI2VuZGlmCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0xMy9wYXRjaGVzL2xsdm0tMDAx LW11c2wucGF0Y2ggYi9zcmNwa2dzL2xsdm0xMy9wYXRjaGVzL2xsdm0tMDAxLW11c2wucGF0Y2gK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5mMmEzZjhkNjI4MTMKLS0t IC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xsdm0xMy9wYXRjaGVzL2xsdm0tMDAxLW11c2wucGF0 Y2gKQEAgLTAsMCArMSw1NyBAQAorRnJvbSBmYWNhM2ZiZDE1ZDBjMzEwODQ5M2MzYzU0Y2Q5MzEz OGUwNDlhYzQzIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogQW5kcmVhIEJyYW5jYWxl b25pIDxtaXdheGVAZ21haWwuY29tPgorRGF0ZTogVHVlLCA4IFNlcCAyMDE1IDIyOjAzOjAyICsw MjAwCitTdWJqZWN0OiBbUEFUQ0ggMy8zXSBtdXNsCisKKy0tLQorIGluY2x1ZGUvbGx2bS9BbmFs eXNpcy9UYXJnZXRMaWJyYXJ5SW5mby5oIHwgOSArKysrKysrKysKKyBsaWIvU3VwcG9ydC9EeW5h bWljTGlicmFyeS5jcHAgICAgICAgICAgICB8IDIgKy0KKyBsaWIvU3VwcG9ydC9Vbml4L1NpZ25h bHMuaW5jICAgICAgICAgICAgICB8IDYgKysrLS0tCisgdXRpbHMvdW5pdHRlc3QvZ29vZ2xldGVz dC9zcmMvZ3Rlc3QuY2MgICAgfCAxICsKKyA1IGZpbGVzIGNoYW5nZWQsIDE3IGluc2VydGlvbnMo KyksIDYgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9pbmNsdWRlL2xsdm0vQW5hbHlzaXMv VGFyZ2V0TGlicmFyeUluZm8uaCBiL2luY2x1ZGUvbGx2bS9BbmFseXNpcy9UYXJnZXRMaWJyYXJ5 SW5mby5oCitpbmRleCAzNGE4YTFlMy4uMTIxNGVjZTUgMTAwNjQ0CistLS0gYS9sbHZtL2luY2x1 ZGUvbGx2bS9BbmFseXNpcy9UYXJnZXRMaWJyYXJ5SW5mby5oCisrKysgYi9sbHZtL2luY2x1ZGUv bGx2bS9BbmFseXNpcy9UYXJnZXRMaWJyYXJ5SW5mby5oCitAQCAtMTgsNiArMTgsMTUgQEAKKyAj aW5jbHVkZSAibGx2bS9JUi9QYXNzTWFuYWdlci5oIgorICNpbmNsdWRlICJsbHZtL1Bhc3MuaCIK KyAKKysjdW5kZWYgZm9wZW42NAorKyN1bmRlZiBmc2Vla282NAorKyN1bmRlZiBmc3RhdDY0Cisr I3VuZGVmIGZzdGF0dmZzNjQKKysjdW5kZWYgZnRlbGxvNjQKKysjdW5kZWYgbHN0YXQ2NAorKyN1 bmRlZiBzdGF0NjQKKysjdW5kZWYgdG1wZmlsZTY0CisrCisgbmFtZXNwYWNlIGxsdm0geworIHRl bXBsYXRlIDx0eXBlbmFtZSBUPiBjbGFzcyBBcnJheVJlZjsKKyBjbGFzcyBUcmlwbGU7CitkaWZm IC0tZ2l0IGEvbGliL1N1cHBvcnQvVW5peC9EeW5hbWljTGlicmFyeS5pbmMgYi9saWIvU3VwcG9y dC9Vbml4L0R5bmFtaWNMaWJyYXJ5LmluYworaW5kZXggYTJhMzc5OTYuLjJmODZjNDcwIDEwMDY0 NAorLS0tIGEvbGx2bS9saWIvU3VwcG9ydC9Vbml4L0R5bmFtaWNMaWJyYXJ5LmluYworKysrIGIv bGx2bS9saWIvU3VwcG9ydC9Vbml4L0R5bmFtaWNMaWJyYXJ5LmluYworQEAgLTEwMiw3ICsxMDIs NyBAQCBzdGF0aWMgdm9pZCAqRG9TZWFyY2goY29uc3QgY2hhciogU3ltYm9sTmFtZSkgeworIAor IC8vIFRoaXMgbWFjcm8gcmV0dXJucyB0aGUgYWRkcmVzcyBvZiBhIHdlbGwta25vd24sIGV4cGxp Y2l0IHN5bWJvbAorICNkZWZpbmUgRVhQTElDSVRfU1lNQk9MKFNZTSkgXAorLSAgIGlmICghc3Ry Y21wKFN5bWJvbE5hbWUsICNTWU0pKSByZXR1cm4gJlNZTQorKyAgIGlmICghc3RyY21wKFN5bWJv bE5hbWUsICNTWU0pKSByZXR1cm4gKHZvaWQgKikmU1lNCisgCisgLy8gVW5kZXIgZ2xpYmMgd2Ug aGF2ZSBhIHdlaXJkIHNpdHVhdGlvbi4gVGhlIHN0ZGVyci9vdXQvaW4gc3ltYm9scyBhcmUgYm90 aAorIC8vIG1hY3JvcyBhbmQgZ2xvYmFsIHZhcmlhYmxlcyBiZWNhdXNlIG9mIHN0YW5kYXJkcyBy ZXF1aXJlbWVudHMuIFNvLCB3ZQorZGlmZiAtLWdpdCBhL3V0aWxzL3VuaXR0ZXN0L2dvb2dsZXRl c3Qvc3JjL2d0ZXN0LmNjIGIvdXRpbHMvdW5pdHRlc3QvZ29vZ2xldGVzdC9zcmMvZ3Rlc3QuY2MK K2luZGV4IGQ4ODJhYjJlLi5mMWZiMTJkMCAxMDA2NDQKKy0tLSBhL2xsdm0vdXRpbHMvdW5pdHRl c3QvZ29vZ2xldGVzdC9zcmMvZ3Rlc3QuY2MKKysrKyBiL2xsdm0vdXRpbHMvdW5pdHRlc3QvZ29v Z2xldGVzdC9zcmMvZ3Rlc3QuY2MKK0BAIC0xMjgsNiArMTI4LDcgQEAKKyAKKyAjaWYgR1RFU1Rf Q0FOX1NUUkVBTV9SRVNVTFRTXworICMgaW5jbHVkZSA8YXJwYS9pbmV0Lmg+ICAvLyBOT0xJTlQK KysjIGluY2x1ZGUgPHN5cy9zb2NrZXQuaD4gIC8vIE5PTElOVAorICMgaW5jbHVkZSA8bmV0ZGIu aD4gIC8vIE5PTElOVAorICMgaW5jbHVkZSA8c3lzL3NvY2tldC5oPiAgLy8gTk9MSU5UCisgIyBp bmNsdWRlIDxzeXMvdHlwZXMuaD4gIC8vIE5PTElOVApkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZt MTMvcGF0Y2hlcy9sbHZtLTAwMi1tdXNsLXBwYzY0LWVsZnYyLnBhdGNoIGIvc3JjcGtncy9sbHZt MTMvcGF0Y2hlcy9sbHZtLTAwMi1tdXNsLXBwYzY0LWVsZnYyLnBhdGNoCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMDA3MWQ5NjRiZDM3Ci0tLSAvZGV2L251bGwKKysr IGIvc3JjcGtncy9sbHZtMTMvcGF0Y2hlcy9sbHZtLTAwMi1tdXNsLXBwYzY0LWVsZnYyLnBhdGNo CkBAIC0wLDAgKzEsMzAgQEAKK1RoaXMgcGF0Y2hlcyBMTFZNIHRvIHVzZSBFTEZ2MiBvbiBwcGM2 NCB1bmNvbmRpdGlvbmFsbHkgdW5sZXNzIG92ZXJyaWRkZW4uIFdlCituZWVkIHRoaXMgYmVjYXVz ZSB1bmxpa2UgbW9zdCBkaXN0cm9zIHdlIHVzZSBFTEZ2MiBmb3IgYm90aCBnbGliYyBhbmQgbXVz bAorb24gYmlnIGVuZGlhbiBwcGM2NC4KKworZGlmZiAtLWdpdCBhL2xpYi9UYXJnZXQvUG93ZXJQ Qy9QUENUYXJnZXRNYWNoaW5lLmNwcCBiL2xpYi9UYXJnZXQvUG93ZXJQQy9QUENUYXJnZXRNYWNo aW5lLmNwcAoraW5kZXggMDYzNDgzM2UuLmI3Y2JjMmU3IDEwMDY0NAorLS0tIGEvbGx2bS9saWIv VGFyZ2V0L1Bvd2VyUEMvUFBDVGFyZ2V0TWFjaGluZS5jcHAKKysrKyBiL2xsdm0vbGliL1Rhcmdl dC9Qb3dlclBDL1BQQ1RhcmdldE1hY2hpbmUuY3BwCitAQCAtMjIyLDkgKzIyMiw4IEBAIHN0YXRp YyBQUENUYXJnZXRNYWNoaW5lOjpQUENBQkkgY29tcHV0ZVRhcmdldEFCSShjb25zdCBUcmlwbGUg JlRULAorIAorICAgc3dpdGNoIChUVC5nZXRBcmNoKCkpIHsKKyAgIGNhc2UgVHJpcGxlOjpwcGM2 NGxlOgorLSAgICByZXR1cm4gUFBDVGFyZ2V0TWFjaGluZTo6UFBDX0FCSV9FTEZ2MjsKKyAgIGNh c2UgVHJpcGxlOjpwcGM2NDoKKy0gICAgcmV0dXJuIFBQQ1RhcmdldE1hY2hpbmU6OlBQQ19BQklf RUxGdjE7CisrICAgIHJldHVybiBQUENUYXJnZXRNYWNoaW5lOjpQUENfQUJJX0VMRnYyOworICAg ZGVmYXVsdDoKKyAgICAgcmV0dXJuIFBQQ1RhcmdldE1hY2hpbmU6OlBQQ19BQklfVU5LTk9XTjsK KyAgIH0KK2RpZmYgLS1naXQgYS90ZXN0L0NvZGVHZW4vUG93ZXJQQy9wcGM2NC1lbGYtYWJpLmxs IGIvdGVzdC9Db2RlR2VuL1Bvd2VyUEMvcHBjNjQtZWxmLWFiaS5sbAoraW5kZXggOGIxY2Y2YjUu LjI5NmEyYWZhIDEwMDY0NAorLS0tIGEvbGx2bS90ZXN0L0NvZGVHZW4vUG93ZXJQQy9wcGM2NC1l bGYtYWJpLmxsCisrKysgYi9sbHZtL3Rlc3QvQ29kZUdlbi9Qb3dlclBDL3BwYzY0LWVsZi1hYmku bGwKK0BAIC0xLDQgKzEsNSBAQAorLTsgUlVOOiBsbGMgLXZlcmlmeS1tYWNoaW5laW5zdHJzIC1t dHJpcGxlPXBvd2VycGM2NC11bmtub3duLWxpbnV4LWdudSA8ICVzIHwgRmlsZUNoZWNrICVzIC1j aGVjay1wcmVmaXg9Q0hFQ0stRUxGdjEKKys7IFJVTjogbGxjIC12ZXJpZnktbWFjaGluZWluc3Ry cyAtbXRyaXBsZT1wb3dlcnBjNjQtdW5rbm93bi1saW51eC1nbnUgPCAlcyB8IEZpbGVDaGVjayAl cyAtY2hlY2stcHJlZml4PUNIRUNLLUVMRnYyCisrOyBSVU46IGxsYyAtdmVyaWZ5LW1hY2hpbmVp bnN0cnMgLW10cmlwbGU9cG93ZXJwYzY0LXVua25vd24tbGludXgtbXVzbCA8ICVzIHwgRmlsZUNo ZWNrICVzIC1jaGVjay1wcmVmaXg9Q0hFQ0stRUxGdjIKKyA7IFJVTjogbGxjIC12ZXJpZnktbWFj aGluZWluc3RycyAtbXRyaXBsZT1wb3dlcnBjNjQtdW5rbm93bi1saW51eC1nbnUgLXRhcmdldC1h YmkgZWxmdjEgPCAlcyB8IEZpbGVDaGVjayAlcyAtY2hlY2stcHJlZml4PUNIRUNLLUVMRnYxCisg OyBSVU46IGxsYyAtdmVyaWZ5LW1hY2hpbmVpbnN0cnMgLW10cmlwbGU9cG93ZXJwYzY0LXVua25v d24tbGludXgtZ251IC10YXJnZXQtYWJpIGVsZnYyIDwgJXMgfCBGaWxlQ2hlY2sgJXMgLWNoZWNr LXByZWZpeD1DSEVDSy1FTEZ2MgorIDsgUlVOOiBsbGMgLXZlcmlmeS1tYWNoaW5laW5zdHJzIC1t dHJpcGxlPXBvd2VycGM2NGxlLXVua25vd24tbGludXgtZ251IDwgJXMgfCBGaWxlQ2hlY2sgJXMg LWNoZWNrLXByZWZpeD1DSEVDSy1FTEZ2MgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtMTMvcGF0 Y2hlcy9sbHZtLTAwMy1wcGMtc2VjdXJlcGx0LnBhdGNoIGIvc3JjcGtncy9sbHZtMTMvcGF0Y2hl cy9sbHZtLTAwMy1wcGMtc2VjdXJlcGx0LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMDAwMC4uYjVkMTU5NzQzNzVkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9s bHZtMTMvcGF0Y2hlcy9sbHZtLTAwMy1wcGMtc2VjdXJlcGx0LnBhdGNoCkBAIC0wLDAgKzEsMTEg QEAKKy0tLSBhL2xsdm0vbGliL1RhcmdldC9Qb3dlclBDL1BQQ1N1YnRhcmdldC5jcHAKKysrKyBi L2xsdm0vbGliL1RhcmdldC9Qb3dlclBDL1BQQ1N1YnRhcmdldC5jcHAKK0BAIC0xNjUsNyArMTY1 LDcgQEAgdm9pZCBQUENTdWJ0YXJnZXQ6OmluaXRTdWJ0YXJnZXRGZWF0dXJlcyhTdHJpbmdSZWYg Q1BVLCBTdHJpbmdSZWYgRlMpIHsKKyAKKyAgIGlmICgoVGFyZ2V0VHJpcGxlLmlzT1NGcmVlQlNE KCkgJiYgVGFyZ2V0VHJpcGxlLmdldE9TTWFqb3JWZXJzaW9uKCkgPj0gMTMpIHx8CisgICAgICAg VGFyZ2V0VHJpcGxlLmlzT1NOZXRCU0QoKSB8fCBUYXJnZXRUcmlwbGUuaXNPU09wZW5CU0QoKSB8 fAorLSAgICAgIFRhcmdldFRyaXBsZS5pc011c2woKSkKKysgICAgICBpc1RhcmdldExpbnV4KCkp CisgICAgIFNlY3VyZVBsdCA9IHRydWU7CisgCisgICBpZiAoSGFzU1BFICYmIElzUFBDNjQpCmRp ZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0xMy9wYXRjaGVzL2xsdm0tMDA0LW92ZXJyaWRlLW9wdC5w YXRjaCBiL3NyY3BrZ3MvbGx2bTEzL3BhdGNoZXMvbGx2bS0wMDQtb3ZlcnJpZGUtb3B0LnBhdGNo Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNTFkMGU0YjMxYjMyCi0t LSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9sbHZtMTMvcGF0Y2hlcy9sbHZtLTAwNC1vdmVycmlk ZS1vcHQucGF0Y2gKQEAgLTAsMCArMSwxOCBAQAorVGhpcyBhbGxvd3MgdXMgdG8gb3ZlcnJpZGUg dGhlIG9wdGltaXphdGlvbiBsZXZlbCBhcyBub3QgYWxsIHBsYXRmb3JtcyBjYW4KK2RlYWwgd2l0 aCAtTzMuCisKKy0tLSBhL2xsdm0vQ01ha2VMaXN0cy50eHQKKysrKyBiL2xsdm0vQ01ha2VMaXN0 cy50eHQKK0BAIC05MTgsNiArOTE4LDEyIEBAIGlmKCBNSU5HVyBBTkQgTk9UICIke0NNQUtFX0NY WF9DT01QSUxFUl9JRH0iIE1BVENIRVMgIkNsYW5nIiApCisgICBsbHZtX3JlcGxhY2VfY29tcGls ZXJfb3B0aW9uKENNQUtFX0NYWF9GTEFHU19SRUxFQVNFICItTzMiICItTzIiKQorIGVuZGlmKCkK KyAKKytzZXQoVk9JRF9DWFhfT1BUX0ZMQUdTICIiIENBQ0hFIFNUUklORyAiT3B0aW1pemF0aW9u IGxldmVsIHRvIHVzZSIpCisrCisraWYgKE5PVCBWT0lEX0NYWF9PUFRfRkxBR1MgU1RSRVFVQUwg IiIpCisrICAgIGxsdm1fcmVwbGFjZV9jb21waWxlcl9vcHRpb24oQ01BS0VfQ1hYX0ZMQUdTX1JF TEVBU0UgIi1PMyIgIiR7Vk9JRF9DWFhfT1BUX0ZMQUdTfSIpCisrZW5kaWYoKQorKworICMgUHV0 IHRoaXMgYmVmb3JlIHRibGdlbi4gRWxzZSB3ZSBoYXZlIGEgY2lyY3VsYXIgZGVwZW5kZW5jZS4K KyBhZGRfc3ViZGlyZWN0b3J5KGxpYi9EZW1hbmdsZSkKKyBhZGRfc3ViZGlyZWN0b3J5KGxpYi9T dXBwb3J0KQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtMTMvcGF0Y2hlcy9sbHZtLTAwNS1wcGMt YmlncGljLnBhdGNoIGIvc3JjcGtncy9sbHZtMTMvcGF0Y2hlcy9sbHZtLTAwNS1wcGMtYmlncGlj LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZDMzMjY4N2I5 ZDkyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9sbHZtMTMvcGF0Y2hlcy9sbHZtLTAwNS1w cGMtYmlncGljLnBhdGNoCkBAIC0wLDAgKzEsMzYgQEAKK0Zyb20gZjNkYmRkNDljMDZiZmFmYzFk NjEzODA5NGNmNDI4ODljMTRkMzhiNiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFNh bXVlbCBIb2xsYW5kIDxzYW11ZWxAc2hvbGxhbmQub3JnPgorRGF0ZTogU3VuLCAzIE5vdiAyMDE5 IDEwOjU3OjI3IC0wNjAwCitTdWJqZWN0OiBbUEFUQ0hdIFtMTFZNXVtQb3dlclBDXSBBc3N1bWUg QmlnUElDIGlmIG5vIFBJQyBsZXZlbCBpcyBzcGVjaWZpZWQKKworLS0tCisgbGx2bS9saWIvVGFy Z2V0L1Bvd2VyUEMvUFBDQXNtUHJpbnRlci5jcHAgIHwgMiArLQorIGxsdm0vbGliL1RhcmdldC9Q b3dlclBDL1BQQ01DSW5zdExvd2VyLmNwcCB8IDIgKy0KKyAyIGZpbGVzIGNoYW5nZWQsIDIgaW5z ZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2xpYi9UYXJnZXQvUG93 ZXJQQy9QUENBc21QcmludGVyLmNwcCBiL2xpYi9UYXJnZXQvUG93ZXJQQy9QUENBc21QcmludGVy LmNwcAoraW5kZXggY2NlMjFmMzIuLjg3Y2E1ZjliIDEwMDY0NAorLS0tIGEvbGx2bS9saWIvVGFy Z2V0L1Bvd2VyUEMvUFBDQXNtUHJpbnRlci5jcHAKKysrKyBiL2xsdm0vbGliL1RhcmdldC9Qb3dl clBDL1BQQ0FzbVByaW50ZXIuY3BwCitAQCAtNTIwLDcgKzUyMCw3IEBAIHZvaWQgUFBDQXNtUHJp bnRlcjo6RW1pdFRsc0NhbGwoY29uc3QgTWFjaGluZUluc3RyICpNSSwKKyAKKyAgIC8vIEFkZCAz Mjc2OCBvZmZzZXQgdG8gdGhlIHN5bWJvbCBzbyB3ZSBmb2xsb3cgdXAgdGhlIGxhdGVzdCBHT1Qv UExUIEFCSS4KKyAgIGlmIChLaW5kID09IE1DU3ltYm9sUmVmRXhwcjo6VktfUExUICYmIFN1YnRh cmdldC0+aXNTZWN1cmVQbHQoKSAmJgorLSAgICAgIE0tPmdldFBJQ0xldmVsKCkgPT0gUElDTGV2 ZWw6OkJpZ1BJQykKKysgICAgICBNLT5nZXRQSUNMZXZlbCgpICE9IFBJQ0xldmVsOjpTbWFsbFBJ QykKKyAgICAgVGxzUmVmID0gTUNCaW5hcnlFeHByOjpjcmVhdGVBZGQoCisgICAgICAgICBUbHNS ZWYsIE1DQ29uc3RhbnRFeHByOjpjcmVhdGUoMzI3NjgsIE91dENvbnRleHQpLCBPdXRDb250ZXh0 KTsKKyAgIGNvbnN0IE1hY2hpbmVPcGVyYW5kICZNTyA9IE1JLT5nZXRPcGVyYW5kKDIpOworZGlm ZiAtLWdpdCBhL2xpYi9UYXJnZXQvUG93ZXJQQy9QUENNQ0luc3RMb3dlci5jcHAgYi9saWIvVGFy Z2V0L1Bvd2VyUEMvUFBDTUNJbnN0TG93ZXIuY3BwCitpbmRleCA1Y2MxODBkNy4uYTViMDI1NjUg MTAwNjQ0CistLS0gYS9sbHZtL2xpYi9UYXJnZXQvUG93ZXJQQy9QUENNQ0luc3RMb3dlci5jcHAK KysrKyBiL2xsdm0vbGliL1RhcmdldC9Qb3dlclBDL1BQQ01DSW5zdExvd2VyLmNwcAorQEAgLTEx Nyw3ICsxMTcsNyBAQCBzdGF0aWMgTUNPcGVyYW5kIEdldFN5bWJvbFJlZihjb25zdCBNYWNoaW5l T3BlcmFuZCAmTU8sIGNvbnN0IE1DU3ltYm9sICpTeW1ib2wsCisgICBjb25zdCBNQ0V4cHIgKkV4 cHIgPSBNQ1N5bWJvbFJlZkV4cHI6OmNyZWF0ZShTeW1ib2wsIFJlZktpbmQsIEN0eCk7CisgICAv LyBJZiAtbXNlY3VyZS1wbHQgLWZQSUMsIGFkZCAzMjc2OCB0byBzeW1ib2wuCisgICBpZiAoU3Vi dGFyZ2V0LT5pc1NlY3VyZVBsdCgpICYmIFRNLmlzUG9zaXRpb25JbmRlcGVuZGVudCgpICYmCist ICAgICAgTS0+Z2V0UElDTGV2ZWwoKSA9PSBQSUNMZXZlbDo6QmlnUElDICYmCisrICAgICAgTS0+ Z2V0UElDTGV2ZWwoKSAhPSBQSUNMZXZlbDo6U21hbGxQSUMgJiYKKyAgICAgICBNTy5nZXRUYXJn ZXRGbGFncygpID09IFBQQ0lJOjpNT19QTFQpCisgICAgIEV4cHIgPQorICAgICAgICAgTUNCaW5h cnlFeHByOjpjcmVhdGVBZGQoRXhwciwgTUNDb25zdGFudEV4cHI6OmNyZWF0ZSgzMjc2OCwgQ3R4 KSwgQ3R4KTsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bTEzL3BhdGNoZXMvbGx2bS0wMDYtYWFy Y2g2NC1tZl9leGVjLnBhdGNoIGIvc3JjcGtncy9sbHZtMTMvcGF0Y2hlcy9sbHZtLTAwNi1hYXJj aDY0LW1mX2V4ZWMucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw Li5hMDBhYmQyMTY2NjUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xsdm0xMy9wYXRjaGVz L2xsdm0tMDA2LWFhcmNoNjQtbWZfZXhlYy5wYXRjaApAQCAtMCwwICsxLDI1IEBACitGaXggZmFp bHVyZXMgaW4gQWxsb2NhdGlvblRlc3RzL01hcHBlZE1lbW9yeVRlc3QuKiBvbiBhYXJjaDY0Ogor CisgICAgRmFpbGluZyBUZXN0cyAoOCk6CisgICAgICAgIExMVk0tVW5pdCA6OiBTdXBwb3J0Ly4v U3VwcG9ydFRlc3RzL0FsbG9jYXRpb25UZXN0cy9NYXBwZWRNZW1vcnlUZXN0LkFsbG9jQW5kUmVs ZWFzZS8zCisgICAgICAgIExMVk0tVW5pdCA6OiBTdXBwb3J0Ly4vU3VwcG9ydFRlc3RzL0FsbG9j YXRpb25UZXN0cy9NYXBwZWRNZW1vcnlUZXN0LkR1cGxpY2F0ZU5lYXIvMworICAgICAgICBMTFZN LVVuaXQgOjogU3VwcG9ydC8uL1N1cHBvcnRUZXN0cy9BbGxvY2F0aW9uVGVzdHMvTWFwcGVkTWVt b3J5VGVzdC5FbmFibGVkV3JpdGUvMworICAgICAgICBMTFZNLVVuaXQgOjogU3VwcG9ydC8uL1N1 cHBvcnRUZXN0cy9BbGxvY2F0aW9uVGVzdHMvTWFwcGVkTWVtb3J5VGVzdC5NdWx0aXBsZUFsbG9j QW5kUmVsZWFzZS8zCisgICAgICAgIExMVk0tVW5pdCA6OiBTdXBwb3J0Ly4vU3VwcG9ydFRlc3Rz L0FsbG9jYXRpb25UZXN0cy9NYXBwZWRNZW1vcnlUZXN0LlN1Y2Nlc3NpdmVOZWFyLzMKKyAgICAg ICAgTExWTS1Vbml0IDo6IFN1cHBvcnQvLi9TdXBwb3J0VGVzdHMvQWxsb2NhdGlvblRlc3RzL01h cHBlZE1lbW9yeVRlc3QuVW5hbGlnbmVkTmVhci8zCisgICAgICAgIExMVk0tVW5pdCA6OiBTdXBw b3J0Ly4vU3VwcG9ydFRlc3RzL0FsbG9jYXRpb25UZXN0cy9NYXBwZWRNZW1vcnlUZXN0Llplcm9O ZWFyLzMKKyAgICAgICAgTExWTS1Vbml0IDo6IFN1cHBvcnQvLi9TdXBwb3J0VGVzdHMvQWxsb2Nh dGlvblRlc3RzL01hcHBlZE1lbW9yeVRlc3QuWmVyb1NpemVOZWFyLzMKKworVXBzdHJlYW0tSXNz dWU6IGh0dHBzOi8vYnVncy5sbHZtLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyNzgjYzEwCisKKy0t LSBhL2xsdm0vbGliL1N1cHBvcnQvVW5peC9NZW1vcnkuaW5jCisrKysgYi9sbHZtL2xpYi9TdXBw b3J0L1VuaXgvTWVtb3J5LmluYworQEAgLTU4LDcgKzU4LDcgQEAgc3RhdGljIGludCBnZXRQb3Np eFByb3RlY3Rpb25GbGFncyh1bnNpZ25lZCBGbGFncykgeworICAgICByZXR1cm4gUFJPVF9SRUFE IHwgUFJPVF9XUklURSB8IFBST1RfRVhFQzsKKyAgIGNhc2UgbGx2bTo6c3lzOjpNZW1vcnk6Ok1G X0VYRUM6CisgI2lmIChkZWZpbmVkKF9fRnJlZUJTRF9fKSB8fCBkZWZpbmVkKF9fUE9XRVJQQ19f KSB8fCBkZWZpbmVkIChfX3BwY19fKSB8fCBcCistICAgICBkZWZpbmVkKF9QT1dFUikgfHwgZGVm aW5lZChfQVJDSF9QUEMpKQorKyAgICAgZGVmaW5lZChfUE9XRVIpIHx8IGRlZmluZWQoX0FSQ0hf UFBDKSB8fCAoZGVmaW5lZChfX2xpbnV4X18pICYmIGRlZmluZWQoX19hYXJjaDY0X18pKSkKKyAg ICAgLy8gT24gUG93ZXJQQywgaGF2aW5nIGFuIGV4ZWN1dGFibGUgcGFnZSB0aGF0IGhhcyBubyBy ZWFkIHBlcm1pc3Npb24KKyAgICAgLy8gY2FuIGhhdmUgdW5pbnRlbmRlZCBjb25zZXF1ZW5jZXMu ICBUaGUgZnVuY3Rpb24gSW52YWxpZGF0ZUluc3RydWN0aW9uLQorICAgICAvLyBDYWNoZSB1c2Vz IGluc3RydWN0aW9ucyBkY2JmIGFuZCBpY2JpLCBib3RoIG9mIHdoaWNoIGFyZSB0cmVhdGVkIGJ5 CmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0xMy9wYXRjaGVzL3BwYzMyLWNvbXBpbGVyLXJ0LnBh dGNoIGIvc3JjcGtncy9sbHZtMTMvcGF0Y2hlcy9wcGMzMi1jb21waWxlci1ydC5wYXRjaApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjhlMGE5YTc3OWQxYgotLS0gL2Rl di9udWxsCisrKyBiL3NyY3BrZ3MvbGx2bTEzL3BhdGNoZXMvcHBjMzItY29tcGlsZXItcnQucGF0 Y2gKQEAgLTAsMCArMSwyMSBAQAorY29tbWl0IGJhNGVkZTU5NWZmOTU5OTIzMmY1ZGQyYjQzODRj MjQzMTM3YjUzZmMKK0F1dGhvcjogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+ CitEYXRlOiAgIFR1ZSBKdW4gMjIgMjM6NDA6NTQgMjAyMSArMDIwMAorCisgICAgZW5hYmxlIGNv bXBpbGVyLXJ0IHN1cHBvcnQgZm9yIHBwYzMyCisKK2RpZmYgLS1naXQgYS9jb21waWxlci1ydC9j bWFrZS9iYXNlLWNvbmZpZy1peC5jbWFrZSBiL2NvbXBpbGVyLXJ0L2NtYWtlL2Jhc2UtY29uZmln LWl4LmNtYWtlCitpbmRleCAxZWRhYjQzLi41YzBjOGEyIDEwMDY0NAorLS0tIGEvY29tcGlsZXIt cnQvY21ha2UvYmFzZS1jb25maWctaXguY21ha2UKKysrKyBiL2NvbXBpbGVyLXJ0L2NtYWtlL2Jh c2UtY29uZmlnLWl4LmNtYWtlCitAQCAtMTgyLDkgKzE4Miw3IEBAIG1hY3JvKHRlc3RfdGFyZ2V0 cykKKyAgICAgZWxzZWlmKCIke0NPTVBJTEVSX1JUX0RFRkFVTFRfVEFSR0VUX0FSQ0h9IiBNQVRD SEVTICJwb3dlcnBjNjRsZSIpCisgICAgICAgdGVzdF90YXJnZXRfYXJjaChwb3dlcnBjNjRsZSAi IiAiLW02NCIpCisgICAgIGVsc2VpZigiJHtDT01QSUxFUl9SVF9ERUZBVUxUX1RBUkdFVF9BUkNI fSIgTUFUQ0hFUyAicG93ZXJwYyIpCistICAgICAgaWYoQ01BS0VfU1lTVEVNX05BTUUgTUFUQ0hF UyAiQUlYIikKKy0gICAgICAgIHRlc3RfdGFyZ2V0X2FyY2gocG93ZXJwYyAiIiAiLW0zMiIpCist ICAgICAgZW5kaWYoKQorKyAgICAgIHRlc3RfdGFyZ2V0X2FyY2gocG93ZXJwYyAiIiAiLW0zMiIp CisgICAgICAgdGVzdF90YXJnZXRfYXJjaChwb3dlcnBjNjQgIiIgIi1tNjQiKQorICAgICBlbHNl aWYoIiR7Q09NUElMRVJfUlRfREVGQVVMVF9UQVJHRVRfQVJDSH0iIE1BVENIRVMgInMzOTB4IikK KyAgICAgICB0ZXN0X3RhcmdldF9hcmNoKHMzOTB4ICIiICIiKQpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9sbHZtMTMvdGVtcGxhdGUgYi9zcmNwa2dzL2xsdm0xMy90ZW1wbGF0ZQpuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjA4ZDg0NzQ3MjUyNQotLS0gL2Rldi9udWxsCisr KyBiL3NyY3BrZ3MvbGx2bTEzL3RlbXBsYXRlCkBAIC0wLDAgKzEsNDIzIEBACisjIFRlbXBsYXRl IGZpbGUgZm9yICdsbHZtMTMnCitwa2duYW1lPWxsdm0xMwordmVyc2lvbj0xMy4wLjAKK3Jldmlz aW9uPTEKK3dya3NyYz0ibGx2bS1wcm9qZWN0LSR7dmVyc2lvbn0uc3JjIgorYnVpbGRfd3Jrc3Jj PWxsdm0KK2J1aWxkX3N0eWxlPWNtYWtlCitjb25maWd1cmVfYXJncz0iCisgLURDTUFLRV9CVUlM RF9UWVBFPVJlbGVhc2UgLVduby1kZXYKKyAtREVOQUJMRV9MSU5LRVJfQlVJTERfSUQ9WUVTCisg LURMTERCX1VTRV9TWVNURU1fU0lYPVlFUworIC1ETElCQ1hYX0NYWF9BQkk9bGliY3h4YWJpCisg LURMSUJDWFhfRU5BQkxFX1NUQVRJQ19BQklfTElCUkFSWT1ZRVMKKyAtRExJQkNYWEFCSV9VU0Vf TExWTV9VTldJTkRFUj1ZRVMKKyAtRExJQkNYWEFCSV9FTkFCTEVfU1RBVElDX1VOV0lOREVSPVlF UworIC1ETElCT01QX0VOQUJMRV9TSEFSRUQ9WUVTCisgLURMSUJPTVBfSU5TVEFMTF9BTElBU0VT PU5PCisgLURMTFZNX0lOQ0xVREVfRE9DUz1ZRVMKKyAtRExMVk1fQlVJTERfRE9DUz1ZRVMKKyAt RExMVk1fRU5BQkxFX1NQSElOWD1ZRVMKKyAtRFNQSElOWF9XQVJOSU5HU19BU19FUlJPUlM9Tk8K KyAtRExMVk1fSU5TVEFMTF9VVElMUz1ZRVMKKyAtRExMVk1fQlVJTERfTExWTV9EWUxJQj1ZRVMK KyAtRExMVk1fTElOS19MTFZNX0RZTElCPVlFUworIC1ETExWTV9FTkFCTEVfUlRUST1ZRVMKKyAt RExMVk1fRU5BQkxFX0ZGST1ZRVMKKyAtRExMVk1fQklOVVRJTFNfSU5DRElSPS91c3IvaW5jbHVk ZSIKK2hvc3RtYWtlZGVwZW5kcz0icGVybCBweXRob24zIHpsaWItZGV2ZWwgbGliZmZpLWRldmVs IHN3aWcgcHl0aG9uMy1TcGhpbngKKyBweXRob24zLXJlY29tbW9ubWFyayBweXRob24zLXNwaGlu eC1hdXRvbW9kYXBpIgorbWFrZWRlcGVuZHM9InB5dGhvbjMtZGV2ZWwgemxpYi1kZXZlbCBlbGZ1 dGlscy1kZXZlbCBsaWJmZmktZGV2ZWwgbGliZWRpdC1kZXZlbAorIGxpYnhtbDItZGV2ZWwgYmlu dXRpbHMtZGV2ZWwgbGliYXRvbWljLWRldmVsIgorZGVwZW5kcz0ibGlibGx2bTEzPj0ke3ZlcnNp b259XyR7cmV2aXNpb259Igorc2hvcnRfZGVzYz0iTG93IExldmVsIFZpcnR1YWwgTWFjaGluZSIK K21haW50YWluZXI9InE2NiA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+IgorbGljZW5zZT0iQXBhY2hl LTIuMCIKK2hvbWVwYWdlPSJodHRwczovL3d3dy5sbHZtLm9yZyIKK2Rpc3RmaWxlcz0iaHR0cHM6 Ly9naXRodWIuY29tL2xsdm0vbGx2bS1wcm9qZWN0L3JlbGVhc2VzL2Rvd25sb2FkL2xsdm1vcmct JHt2ZXJzaW9ufS9sbHZtLXByb2plY3QtJHt2ZXJzaW9ufS5zcmMudGFyLnh6IgorY2hlY2tzdW09 NjA3NWFkMzBmMWFjMGUxNWYwN2MxYmYwNjJjMWUxMjY4YzI0MWQ2NzRmMTFiZDMyY2RmMGUwNDBj NzFmMmJmMworbGliMzJkaXNhYmxlZD15ZXMKK3B5dGhvbl92ZXJzaW9uPTMKKworaWYgWyAiJFhC UFNfVEFSR0VUX0xJQkMiID0gIm11c2wiIF07IHRoZW4KKwljb25maWd1cmVfYXJncys9IiAtRExJ QkNYWF9IQVNfTVVTTF9MSUJDPVlFUyIKKwltYWtlZGVwZW5kcys9IiBsaWJleGVjaW5mby1kZXZl bCIKKwlkZXBlbmRzKz0iIGxpYmV4ZWNpbmZvLWRldmVsIgorZmkKKworIyAib3BlcmFuZCBvdXQg b2YgcmFuZ2UiIGFzc2VtYmxlciBmYWlsdXJlcworY2FzZSAiJFhCUFNfVEFSR0VUX01BQ0hJTkUi IGluCisJcHBjNjQqKSA7OworCXBwYyopIGNvbmZpZ3VyZV9hcmdzKz0iIC1EQ0xBTkdfRU5BQkxF X0NMQU5HRD1PRkYiIDs7Citlc2FjCisKK19lbmFibGVkX3Byb2plY3RzPSJjbGFuZztjbGFuZy10 b29scy1leHRyYTtjb21waWxlci1ydDtsaWJjeHg7bGliY3h4YWJpO2xpYnVud2luZDtsbGQiCisK K19sbGRiX2VuYWJsZT15ZXMKK19saWJvbXBfZW5hYmxlPW5vCisKK2Nhc2UgIiRYQlBTX1RBUkdF VF9NQUNISU5FIiBpbgorCXBwYzY0bGUqKSA7OworCXBwYyp8aTY4NiopIF9sbGRiX2VuYWJsZT1u byA7OworZXNhYworCitjYXNlICIkWEJQU19UQVJHRVRfTUFDSElORSIgaW4KKwl4ODZfNjQqfGFh cmNoNjQqfHBwYzY0KikgX2xpYm9tcF9lbmFibGU9eWVzOzsKK2VzYWMKKworc3VicGFja2FnZXM9 ImNsYW5nLXRvb2xzLWV4dHJhIgorCisjIG11c3QgZ28gYmVmb3JlIGNsYW5nCitpZiBbICIkX2xp Ym9tcF9lbmFibGUiID0gInllcyIgXTsgdGhlbgorCV9lbmFibGVkX3Byb2plY3RzKz0iO29wZW5t cCIKKwlzdWJwYWNrYWdlcys9IiBsaWJvbXAgbGlib21wLWRldmVsIgorCSMgYmVjYXVzZSBvZiBj bWFrZSBub25zZW5zZSByZWZlcmVuY2luZyBsaWJvbXB0YXJnZXQuc28uKgorCWRlcGVuZHMrPSIg bGlib21wPj0ke3ZlcnNpb259XyR7cmV2aXNpb259IgorZmkKKworc3VicGFja2FnZXMrPSIgY2xh bmcgY2xhbmctYW5hbHl6ZXIgbGliY2xhbmcgbGliY2xhbmctY3BwCisgbGx2bS1saWJ1bndpbmQg bGx2bS1saWJ1bndpbmQtZGV2ZWwgbGliY3h4IGxpYmN4eC1kZXZlbAorIGxpYmN4eGFiaSBsaWJj eHhhYmktZGV2ZWwgbGlibGx2bTEzIgorCitpZiBbICIkX2xsZGJfZW5hYmxlIiA9ICJ5ZXMiIF07 IHRoZW4KKwkjIFhYWCBmYWlscyB0byBjcm9zcyBjb21waWxlIGR1ZSB0byBweXRob24KKwlfZW5h YmxlZF9wcm9qZWN0cys9IjtsbGRiIgorCXN1YnBhY2thZ2VzKz0iIGxsZGIgbGxkYi1kZXZlbCIK K2ZpCisKK3N1YnBhY2thZ2VzKz0iIGxsZCBsbGQtZGV2ZWwiCisKK2NvbmZpZ3VyZV9hcmdzKz0i IC1ETExWTV9FTkFCTEVfUFJPSkVDVFM9JHtfZW5hYmxlZF9wcm9qZWN0c30iCisKK3Bvc3RfcGF0 Y2goKSB7CisJaWYgWyAiJF9sbGRiX2VuYWJsZSIgPSAieWVzIiBdOyB0aGVuCisJCWlmIFsgIiRY QlBTX1RBUkdFVF9MSUJDIiA9ICJtdXNsIiBdOyB0aGVuCisJCQl2c2VkIC1pICdzfF9fcHRyYWNl X3JlcXVlc3R8aW50fGcnIFwKKwkJCQkke3dya3NyY30vbGxkYi9zb3VyY2UvUGx1Z2lucy9Qcm9j ZXNzL0xpbnV4L05hdGl2ZVByb2Nlc3NMaW51eC5jcHAKKwkJZmkKKwkJIyBkaXNhYmxlIGRvY3Mg Zm9yIGxsZGIgYXMgdGhleSBmYWlsIHRvIGdlbmVyYXRlCisJCXZzZWQgLWkgJy9hZGRfc3ViZGly ZWN0b3J5KGRvY3MpL2QnIFwKKwkJCSR7d3Jrc3JjfS9sbGRiL0NNYWtlTGlzdHMudHh0CisJZmkK KworCSMgdXBkYXRlIGNvbmZpZy5ndWVzcyBmb3IgYmV0dGVyIHBsYXRmb3JtIGRldGVjdGlvbgor CWNwICRYQlBTX0NPTU1PTkRJUi9lbnZpcm9ubWVudC9jb25maWd1cmUvYXV0b21ha2UvY29uZmln Lmd1ZXNzIFwKKwkJJHt3cmtzcmN9L2xsdm0vY21ha2UKKworCSMgZml4IGxpbmtlciBmYWlsdXJl cyBvbiBzb21lIGFyY2hzCisJdnNlZCAtaSAncyxjaGVja19saWJyYXJ5X2V4aXN0cyhnY2NfcyAu KixzZXQoTElCQ1hYQUJJX0hBU19HQ0NfU19MSUIgT04pLCcgXAorCQkke3dya3NyY30vbGliY3h4 YWJpL2NtYWtlL2NvbmZpZy1peC5jbWFrZQorCXZzZWQgLWkgJ3MsY2hlY2tfbGlicmFyeV9leGlz dHMoZ2NjIC4qLHNldChMSUJDWFhBQklfSEFTX0dDQ19MSUIgT04pLCcgXAorCQkke3dya3NyY30v bGliY3h4YWJpL2NtYWtlL2NvbmZpZy1peC5jbWFrZQorCisJIyBuZWVkIGxpYnNzcF9ub25zaGFy ZWQgb24gc29tZSBtdXNsIHBsYXRmb3JtcyAoYmVjYXVzZSBvZiBub2RlZmF1bHRsaWJzKQorCWNh c2UgIiRYQlBTX1RBUkdFVF9NQUNISU5FIiBpbgorCQlwcGM2NCopIDs7CisJCXBwYyotbXVzbHxp Njg2LW11c2x8bWlwcyotbXVzbCkKKwkJCXZzZWQgLWkgJ3MsXiMgU2V0dXAgZmxhZ3MuJCxhZGRf bGlicmFyeV9mbGFncyhzc3Bfbm9uc2hhcmVkKSwnIFwKKwkJCQkke3dya3NyY30vbGlidW53aW5k L3NyYy9DTWFrZUxpc3RzLnR4dAorCQkJdnNlZCAtaSAncyxeIyBTZXR1cCBmbGFncy4kLGFkZF9s aWJyYXJ5X2ZsYWdzKHNzcF9ub25zaGFyZWQpLCcgXAorCQkJCSR7d3Jrc3JjfS9saWJjeHhhYmkv c3JjL0NNYWtlTGlzdHMudHh0CisJCQl2c2VkIC1pICdzLCNzc3AsLCcgJHt3cmtzcmN9L2xpYmN4 eC9DTWFrZUxpc3RzLnR4dAorCQkJOzsKKwllc2FjCisKKwljYXNlICIkWEJQU19UQVJHRVRfTUFD SElORSIgaW4KKwkJeDg2XzY0LW11c2wpICMgc29tZSBzYW5pdGl6ZXIgY3VycmVudGx5IG9ubHkg b24geDg2XzY0IHN0dWZmIG5lZWRzIGJhY2t0cmFjZQorCQkJdnNlZCAtaSAncywjIFNldCBjb21t b24gbGluayBmbGFncy4sbGlzdChBUFBFTkQgU0FOSVRJWkVSX0NPTU1PTl9MSU5LX0xJQlMgZXhl Y2luZm8pLCcgXAorCQkJCSR7d3Jrc3JjfS9jb21waWxlci1ydC9DTWFrZUxpc3RzLnR4dAorCQkJ OzsKKwkJYXJtKi1tdXNsfGk2ODYtbXVzbCkgIyBzYW5pdGl6ZXIgY29kZSBpcyBicm9rZW4gc2lu Y2UgaXQgZHVwbGljYXRlcyBzb21lIGxpYmMgYml0cworCQkJdnNlZCAtaSAncy9zZXQoQ09NUElM RVJfUlRfSEFTX1NBTklUSVpFUl9DT01NT04gVFJVRSkvc2V0KENPTVBJTEVSX1JUX0hBU19TQU5J VElaRVJfQ09NTU9OIEZBTFNFKS8nIFwKKwkJCQkke3dya3NyY30vY29tcGlsZXItcnQvY21ha2Uv Y29uZmlnLWl4LmNtYWtlCisJCQk7OworCWVzYWMKK30KKworcHJlX2NvbmZpZ3VyZSgpIHsKKwls b2NhbCB0cmlwbGV0CisKKwkjIFZhc3RseSByZWR1Y2Ugc2l6ZSBvZiBkZWJ1Z2dpbmcgc3ltYm9s czoKKwlDRkxBR1M9JHtDRkxBR1MvIC1nLyAtZzF9CisJQ1hYRkxBR1M9JHtDWFhGTEFHUy8gLWcv IC1nMX0KKworCSMgc2luY2UgZ2NjOSwgdGhlIGJ1aWxkIGxpa2VzIHRvIGJsb3cgdXAgZm9yIHBw YzMyIGFwcGFyZW50bHkgYmVjYXVzZQorCSMgb2YgY2xhbmcgYmVpbmcgdG9vIGxhcmdlIGZvciBh IDI0LWJpdCByZWxhdGl2ZSBjYWxsIHRvIHRoZSBQTFQsIHNvCisJIyBvcHRpbWl6ZSBmb3Igc2l6 ZSBpbnN0ZWFkCisJY2FzZSAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiIGluCisJCXBwYzY0KikgOzsK KwkJbWlwcyotbXVzbHxwcGMqKSBjb25maWd1cmVfYXJncys9IiAtRFZPSURfQ1hYX09QVF9GTEFH Uz0tT3MiIDs7CisJZXNhYworCisJaWYgWyAiJENST1NTX0JVSUxEIiBdOyB0aGVuCisJCW1zZ19u b3JtYWwgIkJ1aWxkaW5nIGhvc3QgdGJsZ2VuXG4iCisJCW1rZGlyIC1wIGJ1aWxkL0hPU1QKKwkJ Y2QgYnVpbGQvSE9TVAorCQlDQz0iJEJVSUxEX0NDIiBDWFg9IiRCVUlMRF9DWFgiIENGTEFHUz0i JEJVSUxEX0NGTEFHUyIgXAorCQkJQ1hYRkxBR1M9IiRCVUlMRF9DWFhGTEFHUyIgTERGTEFHUz0i JEJVSUxEX0xERkxBR1MiIFwKKwkJCWNtYWtlIC4uLy4uIC1EQ01BS0VfQlVJTERfVFlQRT1SZWxl YXNlIFwKKwkJCS1ETExWTV9FTkFCTEVfUFJPSkVDVFM9JHtfZW5hYmxlZF9wcm9qZWN0c30KKwkJ bWFrZSAke21ha2Vqb2JzfSAtQyB1dGlscy9UYWJsZUdlbgorCQltYWtlICR7bWFrZWpvYnN9IC1D IHRvb2xzL2NsYW5nL3V0aWxzL1RhYmxlR2VuCisJCVsgIiRfbGxkYl9lbmFibGUiID0gInllcyIg XSAmJiBtYWtlICR7bWFrZWpvYnN9IC1DIHRvb2xzL2xsZGIvdXRpbHMvVGFibGVHZW4KKwkJY29u ZmlndXJlX2FyZ3MrPSIgLURMTFZNX1RBQkxFR0VOPSR7d3Jrc3JjfS9sbHZtL2J1aWxkL0hPU1Qv YmluL2xsdm0tdGJsZ2VuIgorCQljb25maWd1cmVfYXJncys9IiAtRENMQU5HX1RBQkxFR0VOPSR7 d3Jrc3JjfS9sbHZtL2J1aWxkL0hPU1QvYmluL2NsYW5nLXRibGdlbiIKKwkJWyAiJF9sbGRiX2Vu YWJsZSIgPSAieWVzIiBdICYmIGNvbmZpZ3VyZV9hcmdzKz0iIC1ETExEQl9UQUJMRUdFTj0ke3dy a3NyY30vbGx2bS9idWlsZC9IT1NUL2Jpbi9sbGRiLXRibGdlbiIKKwkJY2QgLi4vLi4KKwlmaQor CisJY2FzZSAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiIGluCisJCWk2ODYqKSBfYXJjaD0iWDg2Ijs7 CisJCXg4Nl82NCopIF9hcmNoPSJYODYiOzsKKwkJYXJtdjUqKSBfYXJjaD0iQXJtdjV0ZSI7Owor CQlhcm12NiopIF9hcmNoPSJBcm12NiI7OworCQlhcm12NyopIF9hcmNoPSJBcm12NyI7OworCQlh YXJjaDY0KikgX2FyY2g9IkFBcmNoNjQiOzsKKwkJbWlwcyopIF9hcmNoPSJNaXBzIjs7CisJCXBw YyopIF9hcmNoPSJQb3dlclBDIjs7CisJCXJpc2N2NjQqKSBfYXJjaD0iUklTQ1Y2NCI7OworCWVz YWMKKworCXRyaXBsZXQ9JHtYQlBTX0NST1NTX1RSSVBMRVQ6LSRYQlBTX1RSSVBMRVR9CisKKwlj b25maWd1cmVfYXJncys9IiAtRExMVk1fVEFSR0VUX0FSQ0g9JHtfYXJjaH0iCisJY29uZmlndXJl X2FyZ3MrPSIgLURMTFZNX0hPU1RfVFJJUExFPSR7dHJpcGxldH0iCisJY29uZmlndXJlX2FyZ3Mr PSIgLURMTFZNX0RFRkFVTFRfVEFSR0VUX1RSSVBMRT0ke3RyaXBsZXR9IgorfQorCitkb19pbnN0 YWxsKCkgeworCWNkIGJ1aWxkCisJY21ha2UgLURDTUFLRV9JTlNUQUxMX1BSRUZJWD0ke0RFU1RE SVJ9L3VzciAtUCBjbWFrZV9pbnN0YWxsLmNtYWtlCisKKwkjIFJlcXVpcmVkIGZvciBtdWx0aWxp Yi4KKwlpZiBbICIkWEJQU19UQVJHRVRfTUFDSElORSIgPSAieDg2XzY0IiBdOyB0aGVuCisJCWZv ciBfaGVhZGVyIGluIGxsdm0tY29uZmlnOyBkbworCQkJbXYgJHtERVNURElSfS91c3IvaW5jbHVk ZS9sbHZtL0NvbmZpZy8ke19oZWFkZXJ9eywtNjR9LmgKKwkJCXZpbnN0YWxsICR7RklMRVNESVJ9 L2xsdm0tQ29uZmlnLSR7X2hlYWRlcn0uaCA2NDQgXAorCQkJCXVzci9pbmNsdWRlL2xsdm0vQ29u ZmlnICR7X2hlYWRlcn0uaAorCQlkb25lCisJZmkKKworCSMgUmVtb3ZlIGxsdm0tY29uZmlnLWhv c3QgaW4gY3Jvc3MgYnVpbGRzLgorCWlmIFsgIiRDUk9TU19CVUlMRCIgXTsgdGhlbgorCQlybSAt ZiAke0RFU1RESVJ9L3Vzci9iaW4vbGx2bS1jb25maWctaG9zdAorCWZpCisKKwkjIEluc3RhbGwg bGliY3h4YWJpIGhlYWRlcnMKKwl2aW5zdGFsbCAke3dya3NyY30vbGliY3h4YWJpL2luY2x1ZGUv X19jeHhhYmlfY29uZmlnLmggNjQ0IHVzci9pbmNsdWRlCisJdmluc3RhbGwgJHt3cmtzcmN9L2xp YmN4eGFiaS9pbmNsdWRlL2N4eGFiaS5oIDY0NCB1c3IvaW5jbHVkZQorCisJIyBJbnN0YWxsIGxp YnVud2luZCBoZWFkZXJzCisJdmluc3RhbGwgJHt3cmtzcmN9L2xpYnVud2luZC9pbmNsdWRlL19f bGlidW53aW5kX2NvbmZpZy5oIDY0NCB1c3IvaW5jbHVkZQorCXZpbnN0YWxsICR7d3Jrc3JjfS9s aWJ1bndpbmQvaW5jbHVkZS9saWJ1bndpbmQuaCA2NDQgdXNyL2luY2x1ZGUKKwl2aW5zdGFsbCAk e3dya3NyY30vbGlidW53aW5kL2luY2x1ZGUvdW53aW5kLmggNjQ0IHVzci9pbmNsdWRlCisJdmlu c3RhbGwgJHt3cmtzcmN9L2xpYnVud2luZC9pbmNsdWRlL21hY2gtby9jb21wYWN0X3Vud2luZF9l bmNvZGluZy5oIFwKKwkJNjQ0IHVzci9pbmNsdWRlL21hY2gtbworfQorCitjbGFuZy1hbmFseXpl cl9wYWNrYWdlKCkgeworCXB5Y29tcGlsZV9kaXJzPSJ1c3Ivc2hhcmUvc2Nhbi12aWV3IgorCWRl cGVuZHM9ImNsYW5nLSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0gcHl0aG9uMyBwZXJsIgorCXNob3J0 X2Rlc2MrPSIgLSBBIHNvdXJjZSBjb2RlIGFuYWx5c2lzIGZyYW1ld29yayIKKwlob21lcGFnZT0i aHR0cHM6Ly9jbGFuZy1hbmFseXplci5sbHZtLm9yZy8iCisJcGtnX2luc3RhbGwoKSB7CisJCXZt b3ZlIHVzci9zaGFyZS9tYW4vbWFuMS9zY2FuLWJ1aWxkLjEKKwkJdm1vdmUgIi91c3IvYmluL3Nj YW4tKiIKKwkJdm1vdmUgIi91c3Ivc2hhcmUvc2Nhbi0qIgorCQl2bW92ZSAiL3Vzci9saWJleGVj LyphbmFseXplciIKKwl9Cit9CisKK2NsYW5nLXRvb2xzLWV4dHJhX3BhY2thZ2UoKSB7CisJbGli MzJkaXNhYmxlZD15ZXMKKwlkZXBlbmRzPSJjbGFuZy0ke3ZlcnNpb259XyR7cmV2aXNpb259IHB5 dGhvbjMiCisJc2hvcnRfZGVzYys9IiAtIEV4dHJhIENsYW5nIHRvb2xzIgorCWhvbWVwYWdlPSJo dHRwczovL2NsYW5nLmxsdm0ub3JnL2V4dHJhLyIKKwlwa2dfaW5zdGFsbCgpIHsKKwkJdm1vdmUg dXNyL2luY2x1ZGUvY2xhbmctdGlkeQorCQl2bW92ZSB1c3IvYmluL2NsYW5nLWFwcGx5LXJlcGxh Y2VtZW50cworCQl2bW92ZSB1c3IvYmluL2NsYW5nLXF1ZXJ5CisJCXZtb3ZlIHVzci9iaW4vY2xh bmctcmVuYW1lCisJCXZtb3ZlIHVzci9iaW4vY2xhbmctdGlkeQorCQl2bW92ZSB1c3IvYmluL2Rp YWd0b29sCisJCXZtb3ZlIHVzci9iaW4vZmluZC1hbGwtc3ltYm9scworCQl2bW92ZSB1c3IvYmlu L2htYXB0b29sCisJCXZtb3ZlIHVzci9iaW4vbW9kdWxhcml6ZQorCQl2bW92ZSB1c3IvYmluL3Bw LXRyYWNlCisJCXZtb3ZlIHVzci9iaW4vc2FuY292CisJCXZtb3ZlICJ1c3IvbGliL2xpYmNsYW5n QXBwbHlSZXBsYWNlbWVudHMqIgorCQl2bW92ZSAidXNyL2xpYi9saWJjbGFuZ1F1ZXJ5KiIKKwkJ dm1vdmUgInVzci9saWIvbGliY2xhbmdUaWR5KiIKKwkJdm1vdmUgInVzci9zaGFyZS9jbGFuZy8q dGlkeSoiCisJCXZtb3ZlIHVzci9zaGFyZS9kb2MvY2xhbmctdG9vbHMKKwkJdm1vdmUgdXNyL3No YXJlL21hbi9tYW4xL2V4dHJhY2xhbmd0b29scy4xCisJCXZtb3ZlIHVzci9zaGFyZS9tYW4vbWFu MS9kaWFndG9vbC4xCisJfQorfQorCitjbGFuZ19wYWNrYWdlKCkgeworCWxpYjMyZGlzYWJsZWQ9 eWVzCisJZGVwZW5kcz0ibGlic3RkYysrLWRldmVsIGxpYmdjYy1kZXZlbCAgYmludXRpbHMgJHtY QlBTX1RBUkdFVF9MSUJDfS1kZXZlbAorCSBsaWJjbGFuZy0ke3ZlcnNpb259XyR7cmV2aXNpb259 IgorCXNob3J0X2Rlc2MrPSIgLSBDIGxhbmd1YWdlIGZhbWlseSBmcm9udGVuZCIKKwlob21lcGFn ZT0iaHR0cHM6Ly9jbGFuZy5sbHZtLm9yZy8iCisJcGtnX2luc3RhbGwoKSB7CisJCXZtb3ZlIHVz ci9pbmNsdWRlL2NsYW5nCisJCXZtb3ZlIHVzci9pbmNsdWRlL2NsYW5nLWMKKwkJdm1vdmUgInVz ci9iaW4vKmNsYW5nKiIKKwkJdm1vdmUgdXNyL2Jpbi9jLWluZGV4LXRlc3QKKwkJdm1vdmUgdXNy L2xpYi9jbGFuZworCQl2bW92ZSB1c3IvbGliL2NtYWtlL2NsYW5nCisJCXZtb3ZlICJ1c3IvbGli L2xpYmNsYW5nKi5hIgorCQl2bW92ZSAidXNyL2xpYi9saWJjbGFuZyouc28iCisJCXZtb3ZlIHVz ci9zaGFyZS9jbGFuZworCQl2bW92ZSB1c3Ivc2hhcmUvZG9jL2NsYW5nCisJCXZtb3ZlIHVzci9z aGFyZS9tYW4vbWFuMS9jbGFuZy4xCisJfQorfQorCitsaWJjbGFuZ19wYWNrYWdlKCkgeworCXNo b3J0X2Rlc2MrPSIgLSBDIGZyb250ZW5kIHJ1bnRpbWUgbGlicmFyeSIKKwlwa2dfaW5zdGFsbCgp IHsKKwkJdm1vdmUgInVzci9saWIvbGliY2xhbmcuc28uKiIKKwl9Cit9CisKK2xpYmNsYW5nLWNw cF9wYWNrYWdlKCkgeworCXNob3J0X2Rlc2MrPSIgLSBDIGZyb250ZW5kIHJ1bnRpbWUgbGlicmFy eSAoQysrIGludGVyZmFjZSkiCisJcGtnX2luc3RhbGwoKSB7CisJCXZtb3ZlICJ1c3IvbGliL2xp YmNsYW5nLWNwcC5zby4qIgorCX0KK30KKworbGxkX3BhY2thZ2UoKSB7CisJbGliMzJkaXNhYmxl ZD15ZXMKKwlzaG9ydF9kZXNjKz0iIC0gbGlua2VyIgorCWhvbWVwYWdlPSJodHRwczovL2xsZC5s bHZtLm9yZyIKKwlwa2dfaW5zdGFsbCgpIHsKKwkJdm1vdmUgdXNyL2Jpbi9sbGQqCisJCXZtb3Zl IHVzci9iaW4vd2FzbS1sZAorCQl2bW92ZSB1c3IvYmluL2xkLmxsZCoKKwkJdm1vdmUgdXNyL2Jp bi9sZDY0LmxsZCoKKwkJdm1vdmUgdXNyL3NoYXJlL2RvYy9sbGQKKwl9Cit9CisKK2xsZC1kZXZl bF9wYWNrYWdlKCkgeworCWxpYjMyZGlzYWJsZWQ9eWVzCisJc2hvcnRfZGVzYys9IiAtIGxpbmtl ciAtIGRldmVsb3BtZW50IGZpbGVzIgorCWhvbWVwYWdlPSJodHRwczovL2xsZC5sbHZtLm9yZyIK KwlkZXBlbmRzPSJsbGQ+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCisJcGtnX2luc3RhbGwoKSB7 CisJCXZtb3ZlIHVzci9pbmNsdWRlL2xsZAorCQl2bW92ZSB1c3IvbGliL2NtYWtlL2xsZAorCQl2 bW92ZSAidXNyL2xpYi9saWJsbGQqYSIKKwl9Cit9CisKK2xsZGJfcGFja2FnZSgpIHsKKwlsaWIz MmRpc2FibGVkPXllcworCWRlcGVuZHMrPSIgcHl0aG9uMy1zaXgiCisJc2hvcnRfZGVzYys9IiAt IExMREIgZGVidWdnZXIiCisJaG9tZXBhZ2U9Imh0dHBzOi8vbGxkYi5sbHZtLm9yZy8iCisJcGtn X2luc3RhbGwoKSB7CisJCXZtb3ZlIHVzci9iaW4vKmxsZGIqCisJCXZtb3ZlIHVzci9saWIvbGli bGxkYipzby4qCisJCXZtb3ZlIC91c3IvbGliL3B5dGhvbioKKwl9Cit9CisKK2xsZGItZGV2ZWxf cGFja2FnZSgpIHsKKwlsaWIzMmRpc2FibGVkPXllcworCWRlcGVuZHM9ImxsZGI+PSR7dmVyc2lv bn1fJHtyZXZpc2lvbn0iCisJc2hvcnRfZGVzYys9IiAtIExMREIgZGVidWdnZXIgLSBkZXZlbG9w bWVudCBmaWxlcyIKKwlwa2dfaW5zdGFsbCgpIHsKKwkJdm1vdmUgdXNyL2luY2x1ZGUvbGxkYgor CQl2bW92ZSAidXNyL2xpYi9saWJsbGRiKi5zbyIKKwl9Cit9CisKK2xsdm0tbGlidW53aW5kX3Bh Y2thZ2UoKSB7CisJc2hvcnRfZGVzYys9IiAtIGxpYnVud2luZCIKKwlwa2dfaW5zdGFsbCgpIHsK KwkJdm1vdmUgInVzci9saWIvbGlidW53aW5kLnNvLioiCisJfQorfQorCitsbHZtLWxpYnVud2lu ZC1kZXZlbF9wYWNrYWdlKCkgeworCXNob3J0X2Rlc2MrPSIgLSBsaWJ1bndpbmQgLSBkZXZlbG9w bWVudCBmaWxlcyIKKwlkZXBlbmRzPSJsbHZtLWxpYnVud2luZD49JHt2ZXJzaW9ufV8ke3Jldmlz aW9ufSIKKwljb25mbGljdHM9ImxpYnVud2luZC1kZXZlbD49MCIKKwlwa2dfaW5zdGFsbCgpIHsK KwkJdm1vdmUgdXNyL2xpYi9saWJ1bndpbmQuc28KKwkJdm1vdmUgdXNyL2xpYi9saWJ1bndpbmQu YQorCQl2bW92ZSAidXNyL2luY2x1ZGUvKnVud2luZCoiCisJCXZtb3ZlIHVzci9pbmNsdWRlL21h Y2gtbworCQl2bW92ZSB1c3Ivc2hhcmUvZG9jL2xpYnVud2luZAorCX0KK30KKworbGliY3h4YWJp X3BhY2thZ2UoKSB7CisJc2hvcnRfZGVzYys9IiAtIGxvdyBsZXZlbCBzdXBwb3J0IGZvciBsaWJj KysiCisJcGtnX2luc3RhbGwoKSB7CisJCXZtb3ZlICJ1c3IvbGliL2xpYmMrK2FiaS5zby4qIgor CX0KK30KKworbGliY3h4YWJpLWRldmVsX3BhY2thZ2UoKSB7CisJc2hvcnRfZGVzYys9IiAtIGxv dyBsZXZlbCBzdXBwb3J0IGZvciBsaWJjKysgLSBkZXZlbG9wbWVudCBmaWxlcyIKKwlkZXBlbmRz PSJsaWJjeHhhYmk+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCisJcGtnX2luc3RhbGwoKSB7CisJ CXZtb3ZlIHVzci9saWIvbGliYysrYWJpLnNvCisJCXZtb3ZlIHVzci9saWIvbGliYysrYWJpLmEK KwkJdm1vdmUgInVzci9pbmNsdWRlLypjeHhhYmkqIgorCX0KK30KKworbGliY3h4X3BhY2thZ2Uo KSB7CisJc2hvcnRfZGVzYys9IiAtIEMrKyBzdGFuZGFyZCBsaWJyYXJ5IgorCXBrZ19pbnN0YWxs KCkgeworCQl2bW92ZSAidXNyL2xpYi9saWJjKysuc28uKiIKKwl9Cit9CisKK2xpYmN4eC1kZXZl bF9wYWNrYWdlKCkgeworCXNob3J0X2Rlc2MrPSIgLSBDKysgc3RhbmRhcmQgbGlicmFyeSAtIGRl dmVsb3BtZW50IGZpbGVzIgorCWRlcGVuZHM9ImxpYmN4eD49JHt2ZXJzaW9ufV8ke3JldmlzaW9u fSIKKwlwa2dfaW5zdGFsbCgpIHsKKwkJdm1vdmUgdXNyL2xpYi9saWJjKysuc28KKwkJdm1vdmUg dXNyL2xpYi9saWJjKysuYQorCQl2bW92ZSB1c3IvbGliL2xpYmMrK2V4cGVyaW1lbnRhbC5hCisJ CXZtb3ZlIHVzci9pbmNsdWRlL2MrKworCQl2bW92ZSB1c3Ivc2hhcmUvZG9jL2xpYmN4eAorCX0K K30KKworbGlib21wX3BhY2thZ2UoKSB7CisJc2hvcnRfZGVzYys9IiAtIENsYW5nIE9wZW5NUCBz dXBwb3J0IGxpYnJhcnkiCisJcGtnX2luc3RhbGwoKSB7CisJCXZtb3ZlIHVzci9saWIvbGlib21w LnNvCisJCXZtb3ZlICJ1c3IvbGliL2xpYm9tcHRhcmdldC5ydGwuKi5zbyIKKwkJdm1vdmUgdXNy L2xpYi9saWJhcmNoZXIuc28KKwl9Cit9CisKK2xpYm9tcC1kZXZlbF9wYWNrYWdlKCkgeworCXNo b3J0X2Rlc2MrPSIgLSBDbGFuZyBPcGVuTVAgc3VwcG9ydCBsaWJyYXJ5IC0gZGV2ZWxvcG1lbnQg ZmlsZXMiCisJZGVwZW5kcz0ibGlib21wPj0ke3ZlcnNpb259XyR7cmV2aXNpb259IgorCXBrZ19p bnN0YWxsKCkgeworCQl2bW92ZSAidXNyL2xpYi9saWJvbXAqLnNvIgorCQl2bW92ZSAidXNyL2xp Yi9saWJhcmNoZXIqIgorCQl2bW92ZSAidXNyL2luY2x1ZGUvb21wKi5oIgorCQl2bW92ZSAidXNy L2xpYi9jbGFuZy8ke3ZlcnNpb259L2luY2x1ZGUvb21wKi5oIgorCQl2bW92ZSB1c3Ivc2hhcmUv bWFuL21hbjEvbGx2bW9wZW5tcC4xCisJCXZtb3ZlIHVzci9zaGFyZS9kb2Mvb3Blbm1wCisJfQor fQorCitsaWJsbHZtMTNfcGFja2FnZSgpIHsKKwlzaG9ydF9kZXNjKz0iIC0gcnVudGltZSBsaWJy YXJ5IgorCXBrZ19pbnN0YWxsKCkgeworCQl2bW92ZSAidXNyL2xpYi9saWJMTFZNLSouc28qIgor CX0KK30KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bTEzL3VwZGF0ZSBiL3NyY3BrZ3MvbGx2bTEz L3VwZGF0ZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmU5NWNmMjZi MzU4NgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbGx2bTEzL3VwZGF0ZQpAQCAtMCwwICsx LDMgQEAKK3NpdGU9Imh0dHBzOi8vZ2l0aHViLmNvbS9sbHZtL2xsdm0tcHJvamVjdC9yZWxlYXNl cyIKK3BhdHRlcm49Imxsdm1vcmctXEsoXGQrLil7Mn1cZCsoLXJjXGQrKT8iCitpZ25vcmU9Iiot cmMqIgoKRnJvbSBhNjQ2NTg1NWY1YmEyZDM5MTNhNDg5MTAyYWE1MDVlZmE5NjIwZjEyIE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/TG91aXM9MjBEdXByPUMzPUE5PTIw QmVydG9uaT89CiA8bG91aXNkYkBsZXNwZXRpdHNwZWRlc3RyZXMub3JnPgpEYXRlOiBGcmksIDMx IERlYyAyMDIxIDE2OjIzOjE3ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwMi8zMV0gbGx2bTogdXBk YXRlIHRvIDEzLjAuMAoKLS0tCiBzcmNwa2dzL2xsdm0vdGVtcGxhdGUgfCA2ICsrKy0tLQogMSBm aWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9zcmNwa2dzL2xsdm0vdGVtcGxhdGUgYi9zcmNwa2dzL2xsdm0vdGVtcGxhdGUKaW5kZXggYTky ZGI2Zjk0ZjlmLi5iY2ZlZTgyMDk4ZmYgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvbGx2bS90ZW1wbGF0 ZQorKysgYi9zcmNwa2dzL2xsdm0vdGVtcGxhdGUKQEAgLTEsMTAgKzEsMTAgQEAKICMgVGVtcGxh dGUgZmlsZSBmb3IgJ2xsdm0nCiBwa2duYW1lPWxsdm0KLXZlcnNpb249MTIuMC4wCit2ZXJzaW9u PTEzLjAuMAogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9bWV0YQotZGVwZW5kcz0ibGx2bTEyIgot cmVwbGFjZXM9Imxsdm0xMT49MCBsbHZtMTA+PTAgbGx2bTk+PTAgbGx2bTg+PTAgbGx2bTc+PTAg bGx2bTYuMD49MCBsbHZtMy45Pj0wIgorZGVwZW5kcz0ibGx2bTEzIgorcmVwbGFjZXM9Imxsdm0x Mj49MCBsbHZtMTE+PTAgbGx2bTEwPj0wIGxsdm05Pj0wIGxsdm04Pj0wIGxsdm03Pj0wIGxsdm02 LjA+PTAgbGx2bTMuOT49MCIKIHNob3J0X2Rlc2M9IkxMVk0gbWV0YSBwYWNrYWdlIgogbWFpbnRh aW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IlB1Ymxp YyBEb21haW4iCgpGcm9tIDk1MDkwOTlmMWNhMjcyNWFmNDQ4YzhkYzM4Yzk2YmNkNjUxNTQzNTEg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206ID0/VVRGLTg/cT9Mb3Vpcz0yMER1cHI9QzM9 QTk9MjBCZXJ0b25pPz0KIDxsb3Vpc2RiQGxlc3BldGl0c3BlZGVzdHJlcy5vcmc+CkRhdGU6IEZy aSwgMzEgRGVjIDIwMjEgMTY6NDM6NTYgKzAyMDAKU3ViamVjdDogW1BBVENIIDAzLzMxXSBsbHZt MTI6IHJlbW92ZSBjbGFuZyBwYXJ0cwoKLS0tCiAuLi5jbGFuZy0wMDEtZml4LXVud2luZC1jaGFp bi1pbmNsdXNpb24ucGF0Y2ggfCAgNDQgLS0tCiAuLi4vcGF0Y2hlcy9jbGFuZy0wMDItYWRkLW11 c2wtdHJpcGxlcy5wYXRjaCAgfCAxMTAgLS0tLS0tLQogLi4uL2NsYW5nLTAwMy1wcGM2NC1keW5h bWljLWxpbmtlci1wYXRoLnBhdGNoIHwgIDEzIC0KIC4uLi9wYXRjaGVzL2NsYW5nLTAwNC1wcGM2 NC1tdXNsLWVsZnYyLnBhdGNoICB8ICA0OCAtLS0KIC4uLi9jb21waWxlci1ydC1hYXJjaDY0LXVj b250ZXh0LnBhdGNoICAgICAgICB8ICAxMSAtCiAuLi4vY29tcGlsZXItcnQtc2FuaXRpemVyLXBw YzY0LW11c2wucGF0Y2ggICAgfCAgMzUgLS0KIC4uLi9sbHZtMTIvcGF0Y2hlcy9jb21waWxlci1y dC1zaXplX3QucGF0Y2ggICB8ICAxMCAtCiAuLi4vcGF0Y2hlcy9jb21waWxlci1ydC14cmF5LXBw YzY0LW11c2wucGF0Y2ggfCAgNjIgLS0tLQogc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9saWJjeHgt bXVzbC5wYXRjaCAgICAgIHwgIDI2IC0tCiBzcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2xpYmN4eC1w cGMucGF0Y2ggICAgICAgfCAgMjIgLS0KIC4uLi9sbHZtMTIvcGF0Y2hlcy9saWJjeHgtc3NwLW5v bnNoYXJlZC5wYXRjaCB8ICAxMSAtCiBzcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2xpYmN4eGFiaS1k bC5wYXRjaCAgICAgfCAgMjUgLS0KIHNyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvbGlidW53aW5kLXBw YzMyLnBhdGNoICB8ICA2MyAtLS0tCiBzcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2xsZGItbXVzbC5w YXRjaCAgICAgICAgfCAgMzEgLS0KIC4uLi9sbHZtMTIvcGF0Y2hlcy9wcGMzMi1jb21waWxlci1y dC5wYXRjaCAgICB8ICAyMSAtLQogc3JjcGtncy9sbHZtMTIvdGVtcGxhdGUgICAgICAgICAgICAg ICAgICAgICAgIHwgMzAxICstLS0tLS0tLS0tLS0tLS0tLQogMTYgZmlsZXMgY2hhbmdlZCwgMSBp bnNlcnRpb24oKyksIDgzMiBkZWxldGlvbnMoLSkKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dz L2xsdm0xMi9wYXRjaGVzL2NsYW5nLTAwMS1maXgtdW53aW5kLWNoYWluLWluY2x1c2lvbi5wYXRj aAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvY2xhbmctMDAyLWFk ZC1tdXNsLXRyaXBsZXMucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xsdm0xMi9w YXRjaGVzL2NsYW5nLTAwMy1wcGM2NC1keW5hbWljLWxpbmtlci1wYXRoLnBhdGNoCiBkZWxldGUg bW9kZSAxMDA2NDQgc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9jbGFuZy0wMDQtcHBjNjQtbXVzbC1l bGZ2Mi5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvY29t cGlsZXItcnQtYWFyY2g2NC11Y29udGV4dC5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3Br Z3MvbGx2bTEyL3BhdGNoZXMvY29tcGlsZXItcnQtc2FuaXRpemVyLXBwYzY0LW11c2wucGF0Y2gK IGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2NvbXBpbGVyLXJ0LXNp emVfdC5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvY29t cGlsZXItcnQteHJheS1wcGM2NC1tdXNsLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtn cy9sbHZtMTIvcGF0Y2hlcy9saWJjeHgtbXVzbC5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNy Y3BrZ3MvbGx2bTEyL3BhdGNoZXMvbGliY3h4LXBwYy5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0 IHNyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvbGliY3h4LXNzcC1ub25zaGFyZWQucGF0Y2gKIGRlbGV0 ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2xpYmN4eGFiaS1kbC5wYXRjaAog ZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvbGlidW53aW5kLXBwYzMy LnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9sbGRiLW11 c2wucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xsdm0xMi9wYXRjaGVzL3BwYzMy LWNvbXBpbGVyLXJ0LnBhdGNoCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9j bGFuZy0wMDEtZml4LXVud2luZC1jaGFpbi1pbmNsdXNpb24ucGF0Y2ggYi9zcmNwa2dzL2xsdm0x Mi9wYXRjaGVzL2NsYW5nLTAwMS1maXgtdW53aW5kLWNoYWluLWluY2x1c2lvbi5wYXRjaApkZWxl dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTRlYWE3NzgzZTdhLi4wMDAwMDAwMDAwMDAKLS0t IGEvc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9jbGFuZy0wMDEtZml4LXVud2luZC1jaGFpbi1pbmNs dXNpb24ucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw0NCArMCwwIEBACi1Gcm9tIDM1Mjk3NDE2 OWYwZDJiNWRhM2Q1MzIxZjU4OGY1ZTNiNTk0MTMzMGUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx Ci1Gcm9tOiBBbmRyZWEgQnJhbmNhbGVvbmkgPG1pd2F4ZUBnbWFpbC5jb20+Ci1EYXRlOiBUdWUs IDggU2VwIDIwMTUgMjI6MTQ6NTcgKzAyMDAKLVN1YmplY3Q6IFtQQVRDSCAyLzddIGZpeCB1bndp bmQgY2hhaW4gaW5jbHVzaW9uCi0KLS0tLQotIGxpYi9IZWFkZXJzL3Vud2luZC5oIHwgOSArKysr Ky0tLS0KLSAxIGZpbGUgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQot Ci1kaWZmIC0tZ2l0IGEvbGliL0hlYWRlcnMvdW53aW5kLmggYi9saWIvSGVhZGVycy91bndpbmQu aAotaW5kZXggMzAzZDc5Mi4uNDRlMTBjYyAxMDA2NDQKLS0tLSBhL2NsYW5nL2xpYi9IZWFkZXJz L3Vud2luZC5oCi0rKysgYi9jbGFuZy9saWIvSGVhZGVycy91bndpbmQuaAotQEAgLTksOSArOSw2 IEBACi0gCi0gLyogU2VlICJEYXRhIERlZmluaXRpb25zIGZvciBsaWJnY2NfcyIgaW4gdGhlIExp bnV4IFN0YW5kYXJkIEJhc2UuKi8KLSAKLS0jaWZuZGVmIF9fQ0xBTkdfVU5XSU5EX0gKLS0jZGVm aW5lIF9fQ0xBTkdfVU5XSU5EX0gKLS0KLSAjaWYgZGVmaW5lZChfX0FQUExFX18pICYmIF9faGFz X2luY2x1ZGVfbmV4dCg8dW53aW5kLmg+KQotIC8qIERhcndpbiAoZnJvbSAxMS54IG9uKSBwcm92 aWRlIGFuIHVud2luZC5oLiBJZiB0aGF0J3MgYXZhaWxhYmxlLAotICAqIHVzZSBpdC4gbGlidW53 aW5kIHdyYXBzIHNvbWUgb2YgaXRzIGRlZmluaXRpb25zIGluICNpZmRlZiBfR05VX1NPVVJDRSwK LUBAIC0zOSw2ICszNiw5IEBACi0gIyBlbmRpZgotICNlbHNlCi0gCi0rI2lmbmRlZiBfX0NMQU5H X1VOV0lORF9ICi0rI2RlZmluZSBfX0NMQU5HX1VOV0lORF9ICi0rCi0gI2luY2x1ZGUgPHN0ZGlu dC5oPgotIAotICNpZmRlZiBfX2NwbHVzcGx1cwotQEAgLTMyMiw2ICszMjIsNyBAQCBfVW53aW5k X1B0ciBfVW53aW5kX0dldFRleHRSZWxCYXNlKHN0cnVjdCBfVW53aW5kX0NvbnRleHQgKik7Ci0g fQotICNlbmRpZgotIAotKyNlbmRpZiAvKiBfX0NMQU5HX1VOV0lORF9IICovCi0rCi0gI2VuZGlm Ci0gCi0tI2VuZGlmIC8qIF9fQ0xBTkdfVU5XSU5EX0ggKi8KLS0tIAotMi41LjEKZGlmZiAtLWdp dCBhL3NyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvY2xhbmctMDAyLWFkZC1tdXNsLXRyaXBsZXMucGF0 Y2ggYi9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2NsYW5nLTAwMi1hZGQtbXVzbC10cmlwbGVzLnBh dGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyNTY4OGQ0MGRiYzIuLjAwMDAwMDAw MDAwMAotLS0gYS9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2NsYW5nLTAwMi1hZGQtbXVzbC10cmlw bGVzLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTEwICswLDAgQEAKLS0tLSBhL2NsYW5nL2xp Yi9Ecml2ZXIvVG9vbENoYWlucy9HbnUuY3BwCi0rKysgYi9jbGFuZy9saWIvRHJpdmVyL1Rvb2xD aGFpbnMvR251LmNwcAotQEAgLTIwODYsNyArMjA4Niw4IEBAIHZvaWQgR2VuZXJpY19HQ0M6OkdD Q0luc3RhbGxhdGlvbkRldGVjdG9yOjpBZGREZWZhdWx0R0NDUHJlZml4ZXMoCi0gICBzdGF0aWMg Y29uc3QgY2hhciAqY29uc3QgQVJNSEZUcmlwbGVzW10gPSB7ImFybS1saW51eC1nbnVlYWJpaGYi LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhcm12N2hs LXJlZGhhdC1saW51eC1nbnVlYWJpIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAiYXJtdjZobC1zdXNlLWxpbnV4LWdudWVhYmkiLAotLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhcm12N2hsLXN1c2UtbGludXgtZ251 ZWFiaSJ9OwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJh cm12N2hsLXN1c2UtbGludXgtZ251ZWFiaSIsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgImFybXY3bC1saW51eC1nbnVlYWJpaGYifTsKLSAgIHN0YXRpYyBj b25zdCBjaGFyICpjb25zdCBBUk1lYkxpYkRpcnNbXSA9IHsiL2xpYiJ9OwotICAgc3RhdGljIGNv bnN0IGNoYXIgKmNvbnN0IEFSTWViVHJpcGxlc1tdID0geyJhcm1lYi1saW51eC1nbnVlYWJpIiwK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYXJtZWItbGlu dXgtYW5kcm9pZGVhYmkifTsKLUBAIC0yMTUzLDggKzIxNTQsNyBAQCB2b2lkIEdlbmVyaWNfR0ND OjpHQ0NJbnN0YWxsYXRpb25EZXRlY3Rvcjo6QWRkRGVmYXVsdEdDQ1ByZWZpeGVzKAotICAgICAg ICJwb3dlcnBjNjQtc3VzZS1saW51eCIsICJwb3dlcnBjLW1vbnRhdmlzdGEtbGludXhzcGUifTsK LSAgIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBQUENMRUxpYkRpcnNbXSA9IHsiL2xpYjMyIiwg Ii9saWIifTsKLSAgIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBQUENMRVRyaXBsZXNbXSA9IHsi cG93ZXJwY2xlLWxpbnV4LWdudSIsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgInBvd2VycGNsZS11bmtub3duLWxpbnV4LWdudSIsCi0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInBvd2VycGNsZS1saW51eC1tdXNsIn07 Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInBvd2VycGNs ZS11bmtub3duLWxpbnV4LWdudSJ9OwotIAotICAgc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IFBQ QzY0TGliRGlyc1tdID0geyIvbGliNjQiLCAiL2xpYiJ9OwotICAgc3RhdGljIGNvbnN0IGNoYXIg KmNvbnN0IFBQQzY0VHJpcGxlc1tdID0gewotQEAgLTIyMzUsNiArMjIzNSw4NyBAQCB2b2lkIEdl bmVyaWNfR0NDOjpHQ0NJbnN0YWxsYXRpb25EZXRlY3Rvcjo6QWRkRGVmYXVsdEdDQ1ByZWZpeGVz KAotICAgICByZXR1cm47Ci0gICB9Ci0gCi0rICBpZiAoVGFyZ2V0VHJpcGxlLmlzTXVzbCgpKSB7 Ci0rICAgIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBBQXJjaDY0TXVzbFRyaXBsZXNbXSA9IHsi YWFyY2g2NC1saW51eC1tdXNsIn07Ci0rICAgIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBBUk1I Rk11c2xUcmlwbGVzW10gPSB7Ci0rICAgICAgICAiYXJtLWxpbnV4LW11c2xlYWJpaGYiLCAiYXJt djdsLWxpbnV4LW11c2xlYWJpaGYiCi0rICAgIH07Ci0rICAgIHN0YXRpYyBjb25zdCBjaGFyICpj b25zdCBBUk1NdXNsVHJpcGxlc1tdID0geyJhcm0tbGludXgtbXVzbGVhYmkifTsKLSsgICAgc3Rh dGljIGNvbnN0IGNoYXIgKmNvbnN0IFg4Nl82NE11c2xUcmlwbGVzW10gPSB7Ing4Nl82NC1saW51 eC1tdXNsIn07Ci0rICAgIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBYODZNdXNsVHJpcGxlc1td ID0geyJpNjg2LWxpbnV4LW11c2wifTsKLSsgICAgc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IE1J UFNNdXNsVHJpcGxlc1tdID0gewotKyAgICAgICAgIm1pcHMtbGludXgtbXVzbCIsICJtaXBzZWwt bGludXgtbXVzbCIsCi0rICAgICAgICAibWlwc2VsLWxpbnV4LW11c2xoZiIsICJtaXBzLWxpbnV4 LW11c2xoZiIKLSsgICAgfTsKLSsgICAgc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IFBQQ011c2xU cmlwbGVzW10gPSB7InBvd2VycGMtbGludXgtbXVzbCJ9OwotKyAgICBzdGF0aWMgY29uc3QgY2hh ciAqY29uc3QgUFBDTEVNdXNsVHJpcGxlc1tdID0geyJwb3dlcnBjbGUtbGludXgtbXVzbCJ9Owot KyAgICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgUFBDNjRNdXNsVHJpcGxlc1tdID0geyJwb3dl cnBjNjQtbGludXgtbXVzbCJ9OwotKyAgICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgUFBDNjRM RU11c2xUcmlwbGVzW10gPSB7InBvd2VycGM2NGxlLWxpbnV4LW11c2wifTsKLSsKLSsgICAgc3dp dGNoIChUYXJnZXRUcmlwbGUuZ2V0QXJjaCgpKSB7Ci0rICAgIGNhc2UgbGx2bTo6VHJpcGxlOjph YXJjaDY0OgotKyAgICAgIExpYkRpcnMuYXBwZW5kKGJlZ2luKEFBcmNoNjRMaWJEaXJzKSwgZW5k KEFBcmNoNjRMaWJEaXJzKSk7Ci0rICAgICAgVHJpcGxlQWxpYXNlcy5hcHBlbmQoYmVnaW4oQUFy Y2g2NE11c2xUcmlwbGVzKSwgZW5kKEFBcmNoNjRNdXNsVHJpcGxlcykpOwotKyAgICAgIEJpYXJj aExpYkRpcnMuYXBwZW5kKGJlZ2luKEFBcmNoNjRMaWJEaXJzKSwgZW5kKEFBcmNoNjRMaWJEaXJz KSk7Ci0rICAgICAgQmlhcmNoVHJpcGxlQWxpYXNlcy5hcHBlbmQoYmVnaW4oQUFyY2g2NE11c2xU cmlwbGVzKSwgZW5kKEFBcmNoNjRNdXNsVHJpcGxlcykpOwotKyAgICAgIGJyZWFrOwotKyAgICBj YXNlIGxsdm06OlRyaXBsZTo6YXJtOgotKyAgICAgIExpYkRpcnMuYXBwZW5kKGJlZ2luKEFSTUxp YkRpcnMpLCBlbmQoQVJNTGliRGlycykpOwotKyAgICAgIGlmIChUYXJnZXRUcmlwbGUuZ2V0RW52 aXJvbm1lbnQoKSA9PSBsbHZtOjpUcmlwbGU6Ok11c2xFQUJJSEYpIHsKLSsgICAgICAgIFRyaXBs ZUFsaWFzZXMuYXBwZW5kKGJlZ2luKEFSTUhGTXVzbFRyaXBsZXMpLCBlbmQoQVJNSEZNdXNsVHJp cGxlcykpOwotKyAgICAgIH0gZWxzZSB7Ci0rICAgICAgICBUcmlwbGVBbGlhc2VzLmFwcGVuZChi ZWdpbihBUk1NdXNsVHJpcGxlcyksIGVuZChBUk1NdXNsVHJpcGxlcykpOwotKyAgICAgIH0KLSsg ICAgICBicmVhazsKLSsgICAgY2FzZSBsbHZtOjpUcmlwbGU6Ong4Nl82NDoKLSsgICAgICBMaWJE aXJzLmFwcGVuZChiZWdpbihYODZfNjRMaWJEaXJzKSwgZW5kKFg4Nl82NExpYkRpcnMpKTsKLSsg ICAgICBUcmlwbGVBbGlhc2VzLmFwcGVuZChiZWdpbihYODZfNjRNdXNsVHJpcGxlcyksIGVuZChY ODZfNjRNdXNsVHJpcGxlcykpOwotKyAgICAgIEJpYXJjaExpYkRpcnMuYXBwZW5kKGJlZ2luKFg4 NkxpYkRpcnMpLCBlbmQoWDg2TGliRGlycykpOwotKyAgICAgIEJpYXJjaFRyaXBsZUFsaWFzZXMu YXBwZW5kKGJlZ2luKFg4Nk11c2xUcmlwbGVzKSwgZW5kKFg4Nk11c2xUcmlwbGVzKSk7Ci0rICAg ICAgYnJlYWs7Ci0rICAgIGNhc2UgbGx2bTo6VHJpcGxlOjp4ODY6Ci0rICAgICAgTGliRGlycy5h cHBlbmQoYmVnaW4oWDg2TGliRGlycyksIGVuZChYODZMaWJEaXJzKSk7Ci0rICAgICAgVHJpcGxl QWxpYXNlcy5hcHBlbmQoYmVnaW4oWDg2TXVzbFRyaXBsZXMpLCBlbmQoWDg2TXVzbFRyaXBsZXMp KTsKLSsgICAgICBCaWFyY2hMaWJEaXJzLmFwcGVuZChiZWdpbihYODZfNjRMaWJEaXJzKSwgZW5k KFg4Nl82NExpYkRpcnMpKTsKLSsgICAgICBCaWFyY2hUcmlwbGVBbGlhc2VzLmFwcGVuZChiZWdp bihYODZfNjRNdXNsVHJpcGxlcyksIGVuZChYODZfNjRNdXNsVHJpcGxlcykpOwotKyAgICAgIGJy ZWFrOwotKyAgICBjYXNlIGxsdm06OlRyaXBsZTo6bWlwczoKLSsgICAgICBMaWJEaXJzLmFwcGVu ZChiZWdpbihNSVBTTGliRGlycyksIGVuZChNSVBTTGliRGlycykpOwotKyAgICAgIFRyaXBsZUFs aWFzZXMuYXBwZW5kKGJlZ2luKE1JUFNNdXNsVHJpcGxlcyksIGVuZChNSVBTTXVzbFRyaXBsZXMp KTsKLSsgICAgICBicmVhazsKLSsgICAgY2FzZSBsbHZtOjpUcmlwbGU6OnBwYzoKLSsgICAgICBM aWJEaXJzLmFwcGVuZChiZWdpbihQUENMaWJEaXJzKSwgZW5kKFBQQ0xpYkRpcnMpKTsKLSsgICAg ICBUcmlwbGVBbGlhc2VzLmFwcGVuZChiZWdpbihQUENNdXNsVHJpcGxlcyksIGVuZChQUENNdXNs VHJpcGxlcykpOwotKyAgICAgIEJpYXJjaExpYkRpcnMuYXBwZW5kKGJlZ2luKFBQQzY0TGliRGly cyksIGVuZChQUEM2NExpYkRpcnMpKTsKLSsgICAgICBCaWFyY2hUcmlwbGVBbGlhc2VzLmFwcGVu ZChiZWdpbihQUEM2NE11c2xUcmlwbGVzKSwgZW5kKFBQQzY0TXVzbFRyaXBsZXMpKTsKLSsgICAg ICBicmVhazsKLSsgICAgY2FzZSBsbHZtOjpUcmlwbGU6OnBwY2xlOgotKyAgICAgIExpYkRpcnMu YXBwZW5kKGJlZ2luKFBQQ0xFTGliRGlycyksIGVuZChQUENMRUxpYkRpcnMpKTsKLSsgICAgICBU cmlwbGVBbGlhc2VzLmFwcGVuZChiZWdpbihQUENMRU11c2xUcmlwbGVzKSwgZW5kKFBQQ0xFTXVz bFRyaXBsZXMpKTsKLSsgICAgICBCaWFyY2hMaWJEaXJzLmFwcGVuZChiZWdpbihQUEM2NExFTGli RGlycyksIGVuZChQUEM2NExFTGliRGlycykpOwotKyAgICAgIEJpYXJjaFRyaXBsZUFsaWFzZXMu YXBwZW5kKGJlZ2luKFBQQzY0TEVNdXNsVHJpcGxlcyksIGVuZChQUEM2NExFTXVzbFRyaXBsZXMp KTsKLSsgICAgICBicmVhazsKLSsgICAgY2FzZSBsbHZtOjpUcmlwbGU6OnBwYzY0OgotKyAgICAg IExpYkRpcnMuYXBwZW5kKGJlZ2luKFBQQzY0TGliRGlycyksIGVuZChQUEM2NExpYkRpcnMpKTsK LSsgICAgICBUcmlwbGVBbGlhc2VzLmFwcGVuZChiZWdpbihQUEM2NE11c2xUcmlwbGVzKSwgZW5k KFBQQzY0TXVzbFRyaXBsZXMpKTsKLSsgICAgICBCaWFyY2hMaWJEaXJzLmFwcGVuZChiZWdpbihQ UENMaWJEaXJzKSwgZW5kKFBQQ0xpYkRpcnMpKTsKLSsgICAgICBCaWFyY2hUcmlwbGVBbGlhc2Vz LmFwcGVuZChiZWdpbihQUENNdXNsVHJpcGxlcyksIGVuZChQUENNdXNsVHJpcGxlcykpOwotKyAg ICAgIGJyZWFrOwotKyAgICBjYXNlIGxsdm06OlRyaXBsZTo6cHBjNjRsZToKLSsgICAgICBMaWJE aXJzLmFwcGVuZChiZWdpbihQUEM2NExFTGliRGlycyksIGVuZChQUEM2NExFTGliRGlycykpOwot KyAgICAgIFRyaXBsZUFsaWFzZXMuYXBwZW5kKGJlZ2luKFBQQzY0TEVNdXNsVHJpcGxlcyksIGVu ZChQUEM2NExFTXVzbFRyaXBsZXMpKTsKLSsgICAgICBCaWFyY2hMaWJEaXJzLmFwcGVuZChiZWdp bihQUENMRUxpYkRpcnMpLCBlbmQoUFBDTEVMaWJEaXJzKSk7Ci0rICAgICAgQmlhcmNoVHJpcGxl QWxpYXNlcy5hcHBlbmQoYmVnaW4oUFBDTEVNdXNsVHJpcGxlcyksIGVuZChQUENMRU11c2xUcmlw bGVzKSk7Ci0rICAgICAgYnJlYWs7Ci0rICAgIGRlZmF1bHQ6Ci0rICAgICAgYnJlYWs7Ci0rICAg IH0KLSsgICAgVHJpcGxlQWxpYXNlcy5wdXNoX2JhY2soVGFyZ2V0VHJpcGxlLnN0cigpKTsKLSsg ICAgaWYgKFRhcmdldFRyaXBsZS5zdHIoKSAhPSBCaWFyY2hUcmlwbGUuc3RyKCkpCi0rICAgICAg QmlhcmNoVHJpcGxlQWxpYXNlcy5wdXNoX2JhY2soQmlhcmNoVHJpcGxlLnN0cigpKTsKLSsgICAg cmV0dXJuOwotKyAgfQotKwotICAgLy8gQW5kcm9pZCB0YXJnZXRzIHNob3VsZCBub3QgdXNlIEdO VS9MaW51eCB0b29scyBvciBsaWJyYXJpZXMuCi0gICBpZiAoVGFyZ2V0VHJpcGxlLmlzQW5kcm9p ZCgpKSB7Ci0gICAgIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBBQXJjaDY0QW5kcm9pZFRyaXBs ZXNbXSA9IHsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvY2xhbmctMDAzLXBw YzY0LWR5bmFtaWMtbGlua2VyLXBhdGgucGF0Y2ggYi9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2Ns YW5nLTAwMy1wcGM2NC1keW5hbWljLWxpbmtlci1wYXRoLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCA0YWQ2NDEyZDFlNmMuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2xs dm0xMi9wYXRjaGVzL2NsYW5nLTAwMy1wcGM2NC1keW5hbWljLWxpbmtlci1wYXRoLnBhdGNoCisr KyAvZGV2L251bGwKQEAgLTEsMTMgKzAsMCBAQAotLS0tIGEvY2xhbmcvbGliL0RyaXZlci9Ub29s Q2hhaW5zL0xpbnV4LmNwcAotKysrIGIvY2xhbmcvbGliL0RyaXZlci9Ub29sQ2hhaW5zL0xpbnV4 LmNwcAotQEAgLTUwNCwxMCArNTA0LDYgQEAgc3RkOjpzdHJpbmcgTGludXg6OmdldER5bmFtaWNM aW5rZXIoY29uc3QgQXJnTGlzdCAmQXJncykgY29uc3QgewotICAgICBMb2FkZXIgPSAibGQuc28u MSI7Ci0gICAgIGJyZWFrOwotICAgY2FzZSBsbHZtOjpUcmlwbGU6OnBwYzY0OgotLSAgICBMaWJE aXIgPSAibGliNjQiOwotLSAgICBMb2FkZXIgPQotLSAgICAgICAgKHRvb2xzOjpwcGM6Omhhc1BQ Q0FiaUFyZyhBcmdzLCAiZWxmdjIiKSkgPyAibGQ2NC5zby4yIiA6ICJsZDY0LnNvLjEiOwotLSAg ICBicmVhazsKLSAgIGNhc2UgbGx2bTo6VHJpcGxlOjpwcGM2NGxlOgotICAgICBMaWJEaXIgPSAi bGliNjQiOwotICAgICBMb2FkZXIgPQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtMTIvcGF0Y2hl cy9jbGFuZy0wMDQtcHBjNjQtbXVzbC1lbGZ2Mi5wYXRjaCBiL3NyY3BrZ3MvbGx2bTEyL3BhdGNo ZXMvY2xhbmctMDA0LXBwYzY0LW11c2wtZWxmdjIucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDIxZmM4MDAzYzVmMS4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvbGx2bTEy L3BhdGNoZXMvY2xhbmctMDA0LXBwYzY0LW11c2wtZWxmdjIucGF0Y2gKKysrIC9kZXYvbnVsbApA QCAtMSw0OCArMCwwIEBACi0tLS0gYS9jbGFuZy9saWIvQmFzaWMvVGFyZ2V0cy9QUEMuaAotKysr IGIvY2xhbmcvbGliL0Jhc2ljL1RhcmdldHMvUFBDLmgKLUBAIC00MTUsMTEgKzQxNSwxMCBAQCBw dWJsaWM6Ci0gICAgICAgTG9uZ0RvdWJsZUZvcm1hdCA9ICZsbHZtOjpBUEZsb2F0OjpJRUVFZG91 YmxlKCk7Ci0gICAgIH0gZWxzZSBpZiAoKFRyaXBsZS5nZXRBcmNoKCkgPT0gbGx2bTo6VHJpcGxl OjpwcGM2NGxlKSkgewotICAgICAgIERhdGFMYXlvdXQgPSAiZS1tOmUtaTY0OjY0LW4zMjo2NCI7 Ci0tICAgICAgQUJJID0gImVsZnYyIjsKLSAgICAgfSBlbHNlIHsKLSAgICAgICBEYXRhTGF5b3V0 ID0gIkUtbTplLWk2NDo2NC1uMzI6NjQiOwotLSAgICAgIEFCSSA9ICJlbGZ2MSI7Ci0gICAgIH0K LSsgICAgQUJJID0gImVsZnYyIjsKLSAKLSAgICAgaWYgKFRyaXBsZS5pc09TRnJlZUJTRCgpIHx8 IFRyaXBsZS5pc09TT3BlbkJTRCgpIHx8IFRyaXBsZS5pc011c2woKSkgewotICAgICAgIExvbmdE b3VibGVXaWR0aCA9IExvbmdEb3VibGVBbGlnbiA9IDY0OwotLS0tIGEvY2xhbmcvbGliL0NvZGVH ZW4vVGFyZ2V0SW5mby5jcHAKLSsrKyBiL2NsYW5nL2xpYi9Db2RlR2VuL1RhcmdldEluZm8uY3Bw Ci1AQCAtMTA5MjcsOSArMTA5MjcsOSBAQCBjb25zdCBUYXJnZXRDb2RlR2VuSW5mbyAmQ29kZUdl bk1vZHVsZTo6Z2V0VGFyZ2V0Q29kZUdlbkluZm8oKSB7Ci0gICAgICAgcmV0dXJuIFNldENHSW5m byhuZXcgQUlYVGFyZ2V0Q29kZUdlbkluZm8oVHlwZXMsIC8qSXM2NEJpdCovIHRydWUpKTsKLSAK LSAgICAgaWYgKFRyaXBsZS5pc09TQmluRm9ybWF0RUxGKCkpIHsKLS0gICAgICBQUEM2NF9TVlI0 X0FCSUluZm86OkFCSUtpbmQgS2luZCA9IFBQQzY0X1NWUjRfQUJJSW5mbzo6RUxGdjE7Ci0tICAg ICAgaWYgKGdldFRhcmdldCgpLmdldEFCSSgpID09ICJlbGZ2MiIpCi0tICAgICAgICBLaW5kID0g UFBDNjRfU1ZSNF9BQklJbmZvOjpFTEZ2MjsKLSsgICAgICBQUEM2NF9TVlI0X0FCSUluZm86OkFC SUtpbmQgS2luZCA9IFBQQzY0X1NWUjRfQUJJSW5mbzo6RUxGdjI7Ci0rICAgICAgaWYgKGdldFRh cmdldCgpLmdldEFCSSgpID09ICJlbGZ2MSIpCi0rICAgICAgICBLaW5kID0gUFBDNjRfU1ZSNF9B QklJbmZvOjpFTEZ2MTsKLSAgICAgICBib29sIElzU29mdEZsb2F0ID0gQ29kZUdlbk9wdHMuRmxv YXRBQkkgPT0gInNvZnQiOwotIAotICAgICAgIHJldHVybiBTZXRDR0luZm8oCi0tLS0gYS9jbGFu Zy9saWIvRHJpdmVyL1Rvb2xDaGFpbnMvQ2xhbmcuY3BwCi0rKysgYi9jbGFuZy9saWIvRHJpdmVy L1Rvb2xDaGFpbnMvQ2xhbmcuY3BwCi1AQCAtMTkyMCwxNCArMTkyMCw3IEBAIHZvaWQgQ2xhbmc6 OkFkZFBQQ1RhcmdldEFyZ3MoY29uc3QgQXJnTGlzdCAmQXJncywKLSAgIGNvbnN0IGxsdm06OlRy aXBsZSAmVCA9IGdldFRvb2xDaGFpbigpLmdldFRyaXBsZSgpOwotICAgaWYgKFQuaXNPU0JpbkZv cm1hdEVMRigpKSB7Ci0gICAgIHN3aXRjaCAoZ2V0VG9vbENoYWluKCkuZ2V0QXJjaCgpKSB7Ci0t ICAgIGNhc2UgbGx2bTo6VHJpcGxlOjpwcGM2NDogewotLSAgICAgIGlmICgoVC5pc09TRnJlZUJT RCgpICYmIFQuZ2V0T1NNYWpvclZlcnNpb24oKSA+PSAxMykgfHwKLS0gICAgICAgICAgVC5pc09T T3BlbkJTRCgpIHx8IFQuaXNNdXNsKCkpCi0tICAgICAgICBBQklOYW1lID0gImVsZnYyIjsKLS0g ICAgICBlbHNlCi0tICAgICAgICBBQklOYW1lID0gImVsZnYxIjsKLS0gICAgICBicmVhazsKLS0g ICAgfQotKyAgICBjYXNlIGxsdm06OlRyaXBsZTo6cHBjNjQ6Ci0gICAgIGNhc2UgbGx2bTo6VHJp cGxlOjpwcGM2NGxlOgotICAgICAgIEFCSU5hbWUgPSAiZWxmdjIiOwotICAgICAgIGJyZWFrOwpk aWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9jb21waWxlci1ydC1hYXJjaDY0LXVj b250ZXh0LnBhdGNoIGIvc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9jb21waWxlci1ydC1hYXJjaDY0 LXVjb250ZXh0LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4OTNjMDU5ZDdi OGQuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2NvbXBpbGVyLXJ0 LWFhcmNoNjQtdWNvbnRleHQucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxMSArMCwwIEBACi0t LS0gYS9jb21waWxlci1ydC9saWIvc2FuaXRpemVyX2NvbW1vbi9zYW5pdGl6ZXJfbGludXguY3Bw Lm9yaWcKLSsrKyBiL2NvbXBpbGVyLXJ0L2xpYi9zYW5pdGl6ZXJfY29tbW9uL3Nhbml0aXplcl9s aW51eC5jcHAKLUBAIC0xNzk5LDcgKzE3OTksNyBAQAotIAotIHN0YXRpYyBib29sIEFhcmNoNjRH ZXRFU1IodWNvbnRleHRfdCAqdWNvbnRleHQsIHU2NCAqZXNyKSB7Ci0gICBzdGF0aWMgY29uc3Qg dTMyIGtFc3JNYWdpYyA9IDB4NDU1MzUyMDE7Ci0tICB1OCAqYXV4ID0gdWNvbnRleHQtPnVjX21j b250ZXh0Ll9fcmVzZXJ2ZWQ7Ci0rICB1OCAqYXV4ID0gcmVpbnRlcnByZXRfY2FzdDx1OCAqPih1 Y29udGV4dC0+dWNfbWNvbnRleHQuX19yZXNlcnZlZCk7Ci0gICB3aGlsZSAodHJ1ZSkgewotICAg ICBfYWFyY2g2NF9jdHggKmN0eCA9IChfYWFyY2g2NF9jdHggKilhdXg7Ci0gICAgIGlmIChjdHgt PnNpemUgPT0gMCkgYnJlYWs7CmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2Nv bXBpbGVyLXJ0LXNhbml0aXplci1wcGM2NC1tdXNsLnBhdGNoIGIvc3JjcGtncy9sbHZtMTIvcGF0 Y2hlcy9jb21waWxlci1ydC1zYW5pdGl6ZXItcHBjNjQtbXVzbC5wYXRjaApkZWxldGVkIGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMzVmMTZkMjRmMzQwLi4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtn cy9sbHZtMTIvcGF0Y2hlcy9jb21waWxlci1ydC1zYW5pdGl6ZXItcHBjNjQtbXVzbC5wYXRjaAor KysgL2Rldi9udWxsCkBAIC0xLDM1ICswLDAgQEAKLS0tLSBhL2NvbXBpbGVyLXJ0L2xpYi9zYW5p dGl6ZXJfY29tbW9uL3Nhbml0aXplcl9saW51eC5jcHAKLSsrKyBiL2NvbXBpbGVyLXJ0L2xpYi9z YW5pdGl6ZXJfY29tbW9uL3Nhbml0aXplcl9saW51eC5jcHAKLUBAIC03NCw2ICs3NCwxMCBAQAot ICNpbmNsdWRlIDxzeXMvdXRzbmFtZS5oPgotICNlbmRpZgotIAotKyNpZiBTQU5JVElaRVJfTElO VVggJiYgZGVmaW5lZChfX3Bvd2VycGNfXykKLSsjaW5jbHVkZSA8YXNtL3B0cmFjZS5oPgotKyNl bmRpZgotKwotICNpZiBTQU5JVElaRVJfTElOVVggJiYgIVNBTklUSVpFUl9BTkRST0lECi0gI2lu Y2x1ZGUgPHN5cy9wZXJzb25hbGl0eS5oPgotICNlbmRpZgotLS0tIGEvY29tcGlsZXItcnQvbGli L3Nhbml0aXplcl9jb21tb24vc2FuaXRpemVyX3BsYXRmb3JtX2xpbWl0c19wb3NpeC5jcHAKLSsr KyBiL2NvbXBpbGVyLXJ0L2xpYi9zYW5pdGl6ZXJfY29tbW9uL3Nhbml0aXplcl9wbGF0Zm9ybV9s aW1pdHNfcG9zaXguY3BwCi1AQCAtOTIsNyArOTIsNyBAQAotICMgaW5jbHVkZSA8dXRpbWUuaD4K LSAjIGluY2x1ZGUgPHN5cy9wdHJhY2UuaD4KLSAjaWYgZGVmaW5lZChfX21pcHM2NCkgfHwgZGVm aW5lZChfX2FhcmNoNjRfXykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBcCi0tICAgIFNBTklUSVpF Ul9SSVNDVjY0Ci0rICAgIGRlZmluZWQoX19wb3dlcnBjX18pIHx8IFNBTklUSVpFUl9SSVNDVjY0 Ci0gIyAgaW5jbHVkZSA8YXNtL3B0cmFjZS5oPgotICMgIGlmZGVmIF9fYXJtX18KLSB0eXBlZGVm IHN0cnVjdCB1c2VyX2ZwcmVncyBlbGZfZnByZWdzZXRfdDsKLS0tLSBhL2NvbXBpbGVyLXJ0L2xp Yi9zYW5pdGl6ZXJfY29tbW9uL3Nhbml0aXplcl9zdG9wdGhld29ybGRfbGludXhfbGliY2RlcC5j cHAKLSsrKyBiL2NvbXBpbGVyLXJ0L2xpYi9zYW5pdGl6ZXJfY29tbW9uL3Nhbml0aXplcl9zdG9w dGhld29ybGRfbGludXhfbGliY2RlcC5jcHAKLUBAIC0zMSw3ICszMSw3IEBACi0gI2luY2x1ZGUg PHN5cy90eXBlcy5oPiAvLyBmb3IgcGlkX3QKLSAjaW5jbHVkZSA8c3lzL3Vpby5oPiAvLyBmb3Ig aW92ZWMKLSAjaW5jbHVkZSA8ZWxmLmg+IC8vIGZvciBOVF9QUlNUQVRVUwotLSNpZiAoZGVmaW5l ZChfX2FhcmNoNjRfXykgfHwgU0FOSVRJWkVSX1JJU0NWNjQpICYmICFTQU5JVElaRVJfQU5EUk9J RAotKyNpZiAoZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgZGVmaW5lZChfX3Bvd2VycGNfXykgfHwg U0FOSVRJWkVSX1JJU0NWNjQpICYmICFTQU5JVElaRVJfQU5EUk9JRAotIC8vIEdMSUJDIDIuMjAr IHN5cy91c2VyIGRvZXMgbm90IGluY2x1ZGUgYXNtL3B0cmFjZS5oCi0gIyBpbmNsdWRlIDxhc20v cHRyYWNlLmg+Ci0gI2VuZGlmCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2Nv bXBpbGVyLXJ0LXNpemVfdC5wYXRjaCBiL3NyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvY29tcGlsZXIt cnQtc2l6ZV90LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyYzYzMDYzYTVl OWUuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2NvbXBpbGVyLXJ0 LXNpemVfdC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDEwICswLDAgQEAKLS0tLSBhL2NvbXBp bGVyLXJ0L2xpYi9mdXp6ZXIvRnV6emVySW50ZXJjZXB0b3JzLmNwcC5vcmlnCi0rKysgYi9jb21w aWxlci1ydC9saWIvZnV6emVyL0Z1enplckludGVyY2VwdG9ycy5jcHAKLUBAIC0yNSw2ICsyNSw3 IEBACi0gICB9Ci0gCi0gI2luY2x1ZGUgPGNhc3NlcnQ+Ci0rI2luY2x1ZGUgPGNzdGRkZWY+Ci0g I2luY2x1ZGUgPGNzdGRpbnQ+Ci0gI2luY2x1ZGUgPGRsZmNuLmg+IC8vIGZvciBkbHN5bSgpCi0g CmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2NvbXBpbGVyLXJ0LXhyYXktcHBj NjQtbXVzbC5wYXRjaCBiL3NyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvY29tcGlsZXItcnQteHJheS1w cGM2NC1tdXNsLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkMGI2MWM4MGM4 OTcuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2NvbXBpbGVyLXJ0 LXhyYXktcHBjNjQtbXVzbC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDYyICswLDAgQEAKLS0t LSBhL2NvbXBpbGVyLXJ0L2xpYi94cmF5L3hyYXlfcG93ZXJwYzY0LmluYwotKysrIGIvY29tcGls ZXItcnQvbGliL3hyYXkveHJheV9wb3dlcnBjNjQuaW5jCi1AQCAtMTIsNyArMTIsMTMgQEAKLSAK LSAjaW5jbHVkZSA8Y3N0ZGludD4KLSAjaW5jbHVkZSA8bXV0ZXg+Ci0rI2lmZGVmIF9fR0xJQkNf XwotICNpbmNsdWRlIDxzeXMvcGxhdGZvcm0vcHBjLmg+Ci0rI2Vsc2UKLSsjaW5jbHVkZSA8Y2N0 eXBlPgotKyNpbmNsdWRlIDxjc3RyaW5nPgotKyNpbmNsdWRlIDxjc3RkbGliPgotKyNlbmRpZgot IAotICNpbmNsdWRlICJ4cmF5X2RlZnMuaCIKLSAKLUBAIC0yMCwxMyArMjYsNDUgQEAgbmFtZXNw YWNlIF9feHJheSB7Ci0gCi0gQUxXQVlTX0lOTElORSB1aW50NjRfdCByZWFkVFNDKHVpbnQ4X3Qg JkNQVSkgWFJBWV9ORVZFUl9JTlNUUlVNRU5UIHsKLSAgIENQVSA9IDA7Ci0rI2lmZGVmIF9fR0xJ QkNfXwotICAgcmV0dXJuIF9fcHBjX2dldF90aW1lYmFzZSgpOwotKyNlbHNlCi0rICByZXR1cm4g X19idWlsdGluX3BwY19nZXRfdGltZWJhc2UoKTsKLSsjZW5kaWYKLSB9Ci0gCi0gaW5saW5lIHVp bnQ2NF90IGdldFRTQ0ZyZXF1ZW5jeSgpIFhSQVlfTkVWRVJfSU5TVFJVTUVOVCB7Ci0gICBzdGF0 aWMgc3RkOjptdXRleCBNOwotICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+IEd1YXJkKE0p OwotKyNpZmRlZiBfX0dMSUJDX18KLSAgIHJldHVybiBfX3BwY19nZXRfdGltZWJhc2VfZnJlcSgp OwotKyNlbHNlCi0rICAvKiBGSVhNRTogYSBsZXNzIGRpcnR5IGltcGxlbWVudGF0aW9uPyAqLwot KyAgc3RhdGljIHVpbnQ2NF90IGJhc2U7Ci0rICBpZiAoIWJhc2UpIHsKLSsgICAgRklMRSAqZiA9 IGZvcGVuKCIvcHJvYy9jcHVpbmZvIiwgInJiIik7Ci0rICAgIGlmIChmKSB7Ci0rICAgICAgc3Np emVfdCBucjsKLSsgICAgICAvKiB2aXJ0dWFsbHkgYWx3YXlzIGJpZyBlbm91Z2ggdG8gaG9sZCB0 aGUgbGluZSAqLwotKyAgICAgIGNoYXIgYnVmWzUxMl07Ci0rICAgICAgd2hpbGUgKGZnZXRzKGJ1 Ziwgc2l6ZW9mKGJ1ZiksIGYpKSB7Ci0rICAgICAgICBjaGFyICpyZXQgPSBzdHJzdHIoYnVmLCAi dGltZWJhc2UiKTsKLSsgICAgICAgIGlmICghcmV0KSB7Ci0rICAgICAgICAgIGNvbnRpbnVlOwot KyAgICAgICAgfQotKyAgICAgICAgcmV0ICs9IHNpemVvZigidGltZWJhc2UiKSAtIDE7Ci0rICAg ICAgICByZXQgPSBzdHJjaHIocmV0LCAnOicpOwotKyAgICAgICAgaWYgKCFyZXQpIHsKLSsgICAg ICAgICAgY29udGludWU7Ci0rICAgICAgICB9Ci0rICAgICAgICBiYXNlID0gc3RydG91bChyZXQg KyAxLCBudWxscHRyLCAxMCk7Ci0rICAgICAgICBicmVhazsKLSsgICAgICB9Ci0rICAgICAgZmNs b3NlKGYpOwotKyAgICB9Ci0rICB9Ci0rICByZXR1cm4gYmFzZTsKLSsjZW5kaWYKLSB9Ci0gCi0g aW5saW5lIGJvb2wgcHJvYmVSZXF1aXJlZENQVUZlYXR1cmVzKCkgWFJBWV9ORVZFUl9JTlNUUlVN RU5UIHsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvbGliY3h4LW11c2wucGF0 Y2ggYi9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2xpYmN4eC1tdXNsLnBhdGNoCmRlbGV0ZWQgZmls ZSBtb2RlIDEwMDY0NAppbmRleCBiYmQzMWZmYzJjYjEuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNw a2dzL2xsdm0xMi9wYXRjaGVzL2xpYmN4eC1tdXNsLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEs MjYgKzAsMCBAQAotLS0tIGEvbGliY3h4L2luY2x1ZGUvbG9jYWxlCi0rKysgYi9saWJjeHgvaW5j bHVkZS9sb2NhbGUKLUBAIC03NDIsNyArNzQyLDExIEBAIF9fbnVtX2dldF9zaWduZWRfaW50ZWdy YWwoY29uc3QgY2hhciogX19hLCBjb25zdCBjaGFyKiBfX2FfZW5kLAotICAgICAgICAgdHlwZW5h bWUgcmVtb3ZlX3JlZmVyZW5jZTxkZWNsdHlwZShlcnJubyk+Ojp0eXBlIF9fc2F2ZV9lcnJubyA9 IGVycm5vOwotICAgICAgICAgZXJybm8gPSAwOwotICAgICAgICAgY2hhciAqX19wMjsKLSsjaWYg ZGVmaW5lZChfX2xpbnV4X18pICYmICFkZWZpbmVkKF9fR0xJQkNfXykKLSsgICAgICAgIGxvbmcg bG9uZyBfX2xsID0gc3RydG9sbChfX2EsICZfX3AyLCBfX2Jhc2UpOwotKyNlbHNlCi0gICAgICAg ICBsb25nIGxvbmcgX19sbCA9IHN0cnRvbGxfbChfX2EsICZfX3AyLCBfX2Jhc2UsIF9MSUJDUFBf R0VUX0NfTE9DQUxFKTsKLSsjZW5kaWYKLSAgICAgICAgIHR5cGVuYW1lIHJlbW92ZV9yZWZlcmVu Y2U8ZGVjbHR5cGUoZXJybm8pPjo6dHlwZSBfX2N1cnJlbnRfZXJybm8gPSBlcnJubzsKLSAgICAg ICAgIGlmIChfX2N1cnJlbnRfZXJybm8gPT0gMCkKLSAgICAgICAgICAgICBlcnJubyA9IF9fc2F2 ZV9lcnJubzsKLUBAIC03ODIsNyArNzg2LDExIEBAIF9fbnVtX2dldF91bnNpZ25lZF9pbnRlZ3Jh bChjb25zdCBjaGFyKiBfX2EsIGNvbnN0IGNoYXIqIF9fYV9lbmQsCi0gICAgICAgICB0eXBlbmFt ZSByZW1vdmVfcmVmZXJlbmNlPGRlY2x0eXBlKGVycm5vKT46OnR5cGUgX19zYXZlX2Vycm5vID0g ZXJybm87Ci0gICAgICAgICBlcnJubyA9IDA7Ci0gICAgICAgICBjaGFyICpfX3AyOwotKyNpZiBk ZWZpbmVkKF9fbGludXhfXykgJiYgIWRlZmluZWQoX19HTElCQ19fKQotKyAgICAgICAgdW5zaWdu ZWQgbG9uZyBsb25nIF9fbGwgPSBzdHJ0b3VsbChfX2EsICZfX3AyLCBfX2Jhc2UpOwotKyNlbHNl Ci0gICAgICAgICB1bnNpZ25lZCBsb25nIGxvbmcgX19sbCA9IHN0cnRvdWxsX2woX19hLCAmX19w MiwgX19iYXNlLCBfTElCQ1BQX0dFVF9DX0xPQ0FMRSk7Ci0rI2VuZGlmCi0gICAgICAgICB0eXBl bmFtZSByZW1vdmVfcmVmZXJlbmNlPGRlY2x0eXBlKGVycm5vKT46OnR5cGUgX19jdXJyZW50X2Vy cm5vID0gZXJybm87Ci0gICAgICAgICBpZiAoX19jdXJyZW50X2Vycm5vID09IDApCi0gICAgICAg ICAgICAgZXJybm8gPSBfX3NhdmVfZXJybm87CmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0xMi9w YXRjaGVzL2xpYmN4eC1wcGMucGF0Y2ggYi9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2xpYmN4eC1w cGMucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdhOTJmODAwNGUxYy4uMDAw MDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvbGliY3h4LXBwYy5wYXRjaAor KysgL2Rldi9udWxsCkBAIC0xLDIyICswLDAgQEAKLVRoaXMgZW5zdXJlcyBgaXNfaWVjNTU5YCBp cyBkZWZpbmVkIGNvcnJlY3RseSB1bmRlciBhbGwgbG9uZyBkb3VibGUgQUJJcywKLWluY2x1ZGlu ZyBtdXNsIGFuZCBpdHMgNjQtYml0IGxvbmcgZG91YmxlLiBBbHNvLCBgX19wcGNfX2Agb3IgYF9f cHBjNjRfX2AKLWlzIG5vdCBkZWZpbmVkIG9uIGdjYy4KLQotLS0tIGEvbGliY3h4L2luY2x1ZGUv bGltaXRzCi0rKysgYi9saWJjeHgvaW5jbHVkZS9saW1pdHMKLUBAIC00MjYsOCArNDI2LDE0IEBA IHByb3RlY3RlZDoKLSAgICAgX0xJQkNQUF9JTkxJTkVfVklTSUJJTElUWSBzdGF0aWMgX0xJQkNQ UF9DT05TVEVYUFIgdHlwZSBzaWduYWxpbmdfTmFOKCkgX05PRVhDRVBUIHtyZXR1cm4gX19idWls dGluX25hbnNsKCIiKTt9Ci0gICAgIF9MSUJDUFBfSU5MSU5FX1ZJU0lCSUxJVFkgc3RhdGljIF9M SUJDUFBfQ09OU1RFWFBSIHR5cGUgZGVub3JtX21pbigpIF9OT0VYQ0VQVCB7cmV0dXJuIF9fTERC TF9ERU5PUk1fTUlOX187fQotIAotLSNpZiAoZGVmaW5lZChfX3BwY19fKSB8fCBkZWZpbmVkKF9f cHBjNjRfXykpCi0rI2lmIGRlZmluZWQoX19wb3dlcnBjX18pIHx8IGRlZmluZWQoX19wb3dlcnBj NjRfXykKLSsjaWYgKF9fTERCTF9NQVhfRVhQX18gPiBfX0RCTF9NQVhfRVhQX18pIHx8IChfX0xE QkxfTUFOVF9ESUdfXyA9PSBfX0RCTF9NQU5UX0RJR19fKQotKyAgICAvKiBJRUVFIDc1NCBxdWFk cnVwbGUgb3IgZG91YmxlIHByZWNpc2lvbiAqLwotKyAgICBzdGF0aWMgX0xJQkNQUF9DT05TVEVY UFIgY29uc3QgYm9vbCBpc19pZWM1NTkgPSB0cnVlOwotKyNlbHNlCi0rICAgIC8qIDEyOC1iaXQg SUJNIGRvdWJsZS1kb3VibGUgKi8KLSAgICAgc3RhdGljIF9MSUJDUFBfQ09OU1RFWFBSIGNvbnN0 IGJvb2wgaXNfaWVjNTU5ID0gZmFsc2U7Ci0rI2VuZGlmCi0gI2Vsc2UKLSAgICAgc3RhdGljIF9M SUJDUFBfQ09OU1RFWFBSIGNvbnN0IGJvb2wgaXNfaWVjNTU5ID0gdHJ1ZTsKLSAjZW5kaWYKZGlm ZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvbGliY3h4LXNzcC1ub25zaGFyZWQucGF0 Y2ggYi9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2xpYmN4eC1zc3Atbm9uc2hhcmVkLnBhdGNoCmRl bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3MDI5MmJlYjJmY2QuLjAwMDAwMDAwMDAwMAot LS0gYS9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2xpYmN4eC1zc3Atbm9uc2hhcmVkLnBhdGNoCisr KyAvZGV2L251bGwKQEAgLTEsMTEgKzAsMCBAQAotLS0tIGEvbGliY3h4L0NNYWtlTGlzdHMudHh0 Ci0rKysgYi9saWJjeHgvQ01ha2VMaXN0cy50eHQKLUBAIC03NjksNiArNzY5LDggQEAgZnVuY3Rp b24oY3h4X2xpbmtfc3lzdGVtX2xpYnJhcmllcyB0YXJnZXQpCi0gICAgIHRhcmdldF9saW5rX2xp YnJhcmllcygke3RhcmdldH0gUFJJVkFURSBhdG9taWMpCi0gICBlbmRpZigpCi0gCi0rI3NzcCAg dGFyZ2V0X2xpbmtfbGlicmFyaWVzKCR7dGFyZ2V0fSBQUklWQVRFIHNzcF9ub25zaGFyZWQpCi0r Ci0gICBpZiAoTUlOR1cpCi0gICAgIHRhcmdldF9saW5rX2xpYnJhcmllcygke3RhcmdldH0gUFJJ VkFURSAiJHtNSU5HV19MSUJSQVJJRVN9IikKLSAgIGVuZGlmKCkKZGlmZiAtLWdpdCBhL3NyY3Br Z3MvbGx2bTEyL3BhdGNoZXMvbGliY3h4YWJpLWRsLnBhdGNoIGIvc3JjcGtncy9sbHZtMTIvcGF0 Y2hlcy9saWJjeHhhYmktZGwucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNh MTVmOWRiOGM5OC4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvbGli Y3h4YWJpLWRsLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMjUgKzAsMCBAQAotQWxzbyBsaW5r IHRvIC1sZGwgdG8gcHJldmVudCB1bmRlZmluZWQgcmVmZXJlbmNlcy4KLQotLS0tIGEvbGliY3h4 YWJpL3NyYy9DTWFrZUxpc3RzLnR4dAotKysrIGIvbGliY3h4YWJpL3NyYy9DTWFrZUxpc3RzLnR4 dAotQEAgLTczLDYgKzczLDcgQEAKLSAgIGVuZGlmKCkKLSAKLSAgIGFkZF9saWJyYXJ5X2ZsYWdz X2lmKExJQkNYWEFCSV9IQVNfQ19MSUIgYykKLSsgIGFkZF9saWJyYXJ5X2ZsYWdzX2lmKExJQkNY WEFCSV9IQVNfQ19MSUIgZGwpCi0gZW5kaWYoKQotIAotIGlmIChMSUJDWFhBQklfVVNFX0xMVk1f VU5XSU5ERVIpCi0tLS0gYS9saWJjeHgvQ01ha2VMaXN0cy50eHQKLSsrKyBiL2xpYmN4eC9DTWFr ZUxpc3RzLnR4dAotQEAgLTc0NSw2ICs3NDUsMTAgQEAKLSAgICAgdGFyZ2V0X2xpbmtfbGlicmFy aWVzKCR7dGFyZ2V0fSBQUklWQVRFIG0pCi0gICBlbmRpZigpCi0gCi0rICBpZiAoTElCQ1hYX0hB U19DX0xJQikKLSsgICAgdGFyZ2V0X2xpbmtfbGlicmFyaWVzKCR7dGFyZ2V0fSBQUklWQVRFIGRs KQotKyAgZW5kaWYoKQotKwotICAgaWYgKExJQkNYWF9IQVNfUlRfTElCKQotICAgICB0YXJnZXRf bGlua19saWJyYXJpZXMoJHt0YXJnZXR9IFBSSVZBVEUgcnQpCi0gICBlbmRpZigpCmRpZmYgLS1n aXQgYS9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2xpYnVud2luZC1wcGMzMi5wYXRjaCBiL3NyY3Br Z3MvbGx2bTEyL3BhdGNoZXMvbGlidW53aW5kLXBwYzMyLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCA3NGFhNzU3NmVjZjkuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2xs dm0xMi9wYXRjaGVzL2xpYnVud2luZC1wcGMzMi5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDYz ICswLDAgQEAKLVRoaXMgZml4ZXMgYnVpbGQgYXQgbGVhc3Qgd2l0aCBnY2M5IHdoaWNoIGRvZXMg bm90IGRlZmluZSBgX19wcGNfX2AuCi0KLS0tLSBhL2xpYnVud2luZC9pbmNsdWRlL19fbGlidW53 aW5kX2NvbmZpZy5oCi0rKysgYi9saWJ1bndpbmQvaW5jbHVkZS9fX2xpYnVud2luZF9jb25maWcu aAotQEAgLTQ5LDcgKzQ5LDcgQEAKLSAjICBkZWZpbmUgX0xJQlVOV0lORF9DT05URVhUX1NJWkUg MTY3Ci0gIyAgZGVmaW5lIF9MSUJVTldJTkRfQ1VSU09SX1NJWkUgMTc5Ci0gIyAgZGVmaW5lIF9M SUJVTldJTkRfSElHSEVTVF9EV0FSRl9SRUdJU1RFUiBfTElCVU5XSU5EX0hJR0hFU1RfRFdBUkZf UkVHSVNURVJfUFBDNjQKLS0jIGVsaWYgZGVmaW5lZChfX3BwY19fKQotKyMgZWxpZiBkZWZpbmVk KF9fcG93ZXJwY19fKQotICMgIGRlZmluZSBfTElCVU5XSU5EX1RBUkdFVF9QUEMgMQotICMgIGRl ZmluZSBfTElCVU5XSU5EX0NPTlRFWFRfU0laRSAxMTcKLSAjICBkZWZpbmUgX0xJQlVOV0lORF9D VVJTT1JfU0laRSAxMjQKLS0tLSBhL2xpYnVud2luZC9zcmMvVW53aW5kUmVnaXN0ZXJzUmVzdG9y ZS5TCi0rKysgYi9saWJ1bndpbmQvc3JjL1Vud2luZFJlZ2lzdGVyc1Jlc3RvcmUuUwotQEAgLTM5 Miw3ICszOTIsNyBAQCBMbm92ZWM6Ci0gICBQUEM2NF9MUigzKQotICAgYmN0cgotIAotLSNlbGlm IGRlZmluZWQoX19wcGNfXykKLSsjZWxpZiBkZWZpbmVkKF9fcG93ZXJwY19fKQotIAotIERFRklO RV9MSUJVTldJTkRfRlVOQ1RJT04oX1pOOWxpYnVud2luZDEzUmVnaXN0ZXJzX3BwYzZqdW1wdG9F dikKLSAvLwotLS0tIGEvbGlidW53aW5kL3NyYy9VbndpbmRSZWdpc3RlcnNTYXZlLlMKLSsrKyBi L2xpYnVud2luZC9zcmMvVW53aW5kUmVnaXN0ZXJzU2F2ZS5TCi1AQCAtNTU0LDcgKzU1NCw3IEBA IERFRklORV9MSUJVTldJTkRfRlVOQ1RJT04oX191bndfZ2V0Y29udGV4dCkKLSAgIGJscgotIAot IAotLSNlbGlmIGRlZmluZWQoX19wcGNfXykKLSsjZWxpZiBkZWZpbmVkKF9fcG93ZXJwY19fKQot IAotIC8vCi0gLy8gZXh0ZXJuIGludCB1bndfZ2V0Y29udGV4dCh1bndfY29udGV4dF90KiB0aHJl YWRfc3RhdGUpCi0tLS0gYS9saWJ1bndpbmQvc3JjL2NvbmZpZy5oCi0rKysgYi9saWJ1bndpbmQv c3JjL2NvbmZpZy5oCi1AQCAtOTUsMTIgKzk1LDEyIEBACi0gI2RlZmluZSBfTElCVU5XSU5EX0JV SUxEX1NKTEpfQVBJUwotICNlbmRpZgotIAotLSNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZp bmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19wcGNfXykgfHwgZGVmaW5lZChfX3BwYzY0X18p IHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSsjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVm aW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwY19fKSB8fCBkZWZpbmVkKF9fcG93 ZXJwYzY0X18pCi0gI2RlZmluZSBfTElCVU5XSU5EX1NVUFBPUlRfRlJBTUVfQVBJUwotICNlbmRp ZgotIAotICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0tICAgIGRlZmluZWQoX19wcGNfXykgfHwg ZGVmaW5lZChfX3BwYzY0X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykgfHwgICAgICAgIFwK LSsgICAgZGVmaW5lZChfX3Bvd2VycGNfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKSB8fCAg ICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAoIWRlZmluZWQoX19BUFBMRV9fKSAmJiBk ZWZpbmVkKF9fYXJtX18pKSB8fCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAg IChkZWZpbmVkKF9fYXJtNjRfXykgfHwgZGVmaW5lZChfX2FhcmNoNjRfXykpIHx8ICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFwKLSAgICAgZGVmaW5lZChfX21pcHNfXykKLS0tLSBhL2xpYnVu d2luZC9zcmMvbGlidW53aW5kLmNwcAotKysrIGIvbGlidW53aW5kL3NyYy9saWJ1bndpbmQuY3Bw Ci1AQCAtNDIsNyArNDIsNyBAQCBfTElCVU5XSU5EX0hJRERFTiBpbnQgX191bndfaW5pdF9sb2Nh bCh1bndfY3Vyc29yX3QgKmN1cnNvciwKLSAjIGRlZmluZSBSRUdJU1RFUl9LSU5EIFJlZ2lzdGVy c194ODZfNjQKLSAjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gIyBkZWZpbmUgUkVHSVNU RVJfS0lORCBSZWdpc3RlcnNfcHBjNjQKLS0jZWxpZiBkZWZpbmVkKF9fcHBjX18pCi0rI2VsaWYg ZGVmaW5lZChfX3Bvd2VycGNfXykKLSAjIGRlZmluZSBSRUdJU1RFUl9LSU5EIFJlZ2lzdGVyc19w cGMKLSAjZWxpZiBkZWZpbmVkKF9fYWFyY2g2NF9fKQotICMgZGVmaW5lIFJFR0lTVEVSX0tJTkQg UmVnaXN0ZXJzX2FybTY0CmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2xsZGIt bXVzbC5wYXRjaCBiL3NyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvbGxkYi1tdXNsLnBhdGNoCmRlbGV0 ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2MDFjMGQxMzg1MjMuLjAwMDAwMDAwMDAwMAotLS0g YS9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2xsZGItbXVzbC5wYXRjaAorKysgL2Rldi9udWxsCkBA IC0xLDMxICswLDAgQEAKLS0tLSBhL2xsZGIvc291cmNlL1BsdWdpbnMvUHJvY2Vzcy9MaW51eC9Q cm9jZnMuaAotKysrIGIvbGxkYi9zb3VyY2UvUGx1Z2lucy9Qcm9jZXNzL0xpbnV4L1Byb2Nmcy5o Ci1AQCAtMTAsMjEgKzEwLDEyIEBACi0gLy8gc3lzL3Byb2Nmcy5oIG9uIEFuZHJvaWQvTGludXgg Zm9yIGFsbCBzdXBwb3J0ZWQgYXJjaGl0ZWN0dXJlcy4KLSAKLSAjaW5jbHVkZSA8c3lzL3B0cmFj ZS5oPgotKyNpbmNsdWRlIDxhc20vcHRyYWNlLmg+Ci0gCi0tI2lmZGVmIF9fQU5EUk9JRF9fCi0t I2lmIGRlZmluZWQoX19hcm02NF9fKSB8fCBkZWZpbmVkKF9fYWFyY2g2NF9fKQotLXR5cGVkZWYg dW5zaWduZWQgbG9uZyBlbGZfZ3JlZ190OwotLXR5cGVkZWYgZWxmX2dyZWdfdAotLSAgICBlbGZf Z3JlZ3NldF90WyhzaXplb2Yoc3RydWN0IHVzZXJfcHRfcmVncykgLyBzaXplb2YoZWxmX2dyZWdf dCkpXTsKLS10eXBlZGVmIHN0cnVjdCB1c2VyX2Zwc2ltZF9zdGF0ZSBlbGZfZnByZWdzZXRfdDsK LS0jaWZuZGVmIE5UX0ZQUkVHU0VUCi0tI2RlZmluZSBOVF9GUFJFR1NFVCBOVF9QUkZQUkVHCi0t I2VuZGlmIC8vIE5UX0ZQUkVHU0VUCi0tI2VsaWYgZGVmaW5lZChfX21pcHNfXykKLS0jaWZuZGVm IE5UX0ZQUkVHU0VUCi0tI2RlZmluZSBOVF9GUFJFR1NFVCBOVF9QUkZQUkVHCi0tI2VuZGlmIC8v IE5UX0ZQUkVHU0VUCi0tI2VuZGlmCi0tI2Vsc2UgLy8gX19BTkRST0lEX18KLSsjaWYgIWRlZmlu ZWQoX19HTElCQ19fKSAmJiBkZWZpbmVkKF9fcG93ZXJwY19fKQotKyNkZWZpbmUgcHRfcmVncyBt dXNsX3B0X3JlZ3MKLSsjaW5jbHVkZSA8c3lzL3Byb2Nmcy5oPgotKyN1bmRlZiBwdF9yZWdzCi0r I2Vsc2UKLSAjaW5jbHVkZSA8c3lzL3Byb2Nmcy5oPgotLSNlbmRpZiAvLyBfX0FORFJPSURfXwot KyNlbmRpZgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9wcGMzMi1jb21waWxl ci1ydC5wYXRjaCBiL3NyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvcHBjMzItY29tcGlsZXItcnQucGF0 Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhlMGE5YTc3OWQxYi4uMDAwMDAwMDAw MDAwCi0tLSBhL3NyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvcHBjMzItY29tcGlsZXItcnQucGF0Y2gK KysrIC9kZXYvbnVsbApAQCAtMSwyMSArMCwwIEBACi1jb21taXQgYmE0ZWRlNTk1ZmY5NTk5MjMy ZjVkZDJiNDM4NGMyNDMxMzdiNTNmYwotQXV0aG9yOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0 YWZvcmdlLm9yZz4KLURhdGU6ICAgVHVlIEp1biAyMiAyMzo0MDo1NCAyMDIxICswMjAwCi0KLSAg ICBlbmFibGUgY29tcGlsZXItcnQgc3VwcG9ydCBmb3IgcHBjMzIKLQotZGlmZiAtLWdpdCBhL2Nv bXBpbGVyLXJ0L2NtYWtlL2Jhc2UtY29uZmlnLWl4LmNtYWtlIGIvY29tcGlsZXItcnQvY21ha2Uv YmFzZS1jb25maWctaXguY21ha2UKLWluZGV4IDFlZGFiNDMuLjVjMGM4YTIgMTAwNjQ0Ci0tLS0g YS9jb21waWxlci1ydC9jbWFrZS9iYXNlLWNvbmZpZy1peC5jbWFrZQotKysrIGIvY29tcGlsZXIt cnQvY21ha2UvYmFzZS1jb25maWctaXguY21ha2UKLUBAIC0xODIsOSArMTgyLDcgQEAgbWFjcm8o dGVzdF90YXJnZXRzKQotICAgICBlbHNlaWYoIiR7Q09NUElMRVJfUlRfREVGQVVMVF9UQVJHRVRf QVJDSH0iIE1BVENIRVMgInBvd2VycGM2NGxlIikKLSAgICAgICB0ZXN0X3RhcmdldF9hcmNoKHBv d2VycGM2NGxlICIiICItbTY0IikKLSAgICAgZWxzZWlmKCIke0NPTVBJTEVSX1JUX0RFRkFVTFRf VEFSR0VUX0FSQ0h9IiBNQVRDSEVTICJwb3dlcnBjIikKLS0gICAgICBpZihDTUFLRV9TWVNURU1f TkFNRSBNQVRDSEVTICJBSVgiKQotLSAgICAgICAgdGVzdF90YXJnZXRfYXJjaChwb3dlcnBjICIi ICItbTMyIikKLS0gICAgICBlbmRpZigpCi0rICAgICAgdGVzdF90YXJnZXRfYXJjaChwb3dlcnBj ICIiICItbTMyIikKLSAgICAgICB0ZXN0X3RhcmdldF9hcmNoKHBvd2VycGM2NCAiIiAiLW02NCIp Ci0gICAgIGVsc2VpZigiJHtDT01QSUxFUl9SVF9ERUZBVUxUX1RBUkdFVF9BUkNIfSIgTUFUQ0hF UyAiczM5MHgiKQotICAgICAgIHRlc3RfdGFyZ2V0X2FyY2goczM5MHggIiIgIiIpCmRpZmYgLS1n aXQgYS9zcmNwa2dzL2xsdm0xMi90ZW1wbGF0ZSBiL3NyY3BrZ3MvbGx2bTEyL3RlbXBsYXRlCmlu ZGV4IDdjZTE4MDI4ZTRhMy4uN2IzNjFiYmJmNWJjIDEwMDY0NAotLS0gYS9zcmNwa2dzL2xsdm0x Mi90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2xsdm0xMi90ZW1wbGF0ZQpAQCAtMSwyNSArMSwxNyBA QAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnbGx2bTEyJwogcGtnbmFtZT1sbHZtMTIKIHZlcnNpb249 MTIuMC4xCi1yZXZpc2lvbj0yCityZXZpc2lvbj0zCiB3cmtzcmM9Imxsdm0tcHJvamVjdC0ke3Zl cnNpb259LnNyYyIKIGJ1aWxkX3dya3NyYz1sbHZtCiBidWlsZF9zdHlsZT1jbWFrZQogY29uZmln dXJlX2FyZ3M9IgogIC1EQ01BS0VfQlVJTERfVFlQRT1SZWxlYXNlIC1Xbm8tZGV2CiAgLURFTkFC TEVfTElOS0VSX0JVSUxEX0lEPVlFUwotIC1ETExEQl9VU0VfU1lTVEVNX1NJWD1ZRVMKLSAtRExJ QkNYWF9DWFhfQUJJPWxpYmN4eGFiaQotIC1ETElCQ1hYX0VOQUJMRV9TVEFUSUNfQUJJX0xJQlJB Ulk9WUVTCi0gLURMSUJDWFhBQklfVVNFX0xMVk1fVU5XSU5ERVI9WUVTCi0gLURMSUJDWFhBQklf RU5BQkxFX1NUQVRJQ19VTldJTkRFUj1ZRVMKLSAtRExJQk9NUF9FTkFCTEVfU0hBUkVEPVlFUwot IC1ETElCT01QX0lOU1RBTExfQUxJQVNFUz1OTwogIC1ETExWTV9JTkNMVURFX0RPQ1M9WUVTCiAg LURMTFZNX0JVSUxEX0RPQ1M9WUVTCiAgLURMTFZNX0VOQUJMRV9TUEhJTlg9WUVTCiAgLURTUEhJ TlhfV0FSTklOR1NfQVNfRVJST1JTPU5PCi0gLURMTFZNX0lOU1RBTExfVVRJTFM9WUVTCiAgLURM TFZNX0JVSUxEX0xMVk1fRFlMSUI9WUVTCiAgLURMTFZNX0xJTktfTExWTV9EWUxJQj1ZRVMKICAt RExMVk1fRU5BQkxFX1JUVEk9WUVTCkBAIC01MSw4NyArNDMsMTAgQEAgY2FzZSAiJFhCUFNfVEFS R0VUX01BQ0hJTkUiIGluCiAJcHBjKikgY29uZmlndXJlX2FyZ3MrPSIgLURDTEFOR19FTkFCTEVf Q0xBTkdEPU9GRiIgOzsKIGVzYWMKIAotX2VuYWJsZWRfcHJvamVjdHM9ImNsYW5nO2NsYW5nLXRv b2xzLWV4dHJhO2NvbXBpbGVyLXJ0O2xpYmN4eDtsaWJjeHhhYmk7bGlidW53aW5kO2xsZCIKLQot X2xsZGJfZW5hYmxlPXllcwotX2xpYm9tcF9lbmFibGU9bm8KLQotY2FzZSAiJFhCUFNfVEFSR0VU X01BQ0hJTkUiIGluCi0JcHBjNjRsZSopIDs7Ci0JcHBjKnxpNjg2KikgX2xsZGJfZW5hYmxlPW5v IDs7Ci1lc2FjCi0KLWNhc2UgIiRYQlBTX1RBUkdFVF9NQUNISU5FIiBpbgotCXg4Nl82NCp8YWFy Y2g2NCp8cHBjNjQqKSBfbGlib21wX2VuYWJsZT15ZXM7OwotZXNhYwotCi1zdWJwYWNrYWdlcz0i Y2xhbmctdG9vbHMtZXh0cmEiCi0KLSMgbXVzdCBnbyBiZWZvcmUgY2xhbmcKLWlmIFsgIiRfbGli b21wX2VuYWJsZSIgPSAieWVzIiBdOyB0aGVuCi0JX2VuYWJsZWRfcHJvamVjdHMrPSI7b3Blbm1w IgotCXN1YnBhY2thZ2VzKz0iIGxpYm9tcCBsaWJvbXAtZGV2ZWwiCi0JIyBiZWNhdXNlIG9mIGNt YWtlIG5vbnNlbnNlIHJlZmVyZW5jaW5nIGxpYm9tcHRhcmdldC5zby4qCi0JZGVwZW5kcys9IiBs aWJvbXA+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCi1maQotCi1zdWJwYWNrYWdlcys9IiBjbGFu ZyBjbGFuZy1hbmFseXplciBsaWJjbGFuZyBsaWJjbGFuZy1jcHAKLSBsbHZtLWxpYnVud2luZCBs bHZtLWxpYnVud2luZC1kZXZlbCBsaWJjeHggbGliY3h4LWRldmVsCi0gbGliY3h4YWJpIGxpYmN4 eGFiaS1kZXZlbCBsaWJsbHZtMTIiCi0KLWlmIFsgIiRfbGxkYl9lbmFibGUiID0gInllcyIgXTsg dGhlbgotCSMgWFhYIGZhaWxzIHRvIGNyb3NzIGNvbXBpbGUgZHVlIHRvIHB5dGhvbgotCV9lbmFi bGVkX3Byb2plY3RzKz0iO2xsZGIiCi0Jc3VicGFja2FnZXMrPSIgbGxkYiBsbGRiLWRldmVsIgot ZmkKLQotc3VicGFja2FnZXMrPSIgbGxkIGxsZC1kZXZlbCIKLQotY29uZmlndXJlX2FyZ3MrPSIg LURMTFZNX0VOQUJMRV9QUk9KRUNUUz0ke19lbmFibGVkX3Byb2plY3RzfSIKLQogcG9zdF9wYXRj aCgpIHsKLQlpZiBbICIkX2xsZGJfZW5hYmxlIiA9ICJ5ZXMiIF07IHRoZW4KLQkJaWYgWyAiJFhC UFNfVEFSR0VUX0xJQkMiID0gIm11c2wiIF07IHRoZW4KLQkJCXZzZWQgLWkgJ3N8X19wdHJhY2Vf cmVxdWVzdHxpbnR8ZycgXAotCQkJCSR7d3Jrc3JjfS9sbGRiL3NvdXJjZS9QbHVnaW5zL1Byb2Nl c3MvTGludXgvTmF0aXZlUHJvY2Vzc0xpbnV4LmNwcAotCQlmaQotCQkjIGRpc2FibGUgZG9jcyBm b3IgbGxkYiBhcyB0aGV5IGZhaWwgdG8gZ2VuZXJhdGUKLQkJdnNlZCAtaSAnL2FkZF9zdWJkaXJl Y3RvcnkoZG9jcykvZCcgXAotCQkJJHt3cmtzcmN9L2xsZGIvQ01ha2VMaXN0cy50eHQKLQlmaQot CiAJIyB1cGRhdGUgY29uZmlnLmd1ZXNzIGZvciBiZXR0ZXIgcGxhdGZvcm0gZGV0ZWN0aW9uCiAJ Y3AgJFhCUFNfQ09NTU9ORElSL2Vudmlyb25tZW50L2NvbmZpZ3VyZS9hdXRvbWFrZS9jb25maWcu Z3Vlc3MgXAogCQkke3dya3NyY30vbGx2bS9jbWFrZQotCi0JIyBmaXggbGlua2VyIGZhaWx1cmVz IG9uIHNvbWUgYXJjaHMKLQl2c2VkIC1pICdzLGNoZWNrX2xpYnJhcnlfZXhpc3RzKGdjY19zIC4q LHNldChMSUJDWFhBQklfSEFTX0dDQ19TX0xJQiBPTiksJyBcCi0JCSR7d3Jrc3JjfS9saWJjeHhh YmkvY21ha2UvY29uZmlnLWl4LmNtYWtlCi0JdnNlZCAtaSAncyxjaGVja19saWJyYXJ5X2V4aXN0 cyhnY2MgLiosc2V0KExJQkNYWEFCSV9IQVNfR0NDX0xJQiBPTiksJyBcCi0JCSR7d3Jrc3JjfS9s aWJjeHhhYmkvY21ha2UvY29uZmlnLWl4LmNtYWtlCi0KLQkjIG5lZWQgbGlic3NwX25vbnNoYXJl ZCBvbiBzb21lIG11c2wgcGxhdGZvcm1zIChiZWNhdXNlIG9mIG5vZGVmYXVsdGxpYnMpCi0JY2Fz ZSAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiIGluCi0JCXBwYzY0KikgOzsKLQkJcHBjKi1tdXNsfGk2 ODYtbXVzbHxtaXBzKi1tdXNsKQotCQkJdnNlZCAtaSAncyxeIyBTZXR1cCBmbGFncy4kLGFkZF9s aWJyYXJ5X2ZsYWdzKHNzcF9ub25zaGFyZWQpLCcgXAotCQkJCSR7d3Jrc3JjfS9saWJ1bndpbmQv c3JjL0NNYWtlTGlzdHMudHh0Ci0JCQl2c2VkIC1pICdzLF4jIFNldHVwIGZsYWdzLiQsYWRkX2xp YnJhcnlfZmxhZ3Moc3NwX25vbnNoYXJlZCksJyBcCi0JCQkJJHt3cmtzcmN9L2xpYmN4eGFiaS9z cmMvQ01ha2VMaXN0cy50eHQKLQkJCXZzZWQgLWkgJ3MsI3NzcCwsJyAke3dya3NyY30vbGliY3h4 L0NNYWtlTGlzdHMudHh0Ci0JCQk7OwotCWVzYWMKLQotCWNhc2UgIiRYQlBTX1RBUkdFVF9NQUNI SU5FIiBpbgotCQl4ODZfNjQtbXVzbCkgIyBzb21lIHNhbml0aXplciBjdXJyZW50bHkgb25seSBv biB4ODZfNjQgc3R1ZmYgbmVlZHMgYmFja3RyYWNlCi0JCQl2c2VkIC1pICdzLCMgU2V0IGNvbW1v biBsaW5rIGZsYWdzLixsaXN0KEFQUEVORCBTQU5JVElaRVJfQ09NTU9OX0xJTktfTElCUyBleGVj aW5mbyksJyBcCi0JCQkJJHt3cmtzcmN9L2NvbXBpbGVyLXJ0L0NNYWtlTGlzdHMudHh0Ci0JCQk7 OwotCQlhcm0qLW11c2x8aTY4Ni1tdXNsKSAjIHNhbml0aXplciBjb2RlIGlzIGJyb2tlbiBzaW5j ZSBpdCBkdXBsaWNhdGVzIHNvbWUgbGliYyBiaXRzCi0JCQl2c2VkIC1pICdzL3NldChDT01QSUxF Ul9SVF9IQVNfU0FOSVRJWkVSX0NPTU1PTiBUUlVFKS9zZXQoQ09NUElMRVJfUlRfSEFTX1NBTklU SVpFUl9DT01NT04gRkFMU0UpLycgXAotCQkJCSR7d3Jrc3JjfS9jb21waWxlci1ydC9jbWFrZS9j b25maWctaXguY21ha2UKLQkJCTs7Ci0JZXNhYwogfQogCiBwcmVfY29uZmlndXJlKCkgewpAQCAt MTU4LDEwICs3Myw4IEBAIHByZV9jb25maWd1cmUoKSB7CiAJCQljbWFrZSAuLi8uLiAtRENNQUtF X0JVSUxEX1RZUEU9UmVsZWFzZSBcCiAJCQktRExMVk1fRU5BQkxFX1BST0pFQ1RTPSR7X2VuYWJs ZWRfcHJvamVjdHN9CiAJCW1ha2UgJHttYWtlam9ic30gLUMgdXRpbHMvVGFibGVHZW4KLQkJbWFr ZSAke21ha2Vqb2JzfSAtQyB0b29scy9jbGFuZy91dGlscy9UYWJsZUdlbgogCQlbICIkX2xsZGJf ZW5hYmxlIiA9ICJ5ZXMiIF0gJiYgbWFrZSAke21ha2Vqb2JzfSAtQyB0b29scy9sbGRiL3V0aWxz L1RhYmxlR2VuCiAJCWNvbmZpZ3VyZV9hcmdzKz0iIC1ETExWTV9UQUJMRUdFTj0ke3dya3NyY30v bGx2bS9idWlsZC9IT1NUL2Jpbi9sbHZtLXRibGdlbiIKLQkJY29uZmlndXJlX2FyZ3MrPSIgLURD TEFOR19UQUJMRUdFTj0ke3dya3NyY30vbGx2bS9idWlsZC9IT1NUL2Jpbi9jbGFuZy10YmxnZW4i CiAJCVsgIiRfbGxkYl9lbmFibGUiID0gInllcyIgXSAmJiBjb25maWd1cmVfYXJncys9IiAtRExM REJfVEFCTEVHRU49JHt3cmtzcmN9L2xsdm0vYnVpbGQvSE9TVC9iaW4vbGxkYi10YmxnZW4iCiAJ CWNkIC4uLy4uCiAJZmkKQEAgLTIwMiwyMTggKzExNSw2IEBAIGRvX2luc3RhbGwoKSB7CiAJaWYg WyAiJENST1NTX0JVSUxEIiBdOyB0aGVuCiAJCXJtIC1mICR7REVTVERJUn0vdXNyL2Jpbi9sbHZt LWNvbmZpZy1ob3N0CiAJZmkKLQotCSMgSW5zdGFsbCBsaWJjeHhhYmkgaGVhZGVycwotCXZpbnN0 YWxsICR7d3Jrc3JjfS9saWJjeHhhYmkvaW5jbHVkZS9fX2N4eGFiaV9jb25maWcuaCA2NDQgdXNy L2luY2x1ZGUKLQl2aW5zdGFsbCAke3dya3NyY30vbGliY3h4YWJpL2luY2x1ZGUvY3h4YWJpLmgg NjQ0IHVzci9pbmNsdWRlCi0KLQkjIEluc3RhbGwgbGlidW53aW5kIGhlYWRlcnMKLQl2aW5zdGFs bCAke3dya3NyY30vbGlidW53aW5kL2luY2x1ZGUvX19saWJ1bndpbmRfY29uZmlnLmggNjQ0IHVz ci9pbmNsdWRlCi0Jdmluc3RhbGwgJHt3cmtzcmN9L2xpYnVud2luZC9pbmNsdWRlL2xpYnVud2lu ZC5oIDY0NCB1c3IvaW5jbHVkZQotCXZpbnN0YWxsICR7d3Jrc3JjfS9saWJ1bndpbmQvaW5jbHVk ZS91bndpbmQuaCA2NDQgdXNyL2luY2x1ZGUKLQl2aW5zdGFsbCAke3dya3NyY30vbGlidW53aW5k L2luY2x1ZGUvbWFjaC1vL2NvbXBhY3RfdW53aW5kX2VuY29kaW5nLmggXAotCQk2NDQgdXNyL2lu Y2x1ZGUvbWFjaC1vCi19Ci0KLWNsYW5nLWFuYWx5emVyX3BhY2thZ2UoKSB7Ci0JcHljb21waWxl X2RpcnM9InVzci9zaGFyZS9zY2FuLXZpZXciCi0JZGVwZW5kcz0iY2xhbmctJHt2ZXJzaW9ufV8k e3JldmlzaW9ufSBweXRob24zIHBlcmwiCi0Jc2hvcnRfZGVzYys9IiAtIEEgc291cmNlIGNvZGUg YW5hbHlzaXMgZnJhbWV3b3JrIgotCWhvbWVwYWdlPSJodHRwczovL2NsYW5nLWFuYWx5emVyLmxs dm0ub3JnLyIKLQlwa2dfaW5zdGFsbCgpIHsKLQkJdm1vdmUgdXNyL3NoYXJlL21hbi9tYW4xL3Nj YW4tYnVpbGQuMQotCQl2bW92ZSAiL3Vzci9iaW4vc2Nhbi0qIgotCQl2bW92ZSAiL3Vzci9zaGFy ZS9zY2FuLSoiCi0JCXZtb3ZlICIvdXNyL2xpYmV4ZWMvKmFuYWx5emVyIgotCX0KLX0KLQotY2xh bmctdG9vbHMtZXh0cmFfcGFja2FnZSgpIHsKLQlsaWIzMmRpc2FibGVkPXllcwotCWRlcGVuZHM9 ImNsYW5nLSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0gcHl0aG9uMyIKLQlzaG9ydF9kZXNjKz0iIC0g RXh0cmEgQ2xhbmcgdG9vbHMiCi0JaG9tZXBhZ2U9Imh0dHBzOi8vY2xhbmcubGx2bS5vcmcvZXh0 cmEvIgotCXBrZ19pbnN0YWxsKCkgewotCQl2bW92ZSB1c3IvaW5jbHVkZS9jbGFuZy10aWR5Ci0J CXZtb3ZlIHVzci9iaW4vY2xhbmctYXBwbHktcmVwbGFjZW1lbnRzCi0JCXZtb3ZlIHVzci9iaW4v Y2xhbmctcXVlcnkKLQkJdm1vdmUgdXNyL2Jpbi9jbGFuZy1yZW5hbWUKLQkJdm1vdmUgdXNyL2Jp bi9jbGFuZy10aWR5Ci0JCXZtb3ZlIHVzci9iaW4vZGlhZ3Rvb2wKLQkJdm1vdmUgdXNyL2Jpbi9m aW5kLWFsbC1zeW1ib2xzCi0JCXZtb3ZlIHVzci9iaW4vaG1hcHRvb2wKLQkJdm1vdmUgdXNyL2Jp bi9tb2R1bGFyaXplCi0JCXZtb3ZlIHVzci9iaW4vcHAtdHJhY2UKLQkJdm1vdmUgdXNyL2Jpbi9z YW5jb3YKLQkJdm1vdmUgInVzci9saWIvbGliY2xhbmdBcHBseVJlcGxhY2VtZW50cyoiCi0JCXZt b3ZlICJ1c3IvbGliL2xpYmNsYW5nUXVlcnkqIgotCQl2bW92ZSAidXNyL2xpYi9saWJjbGFuZ1Rp ZHkqIgotCQl2bW92ZSAidXNyL3NoYXJlL2NsYW5nLyp0aWR5KiIKLQkJdm1vdmUgdXNyL3NoYXJl L2RvYy9jbGFuZy10b29scwotCQl2bW92ZSB1c3Ivc2hhcmUvbWFuL21hbjEvZXh0cmFjbGFuZ3Rv b2xzLjEKLQkJdm1vdmUgdXNyL3NoYXJlL21hbi9tYW4xL2RpYWd0b29sLjEKLQl9Ci19Ci0KLWNs YW5nX3BhY2thZ2UoKSB7Ci0JbGliMzJkaXNhYmxlZD15ZXMKLQlkZXBlbmRzPSJsaWJzdGRjKyst ZGV2ZWwgbGliZ2NjLWRldmVsICBiaW51dGlscyAke1hCUFNfVEFSR0VUX0xJQkN9LWRldmVsCi0J IGxpYmNsYW5nLSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCi0Jc2hvcnRfZGVzYys9IiAtIEMgbGFu Z3VhZ2UgZmFtaWx5IGZyb250ZW5kIgotCWhvbWVwYWdlPSJodHRwczovL2NsYW5nLmxsdm0ub3Jn LyIKLQlwa2dfaW5zdGFsbCgpIHsKLQkJdm1vdmUgdXNyL2luY2x1ZGUvY2xhbmcKLQkJdm1vdmUg dXNyL2luY2x1ZGUvY2xhbmctYwotCQl2bW92ZSAidXNyL2Jpbi8qY2xhbmcqIgotCQl2bW92ZSB1 c3IvYmluL2MtaW5kZXgtdGVzdAotCQl2bW92ZSB1c3IvbGliL2NsYW5nCi0JCXZtb3ZlIHVzci9s aWIvY21ha2UvY2xhbmcKLQkJdm1vdmUgInVzci9saWIvbGliY2xhbmcqLmEiCi0JCXZtb3ZlICJ1 c3IvbGliL2xpYmNsYW5nKi5zbyIKLQkJdm1vdmUgdXNyL3NoYXJlL2NsYW5nCi0JCXZtb3ZlIHVz ci9zaGFyZS9kb2MvY2xhbmcKLQkJdm1vdmUgdXNyL3NoYXJlL21hbi9tYW4xL2NsYW5nLjEKLQl9 Ci19Ci0KLWxpYmNsYW5nX3BhY2thZ2UoKSB7Ci0Jc2hvcnRfZGVzYys9IiAtIEMgZnJvbnRlbmQg cnVudGltZSBsaWJyYXJ5IgotCXBrZ19pbnN0YWxsKCkgewotCQl2bW92ZSAidXNyL2xpYi9saWJj bGFuZy5zby4qIgotCX0KLX0KLQotbGliY2xhbmctY3BwX3BhY2thZ2UoKSB7Ci0Jc2hvcnRfZGVz Yys9IiAtIEMgZnJvbnRlbmQgcnVudGltZSBsaWJyYXJ5IChDKysgaW50ZXJmYWNlKSIKLQlwa2df aW5zdGFsbCgpIHsKLQkJdm1vdmUgInVzci9saWIvbGliY2xhbmctY3BwLnNvLioiCi0JfQotfQot Ci1sbGRfcGFja2FnZSgpIHsKLQlsaWIzMmRpc2FibGVkPXllcwotCXNob3J0X2Rlc2MrPSIgLSBs aW5rZXIiCi0JaG9tZXBhZ2U9Imh0dHBzOi8vbGxkLmxsdm0ub3JnIgotCXBrZ19pbnN0YWxsKCkg ewotCQl2bW92ZSB1c3IvYmluL2xsZCoKLQkJdm1vdmUgdXNyL2Jpbi93YXNtLWxkCi0JCXZtb3Zl IHVzci9iaW4vbGQubGxkKgotCQl2bW92ZSB1c3IvYmluL2xkNjQubGxkKgotCQl2bW92ZSB1c3Iv c2hhcmUvZG9jL2xsZAotCX0KLX0KLQotbGxkLWRldmVsX3BhY2thZ2UoKSB7Ci0JbGliMzJkaXNh YmxlZD15ZXMKLQlzaG9ydF9kZXNjKz0iIC0gbGlua2VyIC0gZGV2ZWxvcG1lbnQgZmlsZXMiCi0J aG9tZXBhZ2U9Imh0dHBzOi8vbGxkLmxsdm0ub3JnIgotCWRlcGVuZHM9ImxsZD49JHt2ZXJzaW9u fV8ke3JldmlzaW9ufSIKLQlwa2dfaW5zdGFsbCgpIHsKLQkJdm1vdmUgdXNyL2luY2x1ZGUvbGxk Ci0JCXZtb3ZlIHVzci9saWIvY21ha2UvbGxkCi0JCXZtb3ZlICJ1c3IvbGliL2xpYmxsZCphIgot CX0KLX0KLQotbGxkYl9wYWNrYWdlKCkgewotCWxpYjMyZGlzYWJsZWQ9eWVzCi0JZGVwZW5kcys9 IiBweXRob24zLXNpeCIKLQlzaG9ydF9kZXNjKz0iIC0gTExEQiBkZWJ1Z2dlciIKLQlob21lcGFn ZT0iaHR0cHM6Ly9sbGRiLmxsdm0ub3JnLyIKLQlwa2dfaW5zdGFsbCgpIHsKLQkJdm1vdmUgdXNy L2Jpbi8qbGxkYioKLQkJdm1vdmUgdXNyL2xpYi9saWJsbGRiKnNvLioKLQkJdm1vdmUgL3Vzci9s aWIvcHl0aG9uKgotCX0KLX0KLQotbGxkYi1kZXZlbF9wYWNrYWdlKCkgewotCWxpYjMyZGlzYWJs ZWQ9eWVzCi0JZGVwZW5kcz0ibGxkYj49JHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKLQlzaG9ydF9k ZXNjKz0iIC0gTExEQiBkZWJ1Z2dlciAtIGRldmVsb3BtZW50IGZpbGVzIgotCXBrZ19pbnN0YWxs KCkgewotCQl2bW92ZSB1c3IvaW5jbHVkZS9sbGRiCi0JCXZtb3ZlICJ1c3IvbGliL2xpYmxsZGIq LnNvIgotCX0KLX0KLQotbGx2bS1saWJ1bndpbmRfcGFja2FnZSgpIHsKLQlzaG9ydF9kZXNjKz0i IC0gbGlidW53aW5kIgotCXBrZ19pbnN0YWxsKCkgewotCQl2bW92ZSAidXNyL2xpYi9saWJ1bndp bmQuc28uKiIKLQl9Ci19Ci0KLWxsdm0tbGlidW53aW5kLWRldmVsX3BhY2thZ2UoKSB7Ci0Jc2hv cnRfZGVzYys9IiAtIGxpYnVud2luZCAtIGRldmVsb3BtZW50IGZpbGVzIgotCWRlcGVuZHM9Imxs dm0tbGlidW53aW5kPj0ke3ZlcnNpb259XyR7cmV2aXNpb259IgotCWNvbmZsaWN0cz0ibGlidW53 aW5kLWRldmVsPj0wIgotCXBrZ19pbnN0YWxsKCkgewotCQl2bW92ZSB1c3IvbGliL2xpYnVud2lu ZC5zbwotCQl2bW92ZSB1c3IvbGliL2xpYnVud2luZC5hCi0JCXZtb3ZlICJ1c3IvaW5jbHVkZS8q dW53aW5kKiIKLQkJdm1vdmUgdXNyL2luY2x1ZGUvbWFjaC1vCi0JCXZtb3ZlIHVzci9zaGFyZS9k b2MvbGlidW53aW5kCi0JfQotfQotCi1saWJjeHhhYmlfcGFja2FnZSgpIHsKLQlzaG9ydF9kZXNj Kz0iIC0gbG93IGxldmVsIHN1cHBvcnQgZm9yIGxpYmMrKyIKLQlwa2dfaW5zdGFsbCgpIHsKLQkJ dm1vdmUgInVzci9saWIvbGliYysrYWJpLnNvLioiCi0JfQotfQotCi1saWJjeHhhYmktZGV2ZWxf cGFja2FnZSgpIHsKLQlzaG9ydF9kZXNjKz0iIC0gbG93IGxldmVsIHN1cHBvcnQgZm9yIGxpYmMr KyAtIGRldmVsb3BtZW50IGZpbGVzIgotCWRlcGVuZHM9ImxpYmN4eGFiaT49JHt2ZXJzaW9ufV8k e3JldmlzaW9ufSIKLQlwa2dfaW5zdGFsbCgpIHsKLQkJdm1vdmUgdXNyL2xpYi9saWJjKythYmku c28KLQkJdm1vdmUgdXNyL2xpYi9saWJjKythYmkuYQotCQl2bW92ZSAidXNyL2luY2x1ZGUvKmN4 eGFiaSoiCi0JfQotfQotCi1saWJjeHhfcGFja2FnZSgpIHsKLQlzaG9ydF9kZXNjKz0iIC0gQysr IHN0YW5kYXJkIGxpYnJhcnkiCi0JcGtnX2luc3RhbGwoKSB7Ci0JCXZtb3ZlICJ1c3IvbGliL2xp YmMrKy5zby4qIgotCX0KLX0KLQotbGliY3h4LWRldmVsX3BhY2thZ2UoKSB7Ci0Jc2hvcnRfZGVz Yys9IiAtIEMrKyBzdGFuZGFyZCBsaWJyYXJ5IC0gZGV2ZWxvcG1lbnQgZmlsZXMiCi0JZGVwZW5k cz0ibGliY3h4Pj0ke3ZlcnNpb259XyR7cmV2aXNpb259IgotCXBrZ19pbnN0YWxsKCkgewotCQl2 bW92ZSB1c3IvbGliL2xpYmMrKy5zbwotCQl2bW92ZSB1c3IvbGliL2xpYmMrKy5hCi0JCXZtb3Zl IHVzci9saWIvbGliYysrZXhwZXJpbWVudGFsLmEKLQkJdm1vdmUgdXNyL2luY2x1ZGUvYysrCi0J CXZtb3ZlIHVzci9zaGFyZS9kb2MvbGliY3h4Ci0JfQotfQotCi1saWJvbXBfcGFja2FnZSgpIHsK LQlzaG9ydF9kZXNjKz0iIC0gQ2xhbmcgT3Blbk1QIHN1cHBvcnQgbGlicmFyeSIKLQlwa2dfaW5z dGFsbCgpIHsKLQkJdm1vdmUgdXNyL2xpYi9saWJvbXAuc28KLQkJdm1vdmUgInVzci9saWIvbGli b21wdGFyZ2V0LnJ0bC4qLnNvIgotCQl2bW92ZSB1c3IvbGliL2xpYmFyY2hlci5zbwotCQl2bW92 ZSAidXNyL2xpYi9saWJvbXAqLnNvLioiCi0JfQotfQotCi1saWJvbXAtZGV2ZWxfcGFja2FnZSgp IHsKLQlzaG9ydF9kZXNjKz0iIC0gQ2xhbmcgT3Blbk1QIHN1cHBvcnQgbGlicmFyeSAtIGRldmVs b3BtZW50IGZpbGVzIgotCWRlcGVuZHM9ImxpYm9tcD49JHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIK LQlwa2dfaW5zdGFsbCgpIHsKLQkJdm1vdmUgInVzci9saWIvbGlib21wKi5zbyIKLQkJdm1vdmUg InVzci9saWIvbGliYXJjaGVyKiIKLQkJdm1vdmUgInVzci9pbmNsdWRlL29tcCouaCIKLQkJdm1v dmUgInVzci9saWIvY2xhbmcvJHt2ZXJzaW9ufS9pbmNsdWRlL29tcCouaCIKLQkJdm1vdmUgdXNy L3NoYXJlL21hbi9tYW4xL2xsdm1vcGVubXAuMQotCQl2bW92ZSB1c3Ivc2hhcmUvZG9jL29wZW5t cAotCX0KIH0KIAogbGlibGx2bTEyX3BhY2thZ2UoKSB7CgpGcm9tIDQ5YmI4MmM2YzYyZWVmMjBl OWU2ZmIzNmI5NWMwYmYzYTBjY2NhNmQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206ID0/ VVRGLTg/cT9Mb3Vpcz0yMER1cHI9QzM9QTk9MjBCZXJ0b25pPz0KIDxsb3Vpc2RiQGxlc3BldGl0 c3BlZGVzdHJlcy5vcmc+CkRhdGU6IFNhdCwgMSBKYW4gMjAyMiAxNTo1Nzo1OSArMDIwMApTdWJq ZWN0OiBbUEFUQ0ggMDQvMzFdIHJ0YWdzOiByZWJ1aWxkIGZvciBsbHZtMTMKCi0tLQogc3JjcGtn cy9ydGFncy90ZW1wbGF0ZSB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwg MSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcnRhZ3MvdGVtcGxhdGUgYi9zcmNw a2dzL3J0YWdzL3RlbXBsYXRlCmluZGV4IGI0OTZhMWIwZTcyMS4uOWIxNjFlNjkwZDc2IDEwMDY0 NAotLS0gYS9zcmNwa2dzL3J0YWdzL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvcnRhZ3MvdGVtcGxh dGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdydGFncycKIHBrZ25hbWU9 cnRhZ3MKIHZlcnNpb249Mi4zOAotcmV2aXNpb249NQorcmV2aXNpb249NgogYnVpbGRfc3R5bGU9 Y21ha2UKICMgRG9uJ3QgcnVuIHRlc3RzIGluIGRvX2luc3RhbGwsIHBsZWFzZS4KIGNvbmZpZ3Vy ZV9hcmdzPSItRFNLSVBfQ1RFU1Q9VFJVRSIKCkZyb20gOTE2NTE5MzBjNmMyMzc3YjVkZDc3NDkz NGIxZDgwNGQyZmMxODliNCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogPT9VVEYtOD9x P0xvdWlzPTIwRHVwcj1DMz1BOT0yMEJlcnRvbmk/PQogPGxvdWlzZGJAbGVzcGV0aXRzcGVkZXN0 cmVzLm9yZz4KRGF0ZTogU2F0LCAxIEphbiAyMDIyIDE1OjU4OjI3ICswMjAwClN1YmplY3Q6IFtQ QVRDSCAwNS8zMV0gYnBmdHJhY2U6IHJlYnVpbGQgZm9yIGxsdm0xMwoKLS0tCiBzcmNwa2dzL2Jw ZnRyYWNlL3RlbXBsYXRlIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAx IGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9icGZ0cmFjZS90ZW1wbGF0ZSBiL3Ny Y3BrZ3MvYnBmdHJhY2UvdGVtcGxhdGUKaW5kZXggMjhhYjNjNjI2Mzk5Li5lYjI0ODBkMjIzMGUg MTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvYnBmdHJhY2UvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9icGZ0 cmFjZS90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2JwZnRy YWNlJwogcGtnbmFtZT1icGZ0cmFjZQogdmVyc2lvbj0wLjE0LjEKLXJldmlzaW9uPTEKK3Jldmlz aW9uPTIKIGFyY2hzPSJ4ODZfNjQqIGFhcmNoNjQqIHBwYzY0KiIKIGJ1aWxkX3N0eWxlPWNtYWtl CiBjb25maWd1cmVfYXJncz0iLURCVUlMRF9URVNUSU5HPU9GRiIgICMgbmVlZHMgcm9vdCB0byBy dW4KCkZyb20gZWYyY2ViZDdlODA4MGFkMTg1YzE2ZDJhMzJkMWU1YmIwYjNlZTBmNCBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogPT9VVEYtOD9xP0xvdWlzPTIwRHVwcj1DMz1BOT0yMEJl cnRvbmk/PQogPGxvdWlzZGJAbGVzcGV0aXRzcGVkZXN0cmVzLm9yZz4KRGF0ZTogU2F0LCAxIEph biAyMDIyIDE1OjU4OjM4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwNi8zMV0gY2xhenk6IHJlYnVp bGQgZm9yIGxsdm0xMwoKLS0tCiBzcmNwa2dzL2NsYXp5L3RlbXBsYXRlIHwgMiArLQogMSBmaWxl IGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9jbGF6eS90ZW1wbGF0ZSBiL3NyY3BrZ3MvY2xhenkvdGVtcGxhdGUKaW5kZXggMTFmM2Jh YjU1YWVmLi5mODFkZTA4YWI4MzYgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvY2xhenkvdGVtcGxhdGUK KysrIGIvc3JjcGtncy9jbGF6eS90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUg ZmlsZSBmb3IgJ2NsYXp5JwogcGtnbmFtZT1jbGF6eQogdmVyc2lvbj0xLjExCi1yZXZpc2lvbj0x CityZXZpc2lvbj0yCiBidWlsZF9zdHlsZT1jbWFrZQogYnVpbGRfaGVscGVyPXFlbXUKIGhvc3Rt YWtlZGVwZW5kcz0ibGx2bSIKCkZyb20gMjZlZWNmZGVlODI0MzcxNzEyY2ZkOThlYTM2ZTlmNDUy OWQ0YTU0MiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogPT9VVEYtOD9xP0xvdWlzPTIw RHVwcj1DMz1BOT0yMEJlcnRvbmk/PQogPGxvdWlzZGJAbGVzcGV0aXRzcGVkZXN0cmVzLm9yZz4K RGF0ZTogU2F0LCAxIEphbiAyMDIyIDE1OjU4OjQ5ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwNy8z MV0gY2NsczogcmVidWlsZCBmb3IgbGx2bTEzCgotLS0KIHNyY3BrZ3MvY2Nscy90ZW1wbGF0ZSB8 IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlm ZiAtLWdpdCBhL3NyY3BrZ3MvY2Nscy90ZW1wbGF0ZSBiL3NyY3BrZ3MvY2Nscy90ZW1wbGF0ZQpp bmRleCBmYmI3YzY4NDdiYzEuLjQwYWJhM2I1NWJmZSAxMDA2NDQKLS0tIGEvc3JjcGtncy9jY2xz L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvY2Nscy90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMg VGVtcGxhdGUgZmlsZSBmb3IgJ2NjbHMnCiBwa2duYW1lPWNjbHMKIHZlcnNpb249MC4yMDIxMDMz MAotcmV2aXNpb249MgorcmV2aXNpb249MwogYnVpbGRfc3R5bGU9Y21ha2UKIGhvc3RtYWtlZGVw ZW5kcz0iY2xhbmctdG9vbHMtZXh0cmEiCiBtYWtlZGVwZW5kcz0ibGx2bSBuY3Vyc2VzLWRldmVs IHJhcGlkanNvbiB6bGliLWRldmVsIGNsYW5nLXRvb2xzLWV4dHJhIgoKRnJvbSA1OTZlOWM0YmI4 NjljZTJmZTZlZmE4ZmU0Mzc4M2E4M2Q2YTg2N2I5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiA9P1VURi04P3E/TG91aXM9MjBEdXByPUMzPUE5PTIwQmVydG9uaT89CiA8bG91aXNkYkBs ZXNwZXRpdHNwZWRlc3RyZXMub3JnPgpEYXRlOiBTYXQsIDEgSmFuIDIwMjIgMTU6NTk6MzUgKzAy MDAKU3ViamVjdDogW1BBVENIIDA4LzMxXSBpbmNsdWRlLXdoYXQteW91LXVzZTogcmVidWlsZCBm b3IgbGx2bTEzCgotLS0KIHNyY3BrZ3MvaW5jbHVkZS13aGF0LXlvdS11c2UvdGVtcGxhdGUgfCA0 ICsrLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvc3JjcGtncy9pbmNsdWRlLXdoYXQteW91LXVzZS90ZW1wbGF0ZSBiL3NyY3Br Z3MvaW5jbHVkZS13aGF0LXlvdS11c2UvdGVtcGxhdGUKaW5kZXggYjEzYmI3ZWU1NmFmLi5iNGIx Njc0MDFlYmUgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvaW5jbHVkZS13aGF0LXlvdS11c2UvdGVtcGxh dGUKKysrIGIvc3JjcGtncy9pbmNsdWRlLXdoYXQteW91LXVzZS90ZW1wbGF0ZQpAQCAtMSw2ICsx LDYgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2luY2x1ZGUtd2hhdC15b3UtdXNlJwogcGtnbmFt ZT1pbmNsdWRlLXdoYXQteW91LXVzZQotdmVyc2lvbj0wLjE2Cit2ZXJzaW9uPTAuMTcKIHJldmlz aW9uPTEKIHdya3NyYz0iJHtwa2duYW1lfSIKIGJ1aWxkX3N0eWxlPWNtYWtlCkBAIC0xMiw3ICsx Miw3IEBAIG1haW50YWluZXI9IkxlYWggTmV1a2lyY2hlbiA8bGVhaEB2dXh1Lm9yZz4iCiBsaWNl bnNlPSJOQ1NBIgogaG9tZXBhZ2U9Imh0dHBzOi8vaW5jbHVkZS13aGF0LXlvdS11c2Uub3JnLyIK IGRpc3RmaWxlcz0iaHR0cHM6Ly9pbmNsdWRlLXdoYXQteW91LXVzZS5vcmcvZG93bmxvYWRzLyR7 cGtnbmFtZX0tJHt2ZXJzaW9ufS5zcmMudGFyLmd6IgotY2hlY2tzdW09OGQ2ZmM5YjI1NTM0M2Jj MWU1ZWM0NTllMzk1MTJkZjFkNTFjNjBlMDM1NjI5ODVlMDA3NjAzNjExOWZmNWExYworY2hlY2tz dW09ZWNhN2MwNGY4YjQxNmI2Mzg1ZWQwMGUzMzY2OWE3ZmE0NjkzY2QyNmNiNzJiNTIyY2RlNTU4 ODI4ZWIwYzY2NQogcHl0aG9uX3ZlcnNpb249MwogCiBwb3N0X2luc3RhbGwoKSB7CgpGcm9tIDA0 MWJiNDVhODM2OTk5OWEzNzM3YjY5MDY3YWJhN2EyM2E3MjM4NjEgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206ID0/VVRGLTg/cT9Mb3Vpcz0yMER1cHI9QzM9QTk9MjBCZXJ0b25pPz0KIDxs b3Vpc2RiQGxlc3BldGl0c3BlZGVzdHJlcy5vcmc+CkRhdGU6IFNhdCwgMSBKYW4gMjAyMiAxNjow MToyMSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDkvMzFdIGNvZGVsaXRlOiByZWJ1aWxkIGZvciBs bHZtMTMKCi0tLQogc3JjcGtncy9jb2RlbGl0ZS90ZW1wbGF0ZSB8IDIgKy0KIDEgZmlsZSBjaGFu Z2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv Y29kZWxpdGUvdGVtcGxhdGUgYi9zcmNwa2dzL2NvZGVsaXRlL3RlbXBsYXRlCmluZGV4IDNhOTkz YTJjMGNmYi4uMjRlMmM4NzlkZDQ1IDEwMDY0NAotLS0gYS9zcmNwa2dzL2NvZGVsaXRlL3RlbXBs YXRlCisrKyBiL3NyY3BrZ3MvY29kZWxpdGUvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRl bXBsYXRlIGZpbGUgZm9yICdjb2RlbGl0ZScKIHBrZ25hbWU9Y29kZWxpdGUKIHZlcnNpb249MTUu MC42Ci1yZXZpc2lvbj0xCityZXZpc2lvbj0yCiBidWlsZF9zdHlsZT1jbWFrZQogYnVpbGRfaGVs cGVyPWNtYWtlLXd4V2lkZ2V0cy1ndGszCiBjb25maWd1cmVfYXJncz0iLURXSVRIX1BDSD0wIC1E V0lUSF9XWF9DT05GSUc9d3gtY29uZmlnLWd0azMKCkZyb20gNjNmZWRlZjEwMjI3MWI1NzdmYThi NTc4MGEwNWE3MjgzZDVjZjA1NiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogPT9VVEYt OD9xP0xvdWlzPTIwRHVwcj1DMz1BOT0yMEJlcnRvbmk/PQogPGxvdWlzZGJAbGVzcGV0aXRzcGVk ZXN0cmVzLm9yZz4KRGF0ZTogU2F0LCAxIEphbiAyMDIyIDE2OjIyOjQ4ICswMjAwClN1YmplY3Q6 IFtQQVRDSCAxMC8zMV0ga2RldmVsb3A6IHJlYnVpbGQgZm9yIGxsdm0xMwoKLS0tCiBzcmNwa2dz L2tkZXZlbG9wL3RlbXBsYXRlIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCsp LCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9rZGV2ZWxvcC90ZW1wbGF0ZSBi L3NyY3BrZ3Mva2RldmVsb3AvdGVtcGxhdGUKaW5kZXggMDEwMTg1ODQ5ZDgwLi5hYmYwOGMzMTMw NzEgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mva2RldmVsb3AvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9r ZGV2ZWxvcC90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2tk ZXZlbG9wJwogcGtnbmFtZT1rZGV2ZWxvcAogdmVyc2lvbj0yMS4xMi4zCi1yZXZpc2lvbj0xCity ZXZpc2lvbj0yCiBidWlsZF9zdHlsZT1jbWFrZQogY29uZmlndXJlX2FyZ3M9Ii1EQlVJTERfVEVT VElORz1PRkYiCiBob3N0bWFrZWRlcGVuZHM9ImV4dHJhLWNtYWtlLW1vZHVsZXMgcXQ1LXFtYWtl IHF0NS1ob3N0LXRvb2xzIHF0NS10b29scwoKRnJvbSAyZTVjODNiNzYzY2ExNDI5OGI2Zjk2YTQz OWNhNDJhZGZmN2EzNjUxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/ TG91aXM9MjBEdXByPUMzPUE5PTIwQmVydG9uaT89CiA8bG91aXNkYkBsZXNwZXRpdHNwZWRlc3Ry ZXMub3JnPgpEYXRlOiBTYXQsIDEgSmFuIDIwMjIgMTY6MjM6MDcgKzAyMDAKU3ViamVjdDogW1BB VENIIDExLzMxXSBqdUNpKys6IHJlYnVpbGQgZm9yIGxsdm0xMwoKLS0tCiBzcmNwa2dzL2p1Q2kr Ky90ZW1wbGF0ZSB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxl dGlvbigtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvanVDaSsrL3RlbXBsYXRlIGIvc3JjcGtncy9q dUNpKysvdGVtcGxhdGUKaW5kZXggMWE3NjA0YjQ0YTAwLi41MTAzMzI0ZGVjMjAgMTAwNjQ0Ci0t LSBhL3NyY3BrZ3MvanVDaSsrL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvanVDaSsrL3RlbXBsYXRl CkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnanVDaSsrJwogcGtnbmFtZT1q dUNpKysKIHZlcnNpb249MS42LjIKLXJldmlzaW9uPTIKK3JldmlzaW9uPTMKIF9saWJjbGFuZ21t X2NvbW1pdD0iYjM0MmY0ZGQ2ZGU0ZmU1MDlhNjkyYTRiNGZjZmM3ZTI0YWFlOTU5MCIKIF90aW55 X2NvbW1pdD0iYzljOGJmODEwZGRhZDhjZDE3ODgyYjlhOWVlNjI4YTY5MGU3NzlmNSIKIHdya3Ny Yz0ianVjaXBwLXYke3ZlcnNpb259IgoKRnJvbSA4MDIyMzhkNjVkZTEyZTFiYTIxMTM2NzJjNjQy NzQzMjkwOTE2ODY2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/TG91 aXM9MjBEdXByPUMzPUE5PTIwQmVydG9uaT89CiA8bG91aXNkYkBsZXNwZXRpdHNwZWRlc3RyZXMu b3JnPgpEYXRlOiBTYXQsIDEgSmFuIDIwMjIgMTg6MzA6MDEgKzAyMDAKU3ViamVjdDogW1BBVENI IDEyLzMxXSBsbHZtMTM6IGZpeCBsaWJvbXAqIHBhY2thZ2VzCgotLS0KIHNyY3BrZ3MvbGx2bTEz L3RlbXBsYXRlIHwgNCArKy0tCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bTEzL3RlbXBsYXRlIGIvc3JjcGtn cy9sbHZtMTMvdGVtcGxhdGUKaW5kZXggMDhkODQ3NDcyNTI1Li5iZmM5MTA1NmQyNzcgMTAwNjQ0 Ci0tLSBhL3NyY3BrZ3MvbGx2bTEzL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvbGx2bTEzL3RlbXBs YXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnbGx2bTEzJwogcGtnbmFt ZT1sbHZtMTMKIHZlcnNpb249MTMuMC4wCi1yZXZpc2lvbj0xCityZXZpc2lvbj0yCiB3cmtzcmM9 Imxsdm0tcHJvamVjdC0ke3ZlcnNpb259LnNyYyIKIGJ1aWxkX3dya3NyYz1sbHZtCiBidWlsZF9z dHlsZT1jbWFrZQpAQCAtMzk3LDYgKzM5Nyw3IEBAIGxpYm9tcF9wYWNrYWdlKCkgewogCXNob3J0 X2Rlc2MrPSIgLSBDbGFuZyBPcGVuTVAgc3VwcG9ydCBsaWJyYXJ5IgogCXBrZ19pbnN0YWxsKCkg ewogCQl2bW92ZSB1c3IvbGliL2xpYm9tcC5zbworCQl2bW92ZSB1c3IvbGliL2xpYm9tcHRhcmdl dC5zbwogCQl2bW92ZSAidXNyL2xpYi9saWJvbXB0YXJnZXQucnRsLiouc28iCiAJCXZtb3ZlIHVz ci9saWIvbGliYXJjaGVyLnNvCiAJfQpAQCAtNDA2LDcgKzQwNyw2IEBAIGxpYm9tcC1kZXZlbF9w YWNrYWdlKCkgewogCXNob3J0X2Rlc2MrPSIgLSBDbGFuZyBPcGVuTVAgc3VwcG9ydCBsaWJyYXJ5 IC0gZGV2ZWxvcG1lbnQgZmlsZXMiCiAJZGVwZW5kcz0ibGlib21wPj0ke3ZlcnNpb259XyR7cmV2 aXNpb259IgogCXBrZ19pbnN0YWxsKCkgewotCQl2bW92ZSAidXNyL2xpYi9saWJvbXAqLnNvIgog CQl2bW92ZSAidXNyL2xpYi9saWJhcmNoZXIqIgogCQl2bW92ZSAidXNyL2luY2x1ZGUvb21wKi5o IgogCQl2bW92ZSAidXNyL2xpYi9jbGFuZy8ke3ZlcnNpb259L2luY2x1ZGUvb21wKi5oIgoKRnJv bSBkN2VhYzAxOGVhZDZhOGI5MWI4Yzg0ZWIwYTIwNjdhMWRmY2IxNGVlIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/TG91aXM9MjBEdXByPUMzPUE5PTIwQmVydG9uaT89 CiA8bG91aXNkYkBsZXNwZXRpdHNwZWRlc3RyZXMub3JnPgpEYXRlOiBTdW4sIDE2IEphbiAyMDIy IDE0OjMzOjU2ICswMjAwClN1YmplY3Q6IFtQQVRDSCAxMy8zMV0gY2hyb21pdW06IHVwZGF0ZSB0 ZW1wbGF0ZSBmb3IgbGx2bTEzCgotLS0KIHNyY3BrZ3MvY2hyb21pdW0vdGVtcGxhdGUgfCA4ICst LS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDcgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvc3JjcGtncy9jaHJvbWl1bS90ZW1wbGF0ZSBiL3NyY3BrZ3MvY2hyb21pdW0v dGVtcGxhdGUKaW5kZXggZjYxNTRlMjIzNzUxLi4xZWRmNjFhMzM5OGYgMTAwNjQ0Ci0tLSBhL3Ny Y3BrZ3MvY2hyb21pdW0vdGVtcGxhdGUKKysrIGIvc3JjcGtncy9jaHJvbWl1bS90ZW1wbGF0ZQpA QCAtMjAsNyArMjAsNyBAQCBkZXNjX29wdGlvbl9kZWJ1Zz0iQnVpbGQgd2l0aCBkZWJ1ZyBzeW1i b2xzIgogZGVzY19vcHRpb25fanNfb3B0aW1pemU9Ik9wdGltaXplIHRoZSBKUyB1c2VkIGZvciBD aHJvbWl1bSdzIFVJIgogZGVzY19vcHRpb25fcGlwZXdpcmU9IkVuYWJsZSBzdXBwb3J0IGZvciBz Y3JlZW4gc2hhcmluZyBmb3IgV2ViUlRDIHZpYSBQaXBlV2lyZSIKIAotaG9zdG1ha2VkZXBlbmRz PSIkKHZvcHRfaWYgY2xhbmcgImNsYW5nIGxsZCBsbHZtMTIiKSBweXRob24gcHl0aG9uMyBwa2dj b25mIHBlcmwgZ3BlcmYgYmlzb24gbmluamEgbm9kZWpzIGh3aWRzCitob3N0bWFrZWRlcGVuZHM9 IiQodm9wdF9pZiBjbGFuZyAiY2xhbmcgbGxkIGxsdm0xMyIpIHB5dGhvbiBweXRob24zIHBrZ2Nv bmYgcGVybCBncGVyZiBiaXNvbiBuaW5qYSBub2RlanMgaHdpZHMKICBsaWJhdG9taWMtZGV2ZWwg bGliZXZlbnQtZGV2ZWwgbGliZ2xpYi1kZXZlbCAkKHZvcHRfaWYganNfb3B0aW1pemUgb3Blbmpk aykgd2F5bGFuZC1kZXZlbCBsaWJlcG94eS1kZXZlbCIKIG1ha2VkZXBlbmRzPSJsaWJwbmctZGV2 ZWwgZ3RrKy1kZXZlbCBndGsrMy1kZXZlbCBuc3MtZGV2ZWwgcGNpdXRpbHMtZGV2ZWwKICBsaWJY aS1kZXZlbCBsaWJnY3J5cHQtZGV2ZWwgbGliZ25vbWUta2V5cmluZy1kZXZlbCBjdXBzLWRldmVs IGVsZnV0aWxzLWRldmVsCkBAIC0yNjYsMTIgKzI2Niw2IEBAIGRvX2NvbmZpZ3VyZSgpIHsKIAkJ J2Rpc2FibGVfZmllbGR0cmlhbF90ZXN0aW5nX2NvbmZpZz10cnVlJwogCiAJCSdpc19vZmZpY2lh bF9idWlsZD10cnVlJwotCi0JCSMgc2VnZmF1bHRzIHdpdGggbGx2bS0xMi4wLjEKLQkJJ2lzX2Nm aT1mYWxzZScKLQkJJ3VzZV90aGluX2x0bz1mYWxzZScKLQkJJ3VzZV9jZmlfaWNhbGw9ZmFsc2Un Ci0JCSdjaHJvbWVfcGdvX3BoYXNlPTAnCiAJKQogCiAJaWYgWyAiJENST1NTX0JVSUxEIiBdOyB0 aGVuCgpGcm9tIGUxOTZlMmQ0ZWYyM2ZlZWYyYzg3Nzc3NWNlMDRlOGMwODJkMjNhZTcgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206ID0/VVRGLTg/cT9Mb3Vpcz0yMER1cHI9QzM9QTk9MjBC ZXJ0b25pPz0KIDxsb3Vpc2RiQGxlc3BldGl0c3BlZGVzdHJlcy5vcmc+CkRhdGU6IFN1biwgMTYg SmFuIDIwMjIgMTQ6Mzk6MDQgKzAyMDAKU3ViamVjdDogW1BBVENIIDE0LzMxXSBsbHZtMTI6IHJl bW92ZQoKLS0tCiBzcmNwa2dzL2xsdm0xMi9JTlNUQUxMLm1zZyAgICAgICAgICAgICAgICAgICAg fCAgIDEgKwogLi4uL2xsdm0xMi9maWxlcy9sbHZtLUNvbmZpZy1sbHZtLWNvbmZpZy5oICAgIHwg ICA5IC0tCiBzcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2xsdm0tMDAxLW11c2wucGF0Y2ggICAgfCAg NTcgLS0tLS0tLS0tCiAuLi4vcGF0Y2hlcy9sbHZtLTAwMi1tdXNsLXBwYzY0LWVsZnYyLnBhdGNo ICAgfCAgMzAgLS0tLS0KIC4uLi9wYXRjaGVzL2xsdm0tMDAzLXBwYy1zZWN1cmVwbHQucGF0Y2gg ICAgICB8ICAxMSAtLQogLi4uL3BhdGNoZXMvbGx2bS0wMDQtb3ZlcnJpZGUtb3B0LnBhdGNoICAg ICAgIHwgIDE4IC0tLQogLi4uL2xsdm0xMi9wYXRjaGVzL2xsdm0tMDA1LXBwYy1iaWdwaWMucGF0 Y2ggIHwgIDM2IC0tLS0tLQogLi4uL3BhdGNoZXMvbGx2bS0wMDYtYWFyY2g2NC1tZl9leGVjLnBh dGNoICAgIHwgIDI1IC0tLS0KIHNyY3BrZ3MvbGx2bTEyL3RlbXBsYXRlICAgICAgICAgICAgICAg ICAgICAgICB8IDEyMCArLS0tLS0tLS0tLS0tLS0tLS0KIHNyY3BrZ3MvbGx2bTEyL3VwZGF0ZSAg ICAgICAgICAgICAgICAgICAgICAgICB8ICAgMyAtCiAxMCBmaWxlcyBjaGFuZ2VkLCA1IGluc2Vy dGlvbnMoKyksIDMwNSBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xs dm0xMi9JTlNUQUxMLm1zZwogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGx2bTEyL2ZpbGVz L2xsdm0tQ29uZmlnLWxsdm0tY29uZmlnLmgKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xs dm0xMi9wYXRjaGVzL2xsdm0tMDAxLW11c2wucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNw a2dzL2xsdm0xMi9wYXRjaGVzL2xsdm0tMDAyLW11c2wtcHBjNjQtZWxmdjIucGF0Y2gKIGRlbGV0 ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2xsdm0tMDAzLXBwYy1zZWN1cmVw bHQucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2xsdm0t MDA0LW92ZXJyaWRlLW9wdC5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGx2bTEy L3BhdGNoZXMvbGx2bS0wMDUtcHBjLWJpZ3BpYy5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNy Y3BrZ3MvbGx2bTEyL3BhdGNoZXMvbGx2bS0wMDYtYWFyY2g2NC1tZl9leGVjLnBhdGNoCiBkZWxl dGUgbW9kZSAxMDA2NDQgc3JjcGtncy9sbHZtMTIvdXBkYXRlCgpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9sbHZtMTIvSU5TVEFMTC5tc2cgYi9zcmNwa2dzL2xsdm0xMi9JTlNUQUxMLm1zZwpuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjAwNGFjZjdiNTMwYwotLS0gL2Rldi9u dWxsCisrKyBiL3NyY3BrZ3MvbGx2bTEyL0lOU1RBTEwubXNnCkBAIC0wLDAgKzEgQEAKK2xsdm0x MiBpcyBubyBsb25nZXIgcHJvdmlkZWQgYnkgVm9pZCBMaW51eApkaWZmIC0tZ2l0IGEvc3JjcGtn cy9sbHZtMTIvZmlsZXMvbGx2bS1Db25maWctbGx2bS1jb25maWcuaCBiL3NyY3BrZ3MvbGx2bTEy L2ZpbGVzL2xsdm0tQ29uZmlnLWxsdm0tY29uZmlnLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDJmYTA4YzliZTY5Ni4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvbGx2bTEyL2Zp bGVzL2xsdm0tQ29uZmlnLWxsdm0tY29uZmlnLmgKKysrIC9kZXYvbnVsbApAQCAtMSw5ICswLDAg QEAKLSNpbmNsdWRlIDxiaXRzL3dvcmRzaXplLmg+Ci0KLSNpZiBfX1dPUkRTSVpFID09IDMyCi0j aW5jbHVkZSAibGx2bS1jb25maWctMzIuaCIKLSNlbGlmIF9fV09SRFNJWkUgPT0gNjQKLSNpbmNs dWRlICJsbHZtLWNvbmZpZy02NC5oIgotI2Vsc2UKLSNlcnJvciAiVW5rbm93biB3b3JkIHNpemUi Ci0jZW5kaWYKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvbGx2bS0wMDEtbXVz bC5wYXRjaCBiL3NyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvbGx2bS0wMDEtbXVzbC5wYXRjaApkZWxl dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjJhM2Y4ZDYyODEzLi4wMDAwMDAwMDAwMDAKLS0t IGEvc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9sbHZtLTAwMS1tdXNsLnBhdGNoCisrKyAvZGV2L251 bGwKQEAgLTEsNTcgKzAsMCBAQAotRnJvbSBmYWNhM2ZiZDE1ZDBjMzEwODQ5M2MzYzU0Y2Q5MzEz OGUwNDlhYzQzIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogQW5kcmVhIEJyYW5jYWxl b25pIDxtaXdheGVAZ21haWwuY29tPgotRGF0ZTogVHVlLCA4IFNlcCAyMDE1IDIyOjAzOjAyICsw MjAwCi1TdWJqZWN0OiBbUEFUQ0ggMy8zXSBtdXNsCi0KLS0tLQotIGluY2x1ZGUvbGx2bS9BbmFs eXNpcy9UYXJnZXRMaWJyYXJ5SW5mby5oIHwgOSArKysrKysrKysKLSBsaWIvU3VwcG9ydC9EeW5h bWljTGlicmFyeS5jcHAgICAgICAgICAgICB8IDIgKy0KLSBsaWIvU3VwcG9ydC9Vbml4L1NpZ25h bHMuaW5jICAgICAgICAgICAgICB8IDYgKysrLS0tCi0gdXRpbHMvdW5pdHRlc3QvZ29vZ2xldGVz dC9zcmMvZ3Rlc3QuY2MgICAgfCAxICsKLSA1IGZpbGVzIGNoYW5nZWQsIDE3IGluc2VydGlvbnMo KyksIDYgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9pbmNsdWRlL2xsdm0vQW5hbHlzaXMv VGFyZ2V0TGlicmFyeUluZm8uaCBiL2luY2x1ZGUvbGx2bS9BbmFseXNpcy9UYXJnZXRMaWJyYXJ5 SW5mby5oCi1pbmRleCAzNGE4YTFlMy4uMTIxNGVjZTUgMTAwNjQ0Ci0tLS0gYS9sbHZtL2luY2x1 ZGUvbGx2bS9BbmFseXNpcy9UYXJnZXRMaWJyYXJ5SW5mby5oCi0rKysgYi9sbHZtL2luY2x1ZGUv bGx2bS9BbmFseXNpcy9UYXJnZXRMaWJyYXJ5SW5mby5oCi1AQCAtMTgsNiArMTgsMTUgQEAKLSAj aW5jbHVkZSAibGx2bS9JUi9QYXNzTWFuYWdlci5oIgotICNpbmNsdWRlICJsbHZtL1Bhc3MuaCIK LSAKLSsjdW5kZWYgZm9wZW42NAotKyN1bmRlZiBmc2Vla282NAotKyN1bmRlZiBmc3RhdDY0Ci0r I3VuZGVmIGZzdGF0dmZzNjQKLSsjdW5kZWYgZnRlbGxvNjQKLSsjdW5kZWYgbHN0YXQ2NAotKyN1 bmRlZiBzdGF0NjQKLSsjdW5kZWYgdG1wZmlsZTY0Ci0rCi0gbmFtZXNwYWNlIGxsdm0gewotIHRl bXBsYXRlIDx0eXBlbmFtZSBUPiBjbGFzcyBBcnJheVJlZjsKLSBjbGFzcyBUcmlwbGU7Ci1kaWZm IC0tZ2l0IGEvbGliL1N1cHBvcnQvVW5peC9EeW5hbWljTGlicmFyeS5pbmMgYi9saWIvU3VwcG9y dC9Vbml4L0R5bmFtaWNMaWJyYXJ5LmluYwotaW5kZXggYTJhMzc5OTYuLjJmODZjNDcwIDEwMDY0 NAotLS0tIGEvbGx2bS9saWIvU3VwcG9ydC9Vbml4L0R5bmFtaWNMaWJyYXJ5LmluYwotKysrIGIv bGx2bS9saWIvU3VwcG9ydC9Vbml4L0R5bmFtaWNMaWJyYXJ5LmluYwotQEAgLTEwMiw3ICsxMDIs NyBAQCBzdGF0aWMgdm9pZCAqRG9TZWFyY2goY29uc3QgY2hhciogU3ltYm9sTmFtZSkgewotIAot IC8vIFRoaXMgbWFjcm8gcmV0dXJucyB0aGUgYWRkcmVzcyBvZiBhIHdlbGwta25vd24sIGV4cGxp Y2l0IHN5bWJvbAotICNkZWZpbmUgRVhQTElDSVRfU1lNQk9MKFNZTSkgXAotLSAgIGlmICghc3Ry Y21wKFN5bWJvbE5hbWUsICNTWU0pKSByZXR1cm4gJlNZTQotKyAgIGlmICghc3RyY21wKFN5bWJv bE5hbWUsICNTWU0pKSByZXR1cm4gKHZvaWQgKikmU1lNCi0gCi0gLy8gVW5kZXIgZ2xpYmMgd2Ug aGF2ZSBhIHdlaXJkIHNpdHVhdGlvbi4gVGhlIHN0ZGVyci9vdXQvaW4gc3ltYm9scyBhcmUgYm90 aAotIC8vIG1hY3JvcyBhbmQgZ2xvYmFsIHZhcmlhYmxlcyBiZWNhdXNlIG9mIHN0YW5kYXJkcyBy ZXF1aXJlbWVudHMuIFNvLCB3ZQotZGlmZiAtLWdpdCBhL3V0aWxzL3VuaXR0ZXN0L2dvb2dsZXRl c3Qvc3JjL2d0ZXN0LmNjIGIvdXRpbHMvdW5pdHRlc3QvZ29vZ2xldGVzdC9zcmMvZ3Rlc3QuY2MK LWluZGV4IGQ4ODJhYjJlLi5mMWZiMTJkMCAxMDA2NDQKLS0tLSBhL2xsdm0vdXRpbHMvdW5pdHRl c3QvZ29vZ2xldGVzdC9zcmMvZ3Rlc3QuY2MKLSsrKyBiL2xsdm0vdXRpbHMvdW5pdHRlc3QvZ29v Z2xldGVzdC9zcmMvZ3Rlc3QuY2MKLUBAIC0xMjgsNiArMTI4LDcgQEAKLSAKLSAjaWYgR1RFU1Rf Q0FOX1NUUkVBTV9SRVNVTFRTXwotICMgaW5jbHVkZSA8YXJwYS9pbmV0Lmg+ICAvLyBOT0xJTlQK LSsjIGluY2x1ZGUgPHN5cy9zb2NrZXQuaD4gIC8vIE5PTElOVAotICMgaW5jbHVkZSA8bmV0ZGIu aD4gIC8vIE5PTElOVAotICMgaW5jbHVkZSA8c3lzL3NvY2tldC5oPiAgLy8gTk9MSU5UCi0gIyBp bmNsdWRlIDxzeXMvdHlwZXMuaD4gIC8vIE5PTElOVApkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZt MTIvcGF0Y2hlcy9sbHZtLTAwMi1tdXNsLXBwYzY0LWVsZnYyLnBhdGNoIGIvc3JjcGtncy9sbHZt MTIvcGF0Y2hlcy9sbHZtLTAwMi1tdXNsLXBwYzY0LWVsZnYyLnBhdGNoCmRlbGV0ZWQgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDcxZDk2NGJkMzcuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dz L2xsdm0xMi9wYXRjaGVzL2xsdm0tMDAyLW11c2wtcHBjNjQtZWxmdjIucGF0Y2gKKysrIC9kZXYv bnVsbApAQCAtMSwzMCArMCwwIEBACi1UaGlzIHBhdGNoZXMgTExWTSB0byB1c2UgRUxGdjIgb24g cHBjNjQgdW5jb25kaXRpb25hbGx5IHVubGVzcyBvdmVycmlkZGVuLiBXZQotbmVlZCB0aGlzIGJl Y2F1c2UgdW5saWtlIG1vc3QgZGlzdHJvcyB3ZSB1c2UgRUxGdjIgZm9yIGJvdGggZ2xpYmMgYW5k IG11c2wKLW9uIGJpZyBlbmRpYW4gcHBjNjQuCi0KLWRpZmYgLS1naXQgYS9saWIvVGFyZ2V0L1Bv d2VyUEMvUFBDVGFyZ2V0TWFjaGluZS5jcHAgYi9saWIvVGFyZ2V0L1Bvd2VyUEMvUFBDVGFyZ2V0 TWFjaGluZS5jcHAKLWluZGV4IDA2MzQ4MzNlLi5iN2NiYzJlNyAxMDA2NDQKLS0tLSBhL2xsdm0v bGliL1RhcmdldC9Qb3dlclBDL1BQQ1RhcmdldE1hY2hpbmUuY3BwCi0rKysgYi9sbHZtL2xpYi9U YXJnZXQvUG93ZXJQQy9QUENUYXJnZXRNYWNoaW5lLmNwcAotQEAgLTIyMiw5ICsyMjIsOCBAQCBz dGF0aWMgUFBDVGFyZ2V0TWFjaGluZTo6UFBDQUJJIGNvbXB1dGVUYXJnZXRBQkkoY29uc3QgVHJp cGxlICZUVCwKLSAKLSAgIHN3aXRjaCAoVFQuZ2V0QXJjaCgpKSB7Ci0gICBjYXNlIFRyaXBsZTo6 cHBjNjRsZToKLS0gICAgcmV0dXJuIFBQQ1RhcmdldE1hY2hpbmU6OlBQQ19BQklfRUxGdjI7Ci0g ICBjYXNlIFRyaXBsZTo6cHBjNjQ6Ci0tICAgIHJldHVybiBQUENUYXJnZXRNYWNoaW5lOjpQUENf QUJJX0VMRnYxOwotKyAgICByZXR1cm4gUFBDVGFyZ2V0TWFjaGluZTo6UFBDX0FCSV9FTEZ2MjsK LSAgIGRlZmF1bHQ6Ci0gICAgIHJldHVybiBQUENUYXJnZXRNYWNoaW5lOjpQUENfQUJJX1VOS05P V047Ci0gICB9Ci1kaWZmIC0tZ2l0IGEvdGVzdC9Db2RlR2VuL1Bvd2VyUEMvcHBjNjQtZWxmLWFi aS5sbCBiL3Rlc3QvQ29kZUdlbi9Qb3dlclBDL3BwYzY0LWVsZi1hYmkubGwKLWluZGV4IDhiMWNm NmI1Li4yOTZhMmFmYSAxMDA2NDQKLS0tLSBhL2xsdm0vdGVzdC9Db2RlR2VuL1Bvd2VyUEMvcHBj NjQtZWxmLWFiaS5sbAotKysrIGIvbGx2bS90ZXN0L0NvZGVHZW4vUG93ZXJQQy9wcGM2NC1lbGYt YWJpLmxsCi1AQCAtMSw0ICsxLDUgQEAKLS07IFJVTjogbGxjIC12ZXJpZnktbWFjaGluZWluc3Ry cyAtbXRyaXBsZT1wb3dlcnBjNjQtdW5rbm93bi1saW51eC1nbnUgPCAlcyB8IEZpbGVDaGVjayAl cyAtY2hlY2stcHJlZml4PUNIRUNLLUVMRnYxCi0rOyBSVU46IGxsYyAtdmVyaWZ5LW1hY2hpbmVp bnN0cnMgLW10cmlwbGU9cG93ZXJwYzY0LXVua25vd24tbGludXgtZ251IDwgJXMgfCBGaWxlQ2hl Y2sgJXMgLWNoZWNrLXByZWZpeD1DSEVDSy1FTEZ2MgotKzsgUlVOOiBsbGMgLXZlcmlmeS1tYWNo aW5laW5zdHJzIC1tdHJpcGxlPXBvd2VycGM2NC11bmtub3duLWxpbnV4LW11c2wgPCAlcyB8IEZp bGVDaGVjayAlcyAtY2hlY2stcHJlZml4PUNIRUNLLUVMRnYyCi0gOyBSVU46IGxsYyAtdmVyaWZ5 LW1hY2hpbmVpbnN0cnMgLW10cmlwbGU9cG93ZXJwYzY0LXVua25vd24tbGludXgtZ251IC10YXJn ZXQtYWJpIGVsZnYxIDwgJXMgfCBGaWxlQ2hlY2sgJXMgLWNoZWNrLXByZWZpeD1DSEVDSy1FTEZ2 MQotIDsgUlVOOiBsbGMgLXZlcmlmeS1tYWNoaW5laW5zdHJzIC1tdHJpcGxlPXBvd2VycGM2NC11 bmtub3duLWxpbnV4LWdudSAtdGFyZ2V0LWFiaSBlbGZ2MiA8ICVzIHwgRmlsZUNoZWNrICVzIC1j aGVjay1wcmVmaXg9Q0hFQ0stRUxGdjIKLSA7IFJVTjogbGxjIC12ZXJpZnktbWFjaGluZWluc3Ry cyAtbXRyaXBsZT1wb3dlcnBjNjRsZS11bmtub3duLWxpbnV4LWdudSA8ICVzIHwgRmlsZUNoZWNr ICVzIC1jaGVjay1wcmVmaXg9Q0hFQ0stRUxGdjIKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bTEy L3BhdGNoZXMvbGx2bS0wMDMtcHBjLXNlY3VyZXBsdC5wYXRjaCBiL3NyY3BrZ3MvbGx2bTEyL3Bh dGNoZXMvbGx2bS0wMDMtcHBjLXNlY3VyZXBsdC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggYjVkMTU5NzQzNzVkLi4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9sbHZtMTIv cGF0Y2hlcy9sbHZtLTAwMy1wcGMtc2VjdXJlcGx0LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEs MTEgKzAsMCBAQAotLS0tIGEvbGx2bS9saWIvVGFyZ2V0L1Bvd2VyUEMvUFBDU3VidGFyZ2V0LmNw cAotKysrIGIvbGx2bS9saWIvVGFyZ2V0L1Bvd2VyUEMvUFBDU3VidGFyZ2V0LmNwcAotQEAgLTE2 NSw3ICsxNjUsNyBAQCB2b2lkIFBQQ1N1YnRhcmdldDo6aW5pdFN1YnRhcmdldEZlYXR1cmVzKFN0 cmluZ1JlZiBDUFUsIFN0cmluZ1JlZiBGUykgewotIAotICAgaWYgKChUYXJnZXRUcmlwbGUuaXNP U0ZyZWVCU0QoKSAmJiBUYXJnZXRUcmlwbGUuZ2V0T1NNYWpvclZlcnNpb24oKSA+PSAxMykgfHwK LSAgICAgICBUYXJnZXRUcmlwbGUuaXNPU05ldEJTRCgpIHx8IFRhcmdldFRyaXBsZS5pc09TT3Bl bkJTRCgpIHx8Ci0tICAgICAgVGFyZ2V0VHJpcGxlLmlzTXVzbCgpKQotKyAgICAgIGlzVGFyZ2V0 TGludXgoKSkKLSAgICAgU2VjdXJlUGx0ID0gdHJ1ZTsKLSAKLSAgIGlmIChIYXNTUEUgJiYgSXNQ UEM2NCkKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvbGx2bS0wMDQtb3ZlcnJp ZGUtb3B0LnBhdGNoIGIvc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9sbHZtLTAwNC1vdmVycmlkZS1v cHQucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDUxZDBlNGIzMWIzMi4uMDAw MDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvbGx2bTEyL3BhdGNoZXMvbGx2bS0wMDQtb3ZlcnJpZGUt b3B0LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTggKzAsMCBAQAotVGhpcyBhbGxvd3MgdXMg dG8gb3ZlcnJpZGUgdGhlIG9wdGltaXphdGlvbiBsZXZlbCBhcyBub3QgYWxsIHBsYXRmb3JtcyBj YW4KLWRlYWwgd2l0aCAtTzMuCi0KLS0tLSBhL2xsdm0vQ01ha2VMaXN0cy50eHQKLSsrKyBiL2xs dm0vQ01ha2VMaXN0cy50eHQKLUBAIC05MTgsNiArOTE4LDEyIEBAIGlmKCBNSU5HVyBBTkQgTk9U ICIke0NNQUtFX0NYWF9DT01QSUxFUl9JRH0iIE1BVENIRVMgIkNsYW5nIiApCi0gICBsbHZtX3Jl cGxhY2VfY29tcGlsZXJfb3B0aW9uKENNQUtFX0NYWF9GTEFHU19SRUxFQVNFICItTzMiICItTzIi KQotIGVuZGlmKCkKLSAKLStzZXQoVk9JRF9DWFhfT1BUX0ZMQUdTICIiIENBQ0hFIFNUUklORyAi T3B0aW1pemF0aW9uIGxldmVsIHRvIHVzZSIpCi0rCi0raWYgKE5PVCBWT0lEX0NYWF9PUFRfRkxB R1MgU1RSRVFVQUwgIiIpCi0rICAgIGxsdm1fcmVwbGFjZV9jb21waWxlcl9vcHRpb24oQ01BS0Vf Q1hYX0ZMQUdTX1JFTEVBU0UgIi1PMyIgIiR7Vk9JRF9DWFhfT1BUX0ZMQUdTfSIpCi0rZW5kaWYo KQotKwotICMgUHV0IHRoaXMgYmVmb3JlIHRibGdlbi4gRWxzZSB3ZSBoYXZlIGEgY2lyY3VsYXIg ZGVwZW5kZW5jZS4KLSBhZGRfc3ViZGlyZWN0b3J5KGxpYi9EZW1hbmdsZSkKLSBhZGRfc3ViZGly ZWN0b3J5KGxpYi9TdXBwb3J0KQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9s bHZtLTAwNS1wcGMtYmlncGljLnBhdGNoIGIvc3JjcGtncy9sbHZtMTIvcGF0Y2hlcy9sbHZtLTAw NS1wcGMtYmlncGljLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkMzMyNjg3 YjlkOTIuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2xsdm0xMi9wYXRjaGVzL2xsdm0tMDA1 LXBwYy1iaWdwaWMucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwzNiArMCwwIEBACi1Gcm9tIGYz ZGJkZDQ5YzA2YmZhZmMxZDYxMzgwOTRjZjQyODg5YzE0ZDM4YjYgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCi1Gcm9tOiBTYW11ZWwgSG9sbGFuZCA8c2FtdWVsQHNob2xsYW5kLm9yZz4KLURhdGU6 IFN1biwgMyBOb3YgMjAxOSAxMDo1NzoyNyAtMDYwMAotU3ViamVjdDogW1BBVENIXSBbTExWTV1b UG93ZXJQQ10gQXNzdW1lIEJpZ1BJQyBpZiBubyBQSUMgbGV2ZWwgaXMgc3BlY2lmaWVkCi0KLS0t LQotIGxsdm0vbGliL1RhcmdldC9Qb3dlclBDL1BQQ0FzbVByaW50ZXIuY3BwICB8IDIgKy0KLSBs bHZtL2xpYi9UYXJnZXQvUG93ZXJQQy9QUENNQ0luc3RMb3dlci5jcHAgfCAyICstCi0gMiBmaWxl cyBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQg YS9saWIvVGFyZ2V0L1Bvd2VyUEMvUFBDQXNtUHJpbnRlci5jcHAgYi9saWIvVGFyZ2V0L1Bvd2Vy UEMvUFBDQXNtUHJpbnRlci5jcHAKLWluZGV4IGNjZTIxZjMyLi44N2NhNWY5YiAxMDA2NDQKLS0t LSBhL2xsdm0vbGliL1RhcmdldC9Qb3dlclBDL1BQQ0FzbVByaW50ZXIuY3BwCi0rKysgYi9sbHZt L2xpYi9UYXJnZXQvUG93ZXJQQy9QUENBc21QcmludGVyLmNwcAotQEAgLTUyMCw3ICs1MjAsNyBA QCB2b2lkIFBQQ0FzbVByaW50ZXI6OkVtaXRUbHNDYWxsKGNvbnN0IE1hY2hpbmVJbnN0ciAqTUks Ci0gCi0gICAvLyBBZGQgMzI3Njggb2Zmc2V0IHRvIHRoZSBzeW1ib2wgc28gd2UgZm9sbG93IHVw IHRoZSBsYXRlc3QgR09UL1BMVCBBQkkuCi0gICBpZiAoS2luZCA9PSBNQ1N5bWJvbFJlZkV4cHI6 OlZLX1BMVCAmJiBTdWJ0YXJnZXQtPmlzU2VjdXJlUGx0KCkgJiYKLS0gICAgICBNLT5nZXRQSUNM ZXZlbCgpID09IFBJQ0xldmVsOjpCaWdQSUMpCi0rICAgICAgTS0+Z2V0UElDTGV2ZWwoKSAhPSBQ SUNMZXZlbDo6U21hbGxQSUMpCi0gICAgIFRsc1JlZiA9IE1DQmluYXJ5RXhwcjo6Y3JlYXRlQWRk KAotICAgICAgICAgVGxzUmVmLCBNQ0NvbnN0YW50RXhwcjo6Y3JlYXRlKDMyNzY4LCBPdXRDb250 ZXh0KSwgT3V0Q29udGV4dCk7Ci0gICBjb25zdCBNYWNoaW5lT3BlcmFuZCAmTU8gPSBNSS0+Z2V0 T3BlcmFuZCgyKTsKLWRpZmYgLS1naXQgYS9saWIvVGFyZ2V0L1Bvd2VyUEMvUFBDTUNJbnN0TG93 ZXIuY3BwIGIvbGliL1RhcmdldC9Qb3dlclBDL1BQQ01DSW5zdExvd2VyLmNwcAotaW5kZXggNWNj MTgwZDcuLmE1YjAyNTY1IDEwMDY0NAotLS0tIGEvbGx2bS9saWIvVGFyZ2V0L1Bvd2VyUEMvUFBD TUNJbnN0TG93ZXIuY3BwCi0rKysgYi9sbHZtL2xpYi9UYXJnZXQvUG93ZXJQQy9QUENNQ0luc3RM b3dlci5jcHAKLUBAIC0xMTcsNyArMTE3LDcgQEAgc3RhdGljIE1DT3BlcmFuZCBHZXRTeW1ib2xS ZWYoY29uc3QgTWFjaGluZU9wZXJhbmQgJk1PLCBjb25zdCBNQ1N5bWJvbCAqU3ltYm9sLAotICAg Y29uc3QgTUNFeHByICpFeHByID0gTUNTeW1ib2xSZWZFeHByOjpjcmVhdGUoU3ltYm9sLCBSZWZL aW5kLCBDdHgpOwotICAgLy8gSWYgLW1zZWN1cmUtcGx0IC1mUElDLCBhZGQgMzI3NjggdG8gc3lt Ym9sLgotICAgaWYgKFN1YnRhcmdldC0+aXNTZWN1cmVQbHQoKSAmJiBUTS5pc1Bvc2l0aW9uSW5k ZXBlbmRlbnQoKSAmJgotLSAgICAgIE0tPmdldFBJQ0xldmVsKCkgPT0gUElDTGV2ZWw6OkJpZ1BJ QyAmJgotKyAgICAgIE0tPmdldFBJQ0xldmVsKCkgIT0gUElDTGV2ZWw6OlNtYWxsUElDICYmCi0g ICAgICAgTU8uZ2V0VGFyZ2V0RmxhZ3MoKSA9PSBQUENJSTo6TU9fUExUKQotICAgICBFeHByID0K LSAgICAgICAgIE1DQmluYXJ5RXhwcjo6Y3JlYXRlQWRkKEV4cHIsIE1DQ29uc3RhbnRFeHByOjpj cmVhdGUoMzI3NjgsIEN0eCksIEN0eCk7CmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0xMi9wYXRj aGVzL2xsdm0tMDA2LWFhcmNoNjQtbWZfZXhlYy5wYXRjaCBiL3NyY3BrZ3MvbGx2bTEyL3BhdGNo ZXMvbGx2bS0wMDYtYWFyY2g2NC1tZl9leGVjLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCBhMDBhYmQyMTY2NjUuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2xsdm0xMi9w YXRjaGVzL2xsdm0tMDA2LWFhcmNoNjQtbWZfZXhlYy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0x LDI1ICswLDAgQEAKLUZpeCBmYWlsdXJlcyBpbiBBbGxvY2F0aW9uVGVzdHMvTWFwcGVkTWVtb3J5 VGVzdC4qIG9uIGFhcmNoNjQ6Ci0KLSAgICBGYWlsaW5nIFRlc3RzICg4KToKLSAgICAgICAgTExW TS1Vbml0IDo6IFN1cHBvcnQvLi9TdXBwb3J0VGVzdHMvQWxsb2NhdGlvblRlc3RzL01hcHBlZE1l bW9yeVRlc3QuQWxsb2NBbmRSZWxlYXNlLzMKLSAgICAgICAgTExWTS1Vbml0IDo6IFN1cHBvcnQv Li9TdXBwb3J0VGVzdHMvQWxsb2NhdGlvblRlc3RzL01hcHBlZE1lbW9yeVRlc3QuRHVwbGljYXRl TmVhci8zCi0gICAgICAgIExMVk0tVW5pdCA6OiBTdXBwb3J0Ly4vU3VwcG9ydFRlc3RzL0FsbG9j YXRpb25UZXN0cy9NYXBwZWRNZW1vcnlUZXN0LkVuYWJsZWRXcml0ZS8zCi0gICAgICAgIExMVk0t VW5pdCA6OiBTdXBwb3J0Ly4vU3VwcG9ydFRlc3RzL0FsbG9jYXRpb25UZXN0cy9NYXBwZWRNZW1v cnlUZXN0Lk11bHRpcGxlQWxsb2NBbmRSZWxlYXNlLzMKLSAgICAgICAgTExWTS1Vbml0IDo6IFN1 cHBvcnQvLi9TdXBwb3J0VGVzdHMvQWxsb2NhdGlvblRlc3RzL01hcHBlZE1lbW9yeVRlc3QuU3Vj Y2Vzc2l2ZU5lYXIvMwotICAgICAgICBMTFZNLVVuaXQgOjogU3VwcG9ydC8uL1N1cHBvcnRUZXN0 cy9BbGxvY2F0aW9uVGVzdHMvTWFwcGVkTWVtb3J5VGVzdC5VbmFsaWduZWROZWFyLzMKLSAgICAg ICAgTExWTS1Vbml0IDo6IFN1cHBvcnQvLi9TdXBwb3J0VGVzdHMvQWxsb2NhdGlvblRlc3RzL01h cHBlZE1lbW9yeVRlc3QuWmVyb05lYXIvMwotICAgICAgICBMTFZNLVVuaXQgOjogU3VwcG9ydC8u L1N1cHBvcnRUZXN0cy9BbGxvY2F0aW9uVGVzdHMvTWFwcGVkTWVtb3J5VGVzdC5aZXJvU2l6ZU5l YXIvMwotCi1VcHN0cmVhbS1Jc3N1ZTogaHR0cHM6Ly9idWdzLmxsdm0ub3JnL3Nob3dfYnVnLmNn aT9pZD0xNDI3OCNjMTAKLQotLS0tIGEvbGx2bS9saWIvU3VwcG9ydC9Vbml4L01lbW9yeS5pbmMK LSsrKyBiL2xsdm0vbGliL1N1cHBvcnQvVW5peC9NZW1vcnkuaW5jCi1AQCAtNTgsNyArNTgsNyBA QCBzdGF0aWMgaW50IGdldFBvc2l4UHJvdGVjdGlvbkZsYWdzKHVuc2lnbmVkIEZsYWdzKSB7Ci0g ICAgIHJldHVybiBQUk9UX1JFQUQgfCBQUk9UX1dSSVRFIHwgUFJPVF9FWEVDOwotICAgY2FzZSBs bHZtOjpzeXM6Ok1lbW9yeTo6TUZfRVhFQzoKLSAjaWYgKGRlZmluZWQoX19GcmVlQlNEX18pIHx8 IGRlZmluZWQoX19QT1dFUlBDX18pIHx8IGRlZmluZWQgKF9fcHBjX18pIHx8IFwKLS0gICAgIGRl ZmluZWQoX1BPV0VSKSB8fCBkZWZpbmVkKF9BUkNIX1BQQykpCi0rICAgICBkZWZpbmVkKF9QT1dF UikgfHwgZGVmaW5lZChfQVJDSF9QUEMpIHx8IChkZWZpbmVkKF9fbGludXhfXykgJiYgZGVmaW5l ZChfX2FhcmNoNjRfXykpKQotICAgICAvLyBPbiBQb3dlclBDLCBoYXZpbmcgYW4gZXhlY3V0YWJs ZSBwYWdlIHRoYXQgaGFzIG5vIHJlYWQgcGVybWlzc2lvbgotICAgICAvLyBjYW4gaGF2ZSB1bmlu dGVuZGVkIGNvbnNlcXVlbmNlcy4gIFRoZSBmdW5jdGlvbiBJbnZhbGlkYXRlSW5zdHJ1Y3Rpb24t Ci0gICAgIC8vIENhY2hlIHVzZXMgaW5zdHJ1Y3Rpb25zIGRjYmYgYW5kIGljYmksIGJvdGggb2Yg d2hpY2ggYXJlIHRyZWF0ZWQgYnkKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGx2bTEyL3RlbXBsYXRl IGIvc3JjcGtncy9sbHZtMTIvdGVtcGxhdGUKaW5kZXggN2IzNjFiYmJmNWJjLi5lN2U0MGNhZTQx M2UgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvbGx2bTEyL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvbGx2 bTEyL3RlbXBsYXRlCkBAIC0xLDEyNSArMSwxMyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnbGx2 bTEyJwogcGtnbmFtZT1sbHZtMTIKIHZlcnNpb249MTIuMC4xCi1yZXZpc2lvbj0zCi13cmtzcmM9 Imxsdm0tcHJvamVjdC0ke3ZlcnNpb259LnNyYyIKLWJ1aWxkX3dya3NyYz1sbHZtCi1idWlsZF9z dHlsZT1jbWFrZQotY29uZmlndXJlX2FyZ3M9IgotIC1EQ01BS0VfQlVJTERfVFlQRT1SZWxlYXNl IC1Xbm8tZGV2Ci0gLURFTkFCTEVfTElOS0VSX0JVSUxEX0lEPVlFUwotIC1ETExWTV9JTkNMVURF X0RPQ1M9WUVTCi0gLURMTFZNX0JVSUxEX0RPQ1M9WUVTCi0gLURMTFZNX0VOQUJMRV9TUEhJTlg9 WUVTCi0gLURTUEhJTlhfV0FSTklOR1NfQVNfRVJST1JTPU5PCi0gLURMTFZNX0JVSUxEX0xMVk1f RFlMSUI9WUVTCi0gLURMTFZNX0xJTktfTExWTV9EWUxJQj1ZRVMKLSAtRExMVk1fRU5BQkxFX1JU VEk9WUVTCi0gLURMTFZNX0VOQUJMRV9GRkk9WUVTCi0gLURMTFZNX0JJTlVUSUxTX0lOQ0RJUj0v dXNyL2luY2x1ZGUiCi1ob3N0bWFrZWRlcGVuZHM9InBlcmwgcHl0aG9uMyB6bGliLWRldmVsIGxp YmZmaS1kZXZlbCBzd2lnIHB5dGhvbjMtU3BoaW54Ci0gcHl0aG9uMy1yZWNvbW1vbm1hcmsgcHl0 aG9uMy1zcGhpbngtYXV0b21vZGFwaSIKLW1ha2VkZXBlbmRzPSJweXRob24zLWRldmVsIHpsaWIt ZGV2ZWwgZWxmdXRpbHMtZGV2ZWwgbGliZmZpLWRldmVsIGxpYmVkaXQtZGV2ZWwKLSBsaWJ4bWwy LWRldmVsIGJpbnV0aWxzLWRldmVsIGxpYmF0b21pYy1kZXZlbCIKLWRlcGVuZHM9ImxpYmxsdm0x Mj49JHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKLXNob3J0X2Rlc2M9IkxvdyBMZXZlbCBWaXJ0dWFs IE1hY2hpbmUiCityZXZpc2lvbj00CitidWlsZF9zdHlsZT1tZXRhCitzaG9ydF9kZXNjPSJMb3cg TGV2ZWwgVmlydHVhbCBNYWNoaW5lIChyZW1vdmVkIHBhY2thZ2UpIgogbWFpbnRhaW5lcj0icTY2 IDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4iCi1saWNlbnNlPSJBcGFjaGUtMi4wIgorbGljZW5zZT0i bWV0YXBhY2thZ2UiCiBob21lcGFnZT0iaHR0cHM6Ly93d3cubGx2bS5vcmciCi1kaXN0ZmlsZXM9 Imh0dHBzOi8vZ2l0aHViLmNvbS9sbHZtL2xsdm0tcHJvamVjdC9yZWxlYXNlcy9kb3dubG9hZC9s bHZtb3JnLSR7dmVyc2lvbn0vbGx2bS1wcm9qZWN0LSR7dmVyc2lvbn0uc3JjLnRhci54eiIKLWNo ZWNrc3VtPTEyOWNiMjVjZDEzNjc3YWFkOTUxY2U1YzJkZWIwZmU0YWZjMWU5ZDk4OTUwZjUzYjUx YmRjZmI1YTczYWZhMGUKLWxpYjMyZGlzYWJsZWQ9eWVzCi1weXRob25fdmVyc2lvbj0zCi0KLWlm IFsgIiRYQlBTX1RBUkdFVF9MSUJDIiA9ICJtdXNsIiBdOyB0aGVuCi0JY29uZmlndXJlX2FyZ3Mr PSIgLURMSUJDWFhfSEFTX01VU0xfTElCQz1ZRVMiCi0JbWFrZWRlcGVuZHMrPSIgbGliZXhlY2lu Zm8tZGV2ZWwiCi0JZGVwZW5kcys9IiBsaWJleGVjaW5mby1kZXZlbCIKLWZpCi0KLSMgIm9wZXJh bmQgb3V0IG9mIHJhbmdlIiBhc3NlbWJsZXIgZmFpbHVyZXMKLWNhc2UgIiRYQlBTX1RBUkdFVF9N QUNISU5FIiBpbgotCXBwYzY0KikgOzsKLQlwcGMqKSBjb25maWd1cmVfYXJncys9IiAtRENMQU5H X0VOQUJMRV9DTEFOR0Q9T0ZGIiA7OwotZXNhYwotCi1wb3N0X3BhdGNoKCkgewotCSMgdXBkYXRl IGNvbmZpZy5ndWVzcyBmb3IgYmV0dGVyIHBsYXRmb3JtIGRldGVjdGlvbgotCWNwICRYQlBTX0NP TU1PTkRJUi9lbnZpcm9ubWVudC9jb25maWd1cmUvYXV0b21ha2UvY29uZmlnLmd1ZXNzIFwKLQkJ JHt3cmtzcmN9L2xsdm0vY21ha2UKLX0KLQotcHJlX2NvbmZpZ3VyZSgpIHsKLQlsb2NhbCB0cmlw bGV0Ci0KLQkjIFZhc3RseSByZWR1Y2Ugc2l6ZSBvZiBkZWJ1Z2dpbmcgc3ltYm9sczoKLQlDRkxB R1M9JHtDRkxBR1MvIC1nLyAtZzF9Ci0JQ1hYRkxBR1M9JHtDWFhGTEFHUy8gLWcvIC1nMX0KLQot CSMgc2luY2UgZ2NjOSwgdGhlIGJ1aWxkIGxpa2VzIHRvIGJsb3cgdXAgZm9yIHBwYzMyIGFwcGFy ZW50bHkgYmVjYXVzZQotCSMgb2YgY2xhbmcgYmVpbmcgdG9vIGxhcmdlIGZvciBhIDI0LWJpdCBy ZWxhdGl2ZSBjYWxsIHRvIHRoZSBQTFQsIHNvCi0JIyBvcHRpbWl6ZSBmb3Igc2l6ZSBpbnN0ZWFk Ci0JY2FzZSAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiIGluCi0JCXBwYzY0KikgOzsKLQkJbWlwcyot bXVzbHxwcGMqKSBjb25maWd1cmVfYXJncys9IiAtRFZPSURfQ1hYX09QVF9GTEFHUz0tT3MiIDs7 Ci0JZXNhYwotCi0JaWYgWyAiJENST1NTX0JVSUxEIiBdOyB0aGVuCi0JCW1zZ19ub3JtYWwgIkJ1 aWxkaW5nIGhvc3QgdGJsZ2VuXG4iCi0JCW1rZGlyIC1wIGJ1aWxkL0hPU1QKLQkJY2QgYnVpbGQv SE9TVAotCQlDQz0iJEJVSUxEX0NDIiBDWFg9IiRCVUlMRF9DWFgiIENGTEFHUz0iJEJVSUxEX0NG TEFHUyIgXAotCQkJQ1hYRkxBR1M9IiRCVUlMRF9DWFhGTEFHUyIgTERGTEFHUz0iJEJVSUxEX0xE RkxBR1MiIFwKLQkJCWNtYWtlIC4uLy4uIC1EQ01BS0VfQlVJTERfVFlQRT1SZWxlYXNlIFwKLQkJ CS1ETExWTV9FTkFCTEVfUFJPSkVDVFM9JHtfZW5hYmxlZF9wcm9qZWN0c30KLQkJbWFrZSAke21h a2Vqb2JzfSAtQyB1dGlscy9UYWJsZUdlbgotCQlbICIkX2xsZGJfZW5hYmxlIiA9ICJ5ZXMiIF0g JiYgbWFrZSAke21ha2Vqb2JzfSAtQyB0b29scy9sbGRiL3V0aWxzL1RhYmxlR2VuCi0JCWNvbmZp Z3VyZV9hcmdzKz0iIC1ETExWTV9UQUJMRUdFTj0ke3dya3NyY30vbGx2bS9idWlsZC9IT1NUL2Jp bi9sbHZtLXRibGdlbiIKLQkJWyAiJF9sbGRiX2VuYWJsZSIgPSAieWVzIiBdICYmIGNvbmZpZ3Vy ZV9hcmdzKz0iIC1ETExEQl9UQUJMRUdFTj0ke3dya3NyY30vbGx2bS9idWlsZC9IT1NUL2Jpbi9s bGRiLXRibGdlbiIKLQkJY2QgLi4vLi4KLQlmaQotCi0JY2FzZSAiJFhCUFNfVEFSR0VUX01BQ0hJ TkUiIGluCi0JCWk2ODYqKSBfYXJjaD0iWDg2Ijs7Ci0JCXg4Nl82NCopIF9hcmNoPSJYODYiOzsK LQkJYXJtdjUqKSBfYXJjaD0iQXJtdjV0ZSI7OwotCQlhcm12NiopIF9hcmNoPSJBcm12NiI7Owot CQlhcm12NyopIF9hcmNoPSJBcm12NyI7OwotCQlhYXJjaDY0KikgX2FyY2g9IkFBcmNoNjQiOzsK LQkJbWlwcyopIF9hcmNoPSJNaXBzIjs7Ci0JCXBwYyopIF9hcmNoPSJQb3dlclBDIjs7Ci0JCXJp c2N2NjQqKSBfYXJjaD0iUklTQ1Y2NCI7OwotCWVzYWMKLQotCXRyaXBsZXQ9JHtYQlBTX0NST1NT X1RSSVBMRVQ6LSRYQlBTX1RSSVBMRVR9Ci0KLQljb25maWd1cmVfYXJncys9IiAtRExMVk1fVEFS R0VUX0FSQ0g9JHtfYXJjaH0iCi0JY29uZmlndXJlX2FyZ3MrPSIgLURMTFZNX0hPU1RfVFJJUExF PSR7dHJpcGxldH0iCi0JY29uZmlndXJlX2FyZ3MrPSIgLURMTFZNX0RFRkFVTFRfVEFSR0VUX1RS SVBMRT0ke3RyaXBsZXR9IgotfQotCi1kb19pbnN0YWxsKCkgewotCWNkIGJ1aWxkCi0JY21ha2Ug LURDTUFLRV9JTlNUQUxMX1BSRUZJWD0ke0RFU1RESVJ9L3VzciAtUCBjbWFrZV9pbnN0YWxsLmNt YWtlCi0KLQkjIFJlcXVpcmVkIGZvciBtdWx0aWxpYi4KLQlpZiBbICIkWEJQU19UQVJHRVRfTUFD SElORSIgPSAieDg2XzY0IiBdOyB0aGVuCi0JCWZvciBfaGVhZGVyIGluIGxsdm0tY29uZmlnOyBk bwotCQkJbXYgJHtERVNURElSfS91c3IvaW5jbHVkZS9sbHZtL0NvbmZpZy8ke19oZWFkZXJ9eywt NjR9LmgKLQkJCXZpbnN0YWxsICR7RklMRVNESVJ9L2xsdm0tQ29uZmlnLSR7X2hlYWRlcn0uaCA2 NDQgXAotCQkJCXVzci9pbmNsdWRlL2xsdm0vQ29uZmlnICR7X2hlYWRlcn0uaAotCQlkb25lCi0J ZmkKLQotCSMgUmVtb3ZlIGxsdm0tY29uZmlnLWhvc3QgaW4gY3Jvc3MgYnVpbGRzLgotCWlmIFsg IiRDUk9TU19CVUlMRCIgXTsgdGhlbgotCQlybSAtZiAke0RFU1RESVJ9L3Vzci9iaW4vbGx2bS1j b25maWctaG9zdAotCWZpCi19CiAKIGxpYmxsdm0xMl9wYWNrYWdlKCkgewogCXNob3J0X2Rlc2Mr PSIgLSBydW50aW1lIGxpYnJhcnkiCi0JcGtnX2luc3RhbGwoKSB7Ci0JCXZtb3ZlICJ1c3IvbGli L2xpYkxMVk0tKi5zbyoiCi0JfQogfQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtMTIvdXBkYXRl IGIvc3JjcGtncy9sbHZtMTIvdXBkYXRlCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBl OTVjZjI2YjM1ODYuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2xsdm0xMi91cGRhdGUKKysr IC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLXNpdGU9Imh0dHBzOi8vZ2l0aHViLmNvbS9sbHZt L2xsdm0tcHJvamVjdC9yZWxlYXNlcyIKLXBhdHRlcm49Imxsdm1vcmctXEsoXGQrLil7Mn1cZCso LXJjXGQrKT8iCi1pZ25vcmU9IiotcmMqIgoKRnJvbSAyZDUzYTRjNjBjYmUxNjIyNTRkMDlmMDMx MGU5YTM2ZjI4MTJjNGM4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/ QW5kcj1DMz1BOT0yMENlcnF1ZWlyYT89IDxhY2VycXVlaXJhMDIxQGdtYWlsLmNvbT4KRGF0ZTog TW9uLCAyOCBGZWIgMjAyMiAyMTo0Mjo1NSArMDAwMApTdWJqZWN0OiBbUEFUQ0ggMTUvMzFdIG1l c2E6IHJlYnVpbGQgZm9yIGxsdm0xMwoKLS0tCiBzcmNwa2dzL21lc2EvdGVtcGxhdGUgfCAyICst CiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1n aXQgYS9zcmNwa2dzL21lc2EvdGVtcGxhdGUgYi9zcmNwa2dzL21lc2EvdGVtcGxhdGUKaW5kZXgg YzkwNTAwZGU3NDE2Li44ZjA4MjYyZmIxMzUgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvbWVzYS90ZW1w bGF0ZQorKysgYi9zcmNwa2dzL21lc2EvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBs YXRlIGZpbGUgZm9yICdtZXNhJwogcGtnbmFtZT1tZXNhCiB2ZXJzaW9uPTIxLjMuNwotcmV2aXNp b249MQorcmV2aXNpb249MgogYnVpbGRfc3R5bGU9bWVzb24KIGNvbmZpZ3VyZV9hcmdzPSItRGds dm5kPXRydWUgLURzaGFyZWQtZ2xhcGk9ZW5hYmxlZCAtRGdibT1lbmFibGVkIC1EZWdsPWVuYWJs ZWQKICAtRG9zbWVzYT10cnVlIC1EZ2xlczE9ZW5hYmxlZCAtRGdsZXMyPWVuYWJsZWQgLURnbHg9 ZHJpIC1EZHJpMz1lbmFibGVkCgpGcm9tIGY1N2UwNWViZWViZjcwM2RmZWZiZWM4YThjMjg5OWQ5 ZDYzZThiMGQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206ID0/VVRGLTg/cT9BbmRyPUMz PUE5PTIwQ2VycXVlaXJhPz0gPGFjZXJxdWVpcmEwMjFAZ21haWwuY29tPgpEYXRlOiBNb24sIDI4 IEZlYiAyMDIyIDIxOjQ2OjQ4ICswMDAwClN1YmplY3Q6IFtQQVRDSCAxNi8zMV0gaXNwYzogdXBk YXRlIHRvIDEuMTcuMC4KCi0tLQogLi4uL2lzcGMvcGF0Y2hlcy9jbWFrZS1idWlsZC10eXBlLW5v bmUucGF0Y2ggIHwgICAxOCAtCiBzcmNwa2dzL2lzcGMvcGF0Y2hlcy9sbHZtMTItMDAxLnBhdGNo ICAgICAgICAgfCAgIDU3IC0KIHNyY3BrZ3MvaXNwYy9wYXRjaGVzL2xsdm0xMi0wMDIucGF0Y2gg ICAgICAgICB8ICA5MjMgLS0tLS0tLS0KIHNyY3BrZ3MvaXNwYy9wYXRjaGVzL2xsdm0xMi0wMDMu cGF0Y2ggICAgICAgICB8IDE1MDQgLS0tLS0tLS0tLS0tCiBzcmNwa2dzL2lzcGMvcGF0Y2hlcy9s bHZtMTItMDA0LnBhdGNoICAgICAgICAgfCAgIDM0IC0KIHNyY3BrZ3MvaXNwYy9wYXRjaGVzL2xs dm0xMi0wMDUucGF0Y2ggICAgICAgICB8ICAzNzIgLS0tCiBzcmNwa2dzL2lzcGMvcGF0Y2hlcy9s bHZtMTItMDA2LnBhdGNoICAgICAgICAgfCAgMTI2IC0KIHNyY3BrZ3MvaXNwYy9wYXRjaGVzL2xs dm0xMi0wMDcucGF0Y2ggICAgICAgICB8ICAxNjAgLS0KIHNyY3BrZ3MvaXNwYy9wYXRjaGVzL2xs dm0xMi0wMDgucGF0Y2ggICAgICAgICB8ICAxNDkgLS0KIHNyY3BrZ3MvaXNwYy9wYXRjaGVzL2xs dm0xMi0wMDkucGF0Y2ggICAgICAgICB8IDIxMDkgLS0tLS0tLS0tLS0tLS0tLS0KIHNyY3BrZ3Mv aXNwYy90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDggKy0KIDExIGZpbGVz IGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgNTQ1NiBkZWxldGlvbnMoLSkKIGRlbGV0ZSBtb2Rl IDEwMDY0NCBzcmNwa2dzL2lzcGMvcGF0Y2hlcy9jbWFrZS1idWlsZC10eXBlLW5vbmUucGF0Y2gK IGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2lzcGMvcGF0Y2hlcy9sbHZtMTItMDAxLnBhdGNo CiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9pc3BjL3BhdGNoZXMvbGx2bTEyLTAwMi5wYXRj aAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvaXNwYy9wYXRjaGVzL2xsdm0xMi0wMDMucGF0 Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2lzcGMvcGF0Y2hlcy9sbHZtMTItMDA0LnBh dGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9pc3BjL3BhdGNoZXMvbGx2bTEyLTAwNS5w YXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvaXNwYy9wYXRjaGVzL2xsdm0xMi0wMDYu cGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2lzcGMvcGF0Y2hlcy9sbHZtMTItMDA3 LnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9pc3BjL3BhdGNoZXMvbGx2bTEyLTAw OC5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvaXNwYy9wYXRjaGVzL2xsdm0xMi0w MDkucGF0Y2gKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2lzcGMvcGF0Y2hlcy9jbWFrZS1idWlsZC10 eXBlLW5vbmUucGF0Y2ggYi9zcmNwa2dzL2lzcGMvcGF0Y2hlcy9jbWFrZS1idWlsZC10eXBlLW5v bmUucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQxMWUzNTNjNzMxNC4uMDAw MDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvaXNwYy9wYXRjaGVzL2NtYWtlLWJ1aWxkLXR5cGUtbm9u ZS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDE4ICswLDAgQEAKLUluZGV4OiBpc3BjLTEuMTUu MC9DTWFrZUxpc3RzLnR4dAotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGlzcGMtMS4xNS4wLm9yaWcvQ01ha2VM aXN0cy50eHQKLSsrKyBpc3BjLTEuMTUuMC9DTWFrZUxpc3RzLnR4dAotQEAgLTE1NywxMyArMTU3 LDYgQEAgc2V0KE9VVFBVVF9SRUxFQVNFIFJlbGVhc2UvYmluKQotIHNldChDTUFLRV9SVU5USU1F X09VVFBVVF9ESVJFQ1RPUlkgJHtDTUFLRV9DVVJSRU5UX0JJTkFSWV9ESVJ9L2JpbiApCi0gCi0g aWYoQ01BS0VfQlVJTERfVFlQRSkKLS0gICAgIyBWYWxpZGF0ZSBidWlsZCB0eXBlCi0tICAgIHNl dChDT05GSUdVUkFUSU9OX1RZUEVTICJEZWJ1ZztSZWxlYXNlO1JlbFdpdGhEZWJJbmZvIikKLS0K LS0gICAgc3RyaW5nKEZJTkQgIiR7Q09ORklHVVJBVElPTl9UWVBFU30iICIke0NNQUtFX0JVSUxE X1RZUEV9IiBNQVRDSEVEX0NPTkZJRykKLS0gICAgaWYgKCR7TUFUQ0hFRF9DT05GSUd9IEVRVUFM IC0xKQotLSAgICAgICAgIG1lc3NhZ2UoRkFUQUxfRVJST1IgIkNNQUtFX0JVSUxEX1RZUEUgKCR7 Q01BS0VfQlVJTERfVFlQRX0pIGFsbG93cyBvbmx5IHRoZSBmb2xsb3dpbmcgdmFsdWVzOiAke0NP TkZJR1VSQVRJT05fVFlQRVN9IikKLS0gICAgZW5kaWYoKQotIGVsc2UoTk9UIENNQUtFX0JVSUxE X1RZUEUpCi0gICAgIHNldChDTUFLRV9CVUlMRF9UWVBFICJSZWxlYXNlIikKLSAgICAgbWVzc2Fn ZShTVEFUVVMgIkJ1aWxkIHR5cGUgbm90IHNwZWNpZmllZDogVXNlIFJlbGVhc2UgYnkgZGVmYXVs dC4iKQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9pc3BjL3BhdGNoZXMvbGx2bTEyLTAwMS5wYXRjaCBi L3NyY3BrZ3MvaXNwYy9wYXRjaGVzL2xsdm0xMi0wMDEucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDVmMmQzZjVhNDA5ZS4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvaXNw Yy9wYXRjaGVzL2xsdm0xMi0wMDEucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw1NyArMCwwIEBA Ci1Gcm9tIDFjMGY4OWRjY2I3NzRmMjE2YzdmNmU3NmE5OWVlOTA3YTFlNjQxY2IgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCi1Gcm9tOiBEbWl0cnkgQmFib2tpbiA8ZG1pdHJ5LnkuYmFib2tpbkBp bnRlbC5jb20+Ci1EYXRlOiBUdWUsIDIyIERlYyAyMDIwIDE3OjAzOjU5IC0wODAwCi1TdWJqZWN0 OiBbUEFUQ0hdIEZpeCB0byB3b3JrIHdpdGggTExWTSB0cnVuayBhZnRlciBsbHZtL2xsdm0tcHJv amVjdEA0MWMzYjI3MTMKLQotLS0tCi0gc3JjL2N0eC5jcHAgfCAxOCArKysrKysrKysrKystLS0t LS0KLSAxIGZpbGUgY2hhbmdlZCwgMTIgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkKLQot ZGlmZiAtLWdpdCBhL3NyYy9jdHguY3BwIGIvc3JjL2N0eC5jcHAKLWluZGV4IDZmYmI4YjljZi4u OTc3ZTlkMjIyIDEwMDY0NAotLS0tIGEvc3JjL2N0eC5jcHAKLSsrKyBiL3NyYy9jdHguY3BwCi1A QCAtMTQ3MywxMSArMTQ3MywxNSBAQCB2b2lkIEZ1bmN0aW9uRW1pdENvbnRleHQ6OkFkZERlYnVn UG9zKGxsdm06OlZhbHVlICp2YWx1ZSwgY29uc3QgU291cmNlUG9zICpwb3MsCi0gICAgIGxsdm06 Okluc3RydWN0aW9uICppbnN0ID0gbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6SW5zdHJ1Y3Rpb24+KHZh bHVlKTsKLSAgICAgaWYgKGluc3QgIT0gTlVMTCAmJiBtLT5kaUJ1aWxkZXIpIHsKLSAgICAgICAg IFNvdXJjZVBvcyBwID0gcG9zID8gKnBvcyA6IGN1cnJlbnRQb3M7Ci0tICAgICAgICBpZiAocC5m aXJzdF9saW5lICE9IDApCi0rICAgICAgICBpZiAocC5maXJzdF9saW5lICE9IDApIHsKLSAgICAg ICAgICAgICAvLyBJZiBmaXJzdF9saW5lID09IDAsIHRoZW4gd2UncmUgaW4gdGhlIG1pZGRsZSBv ZiBzZXR0aW5nIHVwCi0gICAgICAgICAgICAgLy8gdGhlIHN0YW5kYXJkIGxpYnJhcnkgb3IgdGhl IGxpa2U7IGRvbid0IGFkZCBkZWJ1ZyBwb3NpdGlvbnMKLSAgICAgICAgICAgICAvLyBmb3IgdGhv c2UgZnVuY3Rpb25zCi0tICAgICAgICAgICAgaW5zdC0+c2V0RGVidWdMb2MobGx2bTo6RGVidWdM b2M6OmdldChwLmZpcnN0X2xpbmUsIHAuZmlyc3RfY29sdW1uLCBzY29wZSA/IHNjb3BlIDogR2V0 RElTY29wZSgpKSk7Ci0rICAgICAgICAgICAgc2NvcGUgPSBzY29wZSA/IHNjb3BlIDogR2V0RElT Y29wZSgpOwotKyAgICAgICAgICAgIGxsdm06OkRlYnVnTG9jIGRpTG9jID0KLSsgICAgICAgICAg ICAgICAgbGx2bTo6RElMb2NhdGlvbjo6Z2V0KHNjb3BlLT5nZXRDb250ZXh0KCksIHAuZmlyc3Rf bGluZSwgcC5maXJzdF9jb2x1bW4sIHNjb3BlLCBudWxscHRyLCBmYWxzZSk7Ci0rICAgICAgICAg ICAgaW5zdC0+c2V0RGVidWdMb2MoZGlMb2MpOwotKyAgICAgICAgfQotICAgICB9Ci0gfQotIAot QEAgLTE1MTgsOSArMTUyMiwxMCBAQCB2b2lkIEZ1bmN0aW9uRW1pdENvbnRleHQ6OkVtaXRWYXJp YWJsZURlYnVnSW5mbyhTeW1ib2wgKnN5bSkgewotICAgICBsbHZtOjpESUxvY2FsVmFyaWFibGUg KnZhciA9IG0tPmRpQnVpbGRlci0+Y3JlYXRlQXV0b1ZhcmlhYmxlKAotICAgICAgICAgc2NvcGUs IHN5bS0+bmFtZSwgc3ltLT5wb3MuR2V0RElGaWxlKCksIHN5bS0+cG9zLmZpcnN0X2xpbmUsIGRp VHlwZSwgdHJ1ZSAvKiBwcmVzZXJ2ZSB0aHJvdWdoIG9wdHMgKi8pOwotIAotKyAgICBsbHZtOjpE ZWJ1Z0xvYyBkaUxvYyA9Ci0rICAgICAgICBsbHZtOjpESUxvY2F0aW9uOjpnZXQoc2NvcGUtPmdl dENvbnRleHQoKSwgc3ltLT5wb3MuZmlyc3RfbGluZSwgc3ltLT5wb3MuZmlyc3RfY29sdW1uLCBz Y29wZSwgbnVsbHB0ciwgZmFsc2UpOwotICAgICBsbHZtOjpJbnN0cnVjdGlvbiAqZGVjbGFyZUlu c3QgPQotLSAgICAgICAgbS0+ZGlCdWlsZGVyLT5pbnNlcnREZWNsYXJlKHN5bS0+c3RvcmFnZVB0 ciwgdmFyLCBtLT5kaUJ1aWxkZXItPmNyZWF0ZUV4cHJlc3Npb24oKSwKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpEZWJ1Z0xvYzo6Z2V0KHN5bS0+cG9zLmZpcnN0 X2xpbmUsIHN5bS0+cG9zLmZpcnN0X2NvbHVtbiwgc2NvcGUpLCBiYmxvY2spOwotKyAgICAgICAg bS0+ZGlCdWlsZGVyLT5pbnNlcnREZWNsYXJlKHN5bS0+c3RvcmFnZVB0ciwgdmFyLCBtLT5kaUJ1 aWxkZXItPmNyZWF0ZUV4cHJlc3Npb24oKSwgZGlMb2MsIGJibG9jayk7Ci0gICAgIEFkZERlYnVn UG9zKGRlY2xhcmVJbnN0LCAmc3ltLT5wb3MsIHNjb3BlKTsKLSB9Ci0gCi1AQCAtMTUzNSw5ICsx NTQwLDEwIEBAIHZvaWQgRnVuY3Rpb25FbWl0Q29udGV4dDo6RW1pdEZ1bmN0aW9uUGFyYW1ldGVy RGVidWdJbmZvKFN5bWJvbCAqc3ltLCBpbnQgYXJnTnVtCi0gICAgICAgICBtLT5kaUJ1aWxkZXIt PmNyZWF0ZVBhcmFtZXRlclZhcmlhYmxlKHNjb3BlLCBzeW0tPm5hbWUsIGFyZ051bSArIDEsIHN5 bS0+cG9zLkdldERJRmlsZSgpLCBzeW0tPnBvcy5maXJzdF9saW5lLAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaVR5cGUsIHRydWUgLyogcHJlc2VydmUg dGhyb3VnaCBvcHRzICovLCBmbGFncyk7Ci0gCi0rICAgIGxsdm06OkRlYnVnTG9jIGRpTG9jID0K LSsgICAgICAgIGxsdm06OkRJTG9jYXRpb246OmdldChzY29wZS0+Z2V0Q29udGV4dCgpLCBzeW0t PnBvcy5maXJzdF9saW5lLCBzeW0tPnBvcy5maXJzdF9jb2x1bW4sIHNjb3BlLCBudWxscHRyLCBm YWxzZSk7Ci0gICAgIGxsdm06Okluc3RydWN0aW9uICpkZWNsYXJlSW5zdCA9Ci0tICAgICAgICBt LT5kaUJ1aWxkZXItPmluc2VydERlY2xhcmUoc3ltLT5zdG9yYWdlUHRyLCB2YXIsIG0tPmRpQnVp bGRlci0+Y3JlYXRlRXhwcmVzc2lvbigpLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGxsdm06OkRlYnVnTG9jOjpnZXQoc3ltLT5wb3MuZmlyc3RfbGluZSwgc3ltLT5wb3Mu Zmlyc3RfY29sdW1uLCBzY29wZSksIGJibG9jayk7Ci0rICAgICAgICBtLT5kaUJ1aWxkZXItPmlu c2VydERlY2xhcmUoc3ltLT5zdG9yYWdlUHRyLCB2YXIsIG0tPmRpQnVpbGRlci0+Y3JlYXRlRXhw cmVzc2lvbigpLCBkaUxvYywgYmJsb2NrKTsKLSAgICAgQWRkRGVidWdQb3MoZGVjbGFyZUluc3Qs ICZzeW0tPnBvcywgc2NvcGUpOwotIH0KLSAKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvaXNwYy9wYXRj aGVzL2xsdm0xMi0wMDIucGF0Y2ggYi9zcmNwa2dzL2lzcGMvcGF0Y2hlcy9sbHZtMTItMDAyLnBh dGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwOTAzZjMwZGExMGQuLjAwMDAwMDAw MDAwMAotLS0gYS9zcmNwa2dzL2lzcGMvcGF0Y2hlcy9sbHZtMTItMDAyLnBhdGNoCisrKyAvZGV2 L251bGwKQEAgLTEsOTIzICswLDAgQEAKLUZyb20gMDU5N2E3OWQwODRjMDE0NzgwMTM2ZGE5MDZh ZmUyMWQxNWU5ODJjYiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IERlZXBha1JhamVu ZHJha3VtYXJhbiA8ZGVlcGFrLnJhamVuZHJha3VtYXJhbkBpbnRlbC5jb20+Ci1EYXRlOiBUdWUs IDUgSmFuIDIwMjEgMTM6NTM6MzAgLTA4MDAKLVN1YmplY3Q6IFtQQVRDSF0gUmVtb3ZlIExMVk0g OC4wIGFuZCBMTFZNIDkuMC4gKCMxOTY2KQotCi0tLS0KLSAuYXBwdmV5b3IueW1sICAgICAgICAg ICAgICAgICAgICAgICAgfCAgMyAtLQotIC50cmF2aXMueW1sICAgICAgICAgICAgICAgICAgICAg ICAgICB8ICA3IC0tLQotIENNYWtlTGlzdHMudHh0ICAgICAgICAgICAgICAgICAgICAgICB8IDEy ICsrLS0tLQotIHNyYy9hc3QuY3BwICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA0IC0tCi0g c3JjL2N0eC5jcHAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMzAgLS0tLS0tLS0tLS0tLQot IHNyYy9nZW4vR2xvYmFsc0xvY2FsaXphdGlvbi5jcHAgICAgICB8ICA0IC0tCi0gc3JjL2lzcGMu Y3BwICAgICAgICAgICAgICAgICAgICAgICAgIHwgMjAgLS0tLS0tLS0tCi0gc3JjL2lzcGMuaCAg ICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDMgKy0KLSBzcmMvaXNwY192ZXJzaW9uLmggICAg ICAgICAgICAgICAgICAgfCAgNCArLQotIHNyYy9tYWluLmNwcCAgICAgICAgICAgICAgICAgICAg ICAgICB8IDEzIC0tLS0tLQotIHNyYy9tb2R1bGUuY3BwICAgICAgICAgICAgICAgICAgICAgICB8 IDI3IC0tLS0tLS0tLS0tLQotIHNyYy9tb2R1bGUuaCAgICAgICAgICAgICAgICAgICAgICAgICB8 ICAyIC0KLSBzcmMvb3B0LmNwcCAgICAgICAgICAgICAgICAgICAgICAgICAgfCA2NCArKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gc3JjL3R5cGUuY3BwICAgICAgICAgICAgICAgICAgICAg ICAgIHwgMTAgKystLS0KLSB0ZXN0cy9saXQtdGVzdHMvMTc3MS5pc3BjICAgICAgICAgICAgfCAg MSAtCi0gdGVzdHMvbGl0LXRlc3RzLzE4NDQuaXNwYyAgICAgICAgICAgIHwgIDMgLS0KLSB0ZXN0 cy9saXQtdGVzdHMvMTkyNi5pc3BjICAgICAgICAgICAgfCAgMiAtCi0gdGVzdHMvbGl0LXRlc3Rz L2NwdXNfeDg2LmlzcGMgICAgICAgIHwgIDIgKwotIHRlc3RzL2xpdC10ZXN0cy9jcHVzX3g4Nl9s bHZtMTAuaXNwYyB8IDExIC0tLS0tCi0gdGVzdHMvbGl0LXRlc3RzL2xpdC5jZmcgICAgICAgICAg ICAgIHwgIDUgLS0tCi0gMjAgZmlsZXMgY2hhbmdlZCwgMTQgaW5zZXJ0aW9ucygrKSwgMjEzIGRl bGV0aW9ucygtKQotIGRlbGV0ZSBtb2RlIDEwMDY0NCB0ZXN0cy9saXQtdGVzdHMvY3B1c194ODZf bGx2bTEwLmlzcGMKLQotZGlmZiAtLWdpdCBhLy5hcHB2ZXlvci55bWwgYi8uYXBwdmV5b3IueW1s Ci1pbmRleCA0NTFhN2IzZTAuLjc5NDVjY2EyYSAxMDA2NDQKLS0tLSBhLy5hcHB2ZXlvci55bWwK LSsrKyBiLy5hcHB2ZXlvci55bWwKLUBAIC00MSw4ICs0MSw2IEBAIGVudmlyb25tZW50OgotICAg ICAgIExMVk1fVkVSU0lPTjogbGF0ZXN0Ci0gICAgIC0gQVBQVkVZT1JfQlVJTERfV09SS0VSX0lN QUdFOiBWaXN1YWwgU3R1ZGlvIDIwMTkKLSAgICAgICBMTFZNX1ZFUlNJT046IDEwLjAKLS0gICAg LSBBUFBWRVlPUl9CVUlMRF9XT1JLRVJfSU1BR0U6IFZpc3VhbCBTdHVkaW8gMjAxOQotLSAgICAg IExMVk1fVkVSU0lPTjogOS4wCi0gCi0gZm9yOgotIC0KLUBAIC02Miw3ICs2MCw2IEBAIGZvcjoK LSAgICAgICAgIGlmICIlQVBQVkVZT1JfQlVJTERfV09SS0VSX0lNQUdFJSI9PSJWaXN1YWwgU3R1 ZGlvIDIwMTkiICggKHNldCBnZW5lcmF0b3I9IlZpc3VhbCBTdHVkaW8gMTYiKSAmIChzZXQgdnN2 ZXJzaW9uPTIwMTkpKQotICAgICAgICAgc2V0IExMVk1fVEFSPWxsdm0tMTEuMC4wLXdpbi52czIw MTktUmVsZWFzZStBc3NlcnRzLXg4Ni5hcm0ud2FzbS43egotICAgICAgICAgaWYgIiVMTFZNX1ZF UlNJT04lIj09IjEwLjAiIChzZXQgTExWTV9UQVI9bGx2bS0xMC4wLjEtd2luLnZzMjAxOS1SZWxl YXNlK0Fzc2VydHMteDg2LmFybS53YXNtLnppcCkKLS0gICAgICAgIGlmICIlTExWTV9WRVJTSU9O JSI9PSI5LjAiIChzZXQgTExWTV9UQVI9bGx2bS05LjAuMS13aW4udnMyMDE3LVJlbGVhc2UrQXNz ZXJ0cy14ODYuYXJtLndhc20uemlwKQotICAgaW5zdGFsbDoKLSAgICAgLSBwczogY2hvY28gaW5z dGFsbCAtLW5vLXByb2dyZXNzIHdpbmZsZXhiaXNvbjMgd2dldCA3emlwCi0gICAgIC0gY21kOiB8 LQotZGlmZiAtLWdpdCBhLy50cmF2aXMueW1sIGIvLnRyYXZpcy55bWwKLWluZGV4IDJlOTYwMTdh Ni4uM2E2Yjg1MjY0IDEwMDY0NAotLS0tIGEvLnRyYXZpcy55bWwKLSsrKyBiLy50cmF2aXMueW1s Ci1AQCAtMTA4LDEzICsxMDgsNiBAQCBqb2JzOgotICAgICAgICAgLSBMTFZNX1RBUj1sbHZtLTEw LjAuMS11YnVudHUxNi4wNC1SZWxlYXNlK0Fzc2VydHMteDg2LmFybS53YXNtLnRhci54egotICAg ICAgICAgLSBMTFZNX1JFUE89aHR0cHM6Ly9naXRodWIuY29tL2RiYWJva2luL2xsdm0tcHJvamVj dAotICAgICAgICAgLSBJU1BDX0hPTUU9JFRSQVZJU19CVUlMRF9ESVIKLS0gICAgIyBMTFZNIDku MCArIFVidW50dSAxNi4wNDogYnVpbGQsIGxpdCB0ZXN0cywgZXhhbXBsZXMgKGJ1aWxkICsgcnVu KSwgYmVuY2htYXJrcyAoYnVpbGQgKyB0cmlhbCBydW4pCi0tICAgIC0gPDw6ICpteV90YWcKLS0g ICAgICBlbnY6Ci0tICAgICAgICAtIExMVk1fVkVSU0lPTj05LjAgT1M9VWJ1bnR1MTYuMDQKLS0g ICAgICAgIC0gTExWTV9UQVI9bGx2bS05LjAuMS11YnVudHUxNi4wNC1SZWxlYXNlK0Fzc2VydHMt eDg2LmFybS53YXNtLnRhci54egotLSAgICAgICAgLSBMTFZNX1JFUE89aHR0cHM6Ly9naXRodWIu Y29tL2RiYWJva2luL2xsdm0tcHJvamVjdAotLSAgICAgICAgLSBJU1BDX0hPTUU9JFRSQVZJU19C VUlMRF9ESVIKLSAgICAgIyBXQVNNIGVuYWJsZWQgYnVpbGQKLSAgICAgIyBMTFZNIDExLjAgKyBV YnVudHUgMTYuMDQ6IGJ1aWxkLCBsaXQgdGVzdHMsIGV4YW1wbGVzIChidWlsZCksIGJlbmNobWFy a3MgKGJ1aWxkICsgdHJpYWwgcnVuKQotICAgICAtIDw8OiAqbXlfdGFnCi1kaWZmIC0tZ2l0IGEv Q01ha2VMaXN0cy50eHQgYi9DTWFrZUxpc3RzLnR4dAotaW5kZXggNWZhODYzZmNmLi5hNmIzZWQy NTEgMTAwNjQ0Ci0tLS0gYS9DTWFrZUxpc3RzLnR4dAotKysrIGIvQ01ha2VMaXN0cy50eHQKLUBA IC0yNDEsMTAgKzI0MSw4IEBAIGlmIChYODZfRU5BQkxFRCkKLSAgICAgICAgIGF2eDItaTh4MzIg YXZ4Mi1pMTZ4MTYKLSAgICAgICAgIGF2eDItaTMyeDQgYXZ4Mi1pMzJ4OCBhdngyLWkzMngxNiBh dngyLWk2NHg0Ci0gICAgICAgICBhdng1MTJrbmwtaTMyeDE2Ci0tICAgICAgICBhdng1MTJza3gt aTMyeDE2IGF2eDUxMnNreC1pMzJ4OCkKLS0gICAgaWYgKCR7TExWTV9WRVJTSU9OX05VTUJFUn0g VkVSU0lPTl9HUkVBVEVSX0VRVUFMICIxMC4wLjAiKQotLSAgICAgICAgbGlzdChBUFBFTkQgSVNQ Q19UQVJHRVRTIGF2eDUxMnNreC1pOHg2NCBhdng1MTJza3gtaTE2eDMyKQotLSAgICBlbmRpZigp Ci0rICAgICAgICBhdng1MTJza3gtaTMyeDE2IGF2eDUxMnNreC1pMzJ4OAotKyAgICAgICAgYXZ4 NTEyc2t4LWk4eDY0IGF2eDUxMnNreC1pMTZ4MzIpCi0gZW5kaWYoKQotIGlmIChBUk1fRU5BQkxF RCkKLSAgICAgbGlzdChBUFBFTkQgSVNQQ19UQVJHRVRTIG5lb24taTh4MTYgbmVvbi1pMTZ4OCBu ZW9uLWkzMng0IG5lb24taTMyeDgpCi1AQCAtMjU5LDExICsyNTcsNyBAQCBpZiAoV0FTTV9FTkFC TEVEKQotIGVuZGlmKCkKLSAKLSBzZXQoQ0xBTkdfTElCUkFSWV9MSVNUIGNsYW5nRnJvbnRlbmQg Y2xhbmdEcml2ZXIgY2xhbmdTZXJpYWxpemF0aW9uIGNsYW5nUGFyc2UgY2xhbmdTZW1hIGNsYW5n QW5hbHlzaXMgY2xhbmdBU1QgY2xhbmdCYXNpYyBjbGFuZ0VkaXQgY2xhbmdMZXgpCi0tc2V0KExM Vk1fQ09NUE9ORU5UUyBlbmdpbmUgaXBvIGJpdHJlYWRlciBiaXR3cml0ZXIgaW5zdHJ1bWVudGF0 aW9uIGxpbmtlciBvcHRpb24pCi0tCi0taWYgKCR7TExWTV9WRVJTSU9OX05VTUJFUn0gVkVSU0lP Tl9HUkVBVEVSX0VRVUFMICIxMC4wLjAiKQotLSAgICBsaXN0KEFQUEVORCBMTFZNX0NPTVBPTkVO VFMgZnJvbnRlbmRvcGVubXApCi0tZW5kaWYoKQotK3NldChMTFZNX0NPTVBPTkVOVFMgZW5naW5l IGlwbyBiaXRyZWFkZXIgYml0d3JpdGVyIGluc3RydW1lbnRhdGlvbiBsaW5rZXIgb3B0aW9uIGZy b250ZW5kb3Blbm1wKQotIAotIGlmIChYODZfRU5BQkxFRCkKLSAgICAgbGlzdChBUFBFTkQgTExW TV9DT01QT05FTlRTIHg4NikKLWRpZmYgLS1naXQgYS9zcmMvYXN0LmNwcCBiL3NyYy9hc3QuY3Bw Ci1pbmRleCAyMGY3NWEyOWMuLjVhNDNjNDg1NCAxMDA2NDQKLS0tLSBhL3NyYy9hc3QuY3BwCi0r KysgYi9zcmMvYXN0LmNwcAotQEAgLTQ0LDkgKzQ0LDcgQEAKLSAjaW5jbHVkZSAic3ltLmgiCi0g I2luY2x1ZGUgInV0aWwuaCIKLSAKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZN XzEwXzAKLSAjaW5jbHVkZSA8bGx2bS9TdXBwb3J0L1RpbWVQcm9maWxlci5oPgotLSNlbmRpZgot IC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLwotIC8vIEFTVE5vZGUKLSAKLUBAIC02Miw5ICs2MCw3IEBAIHZv aWQgQVNUOjpBZGRGdW5jdGlvbihTeW1ib2wgKnN5bSwgU3RtdCAqY29kZSkgewotIH0KLSAKLSB2 b2lkIEFTVDo6R2VuZXJhdGVJUigpIHsKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19M TFZNXzEwXzAKLSAgICAgbGx2bTo6VGltZVRyYWNlU2NvcGUgVGltZVNjb3BlKCJHZW5lcmF0ZUlS Iik7Ci0tI2VuZGlmCi0gICAgIGZvciAodW5zaWduZWQgaW50IGkgPSAwOyBpIDwgZnVuY3Rpb25z LnNpemUoKTsgKytpKQotICAgICAgICAgZnVuY3Rpb25zW2ldLT5HZW5lcmF0ZUlSKCk7Ci0gfQot ZGlmZiAtLWdpdCBhL3NyYy9jdHguY3BwIGIvc3JjL2N0eC5jcHAKLWluZGV4IDk3N2U5ZDIyMi4u NDJjNGVhMDlkIDEwMDY0NAotLS0tIGEvc3JjL2N0eC5jcHAKLSsrKyBiL3NyYy9jdHguY3BwCi1A QCAtMzA5LDIxICszMDksMTMgQEAgRnVuY3Rpb25FbWl0Q29udGV4dDo6RnVuY3Rpb25FbWl0Q29u dGV4dChGdW5jdGlvbiAqZnVuYywgU3ltYm9sICpmdW5TeW0sIGxsdm06OkYKLSAgICAgICAgICAg ICBjaGFyIGJ1ZlsyNTZdOwotICAgICAgICAgICAgIHNucHJpbnRmKGJ1Ziwgc2l6ZW9mKGJ1Ziks ICJfX29mZl9hbGxfb25fbWFza18lcyIsIGctPnRhcmdldC0+R2V0SVNBU3RyaW5nKCkpOwotIAot LSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA8PSBJU1BDX0xMVk1fOF8wCi0tICAgICAgICAgICAgbGx2 bTo6Q29uc3RhbnQgKm9mZkZ1bmMgPSBtLT5tb2R1bGUtPmdldE9ySW5zZXJ0RnVuY3Rpb24oYnVm LCBMTFZNVHlwZXM6OlZvaWRUeXBlKTsKLS0jZWxzZSAvLyBMTFZNIDkuMCsKLSAgICAgICAgICAg ICBsbHZtOjpGdW5jdGlvbkNhbGxlZSBvZmZGdW5jQ2FsbGVlID0gbS0+bW9kdWxlLT5nZXRPcklu c2VydEZ1bmN0aW9uKGJ1ZiwgTExWTVR5cGVzOjpWb2lkVHlwZSk7Ci0gICAgICAgICAgICAgbGx2 bTo6Q29uc3RhbnQgKm9mZkZ1bmMgPSBsbHZtOjpjYXN0PGxsdm06OkNvbnN0YW50PihvZmZGdW5j Q2FsbGVlLmdldENhbGxlZSgpKTsKLS0jZW5kaWYKLSAgICAgICAgICAgICBBc3NlcnRQb3MoY3Vy cmVudFBvcywgbGx2bTo6aXNhPGxsdm06OkZ1bmN0aW9uPihvZmZGdW5jKSk7Ci0gICAgICAgICAg ICAgbGx2bTo6QmFzaWNCbG9jayAqb2ZmQkIgPSBsbHZtOjpCYXNpY0Jsb2NrOjpDcmVhdGUoKmct PmN0eCwgImVudHJ5IiwgKGxsdm06OkZ1bmN0aW9uICopb2ZmRnVuYywgMCk7Ci0gICAgICAgICAg ICAgbGx2bTo6U3RvcmVJbnN0ICppbnN0ID0gbmV3IGxsdm06OlN0b3JlSW5zdChMTFZNTWFza0Fs bE9mZiwgZ2xvYmFsQWxsT25NYXNrUHRyLCBvZmZCQik7Ci0gICAgICAgICAgICAgaWYgKGctPm9w dC5mb3JjZUFsaWduZWRNZW1vcnkpIHsKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPD0gSVNQQ19M TFZNXzlfMAotLSAgICAgICAgICAgICAgICBpbnN0LT5zZXRBbGlnbm1lbnQoZy0+dGFyZ2V0LT5n ZXROYXRpdmVWZWN0b3JBbGlnbm1lbnQoKSk7Ci0tI2Vsc2UgLy8gTExWTSAxMC4wKwotICAgICAg ICAgICAgICAgICBpbnN0LT5zZXRBbGlnbm1lbnQobGx2bTo6TWF5YmVBbGlnbihnLT50YXJnZXQt PmdldE5hdGl2ZVZlY3RvckFsaWdubWVudCgpKS52YWx1ZU9yT25lKCkpOwotLSNlbmRpZgotICAg ICAgICAgICAgIH0KLSAgICAgICAgICAgICBsbHZtOjpSZXR1cm5JbnN0OjpDcmVhdGUoKmctPmN0 eCwgb2ZmQkIpOwotICAgICAgICAgfQotQEAgLTIyODgsMTEgKzIyODAsNyBAQCBsbHZtOjpWYWx1 ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6TG9hZEluc3QobGx2bTo6VmFsdWUgKnB0ciwgY29uc3Qg VHlwZSAqdHlwZSwgYwotICNlbmRpZgotIAotICAgICBpZiAoZy0+b3B0LmZvcmNlQWxpZ25lZE1l bW9yeSAmJiBsbHZtOjpkeW5fY2FzdDxsbHZtOjpWZWN0b3JUeXBlPihwdC0+Z2V0RWxlbWVudFR5 cGUoKSkpIHsKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPD0gSVNQQ19MTFZNXzlfMAotLSAgICAg ICAgaW5zdC0+c2V0QWxpZ25tZW50KGctPnRhcmdldC0+Z2V0TmF0aXZlVmVjdG9yQWxpZ25tZW50 KCkpOwotLSNlbHNlIC8vIExMVk0gMTAuMCsKLSAgICAgICAgIGluc3QtPnNldEFsaWdubWVudChs bHZtOjpNYXliZUFsaWduKGctPnRhcmdldC0+Z2V0TmF0aXZlVmVjdG9yQWxpZ25tZW50KCkpLnZh bHVlT3JPbmUoKSk7Ci0tI2VuZGlmCi0gICAgIH0KLSAKLSAgICAgQWRkRGVidWdQb3MoaW5zdCk7 Ci1AQCAtMjQzMSwxMSArMjQxOSw3IEBAIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0 OjpMb2FkSW5zdChsbHZtOjpWYWx1ZSAqcHRyLCBsbHZtOjpWYWx1ZSAqbWFzaywKLSAgICAgICAg ICAgICAgICAgLy8gdnMgdGhlIHByb3BlciBhbGlnbm1lbnQgaW4gcHJhY3RpY2UuKQotICAgICAg ICAgICAgICAgICBpbnQgYWxpZ24gPSAxOwotIAotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA8PSBJ U1BDX0xMVk1fOV8wCi0tICAgICAgICAgICAgICAgIGluc3QtPnNldEFsaWdubWVudChhbGlnbik7 Ci0tI2Vsc2UgLy8gTExWTSAxMC4wKwotICAgICAgICAgICAgICAgICBpbnN0LT5zZXRBbGlnbm1l bnQobGx2bTo6TWF5YmVBbGlnbihhbGlnbikudmFsdWVPck9uZSgpKTsKLS0jZW5kaWYKLSAgICAg ICAgICAgICB9Ci0gCi0gICAgICAgICAgICAgQWRkRGVidWdQb3MoaW5zdCk7Ci1AQCAtMjY0OSwx MSArMjYzMyw3IEBAIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpBbGxvY2FJbnN0 KGxsdm06OlR5cGUgKmxsdm1UeXBlLCBjb25zdCBjaGFyICpuCi0gICAgICAgICBhbGlnbiA9IGct PnRhcmdldC0+Z2V0TmF0aXZlVmVjdG9yQWxpZ25tZW50KCk7Ci0gCi0gICAgIGlmIChhbGlnbiAh PSAwKSB7Ci0tI2lmIElTUENfTExWTV9WRVJTSU9OIDw9IElTUENfTExWTV85XzAKLS0gICAgICAg IGluc3QtPnNldEFsaWdubWVudChhbGlnbik7Ci0tI2Vsc2UgLy8gTExWTSAxMC4wKwotICAgICAg ICAgaW5zdC0+c2V0QWxpZ25tZW50KGxsdm06Ok1heWJlQWxpZ24oYWxpZ24pLnZhbHVlT3JPbmUo KSk7Ci0tI2VuZGlmCi0gICAgIH0KLSAgICAgLy8gRG9uJ3QgYWRkIGRlYnVnZ2luZyBpbmZvIHRv IGFsbG9jYSBpbnN0cnVjdGlvbnMKLSAgICAgcmV0dXJuIGluc3Q7Ci1AQCAtMjkyNiwxMSArMjkw Niw3IEBAIHZvaWQgRnVuY3Rpb25FbWl0Q29udGV4dDo6U3RvcmVJbnN0KGxsdm06OlZhbHVlICp2 YWx1ZSwgbGx2bTo6VmFsdWUgKnB0ciwgY29uc3QKLSAgICAgbGx2bTo6U3RvcmVJbnN0ICppbnN0 ID0gbmV3IGxsdm06OlN0b3JlSW5zdCh2YWx1ZSwgcHRyLCBiYmxvY2spOwotIAotICAgICBpZiAo Zy0+b3B0LmZvcmNlQWxpZ25lZE1lbW9yeSAmJiBsbHZtOjpkeW5fY2FzdDxsbHZtOjpWZWN0b3JU eXBlPihwdC0+Z2V0RWxlbWVudFR5cGUoKSkpIHsKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPD0g SVNQQ19MTFZNXzlfMAotLSAgICAgICAgaW5zdC0+c2V0QWxpZ25tZW50KGctPnRhcmdldC0+Z2V0 TmF0aXZlVmVjdG9yQWxpZ25tZW50KCkpOwotLSNlbHNlIC8vIExMVk0gMTAuMCsKLSAgICAgICAg IGluc3QtPnNldEFsaWdubWVudChsbHZtOjpNYXliZUFsaWduKGctPnRhcmdldC0+Z2V0TmF0aXZl VmVjdG9yQWxpZ25tZW50KCkpLnZhbHVlT3JPbmUoKSk7Ci0tI2VuZGlmCi0gICAgIH0KLSAKLSAj aWZkZWYgSVNQQ19HRU5YX0VOQUJMRUQKLUBAIC0zMDI1LDE2ICszMDAxLDEwIEBAIHZvaWQgRnVu Y3Rpb25FbWl0Q29udGV4dDo6TWVtY3B5SW5zdChsbHZtOjpWYWx1ZSAqZGVzdCwgbGx2bTo6VmFs dWUgKnNyYywgbGx2bTo6Ci0gICAgIH0KLSAgICAgaWYgKGFsaWduID09IE5VTEwpCi0gICAgICAg ICBhbGlnbiA9IExMVk1JbnQzMigxKTsKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPD0gSVNQQ19M TFZNXzhfMAotLSAgICBsbHZtOjpDb25zdGFudCAqbWNGdW5jID0KLS0gICAgICAgIG0tPm1vZHVs ZS0+Z2V0T3JJbnNlcnRGdW5jdGlvbigibGx2bS5tZW1jcHkucDBpOC5wMGk4Lmk2NCIsIExMVk1U eXBlczo6Vm9pZFR5cGUsIExMVk1UeXBlczo6Vm9pZFBvaW50ZXJUeXBlLAotLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIExMVk1UeXBlczo6Vm9pZFBvaW50ZXJUeXBlLCBM TFZNVHlwZXM6OkludDY0VHlwZSwgTExWTVR5cGVzOjpCb29sVHlwZSk7Ci0tI2Vsc2UgLy8gTExW TSA5LjArCi0gICAgIGxsdm06OkZ1bmN0aW9uQ2FsbGVlIG1jRnVuY0NhbGxlZSA9Ci0gICAgICAg ICBtLT5tb2R1bGUtPmdldE9ySW5zZXJ0RnVuY3Rpb24oImxsdm0ubWVtY3B5LnAwaTgucDBpOC5p NjQiLCBMTFZNVHlwZXM6OlZvaWRUeXBlLCBMTFZNVHlwZXM6OlZvaWRQb2ludGVyVHlwZSwKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMTFZNVHlwZXM6OlZvaWRQb2lu dGVyVHlwZSwgTExWTVR5cGVzOjpJbnQ2NFR5cGUsIExMVk1UeXBlczo6Qm9vbFR5cGUpOwotICAg ICBsbHZtOjpDb25zdGFudCAqbWNGdW5jID0gbGx2bTo6Y2FzdDxsbHZtOjpDb25zdGFudD4obWNG dW5jQ2FsbGVlLmdldENhbGxlZSgpKTsKLS0jZW5kaWYKLSAgICAgQXNzZXJ0UG9zKGN1cnJlbnRQ b3MsIG1jRnVuYyAhPSBOVUxMKTsKLSAgICAgQXNzZXJ0UG9zKGN1cnJlbnRQb3MsIGxsdm06Omlz YTxsbHZtOjpGdW5jdGlvbj4obWNGdW5jKSk7Ci0gCi1kaWZmIC0tZ2l0IGEvc3JjL2dlbi9HbG9i YWxzTG9jYWxpemF0aW9uLmNwcCBiL3NyYy9nZW4vR2xvYmFsc0xvY2FsaXphdGlvbi5jcHAKLWlu ZGV4IDE5M2E2NjI4OS4uYTE3NmU5NDYyIDEwMDY0NAotLS0tIGEvc3JjL2dlbi9HbG9iYWxzTG9j YWxpemF0aW9uLmNwcAotKysrIGIvc3JjL2dlbi9HbG9iYWxzTG9jYWxpemF0aW9uLmNwcAotQEAg LTQ3MCwxMSArNDcwLDcgQEAgdm9pZCBHbG9iYWxzTG9jYWxpemF0aW9uOjpMb2NhbGl6ZUdsb2Jh bHMoTG9jYWxpemF0aW9uSW5mbyAmTEkpIHsKLSAgICAgICAgIEluc3RydWN0aW9uICZGaXJzdEkg PSAqRm4tPmdldEVudHJ5QmxvY2soKS5iZWdpbigpOwotICAgICAgICAgVHlwZSAqRWxlbVR5ID0g R1YtPmdldFR5cGUoKS0+Z2V0RWxlbWVudFR5cGUoKTsKLSAgICAgICAgIEFsbG9jYUluc3QgKkFs bG9jYSA9IG5ldyBBbGxvY2FJbnN0KEVsZW1UeSwgMCwgR1YtPmdldE5hbWUoKSArICIubG9jYWwi LCAmRmlyc3RJKTsKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPD0gSVNQQ19MTFZNXzlfMAotLSAg ICAgICAgQWxsb2NhLT5zZXRBbGlnbm1lbnQoR1YtPmdldEFsaWdubWVudCgpKTsKLS0jZWxzZSAv LyBMTFZNIDEwLjArCi0gICAgICAgICBBbGxvY2EtPnNldEFsaWdubWVudChsbHZtOjpNYXliZUFs aWduKEdWLT5nZXRBbGlnbm1lbnQoKSkpOwotLSNlbmRpZgotICAgICAgICAgaWYgKCFpc2E8VW5k ZWZWYWx1ZT4oR1YtPmdldEluaXRpYWxpemVyKCkpKQotICAgICAgICAgICAgIG5ldyBTdG9yZUlu c3QoR1YtPmdldEluaXRpYWxpemVyKCksIEFsbG9jYSwgJkZpcnN0SSk7Ci0gCi1kaWZmIC0tZ2l0 IGEvc3JjL2lzcGMuY3BwIGIvc3JjL2lzcGMuY3BwCi1pbmRleCBlMmQwZjIwNmUuLmZhYzUyMzNm NyAxMDA2NDQKLS0tLSBhL3NyYy9pc3BjLmNwcAotKysrIGIvc3JjL2lzcGMuY3BwCi1AQCAtMjcy LDkgKzI3Miw3IEBAIHR5cGVkZWYgZW51bSB7Ci0gICAgIENQVV9TaWx2ZXJtb250LAotIAotICAg ICBDUFVfSUNYLAotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTBfMAotICAg ICBDUFVfVEdMLAotLSNlbmRpZgotICNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1f MTJfMAotICAgICBDUFVfQURMLAotICAgICBDUFVfU1BSLAotQEAgLTM2NSwxMCArMzYzLDggQEAg Y2xhc3MgQWxsQ1BVcyB7Ci0gCi0gICAgICAgICBuYW1lc1tDUFVfSUNYXS5wdXNoX2JhY2soImlj ZWxha2Utc2VydmVyIik7Ci0gICAgICAgICBuYW1lc1tDUFVfSUNYXS5wdXNoX2JhY2soImljeCIp OwotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTBfMAotICAgICAgICAgbmFt ZXNbQ1BVX1RHTF0ucHVzaF9iYWNrKCJ0aWdlcmxha2UiKTsKLSAgICAgICAgIG5hbWVzW0NQVV9U R0xdLnB1c2hfYmFjaygidGdsIik7Ci0tI2VuZGlmCi0gI2lmIElTUENfTExWTV9WRVJTSU9OID49 IElTUENfTExWTV8xMl8wCi0gICAgICAgICBuYW1lc1tDUFVfQURMXS5wdXNoX2JhY2soImFsZGVy bGFrZSIpOwotICAgICAgICAgbmFtZXNbQ1BVX0FETF0ucHVzaF9iYWNrKCJhZGwiKTsKLUBAIC00 MTEsMTEgKzQwNyw5IEBAIGNsYXNzIEFsbENQVXMgewotICAgICAgICAgY29tcGF0W0NQVV9BRExd ID0gU2V0KENQVV9BREwsIENQVV94ODZfNjQsIENQVV9Cb25uZWxsLCBDUFVfUGVucnluLCBDUFVf Q29yZTIsIENQVV9OZWhhbGVtLCBDUFVfU2lsdmVybW9udCwKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBDUFVfU2FuZHlCcmlkZ2UsIENQVV9JdnlCcmlkZ2UsIENQVV9IYXN3ZWxsLCBD UFVfQnJvYWR3ZWxsLCBDUFVfTm9uZSk7Ci0gI2VuZGlmCi0tI2lmIElTUENfTExWTV9WRVJTSU9O ID49IElTUENfTExWTV8xMF8wCi0gICAgICAgICBjb21wYXRbQ1BVX1RHTF0gPQotICAgICAgICAg ICAgIFNldChDUFVfVEdMLCBDUFVfeDg2XzY0LCBDUFVfQm9ubmVsbCwgQ1BVX1BlbnJ5biwgQ1BV X0NvcmUyLCBDUFVfTmVoYWxlbSwgQ1BVX1NpbHZlcm1vbnQsIENQVV9TYW5keUJyaWRnZSwKLSAg ICAgICAgICAgICAgICAgQ1BVX0l2eUJyaWRnZSwgQ1BVX0hhc3dlbGwsIENQVV9Ccm9hZHdlbGws IENQVV9TS1gsIENQVV9JQ0wsIENQVV9JQ1gsIENQVV9Ob25lKTsKLS0jZW5kaWYKLSAgICAgICAg IGNvbXBhdFtDUFVfSUNYXSA9IFNldChDUFVfSUNYLCBDUFVfeDg2XzY0LCBDUFVfQm9ubmVsbCwg Q1BVX1BlbnJ5biwgQ1BVX0NvcmUyLCBDUFVfTmVoYWxlbSwgQ1BVX1NpbHZlcm1vbnQsCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgQ1BVX1NhbmR5QnJpZGdlLCBDUFVfSXZ5QnJpZGdl LCBDUFVfSGFzd2VsbCwgQ1BVX0Jyb2Fkd2VsbCwgQ1BVX1NLWCwgQ1BVX0lDTCwgQ1BVX05vbmUp OwotIAotQEAgLTU1Niw5ICs1NTAsNyBAQCBUYXJnZXQ6OlRhcmdldChBcmNoIGFyY2gsIGNvbnN0 IGNoYXIgKmNwdSwgSVNQQ1RhcmdldCBpc3BjX3RhcmdldCwgYm9vbCBwaWMsIGJvbwotICNpZiBJ U1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTJfMAotICAgICAgICAgY2FzZSBDUFVfU1BS OgotICNlbmRpZgotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTBfMAotICAg ICAgICAgY2FzZSBDUFVfVEdMOgotLSNlbmRpZgotICAgICAgICAgY2FzZSBDUFVfSUNYOgotICAg ICAgICAgY2FzZSBDUFVfSUNMOgotICAgICAgICAgY2FzZSBDUFVfU0tYOgotQEAgLTkxNiw3ICs5 MDgsNiBAQCBUYXJnZXQ6OlRhcmdldChBcmNoIGFyY2gsIGNvbnN0IGNoYXIgKmNwdSwgSVNQQ1Rh cmdldCBpc3BjX3RhcmdldCwgYm9vbCBwaWMsIGJvbwotICAgICAgICAgfQotICAgICAgICAgYnJl YWs7Ci0gICAgIGNhc2UgSVNQQ1RhcmdldDo6YXZ4NTEyc2t4X2k4eDY0OgotLSNpZiBJU1BDX0xM Vk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTBfMCAvLyBMTFZNIDEwLjArCi0gICAgICAgICAvLyBU aGlzIHRhcmdldCBpcyBlbmFibGVkIG9ubHkgZm9yIExMVk0gMTAuMCBhbmQgbGF0ZXIKLSAgICAg ICAgIC8vIGJlY2F1c2UgTExWTSByZXF1aXJlcyBhIG51bWJlciBvZiBmaXhlcywgd2hpY2ggYXJl Ci0gICAgICAgICAvLyBjb21taXR0ZWQgdG8gTExWTSAxMS4wIGFuZCBjYW4gYmUgYXBwbGllZCB0 byAxMC4wLCBidXQgbm90Ci1AQCAtOTM3LDEyICs5MjgsNyBAQCBUYXJnZXQ6OlRhcmdldChBcmNo IGFyY2gsIGNvbnN0IGNoYXIgKmNwdSwgSVNQQ1RhcmdldCBpc3BjX3RhcmdldCwgYm9vbCBwaWMs IGJvbwotICAgICAgICAgdGhpcy0+bV9oYXNWZWNQcmVmZXRjaCA9IGZhbHNlOwotICAgICAgICAg Q1BVZnJvbUlTQSA9IENQVV9TS1g7Ci0gICAgICAgICBicmVhazsKLS0jZWxzZQotLSAgICAgICAg dW5zdXBwb3J0ZWRfdGFyZ2V0ID0gdHJ1ZTsKLS0gICAgICAgIGJyZWFrOwotLSNlbmRpZgotICAg ICBjYXNlIElTUENUYXJnZXQ6OmF2eDUxMnNreF9pMTZ4MzI6Ci0tI2lmIElTUENfTExWTV9WRVJT SU9OID49IElTUENfTExWTV8xMF8wIC8vIExMVk0gMTAuMCsKLSAgICAgICAgIC8vIFRoaXMgdGFy Z2V0IGlzIGVuYWJsZWQgb25seSBmb3IgTExWTSAxMC4wIGFuZCBsYXRlcgotICAgICAgICAgLy8g YmVjYXVzZSBMTFZNIHJlcXVpcmVzIGEgbnVtYmVyIG9mIGZpeGVzLCB3aGljaCBhcmUKLSAgICAg ICAgIC8vIGNvbW1pdHRlZCB0byBMTFZNIDExLjAgYW5kIGNhbiBiZSBhcHBsaWVkIHRvIDEwLjAs IGJ1dCBub3QKLUBAIC05NjMsMTAgKzk0OSw2IEBAIFRhcmdldDo6VGFyZ2V0KEFyY2ggYXJjaCwg Y29uc3QgY2hhciAqY3B1LCBJU1BDVGFyZ2V0IGlzcGNfdGFyZ2V0LCBib29sIHBpYywgYm9vCi0g ICAgICAgICB0aGlzLT5tX2hhc1ZlY1ByZWZldGNoID0gZmFsc2U7Ci0gICAgICAgICBDUFVmcm9t SVNBID0gQ1BVX1NLWDsKLSAgICAgICAgIGJyZWFrOwotLSNlbHNlCi0tICAgICAgICB1bnN1cHBv cnRlZF90YXJnZXQgPSB0cnVlOwotLSAgICAgICAgYnJlYWs7Ci0tI2VuZGlmCi0gI2lmZGVmIElT UENfQVJNX0VOQUJMRUQKLSAgICAgY2FzZSBJU1BDVGFyZ2V0OjpuZW9uX2k4eDE2OgotICAgICAg ICAgdGhpcy0+bV9pc2EgPSBUYXJnZXQ6Ok5FT047Ci1AQCAtMTY2MiwxMSArMTY0NCw5IEBAIEds b2JhbHM6Okdsb2JhbHMoKSB7Ci0gICAgIGlzTXVsdGlUYXJnZXRDb21waWxhdGlvbiA9IGZhbHNl OwotICAgICBlcnJvckxpbWl0ID0gLTE7Ci0gCi0tI2lmIElTUENfTExWTV9WRVJTSU9OID49IElT UENfTExWTV8xMF8wCi0gICAgIGVuYWJsZVRpbWVUcmFjZSA9IGZhbHNlOwotICAgICAvLyBzZXQg ZGVmYXVsdCBncmFudWxhcml0eSB0byA1MDAuCi0gICAgIHRpbWVUcmFjZUdyYW51bGFyaXR5ID0g NTAwOwotLSNlbmRpZgotICAgICB0YXJnZXQgPSBOVUxMOwotICAgICBjdHggPSBuZXcgbGx2bTo6 TExWTUNvbnRleHQ7Ci0gCi1kaWZmIC0tZ2l0IGEvc3JjL2lzcGMuaCBiL3NyYy9pc3BjLmgKLWlu ZGV4IGUyNWQ4ODMwZS4uZGUzNTdhMjFjIDEwMDY0NAotLS0tIGEvc3JjL2lzcGMuaAotKysrIGIv c3JjL2lzcGMuaAotQEAgLTY5NSwxMyArNjk1LDEyIEBAIHN0cnVjdCBHbG9iYWxzIHsKLSAKLSAg ICAgLyogTnVtYmVyIG9mIGVycm9ycyB0byBzaG93IGluIElTUEMuICovCi0gICAgIGludCBlcnJv ckxpbWl0OwotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTBfMAotKwotICAg ICAvKiBXaGVuIHRydWUsIGVuYWJsZSBjb21waWxlIHRpbWUgdHJhY2luZy4gKi8KLSAgICAgYm9v bCBlbmFibGVUaW1lVHJhY2U7Ci0gCi0gICAgIC8qIFdoZW4gY29tcGlsZSB0aW1lIHRyYWNpbmcg aXMgZW5hYmxlZCwgc2V0IHRpbWUgZ3JhbnVsYXJpdHkuICovCi0gICAgIGludCB0aW1lVHJhY2VH cmFudWxhcml0eTsKLS0jZW5kaWYKLSB9OwotIAotIGVudW0gewotZGlmZiAtLWdpdCBhL3NyYy9p c3BjX3ZlcnNpb24uaCBiL3NyYy9pc3BjX3ZlcnNpb24uaAotaW5kZXggZDc4MTM0N2ZkLi40MzRi MmQ2NzggMTAwNjQ0Ci0tLS0gYS9zcmMvaXNwY192ZXJzaW9uLmgKLSsrKyBiL3NyYy9pc3BjX3Zl cnNpb24uaAotQEAgLTQ0LDEzICs0NCwxMSBAQAotIAotICNkZWZpbmUgSVNQQ19MTFZNX1ZFUlNJ T04gKExMVk1fVkVSU0lPTl9NQUpPUiAqIDEwMDAwICsgTExWTV9WRVJTSU9OX01JTk9SICogMTAw KQotIAotLSNkZWZpbmUgSVNQQ19MTFZNXzhfMCA4MDAwMAotLSNkZWZpbmUgSVNQQ19MTFZNXzlf MCA5MDAwMAotICNkZWZpbmUgSVNQQ19MTFZNXzEwXzAgMTAwMDAwCi0gI2RlZmluZSBJU1BDX0xM Vk1fMTFfMCAxMTAwMDAKLSAjZGVmaW5lIElTUENfTExWTV8xMl8wIDEyMDAwMAotIAotLSNkZWZp bmUgT0xERVNUX1NVUFBPUlRFRF9MTFZNIElTUENfTExWTV84XzAKLSsjZGVmaW5lIE9MREVTVF9T VVBQT1JURURfTExWTSBJU1BDX0xMVk1fMTBfMAotICNkZWZpbmUgTEFURVNUX1NVUFBPUlRFRF9M TFZNIElTUENfTExWTV8xMl8wCi0gCi0gI2lmZGVmIF9faXNwY19feHN0cgotZGlmZiAtLWdpdCBh L3NyYy9tYWluLmNwcCBiL3NyYy9tYWluLmNwcAotaW5kZXggOGY2NDMzMGNjLi41YzkyMGVhYmMg MTAwNjQ0Ci0tLS0gYS9zcmMvbWFpbi5jcHAKLSsrKyBiL3NyYy9tYWluLmNwcAotQEAgLTU1LDkg KzU1LDcgQEAKLSAjaW5jbHVkZSA8bGx2bS9TdXBwb3J0L1NpZ25hbHMuaD4KLSAjaW5jbHVkZSA8 bGx2bS9TdXBwb3J0L1RhcmdldFJlZ2lzdHJ5Lmg+Ci0gI2luY2x1ZGUgPGxsdm0vU3VwcG9ydC9U YXJnZXRTZWxlY3QuaD4KLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzEwXzAK LSAjaW5jbHVkZSA8bGx2bS9TdXBwb3J0L1Rvb2xPdXRwdXRGaWxlLmg+Ci0tI2VuZGlmCi0gCi0g I2lmZGVmIElTUENfSE9TVF9JU19XSU5ET1dTCi0gI2RlZmluZSBzdHJjYXNlY21wIHN0cmljbXAK LUBAIC0xODEsMTEgKzE3OSw5IEBAIHN0YXRpYyB2b2lkIGxQcmludFZlcnNpb24oKSB7Ci0gICAg IHNucHJpbnRmKHRhcmdldEhlbHAsIHNpemVvZih0YXJnZXRIZWxwKSwgIlstLXRhcmdldC1vcz08 b3M+XVx0XHRcdFNlbGVjdCB0YXJnZXQgT1MuICA8b3M+PXslc30iLAotICAgICAgICAgICAgICBn LT50YXJnZXRfcmVnaXN0cnktPmdldFN1cHBvcnRlZE9TZXMoKS5jX3N0cigpKTsKLSAgICAgUHJp bnRXaXRoV29yZEJyZWFrcyh0YXJnZXRIZWxwLCAyNCwgVGVybWluYWxXaWR0aCgpLCBzdGRvdXQp OwotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTBfMAotICAgICBwcmludGYo IiAgICBbLS10aW1lLXRyYWNlXVx0XHRcdFR1cm4gb24gdGltZSBwcm9maWxlci4gR2VuZXJhdGVz IEpTT04gZmlsZSBiYXNlZCBvbiBvdXRwdXQgZmlsZW5hbWUuXG4iKTsKLSAgICAgcHJpbnRmKCIg ICAgWy0tdGltZS10cmFjZS1ncmFudWxhcml0eT08dmFsdWU+XHRNaW5pbXVtIHRpbWUgZ3JhbnVs YXJpdHkgKGluIG1pY3Jvc2Vjb25kcykgdHJhY2VkIGJ5IHRpbWUgIgotICAgICAgICAgICAgInBy b2ZpbGVyLlxuIik7Ci0tI2VuZGlmCi0gICAgIHByaW50ZigiICAgIFstLXZlcnNpb25dXHRcdFx0 XHRQcmludCBpc3BjIHZlcnNpb25cbiIpOwotICNpZmRlZiBJU1BDX0dFTlhfRU5BQkxFRAotICAg ICBwcmludGYoIiAgICBbLS12Yy1vcHRpb25zPTxcIi1vcHRpb24xIC1vcHRpb24yLi4uXCI+XVx0 XHRcdFx0UGFzcyBhZGRpdGlvbmFsIG9wdGlvbnMgdG8gVmVjdG9yIENvbXBpbGVyIGJhY2tlbmRc biIpOwotQEAgLTQ2Miw3ICs0NTgsNiBAQCBzdGF0aWMgdm9pZCBzZXRDYWxsaW5nQ29udihWZWN0 b3JDYWxsU3RhdHVzIHZlY3RvckNhbGwsIEFyY2ggYXJjaCkgewotICAgICB9Ci0gfQotIAotLSNp ZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTBfMAotIHN0YXRpYyB2b2lkIHdyaXRl Q29tcGlsZVRpbWVGaWxlKGNvbnN0IGNoYXIgKm91dEZpbGVOYW1lKSB7Ci0gICAgIGxsdm06OlNt YWxsU3RyaW5nPDEyOD4ganNvbkZpbGVOYW1lKG91dEZpbGVOYW1lKTsKLSAgICAganNvbkZpbGVO YW1lLmFwcGVuZCgiLmpzb24iKTsKLUBAIC00NzksNyArNDc0LDYgQEAgc3RhdGljIHZvaWQgd3Jp dGVDb21waWxlVGltZUZpbGUoY29uc3QgY2hhciAqb3V0RmlsZU5hbWUpIHsKLSAgICAgb2YtPmtl ZXAoKTsKLSAgICAgcmV0dXJuOwotIH0KLS0jZW5kaWYKLSAKLSBzdGF0aWMgc3RkOjpzZXQ8aW50 PiBQYXJzaW5nUGhhc2VzKGNoYXIgKnN0YWdlcywgQXJnRXJyb3JzICZlcnJvckhhbmRsZXIpIHsK LSAgICAgY29uc3RleHByIGludCBwYXJzaW5nX2xpbWl0ID0gMTAwOwotQEAgLTc5MSwxMiArNzg1 LDEwIEBAIGludCBtYWluKGludCBBcmdjLCBjaGFyICpBcmd2W10pIHsKLSAgICAgICAgICAgICB9 Ci0gICAgICAgICB9IGVsc2UgaWYgKCFzdHJuY21wKGFyZ3ZbaV0sICItLWZvcmNlLWFsaWdubWVu dD0iLCAxOCkpIHsKLSAgICAgICAgICAgICBnLT5mb3JjZUFsaWdubWVudCA9IGF0b2koYXJndltp XSArIDE4KTsKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzEwXzAKLSAgICAg ICAgIH0gZWxzZSBpZiAoIXN0cmNtcChhcmd2W2ldLCAiLS10aW1lLXRyYWNlIikpIHsKLSAgICAg ICAgICAgICBnLT5lbmFibGVUaW1lVHJhY2UgPSB0cnVlOwotICAgICAgICAgfSBlbHNlIGlmICgh c3RybmNtcChhcmd2W2ldLCAiLS10aW1lLXRyYWNlLWdyYW51bGFyaXR5PSIsIDI1KSkgewotICAg ICAgICAgICAgIGctPnRpbWVUcmFjZUdyYW51bGFyaXR5ID0gYXRvaShhcmd2W2ldICsgMjUpOwot LSNlbmRpZgotICAgICAgICAgfSBlbHNlIGlmICghc3RyY21wKGFyZ3ZbaV0sICItLXdvZmYiKSB8 fCAhc3RyY21wKGFyZ3ZbaV0sICItd29mZiIpKSB7Ci0gICAgICAgICAgICAgZy0+ZGlzYWJsZVdh cm5pbmdzID0gdHJ1ZTsKLSAgICAgICAgICAgICBnLT5lbWl0UGVyZldhcm5pbmdzID0gZmFsc2U7 Ci1AQCAtMTA1OSw3ICsxMDUxLDYgQEAgaW50IG1haW4oaW50IEFyZ2MsIGNoYXIgKkFyZ3ZbXSkg ewotIAotICAgICAvLyBUaGlzIG5lZWRzIHRvIGhhcHBlbiBhZnRlciB0aGUgVGFyZ2V0T1MgaXMg ZGVjaWRlZC4KLSAgICAgc2V0Q2FsbGluZ0NvbnYodmVjdG9yQ2FsbCwgYXJjaCk7Ci0tI2lmIElT UENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMF8wCi0gICAgIGlmIChnLT5lbmFibGVUaW1l VHJhY2UpIHsKLSAgICAgICAgIGxsdm06OnRpbWVUcmFjZVByb2ZpbGVySW5pdGlhbGl6ZShnLT50 aW1lVHJhY2VHcmFudWxhcml0eSwgImlzcGMiKTsKLSAgICAgfQotQEAgLTEwNzcsOSArMTA2OCw1 IEBAIGludCBtYWluKGludCBBcmdjLCBjaGFyICpBcmd2W10pIHsKLSAgICAgICAgIH0KLSAgICAg ICAgIGxsdm06OnRpbWVUcmFjZVByb2ZpbGVyQ2xlYW51cCgpOwotICAgICB9Ci0tI2Vsc2UKLS0g ICAgaW50IHJldCA9IE1vZHVsZTo6Q29tcGlsZUFuZE91dHB1dChmaWxlLCBhcmNoLCBjcHUsIHRh cmdldHMsIGZsYWdzLCBvdCwgb3V0RmlsZU5hbWUsIGhlYWRlckZpbGVOYW1lLCBkZXBzRmlsZU5h bWUsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVwc1RhcmdldE5h bWUsIGhvc3RTdHViRmlsZU5hbWUsIGRldlN0dWJGaWxlTmFtZSk7Ci0tI2VuZGlmCi0gICAgIHJl dHVybiByZXQ7Ci0gfQotZGlmZiAtLWdpdCBhL3NyYy9tb2R1bGUuY3BwIGIvc3JjL21vZHVsZS5j cHAKLWluZGV4IGZlNzQ1MmRmMS4uYTg1ZmVjNzdhIDEwMDY0NAotLS0tIGEvc3JjL21vZHVsZS5j cHAKLSsrKyBiL3NyYy9tb2R1bGUuY3BwCi1AQCAtMTcwLDkgKzE3MCw3IEBAIE1vZHVsZTo6TW9k dWxlKGNvbnN0IGNoYXIgKmZuKSB7Ci0gICAgIG1vZHVsZS0+c2V0RGF0YUxheW91dChnLT50YXJn ZXQtPmdldERhdGFMYXlvdXQoKS0+Z2V0U3RyaW5nUmVwcmVzZW50YXRpb24oKSk7Ci0gCi0gICAg IGlmIChnLT5nZW5lcmF0ZURlYnVnZ2luZ1N5bWJvbHMpIHsKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJ T04gPj0gSVNQQ19MTFZNXzEwXzAKLSAgICAgICAgIGxsdm06OlRpbWVUcmFjZVNjb3BlIFRpbWVT Y29wZSgiQ3JlYXRlIERlYnVnIERhdGEiKTsKLS0jZW5kaWYKLSAgICAgICAgIC8vIFRvIGVuYWJs ZSBkZWJ1ZyBpbmZvcm1hdGlvbiBvbiBXaW5kb3dzLCB3ZSBoYXZlIHRvIGxldCBsbHZtIGtub3cs IHRoYXQKLSAgICAgICAgIC8vIGRlYnVnIGluZm9ybWF0aW9uIHNob3VsZCBiZSBlbWl0dGVkIGlu IENvZGVWaWV3IGZvcm1hdC4KLSAgICAgICAgIGlmIChnLT50YXJnZXRfb3MgPT0gVGFyZ2V0T1M6 OndpbmRvd3MpIHsKLUBAIC0yMjYsMTAgKzIyNCw4IEBAIGV4dGVybiBZWV9CVUZGRVJfU1RBVEUg eXlfY3JlYXRlX2J1ZmZlcihGSUxFICosIGludCk7Ci0gZXh0ZXJuIHZvaWQgeXlfZGVsZXRlX2J1 ZmZlcihZWV9CVUZGRVJfU1RBVEUpOwotIAotIGludCBNb2R1bGU6OkNvbXBpbGVGaWxlKCkgewot LSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTBfMAotICAgICBsbHZtOjpUaW1l VHJhY2VTY29wZSBDb21waWxlRmlsZVRpbWVTY29wZSgKLSAgICAgICAgICJDb21waWxlRmlsZSIs IGxsdm06OlN0cmluZ1JlZihmaWxlbmFtZSArICgiXyIgKyBzdGQ6OnN0cmluZyhnLT50YXJnZXQt PkdldElTQVN0cmluZygpKSkpKTsKLS0jZW5kaWYKLSAgICAgZXh0ZXJuIHZvaWQgUGFyc2VySW5p dCgpOwotICAgICBQYXJzZXJJbml0KCk7Ci0gCi1AQCAtMjM4LDE4ICsyMzQsMTQgQEAgaW50IE1v ZHVsZTo6Q29tcGlsZUZpbGUoKSB7Ci0gICAgIC8vIHZhcmlhYmxlICdtJyB0byBiZSBpbml0aWFs aXplZCBhbmQgYXZhaWxhYmxlICh3aGljaCBpdCBpc24ndCB1bnRpbAotICAgICAvLyB0aGUgTW9k dWxlIGNvbnN0cnVjdG9yIHJldHVybnMuLi4pCi0gICAgIHsKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJ T04gPj0gSVNQQ19MTFZNXzEwXzAKLSAgICAgICAgIGxsdm06OlRpbWVUcmFjZVNjb3BlIFRpbWVT Y29wZSgiRGVmaW5lU3RkbGliIik7Ci0tI2VuZGlmCi0gICAgICAgICBEZWZpbmVTdGRsaWIoc3lt Ym9sVGFibGUsIGctPmN0eCwgbW9kdWxlLCBnLT5pbmNsdWRlU3RkbGliKTsKLSAgICAgfQotIAot ICAgICBib29sIHJ1blByZXByb2Nlc3NvciA9IGctPnJ1bkNQUDsKLSAKLSAgICAgaWYgKHJ1blBy ZXByb2Nlc3NvcikgewotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTBfMAot ICAgICAgICAgbGx2bTo6VGltZVRyYWNlU2NvcGUgVGltZVNjb3BlKCJGcm9udGVuZCBwYXJzZXIi KTsKLS0jZW5kaWYKLSAgICAgICAgIGlmICghSXNTdGRpbihmaWxlbmFtZSkpIHsKLSAgICAgICAg ICAgICAvLyBUcnkgdG8gb3BlbiB0aGUgZmlsZSBmaXJzdCwgc2luY2Ugb3RoZXJ3aXNlIHdlIGNy YXNoIGluIHRoZQotICAgICAgICAgICAgIC8vIHByZXByb2Nlc3NvciBpZiB0aGUgZmlsZSBkb2Vz bid0IGV4aXN0LgotQEAgLTI2OCw5ICsyNjAsNyBAQCBpbnQgTW9kdWxlOjpDb21waWxlRmlsZSgp IHsKLSAgICAgICAgIHl5cGFyc2UoKTsKLSAgICAgICAgIHl5X2RlbGV0ZV9idWZmZXIoc3RyYnVm KTsKLSAgICAgfSBlbHNlIHsKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzEw XzAKLSAgICAgICAgIGxsdm06OlRpbWVUcmFjZVNjb3BlIFRpbWVTY29wZSgiRnJvbnRlbmQgcGFy c2VyIik7Ci0tI2VuZGlmCi0gICAgICAgICAvLyBObyBwcmVwcm9jZXNzb3IsIGp1c3Qgb3BlbiB1 cCB0aGUgZmlsZSBpZiBpdCdzIG5vdCBzdGRpbi4uCi0gICAgICAgICBGSUxFICpmID0gTlVMTDsK LSAgICAgICAgIGlmIChJc1N0ZGluKGZpbGVuYW1lKSkgewotQEAgLTI5Nyw5ICsyODcsNyBAQCBp bnQgTW9kdWxlOjpDb21waWxlRmlsZSgpIHsKLSAKLSAgICAgaWYgKGRpQnVpbGRlcikKLSAgICAg ICAgIGRpQnVpbGRlci0+ZmluYWxpemUoKTsKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQ Q19MTFZNXzEwXzAKLSAgICAgbGx2bTo6VGltZVRyYWNlU2NvcGUgVGltZVNjb3BlKCJPcHRpbWl6 ZSIpOwotLSNlbmRpZgotICAgICBpZiAoZXJyb3JDb3VudCA9PSAwKQotICAgICAgICAgT3B0aW1p emUobW9kdWxlLCBnLT5vcHQubGV2ZWwpOwotIAotQEAgLTEyNDMsMTUgKzEyMzEsOCBAQCBib29s IE1vZHVsZTo6d3JpdGVPYmplY3RGaWxlT3JBc3NlbWJseShsbHZtOjpUYXJnZXRNYWNoaW5lICp0 YXJnZXRNYWNoaW5lLCBsbHZtOgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGNvbnN0IGNoYXIgKm91dEZpbGVOYW1lKSB7Ci0gICAgIC8vIEZpZ3VyZSBvdXQgaWYgd2Un cmUgZ2VuZXJhdGluZyBvYmplY3QgZmlsZSBvciBhc3NlbWJseSBvdXRwdXQsIGFuZAotICAgICAv LyBzZXQgYmluYXJ5IG91dHB1dCBmb3Igb2JqZWN0IGZpbGVzCi0tI2lmIElTUENfTExWTV9WRVJT SU9OIDw9IElTUENfTExWTV85XzAKLS0gICAgQXNzZXJ0KCFnLT50YXJnZXQtPmlzR2VuWFRhcmdl dCgpKTsKLS0gICAgbGx2bTo6VGFyZ2V0TWFjaGluZTo6Q29kZUdlbkZpbGVUeXBlIGZpbGVUeXBl ID0KLS0gICAgICAgIChvdXRwdXRUeXBlID09IE9iamVjdCkgPyBsbHZtOjpUYXJnZXRNYWNoaW5l OjpDR0ZUX09iamVjdEZpbGUgOiBsbHZtOjpUYXJnZXRNYWNoaW5lOjpDR0ZUX0Fzc2VtYmx5Rmls ZTsKLS0gICAgYm9vbCBiaW5hcnkgPSAoZmlsZVR5cGUgPT0gbGx2bTo6VGFyZ2V0TWFjaGluZTo6 Q0dGVF9PYmplY3RGaWxlKTsKLS0jZWxzZSAvLyBMTFZNIDEwLjArCi0gICAgIGxsdm06OkNvZGVH ZW5GaWxlVHlwZSBmaWxlVHlwZSA9IChvdXRwdXRUeXBlID09IE9iamVjdCkgPyBsbHZtOjpDR0ZU X09iamVjdEZpbGUgOiBsbHZtOjpDR0ZUX0Fzc2VtYmx5RmlsZTsKLSAgICAgYm9vbCBiaW5hcnkg PSAoZmlsZVR5cGUgPT0gbGx2bTo6Q0dGVF9PYmplY3RGaWxlKTsKLS0jZW5kaWYKLSAKLSAgICAg bGx2bTo6c3lzOjpmczo6T3BlbkZsYWdzIGZsYWdzID0gYmluYXJ5ID8gbGx2bTo6c3lzOjpmczo6 Rl9Ob25lIDogbGx2bTo6c3lzOjpmczo6Rl9UZXh0OwotIAotQEAgLTIyMTksMTEgKzIyMDAsNyBA QCB2b2lkIE1vZHVsZTo6ZXhlY1ByZXByb2Nlc3Nvcihjb25zdCBjaGFyICppbmZpbGVuYW1lLCBs bHZtOjpyYXdfc3RyaW5nX29zdHJlYW0gKgotICAgICBpbnN0LnNldFRhcmdldCh0YXJnZXQpOwot ICAgICBpbnN0LmNyZWF0ZVNvdXJjZU1hbmFnZXIoaW5zdC5nZXRGaWxlTWFuYWdlcigpKTsKLSAK LS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPD0gSVNQQ19MTFZNXzlfMAotLSAgICBjbGFuZzo6RnJv bnRlbmRJbnB1dEZpbGUgaW5wdXRGaWxlKGluZmlsZW5hbWUsIGNsYW5nOjpJbnB1dEtpbmQ6OlVu a25vd24pOwotLSNlbHNlIC8vIExMVk0gMTAuMCsKLSAgICAgY2xhbmc6OkZyb250ZW5kSW5wdXRG aWxlIGlucHV0RmlsZShpbmZpbGVuYW1lLCBjbGFuZzo6SW5wdXRLaW5kKCkpOwotLSNlbmRpZgot IAotICAgICBpbnN0LkluaXRpYWxpemVTb3VyY2VNYW5hZ2VyKGlucHV0RmlsZSk7Ci0gCi1AQCAt MjcyMiw5ICsyNjk5LDcgQEAgaW50IE1vZHVsZTo6Q29tcGlsZUFuZE91dHB1dChjb25zdCBjaGFy ICpzcmNGaWxlLCBBcmNoIGFyY2gsIGNvbnN0IGNoYXIgKmNwdSwgc3QKLSAKLSAgICAgICAgIG0g PSBuZXcgTW9kdWxlKHNyY0ZpbGUpOwotICAgICAgICAgaWYgKG0tPkNvbXBpbGVGaWxlKCkgPT0g MCkgewotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTBfMAotICAgICAgICAg ICAgIGxsdm06OlRpbWVUcmFjZVNjb3BlIFRpbWVTY29wZSgiQmFja2VuZCIpOwotLSNlbmRpZgot ICNpZmRlZiBJU1BDX0dFTlhfRU5BQkxFRAotICAgICAgICAgICAgIGlmIChvdXRwdXRUeXBlID09 IEFzbSB8fCBvdXRwdXRUeXBlID09IE9iamVjdCkgewotICAgICAgICAgICAgICAgICBpZiAoZy0+ dGFyZ2V0LT5pc0dlblhUYXJnZXQoKSkgewotQEAgLTI4NTUsOSArMjgzMCw3IEBAIGludCBNb2R1 bGU6OkNvbXBpbGVBbmRPdXRwdXQoY29uc3QgY2hhciAqc3JjRmlsZSwgQXJjaCBhcmNoLCBjb25z dCBjaGFyICpjcHUsIHN0Ci0gCi0gICAgICAgICAgICAgbSA9IG5ldyBNb2R1bGUoc3JjRmlsZSk7 Ci0gICAgICAgICAgICAgaW50IGNvbXBpbGVGaWxlRXJyb3IgPSBtLT5Db21waWxlRmlsZSgpOwot LSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTBfMAotICAgICAgICAgICAgIGxs dm06OlRpbWVUcmFjZVNjb3BlIFRpbWVTY29wZSgiQmFja2VuZCIpOwotLSNlbmRpZgotICAgICAg ICAgICAgIGlmIChjb21waWxlRmlsZUVycm9yID09IDApIHsKLSAgICAgICAgICAgICAgICAgLy8g Q3JlYXRlIHRoZSBkaXNwYXRjaCBtb2R1bGUsIHVubGVzcyBhbHJlYWR5IGNyZWF0ZWQ7Ci0gICAg ICAgICAgICAgICAgIC8vIGluIHRoZSBsYXR0ZXIgY2FzZSwganVzdCBkbyB0aGUgY2hlY2tpbmcK LWRpZmYgLS1naXQgYS9zcmMvbW9kdWxlLmggYi9zcmMvbW9kdWxlLmgKLWluZGV4IDYxZDNjZmVh MC4uNjAzMTI0ZDUwIDEwMDY0NAotLS0tIGEvc3JjL21vZHVsZS5oCi0rKysgYi9zcmMvbW9kdWxl LmgKLUBAIC00Myw5ICs0Myw3IEBACi0gCi0gI2luY2x1ZGUgPGxsdm0vSVIvRGVidWdJbmZvLmg+ Ci0gCi0tI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMF8wCi0gI2luY2x1ZGUg PGxsdm0vU3VwcG9ydC9UaW1lUHJvZmlsZXIuaD4KLS0jZW5kaWYKLSAKLSAjaWZkZWYgSVNQQ19H RU5YX0VOQUJMRUQKLSAjaW5jbHVkZSAib2NsX2lnY19pbnRlcmZhY2UvaWdjX29jbF9kZXZpY2Vf Y3R4LmgiCi1kaWZmIC0tZ2l0IGEvc3JjL29wdC5jcHAgYi9zcmMvb3B0LmNwcAotaW5kZXggYTY1 NWE4MzQ0Li41YjFhYzdiNjMgMTAwNjQ0Ci0tLS0gYS9zcmMvb3B0LmNwcAotKysrIGIvc3JjL29w dC5jcHAKLUBAIC02Niw2ICs2Niw3IEBACi0gI2luY2x1ZGUgPGxsdm0vSVIvSW5zdHJ1Y3Rpb25z Lmg+Ci0gI2luY2x1ZGUgPGxsdm0vSVIvSW50cmluc2ljSW5zdC5oPgotICNpbmNsdWRlIDxsbHZt L0lSL0ludHJpbnNpY3MuaD4KLSsjaW5jbHVkZSA8bGx2bS9JUi9JbnRyaW5zaWNzWDg2Lmg+Ci0g I2luY2x1ZGUgPGxsdm0vSVIvTGVnYWN5UGFzc01hbmFnZXIuaD4KLSAjaW5jbHVkZSA8bGx2bS9J Ui9Nb2R1bGUuaD4KLSAjaW5jbHVkZSA8bGx2bS9JUi9QYXR0ZXJuTWF0Y2guaD4KLUBAIC04NSw5 ICs4Niw2IEBACi0gI2luY2x1ZGUgPGxsdm0vVHJhbnNmb3Jtcy9TY2FsYXIvSW5zdFNpbXBsaWZ5 UGFzcy5oPgotICNpbmNsdWRlIDxsbHZtL1RyYW5zZm9ybXMvVXRpbHMuaD4KLSAjaW5jbHVkZSA8 bGx2bS9UcmFuc2Zvcm1zL1V0aWxzL0Jhc2ljQmxvY2tVdGlscy5oPgotLSNpZiBJU1BDX0xMVk1f VkVSU0lPTiA+PSBJU1BDX0xMVk1fMTBfMAotLSNpbmNsdWRlIDxsbHZtL0lSL0ludHJpbnNpY3NY ODYuaD4KLS0jZW5kaWYKLSAKLSAjaWZkZWYgSVNQQ19IT1NUX0lTX0xJTlVYCi0gI2luY2x1ZGUg PGFsbG9jYS5oPgotQEAgLTEwMDMsMTAgKzEwMDEsNyBAQCBib29sIEludHJpbnNpY3NPcHQ6OnJ1 bk9uQmFzaWNCbG9jayhsbHZtOjpCYXNpY0Jsb2NrICZiYikgewotICAgICAgICAgICAgICAgICBl bHNlCi0gICAgICAgICAgICAgICAgICAgICBhbGlnbiA9IGNhbGxJbnN0LT5nZXRDYWxsZWRGdW5j dGlvbigpID09IGF2eE1hc2tlZExvYWQzMiA/IDQgOiA4OwotICAgICAgICAgICAgICAgICBuYW1l ID0gTExWTUdldE5hbWUoY2FsbEluc3QtPmdldEFyZ09wZXJhbmQoMCksICJfbG9hZCIpOwotLSNp ZiBJU1BDX0xMVk1fVkVSU0lPTiA8PSBJU1BDX0xMVk1fOV8wCi0tICAgICAgICAgICAgICAgIGxs dm06Okluc3RydWN0aW9uICpsb2FkSW5zdCA9Ci0tICAgICAgICAgICAgICAgICAgICBuZXcgbGx2 bTo6TG9hZEluc3QoY2FzdFB0ciwgbmFtZSwgZmFsc2UgLyogbm90IHZvbGF0aWxlICovLCBhbGln biwgKGxsdm06Okluc3RydWN0aW9uICopTlVMTCk7Ci0tI2VsaWYgSVNQQ19MTFZNX1ZFUlNJT04g PT0gSVNQQ19MTFZNXzEwXzAKLSsjaWYgSVNQQ19MTFZNX1ZFUlNJT04gPT0gSVNQQ19MTFZNXzEw XzAKLSAgICAgICAgICAgICAgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmxvYWRJbnN0ID0gbmV3IGxs dm06OkxvYWRJbnN0KGNhc3RQdHIsIG5hbWUsIGZhbHNlIC8qIG5vdCB2b2xhdGlsZSAqLywKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGxsdm06Ok1heWJlQWxpZ24oYWxpZ24pLCAobGx2bTo6SW5zdHJ1Y3Rpb24gKilOVUxM KTsKLSAjZWxzZQotQEAgLTEwNDMsMTMgKzEwMzgsOCBAQCBib29sIEludHJpbnNpY3NPcHQ6OnJ1 bk9uQmFzaWNCbG9jayhsbHZtOjpCYXNpY0Jsb2NrICZiYikgewotICAgICAgICAgICAgICAgICAg ICAgYWxpZ24gPSBnLT50YXJnZXQtPmdldE5hdGl2ZVZlY3RvckFsaWdubWVudCgpOwotICAgICAg ICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgICBhbGlnbiA9IGNhbGxJbnN0LT5n ZXRDYWxsZWRGdW5jdGlvbigpID09IGF2eE1hc2tlZFN0b3JlMzIgPyA0IDogODsKLS0jaWYgSVNQ Q19MTFZNX1ZFUlNJT04gPD0gSVNQQ19MTFZNXzlfMAotLSAgICAgICAgICAgICAgICBsbHZtOjpT dG9yZUluc3QgKnN0b3JlSW5zdCA9IG5ldyBsbHZtOjpTdG9yZUluc3QocnZhbHVlLCBjYXN0UHRy LCAobGx2bTo6SW5zdHJ1Y3Rpb24gKilOVUxMKTsKLS0gICAgICAgICAgICAgICAgc3RvcmVJbnN0 LT5zZXRBbGlnbm1lbnQoYWxpZ24pOwotLSNlbHNlCi0gICAgICAgICAgICAgICAgIGxsdm06OlN0 b3JlSW5zdCAqc3RvcmVJbnN0ID0gbmV3IGxsdm06OlN0b3JlSW5zdChydmFsdWUsIGNhc3RQdHIs IChsbHZtOjpJbnN0cnVjdGlvbiAqKU5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpNYXliZUFsaWduKGFs aWduKS52YWx1ZU9yT25lKCkpOwotLSNlbmRpZgotICAgICAgICAgICAgICAgICBsQ29weU1ldGFk YXRhKHN0b3JlSW5zdCwgY2FsbEluc3QpOwotICAgICAgICAgICAgICAgICBsbHZtOjpSZXBsYWNl SW5zdFdpdGhJbnN0KGNhbGxJbnN0LCBzdG9yZUluc3QpOwotIAotQEAgLTEwNjYsOSArMTA1Niw3 IEBAIGJvb2wgSW50cmluc2ljc09wdDo6cnVuT25CYXNpY0Jsb2NrKGxsdm06OkJhc2ljQmxvY2sg JmJiKSB7Ci0gCi0gYm9vbCBJbnRyaW5zaWNzT3B0OjpydW5PbkZ1bmN0aW9uKGxsdm06OkZ1bmN0 aW9uICZGKSB7Ci0gCi0tI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMF8wCi0g ICAgIGxsdm06OlRpbWVUcmFjZVNjb3BlIEZ1bmNTY29wZSgiSW50cmluc2ljc09wdDo6cnVuT25G dW5jdGlvbiIsIEYuZ2V0TmFtZSgpKTsKLS0jZW5kaWYKLSAgICAgYm9vbCBtb2RpZmllZEFueSA9 IGZhbHNlOwotICAgICBmb3IgKGxsdm06OkJhc2ljQmxvY2sgJkJCIDogRikgewotICAgICAgICAg bW9kaWZpZWRBbnkgfD0gcnVuT25CYXNpY0Jsb2NrKEJCKTsKLUBAIC0xMjM5LDkgKzEyMjcsNyBA QCBib29sIEluc3RydWN0aW9uU2ltcGxpZnlQYXNzOjpydW5PbkJhc2ljQmxvY2sobGx2bTo6QmFz aWNCbG9jayAmYmIpIHsKLSAKLSBib29sIEluc3RydWN0aW9uU2ltcGxpZnlQYXNzOjpydW5PbkZ1 bmN0aW9uKGxsdm06OkZ1bmN0aW9uICZGKSB7Ci0gCi0tI2lmIElTUENfTExWTV9WRVJTSU9OID49 IElTUENfTExWTV8xMF8wCi0gICAgIGxsdm06OlRpbWVUcmFjZVNjb3BlIEZ1bmNTY29wZSgiSW5z dHJ1Y3Rpb25TaW1wbGlmeVBhc3M6OnJ1bk9uRnVuY3Rpb24iLCBGLmdldE5hbWUoKSk7Ci0tI2Vu ZGlmCi0gICAgIGJvb2wgbW9kaWZpZWRBbnkgPSBmYWxzZTsKLSAgICAgZm9yIChsbHZtOjpCYXNp Y0Jsb2NrICZCQiA6IEYpIHsKLSAgICAgICAgIG1vZGlmaWVkQW55IHw9IHJ1bk9uQmFzaWNCbG9j ayhCQik7Ci1AQCAtMjk3NCwxNiArMjk2MCwxMCBAQCBzdGF0aWMgYm9vbCBsSW1wcm92ZU1hc2tl ZFN0b3JlKGxsdm06OkNhbGxJbnN0ICpjYWxsSW5zdCkgewotIAotICAgICAgICAgICAgIGx2YWx1 ZSA9IG5ldyBsbHZtOjpCaXRDYXN0SW5zdChsdmFsdWUsIHB0clR5cGUsICJsdmFsdWVfdG9fcHRy X3R5cGUiLCBjYWxsSW5zdCk7Ci0gICAgICAgICAgICAgbENvcHlNZXRhZGF0YShsdmFsdWUsIGNh bGxJbnN0KTsKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPD0gSVNQQ19MTFZNXzlfMAotLSAgICAg ICAgICAgIHN0b3JlID0KLS0gICAgICAgICAgICAgICAgbmV3IGxsdm06OlN0b3JlSW5zdChydmFs dWUsIGx2YWx1ZSwgZmFsc2UgLyogbm90IHZvbGF0aWxlICovLAotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGctPm9wdC5mb3JjZUFsaWduZWRNZW1vcnkgPyBnLT50YXJnZXQt PmdldE5hdGl2ZVZlY3RvckFsaWdubWVudCgpIDogaW5mby0+YWxpZ24pOwotLSNlbHNlCi0gICAg ICAgICAgICAgc3RvcmUgPSBuZXcgbGx2bTo6U3RvcmVJbnN0KAotICAgICAgICAgICAgICAgICBy dmFsdWUsIGx2YWx1ZSwgZmFsc2UgLyogbm90IHZvbGF0aWxlICovLAotICAgICAgICAgICAgICAg ICBsbHZtOjpNYXliZUFsaWduKGctPm9wdC5mb3JjZUFsaWduZWRNZW1vcnkgPyBnLT50YXJnZXQt PmdldE5hdGl2ZVZlY3RvckFsaWdubWVudCgpIDogaW5mby0+YWxpZ24pCi0gICAgICAgICAgICAg ICAgICAgICAudmFsdWVPck9uZSgpKTsKLS0jZW5kaWYKLSAgICAgICAgIH0KLSAgICAgICAgIGlm IChzdG9yZSAhPSBOVUxMKSB7Ci0gICAgICAgICAgICAgbENvcHlNZXRhZGF0YShzdG9yZSwgY2Fs bEluc3QpOwotQEAgLTMwNTksMTEgKzMwMzksNyBAQCBzdGF0aWMgYm9vbCBsSW1wcm92ZU1hc2tl ZExvYWQobGx2bTo6Q2FsbEluc3QgKmNhbGxJbnN0LCBsbHZtOjpCYXNpY0Jsb2NrOjppdGVyYQot ICAgICAgICAgewotICAgICAgICAgICAgIGxsdm06OlR5cGUgKnB0clR5cGUgPSBsbHZtOjpQb2lu dGVyVHlwZTo6Z2V0KGNhbGxJbnN0LT5nZXRUeXBlKCksIDApOwotICAgICAgICAgICAgIHB0ciA9 IG5ldyBsbHZtOjpCaXRDYXN0SW5zdChwdHIsIHB0clR5cGUsICJwdHJfY2FzdF9mb3JfbG9hZCIs IGNhbGxJbnN0KTsKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPD0gSVNQQ19MTFZNXzlfMAotLSAg ICAgICAgICAgIGxvYWQgPSBuZXcgbGx2bTo6TG9hZEluc3QocHRyLCBjYWxsSW5zdC0+Z2V0TmFt ZSgpLCBmYWxzZSAvKiBub3Qgdm9sYXRpbGUgKi8sCi0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBnLT5vcHQuZm9yY2VBbGlnbmVkTWVtb3J5ID8gZy0+dGFyZ2V0LT5nZXRO YXRpdmVWZWN0b3JBbGlnbm1lbnQoKSA6IGluZm8tPmFsaWduLAotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKGxsdm06Okluc3RydWN0aW9uICopTlVMTCk7Ci0tI2VsaWYg SVNQQ19MTFZNX1ZFUlNJT04gPT0gSVNQQ19MTFZNXzEwXzAKLSsjaWYgSVNQQ19MTFZNX1ZFUlNJ T04gPT0gSVNQQ19MTFZNXzEwXzAKLSAgICAgICAgICAgICBsb2FkID0gbmV3IGxsdm06OkxvYWRJ bnN0KAotICAgICAgICAgICAgICAgICBwdHIsIGNhbGxJbnN0LT5nZXROYW1lKCksIGZhbHNlIC8q IG5vdCB2b2xhdGlsZSAqLywKLSAgICAgICAgICAgICAgICAgbGx2bTo6TWF5YmVBbGlnbihnLT5v cHQuZm9yY2VBbGlnbmVkTWVtb3J5ID8gZy0+dGFyZ2V0LT5nZXROYXRpdmVWZWN0b3JBbGlnbm1l bnQoKSA6IGluZm8tPmFsaWduKQotQEAgLTMxMjksOSArMzEwNSw3IEBAIGJvb2wgSW1wcm92ZU1l bW9yeU9wc1Bhc3M6OnJ1bk9uQmFzaWNCbG9jayhsbHZtOjpCYXNpY0Jsb2NrICZiYikgewotIAot IGJvb2wgSW1wcm92ZU1lbW9yeU9wc1Bhc3M6OnJ1bk9uRnVuY3Rpb24obGx2bTo6RnVuY3Rpb24g JkYpIHsKLSAKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzEwXzAKLSAgICAg bGx2bTo6VGltZVRyYWNlU2NvcGUgRnVuY1Njb3BlKCJJbXByb3ZlTWVtb3J5T3BzUGFzczo6cnVu T25GdW5jdGlvbiIsIEYuZ2V0TmFtZSgpKTsKLS0jZW5kaWYKLSAgICAgYm9vbCBtb2RpZmllZEFu eSA9IGZhbHNlOwotICAgICBmb3IgKGxsdm06OkJhc2ljQmxvY2sgJkJCIDogRikgewotICAgICAg ICAgbW9kaWZpZWRBbnkgfD0gcnVuT25CYXNpY0Jsb2NrKEJCKTsKLUBAIC0zNDI0LDkgKzMzOTgs NyBAQCBsbHZtOjpWYWx1ZSAqbEdFUEFuZExvYWQobGx2bTo6VmFsdWUgKmJhc2VQdHIsIGludDY0 X3Qgb2Zmc2V0LCBpbnQgYWxpZ24sIGxsdm06OgotICAgICAgICAgICAgICAgICAgICAgICAgICBs bHZtOjpUeXBlICp0eXBlKSB7Ci0gICAgIGxsdm06OlZhbHVlICpwdHIgPSBsR0VQSW5zdChiYXNl UHRyLCBMTFZNSW50NjQob2Zmc2V0KSwgIm5ld19iYXNlIiwgaW5zZXJ0QmVmb3JlKTsKLSAgICAg cHRyID0gbmV3IGxsdm06OkJpdENhc3RJbnN0KHB0ciwgbGx2bTo6UG9pbnRlclR5cGU6OmdldCh0 eXBlLCAwKSwgInB0cl9jYXN0IiwgaW5zZXJ0QmVmb3JlKTsKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJ T04gPD0gSVNQQ19MTFZNXzlfMAotLSAgICByZXR1cm4gbmV3IGxsdm06OkxvYWRJbnN0KHB0ciwg ImdhdGhlcl9sb2FkIiwgZmFsc2UgLyogbm90IHZvbGF0aWxlICovLCBhbGlnbiwgaW5zZXJ0QmVm b3JlKTsKLS0jZWxpZiBJU1BDX0xMVk1fVkVSU0lPTiA9PSBJU1BDX0xMVk1fMTBfMAotKyNpZiBJ U1BDX0xMVk1fVkVSU0lPTiA9PSBJU1BDX0xMVk1fMTBfMAotICAgICByZXR1cm4gbmV3IGxsdm06 OkxvYWRJbnN0KHB0ciwgImdhdGhlcl9sb2FkIiwgZmFsc2UgLyogbm90IHZvbGF0aWxlICovLCBs bHZtOjpNYXliZUFsaWduKGFsaWduKSwgaW5zZXJ0QmVmb3JlKTsKLSAjZWxzZSAvLyBMTFZNIDEx LjArCi0gICAgIHJldHVybiBuZXcgbGx2bTo6TG9hZEluc3QobGx2bTo6ZHluX2Nhc3Q8bGx2bTo6 UG9pbnRlclR5cGU+KHB0ci0+Z2V0VHlwZSgpKS0+Z2V0UG9pbnRlckVsZW1lbnRUeXBlKCksIHB0 ciwKLUBAIC00MTM1LDkgKzQxMDcsNyBAQCBib29sIEdhdGhlckNvYWxlc2NlUGFzczo6cnVuT25C YXNpY0Jsb2NrKGxsdm06OkJhc2ljQmxvY2sgJmJiKSB7Ci0gCi0gYm9vbCBHYXRoZXJDb2FsZXNj ZVBhc3M6OnJ1bk9uRnVuY3Rpb24obGx2bTo6RnVuY3Rpb24gJkYpIHsKLSAKLS0jaWYgSVNQQ19M TFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzEwXzAKLSAgICAgbGx2bTo6VGltZVRyYWNlU2NvcGUg RnVuY1Njb3BlKCJHYXRoZXJDb2FsZXNjZVBhc3M6OnJ1bk9uRnVuY3Rpb24iLCBGLmdldE5hbWUo KSk7Ci0tI2VuZGlmCi0gICAgIGJvb2wgbW9kaWZpZWRBbnkgPSBmYWxzZTsKLSAgICAgZm9yIChs bHZtOjpCYXNpY0Jsb2NrICZCQiA6IEYpIHsKLSAgICAgICAgIG1vZGlmaWVkQW55IHw9IHJ1bk9u QmFzaWNCbG9jayhCQik7Ci1AQCAtNDQ2Nyw5ICs0NDM3LDcgQEAgYm9vbCBSZXBsYWNlUHNldWRv TWVtb3J5T3BzUGFzczo6cnVuT25CYXNpY0Jsb2NrKGxsdm06OkJhc2ljQmxvY2sgJmJiKSB7Ci0g Ci0gYm9vbCBSZXBsYWNlUHNldWRvTWVtb3J5T3BzUGFzczo6cnVuT25GdW5jdGlvbihsbHZtOjpG dW5jdGlvbiAmRikgewotIAotLSNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTBf MAotICAgICBsbHZtOjpUaW1lVHJhY2VTY29wZSBGdW5jU2NvcGUoIlJlcGxhY2VQc2V1ZG9NZW1v cnlPcHNQYXNzOjpydW5PbkZ1bmN0aW9uIiwgRi5nZXROYW1lKCkpOwotLSNlbmRpZgotICAgICBi b29sIG1vZGlmaWVkQW55ID0gZmFsc2U7Ci0gICAgIGZvciAobGx2bTo6QmFzaWNCbG9jayAmQkIg OiBGKSB7Ci0gICAgICAgICBtb2RpZmllZEFueSB8PSBydW5PbkJhc2ljQmxvY2soQkIpOwotQEAg LTQ1NzMsOSArNDU0MSw3IEBAIGJvb2wgSXNDb21waWxlVGltZUNvbnN0YW50UGFzczo6cnVuT25C YXNpY0Jsb2NrKGxsdm06OkJhc2ljQmxvY2sgJmJiKSB7Ci0gCi0gYm9vbCBJc0NvbXBpbGVUaW1l Q29uc3RhbnRQYXNzOjpydW5PbkZ1bmN0aW9uKGxsdm06OkZ1bmN0aW9uICZGKSB7Ci0gCi0tI2lm IElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMF8wCi0gICAgIGxsdm06OlRpbWVUcmFj ZVNjb3BlIEZ1bmNTY29wZSgiSXNDb21waWxlVGltZUNvbnN0YW50UGFzczo6cnVuT25GdW5jdGlv biIsIEYuZ2V0TmFtZSgpKTsKLS0jZW5kaWYKLSAgICAgYm9vbCBtb2RpZmllZEFueSA9IGZhbHNl OwotICAgICBmb3IgKGxsdm06OkJhc2ljQmxvY2sgJkJCIDogRikgewotICAgICAgICAgbW9kaWZp ZWRBbnkgfD0gcnVuT25CYXNpY0Jsb2NrKEJCKTsKLUBAIC01MjAxLDkgKzUxNjcsNyBAQCBib29s IFBlZXBob2xlUGFzczo6cnVuT25CYXNpY0Jsb2NrKGxsdm06OkJhc2ljQmxvY2sgJmJiKSB7Ci0g Ci0gYm9vbCBQZWVwaG9sZVBhc3M6OnJ1bk9uRnVuY3Rpb24obGx2bTo6RnVuY3Rpb24gJkYpIHsK LSAKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzEwXzAKLSAgICAgbGx2bTo6 VGltZVRyYWNlU2NvcGUgRnVuY1Njb3BlKCJQZWVwaG9sZVBhc3M6OnJ1bk9uRnVuY3Rpb24iLCBG LmdldE5hbWUoKSk7Ci0tI2VuZGlmCi0gICAgIGJvb2wgbW9kaWZpZWRBbnkgPSBmYWxzZTsKLSAg ICAgZm9yIChsbHZtOjpCYXNpY0Jsb2NrICZCQiA6IEYpIHsKLSAgICAgICAgIG1vZGlmaWVkQW55 IHw9IHJ1bk9uQmFzaWNCbG9jayhCQik7Ci1AQCAtNTI5OSw5ICs1MjYzLDcgQEAgYm9vbCBSZXBs YWNlU3RkbGliU2hpZnRQYXNzOjpydW5PbkJhc2ljQmxvY2sobGx2bTo6QmFzaWNCbG9jayAmYmIp IHsKLSAKLSBib29sIFJlcGxhY2VTdGRsaWJTaGlmdFBhc3M6OnJ1bk9uRnVuY3Rpb24obGx2bTo6 RnVuY3Rpb24gJkYpIHsKLSAKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzEw XzAKLSAgICAgbGx2bTo6VGltZVRyYWNlU2NvcGUgRnVuY1Njb3BlKCJSZXBsYWNlU3RkbGliU2hp ZnRQYXNzOjpydW5PbkZ1bmN0aW9uIiwgRi5nZXROYW1lKCkpOwotLSNlbmRpZgotICAgICBib29s IG1vZGlmaWVkQW55ID0gZmFsc2U7Ci0gICAgIGZvciAobGx2bTo6QmFzaWNCbG9jayAmQkIgOiBG KSB7Ci0gICAgICAgICBtb2RpZmllZEFueSB8PSBydW5PbkJhc2ljQmxvY2soQkIpOwotQEAgLTUz OTksOSArNTM2MSw3IEBAIGxsdm06Okluc3RydWN0aW9uICpGaXhCb29sZWFuU2VsZWN0UGFzczo6 Zml4U2VsZWN0KGxsdm06OlNlbGVjdEluc3QgKnNlbCwgbGx2bTo6Ci0gfQotIAotIGJvb2wgRml4 Qm9vbGVhblNlbGVjdFBhc3M6OnJ1bk9uRnVuY3Rpb24obGx2bTo6RnVuY3Rpb24gJkYpIHsKLS0j aWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzEwXzAKLSAgICAgbGx2bTo6VGltZVRy YWNlU2NvcGUgRnVuY1Njb3BlKCJGaXhCb29sZWFuU2VsZWN0UGFzczo6cnVuT25GdW5jdGlvbiIs IEYuZ2V0TmFtZSgpKTsKLS0jZW5kaWYKLSAgICAgYm9vbCBtb2RpZmllZEFueSA9IGZhbHNlOwot IAotICAgICByZXR1cm4gbW9kaWZpZWRBbnk7Ci1AQCAtNTk2NCw5ICs1OTI0LDcgQEAgYm9vbCBH ZW5YR2F0aGVyQ29hbGVzY2luZzo6cnVuT25CYXNpY0Jsb2NrKGxsdm06OkJhc2ljQmxvY2sgJmJi KSB7Ci0gfQotIAotIGJvb2wgR2VuWEdhdGhlckNvYWxlc2Npbmc6OnJ1bk9uRnVuY3Rpb24obGx2 bTo6RnVuY3Rpb24gJkYpIHsKLS0jaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzEw XzAKLSAgICAgbGx2bTo6VGltZVRyYWNlU2NvcGUgRnVuY1Njb3BlKCJHZW5YR2F0aGVyQ29hbGVz Y2luZzo6cnVuT25GdW5jdGlvbiIsIEYuZ2V0TmFtZSgpKTsKLS0jZW5kaWYKLSAgICAgYm9vbCBt b2RpZmllZEFueSA9IGZhbHNlOwotICAgICBmb3IgKGxsdm06OkJhc2ljQmxvY2sgJkJCIDogRikg ewotICAgICAgICAgbW9kaWZpZWRBbnkgfD0gcnVuT25CYXNpY0Jsb2NrKEJCKTsKLUBAIC02MTEz LDkgKzYwNzEsNyBAQCBib29sIFByb21vdGVUb1ByaXZhdGVNZW1vcnlQYXNzOjpydW5PbkJhc2lj QmxvY2sobGx2bTo6QmFzaWNCbG9jayAmYmIpIHsKLSAKLSBib29sIFByb21vdGVUb1ByaXZhdGVN ZW1vcnlQYXNzOjpydW5PbkZ1bmN0aW9uKGxsdm06OkZ1bmN0aW9uICZGKSB7Ci0gCi0tI2lmIElT UENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMF8wCi0gICAgIGxsdm06OlRpbWVUcmFjZVNj b3BlIEZ1bmNTY29wZSgiUHJvbW90ZVRvUHJpdmF0ZU1lbW9yeVBhc3M6OnJ1bk9uRnVuY3Rpb24i LCBGLmdldE5hbWUoKSk7Ci0tI2VuZGlmCi0gICAgIGJvb2wgbW9kaWZpZWRBbnkgPSBmYWxzZTsK LSAgICAgZm9yIChsbHZtOjpCYXNpY0Jsb2NrICZCQiA6IEYpIHsKLSAgICAgICAgIG1vZGlmaWVk QW55IHw9IHJ1bk9uQmFzaWNCbG9jayhCQik7Ci1AQCAtNjE4MSw5ICs2MTM3LDcgQEAgYm9vbCBS ZXBsYWNlTExWTUludHJpbnNpY3M6OnJ1bk9uQmFzaWNCbG9jayhsbHZtOjpCYXNpY0Jsb2NrICZi YikgewotIAotIGJvb2wgUmVwbGFjZUxMVk1JbnRyaW5zaWNzOjpydW5PbkZ1bmN0aW9uKGxsdm06 OkZ1bmN0aW9uICZGKSB7Ci0gCi0tI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8x MF8wCi0gICAgIGxsdm06OlRpbWVUcmFjZVNjb3BlIEZ1bmNTY29wZSgiUmVwbGFjZUxMVk1JbnRy aW5zaWNzOjpydW5PbkZ1bmN0aW9uIiwgRi5nZXROYW1lKCkpOwotLSNlbmRpZgotICAgICBib29s IG1vZGlmaWVkQW55ID0gZmFsc2U7Ci0gICAgIGZvciAobGx2bTo6QmFzaWNCbG9jayAmQkIgOiBG KSB7Ci0gICAgICAgICBtb2RpZmllZEFueSB8PSBydW5PbkJhc2ljQmxvY2soQkIpOwotQEAgLTYy NzgsOSArNjIzMiw3IEBAIGJvb2wgUmVwbGFjZVVuc3VwcG9ydGVkSW5zdHM6OnJ1bk9uQmFzaWNC bG9jayhsbHZtOjpCYXNpY0Jsb2NrICZiYikgewotIAotIGJvb2wgUmVwbGFjZVVuc3VwcG9ydGVk SW5zdHM6OnJ1bk9uRnVuY3Rpb24obGx2bTo6RnVuY3Rpb24gJkYpIHsKLSAKLS0jaWYgSVNQQ19M TFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzEwXzAKLSAgICAgbGx2bTo6VGltZVRyYWNlU2NvcGUg RnVuY1Njb3BlKCJSZXBsYWNlVW5zdXBwb3J0ZWRJbnN0czo6cnVuT25GdW5jdGlvbiIsIEYuZ2V0 TmFtZSgpKTsKLS0jZW5kaWYKLSAgICAgYm9vbCBtb2RpZmllZEFueSA9IGZhbHNlOwotICAgICBm b3IgKGxsdm06OkJhc2ljQmxvY2sgJkJCIDogRikgewotICAgICAgICAgbW9kaWZpZWRBbnkgfD0g cnVuT25CYXNpY0Jsb2NrKEJCKTsKLUBAIC02MzY5LDkgKzYzMjEsNyBAQCBib29sIENoZWNrVW5z dXBwb3J0ZWRJbnN0czo6cnVuT25CYXNpY0Jsb2NrKGxsdm06OkJhc2ljQmxvY2sgJmJiKSB7Ci0g fQotIAotIGJvb2wgQ2hlY2tVbnN1cHBvcnRlZEluc3RzOjpydW5PbkZ1bmN0aW9uKGxsdm06OkZ1 bmN0aW9uICZGKSB7Ci0tI2lmIElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMF8wCi0g ICAgIGxsdm06OlRpbWVUcmFjZVNjb3BlIEZ1bmNTY29wZSgiQ2hlY2tVbnN1cHBvcnRlZEluc3Rz OjpydW5PbkZ1bmN0aW9uIiwgRi5nZXROYW1lKCkpOwotLSNlbmRpZgotICAgICBib29sIG1vZGlm aWVkQW55ID0gZmFsc2U7Ci0gICAgIGZvciAobGx2bTo6QmFzaWNCbG9jayAmQkIgOiBGKSB7Ci0g ICAgICAgICBtb2RpZmllZEFueSB8PSBydW5PbkJhc2ljQmxvY2soQkIpOwotQEAgLTY0NDAsOSAr NjM5MCw3IEBAIGJvb2wgTWFuZ2xlT3BlbkNMQnVpbHRpbnM6OnJ1bk9uQmFzaWNCbG9jayhsbHZt OjpCYXNpY0Jsb2NrICZiYikgewotIH0KLSAKLSBib29sIE1hbmdsZU9wZW5DTEJ1aWx0aW5zOjpy dW5PbkZ1bmN0aW9uKGxsdm06OkZ1bmN0aW9uICZGKSB7Ci0tI2lmIElTUENfTExWTV9WRVJTSU9O ID49IElTUENfTExWTV8xMF8wCi0gICAgIGxsdm06OlRpbWVUcmFjZVNjb3BlIEZ1bmNTY29wZSgi TWFuZ2xlT3BlbkNMQnVpbHRpbnM6OnJ1bk9uRnVuY3Rpb24iLCBGLmdldE5hbWUoKSk7Ci0tI2Vu ZGlmCi0gICAgIGJvb2wgbW9kaWZpZWRBbnkgPSBmYWxzZTsKLSAgICAgZm9yIChsbHZtOjpCYXNp Y0Jsb2NrICZCQiA6IEYpIHsKLSAgICAgICAgIG1vZGlmaWVkQW55IHw9IHJ1bk9uQmFzaWNCbG9j ayhCQik7Ci1AQCAtNjgyOCw5ICs2Nzc2LDcgQEAgYm9vbCBGaXhBZGRyZXNzU3BhY2U6OnJ1bk9u RnVuY3Rpb24obGx2bTo6RnVuY3Rpb24gJkYpIHsKLSAgICAgLy8gVHJhbnNmb3JtYXRpb25zIGFy ZSBjb3JyZWN0IHdoZW4gdGhlIGZ1bmN0aW9uIGlzIG5vdCBpbnRlcm5hbC4KLSAgICAgLy8gVGhp cyBpcyBkdWUgdG8gYWRkcmVzcyBzcGFjZSBjYWxjdWxhdGlvbiBhbGdvcml0aG0uCi0gICAgIC8v IFRPRE86IHByb2JsZW1zIGNhbiBiZSBtZXQgaW4gY2FzZSBvZiBTdGFjayBDYWxscwotLSNpZiBJ U1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTBfMAotICAgICBsbHZtOjpUaW1lVHJhY2VT Y29wZSBGdW5jU2NvcGUoIkZpeEFkZHJlc3NTcGFjZTo6cnVuT25GdW5jdGlvbiIsIEYuZ2V0TmFt ZSgpKTsKLS0jZW5kaWYKLSAgICAgaWYgKEYuZ2V0TGlua2FnZSgpID09IGxsdm06Okdsb2JhbFZh bHVlOjpMaW5rYWdlVHlwZXM6OkludGVybmFsTGlua2FnZSkKLSAgICAgICAgIHJldHVybiBmYWxz ZTsKLSAKLUBAIC02ODU0LDkgKzY4MDAsNyBAQCBjbGFzcyBEZW1vdGVQSElzIDogcHVibGljIGxs dm06OkZ1bmN0aW9uUGFzcyB7Ci0gY2hhciBEZW1vdGVQSElzOjpJRCA9IDA7Ci0gCi0gYm9vbCBE ZW1vdGVQSElzOjpydW5PbkZ1bmN0aW9uKGxsdm06OkZ1bmN0aW9uICZGKSB7Ci0tI2lmIElTUENf TExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMF8wCi0gICAgIGxsdm06OlRpbWVUcmFjZVNjb3Bl IEZ1bmNTY29wZSgiRGVtb3RlUEhJczo6cnVuT25GdW5jdGlvbiIsIEYuZ2V0TmFtZSgpKTsKLS0j ZW5kaWYKLSAgICAgaWYgKEYuaXNEZWNsYXJhdGlvbigpIHx8IHNraXBGdW5jdGlvbihGKSkKLSAg ICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgc3RkOjp2ZWN0b3I8bGx2bTo6SW5zdHJ1Y3Rpb24g Kj4gV29ya0xpc3Q7Ci1kaWZmIC0tZ2l0IGEvc3JjL3R5cGUuY3BwIGIvc3JjL3R5cGUuY3BwCi1p bmRleCA2ODhhNGU4NzQuLmZhMGNiMDRkYiAxMDA2NDQKLS0tLSBhL3NyYy90eXBlLmNwcAotKysr IGIvc3JjL3R5cGUuY3BwCi1AQCAtMTgyMiwxNCArMTgyMiwxMCBAQCBsbHZtOjpESVR5cGUgKlN0 cnVjdFR5cGU6OkdldERJVHlwZShsbHZtOjpESVNjb3BlICpzY29wZSkgY29uc3QgewotICAgICBs bHZtOjpESUZpbGUgKmRpRmlsZSA9IHBvcy5HZXRESUZpbGUoKTsKLSAgICAgbGx2bTo6RElOYW1l c3BhY2UgKmRpU3BhY2UgPSBwb3MuR2V0RElOYW1lc3BhY2UoKTsKLSAgICAgcmV0dXJuIG0tPmRp QnVpbGRlci0+Y3JlYXRlU3RydWN0VHlwZShkaVNwYWNlLCBHZXRTdHJpbmcoKSwgZGlGaWxlLAot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcy5maXJzdF9saW5l LCAgICAgICAgICAvLyBMaW5lIG51bWJlcgotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGxheW91dC0+Z2V0U2l6ZUluQml0cygpLCAvLyBTaXplIGluIGJpdHMKLS0j aWYgSVNQQ19MTFZNX1ZFUlNJT04gPD0gSVNQQ19MTFZNXzlfMAotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGxheW91dC0+Z2V0QWxpZ25tZW50KCkgKiA4LCAvLyBB bGlnbm1lbnQgaW4gYml0cwotLSNlbHNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBMTFZNIDEwLjArCi0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zLmZpcnN0X2xpbmUsICAgICAgICAg ICAgICAgICAgICAgLy8gTGluZSBudW1iZXIKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBsYXlvdXQtPmdldFNpemVJbkJpdHMoKSwgICAgICAgICAgICAvLyBTaXpl IGluIGJpdHMKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXlv dXQtPmdldEFsaWdubWVudCgpLnZhbHVlKCkgKiA4LCAvLyBBbGlnbm1lbnQgaW4gYml0cwotLSNl bmRpZgotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06OkRJ Tm9kZTo6RmxhZ1plcm8sIC8vIEZsYWdzCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgbGx2bTo6RElOb2RlOjpGbGFnWmVybywgICAgICAgICAgICAgLy8gRmxhZ3MK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCBlbGVtZW50 cyk7Ci0gfQotIAotZGlmZiAtLWdpdCBhL3Rlc3RzL2xpdC10ZXN0cy8xNzcxLmlzcGMgYi90ZXN0 cy9saXQtdGVzdHMvMTc3MS5pc3BjCi1pbmRleCA5ODA2NGQ4NGQuLjRmZWI3M2RkNyAxMDA2NDQK LS0tLSBhL3Rlc3RzL2xpdC10ZXN0cy8xNzcxLmlzcGMKLSsrKyBiL3Rlc3RzL2xpdC10ZXN0cy8x NzcxLmlzcGMKLUBAIC01LDcgKzUsNiBAQAotIC8vIFJVTjogJXtpc3BjfSAlcyAtLXRhcmdldD1z c2U0LWkxNng4IC0tZW1pdC1hc20gLW8gLSB8IEZpbGVDaGVjayAlcyAtY2hlY2stcHJlZml4PUNI RUNLU1NFNF9JMTZYOAotIC8vIFJVTjogJXtpc3BjfSAlcyAtLXRhcmdldD1zc2U0LWk4eDE2IC0t ZW1pdC1hc20gLW8gLSB8IEZpbGVDaGVjayAlcyAtY2hlY2stcHJlZml4PUNIRUNLU1NFNF9JOFgx NgotIAotLS8vIFJFUVVJUkVTOiBMTFZNXzEwXzArCi0gLy8gUkVRVUlSRVM6IFg4Nl9FTkFCTEVE Ci0gCi0gLy8gQ0hFQ0tBVlgyX0kzMlg4OiB7e1thLXpdKnhvclthLXpdKn19ICAleG1tMCwgJXht bTAsICV4bW0wCi1kaWZmIC0tZ2l0IGEvdGVzdHMvbGl0LXRlc3RzLzE4NDQuaXNwYyBiL3Rlc3Rz L2xpdC10ZXN0cy8xODQ0LmlzcGMKLWluZGV4IDc5M2E4ODY2Yy4uMTg5ZWRmNGMzIDEwMDY0NAot LS0tIGEvdGVzdHMvbGl0LXRlc3RzLzE4NDQuaXNwYwotKysrIGIvdGVzdHMvbGl0LXRlc3RzLzE4 NDQuaXNwYwotQEAgLTYsOSArNiw2IEBACi0gCi0gLy8gUkVRVUlSRVM6IFg4Nl9FTkFCTEVECi0g Ci0tLy8gSXQgZG9lc24ndCB3b3JrIGZvciBhbnl0aGluZyBlYXJsaWVyIHRoYW4gMTAuMCwgYnV0 IGl0IHdpbGwgbm90IGJlIGZpeGVkLCBzbyBkb24ndCBydW4uCi0tLy8gUkVRVUlSRVM6IExMVk1f MTBfMCsKLS0KLSBleHRlcm4gdW5pZm9ybSB1bnNpZ25lZCBpbnQ2NCB2YXJfNjsKLSBleHRlcm4g dW5pZm9ybSB1bnNpZ25lZCBpbnQxNiB2YXJfMTE7Ci0gZXh0ZXJuIHVuaWZvcm0gYm9vbCBhcnJf MjAxIFsxXSBbMTVdIFsyMF07Ci1kaWZmIC0tZ2l0IGEvdGVzdHMvbGl0LXRlc3RzLzE5MjYuaXNw YyBiL3Rlc3RzL2xpdC10ZXN0cy8xOTI2LmlzcGMKLWluZGV4IDcwZjdjYzNjMi4uNzkyMWM5MWE2 IDEwMDY0NAotLS0tIGEvdGVzdHMvbGl0LXRlc3RzLzE5MjYuaXNwYwotKysrIGIvdGVzdHMvbGl0 LXRlc3RzLzE5MjYuaXNwYwotQEAgLTIsOCArMiw2IEBACi0gLy8gUlVOOiBjYXQgJVQvMTkyNi5v Lmpzb24gXAotIC8vIFJVTjogICB8IEZpbGVDaGVjayAlcwotIAotLS8vIFJFUVVJUkVTOiBMTFZN XzEwXzArCi0tCi0gLy8gQ0hFQ0s6ICJ0cmFjZUV2ZW50cyIKLSAvLyBDSEVDSzogImRldGFpbCIK LSBleHBvcnQgdW5pZm9ybSBpbnQgZm9vKHVuaWZvcm0gaW50IGFbXSwgdW5pZm9ybSBpbnQgY291 bnQpIHsKLWRpZmYgLS1naXQgYS90ZXN0cy9saXQtdGVzdHMvY3B1c194ODYuaXNwYyBiL3Rlc3Rz L2xpdC10ZXN0cy9jcHVzX3g4Ni5pc3BjCi1pbmRleCA1MTZlZmRkNGMuLjRkNjAxODZmNiAxMDA2 NDQKLS0tLSBhL3Rlc3RzL2xpdC10ZXN0cy9jcHVzX3g4Ni5pc3BjCi0rKysgYi90ZXN0cy9saXQt dGVzdHMvY3B1c194ODYuaXNwYwotQEAgLTI0LDYgKzI0LDggQEAKLSAvLzsgUlVOOiAle2lzcGN9 ICVzIC1vICV0Lm8gLS1ub3N0ZGxpYiAtLXRhcmdldD1zc2UyLWkzMng0IC0tY3B1PWljbAotIC8v OyBSVU46ICV7aXNwY30gJXMgLW8gJXQubyAtLW5vc3RkbGliIC0tdGFyZ2V0PXNzZTItaTMyeDQg LS1jcHU9aWNlbGFrZS1zZXJ2ZXIKLSAvLzsgUlVOOiAle2lzcGN9ICVzIC1vICV0Lm8gLS1ub3N0 ZGxpYiAtLXRhcmdldD1zc2UyLWkzMng0IC0tY3B1PWljeAotKy8vOyBSVU46ICV7aXNwY30gJXMg LW8gJXQubyAtLW5vc3RkbGliIC0tdGFyZ2V0PXNzZTItaTMyeDQgLS1jcHU9dGlnZXJsYWtlCi0r Ly87IFJVTjogJXtpc3BjfSAlcyAtbyAldC5vIC0tbm9zdGRsaWIgLS10YXJnZXQ9c3NlMi1pMzJ4 NCAtLWNwdT10Z2wKLSAKLSAvLyBSRVFVSVJFUzogWDg2X0VOQUJMRUQKLSAKLWRpZmYgLS1naXQg YS90ZXN0cy9saXQtdGVzdHMvY3B1c194ODZfbGx2bTEwLmlzcGMgYi90ZXN0cy9saXQtdGVzdHMv Y3B1c194ODZfbGx2bTEwLmlzcGMKLWRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAotaW5kZXggZWYw MDAwMGU1Li4wMDAwMDAwMDAKLS0tLSBhL3Rlc3RzL2xpdC10ZXN0cy9jcHVzX3g4Nl9sbHZtMTAu aXNwYwotKysrIC9kZXYvbnVsbAotQEAgLTEsMTEgKzAsMCBAQAotLS8vIFRoZSB0ZXN0IGNoZWNr cyB0aGF0IGNwdSBkZWZpbml0aW9ucyAoaW5jbHVkaW5nIGFsbCBzeW5vbnltcykgYXJlIHN1Y2Nl c3NmdWxseSBjb25zdW1lZCBieSBjb21waWxlci4KLS0KLS0vLzsgUlVOOiAle2lzcGN9ICVzIC1v ICV0Lm8gLS1ub3N0ZGxpYiAtLXRhcmdldD1zc2UyLWkzMng0IC0tY3B1PXRpZ2VybGFrZQotLS8v OyBSVU46ICV7aXNwY30gJXMgLW8gJXQubyAtLW5vc3RkbGliIC0tdGFyZ2V0PXNzZTItaTMyeDQg LS1jcHU9dGdsCi0tCi0tLy8gUkVRVUlSRVM6IFg4Nl9FTkFCTEVECi0tLy8gUkVRVUlSRVM6IExM Vk1fMTBfMCsKLS0KLS11bmlmb3JtIGludCBpOwotLQotLXZvaWQgZm9vKCkge30KLWRpZmYgLS1n aXQgYS90ZXN0cy9saXQtdGVzdHMvbGl0LmNmZyBiL3Rlc3RzL2xpdC10ZXN0cy9saXQuY2ZnCi1p bmRleCAxNzAxNjU3OWQuLjA0NWU2OTQzNyAxMDA2NDQKLS0tLSBhL3Rlc3RzL2xpdC10ZXN0cy9s aXQuY2ZnCi0rKysgYi90ZXN0cy9saXQtdGVzdHMvbGl0LmNmZwotQEAgLTMwLDExICszMCw2IEBA IHByaW50KCJDb25maWc6IikKLSAKLSAjIExMVk0gdmVyc2lvbgotIGxsdm1fdmVyc2lvbiA9IExv b3NlVmVyc2lvbihpc3BjX2xsdm1fdmVyc2lvbl9udW1iZXIpCi0taWYgbGx2bV92ZXJzaW9uID49 IExvb3NlVmVyc2lvbigiMTAuMC4wIik6Ci0tICAgIHByaW50KCJMTFZNXzEwXzArOiBZRVMiKQot LSAgICBjb25maWcuYXZhaWxhYmxlX2ZlYXR1cmVzLmFkZCgiTExWTV8xMF8wKyIpCi0tZWxzZToK LS0gICAgcHJpbnQoIkxMVk1fMTBfMCs6IE5PIikKLSAKLSBpZiBsbHZtX3ZlcnNpb24gPj0gTG9v c2VWZXJzaW9uKCIxMi4wLjAiKToKLSAgICAgcHJpbnQoIkxMVk1fMTJfMCs6IFlFUyIpCmRpZmYg LS1naXQgYS9zcmNwa2dzL2lzcGMvcGF0Y2hlcy9sbHZtMTItMDAzLnBhdGNoIGIvc3JjcGtncy9p c3BjL3BhdGNoZXMvbGx2bTEyLTAwMy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDQyM2FmYzllM2Y5Li4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9pc3BjL3BhdGNoZXMv bGx2bTEyLTAwMy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDE1MDQgKzAsMCBAQAotRnJvbSAx ODUxZDE4YjIxM2RiYWQxNjk5MzcwNzYxNzZiMmQ1NTA5NzMzYzc2IE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQotRnJvbTogRGVlcGFrIFJhamVuZHJha3VtYXJhbiA8ZGVlcGFrLnJhamVuZHJha3Vt YXJhbkBpbnRlbC5jb20+Ci1EYXRlOiBUdWUsIDEyIEphbiAyMDIxIDIyOjE1OjEyIC0wODAwCi1T dWJqZWN0OiBbUEFUQ0hdIGZpeGVzICMxODIxIC0gUmVtb3ZpbmcgTExWTUdldE5hbWUoKSBhbmQg c3dpdGNoaW5nIHRvCi0gTExWTTo6VHdpbmUuCi0KLS0tLQotIHNyYy9jdHguY3BwICAgICAgfCAz MDQgKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSBzcmMv Y3R4LmggICAgICAgIHwgIDcyICsrKysrLS0tLS0tCi0gc3JjL2V4cHIuY3BwICAgICB8ICAzNiAr KystLS0KLSBzcmMvbGx2bXV0aWwuY3BwIHwgIDE3IC0tLQotIHNyYy9sbHZtdXRpbC5oICAgfCAg IDUgLQotIHNyYy9vcHQuY3BwICAgICAgfCAxMDMgKysrKysrKysrLS0tLS0tLQotIDYgZmlsZXMg Y2hhbmdlZCwgMjU1IGluc2VydGlvbnMoKyksIDI4MiBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdp dCBhL3NyYy9jdHguY3BwIGIvc3JjL2N0eC5jcHAKLWluZGV4IDQyYzRlYTA5ZC4uZGVkNTI0Yjcx IDEwMDY0NAotLS0tIGEvc3JjL2N0eC5jcHAKLSsrKyBiL3NyYy9jdHguY3BwCi1AQCAtMTAyMCw4 ICsxMDIwLDggQEAgdm9pZCBGdW5jdGlvbkVtaXRDb250ZXh0OjpFbWl0Q2FzZUxhYmVsKGludCB2 YWx1ZSwgYm9vbCBjaGVja01hc2ssIFNvdXJjZVBvcyBwb3MKLSAgICAgbGx2bTo6QmFzaWNCbG9j ayAqYmJDYXNlSW1wbCA9IE5VTEw7Ci0gICAgIGlmIChlbWl0R2VuWEhhcmR3YXJlTWFzaygpKSB7 Ci0gICAgICAgICAvLyBDcmVhdGUgYmFzaWMgYmxvY2sgd2l0aCBhY3R1YWwgY2FzZSBpbXBsZW1l bnRhdGlvbgotLSAgICAgICAgc3RkOjpzdHJpbmcgYmJOYW1lID0gYmJDYXNlLT5nZXROYW1lKCku c3RyKCkgKyAiX2ltcGwiOwotLSAgICAgICAgYmJDYXNlSW1wbCA9IENyZWF0ZUJhc2ljQmxvY2so YmJOYW1lLmNfc3RyKCksIGJiQ2FzZSk7Ci0rICAgICAgICBsbHZtOjpUd2luZSBiYk5hbWUgPSBs bHZtOjpUd2luZShiYkNhc2UtPmdldE5hbWUoKSkgKyAiX2ltcGwiOwotKyAgICAgICAgYmJDYXNl SW1wbCA9IENyZWF0ZUJhc2ljQmxvY2soYmJOYW1lLCBiYkNhc2UpOwotICAgICB9Ci0gI2VuZGlm Ci0gCi1AQCAtMTE4NSw3ICsxMTg1LDcgQEAgYm9vbCBGdW5jdGlvbkVtaXRDb250ZXh0Ojppbml0 TGFiZWxCQmxvY2tzKEFTVE5vZGUgKm5vZGUsIHZvaWQgKmRhdGEpIHsKLSAgICAgaWYgKGN0eC0+ bGFiZWxNYXAuZmluZChscy0+bmFtZSkgIT0gY3R4LT5sYWJlbE1hcC5lbmQoKSkKLSAgICAgICAg IEVycm9yKGxzLT5wb3MsICJNdWx0aXBsZSBsYWJlbHMgbmFtZWQgXCIlc1wiIGluIGZ1bmN0aW9u LiIsIGxzLT5uYW1lLmNfc3RyKCkpOwotICAgICBlbHNlIHsKLS0gICAgICAgIGxsdm06OkJhc2lj QmxvY2sgKmJiID0gY3R4LT5DcmVhdGVCYXNpY0Jsb2NrKGxzLT5uYW1lLmNfc3RyKCkpOwotKyAg ICAgICAgbGx2bTo6QmFzaWNCbG9jayAqYmIgPSBjdHgtPkNyZWF0ZUJhc2ljQmxvY2sobHMtPm5h bWUpOwotICAgICAgICAgY3R4LT5sYWJlbE1hcFtscy0+bmFtZV0gPSBiYjsKLSAgICAgfQotICAg ICByZXR1cm4gdHJ1ZTsKLUBAIC0xMjk5LDcgKzEyOTksNyBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rp b25FbWl0Q29udGV4dDo6QW55KGxsdm06OlZhbHVlICptYXNrKSB7Ci0gICAgIC8vIFdlIGNhbiBh Y3R1YWxseSBjYWxsIGVpdGhlciBvbmUsIHNpbmNlIGJvdGggYXJlIGkzMnMgYXMgZmFyIGFzCi0g ICAgIC8vIExMVk0ncyB0eXBlIHN5c3RlbSBpcyBjb25jZXJuZWQuLi4KLSAgICAgbGx2bTo6RnVu Y3Rpb24gKmZtbSA9IG1tWzBdLT5mdW5jdGlvbjsKLS0gICAgcmV0dXJuIENhbGxJbnN0KGZtbSwg TlVMTCwgbWFzaywgTExWTUdldE5hbWUobWFzaywgIl9hbnkiKSk7Ci0rICAgIHJldHVybiBDYWxs SW5zdChmbW0sIE5VTEwsIG1hc2ssIGxsdm06OlR3aW5lKG1hc2stPmdldE5hbWUoKSkgKyAiX2Fu eSIpOwotIH0KLSAKLSBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6QWxsKGxsdm06 OlZhbHVlICptYXNrKSB7Ci1AQCAtMTMxNSw3ICsxMzE1LDcgQEAgbGx2bTo6VmFsdWUgKkZ1bmN0 aW9uRW1pdENvbnRleHQ6OkFsbChsbHZtOjpWYWx1ZSAqbWFzaykgewotICAgICAvLyBXZSBjYW4g YWN0dWFsbHkgY2FsbCBlaXRoZXIgb25lLCBzaW5jZSBib3RoIGFyZSBpMzJzIGFzIGZhciBhcwot ICAgICAvLyBMTFZNJ3MgdHlwZSBzeXN0ZW0gaXMgY29uY2VybmVkLi4uCi0gICAgIGxsdm06OkZ1 bmN0aW9uICpmbW0gPSBtbVswXS0+ZnVuY3Rpb247Ci0tICAgIHJldHVybiBDYWxsSW5zdChmbW0s IE5VTEwsIG1hc2ssIExMVk1HZXROYW1lKG1hc2ssICJfYWxsIikpOwotKyAgICByZXR1cm4gQ2Fs bEluc3QoZm1tLCBOVUxMLCBtYXNrLCBsbHZtOjpUd2luZShtYXNrLT5nZXROYW1lKCkpICsgIl9h bGwiKTsKLSB9Ci0gCi0gbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6Ok5vbmUobGx2 bTo6VmFsdWUgKm1hc2spIHsKLUBAIC0xMzMxLDcgKzEzMzEsNyBAQCBsbHZtOjpWYWx1ZSAqRnVu Y3Rpb25FbWl0Q29udGV4dDo6Tm9uZShsbHZtOjpWYWx1ZSAqbWFzaykgewotICAgICAvLyBXZSBj YW4gYWN0dWFsbHkgY2FsbCBlaXRoZXIgb25lLCBzaW5jZSBib3RoIGFyZSBpMzJzIGFzIGZhciBh cwotICAgICAvLyBMTFZNJ3MgdHlwZSBzeXN0ZW0gaXMgY29uY2VybmVkLi4uCi0gICAgIGxsdm06 OkZ1bmN0aW9uICpmbW0gPSBtbVswXS0+ZnVuY3Rpb247Ci0tICAgIHJldHVybiBDYWxsSW5zdChm bW0sIE5VTEwsIG1hc2ssIExMVk1HZXROYW1lKG1hc2ssICJfbm9uZSIpKTsKLSsgICAgcmV0dXJu IENhbGxJbnN0KGZtbSwgTlVMTCwgbWFzaywgbGx2bTo6VHdpbmUobWFzay0+Z2V0TmFtZSgpKSAr ICJfbm9uZSIpOwotIH0KLSAKLSBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6TGFu ZU1hc2sobGx2bTo6VmFsdWUgKnYpIHsKLUBAIC0xMzQ5LDcgKzEzNDksNyBAQCBsbHZtOjpWYWx1 ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6TGFuZU1hc2sobGx2bTo6VmFsdWUgKnYpIHsKLSAgICAg Ly8gV2UgY2FuIGFjdHVhbGx5IGNhbGwgZWl0aGVyIG9uZSwgc2luY2UgYm90aCBhcmUgaTMycyBh cyBmYXIgYXMKLSAgICAgLy8gTExWTSdzIHR5cGUgc3lzdGVtIGlzIGNvbmNlcm5lZC4uLgotICAg ICBsbHZtOjpGdW5jdGlvbiAqZm1tID0gbW1bMF0tPmZ1bmN0aW9uOwotLSAgICByZXR1cm4gQ2Fs bEluc3QoZm1tLCBOVUxMLCB2LCBMTFZNR2V0TmFtZSh2LCAiX21vdm1zayIpKTsKLSsgICAgcmV0 dXJuIENhbGxJbnN0KGZtbSwgTlVMTCwgdiwgbGx2bTo6VHdpbmUodi0+Z2V0TmFtZSgpKSArICJf bW92bXNrIik7Ci0gfQotIAotIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpNYXNr c0FsbEVxdWFsKGxsdm06OlZhbHVlICp2MSwgbGx2bTo6VmFsdWUgKnYyKSB7Ci1AQCAtMTM2NCwx MSArMTM2NCwxMiBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6TWFza3NBbGxF cXVhbChsbHZtOjpWYWx1ZSAqdjEsIGxsdm06OlZhbHVlICp2MgotICNlbHNlCi0gICAgIGlmIChn LT50YXJnZXQtPmdldEFyY2goKSA9PSBBcmNoOjp3YXNtMzIpIHsKLSAgICAgICAgIGxsdm06OkZ1 bmN0aW9uICpmbW0gPSBtLT5tb2R1bGUtPmdldEZ1bmN0aW9uKCJfX3dhc21fY21wX21za19lcSIp OwotLSAgICAgICAgcmV0dXJuIENhbGxJbnN0KGZtbSwgTlVMTCwge3YxLCB2Mn0sIExMVk1HZXRO YW1lKCJ3YXNtX2NtcF9tc2tfZXEiLCB2MSwgdjIpKTsKLSsgICAgICAgIHJldHVybiBDYWxsSW5z dChmbW0sIE5VTEwsIHt2MSwgdjJ9LCAoKGxsdm06OlR3aW5lKCJ3YXNtX2NtcF9tc2tfZXFfIikg KyB2MS0+Z2V0TmFtZSgpKSArICJfIikgKyB2Mi0+Z2V0TmFtZSgpKTsKLSAgICAgfQotICAgICBs bHZtOjpWYWx1ZSAqbW0xID0gTGFuZU1hc2sodjEpOwotICAgICBsbHZtOjpWYWx1ZSAqbW0yID0g TGFuZU1hc2sodjIpOwotLSAgICByZXR1cm4gQ21wSW5zdChsbHZtOjpJbnN0cnVjdGlvbjo6SUNt cCwgbGx2bTo6Q21wSW5zdDo6SUNNUF9FUSwgbW0xLCBtbTIsIExMVk1HZXROYW1lKCJlcXVhbCIs IHYxLCB2MikpOwotKyAgICByZXR1cm4gQ21wSW5zdChsbHZtOjpJbnN0cnVjdGlvbjo6SUNtcCwg bGx2bTo6Q21wSW5zdDo6SUNNUF9FUSwgbW0xLCBtbTIsCi0rICAgICAgICAgICAgICAgICAgICgo bGx2bTo6VHdpbmUoImVxdWFsXyIpICsgdjEtPmdldE5hbWUoKSkgKyAiXyIpICsgdjItPmdldE5h bWUoKSk7Ci0gI2VuZGlmCi0gfQotIAotQEAgLTEzOTIsNyArMTM5Myw3IEBAIGxsdm06OlZhbHVl ICpGdW5jdGlvbkVtaXRDb250ZXh0OjpHZXRTdHJpbmdQdHIoY29uc3Qgc3RkOjpzdHJpbmcgJnN0 cikgewotICAgICByZXR1cm4gbmV3IGxsdm06OkJpdENhc3RJbnN0KGxzdHJQdHIsIExMVk1UeXBl czo6Vm9pZFBvaW50ZXJUeXBlLCAic3RyX3ZvaWRfcHRyIiwgYmJsb2NrKTsKLSB9Ci0gCi0tbGx2 bTo6QmFzaWNCbG9jayAqRnVuY3Rpb25FbWl0Q29udGV4dDo6Q3JlYXRlQmFzaWNCbG9jayhjb25z dCBjaGFyICpuYW1lLCBsbHZtOjpCYXNpY0Jsb2NrICppbnNlcnRBZnRlcikgewotK2xsdm06OkJh c2ljQmxvY2sgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkNyZWF0ZUJhc2ljQmxvY2soY29uc3QgbGx2 bTo6VHdpbmUgJm5hbWUsIGxsdm06OkJhc2ljQmxvY2sgKmluc2VydEFmdGVyKSB7Ci0gICAgIGxs dm06OkJhc2ljQmxvY2sgKm5ld0JCID0gbGx2bTo6QmFzaWNCbG9jazo6Q3JlYXRlKCpnLT5jdHgs IG5hbWUsIGxsdm1GdW5jdGlvbik7Ci0gICAgIGlmIChpbnNlcnRBZnRlcikKLSAgICAgICAgIG5l d0JCLT5tb3ZlQWZ0ZXIoaW5zZXJ0QWZ0ZXIpOwotQEAgLTE0MTYsMTQgKzE0MTcsMTUgQEAgbGx2 bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkkxVmVjVG9Cb29sVmVjKGxsdm06OlZhbHVl ICpiKSB7Ci0gCi0gICAgICAgICBmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IGF0LT5nZXRO dW1FbGVtZW50cygpOyArK2kpIHsKLSAgICAgICAgICAgICBsbHZtOjpWYWx1ZSAqZWx0ID0gRXh0 cmFjdEluc3QoYiwgaSk7Ci0tICAgICAgICAgICAgbGx2bTo6VmFsdWUgKnNleHQgPSBTd2l0Y2hC b29sU2l6ZShlbHQsIExMVk1UeXBlczo6Qm9vbFZlY3RvclN0b3JhZ2VUeXBlLCBMTFZNR2V0TmFt ZShlbHQsICJfdG9fYm9vbHZlYyIpKTsKLSsgICAgICAgICAgICBsbHZtOjpWYWx1ZSAqc2V4dCA9 Ci0rICAgICAgICAgICAgICAgIFN3aXRjaEJvb2xTaXplKGVsdCwgTExWTVR5cGVzOjpCb29sVmVj dG9yU3RvcmFnZVR5cGUsIGxsdm06OlR3aW5lKGVsdC0+Z2V0TmFtZSgpKSArICJfdG9fYm9vbHZl YyIpOwotICAgICAgICAgICAgIHJldCA9IEluc2VydEluc3QocmV0LCBzZXh0LCBpKTsKLSAgICAg ICAgIH0KLSAgICAgICAgIHJldHVybiByZXQ7Ci0gICAgIH0gZWxzZSB7Ci0gICAgICAgICAvLyBG b3Igbm9uLWFycmF5IHR5cGVzLCBjb252ZXJ0IHRvICdMTFZNVHlwZXM6OkJvb2xWZWN0b3JUeXBl JyBpZgotICAgICAgICAgLy8gbmVjZXNzYXJ5LgotLSAgICAgICAgcmV0dXJuIFN3aXRjaEJvb2xT aXplKGIsIExMVk1UeXBlczo6Qm9vbFZlY3RvclR5cGUsIExMVk1HZXROYW1lKGIsICJfdG9fYm9v bHZlYyIpKTsKLSsgICAgICAgIHJldHVybiBTd2l0Y2hCb29sU2l6ZShiLCBMTFZNVHlwZXM6OkJv b2xWZWN0b3JUeXBlLCBsbHZtOjpUd2luZShiLT5nZXROYW1lKCkpICsgIl90b19ib29sdmVjIik7 Ci0gICAgIH0KLSB9Ci0gCi1AQCAtMTU2Myw3ICsxNTY1LDcgQEAgc3RhdGljIGludCBsQXJyYXlW ZWN0b3JXaWR0aChsbHZtOjpUeXBlICp0KSB7Ci0gfQotIAotIGxsdm06OlZhbHVlICpGdW5jdGlv bkVtaXRDb250ZXh0OjpCaW5hcnlPcGVyYXRvcihsbHZtOjpJbnN0cnVjdGlvbjo6QmluYXJ5T3Bz IGluc3QsIGxsdm06OlZhbHVlICp2MCwgbGx2bTo6VmFsdWUgKnYxLAotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpuYW1lKSB7Ci0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGxs dm06OlR3aW5lICZuYW1lKSB7Ci0gICAgIGlmICh2MCA9PSBOVUxMIHx8IHYxID09IE5VTEwpIHsK LSAgICAgICAgIEFzc2VydFBvcyhjdXJyZW50UG9zLCBtLT5lcnJvckNvdW50ID4gMCk7Ci0gICAg ICAgICByZXR1cm4gTlVMTDsKLUBAIC0xNTczLDcgKzE1NzUsNyBAQCBsbHZtOjpWYWx1ZSAqRnVu Y3Rpb25FbWl0Q29udGV4dDo6QmluYXJ5T3BlcmF0b3IobGx2bTo6SW5zdHJ1Y3Rpb246OkJpbmFy eU9wcyBpbgotICAgICBsbHZtOjpUeXBlICp0eXBlID0gdjAtPmdldFR5cGUoKTsKLSAgICAgaW50 IGFycmF5U2l6ZSA9IGxBcnJheVZlY3RvcldpZHRoKHR5cGUpOwotICAgICBpZiAoYXJyYXlTaXpl ID09IDApIHsKLS0gICAgICAgIGxsdm06Okluc3RydWN0aW9uICpib3AgPSBsbHZtOjpCaW5hcnlP cGVyYXRvcjo6Q3JlYXRlKGluc3QsIHYwLCB2MSwgbmFtZSA/IG5hbWUgOiAiIiwgYmJsb2NrKTsK LSsgICAgICAgIGxsdm06Okluc3RydWN0aW9uICpib3AgPSBsbHZtOjpCaW5hcnlPcGVyYXRvcjo6 Q3JlYXRlKGluc3QsIHYwLCB2MSwgbmFtZSwgYmJsb2NrKTsKLSAgICAgICAgIEFkZERlYnVnUG9z KGJvcCk7Ci0gICAgICAgICByZXR1cm4gYm9wOwotICAgICB9IGVsc2UgewotQEAgLTE1OTEsNyAr MTU5Myw3IEBAIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpCaW5hcnlPcGVyYXRv cihsbHZtOjpJbnN0cnVjdGlvbjo6QmluYXJ5T3BzIGluCi0gICAgIH0KLSB9Ci0gCi0tbGx2bTo6 VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6Ok5vdE9wZXJhdG9yKGxsdm06OlZhbHVlICp2LCBj b25zdCBjaGFyICpuYW1lKSB7Ci0rbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6Ok5v dE9wZXJhdG9yKGxsdm06OlZhbHVlICp2LCBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSkgewotICAg ICBpZiAodiA9PSBOVUxMKSB7Ci0gICAgICAgICBBc3NlcnRQb3MoY3VycmVudFBvcywgbS0+ZXJy b3JDb3VudCA+IDApOwotICAgICAgICAgcmV0dXJuIE5VTEw7Ci1AQCAtMTYwMywxNCArMTYwNSwx NCBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6Tm90T3BlcmF0b3IobGx2bTo6 VmFsdWUgKnYsIGNvbnN0IGNoYXIgKm5hbWUpCi0gICAgIGxsdm06OlR5cGUgKnR5cGUgPSB2LT5n ZXRUeXBlKCk7Ci0gICAgIGludCBhcnJheVNpemUgPSBsQXJyYXlWZWN0b3JXaWR0aCh0eXBlKTsK LSAgICAgaWYgKGFycmF5U2l6ZSA9PSAwKSB7Ci0tICAgICAgICBsbHZtOjpJbnN0cnVjdGlvbiAq Ymluc3QgPSBsbHZtOjpCaW5hcnlPcGVyYXRvcjo6Q3JlYXRlTm90KHYsIG5hbWUgPyBuYW1lIDog Im5vdCIsIGJibG9jayk7Ci0rICAgICAgICBsbHZtOjpJbnN0cnVjdGlvbiAqYmluc3QgPSBsbHZt OjpCaW5hcnlPcGVyYXRvcjo6Q3JlYXRlTm90KHYsIG5hbWUuaXNUcml2aWFsbHlFbXB0eSgpID8g Im5vdCIgOiBuYW1lLCBiYmxvY2spOwotICAgICAgICAgQWRkRGVidWdQb3MoYmluc3QpOwotICAg ICAgICAgcmV0dXJuIGJpbnN0OwotICAgICB9IGVsc2UgewotICAgICAgICAgbGx2bTo6VmFsdWUg KnJldCA9IGxsdm06OlVuZGVmVmFsdWU6OmdldCh0eXBlKTsKLSAgICAgICAgIGZvciAoaW50IGkg PSAwOyBpIDwgYXJyYXlTaXplOyArK2kpIHsKLSAgICAgICAgICAgICBsbHZtOjpWYWx1ZSAqYSA9 IEV4dHJhY3RJbnN0KHYsIGkpOwotLSAgICAgICAgICAgIGxsdm06OlZhbHVlICpvcCA9IGxsdm06 OkJpbmFyeU9wZXJhdG9yOjpDcmVhdGVOb3QoYSwgbmFtZSA/IG5hbWUgOiAibm90IiwgYmJsb2Nr KTsKLSsgICAgICAgICAgICBsbHZtOjpWYWx1ZSAqb3AgPSBsbHZtOjpCaW5hcnlPcGVyYXRvcjo6 Q3JlYXRlTm90KGEsIG5hbWUuaXNUcml2aWFsbHlFbXB0eSgpID8gIm5vdCIgOiBuYW1lLCBiYmxv Y2spOwotICAgICAgICAgICAgIEFkZERlYnVnUG9zKG9wKTsKLSAgICAgICAgICAgICByZXQgPSBJ bnNlcnRJbnN0KHJldCwgb3AsIGkpOwotICAgICAgICAgfQotQEAgLTE2MzgsNyArMTY0MCw3IEBA IHN0YXRpYyBsbHZtOjpUeXBlICpsR2V0TWF0Y2hpbmdCb29sVmVjdG9yVHlwZShsbHZtOjpUeXBl ICp0eXBlKSB7Ci0gfQotIAotIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpDbXBJ bnN0KGxsdm06Okluc3RydWN0aW9uOjpPdGhlck9wcyBpbnN0LCBsbHZtOjpDbXBJbnN0OjpQcmVk aWNhdGUgcHJlZCwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBs bHZtOjpWYWx1ZSAqdjAsIGxsdm06OlZhbHVlICp2MSwgY29uc3QgY2hhciAqbmFtZSkgewotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06OlZhbHVlICp2MCwg bGx2bTo6VmFsdWUgKnYxLCBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSkgewotICAgICBpZiAodjAg PT0gTlVMTCB8fCB2MSA9PSBOVUxMKSB7Ci0gICAgICAgICBBc3NlcnRQb3MoY3VycmVudFBvcywg bS0+ZXJyb3JDb3VudCA+IDApOwotICAgICAgICAgcmV0dXJuIE5VTEw7Ci1AQCAtMTY0OCw3ICsx NjUwLDggQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkNtcEluc3QobGx2bTo6 SW5zdHJ1Y3Rpb246Ok90aGVyT3BzIGluc3QsIGxsdm0KLSAgICAgbGx2bTo6VHlwZSAqdHlwZSA9 IHYwLT5nZXRUeXBlKCk7Ci0gICAgIGludCBhcnJheVNpemUgPSBsQXJyYXlWZWN0b3JXaWR0aCh0 eXBlKTsKLSAgICAgaWYgKGFycmF5U2l6ZSA9PSAwKSB7Ci0tICAgICAgICBsbHZtOjpJbnN0cnVj dGlvbiAqY2kgPSBsbHZtOjpDbXBJbnN0OjpDcmVhdGUoaW5zdCwgcHJlZCwgdjAsIHYxLCBuYW1l ID8gbmFtZSA6ICJjbXAiLCBiYmxvY2spOwotKyAgICAgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmNp ID0KLSsgICAgICAgICAgICBsbHZtOjpDbXBJbnN0OjpDcmVhdGUoaW5zdCwgcHJlZCwgdjAsIHYx LCBuYW1lLmlzVHJpdmlhbGx5RW1wdHkoKSA/ICJjbXAiIDogbmFtZSwgYmJsb2NrKTsKLSAgICAg ICAgIEFkZERlYnVnUG9zKGNpKTsKLSAgICAgICAgIHJldHVybiBjaTsKLSAgICAgfSBlbHNlIHsK LUBAIC0xNjU3LDE0ICsxNjYwLDE0IEBAIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0 OjpDbXBJbnN0KGxsdm06Okluc3RydWN0aW9uOjpPdGhlck9wcyBpbnN0LCBsbHZtCi0gICAgICAg ICBmb3IgKGludCBpID0gMDsgaSA8IGFycmF5U2l6ZTsgKytpKSB7Ci0gICAgICAgICAgICAgbGx2 bTo6VmFsdWUgKmEgPSBFeHRyYWN0SW5zdCh2MCwgaSk7Ci0gICAgICAgICAgICAgbGx2bTo6VmFs dWUgKmIgPSBFeHRyYWN0SW5zdCh2MSwgaSk7Ci0tICAgICAgICAgICAgbGx2bTo6VmFsdWUgKm9w ID0gQ21wSW5zdChpbnN0LCBwcmVkLCBhLCBiLCBuYW1lKTsKLSsgICAgICAgICAgICBsbHZtOjpW YWx1ZSAqb3AgPSBDbXBJbnN0KGluc3QsIHByZWQsIGEsIGIsIG5hbWUuaXNUcml2aWFsbHlFbXB0 eSgpID8gImNtcCIgOiBuYW1lKTsKLSAgICAgICAgICAgICByZXQgPSBJbnNlcnRJbnN0KHJldCwg b3AsIGkpOwotICAgICAgICAgfQotICAgICAgICAgcmV0dXJuIHJldDsKLSAgICAgfQotIH0KLSAK LS1sbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6U21lYXJVbmlmb3JtKGxsdm06OlZh bHVlICp2YWx1ZSwgY29uc3QgY2hhciAqbmFtZSkgewotK2xsdm06OlZhbHVlICpGdW5jdGlvbkVt aXRDb250ZXh0OjpTbWVhclVuaWZvcm0obGx2bTo6VmFsdWUgKnZhbHVlLCBjb25zdCBsbHZtOjpU d2luZSAmbmFtZSkgewotICAgICBpZiAodmFsdWUgPT0gTlVMTCkgewotICAgICAgICAgQXNzZXJ0 UG9zKGN1cnJlbnRQb3MsIG0tPmVycm9yQ291bnQgPiAwKTsKLSAgICAgICAgIHJldHVybiBOVUxM OwotQEAgLTE3MDQsMjEgKzE3MDcsMTkgQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRl eHQ6OlNtZWFyVW5pZm9ybShsbHZtOjpWYWx1ZSAqdmFsdWUsIGNvbnN0IGNoYXIgKm4KLSAgICAg cmV0dXJuIHJldDsKLSB9Ci0gCi0tbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkJp dENhc3RJbnN0KGxsdm06OlZhbHVlICp2YWx1ZSwgbGx2bTo6VHlwZSAqdHlwZSwgY29uc3QgY2hh ciAqbmFtZSkgewotK2xsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpCaXRDYXN0SW5z dChsbHZtOjpWYWx1ZSAqdmFsdWUsIGxsdm06OlR5cGUgKnR5cGUsIGNvbnN0IGxsdm06OlR3aW5l ICZuYW1lKSB7Ci0gICAgIGlmICh2YWx1ZSA9PSBOVUxMKSB7Ci0gICAgICAgICBBc3NlcnRQb3Mo Y3VycmVudFBvcywgbS0+ZXJyb3JDb3VudCA+IDApOwotICAgICAgICAgcmV0dXJuIE5VTEw7Ci0g ICAgIH0KLSAKLS0gICAgaWYgKG5hbWUgPT0gTlVMTCkKLS0gICAgICAgIG5hbWUgPSBMTFZNR2V0 TmFtZSh2YWx1ZSwgIl9iaXRjYXN0Iik7Ci0tCi0tICAgIGxsdm06Okluc3RydWN0aW9uICppbnN0 ID0gbmV3IGxsdm06OkJpdENhc3RJbnN0KHZhbHVlLCB0eXBlLCBuYW1lLCBiYmxvY2spOwotKyAg ICBsbHZtOjpJbnN0cnVjdGlvbiAqaW5zdCA9IG5ldyBsbHZtOjpCaXRDYXN0SW5zdCgKLSsgICAg ICAgIHZhbHVlLCB0eXBlLCBuYW1lLmlzVHJpdmlhbGx5RW1wdHkoKSA/IGxsdm06OlR3aW5lKHZh bHVlLT5nZXROYW1lKCkpICsgIl9iaXRjYXN0IiA6IG5hbWUsIGJibG9jayk7Ci0gICAgIEFkZERl YnVnUG9zKGluc3QpOwotICAgICByZXR1cm4gaW5zdDsKLSB9Ci0gCi0tbGx2bTo6VmFsdWUgKkZ1 bmN0aW9uRW1pdENvbnRleHQ6OlB0clRvSW50SW5zdChsbHZtOjpWYWx1ZSAqdmFsdWUsIGNvbnN0 IGNoYXIgKm5hbWUpIHsKLStsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6UHRyVG9J bnRJbnN0KGxsdm06OlZhbHVlICp2YWx1ZSwgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUpIHsKLSAg ICAgaWYgKHZhbHVlID09IE5VTEwpIHsKLSAgICAgICAgIEFzc2VydFBvcyhjdXJyZW50UG9zLCBt LT5lcnJvckNvdW50ID4gMCk7Ci0gICAgICAgICByZXR1cm4gTlVMTDsKLUBAIC0xNzI4LDIzICsx NzI5LDE5IEBAIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpQdHJUb0ludEluc3Qo bGx2bTo6VmFsdWUgKnZhbHVlLCBjb25zdCBjaGFyICpuCi0gICAgICAgICAvLyBuby1vcCBmb3Ig dmFyeWluZyBwb2ludGVyczsgdGhleSdyZSBhbHJlYWR5IHZlY3RvcnMgb2YgaW50cwotICAgICAg ICAgcmV0dXJuIHZhbHVlOwotIAotLSAgICBpZiAobmFtZSA9PSBOVUxMKQotLSAgICAgICAgbmFt ZSA9IExMVk1HZXROYW1lKHZhbHVlLCAiX3B0cjJpbnQiKTsKLSAgICAgbGx2bTo6VHlwZSAqdHlw ZSA9IExMVk1UeXBlczo6UG9pbnRlckludFR5cGU7Ci0tICAgIGxsdm06Okluc3RydWN0aW9uICpp bnN0ID0gbmV3IGxsdm06OlB0clRvSW50SW5zdCh2YWx1ZSwgdHlwZSwgbmFtZSwgYmJsb2NrKTsK LSsgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmluc3QgPSBuZXcgbGx2bTo6UHRyVG9JbnRJbnN0KAot KyAgICAgICAgdmFsdWUsIHR5cGUsIG5hbWUuaXNUcml2aWFsbHlFbXB0eSgpID8gbGx2bTo6VHdp bmUodmFsdWUtPmdldE5hbWUoKSkgKyAiX3B0cjJpbnQiIDogbmFtZSwgYmJsb2NrKTsKLSAgICAg QWRkRGVidWdQb3MoaW5zdCk7Ci0gICAgIHJldHVybiBpbnN0OwotIH0KLSAKLS1sbHZtOjpWYWx1 ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6UHRyVG9JbnRJbnN0KGxsdm06OlZhbHVlICp2YWx1ZSwg bGx2bTo6VHlwZSAqdG9UeXBlLCBjb25zdCBjaGFyICpuYW1lKSB7Ci0rbGx2bTo6VmFsdWUgKkZ1 bmN0aW9uRW1pdENvbnRleHQ6OlB0clRvSW50SW5zdChsbHZtOjpWYWx1ZSAqdmFsdWUsIGxsdm06 OlR5cGUgKnRvVHlwZSwgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUpIHsKLSAgICAgaWYgKHZhbHVl ID09IE5VTEwpIHsKLSAgICAgICAgIEFzc2VydFBvcyhjdXJyZW50UG9zLCBtLT5lcnJvckNvdW50 ID4gMCk7Ci0gICAgICAgICByZXR1cm4gTlVMTDsKLSAgICAgfQotIAotLSAgICBpZiAobmFtZSA9 PSBOVUxMKQotLSAgICAgICAgbmFtZSA9IExMVk1HZXROYW1lKHZhbHVlLCAiX3B0cjJpbnQiKTsK LS0KLSAgICAgbGx2bTo6VHlwZSAqZnJvbVR5cGUgPSB2YWx1ZS0+Z2V0VHlwZSgpOwotICAgICBp ZiAobGx2bTo6aXNhPGxsdm06OlZlY3RvclR5cGU+KGZyb21UeXBlKSkgewotICAgICAgICAgLy8g dmFyeWluZyBwb2ludGVyCi1AQCAtMTc1MiwyNyArMTc0OSwyNiBAQCBsbHZtOjpWYWx1ZSAqRnVu Y3Rpb25FbWl0Q29udGV4dDo6UHRyVG9JbnRJbnN0KGxsdm06OlZhbHVlICp2YWx1ZSwgbGx2bTo6 VHlwZSAqdAotICAgICAgICAgICAgIC8vIGFscmVhZHkgdGhlIHJpZ2h0IHR5cGUtLWRvbmUKLSAg ICAgICAgICAgICByZXR1cm4gdmFsdWU7Ci0gICAgICAgICBlbHNlIGlmIChmcm9tVHlwZS0+Z2V0 U2NhbGFyU2l6ZUluQml0cygpID4gdG9UeXBlLT5nZXRTY2FsYXJTaXplSW5CaXRzKCkpCi0tICAg ICAgICAgICAgcmV0dXJuIFRydW5jSW5zdCh2YWx1ZSwgdG9UeXBlLCBuYW1lKTsKLSsgICAgICAg ICAgICByZXR1cm4gVHJ1bmNJbnN0KHZhbHVlLCB0b1R5cGUsCi0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBuYW1lLmlzVHJpdmlhbGx5RW1wdHkoKSA/IGxsdm06OlR3aW5lKHZhbHVlLT5n ZXROYW1lKCkpICsgIl9wdHIyaW50IiA6IG5hbWUpOwotICAgICAgICAgZWxzZSB7Ci0gICAgICAg ICAgICAgQXNzZXJ0UG9zKGN1cnJlbnRQb3MsIGZyb21UeXBlLT5nZXRTY2FsYXJTaXplSW5CaXRz KCkgPCB0b1R5cGUtPmdldFNjYWxhclNpemVJbkJpdHMoKSk7Ci0tICAgICAgICAgICAgcmV0dXJu IFpFeHRJbnN0KHZhbHVlLCB0b1R5cGUsIG5hbWUpOwotKyAgICAgICAgICAgIHJldHVybiBaRXh0 SW5zdCh2YWx1ZSwgdG9UeXBlLCBuYW1lLmlzVHJpdmlhbGx5RW1wdHkoKSA/IGxsdm06OlR3aW5l KHZhbHVlLT5nZXROYW1lKCkpICsgIl9wdHIyaW50IiA6IG5hbWUpOwotICAgICAgICAgfQotICAg ICB9Ci0gCi0tICAgIGxsdm06Okluc3RydWN0aW9uICppbnN0ID0gbmV3IGxsdm06OlB0clRvSW50 SW5zdCh2YWx1ZSwgdG9UeXBlLCBuYW1lLCBiYmxvY2spOwotKyAgICBsbHZtOjpJbnN0cnVjdGlv biAqaW5zdCA9IG5ldyBsbHZtOjpQdHJUb0ludEluc3QoCi0rICAgICAgICB2YWx1ZSwgdG9UeXBl LCBuYW1lLmlzVHJpdmlhbGx5RW1wdHkoKSA/IGxsdm06OlR3aW5lKHZhbHVlLT5nZXROYW1lKCkp ICsgIl9wdHIyaW50IiA6IG5hbWUsIGJibG9jayk7Ci0gICAgIEFkZERlYnVnUG9zKGluc3QpOwot ICAgICByZXR1cm4gaW5zdDsKLSB9Ci0gCi0tbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRl eHQ6OkludFRvUHRySW5zdChsbHZtOjpWYWx1ZSAqdmFsdWUsIGxsdm06OlR5cGUgKnRvVHlwZSwg Y29uc3QgY2hhciAqbmFtZSkgewotK2xsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpJ bnRUb1B0ckluc3QobGx2bTo6VmFsdWUgKnZhbHVlLCBsbHZtOjpUeXBlICp0b1R5cGUsIGNvbnN0 IGxsdm06OlR3aW5lICZuYW1lKSB7Ci0gICAgIGlmICh2YWx1ZSA9PSBOVUxMKSB7Ci0gICAgICAg ICBBc3NlcnRQb3MoY3VycmVudFBvcywgbS0+ZXJyb3JDb3VudCA+IDApOwotICAgICAgICAgcmV0 dXJuIE5VTEw7Ci0gICAgIH0KLSAKLS0gICAgaWYgKG5hbWUgPT0gTlVMTCkKLS0gICAgICAgIG5h bWUgPSBMTFZNR2V0TmFtZSh2YWx1ZSwgIl9pbnQycHRyIik7Ci0tCi0gICAgIGxsdm06OlR5cGUg KmZyb21UeXBlID0gdmFsdWUtPmdldFR5cGUoKTsKLSAgICAgaWYgKGxsdm06OmlzYTxsbHZtOjpW ZWN0b3JUeXBlPihmcm9tVHlwZSkpIHsKLSAgICAgICAgIC8vIHZhcnlpbmcgcG9pbnRlcgotQEAg LTE3ODAsOTUgKzE3NzYsODcgQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6Oklu dFRvUHRySW5zdChsbHZtOjpWYWx1ZSAqdmFsdWUsIGxsdm06OlR5cGUgKnQKLSAgICAgICAgICAg ICAvLyBkb25lCi0gICAgICAgICAgICAgcmV0dXJuIHZhbHVlOwotICAgICAgICAgZWxzZSBpZiAo ZnJvbVR5cGUtPmdldFNjYWxhclNpemVJbkJpdHMoKSA+IHRvVHlwZS0+Z2V0U2NhbGFyU2l6ZUlu Qml0cygpKQotLSAgICAgICAgICAgIHJldHVybiBUcnVuY0luc3QodmFsdWUsIHRvVHlwZSwgbmFt ZSk7Ci0rICAgICAgICAgICAgcmV0dXJuIFRydW5jSW5zdCh2YWx1ZSwgdG9UeXBlLAotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgbmFtZS5pc1RyaXZpYWxseUVtcHR5KCkgPyBsbHZtOjpU d2luZSh2YWx1ZS0+Z2V0TmFtZSgpKSArICJfaW50MnB0ciIgOiBuYW1lKTsKLSAgICAgICAgIGVs c2UgewotICAgICAgICAgICAgIEFzc2VydFBvcyhjdXJyZW50UG9zLCBmcm9tVHlwZS0+Z2V0U2Nh bGFyU2l6ZUluQml0cygpIDwgdG9UeXBlLT5nZXRTY2FsYXJTaXplSW5CaXRzKCkpOwotLSAgICAg ICAgICAgIHJldHVybiBaRXh0SW5zdCh2YWx1ZSwgdG9UeXBlLCBuYW1lKTsKLSsgICAgICAgICAg ICByZXR1cm4gWkV4dEluc3QodmFsdWUsIHRvVHlwZSwgbmFtZS5pc1RyaXZpYWxseUVtcHR5KCkg PyBsbHZtOjpUd2luZSh2YWx1ZS0+Z2V0TmFtZSgpKSArICJfaW50MnB0ciIgOiBuYW1lKTsKLSAg ICAgICAgIH0KLSAgICAgfQotIAotLSAgICBsbHZtOjpJbnN0cnVjdGlvbiAqaW5zdCA9IG5ldyBs bHZtOjpJbnRUb1B0ckluc3QodmFsdWUsIHRvVHlwZSwgbmFtZSwgYmJsb2NrKTsKLSsgICAgbGx2 bTo6SW5zdHJ1Y3Rpb24gKmluc3QgPSBuZXcgbGx2bTo6SW50VG9QdHJJbnN0KAotKyAgICAgICAg dmFsdWUsIHRvVHlwZSwgbmFtZS5pc1RyaXZpYWxseUVtcHR5KCkgPyBsbHZtOjpUd2luZSh2YWx1 ZS0+Z2V0TmFtZSgpKSArICJfaW50MnB0ciIgOiBuYW1lLCBiYmxvY2spOwotICAgICBBZGREZWJ1 Z1BvcyhpbnN0KTsKLSAgICAgcmV0dXJuIGluc3Q7Ci0gfQotIAotLWxsdm06Okluc3RydWN0aW9u ICpGdW5jdGlvbkVtaXRDb250ZXh0OjpUcnVuY0luc3QobGx2bTo6VmFsdWUgKnZhbHVlLCBsbHZt OjpUeXBlICp0eXBlLCBjb25zdCBjaGFyICpuYW1lKSB7Ci0rbGx2bTo6SW5zdHJ1Y3Rpb24gKkZ1 bmN0aW9uRW1pdENvbnRleHQ6OlRydW5jSW5zdChsbHZtOjpWYWx1ZSAqdmFsdWUsIGxsdm06OlR5 cGUgKnR5cGUsIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lKSB7Ci0gICAgIGlmICh2YWx1ZSA9PSBO VUxMKSB7Ci0gICAgICAgICBBc3NlcnRQb3MoY3VycmVudFBvcywgbS0+ZXJyb3JDb3VudCA+IDAp OwotICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgIH0KLSAKLS0gICAgaWYgKG5hbWUgPT0gTlVM TCkKLS0gICAgICAgIG5hbWUgPSBMTFZNR2V0TmFtZSh2YWx1ZSwgIl90cnVuYyIpOwotLQotICAg ICAvLyBUT0RPOiB3ZSBzaG91bGQgcHJvYmFibHkgaGFuZGxlIHRoZSBhcnJheSBjYXNlIGFzIGlu Ci0gICAgIC8vIGUuZy4gQml0Q2FzdEluc3QoKSwgYnV0IHdlIGRvbid0IGN1cnJlbnRseSBuZWVk IHRoYXQgZnVuY3Rpb25hbGl0eQotLSAgICBsbHZtOjpJbnN0cnVjdGlvbiAqaW5zdCA9IG5ldyBs bHZtOjpUcnVuY0luc3QodmFsdWUsIHR5cGUsIG5hbWUsIGJibG9jayk7Ci0rICAgIGxsdm06Oklu c3RydWN0aW9uICppbnN0ID0gbmV3IGxsdm06OlRydW5jSW5zdCgKLSsgICAgICAgIHZhbHVlLCB0 eXBlLCBuYW1lLmlzVHJpdmlhbGx5RW1wdHkoKSA/IGxsdm06OlR3aW5lKHZhbHVlLT5nZXROYW1l KCkpICsgIl90cnVuYyIgOiBuYW1lLCBiYmxvY2spOwotICAgICBBZGREZWJ1Z1BvcyhpbnN0KTsK LSAgICAgcmV0dXJuIGluc3Q7Ci0gfQotIAotIGxsdm06Okluc3RydWN0aW9uICpGdW5jdGlvbkVt aXRDb250ZXh0OjpDYXN0SW5zdChsbHZtOjpJbnN0cnVjdGlvbjo6Q2FzdE9wcyBvcCwgbGx2bTo6 VmFsdWUgKnZhbHVlLCBsbHZtOjpUeXBlICp0eXBlLAotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpuYW1lKSB7Ci0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGxsdm06OlR3aW5l ICZuYW1lKSB7Ci0gICAgIGlmICh2YWx1ZSA9PSBOVUxMKSB7Ci0gICAgICAgICBBc3NlcnRQb3Mo Y3VycmVudFBvcywgbS0+ZXJyb3JDb3VudCA+IDApOwotICAgICAgICAgcmV0dXJuIE5VTEw7Ci0g ICAgIH0KLSAKLS0gICAgaWYgKG5hbWUgPT0gTlVMTCkKLS0gICAgICAgIG5hbWUgPSBMTFZNR2V0 TmFtZSh2YWx1ZSwgIl9jYXN0Iik7Ci0tCi0gICAgIC8vIFRPRE86IHdlIHNob3VsZCBwcm9iYWJs eSBoYW5kbGUgdGhlIGFycmF5IGNhc2UgYXMgaW4KLSAgICAgLy8gZS5nLiBCaXRDYXN0SW5zdCgp LCBidXQgd2UgZG9uJ3QgY3VycmVudGx5IG5lZWQgdGhhdCBmdW5jdGlvbmFsaXR5Ci0tICAgIGxs dm06Okluc3RydWN0aW9uICppbnN0ID0gbGx2bTo6Q2FzdEluc3Q6OkNyZWF0ZShvcCwgdmFsdWUs IHR5cGUsIG5hbWUsIGJibG9jayk7Ci0rICAgIGxsdm06Okluc3RydWN0aW9uICppbnN0ID0gbGx2 bTo6Q2FzdEluc3Q6OkNyZWF0ZSgKLSsgICAgICAgIG9wLCB2YWx1ZSwgdHlwZSwgbmFtZS5pc1Ry aXZpYWxseUVtcHR5KCkgPyBsbHZtOjpUd2luZSh2YWx1ZS0+Z2V0TmFtZSgpKSArICJfY2FzdCIg OiBuYW1lLCBiYmxvY2spOwotICAgICBBZGREZWJ1Z1BvcyhpbnN0KTsKLSAgICAgcmV0dXJuIGlu c3Q7Ci0gfQotIAotLWxsdm06Okluc3RydWN0aW9uICpGdW5jdGlvbkVtaXRDb250ZXh0OjpGUENh c3RJbnN0KGxsdm06OlZhbHVlICp2YWx1ZSwgbGx2bTo6VHlwZSAqdHlwZSwgY29uc3QgY2hhciAq bmFtZSkgewotK2xsdm06Okluc3RydWN0aW9uICpGdW5jdGlvbkVtaXRDb250ZXh0OjpGUENhc3RJ bnN0KGxsdm06OlZhbHVlICp2YWx1ZSwgbGx2bTo6VHlwZSAqdHlwZSwgY29uc3QgbGx2bTo6VHdp bmUgJm5hbWUpIHsKLSAgICAgaWYgKHZhbHVlID09IE5VTEwpIHsKLSAgICAgICAgIEFzc2VydFBv cyhjdXJyZW50UG9zLCBtLT5lcnJvckNvdW50ID4gMCk7Ci0gICAgICAgICByZXR1cm4gTlVMTDsK LSAgICAgfQotIAotLSAgICBpZiAobmFtZSA9PSBOVUxMKQotLSAgICAgICAgbmFtZSA9IExMVk1H ZXROYW1lKHZhbHVlLCAiX2Nhc3QiKTsKLS0KLSAgICAgLy8gVE9ETzogd2Ugc2hvdWxkIHByb2Jh Ymx5IGhhbmRsZSB0aGUgYXJyYXkgY2FzZSBhcyBpbgotICAgICAvLyBlLmcuIEJpdENhc3RJbnN0 KCksIGJ1dCB3ZSBkb24ndCBjdXJyZW50bHkgbmVlZCB0aGF0IGZ1bmN0aW9uYWxpdHkKLS0gICAg bGx2bTo6SW5zdHJ1Y3Rpb24gKmluc3QgPSBsbHZtOjpDYXN0SW5zdDo6Q3JlYXRlRlBDYXN0KHZh bHVlLCB0eXBlLCBuYW1lLCBiYmxvY2spOwotKyAgICBsbHZtOjpJbnN0cnVjdGlvbiAqaW5zdCA9 IGxsdm06OkNhc3RJbnN0OjpDcmVhdGVGUENhc3QoCi0rICAgICAgICB2YWx1ZSwgdHlwZSwgbmFt ZS5pc1RyaXZpYWxseUVtcHR5KCkgPyBsbHZtOjpUd2luZSh2YWx1ZS0+Z2V0TmFtZSgpKSArICJf Y2FzdCIgOiBuYW1lLCBiYmxvY2spOwotICAgICBBZGREZWJ1Z1BvcyhpbnN0KTsKLSAgICAgcmV0 dXJuIGluc3Q7Ci0gfQotIAotLWxsdm06Okluc3RydWN0aW9uICpGdW5jdGlvbkVtaXRDb250ZXh0 OjpTRXh0SW5zdChsbHZtOjpWYWx1ZSAqdmFsdWUsIGxsdm06OlR5cGUgKnR5cGUsIGNvbnN0IGNo YXIgKm5hbWUpIHsKLStsbHZtOjpJbnN0cnVjdGlvbiAqRnVuY3Rpb25FbWl0Q29udGV4dDo6U0V4 dEluc3QobGx2bTo6VmFsdWUgKnZhbHVlLCBsbHZtOjpUeXBlICp0eXBlLCBjb25zdCBsbHZtOjpU d2luZSAmbmFtZSkgewotICAgICBpZiAodmFsdWUgPT0gTlVMTCkgewotICAgICAgICAgQXNzZXJ0 UG9zKGN1cnJlbnRQb3MsIG0tPmVycm9yQ291bnQgPiAwKTsKLSAgICAgICAgIHJldHVybiBOVUxM OwotICAgICB9Ci0gCi0tICAgIGlmIChuYW1lID09IE5VTEwpCi0tICAgICAgICBuYW1lID0gTExW TUdldE5hbWUodmFsdWUsICJfc2V4dCIpOwotLQotICAgICAvLyBUT0RPOiB3ZSBzaG91bGQgcHJv YmFibHkgaGFuZGxlIHRoZSBhcnJheSBjYXNlIGFzIGluCi0gICAgIC8vIGUuZy4gQml0Q2FzdElu c3QoKSwgYnV0IHdlIGRvbid0IGN1cnJlbnRseSBuZWVkIHRoYXQgZnVuY3Rpb25hbGl0eQotLSAg ICBsbHZtOjpJbnN0cnVjdGlvbiAqaW5zdCA9IG5ldyBsbHZtOjpTRXh0SW5zdCh2YWx1ZSwgdHlw ZSwgbmFtZSwgYmJsb2NrKTsKLSsgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmluc3QgPSBuZXcgbGx2 bTo6U0V4dEluc3QoCi0rICAgICAgICB2YWx1ZSwgdHlwZSwgbmFtZS5pc1RyaXZpYWxseUVtcHR5 KCkgPyBsbHZtOjpUd2luZSh2YWx1ZS0+Z2V0TmFtZSgpKSArICJfc2V4dCIgOiBuYW1lLCBiYmxv Y2spOwotICAgICBBZGREZWJ1Z1BvcyhpbnN0KTsKLSAgICAgcmV0dXJuIGluc3Q7Ci0gfQotIAot LWxsdm06Okluc3RydWN0aW9uICpGdW5jdGlvbkVtaXRDb250ZXh0OjpaRXh0SW5zdChsbHZtOjpW YWx1ZSAqdmFsdWUsIGxsdm06OlR5cGUgKnR5cGUsIGNvbnN0IGNoYXIgKm5hbWUpIHsKLStsbHZt OjpJbnN0cnVjdGlvbiAqRnVuY3Rpb25FbWl0Q29udGV4dDo6WkV4dEluc3QobGx2bTo6VmFsdWUg KnZhbHVlLCBsbHZtOjpUeXBlICp0eXBlLCBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSkgewotICAg ICBpZiAodmFsdWUgPT0gTlVMTCkgewotICAgICAgICAgQXNzZXJ0UG9zKGN1cnJlbnRQb3MsIG0t PmVycm9yQ291bnQgPiAwKTsKLSAgICAgICAgIHJldHVybiBOVUxMOwotICAgICB9Ci0gCi0tICAg IGlmIChuYW1lID09IE5VTEwpCi0tICAgICAgICBuYW1lID0gTExWTUdldE5hbWUodmFsdWUsICJf emV4dCIpOwotLQotICAgICAvLyBUT0RPOiB3ZSBzaG91bGQgcHJvYmFibHkgaGFuZGxlIHRoZSBh cnJheSBjYXNlIGFzIGluCi0gICAgIC8vIGUuZy4gQml0Q2FzdEluc3QoKSwgYnV0IHdlIGRvbid0 IGN1cnJlbnRseSBuZWVkIHRoYXQgZnVuY3Rpb25hbGl0eQotLSAgICBsbHZtOjpJbnN0cnVjdGlv biAqaW5zdCA9IG5ldyBsbHZtOjpaRXh0SW5zdCh2YWx1ZSwgdHlwZSwgbmFtZSwgYmJsb2NrKTsK LSsgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmluc3QgPSBuZXcgbGx2bTo6WkV4dEluc3QoCi0rICAg ICAgICB2YWx1ZSwgdHlwZSwgbmFtZS5pc1RyaXZpYWxseUVtcHR5KCkgPyBsbHZtOjpUd2luZSh2 YWx1ZS0+Z2V0TmFtZSgpKSArICJfemV4dCIgOiBuYW1lLCBiYmxvY2spOwotICAgICBBZGREZWJ1 Z1BvcyhpbnN0KTsKLSAgICAgcmV0dXJuIGluc3Q7Ci0gfQotQEAgLTE5MTMsMTQgKzE5MDEsMTUg QEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OmFwcGx5VmFyeWluZ0dFUChsbHZt OjpWYWx1ZSAqYmFzZVB0ciwgbGx2bTo6VmEKLSAgICAgICAgIHNjYWxlID0gU21lYXJVbmlmb3Jt KHNjYWxlKTsKLSAgICAgICAgIEFzc2VydChpbmRleCAhPSBOVUxMKTsKLSAgICAgICAgIC8vIG9m ZnNldCA9IGluZGV4ICogc2NhbGUKLS0gICAgICAgIG9mZnNldCA9IEJpbmFyeU9wZXJhdG9yKGxs dm06Okluc3RydWN0aW9uOjpNdWwsIHNjYWxlLCBpbmRleCwgTExWTUdldE5hbWUoIm11bCIsIHNj YWxlLCBpbmRleCkpOwotKyAgICAgICAgb2Zmc2V0ID0gQmluYXJ5T3BlcmF0b3IobGx2bTo6SW5z dHJ1Y3Rpb246Ok11bCwgc2NhbGUsIGluZGV4LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKChsbHZtOjpUd2luZSgibXVsXyIpICsgc2NhbGUtPmdldE5hbWUoKSkgKyAiXyIpICsg aW5kZXgtPmdldE5hbWUoKSk7Ci0gICAgIH0KLSAKLSAgICAgLy8gRm9yIDY0LWJpdCB0YXJnZXRz LCBpZiB3ZSd2ZSBiZWVuIGRvaW5nIG91ciBvZmZzZXQgY2FsY3VsYXRpb25zIGluCi0gICAgIC8v IDMyIGJpdHMsIHdlIHN0aWxsIGhhdmUgdG8gY29udmVydCB0byBhIDY0LWJpdCB2YWx1ZSBiZWZv cmUgd2UKLSAgICAgLy8gYWN0dWFsbHkgYWRkIHRoZSBvZmZzZXQgdG8gdGhlIHBvaW50ZXIuCi0g ICAgIGlmIChnLT50YXJnZXQtPmlzMzJCaXQoKSA9PSBmYWxzZSAmJiBnLT5vcHQuZm9yY2UzMkJp dEFkZHJlc3NpbmcgPT0gdHJ1ZSkKLS0gICAgICAgIG9mZnNldCA9IFNFeHRJbnN0KG9mZnNldCwg TExWTVR5cGVzOjpJbnQ2NFZlY3RvclR5cGUsIExMVk1HZXROYW1lKG9mZnNldCwgIl90b182NCIp KTsKLSsgICAgICAgIG9mZnNldCA9IFNFeHRJbnN0KG9mZnNldCwgTExWTVR5cGVzOjpJbnQ2NFZl Y3RvclR5cGUsIGxsdm06OlR3aW5lKG9mZnNldC0+Z2V0TmFtZSgpKSArICJfdG9fNjQiKTsKLSAK LSAgICAgLy8gU21lYXIgb3V0IHRoZSBwb2ludGVyIHRvIGJlIHZhcnlpbmc7IGVpdGhlciB0aGUg YmFzZSBwb2ludGVyIG9yIHRoZQotICAgICAvLyBpbmRleCBtdXN0IGJlIHZhcnlpbmcgZm9yIHRo aXMgbWV0aG9kIHRvIGJlIGNhbGxlZC4KLUBAIC0xOTI5LDcgKzE5MTgsNyBAQCBsbHZtOjpWYWx1 ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6YXBwbHlWYXJ5aW5nR0VQKGxsdm06OlZhbHVlICpiYXNl UHRyLCBsbHZtOjpWYQotICAgICBsbHZtOjpWYWx1ZSAqdmFyeWluZ1B0ciA9IGJhc2VJc1VuaWZv cm0gPyBTbWVhclVuaWZvcm0oYmFzZVB0cikgOiBiYXNlUHRyOwotIAotICAgICAvLyBuZXdQdHIg PSBwdHIgKyBvZmZzZXQKLS0gICAgcmV0dXJuIEJpbmFyeU9wZXJhdG9yKGxsdm06Okluc3RydWN0 aW9uOjpBZGQsIHZhcnlpbmdQdHIsIG9mZnNldCwgTExWTUdldE5hbWUoYmFzZVB0ciwgIl9vZmZz ZXQiKSk7Ci0rICAgIHJldHVybiBCaW5hcnlPcGVyYXRvcihsbHZtOjpJbnN0cnVjdGlvbjo6QWRk LCB2YXJ5aW5nUHRyLCBvZmZzZXQsIGxsdm06OlR3aW5lKGJhc2VQdHItPmdldE5hbWUoKSkgKyAi X29mZnNldCIpOwotIH0KLSAKLSB2b2lkIEZ1bmN0aW9uRW1pdENvbnRleHQ6Ok1hdGNoSW50ZWdl clR5cGVzKGxsdm06OlZhbHVlICoqdjAsIGxsdm06OlZhbHVlICoqdjEpIHsKLUBAIC0yMDA2LDEz ICsxOTk1LDEzIEBAIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpNYWtlU2xpY2VQ b2ludGVyKGxsdm06OlZhbHVlICpwdHIsIGxsdm06OlZhbHVlCi0gICAgIGxsdm06OlN0cnVjdFR5 cGUgKnN0ID0gbGx2bTo6U3RydWN0VHlwZTo6Z2V0KCpnLT5jdHgsIGVsdFR5cGVzKTsKLSAKLSAg ICAgbGx2bTo6VmFsdWUgKnJldCA9IGxsdm06OlVuZGVmVmFsdWU6OmdldChzdCk7Ci0tICAgIHJl dCA9IEluc2VydEluc3QocmV0LCBwdHIsIDAsIExMVk1HZXROYW1lKHJldCwgIl9zbGljZV9wdHIi KSk7Ci0tICAgIHJldCA9IEluc2VydEluc3QocmV0LCBvZmZzZXQsIDEsIExMVk1HZXROYW1lKHJl dCwgIl9zbGljZV9vZmZzZXQiKSk7Ci0rICAgIHJldCA9IEluc2VydEluc3QocmV0LCBwdHIsIDAs IGxsdm06OlR3aW5lKHJldC0+Z2V0TmFtZSgpKSArICJfc2xpY2VfcHRyIik7Ci0rICAgIHJldCA9 IEluc2VydEluc3QocmV0LCBvZmZzZXQsIDEsIGxsdm06OlR3aW5lKHJldC0+Z2V0TmFtZSgpKSAr ICJfc2xpY2Vfb2Zmc2V0Iik7Ci0gICAgIHJldHVybiByZXQ7Ci0gfQotIAotIGxsdm06OlZhbHVl ICpGdW5jdGlvbkVtaXRDb250ZXh0OjpHZXRFbGVtZW50UHRySW5zdChsbHZtOjpWYWx1ZSAqYmFz ZVB0ciwgbGx2bTo6VmFsdWUgKmluZGV4LCBjb25zdCBUeXBlICpwdHJSZWZUeXBlLAotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFy ICpuYW1lKSB7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lKSB7Ci0gICAgIGlmIChiYXNlUHRyID09IE5V TEwgfHwgaW5kZXggPT0gTlVMTCkgewotICAgICAgICAgQXNzZXJ0UG9zKGN1cnJlbnRQb3MsIG0t PmVycm9yQ291bnQgPiAwKTsKLSAgICAgICAgIHJldHVybiBOVUxMOwotQEAgLTIwNjUsOCArMjA1 NCw4IEBAIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpHZXRFbGVtZW50UHRySW5z dChsbHZtOjpWYWx1ZSAqYmFzZVB0ciwgbGx2bTo6Ci0gICAgICAgICAvLyB1bmlmb3JtLCBzbyBq dXN0IGVtaXQgdGhlIHJlZ3VsYXIgTExWTSBHRVAgaW5zdHJ1Y3Rpb24KLSAgICAgICAgIGxsdm06 OlZhbHVlICppbmRbMV0gPSB7aW5kZXh9OwotICAgICAgICAgbGx2bTo6QXJyYXlSZWY8bGx2bTo6 VmFsdWUgKj4gYXJyYXlSZWYoJmluZFswXSwgJmluZFsxXSk7Ci0tICAgICAgICBsbHZtOjpJbnN0 cnVjdGlvbiAqaW5zdCA9Ci0tICAgICAgICAgICAgbGx2bTo6R2V0RWxlbWVudFB0ckluc3Q6OkNy ZWF0ZShQVFlQRShiYXNlUHRyKSwgYmFzZVB0ciwgYXJyYXlSZWYsIG5hbWUgPyBuYW1lIDogImdl cCIsIGJibG9jayk7Ci0rICAgICAgICBsbHZtOjpJbnN0cnVjdGlvbiAqaW5zdCA9IGxsdm06Okdl dEVsZW1lbnRQdHJJbnN0OjpDcmVhdGUoUFRZUEUoYmFzZVB0ciksIGJhc2VQdHIsIGFycmF5UmVm LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIG5hbWUuaXNUcml2aWFsbHlFbXB0eSgpID8gImdlcCIgOiBuYW1lLCBiYmxv Y2spOwotICAgICAgICAgQWRkRGVidWdQb3MoaW5zdCk7Ci0gICAgICAgICByZXR1cm4gaW5zdDsK LSAgICAgfSBlbHNlCi1AQCAtMjA3NCw3ICsyMDYzLDcgQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9u RW1pdENvbnRleHQ6OkdldEVsZW1lbnRQdHJJbnN0KGxsdm06OlZhbHVlICpiYXNlUHRyLCBsbHZt OjoKLSB9Ci0gCi0gbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkdldEVsZW1lbnRQ dHJJbnN0KGxsdm06OlZhbHVlICpiYXNlUHRyLCBsbHZtOjpWYWx1ZSAqaW5kZXgwLCBsbHZtOjpW YWx1ZSAqaW5kZXgxLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBjb25zdCBUeXBlICpwdHJSZWZUeXBlLCBjb25zdCBjaGFyICpuYW1lKSB7Ci0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0 IFR5cGUgKnB0clJlZlR5cGUsIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lKSB7Ci0gICAgIGlmIChi YXNlUHRyID09IE5VTEwgfHwgaW5kZXgwID09IE5VTEwgfHwgaW5kZXgxID09IE5VTEwpIHsKLSAg ICAgICAgIEFzc2VydFBvcyhjdXJyZW50UG9zLCBtLT5lcnJvckNvdW50ID4gMCk7Ci0gICAgICAg ICByZXR1cm4gTlVMTDsKLUBAIC0yMTE0LDggKzIxMDMsOCBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rp b25FbWl0Q29udGV4dDo6R2V0RWxlbWVudFB0ckluc3QobGx2bTo6VmFsdWUgKmJhc2VQdHIsIGxs dm06OgotICAgICAgICAgLy8gdW5pZm9ybSwgc28ganVzdCBlbWl0IHRoZSByZWd1bGFyIExMVk0g R0VQIGluc3RydWN0aW9uCi0gICAgICAgICBsbHZtOjpWYWx1ZSAqaW5kaWNlc1syXSA9IHtpbmRl eDAsIGluZGV4MX07Ci0gICAgICAgICBsbHZtOjpBcnJheVJlZjxsbHZtOjpWYWx1ZSAqPiBhcnJh eVJlZigmaW5kaWNlc1swXSwgJmluZGljZXNbMl0pOwotLSAgICAgICAgbGx2bTo6SW5zdHJ1Y3Rp b24gKmluc3QgPQotLSAgICAgICAgICAgIGxsdm06OkdldEVsZW1lbnRQdHJJbnN0OjpDcmVhdGUo UFRZUEUoYmFzZVB0ciksIGJhc2VQdHIsIGFycmF5UmVmLCBuYW1lID8gbmFtZSA6ICJnZXAiLCBi YmxvY2spOwotKyAgICAgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmluc3QgPSBsbHZtOjpHZXRFbGVt ZW50UHRySW5zdDo6Q3JlYXRlKFBUWVBFKGJhc2VQdHIpLCBiYXNlUHRyLCBhcnJheVJlZiwKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBuYW1lLmlzVHJpdmlhbGx5RW1wdHkoKSA/ICJnZXAiIDogbmFtZSwgYmJsb2NrKTsK LSAgICAgICAgIEFkZERlYnVnUG9zKGluc3QpOwotICAgICAgICAgcmV0dXJuIGluc3Q7Ci0gICAg IH0gZWxzZSB7Ci1AQCAtMjEzOCw3ICsyMTI3LDcgQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1p dENvbnRleHQ6OkdldEVsZW1lbnRQdHJJbnN0KGxsdm06OlZhbHVlICpiYXNlUHRyLCBsbHZtOjoK LSB9Ci0gCi0gbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkFkZEVsZW1lbnRPZmZz ZXQobGx2bTo6VmFsdWUgKmZ1bGxCYXNlUHRyLCBpbnQgZWxlbWVudE51bSwgY29uc3QgVHlwZSAq cHRyUmVmVHlwZSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBjb25zdCBjaGFyICpuYW1lLCBjb25zdCBQb2ludGVyVHlwZSAqKnJlc3VsdFB0clR5 cGUpIHsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSwgY29uc3QgUG9pbnRlclR5cGUgKipyZXN1bHRQdHJU eXBlKSB7Ci0gICAgIGlmIChyZXN1bHRQdHJUeXBlICE9IE5VTEwpCi0gICAgICAgICBBc3NlcnRQ b3MoY3VycmVudFBvcywgcHRyUmVmVHlwZSAhPSBOVUxMKTsKLSAKLUBAIC0yMTk1LDggKzIxODQs OCBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6QWRkRWxlbWVudE9mZnNldChs bHZtOjpWYWx1ZSAqZnVsbEJhc2VQdHIsIGludAotICAgICAgICAgLy8gSWYgdGhlIHBvaW50ZXIg aXMgdW5pZm9ybSwgd2UgY2FuIHVzZSB0aGUgcmVndWxhciBMTFZNIEdFUC4KLSAgICAgICAgIGxs dm06OlZhbHVlICpvZmZzZXRzWzJdID0ge0xMVk1JbnQzMigwKSwgTExWTUludDMyKGVsZW1lbnRO dW0pfTsKLSAgICAgICAgIGxsdm06OkFycmF5UmVmPGxsdm06OlZhbHVlICo+IGFycmF5UmVmKCZv ZmZzZXRzWzBdLCAmb2Zmc2V0c1syXSk7Ci0tICAgICAgICByZXN1bHRQdHIgPQotLSAgICAgICAg ICAgIGxsdm06OkdldEVsZW1lbnRQdHJJbnN0OjpDcmVhdGUoUFRZUEUoYmFzZVB0ciksIGJhc2VQ dHIsIGFycmF5UmVmLCBuYW1lID8gbmFtZSA6ICJzdHJ1Y3Rfb2Zmc2V0IiwgYmJsb2NrKTsKLSsg ICAgICAgIHJlc3VsdFB0ciA9IGxsdm06OkdldEVsZW1lbnRQdHJJbnN0OjpDcmVhdGUoUFRZUEUo YmFzZVB0ciksIGJhc2VQdHIsIGFycmF5UmVmLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lLmlzVHJpdmlhbGx5RW1wdHkoKSA/ICJzdHJ1 Y3Rfb2Zmc2V0IiA6IG5hbWUsIGJibG9jayk7Ci0gICAgIH0gZWxzZSB7Ci0gICAgICAgICAvLyBP dGhlcndpc2UgZG8gdGhlIG1hdGggdG8gZmluZCB0aGUgb2Zmc2V0IGFuZCBhZGQgaXQgdG8gdGhl IGdpdmVuCi0gICAgICAgICAvLyB2YXJ5aW5nIHBvaW50ZXJzCi1AQCAtMjIzNyw3ICsyMjI2LDcg QEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkFkZEVsZW1lbnRPZmZzZXQobGx2 bTo6VmFsdWUgKmZ1bGxCYXNlUHRyLCBpbnQKLSAgICAgICAgIHJldHVybiByZXN1bHRQdHI7Ci0g fQotIAotLWxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpTd2l0Y2hCb29sU2l6ZShs bHZtOjpWYWx1ZSAqdmFsdWUsIGxsdm06OlR5cGUgKnRvVHlwZSwgY29uc3QgY2hhciAqbmFtZSkg ewotK2xsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpTd2l0Y2hCb29sU2l6ZShsbHZt OjpWYWx1ZSAqdmFsdWUsIGxsdm06OlR5cGUgKnRvVHlwZSwgY29uc3QgbGx2bTo6VHdpbmUgJm5h bWUpIHsKLSAgICAgaWYgKCh2YWx1ZSA9PSBOVUxMKSB8fCAodG9UeXBlID09IE5VTEwpKSB7Ci0g ICAgICAgICBBc3NlcnRQb3MoY3VycmVudFBvcywgbS0+ZXJyb3JDb3VudCA+IDApOwotICAgICAg ICAgcmV0dXJuIE5VTEw7Ci1AQCAtMjI0OCwyMCArMjIzNywxOCBAQCBsbHZtOjpWYWx1ZSAqRnVu Y3Rpb25FbWl0Q29udGV4dDo6U3dpdGNoQm9vbFNpemUobGx2bTo6VmFsdWUgKnZhbHVlLCBsbHZt OjpUeXBlCi0gICAgIGxsdm06OlZhbHVlICpuZXdCb29sID0gdmFsdWU7Ci0gICAgIGlmIChnLT50 YXJnZXQtPmdldERhdGFMYXlvdXQoKS0+Z2V0VHlwZVNpemVJbkJpdHMoZnJvbVR5cGUpID4KLSAg ICAgICAgIGctPnRhcmdldC0+Z2V0RGF0YUxheW91dCgpLT5nZXRUeXBlU2l6ZUluQml0cyh0b1R5 cGUpKSB7Ci0tICAgICAgICBpZiAobmFtZSA9PSBOVUxMKQotLSAgICAgICAgICAgIG5hbWUgPSBM TFZNR2V0TmFtZSh2YWx1ZSwgIl9zd2l0Y2hCb29sIik7Ci0tICAgICAgICBuZXdCb29sID0gVHJ1 bmNJbnN0KHZhbHVlLCB0b1R5cGUsIG5hbWUpOwotKyAgICAgICAgbmV3Qm9vbCA9Ci0rICAgICAg ICAgICAgVHJ1bmNJbnN0KHZhbHVlLCB0b1R5cGUsIG5hbWUuaXNUcml2aWFsbHlFbXB0eSgpID8g KGxsdm06OlR3aW5lKHZhbHVlLT5nZXROYW1lKCkpICsgIl9zd2l0Y2hCb29sIikgOiBuYW1lKTsK LSAgICAgfSBlbHNlIGlmIChnLT50YXJnZXQtPmdldERhdGFMYXlvdXQoKS0+Z2V0VHlwZVNpemVJ bkJpdHMoZnJvbVR5cGUpIDwKLSAgICAgICAgICAgICAgICBnLT50YXJnZXQtPmdldERhdGFMYXlv dXQoKS0+Z2V0VHlwZVNpemVJbkJpdHModG9UeXBlKSkgewotLSAgICAgICAgaWYgKG5hbWUgPT0g TlVMTCkKLS0gICAgICAgICAgICBuYW1lID0gTExWTUdldE5hbWUodmFsdWUsICJfc3dpdGNoQm9v bCIpOwotLSAgICAgICAgbmV3Qm9vbCA9IFNFeHRJbnN0KHZhbHVlLCB0b1R5cGUsIG5hbWUpOwot KyAgICAgICAgbmV3Qm9vbCA9Ci0rICAgICAgICAgICAgU0V4dEluc3QodmFsdWUsIHRvVHlwZSwg bmFtZS5pc1RyaXZpYWxseUVtcHR5KCkgPyAobGx2bTo6VHdpbmUodmFsdWUtPmdldE5hbWUoKSkg KyAiX3N3aXRjaEJvb2wiKSA6IG5hbWUpOwotICAgICB9Ci0gCi0gICAgIHJldHVybiBuZXdCb29s OwotIH0KLSAKLS1sbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6TG9hZEluc3QobGx2 bTo6VmFsdWUgKnB0ciwgY29uc3QgVHlwZSAqdHlwZSwgY29uc3QgY2hhciAqbmFtZSkgewotK2xs dm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpMb2FkSW5zdChsbHZtOjpWYWx1ZSAqcHRy LCBjb25zdCBUeXBlICp0eXBlLCBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSkgewotICAgICBpZiAo cHRyID09IE5VTEwpIHsKLSAgICAgICAgIEFzc2VydFBvcyhjdXJyZW50UG9zLCBtLT5lcnJvckNv dW50ID4gMCk7Ci0gICAgICAgICByZXR1cm4gTlVMTDsKLUBAIC0yMjcwLDEzICsyMjU3LDEzIEBA IGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpMb2FkSW5zdChsbHZtOjpWYWx1ZSAq cHRyLCBjb25zdCBUeXBlICp0eXBlLCBjCi0gICAgIGxsdm06OlBvaW50ZXJUeXBlICpwdCA9IGxs dm06OmR5bl9jYXN0PGxsdm06OlBvaW50ZXJUeXBlPihwdHItPmdldFR5cGUoKSk7Ci0gICAgIEFz c2VydFBvcyhjdXJyZW50UG9zLCBwdCAhPSBOVUxMKTsKLSAKLS0gICAgaWYgKG5hbWUgPT0gTlVM TCkKLS0gICAgICAgIG5hbWUgPSBMTFZNR2V0TmFtZShwdHIsICJfbG9hZCIpOwotLQotICNpZiBJ U1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTFfMAotLSAgICBsbHZtOjpMb2FkSW5zdCAq aW5zdCA9IG5ldyBsbHZtOjpMb2FkSW5zdChwdC0+Z2V0UG9pbnRlckVsZW1lbnRUeXBlKCksIHB0 ciwgbmFtZSwgYmJsb2NrKTsKLSsgICAgbGx2bTo6TG9hZEluc3QgKmluc3QgPQotKyAgICAgICAg bmV3IGxsdm06OkxvYWRJbnN0KHB0LT5nZXRQb2ludGVyRWxlbWVudFR5cGUoKSwgcHRyLAotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUuaXNUcml2aWFsbHlFbXB0eSgpID8gKGxsdm06 OlR3aW5lKHB0ci0+Z2V0TmFtZSgpKSArICJfbG9hZCIpIDogbmFtZSwgYmJsb2NrKTsKLSAjZWxz ZQotLSAgICBsbHZtOjpMb2FkSW5zdCAqaW5zdCA9IG5ldyBsbHZtOjpMb2FkSW5zdChwdHIsIG5h bWUsIGJibG9jayk7Ci0rICAgIGxsdm06OkxvYWRJbnN0ICppbnN0ID0KLSsgICAgICAgIG5ldyBs bHZtOjpMb2FkSW5zdChwdHIsIG5hbWUuaXNUcml2aWFsbHlFbXB0eSgpID8gKGxsdm06OlR3aW5l KHB0ci0+Z2V0TmFtZSgpKSArICJfbG9hZCIpIDogbmFtZSwgYmJsb2NrKTsKLSAjZW5kaWYKLSAK LSAgICAgaWYgKGctPm9wdC5mb3JjZUFsaWduZWRNZW1vcnkgJiYgbGx2bTo6ZHluX2Nhc3Q8bGx2 bTo6VmVjdG9yVHlwZT4ocHQtPmdldEVsZW1lbnRUeXBlKCkpKSB7Ci1AQCAtMjMwNyw4ICsyMjk0 LDggQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkxvYWRJbnN0KGxsdm06OlZh bHVlICpwdHIsIGNvbnN0IFR5cGUgKnR5cGUsIGMKLSBzdGF0aWMgbGx2bTo6VmFsdWUgKmxGaW5h bFNsaWNlT2Zmc2V0KEZ1bmN0aW9uRW1pdENvbnRleHQgKmN0eCwgbGx2bTo6VmFsdWUgKnB0ciwg Y29uc3QgUG9pbnRlclR5cGUgKipwdHJUeXBlKSB7Ci0gICAgIEFzc2VydChDYXN0VHlwZTxQb2lu dGVyVHlwZT4oKnB0clR5cGUpICE9IE5VTEwpOwotIAotLSAgICBsbHZtOjpWYWx1ZSAqc2xpY2VQ dHIgPSBjdHgtPkV4dHJhY3RJbnN0KHB0ciwgMCwgTExWTUdldE5hbWUocHRyLCAiX3B0ciIpKTsK LS0gICAgbGx2bTo6VmFsdWUgKnNsaWNlT2Zmc2V0ID0gY3R4LT5FeHRyYWN0SW5zdChwdHIsIDEs IExMVk1HZXROYW1lKHB0ciwgIl9vZmZzZXQiKSk7Ci0rICAgIGxsdm06OlZhbHVlICpzbGljZVB0 ciA9IGN0eC0+RXh0cmFjdEluc3QocHRyLCAwLCBsbHZtOjpUd2luZShwdHItPmdldE5hbWUoKSkg KyAiX3B0ciIpOwotKyAgICBsbHZtOjpWYWx1ZSAqc2xpY2VPZmZzZXQgPSBjdHgtPkV4dHJhY3RJ bnN0KHB0ciwgMSwgbGx2bTo6VHdpbmUocHRyLT5nZXROYW1lKCkpICsgIl9vZmZzZXQiKTsKLSAK LSAgICAgLy8gc2xpY2VQdHIgc2hvdWxkIGJlIGEgcG9pbnRlciB0byBhbiBzb2Etd2lkdGggd2lk ZSBhcnJheSBvZiB0aGUKLSAgICAgLy8gZmluYWwgYXRvbWljL2VudW0vcG9pbnRlciB0eXBlCi1A QCAtMjMyNywxNCArMjMxNCwxNCBAQCBzdGF0aWMgbGx2bTo6VmFsdWUgKmxGaW5hbFNsaWNlT2Zm c2V0KEZ1bmN0aW9uRW1pdENvbnRleHQgKmN0eCwgbGx2bTo6VmFsdWUgKnB0cgotICAgICAgICAg c2xpY2VQdHIgPSBjdHgtPkJpdENhc3RJbnN0KHNsaWNlUHRyLCAoKnB0clR5cGUpLT5MTFZNVHlw ZShnLT5jdHgpKTsKLSAKLSAgICAgLy8gQW5kIGZpbmFsbHkgaW5kZXggYmFzZWQgb24gdGhlIHNs aWNlIG9mZnNldAotLSAgICByZXR1cm4gY3R4LT5HZXRFbGVtZW50UHRySW5zdChzbGljZVB0ciwg c2xpY2VPZmZzZXQsICpwdHJUeXBlLCBMTFZNR2V0TmFtZShzbGljZVB0ciwgIl9maW5hbF9nZXAi KSk7Ci0rICAgIHJldHVybiBjdHgtPkdldEVsZW1lbnRQdHJJbnN0KHNsaWNlUHRyLCBzbGljZU9m ZnNldCwgKnB0clR5cGUsIGxsdm06OlR3aW5lKHNsaWNlUHRyLT5nZXROYW1lKCkpICsgIl9maW5h bF9nZXAiKTsKLSB9Ci0gCi0gLyoqIFV0aWxpdHkgcm91dGluZSB0aGF0IGxvYWRzIGZyb20gYSB1 bmlmb3JtIHBvaW50ZXIgdG8gc29hPD4gZGF0YSwKLSAgICAgcmV0dXJuaW5nIGEgcmVndWxhciB1 bmlmb3JtIChub24tU09BIHJlc3VsdCkuCi0gICovCi0gbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1p dENvbnRleHQ6OmxvYWRVbmlmb3JtRnJvbVNPQShsbHZtOjpWYWx1ZSAqcHRyLCBsbHZtOjpWYWx1 ZSAqbWFzaywgY29uc3QgUG9pbnRlclR5cGUgKnB0clR5cGUsCi0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpuYW1lKSB7Ci0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z dCBsbHZtOjpUd2luZSAmbmFtZSkgewotICAgICBjb25zdCBUeXBlICp1bmlmVHlwZSA9IHB0clR5 cGUtPkdldEJhc2VUeXBlKCktPkdldEFzVW5pZm9ybVR5cGUoKTsKLSAKLSAgICAgY29uc3QgQ29s bGVjdGlvblR5cGUgKmN0ID0gQ2FzdFR5cGU8Q29sbGVjdGlvblR5cGU+KHB0clR5cGUtPkdldEJh c2VUeXBlKCkpOwotQEAgLTIzNjMsNyArMjM1MCw3IEBAIGxsdm06OlZhbHVlICpGdW5jdGlvbkVt aXRDb250ZXh0Ojpsb2FkVW5pZm9ybUZyb21TT0EobGx2bTo6VmFsdWUgKnB0ciwgbGx2bTo6VmFs Ci0gfQotIAotIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpMb2FkSW5zdChsbHZt OjpWYWx1ZSAqcHRyLCBsbHZtOjpWYWx1ZSAqbWFzaywgY29uc3QgVHlwZSAqcHRyUmVmVHlwZSwK LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAq bmFtZSwgYm9vbCBvbmVfZWxlbSkgewotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSwgYm9vbCBvbmVfZWxlbSkgewotICAg ICBpZiAocHRyID09IE5VTEwpIHsKLSAgICAgICAgIEFzc2VydFBvcyhjdXJyZW50UG9zLCBtLT5l cnJvckNvdW50ID4gMCk7Ci0gICAgICAgICByZXR1cm4gTlVMTDsKLUBAIC0yMzcxLDkgKzIzNTgs NiBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6TG9hZEluc3QobGx2bTo6VmFs dWUgKnB0ciwgbGx2bTo6VmFsdWUgKm1hc2ssCi0gCi0gICAgIEFzc2VydFBvcyhjdXJyZW50UG9z LCBwdHJSZWZUeXBlICE9IE5VTEwgJiYgbWFzayAhPSBOVUxMKTsKLSAKLS0gICAgaWYgKG5hbWUg PT0gTlVMTCkKLS0gICAgICAgIG5hbWUgPSBMTFZNR2V0TmFtZShwdHIsICJfbG9hZCIpOwotLQot ICAgICBjb25zdCBQb2ludGVyVHlwZSAqcHRyVHlwZTsKLSAgICAgY29uc3QgVHlwZSAqZWxUeXBl OwotICAgICBpZiAoQ2FzdFR5cGU8UmVmZXJlbmNlVHlwZT4ocHRyUmVmVHlwZSkgIT0gTlVMTCkg ewotQEAgLTIzOTMsNyArMjM3Nyw4IEBAIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0 OjpMb2FkSW5zdChsbHZtOjpWYWx1ZSAqcHRyLCBsbHZtOjpWYWx1ZSAqbWFzaywKLSAKLSAgICAg aWYgKHB0clR5cGUtPklzVW5pZm9ybVR5cGUoKSkgewotICAgICAgICAgaWYgKHB0clR5cGUtPklz U2xpY2UoKSkgewotLSAgICAgICAgICAgIHJldHVybiBsb2FkVW5pZm9ybUZyb21TT0EocHRyLCBt YXNrLCBwdHJUeXBlLCBuYW1lKTsKLSsgICAgICAgICAgICByZXR1cm4gbG9hZFVuaWZvcm1Gcm9t U09BKHB0ciwgbWFzaywgcHRyVHlwZSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIG5hbWUuaXNUcml2aWFsbHlFbXB0eSgpID8gKGxsdm06OlR3aW5lKHB0ci0+Z2V0TmFt ZSgpKSArICJfbG9hZCIpIDogbmFtZSk7Ci0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAg IC8vIEZJWE1FOiBzYW1lIGlzc3VlIGFzIGFib3ZlIGxvYWQgaW5zdCByZWdhcmRpbmcgYWxpZ25t ZW50Li4uCi0gICAgICAgICAgICAgLy8KLUBAIC0yNDA1LDExICsyMzkwLDE1IEBAIGxsdm06OlZh bHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpMb2FkSW5zdChsbHZtOjpWYWx1ZSAqcHRyLCBsbHZt OjpWYWx1ZSAqbWFzaywKLSAgICAgICAgICAgICBjb25zdCBBdG9taWNUeXBlICphdG9taWNUeXBl ID0gQ2FzdFR5cGU8QXRvbWljVHlwZT4ocHRyVHlwZS0+R2V0QmFzZVR5cGUoKSk7Ci0gCi0gI2lm IElTUENfTExWTV9WRVJTSU9OIDw9IElTUENfTExWTV8xMF8wCi0tICAgICAgICAgICAgbGx2bTo6 TG9hZEluc3QgKmluc3QgPSBuZXcgbGx2bTo6TG9hZEluc3QocHRyLCBuYW1lLCBmYWxzZSAvKiBu b3Qgdm9sYXRpbGUgKi8sIGJibG9jayk7Ci0rICAgICAgICAgICAgbGx2bTo6TG9hZEluc3QgKmlu c3QgPQotKyAgICAgICAgICAgICAgICBuZXcgbGx2bTo6TG9hZEluc3QocHRyLCBuYW1lLmlzVHJp dmlhbGx5RW1wdHkoKSA/IChsbHZtOjpUd2luZShwdHItPmdldE5hbWUoKSkgKyAiX2xvYWQiKSA6 IG5hbWUsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSAvKiBub3Qg dm9sYXRpbGUgKi8sIGJibG9jayk7Ci0gI2Vsc2UgLy8gTExWTSAxMS4wKwotICAgICAgICAgICAg IGxsdm06OlBvaW50ZXJUeXBlICpwdHJfdHlwZSA9IGxsdm06OmR5bl9jYXN0PGxsdm06OlBvaW50 ZXJUeXBlPihwdHItPmdldFR5cGUoKSk7Ci0gICAgICAgICAgICAgbGx2bTo6TG9hZEluc3QgKmlu c3QgPQotLSAgICAgICAgICAgICAgICBuZXcgbGx2bTo6TG9hZEluc3QocHRyX3R5cGUtPmdldFBv aW50ZXJFbGVtZW50VHlwZSgpLCBwdHIsIG5hbWUsIGZhbHNlIC8qIG5vdCB2b2xhdGlsZSAqLywg YmJsb2NrKTsKLSsgICAgICAgICAgICAgICAgbmV3IGxsdm06OkxvYWRJbnN0KHB0cl90eXBlLT5n ZXRQb2ludGVyRWxlbWVudFR5cGUoKSwgcHRyLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgbmFtZS5pc1RyaXZpYWxseUVtcHR5KCkgPyAobGx2bTo6VHdpbmUocHRyLT5nZXRO YW1lKCkpICsgIl9sb2FkIikgOiBuYW1lLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZmFsc2UgLyogbm90IHZvbGF0aWxlICovLCBiYmxvY2spOwotICNlbmRpZgotIAotICAg ICAgICAgICAgIGlmIChhdG9taWNUeXBlICE9IE5VTEwgJiYgYXRvbWljVHlwZS0+SXNWYXJ5aW5n VHlwZSgpKSB7Ci1AQCAtMjQzMyw3ICsyNDIyLDggQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1p dENvbnRleHQ6OkxvYWRJbnN0KGxsdm06OlZhbHVlICpwdHIsIGxsdm06OlZhbHVlICptYXNrLAot ICAgICB9IGVsc2UgewotICAgICAgICAgLy8gT3RoZXJ3aXNlIHdlIHNob3VsZCBoYXZlIGEgdmFy eWluZyBwdHIgYW5kIGl0J3MgdGltZSBmb3IgYQotICAgICAgICAgLy8gZ2F0aGVyLgotLSAgICAg ICAgbGx2bTo6VmFsdWUgKmdhdGhlcl9yZXN1bHQgPSBnYXRoZXIocHRyLCBwdHJUeXBlLCBHZXRG dWxsTWFzaygpLCBuYW1lKTsKLSsgICAgICAgIGxsdm06OlZhbHVlICpnYXRoZXJfcmVzdWx0ID0g Z2F0aGVyKHB0ciwgcHRyVHlwZSwgR2V0RnVsbE1hc2soKSwKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUuaXNUcml2aWFsbHlFbXB0eSgpID8gKGxsdm06 OlR3aW5lKHB0ci0+Z2V0TmFtZSgpKSArICJfbG9hZCIpIDogbmFtZSk7Ci0gICAgICAgICBpZiAo IW9uZV9lbGVtKQotICAgICAgICAgICAgIHJldHVybiBnYXRoZXJfcmVzdWx0OwotIAotQEAgLTI0 NTMsMTkgKzI0NDMsMTkgQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkxvYWRJ bnN0KGxsdm06OlZhbHVlICpwdHIsIGxsdm06OlZhbHVlICptYXNrLAotICAgICAgICAgLy8gV2Ug Y2FuIGFjdHVhbGx5IGNhbGwgZWl0aGVyIG9uZSwgc2luY2UgYm90aCBhcmUgaTMycyBhcyBmYXIg YXMKLSAgICAgICAgIC8vIExMVk0ncyB0eXBlIHN5c3RlbSBpcyBjb25jZXJuZWQuLi4KLSAgICAg ICAgIGxsdm06OkZ1bmN0aW9uICpmbW0gPSBtbVswXS0+ZnVuY3Rpb247Ci0tICAgICAgICBsbHZt OjpWYWx1ZSAqaW50X21hc2sgPSBDYWxsSW5zdChmbW0sIE5VTEwsIG1hc2ssIExMVk1HZXROYW1l KG1hc2ssICJfbW92bXNrIikpOwotKyAgICAgICAgbGx2bTo6VmFsdWUgKmludF9tYXNrID0gQ2Fs bEluc3QoZm1tLCBOVUxMLCBtYXNrLCBsbHZtOjpUd2luZShtYXNrLT5nZXROYW1lKCkpICsgIl9t b3Ztc2siKTsKLSAgICAgICAgIHN0ZDo6dmVjdG9yPFN5bWJvbCAqPiBsejsKLSAgICAgICAgIG0t PnN5bWJvbFRhYmxlLT5Mb29rdXBGdW5jdGlvbigiX19jb3VudF90cmFpbGluZ196ZXJvc19pNjQi LCAmbHopOwotICAgICAgICAgbGx2bTo6RnVuY3Rpb24gKmZseiA9IGx6WzBdLT5mdW5jdGlvbjsK LS0gICAgICAgIGxsdm06OlZhbHVlICplbGVtX2lkeCA9IENhbGxJbnN0KGZseiwgTlVMTCwgaW50 X21hc2ssIExMVk1HZXROYW1lKG1hc2ssICJfY2x6IikpOwotLSAgICAgICAgbGx2bTo6VmFsdWUg KmVsZW0gPSBsbHZtOjpFeHRyYWN0RWxlbWVudEluc3Q6OkNyZWF0ZShnYXRoZXJfcmVzdWx0LCBl bGVtX2lkeCwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgTExWTUdldE5hbWUoZ2F0aGVyX3Jlc3VsdCwgIl91bWFza2VkX2VsZW0i KSwgYmJsb2NrKTsKLSsgICAgICAgIGxsdm06OlZhbHVlICplbGVtX2lkeCA9IENhbGxJbnN0KGZs eiwgTlVMTCwgaW50X21hc2ssIGxsdm06OlR3aW5lKG1hc2stPmdldE5hbWUoKSkgKyAiX2NseiIp OwotKyAgICAgICAgbGx2bTo6VmFsdWUgKmVsZW0gPSBsbHZtOjpFeHRyYWN0RWxlbWVudEluc3Q6 OkNyZWF0ZSgKLSsgICAgICAgICAgICBnYXRoZXJfcmVzdWx0LCBlbGVtX2lkeCwgbGx2bTo6VHdp bmUoZ2F0aGVyX3Jlc3VsdC0+Z2V0TmFtZSgpKSArICJfdW1hc2tlZF9lbGVtIiwgYmJsb2NrKTsK LSAgICAgICAgIHJldHVybiBlbGVtOwotICAgICB9Ci0gfQotIAotIGxsdm06OlZhbHVlICpGdW5j dGlvbkVtaXRDb250ZXh0OjpnYXRoZXIobGx2bTo6VmFsdWUgKnB0ciwgY29uc3QgUG9pbnRlclR5 cGUgKnB0clR5cGUsIGxsdm06OlZhbHVlICptYXNrLAotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqbmFtZSkgewotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUpIHsKLSAgICAg Ly8gV2Ugc2hvdWxkIGhhdmUgYSB2YXJ5aW5nIHBvaW50ZXIgaWYgd2UgZ2V0IGhlcmUuLi4KLSAg ICAgQXNzZXJ0UG9zKGN1cnJlbnRQb3MsIHB0clR5cGUtPklzVmFyeWluZ1R5cGUoKSk7Ci0gCi1A QCAtMjYwMiw3ICsyNTkyLDggQEAgdm9pZCBGdW5jdGlvbkVtaXRDb250ZXh0OjphZGRHU01ldGFk YXRhKGxsdm06OlZhbHVlICp2LCBTb3VyY2VQb3MgcG9zKSB7Ci0gICAgIGluc3QtPnNldE1ldGFk YXRhKCJsYXN0X2NvbHVtbiIsIG1kKTsKLSB9Ci0gCi0tbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1p dENvbnRleHQ6OkFsbG9jYUluc3QobGx2bTo6VHlwZSAqbGx2bVR5cGUsIGNvbnN0IGNoYXIgKm5h bWUsIGludCBhbGlnbiwgYm9vbCBhdEVudHJ5QmxvY2spIHsKLStsbHZtOjpWYWx1ZSAqRnVuY3Rp b25FbWl0Q29udGV4dDo6QWxsb2NhSW5zdChsbHZtOjpUeXBlICpsbHZtVHlwZSwgY29uc3QgbGx2 bTo6VHdpbmUgJm5hbWUsIGludCBhbGlnbiwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBib29sIGF0RW50cnlCbG9jaykgewotICAgICBpZiAobGx2bVR5cGUg PT0gTlVMTCkgewotICAgICAgICAgQXNzZXJ0UG9zKGN1cnJlbnRQb3MsIG0tPmVycm9yQ291bnQg PiAwKTsKLSAgICAgICAgIHJldHVybiBOVUxMOwotQEAgLTI2MTUsMTIgKzI2MDYsMTIgQEAgbGx2 bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkFsbG9jYUluc3QobGx2bTo6VHlwZSAqbGx2 bVR5cGUsIGNvbnN0IGNoYXIgKm4KLSAgICAgICAgIGxsdm06Okluc3RydWN0aW9uICpyZXRJbnN0 ID0gYWxsb2NhQmxvY2stPmdldFRlcm1pbmF0b3IoKTsKLSAgICAgICAgIEFzc2VydFBvcyhjdXJy ZW50UG9zLCByZXRJbnN0KTsKLSAgICAgICAgIHVuc2lnbmVkIEFTID0gbGx2bUZ1bmN0aW9uLT5n ZXRQYXJlbnQoKS0+Z2V0RGF0YUxheW91dCgpLmdldEFsbG9jYUFkZHJTcGFjZSgpOwotLSAgICAg ICAgaW5zdCA9IG5ldyBsbHZtOjpBbGxvY2FJbnN0KGxsdm1UeXBlLCBBUywgbmFtZSA/IG5hbWUg OiAiIiwgcmV0SW5zdCk7Ci0rICAgICAgICBpbnN0ID0gbmV3IGxsdm06OkFsbG9jYUluc3QobGx2 bVR5cGUsIEFTLCBuYW1lLCByZXRJbnN0KTsKLSAgICAgfSBlbHNlIHsKLSAgICAgICAgIC8vIFVu bGVzcyB0aGUgY2FsbGVyIG92ZXJyb2RlIHRoZSBkZWZhdWx0IGFuZCB3YW50cyBpdCBpbiB0aGUK LSAgICAgICAgIC8vIGN1cnJlbnQgYmFzaWMgYmxvY2sKLSAgICAgICAgIHVuc2lnbmVkIEFTID0g bGx2bUZ1bmN0aW9uLT5nZXRQYXJlbnQoKS0+Z2V0RGF0YUxheW91dCgpLmdldEFsbG9jYUFkZHJT cGFjZSgpOwotLSAgICAgICAgaW5zdCA9IG5ldyBsbHZtOjpBbGxvY2FJbnN0KGxsdm1UeXBlLCBB UywgbmFtZSA/IG5hbWUgOiAiIiwgYmJsb2NrKTsKLSsgICAgICAgIGluc3QgPSBuZXcgbGx2bTo6 QWxsb2NhSW5zdChsbHZtVHlwZSwgQVMsIG5hbWUsIGJibG9jayk7Ci0gICAgIH0KLSAKLSAgICAg Ly8gSWYgbm8gYWxpZ25tZW50IHdhcyBzcGVjaWZpZWQgYnV0IHdlIGhhdmUgYW4gYXJyYXkgb2Yg YSB1bmlmb3JtCi1AQCAtMjYzOSw3ICsyNjMwLDggQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1p dENvbnRleHQ6OkFsbG9jYUluc3QobGx2bTo6VHlwZSAqbGx2bVR5cGUsIGNvbnN0IGNoYXIgKm4K LSAgICAgcmV0dXJuIGluc3Q7Ci0gfQotIAotLWxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250 ZXh0OjpBbGxvY2FJbnN0KGNvbnN0IFR5cGUgKnB0clR5cGUsIGNvbnN0IGNoYXIgKm5hbWUsIGlu dCBhbGlnbiwgYm9vbCBhdEVudHJ5QmxvY2spIHsKLStsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0 Q29udGV4dDo6QWxsb2NhSW5zdChjb25zdCBUeXBlICpwdHJUeXBlLCBjb25zdCBsbHZtOjpUd2lu ZSAmbmFtZSwgaW50IGFsaWduLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGJvb2wgYXRFbnRyeUJsb2NrKSB7Ci0gICAgIGlmIChwdHJUeXBlID09IE5VTEwp IHsKLSAgICAgICAgIEFzc2VydFBvcyhjdXJyZW50UG9zLCBtLT5lcnJvckNvdW50ID4gMCk7Ci0g ICAgICAgICByZXR1cm4gTlVMTDsKLUBAIC0zMDc1LDY2ICszMDY3LDU5IEBAIGxsdm06Okluc3Ry dWN0aW9uICpGdW5jdGlvbkVtaXRDb250ZXh0OjpCcmFuY2hJbnN0KGxsdm06OkJhc2ljQmxvY2sg KnRydWVCbG9jaywKLSAgICAgcmV0dXJuIGI7Ci0gfQotIAotLWxsdm06OlZhbHVlICpGdW5jdGlv bkVtaXRDb250ZXh0OjpFeHRyYWN0SW5zdChsbHZtOjpWYWx1ZSAqdiwgaW50IGVsdCwgY29uc3Qg Y2hhciAqbmFtZSkgewotK2xsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpFeHRyYWN0 SW5zdChsbHZtOjpWYWx1ZSAqdiwgaW50IGVsdCwgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUpIHsK LSAgICAgaWYgKHYgPT0gTlVMTCkgewotICAgICAgICAgQXNzZXJ0UG9zKGN1cnJlbnRQb3MsIG0t PmVycm9yQ291bnQgPiAwKTsKLSAgICAgICAgIHJldHVybiBOVUxMOwotICAgICB9Ci0gCi0tICAg IGlmIChuYW1lID09IE5VTEwpIHsKLS0gICAgICAgIGNoYXIgYnVmWzMyXTsKLS0gICAgICAgIHNu cHJpbnRmKGJ1Ziwgc2l6ZW9mKGJ1ZiksICJfZXh0cmFjdF8lZCIsIGVsdCk7Ci0tICAgICAgICBu YW1lID0gTExWTUdldE5hbWUodiwgYnVmKTsKLS0gICAgfQotICAgICBsbHZtOjpJbnN0cnVjdGlv biAqZWkgPSBOVUxMOwotICAgICBpZiAobGx2bTo6aXNhPGxsdm06OlZlY3RvclR5cGU+KHYtPmdl dFR5cGUoKSkpCi0tICAgICAgICBlaSA9IGxsdm06OkV4dHJhY3RFbGVtZW50SW5zdDo6Q3JlYXRl KHYsIExMVk1JbnQzMihlbHQpLCBuYW1lLCBiYmxvY2spOwotKyAgICAgICAgZWkgPSBsbHZtOjpF eHRyYWN0RWxlbWVudEluc3Q6OkNyZWF0ZSgKLSsgICAgICAgICAgICB2LCBMTFZNSW50MzIoZWx0 KSwKLSsgICAgICAgICAgICBuYW1lLmlzVHJpdmlhbGx5RW1wdHkoKSA/ICgobGx2bTo6VHdpbmUo di0+Z2V0TmFtZSgpKSArICJfZXh0cmFjdF8iKSArIGxsdm06OlR3aW5lKGVsdCkpIDogbmFtZSwg YmJsb2NrKTsKLSAgICAgZWxzZQotLSAgICAgICAgZWkgPSBsbHZtOjpFeHRyYWN0VmFsdWVJbnN0 OjpDcmVhdGUodiwgZWx0LCBuYW1lLCBiYmxvY2spOwotKyAgICAgICAgZWkgPSBsbHZtOjpFeHRy YWN0VmFsdWVJbnN0OjpDcmVhdGUoCi0rICAgICAgICAgICAgdiwgZWx0LCBuYW1lLmlzVHJpdmlh bGx5RW1wdHkoKSA/ICgobGx2bTo6VHdpbmUodi0+Z2V0TmFtZSgpKSArICJfZXh0cmFjdF8iKSAr IGxsdm06OlR3aW5lKGVsdCkpIDogbmFtZSwKLSsgICAgICAgICAgICBiYmxvY2spOwotICAgICBB ZGREZWJ1Z1BvcyhlaSk7Ci0gICAgIHJldHVybiBlaTsKLSB9Ci0gCi0tbGx2bTo6VmFsdWUgKkZ1 bmN0aW9uRW1pdENvbnRleHQ6Okluc2VydEluc3QobGx2bTo6VmFsdWUgKnYsIGxsdm06OlZhbHVl ICplbHRWYWwsIGludCBlbHQsIGNvbnN0IGNoYXIgKm5hbWUpIHsKLStsbHZtOjpWYWx1ZSAqRnVu Y3Rpb25FbWl0Q29udGV4dDo6SW5zZXJ0SW5zdChsbHZtOjpWYWx1ZSAqdiwgbGx2bTo6VmFsdWUg KmVsdFZhbCwgaW50IGVsdCwgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUpIHsKLSAgICAgaWYgKHYg PT0gTlVMTCB8fCBlbHRWYWwgPT0gTlVMTCkgewotICAgICAgICAgQXNzZXJ0UG9zKGN1cnJlbnRQ b3MsIG0tPmVycm9yQ291bnQgPiAwKTsKLSAgICAgICAgIHJldHVybiBOVUxMOwotICAgICB9Ci0g Ci0tICAgIGlmIChuYW1lID09IE5VTEwpIHsKLS0gICAgICAgIGNoYXIgYnVmWzMyXTsKLS0gICAg ICAgIHNucHJpbnRmKGJ1Ziwgc2l6ZW9mKGJ1ZiksICJfaW5zZXJ0XyVkIiwgZWx0KTsKLS0gICAg ICAgIG5hbWUgPSBMTFZNR2V0TmFtZSh2LCBidWYpOwotLSAgICB9Ci0tCi0gICAgIGxsdm06Oklu c3RydWN0aW9uICppaSA9IE5VTEw7Ci0gICAgIGlmIChsbHZtOjppc2E8bGx2bTo6VmVjdG9yVHlw ZT4odi0+Z2V0VHlwZSgpKSkKLS0gICAgICAgIGlpID0gbGx2bTo6SW5zZXJ0RWxlbWVudEluc3Q6 OkNyZWF0ZSh2LCBlbHRWYWwsIExMVk1JbnQzMihlbHQpLCBuYW1lLCBiYmxvY2spOwotKyAgICAg ICAgaWkgPSBsbHZtOjpJbnNlcnRFbGVtZW50SW5zdDo6Q3JlYXRlKAotKyAgICAgICAgICAgIHYs IGVsdFZhbCwgTExWTUludDMyKGVsdCksCi0rICAgICAgICAgICAgbmFtZS5pc1RyaXZpYWxseUVt cHR5KCkgPyAoKGxsdm06OlR3aW5lKHYtPmdldE5hbWUoKSkgKyAiX2luc2VydF8iKSArIGxsdm06 OlR3aW5lKGVsdCkpIDogbmFtZSwgYmJsb2NrKTsKLSAgICAgZWxzZQotLSAgICAgICAgaWkgPSBs bHZtOjpJbnNlcnRWYWx1ZUluc3Q6OkNyZWF0ZSh2LCBlbHRWYWwsIGVsdCwgbmFtZSwgYmJsb2Nr KTsKLSsgICAgICAgIGlpID0gbGx2bTo6SW5zZXJ0VmFsdWVJbnN0OjpDcmVhdGUoCi0rICAgICAg ICAgICAgdiwgZWx0VmFsLCBlbHQsCi0rICAgICAgICAgICAgbmFtZS5pc1RyaXZpYWxseUVtcHR5 KCkgPyAoKGxsdm06OlR3aW5lKHYtPmdldE5hbWUoKSkgKyAiX2luc2VydF8iKSArIGxsdm06OlR3 aW5lKGVsdCkpIDogbmFtZSwgYmJsb2NrKTsKLSAgICAgQWRkRGVidWdQb3MoaWkpOwotICAgICBy ZXR1cm4gaWk7Ci0gfQotIAotLWxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpTaHVm ZmxlSW5zdChsbHZtOjpWYWx1ZSAqdjEsIGxsdm06OlZhbHVlICp2MiwgbGx2bTo6VmFsdWUgKm1h c2ssIGNvbnN0IGNoYXIgKm5hbWUpIHsKLStsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4 dDo6U2h1ZmZsZUluc3QobGx2bTo6VmFsdWUgKnYxLCBsbHZtOjpWYWx1ZSAqdjIsIGxsdm06OlZh bHVlICptYXNrLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSkgewotICAgICBpZiAodjEgPT0gTlVMTCB8fCB2MiA9 PSBOVUxMIHx8IG1hc2sgPT0gTlVMTCkgewotICAgICAgICAgQXNzZXJ0UG9zKGN1cnJlbnRQb3Ms IG0tPmVycm9yQ291bnQgPiAwKTsKLSAgICAgICAgIHJldHVybiBOVUxMOwotICAgICB9Ci0gCi0t ICAgIGlmIChuYW1lID09IE5VTEwpIHsKLS0gICAgICAgIGNoYXIgYnVmWzMyXTsKLS0gICAgICAg IHNucHJpbnRmKGJ1Ziwgc2l6ZW9mKGJ1ZiksICJfc2h1ZmZsZSIpOwotLSAgICAgICAgbmFtZSA9 IExMVk1HZXROYW1lKHYxLCBidWYpOwotLSAgICB9Ci0tCi0tICAgIGxsdm06Okluc3RydWN0aW9u ICppaSA9IG5ldyBsbHZtOjpTaHVmZmxlVmVjdG9ySW5zdCh2MSwgdjIsIG1hc2ssIG5hbWUsIGJi bG9jayk7Ci0rICAgIGxsdm06Okluc3RydWN0aW9uICppaSA9IG5ldyBsbHZtOjpTaHVmZmxlVmVj dG9ySW5zdCgKLSsgICAgICAgIHYxLCB2MiwgbWFzaywgbmFtZS5pc1RyaXZpYWxseUVtcHR5KCkg PyAobGx2bTo6VHdpbmUodjEtPmdldE5hbWUoKSkgKyAiX3NodWZmbGUiKSA6IG5hbWUsIGJibG9j ayk7Ci0gCi0gICAgIEFkZERlYnVnUG9zKGlpKTsKLSAgICAgcmV0dXJuIGlpOwotIH0KLSAKLS1s bHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6QnJvYWRjYXN0VmFsdWUobGx2bTo6VmFs dWUgKnYsIGxsdm06OlR5cGUgKnZlY1R5cGUsIGNvbnN0IGNoYXIgKm5hbWUpIHsKLStsbHZtOjpW YWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6QnJvYWRjYXN0VmFsdWUobGx2bTo6VmFsdWUgKnYs IGxsdm06OlR5cGUgKnZlY1R5cGUsIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lKSB7Ci0gICAgIGlm ICh2ID09IE5VTEwgfHwgdmVjVHlwZSA9PSBOVUxMKSB7Ci0gICAgICAgICBBc3NlcnRQb3MoY3Vy cmVudFBvcywgbS0+ZXJyb3JDb3VudCA+IDApOwotICAgICAgICAgcmV0dXJuIE5VTEw7Ci1AQCAt MzE0OCwxMiArMzEzMyw2IEBAIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpCcm9h ZGNhc3RWYWx1ZShsbHZtOjpWYWx1ZSAqdiwgbGx2bTo6VHlwZSAqdmVjCi0gICAgIEFzc2VydCh0 eSAmJiB0eS0+Z2V0VmVjdG9yRWxlbWVudFR5cGUoKSA9PSB2LT5nZXRUeXBlKCkpOwotICNlbmRp ZgotIAotLSAgICBpZiAobmFtZSA9PSBOVUxMKSB7Ci0tICAgICAgICBjaGFyIGJ1ZlszMl07Ci0t ICAgICAgICBzbnByaW50ZihidWYsIHNpemVvZihidWYpLCAiX2Jyb2FkY2FzdCIpOwotLSAgICAg ICAgbmFtZSA9IExMVk1HZXROYW1lKHYsIGJ1Zik7Ci0tICAgIH0KLS0KLSAgICAgLy8gR2VuZXJh dGUgdGhlIGZvbGxvd2luZyBzZXF1ZW5jZToKLSAgICAgLy8gICAlbmFtZV9pbml0LmkgPSBpbnNl cnRlbGVtZW50IDw0IHggaTMyPiB1bmRlZiwgaTMyICV2YWwsIGkzMiAwCi0gICAgIC8vICAgJW5h bWUuaSA9IHNodWZmbGV2ZWN0b3IgPDQgeCBpMzI+ICVuYW1lX2luaXQuaSwgPDQgeCBpMzI+IHVu ZGVmLAotQEAgLTMxNjMsNyArMzE0Miw3IEBAIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250 ZXh0OjpCcm9hZGNhc3RWYWx1ZShsbHZtOjpWYWx1ZSAqdiwgbGx2bTo6VHlwZSAqdmVjCi0gICAg IGxsdm06OlZhbHVlICp1bmRlZjIgPSBsbHZtOjpVbmRlZlZhbHVlOjpnZXQodmVjVHlwZSk7Ci0g Ci0gICAgIC8vIEluc2VydEVsZW1lbnQKLS0gICAgbGx2bTo6VHdpbmUgdHcgPSBsbHZtOjpUd2lu ZShuYW1lKSArIGxsdm06OlR3aW5lKCJfaW5pdCIpOwotKyAgICBsbHZtOjpUd2luZSB0dyA9IG5h bWUuaXNUcml2aWFsbHlFbXB0eSgpID8gKGxsdm06OlR3aW5lKHYtPmdldE5hbWUoKSkgKyAiX2Jy b2FkY2FzdCIpIDogbmFtZSArIGxsdm06OlR3aW5lKCJfaW5pdCIpOwotICAgICBsbHZtOjpWYWx1 ZSAqaW5zZXJ0ID0gSW5zZXJ0SW5zdCh1bmRlZjEsIHYsIDAsIHR3LnN0cigpLmNfc3RyKCkpOwot IAotICAgICAvLyBTaHVmZmxlVmVjdG9yCi1AQCAtMzE3OSwyOCArMzE1OCwyNyBAQCBsbHZtOjpW YWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6QnJvYWRjYXN0VmFsdWUobGx2bTo6VmFsdWUgKnYs IGxsdm06OlR5cGUgKnZlYwotICAgICAgICAgbGx2bTo6Q29uc3RhbnRWZWN0b3I6OmdldFNwbGF0 KGxsdm06OkVsZW1lbnRDb3VudDo6Z2V0KHN0YXRpY19jYXN0PHVuc2lnbmVkIGludD4odHktPmdl dE51bUVsZW1lbnRzKCkpLCBmYWxzZSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgbGx2bTo6Q29uc3RhbnQ6OmdldE51bGxWYWx1ZShsbHZtOjpUeXBlOjpnZXRJbnQz MlR5KCpnLT5jdHgpKSk7Ci0gI2VuZGlmCi0tICAgIGxsdm06OlZhbHVlICpyZXQgPSBTaHVmZmxl SW5zdChpbnNlcnQsIHVuZGVmMiwgemVyb1ZlYywgbmFtZSk7Ci0rICAgIGxsdm06OlZhbHVlICpy ZXQgPSBTaHVmZmxlSW5zdChpbnNlcnQsIHVuZGVmMiwgemVyb1ZlYywKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIG5hbWUuaXNUcml2aWFsbHlFbXB0eSgpID8gKGxsdm06OlR3 aW5lKHYtPmdldE5hbWUoKSkgKyAiX2Jyb2FkY2FzdCIpIDogbmFtZSk7Ci0gCi0gICAgIHJldHVy biByZXQ7Ci0gfQotIAotLWxsdm06OlBISU5vZGUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OlBoaU5v ZGUobGx2bTo6VHlwZSAqdHlwZSwgaW50IGNvdW50LCBjb25zdCBjaGFyICpuYW1lKSB7Ci0tICAg IGxsdm06OlBISU5vZGUgKnBuID0gbGx2bTo6UEhJTm9kZTo6Q3JlYXRlKHR5cGUsIGNvdW50LCBu YW1lID8gbmFtZSA6ICJwaGkiLCBiYmxvY2spOwotK2xsdm06OlBISU5vZGUgKkZ1bmN0aW9uRW1p dENvbnRleHQ6OlBoaU5vZGUobGx2bTo6VHlwZSAqdHlwZSwgaW50IGNvdW50LCBjb25zdCBsbHZt OjpUd2luZSAmbmFtZSkgewotKyAgICBsbHZtOjpQSElOb2RlICpwbiA9IGxsdm06OlBISU5vZGU6 OkNyZWF0ZSh0eXBlLCBjb3VudCwgbmFtZS5pc1RyaXZpYWxseUVtcHR5KCkgPyAicGhpIiA6IG5h bWUsIGJibG9jayk7Ci0gICAgIEFkZERlYnVnUG9zKHBuKTsKLSAgICAgcmV0dXJuIHBuOwotIH0K LSAKLSBsbHZtOjpJbnN0cnVjdGlvbiAqRnVuY3Rpb25FbWl0Q29udGV4dDo6U2VsZWN0SW5zdChs bHZtOjpWYWx1ZSAqdGVzdCwgbGx2bTo6VmFsdWUgKnZhbDAsIGxsdm06OlZhbHVlICp2YWwxLAot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0 IGNoYXIgKm5hbWUpIHsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSkgewotICAgICBpZiAodGVzdCA9PSBO VUxMIHx8IHZhbDAgPT0gTlVMTCB8fCB2YWwxID09IE5VTEwpIHsKLSAgICAgICAgIEFzc2VydFBv cyhjdXJyZW50UG9zLCBtLT5lcnJvckNvdW50ID4gMCk7Ci0gICAgICAgICByZXR1cm4gTlVMTDsK LSAgICAgfQotIAotLSAgICBpZiAobmFtZSA9PSBOVUxMKQotLSAgICAgICAgbmFtZSA9IExMVk1H ZXROYW1lKHRlc3QsICJfc2VsZWN0Iik7Ci0tCi0tICAgIGxsdm06Okluc3RydWN0aW9uICppbnN0 ID0gbGx2bTo6U2VsZWN0SW5zdDo6Q3JlYXRlKHRlc3QsIHZhbDAsIHZhbDEsIG5hbWUsIGJibG9j ayk7Ci0rICAgIGxsdm06Okluc3RydWN0aW9uICppbnN0ID0gbGx2bTo6U2VsZWN0SW5zdDo6Q3Jl YXRlKAotKyAgICAgICAgdGVzdCwgdmFsMCwgdmFsMSwgbmFtZS5pc1RyaXZpYWxseUVtcHR5KCkg PyAobGx2bTo6VHdpbmUodGVzdC0+Z2V0TmFtZSgpKSArICJfc2VsZWN0IikgOiBuYW1lLCBiYmxv Y2spOwotICAgICBBZGREZWJ1Z1BvcyhpbnN0KTsKLSAgICAgcmV0dXJuIGluc3Q7Ci0gfQotQEAg LTMyMjYsNyArMzIwNCw3IEBAIHN0YXRpYyB1bnNpZ25lZCBpbnQgbENhbGxlZUFyZ0NvdW50KGxs dm06OlZhbHVlICpjYWxsZWUsIGNvbnN0IEZ1bmN0aW9uVHlwZSAqZnVuCi0gfQotIAotIGxsdm06 OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpDYWxsSW5zdChsbHZtOjpWYWx1ZSAqZnVuYywg Y29uc3QgRnVuY3Rpb25UeXBlICpmdW5jVHlwZSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgY29uc3Qgc3RkOjp2ZWN0b3I8bGx2bTo6VmFsdWUgKj4gJmFyZ3Ms IGNvbnN0IGNoYXIgKm5hbWUpIHsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgY29uc3Qgc3RkOjp2ZWN0b3I8bGx2bTo6VmFsdWUgKj4gJmFyZ3MsIGNvbnN0IGxs dm06OlR3aW5lICZuYW1lKSB7Ci0gICAgIGlmIChmdW5jID09IE5VTEwpIHsKLSAgICAgICAgIEFz c2VydFBvcyhjdXJyZW50UG9zLCBtLT5lcnJvckNvdW50ID4gMCk7Ci0gICAgICAgICByZXR1cm4g TlVMTDsKLUBAIC0zMjU4LDkgKzMyMzYsOSBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29u dGV4dDo6Q2FsbEluc3QobGx2bTo6VmFsdWUgKmZ1bmMsIGNvbnN0IEZ1bmN0aW9uVHlwZQotICNp ZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTFfMAotICAgICAgICAgbGx2bTo6UG9p bnRlclR5cGUgKmZ1bmNfcHRyX3R5cGUgPSBsbHZtOjpkeW5fY2FzdDxsbHZtOjpQb2ludGVyVHlw ZT4oZnVuYy0+Z2V0VHlwZSgpKTsKLSAgICAgICAgIGxsdm06OkZ1bmN0aW9uVHlwZSAqZnVuY190 eXBlID0gbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6RnVuY3Rpb25UeXBlPihmdW5jX3B0cl90eXBlLT5n ZXRQb2ludGVyRWxlbWVudFR5cGUoKSk7Ci0tICAgICAgICBsbHZtOjpDYWxsSW5zdCAqY2FsbGlu c3QgPSBsbHZtOjpDYWxsSW5zdDo6Q3JlYXRlKGZ1bmNfdHlwZSwgZnVuYywgYXJnVmFscywgbmFt ZSA/IG5hbWUgOiAiIiwgYmJsb2NrKTsKLSsgICAgICAgIGxsdm06OkNhbGxJbnN0ICpjYWxsaW5z dCA9IGxsdm06OkNhbGxJbnN0OjpDcmVhdGUoZnVuY190eXBlLCBmdW5jLCBhcmdWYWxzLCBuYW1l LCBiYmxvY2spOwotICNlbHNlCi0tICAgICAgICBsbHZtOjpDYWxsSW5zdCAqY2FsbGluc3QgPSBs bHZtOjpDYWxsSW5zdDo6Q3JlYXRlKGZ1bmMsIGFyZ1ZhbHMsIG5hbWUgPyBuYW1lIDogIiIsIGJi bG9jayk7Ci0rICAgICAgICBsbHZtOjpDYWxsSW5zdCAqY2FsbGluc3QgPSBsbHZtOjpDYWxsSW5z dDo6Q3JlYXRlKGZ1bmMsIGFyZ1ZhbHMsIG5hbWUsIGJibG9jayk7Ci0gI2VuZGlmCi0gCi0gICAg ICAgICAvLyBXZSBjb3VsZCBiZSBkZWFsaW5nIHdpdGggYSBmdW5jdGlvbiBwb2ludGVyIGluIHdo aWNoIGNhc2UgdGhpcyB3aWxsIG5vdCBiZSBhICdsbHZtOjpGdW5jdGlvbicuCi1AQCAtMzQ2NCwx NCArMzQ0MiwxNCBAQCBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6Q2FsbEluc3Qo bGx2bTo6VmFsdWUgKmZ1bmMsIGNvbnN0IEZ1bmN0aW9uVHlwZQotIH0KLSAKLSBsbHZtOjpWYWx1 ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6Q2FsbEluc3QobGx2bTo6VmFsdWUgKmZ1bmMsIGNvbnN0 IEZ1bmN0aW9uVHlwZSAqZnVuY1R5cGUsIGxsdm06OlZhbHVlICphcmcsCi0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKm5hbWUpIHsKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGx2bTo6VHdpbmUg Jm5hbWUpIHsKLSAgICAgc3RkOjp2ZWN0b3I8bGx2bTo6VmFsdWUgKj4gYXJnczsKLSAgICAgYXJn cy5wdXNoX2JhY2soYXJnKTsKLSAgICAgcmV0dXJuIENhbGxJbnN0KGZ1bmMsIGZ1bmNUeXBlLCBh cmdzLCBuYW1lKTsKLSB9Ci0gCi0gbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkNh bGxJbnN0KGxsdm06OlZhbHVlICpmdW5jLCBjb25zdCBGdW5jdGlvblR5cGUgKmZ1bmNUeXBlLCBs bHZtOjpWYWx1ZSAqYXJnMCwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgbGx2bTo6VmFsdWUgKmFyZzEsIGNvbnN0IGNoYXIgKm5hbWUpIHsKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6VmFsdWUgKmFyZzEsIGNvbnN0 IGxsdm06OlR3aW5lICZuYW1lKSB7Ci0gICAgIHN0ZDo6dmVjdG9yPGxsdm06OlZhbHVlICo+IGFy Z3M7Ci0gICAgIGFyZ3MucHVzaF9iYWNrKGFyZzApOwotICAgICBhcmdzLnB1c2hfYmFjayhhcmcx KTsKLWRpZmYgLS1naXQgYS9zcmMvY3R4LmggYi9zcmMvY3R4LmgKLWluZGV4IDZlNWFkNzRiYS4u NDhiM2JiODI2IDEwMDY0NAotLS0tIGEvc3JjL2N0eC5oCi0rKysgYi9zcmMvY3R4LmgKLUBAIC0z MDIsNyArMzAyLDcgQEAgY2xhc3MgRnVuY3Rpb25FbWl0Q29udGV4dCB7Ci0gICAgIGxsdm06OlZh bHVlICpHZXRTdHJpbmdQdHIoY29uc3Qgc3RkOjpzdHJpbmcgJnN0cik7Ci0gCi0gICAgIC8qKiBD cmVhdGUgYSBuZXcgYmFzaWMgYmxvY2sgd2l0aCBnaXZlbiBuYW1lICovCi0tICAgIGxsdm06OkJh c2ljQmxvY2sgKkNyZWF0ZUJhc2ljQmxvY2soY29uc3QgY2hhciAqbmFtZSwgbGx2bTo6QmFzaWNC bG9jayAqaW5zZXJ0QWZ0ZXIgPSBOVUxMKTsKLSsgICAgbGx2bTo6QmFzaWNCbG9jayAqQ3JlYXRl QmFzaWNCbG9jayhjb25zdCBsbHZtOjpUd2luZSAmbmFtZSwgbGx2bTo6QmFzaWNCbG9jayAqaW5z ZXJ0QWZ0ZXIgPSBOVUxMKTsKLSAKLSAgICAgLyoqIEdpdmVuIGEgdmVjdG9yIHdpdGggZWxlbWVu dCB0eXBlIGkxLCByZXR1cm4gYSB2ZWN0b3Igb2YgdHlwZQotICAgICAgICAgTExWTVR5cGVzOjpC b29sVmVjdG9yVHlwZS4gIFRoaXMgbWV0aG9kIGhhbmRsZXMgdGhlIGNvbnZlcnNpb24gZm9yCi1A QCAtMzgwLDMzICszODAsMzMgQEAgY2xhc3MgRnVuY3Rpb25FbWl0Q29udGV4dCB7Ci0gICAgICAg ICB0aGlzIGFsc28gaGFuZGxlcyBhcHBseWluZyB0aGUgZ2l2ZW4gb3BlcmF0aW9uIHRvIHRoZSB2 ZWN0b3IKLSAgICAgICAgIGVsZW1lbnRzLiAqLwotICAgICBsbHZtOjpWYWx1ZSAqQmluYXJ5T3Bl cmF0b3IobGx2bTo6SW5zdHJ1Y3Rpb246OkJpbmFyeU9wcyBpbnN0LCBsbHZtOjpWYWx1ZSAqdjAs IGxsdm06OlZhbHVlICp2MSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0 IGNoYXIgKm5hbWUgPSBOVUxMKTsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv bnN0IGxsdm06OlR3aW5lICZuYW1lID0gIiIpOwotIAotICAgICAvKiogRW1pdCB0aGUgIm5vdCIg b3BlcmF0b3IuICBMaWtlIEJpbmFyeU9wZXJhdG9yKCksIHRoaXMgYWxzbyBoYW5kbGVzCi0gICAg ICAgICBhIFZlY3RvclR5cGUtYmFzZWQgb3BlcmFuZC4gKi8KLS0gICAgbGx2bTo6VmFsdWUgKk5v dE9wZXJhdG9yKGxsdm06OlZhbHVlICp2LCBjb25zdCBjaGFyICpuYW1lID0gTlVMTCk7Ci0rICAg IGxsdm06OlZhbHVlICpOb3RPcGVyYXRvcihsbHZtOjpWYWx1ZSAqdiwgY29uc3QgbGx2bTo6VHdp bmUgJm5hbWUgPSAiIik7Ci0gCi0gICAgIC8qKiBFbWl0IGEgY29tcGFyaXNvbiBpbnN0cnVjdGlv bi4gIElmIHRoZSBvcGVyYW5kcyBhcmUgVmVjdG9yVHlwZXMsCi0gICAgICAgICB0aGVuIGEgdmFs dWUgZm9yIHRoZSBjb3JyZXNwb25kaW5nIGJvb2xlYW4gVmVjdG9yVHlwZSBpcwotICAgICAgICAg cmV0dXJuZWQuICovCi0gICAgIGxsdm06OlZhbHVlICpDbXBJbnN0KGxsdm06Okluc3RydWN0aW9u OjpPdGhlck9wcyBpbnN0LCBsbHZtOjpDbXBJbnN0OjpQcmVkaWNhdGUgcHJlZCwgbGx2bTo6VmFs dWUgKnYwLAotLSAgICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpWYWx1ZSAqdjEsIGNvbnN0 IGNoYXIgKm5hbWUgPSBOVUxMKTsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6VmFs dWUgKnYxLCBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSA9ICIiKTsKLSAKLSAgICAgLyoqIEdpdmVu IGEgc2NhbGFyIHZhbHVlLCByZXR1cm4gYSB2ZWN0b3Igb2YgdGhlIHNhbWUgdHlwZSAob3IgYW4K LSAgICAgICAgIGFycmF5LCBmb3IgcG9pbnRlciB0eXBlcykuICovCi0tICAgIGxsdm06OlZhbHVl ICpTbWVhclVuaWZvcm0obGx2bTo6VmFsdWUgKnZhbHVlLCBjb25zdCBjaGFyICpuYW1lID0gTlVM TCk7Ci0rICAgIGxsdm06OlZhbHVlICpTbWVhclVuaWZvcm0obGx2bTo6VmFsdWUgKnZhbHVlLCBj b25zdCBsbHZtOjpUd2luZSAmbmFtZSA9ICIiKTsKLSAKLS0gICAgbGx2bTo6VmFsdWUgKkJpdENh c3RJbnN0KGxsdm06OlZhbHVlICp2YWx1ZSwgbGx2bTo6VHlwZSAqdHlwZSwgY29uc3QgY2hhciAq bmFtZSA9IE5VTEwpOwotLSAgICBsbHZtOjpWYWx1ZSAqUHRyVG9JbnRJbnN0KGxsdm06OlZhbHVl ICp2YWx1ZSwgY29uc3QgY2hhciAqbmFtZSA9IE5VTEwpOwotLSAgICBsbHZtOjpWYWx1ZSAqUHRy VG9JbnRJbnN0KGxsdm06OlZhbHVlICp2YWx1ZSwgbGx2bTo6VHlwZSAqdHlwZSwgY29uc3QgY2hh ciAqbmFtZSA9IE5VTEwpOwotLSAgICBsbHZtOjpWYWx1ZSAqSW50VG9QdHJJbnN0KGxsdm06OlZh bHVlICp2YWx1ZSwgbGx2bTo6VHlwZSAqdHlwZSwgY29uc3QgY2hhciAqbmFtZSA9IE5VTEwpOwot KyAgICBsbHZtOjpWYWx1ZSAqQml0Q2FzdEluc3QobGx2bTo6VmFsdWUgKnZhbHVlLCBsbHZtOjpU eXBlICp0eXBlLCBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSA9ICIiKTsKLSsgICAgbGx2bTo6VmFs dWUgKlB0clRvSW50SW5zdChsbHZtOjpWYWx1ZSAqdmFsdWUsIGNvbnN0IGxsdm06OlR3aW5lICZu YW1lID0gIiIpOwotKyAgICBsbHZtOjpWYWx1ZSAqUHRyVG9JbnRJbnN0KGxsdm06OlZhbHVlICp2 YWx1ZSwgbGx2bTo6VHlwZSAqdHlwZSwgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUgPSAiIik7Ci0r ICAgIGxsdm06OlZhbHVlICpJbnRUb1B0ckluc3QobGx2bTo6VmFsdWUgKnZhbHVlLCBsbHZtOjpU eXBlICp0eXBlLCBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSA9ICIiKTsKLSAKLS0gICAgbGx2bTo6 SW5zdHJ1Y3Rpb24gKlRydW5jSW5zdChsbHZtOjpWYWx1ZSAqdmFsdWUsIGxsdm06OlR5cGUgKnR5 cGUsIGNvbnN0IGNoYXIgKm5hbWUgPSBOVUxMKTsKLSsgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKlRy dW5jSW5zdChsbHZtOjpWYWx1ZSAqdmFsdWUsIGxsdm06OlR5cGUgKnR5cGUsIGNvbnN0IGxsdm06 OlR3aW5lICZuYW1lID0gIiIpOwotICAgICBsbHZtOjpJbnN0cnVjdGlvbiAqQ2FzdEluc3QobGx2 bTo6SW5zdHJ1Y3Rpb246OkNhc3RPcHMgb3AsIGxsdm06OlZhbHVlICp2YWx1ZSwgbGx2bTo6VHlw ZSAqdHlwZSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKm5h bWUgPSBOVUxMKTsKLS0gICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKkZQQ2FzdEluc3QobGx2bTo6VmFs dWUgKnZhbHVlLCBsbHZtOjpUeXBlICp0eXBlLCBjb25zdCBjaGFyICpuYW1lID0gTlVMTCk7Ci0t ICAgIGxsdm06Okluc3RydWN0aW9uICpTRXh0SW5zdChsbHZtOjpWYWx1ZSAqdmFsdWUsIGxsdm06 OlR5cGUgKnR5cGUsIGNvbnN0IGNoYXIgKm5hbWUgPSBOVUxMKTsKLS0gICAgbGx2bTo6SW5zdHJ1 Y3Rpb24gKlpFeHRJbnN0KGxsdm06OlZhbHVlICp2YWx1ZSwgbGx2bTo6VHlwZSAqdHlwZSwgY29u c3QgY2hhciAqbmFtZSA9IE5VTEwpOwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y29uc3QgbGx2bTo6VHdpbmUgJm5hbWUgPSAiIik7Ci0rICAgIGxsdm06Okluc3RydWN0aW9uICpG UENhc3RJbnN0KGxsdm06OlZhbHVlICp2YWx1ZSwgbGx2bTo6VHlwZSAqdHlwZSwgY29uc3QgbGx2 bTo6VHdpbmUgJm5hbWUgPSAiIik7Ci0rICAgIGxsdm06Okluc3RydWN0aW9uICpTRXh0SW5zdChs bHZtOjpWYWx1ZSAqdmFsdWUsIGxsdm06OlR5cGUgKnR5cGUsIGNvbnN0IGxsdm06OlR3aW5lICZu YW1lID0gIiIpOwotKyAgICBsbHZtOjpJbnN0cnVjdGlvbiAqWkV4dEluc3QobGx2bTo6VmFsdWUg KnZhbHVlLCBsbHZtOjpUeXBlICp0eXBlLCBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSA9ICIiKTsK LSAKLSAgICAgLyoqIEdpdmVuIHR3byBpbnRlZ2VyLXR5cGVkIHZhbHVlcyAoYnV0IHBvc3NpYmx5 IG9uZSB2ZWN0b3IgYW5kIHRoZQotICAgICAgICAgb3RoZXIgbm90LCBhbmQgb3Igb2YgcG9zc2li bHktZGlmZmVyZW50IGJpdC13aWR0aHMpLCB1cGRhdGUgdGhlaXIKLUBAIC00MjYsOSArNDI2LDkg QEAgY2xhc3MgRnVuY3Rpb25FbWl0Q29udGV4dCB7Ci0gICAgICAgICBwb2ludGVycy4gIFRoZSB1 bmRlcmx5aW5nIHR5cGUgb2YgdGhlIGJhc2UgcG9pbnRlciBtdXN0IGJlIHByb3ZpZGVkCi0gICAg ICAgICB2aWEgdGhlIHB0clR5cGUgcGFyYW1ldGVyICovCi0gICAgIGxsdm06OlZhbHVlICpHZXRF bGVtZW50UHRySW5zdChsbHZtOjpWYWx1ZSAqYmFzZVB0ciwgbGx2bTo6VmFsdWUgKmluZGV4LCBj b25zdCBUeXBlICpwdHJUeXBlLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y29uc3QgY2hhciAqbmFtZSA9IE5VTEwpOwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUgPSAiIik7Ci0gICAgIGxsdm06OlZhbHVlICpH ZXRFbGVtZW50UHRySW5zdChsbHZtOjpWYWx1ZSAqYmFzZVB0ciwgbGx2bTo6VmFsdWUgKmluZGV4 MCwgbGx2bTo6VmFsdWUgKmluZGV4MSwgY29uc3QgVHlwZSAqcHRyVHlwZSwKLS0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKm5hbWUgPSBOVUxMKTsKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lID0g IiIpOwotIAotICAgICAvKiogVGhpcyBtZXRob2QgcmV0dXJucyBhIG5ldyBwb2ludGVyIHRoYXQg cmVwcmVzZW50cyBvZmZzZXR0aW5nIHRoZQotICAgICAgICAgZ2l2ZW4gYmFzZSBwb2ludGVyIHRv IHBvaW50IGF0IHRoZSBnaXZlbiBlbGVtZW50IG51bWJlciBvZiB0aGUKLUBAIC00MzYsMjYgKzQz NiwyNiBAQCBjbGFzcyBGdW5jdGlvbkVtaXRDb250ZXh0IHsKLSAgICAgICAgIHBvaW50ZXIgbXVz dCBiZSBhIHBvaW50ZXIgdG8gYSBzdHJ1Y3R1cmUgdHlwZS4gIFRoZSBwdHJUeXBlIGdpdmVzCi0g ICAgICAgICB0aGUgdHlwZSBvZiB0aGUgcG9pbnRlciwgdGhvdWdoIGl0IG1heSBiZSBOVUxMIGlm IHRoZSBiYXNlIHBvaW50ZXIKLSAgICAgICAgIGlzIHVuaWZvcm0uICovCi0tICAgIGxsdm06OlZh bHVlICpBZGRFbGVtZW50T2Zmc2V0KGxsdm06OlZhbHVlICpiYXNlUHRyLCBpbnQgZWxlbWVudE51 bSwgY29uc3QgVHlwZSAqcHRyVHlwZSwgY29uc3QgY2hhciAqbmFtZSA9IE5VTEwsCi0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFBvaW50ZXJUeXBlICoqcmVzdWx0UHRy VHlwZSA9IE5VTEwpOwotKyAgICBsbHZtOjpWYWx1ZSAqQWRkRWxlbWVudE9mZnNldChsbHZtOjpW YWx1ZSAqYmFzZVB0ciwgaW50IGVsZW1lbnROdW0sIGNvbnN0IFR5cGUgKnB0clR5cGUsCi0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lID0g IiIsIGNvbnN0IFBvaW50ZXJUeXBlICoqcmVzdWx0UHRyVHlwZSA9IE5VTEwpOwotIAotICAgICAv KiogQm9vbCBpcyBzdG9yZWQgYXMgaTggYW5kIDxXSURUSCB4IGk4PiBidXQgcmVwcmVzZW50ZWQg aW4gSVIgYXMgaTEgYW5kCi0gICAgICAqIDxXSURUSCB4IE1BU0s+LiBUaGlzIGlzIGEgaGVscGVy IGZ1bmN0aW9uIHRvIG1hdGNoIGJvb2wgc2l6ZSBhdCBzdG9yYWdlCi0gICAgICAqIGludGVyZmFj ZS4gKi8KLS0gICAgbGx2bTo6VmFsdWUgKlN3aXRjaEJvb2xTaXplKGxsdm06OlZhbHVlICp2YWx1 ZSwgbGx2bTo6VHlwZSAqdG9UeXBlLCBjb25zdCBjaGFyICpuYW1lID0gTlVMTCk7Ci0rICAgIGxs dm06OlZhbHVlICpTd2l0Y2hCb29sU2l6ZShsbHZtOjpWYWx1ZSAqdmFsdWUsIGxsdm06OlR5cGUg KnRvVHlwZSwgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUgPSAiIik7Ci0gICAgIC8qKiBMb2FkIGZy b20gdGhlIG1lbW9yeSBsb2NhdGlvbihzKSBnaXZlbiBieSBsdmFsdWUsIHVzaW5nIHRoZSBnaXZl bgotICAgICAgICAgbWFzay4gIFRoZSBsdmFsdWUgbWF5IGJlIHZhcnlpbmcsIGluIHdoaWNoIGNh c2UgdGhpcyBjb3JyZXNwb25kcyB0bwotICAgICAgICAgYSBnYXRoZXIgZnJvbSB0aGUgbXVsdGlw bGUgbWVtb3J5IGxvY2F0aW9ucyBnaXZlbiBieSB0aGUgYXJyYXkgb2YKLSAgICAgICAgIHBvaW50 ZXIgdmFsdWVzIGdpdmVuIGJ5IHRoZSBsdmFsdWUuICBJZiB0aGUgbHZhbHVlIGlzIG5vdCB2YXJ5 aW5nLAotICAgICAgICAgdGhlbiBib3RoIHRoZSBtYXNrIHBvaW50ZXIgYW5kIHRoZSB0eXBlIHBv aW50ZXIgbWF5IGJlIE5VTEwuICovCi0tICAgIGxsdm06OlZhbHVlICpMb2FkSW5zdChsbHZtOjpW YWx1ZSAqcHRyLCBsbHZtOjpWYWx1ZSAqbWFzaywgY29uc3QgVHlwZSAqcHRyVHlwZSwgY29uc3Qg Y2hhciAqbmFtZSA9IE5VTEwsCi0rICAgIGxsdm06OlZhbHVlICpMb2FkSW5zdChsbHZtOjpWYWx1 ZSAqcHRyLCBsbHZtOjpWYWx1ZSAqbWFzaywgY29uc3QgVHlwZSAqcHRyVHlwZSwgY29uc3QgbGx2 bTo6VHdpbmUgJm5hbWUgPSAiIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgb25l X2VsZW0gPSBmYWxzZSk7Ci0gCi0gICAgIC8qIExvYWQgZnJvbSBtZW1vcnkgbG9jYXRpb24ocykg Z2l2ZW4uCi0gICAgICAqICd0eXBlJyBuZWVkcyB0byBiZSBwcm92aWRlZCB3aGVuIHN0b3JhZ2Ug dHlwZSBpcyBkaWZmZXJlbnQgZnJvbSBJUiB0eXBlLiBGb3IgZXhhbXBsZSwKLSAgICAgICogJ3Vu Zm9ybSBib29sJyBpcyAnaTEnIGluIElSIGJ1dCBzdG9yZWQgYXMgJ2k4Jy4KLSAgICAgICogT3Ro ZXJ3aXNlIGxlYXZlIHRoaXMgYXMgTlVMTC4gKi8KLS0gICAgbGx2bTo6VmFsdWUgKkxvYWRJbnN0 KGxsdm06OlZhbHVlICpwdHIsIGNvbnN0IFR5cGUgKnR5cGUgPSBOVUxMLCBjb25zdCBjaGFyICpu YW1lID0gTlVMTCk7Ci0rICAgIGxsdm06OlZhbHVlICpMb2FkSW5zdChsbHZtOjpWYWx1ZSAqcHRy LCBjb25zdCBUeXBlICp0eXBlID0gTlVMTCwgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUgPSAiIik7 Ci0gCi0gICAgIC8qKiBFbWl0cyBhbiBhbGxvY2EgaW5zdHJ1Y3Rpb24gdG8gYWxsb2NhdGUgc3Rh Y2sgc3RvcmFnZSBmb3IgdGhlIGdpdmVuCi0gICAgICAgICB0eXBlLiAgSWYgYSBub24temVybyBh bGlnbm1lbnQgaXMgc3BlY2lmaWVkLCB0aGUgb2JqZWN0IGlzIGFsc28KLUBAIC00NjMsNyArNDYz LDggQEAgY2xhc3MgRnVuY3Rpb25FbWl0Q29udGV4dCB7Ci0gICAgICAgICBpbnN0cnVjdGlvbiBp cyBhZGRlZCBhdCB0aGUgc3RhcnQgb2YgdGhlIGZ1bmN0aW9uIGluIHRoZSBlbnRyeQotICAgICAg ICAgYmFzaWMgYmxvY2s7IGlmIGl0IHNob3VsZCBiZSBhZGRlZCB0byB0aGUgY3VycmVudCBiYXNp YyBibG9jaywgdGhlbgotICAgICAgICAgdGhlIGF0RW50cnlCbG9jayBwYXJhbWV0ZXIgc2hvdWxk IGJlIGZhbHNlLiAqLwotLSAgICBsbHZtOjpWYWx1ZSAqQWxsb2NhSW5zdChsbHZtOjpUeXBlICps bHZtVHlwZSwgY29uc3QgY2hhciAqbmFtZSA9IE5VTEwsIGludCBhbGlnbiA9IDAsIGJvb2wgYXRF bnRyeUJsb2NrID0gdHJ1ZSk7Ci0rICAgIGxsdm06OlZhbHVlICpBbGxvY2FJbnN0KGxsdm06OlR5 cGUgKmxsdm1UeXBlLCBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSA9ICIiLCBpbnQgYWxpZ24gPSAw LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIGF0RW50cnlCbG9jayA9IHRydWUp OwotIAotICAgICAvKiogRW1pdHMgYW4gYWxsb2NhIGluc3RydWN0aW9uIHRvIGFsbG9jYXRlIHN0 YWNrIHN0b3JhZ2UgZm9yIHRoZSBnaXZlbgotICAgICAgICAgdHlwZS4gIElmIGEgbm9uLXplcm8g YWxpZ25tZW50IGlzIHNwZWNpZmllZCwgdGhlIG9iamVjdCBpcyBhbHNvCi1AQCAtNDc0LDcgKzQ3 NSw3IEBAIGNsYXNzIEZ1bmN0aW9uRW1pdENvbnRleHQgewotICAgICAgICAgVGhpcyBpbXBsZW1l bnRhdGlvbiBpcyBwcmVmZXJyZWQgd2hlbiBwb3NzaWJsZS4gSXQgaXMgbmVlZGVkIHdoZW4KLSAg ICAgICAgIHN0b3JhZ2UgdHlwZSBpcyBkaWZmZXJlbnQgZnJvbSBJUiB0eXBlLiBGb3IgZXhhbXBs ZSwKLSAgICAgICAgICd1bmZvcm0gYm9vbCcgaXMgJ2kxJyBpbiBJUiBidXQgc3RvcmVkIGFzICdp OCcuICovCi0tICAgIGxsdm06OlZhbHVlICpBbGxvY2FJbnN0KGNvbnN0IFR5cGUgKnB0clR5cGUs IGNvbnN0IGNoYXIgKm5hbWUgPSBOVUxMLCBpbnQgYWxpZ24gPSAwLCBib29sIGF0RW50cnlCbG9j ayA9IHRydWUpOwotKyAgICBsbHZtOjpWYWx1ZSAqQWxsb2NhSW5zdChjb25zdCBUeXBlICpwdHJU eXBlLCBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSA9ICIiLCBpbnQgYWxpZ24gPSAwLCBib29sIGF0 RW50cnlCbG9jayA9IHRydWUpOwotIAotICAgICAvKiogU3RhbmRhcmQgc3RvcmUgaW5zdHJ1Y3Rp b247IGZvciB0aGlzIHZhcmlhbnQsIHRoZSBsdmFsdWUgbXVzdCBiZSBhCi0gICAgICAgICBzaW5n bGUgcG9pbnRlciwgbm90IGEgdmFyeWluZyBsdmFsdWUuCi1AQCAtNTAyLDM5ICs1MDMsNDEgQEAg Y2xhc3MgRnVuY3Rpb25FbWl0Q29udGV4dCB7Ci0gICAgIC8qKiBUaGlzIGNvbnZlbmllbmNlIG1l dGhvZCBtYXBzIHRvIGFuIGxsdm06OkV4dHJhY3RFbGVtZW50SW5zdCBpZiB0aGUKLSAgICAgICAg IGdpdmVuIHZhbHVlIGlzIGEgbGx2bTo6VmVjdG9yVHlwZSwgYW5kIHRvIGFuIGxsdm06OkV4dHJh Y3RWYWx1ZUluc3QKLSAgICAgICAgIG90aGVyd2lzZS4gKi8KLS0gICAgbGx2bTo6VmFsdWUgKkV4 dHJhY3RJbnN0KGxsdm06OlZhbHVlICp2LCBpbnQgZWx0LCBjb25zdCBjaGFyICpuYW1lID0gTlVM TCk7Ci0rICAgIGxsdm06OlZhbHVlICpFeHRyYWN0SW5zdChsbHZtOjpWYWx1ZSAqdiwgaW50IGVs dCwgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUgPSAiIik7Ci0gCi0gICAgIC8qKiBUaGlzIGNvbnZl bmllbmNlIG1ldGhvZCBtYXBzIHRvIGFuIGxsdm06Okluc2VydEVsZW1lbnRJbnN0IGlmIHRoZQot ICAgICAgICAgZ2l2ZW4gdmFsdWUgaXMgYSBsbHZtOjpWZWN0b3JUeXBlLCBhbmQgdG8gYW4gbGx2 bTo6SW5zZXJ0VmFsdWVJbnN0Ci0gICAgICAgICBvdGhlcndpc2UuICovCi0tICAgIGxsdm06OlZh bHVlICpJbnNlcnRJbnN0KGxsdm06OlZhbHVlICp2LCBsbHZtOjpWYWx1ZSAqZWx0VmFsLCBpbnQg ZWx0LCBjb25zdCBjaGFyICpuYW1lID0gTlVMTCk7Ci0rICAgIGxsdm06OlZhbHVlICpJbnNlcnRJ bnN0KGxsdm06OlZhbHVlICp2LCBsbHZtOjpWYWx1ZSAqZWx0VmFsLCBpbnQgZWx0LCBjb25zdCBs bHZtOjpUd2luZSAmbmFtZSA9ICIiKTsKLSAKLSAgICAgLyoqIFRoaXMgY29udmVuaWVuY2UgbWV0 aG9kIG1hcHMgdG8gYW4gbGx2bTo6U2h1ZmZsZVZlY3Rvckluc3QuICovCi0tICAgIGxsdm06OlZh bHVlICpTaHVmZmxlSW5zdChsbHZtOjpWYWx1ZSAqdjEsIGxsdm06OlZhbHVlICp2MiwgbGx2bTo6 VmFsdWUgKm1hc2ssIGNvbnN0IGNoYXIgKm5hbWUgPSBOVUxMKTsKLSsgICAgbGx2bTo6VmFsdWUg KlNodWZmbGVJbnN0KGxsdm06OlZhbHVlICp2MSwgbGx2bTo6VmFsdWUgKnYyLCBsbHZtOjpWYWx1 ZSAqbWFzaywgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUgPSAiIik7Ci0gCi0gICAgIC8qKiBUaGlz IGNvbnZlbmllbmNlIG1ldGhvZCB0byBnZW5lcmF0ZSBicm9hZGNhc3QgcGF0dGVybi4gSXQgdGFr ZXMgYSB2YWx1ZQotICAgICAgICAgYW5kIGEgdmVjdG9yIHR5cGUuIFR5cGUgb2YgdGhlIHZhbHVl IG11c3QgbWF0Y2ggZWxlbWVudCB0eXBlIG9mIHRoZQotICAgICAgICAgdmVjdG9yLiAqLwotLSAg ICBsbHZtOjpWYWx1ZSAqQnJvYWRjYXN0VmFsdWUobGx2bTo6VmFsdWUgKnYsIGxsdm06OlR5cGUg KnZlY1R5cGUsIGNvbnN0IGNoYXIgKm5hbWUgPSBOVUxMKTsKLSsgICAgbGx2bTo6VmFsdWUgKkJy b2FkY2FzdFZhbHVlKGxsdm06OlZhbHVlICp2LCBsbHZtOjpUeXBlICp2ZWNUeXBlLCBjb25zdCBs bHZtOjpUd2luZSAmbmFtZSA9ICIiKTsKLSAKLS0gICAgbGx2bTo6UEhJTm9kZSAqUGhpTm9kZShs bHZtOjpUeXBlICp0eXBlLCBpbnQgY291bnQsIGNvbnN0IGNoYXIgKm5hbWUgPSBOVUxMKTsKLS0g ICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKlNlbGVjdEluc3QobGx2bTo6VmFsdWUgKnRlc3QsIGxsdm06 OlZhbHVlICp2YWwwLCBsbHZtOjpWYWx1ZSAqdmFsMSwgY29uc3QgY2hhciAqbmFtZSA9IE5VTEwp OwotKyAgICBsbHZtOjpQSElOb2RlICpQaGlOb2RlKGxsdm06OlR5cGUgKnR5cGUsIGludCBjb3Vu dCwgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUgPSAiIik7Ci0rICAgIGxsdm06Okluc3RydWN0aW9u ICpTZWxlY3RJbnN0KGxsdm06OlZhbHVlICp0ZXN0LCBsbHZtOjpWYWx1ZSAqdmFsMCwgbGx2bTo6 VmFsdWUgKnZhbDEsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGxs dm06OlR3aW5lICZuYW1lID0gIiIpOwotIAotICAgICAvKiogRW1pdHMgSVIgdG8gZG8gYSBmdW5j dGlvbiBjYWxsIHdpdGggdGhlIGdpdmVuIGFyZ3VtZW50cy4gIElmIHRoZQotICAgICAgICAgZnVu Y3Rpb24gdHlwZSBpcyBhIHZhcnlpbmcgZnVuY3Rpb24gcG9pbnRlciB0eXBlLCBpdHMgZnVsbCB0 eXBlCi0gICAgICAgICBtdXN0IGJlIHByb3ZpZGVkIGluIGZ1bmNUeXBlLiAgZnVuY1R5cGUgY2Fu IGJlIE5VTEwgaWYgZnVuYyBpcyBhCi0gICAgICAgICB1bmlmb3JtIGZ1bmN0aW9uIHBvaW50ZXIu ICovCi0gICAgIGxsdm06OlZhbHVlICpDYWxsSW5zdChsbHZtOjpWYWx1ZSAqZnVuYywgY29uc3Qg RnVuY3Rpb25UeXBlICpmdW5jVHlwZSwgY29uc3Qgc3RkOjp2ZWN0b3I8bGx2bTo6VmFsdWUgKj4g JmFyZ3MsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpuYW1lID0gTlVM TCk7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBsbHZtOjpUd2luZSAmbmFtZSA9 ICIiKTsKLSAKLSAgICAgLyoqIFRoaXMgaXMgYSBjb252ZW5pZW5jZSBtZXRob2QgdGhhdCBpc3N1 ZXMgYSBjYWxsIGluc3RydWN0aW9uIHRvIGEKLSAgICAgICAgIGZ1bmN0aW9uIHRoYXQgdGFrZXMg anVzdCBhIHNpbmdsZSBhcmd1bWVudC4gKi8KLS0gICAgbGx2bTo6VmFsdWUgKkNhbGxJbnN0KGxs dm06OlZhbHVlICpmdW5jLCBjb25zdCBGdW5jdGlvblR5cGUgKmZ1bmNUeXBlLCBsbHZtOjpWYWx1 ZSAqYXJnLCBjb25zdCBjaGFyICpuYW1lID0gTlVMTCk7Ci0rICAgIGxsdm06OlZhbHVlICpDYWxs SW5zdChsbHZtOjpWYWx1ZSAqZnVuYywgY29uc3QgRnVuY3Rpb25UeXBlICpmdW5jVHlwZSwgbGx2 bTo6VmFsdWUgKmFyZywKLSsgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGxsdm06OlR3 aW5lICZuYW1lID0gIiIpOwotIAotICAgICAvKiogVGhpcyBpcyBhIGNvbnZlbmllbmNlIG1ldGhv ZCB0aGF0IGlzc3VlcyBhIGNhbGwgaW5zdHJ1Y3Rpb24gdG8gYQotICAgICAgICAgZnVuY3Rpb24g dGhhdCB0YWtlcyB0d28gYXJndW1lbnRzLiAqLwotICAgICBsbHZtOjpWYWx1ZSAqQ2FsbEluc3Qo bGx2bTo6VmFsdWUgKmZ1bmMsIGNvbnN0IEZ1bmN0aW9uVHlwZSAqZnVuY1R5cGUsIGxsdm06OlZh bHVlICphcmcwLCBsbHZtOjpWYWx1ZSAqYXJnMSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAg IGNvbnN0IGNoYXIgKm5hbWUgPSBOVUxMKTsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgIGNv bnN0IGxsdm06OlR3aW5lICZuYW1lID0gIiIpOwotIAotICAgICAvKiogTGF1bmNoIGFuIGFzeW5j aHJvbm91cyB0YXNrIHRvIHJ1biB0aGUgZ2l2ZW4gZnVuY3Rpb24sIHBhc3NpbmcgaXQKLSAgICAg ICAgIGhlIGdpdmVuIGFyZ3VtZW50IHZhbHVlcy4gKi8KLUBAIC03NTYsOSArNzU5LDEwIEBAIGNs YXNzIEZ1bmN0aW9uRW1pdENvbnRleHQgewotICAgICB2b2lkIG1hc2tlZFN0b3JlKGxsdm06OlZh bHVlICp2YWx1ZSwgbGx2bTo6VmFsdWUgKnB0ciwgY29uc3QgVHlwZSAqcHRyVHlwZSwgbGx2bTo6 VmFsdWUgKm1hc2spOwotICAgICB2b2lkIHN0b3JlVW5pZm9ybVRvU09BKGxsdm06OlZhbHVlICp2 YWx1ZSwgbGx2bTo6VmFsdWUgKnB0ciwgbGx2bTo6VmFsdWUgKm1hc2ssIGNvbnN0IFR5cGUgKnZh bHVlVHlwZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBQb2ludGVyVHlwZSAq cHRyVHlwZSk7Ci0tICAgIGxsdm06OlZhbHVlICpsb2FkVW5pZm9ybUZyb21TT0EobGx2bTo6VmFs dWUgKnB0ciwgbGx2bTo6VmFsdWUgKm1hc2ssIGNvbnN0IFBvaW50ZXJUeXBlICpwdHJUeXBlLCBj b25zdCBjaGFyICpuYW1lKTsKLSsgICAgbGx2bTo6VmFsdWUgKmxvYWRVbmlmb3JtRnJvbVNPQShs bHZtOjpWYWx1ZSAqcHRyLCBsbHZtOjpWYWx1ZSAqbWFzaywgY29uc3QgUG9pbnRlclR5cGUgKnB0 clR5cGUsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGx2bTo6 VHdpbmUgJm5hbWUgPSAiIik7Ci0gCi0tICAgIGxsdm06OlZhbHVlICpnYXRoZXIobGx2bTo6VmFs dWUgKnB0ciwgY29uc3QgUG9pbnRlclR5cGUgKnB0clR5cGUsIGxsdm06OlZhbHVlICptYXNrLCBj b25zdCBjaGFyICpuYW1lKTsKLSsgICAgbGx2bTo6VmFsdWUgKmdhdGhlcihsbHZtOjpWYWx1ZSAq cHRyLCBjb25zdCBQb2ludGVyVHlwZSAqcHRyVHlwZSwgbGx2bTo6VmFsdWUgKm1hc2ssIGNvbnN0 IGxsdm06OlR3aW5lICZuYW1lID0gIiIpOwotIAotICAgICBsbHZtOjpWYWx1ZSAqYWRkVmFyeWlu Z09mZnNldHNJZk5lZWRlZChsbHZtOjpWYWx1ZSAqcHRyLCBjb25zdCBUeXBlICpwdHJUeXBlKTsK LSB9OwotZGlmZiAtLWdpdCBhL3NyYy9leHByLmNwcCBiL3NyYy9leHByLmNwcAotaW5kZXggODBj YzMwMjBhLi42ZDM4ZDE4ODkgMTAwNjQ0Ci0tLS0gYS9zcmMvZXhwci5jcHAKLSsrKyBiL3NyYy9l eHByLmNwcAotQEAgLTEwMjEsMTEgKzEwMjEsMTEgQEAgc3RhdGljIGxsdm06OlZhbHVlICpsRW1p dE5lZ2F0ZShFeHByICphcmcsIFNvdXJjZVBvcyBwb3MsIEZ1bmN0aW9uRW1pdENvbnRleHQgKmMK LSAgICAgY3R4LT5TZXREZWJ1Z1Bvcyhwb3MpOwotICAgICBpZiAodHlwZS0+SXNGbG9hdFR5cGUo KSkgewotICAgICAgICAgbGx2bTo6VmFsdWUgKnplcm8gPSBsbHZtOjpDb25zdGFudEZQOjpnZXRa ZXJvVmFsdWVGb3JOZWdhdGlvbih0eXBlLT5MTFZNVHlwZShnLT5jdHgpKTsKLS0gICAgICAgIHJl dHVybiBjdHgtPkJpbmFyeU9wZXJhdG9yKGxsdm06Okluc3RydWN0aW9uOjpGU3ViLCB6ZXJvLCBh cmdWYWwsIExMVk1HZXROYW1lKGFyZ1ZhbCwgIl9uZWdhdGUiKSk7Ci0rICAgICAgICByZXR1cm4g Y3R4LT5CaW5hcnlPcGVyYXRvcihsbHZtOjpJbnN0cnVjdGlvbjo6RlN1YiwgemVybywgYXJnVmFs LCBsbHZtOjpUd2luZShhcmdWYWwtPmdldE5hbWUoKSkgKyAiX25lZ2F0ZSIpOwotICAgICB9IGVs c2UgewotICAgICAgICAgbGx2bTo6VmFsdWUgKnplcm8gPSBsTExWTUNvbnN0YW50VmFsdWUodHlw ZSwgZy0+Y3R4LCAwLik7Ci0gICAgICAgICBBc3NlcnRQb3MocG9zLCB0eXBlLT5Jc0ludFR5cGUo KSk7Ci0tICAgICAgICByZXR1cm4gY3R4LT5CaW5hcnlPcGVyYXRvcihsbHZtOjpJbnN0cnVjdGlv bjo6U3ViLCB6ZXJvLCBhcmdWYWwsIExMVk1HZXROYW1lKGFyZ1ZhbCwgIl9uZWdhdGUiKSk7Ci0r ICAgICAgICByZXR1cm4gY3R4LT5CaW5hcnlPcGVyYXRvcihsbHZtOjpJbnN0cnVjdGlvbjo6U3Vi LCB6ZXJvLCBhcmdWYWwsIGxsdm06OlR3aW5lKGFyZ1ZhbC0+Z2V0TmFtZSgpKSArICJfbmVnYXRl Iik7Ci0gICAgIH0KLSB9Ci0gCi1AQCAtMTA0NywxMSArMTA0NywxMSBAQCBsbHZtOjpWYWx1ZSAq VW5hcnlFeHByOjpHZXRWYWx1ZShGdW5jdGlvbkVtaXRDb250ZXh0ICpjdHgpIGNvbnN0IHsKLSAg ICAgICAgIHJldHVybiBsRW1pdE5lZ2F0ZShleHByLCBwb3MsIGN0eCk7Ci0gICAgIGNhc2UgTG9n aWNhbE5vdDogewotICAgICAgICAgbGx2bTo6VmFsdWUgKmFyZ1ZhbCA9IGV4cHItPkdldFZhbHVl KGN0eCk7Ci0tICAgICAgICByZXR1cm4gY3R4LT5Ob3RPcGVyYXRvcihhcmdWYWwsIExMVk1HZXRO YW1lKGFyZ1ZhbCwgIl9sb2dpY2Fsbm90IikpOwotKyAgICAgICAgcmV0dXJuIGN0eC0+Tm90T3Bl cmF0b3IoYXJnVmFsLCBsbHZtOjpUd2luZShhcmdWYWwtPmdldE5hbWUoKSkgKyAiX2xvZ2ljYWxu b3QiKTsKLSAgICAgfQotICAgICBjYXNlIEJpdE5vdDogewotICAgICAgICAgbGx2bTo6VmFsdWUg KmFyZ1ZhbCA9IGV4cHItPkdldFZhbHVlKGN0eCk7Ci0tICAgICAgICByZXR1cm4gY3R4LT5Ob3RP cGVyYXRvcihhcmdWYWwsIExMVk1HZXROYW1lKGFyZ1ZhbCwgIl9iaXRub3QiKSk7Ci0rICAgICAg ICByZXR1cm4gY3R4LT5Ob3RPcGVyYXRvcihhcmdWYWwsIGxsdm06OlR3aW5lKGFyZ1ZhbC0+Z2V0 TmFtZSgpKSArICJfYml0bm90Iik7Ci0gICAgIH0KLSAgICAgZGVmYXVsdDoKLSAgICAgICAgIEZB VEFMKCJsb2dpYyBlcnJvciIpOwotQEAgLTE1MTgsNyArMTUxOCw4IEBAIHN0YXRpYyBsbHZtOjpW YWx1ZSAqbEVtaXRCaW5hcnlBcml0aChCaW5hcnlFeHByOjpPcCBvcCwgbGx2bTo6VmFsdWUgKnZh bHVlMCwgbGx2Ci0gICAgICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgICAgICB9Ci0gCi0tICAg ICAgICByZXR1cm4gY3R4LT5CaW5hcnlPcGVyYXRvcihpbnN0LCB2YWx1ZTAsIHZhbHVlMSwgTExW TUdldE5hbWUob3BOYW1lLCB2YWx1ZTAsIHZhbHVlMSkpOwotKyAgICAgICAgcmV0dXJuIGN0eC0+ QmluYXJ5T3BlcmF0b3IoaW5zdCwgdmFsdWUwLCB2YWx1ZTEsCi0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAoKChsbHZtOjpUd2luZShvcE5hbWUpICsgIl8iKSArIHZhbHVlMC0+ Z2V0TmFtZSgpKSArICJfIikgKyB2YWx1ZTEtPmdldE5hbWUoKSk7Ci0gICAgIH0KLSB9Ci0gCi1A QCAtMTU2Myw3ICsxNTY0LDcgQEAgc3RhdGljIGxsdm06OlZhbHVlICpsRW1pdEJpbmFyeUNtcChC aW5hcnlFeHByOjpPcCBvcCwgbGx2bTo6VmFsdWUgKmUwVmFsLCBsbHZtOjoKLSAgICAgfQotIAot ICAgICBsbHZtOjpWYWx1ZSAqY21wID0gY3R4LT5DbXBJbnN0KGlzRmxvYXRPcCA/IGxsdm06Oklu c3RydWN0aW9uOjpGQ21wIDogbGx2bTo6SW5zdHJ1Y3Rpb246OklDbXAsIHByZWQsIGUwVmFsLCBl MVZhbCwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMTFZNR2V0TmFtZShv cE5hbWUsIGUwVmFsLCBlMVZhbCkpOwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICgoKGxsdm06OlR3aW5lKG9wTmFtZSkgKyAiXyIpICsgZTBWYWwtPmdldE5hbWUoKSkgKyAi XyIpICsgZTFWYWwtPmdldE5hbWUoKSk7Ci0gICAgIC8vIFRoaXMgaXMgYSBsaXR0bGUgdWdseTog Q21wSW5zdCByZXR1cm5zIGkxIHZhbHVlcywgYnV0IHdlIHVzZSB2ZWN0b3JzCi0gICAgIC8vIG9m IGkzMnMgZm9yIHZhcnlpbmcgYm9vbCB2YWx1ZXM7IHR5cGUgY29udmVydCB0aGUgcmVzdWx0IGhl cmUgaWYKLSAgICAgLy8gbmVlZGVkLgotQEAgLTQxNzcsNyArNDE3OCw3IEBAIHN0YXRpYyBsbHZt OjpWYWx1ZSAqbENvbnZlcnRUb1NsaWNlUG9pbnRlcihGdW5jdGlvbkVtaXRDb250ZXh0ICpjdHgs IGxsdm06OlZhbHVlCi0gICAgIC8vIG9mZnNldHMKLSAgICAgbGx2bTo6VmFsdWUgKnJlc3VsdCA9 IGxsdm06OkNvbnN0YW50OjpnZXROdWxsVmFsdWUoc2xpY2VTdHJ1Y3RUeXBlKTsKLSAgICAgLy8g QW5kIHJlcGxhY2UgdGhlIHBvaW50ZXIgaW4gdGhlIHN0cnVjdCB3aXRoIHRoZSBnaXZlbiBwb2lu dGVyCi0tICAgIHJldHVybiBjdHgtPkluc2VydEluc3QocmVzdWx0LCBwdHIsIDAsIExMVk1HZXRO YW1lKHB0ciwgIl9zbGljZSIpKTsKLSsgICAgcmV0dXJuIGN0eC0+SW5zZXJ0SW5zdChyZXN1bHQs IHB0ciwgMCwgbGx2bTo6VHdpbmUocHRyLT5nZXROYW1lKCkpICsgIl9zbGljZSIpOwotIH0KLSAK LSAvKiogSWYgdGhlIGdpdmVuIGFycmF5IGluZGV4IGlzIGEgY29tcGlsZSB0aW1lIGNvbnN0YW50 LCBjaGVjayB0byBzZWUgaWYgaXQKLUBAIC00MjU4LDggKzQyNTksOCBAQCBsbHZtOjpWYWx1ZSAq SW5kZXhFeHByOjpHZXRMVmFsdWUoRnVuY3Rpb25FbWl0Q29udGV4dCAqY3R4KSBjb25zdCB7Ci0g ICAgICAgICAvLyBDb252ZXJ0IHRvIGEgc2xpY2UgcG9pbnRlciBpZiB3ZSdyZSBpbmRleGluZyBp bnRvIFNPQSBkYXRhCi0gICAgICAgICBiYXNlUHRyVmFsdWUgPSBsQ29udmVydFB0clRvU2xpY2VJ Zk5lZWRlZChjdHgsIGJhc2VQdHJWYWx1ZSwgJmJhc2VFeHByVHlwZSk7Ci0gCi0tICAgICAgICBs bHZtOjpWYWx1ZSAqcHRyID0KLS0gICAgICAgICAgICBjdHgtPkdldEVsZW1lbnRQdHJJbnN0KGJh c2VQdHJWYWx1ZSwgaW5kZXhWYWx1ZSwgYmFzZUV4cHJUeXBlLCBMTFZNR2V0TmFtZShiYXNlUHRy VmFsdWUsICJfb2Zmc2V0IikpOwotKyAgICAgICAgbGx2bTo6VmFsdWUgKnB0ciA9IGN0eC0+R2V0 RWxlbWVudFB0ckluc3QoYmFzZVB0clZhbHVlLCBpbmRleFZhbHVlLCBiYXNlRXhwclR5cGUsCi0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpU d2luZShiYXNlUHRyVmFsdWUtPmdldE5hbWUoKSkgKyAiX29mZnNldCIpOwotICAgICAgICAgcmV0 dXJuIGxBZGRWYXJ5aW5nT2Zmc2V0c0lmTmVlZGVkKGN0eCwgcHRyLCBHZXRMVmFsdWVUeXBlKCkp OwotICAgICB9Ci0gCi1AQCAtNDI5MCw4ICs0MjkxLDggQEAgbGx2bTo6VmFsdWUgKkluZGV4RXhw cjo6R2V0TFZhbHVlKEZ1bmN0aW9uRW1pdENvbnRleHQgKmN0eCkgY29uc3QgewotICAgICBjdHgt PlNldERlYnVnUG9zKHBvcyk7Ci0gCi0gICAgIC8vIEFuZCBkbyB0aGUgYWN0dWFsIGluZGV4aW5n IGNhbGN1bGF0aW9uLi4KLS0gICAgbGx2bTo6VmFsdWUgKnB0ciA9Ci0tICAgICAgICBjdHgtPkdl dEVsZW1lbnRQdHJJbnN0KGJhc2VQdHIsIExMVk1JbnQzMigwKSwgaW5kZXhWYWx1ZSwgYmFzZVB0 clR5cGUsIExMVk1HZXROYW1lKGJhc2VQdHIsICJfb2Zmc2V0IikpOwotKyAgICBsbHZtOjpWYWx1 ZSAqcHRyID0gY3R4LT5HZXRFbGVtZW50UHRySW5zdChiYXNlUHRyLCBMTFZNSW50MzIoMCksIGlu ZGV4VmFsdWUsIGJhc2VQdHJUeXBlLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBsbHZtOjpUd2luZShiYXNlUHRyLT5nZXROYW1lKCkpICsgIl9vZmZzZXQi KTsKLSAgICAgcmV0dXJuIGxBZGRWYXJ5aW5nT2Zmc2V0c0lmTmVlZGVkKGN0eCwgcHRyLCBHZXRM VmFsdWVUeXBlKCkpOwotIH0KLSAKLUBAIC00Nzg4LDE1ICs0Nzg5LDE0IEBAIGxsdm06OlZhbHVl ICpWZWN0b3JNZW1iZXJFeHByOjpHZXRWYWx1ZShGdW5jdGlvbkVtaXRDb250ZXh0ICpjdHgpIGNv bnN0IHsKLSAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgaWRlbnRpZmllci5zaXplKCk7 ICsraSkgewotICAgICAgICAgICAgIGNoYXIgaWRTdHJbMl0gPSB7aWRlbnRpZmllcltpXSwgJ1ww J307Ci0gICAgICAgICAgICAgbGx2bTo6VmFsdWUgKmVsZW1lbnRQdHIgPQotLSAgICAgICAgICAg ICAgICBjdHgtPkFkZEVsZW1lbnRPZmZzZXQoYmFzZVB0ciwgaW5kaWNlc1tpXSwgYmFzZVB0clR5 cGUsIExMVk1HZXROYW1lKGJhc2VQdHIsIGlkU3RyKSk7Ci0rICAgICAgICAgICAgICAgIGN0eC0+ QWRkRWxlbWVudE9mZnNldChiYXNlUHRyLCBpbmRpY2VzW2ldLCBiYXNlUHRyVHlwZSwgbGx2bTo6 VHdpbmUoYmFzZVB0ci0+Z2V0TmFtZSgpKSArIGlkU3RyKTsKLSAgICAgICAgICAgICBsbHZtOjpW YWx1ZSAqZWxlbWVudFZhbHVlID0gY3R4LT5Mb2FkSW5zdChlbGVtZW50UHRyLCBlbGVtZW50TWFz aywgZWxlbWVudFB0clR5cGUpOwotIAotLSAgICAgICAgICAgIGNvbnN0IGNoYXIgKnJlc3VsdE5h bWUgPSBMTFZNR2V0TmFtZShyZXN1bHRQdHIsIGlkU3RyKTsKLS0gICAgICAgICAgICBsbHZtOjpW YWx1ZSAqcHRtcCA9IGN0eC0+QWRkRWxlbWVudE9mZnNldChyZXN1bHRQdHIsIGksIE5VTEwsIHJl c3VsdE5hbWUpOwotKyAgICAgICAgICAgIGxsdm06OlZhbHVlICpwdG1wID0gY3R4LT5BZGRFbGVt ZW50T2Zmc2V0KHJlc3VsdFB0ciwgaSwgTlVMTCwgbGx2bTo6VHdpbmUocmVzdWx0UHRyLT5nZXRO YW1lKCkpICsgaWRTdHIpOwotICAgICAgICAgICAgIGN0eC0+U3RvcmVJbnN0KGVsZW1lbnRWYWx1 ZSwgcHRtcCwgZWxlbWVudFB0clR5cGUsIGV4cHItPkdldFR5cGUoKS0+SXNVbmlmb3JtVHlwZSgp KTsKLSAgICAgICAgIH0KLSAKLS0gICAgICAgIHJldHVybiBjdHgtPkxvYWRJbnN0KHJlc3VsdFB0 ciwgbWVtYmVyVHlwZSwgTExWTUdldE5hbWUoYmFzZVB0ciwgIl9zd2l6emxlIikpOwotKyAgICAg ICAgcmV0dXJuIGN0eC0+TG9hZEluc3QocmVzdWx0UHRyLCBtZW1iZXJUeXBlLCBsbHZtOjpUd2lu ZShiYXNlUHRyLT5nZXROYW1lKCkpICsgIl9zd2l6emxlIik7Ci0gICAgIH0KLSB9Ci0gCi1AQCAt NDkzMiw3ICs0OTMyLDcgQEAgbGx2bTo6VmFsdWUgKk1lbWJlckV4cHI6OkdldFZhbHVlKEZ1bmN0 aW9uRW1pdENvbnRleHQgKmN0eCkgY29uc3QgewotIAotICAgICBjdHgtPlNldERlYnVnUG9zKHBv cyk7Ci0gICAgIHN0ZDo6c3RyaW5nIHN1ZmZpeCA9IHN0ZDo6c3RyaW5nKCJfIikgKyBpZGVudGlm aWVyOwotLSAgICByZXR1cm4gY3R4LT5Mb2FkSW5zdChsdmFsdWUsIG1hc2ssIGx2YWx1ZVR5cGUs IExMVk1HZXROYW1lKGx2YWx1ZSwgc3VmZml4LmNfc3RyKCkpKTsKLSsgICAgcmV0dXJuIGN0eC0+ TG9hZEluc3QobHZhbHVlLCBtYXNrLCBsdmFsdWVUeXBlLCBsbHZtOjpUd2luZShsdmFsdWUtPmdl dE5hbWUoKSkgKyBzdWZmaXgpOwotIH0KLSAKLSBjb25zdCBUeXBlICpNZW1iZXJFeHByOjpHZXRU eXBlKCkgY29uc3QgeyByZXR1cm4gTlVMTDsgfQotQEAgLTY1MDIsNyArNjUwMiw3IEBAIHN0YXRp YyBsbHZtOjpWYWx1ZSAqbFR5cGVDb252QXRvbWljKEZ1bmN0aW9uRW1pdENvbnRleHQgKmN0eCwg bGx2bTo6VmFsdWUgKmV4cHJWCi0gICAgICAgICAgICAgICAgIC8vIGRvZXMgZm9yIGV2ZXJ5b25l IGVsc2UuLi4KLSAgICAgICAgICAgICAgICAgQXNzZXJ0KGNhc3QpOwotICAgICAgICAgICAgICAg ICBjYXN0ID0gY3R4LT5Td2l0Y2hCb29sU2l6ZShjYXN0LCBMTFZNVHlwZXM6OkJvb2xWZWN0b3JU eXBlLT5nZXRFbGVtZW50VHlwZSgpLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBMTFZNR2V0TmFtZShjYXN0LCAidG9faV9ib29sIikpOwotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpUd2luZShjYXN0LT5nZXROYW1l KCkpICsgInRvX2lfYm9vbCIpOwotICAgICAgICAgICAgIH0KLSAgICAgICAgIH0gZWxzZSB7Ci0g ICAgICAgICAgICAgLy8gZnJvbVR5cGUtPklzVmFyeWluZ1R5cGUoKSkKLUBAIC04MjQ2LDcgKzgy NDYsNyBAQCBsbHZtOjpWYWx1ZSAqTmV3RXhwcjo6R2V0VmFsdWUoRnVuY3Rpb25FbWl0Q29udGV4 dCAqY3R4KSBjb25zdCB7Ci0gICAgICAgICAvLyBwb2ludGVyIG9mIHRoZSByZXR1cm4gdHlwZSBh bmQgdG8gcnVuIHRoZSBjb2RlIGZvciBpbml0aWFsaXplcnMsCi0gICAgICAgICAvLyBpZiBwcmVz ZW50LgotICAgICAgICAgbGx2bTo6VHlwZSAqcHRyVHlwZSA9IHJldFR5cGUtPkxMVk1UeXBlKGct PmN0eCk7Ci0tICAgICAgICBwdHJWYWx1ZSA9IGN0eC0+Qml0Q2FzdEluc3QocHRyVmFsdWUsIHB0 clR5cGUsIExMVk1HZXROYW1lKHB0clZhbHVlLCAiX2Nhc3RfcHRyIikpOwotKyAgICAgICAgcHRy VmFsdWUgPSBjdHgtPkJpdENhc3RJbnN0KHB0clZhbHVlLCBwdHJUeXBlLCBsbHZtOjpUd2luZShw dHJWYWx1ZS0+Z2V0TmFtZSgpKSArICJfY2FzdF9wdHIiKTsKLSAKLSAgICAgICAgIGlmIChpbml0 RXhwciAhPSBOVUxMKQotICAgICAgICAgICAgIEluaXRTeW1ib2wocHRyVmFsdWUsIGFsbG9jVHlw ZSwgaW5pdEV4cHIsIGN0eCwgcG9zKTsKLWRpZmYgLS1naXQgYS9zcmMvbGx2bXV0aWwuY3BwIGIv c3JjL2xsdm11dGlsLmNwcAotaW5kZXggOTcwMTc1ZGJmLi5kMGJlY2I5ZjUgMTAwNjQ0Ci0tLS0g YS9zcmMvbGx2bXV0aWwuY3BwCi0rKysgYi9zcmMvbGx2bXV0aWwuY3BwCi1AQCAtMTYwNSwyMyAr MTYwNSw2IEBAIGxsdm06OlZhbHVlICpMTFZNU2h1ZmZsZVZlY3RvcnMobGx2bTo6VmFsdWUgKnYx LCBsbHZtOjpWYWx1ZSAqdjIsIGludDMyX3Qgc2h1ZltdCi0gICAgIHJldHVybiBuZXcgbGx2bTo6 U2h1ZmZsZVZlY3Rvckluc3QodjEsIHYyLCB2ZWMsICJzaHVmZmxlIiwgaW5zZXJ0QmVmb3JlKTsK LSB9Ci0gCi0tY29uc3QgY2hhciAqTExWTUdldE5hbWUobGx2bTo6VmFsdWUgKnYsIGNvbnN0IGNo YXIgKnMpIHsKLS0gICAgaWYgKHYgPT0gTlVMTCkKLS0gICAgICAgIHJldHVybiBzOwotLSAgICBz dGQ6OnN0cmluZyByZXQgPSBzdGQ6OnN0cmluZyh2LT5nZXROYW1lKCkpOwotLSAgICByZXQgKz0g czsKLS0gICAgcmV0dXJuIHN0cmR1cChyZXQuY19zdHIoKSk7Ci0tfQotLQotLWNvbnN0IGNoYXIg KkxMVk1HZXROYW1lKGNvbnN0IGNoYXIgKm9wLCBsbHZtOjpWYWx1ZSAqdjEsIGxsdm06OlZhbHVl ICp2MikgewotLSAgICBzdGQ6OnN0cmluZyByID0gb3A7Ci0tICAgIHIgKz0gIl8iOwotLSAgICBy ICs9IHYxLT5nZXROYW1lKCkuc3RyKCk7Ci0tICAgIHIgKz0gIl8iOwotLSAgICByICs9IHYyLT5n ZXROYW1lKCkuc3RyKCk7Ci0tICAgIHJldHVybiBzdHJkdXAoci5jX3N0cigpKTsKLS19Ci0tCi0g I2lmZGVmIElTUENfR0VOWF9FTkFCTEVECi0gYm9vbCBsSXNTVk1Mb2FkKGxsdm06Okluc3RydWN0 aW9uICppbnN0KSB7Ci0gICAgIEFzc2VydChpbnN0KTsKLWRpZmYgLS1naXQgYS9zcmMvbGx2bXV0 aWwuaCBiL3NyYy9sbHZtdXRpbC5oCi1pbmRleCA0MmNjZTRkODMuLjA3ZDA4OWJiNCAxMDA2NDQK LS0tLSBhL3NyYy9sbHZtdXRpbC5oCi0rKysgYi9zcmMvbGx2bXV0aWwuaAotQEAgLTMyOCwxMSAr MzI4LDYgQEAgZXh0ZXJuIGxsdm06OlZhbHVlICpMTFZNQ29uY2F0VmVjdG9ycyhsbHZtOjpWYWx1 ZSAqdjEsIGxsdm06OlZhbHVlICp2MiwgbGx2bTo6SW4KLSBleHRlcm4gbGx2bTo6VmFsdWUgKkxM Vk1TaHVmZmxlVmVjdG9ycyhsbHZtOjpWYWx1ZSAqdjEsIGxsdm06OlZhbHVlICp2MiwgaW50MzJf dCBzaHVmW10sIGludCBzaHVmU2l6ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBsbHZtOjpJbnN0cnVjdGlvbiAqaW5zZXJ0QmVmb3JlKTsKLSAKLS0vKiogVXRpbGl0 eSByb3V0aW5lcyB0byBjb25jYXQgc3RyaW5ncyB3aXRoIHRoZSBuYW1lcyBvZiBleGlzdGluZyB2 YWx1ZXMgdG8KLS0gICAgY3JlYXRlIG1lYW5pbmdmdWwgbmV3IG5hbWVzIGZvciBpbnN0cnVjdGlv biB2YWx1ZXMuCi0tKi8KLS1leHRlcm4gY29uc3QgY2hhciAqTExWTUdldE5hbWUobGx2bTo6VmFs dWUgKnYsIGNvbnN0IGNoYXIgKik7Ci0tZXh0ZXJuIGNvbnN0IGNoYXIgKkxMVk1HZXROYW1lKGNv bnN0IGNoYXIgKm9wLCBsbHZtOjpWYWx1ZSAqdjEsIGxsdm06OlZhbHVlICp2Mik7Ci0gI2lmZGVm IElTUENfR0VOWF9FTkFCTEVECi0gZW51bSBBZGRyZXNzU3BhY2UgeyBMb2NhbCwgR2xvYmFsLCBF eHRlcm5hbCB9OwotIAotZGlmZiAtLWdpdCBhL3NyYy9vcHQuY3BwIGIvc3JjL29wdC5jcHAKLWlu ZGV4IDViMWFjN2I2My4uOWQ2Y2FlMDU4IDEwMDY0NAotLS0tIGEvc3JjL29wdC5jcHAKLSsrKyBi L3NyYy9vcHQuY3BwCi1AQCAtMjU3LDcgKzI1Nyw3IEBAIHN0YXRpYyBib29sIGxHZXRTb3VyY2VQ b3NGcm9tTWV0YWRhdGEoY29uc3QgbGx2bTo6SW5zdHJ1Y3Rpb24gKmluc3QsIFNvdXJjZVBvcyAq Ci0gICAgIHJldHVybiB0cnVlOwotIH0KLSAKLS1zdGF0aWMgbGx2bTo6SW5zdHJ1Y3Rpb24gKmxD YWxsSW5zdChsbHZtOjpGdW5jdGlvbiAqZnVuYywgbGx2bTo6VmFsdWUgKmFyZzAsIGxsdm06OlZh bHVlICphcmcxLCBjb25zdCBjaGFyICpuYW1lLAotK3N0YXRpYyBsbHZtOjpJbnN0cnVjdGlvbiAq bENhbGxJbnN0KGxsdm06OkZ1bmN0aW9uICpmdW5jLCBsbHZtOjpWYWx1ZSAqYXJnMCwgbGx2bTo6 VmFsdWUgKmFyZzEsIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lLAotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGxsdm06Okluc3RydWN0aW9uICppbnNlcnRCZWZvcmUgPSBOVUxM KSB7Ci0gICAgIGxsdm06OlZhbHVlICphcmdzWzJdID0ge2FyZzAsIGFyZzF9OwotICAgICBsbHZt OjpBcnJheVJlZjxsbHZtOjpWYWx1ZSAqPiBuZXdBcmdBcnJheSgmYXJnc1swXSwgJmFyZ3NbMl0p OwotQEAgLTI2NSwyMSArMjY1LDIyIEBAIHN0YXRpYyBsbHZtOjpJbnN0cnVjdGlvbiAqbENhbGxJ bnN0KGxsdm06OkZ1bmN0aW9uICpmdW5jLCBsbHZtOjpWYWx1ZSAqYXJnMCwgbGx2Ci0gfQotIAot IHN0YXRpYyBsbHZtOjpJbnN0cnVjdGlvbiAqbENhbGxJbnN0KGxsdm06OkZ1bmN0aW9uICpmdW5j LCBsbHZtOjpWYWx1ZSAqYXJnMCwgbGx2bTo6VmFsdWUgKmFyZzEsIGxsdm06OlZhbHVlICphcmcy LAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKm5hbWUs IGxsdm06Okluc3RydWN0aW9uICppbnNlcnRCZWZvcmUgPSBOVUxMKSB7Ci0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUsIGxsdm06Oklu c3RydWN0aW9uICppbnNlcnRCZWZvcmUgPSBOVUxMKSB7Ci0gICAgIGxsdm06OlZhbHVlICphcmdz WzNdID0ge2FyZzAsIGFyZzEsIGFyZzJ9OwotICAgICBsbHZtOjpBcnJheVJlZjxsbHZtOjpWYWx1 ZSAqPiBuZXdBcmdBcnJheSgmYXJnc1swXSwgJmFyZ3NbM10pOwotICAgICByZXR1cm4gbGx2bTo6 Q2FsbEluc3Q6OkNyZWF0ZShmdW5jLCBuZXdBcmdBcnJheSwgbmFtZSwgaW5zZXJ0QmVmb3JlKTsK LSB9Ci0gCi0gc3RhdGljIGxsdm06Okluc3RydWN0aW9uICpsQ2FsbEluc3QobGx2bTo6RnVuY3Rp b24gKmZ1bmMsIGxsdm06OlZhbHVlICphcmcwLCBsbHZtOjpWYWx1ZSAqYXJnMSwgbGx2bTo6VmFs dWUgKmFyZzIsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6VmFs dWUgKmFyZzMsIGNvbnN0IGNoYXIgKm5hbWUsIGxsdm06Okluc3RydWN0aW9uICppbnNlcnRCZWZv cmUgPSBOVUxMKSB7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6 VmFsdWUgKmFyZzMsIGNvbnN0IGxsdm06OlR3aW5lICZuYW1lLAotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGxsdm06Okluc3RydWN0aW9uICppbnNlcnRCZWZvcmUgPSBOVUxM KSB7Ci0gICAgIGxsdm06OlZhbHVlICphcmdzWzRdID0ge2FyZzAsIGFyZzEsIGFyZzIsIGFyZzN9 OwotICAgICBsbHZtOjpBcnJheVJlZjxsbHZtOjpWYWx1ZSAqPiBuZXdBcmdBcnJheSgmYXJnc1sw XSwgJmFyZ3NbNF0pOwotICAgICByZXR1cm4gbGx2bTo6Q2FsbEluc3Q6OkNyZWF0ZShmdW5jLCBu ZXdBcmdBcnJheSwgbmFtZSwgaW5zZXJ0QmVmb3JlKTsKLSB9Ci0gCi0gc3RhdGljIGxsdm06Oklu c3RydWN0aW9uICpsQ2FsbEluc3QobGx2bTo6RnVuY3Rpb24gKmZ1bmMsIGxsdm06OlZhbHVlICph cmcwLCBsbHZtOjpWYWx1ZSAqYXJnMSwgbGx2bTo6VmFsdWUgKmFyZzIsCi0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6VmFsdWUgKmFyZzMsIGxsdm06OlZhbHVlICph cmc0LCBjb25zdCBjaGFyICpuYW1lLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGxsdm06OlZhbHVlICphcmczLCBsbHZtOjpWYWx1ZSAqYXJnNCwgY29uc3QgbGx2bTo6VHdp bmUgJm5hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6SW5z dHJ1Y3Rpb24gKmluc2VydEJlZm9yZSA9IE5VTEwpIHsKLSAgICAgbGx2bTo6VmFsdWUgKmFyZ3Nb NV0gPSB7YXJnMCwgYXJnMSwgYXJnMiwgYXJnMywgYXJnNH07Ci0gICAgIGxsdm06OkFycmF5UmVm PGxsdm06OlZhbHVlICo+IG5ld0FyZ0FycmF5KCZhcmdzWzBdLCAmYXJnc1s1XSk7Ci1AQCAtMjg3 LDcgKzI4OCw3IEBAIHN0YXRpYyBsbHZtOjpJbnN0cnVjdGlvbiAqbENhbGxJbnN0KGxsdm06OkZ1 bmN0aW9uICpmdW5jLCBsbHZtOjpWYWx1ZSAqYXJnMCwgbGx2Ci0gfQotIAotIHN0YXRpYyBsbHZt OjpJbnN0cnVjdGlvbiAqbENhbGxJbnN0KGxsdm06OkZ1bmN0aW9uICpmdW5jLCBsbHZtOjpWYWx1 ZSAqYXJnMCwgbGx2bTo6VmFsdWUgKmFyZzEsIGxsdm06OlZhbHVlICphcmcyLAotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06OlZhbHVlICphcmczLCBsbHZtOjpWYWx1 ZSAqYXJnNCwgbGx2bTo6VmFsdWUgKmFyZzUsIGNvbnN0IGNoYXIgKm5hbWUsCi0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6VmFsdWUgKmFyZzMsIGxsdm06OlZhbHVl ICphcmc0LCBsbHZtOjpWYWx1ZSAqYXJnNSwgY29uc3QgbGx2bTo6VHdpbmUgJm5hbWUsCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmluc2Vy dEJlZm9yZSA9IE5VTEwpIHsKLSAgICAgbGx2bTo6VmFsdWUgKmFyZ3NbNl0gPSB7YXJnMCwgYXJn MSwgYXJnMiwgYXJnMywgYXJnNCwgYXJnNX07Ci0gICAgIGxsdm06OkFycmF5UmVmPGxsdm06OlZh bHVlICo+IG5ld0FyZ0FycmF5KCZhcmdzWzBdLCAmYXJnc1s2XSk7Ci1AQCAtOTkxLDIzICs5OTIs MjQgQEAgYm9vbCBJbnRyaW5zaWNzT3B0OjpydW5PbkJhc2ljQmxvY2sobGx2bTo6QmFzaWNCbG9j ayAmYmIpIHsKLSAgICAgICAgICAgICAgICAgbGx2bTo6VHlwZSAqcmV0dXJuVHlwZSA9IGNhbGxJ bnN0LT5nZXRUeXBlKCk7Ci0gICAgICAgICAgICAgICAgIEFzc2VydChsbHZtOjppc2E8bGx2bTo6 VmVjdG9yVHlwZT4ocmV0dXJuVHlwZSkpOwotICAgICAgICAgICAgICAgICAvLyBjYXN0IHRoZSBp OCAqIHRvIHRoZSBhcHByb3ByaWF0ZSB0eXBlCi0tICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIg Km5hbWUgPSBMTFZNR2V0TmFtZShjYWxsSW5zdC0+Z2V0QXJnT3BlcmFuZCgwKSwgIl9jYXN0Iik7 Ci0tICAgICAgICAgICAgICAgIGxsdm06OlZhbHVlICpjYXN0UHRyID0gbmV3IGxsdm06OkJpdENh c3RJbnN0KGNhbGxJbnN0LT5nZXRBcmdPcGVyYW5kKDApLAotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpQb2ludGVyVHlw ZTo6Z2V0KHJldHVyblR5cGUsIDApLCBuYW1lLCBjYWxsSW5zdCk7Ci0rICAgICAgICAgICAgICAg IGxsdm06OlZhbHVlICpjYXN0UHRyID0KLSsgICAgICAgICAgICAgICAgICAgIG5ldyBsbHZtOjpC aXRDYXN0SW5zdChjYWxsSW5zdC0+Z2V0QXJnT3BlcmFuZCgwKSwgbGx2bTo6UG9pbnRlclR5cGU6 OmdldChyZXR1cm5UeXBlLCAwKSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBsbHZtOjpUd2luZShjYWxsSW5zdC0+Z2V0QXJnT3BlcmFuZCgwKS0+Z2V0TmFtZSgp KSArICJfY2FzdCIsIGNhbGxJbnN0KTsKLSAgICAgICAgICAgICAgICAgbENvcHlNZXRhZGF0YShj YXN0UHRyLCBjYWxsSW5zdCk7Ci0gICAgICAgICAgICAgICAgIGludCBhbGlnbjsKLSAgICAgICAg ICAgICAgICAgaWYgKGctPm9wdC5mb3JjZUFsaWduZWRNZW1vcnkpCi0gICAgICAgICAgICAgICAg ICAgICBhbGlnbiA9IGctPnRhcmdldC0+Z2V0TmF0aXZlVmVjdG9yQWxpZ25tZW50KCk7Ci0gICAg ICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgIGFsaWduID0gY2FsbEluc3Qt PmdldENhbGxlZEZ1bmN0aW9uKCkgPT0gYXZ4TWFza2VkTG9hZDMyID8gNCA6IDg7Ci0tICAgICAg ICAgICAgICAgIG5hbWUgPSBMTFZNR2V0TmFtZShjYWxsSW5zdC0+Z2V0QXJnT3BlcmFuZCgwKSwg Il9sb2FkIik7Ci0gI2lmIElTUENfTExWTV9WRVJTSU9OID09IElTUENfTExWTV8xMF8wCi0tICAg ICAgICAgICAgICAgIGxsdm06Okluc3RydWN0aW9uICpsb2FkSW5zdCA9IG5ldyBsbHZtOjpMb2Fk SW5zdChjYXN0UHRyLCBuYW1lLCBmYWxzZSAvKiBub3Qgdm9sYXRpbGUgKi8sCi0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBs bHZtOjpNYXliZUFsaWduKGFsaWduKSwgKGxsdm06Okluc3RydWN0aW9uICopTlVMTCk7Ci0rICAg ICAgICAgICAgICAgIGxsdm06Okluc3RydWN0aW9uICpsb2FkSW5zdCA9Ci0rICAgICAgICAgICAg ICAgICAgICBuZXcgbGx2bTo6TG9hZEluc3QoY2FzdFB0ciwgbGx2bTo6VHdpbmUoY2FsbEluc3Qt PmdldEFyZ09wZXJhbmQoMCktPmdldE5hbWUoKSkgKyAiX2xvYWQiLAotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlIC8qIG5vdCB2b2xhdGlsZSAqLywgbGx2bTo6 TWF5YmVBbGlnbihhbGlnbiksIChsbHZtOjpJbnN0cnVjdGlvbiAqKU5VTEwpOwotICNlbHNlCi0g ICAgICAgICAgICAgICAgIGxsdm06Okluc3RydWN0aW9uICpsb2FkSW5zdCA9IG5ldyBsbHZtOjpM b2FkSW5zdCgKLS0gICAgICAgICAgICAgICAgICAgIGxsdm06OmR5bl9jYXN0PGxsdm06OlBvaW50 ZXJUeXBlPihjYXN0UHRyLT5nZXRUeXBlKCkpLT5nZXRQb2ludGVyRWxlbWVudFR5cGUoKSwgY2Fz dFB0ciwgbmFtZSwKLS0gICAgICAgICAgICAgICAgICAgIGZhbHNlIC8qIG5vdCB2b2xhdGlsZSAq LywgbGx2bTo6TWF5YmVBbGlnbihhbGlnbikudmFsdWVPck9uZSgpLCAobGx2bTo6SW5zdHJ1Y3Rp b24gKilOVUxMKTsKLSsgICAgICAgICAgICAgICAgICAgIGxsdm06OmR5bl9jYXN0PGxsdm06OlBv aW50ZXJUeXBlPihjYXN0UHRyLT5nZXRUeXBlKCkpLT5nZXRQb2ludGVyRWxlbWVudFR5cGUoKSwg Y2FzdFB0ciwKLSsgICAgICAgICAgICAgICAgICAgIGxsdm06OlR3aW5lKGNhbGxJbnN0LT5nZXRB cmdPcGVyYW5kKDApLT5nZXROYW1lKCkpICsgIl9sb2FkIiwgZmFsc2UgLyogbm90IHZvbGF0aWxl ICovLAotKyAgICAgICAgICAgICAgICAgICAgbGx2bTo6TWF5YmVBbGlnbihhbGlnbikudmFsdWVP ck9uZSgpLCAobGx2bTo6SW5zdHJ1Y3Rpb24gKilOVUxMKTsKLSAjZW5kaWYKLSAgICAgICAgICAg ICAgICAgbENvcHlNZXRhZGF0YShsb2FkSW5zdCwgY2FsbEluc3QpOwotICAgICAgICAgICAgICAg ICBsbHZtOjpSZXBsYWNlSW5zdFdpdGhJbnN0KGNhbGxJbnN0LCBsb2FkSW5zdCk7Ci1AQCAtMTAy OCw5ICsxMDMwLDkgQEAgYm9vbCBJbnRyaW5zaWNzT3B0OjpydW5PbkJhc2ljQmxvY2sobGx2bTo6 QmFzaWNCbG9jayAmYmIpIHsKLSAgICAgICAgICAgICAgICAgLy8gYWxsIGxhbmVzIHN0b3Jpbmcs IHNvIHJlcGxhY2Ugd2l0aCBhIHJlZ3VsYXIgc3RvcmUKLSAgICAgICAgICAgICAgICAgbGx2bTo6 VmFsdWUgKnJ2YWx1ZSA9IGNhbGxJbnN0LT5nZXRBcmdPcGVyYW5kKDIpOwotICAgICAgICAgICAg ICAgICBsbHZtOjpUeXBlICpzdG9yZVR5cGUgPSBydmFsdWUtPmdldFR5cGUoKTsKLS0gICAgICAg ICAgICAgICAgY29uc3QgY2hhciAqbmFtZSA9IExMVk1HZXROYW1lKGNhbGxJbnN0LT5nZXRBcmdP cGVyYW5kKDApLCAiX3B0cmNhc3QiKTsKLS0gICAgICAgICAgICAgICAgbGx2bTo6VmFsdWUgKmNh c3RQdHIgPSBuZXcgbGx2bTo6Qml0Q2FzdEluc3QoY2FsbEluc3QtPmdldEFyZ09wZXJhbmQoMCks Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGxsdm06OlBvaW50ZXJUeXBlOjpnZXQoc3RvcmVUeXBlLCAwKSwgbmFtZSwgY2FsbElu c3QpOwotKyAgICAgICAgICAgICAgICBsbHZtOjpWYWx1ZSAqY2FzdFB0ciA9Ci0rICAgICAgICAg ICAgICAgICAgICBuZXcgbGx2bTo6Qml0Q2FzdEluc3QoY2FsbEluc3QtPmdldEFyZ09wZXJhbmQo MCksIGxsdm06OlBvaW50ZXJUeXBlOjpnZXQoc3RvcmVUeXBlLCAwKSwKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpUd2luZShjYWxsSW5zdC0+Z2V0QXJn T3BlcmFuZCgwKS0+Z2V0TmFtZSgpKSArICJfcHRyY2FzdCIsIGNhbGxJbnN0KTsKLSAgICAgICAg ICAgICAgICAgbENvcHlNZXRhZGF0YShjYXN0UHRyLCBjYWxsSW5zdCk7Ci0gCi0gICAgICAgICAg ICAgICAgIGludCBhbGlnbjsKLUBAIC0xMzM5LDggKzEzNDEsOCBAQCBzdGF0aWMgbGx2bTo6VmFs dWUgKmxHZXRCYXNlUG9pbnRlcihsbHZtOjpWYWx1ZSAqdiwgbGx2bTo6SW5zdHJ1Y3Rpb24gKmlu c2VydEJlZgotICAgICAgICAgaWYgKHQgPT0gTlVMTCkgewotICAgICAgICAgICAgIHJldHVybiBO VUxMOwotICAgICAgICAgfSBlbHNlIHsKLS0gICAgICAgICAgICByZXR1cm4gbGx2bTo6Q2FzdElu c3Q6OkNyZWF0ZShjaS0+Z2V0T3Bjb2RlKCksIHQsIGNpLT5nZXRUeXBlKCktPmdldFNjYWxhclR5 cGUoKSwgTExWTUdldE5hbWUodCwgIl9jYXN0IiksCi0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgaW5zZXJ0QmVmb3JlKTsKLSsgICAgICAgICAgICByZXR1cm4gbGx2 bTo6Q2FzdEluc3Q6OkNyZWF0ZShjaS0+Z2V0T3Bjb2RlKCksIHQsIGNpLT5nZXRUeXBlKCktPmdl dFNjYWxhclR5cGUoKSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBsbHZtOjpUd2luZSh0LT5nZXROYW1lKCkpICsgIl9jYXN0IiwgaW5zZXJ0QmVmb3JlKTsKLSAg ICAgICAgIH0KLSAgICAgfQotIAotQEAgLTE1ODMsMTMgKzE1ODUsMTMgQEAgc3RhdGljIHZvaWQg bEV4dHJhY3RDb25zdGFudE9mZnNldChsbHZtOjpWYWx1ZSAqdmVjLCBsbHZtOjpWYWx1ZSAqKmNv bnN0T2Zmc2V0LAotICAgICAgICAgaWYgKGNvID09IE5VTEwpCi0gICAgICAgICAgICAgKmNvbnN0 T2Zmc2V0ID0gTlVMTDsKLSAgICAgICAgIGVsc2UKLS0gICAgICAgICAgICAqY29uc3RPZmZzZXQg PQotLSAgICAgICAgICAgICAgICBsbHZtOjpDYXN0SW5zdDo6Q3JlYXRlKGNhc3QtPmdldE9wY29k ZSgpLCBjbywgY2FzdC0+Z2V0VHlwZSgpLCBMTFZNR2V0TmFtZShjbywgIl9jYXN0IiksIGluc2Vy dEJlZm9yZSk7Ci0rICAgICAgICAgICAgKmNvbnN0T2Zmc2V0ID0gbGx2bTo6Q2FzdEluc3Q6OkNy ZWF0ZShjYXN0LT5nZXRPcGNvZGUoKSwgY28sIGNhc3QtPmdldFR5cGUoKSwKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06OlR3aW5lKGNvLT5n ZXROYW1lKCkpICsgIl9jYXN0IiwgaW5zZXJ0QmVmb3JlKTsKLSAgICAgICAgIGlmICh2byA9PSBO VUxMKQotICAgICAgICAgICAgICp2YXJpYWJsZU9mZnNldCA9IE5VTEw7Ci0gICAgICAgICBlbHNl Ci0tICAgICAgICAgICAgKnZhcmlhYmxlT2Zmc2V0ID0KLS0gICAgICAgICAgICAgICAgbGx2bTo6 Q2FzdEluc3Q6OkNyZWF0ZShjYXN0LT5nZXRPcGNvZGUoKSwgdm8sIGNhc3QtPmdldFR5cGUoKSwg TExWTUdldE5hbWUodm8sICJfY2FzdCIpLCBpbnNlcnRCZWZvcmUpOwotKyAgICAgICAgICAgICp2 YXJpYWJsZU9mZnNldCA9IGxsdm06OkNhc3RJbnN0OjpDcmVhdGUoY2FzdC0+Z2V0T3Bjb2RlKCks IHZvLCBjYXN0LT5nZXRUeXBlKCksCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBsbHZtOjpUd2luZSh2by0+Z2V0TmFtZSgpKSArICJfY2FzdCIs IGluc2VydEJlZm9yZSk7Ci0gICAgICAgICByZXR1cm47Ci0gICAgIH0KLSAKLUBAIC0xNjA4LDE2 ICsxNjEwLDE4IEBAIHN0YXRpYyB2b2lkIGxFeHRyYWN0Q29uc3RhbnRPZmZzZXQobGx2bTo6VmFs dWUgKnZlYywgbGx2bTo6VmFsdWUgKipjb25zdE9mZnNldCwKLSAgICAgICAgICAgICBlbHNlIGlm IChjMSA9PSBOVUxMIHx8IGxsdm06OmlzYTxsbHZtOjpDb25zdGFudEFnZ3JlZ2F0ZVplcm8+KGMx KSkKLSAgICAgICAgICAgICAgICAgKmNvbnN0T2Zmc2V0ID0gYzA7Ci0gICAgICAgICAgICAgZWxz ZQotLSAgICAgICAgICAgICAgICAqY29uc3RPZmZzZXQgPSBsbHZtOjpCaW5hcnlPcGVyYXRvcjo6 Q3JlYXRlKGxsdm06Okluc3RydWN0aW9uOjpBZGQsIGMwLCBjMSwgTExWTUdldE5hbWUoImFkZCIs IGMwLCBjMSksCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgaW5zZXJ0QmVmb3JlKTsKLSsgICAgICAgICAgICAgICAgKmNvbnN0T2Zm c2V0ID0gbGx2bTo6QmluYXJ5T3BlcmF0b3I6OkNyZWF0ZSgKLSsgICAgICAgICAgICAgICAgICAg IGxsdm06Okluc3RydWN0aW9uOjpBZGQsIGMwLCBjMSwgKChsbHZtOjpUd2luZSgiYWRkXyIpICsg YzAtPmdldE5hbWUoKSkgKyAiXyIpICsgYzEtPmdldE5hbWUoKSwKLSsgICAgICAgICAgICAgICAg ICAgIGluc2VydEJlZm9yZSk7Ci0gCi0gICAgICAgICAgICAgaWYgKHYwID09IE5VTEwgfHwgbGx2 bTo6aXNhPGxsdm06OkNvbnN0YW50QWdncmVnYXRlWmVybz4odjApKQotICAgICAgICAgICAgICAg ICAqdmFyaWFibGVPZmZzZXQgPSB2MTsKLSAgICAgICAgICAgICBlbHNlIGlmICh2MSA9PSBOVUxM IHx8IGxsdm06OmlzYTxsbHZtOjpDb25zdGFudEFnZ3JlZ2F0ZVplcm8+KHYxKSkKLSAgICAgICAg ICAgICAgICAgKnZhcmlhYmxlT2Zmc2V0ID0gdjA7Ci0gICAgICAgICAgICAgZWxzZQotLSAgICAg ICAgICAgICAgICAqdmFyaWFibGVPZmZzZXQgPSBsbHZtOjpCaW5hcnlPcGVyYXRvcjo6Q3JlYXRl KGxsdm06Okluc3RydWN0aW9uOjpBZGQsIHYwLCB2MSwKLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMTFZNR2V0TmFtZSgiYWRk IiwgdjAsIHYxKSwgaW5zZXJ0QmVmb3JlKTsKLSsgICAgICAgICAgICAgICAgKnZhcmlhYmxlT2Zm c2V0ID0gbGx2bTo6QmluYXJ5T3BlcmF0b3I6OkNyZWF0ZSgKLSsgICAgICAgICAgICAgICAgICAg IGxsdm06Okluc3RydWN0aW9uOjpBZGQsIHYwLCB2MSwgKChsbHZtOjpUd2luZSgiYWRkXyIpICsg djAtPmdldE5hbWUoKSkgKyAiXyIpICsgdjEtPmdldE5hbWUoKSwKLSsgICAgICAgICAgICAgICAg ICAgIGluc2VydEJlZm9yZSk7Ci0gICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgfSBlbHNl IGlmIChib3AtPmdldE9wY29kZSgpID09IGxsdm06Okluc3RydWN0aW9uOjpTaGwpIHsKLSAgICAg ICAgICAgICBsRXh0cmFjdENvbnN0YW50T2Zmc2V0KG9wMCwgJmMwLCAmdjAsIGluc2VydEJlZm9y ZSk7Ci1AQCAtMTYzMywxMCArMTYzNywxMiBAQCBzdGF0aWMgdm9pZCBsRXh0cmFjdENvbnN0YW50 T2Zmc2V0KGxsdm06OlZhbHVlICp2ZWMsIGxsdm06OlZhbHVlICoqY29uc3RPZmZzZXQsCi0gICAg ICAgICAgICAgICAgICpjb25zdE9mZnNldCA9IHZlYzsKLSAgICAgICAgICAgICAgICAgKnZhcmlh YmxlT2Zmc2V0ID0gTlVMTDsKLSAgICAgICAgICAgICB9IGVsc2UgewotLSAgICAgICAgICAgICAg ICAqY29uc3RPZmZzZXQgPSBsbHZtOjpCaW5hcnlPcGVyYXRvcjo6Q3JlYXRlKGxsdm06Okluc3Ry dWN0aW9uOjpTaGwsIGMwLCBjMSwgTExWTUdldE5hbWUoInNobCIsIGMwLCBjMSksCi0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5z ZXJ0QmVmb3JlKTsKLS0gICAgICAgICAgICAgICAgKnZhcmlhYmxlT2Zmc2V0ID0gbGx2bTo6Qmlu YXJ5T3BlcmF0b3I6OkNyZWF0ZShsbHZtOjpJbnN0cnVjdGlvbjo6U2hsLCB2MCwgYzEsCi0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgTExWTUdldE5hbWUoInNobCIsIHYwLCBjMSksIGluc2VydEJlZm9yZSk7Ci0rICAgICAgICAg ICAgICAgICpjb25zdE9mZnNldCA9IGxsdm06OkJpbmFyeU9wZXJhdG9yOjpDcmVhdGUoCi0rICAg ICAgICAgICAgICAgICAgICBsbHZtOjpJbnN0cnVjdGlvbjo6U2hsLCBjMCwgYzEsICgobGx2bTo6 VHdpbmUoInNobF8iKSArIGMwLT5nZXROYW1lKCkpICsgIl8iKSArIGMxLT5nZXROYW1lKCksCi0r ICAgICAgICAgICAgICAgICAgICBpbnNlcnRCZWZvcmUpOwotKyAgICAgICAgICAgICAgICAqdmFy aWFibGVPZmZzZXQgPSBsbHZtOjpCaW5hcnlPcGVyYXRvcjo6Q3JlYXRlKAotKyAgICAgICAgICAg ICAgICAgICAgbGx2bTo6SW5zdHJ1Y3Rpb246OlNobCwgdjAsIGMxLCAoKGxsdm06OlR3aW5lKCJz aGxfIikgKyB2MC0+Z2V0TmFtZSgpKSArICJfIikgKyBjMS0+Z2V0TmFtZSgpLAotKyAgICAgICAg ICAgICAgICAgICAgaW5zZXJ0QmVmb3JlKTsKLSAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAg cmV0dXJuOwotICAgICAgICAgfSBlbHNlIGlmIChib3AtPmdldE9wY29kZSgpID09IGxsdm06Oklu c3RydWN0aW9uOjpNdWwpIHsKLUBAIC0xNjQ4LDI1ICsxNjU0LDMwIEBAIHN0YXRpYyB2b2lkIGxF eHRyYWN0Q29uc3RhbnRPZmZzZXQobGx2bTo6VmFsdWUgKnZlYywgbGx2bTo6VmFsdWUgKipjb25z dE9mZnNldCwKLSAgICAgICAgICAgICAvLyBOb3RlIHRoYXQgdGhlIGZpcnN0IHRlcm0gaXMgYSBj b25zdGFudCBhbmQgdGhlIGxhc3QgdGhyZWUgYXJlCi0gICAgICAgICAgICAgLy8gdmFyaWFibGUu Ci0gICAgICAgICAgICAgaWYgKGMwICE9IE5VTEwgJiYgYzEgIT0gTlVMTCkKLS0gICAgICAgICAg ICAgICAgKmNvbnN0T2Zmc2V0ID0gbGx2bTo6QmluYXJ5T3BlcmF0b3I6OkNyZWF0ZShsbHZtOjpJ bnN0cnVjdGlvbjo6TXVsLCBjMCwgYzEsIExMVk1HZXROYW1lKCJtdWwiLCBjMCwgYzEpLAotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGluc2VydEJlZm9yZSk7Ci0rICAgICAgICAgICAgICAgICpjb25zdE9mZnNldCA9IGxsdm06OkJp bmFyeU9wZXJhdG9yOjpDcmVhdGUoCi0rICAgICAgICAgICAgICAgICAgICBsbHZtOjpJbnN0cnVj dGlvbjo6TXVsLCBjMCwgYzEsICgobGx2bTo6VHdpbmUoIm11bF8iKSArIGMwLT5nZXROYW1lKCkp ICsgIl8iKSArIGMxLT5nZXROYW1lKCksCi0rICAgICAgICAgICAgICAgICAgICBpbnNlcnRCZWZv cmUpOwotICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgKmNvbnN0T2Zmc2V0ID0g TlVMTDsKLSAKLSAgICAgICAgICAgICBsbHZtOjpWYWx1ZSAqdmEgPSBOVUxMLCAqdmIgPSBOVUxM LCAqdmMgPSBOVUxMOwotICAgICAgICAgICAgIGlmICh2MCAhPSBOVUxMICYmIGMxICE9IE5VTEwp Ci0tICAgICAgICAgICAgICAgIHZhID0gbGx2bTo6QmluYXJ5T3BlcmF0b3I6OkNyZWF0ZShsbHZt OjpJbnN0cnVjdGlvbjo6TXVsLCB2MCwgYzEsIExMVk1HZXROYW1lKCJtdWwiLCB2MCwgYzEpLAot KyAgICAgICAgICAgICAgICB2YSA9IGxsdm06OkJpbmFyeU9wZXJhdG9yOjpDcmVhdGUobGx2bTo6 SW5zdHJ1Y3Rpb246Ok11bCwgdjAsIGMxLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKChsbHZtOjpUd2luZSgibXVsXyIpICsgdjAtPmdldE5hbWUo KSkgKyAiXyIpICsgYzEtPmdldE5hbWUoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGluc2VydEJlZm9yZSk7Ci0gICAgICAgICAgICAgaWYgKGMw ICE9IE5VTEwgJiYgdjEgIT0gTlVMTCkKLS0gICAgICAgICAgICAgICAgdmIgPSBsbHZtOjpCaW5h cnlPcGVyYXRvcjo6Q3JlYXRlKGxsdm06Okluc3RydWN0aW9uOjpNdWwsIGMwLCB2MSwgTExWTUdl dE5hbWUoIm11bCIsIGMwLCB2MSksCi0rICAgICAgICAgICAgICAgIHZiID0gbGx2bTo6QmluYXJ5 T3BlcmF0b3I6OkNyZWF0ZShsbHZtOjpJbnN0cnVjdGlvbjo6TXVsLCBjMCwgdjEsCi0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxsdm06OlR3aW5l KCJtdWxfIikgKyBjMC0+Z2V0TmFtZSgpKSArICJfIikgKyB2MS0+Z2V0TmFtZSgpLAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5zZXJ0QmVmb3Jl KTsKLSAgICAgICAgICAgICBpZiAodjAgIT0gTlVMTCAmJiB2MSAhPSBOVUxMKQotLSAgICAgICAg ICAgICAgICB2YyA9IGxsdm06OkJpbmFyeU9wZXJhdG9yOjpDcmVhdGUobGx2bTo6SW5zdHJ1Y3Rp b246Ok11bCwgdjAsIHYxLCBMTFZNR2V0TmFtZSgibXVsIiwgdjAsIHYxKSwKLSsgICAgICAgICAg ICAgICAgdmMgPSBsbHZtOjpCaW5hcnlPcGVyYXRvcjo6Q3JlYXRlKGxsdm06Okluc3RydWN0aW9u OjpNdWwsIHYwLCB2MSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICgobGx2bTo6VHdpbmUoIm11bF8iKSArIHYwLT5nZXROYW1lKCkpICsgIl8iKSAr IHYxLT5nZXROYW1lKCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBpbnNlcnRCZWZvcmUpOwotIAotICAgICAgICAgICAgIGxsdm06OlZhbHVlICp2 YWIgPSBOVUxMOwotICAgICAgICAgICAgIGlmICh2YSAhPSBOVUxMICYmIHZiICE9IE5VTEwpCi0t ICAgICAgICAgICAgICAgIHZhYiA9IGxsdm06OkJpbmFyeU9wZXJhdG9yOjpDcmVhdGUobGx2bTo6 SW5zdHJ1Y3Rpb246OkFkZCwgdmEsIHZiLCBMTFZNR2V0TmFtZSgiYWRkIiwgdmEsIHZiKSwKLSsg ICAgICAgICAgICAgICAgdmFiID0gbGx2bTo6QmluYXJ5T3BlcmF0b3I6OkNyZWF0ZShsbHZtOjpJ bnN0cnVjdGlvbjo6QWRkLCB2YSwgdmIsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKChsbHZtOjpUd2luZSgiYWRkXyIpICsgdmEtPmdldE5hbWUo KSkgKyAiXyIpICsgdmItPmdldE5hbWUoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBpbnNlcnRCZWZvcmUpOwotICAgICAgICAgICAgIGVsc2Ug aWYgKHZhICE9IE5VTEwpCi0gICAgICAgICAgICAgICAgIHZhYiA9IHZhOwotQEAgLTE2NzQsOCAr MTY4NSw5IEBAIHN0YXRpYyB2b2lkIGxFeHRyYWN0Q29uc3RhbnRPZmZzZXQobGx2bTo6VmFsdWUg KnZlYywgbGx2bTo6VmFsdWUgKipjb25zdE9mZnNldCwKLSAgICAgICAgICAgICAgICAgdmFiID0g dmI7Ci0gCi0gICAgICAgICAgICAgaWYgKHZhYiAhPSBOVUxMICYmIHZjICE9IE5VTEwpCi0tICAg ICAgICAgICAgICAgICp2YXJpYWJsZU9mZnNldCA9IGxsdm06OkJpbmFyeU9wZXJhdG9yOjpDcmVh dGUobGx2bTo6SW5zdHJ1Y3Rpb246OkFkZCwgdmFiLCB2YywKLS0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMTFZNR2V0TmFtZSgi YWRkIiwgdmFiLCB2YyksIGluc2VydEJlZm9yZSk7Ci0rICAgICAgICAgICAgICAgICp2YXJpYWJs ZU9mZnNldCA9IGxsdm06OkJpbmFyeU9wZXJhdG9yOjpDcmVhdGUoCi0rICAgICAgICAgICAgICAg ICAgICBsbHZtOjpJbnN0cnVjdGlvbjo6QWRkLCB2YWIsIHZjLCAoKGxsdm06OlR3aW5lKCJhZGRf IikgKyB2YWItPmdldE5hbWUoKSkgKyAiXyIpICsgdmMtPmdldE5hbWUoKSwKLSsgICAgICAgICAg ICAgICAgICAgIGluc2VydEJlZm9yZSk7Ci0gICAgICAgICAgICAgZWxzZSBpZiAodmFiICE9IE5V TEwpCi0gICAgICAgICAgICAgICAgICp2YXJpYWJsZU9mZnNldCA9IHZhYjsKLSAgICAgICAgICAg ICBlbHNlCi1AQCAtMTk0Myw3ICsxOTU1LDcgQEAgc3RhdGljIGJvb2wgbE9mZnNldHMzMkJpdFNh ZmUobGx2bTo6VmFsdWUgKip2YXJpYWJsZU9mZnNldFB0ciwgbGx2bTo6VmFsdWUgKipjb24KLSAg ICAgICAgICAgICAvLyBhbGwgemVyb3MgKGkuZS4gYSBDb25zdGFudEFnZ3JlZ2F0ZVplcm8sIGJ1 dCBqdXN0IGluIGNhc2UsCi0gICAgICAgICAgICAgLy8gZG8gdGhlIG1vcmUgZ2VuZXJhbCBjaGVj ayB3aXRoIGxWZWN0b3JJczMyQml0SW50cygpLgotICAgICAgICAgICAgIHZhcmlhYmxlT2Zmc2V0 ID0gbmV3IGxsdm06OlRydW5jSW5zdCh2YXJpYWJsZU9mZnNldCwgTExWTVR5cGVzOjpJbnQzMlZl Y3RvclR5cGUsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIExMVk1HZXROYW1lKHZhcmlhYmxlT2Zmc2V0LCAiX3RydW5jIiksIGluc2VydEJlZm9yZSk7 Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06 OlR3aW5lKHZhcmlhYmxlT2Zmc2V0LT5nZXROYW1lKCkpICsgIl90cnVuYyIsIGluc2VydEJlZm9y ZSk7Ci0gICAgICAgICBlbHNlCi0gICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICB9Ci1A QCAtMTk1Miw3ICsxOTY0LDcgQEAgc3RhdGljIGJvb2wgbE9mZnNldHMzMkJpdFNhZmUobGx2bTo6 VmFsdWUgKip2YXJpYWJsZU9mZnNldFB0ciwgbGx2bTo6VmFsdWUgKipjb24KLSAgICAgICAgIGlm IChsVmVjdG9ySXMzMkJpdEludHMoY29uc3RPZmZzZXQpKSB7Ci0gICAgICAgICAgICAgLy8gVHJ1 bmNhdGUgdGhlbSBzbyB3ZSBoYXZlIGEgMzItYml0IHZlY3RvciB0eXBlIGZvciB0aGVtLgotICAg ICAgICAgICAgIGNvbnN0T2Zmc2V0ID0gbmV3IGxsdm06OlRydW5jSW5zdChjb25zdE9mZnNldCwg TExWTVR5cGVzOjpJbnQzMlZlY3RvclR5cGUsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIExMVk1HZXROYW1lKGNvbnN0T2Zmc2V0LCAiX3RydW5jIiksIGlu c2VydEJlZm9yZSk7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGxsdm06OlR3aW5lKGNvbnN0T2Zmc2V0LT5nZXROYW1lKCkpICsgIl90cnVuYyIsIGluc2Vy dEJlZm9yZSk7Ci0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgIC8vIEZJWE1FOiBvdGhl cndpc2Ugd2UganVzdCBhc3N1bWUgdGhhdCBhbGwgY29uc3RhbnQgb2Zmc2V0cwotICAgICAgICAg ICAgIC8vIGNhbiBhY3R1YWxseSBhbHdheXMgZml0IGludG8gMzItYml0cy4uLiAgKFRoaXMgY291 bGQgYmUKLUBAIC0xOTYzLDcgKzE5NzUsNyBAQCBzdGF0aWMgYm9vbCBsT2Zmc2V0czMyQml0U2Fm ZShsbHZtOjpWYWx1ZSAqKnZhcmlhYmxlT2Zmc2V0UHRyLCBsbHZtOjpWYWx1ZSAqKmNvbgotICAg ICAgICAgICAgIC8vIGxsdm06OkNvbnN0YW50Rm9sZEluc3RydWN0aW9uKCkgZG9lc24ndCBzZWVt IHRvIGJlIGRvaW5nCi0gICAgICAgICAgICAgLy8gZW5vdWdoIGZvciB1cyBpbiBzb21lIGNhc2Vz IGlmIHdlIGNhbGwgaXQgZnJvbSBoZXJlLgotICAgICAgICAgICAgIGNvbnN0T2Zmc2V0ID0gbmV3 IGxsdm06OlRydW5jSW5zdChjb25zdE9mZnNldCwgTExWTVR5cGVzOjpJbnQzMlZlY3RvclR5cGUs Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExMVk1HZXRO YW1lKGNvbnN0T2Zmc2V0LCAiX3RydW5jIiksIGluc2VydEJlZm9yZSk7Ci0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06OlR3aW5lKGNvbnN0T2Zmc2V0 LT5nZXROYW1lKCkpICsgIl90cnVuYyIsIGluc2VydEJlZm9yZSk7Ci0gICAgICAgICB9Ci0gICAg IH0KLSAKLUBAIC0yMDEyLDggKzIwMjQsOCBAQCBzdGF0aWMgYm9vbCBsT2Zmc2V0czMyQml0U2Fm ZShsbHZtOjpWYWx1ZSAqKm9mZnNldFB0ciwgbGx2bTo6SW5zdHJ1Y3Rpb24gKmluc2VydAotIAot ICAgICAgICAgLy8gQWx0ZXJuYXRpdmVseSwgb2Zmc2V0IGNvdWxkIGJlIGEgc2VxdWVuY2Ugb2Yg YWRkcyB0ZXJtaW5hdGluZwotICAgICAgICAgLy8gaW4gc2FmZSBjb25zdGFudCB2ZWN0b3JzIG9y IGEgU0V4dC4KLS0gICAgICAgICpvZmZzZXRQdHIgPQotLSAgICAgICAgICAgIG5ldyBsbHZtOjpU cnVuY0luc3Qob2Zmc2V0LCBMTFZNVHlwZXM6OkludDMyVmVjdG9yVHlwZSwgTExWTUdldE5hbWUo b2Zmc2V0LCAiX3RydW5jIiksIGluc2VydEJlZm9yZSk7Ci0rICAgICAgICAqb2Zmc2V0UHRyID0g bmV3IGxsdm06OlRydW5jSW5zdChvZmZzZXQsIExMVk1UeXBlczo6SW50MzJWZWN0b3JUeXBlLCBs bHZtOjpUd2luZShvZmZzZXQtPmdldE5hbWUoKSkgKyAiX3RydW5jIiwKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluc2VydEJlZm9yZSk7Ci0gICAgICAgICByZXR1 cm4gdHJ1ZTsKLSAgICAgfSBlbHNlCi0gICAgICAgICByZXR1cm4gZmFsc2U7Ci1AQCAtMjIyOSw3 ICsyMjQxLDggQEAgc3RhdGljIGJvb2wgbEdTVG9HU0Jhc2VPZmZzZXRzKGxsdm06OkNhbGxJbnN0 ICpjYWxsSW5zdCkgewotICAgICB9Ci0gICAgIC8vIENhc3QgdGhlIGJhc2UgcG9pbnRlciB0byBh IHZvaWQgKiwgc2luY2UgdGhhdCdzIHdoYXQgdGhlCi0gICAgIC8vIF9fcHNldWRvXypfYmFzZV9v ZmZzZXRzXyogZnVuY3Rpb25zIHdhbnQuCi0tICAgIGJhc2VQdHIgPSBuZXcgbGx2bTo6SW50VG9Q dHJJbnN0KGJhc2VQdHIsIExMVk1UeXBlczo6Vm9pZFBvaW50ZXJUeXBlLCBMTFZNR2V0TmFtZShi YXNlUHRyLCAiXzJ2b2lkIiksIGNhbGxJbnN0KTsKLSsgICAgYmFzZVB0ciA9IG5ldyBsbHZtOjpJ bnRUb1B0ckluc3QoYmFzZVB0ciwgTExWTVR5cGVzOjpWb2lkUG9pbnRlclR5cGUsIGxsdm06OlR3 aW5lKGJhc2VQdHItPmdldE5hbWUoKSkgKyAiXzJ2b2lkIiwKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgY2FsbEluc3QpOwotICAgICBsQ29weU1ldGFkYXRhKGJhc2VQdHIs IGNhbGxJbnN0KTsKLSAgICAgbGx2bTo6RnVuY3Rpb24gKmdhdGhlclNjYXR0ZXJGdW5jID0gaW5m by0+YmFzZU9mZnNldHNGdW5jOwotIAotQEAgLTI4MDMsNyArMjgxNiw3IEBAIHN0YXRpYyBib29s IGxHU1RvTG9hZFN0b3JlKGxsdm06OkNhbGxJbnN0ICpjYWxsSW5zdCkgewotICAgICAgICAgICAg ICAgICBsQ29weU1ldGFkYXRhKHB0ciwgY2FsbEluc3QpOwotICAgICAgICAgICAgICAgICBEZWJ1 Zyhwb3MsICJUcmFuc2Zvcm1lZCBnYXRoZXIgdG8gdW5hbGlnbmVkIHZlY3RvciBsb2FkISIpOwot ICAgICAgICAgICAgICAgICBsbHZtOjpJbnN0cnVjdGlvbiAqbmV3Q2FsbCA9Ci0tICAgICAgICAg ICAgICAgICAgICBsQ2FsbEluc3QoZ2F0aGVySW5mby0+bG9hZE1hc2tlZEZ1bmMsIHB0ciwgbWFz aywgTExWTUdldE5hbWUocHRyLCAiX21hc2tlZF9sb2FkIikpOwotKyAgICAgICAgICAgICAgICAg ICAgbENhbGxJbnN0KGdhdGhlckluZm8tPmxvYWRNYXNrZWRGdW5jLCBwdHIsIG1hc2ssIGxsdm06 OlR3aW5lKHB0ci0+Z2V0TmFtZSgpKSArICJfbWFza2VkX2xvYWQiKTsKLSAgICAgICAgICAgICAg ICAgbENvcHlNZXRhZGF0YShuZXdDYWxsLCBjYWxsSW5zdCk7Ci0gICAgICAgICAgICAgICAgIGxs dm06OlJlcGxhY2VJbnN0V2l0aEluc3QoY2FsbEluc3QsIG5ld0NhbGwpOwotICAgICAgICAgICAg ICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvaXNwYy9wYXRjaGVzL2xsdm0x Mi0wMDQucGF0Y2ggYi9zcmNwa2dzL2lzcGMvcGF0Y2hlcy9sbHZtMTItMDA0LnBhdGNoCmRlbGV0 ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzYTk0ZDg0NDNhNWUuLjAwMDAwMDAwMDAwMAotLS0g YS9zcmNwa2dzL2lzcGMvcGF0Y2hlcy9sbHZtMTItMDA0LnBhdGNoCisrKyAvZGV2L251bGwKQEAg LTEsMzQgKzAsMCBAQAotRnJvbSBjMDNhNTE0MjQ0NDQ3NmExY2FhNWMyYmE3ZmEyZDkyZDc3OTNk NmYxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogRGVlcGFrIFJhamVuZHJha3VtYXJh biA8ZGVlcGFrLnJhamVuZHJha3VtYXJhbkBpbnRlbC5jb20+Ci1EYXRlOiBNb24sIDI1IEphbiAy MDIxIDA5OjIyOjQ5IC0wODAwCi1TdWJqZWN0OiBbUEFUQ0hdIEZpeGluZyBidWlsZCBvbiBsbHZt IHRydW5rLgotCi0tLS0KLSBzcmMvY3R4LmNwcCB8IDcgKysrLS0tLQotIDEgZmlsZSBjaGFuZ2Vk LCAzIGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9zcmMvY3R4 LmNwcCBiL3NyYy9jdHguY3BwCi1pbmRleCBkZWQ1MjRiNzEuLmI2MGU2ZmU4NCAxMDA2NDQKLS0t LSBhL3NyYy9jdHguY3BwCi0rKysgYi9zcmMvY3R4LmNwcAotQEAgLTEwMjAsOCArMTAyMCw3IEBA IHZvaWQgRnVuY3Rpb25FbWl0Q29udGV4dDo6RW1pdENhc2VMYWJlbChpbnQgdmFsdWUsIGJvb2wg Y2hlY2tNYXNrLCBTb3VyY2VQb3MgcG9zCi0gICAgIGxsdm06OkJhc2ljQmxvY2sgKmJiQ2FzZUlt cGwgPSBOVUxMOwotICAgICBpZiAoZW1pdEdlblhIYXJkd2FyZU1hc2soKSkgewotICAgICAgICAg Ly8gQ3JlYXRlIGJhc2ljIGJsb2NrIHdpdGggYWN0dWFsIGNhc2UgaW1wbGVtZW50YXRpb24KLS0g ICAgICAgIGxsdm06OlR3aW5lIGJiTmFtZSA9IGxsdm06OlR3aW5lKGJiQ2FzZS0+Z2V0TmFtZSgp KSArICJfaW1wbCI7Ci0tICAgICAgICBiYkNhc2VJbXBsID0gQ3JlYXRlQmFzaWNCbG9jayhiYk5h bWUsIGJiQ2FzZSk7Ci0rICAgICAgICBiYkNhc2VJbXBsID0gQ3JlYXRlQmFzaWNCbG9jayhsbHZt OjpUd2luZShiYkNhc2UtPmdldE5hbWUoKSkgKyAiX2ltcGwiLCBiYkNhc2UpOwotICAgICB9Ci0g I2VuZGlmCi0gCi1AQCAtMzE0Miw4ICszMTQxLDggQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1p dENvbnRleHQ6OkJyb2FkY2FzdFZhbHVlKGxsdm06OlZhbHVlICp2LCBsbHZtOjpUeXBlICp2ZWMK LSAgICAgbGx2bTo6VmFsdWUgKnVuZGVmMiA9IGxsdm06OlVuZGVmVmFsdWU6OmdldCh2ZWNUeXBl KTsKLSAKLSAgICAgLy8gSW5zZXJ0RWxlbWVudAotLSAgICBsbHZtOjpUd2luZSB0dyA9IG5hbWUu aXNUcml2aWFsbHlFbXB0eSgpID8gKGxsdm06OlR3aW5lKHYtPmdldE5hbWUoKSkgKyAiX2Jyb2Fk Y2FzdCIpIDogbmFtZSArIGxsdm06OlR3aW5lKCJfaW5pdCIpOwotLSAgICBsbHZtOjpWYWx1ZSAq aW5zZXJ0ID0gSW5zZXJ0SW5zdCh1bmRlZjEsIHYsIDAsIHR3LnN0cigpLmNfc3RyKCkpOwotKyAg ICBsbHZtOjpWYWx1ZSAqaW5zZXJ0ID0KLSsgICAgICAgIEluc2VydEluc3QodW5kZWYxLCB2LCAw LCBuYW1lLmlzVHJpdmlhbGx5RW1wdHkoKSA/IChsbHZtOjpUd2luZSh2LT5nZXROYW1lKCkpICsg Il9icm9hZGNhc3QiKSA6IG5hbWUgKyAiX2luaXQiKTsKLSAKLSAgICAgLy8gU2h1ZmZsZVZlY3Rv cgotICNpZiBJU1BDX0xMVk1fVkVSU0lPTiA8IElTUENfTExWTV8xMV8wCmRpZmYgLS1naXQgYS9z cmNwa2dzL2lzcGMvcGF0Y2hlcy9sbHZtMTItMDA1LnBhdGNoIGIvc3JjcGtncy9pc3BjL3BhdGNo ZXMvbGx2bTEyLTAwNS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTNlOTZi MDBhYmZhLi4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9pc3BjL3BhdGNoZXMvbGx2bTEyLTAw NS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDM3MiArMCwwIEBACi1Gcm9tIGMxZDBhNTFiZjg0 MTZkNDIxNDRkZTllMmJkZDU5ODI1ZWFlZmYxYWMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1G cm9tOiBBcmluYSBOZXNobHlhZXZhIDxhcmluYS5uZXNobHlhZXZhQGludGVsLmNvbT4KLURhdGU6 IEZyaSwgOCBKYW4gMjAyMSAxNDoxMzo0OSAtMDgwMAotU3ViamVjdDogW1BBVENIXSBMTFZNIDEx IHN1cHBvcnQgZm9yIGdlbiBjb2RlCi0KLS0tLQotIHNyYy9jdHguY3BwICAgICAgICAgICAgICAg ICAgICAgfCAgMTMgKystCi0gc3JjL2dlbi9HbG9iYWxzTG9jYWxpemF0aW9uLmNwcCB8ICAgOSAr LQotIHNyYy9vcHQuY3BwICAgICAgICAgICAgICAgICAgICAgfCAxNDMgKysrKysrKysrKysrKysr KysrKysrKysrLS0tLS0tLS0KLSAzIGZpbGVzIGNoYW5nZWQsIDEyNCBpbnNlcnRpb25zKCspLCA0 MSBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL3NyYy9jdHguY3BwIGIvc3JjL2N0eC5jcHAK LWluZGV4IGI2MGU2ZmU4NC4uMmE3MmU2ODM3IDEwMDY0NAotLS0tIGEvc3JjL2N0eC5jcHAKLSsr KyBiL3NyYy9jdHguY3BwCi1AQCAtMSw1ICsxLDUgQEAKLSAvKgotLSAgQ29weXJpZ2h0IChjKSAy MDEwLTIwMjAsIEludGVsIENvcnBvcmF0aW9uCi0rICBDb3B5cmlnaHQgKGMpIDIwMTAtMjAyMSwg SW50ZWwgQ29ycG9yYXRpb24KLSAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gCi0gICBSZWRpc3Ry aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv dXQKLUBAIC0zNjg1LDggKzM2ODUsMTcgQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRl eHQ6OkdlblhTaW1kQ0ZQcmVkaWNhdGUobGx2bTo6VmFsdWUgKnZhbHVlLCBsbHZtOjoKLSAgICAg QXNzZXJ0UG9zKGN1cnJlbnRQb3MsIGxsdm06OmlzYTxsbHZtOjpWZWN0b3JUeXBlPih2YWx1ZS0+ Z2V0VHlwZSgpKSk7Ci0gICAgIGxsdm06OlZlY3RvclR5cGUgKnZ0ID0gbGx2bTo6ZHluX2Nhc3Q8 bGx2bTo6VmVjdG9yVHlwZT4odmFsdWUtPmdldFR5cGUoKSk7Ci0gICAgIGlmIChkZWZhdWx0cyA9 PSBOVUxMKSB7Ci0tICAgICAgICBkZWZhdWx0cyA9IGxsdm06OkNvbnN0YW50VmVjdG9yOjpnZXRT cGxhdCh2YWx1ZS0+Z2V0VHlwZSgpLT5nZXRWZWN0b3JOdW1FbGVtZW50cygpLAotKyNpZiBJU1BD X0xMVk1fVkVSU0lPTiA8IElTUENfTExWTV8xMV8wCi0rICAgICAgICBkZWZhdWx0cyA9IGxsdm06 OkNvbnN0YW50VmVjdG9yOjpnZXRTcGxhdCh2dC0+Z2V0VmVjdG9yTnVtRWxlbWVudHMoKSwKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06OkNv bnN0YW50OjpnZXROdWxsVmFsdWUodnQtPmdldEVsZW1lbnRUeXBlKCkpKTsKLSsjZWxpZiBJU1BD X0xMVk1fVkVSU0lPTiA9PSBJU1BDX0xMVk1fMTFfMAotKyAgICAgICAgZGVmYXVsdHMgPSBsbHZt OjpDb25zdGFudFZlY3Rvcjo6Z2V0U3BsYXQoe3N0YXRpY19jYXN0PHVuc2lnbmVkIGludD4odnQt PmdldE51bUVsZW1lbnRzKCkpLCBmYWxzZX0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpDb25zdGFudDo6Z2V0TnVsbFZhbHVlKHZ0LT5n ZXRFbGVtZW50VHlwZSgpKSk7Ci0rI2Vsc2UKLSsgICAgICAgIGRlZmF1bHRzID0gbGx2bTo6Q29u c3RhbnRWZWN0b3I6OmdldFNwbGF0KAotKyAgICAgICAgICAgIGxsdm06OkVsZW1lbnRDb3VudDo6 Z2V0KHN0YXRpY19jYXN0PHVuc2lnbmVkIGludD4odnQtPmdldE51bUVsZW1lbnRzKCkpLCBmYWxz ZSksCi0rICAgICAgICAgICAgbGx2bTo6Q29uc3RhbnQ6OmdldE51bGxWYWx1ZSh2dC0+Z2V0RWxl bWVudFR5cGUoKSkpOwotKyNlbmRpZgotICAgICB9Ci0gCi0gICAgIGF1dG8gRm4gPSBsbHZtOjpH ZW5YSW50cmluc2ljOjpnZXRHZW5YRGVjbGFyYXRpb24obS0+bW9kdWxlLCBsbHZtOjpHZW5YSW50 cmluc2ljOjpnZW54X3NpbWRjZl9wcmVkaWNhdGUsCi1kaWZmIC0tZ2l0IGEvc3JjL2dlbi9HbG9i YWxzTG9jYWxpemF0aW9uLmNwcCBiL3NyYy9nZW4vR2xvYmFsc0xvY2FsaXphdGlvbi5jcHAKLWlu ZGV4IGExNzZlOTQ2Mi4uNDFmM2IwMGUyIDEwMDY0NAotLS0tIGEvc3JjL2dlbi9HbG9iYWxzTG9j YWxpemF0aW9uLmNwcAotKysrIGIvc3JjL2dlbi9HbG9iYWxzTG9jYWxpemF0aW9uLmNwcAotQEAg LTEsNSArMSw1IEBACi0gLyoKLS0gIENvcHlyaWdodCAoYykgMjAxNCwgMjAxNi0yMDIwLCBJbnRl bCBDb3Jwb3JhdGlvbgotKyAgQ29weXJpZ2h0IChjKSAyMDE0LCAyMDE2LTIwMjEsIEludGVsIENv cnBvcmF0aW9uCi0gICBBbGwgcmlnaHRzIHJlc2VydmVkLgotIAotICAgUmVkaXN0cmlidXRpb24g YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci1AQCAt NTMsOCArNTMsMTAgQEAKLSAjaW5jbHVkZSA8bGx2bS9HZW5YSW50cmluc2ljcy9HZW5YSW50ck9w dHMuaD4KLSAjaW5jbHVkZSA8bGx2bS9HZW5YSW50cmluc2ljcy9HZW5YSW50cmluc2ljcy5oPgot ICNpbmNsdWRlIDxsbHZtL0dlblhJbnRyaW5zaWNzL0dlblhNZXRhZGF0YS5oPgotLSNpbmNsdWRl IDxsbHZtL0lSL0NGRy5oPgotKyNpZiBJU1BDX0xMVk1fVkVSU0lPTiA8IElTUENfTExWTV8xMV8w Ci0gI2luY2x1ZGUgPGxsdm0vSVIvQ2FsbFNpdGUuaD4KLSsjZW5kaWYKLSsjaW5jbHVkZSA8bGx2 bS9JUi9DRkcuaD4KLSAjaW5jbHVkZSA8bGx2bS9JUi9EZWJ1Z0luZm8uaD4KLSAjaW5jbHVkZSA8 bGx2bS9JUi9Eb21pbmF0b3JzLmg+Ci0gI2luY2x1ZGUgPGxsdm0vSVIvRnVuY3Rpb24uaD4KLUBA IC00NzAsNyArNDcyLDggQEAgdm9pZCBHbG9iYWxzTG9jYWxpemF0aW9uOjpMb2NhbGl6ZUdsb2Jh bHMoTG9jYWxpemF0aW9uSW5mbyAmTEkpIHsKLSAgICAgICAgIEluc3RydWN0aW9uICZGaXJzdEkg PSAqRm4tPmdldEVudHJ5QmxvY2soKS5iZWdpbigpOwotICAgICAgICAgVHlwZSAqRWxlbVR5ID0g R1YtPmdldFR5cGUoKS0+Z2V0RWxlbWVudFR5cGUoKTsKLSAgICAgICAgIEFsbG9jYUluc3QgKkFs bG9jYSA9IG5ldyBBbGxvY2FJbnN0KEVsZW1UeSwgMCwgR1YtPmdldE5hbWUoKSArICIubG9jYWwi LCAmRmlyc3RJKTsKLS0gICAgICAgIEFsbG9jYS0+c2V0QWxpZ25tZW50KGxsdm06Ok1heWJlQWxp Z24oR1YtPmdldEFsaWdubWVudCgpKSk7Ci0rICAgICAgICBBbGxvY2EtPnNldEFsaWdubWVudChs bHZtOjpNYXliZUFsaWduKEdWLT5nZXRBbGlnbm1lbnQoKSkudmFsdWVPck9uZSgpKTsKLSsKLSAg ICAgICAgIGlmICghaXNhPFVuZGVmVmFsdWU+KEdWLT5nZXRJbml0aWFsaXplcigpKSkKLSAgICAg ICAgICAgICBuZXcgU3RvcmVJbnN0KEdWLT5nZXRJbml0aWFsaXplcigpLCBBbGxvY2EsICZGaXJz dEkpOwotIAotZGlmZiAtLWdpdCBhL3NyYy9vcHQuY3BwIGIvc3JjL29wdC5jcHAKLWluZGV4IGQ1 OGQ3N2Y3My4uMTc4OWI4NDc2IDEwMDY0NAotLS0tIGEvc3JjL29wdC5jcHAKLSsrKyBiL3NyYy9v cHQuY3BwCi1AQCAtMjg5OSwxNSArMjg5OSwxNyBAQCBzdGF0aWMgbGx2bTo6RnVuY3Rpb24gKmxH ZW5YTWFza2VkSW50OEluc3QobGx2bTo6SW5zdHJ1Y3Rpb24gKmluc3QsIGJvb2wgaXNTdG9yZQot IHN0YXRpYyBsbHZtOjpDYWxsSW5zdCAqbEdlblhTdG9yZUluc3QobGx2bTo6VmFsdWUgKnZhbCwg bGx2bTo6VmFsdWUgKnB0ciwgbGx2bTo6SW5zdHJ1Y3Rpb24gKmluc3QpIHsKLSAgICAgQXNzZXJ0 KGctPnRhcmdldC0+aXNHZW5YVGFyZ2V0KCkpOwotICAgICBBc3NlcnQobGx2bTo6aXNhPGxsdm06 OlZlY3RvclR5cGU+KHZhbC0+Z2V0VHlwZSgpKSk7Ci0tICAgIEFzc2VydChsbHZtOjppc1Bvd2Vy T2YyXzMyKHZhbC0+Z2V0VHlwZSgpLT5nZXRWZWN0b3JOdW1FbGVtZW50cygpKSk7Ci0tICAgIEFz c2VydCh2YWwtPmdldFR5cGUoKS0+Z2V0UHJpbWl0aXZlU2l6ZUluQml0cygpIC8gOCA8PSA4ICog T1dPUkQpOwotKwotKyAgICBsbHZtOjpWZWN0b3JUeXBlICp2YWxWZWNUeXBlID0gbGx2bTo6ZHlu X2Nhc3Q8bGx2bTo6VmVjdG9yVHlwZT4odmFsLT5nZXRUeXBlKCkpOwotKyAgICBBc3NlcnQobGx2 bTo6aXNQb3dlck9mMl8zMih2YWxWZWNUeXBlLT5nZXROdW1FbGVtZW50cygpKSk7Ci0rICAgIEFz c2VydCh2YWxWZWNUeXBlLT5nZXRQcmltaXRpdmVTaXplSW5CaXRzKCkgLyA4IDw9IDggKiBPV09S RCk7Ci0gCi0gICAgIC8vIFRoZSBkYXRhIHdyaXRlIG9mIHN2bSBzdG9yZSBtdXN0IGhhdmUgYSBz aXplIHRoYXQgaXMgYSBwb3dlciBvZiB0d28gZnJvbSAxNiB0byAxMjgKLSAgICAgLy8gYnl0ZXMu IEhvd2V2ZXIgZm9yIGludDggdHlwZSBhbmQgc2ltZCB3aWR0aCA9IDgsIHRoZSBkYXRhIHdyaXRl IHNpemUgaXMgOC4KLSAgICAgLy8gU28gd2UgdXNlIG1hc2tlZCBzdG9yZSBmdW5jdGlvbiBoZXJl IGluc3RlYWQgb2Ygc3ZtIHN0b3JlIHdoaWNoIHByb2Nlc3MgaW50OCB0eXBlCi0gICAgIC8vIGNv cnJlY3RseS4KLS0gICAgaWYgKHZhbC0+Z2V0VHlwZSgpLT5nZXRQcmltaXRpdmVTaXplSW5CaXRz KCkgLyA4IDwgMTYpIHsKLS0gICAgICAgIEFzc2VydCh2YWwtPmdldFR5cGUoKS0+Z2V0U2NhbGFy VHlwZSgpID09IExMVk1UeXBlczo6SW50OFR5cGUpOwotKyAgICBpZiAodmFsVmVjVHlwZS0+Z2V0 UHJpbWl0aXZlU2l6ZUluQml0cygpIC8gOCA8IDE2KSB7Ci0rICAgICAgICBBc3NlcnQodmFsVmVj VHlwZS0+Z2V0U2NhbGFyVHlwZSgpID09IExMVk1UeXBlczo6SW50OFR5cGUpOwotICAgICAgICAg aWYgKGxsdm06OkZ1bmN0aW9uICptYXNrZWRGdW5jID0gbEdlblhNYXNrZWRJbnQ4SW5zdChpbnN0 LCB0cnVlKSkKLSAgICAgICAgICAgICByZXR1cm4gbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6Q2FsbElu c3Q+KGxDYWxsSW5zdChtYXNrZWRGdW5jLCBwdHIsIHZhbCwgTExWTU1hc2tBbGxPbiwgIiIpKTsK LSAgICAgICAgIGVsc2UgewotQEAgLTI5MjMsMTUgKzI5MjUsMTcgQEAgc3RhdGljIGxsdm06OkNh bGxJbnN0ICpsR2VuWFN0b3JlSW5zdChsbHZtOjpWYWx1ZSAqdmFsLCBsbHZtOjpWYWx1ZSAqcHRy LCBsbHZtOjoKLSAKLSBzdGF0aWMgbGx2bTo6Q2FsbEluc3QgKmxHZW5YTG9hZEluc3QobGx2bTo6 VmFsdWUgKnB0ciwgbGx2bTo6VHlwZSAqcmV0VHlwZSwgbGx2bTo6SW5zdHJ1Y3Rpb24gKmluc3Qp IHsKLSAgICAgQXNzZXJ0KGxsdm06OmlzYTxsbHZtOjpWZWN0b3JUeXBlPihyZXRUeXBlKSk7Ci0t ICAgIEFzc2VydChsbHZtOjppc1Bvd2VyT2YyXzMyKHJldFR5cGUtPmdldFZlY3Rvck51bUVsZW1l bnRzKCkpKTsKLS0gICAgQXNzZXJ0KHJldFR5cGUtPmdldFByaW1pdGl2ZVNpemVJbkJpdHMoKSk7 Ci0tICAgIEFzc2VydChyZXRUeXBlLT5nZXRQcmltaXRpdmVTaXplSW5CaXRzKCkgLyA4IDw9IDgg KiBPV09SRCk7Ci0rCi0rICAgIGxsdm06OlZlY3RvclR5cGUgKnJldFZlY1R5cGUgPSBsbHZtOjpk eW5fY2FzdDxsbHZtOjpWZWN0b3JUeXBlPihyZXRUeXBlKTsKLSsgICAgQXNzZXJ0KGxsdm06Omlz UG93ZXJPZjJfMzIocmV0VmVjVHlwZS0+Z2V0TnVtRWxlbWVudHMoKSkpOwotKyAgICBBc3NlcnQo cmV0VmVjVHlwZS0+Z2V0UHJpbWl0aXZlU2l6ZUluQml0cygpKTsKLSsgICAgQXNzZXJ0KHJldFZl Y1R5cGUtPmdldFByaW1pdGl2ZVNpemVJbkJpdHMoKSAvIDggPD0gOCAqIE9XT1JEKTsKLSAgICAg Ly8gVGhlIGRhdGEgcmVhZCBvZiBzdm0gbG9hZCBtdXN0IGhhdmUgYSBzaXplIHRoYXQgaXMgYSBw b3dlciBvZiB0d28gZnJvbSAxNiB0byAxMjgKLSAgICAgLy8gYnl0ZXMuIEhvd2V2ZXIgZm9yIGlu dDggdHlwZSBhbmQgc2ltZCB3aWR0aCA9IDgsIHRoZSBkYXRhIHJlYWQgc2l6ZSBpcyA4LgotICAg ICAvLyBTbyB3ZSB1c2UgbWFza2VkIGxvYWQgZnVuY3Rpb24gaGVyZSBpbnN0ZWFkIG9mIHN2bSBs b2FkIHdoaWNoIHByb2Nlc3MgaW50OCB0eXBlCi0gICAgIC8vIGNvcnJlY3RseS4KLS0gICAgaWYg KHJldFR5cGUtPmdldFByaW1pdGl2ZVNpemVJbkJpdHMoKSAvIDggPCAxNikgewotLSAgICAgICAg QXNzZXJ0KHJldFR5cGUtPmdldFNjYWxhclR5cGUoKSA9PSBMTFZNVHlwZXM6OkludDhUeXBlKTsK LSsgICAgaWYgKHJldFZlY1R5cGUtPmdldFByaW1pdGl2ZVNpemVJbkJpdHMoKSAvIDggPCAxNikg ewotKyAgICAgICAgQXNzZXJ0KHJldFZlY1R5cGUtPmdldFNjYWxhclR5cGUoKSA9PSBMTFZNVHlw ZXM6OkludDhUeXBlKTsKLSAgICAgICAgIGlmIChsbHZtOjpGdW5jdGlvbiAqbWFza2VkRnVuYyA9 IGxHZW5YTWFza2VkSW50OEluc3QoaW5zdCwgZmFsc2UpKQotICAgICAgICAgICAgIHJldHVybiBs bHZtOjpkeW5fY2FzdDxsbHZtOjpDYWxsSW5zdD4obENhbGxJbnN0KG1hc2tlZEZ1bmMsIHB0ciwg TExWTU1hc2tBbGxPbiwgIiIpKTsKLSAgICAgICAgIGVsc2UgewotQEAgLTU2MjIsMTUgKzU2MjYs MjQgQEAgc3RhdGljIGJvb2wgbFZlY3Rvcml6ZUdFUHMobGx2bTo6VmFsdWUgKnB0ciwgc3RkOjp2 ZWN0b3I8UHRyVXNlPiAmcHRyVXNlcywgc3RkOjoKLSAgICAgICAgIGxsdm06OlB0clRvSW50SW5z dCAqcHRyVG9JbnQgPQotICAgICAgICAgICAgIG5ldyBsbHZtOjpQdHJUb0ludEluc3QocHRyLCBM TFZNVHlwZXM6OkludDY0VHlwZSwgInZlY3Rvcml6ZWRfcHRydG9pbnQiLCBpbnNlcnRCZWZvcmUp OwotICAgICAgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmFkZHIgPSBsbHZtOjpCaW5hcnlPcGVyYXRv cjo6Q3JlYXRlQWRkKHB0clRvSW50LCBvZmZzZXQsICJ2ZWN0b3JpemVkX2FkZHJlc3MiLCBpbnNl cnRCZWZvcmUpOwotKyNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTFfMAotKyAg ICAgICAgbGx2bTo6VHlwZSAqcmV0VHlwZSA9IGxsdm06OkZpeGVkVmVjdG9yVHlwZTo6Z2V0KHNj YWxhcl90eXBlLCByZXFTaXplIC8gdF9zaXplKTsKLSsjZWxzZQotICAgICAgICAgbGx2bTo6VHlw ZSAqcmV0VHlwZSA9IGxsdm06OlZlY3RvclR5cGU6OmdldChzY2FsYXJfdHlwZSwgcmVxU2l6ZSAv IHRfc2l6ZSk7Ci0rI2VuZGlmCi0gICAgICAgICBsbHZtOjpGdW5jdGlvbiAqZm4gPSBsbHZtOjpH ZW5YSW50cmluc2ljOjpnZXRHZW5YRGVjbGFyYXRpb24oCi0gICAgICAgICAgICAgbS0+bW9kdWxl LCBsbHZtOjpHZW5YSW50cmluc2ljOjpnZW54X3N2bV9ibG9ja19sZF91bmFsaWduZWQsIHtyZXRU eXBlLCBhZGRyLT5nZXRUeXBlKCl9KTsKLSAgICAgICAgIGxsdm06Okluc3RydWN0aW9uICpsZCA9 IGxsdm06OkNhbGxJbnN0OjpDcmVhdGUoZm4sIHthZGRyfSwgInZlY3Rvcml6ZWRfbGQiLCBpbnNl cnRCZWZvcmUpOwotIAotICAgICAgICAgaWYgKGxvYWRpbmdQdHIpIHsKLSAgICAgICAgICAgICAv LyBDYXN0IGludCB0byBwdHIgdmlhIGludHRvcHRyCi0rI2lmIElTUENfTExWTV9WRVJTSU9OID49 IElTUENfTExWTV8xMV8wCi0rICAgICAgICAgICAgbGQgPSBuZXcgbGx2bTo6SW50VG9QdHJJbnN0 KGxkLCBsbHZtOjpGaXhlZFZlY3RvclR5cGU6OmdldChvcmlnaW5hbFR5cGUsIHJlcVNpemUgLyB0 X3NpemUpLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidmVjdG9y aXplZF9pbnR0b3B0ciIsIGluc2VydEJlZm9yZSk7Ci0rI2Vsc2UKLSAgICAgICAgICAgICBsZCA9 IG5ldyBsbHZtOjpJbnRUb1B0ckluc3QobGQsIGxsdm06OlZlY3RvclR5cGU6OmdldChvcmlnaW5h bFR5cGUsIHJlcVNpemUgLyB0X3NpemUpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAidmVjdG9yaXplZF9pbnR0b3B0ciIsIGluc2VydEJlZm9yZSk7Ci0rI2VuZGlm Ci0gICAgICAgICB9Ci0gCi0gICAgICAgICAvLyBTY2FsYXIgZXh0cmFjdHMgZm9yIGFsbCBsb2Fk ZWQgZWxlbWVudHMKLUBAIC02MTYwLDE5ICs2MTczLDM0IEBAIGJvb2wgUmVwbGFjZUxMVk1JbnRy aW5zaWNzOjpydW5PbkJhc2ljQmxvY2sobGx2bTo6QmFzaWNCbG9jayAmYmIpIHsKLSAgICAgICAg IGxsdm06Okluc3RydWN0aW9uICppbnN0ID0gJipJOwotICAgICAgICAgaWYgKGxsdm06OkNhbGxJ bnN0ICpjaSA9IGxsdm06OmR5bl9jYXN0PGxsdm06OkNhbGxJbnN0PihpbnN0KSkgewotICAgICAg ICAgICAgIGxsdm06OkZ1bmN0aW9uICpmdW5jID0gY2ktPmdldENhbGxlZEZ1bmN0aW9uKCk7Ci0t ICAgICAgICAgICAgaWYgKGZ1bmMgJiYgZnVuYy0+Z2V0TmFtZSgpID09ICJsbHZtLnRyYXAiKSB7 Ci0rICAgICAgICAgICAgaWYgKGZ1bmMgJiYgZnVuYy0+Z2V0TmFtZSgpLmVxdWFscygibGx2bS50 cmFwIikpIHsKLSAgICAgICAgICAgICAgICAgbGx2bTo6VHlwZSAqYXJnVHlwZXNbXSA9IHtMTFZN VHlwZXM6OkludDFWZWN0b3JUeXBlLCBMTFZNVHlwZXM6OkludDE2VmVjdG9yVHlwZX07Ci0gICAg ICAgICAgICAgICAgIC8vIERlc2NyaXB0aW9uIG9mIHBhcmFtZXRlcnMgZm9yIGdlbnhfcmF3X3Nl bmRfbm9yZXN1bHQgY2FuIGJlIGZvdW5kIGluIHRhcmdldC1nZW54LmxsCi0gICAgICAgICAgICAg ICAgIGF1dG8gRm4gPSArbGx2bTo6R2VuWEludHJpbnNpYzo6Z2V0R2VuWERlY2xhcmF0aW9uKAot ICAgICAgICAgICAgICAgICAgICAgbS0+bW9kdWxlLCBsbHZtOjpHZW5YSW50cmluc2ljOjpnZW54 X3Jhd19zZW5kX25vcmVzdWx0LCBhcmdUeXBlcyk7Ci0gICAgICAgICAgICAgICAgIGxsdm06OlNt YWxsVmVjdG9yPGxsdm06OlZhbHVlICosIDg+IEFyZ3M7Ci0gICAgICAgICAgICAgICAgIEFyZ3Mu cHVzaF9iYWNrKGxsdm06OkNvbnN0YW50SW50OjpnZXQoTExWTVR5cGVzOjpJbnQzMlR5cGUsIDAp KTsKLS0gICAgICAgICAgICAgICAgQXJncy5wdXNoX2JhY2sobGx2bTo6Q29uc3RhbnRWZWN0b3I6 OmdldFNwbGF0KGctPnRhcmdldC0+Z2V0TmF0aXZlVmVjdG9yV2lkdGgoKSwKLS0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06 OkNvbnN0YW50SW50OjpnZXRUcnVlKCpnLT5jdHgpKSk7Ci0rICAgICAgICAgICAgICAgIEFyZ3Mu cHVzaF9iYWNrKGxsdm06OkNvbnN0YW50VmVjdG9yOjpnZXRTcGxhdCgKLSsjaWYgSVNQQ19MTFZN X1ZFUlNJT04gPCBJU1BDX0xMVk1fMTFfMAotKyAgICAgICAgICAgICAgICAgICAgZy0+dGFyZ2V0 LT5nZXROYXRpdmVWZWN0b3JXaWR0aCgpLAotKyNlbGlmIElTUENfTExWTV9WRVJTSU9OID09IElT UENfTExWTV8xMV8wCi0rICAgICAgICAgICAgICAgICAgICB7c3RhdGljX2Nhc3Q8dW5zaWduZWQg aW50PihnLT50YXJnZXQtPmdldE5hdGl2ZVZlY3RvcldpZHRoKCkpLCBmYWxzZX0sCi0rI2Vsc2Ug Ly8gTExWTSAxMi4wKwotKyAgICAgICAgICAgICAgICAgICAgbGx2bTo6RWxlbWVudENvdW50Ojpn ZXQoc3RhdGljX2Nhc3Q8dW5zaWduZWQgaW50PihnLT50YXJnZXQtPmdldE5hdGl2ZVZlY3Rvcldp ZHRoKCkpLCBmYWxzZSksCi0rI2VuZGlmCi0rICAgICAgICAgICAgICAgICAgICBsbHZtOjpDb25z dGFudEludDo6Z2V0VHJ1ZSgqZy0+Y3R4KSkpOwotKwotICAgICAgICAgICAgICAgICBBcmdzLnB1 c2hfYmFjayhsbHZtOjpDb25zdGFudEludDo6Z2V0KExMVk1UeXBlczo6SW50MzJUeXBlLCAzOSkp OwotICAgICAgICAgICAgICAgICBBcmdzLnB1c2hfYmFjayhsbHZtOjpDb25zdGFudEludDo6Z2V0 KExMVk1UeXBlczo6SW50MzJUeXBlLCAzMzU1NDQ0OCkpOwotICAgICAgICAgICAgICAgICBsbHZt OjpWYWx1ZSAqemVyb01hc2sgPSBsbHZtOjpDb25zdGFudFZlY3Rvcjo6Z2V0U3BsYXQoCi0tICAg ICAgICAgICAgICAgICAgICBnLT50YXJnZXQtPmdldE5hdGl2ZVZlY3RvcldpZHRoKCksIGxsdm06 OkNvbnN0YW50OjpnZXROdWxsVmFsdWUobGx2bTo6VHlwZTo6Z2V0SW50MTZUeSgqZy0+Y3R4KSkp OwotKyNpZiBJU1BDX0xMVk1fVkVSU0lPTiA8IElTUENfTExWTV8xMV8wCi0rICAgICAgICAgICAg ICAgICAgICBnLT50YXJnZXQtPmdldE5hdGl2ZVZlY3RvcldpZHRoKCksCi0rI2VsaWYgSVNQQ19M TFZNX1ZFUlNJT04gPT0gSVNQQ19MTFZNXzExXzAKLSsgICAgICAgICAgICAgICAgICAgIHtzdGF0 aWNfY2FzdDx1bnNpZ25lZCBpbnQ+KGctPnRhcmdldC0+Z2V0TmF0aXZlVmVjdG9yV2lkdGgoKSks IGZhbHNlfSwKLSsjZWxzZSAvLyBMTFZNIDEyLjArCi0rICAgICAgICAgICAgICAgICAgICBsbHZt OjpFbGVtZW50Q291bnQ6OmdldChzdGF0aWNfY2FzdDx1bnNpZ25lZCBpbnQ+KGctPnRhcmdldC0+ Z2V0TmF0aXZlVmVjdG9yV2lkdGgoKSksIGZhbHNlKSwKLSsjZW5kaWYKLSsgICAgICAgICAgICAg ICAgICAgIGxsdm06OkNvbnN0YW50OjpnZXROdWxsVmFsdWUobGx2bTo6VHlwZTo6Z2V0SW50MTZU eSgqZy0+Y3R4KSkpOwotICAgICAgICAgICAgICAgICBBcmdzLnB1c2hfYmFjayh6ZXJvTWFzayk7 Ci0gCi0gICAgICAgICAgICAgICAgIGxsdm06Okluc3RydWN0aW9uICpuZXdJbnN0ID0gbGx2bTo6 Q2FsbEluc3Q6OkNyZWF0ZShGbiwgQXJncywgY2ktPmdldE5hbWUoKSk7Ci1AQCAtNjE4MSw3ICs2 MjA5LDcgQEAgYm9vbCBSZXBsYWNlTExWTUludHJpbnNpY3M6OnJ1bk9uQmFzaWNCbG9jayhsbHZt OjpCYXNpY0Jsb2NrICZiYikgewotICAgICAgICAgICAgICAgICAgICAgbW9kaWZpZWRBbnkgPSB0 cnVlOwotICAgICAgICAgICAgICAgICAgICAgZ290byByZXN0YXJ0OwotICAgICAgICAgICAgICAg ICB9Ci0tICAgICAgICAgICAgfSBlbHNlIGlmIChmdW5jICYmIGZ1bmMtPmdldE5hbWUoKSA9PSAi bGx2bS5hc3N1bWUiKSB7Ci0rICAgICAgICAgICAgfSBlbHNlIGlmIChmdW5jICYmIGZ1bmMtPmdl dE5hbWUoKS5lcXVhbHMoImxsdm0uYXNzdW1lIikpIHsKLSAgICAgICAgICAgICAgICAgY2ktPmVy YXNlRnJvbVBhcmVudCgpOwotICAgICAgICAgICAgICAgICBtb2RpZmllZEFueSA9IHRydWU7Ci0g ICAgICAgICAgICAgICAgIGdvdG8gcmVzdGFydDsKLUBAIC02MzM1LDcgKzYzNjMsNyBAQCBib29s IENoZWNrVW5zdXBwb3J0ZWRJbnN0czo6cnVuT25CYXNpY0Jsb2NrKGxsdm06OkJhc2ljQmxvY2sg JmJiKSB7Ci0gICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgIGZvciAoaW50 IGkgPSAwOyBpIDwgdW5zdXBwb3J0ZWRGdW5jcy5zaXplKCk7IGkrKykgewotICAgICAgICAgICAg ICAgICBzdGQ6OnNtYXRjaCBtYXRjaDsKLS0gICAgICAgICAgICAgICAgc3RkOjpzdHJpbmcgZnVu Y05hbWUgPSBmdW5jLT5nZXROYW1lKCk7Ci0rICAgICAgICAgICAgICAgIHN0ZDo6c3RyaW5nIGZ1 bmNOYW1lID0gZnVuYy0+Z2V0TmFtZSgpLnN0cigpOwotICAgICAgICAgICAgICAgICBpZiAoc3Rk OjpyZWdleF9tYXRjaChmdW5jTmFtZSwgbWF0Y2gsIHVuc3VwcG9ydGVkRnVuY3NbaV0pKSB7Ci0g ICAgICAgICAgICAgICAgICAgICAvLyBXZSBmb3VuZCB1bnN1cHBvcnRlZCBmdW5jdGlvbi4gR2Vu ZXJhdGUgZXJyb3IgYW5kIHN0b3AgY29tcGlsYXRpb24uCi0gICAgICAgICAgICAgICAgICAgICBT b3VyY2VQb3MgcG9zOwotQEAgLTY0MTgsMTIgKzY0NDYsMTQgQEAgYm9vbCBNYW5nbGVPcGVuQ0xC dWlsdGluczo6cnVuT25CYXNpY0Jsb2NrKGxsdm06OkJhc2ljQmxvY2sgJmJiKSB7Ci0gICAgICAg ICAgICAgaWYgKGZ1bmMtPmdldE5hbWUoKS5zdGFydHN3aXRoKCJfX3NwaXJ2X29jbCIpKSB7Ci0g ICAgICAgICAgICAgICAgIHN0ZDo6c3RyaW5nIG1hbmdsZWROYW1lOwotICAgICAgICAgICAgICAg ICBsbHZtOjpUeXBlICpyZXRUeXBlID0gZnVuYy0+Z2V0UmV0dXJuVHlwZSgpOwotLSAgICAgICAg ICAgICAgICBzdGQ6OnN0cmluZyBmdW5jTmFtZSA9IGZ1bmMtPmdldE5hbWUoKTsKLSsgICAgICAg ICAgICAgICAgc3RkOjpzdHJpbmcgZnVuY05hbWUgPSBmdW5jLT5nZXROYW1lKCkuc3RyKCk7Ci0g ICAgICAgICAgICAgICAgIHN0ZDo6dmVjdG9yPGxsdm06OlR5cGUgKj4gQXJnVHk7Ci0gICAgICAg ICAgICAgICAgIC8vIHNwaXJ2IE9wZW5DTCBidWlsdGlucyBhcmUgdXNlZCBmb3IgZG91YmxlIHR5 cGVzIG9ubHkKLS0gICAgICAgICAgICAgICAgQXNzZXJ0KHJldFR5cGUtPmlzVmVjdG9yVHkoKSAm JiByZXRUeXBlLT5nZXRWZWN0b3JFbGVtZW50VHlwZSgpLT5pc0RvdWJsZVR5KCkgfHwKLSsgICAg ICAgICAgICAgICAgQXNzZXJ0KHJldFR5cGUtPmlzVmVjdG9yVHkoKSAmJgotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgIGxsdm06OmR5bl9jYXN0PGxsdm06OlZlY3RvclR5cGU+KHJldFR5cGUp LT5nZXRFbGVtZW50VHlwZSgpLT5pc0RvdWJsZVR5KCkgfHwKLSAgICAgICAgICAgICAgICAgICAg ICAgIHJldFR5cGUtPmlzU2luZ2xlVmFsdWVUeXBlKCkgJiYgcmV0VHlwZS0+aXNEb3VibGVUeSgp KTsKLS0gICAgICAgICAgICAgICAgaWYgKHJldFR5cGUtPmlzVmVjdG9yVHkoKSAmJiByZXRUeXBl LT5nZXRWZWN0b3JFbGVtZW50VHlwZSgpLT5pc0RvdWJsZVR5KCkpIHsKLSsgICAgICAgICAgICAg ICAgaWYgKHJldFR5cGUtPmlzVmVjdG9yVHkoKSAmJgotKyAgICAgICAgICAgICAgICAgICAgbGx2 bTo6ZHluX2Nhc3Q8bGx2bTo6VmVjdG9yVHlwZT4ocmV0VHlwZSktPmdldEVsZW1lbnRUeXBlKCkt PmlzRG91YmxlVHkoKSkgewotICAgICAgICAgICAgICAgICAgICAgQXJnVHkucHVzaF9iYWNrKExM Vk1UeXBlczo6RG91YmxlVmVjdG9yVHlwZSk7Ci0gICAgICAgICAgICAgICAgICAgICAvLyBfRHZX SURUSCBzdWZmaXggaXMgdXNlZCBpbiB0YXJnZXQgZmlsZSB0byBkaWZmZXJlbnRpYXRlIHNjYWxh cgotICAgICAgICAgICAgICAgICAgICAgLy8gYW5kIHZlY3RvciB2ZXJzaW9ucyBvZiBpbnRyaW5z aWNzLiBIZXJlIHdlIHJlbW92ZSB0aGlzCi1AQCAtNjUxMSw4ICs2NTQxLDE1IEBAIGxsdm06OlZh bHVlICpGaXhBZGRyZXNzU3BhY2U6OmNhbGN1bGF0ZUdhdGhlclNjYXR0ZXJBZGRyZXNzKGxsdm06 OlZhbHVlICpQdHIsIGxsCi0gCi0gICAgIC8vIENhc3Qgb2Zmc2V0cyB0byBpbnQ2NAotICAgICBP ZmZzZXRzID0gbmV3IGxsdm06OlpFeHRJbnN0KAotKyNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJ U1BDX0xMVk1fMTFfMAotKyAgICAgICAgT2Zmc2V0cywKLSsgICAgICAgIGxsdm06OkZpeGVkVmVj dG9yVHlwZTo6Z2V0KExMVk1UeXBlczo6SW50NjRUeXBlLAotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6VmVjdG9yVHlwZT4oT2Zmc2V0cy0+ Z2V0VHlwZSgpKS0+Z2V0TnVtRWxlbWVudHMoKSksCi0rICAgICAgICAic3ZtX29mZnNldF96ZXh0 IiwgSW5zZXJ0QmVmb3JlKTsKLSsjZWxzZQotICAgICAgICAgT2Zmc2V0cywgbGx2bTo6VmVjdG9y VHlwZTo6Z2V0KExMVk1UeXBlczo6SW50NjRUeXBlLCBPZmZzZXRzLT5nZXRUeXBlKCktPmdldFZl Y3Rvck51bUVsZW1lbnRzKCkpLAotICAgICAgICAgInN2bV9vZmZzZXRfemV4dCIsIEluc2VydEJl Zm9yZSk7Ci0rI2VuZGlmCi0gCi0gICAgIGlmICghbGx2bTo6aXNhPGxsdm06OkNvbnN0YW50UG9p bnRlck51bGw+KFB0cikpIHsKLSAgICAgICAgIC8vIENhc3QgcHRyIHRvIGludDY0Ci1AQCAtNjUy MCwxMyArNjU1NywzMSBAQCBsbHZtOjpWYWx1ZSAqRml4QWRkcmVzc1NwYWNlOjpjYWxjdWxhdGVH YXRoZXJTY2F0dGVyQWRkcmVzcyhsbHZtOjpWYWx1ZSAqUHRyLCBsbAotIAotICAgICAgICAgLy8g VmVjdG9yaXplIHB0cgotICAgICAgICAgbGx2bTo6VmFsdWUgKnVuZGVmSW5zZXJ0VmFsdWUgPQot KyNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTFfMAotKyAgICAgICAgICAgIGxs dm06OlVuZGVmVmFsdWU6OmdldChsbHZtOjpGaXhlZFZlY3RvclR5cGU6OmdldCgKLSsgICAgICAg ICAgICAgICAgTExWTVR5cGVzOjpJbnQ2NFR5cGUsIGxsdm06OmR5bl9jYXN0PGxsdm06OlZlY3Rv clR5cGU+KGFkZHJlc3NUeXBlKS0+Z2V0TnVtRWxlbWVudHMoKSkpOwotKyNlbHNlCi0gICAgICAg ICAgICAgbGx2bTo6VW5kZWZWYWx1ZTo6Z2V0KGxsdm06OlZlY3RvclR5cGU6OmdldChMTFZNVHlw ZXM6OkludDY0VHlwZSwgYWRkcmVzc1R5cGUtPmdldFZlY3Rvck51bUVsZW1lbnRzKCkpKTsKLSsj ZW5kaWYKLSAgICAgICAgIGFkZHJlc3MgPSBsbHZtOjpJbnNlcnRFbGVtZW50SW5zdDo6Q3JlYXRl KHVuZGVmSW5zZXJ0VmFsdWUsIGFkZHJlc3MsIExMVk1JbnQzMigwKSwgInN2bV9wdHJfaWVpIiwg SW5zZXJ0QmVmb3JlKTsKLSAgICAgICAgIGxsdm06OkNvbnN0YW50ICp6ZXJvVmVjID0gbGx2bTo6 Q29uc3RhbnRWZWN0b3I6OmdldFNwbGF0KAotKyNpZiBJU1BDX0xMVk1fVkVSU0lPTiA8IElTUENf TExWTV8xMV8wCi0gICAgICAgICAgICAgYWRkcmVzc1R5cGUtPmdldFZlY3Rvck51bUVsZW1lbnRz KCksCi0rI2VsaWYgSVNQQ19MTFZNX1ZFUlNJT04gPT0gSVNQQ19MTFZNXzExXzAKLSsgICAgICAg ICAgICB7bGx2bTo6ZHluX2Nhc3Q8bGx2bTo6VmVjdG9yVHlwZT4oYWRkcmVzc1R5cGUpLT5nZXRO dW1FbGVtZW50cygpLCBmYWxzZX0sCi0rI2Vsc2UKLSsgICAgICAgIGxsdm06OkVsZW1lbnRDb3Vu dDo6Z2V0KAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6ZHluX2Nhc3Q8 bGx2bTo6Rml4ZWRWZWN0b3JUeXBlPihhZGRyZXNzVHlwZS0+Z2V0TnVtRWxlbWVudHMoKSwgZmFs c2UpLAotKyNlbmRpZgotICAgICAgICAgICAgIGxsdm06OkNvbnN0YW50OjpnZXROdWxsVmFsdWUo bGx2bTo6VHlwZTo6Z2V0SW50MzJUeShJbnNlcnRCZWZvcmUtPmdldENvbnRleHQoKSkpKTsKLSsK LSAgICAgICAgIGxsdm06OlZhbHVlICp1bmRlZlNodWZmbGVWYWx1ZSA9Ci0rI2lmIElTUENfTExW TV9WRVJTSU9OID49IElTUENfTExWTV8xMV8wCi0rICAgICAgICAgICAgbGx2bTo6VW5kZWZWYWx1 ZTo6Z2V0KGxsdm06OkZpeGVkVmVjdG9yVHlwZTo6Z2V0KAotKyAgICAgICAgICAgICAgICBMTFZN VHlwZXM6OkludDY0VHlwZSwgbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6VmVjdG9yVHlwZT4oYWRkcmVz c1R5cGUpLT5nZXROdW1FbGVtZW50cygpKSk7Ci0rI2Vsc2UKLSAgICAgICAgICAgICBsbHZtOjpV bmRlZlZhbHVlOjpnZXQobGx2bTo6VmVjdG9yVHlwZTo6Z2V0KExMVk1UeXBlczo6SW50NjRUeXBl LCBhZGRyZXNzVHlwZS0+Z2V0VmVjdG9yTnVtRWxlbWVudHMoKSkpOwotKyNlbmRpZgotICAgICAg ICAgYWRkcmVzcyA9IG5ldyBsbHZtOjpTaHVmZmxlVmVjdG9ySW5zdChhZGRyZXNzLCB1bmRlZlNo dWZmbGVWYWx1ZSwgemVyb1ZlYywgInN2bV9wdHJfc3ZpIiwgSW5zZXJ0QmVmb3JlKTsKLSAKLSAg ICAgICAgIC8vIENhbGN1bGF0ZSBhZGRyZXNzCi1AQCAtNjU1Myw5ICs2NjA4LDEyIEBAIGxsdm06 Okluc3RydWN0aW9uICpGaXhBZGRyZXNzU3BhY2U6OnByb2Nlc3NWZWN0b3JMb2FkKGxsdm06Okxv YWRJbnN0ICpMSSkgewotICAgICBpZiAocmV0VHlwZS0+Z2V0U2NhbGFyVHlwZSgpLT5pc1BvaW50 ZXJUeSgpKSB7Ci0gICAgICAgICBpc1B0ckxvYWQgPSB0cnVlOwotICAgICAgICAgYXV0byBzY2Fs YXJUeXBlID0gZy0+dGFyZ2V0LT5pczMyQml0KCkgPyBMTFZNVHlwZXM6OkludDMyVHlwZSA6IExM Vk1UeXBlczo6SW50NjRUeXBlOwotKyNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1f MTFfMAotKyAgICAgICAgcmV0VHlwZSA9IGxsdm06OkZpeGVkVmVjdG9yVHlwZTo6Z2V0KHNjYWxh clR5cGUsIGxsdm06OmR5bl9jYXN0PGxsdm06OlZlY3RvclR5cGU+KHJldFR5cGUpLT5nZXROdW1F bGVtZW50cygpKTsKLSsjZWxzZQotICAgICAgICAgcmV0VHlwZSA9IGxsdm06OlZlY3RvclR5cGU6 OmdldChzY2FsYXJUeXBlLCByZXRUeXBlLT5nZXRWZWN0b3JOdW1FbGVtZW50cygpKTsKLSsjZW5k aWYKLSAgICAgfQotLQotICAgICBsbHZtOjpJbnN0cnVjdGlvbiAqcmVzID0gbEdlblhMb2FkSW5z dChwdHIsIHJldFR5cGUsIGxsdm06OmR5bl9jYXN0PGxsdm06Okluc3RydWN0aW9uPihMSSkpOwot ICAgICBBc3NlcnQocmVzKTsKLSAKLUBAIC02NTgwLDExICs2NjM4LDE2IEBAIGxsdm06Okluc3Ry dWN0aW9uICpGaXhBZGRyZXNzU3BhY2U6OnByb2Nlc3NTVk1WZWN0b3JMb2FkKGxsdm06Okluc3Ry dWN0aW9uICpDSSkKLSAgICAgcHRyID0gbmV3IGxsdm06OkludFRvUHRySW5zdChwdHIsIGxsdm06 OlBvaW50ZXJUeXBlOjpnZXQocmV0VHlwZSwgMCksIENJLT5nZXROYW1lKCkgKyAiX2ludHRvcHRy IiwgQ0kpOwotICAgICBsbHZtOjpJbnN0cnVjdGlvbiAqbG9hZEluc3QgPSBOVUxMOwotICNpZiBJ U1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1fMTFfMAotLSAgICBsb2FkSW5zdCA9IG5ldyBs bHZtOjpMb2FkSW5zdChsbHZtOjpkeW5fY2FzdDxsbHZtOjpQb2ludGVyVHlwZT4ocHRyLT5nZXRU eXBlKCkpLT5nZXRQb2ludGVyRWxlbWVudFR5cGUoKSwgbG9hZEluc3QsCi0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIENJLT5nZXROYW1lKCksIChsbHZtOjpJbnN0cnVjdGlvbiAq KU5VTEwpOwotKyAgICBsb2FkSW5zdCA9IG5ldyBsbHZtOjpMb2FkSW5zdChsbHZtOjpkeW5fY2Fz dDxsbHZtOjpQb2ludGVyVHlwZT4ocHRyLT5nZXRUeXBlKCkpLT5nZXRQb2ludGVyRWxlbWVudFR5 cGUoKSwgcHRyLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDSS0+Z2V0TmFt ZSgpLCBmYWxzZSAvKiBub3Qgdm9sYXRpbGUgKi8sCi0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGxsdm06Ok1heWJlQWxpZ24oZy0+dGFyZ2V0LT5nZXROYXRpdmVWZWN0b3JBbGln bm1lbnQoKSkudmFsdWVPck9uZSgpLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAobGx2bTo6SW5zdHJ1Y3Rpb24gKilOVUxMKTsKLSAjZWxzZQotLSAgICBsb2FkSW5zdCA9IG5l dyBsbHZtOjpMb2FkSW5zdChwdHIsIENJLT5nZXROYW1lKCksIChsbHZtOjpJbnN0cnVjdGlvbiAq KU5VTEwpOwotKyAgICBsb2FkSW5zdCA9IG5ldyBsbHZtOjpMb2FkSW5zdChwdHIsIENJLT5nZXRO YW1lKCksIGZhbHNlLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpN YXliZUFsaWduKGctPnRhcmdldC0+Z2V0TmF0aXZlVmVjdG9yQWxpZ25tZW50KCkpLnZhbHVlT3JP bmUoKSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxsdm06Okluc3RydWN0 aW9uICopTlVMTCk7Ci0gI2VuZGlmCi0rCi0gICAgIEFzc2VydChsb2FkSW5zdCk7Ci0gICAgIHJl dHVybiBsb2FkSW5zdDsKLSB9Ci1AQCAtNjYwNiw3ICs2NjY5LDExIEBAIGxsdm06Okluc3RydWN0 aW9uICpGaXhBZGRyZXNzU3BhY2U6OnByb2Nlc3NWZWN0b3JTdG9yZShsbHZtOjpTdG9yZUluc3Qg KlNJKSB7Ci0gICAgIC8vIE5vdGU6IGl0IGRvZXNuJ3QgbG9vayBsaWtlIGEgbm9ybWFsIGNhc2Ug Zm9yIEdlblggdGFyZ2V0Ci0gICAgIGlmICh2YWxUeXBlLT5nZXRTY2FsYXJUeXBlKCktPmlzUG9p bnRlclR5KCkpIHsKLSAgICAgICAgIGF1dG8gc2NhbGFyVHlwZSA9IGctPnRhcmdldC0+aXMzMkJp dCgpID8gTExWTVR5cGVzOjpJbnQzMlR5cGUgOiBMTFZNVHlwZXM6OkludDY0VHlwZTsKLSsjaWYg SVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzExXzAKLSsgICAgICAgIHZhbFR5cGUgPSBs bHZtOjpGaXhlZFZlY3RvclR5cGU6OmdldChzY2FsYXJUeXBlLCBsbHZtOjpkeW5fY2FzdDxsbHZt OjpWZWN0b3JUeXBlPih2YWxUeXBlKS0+Z2V0TnVtRWxlbWVudHMoKSk7Ci0rI2Vsc2UKLSAgICAg ICAgIHZhbFR5cGUgPSBsbHZtOjpWZWN0b3JUeXBlOjpnZXQoc2NhbGFyVHlwZSwgdmFsVHlwZS0+ Z2V0VmVjdG9yTnVtRWxlbWVudHMoKSk7Ci0rI2VuZGlmCi0gICAgICAgICB2YWwgPSBuZXcgbGx2 bTo6UHRyVG9JbnRJbnN0KHZhbCwgdmFsVHlwZSwgInN2bV9zdF92YWxfcHRydG9pbnQiLCBTSSk7 Ci0gICAgIH0KLSAKLUBAIC02NjMxLDEyICs2Njk4LDggQEAgbGx2bTo6SW5zdHJ1Y3Rpb24gKkZp eEFkZHJlc3NTcGFjZTo6cHJvY2Vzc1NWTVZlY3RvclN0b3JlKGxsdm06Okluc3RydWN0aW9uICpD SSkKLSAgICAgcHRyID0gbmV3IGxsdm06OkludFRvUHRySW5zdChwdHIsIGxsdm06OlBvaW50ZXJU eXBlOjpnZXQodmFsVHlwZSwgMCksIENJLT5nZXROYW1lKCkgKyAiX2ludHRvcHRyIiwgQ0kpOwot IAotICAgICBsbHZtOjpJbnN0cnVjdGlvbiAqc3RvcmVJbnN0ID0gTlVMTDsKLS0jaWYgSVNQQ19M TFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzExXzAKLS0gICAgbG9hZEluc3QgPSBuZXcgbGx2bTo6 U3RvcmVJbnN0KHZhbCwgbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6UG9pbnRlclR5cGU+KHB0ci0+Z2V0 VHlwZSgpKS0+Z2V0UG9pbnRlckVsZW1lbnRUeXBlKCksCi0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzdG9yZUluc3QsIENJLT5nZXROYW1lKCksIChsbHZtOjpJbnN0cnVjdGlv biAqKU5VTEwpOwotLSNlbHNlCi0tICAgIHN0b3JlSW5zdCA9IG5ldyBsbHZtOjpTdG9yZUluc3Qo dmFsLCBwdHIsIChsbHZtOjpJbnN0cnVjdGlvbiAqKU5VTEwpOwotLSNlbmRpZgotKyAgICBzdG9y ZUluc3QgPSBuZXcgbGx2bTo6U3RvcmVJbnN0KHZhbCwgcHRyLCAobGx2bTo6SW5zdHJ1Y3Rpb24g KilOVUxMLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06Ok1heWJl QWxpZ24oZy0+dGFyZ2V0LT5nZXROYXRpdmVWZWN0b3JBbGlnbm1lbnQoKSkudmFsdWVPck9uZSgp KTsKLSAgICAgQXNzZXJ0KHN0b3JlSW5zdCk7Ci0gICAgIHJldHVybiBzdG9yZUluc3Q7Ci0gfQot QEAgLTY2NDUsMTUgKzY3MDgsMTggQEAgbGx2bTo6SW5zdHJ1Y3Rpb24gKkZpeEFkZHJlc3NTcGFj ZTo6Y3JlYXRlSW50OFdyUmVnaW9uKGxsdm06OlZhbHVlICpWYWwsIGxsdm06OlYKLSAgICAgaW50 IHdpZHRoID0gZy0+dGFyZ2V0LT5nZXRWZWN0b3JXaWR0aCgpOwotIAotICAgICBsbHZtOjpWYWx1 ZSAqQXJnc1s4XTsKLS0KLSsjaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzExXzAK LSsgICAgQXJnc1swXSA9IGxsdm06OlVuZGVmVmFsdWU6OmdldChsbHZtOjpGaXhlZFZlY3RvclR5 cGU6OmdldChMTFZNVHlwZXM6OkludDhUeXBlLCB3aWR0aCAqIDQpKTsgLy8gb2xkIHZhbHVlCi0r I2Vsc2UKLSAgICAgQXJnc1swXSA9IGxsdm06OlVuZGVmVmFsdWU6OmdldChsbHZtOjpWZWN0b3JU eXBlOjpnZXQoTExWTVR5cGVzOjpJbnQ4VHlwZSwgd2lkdGggKiA0KSk7IC8vIG9sZCB2YWx1ZQot LSAgICBBcmdzWzFdID0gVmFsOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdmFsdWUgdG8gc3RvcmUKLS0g ICAgQXJnc1syXSA9IGxsdm06OkNvbnN0YW50SW50OjpnZXQoTExWTVR5cGVzOjpJbnQzMlR5cGUs IDApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHZzdHJpZGUKLS0gICAgQXJnc1sz XSA9IGxsdm06OkNvbnN0YW50SW50OjpnZXQoTExWTVR5cGVzOjpJbnQzMlR5cGUsIHdpZHRoKTsg ICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdpZHRoCi0tICAgIEFyZ3NbNF0gPSBsbHZtOjpD b25zdGFudEludDo6Z2V0KExMVk1UeXBlczo6SW50MzJUeXBlLCA0KTsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAvLyBzdHJpZGUKLS0gICAgQXJnc1s1XSA9IGxsdm06OkNvbnN0YW50SW50 OjpnZXQoTExWTVR5cGVzOjpJbnQxNlR5cGUsIDApOyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIC8vIG9mZnNldHMKLS0gICAgQXJnc1s2XSA9IGxsdm06OkNvbnN0YW50SW50OjpnZXQoTExW TVR5cGVzOjpJbnQzMlR5cGUsIDApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHBh cmVudCB3aWR0aCAoaWdub3JlZCkKLS0gICAgQXJnc1s3XSA9IE1hc2s7ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IC8vIG1hc2sKLSsjZW5kaWYKLSsgICAgQXJnc1sxXSA9IFZhbDsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdmFsdWUgdG8gc3RvcmUKLSsgICAgQXJn c1syXSA9IGxsdm06OkNvbnN0YW50SW50OjpnZXQoTExWTVR5cGVzOjpJbnQzMlR5cGUsIDApOyAg ICAgLy8gdnN0cmlkZQotKyAgICBBcmdzWzNdID0gbGx2bTo6Q29uc3RhbnRJbnQ6OmdldChMTFZN VHlwZXM6OkludDMyVHlwZSwgd2lkdGgpOyAvLyB3aWR0aAotKyAgICBBcmdzWzRdID0gbGx2bTo6 Q29uc3RhbnRJbnQ6OmdldChMTFZNVHlwZXM6OkludDMyVHlwZSwgNCk7ICAgICAvLyBzdHJpZGUK LSsgICAgQXJnc1s1XSA9IGxsdm06OkNvbnN0YW50SW50OjpnZXQoTExWTVR5cGVzOjpJbnQxNlR5 cGUsIDApOyAgICAgLy8gb2Zmc2V0cwotKyAgICBBcmdzWzZdID0gbGx2bTo6Q29uc3RhbnRJbnQ6 OmdldChMTFZNVHlwZXM6OkludDMyVHlwZSwgMCk7ICAgICAvLyBwYXJlbnQgd2lkdGggKGlnbm9y ZWQpCi0rICAgIEFyZ3NbN10gPSBNYXNrOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIC8vIG1hc2sKLSAKLSAgICAgbGx2bTo6VHlwZSAqVHlzWzRdOwotIAot QEAgLTY3MDgsNyArNjc3NCwxMiBAQCBsbHZtOjpJbnN0cnVjdGlvbiAqRml4QWRkcmVzc1NwYWNl Ojpwcm9jZXNzR2F0aGVyU2NhdHRlclByaXZhdGUobGx2bTo6Q2FsbEluc3QgKgotICAgICAgICAg cmV0dXJuIE5VTEw7Ci0gCi0gICAgIGxsdm06OlZhbHVlICphZGRyZXNzID0gY2FsY3VsYXRlR2F0 aGVyU2NhdHRlckFkZHJlc3MocHRyLCBvZmZzZXRzLCBDSSk7Ci0rI2lmIElTUENfTExWTV9WRVJT SU9OID49IElTUENfTExWTV8xMV8wCi0rICAgIGxsdm06OlR5cGUgKmk4VmVjVHlwZSA9IGxsdm06 OkZpeGVkVmVjdG9yVHlwZTo6Z2V0KExMVk1UeXBlczo6SW50OFR5cGUsIHdpZHRoICogNCk7Ci0r I2Vsc2UKLSAgICAgbGx2bTo6VHlwZSAqaThWZWNUeXBlID0gbGx2bTo6VmVjdG9yVHlwZTo6Z2V0 KExMVk1UeXBlczo6SW50OFR5cGUsIHdpZHRoICogNCk7Ci0rI2VuZGlmCi0rCi0gICAgIGJvb2wg aXNJbnQ4ID0gKHZhbHVlLT5nZXRUeXBlKCktPmdldFNjYWxhclR5cGUoKSA9PSBMTFZNVHlwZXM6 OkludDhUeXBlKTsKLSAKLSAgICAgQXNzZXJ0KGFkZHJlc3MgJiYgIkJhZCBnYXRoZXIvc2NhdHRl ciBhZGRyZXNzISIpOwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9pc3BjL3BhdGNoZXMvbGx2bTEyLTAw Ni5wYXRjaCBiL3NyY3BrZ3MvaXNwYy9wYXRjaGVzL2xsdm0xMi0wMDYucGF0Y2gKZGVsZXRlZCBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE4MjllYTQ4MzkxZS4uMDAwMDAwMDAwMDAwCi0tLSBhL3Ny Y3BrZ3MvaXNwYy9wYXRjaGVzL2xsdm0xMi0wMDYucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwx MjYgKzAsMCBAQAotRnJvbSBiYjNmNDkzZDFmYmQ0NWM3OWUxZDlkZWU2N2EwNDMwYmEzMTNlYWFk IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogQXJpbmEgTmVzaGx5YWV2YSA8YXJpbmEu bmVzaGx5YWV2YUBpbnRlbC5jb20+Ci1EYXRlOiBUdWUsIDE5IEphbiAyMDIxIDExOjA3OjMzIC0w ODAwCi1TdWJqZWN0OiBbUEFUQ0hdIEZpeGVkIGlmZGVmcyBmb3IgTExWTV8xMQotCi0tLS0KLSBz cmMvY3R4LmNwcCB8ICA2ICsrKy0tLQotIHNyYy9vcHQuY3BwIHwgMTggKysrKysrKysrLS0tLS0t LS0tCi0gMiBmaWxlcyBjaGFuZ2VkLCAxMiBpbnNlcnRpb25zKCspLCAxMiBkZWxldGlvbnMoLSkK LQotZGlmZiAtLWdpdCBhL3NyYy9jdHguY3BwIGIvc3JjL2N0eC5jcHAKLWluZGV4IDJhNzJlNjgz Ny4uNTI3YTAyZjMwIDEwMDY0NAotLS0tIGEvc3JjL2N0eC5jcHAKLSsrKyBiL3NyYy9jdHguY3Bw Ci1AQCAtMTY5MSw3ICsxNjkxLDcgQEAgbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6 OlNtZWFyVW5pZm9ybShsbHZtOjpWYWx1ZSAqdmFsdWUsIGNvbnN0IGxsdm06OlQKLSAgICAgaWYg KGxsdm06OkNvbnN0YW50ICpjb25zdF92YWwgPSBsbHZtOjpkeW5fY2FzdDxsbHZtOjpDb25zdGFu dD4odmFsdWUpKSB7Ci0gI2lmIElTUENfTExWTV9WRVJTSU9OIDwgSVNQQ19MTFZNXzExXzAKLSAg ICAgICAgIHJldCA9IGxsdm06OkNvbnN0YW50VmVjdG9yOjpnZXRTcGxhdChnLT50YXJnZXQtPmdl dFZlY3RvcldpZHRoKCksIGNvbnN0X3ZhbCk7Ci0tI2VsaWYgSVNQQ19MTFZNX1ZFUlNJT04gPT0g SVNQQ19MTFZNXzExXzAKLSsjZWxpZiBJU1BDX0xMVk1fVkVSU0lPTiA8IElTUENfTExWTV8xMl8w Ci0gICAgICAgICByZXQgPQotICAgICAgICAgICAgIGxsdm06OkNvbnN0YW50VmVjdG9yOjpnZXRT cGxhdCh7c3RhdGljX2Nhc3Q8dW5zaWduZWQgaW50PihnLT50YXJnZXQtPmdldFZlY3RvcldpZHRo KCkpLCBmYWxzZX0sIGNvbnN0X3ZhbCk7Ci0gI2Vsc2UgLy8gTExWTSAxMi4wKwotQEAgLTMxNDgs NyArMzE0OCw3IEBAIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpCcm9hZGNhc3RW YWx1ZShsbHZtOjpWYWx1ZSAqdiwgbGx2bTo6VHlwZSAqdmVjCi0gI2lmIElTUENfTExWTV9WRVJT SU9OIDwgSVNQQ19MTFZNXzExXzAKLSAgICAgbGx2bTo6Q29uc3RhbnQgKnplcm9WZWMgPSBsbHZt OjpDb25zdGFudFZlY3Rvcjo6Z2V0U3BsYXQoCi0gICAgICAgICB2ZWNUeXBlLT5nZXRWZWN0b3JO dW1FbGVtZW50cygpLCBsbHZtOjpDb25zdGFudDo6Z2V0TnVsbFZhbHVlKGxsdm06OlR5cGU6Omdl dEludDMyVHkoKmctPmN0eCkpKTsKLS0jZWxpZiBJU1BDX0xMVk1fVkVSU0lPTiA9PSBJU1BDX0xM Vk1fMTFfMAotKyNlbGlmIElTUENfTExWTV9WRVJTSU9OIDwgSVNQQ19MTFZNXzEyXzAKLSAgICAg bGx2bTo6Q29uc3RhbnQgKnplcm9WZWMgPQotICAgICAgICAgbGx2bTo6Q29uc3RhbnRWZWN0b3I6 OmdldFNwbGF0KHtzdGF0aWNfY2FzdDx1bnNpZ25lZCBpbnQ+KHR5LT5nZXROdW1FbGVtZW50cygp KSwgZmFsc2V9LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06 OkNvbnN0YW50OjpnZXROdWxsVmFsdWUobGx2bTo6VHlwZTo6Z2V0SW50MzJUeSgqZy0+Y3R4KSkp OwotQEAgLTM2ODgsNyArMzY4OCw3IEBAIGxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0 OjpHZW5YU2ltZENGUHJlZGljYXRlKGxsdm06OlZhbHVlICp2YWx1ZSwgbGx2bTo6Ci0gI2lmIElT UENfTExWTV9WRVJTSU9OIDwgSVNQQ19MTFZNXzExXzAKLSAgICAgICAgIGRlZmF1bHRzID0gbGx2 bTo6Q29uc3RhbnRWZWN0b3I6OmdldFNwbGF0KHZ0LT5nZXRWZWN0b3JOdW1FbGVtZW50cygpLAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6 Q29uc3RhbnQ6OmdldE51bGxWYWx1ZSh2dC0+Z2V0RWxlbWVudFR5cGUoKSkpOwotLSNlbGlmIElT UENfTExWTV9WRVJTSU9OID09IElTUENfTExWTV8xMV8wCi0rI2VsaWYgSVNQQ19MTFZNX1ZFUlNJ T04gPCBJU1BDX0xMVk1fMTJfMAotICAgICAgICAgZGVmYXVsdHMgPSBsbHZtOjpDb25zdGFudFZl Y3Rvcjo6Z2V0U3BsYXQoe3N0YXRpY19jYXN0PHVuc2lnbmVkIGludD4odnQtPmdldE51bUVsZW1l bnRzKCkpLCBmYWxzZX0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBsbHZtOjpDb25zdGFudDo6Z2V0TnVsbFZhbHVlKHZ0LT5nZXRFbGVtZW50VHlw ZSgpKSk7Ci0gI2Vsc2UKLWRpZmYgLS1naXQgYS9zcmMvb3B0LmNwcCBiL3NyYy9vcHQuY3BwCi1p bmRleCAxNzg5Yjg0NzYuLjNmZjE5MWEwYSAxMDA2NDQKLS0tLSBhL3NyYy9vcHQuY3BwCi0rKysg Yi9zcmMvb3B0LmNwcAotQEAgLTEwNDUsNyArMTA0NSw3IEBAIGJvb2wgSW50cmluc2ljc09wdDo6 cnVuT25CYXNpY0Jsb2NrKGxsdm06OkJhc2ljQmxvY2sgJmJiKSB7Ci0gICAgICAgICAgICAgICAg ICAgICBhbGlnbiA9IGctPnRhcmdldC0+Z2V0TmF0aXZlVmVjdG9yQWxpZ25tZW50KCk7Ci0gICAg ICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgIGFsaWduID0gY2FsbEluc3Qt PmdldENhbGxlZEZ1bmN0aW9uKCkgPT0gYXZ4TWFza2VkTG9hZDMyID8gNCA6IDg7Ci0tI2lmIElT UENfTExWTV9WRVJTSU9OID09IElTUENfTExWTV8xMF8wCi0rI2lmIElTUENfTExWTV9WRVJTSU9O IDwgSVNQQ19MTFZNXzExXzAKLSAgICAgICAgICAgICAgICAgbGx2bTo6SW5zdHJ1Y3Rpb24gKmxv YWRJbnN0ID0KLSAgICAgICAgICAgICAgICAgICAgIG5ldyBsbHZtOjpMb2FkSW5zdChjYXN0UHRy LCBsbHZtOjpUd2luZShjYWxsSW5zdC0+Z2V0QXJnT3BlcmFuZCgwKS0+Z2V0TmFtZSgpKSArICJf bG9hZCIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UgLyog bm90IHZvbGF0aWxlICovLCBsbHZtOjpNYXliZUFsaWduKGFsaWduKSwgKGxsdm06Okluc3RydWN0 aW9uICopTlVMTCk7Ci1AQCAtMTQ3Miw3ICsxNDcyLDcgQEAgc3RhdGljIGxsdm06OlZhbHVlICps R2V0QmFzZVB0ckFuZE9mZnNldHMobGx2bTo6VmFsdWUgKnB0cnMsIGxsdm06OlZhbHVlICoqb2Zm c2UKLSAgICAgICAgICAgICAgICAgICAgIGxsdm06OlZhbHVlICp6ZXJvTWFzayA9Ci0gI2lmIElT UENfTExWTV9WRVJTSU9OIDwgSVNQQ19MTFZNXzExXzAKLSAgICAgICAgICAgICAgICAgICAgICAg ICBsbHZtOjpDb25zdGFudFZlY3Rvcjo6Z2V0U3BsYXQoY3YtPmdldFR5cGUoKS0+Z2V0VmVjdG9y TnVtRWxlbWVudHMoKSwKLS0jZWxpZiBJU1BDX0xMVk1fVkVSU0lPTiA9PSBJU1BDX0xMVk1fMTFf MAotKyNlbGlmIElTUENfTExWTV9WRVJTSU9OIDwgSVNQQ19MTFZNXzEyXzAKLSAgICAgICAgICAg ICAgICAgICAgICAgICBsbHZtOjpDb25zdGFudFZlY3Rvcjo6Z2V0U3BsYXQoCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHtsbHZtOjpkeW5fY2FzdDxsbHZtOjpWZWN0b3JUeXBlPihjdi0+ Z2V0VHlwZSgpKS0+Z2V0TnVtRWxlbWVudHMoKSwgZmFsc2V9LAotICNlbHNlIC8vIExMVk0gMTIu MCsKLUBAIC0xNDk1LDcgKzE0OTUsNyBAQCBzdGF0aWMgbGx2bTo6VmFsdWUgKmxHZXRCYXNlUHRy QW5kT2Zmc2V0cyhsbHZtOjpWYWx1ZSAqcHRycywgbGx2bTo6VmFsdWUgKipvZmZzZQotICAgICAg ICAgICAgICAgICAgICAgICAgIGxsdm06OlZhbHVlICp6ZXJvTWFzayA9IGxsdm06OkNvbnN0YW50 VmVjdG9yOjpnZXRTcGxhdCgKLSAjaWYgSVNQQ19MTFZNX1ZFUlNJT04gPCBJU1BDX0xMVk1fMTFf MAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3BfdmFyX3R5cGUtPmdldFZlY3Rvck51 bUVsZW1lbnRzKCksCi0tI2VsaWYgSVNQQ19MTFZNX1ZFUlNJT04gPT0gSVNQQ19MTFZNXzExXzAK LSsjZWxpZiBJU1BDX0xMVk1fVkVSU0lPTiA8IElTUENfTExWTV8xMl8wCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHtsbHZtOjpkeW5fY2FzdDxsbHZtOjpWZWN0b3JUeXBlPihib3BfdmFy X3R5cGUpLT5nZXROdW1FbGVtZW50cygpLCBmYWxzZX0sCi0gI2Vsc2UgLy8gTExWTSAxMi4wKwot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsbHZtOjpFbGVtZW50Q291bnQ6OmdldCgKLUBA IC0yODAzLDcgKzI4MDMsNyBAQCBzdGF0aWMgYm9vbCBsR1NUb0xvYWRTdG9yZShsbHZtOjpDYWxs SW5zdCAqY2FsbEluc3QpIHsKLSAgICAgICAgICAgICBsbHZtOjpWYWx1ZSAqemVyb01hc2sgPQot ICNpZiBJU1BDX0xMVk1fVkVSU0lPTiA8IElTUENfTExWTV8xMV8wCi0gICAgICAgICAgICAgICAg IGxsdm06OkNvbnN0YW50VmVjdG9yOjpnZXRTcGxhdChjYWxsSW5zdC0+Z2V0VHlwZSgpLT5nZXRW ZWN0b3JOdW1FbGVtZW50cygpLAotLSNlbGlmIElTUENfTExWTV9WRVJTSU9OID09IElTUENfTExW TV8xMV8wCi0rI2VsaWYgSVNQQ19MTFZNX1ZFUlNJT04gPCBJU1BDX0xMVk1fMTJfMAotICAgICAg ICAgICAgICAgICBsbHZtOjpDb25zdGFudFZlY3Rvcjo6Z2V0U3BsYXQoCi0gICAgICAgICAgICAg ICAgICAgICB7bGx2bTo6ZHluX2Nhc3Q8bGx2bTo6VmVjdG9yVHlwZT4oY2FsbEluc3QtPmdldFR5 cGUoKSktPmdldE51bUVsZW1lbnRzKCksIGZhbHNlfSwKLSAKLUBAIC0zMTAwLDcgKzMxMDAsNyBA QCBzdGF0aWMgYm9vbCBsSW1wcm92ZU1hc2tlZExvYWQobGx2bTo6Q2FsbEluc3QgKmNhbGxJbnN0 LCBsbHZtOjpCYXNpY0Jsb2NrOjppdGVyYQotICAgICAgICAgewotICAgICAgICAgICAgIGxsdm06 OlR5cGUgKnB0clR5cGUgPSBsbHZtOjpQb2ludGVyVHlwZTo6Z2V0KGNhbGxJbnN0LT5nZXRUeXBl KCksIDApOwotICAgICAgICAgICAgIHB0ciA9IG5ldyBsbHZtOjpCaXRDYXN0SW5zdChwdHIsIHB0 clR5cGUsICJwdHJfY2FzdF9mb3JfbG9hZCIsIGNhbGxJbnN0KTsKLS0jaWYgSVNQQ19MTFZNX1ZF UlNJT04gPT0gSVNQQ19MTFZNXzEwXzAKLSsjaWYgSVNQQ19MTFZNX1ZFUlNJT04gPCBJU1BDX0xM Vk1fMTFfMAotICAgICAgICAgICAgIGxvYWQgPSBuZXcgbGx2bTo6TG9hZEluc3QoCi0gICAgICAg ICAgICAgICAgIHB0ciwgY2FsbEluc3QtPmdldE5hbWUoKSwgZmFsc2UgLyogbm90IHZvbGF0aWxl ICovLAotICAgICAgICAgICAgICAgICBsbHZtOjpNYXliZUFsaWduKGctPm9wdC5mb3JjZUFsaWdu ZWRNZW1vcnkgPyBnLT50YXJnZXQtPmdldE5hdGl2ZVZlY3RvckFsaWdubWVudCgpIDogaW5mby0+ YWxpZ24pCi1AQCAtMzQ1OSw3ICszNDU5LDcgQEAgbGx2bTo6VmFsdWUgKmxHRVBBbmRMb2FkKGxs dm06OlZhbHVlICpiYXNlUHRyLCBpbnQ2NF90IG9mZnNldCwgaW50IGFsaWduLCBsbHZtOjoKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgbGx2bTo6VHlwZSAqdHlwZSkgewotICAgICBsbHZtOjpW YWx1ZSAqcHRyID0gbEdFUEluc3QoYmFzZVB0ciwgTExWTUludDY0KG9mZnNldCksICJuZXdfYmFz ZSIsIGluc2VydEJlZm9yZSk7Ci0gICAgIHB0ciA9IG5ldyBsbHZtOjpCaXRDYXN0SW5zdChwdHIs IGxsdm06OlBvaW50ZXJUeXBlOjpnZXQodHlwZSwgMCksICJwdHJfY2FzdCIsIGluc2VydEJlZm9y ZSk7Ci0tI2lmIElTUENfTExWTV9WRVJTSU9OID09IElTUENfTExWTV8xMF8wCi0rI2lmIElTUENf TExWTV9WRVJTSU9OIDwgSVNQQ19MTFZNXzExXzAKLSAgICAgcmV0dXJuIG5ldyBsbHZtOjpMb2Fk SW5zdChwdHIsICJnYXRoZXJfbG9hZCIsIGZhbHNlIC8qIG5vdCB2b2xhdGlsZSAqLywgbGx2bTo6 TWF5YmVBbGlnbihhbGlnbiksIGluc2VydEJlZm9yZSk7Ci0gI2Vsc2UgLy8gTExWTSAxMS4wKwot ICAgICByZXR1cm4gbmV3IGxsdm06OkxvYWRJbnN0KGxsdm06OmR5bl9jYXN0PGxsdm06OlBvaW50 ZXJUeXBlPihwdHItPmdldFR5cGUoKSktPmdldFBvaW50ZXJFbGVtZW50VHlwZSgpLCBwdHIsCi1A QCAtNjE4Myw3ICs2MTgzLDcgQEAgYm9vbCBSZXBsYWNlTExWTUludHJpbnNpY3M6OnJ1bk9uQmFz aWNCbG9jayhsbHZtOjpCYXNpY0Jsb2NrICZiYikgewotICAgICAgICAgICAgICAgICBBcmdzLnB1 c2hfYmFjayhsbHZtOjpDb25zdGFudFZlY3Rvcjo6Z2V0U3BsYXQoCi0gI2lmIElTUENfTExWTV9W RVJTSU9OIDwgSVNQQ19MTFZNXzExXzAKLSAgICAgICAgICAgICAgICAgICAgIGctPnRhcmdldC0+ Z2V0TmF0aXZlVmVjdG9yV2lkdGgoKSwKLS0jZWxpZiBJU1BDX0xMVk1fVkVSU0lPTiA9PSBJU1BD X0xMVk1fMTFfMAotKyNlbGlmIElTUENfTExWTV9WRVJTSU9OIDwgSVNQQ19MTFZNXzEyXzAKLSAg ICAgICAgICAgICAgICAgICAgIHtzdGF0aWNfY2FzdDx1bnNpZ25lZCBpbnQ+KGctPnRhcmdldC0+ Z2V0TmF0aXZlVmVjdG9yV2lkdGgoKSksIGZhbHNlfSwKLSAjZWxzZSAvLyBMTFZNIDEyLjArCi0g ICAgICAgICAgICAgICAgICAgICBsbHZtOjpFbGVtZW50Q291bnQ6OmdldChzdGF0aWNfY2FzdDx1 bnNpZ25lZCBpbnQ+KGctPnRhcmdldC0+Z2V0TmF0aXZlVmVjdG9yV2lkdGgoKSksIGZhbHNlKSwK LUBAIC02MTk1LDcgKzYxOTUsNyBAQCBib29sIFJlcGxhY2VMTFZNSW50cmluc2ljczo6cnVuT25C YXNpY0Jsb2NrKGxsdm06OkJhc2ljQmxvY2sgJmJiKSB7Ci0gICAgICAgICAgICAgICAgIGxsdm06 OlZhbHVlICp6ZXJvTWFzayA9IGxsdm06OkNvbnN0YW50VmVjdG9yOjpnZXRTcGxhdCgKLSAjaWYg SVNQQ19MTFZNX1ZFUlNJT04gPCBJU1BDX0xMVk1fMTFfMAotICAgICAgICAgICAgICAgICAgICAg Zy0+dGFyZ2V0LT5nZXROYXRpdmVWZWN0b3JXaWR0aCgpLAotLSNlbGlmIElTUENfTExWTV9WRVJT SU9OID09IElTUENfTExWTV8xMV8wCi0rI2VsaWYgSVNQQ19MTFZNX1ZFUlNJT04gPCBJU1BDX0xM Vk1fMTJfMAotICAgICAgICAgICAgICAgICAgICAge3N0YXRpY19jYXN0PHVuc2lnbmVkIGludD4o Zy0+dGFyZ2V0LT5nZXROYXRpdmVWZWN0b3JXaWR0aCgpKSwgZmFsc2V9LAotICNlbHNlIC8vIExM Vk0gMTIuMCsKLSAgICAgICAgICAgICAgICAgICAgIGxsdm06OkVsZW1lbnRDb3VudDo6Z2V0KHN0 YXRpY19jYXN0PHVuc2lnbmVkIGludD4oZy0+dGFyZ2V0LT5nZXROYXRpdmVWZWN0b3JXaWR0aCgp KSwgZmFsc2UpLAotQEAgLTY1NjcsNyArNjU2Nyw3IEBAIGxsdm06OlZhbHVlICpGaXhBZGRyZXNz U3BhY2U6OmNhbGN1bGF0ZUdhdGhlclNjYXR0ZXJBZGRyZXNzKGxsdm06OlZhbHVlICpQdHIsIGxs Ci0gICAgICAgICBsbHZtOjpDb25zdGFudCAqemVyb1ZlYyA9IGxsdm06OkNvbnN0YW50VmVjdG9y OjpnZXRTcGxhdCgKLSAjaWYgSVNQQ19MTFZNX1ZFUlNJT04gPCBJU1BDX0xMVk1fMTFfMAotICAg ICAgICAgICAgIGFkZHJlc3NUeXBlLT5nZXRWZWN0b3JOdW1FbGVtZW50cygpLAotLSNlbGlmIElT UENfTExWTV9WRVJTSU9OID09IElTUENfTExWTV8xMV8wCi0rI2VsaWYgSVNQQ19MTFZNX1ZFUlNJ T04gPCBJU1BDX0xMVk1fMTJfMAotICAgICAgICAgICAgIHtsbHZtOjpkeW5fY2FzdDxsbHZtOjpW ZWN0b3JUeXBlPihhZGRyZXNzVHlwZSktPmdldE51bUVsZW1lbnRzKCksIGZhbHNlfSwKLSAjZWxz ZQotICAgICAgICAgbGx2bTo6RWxlbWVudENvdW50OjpnZXQoCmRpZmYgLS1naXQgYS9zcmNwa2dz L2lzcGMvcGF0Y2hlcy9sbHZtMTItMDA3LnBhdGNoIGIvc3JjcGtncy9pc3BjL3BhdGNoZXMvbGx2 bTEyLTAwNy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWI5NzVmODk2Yzdl Li4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9pc3BjL3BhdGNoZXMvbGx2bTEyLTAwNy5wYXRj aAorKysgL2Rldi9udWxsCkBAIC0xLDE2MCArMCwwIEBACi1Gcm9tIDYyZjVhNmMzN2JmMjZmYzI1 YTdjZjgxODY4MDUyZDM0NzI4NzQ2MTAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBB cmluYSBOZXNobHlhZXZhIDxhcmluYS5uZXNobHlhZXZhQGludGVsLmNvbT4KLURhdGU6IFR1ZSwg MjMgTWFyIDIwMjEgMjM6MDc6MzAgLTA3MDAKLVN1YmplY3Q6IFtQQVRDSF0gRG8gbm90IGdlbmVy YXRlIGZ1bmN0aW9uIG1hc2sgd2hlbiBpdCBpcyBub3QgcmVxdWlyZWQKLQotLS0tCi0gc3JjL2N0 eC5jcHAgICAgICAgICAgICAgICAgICAgIHwgMzkgKysrKysrKysrKysrKystLS0tLS0tCi0gdGVz dHMvbGl0LXRlc3RzL2Z1bGxfbWFzay5pc3BjIHwgNjMgKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKwotIDIgZmlsZXMgY2hhbmdlZCwgOTAgaW5zZXJ0aW9ucygrKSwgMTIgZGVsZXRp b25zKC0pCi0gY3JlYXRlIG1vZGUgMTAwNjQ0IHRlc3RzL2xpdC10ZXN0cy9mdWxsX21hc2suaXNw YwotCi1kaWZmIC0tZ2l0IGEvc3JjL2N0eC5jcHAgYi9zcmMvY3R4LmNwcAotaW5kZXggNTI3YTAy ZjMwLi45ZTc3NWZjNWMgMTAwNjQ0Ci0tLS0gYS9zcmMvY3R4LmNwcAotKysrIGIvc3JjL2N0eC5j cHAKLUBAIC0yMzEsMTAgKzIzMSwxOCBAQCBGdW5jdGlvbkVtaXRDb250ZXh0OjpGdW5jdGlvbkVt aXRDb250ZXh0KEZ1bmN0aW9uICpmdW5jLCBTeW1ib2wgKmZ1blN5bSwgbGx2bTo6RgotICAgICBp bnRlcm5hbE1hc2tQb2ludGVyID0gQWxsb2NhSW5zdChMTFZNVHlwZXM6Ok1hc2tUeXBlLCAiaW50 ZXJuYWxfbWFza19tZW1vcnkiKTsKLSAgICAgU3RvcmVJbnN0KExMVk1NYXNrQWxsT24sIGludGVy bmFsTWFza1BvaW50ZXIpOwotIAotLSAgICBmdW5jdGlvbk1hc2tWYWx1ZSA9IExMVk1NYXNrQWxs T247Ci0tCi0tICAgIGZ1bGxNYXNrUG9pbnRlciA9IEFsbG9jYUluc3QoTExWTVR5cGVzOjpNYXNr VHlwZSwgImZ1bGxfbWFza19tZW1vcnkiKTsKLS0gICAgU3RvcmVJbnN0KExMVk1NYXNrQWxsT24s IGZ1bGxNYXNrUG9pbnRlcik7Ci0rICAgIC8vIElmIHRoZSBmdW5jdGlvbiBkb2Vzbid0IGhhdmUg X19tYXNrIGluIHBhcmFtZXRlcnMsIHRoZXJlIGlzIG5vIG5lZWQgdG8KLSsgICAgLy8gaGF2ZSBm dW5jdGlvbiBtYXNrCi0rICAgIGlmICgoZnVuYy0+R2V0VHlwZSgpLT5pc0V4cG9ydGVkICYmCi0r ICAgICAgICAgKGxmLT5nZXRGdW5jdGlvblR5cGUoKS0+Z2V0TnVtUGFyYW1zKCkgPT0gZnVuYy0+ R2V0VHlwZSgpLT5HZXROdW1QYXJhbWV0ZXJzKCkpKSB8fAotKyAgICAgICAgKGZ1bmMtPkdldFR5 cGUoKS0+aXNVbm1hc2tlZCkgfHwgKGZ1bmMtPkdldFR5cGUoKS0+aXNUYXNrKSkgewotKyAgICAg ICAgZnVuY3Rpb25NYXNrVmFsdWUgPSBOVUxMOwotKyAgICAgICAgZnVsbE1hc2tQb2ludGVyID0g TlVMTDsKLSsgICAgfSBlbHNlIHsKLSsgICAgICAgIGZ1bmN0aW9uTWFza1ZhbHVlID0gTExWTU1h c2tBbGxPbjsKLSsgICAgICAgIGZ1bGxNYXNrUG9pbnRlciA9IEFsbG9jYUluc3QoTExWTVR5cGVz OjpNYXNrVHlwZSwgImZ1bGxfbWFza19tZW1vcnkiKTsKLSsgICAgICAgIFN0b3JlSW5zdChMTFZN TWFza0FsbE9uLCBmdWxsTWFza1BvaW50ZXIpOwotKyAgICB9Ci0gCi0gICAgIGJsb2NrRW50cnlN YXNrID0gTlVMTDsKLSAgICAgYnJlYWtMYW5lc1B0ciA9IGNvbnRpbnVlTGFuZXNQdHIgPSBOVUxM OwotQEAgLTM4OSwyMCArMzk3LDI2IEBAIGxsdm06OkJhc2ljQmxvY2sgKkZ1bmN0aW9uRW1pdENv bnRleHQ6OkdldEN1cnJlbnRCYXNpY0Jsb2NrKCkgeyByZXR1cm4gYmJsb2NrOyB9Ci0gCi0gdm9p ZCBGdW5jdGlvbkVtaXRDb250ZXh0OjpTZXRDdXJyZW50QmFzaWNCbG9jayhsbHZtOjpCYXNpY0Js b2NrICpiYikgeyBiYmxvY2sgPSBiYjsgfQotIAotLWxsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRD b250ZXh0OjpHZXRGdW5jdGlvbk1hc2soKSB7IHJldHVybiBmdW5jdGlvbk1hc2tWYWx1ZTsgfQot K2xsdm06OlZhbHVlICpGdW5jdGlvbkVtaXRDb250ZXh0OjpHZXRGdW5jdGlvbk1hc2soKSB7IHJl dHVybiBmdWxsTWFza1BvaW50ZXIgPyBmdW5jdGlvbk1hc2tWYWx1ZSA6IExMVk1NYXNrQWxsT247 IH0KLSAKLSBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6R2V0SW50ZXJuYWxNYXNr KCkgeyByZXR1cm4gTG9hZEluc3QoaW50ZXJuYWxNYXNrUG9pbnRlciwgTlVMTCwgImxvYWRfbWFz ayIpOyB9Ci0gCi0gbGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkdldEZ1bGxNYXNr KCkgewotLSAgICByZXR1cm4gQmluYXJ5T3BlcmF0b3IobGx2bTo6SW5zdHJ1Y3Rpb246OkFuZCwg R2V0SW50ZXJuYWxNYXNrKCksIGZ1bmN0aW9uTWFza1ZhbHVlLCAiaW50ZXJuYWxfbWFzayZmdW5j dGlvbl9tYXNrIik7Ci0rICAgIHJldHVybiBmdWxsTWFza1BvaW50ZXIgPyBCaW5hcnlPcGVyYXRv cihsbHZtOjpJbnN0cnVjdGlvbjo6QW5kLCBHZXRJbnRlcm5hbE1hc2soKSwgZnVuY3Rpb25NYXNr VmFsdWUsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaW50 ZXJuYWxfbWFzayZmdW5jdGlvbl9tYXNrIikKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICA6 IEdldEludGVybmFsTWFzaygpOwotIH0KLSAKLS1sbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29u dGV4dDo6R2V0RnVsbE1hc2tQb2ludGVyKCkgeyByZXR1cm4gZnVsbE1hc2tQb2ludGVyOyB9Ci0r bGx2bTo6VmFsdWUgKkZ1bmN0aW9uRW1pdENvbnRleHQ6OkdldEZ1bGxNYXNrUG9pbnRlcigpIHsK LSsgICAgcmV0dXJuIGZ1bGxNYXNrUG9pbnRlciA/IGZ1bGxNYXNrUG9pbnRlciA6IGludGVybmFs TWFza1BvaW50ZXI7Ci0rfQotIAotIHZvaWQgRnVuY3Rpb25FbWl0Q29udGV4dDo6U2V0RnVuY3Rp b25NYXNrKGxsdm06OlZhbHVlICp2YWx1ZSkgewotLSAgICBmdW5jdGlvbk1hc2tWYWx1ZSA9IHZh bHVlOwotLSAgICBpZiAoYmJsb2NrICE9IE5VTEwpCi0tICAgICAgICBTdG9yZUluc3QoR2V0RnVs bE1hc2soKSwgZnVsbE1hc2tQb2ludGVyKTsKLSsgICAgaWYgKGZ1bGxNYXNrUG9pbnRlciAhPSBO VUxMKSB7Ci0rICAgICAgICBmdW5jdGlvbk1hc2tWYWx1ZSA9IHZhbHVlOwotKyAgICAgICAgaWYg KGJibG9jayAhPSBOVUxMKQotKyAgICAgICAgICAgIFN0b3JlSW5zdChHZXRGdWxsTWFzaygpLCBm dWxsTWFza1BvaW50ZXIpOwotKyAgICB9Ci0gfQotIAotIHZvaWQgRnVuY3Rpb25FbWl0Q29udGV4 dDo6U2V0QmxvY2tFbnRyeU1hc2sobGx2bTo6VmFsdWUgKnZhbHVlKSB7IGJsb2NrRW50cnlNYXNr ID0gdmFsdWU7IH0KLUBAIC00MTAsNyArNDI0LDggQEAgdm9pZCBGdW5jdGlvbkVtaXRDb250ZXh0 OjpTZXRCbG9ja0VudHJ5TWFzayhsbHZtOjpWYWx1ZSAqdmFsdWUpIHsgYmxvY2tFbnRyeU1hc2sK LSB2b2lkIEZ1bmN0aW9uRW1pdENvbnRleHQ6OlNldEludGVybmFsTWFzayhsbHZtOjpWYWx1ZSAq dmFsdWUpIHsKLSAgICAgU3RvcmVJbnN0KHZhbHVlLCBpbnRlcm5hbE1hc2tQb2ludGVyKTsKLSAg ICAgLy8ga2x1ZGdlIHNvIHRoYXQgX19tYXNrIHJldHVybnMgdGhlIHJpZ2h0IHZhbHVlIGluIGlz cGMgY29kZS4KLS0gICAgU3RvcmVJbnN0KEdldEZ1bGxNYXNrKCksIGZ1bGxNYXNrUG9pbnRlcik7 Ci0rICAgIGlmIChmdWxsTWFza1BvaW50ZXIpCi0rICAgICAgICBTdG9yZUluc3QoR2V0RnVsbE1h c2soKSwgZnVsbE1hc2tQb2ludGVyKTsKLSB9Ci0gCi0gdm9pZCBGdW5jdGlvbkVtaXRDb250ZXh0 OjpTZXRJbnRlcm5hbE1hc2tBbmQobGx2bTo6VmFsdWUgKm9sZE1hc2ssIGxsdm06OlZhbHVlICp0 ZXN0KSB7Ci1AQCAtMTI2NSw3ICsxMjgwLDcgQEAgdm9pZCBGdW5jdGlvbkVtaXRDb250ZXh0OjpD dXJyZW50TGFuZXNSZXR1cm5lZChFeHByICpleHByLCBib29sIGRvQ29oZXJlbmNlQ2hlY2sKLSAg ICAgICAgIC8vIGxhbmVzIGhhdmUgcmV0dXJuZWQKLSAgICAgICAgIGlmIChkb0NvaGVyZW5jZUNo ZWNrKSB7Ci0gICAgICAgICAgICAgLy8gaWYgbmV3UmV0dXJuZWRMYW5lcyA9PSBmdW5jdGlvbk1h c2tWYWx1ZSwgZ2V0IG91dCBvZiBoZXJlIQotLSAgICAgICAgICAgIGxsdm06OlZhbHVlICpjbXAg PSBNYXNrc0FsbEVxdWFsKGZ1bmN0aW9uTWFza1ZhbHVlLCBuZXdSZXR1cm5lZExhbmVzKTsKLSsg ICAgICAgICAgICBsbHZtOjpWYWx1ZSAqY21wID0gTWFza3NBbGxFcXVhbChHZXRGdW5jdGlvbk1h c2soKSwgbmV3UmV0dXJuZWRMYW5lcyk7Ci0gICAgICAgICAgICAgbGx2bTo6QmFzaWNCbG9jayAq YkRvUmV0dXJuID0gQ3JlYXRlQmFzaWNCbG9jaygiZG9fcmV0dXJuIik7Ci0gICAgICAgICAgICAg bGx2bTo6QmFzaWNCbG9jayAqYk5vUmV0dXJuID0gQ3JlYXRlQmFzaWNCbG9jaygibm9fcmV0dXJu Iik7Ci0gICAgICAgICAgICAgQnJhbmNoSW5zdChiRG9SZXR1cm4sIGJOb1JldHVybiwgY21wKTsK LWRpZmYgLS1naXQgYS90ZXN0cy9saXQtdGVzdHMvZnVsbF9tYXNrLmlzcGMgYi90ZXN0cy9saXQt dGVzdHMvZnVsbF9tYXNrLmlzcGMKLW5ldyBmaWxlIG1vZGUgMTAwNjQ0Ci1pbmRleCAwMDAwMDAw MDAuLmFjMGIwYmNhMwotLS0tIC9kZXYvbnVsbAotKysrIGIvdGVzdHMvbGl0LXRlc3RzL2Z1bGxf bWFzay5pc3BjCi1AQCAtMCwwICsxLDYzIEBACi0rLy8gUlVOOiAle2lzcGN9ICVzIC1ESVNQQ19F WFBPUlQgLS1lbWl0LWxsdm0tdGV4dCAtTzAgLS1ub3dyYXAgLW8gJXQubGwKLSsvLyBSVU46IEZp bGVDaGVjayAtLWlucHV0LWZpbGU9JXQubGwgLWNoZWNrLXByZWZpeD1DSEVDS19JU1BDX0VYUE9S VCAlcwotKwotKy8vIFJVTjogJXtpc3BjfSAlcyAtRElTUENfVU5NQVNLRUQgLS1lbWl0LWxsdm0t dGV4dCAtTzAgLS1ub3dyYXAgLW8gJXQubGwKLSsvLyBSVU46IEZpbGVDaGVjayAtLWlucHV0LWZp bGU9JXQubGwgLWNoZWNrLXByZWZpeD1DSEVDS19JU1BDX1VOTUFTS0VEICVzCi0rCi0rLy8gUlVO OiAle2lzcGN9ICVzIC1ESVNQQ19OT1FVQUxJRiAtLWVtaXQtbGx2bS10ZXh0IC1PMCAtLW5vd3Jh cCAtbyAldC5sbAotKy8vIFJVTjogRmlsZUNoZWNrIC0taW5wdXQtZmlsZT0ldC5sbCAtY2hlY2st cHJlZml4PUNIRUNLX0lTUENfTk9RVUFMSUYgJXMKLSsKLSsvLyBSVU46ICV7aXNwY30gJXMgLURJ U1BDX1RBU0sgLS1lbWl0LWxsdm0tdGV4dCAtTzAgLS1ub3dyYXAgLW8gJXQubGwKLSsvLyBSVU46 IEZpbGVDaGVjayAtLWlucHV0LWZpbGU9JXQubGwgLWNoZWNrLXByZWZpeD1DSEVDS19JU1BDX1RB U0sgJXMKLSsKLStzdHJ1Y3QgUGFyYW1ldGVycyB7Ci0rICAgIGZsb2F0ICp2b3V0OwotKyAgICBp bnQgcGFyYW07Ci0rfTsKLSsKLSsjaWZkZWYgSVNQQ19FWFBPUlQKLSsvLyBDSEVDS19JU1BDX0VY UE9SVDogZGVmaW5lIHZvaWQgQHNpbXBsZV9leHBvcnRfX18KLSsvLyBDSEVDS19JU1BDX0VYUE9S VDogJWZ1bGxfbWFza19tZW1vcnkgPSBhbGxvY2EKLSsvLyBDSEVDS19JU1BDX0VYUE9SVDogZGVm aW5lIHZvaWQgQHNpbXBsZV9leHBvcnQoCi0rLy8gQ0hFQ0tfSVNQQ19FWFBPUlQtTk9UOiAlZnVs bF9tYXNrX21lbW9yeSA9IGFsbG9jYQotK2V4cG9ydCB2b2lkIHNpbXBsZV9leHBvcnQodm9pZCAq dW5pZm9ybSBfcCkgewotKyAgICBQYXJhbWV0ZXJzICp1bmlmb3JtIHAgPSAoUGFyYW1ldGVycyAq IHVuaWZvcm0pIF9wOwotKyAgICBpZiAocHJvZ3JhbUluZGV4ID4gcC0+cGFyYW0pCi0rICAgICAg ICBwLT52b3V0W3Byb2dyYW1JbmRleF0gPSBwcm9ncmFtQ291bnQgKiBwcm9ncmFtSW5kZXg7Ci0r fQotKyNlbmRpZgotKyNpZmRlZiBJU1BDX1VOTUFTS0VECi0rLy8gQ0hFQ0tfSVNQQ19VTk1BU0tF RDogZGVmaW5lIHZvaWQgQHNpbXBsZV91bm1hc2tlZAotKy8vIENIRUNLX0lTUENfVU5NQVNLRUQt Tk9UOiAlZnVsbF9tYXNrX21lbW9yeSA9IGFsbG9jYQotK3VubWFza2VkIHZvaWQgc2ltcGxlX3Vu bWFza2VkKHZvaWQgKnVuaWZvcm0gX3ApIHsKLSsgICAgUGFyYW1ldGVycyAqdW5pZm9ybSBwID0g KFBhcmFtZXRlcnMgKiB1bmlmb3JtKSBfcDsKLSsgICAgaWYgKHByb2dyYW1JbmRleCA+IHAtPnBh cmFtKQotKyAgICAgICAgcC0+dm91dFtwcm9ncmFtSW5kZXhdID0gcHJvZ3JhbUNvdW50ICogcHJv Z3JhbUluZGV4OwotK30KLSsjZW5kaWYKLSsjaWZkZWYgSVNQQ19OT1FVQUxJRgotKy8vIENIRUNL X0lTUENfTk9RVUFMSUY6IGRlZmluZSB2b2lkIEBzaW1wbGUKLSsvLyBDSEVDS19JU1BDX05PUVVB TElGOiAlZnVsbF9tYXNrX21lbW9yeSA9IGFsbG9jYQotK3ZvaWQgc2ltcGxlKHZvaWQgKnVuaWZv cm0gX3ApIHsKLSsgICAgUGFyYW1ldGVycyAqdW5pZm9ybSBwID0gKFBhcmFtZXRlcnMgKiB1bmlm b3JtKSBfcDsKLSsgICAgaWYgKHByb2dyYW1JbmRleCA+IHAtPnBhcmFtKQotKyAgICAgICAgcC0+ dm91dFtwcm9ncmFtSW5kZXhdID0gcHJvZ3JhbUNvdW50ICogcHJvZ3JhbUluZGV4OwotK30KLSsj ZW5kaWYKLSsjaWZkZWYgSVNQQ19UQVNLCi0rCi0rLy8gQ0hFQ0tfSVNQQ19UQVNLOiBkZWZpbmUg dm9pZCBAc2ltcGxlX3Rhc2sKLSsvLyBDSEVDS19JU1BDX1RBU0stTk9UOiAlZnVsbF9tYXNrX21l bW9yeSA9IGFsbG9jYQotKy8vIENIRUNLX0lTUENfVEFTSzogZGVmaW5lIHZvaWQgQHNpbXBsZV9l bnRyeV9wb2ludF9fCi0rLy8gQ0hFQ0tfSVNQQ19UQVNLOiAlZnVsbF9tYXNrX21lbW9yeSA9IGFs bG9jYQotKy8vIENIRUNLX0lTUENfVEFTSzogZGVmaW5lIHZvaWQgQHNpbXBsZV9lbnRyeV9wb2lu dCgKLSsvLyBDSEVDS19JU1BDX1RBU0stTk9UOiAlZnVsbF9tYXNrX21lbW9yeSA9IGFsbG9jYQot K3Rhc2sgdm9pZCBzaW1wbGVfdGFzayh2b2lkICp1bmlmb3JtIF9wKSB7Ci0rICAgIFBhcmFtZXRl cnMgKnVuaWZvcm0gcCA9IChQYXJhbWV0ZXJzICogdW5pZm9ybSkgX3A7Ci0rICAgIGlmIChwcm9n cmFtSW5kZXggPiBwLT5wYXJhbSkKLSsgICAgICAgIHAtPnZvdXRbcHJvZ3JhbUluZGV4XSA9IHBy b2dyYW1Db3VudCAqIHByb2dyYW1JbmRleDsKLSt9Ci0rZXhwb3J0IHZvaWQgc2ltcGxlX2VudHJ5 X3BvaW50KHZvaWQgKnVuaWZvcm0gcGFyYW1ldGVycywgdW5pZm9ybSBpbnQgZGltMCwgdW5pZm9y bSBpbnQgZGltMSwgdW5pZm9ybSBpbnQgZGltMikgewotKyAgICBsYXVuY2hbZGltMCwgZGltMSwg ZGltMl0gc2ltcGxlX3Rhc2socGFyYW1ldGVycyk7Ci0rfQotKyNlbmRpZgotXCBObyBuZXdsaW5l IGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmNwa2dzL2lzcGMvcGF0Y2hlcy9sbHZtMTIt MDA4LnBhdGNoIGIvc3JjcGtncy9pc3BjL3BhdGNoZXMvbGx2bTEyLTAwOC5wYXRjaApkZWxldGVk IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzg0MTNkOGI3ODg3Li4wMDAwMDAwMDAwMDAKLS0tIGEv c3JjcGtncy9pc3BjL3BhdGNoZXMvbGx2bTEyLTAwOC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0x LDE0OSArMCwwIEBACi1Gcm9tIGFmYWQxNDIyN2Q5MjA0YTNjOGE2MjZjYTYwOGY1YjQzYzMyMThm ZTkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBBcmluYSBOZXNobHlhZXZhIDxhcmlu YS5uZXNobHlhZXZhQGludGVsLmNvbT4KLURhdGU6IFR1ZSwgNCBNYXkgMjAyMSAxMTo0Mzo1MiAt MDcwMAotU3ViamVjdDogW1BBVENIXSBGaXhlZCBJU1BDIGdlbiBidWlsZCBmb3IgTExWTTEyCi0K LS0tLQotIHNyYy9jdHguY3BwIHwgIDQgKysrKwotIHNyYy9vcHQuY3BwIHwgNDMgKysrKysrKysr KysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLQotIDIgZmlsZXMgY2hhbmdlZCwgMzMg aW5zZXJ0aW9ucygrKSwgMTQgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9zcmMvY3R4LmNw cCBiL3NyYy9jdHguY3BwCi1pbmRleCAwYzcwNTA1OTEuLmY3ZGMwNjkzOSAxMDA2NDQKLS0tLSBh L3NyYy9jdHguY3BwCi0rKysgYi9zcmMvY3R4LmNwcAotQEAgLTM3MzgsNyArMzczOCwxMSBAQCBs bHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6R2VuWFNpbWRDRkFueShsbHZtOjpWYWx1 ZSAqdmFsdWUpIHsKLSAKLSBsbHZtOjpWYWx1ZSAqRnVuY3Rpb25FbWl0Q29udGV4dDo6R2VuWFNp bWRDRlByZWRpY2F0ZShsbHZtOjpWYWx1ZSAqdmFsdWUsIGxsdm06OlZhbHVlICpkZWZhdWx0cykg ewotICAgICBBc3NlcnRQb3MoY3VycmVudFBvcywgbGx2bTo6aXNhPGxsdm06OlZlY3RvclR5cGU+ KHZhbHVlLT5nZXRUeXBlKCkpKTsKLSsjaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZN XzExXzAKLSsgICAgbGx2bTo6Rml4ZWRWZWN0b3JUeXBlICp2dCA9IGxsdm06OmR5bl9jYXN0PGxs dm06OkZpeGVkVmVjdG9yVHlwZT4odmFsdWUtPmdldFR5cGUoKSk7Ci0rI2Vsc2UKLSAgICAgbGx2 bTo6VmVjdG9yVHlwZSAqdnQgPSBsbHZtOjpkeW5fY2FzdDxsbHZtOjpWZWN0b3JUeXBlPih2YWx1 ZS0+Z2V0VHlwZSgpKTsKLSsjZW5kaWYKLSAgICAgaWYgKGRlZmF1bHRzID09IE5VTEwpIHsKLSAj aWYgSVNQQ19MTFZNX1ZFUlNJT04gPCBJU1BDX0xMVk1fMTFfMAotICAgICAgICAgZGVmYXVsdHMg PSBsbHZtOjpDb25zdGFudFZlY3Rvcjo6Z2V0U3BsYXQodnQtPmdldFZlY3Rvck51bUVsZW1lbnRz KCksCi1kaWZmIC0tZ2l0IGEvc3JjL29wdC5jcHAgYi9zcmMvb3B0LmNwcAotaW5kZXggY2VhNGFm YTIzLi40ZTMzZDZiMWEgMTAwNjQ0Ci0tLS0gYS9zcmMvb3B0LmNwcAotKysrIGIvc3JjL29wdC5j cHAKLUBAIC0yOTE2LDkgKzI5MTYsMTMgQEAgc3RhdGljIGxsdm06OkZ1bmN0aW9uICpsR2VuWE1h c2tlZEludDhJbnN0KGxsdm06Okluc3RydWN0aW9uICppbnN0LCBib29sIGlzU3RvcmUKLSAKLSBz dGF0aWMgbGx2bTo6Q2FsbEluc3QgKmxHZW5YU3RvcmVJbnN0KGxsdm06OlZhbHVlICp2YWwsIGxs dm06OlZhbHVlICpwdHIsIGxsdm06Okluc3RydWN0aW9uICppbnN0KSB7Ci0gICAgIEFzc2VydChn LT50YXJnZXQtPmlzR2VuWFRhcmdldCgpKTsKLSsjaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQ Q19MTFZNXzExXzAKLSsgICAgQXNzZXJ0KGxsdm06OmlzYTxsbHZtOjpGaXhlZFZlY3RvclR5cGU+ KHZhbC0+Z2V0VHlwZSgpKSk7Ci0rICAgIGxsdm06OkZpeGVkVmVjdG9yVHlwZSAqdmFsVmVjVHlw ZSA9IGxsdm06OmR5bl9jYXN0PGxsdm06OkZpeGVkVmVjdG9yVHlwZT4odmFsLT5nZXRUeXBlKCkp OwotKyNlbHNlCi0gICAgIEFzc2VydChsbHZtOjppc2E8bGx2bTo6VmVjdG9yVHlwZT4odmFsLT5n ZXRUeXBlKCkpKTsKLS0KLSAgICAgbGx2bTo6VmVjdG9yVHlwZSAqdmFsVmVjVHlwZSA9IGxsdm06 OmR5bl9jYXN0PGxsdm06OlZlY3RvclR5cGU+KHZhbC0+Z2V0VHlwZSgpKTsKLSsjZW5kaWYKLSAg ICAgQXNzZXJ0KGxsdm06OmlzUG93ZXJPZjJfMzIodmFsVmVjVHlwZS0+Z2V0TnVtRWxlbWVudHMo KSkpOwotICAgICBBc3NlcnQodmFsVmVjVHlwZS0+Z2V0UHJpbWl0aXZlU2l6ZUluQml0cygpIC8g OCA8PSA4ICogT1dPUkQpOwotIAotQEAgLTI5NDIsOSArMjk0NiwxMyBAQCBzdGF0aWMgbGx2bTo6 Q2FsbEluc3QgKmxHZW5YU3RvcmVJbnN0KGxsdm06OlZhbHVlICp2YWwsIGxsdm06OlZhbHVlICpw dHIsIGxsdm06OgotIH0KLSAKLSBzdGF0aWMgbGx2bTo6Q2FsbEluc3QgKmxHZW5YTG9hZEluc3Qo bGx2bTo6VmFsdWUgKnB0ciwgbGx2bTo6VHlwZSAqcmV0VHlwZSwgbGx2bTo6SW5zdHJ1Y3Rpb24g Kmluc3QpIHsKLSsjaWYgSVNQQ19MTFZNX1ZFUlNJT04gPj0gSVNQQ19MTFZNXzExXzAKLSsgICAg QXNzZXJ0KGxsdm06OmlzYTxsbHZtOjpGaXhlZFZlY3RvclR5cGU+KHJldFR5cGUpKTsKLSsgICAg bGx2bTo6Rml4ZWRWZWN0b3JUeXBlICpyZXRWZWNUeXBlID0gbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6 Rml4ZWRWZWN0b3JUeXBlPihyZXRUeXBlKTsKLSsjZWxzZQotICAgICBBc3NlcnQobGx2bTo6aXNh PGxsdm06OlZlY3RvclR5cGU+KHJldFR5cGUpKTsKLS0KLSAgICAgbGx2bTo6VmVjdG9yVHlwZSAq cmV0VmVjVHlwZSA9IGxsdm06OmR5bl9jYXN0PGxsdm06OlZlY3RvclR5cGU+KHJldFR5cGUpOwot KyNlbmRpZgotICAgICBBc3NlcnQobGx2bTo6aXNQb3dlck9mMl8zMihyZXRWZWNUeXBlLT5nZXRO dW1FbGVtZW50cygpKSk7Ci0gICAgIEFzc2VydChyZXRWZWNUeXBlLT5nZXRQcmltaXRpdmVTaXpl SW5CaXRzKCkpOwotICAgICBBc3NlcnQocmV0VmVjVHlwZS0+Z2V0UHJpbWl0aXZlU2l6ZUluQml0 cygpIC8gOCA8PSA4ICogT1dPUkQpOwotQEAgLTU0ODUsOCArNTQ5MywxMyBAQCBzdGF0aWMgdm9p ZCBsQ3JlYXRlQmxvY2tMRFVzZShsbHZtOjpJbnN0cnVjdGlvbiAqY3Vyckluc3QsIHN0ZDo6dmVj dG9yPGxsdm06OkV4dAotICAgICAgICAgfSBlbHNlIGlmIChhdXRvIGdhdGhlciA9IGxHZXRQc2V1 ZG9HYXRoZXIobGx2bTo6ZHluX2Nhc3Q8bGx2bTo6SW5zdHJ1Y3Rpb24+KHVpLT5nZXRVc2VyKCkp KSkgewotICAgICAgICAgICAgIC8vIENvbGxlY3QgaWR4cyBmcm9tIGdhdGhlciBhbmQgZml4IHVz ZXJzCi0gICAgICAgICAgICAgbGx2bTo6VmFsdWUgKnJlcyA9IGxsdm06OlVuZGVmVmFsdWU6Omdl dChnYXRoZXItPmdldFR5cGUoKSk7Ci0tICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMCwg ZW5kID0gbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6VmVjdG9yVHlwZT4ocmVzLT5nZXRUeXBlKCkpLT5n ZXROdW1FbGVtZW50cygpOyBpIDwgZW5kOwotLSAgICAgICAgICAgICAgICAgKytpKSB7Ci0rI2lm IElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMV8wCi0rICAgICAgICAgICAgZm9yICh1 bnNpZ25lZCBpID0gMCwgZW5kID0gbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6Rml4ZWRWZWN0b3JUeXBl PihyZXMtPmdldFR5cGUoKSktPmdldE51bUVsZW1lbnRzKCk7IGkgPCBlbmQ7Ci0rICAgICAgICAg ICAgICAgICArK2kpCi0rI2Vsc2UKLSsgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwLCBl bmQgPSBsbHZtOjpkeW5fY2FzdDxsbHZtOjpWZWN0b3JUeXBlPihyZXMtPmdldFR5cGUoKSktPmdl dE51bUVsZW1lbnRzKCk7IGkgPCBlbmQ7ICsraSkKLSsjZW5kaWYKLSsgICAgICAgICAgICB7Ci0g ICAgICAgICAgICAgICAgIC8vIEdldCBlbGVtZW50IHZpYSBJRUkKLSAgICAgICAgICAgICAgICAg cmVzID0gbGx2bTo6SW5zZXJ0RWxlbWVudEluc3Q6OkNyZWF0ZShyZXMsIEVFSXNbcHRyVXNlLmlk eHNbY3Vycl9pZHgrK11dLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGxsdm06OkNvbnN0YW50SW50OjpnZXQoTExWTVR5cGVzOjpJbnQzMlR5 cGUsIGkpLAotQEAgLTU1MjIsMTAgKzU1MzUsMTEgQEAgc3RhdGljIGJvb2wgbFZlY3Rvcml6ZUdF UHMobGx2bTo6VmFsdWUgKnB0ciwgc3RkOjp2ZWN0b3I8UHRyVXNlPiAmcHRyVXNlcywgc3RkOjoK LSAKLSAgICAgLy8gQWRqdXN0IHZhbHVlcyBmb3IgdmVjdG9yIGxvYWQKLSAjaWYgSVNQQ19MTFZN X1ZFUlNJT04gPj0gSVNQQ19MTFZNXzExXzAKLS0gICAgaWYgKGF1dG8gdmVjVHkgPSBsbHZtOjpk eW5fY2FzdDxsbHZtOjpGaXhlZFZlY3RvclR5cGU+KHR5cGUpKSB7Ci0rICAgIGlmIChhdXRvIHZl Y1R5ID0gbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6Rml4ZWRWZWN0b3JUeXBlPih0eXBlKSkKLSAjZWxz ZQotLSAgICBpZiAoYXV0byB2ZWNUeSA9IGxsdm06OmR5bl9jYXN0PGxsdm06OlZlY3RvclR5cGU+ KHR5cGUpKSB7Ci0rICAgIGlmIChhdXRvIHZlY1R5ID0gbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6VmVj dG9yVHlwZT4odHlwZSkpCi0gI2VuZGlmCi0rICAgIHsKLSAgICAgICAgIC8vIEdldCBzaW5nbGUg ZWxlbWVudCBzaXplCi0gICAgICAgICB0X3NpemUgLz0gdmVjVHktPmdldE51bUVsZW1lbnRzKCk7 Ci0gICAgICAgICAvLyBHZXQgc2luZ2xlIGVsZW1lbnQgdHlwZQotQEAgLTY0NzcsNyArNjQ5MSw3 IEBAIGxsdm06OlZhbHVlICpGaXhBZGRyZXNzU3BhY2U6OmNhbGN1bGF0ZUdhdGhlclNjYXR0ZXJB ZGRyZXNzKGxsdm06OlZhbHVlICpQdHIsIGxsCi0gI2lmIElTUENfTExWTV9WRVJTSU9OID49IElT UENfTExWTV8xMV8wCi0gICAgICAgICBPZmZzZXRzLAotICAgICAgICAgbGx2bTo6Rml4ZWRWZWN0 b3JUeXBlOjpnZXQoTExWTVR5cGVzOjpJbnQ2NFR5cGUsCi0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBsbHZtOjpkeW5fY2FzdDxsbHZtOjpWZWN0b3JUeXBlPihPZmZzZXRzLT5n ZXRUeXBlKCkpLT5nZXROdW1FbGVtZW50cygpKSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGxsdm06OmR5bl9jYXN0PGxsdm06OkZpeGVkVmVjdG9yVHlwZT4oT2Zmc2V0cy0+ Z2V0VHlwZSgpKS0+Z2V0TnVtRWxlbWVudHMoKSksCi0gICAgICAgICAic3ZtX29mZnNldF96ZXh0 IiwgSW5zZXJ0QmVmb3JlKTsKLSAjZWxzZQotICAgICAgICAgT2Zmc2V0cywgbGx2bTo6VmVjdG9y VHlwZTo6Z2V0KExMVk1UeXBlczo6SW50NjRUeXBlLCBPZmZzZXRzLT5nZXRUeXBlKCktPmdldFZl Y3Rvck51bUVsZW1lbnRzKCkpLAotQEAgLTY0OTIsNyArNjUwNiw3IEBAIGxsdm06OlZhbHVlICpG aXhBZGRyZXNzU3BhY2U6OmNhbGN1bGF0ZUdhdGhlclNjYXR0ZXJBZGRyZXNzKGxsdm06OlZhbHVl ICpQdHIsIGxsCi0gICAgICAgICBsbHZtOjpWYWx1ZSAqdW5kZWZJbnNlcnRWYWx1ZSA9Ci0gI2lm IElTUENfTExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMV8wCi0gICAgICAgICAgICAgbGx2bTo6 VW5kZWZWYWx1ZTo6Z2V0KGxsdm06OkZpeGVkVmVjdG9yVHlwZTo6Z2V0KAotLSAgICAgICAgICAg ICAgICBMTFZNVHlwZXM6OkludDY0VHlwZSwgbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6VmVjdG9yVHlw ZT4oYWRkcmVzc1R5cGUpLT5nZXROdW1FbGVtZW50cygpKSk7Ci0rICAgICAgICAgICAgICAgIExM Vk1UeXBlczo6SW50NjRUeXBlLCBsbHZtOjpkeW5fY2FzdDxsbHZtOjpGaXhlZFZlY3RvclR5cGU+ KGFkZHJlc3NUeXBlKS0+Z2V0TnVtRWxlbWVudHMoKSkpOwotICNlbHNlCi0gICAgICAgICAgICAg bGx2bTo6VW5kZWZWYWx1ZTo6Z2V0KGxsdm06OlZlY3RvclR5cGU6OmdldChMTFZNVHlwZXM6Oklu dDY0VHlwZSwgYWRkcmVzc1R5cGUtPmdldFZlY3Rvck51bUVsZW1lbnRzKCkpKTsKLSAjZW5kaWYK LUBAIC02NTAxLDE3ICs2NTE1LDE2IEBAIGxsdm06OlZhbHVlICpGaXhBZGRyZXNzU3BhY2U6OmNh bGN1bGF0ZUdhdGhlclNjYXR0ZXJBZGRyZXNzKGxsdm06OlZhbHVlICpQdHIsIGxsCi0gI2lmIElT UENfTExWTV9WRVJTSU9OIDwgSVNQQ19MTFZNXzExXzAKLSAgICAgICAgICAgICBhZGRyZXNzVHlw ZS0+Z2V0VmVjdG9yTnVtRWxlbWVudHMoKSwKLSAjZWxpZiBJU1BDX0xMVk1fVkVSU0lPTiA8IElT UENfTExWTV8xMl8wCi0tICAgICAgICAgICAge2xsdm06OmR5bl9jYXN0PGxsdm06OlZlY3RvclR5 cGU+KGFkZHJlc3NUeXBlKS0+Z2V0TnVtRWxlbWVudHMoKSwgZmFsc2V9LAotKyAgICAgICAgICAg IHtsbHZtOjpkeW5fY2FzdDxsbHZtOjpGaXhlZFZlY3RvclR5cGU+KGFkZHJlc3NUeXBlKS0+Z2V0 TnVtRWxlbWVudHMoKSwgZmFsc2V9LAotICNlbHNlCi0tICAgICAgICBsbHZtOjpFbGVtZW50Q291 bnQ6OmdldCgKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm06OmR5bl9jYXN0 PGxsdm06OkZpeGVkVmVjdG9yVHlwZT4oYWRkcmVzc1R5cGUtPmdldE51bUVsZW1lbnRzKCksIGZh bHNlKSwKLSsgICAgICAgICAgICBsbHZtOjpFbGVtZW50Q291bnQ6OmdldChsbHZtOjpkeW5fY2Fz dDxsbHZtOjpGaXhlZFZlY3RvclR5cGU+KGFkZHJlc3NUeXBlKS0+Z2V0TnVtRWxlbWVudHMoKSwg ZmFsc2UpLAotICNlbmRpZgotICAgICAgICAgICAgIGxsdm06OkNvbnN0YW50OjpnZXROdWxsVmFs dWUobGx2bTo6VHlwZTo6Z2V0SW50MzJUeShJbnNlcnRCZWZvcmUtPmdldENvbnRleHQoKSkpKTsK LSAKLSAgICAgICAgIGxsdm06OlZhbHVlICp1bmRlZlNodWZmbGVWYWx1ZSA9Ci0gI2lmIElTUENf TExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMV8wCi0gICAgICAgICAgICAgbGx2bTo6VW5kZWZW YWx1ZTo6Z2V0KGxsdm06OkZpeGVkVmVjdG9yVHlwZTo6Z2V0KAotLSAgICAgICAgICAgICAgICBM TFZNVHlwZXM6OkludDY0VHlwZSwgbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6VmVjdG9yVHlwZT4oYWRk cmVzc1R5cGUpLT5nZXROdW1FbGVtZW50cygpKSk7Ci0rICAgICAgICAgICAgICAgIExMVk1UeXBl czo6SW50NjRUeXBlLCBsbHZtOjpkeW5fY2FzdDxsbHZtOjpGaXhlZFZlY3RvclR5cGU+KGFkZHJl c3NUeXBlKS0+Z2V0TnVtRWxlbWVudHMoKSkpOwotICNlbHNlCi0gICAgICAgICAgICAgbGx2bTo6 VW5kZWZWYWx1ZTo6Z2V0KGxsdm06OlZlY3RvclR5cGU6OmdldChMTFZNVHlwZXM6OkludDY0VHlw ZSwgYWRkcmVzc1R5cGUtPmdldFZlY3Rvck51bUVsZW1lbnRzKCkpKTsKLSAjZW5kaWYKLUBAIC02 NTQyLDcgKzY1NTUsOCBAQCBsbHZtOjpJbnN0cnVjdGlvbiAqRml4QWRkcmVzc1NwYWNlOjpwcm9j ZXNzVmVjdG9yTG9hZChsbHZtOjpMb2FkSW5zdCAqTEkpIHsKLSAgICAgICAgIGlzUHRyTG9hZCA9 IHRydWU7Ci0gICAgICAgICBhdXRvIHNjYWxhclR5cGUgPSBnLT50YXJnZXQtPmlzMzJCaXQoKSA/ IExMVk1UeXBlczo6SW50MzJUeXBlIDogTExWTVR5cGVzOjpJbnQ2NFR5cGU7Ci0gI2lmIElTUENf TExWTV9WRVJTSU9OID49IElTUENfTExWTV8xMV8wCi0tICAgICAgICByZXRUeXBlID0gbGx2bTo6 Rml4ZWRWZWN0b3JUeXBlOjpnZXQoc2NhbGFyVHlwZSwgbGx2bTo6ZHluX2Nhc3Q8bGx2bTo6VmVj dG9yVHlwZT4ocmV0VHlwZSktPmdldE51bUVsZW1lbnRzKCkpOwotKyAgICAgICAgcmV0VHlwZSA9 Ci0rICAgICAgICAgICAgbGx2bTo6Rml4ZWRWZWN0b3JUeXBlOjpnZXQoc2NhbGFyVHlwZSwgbGx2 bTo6ZHluX2Nhc3Q8bGx2bTo6Rml4ZWRWZWN0b3JUeXBlPihyZXRUeXBlKS0+Z2V0TnVtRWxlbWVu dHMoKSk7Ci0gI2Vsc2UKLSAgICAgICAgIHJldFR5cGUgPSBsbHZtOjpWZWN0b3JUeXBlOjpnZXQo c2NhbGFyVHlwZSwgcmV0VHlwZS0+Z2V0VmVjdG9yTnVtRWxlbWVudHMoKSk7Ci0gI2VuZGlmCi1A QCAtNjYwNCw3ICs2NjE4LDggQEAgbGx2bTo6SW5zdHJ1Y3Rpb24gKkZpeEFkZHJlc3NTcGFjZTo6 cHJvY2Vzc1ZlY3RvclN0b3JlKGxsdm06OlN0b3JlSW5zdCAqU0kpIHsKLSAgICAgaWYgKHZhbFR5 cGUtPmdldFNjYWxhclR5cGUoKS0+aXNQb2ludGVyVHkoKSkgewotICAgICAgICAgYXV0byBzY2Fs YXJUeXBlID0gZy0+dGFyZ2V0LT5pczMyQml0KCkgPyBMTFZNVHlwZXM6OkludDMyVHlwZSA6IExM Vk1UeXBlczo6SW50NjRUeXBlOwotICNpZiBJU1BDX0xMVk1fVkVSU0lPTiA+PSBJU1BDX0xMVk1f MTFfMAotLSAgICAgICAgdmFsVHlwZSA9IGxsdm06OkZpeGVkVmVjdG9yVHlwZTo6Z2V0KHNjYWxh clR5cGUsIGxsdm06OmR5bl9jYXN0PGxsdm06OlZlY3RvclR5cGU+KHZhbFR5cGUpLT5nZXROdW1F bGVtZW50cygpKTsKLSsgICAgICAgIHZhbFR5cGUgPQotKyAgICAgICAgICAgIGxsdm06OkZpeGVk VmVjdG9yVHlwZTo6Z2V0KHNjYWxhclR5cGUsIGxsdm06OmR5bl9jYXN0PGxsdm06OkZpeGVkVmVj dG9yVHlwZT4odmFsVHlwZSktPmdldE51bUVsZW1lbnRzKCkpOwotICNlbHNlCi0gICAgICAgICB2 YWxUeXBlID0gbGx2bTo6VmVjdG9yVHlwZTo6Z2V0KHNjYWxhclR5cGUsIHZhbFR5cGUtPmdldFZl Y3Rvck51bUVsZW1lbnRzKCkpOwotICNlbmRpZgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9pc3BjL3Bh dGNoZXMvbGx2bTEyLTAwOS5wYXRjaCBiL3NyY3BrZ3MvaXNwYy9wYXRjaGVzL2xsdm0xMi0wMDku cGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQzZWE2NzgyODU4Mi4uMDAwMDAw MDAwMDAwCi0tLSBhL3NyY3BrZ3MvaXNwYy9wYXRjaGVzL2xsdm0xMi0wMDkucGF0Y2gKKysrIC9k ZXYvbnVsbApAQCAtMSwyMTA5ICswLDAgQEAKLUZyb20gOTdiMTNjMzIxMzJlMjcwNGE1ZTNlN2Iy ZWFlNDlkODU0ZDA4N2UzZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEFyaW5hIE5l c2hseWFldmEgPGFyaW5hLm5lc2hseWFldmFAaW50ZWwuY29tPgotRGF0ZTogVHVlLCA0IE1heSAy MDIxIDExOjMxOjU1IC0wNzAwCi1TdWJqZWN0OiBbUEFUQ0hdIFVwZGF0ZWQgYnVpbHRpbnMtY20q IGZvciBzd2l0Y2ggdG8gTExWTTEyCi0KLS0tLQotIGJ1aWx0aW5zL2J1aWx0aW5zLWNtLTMyLmxs IHwgMjM0ICsrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0KLSBidWlsdGlucy9i dWlsdGlucy1jbS02NC5sbCB8IDIzMiArKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0t LS0KLSAyIGZpbGVzIGNoYW5nZWQsIDIzMyBpbnNlcnRpb25zKCspLCAyMzMgZGVsZXRpb25zKC0p Ci0KLWRpZmYgLS1naXQgYS9idWlsdGlucy9idWlsdGlucy1jbS0zMi5sbCBiL2J1aWx0aW5zL2J1 aWx0aW5zLWNtLTMyLmxsCi1pbmRleCAzMmRlYmYzMmUuLjQ4MWJiZGM0OCAxMDA2NDQKLS0tLSBh L2J1aWx0aW5zL2J1aWx0aW5zLWNtLTMyLmxsCi0rKysgYi9idWlsdGlucy9idWlsdGlucy1jbS0z Mi5sbAotQEAgLTU1Nyw3ICs1NTcsNyBAQCAkX1pOMTNWYXJ5aW5nV3JpdGVyMTJXcml0ZVZlY0Vs ZW1JUHZFRXZ2ID0gY29tZGF0IGFueQotIEAuc3RyLjEwID0gcHJpdmF0ZSB1bm5hbWVkX2FkZHIg Y29uc3RhbnQgWzUgeCBpOF0gYyIlMDhYXDAwIiwgYWxpZ24gMQotIAotIDsgRnVuY3Rpb24gQXR0 cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCBzaWduZXh0IGk4IEBfWjI0 X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2Y2MoaTggc2lnbmV4dCwgaTggc2lnbmV4dCkgIzAgewot K2RlZmluZSBpbnRlcm5hbCBzaWduZXh0IGk4IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2 Y2MoaTggc2lnbmV4dCwgaTggc2lnbmV4dCkgIzAgewotICAgJTMgPSBhbGxvY2EgaTgsIGFsaWdu IDEKLSAgICU0ID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSA8MSB4IGk4Piwg YWxpZ24gMQotQEAgLTYxOCw3ICs2MTgsNyBAQCBkZWZpbmUgaW50ZXJuYWwgPDEgeCBpOD4gQF9a TjdkZXRhaWxzMTNfX2ltcGxfZGl2cmVtSUxpMUVFRXUyQ012YlRfX2NTMV9TMV91MkNNdgotIGRl Y2xhcmUgPDEgeCBpOD4gQGxsdm0uZ2VueC5yZHJlZ2lvbmkudjFpOC52MWk4LmkxNig8MSB4IGk4 PiwgaTMyLCBpMzIsIGkzMiwgaTE2LCBpMzIpICMyCi0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9p bmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwxIHggaTg+IEBfWjI0X19jbV9pbnRy aW5zaWNfaW1wbF9zZGl2dTJDTXZiMV9jU18oPDEgeCBpOD4sIDwxIHggaTg+KSAjMCB7Ci0rZGVm aW5lIGludGVybmFsIDwxIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZi MV9jU18oPDEgeCBpOD4sIDwxIHggaTg+KSAjMCB7Ci0gICAlMyA9IGFsbG9jYSA8MSB4IGk4Piwg YWxpZ24gMQotICAgJTQgPSBhbGxvY2EgPDEgeCBpOD4sIGFsaWduIDEKLSAgICU1ID0gYWxsb2Nh IDwxIHggaTg+LCBhbGlnbiAxCi1AQCAtNjM0LDcgKzYzNCw3IEBAIGRlZmluZSBkc29fbG9jYWwg PDEgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmIxX2NTXyg8MSB4IGk4 PiwgPDEKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZp bmUgZHNvX2xvY2FsIDwyIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZi Ml9jU18oPDIgeCBpOD4sIDwyIHggaTg+KSAjMyB7Ci0rZGVmaW5lIGludGVybmFsIDwyIHggaTg+ IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZiMl9jU18oPDIgeCBpOD4sIDwyIHgg aTg+KSAjMyB7Ci0gICAlMyA9IGFsbG9jYSA8MiB4IGk4PiwgYWxpZ24gMgotICAgJTQgPSBhbGxv Y2EgPDIgeCBpOD4sIGFsaWduIDIKLSAgICU1ID0gYWxsb2NhIDwyIHggaTg+LCBhbGlnbiAyCi1A QCAtNjgwLDcgKzY4MCw3IEBAIGRlZmluZSBpbnRlcm5hbCA8MiB4IGk4PiBAX1pON2RldGFpbHMx M19faW1wbF9kaXZyZW1JTGkyRUVFdTJDTXZiVF9fY1MxX1MxX3UyQ012Ci0gfQotIAotIDsgRnVu Y3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8NCB4IGk4 PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjRfY1NfKDw0IHggaTg+LCA8NCB4 IGk4PikgIzUgewotK2RlZmluZSBpbnRlcm5hbCA8NCB4IGk4PiBAX1oyNF9fY21faW50cmluc2lj X2ltcGxfc2RpdnUyQ012YjRfY1NfKDw0IHggaTg+LCA8NCB4IGk4PikgIzUgewotICAgJTMgPSBh bGxvY2EgPDQgeCBpOD4sIGFsaWduIDQKLSAgICU0ID0gYWxsb2NhIDw0IHggaTg+LCBhbGlnbiA0 Ci0gICAlNSA9IGFsbG9jYSA8NCB4IGk4PiwgYWxpZ24gNAotQEAgLTgxOCw3ICs4MTgsNyBAQCBk ZWZpbmUgaW50ZXJuYWwgPDE2IHggaTg+IEBfWk43ZGV0YWlsczEzX19pbXBsX2RpdnJlbUlMaTE2 RUVFdTJDTXZiVF9fY1MxX1MxX3UyQwotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGlu ZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDMyIHggaTg+IEBfWjI0X19jbV9pbnRyaW5z aWNfaW1wbF9zZGl2dTJDTXZiMzJfY1NfKDwzMiB4IGk4PiwgPDMyIHggaTg+KSAjMTEgewotK2Rl ZmluZSBpbnRlcm5hbCA8MzIgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNN dmIzMl9jU18oPDMyIHggaTg+LCA8MzIgeCBpOD4pICMxMSB7Ci0gICAlMyA9IGFsbG9jYSA8MzIg eCBpOD4sIGFsaWduIDMyCi0gICAlNCA9IGFsbG9jYSA8MzIgeCBpOD4sIGFsaWduIDMyCi0gICAl NSA9IGFsbG9jYSA8MzIgeCBpOD4sIGFsaWduIDMyCi1AQCAtODY0LDcgKzg2NCw3IEBAIGRlZmlu ZSBpbnRlcm5hbCA8MzIgeCBpOD4gQF9aTjdkZXRhaWxzMTNfX2ltcGxfZGl2cmVtSUxpMzJFRUV1 MkNNdmJUX19jUzFfUzFfdTJDCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5v dW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCBzaWduZXh0IGk4IEBfWjI0X19jbV9pbnRyaW5zaWNf aW1wbF9zcmVtY2MoaTggc2lnbmV4dCwgaTggc2lnbmV4dCkgIzAgewotK2RlZmluZSBpbnRlcm5h bCBzaWduZXh0IGk4IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtY2MoaTggc2lnbmV4dCwg aTggc2lnbmV4dCkgIzAgewotICAgJTMgPSBhbGxvY2EgaTgsIGFsaWduIDEKLSAgICU0ID0gYWxs b2NhIGk4LCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSA8MSB4IGk4PiwgYWxpZ24gMQotQEAgLTg5 MCw3ICs4OTAsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIHNpZ25leHQgaTggQF9aMjRfX2NtX2ludHJp bnNpY19pbXBsX3NyZW1jYyhpOCBzaWduZXh0LCBpOCBzaWduZQotIH0KLSAKLSA7IEZ1bmN0aW9u IEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDEgeCBpOD4gQF9a MjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIxX2NTXyg8MSB4IGk4PiwgPDEgeCBpOD4p ICMwIHsKLStkZWZpbmUgaW50ZXJuYWwgPDEgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBs X3NyZW11MkNNdmIxX2NTXyg8MSB4IGk4PiwgPDEgeCBpOD4pICMwIHsKLSAgICUzID0gYWxsb2Nh IDwxIHggaTg+LCBhbGlnbiAxCi0gICAlNCA9IGFsbG9jYSA8MSB4IGk4PiwgYWxpZ24gMQotICAg JTUgPSBhbGxvY2EgPDEgeCBpOD4sIGFsaWduIDEKLUBAIC05MDQsNyArOTA0LDcgQEAgZGVmaW5l IGRzb19sb2NhbCA8MSB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjFf Y1NfKDwxIHggaTg+LCA8MQotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vu d2luZAotLWRlZmluZSBkc29fbG9jYWwgPDIgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBs X3NyZW11MkNNdmIyX2NTXyg8MiB4IGk4PiwgPDIgeCBpOD4pICMzIHsKLStkZWZpbmUgaW50ZXJu YWwgPDIgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIyX2NTXyg8MiB4 IGk4PiwgPDIgeCBpOD4pICMzIHsKLSAgICUzID0gYWxsb2NhIDwyIHggaTg+LCBhbGlnbiAyCi0g ICAlNCA9IGFsbG9jYSA8MiB4IGk4PiwgYWxpZ24gMgotICAgJTUgPSBhbGxvY2EgPDIgeCBpOD4s IGFsaWduIDIKLUBAIC05MTgsNyArOTE4LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MiB4IGk4PiBA X1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjJfY1NfKDwyIHggaTg+LCA8MgotIH0K LSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9j YWwgPDQgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmI0X2NTXyg8NCB4 IGk4PiwgPDQgeCBpOD4pICM1IHsKLStkZWZpbmUgaW50ZXJuYWwgPDQgeCBpOD4gQF9aMjRfX2Nt X2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmI0X2NTXyg8NCB4IGk4PiwgPDQgeCBpOD4pICM1IHsK LSAgICUzID0gYWxsb2NhIDw0IHggaTg+LCBhbGlnbiA0Ci0gICAlNCA9IGFsbG9jYSA8NCB4IGk4 PiwgYWxpZ24gNAotICAgJTUgPSBhbGxvY2EgPDQgeCBpOD4sIGFsaWduIDQKLUBAIC05MzIsNyAr OTMyLDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8NCB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2lt cGxfc3JlbXUyQ012YjRfY1NfKDw0IHggaTg+LCA8NAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJz OiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDggeCBpOD4gQF9aMjRfX2Nt X2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmI4X2NTXyg8OCB4IGk4PiwgPDggeCBpOD4pICM3IHsK LStkZWZpbmUgaW50ZXJuYWwgPDggeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11 MkNNdmI4X2NTXyg8OCB4IGk4PiwgPDggeCBpOD4pICM3IHsKLSAgICUzID0gYWxsb2NhIDw4IHgg aTg+LCBhbGlnbiA4Ci0gICAlNCA9IGFsbG9jYSA8OCB4IGk4PiwgYWxpZ24gOAotICAgJTUgPSBh bGxvY2EgPDggeCBpOD4sIGFsaWduIDgKLUBAIC05NDYsNyArOTQ2LDcgQEAgZGVmaW5lIGRzb19s b2NhbCA8OCB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjhfY1NfKDw4 IHggaTg+LCA8OAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAot LWRlZmluZSBkc29fbG9jYWwgPDE2IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVt dTJDTXZiMTZfY1NfKDwxNiB4IGk4PiwgPDE2IHggaTg+KSAjOSB7Ci0rZGVmaW5lIGludGVybmFs IDwxNiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjE2X2NTXyg8MTYg eCBpOD4sIDwxNiB4IGk4PikgIzkgewotICAgJTMgPSBhbGxvY2EgPDE2IHggaTg+LCBhbGlnbiAx NgotICAgJTQgPSBhbGxvY2EgPDE2IHggaTg+LCBhbGlnbiAxNgotICAgJTUgPSBhbGxvY2EgPDE2 IHggaTg+LCBhbGlnbiAxNgotQEAgLTk2MCw3ICs5NjAsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwx NiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjE2X2NTXyg8MTYgeCBp OD4sCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5l IGRzb19sb2NhbCA8MzIgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIz Ml9jU18oPDMyIHggaTg+LCA8MzIgeCBpOD4pICMxMSB7Ci0rZGVmaW5lIGludGVybmFsIDwzMiB4 IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjMyX2NTXyg8MzIgeCBpOD4s IDwzMiB4IGk4PikgIzExIHsKLSAgICUzID0gYWxsb2NhIDwzMiB4IGk4PiwgYWxpZ24gMzIKLSAg ICU0ID0gYWxsb2NhIDwzMiB4IGk4PiwgYWxpZ24gMzIKLSAgICU1ID0gYWxsb2NhIDwzMiB4IGk4 PiwgYWxpZ24gMzIKLUBAIC05NzQsNyArOTc0LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MzIgeCBp OD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIzMl9jU18oPDMyIHggaTg+LAot IH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29f bG9jYWwgc2lnbmV4dCBpMTYgQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZzcyhpMTYgc2ln bmV4dCwgaTE2IHNpZ25leHQpICMzIHsKLStkZWZpbmUgaW50ZXJuYWwgc2lnbmV4dCBpMTYgQF9a MjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZzcyhpMTYgc2lnbmV4dCwgaTE2IHNpZ25leHQpICMz IHsKLSAgICUzID0gYWxsb2NhIGkxNiwgYWxpZ24gMgotICAgJTQgPSBhbGxvY2EgaTE2LCBhbGln biAyCi0gICAlNSA9IGFsbG9jYSA8MSB4IGkxNj4sIGFsaWduIDIKLUBAIC0xMDU4LDcgKzEwNTgs NyBAQCBkZWZpbmUgaW50ZXJuYWwgPDEgeCBpMTY+IEBfWk43ZGV0YWlsczEzX19pbXBsX2RpdnJl bUlMaTFFRUV1MkNNdmJUX19zUzFfUzFfdTJDTQotIGRlY2xhcmUgPDEgeCBpMTY+IEBsbHZtLmdl bngucmRyZWdpb25pLnYxaTE2LnYxaTE2LmkxNig8MSB4IGkxNj4sIGkzMiwgaTMyLCBpMzIsIGkx NiwgaTMyKSAjMgotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVm aW5lIGRzb19sb2NhbCA8MSB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNN dmIxX3NTXyg8MSB4IGkxNj4sIDwxIHggaTE2PikgIzMgewotK2RlZmluZSBpbnRlcm5hbCA8MSB4 IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmIxX3NTXyg8MSB4IGkxNj4s IDwxIHggaTE2PikgIzMgewotICAgJTMgPSBhbGxvY2EgPDEgeCBpMTY+LCBhbGlnbiAyCi0gICAl NCA9IGFsbG9jYSA8MSB4IGkxNj4sIGFsaWduIDIKLSAgICU1ID0gYWxsb2NhIDwxIHggaTE2Piwg YWxpZ24gMgotQEAgLTEwNzQsNyArMTA3NCw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDEgeCBpMTY+ IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZiMV9zU18oPDEgeCBpMTY+LCA8Ci0g fQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19s b2NhbCA8MiB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmIyX3NTXyg8 MiB4IGkxNj4sIDwyIHggaTE2PikgIzUgewotK2RlZmluZSBpbnRlcm5hbCA8MiB4IGkxNj4gQF9a MjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmIyX3NTXyg8MiB4IGkxNj4sIDwyIHggaTE2 PikgIzUgewotICAgJTMgPSBhbGxvY2EgPDIgeCBpMTY+LCBhbGlnbiA0Ci0gICAlNCA9IGFsbG9j YSA8MiB4IGkxNj4sIGFsaWduIDQKLSAgICU1ID0gYWxsb2NhIDwyIHggaTE2PiwgYWxpZ24gNAot QEAgLTExNDMsNyArMTE0Myw3IEBAIGRlZmluZSBpbnRlcm5hbCA8MiB4IGkxNj4gQF9aTjdkZXRh aWxzMTNfX2ltcGxfZGl2cmVtSUxpMkVFRXUyQ012YlRfX3NTMV9TMV91MkNNCi0gfQotIAotIDsg RnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8NCB4 IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmI0X3NTXyg8NCB4IGkxNj4s IDw0IHggaTE2PikgIzcgewotK2RlZmluZSBpbnRlcm5hbCA8NCB4IGkxNj4gQF9aMjRfX2NtX2lu dHJpbnNpY19pbXBsX3NkaXZ1MkNNdmI0X3NTXyg8NCB4IGkxNj4sIDw0IHggaTE2PikgIzcgewot ICAgJTMgPSBhbGxvY2EgPDQgeCBpMTY+LCBhbGlnbiA4Ci0gICAlNCA9IGFsbG9jYSA8NCB4IGkx Nj4sIGFsaWduIDgKLSAgICU1ID0gYWxsb2NhIDw0IHggaTE2PiwgYWxpZ24gOAotQEAgLTEzNTAs NyArMTM1MCw3IEBAIGRlZmluZSBpbnRlcm5hbCA8MTYgeCBpMTY+IEBfWk43ZGV0YWlsczEzX19p bXBsX2RpdnJlbUlMaTE2RUVFdTJDTXZiVF9fc1MxX1MxX3UyCi0gfQotIAotIDsgRnVuY3Rpb24g QXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MzIgeCBpMTY+IEBf WjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZiMzJfc1NfKDwzMiB4IGkxNj4sIDwzMiB4 IGkxNj4pICMxMyB7Ci0rZGVmaW5lIGludGVybmFsIDwzMiB4IGkxNj4gQF9aMjRfX2NtX2ludHJp bnNpY19pbXBsX3NkaXZ1MkNNdmIzMl9zU18oPDMyIHggaTE2PiwgPDMyIHggaTE2PikgIzEzIHsK LSAgICUzID0gYWxsb2NhIDwzMiB4IGkxNj4sIGFsaWduIDY0Ci0gICAlNCA9IGFsbG9jYSA8MzIg eCBpMTY+LCBhbGlnbiA2NAotICAgJTUgPSBhbGxvY2EgPDMyIHggaTE2PiwgYWxpZ24gNjQKLUBA IC0xNDE5LDcgKzE0MTksNyBAQCBkZWZpbmUgaW50ZXJuYWwgPDMyIHggaTE2PiBAX1pON2RldGFp bHMxM19faW1wbF9kaXZyZW1JTGkzMkVFRXUyQ012YlRfX3NTMV9TMV91MgotIH0KLSAKLSA7IEZ1 bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgc2lnbmV4 dCBpMTYgQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW1zcyhpMTYgc2lnbmV4dCwgaTE2IHNp Z25leHQpICMzIHsKLStkZWZpbmUgaW50ZXJuYWwgc2lnbmV4dCBpMTYgQF9aMjRfX2NtX2ludHJp bnNpY19pbXBsX3NyZW1zcyhpMTYgc2lnbmV4dCwgaTE2IHNpZ25leHQpICMzIHsKLSAgICUzID0g YWxsb2NhIGkxNiwgYWxpZ24gMgotICAgJTQgPSBhbGxvY2EgaTE2LCBhbGlnbiAyCi0gICAlNSA9 IGFsbG9jYSA8MSB4IGkxNj4sIGFsaWduIDIKLUBAIC0xNDQ1LDcgKzE0NDUsNyBAQCBkZWZpbmUg ZHNvX2xvY2FsIHNpZ25leHQgaTE2IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtc3MoaTE2 IHNpZ25leHQsIGkxNiBzaQotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vu d2luZAotLWRlZmluZSBkc29fbG9jYWwgPDEgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1w bF9zcmVtdTJDTXZiMV9zU18oPDEgeCBpMTY+LCA8MSB4IGkxNj4pICMzIHsKLStkZWZpbmUgaW50 ZXJuYWwgPDEgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMV9zU18o PDEgeCBpMTY+LCA8MSB4IGkxNj4pICMzIHsKLSAgICUzID0gYWxsb2NhIDwxIHggaTE2PiwgYWxp Z24gMgotICAgJTQgPSBhbGxvY2EgPDEgeCBpMTY+LCBhbGlnbiAyCi0gICAlNSA9IGFsbG9jYSA8 MSB4IGkxNj4sIGFsaWduIDIKLUBAIC0xNDU5LDcgKzE0NTksNyBAQCBkZWZpbmUgZHNvX2xvY2Fs IDwxIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjFfc1NfKDwxIHgg aTE2PiwgPAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRl ZmluZSBkc29fbG9jYWwgPDIgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJD TXZiMl9zU18oPDIgeCBpMTY+LCA8MiB4IGkxNj4pICM1IHsKLStkZWZpbmUgaW50ZXJuYWwgPDIg eCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMl9zU18oPDIgeCBpMTY+ LCA8MiB4IGkxNj4pICM1IHsKLSAgICUzID0gYWxsb2NhIDwyIHggaTE2PiwgYWxpZ24gNAotICAg JTQgPSBhbGxvY2EgPDIgeCBpMTY+LCBhbGlnbiA0Ci0gICAlNSA9IGFsbG9jYSA8MiB4IGkxNj4s IGFsaWduIDQKLUBAIC0xNDczLDcgKzE0NzMsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwyIHggaTE2 PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjJfc1NfKDwyIHggaTE2PiwgPAot IH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29f bG9jYWwgPDQgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiNF9zU18o PDQgeCBpMTY+LCA8NCB4IGkxNj4pICM3IHsKLStkZWZpbmUgaW50ZXJuYWwgPDQgeCBpMTY+IEBf WjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiNF9zU18oPDQgeCBpMTY+LCA8NCB4IGkx Nj4pICM3IHsKLSAgICUzID0gYWxsb2NhIDw0IHggaTE2PiwgYWxpZ24gOAotICAgJTQgPSBhbGxv Y2EgPDQgeCBpMTY+LCBhbGlnbiA4Ci0gICAlNSA9IGFsbG9jYSA8NCB4IGkxNj4sIGFsaWduIDgK LUBAIC0xNDg3LDcgKzE0ODcsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDw0IHggaTE2PiBAX1oyNF9f Y21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjRfc1NfKDw0IHggaTE2PiwgPAotIH0KLSAKLSA7 IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDgg eCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiOF9zU18oPDggeCBpMTY+ LCA8OCB4IGkxNj4pICM5IHsKLStkZWZpbmUgaW50ZXJuYWwgPDggeCBpMTY+IEBfWjI0X19jbV9p bnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiOF9zU18oPDggeCBpMTY+LCA8OCB4IGkxNj4pICM5IHsK LSAgICUzID0gYWxsb2NhIDw4IHggaTE2PiwgYWxpZ24gMTYKLSAgICU0ID0gYWxsb2NhIDw4IHgg aTE2PiwgYWxpZ24gMTYKLSAgICU1ID0gYWxsb2NhIDw4IHggaTE2PiwgYWxpZ24gMTYKLUBAIC0x NTAxLDcgKzE1MDEsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDw4IHggaTE2PiBAX1oyNF9fY21faW50 cmluc2ljX2ltcGxfc3JlbXUyQ012Yjhfc1NfKDw4IHggaTE2PiwgPAotIH0KLSAKLSA7IEZ1bmN0 aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDE2IHggaTE2 PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjE2X3NTXyg8MTYgeCBpMTY+LCA8 MTYgeCBpMTY+KSAjMTEgewotK2RlZmluZSBpbnRlcm5hbCA8MTYgeCBpMTY+IEBfWjI0X19jbV9p bnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMTZfc1NfKDwxNiB4IGkxNj4sIDwxNiB4IGkxNj4pICMx MSB7Ci0gICAlMyA9IGFsbG9jYSA8MTYgeCBpMTY+LCBhbGlnbiAzMgotICAgJTQgPSBhbGxvY2Eg PDE2IHggaTE2PiwgYWxpZ24gMzIKLSAgICU1ID0gYWxsb2NhIDwxNiB4IGkxNj4sIGFsaWduIDMy Ci1AQCAtMTUxNSw3ICsxNTE1LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MTYgeCBpMTY+IEBfWjI0 X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMTZfc1NfKDwxNiB4IGkxNj4KLSB9Ci0gCi0g OyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwz MiB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIzMl9zU18oPDMyIHgg aTE2PiwgPDMyIHggaTE2PikgIzEzIHsKLStkZWZpbmUgaW50ZXJuYWwgPDMyIHggaTE2PiBAX1oy NF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjMyX3NTXyg8MzIgeCBpMTY+LCA8MzIgeCBp MTY+KSAjMTMgewotICAgJTMgPSBhbGxvY2EgPDMyIHggaTE2PiwgYWxpZ24gNjQKLSAgICU0ID0g YWxsb2NhIDwzMiB4IGkxNj4sIGFsaWduIDY0Ci0gICAlNSA9IGFsbG9jYSA8MzIgeCBpMTY+LCBh bGlnbiA2NAotQEAgLTE1MjksNyArMTUyOSw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDMyIHggaTE2 PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjMyX3NTXyg8MzIgeCBpMTY+Ci0g fQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19s b2NhbCBpMzIgQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZpaShpMzIsIGkzMikgIzE0IHsK LStkZWZpbmUgaW50ZXJuYWwgaTMyIEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2aWkoaTMy LCBpMzIpICMxNCB7Ci0gICAlMyA9IGFsbG9jYSBpMzIsIGFsaWduIDQKLSAgICU0ID0gYWxsb2Nh IGkzMiwgYWxpZ24gNAotICAgJTUgPSBhbGxvY2EgPDEgeCBpMzI+LCBhbGlnbiA0Ci1AQCAtMTcz MCw3ICsxNzMwLDcgQEAgZGVmaW5lIGludGVybmFsIDwxIHggaTMyPiBAX1pON2RldGFpbHMxM19f aW1wbF9kaXZyZW1JTGkxRUVFdTJDTXZiVF9faVMxX1MxX3UyQ00KLSBkZWNsYXJlIDwxIHggaTMy PiBAbGx2bS5nZW54LnJkcmVnaW9uaS52MWkzMi52MWkzMi5pMTYoPDEgeCBpMzI+LCBpMzIsIGkz MiwgaTMyLCBpMTYsIGkzMikgIzIKLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vu d2luZAotLWRlZmluZSBkc29fbG9jYWwgPDEgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1w bF9zZGl2dTJDTXZiMV9pU18oPDEgeCBpMzI+LCA8MSB4IGkzMj4pICMxNCB7Ci0rZGVmaW5lIGlu dGVybmFsIDwxIHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjFfaVNf KDwxIHggaTMyPiwgPDEgeCBpMzI+KSAjMTQgewotICAgJTMgPSBhbGxvY2EgPDEgeCBpMzI+LCBh bGlnbiA0Ci0gICAlNCA9IGFsbG9jYSA8MSB4IGkzMj4sIGFsaWduIDQKLSAgICU1ID0gYWxsb2Nh IDwxIHggaTMyPiwgYWxpZ24gNAotQEAgLTE3NDYsNyArMTc0Niw3IEBAIGRlZmluZSBkc29fbG9j YWwgPDEgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZiMV9pU18oPDEg eCBpMzI+LCA8Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0t ZGVmaW5lIGRzb19sb2NhbCA8MiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1 MkNNdmIyX2lTXyg8MiB4IGkzMj4sIDwyIHggaTMyPikgIzE1IHsKLStkZWZpbmUgaW50ZXJuYWwg PDIgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZiMl9pU18oPDIgeCBp MzI+LCA8MiB4IGkzMj4pICMxNSB7Ci0gICAlMyA9IGFsbG9jYSA8MiB4IGkzMj4sIGFsaWduIDgK LSAgICU0ID0gYWxsb2NhIDwyIHggaTMyPiwgYWxpZ24gOAotICAgJTUgPSBhbGxvY2EgPDIgeCBp MzI+LCBhbGlnbiA4Ci1AQCAtMTkzMiw3ICsxOTMyLDcgQEAgZGVmaW5lIGludGVybmFsIDwyIHgg aTMyPiBAX1pON2RldGFpbHMxM19faW1wbF9kaXZyZW1JTGkyRUVFdTJDTXZiVF9faVMxX1MxX3Uy Q00KLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUg ZHNvX2xvY2FsIDw0IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjRf aVNfKDw0IHggaTMyPiwgPDQgeCBpMzI+KSAjMTYgewotK2RlZmluZSBpbnRlcm5hbCA8NCB4IGkz Mj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmI0X2lTXyg8NCB4IGkzMj4sIDw0 IHggaTMyPikgIzE2IHsKLSAgICUzID0gYWxsb2NhIDw0IHggaTMyPiwgYWxpZ24gMTYKLSAgICU0 ID0gYWxsb2NhIDw0IHggaTMyPiwgYWxpZ24gMTYKLSAgICU1ID0gYWxsb2NhIDw0IHggaTMyPiwg YWxpZ24gMTYKLUBAIC0yNDkwLDcgKzI0OTAsNyBAQCBkZWZpbmUgaW50ZXJuYWwgPDE2IHggaTMy PiBAX1pON2RldGFpbHMxM19faW1wbF9kaXZyZW1JTGkxNkVFRXUyQ012YlRfX2lTMV9TMV91Mgot IH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29f bG9jYWwgPDMyIHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjMyX2lT Xyg8MzIgeCBpMzI+LCA8MzIgeCBpMzI+KSAjMTkgewotK2RlZmluZSBpbnRlcm5hbCA8MzIgeCBp MzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZiMzJfaVNfKDwzMiB4IGkzMj4s IDwzMiB4IGkzMj4pICMxOSB7Ci0gICAlMyA9IGFsbG9jYSA8MzIgeCBpMzI+LCBhbGlnbiAxMjgK LSAgICU0ID0gYWxsb2NhIDwzMiB4IGkzMj4sIGFsaWduIDEyOAotICAgJTUgPSBhbGxvY2EgPDMy IHggaTMyPiwgYWxpZ24gMTI4Ci1AQCAtMjY3Niw3ICsyNjc2LDcgQEAgZGVmaW5lIGludGVybmFs IDwzMiB4IGkzMj4gQF9aTjdkZXRhaWxzMTNfX2ltcGxfZGl2cmVtSUxpMzJFRUV1MkNNdmJUX19p UzFfUzFfdTIKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1k ZWZpbmUgZHNvX2xvY2FsIGkzMiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbWlpKGkzMiwg aTMyKSAjMTQgewotK2RlZmluZSBpbnRlcm5hbCBpMzIgQF9aMjRfX2NtX2ludHJpbnNpY19pbXBs X3NyZW1paShpMzIsIGkzMikgIzE0IHsKLSAgICUzID0gYWxsb2NhIGkzMiwgYWxpZ24gNAotICAg JTQgPSBhbGxvY2EgaTMyLCBhbGlnbiA0Ci0gICAlNSA9IGFsbG9jYSA8MSB4IGkzMj4sIGFsaWdu IDQKLUBAIC0yNzAyLDcgKzI3MDIsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIGkzMiBAX1oyNF9fY21f aW50cmluc2ljX2ltcGxfc3JlbWlpKGkzMiwgaTMyKSAjMTQgewotIH0KLSAKLSA7IEZ1bmN0aW9u IEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDEgeCBpMzI+IEBf WjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMV9pU18oPDEgeCBpMzI+LCA8MSB4IGkz Mj4pICMxNCB7Ci0rZGVmaW5lIGludGVybmFsIDwxIHggaTMyPiBAX1oyNF9fY21faW50cmluc2lj X2ltcGxfc3JlbXUyQ012YjFfaVNfKDwxIHggaTMyPiwgPDEgeCBpMzI+KSAjMTQgewotICAgJTMg PSBhbGxvY2EgPDEgeCBpMzI+LCBhbGlnbiA0Ci0gICAlNCA9IGFsbG9jYSA8MSB4IGkzMj4sIGFs aWduIDQKLSAgICU1ID0gYWxsb2NhIDwxIHggaTMyPiwgYWxpZ24gNAotQEAgLTI3MTYsNyArMjcx Niw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDEgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1w bF9zcmVtdTJDTXZiMV9pU18oPDEgeCBpMzI+LCA8Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6 IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MiB4IGkzMj4gQF9aMjRfX2Nt X2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIyX2lTXyg8MiB4IGkzMj4sIDwyIHggaTMyPikgIzE1 IHsKLStkZWZpbmUgaW50ZXJuYWwgPDIgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9z cmVtdTJDTXZiMl9pU18oPDIgeCBpMzI+LCA8MiB4IGkzMj4pICMxNSB7Ci0gICAlMyA9IGFsbG9j YSA8MiB4IGkzMj4sIGFsaWduIDgKLSAgICU0ID0gYWxsb2NhIDwyIHggaTMyPiwgYWxpZ24gOAot ICAgJTUgPSBhbGxvY2EgPDIgeCBpMzI+LCBhbGlnbiA4Ci1AQCAtMjczMCw3ICsyNzMwLDcgQEAg ZGVmaW5lIGRzb19sb2NhbCA8MiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11 MkNNdmIyX2lTXyg8MiB4IGkzMj4sIDwKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxp bmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDw0IHggaTMyPiBAX1oyNF9fY21faW50cmlu c2ljX2ltcGxfc3JlbXUyQ012YjRfaVNfKDw0IHggaTMyPiwgPDQgeCBpMzI+KSAjMTYgewotK2Rl ZmluZSBpbnRlcm5hbCA8NCB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNN dmI0X2lTXyg8NCB4IGkzMj4sIDw0IHggaTMyPikgIzE2IHsKLSAgICUzID0gYWxsb2NhIDw0IHgg aTMyPiwgYWxpZ24gMTYKLSAgICU0ID0gYWxsb2NhIDw0IHggaTMyPiwgYWxpZ24gMTYKLSAgICU1 ID0gYWxsb2NhIDw0IHggaTMyPiwgYWxpZ24gMTYKLUBAIC0yNzQ0LDcgKzI3NDQsNyBAQCBkZWZp bmUgZHNvX2xvY2FsIDw0IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012 YjRfaVNfKDw0IHggaTMyPiwgPAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBu b3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDggeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNf aW1wbF9zcmVtdTJDTXZiOF9pU18oPDggeCBpMzI+LCA8OCB4IGkzMj4pICMxNyB7Ci0rZGVmaW5l IGludGVybmFsIDw4IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012Yjhf aVNfKDw4IHggaTMyPiwgPDggeCBpMzI+KSAjMTcgewotICAgJTMgPSBhbGxvY2EgPDggeCBpMzI+ LCBhbGlnbiAzMgotICAgJTQgPSBhbGxvY2EgPDggeCBpMzI+LCBhbGlnbiAzMgotICAgJTUgPSBh bGxvY2EgPDggeCBpMzI+LCBhbGlnbiAzMgotQEAgLTI3NTgsNyArMjc1OCw3IEBAIGRlZmluZSBk c29fbG9jYWwgPDggeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiOF9p U18oPDggeCBpMzI+LCA8Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53 aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MTYgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1w bF9zcmVtdTJDTXZiMTZfaVNfKDwxNiB4IGkzMj4sIDwxNiB4IGkzMj4pICMxOCB7Ci0rZGVmaW5l IGludGVybmFsIDwxNiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIx Nl9pU18oPDE2IHggaTMyPiwgPDE2IHggaTMyPikgIzE4IHsKLSAgICUzID0gYWxsb2NhIDwxNiB4 IGkzMj4sIGFsaWduIDY0Ci0gICAlNCA9IGFsbG9jYSA8MTYgeCBpMzI+LCBhbGlnbiA2NAotICAg JTUgPSBhbGxvY2EgPDE2IHggaTMyPiwgYWxpZ24gNjQKLUBAIC0yNzcyLDcgKzI3NzIsNyBAQCBk ZWZpbmUgZHNvX2xvY2FsIDwxNiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11 MkNNdmIxNl9pU18oPDE2IHggaTMyPgotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGlu ZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDMyIHggaTMyPiBAX1oyNF9fY21faW50cmlu c2ljX2ltcGxfc3JlbXUyQ012YjMyX2lTXyg8MzIgeCBpMzI+LCA8MzIgeCBpMzI+KSAjMTkgewot K2RlZmluZSBpbnRlcm5hbCA8MzIgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVt dTJDTXZiMzJfaVNfKDwzMiB4IGkzMj4sIDwzMiB4IGkzMj4pICMxOSB7Ci0gICAlMyA9IGFsbG9j YSA8MzIgeCBpMzI+LCBhbGlnbiAxMjgKLSAgICU0ID0gYWxsb2NhIDwzMiB4IGkzMj4sIGFsaWdu IDEyOAotICAgJTUgPSBhbGxvY2EgPDMyIHggaTMyPiwgYWxpZ24gMTI4Ci1AQCAtMjc4Niw3ICsy Nzg2LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MzIgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNf aW1wbF9zcmVtdTJDTXZiMzJfaVNfKDwzMiB4IGkzMj4KLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRy czogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIHplcm9leHQgaTggQF9aMjRf X2NtX2ludHJpbnNpY19pbXBsX3VkaXZoaChpOCB6ZXJvZXh0LCBpOCB6ZXJvZXh0KSAjMjEgewot K2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGk4IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2 aGgoaTggemVyb2V4dCwgaTggemVyb2V4dCkgIzIxIHsKLSAgICUzID0gYWxsb2NhIGk4LCBhbGln biAxCi0gICAlNCA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2EgPDEgeCBpOD4s IGFsaWduIDEKLUBAIC0yODQ0LDcgKzI4NDQsNyBAQCBkZWZpbmUgaW50ZXJuYWwgPDEgeCBpOD4g QF9aTjdkZXRhaWxzMTRfX2ltcGxfdWRpdnJlbUlMaTFFRUV1MkNNdmJUX19oUzFfUzFfdTJDTQot IH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29f bG9jYWwgPDEgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1MkNNdmIxX2hTXyg8 MSB4IGk4PiwgPDEgeCBpOD4pICMyMSB7Ci0rZGVmaW5lIGludGVybmFsIDwxIHggaTg+IEBfWjI0 X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZiMV9oU18oPDEgeCBpOD4sIDwxIHggaTg+KSAj MjEgewotICAgJTMgPSBhbGxvY2EgPDEgeCBpOD4sIGFsaWduIDEKLSAgICU0ID0gYWxsb2NhIDwx IHggaTg+LCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSA8MSB4IGk4PiwgYWxpZ24gMQotQEAgLTI4 NjAsNyArMjg2MCw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDEgeCBpOD4gQF9aMjRfX2NtX2ludHJp bnNpY19pbXBsX3VkaXZ1MkNNdmIxX2hTXyg8MSB4IGk4PiwgPDEKLSB9Ci0gCi0gOyBGdW5jdGlv biBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwyIHggaTg+IEBf WjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZiMl9oU18oPDIgeCBpOD4sIDwyIHggaTg+ KSAjMjIgewotK2RlZmluZSBpbnRlcm5hbCA8MiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2lt cGxfdWRpdnUyQ012YjJfaFNfKDwyIHggaTg+LCA8MiB4IGk4PikgIzIyIHsKLSAgICUzID0gYWxs b2NhIDwyIHggaTg+LCBhbGlnbiAyCi0gICAlNCA9IGFsbG9jYSA8MiB4IGk4PiwgYWxpZ24gMgot ICAgJTUgPSBhbGxvY2EgPDIgeCBpOD4sIGFsaWduIDIKLUBAIC0yOTA2LDcgKzI5MDYsNyBAQCBk ZWZpbmUgaW50ZXJuYWwgPDIgeCBpOD4gQF9aTjdkZXRhaWxzMTRfX2ltcGxfdWRpdnJlbUlMaTJF RUV1MkNNdmJUX19oUzFfUzFfdTJDTQotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGlu ZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDQgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNp Y19pbXBsX3VkaXZ1MkNNdmI0X2hTXyg8NCB4IGk4PiwgPDQgeCBpOD4pICMxNCB7Ci0rZGVmaW5l IGludGVybmFsIDw0IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZiNF9o U18oPDQgeCBpOD4sIDw0IHggaTg+KSAjMTQgewotICAgJTMgPSBhbGxvY2EgPDQgeCBpOD4sIGFs aWduIDQKLSAgICU0ID0gYWxsb2NhIDw0IHggaTg+LCBhbGlnbiA0Ci0gICAlNSA9IGFsbG9jYSA8 NCB4IGk4PiwgYWxpZ24gNAotQEAgLTMwNDQsNyArMzA0NCw3IEBAIGRlZmluZSBpbnRlcm5hbCA8 MTYgeCBpOD4gQF9aTjdkZXRhaWxzMTRfX2ltcGxfdWRpdnJlbUlMaTE2RUVFdTJDTXZiVF9faFMx X1MxX3UyCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVm aW5lIGRzb19sb2NhbCA8MzIgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1MkNN dmIzMl9oU18oPDMyIHggaTg+LCA8MzIgeCBpOD4pICMxNyB7Ci0rZGVmaW5lIGludGVybmFsIDwz MiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRpdnUyQ012YjMyX2hTXyg8MzIgeCBp OD4sIDwzMiB4IGk4PikgIzE3IHsKLSAgICUzID0gYWxsb2NhIDwzMiB4IGk4PiwgYWxpZ24gMzIK LSAgICU0ID0gYWxsb2NhIDwzMiB4IGk4PiwgYWxpZ24gMzIKLSAgICU1ID0gYWxsb2NhIDwzMiB4 IGk4PiwgYWxpZ24gMzIKLUBAIC0zMDkwLDcgKzMwOTAsNyBAQCBkZWZpbmUgaW50ZXJuYWwgPDMy IHggaTg+IEBfWk43ZGV0YWlsczE0X19pbXBsX3VkaXZyZW1JTGkzMkVFRXUyQ012YlRfX2hTMV9T MV91MgotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmlu ZSBkc29fbG9jYWwgemVyb2V4dCBpOCBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbWhoKGk4 IHplcm9leHQsIGk4IHplcm9leHQpICMyMSB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQgaTgg QF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW1oaChpOCB6ZXJvZXh0LCBpOCB6ZXJvZXh0KSAj MjEgewotICAgJTMgPSBhbGxvY2EgaTgsIGFsaWduIDEKLSAgICU0ID0gYWxsb2NhIGk4LCBhbGln biAxCi0gICAlNSA9IGFsbG9jYSA8MSB4IGk4PiwgYWxpZ24gMQotQEAgLTMxMTYsNyArMzExNiw3 IEBAIGRlZmluZSBkc29fbG9jYWwgemVyb2V4dCBpOCBAX1oyNF9fY21faW50cmluc2ljX2ltcGxf dXJlbWhoKGk4IHplcm9leHQsIGk4IHplcm9lCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5v aW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MSB4IGk4PiBAX1oyNF9fY21faW50 cmluc2ljX2ltcGxfdXJlbXUyQ012YjFfaFNfKDwxIHggaTg+LCA8MSB4IGk4PikgIzIxIHsKLStk ZWZpbmUgaW50ZXJuYWwgPDEgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNN dmIxX2hTXyg8MSB4IGk4PiwgPDEgeCBpOD4pICMyMSB7Ci0gICAlMyA9IGFsbG9jYSA8MSB4IGk4 PiwgYWxpZ24gMQotICAgJTQgPSBhbGxvY2EgPDEgeCBpOD4sIGFsaWduIDEKLSAgICU1ID0gYWxs b2NhIDwxIHggaTg+LCBhbGlnbiAxCi1AQCAtMzEzMCw3ICszMTMwLDcgQEAgZGVmaW5lIGRzb19s b2NhbCA8MSB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjFfaFNfKDwx IHggaTg+LCA8MQotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAot LWRlZmluZSBkc29fbG9jYWwgPDIgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11 MkNNdmIyX2hTXyg8MiB4IGk4PiwgPDIgeCBpOD4pICMyMiB7Ci0rZGVmaW5lIGludGVybmFsIDwy IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMl9oU18oPDIgeCBpOD4s IDwyIHggaTg+KSAjMjIgewotICAgJTMgPSBhbGxvY2EgPDIgeCBpOD4sIGFsaWduIDIKLSAgICU0 ID0gYWxsb2NhIDwyIHggaTg+LCBhbGlnbiAyCi0gICAlNSA9IGFsbG9jYSA8MiB4IGk4PiwgYWxp Z24gMgotQEAgLTMxNDQsNyArMzE0NCw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDIgeCBpOD4gQF9a MjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIyX2hTXyg8MiB4IGk4PiwgPDIKLSB9Ci0g Ci0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2Fs IDw0IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiNF9oU18oPDQgeCBp OD4sIDw0IHggaTg+KSAjMTQgewotK2RlZmluZSBpbnRlcm5hbCA8NCB4IGk4PiBAX1oyNF9fY21f aW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjRfaFNfKDw0IHggaTg+LCA8NCB4IGk4PikgIzE0IHsK LSAgICUzID0gYWxsb2NhIDw0IHggaTg+LCBhbGlnbiA0Ci0gICAlNCA9IGFsbG9jYSA8NCB4IGk4 PiwgYWxpZ24gNAotICAgJTUgPSBhbGxvY2EgPDQgeCBpOD4sIGFsaWduIDQKLUBAIC0zMTU4LDcg KzMxNTgsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDw0IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNf aW1wbF91cmVtdTJDTXZiNF9oU18oPDQgeCBpOD4sIDw0Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0 cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8OCB4IGk4PiBAX1oyNF9f Y21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjhfaFNfKDw4IHggaTg+LCA8OCB4IGk4PikgIzE1 IHsKLStkZWZpbmUgaW50ZXJuYWwgPDggeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3Vy ZW11MkNNdmI4X2hTXyg8OCB4IGk4PiwgPDggeCBpOD4pICMxNSB7Ci0gICAlMyA9IGFsbG9jYSA8 OCB4IGk4PiwgYWxpZ24gOAotICAgJTQgPSBhbGxvY2EgPDggeCBpOD4sIGFsaWduIDgKLSAgICU1 ID0gYWxsb2NhIDw4IHggaTg+LCBhbGlnbiA4Ci1AQCAtMzE3Miw3ICszMTcyLDcgQEAgZGVmaW5l IGRzb19sb2NhbCA8OCB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012Yjhf aFNfKDw4IHggaTg+LCA8OAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vu d2luZAotLWRlZmluZSBkc29fbG9jYWwgPDE2IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1w bF91cmVtdTJDTXZiMTZfaFNfKDwxNiB4IGk4PiwgPDE2IHggaTg+KSAjMTYgewotK2RlZmluZSBp bnRlcm5hbCA8MTYgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIxNl9o U18oPDE2IHggaTg+LCA8MTYgeCBpOD4pICMxNiB7Ci0gICAlMyA9IGFsbG9jYSA8MTYgeCBpOD4s IGFsaWduIDE2Ci0gICAlNCA9IGFsbG9jYSA8MTYgeCBpOD4sIGFsaWduIDE2Ci0gICAlNSA9IGFs bG9jYSA8MTYgeCBpOD4sIGFsaWduIDE2Ci1AQCAtMzE4Niw3ICszMTg2LDcgQEAgZGVmaW5lIGRz b19sb2NhbCA8MTYgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIxNl9o U18oPDE2IHggaTg+LAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2lu ZAotLWRlZmluZSBkc29fbG9jYWwgPDMyIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91 cmVtdTJDTXZiMzJfaFNfKDwzMiB4IGk4PiwgPDMyIHggaTg+KSAjMTcgewotK2RlZmluZSBpbnRl cm5hbCA8MzIgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIzMl9oU18o PDMyIHggaTg+LCA8MzIgeCBpOD4pICMxNyB7Ci0gICAlMyA9IGFsbG9jYSA8MzIgeCBpOD4sIGFs aWduIDMyCi0gICAlNCA9IGFsbG9jYSA8MzIgeCBpOD4sIGFsaWduIDMyCi0gICAlNSA9IGFsbG9j YSA8MzIgeCBpOD4sIGFsaWduIDMyCi1AQCAtMzIwMCw3ICszMjAwLDcgQEAgZGVmaW5lIGRzb19s b2NhbCA8MzIgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIzMl9oU18o PDMyIHggaTg+LAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAot LWRlZmluZSBkc29fbG9jYWwgemVyb2V4dCBpMTYgQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3Vk aXZ0dChpMTYgemVyb2V4dCwgaTE2IHplcm9leHQpICMyMiB7Ci0rZGVmaW5lIGludGVybmFsIHpl cm9leHQgaTE2IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dHQoaTE2IHplcm9leHQsIGkx NiB6ZXJvZXh0KSAjMjIgewotICAgJTMgPSBhbGxvY2EgaTE2LCBhbGlnbiAyCi0gICAlNCA9IGFs bG9jYSBpMTYsIGFsaWduIDIKLSAgICU1ID0gYWxsb2NhIDwxIHggaTE2PiwgYWxpZ24gMgotQEAg LTMyNzgsNyArMzI3OCw3IEBAIGRlZmluZSBpbnRlcm5hbCA8MSB4IGkxNj4gQF9aTjdkZXRhaWxz MTRfX2ltcGxfdWRpdnJlbUlMaTFFRUV1MkNNdmJUX190UzFfUzFfdTJDCi0gfQotIAotIDsgRnVu Y3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MSB4IGkx Nj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1MkNNdmIxX3RTXyg8MSB4IGkxNj4sIDwx IHggaTE2PikgIzIyIHsKLStkZWZpbmUgaW50ZXJuYWwgPDEgeCBpMTY+IEBfWjI0X19jbV9pbnRy aW5zaWNfaW1wbF91ZGl2dTJDTXZiMV90U18oPDEgeCBpMTY+LCA8MSB4IGkxNj4pICMyMiB7Ci0g ICAlMyA9IGFsbG9jYSA8MSB4IGkxNj4sIGFsaWduIDIKLSAgICU0ID0gYWxsb2NhIDwxIHggaTE2 PiwgYWxpZ24gMgotICAgJTUgPSBhbGxvY2EgPDEgeCBpMTY+LCBhbGlnbiAyCi1AQCAtMzI5NCw3 ICszMjk0LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MSB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNp Y19pbXBsX3VkaXZ1MkNNdmIxX3RTXyg8MSB4IGkxNj4sIDwKLSB9Ci0gCi0gOyBGdW5jdGlvbiBB dHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwyIHggaTE2PiBAX1oy NF9fY21faW50cmluc2ljX2ltcGxfdWRpdnUyQ012YjJfdFNfKDwyIHggaTE2PiwgPDIgeCBpMTY+ KSAjMTQgewotK2RlZmluZSBpbnRlcm5hbCA8MiB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19p bXBsX3VkaXZ1MkNNdmIyX3RTXyg8MiB4IGkxNj4sIDwyIHggaTE2PikgIzE0IHsKLSAgICUzID0g YWxsb2NhIDwyIHggaTE2PiwgYWxpZ24gNAotICAgJTQgPSBhbGxvY2EgPDIgeCBpMTY+LCBhbGln biA0Ci0gICAlNSA9IGFsbG9jYSA8MiB4IGkxNj4sIGFsaWduIDQKLUBAIC0zMzYwLDcgKzMzNjAs NyBAQCBkZWZpbmUgaW50ZXJuYWwgPDIgeCBpMTY+IEBfWk43ZGV0YWlsczE0X19pbXBsX3VkaXZy ZW1JTGkyRUVFdTJDTXZiVF9fdFMxX1MxX3UyQwotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBu b2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDQgeCBpMTY+IEBfWjI0X19jbV9p bnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZiNF90U18oPDQgeCBpMTY+LCA8NCB4IGkxNj4pICMxNSB7 Ci0rZGVmaW5lIGludGVybmFsIDw0IHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRp dnUyQ012YjRfdFNfKDw0IHggaTE2PiwgPDQgeCBpMTY+KSAjMTUgewotICAgJTMgPSBhbGxvY2Eg PDQgeCBpMTY+LCBhbGlnbiA4Ci0gICAlNCA9IGFsbG9jYSA8NCB4IGkxNj4sIGFsaWduIDgKLSAg ICU1ID0gYWxsb2NhIDw0IHggaTE2PiwgYWxpZ24gOAotQEAgLTM1NTgsNyArMzU1OCw3IEBAIGRl ZmluZSBpbnRlcm5hbCA8MTYgeCBpMTY+IEBfWk43ZGV0YWlsczE0X19pbXBsX3VkaXZyZW1JTGkx NkVFRXUyQ012YlRfX3RTMV9TMV91Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5l IG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MzIgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5z aWNfaW1wbF91ZGl2dTJDTXZiMzJfdFNfKDwzMiB4IGkxNj4sIDwzMiB4IGkxNj4pICMxOCB7Ci0r ZGVmaW5lIGludGVybmFsIDwzMiB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1 MkNNdmIzMl90U18oPDMyIHggaTE2PiwgPDMyIHggaTE2PikgIzE4IHsKLSAgICUzID0gYWxsb2Nh IDwzMiB4IGkxNj4sIGFsaWduIDY0Ci0gICAlNCA9IGFsbG9jYSA8MzIgeCBpMTY+LCBhbGlnbiA2 NAotICAgJTUgPSBhbGxvY2EgPDMyIHggaTE2PiwgYWxpZ24gNjQKLUBAIC0zNjI0LDcgKzM2MjQs NyBAQCBkZWZpbmUgaW50ZXJuYWwgPDMyIHggaTE2PiBAX1pON2RldGFpbHMxNF9faW1wbF91ZGl2 cmVtSUxpMzJFRUV1MkNNdmJUX190UzFfUzFfdQotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBu b2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgemVyb2V4dCBpMTYgQF9aMjRfX2Nt X2ludHJpbnNpY19pbXBsX3VyZW10dChpMTYgemVyb2V4dCwgaTE2IHplcm9leHQpICMyMiB7Ci0r ZGVmaW5lIGludGVybmFsIHplcm9leHQgaTE2IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVt dHQoaTE2IHplcm9leHQsIGkxNiB6ZXJvZXh0KSAjMjIgewotICAgJTMgPSBhbGxvY2EgaTE2LCBh bGlnbiAyCi0gICAlNCA9IGFsbG9jYSBpMTYsIGFsaWduIDIKLSAgICU1ID0gYWxsb2NhIDwxIHgg aTE2PiwgYWxpZ24gMgotQEAgLTM2NTAsNyArMzY1MCw3IEBAIGRlZmluZSBkc29fbG9jYWwgemVy b2V4dCBpMTYgQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW10dChpMTYgemVyb2V4dCwgaTE2 IHplCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5l IGRzb19sb2NhbCA8MSB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIx X3RTXyg8MSB4IGkxNj4sIDwxIHggaTE2PikgIzIyIHsKLStkZWZpbmUgaW50ZXJuYWwgPDEgeCBp MTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMV90U18oPDEgeCBpMTY+LCA8 MSB4IGkxNj4pICMyMiB7Ci0gICAlMyA9IGFsbG9jYSA8MSB4IGkxNj4sIGFsaWduIDIKLSAgICU0 ID0gYWxsb2NhIDwxIHggaTE2PiwgYWxpZ24gMgotICAgJTUgPSBhbGxvY2EgPDEgeCBpMTY+LCBh bGlnbiAyCi1AQCAtMzY2NCw3ICszNjY0LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MSB4IGkxNj4g QF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIxX3RTXyg8MSB4IGkxNj4sIDwKLSB9 Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xv Y2FsIDwyIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjJfdFNfKDwy IHggaTE2PiwgPDIgeCBpMTY+KSAjMTQgewotK2RlZmluZSBpbnRlcm5hbCA8MiB4IGkxNj4gQF9a MjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIyX3RTXyg8MiB4IGkxNj4sIDwyIHggaTE2 PikgIzE0IHsKLSAgICUzID0gYWxsb2NhIDwyIHggaTE2PiwgYWxpZ24gNAotICAgJTQgPSBhbGxv Y2EgPDIgeCBpMTY+LCBhbGlnbiA0Ci0gICAlNSA9IGFsbG9jYSA8MiB4IGkxNj4sIGFsaWduIDQK LUBAIC0zNjc4LDcgKzM2NzgsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwyIHggaTE2PiBAX1oyNF9f Y21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjJfdFNfKDwyIHggaTE2PiwgPAotIH0KLSAKLSA7 IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDQg eCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiNF90U18oPDQgeCBpMTY+ LCA8NCB4IGkxNj4pICMxNSB7Ci0rZGVmaW5lIGludGVybmFsIDw0IHggaTE2PiBAX1oyNF9fY21f aW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjRfdFNfKDw0IHggaTE2PiwgPDQgeCBpMTY+KSAjMTUg ewotICAgJTMgPSBhbGxvY2EgPDQgeCBpMTY+LCBhbGlnbiA4Ci0gICAlNCA9IGFsbG9jYSA8NCB4 IGkxNj4sIGFsaWduIDgKLSAgICU1ID0gYWxsb2NhIDw0IHggaTE2PiwgYWxpZ24gOAotQEAgLTM2 OTIsNyArMzY5Miw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDQgeCBpMTY+IEBfWjI0X19jbV9pbnRy aW5zaWNfaW1wbF91cmVtdTJDTXZiNF90U18oPDQgeCBpMTY+LCA8Ci0gfQotIAotIDsgRnVuY3Rp b24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8OCB4IGkxNj4g QF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmI4X3RTXyg8OCB4IGkxNj4sIDw4IHgg aTE2PikgIzE2IHsKLStkZWZpbmUgaW50ZXJuYWwgPDggeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5z aWNfaW1wbF91cmVtdTJDTXZiOF90U18oPDggeCBpMTY+LCA8OCB4IGkxNj4pICMxNiB7Ci0gICAl MyA9IGFsbG9jYSA8OCB4IGkxNj4sIGFsaWduIDE2Ci0gICAlNCA9IGFsbG9jYSA8OCB4IGkxNj4s IGFsaWduIDE2Ci0gICAlNSA9IGFsbG9jYSA8OCB4IGkxNj4sIGFsaWduIDE2Ci1AQCAtMzcwNiw3 ICszNzA2LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8OCB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNp Y19pbXBsX3VyZW11MkNNdmI4X3RTXyg8OCB4IGkxNj4sIDwKLSB9Ci0gCi0gOyBGdW5jdGlvbiBB dHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwxNiB4IGkxNj4gQF9a MjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIxNl90U18oPDE2IHggaTE2PiwgPDE2IHgg aTE2PikgIzE3IHsKLStkZWZpbmUgaW50ZXJuYWwgPDE2IHggaTE2PiBAX1oyNF9fY21faW50cmlu c2ljX2ltcGxfdXJlbXUyQ012YjE2X3RTXyg8MTYgeCBpMTY+LCA8MTYgeCBpMTY+KSAjMTcgewot ICAgJTMgPSBhbGxvY2EgPDE2IHggaTE2PiwgYWxpZ24gMzIKLSAgICU0ID0gYWxsb2NhIDwxNiB4 IGkxNj4sIGFsaWduIDMyCi0gICAlNSA9IGFsbG9jYSA8MTYgeCBpMTY+LCBhbGlnbiAzMgotQEAg LTM3MjAsNyArMzcyMCw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDE2IHggaTE2PiBAX1oyNF9fY21f aW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjE2X3RTXyg8MTYgeCBpMTY+Ci0gfQotIAotIDsgRnVu Y3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MzIgeCBp MTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMzJfdFNfKDwzMiB4IGkxNj4s IDwzMiB4IGkxNj4pICMxOCB7Ci0rZGVmaW5lIGludGVybmFsIDwzMiB4IGkxNj4gQF9aMjRfX2Nt X2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIzMl90U18oPDMyIHggaTE2PiwgPDMyIHggaTE2Pikg IzE4IHsKLSAgICUzID0gYWxsb2NhIDwzMiB4IGkxNj4sIGFsaWduIDY0Ci0gICAlNCA9IGFsbG9j YSA8MzIgeCBpMTY+LCBhbGlnbiA2NAotICAgJTUgPSBhbGxvY2EgPDMyIHggaTE2PiwgYWxpZ24g NjQKLUBAIC0zNzM0LDcgKzM3MzQsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwzMiB4IGkxNj4gQF9a MjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIzMl90U18oPDMyIHggaTE2PgotIH0KLSAK LSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwg aTMyIEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2amooaTMyLCBpMzIpICMxNCB7Ci0rZGVm aW5lIGludGVybmFsIGkzMiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRpdmpqKGkzMiwgaTMy KSAjMTQgewotICAgJTMgPSBhbGxvY2EgaTMyLCBhbGlnbiA0Ci0gICAlNCA9IGFsbG9jYSBpMzIs IGFsaWduIDQKLSAgICU1ID0gYWxsb2NhIDwxIHggaTMyPiwgYWxpZ24gNAotQEAgLTM4OTIsNyAr Mzg5Miw3IEBAIGRlZmluZSBpbnRlcm5hbCA8MSB4IGkzMj4gQF9aTjdkZXRhaWxzMTRfX2ltcGxf dWRpdnJlbUlMaTFFRUV1MkNNdmJUX19qUzFfUzFfdTJDCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0 cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MSB4IGkzMj4gQF9aMjRf X2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1MkNNdmIxX2pTXyg8MSB4IGkzMj4sIDwxIHggaTMyPikg IzE0IHsKLStkZWZpbmUgaW50ZXJuYWwgPDEgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1w bF91ZGl2dTJDTXZiMV9qU18oPDEgeCBpMzI+LCA8MSB4IGkzMj4pICMxNCB7Ci0gICAlMyA9IGFs bG9jYSA8MSB4IGkzMj4sIGFsaWduIDQKLSAgICU0ID0gYWxsb2NhIDwxIHggaTMyPiwgYWxpZ24g NAotICAgJTUgPSBhbGxvY2EgPDEgeCBpMzI+LCBhbGlnbiA0Ci1AQCAtMzkwOCw3ICszOTA4LDcg QEAgZGVmaW5lIGRzb19sb2NhbCA8MSB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3Vk aXZ1MkNNdmIxX2pTXyg8MSB4IGkzMj4sIDwKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9p bmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwyIHggaTMyPiBAX1oyNF9fY21faW50 cmluc2ljX2ltcGxfdWRpdnUyQ012YjJfalNfKDwyIHggaTMyPiwgPDIgeCBpMzI+KSAjMTUgewot K2RlZmluZSBpbnRlcm5hbCA8MiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1 MkNNdmIyX2pTXyg8MiB4IGkzMj4sIDwyIHggaTMyPikgIzE1IHsKLSAgICUzID0gYWxsb2NhIDwy IHggaTMyPiwgYWxpZ24gOAotICAgJTQgPSBhbGxvY2EgPDIgeCBpMzI+LCBhbGlnbiA4Ci0gICAl NSA9IGFsbG9jYSA8MiB4IGkzMj4sIGFsaWduIDgKLUBAIC00MDU0LDcgKzQwNTQsNyBAQCBkZWZp bmUgaW50ZXJuYWwgPDIgeCBpMzI+IEBfWk43ZGV0YWlsczE0X19pbXBsX3VkaXZyZW1JTGkyRUVF dTJDTXZiVF9falMxX1MxX3UyQwotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBu b3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDQgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNf aW1wbF91ZGl2dTJDTXZiNF9qU18oPDQgeCBpMzI+LCA8NCB4IGkzMj4pICMxNiB7Ci0rZGVmaW5l IGludGVybmFsIDw0IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRpdnUyQ012YjRf alNfKDw0IHggaTMyPiwgPDQgeCBpMzI+KSAjMTYgewotICAgJTMgPSBhbGxvY2EgPDQgeCBpMzI+ LCBhbGlnbiAxNgotICAgJTQgPSBhbGxvY2EgPDQgeCBpMzI+LCBhbGlnbiAxNgotICAgJTUgPSBh bGxvY2EgPDQgeCBpMzI+LCBhbGlnbiAxNgotQEAgLTQ0OTIsNyArNDQ5Miw3IEBAIGRlZmluZSBp bnRlcm5hbCA8MTYgeCBpMzI+IEBfWk43ZGV0YWlsczE0X19pbXBsX3VkaXZyZW1JTGkxNkVFRXUy Q012YlRfX2pTMV9TMV91Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53 aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MzIgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1w bF91ZGl2dTJDTXZiMzJfalNfKDwzMiB4IGkzMj4sIDwzMiB4IGkzMj4pICMxOSB7Ci0rZGVmaW5l IGludGVybmFsIDwzMiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1MkNNdmIz Ml9qU18oPDMyIHggaTMyPiwgPDMyIHggaTMyPikgIzE5IHsKLSAgICUzID0gYWxsb2NhIDwzMiB4 IGkzMj4sIGFsaWduIDEyOAotICAgJTQgPSBhbGxvY2EgPDMyIHggaTMyPiwgYWxpZ24gMTI4Ci0g ICAlNSA9IGFsbG9jYSA8MzIgeCBpMzI+LCBhbGlnbiAxMjgKLUBAIC00NjM4LDcgKzQ2MzgsNyBA QCBkZWZpbmUgaW50ZXJuYWwgPDMyIHggaTMyPiBAX1pON2RldGFpbHMxNF9faW1wbF91ZGl2cmVt SUxpMzJFRUV1MkNNdmJUX19qUzFfUzFfdQotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lu bGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgaTMyIEBfWjI0X19jbV9pbnRyaW5zaWNf aW1wbF91cmVtamooaTMyLCBpMzIpICMxNCB7Ci0rZGVmaW5lIGludGVybmFsIGkzMiBAX1oyNF9f Y21faW50cmluc2ljX2ltcGxfdXJlbWpqKGkzMiwgaTMyKSAjMTQgewotICAgJTMgPSBhbGxvY2Eg aTMyLCBhbGlnbiA0Ci0gICAlNCA9IGFsbG9jYSBpMzIsIGFsaWduIDQKLSAgICU1ID0gYWxsb2Nh IDwxIHggaTMyPiwgYWxpZ24gNAotQEAgLTQ2NjQsNyArNDY2NCw3IEBAIGRlZmluZSBkc29fbG9j YWwgaTMyIEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtamooaTMyLCBpMzIpICMxNCB7Ci0g fQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19s b2NhbCA8MSB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIxX2pTXyg8 MSB4IGkzMj4sIDwxIHggaTMyPikgIzE0IHsKLStkZWZpbmUgaW50ZXJuYWwgPDEgeCBpMzI+IEBf WjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMV9qU18oPDEgeCBpMzI+LCA8MSB4IGkz Mj4pICMxNCB7Ci0gICAlMyA9IGFsbG9jYSA8MSB4IGkzMj4sIGFsaWduIDQKLSAgICU0ID0gYWxs b2NhIDwxIHggaTMyPiwgYWxpZ24gNAotICAgJTUgPSBhbGxvY2EgPDEgeCBpMzI+LCBhbGlnbiA0 Ci1AQCAtNDY3OCw3ICs0Njc4LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MSB4IGkzMj4gQF9aMjRf X2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIxX2pTXyg8MSB4IGkzMj4sIDwKLSB9Ci0gCi0g OyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwy IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjJfalNfKDwyIHggaTMy PiwgPDIgeCBpMzI+KSAjMTUgewotK2RlZmluZSBpbnRlcm5hbCA8MiB4IGkzMj4gQF9aMjRfX2Nt X2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIyX2pTXyg8MiB4IGkzMj4sIDwyIHggaTMyPikgIzE1 IHsKLSAgICUzID0gYWxsb2NhIDwyIHggaTMyPiwgYWxpZ24gOAotICAgJTQgPSBhbGxvY2EgPDIg eCBpMzI+LCBhbGlnbiA4Ci0gICAlNSA9IGFsbG9jYSA8MiB4IGkzMj4sIGFsaWduIDgKLUBAIC00 NjkyLDcgKzQ2OTIsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwyIHggaTMyPiBAX1oyNF9fY21faW50 cmluc2ljX2ltcGxfdXJlbXUyQ012YjJfalNfKDwyIHggaTMyPiwgPAotIH0KLSAKLSA7IEZ1bmN0 aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDQgeCBpMzI+ IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiNF9qU18oPDQgeCBpMzI+LCA8NCB4 IGkzMj4pICMxNiB7Ci0rZGVmaW5lIGludGVybmFsIDw0IHggaTMyPiBAX1oyNF9fY21faW50cmlu c2ljX2ltcGxfdXJlbXUyQ012YjRfalNfKDw0IHggaTMyPiwgPDQgeCBpMzI+KSAjMTYgewotICAg JTMgPSBhbGxvY2EgPDQgeCBpMzI+LCBhbGlnbiAxNgotICAgJTQgPSBhbGxvY2EgPDQgeCBpMzI+ LCBhbGlnbiAxNgotICAgJTUgPSBhbGxvY2EgPDQgeCBpMzI+LCBhbGlnbiAxNgotQEAgLTQ3MDYs NyArNDcwNiw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDQgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5z aWNfaW1wbF91cmVtdTJDTXZiNF9qU18oPDQgeCBpMzI+LCA8Ci0gfQotIAotIDsgRnVuY3Rpb24g QXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8OCB4IGkzMj4gQF9a MjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmI4X2pTXyg8OCB4IGkzMj4sIDw4IHggaTMy PikgIzE3IHsKLStkZWZpbmUgaW50ZXJuYWwgPDggeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNf aW1wbF91cmVtdTJDTXZiOF9qU18oPDggeCBpMzI+LCA8OCB4IGkzMj4pICMxNyB7Ci0gICAlMyA9 IGFsbG9jYSA8OCB4IGkzMj4sIGFsaWduIDMyCi0gICAlNCA9IGFsbG9jYSA8OCB4IGkzMj4sIGFs aWduIDMyCi0gICAlNSA9IGFsbG9jYSA8OCB4IGkzMj4sIGFsaWduIDMyCi1AQCAtNDcyMCw3ICs0 NzIwLDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8OCB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19p bXBsX3VyZW11MkNNdmI4X2pTXyg8OCB4IGkzMj4sIDwKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRy czogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwxNiB4IGkzMj4gQF9aMjRf X2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIxNl9qU18oPDE2IHggaTMyPiwgPDE2IHggaTMy PikgIzE4IHsKLStkZWZpbmUgaW50ZXJuYWwgPDE2IHggaTMyPiBAX1oyNF9fY21faW50cmluc2lj X2ltcGxfdXJlbXUyQ012YjE2X2pTXyg8MTYgeCBpMzI+LCA8MTYgeCBpMzI+KSAjMTggewotICAg JTMgPSBhbGxvY2EgPDE2IHggaTMyPiwgYWxpZ24gNjQKLSAgICU0ID0gYWxsb2NhIDwxNiB4IGkz Mj4sIGFsaWduIDY0Ci0gICAlNSA9IGFsbG9jYSA8MTYgeCBpMzI+LCBhbGlnbiA2NAotQEAgLTQ3 MzQsNyArNDczNCw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDE2IHggaTMyPiBAX1oyNF9fY21faW50 cmluc2ljX2ltcGxfdXJlbXUyQ012YjE2X2pTXyg8MTYgeCBpMzI+Ci0gfQotIAotIDsgRnVuY3Rp b24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MzIgeCBpMzI+ IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMzJfalNfKDwzMiB4IGkzMj4sIDwz MiB4IGkzMj4pICMxOSB7Ci0rZGVmaW5lIGludGVybmFsIDwzMiB4IGkzMj4gQF9aMjRfX2NtX2lu dHJpbnNpY19pbXBsX3VyZW11MkNNdmIzMl9qU18oPDMyIHggaTMyPiwgPDMyIHggaTMyPikgIzE5 IHsKLSAgICUzID0gYWxsb2NhIDwzMiB4IGkzMj4sIGFsaWduIDEyOAotICAgJTQgPSBhbGxvY2Eg PDMyIHggaTMyPiwgYWxpZ24gMTI4Ci0gICAlNSA9IGFsbG9jYSA8MzIgeCBpMzI+LCBhbGlnbiAx MjgKLUBAIC00NzQ4LDcgKzQ3NDgsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwzMiB4IGkzMj4gQF9a MjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIzMl9qU18oPDMyIHggaTMyPgotIH0KLSAK LSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwg dm9pZCBAX19kb19wcmludF9jbShpOCosIGk4KiwgaTMyLCBpNjQsIGkzMiosIGkzMiwgaTMyKSAj MjMgIWRiZyAhMTUgewotK2RlZmluZSBpbnRlcm5hbCB2b2lkIEBfX2RvX3ByaW50X2NtKGk4Kiwg aTgqLCBpMzIsIGk2NCwgaTMyKiwgaTMyLCBpMzIpICMyMyAhZGJnICExNSB7Ci0gICAlOCA9IGFs bG9jYSBpOCosIGFsaWduIDQKLSAgICU5ID0gYWxsb2NhIGk4KiwgYWxpZ24gNAotICAgJTEwID0g YWxsb2NhIGkzMiwgYWxpZ24gNAotQEAgLTQ5ODgsNyArNDk4OCw3IEBAIGRlZmluZSBpbnRlcm5h bCB2b2lkIEBfWk43ZGV0YWlsczE2X2NtX3ByaW50X2Zvcm1hdElMaTEyOEVFRXYxNWNtX3N1cmZh Y2VpbmRleGp1Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0t ZGVmaW5lIGRzb19sb2NhbCB2b2lkIEBfX2RvX3ByaW50X2x6KGkzMiwgaTgqLCBpMzIsIGk2NCwg aTMyKiwgaTMyLCBpMzIsIGkzMiwgaTMyKSAjMjYgIWRiZyAhMTE3IHsKLStkZWZpbmUgaW50ZXJu YWwgdm9pZCBAX19kb19wcmludF9seihpMzIsIGk4KiwgaTMyLCBpNjQsIGkzMiosIGkzMiwgaTMy LCBpMzIsIGkzMikgIzI2ICFkYmcgITExNyB7Ci0gICAlMTAgPSBhbGxvY2EgaTMyLCBhbGlnbiA0 Ci0gICAlMTEgPSBhbGxvY2EgaTgqLCBhbGlnbiA0Ci0gICAlMTIgPSBhbGxvY2EgaTMyLCBhbGln biA0Ci1AQCAtNTA2OSw3ICs1MDY5LDcgQEAgZGVmaW5lIGRzb19sb2NhbCB2b2lkIEBfX2RvX3By aW50X2x6KGkzMiwgaTgqLCBpMzIsIGk2NCwgaTMyKiwgaTMyLCBpMzIsIGkzMiwgaTMKLSAgICU2 NyA9IGxvYWQgaTY0LCBpNjQqICUxMywgYWxpZ24gOCwgIWRiZyAhMTU5LCAhdGJhYSAhMTkKLSAg ICU2OCA9IGxvYWQgPDUgeCBpMzI+LCA8NSB4IGkzMj4qICUyMSwgYWxpZ24gMzIsICFkYmcgITE2 MCwgIXRiYWEgITcKLSAgIGNhbGwgdm9pZCBAX1pOMTNWYXJ5aW5nV3JpdGVyQzJFUmpSUEtqaXl1 MkNNdmI1X2koJWNsYXNzLlZhcnlpbmdXcml0ZXIqICUyMywgaTMyKiBkZXJlZmVyZW5jZWFibGUo NCkgJTE5LCBpMzIqKiBkZXJlZmVyZW5jZWFibGUoNCkgJTE0LCBpMzIgJTY2LCBpNjQgJTY3LCA8 NSB4IGkzMj4gJTY4KSwgIWRiZyAhMTYxCi0tICAlNjkgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQ cmludEluZm8xNHN3aXRjaEVuY29kaW5nSTEzVW5pZm9ybVdyaXRlcjEzVmFyeWluZ1dyaXRlckVF Yk5TXzhFbmNvZGluZ0VUX1QwXyhpOCBzaWduZXh0ICU2MiwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIq IGJ5dmFsIGFsaWduIDMyICUyMiwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsIGFsaWduIDMy ICUyMyksICFkYmcgITE2MgotKyAgJTY5ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZv MTRzd2l0Y2hFbmNvZGluZ0kxM1VuaWZvcm1Xcml0ZXIxM1ZhcnlpbmdXcml0ZXJFRWJOU184RW5j b2RpbmdFVF9UMF8oaTggc2lnbmV4dCAlNjIsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCgl Y2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24gMzIgJTIyLCAlY2xhc3MuVmFyeWluZ1dyaXRlciog Ynl2YWwoJWNsYXNzLlZhcnlpbmdXcml0ZXIpIGFsaWduIDMyICUyMyksICFkYmcgITE2MgotICAg YnIgbGFiZWwgJTcwLCAhZGJnICExNjMKLSAKLSA7IDxsYWJlbD46NzA6ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDsgcHJlZHMgPSAlNjAKLUBAIC01MTg3LDcgKzUxODcsNyBA QCBkZWZpbmUgaW50ZXJuYWwgPDUgeCBpMzI+IEBfWjE3Z2V0X2F1eGlsaWFyeV9zdHJ2KCkgIzI4 IGNvbWRhdCAhZGJnICExNzggewotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBhbHdheXNpbmxp bmUgaW5saW5laGludCBub3Vud2luZAotLWRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45 UHJpbnRJbmZvMTRzd2l0Y2hFbmNvZGluZ0kxM1VuaWZvcm1Xcml0ZXIxM1ZhcnlpbmdXcml0ZXJF RWJOU184RW5jb2RpbmdFVF9UMF8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5 dmFsIGFsaWduIDMyLCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwgYWxpZ24gMzIpICMyNSBj b21kYXQgIWRiZyAhMTkxIHsKLStkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50 SW5mbzE0c3dpdGNoRW5jb2RpbmdJMTNVbmlmb3JtV3JpdGVyMTNWYXJ5aW5nV3JpdGVyRUViTlNf OEVuY29kaW5nRVRfVDBfKGk4IHNpZ25leHQsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCgl Y2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24gMzIsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZh bCglY2xhc3MuVmFyeWluZ1dyaXRlcikgYWxpZ24gMzIpICMyNSBjb21kYXQgIWRiZyAhMTkxIHsK LSAgICU0ID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSAlY2xhc3MuVW5pZm9y bVdyaXRlciwgYWxpZ24gMzIKLSAgICU2ID0gYWxsb2NhICVjbGFzcy5WYXJ5aW5nV3JpdGVyLCBh bGlnbiAzMgotQEAgLTUxOTYsNyArNTE5Niw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkx IEBfWk45UHJpbnRJbmZvMTRzd2l0Y2hFbmNvZGluZ0kxM1VuaWZvcm1Xcml0ZXIxM1ZhcnlpCi0g ICAlOCA9IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqICU1IHRvIGk4KiwgIWRiZyAhMTk2 Ci0gICAlOSA9IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqICUxIHRvIGk4KiwgIWRiZyAh MTk2Ci0gICBjYWxsIHZvaWQgQGxsdm0ubWVtY3B5LnAwaTgucDBpOC5pMzIoaTgqIGFsaWduIDMy ICU4LCBpOCogYWxpZ24gMzIgJTksIGkzMiA2NCwgaTEgZmFsc2UpLCAhZGJnICExOTYsICF0YmFh LnN0cnVjdCAhMTk3Ci0tICAlMTAgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm8yMnN3 aXRjaEVuY29kaW5nNFVuaWZvcm1JMTNVbmlmb3JtV3JpdGVyRUViTlNfOEVuY29kaW5nRVRfKGk4 IHNpZ25leHQgJTcsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBhbGlnbiAzMiAlNSksICFk YmcgITE5OAotKyAgJTEwID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvMjJzd2l0Y2hF bmNvZGluZzRVbmlmb3JtSTEzVW5pZm9ybVdyaXRlckVFYk5TXzhFbmNvZGluZ0VUXyhpOCBzaWdu ZXh0ICU3LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1Xcml0ZXIp IGFsaWduIDMyICU1KSwgIWRiZyAhMTk4Ci0gICBiciBpMSAlMTAsIGxhYmVsICUxNiwgbGFiZWwg JTExLCAhZGJnICExOTkKLSAKLSA7IDxsYWJlbD46MTE6ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDsgcHJlZHMgPSAlMwotQEAgLTUyMDQsNyArNTIwNCw3IEBAIGRlZmluZSBp bnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvMTRzd2l0Y2hFbmNvZGluZ0kxM1VuaWZv cm1Xcml0ZXIxM1ZhcnlpCi0gICAlMTMgPSBiaXRjYXN0ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiAl NiB0byBpOCosICFkYmcgITIwMQotICAgJTE0ID0gYml0Y2FzdCAlY2xhc3MuVmFyeWluZ1dyaXRl ciogJTIgdG8gaTgqLCAhZGJnICEyMDEKLSAgIGNhbGwgdm9pZCBAbGx2bS5tZW1jcHkucDBpOC5w MGk4LmkzMihpOCogYWxpZ24gMzIgJTEzLCBpOCogYWxpZ24gMzIgJTE0LCBpMzIgNjQsIGkxIGZh bHNlKSwgIWRiZyAhMjAxLCAhdGJhYS5zdHJ1Y3QgITE5NwotLSAgJTE1ID0gY2FsbCB6ZXJvZXh0 IGkxIEBfWk45UHJpbnRJbmZvMjJzd2l0Y2hFbmNvZGluZzRWYXJ5aW5nSTEzVmFyeWluZ1dyaXRl ckVFYk5TXzhFbmNvZGluZ0VUXyhpOCBzaWduZXh0ICUxMiwgJWNsYXNzLlZhcnlpbmdXcml0ZXIq IGJ5dmFsIGFsaWduIDMyICU2KSwgIWRiZyAhMjAyCi0rICAlMTUgPSBjYWxsIHplcm9leHQgaTEg QF9aTjlQcmludEluZm8yMnN3aXRjaEVuY29kaW5nNFZhcnlpbmdJMTNWYXJ5aW5nV3JpdGVyRUVi TlNfOEVuY29kaW5nRVRfKGk4IHNpZ25leHQgJTEyLCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2 YWwoJWNsYXNzLlZhcnlpbmdXcml0ZXIpIGFsaWduIDMyICU2KSwgIWRiZyAhMjAyCi0gICBiciBs YWJlbCAlMTYsICFkYmcgITE5OQotIAotIDsgPGxhYmVsPjoxNjogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgOyBwcmVkcyA9ICUxMSwgJTMKLUBAIC01Mjc5LDcgKzUyNzksNyBA QCBkZWZpbmUgaW50ZXJuYWwgdm9pZCBAX1pOMTNWYXJ5aW5nV3JpdGVyQzJFUmpSUEtqaXl1MkNN dmI1X2koJWNsYXNzLlZhcnlpbmdXcml0ZQotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lu bGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgaTMyIEBfX251bV9jb3JlcygpICMyOSAh ZGJnICEyMzYgewotK2RlZmluZSBpbnRlcm5hbCBpMzIgQF9fbnVtX2NvcmVzKCkgIzI5ICFkYmcg ITIzNiB7Ci0gICByZXQgaTMyIC0xLCAhZGJnICEyMzcKLSB9Ci0gCi1AQCAtODg2MCw3ICs4ODYw LDcgQEAgZGVjbGFyZSBkc29fbG9jYWwgdm9pZCBAX1pON2RldGFpbHMzN19fY21faW50cmluc2lj X2ltcGxfc3ZtX3NjYXR0ZXJfd3JpdGVJaUxpMUUKLSBkZWNsYXJlIHZvaWQgQGxsdm0uZ2VueC5z dm0uc2NhdHRlci52MWkxLnYxaTY0LnYxaTMyKDwxIHggaTE+LCBpMzIsIDwxIHggaTY0PiwgPDEg eCBpMzI+KSAjMjcKLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGlu dCBub3Vud2luZAotLWRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvMjJz d2l0Y2hFbmNvZGluZzRVbmlmb3JtSTEzVW5pZm9ybVdyaXRlckVFYk5TXzhFbmNvZGluZ0VUXyhp OCBzaWduZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwgYWxpZ24gMzIpICMyNSBjb21k YXQgIWRiZyAhMTY0NSB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludElu Zm8yMnN3aXRjaEVuY29kaW5nNFVuaWZvcm1JMTNVbmlmb3JtV3JpdGVyRUViTlNfOEVuY29kaW5n RVRfKGk4IHNpZ25leHQsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCglY2xhc3MuVW5pZm9y bVdyaXRlcikgYWxpZ24gMzIpICMyNSBjb21kYXQgIWRiZyAhMTY0NSB7Ci0gICAlMyA9IGFsbG9j YSBpOCwgYWxpZ24gMQotICAgJTQgPSBhbGxvY2EgJWNsYXNzLlVuaWZvcm1Xcml0ZXIsIGFsaWdu IDMyCi0gICAlNSA9IGFsbG9jYSAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0i LCBhbGlnbiAxCi1AQCAtODg2OSw3ICs4ODY5LDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQg aTEgQF9aTjlQcmludEluZm8yMnN3aXRjaEVuY29kaW5nNFVuaWZvcm1JMTNVbmlmb3JtV3JpdGUK LSAgICU3ID0gYml0Y2FzdCAlY2xhc3MuVW5pZm9ybVdyaXRlciogJTQgdG8gaTgqLCAhZGJnICEx NjQ3Ci0gICAlOCA9IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqICUxIHRvIGk4KiwgIWRi ZyAhMTY0NwotICAgY2FsbCB2b2lkIEBsbHZtLm1lbWNweS5wMGk4LnAwaTguaTMyKGk4KiBhbGln biAzMiAlNywgaTgqIGFsaWduIDMyICU4LCBpMzIgNjQsIGkxIGZhbHNlKSwgIWRiZyAhMTY0Nywg IXRiYWEuc3RydWN0ICExOTcKLS0gICU5ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZv NmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlm b3JtRUVFYk5TXzhFbmNvZGluZ0VUX1QwXyhpOCBzaWduZXh0ICU2LCAlY2xhc3MuVW5pZm9ybVdy aXRlciogYnl2YWwgYWxpZ24gMzIgJTQsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5p Zm9ybSIqIGJ5dmFsIGFsaWduIDEgJTUpLCAhZGJnICExNjQ4Ci0rICAlOSA9IGNhbGwgemVyb2V4 dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEzVW5pZm9ybVdyaXRl ck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVF9UMF8oaTggc2lnbmV4dCAl NiwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsKCVjbGFzcy5Vbmlmb3JtV3JpdGVyKSBhbGln biAzMiAlNCwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwoJSJz dHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIikgYWxpZ24gMSAlNSksICFkYmcgITE2 NDgKLSAgIHJldCBpMSAlOSwgIWRiZyAhMTY0OQotIH0KLSAKLUBAIC04ODc3LDcgKzg4NzcsNyBA QCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzIyc3dpdGNoRW5jb2Rp bmc0VW5pZm9ybUkxM1VuaWZvcm1Xcml0ZQotIGRlY2xhcmUgdm9pZCBAbGx2bS5tZW1jcHkucDBp OC5wMGk4LmkzMihpOCogbm9jYXB0dXJlIHdyaXRlb25seSwgaTgqIG5vY2FwdHVyZSByZWFkb25s eSwgaTMyLCBpMSkgIzMyCi0gCi0gOyBGdW5jdGlvbiBBdHRyczogYWx3YXlzaW5saW5lIGlubGlu ZWhpbnQgbm91bndpbmQKLS1kZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5m bzIyc3dpdGNoRW5jb2Rpbmc0VmFyeWluZ0kxM1ZhcnlpbmdXcml0ZXJFRWJOU184RW5jb2RpbmdF VF8oaTggc2lnbmV4dCwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsIGFsaWduIDMyKSAjMjUg Y29tZGF0ICFkYmcgITE2NTAgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJp bnRJbmZvMjJzd2l0Y2hFbmNvZGluZzRWYXJ5aW5nSTEzVmFyeWluZ1dyaXRlckVFYk5TXzhFbmNv ZGluZ0VUXyhpOCBzaWduZXh0LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwoJWNsYXNzLlZh cnlpbmdXcml0ZXIpIGFsaWduIDMyKSAjMjUgY29tZGF0ICFkYmcgITE2NTAgewotICAgJTMgPSBh bGxvY2EgaTgsIGFsaWduIDEKLSAgICU0ID0gYWxsb2NhICVjbGFzcy5WYXJ5aW5nV3JpdGVyLCBh bGlnbiAzMgotICAgJTUgPSBhbGxvY2EgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5 aW5nIiwgYWxpZ24gMQotQEAgLTg4ODYsMTIgKzg4ODYsMTIgQEAgZGVmaW5lIGludGVybmFsIHpl cm9leHQgaTEgQF9aTjlQcmludEluZm8yMnN3aXRjaEVuY29kaW5nNFZhcnlpbmdJMTNWYXJ5aW5n V3JpdGUKLSAgICU3ID0gYml0Y2FzdCAlY2xhc3MuVmFyeWluZ1dyaXRlciogJTQgdG8gaTgqLCAh ZGJnICExNjUyCi0gICAlOCA9IGJpdGNhc3QgJWNsYXNzLlZhcnlpbmdXcml0ZXIqICUxIHRvIGk4 KiwgIWRiZyAhMTY1MgotICAgY2FsbCB2b2lkIEBsbHZtLm1lbWNweS5wMGk4LnAwaTguaTMyKGk4 KiBhbGlnbiAzMiAlNywgaTgqIGFsaWduIDMyICU4LCBpMzIgNjQsIGkxIGZhbHNlKSwgIWRiZyAh MTY1MiwgIXRiYWEuc3RydWN0ICExOTcKLS0gICU5ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJp bnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGlu ZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUX1QwXyhpOCBzaWduZXh0ICU2LCAlY2xhc3MuVmFy eWluZ1dyaXRlciogYnl2YWwgYWxpZ24gMzIgJTQsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rp bmc0VmFyeWluZyIqIGJ5dmFsIGFsaWduIDEgJTUpLCAhZGJnICExNjUzCi0rICAlOSA9IGNhbGwg emVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEzVmFyeWlu Z1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVF9UMF8oaTggc2ln bmV4dCAlNiwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5aW5nV3JpdGVy KSBhbGlnbiAzMiAlNCwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2 YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIikgYWxpZ24gMSAlNSksICFk YmcgITE2NTMKLSAgIHJldCBpMSAlOSwgIWRiZyAhMTY1NAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0 dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2luZAotLWRlZmluZSBpbnRlcm5hbCB6 ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNVbmlmb3Jt V3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUX1QwXyhpOCBzaWdu ZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwgYWxpZ24gMzIsICUic3RydWN0LlByaW50 SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAh MTY1NSB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWls MTRzd2l0Y2hFbmNvZGluZ0kxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUVi TlNfOEVuY29kaW5nRVRfVDBfKGk4IHNpZ25leHQsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZh bCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5j b2Rpbmc0VW5pZm9ybSIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9y bSIpIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMTY1NSB7Ci0gICAlNCA9IGFsbG9jYSBpOCwg YWxpZ24gMQotICAgJTUgPSBhbGxvY2EgJWNsYXNzLlVuaWZvcm1Xcml0ZXIsIGFsaWduIDMyCi0g ICAlNiA9IGFsbG9jYSAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iLCBhbGln biAxCi1AQCAtODkxNCw3ICs4OTE0LDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9a TjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1VuaWZvcm1Xcml0ZXIKLSAgICUy MiA9IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqICU1IHRvIGk4KiwgIWRiZyAhMTY1Nwot ICAgJTIzID0gYml0Y2FzdCAlY2xhc3MuVW5pZm9ybVdyaXRlciogJTEgdG8gaTgqLCAhZGJnICEx NjU3Ci0gICBjYWxsIHZvaWQgQGxsdm0ubWVtY3B5LnAwaTgucDBpOC5pMzIoaTgqIGFsaWduIDMy ICUyMiwgaTgqIGFsaWduIDMyICUyMywgaTMyIDY0LCBpMSBmYWxzZSksICFkYmcgITE2NTcsICF0 YmFhLnN0cnVjdCAhMTk3Ci0tICAlMjQgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82 ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJYjEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rp bmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTIxLCAlY2xhc3Mu VW5pZm9ybVdyaXRlciogYnl2YWwgYWxpZ24gMzIgJTUsICUic3RydWN0LlByaW50SW5mbzo6RW5j b2Rpbmc0VW5pZm9ybSIqIGJ5dmFsIGFsaWduIDEgJTYpLCAhZGJnICExNjU4Ci0rICAlMjQgPSBj YWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2Rp bmdJYjEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdF VDBfVDFfKGk4IHNpZ25leHQgJTIxLCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwoJWNsYXNz LlVuaWZvcm1Xcml0ZXIpIGFsaWduIDMyICU1LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5n NFVuaWZvcm0iKiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKSBh bGlnbiAxICU2KSwgIWRiZyAhMTY1OAotICAgYnIgaTEgJTI0LCBsYWJlbCAlNjAsIGxhYmVsICUy NSwgIWRiZyAhMTY1OQotIAotIDsgPGxhYmVsPjoyNTogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgOyBwcmVkcyA9ICUzCi1AQCAtODkyMiw3ICs4OTIyLDcgQEAgZGVmaW5lIGlu dGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kx M1VuaWZvcm1Xcml0ZXIKLSAgICUyNyA9IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqICU3 IHRvIGk4KiwgIWRiZyAhMTY2MQotICAgJTI4ID0gYml0Y2FzdCAlY2xhc3MuVW5pZm9ybVdyaXRl ciogJTEgdG8gaTgqLCAhZGJnICExNjYxCi0gICBjYWxsIHZvaWQgQGxsdm0ubWVtY3B5LnAwaTgu cDBpOC5pMzIoaTgqIGFsaWduIDMyICUyNywgaTgqIGFsaWduIDMyICUyOCwgaTMyIDY0LCBpMSBm YWxzZSksICFkYmcgITE2NjEsICF0YmFhLnN0cnVjdCAhMTk3Ci0tICAlMjkgPSBjYWxsIHplcm9l eHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJaTEzVW5p Zm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4 IHNpZ25leHQgJTI2LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwgYWxpZ24gMzIgJTcsICUi c3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsIGFsaWduIDEgJTgpLCAh ZGJnICExNjYyCi0rICAlMjkgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWls MjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJaTEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5p Zm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTI2LCAlY2xhc3MuVW5pZm9y bVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1Xcml0ZXIpIGFsaWduIDMyICU3LCAlInN0cnVj dC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCglInN0cnVjdC5QcmludEluZm86 OkVuY29kaW5nNFVuaWZvcm0iKSBhbGlnbiAxICU4KSwgIWRiZyAhMTY2MgotICAgYnIgaTEgJTI5 LCBsYWJlbCAlNjAsIGxhYmVsICUzMCwgIWRiZyAhMTY2MwotIAotIDsgPGxhYmVsPjozMDogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOyBwcmVkcyA9ICUyNQotQEAgLTg5MzAs NyArODkzMCw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRl dGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNVbmlmb3JtV3JpdGVyCi0gICAlMzIgPSBiaXRjYXN0ICVj bGFzcy5Vbmlmb3JtV3JpdGVyKiAlOSB0byBpOCosICFkYmcgITE2NjUKLSAgICUzMyA9IGJpdGNh c3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqICUxIHRvIGk4KiwgIWRiZyAhMTY2NQotICAgY2FsbCB2 b2lkIEBsbHZtLm1lbWNweS5wMGk4LnAwaTguaTMyKGk4KiBhbGlnbiAzMiAlMzIsIGk4KiBhbGln biAzMiAlMzMsIGkzMiA2NCwgaTEgZmFsc2UpLCAhZGJnICExNjY1LCAhdGJhYS5zdHJ1Y3QgITE5 NwotLSAgJTM0ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJ ZlByb3BlckVuY29kaW5nSWoxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUVi TlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICUzMSwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIq IGJ5dmFsIGFsaWduIDMyICU5LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0i KiBieXZhbCBhbGlnbiAxICUxMCksICFkYmcgITE2NjYKLSsgICUzNCA9IGNhbGwgemVyb2V4dCBp MSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lqMTNVbmlmb3Jt V3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2ln bmV4dCAlMzEsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRl cikgYWxpZ24gMzIgJTksICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5 dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIpIGFsaWduIDEgJTEwKSwg IWRiZyAhMTY2NgotICAgYnIgaTEgJTM0LCBsYWJlbCAlNjAsIGxhYmVsICUzNSwgIWRiZyAhMTY2 NwotIAotIDsgPGxhYmVsPjozNTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg OyBwcmVkcyA9ICUzMAotQEAgLTg5MzgsNyArODkzOCw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJv ZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNVbmlmb3JtV3Jp dGVyCi0gICAlMzcgPSBiaXRjYXN0ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiAlMTEgdG8gaTgqLCAh ZGJnICExNjY5Ci0gICAlMzggPSBiaXRjYXN0ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiAlMSB0byBp OCosICFkYmcgITE2NjkKLSAgIGNhbGwgdm9pZCBAbGx2bS5tZW1jcHkucDBpOC5wMGk4LmkzMihp OCogYWxpZ24gMzIgJTM3LCBpOCogYWxpZ24gMzIgJTM4LCBpMzIgNjQsIGkxIGZhbHNlKSwgIWRi ZyAhMTY2OSwgIXRiYWEuc3RydWN0ICExOTcKLS0gICUzOSA9IGNhbGwgemVyb2V4dCBpMSBAX1pO OVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lmMTNVbmlmb3JtV3JpdGVy TlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAl MzYsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBhbGlnbiAzMiAlMTEsICUic3RydWN0LlBy aW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsIGFsaWduIDEgJTEyKSwgIWRiZyAhMTY3 MAotKyAgJTM5ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJ ZlByb3BlckVuY29kaW5nSWYxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUVi TlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICUzNiwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIq IGJ5dmFsKCVjbGFzcy5Vbmlmb3JtV3JpdGVyKSBhbGlnbiAzMiAlMTEsICUic3RydWN0LlByaW50 SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rp bmc0VW5pZm9ybSIpIGFsaWduIDEgJTEyKSwgIWRiZyAhMTY3MAotICAgYnIgaTEgJTM5LCBsYWJl bCAlNjAsIGxhYmVsICU0MCwgIWRiZyAhMTY3MQotIAotIDsgPGxhYmVsPjo0MDogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgOyBwcmVkcyA9ICUzNQotQEAgLTg5NDYsNyArODk0 Niw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0 c3dpdGNoRW5jb2RpbmdJMTNVbmlmb3JtV3JpdGVyCi0gICAlNDIgPSBiaXRjYXN0ICVjbGFzcy5V bmlmb3JtV3JpdGVyKiAlMTMgdG8gaTgqLCAhZGJnICExNjczCi0gICAlNDMgPSBiaXRjYXN0ICVj bGFzcy5Vbmlmb3JtV3JpdGVyKiAlMSB0byBpOCosICFkYmcgITE2NzMKLSAgIGNhbGwgdm9pZCBA bGx2bS5tZW1jcHkucDBpOC5wMGk4LmkzMihpOCogYWxpZ24gMzIgJTQyLCBpOCogYWxpZ24gMzIg JTQzLCBpMzIgNjQsIGkxIGZhbHNlKSwgIWRiZyAhMTY3MywgIXRiYWEuc3RydWN0ICExOTcKLS0g ICU0NCA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9w ZXJFbmNvZGluZ0l4MTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhF bmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlNDEsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZh bCBhbGlnbiAzMiAlMTMsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5 dmFsIGFsaWduIDEgJTE0KSwgIWRiZyAhMTY3NAotKyAgJTQ0ID0gY2FsbCB6ZXJvZXh0IGkxIEBf Wk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSXgxM1VuaWZvcm1Xcml0 ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0 ICU0MSwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsKCVjbGFzcy5Vbmlmb3JtV3JpdGVyKSBh bGlnbiAzMiAlMTMsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFs KCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIpIGFsaWduIDEgJTE0KSwgIWRi ZyAhMTY3NAotICAgYnIgaTEgJTQ0LCBsYWJlbCAlNjAsIGxhYmVsICU0NSwgIWRiZyAhMTY3NQot IAotIDsgPGxhYmVsPjo0NTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOyBw cmVkcyA9ICU0MAotQEAgLTg5NTQsNyArODk1NCw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0 IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNVbmlmb3JtV3JpdGVy Ci0gICAlNDcgPSBiaXRjYXN0ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiAlMTUgdG8gaTgqLCAhZGJn ICExNjc3Ci0gICAlNDggPSBiaXRjYXN0ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiAlMSB0byBpOCos ICFkYmcgITE2NzcKLSAgIGNhbGwgdm9pZCBAbGx2bS5tZW1jcHkucDBpOC5wMGk4LmkzMihpOCog YWxpZ24gMzIgJTQ3LCBpOCogYWxpZ24gMzIgJTQ4LCBpMzIgNjQsIGkxIGZhbHNlKSwgIWRiZyAh MTY3NywgIXRiYWEuc3RydWN0ICExOTcKLS0gICU0OSA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVBy aW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0l5MTNVbmlmb3JtV3JpdGVyTlNf MTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlNDYs ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBhbGlnbiAzMiAlMTUsICUic3RydWN0LlByaW50 SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsIGFsaWduIDEgJTE2KSwgIWRiZyAhMTY3OAot KyAgJTQ5ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlBy b3BlckVuY29kaW5nSXkxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNf OEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICU0NiwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5 dmFsKCVjbGFzcy5Vbmlmb3JtV3JpdGVyKSBhbGlnbiAzMiAlMTUsICUic3RydWN0LlByaW50SW5m bzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0 VW5pZm9ybSIpIGFsaWduIDEgJTE2KSwgIWRiZyAhMTY3OAotICAgYnIgaTEgJTQ5LCBsYWJlbCAl NjAsIGxhYmVsICU1MCwgIWRiZyAhMTY3OQotIAotIDsgPGxhYmVsPjo1MDogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgOyBwcmVkcyA9ICU0NQotQEAgLTg5NjIsNyArODk2Miw3 IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dp dGNoRW5jb2RpbmdJMTNVbmlmb3JtV3JpdGVyCi0gICAlNTIgPSBiaXRjYXN0ICVjbGFzcy5Vbmlm b3JtV3JpdGVyKiAlMTcgdG8gaTgqLCAhZGJnICExNjgxCi0gICAlNTMgPSBiaXRjYXN0ICVjbGFz cy5Vbmlmb3JtV3JpdGVyKiAlMSB0byBpOCosICFkYmcgITE2ODEKLSAgIGNhbGwgdm9pZCBAbGx2 bS5tZW1jcHkucDBpOC5wMGk4LmkzMihpOCogYWxpZ24gMzIgJTUyLCBpOCogYWxpZ24gMzIgJTUz LCBpMzIgNjQsIGkxIGZhbHNlKSwgIWRiZyAhMTY4MSwgIXRiYWEuc3RydWN0ICExOTcKLS0gICU1 NCA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJF bmNvZGluZ0lkMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNv ZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlNTEsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBh bGlnbiAzMiAlMTcsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFs IGFsaWduIDEgJTE4KSwgIWRiZyAhMTY4MgotKyAgJTU0ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45 UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWQxM1VuaWZvcm1Xcml0ZXJO U18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICU1 MSwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsKCVjbGFzcy5Vbmlmb3JtV3JpdGVyKSBhbGln biAzMiAlMTcsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsKCUi c3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIpIGFsaWduIDEgJTE4KSwgIWRiZyAh MTY4MgotICAgYnIgaTEgJTU0LCBsYWJlbCAlNjAsIGxhYmVsICU1NSwgIWRiZyAhMTY4MwotIAot IDsgPGxhYmVsPjo1NTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOyBwcmVk cyA9ICU1MAotQEAgLTg5NzAsNyArODk3MCw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkx IEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNVbmlmb3JtV3JpdGVyCi0g ICAlNTcgPSBiaXRjYXN0ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiAlMTkgdG8gaTgqLCAhZGJnICEx Njg1Ci0gICAlNTggPSBiaXRjYXN0ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiAlMSB0byBpOCosICFk YmcgITE2ODUKLSAgIGNhbGwgdm9pZCBAbGx2bS5tZW1jcHkucDBpOC5wMGk4LmkzMihpOCogYWxp Z24gMzIgJTU3LCBpOCogYWxpZ24gMzIgJTU4LCBpMzIgNjQsIGkxIGZhbHNlKSwgIWRiZyAhMTY4 NSwgIXRiYWEuc3RydWN0ICExOTcKLS0gICU1OSA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50 SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lQdjEzVW5pZm9ybVdyaXRlck5TXzE2 RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTU2LCAl Y2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwgYWxpZ24gMzIgJTE5LCAlInN0cnVjdC5QcmludElu Zm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCBhbGlnbiAxICUyMCksICFkYmcgITE2ODYKLSsg ICU1OSA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9w ZXJFbmNvZGluZ0lQdjEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184 RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTU2LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2 YWwoJWNsYXNzLlVuaWZvcm1Xcml0ZXIpIGFsaWduIDMyICUxOSwgJSJzdHJ1Y3QuUHJpbnRJbmZv OjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRV bmlmb3JtIikgYWxpZ24gMSAlMjApLCAhZGJnICExNjg2Ci0gICBiciBsYWJlbCAlNjAsICFkYmcg ITE2ODMKLSAKLSA7IDxsYWJlbD46NjA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDsgcHJlZHMgPSAlNTUsICU1MCwgJTQ1LCAlNDAsICUzNSwgJTMwLCAlMjUsICUzCi1AQCAt ODk3OSw3ICs4OTc5LDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludElu Zm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1VuaWZvcm1Xcml0ZXIKLSB9Ci0gCi0gOyBGdW5j dGlvbiBBdHRyczogYWx3YXlzaW5saW5lIGlubGluZWhpbnQgbm91bndpbmQKLS1kZWZpbmUgaW50 ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNv ZGluZ0liMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGlu Z0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsIGFsaWduIDMy LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCBhbGlnbiAxKSAj MjUgY29tZGF0ICFkYmcgITE2ODggewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45 UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWIxM1VuaWZvcm1Xcml0ZXJO U18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAl Y2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1Xcml0ZXIpIGFsaWduIDMy LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCglInN0cnVjdC5Q cmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKSBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITE2 ODggewotICAgJTQgPSBhbGxvY2EgaTEsIGFsaWduIDEKLSAgICU1ID0gYWxsb2NhIGk4LCBhbGln biAxCi0gICBzdG9yZSBpOCAlMCwgaTgqICU1LCBhbGlnbiAxLCAhdGJhYSAhMTkzCi1AQCAtOTAw NSw3ICs5MDA1LDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82 ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJYjEzVW5pZm8KLSB9Ci0gCi0gOyBGdW5jdGlv biBBdHRyczogYWx3YXlzaW5saW5lIGlubGluZWhpbnQgbm91bndpbmQKLS1kZWZpbmUgaW50ZXJu YWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGlu Z0lpMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VU MF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsIGFsaWduIDMyLCAl InN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCBhbGlnbiAxKSAjMjUg Y29tZGF0ICFkYmcgITE2OTcgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJp bnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWkxM1VuaWZvcm1Xcml0ZXJOU18x NkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xh c3MuVW5pZm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1Xcml0ZXIpIGFsaWduIDMyLCAl InN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCglInN0cnVjdC5Qcmlu dEluZm86OkVuY29kaW5nNFVuaWZvcm0iKSBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITE2OTcg ewotICAgJTQgPSBhbGxvY2EgaTEsIGFsaWduIDEKLSAgICU1ID0gYWxsb2NhIGk4LCBhbGlnbiAx Ci0gICBzdG9yZSBpOCAlMCwgaTgqICU1LCBhbGlnbiAxLCAhdGJhYSAhMTkzCi1AQCAtOTAzMSw3 ICs5MDMxLDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0 YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJaTEzVW5pZm8KLSB9Ci0gCi0gOyBGdW5jdGlvbiBB dHRyczogYWx3YXlzaW5saW5lIGlubGluZWhpbnQgbm91bndpbmQKLS1kZWZpbmUgaW50ZXJuYWwg emVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lq MTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9U MV8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsIGFsaWduIDMyLCAlInN0 cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCBhbGlnbiAxKSAjMjUgY29t ZGF0ICFkYmcgITE3MDYgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJ bmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWoxM1VuaWZvcm1Xcml0ZXJOU18xNkVu Y29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3Mu VW5pZm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1Xcml0ZXIpIGFsaWduIDMyLCAlInN0 cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCglInN0cnVjdC5QcmludElu Zm86OkVuY29kaW5nNFVuaWZvcm0iKSBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITE3MDYgewot ICAgJTQgPSBhbGxvY2EgaTEsIGFsaWduIDEKLSAgICU1ID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0g ICBzdG9yZSBpOCAlMCwgaTgqICU1LCBhbGlnbiAxLCAhdGJhYSAhMTkzCi1AQCAtOTA1Nyw3ICs5 MDU3LDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWls MjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJajEzVW5pZm8KLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRy czogYWx3YXlzaW5saW5lIGlubGluZWhpbnQgbm91bndpbmQKLS1kZWZpbmUgaW50ZXJuYWwgemVy b2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lmMTNV bmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8o aTggc2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsIGFsaWduIDMyLCAlInN0cnVj dC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCBhbGlnbiAxKSAjMjUgY29tZGF0 ICFkYmcgITE3MTUgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZv NmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWYxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29k aW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVW5p Zm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1Xcml0ZXIpIGFsaWduIDMyLCAlInN0cnVj dC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCglInN0cnVjdC5QcmludEluZm86 OkVuY29kaW5nNFVuaWZvcm0iKSBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITE3MTUgewotICAg JTQgPSBhbGxvY2EgaTEsIGFsaWduIDEKLSAgICU1ID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0gICBz dG9yZSBpOCAlMCwgaTgqICU1LCBhbGlnbiAxLCAhdGJhYSAhMTkzCi1AQCAtOTA4Myw3ICs5MDgz LDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFh cHBseUlmUHJvcGVyRW5jb2RpbmdJZjEzVW5pZm8KLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczog YWx3YXlzaW5saW5lIGlubGluZWhpbnQgbm91bndpbmQKLS1kZWZpbmUgaW50ZXJuYWwgemVyb2V4 dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0l4MTNVbmlm b3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTgg c2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsIGFsaWduIDMyLCAlInN0cnVjdC5Q cmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCBhbGlnbiAxKSAjMjUgY29tZGF0ICFk YmcgITE3MjQgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRl dGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSXgxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5n NFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVW5pZm9y bVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1Xcml0ZXIpIGFsaWduIDMyLCAlInN0cnVjdC5Q cmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVu Y29kaW5nNFVuaWZvcm0iKSBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITE3MjQgewotICAgJTQg PSBhbGxvY2EgaTEsIGFsaWduIDEKLSAgICU1ID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0gICBzdG9y ZSBpOCAlMCwgaTgqICU1LCBhbGlnbiAxLCAhdGJhYSAhMTkzCi1AQCAtOTEwOSw3ICs5MTA5LDcg QEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBs eUlmUHJvcGVyRW5jb2RpbmdJeDEzVW5pZm8KLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogYWx3 YXlzaW5saW5lIGlubGluZWhpbnQgbm91bndpbmQKLS1kZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBp MSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0l5MTNVbmlmb3Jt V3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2ln bmV4dCwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsIGFsaWduIDMyLCAlInN0cnVjdC5Qcmlu dEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcg ITE3MzMgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFp bDIxYXBwbHlJZlByb3BlckVuY29kaW5nSXkxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVu aWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVW5pZm9ybVdy aXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1Xcml0ZXIpIGFsaWduIDMyLCAlInN0cnVjdC5Qcmlu dEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29k aW5nNFVuaWZvcm0iKSBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITE3MzMgewotICAgJTQgPSBh bGxvY2EgaTEsIGFsaWduIDEKLSAgICU1ID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0gICBzdG9yZSBp OCAlMCwgaTgqICU1LCBhbGlnbiAxLCAhdGJhYSAhMTkzCi1AQCAtOTEzNSw3ICs5MTM1LDcgQEAg ZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlm UHJvcGVyRW5jb2RpbmdJeTEzVW5pZm8KLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogYWx3YXlz aW5saW5lIGlubGluZWhpbnQgbm91bndpbmQKLS1kZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBA X1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lkMTNVbmlmb3JtV3Jp dGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4 dCwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsIGFsaWduIDMyLCAlInN0cnVjdC5QcmludElu Zm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITE3 NDIgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIx YXBwbHlJZlByb3BlckVuY29kaW5nSWQxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZv cm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRl ciogYnl2YWwoJWNsYXNzLlVuaWZvcm1Xcml0ZXIpIGFsaWduIDMyLCAlInN0cnVjdC5QcmludElu Zm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5n NFVuaWZvcm0iKSBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITE3NDIgewotICAgJTQgPSBhbGxv Y2EgaTEsIGFsaWduIDEKLSAgICU1ID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0gICBzdG9yZSBpOCAl MCwgaTgqICU1LCBhbGlnbiAxLCAhdGJhYSAhMTkzCi1AQCAtOTE2MSw3ICs5MTYxLDcgQEAgZGVm aW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJv cGVyRW5jb2RpbmdJZDEzVW5pZm8KLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogYWx3YXlzaW5s aW5lIGlubGluZWhpbnQgbm91bndpbmQKLS1kZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pO OVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lQdjEzVW5pZm9ybVdyaXRl ck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQs ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZv OjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICExNzUx IHsKLStkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFw cGx5SWZQcm9wZXJFbmNvZGluZ0lQdjEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9y bUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5Vbmlmb3JtV3JpdGVy KiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5m bzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0 VW5pZm9ybSIpIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMTc1MSB7Ci0gICAlNCA9IGFsbG9j YSBpMSwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2EgaTgsIGFsaWduIDEKLSAgIHN0b3JlIGk4ICUw LCBpOCogJTUsIGFsaWduIDEsICF0YmFhICExOTMKLUBAIC05OTg0LDcgKzk5ODQsNyBAQCBkZWZp bmUgaW50ZXJuYWwgaTMyIEBfWk43ZGV0YWlsczE4X2NtX3ByaW50X3R5cGVfb2NsSVB2RUVOU18x OFNIQURFUl9QUklOVEZfVFlQRQotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBhbHdheXNpbmxp bmUgaW5saW5laGludCBub3Vud2luZAotLWRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45 UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNv ZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUX1QwXyhpOCBzaWduZXh0LCAlY2xhc3MuVmFy eWluZ1dyaXRlciogYnl2YWwgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0 VmFyeWluZyIqIGJ5dmFsIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMjA1NSB7Ci0rZGVmaW5l IGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGlu Z0kxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVRf VDBfKGk4IHNpZ25leHQsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCglY2xhc3MuVmFyeWlu Z1dyaXRlcikgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIq IGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIpIGFsaWduIDEpICMy NSBjb21kYXQgIWRiZyAhMjA1NSB7Ci0gICAlNCA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgJTUg PSBhbGxvY2EgJWNsYXNzLlZhcnlpbmdXcml0ZXIsIGFsaWduIDMyCi0gICAlNiA9IGFsbG9jYSAl InN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciLCBhbGlnbiAxCi1AQCAtMTAwMDcs NyArMTAwMDcsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZk ZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEzVmFyeWluZ1dyaXRlcgotICAgJTIyID0gYml0Y2FzdCAl Y2xhc3MuVmFyeWluZ1dyaXRlciogJTUgdG8gaTgqLCAhZGJnICEyMDU3Ci0gICAlMjMgPSBiaXRj YXN0ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiAlMSB0byBpOCosICFkYmcgITIwNTcKLSAgIGNhbGwg dm9pZCBAbGx2bS5tZW1jcHkucDBpOC5wMGk4LmkzMihpOCogYWxpZ24gMzIgJTIyLCBpOCogYWxp Z24gMzIgJTIzLCBpMzIgNjQsIGkxIGZhbHNlKSwgIWRiZyAhMjA1NywgIXRiYWEuc3RydWN0ICEx OTcKLS0gICUyNCA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5 SWZQcm9wZXJFbmNvZGluZ0liMTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVF Yk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlMjEsICVjbGFzcy5WYXJ5aW5nV3JpdGVy KiBieXZhbCBhbGlnbiAzMiAlNSwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5n IiogYnl2YWwgYWxpZ24gMSAlNiksICFkYmcgITIwNTgKLSsgICUyNCA9IGNhbGwgemVyb2V4dCBp MSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0liMTNWYXJ5aW5n V3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2ln bmV4dCAlMjEsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCglY2xhc3MuVmFyeWluZ1dyaXRl cikgYWxpZ24gMzIgJTUsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5 dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIpIGFsaWduIDEgJTYpLCAh ZGJnICEyMDU4Ci0gICBiciBpMSAlMjQsIGxhYmVsICU2MCwgbGFiZWwgJTI1LCAhZGJnICEyMDU5 Ci0gCi0gOyA8bGFiZWw+OjI1OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7 IHByZWRzID0gJTMKLUBAIC0xMDAxNSw3ICsxMDAxNSw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJv ZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNWYXJ5aW5nV3Jp dGVyCi0gICAlMjcgPSBiaXRjYXN0ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiAlNyB0byBpOCosICFk YmcgITIwNjEKLSAgICUyOCA9IGJpdGNhc3QgJWNsYXNzLlZhcnlpbmdXcml0ZXIqICUxIHRvIGk4 KiwgIWRiZyAhMjA2MQotICAgY2FsbCB2b2lkIEBsbHZtLm1lbWNweS5wMGk4LnAwaTguaTMyKGk4 KiBhbGlnbiAzMiAlMjcsIGk4KiBhbGlnbiAzMiAlMjgsIGkzMiA2NCwgaTEgZmFsc2UpLCAhZGJn ICEyMDYxLCAhdGJhYS5zdHJ1Y3QgITE5NwotLSAgJTI5ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45 UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWkxM1ZhcnlpbmdXcml0ZXJO U18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICUy NiwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsIGFsaWduIDMyICU3LCAlInN0cnVjdC5Qcmlu dEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCBhbGlnbiAxICU4KSwgIWRiZyAhMjA2Mgot KyAgJTI5ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlBy b3BlckVuY29kaW5nSWkxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNf OEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICUyNiwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5 dmFsKCVjbGFzcy5WYXJ5aW5nV3JpdGVyKSBhbGlnbiAzMiAlNywgJSJzdHJ1Y3QuUHJpbnRJbmZv OjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRW YXJ5aW5nIikgYWxpZ24gMSAlOCksICFkYmcgITIwNjIKLSAgIGJyIGkxICUyOSwgbGFiZWwgJTYw LCBsYWJlbCAlMzAsICFkYmcgITIwNjMKLSAKLSA7IDxsYWJlbD46MzA6ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDsgcHJlZHMgPSAlMjUKLUBAIC0xMDAyMyw3ICsxMDAyMyw3 IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dp dGNoRW5jb2RpbmdJMTNWYXJ5aW5nV3JpdGVyCi0gICAlMzIgPSBiaXRjYXN0ICVjbGFzcy5WYXJ5 aW5nV3JpdGVyKiAlOSB0byBpOCosICFkYmcgITIwNjUKLSAgICUzMyA9IGJpdGNhc3QgJWNsYXNz LlZhcnlpbmdXcml0ZXIqICUxIHRvIGk4KiwgIWRiZyAhMjA2NQotICAgY2FsbCB2b2lkIEBsbHZt Lm1lbWNweS5wMGk4LnAwaTguaTMyKGk4KiBhbGlnbiAzMiAlMzIsIGk4KiBhbGlnbiAzMiAlMzMs IGkzMiA2NCwgaTEgZmFsc2UpLCAhZGJnICEyMDY1LCAhdGJhYS5zdHJ1Y3QgITE5NwotLSAgJTM0 ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVu Y29kaW5nSWoxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29k aW5nRVQwX1QxXyhpOCBzaWduZXh0ICUzMSwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsIGFs aWduIDMyICU5LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCBh bGlnbiAxICUxMCksICFkYmcgITIwNjYKLSsgICUzNCA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVBy aW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lqMTNWYXJ5aW5nV3JpdGVyTlNf MTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlMzEs ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCglY2xhc3MuVmFyeWluZ1dyaXRlcikgYWxpZ24g MzIgJTksICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsKCUic3Ry dWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIpIGFsaWduIDEgJTEwKSwgIWRiZyAhMjA2 NgotICAgYnIgaTEgJTM0LCBsYWJlbCAlNjAsIGxhYmVsICUzNSwgIWRiZyAhMjA2NwotIAotIDsg PGxhYmVsPjozNTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOyBwcmVkcyA9 ICUzMAotQEAgLTEwMDMxLDcgKzEwMDMxLDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEg QF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1ZhcnlpbmdXcml0ZXIKLSAg ICUzNyA9IGJpdGNhc3QgJWNsYXNzLlZhcnlpbmdXcml0ZXIqICUxMSB0byBpOCosICFkYmcgITIw NjkKLSAgICUzOCA9IGJpdGNhc3QgJWNsYXNzLlZhcnlpbmdXcml0ZXIqICUxIHRvIGk4KiwgIWRi ZyAhMjA2OQotICAgY2FsbCB2b2lkIEBsbHZtLm1lbWNweS5wMGk4LnAwaTguaTMyKGk4KiBhbGln biAzMiAlMzcsIGk4KiBhbGlnbiAzMiAlMzgsIGkzMiA2NCwgaTEgZmFsc2UpLCAhZGJnICEyMDY5 LCAhdGJhYS5zdHJ1Y3QgITE5NwotLSAgJTM5ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJ bmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWYxM1ZhcnlpbmdXcml0ZXJOU18xNkVu Y29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICUzNiwgJWNs YXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsIGFsaWduIDMyICUxMSwgJSJzdHJ1Y3QuUHJpbnRJbmZv OjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwgYWxpZ24gMSAlMTIpLCAhZGJnICEyMDcwCi0rICAl MzkgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVy RW5jb2RpbmdJZjEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5j b2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTM2LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwo JWNsYXNzLlZhcnlpbmdXcml0ZXIpIGFsaWduIDMyICUxMSwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpF bmNvZGluZzRWYXJ5aW5nIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5 aW5nIikgYWxpZ24gMSAlMTIpLCAhZGJnICEyMDcwCi0gICBiciBpMSAlMzksIGxhYmVsICU2MCwg bGFiZWwgJTQwLCAhZGJnICEyMDcxCi0gCi0gOyA8bGFiZWw+OjQwOiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICA7IHByZWRzID0gJTM1Ci1AQCAtMTAwMzksNyArMTAwMzksNyBA QCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwxNHN3aXRj aEVuY29kaW5nSTEzVmFyeWluZ1dyaXRlcgotICAgJTQyID0gYml0Y2FzdCAlY2xhc3MuVmFyeWlu Z1dyaXRlciogJTEzIHRvIGk4KiwgIWRiZyAhMjA3MwotICAgJTQzID0gYml0Y2FzdCAlY2xhc3Mu VmFyeWluZ1dyaXRlciogJTEgdG8gaTgqLCAhZGJnICEyMDczCi0gICBjYWxsIHZvaWQgQGxsdm0u bWVtY3B5LnAwaTgucDBpOC5pMzIoaTgqIGFsaWduIDMyICU0MiwgaTgqIGFsaWduIDMyICU0Mywg aTMyIDY0LCBpMSBmYWxzZSksICFkYmcgITIwNzMsICF0YmFhLnN0cnVjdCAhMTk3Ci0tICAlNDQg PSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5j b2RpbmdJeDEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2Rp bmdFVDBfVDFfKGk4IHNpZ25leHQgJTQxLCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwgYWxp Z24gMzIgJTEzLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCBh bGlnbiAxICUxNCksICFkYmcgITIwNzQKLSsgICU0NCA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVBy aW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0l4MTNWYXJ5aW5nV3JpdGVyTlNf MTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlNDEs ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCglY2xhc3MuVmFyeWluZ1dyaXRlcikgYWxpZ24g MzIgJTEzLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCglInN0 cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKSBhbGlnbiAxICUxNCksICFkYmcgITIw NzQKLSAgIGJyIGkxICU0NCwgbGFiZWwgJTYwLCBsYWJlbCAlNDUsICFkYmcgITIwNzUKLSAKLSA7 IDxsYWJlbD46NDU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsgcHJlZHMg PSAlNDAKLUBAIC0xMDA0Nyw3ICsxMDA0Nyw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkx IEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNWYXJ5aW5nV3JpdGVyCi0g ICAlNDcgPSBiaXRjYXN0ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiAlMTUgdG8gaTgqLCAhZGJnICEy MDc3Ci0gICAlNDggPSBiaXRjYXN0ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiAlMSB0byBpOCosICFk YmcgITIwNzcKLSAgIGNhbGwgdm9pZCBAbGx2bS5tZW1jcHkucDBpOC5wMGk4LmkzMihpOCogYWxp Z24gMzIgJTQ3LCBpOCogYWxpZ24gMzIgJTQ4LCBpMzIgNjQsIGkxIGZhbHNlKSwgIWRiZyAhMjA3 NywgIXRiYWEuc3RydWN0ICExOTcKLS0gICU0OSA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50 SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0l5MTNWYXJ5aW5nV3JpdGVyTlNfMTZF bmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlNDYsICVj bGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCBhbGlnbiAzMiAlMTUsICUic3RydWN0LlByaW50SW5m bzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsIGFsaWduIDEgJTE2KSwgIWRiZyAhMjA3OAotKyAg JTQ5ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3Bl ckVuY29kaW5nSXkxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVu Y29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICU0NiwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFs KCVjbGFzcy5WYXJ5aW5nV3JpdGVyKSBhbGlnbiAzMiAlMTUsICUic3RydWN0LlByaW50SW5mbzo6 RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFy eWluZyIpIGFsaWduIDEgJTE2KSwgIWRiZyAhMjA3OAotICAgYnIgaTEgJTQ5LCBsYWJlbCAlNjAs IGxhYmVsICU1MCwgIWRiZyAhMjA3OQotIAotIDsgPGxhYmVsPjo1MDogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgOyBwcmVkcyA9ICU0NQotQEAgLTEwMDU1LDcgKzEwMDU1LDcg QEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0 Y2hFbmNvZGluZ0kxM1ZhcnlpbmdXcml0ZXIKLSAgICU1MiA9IGJpdGNhc3QgJWNsYXNzLlZhcnlp bmdXcml0ZXIqICUxNyB0byBpOCosICFkYmcgITIwODEKLSAgICU1MyA9IGJpdGNhc3QgJWNsYXNz LlZhcnlpbmdXcml0ZXIqICUxIHRvIGk4KiwgIWRiZyAhMjA4MQotICAgY2FsbCB2b2lkIEBsbHZt Lm1lbWNweS5wMGk4LnAwaTguaTMyKGk4KiBhbGlnbiAzMiAlNTIsIGk4KiBhbGlnbiAzMiAlNTMs IGkzMiA2NCwgaTEgZmFsc2UpLCAhZGJnICEyMDgxLCAhdGJhYS5zdHJ1Y3QgITE5NwotLSAgJTU0 ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVu Y29kaW5nSWQxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29k aW5nRVQwX1QxXyhpOCBzaWduZXh0ICU1MSwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsIGFs aWduIDMyICUxNywgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwg YWxpZ24gMSAlMTgpLCAhZGJnICEyMDgyCi0rICAlNTQgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQ cmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJZDEzVmFyeWluZ1dyaXRlck5T XzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTUx LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwoJWNsYXNzLlZhcnlpbmdXcml0ZXIpIGFsaWdu IDMyICUxNywgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwoJSJz dHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIikgYWxpZ24gMSAlMTgpLCAhZGJnICEy MDgyCi0gICBiciBpMSAlNTQsIGxhYmVsICU2MCwgbGFiZWwgJTU1LCAhZGJnICEyMDgzCi0gCi0g OyA8bGFiZWw+OjU1OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7IHByZWRz ID0gJTUwCi1AQCAtMTAwNjMsNyArMTAwNjMsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBp MSBAX1pOOVByaW50SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEzVmFyeWluZ1dyaXRlcgot ICAgJTU3ID0gYml0Y2FzdCAlY2xhc3MuVmFyeWluZ1dyaXRlciogJTE5IHRvIGk4KiwgIWRiZyAh MjA4NQotICAgJTU4ID0gYml0Y2FzdCAlY2xhc3MuVmFyeWluZ1dyaXRlciogJTEgdG8gaTgqLCAh ZGJnICEyMDg1Ci0gICBjYWxsIHZvaWQgQGxsdm0ubWVtY3B5LnAwaTgucDBpOC5pMzIoaTgqIGFs aWduIDMyICU1NywgaTgqIGFsaWduIDMyICU1OCwgaTMyIDY0LCBpMSBmYWxzZSksICFkYmcgITIw ODUsICF0YmFhLnN0cnVjdCAhMTk3Ci0tICAlNTkgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmlu dEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJUHYxM1ZhcnlpbmdXcml0ZXJOU18x NkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICU1Niwg JWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsIGFsaWduIDMyICUxOSwgJSJzdHJ1Y3QuUHJpbnRJ bmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwgYWxpZ24gMSAlMjApLCAhZGJnICEyMDg2Ci0r ICAlNTkgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJv cGVyRW5jb2RpbmdJUHYxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNf OEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICU1NiwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5 dmFsKCVjbGFzcy5WYXJ5aW5nV3JpdGVyKSBhbGlnbiAzMiAlMTksICUic3RydWN0LlByaW50SW5m bzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0 VmFyeWluZyIpIGFsaWduIDEgJTIwKSwgIWRiZyAhMjA4NgotICAgYnIgbGFiZWwgJTYwLCAhZGJn ICEyMDgzCi0gCi0gOyA8bGFiZWw+OjYwOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICA7IHByZWRzID0gJTU1LCAlNTAsICU0NSwgJTQwLCAlMzUsICUzMCwgJTI1LCAlMwotQEAg LTEwMDcyLDcgKzEwMDcyLDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmlu dEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1ZhcnlpbmdXcml0ZXIKLSB9Ci0gCi0gOyBG dW5jdGlvbiBBdHRyczogYWx3YXlzaW5saW5lIGlubGluZWhpbnQgbm91bndpbmQKLS1kZWZpbmUg aW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJF bmNvZGluZ0liMTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNv ZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsIGFsaWdu IDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCBhbGlnbiAx KSAjMjUgY29tZGF0ICFkYmcgITIwODggewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBf Wk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWIxM1ZhcnlpbmdXcml0 ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0 LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwoJWNsYXNzLlZhcnlpbmdXcml0ZXIpIGFsaWdu IDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCglInN0cnVj dC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKSBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcg ITIwODggewotICAgJTQgPSBhbGxvY2EgaTEsIGFsaWduIDEKLSAgICU1ID0gYWxsb2NhIGk4LCBh bGlnbiAxCi0gICBzdG9yZSBpOCAlMCwgaTgqICU1LCBhbGlnbiAxLCAhdGJhYSAhMTkzCi1AQCAt MTAwOTgsNyArMTAwOTgsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50 SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0liMTNWYXJ5aQotIH0KLSAKLSA7IEZ1 bmN0aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2luZAotLWRlZmluZSBp bnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVu Y29kaW5nSWkxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29k aW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwgYWxpZ24g MzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsIGFsaWduIDEp ICMyNSBjb21kYXQgIWRiZyAhMjA5NyB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9a TjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJaTEzVmFyeWluZ1dyaXRl ck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQs ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCglY2xhc3MuVmFyeWluZ1dyaXRlcikgYWxpZ24g MzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsKCUic3RydWN0 LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIpIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAh MjA5NyB7Ci0gICAlNCA9IGFsbG9jYSBpMSwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2EgaTgsIGFs aWduIDEKLSAgIHN0b3JlIGk4ICUwLCBpOCogJTUsIGFsaWduIDEsICF0YmFhICExOTMKLUBAIC0x MDEyNCw3ICsxMDEyNCw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJ bmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWkxM1ZhcnlpCi0gfQotIAotIDsgRnVu Y3Rpb24gQXR0cnM6IGFsd2F5c2lubGluZSBpbmxpbmVoaW50IG5vdW53aW5kCi0tZGVmaW5lIGlu dGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5j b2RpbmdJajEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2Rp bmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCBhbGlnbiAz MiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwgYWxpZ24gMSkg IzI1IGNvbWRhdCAhZGJnICEyMTA2IHsKLStkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pO OVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lqMTNWYXJ5aW5nV3JpdGVy TlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwg JWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5aW5nV3JpdGVyKSBhbGlnbiAz MiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwoJSJzdHJ1Y3Qu UHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIikgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICEy MTA2IHsKLSAgICU0ID0gYWxsb2NhIGkxLCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSBpOCwgYWxp Z24gMQotICAgc3RvcmUgaTggJTAsIGk4KiAlNSwgYWxpZ24gMSwgIXRiYWEgITE5MwotQEAgLTEw MTUwLDcgKzEwMTUwLDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludElu Zm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJajEzVmFyeWkKLSB9Ci0gCi0gOyBGdW5j dGlvbiBBdHRyczogYWx3YXlzaW5saW5lIGlubGluZWhpbnQgbm91bndpbmQKLS1kZWZpbmUgaW50 ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNv ZGluZ0lmMTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGlu Z0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsIGFsaWduIDMy LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCBhbGlnbiAxKSAj MjUgY29tZGF0ICFkYmcgITIxMTUgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45 UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWYxM1ZhcnlpbmdXcml0ZXJO U18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAl Y2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwoJWNsYXNzLlZhcnlpbmdXcml0ZXIpIGFsaWduIDMy LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCglInN0cnVjdC5Q cmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKSBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITIx MTUgewotICAgJTQgPSBhbGxvY2EgaTEsIGFsaWduIDEKLSAgICU1ID0gYWxsb2NhIGk4LCBhbGln biAxCi0gICBzdG9yZSBpOCAlMCwgaTgqICU1LCBhbGlnbiAxLCAhdGJhYSAhMTkzCi1AQCAtMTAx NzYsNyArMTAxNzYsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5m bzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lmMTNWYXJ5aQotIH0KLSAKLSA7IEZ1bmN0 aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2luZAotLWRlZmluZSBpbnRl cm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29k aW5nSXgxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5n RVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwgYWxpZ24gMzIs ICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsIGFsaWduIDEpICMy NSBjb21kYXQgIWRiZyAhMjEyNCB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQ cmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJeDEzVmFyeWluZ1dyaXRlck5T XzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVj bGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCglY2xhc3MuVmFyeWluZ1dyaXRlcikgYWxpZ24gMzIs ICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsKCUic3RydWN0LlBy aW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIpIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMjEy NCB7Ci0gICAlNCA9IGFsbG9jYSBpMSwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2EgaTgsIGFsaWdu IDEKLSAgIHN0b3JlIGk4ICUwLCBpOCogJTUsIGFsaWduIDEsICF0YmFhICExOTMKLUBAIC0xMDIw Miw3ICsxMDIwMiw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZv NmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSXgxM1ZhcnlpCi0gfQotIAotIDsgRnVuY3Rp b24gQXR0cnM6IGFsd2F5c2lubGluZSBpbmxpbmVoaW50IG5vdW53aW5kCi0tZGVmaW5lIGludGVy bmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2Rp bmdJeTEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdF VDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCBhbGlnbiAzMiwg JSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwgYWxpZ24gMSkgIzI1 IGNvbWRhdCAhZGJnICEyMTMzIHsKLStkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVBy aW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0l5MTNWYXJ5aW5nV3JpdGVyTlNf MTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNs YXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5aW5nV3JpdGVyKSBhbGlnbiAzMiwg JSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwoJSJzdHJ1Y3QuUHJp bnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIikgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICEyMTMz IHsKLSAgICU0ID0gYWxsb2NhIGkxLCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSBpOCwgYWxpZ24g MQotICAgc3RvcmUgaTggJTAsIGk4KiAlNSwgYWxpZ24gMSwgIXRiYWEgITE5MwotQEAgLTEwMjI4 LDcgKzEwMjI4LDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82 ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJeTEzVmFyeWkKLSB9Ci0gCi0gOyBGdW5jdGlv biBBdHRyczogYWx3YXlzaW5saW5lIGlubGluZWhpbnQgbm91bndpbmQKLS1kZWZpbmUgaW50ZXJu YWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGlu Z0lkMTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VU MF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsIGFsaWduIDMyLCAl InN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCBhbGlnbiAxKSAjMjUg Y29tZGF0ICFkYmcgITIxNDIgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJp bnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWQxM1ZhcnlpbmdXcml0ZXJOU18x NkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xh c3MuVmFyeWluZ1dyaXRlciogYnl2YWwoJWNsYXNzLlZhcnlpbmdXcml0ZXIpIGFsaWduIDMyLCAl InN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCglInN0cnVjdC5Qcmlu dEluZm86OkVuY29kaW5nNFZhcnlpbmciKSBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITIxNDIg ewotICAgJTQgPSBhbGxvY2EgaTEsIGFsaWduIDEKLSAgICU1ID0gYWxsb2NhIGk4LCBhbGlnbiAx Ci0gICBzdG9yZSBpOCAlMCwgaTgqICU1LCBhbGlnbiAxLCAhdGJhYSAhMTkzCi1AQCAtMTAyNTQs NyArMTAyNTQsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZk ZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lkMTNWYXJ5aQotIH0KLSAKLSA7IEZ1bmN0aW9u IEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2luZAotLWRlZmluZSBpbnRlcm5h bCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5n SVB2MTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VU MF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsIGFsaWduIDMyLCAl InN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCBhbGlnbiAxKSAjMjUg Y29tZGF0ICFkYmcgITIxNTEgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJp bnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSVB2MTNWYXJ5aW5nV3JpdGVyTlNf MTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNs YXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5aW5nV3JpdGVyKSBhbGlnbiAzMiwg JSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwoJSJzdHJ1Y3QuUHJp bnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIikgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICEyMTUx IHsKLSAgICU0ID0gYWxsb2NhIGkxLCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSBpOCwgYWxpZ24g MQotICAgc3RvcmUgaTggJTAsIGk4KiAlNSwgYWxpZ24gMSwgIXRiYWEgITE5MwotZGlmZiAtLWdp dCBhL2J1aWx0aW5zL2J1aWx0aW5zLWNtLTY0LmxsIGIvYnVpbHRpbnMvYnVpbHRpbnMtY20tNjQu bGwKLWluZGV4IDM5YTJkZDhiZS4uMzc1ZDAxYmVkIDEwMDY0NAotLS0tIGEvYnVpbHRpbnMvYnVp bHRpbnMtY20tNjQubGwKLSsrKyBiL2J1aWx0aW5zL2J1aWx0aW5zLWNtLTY0LmxsCi1AQCAtNTU3 LDcgKzU1Nyw3IEBAICRfWk4xM1ZhcnlpbmdXcml0ZXIxMldyaXRlVmVjRWxlbUlQdkVFdnYgPSBj b21kYXQgYW55Ci0gQC5zdHIuMTAgPSBwcml2YXRlIHVubmFtZWRfYWRkciBjb25zdGFudCBbOCB4 IGk4XSBjIiUwMTZsbFhcMDAiLCBhbGlnbiAxCi0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxp bmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIHNpZ25leHQgaTggQF9aMjRfX2NtX2ludHJp bnNpY19pbXBsX3NkaXZjYyhpOCBzaWduZXh0LCBpOCBzaWduZXh0KSAjMCB7Ci0rZGVmaW5lIGlu dGVybmFsIHNpZ25leHQgaTggQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZjYyhpOCBzaWdu ZXh0LCBpOCBzaWduZXh0KSAjMCB7Ci0gICAlMyA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgJTQg PSBhbGxvY2EgaTgsIGFsaWduIDEKLSAgICU1ID0gYWxsb2NhIDwxIHggaTg+LCBhbGlnbiAxCi1A QCAtNjE4LDcgKzYxOCw3IEBAIGRlZmluZSBpbnRlcm5hbCA8MSB4IGk4PiBAX1pON2RldGFpbHMx M19faW1wbF9kaXZyZW1JTGkxRUVFdTJDTXZiVF9fY1MxX1MxX3UyQ012Ci0gZGVjbGFyZSA8MSB4 IGk4PiBAbGx2bS5nZW54LnJkcmVnaW9uaS52MWk4LnYxaTguaTE2KDwxIHggaTg+LCBpMzIsIGkz MiwgaTMyLCBpMTYsIGkzMikgIzIKLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vu d2luZAotLWRlZmluZSBkc29fbG9jYWwgPDEgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBs X3NkaXZ1MkNNdmIxX2NTXyg8MSB4IGk4PiwgPDEgeCBpOD4pICMwIHsKLStkZWZpbmUgaW50ZXJu YWwgPDEgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmIxX2NTXyg8MSB4 IGk4PiwgPDEgeCBpOD4pICMwIHsKLSAgICUzID0gYWxsb2NhIDwxIHggaTg+LCBhbGlnbiAxCi0g ICAlNCA9IGFsbG9jYSA8MSB4IGk4PiwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2EgPDEgeCBpOD4s IGFsaWduIDEKLUBAIC02MzQsNyArNjM0LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MSB4IGk4PiBA X1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjFfY1NfKDwxIHggaTg+LCA8MQotIH0K LSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9j YWwgPDIgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmIyX2NTXyg8MiB4 IGk4PiwgPDIgeCBpOD4pICMzIHsKLStkZWZpbmUgaW50ZXJuYWwgPDIgeCBpOD4gQF9aMjRfX2Nt X2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmIyX2NTXyg8MiB4IGk4PiwgPDIgeCBpOD4pICMzIHsK LSAgICUzID0gYWxsb2NhIDwyIHggaTg+LCBhbGlnbiAyCi0gICAlNCA9IGFsbG9jYSA8MiB4IGk4 PiwgYWxpZ24gMgotICAgJTUgPSBhbGxvY2EgPDIgeCBpOD4sIGFsaWduIDIKLUBAIC02ODAsNyAr NjgwLDcgQEAgZGVmaW5lIGludGVybmFsIDwyIHggaTg+IEBfWk43ZGV0YWlsczEzX19pbXBsX2Rp dnJlbUlMaTJFRUV1MkNNdmJUX19jUzFfUzFfdTJDTXYKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRy czogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDw0IHggaTg+IEBfWjI0X19j bV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZiNF9jU18oPDQgeCBpOD4sIDw0IHggaTg+KSAjNSB7 Ci0rZGVmaW5lIGludGVybmFsIDw0IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2 dTJDTXZiNF9jU18oPDQgeCBpOD4sIDw0IHggaTg+KSAjNSB7Ci0gICAlMyA9IGFsbG9jYSA8NCB4 IGk4PiwgYWxpZ24gNAotICAgJTQgPSBhbGxvY2EgPDQgeCBpOD4sIGFsaWduIDQKLSAgICU1ID0g YWxsb2NhIDw0IHggaTg+LCBhbGlnbiA0Ci1AQCAtODE4LDcgKzgxOCw3IEBAIGRlZmluZSBpbnRl cm5hbCA8MTYgeCBpOD4gQF9aTjdkZXRhaWxzMTNfX2ltcGxfZGl2cmVtSUxpMTZFRUV1MkNNdmJU X19jUzFfUzFfdTJDCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5k Ci0tZGVmaW5lIGRzb19sb2NhbCA8MzIgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3Nk aXZ1MkNNdmIzMl9jU18oPDMyIHggaTg+LCA8MzIgeCBpOD4pICMxMSB7Ci0rZGVmaW5lIGludGVy bmFsIDwzMiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjMyX2NTXyg8 MzIgeCBpOD4sIDwzMiB4IGk4PikgIzExIHsKLSAgICUzID0gYWxsb2NhIDwzMiB4IGk4PiwgYWxp Z24gMzIKLSAgICU0ID0gYWxsb2NhIDwzMiB4IGk4PiwgYWxpZ24gMzIKLSAgICU1ID0gYWxsb2Nh IDwzMiB4IGk4PiwgYWxpZ24gMzIKLUBAIC04NjQsNyArODY0LDcgQEAgZGVmaW5lIGludGVybmFs IDwzMiB4IGk4PiBAX1pON2RldGFpbHMxM19faW1wbF9kaXZyZW1JTGkzMkVFRXUyQ012YlRfX2NT MV9TMV91MkMKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1k ZWZpbmUgZHNvX2xvY2FsIHNpZ25leHQgaTggQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW1j YyhpOCBzaWduZXh0LCBpOCBzaWduZXh0KSAjMCB7Ci0rZGVmaW5lIGludGVybmFsIHNpZ25leHQg aTggQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW1jYyhpOCBzaWduZXh0LCBpOCBzaWduZXh0 KSAjMCB7Ci0gICAlMyA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgJTQgPSBhbGxvY2EgaTgsIGFs aWduIDEKLSAgICU1ID0gYWxsb2NhIDwxIHggaTg+LCBhbGlnbiAxCi1AQCAtODkwLDcgKzg5MCw3 IEBAIGRlZmluZSBkc29fbG9jYWwgc2lnbmV4dCBpOCBAX1oyNF9fY21faW50cmluc2ljX2ltcGxf c3JlbWNjKGk4IHNpZ25leHQsIGk4IHNpZ25lCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5v aW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MSB4IGk4PiBAX1oyNF9fY21faW50 cmluc2ljX2ltcGxfc3JlbXUyQ012YjFfY1NfKDwxIHggaTg+LCA8MSB4IGk4PikgIzAgewotK2Rl ZmluZSBpbnRlcm5hbCA8MSB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012 YjFfY1NfKDwxIHggaTg+LCA8MSB4IGk4PikgIzAgewotICAgJTMgPSBhbGxvY2EgPDEgeCBpOD4s IGFsaWduIDEKLSAgICU0ID0gYWxsb2NhIDwxIHggaTg+LCBhbGlnbiAxCi0gICAlNSA9IGFsbG9j YSA8MSB4IGk4PiwgYWxpZ24gMQotQEAgLTkwNCw3ICs5MDQsNyBAQCBkZWZpbmUgZHNvX2xvY2Fs IDwxIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMV9jU18oPDEgeCBp OD4sIDwxCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVm aW5lIGRzb19sb2NhbCA8MiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012 YjJfY1NfKDwyIHggaTg+LCA8MiB4IGk4PikgIzMgewotK2RlZmluZSBpbnRlcm5hbCA8MiB4IGk4 PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjJfY1NfKDwyIHggaTg+LCA8MiB4 IGk4PikgIzMgewotICAgJTMgPSBhbGxvY2EgPDIgeCBpOD4sIGFsaWduIDIKLSAgICU0ID0gYWxs b2NhIDwyIHggaTg+LCBhbGlnbiAyCi0gICAlNSA9IGFsbG9jYSA8MiB4IGk4PiwgYWxpZ24gMgot QEAgLTkxOCw3ICs5MTgsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwyIHggaTg+IEBfWjI0X19jbV9p bnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMl9jU18oPDIgeCBpOD4sIDwyCi0gfQotIAotIDsgRnVu Y3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8NCB4IGk4 PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjRfY1NfKDw0IHggaTg+LCA8NCB4 IGk4PikgIzUgewotK2RlZmluZSBpbnRlcm5hbCA8NCB4IGk4PiBAX1oyNF9fY21faW50cmluc2lj X2ltcGxfc3JlbXUyQ012YjRfY1NfKDw0IHggaTg+LCA8NCB4IGk4PikgIzUgewotICAgJTMgPSBh bGxvY2EgPDQgeCBpOD4sIGFsaWduIDQKLSAgICU0ID0gYWxsb2NhIDw0IHggaTg+LCBhbGlnbiA0 Ci0gICAlNSA9IGFsbG9jYSA8NCB4IGk4PiwgYWxpZ24gNAotQEAgLTkzMiw3ICs5MzIsNyBAQCBk ZWZpbmUgZHNvX2xvY2FsIDw0IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJD TXZiNF9jU18oPDQgeCBpOD4sIDw0Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5l IG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8OCB4IGk4PiBAX1oyNF9fY21faW50cmluc2lj X2ltcGxfc3JlbXUyQ012YjhfY1NfKDw4IHggaTg+LCA8OCB4IGk4PikgIzcgewotK2RlZmluZSBp bnRlcm5hbCA8OCB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjhfY1Nf KDw4IHggaTg+LCA8OCB4IGk4PikgIzcgewotICAgJTMgPSBhbGxvY2EgPDggeCBpOD4sIGFsaWdu IDgKLSAgICU0ID0gYWxsb2NhIDw4IHggaTg+LCBhbGlnbiA4Ci0gICAlNSA9IGFsbG9jYSA8OCB4 IGk4PiwgYWxpZ24gOAotQEAgLTk0Niw3ICs5NDYsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDw4IHgg aTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiOF9jU18oPDggeCBpOD4sIDw4 Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRz b19sb2NhbCA8MTYgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIxNl9j U18oPDE2IHggaTg+LCA8MTYgeCBpOD4pICM5IHsKLStkZWZpbmUgaW50ZXJuYWwgPDE2IHggaTg+ IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMTZfY1NfKDwxNiB4IGk4PiwgPDE2 IHggaTg+KSAjOSB7Ci0gICAlMyA9IGFsbG9jYSA8MTYgeCBpOD4sIGFsaWduIDE2Ci0gICAlNCA9 IGFsbG9jYSA8MTYgeCBpOD4sIGFsaWduIDE2Ci0gICAlNSA9IGFsbG9jYSA8MTYgeCBpOD4sIGFs aWduIDE2Ci1AQCAtOTYwLDcgKzk2MCw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDE2IHggaTg+IEBf WjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMTZfY1NfKDwxNiB4IGk4PiwKLSB9Ci0g Ci0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2Fs IDwzMiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjMyX2NTXyg8MzIg eCBpOD4sIDwzMiB4IGk4PikgIzExIHsKLStkZWZpbmUgaW50ZXJuYWwgPDMyIHggaTg+IEBfWjI0 X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMzJfY1NfKDwzMiB4IGk4PiwgPDMyIHggaTg+ KSAjMTEgewotICAgJTMgPSBhbGxvY2EgPDMyIHggaTg+LCBhbGlnbiAzMgotICAgJTQgPSBhbGxv Y2EgPDMyIHggaTg+LCBhbGlnbiAzMgotICAgJTUgPSBhbGxvY2EgPDMyIHggaTg+LCBhbGlnbiAz MgotQEAgLTk3NCw3ICs5NzQsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwzMiB4IGk4PiBAX1oyNF9f Y21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjMyX2NTXyg8MzIgeCBpOD4sCi0gfQotIAotIDsg RnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCBzaWdu ZXh0IGkxNiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnNzKGkxNiBzaWduZXh0LCBpMTYg c2lnbmV4dCkgIzMgewotK2RlZmluZSBpbnRlcm5hbCBzaWduZXh0IGkxNiBAX1oyNF9fY21faW50 cmluc2ljX2ltcGxfc2RpdnNzKGkxNiBzaWduZXh0LCBpMTYgc2lnbmV4dCkgIzMgewotICAgJTMg PSBhbGxvY2EgaTE2LCBhbGlnbiAyCi0gICAlNCA9IGFsbG9jYSBpMTYsIGFsaWduIDIKLSAgICU1 ID0gYWxsb2NhIDwxIHggaTE2PiwgYWxpZ24gMgotQEAgLTEwNTgsNyArMTA1OCw3IEBAIGRlZmlu ZSBpbnRlcm5hbCA8MSB4IGkxNj4gQF9aTjdkZXRhaWxzMTNfX2ltcGxfZGl2cmVtSUxpMUVFRXUy Q012YlRfX3NTMV9TMV91MkNNCi0gZGVjbGFyZSA8MSB4IGkxNj4gQGxsdm0uZ2VueC5yZHJlZ2lv bmkudjFpMTYudjFpMTYuaTE2KDwxIHggaTE2PiwgaTMyLCBpMzIsIGkzMiwgaTE2LCBpMzIpICMy Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xv Y2FsIDwxIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjFfc1NfKDwx IHggaTE2PiwgPDEgeCBpMTY+KSAjMyB7Ci0rZGVmaW5lIGludGVybmFsIDwxIHggaTE2PiBAX1oy NF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjFfc1NfKDwxIHggaTE2PiwgPDEgeCBpMTY+ KSAjMyB7Ci0gICAlMyA9IGFsbG9jYSA8MSB4IGkxNj4sIGFsaWduIDIKLSAgICU0ID0gYWxsb2Nh IDwxIHggaTE2PiwgYWxpZ24gMgotICAgJTUgPSBhbGxvY2EgPDEgeCBpMTY+LCBhbGlnbiAyCi1A QCAtMTA3NCw3ICsxMDc0LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MSB4IGkxNj4gQF9aMjRfX2Nt X2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmIxX3NTXyg8MSB4IGkxNj4sIDwKLSB9Ci0gCi0gOyBG dW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwyIHgg aTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjJfc1NfKDwyIHggaTE2Piwg PDIgeCBpMTY+KSAjNSB7Ci0rZGVmaW5lIGludGVybmFsIDwyIHggaTE2PiBAX1oyNF9fY21faW50 cmluc2ljX2ltcGxfc2RpdnUyQ012YjJfc1NfKDwyIHggaTE2PiwgPDIgeCBpMTY+KSAjNSB7Ci0g ICAlMyA9IGFsbG9jYSA8MiB4IGkxNj4sIGFsaWduIDQKLSAgICU0ID0gYWxsb2NhIDwyIHggaTE2 PiwgYWxpZ24gNAotICAgJTUgPSBhbGxvY2EgPDIgeCBpMTY+LCBhbGlnbiA0Ci1AQCAtMTE0Myw3 ICsxMTQzLDcgQEAgZGVmaW5lIGludGVybmFsIDwyIHggaTE2PiBAX1pON2RldGFpbHMxM19faW1w bF9kaXZyZW1JTGkyRUVFdTJDTXZiVF9fc1MxX1MxX3UyQ00KLSB9Ci0gCi0gOyBGdW5jdGlvbiBB dHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDw0IHggaTE2PiBAX1oy NF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjRfc1NfKDw0IHggaTE2PiwgPDQgeCBpMTY+ KSAjNyB7Ci0rZGVmaW5lIGludGVybmFsIDw0IHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2lt cGxfc2RpdnUyQ012YjRfc1NfKDw0IHggaTE2PiwgPDQgeCBpMTY+KSAjNyB7Ci0gICAlMyA9IGFs bG9jYSA8NCB4IGkxNj4sIGFsaWduIDgKLSAgICU0ID0gYWxsb2NhIDw0IHggaTE2PiwgYWxpZ24g OAotICAgJTUgPSBhbGxvY2EgPDQgeCBpMTY+LCBhbGlnbiA4Ci1AQCAtMTM1MCw3ICsxMzUwLDcg QEAgZGVmaW5lIGludGVybmFsIDwxNiB4IGkxNj4gQF9aTjdkZXRhaWxzMTNfX2ltcGxfZGl2cmVt SUxpMTZFRUV1MkNNdmJUX19zUzFfUzFfdTIKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9p bmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwzMiB4IGkxNj4gQF9aMjRfX2NtX2lu dHJpbnNpY19pbXBsX3NkaXZ1MkNNdmIzMl9zU18oPDMyIHggaTE2PiwgPDMyIHggaTE2PikgIzEz IHsKLStkZWZpbmUgaW50ZXJuYWwgPDMyIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxf c2RpdnUyQ012YjMyX3NTXyg8MzIgeCBpMTY+LCA8MzIgeCBpMTY+KSAjMTMgewotICAgJTMgPSBh bGxvY2EgPDMyIHggaTE2PiwgYWxpZ24gNjQKLSAgICU0ID0gYWxsb2NhIDwzMiB4IGkxNj4sIGFs aWduIDY0Ci0gICAlNSA9IGFsbG9jYSA8MzIgeCBpMTY+LCBhbGlnbiA2NAotQEAgLTE0MTksNyAr MTQxOSw3IEBAIGRlZmluZSBpbnRlcm5hbCA8MzIgeCBpMTY+IEBfWk43ZGV0YWlsczEzX19pbXBs X2RpdnJlbUlMaTMyRUVFdTJDTXZiVF9fc1MxX1MxX3UyCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0 cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCBzaWduZXh0IGkxNiBAX1oy NF9fY21faW50cmluc2ljX2ltcGxfc3JlbXNzKGkxNiBzaWduZXh0LCBpMTYgc2lnbmV4dCkgIzMg ewotK2RlZmluZSBpbnRlcm5hbCBzaWduZXh0IGkxNiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxf c3JlbXNzKGkxNiBzaWduZXh0LCBpMTYgc2lnbmV4dCkgIzMgewotICAgJTMgPSBhbGxvY2EgaTE2 LCBhbGlnbiAyCi0gICAlNCA9IGFsbG9jYSBpMTYsIGFsaWduIDIKLSAgICU1ID0gYWxsb2NhIDwx IHggaTE2PiwgYWxpZ24gMgotQEAgLTE0NDUsNyArMTQ0NSw3IEBAIGRlZmluZSBkc29fbG9jYWwg c2lnbmV4dCBpMTYgQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW1zcyhpMTYgc2lnbmV4dCwg aTE2IHNpCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVm aW5lIGRzb19sb2NhbCA8MSB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNN dmIxX3NTXyg8MSB4IGkxNj4sIDwxIHggaTE2PikgIzMgewotK2RlZmluZSBpbnRlcm5hbCA8MSB4 IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIxX3NTXyg8MSB4IGkxNj4s IDwxIHggaTE2PikgIzMgewotICAgJTMgPSBhbGxvY2EgPDEgeCBpMTY+LCBhbGlnbiAyCi0gICAl NCA9IGFsbG9jYSA8MSB4IGkxNj4sIGFsaWduIDIKLSAgICU1ID0gYWxsb2NhIDwxIHggaTE2Piwg YWxpZ24gMgotQEAgLTE0NTksNyArMTQ1OSw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDEgeCBpMTY+ IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMV9zU18oPDEgeCBpMTY+LCA8Ci0g fQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19s b2NhbCA8MiB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIyX3NTXyg8 MiB4IGkxNj4sIDwyIHggaTE2PikgIzUgewotK2RlZmluZSBpbnRlcm5hbCA8MiB4IGkxNj4gQF9a MjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIyX3NTXyg8MiB4IGkxNj4sIDwyIHggaTE2 PikgIzUgewotICAgJTMgPSBhbGxvY2EgPDIgeCBpMTY+LCBhbGlnbiA0Ci0gICAlNCA9IGFsbG9j YSA8MiB4IGkxNj4sIGFsaWduIDQKLSAgICU1ID0gYWxsb2NhIDwyIHggaTE2PiwgYWxpZ24gNAot QEAgLTE0NzMsNyArMTQ3Myw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDIgeCBpMTY+IEBfWjI0X19j bV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMl9zU18oPDIgeCBpMTY+LCA8Ci0gfQotIAotIDsg RnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8NCB4 IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmI0X3NTXyg8NCB4IGkxNj4s IDw0IHggaTE2PikgIzcgewotK2RlZmluZSBpbnRlcm5hbCA8NCB4IGkxNj4gQF9aMjRfX2NtX2lu dHJpbnNpY19pbXBsX3NyZW11MkNNdmI0X3NTXyg8NCB4IGkxNj4sIDw0IHggaTE2PikgIzcgewot ICAgJTMgPSBhbGxvY2EgPDQgeCBpMTY+LCBhbGlnbiA4Ci0gICAlNCA9IGFsbG9jYSA8NCB4IGkx Nj4sIGFsaWduIDgKLSAgICU1ID0gYWxsb2NhIDw0IHggaTE2PiwgYWxpZ24gOAotQEAgLTE0ODcs NyArMTQ4Nyw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDQgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5z aWNfaW1wbF9zcmVtdTJDTXZiNF9zU18oPDQgeCBpMTY+LCA8Ci0gfQotIAotIDsgRnVuY3Rpb24g QXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8OCB4IGkxNj4gQF9a MjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmI4X3NTXyg8OCB4IGkxNj4sIDw4IHggaTE2 PikgIzkgewotK2RlZmluZSBpbnRlcm5hbCA8OCB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19p bXBsX3NyZW11MkNNdmI4X3NTXyg8OCB4IGkxNj4sIDw4IHggaTE2PikgIzkgewotICAgJTMgPSBh bGxvY2EgPDggeCBpMTY+LCBhbGlnbiAxNgotICAgJTQgPSBhbGxvY2EgPDggeCBpMTY+LCBhbGln biAxNgotICAgJTUgPSBhbGxvY2EgPDggeCBpMTY+LCBhbGlnbiAxNgotQEAgLTE1MDEsNyArMTUw MSw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDggeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1w bF9zcmVtdTJDTXZiOF9zU18oPDggeCBpMTY+LCA8Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6 IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MTYgeCBpMTY+IEBfWjI0X19j bV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMTZfc1NfKDwxNiB4IGkxNj4sIDwxNiB4IGkxNj4p ICMxMSB7Ci0rZGVmaW5lIGludGVybmFsIDwxNiB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19p bXBsX3NyZW11MkNNdmIxNl9zU18oPDE2IHggaTE2PiwgPDE2IHggaTE2PikgIzExIHsKLSAgICUz ID0gYWxsb2NhIDwxNiB4IGkxNj4sIGFsaWduIDMyCi0gICAlNCA9IGFsbG9jYSA8MTYgeCBpMTY+ LCBhbGlnbiAzMgotICAgJTUgPSBhbGxvY2EgPDE2IHggaTE2PiwgYWxpZ24gMzIKLUBAIC0xNTE1 LDcgKzE1MTUsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwxNiB4IGkxNj4gQF9aMjRfX2NtX2ludHJp bnNpY19pbXBsX3NyZW11MkNNdmIxNl9zU18oPDE2IHggaTE2PgotIH0KLSAKLSA7IEZ1bmN0aW9u IEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDMyIHggaTE2PiBA X1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjMyX3NTXyg8MzIgeCBpMTY+LCA8MzIg eCBpMTY+KSAjMTMgewotK2RlZmluZSBpbnRlcm5hbCA8MzIgeCBpMTY+IEBfWjI0X19jbV9pbnRy aW5zaWNfaW1wbF9zcmVtdTJDTXZiMzJfc1NfKDwzMiB4IGkxNj4sIDwzMiB4IGkxNj4pICMxMyB7 Ci0gICAlMyA9IGFsbG9jYSA8MzIgeCBpMTY+LCBhbGlnbiA2NAotICAgJTQgPSBhbGxvY2EgPDMy IHggaTE2PiwgYWxpZ24gNjQKLSAgICU1ID0gYWxsb2NhIDwzMiB4IGkxNj4sIGFsaWduIDY0Ci1A QCAtMTUyOSw3ICsxNTI5LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MzIgeCBpMTY+IEBfWjI0X19j bV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiMzJfc1NfKDwzMiB4IGkxNj4KLSB9Ci0gCi0gOyBG dW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIGkzMiBA X1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdmlpKGkzMiwgaTMyKSAjMTQgewotK2RlZmluZSBp bnRlcm5hbCBpMzIgQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZpaShpMzIsIGkzMikgIzE0 IHsKLSAgICUzID0gYWxsb2NhIGkzMiwgYWxpZ24gNAotICAgJTQgPSBhbGxvY2EgaTMyLCBhbGln biA0Ci0gICAlNSA9IGFsbG9jYSA8MSB4IGkzMj4sIGFsaWduIDQKLUBAIC0xNzMwLDcgKzE3MzAs NyBAQCBkZWZpbmUgaW50ZXJuYWwgPDEgeCBpMzI+IEBfWk43ZGV0YWlsczEzX19pbXBsX2RpdnJl bUlMaTFFRUV1MkNNdmJUX19pUzFfUzFfdTJDTQotIGRlY2xhcmUgPDEgeCBpMzI+IEBsbHZtLmdl bngucmRyZWdpb25pLnYxaTMyLnYxaTMyLmkxNig8MSB4IGkzMj4sIGkzMiwgaTMyLCBpMzIsIGkx NiwgaTMyKSAjMgotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVm aW5lIGRzb19sb2NhbCA8MSB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNN dmIxX2lTXyg8MSB4IGkzMj4sIDwxIHggaTMyPikgIzE0IHsKLStkZWZpbmUgaW50ZXJuYWwgPDEg eCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZiMV9pU18oPDEgeCBpMzI+ LCA8MSB4IGkzMj4pICMxNCB7Ci0gICAlMyA9IGFsbG9jYSA8MSB4IGkzMj4sIGFsaWduIDQKLSAg ICU0ID0gYWxsb2NhIDwxIHggaTMyPiwgYWxpZ24gNAotICAgJTUgPSBhbGxvY2EgPDEgeCBpMzI+ LCBhbGlnbiA0Ci1AQCAtMTc0Niw3ICsxNzQ2LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MSB4IGkz Mj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmIxX2lTXyg8MSB4IGkzMj4sIDwK LSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNv X2xvY2FsIDwyIHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjJfaVNf KDwyIHggaTMyPiwgPDIgeCBpMzI+KSAjMTUgewotK2RlZmluZSBpbnRlcm5hbCA8MiB4IGkzMj4g QF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmIyX2lTXyg8MiB4IGkzMj4sIDwyIHgg aTMyPikgIzE1IHsKLSAgICUzID0gYWxsb2NhIDwyIHggaTMyPiwgYWxpZ24gOAotICAgJTQgPSBh bGxvY2EgPDIgeCBpMzI+LCBhbGlnbiA4Ci0gICAlNSA9IGFsbG9jYSA8MiB4IGkzMj4sIGFsaWdu IDgKLUBAIC0xOTMyLDcgKzE5MzIsNyBAQCBkZWZpbmUgaW50ZXJuYWwgPDIgeCBpMzI+IEBfWk43 ZGV0YWlsczEzX19pbXBsX2RpdnJlbUlMaTJFRUV1MkNNdmJUX19pUzFfUzFfdTJDTQotIH0KLSAK LSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwg PDQgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZiNF9pU18oPDQgeCBp MzI+LCA8NCB4IGkzMj4pICMxNiB7Ci0rZGVmaW5lIGludGVybmFsIDw0IHggaTMyPiBAX1oyNF9f Y21faW50cmluc2ljX2ltcGxfc2RpdnUyQ012YjRfaVNfKDw0IHggaTMyPiwgPDQgeCBpMzI+KSAj MTYgewotICAgJTMgPSBhbGxvY2EgPDQgeCBpMzI+LCBhbGlnbiAxNgotICAgJTQgPSBhbGxvY2Eg PDQgeCBpMzI+LCBhbGlnbiAxNgotICAgJTUgPSBhbGxvY2EgPDQgeCBpMzI+LCBhbGlnbiAxNgot QEAgLTI0OTAsNyArMjQ5MCw3IEBAIGRlZmluZSBpbnRlcm5hbCA8MTYgeCBpMzI+IEBfWk43ZGV0 YWlsczEzX19pbXBsX2RpdnJlbUlMaTE2RUVFdTJDTXZiVF9faVMxX1MxX3UyCi0gfQotIAotIDsg RnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MzIg eCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zZGl2dTJDTXZiMzJfaVNfKDwzMiB4IGkz Mj4sIDwzMiB4IGkzMj4pICMxOSB7Ci0rZGVmaW5lIGludGVybmFsIDwzMiB4IGkzMj4gQF9aMjRf X2NtX2ludHJpbnNpY19pbXBsX3NkaXZ1MkNNdmIzMl9pU18oPDMyIHggaTMyPiwgPDMyIHggaTMy PikgIzE5IHsKLSAgICUzID0gYWxsb2NhIDwzMiB4IGkzMj4sIGFsaWduIDEyOAotICAgJTQgPSBh bGxvY2EgPDMyIHggaTMyPiwgYWxpZ24gMTI4Ci0gICAlNSA9IGFsbG9jYSA8MzIgeCBpMzI+LCBh bGlnbiAxMjgKLUBAIC0yNjc2LDcgKzI2NzYsNyBAQCBkZWZpbmUgaW50ZXJuYWwgPDMyIHggaTMy PiBAX1pON2RldGFpbHMxM19faW1wbF9kaXZyZW1JTGkzMkVFRXUyQ012YlRfX2lTMV9TMV91Mgot IH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29f bG9jYWwgaTMyIEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtaWkoaTMyLCBpMzIpICMxNCB7 Ci0rZGVmaW5lIGludGVybmFsIGkzMiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbWlpKGkz MiwgaTMyKSAjMTQgewotICAgJTMgPSBhbGxvY2EgaTMyLCBhbGlnbiA0Ci0gICAlNCA9IGFsbG9j YSBpMzIsIGFsaWduIDQKLSAgICU1ID0gYWxsb2NhIDwxIHggaTMyPiwgYWxpZ24gNAotQEAgLTI3 MDIsNyArMjcwMiw3IEBAIGRlZmluZSBkc29fbG9jYWwgaTMyIEBfWjI0X19jbV9pbnRyaW5zaWNf aW1wbF9zcmVtaWkoaTMyLCBpMzIpICMxNCB7Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5v aW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MSB4IGkzMj4gQF9aMjRfX2NtX2lu dHJpbnNpY19pbXBsX3NyZW11MkNNdmIxX2lTXyg8MSB4IGkzMj4sIDwxIHggaTMyPikgIzE0IHsK LStkZWZpbmUgaW50ZXJuYWwgPDEgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVt dTJDTXZiMV9pU18oPDEgeCBpMzI+LCA8MSB4IGkzMj4pICMxNCB7Ci0gICAlMyA9IGFsbG9jYSA8 MSB4IGkzMj4sIGFsaWduIDQKLSAgICU0ID0gYWxsb2NhIDwxIHggaTMyPiwgYWxpZ24gNAotICAg JTUgPSBhbGxvY2EgPDEgeCBpMzI+LCBhbGlnbiA0Ci1AQCAtMjcxNiw3ICsyNzE2LDcgQEAgZGVm aW5lIGRzb19sb2NhbCA8MSB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNN dmIxX2lTXyg8MSB4IGkzMj4sIDwKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUg bm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwyIHggaTMyPiBAX1oyNF9fY21faW50cmluc2lj X2ltcGxfc3JlbXUyQ012YjJfaVNfKDwyIHggaTMyPiwgPDIgeCBpMzI+KSAjMTUgewotK2RlZmlu ZSBpbnRlcm5hbCA8MiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIy X2lTXyg8MiB4IGkzMj4sIDwyIHggaTMyPikgIzE1IHsKLSAgICUzID0gYWxsb2NhIDwyIHggaTMy PiwgYWxpZ24gOAotICAgJTQgPSBhbGxvY2EgPDIgeCBpMzI+LCBhbGlnbiA4Ci0gICAlNSA9IGFs bG9jYSA8MiB4IGkzMj4sIGFsaWduIDgKLUBAIC0yNzMwLDcgKzI3MzAsNyBAQCBkZWZpbmUgZHNv X2xvY2FsIDwyIHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjJfaVNf KDwyIHggaTMyPiwgPAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2lu ZAotLWRlZmluZSBkc29fbG9jYWwgPDQgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9z cmVtdTJDTXZiNF9pU18oPDQgeCBpMzI+LCA8NCB4IGkzMj4pICMxNiB7Ci0rZGVmaW5lIGludGVy bmFsIDw0IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjRfaVNfKDw0 IHggaTMyPiwgPDQgeCBpMzI+KSAjMTYgewotICAgJTMgPSBhbGxvY2EgPDQgeCBpMzI+LCBhbGln biAxNgotICAgJTQgPSBhbGxvY2EgPDQgeCBpMzI+LCBhbGlnbiAxNgotICAgJTUgPSBhbGxvY2Eg PDQgeCBpMzI+LCBhbGlnbiAxNgotQEAgLTI3NDQsNyArMjc0NCw3IEBAIGRlZmluZSBkc29fbG9j YWwgPDQgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiNF9pU18oPDQg eCBpMzI+LCA8Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0t ZGVmaW5lIGRzb19sb2NhbCA8OCB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11 MkNNdmI4X2lTXyg8OCB4IGkzMj4sIDw4IHggaTMyPikgIzE3IHsKLStkZWZpbmUgaW50ZXJuYWwg PDggeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9zcmVtdTJDTXZiOF9pU18oPDggeCBp MzI+LCA8OCB4IGkzMj4pICMxNyB7Ci0gICAlMyA9IGFsbG9jYSA8OCB4IGkzMj4sIGFsaWduIDMy Ci0gICAlNCA9IGFsbG9jYSA8OCB4IGkzMj4sIGFsaWduIDMyCi0gICAlNSA9IGFsbG9jYSA8OCB4 IGkzMj4sIGFsaWduIDMyCi1AQCAtMjc1OCw3ICsyNzU4LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8 OCB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmI4X2lTXyg8OCB4IGkz Mj4sIDwKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZp bmUgZHNvX2xvY2FsIDwxNiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNN dmIxNl9pU18oPDE2IHggaTMyPiwgPDE2IHggaTMyPikgIzE4IHsKLStkZWZpbmUgaW50ZXJuYWwg PDE2IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjE2X2lTXyg8MTYg eCBpMzI+LCA8MTYgeCBpMzI+KSAjMTggewotICAgJTMgPSBhbGxvY2EgPDE2IHggaTMyPiwgYWxp Z24gNjQKLSAgICU0ID0gYWxsb2NhIDwxNiB4IGkzMj4sIGFsaWduIDY0Ci0gICAlNSA9IGFsbG9j YSA8MTYgeCBpMzI+LCBhbGlnbiA2NAotQEAgLTI3NzIsNyArMjc3Miw3IEBAIGRlZmluZSBkc29f bG9jYWwgPDE2IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfc3JlbXUyQ012YjE2X2lT Xyg8MTYgeCBpMzI+Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5k Ci0tZGVmaW5lIGRzb19sb2NhbCA8MzIgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF9z cmVtdTJDTXZiMzJfaVNfKDwzMiB4IGkzMj4sIDwzMiB4IGkzMj4pICMxOSB7Ci0rZGVmaW5lIGlu dGVybmFsIDwzMiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11MkNNdmIzMl9p U18oPDMyIHggaTMyPiwgPDMyIHggaTMyPikgIzE5IHsKLSAgICUzID0gYWxsb2NhIDwzMiB4IGkz Mj4sIGFsaWduIDEyOAotICAgJTQgPSBhbGxvY2EgPDMyIHggaTMyPiwgYWxpZ24gMTI4Ci0gICAl NSA9IGFsbG9jYSA8MzIgeCBpMzI+LCBhbGlnbiAxMjgKLUBAIC0yNzg2LDcgKzI3ODYsNyBAQCBk ZWZpbmUgZHNvX2xvY2FsIDwzMiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3NyZW11 MkNNdmIzMl9pU18oPDMyIHggaTMyPgotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGlu ZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgemVyb2V4dCBpOCBAX1oyNF9fY21faW50cmlu c2ljX2ltcGxfdWRpdmhoKGk4IHplcm9leHQsIGk4IHplcm9leHQpICMyMSB7Ci0rZGVmaW5lIGlu dGVybmFsIHplcm9leHQgaTggQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZoaChpOCB6ZXJv ZXh0LCBpOCB6ZXJvZXh0KSAjMjEgewotICAgJTMgPSBhbGxvY2EgaTgsIGFsaWduIDEKLSAgICU0 ID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSA8MSB4IGk4PiwgYWxpZ24gMQot QEAgLTI4NDQsNyArMjg0NCw3IEBAIGRlZmluZSBpbnRlcm5hbCA8MSB4IGk4PiBAX1pON2RldGFp bHMxNF9faW1wbF91ZGl2cmVtSUxpMUVFRXUyQ012YlRfX2hTMV9TMV91MkNNCi0gfQotIAotIDsg RnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8MSB4 IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRpdnUyQ012YjFfaFNfKDwxIHggaTg+LCA8 MSB4IGk4PikgIzIxIHsKLStkZWZpbmUgaW50ZXJuYWwgPDEgeCBpOD4gQF9aMjRfX2NtX2ludHJp bnNpY19pbXBsX3VkaXZ1MkNNdmIxX2hTXyg8MSB4IGk4PiwgPDEgeCBpOD4pICMyMSB7Ci0gICAl MyA9IGFsbG9jYSA8MSB4IGk4PiwgYWxpZ24gMQotICAgJTQgPSBhbGxvY2EgPDEgeCBpOD4sIGFs aWduIDEKLSAgICU1ID0gYWxsb2NhIDwxIHggaTg+LCBhbGlnbiAxCi1AQCAtMjg2MCw3ICsyODYw LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MSB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxf dWRpdnUyQ012YjFfaFNfKDwxIHggaTg+LCA8MQotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBu b2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDIgeCBpOD4gQF9aMjRfX2NtX2lu dHJpbnNpY19pbXBsX3VkaXZ1MkNNdmIyX2hTXyg8MiB4IGk4PiwgPDIgeCBpOD4pICMyMiB7Ci0r ZGVmaW5lIGludGVybmFsIDwyIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJD TXZiMl9oU18oPDIgeCBpOD4sIDwyIHggaTg+KSAjMjIgewotICAgJTMgPSBhbGxvY2EgPDIgeCBp OD4sIGFsaWduIDIKLSAgICU0ID0gYWxsb2NhIDwyIHggaTg+LCBhbGlnbiAyCi0gICAlNSA9IGFs bG9jYSA8MiB4IGk4PiwgYWxpZ24gMgotQEAgLTI5MDYsNyArMjkwNiw3IEBAIGRlZmluZSBpbnRl cm5hbCA8MiB4IGk4PiBAX1pON2RldGFpbHMxNF9faW1wbF91ZGl2cmVtSUxpMkVFRXUyQ012YlRf X2hTMV9TMV91MkNNCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5k Ci0tZGVmaW5lIGRzb19sb2NhbCA8NCB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRp dnUyQ012YjRfaFNfKDw0IHggaTg+LCA8NCB4IGk4PikgIzE0IHsKLStkZWZpbmUgaW50ZXJuYWwg PDQgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1MkNNdmI0X2hTXyg8NCB4IGk4 PiwgPDQgeCBpOD4pICMxNCB7Ci0gICAlMyA9IGFsbG9jYSA8NCB4IGk4PiwgYWxpZ24gNAotICAg JTQgPSBhbGxvY2EgPDQgeCBpOD4sIGFsaWduIDQKLSAgICU1ID0gYWxsb2NhIDw0IHggaTg+LCBh bGlnbiA0Ci1AQCAtMzA0NCw3ICszMDQ0LDcgQEAgZGVmaW5lIGludGVybmFsIDwxNiB4IGk4PiBA X1pON2RldGFpbHMxNF9faW1wbF91ZGl2cmVtSUxpMTZFRUV1MkNNdmJUX19oUzFfUzFfdTIKLSB9 Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xv Y2FsIDwzMiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRpdnUyQ012YjMyX2hTXyg8 MzIgeCBpOD4sIDwzMiB4IGk4PikgIzE3IHsKLStkZWZpbmUgaW50ZXJuYWwgPDMyIHggaTg+IEBf WjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZiMzJfaFNfKDwzMiB4IGk4PiwgPDMyIHgg aTg+KSAjMTcgewotICAgJTMgPSBhbGxvY2EgPDMyIHggaTg+LCBhbGlnbiAzMgotICAgJTQgPSBh bGxvY2EgPDMyIHggaTg+LCBhbGlnbiAzMgotICAgJTUgPSBhbGxvY2EgPDMyIHggaTg+LCBhbGln biAzMgotQEAgLTMwOTAsNyArMzA5MCw3IEBAIGRlZmluZSBpbnRlcm5hbCA8MzIgeCBpOD4gQF9a TjdkZXRhaWxzMTRfX2ltcGxfdWRpdnJlbUlMaTMyRUVFdTJDTXZiVF9faFMxX1MxX3UyCi0gfQot IAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2Nh bCB6ZXJvZXh0IGk4IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtaGgoaTggemVyb2V4dCwg aTggemVyb2V4dCkgIzIxIHsKLStkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpOCBAX1oyNF9fY21f aW50cmluc2ljX2ltcGxfdXJlbWhoKGk4IHplcm9leHQsIGk4IHplcm9leHQpICMyMSB7Ci0gICAl MyA9IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgJTQgPSBhbGxvY2EgaTgsIGFsaWduIDEKLSAgICU1 ID0gYWxsb2NhIDwxIHggaTg+LCBhbGlnbiAxCi1AQCAtMzExNiw3ICszMTE2LDcgQEAgZGVmaW5l IGRzb19sb2NhbCB6ZXJvZXh0IGk4IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtaGgoaTgg emVyb2V4dCwgaTggemVyb2UKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91 bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwxIHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1w bF91cmVtdTJDTXZiMV9oU18oPDEgeCBpOD4sIDwxIHggaTg+KSAjMjEgewotK2RlZmluZSBpbnRl cm5hbCA8MSB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjFfaFNfKDwx IHggaTg+LCA8MSB4IGk4PikgIzIxIHsKLSAgICUzID0gYWxsb2NhIDwxIHggaTg+LCBhbGlnbiAx Ci0gICAlNCA9IGFsbG9jYSA8MSB4IGk4PiwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2EgPDEgeCBp OD4sIGFsaWduIDEKLUBAIC0zMTMwLDcgKzMxMzAsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwxIHgg aTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMV9oU18oPDEgeCBpOD4sIDwx Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRz b19sb2NhbCA8MiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjJfaFNf KDwyIHggaTg+LCA8MiB4IGk4PikgIzIyIHsKLStkZWZpbmUgaW50ZXJuYWwgPDIgeCBpOD4gQF9a MjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIyX2hTXyg8MiB4IGk4PiwgPDIgeCBpOD4p ICMyMiB7Ci0gICAlMyA9IGFsbG9jYSA8MiB4IGk4PiwgYWxpZ24gMgotICAgJTQgPSBhbGxvY2Eg PDIgeCBpOD4sIGFsaWduIDIKLSAgICU1ID0gYWxsb2NhIDwyIHggaTg+LCBhbGlnbiAyCi1AQCAt MzE0NCw3ICszMTQ0LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MiB4IGk4PiBAX1oyNF9fY21faW50 cmluc2ljX2ltcGxfdXJlbXUyQ012YjJfaFNfKDwyIHggaTg+LCA8MgotIH0KLSAKLSA7IEZ1bmN0 aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDQgeCBpOD4g QF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmI0X2hTXyg8NCB4IGk4PiwgPDQgeCBp OD4pICMxNCB7Ci0rZGVmaW5lIGludGVybmFsIDw0IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNf aW1wbF91cmVtdTJDTXZiNF9oU18oPDQgeCBpOD4sIDw0IHggaTg+KSAjMTQgewotICAgJTMgPSBh bGxvY2EgPDQgeCBpOD4sIGFsaWduIDQKLSAgICU0ID0gYWxsb2NhIDw0IHggaTg+LCBhbGlnbiA0 Ci0gICAlNSA9IGFsbG9jYSA8NCB4IGk4PiwgYWxpZ24gNAotQEAgLTMxNTgsNyArMzE1OCw3IEBA IGRlZmluZSBkc29fbG9jYWwgPDQgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11 MkNNdmI0X2hTXyg8NCB4IGk4PiwgPDQKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxp bmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDw4IHggaTg+IEBfWjI0X19jbV9pbnRyaW5z aWNfaW1wbF91cmVtdTJDTXZiOF9oU18oPDggeCBpOD4sIDw4IHggaTg+KSAjMTUgewotK2RlZmlu ZSBpbnRlcm5hbCA8OCB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012Yjhf aFNfKDw4IHggaTg+LCA8OCB4IGk4PikgIzE1IHsKLSAgICUzID0gYWxsb2NhIDw4IHggaTg+LCBh bGlnbiA4Ci0gICAlNCA9IGFsbG9jYSA8OCB4IGk4PiwgYWxpZ24gOAotICAgJTUgPSBhbGxvY2Eg PDggeCBpOD4sIGFsaWduIDgKLUBAIC0zMTcyLDcgKzMxNzIsNyBAQCBkZWZpbmUgZHNvX2xvY2Fs IDw4IHggaTg+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiOF9oU18oPDggeCBp OD4sIDw4Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVm aW5lIGRzb19sb2NhbCA8MTYgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNN dmIxNl9oU18oPDE2IHggaTg+LCA8MTYgeCBpOD4pICMxNiB7Ci0rZGVmaW5lIGludGVybmFsIDwx NiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjE2X2hTXyg8MTYgeCBp OD4sIDwxNiB4IGk4PikgIzE2IHsKLSAgICUzID0gYWxsb2NhIDwxNiB4IGk4PiwgYWxpZ24gMTYK LSAgICU0ID0gYWxsb2NhIDwxNiB4IGk4PiwgYWxpZ24gMTYKLSAgICU1ID0gYWxsb2NhIDwxNiB4 IGk4PiwgYWxpZ24gMTYKLUBAIC0zMTg2LDcgKzMxODYsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwx NiB4IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjE2X2hTXyg8MTYgeCBp OD4sCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5l IGRzb19sb2NhbCA8MzIgeCBpOD4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIz Ml9oU18oPDMyIHggaTg+LCA8MzIgeCBpOD4pICMxNyB7Ci0rZGVmaW5lIGludGVybmFsIDwzMiB4 IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjMyX2hTXyg8MzIgeCBpOD4s IDwzMiB4IGk4PikgIzE3IHsKLSAgICUzID0gYWxsb2NhIDwzMiB4IGk4PiwgYWxpZ24gMzIKLSAg ICU0ID0gYWxsb2NhIDwzMiB4IGk4PiwgYWxpZ24gMzIKLSAgICU1ID0gYWxsb2NhIDwzMiB4IGk4 PiwgYWxpZ24gMzIKLUBAIC0zMjAwLDcgKzMyMDAsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwzMiB4 IGk4PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjMyX2hTXyg8MzIgeCBpOD4s Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRz b19sb2NhbCB6ZXJvZXh0IGkxNiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRpdnR0KGkxNiB6 ZXJvZXh0LCBpMTYgemVyb2V4dCkgIzIyIHsKLStkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMTYg QF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZ0dChpMTYgemVyb2V4dCwgaTE2IHplcm9leHQp ICMyMiB7Ci0gICAlMyA9IGFsbG9jYSBpMTYsIGFsaWduIDIKLSAgICU0ID0gYWxsb2NhIGkxNiwg YWxpZ24gMgotICAgJTUgPSBhbGxvY2EgPDEgeCBpMTY+LCBhbGlnbiAyCi1AQCAtMzI3OCw3ICsz Mjc4LDcgQEAgZGVmaW5lIGludGVybmFsIDwxIHggaTE2PiBAX1pON2RldGFpbHMxNF9faW1wbF91 ZGl2cmVtSUxpMUVFRXUyQ012YlRfX3RTMV9TMV91MkMKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRy czogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwxIHggaTE2PiBAX1oyNF9f Y21faW50cmluc2ljX2ltcGxfdWRpdnUyQ012YjFfdFNfKDwxIHggaTE2PiwgPDEgeCBpMTY+KSAj MjIgewotK2RlZmluZSBpbnRlcm5hbCA8MSB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBs X3VkaXZ1MkNNdmIxX3RTXyg8MSB4IGkxNj4sIDwxIHggaTE2PikgIzIyIHsKLSAgICUzID0gYWxs b2NhIDwxIHggaTE2PiwgYWxpZ24gMgotICAgJTQgPSBhbGxvY2EgPDEgeCBpMTY+LCBhbGlnbiAy Ci0gICAlNSA9IGFsbG9jYSA8MSB4IGkxNj4sIGFsaWduIDIKLUBAIC0zMjk0LDcgKzMyOTQsNyBA QCBkZWZpbmUgZHNvX2xvY2FsIDwxIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRp dnUyQ012YjFfdFNfKDwxIHggaTE2PiwgPAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lu bGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDIgeCBpMTY+IEBfWjI0X19jbV9pbnRy aW5zaWNfaW1wbF91ZGl2dTJDTXZiMl90U18oPDIgeCBpMTY+LCA8MiB4IGkxNj4pICMxNCB7Ci0r ZGVmaW5lIGludGVybmFsIDwyIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRpdnUy Q012YjJfdFNfKDwyIHggaTE2PiwgPDIgeCBpMTY+KSAjMTQgewotICAgJTMgPSBhbGxvY2EgPDIg eCBpMTY+LCBhbGlnbiA0Ci0gICAlNCA9IGFsbG9jYSA8MiB4IGkxNj4sIGFsaWduIDQKLSAgICU1 ID0gYWxsb2NhIDwyIHggaTE2PiwgYWxpZ24gNAotQEAgLTMzNjAsNyArMzM2MCw3IEBAIGRlZmlu ZSBpbnRlcm5hbCA8MiB4IGkxNj4gQF9aTjdkZXRhaWxzMTRfX2ltcGxfdWRpdnJlbUlMaTJFRUV1 MkNNdmJUX190UzFfUzFfdTJDCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5v dW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8NCB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19p bXBsX3VkaXZ1MkNNdmI0X3RTXyg8NCB4IGkxNj4sIDw0IHggaTE2PikgIzE1IHsKLStkZWZpbmUg aW50ZXJuYWwgPDQgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZiNF90 U18oPDQgeCBpMTY+LCA8NCB4IGkxNj4pICMxNSB7Ci0gICAlMyA9IGFsbG9jYSA8NCB4IGkxNj4s IGFsaWduIDgKLSAgICU0ID0gYWxsb2NhIDw0IHggaTE2PiwgYWxpZ24gOAotICAgJTUgPSBhbGxv Y2EgPDQgeCBpMTY+LCBhbGlnbiA4Ci1AQCAtMzU1OCw3ICszNTU4LDcgQEAgZGVmaW5lIGludGVy bmFsIDwxNiB4IGkxNj4gQF9aTjdkZXRhaWxzMTRfX2ltcGxfdWRpdnJlbUlMaTE2RUVFdTJDTXZi VF9fdFMxX1MxX3UKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQK LS1kZWZpbmUgZHNvX2xvY2FsIDwzMiB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3Vk aXZ1MkNNdmIzMl90U18oPDMyIHggaTE2PiwgPDMyIHggaTE2PikgIzE4IHsKLStkZWZpbmUgaW50 ZXJuYWwgPDMyIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRpdnUyQ012YjMyX3RT Xyg8MzIgeCBpMTY+LCA8MzIgeCBpMTY+KSAjMTggewotICAgJTMgPSBhbGxvY2EgPDMyIHggaTE2 PiwgYWxpZ24gNjQKLSAgICU0ID0gYWxsb2NhIDwzMiB4IGkxNj4sIGFsaWduIDY0Ci0gICAlNSA9 IGFsbG9jYSA8MzIgeCBpMTY+LCBhbGlnbiA2NAotQEAgLTM2MjQsNyArMzYyNCw3IEBAIGRlZmlu ZSBpbnRlcm5hbCA8MzIgeCBpMTY+IEBfWk43ZGV0YWlsczE0X19pbXBsX3VkaXZyZW1JTGkzMkVF RXUyQ012YlRfX3RTMV9TMV91Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5v dW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCB6ZXJvZXh0IGkxNiBAX1oyNF9fY21faW50cmluc2lj X2ltcGxfdXJlbXR0KGkxNiB6ZXJvZXh0LCBpMTYgemVyb2V4dCkgIzIyIHsKLStkZWZpbmUgaW50 ZXJuYWwgemVyb2V4dCBpMTYgQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW10dChpMTYgemVy b2V4dCwgaTE2IHplcm9leHQpICMyMiB7Ci0gICAlMyA9IGFsbG9jYSBpMTYsIGFsaWduIDIKLSAg ICU0ID0gYWxsb2NhIGkxNiwgYWxpZ24gMgotICAgJTUgPSBhbGxvY2EgPDEgeCBpMTY+LCBhbGln biAyCi1AQCAtMzY1MCw3ICszNjUwLDcgQEAgZGVmaW5lIGRzb19sb2NhbCB6ZXJvZXh0IGkxNiBA X1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXR0KGkxNiB6ZXJvZXh0LCBpMTYgemUKLSB9Ci0g Ci0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2Fs IDwxIHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjFfdFNfKDwxIHgg aTE2PiwgPDEgeCBpMTY+KSAjMjIgewotK2RlZmluZSBpbnRlcm5hbCA8MSB4IGkxNj4gQF9aMjRf X2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIxX3RTXyg8MSB4IGkxNj4sIDwxIHggaTE2Pikg IzIyIHsKLSAgICUzID0gYWxsb2NhIDwxIHggaTE2PiwgYWxpZ24gMgotICAgJTQgPSBhbGxvY2Eg PDEgeCBpMTY+LCBhbGlnbiAyCi0gICAlNSA9IGFsbG9jYSA8MSB4IGkxNj4sIGFsaWduIDIKLUBA IC0zNjY0LDcgKzM2NjQsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwxIHggaTE2PiBAX1oyNF9fY21f aW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjFfdFNfKDwxIHggaTE2PiwgPAotIH0KLSAKLSA7IEZ1 bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDIgeCBp MTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMl90U18oPDIgeCBpMTY+LCA8 MiB4IGkxNj4pICMxNCB7Ci0rZGVmaW5lIGludGVybmFsIDwyIHggaTE2PiBAX1oyNF9fY21faW50 cmluc2ljX2ltcGxfdXJlbXUyQ012YjJfdFNfKDwyIHggaTE2PiwgPDIgeCBpMTY+KSAjMTQgewot ICAgJTMgPSBhbGxvY2EgPDIgeCBpMTY+LCBhbGlnbiA0Ci0gICAlNCA9IGFsbG9jYSA8MiB4IGkx Nj4sIGFsaWduIDQKLSAgICU1ID0gYWxsb2NhIDwyIHggaTE2PiwgYWxpZ24gNAotQEAgLTM2Nzgs NyArMzY3OCw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDIgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5z aWNfaW1wbF91cmVtdTJDTXZiMl90U18oPDIgeCBpMTY+LCA8Ci0gfQotIAotIDsgRnVuY3Rpb24g QXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8NCB4IGkxNj4gQF9a MjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmI0X3RTXyg8NCB4IGkxNj4sIDw0IHggaTE2 PikgIzE1IHsKLStkZWZpbmUgaW50ZXJuYWwgPDQgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNf aW1wbF91cmVtdTJDTXZiNF90U18oPDQgeCBpMTY+LCA8NCB4IGkxNj4pICMxNSB7Ci0gICAlMyA9 IGFsbG9jYSA8NCB4IGkxNj4sIGFsaWduIDgKLSAgICU0ID0gYWxsb2NhIDw0IHggaTE2PiwgYWxp Z24gOAotICAgJTUgPSBhbGxvY2EgPDQgeCBpMTY+LCBhbGlnbiA4Ci1AQCAtMzY5Miw3ICszNjky LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8NCB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBs X3VyZW11MkNNdmI0X3RTXyg8NCB4IGkxNj4sIDwKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczog bm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDw4IHggaTE2PiBAX1oyNF9fY21f aW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjhfdFNfKDw4IHggaTE2PiwgPDggeCBpMTY+KSAjMTYg ewotK2RlZmluZSBpbnRlcm5hbCA8OCB4IGkxNj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3Vy ZW11MkNNdmI4X3RTXyg8OCB4IGkxNj4sIDw4IHggaTE2PikgIzE2IHsKLSAgICUzID0gYWxsb2Nh IDw4IHggaTE2PiwgYWxpZ24gMTYKLSAgICU0ID0gYWxsb2NhIDw4IHggaTE2PiwgYWxpZ24gMTYK LSAgICU1ID0gYWxsb2NhIDw4IHggaTE2PiwgYWxpZ24gMTYKLUBAIC0zNzA2LDcgKzM3MDYsNyBA QCBkZWZpbmUgZHNvX2xvY2FsIDw4IHggaTE2PiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJl bXUyQ012YjhfdFNfKDw4IHggaTE2PiwgPAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lu bGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDE2IHggaTE2PiBAX1oyNF9fY21faW50 cmluc2ljX2ltcGxfdXJlbXUyQ012YjE2X3RTXyg8MTYgeCBpMTY+LCA8MTYgeCBpMTY+KSAjMTcg ewotK2RlZmluZSBpbnRlcm5hbCA8MTYgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91 cmVtdTJDTXZiMTZfdFNfKDwxNiB4IGkxNj4sIDwxNiB4IGkxNj4pICMxNyB7Ci0gICAlMyA9IGFs bG9jYSA8MTYgeCBpMTY+LCBhbGlnbiAzMgotICAgJTQgPSBhbGxvY2EgPDE2IHggaTE2PiwgYWxp Z24gMzIKLSAgICU1ID0gYWxsb2NhIDwxNiB4IGkxNj4sIGFsaWduIDMyCi1AQCAtMzcyMCw3ICsz NzIwLDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MTYgeCBpMTY+IEBfWjI0X19jbV9pbnRyaW5zaWNf aW1wbF91cmVtdTJDTXZiMTZfdFNfKDwxNiB4IGkxNj4KLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRy czogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwzMiB4IGkxNj4gQF9aMjRf X2NtX2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIzMl90U18oPDMyIHggaTE2PiwgPDMyIHggaTE2 PikgIzE4IHsKLStkZWZpbmUgaW50ZXJuYWwgPDMyIHggaTE2PiBAX1oyNF9fY21faW50cmluc2lj X2ltcGxfdXJlbXUyQ012YjMyX3RTXyg8MzIgeCBpMTY+LCA8MzIgeCBpMTY+KSAjMTggewotICAg JTMgPSBhbGxvY2EgPDMyIHggaTE2PiwgYWxpZ24gNjQKLSAgICU0ID0gYWxsb2NhIDwzMiB4IGkx Nj4sIGFsaWduIDY0Ci0gICAlNSA9IGFsbG9jYSA8MzIgeCBpMTY+LCBhbGlnbiA2NAotQEAgLTM3 MzQsNyArMzczNCw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDMyIHggaTE2PiBAX1oyNF9fY21faW50 cmluc2ljX2ltcGxfdXJlbXUyQ012YjMyX3RTXyg8MzIgeCBpMTY+Ci0gfQotIAotIDsgRnVuY3Rp b24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCBpMzIgQF9aMjRf X2NtX2ludHJpbnNpY19pbXBsX3VkaXZqaihpMzIsIGkzMikgIzE0IHsKLStkZWZpbmUgaW50ZXJu YWwgaTMyIEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2amooaTMyLCBpMzIpICMxNCB7Ci0g ICAlMyA9IGFsbG9jYSBpMzIsIGFsaWduIDQKLSAgICU0ID0gYWxsb2NhIGkzMiwgYWxpZ24gNAot ICAgJTUgPSBhbGxvY2EgPDEgeCBpMzI+LCBhbGlnbiA0Ci1AQCAtMzg5Miw3ICszODkyLDcgQEAg ZGVmaW5lIGludGVybmFsIDwxIHggaTMyPiBAX1pON2RldGFpbHMxNF9faW1wbF91ZGl2cmVtSUxp MUVFRXUyQ012YlRfX2pTMV9TMV91MkMKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxp bmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwxIHggaTMyPiBAX1oyNF9fY21faW50cmlu c2ljX2ltcGxfdWRpdnUyQ012YjFfalNfKDwxIHggaTMyPiwgPDEgeCBpMzI+KSAjMTQgewotK2Rl ZmluZSBpbnRlcm5hbCA8MSB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1MkNN dmIxX2pTXyg8MSB4IGkzMj4sIDwxIHggaTMyPikgIzE0IHsKLSAgICUzID0gYWxsb2NhIDwxIHgg aTMyPiwgYWxpZ24gNAotICAgJTQgPSBhbGxvY2EgPDEgeCBpMzI+LCBhbGlnbiA0Ci0gICAlNSA9 IGFsbG9jYSA8MSB4IGkzMj4sIGFsaWduIDQKLUBAIC0zOTA4LDcgKzM5MDgsNyBAQCBkZWZpbmUg ZHNvX2xvY2FsIDwxIHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRpdnUyQ012YjFf alNfKDwxIHggaTMyPiwgPAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGluZSBub3Vu d2luZAotLWRlZmluZSBkc29fbG9jYWwgPDIgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1w bF91ZGl2dTJDTXZiMl9qU18oPDIgeCBpMzI+LCA8MiB4IGkzMj4pICMxNSB7Ci0rZGVmaW5lIGlu dGVybmFsIDwyIHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRpdnUyQ012YjJfalNf KDwyIHggaTMyPiwgPDIgeCBpMzI+KSAjMTUgewotICAgJTMgPSBhbGxvY2EgPDIgeCBpMzI+LCBh bGlnbiA4Ci0gICAlNCA9IGFsbG9jYSA8MiB4IGkzMj4sIGFsaWduIDgKLSAgICU1ID0gYWxsb2Nh IDwyIHggaTMyPiwgYWxpZ24gOAotQEAgLTQwNTQsNyArNDA1NCw3IEBAIGRlZmluZSBpbnRlcm5h bCA8MiB4IGkzMj4gQF9aTjdkZXRhaWxzMTRfX2ltcGxfdWRpdnJlbUlMaTJFRUV1MkNNdmJUX19q UzFfUzFfdTJDCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0t ZGVmaW5lIGRzb19sb2NhbCA8NCB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1 MkNNdmI0X2pTXyg8NCB4IGkzMj4sIDw0IHggaTMyPikgIzE2IHsKLStkZWZpbmUgaW50ZXJuYWwg PDQgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91ZGl2dTJDTXZiNF9qU18oPDQgeCBp MzI+LCA8NCB4IGkzMj4pICMxNiB7Ci0gICAlMyA9IGFsbG9jYSA8NCB4IGkzMj4sIGFsaWduIDE2 Ci0gICAlNCA9IGFsbG9jYSA8NCB4IGkzMj4sIGFsaWduIDE2Ci0gICAlNSA9IGFsbG9jYSA8NCB4 IGkzMj4sIGFsaWduIDE2Ci1AQCAtNDQ5Miw3ICs0NDkyLDcgQEAgZGVmaW5lIGludGVybmFsIDwx NiB4IGkzMj4gQF9aTjdkZXRhaWxzMTRfX2ltcGxfdWRpdnJlbUlMaTE2RUVFdTJDTXZiVF9falMx X1MxX3UKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZp bmUgZHNvX2xvY2FsIDwzMiB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VkaXZ1MkNN dmIzMl9qU18oPDMyIHggaTMyPiwgPDMyIHggaTMyPikgIzE5IHsKLStkZWZpbmUgaW50ZXJuYWwg PDMyIHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdWRpdnUyQ012YjMyX2pTXyg8MzIg eCBpMzI+LCA8MzIgeCBpMzI+KSAjMTkgewotICAgJTMgPSBhbGxvY2EgPDMyIHggaTMyPiwgYWxp Z24gMTI4Ci0gICAlNCA9IGFsbG9jYSA8MzIgeCBpMzI+LCBhbGlnbiAxMjgKLSAgICU1ID0gYWxs b2NhIDwzMiB4IGkzMj4sIGFsaWduIDEyOAotQEAgLTQ2MzgsNyArNDYzOCw3IEBAIGRlZmluZSBp bnRlcm5hbCA8MzIgeCBpMzI+IEBfWk43ZGV0YWlsczE0X19pbXBsX3VkaXZyZW1JTGkzMkVFRXUy Q012YlRfX2pTMV9TMV91Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IG5vaW5saW5lIG5vdW53 aW5kCi0tZGVmaW5lIGRzb19sb2NhbCBpMzIgQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW1q aihpMzIsIGkzMikgIzE0IHsKLStkZWZpbmUgaW50ZXJuYWwgaTMyIEBfWjI0X19jbV9pbnRyaW5z aWNfaW1wbF91cmVtamooaTMyLCBpMzIpICMxNCB7Ci0gICAlMyA9IGFsbG9jYSBpMzIsIGFsaWdu IDQKLSAgICU0ID0gYWxsb2NhIGkzMiwgYWxpZ24gNAotICAgJTUgPSBhbGxvY2EgPDEgeCBpMzI+ LCBhbGlnbiA0Ci1AQCAtNDY2NCw3ICs0NjY0LDcgQEAgZGVmaW5lIGRzb19sb2NhbCBpMzIgQF9a MjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW1qaihpMzIsIGkzMikgIzE0IHsKLSB9Ci0gCi0gOyBG dW5jdGlvbiBBdHRyczogbm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwxIHgg aTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUyQ012YjFfalNfKDwxIHggaTMyPiwg PDEgeCBpMzI+KSAjMTQgewotK2RlZmluZSBpbnRlcm5hbCA8MSB4IGkzMj4gQF9aMjRfX2NtX2lu dHJpbnNpY19pbXBsX3VyZW11MkNNdmIxX2pTXyg8MSB4IGkzMj4sIDwxIHggaTMyPikgIzE0IHsK LSAgICUzID0gYWxsb2NhIDwxIHggaTMyPiwgYWxpZ24gNAotICAgJTQgPSBhbGxvY2EgPDEgeCBp MzI+LCBhbGlnbiA0Ci0gICAlNSA9IGFsbG9jYSA8MSB4IGkzMj4sIGFsaWduIDQKLUBAIC00Njc4 LDcgKzQ2NzgsNyBAQCBkZWZpbmUgZHNvX2xvY2FsIDwxIHggaTMyPiBAX1oyNF9fY21faW50cmlu c2ljX2ltcGxfdXJlbXUyQ012YjFfalNfKDwxIHggaTMyPiwgPAotIH0KLSAKLSA7IEZ1bmN0aW9u IEF0dHJzOiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDIgeCBpMzI+IEBf WjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVtdTJDTXZiMl9qU18oPDIgeCBpMzI+LCA8MiB4IGkz Mj4pICMxNSB7Ci0rZGVmaW5lIGludGVybmFsIDwyIHggaTMyPiBAX1oyNF9fY21faW50cmluc2lj X2ltcGxfdXJlbXUyQ012YjJfalNfKDwyIHggaTMyPiwgPDIgeCBpMzI+KSAjMTUgewotICAgJTMg PSBhbGxvY2EgPDIgeCBpMzI+LCBhbGlnbiA4Ci0gICAlNCA9IGFsbG9jYSA8MiB4IGkzMj4sIGFs aWduIDgKLSAgICU1ID0gYWxsb2NhIDwyIHggaTMyPiwgYWxpZ24gOAotQEAgLTQ2OTIsNyArNDY5 Miw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDIgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1w bF91cmVtdTJDTXZiMl9qU18oPDIgeCBpMzI+LCA8Ci0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6 IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCA8NCB4IGkzMj4gQF9aMjRfX2Nt X2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmI0X2pTXyg8NCB4IGkzMj4sIDw0IHggaTMyPikgIzE2 IHsKLStkZWZpbmUgaW50ZXJuYWwgPDQgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91 cmVtdTJDTXZiNF9qU18oPDQgeCBpMzI+LCA8NCB4IGkzMj4pICMxNiB7Ci0gICAlMyA9IGFsbG9j YSA8NCB4IGkzMj4sIGFsaWduIDE2Ci0gICAlNCA9IGFsbG9jYSA8NCB4IGkzMj4sIGFsaWduIDE2 Ci0gICAlNSA9IGFsbG9jYSA8NCB4IGkzMj4sIGFsaWduIDE2Ci1AQCAtNDcwNiw3ICs0NzA2LDcg QEAgZGVmaW5lIGRzb19sb2NhbCA8NCB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3Vy ZW11MkNNdmI0X2pTXyg8NCB4IGkzMj4sIDwKLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogbm9p bmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDw4IHggaTMyPiBAX1oyNF9fY21faW50 cmluc2ljX2ltcGxfdXJlbXUyQ012YjhfalNfKDw4IHggaTMyPiwgPDggeCBpMzI+KSAjMTcgewot K2RlZmluZSBpbnRlcm5hbCA8OCB4IGkzMj4gQF9aMjRfX2NtX2ludHJpbnNpY19pbXBsX3VyZW11 MkNNdmI4X2pTXyg8OCB4IGkzMj4sIDw4IHggaTMyPikgIzE3IHsKLSAgICUzID0gYWxsb2NhIDw4 IHggaTMyPiwgYWxpZ24gMzIKLSAgICU0ID0gYWxsb2NhIDw4IHggaTMyPiwgYWxpZ24gMzIKLSAg ICU1ID0gYWxsb2NhIDw4IHggaTMyPiwgYWxpZ24gMzIKLUBAIC00NzIwLDcgKzQ3MjAsNyBAQCBk ZWZpbmUgZHNvX2xvY2FsIDw4IHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2ltcGxfdXJlbXUy Q012YjhfalNfKDw4IHggaTMyPiwgPAotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBub2lubGlu ZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgPDE2IHggaTMyPiBAX1oyNF9fY21faW50cmlu c2ljX2ltcGxfdXJlbXUyQ012YjE2X2pTXyg8MTYgeCBpMzI+LCA8MTYgeCBpMzI+KSAjMTggewot K2RlZmluZSBpbnRlcm5hbCA8MTYgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1wbF91cmVt dTJDTXZiMTZfalNfKDwxNiB4IGkzMj4sIDwxNiB4IGkzMj4pICMxOCB7Ci0gICAlMyA9IGFsbG9j YSA8MTYgeCBpMzI+LCBhbGlnbiA2NAotICAgJTQgPSBhbGxvY2EgPDE2IHggaTMyPiwgYWxpZ24g NjQKLSAgICU1ID0gYWxsb2NhIDwxNiB4IGkzMj4sIGFsaWduIDY0Ci1AQCAtNDczNCw3ICs0NzM0 LDcgQEAgZGVmaW5lIGRzb19sb2NhbCA8MTYgeCBpMzI+IEBfWjI0X19jbV9pbnRyaW5zaWNfaW1w bF91cmVtdTJDTXZiMTZfalNfKDwxNiB4IGkzMj4KLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczog bm9pbmxpbmUgbm91bndpbmQKLS1kZWZpbmUgZHNvX2xvY2FsIDwzMiB4IGkzMj4gQF9aMjRfX2Nt X2ludHJpbnNpY19pbXBsX3VyZW11MkNNdmIzMl9qU18oPDMyIHggaTMyPiwgPDMyIHggaTMyPikg IzE5IHsKLStkZWZpbmUgaW50ZXJuYWwgPDMyIHggaTMyPiBAX1oyNF9fY21faW50cmluc2ljX2lt cGxfdXJlbXUyQ012YjMyX2pTXyg8MzIgeCBpMzI+LCA8MzIgeCBpMzI+KSAjMTkgewotICAgJTMg PSBhbGxvY2EgPDMyIHggaTMyPiwgYWxpZ24gMTI4Ci0gICAlNCA9IGFsbG9jYSA8MzIgeCBpMzI+ LCBhbGlnbiAxMjgKLSAgICU1ID0gYWxsb2NhIDwzMiB4IGkzMj4sIGFsaWduIDEyOAotQEAgLTQ3 NDgsNyArNDc0OCw3IEBAIGRlZmluZSBkc29fbG9jYWwgPDMyIHggaTMyPiBAX1oyNF9fY21faW50 cmluc2ljX2ltcGxfdXJlbXUyQ012YjMyX2pTXyg8MzIgeCBpMzI+Ci0gfQotIAotIDsgRnVuY3Rp b24gQXR0cnM6IG5vaW5saW5lIG5vdW53aW5kCi0tZGVmaW5lIGRzb19sb2NhbCB2b2lkIEBfX2Rv X3ByaW50X2NtKGk4KiwgaTgqLCBpMzIsIGk2NCwgaTMyKiwgaTMyLCBpMzIpICMyMyAhZGJnICEx NSB7Ci0rZGVmaW5lIGludGVybmFsIHZvaWQgQF9fZG9fcHJpbnRfY20oaTgqLCBpOCosIGkzMiwg aTY0LCBpMzIqLCBpMzIsIGkzMikgIzIzICFkYmcgITE1IHsKLSAgICU4ID0gYWxsb2NhIGk4Kiwg YWxpZ24gOAotICAgJTkgPSBhbGxvY2EgaTgqLCBhbGlnbiA4Ci0gICAlMTAgPSBhbGxvY2EgaTMy LCBhbGlnbiA0Ci1AQCAtNTA3MCw3ICs1MDcwLDcgQEAgZGVmaW5lIGRzb19sb2NhbCB2b2lkIEBf X2RvX3ByaW50X2x6KGkzMiwgaTgqLCBpMzIsIGk2NCwgaTMyKiwgaTMyLCBpMzIsIGkzMiwgaTMK LSAgICU2NyA9IGxvYWQgaTY0LCBpNjQqICUxMywgYWxpZ24gOCwgIWRiZyAhMTU5LCAhdGJhYSAh MTkKLSAgICU2OCA9IGxvYWQgPDUgeCBpMzI+LCA8NSB4IGkzMj4qICUyMSwgYWxpZ24gMzIsICFk YmcgITE2MCwgIXRiYWEgITcKLSAgIGNhbGwgdm9pZCBAX1pOMTNWYXJ5aW5nV3JpdGVyQzJFUnlS UEtqaXl1MkNNdmI1X2koJWNsYXNzLlZhcnlpbmdXcml0ZXIqICUyMywgaTY0KiBkZXJlZmVyZW5j ZWFibGUoOCkgJTE5LCBpMzIqKiBkZXJlZmVyZW5jZWFibGUoOCkgJTE0LCBpMzIgJTY2LCBpNjQg JTY3LCA8NSB4IGkzMj4gJTY4KSwgIWRiZyAhMTYxCi0tICAlNjkgPSBjYWxsIHplcm9leHQgaTEg QF9aTjlQcmludEluZm8xNHN3aXRjaEVuY29kaW5nSTEzVW5pZm9ybVdyaXRlcjEzVmFyeWluZ1dy aXRlckVFYk5TXzhFbmNvZGluZ0VUX1QwXyhpOCBzaWduZXh0ICU2MiwgJWNsYXNzLlVuaWZvcm1X cml0ZXIqIGJ5dmFsIGFsaWduIDMyICUyMiwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsIGFs aWduIDMyICUyMyksICFkYmcgITE2MgotKyAgJTY5ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJp bnRJbmZvMTRzd2l0Y2hFbmNvZGluZ0kxM1VuaWZvcm1Xcml0ZXIxM1ZhcnlpbmdXcml0ZXJFRWJO U184RW5jb2RpbmdFVF9UMF8oaTggc2lnbmV4dCAlNjIsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBi eXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24gMzIgJTIyLCAlY2xhc3MuVmFyeWluZ1dy aXRlciogYnl2YWwoJWNsYXNzLlZhcnlpbmdXcml0ZXIpIGFsaWduIDMyICUyMyksICFkYmcgITE2 MgotICAgYnIgbGFiZWwgJTcwLCAhZGJnICExNjMKLSAKLSA7IDxsYWJlbD46NzA6ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsgcHJlZHMgPSAlNjAKLUBAIC01MTg4LDcgKzUx ODgsNyBAQCBkZWZpbmUgaW50ZXJuYWwgPDUgeCBpMzI+IEBfWjE3Z2V0X2F1eGlsaWFyeV9zdHJ2 KCkgIzI4IGNvbWRhdCAhZGJnICExNzggewotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBhbHdh eXNpbmxpbmUgaW5saW5laGludCBub3Vud2luZAotLWRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkx IEBfWk45UHJpbnRJbmZvMTRzd2l0Y2hFbmNvZGluZ0kxM1VuaWZvcm1Xcml0ZXIxM1ZhcnlpbmdX cml0ZXJFRWJOU184RW5jb2RpbmdFVF9UMF8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1Xcml0 ZXIqIGJ5dmFsIGFsaWduIDMyLCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwgYWxpZ24gMzIp ICMyNSBjb21kYXQgIWRiZyAhMTkxIHsKLStkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pO OVByaW50SW5mbzE0c3dpdGNoRW5jb2RpbmdJMTNVbmlmb3JtV3JpdGVyMTNWYXJ5aW5nV3JpdGVy RUViTlNfOEVuY29kaW5nRVRfVDBfKGk4IHNpZ25leHQsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBi eXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24gMzIsICVjbGFzcy5WYXJ5aW5nV3JpdGVy KiBieXZhbCglY2xhc3MuVmFyeWluZ1dyaXRlcikgYWxpZ24gMzIpICMyNSBjb21kYXQgIWRiZyAh MTkxIHsKLSAgICU0ID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSAlY2xhc3Mu VW5pZm9ybVdyaXRlciwgYWxpZ24gMzIKLSAgICU2ID0gYWxsb2NhICVjbGFzcy5WYXJ5aW5nV3Jp dGVyLCBhbGlnbiAzMgotQEAgLTUxOTcsNyArNTE5Nyw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJv ZXh0IGkxIEBfWk45UHJpbnRJbmZvMTRzd2l0Y2hFbmNvZGluZ0kxM1VuaWZvcm1Xcml0ZXIxM1Zh cnlpCi0gICAlOCA9IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqICU1IHRvIGk4KiwgIWRi ZyAhMTk2Ci0gICAlOSA9IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqICUxIHRvIGk4Kiwg IWRiZyAhMTk2Ci0gICBjYWxsIHZvaWQgQGxsdm0ubWVtY3B5LnAwaTgucDBpOC5pNjQoaTgqIGFs aWduIDMyICU4LCBpOCogYWxpZ24gMzIgJTksIGk2NCA2NCwgaTEgZmFsc2UpLCAhZGJnICExOTYs ICF0YmFhLnN0cnVjdCAhMTk3Ci0tICAlMTAgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludElu Zm8yMnN3aXRjaEVuY29kaW5nNFVuaWZvcm1JMTNVbmlmb3JtV3JpdGVyRUViTlNfOEVuY29kaW5n RVRfKGk4IHNpZ25leHQgJTcsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBhbGlnbiAzMiAl NSksICFkYmcgITE5OAotKyAgJTEwID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvMjJz d2l0Y2hFbmNvZGluZzRVbmlmb3JtSTEzVW5pZm9ybVdyaXRlckVFYk5TXzhFbmNvZGluZ0VUXyhp OCBzaWduZXh0ICU3LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1X cml0ZXIpIGFsaWduIDMyICU1KSwgIWRiZyAhMTk4Ci0gICBiciBpMSAlMTAsIGxhYmVsICUxNiwg bGFiZWwgJTExLCAhZGJnICExOTkKLSAKLSA7IDxsYWJlbD46MTE6ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDsgcHJlZHMgPSAlMwotQEAgLTUyMDUsNyArNTIwNSw3IEBAIGRl ZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvMTRzd2l0Y2hFbmNvZGluZ0kx M1VuaWZvcm1Xcml0ZXIxM1ZhcnlpCi0gICAlMTMgPSBiaXRjYXN0ICVjbGFzcy5WYXJ5aW5nV3Jp dGVyKiAlNiB0byBpOCosICFkYmcgITIwMQotICAgJTE0ID0gYml0Y2FzdCAlY2xhc3MuVmFyeWlu Z1dyaXRlciogJTIgdG8gaTgqLCAhZGJnICEyMDEKLSAgIGNhbGwgdm9pZCBAbGx2bS5tZW1jcHku cDBpOC5wMGk4Lmk2NChpOCogYWxpZ24gMzIgJTEzLCBpOCogYWxpZ24gMzIgJTE0LCBpNjQgNjQs IGkxIGZhbHNlKSwgIWRiZyAhMjAxLCAhdGJhYS5zdHJ1Y3QgITE5NwotLSAgJTE1ID0gY2FsbCB6 ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvMjJzd2l0Y2hFbmNvZGluZzRWYXJ5aW5nSTEzVmFyeWlu Z1dyaXRlckVFYk5TXzhFbmNvZGluZ0VUXyhpOCBzaWduZXh0ICUxMiwgJWNsYXNzLlZhcnlpbmdX cml0ZXIqIGJ5dmFsIGFsaWduIDMyICU2KSwgIWRiZyAhMjAyCi0rICAlMTUgPSBjYWxsIHplcm9l eHQgaTEgQF9aTjlQcmludEluZm8yMnN3aXRjaEVuY29kaW5nNFZhcnlpbmdJMTNWYXJ5aW5nV3Jp dGVyRUViTlNfOEVuY29kaW5nRVRfKGk4IHNpZ25leHQgJTEyLCAlY2xhc3MuVmFyeWluZ1dyaXRl ciogYnl2YWwoJWNsYXNzLlZhcnlpbmdXcml0ZXIpIGFsaWduIDMyICU2KSwgIWRiZyAhMjAyCi0g ICBiciBsYWJlbCAlMTYsICFkYmcgITE5OQotIAotIDsgPGxhYmVsPjoxNjogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgOyBwcmVkcyA9ICUxMSwgJTMKLUBAIC01MjgwLDcgKzUy ODAsNyBAQCBkZWZpbmUgaW50ZXJuYWwgdm9pZCBAX1pOMTNWYXJ5aW5nV3JpdGVyQzJFUnlSUEtq aXl1MkNNdmI1X2koJWNsYXNzLlZhcnlpbmdXcml0ZQotIH0KLSAKLSA7IEZ1bmN0aW9uIEF0dHJz OiBub2lubGluZSBub3Vud2luZAotLWRlZmluZSBkc29fbG9jYWwgaTMyIEBfX251bV9jb3Jlcygp ICMyOSAhZGJnICEyMzYgewotK2RlZmluZSBpbnRlcm5hbCBpMzIgQF9fbnVtX2NvcmVzKCkgIzI5 ICFkYmcgITIzNiB7Ci0gICByZXQgaTMyIC0xLCAhZGJnICEyMzcKLSB9Ci0gCi1AQCAtODg3MCw3 ICs4ODcwLDcgQEAgZGVjbGFyZSBkc29fbG9jYWwgdm9pZCBAX1pON2RldGFpbHMzN19fY21faW50 cmluc2ljX2ltcGxfc3ZtX3NjYXR0ZXJfd3JpdGVJaUxpMUUKLSBkZWNsYXJlIHZvaWQgQGxsdm0u Z2VueC5zdm0uc2NhdHRlci52MWkxLnYxaTY0LnYxaTMyKDwxIHggaTE+LCBpMzIsIDwxIHggaTY0 PiwgPDEgeCBpMzI+KSAjMjcKLSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUgaW5s aW5laGludCBub3Vud2luZAotLWRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJ bmZvMjJzd2l0Y2hFbmNvZGluZzRVbmlmb3JtSTEzVW5pZm9ybVdyaXRlckVFYk5TXzhFbmNvZGlu Z0VUXyhpOCBzaWduZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwgYWxpZ24gMzIpICMy NSBjb21kYXQgIWRiZyAhMTY0NSB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQ cmludEluZm8yMnN3aXRjaEVuY29kaW5nNFVuaWZvcm1JMTNVbmlmb3JtV3JpdGVyRUViTlNfOEVu Y29kaW5nRVRfKGk4IHNpZ25leHQsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCglY2xhc3Mu VW5pZm9ybVdyaXRlcikgYWxpZ24gMzIpICMyNSBjb21kYXQgIWRiZyAhMTY0NSB7Ci0gICAlMyA9 IGFsbG9jYSBpOCwgYWxpZ24gMQotICAgJTQgPSBhbGxvY2EgJWNsYXNzLlVuaWZvcm1Xcml0ZXIs IGFsaWduIDMyCi0gICAlNSA9IGFsbG9jYSAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVu aWZvcm0iLCBhbGlnbiAxCi1AQCAtODg3OSw3ICs4ODc5LDcgQEAgZGVmaW5lIGludGVybmFsIHpl cm9leHQgaTEgQF9aTjlQcmludEluZm8yMnN3aXRjaEVuY29kaW5nNFVuaWZvcm1JMTNVbmlmb3Jt V3JpdGUKLSAgICU3ID0gYml0Y2FzdCAlY2xhc3MuVW5pZm9ybVdyaXRlciogJTQgdG8gaTgqLCAh ZGJnICExNjQ3Ci0gICAlOCA9IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqICUxIHRvIGk4 KiwgIWRiZyAhMTY0NwotICAgY2FsbCB2b2lkIEBsbHZtLm1lbWNweS5wMGk4LnAwaTguaTY0KGk4 KiBhbGlnbiAzMiAlNywgaTgqIGFsaWduIDMyICU4LCBpNjQgNjQsIGkxIGZhbHNlKSwgIWRiZyAh MTY0NywgIXRiYWEuc3RydWN0ICExOTcKLS0gICU5ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJp bnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGlu ZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUX1QwXyhpOCBzaWduZXh0ICU2LCAlY2xhc3MuVW5p Zm9ybVdyaXRlciogYnl2YWwgYWxpZ24gMzIgJTQsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rp bmc0VW5pZm9ybSIqIGJ5dmFsIGFsaWduIDEgJTUpLCAhZGJnICExNjQ4Ci0rICAlOSA9IGNhbGwg emVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEzVW5pZm9y bVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVF9UMF8oaTggc2ln bmV4dCAlNiwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsKCVjbGFzcy5Vbmlmb3JtV3JpdGVy KSBhbGlnbiAzMiAlNCwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2 YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIikgYWxpZ24gMSAlNSksICFk YmcgITE2NDgKLSAgIHJldCBpMSAlOSwgIWRiZyAhMTY0OQotIH0KLSAKLUBAIC04ODg3LDcgKzg4 ODcsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzIyc3dpdGNo RW5jb2Rpbmc0VW5pZm9ybUkxM1VuaWZvcm1Xcml0ZQotIGRlY2xhcmUgdm9pZCBAbGx2bS5tZW1j cHkucDBpOC5wMGk4Lmk2NChpOCogbm9jYXB0dXJlIHdyaXRlb25seSwgaTgqIG5vY2FwdHVyZSBy ZWFkb25seSwgaTY0LCBpMSkgIzMyCi0gCi0gOyBGdW5jdGlvbiBBdHRyczogYWx3YXlzaW5saW5l IGlubGluZWhpbnQgbm91bndpbmQKLS1kZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVBy aW50SW5mbzIyc3dpdGNoRW5jb2Rpbmc0VmFyeWluZ0kxM1ZhcnlpbmdXcml0ZXJFRWJOU184RW5j b2RpbmdFVF8oaTggc2lnbmV4dCwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsIGFsaWduIDMy KSAjMjUgY29tZGF0ICFkYmcgITE2NTAgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBf Wk45UHJpbnRJbmZvMjJzd2l0Y2hFbmNvZGluZzRWYXJ5aW5nSTEzVmFyeWluZ1dyaXRlckVFYk5T XzhFbmNvZGluZ0VUXyhpOCBzaWduZXh0LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwoJWNs YXNzLlZhcnlpbmdXcml0ZXIpIGFsaWduIDMyKSAjMjUgY29tZGF0ICFkYmcgITE2NTAgewotICAg JTMgPSBhbGxvY2EgaTgsIGFsaWduIDEKLSAgICU0ID0gYWxsb2NhICVjbGFzcy5WYXJ5aW5nV3Jp dGVyLCBhbGlnbiAzMgotICAgJTUgPSBhbGxvY2EgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGlu ZzRWYXJ5aW5nIiwgYWxpZ24gMQotQEAgLTg4OTYsMTIgKzg4OTYsMTIgQEAgZGVmaW5lIGludGVy bmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm8yMnN3aXRjaEVuY29kaW5nNFZhcnlpbmdJMTNW YXJ5aW5nV3JpdGUKLSAgICU3ID0gYml0Y2FzdCAlY2xhc3MuVmFyeWluZ1dyaXRlciogJTQgdG8g aTgqLCAhZGJnICExNjUyCi0gICAlOCA9IGJpdGNhc3QgJWNsYXNzLlZhcnlpbmdXcml0ZXIqICUx IHRvIGk4KiwgIWRiZyAhMTY1MgotICAgY2FsbCB2b2lkIEBsbHZtLm1lbWNweS5wMGk4LnAwaTgu aTY0KGk4KiBhbGlnbiAzMiAlNywgaTgqIGFsaWduIDMyICU4LCBpNjQgNjQsIGkxIGZhbHNlKSwg IWRiZyAhMTY1MiwgIXRiYWEuc3RydWN0ICExOTcKLS0gICU5ID0gY2FsbCB6ZXJvZXh0IGkxIEBf Wk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNWYXJ5aW5nV3JpdGVyTlNfMTZF bmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUX1QwXyhpOCBzaWduZXh0ICU2LCAlY2xh c3MuVmFyeWluZ1dyaXRlciogYnl2YWwgYWxpZ24gMzIgJTQsICUic3RydWN0LlByaW50SW5mbzo6 RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsIGFsaWduIDEgJTUpLCAhZGJnICExNjUzCi0rICAlOSA9 IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEz VmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVF9UMF8o aTggc2lnbmV4dCAlNiwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5aW5n V3JpdGVyKSBhbGlnbiAzMiAlNCwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5n IiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIikgYWxpZ24gMSAl NSksICFkYmcgITE2NTMKLSAgIHJldCBpMSAlOSwgIWRiZyAhMTY1NAotIH0KLSAKLSA7IEZ1bmN0 aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2luZAotLWRlZmluZSBpbnRl cm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNV bmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUX1QwXyhp OCBzaWduZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwgYWxpZ24gMzIsICUic3RydWN0 LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsIGFsaWduIDEpICMyNSBjb21kYXQg IWRiZyAhMTY1NSB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82 ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZv cm1FRUViTlNfOEVuY29kaW5nRVRfVDBfKGk4IHNpZ25leHQsICVjbGFzcy5Vbmlmb3JtV3JpdGVy KiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5m bzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0 VW5pZm9ybSIpIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMTY1NSB7Ci0gICAlNCA9IGFsbG9j YSBpOCwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2EgJWNsYXNzLlVuaWZvcm1Xcml0ZXIsIGFsaWdu IDMyCi0gICAlNiA9IGFsbG9jYSAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0i LCBhbGlnbiAxCi1AQCAtODkyNCw3ICs4OTI0LDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQg aTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1VuaWZvcm1Xcml0ZXIK LSAgICUyMiA9IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqICU1IHRvIGk4KiwgIWRiZyAh MTY1NwotICAgJTIzID0gYml0Y2FzdCAlY2xhc3MuVW5pZm9ybVdyaXRlciogJTEgdG8gaTgqLCAh ZGJnICExNjU3Ci0gICBjYWxsIHZvaWQgQGxsdm0ubWVtY3B5LnAwaTgucDBpOC5pNjQoaTgqIGFs aWduIDMyICUyMiwgaTgqIGFsaWduIDMyICUyMywgaTY0IDY0LCBpMSBmYWxzZSksICFkYmcgITE2 NTcsICF0YmFhLnN0cnVjdCAhMTk3Ci0tICAlMjQgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmlu dEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJYjEzVW5pZm9ybVdyaXRlck5TXzE2 RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTIxLCAl Y2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwgYWxpZ24gMzIgJTUsICUic3RydWN0LlByaW50SW5m bzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsIGFsaWduIDEgJTYpLCAhZGJnICExNjU4Ci0rICAl MjQgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVy RW5jb2RpbmdJYjEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5j b2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTIxLCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwo JWNsYXNzLlVuaWZvcm1Xcml0ZXIpIGFsaWduIDMyICU1LCAlInN0cnVjdC5QcmludEluZm86OkVu Y29kaW5nNFVuaWZvcm0iKiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZv cm0iKSBhbGlnbiAxICU2KSwgIWRiZyAhMTY1OAotICAgYnIgaTEgJTI0LCBsYWJlbCAlNjAsIGxh YmVsICUyNSwgIWRiZyAhMTY1OQotIAotIDsgPGxhYmVsPjoyNTogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgOyBwcmVkcyA9ICUzCi1AQCAtODkzMiw3ICs4OTMyLDcgQEAgZGVm aW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNv ZGluZ0kxM1VuaWZvcm1Xcml0ZXIKLSAgICUyNyA9IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0 ZXIqICU3IHRvIGk4KiwgIWRiZyAhMTY2MQotICAgJTI4ID0gYml0Y2FzdCAlY2xhc3MuVW5pZm9y bVdyaXRlciogJTEgdG8gaTgqLCAhZGJnICExNjYxCi0gICBjYWxsIHZvaWQgQGxsdm0ubWVtY3B5 LnAwaTgucDBpOC5pNjQoaTgqIGFsaWduIDMyICUyNywgaTgqIGFsaWduIDMyICUyOCwgaTY0IDY0 LCBpMSBmYWxzZSksICFkYmcgITE2NjEsICF0YmFhLnN0cnVjdCAhMTk3Ci0tICAlMjkgPSBjYWxs IHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJ aTEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBf VDFfKGk4IHNpZ25leHQgJTI2LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwgYWxpZ24gMzIg JTcsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsIGFsaWduIDEg JTgpLCAhZGJnICExNjYyCi0rICAlMjkgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82 ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJaTEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rp bmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTI2LCAlY2xhc3Mu VW5pZm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1Xcml0ZXIpIGFsaWduIDMyICU3LCAl InN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCglInN0cnVjdC5Qcmlu dEluZm86OkVuY29kaW5nNFVuaWZvcm0iKSBhbGlnbiAxICU4KSwgIWRiZyAhMTY2MgotICAgYnIg aTEgJTI5LCBsYWJlbCAlNjAsIGxhYmVsICUzMCwgIWRiZyAhMTY2MwotIAotIDsgPGxhYmVsPjoz MDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOyBwcmVkcyA9ICUyNQotQEAg LTg5NDAsNyArODk0MCw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJ bmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNVbmlmb3JtV3JpdGVyCi0gICAlMzIgPSBiaXRj YXN0ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiAlOSB0byBpOCosICFkYmcgITE2NjUKLSAgICUzMyA9 IGJpdGNhc3QgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqICUxIHRvIGk4KiwgIWRiZyAhMTY2NQotICAg Y2FsbCB2b2lkIEBsbHZtLm1lbWNweS5wMGk4LnAwaTguaTY0KGk4KiBhbGlnbiAzMiAlMzIsIGk4 KiBhbGlnbiAzMiAlMzMsIGk2NCA2NCwgaTEgZmFsc2UpLCAhZGJnICExNjY1LCAhdGJhYS5zdHJ1 Y3QgITE5NwotLSAgJTM0ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIx YXBwbHlJZlByb3BlckVuY29kaW5nSWoxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZv cm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICUzMSwgJWNsYXNzLlVuaWZvcm1X cml0ZXIqIGJ5dmFsIGFsaWduIDMyICU5LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVu aWZvcm0iKiBieXZhbCBhbGlnbiAxICUxMCksICFkYmcgITE2NjYKLSsgICUzNCA9IGNhbGwgemVy b2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lqMTNV bmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8o aTggc2lnbmV4dCAlMzEsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCglY2xhc3MuVW5pZm9y bVdyaXRlcikgYWxpZ24gMzIgJTksICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9y bSIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIpIGFsaWduIDEg JTEwKSwgIWRiZyAhMTY2NgotICAgYnIgaTEgJTM0LCBsYWJlbCAlNjAsIGxhYmVsICUzNSwgIWRi ZyAhMTY2NwotIAotIDsgPGxhYmVsPjozNTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgOyBwcmVkcyA9ICUzMAotQEAgLTg5NDgsNyArODk0OCw3IEBAIGRlZmluZSBpbnRlcm5h bCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNVbmlm b3JtV3JpdGVyCi0gICAlMzcgPSBiaXRjYXN0ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiAlMTEgdG8g aTgqLCAhZGJnICExNjY5Ci0gICAlMzggPSBiaXRjYXN0ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiAl MSB0byBpOCosICFkYmcgITE2NjkKLSAgIGNhbGwgdm9pZCBAbGx2bS5tZW1jcHkucDBpOC5wMGk4 Lmk2NChpOCogYWxpZ24gMzIgJTM3LCBpOCogYWxpZ24gMzIgJTM4LCBpNjQgNjQsIGkxIGZhbHNl KSwgIWRiZyAhMTY2OSwgIXRiYWEuc3RydWN0ICExOTcKLS0gICUzOSA9IGNhbGwgemVyb2V4dCBp MSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lmMTNVbmlmb3Jt V3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2ln bmV4dCAlMzYsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBhbGlnbiAzMiAlMTEsICUic3Ry dWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsIGFsaWduIDEgJTEyKSwgIWRi ZyAhMTY3MAotKyAgJTM5ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIx YXBwbHlJZlByb3BlckVuY29kaW5nSWYxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZv cm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICUzNiwgJWNsYXNzLlVuaWZvcm1X cml0ZXIqIGJ5dmFsKCVjbGFzcy5Vbmlmb3JtV3JpdGVyKSBhbGlnbiAzMiAlMTEsICUic3RydWN0 LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6 RW5jb2Rpbmc0VW5pZm9ybSIpIGFsaWduIDEgJTEyKSwgIWRiZyAhMTY3MAotICAgYnIgaTEgJTM5 LCBsYWJlbCAlNjAsIGxhYmVsICU0MCwgIWRiZyAhMTY3MQotIAotIDsgPGxhYmVsPjo0MDogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOyBwcmVkcyA9ICUzNQotQEAgLTg5NTYs NyArODk1Niw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRl dGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNVbmlmb3JtV3JpdGVyCi0gICAlNDIgPSBiaXRjYXN0ICVj bGFzcy5Vbmlmb3JtV3JpdGVyKiAlMTMgdG8gaTgqLCAhZGJnICExNjczCi0gICAlNDMgPSBiaXRj YXN0ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiAlMSB0byBpOCosICFkYmcgITE2NzMKLSAgIGNhbGwg dm9pZCBAbGx2bS5tZW1jcHkucDBpOC5wMGk4Lmk2NChpOCogYWxpZ24gMzIgJTQyLCBpOCogYWxp Z24gMzIgJTQzLCBpNjQgNjQsIGkxIGZhbHNlKSwgIWRiZyAhMTY3MywgIXRiYWEuc3RydWN0ICEx OTcKLS0gICU0NCA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5 SWZQcm9wZXJFbmNvZGluZ0l4MTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVF Yk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlNDEsICVjbGFzcy5Vbmlmb3JtV3JpdGVy KiBieXZhbCBhbGlnbiAzMiAlMTMsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9y bSIqIGJ5dmFsIGFsaWduIDEgJTE0KSwgIWRiZyAhMTY3NAotKyAgJTQ0ID0gY2FsbCB6ZXJvZXh0 IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSXgxM1VuaWZv cm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBz aWduZXh0ICU0MSwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsKCVjbGFzcy5Vbmlmb3JtV3Jp dGVyKSBhbGlnbiAzMiAlMTMsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIq IGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIpIGFsaWduIDEgJTE0 KSwgIWRiZyAhMTY3NAotICAgYnIgaTEgJTQ0LCBsYWJlbCAlNjAsIGxhYmVsICU0NSwgIWRiZyAh MTY3NQotIAotIDsgPGxhYmVsPjo0NTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgOyBwcmVkcyA9ICU0MAotQEAgLTg5NjQsNyArODk2NCw3IEBAIGRlZmluZSBpbnRlcm5hbCB6 ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNVbmlmb3Jt V3JpdGVyCi0gICAlNDcgPSBiaXRjYXN0ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiAlMTUgdG8gaTgq LCAhZGJnICExNjc3Ci0gICAlNDggPSBiaXRjYXN0ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiAlMSB0 byBpOCosICFkYmcgITE2NzcKLSAgIGNhbGwgdm9pZCBAbGx2bS5tZW1jcHkucDBpOC5wMGk4Lmk2 NChpOCogYWxpZ24gMzIgJTQ3LCBpOCogYWxpZ24gMzIgJTQ4LCBpNjQgNjQsIGkxIGZhbHNlKSwg IWRiZyAhMTY3NywgIXRiYWEuc3RydWN0ICExOTcKLS0gICU0OSA9IGNhbGwgemVyb2V4dCBpMSBA X1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0l5MTNVbmlmb3JtV3Jp dGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4 dCAlNDYsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBhbGlnbiAzMiAlMTUsICUic3RydWN0 LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsIGFsaWduIDEgJTE2KSwgIWRiZyAh MTY3OAotKyAgJTQ5ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBw bHlJZlByb3BlckVuY29kaW5nSXkxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1F RUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICU0NiwgJWNsYXNzLlVuaWZvcm1Xcml0 ZXIqIGJ5dmFsKCVjbGFzcy5Vbmlmb3JtV3JpdGVyKSBhbGlnbiAzMiAlMTUsICUic3RydWN0LlBy aW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5j b2Rpbmc0VW5pZm9ybSIpIGFsaWduIDEgJTE2KSwgIWRiZyAhMTY3OAotICAgYnIgaTEgJTQ5LCBs YWJlbCAlNjAsIGxhYmVsICU1MCwgIWRiZyAhMTY3OQotIAotIDsgPGxhYmVsPjo1MDogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOyBwcmVkcyA9ICU0NQotQEAgLTg5NzIsNyAr ODk3Miw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFp bDE0c3dpdGNoRW5jb2RpbmdJMTNVbmlmb3JtV3JpdGVyCi0gICAlNTIgPSBiaXRjYXN0ICVjbGFz cy5Vbmlmb3JtV3JpdGVyKiAlMTcgdG8gaTgqLCAhZGJnICExNjgxCi0gICAlNTMgPSBiaXRjYXN0 ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiAlMSB0byBpOCosICFkYmcgITE2ODEKLSAgIGNhbGwgdm9p ZCBAbGx2bS5tZW1jcHkucDBpOC5wMGk4Lmk2NChpOCogYWxpZ24gMzIgJTUyLCBpOCogYWxpZ24g MzIgJTUzLCBpNjQgNjQsIGkxIGZhbHNlKSwgIWRiZyAhMTY4MSwgIXRiYWEuc3RydWN0ICExOTcK LS0gICU1NCA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQ cm9wZXJFbmNvZGluZ0lkMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5T XzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlNTEsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBi eXZhbCBhbGlnbiAzMiAlMTcsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIq IGJ5dmFsIGFsaWduIDEgJTE4KSwgIWRiZyAhMTY4MgotKyAgJTU0ID0gY2FsbCB6ZXJvZXh0IGkx IEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWQxM1VuaWZvcm1X cml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWdu ZXh0ICU1MSwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsKCVjbGFzcy5Vbmlmb3JtV3JpdGVy KSBhbGlnbiAzMiAlMTcsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5 dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIpIGFsaWduIDEgJTE4KSwg IWRiZyAhMTY4MgotICAgYnIgaTEgJTU0LCBsYWJlbCAlNjAsIGxhYmVsICU1NSwgIWRiZyAhMTY4 MwotIAotIDsgPGxhYmVsPjo1NTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg OyBwcmVkcyA9ICU1MAotQEAgLTg5ODAsNyArODk4MCw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJv ZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNVbmlmb3JtV3Jp dGVyCi0gICAlNTcgPSBiaXRjYXN0ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiAlMTkgdG8gaTgqLCAh ZGJnICExNjg1Ci0gICAlNTggPSBiaXRjYXN0ICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiAlMSB0byBp OCosICFkYmcgITE2ODUKLSAgIGNhbGwgdm9pZCBAbGx2bS5tZW1jcHkucDBpOC5wMGk4Lmk2NChp OCogYWxpZ24gMzIgJTU3LCBpOCogYWxpZ24gMzIgJTU4LCBpNjQgNjQsIGkxIGZhbHNlKSwgIWRi ZyAhMTY4NSwgIXRiYWEuc3RydWN0ICExOTcKLS0gICU1OSA9IGNhbGwgemVyb2V4dCBpMSBAX1pO OVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lQdjEzVW5pZm9ybVdyaXRl ck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQg JTU2LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwgYWxpZ24gMzIgJTE5LCAlInN0cnVjdC5Q cmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCBhbGlnbiAxICUyMCksICFkYmcgITE2 ODYKLSsgICU1OSA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5 SWZQcm9wZXJFbmNvZGluZ0lQdjEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVF RWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTU2LCAlY2xhc3MuVW5pZm9ybVdyaXRl ciogYnl2YWwoJWNsYXNzLlVuaWZvcm1Xcml0ZXIpIGFsaWduIDMyICUxOSwgJSJzdHJ1Y3QuUHJp bnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNv ZGluZzRVbmlmb3JtIikgYWxpZ24gMSAlMjApLCAhZGJnICExNjg2Ci0gICBiciBsYWJlbCAlNjAs ICFkYmcgITE2ODMKLSAKLSA7IDxsYWJlbD46NjA6ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDsgcHJlZHMgPSAlNTUsICU1MCwgJTQ1LCAlNDAsICUzNSwgJTMwLCAlMjUsICUz Ci1AQCAtODk4OSw3ICs4OTg5LDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQ cmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1VuaWZvcm1Xcml0ZXIKLSB9Ci0gCi0g OyBGdW5jdGlvbiBBdHRyczogYWx3YXlzaW5saW5lIGlubGluZWhpbnQgbm91bndpbmQKLS1kZWZp bmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9w ZXJFbmNvZGluZ0liMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhF bmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsIGFs aWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCBhbGln biAxKSAjMjUgY29tZGF0ICFkYmcgITE2ODggewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkx IEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWIxM1VuaWZvcm1X cml0ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWdu ZXh0LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1Xcml0ZXIpIGFs aWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCglInN0 cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKSBhbGlnbiAxKSAjMjUgY29tZGF0ICFk YmcgITE2ODggewotICAgJTQgPSBhbGxvY2EgaTEsIGFsaWduIDEKLSAgICU1ID0gYWxsb2NhIGk4 LCBhbGlnbiAxCi0gICBzdG9yZSBpOCAlMCwgaTgqICU1LCBhbGlnbiAxLCAhdGJhYSAhMTkzCi1A QCAtOTAxNSw3ICs5MDE1LDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmlu dEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJYjEzVW5pZm8KLSB9Ci0gCi0gOyBG dW5jdGlvbiBBdHRyczogYWx3YXlzaW5saW5lIGlubGluZWhpbnQgbm91bndpbmQKLS1kZWZpbmUg aW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJF bmNvZGluZ0lpMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNv ZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsIGFsaWdu IDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCBhbGlnbiAx KSAjMjUgY29tZGF0ICFkYmcgITE2OTcgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBf Wk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWkxM1VuaWZvcm1Xcml0 ZXJOU18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0 LCAlY2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1Xcml0ZXIpIGFsaWdu IDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCglInN0cnVj dC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKSBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcg ITE2OTcgewotICAgJTQgPSBhbGxvY2EgaTEsIGFsaWduIDEKLSAgICU1ID0gYWxsb2NhIGk4LCBh bGlnbiAxCi0gICBzdG9yZSBpOCAlMCwgaTgqICU1LCBhbGlnbiAxLCAhdGJhYSAhMTkzCi1AQCAt OTA0MSw3ICs5MDQxLDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludElu Zm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJaTEzVW5pZm8KLSB9Ci0gCi0gOyBGdW5j dGlvbiBBdHRyczogYWx3YXlzaW5saW5lIGlubGluZWhpbnQgbm91bndpbmQKLS1kZWZpbmUgaW50 ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNv ZGluZ0lqMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGlu Z0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsIGFsaWduIDMy LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCBhbGlnbiAxKSAj MjUgY29tZGF0ICFkYmcgITE3MDYgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45 UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWoxM1VuaWZvcm1Xcml0ZXJO U18xNkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAl Y2xhc3MuVW5pZm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1Xcml0ZXIpIGFsaWduIDMy LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCglInN0cnVjdC5Q cmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKSBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITE3 MDYgewotICAgJTQgPSBhbGxvY2EgaTEsIGFsaWduIDEKLSAgICU1ID0gYWxsb2NhIGk4LCBhbGln biAxCi0gICBzdG9yZSBpOCAlMCwgaTgqICU1LCBhbGlnbiAxLCAhdGJhYSAhMTkzCi1AQCAtOTA2 Nyw3ICs5MDY3LDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82 ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJajEzVW5pZm8KLSB9Ci0gCi0gOyBGdW5jdGlv biBBdHRyczogYWx3YXlzaW5saW5lIGlubGluZWhpbnQgbm91bndpbmQKLS1kZWZpbmUgaW50ZXJu YWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGlu Z0lmMTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VU MF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsIGFsaWduIDMyLCAl InN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCBhbGlnbiAxKSAjMjUg Y29tZGF0ICFkYmcgITE3MTUgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJp bnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWYxM1VuaWZvcm1Xcml0ZXJOU18x NkVuY29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xh c3MuVW5pZm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1Xcml0ZXIpIGFsaWduIDMyLCAl InN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCglInN0cnVjdC5Qcmlu dEluZm86OkVuY29kaW5nNFVuaWZvcm0iKSBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITE3MTUg ewotICAgJTQgPSBhbGxvY2EgaTEsIGFsaWduIDEKLSAgICU1ID0gYWxsb2NhIGk4LCBhbGlnbiAx Ci0gICBzdG9yZSBpOCAlMCwgaTgqICU1LCBhbGlnbiAxLCAhdGJhYSAhMTkzCi1AQCAtOTA5Myw3 ICs5MDkzLDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0 YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJZjEzVW5pZm8KLSB9Ci0gCi0gOyBGdW5jdGlvbiBB dHRyczogYWx3YXlzaW5saW5lIGlubGluZWhpbnQgbm91bndpbmQKLS1kZWZpbmUgaW50ZXJuYWwg emVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0l4 MTNVbmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9U MV8oaTggc2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsIGFsaWduIDMyLCAlInN0 cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCBhbGlnbiAxKSAjMjUgY29t ZGF0ICFkYmcgITE3MjQgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJ bmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSXgxM1VuaWZvcm1Xcml0ZXJOU18xNkVu Y29kaW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3Mu VW5pZm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1Xcml0ZXIpIGFsaWduIDMyLCAlInN0 cnVjdC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCglInN0cnVjdC5QcmludElu Zm86OkVuY29kaW5nNFVuaWZvcm0iKSBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITE3MjQgewot ICAgJTQgPSBhbGxvY2EgaTEsIGFsaWduIDEKLSAgICU1ID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0g ICBzdG9yZSBpOCAlMCwgaTgqICU1LCBhbGlnbiAxLCAhdGJhYSAhMTkzCi1AQCAtOTExOSw3ICs5 MTE5LDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWls MjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJeDEzVW5pZm8KLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRy czogYWx3YXlzaW5saW5lIGlubGluZWhpbnQgbm91bndpbmQKLS1kZWZpbmUgaW50ZXJuYWwgemVy b2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0l5MTNV bmlmb3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8o aTggc2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsIGFsaWduIDMyLCAlInN0cnVj dC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCBhbGlnbiAxKSAjMjUgY29tZGF0 ICFkYmcgITE3MzMgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZv NmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSXkxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29k aW5nNFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVW5p Zm9ybVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1Xcml0ZXIpIGFsaWduIDMyLCAlInN0cnVj dC5QcmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCglInN0cnVjdC5QcmludEluZm86 OkVuY29kaW5nNFVuaWZvcm0iKSBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITE3MzMgewotICAg JTQgPSBhbGxvY2EgaTEsIGFsaWduIDEKLSAgICU1ID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0gICBz dG9yZSBpOCAlMCwgaTgqICU1LCBhbGlnbiAxLCAhdGJhYSAhMTkzCi1AQCAtOTE0NSw3ICs5MTQ1 LDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFh cHBseUlmUHJvcGVyRW5jb2RpbmdJeTEzVW5pZm8KLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczog YWx3YXlzaW5saW5lIGlubGluZWhpbnQgbm91bndpbmQKLS1kZWZpbmUgaW50ZXJuYWwgemVyb2V4 dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lkMTNVbmlm b3JtV3JpdGVyTlNfMTZFbmNvZGluZzRVbmlmb3JtRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTgg c2lnbmV4dCwgJWNsYXNzLlVuaWZvcm1Xcml0ZXIqIGJ5dmFsIGFsaWduIDMyLCAlInN0cnVjdC5Q cmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCBhbGlnbiAxKSAjMjUgY29tZGF0ICFk YmcgITE3NDIgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRl dGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWQxM1VuaWZvcm1Xcml0ZXJOU18xNkVuY29kaW5n NFVuaWZvcm1FRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVW5pZm9y bVdyaXRlciogYnl2YWwoJWNsYXNzLlVuaWZvcm1Xcml0ZXIpIGFsaWduIDMyLCAlInN0cnVjdC5Q cmludEluZm86OkVuY29kaW5nNFVuaWZvcm0iKiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVu Y29kaW5nNFVuaWZvcm0iKSBhbGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITE3NDIgewotICAgJTQg PSBhbGxvY2EgaTEsIGFsaWduIDEKLSAgICU1ID0gYWxsb2NhIGk4LCBhbGlnbiAxCi0gICBzdG9y ZSBpOCAlMCwgaTgqICU1LCBhbGlnbiAxLCAhdGJhYSAhMTkzCi1AQCAtOTE3MSw3ICs5MTcxLDcg QEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBs eUlmUHJvcGVyRW5jb2RpbmdJZDEzVW5pZm8KLSB9Ci0gCi0gOyBGdW5jdGlvbiBBdHRyczogYWx3 YXlzaW5saW5lIGlubGluZWhpbnQgbm91bndpbmQKLS1kZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBp MSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lQdjEzVW5pZm9y bVdyaXRlck5TXzE2RW5jb2Rpbmc0VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNp Z25leHQsICVjbGFzcy5Vbmlmb3JtV3JpdGVyKiBieXZhbCBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJp bnRJbmZvOjpFbmNvZGluZzRVbmlmb3JtIiogYnl2YWwgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJn ICExNzUxIHsKLStkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRh aWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lQdjEzVW5pZm9ybVdyaXRlck5TXzE2RW5jb2Rpbmc0 VW5pZm9ybUVFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5Vbmlmb3Jt V3JpdGVyKiBieXZhbCglY2xhc3MuVW5pZm9ybVdyaXRlcikgYWxpZ24gMzIsICUic3RydWN0LlBy aW50SW5mbzo6RW5jb2Rpbmc0VW5pZm9ybSIqIGJ5dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5j b2Rpbmc0VW5pZm9ybSIpIGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMTc1MSB7Ci0gICAlNCA9 IGFsbG9jYSBpMSwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2EgaTgsIGFsaWduIDEKLSAgIHN0b3Jl IGk4ICUwLCBpOCogJTUsIGFsaWduIDEsICF0YmFhICExOTMKLUBAIC0xMDAxMyw3ICsxMDAxMyw3 IEBAIGRlZmluZSBpbnRlcm5hbCBpMzIgQF9aTjdkZXRhaWxzMThfY21fcHJpbnRfdHlwZV9vY2xJ UHZFRU5TXzE4U0hBREVSX1BSSU5URl9UWVBFCi0gfQotIAotIDsgRnVuY3Rpb24gQXR0cnM6IGFs d2F5c2lubGluZSBpbmxpbmVoaW50IG5vdW53aW5kCi0tZGVmaW5lIGludGVybmFsIHplcm9leHQg aTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1ZhcnlpbmdXcml0ZXJO U18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVRfVDBfKGk4IHNpZ25leHQsICVj bGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpF bmNvZGluZzRWYXJ5aW5nIiogYnl2YWwgYWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICEyMDYxIHsK LStkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwxNHN3aXRj aEVuY29kaW5nSTEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5j b2RpbmdFVF9UMF8oaTggc2lnbmV4dCwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsKCVjbGFz cy5WYXJ5aW5nV3JpdGVyKSBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRW YXJ5aW5nIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIikgYWxp Z24gMSkgIzI1IGNvbWRhdCAhZGJnICEyMDYxIHsKLSAgICU0ID0gYWxsb2NhIGk4LCBhbGlnbiAx Ci0gICAlNSA9IGFsbG9jYSAlY2xhc3MuVmFyeWluZ1dyaXRlciwgYWxpZ24gMzIKLSAgICU2ID0g YWxsb2NhICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIsIGFsaWduIDEKLUBA IC0xMDAzNiw3ICsxMDAzNiw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJp bnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNWYXJ5aW5nV3JpdGVyCi0gICAlMjIgPSBi aXRjYXN0ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiAlNSB0byBpOCosICFkYmcgITIwNjMKLSAgICUy MyA9IGJpdGNhc3QgJWNsYXNzLlZhcnlpbmdXcml0ZXIqICUxIHRvIGk4KiwgIWRiZyAhMjA2Mwot ICAgY2FsbCB2b2lkIEBsbHZtLm1lbWNweS5wMGk4LnAwaTguaTY0KGk4KiBhbGlnbiAzMiAlMjIs IGk4KiBhbGlnbiAzMiAlMjMsIGk2NCA2NCwgaTEgZmFsc2UpLCAhZGJnICEyMDYzLCAhdGJhYS5z dHJ1Y3QgITE5NwotLSAgJTI0ID0gY2FsbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFp bDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWIxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZh cnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0ICUyMSwgJWNsYXNzLlZhcnlp bmdXcml0ZXIqIGJ5dmFsIGFsaWduIDMyICU1LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5n NFZhcnlpbmciKiBieXZhbCBhbGlnbiAxICU2KSwgIWRiZyAhMjA2NAotKyAgJTI0ID0gY2FsbCB6 ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWIx M1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1Qx XyhpOCBzaWduZXh0ICUyMSwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5 aW5nV3JpdGVyKSBhbGlnbiAzMiAlNSwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5 aW5nIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIikgYWxpZ24g MSAlNiksICFkYmcgITIwNjQKLSAgIGJyIGkxICUyNCwgbGFiZWwgJTYwLCBsYWJlbCAlMjUsICFk YmcgITIwNjUKLSAKLSA7IDxsYWJlbD46MjU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDsgcHJlZHMgPSAlMwotQEAgLTEwMDQ0LDcgKzEwMDQ0LDcgQEAgZGVmaW5lIGludGVy bmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1Zh cnlpbmdXcml0ZXIKLSAgICUyNyA9IGJpdGNhc3QgJWNsYXNzLlZhcnlpbmdXcml0ZXIqICU3IHRv IGk4KiwgIWRiZyAhMjA2NwotICAgJTI4ID0gYml0Y2FzdCAlY2xhc3MuVmFyeWluZ1dyaXRlciog JTEgdG8gaTgqLCAhZGJnICEyMDY3Ci0gICBjYWxsIHZvaWQgQGxsdm0ubWVtY3B5LnAwaTgucDBp OC5pNjQoaTgqIGFsaWduIDMyICUyNywgaTgqIGFsaWduIDMyICUyOCwgaTY0IDY0LCBpMSBmYWxz ZSksICFkYmcgITIwNjcsICF0YmFhLnN0cnVjdCAhMTk3Ci0tICAlMjkgPSBjYWxsIHplcm9leHQg aTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJaTEzVmFyeWlu Z1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNp Z25leHQgJTI2LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwgYWxpZ24gMzIgJTcsICUic3Ry dWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsIGFsaWduIDEgJTgpLCAhZGJn ICEyMDY4Ci0rICAlMjkgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFh cHBseUlmUHJvcGVyRW5jb2RpbmdJaTEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWlu Z0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTI2LCAlY2xhc3MuVmFyeWluZ1dy aXRlciogYnl2YWwoJWNsYXNzLlZhcnlpbmdXcml0ZXIpIGFsaWduIDMyICU3LCAlInN0cnVjdC5Q cmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVu Y29kaW5nNFZhcnlpbmciKSBhbGlnbiAxICU4KSwgIWRiZyAhMjA2OAotICAgYnIgaTEgJTI5LCBs YWJlbCAlNjAsIGxhYmVsICUzMCwgIWRiZyAhMjA2OQotIAotIDsgPGxhYmVsPjozMDogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOyBwcmVkcyA9ICUyNQotQEAgLTEwMDUyLDcg KzEwMDUyLDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0 YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1ZhcnlpbmdXcml0ZXIKLSAgICUzMiA9IGJpdGNhc3QgJWNs YXNzLlZhcnlpbmdXcml0ZXIqICU5IHRvIGk4KiwgIWRiZyAhMjA3MQotICAgJTMzID0gYml0Y2Fz dCAlY2xhc3MuVmFyeWluZ1dyaXRlciogJTEgdG8gaTgqLCAhZGJnICEyMDcxCi0gICBjYWxsIHZv aWQgQGxsdm0ubWVtY3B5LnAwaTgucDBpOC5pNjQoaTgqIGFsaWduIDMyICUzMiwgaTgqIGFsaWdu IDMyICUzMywgaTY0IDY0LCBpMSBmYWxzZSksICFkYmcgITIwNzEsICF0YmFhLnN0cnVjdCAhMTk3 Ci0tICAlMzQgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlm UHJvcGVyRW5jb2RpbmdJajEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJO U184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTMxLCAlY2xhc3MuVmFyeWluZ1dyaXRlciog Ynl2YWwgYWxpZ24gMzIgJTksICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIq IGJ5dmFsIGFsaWduIDEgJTEwKSwgIWRiZyAhMjA3MgotKyAgJTM0ID0gY2FsbCB6ZXJvZXh0IGkx IEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWoxM1ZhcnlpbmdX cml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWdu ZXh0ICUzMSwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5aW5nV3JpdGVy KSBhbGlnbiAzMiAlOSwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2 YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIikgYWxpZ24gMSAlMTApLCAh ZGJnICEyMDcyCi0gICBiciBpMSAlMzQsIGxhYmVsICU2MCwgbGFiZWwgJTM1LCAhZGJnICEyMDcz Ci0gCi0gOyA8bGFiZWw+OjM1OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7 IHByZWRzID0gJTMwCi1AQCAtMTAwNjAsNyArMTAwNjAsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVy b2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEzVmFyeWluZ1dy aXRlcgotICAgJTM3ID0gYml0Y2FzdCAlY2xhc3MuVmFyeWluZ1dyaXRlciogJTExIHRvIGk4Kiwg IWRiZyAhMjA3NQotICAgJTM4ID0gYml0Y2FzdCAlY2xhc3MuVmFyeWluZ1dyaXRlciogJTEgdG8g aTgqLCAhZGJnICEyMDc1Ci0gICBjYWxsIHZvaWQgQGxsdm0ubWVtY3B5LnAwaTgucDBpOC5pNjQo aTgqIGFsaWduIDMyICUzNywgaTgqIGFsaWduIDMyICUzOCwgaTY0IDY0LCBpMSBmYWxzZSksICFk YmcgITIwNzUsICF0YmFhLnN0cnVjdCAhMTk3Ci0tICAlMzkgPSBjYWxsIHplcm9leHQgaTEgQF9a TjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJZjEzVmFyeWluZ1dyaXRl ck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQg JTM2LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwgYWxpZ24gMzIgJTExLCAlInN0cnVjdC5Q cmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCBhbGlnbiAxICUxMiksICFkYmcgITIw NzYKLSsgICUzOSA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5 SWZQcm9wZXJFbmNvZGluZ0lmMTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVF Yk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlMzYsICVjbGFzcy5WYXJ5aW5nV3JpdGVy KiBieXZhbCglY2xhc3MuVmFyeWluZ1dyaXRlcikgYWxpZ24gMzIgJTExLCAlInN0cnVjdC5Qcmlu dEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29k aW5nNFZhcnlpbmciKSBhbGlnbiAxICUxMiksICFkYmcgITIwNzYKLSAgIGJyIGkxICUzOSwgbGFi ZWwgJTYwLCBsYWJlbCAlNDAsICFkYmcgITIwNzcKLSAKLSA7IDxsYWJlbD46NDA6ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsgcHJlZHMgPSAlMzUKLUBAIC0xMDA2OCw3ICsx MDA2OCw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFp bDE0c3dpdGNoRW5jb2RpbmdJMTNWYXJ5aW5nV3JpdGVyCi0gICAlNDIgPSBiaXRjYXN0ICVjbGFz cy5WYXJ5aW5nV3JpdGVyKiAlMTMgdG8gaTgqLCAhZGJnICEyMDc5Ci0gICAlNDMgPSBiaXRjYXN0 ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiAlMSB0byBpOCosICFkYmcgITIwNzkKLSAgIGNhbGwgdm9p ZCBAbGx2bS5tZW1jcHkucDBpOC5wMGk4Lmk2NChpOCogYWxpZ24gMzIgJTQyLCBpOCogYWxpZ24g MzIgJTQzLCBpNjQgNjQsIGkxIGZhbHNlKSwgIWRiZyAhMjA3OSwgIXRiYWEuc3RydWN0ICExOTcK LS0gICU0NCA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQ cm9wZXJFbmNvZGluZ0l4MTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5T XzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCAlNDEsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBi eXZhbCBhbGlnbiAzMiAlMTMsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIq IGJ5dmFsIGFsaWduIDEgJTE0KSwgIWRiZyAhMjA4MAotKyAgJTQ0ID0gY2FsbCB6ZXJvZXh0IGkx IEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSXgxM1ZhcnlpbmdX cml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWdu ZXh0ICU0MSwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5aW5nV3JpdGVy KSBhbGlnbiAzMiAlMTMsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5 dmFsKCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIpIGFsaWduIDEgJTE0KSwg IWRiZyAhMjA4MAotICAgYnIgaTEgJTQ0LCBsYWJlbCAlNjAsIGxhYmVsICU0NSwgIWRiZyAhMjA4 MQotIAotIDsgPGxhYmVsPjo0NTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg OyBwcmVkcyA9ICU0MAotQEAgLTEwMDc2LDcgKzEwMDc2LDcgQEAgZGVmaW5lIGludGVybmFsIHpl cm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMTRzd2l0Y2hFbmNvZGluZ0kxM1ZhcnlpbmdX cml0ZXIKLSAgICU0NyA9IGJpdGNhc3QgJWNsYXNzLlZhcnlpbmdXcml0ZXIqICUxNSB0byBpOCos ICFkYmcgITIwODMKLSAgICU0OCA9IGJpdGNhc3QgJWNsYXNzLlZhcnlpbmdXcml0ZXIqICUxIHRv IGk4KiwgIWRiZyAhMjA4MwotICAgY2FsbCB2b2lkIEBsbHZtLm1lbWNweS5wMGk4LnAwaTguaTY0 KGk4KiBhbGlnbiAzMiAlNDcsIGk4KiBhbGlnbiAzMiAlNDgsIGk2NCA2NCwgaTEgZmFsc2UpLCAh ZGJnICEyMDgzLCAhdGJhYS5zdHJ1Y3QgITE5NwotLSAgJTQ5ID0gY2FsbCB6ZXJvZXh0IGkxIEBf Wk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSXkxM1ZhcnlpbmdXcml0 ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0 ICU0NiwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsIGFsaWduIDMyICUxNSwgJSJzdHJ1Y3Qu UHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwgYWxpZ24gMSAlMTYpLCAhZGJnICEy MDg0Ci0rICAlNDkgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBs eUlmUHJvcGVyRW5jb2RpbmdJeTEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VF RWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTQ2LCAlY2xhc3MuVmFyeWluZ1dyaXRl ciogYnl2YWwoJWNsYXNzLlZhcnlpbmdXcml0ZXIpIGFsaWduIDMyICUxNSwgJSJzdHJ1Y3QuUHJp bnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNv ZGluZzRWYXJ5aW5nIikgYWxpZ24gMSAlMTYpLCAhZGJnICEyMDg0Ci0gICBiciBpMSAlNDksIGxh YmVsICU2MCwgbGFiZWwgJTUwLCAhZGJnICEyMDg1Ci0gCi0gOyA8bGFiZWw+OjUwOiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7IHByZWRzID0gJTQ1Ci1AQCAtMTAwODQsNyAr MTAwODQsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRh aWwxNHN3aXRjaEVuY29kaW5nSTEzVmFyeWluZ1dyaXRlcgotICAgJTUyID0gYml0Y2FzdCAlY2xh c3MuVmFyeWluZ1dyaXRlciogJTE3IHRvIGk4KiwgIWRiZyAhMjA4NwotICAgJTUzID0gYml0Y2Fz dCAlY2xhc3MuVmFyeWluZ1dyaXRlciogJTEgdG8gaTgqLCAhZGJnICEyMDg3Ci0gICBjYWxsIHZv aWQgQGxsdm0ubWVtY3B5LnAwaTgucDBpOC5pNjQoaTgqIGFsaWduIDMyICU1MiwgaTgqIGFsaWdu IDMyICU1MywgaTY0IDY0LCBpMSBmYWxzZSksICFkYmcgITIwODcsICF0YmFhLnN0cnVjdCAhMTk3 Ci0tICAlNTQgPSBjYWxsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlm UHJvcGVyRW5jb2RpbmdJZDEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJO U184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTUxLCAlY2xhc3MuVmFyeWluZ1dyaXRlciog Ynl2YWwgYWxpZ24gMzIgJTE3LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmci KiBieXZhbCBhbGlnbiAxICUxOCksICFkYmcgITIwODgKLSsgICU1NCA9IGNhbGwgemVyb2V4dCBp MSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lkMTNWYXJ5aW5n V3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2ln bmV4dCAlNTEsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCglY2xhc3MuVmFyeWluZ1dyaXRl cikgYWxpZ24gMzIgJTE3LCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBi eXZhbCglInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKSBhbGlnbiAxICUxOCks ICFkYmcgITIwODgKLSAgIGJyIGkxICU1NCwgbGFiZWwgJTYwLCBsYWJlbCAlNTUsICFkYmcgITIw ODkKLSAKLSA7IDxsYWJlbD46NTU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IDsgcHJlZHMgPSAlNTAKLUBAIC0xMDA5Miw3ICsxMDA5Miw3IEBAIGRlZmluZSBpbnRlcm5hbCB6 ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDE0c3dpdGNoRW5jb2RpbmdJMTNWYXJ5aW5n V3JpdGVyCi0gICAlNTcgPSBiaXRjYXN0ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiAlMTkgdG8gaTgq LCAhZGJnICEyMDkxCi0gICAlNTggPSBiaXRjYXN0ICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiAlMSB0 byBpOCosICFkYmcgITIwOTEKLSAgIGNhbGwgdm9pZCBAbGx2bS5tZW1jcHkucDBpOC5wMGk4Lmk2 NChpOCogYWxpZ24gMzIgJTU3LCBpOCogYWxpZ24gMzIgJTU4LCBpNjQgNjQsIGkxIGZhbHNlKSwg IWRiZyAhMjA5MSwgIXRiYWEuc3RydWN0ICExOTcKLS0gICU1OSA9IGNhbGwgemVyb2V4dCBpMSBA X1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lQdjEzVmFyeWluZ1dy aXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25l eHQgJTU2LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwgYWxpZ24gMzIgJTE5LCAlInN0cnVj dC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCBhbGlnbiAxICUyMCksICFkYmcg ITIwOTIKLSsgICU1OSA9IGNhbGwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFw cGx5SWZQcm9wZXJFbmNvZGluZ0lQdjEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWlu Z0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQgJTU2LCAlY2xhc3MuVmFyeWluZ1dy aXRlciogYnl2YWwoJWNsYXNzLlZhcnlpbmdXcml0ZXIpIGFsaWduIDMyICUxOSwgJSJzdHJ1Y3Qu UHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwoJSJzdHJ1Y3QuUHJpbnRJbmZvOjpF bmNvZGluZzRWYXJ5aW5nIikgYWxpZ24gMSAlMjApLCAhZGJnICEyMDkyCi0gICBiciBsYWJlbCAl NjAsICFkYmcgITIwODkKLSAKLSA7IDxsYWJlbD46NjA6ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDsgcHJlZHMgPSAlNTUsICU1MCwgJTQ1LCAlNDAsICUzNSwgJTMwLCAlMjUs ICUzCi1AQCAtMTAxMDEsNyArMTAxMDEsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBA X1pOOVByaW50SW5mbzZkZXRhaWwxNHN3aXRjaEVuY29kaW5nSTEzVmFyeWluZ1dyaXRlcgotIH0K LSAKLSA7IEZ1bmN0aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2luZAot LWRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJ ZlByb3BlckVuY29kaW5nSWIxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUVi TlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2 YWwgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFs IGFsaWduIDEpICMyNSBjb21kYXQgIWRiZyAhMjA5NCB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9l eHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJYjEzVmFy eWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4 IHNpZ25leHQsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCglY2xhc3MuVmFyeWluZ1dyaXRl cikgYWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFs KCUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIpIGFsaWduIDEpICMyNSBjb21k YXQgIWRiZyAhMjA5NCB7Ci0gICAlNCA9IGFsbG9jYSBpMSwgYWxpZ24gMQotICAgJTUgPSBhbGxv Y2EgaTgsIGFsaWduIDEKLSAgIHN0b3JlIGk4ICUwLCBpOCogJTUsIGFsaWduIDEsICF0YmFhICEx OTMKLUBAIC0xMDEyNyw3ICsxMDEyNyw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBf Wk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWIxM1ZhcnlpCi0gfQot IAotIDsgRnVuY3Rpb24gQXR0cnM6IGFsd2F5c2lubGluZSBpbmxpbmVoaW50IG5vdW53aW5kCi0t ZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlm UHJvcGVyRW5jb2RpbmdJaTEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJO U184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZh bCBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwg YWxpZ24gMSkgIzI1IGNvbWRhdCAhZGJnICEyMTAzIHsKLStkZWZpbmUgaW50ZXJuYWwgemVyb2V4 dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lpMTNWYXJ5 aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTgg c2lnbmV4dCwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5aW5nV3JpdGVy KSBhbGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwo JSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIikgYWxpZ24gMSkgIzI1IGNvbWRh dCAhZGJnICEyMTAzIHsKLSAgICU0ID0gYWxsb2NhIGkxLCBhbGlnbiAxCi0gICAlNSA9IGFsbG9j YSBpOCwgYWxpZ24gMQotICAgc3RvcmUgaTggJTAsIGk4KiAlNSwgYWxpZ24gMSwgIXRiYWEgITE5 MwotQEAgLTEwMTUzLDcgKzEwMTUzLDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9a TjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJaTEzVmFyeWkKLSB9Ci0g Ci0gOyBGdW5jdGlvbiBBdHRyczogYWx3YXlzaW5saW5lIGlubGluZWhpbnQgbm91bndpbmQKLS1k ZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQ cm9wZXJFbmNvZGluZ0lqMTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5T XzhFbmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFs IGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCBh bGlnbiAxKSAjMjUgY29tZGF0ICFkYmcgITIxMTIgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0 IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWoxM1Zhcnlp bmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBz aWduZXh0LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwoJWNsYXNzLlZhcnlpbmdXcml0ZXIp IGFsaWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCgl InN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKSBhbGlnbiAxKSAjMjUgY29tZGF0 ICFkYmcgITIxMTIgewotICAgJTQgPSBhbGxvY2EgaTEsIGFsaWduIDEKLSAgICU1ID0gYWxsb2Nh IGk4LCBhbGlnbiAxCi0gICBzdG9yZSBpOCAlMCwgaTgqICU1LCBhbGlnbiAxLCAhdGJhYSAhMTkz Ci1AQCAtMTAxNzksNyArMTAxNzksNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pO OVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0lqMTNWYXJ5aQotIH0KLSAK LSA7IEZ1bmN0aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2luZAotLWRl ZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlBy b3BlckVuY29kaW5nSWYxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNf OEVuY29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwg YWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsIGFs aWduIDEpICMyNSBjb21kYXQgIWRiZyAhMjEyMSB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQg aTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJZjEzVmFyeWlu Z1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNp Z25leHQsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCglY2xhc3MuVmFyeWluZ1dyaXRlcikg YWxpZ24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsKCUi c3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIpIGFsaWduIDEpICMyNSBjb21kYXQg IWRiZyAhMjEyMSB7Ci0gICAlNCA9IGFsbG9jYSBpMSwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2Eg aTgsIGFsaWduIDEKLSAgIHN0b3JlIGk4ICUwLCBpOCogJTUsIGFsaWduIDEsICF0YmFhICExOTMK LUBAIC0xMDIwNSw3ICsxMDIwNSw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45 UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWYxM1ZhcnlpCi0gfQotIAot IDsgRnVuY3Rpb24gQXR0cnM6IGFsd2F5c2lubGluZSBpbmxpbmVoaW50IG5vdW53aW5kCi0tZGVm aW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJv cGVyRW5jb2RpbmdJeDEzVmFyeWluZ1dyaXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184 RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25leHQsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCBh bGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwgYWxp Z24gMSkgIzI1IGNvbWRhdCAhZGJnICEyMTMwIHsKLStkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBp MSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0l4MTNWYXJ5aW5n V3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhFbmNvZGluZ0VUMF9UMV8oaTggc2ln bmV4dCwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsKCVjbGFzcy5WYXJ5aW5nV3JpdGVyKSBh bGlnbiAzMiwgJSJzdHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIiogYnl2YWwoJSJz dHJ1Y3QuUHJpbnRJbmZvOjpFbmNvZGluZzRWYXJ5aW5nIikgYWxpZ24gMSkgIzI1IGNvbWRhdCAh ZGJnICEyMTMwIHsKLSAgICU0ID0gYWxsb2NhIGkxLCBhbGlnbiAxCi0gICAlNSA9IGFsbG9jYSBp OCwgYWxpZ24gMQotICAgc3RvcmUgaTggJTAsIGk4KiAlNSwgYWxpZ24gMSwgIXRiYWEgITE5Mwot QEAgLTEwMjMxLDcgKzEwMjMxLDcgQEAgZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQ cmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJeDEzVmFyeWkKLSB9Ci0gCi0g OyBGdW5jdGlvbiBBdHRyczogYWx3YXlzaW5saW5lIGlubGluZWhpbnQgbm91bndpbmQKLS1kZWZp bmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVByaW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9w ZXJFbmNvZGluZ0l5MTNWYXJ5aW5nV3JpdGVyTlNfMTZFbmNvZGluZzRWYXJ5aW5nRUVFYk5TXzhF bmNvZGluZ0VUMF9UMV8oaTggc2lnbmV4dCwgJWNsYXNzLlZhcnlpbmdXcml0ZXIqIGJ5dmFsIGFs aWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCBhbGln biAxKSAjMjUgY29tZGF0ICFkYmcgITIxMzkgewotK2RlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkx IEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSXkxM1ZhcnlpbmdX cml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWdu ZXh0LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwoJWNsYXNzLlZhcnlpbmdXcml0ZXIpIGFs aWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCglInN0 cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKSBhbGlnbiAxKSAjMjUgY29tZGF0ICFk YmcgITIxMzkgewotICAgJTQgPSBhbGxvY2EgaTEsIGFsaWduIDEKLSAgICU1ID0gYWxsb2NhIGk4 LCBhbGlnbiAxCi0gICBzdG9yZSBpOCAlMCwgaTgqICU1LCBhbGlnbiAxLCAhdGJhYSAhMTkzCi1A QCAtMTAyNTcsNyArMTAyNTcsNyBAQCBkZWZpbmUgaW50ZXJuYWwgemVyb2V4dCBpMSBAX1pOOVBy aW50SW5mbzZkZXRhaWwyMWFwcGx5SWZQcm9wZXJFbmNvZGluZ0l5MTNWYXJ5aQotIH0KLSAKLSA7 IEZ1bmN0aW9uIEF0dHJzOiBhbHdheXNpbmxpbmUgaW5saW5laGludCBub3Vud2luZAotLWRlZmlu ZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJpbnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3Bl ckVuY29kaW5nSWQxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVu Y29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwgYWxp Z24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsIGFsaWdu IDEpICMyNSBjb21kYXQgIWRiZyAhMjE0OCB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEg QF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJZDEzVmFyeWluZ1dy aXRlck5TXzE2RW5jb2Rpbmc0VmFyeWluZ0VFRWJOU184RW5jb2RpbmdFVDBfVDFfKGk4IHNpZ25l eHQsICVjbGFzcy5WYXJ5aW5nV3JpdGVyKiBieXZhbCglY2xhc3MuVmFyeWluZ1dyaXRlcikgYWxp Z24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsKCUic3Ry dWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIpIGFsaWduIDEpICMyNSBjb21kYXQgIWRi ZyAhMjE0OCB7Ci0gICAlNCA9IGFsbG9jYSBpMSwgYWxpZ24gMQotICAgJTUgPSBhbGxvY2EgaTgs IGFsaWduIDEKLSAgIHN0b3JlIGk4ICUwLCBpOCogJTUsIGFsaWduIDEsICF0YmFhICExOTMKLUBA IC0xMDI4Myw3ICsxMDI4Myw3IEBAIGRlZmluZSBpbnRlcm5hbCB6ZXJvZXh0IGkxIEBfWk45UHJp bnRJbmZvNmRldGFpbDIxYXBwbHlJZlByb3BlckVuY29kaW5nSWQxM1ZhcnlpCi0gfQotIAotIDsg RnVuY3Rpb24gQXR0cnM6IGFsd2F5c2lubGluZSBpbmxpbmVoaW50IG5vdW53aW5kCi0tZGVmaW5l IGludGVybmFsIHplcm9leHQgaTEgQF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVy RW5jb2RpbmdJUHYxM1ZhcnlpbmdXcml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVu Y29kaW5nRVQwX1QxXyhpOCBzaWduZXh0LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwgYWxp Z24gMzIsICUic3RydWN0LlByaW50SW5mbzo6RW5jb2Rpbmc0VmFyeWluZyIqIGJ5dmFsIGFsaWdu IDEpICMyNSBjb21kYXQgIWRiZyAhMjE1NyB7Ci0rZGVmaW5lIGludGVybmFsIHplcm9leHQgaTEg QF9aTjlQcmludEluZm82ZGV0YWlsMjFhcHBseUlmUHJvcGVyRW5jb2RpbmdJUHYxM1ZhcnlpbmdX cml0ZXJOU18xNkVuY29kaW5nNFZhcnlpbmdFRUViTlNfOEVuY29kaW5nRVQwX1QxXyhpOCBzaWdu ZXh0LCAlY2xhc3MuVmFyeWluZ1dyaXRlciogYnl2YWwoJWNsYXNzLlZhcnlpbmdXcml0ZXIpIGFs aWduIDMyLCAlInN0cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKiBieXZhbCglInN0 cnVjdC5QcmludEluZm86OkVuY29kaW5nNFZhcnlpbmciKSBhbGlnbiAxKSAjMjUgY29tZGF0ICFk YmcgITIxNTcgewotICAgJTQgPSBhbGxvY2EgaTEsIGFsaWduIDEKLSAgICU1ID0gYWxsb2NhIGk4 LCBhbGlnbiAxCi0gICBzdG9yZSBpOCAlMCwgaTgqICU1LCBhbGlnbiAxLCAhdGJhYSAhMTkzCmRp ZmYgLS1naXQgYS9zcmNwa2dzL2lzcGMvdGVtcGxhdGUgYi9zcmNwa2dzL2lzcGMvdGVtcGxhdGUK aW5kZXggOWMzYWNiNDJhOWNmLi42OGZlZDVhNGM2NTkgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvaXNw Yy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2lzcGMvdGVtcGxhdGUKQEAgLTEsMTAgKzEsMTAgQEAK ICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2lzcGMnCiBwa2duYW1lPWlzcGMKLXZlcnNpb249MS4xNS4w Ci1yZXZpc2lvbj0yCit2ZXJzaW9uPTEuMTcuMAorcmV2aXNpb249MQogYXJjaHM9Ing4Nl82NCoi CiBidWlsZF9zdHlsZT1jbWFrZQotY29uZmlndXJlX2FyZ3M9Ii1ESVNQQ19OT19EVU1QUz1PTiAt REFSTV9FTkFCTEVEPU9GRiIKK2NvbmZpZ3VyZV9hcmdzPSItRElTUENfTk9fRFVNUFM9T04gLURB Uk1fRU5BQkxFRD1PRkYgLURDTUFLRV9CVUlMRF9UWVBFPVJlbGVhc2UiCiBob3N0bWFrZWRlcGVu ZHM9ImNsYW5nIGNsYW5nLXRvb2xzLWV4dHJhIHB5dGhvbjMgbTQgYmlzb24gZmxleCBsbHZtIgog bWFrZWRlcGVuZHM9Im5jdXJzZXMtZGV2ZWwgbmN1cnNlcy1saWJ0aW5mby1kZXZlbCB6bGliLWRl dmVsIgogc2hvcnRfZGVzYz0iQ29tcGlsZXIgZm9yIGhpZ2gtcGVyZm9ybWFuY2UgU0lNRCBwcm9n cmFtbWluZyBvbiB0aGUgQ1BVIgpAQCAtMTIsNyArMTIsNyBAQCBtYWludGFpbmVyPSJBbmRyZWEg QnJhbmNhbGVvbmkgPGFiY0Bwb21wZWwubWU+IgogbGljZW5zZT0iQlNELTMtQ2xhdXNlIgogaG9t ZXBhZ2U9Imh0dHBzOi8vaXNwYy5naXRodWIuaW8iCiBkaXN0ZmlsZXM9Imh0dHBzOi8vZ2l0aHVi LmNvbS9pc3BjL2lzcGMvYXJjaGl2ZS92JHt2ZXJzaW9ufS50YXIuZ3oiCi1jaGVja3N1bT0yNjU4 ZmYwMGRjMDQ1YWM5ZmNlZmJmNmJkMjZkZmZhZjcyM2IwNTlhOTQyYTI3ZGY5MWJiYjYxYmM1MDNh Mjg1CitjaGVja3N1bT0zN2ZiMTA1NWQ2YzZiMjMyZTExMmQ4ZDUwMTQ1ZDcyNjgyNGVkNGQ4ZGE5 M2E3Mzk2MzE1ZGNlYmE2Yzc2ZTYyCiBub2Nyb3NzPXllcwogbm9waWU9eWVzCiAKCkZyb20gNzVj MjI1OThkNTI3NWNkZDYwMTM2YjJiOTEwZTNiY2RjMGQzYzY2NiBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogPT9VVEYtOD9xP0FuZHI9QzM9QTk9MjBDZXJxdWVpcmE/PSA8YWNlcnF1ZWly YTAyMUBnbWFpbC5jb20+CkRhdGU6IE1vbiwgMjggRmViIDIwMjIgMjE6NDc6MjQgKzAwMDAKU3Vi amVjdDogW1BBVENIIDE3LzMxXSB6aWc6IHVwZGF0ZSB0byAwLjkuMS4KCi0tLQogLi4uLzAwMDEt c3RkLmJ1aWxkLWZpeC1oYW5kbGluZy1vZi1EY3B1LnBhdGNoIHwgNDggLS0tLS0tLS0tLS0tLS0t LS0tLQogc3JjcGtncy96aWcvdGVtcGxhdGUgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDgg KystLQogMiBmaWxlcyBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDUyIGRlbGV0aW9ucygtKQog ZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvemlnL3BhdGNoZXMvMDAwMS1zdGQuYnVpbGQtZml4 LWhhbmRsaW5nLW9mLURjcHUucGF0Y2gKCmRpZmYgLS1naXQgYS9zcmNwa2dzL3ppZy9wYXRjaGVz LzAwMDEtc3RkLmJ1aWxkLWZpeC1oYW5kbGluZy1vZi1EY3B1LnBhdGNoIGIvc3JjcGtncy96aWcv cGF0Y2hlcy8wMDAxLXN0ZC5idWlsZC1maXgtaGFuZGxpbmctb2YtRGNwdS5wYXRjaApkZWxldGVk IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDEwMWYyNDQ1OWJiLi4wMDAwMDAwMDAwMDAKLS0tIGEv c3JjcGtncy96aWcvcGF0Y2hlcy8wMDAxLXN0ZC5idWlsZC1maXgtaGFuZGxpbmctb2YtRGNwdS5w YXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDQ4ICswLDAgQEAKLUZyb20gMWU4Y2RhY2U3YWQzMjRh NDIyMjhhZWI1Y2Q2ZWI4ZGQxNTQyOTQxMyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206 IElzYWFjIEZyZXVuZCA8aWZyZXVuZEBpZnJldW5kLnh5ej4KLURhdGU6IFR1ZSwgMjEgU2VwIDIw MjEgMjE6MDY6MTAgKzAyMDAKLVN1YmplY3Q6IFtQQVRDSF0gc3RkLmJ1aWxkOiBmaXggaGFuZGxp bmcgb2YgLURjcHUKLQotQ3VycmVudGx5IC1EY3B1IGlzIGNvbXBsZXRlbHkgaWdub3JlZCBpZiAt RHRhcmdldCBpc24ndCBwYXNzZWQgYXMgd2VsbC4KLUZ1cnRoZXIsIC1EY3B1PWJhc2VsaW5lIGlz IGlnbm9yZWQgZXZlbiBpZiAtRHRhcmdldD1uYXRpdmUgaXMgcGFzc2VkLgotCi1UaGlzIHBhdGNo IGZpeGVzIHRoZXNlIDIgaXNzdWVzLCBhbHdheXMgcmVzcGVjdGluZyB0aGUgLURjcHUgb3B0aW9u IGlmCi1wcmVzZW50LgotLS0tCi0gbGliL3N0ZC9idWlsZC56aWcgfCAxMyArKysrKysrLS0tLS0t Ci0gMSBmaWxlIGNoYW5nZWQsIDcgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkKLQotZGlm ZiAtLWdpdCBhL2xpYi9zdGQvYnVpbGQuemlnIGIvbGliL3N0ZC9idWlsZC56aWcKLWluZGV4IDli N2ViYjFmNC4uZTM5ODUyOWY5IDEwMDY0NAotLS0tIGEvbGliL3N0ZC9idWlsZC56aWcKLSsrKyBi L2xpYi9zdGQvYnVpbGQuemlnCi1AQCAtNjg1LDcgKzY4NSwxMSBAQCBwdWIgY29uc3QgQnVpbGRl ciA9IHN0cnVjdCB7Ci0gICAgICAgICApOwotICAgICAgICAgY29uc3QgbWNwdSA9IHNlbGYub3B0 aW9uKFtdY29uc3QgdTgsICJjcHUiLCAiVGFyZ2V0IENQVSIpOwotIAotLSAgICAgICAgY29uc3Qg dHJpcGxlID0gbWF5YmVfdHJpcGxlIG9yZWxzZSByZXR1cm4gYXJncy5kZWZhdWx0X3RhcmdldDsK LSsgICAgICAgIGlmIChtYXliZV90cmlwbGUgPT0gbnVsbCBhbmQgbWNwdSA9PSBudWxsKSB7Ci0r ICAgICAgICAgICAgcmV0dXJuIGFyZ3MuZGVmYXVsdF90YXJnZXQ7Ci0rICAgICAgICB9Ci0rCi0r ICAgICAgICBjb25zdCB0cmlwbGUgPSBtYXliZV90cmlwbGUgb3JlbHNlICJuYXRpdmUiOwotIAot ICAgICAgICAgdmFyIGRpYWdzOiBDcm9zc1RhcmdldC5QYXJzZU9wdGlvbnMuRGlhZ25vc3RpY3Mg PSAue307Ci0gICAgICAgICBjb25zdCBzZWxlY3RlZF90YXJnZXQgPSBDcm9zc1RhcmdldC5wYXJz ZSguewotQEAgLTI0NTEsMTEgKzI0NTUsOCBAQCBwdWIgY29uc3QgTGliRXhlT2JqU3RlcCA9IHN0 cnVjdCB7Ci0gCi0gICAgICAgICAgICAgaWYgKHBvcHVsYXRlZF9jcHVfZmVhdHVyZXMuZXFsKGNy b3NzLmNwdS5mZWF0dXJlcykpIHsKLSAgICAgICAgICAgICAgICAgLy8gVGhlIENQVSBuYW1lIGFs b25lIGlzIHN1ZmZpY2llbnQuCi0tICAgICAgICAgICAgICAgIC8vIElmIGl0IGlzIHRoZSBiYXNl bGluZSBDUFUsIG5vIGNvbW1hbmQgbGluZSBhcmdzIGFyZSByZXF1aXJlZC4KLS0gICAgICAgICAg ICAgICAgaWYgKGNyb3NzLmNwdS5tb2RlbCAhPSBzdGQuVGFyZ2V0LkNwdS5iYXNlbGluZShjcm9z cy5jcHUuYXJjaCkubW9kZWwpIHsKLS0gICAgICAgICAgICAgICAgICAgIHRyeSB6aWdfYXJncy5h cHBlbmQoIi1tY3B1Iik7Ci0tICAgICAgICAgICAgICAgICAgICB0cnkgemlnX2FyZ3MuYXBwZW5k KGNyb3NzLmNwdS5tb2RlbC5uYW1lKTsKLS0gICAgICAgICAgICAgICAgfQotKyAgICAgICAgICAg ICAgICB0cnkgemlnX2FyZ3MuYXBwZW5kKCItbWNwdSIpOwotKyAgICAgICAgICAgICAgICB0cnkg emlnX2FyZ3MuYXBwZW5kKGNyb3NzLmNwdS5tb2RlbC5uYW1lKTsKLSAgICAgICAgICAgICB9IGVs c2UgewotICAgICAgICAgICAgICAgICB2YXIgbWNwdV9idWZmZXIgPSBzdGQuQXJyYXlMaXN0KHU4 KS5pbml0KGJ1aWxkZXIuYWxsb2NhdG9yKTsKLSAKLS0tIAotMi4zMy4xCi0KZGlmZiAtLWdpdCBh L3NyY3BrZ3MvemlnL3RlbXBsYXRlIGIvc3JjcGtncy96aWcvdGVtcGxhdGUKaW5kZXggNzI4YzVh NjRlOWRmLi40ODMyYzg5MzgxNjAgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvemlnL3RlbXBsYXRlCisr KyBiL3NyY3BrZ3MvemlnL3RlbXBsYXRlCkBAIC0xLDE3ICsxLDE3IEBACiAjIFRlbXBsYXRlIGZp bGUgZm9yICd6aWcnCiBwa2duYW1lPXppZwotdmVyc2lvbj0wLjguMQotcmV2aXNpb249MgordmVy c2lvbj0wLjkuMQorcmV2aXNpb249MQogYXJjaHM9Ing4Nl82NCogYWFyY2g2NCoiCiBidWlsZF9z dHlsZT1jbWFrZQogbWFrZV9jbWQ9bWFrZQotbWFrZWRlcGVuZHM9ImNsYW5nIGxsdm0xMiBsbGQt ZGV2ZWwiCittYWtlZGVwZW5kcz0iY2xhbmcgbGx2bTEzIGxsZC1kZXZlbCIKIHNob3J0X2Rlc2M9 IlByb2dyYW1taW5nIGxhbmd1YWdlIGRlc2lnbmVkIGZvciByb2J1c3RuZXNzLCBvcHRpbWFsaXR5 LCBhbmQgY2xhcml0eSIKIG1haW50YWluZXI9IklzYWFjIEZyZXVuZCA8bWFpbEBpc2FhY2ZyZXVu ZC5jb20+IgogbGljZW5zZT0iTUlUIgogaG9tZXBhZ2U9Imh0dHBzOi8vemlnbGFuZy5vcmciCiBk aXN0ZmlsZXM9Imh0dHBzOi8vemlnbGFuZy5vcmcvZG93bmxvYWQvJHt2ZXJzaW9ufS96aWctJHt2 ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT04YzQyOGUxNGEwYTg5Y2I3YTE1YTY3Njg0MjRhMzc0 NDIyOTI4NThjZGI2OTVlMmViNTAzZmEzYzdiZjQ3ZjFhCitjaGVja3N1bT0zOGNmNGU4NDQ4MWY1 ZmFjYzc2NmJhNzI3ODNlNzQ2MmUwOGQ2ZDI5YTVkNDdlM2I3NWM4ZWUzMTQyNDg1MjEwCiBub3Bp ZT15ZXMKIG5vY3Jvc3M9eWVzCiAKCkZyb20gODAwMzMyNjY5YWEwYTQ0MjNiODkwN2E2MDdkYWYw M2M1MmYzOWQyNiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogPT9VVEYtOD9xP0FuZHI9 QzM9QTk9MjBDZXJxdWVpcmE/PSA8YWNlcnF1ZWlyYTAyMUBnbWFpbC5jb20+CkRhdGU6IE1vbiwg MjggRmViIDIwMjIgMjE6NTI6MDcgKzAwMDAKU3ViamVjdDogW1BBVENIIDE4LzMxXSBiZWlnbmV0 OiByZW1vdmUgcGFja2FnZQoKLS0tCiBzcmNwa2dzL2JlaWduZXQvcGF0Y2hlcy9jbF91aW50LnBh dGNoICAgICAgICAgfCAgMjIgLQogLi4uNDE5YTAwMDhlMzhlZjJkOWQyNTVkOWU5Yzc0ZTlmYmEw ODRiLnBhdGNoIHwgMTM0IC0tLQogc3JjcGtncy9iZWlnbmV0L3BhdGNoZXMvbGx2bTA2LnBhdGNo ICAgICAgICAgIHwgIDMzIC0KIHNyY3BrZ3MvYmVpZ25ldC9wYXRjaGVzL2xsdm0wOC5wYXRjaCAg ICAgICAgICB8ICA1NiAtLQogc3JjcGtncy9iZWlnbmV0L3BhdGNoZXMvbGx2bTA5LnBhdGNoICAg ICAgICAgIHwgMTExIC0tLQogc3JjcGtncy9iZWlnbmV0L3BhdGNoZXMvbGx2bTEwLnBhdGNoICAg ICAgICAgIHwgMzQ3IC0tLS0tLS0KIHNyY3BrZ3MvYmVpZ25ldC9wYXRjaGVzL2xsdm0xMS5wYXRj aCAgICAgICAgICB8IDkzNyAtLS0tLS0tLS0tLS0tLS0tLS0KIHNyY3BrZ3MvYmVpZ25ldC9wYXRj aGVzL2xsdm0xMi5wYXRjaCAgICAgICAgICB8IDExNSAtLS0KIHNyY3BrZ3MvYmVpZ25ldC9wYXRj aGVzL211c2wucGF0Y2ggICAgICAgICAgICB8ICAxMSAtCiBzcmNwa2dzL2JlaWduZXQvdGVtcGxh dGUgICAgICAgICAgICAgICAgICAgICAgfCAgMjIgLQogc3JjcGtncy9iZWlnbmV0L3VwZGF0ZSAg ICAgICAgICAgICAgICAgICAgICAgIHwgICAxIC0KIHNyY3BrZ3MvcmVtb3ZlZC1wYWNrYWdlcy90 ZW1wbGF0ZSAgICAgICAgICAgICB8ICAgMSArCiAxMiBmaWxlcyBjaGFuZ2VkLCAxIGluc2VydGlv bigrKSwgMTc4OSBkZWxldGlvbnMoLSkKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2JlaWdu ZXQvcGF0Y2hlcy9jbF91aW50LnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9iZWln bmV0L3BhdGNoZXMvZTFiMjQxOWEwMDA4ZTM4ZWYyZDlkMjU1ZDllOWM3NGU5ZmJhMDg0Yi5wYXRj aAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvYmVpZ25ldC9wYXRjaGVzL2xsdm0wNi5wYXRj aAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvYmVpZ25ldC9wYXRjaGVzL2xsdm0wOC5wYXRj aAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvYmVpZ25ldC9wYXRjaGVzL2xsdm0wOS5wYXRj aAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvYmVpZ25ldC9wYXRjaGVzL2xsdm0xMC5wYXRj aAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvYmVpZ25ldC9wYXRjaGVzL2xsdm0xMS5wYXRj aAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvYmVpZ25ldC9wYXRjaGVzL2xsdm0xMi5wYXRj aAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvYmVpZ25ldC9wYXRjaGVzL211c2wucGF0Y2gK IGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2JlaWduZXQvdGVtcGxhdGUKIGRlbGV0ZSBtb2Rl IDEwMDY0NCBzcmNwa2dzL2JlaWduZXQvdXBkYXRlCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9iZWln bmV0L3BhdGNoZXMvY2xfdWludC5wYXRjaCBiL3NyY3BrZ3MvYmVpZ25ldC9wYXRjaGVzL2NsX3Vp bnQucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg2YmEwMGYwNGU5NS4uMDAw MDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvYmVpZ25ldC9wYXRjaGVzL2NsX3VpbnQucGF0Y2gKKysr IC9kZXYvbnVsbApAQCAtMSwyMiArMCwwIEBACi0tLS0gYS9zcmMvY2xfYXBpX2tlcm5lbC5jCTIw MTctMDktMjIgMTA6MDU6MjIuMDAwMDAwMDAwICswMjAwCi0rKysgYi9zcmMvY2xfYXBpX2tlcm5l bC5jCTIwMjAtMDMtMjQgMTg6Mjc6NDAuMTg2NDg1ODg3ICswMTAwCi1AQCAtMTUxLDcgKzE1MSw3 IEBACi0gICAgICAgICBmaXhlZF9sb2NhbF9zelswXSA9IDE2OwotICAgICAgICAgZml4ZWRfbG9j YWxfc3pbMV0gPSAxOwotICAgICAgIH0gZWxzZSB7Ci0tICAgICAgICB1aW50IGosIG1heERpbVNp emUgPSA2NCAvKiBmcm9tIDY0PyAqLywgbWF4R3JvdXBTaXplID0gMjU2OyAvL01BWF9XT1JLX0dS T1VQX1NJWkUgbWF5IHRvbyBsYXJnZQotKyAgICAgICAgY2xfdWludCBqLCBtYXhEaW1TaXplID0g NjQgLyogZnJvbSA2ND8gKi8sIG1heEdyb3VwU2l6ZSA9IDI1NjsgLy9NQVhfV09SS19HUk9VUF9T SVpFIG1heSB0b28gbGFyZ2UKLSAgICAgICAgIHNpemVfdCByZWFsR3JvdXBTaXplID0gMTsKLSAg ICAgICAgIGZvciAoaSA9IDA7IGkgPCB3b3JrX2RpbTsgaSsrKSB7Ci0gICAgICAgICAgIGZvciAo aiA9IG1heERpbVNpemU7IGogPiAxOyBqLS0pIHsKLS0tLSBhL3NyYy9jbF9lbnF1ZXVlLmMJMjAx Ny0wOS0yMiAxMDowNToyMi4wMDAwMDAwMDAgKzAyMDAKLSsrKyBiL3NyYy9jbF9lbnF1ZXVlLmMJ MjAyMC0wMy0yNCAxODozMDoxMi4wMzE0Nzk4MzMgKzAxMDAKLUBAIC00OTQsNyArNDk0LDcgQEAK LSBjbF9pbnQgY2xfZW5xdWV1ZV9zdm1fZnJlZShlbnF1ZXVlX2RhdGEgKmRhdGEsIGNsX2ludCBz dGF0dXMpIHsKLSAgIGludCBpOwotICAgdm9pZCAqKnBvaW50ZXJzID0gZGF0YS0+cG9pbnRlcnM7 Ci0tICB1aW50IG51bV9zdm1fcHRycyA9IGRhdGEtPnNpemU7Ci0rICBjbF91aW50IG51bV9zdm1f cHRycyA9IGRhdGEtPnNpemU7Ci0gICBjbF9pbnQgZXJyID0gQ0xfU1VDQ0VTUzsKLSAKLSAgIGlm IChzdGF0dXMgIT0gQ0xfQ09NUExFVEUpCmRpZmYgLS1naXQgYS9zcmNwa2dzL2JlaWduZXQvcGF0 Y2hlcy9lMWIyNDE5YTAwMDhlMzhlZjJkOWQyNTVkOWU5Yzc0ZTlmYmEwODRiLnBhdGNoIGIvc3Jj cGtncy9iZWlnbmV0L3BhdGNoZXMvZTFiMjQxOWEwMDA4ZTM4ZWYyZDlkMjU1ZDllOWM3NGU5ZmJh MDg0Yi5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGRlOWU2ZTJmMDkzLi4w MDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9iZWlnbmV0L3BhdGNoZXMvZTFiMjQxOWEwMDA4ZTM4 ZWYyZDlkMjU1ZDllOWM3NGU5ZmJhMDg0Yi5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDEzNCAr MCwwIEBACi1Gcm9tIGUxYjI0MTlhMDAwOGUzOGVmMmQ5ZDI1NWQ5ZTljNzRlOWZiYTA4NGIgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiAiUmViZWNjYSBOLiBQYWxtZXIiIDxyZWJlY2Nh X3BhbG1lckB6b2hvLmNvbT4KLURhdGU6IFNhdCwgMjEgSnVsIDIwMTggMjA6MDU6NTQgKzAxMDAK LVN1YmplY3Q6IEFkZCBwcmVsaW1pbmFyeSBMTFZNIDcgc3VwcG9ydAotCi1UaGlzIGlzIHByZWxp bWluYXJ5IGJlY2F1c2UgTExWTSA3IGhhcyBub3QgYmVlbiByZWxlYXNlZCB5ZXQ6Ci1pdCB3YXMg dGVzdGVkIHdpdGggdGhlIHNuYXBzaG90IGZyb20gRGViaWFuIGV4cGVyaW1lbnRhbCAoc3ZuMzM2 ODk0KS4KLQotMS5DaGFuZ2UgbGlua2luZyBvcmRlciwgYXMgY2xhbmdDb2RlR2VuIG5vdyBsaW5r cyB0byBjbGFuZ0Zyb250ZW5kCi0yLlBhc3MgcmVmZXJlbmNlcyBub3QgcG9pbnRlcnMgdG8gV3Jp dGVCaXRjb2RlVG9GaWxlIGFuZCBDbG9uZU1vZHVsZQotMy5BZGQgdGhlIGhlYWRlcnMgdGhhdCBM b29wU2ltcGxpZnlJRCwgTENTU0FJRCBhbmQKLXNvbWUgY3JlYXRlKlBhc3MgaGF2ZSBtb3ZlZCB0 bwotNC5EZWZpbmUgb3VyIERFQlVHIHdoZXRoZXIgb3Igbm90IHdlIGp1c3QgdW5kZWZpbmVkIExM Vk0ncwotKHRoZWlycyBpcyBub3cgTExWTV9ERUJVRywgYnV0IHdlIG5ldmVyIGFjdHVhbGx5IHVz ZSBpdCkKLQotU2lnbmVkLW9mZi1ieTogUmViZWNjYSBOLiBQYWxtZXIgPHJlYmVjY2FfcGFsbWVy QHpvaG8uY29tPgotUmV2aWV3ZWQtYnk6IFlhbmcgUm9uZyA8cm9uZy5yLnlhbmdAaW50ZWwuY29t PgotLS0tCi0gQ01ha2UvRmluZExMVk0uY21ha2UgICAgICAgICAgICAgICAgICAgICB8IDIgKy0K LSBiYWNrZW5kL3NyYy9iYWNrZW5kL2dlbl9wcm9ncmFtLmNwcCAgICAgIHwgOCArKysrKysrKwot IGJhY2tlbmQvc3JjL2JhY2tlbmQvcHJvZ3JhbS5jcHAgICAgICAgICAgfCA0ICsrKysKLSBiYWNr ZW5kL3NyYy9sbHZtL0V4cGFuZExhcmdlSW50ZWdlcnMuY3BwIHwgMiArLQotIGJhY2tlbmQvc3Jj L2xsdm0vbGx2bV9iaXRjb2RlX2xpbmsuY3BwICAgfCA0ICsrKysKLSBiYWNrZW5kL3NyYy9sbHZt L2xsdm1faW5jbHVkZXMuaHBwICAgICAgIHwgNCArKysrCi0gNiBmaWxlcyBjaGFuZ2VkLCAyMiBp bnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvQ01ha2UvRmluZExM Vk0uY21ha2UgYi9DTWFrZS9GaW5kTExWTS5jbWFrZQotaW5kZXggNTQ1N2YyNC4uZjg4MjU4OSAx MDA2NDQKLS0tLSBhL0NNYWtlL0ZpbmRMTFZNLmNtYWtlCi0rKysgYi9DTWFrZS9GaW5kTExWTS5j bWFrZQotQEAgLTExMywxMCArMTEzLDEwIEBAIG1hY3JvKGFkZF9vbmVfbGliIG5hbWUpCi0gZW5k bWFjcm8oKQotIAotICNBc3N1bWUgY2xhbmcgbGliIHBhdGggc2FtZSBhcyBsbHZtIGxpYiBwYXRo Ci0rYWRkX29uZV9saWIoImNsYW5nQ29kZUdlbiIpCi0gYWRkX29uZV9saWIoImNsYW5nRnJvbnRl bmQiKQotIGFkZF9vbmVfbGliKCJjbGFuZ1NlcmlhbGl6YXRpb24iKQotIGFkZF9vbmVfbGliKCJj bGFuZ0RyaXZlciIpCi0tYWRkX29uZV9saWIoImNsYW5nQ29kZUdlbiIpCi0gYWRkX29uZV9saWIo ImNsYW5nU2VtYSIpCi0gYWRkX29uZV9saWIoImNsYW5nU3RhdGljQW5hbHl6ZXJGcm9udGVuZCIp Ci0gYWRkX29uZV9saWIoImNsYW5nU3RhdGljQW5hbHl6ZXJDaGVja2VycyIpCi1kaWZmIC0tZ2l0 IGEvYmFja2VuZC9zcmMvYmFja2VuZC9nZW5fcHJvZ3JhbS5jcHAgYi9iYWNrZW5kL3NyYy9iYWNr ZW5kL2dlbl9wcm9ncmFtLmNwcAotaW5kZXggMjc0Yzk5Yy4uNDE1OTIzNCAxMDA2NDQKLS0tLSBh L2JhY2tlbmQvc3JjL2JhY2tlbmQvZ2VuX3Byb2dyYW0uY3BwCi0rKysgYi9iYWNrZW5kL3NyYy9i YWNrZW5kL2dlbl9wcm9ncmFtLmNwcAotQEAgLTQ1NCw3ICs0NTQsMTEgQEAgbmFtZXNwYWNlIGdi ZSB7Ci0gI2lmZGVmIEdCRV9DT01QSUxFUl9BVkFJTEFCTEUKLSAgICAgICBzdGQ6OnN0cmluZyBz dHI7Ci0gICAgICAgbGx2bTo6cmF3X3N0cmluZ19vc3RyZWFtIE9TKHN0cik7Ci0rI2lmIExMVk1f VkVSU0lPTl9NQUpPUiA+PSA3Ci0rICAgICAgbGx2bTo6V3JpdGVCaXRjb2RlVG9GaWxlKCooKGxs dm06Ok1vZHVsZSopcHJvZy0+bW9kdWxlKSwgT1MpOwotKyNlbHNlCi0gICAgICAgbGx2bTo6V3Jp dGVCaXRjb2RlVG9GaWxlKChsbHZtOjpNb2R1bGUqKXByb2ctPm1vZHVsZSwgT1MpOwotKyNlbmRp ZgotICAgICAgIHN0ZDo6c3RyaW5nJiBiaW5fc3RyID0gT1Muc3RyKCk7Ci0gICAgICAgaW50IGxs c3ogPSBiaW5fc3RyLnNpemUoKTsKLSAgICAgICAqYmluYXJ5ID0gKGNoYXIgKiltYWxsb2Moc2l6 ZW9mKGNoYXIpICogKGxsc3orMSkgKTsKLUBAIC01NDUsNyArNTQ5LDExIEBAIG5hbWVzcGFjZSBn YmUgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZtb2RSZWYpOwotICAg ICAgICAgc3JjID0gbGx2bTo6dW53cmFwKG1vZFJlZik7Ci0gICAgICAgfQotKyNpZiBMTFZNX1ZF UlNJT05fTUFKT1IgPj0gNwotKyAgICAgIGxsdm06Ok1vZHVsZSogY2xvbmUgPSBsbHZtOjpDbG9u ZU1vZHVsZSgqc3JjKS5yZWxlYXNlKCk7Ci0rI2Vsc2UKLSAgICAgICBsbHZtOjpNb2R1bGUqIGNs b25lID0gbGx2bTo6Q2xvbmVNb2R1bGUoc3JjKS5yZWxlYXNlKCk7Ci0rI2VuZGlmCi0gICAgICAg aWYgKExMVk1MaW5rTW9kdWxlczIod3JhcChkc3QpLCB3cmFwKGNsb25lKSkpIHsKLSAjZWxpZiBM TFZNX1ZFUlNJT05fTUFKT1IgKiAxMCArIExMVk1fVkVSU0lPTl9NSU5PUiA+PSAzNwotICAgICAg IGlmIChMTFZNTGlua01vZHVsZXMod3JhcChkc3QpLCB3cmFwKHNyYyksIExMVk1MaW5rZXJQcmVz ZXJ2ZVNvdXJjZV9SZW1vdmVkLCAmZXJyTXNnKSkgewotZGlmZiAtLWdpdCBhL2JhY2tlbmQvc3Jj L2JhY2tlbmQvcHJvZ3JhbS5jcHAgYi9iYWNrZW5kL3NyYy9iYWNrZW5kL3Byb2dyYW0uY3BwCi1p bmRleCBjMzdjNTk1Li5iMzZmN2I0IDEwMDY0NAotLS0tIGEvYmFja2VuZC9zcmMvYmFja2VuZC9w cm9ncmFtLmNwcAotKysrIGIvYmFja2VuZC9zcmMvYmFja2VuZC9wcm9ncmFtLmNwcAotQEAgLTc5 NCw3ICs3OTQsMTEgQEAgbmFtZXNwYWNlIGdiZSB7Ci0gICAgICAgbGx2bTo6cmF3X2ZkX29zdHJl YW0gb3N0cmVhbSAoZHVtcFNQSVJCaW5hcnlOYW1lLmNfc3RyKCksCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZXJyLCBsbHZtOjpzeXM6OmZzOjpGX05vbmUpOwotICAgICAg IGlmICghZXJyKQotKyNpZiBMTFZNX1ZFUlNJT05fTUFKT1I8NwotICAgICAgICAgbGx2bTo6V3Jp dGVCaXRjb2RlVG9GaWxlKCpvdXRfbW9kdWxlLCBvc3RyZWFtKTsKLSsjZWxzZQotKyAgICAgICAg bGx2bTo6V3JpdGVCaXRjb2RlVG9GaWxlKCoqb3V0X21vZHVsZSwgb3N0cmVhbSk7Ci0rI2VuZGlm Ci0gICAgIH0KLSAjZW5kaWYKLSAgICAgcmV0dXJuIHRydWU7Ci1kaWZmIC0tZ2l0IGEvYmFja2Vu ZC9zcmMvbGx2bS9FeHBhbmRMYXJnZUludGVnZXJzLmNwcCBiL2JhY2tlbmQvc3JjL2xsdm0vRXhw YW5kTGFyZ2VJbnRlZ2Vycy5jcHAKLWluZGV4IDg1MTVkYzEuLjRhZWM0NGUgMTAwNjQ0Ci0tLS0g YS9iYWNrZW5kL3NyYy9sbHZtL0V4cGFuZExhcmdlSW50ZWdlcnMuY3BwCi0rKysgYi9iYWNrZW5k L3NyYy9sbHZtL0V4cGFuZExhcmdlSW50ZWdlcnMuY3BwCi1AQCAtOTksOCArOTksOCBAQCB1c2lu ZyBuYW1lc3BhY2UgbGx2bTsKLSAKLSAjaWZkZWYgREVCVUcKLSAgICN1bmRlZiBERUJVRwotLSAg I2RlZmluZSBERUJVRyguLi4pCi0gI2VuZGlmCi0rI2RlZmluZSBERUJVRyguLi4pCi0gLy8gQnJl YWsgaW5zdHJ1Y3Rpb25zIHVwIGludG8gbm8gbGFyZ2VyIHRoYW4gNjQtYml0IGNodW5rcy4KLSBz dGF0aWMgY29uc3QgdW5zaWduZWQga0NodW5rQml0cyA9IDY0OwotIHN0YXRpYyBjb25zdCB1bnNp Z25lZCBrQ2h1bmtCeXRlcyA9IGtDaHVua0JpdHMgLyBDSEFSX0JJVDsKLWRpZmYgLS1naXQgYS9i YWNrZW5kL3NyYy9sbHZtL2xsdm1fYml0Y29kZV9saW5rLmNwcCBiL2JhY2tlbmQvc3JjL2xsdm0v bGx2bV9iaXRjb2RlX2xpbmsuY3BwCi1pbmRleCBlZjU2ZTRjLi40YzNlMjBlIDEwMDY0NAotLS0t IGEvYmFja2VuZC9zcmMvbGx2bS9sbHZtX2JpdGNvZGVfbGluay5jcHAKLSsrKyBiL2JhY2tlbmQv c3JjL2xsdm0vbGx2bV9iaXRjb2RlX2xpbmsuY3BwCi1AQCAtMzQwLDcgKzM0MCwxMSBAQCBuYW1l c3BhY2UgZ2JlCi0gICAgIC8qIFdlIHVzZSBiZWlnbmV0J3MgYml0Y29kZSBhcyBkc3QgYmVjYXVz ZSBpdCB3aWxsIGhhdmUgYSBsb3Qgb2YKLSAgICAgICAgbGF6eSBmdW5jdGlvbnMgd2hpY2ggd2ls bCBub3QgYmUgbG9hZGVkLiAqLwotICNpZiBMTFZNX1ZFUlNJT05fTUFKT1IgKiAxMCArIExMVk1f VkVSU0lPTl9NSU5PUiA+PSAzOQotKyNpZiBMTFZNX1ZFUlNJT05fTUFKT1IgPj0gNwotKyAgICBs bHZtOjpNb2R1bGUgKiBsaW5rZWRfbW9kdWxlID0gbGx2bTo6Q2xvbmVNb2R1bGUoKihsbHZtOjpN b2R1bGUqKW1vZCkucmVsZWFzZSgpOwotKyNlbHNlCi0gICAgIGxsdm06Ok1vZHVsZSAqIGxpbmtl ZF9tb2R1bGUgPSBsbHZtOjpDbG9uZU1vZHVsZSgobGx2bTo6TW9kdWxlKiltb2QpLnJlbGVhc2Uo KTsKLSsjZW5kaWYKLSAgICAgaWYoTExWTUxpbmtNb2R1bGVzMih3cmFwKGNsb25lZExpYiksIHdy YXAobGlua2VkX21vZHVsZSkpKSB7Ci0gI2Vsc2UKLSAgICAgY2hhciogZXJyb3JNc2c7Ci1kaWZm IC0tZ2l0IGEvYmFja2VuZC9zcmMvbGx2bS9sbHZtX2luY2x1ZGVzLmhwcCBiL2JhY2tlbmQvc3Jj L2xsdm0vbGx2bV9pbmNsdWRlcy5ocHAKLWluZGV4IDE4NDU1M2EuLmZmY2NmMDIgMTAwNjQ0Ci0t LS0gYS9iYWNrZW5kL3NyYy9sbHZtL2xsdm1faW5jbHVkZXMuaHBwCi0rKysgYi9iYWNrZW5kL3Ny Yy9sbHZtL2xsdm1faW5jbHVkZXMuaHBwCi1AQCAtODksNiArODksMTAgQEAKLSAjaW5jbHVkZSAi bGx2bS9Db2RlR2VuL0ludHJpbnNpY0xvd2VyaW5nLmgiCi0gCi0gI2luY2x1ZGUgImxsdm0vVHJh bnNmb3Jtcy9TY2FsYXIuaCIKLSsjaWYgTExWTV9WRVJTSU9OX01BSk9SID49IDcKLSsjaW5jbHVk ZSAibGx2bS9UcmFuc2Zvcm1zL1V0aWxzLmgiCi0rI2luY2x1ZGUgImxsdm0vVHJhbnNmb3Jtcy9J bnN0Q29tYmluZS9JbnN0Q29tYmluZS5oIgotKyNlbmRpZgotICNpbmNsdWRlICJsbHZtL01DL01D QXNtSW5mby5oIgotICNpbmNsdWRlICJsbHZtL01DL01DQ29udGV4dC5oIgotICNpbmNsdWRlICJs bHZtL01DL01DSW5zdHJJbmZvLmgiCi0tLSAKLWNnaXQgdjEuMQotCmRpZmYgLS1naXQgYS9zcmNw a2dzL2JlaWduZXQvcGF0Y2hlcy9sbHZtMDYucGF0Y2ggYi9zcmNwa2dzL2JlaWduZXQvcGF0Y2hl cy9sbHZtMDYucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDMzODllNjZjODJk Zi4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvYmVpZ25ldC9wYXRjaGVzL2xsdm0wNi5wYXRj aAorKysgL2Rldi9udWxsCkBAIC0xLDMzICswLDAgQEAKLVNvdXJjZTogQXJjaCBMaW51eAotVXBz dHJlYW06IHVua25vd24KLVJlYXNvbjogZml4ZXMgbGx2bTYgY29tcGlsYXRpb24KLQotLS0tIGEv YmFja2VuZC9zcmMvbGx2bS9sbHZtX3RvX2dlbi5jcHAJMjAxNy0xMC0yNCAwOTowNDo0OC4wMDAw MDAwMDAgKzAzMDAKLSsrKyBiL2JhY2tlbmQvc3JjL2xsdm0vbGx2bV90b19nZW4uY3BwCTIwMTgt MDMtMTYgMTY6MDg6NTQuNjY5OTYzODI0ICswMjAwCi1AQCAtMzIyLDcgKzMyMiwxMSBAQCBuYW1l c3BhY2UgZ2JlCi0gICAgIERhdGFMYXlvdXQgREwoJm1vZCk7Ci0gICAgIAotICAgICBnYmVEaWFn bm9zdGljQ29udGV4dCBkYzsKLSsjaWYgTExWTV9WRVJTSU9OX01BSk9SID49IDYKLSsgICAgbW9k LmdldENvbnRleHQoKS5zZXREaWFnbm9zdGljSGFuZGxlckNhbGxCYWNrKCZnYmVEaWFnbm9zdGlj SGFuZGxlciwmZGMpOwotKyNlbHNlCi0gICAgIG1vZC5nZXRDb250ZXh0KCkuc2V0RGlhZ25vc3Rp Y0hhbmRsZXIoJmdiZURpYWdub3N0aWNIYW5kbGVyLCZkYyk7Ci0rI2VuZGlmCi0gCi0gI2lmIExM Vk1fVkVSU0lPTl9NQUpPUiAqIDEwICsgTExWTV9WRVJTSU9OX01JTk9SID49IDM3Ci0gICAgIG1v ZC5zZXREYXRhTGF5b3V0KERMKTsKLS0tLSBhL2JhY2tlbmQvc3JjL2xsdm0vbGx2bV91bnJvbGwu Y3BwCTIwMTctMTAtMjQgMDk6MDQ6NDguMDAwMDAwMDAwICswMzAwCi0rKysgYi9iYWNrZW5kL3Ny Yy9sbHZtL2xsdm1fdW5yb2xsLmNwcAkyMDE4LTAzLTE2IDE2OjA5OjQ3LjczNjQwMzU1NyArMDIw MAotQEAgLTIwNSw3ICsyMDUsOSBAQCBuYW1lc3BhY2UgZ2JlIHsKLSAgICAgICAgICAgaWYgKHBh cmVudFRyaXBDb3VudCAhPSAwICYmIGN1cnJUcmlwQ291bnQgKiBwYXJlbnRUcmlwQ291bnQgPiAz MikgewotICAgICAgICAgICAgIC8vRG9uJ3QgY2hhbmdlIHRoZSB1bnJvbGxJRCBpZiBkb2Vzbid0 IGZvcmNlIHVucm9sbC4KLSAgICAgICAgICAgICAvL3NldFVucm9sbElEKHBhcmVudEwsIGZhbHNl KTsKLS0jaWYgTExWTV9WRVJTSU9OX01BSk9SICogMTAgKyBMTFZNX1ZFUlNJT05fTUlOT1IgPj0g MzgKLSsjaWYgTExWTV9WRVJTSU9OX01BSk9SID49IDYKLSsgICAgICAgICAgICBsb29wSW5mby5l cmFzZShwYXJlbnRMKTsKLSsjZWxpZiBMTFZNX1ZFUlNJT05fTUFKT1IgKiAxMCArIExMVk1fVkVS U0lPTl9NSU5PUiA+PSAzOAotICAgICAgICAgICAgIGxvb3BJbmZvLm1hcmtBc1JlbW92ZWQocGFy ZW50TCk7Ci0gI2Vsc2UKLSAgICAgICAgICAgICBMUE0uZGVsZXRlTG9vcEZyb21RdWV1ZShwYXJl bnRMKTsKLU9ubHkgaW4gQmVpZ25ldC0xLjMuMi1Tb3VyY2U6IGJ1aWxkCi0KZGlmZiAtLWdpdCBh L3NyY3BrZ3MvYmVpZ25ldC9wYXRjaGVzL2xsdm0wOC5wYXRjaCBiL3NyY3BrZ3MvYmVpZ25ldC9w YXRjaGVzL2xsdm0wOC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTBjNWU3 YTdjNGY3Li4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9iZWlnbmV0L3BhdGNoZXMvbGx2bTA4 LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNTYgKzAsMCBAQAotRnJvbSA3NWMxNTI1OTlhN2Mx NzM5ZTZkYWRjZGI5YjM3N2FjZjdlNDRkOWNmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJv bTogSmFuIEJlaWNoIDxqYmVpY2hARnJlZUJTRC5vcmc+Ci1EYXRlOiBXZWQsIDMwIEphbiAyMDE5 IDEyOjQyOjM0ICswMDAwCi1TdWJqZWN0OiBbUEFUQ0hdIGxhbmcvYmVpZ25ldDogdW5icmVhayB3 aXRoIGxsdm04MAotCi1SZWdyZXNzZWQgYnkgaHR0cHM6Ly9naXRodWIuY29tL2xsdm0vbGx2bS1w cm9qZWN0L2NvbW1pdC83MjFkOTU3MTNhOWUKLQotdW5hYmxlIHRvIGxvYWQgL3Vzci9sb2NhbC9s aWIvYmVpZ25ldC8vbGliZ2JlaW50ZXJwLnNvIHdoaWNoIGlzIHBhcnQgb2YgdGhlIGRyaXZlciwg cGxlYXNlIGNoZWNrIQotbGQtZWxmLnNvLjE6IC91c3IvbG9jYWwvbGliL2JlaWduZXQvL2xpYmdi ZWludGVycC5zbzogVW5kZWZpbmVkIHN5bWJvbCAiX1pONGxsdm0yNERpc2FibGVBQklCcmVha2lu Z0NoZWNrc0UiCi0KLVJlZ3Jlc3NlZCBieSBodHRwczovL2dpdGh1Yi5jb20vbGx2bS9sbHZtLXBy b2plY3QvY29tbWl0LzRhMmQ1OGUxNmFjYwotCi1iYWNrZW5kL3NyYy9sbHZtL2xsdm1fZ2VuX2Jh Y2tlbmQuY3BwOjMwNzY6NTogZXJyb3I6Ci0gICAgICB1bmtub3duIHR5cGUgbmFtZSAnVGVybWlu YXRvckluc3QnCi0gICAgVGVybWluYXRvckluc3QgKnRlcm0gPSBiYi0+Z2V0VGVybWluYXRvcigp OwotICAgIF4KLWJhY2tlbmQvc3JjL2xsdm0vbGx2bV9nZW5fYmFja2VuZC5jcHA6MzA4Mzo1OiBl cnJvcjoKLSAgICAgIHVua25vd24gdHlwZSBuYW1lICdUZXJtaW5hdG9ySW5zdCcKLSAgICBUZXJt aW5hdG9ySW5zdCAqdGVybSA9IGJiLT5nZXRUZXJtaW5hdG9yKCk7Ci0gICAgXgotCi0tLS0gYS9i YWNrZW5kL3NyYy9DTWFrZUxpc3RzLnR4dAkyMDE3LTA5LTIyIDA4OjA1OjIyIFVUQwotKysrIGIv YmFja2VuZC9zcmMvQ01ha2VMaXN0cy50eHQKLUBAIC0xNjgsNiArMTY4LDcgQEAgYWRkX2RlcGVu ZGVuY2llcyhnYmUgYmVpZ25ldF9iaXRjb2RlKQotIGVuZGlmIChOT1QgKFVTRV9TVEFOREFMT05F X0dCRV9DT01QSUxFUiBTVFJFUVVBTCAidHJ1ZSIpKQotIAotIGFkZF9saWJyYXJ5KGdiZWludGVy cCBTSEFSRUQgZ2JlX2Jpbl9pbnRlcnByZXRlci5jcHApCi0rdGFyZ2V0X2xpbmtfbGlicmFyaWVz KGdiZWludGVycCAke0xMVk1fTU9EVUxFX0xJQlN9KQotIAotIGlmIChMTFZNX1ZFUlNJT05fTk9E T1QgVkVSU0lPTl9FUVVBTCAzNCkKLSAgIGZpbmRfbGlicmFyeShURVJNSU5GTyBOQU1FUyB0aW5m byBuY3Vyc2VzKQotLS0tIGEvYmFja2VuZC9zcmMvbGx2bS9sbHZtX2dlbl9iYWNrZW5kLmNwcAky MDE3LTEwLTI0IDA2OjA0OjQ4IFVUQwotKysrIGIvYmFja2VuZC9zcmMvbGx2bS9sbHZtX2dlbl9i YWNrZW5kLmNwcAotQEAgLTMwNzMsMTQgKzMwNzMsMjIgQEAgbmFtZXNwYWNlIGdiZQotIAotIAot ICAgc3RhdGljIHVuc2lnbmVkIGdldENoaWxkTm8oQmFzaWNCbG9jayAqYmIpIHsKLSsjaWYgTExW TV9WRVJTSU9OX01BSk9SIDwgOAotICAgICBUZXJtaW5hdG9ySW5zdCAqdGVybSA9IGJiLT5nZXRU ZXJtaW5hdG9yKCk7Ci0rI2Vsc2UKLSsgICAgSW5zdHJ1Y3Rpb24gKnRlcm0gPSBiYi0+Z2V0VGVy bWluYXRvcigpOwotKyNlbmRpZgotICAgICByZXR1cm4gdGVybS0+Z2V0TnVtU3VjY2Vzc29ycygp OwotICAgfQotIAotICAgLy8gcmV0dXJuIE5VTEwgaWYgaW5kZXggb3V0LXJhbmdlIG9mIGNoaWxk cmVuIG51bWJlcgotICAgc3RhdGljIEJhc2ljQmxvY2sgKmdldENoaWxkUG9zc2libGUoQmFzaWNC bG9jayAqYmIsIHVuc2lnbmVkIGluZGV4KSB7Ci0gCi0rI2lmIExMVk1fVkVSU0lPTl9NQUpPUiA8 IDgKLSAgICAgVGVybWluYXRvckluc3QgKnRlcm0gPSBiYi0+Z2V0VGVybWluYXRvcigpOwotKyNl bHNlCi0rICAgIEluc3RydWN0aW9uICp0ZXJtID0gYmItPmdldFRlcm1pbmF0b3IoKTsKLSsjZW5k aWYKLSAgICAgdW5zaWduZWQgY2hpbGRObyA9IHRlcm0tPmdldE51bVN1Y2Nlc3NvcnMoKTsKLSAg ICAgQmFzaWNCbG9jayAqY2hpbGQgPSBOVUxMOwotICAgICBpZihpbmRleCA8IGNoaWxkTm8pIHsK ZGlmZiAtLWdpdCBhL3NyY3BrZ3MvYmVpZ25ldC9wYXRjaGVzL2xsdm0wOS5wYXRjaCBiL3NyY3Br Z3MvYmVpZ25ldC9wYXRjaGVzL2xsdm0wOS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggYWNhZWNlYWJiNmRkLi4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9iZWlnbmV0L3Bh dGNoZXMvbGx2bTA5LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTExICswLDAgQEAKLVNvdXJj ZTogRnJlZUJTRCArIHE2NgotCi1Nb3N0bHkgRnJlZUJTRCBvdGhlciB0aGFuIEZpbmRMTFZNLmNt YWtlIGNoYW5nZXMuCi1MaW5raW5nIGFnYWluc3QgY2xhbmctY3BwIGRvZXMgbm90IHdvcmsgZm9y IHVzLgotCi0tLS0gYS9DTWFrZS9GaW5kTExWTS5jbWFrZQotKysrIGIvQ01ha2UvRmluZExMVk0u Y21ha2UKLUBAIC0xNDAsNiArMTQwLDcgQEAgYWRkX29uZV9saWIoImNsYW5nU3RhdGljQW5hbHl6 ZXJDb3JlIikKLSBhZGRfb25lX2xpYigiY2xhbmdBbmFseXNpcyIpCi0gYWRkX29uZV9saWIoImNs YW5nRWRpdCIpCi0gYWRkX29uZV9saWIoImNsYW5nQVNUIikKLSthZGRfb25lX2xpYigiY2xhbmdB U1RNYXRjaGVycyIpCi0gYWRkX29uZV9saWIoImNsYW5nUGFyc2UiKQotIGFkZF9vbmVfbGliKCJj bGFuZ1NlbWEiKQotIGFkZF9vbmVfbGliKCJjbGFuZ0xleCIpCi0tLS0gYS9iYWNrZW5kL3NyYy9s bHZtL2xsdm1faW50cmluc2ljX2xvd2VyaW5nLmNwcAkyMDE3LTEwLTI0IDA2OjA0OjQ4IFVUQwot KysrIGIvYmFja2VuZC9zcmMvbGx2bS9sbHZtX2ludHJpbnNpY19sb3dlcmluZy5jcHAKLUBAIC03 Nyw3ICs3NywxMSBAQCBuYW1lc3BhY2UgZ2JlIHsKLSAgICAgICAgIHN0ZDo6dmVjdG9yPFR5cGUg Kj4gUGFyYW1UeXM7Ci0gICAgICAgICBmb3IgKFZhbHVlKiogSSA9IEFyZ0JlZ2luOyBJICE9IEFy Z0VuZDsgKytJKQotICAgICAgICAgICBQYXJhbVR5cy5wdXNoX2JhY2soKCpJKS0+Z2V0VHlwZSgp KTsKLSsjaWYgTExWTV9WRVJTSU9OX01BSk9SICogMTAgKyBMTFZNX1ZFUlNJT05fTUlOT1IgPj0g OTAKLSsgICAgICAgIEZ1bmN0aW9uQ2FsbGVlIEZDYWNoZSA9IE0tPmdldE9ySW5zZXJ0RnVuY3Rp b24oTmV3Rm4sCi0rI2Vsc2UKLSAgICAgICAgIENvbnN0YW50KiBGQ2FjaGUgPSBNLT5nZXRPcklu c2VydEZ1bmN0aW9uKE5ld0ZuLAotKyNlbmRpZgotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBGdW5jdGlvblR5cGU6OmdldChSZXRUeSwgUGFyYW1UeXMsIGZhbHNlKSk7 Ci0gCi0gICAgICAgICBJUkJ1aWxkZXI8PiBCdWlsZGVyKENJLT5nZXRQYXJlbnQoKSwgQmFzaWNC bG9jazo6aXRlcmF0b3IoQ0kpKTsKLS0tLSBhL2JhY2tlbmQvc3JjL2xsdm0vbGx2bV9zYW1wbGVy X2ZpeC5jcHAJMjAxNy0xMC0yNCAwNjowNDo0OCBVVEMKLSsrKyBiL2JhY2tlbmQvc3JjL2xsdm0v bGx2bV9zYW1wbGVyX2ZpeC5jcHAKLUBAIC04Miw3ICs4MiwxMSBAQCBuYW1lc3BhY2UgZ2JlIHsK LSAjaWYgTExWTV9WRVJTSU9OX01BSk9SICogMTAgKyBMTFZNX1ZFUlNJT05fTUlOT1IgPj0gNDAK LSAgICAgICAgICAgTW9kdWxlICpNID0gSS0+Z2V0UGFyZW50KCktPmdldFBhcmVudCgpLT5nZXRQ YXJlbnQoKTsKLSAjaWYgTExWTV9WRVJTSU9OX01BSk9SICogMTAgKyBMTFZNX1ZFUlNJT05fTUlO T1IgPj0gNTAKLSsjaWYgTExWTV9WRVJTSU9OX01BSk9SICogMTAgKyBMTFZNX1ZFUlNJT05fTUlO T1IgPj0gOTAKLSsgICAgICAgICAgRnVuY3Rpb25DYWxsZWUgc2FtcGxlckN2dCA9IE0tPmdldE9y SW5zZXJ0RnVuY3Rpb24oIl9fZ2VuX29jbF9zYW1wbGVyX3RvX2ludCIsIGkzMlR5LCBJLT5nZXRP cGVyYW5kKDApLT5nZXRUeXBlKCkpOwotKyNlbHNlCi0gICAgICAgICAgIFZhbHVlKiBzYW1wbGVy Q3Z0ID0gTS0+Z2V0T3JJbnNlcnRGdW5jdGlvbigiX19nZW5fb2NsX3NhbXBsZXJfdG9faW50Iiwg aTMyVHksIEktPmdldE9wZXJhbmQoMCktPmdldFR5cGUoKSk7Ci0rI2VuZGlmCi0gI2Vsc2UKLSAg ICAgICAgICAgVmFsdWUqIHNhbXBsZXJDdnQgPSBNLT5nZXRPckluc2VydEZ1bmN0aW9uKCJfX2dl bl9vY2xfc2FtcGxlcl90b19pbnQiLCBpMzJUeSwgSS0+Z2V0T3BlcmFuZCgwKS0+Z2V0VHlwZSgp LCBudWxscHRyKTsKLSAjZW5kaWYKLUBAIC0xMjQsNyArMTI4LDExIEBAIG5hbWVzcGFjZSBnYmUg ewotICNpZiBMTFZNX1ZFUlNJT05fTUFKT1IgKiAxMCArIExMVk1fVkVSU0lPTl9NSU5PUiA+PSA0 MAotICAgICAgICAgICBNb2R1bGUgKk0gPSBJLT5nZXRQYXJlbnQoKS0+Z2V0UGFyZW50KCktPmdl dFBhcmVudCgpOwotICNpZiBMTFZNX1ZFUlNJT05fTUFKT1IgKiAxMCArIExMVk1fVkVSU0lPTl9N SU5PUiA+PSA1MAotKyNpZiBMTFZNX1ZFUlNJT05fTUFKT1IgKiAxMCArIExMVk1fVkVSU0lPTl9N SU5PUiA+PSA5MAotKyAgICAgICAgICBGdW5jdGlvbkNhbGxlZSBzYW1wbGVyQ3Z0ID0gTS0+Z2V0 T3JJbnNlcnRGdW5jdGlvbigiX19nZW5fb2NsX3NhbXBsZXJfdG9faW50IiwgaTMyVHksIEktPmdl dE9wZXJhbmQoMCktPmdldFR5cGUoKSk7Ci0rI2Vsc2UKLSAgICAgICAgICAgVmFsdWUqIHNhbXBs ZXJDdnQgPSBNLT5nZXRPckluc2VydEZ1bmN0aW9uKCJfX2dlbl9vY2xfc2FtcGxlcl90b19pbnQi LCBpMzJUeSwgSS0+Z2V0T3BlcmFuZCgwKS0+Z2V0VHlwZSgpKTsKLSsjZW5kaWYKLSAjZWxzZQot ICAgICAgICAgICBWYWx1ZSogc2FtcGxlckN2dCA9IE0tPmdldE9ySW5zZXJ0RnVuY3Rpb24oIl9f Z2VuX29jbF9zYW1wbGVyX3RvX2ludCIsIGkzMlR5LCBJLT5nZXRPcGVyYW5kKDApLT5nZXRUeXBl KCksIG51bGxwdHIpOwotICNlbmRpZgotLS0tIGEvYmFja2VuZC9zcmMvbGx2bS9sbHZtX3Byb2Zp bGluZy5jcHAJMjAxNy0xMC0yNCAwNjowNDo0OCBVVEMKLSsrKyBiL2JhY2tlbmQvc3JjL2xsdm0v bGx2bV9wcm9maWxpbmcuY3BwCi1AQCAtMTYzLDEwICsxNjMsMTggQEAgbmFtZXNwYWNlIGdiZQot ICAgICAgIC8vIF9fZ2VuX29jbF9zdG9yZV90aW1lc3RhbXAoaW50IG50aCwgaW50IHR5cGUpOwot ICAgICAgIFZhbHVlICpBcmdzWzJdID0ge0NvbnN0YW50SW50OjpnZXQoaW50VHksIHBvaW50TnVt KyspLCBDb25zdGFudEludDo6Z2V0KGludFR5LCBwcm9maWxpbmdUeXBlKX07Ci0gI2lmIExMVk1f VkVSU0lPTl9NQUpPUiAqIDEwICsgTExWTV9WRVJTSU9OX01JTk9SID49IDUwCi0rI2lmIExMVk1f VkVSU0lPTl9NQUpPUiAqIDEwICsgTExWTV9WRVJTSU9OX01JTk9SID49IDkwCi0rICAgICAgYnVp bGRlci0+Q3JlYXRlQ2FsbChtb2R1bGUtPmdldE9ySW5zZXJ0RnVuY3Rpb24oCi0rI2Vsc2UKLSAg ICAgICBidWlsZGVyLT5DcmVhdGVDYWxsKGNhc3Q8bGx2bTo6RnVuY3Rpb24+KG1vZHVsZS0+Z2V0 T3JJbnNlcnRGdW5jdGlvbigKLSsjZW5kaWYKLSAgICAgICAgICAgICAgICJfX2dlbl9vY2xfY2Fs Y190aW1lc3RhbXAiLCBUeXBlOjpnZXRWb2lkVHkobW9kdWxlLT5nZXRDb250ZXh0KCkpLAotICAg ICAgICAgICAgICAgSW50ZWdlclR5cGU6OmdldEludDMyVHkobW9kdWxlLT5nZXRDb250ZXh0KCkp LAotKyNpZiBMTFZNX1ZFUlNJT05fTUFKT1IgKiAxMCArIExMVk1fVkVSU0lPTl9NSU5PUiA+PSA5 MAotKyAgICAgICAgICAgICAgSW50ZWdlclR5cGU6OmdldEludDMyVHkobW9kdWxlLT5nZXRDb250 ZXh0KCkpKSwKLSsjZWxzZQotICAgICAgICAgICAgICAgSW50ZWdlclR5cGU6OmdldEludDMyVHko bW9kdWxlLT5nZXRDb250ZXh0KCkpKSksCi0rI2VuZGlmCi0gICAgICAgICAgICAgICBBcnJheVJl ZjxWYWx1ZSo+KEFyZ3MpKTsKLSAjZWxzZQotICAgICAgIGJ1aWxkZXItPkNyZWF0ZUNhbGwoY2Fz dDxsbHZtOjpGdW5jdGlvbj4obW9kdWxlLT5nZXRPckluc2VydEZ1bmN0aW9uKAotQEAgLTE4NSwx MCArMTkzLDE4IEBAIG5hbWVzcGFjZSBnYmUKLSAgICAgVmFsdWUgKkFyZ3MyWzJdID0ge3Byb2Zp bGluZ0J1ZiwgQ29uc3RhbnRJbnQ6OmdldChpbnRUeSwgcHJvZmlsaW5nVHlwZSl9OwotIAotICNp ZiBMTFZNX1ZFUlNJT05fTUFKT1IgKiAxMCArIExMVk1fVkVSU0lPTl9NSU5PUiA+PSA1MAotKyNp ZiBMTFZNX1ZFUlNJT05fTUFKT1IgKiAxMCArIExMVk1fVkVSU0lPTl9NSU5PUiA+PSA5MAotKyAg ICBidWlsZGVyLT5DcmVhdGVDYWxsKG1vZHVsZS0+Z2V0T3JJbnNlcnRGdW5jdGlvbigKLSsjZWxz ZQotICAgICBidWlsZGVyLT5DcmVhdGVDYWxsKGNhc3Q8bGx2bTo6RnVuY3Rpb24+KG1vZHVsZS0+ Z2V0T3JJbnNlcnRGdW5jdGlvbigKLSsjZW5kaWYKLSAgICAgICAgICAgICAiX19nZW5fb2NsX3N0 b3JlX3Byb2ZpbGluZyIsIFR5cGU6OmdldFZvaWRUeShtb2R1bGUtPmdldENvbnRleHQoKSksCi0g ICAgICAgICAgICAgcHRyVHksCi0rI2lmIExMVk1fVkVSU0lPTl9NQUpPUiAqIDEwICsgTExWTV9W RVJTSU9OX01JTk9SID49IDkwCi0rICAgICAgICAgICAgSW50ZWdlclR5cGU6OmdldEludDMyVHko bW9kdWxlLT5nZXRDb250ZXh0KCkpKSwKLSsjZWxzZQotICAgICAgICAgICAgIEludGVnZXJUeXBl OjpnZXRJbnQzMlR5KG1vZHVsZS0+Z2V0Q29udGV4dCgpKSkpLAotKyNlbmRpZgotICAgICAgICAg ICAgIEFycmF5UmVmPFZhbHVlKj4oQXJnczIpKTsKLSAjZWxzZQotICAgICBidWlsZGVyLT5DcmVh dGVDYWxsKGNhc3Q8bGx2bTo6RnVuY3Rpb24+KG1vZHVsZS0+Z2V0T3JJbnNlcnRGdW5jdGlvbigK LS0tLSBhL2JhY2tlbmQvc3JjL2xsdm0vbGx2bV9kZXZpY2VfZW5xdWV1ZS5jcHAJMjAxNy0xMC0y NCAwNjowNDo0OCBVVEMKLSsrKyBiL2JhY2tlbmQvc3JjL2xsdm0vbGx2bV9kZXZpY2VfZW5xdWV1 ZS5jcHAKLUBAIC0zOTgsOCArMzk4LDEzIEBAIG5hbWVzcGFjZSBnYmUgewotICAgICAgICAgICAg ICAgc3RkOjp2ZWN0b3I8VHlwZSAqPiBQYXJhbVR5czsKLSAgICAgICAgICAgICAgIGZvciAoVmFs dWUqKiBpdGVyID0gYXJncy5iZWdpbigpOyBpdGVyICE9IGFyZ3MuZW5kKCk7ICsraXRlcikKLSAg ICAgICAgICAgICAgICAgUGFyYW1UeXMucHVzaF9iYWNrKCgqaXRlciktPmdldFR5cGUoKSk7Ci0r I2lmIExMVk1fVkVSU0lPTl9NQUpPUiAqIDEwICsgTExWTV9WRVJTSU9OX01JTk9SID49IDkwCi0r ICAgICAgICAgICAgICBDYWxsSW5zdCogbmV3Q0kgPSBidWlsZGVyLkNyZWF0ZUNhbGwobW9kLT5n ZXRPckluc2VydEZ1bmN0aW9uKAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJfX2dl bl9lbnF1ZXVlX2tlcm5lbF9zbG0iLCBGdW5jdGlvblR5cGU6OmdldChpbnRUeSwgUGFyYW1UeXMs IGZhbHNlKSksIGFyZ3MpOwotKyNlbHNlCi0gICAgICAgICAgICAgICBDYWxsSW5zdCogbmV3Q0kg PSBidWlsZGVyLkNyZWF0ZUNhbGwoY2FzdDxsbHZtOjpGdW5jdGlvbj4obW9kLT5nZXRPckluc2Vy dEZ1bmN0aW9uKAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJfX2dlbl9lbnF1ZXVl X2tlcm5lbF9zbG0iLCBGdW5jdGlvblR5cGU6OmdldChpbnRUeSwgUGFyYW1UeXMsIGZhbHNlKSkp LCBhcmdzKTsKLSsjZW5kaWYKLSAgICAgICAgICAgICAgIENJLT5yZXBsYWNlQWxsVXNlc1dpdGgo bmV3Q0kpOwotICAgICAgICAgICAgICAgZGVhZEluc25TZXQuaW5zZXJ0KENJKTsKLSAgICAgICAg ICAgICB9CmRpZmYgLS1naXQgYS9zcmNwa2dzL2JlaWduZXQvcGF0Y2hlcy9sbHZtMTAucGF0Y2gg Yi9zcmNwa2dzL2JlaWduZXQvcGF0Y2hlcy9sbHZtMTAucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDhhYWZlNDhhMjQwZC4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvYmVp Z25ldC9wYXRjaGVzL2xsdm0xMC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDM0NyArMCwwIEBA Ci1kaWZmIC0tZ2l0IENNYWtlL0ZpbmRMTFZNLmNtYWtlIENNYWtlL0ZpbmRMTFZNLmNtYWtlCi1p bmRleCAwYTU5ZTQ3Li42ZTkwOTIzIDEwMDY0NAotLS0tIGEvQ01ha2UvRmluZExMVk0uY21ha2UK LSsrKyBiL0NNYWtlL0ZpbmRMTFZNLmNtYWtlCi1AQCAtMTA0LDI4ICsxMDQsMTYgQEAgc3RyaW5n KFJFR0VYIFJFUExBQ0UgIiAqXG4iICIiIExMVk1fU1lTVEVNX0xJQlMgJHtMTFZNX1NZU1RFTV9M SUJTX09SSUd9KQotIGVuZGlmIChMTFZNX1NZU1RFTV9MSUJTX09SSUcpCi0gZW5kaWYgKExMVk1f VkVSU0lPTl9OT0RPVCBWRVJTSU9OX0dSRUFURVIgMzQpCi0gCi0rI3NvbWV0aGluZyBoYXJtbGVz cyBiZWNhdXNlIHdoaXRlc3BhY2UgYXQgc3RhcnQgaXMgYW4gZXJyb3IKLStzZXQoQ0xBTkdfTElC UkFSSUVTICItbGRsIikKLSBtYWNybyhhZGRfb25lX2xpYiBuYW1lKQotICAgRklORF9MSUJSQVJZ KENMQU5HX0xJQgotICAgICBOQU1FUyAke25hbWV9Ci0gICAgIFBBVEhTICR7TExWTV9MSUJSQVJZ X0RJUn0gTk9fREVGQVVMVF9QQVRIKQotLSAgc2V0KENMQU5HX0xJQlJBUklFUyAke0NMQU5HX0xJ QlJBUklFU30gJHtDTEFOR19MSUJ9KQotKyAgc2V0KENMQU5HX0xJQlJBUklFUyAiJHtDTEFOR19M SUJSQVJJRVN9ICR7Q0xBTkdfTElCfSIpCi0rICBtZXNzYWdlKFNUQVRVUyAiY2xhbmdsaWJzIG5h bWUgJHtuYW1lfSB0aGlzICR7Q0xBTkdfTElCfSBhbGwgJHtDTEFOR19MSUJSQVJJRVN9ICIpCi0g CXVuc2V0KENMQU5HX0xJQiBDQUNIRSkKLSBlbmRtYWNybygpCi0gCi0gI0Fzc3VtZSBjbGFuZyBs aWIgcGF0aCBzYW1lIGFzIGxsdm0gbGliIHBhdGgKLS1hZGRfb25lX2xpYigiY2xhbmdDb2RlR2Vu IikKLS1hZGRfb25lX2xpYigiY2xhbmdGcm9udGVuZCIpCi0tYWRkX29uZV9saWIoImNsYW5nU2Vy aWFsaXphdGlvbiIpCi0tYWRkX29uZV9saWIoImNsYW5nRHJpdmVyIikKLS1hZGRfb25lX2xpYigi Y2xhbmdTZW1hIikKLS1hZGRfb25lX2xpYigiY2xhbmdTdGF0aWNBbmFseXplckZyb250ZW5kIikK LS1hZGRfb25lX2xpYigiY2xhbmdTdGF0aWNBbmFseXplckNoZWNrZXJzIikKLS1hZGRfb25lX2xp YigiY2xhbmdTdGF0aWNBbmFseXplckNvcmUiKQotLWFkZF9vbmVfbGliKCJjbGFuZ0FuYWx5c2lz IikKLS1hZGRfb25lX2xpYigiY2xhbmdFZGl0IikKLS1hZGRfb25lX2xpYigiY2xhbmdBU1QiKQot LWFkZF9vbmVfbGliKCJjbGFuZ0FTVE1hdGNoZXJzIikKLS1hZGRfb25lX2xpYigiY2xhbmdQYXJz ZSIpCi0tYWRkX29uZV9saWIoImNsYW5nU2VtYSIpCi0tYWRkX29uZV9saWIoImNsYW5nTGV4IikK LS1hZGRfb25lX2xpYigiY2xhbmdCYXNpYyIpCi0rYWRkX29uZV9saWIoImNsYW5nLWNwcCIpCi1k aWZmIC0tZ2l0IENNYWtlTGlzdHMudHh0IENNYWtlTGlzdHMudHh0Ci1pbmRleCBjMTFhY2JiLi4w OGY0MjdkIDEwMDY0NAotLS0tIGEvQ01ha2VMaXN0cy50eHQKLSsrKyBiL0NNYWtlTGlzdHMudHh0 Ci1AQCAtNzksNyArNzksNyBAQCBlbHNlaWYgKENPTVBJTEVSIFNUUkVRVUFMICJDTEFORyIpCi0g ZWxzZWlmIChDT01QSUxFUiBTVFJFUVVBTCAiSUNDIikKLSAgIHNldCAoQ01BS0VfQ19DWFhfRkxB R1MgIiR7Q01BS0VfQ19DWFhfRkxBR1N9ICAtd2QyOTI4IC1XYWxsIC1mUElDIC1mc3RyaWN0LWFs aWFzaW5nIC1mcC1tb2RlbCBmYXN0IC1tc3NlNC4xIC1XbCwtRSIpCi0gZW5kaWYgKCkKLS1zZXQg KENNQUtFX0NYWF9GTEFHUyAiJHtDTUFLRV9DWFhfRkxBR1N9ICR7Q01BS0VfQ19DWFhfRkxBR1N9 IC1zdGQ9YysrMHggLVduby1pbnZhbGlkLW9mZnNldG9mIikKLStzZXQgKENNQUtFX0NYWF9GTEFH UyAiJHtDTUFLRV9DWFhfRkxBR1N9ICR7Q01BS0VfQ19DWFhfRkxBR1N9IC1Xbm8taW52YWxpZC1v ZmZzZXRvZiIpCi0gc2V0IChDTUFLRV9DX0ZMQUdTICIke0NNQUtFX0NfRkxBR1N9ICR7Q01BS0Vf Q19DWFhfRkxBR1N9IikKLSBzZXQgKENNQUtFX0NYWF9GTEFHU19ERUJVRyAgICAgICAgICAiLU8w IC1nIC1ER0JFX0RFQlVHPTEiKQotIHNldCAoQ01BS0VfQ1hYX0ZMQUdTX1JFTFdJVEhERUJJTkZP ICItTzIgLWcgLURHQkVfREVCVUc9MSIpCi1kaWZmIC0tZ2l0IGJhY2tlbmQvc3JjL2JhY2tlbmQv cHJvZ3JhbS5jcHAgYmFja2VuZC9zcmMvYmFja2VuZC9wcm9ncmFtLmNwcAotaW5kZXggYjM2Zjdi NC4uZTY2NjAzMSAxMDA2NDQKLS0tLSBhL2JhY2tlbmQvc3JjL2JhY2tlbmQvcHJvZ3JhbS5jcHAK LSsrKyBiL2JhY2tlbmQvc3JjL2JhY2tlbmQvcHJvZ3JhbS5jcHAKLUBAIC02OTQsOSArNjk0LDkg QEAgbmFtZXNwYWNlIGdiZSB7Ci0gI2VuZGlmCi0gICAgICAgICAgICAgICAgICk7Ci0gCi0rICAg IGxsdm06OmNsOjpSZXNldEFsbE9wdGlvbk9jY3VycmVuY2VzKCk7Ci0gICAgIGNsYW5nOjpDb21w aWxlckludm9jYXRpb246OkNyZWF0ZUZyb21BcmdzKCpDSSwKLS0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgJmFyZ3NbMF0sCi0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICZhcmdzWzBdICsgYXJncy5zaXplKCksCi0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYW5nOjpBcnJheVJl Zjxjb25zdCBjaGFyKj4oYXJncyksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIERpYWdzKTsKLSAgICAgLy8gQ3JlYXRlIHRoZSBjb21waWxlciBpbnN0YW5j ZQotICAgICBjbGFuZzo6Q29tcGlsZXJJbnN0YW5jZSBDbGFuZzsKLUBAIC0xMjQyLDggKzEyNDIs NyBAQCBFWFRFTkRfUVVPVEU6Ci0gICAgICAgLy8gQ3JlYXRlIHRoZSBjb21waWxlciBpbnZvY2F0 aW9uCi0gICAgICAgc3RkOjp1bmlxdWVfcHRyPGNsYW5nOjpDb21waWxlckludm9jYXRpb24+IENJ KG5ldyBjbGFuZzo6Q29tcGlsZXJJbnZvY2F0aW9uKTsKLSAgICAgICByZXR1cm4gY2xhbmc6OkNv bXBpbGVySW52b2NhdGlvbjo6Q3JlYXRlRnJvbUFyZ3MoKkNJLAotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmYXJnc1swXSwKLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmFyZ3NbMF0g KyBhcmdzLnNpemUoKSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgY2xhbmc6OkFycmF5UmVmPGNvbnN0IGNoYXIqPihhcmdzKSwKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGlhZ3Mp OwotICAgICB9Ci0gI2VuZGlmCi1kaWZmIC0tZ2l0IGJhY2tlbmQvc3JjL2xsdm0vbGx2bV9nZW5f YmFja2VuZC5jcHAgYmFja2VuZC9zcmMvbGx2bS9sbHZtX2dlbl9iYWNrZW5kLmNwcAotaW5kZXgg YzZmYzMwZC4uODI0NDFkOCAxMDA2NDQKLS0tLSBhL2JhY2tlbmQvc3JjL2xsdm0vbGx2bV9nZW5f YmFja2VuZC5jcHAKLSsrKyBiL2JhY2tlbmQvc3JjL2xsdm0vbGx2bV9nZW5fYmFja2VuZC5jcHAK LUBAIC01NzUsMTAgKzU3NSwxMiBAQCBuYW1lc3BhY2UgZ2JlCi0gICAgICAgICBoYXNfZXJyb3Jz KGZhbHNlKSwKLSAgICAgICAgIGxlZ2FjeU1vZGUodHJ1ZSkKLSAgICAgewotKyNpZiBMTFZNX1ZF UlNJT05fTUFKT1IgPCAxMAotICNpZiBMTFZNX1ZFUlNJT05fTUFKT1IgKiAxMCArIExMVk1fVkVS U0lPTl9NSU5PUiA+PSAzNwotICAgICAgIGluaXRpYWxpemVMb29wSW5mb1dyYXBwZXJQYXNzUGFz cygqUGFzc1JlZ2lzdHJ5OjpnZXRQYXNzUmVnaXN0cnkoKSk7Ci0gI2Vsc2UKLSAgICAgICBpbml0 aWFsaXplTG9vcEluZm9QYXNzKCpQYXNzUmVnaXN0cnk6OmdldFBhc3NSZWdpc3RyeSgpKTsKLSsj ZW5kaWYKLSAjZW5kaWYKLSAgICAgICBwYXNzID0gUEFTU19FTUlUX1JFR0lTVEVSUzsKLSAgICAg fQotZGlmZiAtLWdpdCBiYWNrZW5kL3NyYy9sbHZtL2xsdm1fZ2VuX2JhY2tlbmQuaHBwIGJhY2tl bmQvc3JjL2xsdm0vbGx2bV9nZW5fYmFja2VuZC5ocHAKLWluZGV4IGI0NzE1YjEuLjhlNzRmN2Eg MTAwNjQ0Ci0tLS0gYS9iYWNrZW5kL3NyYy9sbHZtL2xsdm1fZ2VuX2JhY2tlbmQuaHBwCi0rKysg Yi9iYWNrZW5kL3NyYy9sbHZtL2xsdm1fZ2VuX2JhY2tlbmQuaHBwCi1AQCAtMTMwLDEwICsxMzAs MTAgQEAgbmFtZXNwYWNlIGdiZQotICAgbGx2bTo6RnVuY3Rpb25QYXNzICpjcmVhdGVHZW5QYXNz KGlyOjpVbml0ICZ1bml0KTsKLSAKLSAgIC8qISBSZW1vdmUgdGhlIEdFUCBpbnN0cnVjdGlvbnMg Ki8KLS0gIGxsdm06OkJhc2ljQmxvY2tQYXNzICpjcmVhdGVSZW1vdmVHRVBQYXNzKGNvbnN0IGly OjpVbml0ICZ1bml0KTsKLSsgIGxsdm06OkZ1bmN0aW9uUGFzcyAqY3JlYXRlUmVtb3ZlR0VQUGFz cyhjb25zdCBpcjo6VW5pdCAmdW5pdCk7Ci0gCi0gICAvKiEgTWVyZ2UgbG9hZC9zdG9yZSBpZiBw b3NzaWJsZSAqLwotLSAgbGx2bTo6QmFzaWNCbG9ja1Bhc3MgKmNyZWF0ZUxvYWRTdG9yZU9wdGlt aXphdGlvblBhc3MoKTsKLSsgIGxsdm06OkZ1bmN0aW9uUGFzcyAqY3JlYXRlTG9hZFN0b3JlT3B0 aW1pemF0aW9uUGFzcygpOwotIAotICAgLyohIFNjYWxhcml6ZSBhbGwgdmVjdG9yIG9wIGluc3Ry dWN0aW9ucyAqLwotICAgbGx2bTo6RnVuY3Rpb25QYXNzKiBjcmVhdGVTY2FsYXJpemVQYXNzKCk7 Ci1AQCAtMTQxLDcgKzE0MSw3IEBAIG5hbWVzcGFjZSBnYmUKLSAgIGxsdm06Ok1vZHVsZVBhc3Mq IGNyZWF0ZUJhcnJpZXJOb2R1cFBhc3MoYm9vbCk7Ci0gCi0gICAvKiEgQ29udmVydCB0aGUgSW50 cmluc2ljIGNhbGwgdG8gZ2VuIGZ1bmN0aW9uICovCi0tICBsbHZtOjpCYXNpY0Jsb2NrUGFzcyAq Y3JlYXRlSW50cmluc2ljTG93ZXJpbmdQYXNzKCk7Ci0rICBsbHZtOjpGdW5jdGlvblBhc3MgKmNy ZWF0ZUludHJpbnNpY0xvd2VyaW5nUGFzcygpOwotIAotICAgLyohIFBhc3NlciB0aGUgcHJpbnRm IGZ1bmN0aW9uIGNhbGwuICovCi0gICBsbHZtOjpGdW5jdGlvblBhc3MqIGNyZWF0ZVByaW50ZlBh cnNlclBhc3MoaXI6OlVuaXQgJnVuaXQpOwotZGlmZiAtLWdpdCBiYWNrZW5kL3NyYy9sbHZtL2xs dm1faW50cmluc2ljX2xvd2VyaW5nLmNwcCBiYWNrZW5kL3NyYy9sbHZtL2xsdm1faW50cmluc2lj X2xvd2VyaW5nLmNwcAotaW5kZXggOTRmMGNlNi4uYjU1MzllOSAxMDA2NDQKLS0tLSBhL2JhY2tl bmQvc3JjL2xsdm0vbGx2bV9pbnRyaW5zaWNfbG93ZXJpbmcuY3BwCi0rKysgYi9iYWNrZW5kL3Ny Yy9sbHZtL2xsdm1faW50cmluc2ljX2xvd2VyaW5nLmNwcAotQEAgLTI5LDEyICsyOSwxMiBAQAot IHVzaW5nIG5hbWVzcGFjZSBsbHZtOwotIAotIG5hbWVzcGFjZSBnYmUgewotLSAgICBjbGFzcyBJ bnN0cmluc2ljTG93ZXJpbmcgOiBwdWJsaWMgQmFzaWNCbG9ja1Bhc3MKLSsgICAgY2xhc3MgSW5z dHJpbnNpY0xvd2VyaW5nIDogcHVibGljIEZ1bmN0aW9uUGFzcwotICAgICB7Ci0gICAgIHB1Ymxp YzoKLSAgICAgICBzdGF0aWMgY2hhciBJRDsKLSAgICAgICBJbnN0cmluc2ljTG93ZXJpbmcoKSA6 Ci0tICAgICAgICBCYXNpY0Jsb2NrUGFzcyhJRCkge30KLSsgICAgICAgIEZ1bmN0aW9uUGFzcyhJ RCkge30KLSAKLSAgICAgICB2b2lkIGdldEFuYWx5c2lzVXNhZ2UoQW5hbHlzaXNVc2FnZSAmQVUp IGNvbnN0IHsKLSAKLUBAIC05Myw5ICs5Myw5IEBAIG5hbWVzcGFjZSBnYmUgewotICAgICAgICAg Q0ktPmVyYXNlRnJvbVBhcmVudCgpOwotICAgICAgICAgcmV0dXJuIE5ld0NJOwotICAgICAgIH0K LS0gICAgICB2aXJ0dWFsIGJvb2wgcnVuT25CYXNpY0Jsb2NrKEJhc2ljQmxvY2sgJkJCKQotKyAg ICAgIHZpcnR1YWwgYm9vbCBydW5PbkZ1bmN0aW9uKEZ1bmN0aW9uICZGKQotICAgICAgIHsKLS0g ICAgICAgIGJvb2wgY2hhbmdlZEJsb2NrID0gZmFsc2U7Ci0rICAgICAgICBmb3IgKEJhc2ljQmxv Y2sgJkJCIDogRikgewotICAgICAgICAgTW9kdWxlICpNID0gQkIuZ2V0UGFyZW50KCktPmdldFBh cmVudCgpOwotIAotICAgICAgICAgRGF0YUxheW91dCBURChNKTsKLUBAIC0xNTksMTMgKzE1OSwx NCBAQCBuYW1lc3BhY2UgZ2JlIHsKLSAgICAgICAgICAgICB9Ci0gICAgICAgICAgIH0KLSAgICAg ICAgIH0KLS0gICAgICAgIHJldHVybiBjaGFuZ2VkQmxvY2s7Ci0rICAgICAgICB9Ci0rICAgICAg ICByZXR1cm4gdHJ1ZTsKLSAgICAgICB9Ci0gICAgIH07Ci0gCi0gICAgIGNoYXIgSW5zdHJpbnNp Y0xvd2VyaW5nOjpJRCA9IDA7Ci0gCi0tICAgIEJhc2ljQmxvY2tQYXNzICpjcmVhdGVJbnRyaW5z aWNMb3dlcmluZ1Bhc3MoKSB7Ci0rICAgIEZ1bmN0aW9uUGFzcyAqY3JlYXRlSW50cmluc2ljTG93 ZXJpbmdQYXNzKCkgewotICAgICAgIHJldHVybiBuZXcgSW5zdHJpbnNpY0xvd2VyaW5nKCk7Ci0g ICAgIH0KLSB9IC8vIGVuZCBuYW1lc3BhY2UKLWRpZmYgLS1naXQgYmFja2VuZC9zcmMvbGx2bS9s bHZtX2xvYWRzdG9yZV9vcHRpbWl6YXRpb24uY3BwIGJhY2tlbmQvc3JjL2xsdm0vbGx2bV9sb2Fk c3RvcmVfb3B0aW1pemF0aW9uLmNwcAotaW5kZXggNWFhMzhiZS4uZTMxNDMwMiAxMDA2NDQKLS0t LSBhL2JhY2tlbmQvc3JjL2xsdm0vbGx2bV9sb2Fkc3RvcmVfb3B0aW1pemF0aW9uLmNwcAotKysr IGIvYmFja2VuZC9zcmMvbGx2bS9sbHZtX2xvYWRzdG9yZV9vcHRpbWl6YXRpb24uY3BwCi1AQCAt MjYsMTMgKzI2LDEzIEBACi0gCi0gdXNpbmcgbmFtZXNwYWNlIGxsdm07Ci0gbmFtZXNwYWNlIGdi ZSB7Ci0tICBjbGFzcyBHZW5Mb2FkU3RvcmVPcHRpbWl6YXRpb24gOiBwdWJsaWMgQmFzaWNCbG9j a1Bhc3MgewotKyAgY2xhc3MgR2VuTG9hZFN0b3JlT3B0aW1pemF0aW9uIDogcHVibGljIEZ1bmN0 aW9uUGFzcyB7Ci0gCi0gICBwdWJsaWM6Ci0gICAgIHN0YXRpYyBjaGFyIElEOwotICAgICBTY2Fs YXJFdm9sdXRpb24gKlNFOwotICAgICBjb25zdCBEYXRhTGF5b3V0ICpURDsKLS0gICAgR2VuTG9h ZFN0b3JlT3B0aW1pemF0aW9uKCkgOiBCYXNpY0Jsb2NrUGFzcyhJRCkge30KLSsgICAgR2VuTG9h ZFN0b3JlT3B0aW1pemF0aW9uKCkgOiBGdW5jdGlvblBhc3MoSUQpIHt9Ci0gCi0gICAgIHZvaWQg Z2V0QW5hbHlzaXNVc2FnZShBbmFseXNpc1VzYWdlICZBVSkgY29uc3QgewotICNpZiBMTFZNX1ZF UlNJT05fTUFKT1IgKiAxMCArIExMVk1fVkVSU0lPTl9NSU5PUiA+PSAzOAotQEAgLTQ1LDcgKzQ1 LDkgQEAgbmFtZXNwYWNlIGdiZSB7Ci0gICAgICAgQVUuc2V0UHJlc2VydmVzQ0ZHKCk7Ci0gICAg IH0KLSAKLS0gICAgdmlydHVhbCBib29sIHJ1bk9uQmFzaWNCbG9jayhCYXNpY0Jsb2NrICZCQikg ewotKyAgICB2aXJ0dWFsIGJvb2wgcnVuT25GdW5jdGlvbihGdW5jdGlvbiAmRikgewotKyAgICAg ICAgYm9vbCBjaGFuZ2VkQW55QmxvY2sgPSBmYWxzZTsKLSsgICAgICAgIGZvciAoQmFzaWNCbG9j ayAmQkIgOiBGKSB7Ci0gI2lmIExMVk1fVkVSU0lPTl9NQUpPUiAqIDEwICsgTExWTV9WRVJTSU9O X01JTk9SID49IDM4Ci0gICAgICAgU0UgPSAmZ2V0QW5hbHlzaXM8U2NhbGFyRXZvbHV0aW9uV3Jh cHBlclBhc3M+KCkuZ2V0U0UoKTsKLSAjZWxzZQotQEAgLTU5LDcgKzYxLDkgQEAgbmFtZXNwYWNl IGdiZSB7Ci0gICAgICAgI2Vsc2UKLSAgICAgICAgIFREID0gZ2V0QW5hbHlzaXNJZkF2YWlsYWJs ZTxEYXRhTGF5b3V0PigpOwotICAgICAgICNlbmRpZgotLSAgICAgIHJldHVybiBvcHRpbWl6ZUxv YWRTdG9yZShCQik7Ci0rICAgICAgICAgICBjaGFuZ2VkQW55QmxvY2sgPSBvcHRpbWl6ZUxvYWRT dG9yZShCQikgfCBjaGFuZ2VkQW55QmxvY2s7Ci0rICAgICAgICB9Ci0rICAgICAgICByZXR1cm4g Y2hhbmdlZEFueUJsb2NrOwotICAgICB9Ci0gICAgIFR5cGUgICAgKmdldFZhbHVlVHlwZShWYWx1 ZSAqaW5zbik7Ci0gICAgIFZhbHVlICAgKmdldFBvaW50ZXJPcGVyYW5kKFZhbHVlICpJKTsKLUBA IC0xNDgsNyArMTUyLDcgQEAgbmFtZXNwYWNlIGdiZSB7Ci0gICAgICAgdmFsdWVzLnB1c2hfYmFj ayhtZXJnZWRbaV0pOwotICAgICB9Ci0gICAgIExvYWRJbnN0ICpsZCA9IGNhc3Q8TG9hZEluc3Q+ KG1lcmdlZFswXSk7Ci0tICAgIHVuc2lnbmVkIGFsaWduID0gbGQtPmdldEFsaWdubWVudCgpOwot KyAgICBNYXliZUFsaWduIGFsaWduID0gbGQtPmdldEFsaWduKCk7Ci0gICAgIHVuc2lnbmVkIGFk ZHJTcGFjZSA9IGxkLT5nZXRQb2ludGVyQWRkcmVzc1NwYWNlKCk7Ci0gICAgIC8vIGluc2VydCBi ZWZvcmUgZmlyc3QgbG9hZAotICAgICBCdWlsZGVyLlNldEluc2VydFBvaW50KGxkKTsKLUBAIC0y MzEsNyArMjM1LDcgQEAgbmFtZXNwYWNlIGdiZSB7Ci0gCi0gICAgIHVuc2lnbmVkIGFkZHJTcGFj ZSA9IHN0LT5nZXRQb2ludGVyQWRkcmVzc1NwYWNlKCk7Ci0gCi0tICAgIHVuc2lnbmVkIGFsaWdu ID0gc3QtPmdldEFsaWdubWVudCgpOwotKyAgICBNYXliZUFsaWduIGFsaWduID0gc3QtPmdldEFs aWduKCk7Ci0gICAgIC8vIGluc2VydCBiZWZvcmUgdGhlIGxhc3Qgc3RvcmUKLSAgICAgQnVpbGRl ci5TZXRJbnNlcnRQb2ludChtZXJnZWRbc2l6ZS0xXSk7Ci0gCi1AQCAtMzI1LDcgKzMyOSw3IEBA IG5hbWVzcGFjZSBnYmUgewotICAgICByZXR1cm4gY2hhbmdlZDsKLSAgIH0KLSAKLS0gIEJhc2lj QmxvY2tQYXNzICpjcmVhdGVMb2FkU3RvcmVPcHRpbWl6YXRpb25QYXNzKCkgewotKyAgRnVuY3Rp b25QYXNzICpjcmVhdGVMb2FkU3RvcmVPcHRpbWl6YXRpb25QYXNzKCkgewotICAgICByZXR1cm4g bmV3IEdlbkxvYWRTdG9yZU9wdGltaXphdGlvbigpOwotICAgfQotIH07Ci1kaWZmIC0tZ2l0IGJh Y2tlbmQvc3JjL2xsdm0vbGx2bV9wYXNzZXMuY3BwIGJhY2tlbmQvc3JjL2xsdm0vbGx2bV9wYXNz ZXMuY3BwCi1pbmRleCAxMDc1MmEzLi5iOGYyMjgyIDEwMDY0NAotLS0tIGEvYmFja2VuZC9zcmMv bGx2bS9sbHZtX3Bhc3Nlcy5jcHAKLSsrKyBiL2JhY2tlbmQvc3JjL2xsdm0vbGx2bV9wYXNzZXMu Y3BwCi1AQCAtMzcsNyArMzcsNyBAQAotICNpbmNsdWRlICJzeXMvbWFwLmhwcCIKLSAKLSB1c2lu ZyBuYW1lc3BhY2UgbGx2bTsKLS0KLSt0ZW1wbGF0ZSBjbGFzcyBjZmc6OlVwZGF0ZTxCYXNpY0Js b2NrICo+OwotIG5hbWVzcGFjZSBnYmUKLSB7Ci0gICBib29sIGlzS2VybmVsRnVuY3Rpb24oY29u c3QgbGx2bTo6RnVuY3Rpb24gJkYpIHsKLUBAIC0yMTksMTMgKzIxOSwxMyBAQCBuYW1lc3BhY2Ug Z2JlCi0gICAgIHJldHVybiBvZmZzZXQ7Ci0gICB9Ci0gCi0tICBjbGFzcyBHZW5SZW1vdmVHRVBQ YXNzcyA6IHB1YmxpYyBCYXNpY0Jsb2NrUGFzcwotKyAgY2xhc3MgR2VuUmVtb3ZlR0VQUGFzc3Mg OiBwdWJsaWMgRnVuY3Rpb25QYXNzCi0gICB7Ci0gCi0gICAgcHVibGljOgotICAgICBzdGF0aWMg Y2hhciBJRDsKLSAgICAgR2VuUmVtb3ZlR0VQUGFzc3MoY29uc3QgaXI6OlVuaXQgJnVuaXQpIDoK LS0gICAgICBCYXNpY0Jsb2NrUGFzcyhJRCksCi0rICAgICAgRnVuY3Rpb25QYXNzKElEKSwKLSAg ICAgICB1bml0KHVuaXQpIHt9Ci0gICAgIGNvbnN0IGlyOjpVbml0ICZ1bml0OwotICAgICB2b2lk IGdldEFuYWx5c2lzVXNhZ2UoQW5hbHlzaXNVc2FnZSAmQVUpIGNvbnN0IHsKLUBAIC0yNDIsMTYg KzI0MiwxOCBAQCBuYW1lc3BhY2UgZ2JlCi0gCi0gICAgIGJvb2wgc2ltcGxpZnlHRVBJbnN0cnVj dGlvbnMoR2V0RWxlbWVudFB0ckluc3QqIEdFUEluc3QpOwotIAotLSAgICB2aXJ0dWFsIGJvb2wg cnVuT25CYXNpY0Jsb2NrKEJhc2ljQmxvY2sgJkJCKQotKyAgICB2aXJ0dWFsIGJvb2wgcnVuT25G dW5jdGlvbihGdW5jdGlvbiAmRikKLSAgICAgewotLSAgICAgIGJvb2wgY2hhbmdlZEJsb2NrID0g ZmFsc2U7Ci0rICAgICAgYm9vbCBjaGFuZ2VkQW55QmxvY2sgPSBmYWxzZTsKLSsgICAgICAgIGZv ciAoQmFzaWNCbG9jayAmQkIgOiBGKSB7Ci0gICAgICAgaXBsaXN0PEluc3RydWN0aW9uPjo6aXRl cmF0b3IgSSA9IEJCLmdldEluc3RMaXN0KCkuYmVnaW4oKTsKLSAgICAgICBmb3IgKGF1dG8gbmV4 dEkgPSBJLCBFID0gLS1CQi5nZXRJbnN0TGlzdCgpLmVuZCgpOyBJICE9IEU7IEkgPSBuZXh0SSkg ewotICAgICAgICAgaXBsaXN0PEluc3RydWN0aW9uPjo6aXRlcmF0b3IgSSA9IG5leHRJKys7Ci0g ICAgICAgICBpZihHZXRFbGVtZW50UHRySW5zdCogZ2VwID0gZHluX2Nhc3Q8R2V0RWxlbWVudFB0 ckluc3Q+KCYqSSkpCi0tICAgICAgICAgIGNoYW5nZWRCbG9jayA9IChzaW1wbGlmeUdFUEluc3Ry dWN0aW9ucyhnZXApIHx8IGNoYW5nZWRCbG9jayk7Ci0rICAgICAgICAgIGNoYW5nZWRBbnlCbG9j ayA9IChzaW1wbGlmeUdFUEluc3RydWN0aW9ucyhnZXApIHwgY2hhbmdlZEFueUJsb2NrKTsKLSAg ICAgICB9Ci0tICAgICAgcmV0dXJuIGNoYW5nZWRCbG9jazsKLSsgICAgICAgIH0KLSsgICAgICBy ZXR1cm4gY2hhbmdlZEFueUJsb2NrOwotICAgICB9Ci0gICB9OwotIAotQEAgLTM2Nyw3ICszNjks NyBAQCBuYW1lc3BhY2UgZ2JlCi0gICAgIHJldHVybiB0cnVlOwotICAgfQotIAotLSAgQmFzaWNC bG9ja1Bhc3MgKmNyZWF0ZVJlbW92ZUdFUFBhc3MoY29uc3QgaXI6OlVuaXQgJnVuaXQpIHsKLSsg IEZ1bmN0aW9uUGFzcyAqY3JlYXRlUmVtb3ZlR0VQUGFzcyhjb25zdCBpcjo6VW5pdCAmdW5pdCkg ewotICAgICByZXR1cm4gbmV3IEdlblJlbW92ZUdFUFBhc3NzKHVuaXQpOwotICAgfQotIH0gLyog bmFtZXNwYWNlIGdiZSAqLwotZGlmZiAtLWdpdCBiYWNrZW5kL3NyYy9sbHZtL2xsdm1fc2FtcGxl cl9maXguY3BwIGJhY2tlbmQvc3JjL2xsdm0vbGx2bV9zYW1wbGVyX2ZpeC5jcHAKLWluZGV4IDJh MDk3YzguLjg2M2JlNmQgMTAwNjQ0Ci0tLS0gYS9iYWNrZW5kL3NyYy9sbHZtL2xsdm1fc2FtcGxl cl9maXguY3BwCi0rKysgYi9iYWNrZW5kL3NyYy9sbHZtL2xsdm1fc2FtcGxlcl9maXguY3BwCi1A QCAtMzMsMTAgKzMzLDEyIEBAIG5hbWVzcGFjZSBnYmUgewotICAgY2xhc3MgU2FtcGxlckZpeCA6 IHB1YmxpYyBGdW5jdGlvblBhc3MgewotICAgcHVibGljOgotICAgICBTYW1wbGVyRml4KCkgOiBG dW5jdGlvblBhc3MoSUQpIHsKLSsjaWYgTExWTV9WRVJTSU9OX01BSk9SIDwgMTAKLSAjaWYgTExW TV9WRVJTSU9OX01BSk9SICogMTAgKyBMTFZNX1ZFUlNJT05fTUlOT1IgPj0gMzUKLSAgICAgICBp bml0aWFsaXplRG9taW5hdG9yVHJlZVdyYXBwZXJQYXNzUGFzcygqUGFzc1JlZ2lzdHJ5OjpnZXRQ YXNzUmVnaXN0cnkoKSk7Ci0gI2Vsc2UKLSAgICAgICBpbml0aWFsaXplRG9taW5hdG9yVHJlZVBh c3MoKlBhc3NSZWdpc3RyeTo6Z2V0UGFzc1JlZ2lzdHJ5KCkpOwotKyNlbmRpZgotICNlbmRpZgot ICAgICB9Ci0gCi1kaWZmIC0tZ2l0IGJhY2tlbmQvc3JjL2xsdm0vbGx2bV9zY2FsYXJpemUuY3Bw IGJhY2tlbmQvc3JjL2xsdm0vbGx2bV9zY2FsYXJpemUuY3BwCi1pbmRleCBlOWEyYTY2Li5lOWQy ZWU0IDEwMDY0NAotLS0tIGEvYmFja2VuZC9zcmMvbGx2bS9sbHZtX3NjYWxhcml6ZS5jcHAKLSsr KyBiL2JhY2tlbmQvc3JjL2xsdm0vbGx2bV9zY2FsYXJpemUuY3BwCi1AQCAtOTYsMTAgKzk2LDEy IEBAIG5hbWVzcGFjZSBnYmUgewotIAotICAgICBTY2FsYXJpemUoKSA6IEZ1bmN0aW9uUGFzcyhJ RCkKLSAgICAgewotKyNpZiBMTFZNX1ZFUlNJT05fTUFKT1IgPCAxMAotICNpZiBMTFZNX1ZFUlNJ T05fTUFKT1IgKiAxMCArIExMVk1fVkVSU0lPTl9NSU5PUiA+PSAzNQotICAgICAgIGluaXRpYWxp emVEb21pbmF0b3JUcmVlV3JhcHBlclBhc3NQYXNzKCpQYXNzUmVnaXN0cnk6OmdldFBhc3NSZWdp c3RyeSgpKTsKLSAjZWxzZQotICAgICAgIGluaXRpYWxpemVEb21pbmF0b3JUcmVlUGFzcygqUGFz c1JlZ2lzdHJ5OjpnZXRQYXNzUmVnaXN0cnkoKSk7Ci0rI2VuZGlmCi0gI2VuZGlmCi0gICAgIH0K LSAKLWRpZmYgLS1naXQgdXRlc3RzL0NNYWtlTGlzdHMudHh0IHV0ZXN0cy9DTWFrZUxpc3RzLnR4 dAotaW5kZXggMzAwZDg3YS4uNjQxNzljNyAxMDA2NDQKLS0tLSBhL3V0ZXN0cy9DTWFrZUxpc3Rz LnR4dAotKysrIGIvdXRlc3RzL0NNYWtlTGlzdHMudHh0Ci1AQCAtMjYsOCArMjYsOCBAQCBpZiAo Tk9UIE5PVF9CVUlMRF9TVEFORF9BTE9ORV9VVEVTVCkKLSAgICMgVGhyZWFkcwotICAgRmluZF9Q YWNrYWdlKFRocmVhZHMpCi0gCi0tICBzZXQgKENNQUtFX0NYWF9GTEFHUyAiJHtDTUFLRV9DWFhf RkxBR1N9ICR7Q01BS0VfQ19DWFhfRkxBR1N9IC1zdGQ9YysrMHggLVduby1pbnZhbGlkLW9mZnNl dG9mIikKLS0gIHNldCAoQ01BS0VfQ19GTEFHUyAiJHtDTUFLRV9DX0ZMQUdTfSAke0NNQUtFX0Nf Q1hYX0ZMQUdTfSIpCi0rICBzZXQgKENNQUtFX0NYWF9GTEFHUyAiJHtDTUFLRV9DWFhfRkxBR1N9 ICR7Q01BS0VfQ19DWFhfRkxBR1N9IC1Xbm8taW52YWxpZC1vZmZzZXRvZiAtZmZsb2F0LXN0b3Jl IC1mbm8tc3RyaWN0LWFsaWFzaW5nIikKLSsgIHNldCAoQ01BS0VfQ19GTEFHUyAiJHtDTUFLRV9D X0ZMQUdTfSAke0NNQUtFX0NfQ1hYX0ZMQUdTfSAtZmZsb2F0LXN0b3JlIC1mbm8tc3RyaWN0LWFs aWFzaW5nIikgI2NvbXBpbGVyX3tkZWdyZWVzLHJhZGlhbnMsZnVuY3Rpb25fYXJndW1lbnQyfSB1 c2UgZXF1YWxpdHkgY29tcGFyaXNvbiBvZiBmbG9hdHMsIGNvbXBpbGVyX2xvbmdfYml0Y2FzdCB1 c2VzIGFsaWFzaW5nCi0gICBzZXQgKENNQUtFX0NYWF9GTEFHU19ERUJVRyAgICAgICAgICAiLU8w IC1nIC1ER0JFX0RFQlVHPTEiKQotICAgc2V0IChDTUFLRV9DWFhfRkxBR1NfUkVMV0lUSERFQklO Rk8gIi1PMiAtZyAtREdCRV9ERUJVRz0xIikKLSAgIHNldCAoQ01BS0VfQ1hYX0ZMQUdTX01JTlNJ WkVSRUwgICAgICItT3MgLUROREVCVUcgLURHQkVfREVCVUc9MCIpCmRpZmYgLS1naXQgYS9zcmNw a2dzL2JlaWduZXQvcGF0Y2hlcy9sbHZtMTEucGF0Y2ggYi9zcmNwa2dzL2JlaWduZXQvcGF0Y2hl cy9sbHZtMTEucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJjM2E0Mjc4OTQz Yy4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvYmVpZ25ldC9wYXRjaGVzL2xsdm0xMS5wYXRj aAorKysgL2Rldi9udWxsCkBAIC0xLDkzNyArMCwwIEBACi1Tb3VyY2U6IFNuZWt0cm9uCi0KLVRo ZXJlIHdlcmUgYSBmZXcgY2hhbmdlcyByZXF1aXJlZCBmb3IgTExWTSAxMToKLSogbGx2bTo6U3Ry aW5nUmVmIHJlcXVpcmVzIC5zdHIoKSwgaW1wbGljaXQgY29udmVyc2lvbiB3YXMgcmVtb3ZlZAot KiBsbHZtOjpDYWxsU2l0ZSB3YXMgcmVtb3ZlZCwgYnV0IHRoZSByZXF1aXJlZCBtZXRob2RzIGFy ZSBhdmFpbGFibGUgb24gbGx2bTo6Q2FsbEluc3QKLSogVmVjdG9yVHlJRCB3YXMgc3BsaXQgaW50 byBGaXhlZFZlY3RvclR5SUQgYW5kIFNjYWxhYmxlVmVjdG9yVHlJRCwgRml4ZWRWZWN0b3JUeUlE IHdhcyB1c2VkCi0qIENhbGxJbnN0OjpnZXRDYWxsZWRWYWx1ZSgpIHdhcyByZW5hbWVkIHRvIENh bGxJbnN0OjpnZXRDYWxsZWRPcGVyYW5kKCkKLSogSW1wbGljaXQgY29udmVyc2lvbiBmcm9tIE1h eWJlQWxpZ24gdG8gQWxpZ24gd2FzIHJlbW92ZWQsIHNvIE1heWJlQWxpZ246OnZhbHVlT3JPbmUg d2FzIHVzZWQgaW5zdGVhZC4KLQotLS0tIGEvYmFja2VuZC9zcmMvbGx2bS9TdHJpcEF0dHJpYnV0 ZXMuY3BwCTIwMjAtMTEtMDkgMTY6NDg6MjAuODIzODY2MTEyICswMTAwCi0rKysgYi9iYWNrZW5k L3NyYy9sbHZtL1N0cmlwQXR0cmlidXRlcy5jcHAJMjAyMC0xMS0wOSAxOTowNDoxOS42NDE4OTcx NDEgKzAxMDAKLUBAIC0xMDcsOSArMTA3LDggQEAKLSAgICAgICAgQkIgIT0gRTsgKytCQikgewot ICAgICBmb3IgKEJhc2ljQmxvY2s6Oml0ZXJhdG9yIEluc3QgPSBCQi0+YmVnaW4oKSwgRSA9IEJC LT5lbmQoKTsKLSAgICAgICAgICBJbnN0ICE9IEU7ICsrSW5zdCkgewotLSAgICAgIENhbGxTaXRl IENhbGwoJipJbnN0KTsKLS0gICAgICBpZiAoQ2FsbCkKLS0gICAgICAgIENhbGwuc2V0Q2FsbGlu Z0NvbnYoQ2FsbGluZ0NvbnY6OkMpOwotKyAgICAgIGlmIChDYWxsSW5zdCogY2FsbEluc3QgPSBk eW5fY2FzdDxDYWxsSW5zdD4oJipJbnN0KSkKLSsgICAgICAgIGNhbGxJbnN0LT5zZXRDYWxsaW5n Q29udihDYWxsaW5nQ29udjo6Qyk7Ci0gICAgIH0KLSAgIH0KLQotLS0tIGEvYmFja2VuZC9zcmMv bGx2bS9sbHZtX2JpdGNvZGVfbGluay5jcHAJMjAyMC0xMS0wOSAxNjo0ODoyMC44MjM4NjYxMTIg KzAxMDAKLSsrKyBiL2JhY2tlbmQvc3JjL2xsdm0vbGx2bV9iaXRjb2RlX2xpbmsuY3BwCTIwMjAt MTEtMDkgMTc6MDQ6MDkuNjMzNzUzNDI4ICswMTAwCi1AQCAtOTgsNyArOTgsNyBAQAotICAgICAg ICAgaWYgKGNhbGxGdW5jICYmIGNhbGxGdW5jLT5nZXRJbnRyaW5zaWNJRCgpICE9IDApCi0gICAg ICAgICAgIGNvbnRpbnVlOwotCi0tICAgICAgICBzdGQ6OnN0cmluZyBmbk5hbWUgPSBjYWxsLT5n ZXRDYWxsZWRWYWx1ZSgpLT5zdHJpcFBvaW50ZXJDYXN0cygpLT5nZXROYW1lKCk7Ci0rICAgICAg ICBzdGQ6OnN0cmluZyBmbk5hbWUgPSBjYWxsLT5nZXRDYWxsZWRPcGVyYW5kKCktPnN0cmlwUG9p bnRlckNhc3RzKCktPmdldE5hbWUoKS5zdHIoKTsKLQotICAgICAgICAgaWYgKCFNRlMuaW5zZXJ0 KGZuTmFtZSkuc2Vjb25kKSB7Ci0gICAgICAgICAgIGNvbnRpbnVlOwotLS0tIGEvYmFja2VuZC9z cmMvbGx2bS9sbHZtX2RldmljZV9lbnF1ZXVlLmNwcAkyMDIwLTExLTA5IDE2OjQ4OjIwLjgyMzg2 NjExMiArMDEwMAotKysrIGIvYmFja2VuZC9zcmMvbGx2bS9sbHZtX2RldmljZV9lbnF1ZXVlLmNw cAkyMDIwLTExLTA5IDE5OjAxOjQ5LjIwMTkxNTAwOCArMDEwMAotQEAgLTQ1LDcgKzQ1LDcgQEAK LSAgICAgICByZXR1cm4gTlVMTDsKLQotICAgICAvKiBUaGlzIGlzIGEgZmFrZSwgdG8gY2hlY2sg dGhlIGZ1bmN0aW9uIGJpdGNhc3QgaXMgZm9yIGJsb2NrIG9yIG5vdCAqLwotLSAgICBzdGQ6OnN0 cmluZyBmbk5hbWUgPSBGbi0+Z2V0TmFtZSgpOwotKyAgICBzdGQ6OnN0cmluZyBmbk5hbWUgPSBG bi0+Z2V0TmFtZSgpLnN0cigpOwotICAgICBpZihmbk5hbWUuZmluZCgiX2ludm9rZSIpID09IHN0 ZDo6c3RyaW5nOjpucG9zKQotICAgICAgIHJldHVybiBOVUxMOwotCi1AQCAtMTE5LDE4ICsxMTks MTggQEAKLSAgICAgICBQYXJhbVR5cy5wdXNoX2JhY2sodHkpOwotICAgICB9Ci0gICAgIEZ1bmN0 aW9uVHlwZSogTmV3RlQgPSBGdW5jdGlvblR5cGU6OmdldChGbi0+Z2V0UmV0dXJuVHlwZSgpLCBQ YXJhbVR5cywgZmFsc2UpOwotLSAgICBGdW5jdGlvbiogTmV3Rm4gPSBGdW5jdGlvbjo6Q3JlYXRl KE5ld0ZULCBGdW5jdGlvbjo6RXh0ZXJuYWxMaW5rYWdlLCBGbi0+Z2V0TmFtZSgpKTsKLSsgICAg RnVuY3Rpb24qIE5ld0ZuID0gRnVuY3Rpb246OkNyZWF0ZShOZXdGVCwgRnVuY3Rpb246OkV4dGVy bmFsTGlua2FnZSwgRm4tPmdldE5hbWUoKS5zdHIoKSk7Ci0gICAgIFNtYWxsVmVjdG9yPFJldHVy bkluc3QqLCA4PiBSZXR1cm5zOwotCi0gICAgIEZ1bmN0aW9uOjphcmdfaXRlcmF0b3IgTmV3Rm5B cmdJdCA9IE5ld0ZuLT5hcmdfYmVnaW4oKTsKLSAgICAgZm9yIChGdW5jdGlvbjo6YXJnX2l0ZXJh dG9yIEkgPSBGbi0+YXJnX2JlZ2luKCksIEUgPSBGbi0+YXJnX2VuZCgpOyBJICE9IEU7ICsrSSkg ewotLSAgICAgIHN0ZDo6c3RyaW5nIEFyZ05hbWUgPSBJLT5nZXROYW1lKCk7Ci0rICAgICAgc3Rk OjpzdHJpbmcgQXJnTmFtZSA9IEktPmdldE5hbWUoKS5zdHIoKTsKLSAgICAgICBOZXdGbkFyZ0l0 LT5zZXROYW1lKEFyZ05hbWUpOwotICAgICAgIFZNYXBbJipJXSA9ICYoKk5ld0ZuQXJnSXQrKyk7 Ci0gICAgIH0KLSAgICAgQ2xvbmVGdW5jdGlvbkludG8oTmV3Rm4sIEZuLCBWTWFwLCAvKk1vZHVs ZUxldmVsQ2hhbmdlcz0qL3RydWUsIFJldHVybnMpOwotCi0tICAgIEZuLT5zZXROYW1lKCJfX2Qi ICsgRm4tPmdldE5hbWUoKSk7Ci0rICAgIEZuLT5zZXROYW1lKCJfX2QiICsgRm4tPmdldE5hbWUo KS5zdHIoKSk7Ci0gICAgIG1vZC0+Z2V0RnVuY3Rpb25MaXN0KCkucHVzaF9iYWNrKE5ld0ZuKTsK LSAgICAgLy9tb2QtPmdldE9ySW5zZXJ0RnVuY3Rpb24oTmV3Rm4tPmdldE5hbWUoKSwgTmV3Rm4t PmdldEZ1bmN0aW9uVHlwZSgpLAotICAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgICBOZXdG bi0+Z2V0QXR0cmlidXRlcygpKTsKLUBAIC0xNDcsNyArMTQ3LDcgQEAKLSAgICAgICBhcmdUeXBl TmFtZXMucHVzaF9iYWNrKGxsdm06Ok1EU3RyaW5nOjpnZXQoQ29udGV4dCwgImNoYXIqIikpOwot ICAgICAgIGFyZ0Jhc2VUeXBlTmFtZXMucHVzaF9iYWNrKGxsdm06Ok1EU3RyaW5nOjpnZXQoQ29u dGV4dCwgImNoYXIqIikpOwotICAgICAgIGFyZ1R5cGVRdWFscy5wdXNoX2JhY2sobGx2bTo6TURT dHJpbmc6OmdldChDb250ZXh0LCAiIikpOwotLSAgICAgIGFyZ05hbWVzLnB1c2hfYmFjayhsbHZt OjpNRFN0cmluZzo6Z2V0KENvbnRleHQsIEktPmdldE5hbWUoKSkpOwotKyAgICAgIGFyZ05hbWVz LnB1c2hfYmFjayhsbHZtOjpNRFN0cmluZzo6Z2V0KENvbnRleHQsIEktPmdldE5hbWUoKS5zdHIo KSkpOwotICAgICB9Ci0KLSAgICAgLy9JZiBydW4gdG8gaGVyZSwgbGx2bSB2ZXJzaW9uIGFsd2F5 cyA+IDMuOSwgYWRkIHRoZSB2ZXJzaW9uIGNoZWNrIGp1c3QgZm9yIGJ1aWxkLgotQEAgLTE5OCw3 ICsxOTgsNyBAQAotICAgICAgICAgICAgKiBpbnZva2UgcG9pbnRlciB0byBzdG9yZSB0aGUgaW5k ZXggaW4gdGhlIHVuaXQncyBibG9jayBmdW5jdGlvbnMgaW5kZXguKi8KLSAgICAgICAgICAgRnVu Y3Rpb24gKkZuID0gZHluX2Nhc3Q8RnVuY3Rpb24+KGJ0LT5nZXRPcGVyYW5kKDApKTsKLQotLSAg ICAgICAgICBzdGQ6OnN0cmluZyBmbk5hbWUgPSBGbi0+Z2V0TmFtZSgpOwotKyAgICAgICAgICBz dGQ6OnN0cmluZyBmbk5hbWUgPSBGbi0+Z2V0TmFtZSgpLnN0cigpOwotICAgICAgICAgICBpbnQg aW5kZXggPSAtMTsKLSAgICAgICAgICAgZm9yKHNpemVfdCBpPTA7IGk8dW5pdC5ibG9ja0Z1bmNz LnNpemUoKTsgaSsrKSB7Ci0gICAgICAgICAgICAgaWYodW5pdC5ibG9ja0Z1bmNzW2ldID09IGZu TmFtZSkgewotQEAgLTI0MSw3ICsyNDEsNyBAQAotICAgICAgICAgICAgIC8vdW5uYW1lZCBjYWxs IGZ1bmN0aW9uLCBwYXJzZSB0aGUgdXNlIHRvIGZpbmQgdGhlIGRlZmluZSBvZiBjYWxsZWQgZnVu Y3Rpb24KLSAgICAgICAgICAgICBTbWFsbFZlY3RvcjxWYWx1ZSosIDE2PiBhcmdzKENJLT5vcF9i ZWdpbigpLCBDSS0+b3BfZW5kKCktMSk7Ci0KLS0gICAgICAgICAgICBWYWx1ZSAqdiA9IENJLT5n ZXRDYWxsZWRWYWx1ZSgpOwotKyAgICAgICAgICAgIFZhbHVlICp2ID0gQ0ktPmdldENhbGxlZE9w ZXJhbmQoKTsKLSAgICAgICAgICAgICBCaXRDYXN0SW5zdCogYnQgPSBkeW5fY2FzdDxCaXRDYXN0 SW5zdD4odik7Ci0gICAgICAgICAgICAgaWYoYnQgPT0gTlVMTCkKLSAgICAgICAgICAgICAgIGNv bnRpbnVlOwotQEAgLTMxNiw3ICszMTYsNyBAQAotICAgICAgICAgICAgICAgICAgIENvbnN0YW50 RXhwciAqZXhwciA9IGR5bl9jYXN0PENvbnN0YW50RXhwcj4oYy0+Z2V0T3BlcmFuZCgzKSk7Ci0g ICAgICAgICAgICAgICAgICAgQml0Q2FzdEluc3QgKmJ0ID0gZHluX2Nhc3Q8Qml0Q2FzdEluc3Q+ KGV4cHItPmdldEFzSW5zdHJ1Y3Rpb24oKSk7Ci0gICAgICAgICAgICAgICAgICAgRnVuY3Rpb24q IGYgPSBkeW5fY2FzdDxGdW5jdGlvbj4oYnQtPmdldE9wZXJhbmQoMCkpOwotLSAgICAgICAgICAg ICAgICAgIGJsb2Nrc1t2XSA9IGYtPmdldE5hbWUoKTsKLSsgICAgICAgICAgICAgICAgICBibG9j a3Nbdl0gPSBmLT5nZXROYW1lKCkuc3RyKCk7Ci0gICAgICAgICAgICAgICAgIH0KLSAgICAgICAg ICAgICAgIH0KLQotQEAgLTMzMiw3ICszMzIsNyBAQAotICAgICAgICAgICB9IGVsc2UgewotICAg ICAgICAgICAgIC8vaGFuZGxlIGVucXVldWVfa2VybmVsIGZ1bmN0aW9uIGNhbGwKLSAgICAgICAg ICAgICBGdW5jdGlvbiAqZm4gPSBDSS0+Z2V0Q2FsbGVkRnVuY3Rpb24oKTsKLS0gICAgICAgICAg ICBpZiAoZm4tPmdldE5hbWUoKS5maW5kKCJlbnF1ZXVlX2tlcm5lbCIpID09IHN0ZDo6c3RyaW5n OjpucG9zKQotKyAgICAgICAgICAgIGlmIChmbi0+Z2V0TmFtZSgpLnN0cigpLmZpbmQoImVucXVl dWVfa2VybmVsIikgPT0gc3RkOjpzdHJpbmc6Om5wb3MpCi0gICAgICAgICAgICAgICBjb250aW51 ZTsKLQotICAgICAgICAgICAgIC8vYmxvY2sgcGFyYW1ldGVyJ3MgaW5kZXgsIDMgb3IgNgotQEAg LTM2MSw3ICszNjEsNyBAQAotICAgICAgICAgICAgICAgICAgIENvbnN0YW50RXhwciAqZXhwciA9 IGR5bl9jYXN0PENvbnN0YW50RXhwcj4oYy0+Z2V0T3BlcmFuZCgzKSk7Ci0gICAgICAgICAgICAg ICAgICAgQml0Q2FzdEluc3QgKmJ0ID0gZHluX2Nhc3Q8Qml0Q2FzdEluc3Q+KGV4cHItPmdldEFz SW5zdHJ1Y3Rpb24oKSk7Ci0gICAgICAgICAgICAgICAgICAgRnVuY3Rpb24qIGYgPSBkeW5fY2Fz dDxGdW5jdGlvbj4oYnQtPmdldE9wZXJhbmQoMCkpOwotLSAgICAgICAgICAgICAgICAgIGJsb2Nr c1t2XSA9IGYtPmdldE5hbWUoKTsKLSsgICAgICAgICAgICAgICAgICBibG9ja3Nbdl0gPSBmLT5n ZXROYW1lKCkuc3RyKCk7Ci0gICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIH0KLSAg ICAgICAgICAgICB9IGVsc2UgaWYoaXNhPEFsbG9jYUluc3Q+KGJsb2NrKSkgewotLS0tIGEvYmFj a2VuZC9zcmMvbGx2bS9sbHZtX2dlbl9iYWNrZW5kLmNwcAkyMDIwLTExLTA5IDE2OjQ4OjIwLjgy Mzg2NjExMiArMDEwMAotKysrIGIvYmFja2VuZC9zcmMvbGx2bS9sbHZtX2dlbl9iYWNrZW5kLmNw cAkyMDIwLTExLTA5IDE4OjMzOjUwLjkxOTExNDMyNyArMDEwMAotQEAgLTM3Niw3ICszNzYsNyBA QAotICAgICAgICAgICBHQkVfQVNTRVJUKGluZGV4ID09IDApOwotICAgICAgICAgICByZXR1cm4g dGhpcy0+X25ld1NjYWxhcih2YWx1ZSwga2V5LCB0eXBlLCBpbmRleCwgdW5pZm9ybSk7Ci0gICAg ICAgICAgIGJyZWFrOwotLSAgICAgICAgY2FzZSBUeXBlOjpWZWN0b3JUeUlEOgotKyAgICAgICAg Y2FzZSBUeXBlOjpGaXhlZFZlY3RvclR5SUQ6Ci0gICAgICAgICB7Ci0gICAgICAgICAgIGF1dG8g dmVjdG9yVHlwZSA9IGNhc3Q8VmVjdG9yVHlwZT4odHlwZSk7Ci0gICAgICAgICAgIGF1dG8gZWxl bWVudFR5cGUgPSB2ZWN0b3JUeXBlLT5nZXRFbGVtZW50VHlwZSgpOwotQEAgLTc0MywyMCArNzQz LDIwIEBACi0gI3VuZGVmIERFQ0xfVklTSVRfRk4KLQotICAgICAvLyBFbWl0IHJvdW5kaW5nIGlu c3RydWN0aW9ucyBmcm9tIGdlbiBuYXRpdmUgZnVuY3Rpb24KLS0gICAgdm9pZCBlbWl0Um91bmRp bmdDYWxsSW5zdChDYWxsSW5zdCAmSSwgQ2FsbFNpdGUgJkNTLCBpcjo6T3Bjb2RlIG9wY29kZSk7 Ci0rICAgIHZvaWQgZW1pdFJvdW5kaW5nQ2FsbEluc3QoQ2FsbEluc3QgJkksIGlyOjpPcGNvZGUg b3Bjb2RlKTsKLSAgICAgLy8gRW1pdCB1bmFyeSBpbnN0cnVjdGlvbnMgZnJvbSBnZW4gbmF0aXZl IGZ1bmN0aW9uCi0tICAgIHZvaWQgZW1pdFVuYXJ5Q2FsbEluc3QoQ2FsbEluc3QgJkksIENhbGxT aXRlICZDUywgaXI6Ok9wY29kZSBvcGNvZGUsIGlyOjpUeXBlID0gaXI6OlRZUEVfRkxPQVQpOwot KyAgICB2b2lkIGVtaXRVbmFyeUNhbGxJbnN0KENhbGxJbnN0ICZJLCBpcjo6T3Bjb2RlIG9wY29k ZSwgaXI6OlR5cGUgPSBpcjo6VFlQRV9GTE9BVCk7Ci0gICAgIC8vIEVtaXQgdW5hcnkgaW5zdHJ1 Y3Rpb25zIGZyb20gZ2VuIG5hdGl2ZSBmdW5jdGlvbgotLSAgICB2b2lkIGVtaXRBdG9taWNJbnN0 KENhbGxJbnN0ICZJLCBDYWxsU2l0ZSAmQ1MsIGlyOjpBdG9taWNPcHMgb3Bjb2RlKTsKLSsgICAg dm9pZCBlbWl0QXRvbWljSW5zdChDYWxsSW5zdCAmSSwgaXI6OkF0b21pY09wcyBvcGNvZGUpOwot ICAgICAvLyBFbWl0IHdvcmtncm91cCBpbnN0cnVjdGlvbnMKLS0gICAgdm9pZCBlbWl0V29ya0dy b3VwSW5zdChDYWxsSW5zdCAmSSwgQ2FsbFNpdGUgJkNTLCBpcjo6V29ya0dyb3VwT3BzIG9wY29k ZSk7Ci0rICAgIHZvaWQgZW1pdFdvcmtHcm91cEluc3QoQ2FsbEluc3QgJkksIGlyOjpXb3JrR3Jv dXBPcHMgb3Bjb2RlKTsKLSAgICAgLy8gRW1pdCBzdWJncm91cCBpbnN0cnVjdGlvbnMKLS0gICAg dm9pZCBlbWl0U3ViR3JvdXBJbnN0KENhbGxJbnN0ICZJLCBDYWxsU2l0ZSAmQ1MsIGlyOjpXb3Jr R3JvdXBPcHMgb3Bjb2RlKTsKLSsgICAgdm9pZCBlbWl0U3ViR3JvdXBJbnN0KENhbGxJbnN0ICZJ LCBpcjo6V29ya0dyb3VwT3BzIG9wY29kZSk7Ci0gICAgIC8vIEVtaXQgc3ViZ3JvdXAgaW5zdHJ1 Y3Rpb25zCi0tICAgIHZvaWQgZW1pdEJsb2NrUmVhZFdyaXRlTWVtSW5zdChDYWxsSW5zdCAmSSwg Q2FsbFNpdGUgJkNTLCBib29sIGlzV3JpdGUsIHVpbnQ4X3QgdmVjX3NpemUsIGlyOjpUeXBlID0g aXI6OlRZUEVfVTMyKTsKLS0gICAgdm9pZCBlbWl0QmxvY2tSZWFkV3JpdGVJbWFnZUluc3QoQ2Fs bEluc3QgJkksIENhbGxTaXRlICZDUywgYm9vbCBpc1dyaXRlLCB1aW50OF90IHZlY19zaXplLCBp cjo6VHlwZSA9IGlyOjpUWVBFX1UzMik7Ci0rICAgIHZvaWQgZW1pdEJsb2NrUmVhZFdyaXRlTWVt SW5zdChDYWxsSW5zdCAmSSwgYm9vbCBpc1dyaXRlLCB1aW50OF90IHZlY19zaXplLCBpcjo6VHlw ZSA9IGlyOjpUWVBFX1UzMik7Ci0rICAgIHZvaWQgZW1pdEJsb2NrUmVhZFdyaXRlSW1hZ2VJbnN0 KENhbGxJbnN0ICZJLCBib29sIGlzV3JpdGUsIHVpbnQ4X3QgdmVjX3NpemUsIGlyOjpUeXBlID0g aXI6OlRZUEVfVTMyKTsKLQotLSAgICB1aW50OF90IGFwcGVuZFNhbXBsZXIoQ2FsbFNpdGU6OmFy Z19pdGVyYXRvciBBSSk7Ci0rICAgIHVpbnQ4X3QgYXBwZW5kU2FtcGxlcihVc2VyOjpvcF9pdGVy YXRvciBBSSk7Ci0gICAgIHVpbnQ4X3QgZ2V0SW1hZ2VJRChDYWxsSW5zdCAmSSk7Ci0KLSAgICAg Ly8gVGhlc2UgaW5zdHJ1Y3Rpb25zIGFyZSBub3Qgc3VwcG9ydGVkIGF0IGFsbAotQEAgLTEzMjAs MTMgKzEzMjAsMTMgQEAKLSAjZW5kaWYKLQotICAgICAgIGlmKHR5cGVOYW1lTm9kZSkgewotLSAg ICAgICAgbGx2bUluZm8udHlwZU5hbWU9IChjYXN0PE1EU3RyaW5nPih0eXBlTmFtZU5vZGUtPmdl dE9wZXJhbmQob3BJRCkpKS0+Z2V0U3RyaW5nKCk7Ci0rICAgICAgICBsbHZtSW5mby50eXBlTmFt ZT0gKGNhc3Q8TURTdHJpbmc+KHR5cGVOYW1lTm9kZS0+Z2V0T3BlcmFuZChvcElEKSkpLT5nZXRT dHJpbmcoKS5zdHIoKTsKLSAgICAgICB9Ci0gICAgICAgaWYodHlwZUJhc2VOYW1lTm9kZSkgewot LSAgICAgICAgbGx2bUluZm8udHlwZUJhc2VOYW1lPSAoY2FzdDxNRFN0cmluZz4odHlwZUJhc2VO YW1lTm9kZS0+Z2V0T3BlcmFuZChvcElEKSkpLT5nZXRTdHJpbmcoKTsKLSsgICAgICAgIGxsdm1J bmZvLnR5cGVCYXNlTmFtZT0gKGNhc3Q8TURTdHJpbmc+KHR5cGVCYXNlTmFtZU5vZGUtPmdldE9w ZXJhbmQob3BJRCkpKS0+Z2V0U3RyaW5nKCkuc3RyKCk7Ci0gICAgICAgfQotLSAgICAgIGxsdm1J bmZvLnR5cGVOYW1lPSAoY2FzdDxNRFN0cmluZz4odHlwZU5hbWVOb2RlLT5nZXRPcGVyYW5kKG9w SUQpKSktPmdldFN0cmluZygpOwotLSAgICAgIGxsdm1JbmZvLnR5cGVRdWFsID0gKGNhc3Q8TURT dHJpbmc+KHR5cGVRdWFsTm9kZS0+Z2V0T3BlcmFuZChvcElEKSkpLT5nZXRTdHJpbmcoKTsKLSsg ICAgICBsbHZtSW5mby50eXBlTmFtZT0gKGNhc3Q8TURTdHJpbmc+KHR5cGVOYW1lTm9kZS0+Z2V0 T3BlcmFuZChvcElEKSkpLT5nZXRTdHJpbmcoKS5zdHIoKTsKLSsgICAgICBsbHZtSW5mby50eXBl UXVhbCA9IChjYXN0PE1EU3RyaW5nPih0eXBlUXVhbE5vZGUtPmdldE9wZXJhbmQob3BJRCkpKS0+ Z2V0U3RyaW5nKCkuc3RyKCk7Ci0gICAgICAgYm9vbCBpc0ltYWdlID0gbGx2bUluZm8uaXNJbWFn ZVR5cGUoKTsKLSAgICAgICBib29sIGlzUGlwZSA9IGxsdm1JbmZvLmlzUGlwZVR5cGUoKTsKLSAg ICAgICBpZiAoSS0+Z2V0VHlwZSgpLT5pc1BvaW50ZXJUeSgpIHx8IGlzSW1hZ2UgfHwgaXNQaXBl KSB7Ci1AQCAtMTUzMSw3ICsxNTMxLDcgQEAKLSAgICAgICAgICAgICBFbHRUeSA9IGdldEVsdFR5 cGUoRWx0VHksIFR5cGVJbmRleCk7Ci0gICAgICAgICB9Ci0KLS0gICAgICAgIGlyOjpDb25zdGFu dCBjYyA9IHVuaXQuZ2V0Q29uc3RhbnRTZXQoKS5nZXRDb25zdGFudChwb2ludGVyLT5nZXROYW1l KCkpOwotKyAgICAgICAgaXI6OkNvbnN0YW50IGNjID0gdW5pdC5nZXRDb25zdGFudFNldCgpLmdl dENvbnN0YW50KHBvaW50ZXItPmdldE5hbWUoKS5zdHIoKSk7Ci0gICAgICAgICB1bnNpZ25lZCBp bnQgZGVmT2Zmc2V0ID0gY2MuZ2V0T2Zmc2V0KCk7Ci0gICAgICAgICByZWxvY3MucHVzaF9iYWNr KGlyOjpSZWxvY0VudHJ5KG9mZnNldCwgZGVmT2Zmc2V0ICsgY29uc3RhbnRPZmZzZXQpKTsKLQot QEAgLTE1NDYsNyArMTU0Niw3IEBACi0gICAgICAgcmV0dXJuOwotICAgICB9Ci0gICAgIGlmIChp c2E8R2xvYmFsVmFyaWFibGU+KGMpKSB7Ci0tICAgICAgaXI6OkNvbnN0YW50IGNjID0gdW5pdC5n ZXRDb25zdGFudFNldCgpLmdldENvbnN0YW50KGMtPmdldE5hbWUoKSk7Ci0rICAgICAgaXI6OkNv bnN0YW50IGNjID0gdW5pdC5nZXRDb25zdGFudFNldCgpLmdldENvbnN0YW50KGMtPmdldE5hbWUo KS5zdHIoKSk7Ci0gICAgICAgdW5zaWduZWQgaW50IGRlZk9mZnNldCA9IGNjLmdldE9mZnNldCgp OwotCi0gICAgICAgcmVsb2NzLnB1c2hfYmFjayhpcjo6UmVsb2NFbnRyeShvZmZzZXQsIGRlZk9m ZnNldCkpOwotQEAgLTE2MDksNyArMTYwOSw3IEBACi0gICAgICAgICAgIH0KLSAgICAgICAgICAg YnJlYWs7Ci0gICAgICAgICB9Ci0tICAgICAgY2FzZSBUeXBlOjpUeXBlSUQ6OlZlY3RvclR5SUQ6 Ci0rICAgICAgY2FzZSBUeXBlOjpUeXBlSUQ6OkZpeGVkVmVjdG9yVHlJRDoKLSAgICAgICAgIHsK LSAgICAgICAgICAgY29uc3QgQ29uc3RhbnREYXRhU2VxdWVudGlhbCAqY2RzID0gZHluX2Nhc3Q8 Q29uc3RhbnREYXRhU2VxdWVudGlhbD4oYyk7Ci0gICAgICAgICAgIGNvbnN0IFZlY3RvclR5cGUg KnZlY1R5ID0gY2FzdDxWZWN0b3JUeXBlPih0eXBlKTsKLUBAIC0xOTM2LDcgKzE5MzYsNyBAQAot ICAgICAgIGNhc2UgVHlwZTo6UG9pbnRlclR5SUQ6Ci0gICAgICAgICByZWdUcmFuc2xhdG9yLm5l d1NjYWxhcih2YWx1ZSwga2V5LCAwLCB1bmlmb3JtKTsKLSAgICAgICAgIGJyZWFrOwotLSAgICAg IGNhc2UgVHlwZTo6VmVjdG9yVHlJRDoKLSsgICAgICBjYXNlIFR5cGU6OkZpeGVkVmVjdG9yVHlJ RDoKLSAgICAgICB7Ci0gICAgICAgICBhdXRvIHZlY3RvclR5cGUgPSBjYXN0PFZlY3RvclR5cGU+ KHR5cGUpOwotICAgICAgICAgY29uc3QgdWludDMyX3QgZWxlbU51bSA9IHZlY3RvclR5cGUtPmdl dE51bUVsZW1lbnRzKCk7Ci1AQCAtMjM5NSw3ICsyMzk1LDcgQEAKLSAjZW5kaWYKLSAgICAgICAg IH0KLSAgICAgICAgIGlmKHR5cGVOYW1lTm9kZSkgewotLSAgICAgICAgICBsbHZtSW5mby50eXBl TmFtZSA9IChjYXN0PE1EU3RyaW5nPih0eXBlTmFtZU5vZGUtPmdldE9wZXJhbmQob3BJRCkpKS0+ Z2V0U3RyaW5nKCk7Ci0rICAgICAgICAgIGxsdm1JbmZvLnR5cGVOYW1lID0gKGNhc3Q8TURTdHJp bmc+KHR5cGVOYW1lTm9kZS0+Z2V0T3BlcmFuZChvcElEKSkpLT5nZXRTdHJpbmcoKS5zdHIoKTsK LSAgICAgICAgICAgLy9MTFZNIDMuOSBpbWFnZSdzIHR5cGUgbmFtZSBpbmNsdWRlIGFjY2VzcyBx dWFsLCBkb24ndCBtYXRjaCBPcGVuQ0wgc3BlYywgZXJhc2UgdGhlbS4KLSAgICAgICAgICAgc3Rk Ojp2ZWN0b3I8c3RkOjpzdHJpbmc+IGZpbHRlcnMgPSB7Il9fcmVhZF9vbmx5ICIsICJfX3dyaXRl X29ubHkgIn07Ci0gICAgICAgICAgIGZvciAodWludDMyX3QgaSA9IDA7IGkgPCBmaWx0ZXJzLnNp emUoKTsgaSsrKSB7Ci1AQCAtMjQwNiwxNiArMjQwNiwxNiBAQAotICAgICAgICAgICB9Ci0gICAg ICAgICB9Ci0gICAgICAgICBpZih0eXBlQmFzZU5hbWVOb2RlKXsKLS0gICAgICAgICAgbGx2bUlu Zm8udHlwZUJhc2VOYW1lID0gKGNhc3Q8TURTdHJpbmc+KHR5cGVCYXNlTmFtZU5vZGUtPmdldE9w ZXJhbmQob3BJRCkpKS0+Z2V0U3RyaW5nKCk7Ci0rICAgICAgICAgIGxsdm1JbmZvLnR5cGVCYXNl TmFtZSA9IChjYXN0PE1EU3RyaW5nPih0eXBlQmFzZU5hbWVOb2RlLT5nZXRPcGVyYW5kKG9wSUQp KSktPmdldFN0cmluZygpLnN0cigpOwotICAgICAgICAgfQotICAgICAgICAgaWYoYWNjZXNzUXVh bE5vZGUpIHsKLS0gICAgICAgICAgbGx2bUluZm8uYWNjZXNzUXVhbCA9IChjYXN0PE1EU3RyaW5n PihhY2Nlc3NRdWFsTm9kZS0+Z2V0T3BlcmFuZChvcElEKSkpLT5nZXRTdHJpbmcoKTsKLSsgICAg ICAgICAgbGx2bUluZm8uYWNjZXNzUXVhbCA9IChjYXN0PE1EU3RyaW5nPihhY2Nlc3NRdWFsTm9k ZS0+Z2V0T3BlcmFuZChvcElEKSkpLT5nZXRTdHJpbmcoKS5zdHIoKTsKLSAgICAgICAgIH0KLSAg ICAgICAgIGlmKHR5cGVRdWFsTm9kZSkgewotLSAgICAgICAgICBsbHZtSW5mby50eXBlUXVhbCA9 IChjYXN0PE1EU3RyaW5nPih0eXBlUXVhbE5vZGUtPmdldE9wZXJhbmQob3BJRCkpKS0+Z2V0U3Ry aW5nKCk7Ci0rICAgICAgICAgIGxsdm1JbmZvLnR5cGVRdWFsID0gKGNhc3Q8TURTdHJpbmc+KHR5 cGVRdWFsTm9kZS0+Z2V0T3BlcmFuZChvcElEKSkpLT5nZXRTdHJpbmcoKS5zdHIoKTsKLSAgICAg ICAgIH0KLSAgICAgICAgIGlmKGFyZ05hbWVOb2RlKXsKLS0gICAgICAgICAgbGx2bUluZm8uYXJn TmFtZSA9IChjYXN0PE1EU3RyaW5nPihhcmdOYW1lTm9kZS0+Z2V0T3BlcmFuZChvcElEKSkpLT5n ZXRTdHJpbmcoKTsKLSsgICAgICAgICAgbGx2bUluZm8uYXJnTmFtZSA9IChjYXN0PE1EU3RyaW5n PihhcmdOYW1lTm9kZS0+Z2V0T3BlcmFuZChvcElEKSkpLT5nZXRTdHJpbmcoKS5zdHIoKTsKLSAg ICAgICAgIH0KLQotICAgICAgICAgLy8gZnVuY3Rpb24gYXJndW1lbnRzIGFyZSB1bmlmb3JtIHZh bHVlcy4KLUBAIC0zMDEwLDcgKzMwMTAsNyBAQAotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAg ICAgdGhpcy0+bmV3UmVnaXN0ZXIoY29uc3RfY2FzdDxHbG9iYWxWYXJpYWJsZSo+KCZ2KSk7Ci0g ICAgICAgICAgIGlyOjpSZWdpc3RlciByZWcgPSByZWdUcmFuc2xhdG9yLmdldFNjYWxhcihjb25z dF9jYXN0PEdsb2JhbFZhcmlhYmxlKj4oJnYpLCAwKTsKLS0gICAgICAgICAgaXI6OkNvbnN0YW50 ICZjb24gPSB1bml0LmdldENvbnN0YW50U2V0KCkuZ2V0Q29uc3RhbnQodi5nZXROYW1lKCkpOwot KyAgICAgICAgICBpcjo6Q29uc3RhbnQgJmNvbiA9IHVuaXQuZ2V0Q29uc3RhbnRTZXQoKS5nZXRD b25zdGFudCh2LmdldE5hbWUoKS5zdHIoKSk7Ci0gICAgICAgICAgIGlmICghbGVnYWN5TW9kZSkg ewotICAgICAgICAgICAgIGlyOjpSZWdpc3RlciByZWdsb2FkID0gY3R4LnJlZyhnZXRGYW1pbHko Z2V0VHlwZShjdHgsIHYuZ2V0VHlwZSgpKSkpOwotICAgICAgICAgICAgIGN0eC5MT0FESShnZXRU eXBlKGN0eCwgdi5nZXRUeXBlKCkpLCByZWdsb2FkLCBjdHgubmV3SW50ZWdlckltbWVkaWF0ZShj b24uZ2V0T2Zmc2V0KCksIGdldFR5cGUoY3R4LCB2LmdldFR5cGUoKSkpKTsKLUBAIC0zMjEyLDcg KzMyMTIsNyBAQAotICAgICAgICAgR0JFX0FTU0VSVE0oZmFsc2UsICJVbnN1cHBvcnRlZCBjYWxs aW5nIGNvbnZlbnRpb24iKTsKLSAgICAgfQotCi0tICAgIGN0eC5zdGFydEZ1bmN0aW9uKEYuZ2V0 TmFtZSgpKTsKLSsgICAgY3R4LnN0YXJ0RnVuY3Rpb24oRi5nZXROYW1lKCkuc3RyKCkpOwotCi0g ICAgIGlyOjpGdW5jdGlvbiAmZm4gPSBjdHguZ2V0RnVuY3Rpb24oKTsKLSAgICAgdGhpcy0+cmVn VHJhbnNsYXRvci5jbGVhcigpOwotQEAgLTM4MTAsOSArMzgxMCw5IEBACi0KLSAgIHZvaWQgR2Vu V3JpdGVyOjpyZWdBbGxvY2F0ZUNhbGxJbnN0KENhbGxJbnN0ICZJKSB7Ci0gICAgIFZhbHVlICpk c3QgPSAmSTsKLS0gICAgVmFsdWUgKkNhbGxlZSA9IEkuZ2V0Q2FsbGVkVmFsdWUoKTsKLSsgICAg VmFsdWUgKkNhbGxlZSA9IEkuZ2V0Q2FsbGVkT3BlcmFuZCgpOwotICAgICBHQkVfQVNTRVJUKGN0 eC5nZXRGdW5jdGlvbigpLmdldFByb2ZpbGUoKSA9PSBpcjo6UFJPRklMRV9PQ0wpOwotLSAgICBH QkVfQVNTRVJUKGlzYTxJbmxpbmVBc20+KEkuZ2V0Q2FsbGVkVmFsdWUoKSkgPT0gZmFsc2UpOwot KyAgICBHQkVfQVNTRVJUKGlzYTxJbmxpbmVBc20+KEkuZ2V0Q2FsbGVkT3BlcmFuZCgpKSA9PSBm YWxzZSk7Ci0gICAgIGlmKEkuZ2V0TnVtQXJnT3BlcmFuZHMoKSkgR0JFX0FTU0VSVChJLmhhc1N0 cnVjdFJldEF0dHIoKSA9PSBmYWxzZSk7Ci0KLSAgICAgLy8gV2Ugb25seSBzdXBwb3J0IGEgc21h bGwgbnVtYmVyIG9mIGludHJpbnNpY3MgcmlnaHQgbm93Ci1AQCAtMzg3MCw3ICszODcwLDcgQEAK LSAgICAgICB9Ci0gICAgIH0KLSAgICAgLy8gR2V0IHRoZSBuYW1lIG9mIHRoZSBjYWxsZWQgZnVu Y3Rpb24gYW5kIGhhbmRsZSBpdAotLSAgICBjb25zdCBzdGQ6OnN0cmluZyBmbk5hbWUgPSBDYWxs ZWUtPnN0cmlwUG9pbnRlckNhc3RzKCktPmdldE5hbWUoKTsKLSsgICAgY29uc3Qgc3RkOjpzdHJp bmcgZm5OYW1lID0gQ2FsbGVlLT5zdHJpcFBvaW50ZXJDYXN0cygpLT5nZXROYW1lKCkuc3RyKCk7 Ci0gICAgIGF1dG8gZ2VuSW50cmluc2ljSUQgPSBpbnRyaW5zaWNNYXAuZmluZChmbk5hbWUpOwot ICAgICBzd2l0Y2ggKGdlbkludHJpbnNpY0lEKSB7Ci0gICAgICAgY2FzZSBHRU5fT0NMX0dFVF9H Uk9VUF9JRDA6Ci1AQCAtNDE2Niw3ICs0MTY2LDcgQEAKLSAgICAgfTsKLSAgIH0KLQotLSAgdm9p ZCBHZW5Xcml0ZXI6OmVtaXRSb3VuZGluZ0NhbGxJbnN0KENhbGxJbnN0ICZJLCBDYWxsU2l0ZSAm Q1MsIGlyOjpPcGNvZGUgb3Bjb2RlKSB7Ci0rICB2b2lkIEdlbldyaXRlcjo6ZW1pdFJvdW5kaW5n Q2FsbEluc3QoQ2FsbEluc3QgJkksIGlyOjpPcGNvZGUgb3Bjb2RlKSB7Ci0gICAgIGlmIChJLmdl dFR5cGUoKS0+aXNIYWxmVHkoKSkgewotICAgICAgIGNvbnN0IGlyOjpSZWdpc3RlciBzcmMgPSB0 aGlzLT5nZXRSZWdpc3RlcihJLmdldE9wZXJhbmQoMCkpOwotICAgICAgIGNvbnN0IGlyOjpSZWdp c3RlciBzcmNGbG9hdCA9IGN0eC5yZWcoaXI6OkZBTUlMWV9EV09SRCk7Ci1AQCAtNDE3NywxNCAr NDE3NywxNCBAQAotICAgICAgIGN0eC5GMzJUTzE2KGlyOjpUWVBFX1UxNiwgaXI6OlRZUEVfRkxP QVQsIGRzdCwgZHN0RmxvYXQpOwotICAgICB9IGVsc2UgewotICAgICAgIEdCRV9BU1NFUlQoSS5n ZXRUeXBlKCktPmlzRmxvYXRUeSgpKTsKLS0gICAgICB0aGlzLT5lbWl0VW5hcnlDYWxsSW5zdChJ LENTLG9wY29kZSk7Ci0rICAgICAgdGhpcy0+ZW1pdFVuYXJ5Q2FsbEluc3QoSSxvcGNvZGUpOwot ICAgICB9Ci0gICB9Ci0KLS0gIHZvaWQgR2VuV3JpdGVyOjplbWl0VW5hcnlDYWxsSW5zdChDYWxs SW5zdCAmSSwgQ2FsbFNpdGUgJkNTLCBpcjo6T3Bjb2RlIG9wY29kZSwgaXI6OlR5cGUgdHlwZSkg ewotLSAgICBDYWxsU2l0ZTo6YXJnX2l0ZXJhdG9yIEFJID0gQ1MuYXJnX2JlZ2luKCk7Ci0rICB2 b2lkIEdlbldyaXRlcjo6ZW1pdFVuYXJ5Q2FsbEluc3QoQ2FsbEluc3QgJkksIGlyOjpPcGNvZGUg b3Bjb2RlLCBpcjo6VHlwZSB0eXBlKSB7Ci0rICAgIFVzZXI6Om9wX2l0ZXJhdG9yIEFJID0gSS5h cmdfYmVnaW4oKTsKLSAjaWYgR0JFX0RFQlVHCi0tICAgIENhbGxTaXRlOjphcmdfaXRlcmF0b3Ig QUUgPSBDUy5hcmdfZW5kKCk7Ci0rICAgIFVzZXI6Om9wX2l0ZXJhdG9yIEFFID0gSS5hcmdfZW5k KCk7Ci0gI2VuZGlmIC8qIEdCRV9ERUJVRyAqLwotICAgICBHQkVfQVNTRVJUKEFJICE9IEFFKTsK LSAgICAgY29uc3QgaXI6OlJlZ2lzdGVyIHNyYyA9IHRoaXMtPmdldFJlZ2lzdGVyKCpBSSk7Ci1A QCAtNDI5Myw5ICs0MjkzLDkgQEAKLSAgICAgdGhpcy0+ZW1pdEF0b21pY0luc3RIZWxwZXIob3Bj b2RlLCB0eXBlLCBkc3QsIGxsdm1QdHIsIHBheWxvYWRUdXBsZSk7Ci0gICB9Ci0KLS0gIHZvaWQg R2VuV3JpdGVyOjplbWl0QXRvbWljSW5zdChDYWxsSW5zdCAmSSwgQ2FsbFNpdGUgJkNTLCBpcjo6 QXRvbWljT3BzIG9wY29kZSkgewotLSAgICBDYWxsU2l0ZTo6YXJnX2l0ZXJhdG9yIEFJID0gQ1Mu YXJnX2JlZ2luKCk7Ci0tICAgIENhbGxTaXRlOjphcmdfaXRlcmF0b3IgQUUgPSBDUy5hcmdfZW5k KCk7Ci0rICB2b2lkIEdlbldyaXRlcjo6ZW1pdEF0b21pY0luc3QoQ2FsbEluc3QgJkksIGlyOjpB dG9taWNPcHMgb3Bjb2RlKSB7Ci0rICAgIFVzZXI6Om9wX2l0ZXJhdG9yIEFJID0gSS5hcmdfYmVn aW4oKTsKLSsgICAgVXNlcjo6b3BfaXRlcmF0b3IgQUUgPSBJLmFyZ19lbmQoKTsKLSAgICAgR0JF X0FTU0VSVChBSSAhPSBBRSk7Ci0gICAgIFZhbHVlICpsbHZtUHRyID0gKkFJOwotICAgICBpcjo6 QWRkcmVzc1NwYWNlIGFkZHJTcGFjZSA9IGFkZHJlc3NTcGFjZUxMVk1Ub0dlbihsbHZtUHRyLT5n ZXRUeXBlKCktPmdldFBvaW50ZXJBZGRyZXNzU3BhY2UoKSk7Ci1AQCAtNDM0OCw3ICs0MzQ4LDcg QEAKLSAgICAgfQotICAgfQotCi0tICB2b2lkIEdlbldyaXRlcjo6ZW1pdFdvcmtHcm91cEluc3Qo Q2FsbEluc3QgJkksIENhbGxTaXRlICZDUywgaXI6OldvcmtHcm91cE9wcyBvcGNvZGUpIHsKLSsg IHZvaWQgR2VuV3JpdGVyOjplbWl0V29ya0dyb3VwSW5zdChDYWxsSW5zdCAmSSwgaXI6OldvcmtH cm91cE9wcyBvcGNvZGUpIHsKLSAgICAgaXI6OkZ1bmN0aW9uICZmID0gY3R4LmdldEZ1bmN0aW9u KCk7Ci0KLSAgICAgaWYgKGYuZ2V0d2dCcm9hZGNhc3RTTE0oKSA8IDAgJiYgb3Bjb2RlID09IGly OjpXT1JLR1JPVVBfT1BfQlJPQURDQVNUKSB7Ci1AQCAtNDM3OCw4ICs0Mzc4LDggQEAKLSAgICAg ICBHQkVfQVNTRVJUKGYuZ2V0dGlkTWFwU0xNKCkgPj0gMCk7Ci0gICAgIH0KLQotLSAgICBDYWxs U2l0ZTo6YXJnX2l0ZXJhdG9yIEFJID0gQ1MuYXJnX2JlZ2luKCk7Ci0tICAgIENhbGxTaXRlOjph cmdfaXRlcmF0b3IgQUUgPSBDUy5hcmdfZW5kKCk7Ci0rICAgIFVzZXI6Om9wX2l0ZXJhdG9yIEFJ ID0gSS5hcmdfYmVnaW4oKTsKLSsgICAgVXNlcjo6b3BfaXRlcmF0b3IgQUUgPSBJLmFyZ19lbmQo KTsKLSAgICAgR0JFX0FTU0VSVChBSSAhPSBBRSk7Ci0KLSAgICAgaWYgKG9wY29kZSA9PSBpcjo6 V09SS0dST1VQX09QX0FMTCB8fCBvcGNvZGUgPT0gaXI6OldPUktHUk9VUF9PUF9BTlkpIHsKLUBA IC00MzkxLDE0ICs0MzkxLDE0IEBACi0gICAgICAgY29uc3QgaXI6OlR1cGxlIHNyY1R1cGxlID0g Y3R4LmFycmF5VHVwbGUoJnNyY1swXSwgMyk7Ci0gICAgICAgY3R4LldPUktHUk9VUChvcGNvZGUs ICh1aW50MzJfdClmLmdldHRpZE1hcFNMTSgpLCBnZXRSZWdpc3RlcigmSSksIHNyY1R1cGxlLCAz LCBpcjo6VFlQRV9TMzIpOwotICAgICB9IGVsc2UgaWYgKG9wY29kZSA9PSBpcjo6V09SS0dST1VQ X09QX0JST0FEQ0FTVCkgewotLSAgICAgIGludCBhcmdOdW0gPSBDUy5hcmdfc2l6ZSgpOwotKyAg ICAgIGludCBhcmdOdW0gPSBJLmFyZ19zaXplKCk7Ci0gICAgICAgc3RkOjp2ZWN0b3I8aXI6OlJl Z2lzdGVyPiBzcmMoYXJnTnVtKTsKLSAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGFyZ051bTsg aSsrKSB7Ci0gICAgICAgICBzcmNbaV0gPSB0aGlzLT5nZXRSZWdpc3RlcigqKEFJKyspKTsKLSAg ICAgICB9Ci0gICAgICAgY29uc3QgaXI6OlR1cGxlIHNyY1R1cGxlID0gY3R4LmFycmF5VHVwbGUo JnNyY1swXSwgYXJnTnVtKTsKLSAgICAgICBjdHguV09SS0dST1VQKGlyOjpXT1JLR1JPVVBfT1Bf QlJPQURDQVNULCAodWludDMyX3QpZi5nZXR3Z0Jyb2FkY2FzdFNMTSgpLCBnZXRSZWdpc3Rlcigm SSksIHNyY1R1cGxlLCBhcmdOdW0sCi0tICAgICAgICAgIGdldFR5cGUoY3R4LCAoKkNTLmFyZ19i ZWdpbigpKS0+Z2V0VHlwZSgpKSk7Ci0rICAgICAgICAgIGdldFR5cGUoY3R4LCAoKkkuYXJnX2Jl Z2luKCkpLT5nZXRUeXBlKCkpKTsKLSAgICAgfSBlbHNlIHsKLSAgICAgICBDb25zdGFudEludCAq c2lnbiA9IGR5bl9jYXN0PENvbnN0YW50SW50PihBSSk7Ci0gICAgICAgR0JFX0FTU0VSVChzaWdu KTsKLUBAIC00NDIzLDkgKzQ0MjMsOSBAQAotICAgICBHQkVfQVNTRVJUKEFJID09IEFFKTsKLSAg IH0KLQotLSAgdm9pZCBHZW5Xcml0ZXI6OmVtaXRTdWJHcm91cEluc3QoQ2FsbEluc3QgJkksIENh bGxTaXRlICZDUywgaXI6OldvcmtHcm91cE9wcyBvcGNvZGUpIHsKLS0gICAgQ2FsbFNpdGU6OmFy Z19pdGVyYXRvciBBSSA9IENTLmFyZ19iZWdpbigpOwotLSAgICBDYWxsU2l0ZTo6YXJnX2l0ZXJh dG9yIEFFID0gQ1MuYXJnX2VuZCgpOwotKyAgdm9pZCBHZW5Xcml0ZXI6OmVtaXRTdWJHcm91cElu c3QoQ2FsbEluc3QgJkksIGlyOjpXb3JrR3JvdXBPcHMgb3Bjb2RlKSB7Ci0rICAgIFVzZXI6Om9w X2l0ZXJhdG9yIEFJID0gSS5hcmdfYmVnaW4oKTsKLSsgICAgVXNlcjo6b3BfaXRlcmF0b3IgQUUg PSBJLmFyZ19lbmQoKTsKLSAgICAgR0JFX0FTU0VSVChBSSAhPSBBRSk7Ci0KLSAgICAgaWYgKG9w Y29kZSA9PSBpcjo6V09SS0dST1VQX09QX0FMTCB8fCBvcGNvZGUgPT0gaXI6OldPUktHUk9VUF9P UF9BTlkpIHsKLUBAIC00NDM1LDcgKzQ0MzUsNyBAQAotICAgICAgIGNvbnN0IGlyOjpUdXBsZSBz cmNUdXBsZSA9IGN0eC5hcnJheVR1cGxlKCZzcmNbMF0sIDEpOwotICAgICAgIGN0eC5TVUJHUk9V UChvcGNvZGUsIGdldFJlZ2lzdGVyKCZJKSwgc3JjVHVwbGUsIDEsIGlyOjpUWVBFX1MzMik7Ci0g ICAgIH0gZWxzZSBpZiAob3Bjb2RlID09IGlyOjpXT1JLR1JPVVBfT1BfQlJPQURDQVNUKSB7Ci0t ICAgICAgaW50IGFyZ051bSA9IENTLmFyZ19zaXplKCk7Ci0rICAgICAgaW50IGFyZ051bSA9IEku YXJnX3NpemUoKTsKLSAgICAgICBHQkVfQVNTRVJUKGFyZ051bSA9PSAyKTsKLSAgICAgICBzdGQ6 OnZlY3Rvcjxpcjo6UmVnaXN0ZXI+IHNyYyhhcmdOdW0pOwotICAgICAgIGZvciAoaW50IGkgPSAw OyBpIDwgYXJnTnVtOyBpKyspIHsKLUBAIC00NDQzLDcgKzQ0NDMsNyBAQAotICAgICAgIH0KLSAg ICAgICBjb25zdCBpcjo6VHVwbGUgc3JjVHVwbGUgPSBjdHguYXJyYXlUdXBsZSgmc3JjWzBdLCBh cmdOdW0pOwotICAgICAgIGN0eC5TVUJHUk9VUChpcjo6V09SS0dST1VQX09QX0JST0FEQ0FTVCwg Z2V0UmVnaXN0ZXIoJkkpLCBzcmNUdXBsZSwgYXJnTnVtLAotLSAgICAgICAgICBnZXRUeXBlKGN0 eCwgKCpDUy5hcmdfYmVnaW4oKSktPmdldFR5cGUoKSkpOwotKyAgICAgICAgICBnZXRUeXBlKGN0 eCwgKCpJLmFyZ19iZWdpbigpKS0+Z2V0VHlwZSgpKSk7Ci0gICAgIH0gZWxzZSB7Ci0gICAgICAg Q29uc3RhbnRJbnQgKnNpZ24gPSBkeW5fY2FzdDxDb25zdGFudEludD4oQUkpOwotICAgICAgIEdC RV9BU1NFUlQoc2lnbik7Ci1AQCAtNDQ2Niw5ICs0NDY2LDkgQEAKLSAgICAgR0JFX0FTU0VSVChB SSA9PSBBRSk7Ci0gICB9Ci0KLS0gIHZvaWQgR2VuV3JpdGVyOjplbWl0QmxvY2tSZWFkV3JpdGVN ZW1JbnN0KENhbGxJbnN0ICZJLCBDYWxsU2l0ZSAmQ1MsIGJvb2wgaXNXcml0ZSwgdWludDhfdCB2 ZWNfc2l6ZSwgaXI6OlR5cGUgdHlwZSkgewotLSAgICBDYWxsU2l0ZTo6YXJnX2l0ZXJhdG9yIEFJ ID0gQ1MuYXJnX2JlZ2luKCk7Ci0tICAgIENhbGxTaXRlOjphcmdfaXRlcmF0b3IgQUUgPSBDUy5h cmdfZW5kKCk7Ci0rICB2b2lkIEdlbldyaXRlcjo6ZW1pdEJsb2NrUmVhZFdyaXRlTWVtSW5zdChD YWxsSW5zdCAmSSwgYm9vbCBpc1dyaXRlLCB1aW50OF90IHZlY19zaXplLCBpcjo6VHlwZSB0eXBl KSB7Ci0rICAgIFVzZXI6Om9wX2l0ZXJhdG9yIEFJID0gSS5hcmdfYmVnaW4oKTsKLSsgICAgVXNl cjo6b3BfaXRlcmF0b3IgQUUgPSBJLmFyZ19lbmQoKTsKLSAgICAgR0JFX0FTU0VSVChBSSAhPSBB RSk7Ci0KLSAgICAgVmFsdWUgKmxsdm1QdHIgPSAqKEFJKyspOwotQEAgLTQ1MjIsOSArNDUyMiw5 IEBACi0gICAgIEdCRV9BU1NFUlQoQUkgPT0gQUUpOwotICAgfQotCi0tICB2b2lkIEdlbldyaXRl cjo6ZW1pdEJsb2NrUmVhZFdyaXRlSW1hZ2VJbnN0KENhbGxJbnN0ICZJLCBDYWxsU2l0ZSAmQ1Ms IGJvb2wgaXNXcml0ZSwgdWludDhfdCB2ZWNfc2l6ZSwgaXI6OlR5cGUgdHlwZSkgewotLSAgICBD YWxsU2l0ZTo6YXJnX2l0ZXJhdG9yIEFJID0gQ1MuYXJnX2JlZ2luKCk7Ci0tICAgIENhbGxTaXRl OjphcmdfaXRlcmF0b3IgQUUgPSBDUy5hcmdfZW5kKCk7Ci0rICB2b2lkIEdlbldyaXRlcjo6ZW1p dEJsb2NrUmVhZFdyaXRlSW1hZ2VJbnN0KENhbGxJbnN0ICZJLCBib29sIGlzV3JpdGUsIHVpbnQ4 X3QgdmVjX3NpemUsIGlyOjpUeXBlIHR5cGUpIHsKLSsgICAgVXNlcjo6b3BfaXRlcmF0b3IgQUkg PSBJLmFyZ19iZWdpbigpOwotKyAgICBVc2VyOjpvcF9pdGVyYXRvciBBRSA9IEkuYXJnX2VuZCgp OwotICAgICBHQkVfQVNTRVJUKEFJICE9IEFFKTsKLQotICAgICBjb25zdCB1aW50OF90IGltYWdl SUQgPSBnZXRJbWFnZUlEKEkpOwotQEAgLTQ1NTcsNyArNDU1Nyw3IEBACi0KLSAgIC8qIGFwcGVu ZCBhIG5ldyBzYW1wbGVyLiBzaG91bGQgYmUgY2FsbGVkIGJlZm9yZSBhbnkgcmVmZXJlbmNlIHRv Ci0gICAgKiBhIHNhbXBsZXJfdCB2YWx1ZS4gKi8KLS0gIHVpbnQ4X3QgR2VuV3JpdGVyOjphcHBl bmRTYW1wbGVyKENhbGxTaXRlOjphcmdfaXRlcmF0b3IgQUkpIHsKLSsgIHVpbnQ4X3QgR2VuV3Jp dGVyOjphcHBlbmRTYW1wbGVyKFVzZXI6Om9wX2l0ZXJhdG9yIEFJKSB7Ci0gI2lmIExMVk1fVkVS U0lPTl9NQUpPUiAqIDEwICsgTExWTV9WRVJTSU9OX01JTk9SID49IDQwCi0gICAgIENhbGxJbnN0 ICpUQyA9IGR5bl9jYXN0PENhbGxJbnN0PigqQUkpOwotICAgICBDb25zdGFudCAqQ1BWID0gVEMg PyBkeW5fY2FzdDxDb25zdGFudD4oVEMtPmdldE9wZXJhbmQoMCkpIDogTlVMTDsKLUBAIC00NTk1 LDEwICs0NTk1LDkgQEAKLSAgICAgICAgIGNvbnN0IGlyOjpGdW5jdGlvbiAmZm4gPSBjdHguZ2V0 RnVuY3Rpb24oKTsKLQotICAgICAgICAgLy8gR2V0IHRoZSBmdW5jdGlvbiBhcmd1bWVudHMKLS0g ICAgICAgIENhbGxTaXRlIENTKCZJKTsKLS0gICAgICAgIENhbGxTaXRlOjphcmdfaXRlcmF0b3Ig QUkgPSBDUy5hcmdfYmVnaW4oKTsKLSsgICAgICAgIFVzZXI6Om9wX2l0ZXJhdG9yIEFJID0gSS5h cmdfYmVnaW4oKTsKLSAjaWYgR0JFX0RFQlVHCi0tICAgICAgICBDYWxsU2l0ZTo6YXJnX2l0ZXJh dG9yIEFFID0gQ1MuYXJnX2VuZCgpOwotKyAgICAgICAgVXNlcjo6b3BfaXRlcmF0b3IgQUUgPSBJ LmFyZ19lbmQoKTsKLSAjZW5kaWYgLyogR0JFX0RFQlVHICovCi0gICAgICAgICBzd2l0Y2ggKEYt PmdldEludHJpbnNpY0lEKCkpIHsKLSAgICAgICAgICAgY2FzZSBJbnRyaW5zaWM6OnN0YWNrc2F2 ZToKLUBAIC00NzY0LDE3ICs0NzYzLDE3IEBACi0gICAgICAgICAgICAgY3R4Lk1BRChzcmNUeXBl LCBkc3QsIHNyYzAsIHNyYzEsIHNyYzIpOwotICAgICAgICAgICB9Ci0gICAgICAgICAgIGJyZWFr OwotLSAgICAgICAgICBjYXNlIEludHJpbnNpYzo6c3FydDogdGhpcy0+ZW1pdFVuYXJ5Q2FsbElu c3QoSSxDUyxpcjo6T1BfU1FSKTsgYnJlYWs7Ci0tICAgICAgICAgIGNhc2UgSW50cmluc2ljOjpj ZWlsOiB0aGlzLT5lbWl0Um91bmRpbmdDYWxsSW5zdChJLENTLGlyOjpPUF9STkRVKTsgYnJlYWs7 Ci0tICAgICAgICAgIGNhc2UgSW50cmluc2ljOjp0cnVuYzogdGhpcy0+ZW1pdFJvdW5kaW5nQ2Fs bEluc3QoSSxDUyxpcjo6T1BfUk5EWik7IGJyZWFrOwotLSAgICAgICAgICBjYXNlIEludHJpbnNp Yzo6cmludDogdGhpcy0+ZW1pdFJvdW5kaW5nQ2FsbEluc3QoSSxDUyxpcjo6T1BfUk5ERSk7IGJy ZWFrOwotLSAgICAgICAgICBjYXNlIEludHJpbnNpYzo6Zmxvb3I6IHRoaXMtPmVtaXRSb3VuZGlu Z0NhbGxJbnN0KEksQ1MsaXI6Ok9QX1JOREQpOyBicmVhazsKLS0gICAgICAgICAgY2FzZSBJbnRy aW5zaWM6OnNpbjogdGhpcy0+ZW1pdFVuYXJ5Q2FsbEluc3QoSSxDUyxpcjo6T1BfU0lOKTsgYnJl YWs7Ci0tICAgICAgICAgIGNhc2UgSW50cmluc2ljOjpjb3M6IHRoaXMtPmVtaXRVbmFyeUNhbGxJ bnN0KEksQ1MsaXI6Ok9QX0NPUyk7IGJyZWFrOwotLSAgICAgICAgICBjYXNlIEludHJpbnNpYzo6 bG9nMjogdGhpcy0+ZW1pdFVuYXJ5Q2FsbEluc3QoSSxDUyxpcjo6T1BfTE9HKTsgYnJlYWs7Ci0t ICAgICAgICAgIGNhc2UgSW50cmluc2ljOjpleHAyOiB0aGlzLT5lbWl0VW5hcnlDYWxsSW5zdChJ LENTLGlyOjpPUF9FWFApOyBicmVhazsKLSsgICAgICAgICAgY2FzZSBJbnRyaW5zaWM6OnNxcnQ6 IHRoaXMtPmVtaXRVbmFyeUNhbGxJbnN0KEksaXI6Ok9QX1NRUik7IGJyZWFrOwotKyAgICAgICAg ICBjYXNlIEludHJpbnNpYzo6Y2VpbDogdGhpcy0+ZW1pdFJvdW5kaW5nQ2FsbEluc3QoSSxpcjo6 T1BfUk5EVSk7IGJyZWFrOwotKyAgICAgICAgICBjYXNlIEludHJpbnNpYzo6dHJ1bmM6IHRoaXMt PmVtaXRSb3VuZGluZ0NhbGxJbnN0KEksaXI6Ok9QX1JORFopOyBicmVhazsKLSsgICAgICAgICAg Y2FzZSBJbnRyaW5zaWM6OnJpbnQ6IHRoaXMtPmVtaXRSb3VuZGluZ0NhbGxJbnN0KEksaXI6Ok9Q X1JOREUpOyBicmVhazsKLSsgICAgICAgICAgY2FzZSBJbnRyaW5zaWM6OmZsb29yOiB0aGlzLT5l bWl0Um91bmRpbmdDYWxsSW5zdChJLGlyOjpPUF9STkREKTsgYnJlYWs7Ci0rICAgICAgICAgIGNh c2UgSW50cmluc2ljOjpzaW46IHRoaXMtPmVtaXRVbmFyeUNhbGxJbnN0KEksaXI6Ok9QX1NJTik7 IGJyZWFrOwotKyAgICAgICAgICBjYXNlIEludHJpbnNpYzo6Y29zOiB0aGlzLT5lbWl0VW5hcnlD YWxsSW5zdChJLGlyOjpPUF9DT1MpOyBicmVhazsKLSsgICAgICAgICAgY2FzZSBJbnRyaW5zaWM6 OmxvZzI6IHRoaXMtPmVtaXRVbmFyeUNhbGxJbnN0KEksaXI6Ok9QX0xPRyk7IGJyZWFrOwotKyAg ICAgICAgICBjYXNlIEludHJpbnNpYzo6ZXhwMjogdGhpcy0+ZW1pdFVuYXJ5Q2FsbEluc3QoSSxp cjo6T1BfRVhQKTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgSW50cmluc2ljOjpic3dhcDoKLS0g ICAgICAgICAgICB0aGlzLT5lbWl0VW5hcnlDYWxsSW5zdChJLENTLGlyOjpPUF9CU1dBUCwgZ2V0 VW5zaWduZWRUeXBlKGN0eCwgSS5nZXRUeXBlKCkpKTsgYnJlYWs7Ci0rICAgICAgICAgICAgdGhp cy0+ZW1pdFVuYXJ5Q2FsbEluc3QoSSxpcjo6T1BfQlNXQVAsIGdldFVuc2lnbmVkVHlwZShjdHgs IEkuZ2V0VHlwZSgpKSk7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEludHJpbnNpYzo6cG93Ogot ICAgICAgICAgICB7Ci0gICAgICAgICAgICAgY29uc3QgaXI6OlJlZ2lzdGVyIHNyYzAgPSB0aGlz LT5nZXRSZWdpc3RlcigqQUkpOyArK0FJOwotQEAgLTQ3OTQsMjEgKzQ3OTMsMjAgQEAKLSAgICAg ICAgIH0KLSAgICAgICB9IGVsc2UgewotICAgICAgICAgLy8gR2V0IHRoZSBuYW1lIG9mIHRoZSBj YWxsZWQgZnVuY3Rpb24gYW5kIGhhbmRsZSBpdAotLSAgICAgICAgVmFsdWUgKkNhbGxlZSA9IEku Z2V0Q2FsbGVkVmFsdWUoKTsKLS0gICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nIGZuTmFtZSA9IENh bGxlZS0+c3RyaXBQb2ludGVyQ2FzdHMoKS0+Z2V0TmFtZSgpOwotKyAgICAgICAgVmFsdWUgKkNh bGxlZSA9IEkuZ2V0Q2FsbGVkT3BlcmFuZCgpOwotKyAgICAgICAgY29uc3Qgc3RkOjpzdHJpbmcg Zm5OYW1lID0gQ2FsbGVlLT5zdHJpcFBvaW50ZXJDYXN0cygpLT5nZXROYW1lKCkuc3RyKCk7Ci0g ICAgICAgICBhdXRvIGdlbkludHJpbnNpY0lEID0gaW50cmluc2ljTWFwLmZpbmQoZm5OYW1lKTsK LQotICAgICAgICAgLy8gR2V0IHRoZSBmdW5jdGlvbiBhcmd1bWVudHMKLS0gICAgICAgIENhbGxT aXRlIENTKCZJKTsKLS0gICAgICAgIENhbGxTaXRlOjphcmdfaXRlcmF0b3IgQUkgPSBDUy5hcmdf YmVnaW4oKTsKLSsgICAgICAgIFVzZXI6Om9wX2l0ZXJhdG9yIEFJID0gSS5hcmdfYmVnaW4oKTsK LSAjaWYgR0JFX0RFQlVHCi0tICAgICAgICBDYWxsU2l0ZTo6YXJnX2l0ZXJhdG9yIEFFID0gQ1Mu YXJnX2VuZCgpOwotKyAgICAgICAgVXNlcjo6b3BfaXRlcmF0b3IgQUUgPSBJLmFyZ19lbmQoKTsK LSAjZW5kaWYgLyogR0JFX0RFQlVHICovCi0KLSAgICAgICAgIHN3aXRjaCAoZ2VuSW50cmluc2lj SUQpIHsKLS0gICAgICAgICAgY2FzZSBHRU5fT0NMX0ZCSDogdGhpcy0+ZW1pdFVuYXJ5Q2FsbElu c3QoSSxDUyxpcjo6T1BfRkJILCBpcjo6VFlQRV9VMzIpOyBicmVhazsKLS0gICAgICAgICAgY2Fz ZSBHRU5fT0NMX0ZCTDogdGhpcy0+ZW1pdFVuYXJ5Q2FsbEluc3QoSSxDUyxpcjo6T1BfRkJMLCBp cjo6VFlQRV9VMzIpOyBicmVhazsKLS0gICAgICAgICAgY2FzZSBHRU5fT0NMX0NCSVQ6IHRoaXMt PmVtaXRVbmFyeUNhbGxJbnN0KEksQ1MsaXI6Ok9QX0NCSVQsIGdldFVuc2lnbmVkVHlwZShjdHgs ICgqQUkpLT5nZXRUeXBlKCkpKTsgYnJlYWs7Ci0rICAgICAgICAgIGNhc2UgR0VOX09DTF9GQkg6 IHRoaXMtPmVtaXRVbmFyeUNhbGxJbnN0KEksaXI6Ok9QX0ZCSCwgaXI6OlRZUEVfVTMyKTsgYnJl YWs7Ci0rICAgICAgICAgIGNhc2UgR0VOX09DTF9GQkw6IHRoaXMtPmVtaXRVbmFyeUNhbGxJbnN0 KEksaXI6Ok9QX0ZCTCwgaXI6OlRZUEVfVTMyKTsgYnJlYWs7Ci0rICAgICAgICAgIGNhc2UgR0VO X09DTF9DQklUOiB0aGlzLT5lbWl0VW5hcnlDYWxsSW5zdChJLGlyOjpPUF9DQklULCBnZXRVbnNp Z25lZFR5cGUoY3R4LCAoKkFJKS0+Z2V0VHlwZSgpKSk7IGJyZWFrOwotICAgICAgICAgICBjYXNl IEdFTl9PQ0xfQUJTOgotICAgICAgICAgICB7Ci0gICAgICAgICAgICAgY29uc3QgaXI6OlJlZ2lz dGVyIHNyYyA9IHRoaXMtPmdldFJlZ2lzdGVyKCpBSSk7Ci1AQCAtNDkxNSw4ICs0OTEzLDggQEAK LSAgICAgICAgICAgICBjdHguUkVHSU9OKGRzdCwgc3JjLCB4LmdldEludGVnZXJWYWx1ZSgpKTsK LSAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgfQotLSAgICAgICAgICBjYXNlIEdFTl9P Q0xfUlNROiB0aGlzLT5lbWl0VW5hcnlDYWxsSW5zdChJLENTLGlyOjpPUF9SU1EpOyBicmVhazsK LS0gICAgICAgICAgY2FzZSBHRU5fT0NMX1JDUDogdGhpcy0+ZW1pdFVuYXJ5Q2FsbEluc3QoSSxD Uyxpcjo6T1BfUkNQKTsgYnJlYWs7Ci0rICAgICAgICAgIGNhc2UgR0VOX09DTF9SU1E6IHRoaXMt PmVtaXRVbmFyeUNhbGxJbnN0KEksaXI6Ok9QX1JTUSk7IGJyZWFrOwotKyAgICAgICAgICBjYXNl IEdFTl9PQ0xfUkNQOiB0aGlzLT5lbWl0VW5hcnlDYWxsSW5zdChJLGlyOjpPUF9SQ1ApOyBicmVh azsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX0ZPUkNFX1NJTUQ4OiBjdHguc2V0U2ltZFdpZHRo KDgpOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX0ZPUkNFX1NJTUQxNjogY3R4LnNl dFNpbWRXaWR0aCgxNik7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfTEJBUlJJRVI6 IGN0eC5TWU5DKGlyOjpzeW5jTG9jYWxCYXJyaWVyKTsgYnJlYWs7Ci1AQCAtNDk0NywzMSArNDk0 NSwzMSBAQAotICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICB9Ci0gICAgICAgICAgIGNh c2UgR0VOX09DTF9BVE9NSUNfQUREMDoKLS0gICAgICAgICAgY2FzZSBHRU5fT0NMX0FUT01JQ19B REQxOiB0aGlzLT5lbWl0QXRvbWljSW5zdChJLENTLGlyOjpBVE9NSUNfT1BfQUREKTsgYnJlYWs7 Ci0rICAgICAgICAgIGNhc2UgR0VOX09DTF9BVE9NSUNfQUREMTogdGhpcy0+ZW1pdEF0b21pY0lu c3QoSSxpcjo6QVRPTUlDX09QX0FERCk7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xf QVRPTUlDX1NVQjA6Ci0tICAgICAgICAgIGNhc2UgR0VOX09DTF9BVE9NSUNfU1VCMTogdGhpcy0+ ZW1pdEF0b21pY0luc3QoSSxDUyxpcjo6QVRPTUlDX09QX1NVQik7IGJyZWFrOwotKyAgICAgICAg ICBjYXNlIEdFTl9PQ0xfQVRPTUlDX1NVQjE6IHRoaXMtPmVtaXRBdG9taWNJbnN0KEksaXI6OkFU T01JQ19PUF9TVUIpOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX0FUT01JQ19BTkQw OgotLSAgICAgICAgICBjYXNlIEdFTl9PQ0xfQVRPTUlDX0FORDE6IHRoaXMtPmVtaXRBdG9taWNJ bnN0KEksQ1MsaXI6OkFUT01JQ19PUF9BTkQpOyBicmVhazsKLSsgICAgICAgICAgY2FzZSBHRU5f T0NMX0FUT01JQ19BTkQxOiB0aGlzLT5lbWl0QXRvbWljSW5zdChJLGlyOjpBVE9NSUNfT1BfQU5E KTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9BVE9NSUNfT1IwOgotLSAgICAgICAg ICBjYXNlIEdFTl9PQ0xfQVRPTUlDX09SMTogdGhpcy0+ZW1pdEF0b21pY0luc3QoSSxDUyxpcjo6 QVRPTUlDX09QX09SKTsgYnJlYWs7Ci0rICAgICAgICAgIGNhc2UgR0VOX09DTF9BVE9NSUNfT1Ix OiB0aGlzLT5lbWl0QXRvbWljSW5zdChJLGlyOjpBVE9NSUNfT1BfT1IpOyBicmVhazsKLSAgICAg ICAgICAgY2FzZSBHRU5fT0NMX0FUT01JQ19YT1IwOgotLSAgICAgICAgICBjYXNlIEdFTl9PQ0xf QVRPTUlDX1hPUjE6IHRoaXMtPmVtaXRBdG9taWNJbnN0KEksQ1MsaXI6OkFUT01JQ19PUF9YT1Ip OyBicmVhazsKLSsgICAgICAgICAgY2FzZSBHRU5fT0NMX0FUT01JQ19YT1IxOiB0aGlzLT5lbWl0 QXRvbWljSW5zdChJLGlyOjpBVE9NSUNfT1BfWE9SKTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2Ug R0VOX09DTF9BVE9NSUNfWENIRzA6Ci0tICAgICAgICAgIGNhc2UgR0VOX09DTF9BVE9NSUNfWENI RzE6IHRoaXMtPmVtaXRBdG9taWNJbnN0KEksQ1MsaXI6OkFUT01JQ19PUF9YQ0hHKTsgYnJlYWs7 Ci0rICAgICAgICAgIGNhc2UgR0VOX09DTF9BVE9NSUNfWENIRzE6IHRoaXMtPmVtaXRBdG9taWNJ bnN0KEksaXI6OkFUT01JQ19PUF9YQ0hHKTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09D TF9BVE9NSUNfSU5DMDoKLS0gICAgICAgICAgY2FzZSBHRU5fT0NMX0FUT01JQ19JTkMxOiB0aGlz LT5lbWl0QXRvbWljSW5zdChJLENTLGlyOjpBVE9NSUNfT1BfSU5DKTsgYnJlYWs7Ci0rICAgICAg ICAgIGNhc2UgR0VOX09DTF9BVE9NSUNfSU5DMTogdGhpcy0+ZW1pdEF0b21pY0luc3QoSSxpcjo6 QVRPTUlDX09QX0lOQyk7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfQVRPTUlDX0RF QzA6Ci0tICAgICAgICAgIGNhc2UgR0VOX09DTF9BVE9NSUNfREVDMTogdGhpcy0+ZW1pdEF0b21p Y0luc3QoSSxDUyxpcjo6QVRPTUlDX09QX0RFQyk7IGJyZWFrOwotKyAgICAgICAgICBjYXNlIEdF Tl9PQ0xfQVRPTUlDX0RFQzE6IHRoaXMtPmVtaXRBdG9taWNJbnN0KEksaXI6OkFUT01JQ19PUF9E RUMpOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX0FUT01JQ19VTUlOMDoKLS0gICAg ICAgICAgY2FzZSBHRU5fT0NMX0FUT01JQ19VTUlOMTogdGhpcy0+ZW1pdEF0b21pY0luc3QoSSxD Uyxpcjo6QVRPTUlDX09QX1VNSU4pOyBicmVhazsKLSsgICAgICAgICAgY2FzZSBHRU5fT0NMX0FU T01JQ19VTUlOMTogdGhpcy0+ZW1pdEF0b21pY0luc3QoSSxpcjo6QVRPTUlDX09QX1VNSU4pOyBi cmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX0FUT01JQ19VTUFYMDoKLS0gICAgICAgICAg Y2FzZSBHRU5fT0NMX0FUT01JQ19VTUFYMTogdGhpcy0+ZW1pdEF0b21pY0luc3QoSSxDUyxpcjo6 QVRPTUlDX09QX1VNQVgpOyBicmVhazsKLSsgICAgICAgICAgY2FzZSBHRU5fT0NMX0FUT01JQ19V TUFYMTogdGhpcy0+ZW1pdEF0b21pY0luc3QoSSxpcjo6QVRPTUlDX09QX1VNQVgpOyBicmVhazsK LSAgICAgICAgICAgY2FzZSBHRU5fT0NMX0FUT01JQ19JTUlOMDoKLS0gICAgICAgICAgY2FzZSBH RU5fT0NMX0FUT01JQ19JTUlOMTogdGhpcy0+ZW1pdEF0b21pY0luc3QoSSxDUyxpcjo6QVRPTUlD X09QX0lNSU4pOyBicmVhazsKLSsgICAgICAgICAgY2FzZSBHRU5fT0NMX0FUT01JQ19JTUlOMTog dGhpcy0+ZW1pdEF0b21pY0luc3QoSSxpcjo6QVRPTUlDX09QX0lNSU4pOyBicmVhazsKLSAgICAg ICAgICAgY2FzZSBHRU5fT0NMX0FUT01JQ19JTUFYMDoKLS0gICAgICAgICAgY2FzZSBHRU5fT0NM X0FUT01JQ19JTUFYMTogdGhpcy0+ZW1pdEF0b21pY0luc3QoSSxDUyxpcjo6QVRPTUlDX09QX0lN QVgpOyBicmVhazsKLSsgICAgICAgICAgY2FzZSBHRU5fT0NMX0FUT01JQ19JTUFYMTogdGhpcy0+ ZW1pdEF0b21pY0luc3QoSSxpcjo6QVRPTUlDX09QX0lNQVgpOyBicmVhazsKLSAgICAgICAgICAg Y2FzZSBHRU5fT0NMX0FUT01JQ19DTVBYQ0hHMDoKLS0gICAgICAgICAgY2FzZSBHRU5fT0NMX0FU T01JQ19DTVBYQ0hHMTogdGhpcy0+ZW1pdEF0b21pY0luc3QoSSxDUyxpcjo6QVRPTUlDX09QX0NN UFhDSEcpOyBicmVhazsKLSsgICAgICAgICAgY2FzZSBHRU5fT0NMX0FUT01JQ19DTVBYQ0hHMTog dGhpcy0+ZW1pdEF0b21pY0luc3QoSSxpcjo6QVRPTUlDX09QX0NNUFhDSEcpOyBicmVhazsKLSAg ICAgICAgICAgY2FzZSBHRU5fT0NMX0dFVF9JTUFHRV9XSURUSDoKLSAgICAgICAgICAgY2FzZSBH RU5fT0NMX0dFVF9JTUFHRV9IRUlHSFQ6Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9HRVRfSU1B R0VfREVQVEg6Ci1AQCAtNTQyOSw0OCArNTQyNyw0OCBAQAotICAgICAgICAgICAgIGN0eC5XQUlU KCk7Ci0gICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgIH0KLS0gICAgICAgICAgY2FzZSBH RU5fT0NMX1dPUktfR1JPVVBfQUxMOiB0aGlzLT5lbWl0V29ya0dyb3VwSW5zdChJLCBDUywgaXI6 OldPUktHUk9VUF9PUF9BTEwpOyBicmVhazsKLS0gICAgICAgICAgY2FzZSBHRU5fT0NMX1dPUktf R1JPVVBfQU5ZOiB0aGlzLT5lbWl0V29ya0dyb3VwSW5zdChJLCBDUywgaXI6OldPUktHUk9VUF9P UF9BTlkpOyBicmVhazsKLSsgICAgICAgICAgY2FzZSBHRU5fT0NMX1dPUktfR1JPVVBfQUxMOiB0 aGlzLT5lbWl0V29ya0dyb3VwSW5zdChJLCBpcjo6V09SS0dST1VQX09QX0FMTCk7IGJyZWFrOwot KyAgICAgICAgICBjYXNlIEdFTl9PQ0xfV09SS19HUk9VUF9BTlk6IHRoaXMtPmVtaXRXb3JrR3Jv dXBJbnN0KEksIGlyOjpXT1JLR1JPVVBfT1BfQU5ZKTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2Ug R0VOX09DTF9XT1JLX0dST1VQX0JST0FEQ0FTVDoKLS0gICAgICAgICAgICB0aGlzLT5lbWl0V29y a0dyb3VwSW5zdChJLCBDUywgaXI6OldPUktHUk9VUF9PUF9CUk9BRENBU1QpOyBicmVhazsKLSsg ICAgICAgICAgICB0aGlzLT5lbWl0V29ya0dyb3VwSW5zdChJLCBpcjo6V09SS0dST1VQX09QX0JS T0FEQ0FTVCk7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfV09SS19HUk9VUF9SRURV Q0VfQUREOgotLSAgICAgICAgICAgIHRoaXMtPmVtaXRXb3JrR3JvdXBJbnN0KEksIENTLCBpcjo6 V09SS0dST1VQX09QX1JFRFVDRV9BREQpOyBicmVhazsKLSsgICAgICAgICAgICB0aGlzLT5lbWl0 V29ya0dyb3VwSW5zdChJLCBpcjo6V09SS0dST1VQX09QX1JFRFVDRV9BREQpOyBicmVhazsKLSAg ICAgICAgICAgY2FzZSBHRU5fT0NMX1dPUktfR1JPVVBfUkVEVUNFX01BWDoKLS0gICAgICAgICAg ICB0aGlzLT5lbWl0V29ya0dyb3VwSW5zdChJLCBDUywgaXI6OldPUktHUk9VUF9PUF9SRURVQ0Vf TUFYKTsgYnJlYWs7Ci0rICAgICAgICAgICAgdGhpcy0+ZW1pdFdvcmtHcm91cEluc3QoSSwgaXI6 OldPUktHUk9VUF9PUF9SRURVQ0VfTUFYKTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09D TF9XT1JLX0dST1VQX1JFRFVDRV9NSU46Ci0tICAgICAgICAgICAgdGhpcy0+ZW1pdFdvcmtHcm91 cEluc3QoSSwgQ1MsIGlyOjpXT1JLR1JPVVBfT1BfUkVEVUNFX01JTik7IGJyZWFrOwotKyAgICAg ICAgICAgIHRoaXMtPmVtaXRXb3JrR3JvdXBJbnN0KEksIGlyOjpXT1JLR1JPVVBfT1BfUkVEVUNF X01JTik7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfV09SS19HUk9VUF9TQ0FOX0VY Q0xVU0lWRV9BREQ6Ci0tICAgICAgICAgICAgdGhpcy0+ZW1pdFdvcmtHcm91cEluc3QoSSwgQ1Ms IGlyOjpXT1JLR1JPVVBfT1BfRVhDTFVTSVZFX0FERCk7IGJyZWFrOwotKyAgICAgICAgICAgIHRo aXMtPmVtaXRXb3JrR3JvdXBJbnN0KEksIGlyOjpXT1JLR1JPVVBfT1BfRVhDTFVTSVZFX0FERCk7 IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfV09SS19HUk9VUF9TQ0FOX0VYQ0xVU0lW RV9NQVg6Ci0tICAgICAgICAgICAgdGhpcy0+ZW1pdFdvcmtHcm91cEluc3QoSSwgQ1MsIGlyOjpX T1JLR1JPVVBfT1BfRVhDTFVTSVZFX01BWCk7IGJyZWFrOwotKyAgICAgICAgICAgIHRoaXMtPmVt aXRXb3JrR3JvdXBJbnN0KEksIGlyOjpXT1JLR1JPVVBfT1BfRVhDTFVTSVZFX01BWCk7IGJyZWFr OwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfV09SS19HUk9VUF9TQ0FOX0VYQ0xVU0lWRV9NSU46 Ci0tICAgICAgICAgICAgdGhpcy0+ZW1pdFdvcmtHcm91cEluc3QoSSwgQ1MsIGlyOjpXT1JLR1JP VVBfT1BfRVhDTFVTSVZFX01JTik7IGJyZWFrOwotKyAgICAgICAgICAgIHRoaXMtPmVtaXRXb3Jr R3JvdXBJbnN0KEksIGlyOjpXT1JLR1JPVVBfT1BfRVhDTFVTSVZFX01JTik7IGJyZWFrOwotICAg ICAgICAgICBjYXNlIEdFTl9PQ0xfV09SS19HUk9VUF9TQ0FOX0lOQ0xVU0lWRV9BREQ6Ci0tICAg ICAgICAgICAgdGhpcy0+ZW1pdFdvcmtHcm91cEluc3QoSSwgQ1MsIGlyOjpXT1JLR1JPVVBfT1Bf SU5DTFVTSVZFX0FERCk7IGJyZWFrOwotKyAgICAgICAgICAgIHRoaXMtPmVtaXRXb3JrR3JvdXBJ bnN0KEksIGlyOjpXT1JLR1JPVVBfT1BfSU5DTFVTSVZFX0FERCk7IGJyZWFrOwotICAgICAgICAg ICBjYXNlIEdFTl9PQ0xfV09SS19HUk9VUF9TQ0FOX0lOQ0xVU0lWRV9NQVg6Ci0tICAgICAgICAg ICAgdGhpcy0+ZW1pdFdvcmtHcm91cEluc3QoSSwgQ1MsIGlyOjpXT1JLR1JPVVBfT1BfSU5DTFVT SVZFX01BWCk7IGJyZWFrOwotKyAgICAgICAgICAgIHRoaXMtPmVtaXRXb3JrR3JvdXBJbnN0KEks IGlyOjpXT1JLR1JPVVBfT1BfSU5DTFVTSVZFX01BWCk7IGJyZWFrOwotICAgICAgICAgICBjYXNl IEdFTl9PQ0xfV09SS19HUk9VUF9TQ0FOX0lOQ0xVU0lWRV9NSU46Ci0tICAgICAgICAgICAgdGhp cy0+ZW1pdFdvcmtHcm91cEluc3QoSSwgQ1MsIGlyOjpXT1JLR1JPVVBfT1BfSU5DTFVTSVZFX01J Tik7IGJyZWFrOwotKyAgICAgICAgICAgIHRoaXMtPmVtaXRXb3JrR3JvdXBJbnN0KEksIGlyOjpX T1JLR1JPVVBfT1BfSU5DTFVTSVZFX01JTik7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9P Q0xfU1VCX0dST1VQX0JST0FEQ0FTVDoKLS0gICAgICAgICAgICB0aGlzLT5lbWl0U3ViR3JvdXBJ bnN0KEksIENTLCBpcjo6V09SS0dST1VQX09QX0JST0FEQ0FTVCk7IGJyZWFrOwotKyAgICAgICAg ICAgIHRoaXMtPmVtaXRTdWJHcm91cEluc3QoSSwgaXI6OldPUktHUk9VUF9PUF9CUk9BRENBU1Qp OyBicmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX1NVQl9HUk9VUF9SRURVQ0VfQUREOgot LSAgICAgICAgICAgIHRoaXMtPmVtaXRTdWJHcm91cEluc3QoSSwgQ1MsIGlyOjpXT1JLR1JPVVBf T1BfUkVEVUNFX0FERCk7IGJyZWFrOwotKyAgICAgICAgICAgIHRoaXMtPmVtaXRTdWJHcm91cElu c3QoSSwgaXI6OldPUktHUk9VUF9PUF9SRURVQ0VfQUREKTsgYnJlYWs7Ci0gICAgICAgICAgIGNh c2UgR0VOX09DTF9TVUJfR1JPVVBfUkVEVUNFX01BWDoKLS0gICAgICAgICAgICB0aGlzLT5lbWl0 U3ViR3JvdXBJbnN0KEksIENTLCBpcjo6V09SS0dST1VQX09QX1JFRFVDRV9NQVgpOyBicmVhazsK LSsgICAgICAgICAgICB0aGlzLT5lbWl0U3ViR3JvdXBJbnN0KEksIGlyOjpXT1JLR1JPVVBfT1Bf UkVEVUNFX01BWCk7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfU1VCX0dST1VQX1JF RFVDRV9NSU46Ci0tICAgICAgICAgICAgdGhpcy0+ZW1pdFN1Ykdyb3VwSW5zdChJLCBDUywgaXI6 OldPUktHUk9VUF9PUF9SRURVQ0VfTUlOKTsgYnJlYWs7Ci0rICAgICAgICAgICAgdGhpcy0+ZW1p dFN1Ykdyb3VwSW5zdChJLCBpcjo6V09SS0dST1VQX09QX1JFRFVDRV9NSU4pOyBicmVhazsKLSAg ICAgICAgICAgY2FzZSBHRU5fT0NMX1NVQl9HUk9VUF9TQ0FOX0VYQ0xVU0lWRV9BREQ6Ci0tICAg ICAgICAgICAgdGhpcy0+ZW1pdFN1Ykdyb3VwSW5zdChJLCBDUywgaXI6OldPUktHUk9VUF9PUF9F WENMVVNJVkVfQUREKTsgYnJlYWs7Ci0rICAgICAgICAgICAgdGhpcy0+ZW1pdFN1Ykdyb3VwSW5z dChJLCBpcjo6V09SS0dST1VQX09QX0VYQ0xVU0lWRV9BREQpOyBicmVhazsKLSAgICAgICAgICAg Y2FzZSBHRU5fT0NMX1NVQl9HUk9VUF9TQ0FOX0VYQ0xVU0lWRV9NQVg6Ci0tICAgICAgICAgICAg dGhpcy0+ZW1pdFN1Ykdyb3VwSW5zdChJLCBDUywgaXI6OldPUktHUk9VUF9PUF9FWENMVVNJVkVf TUFYKTsgYnJlYWs7Ci0rICAgICAgICAgICAgdGhpcy0+ZW1pdFN1Ykdyb3VwSW5zdChJLCBpcjo6 V09SS0dST1VQX09QX0VYQ0xVU0lWRV9NQVgpOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5f T0NMX1NVQl9HUk9VUF9TQ0FOX0VYQ0xVU0lWRV9NSU46Ci0tICAgICAgICAgICAgdGhpcy0+ZW1p dFN1Ykdyb3VwSW5zdChJLCBDUywgaXI6OldPUktHUk9VUF9PUF9FWENMVVNJVkVfTUlOKTsgYnJl YWs7Ci0rICAgICAgICAgICAgdGhpcy0+ZW1pdFN1Ykdyb3VwSW5zdChJLCBpcjo6V09SS0dST1VQ X09QX0VYQ0xVU0lWRV9NSU4pOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX1NVQl9H Uk9VUF9TQ0FOX0lOQ0xVU0lWRV9BREQ6Ci0tICAgICAgICAgICAgdGhpcy0+ZW1pdFN1Ykdyb3Vw SW5zdChJLCBDUywgaXI6OldPUktHUk9VUF9PUF9JTkNMVVNJVkVfQUREKTsgYnJlYWs7Ci0rICAg ICAgICAgICAgdGhpcy0+ZW1pdFN1Ykdyb3VwSW5zdChJLCBpcjo6V09SS0dST1VQX09QX0lOQ0xV U0lWRV9BREQpOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX1NVQl9HUk9VUF9TQ0FO X0lOQ0xVU0lWRV9NQVg6Ci0tICAgICAgICAgICAgdGhpcy0+ZW1pdFN1Ykdyb3VwSW5zdChJLCBD UywgaXI6OldPUktHUk9VUF9PUF9JTkNMVVNJVkVfTUFYKTsgYnJlYWs7Ci0rICAgICAgICAgICAg dGhpcy0+ZW1pdFN1Ykdyb3VwSW5zdChJLCBpcjo6V09SS0dST1VQX09QX0lOQ0xVU0lWRV9NQVgp OyBicmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX1NVQl9HUk9VUF9TQ0FOX0lOQ0xVU0lW RV9NSU46Ci0tICAgICAgICAgICAgdGhpcy0+ZW1pdFN1Ykdyb3VwSW5zdChJLCBDUywgaXI6OldP UktHUk9VUF9PUF9JTkNMVVNJVkVfTUlOKTsgYnJlYWs7Ci0rICAgICAgICAgICAgdGhpcy0+ZW1p dFN1Ykdyb3VwSW5zdChJLCBpcjo6V09SS0dST1VQX09QX0lOQ0xVU0lWRV9NSU4pOyBicmVhazsK LSAgICAgICAgICAgY2FzZSBHRU5fT0NMX0xSUDoKLSAgICAgICAgICAgewotICAgICAgICAgICAg IGNvbnN0IGlyOjpSZWdpc3RlciBkc3QgID0gdGhpcy0+Z2V0UmVnaXN0ZXIoJkkpOwotQEAgLTU0 ODQsNjkgKzU0ODIsNjkgQEAKLSAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgfQotICAg ICAgICAgICBjYXNlIEdFTl9PQ0xfU1VCX0dST1VQX0JMT0NLX1JFQURfVUlfTUVNOgotLSAgICAg ICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZU1lbUluc3QoSSwgQ1MsIGZhbHNlLCAxKTsg YnJlYWs7Ci0rICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlTWVtSW5zdChJLCBm YWxzZSwgMSk7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfU1VCX0dST1VQX0JMT0NL X1JFQURfVUlfTUVNMjoKLS0gICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVNZW1J bnN0KEksIENTLCBmYWxzZSwgMik7IGJyZWFrOwotKyAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9j a1JlYWRXcml0ZU1lbUluc3QoSSwgZmFsc2UsIDIpOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBH RU5fT0NMX1NVQl9HUk9VUF9CTE9DS19SRUFEX1VJX01FTTQ6Ci0tICAgICAgICAgICAgdGhpcy0+ ZW1pdEJsb2NrUmVhZFdyaXRlTWVtSW5zdChJLCBDUywgZmFsc2UsIDQpOyBicmVhazsKLSsgICAg ICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVNZW1JbnN0KEksIGZhbHNlLCA0KTsgYnJl YWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9TVUJfR1JPVVBfQkxPQ0tfUkVBRF9VSV9NRU04 OgotLSAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZU1lbUluc3QoSSwgQ1MsIGZh bHNlLCA4KTsgYnJlYWs7Ci0rICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlTWVt SW5zdChJLCBmYWxzZSwgOCk7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfU1VCX0dS T1VQX0JMT0NLX1dSSVRFX1VJX01FTToKLS0gICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFk V3JpdGVNZW1JbnN0KEksIENTLCB0cnVlLCAxKTsgYnJlYWs7Ci0rICAgICAgICAgICAgdGhpcy0+ ZW1pdEJsb2NrUmVhZFdyaXRlTWVtSW5zdChJLCB0cnVlLCAxKTsgYnJlYWs7Ci0gICAgICAgICAg IGNhc2UgR0VOX09DTF9TVUJfR1JPVVBfQkxPQ0tfV1JJVEVfVUlfTUVNMjoKLS0gICAgICAgICAg ICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVNZW1JbnN0KEksIENTLCB0cnVlLCAyKTsgYnJlYWs7 Ci0rICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlTWVtSW5zdChJLCB0cnVlLCAy KTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9TVUJfR1JPVVBfQkxPQ0tfV1JJVEVf VUlfTUVNNDoKLS0gICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVNZW1JbnN0KEks IENTLCB0cnVlLCA0KTsgYnJlYWs7Ci0rICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdy aXRlTWVtSW5zdChJLCB0cnVlLCA0KTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9T VUJfR1JPVVBfQkxPQ0tfV1JJVEVfVUlfTUVNODoKLS0gICAgICAgICAgICB0aGlzLT5lbWl0Qmxv Y2tSZWFkV3JpdGVNZW1JbnN0KEksIENTLCB0cnVlLCA4KTsgYnJlYWs7Ci0rICAgICAgICAgICAg dGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlTWVtSW5zdChJLCB0cnVlLCA4KTsgYnJlYWs7Ci0gICAg ICAgICAgIGNhc2UgR0VOX09DTF9TVUJfR1JPVVBfQkxPQ0tfUkVBRF9VSV9JTUFHRToKLS0gICAg ICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVJbWFnZUluc3QoSSwgQ1MsIGZhbHNlLCAx KTsgYnJlYWs7Ci0rICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlSW1hZ2VJbnN0 KEksIGZhbHNlLCAxKTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9TVUJfR1JPVVBf QkxPQ0tfUkVBRF9VSV9JTUFHRTI6Ci0tICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdy aXRlSW1hZ2VJbnN0KEksIENTLCBmYWxzZSwgMik7IGJyZWFrOwotKyAgICAgICAgICAgIHRoaXMt PmVtaXRCbG9ja1JlYWRXcml0ZUltYWdlSW5zdChJLCBmYWxzZSwgMik7IGJyZWFrOwotICAgICAg ICAgICBjYXNlIEdFTl9PQ0xfU1VCX0dST1VQX0JMT0NLX1JFQURfVUlfSU1BR0U0OgotLSAgICAg ICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZUltYWdlSW5zdChJLCBDUywgZmFsc2UsIDQp OyBicmVhazsKLSsgICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVJbWFnZUluc3Qo SSwgZmFsc2UsIDQpOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX1NVQl9HUk9VUF9C TE9DS19SRUFEX1VJX0lNQUdFODoKLS0gICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3Jp dGVJbWFnZUluc3QoSSwgQ1MsIGZhbHNlLCA4KTsgYnJlYWs7Ci0rICAgICAgICAgICAgdGhpcy0+ ZW1pdEJsb2NrUmVhZFdyaXRlSW1hZ2VJbnN0KEksIGZhbHNlLCA4KTsgYnJlYWs7Ci0gICAgICAg ICAgIGNhc2UgR0VOX09DTF9TVUJfR1JPVVBfQkxPQ0tfV1JJVEVfVUlfSU1BR0U6Ci0tICAgICAg ICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlSW1hZ2VJbnN0KEksIENTLCB0cnVlLCAxKTsg YnJlYWs7Ci0rICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlSW1hZ2VJbnN0KEks IHRydWUsIDEpOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX1NVQl9HUk9VUF9CTE9D S19XUklURV9VSV9JTUFHRTI6Ci0tICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRl SW1hZ2VJbnN0KEksIENTLCB0cnVlLCAyKTsgYnJlYWs7Ci0rICAgICAgICAgICAgdGhpcy0+ZW1p dEJsb2NrUmVhZFdyaXRlSW1hZ2VJbnN0KEksIHRydWUsIDIpOyBicmVhazsKLSAgICAgICAgICAg Y2FzZSBHRU5fT0NMX1NVQl9HUk9VUF9CTE9DS19XUklURV9VSV9JTUFHRTQ6Ci0tICAgICAgICAg ICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlSW1hZ2VJbnN0KEksIENTLCB0cnVlLCA0KTsgYnJl YWs7Ci0rICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlSW1hZ2VJbnN0KEksIHRy dWUsIDQpOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX1NVQl9HUk9VUF9CTE9DS19X UklURV9VSV9JTUFHRTg6Ci0tICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlSW1h Z2VJbnN0KEksIENTLCB0cnVlLCA4KTsgYnJlYWs7Ci0rICAgICAgICAgICAgdGhpcy0+ZW1pdEJs b2NrUmVhZFdyaXRlSW1hZ2VJbnN0KEksIHRydWUsIDgpOyBicmVhazsKLSAgICAgICAgICAgY2Fz ZSBHRU5fT0NMX1NVQl9HUk9VUF9CTE9DS19SRUFEX1VTX01FTToKLS0gICAgICAgICAgICB0aGlz LT5lbWl0QmxvY2tSZWFkV3JpdGVNZW1JbnN0KEksIENTLCBmYWxzZSwgMSwgaXI6OlRZUEVfVTE2 KTsgYnJlYWs7Ci0rICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlTWVtSW5zdChJ LCBmYWxzZSwgMSwgaXI6OlRZUEVfVTE2KTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09D TF9TVUJfR1JPVVBfQkxPQ0tfUkVBRF9VU19NRU0yOgotLSAgICAgICAgICAgIHRoaXMtPmVtaXRC bG9ja1JlYWRXcml0ZU1lbUluc3QoSSwgQ1MsIGZhbHNlLCAyLCBpcjo6VFlQRV9VMTYpOyBicmVh azsKLSsgICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVNZW1JbnN0KEksIGZhbHNl LCAyLCBpcjo6VFlQRV9VMTYpOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX1NVQl9H Uk9VUF9CTE9DS19SRUFEX1VTX01FTTQ6Ci0tICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVh ZFdyaXRlTWVtSW5zdChJLCBDUywgZmFsc2UsIDQsIGlyOjpUWVBFX1UxNik7IGJyZWFrOwotKyAg ICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZU1lbUluc3QoSSwgZmFsc2UsIDQsIGly OjpUWVBFX1UxNik7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfU1VCX0dST1VQX0JM T0NLX1JFQURfVVNfTUVNODoKLS0gICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVN ZW1JbnN0KEksIENTLCBmYWxzZSwgOCwgaXI6OlRZUEVfVTE2KTsgYnJlYWs7Ci0rICAgICAgICAg ICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlTWVtSW5zdChJLCBmYWxzZSwgOCwgaXI6OlRZUEVf VTE2KTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9TVUJfR1JPVVBfQkxPQ0tfV1JJ VEVfVVNfTUVNOgotLSAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZU1lbUluc3Qo SSwgQ1MsIHRydWUsIDEsIGlyOjpUWVBFX1UxNik7IGJyZWFrOwotKyAgICAgICAgICAgIHRoaXMt PmVtaXRCbG9ja1JlYWRXcml0ZU1lbUluc3QoSSwgdHJ1ZSwgMSwgaXI6OlRZUEVfVTE2KTsgYnJl YWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9TVUJfR1JPVVBfQkxPQ0tfV1JJVEVfVVNfTUVN MjoKLS0gICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVNZW1JbnN0KEksIENTLCB0 cnVlLCAyLCBpcjo6VFlQRV9VMTYpOyBicmVhazsKLSsgICAgICAgICAgICB0aGlzLT5lbWl0Qmxv Y2tSZWFkV3JpdGVNZW1JbnN0KEksIHRydWUsIDIsIGlyOjpUWVBFX1UxNik7IGJyZWFrOwotICAg ICAgICAgICBjYXNlIEdFTl9PQ0xfU1VCX0dST1VQX0JMT0NLX1dSSVRFX1VTX01FTTQ6Ci0tICAg ICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlTWVtSW5zdChJLCBDUywgdHJ1ZSwgNCwg aXI6OlRZUEVfVTE2KTsgYnJlYWs7Ci0rICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdy aXRlTWVtSW5zdChJLCB0cnVlLCA0LCBpcjo6VFlQRV9VMTYpOyBicmVhazsKLSAgICAgICAgICAg Y2FzZSBHRU5fT0NMX1NVQl9HUk9VUF9CTE9DS19XUklURV9VU19NRU04OgotLSAgICAgICAgICAg IHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZU1lbUluc3QoSSwgQ1MsIHRydWUsIDgsIGlyOjpUWVBF X1UxNik7IGJyZWFrOwotKyAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZU1lbUlu c3QoSSwgdHJ1ZSwgOCwgaXI6OlRZUEVfVTE2KTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VO X09DTF9TVUJfR1JPVVBfQkxPQ0tfUkVBRF9VU19JTUFHRToKLS0gICAgICAgICAgICB0aGlzLT5l bWl0QmxvY2tSZWFkV3JpdGVJbWFnZUluc3QoSSwgQ1MsIGZhbHNlLCAxLCBpcjo6VFlQRV9VMTYp OyBicmVhazsKLSsgICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVJbWFnZUluc3Qo SSwgZmFsc2UsIDEsIGlyOjpUWVBFX1UxNik7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9P Q0xfU1VCX0dST1VQX0JMT0NLX1JFQURfVVNfSU1BR0UyOgotLSAgICAgICAgICAgIHRoaXMtPmVt aXRCbG9ja1JlYWRXcml0ZUltYWdlSW5zdChJLCBDUywgZmFsc2UsIDIsIGlyOjpUWVBFX1UxNik7 IGJyZWFrOwotKyAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZUltYWdlSW5zdChJ LCBmYWxzZSwgMiwgaXI6OlRZUEVfVTE2KTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09D TF9TVUJfR1JPVVBfQkxPQ0tfUkVBRF9VU19JTUFHRTQ6Ci0tICAgICAgICAgICAgdGhpcy0+ZW1p dEJsb2NrUmVhZFdyaXRlSW1hZ2VJbnN0KEksIENTLCBmYWxzZSwgNCwgaXI6OlRZUEVfVTE2KTsg YnJlYWs7Ci0rICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlSW1hZ2VJbnN0KEks IGZhbHNlLCA0LCBpcjo6VFlQRV9VMTYpOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NM X1NVQl9HUk9VUF9CTE9DS19SRUFEX1VTX0lNQUdFODoKLS0gICAgICAgICAgICB0aGlzLT5lbWl0 QmxvY2tSZWFkV3JpdGVJbWFnZUluc3QoSSwgQ1MsIGZhbHNlLCA4LCBpcjo6VFlQRV9VMTYpOyBi cmVhazsKLSsgICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVJbWFnZUluc3QoSSwg ZmFsc2UsIDgsIGlyOjpUWVBFX1UxNik7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xf U1VCX0dST1VQX0JMT0NLX1dSSVRFX1VTX0lNQUdFOgotLSAgICAgICAgICAgIHRoaXMtPmVtaXRC bG9ja1JlYWRXcml0ZUltYWdlSW5zdChJLCBDUywgdHJ1ZSwgMSwgaXI6OlRZUEVfVTE2KTsgYnJl YWs7Ci0rICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlSW1hZ2VJbnN0KEksIHRy dWUsIDEsIGlyOjpUWVBFX1UxNik7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfU1VC X0dST1VQX0JMT0NLX1dSSVRFX1VTX0lNQUdFMjoKLS0gICAgICAgICAgICB0aGlzLT5lbWl0Qmxv Y2tSZWFkV3JpdGVJbWFnZUluc3QoSSwgQ1MsIHRydWUsIDIsIGlyOjpUWVBFX1UxNik7IGJyZWFr OwotKyAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1JlYWRXcml0ZUltYWdlSW5zdChJLCB0cnVl LCAyLCBpcjo6VFlQRV9VMTYpOyBicmVhazsKLSAgICAgICAgICAgY2FzZSBHRU5fT0NMX1NVQl9H Uk9VUF9CTE9DS19XUklURV9VU19JTUFHRTQ6Ci0tICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2Nr UmVhZFdyaXRlSW1hZ2VJbnN0KEksIENTLCB0cnVlLCA0LCBpcjo6VFlQRV9VMTYpOyBicmVhazsK LSsgICAgICAgICAgICB0aGlzLT5lbWl0QmxvY2tSZWFkV3JpdGVJbWFnZUluc3QoSSwgdHJ1ZSwg NCwgaXI6OlRZUEVfVTE2KTsgYnJlYWs7Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9TVUJfR1JP VVBfQkxPQ0tfV1JJVEVfVVNfSU1BR0U4OgotLSAgICAgICAgICAgIHRoaXMtPmVtaXRCbG9ja1Jl YWRXcml0ZUltYWdlSW5zdChJLCBDUywgdHJ1ZSwgOCwgaXI6OlRZUEVfVTE2KTsgYnJlYWs7Ci0r ICAgICAgICAgICAgdGhpcy0+ZW1pdEJsb2NrUmVhZFdyaXRlSW1hZ2VJbnN0KEksIHRydWUsIDgs IGlyOjpUWVBFX1UxNik7IGJyZWFrOwotICAgICAgICAgICBjYXNlIEdFTl9PQ0xfR0VUX1BJUEU6 Ci0gICAgICAgICAgIGNhc2UgR0VOX09DTF9NQUtFX1JJRDoKLSAgICAgICAgICAgY2FzZSBHRU5f T0NMX0dFVF9SSUQ6Ci0tLS0gYS9iYWNrZW5kL3NyYy9sbHZtL2xsdm1faW5jbHVkZXMuaHBwCTIw MjAtMTEtMDkgMTY6NDg6MjAuODIzODY2MTEyICswMTAwCi0rKysgYi9iYWNrZW5kL3NyYy9sbHZt L2xsdm1faW5jbHVkZXMuaHBwCTIwMjAtMTEtMDkgMTk6MDA6MDkuOTU1OTI2Nzk1ICswMTAwCi1A QCAtMTAzLDcgKzEwMyw2IEBACi0KLSAjaWYgTExWTV9WRVJTSU9OX01BSk9SICogMTAgKyBMTFZN X1ZFUlNJT05fTUlOT1IgPj0gMzUKLSAjaW5jbHVkZSAibGx2bS9JUi9NYW5nbGVyLmgiCi0tI2lu Y2x1ZGUgImxsdm0vSVIvQ2FsbFNpdGUuaCIKLSAjaW5jbHVkZSAibGx2bS9JUi9DRkcuaCIKLSAj aW5jbHVkZSAibGx2bS9JUi9JbnN0VmlzaXRvci5oIgotICNpbmNsdWRlICJsbHZtL0lSL0lSUHJp bnRpbmdQYXNzZXMuaCIKLS0tLSBhL2JhY2tlbmQvc3JjL2xsdm0vbGx2bV9sb2Fkc3RvcmVfb3B0 aW1pemF0aW9uLmNwcAkyMDIwLTExLTA5IDE2OjQ4OjIwLjgyMzg2NjExMiArMDEwMAotKysrIGIv YmFja2VuZC9zcmMvbGx2bS9sbHZtX2xvYWRzdG9yZV9vcHRpbWl6YXRpb24uY3BwCTIwMjAtMTEt MDkgMTk6MTA6MzcuMTQxODUyMzA4ICswMTAwCi1AQCAtMTYwLDcgKzE2MCw3IEBACi0gICAgIFZh bHVlICp2ZWNQdHIgPSBCdWlsZGVyLkNyZWF0ZUJpdENhc3QobGQtPmdldFBvaW50ZXJPcGVyYW5k KCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBvaW50ZXJUeXBl OjpnZXQodmVjVHksIGFkZHJTcGFjZSkpOwotICAgICBMb2FkSW5zdCAqdmVjVmFsdWUgPSBCdWls ZGVyLkNyZWF0ZUxvYWQodmVjUHRyKTsKLS0gICAgdmVjVmFsdWUtPnNldEFsaWdubWVudChhbGln bik7Ci0rICAgIHZlY1ZhbHVlLT5zZXRBbGlnbm1lbnQoYWxpZ24udmFsdWVPck9uZSgpKTsKLQot ICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgc2l6ZTsgKytpKSB7Ci0gICAgICAgVmFsdWUg KlMgPSBCdWlsZGVyLkNyZWF0ZUV4dHJhY3RFbGVtZW50KHZlY1ZhbHVlLCBCdWlsZGVyLmdldElu dDMyKGkpKTsKLUBAIC0yNTEsNyArMjUxLDcgQEAKLSAgICAgICByZXR1cm47Ci0gICAgIFZhbHVl ICpuZXdQdHIgPSBCdWlsZGVyLkNyZWF0ZUJpdENhc3Qoc3RQb2ludGVyLCBQb2ludGVyVHlwZTo6 Z2V0KHZlY1R5LCBhZGRyU3BhY2UpKTsKLSAgICAgU3RvcmVJbnN0ICpuZXdTVCA9IEJ1aWxkZXIu Q3JlYXRlU3RvcmUocGFyZW50LCBuZXdQdHIpOwotLSAgICBuZXdTVC0+c2V0QWxpZ25tZW50KGFs aWduKTsKLSsgICAgbmV3U1QtPnNldEFsaWdubWVudChhbGlnbi52YWx1ZU9yT25lKCkpOwotICAg fQotCi0gICAvLyBGaW5kIHRoZSBzYWZlIGl0ZXJhdG9yIHdlIGNhbiBwb2ludCB0by4gSWYgcmVv cmRlciBoYXBwZW5zLCB3ZSBuZWVkIHRvCi0tLS0gYS9iYWNrZW5kL3NyYy9sbHZtL2xsdm1fcGFz c2VzLmNwcAkyMDIwLTExLTA5IDE2OjQ4OjIwLjgyMzg2NjExMiArMDEwMAotKysrIGIvYmFja2Vu ZC9zcmMvbGx2bS9sbHZtX3Bhc3Nlcy5jcHAJMjAyMC0xMS0wOSAxODo0ODo1NS45OTcwMDY4Mzcg KzAxMDAKLUBAIC05NSw3ICs5NSw3IEBACi0gICB7Ci0gICAgIHN3aXRjaCAoVHktPmdldFR5cGVJ RCgpKSB7Ci0gICAgICAgY2FzZSBUeXBlOjpWb2lkVHlJRDogTk9UX1NVUFBPUlRFRDsKLS0gICAg ICBjYXNlIFR5cGU6OlZlY3RvclR5SUQ6Ci0rICAgICAgY2FzZSBUeXBlOjpGaXhlZFZlY3RvclR5 SUQ6Ci0gICAgICAgewotICAgICAgICAgY29uc3QgVmVjdG9yVHlwZSogVmVjVHkgPSBjYXN0PFZl Y3RvclR5cGU+KFR5KTsKLSAgICAgICAgIHVpbnQzMl90IGVsZW1OdW0gPSBWZWNUeS0+Z2V0TnVt RWxlbWVudHMoKTsKLUBAIC0xMzgsNyArMTM4LDcgQEAKLSAgICAgICBjYXNlIFR5cGU6OkhhbGZU eUlEOiAgICByZXR1cm4gMTY7Ci0gICAgICAgY2FzZSBUeXBlOjpGbG9hdFR5SUQ6ICAgcmV0dXJu IDMyOwotICAgICAgIGNhc2UgVHlwZTo6RG91YmxlVHlJRDogIHJldHVybiA2NDsKLS0gICAgICBj YXNlIFR5cGU6OlZlY3RvclR5SUQ6Ci0rICAgICAgY2FzZSBUeXBlOjpGaXhlZFZlY3RvclR5SUQ6 Ci0gICAgICAgewotICAgICAgICAgY29uc3QgVmVjdG9yVHlwZSogVmVjVHkgPSBjYXN0PFZlY3Rv clR5cGU+KFR5KTsKLSAgICAgICAgIHVpbnQzMl90IG51bUVsZW0gPSBWZWNUeS0+Z2V0TnVtRWxl bWVudHMoKTsKLUBAIC0xODQsMTAgKzE4NCwxMiBAQAotICAgICBUeXBlICplbGVtZW50VHlwZSA9 IE5VTEw7Ci0gICAgIGlmIChQb2ludGVyVHlwZSogcHRyVHlwZSA9IGR5bl9jYXN0PFBvaW50ZXJU eXBlPihlbHRUeSkpCi0gICAgICAgZWxlbWVudFR5cGUgPSBwdHJUeXBlLT5nZXRFbGVtZW50VHlw ZSgpOwotLSAgICBlbHNlIGlmKFNlcXVlbnRpYWxUeXBlICogc2VxVHlwZSA9IGR5bl9jYXN0PFNl cXVlbnRpYWxUeXBlPihlbHRUeSkpCi0tICAgICAgZWxlbWVudFR5cGUgPSBzZXFUeXBlLT5nZXRF bGVtZW50VHlwZSgpOwotLSAgICBlbHNlIGlmKENvbXBvc2l0ZVR5cGUgKiBjb21wVHk9IGR5bl9j YXN0PENvbXBvc2l0ZVR5cGU+KGVsdFR5KSkKLS0gICAgICBlbGVtZW50VHlwZSA9IGNvbXBUeS0+ Z2V0VHlwZUF0SW5kZXgoaW5kZXgpOwotKyAgICBlbHNlIGlmIChBcnJheVR5cGUgKiBhcnJUeXBl ID0gZHluX2Nhc3Q8QXJyYXlUeXBlPihlbHRUeSkpCi0rICAgICAgZWxlbWVudFR5cGUgPSBhcnJU eXBlLT5nZXRFbGVtZW50VHlwZSgpOwotKyAgICBlbHNlIGlmKFZlY3RvclR5cGUgKiB2ZWNUeXBl ID0gZHluX2Nhc3Q8VmVjdG9yVHlwZT4oZWx0VHkpKQotKyAgICAgIGVsZW1lbnRUeXBlID0gdmVj VHlwZS0+Z2V0RWxlbWVudFR5cGUoKTsKLSsgICAgZWxzZSBpZihTdHJ1Y3RUeXBlICogc3RydWN0 VHlwZSA9IGR5bl9jYXN0PFN0cnVjdFR5cGU+KGVsdFR5KSkKLSsgICAgICBlbGVtZW50VHlwZSA9 IHN0cnVjdFR5cGUtPmdldFR5cGVBdEluZGV4KGluZGV4KTsKLSAgICAgR0JFX0FTU0VSVChlbGVt ZW50VHlwZSk7Ci0gICAgIHJldHVybiBlbGVtZW50VHlwZTsKLSAgIH0KLS0tLSBhL2JhY2tlbmQv c3JjL2xsdm0vbGx2bV9wcmludGZfcGFyc2VyLmNwcAkyMDIwLTExLTA5IDE2OjQ4OjIwLjgyMzg2 NjExMiArMDEwMAotKysrIGIvYmFja2VuZC9zcmMvbGx2bS9sbHZtX3ByaW50Zl9wYXJzZXIuY3Bw CTIwMjAtMTEtMDkgMTg6NTc6NTIuNjE4OTQzMTA1ICswMTAwCi1AQCAtMzIzLDggKzMyMyw3IEBA Ci0KLSAgIGJvb2wgUHJpbnRmUGFyc2VyOjpwYXJzZU9uZVByaW50Zkluc3RydWN0aW9uKENhbGxJ bnN0ICogY2FsbCkKLSAgIHsKLS0gICAgQ2FsbFNpdGUgQ1MoY2FsbCk7Ci0tICAgIENhbGxTaXRl OjphcmdfaXRlcmF0b3IgQ0lfRk1UID0gQ1MuYXJnX2JlZ2luKCk7Ci0rICAgIFVzZXI6Om9wX2l0 ZXJhdG9yIENJX0ZNVCA9IGNhbGwtPmFyZ19iZWdpbigpOwotICAgICBpbnQgcGFyYW1fbnVtID0g MDsKLQotICAgICBsbHZtOjpDb25zdGFudCogYXJnMCA9IGR5bl9jYXN0PGxsdm06OkNvbnN0YW50 RXhwcj4oKkNJX0ZNVCk7Ci1AQCAtMzQxLDcgKzM0MCw3IEBACi0gICAgICAgcmV0dXJuIGZhbHNl OwotICAgICB9Ci0KLS0gICAgc3RkOjpzdHJpbmcgZm10ID0gZm10X2FyZy0+Z2V0QXNDU3RyaW5n KCk7Ci0rICAgIHN0ZDo6c3RyaW5nIGZtdCA9IGZtdF9hcmctPmdldEFzQ1N0cmluZygpLnN0cigp OwotICAgICBpZiAoZm10LnNpemUoKSA9PSAwKQotICAgICAgIHJldHVybiBmYWxzZTsKLQotQEAg LTQzNyw4ICs0MzYsOCBAQAotICAgICAgICAgaWYgKCBjYWxsRnVuYy0+Z2V0SW50cmluc2ljSUQo KSAhPSAwKQotICAgICAgICAgICBjb250aW51ZTsKLQotLSAgICAgICAgVmFsdWUgKkNhbGxlZSA9 IGNhbGwtPmdldENhbGxlZFZhbHVlKCk7Ci0tICAgICAgICBjb25zdCBzdGQ6OnN0cmluZyBmbk5h bWUgPSBDYWxsZWUtPmdldE5hbWUoKTsKLSsgICAgICAgIFZhbHVlICpDYWxsZWUgPSBjYWxsLT5n ZXRDYWxsZWRPcGVyYW5kKCk7Ci0rICAgICAgICBjb25zdCBzdGQ6OnN0cmluZyBmbk5hbWUgPSBD YWxsZWUtPmdldE5hbWUoKS5zdHIoKTsKLQotICAgICAgICAgaWYgKGZuTmFtZSAhPSAiX19nZW5f b2NsX3ByaW50Zl9zdHViIiAmJiBmbk5hbWUgIT0gIl9fZ2VuX29jbF9wdXRzX3N0dWIiKQotICAg ICAgICAgICBjb250aW51ZTsKLUBAIC01ODIsNyArNTgxLDcgQEAKLSAgICAgICAgICAgICBpZiAo IWZtdF9hcmcgfHwgIWZtdF9hcmctPmlzQ1N0cmluZygpKSB7Ci0gICAgICAgICAgICAgICByZXR1 cm4gZmFsc2U7Ci0gICAgICAgICAgICAgfQotLSAgICAgICAgICAgIHNsb3Quc3RhdGUuc3RyID0g Zm10X2FyZy0+Z2V0QXNDU3RyaW5nKCk7Ci0rICAgICAgICAgICAgc2xvdC5zdGF0ZS5zdHIgPSBm bXRfYXJnLT5nZXRBc0NTdHJpbmcoKS5zdHIoKTsKLSAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsK LSAgICAgICAgICAgfQotICAgICAgICAgICBjYXNlIFBSSU5URl9DT05WRVJTSU9OX1A6IHsKLUBA IC01OTUsMTAgKzU5NCwxMCBAQAotCi0gICAgICAgICBicmVhazsKLQotLSAgICAgIGNhc2UgVHlw ZTo6VmVjdG9yVHlJRDogewotLSAgICAgICAgVHlwZSogdmVjdF90eXBlID0gYXJnLT5nZXRUeXBl KCk7Ci0tICAgICAgICBUeXBlKiBlbHRfdHlwZSA9IHZlY3RfdHlwZS0+Z2V0VmVjdG9yRWxlbWVu dFR5cGUoKTsKLS0gICAgICAgIGludCB2ZWNfbnVtID0gdmVjdF90eXBlLT5nZXRWZWN0b3JOdW1F bGVtZW50cygpOwotKyAgICAgIGNhc2UgVHlwZTo6Rml4ZWRWZWN0b3JUeUlEOiB7Ci0rICAgICAg ICBWZWN0b3JUeXBlKiB2ZWN0X3R5cGUgPSBkeW5fY2FzdDxWZWN0b3JUeXBlPihhcmctPmdldFR5 cGUoKSk7Ci0rICAgICAgICBUeXBlKiBlbHRfdHlwZSA9IHZlY3RfdHlwZS0+Z2V0RWxlbWVudFR5 cGUoKTsKLSsgICAgICAgIGludCB2ZWNfbnVtID0gdmVjdF90eXBlLT5nZXROdW1FbGVtZW50cygp OwotICAgICAgICAgYm9vbCBzaWduID0gZmFsc2U7Ci0KLSAgICAgICAgIGlmICh2ZWNfbnVtICE9 IHNsb3Quc3RhdGUudmVjdG9yX24pIHsKLS0tLSBhL2JhY2tlbmQvc3JjL2xsdm0vbGx2bV9wcm9m aWxpbmcuY3BwCTIwMjAtMTEtMDkgMTY6NDg6MjAuODIzODY2MTEyICswMTAwCi0rKysgYi9iYWNr ZW5kL3NyYy9sbHZtL2xsdm1fcHJvZmlsaW5nLmNwcAkyMDIwLTExLTA5IDE4OjU5OjUwLjEyMDky OTE1MCArMDEwMAotQEAgLTM1LDcgKzM1LDYgQEAKLSAjaW5jbHVkZSAibGx2bS9JUi9JUkJ1aWxk ZXIuaCIKLQotICNpZiBMTFZNX1ZFUlNJT05fTUFKT1IgKiAxMCArIExMVk1fVkVSU0lPTl9NSU5P UiA+PSAzNQotLSNpbmNsdWRlICJsbHZtL0lSL0NhbGxTaXRlLmgiCi0gI2luY2x1ZGUgImxsdm0v SVIvQ0ZHLmgiCi0gI2Vsc2UKLSAjaW5jbHVkZSAibGx2bS9TdXBwb3J0L0NhbGxTaXRlLmgiCi0t LS0gYS9iYWNrZW5kL3NyYy9sbHZtL2xsdm1fc2FtcGxlcl9maXguY3BwCTIwMjAtMTEtMDkgMTY6 NDg6MjAuODIzODY2MTEyICswMTAwCi0rKysgYi9iYWNrZW5kL3NyYy9sbHZtL2xsdm1fc2FtcGxl cl9maXguY3BwCTIwMjAtMTEtMDkgMTc6MDE6MDkuNDA3Nzc0ODMyICswMTAwCi1AQCAtNDUsOCAr NDUsOCBAQAotICAgICBib29sIHZpc2l0Q2FsbEluc3QoQ2FsbEluc3QgKkkpIHsKLSAgICAgICBp ZighSSkKLSAgICAgICAgIHJldHVybiBmYWxzZTsKLS0gICAgICBWYWx1ZSAqQ2FsbGVlID0gSS0+ Z2V0Q2FsbGVkVmFsdWUoKTsKLS0gICAgICBjb25zdCBzdGQ6OnN0cmluZyBmbk5hbWUgPSBDYWxs ZWUtPmdldE5hbWUoKTsKLSsgICAgICBWYWx1ZSAqQ2FsbGVlID0gSS0+Z2V0Q2FsbGVkT3BlcmFu ZCgpOwotKyAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nIGZuTmFtZSA9IENhbGxlZS0+Z2V0TmFtZSgp LnN0cigpOwotICAgICAgIGJvb2wgY2hhbmdlZCA9IGZhbHNlOwotICAgICAgIFR5cGUgKmJvb2xU eSA9IEludGVnZXJUeXBlOjpnZXQoSS0+Z2V0Q29udGV4dCgpLCAxKTsKLSAgICAgICBUeXBlICpp MzJUeSA9IEludGVnZXJUeXBlOjpnZXQoSS0+Z2V0Q29udGV4dCgpLCAzMik7Ci1AQCAtNTksNyAr NTksNyBAQAotICAgICAgICAgVmFsdWUgKm5lZWRGaXhWYWw7Ci0gI2lmIExMVk1fVkVSU0lPTl9N QUpPUiAqIDEwICsgTExWTV9WRVJTSU9OX01JTk9SID49IDQwCi0gICAgICAgICBDYWxsSW5zdCAq aW5pdCA9IGR5bl9jYXN0PENhbGxJbnN0PihJLT5nZXRPcGVyYW5kKDApKTsKLS0gICAgICAgIGlm IChpbml0ICYmIGluaXQtPmdldENhbGxlZFZhbHVlKCktPmdldE5hbWUoKS5jb21wYXJlKCJfX3Ry YW5zbGF0ZV9zYW1wbGVyX2luaXRpYWxpemVyIikpCi0rICAgICAgICBpZiAoaW5pdCAmJiBpbml0 LT5nZXRDYWxsZWRPcGVyYW5kKCktPmdldE5hbWUoKS5jb21wYXJlKCJfX3RyYW5zbGF0ZV9zYW1w bGVyX2luaXRpYWxpemVyIikpCi0gICAgICAgICB7Ci0gICAgICAgICAgIGNvbnN0IENvbnN0YW50 SW50ICpjaSA9IGR5bl9jYXN0PENvbnN0YW50SW50Pihpbml0LT5nZXRPcGVyYW5kKDApKTsKLSAg ICAgICAgICAgdWludDMyX3Qgc2FtcGxlckludCA9IGNpLT5nZXRaRXh0VmFsdWUoKTsKLUBAIC0x MTMsNyArMTEzLDcgQEAKLSAgICAgICAgIFZhbHVlICpuZWVkRml4VmFsOwotICAjaWYgTExWTV9W RVJTSU9OX01BSk9SICogMTAgKyBMTFZNX1ZFUlNJT05fTUlOT1IgPj0gNDAKLSAgICAgICAgIENh bGxJbnN0ICppbml0ID0gZHluX2Nhc3Q8Q2FsbEluc3Q+KEktPmdldE9wZXJhbmQoMCkpOwotLSAg ICAgICAgaWYgKGluaXQgJiYgaW5pdC0+Z2V0Q2FsbGVkVmFsdWUoKS0+Z2V0TmFtZSgpLmNvbXBh cmUoIl9fdHJhbnNsYXRlX3NhbXBsZXJfaW5pdGlhbGl6ZXIiKSkKLSsgICAgICAgIGlmIChpbml0 ICYmIGluaXQtPmdldENhbGxlZE9wZXJhbmQoKS0+Z2V0TmFtZSgpLmNvbXBhcmUoIl9fdHJhbnNs YXRlX3NhbXBsZXJfaW5pdGlhbGl6ZXIiKSkKLSAgICAgICAgIHsKLSAgICAgICAgICAgY29uc3Qg Q29uc3RhbnRJbnQgKmNpID0gZHluX2Nhc3Q8Q29uc3RhbnRJbnQ+KGluaXQtPmdldE9wZXJhbmQo MCkpOwotICAgICAgICAgICB1aW50MzJfdCBzYW1wbGVySW50ID0gY2ktPmdldFpFeHRWYWx1ZSgp OwotLS0tIGEvYmFja2VuZC9zcmMvbGx2bS9sbHZtX3NjYWxhcml6ZS5jcHAJMjAyMC0xMS0wOSAx Njo0ODoyMC44MjM4NjYxMTIgKzAxMDAKLSsrKyBiL2JhY2tlbmQvc3JjL2xsdm0vbGx2bV9zY2Fs YXJpemUuY3BwCTIwMjAtMTEtMDkgMTg6NTE6MTYuODg4OTkwMTA0ICswMTAwCi1AQCAtMTc4LDcg KzE3OCw3IEBACi0gICAgICAgaWYoIXR5cGUpCi0gICAgICAgICByZXR1cm4gdHlwZTsKLSAgICAg ICBzd2l0Y2godHlwZS0+Z2V0VHlwZUlEKCkpIHsKLS0gICAgICBjYXNlIFR5cGU6OlZlY3RvclR5 SUQ6Ci0rICAgICAgY2FzZSBUeXBlOjpGaXhlZFZlY3RvclR5SUQ6Ci0gICAgICAgY2FzZSBUeXBl OjpBcnJheVR5SUQ6Ci0gICAgICAgICByZXR1cm4gR2V0QmFzaWNUeXBlKHR5cGUtPmdldENvbnRh aW5lZFR5cGUoMCkpOwotICAgICAgIGRlZmF1bHQ6Ci1AQCAtMTg4LDcgKzE4OCw3IEBACi0gICAg IH0KLQotICAgICBpbnQgR2V0Q29tcG9uZW50Q291bnQoY29uc3QgVHlwZSogdHlwZSkgIHsKLS0g ICAgICBpZiAodHlwZSAmJiB0eXBlLT5nZXRUeXBlSUQoKSA9PSBUeXBlOjpWZWN0b3JUeUlEKQot KyAgICAgIGlmICh0eXBlICYmIHR5cGUtPmdldFR5cGVJRCgpID09IFR5cGU6OkZpeGVkVmVjdG9y VHlJRCkKLSAgICAgICAgIHJldHVybiBsbHZtOjpkeW5fY2FzdDxWZWN0b3JUeXBlPih0eXBlKS0+ Z2V0TnVtRWxlbWVudHMoKTsKLSAgICAgICBlbHNlCi0gICAgICAgICByZXR1cm4gMTsKLUBAIC02 NTIsMTMgKzY1MiwxMiBAQAotICAgICAgICAgICBicmVhazsKLSAgICAgICAgIH0KLSAgICAgICB9 IGVsc2UgewotLSAgICAgICAgVmFsdWUgKkNhbGxlZSA9IGNhbGwtPmdldENhbGxlZFZhbHVlKCk7 Ci0tICAgICAgICBjb25zdCBzdGQ6OnN0cmluZyBmbk5hbWUgPSBDYWxsZWUtPmdldE5hbWUoKTsK LSsgICAgICAgIFZhbHVlICpDYWxsZWUgPSBjYWxsLT5nZXRDYWxsZWRPcGVyYW5kKCk7Ci0rICAg ICAgICBjb25zdCBzdGQ6OnN0cmluZyBmbk5hbWUgPSBDYWxsZWUtPmdldE5hbWUoKS5zdHIoKTsK LSAgICAgICAgIGF1dG8gZ2VuSW50cmluc2ljSUQgPSBpbnRyaW5zaWNNYXAuZmluZChmbk5hbWUp OwotCi0gICAgICAgICAvLyBHZXQgdGhlIGZ1bmN0aW9uIGFyZ3VtZW50cwotLSAgICAgICAgQ2Fs bFNpdGUgQ1MoY2FsbCk7Ci0tICAgICAgICBDYWxsU2l0ZTo6YXJnX2l0ZXJhdG9yIENJID0gQ1Mu YXJnX2JlZ2luKCkgKyAxOwotKyAgICAgICAgVXNlcjo6b3BfaXRlcmF0b3IgQ0kgPSBjYWxsLT5h cmdfYmVnaW4oKSArIDE7Ci0KLSAgICAgICAgIHN3aXRjaCAoZ2VuSW50cmluc2ljSUQpIHsKLSAg ICAgICAgICAgY2FzZSBHRU5fT0NMX05PVF9GT1VORDoKLUBAIC03MjksNyArNzI4LDcgQEAKLSAg ICAgICAgICAgICBleHRyYWN0RnJvbVZlY3RvcihjYWxsKTsKLSAgICAgICAgICAgICBicmVhazsK LSAgICAgICAgICAgY2FzZSBHRU5fT0NMX1BSSU5URjoKLS0gICAgICAgICAgICBmb3IgKDsgQ0kg IT0gQ1MuYXJnX2VuZCgpOyArK0NJKQotKyAgICAgICAgICAgIGZvciAoOyBDSSAhPSBjYWxsLT5h cmdfZW5kKCk7ICsrQ0kpCi0gICAgICAgICAgICAgICBpZiAoKCpDSSktPmdldFR5cGUoKS0+aXNW ZWN0b3JUeSgpKQotICAgICAgICAgICAgICAgICAqQ0kgPSBJbnNlcnRUb1ZlY3RvcihjYWxsLCAq Q0kpOwotICAgICAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9iZWlnbmV0L3Bh dGNoZXMvbGx2bTEyLnBhdGNoIGIvc3JjcGtncy9iZWlnbmV0L3BhdGNoZXMvbGx2bTEyLnBhdGNo CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2ZjhhYjAwNWMxNDguLjAwMDAwMDAwMDAw MAotLS0gYS9zcmNwa2dzL2JlaWduZXQvcGF0Y2hlcy9sbHZtMTIucGF0Y2gKKysrIC9kZXYvbnVs bApAQCAtMSwxMTUgKzAsMCBAQAotZGlmZiAtLWdpdCBiYWNrZW5kL3NyYy9sbHZtL0V4cGFuZExh cmdlSW50ZWdlcnMuY3BwIGJhY2tlbmQvc3JjL2xsdm0vRXhwYW5kTGFyZ2VJbnRlZ2Vycy5jcHAK LWluZGV4IDg1MTVkYzEzLi4yNzA4MDM4MCAxMDA2NDQKLS0tLSBhL2JhY2tlbmQvc3JjL2xsdm0v RXhwYW5kTGFyZ2VJbnRlZ2Vycy5jcHAKLSsrKyBiL2JhY2tlbmQvc3JjL2xsdm0vRXhwYW5kTGFy Z2VJbnRlZ2Vycy5jcHAKLUBAIC0zMjgsNyArMzI4LDcgQEAgc3RhdGljIFZhbHVlICpidWlsZFZl Y3Rvck9yU2NhbGFyKENvbnZlcnNpb25TdGF0ZSAmU3RhdGUsIElSQnVpbGRlcjw+ICZJUkIsIFNt YWwKLSAgICAgLy8gc3BsaXRlZCwgdGhhdCdzIHdoeSB0aGVzZSB0ZW1wb3JhcnkgdmFsdWVzIHNo b3VsZCBiZSBlcmFzZWQuCi0gICAgIGJvb2wgS2VlcEluc2VydCA9IGlzTGVnYWxCaXRTaXplKEVs ZW1UeS0+Z2V0UHJpbWl0aXZlU2l6ZUluQml0cygpICogRWxlbU5vKTsKLSAgICAgZm9yICh1bnNp Z25lZCBpID0gMDsgaSA8IEVsZW1ObzsgKytpKSB7Ci0tICAgICAgVmFsdWUgKnRtcCA9IHZlYyA/ IHZlYyA6IFVuZGVmVmFsdWU6OmdldChWZWN0b3JUeXBlOjpnZXQoRWxlbVR5LCBFbGVtTm8pKTsK LSsgICAgICBWYWx1ZSAqdG1wID0gdmVjID8gdmVjIDogVW5kZWZWYWx1ZTo6Z2V0KFZlY3RvclR5 cGU6OmdldChFbGVtVHksIEVsZW1ObywgZmFsc2UpKTsKLSAgICAgICBWYWx1ZSAqaWR4ID0gQ29u c3RhbnRJbnQ6OmdldChJbnRUeSwgaSk7Ci0gICAgICAgdmVjID0gSVJCLkNyZWF0ZUluc2VydEVs ZW1lbnQodG1wLCBFbGVtZW50c1tpXSwgaWR4KTsKLSAgICAgICBpZiAoIUtlZXBJbnNlcnQgJiYg IWlzYTxDb25zdGFudD4odmVjKSkgewotQEAgLTM3Myw3ICszNzMsNyBAQCBzdGF0aWMgdm9pZCB1 bmlmeUVsZW1lbnRUeXBlKElSQnVpbGRlcjw+ICZJUkIsIFNtYWxsVmVjdG9yPFZhbHVlICosIDE2 PiAmU3JjLCBTbQotICAgICAgIGFzc2VydCgoU2l6ZSAlIE1pbldpZHRoKSA9PSAwKTsKLSAKLSAg ICAgICBpZiAoU2l6ZSA+IE1pbldpZHRoKSB7Ci0tICAgICAgICBWZWN0b3JUeXBlICpWZWNUeSA9 IFZlY3RvclR5cGU6OmdldChFbGVtVHksIFNpemUvTWluV2lkdGgpOwotKyAgICAgICAgVmVjdG9y VHlwZSAqVmVjVHkgPSBWZWN0b3JUeXBlOjpnZXQoRWxlbVR5LCBTaXplL01pbldpZHRoLCBmYWxz ZSk7Ci0gICAgICAgICBWYWx1ZSAqQ2FzdGVkID0gSVJCLkNyZWF0ZUJpdENhc3QoU3JjW2ldLCBW ZWNUeSk7Ci0gICAgICAgICBmb3IgKHVuc2lnbmVkIGogPSAwOyBqIDwgU2l6ZS9NaW5XaWR0aDsg aisrKQotICAgICAgICAgICBEc3QucHVzaF9iYWNrKElSQi5DcmVhdGVFeHRyYWN0RWxlbWVudChD YXN0ZWQsIENvbnN0YW50SW50OjpnZXQoSW50VHksIGopKSk7Ci1AQCAtNDYyLDcgKzQ2Miw3IEBA IHN0YXRpYyB2b2lkIGNvbnZlcnRJbnN0cnVjdGlvbihJbnN0cnVjdGlvbiAqSW5zdCwgQ29udmVy c2lvblN0YXRlICZTdGF0ZSwKLSAgICAgICB1bnNpZ25lZCBFbGVtTm8gPSBVbmlmaWVkLnNpemUo KTsKLSAgICAgICBUeXBlICpFbGVtVHkgPSBVbmlmaWVkWzBdLT5nZXRUeXBlKCk7Ci0gICAgICAg Zm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IEVsZW1ObzsgKytpKSB7Ci0tICAgICAgICBWYWx1ZSAq dG1wID0gdmVjID8gdmVjIDogVW5kZWZWYWx1ZTo6Z2V0KFZlY3RvclR5cGU6OmdldChFbGVtVHks IEVsZW1ObykpOwotKyAgICAgICAgVmFsdWUgKnRtcCA9IHZlYyA/IHZlYyA6IFVuZGVmVmFsdWU6 OmdldChWZWN0b3JUeXBlOjpnZXQoRWxlbVR5LCBFbGVtTm8sIGZhbHNlKSk7Ci0gICAgICAgICBW YWx1ZSAqaWR4ID0gQ29uc3RhbnRJbnQ6OmdldChJbnRUeSwgaSk7Ci0gICAgICAgICB2ZWMgPSBJ UkIuQ3JlYXRlSW5zZXJ0RWxlbWVudCh0bXAsIFVuaWZpZWRbaV0sIGlkeCk7Ci0gICAgICAgfQot ZGlmZiAtLWdpdCBiYWNrZW5kL3NyYy9sbHZtL2xsdm1fZ2VuX2JhY2tlbmQuY3BwIGJhY2tlbmQv c3JjL2xsdm0vbGx2bV9nZW5fYmFja2VuZC5jcHAKLWluZGV4IGM5M2Q4OWNjLi42NGQ1YjBlNSAx MDA2NDQKLS0tLSBhL2JhY2tlbmQvc3JjL2xsdm0vbGx2bV9nZW5fYmFja2VuZC5jcHAKLSsrKyBi L2JhY2tlbmQvc3JjL2xsdm0vbGx2bV9nZW5fYmFja2VuZC5jcHAKLUBAIC0zMDQsNyArMzA0LDcg QEAgbmFtZXNwYWNlIGdiZQotICAgICAgIFRZUEVTSVpFVkVDKGxvbmcsOCkKLSAgICAgICBUWVBF U0laRVZFQyh1bnNpZ25lZCBsb25nLDgpCi0gICAgICAgZWxzZXsKLS0gICAgICAgIFN0cnVjdFR5 cGUgKlN0clR5ID0gTS0+Z2V0VHlwZUJ5TmFtZSgic3RydWN0LiIrbmFtZSk7Ci0rICAgICAgICBT dHJ1Y3RUeXBlICpTdHJUeSA9IFN0cnVjdFR5cGU6OmdldFR5cGVCeU5hbWUoTS0+Z2V0Q29udGV4 dCgpLCAic3RydWN0LiIrbmFtZSk7Ci0gICAgICAgICBpZihTdHJUeSkKLSAgICAgICAgICAgcmV0 dXJuIGdldFR5cGVCeXRlU2l6ZSh1bml0LFN0clR5KTsKLSAgICAgICB9Ci1kaWZmIC0tZ2l0IGJh Y2tlbmQvc3JjL2xsdm0vbGx2bV9sb2Fkc3RvcmVfb3B0aW1pemF0aW9uLmNwcCBiYWNrZW5kL3Ny Yy9sbHZtL2xsdm1fbG9hZHN0b3JlX29wdGltaXphdGlvbi5jcHAKLWluZGV4IDVhYTM4YmVmLi42 YjVjMWJhZCAxMDA2NDQKLS0tLSBhL2JhY2tlbmQvc3JjL2xsdm0vbGx2bV9sb2Fkc3RvcmVfb3B0 aW1pemF0aW9uLmNwcAotKysrIGIvYmFja2VuZC9zcmMvbGx2bS9sbHZtX2xvYWRzdG9yZV9vcHRp bWl6YXRpb24uY3BwCi1AQCAtMTUyLDcgKzE1Miw3IEBAIG5hbWVzcGFjZSBnYmUgewotICAgICB1 bnNpZ25lZCBhZGRyU3BhY2UgPSBsZC0+Z2V0UG9pbnRlckFkZHJlc3NTcGFjZSgpOwotICAgICAv LyBpbnNlcnQgYmVmb3JlIGZpcnN0IGxvYWQKLSAgICAgQnVpbGRlci5TZXRJbnNlcnRQb2ludChs ZCk7Ci0tICAgIFZlY3RvclR5cGUgKnZlY1R5ID0gVmVjdG9yVHlwZTo6Z2V0KGxkLT5nZXRUeXBl KCksIHNpemUpOwotKyAgICBWZWN0b3JUeXBlICp2ZWNUeSA9IFZlY3RvclR5cGU6OmdldChsZC0+ Z2V0VHlwZSgpLCBzaXplLCBmYWxzZSk7Ci0gICAgIFZhbHVlICp2ZWNQdHIgPSBCdWlsZGVyLkNy ZWF0ZUJpdENhc3QobGQtPmdldFBvaW50ZXJPcGVyYW5kKCksCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFBvaW50ZXJUeXBlOjpnZXQodmVjVHksIGFkZHJTcGFjZSkp OwotICAgICBMb2FkSW5zdCAqdmVjVmFsdWUgPSBCdWlsZGVyLkNyZWF0ZUxvYWQodmVjUHRyKTsK LUBAIC0yMzYsNyArMjM2LDcgQEAgbmFtZXNwYWNlIGdiZSB7Ci0gICAgIEJ1aWxkZXIuU2V0SW5z ZXJ0UG9pbnQobWVyZ2VkW3NpemUtMV0pOwotIAotICAgICBUeXBlICpkYXRhVHkgPSBzdC0+Z2V0 VmFsdWVPcGVyYW5kKCktPmdldFR5cGUoKTsKLS0gICAgVmVjdG9yVHlwZSAqdmVjVHkgPSBWZWN0 b3JUeXBlOjpnZXQoZGF0YVR5LCBzaXplKTsKLSsgICAgVmVjdG9yVHlwZSAqdmVjVHkgPSBWZWN0 b3JUeXBlOjpnZXQoZGF0YVR5LCBzaXplLCBmYWxzZSk7Ci0gICAgIFZhbHVlICogcGFyZW50ID0g VW5kZWZWYWx1ZTo6Z2V0KHZlY1R5KTsKLSAgICAgZm9yKHVuc2lnbmVkIGkgPSAwOyBpIDwgc2l6 ZTsgaSsrKSB7Ci0gICAgICAgcGFyZW50ID0gQnVpbGRlci5DcmVhdGVJbnNlcnRFbGVtZW50KHBh cmVudCwgdmFsdWVzW2ldLCBDb25zdGFudEludDo6Z2V0KEludGVnZXJUeXBlOjpnZXQoc3QtPmdl dENvbnRleHQoKSwgMzIpLCBpKSk7Ci1kaWZmIC0tZ2l0IGJhY2tlbmQvc3JjL2xsdm0vbGx2bV9w cmludGZfcGFyc2VyLmNwcCBiYWNrZW5kL3NyYy9sbHZtL2xsdm1fcHJpbnRmX3BhcnNlci5jcHAK LWluZGV4IDZiYjdjNTJhLi5hZjQ1OWNkMiAxMDA2NDQKLS0tLSBhL2JhY2tlbmQvc3JjL2xsdm0v bGx2bV9wcmludGZfcGFyc2VyLmNwcAotKysrIGIvYmFja2VuZC9zcmMvbGx2bS9sbHZtX3ByaW50 Zl9wYXJzZXIuY3BwCi1AQCAtNjMwLDcgKzYzMCw3IEBAIGVycm9yOgotICAgICAgICAgICAgIGlm IChlbHRfdHlwZSAhPSBlbHRfZHN0X3R5cGUpIHsKLSAgICAgICAgICAgICAgIFZhbHVlICpJSSA9 IE5VTEw7Ci0gICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHZlY19udW07IGkrKykg ewotLSAgICAgICAgICAgICAgICBWYWx1ZSAqdmVjID0gSUkgPyBJSSA6IFVuZGVmVmFsdWU6Omdl dChWZWN0b3JUeXBlOjpnZXQoZWx0X2RzdF90eXBlLCB2ZWNfbnVtKSk7Ci0rICAgICAgICAgICAg ICAgIFZhbHVlICp2ZWMgPSBJSSA/IElJIDogVW5kZWZWYWx1ZTo6Z2V0KFZlY3RvclR5cGU6Omdl dChlbHRfZHN0X3R5cGUsIHZlY19udW0sIGZhbHNlKSk7Ci0gICAgICAgICAgICAgICAgIFZhbHVl ICpjdiA9IENvbnN0YW50SW50OjpnZXQoVHlwZTo6Z2V0SW50MzJUeShlbHRfdHlwZS0+Z2V0Q29u dGV4dCgpKSwgaSk7Ci0gICAgICAgICAgICAgICAgIFZhbHVlICpvcmcgPSBidWlsZGVyLT5DcmVh dGVFeHRyYWN0RWxlbWVudChhcmcsIGN2KTsKLSAgICAgICAgICAgICAgICAgVmFsdWUgKmN2dCA9 IGJ1aWxkZXItPkNyZWF0ZUludENhc3Qob3JnLCBlbHRfZHN0X3R5cGUsIHNpZ24pOwotQEAgLTY1 OCw3ICs2NTgsNyBAQCBlcnJvcjoKLSAgICAgICAgICAgICBpZiAoZWx0X3R5cGUtPmdldFR5cGVJ RCgpICE9IFR5cGU6OkZsb2F0VHlJRCkgewotICAgICAgICAgICAgICAgVmFsdWUgKklJID0gTlVM TDsKLSAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdmVjX251bTsgaSsrKSB7Ci0t ICAgICAgICAgICAgICAgIFZhbHVlICp2ZWMgPSBJSSA/IElJIDogVW5kZWZWYWx1ZTo6Z2V0KFZl Y3RvclR5cGU6OmdldChUeXBlOjpnZXRGbG9hdFR5KGVsdF90eXBlLT5nZXRDb250ZXh0KCkpLCB2 ZWNfbnVtKSk7Ci0rICAgICAgICAgICAgICAgIFZhbHVlICp2ZWMgPSBJSSA/IElJIDogVW5kZWZW YWx1ZTo6Z2V0KFZlY3RvclR5cGU6OmdldChUeXBlOjpnZXRGbG9hdFR5KGVsdF90eXBlLT5nZXRD b250ZXh0KCkpLCB2ZWNfbnVtLCBmYWxzZSkpOwotICAgICAgICAgICAgICAgICBWYWx1ZSAqY3Yg PSBDb25zdGFudEludDo6Z2V0KFR5cGU6OmdldEludDMyVHkoZWx0X3R5cGUtPmdldENvbnRleHQo KSksIGkpOwotICAgICAgICAgICAgICAgICBWYWx1ZSAqb3JnID0gYnVpbGRlci0+Q3JlYXRlRXh0 cmFjdEVsZW1lbnQoYXJnLCBjdik7Ci0gICAgICAgICAgICAgICAgIFZhbHVlKiBjdnQgID0gYnVp bGRlci0+Q3JlYXRlRlBDYXN0KG9yZywgVHlwZTo6Z2V0RmxvYXRUeShtb2R1bGUtPmdldENvbnRl eHQoKSkpOwotZGlmZiAtLWdpdCBiYWNrZW5kL3NyYy9sbHZtL2xsdm1fdG9fZ2VuLmNwcCBiYWNr ZW5kL3NyYy9sbHZtL2xsdm1fdG9fZ2VuLmNwcAotaW5kZXggN2Y3ZGVmZmUuLjllOGNjYzY3IDEw MDY0NAotLS0tIGEvYmFja2VuZC9zcmMvbGx2bS9sbHZtX3RvX2dlbi5jcHAKLSsrKyBiL2JhY2tl bmQvc3JjL2xsdm0vbGx2bV90b19nZW4uY3BwCi1AQCAtMzU4LDcgKzM1OCw3IEBAIG5hbWVzcGFj ZSBnYmUKLSAgICAgcGFzc2VzLmFkZChjcmVhdGVTY2FsYXJSZXBsQWdncmVnYXRlc1Bhc3MoNjQs IHRydWUsIC0xLCAtMSwgNjQpKTsKLSAjZW5kaWYKLSAgICAgcGFzc2VzLmFkZChjcmVhdGVMb2Fk U3RvcmVPcHRpbWl6YXRpb25QYXNzKCkpOwotLSAgICBwYXNzZXMuYWRkKGNyZWF0ZUNvbnN0YW50 UHJvcGFnYXRpb25QYXNzKCkpOwotKyAgICAvL3Bhc3Nlcy5hZGQoY3JlYXRlQ29uc3RhbnRQcm9w YWdhdGlvblBhc3MoKSk7Ci0gICAgIHBhc3Nlcy5hZGQoY3JlYXRlUHJvbW90ZU1lbW9yeVRvUmVn aXN0ZXJQYXNzKCkpOwotICAgICBpZihvcHRMZXZlbCA+IDApCi0gICAgICAgcGFzc2VzLmFkZChj cmVhdGVHVk5QYXNzKCkpOyAgICAgICAgICAgICAgICAgLy8gUmVtb3ZlIHJlZHVuZGFuY2llcwot QEAgLTM2NywxMSArMzY3LDExIEBAIG5hbWVzcGFjZSBnYmUKLSAgICAgcGFzc2VzLmFkZChjcmVh dGVTY2FsYXJpemVQYXNzKCkpOyAgICAgICAgICAgICAvLyBFeHBhbmQgYWxsIHZlY3RvciBvcHMK LSAgICAgcGFzc2VzLmFkZChjcmVhdGVFeHBhbmRMYXJnZUludGVnZXJzUGFzcygpKTsgICAvLyBs ZWdhbGl6ZSBsYXJnZSBpbnRlZ2VyIG9wZXJhdGlvbgotICAgICBwYXNzZXMuYWRkKGNyZWF0ZUlu c3RydWN0aW9uQ29tYmluaW5nUGFzcygpKTsgIC8vIGxlZ2FsaXplIHdpbGwgZ2VuZXJhdGUgc29t ZSBzaWxseSBpbnN0cnVjdGlvbnMKLS0gICAgcGFzc2VzLmFkZChjcmVhdGVDb25zdGFudFByb3Bh Z2F0aW9uUGFzcygpKTsgICAvLyBwcm9wYWdhdGUgY29uc3RhbnQgYWZ0ZXIgc2NhbGFyaXplL2xl Z2FsaXplCi0rICAgIC8vcGFzc2VzLmFkZChjcmVhdGVDb25zdGFudFByb3BhZ2F0aW9uUGFzcygp KTsgICAvLyBwcm9wYWdhdGUgY29uc3RhbnQgYWZ0ZXIgc2NhbGFyaXplL2xlZ2FsaXplCi0gICAg IHBhc3Nlcy5hZGQoY3JlYXRlRXhwYW5kQ29uc3RhbnRFeHByUGFzcygpKTsgICAgLy8gY29uc3Rh bnQgcHJvcCBtYXkgZ2VuZXJhdGUgQ29uc3RhbnRFeHByCi0gICAgIHBhc3Nlcy5hZGQoY3JlYXRl UHJvbW90ZUludGVnZXJzUGFzcygpKTsgICAgICAgLy8gYWxpZ24gaW50ZWdlciBzaXplIHRvIHBv d2VyIG9mIHR3bwotICAgICBwYXNzZXMuYWRkKGNyZWF0ZVJlbW92ZUdFUFBhc3ModW5pdCkpOyAg ICAgICAgIC8vIENvbnN0YW50IHByb3AgbWF5IGdlbmVyYXRlIGdlcAotLSAgICBwYXNzZXMuYWRk KGNyZWF0ZURlYWRJbnN0RWxpbWluYXRpb25QYXNzKCkpOyAgIC8vIFJlbW92ZSBzaW1wbGlmaWVk IGluc3RydWN0aW9ucwotKyAgICAvL3Bhc3Nlcy5hZGQoY3JlYXRlRGVhZEluc3RFbGltaW5hdGlv blBhc3MoKSk7ICAgLy8gUmVtb3ZlIHNpbXBsaWZpZWQgaW5zdHJ1Y3Rpb25zCi0gICAgIHBhc3Nl cy5hZGQoY3JlYXRlQ0ZHU2ltcGxpZmljYXRpb25QYXNzKCkpOyAgICAgLy8gTWVyZ2UgJiByZW1v dmUgQkJzCi0gICAgIHBhc3Nlcy5hZGQoY3JlYXRlTG93ZXJTd2l0Y2hQYXNzKCkpOyAgICAgICAg ICAgLy8gc2ltcGxpZnkgY2ZnIHdpbGwgZ2VuZXJhdGUgc3dpdGNoLWNhc2UgaW5zdHJ1Y3Rpb24K LSAgICAgaWYgKHByb2ZpbGluZykgewpkaWZmIC0tZ2l0IGEvc3JjcGtncy9iZWlnbmV0L3BhdGNo ZXMvbXVzbC5wYXRjaCBiL3NyY3BrZ3MvYmVpZ25ldC9wYXRjaGVzL211c2wucGF0Y2gKZGVsZXRl ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNlZmFmYmI2NTU4OC4uMDAwMDAwMDAwMDAwCi0tLSBh L3NyY3BrZ3MvYmVpZ25ldC9wYXRjaGVzL211c2wucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwx MSArMCwwIEBACi0tLS0gYS9iYWNrZW5kL3NyYy9iYWNrZW5kL2dlbi9nZW5fbWVzYV9kaXNhc20u YwotKysrIGIvYmFja2VuZC9zcmMvYmFja2VuZC9nZW4vZ2VuX21lc2FfZGlzYXNtLmMKLUBAIC0x MTM3LDcgKzExMzcsNyBAQCBzdGF0aWMgdWludDMyX3QgX19jb252X2hhbGZfdG9fZmxvYXQodWlu dDE2X3QgaCkKLSAgICAgICAvLyBBZGp1c3QgbWFudGlzc2Egc28gaXQncyBub3JtYWxpemVkIChh bmQga2VlcAotICAgICAgIC8vIHRyYWNrIG9mIGV4cG9uZW50IGFkanVzdG1lbnQpCi0gICAgICAg aW50IGUgPSAtMTsKLS0gICAgICB1aW50IG0gPSBpLm1hbnRpc3NhOwotKyAgICAgIHVuc2lnbmVk IGludCBtID0gaS5tYW50aXNzYTsKLSAgICAgICBkbyB7Ci0gICAgICAgICBlKys7Ci0gICAgICAg ICBtIDw8PSAxOwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9iZWlnbmV0L3RlbXBsYXRlIGIvc3JjcGtn cy9iZWlnbmV0L3RlbXBsYXRlCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkY2U2YmJi N2FlMjQuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2JlaWduZXQvdGVtcGxhdGUKKysrIC9k ZXYvbnVsbApAQCAtMSwyMiArMCwwIEBACi0jIFRlbXBsYXRlIGZpbGUgZm9yICdiZWlnbmV0Jwot cGtnbmFtZT1iZWlnbmV0Ci12ZXJzaW9uPTEuMy4yCi1yZXZpc2lvbj0xMAotYXJjaHM9Imk2ODYq IHg4Nl82NCoiCi13cmtzcmM9IkJlaWduZXQtJHt2ZXJzaW9ufS1Tb3VyY2UiCi1idWlsZF9zdHls ZT1jbWFrZQotaG9zdG1ha2VkZXBlbmRzPSJjbGFuZyBsbHZtIHBrZy1jb25maWciCi1tYWtlZGVw ZW5kcz0iTWVzYUxpYi1kZXZlbCBsaWJlZGl0LWRldmVsIGxpYmZmaS1kZXZlbCBvY2wtaWNkLWRl dmVsIHpsaWItZGV2ZWwKLSBsaWJYZml4ZXMtZGV2ZWwiCi1kZXBlbmRzPSJvY2wtaWNkIgotc2hv cnRfZGVzYz0iQmVpZ25ldCBHUEdQVSBTeXN0ZW0gZm9yIEludGVsIEdQVXMiCi1tYWludGFpbmVy PSJPcnBoYW5lZCA8b3JwaGFuQHZvaWRsaW51eC5vcmc+IgotbGljZW5zZT0iTEdQTC0yLjEtb3It bGF0ZXIiCi1ob21lcGFnZT0iaHR0cDovL3d3dy5mcmVlZGVza3RvcC5vcmcvd2lraS9Tb2Z0d2Fy ZS9CZWlnbmV0LyIKLWRpc3RmaWxlcz0iaHR0cHM6Ly8wMS5vcmcvc2l0ZXMvZGVmYXVsdC9maWxl cy8ke3BrZ25hbWV9LSR7dmVyc2lvbn0tc291cmNlLnRhci5neiIKLWNoZWNrc3VtPWM1NTVlZGJh MTQ5ZGUyMzI0Mzk2NWE3MDNmMzlmNzlmYTA2ZjE1YmNmZjVhMzc2MmI1NTQ0YjA5MjUwMTBiNDMK LQotcG9zdF9pbnN0YWxsKCkgewotCSMgcmVtb3ZlIENMIGhlYWRlcnMsIHdlIGRvIHVzZSBvcGVu Y2wtaGVhZGVycyBpbnN0ZWFkLgotCXJtIC1yICR7REVTVERJUn0vdXNyL2luY2x1ZGUKLX0KZGlm ZiAtLWdpdCBhL3NyY3BrZ3MvYmVpZ25ldC91cGRhdGUgYi9zcmNwa2dzL2JlaWduZXQvdXBkYXRl CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjYTQxZTBhZmU2MGMuLjAwMDAwMDAwMDAw MAotLS0gYS9zcmNwa2dzL2JlaWduZXQvdXBkYXRlCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBA QAotc2l0ZT0iaHR0cHM6Ly8wMS5vcmcvYmVpZ25ldC9kb3dubG9hZHMiCmRpZmYgLS1naXQgYS9z cmNwa2dzL3JlbW92ZWQtcGFja2FnZXMvdGVtcGxhdGUgYi9zcmNwa2dzL3JlbW92ZWQtcGFja2Fn ZXMvdGVtcGxhdGUKaW5kZXggZGYyNjRjOWQ3NTAxLi45MDU5Y2MwODM0OWQgMTAwNjQ0Ci0tLSBh L3NyY3BrZ3MvcmVtb3ZlZC1wYWNrYWdlcy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3JlbW92ZWQt cGFja2FnZXMvdGVtcGxhdGUKQEAgLTIzLDYgKzIzLDcgQEAgcmVwbGFjZXM9IgogIGF0b208PTEu NDQuMF8xCiAgYXZvZ2Fkcm8tZGV2ZWw8PTEuMi4wXzgKICBhdm9nYWRybzw9MS4yLjBfOAorIGJl aWduZXQ8PTEuMy4yCiAgYm9ra2VuPD0xLjhfMwogIGJvbWk8PTAuOS4xMV8xNwogIGJ1cnAtY2xp ZW50PD0xLjQuNDBfMTMKCkZyb20gODUxMDBkNjRlZjQ3YmQ5YTlmYzE0ZjA0NTI0YWZiODgyNzBk ZTJkMSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogPT9VVEYtOD9xP0FuZHI9QzM9QTk9 MjBDZXJxdWVpcmE/PSA8YWNlcnF1ZWlyYTAyMUBnbWFpbC5jb20+CkRhdGU6IE1vbiwgMjggRmVi IDIwMjIgMjI6MDA6NTQgKzAwMDAKU3ViamVjdDogW1BBVENIIDE5LzMxXSBsbHZtMTM6IHVwZGF0 ZSB0byAxMy4wLjEuCgotLS0KIHNyY3BrZ3MvbGx2bS90ZW1wbGF0ZSAgIHwgMiArLQogc3JjcGtn cy9sbHZtMTMvdGVtcGxhdGUgfCA2ICsrKy0tLQogMiBmaWxlcyBjaGFuZ2VkLCA0IGluc2VydGlv bnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtL3RlbXBsYXRl IGIvc3JjcGtncy9sbHZtL3RlbXBsYXRlCmluZGV4IGJjZmVlODIwOThmZi4uOTZkMThmNzMwZmNh IDEwMDY0NAotLS0gYS9zcmNwa2dzL2xsdm0vdGVtcGxhdGUKKysrIGIvc3JjcGtncy9sbHZtL3Rl bXBsYXRlCkBAIC00LDggKzQsOCBAQCB2ZXJzaW9uPTEzLjAuMAogcmV2aXNpb249MQogYnVpbGRf c3R5bGU9bWV0YQogZGVwZW5kcz0ibGx2bTEzIgotcmVwbGFjZXM9Imxsdm0xMj49MCBsbHZtMTE+ PTAgbGx2bTEwPj0wIGxsdm05Pj0wIGxsdm04Pj0wIGxsdm03Pj0wIGxsdm02LjA+PTAgbGx2bTMu OT49MCIKIHNob3J0X2Rlc2M9IkxMVk0gbWV0YSBwYWNrYWdlIgogbWFpbnRhaW5lcj0iRW5ubyBC b2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IlB1YmxpYyBEb21haW4iCiBo b21lcGFnZT0iaHR0cHM6Ly93d3cudm9pZGxpbnV4Lm9yZyIKK3JlcGxhY2VzPSJsbHZtMTI+PTAg bGx2bTExPj0wIGxsdm0xMD49MCBsbHZtOT49MCBsbHZtOD49MCBsbHZtNz49MCBsbHZtNi4wPj0w IGxsdm0zLjk+PTAiCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xsdm0xMy90ZW1wbGF0ZSBiL3NyY3Br Z3MvbGx2bTEzL3RlbXBsYXRlCmluZGV4IGJmYzkxMDU2ZDI3Ny4uOGU2NzM3MDFmYjliIDEwMDY0 NAotLS0gYS9zcmNwa2dzL2xsdm0xMy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2xsdm0xMy90ZW1w bGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2xsdm0xMycKIHBrZ25h bWU9bGx2bTEzCi12ZXJzaW9uPTEzLjAuMAotcmV2aXNpb249MgordmVyc2lvbj0xMy4wLjEKK3Jl dmlzaW9uPTEKIHdya3NyYz0ibGx2bS1wcm9qZWN0LSR7dmVyc2lvbn0uc3JjIgogYnVpbGRfd3Jr c3JjPWxsdm0KIGJ1aWxkX3N0eWxlPWNtYWtlCkBAIC0zNSw3ICszNSw3IEBAIG1haW50YWluZXI9 InE2NiA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+IgogbGljZW5zZT0iQXBhY2hlLTIuMCIKIGhvbWVw YWdlPSJodHRwczovL3d3dy5sbHZtLm9yZyIKIGRpc3RmaWxlcz0iaHR0cHM6Ly9naXRodWIuY29t L2xsdm0vbGx2bS1wcm9qZWN0L3JlbGVhc2VzL2Rvd25sb2FkL2xsdm1vcmctJHt2ZXJzaW9ufS9s bHZtLXByb2plY3QtJHt2ZXJzaW9ufS5zcmMudGFyLnh6IgotY2hlY2tzdW09NjA3NWFkMzBmMWFj MGUxNWYwN2MxYmYwNjJjMWUxMjY4YzI0MWQ2NzRmMTFiZDMyY2RmMGUwNDBjNzFmMmJmMworY2hl Y2tzdW09MzI2MzM1YTgzMGYyZTMyZDA2ZDBhMzYzOTNiNTQ1NWQxN2RjNzNlMGJkMTIxMTA2NTIy N2VlMDE0ZjkyY2JmOAogbGliMzJkaXNhYmxlZD15ZXMKIHB5dGhvbl92ZXJzaW9uPTMKIAoKRnJv bSBmZDQxZGYzMWE2ZGNhN2MzNzcwOTcwM2ViMzIzMTJlNDgwMWVjMWIyIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiBJc2FhYyBGcmV1bmQgPG1haWxAaXNhYWNmcmV1bmQuY29tPgpEYXRl OiBXZWQsIDIgTWFyIDIwMjIgMjA6NDk6MzcgKzAwMDAKU3ViamVjdDogW1BBVENIIDIwLzMxXSBy aXZlcjogdXBkYXRlIHRvIDAuMS4zCgotLS0KIC4uLmFibGUtUElFLWZvci1yaXZlci1yaXZlcmN0 bC1yaXZlcnRpbGUucGF0Y2ggfCAxOCArKysrKysrKystLS0tLS0tLS0KIHNyY3BrZ3Mvcml2ZXIv dGVtcGxhdGUgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNCArKy0tCiAyIGZpbGVzIGNoYW5n ZWQsIDExIGluc2VydGlvbnMoKyksIDExIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3Br Z3Mvcml2ZXIvcGF0Y2hlcy8wMDAxLUVuYWJsZS1QSUUtZm9yLXJpdmVyLXJpdmVyY3RsLXJpdmVy dGlsZS5wYXRjaCBiL3NyY3BrZ3Mvcml2ZXIvcGF0Y2hlcy8wMDAxLUVuYWJsZS1QSUUtZm9yLXJp dmVyLXJpdmVyY3RsLXJpdmVydGlsZS5wYXRjaAppbmRleCBlY2M2ODMwMmRiMDkuLjlkYTBlNWQ1 ZDA0MyAxMDA2NDQKLS0tIGEvc3JjcGtncy9yaXZlci9wYXRjaGVzLzAwMDEtRW5hYmxlLVBJRS1m b3Itcml2ZXItcml2ZXJjdGwtcml2ZXJ0aWxlLnBhdGNoCisrKyBiL3NyY3BrZ3Mvcml2ZXIvcGF0 Y2hlcy8wMDAxLUVuYWJsZS1QSUUtZm9yLXJpdmVyLXJpdmVyY3RsLXJpdmVydGlsZS5wYXRjaApA QCAtMTAsMzMgKzEwLDMzIEBAIGJ1aWxkIHN5c3RlbS4gU2VlOiBodHRwczovL2dpdGh1Yi5jb20v emlnbGFuZy96aWcvaXNzdWVzLzcyMDEKICAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCsp CiAKIGRpZmYgLS1naXQgYS9idWlsZC56aWcgYi9idWlsZC56aWcKLWluZGV4IGQ1NjFmNDkuLjhh YzlhNGUgMTAwNjQ0CitpbmRleCA5ODI5NjMzLi4xODAxNzlmIDEwMDY0NAogLS0tIGEvYnVpbGQu emlnCiArKysgYi9idWlsZC56aWcKLUBAIC04NSw2ICs4NSw3IEBAIHB1YiBmbiBidWlsZChiOiAq emJzLkJ1aWxkZXIpICF2b2lkIHsKK0BAIC04OSw2ICs4OSw3IEBAIHB1YiBmbiBidWlsZChiOiAq emJzLkJ1aWxkZXIpICF2b2lkIHsKICAgICAgICAgIGNvbnN0IHJpdmVyID0gYi5hZGRFeGVjdXRh YmxlKCJyaXZlciIsICJyaXZlci9tYWluLnppZyIpOwogICAgICAgICAgcml2ZXIuc2V0VGFyZ2V0 KHRhcmdldCk7CiAgICAgICAgICByaXZlci5zZXRCdWlsZE1vZGUobW9kZSk7CiArICAgICAgICBy aXZlci5waWUgPSB0cnVlOwotICAgICAgICAgcml2ZXIuYWRkQnVpbGRPcHRpb24oYm9vbCwgInh3 YXlsYW5kIiwgeHdheWxhbmQpOwotICAgICAgICAgcml2ZXIuYWRkQnVpbGRPcHRpb24oWzowXWNv bnN0IHU4LCAidmVyc2lvbiIsIGZ1bGxfdmVyc2lvbik7CisgICAgICAgICByaXZlci5hZGRPcHRp b25zKCJidWlsZF9vcHRpb25zIiwgb3B0aW9ucyk7CiAgCi1AQCAtOTcsNiArOTgsNyBAQCBwdWIg Zm4gYnVpbGQoYjogKnpicy5CdWlsZGVyKSAhdm9pZCB7CisgICAgICAgICBhZGRTZXJ2ZXJEZXBz KHJpdmVyLCBzY2FubmVyKTsKK0BAIC0xMDAsNiArMTAxLDcgQEAgcHViIGZuIGJ1aWxkKGI6ICp6 YnMuQnVpbGRlcikgIXZvaWQgewogICAgICAgICAgY29uc3Qgcml2ZXJjdGwgPSBiLmFkZEV4ZWN1 dGFibGUoInJpdmVyY3RsIiwgInJpdmVyY3RsL21haW4uemlnIik7CiAgICAgICAgICByaXZlcmN0 bC5zZXRUYXJnZXQodGFyZ2V0KTsKICAgICAgICAgIHJpdmVyY3RsLnNldEJ1aWxkTW9kZShtb2Rl KTsKICsgICAgICAgIHJpdmVyY3RsLnBpZSA9IHRydWU7Ci0gICAgICAgICByaXZlcmN0bC5hZGRC dWlsZE9wdGlvbihbOjBdY29uc3QgdTgsICJ2ZXJzaW9uIiwgZnVsbF92ZXJzaW9uKTsKKyAgICAg ICAgIHJpdmVyY3RsLmFkZE9wdGlvbnMoImJ1aWxkX29wdGlvbnMiLCBvcHRpb25zKTsKICAKICAg ICAgICAgIHJpdmVyY3RsLnN0ZXAuZGVwZW5kT24oJnNjYW5uZXIuc3RlcCk7Ci1AQCAtMTE0LDYg KzExNiw3IEBAIHB1YiBmbiBidWlsZChiOiAqemJzLkJ1aWxkZXIpICF2b2lkIHsKK0BAIC0xMjAs NiArMTIyLDcgQEAgcHViIGZuIGJ1aWxkKGI6ICp6YnMuQnVpbGRlcikgIXZvaWQgewogICAgICAg ICAgY29uc3Qgcml2ZXJ0aWxlID0gYi5hZGRFeGVjdXRhYmxlKCJyaXZlcnRpbGUiLCAicml2ZXJ0 aWxlL21haW4uemlnIik7CiAgICAgICAgICByaXZlcnRpbGUuc2V0VGFyZ2V0KHRhcmdldCk7CiAg ICAgICAgICByaXZlcnRpbGUuc2V0QnVpbGRNb2RlKG1vZGUpOwogKyAgICAgICAgcml2ZXJ0aWxl LnBpZSA9IHRydWU7Ci0gICAgICAgICByaXZlcnRpbGUuYWRkQnVpbGRPcHRpb24oWzowXWNvbnN0 IHU4LCAidmVyc2lvbiIsIGZ1bGxfdmVyc2lvbik7CisgICAgICAgICByaXZlcnRpbGUuYWRkT3B0 aW9ucygiYnVpbGRfb3B0aW9ucyIsIG9wdGlvbnMpOwogIAogICAgICAgICAgcml2ZXJ0aWxlLnN0 ZXAuZGVwZW5kT24oJnNjYW5uZXIuc3RlcCk7CiAtLSAKLTIuMzMuMQorMi4zNS4xCiAKZGlmZiAt LWdpdCBhL3NyY3BrZ3Mvcml2ZXIvdGVtcGxhdGUgYi9zcmNwa2dzL3JpdmVyL3RlbXBsYXRlCmlu ZGV4IDljZjNhYmU0Yjg1Yi4uYWUwOWFlNTRiMzRmIDEwMDY0NAotLS0gYS9zcmNwa2dzL3JpdmVy L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3Mvcml2ZXIvdGVtcGxhdGUKQEAgLTEsNiArMSw2IEBACiAj IFRlbXBsYXRlIGZpbGUgZm9yICdyaXZlcicKIHBrZ25hbWU9cml2ZXIKLXZlcnNpb249MC4xLjEK K3ZlcnNpb249MC4xLjMKIHJldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPXppZy1idWlsZAogY29uZmln dXJlX2FyZ3M9IiQodm9wdF9pZiB4d2F5bGFuZCAtRHh3YXlsYW5kKSIKQEAgLTEyLDcgKzEyLDcg QEAgbWFpbnRhaW5lcj0iSXNhYWMgRnJldW5kIDxtYWlsQGlzYWFjZnJldW5kLmNvbT4iCiBsaWNl bnNlPSJHUEwtMy4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vZ2l0aHViLmNvbS9yaXZl cndtL3JpdmVyIgogZGlzdGZpbGVzPSIke2hvbWVwYWdlfS9yZWxlYXNlcy9kb3dubG9hZC92JHt2 ZXJzaW9ufS9yaXZlci0ke3ZlcnNpb259LnRhci5neiIKLWNoZWNrc3VtPTJhMGJjZDQ2NzBlZDll YmQzOWMyNzlmMmJmMTA4MDNmYzY1YzlmM2VlMjMwN2NlNDA3MjhkZjIzY2U5MTRkMTgKK2NoZWNr c3VtPWY2MzQ0NGMzMDBhYjU1NGVmM2NhMGQ5MDRhNmIxMjRhODMyYzgzOTdkNDc0ZWYwNjdiZGRl OTExYzk4MWM3OWYKIAogYnVpbGRfb3B0aW9ucz0ieHdheWxhbmQiCiBidWlsZF9vcHRpb25zX2Rl ZmF1bHQ9Inh3YXlsYW5kIgoKRnJvbSAyYWEwYzQ0N2ZjOTZlZjVkN2RlOGZhYTliMTk2ZTRiMTFi NDYyMWRlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBJc2FhYyBGcmV1bmQgPG1haWxA aXNhYWNmcmV1bmQuY29tPgpEYXRlOiBXZWQsIDIgTWFyIDIwMjIgMjA6NTA6MTcgKzAwMDAKU3Vi amVjdDogW1BBVENIIDIxLzMxXSBydW5kaXJkOiByZW1vdmUgcGFja2FnZQoKICAgIFRoaXMgaGFz IGJlZW4gZGVwcmVjYXRlZCBieSB1cHN0cmVhbSB3aGljaCByZWNvbW1lbmRzIHVzaW5nCiAgICBk dW1iX3J1bnRpbWVfZGlyIChhbHJlYWR5IHBhY2thZ2VkIGZvciB2b2lkKSBpbnN0ZWFkLgoKICAg IFJlbW92aW5nIG5vdyBzaW5jZSBydW5kaXJkIDAuMi4wIGlzIG5vdCBjb21wYXRpYmxlIHdpdGgg emlnIDAuOSBhbmQKICAgIHRoZXJlIHdvbid0IGJlIGFueSBuZXcgcnVuZGlyZCByZWxlYXNlcy4K LS0tCiBzcmNwa2dzL3JlbW92ZWQtcGFja2FnZXMvdGVtcGxhdGUgfCAgMSArCiBzcmNwa2dzL3J1 bmRpcmQvZmlsZXMvcnVuZGlyZC9ydW4gfCAgMiAtLQogc3JjcGtncy9ydW5kaXJkL3RlbXBsYXRl ICAgICAgICAgIHwgMTcgLS0tLS0tLS0tLS0tLS0tLS0KIDMgZmlsZXMgY2hhbmdlZCwgMSBpbnNl cnRpb24oKyksIDE5IGRlbGV0aW9ucygtKQogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcnVu ZGlyZC9maWxlcy9ydW5kaXJkL3J1bgogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcnVuZGly ZC90ZW1wbGF0ZQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcmVtb3ZlZC1wYWNrYWdlcy90ZW1wbGF0 ZSBiL3NyY3BrZ3MvcmVtb3ZlZC1wYWNrYWdlcy90ZW1wbGF0ZQppbmRleCA5MDU5Y2MwODM0OWQu LjRmMjRjNTIzMmRkOSAxMDA2NDQKLS0tIGEvc3JjcGtncy9yZW1vdmVkLXBhY2thZ2VzL3RlbXBs YXRlCisrKyBiL3NyY3BrZ3MvcmVtb3ZlZC1wYWNrYWdlcy90ZW1wbGF0ZQpAQCAtMzYwLDYgKzM2 MCw3IEBAIHJlcGxhY2VzPSIKICBya3Qtc3RhZ2UxLWNvcmVvczw9MS4zMC4wXzMKICBya3Qtc3Rh Z2UxLWZseTw9MS4zMC4wXzMKICBya3Q8PTEuMzAuMF8zCisgcnVuZGlyZDw9MC4yLjBfMQogIHNj YW50YWlsb3I8PTAuOS4xMi4xXzIKICBzZWFob3JzZS1zaGFyaW5nPD0zLjguMF80CiAgc2VyaWVz cGw8PTIuMy41XzIKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcnVuZGlyZC9maWxlcy9ydW5kaXJkL3J1 biBiL3NyY3BrZ3MvcnVuZGlyZC9maWxlcy9ydW5kaXJkL3J1bgpkZWxldGVkIGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggZTRhYWU4YzgzYjRiLi4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9ydW5k aXJkL2ZpbGVzL3J1bmRpcmQvcnVuCisrKyAvZGV2L251bGwKQEAgLTEsMiArMCwwIEBACi0jIS9i aW4vc2gKLWV4ZWMgcnVuZGlyZApkaWZmIC0tZ2l0IGEvc3JjcGtncy9ydW5kaXJkL3RlbXBsYXRl IGIvc3JjcGtncy9ydW5kaXJkL3RlbXBsYXRlCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCA1ZmY4OTdhYmQ0NTYuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL3J1bmRpcmQvdGVtcGxh dGUKKysrIC9kZXYvbnVsbApAQCAtMSwxNyArMCwwIEBACi0jIFRlbXBsYXRlIGZpbGUgZm9yICdy dW5kaXJkJwotcGtnbmFtZT1ydW5kaXJkCi12ZXJzaW9uPTAuMi4wCi1yZXZpc2lvbj0xCi1idWls ZF9zdHlsZT16aWctYnVpbGQKLW1ha2VkZXBlbmRzPSJwYW0tZGV2ZWwiCi1zaG9ydF9kZXNjPSJT aW1wbGUgZGFlbW9uICsgUEFNIG1vZHVsZSBwcm92aWRpbmcgYW4gWERHX1JVTlRJTUVfRElSIgot bWFpbnRhaW5lcj0iSXNhYWMgRnJldW5kIDxtYWlsQGlzYWFjZnJldW5kLmNvbT4iCi1saWNlbnNl PSJHUEwtMy4wLW9yLWxhdGVyIgotaG9tZXBhZ2U9Imh0dHBzOi8vZ2l0aHViLmNvbS9pZnJldW5k L3J1bmRpcmQiCi1kaXN0ZmlsZXM9IiR7aG9tZXBhZ2V9L2FyY2hpdmUvdiR7dmVyc2lvbn0udGFy Lmd6IgotY2hlY2tzdW09MWRlYTIwN2YzOTM4OGU4YzJjMjc1YjhhOWFhZGEwMTY2ZDFmNTg3YTgw NmYyZTVlNDQ4NmQ5ODI1OWUyM2U0YwotCi1wb3N0X2luc3RhbGwoKSB7Ci0JdnN2IHJ1bmRpcmQK LQl2ZG9jIFJFQURNRS5tZAotfQoKRnJvbSAyNDIyZjJkYTBlNDI2YTMzN2IyYjNiM2E0OTQzZWFh MDg2YzFjODQ5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/QW5kcj1D Mz1BOT0yMENlcnF1ZWlyYT89IDxhY2VycXVlaXJhMDIxQGdtYWlsLmNvbT4KRGF0ZTogRnJpLCA0 IE1hciAyMDIyIDExOjU1OjQ2ICswMDAwClN1YmplY3Q6IFtQQVRDSCAyMi8zMV0gYmNjOiByZWJ1 aWxkIGZvciBsbHZtMTMKCi0tLQogc3JjcGtncy9iY2MvdGVtcGxhdGUgfCAyICstCiAxIGZpbGUg Y2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmNw a2dzL2JjYy90ZW1wbGF0ZSBiL3NyY3BrZ3MvYmNjL3RlbXBsYXRlCmluZGV4IDU0NTA5YjYzZDVh Ny4uMmNmYTBhMjk3N2QwIDEwMDY0NAotLS0gYS9zcmNwa2dzL2JjYy90ZW1wbGF0ZQorKysgYi9z cmNwa2dzL2JjYy90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3Ig J2JjYycKIHBrZ25hbWU9YmNjCiB2ZXJzaW9uPTAuMjQuMAotcmV2aXNpb249MQorcmV2aXNpb249 Mgogd3Jrc3JjPSJiY2MiCiBidWlsZF9zdHlsZT1jbWFrZQogY29uZmlndXJlX2FyZ3M9Ii1EUkVW SVNJT049JHt2ZXJzaW9ufSAtREVOQUJMRV9MTFZNX1NIQVJFRD0xIgoKRnJvbSA5MTA4YWMyOTRi Y2YzNzQxNTk1OWU2Y2U3OTFiZWMwMjNmNGZiMjY3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiA9P1VURi04P3E/QW5kcj1DMz1BOT0yMENlcnF1ZWlyYT89IDxhY2VycXVlaXJhMDIxQGdt YWlsLmNvbT4KRGF0ZTogRnJpLCA0IE1hciAyMDIyIDExOjU2OjMyICswMDAwClN1YmplY3Q6IFtQ QVRDSCAyMy8zMV0gZ25vbWUtYnVpbGRlcjogcmVidWlsZCBmb3IgbGx2bTEzCgotLS0KIHNyY3Br Z3MvZ25vbWUtYnVpbGRlci90ZW1wbGF0ZSB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2Vy dGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUtYnVpbGRl ci90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ25vbWUtYnVpbGRlci90ZW1wbGF0ZQppbmRleCA5MzU1OWIy MTc3NGYuLjVhNWE1MTg5M2FlOCAxMDA2NDQKLS0tIGEvc3JjcGtncy9nbm9tZS1idWlsZGVyL3Rl bXBsYXRlCisrKyBiL3NyY3BrZ3MvZ25vbWUtYnVpbGRlci90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcg QEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2dub21lLWJ1aWxkZXInCiBwa2duYW1lPWdub21lLWJ1 aWxkZXIKIHZlcnNpb249NDEuMwotcmV2aXNpb249MQorcmV2aXNpb249MgogYnVpbGRfc3R5bGU9 bWVzb24KIGJ1aWxkX2hlbHBlcj1xZW11CiBjb25maWd1cmVfYXJncz0iLURoZWxwPXRydWUgLURu ZXR3b3JrX3Rlc3RzPWZhbHNlIgoKRnJvbSAxMmQ3ZjdjMGQ1MmQ3NDIzMTM5ZDQwZDg0ZjY0NjNk MzIzYzIzZWU5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/QW5kcj1D Mz1BOT0yMENlcnF1ZWlyYT89IDxhY2VycXVlaXJhMDIxQGdtYWlsLmNvbT4KRGF0ZTogRnJpLCA0 IE1hciAyMDIyIDExOjU2OjU4ICswMDAwClN1YmplY3Q6IFtQQVRDSCAyNC8zMV0gbGRjOiByZWJ1 aWxkIGZvciBsbHZtMTMKCi0tLQogc3JjcGtncy9sZGMvdGVtcGxhdGUgfCA0ICsrLS0KIDEgZmls ZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv c3JjcGtncy9sZGMvdGVtcGxhdGUgYi9zcmNwa2dzL2xkYy90ZW1wbGF0ZQppbmRleCBhMjcyODBk ZGUzYjguLjgwNTk3OGE4MWZkOSAxMDA2NDQKLS0tIGEvc3JjcGtncy9sZGMvdGVtcGxhdGUKKysr IGIvc3JjcGtncy9sZGMvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUg Zm9yICdsZGMnCiBwa2duYW1lPWxkYwogdmVyc2lvbj0xLjI4LjAKLXJldmlzaW9uPTEKK3Jldmlz aW9uPTIKIHdya3NyYz0ibGRjLSR7dmVyc2lvbn0tc3JjIgogYnVpbGRfc3R5bGU9Y21ha2UKIGNv bmZpZ3VyZV9hcmdzPSIKQEAgLTExLDcgKzExLDcgQEAgY29uZmlndXJlX2FyZ3M9IgogIC1EQkFT SF9DT01QTEVUSU9OX0NPTVBMRVRJT05TRElSPS91c3Ivc2hhcmUvYmFzaC1jb21wbGV0aW9uCiAg LURDX1NZU1RFTV9MSUJTPSd1bndpbmQ7bTtwdGhyZWFkO3J0O2RsJyIKIGNvbmZfZmlsZXM9Ii9l dGMvbGRjMi5jb25mIgotaG9zdG1ha2VkZXBlbmRzPSJkbWQgbGx2bTEyIHBlcmwgcGtnLWNvbmZp ZyIKK2hvc3RtYWtlZGVwZW5kcz0iZG1kIGxsdm0gcGVybCBwa2ctY29uZmlnIgogbWFrZWRlcGVu ZHM9ImxpYmN1cmwtZGV2ZWwgbGliZmZpLWRldmVsIG5jdXJzZXMtZGV2ZWwgemxpYi1kZXZlbAog IGxsdm0tbGlidW53aW5kLWRldmVsIgogZGVwZW5kcz0ibGRjLXJ1bnRpbWUgbGx2bS1saWJ1bndp bmQtZGV2ZWwiCgpGcm9tIGRhNTc0MGFmNzVkZjVmYWZjNDY3ZThiZjUwMjI2YTViYWUwNDcxZWYg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206ID0/VVRGLTg/cT9BbmRyPUMzPUE5PTIwQ2Vy cXVlaXJhPz0gPGFjZXJxdWVpcmEwMjFAZ21haWwuY29tPgpEYXRlOiBGcmksIDQgTWFyIDIwMjIg MTE6NTg6MTcgKzAwMDAKU3ViamVjdDogW1BBVENIIDI1LzMxXSBzaGlib2tlbjI6IHJlYnVpbGQg Zm9yIGxsdm0xMwoKLS0tCiBzcmNwa2dzL3NoaWJva2VuMi90ZW1wbGF0ZSB8IDIgKy0KIDEgZmls ZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3Ny Y3BrZ3Mvc2hpYm9rZW4yL3RlbXBsYXRlIGIvc3JjcGtncy9zaGlib2tlbjIvdGVtcGxhdGUKaW5k ZXggYjU2NjEzMjI5YzEzLi5hYjlkMmM0Y2I4ZjkgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mvc2hpYm9r ZW4yL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3Mvc2hpYm9rZW4yL3RlbXBsYXRlCkBAIC0xLDcgKzEs NyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnc2hpYm9rZW4yJwogcGtnbmFtZT1zaGlib2tlbjIK IHZlcnNpb249NS4xNS4yCi1yZXZpc2lvbj00CityZXZpc2lvbj01CiBfcGtnbmFtZT0icHlzaWRl LXNldHVwLW9wZW5zb3VyY2Utc3JjLSR7dmVyc2lvbn0iCiB3cmtzcmM9IiR7X3BrZ25hbWUvJTUu MTQuMi4xLzUuMTQuMn0iCiBidWlsZF93cmtzcmM9InNvdXJjZXMvc2hpYm9rZW4yIgoKRnJvbSAy MGZlMjBkMWU4NWI1YWEwZTM1OWVmNjM2NmY3MmI4ZWQ5MTZkYjBmIE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/QW5kcj1DMz1BOT0yMENlcnF1ZWlyYT89IDxhY2VycXVl aXJhMDIxQGdtYWlsLmNvbT4KRGF0ZTogRnJpLCA0IE1hciAyMDIyIDExOjU4OjIzICswMDAwClN1 YmplY3Q6IFtQQVRDSCAyNi8zMV0gdGlsaXg6IHJlYnVpbGQgZm9yIGxsdm0xMwoKLS0tCiBzcmNw a2dzL3RpbGl4L3RlbXBsYXRlIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCsp LCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy90aWxpeC90ZW1wbGF0ZSBiL3Ny Y3BrZ3MvdGlsaXgvdGVtcGxhdGUKaW5kZXggZDhmMDE0YmM3OGM1Li5hYzFiZjdkZDNiZGQgMTAw NjQ0Ci0tLSBhL3NyY3BrZ3MvdGlsaXgvdGVtcGxhdGUKKysrIGIvc3JjcGtncy90aWxpeC90ZW1w bGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3RpbGl4JwogcGtnbmFt ZT10aWxpeAogdmVyc2lvbj0xLjkuNAotcmV2aXNpb249MworcmV2aXNpb249NAogYnVpbGRfc3R5 bGU9bWVzb24KIGNvbmZpZ3VyZV9hcmdzPSItRGJfbHRvPWZhbHNlIgogaG9zdG1ha2VkZXBlbmRz PSJhdXRvbWFrZSBnZXR0ZXh0LWRldmVsIGdkay1waXhidWYgZ2xpYi1kZXZlbCBsZGMgcG80YSBw a2ctY29uZmlnCgpGcm9tIDhhYmQzMDg4OWNhYzg5YTAzNTYzZTQwM2I3YmI4NzNlOGYwYzczMGYg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206ID0/VVRGLTg/cT9BbmRyPUMzPUE5PTIwQ2Vy cXVlaXJhPz0gPGFjZXJxdWVpcmEwMjFAZ21haWwuY29tPgpEYXRlOiBGcmksIDQgTWFyIDIwMjIg MTI6MTM6MTggKzAwMDAKU3ViamVjdDogW1BBVENIIDI3LzMxXSBydXN0OiByZWJ1aWxkIGZvciBs bHZtMTMKCi0tLQogc3JjcGtncy9ydXN0L3RlbXBsYXRlIHwgNiArKystLS0KIDEgZmlsZSBjaGFu Z2VkLCAzIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9ydXN0L3RlbXBsYXRlIGIvc3JjcGtncy9ydXN0L3RlbXBsYXRlCmluZGV4IDU2MGE2MjlmM2Rh Mi4uMjdmNDkxZDNjNjk3IDEwMDY0NAotLS0gYS9zcmNwa2dzL3J1c3QvdGVtcGxhdGUKKysrIGIv c3JjcGtncy9ydXN0L3RlbXBsYXRlCkBAIC05LDEwICs5LDEwIEBACiAjCiBwa2duYW1lPXJ1c3QK IHZlcnNpb249MS41Ny4wCi1yZXZpc2lvbj0xCityZXZpc2lvbj0yCiB3cmtzcmM9InJ1c3RjLSR7 dmVyc2lvbn0tc3JjIgogaG9zdG1ha2VkZXBlbmRzPSJjbWFrZSBjdXJsIHBrZy1jb25maWcgcHl0 aG9uMyB0YXIgY2FyZ28tYm9vdHN0cmFwIgotbWFrZWRlcGVuZHM9ImxpYmZmaS1kZXZlbCBuY3Vy c2VzLWRldmVsIGxpYnhtbDItZGV2ZWwgemxpYi1kZXZlbCBsbHZtMTIiCittYWtlZGVwZW5kcz0i bGliZmZpLWRldmVsIG5jdXJzZXMtZGV2ZWwgbGlieG1sMi1kZXZlbCB6bGliLWRldmVsIGxsdm0i CiBkZXBlbmRzPSJydXN0LXN0ZCIKIHNob3J0X2Rlc2M9IlNhZmUsIGNvbmN1cnJlbnQsIHByYWN0 aWNhbCBzeXN0ZW1zIGxhbmd1YWdlIgogbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2 b2lkbGludXgub3JnPiIKQEAgLTM0LDcgKzM0LDcgQEAgaWYgWyAiJFhCUFNfVEFSR0VUX0xJQkMi ID0gIm11c2wiIF07IHRoZW4KIGZpCiAKIGlmIFsgIiRDUk9TU19CVUlMRCIgXTsgdGhlbgotCWhv c3RtYWtlZGVwZW5kcys9IiBydXN0IGxsdm0xMiIKKwlob3N0bWFrZWRlcGVuZHMrPSIgcnVzdCBs bHZtIgogCSMgVGhlc2UgYXJlIHJlcXVpcmVkIGZvciBidWlsZGluZyB0aGUgYnVpbGRob3N0J3Mg c3RhZ2UwLzEKIAlob3N0bWFrZWRlcGVuZHMrPSIgbGliZmZpLWRldmVsIGxpYnhtbDItZGV2ZWwg bmN1cnNlcy1kZXZlbCB6bGliLWRldmVsIgogZWxzZQoKRnJvbSA2YTY5YzYwY2ZmM2Y5MjdmOTY2 NDgyOTk2MjNmMTY0NTdjOTBmZWVlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VU Ri04P3E/QW5kcj1DMz1BOT0yMENlcnF1ZWlyYT89IDxhY2VycXVlaXJhMDIxQGdtYWlsLmNvbT4K RGF0ZTogVHVlLCAyOSBNYXIgMjAyMiAwOToyODoxNiArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMjgv MzFdIGxsdm0xMzogYWRkIHBhdGNoIHRvIGJ1aWxkIG9uIHg4Nl82NC1tdXNsCgotLS0KIC4uLjZi ZTAxMjgxZTliMzliMTJlY2JiYjBmMWQ3NTVkNTJlMjFmNy5wYXRjaCB8IDU1ICsrKysrKysrKysr KysrKysrKysKIDEgZmlsZSBjaGFuZ2VkLCA1NSBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAx MDA2NDQgc3JjcGtncy9sbHZtMTMvcGF0Y2hlcy9kNjkwNmJlMDEyODFlOWIzOWIxMmVjYmJiMGYx ZDc1NWQ1MmUyMWY3LnBhdGNoCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9sbHZtMTMvcGF0Y2hlcy9k NjkwNmJlMDEyODFlOWIzOWIxMmVjYmJiMGYxZDc1NWQ1MmUyMWY3LnBhdGNoIGIvc3JjcGtncy9s bHZtMTMvcGF0Y2hlcy9kNjkwNmJlMDEyODFlOWIzOWIxMmVjYmJiMGYxZDc1NWQ1MmUyMWY3LnBh dGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNDAwYjIwOTczMDYw Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9sbHZtMTMvcGF0Y2hlcy9kNjkwNmJlMDEyODFl OWIzOWIxMmVjYmJiMGYxZDc1NWQ1MmUyMWY3LnBhdGNoCkBAIC0wLDAgKzEsNTUgQEAKK0Zyb20g ZDY5MDZiZTAxMjgxZTliMzliMTJlY2JiYjBmMWQ3NTVkNTJlMjFmNyBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKK0Zyb206IE5lbmFkIE1pa3NhIDxuZW5hZC5taWtzYUBtaWNyb2JsaW5rLmNvbT4K K0RhdGU6IFR1ZSwgNSBPY3QgMjAyMSAxNDowMjozNiArMDIwMAorU3ViamVjdDogW1BBVENIXSBm aXggYnVpbGQgb24gQWxwaW5lIExpbnV4CisKKy0gbWFrZSBzdXJlIGxpYmV4ZWNpbmZvIGdldHMg bGlua2VkIGludG8gY29tcGlsZXItcnQgd2hlbiBidWlsZGluZworICBhZ2FpbnN0IG11c2wgYyBs aWJyYXJ5IG9uIEFscGluZSBMaW51eAorLS0tCisgY29tcGlsZXItcnQvY21ha2UvY29uZmlnLWl4 LmNtYWtlICAgICAgICAgICAgICAgfCAxICsKKyBjb21waWxlci1ydC9saWIvc2N1ZG8vQ01ha2VM aXN0cy50eHQgICAgICAgICAgICB8IDIgKysKKyBjb21waWxlci1ydC9saWIvc2N1ZG8vc3RhbmRh bG9uZS9DTWFrZUxpc3RzLnR4dCB8IDEgKworIDMgZmlsZXMgY2hhbmdlZCwgNCBpbnNlcnRpb25z KCspCisKK2RpZmYgLS1naXQgYS9jb21waWxlci1ydC9jbWFrZS9jb25maWctaXguY21ha2UgYi9j b21waWxlci1ydC9jbWFrZS9jb25maWctaXguY21ha2UKK2luZGV4IDM5YjkxMjBmMDBhZGYuLjcz ZDAyNzhkYWUxMTQgMTAwNjQ0CistLS0gYS9jb21waWxlci1ydC9jbWFrZS9jb25maWctaXguY21h a2UKKysrKyBiL2NvbXBpbGVyLXJ0L2NtYWtlL2NvbmZpZy1peC5jbWFrZQorQEAgLTE0LDYgKzE0 LDcgQEAgZnVuY3Rpb24oY29tcGlsZXJfcnRfY2hlY2tfbGlua2VyX2ZsYWcgZmxhZyBvdXRfdmFy KQorIGVuZGZ1bmN0aW9uKCkKKyAKKyBjaGVja19saWJyYXJ5X2V4aXN0cyhjIGZvcGVuICIiIENP TVBJTEVSX1JUX0hBU19MSUJDKQorK2NoZWNrX2xpYnJhcnlfZXhpc3RzKGV4ZWNpbmZvIGJhY2t0 cmFjZSAiIiBDT01QSUxFUl9SVF9IQVNfRVhFQ0lORk8pCisgaWYgKENPTVBJTEVSX1JUX1VTRV9C VUlMVElOU19MSUJSQVJZKQorICAgaW5jbHVkZShIYW5kbGVDb21waWxlclJUKQorICAgZmluZF9j b21waWxlcl9ydF9saWJyYXJ5KGJ1aWx0aW5zICIiIENPTVBJTEVSX1JUX0JVSUxUSU5TX0xJQlJB UlkpCitkaWZmIC0tZ2l0IGEvY29tcGlsZXItcnQvbGliL3NjdWRvL0NNYWtlTGlzdHMudHh0IGIv Y29tcGlsZXItcnQvbGliL3NjdWRvL0NNYWtlTGlzdHMudHh0CitpbmRleCBlNTgwZDZkMTQwOGJk Li5lOTkzNjQxNjlmNDkyIDEwMDY0NAorLS0tIGEvY29tcGlsZXItcnQvbGliL3NjdWRvL0NNYWtl TGlzdHMudHh0CisrKysgYi9jb21waWxlci1ydC9saWIvc2N1ZG8vQ01ha2VMaXN0cy50eHQKK0BA IC0xNCwxMSArMTQsMTMgQEAgYXBwZW5kX2xpc3RfaWYoQ09NUElMRVJfUlRfSEFTX0xJQlBUSFJF QUQgcHRocmVhZCBTQ1VET19NSU5JTUFMX0RZTkFNSUNfTElCUykKKyBhcHBlbmRfbGlzdF9pZihD T01QSUxFUl9SVF9IQVNfTElCTE9HIGxvZyBTQ1VET19NSU5JTUFMX0RZTkFNSUNfTElCUykKKyBh cHBlbmRfbGlzdF9pZihDT01QSUxFUl9SVF9IQVNfT01JVF9GUkFNRV9QT0lOVEVSX0ZMQUcgLWZu by1vbWl0LWZyYW1lLXBvaW50ZXIKKyAgICAgICAgICAgICAgICBTQ1VET19DRkxBR1MpCisrYXBw ZW5kX2xpc3RfaWYoQ09NUElMRVJfUlRfSEFTX0VYRUNJTkZPIGV4ZWNpbmZvIFNDVURPX01JTklN QUxfRFlOQU1JQ19MSUJTKQorIAorIHNldChTQ1VET19EWU5BTUlDX0xJTktfRkxBR1MgJHtTQU5J VElaRVJfQ09NTU9OX0xJTktfRkxBR1N9KQorICMgVXNlIGdjLXNlY3Rpb25zIGJ5IGRlZmF1bHQg dG8gYXZvaWQgdW51c2VkIGNvZGUgYmVpbmcgcHVsbGVkIGluLgorIGxpc3QoQVBQRU5EIFNDVURP X0RZTkFNSUNfTElOS19GTEFHUyAtV2wsLS1nYy1zZWN0aW9ucykKKyAKKysKKyBpZihBTkRST0lE KQorICMgUHV0IG1vc3QgU2FuaXRpemVyIHNoYXJlZCBsaWJyYXJpZXMgaW4gdGhlIGdsb2JhbCBn cm91cC4gRm9yIG1vcmUgZGV0YWlscywgc2VlCisgIyBhbmRyb2lkLWNoYW5nZXMtZm9yLW5kay1k ZXZlbG9wZXJzLm1kI2NoYW5nZXMtdG8tbGlicmFyeS1zZWFyY2gtb3JkZXIKK2RpZmYgLS1naXQg YS9jb21waWxlci1ydC9saWIvc2N1ZG8vc3RhbmRhbG9uZS9DTWFrZUxpc3RzLnR4dCBiL2NvbXBp bGVyLXJ0L2xpYi9zY3Vkby9zdGFuZGFsb25lL0NNYWtlTGlzdHMudHh0CitpbmRleCBkNmZmYTQ0 OGQ3ZTA5Li45NTlhZmVkYzBjMGNkIDEwMDY0NAorLS0tIGEvY29tcGlsZXItcnQvbGliL3NjdWRv L3N0YW5kYWxvbmUvQ01ha2VMaXN0cy50eHQKKysrKyBiL2NvbXBpbGVyLXJ0L2xpYi9zY3Vkby9z dGFuZGFsb25lL0NNYWtlTGlzdHMudHh0CitAQCAtMTM0LDYgKzEzNCw3IEBAIGVuZGlmKCkKKyBz ZXQoU0NVRE9fTElOS19MSUJTKQorIAorIGFwcGVuZF9saXN0X2lmKENPTVBJTEVSX1JUX0hBU19M SUJQVEhSRUFEIC1wdGhyZWFkIFNDVURPX0xJTktfRkxBR1MpCisrYXBwZW5kX2xpc3RfaWYoQ09N UElMRVJfUlRfSEFTX0VYRUNJTkZPIGV4ZWNpbmZvIFNDVURPX0xJTktfTElCUykKKyAKKyBhcHBl bmRfbGlzdF9pZihGVUNIU0lBIHppcmNvbiBTQ1VET19MSU5LX0xJQlMpCisgCgpGcm9tIDRhMmVm NDk3OWQ0MGEyY2M0ODNjMmMxODZjODE1OTgwNTY0NmM2MTcgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCkZyb206ID0/VVRGLTg/cT9BbmRyPUMzPUE5PTIwQ2VycXVlaXJhPz0gPGFjZXJxdWVpcmEw MjFAZ21haWwuY29tPgpEYXRlOiBXZWQsIDMwIE1hciAyMDIyIDIxOjA0OjU3ICswMTAwClN1Ympl Y3Q6IFtQQVRDSCAyOS8zMV0gZ2hkbDogcmVidWlsZCBmb3IgbGx2bTEzCgotLS0KIHNyY3BrZ3Mv Z2hkbC90ZW1wbGF0ZSB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBk ZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ2hkbC90ZW1wbGF0ZSBiL3NyY3BrZ3Mv Z2hkbC90ZW1wbGF0ZQppbmRleCBlNzU2ZDhjM2NkODcuLmNmOTBlNmZjMmEyMiAxMDA2NDQKLS0t IGEvc3JjcGtncy9naGRsL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ2hkbC90ZW1wbGF0ZQpAQCAt NTEsNyArNTEsNyBAQCBmaQogCiBpZiBbICIkYnVpbGRfb3B0aW9uX2xsdm0iIF07IHRoZW4KIAlz dWJwYWNrYWdlcys9IiBnaGRsLWxsdm0iCi0JbWFrZWRlcGVuZHMrPSIgbGx2bTEyIgorCW1ha2Vk ZXBlbmRzKz0iIGxsdm0xMyIKIGZpCiAKIGRvX2NvbmZpZ3VyZSgpIHsKCkZyb20gMjhjOGZjNTYx NmY0M2Q1NDU2MWE0NDBmOTc1YTQyNGQ0NTE0OWY1NSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK RnJvbTogPT9VVEYtOD9xP0FuZHI9QzM9QTk9MjBDZXJxdWVpcmE/PSA8YWNlcnF1ZWlyYTAyMUBn bWFpbC5jb20+CkRhdGU6IFRodSwgMzEgTWFyIDIwMjIgMDc6MTk6NDUgKzAxMDAKU3ViamVjdDog W1BBVENIIDMwLzMxXSBxdDU6IHJlYnVpbGQgZm9yIGxsdm0xMwoKLS0tCiBzcmNwa2dzL3F0NS90 ZW1wbGF0ZSB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlv bigtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ1L3RlbXBsYXRlIGIvc3JjcGtncy9xdDUvdGVt cGxhdGUKaW5kZXggM2E2ODQxZWQ2OWI0Li5mNmMwMzc3N2Q5OTMgMTAwNjQ0Ci0tLSBhL3NyY3Br Z3MvcXQ1L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvcXQ1L3RlbXBsYXRlCkBAIC0zLDcgKzMsNyBA QCBwa2duYW1lPXF0NQogdmVyc2lvbj01LjE1LjMrMjAyMjAyMjIKICMgY29tbWl0IGZjY2E4MmNh NDBhNWQ4YTAyYTRkZGQ5MDg0NmQwNzBmMmM1OGNmYWQKICMgYmFzZSByZXBvOiBodHRwczovL2lu dmVudC5rZGUub3JnL3F0L3F0L3F0NQotcmV2aXNpb249MQorcmV2aXNpb249MgogYnVpbGRfc3R5 bGU9bWV0YQogaG9zdG1ha2VkZXBlbmRzPSJjbWFrZSBjbGFuZyBmbGV4IHBlcmwgZ2xpYi1kZXZl bCBwa2ctY29uZmlnCiAgcHl0aG9uIHJlMmMgcnVieSB3aGljaCIKCkZyb20gZDU1NDNlOTFhMDY3 NWFlNzdkOWY5YmU1OTA5OGI4MmNiYWVlOGI0NCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJv bTogPT9VVEYtOD9xP0FuZHI9QzM9QTk9MjBDZXJxdWVpcmE/PSA8YWNlcnF1ZWlyYTAyMUBnbWFp bC5jb20+CkRhdGU6IFRodSwgMzEgTWFyIDIwMjIgMTc6MDI6MzggKzAxMDAKU3ViamVjdDogW1BB VENIIDMxLzMxXSBTUElSVi1MTFZNLVRyYW5zbGF0b3I6IHVwZGF0ZSB0byAxMy4wLjAuCgotLS0K IGNvbW1vbi9zaGxpYnMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMSArCiBz cmNwa2dzL1NQSVJWLUhlYWRlcnMvdGVtcGxhdGUgICAgICAgICAgICAgICAgfCAgIDcgKy0KIC4u Li9TUElSVi1MTFZNLVRyYW5zbGF0b3IvcGF0Y2hlcy8xMjg0LnBhdGNoICB8IDI5NyArKysrKysr KysrKysrKysrKysKIHNyY3BrZ3MvU1BJUlYtTExWTS1UcmFuc2xhdG9yL3RlbXBsYXRlICAgICAg ICB8ICAxMSArLQogNCBmaWxlcyBjaGFuZ2VkLCAzMDggaW5zZXJ0aW9ucygrKSwgOCBkZWxldGlv bnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL1NQSVJWLUxMVk0tVHJhbnNsYXRvci9w YXRjaGVzLzEyODQucGF0Y2gKCmRpZmYgLS1naXQgYS9jb21tb24vc2hsaWJzIGIvY29tbW9uL3No bGlicwppbmRleCA3NTYxNTg1ZWM1NmUuLjEwYjM0NjUxNDRhYSAxMDA2NDQKLS0tIGEvY29tbW9u L3NobGlicworKysgYi9jb21tb24vc2hsaWJzCkBAIC05NzksNiArOTc5LDcgQEAgbGliY2xhbmct Y3BwLnNvLjEzIGxpYmNsYW5nLWNwcC0xMy4wLjBfMQogbGliTExWTS0xMS5zbyBsaWJsbHZtMTEt MTEuMC4wXzEKIGxpYkxMVk0tMTIuc28gbGlibGx2bTEyLTEyLjAuMF8xCiBsaWJMTFZNLTEzLnNv IGxpYmxsdm0xMy0xMy4wLjBfMQorbGliTExWTVNQSVJWTGliLnNvLjEzIFNQSVJWLUxMVk0tVHJh bnNsYXRvci0xMy4wLjBfMQogbGliaXNvZnMuc28uNiBsaWJpc29mcy0wLjYuMjRfMQogbGlibXBh Y2suc28uMCBsaWJtcGFjay0xLjAuNV8xCiBsaWJHZW9JUC5zby4xIGxpYmdlb2lwLTEuNC44XzEK ZGlmZiAtLWdpdCBhL3NyY3BrZ3MvU1BJUlYtSGVhZGVycy90ZW1wbGF0ZSBiL3NyY3BrZ3MvU1BJ UlYtSGVhZGVycy90ZW1wbGF0ZQppbmRleCA1ZGNmNDU3YzA0YzcuLjI1YTZjOTQyYWViZiAxMDA2 NDQKLS0tIGEvc3JjcGtncy9TUElSVi1IZWFkZXJzL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvU1BJ UlYtSGVhZGVycy90ZW1wbGF0ZQpAQCAtMSwxMSArMSwxMiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZv ciAnU1BJUlYtSGVhZGVycycKIHBrZ25hbWU9U1BJUlYtSGVhZGVycwotdmVyc2lvbj0xLjUuNC5y YXl0cmFjaW5nLmZpeGVkCit2ZXJzaW9uPTEuMy4yMDQuMQogcmV2aXNpb249MQord3Jrc3JjPSR7 cGtnbmFtZX0tc2RrLSR7dmVyc2lvbn0KIGJ1aWxkX3N0eWxlPWNtYWtlCiBzaG9ydF9kZXNjPSJN YWNoaW5lLXJlYWRhYmxlIGZpbGVzIGZvciB0aGUgU1BJUi1WIFJlZ2lzdHJ5IgogbWFpbnRhaW5l cj0iT3JwaGFuZWQgPG9ycGhhbkB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0zLjAtb3It bGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly9naXRodWIuY29tL0tocm9ub3NHcm91cC9TUElSVi1I ZWFkZXJzIgotZGlzdGZpbGVzPSJodHRwczovL2dpdGh1Yi5jb20vS2hyb25vc0dyb3VwL1NQSVJW LUhlYWRlcnMvYXJjaGl2ZS8ke3ZlcnNpb259LnRhci5neiIKLWNoZWNrc3VtPWRmMmFkMjUyMGJl NGQ5NWE0NzlmYTI0ODkyMTA2NTg4NWJiZjQzNWE2NTgzNDlhN2ZjMTY0YWQ3YjI2YjY4YzYKK2Rp c3RmaWxlcz0iaHR0cHM6Ly9naXRodWIuY29tL0tocm9ub3NHcm91cC9TUElSVi1IZWFkZXJzL2Fy Y2hpdmUvc2RrLSR7dmVyc2lvbn0udGFyLmd6IgorY2hlY2tzdW09MjYyODY0MDUzOTY4YzIxN2Q0 NWIyNGI4OTA0NGE3NzM2YTMyMzYxODk0NzQzZGQ2Y2ZlNzg4ZGYyNThjNzQ2YwpkaWZmIC0tZ2l0 IGEvc3JjcGtncy9TUElSVi1MTFZNLVRyYW5zbGF0b3IvcGF0Y2hlcy8xMjg0LnBhdGNoIGIvc3Jj cGtncy9TUElSVi1MTFZNLVRyYW5zbGF0b3IvcGF0Y2hlcy8xMjg0LnBhdGNoCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMjM3ZWI0ODMyZjVkCi0tLSAvZGV2L251bGwK KysrIGIvc3JjcGtncy9TUElSVi1MTFZNLVRyYW5zbGF0b3IvcGF0Y2hlcy8xMjg0LnBhdGNoCkBA IC0wLDAgKzEsMjk3IEBACitGcm9tIDcwZmZkYjQ3MDk4NjYwOGIxZjRmNGM2ZDYxZTE1ZGQ2NTI3 NWMxODIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBEbWl0cnkgU2lkb3JvdiA8ZG1p dHJ5LnNpZG9yb3ZAaW50ZWwuY29tPgorRGF0ZTogVGh1LCAxOCBOb3YgMjAyMSAxNjo1Njo0MCAr MDMwMAorU3ViamVjdDogW1BBVENIXSBSZW5hbWUgT3BDb25zdEZ1bmN0aW9uUG9pbnRlcklOVEVM IHRvCisgT3BDb25zdGFudEZ1bmN0aW9uUG9pbnRlcklOVEVMICgjMTI2NSkKKworU2lnbmVkLW9m Zi1ieTogRG1pdHJ5IFNpZG9yb3YgPGRtaXRyeS5zaWRvcm92QGludGVsLmNvbT4KKy0tLQorIGxp Yi9TUElSVi9TUElSVlJlYWRlci5jcHAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDYg KysrLS0tCisgbGliL1NQSVJWL1NQSVJWV3JpdGVyLmNwcCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfCAgMiArLQorIGxpYi9TUElSVi9TUElSVldyaXRlci5oICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgIDMgKystCisgbGliL1NQSVJWL2xpYlNQSVJWL1NQSVJWRnVuY3Rpb24u aCAgICAgICAgICAgICAgICAgICAgfCAxMCArKysrKy0tLS0tCisgbGliL1NQSVJWL2xpYlNQSVJW L1NQSVJWTW9kdWxlLmNwcCAgICAgICAgICAgICAgICAgICAgfCAxMSArKysrKystLS0tLQorIGxp Yi9TUElSVi9saWJTUElSVi9TUElSVk1vZHVsZS5oICAgICAgICAgICAgICAgICAgICAgIHwgIDQg KystLQorIGxpYi9TUElSVi9saWJTUElSVi9TUElSVk9wQ29kZS5oICAgICAgICAgICAgICAgICAg ICAgIHwgIDIgKy0KKyBsaWIvU1BJUlYvbGliU1BJUlYvU1BJUlZPcENvZGVFbnVtLmggICAgICAg ICAgICAgICAgICB8ICAyICstCisgc3BpcnYtaGVhZGVycy10YWcuY29uZiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfCAgMiArLQorIHRlc3QvY29uc3RleHByX3ZlY3Rvci5sbCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDggKysrKy0tLS0KKyAuLi4vU1BWX0lOVEVMX2Z1 bmN0aW9uX3BvaW50ZXJzL2JpdGNhc3QubGwgICAgICAgICAgICB8ICAyICstCisgLi4uL2NvbnN0 LWZ1bmN0aW9uLXBvaW50ZXIubGwgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNCArKy0tCisg Li4uL1NQVl9JTlRFTF9mdW5jdGlvbl9wb2ludGVycy9mdW5jdGlvbi1wb2ludGVyLmxsICAgfCAg MiArLQorIC4uLi9TUFZfSU5URUxfZnVuY3Rpb25fcG9pbnRlcnMvZ2xvYmFsX2N0b3JfZHRvci5s bCAgIHwgIDQgKystLQorIC4uLi9ub24tdW5pZm9ybS1mdW5jdGlvbi1wb2ludGVyLmxsICAgICAg ICAgICAgICAgICAgIHwgIDQgKystLQorIC4uLi90cmFuc2NvZGluZy9TUFZfSU5URUxfZnVuY3Rp b25fcG9pbnRlcnMvc2VsZWN0LmxsIHwgIDQgKystLQorIC4uLi9TUFZfSU5URUxfZnVuY3Rpb25f cG9pbnRlcnMvdmVjdG9yX2VsZW0ubGwgICAgICAgIHwgIDQgKystLQorIDE3IGZpbGVzIGNoYW5n ZWQsIDM4IGluc2VydGlvbnMoKyksIDM2IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvbGli L1NQSVJWL1NQSVJWUmVhZGVyLmNwcCBiL2xpYi9TUElSVi9TUElSVlJlYWRlci5jcHAKK2luZGV4 IDhhNGRiNTNiZS4uOWQzN2E0OTBlIDEwMDY0NAorLS0tIGEvbGliL1NQSVJWL1NQSVJWUmVhZGVy LmNwcAorKysrIGIvbGliL1NQSVJWL1NQSVJWUmVhZGVyLmNwcAorQEAgLTE0MzksOSArMTQzOSw5 IEBAIFZhbHVlICpTUElSVlRvTExWTTo6dHJhbnNWYWx1ZVdpdGhvdXREZWNvcmF0aW9uKFNQSVJW VmFsdWUgKkJWLCBGdW5jdGlvbiAqRiwKKyAgICAgcmV0dXJuIG1hcFZhbHVlKEJWLCB0cmFuc1Zh bHVlKEJJLCBudWxscHRyLCBudWxscHRyLCBmYWxzZSkpOworICAgfQorIAorLSAgY2FzZSBPcENv bnN0RnVuY3Rpb25Qb2ludGVySU5URUw6IHsKKy0gICAgU1BJUlZDb25zdEZ1bmN0aW9uUG9pbnRl cklOVEVMICpCQyA9CistICAgICAgICBzdGF0aWNfY2FzdDxTUElSVkNvbnN0RnVuY3Rpb25Qb2lu dGVySU5URUwgKj4oQlYpOworKyAgY2FzZSBPcENvbnN0YW50RnVuY3Rpb25Qb2ludGVySU5URUw6 IHsKKysgICAgU1BJUlZDb25zdGFudEZ1bmN0aW9uUG9pbnRlcklOVEVMICpCQyA9CisrICAgICAg ICBzdGF0aWNfY2FzdDxTUElSVkNvbnN0YW50RnVuY3Rpb25Qb2ludGVySU5URUwgKj4oQlYpOwor ICAgICBTUElSVkZ1bmN0aW9uICpGID0gQkMtPmdldEZ1bmN0aW9uKCk7CisgICAgIEJWLT5zZXRO YW1lKEYtPmdldE5hbWUoKSk7CisgICAgIHJldHVybiBtYXBWYWx1ZShCViwgdHJhbnNGdW5jdGlv bihGKSk7CitkaWZmIC0tZ2l0IGEvbGliL1NQSVJWL1NQSVJWV3JpdGVyLmNwcCBiL2xpYi9TUElS Vi9TUElSVldyaXRlci5jcHAKK2luZGV4IDE4YTM5Y2Y4ZS4uYjE4YzljMzZiIDEwMDY0NAorLS0t IGEvbGliL1NQSVJWL1NQSVJWV3JpdGVyLmNwcAorKysrIGIvbGliL1NQSVJWL1NQSVJWV3JpdGVy LmNwcAorQEAgLTE0MTgsNyArMTQxOCw3IEBAIExMVk1Ub1NQSVJWQmFzZTo6dHJhbnNWYWx1ZVdp dGhvdXREZWNvcmF0aW9uKFZhbHVlICpWLCBTUElSVkJhc2ljQmxvY2sgKkJCLAorICAgICBpZiAo IUJNLT5jaGVja0V4dGVuc2lvbihFeHRlbnNpb25JRDo6U1BWX0lOVEVMX2Z1bmN0aW9uX3BvaW50 ZXJzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTUElSVkVDX0Z1bmN0aW9uUG9pbnRl cnMsIHRvU3RyaW5nKFYpKSkKKyAgICAgICByZXR1cm4gbnVsbHB0cjsKKy0gICAgcmV0dXJuIEJN LT5hZGRDb25zdEZ1bmN0aW9uUG9pbnRlcklOVEVMKAorKyAgICByZXR1cm4gQk0tPmFkZENvbnN0 YW50RnVuY3Rpb25Qb2ludGVySU5URUwoCisgICAgICAgICB0cmFuc1R5cGUoRi0+Z2V0VHlwZSgp KSwKKyAgICAgICAgIHN0YXRpY19jYXN0PFNQSVJWRnVuY3Rpb24gKj4odHJhbnNWYWx1ZShGLCBu dWxscHRyKSkpOworICAgfQorZGlmZiAtLWdpdCBhL2xpYi9TUElSVi9TUElSVldyaXRlci5oIGIv bGliL1NQSVJWL1NQSVJWV3JpdGVyLmgKK2luZGV4IDBjNTc4NjFiZi4uMjQyNzkzMjc2IDEwMDY0 NAorLS0tIGEvbGliL1NQSVJWL1NQSVJWV3JpdGVyLmgKKysrKyBiL2xpYi9TUElSVi9TUElSVldy aXRlci5oCitAQCAtNzUsNyArNzUsOCBAQCBjbGFzcyBMTFZNVG9TUElSVkJhc2UgeworICAgLy8g YSBmdW5jdGlvbiwgdGhhdCBpcyBuZWNlc3NhcnkgZm9yIGEgY29udmVuaWVudCBmdW5jdGlvbiBw b2ludGVycyBoYW5kbGluZy4KKyAgIC8vIEJ5IGRlZmF1bHQgdHJhbnNWYWx1ZSB1c2VzICdEZWNs JyBtb2RlLCB3aGljaCBtZWFucyBldmVyeSBmdW5jdGlvbgorICAgLy8gd2UgbWVldCBkdXJpbmcg dGhlIHRyYW5zbGF0aW9uIHNob3VsZCByZXN1bHQgaW4gaXRzIGRlY2xhcmF0aW9uIGdlbmVyYXRl ZC4KKy0gIC8vIEluICdQb2ludGVyJyBtb2RlIHdlIGdlbmVyYXRlIE9wQ29uc3RGdW5jdGlvblBv aW50ZXJJTlRFTCBjb25zdGFudCBpbnN0ZWFkLgorKyAgLy8gSW4gJ1BvaW50ZXInIG1vZGUgd2Ug Z2VuZXJhdGUgT3BDb25zdGFudEZ1bmN0aW9uUG9pbnRlcklOVEVMIGNvbnN0YW50CisrICAvLyBp bnN0ZWFkLgorICAgZW51bSBjbGFzcyBGdW5jVHJhbnNNb2RlIHsgRGVjbCwgUG9pbnRlciB9Owor IAorICAgU1BJUlZUeXBlICp0cmFuc1R5cGUoVHlwZSAqVCk7CitkaWZmIC0tZ2l0IGEvbGliL1NQ SVJWL2xpYlNQSVJWL1NQSVJWRnVuY3Rpb24uaCBiL2xpYi9TUElSVi9saWJTUElSVi9TUElSVkZ1 bmN0aW9uLmgKK2luZGV4IGJmMTI2ZDQwMi4uMzVjYWI4NjJiIDEwMDY0NAorLS0tIGEvbGliL1NQ SVJWL2xpYlNQSVJWL1NQSVJWRnVuY3Rpb24uaAorKysrIGIvbGliL1NQSVJWL2xpYlNQSVJWL1NQ SVJWRnVuY3Rpb24uaAorQEAgLTE3MSwxOCArMTcxLDE4IEBAIGNsYXNzIFNQSVJWRnVuY3Rpb24g OiBwdWJsaWMgU1BJUlZWYWx1ZSwgcHVibGljIFNQSVJWQ29tcG9uZW50RXhlY3V0aW9uTW9kZXMg eworIAorIHR5cGVkZWYgU1BJUlZFbnRyeU9wQ29kZU9ubHk8T3BGdW5jdGlvbkVuZD4gU1BJUlZG dW5jdGlvbkVuZDsKKyAKKy1jbGFzcyBTUElSVkNvbnN0RnVuY3Rpb25Qb2ludGVySU5URUwgOiBw dWJsaWMgU1BJUlZWYWx1ZSB7CistICBjb25zdCBzdGF0aWMgT3AgT0MgPSBPcENvbnN0RnVuY3Rp b25Qb2ludGVySU5URUw7CisrY2xhc3MgU1BJUlZDb25zdGFudEZ1bmN0aW9uUG9pbnRlcklOVEVM IDogcHVibGljIFNQSVJWVmFsdWUgeworKyAgY29uc3Qgc3RhdGljIE9wIE9DID0gT3BDb25zdGFu dEZ1bmN0aW9uUG9pbnRlcklOVEVMOworICAgY29uc3Qgc3RhdGljIFNQSVJWV29yZCBGaXhlZFdv cmRDb3VudCA9IDQ7CisgCisgcHVibGljOgorLSAgU1BJUlZDb25zdEZ1bmN0aW9uUG9pbnRlcklO VEVMKFNQSVJWSWQgVGhlSWQsIFNQSVJWVHlwZSAqVGhlVHlwZSwKKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBTUElSVkZ1bmN0aW9uICpUaGVGdW5jdGlvbiwgU1BJUlZNb2R1bGUg Kk0pCisrICBTUElSVkNvbnN0YW50RnVuY3Rpb25Qb2ludGVySU5URUwoU1BJUlZJZCBUaGVJZCwg U1BJUlZUeXBlICpUaGVUeXBlLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFNQSVJWRnVuY3Rpb24gKlRoZUZ1bmN0aW9uLCBTUElSVk1vZHVsZSAqTSkKKyAgICAgICA6IFNQ SVJWVmFsdWUoTSwgRml4ZWRXb3JkQ291bnQsIE9DLCBUaGVUeXBlLCBUaGVJZCksCisgICAgICAg ICBUaGVGdW5jdGlvbihUaGVGdW5jdGlvbi0+Z2V0SWQoKSkgeworICAgICB2YWxpZGF0ZSgpOwor ICAgfQorLSAgU1BJUlZDb25zdEZ1bmN0aW9uUG9pbnRlcklOVEVMKCkKKysgIFNQSVJWQ29uc3Rh bnRGdW5jdGlvblBvaW50ZXJJTlRFTCgpCisgICAgICAgOiBTUElSVlZhbHVlKE9DKSwgVGhlRnVu Y3Rpb24oU1BJUlZJRF9JTlZBTElEKSB7fQorICAgU1BJUlZGdW5jdGlvbiAqZ2V0RnVuY3Rpb24o KSBjb25zdCB7IHJldHVybiBnZXQ8U1BJUlZGdW5jdGlvbj4oVGhlRnVuY3Rpb24pOyB9CisgICBf U1BJUlZfREVGX0VOQ0RFQzMoVHlwZSwgSWQsIFRoZUZ1bmN0aW9uKQorZGlmZiAtLWdpdCBhL2xp Yi9TUElSVi9saWJTUElSVi9TUElSVk1vZHVsZS5jcHAgYi9saWIvU1BJUlYvbGliU1BJUlYvU1BJ UlZNb2R1bGUuY3BwCitpbmRleCAzZDJhNmFlNTcuLjBmOGU2ZTUwMiAxMDA2NDQKKy0tLSBhL2xp Yi9TUElSVi9saWJTUElSVi9TUElSVk1vZHVsZS5jcHAKKysrKyBiL2xpYi9TUElSVi9saWJTUElS Vi9TUElSVk1vZHVsZS5jcHAKK0BAIC0yNjksOCArMjY5LDggQEAgY2xhc3MgU1BJUlZNb2R1bGVJ bXBsIDogcHVibGljIFNQSVJWTW9kdWxlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBj b25zdCBzdGQ6OnZlY3RvcjxTUElSVlZhbHVlICo+ICZFbGVtZW50cykgb3ZlcnJpZGU7CisgICBT UElSVkVudHJ5ICphZGRTcGVjQ29uc3RhbnRDb21wb3NpdGVDb250aW51ZWRJTlRFTCgKKyAgICAg ICBjb25zdCBzdGQ6OnZlY3RvcjxTUElSVlZhbHVlICo+ICYpIG92ZXJyaWRlOworLSAgU1BJUlZW YWx1ZSAqYWRkQ29uc3RGdW5jdGlvblBvaW50ZXJJTlRFTChTUElSVlR5cGUgKlR5LAorLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTUElSVkZ1bmN0aW9uICpGKSBv dmVycmlkZTsKKysgIFNQSVJWVmFsdWUgKmFkZENvbnN0YW50RnVuY3Rpb25Qb2ludGVySU5URUwo U1BJUlZUeXBlICpUeSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgU1BJUlZGdW5jdGlvbiAqRikgb3ZlcnJpZGU7CisgICBTUElSVlZhbHVlICphZGRDb25z dGFudChTUElSVlZhbHVlICopIG92ZXJyaWRlOworICAgU1BJUlZWYWx1ZSAqYWRkQ29uc3RhbnQo U1BJUlZUeXBlICosIHVpbnQ2NF90KSBvdmVycmlkZTsKKyAgIFNQSVJWVmFsdWUgKmFkZENvbnN0 YW50KFNQSVJWVHlwZSAqLCBsbHZtOjpBUEludCkgb3ZlcnJpZGU7CitAQCAtMTE0Miw5ICsxMTQy LDEwIEBAIFNQSVJWRW50cnkgKlNQSVJWTW9kdWxlSW1wbDo6YWRkU3BlY0NvbnN0YW50Q29tcG9z aXRlQ29udGludWVkSU5URUwoCisgICByZXR1cm4gYWRkKG5ldyBTUElSVlNwZWNDb25zdGFudENv bXBvc2l0ZUNvbnRpbnVlZElOVEVMKHRoaXMsIEVsZW1lbnRzKSk7CisgfQorIAorLVNQSVJWVmFs dWUgKlNQSVJWTW9kdWxlSW1wbDo6YWRkQ29uc3RGdW5jdGlvblBvaW50ZXJJTlRFTChTUElSVlR5 cGUgKlR5LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBTUElSVkZ1bmN0aW9uICpGKSB7CistICByZXR1cm4gYWRkQ29uc3RhbnQobmV3 IFNQSVJWQ29uc3RGdW5jdGlvblBvaW50ZXJJTlRFTChnZXRJZCgpLCBUeSwgRiwgdGhpcykpOwor K1NQSVJWVmFsdWUgKlNQSVJWTW9kdWxlSW1wbDo6YWRkQ29uc3RhbnRGdW5jdGlvblBvaW50ZXJJ TlRFTChTUElSVlR5cGUgKlR5LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBTUElSVkZ1bmN0aW9uICpGKSB7CisrICByZXR1cm4g YWRkQ29uc3RhbnQoCisrICAgICAgbmV3IFNQSVJWQ29uc3RhbnRGdW5jdGlvblBvaW50ZXJJTlRF TChnZXRJZCgpLCBUeSwgRiwgdGhpcykpOworIH0KKyAKKyBTUElSVlZhbHVlICpTUElSVk1vZHVs ZUltcGw6OmFkZFVuZGVmKFNQSVJWVHlwZSAqVGhlVHlwZSkgeworZGlmZiAtLWdpdCBhL2xpYi9T UElSVi9saWJTUElSVi9TUElSVk1vZHVsZS5oIGIvbGliL1NQSVJWL2xpYlNQSVJWL1NQSVJWTW9k dWxlLmgKK2luZGV4IDgzNzI5NTk0Yy4uMjc3YTE5ZmIwIDEwMDY0NAorLS0tIGEvbGliL1NQSVJW L2xpYlNQSVJWL1NQSVJWTW9kdWxlLmgKKysrKyBiL2xpYi9TUElSVi9saWJTUElSVi9TUElSVk1v ZHVsZS5oCitAQCAtMjYzLDggKzI2Myw4IEBAIGNsYXNzIFNQSVJWTW9kdWxlIHsKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICBjb25zdCBzdGQ6OnZlY3RvcjxTUElSVlZhbHVlICo+ICZFbGVt ZW50cykgPSAwOworICAgdmlydHVhbCBTUElSVkVudHJ5ICoKKyAgIGFkZFNwZWNDb25zdGFudENv bXBvc2l0ZUNvbnRpbnVlZElOVEVMKGNvbnN0IHN0ZDo6dmVjdG9yPFNQSVJWVmFsdWUgKj4gJikg PSAwOworLSAgdmlydHVhbCBTUElSVlZhbHVlICphZGRDb25zdEZ1bmN0aW9uUG9pbnRlcklOVEVM KFNQSVJWVHlwZSAqVHksCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgU1BJUlZGdW5jdGlvbiAqRikgPSAwOworKyAgdmlydHVhbCBTUElSVlZhbHVl ICphZGRDb25zdGFudEZ1bmN0aW9uUG9pbnRlcklOVEVMKFNQSVJWVHlwZSAqVHksCisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1BJUlZGdW5j dGlvbiAqRikgPSAwOworICAgdmlydHVhbCBTUElSVlZhbHVlICphZGRDb25zdGFudChTUElSVlZh bHVlICopID0gMDsKKyAgIHZpcnR1YWwgU1BJUlZWYWx1ZSAqYWRkQ29uc3RhbnQoU1BJUlZUeXBl ICosIHVpbnQ2NF90KSA9IDA7CisgICB2aXJ0dWFsIFNQSVJWVmFsdWUgKmFkZENvbnN0YW50KFNQ SVJWVHlwZSAqLCBsbHZtOjpBUEludCkgPSAwOworZGlmZiAtLWdpdCBhL2xpYi9TUElSVi9saWJT UElSVi9TUElSVk9wQ29kZS5oIGIvbGliL1NQSVJWL2xpYlNQSVJWL1NQSVJWT3BDb2RlLmgKK2lu ZGV4IDBiMjQxYmE3NS4uZmI5NDY3NDI4IDEwMDY0NAorLS0tIGEvbGliL1NQSVJWL2xpYlNQSVJW L1NQSVJWT3BDb2RlLmgKKysrKyBiL2xpYi9TUElSVi9saWJTUElSVi9TUElSVk9wQ29kZS5oCitA QCAtMjI2LDcgKzIyNiw3IEBAIGlubGluZSBib29sIGlzU3BlY0NvbnN0YW50T3BDb2RlKE9wIE9w Q29kZSkgeworIGlubGluZSBib29sIGlzQ29uc3RhbnRPcENvZGUoT3AgT3BDb2RlKSB7CisgICB1 bnNpZ25lZCBPQyA9IE9wQ29kZTsKKyAgIHJldHVybiAoT3BDb25zdGFudFRydWUgPD0gT0MgJiYg T0MgPD0gT3BTcGVjQ29uc3RhbnRPcCkgfHwgT0MgPT0gT3BVbmRlZiB8fAorLSAgICAgICAgIE9D ID09IE9wQ29uc3RhbnRQaXBlU3RvcmFnZSB8fCBPQyA9PSBPcENvbnN0RnVuY3Rpb25Qb2ludGVy SU5URUw7CisrICAgICAgICAgT0MgPT0gT3BDb25zdGFudFBpcGVTdG9yYWdlIHx8IE9DID09IE9w Q29uc3RhbnRGdW5jdGlvblBvaW50ZXJJTlRFTDsKKyB9CisgCisgaW5saW5lIGJvb2wgaXNNb2R1 bGVTY29wZUFsbG93ZWRPcENvZGUoT3AgT3BDb2RlKSB7CitkaWZmIC0tZ2l0IGEvbGliL1NQSVJW L2xpYlNQSVJWL1NQSVJWT3BDb2RlRW51bS5oIGIvbGliL1NQSVJWL2xpYlNQSVJWL1NQSVJWT3BD b2RlRW51bS5oCitpbmRleCAwYjgyNjdkYmMuLjc0ODI1N2I5ZSAxMDA2NDQKKy0tLSBhL2xpYi9T UElSVi9saWJTUElSVi9TUElSVk9wQ29kZUVudW0uaAorKysrIGIvbGliL1NQSVJWL2xpYlNQSVJW L1NQSVJWT3BDb2RlRW51bS5oCitAQCAtMzQ0LDcgKzM0NCw3IEBAIF9TUElSVl9PUChTdWJncm91 cEltYWdlQmxvY2tSZWFkSU5URUwsIDU1NzcpCisgX1NQSVJWX09QKFN1Ymdyb3VwSW1hZ2VCbG9j a1dyaXRlSU5URUwsIDU1NzgpCisgX1NQSVJWX09QKFN1Ymdyb3VwSW1hZ2VNZWRpYUJsb2NrUmVh ZElOVEVMLCA1NTgwKQorIF9TUElSVl9PUChTdWJncm91cEltYWdlTWVkaWFCbG9ja1dyaXRlSU5U RUwsIDU1ODEpCistX1NQSVJWX09QKENvbnN0RnVuY3Rpb25Qb2ludGVySU5URUwsIDU2MDApCisr X1NQSVJWX09QKENvbnN0YW50RnVuY3Rpb25Qb2ludGVySU5URUwsIDU2MDApCisgX1NQSVJWX09Q KEZ1bmN0aW9uUG9pbnRlckNhbGxJTlRFTCwgNTYwMSkKKyBfU1BJUlZfT1AoQXNtVGFyZ2V0SU5U RUwsIDU2MDkpCisgX1NQSVJWX09QKEFzbUlOVEVMLCA1NjEwKQorZGlmZiAtLWdpdCBhL3NwaXJ2 LWhlYWRlcnMtdGFnLmNvbmYgYi9zcGlydi1oZWFkZXJzLXRhZy5jb25mCitpbmRleCAxZWE2ZTZj NzcuLmJiOGQxYzRlYyAxMDA2NDQKKy0tLSBhL3NwaXJ2LWhlYWRlcnMtdGFnLmNvbmYKKysrKyBi L3NwaXJ2LWhlYWRlcnMtdGFnLmNvbmYKK0BAIC0xICsxIEBACistZGRmMzIzMGMxNGM3MWU4MWZj MGVhZTliNzgxY2M0YmNjMmQxZjBmNQorKzgxNGU3MjhiMzBkZGQwZjQ1MDkyMzMwOTlhM2FkOTZm ZDQzMThjMDcKK2RpZmYgLS1naXQgYS90ZXN0L2NvbnN0ZXhwcl92ZWN0b3IubGwgYi90ZXN0L2Nv bnN0ZXhwcl92ZWN0b3IubGwKK2luZGV4IDJhNWI0MjgzMi4uZWFjYTNmNDFlIDEwMDY0NAorLS0t IGEvdGVzdC9jb25zdGV4cHJfdmVjdG9yLmxsCisrKysgYi90ZXN0L2NvbnN0ZXhwcl92ZWN0b3Iu bGwKK0BAIC02MiwxMCArNjIsMTAgQEAKKyA7IENIRUNLLVNQSVJWLURBRzogNCBUeXBlUG9pbnRl ciBbW1N0b3JlUHRyOlswLTldK11dIDcgW1tUeXBlVmVjMTZdXQorIDsgQ0hFQ0stU1BJUlYtREFH OiAzIFVuZGVmIFtbVHlwZVZlYzE2XV0gW1tUeXBlVW5kZWZWMTY6WzAtOV0rXV0KKyA7IENIRUNL LVNQSVJWLURBRzogMyBVbmRlZiBbW1R5cGVWZWM2NF1dIFtbVHlwZVVuZGVmVjY0OlswLTldK11d CistOyBDSEVDSy1TUElSVi1EQUc6IDQgQ29uc3RGdW5jdGlvblBvaW50ZXJJTlRFTCBbW0Z1bmNQ dHJUeTpbMC05XStdXSBbW0YxUHRyOlswLTldK11dIFtbRjFdXQorLTsgQ0hFQ0stU1BJUlYtREFH OiA0IENvbnN0RnVuY3Rpb25Qb2ludGVySU5URUwgW1tGdW5jUHRyVHldXSBbW0YyUHRyOlswLTld K11dIFtbRjJdXQorLTsgQ0hFQ0stU1BJUlYtREFHOiA0IENvbnN0RnVuY3Rpb25Qb2ludGVySU5U RUwgW1tGdW5jUHRyVHldXSBbW0YxMVB0cjpbMC05XStdXSBbW0YxXV0KKy07IENIRUNLLVNQSVJW LURBRzogNCBDb25zdEZ1bmN0aW9uUG9pbnRlcklOVEVMIFtbRnVuY1B0clR5XV0gW1tGMjFQdHI6 WzAtOV0rXV0gW1tGMl1dCisrOyBDSEVDSy1TUElSVi1EQUc6IDQgQ29uc3RhbnRGdW5jdGlvblBv aW50ZXJJTlRFTCBbW0Z1bmNQdHJUeTpbMC05XStdXSBbW0YxUHRyOlswLTldK11dIFtbRjFdXQor KzsgQ0hFQ0stU1BJUlYtREFHOiA0IENvbnN0YW50RnVuY3Rpb25Qb2ludGVySU5URUwgW1tGdW5j UHRyVHldXSBbW0YyUHRyOlswLTldK11dIFtbRjJdXQorKzsgQ0hFQ0stU1BJUlYtREFHOiA0IENv bnN0YW50RnVuY3Rpb25Qb2ludGVySU5URUwgW1tGdW5jUHRyVHldXSBbW0YxMVB0cjpbMC05XStd XSBbW0YxXV0KKys7IENIRUNLLVNQSVJWLURBRzogNCBDb25zdGFudEZ1bmN0aW9uUG9pbnRlcklO VEVMIFtbRnVuY1B0clR5XV0gW1tGMjFQdHI6WzAtOV0rXV0gW1tGMl1dCisgCisgOyBDSEVDSy1T UElSVjogNCBDb252ZXJ0UHRyVG9VIFtbVHlwZUludDY0XV0gW1tQdHIxOlswLTldK11dIFtbRjFQ dHJdXQorIDsgQ0hFQ0stU1BJUlY6IDQgQml0Y2FzdCBbW1R5cGVWZWM4XV0gW1tWZWMxOlswLTld K11dIFtbUHRyMV1dCitkaWZmIC0tZ2l0IGEvdGVzdC90cmFuc2NvZGluZy9TUFZfSU5URUxfZnVu Y3Rpb25fcG9pbnRlcnMvYml0Y2FzdC5sbCBiL3Rlc3QvdHJhbnNjb2RpbmcvU1BWX0lOVEVMX2Z1 bmN0aW9uX3BvaW50ZXJzL2JpdGNhc3QubGwKK2luZGV4IGJmNjVmNmE3OC4uNzQ4MzMxYmU5IDEw MDY0NAorLS0tIGEvdGVzdC90cmFuc2NvZGluZy9TUFZfSU5URUxfZnVuY3Rpb25fcG9pbnRlcnMv Yml0Y2FzdC5sbAorKysrIGIvdGVzdC90cmFuc2NvZGluZy9TUFZfSU5URUxfZnVuY3Rpb25fcG9p bnRlcnMvYml0Y2FzdC5sbAorQEAgLTE4LDcgKzE4LDcgQEAKKyA7IENIRUNLLVNQSVJWOiBUeXBl RnVuY3Rpb24gW1sjREVTVF9UWTpdXSBbWyNdXSBbWyNdXQorIDsgQ0hFQ0stU1BJUlY6IFR5cGVQ b2ludGVyIFtbI0RFU1RfVFlfUFRSOl1dIFtbI11dIFtbI0RFU1RfVFldXQorIDsgQ0hFQ0stU1BJ UlY6IFR5cGVQb2ludGVyIFtbI0ZPT19UWV9QVFI6XV0gW1sjXV0gW1sjRk9PX1RZXV0KKy07IENI RUNLLVNQSVJWOiBDb25zdEZ1bmN0aW9uUG9pbnRlcklOVEVMIFtbI0ZPT19UWV9QVFJdXSBbWyNG T09fUFRSOl1dIFtbI0ZPTzpdXQorKzsgQ0hFQ0stU1BJUlY6IENvbnN0YW50RnVuY3Rpb25Qb2lu dGVySU5URUwgW1sjRk9PX1RZX1BUUl1dIFtbI0ZPT19QVFI6XV0gW1sjRk9POl1dCisgOyBDSEVD Sy1TUElSVjogRnVuY3Rpb24gW1sjXV0gW1sjRk9PXV0gW1sjXV0gW1sjRk9PX1RZXV0KKyAKKyA7 IENIRUNLLVNQSVJWOiBCaXRjYXN0IFtbI0RFU1RfVFlfUFRSXV0gW1sjXV0gW1sjRk9PX1BUUl1d CitkaWZmIC0tZ2l0IGEvdGVzdC90cmFuc2NvZGluZy9TUFZfSU5URUxfZnVuY3Rpb25fcG9pbnRl cnMvY29uc3QtZnVuY3Rpb24tcG9pbnRlci5sbCBiL3Rlc3QvdHJhbnNjb2RpbmcvU1BWX0lOVEVM X2Z1bmN0aW9uX3BvaW50ZXJzL2NvbnN0LWZ1bmN0aW9uLXBvaW50ZXIubGwKK2luZGV4IGRmMjYz MDQ4YS4uMzg5OGFkNWI5IDEwMDY0NAorLS0tIGEvdGVzdC90cmFuc2NvZGluZy9TUFZfSU5URUxf ZnVuY3Rpb25fcG9pbnRlcnMvY29uc3QtZnVuY3Rpb24tcG9pbnRlci5sbAorKysrIGIvdGVzdC90 cmFuc2NvZGluZy9TUFZfSU5URUxfZnVuY3Rpb25fcG9pbnRlcnMvY29uc3QtZnVuY3Rpb24tcG9p bnRlci5sbAorQEAgLTE0LDggKzE0LDggQEAKKyA7IENIRUNLLVNQSVJWLURBRzogQ29uc3RhbnQg W1tJbnQzMl1dIFtbWEFyZzpbMC05XStdXSAzMgorIDsgQ0hFQ0stU1BJUlYtREFHOiBDb25zdGFu dCBbW0ludDMyXV0gW1tZQXJnOlswLTldK11dIDIKKyAKKy07IENIRUNLLVNQSVJWOiBDb25zdEZ1 bmN0aW9uUG9pbnRlcklOVEVMIHt7WzAtOV0rfX0gW1tGMTpbMC05XStdXSBbW0YxTmFtZV1dCist OyBDSEVDSy1TUElSVjogQ29uc3RGdW5jdGlvblBvaW50ZXJJTlRFTCB7e1swLTldK319IFtbRjI6 WzAtOV0rXV0gW1tGMk5hbWVdXQorKzsgQ0hFQ0stU1BJUlY6IENvbnN0YW50RnVuY3Rpb25Qb2lu dGVySU5URUwge3tbMC05XSt9fSBbW0YxOlswLTldK11dIFtbRjFOYW1lXV0KKys7IENIRUNLLVNQ SVJWOiBDb25zdGFudEZ1bmN0aW9uUG9pbnRlcklOVEVMIHt7WzAtOV0rfX0gW1tGMjpbMC05XStd XSBbW0YyTmFtZV1dCisgOyBDSEVDSy1TUElSVjogQ29uc3RhbnRDb21wb3NpdGUge3tbMC05XSt9 fSBbW0NvbnN0Q29tcDpbMC05XStdXSBbW0YxXV0gW1tGMl1dCisgOyBDSEVDSy1TUElSVjogVmFy aWFibGUge3tbMC05XSt9fSBbW1ZhcjpbMC05XStdXSB7e1swLTldK319IFtbQ29uc3RDb21wXV0K KyAKK2RpZmYgLS1naXQgYS90ZXN0L3RyYW5zY29kaW5nL1NQVl9JTlRFTF9mdW5jdGlvbl9wb2lu dGVycy9mdW5jdGlvbi1wb2ludGVyLmxsIGIvdGVzdC90cmFuc2NvZGluZy9TUFZfSU5URUxfZnVu Y3Rpb25fcG9pbnRlcnMvZnVuY3Rpb24tcG9pbnRlci5sbAoraW5kZXggZGVlYjhiNWZhLi44NGE5 NzI1NWYgMTAwNjQ0CistLS0gYS90ZXN0L3RyYW5zY29kaW5nL1NQVl9JTlRFTF9mdW5jdGlvbl9w b2ludGVycy9mdW5jdGlvbi1wb2ludGVyLmxsCisrKysgYi90ZXN0L3RyYW5zY29kaW5nL1NQVl9J TlRFTF9mdW5jdGlvbl9wb2ludGVycy9mdW5jdGlvbi1wb2ludGVyLmxsCitAQCAtMjQsNyArMjQs NyBAQAorIDsgQ0hFQ0stU1BJUlY6IFR5cGVGdW5jdGlvbiBbW0ZPT19UWVBFX0lEOlswLTldK11d IFtbVFlQRV9JTlRfSURdXSBbW1RZUEVfSU5UX0lEXV0KKyA7IENIRUNLLVNQSVJWOiBUeXBlUG9p bnRlciBbW0ZPT19QVFJfSUQ6WzAtOV0rXV0ge3tbMC05XSt9fSBbW0ZPT19UWVBFX0lEXV0KKyA7 IENIRUNLLVNQSVJWOiBUeXBlUG9pbnRlciBbW0ZPT19QVFJfQUxMT0NBX0lEOlswLTldK11dIDcg W1tGT09fUFRSX0lEXV0KKy07IENIRUNLLVNQSVJWOiBDb25zdEZ1bmN0aW9uUG9pbnRlcklOVEVM IFtbRk9PX1BUUl9JRF1dIFtbRk9PX1BUUjpbMC05XStdXSBbW0ZPT19JRDpbMC05XStdXQorKzsg Q0hFQ0stU1BJUlY6IENvbnN0YW50RnVuY3Rpb25Qb2ludGVySU5URUwgW1tGT09fUFRSX0lEXV0g W1tGT09fUFRSOlswLTldK11dIFtbRk9PX0lEOlswLTldK11dCisgOworIDsgQ0hFQ0stU1BJUlY6 IEZ1bmN0aW9uIHt7WzAtOV0rfX0gW1tGT09fSURdXSB7e1swLTldK319IFtbRk9PX1RZUEVfSURd XQorIDsgQ0hFQ0stU1BJUlY6IEZ1bmN0aW9uIHt7WzAtOV0rfX0gW1tLRVJORUxfSURdXQorZGlm ZiAtLWdpdCBhL3Rlc3QvdHJhbnNjb2RpbmcvU1BWX0lOVEVMX2Z1bmN0aW9uX3BvaW50ZXJzL2ds b2JhbF9jdG9yX2R0b3IubGwgYi90ZXN0L3RyYW5zY29kaW5nL1NQVl9JTlRFTF9mdW5jdGlvbl9w b2ludGVycy9nbG9iYWxfY3Rvcl9kdG9yLmxsCitpbmRleCA2ZDViN2UyZGQuLjhlODUzZmE2ZiAx MDA2NDQKKy0tLSBhL3Rlc3QvdHJhbnNjb2RpbmcvU1BWX0lOVEVMX2Z1bmN0aW9uX3BvaW50ZXJz L2dsb2JhbF9jdG9yX2R0b3IubGwKKysrKyBiL3Rlc3QvdHJhbnNjb2RpbmcvU1BWX0lOVEVMX2Z1 bmN0aW9uX3BvaW50ZXJzL2dsb2JhbF9jdG9yX2R0b3IubGwKK0BAIC0yMiw5ICsyMiw5IEBAIHRh cmdldCB0cmlwbGUgPSAic3BpcjY0LXVua25vd24tdW5rbm93biIKKyA7IENIRUNLOiBUeXBlRnVu Y3Rpb24ge3tbMC05XSt9fSBbW1RGOlswLTldK11dCisgCisgOyBDSEVDSzogVHlwZVBvaW50ZXIg W1tUUDpbMC05XStdXQorLTsgQ0hFQ0s6IENvbnN0RnVuY3Rpb25Qb2ludGVySU5URUwgW1tUUF1d IFtbRlBDdG9yOlswLTldK11dIFtbTmFtZUN0b3JdXQorKzsgQ0hFQ0s6IENvbnN0YW50RnVuY3Rp b25Qb2ludGVySU5URUwgW1tUUF1dIFtbRlBDdG9yOlswLTldK11dIFtbTmFtZUN0b3JdXQorIDsg Q0hFQ0s6IENvbnN0YW50Q29tcG9zaXRlIHt7WzAtOV0rfX0ge3tbMC05XSt9fSB7e1swLTldK319 IFtbRlBDdG9yXV0KKy07IENIRUNLOiBDb25zdEZ1bmN0aW9uUG9pbnRlcklOVEVMIFtbVFBdXSBb W0ZQRHRvcjpbMC05XStdXSBbW05hbWVEdG9yXV0KKys7IENIRUNLOiBDb25zdGFudEZ1bmN0aW9u UG9pbnRlcklOVEVMIFtbVFBdXSBbW0ZQRHRvcjpbMC05XStdXSBbW05hbWVEdG9yXV0KKyA7IENI RUNLOiBDb25zdGFudENvbXBvc2l0ZSB7e1swLTldK319IHt7WzAtOV0rfX0ge3tbMC05XSt9fSBb W0ZQRHRvcl1dCisgCisgOyBDSEVDSzogNSBGdW5jdGlvbiBbW1RGXV0gW1tOYW1lQ3Rvcl1dIDAK K2RpZmYgLS1naXQgYS90ZXN0L3RyYW5zY29kaW5nL1NQVl9JTlRFTF9mdW5jdGlvbl9wb2ludGVy cy9ub24tdW5pZm9ybS1mdW5jdGlvbi1wb2ludGVyLmxsIGIvdGVzdC90cmFuc2NvZGluZy9TUFZf SU5URUxfZnVuY3Rpb25fcG9pbnRlcnMvbm9uLXVuaWZvcm0tZnVuY3Rpb24tcG9pbnRlci5sbAor aW5kZXggOTZkMGQ5NjFjLi5mZDdhZmMwZGQgMTAwNjQ0CistLS0gYS90ZXN0L3RyYW5zY29kaW5n L1NQVl9JTlRFTF9mdW5jdGlvbl9wb2ludGVycy9ub24tdW5pZm9ybS1mdW5jdGlvbi1wb2ludGVy LmxsCisrKysgYi90ZXN0L3RyYW5zY29kaW5nL1NQVl9JTlRFTF9mdW5jdGlvbl9wb2ludGVycy9u b24tdW5pZm9ybS1mdW5jdGlvbi1wb2ludGVyLmxsCitAQCAtMzQsOCArMzQsOCBAQAorIDsgQ0hF Q0stU1BJUlY6IFR5cGVGdW5jdGlvbiBbW0ZPT19UWVBFX0lEOlswLTldK11dIFtbVFlQRV9JTlQz Ml9JRF1dIFtbVFlQRV9JTlQzMl9JRF1dCisgOyBDSEVDSy1TUElSVjogVHlwZVBvaW50ZXIgW1tG T09fUFRSX1RZUEVfSUQ6WzAtOV0rXV0ge3tbMC05XSt9fSBbW0ZPT19UWVBFX0lEXV0KKyA7IENI RUNLLVNQSVJWOiBUeXBlUG9pbnRlciBbW0ZPT19QVFJfQUxMT0NBX1RZUEVfSUQ6WzAtOV0rXV0g NyBbW0ZPT19QVFJfVFlQRV9JRF1dCistOyBDSEVDSy1TUElSVjogQ29uc3RGdW5jdGlvblBvaW50 ZXJJTlRFTCBbW0ZPT19QVFJfVFlQRV9JRF1dIFtbRk9PX1BUUl9JRDpbMC05XStdXSBbW0ZPT19J RDpbMC05XStdXQorLTsgQ0hFQ0stU1BJUlY6IENvbnN0RnVuY3Rpb25Qb2ludGVySU5URUwgW1tG T09fUFRSX1RZUEVfSURdXSBbW0JBUl9QVFJfSUQ6WzAtOV0rXV0gW1tCQVJfSUQ6WzAtOV0rXV0K Kys7IENIRUNLLVNQSVJWOiBDb25zdGFudEZ1bmN0aW9uUG9pbnRlcklOVEVMIFtbRk9PX1BUUl9U WVBFX0lEXV0gW1tGT09fUFRSX0lEOlswLTldK11dIFtbRk9PX0lEOlswLTldK11dCisrOyBDSEVD Sy1TUElSVjogQ29uc3RhbnRGdW5jdGlvblBvaW50ZXJJTlRFTCBbW0ZPT19QVFJfVFlQRV9JRF1d IFtbQkFSX1BUUl9JRDpbMC05XStdXSBbW0JBUl9JRDpbMC05XStdXQorIDsKKyA7IENIRUNLLVNQ SVJWOiBGdW5jdGlvbiB7e1swLTldK319IFtbRk9PX0lEXV0ge3tbMC05XSt9fSBbW0ZPT19UWVBF X0lEXV0KKyA7IENIRUNLLVNQSVJWOiBGdW5jdGlvbiB7e1swLTldK319IFtbQkFSX0lEXV0ge3tb MC05XSt9fSBbW0ZPT19UWVBFX0lEXV0KK2RpZmYgLS1naXQgYS90ZXN0L3RyYW5zY29kaW5nL1NQ Vl9JTlRFTF9mdW5jdGlvbl9wb2ludGVycy9zZWxlY3QubGwgYi90ZXN0L3RyYW5zY29kaW5nL1NQ Vl9JTlRFTF9mdW5jdGlvbl9wb2ludGVycy9zZWxlY3QubGwKK2luZGV4IDU5OTA0ZjFmMi4uMjM3 NWFhM2Q4IDEwMDY0NAorLS0tIGEvdGVzdC90cmFuc2NvZGluZy9TUFZfSU5URUxfZnVuY3Rpb25f cG9pbnRlcnMvc2VsZWN0LmxsCisrKysgYi90ZXN0L3RyYW5zY29kaW5nL1NQVl9JTlRFTF9mdW5j dGlvbl9wb2ludGVycy9zZWxlY3QubGwKK0BAIC0xMyw4ICsxMyw4IEBACisgOyBDSEVDSy1TUElS VjogVHlwZUZ1bmN0aW9uIFtbI0ZVTkNfVFlQRTpdXSBbWyNJTlQzMl1dIFtbI0lOVDMyXV0KKyA7 IENIRUNLLVNQSVJWOiBUeXBlUG9pbnRlciBbWyNGVU5DX1BUUl9UWVBFOl1dIFtbI11dIFtbI0ZV TkNfVFlQRV1dCisgOyBDSEVDSy1TUElSVjogVHlwZVBvaW50ZXIgW1sjRlVOQ19QVFJfQUxMT0NB X1RZUEU6XV0gW1sjXV0gW1sjRlVOQ19QVFJfVFlQRV1dCistOyBDSEVDSy1TUElSVi1EQUc6IENv bnN0RnVuY3Rpb25Qb2ludGVySU5URUwgW1sjRlVOQ19QVFJfVFlQRV1dIFtbI0JBUlBUUjpdXSBb WyNCQVJdXQorLTsgQ0hFQ0stU1BJUlYtREFHOiBDb25zdEZ1bmN0aW9uUG9pbnRlcklOVEVMIFtb I0ZVTkNfUFRSX1RZUEVdXSBbWyNCQVpQVFI6XV0gW1sjQkFaXV0KKys7IENIRUNLLVNQSVJWLURB RzogQ29uc3RhbnRGdW5jdGlvblBvaW50ZXJJTlRFTCBbWyNGVU5DX1BUUl9UWVBFXV0gW1sjQkFS UFRSOl1dIFtbI0JBUl1dCisrOyBDSEVDSy1TUElSVi1EQUc6IENvbnN0YW50RnVuY3Rpb25Qb2lu dGVySU5URUwgW1sjRlVOQ19QVFJfVFlQRV1dIFtbI0JBWlBUUjpdXSBbWyNCQVpdXQorIDsgQ0hF Q0stU1BJUlY6IEZ1bmN0aW9uIFtbI11dIFtbI0tFUk5FTF9JRF1dCisgOyBDSEVDSy1TUElSVjog VmFyaWFibGUgW1sjRlVOQ19QVFJfQUxMT0NBX1RZUEVdXSBbWyNGUFRSOl1dCisgOyBDSEVDSy1T UElSVjogU2VsZWN0IFtbI0ZVTkNfUFRSX1RZUEVdXSBbWyNTRUxFQ1Q6XV0gW1sjXV0gW1sjQkFS UFRSXV0gW1sjQkFaUFRSXV0KK2RpZmYgLS1naXQgYS90ZXN0L3RyYW5zY29kaW5nL1NQVl9JTlRF TF9mdW5jdGlvbl9wb2ludGVycy92ZWN0b3JfZWxlbS5sbCBiL3Rlc3QvdHJhbnNjb2RpbmcvU1BW X0lOVEVMX2Z1bmN0aW9uX3BvaW50ZXJzL3ZlY3Rvcl9lbGVtLmxsCitpbmRleCBkOTgyYTA5N2Iu LmFiODMyZjlkNSAxMDA2NDQKKy0tLSBhL3Rlc3QvdHJhbnNjb2RpbmcvU1BWX0lOVEVMX2Z1bmN0 aW9uX3BvaW50ZXJzL3ZlY3Rvcl9lbGVtLmxsCisrKysgYi90ZXN0L3RyYW5zY29kaW5nL1NQVl9J TlRFTF9mdW5jdGlvbl9wb2ludGVycy92ZWN0b3JfZWxlbS5sbAorQEAgLTksOCArOSw4IEBACisg OyBDSEVDSy1TUElSVjogNCBUeXBlUG9pbnRlciBbW1R5cGVQdHI6WzAtOV0rXV0ge3tbMC05XSt9 fSBbW1R5cGVGdW5jXV0KKyA7IENIRUNLLVNQSVJWOiA0IFR5cGVWZWN0b3IgW1tUeXBlVmVjOlsw LTldK11dIFtbVHlwZVB0cl1dIFtbVHlwZUludDMyXV0KKyA7IENIRUNLLVNQSVJWLURBRzogMyBV bmRlZiBbW1R5cGVWZWNdXSBbW1R5cGVVbmRlZjpbMC05XStdXQorLTsgQ0hFQ0stU1BJUlYtREFH OiA0IENvbnN0RnVuY3Rpb25Qb2ludGVySU5URUwgW1tUeXBlUHRyXV0gW1tGMVB0cjpbMC05XStd XSBbW0YxXV0KKy07IENIRUNLLVNQSVJWLURBRzogNCBDb25zdEZ1bmN0aW9uUG9pbnRlcklOVEVM IFtbVHlwZVB0cl1dIFtbRjJQdHI6WzAtOV0rXV0gW1tGMl1dCisrOyBDSEVDSy1TUElSVi1EQUc6 IDQgQ29uc3RhbnRGdW5jdGlvblBvaW50ZXJJTlRFTCBbW1R5cGVQdHJdXSBbW0YxUHRyOlswLTld K11dIFtbRjFdXQorKzsgQ0hFQ0stU1BJUlYtREFHOiA0IENvbnN0YW50RnVuY3Rpb25Qb2ludGVy SU5URUwgW1tUeXBlUHRyXV0gW1tGMlB0cjpbMC05XStdXSBbW0YyXV0KKyAKKyA7IENIRUNLLVNQ SVJWOiA2IENvbXBvc2l0ZUluc2VydCBbW1R5cGVWZWNdXSBbW05ld1ZlYzA6WzAtOV0rXV0gW1tG MVB0cl1dIFtbVHlwZVVuZGVmXV0gMAorIDsgQ0hFQ0stU1BJUlY6IDYgQ29tcG9zaXRlSW5zZXJ0 IFtbVHlwZVZlY11dIFtbTmV3VmVjMTpbMC05XStdXSBbW0YyUHRyXV0gW1tOZXdWZWMwXV0gMQpk aWZmIC0tZ2l0IGEvc3JjcGtncy9TUElSVi1MTFZNLVRyYW5zbGF0b3IvdGVtcGxhdGUgYi9zcmNw a2dzL1NQSVJWLUxMVk0tVHJhbnNsYXRvci90ZW1wbGF0ZQppbmRleCAyNTA0Y2FiZWQzNjcuLjEz ZDdmMTI3MDA4YSAxMDA2NDQKLS0tIGEvc3JjcGtncy9TUElSVi1MTFZNLVRyYW5zbGF0b3IvdGVt cGxhdGUKKysrIGIvc3JjcGtncy9TUElSVi1MTFZNLVRyYW5zbGF0b3IvdGVtcGxhdGUKQEAgLTEs MTkgKzEsMjAgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ1NQSVJWLUxMVk0tVHJhbnNsYXRvcicK IHBrZ25hbWU9U1BJUlYtTExWTS1UcmFuc2xhdG9yCi12ZXJzaW9uPTEyLjAuMAordmVyc2lvbj0x My4wLjAKIHJldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPWNtYWtlCiBtYWtlX2J1aWxkX2FyZ3M9Imxs dm0tc3BpcnYiCi1jb25maWd1cmVfYXJncz0iLVduby1kZXYgLURMTFZNX0xJTktfTExWTV9EWUxJ Qj1PTiAtRENNQUtFX1NLSVBfUlBBVEg9T04KLSAtRExMVk1fU1BJUlZfSU5DTFVERV9URVNUUz1P RkYgLURCVUlMRF9TSEFSRURfTElCUz1PTiIKK2NvbmZpZ3VyZV9hcmdzPSItREJVSUxEX1NIQVJF RF9MSUJTPU9OIC1EQ01BS0VfQlVJTERfVFlQRT1SZWxlYXNlCisgLURDTUFLRV9QT1NJVElPTl9J TkRFUEVOREVOVF9DT0RFPU9OIC1EQ01BS0VfU0tJUF9SUEFUSD1PTiAtRExMVk1fSU5DTFVERV9U RVNUUz1PRkYgCisgLURMTFZNX0xJTktfTExWTV9EWUxJQj1PTiAtRExMVk1fRVhURVJOQUxfTElU PS91c3IvYmluL2xpdCAtV25vLWRldiAtRExMVk1fRVhURVJOQUxfU1BJUlZfSEVBREVSU19TT1VS Q0VfRElSPS91c3IvaW5jbHVkZS9zcGlydi8gIgogaG9zdG1ha2VkZXBlbmRzPSJjbGFuZyBjbGFu Zy10b29scy1leHRyYSBsbHZtIgotbWFrZWRlcGVuZHM9Imxsdm0iCittYWtlZGVwZW5kcz0ibGx2 bSBTUElSVi1IZWFkZXJzIgogc2hvcnRfZGVzYz0iQVBJIGFuZCBjb21tYW5kcyBmb3IgcHJvY2Vz c2luZyBTUElSLVYgbW9kdWxlcyIKIG1haW50YWluZXI9Ik9ycGhhbmVkIDxvcnBoYW5Adm9pZGxp bnV4Lm9yZz4iCiBsaWNlbnNlPSJOQ1NBIgogaG9tZXBhZ2U9Imh0dHBzOi8vZ2l0aHViLmNvbS9L aHJvbm9zR3JvdXAvU1BJUlYtTExWTS1UcmFuc2xhdG9yIgogZGlzdGZpbGVzPSJodHRwczovL2dp dGh1Yi5jb20vS2hyb25vc0dyb3VwLyR7cGtnbmFtZX0vYXJjaGl2ZS9yZWZzL3RhZ3MvdiR7dmVy c2lvbn0udGFyLmd6IgotY2hlY2tzdW09NmU0ZmFkMDQyMDNmMjVmY2RlNGMzMDhjNTNlOWY1OWJk MDVhMzkwOTc4OTkyZGIzMjEyZDRiNjNhZmY2MjEwOAorY2hlY2tzdW09YjQxNmMwNjUyNWM4NzI0 YmU2MjgzMjc1NjU5NTZjNDE4NzU1ZmJiNDcxYjRmZTIzZDA0MGNhNTZlMWE3OTA2MQogbWFrZV9j aGVjaz1ubwogCiBwb3N0X2luc3RhbGwoKSB7Cg== --===============3304904132392411013==--