From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=ALL_TRUSTED,PDS_OTHER_BAD_TLD, T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.4 Received: (qmail 10969 invoked from network); 15 Feb 2022 22:02:07 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 15 Feb 2022 22:02:07 -0000 Content-Type: multipart/mixed; boundary="===============5050088475194109506==" MIME-Version: 1.0 Subject: =?utf8?q?Re=3A_=5BPR_PATCH=5D_=5BUpdated=5D_Update_libgdal_and_proj_and_rebuild_against_them?= To: ml@inbox.vuxu.org From: ar-jan Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Tue, 15 Feb 2022 23:02:07 +0100 List-Id: Message-ID: <20220215220207.cV1Q6lee0rGaJ8r5XFaF-2gcR5_eFtNng1JJydRNdXc@z> GitHub notification mails are now in MIME to allow UTF8. --===============5050088475194109506== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgYXItamFuIGFnYWluc3QgbWFzdGVy IG9uIHRoZSB2b2lkLXBhY2thZ2VzIHJlcG9zaXRvcnkKCmh0dHBzOi8vZ2l0aHViLmNvbS9hci1q YW4vdm9pZC1wYWNrYWdlcyBnZGFsLXByb2oKaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgv dm9pZC1wYWNrYWdlcy9wdWxsLzMxNjg3CgpVcGRhdGUgbGliZ2RhbCBhbmQgcHJvaiBhbmQgcmVi dWlsZCBhZ2FpbnN0IHRoZW0KPCEtLSBNYXJrIGl0ZW1zIHdpdGggW3hdIHdoZXJlIGFwcGxpY2Fi bGUgLS0+DQoNCiMjIyMgR2VuZXJhbA0KLSBbIF0gVGhpcyBpcyBhIG5ldyBwYWNrYWdlIGFuZCBp dCBjb25mb3JtcyB0byB0aGUgW3F1YWxpdHkgcmVxdWlyZW1lbnRzXShodHRwczovL2dpdGh1Yi5j b20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL2Jsb2IvbWFzdGVyL01hbnVhbC5tZCNxdWFsaXR5 LXJlcXVpcmVtZW50cykNCg0KIyMjIyBIYXZlIHRoZSByZXN1bHRzIG9mIHRoZSBwcm9wb3NlZCBj aGFuZ2VzIGJlZW4gdGVzdGVkPw0KLSBbIF0gSSB1c2UgdGhlIHBhY2thZ2VzIGFmZmVjdGVkIGJ5 IHRoZSBwcm9wb3NlZCBjaGFuZ2VzIG9uIGEgcmVndWxhciBiYXNpcyBhbmQgY29uZmlybSB0aGlz IFBSIHdvcmtzIGZvciBtZQ0KLSBbIF0gSSBnZW5lcmFsbHkgZG9uJ3QgdXNlIHRoZSBhZmZlY3Rl ZCBwYWNrYWdlcyBidXQgYnJpZWZseSB0ZXN0ZWQgdGhpcyBQUg0KDQo8IS0tDQpJZiBHaXRIdWIg Q0kgY2Fubm90IGJlIHVzZWQgdG8gdmFsaWRhdGUgdGhlIGJ1aWxkIHJlc3VsdCAoZm9yIGV4YW1w bGUsIGlmIHRoZQ0KYnVpbGQgaXMgbGlrZWx5IHRvIHRha2Ugc2V2ZXJhbCBob3VycyksIG1ha2Ug c3VyZSB0bw0KW3NraXAgQ0ldKGh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFj a2FnZXMvYmxvYi9tYXN0ZXIvQ09OVFJJQlVUSU5HLm1kI2NvbnRpbnVvdXMtaW50ZWdyYXRpb24p Lg0KV2hlbiBza2lwcGluZyBDSSwgdW5jb21tZW50IGFuZCBmaWxsIG91dCB0aGUgZm9sbG93aW5n IHNlY3Rpb24uDQpOb3RlOiBmb3IgYnVpbGRzIHRoYXQgYXJlIGxpa2VseSB0byBjb21wbGV0ZSBp biBsZXNzIHRoYW4gMiBob3VycywgaXQgaXMgbm90DQphY2NlcHRhYmxlIHRvIHNraXAgQ0kuDQot LT4NCjwhLS0gDQojIyMjIERvZXMgaXQgYnVpbGQgYW5kIHJ1biBzdWNjZXNzZnVsbHk/IA0KKFBs ZWFzZSBjaG9vc2UgYXQgbGVhc3Qgb25lIG5hdGl2ZSBidWlsZCBhbmQsIGlmIHN1cHBvcnRlZCwg YXQgbGVhc3Qgb25lIGNyb3NzIGJ1aWxkLiBNb3JlIGFyZSBiZXR0ZXIuKQ0KLSBbIF0gSSBidWls dCB0aGlzIFBSIGxvY2FsbHkgZm9yIG15IG5hdGl2ZSBhcmNoaXRlY3R1cmUsIChBUkNILUxJQkMp DQotIFsgXSBJIGJ1aWx0IHRoaXMgUFIgbG9jYWxseSBmb3IgdGhlc2UgYXJjaGl0ZWN0dXJlcyAo aWYgc3VwcG9ydGVkLiBtYXJrIGNyb3NzYnVpbGRzKToNCiAgLSBbIF0gYWFyY2g2NC1tdXNsDQog IC0gWyBdIGFybXY3bA0KICAtIFsgXSBhcm12NmwtbXVzbA0KLS0+DQoKCkEgcGF0Y2ggZmlsZSBm cm9tIGh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvcHVsbC8zMTY4 Ny5wYXRjaCBpcyBhdHRhY2hlZA== --===============5050088475194109506== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-gdal-proj-31687.patch" RnJvbSBjYmJjYzVkZGIwNDY2YzNkODIzNDk0MjEwMzU4ZTZiMDM4M2E1MTU1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBcmphbiBNb3NzZWwgPGFyamFubW9zc2VsQGdtYWlsLmNvbT4K RGF0ZTogU3VuLCAxMyBGZWIgMjAyMiAyMzoxODo0MyArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMDEv MTddIHByb2o6IHVwZGF0ZSB0byA3LjIuMS4KCi0tLQogY29tbW9uL3NobGlicyAgICAgICAgIHwg IDIgKy0KIHNyY3BrZ3MvcHJvai90ZW1wbGF0ZSB8IDEzICsrKysrKystLS0tLS0KIDIgZmlsZXMg Y2hhbmdlZCwgOCBpbnNlcnRpb25zKCspLCA3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2Nv bW1vbi9zaGxpYnMgYi9jb21tb24vc2hsaWJzCmluZGV4IDBjNjAyNjBiNDY0Mi4uYjBmY2ZkMDQ5 MjZlIDEwMDY0NAotLS0gYS9jb21tb24vc2hsaWJzCisrKyBiL2NvbW1vbi9zaGxpYnMKQEAgLTMw NjksNyArMzA2OSw3IEBAIGxpYndpdGhzY3RwLnNvLjEgbGtzY3RwLXRvb2xzLTEuMC4xN18xCiBs aWJuc3NfbGRhcC5zby4yIG5zcy1wYW0tbGRhcGQtMC45LjdfNAogbGlidW5zaGllbGQuc28uMCBs aWJ1bnNoaWVsZC0wLjZfMQogbGliTXlHVUlFbmdpbmUuc28uMy40LjEgbGlibXlndWktMy40LjFf MQotbGlicHJvai5zby4xOCBwcm9qLTYuMy4wXzEKK2xpYnByb2ouc28uMTkgcHJvai03LjIuMV8x CiBsaWJubG9wdC5zby4wIG5sb3B0LTIuNC4yXzEKIGxpYmViLnNvLjE2IGxpYmViLTQuMy4zXzEK IGxpYmNoaXBjYXJkLnNvLjYgbGliY2hpcGNhcmQtNS4wLjRfMQpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9wcm9qL3RlbXBsYXRlIGIvc3JjcGtncy9wcm9qL3RlbXBsYXRlCmluZGV4IDUxYzQ2MzgyMzRi ZC4uZTNmYmQ0MzkwM2M3IDEwMDY0NAotLS0gYS9zcmNwa2dzL3Byb2ovdGVtcGxhdGUKKysrIGIv c3JjcGtncy9wcm9qL3RlbXBsYXRlCkBAIC0xLDE3ICsxLDE5IEBACiAjIFRlbXBsYXRlIGZpbGUg Zm9yICdwcm9qJwogcGtnbmFtZT1wcm9qCi12ZXJzaW9uPTYuMy4yCit2ZXJzaW9uPTcuMi4xCiBy ZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1jbWFrZQotY29uZmlndXJlX2FyZ3M9Ii1EUFJPSl9URVNU Uz1PRkYiCitjb25maWd1cmVfYXJncz0iLURCVUlMRF9URVNUSU5HPU9GRiIKIGhvc3RtYWtlZGVw ZW5kcz0icHl0aG9uMyIKLW1ha2VkZXBlbmRzPSJzcWxpdGUtZGV2ZWwiCittYWtlZGVwZW5kcz0i bGliY3VybC1kZXZlbAorIHNxbGl0ZS1kZXZlbAorIHRpZmYtZGV2ZWwiCiBzaG9ydF9kZXNjPSJD YXJ0b2dyYXBoaWMgUHJvamVjdGlvbnMgTGlicmFyeSIKIG1haW50YWluZXI9IkpvaG4gPG1lQGpv aG5ueW5hdG9yLmRldj4iCiBsaWNlbnNlPSJNSVQiCi1ob21lcGFnZT0iaHR0cHM6Ly9wcm9qNC5v cmciCitob21lcGFnZT0iaHR0cHM6Ly9wcm9qLm9yZyIKIGRpc3RmaWxlcz0iaHR0cHM6Ly9kb3du bG9hZC5vc2dlby5vcmcvcHJvai9wcm9qLSR7dmVyc2lvbn0udGFyLmd6IgotY2hlY2tzdW09Y2I3 NzZhNzBmNDBjMzU1NzlhZTRiYTA0ZmI0YTM4OGMxZDFjZTAyNWExZGY2MTcxMzUwZGMxOWYyNWI4 MDMxMQorY2hlY2tzdW09YjM4NGY0MmU1ZmI5YzZkMDFmZTVmYTRkMzFkYTJlOTEzMjk2Njg4NjNh Njg0Zjk3YmU1ZDQ3NjBkYmJmMGExNAogCiBwb3N0X2luc3RhbGwoKSB7CiAJdmxpY2Vuc2UgQ09Q WUlORwpAQCAtMjIsNyArMjQsNiBAQCBwcm9qLWRldmVsX3BhY2thZ2UoKSB7CiAJc2hvcnRfZGVz Yys9IiAtIGRldmVsb3BtZW50IGZpbGVzIgogCXBrZ19pbnN0YWxsKCkgewogCQl2bW92ZSB1c3Iv aW5jbHVkZQotCQl2bW92ZSB1c3Ivc2hhcmUvbWFuL21hbjMKIAkJdm1vdmUgdXNyL2xpYi9jbWFr ZQogCQl2bW92ZSAidXNyL2xpYi8qLnNvIgogCX0KCkZyb20gZmVhMTYyNGZjYjMxMWI3NWE4ZDQy YWE4N2M5M2NmY2QxOTRlYTk3MyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQXJqYW4g TW9zc2VsIDxhcmphbm1vc3NlbEBnbWFpbC5jb20+CkRhdGU6IFR1ZSwgMTUgRmViIDIwMjIgMTQ6 NDQ6NTQgKzAxMDAKU3ViamVjdDogW1BBVENIIDAyLzE3XSBOZXcgcGFja2FnZTogbGlicnR0b3Bv LTEuMS4wCgpUaGUgUlQgVG9wb2xvZ3kgTGlicmFyeSBleHBvc2VzIGFuIEFQSSB0byBjcmVhdGUg YW5kIG1hbmFnZSBzdGFuZGFyZAooSVNPIDEzMjQ5IGFrYSBTUUwvTU0pIHRvcG9sb2dpZXMgdXNp bmcgdXNlci1wcm92aWRlZCBkYXRhIHN0b3Jlcy4KCkl0IGlzIG5lZWRlZCB0byBidWlsZCBsaWJz cGF0aWFsaXRlIChhcyBvZiB2NS4wLjEpIHdpdGggdGVzdHMgcGFzc2luZy4KLS0tCiBjb21tb24v c2hsaWJzICAgICAgICAgICAgICB8ICAxICsKIHNyY3BrZ3MvbGlicnR0b3BvLWRldmVsICAgIHwg IDEgKwogc3JjcGtncy9saWJydHRvcG8vdGVtcGxhdGUgfCAyOSArKysrKysrKysrKysrKysrKysr KysrKysrKysrKwogMyBmaWxlcyBjaGFuZ2VkLCAzMSBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9k ZSAxMjAwMDAgc3JjcGtncy9saWJydHRvcG8tZGV2ZWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNw a2dzL2xpYnJ0dG9wby90ZW1wbGF0ZQoKZGlmZiAtLWdpdCBhL2NvbW1vbi9zaGxpYnMgYi9jb21t b24vc2hsaWJzCmluZGV4IGIwZmNmZDA0OTI2ZS4uNzM0YzE2MjgxZjBlIDEwMDY0NAotLS0gYS9j b21tb24vc2hsaWJzCisrKyBiL2NvbW1vbi9zaGxpYnMKQEAgLTQxMTAsMyArNDExMCw0IEBAIGxp YmF3dF94YXd0LnNvIG9wZW5qZGsxNy1qcmUtMTcuMC4xKzEyXzEKIGxpYmphdmEuc28gb3Blbmpk azE3LWpyZS0xNy4wLjErMTJfMQogbGliamxpLnNvIG9wZW5qZGsxNy1qcmUtMTcuMC4xKzEyXzEK IGxpYmp2bS5zbyBvcGVuamRrMTctanJlLTE3LjAuMSsxMl8xCitsaWJydHRvcG8uc28uMSBsaWJy dHRvcG8tMS4xLjBfMQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9saWJydHRvcG8tZGV2ZWwgYi9zcmNw a2dzL2xpYnJ0dG9wby1kZXZlbApuZXcgZmlsZSBtb2RlIDEyMDAwMAppbmRleCAwMDAwMDAwMDAw MDAuLmFjZjM2MDdmNWZlYwotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbGlicnR0b3BvLWRl dmVsCkBAIC0wLDAgKzEgQEAKK2xpYnJ0dG9wbwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK ZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGlicnR0b3BvL3RlbXBsYXRlIGIvc3JjcGtncy9saWJydHRv cG8vdGVtcGxhdGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5iN2Y2 YjJhNzAwZDYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xpYnJ0dG9wby90ZW1wbGF0ZQpA QCAtMCwwICsxLDI5IEBACisjIFRlbXBsYXRlIGZpbGUgZm9yICdsaWJydHRvcG8nCitwa2duYW1l PWxpYnJ0dG9wbwordmVyc2lvbj0xLjEuMAorcmV2aXNpb249MQord3Jrc3JjPSIke3BrZ25hbWV9 IgorYnVpbGRfc3R5bGU9Z251LWNvbmZpZ3VyZQoraG9zdG1ha2VkZXBlbmRzPSJiYXNlLWRldmVs IGF1dG9jb25mLWFyY2hpdmUiCittYWtlZGVwZW5kcz0iYmFzZS1kZXZlbCBhdXRvY29uZi1hcmNo aXZlIGdlb3MtZGV2ZWwiCitzaG9ydF9kZXNjPSJSVCBUb3BvbG9neSBMaWJyYXJ5IGV4cG9zZXMg YW4gQVBJIGZvciBtYW5hZ2luZyBzdGFuZGFyZCB0b3BvbG9naWVzIgorbWFpbnRhaW5lcj0iQXJq YW4gTW9zc2VsIDxhcmphbm1vc3NlbEBnbWFpbC5jb20+IgorbGljZW5zZT0iR1BMLTIuMC1vci1s YXRlciIKK2hvbWVwYWdlPSJodHRwczovL2dpdC5vc2dlby5vcmcvZ2l0ZWEvcnR0b3BvL2xpYnJ0 dG9wbyIKK2Rpc3RmaWxlcz0iaHR0cHM6Ly9naXQub3NnZW8ub3JnL2dpdGVhL3J0dG9wby9saWJy dHRvcG8vYXJjaGl2ZS9saWJydHRvcG8tJHt2ZXJzaW9ufS50YXIuZ3oiCitjaGVja3N1bT0iMmUy ZmNhYmI0ODE5M2E3MTJhNmM3NmFjOWE5YmUyYTUzZjgyZTMyZjkxYTJiYzgzNGQ5ZjFiNGZhOWNk ODc5ZiIKKworcHJlX2NvbmZpZ3VyZSgpIHsKKwlhdXRvcmVjb25mIC1pZgorfQorCitsaWJydHRv cG8tZGV2ZWxfcGFja2FnZSgpIHsKKwlkZXBlbmRzPSIkcGtnbmFtZT49JHt2ZXJzaW9ufV8ke3Jl dmlzaW9ufSIKKwlzaG9ydF9kZXNjKz0iIC0gZGV2ZWxvcG1lbnQgZmlsZXMiCisJcGtnX2luc3Rh bGwoKSB7CisJCXZtb3ZlIHVzci9pbmNsdWRlCisJCXZtb3ZlICJ1c3IvbGliLyouc28iCisJCXZt b3ZlICJ1c3IvbGliLyouYSIKKwkJdm1vdmUgdXNyL2xpYi9wa2djb25maWcKKwl9Cit9CgpGcm9t IDI5YzhkYzRkYTdjNGJkYzIzZmY3MDczOTFkNzlmMzkyZmEzMjdjYTggTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IE55eDcwIDxuLnkueEBibHVld2luLmNoPgpEYXRlOiBUaHUsIDI2IE5v diAyMDIwIDE4OjQ3OjI1ICswMTAwClN1YmplY3Q6IFtQQVRDSCAwMy8xN10gTmV3IHBhY2thZ2U6 IGxpYmttbC0xLjMuMAoKLS0tCiBjb21tb24vc2hsaWJzICAgICAgICAgICAgICAgICAgICAgICAg ICB8ICA2ICsrKysrKwogc3JjcGtncy9saWJrbWwtZGV2ZWwgICAgICAgICAgICAgICAgICAgfCAg MSArCiBzcmNwa2dzL2xpYmttbC9wYXRjaGVzL05PVU5DUllQVC5wYXRjaCB8IDE3ICsrKysrKysr KysrKysrKysKIHNyY3BrZ3MvbGlia21sL3RlbXBsYXRlICAgICAgICAgICAgICAgIHwgMjcgKysr KysrKysrKysrKysrKysrKysrKysrKysKIDQgZmlsZXMgY2hhbmdlZCwgNTEgaW5zZXJ0aW9ucygr KQogY3JlYXRlIG1vZGUgMTIwMDAwIHNyY3BrZ3MvbGlia21sLWRldmVsCiBjcmVhdGUgbW9kZSAx MDA2NDQgc3JjcGtncy9saWJrbWwvcGF0Y2hlcy9OT1VOQ1JZUFQucGF0Y2gKIGNyZWF0ZSBtb2Rl IDEwMDY0NCBzcmNwa2dzL2xpYmttbC90ZW1wbGF0ZQoKZGlmZiAtLWdpdCBhL2NvbW1vbi9zaGxp YnMgYi9jb21tb24vc2hsaWJzCmluZGV4IDczNGMxNjI4MWYwZS4uN2NmODc2NjAwMDg5IDEwMDY0 NAotLS0gYS9jb21tb24vc2hsaWJzCisrKyBiL2NvbW1vbi9zaGxpYnMKQEAgLTQxMTEsMyArNDEx MSw5IEBAIGxpYmphdmEuc28gb3BlbmpkazE3LWpyZS0xNy4wLjErMTJfMQogbGliamxpLnNvIG9w ZW5qZGsxNy1qcmUtMTcuMC4xKzEyXzEKIGxpYmp2bS5zbyBvcGVuamRrMTctanJlLTE3LjAuMSsx Ml8xCiBsaWJydHRvcG8uc28uMSBsaWJydHRvcG8tMS4xLjBfMQorbGlia21sYmFzZS5zby4xIGxp YmttbC0xLjMuMF8xCitsaWJrbWxkb20uc28uMSBsaWJrbWwtMS4zLjBfMQorbGlia21sZW5naW5l LnNvLjEgbGlia21sLTEuMy4wXzEKK2xpYmttbHJlZ2lvbmF0b3Iuc28uMSBsaWJrbWwtMS4zLjBf MQorbGlia21seHNkLnNvLjEgbGlia21sLTEuMy4wXzEKK2xpYmttbGNvbnZlbmllbmNlLnNvLjEg bGlia21sLTEuMy4wXzEKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGlia21sLWRldmVsIGIvc3JjcGtn cy9saWJrbWwtZGV2ZWwKbmV3IGZpbGUgbW9kZSAxMjAwMDAKaW5kZXggMDAwMDAwMDAwMDAwLi5j ZjEyYmUxMDJmNDIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xpYmttbC1kZXZlbApAQCAt MCwwICsxIEBACitsaWJrbWwKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQg YS9zcmNwa2dzL2xpYmttbC9wYXRjaGVzL05PVU5DUllQVC5wYXRjaCBiL3NyY3BrZ3MvbGlia21s L3BhdGNoZXMvTk9VTkNSWVBULnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwMDAwMC4uNWI3ZTAxNmMwZTAyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9saWJrbWwv cGF0Y2hlcy9OT1VOQ1JZUFQucGF0Y2gKQEAgLTAsMCArMSwxNyBAQAorbWluaXppcC9jcnlwdC5o IHdhcyByZW1vdmVkIGZyb20gdGhlIHBhY2tldCBtaW5pemlwLTEuMi4xMV8yLiAKKword2l0aCAi I2RlZmluZSBOT1VOQ1JZUFQiIGxpYmttbCBjYW4gYmUgYnVpbHQgd2l0aG91dCAiY3J5cHQuaCIK K2h0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvY29tbWl0Lzk1MmFj OTEzY2YKK2h0dHBzOi8vZ2l0aHViLmNvbS9tYWRsZXIvemxpYi9wdWxsLzIyOQorCistLS0gYS9z cmMva21sL2Jhc2UvY29udHJpYi9taW5pemlwL3VuemlwLmMJMjAxNS0xMi0yMSAxODoyMzowNS4w MDAwMDAwMDAgKzAxMDAKKysrKyBiL3NyYy9rbWwvYmFzZS9jb250cmliL21pbml6aXAvdW56aXAu YwkyMDIwLTExLTI2IDE1OjQ1OjU1LjAzMzgzNTgxNiArMDEwMAorQEAgLTQyLDcgKzQyLDcgQEAK KyAjaW5jbHVkZSA8emxpYi5oPiAvL1JSCisgI2luY2x1ZGUgInVuemlwLmgiCisgI2luY2x1ZGUg ImlvbWVtX3NpbXBsZS5oIgorLSN1bmRlZiBOT1VOQ1JZUFQKKysjZGVmaW5lIE5PVU5DUllQVAor IAorICNpZmRlZiBTVERDCisgIyAgaW5jbHVkZSA8c3RkZGVmLmg+CmRpZmYgLS1naXQgYS9zcmNw a2dzL2xpYmttbC90ZW1wbGF0ZSBiL3NyY3BrZ3MvbGlia21sL3RlbXBsYXRlCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uYjY3ZWVjZTRkOGJhCi0tLSAvZGV2L251bGwK KysrIGIvc3JjcGtncy9saWJrbWwvdGVtcGxhdGUKQEAgLTAsMCArMSwyNyBAQAorIyBUZW1wbGF0 ZSBmaWxlIGZvciAnbGlia21sJworcGtnbmFtZT1saWJrbWwKK3ZlcnNpb249MS4zLjAKK3Jldmlz aW9uPTEKK2J1aWxkX3N0eWxlPWNtYWtlCittYWtlZGVwZW5kcz0iYm9vc3QtZGV2ZWwKKyBleHBh dC1kZXZlbAorIG1pbml6aXAtZGV2ZWwKKyB1cmlwYXJzZXItZGV2ZWwKKyB6bGliLWRldmVsIgor c2hvcnRfZGVzYz0iTGlicmFyeSB0byBtYW5pcHVsYXRlIEtNTCBPR0MgZmlsZXMiCittYWludGFp bmVyPSJPcnBoYW5lZCA8b3JwaGFuQHZvaWRsaW51eC5vcmc+IgorbGljZW5zZT0iR1BMLTMuMC1v ci1sYXRlciIKK2hvbWVwYWdlPSJodHRwczovL2dpdGh1Yi5jb20vbGlia21sL2xpYmttbCIKK2Rp c3RmaWxlcz0iaHR0cHM6Ly9naXRodWIuY29tL2xpYmttbC9saWJrbWwvYXJjaGl2ZS8ke3ZlcnNp b259LnRhci5neiIKK2NoZWNrc3VtPTg4OTI0MzllNTU3MDA5MTk2NWFhZmZlMzBiMDg2MzFmZGY3 Y2E3ZjgxZjY0OTViNDY0OGYwOTUwZDdlYTc5NjMKKworbGlia21sLWRldmVsX3BhY2thZ2UoKSB7 CisJZGVwZW5kcz0iJHtzb3VyY2Vwa2d9Pj0ke3ZlcnNpb259XyR7cmV2aXNpb259IgorCXNob3J0 X2Rlc2MrPSIgLSBkZXZlbG9wbWVudCBmaWxlcyIKKwlwa2dfaW5zdGFsbCgpIHsKKwkJdm1vdmUg dXNyL2luY2x1ZGUKKwkJdm1vdmUgdXNyL2xpYi9wa2djb25maWcKKwkJdm1vdmUgdXNyL2xpYi9j bWFrZQorCQl2bW92ZSAidXNyL2xpYi8qLnNvIgorCX0KK30KCkZyb20gZTBhY2NkMDA1MjEwMTdm ODczMzZkZTllM2U1N2VmZjc5MTMwZmNkZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTog QXJqYW4gTW9zc2VsIDxhcmphbm1vc3NlbEBnbWFpbC5jb20+CkRhdGU6IE1vbiwgMTQgRmViIDIw MjIgMTM6MDc6NTEgKzAxMDAKU3ViamVjdDogW1BBVENIIDA0LzE3XSBsaWJnZGFsOiB1cGRhdGUg dG8gMy40LjEgYW5kIHJlYnVpbGQgYWdhaW5zdCBwcm9qLTcuMi4xCgotLS0KIGNvbW1vbi9zaGxp YnMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogLi4uZTE2ZTI3YzVm YzRjNDkxZGViZTUwYmYyYjdmM2U5NGVkMzM0LnBhdGNoIHwgIDUzIC0tLS0tLS0tLQogLi4uYzQ4 OTNlNmQxNGQ0ODhkZmVkMjU3NDVkNzlmMTFiZWU0NWI5LnBhdGNoIHwgIDMxIC0tLS0tLQogc3Jj cGtncy9saWJnZGFsL3RlbXBsYXRlICAgICAgICAgICAgICAgICAgICAgIHwgMTA1ICsrKysrKysr KysrKysrKystLQogc3JjcGtncy9weXRob24zLWdkYWwgICAgICAgICAgICAgICAgICAgICAgICAg IHwgICAxICsKIDUgZmlsZXMgY2hhbmdlZCwgOTUgaW5zZXJ0aW9ucygrKSwgOTcgZGVsZXRpb25z KC0pCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9saWJnZGFsL3BhdGNoZXMvOWVmOGUxNmUy N2M1ZmM0YzQ5MWRlYmU1MGJmMmI3ZjNlOTRlZDMzNC5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0 IHNyY3BrZ3MvbGliZ2RhbC9wYXRjaGVzL2FiNzJjNDg5M2U2ZDE0ZDQ4OGRmZWQyNTc0NWQ3OWYx MWJlZTQ1YjkucGF0Y2gKIGNyZWF0ZSBtb2RlIDEyMDAwMCBzcmNwa2dzL3B5dGhvbjMtZ2RhbAoK ZGlmZiAtLWdpdCBhL2NvbW1vbi9zaGxpYnMgYi9jb21tb24vc2hsaWJzCmluZGV4IDdjZjg3NjYw MDA4OS4uNWE3NmRjOWVlOWUwIDEwMDY0NAotLS0gYS9jb21tb24vc2hsaWJzCisrKyBiL2NvbW1v bi9zaGxpYnMKQEAgLTI1MTAsNyArMjUxMCw3IEBAIGxpYnUyZi1ob3N0LnNvLjAgbGlidTJmLWhv c3QtMS4xLjEwXzUKIGxpYnUyZi1zZXJ2ZXIuc28uMCBsaWJ1MmYtc2VydmVyLTEuMS4wXzkKIGxp YnNxbGNpcGhlci5zby4wIHNxbGNpcGhlci00LjMuMF8zCiBsaWJndGEuc28uMSBsaWJndGEtMS4y LjBfMQotbGliZ2RhbC5zby4yNiBsaWJnZGFsLTMuMC40XzkKK2xpYmdkYWwuc28uMzAgbGliZ2Rh bC0zLjQuMV8xCiBsaWJvc2dWaWV3ZXIuc28uMTMxIG9zZy0zLjQuMV8xCiBsaWJvc2dTaGFkb3cu c28uMTMxIG9zZy0zLjQuMV8xCiBsaWJvc2dQYXJ0aWNsZS5zby4xMzEgb3NnLTMuNC4xXzEKZGlm ZiAtLWdpdCBhL3NyY3BrZ3MvbGliZ2RhbC9wYXRjaGVzLzllZjhlMTZlMjdjNWZjNGM0OTFkZWJl NTBiZjJiN2YzZTk0ZWQzMzQucGF0Y2ggYi9zcmNwa2dzL2xpYmdkYWwvcGF0Y2hlcy85ZWY4ZTE2 ZTI3YzVmYzRjNDkxZGViZTUwYmYyYjdmM2U5NGVkMzM0LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCA5NjhlZGViMzJjNzcuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2xp YmdkYWwvcGF0Y2hlcy85ZWY4ZTE2ZTI3YzVmYzRjNDkxZGViZTUwYmYyYjdmM2U5NGVkMzM0LnBh dGNoCisrKyAvZGV2L251bGwKQEAgLTEsNTMgKzAsMCBAQAotRnJvbSA5ZWY4ZTE2ZTI3YzVmYzRj NDkxZGViZTUwYmYyYjdmM2U5NGVkMzM0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTog RXZlbiBSb3VhdWx0IDxldmVuLnJvdWF1bHRAc3BhdGlhbHlzLmNvbT4KLURhdGU6IE1vbiwgNSBP Y3QgMjAyMCAxMjoxMTo1MiArMDIwMAotU3ViamVjdDogW1BBVENIXSBKUEVHMjAwMDogbWFrZSBp dCBidWlsZCB3aXRoIEphc3BlciAyLjAuMjEgKGZpeGVzICMzMDEyKQotCi0tLS0KLSBnZGFsL2Zy bXRzL2pwZWcyMDAwL2pwZWcyMDAwX3ZzaWxfaW8uY3BwIHwgMTYgKysrKysrKysrLS0tLS0tLQot IGdkYWwvZnJtdHMvanBlZzIwMDAvanBlZzIwMDBkYXRhc2V0LmNwcCAgfCAgMiArLQotIDIgZmls ZXMgY2hhbmdlZCwgMTAgaW5zZXJ0aW9ucygrKSwgOCBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdp dCBhL2dkYWwvZnJtdHMvanBlZzIwMDAvanBlZzIwMDBfdnNpbF9pby5jcHAgYi9nZGFsL2ZybXRz L2pwZWcyMDAwL2pwZWcyMDAwX3ZzaWxfaW8uY3BwCi1pbmRleCAxMGE0Zjk2ZjBlZS4uZWJjYWM0 MDEwY2UgMTAwNjQ0Ci0tLS0gYS9mcm10cy9qcGVnMjAwMC9qcGVnMjAwMF92c2lsX2lvLmNwcAot KysrIGIvZnJtdHMvanBlZzIwMDAvanBlZzIwMDBfdnNpbF9pby5jcHAKLUBAIC05NCwxMyArOTQs MjQgQEAKLSAqIEZpbGUgc3RyZWFtIG9iamVjdC4KLSBcKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwot Ci0rI2lmIGRlZmluZWQoUFJJamFzX3NlcWVudCkKLStzdGF0aWMgaW50IEpQRUcyMDAwX1ZTSUxf cmVhZChqYXNfc3RyZWFtX29ial90ICpvYmosIGNoYXIgKmJ1ZiwgdW5zaWduZWQgY250KQotKyNl bHNlCi0gc3RhdGljIGludCBKUEVHMjAwMF9WU0lMX3JlYWQoamFzX3N0cmVhbV9vYmpfdCAqb2Jq LCBjaGFyICpidWYsIGludCBjbnQpCi0rI2VuZGlmCi0gewotICAgICBqYXNfc3RyZWFtX1ZTSUZM X3QgKmZpbGVvYmogPSBKQVNfQ0FTVChqYXNfc3RyZWFtX1ZTSUZMX3QgKiwgb2JqKTsKLSAgICAg cmV0dXJuIHN0YXRpY19jYXN0PGludD4oVlNJRlJlYWRMKGJ1ZiwgMSwgY250LCBmaWxlb2JqLT5m cCkpOwotIH0KLQotKyNpZiBkZWZpbmVkKEpBU19JTkNMVURFX0pQMl9DT0RFQykKLSsvLyBKYXNw ZXIgMi4wLjIxCi0rc3RhdGljIGludCBKUEVHMjAwMF9WU0lMX3dyaXRlKGphc19zdHJlYW1fb2Jq X3QgKm9iaiwgY29uc3QgY2hhciAqYnVmLCB1bnNpZ25lZCBpbnQgY250KQotKyNlbGlmIGRlZmlu ZWQoUFJJamFzX3NlcWVudCkKLStzdGF0aWMgaW50IEpQRUcyMDAwX1ZTSUxfd3JpdGUoamFzX3N0 cmVhbV9vYmpfdCAqb2JqLCBjaGFyICpidWYsIHVuc2lnbmVkIGludCBjbnQpCi0rI2Vsc2UKLSBz dGF0aWMgaW50IEpQRUcyMDAwX1ZTSUxfd3JpdGUoamFzX3N0cmVhbV9vYmpfdCAqb2JqLCBjaGFy ICpidWYsIGludCBjbnQpCi0rI2VuZGlmCi0gewotICAgICBqYXNfc3RyZWFtX1ZTSUZMX3QgKmZp bGVvYmogPSBKQVNfQ0FTVChqYXNfc3RyZWFtX1ZTSUZMX3QgKiwgb2JqKTsKLSAgICAgcmV0dXJu IHN0YXRpY19jYXN0PGludD4oVlNJRldyaXRlTChidWYsIDEsIGNudCwgZmlsZW9iai0+ZnApKTsK LQotZGlmZiAtLWdpdCBhL2dkYWwvZnJtdHMvanBlZzIwMDAvanBlZzIwMDBkYXRhc2V0LmNwcCBi L2dkYWwvZnJtdHMvanBlZzIwMDAvanBlZzIwMDBkYXRhc2V0LmNwcAotaW5kZXggYTVhNmIyNThl ZDkuLmJkMWU3NzYzMTg2IDEwMDY0NAotLS0tIGEvZnJtdHMvanBlZzIwMDAvanBlZzIwMDBkYXRh c2V0LmNwcAotKysrIGIvZnJtdHMvanBlZzIwMDAvanBlZzIwMDBkYXRhc2V0LmNwcAotQEAgLTUx Myw3ICs1MTMsNyBAQCBpbnQgSlBFRzIwMDBEYXRhc2V0OjpEZWNvZGVJbWFnZSgpCi0gICAgICAg ICBmb3IgKCBpQmFuZCA9IDA7IGlCYW5kIDwgbkJhbmRzOyBpQmFuZCsrICkKLSAgICAgICAgIHsK LSAgICAgICAgICAgICBKUEVHMjAwMFJhc3RlckJhbmQqIHBvQmFuZCA9IChKUEVHMjAwMFJhc3Rl ckJhbmQqKSBHZXRSYXN0ZXJCYW5kKGlCYW5kKzEpOwotLSAgICAgICAgICAgIGlmIChwb0JhbmQt PmlEZXB0aCAhPSBqYXNfaW1hZ2VfY21wdHByZWMoIHBzSW1hZ2UsIGlCYW5kICkgfHwKLSsgICAg ICAgICAgICBpZiAocG9CYW5kLT5pRGVwdGggIT0gc3RhdGljX2Nhc3Q8aW50PihqYXNfaW1hZ2Vf Y21wdHByZWMoIHBzSW1hZ2UsIGlCYW5kICkpIHx8Ci0gICAgICAgICAgICAgICAgIHBvQmFuZC0+ YlNpZ25lZG5lc3MgIT0gamFzX2ltYWdlX2NtcHRzZ25kKCBwc0ltYWdlLCBpQmFuZCApKQotICAg ICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgQ1BMRXJyb3IoQ0VfRmFpbHVyZSwgQ1BMRV9B cHBEZWZpbmVkLApkaWZmIC0tZ2l0IGEvc3JjcGtncy9saWJnZGFsL3BhdGNoZXMvYWI3MmM0ODkz ZTZkMTRkNDg4ZGZlZDI1NzQ1ZDc5ZjExYmVlNDViOS5wYXRjaCBiL3NyY3BrZ3MvbGliZ2RhbC9w YXRjaGVzL2FiNzJjNDg5M2U2ZDE0ZDQ4OGRmZWQyNTc0NWQ3OWYxMWJlZTQ1YjkucGF0Y2gKZGVs ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY0M2VhYzg4MmY2Zi4uMDAwMDAwMDAwMDAwCi0t LSBhL3NyY3BrZ3MvbGliZ2RhbC9wYXRjaGVzL2FiNzJjNDg5M2U2ZDE0ZDQ4OGRmZWQyNTc0NWQ3 OWYxMWJlZTQ1YjkucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwzMSArMCwwIEBACi1Gcm9tIGFi NzJjNDg5M2U2ZDE0ZDQ4OGRmZWQyNTc0NWQ3OWYxMWJlZTQ1YjkgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCi1Gcm9tOiBFdmVuIFJvdWF1bHQgPGV2ZW4ucm91YXVsdEBzcGF0aWFseXMuY29tPgot RGF0ZTogTW9uLCAxMCBBdWcgMjAyMCAxNzoyNjo1MyArMDIwMAotU3ViamVjdDogW1BBVENIXSBK UEVHMjAwMDogZml4IGJ1aWxkIHdpdGggSmFzcGVyIDIuMC4xNyAoZml4ZXMgIzI4NDQpCi0KLS0t LQotIGdkYWwvZnJtdHMvanBlZzIwMDAvanBlZzIwMDBkYXRhc2V0LmNwcCB8IDQgKystLQotIDEg ZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1n aXQgYS9nZGFsL2ZybXRzL2pwZWcyMDAwL2pwZWcyMDAwZGF0YXNldC5jcHAgYi9nZGFsL2ZybXRz L2pwZWcyMDAwL2pwZWcyMDAwZGF0YXNldC5jcHAKLWluZGV4IDNlNjY4ZmZlNTAzLi4yZDNmNGU0 Njg3NiAxMDA2NDQKLS0tLSBhL2ZybXRzL2pwZWcyMDAwL2pwZWcyMDAwZGF0YXNldC5jcHAKLSsr KyBiL2ZybXRzL2pwZWcyMDAwL2pwZWcyMDAwZGF0YXNldC5jcHAKLUBAIC00ODQsNyArNDg0LDcg QEAgaW50IEpQRUcyMDAwRGF0YXNldDo6RGVjb2RlSW1hZ2UoKQotICAgICAvKiB0aGUgSlAyIGJv eGVzIG1hdGNoIHRoZSBvbmVzIG9mIHRoZSBjb2RlIHN0cmVhbSAqLwotICAgICBpZiAobkJhbmRz ICE9IDApCi0gICAgIHsKLS0gICAgICAgIGlmIChuQmFuZHMgIT0gamFzX2ltYWdlX251bWNtcHRz KCBwc0ltYWdlICkpCi0rICAgICAgICBpZiAobkJhbmRzICE9IHN0YXRpY19jYXN0PGludD4oamFz X2ltYWdlX251bWNtcHRzKCBwc0ltYWdlICkpKQotICAgICAgICAgewotICAgICAgICAgICAgIENQ TEVycm9yKENFX0ZhaWx1cmUsIENQTEVfQXBwRGVmaW5lZCwKLSAgICAgICAgICAgICAgICAgICAg ICAiVGhlIG51bWJlciBvZiBjb21wb25lbnRzIGluZGljYXRlZCBpbiB0aGUgSUhEUiBib3ggKCVk KSBtaXNtYXRjaCAiCi1AQCAtNTk1LDcgKzU5NSw3IEBAIEdEQUxEYXRhc2V0ICpKUEVHMjAwMERh dGFzZXQ6Ok9wZW4oIEdEQUxPcGVuSW5mbyAqIHBvT3BlbkluZm8gKQotIAotIHsKLSAgICAgaW50 ICAgICAgICAgaUZvcm1hdDsKLS0gICAgY2hhciAgICAgICAgKnBzekZvcm1hdE5hbWUgPSBudWxs cHRyOwotKyAgICBjb25zdCBjaGFyICpwc3pGb3JtYXROYW1lID0gbnVsbHB0cjsKLSAKLSAgICAg aWYgKCFJZGVudGlmeShwb09wZW5JbmZvKSkKLSAgICAgICAgIHJldHVybiBudWxscHRyOwpkaWZm IC0tZ2l0IGEvc3JjcGtncy9saWJnZGFsL3RlbXBsYXRlIGIvc3JjcGtncy9saWJnZGFsL3RlbXBs YXRlCmluZGV4IDg3MGFiMjJiNGNiYS4uNWZjYTU3OTk1NGZhIDEwMDY0NAotLS0gYS9zcmNwa2dz L2xpYmdkYWwvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9saWJnZGFsL3RlbXBsYXRlCkBAIC0xLDMw ICsxLDEwMCBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnbGliZ2RhbCcKIHBrZ25hbWU9bGliZ2Rh bAotdmVyc2lvbj0zLjAuNAotcmV2aXNpb249MTEKK3ZlcnNpb249My40LjEKK3JldmlzaW9uPTEK IHdya3NyYz0iZ2RhbC0ke3ZlcnNpb259IgogYnVpbGRfc3R5bGU9Z251LWNvbmZpZ3VyZQotY29u ZmlndXJlX2FyZ3M9Ii0td2l0aC1saWJsem1hIC0td2l0aC13ZWJwIC0td2l0aC16c3RkIC0td2l0 aC1wb2RvZm8gLS13aXRoLW9wZW5jbD15ZXMiCi1ob3N0bWFrZWRlcGVuZHM9ImdldHRleHQtZGV2 ZWwgcGtnLWNvbmZpZyBweXRob24tbnVtcHkganNvbi1jLWRldmVsIgotbWFrZWRlcGVuZHM9ImZy ZWV4bC1kZXZlbCBnZW9zLWRldmVsIGphc3Blci1kZXZlbCBqc29uLWMtZGV2ZWwKLSBsaWJjdXJs LWRldmVsIGxpYm9wZW5leHItZGV2ZWwgbGlib3BlbmpwZWcyLWRldmVsIGxpYnBvZG9mby1kZXZl bCBsaWJxaHVsbC1kZXZlbAotIGxpYndlYnAtZGV2ZWwgbGlieG1sMi1kZXZlbCBsaWJ6c3RkLWRl dmVsIG5ldGNkZi1kZXZlbCBvcGVuY2wyLWhlYWRlcnMgcGNyZTItZGV2ZWwKLSBwcm9qLWRldmVs IHNxbGl0ZS1kZXZlbCBvY2wtaWNkLWRldmVsIgorY29uZmlndXJlX2FyZ3M9IgorIC0td2l0aC1l eHBhdD15ZXMKKyAtLXdpdGgtaGRmNT15ZXMKKyAtLXdpdGgta21sPXllcworIC0td2l0aC1saWJs em1hPXllcworIC0td2l0aC1vcGVuY2w9eWVzCisgLS13aXRoLXBnPXllcworIC0td2l0aC1wb2Rv Zm89eWVzCisgLS13aXRoLXB5dGhvbj15ZXMKKyAtLXdpdGgtc3BhdGlhbGl0ZT15ZXMKKyAtLXdp dGgtc3FsaXRlMz15ZXMKKyAtLXdpdGgtd2VicD15ZXMKKyAtLXdpdGgtenN0ZD15ZXMiCitob3N0 bWFrZWRlcGVuZHM9ImdldHRleHQtZGV2ZWwKKyBqc29uLWMtZGV2ZWwKKyBwa2ctY29uZmlnCisg cHl0aG9uMy1udW1weQorIHN3aWciCittYWtlZGVwZW5kcz0iYm9vc3QtZGV2ZWwKKyBleHBhdC1k ZXZlbAorIGZyZWV4bC1kZXZlbAorIGdlb3MtZGV2ZWwKKyBqYXNwZXItZGV2ZWwKKyBqc29uLWMt ZGV2ZWwKKyBsaWJjdXJsLWRldmVsCisgbGlib3BlbmV4ci1kZXZlbAorIGxpYm9wZW5qcGVnMi1k ZXZlbAorIGxpYnBvZG9mby1kZXZlbAorIGxpYnFodWxsLWRldmVsCisgbGlic3BhdGlhbGl0ZS1k ZXZlbAorIGxpYndlYnAtZGV2ZWwKKyBsaWJ4bWwyLWRldmVsCisgbGlienN0ZC1kZXZlbAorIG5l dGNkZi1kZXZlbAorIG9jbC1pY2QtZGV2ZWwKKyBvcGVuY2wyLWhlYWRlcnMKKyBwY3JlMi1kZXZl bAorIHByb2otZGV2ZWwKKyBweXRob24zLWRldmVsCisgc3FsaXRlLWRldmVsCisgbGlia21sLWRl dmVsCisgcG9zdGdyZXNxbC1saWJzLWRldmVsIgogc2hvcnRfZGVzYz0iR2Vvc3BhdGlhbCBEYXRh IEFic3RyYWN0aW9uIExpYnJhcnkiCiBtYWludGFpbmVyPSJPcnBoYW5lZCA8b3JwaGFuQHZvaWRs aW51eC5vcmc+IgogbGljZW5zZT0iTUlUIgotaG9tZXBhZ2U9Imh0dHA6Ly93d3cuZ2RhbC5vcmcv IgotZGlzdGZpbGVzPSJodHRwOi8vZG93bmxvYWQub3NnZW8ub3JnL2dkYWwvJHt2ZXJzaW9ufS9n ZGFsLSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09NTU2OWE0ZGFhMWFiY2JiYTQ3YTlkNTM1 MTcyZmMzMzUxOTRkOTIxNGZkYjk2Y2QwZjEzOWJiNTczMjlhZTI3Nwotc3VicGFja2FnZXM9Imxp YmdkYWwtZGV2ZWwgbGliZ2RhbC10b29scyIKK2hvbWVwYWdlPSJodHRwczovL2dkYWwub3JnLyIK K2Rpc3RmaWxlcz0iaHR0cHM6Ly9naXRodWIuY29tL09TR2VvL2dkYWwvcmVsZWFzZXMvZG93bmxv YWQvdiR7dmVyc2lvbn0vZ2RhbC0ke3ZlcnNpb259LnRhci5neiIKK2NoZWNrc3VtPWUzNjAzODdi YzI1ZWMyNDk0MGY0NmFmYmVhZGE0ODAwMmQ3MmM3NGFhZjllY2NmMmE0MGU4ZDc0ZTcxMWEyZTQK K3N1YnBhY2thZ2VzPSJweXRob24zLWdkYWwgbGliZ2RhbC1kZXZlbCBsaWJnZGFsLXRvb2xzIgor CitidWlsZF9vcHRpb25zPSJrbWwgcG9zdGdyZXNxbCIKK2J1aWxkX29wdGlvbnNfZGVmYXVsdD0i a21sIgogCiBpZiBbIC16ICIkQ1JPU1NfQlVJTEQiIF07IHRoZW4KIAltYWtlZGVwZW5kcys9IiBo ZGY1LWRldmVsIgogZmkKK0NGTEFHUz0iLXB0aHJlYWQgLUkke1hCUFNfQ1JPU1NfQkFTRX0vJHtw eTNfaW5jfSIKK0xERkxBR1M9Ii1MJHtYQlBTX0NST1NTX0JBU0V9LyR7cHkzX2xpYn0iCisKK3Bv c3RfYnVpbGQoKSB7CisJaWYgWyAiJENST1NTX0JVSUxEIiBdOyB0aGVuCisJCWV4cG9ydCBQWVBS RUZJWD0iJFhCUFNfQ1JPU1NfQkFTRSIKKwkJZXhwb3J0IFBZVEhPTlBBVEg9JHtYQlBTX0NST1NT X0JBU0V9LyR7cHkzX2xpYn0KKwkJZm9yIGYgaW4gJHtYQlBTX0NST1NTX0JBU0V9LyR7cHkzX2xp Yn0vX3N5c2NvbmZpZ2RhdGFfKjsgZG8KKwkJCWY9JHtmIyMqL30KKwkJCWV4cG9ydCBfUFlUSE9O X1NZU0NPTkZJR0RBVEFfTkFNRT0ke2YlLnB5fQorCQlkb25lCisJZmkKKwlleHBvcnQgTERTSEFS RUQ9IiR7Q0N9ICRDRkxBR1MgLXNoYXJlZCAkTERGTEFHUyIKKworCXJtIC1mIHN3aWcvcHl0aG9u Lypfd3JhcC5jcHAKKwltYWtlIC1DIHN3aWcvcHl0aG9uIGdlbmVyYXRlCisJY2Qgc3dpZy9weXRo b24KKwlweXRob24zIHNldHVwLnB5IGJ1aWxkCit9CiAKIHBvc3RfaW5zdGFsbCgpIHsKIAl2aW5z dGFsbCBnZGFsLnBjIDY0NCB1c3IvbGliL3BrZ2NvbmZpZwogCXZsaWNlbnNlIExJQ0VOU0UuVFhU CisJaWYgWyAiJENST1NTX0JVSUxEIiBdOyB0aGVuCisJCWV4cG9ydCBQWVBSRUZJWD0iJFhCUFNf Q1JPU1NfQkFTRSIKKwkJZXhwb3J0IFBZVEhPTlBBVEg9JHtYQlBTX0NST1NTX0JBU0V9LyR7cHkz X2xpYn0KKwkJZm9yIGYgaW4gJHtYQlBTX0NST1NTX0JBU0V9LyR7cHkzX2xpYn0vX3N5c2NvbmZp Z2RhdGFfKjsgZG8KKwkJCWY9JHtmIyMqL30KKwkJCWV4cG9ydCBfUFlUSE9OX1NZU0NPTkZJR0RB VEFfTkFNRT0ke2YlLnB5fQorCQlkb25lCisJZmkKKwlleHBvcnQgTERTSEFSRUQ9IiR7Q0N9ICRD RkxBR1MgLXNoYXJlZCAkTERGTEFHUyIKKworCWNkIHN3aWcvcHl0aG9uCisJcHl0aG9uMyBzZXR1 cC5weSBpbnN0YWxsIC0tcHJlZml4PS91c3IgLS1yb290PSRERVNURElSCiB9CiAKIGxpYmdkYWwt dG9vbHNfcGFja2FnZSgpIHsKQEAgLTQ2LDMgKzExNiwxNCBAQCBsaWJnZGFsLWRldmVsX3BhY2th Z2UoKSB7CiAJCXZtb3ZlIHVzci9saWIvKi5zbwogCX0KIH0KKworcHl0aG9uMy1nZGFsX3BhY2th Z2UoKSB7CisJZGVwZW5kcz0iJHtzb3VyY2Vwa2d9Pj0ke3ZlcnNpb259XyR7cmV2aXNpb259Igor CXNob3J0X2Rlc2MrPSIgLSBQeXRob24zIGJpbmRpbmdzIgorCXBrZ19pbnN0YWxsKCkgeworCQl2 bW92ZSAidXNyL2Jpbi8qLnB5IgorCQl2bW92ZSAidXNyL2xpYi9weXRob24qIgorCQl2ZG9jIHN3 aWcvcHl0aG9uL1JFQURNRS5yc3QKKwkJdm1rZGlyIHVzci9zaGFyZS9weXRob24zLWdkYWwKKwl9 Cit9CmRpZmYgLS1naXQgYS9zcmNwa2dzL3B5dGhvbjMtZ2RhbCBiL3NyY3BrZ3MvcHl0aG9uMy1n ZGFsCm5ldyBmaWxlIG1vZGUgMTIwMDAwCmluZGV4IDAwMDAwMDAwMDAwMC4uMzc3ZDUwZGZjMmI4 Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9weXRob24zLWdkYWwKQEAgLTAsMCArMSBAQAor bGliZ2RhbApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKCkZyb20gMDFhNjljZGI0ZGUzZGVm OTlkMTQ2OGY2OGEwMmIwN2ZkODcwMWZlNyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTog QXJqYW4gTW9zc2VsIDxhcmphbm1vc3NlbEBnbWFpbC5jb20+CkRhdGU6IFN1biwgMjcgSnVuIDIw MjEgMTk6MTY6MzQgKzAyMDAKU3ViamVjdDogW1BBVENIIDA1LzE3XSBwb3N0Z2lzOiB1cGRhdGUg dG8gMy4xLjU7IHJlYnVpbGQgYWdhaW5zdCBsaWJnZGFsLTMuNC4xCiBhbmQgcHJvai03LjIuMQoK LS0tCiBzcmNwa2dzL3Bvc3RnaXMvdGVtcGxhdGUgfCA0ICsrLS0KIDEgZmlsZSBjaGFuZ2VkLCAy IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9wb3N0 Z2lzL3RlbXBsYXRlIGIvc3JjcGtncy9wb3N0Z2lzL3RlbXBsYXRlCmluZGV4IGM4NzhkZTg5Y2Zj Yi4uZjUyY2Q2NjU3OTg4IDEwMDY0NAotLS0gYS9zcmNwa2dzL3Bvc3RnaXMvdGVtcGxhdGUKKysr IGIvc3JjcGtncy9wb3N0Z2lzL3RlbXBsYXRlCkBAIC0xLDYgKzEsNiBAQAogIyBUZW1wbGF0ZSBm aWxlIGZvciAncG9zdGdpcycKIHBrZ25hbWU9cG9zdGdpcwotdmVyc2lvbj0zLjEuNAordmVyc2lv bj0zLjEuNQogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9Z251LWNvbmZpZ3VyZQogY29uZmlndXJl X2FyZ3M9Ii0td2l0aC1wcm9qZGlyPSR7WEJQU19DUk9TU19CQVNFfS91c3IKQEAgLTE5LDcgKzE5 LDcgQEAgbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3Bvc3Rn aXMubmV0LyIKIGNoYW5nZWxvZz0iaHR0cHM6Ly9naXQub3NnZW8ub3JnL2dpdGVhL3Bvc3RnaXMv cG9zdGdpcy9yYXcvdGFnLyR7dmVyc2lvbn0vTkVXUyIKIGRpc3RmaWxlcz0iaHR0cHM6Ly9kb3du bG9hZC5vc2dlby5vcmcvcG9zdGdpcy9zb3VyY2UvcG9zdGdpcy0ke3ZlcnNpb259LnRhci5neiIK LWNoZWNrc3VtPWRjOGUzZmU4YmM1MzJlNDIyZjVkNzI0YzVhN2M0MzdmNjU1NTUxMTcxNmY2NDEw ZDRkMmRiOTc2MmUxYTM3OTYKK2NoZWNrc3VtPWZjYjEwZDliNDk5ZmQ3OTM5OWJkOGRiOTBmMGIz MTM4MzdkMDAyMjNkMzAwODBkYWM0MDM0MTllMDY3ZTRjMDYKIG5vY3Jvc3M9IkZJWE1FOiBDYW5u b3QgcnVuIHRlc3QgcHJvZ3JhbSB0byBkZXRlcm1pbmUgUFJPSiB2ZXJzaW9uIgogCiBwcmVfY29u ZmlndXJlKCkgewoKRnJvbSAxMDE3OWVkNWM5ODkxYjJiODVkMmU3YTE5MWFkNmI0ZDVlNmVhNDY3 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBcmphbiBNb3NzZWwgPGFyamFubW9zc2Vs QGdtYWlsLmNvbT4KRGF0ZTogTW9uLCAxNCBGZWIgMjAyMiAxMzoyMjo1OSArMDEwMApTdWJqZWN0 OiBbUEFUQ0ggMDYvMTddIHBvc3RnaXMtcG9zdGdyZXNxbDEzOiB1cGRhdGUgdG8gMy4xLjU7IHJl YnVpbGQgYWdhaW5zdAogbGliZ2RhbCBhbmQgcHJvagoKbGliZ2RhbC0zLjQuMQpwcm9qLTcuMi4x Ci0tLQogc3JjcGtncy9wb3N0Z2lzLXBvc3RncmVzcWwxMy90ZW1wbGF0ZSB8IDYgKysrLS0tCiAx IGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL3NyY3BrZ3MvcG9zdGdpcy1wb3N0Z3Jlc3FsMTMvdGVtcGxhdGUgYi9zcmNwa2dzL3Bvc3Rn aXMtcG9zdGdyZXNxbDEzL3RlbXBsYXRlCmluZGV4IDcwNmM4ZmI5NjgxMC4uYTBmNWM4OWVmNGRh IDEwMDY0NAotLS0gYS9zcmNwa2dzL3Bvc3RnaXMtcG9zdGdyZXNxbDEzL3RlbXBsYXRlCisrKyBi L3NyY3BrZ3MvcG9zdGdpcy1wb3N0Z3Jlc3FsMTMvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAj IFRlbXBsYXRlIGZpbGUgZm9yICdwb3N0Z2lzLXBvc3RncmVzcWwxMycKIHBrZ25hbWU9cG9zdGdp cy1wb3N0Z3Jlc3FsMTMKLXZlcnNpb249My4xLjQKLXJldmlzaW9uPTIKK3ZlcnNpb249My4xLjUK K3JldmlzaW9uPTEKIHdya3NyYz0icG9zdGdpcy0ke3ZlcnNpb259IgogYnVpbGRfc3R5bGU9Z251 LWNvbmZpZ3VyZQogY29uZmlndXJlX2FyZ3M9IgpAQCAtMjAsNyArMjAsNyBAQCBsaWNlbnNlPSJH UEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vcG9zdGdpcy5uZXQvIgogY2hhbmdl bG9nPSJodHRwczovL2dpdC5vc2dlby5vcmcvZ2l0ZWEvcG9zdGdpcy9wb3N0Z2lzL3Jhdy90YWcv JHt2ZXJzaW9ufS9ORVdTIgogZGlzdGZpbGVzPSJodHRwczovL2Rvd25sb2FkLm9zZ2VvLm9yZy9w b3N0Z2lzL3NvdXJjZS9wb3N0Z2lzLSR7dmVyc2lvbn0udGFyLmd6IgotY2hlY2tzdW09ZGM4ZTNm ZThiYzUzMmU0MjJmNWQ3MjRjNWE3YzQzN2Y2NTU1NTExNzE2ZjY0MTBkNGQyZGI5NzYyZTFhMzc5 NgorY2hlY2tzdW09ZmNiMTBkOWI0OTlmZDc5Mzk5YmQ4ZGI5MGYwYjMxMzgzN2QwMDIyM2QzMDA4 MGRhYzQwMzQxOWUwNjdlNGMwNgogbm9jcm9zcz0iRklYTUU6IENhbm5vdCBydW4gdGVzdCBwcm9n cmFtIHRvIGRldGVybWluZSBQUk9KIHZlcnNpb24iCiAKIHByZV9jb25maWd1cmUoKSB7CgpGcm9t IDUxZjYwYzgxMjM2MmI1NWIxYjgxMjNhZTFmNDIxYjVjODY2NWRiZmYgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IEFyamFuIE1vc3NlbCA8YXJqYW5tb3NzZWxAZ21haWwuY29tPgpEYXRl OiBNb24sIDE0IEZlYiAyMDIyIDEzOjI2OjU5ICswMTAwClN1YmplY3Q6IFtQQVRDSCAwNy8xN10g cG9zdGdpcy1wb3N0Z3Jlc3FsMTQ6IHVwZGF0ZSB0byAzLjEuNTsgcmVidWlsZCBhZ2FpbnN0CiBs aWJnZGFsIGFuZCBwcm9qCgpsaWJnZGFsLTMuNC4xCnByb2otNy4yLjEKLS0tCiBzcmNwa2dzL3Bv c3RnaXMtcG9zdGdyZXNxbDE0L3RlbXBsYXRlIHwgNCArKy0tCiAxIGZpbGUgY2hhbmdlZCwgMiBp bnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcG9zdGdp cy1wb3N0Z3Jlc3FsMTQvdGVtcGxhdGUgYi9zcmNwa2dzL3Bvc3RnaXMtcG9zdGdyZXNxbDE0L3Rl bXBsYXRlCmluZGV4IDZjZTQyMzFiMTcyNi4uYWQ4ZDBjNWM0MjUzIDEwMDY0NAotLS0gYS9zcmNw a2dzL3Bvc3RnaXMtcG9zdGdyZXNxbDE0L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvcG9zdGdpcy1w b3N0Z3Jlc3FsMTQvdGVtcGxhdGUKQEAgLTEsNiArMSw2IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9y ICdwb3N0Z2lzLXBvc3RncmVzcWwxNCcKIHBrZ25hbWU9cG9zdGdpcy1wb3N0Z3Jlc3FsMTQKLXZl cnNpb249My4xLjQKK3ZlcnNpb249My4xLjUKIHJldmlzaW9uPTEKIHdya3NyYz0icG9zdGdpcy0k e3ZlcnNpb259IgogYnVpbGRfc3R5bGU9Z251LWNvbmZpZ3VyZQpAQCAtMjAsNyArMjAsNyBAQCBs aWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vcG9zdGdpcy5uZXQv IgogY2hhbmdlbG9nPSJodHRwczovL2dpdC5vc2dlby5vcmcvZ2l0ZWEvcG9zdGdpcy9wb3N0Z2lz L3Jhdy90YWcvJHt2ZXJzaW9ufS9ORVdTIgogZGlzdGZpbGVzPSJodHRwczovL2Rvd25sb2FkLm9z Z2VvLm9yZy9wb3N0Z2lzL3NvdXJjZS9wb3N0Z2lzLSR7dmVyc2lvbn0udGFyLmd6IgotY2hlY2tz dW09ZGM4ZTNmZThiYzUzMmU0MjJmNWQ3MjRjNWE3YzQzN2Y2NTU1NTExNzE2ZjY0MTBkNGQyZGI5 NzYyZTFhMzc5NgorY2hlY2tzdW09ZmNiMTBkOWI0OTlmZDc5Mzk5YmQ4ZGI5MGYwYjMxMzgzN2Qw MDIyM2QzMDA4MGRhYzQwMzQxOWUwNjdlNGMwNgogbm9jcm9zcz0iRklYTUU6IENhbm5vdCBydW4g dGVzdCBwcm9ncmFtIHRvIGRldGVybWluZSBQUk9KIHZlcnNpb24iCiAKIHByZV9jb25maWd1cmUo KSB7CgpGcm9tIGU1Y2YzNDJlNWUzNDNiMzVjYTQ0ZmRmNDk2ZDZhZDk2MDE2OTNlMTAgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IEFyamFuIE1vc3NlbCA8YXJqYW5tb3NzZWxAZ21haWwu Y29tPgpEYXRlOiBNb24sIDkgQXVnIDIwMjEgMTk6NTM6MTcgKzAyMDAKU3ViamVjdDogW1BBVENI IDA4LzE3XSB3eFB5dGhvbjQ6IGJhY2twb3J0IHBhdGNoZXMsIGFuZCBmaXggdGVzdHMKCkJhY2tw b3J0ZWQgcGF0Y2hlczoKLSB3eFBzZXVkb0RDIEdJTAotIFB5dGhvbiAzLjEwIEFHVyBGbGF0Tm90 ZWJvb2sgcGF0Y2gKLSBQeXRob24gMy4xMCBTY3JvbGxlZFdpbmRvdyBhcmd1bWVudCB0eXBlcwot IFB5dGhvbiAzLjEwIEludGVnZXIgZGl2aXNpb24KLSB3eC5XaW5kb3dJRCBhbmQgd3guUmVnaW9u IGFyZ3VtZW50cwotLS0KIC4uLi9wYXRjaGVzLzAwMDItUHl0aG9uLTMuMTAtaXNzdWVzLnBhdGNo ICAgICB8IDMzMTcgKysrKysrKysrKysrKysrKysKIC4uLi8wMDAzLVB5dGhvbi0zLjEwLUFHVy1G bGF0Tm90ZWJvb2sucGF0Y2ggICB8ICAgNTcgKwogLi4uL3BhdGNoZXMvcmVzdG9yZS1naWwtcHNl dWRvZGMucGF0Y2ggICAgICAgIHwgICA1MiArCiBzcmNwa2dzL3d4UHl0aG9uNC90ZW1wbGF0ZSAg ICAgICAgICAgICAgICAgICAgfCAgICAzICstCiA0IGZpbGVzIGNoYW5nZWQsIDM0MjggaW5zZXJ0 aW9ucygrKSwgMSBkZWxldGlvbigtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mvd3hQeXRo b240L3BhdGNoZXMvMDAwMi1QeXRob24tMy4xMC1pc3N1ZXMucGF0Y2gKIGNyZWF0ZSBtb2RlIDEw MDY0NCBzcmNwa2dzL3d4UHl0aG9uNC9wYXRjaGVzLzAwMDMtUHl0aG9uLTMuMTAtQUdXLUZsYXRO b3RlYm9vay5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mvd3hQeXRob240L3BhdGNo ZXMvcmVzdG9yZS1naWwtcHNldWRvZGMucGF0Y2gKCmRpZmYgLS1naXQgYS9zcmNwa2dzL3d4UHl0 aG9uNC9wYXRjaGVzLzAwMDItUHl0aG9uLTMuMTAtaXNzdWVzLnBhdGNoIGIvc3JjcGtncy93eFB5 dGhvbjQvcGF0Y2hlcy8wMDAyLVB5dGhvbi0zLjEwLWlzc3Vlcy5wYXRjaApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjZjODdmZjk2N2QwMQotLS0gL2Rldi9udWxsCisr KyBiL3NyY3BrZ3Mvd3hQeXRob240L3BhdGNoZXMvMDAwMi1QeXRob24tMy4xMC1pc3N1ZXMucGF0 Y2gKQEAgLTAsMCArMSwzMzE3IEBACitGcm9tIGY1NWExN2MyZDNiMzM2YzgyZmI0NGY3ODE2ZWM2 MzIxOTg0N2Y0Y2MgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBTY290dCBUYWxiZXJ0 IDxzd3RAdGVjaGllLm5ldD4KK0RhdGU6IERlYyAyMiAyMDIxIDIwOjIzOjU0ICswMDAwCitTdWJq ZWN0OiBGaXggYSBidW5jaCBvZiBQeXRob24gMy4xMCBpc3N1ZXMKKworCistLS0KKworZGlmZiAt LWdpdCBhLzBkNDQ5NjI2ZDZkMjk4YWQ5NmViZDFkNTE0ZDBlNDI4MzNiY2U0NzAucGF0Y2ggYi8w ZDQ0OTYyNmQ2ZDI5OGFkOTZlYmQxZDUxNGQwZTQyODMzYmNlNDcwLnBhdGNoCituZXcgZmlsZSBt b2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMC4uZDJjY2RkYworLS0tIC9kZXYvbnVsbAorKysrIGIv MGQ0NDk2MjZkNmQyOThhZDk2ZWJkMWQ1MTRkMGU0MjgzM2JjZTQ3MC5wYXRjaAorQEAgLTAsMCAr MSwyMiBAQAorK0Zyb20gMGQ0NDk2MjZkNmQyOThhZDk2ZWJkMWQ1MTRkMGU0MjgzM2JjZTQ3MCBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKKytGcm9tOiBDYXJvbGluYSBGZWhlciBkYSBTaWx2YSA8 Y2Fyb2xmc3VAZ21haWwuY29tPgorK0RhdGU6IFR1ZSwgMTYgTm92IDIwMjEgMDE6MjQ6MzEgKzAw MDAKKytTdWJqZWN0OiBbUEFUQ0hdIEZpeGVkIGludGVnZXIgZGl2aXNpb24gaW4gUHl0aG9uIDMK KysKKystLS0KKysgd3gvbGliL3N0YXR0ZXh0LnB5IHwgMiArLQorKyAxIGZpbGUgY2hhbmdlZCwg MSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKKysKKytkaWZmIC0tZ2l0IGEvd3gvbGliL3N0 YXR0ZXh0LnB5IGIvd3gvbGliL3N0YXR0ZXh0LnB5CisraW5kZXggMmNmYjZlNjVhLi5lNjA2ZTVh ODkgMTAwNjQ0CisrLS0tIGEvd3gvbGliL3N0YXR0ZXh0LnB5CisrKysrIGIvd3gvbGliL3N0YXR0 ZXh0LnB5CisrQEAgLTMwMiw3ICszMDIsNyBAQCBkZWYgT25QYWludChzZWxmLCBldmVudCk6Cisr ICAgICAgICAgICAgIGlmIHN0eWxlICYgd3guQUxJR05fUklHSFQ6CisrICAgICAgICAgICAgICAg ICB4ID0gd2lkdGggLSB3CisrICAgICAgICAgICAgIGlmIHN0eWxlICYgd3guQUxJR05fQ0VOVEVS OgorKy0gICAgICAgICAgICAgICAgeCA9ICh3aWR0aCAtIHcpLzIKKysrICAgICAgICAgICAgICAg IHggPSAod2lkdGggLSB3KS8vMgorKyAgICAgICAgICAgICBkYy5EcmF3VGV4dChsaW5lLCB4LCB5 KQorKyAgICAgICAgICAgICB5ICs9IGgKKysgCitkaWZmIC0tZ2l0IGEvM2ViOWViMzJkYzMyODU0 MzUwMzlmNmM0MjBjMzk4NjY1MzcyYTFhZC5wYXRjaCBiLzNlYjllYjMyZGMzMjg1NDM1MDM5ZjZj NDIwYzM5ODY2NTM3MmExYWQucGF0Y2gKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAw MDAwLi4wOGU1OGEwCistLS0gL2Rldi9udWxsCisrKysgYi8zZWI5ZWIzMmRjMzI4NTQzNTAzOWY2 YzQyMGMzOTg2NjUzNzJhMWFkLnBhdGNoCitAQCAtMCwwICsxLDg0IEBACisrRnJvbSAzZWI5ZWIz MmRjMzI4NTQzNTAzOWY2YzQyMGMzOTg2NjUzNzJhMWFkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQorK0Zyb206IEdsZW4gV2hpdG5leSA8Z2xlbkBzdHVkaW9pbmZpbml0eS5vcmc+CisrRGF0ZTog VHVlLCAzMSBBdWcgMjAyMSAxMTowNjoyNyAtMDcwMAorK1N1YmplY3Q6IFtQQVRDSF0gZml4OiBD b3JyZWN0IHR5cGVzIG9mIGFyZ3VtZW50cyB0bworKyBTY3JvbGxlZFdpbmRvdy5TZXRTY3JvbGxi YXJzCisrCisrLS0tCisrIGRlbW8vTWFzay5weSAgICAgICAgICAgICAgICAgICB8ICAyICstCisr IGRlbW8vT0dMLnB5ICAgICAgICAgICAgICAgICAgICB8ICAyICstCisrIHd4L2xpYi9hZ3cvdWx0 aW1hdGVsaXN0Y3RybC5weSB8IDE0ICsrKysrKystLS0tLS0tCisrIDMgZmlsZXMgY2hhbmdlZCwg OSBpbnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygtKQorKworK2RpZmYgLS1naXQgYS9kZW1vL01h c2sucHkgYi9kZW1vL01hc2sucHkKKytpbmRleCA1ZjBjMmNkZGUuLjEwOWI4ZjMwYiAxMDA2NDQK KystLS0gYS9kZW1vL01hc2sucHkKKysrKysgYi9kZW1vL01hc2sucHkKKytAQCAtNTYsNyArNTYs NyBAQCBkZWYgX19pbml0X18oc2VsZiwgcGFyZW50KToKKysgICAgICAgICBtYXNrID0gd3guTWFz ayhzZWxmLmJtcF93aXRoY29sb3VybWFzaywgd3guV0hJVEUpCisrICAgICAgICAgc2VsZi5ibXBf d2l0aGNvbG91cm1hc2suU2V0TWFzayhtYXNrKQorKyAKKystICAgICAgICBzZWxmLlNldFNjcm9s bGJhcnMoMjAsIDIwLCA3MDAvMjAsIDQ2MC8yMCkKKysrICAgICAgICBzZWxmLlNldFNjcm9sbGJh cnMoMjAsIDIwLCA3MDAvLzIwLCA0NjAvLzIwKQorKyAKKysgICAgICAgICBzZWxmLkJpbmQod3gu RVZUX1BBSU5ULCBzZWxmLk9uUGFpbnQpCisrIAorK2RpZmYgLS1naXQgYS9kZW1vL09HTC5weSBi L2RlbW8vT0dMLnB5CisraW5kZXggNzJjYTU0M2RkLi5kNDc1ZTUwMTEgMTAwNjQ0CisrLS0tIGEv ZGVtby9PR0wucHkKKysrKysgYi9kZW1vL09HTC5weQorK0BAIC0yNzIsNyArMjcyLDcgQEAgZGVm IF9faW5pdF9fKHNlbGYsIHBhcmVudCwgbG9nLCBmcmFtZSk6CisrIAorKyAgICAgICAgIG1heFdp ZHRoICA9IDEwMDAKKysgICAgICAgICBtYXhIZWlnaHQgPSAxMDAwCisrLSAgICAgICAgc2VsZi5T ZXRTY3JvbGxiYXJzKDIwLCAyMCwgbWF4V2lkdGgvMjAsIG1heEhlaWdodC8yMCkKKysrICAgICAg ICBzZWxmLlNldFNjcm9sbGJhcnMoMjAsIDIwLCBtYXhXaWR0aC8vMjAsIG1heEhlaWdodC8vMjAp CisrIAorKyAgICAgICAgIHNlbGYubG9nID0gbG9nCisrICAgICAgICAgc2VsZi5mcmFtZSA9IGZy YW1lCisrZGlmZiAtLWdpdCBhL3d4L2xpYi9hZ3cvdWx0aW1hdGVsaXN0Y3RybC5weSBiL3d4L2xp Yi9hZ3cvdWx0aW1hdGVsaXN0Y3RybC5weQorK2luZGV4IGM2MDg2NzY4NC4uMTRmYzQxZjg2IDEw MDY0NAorKy0tLSBhL3d4L2xpYi9hZ3cvdWx0aW1hdGVsaXN0Y3RybC5weQorKysrKyBiL3d4L2xp Yi9hZ3cvdWx0aW1hdGVsaXN0Y3RybC5weQorK0BAIC05NjU0LDggKzk2NTQsOCBAQCBkZWYgUmVj YWxjdWxhdGVQb3NpdGlvbnMoc2VsZiwgbm9SZWZyZXNoPUZhbHNlKToKKysgICAgICAgICAgICAg ICAgIHNlbGYuX2xpbmVzUGVyUGFnZSA9IGNsaWVudEhlaWdodC8vbGluZUhlaWdodAorKyAKKysg ICAgICAgICAgICAgICAgIHNlbGYuU2V0U2Nyb2xsYmFycyhTQ1JPTExfVU5JVF9YLCBsaW5lSGVp Z2h0LAorKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZWxmLkdldEhlYWRl cldpZHRoKCktZGVjcmVtZW50KS9TQ1JPTExfVU5JVF9YLAorKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIChlbnRpcmVIZWlnaHQgKyBsaW5lSGVpZ2h0IC0gMSkvbGluZUhlaWdo dCwKKysrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2VsZi5HZXRIZWFkZXJX aWR0aCgpLWRlY3JlbWVudCkvL1NDUk9MTF9VTklUX1gsCisrKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKGVudGlyZUhlaWdodCArIGxpbmVIZWlnaHQgLSAxKS8vbGluZUhlaWdo dCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLkdldFNjcm9sbFBv cyh3eC5IT1JJWk9OVEFMKSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz ZWxmLkdldFNjcm9sbFBvcyh3eC5WRVJUSUNBTCksCisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgVHJ1ZSkKKytAQCAtOTY3Niw4ICs5Njc2LDggQEAgZGVmIFJlY2FsY3VsYXRl UG9zaXRpb25zKHNlbGYsIG5vUmVmcmVzaD1GYWxzZSk6CisrICAgICAgICAgICAgICAgICAgICAg ZGVjcmVtZW50ID0gU0NST0xMX1VOSVRfWAorKyAKKysgICAgICAgICAgICAgICAgIHNlbGYuU2V0 U2Nyb2xsYmFycyhTQ1JPTExfVU5JVF9YLCBTQ1JPTExfVU5JVF9ZLAorKy0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIChzZWxmLkdldEhlYWRlcldpZHRoKCktZGVjcmVtZW50KS9T Q1JPTExfVU5JVF9YLAorKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbnRp cmVIZWlnaHQgKyBTQ1JPTExfVU5JVF9ZIC0gMSkvU0NST0xMX1VOSVRfWSwKKysrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAoc2VsZi5HZXRIZWFkZXJXaWR0aCgpLWRlY3JlbWVu dCkvL1NDUk9MTF9VTklUX1gsCisrKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KGVudGlyZUhlaWdodCArIFNDUk9MTF9VTklUX1kgLSAxKS8vU0NST0xMX1VOSVRfWSwKKysgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLkdldFNjcm9sbFBvcyh3eC5IT1JJ Wk9OVEFMKSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLkdldFNj cm9sbFBvcyh3eC5WRVJUSUNBTCksCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgVHJ1ZSkKKytAQCAtOTcyOCw4ICs5NzI4LDggQEAgZGVmIFJlY2FsY3VsYXRlUG9zaXRpb25z KHNlbGYsIG5vUmVmcmVzaD1GYWxzZSk6CisrICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmUu X2dpLkV4dGVuZFdpZHRoKHdpZHRoTWF4KQorKyAKKysgICAgICAgICAgICAgICAgIHNlbGYuU2V0 U2Nyb2xsYmFycyhTQ1JPTExfVU5JVF9YLCBsaW5lSGVpZ2h0LAorKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICh4ICsgU0NST0xMX1VOSVRfWCkvU0NST0xMX1VOSVRfWCwKKyst ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoeSArIGxpbmVIZWlnaHQpL2xpbmVI ZWlnaHQsCisrKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHggKyBTQ1JPTExf VU5JVF9YKS8vU0NST0xMX1VOSVRfWCwKKysrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAoeSArIGxpbmVIZWlnaHQpLy9saW5lSGVpZ2h0LAorKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHNlbGYuR2V0U2Nyb2xsUG9zKHd4LkhPUklaT05UQUwpLAorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuR2V0U2Nyb2xsUG9zKHd4LlZFUlRJ Q0FMKSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUcnVlKQorK0BAIC05 Nzk3LDcgKzk3OTcsNyBAQCBkZWYgUmVjYWxjdWxhdGVQb3NpdGlvbnMoc2VsZiwgbm9SZWZyZXNo PUZhbHNlKToKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrICAjIEV2ZXJ5dGhp bmcgZml0cywgbm8gc2Vjb25kIHRyeSByZXF1aXJlZC4KKysgCisrICAgICAgICAgICAgICAgICBz ZWxmLlNldFNjcm9sbGJhcnMoU0NST0xMX1VOSVRfWCwgbGluZUhlaWdodCwKKystICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAoZW50aXJlV2lkdGggKyBTQ1JPTExfVU5JVF9YKS9T Q1JPTExfVU5JVF9YLAorKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbnRp cmVXaWR0aCArIFNDUk9MTF9VTklUX1gpLy9TQ1JPTExfVU5JVF9YLAorKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDAsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2VsZi5HZXRTY3JvbGxQb3Mod3guSE9SSVpPTlRBTCksCisrICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgMCwKK2RpZmYgLS1naXQgYS85MDk2NDI2NjAzMjcyNjcyZDlh Njc2ZThiY2RjYWRmMGExY2ZhMWEyLnBhdGNoIGIvOTA5NjQyNjYwMzI3MjY3MmQ5YTY3NmU4YmNk Y2FkZjBhMWNmYTFhMi5wYXRjaAorbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAu LmYwYjlmNWQKKy0tLSAvZGV2L251bGwKKysrKyBiLzkwOTY0MjY2MDMyNzI2NzJkOWE2NzZlOGJj ZGNhZGYwYTFjZmExYTIucGF0Y2gKK0BAIC0wLDAgKzEsMTQzIEBACisrRnJvbSA5MDk2NDI2NjAz MjcyNjcyZDlhNjc2ZThiY2RjYWRmMGExY2ZhMWEyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQor K0Zyb206IFJvYmluIER1bm4gPHJvYmluQGFsbGR1bm4uY29tPgorK0RhdGU6IFdlZCwgMjYgRmVi IDIwMjAgMTE6MTA6MjcgLTA4MDAKKytTdWJqZWN0OiBbUEFUQ0hdIEFkZCBfX2luZGV4X18gdG8g d3guV2luZG93SUQsIGFuZCBfX2Jvb2xfXyB0byB3eC5SZWdpb24KKysKKystLS0KKysgZXRnL3Jl Z2lvbi5weSAgICAgICAgICAgICAgfCAgNSArKystLQorKyBldGcvd2luZG93aWQucHkgICAgICAg ICAgICB8IDMyICsrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tCisrIHVuaXR0ZXN0cy90 ZXN0X3dpbmRvd2lkLnB5IHwgMjMgKysrKysrKysrKysrKysrKysrKysrLS0KKysgMyBmaWxlcyBj aGFuZ2VkLCA0MSBpbnNlcnRpb25zKCspLCAxOSBkZWxldGlvbnMoLSkKKysKKytkaWZmIC0tZ2l0 IGEvZXRnL3JlZ2lvbi5weSBiL2V0Zy9yZWdpb24ucHkKKytpbmRleCAwOTgyYzFmZTUuLmQ1YmM0 NTc1OSAxMDA2NDQKKystLS0gYS9ldGcvcmVnaW9uLnB5CisrKysrIGIvZXRnL3JlZ2lvbi5weQor K0BAIC04OCwxMSArODgsMTIgQEAgZGVmIG5leHQoc2VsZik6CisrICAgICBjLm11c3RIYXZlQXBw KCkKKysgICAgIGMuZmluZCgnb3BlcmF0b3IrKycpLmlnbm9yZSgpCisrIAorKy0gICAgIyBTSVAg bWFwcyBvcGVyYXRvciBib29sKCkgdG8gX19pbnRfXywgYnV0IENsYXNzaWMgdXNlZCBfX25vbnpl cm9fXy4gRG9lcworKy0gICAgIyBpdCBtYWtlIGFueSBkaWZmZXJlbmNlIGVpdGhlciB3YXk/Cisr ICAgICBjLmZpbmQoJ29wZXJhdG9yIGJvb2wnKS5pZ25vcmUoKQorKyAgICAgYy5hZGRDcHBNZXRo b2QoJ2ludCcsICdfX25vbnplcm9fXycsICcoKScsICdyZXR1cm4gKGludClzZWxmLT5vcGVyYXRv ciBib29sKCk7JywKKysgICAgICAgICAgICAgICAgICAgICdSZXR1cm5zIHRydWUgd2hpbGUgdGhl cmUgYXJlIHN0aWxsIHJlY3RhbmdsZXMgYXZhaWxhYmxlIGluIHRoZSBpdGVyYXRpb24uJykKKysr ICAgIGMuYWRkQ3BwTWV0aG9kKCdpbnQnLCAnX19ib29sX18nLCAnKCknLCAncmV0dXJuIChpbnQp c2VsZi0+b3BlcmF0b3IgYm9vbCgpOycsCisrKyAgICAgICAgICAgICAgICAgICAnUmV0dXJucyB0 cnVlIHdoaWxlIHRoZXJlIGFyZSBzdGlsbCByZWN0YW5nbGVzIGF2YWlsYWJsZSBpbiB0aGUgaXRl cmF0aW9uLicpCisrKworKyAKKysgICAgIGMuYWRkQ3BwTWV0aG9kKCd2b2lkJywgJ05leHQnLCAn KCknLCAnc2VsZi0+b3BlcmF0b3IrKygpOycsCisrICAgICAgICAgICAgICAgICAgICAnTW92ZSB0 aGUgaXRlcmF0b3IgdG8gdGhlIG5leHQgcmVjdGFuZ2xlIGluIHRoZSByZWdpb24uJykKKytkaWZm IC0tZ2l0IGEvZXRnL3dpbmRvd2lkLnB5IGIvZXRnL3dpbmRvd2lkLnB5CisraW5kZXggMjdiMDQx YjNkLi5kYTJlZDM5NWUgMTAwNjQ0CisrLS0tIGEvZXRnL3dpbmRvd2lkLnB5CisrKysrIGIvZXRn L3dpbmRvd2lkLnB5CisrQEAgLTUzLDEyICs1MywxMiBAQCBkZWYgcnVuKCk6CisrICAgICAgICAg ICAgICAgICBNZXRob2REZWYobmFtZT0nd3hXaW5kb3dJRFJlZicsIGNsYXNzTmFtZT0nd3hXaW5k b3dJRFJlZicsIGlzQ3Rvcj1UcnVlLAorKyAgICAgICAgICAgICAgICAgICAgIGJyaWVmRG9jPSdD cmVhdGUgcmVmZXJlbmNlIGZyb20gYW4gSUQnLAorKyAgICAgICAgICAgICAgICAgICAgIGl0ZW1z PVsgUGFyYW1EZWYodHlwZT0naW50JywgbmFtZT0naWQnKSBdKSwKKystICAgICAgICAgICAgICAg IAorKysKKysgICAgICAgICAgICAgICAgIE1ldGhvZERlZihuYW1lPSd3eFdpbmRvd0lEUmVmJywg Y2xhc3NOYW1lPSd3eFdpbmRvd0lEUmVmJywgaXNDdG9yPVRydWUsCisrICAgICAgICAgICAgICAg ICAgICAgYnJpZWZEb2M9J0NvcHkgYW4gSUQgcmVmZXJlbmNlJywKKysgICAgICAgICAgICAgICAg ICAgICBpdGVtcz1bIFBhcmFtRGVmKHR5cGU9J2NvbnN0IHd4V2luZG93SURSZWYmJywgbmFtZT0n aWRyZWYnKSBdKSwKKysgICAgICAgICAgICAgICAgIF0pLAorKy0gICAgICAgICAgICAKKysrCisr ICAgICAgICAgICAgIE1ldGhvZERlZihuYW1lPSd+d3hXaW5kb3dJRFJlZicsIGNsYXNzTmFtZT0n d3hXaW5kb3dJRFJlZicsIGlzRHRvcj1UcnVlKSwKKysgCisrICAgICAgICAgICAgIE1ldGhvZERl Zih0eXBlPSdpbnQnLCBuYW1lPSdHZXRWYWx1ZScsCisrQEAgLTczLDExICs3MywxMyBAQCBkZWYg cnVuKCk6CisrICAgICAgICAgICAgICIiIikKKysgCisrICAgICBrbGFzcy5hZGRDcHBNZXRob2Qo J2ludCcsICdfX2ludF9fJywgJygpJywKKystICAgICAgICBkb2M9IkFsaWFzIGZvciBHZXRWYWx1 ZSBhbGxvd2luZyB0aGUgSURSZWYgdG8gYmUgcGFzc2VkIGFzIHRoZSBXaW5kb3dJRCBwYXJhbWV0 ZXIgd2hlbiBjcmVhdGluZyB3aWRnZXRzIG9yIGV0Yy4iLAorKy0gICAgICAgIGJvZHk9IiIiXAor Ky0gICAgICAgICAgICByZXR1cm4gc2VsZi0+R2V0VmFsdWUoKTsKKystICAgICAgICAgICAgIiIi KQorKy0gICAgCisrKyAgICAgICAgZG9jPSJBbGlhcyBmb3IgR2V0VmFsdWUgYWxsb3dpbmcgdGhl IElEUmVmIHRvIGJlIHBhc3NlZCBhcyB0aGUgV2luZG93SUQgcGFyYW1ldGVyIHdoZW4gY3JlYXRp bmcgd2lkZ2V0cyBvciBvdGhlciBwbGFjZXMgYW4gaW50ZWdlciB0eXBlIGlzIG5lZWRlZC4iLAor KysgICAgICAgIGJvZHk9InJldHVybiBzZWxmLT5HZXRWYWx1ZSgpOyIpCisrKyAgICBrbGFzcy5h ZGRDcHBNZXRob2QoJ2ludCcsICdfX2luZGV4X18nLCAnKCknLAorKysgICAgICAgIGRvYz0iU2Vl IDptZXRoOmBfX2ludF9fYCIsCisrKyAgICAgICAgYm9keT0icmV0dXJuIHNlbGYtPkdldFZhbHVl KCk7IikKKysrCisrKworKyAgICAga2xhc3MuYWRkQ3BwTWV0aG9kKCdib29sJywgJ19fZXFfXycs ICcod3hXaW5kb3dJRCBpZCknLCAicmV0dXJuIHNlbGYtPkdldFZhbHVlKCkgPT0gaWQ7IikKKysg ICAgIGtsYXNzLmFkZENwcE1ldGhvZCgnYm9vbCcsICdfX25lX18nLCAnKHd4V2luZG93SUQgaWQp JywgInJldHVybiBzZWxmLT5HZXRWYWx1ZSgpICE9IGlkOyIpCisrICAgICBrbGFzcy5hZGRDcHBN ZXRob2QoJ2Jvb2wnLCAnX19sdF9fJywgJyh3eFdpbmRvd0lEIGlkKScsICJyZXR1cm4gc2VsZi0+ R2V0VmFsdWUoKSA8IGlkOyIpCisrQEAgLTkyLDE3ICs5NCwxNyBAQCBkZWYgcnVuKCk6CisrICAg ICAjIGFuZCBmaW5pc2ggaXQgdXAgYnkgYWRkaW5nIGl0IHRvIHRoZSBtb2R1bGUKKysgICAgIG1v ZHVsZS5hZGRJdGVtKGtsYXNzKQorKyAKKystICAgICMgTm93LCBsZXQncyBhZGQgYSBuZXcgUHl0 aG9uIGZ1bmN0aW9uIHRvIHRoZSBnbG9iYWwgc2NvcGUgdGhhdCByZXNlcnZlcyBhbiAKKystICAg ICMgSUQgKG9yIHJhbmdlKSBhbmQgcmV0dXJucyBhIHJlZiBvYmplY3QgZm9yIGl0LiAKKystICAg IG1vZHVsZS5hZGRQeUZ1bmN0aW9uKCdOZXdJZFJlZicsICcoY291bnQ9MSknLCAKKysrICAgICMg Tm93LCBsZXQncyBhZGQgYSBuZXcgUHl0aG9uIGZ1bmN0aW9uIHRvIHRoZSBnbG9iYWwgc2NvcGUg dGhhdCByZXNlcnZlcyBhbgorKysgICAgIyBJRCAob3IgcmFuZ2UpIGFuZCByZXR1cm5zIGEgcmVm IG9iamVjdCBmb3IgaXQuCisrKyAgICBtb2R1bGUuYWRkUHlGdW5jdGlvbignTmV3SWRSZWYnLCAn KGNvdW50PTEpJywKKysgICAgICAgICBkb2M9IiIiXAorKy0gICAgICAgICAgICBSZXNlcnZlcyBh IG5ldyBXaW5kb3cgSUQgKG9yIHJhbmdlIG9mIFdpbmRvd0lEcykgYW5kIHJldHVybnMgYSAKKyst ICAgICAgICAgICAgOmNsYXNzOmB3eC5XaW5kb3dJRFJlZmAgb2JqZWN0IChvciBsaXN0IG9mIHRo ZW0pIHRoYXQgd2lsbCBoZWxwIAorKysgICAgICAgICAgICBSZXNlcnZlcyBhIG5ldyBXaW5kb3cg SUQgKG9yIHJhbmdlIG9mIFdpbmRvd0lEcykgYW5kIHJldHVybnMgYQorKysgICAgICAgICAgICA6 Y2xhc3M6YHd4LldpbmRvd0lEUmVmYCBvYmplY3QgKG9yIGxpc3Qgb2YgdGhlbSkgdGhhdCB3aWxs IGhlbHAKKysgICAgICAgICAgICAgbWFuYWdlIHRoZSByZXNlcnZhdGlvbiBvZiB0aGF0IElELgor KyAKKystICAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBpcyBpbnRlbmRlZCB0byBiZSBhIGRyb3At aW4gcmVwbGFjZW1lbnQgb2YgdGhlIG9sZCAKKystICAgICAgICAgICAgYW5kIGRlcHJlY2F0ZWQg OmZ1bmM6YHd4Lk5ld0lkYCBmdW5jdGlvbiwgd2l0aCB0aGUgYWRkZWQgYmVuZWZpdCAKKystICAg ICAgICAgICAgdGhhdCB0aGUgSUQgc2hvdWxkIG5ldmVyIGNvbmZsaWN0IHdpdGggYW4gaW4tdXNl IElEIG9yIG90aGVyIElEcyAKKysrICAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBpcyBpbnRlbmRl ZCB0byBiZSBhIGRyb3AtaW4gcmVwbGFjZW1lbnQgb2YgdGhlIG9sZAorKysgICAgICAgICAgICBh bmQgZGVwcmVjYXRlZCA6ZnVuYzpgd3guTmV3SWRgIGZ1bmN0aW9uLCB3aXRoIHRoZSBhZGRlZCBi ZW5lZml0CisrKyAgICAgICAgICAgIHRoYXQgdGhlIElEIHNob3VsZCBuZXZlciBjb25mbGljdCB3 aXRoIGFuIGluLXVzZSBJRCBvciBvdGhlciBJRHMKKysgICAgICAgICAgICAgZ2VuZXJhdGVkIGJ5 IHRoaXMgZnVuY3Rpb24uCisrICAgICAgICAgICAgICIiIiwKKysgICAgICAgICBib2R5PSIiIlwK KytkaWZmIC0tZ2l0IGEvdW5pdHRlc3RzL3Rlc3Rfd2luZG93aWQucHkgYi91bml0dGVzdHMvdGVz dF93aW5kb3dpZC5weQorK2luZGV4IDQ1OTNlNWE2OS4uZmMzNmM5ZWI4IDEwMDY0NAorKy0tLSBh L3VuaXR0ZXN0cy90ZXN0X3dpbmRvd2lkLnB5CisrKysrIGIvdW5pdHRlc3RzL3Rlc3Rfd2luZG93 aWQucHkKKytAQCAtMzEsOSArMzEsOSBAQCBkZWYgdGVzdF9uZXdJZFJlZjAyKHNlbGYpOgorKyAg ICAgZGVmIHRlc3RfbmV3SWRSZWYwMyhzZWxmKToKKysgICAgICAgICAiIiJDaGVjayB0aGF0IEF1 dG8gSUQgTWFuYWdlbWVudCBpcyBlbmFibGVkICgtLWVuYWJsZS1hdXRvaWRtYW4pIiIiCisrICAg ICAgICAgIyBUaGlzIHRlc3QgaXMgZXhwZWN0ZWQgdG8gZmFpbCBpZiBhdXRvSUQgbWFuZ2FnZW1l bnQgaXMgdHVybmVkIG9uCisrLSAgICAgICAgIyBiZWNhdXNlIGEgcmVmZXJlbmNlIHRvIHRoZSBJ RCBpcyBub3QgYmVpbmcgc2F2ZWQsIHNvIGl0IHdpbGwgYmUgCisrKyAgICAgICAgIyBiZWNhdXNl IGEgcmVmZXJlbmNlIHRvIHRoZSBJRCBpcyBub3QgYmVpbmcgc2F2ZWQsIHNvIGl0IHdpbGwgYmUK KysgICAgICAgICAjIHVucmVzZXJ2ZWQgd2hlbiB0aGUgZmlyc3Qgd2lkZ2V0IGlzIGRlc3Ryb3ll ZC4KKystICAgICAgICAKKysrCisrICAgICAgICAgaWQgPSB3eC5XaW5kb3cuTmV3Q29udHJvbElk KCkKKysgICAgICAgICBiID0gd3guQnV0dG9uKHNlbGYuZnJhbWUsIGlkLCAnYnV0dG9uJykKKysg ICAgICAgICBiLkRlc3Ryb3koKQorK0BAIC03NSw2ICs3NSw3IEBAIGRlZiB0ZXN0X1dpbmRvd0lE UmVmMDEoc2VsZik6CisrICAgICAgICAgdmFsID0gcmVmMSA8PSByZWYyCisrICAgICAgICAgYXNz ZXJ0IHR5cGUodmFsKSA9PSBib29sCisrIAorKysKKysgICAgIGRlZiB0ZXN0X1dpbmRvd0lEUmVm MDIoc2VsZik6CisrICAgICAgICAgZCA9IHt3eC5OZXdJZFJlZigpOiAnb25lJywKKysgICAgICAg ICAgICAgIHd4Lk5ld0lkUmVmKCk6ICd0d28nfQorK0BAIC04Miw2ICs4MywyNCBAQCBkZWYgdGVz dF9XaW5kb3dJRFJlZjAyKHNlbGYpOgorKyAgICAgICAgIGZvciBrIGluIGtleXM6CisrICAgICAg ICAgICAgIHZhbCA9IGRba10KKysgCisrKworKysgICAgZGVmIHRlc3RfV2luZG93SURSZWYwMyhz ZWxmKToKKysrICAgICAgICAjIEVuc3VyZSB3eC5XaW5kb3dJRFJlZiBjYW4gYmUgY29udmVydGVk IHRvIGludCB3aXRob3V0IHdhcm5pbmcgd2hlbgorKysgICAgICAgICMgbWFraW5nIGEgY2FsbCB0 byB3YXJycGVkIG1ldGhvZC4gSW4gUHkzLjgrIHRoaXMgbWVhbnMgdGhlcmUgbmVlZHMgdG8KKysr ICAgICAgICAjIGJlIGFuIF9faW5kZXhfXyBtZXRob2QuCisrKworKysgICAgICAgICMgVHVybiB3 YXJuaW5ncyBpbnRvIGV4Y2VwdGlvbnMgc28gdGhpcyB0ZXN0IHdpbGwgZmFpbCBpZiB0aGVyZSBp cworKysgICAgICAgICMgYSB3YXJuaW5nCisrKyAgICAgICAgaW1wb3J0IHdhcm5pbmdzCisrKyAg ICAgICAgd2FybmluZ3Muc2ltcGxlZmlsdGVyKCdlcnJvcicpCisrKworKysgICAgICAgIHdpZCA9 IHd4Lk5ld0lkUmVmKCkKKysrICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZSh3aWQsIHd4LldpbmRv d0lEUmVmKQorKysKKysrICAgICAgICBiID0gd3guQnV0dG9uKHNlbGYuZnJhbWUsIHdpZCwgJ2J1 dHRvbicpCisrKyAgICAgICAgYXNzZXJ0IGIuR2V0SWQoKSA9PSB3aWQuR2V0SWQoKQorKysKKysr CisrICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysgCisrIAorIAorZGlmZiAtLWdpdCBhL3B5dGhvbjMu MTAtZml4ZXMucGF0Y2ggYi9weXRob24zLjEwLWZpeGVzLnBhdGNoCituZXcgZmlsZSBtb2RlIDEw MDY0NAoraW5kZXggMDAwMDAwMC4uMjllOGM2MQorLS0tIC9kZXYvbnVsbAorKysrIGIvcHl0aG9u My4xMC1maXhlcy5wYXRjaAorQEAgLTAsMCArMSwzMDM0IEBACisrRnJvbSAxNzNkMDc5NjgxMGJi NjVkZTliZGZkYzY5NDFkMjRhMDQ2MjhmNmMyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorK0Zy b206IFNjb3R0IFRhbGJlcnQgPHN3dEB0ZWNoaWUubmV0PgorK0RhdGU6IFdlZCwgMSBEZWMgMjAy MSAxNDoxOTowMCAtMDUwMAorK1N1YmplY3Q6IFtQQVRDSF0gRml4IGEgYnVuY2ggb2YgUHl0aG9u IDMuMTAgaXNzdWVzIHdpdGggcHVyZS1QeXRob24gY2xhc3NlcworKyBhbmQgZGVtb3MKKysKKytJ biBQeXRob24gMy4xMCwgYSBjaGFuZ2VbMV0gd2FzIGltcGxlbWVudGVkIHdoZXJlIGV4dGVuc2lv biBmdW5jdGlvbnMKKyt0aGF0IHRha2UgaW50ZWdlciBhcmd1bWVudHMgd2lsbCBubyBsb25nZXIg c2lsZW50bHkgYWNjZXB0IG5vbi1pbnRlZ2VyCisrYXJndW1lbnRzIChlLmcuLCBmbG9hdHMpIHRo YXQgY2FuIG9ubHkgYmUgY29udmVydGVkIHRvIGludGVnZXJzIHdpdGggYQorK2xvc3Mgb2YgcHJl Y2lzaW9uLiAgVGhpcyBQUiBmaXhlcyBtb3N0IG9mIHRoZXNlIGlzc3VlcyBpbiB0aGUgcHVyZS1Q eXRob24KKytjbGFzc2VzIGFuZCBkZW1vcyBieSBleHBsaWNpdGx5IGNvbnZlcnRpbmcgdGhlIHBh cmFtZXRlcnMgdG8gaW50IGJlZm9yZQorK3Bhc3NpbmcgdGhlbSB0byB3eFdpZGdldHMuICBUaGVy ZSBpcyBsb3NzIG9mIHByZWNpc2lvbiwgYnV0IHRoaXMgd2FzCisraGFwcGVuaW5nIGJlZm9yZSAo YXV0b21hdGljYWxseSkgYW55d2F5IGFzIG1vc3Qgd3hXaWRnZXRzIERldmljZUNvbnRleHQKKytm dW5jdGlvbnMgb3BlcmF0ZSB1c2luZyBpbnRlZ2Vycy4KKysKKytBZGRpdGlvbmFsbHksIHRoZSBQ UiBmaXhlcyBhIGZldyBzaXppbmcgaXNzdWVzLCBtb3N0bHkgd2l0aCBTcGluQ3RybHMgYmVpbmcK Kyt0b28gc21hbGwgb24gR1RLMy4KKysKKytUaGlzIGlzIGFuIGV4YW1wbGUgb2YgdGhlIHJlbGV2 YW50IGV4Y2VwdGlvbjoKKytUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CisrICBG aWxlICIvdXNyL2xpYjY0L3B5dGhvbjMuMTAvc2l0ZS1wYWNrYWdlcy93eC9saWIvYWd3L3B5Z2F1 Z2UucHkiLCBsaW5lIDM1NSwgaW4gT25QYWludAorKyAgICByLndpZHRoID0gdworK1R5cGVFcnJv cjogJ2Zsb2F0JyBvYmplY3QgY2Fubm90IGJlIGludGVycHJldGVkIGFzIGFuIGludGVnZXIKKysK KytGaXhlcyAjMjAzOC4KKysKKytbMV0gaHR0cHM6Ly9idWdzLnB5dGhvbi5vcmcvaXNzdWUzNzk5 OQorKy0tLQorKyBkZW1vL0dyaWRMYWJlbFJlbmRlcmVyLnB5ICAgICAgICAgICAgICAgfCAgIDQg Ky0KKysgZGVtby9NYXNrLnB5ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA0ICstCisr IGRlbW8vT3ZlcmxheS5weSAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMSAtCisrIGRlbW8v UGVuQW5kQnJ1c2hTdHlsZXMucHkgICAgICAgICAgICAgICB8ICAgMiArLQorKyBkZW1vL1BvcHVw V2luZG93LnB5ICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KKysgZGVtby9QcmludEZyYW1l d29yay5weSAgICAgICAgICAgICAgICAgIHwgICAyICstCisrIGRlbW8vUHJvcGVydHlHcmlkLnB5 ICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQorKyBkZW1vL1NpemVycy5weSAgICAgICAgICAg ICAgICAgICAgICAgICAgfCAgIDIgKy0KKysgZGVtby9VSUFjdGlvblNpbXVsYXRvci5weSAgICAg ICAgICAgICAgIHwgICAyICstCisrIGRlbW8vYWd3L0FVSS5weSAgICAgICAgICAgICAgICAgICAg ICAgICB8ICAzMiArKystLS0tCisrIGRlbW8vYWd3L01hY0xhcmdlRGVtby5weSAgICAgICAgICAg ICAgICB8ICAgNCArLQorKyBkZW1vL2Fndy9QZWFrTWV0ZXIucHkgICAgICAgICAgICAgICAgICAg fCAgIDYgKy0KKysgZGVtby9hZ3cvUGVyc2lzdGVudENvbnRyb2xzLnB5ICAgICAgICAgIHwgICAy ICstCisrIGRlbW8vYWd3L1JpYmJvbkJhci5weSAgICAgICAgICAgICAgICAgICB8ICAgMiArLQor KyBkZW1vL2Fndy9TcGVlZE1ldGVyLnB5ICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KKysgZGVt by9hZ3cvU3VwZXJUb29sVGlwLnB5ICAgICAgICAgICAgICAgIHwgICAzICstCisrIGRlbW8vYWd3 L1RodW1iRGVtb0NvbmZpZy5weSAgICAgICAgICAgICB8ICAgMSArCisrIGRlbW8vYWd3L1VsdGlt YXRlUmVwb3J0RGVtby5weSAgICAgICAgICB8ICAgOCArLQorKyBkZW1vL2Fndy9XaW5kb3dzN0V4 cGxvcmVyX0NvbnRlbnRzLnB5ICAgfCAgMTYgKystLQorKyBkZW1vL2Fndy9ab29tQmFyLnB5ICAg ICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KKysgd3gvbGliL2Fndy9hZHZhbmNlZHNwbGFzaC5w eSAgICAgICAgICAgIHwgICAyICstCisrIHd4L2xpYi9hZ3cvYXVpL2F1aV91dGlsaXRpZXMucHkg ICAgICAgICB8ICAgNCArLQorKyB3eC9saWIvYWd3L2F1aS9hdWlib29rLnB5ICAgICAgICAgICAg ICAgfCAgIDQgKy0KKysgd3gvbGliL2Fndy9iYWxsb29udGlwLnB5ICAgICAgICAgICAgICAgIHwg ICA0ICstCisrIHd4L2xpYi9hZ3cvZmxhdG1lbnUucHkgICAgICAgICAgICAgICAgICB8ICA2MiAr KysrKystLS0tLS0tCisrIHd4L2xpYi9hZ3cvZmxhdG5vdGVib29rLnB5ICAgICAgICAgICAgICB8 ICAxMCArLS0KKysgd3gvbGliL2Fndy9mbG9hdHNwaW4ucHkgICAgICAgICAgICAgICAgIHwgICAy ICstCisrIHd4L2xpYi9hZ3cvZ3JhZGllbnRidXR0b24ucHkgICAgICAgICAgICB8ICAgOCArLQor KyB3eC9saWIvYWd3L2h5cGVydHJlZWxpc3QucHkgICAgICAgICAgICAgfCAgIDIgKy0KKysgd3gv bGliL2Fndy9rbm9iY3RybC5weSAgICAgICAgICAgICAgICAgIHwgIDEyICstLQorKyB3eC9saWIv YWd3L2xhYmVsYm9vay5weSAgICAgICAgICAgICAgICAgfCAgMzIgKysrLS0tLQorKyB3eC9saWIv YWd3L3BlYWttZXRlci5weSAgICAgICAgICAgICAgICAgfCAgIDIgKy0KKysgd3gvbGliL2Fndy9w eWdhdWdlLnB5ICAgICAgICAgICAgICAgICAgIHwgICA0ICstCisrIHd4L2xpYi9hZ3cvcmliYm9u L2FydF9hdWkucHkgICAgICAgICAgICB8ICAyMiArKy0tLQorKyB3eC9saWIvYWd3L3JpYmJvbi9h cnRfaW50ZXJuYWwucHkgICAgICAgfCAgMTIgKy0tCisrIHd4L2xpYi9hZ3cvcmliYm9uL2FydF9t c3cucHkgICAgICAgICAgICB8ICA4OCArKysrKysrKystLS0tLS0tLS0tCisrIHd4L2xpYi9hZ3cv cmliYm9uL2Jhci5weSAgICAgICAgICAgICAgICB8ICAgNCArLQorKyB3eC9saWIvYWd3L3JpYmJv bi9idXR0b25iYXIucHkgICAgICAgICAgfCAgIDYgKy0KKysgd3gvbGliL2Fndy9yaWJib24vZ2Fs bGVyeS5weSAgICAgICAgICAgIHwgICA4ICstCisrIHd4L2xpYi9hZ3cvcmliYm9uL3BhbmVsLnB5 ICAgICAgICAgICAgICB8ICAxNiArKy0tCisrIHd4L2xpYi9hZ3cvcmliYm9uL3Rvb2xiYXIucHkg ICAgICAgICAgICB8ICAgMiArLQorKyB3eC9saWIvYWd3L3Njcm9sbGVkdGh1bWJuYWlsLnB5ICAg ICAgICAgfCAgMjQgKysrLS0tCisrIHd4L2xpYi9hZ3cvc2hhcGVkYnV0dG9uLnB5ICAgICAgICAg ICAgICB8ICAxMCArLS0KKysgd3gvbGliL2Fndy9zcGVlZG1ldGVyLnB5ICAgICAgICAgICAgICAg IHwgIDcyICsrKysrKysrKy0tLS0tLS0KKysgd3gvbGliL2Fndy9zdXBlcnRvb2x0aXAucHkgICAg ICAgICAgICAgIHwgIDIwICsrLS0tCisrIHd4L2xpYi9hZ3cvdG9hc3RlcmJveC5weSAgICAgICAg ICAgICAgICB8ICAgNCArLQorKyB3eC9saWIvYWd3L3VsdGltYXRlbGlzdGN0cmwucHkgICAgICAg ICAgfCAgMjAgKystLS0KKysgd3gvbGliL2Fndy94bHNncmlkLnB5ICAgICAgICAgICAgICAgICAg IHwgICA0ICstCisrIHd4L2xpYi9hZ3cvem9vbWJhci5weSAgICAgICAgICAgICAgICAgICB8ICAx MCArLS0KKysgd3gvbGliL2FuYWxvZ2Nsb2NrL2FuYWxvZ2Nsb2NrLnB5ICAgICAgIHwgICAyICst CisrIHd4L2xpYi9hbmFsb2djbG9jay9oZWxwZXJzLnB5ICAgICAgICAgICB8ICAyMiArKy0tLQor KyB3eC9saWIvYW5hbG9nY2xvY2svc2V0dXAucHkgICAgICAgICAgICAgfCAgIDYgKy0KKysgd3gv bGliL2J1dHRvbnMucHkgICAgICAgICAgICAgICAgICAgICAgIHwgIDEwICstLQorKyB3eC9saWIv Y29sb3VyY2hvb3Nlci9weWNvbG91cmNob29zZXIucHkgfCAgIDQgKy0KKysgd3gvbGliL2NvbG91 cmNob29zZXIvcHlwYWxldHRlLnB5ICAgICAgIHwgICAyICstCisrIHd4L2xpYi9mbG9hdGNhbnZh cy9GQ09iamVjdHMucHkgICAgICAgICB8ICAgOCArLQorKyB3eC9saWIvZ2l6bW9zL2xlZGN0cmwu cHkgICAgICAgICAgICAgICAgfCAgIDggKy0KKysgd3gvbGliL2ltYWdlYnJvd3Nlci5weSAgICAg ICAgICAgICAgICAgIHwgICA0ICstCisrIHd4L2xpYi9vZ2wvYmFzaWMucHkgICAgICAgICAgICAg ICAgICAgICB8ICAxMCArLS0KKysgd3gvbGliL29nbC9ibXBzaGFwZS5weSAgICAgICAgICAgICAg ICAgIHwgICAyICstCisrIHd4L2xpYi9vZ2wvY29tcG9zaXQucHkgICAgICAgICAgICAgICAgICB8 ICAgNCArLQorKyB3eC9saWIvb2dsL2RpdmlkZWQucHkgICAgICAgICAgICAgICAgICAgfCAgIDIg Ky0KKysgd3gvbGliL29nbC9saW5lcy5weSAgICAgICAgICAgICAgICAgICAgIHwgICAyICstCisr IHd4L2xpYi9vZ2wvb2dsbWlzYy5weSAgICAgICAgICAgICAgICAgICB8ICAgNCArLQorKyB3eC9s aWIvcGxvdC9leGFtcGxlcy9kZW1vLnB5ICAgICAgICAgICAgfCAgIDQgKy0KKysgd3gvbGliL3Bs b3QvcGxvdGNhbnZhcy5weSAgICAgICAgICAgICAgIHwgMTEwICsrKysrKysrKysrKy0tLS0tLS0t LS0tLQorKyB3eC9saWIvcGxvdC9wb2x5b2JqZWN0cy5weSAgICAgICAgICAgICAgfCAgMjIgKysr LS0KKysgd3gvbGliL3BvcHVwY3RsLnB5ICAgICAgICAgICAgICAgICAgICAgIHwgICAyICstCisr IHd4L2xpYi9zY3JvbGxlZHBhbmVsLnB5ICAgICAgICAgICAgICAgICB8ICAgMiArLQorKyB3eC9s aWIvdGhyb2JiZXIucHkgICAgICAgICAgICAgICAgICAgICAgfCAgIDYgKy0KKysgd3gvbGliL3Rp Y2tlci5weSAgICAgICAgICAgICAgICAgICAgICAgIHwgICA0ICstCisrIDcxIGZpbGVzIGNoYW5n ZWQsIDQxMSBpbnNlcnRpb25zKCspLCAzOTggZGVsZXRpb25zKC0pCisrCisrZGlmZiAtLWdpdCBh L2RlbW8vR3JpZExhYmVsUmVuZGVyZXIucHkgYi9kZW1vL0dyaWRMYWJlbFJlbmRlcmVyLnB5Cisr aW5kZXggNzk0ZGQ2NGU4Li4xNDQwZWY0MWIgMTAwNjQ0CisrLS0tIGEvZGVtby9HcmlkTGFiZWxS ZW5kZXJlci5weQorKysrKyBiL2RlbW8vR3JpZExhYmVsUmVuZGVyZXIucHkKKytAQCAtNDYsOCAr NDYsOCBAQCBkZWYgX19pbml0X18oc2VsZik6CisrICAgICAgICAgc2VsZi5fYm1wID0gaW1hZ2Vz LlNtaWxlcy5HZXRCaXRtYXAoKQorKyAKKysgICAgIGRlZiBEcmF3KHNlbGYsIGdyaWQsIGRjLCBy ZWN0LCByYyk6CisrLSAgICAgICAgeCA9IHJlY3QubGVmdCArIChyZWN0LndpZHRoIC0gc2VsZi5f Ym1wLkdldFdpZHRoKCkpIC8gMgorKy0gICAgICAgIHkgPSByZWN0LnRvcCArIChyZWN0LmhlaWdo dCAtIHNlbGYuX2JtcC5HZXRIZWlnaHQoKSkgLyAyCisrKyAgICAgICAgeCA9IHJlY3QubGVmdCAr IChyZWN0LndpZHRoIC0gc2VsZi5fYm1wLkdldFdpZHRoKCkpIC8vIDIKKysrICAgICAgICB5ID0g cmVjdC50b3AgKyAocmVjdC5oZWlnaHQgLSBzZWxmLl9ibXAuR2V0SGVpZ2h0KCkpIC8vIDIKKysg ICAgICAgICBkYy5EcmF3Qml0bWFwKHNlbGYuX2JtcCwgeCwgeSwgVHJ1ZSkKKysgCisrIAorK2Rp ZmYgLS1naXQgYS9kZW1vL01hc2sucHkgYi9kZW1vL01hc2sucHkKKytpbmRleCAxMDliOGYzMGIu LmU5MjRmOTViOSAxMDA2NDQKKystLS0gYS9kZW1vL01hc2sucHkKKysrKysgYi9kZW1vL01hc2su cHkKKytAQCAtOTAsOSArOTAsOSBAQCBkZWYgT25QYWludCAoc2VsZiwgZSk6CisrIAorKyAgICAg ICAgIGZvciB0ZXh0LCBjb2RlIGluIGxvZ2ljTGlzdDoKKysgICAgICAgICAgICAgeCx5ID0gMTIw KzE1MCooaSU0KSwgMjArMTAwKihpLzQpCisrLSAgICAgICAgICAgIGRjLkRyYXdUZXh0KHRleHQs IHgsIHktMjApCisrKyAgICAgICAgICAgIGRjLkRyYXdUZXh0KHRleHQsIHgsIGludCh5LTIwKSkK KysgICAgICAgICAgICAgbWRjLlNlbGVjdE9iamVjdChzZWxmLmJtcF93aXRoY29sb3VybWFzaykK KystICAgICAgICAgICAgZGMuQmxpdCh4LHksIGN4LGN5LCBtZGMsIDAsMCwgY29kZSwgVHJ1ZSkK KysrICAgICAgICAgICAgZGMuQmxpdCh4LGludCh5KSwgY3gsY3ksIG1kYywgMCwwLCBjb2RlLCBU cnVlKQorKyAgICAgICAgICAgICBpID0gaSArIDEKKysgCisrIAorK2RpZmYgLS1naXQgYS9kZW1v L092ZXJsYXkucHkgYi9kZW1vL092ZXJsYXkucHkKKytpbmRleCA2NTE2NGNkODQuLmZhNjViZTAw MyAxMDA2NDQKKystLS0gYS9kZW1vL092ZXJsYXkucHkKKysrKysgYi9kZW1vL092ZXJsYXkucHkK KytAQCAtNTYsNyArNTYsNiBAQCBkZWYgX19pbml0X18oc2VsZiwgcGFyZW50LCBsb2cpOgorKyAg ICAgICAgIHNlbGYucGVuc3R5bGVzQ29tYm8uU2V0VG9vbFRpcCgnUGVuIFN0eWxlJykKKysgCisr ICAgICAgICAgc2VsZi5vdmVybGF5UGVuV2lkdGggPSB3eC5TcGluQ3RybChzZWxmLCAtMSwgdmFs dWU9JycsCisrLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXpl PSg3NSwgLTEpLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c3R5bGU9d3guU1BfQVJST1dfS0VZUywKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIG1pbj0xLCBtYXg9MjQsIGluaXRpYWw9MSkKKysgICAgICAgICBzZWxmLm92 ZXJsYXlQZW5XaWR0aC5TZXRUb29sVGlwKCdQZW4gV2lkdGgnKQorK2RpZmYgLS1naXQgYS9kZW1v L1BlbkFuZEJydXNoU3R5bGVzLnB5IGIvZGVtby9QZW5BbmRCcnVzaFN0eWxlcy5weQorK2luZGV4 IDI0MDQwYjFmYy4uMTE4M2Y2ODRhIDEwMDY0NAorKy0tLSBhL2RlbW8vUGVuQW5kQnJ1c2hTdHls ZXMucHkKKysrKysgYi9kZW1vL1BlbkFuZEJydXNoU3R5bGVzLnB5CisrQEAgLTEwMCw3ICsxMDAs NyBAQCBkZWYgT25QYWludChzZWxmLCBldmVudCk6CisrIAorKyAgICAgICAgIGRjLlNldFBlbihw ZW4pCisrICAgICAgICAgeSA9IGxhYmVsSGVpZ2h0ICsgKGhlaWdodCAtIGxhYmVsSGVpZ2h0KS8y CisrLSAgICAgICAgZGMuRHJhd0xpbmUoNSwgeSwgd2lkdGgtNSwgeSkKKysrICAgICAgICBkYy5E cmF3TGluZSg1LCBpbnQoeSksIHdpZHRoLTUsIGludCh5KSkKKysgCisrIAorKyBjbGFzcyBCcnVz aFBhbmVsKEJhc2VQYW5lbCk6CisrZGlmZiAtLWdpdCBhL2RlbW8vUG9wdXBXaW5kb3cucHkgYi9k ZW1vL1BvcHVwV2luZG93LnB5CisraW5kZXggZDhlMTc1NTc2Li5iNTRiOTg3MGQgMTAwNjQ0Cisr LS0tIGEvZGVtby9Qb3B1cFdpbmRvdy5weQorKysrKyBiL2RlbW8vUG9wdXBXaW5kb3cucHkKKytA QCAtODksNyArODksNyBAQCBkZWYgX19pbml0X18oc2VsZiwgcGFyZW50LCBzdHlsZSwgbG9nKToK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAiKG9yIGl0cyBmaXJzdCBjaGlsZCkgbG9zZXMg Zm9jdXMgaW4gXG4iCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgImFueSBvdGhlciB3YXku IikKKysgICAgICAgICBidG4gPSB3eC5CdXR0b24ocGFuZWwsIC0xLCAiUHJlc3MgTWUiKQorKy0g ICAgICAgIHNwaW4gPSB3eC5TcGluQ3RybChwYW5lbCwgLTEsICJIZWxsbyIsIHNpemU9KDEwMCwt MSkpCisrKyAgICAgICAgc3BpbiA9IHd4LlNwaW5DdHJsKHBhbmVsLCAtMSwgIkhlbGxvIikKKysg ICAgICAgICBidG4uQmluZCh3eC5FVlRfQlVUVE9OLCBzZWxmLk9uQnV0dG9uKQorKyAKKysgICAg ICAgICBzaXplciA9IHd4LkJveFNpemVyKHd4LlZFUlRJQ0FMKQorK2RpZmYgLS1naXQgYS9kZW1v L1ByaW50RnJhbWV3b3JrLnB5IGIvZGVtby9QcmludEZyYW1ld29yay5weQorK2luZGV4IGU3YTI5 YTA3Ny4uZjA4NzNhZTk0IDEwMDY0NAorKy0tLSBhL2RlbW8vUHJpbnRGcmFtZXdvcmsucHkKKysr KysgYi9kZW1vL1ByaW50RnJhbWV3b3JrLnB5CisrQEAgLTgxLDcgKzgxLDcgQEAgZGVmIE9uUHJp bnRQYWdlKHNlbGYsIHBhZ2UpOgorKyAKKysgICAgICAgICAjLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyAgICAgICAgIHNlbGYuY2FudmFzLkRvRHJhd2luZyhk YywgVHJ1ZSkKKystICAgICAgICBkYy5EcmF3VGV4dCgiUGFnZTogJWQiICUgcGFnZSwgbWFyZ2lu WC8yLCBtYXhZLW1hcmdpblkpCisrKyAgICAgICAgZGMuRHJhd1RleHQoIlBhZ2U6ICVkIiAlIHBh Z2UsIG1hcmdpblgvLzIsIG1heFktbWFyZ2luWSkKKysgCisrICAgICAgICAgcmV0dXJuIFRydWUK KysgCisrZGlmZiAtLWdpdCBhL2RlbW8vUHJvcGVydHlHcmlkLnB5IGIvZGVtby9Qcm9wZXJ0eUdy aWQucHkKKytpbmRleCBjNTZlMDhiNjAuLmZiZWYyOWUzMSAxMDA2NDQKKystLS0gYS9kZW1vL1By b3BlcnR5R3JpZC5weQorKysrKyBiL2RlbW8vUHJvcGVydHlHcmlkLnB5CisrQEAgLTE1MCw3ICsx NTAsNyBAQCBkZWYgX0NvbnZlcnRWYWx1ZShzZWxmLCB2YWx1ZSk6CisrICAgICAgICAgIiIiIFV0 aWxpdHkgY29udmVydCBhcmJpdHJhcnkgdmFsdWUgdG8gYSByZWFsIHd4LlNpemUuCisrICAgICAg ICAgIiIiCisrICAgICAgICAgaW1wb3J0IGNvbGxlY3Rpb25zCisrLSAgICAgICAgaWYgaXNpbnN0 YW5jZSh2YWx1ZSwgY29sbGVjdGlvbnMuU2VxdWVuY2UpIG9yIGhhc2F0dHIodmFsdWUsICdfX2dl dGl0ZW1fXycpOgorKysgICAgICAgIGlmIGlzaW5zdGFuY2UodmFsdWUsIGNvbGxlY3Rpb25zLmFi Yy5TZXF1ZW5jZSkgb3IgaGFzYXR0cih2YWx1ZSwgJ19fZ2V0aXRlbV9fJyk6CisrICAgICAgICAg ICAgIHZhbHVlID0gd3guU2l6ZSgqdmFsdWUpCisrICAgICAgICAgcmV0dXJuIHZhbHVlCisrIAor K2RpZmYgLS1naXQgYS9kZW1vL1NpemVycy5weSBiL2RlbW8vU2l6ZXJzLnB5CisraW5kZXggNmFi YWJlZGU5Li5hMDI1MDUwZjEgMTAwNjQ0CisrLS0tIGEvZGVtby9TaXplcnMucHkKKysrKysgYi9k ZW1vL1NpemVycy5weQorK0BAIC00NSw3ICs0NSw3IEBAIGRlZiBPblBhaW50KHNlbGYsIGV2dCk6 CisrICAgICAgICAgZGMgPSB3eC5QYWludERDKHNlbGYpCisrICAgICAgICAgdyxoID0gZGMuR2V0 VGV4dEV4dGVudChzZWxmLnRleHQpCisrICAgICAgICAgZGMuQ2xlYXIoKQorKy0gICAgICAgIGRj LkRyYXdUZXh0KHNlbGYudGV4dCwgKHN6LndpZHRoLXcpLzIsIChzei5oZWlnaHQtaCkvMikKKysr ICAgICAgICBkYy5EcmF3VGV4dChzZWxmLnRleHQsIChzei53aWR0aC13KS8vMiwgKHN6LmhlaWdo dC1oKS8vMikKKysgCisrICAgICBkZWYgT25TaXplKHNlbGYsIGV2dCk6CisrICAgICAgICAgc2Vs Zi5SZWZyZXNoKCkKKytkaWZmIC0tZ2l0IGEvZGVtby9VSUFjdGlvblNpbXVsYXRvci5weSBiL2Rl bW8vVUlBY3Rpb25TaW11bGF0b3IucHkKKytpbmRleCBjYmJhMTRmNWMuLjBhNmZkMDIzNCAxMDA2 NDQKKystLS0gYS9kZW1vL1VJQWN0aW9uU2ltdWxhdG9yLnB5CisrKysrIGIvZGVtby9VSUFjdGlv blNpbXVsYXRvci5weQorK0BAIC04OCw3ICs4OCw3IEBAIGRlZiBfcGxheWJhY2tLZXkoc2VsZiwg ZXZ0VHlwZSwga2V5LCBtb2RpZmllcnMpOgorKyAKKysgICAgIGRlZiBfc2V0TmV4dEtleUV2ZW50 KHNlbGYpOgorKyAgICAgICAgIGV2dFR5cGUsIGtleSwgbW9kaWZpZXJzLCBtaWxsaSA9IHNlbGYu X3BsYXliYWNrRXZlbnRzLnBvcCgwKQorKy0gICAgICAgIG1pbGxpID0gbWF4KG1pbGxpLzIsIDEp ICMgcGxheSBiYWNrIGZhc3RlciB0aGFuIGl0IHdhcyByZWNvcmRlZAorKysgICAgICAgIG1pbGxp ID0gbWF4KG1pbGxpLy8yLCAxKSAjIHBsYXkgYmFjayBmYXN0ZXIgdGhhbiBpdCB3YXMgcmVjb3Jk ZWQKKysgICAgICAgICBwcmludChldnRUeXBlLCBrZXksIG1vZGlmaWVycywgbWlsbGkpCisrICAg ICAgICAgd3guQ2FsbExhdGVyKG1pbGxpLCBzZWxmLl9wbGF5YmFja0tleSwgZXZ0VHlwZSwga2V5 LCBtb2RpZmllcnMpCisrIAorK2RpZmYgLS1naXQgYS9kZW1vL2Fndy9BVUkucHkgYi9kZW1vL2Fn dy9BVUkucHkKKytpbmRleCA3YzIxOTY4NjUuLmIzODMxM2M4NiAxMDA2NDQKKystLS0gYS9kZW1v L2Fndy9BVUkucHkKKysrKysgYi9kZW1vL2Fndy9BVUkucHkKKytAQCAtMzkzLDcgKzM5Myw3IEBA IGRlZiBPblBhaW50KHNlbGYsIGV2ZW50KToKKysgICAgICAgICBkYy5TZXRQZW4od3guTElHSFRf R1JFWV9QRU4pCisrICAgICAgICAgZGMuRHJhd0xpbmUoMCwgMCwgc2l6ZS54LCBzaXplLnkpCisr ICAgICAgICAgZGMuRHJhd0xpbmUoMCwgc2l6ZS55LCBzaXplLngsIDApCisrLSAgICAgICAgZGMu RHJhd1RleHQocywgKHNpemUueC13KS8yLCAoc2l6ZS55LWhlaWdodCo1KS8yKQorKysgICAgICAg IGRjLkRyYXdUZXh0KHMsIChzaXplLngtdykvLzIsIChzaXplLnktaGVpZ2h0KjUpLy8yKQorKyAK KysgICAgICAgICBpZiBzZWxmLl9tZ3I6CisrIAorK0BAIC00MDEsMTkgKzQwMSwxOSBAQCBkZWYg T25QYWludChzZWxmLCBldmVudCk6CisrIAorKyAgICAgICAgICAgICBzID0gIkxheWVyOiAlZCIl cGkuZG9ja19sYXllcgorKyAgICAgICAgICAgICB3LCBoID0gZGMuR2V0VGV4dEV4dGVudChzKQor Ky0gICAgICAgICAgICBkYy5EcmF3VGV4dChzLCAoc2l6ZS54LXcpLzIsICgoc2l6ZS55LShoZWln aHQqNSkpLzIpKyhoZWlnaHQqMSkpCisrKyAgICAgICAgICAgIGRjLkRyYXdUZXh0KHMsIChzaXpl LngtdykvLzIsICgoc2l6ZS55LShoZWlnaHQqNSkpLy8yKSsoaGVpZ2h0KjEpKQorKyAKKysgICAg ICAgICAgICAgcyA9ICJEb2NrOiAlZCBSb3c6ICVkIiUocGkuZG9ja19kaXJlY3Rpb24sIHBpLmRv Y2tfcm93KQorKyAgICAgICAgICAgICB3LCBoID0gZGMuR2V0VGV4dEV4dGVudChzKQorKy0gICAg ICAgICAgICBkYy5EcmF3VGV4dChzLCAoc2l6ZS54LXcpLzIsICgoc2l6ZS55LShoZWlnaHQqNSkp LzIpKyhoZWlnaHQqMikpCisrKyAgICAgICAgICAgIGRjLkRyYXdUZXh0KHMsIChzaXplLngtdykv LzIsICgoc2l6ZS55LShoZWlnaHQqNSkpLy8yKSsoaGVpZ2h0KjIpKQorKyAKKysgICAgICAgICAg ICAgcyA9ICJQb3NpdGlvbjogJWQiJXBpLmRvY2tfcG9zCisrICAgICAgICAgICAgIHcsIGggPSBk Yy5HZXRUZXh0RXh0ZW50KHMpCisrLSAgICAgICAgICAgIGRjLkRyYXdUZXh0KHMsIChzaXplLngt dykvMiwgKChzaXplLnktKGhlaWdodCo1KSkvMikrKGhlaWdodCozKSkKKysrICAgICAgICAgICAg ZGMuRHJhd1RleHQocywgKHNpemUueC13KS8vMiwgKChzaXplLnktKGhlaWdodCo1KSkvLzIpKyho ZWlnaHQqMykpCisrIAorKyAgICAgICAgICAgICBzID0gIlByb3BvcnRpb246ICVkIiVwaS5kb2Nr X3Byb3BvcnRpb24KKysgICAgICAgICAgICAgdywgaCA9IGRjLkdldFRleHRFeHRlbnQocykKKyst ICAgICAgICAgICAgZGMuRHJhd1RleHQocywgKHNpemUueC13KS8yLCAoKHNpemUueS0oaGVpZ2h0 KjUpKS8yKSsoaGVpZ2h0KjQpKQorKysgICAgICAgICAgICBkYy5EcmF3VGV4dChzLCAoc2l6ZS54 LXcpLy8yLCAoKHNpemUueS0oaGVpZ2h0KjUpKS8vMikrKGhlaWdodCo0KSkKKysgCisrIAorKyAg ICAgZGVmIE9uRXJhc2VCYWNrZ3JvdW5kKHNlbGYsIGV2ZW50KToKKytAQCAtNDM1LDcgKzQzNSw3 IEBAIGRlZiBfX2luaXRfXyhzZWxmLCBwYXJlbnQsIGZyYW1lKToKKysgCisrICAgICAgICAgczEg PSB3eC5Cb3hTaXplcih3eC5IT1JJWk9OVEFMKQorKyAgICAgICAgIHNlbGYuX2JvcmRlcl9zaXpl ID0gd3guU3BpbkN0cmwoc2VsZiwgSURfUGFuZUJvcmRlclNpemUsICIlZCIlZnJhbWUuR2V0RG9j a0FydCgpLkdldE1ldHJpYyhhdWkuQVVJX0RPQ0tBUlRfUEFORV9CT1JERVJfU0laRSksCisrLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3eC5EZWZhdWx0UG9zaXRpb24s IHd4LlNpemUoNTAsIDIwKSwgd3guU1BfQVJST1dfS0VZUywgMCwgMTAwLAorKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd3guRGVmYXVsdFBvc2l0aW9uLCB3eC5EZWZh dWx0U2l6ZSwgd3guU1BfQVJST1dfS0VZUywgMCwgMTAwLAorKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZnJhbWUuR2V0RG9ja0FydCgpLkdldE1ldHJpYyhhdWkuQVVJ X0RPQ0tBUlRfUEFORV9CT1JERVJfU0laRSkpCisrICAgICAgICAgczEuQWRkKCgxLCAxKSwgMSwg d3guRVhQQU5EKQorKyAgICAgICAgIHMxLkFkZCh3eC5TdGF0aWNUZXh0KHNlbGYsIC0xLCAiUGFu ZSBCb3JkZXIgU2l6ZToiKSkKKytAQCAtNDQ1LDcgKzQ0NSw3IEBAIGRlZiBfX2luaXRfXyhzZWxm LCBwYXJlbnQsIGZyYW1lKToKKysgCisrICAgICAgICAgczIgPSB3eC5Cb3hTaXplcih3eC5IT1JJ Wk9OVEFMKQorKyAgICAgICAgIHNlbGYuX3Nhc2hfc2l6ZSA9IHd4LlNwaW5DdHJsKHNlbGYsIElE X1Nhc2hTaXplLCAiJWQiJWZyYW1lLkdldERvY2tBcnQoKS5HZXRNZXRyaWMoYXVpLkFVSV9ET0NL QVJUX1NBU0hfU0laRSksIHd4LkRlZmF1bHRQb3NpdGlvbiwKKystICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB3eC5TaXplKDUwLCAyMCksIHd4LlNQX0FSUk9XX0tFWVMsIDAs IDEwMCwgZnJhbWUuR2V0RG9ja0FydCgpLkdldE1ldHJpYyhhdWkuQVVJX0RPQ0tBUlRfU0FTSF9T SVpFKSkKKysrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3eC5EZWZhdWx0 U2l6ZSwgd3guU1BfQVJST1dfS0VZUywgMCwgMTAwLCBmcmFtZS5HZXREb2NrQXJ0KCkuR2V0TWV0 cmljKGF1aS5BVUlfRE9DS0FSVF9TQVNIX1NJWkUpKQorKyAgICAgICAgIHMyLkFkZCgoMSwgMSks IDEsIHd4LkVYUEFORCkKKysgICAgICAgICBzMi5BZGQod3guU3RhdGljVGV4dChzZWxmLCAtMSwg IlNhc2ggU2l6ZToiKSkKKysgICAgICAgICBzMi5BZGQoc2VsZi5fc2FzaF9zaXplKQorK0BAIC00 NTQsNyArNDU0LDcgQEAgZGVmIF9faW5pdF9fKHNlbGYsIHBhcmVudCwgZnJhbWUpOgorKyAKKysg ICAgICAgICBzMyA9IHd4LkJveFNpemVyKHd4LkhPUklaT05UQUwpCisrICAgICAgICAgc2VsZi5f Y2FwdGlvbl9zaXplID0gd3guU3BpbkN0cmwoc2VsZiwgSURfQ2FwdGlvblNpemUsICIlZCIlZnJh bWUuR2V0RG9ja0FydCgpLkdldE1ldHJpYyhhdWkuQVVJX0RPQ0tBUlRfQ0FQVElPTl9TSVpFKSwK KystICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3eC5EZWZhdWx0UG9z aXRpb24sIHd4LlNpemUoNTAsIDIwKSwgd3guU1BfQVJST1dfS0VZUywgMCwgMTAwLCBmcmFtZS5H ZXREb2NrQXJ0KCkuR2V0TWV0cmljKGF1aS5BVUlfRE9DS0FSVF9DQVBUSU9OX1NJWkUpKQorKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHd4LkRlZmF1bHRQb3NpdGlv biwgd3guRGVmYXVsdFNpemUsIHd4LlNQX0FSUk9XX0tFWVMsIDAsIDEwMCwgZnJhbWUuR2V0RG9j a0FydCgpLkdldE1ldHJpYyhhdWkuQVVJX0RPQ0tBUlRfQ0FQVElPTl9TSVpFKSkKKysgICAgICAg ICBzMy5BZGQoKDEsIDEpLCAxLCB3eC5FWFBBTkQpCisrICAgICAgICAgczMuQWRkKHd4LlN0YXRp Y1RleHQoc2VsZiwgLTEsICJDYXB0aW9uIFNpemU6IikpCisrICAgICAgICAgczMuQWRkKHNlbGYu X2NhcHRpb25fc2l6ZSkKKytAQCAtODA3LDkgKzgwNyw5IEBAIGRlZiBMaWdodENvbG91cihzZWxm LCBjb2xvdXIsIHBlcmNlbnQpOgorKyAKKysgICAgICAgICAjIFdlIHRha2UgdGhlIHBlcmNlbnQg d2F5IG9mIHRoZSBjb2xvdXIgZnJvbSBjb2xvdXIgLT4gd2hpdGUKKysgICAgICAgICBpID0gcGVy Y2VudAorKy0gICAgICAgIHIgPSBjb2xvdXIuUmVkKCkgKyAoKGkqcmQqMTAwKS9oaWdoKS8xMDAK KystICAgICAgICBnID0gY29sb3VyLkdyZWVuKCkgKyAoKGkqZ2QqMTAwKS9oaWdoKS8xMDAKKyst ICAgICAgICBiID0gY29sb3VyLkJsdWUoKSArICgoaSpiZCoxMDApL2hpZ2gpLzEwMAorKysgICAg ICAgIHIgPSBjb2xvdXIuUmVkKCkgKyAoKGkqcmQqMTAwKS8vaGlnaCkvLzEwMAorKysgICAgICAg IGcgPSBjb2xvdXIuR3JlZW4oKSArICgoaSpnZCoxMDApLy9oaWdoKS8vMTAwCisrKyAgICAgICAg YiA9IGNvbG91ci5CbHVlKCkgKyAoKGkqYmQqMTAwKS8vaGlnaCkvLzEwMAorKyAKKysgICAgICAg ICByZXR1cm4gd3guQ29sb3VyKHIsIGcsIGIpCisrIAorK0BAIC04MjYsMTAgKzgyNiwxMCBAQCBk ZWYgRHJhd1Byb2dyZXNzKHNlbGYsIGRjLCB4c2l6ZSwgeXNpemUsIGluY3JlbWVudCk6CisrICAg ICAgICAgeCwgeSwgd2lkdGgsIGhlaWdodCA9IGNsaWVudFJlY3QKKysgICAgICAgICB4LCB3aWR0 aCA9IHNlbGYuX3BvcywgaW50ZXJ2YWwKKysgCisrLSAgICAgICAgZ3JhZGllbnRSZWN0LlNldEhl aWdodChncmFkaWVudFJlY3QuR2V0SGVpZ2h0KCkvMikKKysrICAgICAgICBncmFkaWVudFJlY3Qu U2V0SGVpZ2h0KGdyYWRpZW50UmVjdC5HZXRIZWlnaHQoKS8vMikKKysgICAgICAgICB0b3BTdGFy dCwgdG9wRW5kID0gc2VsZi5fdG9wU3RhcnRDb2xvdXIsIHNlbGYuX3RvcEVuZENvbG91cgorKyAK KystICAgICAgICByYzEgPSB3eC5SZWN0KHgsIHksIHdpZHRoLCBoZWlnaHQvMikKKysrICAgICAg ICByYzEgPSB3eC5SZWN0KGludCh4KSwgeSwgaW50KHdpZHRoKSwgaGVpZ2h0Ly8yKQorKyAgICAg ICAgIHBhdGgxID0gc2VsZi5HZXRQYXRoKGdjLCByYzEsIDgpCisrICAgICAgICAgYnIxID0gZ2Mu Q3JlYXRlTGluZWFyR3JhZGllbnRCcnVzaCh4LCB5LCB4LCB5K2hlaWdodC8yLCB0b3BTdGFydCwg dG9wRW5kKQorKyAgICAgICAgIGdjLlNldEJydXNoKGJyMSkKKytAQCAtODQ1LDE0ICs4NDUsMTQg QEAgZGVmIERyYXdQcm9ncmVzcyhzZWxmLCBkYywgeHNpemUsIHlzaXplLCBpbmNyZW1lbnQpOgor KyAKKysgICAgICAgICBib3R0b21TdGFydCwgYm90dG9tRW5kID0gc2VsZi5fYm90dG9tU3RhcnRD b2xvdXIsIHNlbGYuX2JvdHRvbUVuZENvbG91cgorKyAKKystICAgICAgICByYzMgPSB3eC5SZWN0 KHgsIHkraGVpZ2h0LzIsIHdpZHRoLCBoZWlnaHQvMikKKysrICAgICAgICByYzMgPSB3eC5SZWN0 KGludCh4KSwgeStoZWlnaHQvLzIsIGludCh3aWR0aCksIGhlaWdodC8vMikKKysgICAgICAgICBw YXRoMyA9IHNlbGYuR2V0UGF0aChnYywgcmMzLCA4KQorKyAgICAgICAgIGJyMyA9IGdjLkNyZWF0 ZUxpbmVhckdyYWRpZW50QnJ1c2goeCwgeStoZWlnaHQvMiwgeCwgeStoZWlnaHQsIGJvdHRvbVN0 YXJ0LCBib3R0b21FbmQpCisrICAgICAgICAgZ2MuU2V0QnJ1c2goYnIzKQorKyAgICAgICAgIGdj LkZpbGxQYXRoKHBhdGgzKSAjZHJhdyBtYWluCisrIAorKyAgICAgICAgIHBhdGg0ID0gZ2MuQ3Jl YXRlUGF0aCgpCisrLSAgICAgICAgcGF0aDQuQWRkUmVjdGFuZ2xlKHgsIHkraGVpZ2h0LzIsIHdp ZHRoLCA4KQorKysgICAgICAgIHBhdGg0LkFkZFJlY3RhbmdsZSh4LCB5K2hlaWdodC8vMiwgd2lk dGgsIDgpCisrICAgICAgICAgcGF0aDQuQ2xvc2VTdWJwYXRoKCkKKysgICAgICAgICBnYy5TZXRC cnVzaChicjMpCisrICAgICAgICAgZ2MuRmlsbFBhdGgocGF0aDQpCisrQEAgLTI2MTMsNyArMjYx Myw3IEBAIGRlZiBDcmVhdGVOb3RlYm9vayhzZWxmKToKKysgICAgICAgICBmbGV4LkFkZCh3eC5U ZXh0Q3RybChwYW5lbCwgLTEsICIiLCB3eC5EZWZhdWx0UG9zaXRpb24sIHd4LlNpemUoMTAwLCAt MSkpLAorKyAgICAgICAgICAgICAgICAgIDEsIHd4LkFMTHx3eC5BTElHTl9DRU5UUkUsIDUpCisr ICAgICAgICAgZmxleC5BZGQod3guU3RhdGljVGV4dChwYW5lbCwgLTEsICJ3eFNwaW5DdHJsOiIp LCAwLCB3eC5BTEx8d3guQUxJR05fQ0VOVFJFLCA1KQorKy0gICAgICAgIGZsZXguQWRkKHd4LlNw aW5DdHJsKHBhbmVsLCAtMSwgIjUiLCB3eC5EZWZhdWx0UG9zaXRpb24sIHd4LlNpemUoMTAwLCAt MSksCisrKyAgICAgICAgZmxleC5BZGQod3guU3BpbkN0cmwocGFuZWwsIC0xLCAiNSIsIHd4LkRl ZmF1bHRQb3NpdGlvbiwgd3guRGVmYXVsdFNpemUsCisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgd3guU1BfQVJST1dfS0VZUywgNSwgNTAsIDUpLCAwLCB3eC5BTEx8d3guQUxJR05fQ0VO VFJFLCA1KQorKyAgICAgICAgIGZsZXguQWRkKCg1LCA1KSkKKysgICAgICAgICBmbGV4LkFkZCgo NSwgNSkpCisrZGlmZiAtLWdpdCBhL2RlbW8vYWd3L01hY0xhcmdlRGVtby5weSBiL2RlbW8vYWd3 L01hY0xhcmdlRGVtby5weQorK2luZGV4IDRkOTY3YTU0Ni4uYTViOGEwZTI1IDEwMDY0NAorKy0t LSBhL2RlbW8vYWd3L01hY0xhcmdlRGVtby5weQorKysrKyBiL2RlbW8vYWd3L01hY0xhcmdlRGVt by5weQorK0BAIC0yMjMsMTIgKzIyMywxMiBAQCBkZWYgRHJhd1Byb2dyZXNzQmFyKHNlbGYsIGRj LCB4LCB5LCB3LCBoLCBwZXJjZW50KToKKysgICAgICAgICAgICAgbWRjLlNlbGVjdE9iamVjdCh3 eC5OdWxsQml0bWFwKQorKyAKKysgICAgICAgICAjIENlbnRlciB0aGUgcHJvZ3Jlc3MgYmFyIHZl cnRpY2FsbHkgaW4gdGhlIGJveCBzdXBwbGllZAorKy0gICAgICAgIHkgPSB5ICsgKGggLSBQSVBF X0hFSUdIVCkvMgorKysgICAgICAgIHkgPSB5ICsgKGggLSBQSVBFX0hFSUdIVCkvLzIKKysgCisr ICAgICAgICAgaWYgcGVyY2VudCA9PSAwOgorKyAgICAgICAgICAgICBtaWRkbGUgPSAwCisrICAg ICAgICAgZWxzZToKKystICAgICAgICAgICAgbWlkZGxlID0gKHcgKiBwZXJjZW50KS8xMDAKKysr ICAgICAgICAgICAgbWlkZGxlID0gaW50KCh3ICogcGVyY2VudCkvMTAwKQorKyAKKysgICAgICAg ICBpZiB3IDwgMToKKysgICAgICAgICAgICAgcmV0dXJuCisrZGlmZiAtLWdpdCBhL2RlbW8vYWd3 L1BlYWtNZXRlci5weSBiL2RlbW8vYWd3L1BlYWtNZXRlci5weQorK2luZGV4IGE3YzlhNmY1MS4u ZTlkYWI3MTE2IDEwMDY0NAorKy0tLSBhL2RlbW8vYWd3L1BlYWtNZXRlci5weQorKysrKyBiL2Rl bW8vYWd3L1BlYWtNZXRlci5weQorK0BAIC0xNDksMTAgKzE0OSwxMCBAQCBkZWYgT25GYWxsb2Zm KHNlbGYsIGV2ZW50KToKKysgCisrICAgICBkZWYgT25TdGFydChzZWxmLCBldmVudCk6CisrIAor Ky0gICAgICAgIHNlbGYudGltZXIuU3RhcnQoMTAwMC8yKSAgICAgICAgIyAyIGZwcworKysgICAg ICAgIHNlbGYudGltZXIuU3RhcnQoMTAwMC8vMikgICAgICAgICMgMiBmcHMKKysgCisrLSAgICAg ICAgc2VsZi52ZXJ0UGVhay5TdGFydCgxMDAwLzE4KSAgICAgICAgIyAxOCBmcHMKKystICAgICAg ICBzZWxmLmhvcnpQZWFrLlN0YXJ0KDEwMDAvMjApICAgICAgICAjIDIwIGZwcworKysgICAgICAg IHNlbGYudmVydFBlYWsuU3RhcnQoMTAwMC8vMTgpICAgICAgICAjIDE4IGZwcworKysgICAgICAg IHNlbGYuaG9yelBlYWsuU3RhcnQoMTAwMC8vMjApICAgICAgICAjIDIwIGZwcworKyAKKysgCisr ICAgICBkZWYgT25TdG9wKHNlbGYsIGV2ZW50KToKKytkaWZmIC0tZ2l0IGEvZGVtby9hZ3cvUGVy c2lzdGVudENvbnRyb2xzLnB5IGIvZGVtby9hZ3cvUGVyc2lzdGVudENvbnRyb2xzLnB5CisraW5k ZXggZjE5Y2M0YTkxLi5jZjk3ZGQ5ZjAgMTAwNjQ0CisrLS0tIGEvZGVtby9hZ3cvUGVyc2lzdGVu dENvbnRyb2xzLnB5CisrKysrIGIvZGVtby9hZ3cvUGVyc2lzdGVudENvbnRyb2xzLnB5CisrQEAg LTIzNCw3ICsyMzQsNyBAQCBkZWYgQnVpbGRQYW5lcyhzZWxmKToKKysgICAgICAgICBzaXplcl8x LkFkZChsYWJlbF8xLCAwLCB3eC5BTEwsIDUpCisrICAgICAgICAgc2l6ZXJfMS5BZGQoY29tYm8s IDAsIHd4LkxFRlR8d3guUklHSFQsIDUpCisrICAgICAgICAgc2l6ZXJfMS5BZGQoKDIwLCAyMCks IDEpCisrLSAgICAgICAgYm94Mi5BZGQoc2l6ZXJfMSwgMSwgd3guRVhQQU5EfHd4LkFMSUdOX0NF TlRFUiwgMCkKKysrICAgICAgICBib3gyLkFkZChzaXplcl8xLCAxLCB3eC5FWFBBTkQsIDApCisr ICAgICAgICAgYm94Mi5BZGQoKDAsIDApLCAxLCAxKQorKyAKKysgICAgICAgICBvdGhlclBhbmVs LlNldFNpemVyKGJveDIpCisrZGlmZiAtLWdpdCBhL2RlbW8vYWd3L1JpYmJvbkJhci5weSBiL2Rl bW8vYWd3L1JpYmJvbkJhci5weQorK2luZGV4IDcxMDNlOWQ4MS4uZDI4YTJjNjZhIDEwMDY0NAor Ky0tLSBhL2RlbW8vYWd3L1JpYmJvbkJhci5weQorKysrKyBiL2RlbW8vYWd3L1JpYmJvbkJhci5w eQorK0BAIC03OTksNyArNzk5LDcgQEAgZGVmIEFkZENvbG91clRvR2FsbGVyeShzZWxmLCBnYWxs ZXJ5LCBjb2xvdXIsIGRjLCB2YWx1ZT1Ob25lKToKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKGMuQmx1ZSgpICsgMTkyKSAlIDI1NikKKysgCisrICAgICAgICAgICAg IGRjLlNldFRleHRGb3JlZ3JvdW5kKGZvcmVncm91bmQpCisrLSAgICAgICAgICAgIGRjLkRyYXdU ZXh0KGNvbG91ciwgKGlXaWR0aCAtIHNpemUuR2V0V2lkdGgoKSArIDEpIC8gMiwgKGlIZWlnaHQg LSBzaXplLkdldEhlaWdodCgpKSAvIDIpCisrKyAgICAgICAgICAgIGRjLkRyYXdUZXh0KGNvbG91 ciwgKGlXaWR0aCAtIHNpemUuR2V0V2lkdGgoKSArIDEpIC8vIDIsIChpSGVpZ2h0IC0gc2l6ZS5H ZXRIZWlnaHQoKSkgLy8gMikKKysgICAgICAgICAgICAgZGMuU2VsZWN0T2JqZWN0QXNTb3VyY2Uo d3guTnVsbEJpdG1hcCkKKysgCisrICAgICAgICAgICAgIGl0ZW0gPSBnYWxsZXJ5LkFwcGVuZChi aXRtYXAsIHd4LklEX0FOWSkKKytkaWZmIC0tZ2l0IGEvZGVtby9hZ3cvU3BlZWRNZXRlci5weSBi L2RlbW8vYWd3L1NwZWVkTWV0ZXIucHkKKytpbmRleCA5ZjBmZGViYjIuLjU3NWU4NGE4MCAxMDA2 NDQKKystLS0gYS9kZW1vL2Fndy9TcGVlZE1ldGVyLnB5CisrKysrIGIvZGVtby9hZ3cvU3BlZWRN ZXRlci5weQorK0BAIC00MTgsNyArNDE4LDcgQEAgZGVmIF9faW5pdF9fKHNlbGYsIHBhcmVudCwg bG9nKToKKysgICAgICAgICBic2l6ZXIzID0gd3guQm94U2l6ZXIod3guVkVSVElDQUwpCisrIAor KyAgICAgICAgIGhzaXplcjMgPSB3eC5Cb3hTaXplcih3eC5IT1JJWk9OVEFMKQorKy0gICAgICAg IHNjID0gd3guU3BpbkN0cmwocGFuZWwzLCAtMSwgc2l6ZT0oNjAsMjApKQorKysgICAgICAgIHNj ID0gd3guU3BpbkN0cmwocGFuZWwzLCAtMSkKKysgICAgICAgICBzYy5TZXRSYW5nZSgxLCAyNTAp CisrICAgICAgICAgc2MuU2V0VmFsdWUoNTApCisrIAorK2RpZmYgLS1naXQgYS9kZW1vL2Fndy9T dXBlclRvb2xUaXAucHkgYi9kZW1vL2Fndy9TdXBlclRvb2xUaXAucHkKKytpbmRleCA1ZTY1ZjA2 YjEuLjg4NzI4ZTU0ZSAxMDA2NDQKKystLS0gYS9kZW1vL2Fndy9TdXBlclRvb2xUaXAucHkKKysr KysgYi9kZW1vL2Fndy9TdXBlclRvb2xUaXAucHkKKytAQCAtNDMsNyArNDMsNyBAQCBkZWYgX19p bml0X18oc2VsZiwgcGFyZW50KToKKysgICAgICAgICBzZWxmLnRvcENvbG91clBpY2tlciA9IHd4 LkNvbG91clBpY2tlckN0cmwoc2VsZi5tYWluUGFuZWwsIGNvbG91cj13eC5XSElURSkKKysgICAg ICAgICBzeXN0ZW0gPSB3eC5TeXN0ZW1TZXR0aW5ncy5HZXRDb2xvdXIod3guU1lTX0NPTE9VUl9B Q1RJVkVDQVBUSU9OKQorKyAgICAgICAgIHIsIGcsIGIsIGEgPSBzeXN0ZW0KKystICAgICAgICBz ZWxmLm1pZGRsZUNvbG91clBpY2tlciA9IHd4LkNvbG91clBpY2tlckN0cmwoc2VsZi5tYWluUGFu ZWwsIGNvbG91cj13eC5Db2xvdXIoKDI1NS1yKS8yLCAoMjU1LWcpLzIsICgyNTUtYikvMikpCisr KyAgICAgICAgc2VsZi5taWRkbGVDb2xvdXJQaWNrZXIgPSB3eC5Db2xvdXJQaWNrZXJDdHJsKHNl bGYubWFpblBhbmVsLCBjb2xvdXI9d3guQ29sb3VyKCgyNTUtcikvLzIsICgyNTUtZykvLzIsICgy NTUtYikvLzIpKQorKyAgICAgICAgIHNlbGYuYm90dG9tQ29sb3VyUGlja2VyID0gd3guQ29sb3Vy UGlja2VyQ3RybChzZWxmLm1haW5QYW5lbCwgY29sb3VyPXN5c3RlbSkKKysgICAgICAgICBzZWxm LmhlYWRlckNoZWNrID0gd3guQ2hlY2tCb3goc2VsZi5tYWluUGFuZWwsIC0xLCAiU2hvdyBIZWFk ZXIiKQorKyAgICAgICAgIHNlbGYuaGVhZGVyVGV4dCA9IHd4LlRleHRDdHJsKHNlbGYubWFpblBh bmVsLCAtMSwgIk1lcmdlIEFuZCBDZW50ZXIiKQorK0BAIC0yMzMsNyArMjMzLDYgQEAgZGVmIERv TGF5b3V0KHNlbGYpOgorKyAgICAgICAgIGZyYW1lU2l6ZXIuQWRkKHNlbGYubWFpblBhbmVsLCAx LCB3eC5FWFBBTkQsIDApCisrICAgICAgICAgc2VsZi5TZXRTaXplcihmcmFtZVNpemVyKQorKyAg ICAgICAgIGZyYW1lU2l6ZXIuTGF5b3V0KCkKKystICAgICAgICBmcmFtZVNpemVyLkZpdChzZWxm KQorKyAgICAgICAgIHNlbGYuTGF5b3V0KCkKKysgCisrICAgICAgICAgd3guQ2FsbEFmdGVyKG1h aW5TaXplci5MYXlvdXQpCisrZGlmZiAtLWdpdCBhL2RlbW8vYWd3L1VsdGltYXRlUmVwb3J0RGVt by5weSBiL2RlbW8vYWd3L1VsdGltYXRlUmVwb3J0RGVtby5weQorK2luZGV4IDQwZjQ5Y2I4Zi4u YWQ0NTU4NDdiIDEwMDY0NAorKy0tLSBhL2RlbW8vYWd3L1VsdGltYXRlUmVwb3J0RGVtby5weQor KysrKyBiL2RlbW8vYWd3L1VsdGltYXRlUmVwb3J0RGVtby5weQorK0BAIC0yMTYsNyArMjE2LDcg QEAgZGVmIERyYXdTdWJJdGVtKHNlbGYsIGRjLCByZWN0LCBsaW5lLCBoaWdobGlnaHRlZCwgZW5h YmxlZCk6CisrICAgICAgICAgbWRjLlNldEZvbnQod3guRm9udCg4LCB3eC5GT05URkFNSUxZX1NX SVNTLCB3eC5GT05UU1RZTEVfTk9STUFMLCB3eC5GT05UV0VJR0hUX0JPTEQpKQorKyAgICAgICAg IHRleHQgPSAiJWQgTWIiJXNlbGYucHJvZ3Jlc3NWYWx1ZQorKyAgICAgICAgIHRleHRXaWR0aCwg ZHVtbXkgPSBtZGMuR2V0VGV4dEV4dGVudCh0ZXh0KQorKy0gICAgICAgIG1kYy5EcmF3VGV4dCh0 ZXh0LCByZWN0LndpZHRoLzIgLSB0ZXh0V2lkdGgvMiwgcmVjdC5oZWlnaHQvMiAtIGR1bW15LzIp CisrKyAgICAgICAgbWRjLkRyYXdUZXh0KHRleHQsIHJlY3Qud2lkdGgvLzIgLSB0ZXh0V2lkdGgv LzIsIHJlY3QuaGVpZ2h0Ly8yIC0gZHVtbXkvLzIpCisrICAgICAgICAgZGMuU2V0Q2xpcHBpbmdS ZWdpb24ocmVjdC54LCByZWN0LnksIHJlY3Qud2lkdGgsIHJlY3QuaGVpZ2h0KQorKyAgICAgICAg IGRjLkJsaXQocmVjdC54KzMsIHJlY3QueSwgcmVjdC53aWR0aC02LCByZWN0LmhlaWdodCwgbWRj LCAwLCAwKQorKyAgICAgICAgIGRjLkRlc3Ryb3lDbGlwcGluZ1JlZ2lvbigpCisrQEAgLTI3OSwx MiArMjc5LDEyIEBAIGRlZiBEcmF3UHJvZ3Jlc3NCYXIoc2VsZiwgZGMsIHgsIHksIHcsIGgsIHBl cmNlbnQpOgorKyAgICAgICAgICAgICBtZGMuU2VsZWN0T2JqZWN0KHd4Lk51bGxCaXRtYXApCisr IAorKyAgICAgICAgICMgQ2VudGVyIHRoZSBwcm9ncmVzcyBiYXIgdmVydGljYWxseSBpbiB0aGUg Ym94IHN1cHBsaWVkCisrLSAgICAgICAgeSA9IHkgKyAoaCAtIFBJUEVfSEVJR0hUKS8yCisrKyAg ICAgICAgeSA9IHkgKyAoaCAtIFBJUEVfSEVJR0hUKS8vMgorKyAKKysgICAgICAgICBpZiBwZXJj ZW50ID09IDA6CisrICAgICAgICAgICAgIG1pZGRsZSA9IDAKKysgICAgICAgICBlbHNlOgorKy0g ICAgICAgICAgICBtaWRkbGUgPSAodyAqIHBlcmNlbnQpLzEwMAorKysgICAgICAgICAgICBtaWRk bGUgPSAodyAqIHBlcmNlbnQpLy8xMDAKKysgCisrICAgICAgICAgaWYgbWlkZGxlID09IDA6ICMg bm90IHN0YXJ0ZWQKKysgICAgICAgICAgICAgYml0bWFwID0gc2VsZi5SRU1BSU5JTkdfQklUTUFQ LkdldFN1YkJpdG1hcCgoMSwgMCwgdywgUElQRV9IRUlHSFQpKQorK0BAIC0zMzUsNyArMzM1LDcg QEAgZGVmIERyYXdTdWJJdGVtKHNlbGYsIGRjLCByZWN0LCBsaW5lLCBoaWdobGlnaHRlZCwgZW5h YmxlZCk6CisrICAgICAgICAgY29sb3VycyA9IFt3eC5SRUQsIHd4LldISVRFLCB3eC5HUkVFTiwg d3guQ29sb3VyKCJTS1kgQkxVRSIpXQorKyAgICAgICAgIHcsIGggPSBkYy5HZXRUZXh0RXh0ZW50 KCJIZyIpCisrICAgICAgICAgeCA9IHJlY3QueCArIDEKKystICAgICAgICB5ID0gcmVjdC55ICsg cmVjdC5oZWlnaHQvMiAtIGgvMgorKysgICAgICAgIHkgPSByZWN0LnkgKyByZWN0LmhlaWdodC8v MiAtIGgvLzIKKysgCisrICAgICAgICAgZm9yIGNoIGluIHNlbGYudGV4dDoKKysgICAgICAgICAg ICAgZGMuU2V0VGV4dEZvcmVncm91bmQocmFuZG9tLmNob2ljZShjb2xvdXJzKSkKKytkaWZmIC0t Z2l0IGEvZGVtby9hZ3cvV2luZG93czdFeHBsb3Jlcl9Db250ZW50cy5weSBiL2RlbW8vYWd3L1dp bmRvd3M3RXhwbG9yZXJfQ29udGVudHMucHkKKytpbmRleCBmNzU0ZDc4NzkuLmIyM2RmMGUxYSAx MDA2NDQKKystLS0gYS9kZW1vL2Fndy9XaW5kb3dzN0V4cGxvcmVyX0NvbnRlbnRzLnB5CisrKysr IGIvZGVtby9hZ3cvV2luZG93czdFeHBsb3Jlcl9Db250ZW50cy5weQorK0BAIC0xMjcsMTMgKzEy NywxMyBAQCBkZWYgRHJhd1N1Ykl0ZW0oc2VsZiwgZGMsIHJlY3QsIGxpbmUsIGhpZ2hsaWdodGVk LCBlbmFibGVkKToKKysgICAgICAgICAiIiJEcmF3IGEgY3VzdG9tIHByb2dyZXNzIGJhciB1c2lu ZyBkb3VibGUgYnVmZmVyaW5nIHRvIHByZXZlbnQgZmxpY2tlciIiIgorKyAKKysgICAgICAgICBi bXBXaWR0aCwgYm1wSGVpZ2h0ID0gc2VsZi5pY29uLkdldFdpZHRoKCksIHNlbGYuaWNvbi5HZXRI ZWlnaHQoKQorKy0gICAgICAgIGRjLkRyYXdJY29uKHNlbGYuaWNvbiwgcmVjdC54KzUsIHJlY3Qu eSsocmVjdC5oZWlnaHQtYm1wSGVpZ2h0KS8yKQorKysgICAgICAgIGRjLkRyYXdJY29uKHNlbGYu aWNvbiwgcmVjdC54KzUsIHJlY3QueSsocmVjdC5oZWlnaHQtYm1wSGVpZ2h0KS8vMikKKysgCisr ICAgICAgICAgZGMuU2V0Rm9udChzZWxmLm5vcm1hbEZvbnQpCisrIAorKyAgICAgICAgIHRleHRX aWR0aCwgdGV4dEhlaWdodCA9IGRjLkdldFRleHRFeHRlbnQoc2VsZi50ZXh0KQorKyAgICAgICAg IGRjLlNldFRleHRGb3JlZ3JvdW5kKHd4LlN5c3RlbVNldHRpbmdzLkdldENvbG91cih3eC5TWVNf Q09MT1VSX0JUTlRFWFQpKQorKy0gICAgICAgIGRjLkRyYXdUZXh0KHNlbGYudGV4dCwgcmVjdC54 K2JtcFdpZHRoKzEwLCByZWN0LnkrKHJlY3QuaGVpZ2h0IC0gdGV4dEhlaWdodCkvNCkKKysrICAg ICAgICBkYy5EcmF3VGV4dChzZWxmLnRleHQsIHJlY3QueCtibXBXaWR0aCsxMCwgcmVjdC55Kyhy ZWN0LmhlaWdodCAtIHRleHRIZWlnaHQpLy80KQorKyAKKysgICAgICAgICBpZiBub3Qgc2VsZi5k ZXNjcmlwdGlvbjoKKysgICAgICAgICAgICAgcmV0dXJuCisrQEAgLTE0NCwxMCArMTQ0LDEwIEBA IGRlZiBEcmF3U3ViSXRlbShzZWxmLCBkYywgcmVjdCwgbGluZSwgaGlnaGxpZ2h0ZWQsIGVuYWJs ZWQpOgorKyAgICAgICAgIHRleHRXaWR0aCwgdGV4dEhlaWdodCA9IGRjLkdldFRleHRFeHRlbnQo IlR5cGU6ICIgKyBzZWxmLmRlc2NyaXB0aW9uKQorKyAKKysgICAgICAgICBkYy5TZXRUZXh0Rm9y ZWdyb3VuZChzZWxmLmdyZXlDb2xvdXIpCisrLSAgICAgICAgZGMuRHJhd1RleHQoIlR5cGU6ICIs IHJlY3QueCtibXBXaWR0aCsxMCwgcmVjdC55KzMqKHJlY3QuaGVpZ2h0IC0gdGV4dEhlaWdodCkv NCkKKysrICAgICAgICBkYy5EcmF3VGV4dCgiVHlwZTogIiwgcmVjdC54K2JtcFdpZHRoKzEwLCBy ZWN0LnkrMyoocmVjdC5oZWlnaHQgLSB0ZXh0SGVpZ2h0KS8vNCkKKysgCisrICAgICAgICAgZGMu U2V0VGV4dEZvcmVncm91bmQod3guQkxBQ0spCisrLSAgICAgICAgZGMuRHJhd1RleHQoc2VsZi5k ZXNjcmlwdGlvbiwgcmVjdC54K2JtcFdpZHRoK2R1bW15MSsxMCwgcmVjdC55KzMqKHJlY3QuaGVp Z2h0IC0gdGV4dEhlaWdodCkvNCkKKysrICAgICAgICBkYy5EcmF3VGV4dChzZWxmLmRlc2NyaXB0 aW9uLCByZWN0LngrYm1wV2lkdGgrZHVtbXkxKzEwLCByZWN0LnkrMyoocmVjdC5oZWlnaHQgLSB0 ZXh0SGVpZ2h0KS8vNCkKKysgCisrIAorKyAgICAgZGVmIEdldExpbmVIZWlnaHQoc2VsZik6Cisr QEAgLTIwNywxMCArMjA3LDEwIEBAIGRlZiBEcmF3U3ViSXRlbShzZWxmLCBkYywgcmVjdCwgbGlu ZSwgaGlnaGxpZ2h0ZWQsIGVuYWJsZWQpOgorKyAgICAgICAgIHRleHRXaWR0aCwgdGV4dEhlaWdo dCA9IGRjLkdldFRleHRFeHRlbnQoIkRhdGUgbW9kaWZpZWQ6ICIgKyBkYXRlKQorKyAKKysgICAg ICAgICBkYy5TZXRUZXh0Rm9yZWdyb3VuZChzZWxmLmdyZXlDb2xvdXIpCisrLSAgICAgICAgZGMu RHJhd1RleHQoIkRhdGUgbW9kaWZpZWQ6ICIsIHJlY3QueCs1LCByZWN0LnkrKHJlY3QuaGVpZ2h0 IC0gdGV4dEhlaWdodCkvNCkKKysrICAgICAgICBkYy5EcmF3VGV4dCgiRGF0ZSBtb2RpZmllZDog IiwgcmVjdC54KzUsIHJlY3QueSsocmVjdC5oZWlnaHQgLSB0ZXh0SGVpZ2h0KS8vNCkKKysgCisr ICAgICAgICAgZGMuU2V0VGV4dEZvcmVncm91bmQod3guQkxBQ0spCisrLSAgICAgICAgZGMuRHJh d1RleHQoZGF0ZSwgcmVjdC54K2R1bW15MSs1LCByZWN0LnkrKHJlY3QuaGVpZ2h0IC0gdGV4dEhl aWdodCkvNCkKKysrICAgICAgICBkYy5EcmF3VGV4dChkYXRlLCByZWN0LngrZHVtbXkxKzUsIHJl Y3QueSsocmVjdC5oZWlnaHQgLSB0ZXh0SGVpZ2h0KS8vNCkKKysgCisrICAgICAgICAgaWYgbm90 IHNlbGYuc2l6ZToKKysgICAgICAgICAgICAgcmV0dXJuCisrQEAgLTIxOCwxMCArMjE4LDEwIEBA IGRlZiBEcmF3U3ViSXRlbShzZWxmLCBkYywgcmVjdCwgbGluZSwgaGlnaGxpZ2h0ZWQsIGVuYWJs ZWQpOgorKyAgICAgICAgIGR1bW15MSwgZHVtbXkyPSBkYy5HZXRUZXh0RXh0ZW50KCJTaXplOiAi KQorKyAKKysgICAgICAgICBkYy5TZXRUZXh0Rm9yZWdyb3VuZChzZWxmLmdyZXlDb2xvdXIpCisr LSAgICAgICAgZGMuRHJhd1RleHQoIlNpemU6ICIsIHJlY3QueCs1LCByZWN0LnkrMyoocmVjdC5o ZWlnaHQgLSB0ZXh0SGVpZ2h0KS80KQorKysgICAgICAgIGRjLkRyYXdUZXh0KCJTaXplOiAiLCBy ZWN0LngrNSwgcmVjdC55KzMqKHJlY3QuaGVpZ2h0IC0gdGV4dEhlaWdodCkvLzQpCisrIAorKyAg ICAgICAgIGRjLlNldFRleHRGb3JlZ3JvdW5kKHd4LkJMQUNLKQorKy0gICAgICAgIGRjLkRyYXdU ZXh0KHNlbGYuc2l6ZSwgcmVjdC54K2R1bW15MSs1LCByZWN0LnkrMyoocmVjdC5oZWlnaHQgLSB0 ZXh0SGVpZ2h0KS80KQorKysgICAgICAgIGRjLkRyYXdUZXh0KHNlbGYuc2l6ZSwgcmVjdC54K2R1 bW15MSs1LCByZWN0LnkrMyoocmVjdC5oZWlnaHQgLSB0ZXh0SGVpZ2h0KS8vNCkKKysgCisrIAor KyAgICAgZGVmIEdldExpbmVIZWlnaHQoc2VsZik6CisrZGlmZiAtLWdpdCBhL2RlbW8vYWd3L1pv b21CYXIucHkgYi9kZW1vL2Fndy9ab29tQmFyLnB5CisraW5kZXggMzc2Y2UzNDliLi4xNGIwMjc4 ZTcgMTAwNjQ0CisrLS0tIGEvZGVtby9hZ3cvWm9vbUJhci5weQorKysrKyBiL2RlbW8vYWd3L1pv b21CYXIucHkKKytAQCAtNTUsNyArNTUsNyBAQCBkZWYgX19pbml0X18oc2VsZiwgcGFyZW50LCBs b2cpOgorKyAgICAgICAgIHJlZmxlY3Rpb25zID0gZ2xvYi5nbG9iKGJpdG1hcERpciArICIvKjk2 RmxpcDQwLnBuZyIpCisrIAorKyAgICAgICAgIHNlcGFyYXRvckltYWdlID0gYml0bWFwRGlyICsg Ii9zZXBhcmF0b3IuZ2lmIgorKy0gICAgICAgIHNlcGFyYXRvclJlZmxlY3Rpb24gPSBiaXRtYXBE aXIgKyAiL3NlcGFyYXRvckZsaXAucG5nIgorKysgICAgICAgIHNlcGFyYXRvclJlZmxlY3Rpb24g PSBiaXRtYXBEaXIgKyAiL3NlcGFyYXRvcmZsaXAucG5nIgorKyAgICAgICAgIGNvdW50ID0gMAor KyAKKysgICAgICAgICBmb3Igc3RkLCByZWYgaW4gemlwKHN0YW5kYXJkLCByZWZsZWN0aW9ucyk6 CisrZGlmZiAtLWdpdCBhL3d4L2xpYi9hZ3cvYWR2YW5jZWRzcGxhc2gucHkgYi93eC9saWIvYWd3 L2FkdmFuY2Vkc3BsYXNoLnB5CisraW5kZXggMWY4YzMyZGY1Li5kMzUxZWEwNmUgMTAwNjQ0Cisr LS0tIGEvd3gvbGliL2Fndy9hZHZhbmNlZHNwbGFzaC5weQorKysrKyBiL3d4L2xpYi9hZ3cvYWR2 YW5jZWRzcGxhc2gucHkKKytAQCAtNDM4LDcgKzQzOCw3IEBAIGRlZiBTZXRUZXh0Rm9udChzZWxm LCBmb250PU5vbmUpOgorKyAKKysgICAgICAgICBpZiBmb250IGlzIE5vbmU6CisrICAgICAgICAg ICAgIHNlbGYuX3RleHRmb250ID0gd3guRm9udCgxLCB3eC5GT05URkFNSUxZX1NXSVNTLCB3eC5G T05UU1RZTEVfTk9STUFMLCB3eC5GT05UV0VJR0hUX0JPTEQsIEZhbHNlKQorKy0gICAgICAgICAg ICBzZWxmLl90ZXh0c2l6ZSA9IDEwLjAKKysrICAgICAgICAgICAgc2VsZi5fdGV4dHNpemUgPSAx MAorKyAgICAgICAgICAgICBzZWxmLl90ZXh0Zm9udC5TZXRQb2ludFNpemUoc2VsZi5fdGV4dHNp emUpCisrICAgICAgICAgZWxzZToKKysgICAgICAgICAgICAgc2VsZi5fdGV4dGZvbnQgPSBmb250 CisrZGlmZiAtLWdpdCBhL3d4L2xpYi9hZ3cvYXVpL2F1aWJvb2sucHkgYi93eC9saWIvYWd3L2F1 aS9hdWlib29rLnB5CisraW5kZXggYmE3Y2Y0NzIxLi5mNWFkMmE1NjggMTAwNjQ0CisrLS0tIGEv d3gvbGliL2Fndy9hdWkvYXVpYm9vay5weQorKysrKyBiL3d4L2xpYi9hZ3cvYXVpL2F1aWJvb2su cHkKKytAQCAtMzQ1Miw4ICszNDUyLDggQEAgZGVmIENhbGN1bGF0ZU5ld1NwbGl0U2l6ZShzZWxm KToKKysgICAgICAgICAjIHNob3VsZCBoYXBwZW4gYXJvdW5kIHRoZSBtaWRkbGUKKysgICAgICAg ICBpZiB0YWJfY3RybF9jb3VudCA8IDI6CisrICAgICAgICAgICAgIG5ld19zcGxpdF9zaXplID0g c2VsZi5HZXRDbGllbnRTaXplKCkKKystICAgICAgICAgICAgbmV3X3NwbGl0X3NpemUueCAvPSAy CisrLSAgICAgICAgICAgIG5ld19zcGxpdF9zaXplLnkgLz0gMgorKysgICAgICAgICAgICBuZXdf c3BsaXRfc2l6ZS54IC8vPSAyCisrKyAgICAgICAgICAgIG5ld19zcGxpdF9zaXplLnkgLy89IDIK KysgCisrICAgICAgICAgZWxzZToKKysgCisrZGlmZiAtLWdpdCBhL3d4L2xpYi9hZ3cvYmFsbG9v bnRpcC5weSBiL3d4L2xpYi9hZ3cvYmFsbG9vbnRpcC5weQorK2luZGV4IGI0MTU1ZDc0YS4uNTdi YWNhNzI5IDEwMDY0NAorKy0tLSBhL3d4L2xpYi9hZ3cvYmFsbG9vbnRpcC5weQorKysrKyBiL3d4 L2xpYi9hZ3cvYmFsbG9vbnRpcC5weQorK0BAIC02MTUsNyArNjE1LDcgQEAgZGVmIFNldFN0YXJ0 RGVsYXkoc2VsZiwgZGVsYXk9MSk6CisrICAgICAgICAgaWYgZGVsYXkgPCAxOgorKyAgICAgICAg ICAgICByYWlzZSBFeGNlcHRpb24oIlxuRVJST1I6IERlbGF5IFRpbWUgRm9yIEJhbGxvb25UaXAg Q3JlYXRpb24gU2hvdWxkIEJlIEdyZWF0ZXIgVGhhbiAxIG1zIikKKysgCisrLSAgICAgICAgc2Vs Zi5fc3RhcnRkZWxheXRpbWUgPSBmbG9hdChkZWxheSkKKysrICAgICAgICBzZWxmLl9zdGFydGRl bGF5dGltZSA9IGludChkZWxheSkKKysgCisrIAorKyAgICAgZGVmIEdldFN0YXJ0RGVsYXkoc2Vs Zik6CisrQEAgLTY0MCw3ICs2NDAsNyBAQCBkZWYgU2V0RW5kRGVsYXkoc2VsZiwgZGVsYXk9MWU2 KToKKysgICAgICAgICBpZiBkZWxheSA8IDE6CisrICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlv bigiXG5FUlJPUjogRGVsYXkgVGltZSBGb3IgQmFsbG9vblRpcCBEZXN0cnVjdGlvbiBTaG91bGQg QmUgR3JlYXRlciBUaGFuIDEgbXMiKQorKyAKKystICAgICAgICBzZWxmLl9lbmRkZWxheXRpbWUg PSBmbG9hdChkZWxheSkKKysrICAgICAgICBzZWxmLl9lbmRkZWxheXRpbWUgPSBpbnQoZGVsYXkp CisrIAorKyAKKysgICAgIGRlZiBHZXRFbmREZWxheShzZWxmKToKKytkaWZmIC0tZ2l0IGEvd3gv bGliL2Fndy9mbGF0bWVudS5weSBiL3d4L2xpYi9hZ3cvZmxhdG1lbnUucHkKKytpbmRleCA1YmEy OGU1ODQuLjg1ZjI5NWI4NiAxMDA2NDQKKystLS0gYS93eC9saWIvYWd3L2ZsYXRtZW51LnB5Cisr KysrIGIvd3gvbGliL2Fndy9mbGF0bWVudS5weQorK0BAIC03MzYsOCArNzM2LDggQEAgZGVmIERy YXdTZXBhcmF0b3Ioc2VsZiwgZGMsIHhDb29yZCwgeUNvb3JkLCB0ZXh0WCwgc2VwV2lkdGgpOgor KyAgICAgICAgICIiIgorKyAKKysgICAgICAgICBkY3NhdmVyID0gRENTYXZlcihkYykKKystICAg ICAgICBzZXBSZWN0MSA9IHd4LlJlY3QoeENvb3JkICsgdGV4dFgsIHlDb29yZCArIDEsIHNlcFdp ZHRoLzIsIDEpCisrLSAgICAgICAgc2VwUmVjdDIgPSB3eC5SZWN0KHhDb29yZCArIHRleHRYICsg c2VwV2lkdGgvMiwgeUNvb3JkICsgMSwgc2VwV2lkdGgvMi0xLCAxKQorKysgICAgICAgIHNlcFJl Y3QxID0gd3guUmVjdCh4Q29vcmQgKyB0ZXh0WCwgeUNvb3JkICsgMSwgc2VwV2lkdGgvLzIsIDEp CisrKyAgICAgICAgc2VwUmVjdDIgPSB3eC5SZWN0KHhDb29yZCArIHRleHRYICsgc2VwV2lkdGgv LzIsIHlDb29yZCArIDEsIHNlcFdpZHRoLy8yLTEsIDEpCisrIAorKyAgICAgICAgIGFydE1nciA9 IEFydE1hbmFnZXIuR2V0KCkKKysgICAgICAgICBiYWNrQ29sb3VyID0gYXJ0TWdyLkdldE1lbnVG YWNlQ29sb3VyKCkKKytAQCAtODE3LDExICs4MTcsMTEgQEAgZGVmIERyYXdNZW51SXRlbShzZWxm LCBpdGVtLCBkYywgeENvb3JkLCB5Q29vcmQsIGltYWdlTWFyZ2luWCwgbWFya2VyTWFyZ2luWCwg dGUKKysgICAgICAgICAgICAgaW1nV2lkdGggID0gYm1wLkdldFdpZHRoKCkKKysgCisrICAgICAg ICAgICAgIGlmIGltYWdlTWFyZ2luWCA9PSAwOgorKy0gICAgICAgICAgICAgICAgeHggPSByZWN0 LnggKyAobGVmdE1hcmdpbldpZHRoIC0gaW1nV2lkdGgpLzIKKysrICAgICAgICAgICAgICAgIHh4 ID0gcmVjdC54ICsgKGxlZnRNYXJnaW5XaWR0aCAtIGltZ1dpZHRoKS8vMgorKyAgICAgICAgICAg ICBlbHNlOgorKy0gICAgICAgICAgICAgICAgeHggPSByZWN0LnggKyAoKGxlZnRNYXJnaW5XaWR0 aCAtIHJlY3QuaGVpZ2h0KSAtIGltZ1dpZHRoKS8yICsgcmVjdC5oZWlnaHQKKysrICAgICAgICAg ICAgICAgIHh4ID0gcmVjdC54ICsgKChsZWZ0TWFyZ2luV2lkdGggLSByZWN0LmhlaWdodCkgLSBp bWdXaWR0aCkvLzIgKyByZWN0LmhlaWdodAorKyAKKystICAgICAgICAgICAgeXkgPSByZWN0Lnkg KyAocmVjdC5oZWlnaHQgLSBpbWdIZWlnaHQpLzIKKysrICAgICAgICAgICAgeXkgPSByZWN0Lnkg KyAocmVjdC5oZWlnaHQgLSBpbWdIZWlnaHQpLy8yCisrICAgICAgICAgICAgIGRjLkRyYXdCaXRt YXAoYm1wLCB4eCwgeXksIFRydWUpCisrIAorKyAgICAgICAgIGlmIGl0ZW0uR2V0S2luZCgpID09 IHd4LklURU1fQ0hFQ0s6CisrQEAgLTgzNyw3ICs4MzcsNyBAQCBkZWYgRHJhd01lbnVJdGVtKHNl bGYsIGl0ZW0sIGRjLCB4Q29vcmQsIHlDb29yZCwgaW1hZ2VNYXJnaW5YLCBtYXJrZXJNYXJnaW5Y LCB0ZQorKyAgICAgICAgICAgICAgICAgaWYgbm90IHNlbGVjdGVkIGFuZCBzZWxmLmhpZ2hsaWdo dENoZWNrQW5kUmFkaW86CisrICAgICAgICAgICAgICAgICAgICAgc2VsZi5EcmF3QnV0dG9uKGRj LCByciwgQ29udHJvbEZvY3VzKQorKyAKKystICAgICAgICAgICAgICAgIGRjLkRyYXdCaXRtYXAo aXRlbS5fY2hlY2tNYXJrQm1wLCByci54ICsgKHJyLndpZHRoIC0gMTYpLzIsIHJyLnkgKyAocnIu aGVpZ2h0IC0gMTYpLzIsIFRydWUpCisrKyAgICAgICAgICAgICAgICBkYy5EcmF3Qml0bWFwKGl0 ZW0uX2NoZWNrTWFya0JtcCwgcnIueCArIChyci53aWR0aCAtIDE2KS8vMiwgcnIueSArIChyci5o ZWlnaHQgLSAxNikvLzIsIFRydWUpCisrIAorKyAgICAgICAgIGlmIGl0ZW0uR2V0S2luZCgpID09 IHd4LklURU1fUkFESU86CisrIAorK0BAIC04NTIsNyArODUyLDcgQEAgZGVmIERyYXdNZW51SXRl bShzZWxmLCBpdGVtLCBkYywgeENvb3JkLCB5Q29vcmQsIGltYWdlTWFyZ2luWCwgbWFya2VyTWFy Z2luWCwgdGUKKysgICAgICAgICAgICAgICAgIGlmIG5vdCBzZWxlY3RlZCBhbmQgc2VsZi5oaWdo bGlnaHRDaGVja0FuZFJhZGlvOgorKyAgICAgICAgICAgICAgICAgICAgIHNlbGYuRHJhd0J1dHRv bihkYywgcnIsIENvbnRyb2xGb2N1cykKKysgCisrLSAgICAgICAgICAgICAgICBkYy5EcmF3Qml0 bWFwKGl0ZW0uX3JhZGlvTWFya0JtcCwgcnIueCArIChyci53aWR0aCAtIDE2KS8yLCByci55ICsg KHJyLmhlaWdodCAtIDE2KS8yLCBUcnVlKQorKysgICAgICAgICAgICAgICAgZGMuRHJhd0JpdG1h cChpdGVtLl9yYWRpb01hcmtCbXAsIHJyLnggKyAocnIud2lkdGggLSAxNikvLzIsIHJyLnkgKyAo cnIuaGVpZ2h0IC0gMTYpLy8yLCBUcnVlKQorKyAKKysgICAgICAgICAjIERyYXcgdGV4dCAtIHdp dGhvdXQgYWNjZWxlcmF0b3JzCisrICAgICAgICAgdGV4dCA9IGl0ZW0uR2V0TGFiZWwoKQorK0BA IC04OTAsNyArODkwLDcgQEAgZGVmIERyYXdNZW51SXRlbShzZWxmLCBpdGVtLCBkYywgeENvb3Jk LCB5Q29vcmQsIGltYWdlTWFyZ2luWCwgbWFya2VyTWFyZ2luWCwgdGUKKysgICAgICAgICAgICAg ICAgIHczLCBkdW1teSA9IGRjLkdldFRleHRFeHRlbnQodGV4dDMpCisrIAorKyAgICAgICAgICAg ICAgICAgcG9zeCA9IHhDb29yZCArIHRleHRYICsgYm9yZGVyWFNpemUKKystICAgICAgICAgICAg ICAgIHBvc3kgPSAoaXRlbUhlaWdodCAtIGgpLzIgKyB5Q29vcmQKKysrICAgICAgICAgICAgICAg IHBvc3kgPSAoaXRlbUhlaWdodCAtIGgpLy8yICsgeUNvb3JkCisrIAorKyAgICAgICAgICAgICAg ICAgIyBEcmF3IGZpcnN0IHBhcnQKKysgICAgICAgICAgICAgICAgIGRjLkRyYXdUZXh0KHRleHQx LCBwb3N4LCBwb3N5KQorK0BAIC05MTIsNyArOTEyLDcgQEAgZGVmIERyYXdNZW51SXRlbShzZWxm LCBpdGVtLCBkYywgeENvb3JkLCB5Q29vcmQsIGltYWdlTWFyZ2luWCwgbWFya2VyTWFyZ2luWCwg dGUKKysgICAgICAgICAgICAgZWxzZToKKysgCisrICAgICAgICAgICAgICAgICB3LCBoID0gZGMu R2V0VGV4dEV4dGVudCh0ZXh0KQorKy0gICAgICAgICAgICAgICAgZGMuRHJhd1RleHQodGV4dCwg eENvb3JkICsgdGV4dFggKyBib3JkZXJYU2l6ZSwgKGl0ZW1IZWlnaHQgLSBoKS8yICsgeUNvb3Jk KQorKysgICAgICAgICAgICAgICAgZGMuRHJhd1RleHQodGV4dCwgeENvb3JkICsgdGV4dFggKyBi b3JkZXJYU2l6ZSwgKGl0ZW1IZWlnaHQgLSBoKS8vMiArIHlDb29yZCkKKysgCisrIAorKyAgICAg ICAgICMgTm93IGRyYXcgYWNjZWxlcmF0b3IKKytAQCAtOTIwLDcgKzkyMCw3IEBAIGRlZiBEcmF3 TWVudUl0ZW0oc2VsZiwgaXRlbSwgZGMsIHhDb29yZCwgeUNvb3JkLCBpbWFnZU1hcmdpblgsIG1h cmtlck1hcmdpblgsIHRlCisrICAgICAgICAgaWYgaXRlbS5HZXRBY2NlbFN0cmluZygpOgorKyAK KysgICAgICAgICAgICAgYWNjZWxXaWR0aCwgYWNjZWxIZWlnaHQgPSBkYy5HZXRUZXh0RXh0ZW50 KGl0ZW0uR2V0QWNjZWxTdHJpbmcoKSkKKystICAgICAgICAgICAgZGMuRHJhd1RleHQoaXRlbS5H ZXRBY2NlbFN0cmluZygpLCB4Q29vcmQgKyByaWdodE1hcmdpblggLSBhY2NlbFdpZHRoLCAoaXRl bUhlaWdodCAtIGFjY2VsSGVpZ2h0KS8yICsgeUNvb3JkKQorKysgICAgICAgICAgICBkYy5EcmF3 VGV4dChpdGVtLkdldEFjY2VsU3RyaW5nKCksIHhDb29yZCArIHJpZ2h0TWFyZ2luWCAtIGFjY2Vs V2lkdGgsIChpdGVtSGVpZ2h0IC0gYWNjZWxIZWlnaHQpLy8yICsgeUNvb3JkKQorKyAKKysgICAg ICAgICAjIENoZWNrIGlmIHRoaXMgaXRlbSBoYXMgc3ViLW1lbnUgLSBpZiBpdCBkb2VzLCBkcmF3 CisrICAgICAgICAgIyByaWdodCBhcnJvdyBvbiB0aGUgcmlnaHQgbWFyZ2luCisrQEAgLTkzMiw3 ICs5MzIsNyBAQCBkZWYgRHJhd01lbnVJdGVtKHNlbGYsIGl0ZW0sIGRjLCB4Q29vcmQsIHlDb29y ZCwgaW1hZ2VNYXJnaW5YLCBtYXJrZXJNYXJnaW5YLCB0ZQorKyAKKysgICAgICAgICAgICAgeHgg PSB4Q29vcmQgKyByaWdodE1hcmdpblggKyBib3JkZXJYU2l6ZQorKyAgICAgICAgICAgICByciA9 IHd4LlJlY3QoeHgsIHJlY3QueSArIDEsIHJlY3QuaGVpZ2h0LTIsIHJlY3QuaGVpZ2h0LTIpCisr LSAgICAgICAgICAgIGRjLkRyYXdCaXRtYXAocmlnaHRBcnJvd0JtcCwgcnIueCArIDQsIHJyLnkg Kyhyci5oZWlnaHQtMTYpLzIsIFRydWUpCisrKyAgICAgICAgICAgIGRjLkRyYXdCaXRtYXAocmln aHRBcnJvd0JtcCwgcnIueCArIDQsIHJyLnkgKyhyci5oZWlnaHQtMTYpLy8yLCBUcnVlKQorKyAK KysgCisrICAgICBkZWYgRHJhd01lbnVCYXJCdXR0b24oc2VsZiwgZGMsIHJlY3QsIHN0YXRlKToK KytAQCAtMTE0Miw3ICsxMTQyLDcgQEAgZGVmIERyYXdNZW51QmFyKHNlbGYsIG1lbnViYXIsIGRj KToKKysgICAgICAgICAgICAgIyBHZXQgdGhlIG1lbnUgaXRlbSByZWN0CisrICAgICAgICAgICAg IHRleHRXaWR0aCwgdGV4dEhlaWdodCA9IGRjLkdldFRleHRFeHRlbnQoZml4ZWRUZXh0KQorKyAg ICAgICAgICAgICAjcmVjdCA9IHd4LlJlY3QocG9zeCttZW51YmFyLl9zcGFjZXIvMiwgcG9zeSwg dGV4dFdpZHRoLCB0ZXh0SGVpZ2h0KQorKy0gICAgICAgICAgICByZWN0ID0gd3guUmVjdChwb3N4 K3BhZGRpbmcvMiwgcG9zeSwgdGV4dFdpZHRoLCB0ZXh0SGVpZ2h0KQorKysgICAgICAgICAgICBy ZWN0ID0gd3guUmVjdChwb3N4K3BhZGRpbmcvLzIsIHBvc3ksIHRleHRXaWR0aCwgdGV4dEhlaWdo dCkKKysgCisrICAgICAgICAgICAgICMgQ2FuIHdlIGRyYXcgbW9yZT8/CisrICAgICAgICAgICAg ICMgdGhlICtEUk9QX0RPV05fQVJST1dfV0lEVEggIGlzIHRoZSB3aWR0aCBvZiB0aGUgZHJvcCBk b3duIGFycm93CisrQEAgLTExNzIsNyArMTE3Miw3IEBAIGRlZiBEcmF3TWVudUJhcihzZWxmLCBt ZW51YmFyLCBkYyk6CisrICAgICAgICAgICAgICAgICBkYy5TZXRUZXh0Rm9yZWdyb3VuZCh0ZXh0 Q29sb3VyKQorKyAKKysgICAgICAgICAgICAgd3csIGhoID0gZGMuR2V0VGV4dEV4dGVudChsYWJl bE9ubHkpCisrLSAgICAgICAgICAgIHRleHRPZmZzZXQgPSAocmVjdC53aWR0aCAtIHd3KSAvIDIK KysrICAgICAgICAgICAgdGV4dE9mZnNldCA9IChyZWN0LndpZHRoIC0gd3cpIC8vIDIKKysgCisr ICAgICAgICAgICAgIGlmIG5vdCBtZW51YmFyLl9pc0xDRCBhbmQgaXRlbS5HZXRUZXh0Qml0bWFw KCkuSXNPaygpIGFuZCBub3Qgc2VsZWN0ZWQ6CisrICAgICAgICAgICAgICAgICBkYy5EcmF3Qml0 bWFwKGl0ZW0uR2V0VGV4dEJpdG1hcCgpLCByZWN0LngsIHJlY3QueSwgVHJ1ZSkKKytAQCAtMTUw NSw4ICsxNTA1LDggQEAgZGVmIERyYXdCdXR0b25Db2xvdXIoc2VsZiwgZGMsIHJlY3QsIHN0YXRl LCBjb2xvdXIpOgorKyAgICAgICAgIGJhc2VDb2xvdXIgPSBjb2xvdXIKKysgCisrICAgICAgICAg IyBEZWZpbmUgdGhlIG1pZGRsZSBwb2ludHMKKystICAgICAgICBsZWZ0UHQgPSB3eC5Qb2ludChy ZWN0LngsIHJlY3QueSArIChyZWN0LmhlaWdodCAvIDIpKQorKy0gICAgICAgIHJpZ2h0UHQgPSB3 eC5Qb2ludChyZWN0LnggKyByZWN0LndpZHRoLTEsIHJlY3QueSArIChyZWN0LmhlaWdodCAvIDIp KQorKysgICAgICAgIGxlZnRQdCA9IHd4LlBvaW50KHJlY3QueCwgcmVjdC55ICsgKHJlY3QuaGVp Z2h0IC8vIDIpKQorKysgICAgICAgIHJpZ2h0UHQgPSB3eC5Qb2ludChyZWN0LnggKyByZWN0Lndp ZHRoLTEsIHJlY3QueSArIChyZWN0LmhlaWdodCAvLyAyKSkKKysgCisrICAgICAgICAgIyBEZWZp bmUgdGhlIHRvcCByZWdpb24KKysgICAgICAgICB0b3AgPSB3eC5SZWN0KChyZWN0LkdldExlZnQo KSwgcmVjdC5HZXRUb3AoKSksIHJpZ2h0UHQpCisrQEAgLTE1NzIsMTEgKzE1NzIsMTEgQEAgZGVm IERyYXdNZW51QmFyQmFja2dyb3VuZChzZWxmLCBkYywgcmVjdCk6CisrIAorKyAgICAgICAgIGZh Y3RvciA9IGFydE1nci5HZXRNZW51QmdGYWN0b3IoKQorKyAKKystICAgICAgICBsZWZ0UHQxID0g d3guUG9pbnQocmVjdC54LCByZWN0LnkgKyAocmVjdC5oZWlnaHQgLyBmYWN0b3IpKQorKy0gICAg ICAgIGxlZnRQdDIgPSB3eC5Qb2ludChyZWN0LngsIHJlY3QueSArIChyZWN0LmhlaWdodCAvIGZh Y3RvcikqKGZhY3Rvci0xKSkKKysrICAgICAgICBsZWZ0UHQxID0gd3guUG9pbnQocmVjdC54LCBy ZWN0LnkgKyAocmVjdC5oZWlnaHQgLy8gZmFjdG9yKSkKKysrICAgICAgICBsZWZ0UHQyID0gd3gu UG9pbnQocmVjdC54LCByZWN0LnkgKyAocmVjdC5oZWlnaHQgLy8gZmFjdG9yKSooZmFjdG9yLTEp KQorKyAKKystICAgICAgICByaWdodFB0MSA9IHd4LlBvaW50KHJlY3QueCArIHJlY3Qud2lkdGgs IHJlY3QueSArIChyZWN0LmhlaWdodCAvIGZhY3RvcikpCisrLSAgICAgICAgcmlnaHRQdDIgPSB3 eC5Qb2ludChyZWN0LnggKyByZWN0LndpZHRoLCByZWN0LnkgKyAocmVjdC5oZWlnaHQgLyBmYWN0 b3IpKihmYWN0b3ItMSkpCisrKyAgICAgICAgcmlnaHRQdDEgPSB3eC5Qb2ludChyZWN0LnggKyBy ZWN0LndpZHRoLCByZWN0LnkgKyAocmVjdC5oZWlnaHQgLy8gZmFjdG9yKSkKKysrICAgICAgICBy aWdodFB0MiA9IHd4LlBvaW50KHJlY3QueCArIHJlY3Qud2lkdGgsIHJlY3QueSArIChyZWN0Lmhl aWdodCAvLyBmYWN0b3IpKihmYWN0b3ItMSkpCisrIAorKyAgICAgICAgICMgRGVmaW5lIHRoZSB0 b3AgcmVnaW9uCisrICAgICAgICAgdG9wUmVnID0gW3d4LlBvaW50KCkgZm9yIGlpIGluIHJhbmdl KDcpXQorK0BAIC0yNzA3LDcgKzI3MDcsNyBAQCBkZWYgRHJhd1Rvb2xiYXIoc2VsZiwgZGMsIHJl Y3QpOgorKyAgICAgICAgICAgICBlbGlmIHRiSXRlbS5Jc0N1c3RvbUNvbnRyb2woKToKKysgICAg ICAgICAgICAgICAgIGNvbnRyb2wgPSB0Ykl0ZW0uR2V0Q3VzdG9tQ29udHJvbCgpCisrICAgICAg ICAgICAgICAgICBjdHJsU2l6ZSA9IGNvbnRyb2wuR2V0U2l6ZSgpCisrLSAgICAgICAgICAgICAg ICBjdHJsUG9zID0gd3guUG9pbnQoeHgsIHJlY3QueSArIChyZWN0LmhlaWdodCAtIGN0cmxTaXpl LnkpLzIpCisrKyAgICAgICAgICAgICAgICBjdHJsUG9zID0gd3guUG9pbnQoeHgsIHJlY3QueSAr IChyZWN0LmhlaWdodCAtIGN0cmxTaXplLnkpLy8yKQorKyAgICAgICAgICAgICAgICAgaWYgY29u dHJvbC5HZXRQb3NpdGlvbigpICE9IGN0cmxQb3M6CisrICAgICAgICAgICAgICAgICAgICAgY29u dHJvbC5TZXRQb3NpdGlvbihjdHJsUG9zKQorKyAKKytAQCAtMjcyNyw5ICsyNzI3LDkgQEAgZGVm IERyYXdUb29sYmFyKHNlbGYsIGRjLCByZWN0KToKKysgICAgICAgICAgICAgIyBEcmF3IHRoZSB0 b29sYmFyIGltYWdlCisrICAgICAgICAgICAgIGlmIGJtcC5Jc09rKCk6CisrIAorKy0gICAgICAg ICAgICAgICAgeCA9IHh4IC0gc2VsZi5fdG9vbGJhclNwYWNlci8yCisrKyAgICAgICAgICAgICAg ICB4ID0geHggLSBzZWxmLl90b29sYmFyU3BhY2VyLy8yCisrICAgICAgICAgICAgICAgICAjeSA9 IHJlY3QueSArIChyZWN0LmhlaWdodCAtIGJtcC5HZXRIZWlnaHQoKSkvMiAtIDEKKystICAgICAg ICAgICAgICAgIHkgPSByZWN0LnkgKyBzZWxmLl90b29sYmFyTWFyZ2luLzIKKysrICAgICAgICAg ICAgICAgIHkgPSByZWN0LnkgKyBzZWxmLl90b29sYmFyTWFyZ2luLy8yCisrIAorKyAgICAgICAg ICAgICAgICAgYnV0dG9uUmVjdCA9IHd4LlJlY3QoeCwgeSwgaGlnaGxpZ2h0X3dpZHRoLCBoaWdo bGlnaHRfaGVpZ2h0KQorKyAKKytAQCAtMjc0NSw4ICsyNzQ1LDggQEAgZGVmIERyYXdUb29sYmFy KHNlbGYsIGRjLCByZWN0KToKKysgICAgICAgICAgICAgICAgICAgICBlbHNlOgorKyAgICAgICAg ICAgICAgICAgICAgICAgICBzZWxmLl90YkJ1dHRvbnNbaV0uX3N0YXRlID0gQ29udHJvbE5vcm1h bAorKyAKKystICAgICAgICAgICAgICAgIGltZ3ggPSBidXR0b25SZWN0LnggKyAoYnV0dG9uUmVj dC53aWR0aCAtIGJtcC5HZXRXaWR0aCgpKS8yCisrLSAgICAgICAgICAgICAgICBpbWd5ID0gYnV0 dG9uUmVjdC55ICsgKGJ1dHRvblJlY3QuaGVpZ2h0IC0gYm1wLkdldEhlaWdodCgpKS8yCisrKyAg ICAgICAgICAgICAgICBpbWd4ID0gYnV0dG9uUmVjdC54ICsgKGJ1dHRvblJlY3Qud2lkdGggLSBi bXAuR2V0V2lkdGgoKSkvLzIKKysrICAgICAgICAgICAgICAgIGltZ3kgPSBidXR0b25SZWN0Lnkg KyAoYnV0dG9uUmVjdC5oZWlnaHQgLSBibXAuR2V0SGVpZ2h0KCkpLy8yCisrIAorKyAgICAgICAg ICAgICAgICAgaWYgc2VsZi5fdGJCdXR0b25zW2ldLl9zdGF0ZSA9PSBDb250cm9sRm9jdXMgYW5k IG5vdCBzZWxmLl90YkJ1dHRvbnNbaV0uX3RiSXRlbS5Jc1NlbGVjdGVkKCk6CisrIAorK0BAIC0y ODI3LDggKzI4MjcsOCBAQCBkZWYgRHJhd01vcmVCdXR0b24oc2VsZiwgZGMsIHN0YXRlKToKKysg ICAgICAgICBkcm9wQXJyb3dCbXAgPSBzZWxmLkdldFJlbmRlcmVyKCkuX2JpdG1hcHNbImFycm93 X2Rvd24iXQorKyAKKysgICAgICAgICAjIENhbGMgdGhlIGltYWdlIGNvb3JkaW5hdGVzCisrLSAg ICAgICAgeHggPSByZWN0LnggKyAoRFJPUF9ET1dOX0FSUk9XX1dJRFRIIC0gZHJvcEFycm93Qm1w LkdldFdpZHRoKCkpLzIKKystICAgICAgICB5eSA9IHJlY3QueSArIChyZWN0LmhlaWdodCAtIGRy b3BBcnJvd0JtcC5HZXRIZWlnaHQoKSkvMgorKysgICAgICAgIHh4ID0gcmVjdC54ICsgKERST1Bf RE9XTl9BUlJPV19XSURUSCAtIGRyb3BBcnJvd0JtcC5HZXRXaWR0aCgpKS8vMgorKysgICAgICAg IHl5ID0gcmVjdC55ICsgKHJlY3QuaGVpZ2h0IC0gZHJvcEFycm93Qm1wLkdldEhlaWdodCgpKS8v MgorKyAKKysgICAgICAgICBkYy5EcmF3Qml0bWFwKGRyb3BBcnJvd0JtcCwgeHgsIHl5ICsgc2Vs Zi5fc3BhY2VyLCBUcnVlKQorKyAgICAgICAgIHNlbGYuX2Ryb3BEb3duQnV0dG9uU3RhdGUgPSBz dGF0ZQorK0BAIC0zMjY5LDggKzMyNjksOCBAQCBkZWYgRHJhd1Rvb2xiYXJJdGVtKHNlbGYsIGRj LCBpZHgsIHN0YXRlKToKKysgCisrICAgICAgICAgIyBkcmF3IHRoZSBiaXRtYXAgb3ZlciB0aGUg aGlnaGxpZ2h0CisrICAgICAgICAgYnV0dG9uUmVjdCA9IHd4LlJlY3QoKnJlY3QpCisrLSAgICAg ICAgeCA9IHJlY3QueCArIChidXR0b25SZWN0LndpZHRoIC0gc2VsZi5fdGJCdXR0b25zW2lkeF0u X3RiSXRlbS5HZXRCaXRtYXAoKS5HZXRXaWR0aCgpKS8yCisrLSAgICAgICAgeSA9IHJlY3QueSAr IChidXR0b25SZWN0LmhlaWdodCAtIHNlbGYuX3RiQnV0dG9uc1tpZHhdLl90Ykl0ZW0uR2V0Qml0 bWFwKCkuR2V0SGVpZ2h0KCkpLzIKKysrICAgICAgICB4ID0gcmVjdC54ICsgKGJ1dHRvblJlY3Qu d2lkdGggLSBzZWxmLl90YkJ1dHRvbnNbaWR4XS5fdGJJdGVtLkdldEJpdG1hcCgpLkdldFdpZHRo KCkpLy8yCisrKyAgICAgICAgeSA9IHJlY3QueSArIChidXR0b25SZWN0LmhlaWdodCAtIHNlbGYu X3RiQnV0dG9uc1tpZHhdLl90Ykl0ZW0uR2V0Qml0bWFwKCkuR2V0SGVpZ2h0KCkpLy8yCisrIAor KyAgICAgICAgIGlmIHN0YXRlID09IENvbnRyb2xGb2N1czoKKysgCisrQEAgLTM3ODQsNyArMzc4 NCw3IEBAIGRlZiBQb3NpdGlvbkFVSShzZWxmLCBtZ3IsIGZpeFRvb2xiYXI9VHJ1ZSk6CisrICAg ICAgICAgcG4uTmFtZSgiZmxhdF9tZW51X2JhciIpCisrICAgICAgICAgcG4uQ2FwdGlvbigiTWVu dSBCYXIiKQorKyAgICAgICAgIHBuLlRvcCgpCisrLSAgICAgICAgcG4uTWluU2l6ZSh3eC5TaXpl KHh4LzIsIHNlbGYuX2JhckhlaWdodCkpCisrKyAgICAgICAgcG4uTWluU2l6ZSh3eC5TaXplKHh4 Ly8yLCBzZWxmLl9iYXJIZWlnaHQpKQorKyAgICAgICAgIHBuLkxlZnREb2NrYWJsZShGYWxzZSkK KysgICAgICAgICBwbi5SaWdodERvY2thYmxlKEZhbHNlKQorKyAgICAgICAgIHBuLlRvb2xiYXJQ YW5lKCkKKytAQCAtMzk5Nyw4ICszOTk3LDggQEAgZGVmIERyYXcoc2VsZiwgZGMpOgorKyAgICAg ICAgICIiIgorKyAKKysgICAgICAgICByZWN0ID0gd3guUmVjdChzZWxmLl9wb3MsIHNlbGYuX3Np emUpCisrLSAgICAgICAgeHggPSByZWN0LnggKyAocmVjdC53aWR0aCAtIHNlbGYuX25vcm1hbEJt cC5HZXRXaWR0aCgpKS8yCisrLSAgICAgICAgeXkgPSByZWN0LnkgKyAocmVjdC5oZWlnaHQgLSBz ZWxmLl9ub3JtYWxCbXAuR2V0SGVpZ2h0KCkpLzIKKysrICAgICAgICB4eCA9IHJlY3QueCArIChy ZWN0LndpZHRoIC0gc2VsZi5fbm9ybWFsQm1wLkdldFdpZHRoKCkpLy8yCisrKyAgICAgICAgeXkg PSByZWN0LnkgKyAocmVjdC5oZWlnaHQgLSBzZWxmLl9ub3JtYWxCbXAuR2V0SGVpZ2h0KCkpLy8y CisrIAorKyAgICAgICAgIHNlbGYuX3BhcmVudC5HZXRSZW5kZXJlcigpLkRyYXdTY3JvbGxCdXR0 b24oZGMsIHJlY3QsIHNlbGYuX3N0YXRlKQorKyAgICAgICAgIGRjLkRyYXdCaXRtYXAoc2VsZi5f bm9ybWFsQm1wLCB4eCwgeXksIFRydWUpCisrZGlmZiAtLWdpdCBhL3d4L2xpYi9hZ3cvZmxhdG5v dGVib29rLnB5IGIvd3gvbGliL2Fndy9mbGF0bm90ZWJvb2sucHkKKytpbmRleCBmNWU1MjAwYjIu LjU2MTc0OWI4OSAxMDA2NDQKKystLS0gYS93eC9saWIvYWd3L2ZsYXRub3RlYm9vay5weQorKysr KyBiL3d4L2xpYi9hZ3cvZmxhdG5vdGVib29rLnB5CisrQEAgLTg1OCw5ICs4NTgsOSBAQCBkZWYg UGFpbnRTdHJhaWdodEdyYWRpZW50Qm94KGRjLCByZWN0LCBzdGFydENvbG91ciwgZW5kQ29sb3Vy LCB2ZXJ0aWNhbD1UcnVlKToKKysgCisrICAgICBmb3IgaSBpbiByYW5nZShoaWdoKzEpOgorKyAK KystICAgICAgICByID0gc3RhcnRDb2xvdXIuUmVkKCkgKyAoKGkqcmQqMTAwKS9oaWdoKS8xMDAK KystICAgICAgICBnID0gc3RhcnRDb2xvdXIuR3JlZW4oKSArICgoaSpnZCoxMDApL2hpZ2gpLzEw MAorKy0gICAgICAgIGIgPSBzdGFydENvbG91ci5CbHVlKCkgKyAoKGkqYmQqMTAwKS9oaWdoKS8x MDAKKysrICAgICAgICByID0gc3RhcnRDb2xvdXIuUmVkKCkgKyAoKGkqcmQqMTAwKS8vaGlnaCkv LzEwMAorKysgICAgICAgIGcgPSBzdGFydENvbG91ci5HcmVlbigpICsgKChpKmdkKjEwMCkvL2hp Z2gpLy8xMDAKKysrICAgICAgICBiID0gc3RhcnRDb2xvdXIuQmx1ZSgpICsgKChpKmJkKjEwMCkv L2hpZ2gpLy8xMDAKKysgCisrICAgICAgICAgcCA9IHd4LlBlbih3eC5Db2xvdXIociwgZywgYikp CisrICAgICAgICAgZGMuU2V0UGVuKHApCisrQEAgLTI2MzEsOSArMjYzMSw5IEBAIGRlZiBEcmF3 VGFiKHNlbGYsIHBhZ2VDb250YWluZXIsIGRjLCBwb3N4LCB0YWJJZHgsIHRhYldpZHRoLCB0YWJI ZWlnaHQsIGJ0blN0YXR1CisrICAgICAgICAgaW1hZ2VZQ29vcmQgPSAocGMuSGFzQUdXRmxhZyhG TkJfQk9UVE9NKSBhbmQgWzZdIG9yIFs4XSlbMF0KKysgCisrICAgICAgICAgaWYgaGFzSW1hZ2U6 CisrLSAgICAgICAgICAgIHRleHRPZmZzZXQgPSAyKnBjLl9wUGFyZW50Ll9uUGFkZGluZyArIDE2 ICsgc2hhcGVQb2ludHMvMgorKysgICAgICAgICAgICB0ZXh0T2Zmc2V0ID0gMipwYy5fcFBhcmVu dC5fblBhZGRpbmcgKyAxNiArIHNoYXBlUG9pbnRzLy8yCisrICAgICAgICAgZWxzZToKKystICAg ICAgICAgICAgdGV4dE9mZnNldCA9IHBjLl9wUGFyZW50Ll9uUGFkZGluZyArIHNoYXBlUG9pbnRz LzIKKysrICAgICAgICAgICAgdGV4dE9mZnNldCA9IHBjLl9wUGFyZW50Ll9uUGFkZGluZyArIHNo YXBlUG9pbnRzLy8yCisrIAorKyAgICAgICAgIHRleHRPZmZzZXQgKz0gMgorKyAKKytkaWZmIC0t Z2l0IGEvd3gvbGliL2Fndy9mbG9hdHNwaW4ucHkgYi93eC9saWIvYWd3L2Zsb2F0c3Bpbi5weQor K2luZGV4IGJkYmFmODVlYy4uNDU1OWViNWRlIDEwMDY0NAorKy0tLSBhL3d4L2xpYi9hZ3cvZmxv YXRzcGluLnB5CisrKysrIGIvd3gvbGliL2Fndy9mbG9hdHNwaW4ucHkKKytAQCAtMzM2LDcgKzMz Niw3IEBAIGNsYXNzIEZsb2F0U3Bpbih3eC5Db250cm9sKToKKysgICAgICIiIgorKyAKKysgICAg IGRlZiBfX2luaXRfXyhzZWxmLCBwYXJlbnQsIGlkPXd4LklEX0FOWSwgcG9zPXd4LkRlZmF1bHRQ b3NpdGlvbiwKKystICAgICAgICAgICAgICAgICBzaXplPSg5NSwtMSksIHN0eWxlPTAsIHZhbHVl PTAuMCwgbWluX3ZhbD1Ob25lLCBtYXhfdmFsPU5vbmUsCisrKyAgICAgICAgICAgICAgICAgc2l6 ZT13eC5EZWZhdWx0U2l6ZSwgc3R5bGU9MCwgdmFsdWU9MC4wLCBtaW5fdmFsPU5vbmUsIG1heF92 YWw9Tm9uZSwKKysgICAgICAgICAgICAgICAgICBpbmNyZW1lbnQ9MS4wLCBkaWdpdHM9LTEsIGFn d1N0eWxlPUZTX0xFRlQsCisrICAgICAgICAgICAgICAgICAgbmFtZT0iRmxvYXRTcGluIik6Cisr ICAgICAgICAgIiIiCisrZGlmZiAtLWdpdCBhL3d4L2xpYi9hZ3cvZ3JhZGllbnRidXR0b24ucHkg Yi93eC9saWIvYWd3L2dyYWRpZW50YnV0dG9uLnB5CisraW5kZXggYzQ2MzNiMjk2Li41ODYyNWM1 MDggMTAwNjQ0CisrLS0tIGEvd3gvbGliL2Fndy9ncmFkaWVudGJ1dHRvbi5weQorKysrKyBiL3d4 L2xpYi9hZ3cvZ3JhZGllbnRidXR0b24ucHkKKytAQCAtNDEyLDE0ICs0MTIsMTQgQEAgZGVmIE9u UGFpbnQoc2VsZiwgZXZlbnQpOgorKyAKKysgICAgICAgICB4LCB5LCB3aWR0aCwgaGVpZ2h0ID0g Y2xpZW50UmVjdAorKyAKKystICAgICAgICBncmFkaWVudFJlY3QuU2V0SGVpZ2h0KGdyYWRpZW50 UmVjdC5HZXRIZWlnaHQoKS8yICsgKChjYXB0dXJlPT1zZWxmIGFuZCBbMV0gb3IgWzBdKVswXSkp CisrKyAgICAgICAgZ3JhZGllbnRSZWN0LlNldEhlaWdodChncmFkaWVudFJlY3QuR2V0SGVpZ2h0 KCkvLzIgKyAoKGNhcHR1cmU9PXNlbGYgYW5kIFsxXSBvciBbMF0pWzBdKSkKKysgICAgICAgICBp ZiBjYXB0dXJlICE9IHNlbGY6CisrICAgICAgICAgICAgIGlmIHNlbGYuX21vdXNlQWN0aW9uID09 IEhPVkVSOgorKyAgICAgICAgICAgICAgICAgdG9wU3RhcnQsIHRvcEVuZCA9IHNlbGYuTGlnaHRD b2xvdXIoc2VsZi5fdG9wU3RhcnRDb2xvdXIsIDEwKSwgc2VsZi5MaWdodENvbG91cihzZWxmLl90 b3BFbmRDb2xvdXIsIDEwKQorKyAgICAgICAgICAgICBlbHNlOgorKyAgICAgICAgICAgICAgICAg dG9wU3RhcnQsIHRvcEVuZCA9IHNlbGYuX3RvcFN0YXJ0Q29sb3VyLCBzZWxmLl90b3BFbmRDb2xv dXIKKysgCisrLSAgICAgICAgICAgIHJjMSA9IHd4LlJlY3QoeCwgeSwgd2lkdGgsIGhlaWdodC8y KQorKysgICAgICAgICAgICByYzEgPSB3eC5SZWN0KHgsIHksIHdpZHRoLCBoZWlnaHQvLzIpCisr ICAgICAgICAgICAgIHBhdGgxID0gc2VsZi5HZXRQYXRoKGdjLCByYzEsIDgpCisrICAgICAgICAg ICAgIGJyMSA9IGdjLkNyZWF0ZUxpbmVhckdyYWRpZW50QnJ1c2goeCwgeSwgeCwgeStoZWlnaHQv MiwgdG9wU3RhcnQsIHRvcEVuZCkKKysgICAgICAgICAgICAgZ2MuU2V0QnJ1c2goYnIxKQorK0BA IC00NDgsNyArNDQ4LDcgQEAgZGVmIE9uUGFpbnQoc2VsZiwgZXZlbnQpOgorKyAgICAgICAgICAg ICBlbHNlOgorKyAgICAgICAgICAgICAgICAgYm90dG9tU3RhcnQsIGJvdHRvbUVuZCA9IHNlbGYu X2JvdHRvbVN0YXJ0Q29sb3VyLCBzZWxmLl9ib3R0b21FbmRDb2xvdXIKKysgCisrLSAgICAgICAg ICAgIHJjMyA9IHd4LlJlY3QoeCwgeStoZWlnaHQvMiwgd2lkdGgsIGhlaWdodC8yKQorKysgICAg ICAgICAgICByYzMgPSB3eC5SZWN0KHgsIHkraGVpZ2h0Ly8yLCB3aWR0aCwgaGVpZ2h0Ly8yKQor KyAgICAgICAgICAgICBwYXRoMyA9IHNlbGYuR2V0UGF0aChnYywgcmMzLCA4KQorKyAgICAgICAg ICAgICBicjMgPSBnYy5DcmVhdGVMaW5lYXJHcmFkaWVudEJydXNoKHgsIHkraGVpZ2h0LzIsIHgs IHkraGVpZ2h0LCBib3R0b21TdGFydCwgYm90dG9tRW5kKQorKyAgICAgICAgICAgICBnYy5TZXRC cnVzaChicjMpCisrQEAgLTQ2Myw3ICs0NjMsNyBAQCBkZWYgT25QYWludChzZWxmLCBldmVudCk6 CisrICAgICAgICAgICAgIHNoYWRvd09mZnNldCA9IDAKKysgICAgICAgICBlbHNlOgorKyAKKyst ICAgICAgICAgICAgcmMyID0gd3guUmVjdCh4KzEsIGdyYWRpZW50UmVjdC5oZWlnaHQvMiwgZ3Jh ZGllbnRSZWN0LndpZHRoLCBncmFkaWVudFJlY3QuaGVpZ2h0KQorKysgICAgICAgICAgICByYzIg PSB3eC5SZWN0KHgrMSwgZ3JhZGllbnRSZWN0LmhlaWdodC8vMiwgZ3JhZGllbnRSZWN0LndpZHRo LCBncmFkaWVudFJlY3QuaGVpZ2h0KQorKyAgICAgICAgICAgICBwYXRoMiA9IHNlbGYuR2V0UGF0 aChnYywgcmMyLCA4KQorKyAgICAgICAgICAgICBnYy5TZXRQZW4od3guUGVuKHNlbGYuX3ByZXNz ZWRCb3R0b21Db2xvdXIpKQorKyAgICAgICAgICAgICBnYy5TZXRCcnVzaCh3eC5CcnVzaChzZWxm Ll9wcmVzc2VkQm90dG9tQ29sb3VyKSkKKytkaWZmIC0tZ2l0IGEvd3gvbGliL2Fndy9oeXBlcnRy ZWVsaXN0LnB5IGIvd3gvbGliL2Fndy9oeXBlcnRyZWVsaXN0LnB5CisraW5kZXggMTIzMDJmM2Iw Li4zNzdhYzAxMjEgMTAwNjQ0CisrLS0tIGEvd3gvbGliL2Fndy9oeXBlcnRyZWVsaXN0LnB5Cisr KysrIGIvd3gvbGliL2Fndy9oeXBlcnRyZWVsaXN0LnB5CisrQEAgLTM0MzcsNyArMzQzNyw3IEBA IGRlZiBQYWludExldmVsKHNlbGYsIGl0ZW0sIGRjLCBsZXZlbCwgeSwgeF9tYWluY29sKToKKysg CisrICAgICAgICAgICAgIGlmIG5vdCBzZWxmLkhhc0FHV0ZsYWcod3guVFJfTk9fTElORVMpIGFu ZCBjaGlsZHJlbjoKKysgICAgICAgICAgICAgICAgIGxhc3RfY2hpbGQgPSBjaGlsZHJlblstMV0K KystICAgICAgICAgICAgICAgIFkxID0gbGFzdF9jaGlsZC5HZXRZKCkgKyBsYXN0X2NoaWxkLkdl dEhlaWdodCgpIC8gMgorKysgICAgICAgICAgICAgICAgWTEgPSBsYXN0X2NoaWxkLkdldFkoKSAr IGxhc3RfY2hpbGQuR2V0SGVpZ2h0KCkgLy8gMgorKyAgICAgICAgICAgICAgICAgZGMuRHJhd0xp bmUoeCwgb2xkWSwgeCwgWTEpCisrIAorKyAgICAgICAgIHJldHVybiB5LCB4X21haW5jb2wKKytk aWZmIC0tZ2l0IGEvd3gvbGliL2Fndy9rbm9iY3RybC5weSBiL3d4L2xpYi9hZ3cva25vYmN0cmwu cHkKKytpbmRleCA3NDIwOTdiMDkuLjFlNTA0NWZmNiAxMDA2NDQKKystLS0gYS93eC9saWIvYWd3 L2tub2JjdHJsLnB5CisrKysrIGIvd3gvbGliL2Fndy9rbm9iY3RybC5weQorK0BAIC0zMjUsNyAr MzI1LDcgQEAgZGVmIE9uU2l6ZShzZWxmLGV2ZW50KToKKysgICAgICAgICBtZW1vcnkuQ2xlYXIo KQorKyAKKysgICAgICAgICBtaW5yYWRpdXMgPSBtaW4oMC45KnNlbGYuV2lkdGgvMi4wLCAwLjkq c2VsZi5IZWlnaHQvMi4wKQorKy0gICAgICAgIG1lbW9yeS5EcmF3Q2lyY2xlKHNlbGYuV2lkdGgv LzIsIHNlbGYuSGVpZ2h0Ly8yLCBtaW5yYWRpdXMpCisrKyAgICAgICAgbWVtb3J5LkRyYXdDaXJj bGUoc2VsZi5XaWR0aC8vMiwgc2VsZi5IZWlnaHQvLzIsIGludChtaW5yYWRpdXMpKQorKyAgICAg ICAgIG1lbW9yeS5TZWxlY3RPYmplY3Qod3guTnVsbEJpdG1hcCkKKysgICAgICAgICBzZWxmLl9y ZWdpb24gPSB3eC5SZWdpb24oc2VsZi5fQnVmZmVyLCBzZWxmLkdldEJhY2tncm91bmRDb2xvdXIo KSkKKysgICAgICAgICBzZWxmLl9taW5yYWRpdXMgPSBtaW5yYWRpdXMKKytAQCAtNjQ1LDggKzY0 NSw4IEBAIGRlZiBEcmF3VGFncyhzZWxmLCBkYywgc2l6ZSk6CisrICAgICAgICAgICAgIGR4aSA9 IG1hdGguY29zKGFuZ2xlKSooKHdpZHRoIC0geHNoaWZ0ICsgdGFnTGVuIC0gNikvMi4wIC0gdGFn TGVuKQorKyAgICAgICAgICAgICBkeWkgPSBtYXRoLnNpbihhbmdsZSkqKChoZWlnaHQgLSB5c2hp ZnQgKyB0YWdMZW4gLSA2KS8yLjAgLSB0YWdMZW4pCisrIAorKy0gICAgICAgICAgICBkYy5EcmF3 TGluZSh3aWR0aC8vMiAtIHN4aSwgaGVpZ2h0Ly8yIC0gc3lpLAorKy0gICAgICAgICAgICAgICAg ICAgICAgICB3aWR0aC8vMiAtIGR4aSwgaGVpZ2h0Ly8yIC0gZHlpKQorKysgICAgICAgICAgICBk Yy5EcmF3TGluZShpbnQod2lkdGgvLzIgLSBzeGkpLCBpbnQoaGVpZ2h0Ly8yIC0gc3lpKSwKKysr ICAgICAgICAgICAgICAgICAgICAgICAgaW50KHdpZHRoLy8yIC0gZHhpKSwgaW50KGhlaWdodC8v MiAtIGR5aSkpCisrIAorKyAKKysgICAgIGRlZiBEcmF3RGlhZ29uYWxHcmFkaWVudChzZWxmLCBk Yywgc2l6ZSk6CisrQEAgLTc1OSw4ICs3NTksOCBAQCBkZWYgRHJhd0luc2V0Q2lyY2xlKHNlbGYs IGRjLCBwZW5jb2xvdXIpOgorKyAgICAgICAgIHAxID0gd3guUGVuKHNlbGYuT2Zmc2V0Q29sb3Vy KHBlbmNvbG91ciwgLTcwKSwgMikKKysgICAgICAgICBwMiA9IHd4LlBlbihzZWxmLk9mZnNldENv bG91cihwZW5jb2xvdXIsIDEwKSwgMSkKKysgCisrLSAgICAgICAgcHQxID0gd3guUG9pbnQoY3gt ciptYXRoLnNxcnQoMikvMi4wLCBjeStyKm1hdGguc3FydCgyKS8yLjApCisrLSAgICAgICAgcHQy ID0gd3guUG9pbnQoY3grciptYXRoLnNxcnQoMikvMi4wLCBjeS1yKm1hdGguc3FydCgyKS8yLjAp CisrKyAgICAgICAgcHQxID0gd3guUG9pbnQoaW50KGN4LXIqbWF0aC5zcXJ0KDIpLzIuMCksIGlu dChjeStyKm1hdGguc3FydCgyKS8yLjApKQorKysgICAgICAgIHB0MiA9IHd4LlBvaW50KGludChj eCtyKm1hdGguc3FydCgyKS8yLjApLCBpbnQoY3ktciptYXRoLnNxcnQoMikvMi4wKSkKKysgCisr ICAgICAgICAgZGMuU2V0UGVuKHAyKQorKyAgICAgICAgIGRjLkRyYXdBcmMocHQxLCBwdDIsIChj eCwgY3kpKQorK0BAIC03NzksNyArNzc5LDcgQEAgZGVmIERyYXdCb3VuZGluZ0NpcmNsZShzZWxm LCBkYywgc2l6ZSk6CisrICAgICAgICAgcmFkaXVzID0gMC45Km1pbihzaXplLngsIHNpemUueSkv Mi4wCisrICAgICAgICAgZGMuU2V0QnJ1c2god3guVFJBTlNQQVJFTlRfQlJVU0gpCisrICAgICAg ICAgZGMuU2V0UGVuKHd4LlBlbihzZWxmLl9ib3VuZGluZ2NvbG91cikpCisrLSAgICAgICAgZGMu RHJhd0NpcmNsZShzZWxmLldpZHRoLy8yLCBzZWxmLkhlaWdodC8vMiwgcmFkaXVzKQorKysgICAg ICAgIGRjLkRyYXdDaXJjbGUoc2VsZi5XaWR0aC8vMiwgc2VsZi5IZWlnaHQvLzIsIGludChyYWRp dXMpKQorKyAKKysgCisrICAgICBkZWYgQ2lyY2xlQ29vcmRzKHNlbGYsIHJhZGl1cywgYW5nbGUs IGNlbnRlclgsIGNlbnRlclkpOgorK2RpZmYgLS1naXQgYS93eC9saWIvYWd3L2xhYmVsYm9vay5w eSBiL3d4L2xpYi9hZ3cvbGFiZWxib29rLnB5CisraW5kZXggYjcxNmRmM2EyLi5mOGM5Y2Q1NGQg MTAwNjQ0CisrLS0tIGEvd3gvbGliL2Fndy9sYWJlbGJvb2sucHkKKysrKysgYi93eC9saWIvYWd3 L2xhYmVsYm9vay5weQorK0BAIC0xMzc2LDEzICsxMzc2LDEzIEBAIGRlZiBPblBhaW50KHNlbGYs IGV2ZW50KToKKysgCisrICAgICAgICAgICAgICAgICBpZiBiVXNlWWNvb3JkOgorKyAKKystICAg ICAgICAgICAgICAgICAgICBpbWdYY29vcmQgPSBzZWxmLl9uSW1nU2l6ZSAvIDIKKystICAgICAg ICAgICAgICAgICAgICBpbWdZY29vcmQgPSAoc3R5bGUgJiBJTkJfU0hPV19PTkxZX0lNQUdFUyBh bmQgW3BvcyArIHNlbGYuX25JbWdTaXplIC8gMl0gb3IgW3BvcyArIGltZ1RvcFBhZGRpbmddKVsw XQorKysgICAgICAgICAgICAgICAgICAgIGltZ1hjb29yZCA9IHNlbGYuX25JbWdTaXplIC8vIDIK KysrICAgICAgICAgICAgICAgICAgICBpbWdZY29vcmQgPSAoc3R5bGUgJiBJTkJfU0hPV19PTkxZ X0lNQUdFUyBhbmQgW3BvcyArIHNlbGYuX25JbWdTaXplIC8vIDJdIG9yIFtwb3MgKyBpbWdUb3BQ YWRkaW5nXSlbMF0KKysgCisrICAgICAgICAgICAgICAgICBlbHNlOgorKyAKKystICAgICAgICAg ICAgICAgICAgICBpbWdYY29vcmQgPSBwb3MgKyAocmVjdFdpZHRoIC8gMikgLSAoc2VsZi5fbklt Z1NpemUgLyAyKQorKy0gICAgICAgICAgICAgICAgICAgIGltZ1ljb29yZCA9IChzdHlsZSAmIElO Ql9TSE9XX09OTFlfSU1BR0VTIGFuZCBbc2VsZi5fbkltZ1NpemUgLyAyXSBvciBbaW1nVG9wUGFk ZGluZ10pWzBdCisrKyAgICAgICAgICAgICAgICAgICAgaW1nWGNvb3JkID0gcG9zICsgKHJlY3RX aWR0aCAvLyAyKSAtIChzZWxmLl9uSW1nU2l6ZSAvLyAyKQorKysgICAgICAgICAgICAgICAgICAg IGltZ1ljb29yZCA9IChzdHlsZSAmIElOQl9TSE9XX09OTFlfSU1BR0VTIGFuZCBbc2VsZi5fbklt Z1NpemUgLy8gMl0gb3IgW2ltZ1RvcFBhZGRpbmddKVswXQorKyAKKysgICAgICAgICAgICAgICAg IHNlbGYuX0ltYWdlTGlzdC5EcmF3KHNlbGYuX3BhZ2VzSW5mb1ZlY1tpXS5HZXRJbWFnZUluZGV4 KCksIGRjLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW1nWGNvb3Jk LCBpbWdZY29vcmQsCisrQEAgLTE0MDgsMTUgKzE0MDgsMTUgQEAgZGVmIE9uUGFpbnQoc2VsZiwg ZXZlbnQpOgorKyAKKysgICAgICAgICAgICAgICAgIGlmIGJVc2VZY29vcmQ6CisrIAorKy0gICAg ICAgICAgICAgICAgICAgIHRleHRPZmZzZXRYID0gKChyZWN0V2lkdGggLSB0ZXh0V2lkdGgpIC8g MiApCisrKyAgICAgICAgICAgICAgICAgICAgdGV4dE9mZnNldFggPSAoKHJlY3RXaWR0aCAtIHRl eHRXaWR0aCkgLy8gMiApCisrICAgICAgICAgICAgICAgICAgICAgdGV4dE9mZnNldFkgPSAobm90 IHN0eWxlICYgSU5CX1NIT1dfT05MWV9URVhUICBhbmQgW3BvcyArIHNlbGYuX25JbWdTaXplICAr IGltZ1RvcFBhZGRpbmcgKyAzXSBvciBcCisrLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFtwb3MgKyAoKHNlbGYuX25JbWdTaXplICogMiAtIHRleHRIZWlnaHQpIC8gMiAp XSlbMF0KKysrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3BvcyArICgo c2VsZi5fbkltZ1NpemUgKiAyIC0gdGV4dEhlaWdodCkgLy8gMiApXSlbMF0KKysgCisrICAgICAg ICAgICAgICAgICBlbHNlOgorKyAKKystICAgICAgICAgICAgICAgICAgICB0ZXh0T2Zmc2V0WCA9 IChyZWN0V2lkdGggLSB0ZXh0V2lkdGgpIC8gMiAgKyBwb3MgKyBuVGV4dFBhZGRpbmdMZWZ0Cisr KyAgICAgICAgICAgICAgICAgICAgdGV4dE9mZnNldFggPSAocmVjdFdpZHRoIC0gdGV4dFdpZHRo KSAvLyAyICArIHBvcyArIG5UZXh0UGFkZGluZ0xlZnQKKysgICAgICAgICAgICAgICAgICAgICB0 ZXh0T2Zmc2V0WSA9IChub3Qgc3R5bGUgJiBJTkJfU0hPV19PTkxZX1RFWFQgYW5kIFtzZWxmLl9u SW1nU2l6ZSArIGltZ1RvcFBhZGRpbmcgKyAzXSBvciBcCisrLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFsoKHNlbGYuX25JbWdTaXplICogMiAtIHRleHRIZWlnaHQpIC8g MiApXSlbMF0KKysrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWygoc2Vs Zi5fbkltZ1NpemUgKiAyIC0gdGV4dEhlaWdodCkgLy8gMiApXSlbMF0KKysgCisrICAgICAgICAg ICAgICAgICBkYy5TZXRUZXh0Rm9yZWdyb3VuZCh3eC5TeXN0ZW1TZXR0aW5ncy5HZXRDb2xvdXIo d3guU1lTX0NPTE9VUl9XSU5ET1dURVhUKSkKKysgICAgICAgICAgICAgICAgIGRjLkRyYXdUZXh0 KGZpeGVkVGV4dCwgdGV4dE9mZnNldFgsIHRleHRPZmZzZXRZKQorK0BAIC0xNTkxLDggKzE1OTEs OCBAQCBkZWYgT25QYWludChzZWxmLCBldmVudCk6CisrICAgICAgICAgICAgICMgRHJhdyBncmFk aWVudCBpbiB0aGUgYmFja2dyb3VuZCBhcmVhCisrICAgICAgICAgICAgIHN0YXJ0Q29sb3VyID0g c2VsZi5fY29sb3Vyc01hcFtJTkJfVEFCX0FSRUFfQkFDS0dST1VORF9DT0xPVVJdCisrICAgICAg ICAgICAgIGVuZENvbG91ciAgID0gQXJ0TWFuYWdlci5HZXQoKS5MaWdodENvbG91cihzZWxmLl9j b2xvdXJzTWFwW0lOQl9UQUJfQVJFQV9CQUNLR1JPVU5EX0NPTE9VUl0sIDUwKQorKy0gICAgICAg ICAgICBBcnRNYW5hZ2VyLkdldCgpLlBhaW50U3RyYWlnaHRHcmFkaWVudEJveChkYywgd3guUmVj dCgwLCAwLCBzaXplLnggLyAyLCBzaXplLnkpLCBzdGFydENvbG91ciwgZW5kQ29sb3VyLCBGYWxz ZSkKKystICAgICAgICAgICAgQXJ0TWFuYWdlci5HZXQoKS5QYWludFN0cmFpZ2h0R3JhZGllbnRC b3goZGMsIHd4LlJlY3Qoc2l6ZS54IC8gMiwgMCwgc2l6ZS54IC8gMiwgc2l6ZS55KSwgZW5kQ29s b3VyLCBzdGFydENvbG91ciwgRmFsc2UpCisrKyAgICAgICAgICAgIEFydE1hbmFnZXIuR2V0KCku UGFpbnRTdHJhaWdodEdyYWRpZW50Qm94KGRjLCB3eC5SZWN0KDAsIDAsIHNpemUueCAvLyAyLCBz aXplLnkpLCBzdGFydENvbG91ciwgZW5kQ29sb3VyLCBGYWxzZSkKKysrICAgICAgICAgICAgQXJ0 TWFuYWdlci5HZXQoKS5QYWludFN0cmFpZ2h0R3JhZGllbnRCb3goZGMsIHd4LlJlY3Qoc2l6ZS54 IC8vIDIsIDAsIHNpemUueCAvLyAyLCBzaXplLnkpLCBlbmRDb2xvdXIsIHN0YXJ0Q29sb3VyLCBG YWxzZSkKKysgCisrICAgICAgICAgZWxzZToKKysgCisrQEAgLTE2MzgsNyArMTYzOCw3IEBAIGRl ZiBPblBhaW50KHNlbGYsIGV2ZW50KToKKysgCisrICAgICAgICAgICAgIGlmIHNlbGYuSGFzQUdX RmxhZyhJTkJfU0hPV19PTkxZX1RFWFQpOgorKyAgICAgICAgICAgICAgICAgZm9udCA9IHd4LlN5 c3RlbVNldHRpbmdzLkdldEZvbnQod3guU1lTX0RFRkFVTFRfR1VJX0ZPTlQpCisrLSAgICAgICAg ICAgICAgICBmb250LlNldFBvaW50U2l6ZShmb250LkdldFBvaW50U2l6ZSgpICogc2VsZi5HZXRQ YXJlbnQoKS5HZXRGb250U2l6ZU11bHRpcGxlKCkpCisrKyAgICAgICAgICAgICAgICBmb250LlNl dFBvaW50U2l6ZShpbnQoZm9udC5HZXRQb2ludFNpemUoKSAqIHNlbGYuR2V0UGFyZW50KCkuR2V0 Rm9udFNpemVNdWx0aXBsZSgpKSkKKysgCisrICAgICAgICAgICAgICAgICBpZiBzZWxmLkdldFBh cmVudCgpLkdldEZvbnRCb2xkKCk6CisrICAgICAgICAgICAgICAgICAgICAgZm9udC5TZXRXZWln aHQod3guRk9OVFdFSUdIVF9CT0xEKQorK0BAIC0xOTU0LDcgKzE5NTQsNyBAQCBkZWYgRHJhd1dl YkhvdmVyKHNlbGYsIGRjLCBjYXB0aW9uLCB4Q29vcmQsIHlDb29yZCwgc2VsZWN0ZWQpOgorKyAK KysgICAgICAgICAjIFJlZHJhdyB0aGUgdGV4dCB3aXRoIHVuZGVybGluZWQgZm9udAorKyAgICAg ICAgIHVuZGVyTGluZWRGb250ID0gd3guU3lzdGVtU2V0dGluZ3MuR2V0Rm9udCh3eC5TWVNfREVG QVVMVF9HVUlfRk9OVCkKKystICAgICAgICB1bmRlckxpbmVkRm9udC5TZXRQb2ludFNpemUodW5k ZXJMaW5lZEZvbnQuR2V0UG9pbnRTaXplKCkgKiBzZWxmLkdldFBhcmVudCgpLkdldEZvbnRTaXpl TXVsdGlwbGUoKSkKKysrICAgICAgICB1bmRlckxpbmVkRm9udC5TZXRQb2ludFNpemUoaW50KHVu ZGVyTGluZWRGb250LkdldFBvaW50U2l6ZSgpICogc2VsZi5HZXRQYXJlbnQoKS5HZXRGb250U2l6 ZU11bHRpcGxlKCkpKQorKyAgICAgICAgIGlmIHNlbGYuR2V0UGFyZW50KCkuR2V0Rm9udEJvbGQo KToKKysgICAgICAgICAgICAgdW5kZXJMaW5lZEZvbnQuU2V0V2VpZ2h0KHd4LkZPTlRXRUlHSFRf Qk9MRCkKKysgICAgICAgICBlbGlmIHNlbGYuSGFzQUdXRmxhZyhJTkJfQk9MRF9UQUJfU0VMRUNU SU9OKSBhbmQgc2VsZWN0ZWQ6CisrQEAgLTIwNTAsNyArMjA1MCw3IEBAIGRlZiBEcmF3TGFiZWwo c2VsZiwgZGMsIHJlY3QsIHRleHQsIGJtcCwgaW1nSW5mbywgb3JpZW50YXRpb25MZWZ0LCBpbWdJ ZHgsIHNlbGVjCisrICAgICAgICAgaW1nUmVjdCA9IHd4LlJlY3QoKnJlY3QpCisrIAorKyAgICAg ICAgIGZvbnQgPSB3eC5TeXN0ZW1TZXR0aW5ncy5HZXRGb250KHd4LlNZU19ERUZBVUxUX0dVSV9G T05UKQorKy0gICAgICAgIGZvbnQuU2V0UG9pbnRTaXplKGZvbnQuR2V0UG9pbnRTaXplKCkgKiBz ZWxmLkdldFBhcmVudCgpLkdldEZvbnRTaXplTXVsdGlwbGUoKSkKKysrICAgICAgICBmb250LlNl dFBvaW50U2l6ZShpbnQoZm9udC5HZXRQb2ludFNpemUoKSAqIHNlbGYuR2V0UGFyZW50KCkuR2V0 Rm9udFNpemVNdWx0aXBsZSgpKSkKKysgCisrICAgICAgICAgaWYgc2VsZi5HZXRQYXJlbnQoKS5H ZXRGb250Qm9sZCgpOgorKyAgICAgICAgICAgICBmb250LlNldFdlaWdodCh3eC5GT05UV0VJR0hU X0JPTEQpCisrQEAgLTIwNjksNyArMjA2OSw3IEBAIGRlZiBEcmF3TGFiZWwoc2VsZiwgZGMsIHJl Y3QsIHRleHQsIGJtcCwgaW1nSW5mbywgb3JpZW50YXRpb25MZWZ0LCBpbWdJZHgsIHNlbGVjCisr IAorKyAgICAgICAgICMgVGV4dCBib3VuZGluZyByZWN0YW5nbGUKKysgICAgICAgICB0ZXh0UmVj dC54ICs9IG5QYWRkaW5nCisrLSAgICAgICAgdGV4dFJlY3QueSA9IHJlY3QueSArIChyZWN0Lmhl aWdodCAtIGgpLzIKKysrICAgICAgICB0ZXh0UmVjdC55ID0gcmVjdC55ICsgKHJlY3QuaGVpZ2h0 IC0gaCkvLzIKKysgICAgICAgICB0ZXh0UmVjdC53aWR0aCA9IHJlY3Qud2lkdGggLSAyICogblBh ZGRpbmcKKysgCisrICAgICAgICAgaWYgYm1wLklzT2soKSBhbmQgbm90IHNlbGYuSGFzQUdXRmxh ZyhJTkJfU0hPV19PTkxZX1RFWFQpOgorK0BAIC0yMDg2LDcgKzIwODYsNyBAQCBkZWYgRHJhd0xh YmVsKHNlbGYsIGRjLCByZWN0LCB0ZXh0LCBibXAsIGltZ0luZm8sIG9yaWVudGF0aW9uTGVmdCwg aW1nSWR4LCBzZWxlYworKyAKKysgICAgICAgICAgICAgaW1nUmVjdC54ICs9IG5QYWRkaW5nCisr ICAgICAgICAgICAgIGltZ1JlY3Qud2lkdGggPSBibXAuR2V0V2lkdGgoKQorKy0gICAgICAgICAg ICBpbWdSZWN0LnkgPSByZWN0LnkgKyAocmVjdC5oZWlnaHQgLSBibXAuR2V0SGVpZ2h0KCkpLzIK KysrICAgICAgICAgICAgaW1nUmVjdC55ID0gcmVjdC55ICsgKHJlY3QuaGVpZ2h0IC0gYm1wLkdl dEhlaWdodCgpKS8vMgorKyAgICAgICAgICAgICBpbWdSZWN0LmhlaWdodCA9IGJtcC5HZXRIZWln aHQoKQorKyAKKysgICAgICAgICAjIERyYXcgYm91bmRpbmcgcmVjdGFuZ2xlCisrQEAgLTI0OTYs NyArMjQ5Niw3IEBAIGRlZiBSZXNpemVUYWJBcmVhKHNlbGYpOgorKyAgICAgICAgICAgICBkYyA9 IHd4Lk1lbW9yeURDKCkKKysgICAgICAgICAgICAgZGMuU2VsZWN0T2JqZWN0KHd4LkJpdG1hcCgx LCAxKSkKKysgICAgICAgICAgICAgZm9udCA9IHd4LlN5c3RlbVNldHRpbmdzLkdldEZvbnQod3gu U1lTX0RFRkFVTFRfR1VJX0ZPTlQpCisrLSAgICAgICAgICAgIGZvbnQuU2V0UG9pbnRTaXplKGZv bnQuR2V0UG9pbnRTaXplKCkqc2VsZi5fZm9udFNpemVNdWx0aXBsZSkKKysrICAgICAgICAgICAg Zm9udC5TZXRQb2ludFNpemUoaW50KGZvbnQuR2V0UG9pbnRTaXplKCkqc2VsZi5fZm9udFNpemVN dWx0aXBsZSkpCisrICAgICAgICAgICAgIGlmIHNlbGYuR2V0Rm9udEJvbGQoKSBvciBhZ3dTdHls ZSAmIElOQl9CT0xEX1RBQl9TRUxFQ1RJT046CisrICAgICAgICAgICAgICAgICBmb250LlNldFdl aWdodCh3eC5GT05UV0VJR0hUX0JPTEQpCisrICAgICAgICAgICAgIGRjLlNldEZvbnQoZm9udCkK KytkaWZmIC0tZ2l0IGEvd3gvbGliL2Fndy9wZWFrbWV0ZXIucHkgYi93eC9saWIvYWd3L3BlYWtt ZXRlci5weQorK2luZGV4IDA1NWRiZWY4MS4uYTVmODhhOWQ1IDEwMDY0NAorKy0tLSBhL3d4L2xp Yi9hZ3cvcGVha21ldGVyLnB5CisrKysrIGIvd3gvbGliL2Fndy9wZWFrbWV0ZXIucHkKKytAQCAt Nzg0LDcgKzc4NCw3IEBAIGRlZiBEcmF3SG9yekJhbmQoc2VsZiwgZGMsIHJlY3QpOgorKyAgICAg ICAgICAgICAgICAgbWF4V2lkdGggPSBzaXplLngqaG9yekJhbmRzCisrICAgICAgICAgICAgICAg ICBwb2ludHMgPSBbd3guUG9pbnQoKSBmb3IgaSBpbiByYW5nZSgyKV0KKysgICAgICAgICAgICAg ICAgIHBvaW50c1swXS55ID0gcmVjdFByZXYuR2V0VG9wUmlnaHQoKS55IC0geURlY2FsCisrLSAg ICAgICAgICAgICAgICBwb2ludHNbMF0ueCA9IHJlY3RQcmV2LkdldEJvdHRvbUxlZnQoKS54ICsg c2VsZi5fbWV0ZXJEYXRhW3ZlcnRdLl9mYWxsb2ZmKm1heFdpZHRoL3NlbGYuX21heFZhbHVlCisr KyAgICAgICAgICAgICAgICBwb2ludHNbMF0ueCA9IHJlY3RQcmV2LkdldEJvdHRvbUxlZnQoKS54 ICsgc2VsZi5fbWV0ZXJEYXRhW3ZlcnRdLl9mYWxsb2ZmKm1heFdpZHRoLy9zZWxmLl9tYXhWYWx1 ZQorKyAgICAgICAgICAgICAgICAgcG9pbnRzWzFdLnkgPSByZWN0UHJldi5HZXRCb3R0b21MZWZ0 KCkueSArIHlEZWNhbAorKyAgICAgICAgICAgICAgICAgcG9pbnRzWzFdLnggPSBwb2ludHNbMF0u eAorKyAgICAgICAgICAgICAgICAgZGMuU2V0UGVuKHBlbikKKytkaWZmIC0tZ2l0IGEvd3gvbGli L2Fndy9weWdhdWdlLnB5IGIvd3gvbGliL2Fndy9weWdhdWdlLnB5CisraW5kZXggYmFiNDU5YTNh Li5iODY1NDQzNmEgMTAwNjQ0CisrLS0tIGEvd3gvbGliL2Fndy9weWdhdWdlLnB5CisrKysrIGIv d3gvbGliL2Fndy9weWdhdWdlLnB5CisrQEAgLTM0NCw3ICszNDQsNyBAQCBkZWYgT25QYWludChz ZWxmLCBldmVudCk6CisrICAgICAgICAgICAgICAgICBjMSxjMiA9IGdyYWRpZW50CisrICAgICAg ICAgICAgICAgICB3ID0gcmVjdC53aWR0aCAqIChmbG9hdChzZWxmLl92YWx1ZVNvcnRlZFtpXSkg LyBzZWxmLl9yYW5nZSkKKysgICAgICAgICAgICAgICAgIHIgPSBjb3B5LmNvcHkocmVjdCkKKyst ICAgICAgICAgICAgICAgIHIud2lkdGggPSB3CisrKyAgICAgICAgICAgICAgICByLndpZHRoID0g aW50KHcpCisrICAgICAgICAgICAgICAgICBkYy5HcmFkaWVudEZpbGxMaW5lYXIociwgYzEsIGMy LCB3eC5FQVNUKQorKyAgICAgICAgIGVsc2U6CisrICAgICAgICAgICAgIGZvciBpLCBjb2xvdXIg aW4gZW51bWVyYXRlKHNlbGYuX2JhckNvbG91clNvcnRlZCk6CisrQEAgLTM1Miw3ICszNTIsNyBA QCBkZWYgT25QYWludChzZWxmLCBldmVudCk6CisrICAgICAgICAgICAgICAgICBkYy5TZXRQZW4o d3guUGVuKGNvbG91cikpCisrICAgICAgICAgICAgICAgICB3ID0gcmVjdC53aWR0aCAqIChmbG9h dChzZWxmLl92YWx1ZVNvcnRlZFtpXSkgLyBzZWxmLl9yYW5nZSkKKysgICAgICAgICAgICAgICAg IHIgPSBjb3B5LmNvcHkocmVjdCkKKystICAgICAgICAgICAgICAgIHIud2lkdGggPSB3CisrKyAg ICAgICAgICAgICAgICByLndpZHRoID0gaW50KHcpCisrICAgICAgICAgICAgICAgICBkYy5EcmF3 UmVjdGFuZ2xlKHIpCisrIAorKyAKKytkaWZmIC0tZ2l0IGEvd3gvbGliL2Fndy9yaWJib24vYXJ0 X2F1aS5weSBiL3d4L2xpYi9hZ3cvcmliYm9uL2FydF9hdWkucHkKKytpbmRleCBhMWQyNTU4NDMu LjMxZmVkZjQ4NyAxMDA2NDQKKystLS0gYS93eC9saWIvYWd3L3JpYmJvbi9hcnRfYXVpLnB5Cisr KysrIGIvd3gvbGliL2Fndy9yaWJib24vYXJ0X2F1aS5weQorK0BAIC0zOTAsNyArMzkwLDcgQEAg ZGVmIERyYXdUYWIoc2VsZiwgZGMsIHduZCwgdGFiKToKKysgICAgICAgICAgICAgZ3JhZF9yZWN0 ID0gd3guUmVjdCgqdGFiLnJlY3QpCisrICAgICAgICAgICAgIGdyYWRfcmVjdC5oZWlnaHQgLT0g NAorKyAgICAgICAgICAgICBncmFkX3JlY3Qud2lkdGggLT0gMQorKy0gICAgICAgICAgICBncmFk X3JlY3QuaGVpZ2h0IC89IDIKKysrICAgICAgICAgICAgZ3JhZF9yZWN0LmhlaWdodCAvLz0gMgor KyAgICAgICAgICAgICBncmFkX3JlY3QueSA9IGdyYWRfcmVjdC55ICsgdGFiLnJlY3QuaGVpZ2h0 IC0gZ3JhZF9yZWN0LmhlaWdodCAtIDEKKysgICAgICAgICAgICAgZGMuU2V0QnJ1c2goc2VsZi5f dGFiX2FjdGl2ZV90b3BfYmFja2dyb3VuZF9icnVzaCkKKysgICAgICAgICAgICAgZGMuRHJhd1Jl Y3RhbmdsZSh0YWIucmVjdC54LCB0YWIucmVjdC55ICsgMywgdGFiLnJlY3Qud2lkdGggLSAxLCBn cmFkX3JlY3QueSAtIHRhYi5yZWN0LnkgLSAzKQorK0BAIC00MDEsNyArNDAxLDcgQEAgZGVmIERy YXdUYWIoc2VsZiwgZGMsIHduZCwgdGFiKToKKysgICAgICAgICAgICAgYnRtX3JlY3QgPSB3eC5S ZWN0KCp0YWIucmVjdCkKKysgICAgICAgICAgICAgYnRtX3JlY3QuaGVpZ2h0IC09IDQKKysgICAg ICAgICAgICAgYnRtX3JlY3Qud2lkdGggLT0gMQorKy0gICAgICAgICAgICBidG1fcmVjdC5oZWln aHQgLz0gMgorKysgICAgICAgICAgICBidG1fcmVjdC5oZWlnaHQgLy89IDIKKysgICAgICAgICAg ICAgYnRtX3JlY3QueSA9IGJ0bV9yZWN0LnkgKyB0YWIucmVjdC5oZWlnaHQgLSBidG1fcmVjdC5o ZWlnaHQgLSAxCisrICAgICAgICAgICAgIGRjLlNldEJydXNoKHNlbGYuX3RhYl9ob3Zlcl9iYWNr Z3JvdW5kX2JydXNoKQorKyAgICAgICAgICAgICBkYy5EcmF3UmVjdGFuZ2xlKGJ0bV9yZWN0Lngs IGJ0bV9yZWN0LnksIGJ0bV9yZWN0LndpZHRoLCBidG1fcmVjdC5oZWlnaHQpCisrQEAgLTQzNCw4 ICs0MzQsOCBAQCBkZWYgRHJhd1RhYihzZWxmLCBkYywgd25kLCB0YWIpOgorKyAgICAgICAgICAg ICBpY29uID0gdGFiLnBhZ2UuR2V0SWNvbigpCisrICAgICAgICAgICAgIGlmIHNlbGYuX2ZsYWdz ICYgUklCQk9OX0JBUl9TSE9XX1BBR0VfTEFCRUxTID09IDA6CisrICAgICAgICAgICAgICAgICBp ZiBpY29uLklzT2soKToKKystICAgICAgICAgICAgICAgICAgICB4ID0gdGFiLnJlY3QueCArICh0 YWIucmVjdC53aWR0aCAtIGljb24uR2V0V2lkdGgoKSkgLyAyCisrLSAgICAgICAgICAgICAgICAg ICAgZGMuRHJhd0JpdG1hcChpY29uLCB4LCB0YWIucmVjdC55ICsgMSArICh0YWIucmVjdC5oZWln aHQgLSAxIC0gaWNvbi5HZXRIZWlnaHQoKSkgLyAyLCBUcnVlKQorKysgICAgICAgICAgICAgICAg ICAgIHggPSB0YWIucmVjdC54ICsgKHRhYi5yZWN0LndpZHRoIC0gaWNvbi5HZXRXaWR0aCgpKSAv LyAyCisrKyAgICAgICAgICAgICAgICAgICAgZGMuRHJhd0JpdG1hcChpY29uLCB4LCB0YWIucmVj dC55ICsgMSArICh0YWIucmVjdC5oZWlnaHQgLSAxIC0gaWNvbi5HZXRIZWlnaHQoKSkgLy8gMiwg VHJ1ZSkKKysgCisrICAgICAgICAgaWYgc2VsZi5fZmxhZ3MgJiBSSUJCT05fQkFSX1NIT1dfUEFH RV9MQUJFTFM6CisrICAgICAgICAgICAgIGxhYmVsID0gdGFiLnBhZ2UuR2V0TGFiZWwoKQorK0BA IC00NTAsNyArNDUwLDcgQEAgZGVmIERyYXdUYWIoc2VsZiwgZGMsIHduZCwgdGFiKToKKysgICAg ICAgICAgICAgICAgICAgICBvZmZzZXQgKz0gaWNvbi5HZXRXaWR0aCgpICsgMgorKyAKKysgICAg ICAgICAgICAgICAgIHRleHRfd2lkdGgsIHRleHRfaGVpZ2h0ID0gZGMuR2V0VGV4dEV4dGVudChs YWJlbCkKKystICAgICAgICAgICAgICAgIHggPSAodGFiLnJlY3Qud2lkdGggLSAyIC0gdGV4dF93 aWR0aCAtIG9mZnNldCkgLyAyCisrKyAgICAgICAgICAgICAgICB4ID0gKHRhYi5yZWN0LndpZHRo IC0gMiAtIHRleHRfd2lkdGggLSBvZmZzZXQpIC8vIDIKKysgICAgICAgICAgICAgICAgIGlmIHgg PiA4OgorKyAgICAgICAgICAgICAgICAgICAgIHggPSA4CisrICAgICAgICAgICAgICAgICBlbGlm IHggPCAxOgorK0BAIC00NTgsNyArNDU4LDcgQEAgZGVmIERyYXdUYWIoc2VsZiwgZGMsIHduZCwg dGFiKToKKysgCisrICAgICAgICAgICAgICAgICB3aWR0aCA9IHRhYi5yZWN0LndpZHRoIC0geCAt IDIKKysgICAgICAgICAgICAgICAgIHggKz0gdGFiLnJlY3QueCArIG9mZnNldAorKy0gICAgICAg ICAgICAgICAgeSA9IHRhYi5yZWN0LnkgKyAodGFiLnJlY3QuaGVpZ2h0IC0gdGV4dF9oZWlnaHQp IC8gMgorKysgICAgICAgICAgICAgICAgeSA9IHRhYi5yZWN0LnkgKyAodGFiLnJlY3QuaGVpZ2h0 IC0gdGV4dF9oZWlnaHQpIC8vIDIKKysgCisrICAgICAgICAgICAgICAgICBpZiBpY29uLklzT2so KToKKysgICAgICAgICAgICAgICAgICAgICBkYy5EcmF3Qml0bWFwKGljb24sIHggLSBvZmZzZXQs IHRhYi5yZWN0LnkgKyAodGFiLnJlY3QuaGVpZ2h0IC0gaWNvbi5HZXRIZWlnaHQoKSkgLyAyLCBU cnVlKQorK0BAIC04OTIsOCArODkyLDggQEAgZGVmIERyYXdNaW5pbWlzZWRQYW5lbChzZWxmLCBk Yywgd25kLCByZWN0LCBiaXRtYXApOgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2VsZi5fcGFnZV9ob3Zlcl9iYWNrZ3JvdW5kX2dyYWRpZW50X2NvbG91ciwgd3guU09VVEgp CisrIAorKyAgICAgICAgIGlmIGJpdG1hcC5Jc09rKCk6CisrLSAgICAgICAgICAgIGRjLkRyYXdC aXRtYXAoYml0bWFwLCBwcmV2aWV3LnggKyAocHJldmlldy53aWR0aCAtIGJpdG1hcC5HZXRXaWR0 aCgpKSAvIDIsCisrLSAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlldy55ICsgKHByZXZp ZXcuaGVpZ2h0IC0gYml0bWFwLkdldEhlaWdodCgpKSAvIDIsIFRydWUpCisrKyAgICAgICAgICAg IGRjLkRyYXdCaXRtYXAoYml0bWFwLCBwcmV2aWV3LnggKyAocHJldmlldy53aWR0aCAtIGJpdG1h cC5HZXRXaWR0aCgpKSAvLyAyLAorKysgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXZpZXcu eSArIChwcmV2aWV3LmhlaWdodCAtIGJpdG1hcC5HZXRIZWlnaHQoKSkgLy8gMiwgVHJ1ZSkKKysg CisrIAorKyAgICAgZGVmIERyYXdQYXJ0aWFsUGFuZWxCYWNrZ3JvdW5kKHNlbGYsIGRjLCB3bmQs IHJlY3QpOgorK0BAIC0xMDI0LDcgKzEwMjQsNyBAQCBkZWYgRHJhd0dhbGxlcnlCdXR0b24oc2Vs ZiwgZGMsIHJlY3QsIHN0YXRlLCBiaXRtYXBzKToKKysgICAgICAgICAgICAgZGMuRHJhd1JlY3Rh bmdsZShyZWR1Y2VkX3JlY3QueCwgcmVkdWNlZF9yZWN0LnksIHJlZHVjZWRfcmVjdC53aWR0aCwg cmVkdWNlZF9yZWN0LmhlaWdodCkKKysgICAgICAgICAgICAgYnRuX2JpdG1hcCA9IGJpdG1hcHNb M10KKysgCisrLSAgICAgICAgZGMuRHJhd0JpdG1hcChidG5fYml0bWFwLCByZWR1Y2VkX3JlY3Qu eCArIHJlZHVjZWRfcmVjdC53aWR0aCAvIDIgLSAyLCAocmVjdC55ICsgcmVjdC5oZWlnaHQgLyAy KSAtIDIsIFRydWUpCisrKyAgICAgICAgZGMuRHJhd0JpdG1hcChidG5fYml0bWFwLCByZWR1Y2Vk X3JlY3QueCArIHJlZHVjZWRfcmVjdC53aWR0aCAvLyAyIC0gMiwgKHJlY3QueSArIHJlY3QuaGVp Z2h0IC8vIDIpIC0gMiwgVHJ1ZSkKKysgCisrIAorKyAgICAgZGVmIERyYXdHYWxsZXJ5SXRlbUJh Y2tncm91bmQoc2VsZiwgZGMsIHduZCwgcmVjdCwgaXRlbSk6CisrQEAgLTEyNzcsNyArMTI3Nyw3 IEBAIGRlZiBEcmF3VG9vbChzZWxmLCBkYywgd25kLCByZWN0LCBiaXRtYXAsIGtpbmQsIHN0YXRl KToKKysgICAgICAgICAgICAgaWYgaXNfc3BsaXRfaHlicmlkOgorKyAgICAgICAgICAgICAgICAg ZGMuRHJhd0xpbmUocmVjdC54ICsgYXZhaWxfd2lkdGggKyAxLCByZWN0LnksIHJlY3QueCArIGF2 YWlsX3dpZHRoICsgMSwgcmVjdC55ICsgcmVjdC5oZWlnaHQpCisrIAorKy0gICAgICAgICAgICBk Yy5EcmF3Qml0bWFwKHNlbGYuX3Rvb2xiYXJfZHJvcF9iaXRtYXAsIGJnX3JlY3QueCArIGF2YWls X3dpZHRoICsgMiwgYmdfcmVjdC55ICsgKGJnX3JlY3QuaGVpZ2h0IC8gMikgLSAyLCBUcnVlKQor KysgICAgICAgICAgICBkYy5EcmF3Qml0bWFwKHNlbGYuX3Rvb2xiYXJfZHJvcF9iaXRtYXAsIGJn X3JlY3QueCArIGF2YWlsX3dpZHRoICsgMiwgYmdfcmVjdC55ICsgKGJnX3JlY3QuaGVpZ2h0IC8v IDIpIC0gMiwgVHJ1ZSkKKysgCisrLSAgICAgICAgZGMuRHJhd0JpdG1hcChiaXRtYXAsIGJnX3Jl Y3QueCArIChhdmFpbF93aWR0aCAtIGJpdG1hcC5HZXRXaWR0aCgpKSAvIDIsIGJnX3JlY3QueSAr IChiZ19yZWN0LmhlaWdodCAtIGJpdG1hcC5HZXRIZWlnaHQoKSkgLyAyLCBUcnVlKQorKysgICAg ICAgIGRjLkRyYXdCaXRtYXAoYml0bWFwLCBiZ19yZWN0LnggKyAoYXZhaWxfd2lkdGggLSBiaXRt YXAuR2V0V2lkdGgoKSkgLy8gMiwgYmdfcmVjdC55ICsgKGJnX3JlY3QuaGVpZ2h0IC0gYml0bWFw LkdldEhlaWdodCgpKSAvLyAyLCBUcnVlKQorKyAKKytkaWZmIC0tZ2l0IGEvd3gvbGliL2Fndy9y aWJib24vYXJ0X2ludGVybmFsLnB5IGIvd3gvbGliL2Fndy9yaWJib24vYXJ0X2ludGVybmFsLnB5 CisraW5kZXggNGE4ZGM3Y2UwLi43OGU4ZjNmZTQgMTAwNjQ0CisrLS0tIGEvd3gvbGliL2Fndy9y aWJib24vYXJ0X2ludGVybmFsLnB5CisrKysrIGIvd3gvbGliL2Fndy9yaWJib24vYXJ0X2ludGVy bmFsLnB5CisrQEAgLTMyLDkgKzMyLDkgQEAgZGVmIFJpYmJvbkludGVycG9sYXRlQ29sb3VyKHN0 YXJ0X2NvbG91ciwgZW5kX2NvbG91ciwgcG9zaXRpb24sIHN0YXJ0X3Bvc2l0aW9uLAorKyAgICAg ciA9IGVuZF9jb2xvdXIuUmVkKCkgLSBzdGFydF9jb2xvdXIuUmVkKCkKKysgICAgIGcgPSBlbmRf Y29sb3VyLkdyZWVuKCkgLSBzdGFydF9jb2xvdXIuR3JlZW4oKQorKyAgICAgYiA9IGVuZF9jb2xv dXIuQmx1ZSgpIC0gc3RhcnRfY29sb3VyLkJsdWUoKQorKy0gICAgciA9IHN0YXJ0X2NvbG91ci5S ZWQoKSAgICsgKCgociAqIHBvc2l0aW9uICogMTAwKSAvIGVuZF9wb3NpdGlvbikgLyAxMDApCisr LSAgICBnID0gc3RhcnRfY29sb3VyLkdyZWVuKCkgKyAoKChnICogcG9zaXRpb24gKiAxMDApIC8g ZW5kX3Bvc2l0aW9uKSAvIDEwMCkKKystICAgIGIgPSBzdGFydF9jb2xvdXIuQmx1ZSgpICArICgo KGIgKiBwb3NpdGlvbiAqIDEwMCkgLyBlbmRfcG9zaXRpb24pIC8gMTAwKQorKysgICAgciA9IHN0 YXJ0X2NvbG91ci5SZWQoKSAgICsgKCgociAqIHBvc2l0aW9uICogMTAwKSAvLyBlbmRfcG9zaXRp b24pIC8vIDEwMCkKKysrICAgIGcgPSBzdGFydF9jb2xvdXIuR3JlZW4oKSArICgoKGcgKiBwb3Np dGlvbiAqIDEwMCkgLy8gZW5kX3Bvc2l0aW9uKSAvLyAxMDApCisrKyAgICBiID0gc3RhcnRfY29s b3VyLkJsdWUoKSAgKyAoKChiICogcG9zaXRpb24gKiAxMDApIC8vIGVuZF9wb3NpdGlvbikgLy8g MTAwKQorKyAKKysgICAgIHJldHVybiB3eC5Db2xvdXIociwgZywgYikKKysgCisrQEAgLTYxLDkg KzYxLDkgQEAgZGVmIFJpYmJvbkRyYXdQYXJhbGxlbEdyYWRpZW50TGluZXMoZGMsIG5saW5lcywg bGluZV9vcmlnaW5zLCBzdGVweCwgc3RlcHksIG51bXMKKysgICAgIGJkID0gZW5kX2NvbG91ci5C bHVlKCkgLSBzdGFydF9jb2xvdXIuQmx1ZSgpCisrIAorKyAgICAgZm9yIHN0ZXAgaW4gcmFuZ2Uo bnVtc3RlcHMpOgorKy0gICAgICAgIHIgPSBzdGFydF9jb2xvdXIuUmVkKCkgKyAoKChzdGVwKnJk KjEwMCkvbnVtc3RlcHMpLzEwMCkKKystICAgICAgICBnID0gc3RhcnRfY29sb3VyLkdyZWVuKCkg KyAoKChzdGVwKmdkKjEwMCkvbnVtc3RlcHMpLzEwMCkKKystICAgICAgICBiID0gc3RhcnRfY29s b3VyLkJsdWUoKSArICgoKHN0ZXAqYmQqMTAwKS9udW1zdGVwcykvMTAwKQorKysgICAgICAgIHIg PSBzdGFydF9jb2xvdXIuUmVkKCkgKyAoKChzdGVwKnJkKjEwMCkvL251bXN0ZXBzKS8vMTAwKQor KysgICAgICAgIGcgPSBzdGFydF9jb2xvdXIuR3JlZW4oKSArICgoKHN0ZXAqZ2QqMTAwKS8vbnVt c3RlcHMpLy8xMDApCisrKyAgICAgICAgYiA9IHN0YXJ0X2NvbG91ci5CbHVlKCkgKyAoKChzdGVw KmJkKjEwMCkvL251bXN0ZXBzKS8vMTAwKQorKyAKKysgICAgICAgICBwID0gd3guUGVuKHd4LkNv bG91cihyLCBnLCBiKSkKKysgICAgICAgICBkYy5TZXRQZW4ocCkKKytkaWZmIC0tZ2l0IGEvd3gv bGliL2Fndy9yaWJib24vYXJ0X21zdy5weSBiL3d4L2xpYi9hZ3cvcmliYm9uL2FydF9tc3cucHkK KytpbmRleCBlNzMxN2Q1OWIuLjAwYzNkZmUyYiAxMDA2NDQKKystLS0gYS93eC9saWIvYWd3L3Jp YmJvbi9hcnRfbXN3LnB5CisrKysrIGIvd3gvbGliL2Fndy9yaWJib24vYXJ0X21zdy5weQorK0BA IC05ODIsNyArOTgyLDcgQEAgZGVmIERyYXdUYWIoc2VsZiwgZGMsIHduZCwgdGFiKToKKysgICAg ICAgICAgICAgICAgIGJhY2tncm91bmQud2lkdGggLT0gNAorKyAgICAgICAgICAgICAgICAgYmFj a2dyb3VuZC5oZWlnaHQgLT0gMworKyAgICAgICAgICAgICAgICAgaCA9IGJhY2tncm91bmQuaGVp Z2h0CisrLSAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLmhlaWdodCAvPSAyCisrKyAgICAgICAg ICAgICAgICBiYWNrZ3JvdW5kLmhlaWdodCAvLz0gMgorKyAgICAgICAgICAgICAgICAgZGMuR3Jh ZGllbnRGaWxsTGluZWFyKGJhY2tncm91bmQsIHNlbGYuX3RhYl9ob3Zlcl9iYWNrZ3JvdW5kX3Rv cF9jb2xvdXIsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5f dGFiX2hvdmVyX2JhY2tncm91bmRfdG9wX2dyYWRpZW50X2NvbG91ciwgd3guU09VVEgpCisrIAor K0BAIC0xMDI0LDkgKzEwMjQsOSBAQCBkZWYgRHJhd1RhYihzZWxmLCBkYywgd25kLCB0YWIpOgor KyAgICAgICAgICAgICBpZiBpY29uLklzT2soKToKKysgICAgICAgICAgICAgICAgIHggPSB0YWIu cmVjdC54ICsgNAorKyAgICAgICAgICAgICAgICAgaWYgc2VsZi5fZmxhZ3MgJiBSSUJCT05fQkFS X1NIT1dfUEFHRV9MQUJFTFMgPT0gMDoKKystICAgICAgICAgICAgICAgICAgICB4ID0gdGFiLnJl Y3QueCArICh0YWIucmVjdC53aWR0aCAtIGljb24uR2V0V2lkdGgoKSkgLyAyCisrKyAgICAgICAg ICAgICAgICAgICAgeCA9IHRhYi5yZWN0LnggKyAodGFiLnJlY3Qud2lkdGggLSBpY29uLkdldFdp ZHRoKCkpIC8vIDIKKysgCisrLSAgICAgICAgICAgICAgICBkYy5EcmF3Qml0bWFwKGljb24sIHgs IHRhYi5yZWN0LnkgKyAxICsgKHRhYi5yZWN0LmhlaWdodCAtIDEgLSBpY29uLkdldEhlaWdodCgp KSAvIDIsIFRydWUpCisrKyAgICAgICAgICAgICAgICBkYy5EcmF3Qml0bWFwKGljb24sIHgsIHRh Yi5yZWN0LnkgKyAxICsgKHRhYi5yZWN0LmhlaWdodCAtIDEgLSBpY29uLkdldEhlaWdodCgpKSAv LyAyLCBUcnVlKQorKyAKKysgICAgICAgICBpZiBzZWxmLl9mbGFncyAmIFJJQkJPTl9CQVJfU0hP V19QQUdFX0xBQkVMUzoKKysgICAgICAgICAgICAgbGFiZWwgPSB0YWIucGFnZS5HZXRMYWJlbCgp CisrQEAgLTEwNDMsMTMgKzEwNDMsMTMgQEAgZGVmIERyYXdUYWIoc2VsZiwgZGMsIHduZCwgdGFi KToKKysgICAgICAgICAgICAgICAgICAgICB4ICs9IDMgKyB0YWIucGFnZS5HZXRJY29uKCkuR2V0 V2lkdGgoKQorKyAgICAgICAgICAgICAgICAgICAgIHdpZHRoIC09IDMgKyB0YWIucGFnZS5HZXRJ Y29uKCkuR2V0V2lkdGgoKQorKyAKKystICAgICAgICAgICAgICAgIHkgPSB0YWIucmVjdC55ICsg KHRhYi5yZWN0LmhlaWdodCAtIHRleHRfaGVpZ2h0KSAvIDIKKysrICAgICAgICAgICAgICAgIHkg PSB0YWIucmVjdC55ICsgKHRhYi5yZWN0LmhlaWdodCAtIHRleHRfaGVpZ2h0KSAvLyAyCisrIAor KyAgICAgICAgICAgICAgICAgaWYgd2lkdGggPD0gdGV4dF93aWR0aDoKKysgICAgICAgICAgICAg ICAgICAgICBkYy5TZXRDbGlwcGluZ1JlZ2lvbih4LCB0YWIucmVjdC55LCB3aWR0aCwgdGFiLnJl Y3QuaGVpZ2h0KQorKyAgICAgICAgICAgICAgICAgICAgIGRjLkRyYXdUZXh0KGxhYmVsLCB4LCB5 KQorKyAgICAgICAgICAgICAgICAgZWxzZToKKystICAgICAgICAgICAgICAgICAgICBkYy5EcmF3 VGV4dChsYWJlbCwgeCArICh3aWR0aCAtIHRleHRfd2lkdGgpIC8gMiArIDEsIHkpCisrKyAgICAg ICAgICAgICAgICAgICAgZGMuRHJhd1RleHQobGFiZWwsIHggKyAod2lkdGggLSB0ZXh0X3dpZHRo KSAvLyAyICsgMSwgeSkKKysgCisrIAorKyAgICAgZGVmIERyYXdUYWJTZXBhcmF0b3Ioc2VsZiwg ZGMsIHduZCwgcmVjdCwgdmlzaWJpbGl0eSk6CisrQEAgLTEwOTMsNyArMTA5Myw3IEBAIGRlZiBS ZWFsbHlEcmF3VGFiU2VwYXJhdG9yKHNlbGYsIHduZCwgcmVjdCwgdmlzaWJpbGl0eSk6CisrICAg ICAgICAgZGMgPSB3eC5NZW1vcnlEQyhzZWxmLl9jYWNoZWRfdGFiX3NlcGFyYXRvcikKKysgICAg ICAgICBzZWxmLkRyYXdUYWJDdHJsQmFja2dyb3VuZChkYywgd25kLCByZWN0KQorKyAKKystICAg ICAgICB4ID0gcmVjdC54ICsgcmVjdC53aWR0aCAvIDIKKysrICAgICAgICB4ID0gcmVjdC54ICsg cmVjdC53aWR0aCAvLyAyCisrICAgICAgICAgaCA9IGZsb2F0KHJlY3QuaGVpZ2h0IC0gMSkKKysg CisrICAgICAgICAgcjEgPSBzZWxmLl90YWJfY3RybF9iYWNrZ3JvdW5kX2JydXNoLkdldENvbG91 cigpLlJlZCgpICogKDEuMCAtIHZpc2liaWxpdHkpICsgMC41CisrQEAgLTExNDYsNyArMTE0Niw3 IEBAIGRlZiBEcmF3UGFydGlhbFBhZ2VCYWNrZ3JvdW5kMShzZWxmLCBkYywgd25kLCByZWN0LCBw YWdlLCBvZmZzZXQsIGhvdmVyZWQ9RmFsc2UpCisrIAorKyAgICAgICAgICMgdXBwZXJfcmVjdCwg bG93ZXJfcmVjdCwgcGFpbnRfcmVjdCBhcmUgYWxsIGluIHBhZ2UgY28tb3JkaW5hdGVzCisrICAg ICAgICAgdXBwZXJfcmVjdCA9IHd4LlJlY3QoKmJhY2tncm91bmQpCisrLSAgICAgICAgdXBwZXJf cmVjdC5oZWlnaHQgLz0gNQorKysgICAgICAgIHVwcGVyX3JlY3QuaGVpZ2h0IC8vPSA1CisrIAor KyAgICAgICAgIGxvd2VyX3JlY3QgPSB3eC5SZWN0KCpiYWNrZ3JvdW5kKQorKyAgICAgICAgIGxv d2VyX3JlY3QueSArPSB1cHBlcl9yZWN0LmhlaWdodAorK0BAIC0xMjI5LDcgKzEyMjksNyBAQCBk ZWYgRHJhd1BhZ2VCYWNrZ3JvdW5kKHNlbGYsIGRjLCB3bmQsIHJlY3QpOgorKyAgICAgICAgIGJh Y2tncm91bmQud2lkdGggLT0gNAorKyAgICAgICAgIGJhY2tncm91bmQuaGVpZ2h0IC09IDIKKysg CisrLSAgICAgICAgYmFja2dyb3VuZC5oZWlnaHQgLz0gNQorKysgICAgICAgIGJhY2tncm91bmQu aGVpZ2h0IC8vPSA1CisrICAgICAgICAgZGMuR3JhZGllbnRGaWxsTGluZWFyKGJhY2tncm91bmQs IHNlbGYuX3BhZ2VfYmFja2dyb3VuZF90b3BfY29sb3VyLAorKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzZWxmLl9wYWdlX2JhY2tncm91bmRfdG9wX2dyYWRpZW50X2NvbG91ciwgd3gu U09VVEgpCisrIAorK0BAIC0xNDkzLDEwICsxNDkzLDEwIEBAIGRlZiBEcmF3UGFuZWxCYWNrZ3Jv dW5kKHNlbGYsIGRjLCB3bmQsIHJlY3QpOgorKyAKKysgICAgICAgICBpZiBjbGlwX2xhYmVsOgor KyAgICAgICAgICAgICBjbGlwID0gd3guRENDbGlwcGVyKGRjLCBsYWJlbF9yZWN0KQorKy0gICAg ICAgICAgICBkYy5EcmF3VGV4dChsYWJlbCwgbGFiZWxfcmVjdC54LCBsYWJlbF9yZWN0LnkgKyAo bGFiZWxfcmVjdC5HZXRIZWlnaHQoKSAtIGxhYmVsX3NpemUuR2V0SGVpZ2h0KCkpIC8gMikKKysr ICAgICAgICAgICAgZGMuRHJhd1RleHQobGFiZWwsIGxhYmVsX3JlY3QueCwgbGFiZWxfcmVjdC55 ICsgKGxhYmVsX3JlY3QuR2V0SGVpZ2h0KCkgLSBsYWJlbF9zaXplLkdldEhlaWdodCgpKSAvLyAy KQorKyAgICAgICAgIGVsc2U6CisrLSAgICAgICAgICAgIGRjLkRyYXdUZXh0KGxhYmVsLCBsYWJl bF9yZWN0LnggKyAobGFiZWxfcmVjdC5HZXRXaWR0aCgpIC0gbGFiZWxfc2l6ZS5HZXRXaWR0aCgp KSAvIDIsCisrLSAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsX3JlY3QueSArIChsYWJlbF9y ZWN0LkdldEhlaWdodCgpIC0gbGFiZWxfc2l6ZS5HZXRIZWlnaHQoKSkgLyAyKQorKysgICAgICAg ICAgICBkYy5EcmF3VGV4dChsYWJlbCwgbGFiZWxfcmVjdC54ICsgKGxhYmVsX3JlY3QuR2V0V2lk dGgoKSAtIGxhYmVsX3NpemUuR2V0V2lkdGgoKSkgLy8gMiwKKysrICAgICAgICAgICAgICAgICAg ICAgICAgbGFiZWxfcmVjdC55ICsgKGxhYmVsX3JlY3QuR2V0SGVpZ2h0KCkgLSBsYWJlbF9zaXpl LkdldEhlaWdodCgpKSAvLyAyKQorKyAKKysgICAgICAgICBpZiBoYXNfZXh0X2J1dHRvbjoKKysg ICAgICAgICAgICAgaWYgd25kLklzRXh0QnV0dG9uSG92ZXJlZCgpOgorK0BAIC0xNTc3LDcgKzE1 NzcsNyBAQCBkZWYgRHJhd0dhbGxlcnlCYWNrZ3JvdW5kQ29tbW9uKHNlbGYsIGRjLCB3bmQsIHJl Y3QpOgorKyAgICAgICAgICAgICAjIERpdmlkZXIgYmV0d2VlbiBpdGVtcyBhbmQgYnV0dG9ucwor KyAgICAgICAgICAgICBkYy5EcmF3TGluZShyZWN0LngsIHJlY3QueSArIHJlY3QuaGVpZ2h0IC0g MTUsIHJlY3QueCArIHJlY3Qud2lkdGgsIHJlY3QueSArIHJlY3QuaGVpZ2h0IC0gMTUpCisrIAor Ky0gICAgICAgICAgICB1cF9idG4gPSB3eC5SZWN0KHJlY3QueCwgcmVjdC55ICsgcmVjdC5oZWln aHQgLSAxNSwgcmVjdC53aWR0aCAvIDMsIDE1KQorKysgICAgICAgICAgICB1cF9idG4gPSB3eC5S ZWN0KHJlY3QueCwgcmVjdC55ICsgcmVjdC5oZWlnaHQgLSAxNSwgcmVjdC53aWR0aCAvLyAzLCAx NSkKKysgICAgICAgICAgICAgZG93bl9idG4gPSB3eC5SZWN0KHVwX2J0bi5HZXRSaWdodCgpICsg MSwgdXBfYnRuLkdldFRvcCgpLCB1cF9idG4uR2V0V2lkdGgoKSwgdXBfYnRuLkdldEhlaWdodCgp KQorKyAgICAgICAgICAgICBkYy5EcmF3TGluZShkb3duX2J0bi5HZXRMZWZ0KCksIGRvd25fYnRu LkdldFRvcCgpLCBkb3duX2J0bi5HZXRMZWZ0KCksIGRvd25fYnRuLkdldEJvdHRvbSgpKQorKyAg ICAgICAgICAgICBleHRfYnRuID0gd3guUmVjdChkb3duX2J0bi5HZXRSaWdodCgpICsgMSwgdXBf YnRuLkdldFRvcCgpLCByZWN0LndpZHRoIC0gdXBfYnRuLkdldFdpZHRoKCkgLSBkb3duX2J0bi5H ZXRXaWR0aCgpIC0gMSwgdXBfYnRuLkdldEhlaWdodCgpKQorK0BAIC0xNTg3LDcgKzE1ODcsNyBA QCBkZWYgRHJhd0dhbGxlcnlCYWNrZ3JvdW5kQ29tbW9uKHNlbGYsIGRjLCB3bmQsIHJlY3QpOgor KyAgICAgICAgICAgICAjIERpdmlkZXIgYmV0d2VlbiBpdGVtcyBhbmQgYnV0dG9ucworKyAgICAg ICAgICAgICBkYy5EcmF3TGluZShyZWN0LnggKyByZWN0LndpZHRoIC0gMTUsIHJlY3QueSwgcmVj dC54ICsgcmVjdC53aWR0aCAtIDE1LCByZWN0LnkgKyByZWN0LmhlaWdodCkKKysgCisrLSAgICAg ICAgICAgIHVwX2J0biA9IHd4LlJlY3QocmVjdC54ICsgcmVjdC53aWR0aCAtIDE1LCByZWN0Lnks IDE1LCByZWN0LmhlaWdodCAvIDMpCisrKyAgICAgICAgICAgIHVwX2J0biA9IHd4LlJlY3QocmVj dC54ICsgcmVjdC53aWR0aCAtIDE1LCByZWN0LnksIDE1LCByZWN0LmhlaWdodCAvLyAzKQorKyAg ICAgICAgICAgICBkb3duX2J0biA9IHd4LlJlY3QodXBfYnRuLkdldExlZnQoKSwgdXBfYnRuLkdl dEJvdHRvbSgpICsgMSwgdXBfYnRuLkdldFdpZHRoKCksIHVwX2J0bi5HZXRIZWlnaHQoKSkKKysg ICAgICAgICAgICAgZGMuRHJhd0xpbmUoZG93bl9idG4uR2V0TGVmdCgpLCBkb3duX2J0bi5HZXRU b3AoKSwgZG93bl9idG4uR2V0UmlnaHQoKSwgZG93bl9idG4uR2V0VG9wKCkpCisrICAgICAgICAg ICAgIGV4dF9idG4gPSB3eC5SZWN0KHVwX2J0bi5HZXRMZWZ0KCksIGRvd25fYnRuLkdldEJvdHRv bSgpICsgMSwgdXBfYnRuLkdldFdpZHRoKCksIHJlY3QuaGVpZ2h0IC0gdXBfYnRuLkdldEhlaWdo dCgpIC0gZG93bl9idG4uR2V0SGVpZ2h0KCkgLSAxKQorK0BAIC0xNjMzLDE0ICsxNjMzLDE0IEBA IGRlZiBEcmF3R2FsbGVyeUJ1dHRvbihzZWxmLCBkYywgcmVjdCwgc3RhdGUsIGJpdG1hcHMpOgor KyAKKysgICAgICAgICBkYy5TZXRQZW4od3guVFJBTlNQQVJFTlRfUEVOKQorKyAgICAgICAgIGRj LlNldEJydXNoKGJ0bl90b3BfYnJ1c2gpCisrLSAgICAgICAgZGMuRHJhd1JlY3RhbmdsZShyZWN0 LngsIHJlY3QueSwgcmVjdC53aWR0aCwgcmVjdC5oZWlnaHQgLyAyKQorKysgICAgICAgIGRjLkRy YXdSZWN0YW5nbGUocmVjdC54LCByZWN0LnksIHJlY3Qud2lkdGgsIHJlY3QuaGVpZ2h0IC8vIDIp CisrIAorKyAgICAgICAgIGxvd2VyID0gd3guUmVjdCgqcmVjdCkKKystICAgICAgICBsb3dlci5o ZWlnaHQgPSAobG93ZXIuaGVpZ2h0ICsgMSkgLyAyCisrKyAgICAgICAgbG93ZXIuaGVpZ2h0ID0g KGxvd2VyLmhlaWdodCArIDEpIC8vIDIKKysgICAgICAgICBsb3dlci55ICs9IHJlY3QuaGVpZ2h0 IC0gbG93ZXIuaGVpZ2h0CisrICAgICAgICAgZGMuR3JhZGllbnRGaWxsTGluZWFyKGxvd2VyLCBi dG5fY29sb3VyLCBidG5fZ3JhZF9jb2xvdXIsIHd4LlNPVVRIKQorKyAKKystICAgICAgICBkYy5E cmF3Qml0bWFwKGJ0bl9iaXRtYXAsIHJlY3QueCArIHJlY3Qud2lkdGggLyAyIC0gMiwgbG93ZXIu eSAtIDIsIFRydWUpCisrKyAgICAgICAgZGMuRHJhd0JpdG1hcChidG5fYml0bWFwLCByZWN0Lngg KyByZWN0LndpZHRoIC8vIDIgLSAyLCBsb3dlci55IC0gMiwgVHJ1ZSkKKysgCisrIAorKyAgICAg ZGVmIERyYXdHYWxsZXJ5SXRlbUJhY2tncm91bmQoc2VsZiwgZGMsIHduZCwgcmVjdCwgaXRlbSk6 CisrQEAgLTE2OTEsNyArMTY5MSw3IEBAIGRlZiBEcmF3R2FsbGVyeUl0ZW1CYWNrZ3JvdW5kKHNl bGYsIGRjLCB3bmQsIHJlY3QsIGl0ZW0pOgorKyAgICAgICAgIHVwcGVyLnggKz0gMQorKyAgICAg ICAgIHVwcGVyLndpZHRoIC09IDIKKysgICAgICAgICB1cHBlci55ICs9IDEKKystICAgICAgICB1 cHBlci5oZWlnaHQgLz0gMworKysgICAgICAgIHVwcGVyLmhlaWdodCAvLz0gMworKyAgICAgICAg IGRjLlNldFBlbih3eC5UUkFOU1BBUkVOVF9QRU4pCisrICAgICAgICAgZGMuU2V0QnJ1c2godG9w X2JydXNoKQorKyAgICAgICAgIGRjLkRyYXdSZWN0YW5nbGUodXBwZXIueCwgdXBwZXIueSwgdXBw ZXIud2lkdGgsIHVwcGVyLmhlaWdodCkKKytAQCAtMTc2MCw3ICsxNzYwLDcgQEAgZGVmIERyYXdN aW5pbWlzZWRQYW5lbChzZWxmLCBkYywgd25kLCByZWN0LCBiaXRtYXApOgorKyAgICAgICAgICAg ICBjbGllbnRfcmVjdC54ICs9IDEKKysgICAgICAgICAgICAgY2xpZW50X3JlY3Qud2lkdGggLT0g MgorKyAgICAgICAgICAgICBjbGllbnRfcmVjdC55ICs9IDEKKystICAgICAgICAgICAgY2xpZW50 X3JlY3QuaGVpZ2h0ID0gKHJlY3QueSArIHJlY3QuaGVpZ2h0IC8gNSkgLSBjbGllbnRfcmVjdC54 CisrKyAgICAgICAgICAgIGNsaWVudF9yZWN0LmhlaWdodCA9IChyZWN0LnkgKyByZWN0LmhlaWdo dCAvLyA1KSAtIGNsaWVudF9yZWN0LngKKysgICAgICAgICAgICAgZGMuR3JhZGllbnRGaWxsTGlu ZWFyKGNsaWVudF9yZWN0LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs Zi5fcGFuZWxfYWN0aXZlX2JhY2tncm91bmRfdG9wX2NvbG91ciwKKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHNlbGYuX3BhbmVsX2FjdGl2ZV9iYWNrZ3JvdW5kX3RvcF9ncmFk aWVudF9jb2xvdXIsIHd4LlNPVVRIKQorK0BAIC0xNzg1LDcgKzE3ODUsNyBAQCBkZWYgRHJhd01p bmltaXNlZFBhbmVsKHNlbGYsIGRjLCB3bmQsIHJlY3QsIGJpdG1hcCk6CisrICAgICAgICAgZGMu U2V0UGVuKHd4LlRSQU5TUEFSRU5UX1BFTikKKysgICAgICAgICBkYy5EcmF3UmVjdGFuZ2xlKHBy ZXZpZXcueCArIDEsIHByZXZpZXcueSArIHByZXZpZXcuaGVpZ2h0IC0gOCwgcHJldmlldy53aWR0 aCAtIDIsIDcpCisrIAorKy0gICAgICAgIG1pZF9wb3MgPSByZWN0LnkgKyByZWN0LmhlaWdodCAv IDUgLSBwcmV2aWV3LnkKKysrICAgICAgICBtaWRfcG9zID0gcmVjdC55ICsgcmVjdC5oZWlnaHQg Ly8gNSAtIHByZXZpZXcueQorKyAKKysgICAgICAgICBpZiBtaWRfcG9zIDwgMCBvciBtaWRfcG9z ID49IHByZXZpZXcuaGVpZ2h0OgorKyAgICAgICAgICAgICBmdWxsX3JlY3QgPSB3eC5SZWN0KCpw cmV2aWV3KQorK0BAIC0xODE2LDggKzE4MTYsOCBAQCBkZWYgRHJhd01pbmltaXNlZFBhbmVsKHNl bGYsIGRjLCB3bmQsIHJlY3QsIGJpdG1hcCk6CisrICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzZWxmLl9wYWdlX2hvdmVyX2JhY2tncm91bmRfZ3JhZGllbnRfY29sb3VyLCB3eC5T T1VUSCkKKysgCisrICAgICAgICAgaWYgYml0bWFwLklzT2soKToKKystICAgICAgICAgICAgZGMu RHJhd0JpdG1hcChiaXRtYXAsIHByZXZpZXcueCArIChwcmV2aWV3LndpZHRoIC0gYml0bWFwLkdl dFdpZHRoKCkpIC8gMiwKKystICAgICAgICAgICAgICAgICAgICAgICAgICBwcmV2aWV3LnkgKyAo cHJldmlldy5oZWlnaHQgLSA3IC0gYml0bWFwLkdldEhlaWdodCgpKSAvIDIsIFRydWUpCisrKyAg ICAgICAgICAgIGRjLkRyYXdCaXRtYXAoYml0bWFwLCBwcmV2aWV3LnggKyAocHJldmlldy53aWR0 aCAtIGJpdG1hcC5HZXRXaWR0aCgpKSAvLyAyLAorKysgICAgICAgICAgICAgICAgICAgICAgICAg IHByZXZpZXcueSArIChwcmV2aWV3LmhlaWdodCAtIDcgLSBiaXRtYXAuR2V0SGVpZ2h0KCkpIC8v IDIsIFRydWUpCisrIAorKyAgICAgICAgIHNlbGYuRHJhd1BhbmVsQm9yZGVyKGRjLCBwcmV2aWV3 LCBzZWxmLl9wYW5lbF9ib3JkZXJfcGVuLCBzZWxmLl9wYW5lbF9ib3JkZXJfZ3JhZGllbnRfcGVu KQorKyAgICAgICAgIHNlbGYuRHJhd1BhbmVsQm9yZGVyKGRjLCB0cnVlX3JlY3QsIHNlbGYuX3Bh bmVsX21pbmltaXNlZF9ib3JkZXJfcGVuLCBzZWxmLl9wYW5lbF9taW5pbWlzZWRfYm9yZGVyX2dy YWRpZW50X3BlbikKKytAQCAtMTgyOSwyMCArMTgyOSwyMCBAQCBkZWYgRHJhd01pbmltaXNlZFBh bmVsQ29tbW9uKHNlbGYsIGRjLCB3bmQsIHRydWVfcmVjdCk6CisrIAorKyAgICAgICAgIGlmIHNl bGYuX2ZsYWdzICYgUklCQk9OX0JBUl9GTE9XX1ZFUlRJQ0FMOgorKyAgICAgICAgICAgICBwcmV2 aWV3LnggPSB0cnVlX3JlY3QueCArIDQKKystICAgICAgICAgICAgcHJldmlldy55ID0gdHJ1ZV9y ZWN0LnkgKyAodHJ1ZV9yZWN0LmhlaWdodCAtIHByZXZpZXcuaGVpZ2h0KSAvIDIKKysrICAgICAg ICAgICAgcHJldmlldy55ID0gdHJ1ZV9yZWN0LnkgKyAodHJ1ZV9yZWN0LmhlaWdodCAtIHByZXZp ZXcuaGVpZ2h0KSAvLyAyCisrICAgICAgICAgZWxzZToKKystICAgICAgICAgICAgcHJldmlldy54 ID0gdHJ1ZV9yZWN0LnggKyAodHJ1ZV9yZWN0LndpZHRoIC0gcHJldmlldy53aWR0aCkgLyAyCisr KyAgICAgICAgICAgIHByZXZpZXcueCA9IHRydWVfcmVjdC54ICsgKHRydWVfcmVjdC53aWR0aCAt IHByZXZpZXcud2lkdGgpIC8vIDIKKysgICAgICAgICAgICAgcHJldmlldy55ID0gdHJ1ZV9yZWN0 LnkgKyA0CisrIAorKyAgICAgICAgIGRjLlNldEZvbnQoc2VsZi5fcGFuZWxfbGFiZWxfZm9udCkK KysgICAgICAgICBsYWJlbF93aWR0aCwgbGFiZWxfaGVpZ2h0ID0gZGMuR2V0VGV4dEV4dGVudCh3 bmQuR2V0TGFiZWwoKSkKKysgCisrLSAgICAgICAgeHBvcyA9IHRydWVfcmVjdC54ICsgKHRydWVf cmVjdC53aWR0aCAtIGxhYmVsX3dpZHRoICsgMSkgLyAyCisrKyAgICAgICAgeHBvcyA9IHRydWVf cmVjdC54ICsgKHRydWVfcmVjdC53aWR0aCAtIGxhYmVsX3dpZHRoICsgMSkgLy8gMgorKyAgICAg ICAgIHlwb3MgPSBwcmV2aWV3LnkgKyBwcmV2aWV3LmhlaWdodCArIDUKKysgCisrICAgICAgICAg aWYgc2VsZi5fZmxhZ3MgJiBSSUJCT05fQkFSX0ZMT1dfVkVSVElDQUw6CisrICAgICAgICAgICAg IHhwb3MgPSBwcmV2aWV3LnggKyBwcmV2aWV3LndpZHRoICsgNQorKy0gICAgICAgICAgICB5cG9z ID0gdHJ1ZV9yZWN0LnkgKyAodHJ1ZV9yZWN0LmhlaWdodCAtIGxhYmVsX2hlaWdodCkgLyAyCisr KyAgICAgICAgICAgIHlwb3MgPSB0cnVlX3JlY3QueSArICh0cnVlX3JlY3QuaGVpZ2h0IC0gbGFi ZWxfaGVpZ2h0KSAvLyAyCisrIAorKyAgICAgICAgIGRjLlNldFRleHRGb3JlZ3JvdW5kKHNlbGYu X3BhbmVsX21pbmltaXNlZF9sYWJlbF9jb2xvdXIpCisrICAgICAgICAgZGMuRHJhd1RleHQod25k LkdldExhYmVsKCksIHhwb3MsIHlwb3MpCisrQEAgLTE4NTEsMTIgKzE4NTEsMTIgQEAgZGVmIERy YXdNaW5pbWlzZWRQYW5lbENvbW1vbihzZWxmLCBkYywgd25kLCB0cnVlX3JlY3QpOgorKyAKKysg ICAgICAgICBpZiBzZWxmLl9mbGFncyAmIFJJQkJPTl9CQVJfRkxPV19WRVJUSUNBTDoKKysgICAg ICAgICAgICAgeHBvcyArPSBsYWJlbF93aWR0aAorKy0gICAgICAgICAgICBhcnJvd19wb2ludHNb MF0gPSB3eC5Qb2ludCh4cG9zICsgNSwgeXBvcyArIGxhYmVsX2hlaWdodCAvIDIpCisrKyAgICAg ICAgICAgIGFycm93X3BvaW50c1swXSA9IHd4LlBvaW50KHhwb3MgKyA1LCB5cG9zICsgbGFiZWxf aGVpZ2h0IC8vIDIpCisrICAgICAgICAgICAgIGFycm93X3BvaW50c1sxXSA9IGFycm93X3BvaW50 c1swXSArIHd4LlBvaW50KC0zLCAgMykKKysgICAgICAgICAgICAgYXJyb3dfcG9pbnRzWzJdID0g YXJyb3dfcG9pbnRzWzBdICsgd3guUG9pbnQoLTMsIC0zKQorKyAgICAgICAgIGVsc2U6CisrICAg ICAgICAgICAgIHlwb3MgKz0gbGFiZWxfaGVpZ2h0CisrLSAgICAgICAgICAgIGFycm93X3BvaW50 c1swXSA9IHd4LlBvaW50KHRydWVfcmVjdC53aWR0aCAvIDIsIHlwb3MgKyA1KQorKysgICAgICAg ICAgICBhcnJvd19wb2ludHNbMF0gPSB3eC5Qb2ludCh0cnVlX3JlY3Qud2lkdGggLy8gMiwgeXBv cyArIDUpCisrICAgICAgICAgICAgIGFycm93X3BvaW50c1sxXSA9IGFycm93X3BvaW50c1swXSAr IHd4LlBvaW50KC0zLCAtMykKKysgICAgICAgICAgICAgYXJyb3dfcG9pbnRzWzJdID0gYXJyb3df cG9pbnRzWzBdICsgd3guUG9pbnQoIDMsIC0zKQorKyAKKytAQCAtMTk2Nyw3ICsxOTY3LDcgQEAg ZGVmIERyYXdCdXR0b25CYXJCdXR0b24oc2VsZiwgZGMsIHduZCwgcmVjdCwga2luZCwgc3RhdGUs IGxhYmVsLCBiaXRtYXBfbGFyZ2UsIGIKKysgICAgICAgICAgICAgYmdfcmVjdC5oZWlnaHQgLT0g MgorKyAKKysgICAgICAgICAgICAgYmdfcmVjdF90b3AgPSB3eC5SZWN0KCpiZ19yZWN0KQorKy0g ICAgICAgICAgICBiZ19yZWN0X3RvcC5oZWlnaHQgLz0gMworKysgICAgICAgICAgICBiZ19yZWN0 X3RvcC5oZWlnaHQgLy89IDMKKysgICAgICAgICAgICAgYmdfcmVjdC55ICs9IGJnX3JlY3RfdG9w LmhlaWdodAorKyAgICAgICAgICAgICBiZ19yZWN0LmhlaWdodCAtPSBiZ19yZWN0X3RvcC5oZWln aHQKKysgCisrQEAgLTIwNDMsNyArMjA0Myw3IEBAIGRlZiBEcmF3QnV0dG9uQmFyQnV0dG9uRm9y ZWdyb3VuZChzZWxmLCBkYywgcmVjdCwga2luZCwgc3RhdGUsIGxhYmVsLCBiaXRtYXBfbGFyCisr ICAgICAgICAgaWYgcmVzdWx0ID09IFJJQkJPTl9CVVRUT05CQVJfQlVUVE9OX0xBUkdFOgorKyAK KysgICAgICAgICAgICAgcGFkZGluZyA9IDIKKystICAgICAgICAgICAgZGMuRHJhd0JpdG1hcChi aXRtYXBfbGFyZ2UsIHJlY3QueCArIChyZWN0LndpZHRoIC0gYml0bWFwX2xhcmdlLkdldFdpZHRo KCkpIC8gMiwKKysrICAgICAgICAgICAgZGMuRHJhd0JpdG1hcChiaXRtYXBfbGFyZ2UsIHJlY3Qu eCArIChyZWN0LndpZHRoIC0gYml0bWFwX2xhcmdlLkdldFdpZHRoKCkpIC8vIDIsCisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgcmVjdC55ICsgcGFkZGluZywgVHJ1ZSkKKysgICAgICAgICAg ICAgeXBvcyA9IHJlY3QueSArIHBhZGRpbmcgKyBiaXRtYXBfbGFyZ2UuR2V0SGVpZ2h0KCkgKyBw YWRkaW5nCisrICAgICAgICAgICAgIGFycm93X3dpZHRoID0gKGtpbmQgPT0gUklCQk9OX0JVVFRP Tl9OT1JNQUwgYW5kIFswXSBvciBbOF0pWzBdCisrQEAgLTIwNTIsMTAgKzIwNTIsMTAgQEAgZGVm IERyYXdCdXR0b25CYXJCdXR0b25Gb3JlZ3JvdW5kKHNlbGYsIGRjLCByZWN0LCBraW5kLCBzdGF0 ZSwgbGFiZWwsIGJpdG1hcF9sYXIKKysgCisrICAgICAgICAgICAgIGlmIGxhYmVsX3cgKyAyICog cGFkZGluZyA8PSByZWN0LndpZHRoOgorKyAKKystICAgICAgICAgICAgICAgIGRjLkRyYXdUZXh0 KGxhYmVsLCByZWN0LnggKyAocmVjdC53aWR0aCAtIGxhYmVsX3cpIC8gMiwgeXBvcykKKysrICAg ICAgICAgICAgICAgIGRjLkRyYXdUZXh0KGxhYmVsLCByZWN0LnggKyAocmVjdC53aWR0aCAtIGxh YmVsX3cpIC8vIDIsIHlwb3MpCisrICAgICAgICAgICAgICAgICBpZiBhcnJvd193aWR0aCAhPSAw OgorKy0gICAgICAgICAgICAgICAgICAgIHNlbGYuRHJhd0Ryb3Bkb3duQXJyb3coZGMsIHJlY3Qu eCArIHJlY3Qud2lkdGggLyAyLAorKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgeXBvcyArIChsYWJlbF9oICogMykgLyAyLAorKysgICAgICAgICAgICAgICAgICAg IHNlbGYuRHJhd0Ryb3Bkb3duQXJyb3coZGMsIHJlY3QueCArIHJlY3Qud2lkdGggLy8gMiwKKysr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHlwb3MgKyAobGFiZWxf aCAqIDMpIC8vIDIsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzZWxmLl9idXR0b25fYmFyX2xhYmVsX2NvbG91cikKKysgICAgICAgICAgICAgZWxzZToKKysg ICAgICAgICAgICAgICAgIGJyZWFraSA9IGxlbihsYWJlbCkKKytAQCAtMjA2NywxNyArMjA2Nywx NyBAQCBkZWYgRHJhd0J1dHRvbkJhckJ1dHRvbkZvcmVncm91bmQoc2VsZiwgZGMsIHJlY3QsIGtp bmQsIHN0YXRlLCBsYWJlbCwgYml0bWFwX2xhcgorKyAgICAgICAgICAgICAgICAgICAgICAgICBs YWJlbF93LCBsYWJlbF9oID0gZGMuR2V0VGV4dEV4dGVudChsYWJlbF90b3ApCisrIAorKyAgICAg ICAgICAgICAgICAgICAgICAgICBpZiBsYWJlbF93ICsgMiAqIHBhZGRpbmcgPD0gcmVjdC53aWR0 aDoKKystICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRjLkRyYXdUZXh0KGxhYmVsX3RvcCwg cmVjdC54ICsgKHJlY3Qud2lkdGggLSBsYWJlbF93KSAvIDIsIHlwb3MpCisrKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICBkYy5EcmF3VGV4dChsYWJlbF90b3AsIHJlY3QueCArIChyZWN0Lndp ZHRoIC0gbGFiZWxfdykgLy8gMiwgeXBvcykKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHlwb3MgKz0gbGFiZWxfaAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWxfYm90 dG9tID0gbGFiZWxbYnJlYWtpOl0KKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVs X3csIGxhYmVsX2ggPSBkYy5HZXRUZXh0RXh0ZW50KGxhYmVsX2JvdHRvbSkKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGxhYmVsX3cgKz0gYXJyb3dfd2lkdGgKKystICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGlYID0gcmVjdC54ICsgKHJlY3Qud2lkdGggLSBsYWJlbF93KSAvIDIK KysrICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlYID0gcmVjdC54ICsgKHJlY3Qud2lkdGgg LSBsYWJlbF93KSAvLyAyCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYy5EcmF3VGV4 dChsYWJlbF9ib3R0b20sIGlYLCB5cG9zKQorKyAKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGlmIGFycm93X3dpZHRoICE9IDA6CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2VsZi5EcmF3RHJvcGRvd25BcnJvdyhkYywgaVggKyAyICtsYWJlbF93IC0gYXJyb3dfd2lk dGgsCisrLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB5cG9zICsgbGFiZWxfaCAvIDIgKyAxLAorKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeXBvcyArIGxhYmVsX2ggLy8gMiArIDEsCisr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz ZWxmLl9idXR0b25fYmFyX2xhYmVsX2NvbG91cikKKysgCisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBicmVhaworK0BAIC0yMDg1LDE0ICsyMDg1LDE0IEBAIGRlZiBEcmF3QnV0dG9uQmFy QnV0dG9uRm9yZWdyb3VuZChzZWxmLCBkYywgcmVjdCwga2luZCwgc3RhdGUsIGxhYmVsLCBiaXRt YXBfbGFyCisrICAgICAgICAgZWxpZiByZXN1bHQgPT0gUklCQk9OX0JVVFRPTkJBUl9CVVRUT05f TUVESVVNOgorKyAKKysgICAgICAgICAgICAgeF9jdXJzb3IgPSByZWN0LnggKyAyCisrLSAgICAg ICAgICAgIGRjLkRyYXdCaXRtYXAoYml0bWFwX3NtYWxsLCB4X2N1cnNvciwgcmVjdC55ICsgKHJl Y3QuaGVpZ2h0IC0gYml0bWFwX3NtYWxsLkdldEhlaWdodCgpKS8yLCBUcnVlKQorKysgICAgICAg ICAgICBkYy5EcmF3Qml0bWFwKGJpdG1hcF9zbWFsbCwgeF9jdXJzb3IsIHJlY3QueSArIChyZWN0 LmhlaWdodCAtIGJpdG1hcF9zbWFsbC5HZXRIZWlnaHQoKSkvLzIsIFRydWUpCisrICAgICAgICAg ICAgIHhfY3Vyc29yICs9IGJpdG1hcF9zbWFsbC5HZXRXaWR0aCgpICsgMgorKyAgICAgICAgICAg ICBsYWJlbF93LCBsYWJlbF9oID0gZGMuR2V0VGV4dEV4dGVudChsYWJlbCkKKystICAgICAgICAg ICAgZGMuRHJhd1RleHQobGFiZWwsIHhfY3Vyc29yLCByZWN0LnkgKyAocmVjdC5oZWlnaHQgLSBs YWJlbF9oKSAvIDIpCisrKyAgICAgICAgICAgIGRjLkRyYXdUZXh0KGxhYmVsLCB4X2N1cnNvciwg cmVjdC55ICsgKHJlY3QuaGVpZ2h0IC0gbGFiZWxfaCkgLy8gMikKKysgICAgICAgICAgICAgeF9j dXJzb3IgKz0gbGFiZWxfdyArIDMKKysgCisrICAgICAgICAgICAgIGlmIGtpbmQgIT0gUklCQk9O X0JVVFRPTl9OT1JNQUw6CisrLSAgICAgICAgICAgICAgICBzZWxmLkRyYXdEcm9wZG93bkFycm93 KGRjLCB4X2N1cnNvciwgcmVjdC55ICsgcmVjdC5oZWlnaHQgLyAyLAorKysgICAgICAgICAgICAg ICAgc2VsZi5EcmF3RHJvcGRvd25BcnJvdyhkYywgeF9jdXJzb3IsIHJlY3QueSArIHJlY3QuaGVp Z2h0IC8vIDIsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYu X2J1dHRvbl9iYXJfbGFiZWxfY29sb3VyKQorKyAKKysgICAgICAgICBlbHNlOgorK0BAIC0yMTg0 LDcgKzIxODQsNyBAQCBkZWYgRHJhd1Rvb2woc2VsZiwgZGMsIHduZCwgcmVjdCwgYml0bWFwLCBr aW5kLCBzdGF0ZSk6CisrIAorKyAgICAgICAgICMgQmFja2dyb3VuZAorKyAgICAgICAgIGJnX3Jl Y3RfdG9wID0gd3guUmVjdCgqYmdfcmVjdCkKKystICAgICAgICBiZ19yZWN0X3RvcC5oZWlnaHQg PSAoYmdfcmVjdF90b3AuaGVpZ2h0ICogMikgLyA1CisrKyAgICAgICAgYmdfcmVjdF90b3AuaGVp Z2h0ID0gKGJnX3JlY3RfdG9wLmhlaWdodCAqIDIpIC8vIDUKKysgICAgICAgICBiZ19yZWN0X2J0 bSA9IHd4LlJlY3QoKmJnX3JlY3QpCisrICAgICAgICAgYmdfcmVjdF9idG0ueSArPSBiZ19yZWN0 X3RvcC5oZWlnaHQKKysgICAgICAgICBiZ19yZWN0X2J0bS5oZWlnaHQgLT0gYmdfcmVjdF90b3Au aGVpZ2h0CisrQEAgLTIyNDQsMTAgKzIyNDQsMTAgQEAgZGVmIERyYXdUb29sKHNlbGYsIGRjLCB3 bmQsIHJlY3QsIGJpdG1hcCwga2luZCwgc3RhdGUpOgorKyAgICAgICAgICAgICAgICAgZGMuRHJh d0xpbmUocmVjdC54ICsgYXZhaWxfd2lkdGggKyAxLCByZWN0LnksIHJlY3QueCArIGF2YWlsX3dp ZHRoICsgMSwgcmVjdC55ICsgcmVjdC5oZWlnaHQpCisrIAorKyAgICAgICAgICAgICBkYy5EcmF3 Qml0bWFwKHNlbGYuX3Rvb2xiYXJfZHJvcF9iaXRtYXAsIGJnX3JlY3QueCArIGF2YWlsX3dpZHRo ICsgMiwKKystICAgICAgICAgICAgICAgICAgICAgICAgICBiZ19yZWN0LnkgKyAoYmdfcmVjdC5o ZWlnaHQgLyAyKSAtIDIsIFRydWUpCisrKyAgICAgICAgICAgICAgICAgICAgICAgICAgYmdfcmVj dC55ICsgKGJnX3JlY3QuaGVpZ2h0IC8vIDIpIC0gMiwgVHJ1ZSkKKysgCisrLSAgICAgICAgZGMu RHJhd0JpdG1hcChiaXRtYXAsIGJnX3JlY3QueCArIChhdmFpbF93aWR0aCAtIGJpdG1hcC5HZXRX aWR0aCgpKSAvIDIsCisrLSAgICAgICAgICAgICAgICAgICAgICBiZ19yZWN0LnkgKyAoYmdfcmVj dC5oZWlnaHQgLSBiaXRtYXAuR2V0SGVpZ2h0KCkpIC8gMiwgVHJ1ZSkKKysrICAgICAgICBkYy5E cmF3Qml0bWFwKGJpdG1hcCwgYmdfcmVjdC54ICsgKGF2YWlsX3dpZHRoIC0gYml0bWFwLkdldFdp ZHRoKCkpIC8vIDIsCisrKyAgICAgICAgICAgICAgICAgICAgICBiZ19yZWN0LnkgKyAoYmdfcmVj dC5oZWlnaHQgLSBiaXRtYXAuR2V0SGVpZ2h0KCkpIC8vIDIsIFRydWUpCisrIAorKyAKKysgICAg IGRlZiBHZXRCYXJUYWJXaWR0aChzZWxmLCBkYywgd25kLCBsYWJlbCwgYml0bWFwLCBpZGVhbD1O b25lLCBzbWFsbF9iZWdpbl9uZWVkX3NlcGFyYXRvcj1Ob25lLAorK0BAIC0yNDc0LDcgKzI0NzQs NyBAQCBkZWYgR2V0R2FsbGVyeUNsaWVudFNpemUoc2VsZiwgZGMsIHduZCwgc2l6ZSwgY2xpZW50 X29mZnNldD1Ob25lLCBzY3JvbGxfdXBfYnV0dAorKyAgICAgICAgICAgICBzY3JvbGxfdXAueSA9 IHNpemUuR2V0SGVpZ2h0KCkgLSAxNQorKyAgICAgICAgICAgICBzY3JvbGxfdXAuaGVpZ2h0ID0g MTUKKysgICAgICAgICAgICAgc2Nyb2xsX3VwLnggPSAwCisrLSAgICAgICAgICAgIHNjcm9sbF91 cC53aWR0aCA9IChzaXplLkdldFdpZHRoKCkgKyAyKSAvIDMKKysrICAgICAgICAgICAgc2Nyb2xs X3VwLndpZHRoID0gKHNpemUuR2V0V2lkdGgoKSArIDIpIC8vIDMKKysgICAgICAgICAgICAgc2Ny b2xsX2Rvd24ueSA9IHNjcm9sbF91cC55CisrICAgICAgICAgICAgIHNjcm9sbF9kb3duLmhlaWdo dCA9IHNjcm9sbF91cC5oZWlnaHQKKysgICAgICAgICAgICAgc2Nyb2xsX2Rvd24ueCA9IHNjcm9s bF91cC54ICsgc2Nyb2xsX3VwLndpZHRoCisrQEAgLTI0OTEsNyArMjQ5MSw3IEBAIGRlZiBHZXRH YWxsZXJ5Q2xpZW50U2l6ZShzZWxmLCBkYywgd25kLCBzaXplLCBjbGllbnRfb2Zmc2V0PU5vbmUs IHNjcm9sbF91cF9idXR0CisrICAgICAgICAgICAgIHNjcm9sbF91cC54ID0gc2l6ZS5HZXRXaWR0 aCgpIC0gMTUKKysgICAgICAgICAgICAgc2Nyb2xsX3VwLndpZHRoID0gMTUKKysgICAgICAgICAg ICAgc2Nyb2xsX3VwLnkgPSAwCisrLSAgICAgICAgICAgIHNjcm9sbF91cC5oZWlnaHQgPSAoc2l6 ZS5HZXRIZWlnaHQoKSArIDIpIC8gMworKysgICAgICAgICAgICBzY3JvbGxfdXAuaGVpZ2h0ID0g KHNpemUuR2V0SGVpZ2h0KCkgKyAyKSAvLyAzCisrICAgICAgICAgICAgIHNjcm9sbF9kb3duLngg PSBzY3JvbGxfdXAueAorKyAgICAgICAgICAgICBzY3JvbGxfZG93bi53aWR0aCA9IHNjcm9sbF91 cC53aWR0aAorKyAgICAgICAgICAgICBzY3JvbGxfZG93bi55ID0gc2Nyb2xsX3VwLnkgKyBzY3Jv bGxfdXAuaGVpZ2h0CisrZGlmZiAtLWdpdCBhL3d4L2xpYi9hZ3cvcmliYm9uL2Jhci5weSBiL3d4 L2xpYi9hZ3cvcmliYm9uL2Jhci5weQorK2luZGV4IGFlOGI2YTE5Yy4uYjBkMjg3NzZkIDEwMDY0 NAorKy0tLSBhL3d4L2xpYi9hZ3cvcmliYm9uL2Jhci5weQorKysrKyBiL3d4L2xpYi9hZ3cvcmli Ym9uL2Jhci5weQorK0BAIC03NDMsNyArNzQzLDcgQEAgZGVmIFJlY2FsY3VsYXRlVGFiU2l6ZXMo c2VsZik6CisrICAgICAgICAgICAgICAgICAgICAgZGVsdGEgPSBpbmZvLmlkZWFsX3dpZHRoIC0g aW5mby5zbWFsbF9tdXN0X2hhdmVfc2VwYXJhdG9yX3dpZHRoCisrICAgICAgICAgICAgICAgICAg ICAgaW5mby5yZWN0LnggPSB4CisrICAgICAgICAgICAgICAgICAgICAgaW5mby5yZWN0LnkgPSB5 CisrLSAgICAgICAgICAgICAgICAgICAgaW5mby5yZWN0LndpZHRoID0gaW5mby5zbWFsbF9tdXN0 X2hhdmVfc2VwYXJhdG9yX3dpZHRoICsgZGVsdGEqKHdpZHRoIC0gdG90YWxfc21hbGxfd2lkdGgp L3RvdGFsX2RlbHRhCisrKyAgICAgICAgICAgICAgICAgICAgaW5mby5yZWN0LndpZHRoID0gaW5m by5zbWFsbF9tdXN0X2hhdmVfc2VwYXJhdG9yX3dpZHRoICsgZGVsdGEqKHdpZHRoIC0gdG90YWxf c21hbGxfd2lkdGgpLy90b3RhbF9kZWx0YQorKyAgICAgICAgICAgICAgICAgICAgIGluZm8ucmVj dC5oZWlnaHQgPSBzZWxmLl90YWJfaGVpZ2h0CisrIAorKyAgICAgICAgICAgICAgICAgICAgIHgg Kz0gaW5mby5yZWN0LndpZHRoICsgdGFic2VwCisrQEAgLTc5Nyw3ICs3OTcsNyBAQCBkZWYgUmVj YWxjdWxhdGVUYWJTaXplcyhzZWxmKToKKysgICAgICAgICAgICAgICAgICAgICAgICAgZGVsdGEg PSBzbWFsbGVzdF90YWJfd2lkdGggLSBpbmZvLm1pbmltdW1fd2lkdGgKKysgICAgICAgICAgICAg ICAgICAgICAgICAgaW5mby5yZWN0LnggPSB4CisrICAgICAgICAgICAgICAgICAgICAgICAgIGlu Zm8ucmVjdC55ID0geQorKy0gICAgICAgICAgICAgICAgICAgICAgICBpbmZvLnJlY3Qud2lkdGgg PSBpbmZvLm1pbmltdW1fd2lkdGggKyBkZWx0YSood2lkdGggLSB0b3RhbF9zbWFsbF93aWR0aCkv dG90YWxfZGVsdGEKKysrICAgICAgICAgICAgICAgICAgICAgICAgaW5mby5yZWN0LndpZHRoID0g aW5mby5taW5pbXVtX3dpZHRoICsgZGVsdGEqKHdpZHRoIC0gdG90YWxfc21hbGxfd2lkdGgpLy90 b3RhbF9kZWx0YQorKyAgICAgICAgICAgICAgICAgICAgICAgICBpbmZvLnJlY3QuaGVpZ2h0ID0g c2VsZi5fdGFiX2hlaWdodAorKyAKKysgICAgICAgICAgICAgICAgICAgICAgICAgeCArPSBpbmZv LnJlY3Qud2lkdGggKyB0YWJzZXAKKytkaWZmIC0tZ2l0IGEvd3gvbGliL2Fndy9yaWJib24vYnV0 dG9uYmFyLnB5IGIvd3gvbGliL2Fndy9yaWJib24vYnV0dG9uYmFyLnB5CisraW5kZXggMjVlZTQ5 YTgyLi40NjkwZjQ4M2QgMTAwNjQ0CisrLS0tIGEvd3gvbGliL2Fndy9yaWJib24vYnV0dG9uYmFy LnB5CisrKysrIGIvd3gvbGliL2Fndy9yaWJib24vYnV0dG9uYmFyLnB5CisrQEAgLTM1NCw3ICsz NTQsNyBAQCBkZWYgSW5zZXJ0QnV0dG9uKHNlbGYsIHBvcywgYnV0dG9uX2lkLCBsYWJlbCwgYml0 bWFwLCBiaXRtYXBfc21hbGw9d3guTnVsbEJpdG1hcAorKyAgICAgICAgICAgICAgICAgc2VsZi5f Yml0bWFwX3NpemVfbGFyZ2UgPSBiaXRtYXAuR2V0U2l6ZSgpCisrICAgICAgICAgICAgICAgICBp ZiBub3QgYml0bWFwX3NtYWxsLklzT2soKToKKysgICAgICAgICAgICAgICAgICAgICB3LCBoID0g c2VsZi5fYml0bWFwX3NpemVfbGFyZ2UKKystICAgICAgICAgICAgICAgICAgICBzZWxmLl9iaXRt YXBfc2l6ZV9zbWFsbCA9IHd4LlNpemUoMC41KncsIDAuNSpoKQorKysgICAgICAgICAgICAgICAg ICAgIHNlbGYuX2JpdG1hcF9zaXplX3NtYWxsID0gd3guU2l6ZSh3Ly8yLCBoLy8yKQorKyAKKysg ICAgICAgICAgICAgaWYgYml0bWFwX3NtYWxsLklzT2soKToKKysgCisrQEAgLTg2Nyw4ICs4Njcs OCBAQCBkZWYgT25TaXplKHNlbGYsIGV2ZW50KToKKysgCisrICAgICAgICAgICAgIGxheW91dF9z aXplID0gc2VsZi5fbGF5b3V0c1tsYXlvdXRfaV0ub3ZlcmFsbF9zaXplCisrICAgICAgICAgICAg IGlmIGxheW91dF9zaXplLnggPD0gbmV3X3NpemUueCBhbmQgbGF5b3V0X3NpemUueSA8PSBuZXdf c2l6ZS55OgorKy0gICAgICAgICAgICAgICAgc2VsZi5fbGF5b3V0X29mZnNldC54ID0gKG5ld19z aXplLnggLSBsYXlvdXRfc2l6ZS54KS8yCisrLSAgICAgICAgICAgICAgICBzZWxmLl9sYXlvdXRf b2Zmc2V0LnkgPSAobmV3X3NpemUueSAtIGxheW91dF9zaXplLnkpLzIKKysrICAgICAgICAgICAg ICAgIHNlbGYuX2xheW91dF9vZmZzZXQueCA9IChuZXdfc2l6ZS54IC0gbGF5b3V0X3NpemUueCkv LzIKKysrICAgICAgICAgICAgICAgIHNlbGYuX2xheW91dF9vZmZzZXQueSA9IChuZXdfc2l6ZS55 IC0gbGF5b3V0X3NpemUueSkvLzIKKysgICAgICAgICAgICAgICAgIHNlbGYuX2N1cnJlbnRfbGF5 b3V0ID0gbGF5b3V0X2kKKysgICAgICAgICAgICAgICAgIGJyZWFrCisrIAorK2RpZmYgLS1naXQg YS93eC9saWIvYWd3L3JpYmJvbi9nYWxsZXJ5LnB5IGIvd3gvbGliL2Fndy9yaWJib24vZ2FsbGVy eS5weQorK2luZGV4IGI4MzBmYWI3ZC4uYjg2NTI4ODY1IDEwMDY0NAorKy0tLSBhL3d4L2xpYi9h Z3cvcmliYm9uL2dhbGxlcnkucHkKKysrKysgYi93eC9saWIvYWd3L3JpYmJvbi9nYWxsZXJ5LnB5 CisrQEAgLTgwNSw4ICs4MDUsOCBAQCBkZWYgRG9HZXROZXh0U21hbGxlclNpemUoc2VsZiwgZGly ZWN0aW9uLCByZWxhdGl2ZV90byk6CisrICAgICAgICAgaWYgY2xpZW50LkdldFdpZHRoKCkgPCAw IG9yIGNsaWVudC5HZXRIZWlnaHQoKSA8IDA6CisrICAgICAgICAgICAgIHJldHVybiByZWxhdGl2 ZV90bworKyAKKystICAgICAgICBjbGllbnQueCA9IChjbGllbnQueCAvIHNlbGYuX2JpdG1hcF9w YWRkZWRfc2l6ZS54KSAqIHNlbGYuX2JpdG1hcF9wYWRkZWRfc2l6ZS54CisrLSAgICAgICAgY2xp ZW50LnkgPSAoY2xpZW50LnkgLyBzZWxmLl9iaXRtYXBfcGFkZGVkX3NpemUueSkgKiBzZWxmLl9i aXRtYXBfcGFkZGVkX3NpemUueQorKysgICAgICAgIGNsaWVudC54ID0gKGNsaWVudC54IC8vIHNl bGYuX2JpdG1hcF9wYWRkZWRfc2l6ZS54KSAqIHNlbGYuX2JpdG1hcF9wYWRkZWRfc2l6ZS54Cisr KyAgICAgICAgY2xpZW50LnkgPSAoY2xpZW50LnkgLy8gc2VsZi5fYml0bWFwX3BhZGRlZF9zaXpl LnkpICogc2VsZi5fYml0bWFwX3BhZGRlZF9zaXplLnkKKysgCisrICAgICAgICAgc2l6ZSA9IHNl bGYuX2FydC5HZXRHYWxsZXJ5U2l6ZShkYywgc2VsZiwgd3guU2l6ZSgqY2xpZW50KSkKKysgICAg ICAgICBtaW5pbXVtID0gc2VsZi5HZXRNaW5TaXplKCkKKytAQCAtODQ5LDggKzg0OSw4IEBAIGRl ZiBEb0dldE5leHRMYXJnZXJTaXplKHNlbGYsIGRpcmVjdGlvbiwgcmVsYXRpdmVfdG8pOgorKyAg ICAgICAgIGVsaWYgZGlyZWN0aW9uID09IHd4LkJPVEg6CisrICAgICAgICAgICAgIGNsaWVudC5J bmNCeShzZWxmLl9iaXRtYXBfcGFkZGVkX3NpemUpCisrIAorKy0gICAgICAgIGNsaWVudC54ID0g KGNsaWVudC54IC8gc2VsZi5fYml0bWFwX3BhZGRlZF9zaXplLngpICogc2VsZi5fYml0bWFwX3Bh ZGRlZF9zaXplLngKKystICAgICAgICBjbGllbnQueSA9IChjbGllbnQueSAvIHNlbGYuX2JpdG1h cF9wYWRkZWRfc2l6ZS55KSAqIHNlbGYuX2JpdG1hcF9wYWRkZWRfc2l6ZS55CisrKyAgICAgICAg Y2xpZW50LnggPSAoY2xpZW50LnggLy8gc2VsZi5fYml0bWFwX3BhZGRlZF9zaXplLngpICogc2Vs Zi5fYml0bWFwX3BhZGRlZF9zaXplLngKKysrICAgICAgICBjbGllbnQueSA9IChjbGllbnQueSAv LyBzZWxmLl9iaXRtYXBfcGFkZGVkX3NpemUueSkgKiBzZWxmLl9iaXRtYXBfcGFkZGVkX3NpemUu eQorKyAKKysgICAgICAgICBzaXplID0gc2VsZi5fYXJ0LkdldEdhbGxlcnlTaXplKGRjLCBzZWxm LCB3eC5TaXplKCpjbGllbnQpKQorKyAgICAgICAgIG1pbmltdW0gPSBzZWxmLkdldE1pblNpemUo KQorK2RpZmYgLS1naXQgYS93eC9saWIvYWd3L3JpYmJvbi9wYW5lbC5weSBiL3d4L2xpYi9hZ3cv cmliYm9uL3BhbmVsLnB5CisraW5kZXggNzlmZDliYzU4Li45MDFjNzY1YjYgMTAwNjQ0CisrLS0t IGEvd3gvbGliL2Fndy9yaWJib24vcGFuZWwucHkKKysrKysgYi93eC9saWIvYWd3L3JpYmJvbi9w YW5lbC5weQorK0BAIC01ODQsMTIgKzU4NCwxMiBAQCBkZWYgRG9HZXROZXh0U21hbGxlclNpemUo c2VsZiwgZGlyZWN0aW9uLCByZWxhdGl2ZV90byk6CisrICAgICAgICAgbWluaW11bSA9IHd4LlNp emUoKnNlbGYuR2V0TWluU2l6ZSgpKQorKyAKKysgICAgICAgICBpZiBkaXJlY3Rpb24gJiB3eC5I T1JJWk9OVEFMOgorKy0gICAgICAgICAgICBjdXJyZW50LnggPSAoY3VycmVudC54ICogNCkgLyA1 CisrKyAgICAgICAgICAgIGN1cnJlbnQueCA9IChjdXJyZW50LnggKiA0KSAvLyA1CisrICAgICAg ICAgICAgIGlmIGN1cnJlbnQueCA8IG1pbmltdW0ueDoKKysgICAgICAgICAgICAgICAgIGN1cnJl bnQueCA9IG1pbmltdW0ueAorKyAKKysgICAgICAgICBpZiBkaXJlY3Rpb24gJiB3eC5WRVJUSUNB TDoKKystICAgICAgICAgICAgY3VycmVudC55ID0gKGN1cnJlbnQueSAqIDQpIC8gNQorKysgICAg ICAgICAgICBjdXJyZW50LnkgPSAoY3VycmVudC55ICogNCkgLy8gNQorKyAgICAgICAgICAgICBp ZiBjdXJyZW50LnkgPCBtaW5pbXVtLnk6CisrICAgICAgICAgICAgICAgICBjdXJyZW50LnkgPSBt aW5pbXVtLnkKKysgCisrQEAgLTY2OCwxMCArNjY4LDEwIEBAIGRlZiBEb0dldE5leHRMYXJnZXJT aXplKHNlbGYsIGRpcmVjdGlvbiwgcmVsYXRpdmVfdG8pOgorKyAgICAgICAgIGN1cnJlbnQgPSB3 eC5TaXplKCpyZWxhdGl2ZV90bykKKysgCisrICAgICAgICAgaWYgZGlyZWN0aW9uICYgd3guSE9S SVpPTlRBTDoKKystICAgICAgICAgICAgY3VycmVudC54ID0gKGN1cnJlbnQueCAqIDUgKyAzKSAv IDQKKysrICAgICAgICAgICAgY3VycmVudC54ID0gKGN1cnJlbnQueCAqIDUgKyAzKSAvLyA0Cisr IAorKyAgICAgICAgIGlmIGRpcmVjdGlvbiAmIHd4LlZFUlRJQ0FMOgorKy0gICAgICAgICAgICBj dXJyZW50LnkgPSAoY3VycmVudC55ICogNSArIDMpIC8gNAorKysgICAgICAgICAgICBjdXJyZW50 LnkgPSAoY3VycmVudC55ICogNSArIDMpIC8vIDQKKysgCisrICAgICAgICAgcmV0dXJuIGN1cnJl bnQKKysgCisrQEAgLTEwNzYsMjUgKzEwNzYsMjUgQEAgZGVmIEdldEV4cGFuZGVkUG9zaXRpb24o c2VsZiwgcGFuZWwsIGV4cGFuZGVkX3NpemUsIGRpcmVjdGlvbik6CisrICAgICAgICAgcG9zID0g d3guUG9pbnQoKQorKyAKKysgICAgICAgICBpZiBkaXJlY3Rpb24gPT0gd3guTk9SVEg6CisrLSAg ICAgICAgICAgIHBvcy54ID0gcGFuZWwuR2V0WCgpICsgKHBhbmVsLkdldFdpZHRoKCkgLSBleHBh bmRlZF9zaXplLkdldFdpZHRoKCkpIC8gMgorKysgICAgICAgICAgICBwb3MueCA9IHBhbmVsLkdl dFgoKSArIChwYW5lbC5HZXRXaWR0aCgpIC0gZXhwYW5kZWRfc2l6ZS5HZXRXaWR0aCgpKSAvLyAy CisrICAgICAgICAgICAgIHBvcy55ID0gcGFuZWwuR2V0WSgpIC0gZXhwYW5kZWRfc2l6ZS5HZXRI ZWlnaHQoKQorKyAgICAgICAgICAgICBwcmltYXJ5X3ggPSBUcnVlCisrICAgICAgICAgICAgIHNl Y29uZGFyeV95ID0gMQorKyAKKysgICAgICAgICBlbGlmIGRpcmVjdGlvbiA9PSB3eC5FQVNUOgor KyAgICAgICAgICAgICBwb3MueCA9IHBhbmVsLkdldFJpZ2h0KCkKKystICAgICAgICAgICAgcG9z LnkgPSBwYW5lbC5HZXRZKCkgKyAocGFuZWwuR2V0SGVpZ2h0KCkgLSBleHBhbmRlZF9zaXplLkdl dEhlaWdodCgpKSAvIDIKKysrICAgICAgICAgICAgcG9zLnkgPSBwYW5lbC5HZXRZKCkgKyAocGFu ZWwuR2V0SGVpZ2h0KCkgLSBleHBhbmRlZF9zaXplLkdldEhlaWdodCgpKSAvLyAyCisrICAgICAg ICAgICAgIHNlY29uZGFyeV94ID0gLTEKKysgCisrICAgICAgICAgZWxpZiBkaXJlY3Rpb24gPT0g d3guU09VVEg6CisrLSAgICAgICAgICAgIHBvcy54ID0gcGFuZWwuR2V0WCgpICsgKHBhbmVsLkdl dFdpZHRoKCkgLSBleHBhbmRlZF9zaXplLkdldFdpZHRoKCkpIC8gMgorKysgICAgICAgICAgICBw b3MueCA9IHBhbmVsLkdldFgoKSArIChwYW5lbC5HZXRXaWR0aCgpIC0gZXhwYW5kZWRfc2l6ZS5H ZXRXaWR0aCgpKSAvLyAyCisrICAgICAgICAgICAgIHBvcy55ID0gcGFuZWwuR2V0Qm90dG9tKCkK KysgICAgICAgICAgICAgcHJpbWFyeV94ID0gVHJ1ZQorKyAgICAgICAgICAgICBzZWNvbmRhcnlf eSA9IC0xCisrIAorKyAgICAgICAgIGVsc2U6CisrICAgICAgICAgICAgIHBvcy54ID0gcGFuZWwu R2V0WCgpIC0gZXhwYW5kZWRfc2l6ZS5HZXRXaWR0aCgpCisrLSAgICAgICAgICAgIHBvcy55ID0g cGFuZWwuR2V0WSgpICsgKHBhbmVsLkdldEhlaWdodCgpIC0gZXhwYW5kZWRfc2l6ZS5HZXRIZWln aHQoKSkgLyAyCisrKyAgICAgICAgICAgIHBvcy55ID0gcGFuZWwuR2V0WSgpICsgKHBhbmVsLkdl dEhlaWdodCgpIC0gZXhwYW5kZWRfc2l6ZS5HZXRIZWlnaHQoKSkgLy8gMgorKyAgICAgICAgICAg ICBzZWNvbmRhcnlfeCA9IDEKKysgCisrICAgICAgICAgZXhwYW5kZWQgPSB3eC5SZWN0KHBvcywg ZXhwYW5kZWRfc2l6ZSkKKytkaWZmIC0tZ2l0IGEvd3gvbGliL2Fndy9yaWJib24vdG9vbGJhci5w eSBiL3d4L2xpYi9hZ3cvcmliYm9uL3Rvb2xiYXIucHkKKytpbmRleCAxNzcxYzY1MDYuLjhjNmY4 YjUyMiAxMDA2NDQKKystLS0gYS93eC9saWIvYWd3L3JpYmJvbi90b29sYmFyLnB5CisrKysrIGIv d3gvbGliL2Fndy9yaWJib24vdG9vbGJhci5weQorK0BAIC0xMTU5LDcgKzExNTksNyBAQCBkZWYg T25TaXplKHNlbGYsIGV2ZW50KToKKysgCisrICAgICAgICAgIyBTZXQgZ3JvdXAgeSBwb3NpdGlv bnMKKysgICAgICAgICBmb3IgZ3JvdXAgaW4gc2VsZi5fZ3JvdXBzOgorKy0gICAgICAgICAgICBn cm91cC5wb3NpdGlvbi55ID0gcm93eXBvc1tncm91cC5wb3NpdGlvbi55XQorKysgICAgICAgICAg ICBncm91cC5wb3NpdGlvbi55ID0gaW50KHJvd3lwb3NbZ3JvdXAucG9zaXRpb24ueV0pCisrIAor KyAKKysgICAgIGRlZiBHZXRCZXN0U2l6ZUZvclBhcmVudFNpemUoc2VsZiwgcGFyZW50U2l6ZSk6 CisrZGlmZiAtLWdpdCBhL3d4L2xpYi9hZ3cvc2hhcGVkYnV0dG9uLnB5IGIvd3gvbGliL2Fndy9z aGFwZWRidXR0b24ucHkKKytpbmRleCBmMDE1ZDRlMzkuLjQ5NTIzMzY2YSAxMDA2NDQKKystLS0g YS93eC9saWIvYWd3L3NoYXBlZGJ1dHRvbi5weQorKysrKyBiL3d4L2xpYi9hZ3cvc2hhcGVkYnV0 dG9uLnB5CisrQEAgLTU2OSw5ICs1NjksOSBAQCBkZWYgRHJhd01haW5CdXR0b24oc2VsZiwgZGMs IHdpZHRoLCBoZWlnaHQpOgorKyAgICAgICAgICAgICAgICAgcmVjdDIgPSB3Km1haW4vL3NlY29u ZGFyeQorKyAKKysgICAgICAgICAgICAgaWYgc2VsZi5faXN1cDoKKystICAgICAgICAgICAgICAg IGltZyA9IHNlbGYuX21haW5idXR0b251cC5TY2FsZShyZWN0MiwgcmVjdDMpCisrKyAgICAgICAg ICAgICAgICBpbWcgPSBzZWxmLl9tYWluYnV0dG9udXAuU2NhbGUoaW50KHJlY3QyKSwgaW50KHJl Y3QzKSkKKysgICAgICAgICAgICAgZWxzZToKKystICAgICAgICAgICAgICAgIGltZyA9IHNlbGYu X21haW5idXR0b25kb3duLlNjYWxlKHJlY3QyLCByZWN0MykKKysrICAgICAgICAgICAgICAgIGlt ZyA9IHNlbGYuX21haW5idXR0b25kb3duLlNjYWxlKGludChyZWN0MiksIGludChyZWN0MykpCisr IAorKyAgICAgICAgIGJtcCA9IGltZy5Db252ZXJ0VG9CaXRtYXAoKQorKyAKKytAQCAtNTk5LDcg KzU5OSw3IEBAIGRlZiBEcmF3TWFpbkJ1dHRvbihzZWxmLCBkYywgd2lkdGgsIGhlaWdodCk6Cisr ICAgICAgICAgICAgICAgICAgICAgeXBvcyA9IDAKKysgCisrICAgICAgICAgIyBEcmF3IEZpbmFs bHkgVGhlIEJpdG1hcAorKy0gICAgICAgIGRjLkRyYXdCaXRtYXAoYm1wLCB4cG9zLCB5cG9zLCBU cnVlKQorKysgICAgICAgIGRjLkRyYXdCaXRtYXAoYm1wLCBpbnQoeHBvcyksIGludCh5cG9zKSwg VHJ1ZSkKKysgCisrICAgICAgICAgIyBTdG9yZSBCaXRtYXAgUG9zaXRpb24gQW5kIFNpemUgVG8g RHJhdyBBbiBFbGxpcHRpY2FsIEZvY3VzIEluZGljYXRvcgorKyAgICAgICAgIHNlbGYuX3hwb3Mg PSB4cG9zCisrQEAgLTY0Niw3ICs2NDYsNyBAQCBkZWYgRHJhd0xhYmVsKHNlbGYsIGRjLCB3aWR0 aCwgaGVpZ2h0LCBkdz0wLCBkaD0wKToKKysgICAgICAgICAgICAgeHAgPSB4YyAtICh0dy8vMikq IGNvcyhhbmdsZSkgLSAodGgvLzIpKnNpbihhbmdsZSkKKysgICAgICAgICAgICAgeXAgPSB5YyAr ICh0dy8vMikqc2luKGFuZ2xlKSAtICh0aC8vMikqY29zKGFuZ2xlKQorKyAKKystICAgICAgICAg ICAgZGMuRHJhd1JvdGF0ZWRUZXh0KGxhYmVsLCB4cCArIGR3LCB5cCArIGRoICwgYW5nbGUqMTgw L3BpKQorKysgICAgICAgICAgICBkYy5EcmF3Um90YXRlZFRleHQobGFiZWwsIGludCh4cCArIGR3 KSwgaW50KHlwICsgZGgpLCBhbmdsZSoxODAvcGkpCisrIAorKyAKKysgICAgIGRlZiBEcmF3Rm9j dXNJbmRpY2F0b3Ioc2VsZiwgZGMsIHdpZHRoLCBoZWlnaHQpOgorK0BAIC02NzYsNyArNjc2LDcg QEAgZGVmIERyYXdGb2N1c0luZGljYXRvcihzZWxmLCBkYywgd2lkdGgsIGhlaWdodCk6CisrICAg ICAgICAgZWxzZToKKysgICAgICAgICAgICAgIyBUaGlzIElzIEFuIEVsbGlwc2UKKysgICAgICAg ICAgICAgaWYgaGFzYXR0cihzZWxmLCAiX3hwb3MiKToKKystICAgICAgICAgICAgICAgIGRjLkRy YXdFbGxpcHNlKHNlbGYuX3hwb3MgKyAyLCBzZWxmLl95cG9zICsgMiwgc2VsZi5faW1neCAtIDQs IHNlbGYuX2ltZ3kgLSA0KQorKysgICAgICAgICAgICAgICAgZGMuRHJhd0VsbGlwc2UoaW50KHNl bGYuX3hwb3MgKyAyKSwgaW50KHNlbGYuX3lwb3MgKyAyKSwgc2VsZi5faW1neCAtIDQsIHNlbGYu X2ltZ3kgLSA0KQorKyAKKysgICAgICAgICBkYy5TZXRMb2dpY2FsRnVuY3Rpb24od3guQ09QWSkK KysgCisrZGlmZiAtLWdpdCBhL3d4L2xpYi9hZ3cvc3BlZWRtZXRlci5weSBiL3d4L2xpYi9hZ3cv c3BlZWRtZXRlci5weQorK2luZGV4IGYxOTZiNTFmMi4uNjA2OTAxZDI3IDEwMDY0NAorKy0tLSBh L3d4L2xpYi9hZ3cvc3BlZWRtZXRlci5weQorKysrKyBiL3d4L2xpYi9hZ3cvc3BlZWRtZXRlci5w eQorK0BAIC01ODAsOCArNTgwLDggQEAgZGVmIERyYXcoc2VsZiwgZGMpOgorKyAgICAgICAgIGRj LlNldEJhY2tncm91bmQod3guQnJ1c2goc3BlZWRiYWNrZ3JvdW5kKSkKKysgICAgICAgICBkYy5D bGVhcigpCisrIAorKy0gICAgICAgIGNlbnRlclggPSBzZWxmLmZhY2VCaXRtYXAuR2V0V2lkdGgo KS8yCisrLSAgICAgICAgY2VudGVyWSA9IHNlbGYuZmFjZUJpdG1hcC5HZXRIZWlnaHQoKS8yCisr KyAgICAgICAgY2VudGVyWCA9IHNlbGYuZmFjZUJpdG1hcC5HZXRXaWR0aCgpLy8yCisrKyAgICAg ICAgY2VudGVyWSA9IHNlbGYuZmFjZUJpdG1hcC5HZXRIZWlnaHQoKS8vMgorKyAKKysgICAgICAg ICBzZWxmLkNlbnRlclggPSBjZW50ZXJYCisrICAgICAgICAgc2VsZi5DZW50ZXJZID0gY2VudGVy WQorK0BAIC02ODEsNyArNjgxLDcgQEAgZGVmIERyYXcoc2VsZiwgZGMpOgorKyAgICAgICAgICAg ICAjIERyYXcgVGhlIEZpbGxlciAoQm90aCBJbiAiQWR2YW5jZSIgQW5kICJSZXZlcnNlIiBEaXJl Y3Rpb25zKQorKyAKKysgICAgICAgICAgICAgZGMuU2V0QnJ1c2god3guQnJ1c2goZmlsbGVyY29s b3VyKSkKKystICAgICAgICAgICAgZGMuRHJhd0FyYyh4czIsIHlzMiwgeGUyLCB5ZTIsIGNlbnRl clgsIGNlbnRlclkpCisrKyAgICAgICAgICAgIGRjLkRyYXdBcmMoeHMyLCB5czIsIHhlMiwgeWUy LCBpbnQoY2VudGVyWCksIGludChjZW50ZXJZKSkKKysgCisrICAgICAgICAgICAgIGlmIHNlbGYu X2Fnd1N0eWxlICYgU01fRFJBV19TRUNUT1JTID09IDA6CisrICAgICAgICAgICAgICAgICBkYy5T ZXRCcnVzaCh3eC5CcnVzaChzcGVlZGJhY2tncm91bmQpKQorK0BAIC05NTIsNyArOTUyLDcgQEAg ZGVmIERyYXcoc2VsZiwgZGMpOgorKyAgICAgICAgICAgICAgICAgICAgIHkgPSB5IC0gaGVpZ2h0 LzIuMCAtIGhlaWdodCpzaW4oYW5naXMpLzIuMAorKyAgICAgICAgICAgICAgICAgICAgIGZhbmN5 dGV4dC5SZW5kZXJUb0RDKGZhbmN5c3RyLCBkYywgeCwgeSkKKysgICAgICAgICAgICAgICAgIGVs c2U6CisrLSAgICAgICAgICAgICAgICAgICAgZGMuRHJhd1RleHQoc3RyaW5ncywgeCwgeSkKKysr ICAgICAgICAgICAgICAgICAgICBkYy5EcmF3VGV4dChzdHJpbmdzLCBpbnQoeCksIGludCh5KSkK KysgCisrICAgICAgICAgICAgICMgVGhpcyBJcyBUaGUgU21hbGwgUmVjdGFuZ2xlIC0tPiBUaWNr IE1hcmsKKysgICAgICAgICAgICAgcmVjdGFuZ2xlID0gY29sb3VyYW5nbGVzW2lpXSArIHBpLzIu MAorK0BAIC05NjksNiArOTY5LDcgQEAgZGVmIERyYXcoc2VsZiwgZGMpOgorKyAgICAgICAgICAg ICB5NCA9IHkzICsgMypzZWxmLnNjYWxlKnNpbnJlY3QKKysgCisrICAgICAgICAgICAgIHBvaW50 cyA9IFsoeDEsIHkxKSwgKHgyLCB5MiksICh4NCwgeTQpLCAoeDMsIHkzKV0KKysrICAgICAgICAg ICAgcG9pbnRzID0gWyhpbnQocFswXSksIGludChwWzFdKSkgZm9yIHAgaW4gcG9pbnRzXQorKyAK KysgICAgICAgICAgICAgZGMuRHJhd1BvbHlnb24ocG9pbnRzKQorKyAKKytAQCAtMTAwMyw2ICsx MDA0LDcgQEAgZGVmIERyYXcoc2VsZiwgZGMpOgorKyAgICAgICAgICAgICAgICAgICAgICAgICB5 NCA9IHkzICsgc2VsZi5zY2FsZSpzaW5yZWN0CisrIAorKyAgICAgICAgICAgICAgICAgICAgICAg ICBwb2ludHMgPSBbKHgxLCB5MSksICh4MiwgeTIpLCAoeDQsIHk0KSwgKHgzLCB5MyldCisrKyAg ICAgICAgICAgICAgICAgICAgICAgIHBvaW50cyA9IFsoaW50KHBbMF0pLCBpbnQocFsxXSkpIGZv ciBwIGluIHBvaW50c10KKysgCisrICAgICAgICAgICAgICAgICAgICAgICAgIGRjLkRyYXdQb2x5 Z29uKHBvaW50cykKKysgCisrQEAgLTEwMTcsNyArMTAxOSw3IEBAIGRlZiBEcmF3KHNlbGYsIGRj KToKKysgICAgICAgICBkYy5TZXRCcnVzaCh3eC5UUkFOU1BBUkVOVF9CUlVTSCkKKysgCisrICAg ICAgICAgaWYgc2VsZi5fZHJhd2FyYzoKKystICAgICAgICAgICAgZGMuU2V0UGVuKHd4LlBlbihz ZWxmLkdldEFyY0NvbG91cigpLCAyLjApKQorKysgICAgICAgICAgICBkYy5TZXRQZW4od3guUGVu KHNlbGYuR2V0QXJjQ29sb3VyKCksIDIpKQorKyAgICAgICAgICAgICAjIElmIEl0J3MgTm90IEEg Q29tcGxldGUgQ2lyY2xlLCBEcmF3IFRoZSBDb25uZWN0aW5nIExpbmVzIEFuZCBUaGUgQXJjCisr ICAgICAgICAgICAgIGlmIGFicyhhYnMoc3RhcnRhbmdsZSAtIGVuZGFuZ2xlKSAtIDIqcGkpID4g MS4wLzE4MC4wOgorKyAgICAgICAgICAgICAgICAgZGMuRHJhd0FyYyh4c3RhcnQsIHlzdGFydCwg eGVuZCwgeWVuZCwgY2VudGVyWCwgY2VudGVyWSkKKytAQCAtMTA0Niw3ICsxMDQ4LDcgQEAgZGVm IERyYXcoc2VsZiwgZGMpOgorKyAgICAgICAgICAgICBuZXd4ID0gY2VudGVyWCArIDEuNSptdypj b3MobWlkZGxlYW5nbGUpIC0gbXcvMi4wCisrICAgICAgICAgICAgIG5ld3kgPSBjZW50ZXJZIC0g MS41Km1oKnNpbihtaWRkbGVhbmdsZSkgLSBtaC8yLjAKKysgICAgICAgICAgICAgZGMuU2V0VGV4 dEZvcmVncm91bmQobWlkZGxlY29sb3VyKQorKy0gICAgICAgICAgICBkYy5EcmF3VGV4dChtaWRk bGV0ZXh0LCBuZXd4LCBuZXd5KQorKysgICAgICAgICAgICBkYy5EcmF3VGV4dChtaWRkbGV0ZXh0 LCBpbnQobmV3eCksIGludChuZXd5KSkKKysgCisrICAgICAgICAgIyBIZXJlIFdlIERyYXcgVGhl IEljb24gSW4gVGhlIE1pZGRsZSwgTmVhciBUaGUgU3RhcnQgT2YgVGhlIEFycm93IChJZiBQcmVz ZW50KQorKyAgICAgICAgICMgVGhpcyBJcyBMaWtlIFRoZSAiRnVlbCIgSWNvbiBJbiBUaGUgQ2Fy cworK0BAIC0xMDU0LDggKzEwNTYsOCBAQCBkZWYgRHJhdyhzZWxmLCBkYyk6CisrIAorKyAgICAg ICAgICAgICBtaWRkbGVpY29uID0gc2VsZi5HZXRNaWRkbGVJY29uKCkKKysgICAgICAgICAgICAg bWlkZGxld2lkdGgsIG1pZGRsZWhlaWdodCA9IHNlbGYuR2V0TWlkZGxlSWNvbkRpbWVucygpCisr LSAgICAgICAgICAgIG1pZGRsZWljb24uU2V0V2lkdGgobWlkZGxld2lkdGgqc2VsZi5zY2FsZSkK KystICAgICAgICAgICAgbWlkZGxlaWNvbi5TZXRIZWlnaHQobWlkZGxlaGVpZ2h0KnNlbGYuc2Nh bGUpCisrKyAgICAgICAgICAgIG1pZGRsZWljb24uU2V0V2lkdGgoaW50KG1pZGRsZXdpZHRoKnNl bGYuc2NhbGUpKQorKysgICAgICAgICAgICBtaWRkbGVpY29uLlNldEhlaWdodChpbnQobWlkZGxl aGVpZ2h0KnNlbGYuc2NhbGUpKQorKyAgICAgICAgICAgICBtaWRkbGVhbmdsZSA9IChzdGFydGFu Z2xlICsgZW5kYW5nbGUpLzIuMAorKyAKKysgICAgICAgICAgICAgbXcgPSBtaWRkbGVpY29uLkdl dFdpZHRoKCkKKytAQCAtMTA2NCw3ICsxMDY2LDcgQEAgZGVmIERyYXcoc2VsZiwgZGMpOgorKyAg ICAgICAgICAgICBuZXd4ID0gY2VudGVyWCArIDEuNSptdypjb3MobWlkZGxlYW5nbGUpIC0gbXcv Mi4wCisrICAgICAgICAgICAgIG5ld3kgPSBjZW50ZXJZIC0gMS41Km1oKnNpbihtaWRkbGVhbmds ZSkgLSBtaC8yLjAKKysgCisrLSAgICAgICAgICAgIGRjLkRyYXdJY29uKG1pZGRsZWljb24sIG5l d3gsIG5ld3kpCisrKyAgICAgICAgICAgIGRjLkRyYXdJY29uKG1pZGRsZWljb24sIGludChuZXd4 KSwgaW50KG5ld3kpKQorKyAKKysgICAgICAgICAgICAgIyBSZXN0b3JlIEljb24gRGltZW5zaW9u LCBJZiBOb3QgU29tZXRoaW5nIFN0cmFuZ2UgSGFwcGVucworKyAgICAgICAgICAgICBtaWRkbGVp Y29uLlNldFdpZHRoKG1pZGRsZXdpZHRoKQorK0BAIC0xMTA5LDUzICsxMTExLDYxIEBAIGRlZiBE cmF3KHNlbGYsIGRjKToKKysgICAgICAgICAgICAgICAgIGlmIGhhbmRzdHlsZSA9PSAiQXJyb3ci OgorKyAgICAgICAgICAgICAgICAgICAgICMgRHJhdyBUaGUgU2hhZG93CisrICAgICAgICAgICAg ICAgICAgICAgc2hhZG93Y29sb3VyID0gc2VsZi5HZXRTaGFkb3dDb2xvdXIoKQorKy0gICAgICAg ICAgICAgICAgICAgIGRjLlNldFBlbih3eC5QZW4oc2hhZG93Y29sb3VyLCA1KmxvZyhzZWxmLnNj YWxlKzEpKSkKKysrICAgICAgICAgICAgICAgICAgICBkYy5TZXRQZW4od3guUGVuKHNoYWRvd2Nv bG91ciwgaW50KDUqbG9nKHNlbGYuc2NhbGUrMSkpKSkKKysgICAgICAgICAgICAgICAgICAgICBk Yy5TZXRCcnVzaCh3eC5CcnVzaChzaGFkb3djb2xvdXIpKQorKyAgICAgICAgICAgICAgICAgICAg IHNoYWRvd2Rpc3RhbmNlID0gMi4wKnNlbGYuc2NhbGUKKystICAgICAgICAgICAgICAgICAgICBk Yy5EcmF3TGluZShuZXd4ICsgc2hhZG93ZGlzdGFuY2UsIG5ld3kgKyBzaGFkb3dkaXN0YW5jZSwK KystICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4YXJyICsgc2hhZG93ZGlzdGFuY2Us IHlhcnIgKyBzaGFkb3dkaXN0YW5jZSkKKystCisrLSAgICAgICAgICAgICAgICAgICAgZGMuRHJh d1BvbHlnb24oWyh4MStzaGFkb3dkaXN0YW5jZSwgeTErc2hhZG93ZGlzdGFuY2UpLAorKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoeDIrc2hhZG93ZGlzdGFuY2UsIHkyK3No YWRvd2Rpc3RhbmNlKSwKKystICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHgz K3NoYWRvd2Rpc3RhbmNlLCB5MytzaGFkb3dkaXN0YW5jZSldKQorKysgICAgICAgICAgICAgICAg ICAgIGRjLkRyYXdMaW5lKGludChuZXd4ICsgc2hhZG93ZGlzdGFuY2UpLCBpbnQobmV3eSArIHNo YWRvd2Rpc3RhbmNlKSwKKysrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQoeGFy ciArIHNoYWRvd2Rpc3RhbmNlKSwgaW50KHlhcnIgKyBzaGFkb3dkaXN0YW5jZSkpCisrKworKysg ICAgICAgICAgICAgICAgICAgIHBvaW50cyA9IFsoeDErc2hhZG93ZGlzdGFuY2UsIHkxK3NoYWRv d2Rpc3RhbmNlKSwKKysrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHgyK3NoYWRvd2Rp c3RhbmNlLCB5MitzaGFkb3dkaXN0YW5jZSksCisrKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICh4MytzaGFkb3dkaXN0YW5jZSwgeTMrc2hhZG93ZGlzdGFuY2UpXQorKysgICAgICAgICAg ICAgICAgICAgIHBvaW50cyA9IFsoaW50KHBbMF0pLCBpbnQocFsxXSkpIGZvciBwIGluIHBvaW50 c10KKysrICAgICAgICAgICAgICAgICAgICBkYy5EcmF3UG9seWdvbihwb2ludHMpCisrICAgICAg ICAgICAgICAgICBlbHNlOgorKyAgICAgICAgICAgICAgICAgICAgICMgRHJhdyBUaGUgU2hhZG93 CisrICAgICAgICAgICAgICAgICAgICAgc2hhZG93Y29sb3VyID0gc2VsZi5HZXRTaGFkb3dDb2xv dXIoKQorKyAgICAgICAgICAgICAgICAgICAgIGRjLlNldEJydXNoKHd4LkJydXNoKHNoYWRvd2Nv bG91cikpCisrLSAgICAgICAgICAgICAgICAgICAgZGMuU2V0UGVuKHd4LlBlbihzaGFkb3djb2xv dXIsIDEuMCkpCisrKyAgICAgICAgICAgICAgICAgICAgZGMuU2V0UGVuKHd4LlBlbihzaGFkb3dj b2xvdXIsIDEpKQorKyAgICAgICAgICAgICAgICAgICAgIHNoYWRvd2Rpc3RhbmNlID0gMS41KnNl bGYuc2NhbGUKKysgCisrLSAgICAgICAgICAgICAgICAgICAgZGMuRHJhd1BvbHlnb24oWyh4MStz aGFkb3dkaXN0YW5jZSwgeTErc2hhZG93ZGlzdGFuY2UpLAorKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAoeDIrc2hhZG93ZGlzdGFuY2UsIHkyK3NoYWRvd2Rpc3RhbmNlKSwK KystICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHgzK3NoYWRvd2Rpc3RhbmNl LCB5MytzaGFkb3dkaXN0YW5jZSksCisrLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICh4NCtzaGFkb3dkaXN0YW5jZSwgeTQrc2hhZG93ZGlzdGFuY2UpXSkKKysrICAgICAgICAg ICAgICAgICAgICBwb2ludHMgPSBbKHgxK3NoYWRvd2Rpc3RhbmNlLCB5MStzaGFkb3dkaXN0YW5j ZSksCisrKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh4MitzaGFkb3dkaXN0YW5jZSwg eTIrc2hhZG93ZGlzdGFuY2UpLAorKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoeDMr c2hhZG93ZGlzdGFuY2UsIHkzK3NoYWRvd2Rpc3RhbmNlKSwKKysrICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKHg0K3NoYWRvd2Rpc3RhbmNlLCB5NCtzaGFkb3dkaXN0YW5jZSldCisrKyAg ICAgICAgICAgICAgICAgICAgcG9pbnRzID0gWyhpbnQocFswXSksIGludChwWzFdKSkgZm9yIHAg aW4gcG9pbnRzXQorKysgICAgICAgICAgICAgICAgICAgIGRjLkRyYXdQb2x5Z29uKHBvaW50cykK KysgCisrICAgICAgICAgICAgIGlmIGhhbmRzdHlsZSA9PSAiQXJyb3ciOgorKyAKKystICAgICAg ICAgICAgICAgIGRjLlNldFBlbih3eC5QZW4oaGFuZGNvbG91ciwgMS41KSkKKysrICAgICAgICAg ICAgICAgIGRjLlNldFBlbih3eC5QZW4oaGFuZGNvbG91ciwgMSkpCisrIAorKyAgICAgICAgICAg ICAgICAgIyBEcmF3IFRoZSBTbWFsbCBDaXJjbGUgSW4gVGhlIENlbnRlciAtLT4gVGhlIEhhbmQg IkhvbGRlciIKKysgICAgICAgICAgICAgICAgIGRjLlNldEJydXNoKHd4LkJydXNoKHNwZWVkYmFj a2dyb3VuZCkpCisrLSAgICAgICAgICAgICAgICBkYy5EcmF3Q2lyY2xlKGNlbnRlclgsIGNlbnRl clksIDQqc2VsZi5zY2FsZSkKKysrICAgICAgICAgICAgICAgIGRjLkRyYXdDaXJjbGUoY2VudGVy WCwgY2VudGVyWSwgaW50KDQqc2VsZi5zY2FsZSkpCisrIAorKy0gICAgICAgICAgICAgICAgZGMu U2V0UGVuKHd4LlBlbihoYW5kY29sb3VyLCA1KmxvZyhzZWxmLnNjYWxlKzEpKSkKKysrICAgICAg ICAgICAgICAgIGRjLlNldFBlbih3eC5QZW4oaGFuZGNvbG91ciwgaW50KDUqbG9nKHNlbGYuc2Nh bGUrMSkpKSkKKysgICAgICAgICAgICAgICAgICMgRHJhdyBUaGUgIkhhbmQiLCBBbiBBcnJvdwor Ky0gICAgICAgICAgICAgICAgZGMuRHJhd0xpbmUobmV3eCwgbmV3eSwgeGFyciwgeWFycikKKysr ICAgICAgICAgICAgICAgIGRjLkRyYXdMaW5lKGludChuZXd4KSwgaW50KG5ld3kpLCBpbnQoeGFy ciksIGludCh5YXJyKSkKKysgCisrICAgICAgICAgICAgICAgICAjIERyYXcgVGhlIEFycm93IFBv aW50ZXIKKysgICAgICAgICAgICAgICAgIGRjLlNldEJydXNoKHd4LkJydXNoKGhhbmRjb2xvdXIp KQorKy0gICAgICAgICAgICAgICAgZGMuRHJhd1BvbHlnb24oWyh4MSwgeTEpLCAoeDIsIHkyKSwg KHgzLCB5MyldKQorKysgICAgICAgICAgICAgICAgcG9pbnRzID0gWyh4MSwgeTEpLCAoeDIsIHky KSwgKHgzLCB5MyldCisrKyAgICAgICAgICAgICAgICBwb2ludHMgPSBbKGludChwWzBdKSwgaW50 KHBbMV0pKSBmb3IgcCBpbiBwb2ludHNdCisrKyAgICAgICAgICAgICAgICBkYy5EcmF3UG9seWdv bihwb2ludHMpCisrIAorKyAgICAgICAgICAgICBlbHNlOgorKyAKKysgICAgICAgICAgICAgICAg ICMgRHJhdyBUaGUgSGFuZCBQb2ludGVyCisrLSAgICAgICAgICAgICAgICBkYy5TZXRQZW4od3gu UGVuKGhhbmRjb2xvdXIsIDEuNSkpCisrKyAgICAgICAgICAgICAgICBkYy5TZXRQZW4od3guUGVu KGhhbmRjb2xvdXIsIDEpKQorKyAgICAgICAgICAgICAgICAgZGMuU2V0QnJ1c2god3guQnJ1c2go aGFuZGNvbG91cikpCisrLSAgICAgICAgICAgICAgICBkYy5EcmF3UG9seWdvbihbKHgxLCB5MSks ICh4MiwgeTIpLCAoeDMsIHkzKSwgKHg0LCB5NCldKQorKysgICAgICAgICAgICAgICAgcG9pbnRz ID0gWyh4MSwgeTEpLCAoeDIsIHkyKSwgKHgzLCB5MyksICh4NCwgeTQpXQorKysgICAgICAgICAg ICAgICAgcG9pbnRzID0gWyhpbnQocFswXSksIGludChwWzFdKSkgZm9yIHAgaW4gcG9pbnRzXQor KysgICAgICAgICAgICAgICAgZGMuRHJhd1BvbHlnb24ocG9pbnRzKQorKyAKKysgICAgICAgICAg ICAgICAgICMgRHJhdyBUaGUgU21hbGwgQ2lyY2xlIEluIFRoZSBDZW50ZXIgLS0+IFRoZSBIYW5k ICJIb2xkZXIiCisrICAgICAgICAgICAgICAgICBkYy5TZXRCcnVzaCh3eC5CcnVzaChzcGVlZGJh Y2tncm91bmQpKQorKy0gICAgICAgICAgICAgICAgZGMuRHJhd0NpcmNsZShjZW50ZXJYLCBjZW50 ZXJZLCA0KnNlbGYuc2NhbGUpCisrKyAgICAgICAgICAgICAgICBkYy5EcmF3Q2lyY2xlKGNlbnRl clgsIGNlbnRlclksIGludCg0KnNlbGYuc2NhbGUpKQorKyAKKysgCisrICAgICBkZWYgU2V0SW50 ZXJ2YWxzKHNlbGYsIGludGVydmFscz1Ob25lKToKKytAQCAtMTUyNyw3ICsxNTM3LDcgQEAgZGVm IFNldE1pZGRsZVRleHRGb250KHNlbGYsIGZvbnQ9Tm9uZSk6CisrIAorKyAgICAgICAgIGlmIGZv bnQgaXMgTm9uZToKKysgICAgICAgICAgICAgc2VsZi5fbWlkZGxldGV4dGZvbnQgPSB3eC5Gb250 KDEsIHd4LkZPTlRGQU1JTFlfU1dJU1MsIHd4LkZPTlRTVFlMRV9OT1JNQUwsIHd4LkZPTlRXRUlH SFRfQk9MRCwgRmFsc2UpCisrLSAgICAgICAgICAgIHNlbGYuX21pZGRsZXRleHRzaXplID0gMTAu MAorKysgICAgICAgICAgICBzZWxmLl9taWRkbGV0ZXh0c2l6ZSA9IDEwCisrICAgICAgICAgICAg IHNlbGYuX21pZGRsZXRleHRmb250LlNldFBvaW50U2l6ZShzZWxmLl9taWRkbGV0ZXh0c2l6ZSkK KysgICAgICAgICBlbHNlOgorKyAgICAgICAgICAgICBzZWxmLl9taWRkbGV0ZXh0Zm9udCA9IGZv bnQKKytAQCAtMTU5OSw3ICsxNjA5LDcgQEAgZGVmIENpcmNsZUNvb3JkcyhzZWxmLCByYWRpdXMs IGFuZ2xlLCBjZW50ZXJYLCBjZW50ZXJZKToKKysgICAgICAgICB4ID0gcmFkaXVzKmNvcyhhbmds ZSkgKyBjZW50ZXJYCisrICAgICAgICAgeSA9IHJhZGl1cypzaW4oYW5nbGUpICsgY2VudGVyWQor KyAKKystICAgICAgICByZXR1cm4geCwgeQorKysgICAgICAgIHJldHVybiBpbnQoeCksIGludCh5 KQorKyAKKysgCisrICAgICBkZWYgR2V0SW50ZXJzZWN0aW9uKHNlbGYsIGN1cnJlbnQsIGludGVy dmFscyk6CisrZGlmZiAtLWdpdCBhL3d4L2xpYi9hZ3cvc3VwZXJ0b29sdGlwLnB5IGIvd3gvbGli L2Fndy9zdXBlcnRvb2x0aXAucHkKKytpbmRleCBhOTJjZTEwZDEuLmNkMGYwYzlmNyAxMDA2NDQK KystLS0gYS93eC9saWIvYWd3L3N1cGVydG9vbHRpcC5weQorKysrKyBiL3d4L2xpYi9hZ3cvc3Vw ZXJ0b29sdGlwLnB5CisrQEAgLTI5NSw4ICsyOTUsOCBAQCBkZWYgT25QYWludChzZWxmLCBldmVu dCk6CisrIAorKyAgICAgICAgICMgR2V0IHRoZSB1c2VyIG9wdGlvbnMgZm9yIGhlYWRlciwgYml0 bWFwcyBldGMuLi4KKysgICAgICAgICBkcmF3SGVhZGVyLCBkcmF3Rm9vdGVyID0gY2xhc3NQYXJl bnQuR2V0RHJhd0hlYWRlckxpbmUoKSwgY2xhc3NQYXJlbnQuR2V0RHJhd0Zvb3RlckxpbmUoKQor Ky0gICAgICAgIHRvcFJlY3QgPSB3eC5SZWN0KGZyYW1lUmVjdC54LCBmcmFtZVJlY3QueSwgZnJh bWVSZWN0LndpZHRoLCBmcmFtZVJlY3QuaGVpZ2h0LzIpCisrLSAgICAgICAgYm90dG9tUmVjdCA9 IHd4LlJlY3QoZnJhbWVSZWN0LngsIGZyYW1lUmVjdC55K2ZyYW1lUmVjdC5oZWlnaHQvMiwgZnJh bWVSZWN0LndpZHRoLCBmcmFtZVJlY3QuaGVpZ2h0LzIrMSkKKysrICAgICAgICB0b3BSZWN0ID0g d3guUmVjdChmcmFtZVJlY3QueCwgZnJhbWVSZWN0LnksIGZyYW1lUmVjdC53aWR0aCwgZnJhbWVS ZWN0LmhlaWdodC8vMikKKysrICAgICAgICBib3R0b21SZWN0ID0gd3guUmVjdChmcmFtZVJlY3Qu eCwgZnJhbWVSZWN0LnkrZnJhbWVSZWN0LmhlaWdodC8vMiwgZnJhbWVSZWN0LndpZHRoLCBmcmFt ZVJlY3QuaGVpZ2h0Ly8yKzEpCisrICAgICAgICAgIyBGaWxsIHRoZSB0cmlwbGUtZ3JhZGllbnQK KysgICAgICAgICBkYy5HcmFkaWVudEZpbGxMaW5lYXIodG9wUmVjdCwgdG9wQ29sb3VyLCBtaWRk bGVDb2xvdXIsIHd4LlNPVVRIKQorKyAgICAgICAgIGRjLkdyYWRpZW50RmlsbExpbmVhcihib3R0 b21SZWN0LCBtaWRkbGVDb2xvdXIsIGJvdHRvbUNvbG91ciwgd3guU09VVEgpCisrQEAgLTMyNCw5 ICszMjQsOSBAQCBkZWYgT25QYWludChzZWxmLCBldmVudCk6CisrICAgICAgICAgbm9ybWFsVGV4 dCA9IGNsYXNzUGFyZW50LkdldFRleHRDb2xvdXIoKQorKyAgICAgICAgIGlmIGhlYWRlcjoKKysg ICAgICAgICAgICAgZGMuU2V0VGV4dEZvcmVncm91bmQobm9ybWFsVGV4dCkKKystICAgICAgICAg ICAgZGMuRHJhd1RleHQoaGVhZGVyLCBibXBYUG9zK2JtcFdpZHRoK3NlbGYuX3NwYWNpbmcsICho ZWlnaHQtdGV4dEhlaWdodCtzZWxmLl9zcGFjaW5nKS8yKQorKysgICAgICAgICAgICBkYy5EcmF3 VGV4dChoZWFkZXIsIGJtcFhQb3MrYm1wV2lkdGgrc2VsZi5fc3BhY2luZywgKGhlaWdodC10ZXh0 SGVpZ2h0K3NlbGYuX3NwYWNpbmcpLy8yKQorKyAgICAgICAgIGlmIGhlYWRlckJtcCBhbmQgaGVh ZGVyQm1wLklzT2soKToKKystICAgICAgICAgICAgZGMuRHJhd0JpdG1hcChoZWFkZXJCbXAsIGJt cFhQb3MsIChoZWlnaHQtYm1wSGVpZ2h0K3NlbGYuX3NwYWNpbmcpLzIsIFRydWUpCisrKyAgICAg ICAgICAgIGRjLkRyYXdCaXRtYXAoaGVhZGVyQm1wLCBibXBYUG9zLCAoaGVpZ2h0LWJtcEhlaWdo dCtzZWxmLl9zcGFjaW5nKS8vMiwgVHJ1ZSkKKysgCisrICAgICAgICAgaWYgaGVhZGVyIG9yICho ZWFkZXJCbXAgYW5kIGhlYWRlckJtcC5Jc09rKCkpOgorKyAgICAgICAgICAgICB5UG9zICs9IGhl aWdodAorK0BAIC0zNzYsNyArMzc2LDcgQEAgZGVmIE9uUGFpbnQoc2VsZiwgZXZlbnQpOgorKyAg ICAgICAgICAgICAgICAgbWVzc2FnZUhlaWdodCArPSB0ZXh0SGVpZ2h0CisrIAorKyAgICAgICAg ICAgICAgICAgeFRleHQgPSAoYm1wV2lkdGggKyAyICogc2VsZi5fc3BhY2luZykgaWYgYm1wV2lk dGggPiAwIGVsc2Ugc2VsZi5fc3BhY2luZworKy0gICAgICAgICAgICAgICAgeVRleHQgKz0gdGV4 dEhlaWdodC8yK3NlbGYuX3NwYWNpbmcKKysrICAgICAgICAgICAgICAgIHlUZXh0ICs9IHRleHRI ZWlnaHQvLzIrc2VsZi5fc3BhY2luZworKyAgICAgICAgICAgICAgICAgbWF4V2lkdGggPSBtYXgo eFRleHQgKyB0ZXh0V2lkdGggKyBzZWxmLl9zcGFjaW5nLCBtYXhXaWR0aCkKKysgICAgICAgICAg ICAgICAgIGRjLkRyYXdUZXh0KGxpbmUsIHhUZXh0LCB5VGV4dCkKKysgICAgICAgICAgICAgICAg IGlmIGlzTGluazoKKytAQCAtNDEyLDggKzQxMiw4IEBAIGRlZiBPblBhaW50KHNlbGYsIGV2ZW50 KToKKysgICAgICAgICAgICAgaWYgZHJhd0Zvb3RlcjoKKysgICAgICAgICAgICAgICAgICMgRHJh dyB0aGUgc2VwYXJhdG9yIGxpbmUgYmVmb3JlIHRoZSBmb290ZXIKKysgICAgICAgICAgICAgICAg IGRjLlNldFBlbih3eC5HUkVZX1BFTikKKystICAgICAgICAgICAgICAgIGRjLkRyYXdMaW5lKHNl bGYuX3NwYWNpbmcsIHlQb3Mtc2VsZi5fc3BhY2luZy8yK3RvQWRkLAorKy0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgd2lkdGgtc2VsZi5fc3BhY2luZywgeVBvcy1zZWxmLl9zcGFjaW5nLzIr dG9BZGQpCisrKyAgICAgICAgICAgICAgICBkYy5EcmF3TGluZShzZWxmLl9zcGFjaW5nLCB5UG9z LXNlbGYuX3NwYWNpbmcvLzIrdG9BZGQsCisrKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB3 aWR0aC1zZWxmLl9zcGFjaW5nLCB5UG9zLXNlbGYuX3NwYWNpbmcvLzIrdG9BZGQpCisrICAgICAg ICAgIyBEcmF3IHRoZSBmb290ZXIgYW5kIGZvb3RlciBiaXRtYXAgKGlmIGFueSkKKysgICAgICAg ICBkYy5TZXRUZXh0Rm9yZWdyb3VuZChub3JtYWxUZXh0KQorKyAgICAgICAgIGhlaWdodCA9IG1h eCh0ZXh0SGVpZ2h0LCBibXBIZWlnaHQpCisrQEAgLTQyNCw3ICs0MjQsNyBAQCBkZWYgT25QYWlu dChzZWxmLCBldmVudCk6CisrICAgICAgICAgICAgIG1heFdpZHRoID0gbWF4KGJtcFhQb3MgKyBi bXBXaWR0aCArIChzZWxmLl9zcGFjaW5nKjIpICsgdGV4dFdpZHRoLCBtYXhXaWR0aCkKKysgICAg ICAgICBpZiBmb290ZXJCbXAgYW5kIGZvb3RlckJtcC5Jc09rKCk6CisrICAgICAgICAgICAgIHRv QWRkID0gKGhlaWdodCAtIGJtcEhlaWdodCArIHNlbGYuX3NwYWNpbmcpIC8gMgorKy0gICAgICAg ICAgICBkYy5EcmF3Qml0bWFwKGZvb3RlckJtcCwgYm1wWFBvcywgeVBvcyArIHRvQWRkLCBUcnVl KQorKysgICAgICAgICAgICBkYy5EcmF3Qml0bWFwKGZvb3RlckJtcCwgYm1wWFBvcywgaW50KHlQ b3MgKyB0b0FkZCksIFRydWUpCisrICAgICAgICAgICAgIG1heFdpZHRoID0gbWF4KGZvb3RlckJt cC5HZXRTaXplKCkuR2V0V2lkdGgoKSArIGJtcFhQb3MsIG1heFdpZHRoKQorKyAKKysgICAgICAg ICBtYXhIZWlnaHQgPSB5UG9zICsgaGVpZ2h0ICsgdG9BZGQKKytAQCAtODE1LDcgKzgxNSw3IEBA IGRlZiBTZXRTdGFydERlbGF5KHNlbGYsIGRlbGF5PTEpOgorKyAgICAgICAgIDpwYXJhbSBgZGVs YXlgOiB0aGUgZGVsYXkgaW4gc2Vjb25kcy4KKysgICAgICAgICAiIiIKKysgCisrLSAgICAgICAg c2VsZi5fc3RhcnREZWxheVRpbWUgPSBmbG9hdChkZWxheSkKKysrICAgICAgICBzZWxmLl9zdGFy dERlbGF5VGltZSA9IGludChkZWxheSkKKysgCisrIAorKyAgICAgZGVmIEdldFN0YXJ0RGVsYXko c2VsZik6CisrQEAgLTgzMSw3ICs4MzEsNyBAQCBkZWYgU2V0RW5kRGVsYXkoc2VsZiwgZGVsYXk9 MWU2KToKKysgICAgICAgICA6cGFyYW0gYGRlbGF5YDogdGhlIGRlbGF5IGluIHNlY29uZHMuCisr ICAgICAgICAgIiIiCisrIAorKy0gICAgICAgIHNlbGYuX2VuZERlbGF5VGltZSA9IGZsb2F0KGRl bGF5KQorKysgICAgICAgIHNlbGYuX2VuZERlbGF5VGltZSA9IGludChkZWxheSkKKysgCisrIAor KyAgICAgZGVmIEdldEVuZERlbGF5KHNlbGYpOgorK2RpZmYgLS1naXQgYS93eC9saWIvYWd3L3Rv YXN0ZXJib3gucHkgYi93eC9saWIvYWd3L3RvYXN0ZXJib3gucHkKKytpbmRleCBiNzM0MjlkZDIu LjhlZmI1ODY5YiAxMDA2NDQKKystLS0gYS93eC9saWIvYWd3L3RvYXN0ZXJib3gucHkKKysrKysg Yi93eC9saWIvYWd3L3RvYXN0ZXJib3gucHkKKytAQCAtMTMxNiwxMSArMTMxNiwxMSBAQCBkZWYg X2dldFRleHRDb29yZHMoc2VsZiwgZGMpOgorKyAgICAgICAgIGZvciBsaW5lIGluIGxpbmVzOgor KyAgICAgICAgICAgICB3LCBoID0gZGMuR2V0VGV4dEV4dGVudChsaW5lKQorKyAgICAgICAgICAg ICBmaCArPSBoICsgdGV4dFBhZGRpbmcKKystICAgICAgICB5ID0gKHRoIC0gZmgpIC8gMjsgY29v cmRzID0gW10KKysrICAgICAgICB5ID0gKHRoIC0gZmgpIC8vIDI7IGNvb3JkcyA9IFtdCisrIAor KyAgICAgICAgIGZvciBsaW5lIGluIGxpbmVzOgorKyAgICAgICAgICAgICB3LCBoID0gZGMuR2V0 VGV4dEV4dGVudChsaW5lKQorKy0gICAgICAgICAgICB4ID0gKHR3IC0gdykgLyAyCisrKyAgICAg ICAgICAgIHggPSAodHcgLSB3KSAvLyAyCisrICAgICAgICAgICAgIGNvb3Jkcy5hcHBlbmQoKHgs IHkpKQorKyAgICAgICAgICAgICB5ICs9IGggKyB0ZXh0UGFkZGluZworKyAKKytkaWZmIC0tZ2l0 IGEvd3gvbGliL2Fndy91bHRpbWF0ZWxpc3RjdHJsLnB5IGIvd3gvbGliL2Fndy91bHRpbWF0ZWxp c3RjdHJsLnB5CisraW5kZXggMTRmYzQxZjg2Li5jYWE1ZTVjZjQgMTAwNjQ0CisrLS0tIGEvd3gv bGliL2Fndy91bHRpbWF0ZWxpc3RjdHJsLnB5CisrKysrIGIvd3gvbGliL2Fndy91bHRpbWF0ZWxp c3RjdHJsLnB5CisrQEAgLTkxNCw3ICs5MTQsNyBAQCBkZWYgRHJhdyhzZWxmLCBpbmRleCwgZGMs IHgsIHksIGZsYWdzLCBzb2xpZEJhY2tncm91bmQ9VHJ1ZSk6CisrICAgICAgICAgICAgIHJhaXNl IEV4Y2VwdGlvbigiV3JvbmcgaW5kZXggaW4gaW1hZ2UgbGlzdCIpCisrIAorKyAgICAgICAgIGJt cCA9IHNlbGYuX2ltYWdlc1tpbmRleF0KKystICAgICAgICBkYy5EcmF3Qml0bWFwKGJtcCwgeCwg eSwgKGZsYWdzICYgd3guSU1BR0VMSVNUX0RSQVdfVFJBTlNQQVJFTlQpID4gMCkKKysrICAgICAg ICBkYy5EcmF3Qml0bWFwKGJtcCwgeCwgaW50KHkpLCAoZmxhZ3MgJiB3eC5JTUFHRUxJU1RfRFJB V19UUkFOU1BBUkVOVCkgPiAwKQorKyAKKysgICAgICAgICByZXR1cm4gVHJ1ZQorKyAKKytAQCAt NDAyMiw3ICs0MDIyLDcgQEAgZGVmIFNldFBvc2l0aW9uKHNlbGYsIHgsIHksIHNwYWNpbmcpOgor KyAKKysgICAgICAgICAgICAgaWYgaXRlbS5IYXNJbWFnZSgpOgorKyAKKystICAgICAgICAgICAg ICAgIHNlbGYuX2dpLl9yZWN0SWNvbi54ID0gc2VsZi5fZ2kuX3JlY3RBbGwueCArIDQgKyAoc2Vs Zi5fZ2kuX3JlY3RBbGwud2lkdGggLSBzZWxmLl9naS5fcmVjdEljb24ud2lkdGgpLzIKKysrICAg ICAgICAgICAgICAgIHNlbGYuX2dpLl9yZWN0SWNvbi54ID0gc2VsZi5fZ2kuX3JlY3RBbGwueCAr IDQgKyAoc2VsZi5fZ2kuX3JlY3RBbGwud2lkdGggLSBzZWxmLl9naS5fcmVjdEljb24ud2lkdGgp Ly8yCisrICAgICAgICAgICAgICAgICBzZWxmLl9naS5fcmVjdEljb24ueSA9IHNlbGYuX2dpLl9y ZWN0QWxsLnkgKyA0CisrIAorKyAgICAgICAgICAgICBpZiBpdGVtLkhhc1RleHQoKToKKytAQCAt NDAzMCw3ICs0MDMwLDcgQEAgZGVmIFNldFBvc2l0aW9uKHNlbGYsIHgsIHksIHNwYWNpbmcpOgor KyAgICAgICAgICAgICAgICAgaWYgc2VsZi5fZ2kuX3JlY3RMYWJlbC53aWR0aCA+IHNwYWNpbmc6 CisrICAgICAgICAgICAgICAgICAgICAgc2VsZi5fZ2kuX3JlY3RMYWJlbC54ID0gc2VsZi5fZ2ku X3JlY3RBbGwueCArIDIKKysgICAgICAgICAgICAgICAgIGVsc2U6CisrLSAgICAgICAgICAgICAg ICAgICAgc2VsZi5fZ2kuX3JlY3RMYWJlbC54ID0gc2VsZi5fZ2kuX3JlY3RBbGwueCArIDIgKyAo c3BhY2luZy8yKSAtIChzZWxmLl9naS5fcmVjdExhYmVsLndpZHRoLzIpCisrKyAgICAgICAgICAg ICAgICAgICAgc2VsZi5fZ2kuX3JlY3RMYWJlbC54ID0gc2VsZi5fZ2kuX3JlY3RBbGwueCArIDIg KyAoc3BhY2luZy8vMikgLSAoc2VsZi5fZ2kuX3JlY3RMYWJlbC53aWR0aC8vMikKKysgCisrICAg ICAgICAgICAgICAgICBzZWxmLl9naS5fcmVjdExhYmVsLnkgPSBzZWxmLl9naS5fcmVjdEFsbC55 ICsgc2VsZi5fZ2kuX3JlY3RBbGwuaGVpZ2h0ICsgMiAtIHNlbGYuX2dpLl9yZWN0TGFiZWwuaGVp Z2h0CisrICAgICAgICAgICAgICAgICBzZWxmLl9naS5fcmVjdEhpZ2hsaWdodC54ID0gc2VsZi5f Z2kuX3JlY3RMYWJlbC54IC0gMgorK0BAIC00NTQ2LDcgKzQ1NDYsNyBAQCBkZWYgRHJhd0luUmVw b3J0TW9kZShzZWxmLCBkYywgbGluZSwgcmVjdCwgcmVjdEhMLCBoaWdobGlnaHRlZCwgY3VycmVu dCwgZW5hYmxlZAorKyAgICAgICAgICAgICAgICAgIyBXZSBnb3QgYSBjaGVja2JveC10eXBlIGl0 ZW0KKysgICAgICAgICAgICAgICAgIGl4LCBpeSA9IHNlbGYuX293bmVyLkdldENoZWNrYm94SW1h Z2VTaXplKCkKKysgICAgICAgICAgICAgICAgIGNoZWNrZWQgPSBpdGVtLklzQ2hlY2tlZCgpCisr LSAgICAgICAgICAgICAgICBzZWxmLl9vd25lci5EcmF3Q2hlY2tib3goZGMsIHhPbGQsIHkgKyAo aGVpZ2h0LWl5KzEpLzIsIGl0ZW0uR2V0S2luZCgpLCBjaGVja2VkLCBlbmFibGVkKQorKysgICAg ICAgICAgICAgICAgc2VsZi5fb3duZXIuRHJhd0NoZWNrYm94KGRjLCB4T2xkLCB5ICsgKGhlaWdo dC1peSsxKS8vMiwgaXRlbS5HZXRLaW5kKCksIGNoZWNrZWQsIGVuYWJsZWQpCisrICAgICAgICAg ICAgICAgICB4T2xkICs9IGl4CisrICAgICAgICAgICAgICAgICB3aWR0aCAtPSBpeAorKyAKKytA QCAtNDU1Nyw3ICs0NTU3LDcgQEAgZGVmIERyYXdJblJlcG9ydE1vZGUoc2VsZiwgZGMsIGxpbmUs IHJlY3QsIHJlY3RITCwgaGlnaGxpZ2h0ZWQsIGN1cnJlbnQsIGVuYWJsZWQKKysgICAgICAgICAg ICAgICAgIGZvciBpbWcgaW4gaW1hZ2VzOgorKyAKKysgICAgICAgICAgICAgICAgICAgICBpeCwg aXkgPSBzZWxmLl9vd25lci5HZXRJbWFnZVNpemUoW2ltZ10pCisrLSAgICAgICAgICAgICAgICAg ICAgc2VsZi5fb3duZXIuRHJhd0ltYWdlKGltZywgZGMsIHhPbGQsIHkgKyAoaGVpZ2h0LWl5KS8y LCBlbmFibGVkKQorKysgICAgICAgICAgICAgICAgICAgIHNlbGYuX293bmVyLkRyYXdJbWFnZShp bWcsIGRjLCB4T2xkLCB5ICsgKGhlaWdodC1peSkvLzIsIGVuYWJsZWQpCisrIAorKyAgICAgICAg ICAgICAgICAgICAgIHhPbGQgKz0gaXgKKysgICAgICAgICAgICAgICAgICAgICB3aWR0aCAtPSBp eAorK0BAIC01MjMwLDcgKzUyMzAsNyBAQCBkZWYgT25QYWludChzZWxmLCBldmVudCk6CisrICAg ICAgICAgICAgICAgICAjIFdlIGdvdCBhIGNoZWNrYm94LXR5cGUgaXRlbQorKyAgICAgICAgICAg ICAgICAgaXgsIGl5ID0gc2VsZi5fb3duZXIuR2V0Q2hlY2tib3hJbWFnZVNpemUoKQorKyAgICAg ICAgICAgICAgICAgIyBXZSBkcmF3IGl0IG9uIHRoZSBsZWZ0LCBhbHdheXMKKystICAgICAgICAg ICAgICAgIHNlbGYuX293bmVyLkRyYXdDaGVja2JveChkYywgeCArIEhFQURFUl9PRkZTRVRfWCwg SEVBREVSX09GRlNFVF9ZICsgKGggLSA0IC0gaXkpLzIsIGtpbmQsIGNoZWNrZWQsIGVuYWJsZWQp CisrKyAgICAgICAgICAgICAgICBzZWxmLl9vd25lci5EcmF3Q2hlY2tib3goZGMsIHggKyBIRUFE RVJfT0ZGU0VUX1gsIEhFQURFUl9PRkZTRVRfWSArIChoIC0gNCAtIGl5KS8vMiwga2luZCwgY2hl Y2tlZCwgZW5hYmxlZCkKKysgICAgICAgICAgICAgICAgIHdjaGVjayArPSBpeCArIEhFQURFUl9J TUFHRV9NQVJHSU5fSU5fUkVQT1JUX01PREUKKysgICAgICAgICAgICAgICAgIGN3IC09IGl4ICsg SEVBREVSX0lNQUdFX01BUkdJTl9JTl9SRVBPUlRfTU9ERQorKyAKKytAQCAtNjgxOSw3ICs2ODE5 LDcgQEAgZGVmIEhpdFRlc3RMaW5lKHNlbGYsIGxpbmUsIHgsIHkpOgorKyAgICAgICAgICAgICAg ICAgICAgICMgV2UgZ290IGEgY2hlY2tib3gtdHlwZSBpdGVtCisrICAgICAgICAgICAgICAgICAg ICAgaXgsIGl5ID0gc2VsZi5HZXRDaGVja2JveEltYWdlU2l6ZSgpCisrICAgICAgICAgICAgICAg ICAgICAgTEggPSBzZWxmLkdldExpbmVIZWlnaHQobGluZSkKKystICAgICAgICAgICAgICAgICAg ICByZWN0ID0gd3guUmVjdCh4T2xkLCBsaW5lWSArIExILzIgLSBpeS8yLCBpeCwgaXkpCisrKyAg ICAgICAgICAgICAgICAgICAgcmVjdCA9IHd4LlJlY3QoeE9sZCwgbGluZVkgKyBMSC8vMiAtIGl5 Ly8yLCBpeCwgaXkpCisrICAgICAgICAgICAgICAgICAgICAgaWYgcmVjdC5Db250YWlucygoeCwg eSkpOgorKyAgICAgICAgICAgICAgICAgICAgICAgICBuZXdJdGVtID0gc2VsZi5HZXRQYXJlbnQo KS5HZXRJdGVtKGxpbmUsIGNvbCkKKysgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5l d0l0ZW0sIFVMQ19ISVRURVNUX09OSVRFTUNIRUNLCisrQEAgLTc5MzcsMTMgKzc5MzcsMTMgQEAg ZGVmIE1vdmVUb0l0ZW0oc2VsZiwgaXRlbSk6CisrICAgICAgICAgICAgICAgICAgICAgd2hpbGUg c3RhcnRfeSA+IHZpZXdfeToKKysgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfeSAtPSBT Q1JPTExfVU5JVF9ZCisrIAorKy0gICAgICAgICAgICAgICAgICAgIHNlbGYuU2Nyb2xsKC0xLCBz dGFydF95L1NDUk9MTF9VTklUX1kpCisrKyAgICAgICAgICAgICAgICAgICAgc2VsZi5TY3JvbGwo LTEsIHN0YXJ0X3kvL1NDUk9MTF9VTklUX1kpCisrIAorKyAgICAgICAgICAgICAgICAgaWYgc3Rh cnRfeSArIGhlaWdodCA+IHZpZXdfeSArIGNsaWVudF9oOgorKyAgICAgICAgICAgICAgICAgICAg IHdoaWxlIHN0YXJ0X3kgKyBoZWlnaHQgPCB2aWV3X3kgKyBjbGllbnRfaDoKKysgICAgICAgICAg ICAgICAgICAgICAgICAgc3RhcnRfeSArPSBTQ1JPTExfVU5JVF9ZCisrIAorKy0gICAgICAgICAg ICAgICAgICAgIHNlbGYuU2Nyb2xsKC0xLCAoc3RhcnRfeStoZWlnaHQtY2xpZW50X2grU0NST0xM X1VOSVRfWSkvU0NST0xMX1VOSVRfWSkKKysrICAgICAgICAgICAgICAgICAgICBzZWxmLlNjcm9s bCgtMSwgKHN0YXJ0X3kraGVpZ2h0LWNsaWVudF9oK1NDUk9MTF9VTklUX1kpLy9TQ1JPTExfVU5J VF9ZKQorKyAKKysgICAgICAgICBlbHNlOiAjICFyZXBvcnQKKysgCisrQEAgLTc5NjAsNyArNzk2 MCw3IEBAIGRlZiBNb3ZlVG9JdGVtKHNlbGYsIGl0ZW0pOgorKyAgICAgICAgICAgICBpZiByZWN0 LnkgKyByZWN0LmhlaWdodCAtIDUgPiB2aWV3X3kgKyBjbGllbnRfaDoKKysgICAgICAgICAgICAg ICAgIHN5ID0gKHJlY3QueSArIHJlY3QuaGVpZ2h0IC0gY2xpZW50X2ggKyBoTGluZSkvaExpbmUK KysgCisrLSAgICAgICAgICAgIHNlbGYuU2Nyb2xsKHN4LCBzeSkKKysrICAgICAgICAgICAgc2Vs Zi5TY3JvbGwoaW50KHN4KSwgaW50KHN5KSkKKysgCisrIAorKyAjIC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKytkaWZmIC0tZ2l0IGEvd3gvbGliL2Fndy94bHNncmlkLnB5IGIvd3gvbGliL2Fndy94bHNn cmlkLnB5CisraW5kZXggYjUwNWFlYmI0Li4xNzI2N2ZhYmMgMTAwNjQ0CisrLS0tIGEvd3gvbGli L2Fndy94bHNncmlkLnB5CisrKysrIGIvd3gvbGliL2Fndy94bHNncmlkLnB5CisrQEAgLTk2NSw3 ICs5NjUsNyBAQCBkZWYgRHJhdyhzZWxmLCBkYywgcmVjdCk6CisrICAgICAgICAgICAgIHhwID0g eGMgLSAodGV4dF93aWR0aC8yKSp4c2hpZnQgLSAodGV4dF9oZWlnaHQvMikqeXNoaWZ0CisrICAg ICAgICAgICAgIHlwID0geWMgKyAodGV4dF93aWR0aC8yKSp5c2hpZnQgLSAodGV4dF9oZWlnaHQv MikqeHNoaWZ0CisrIAorKy0gICAgICAgICAgICBkYy5EcmF3Um90YXRlZFRleHQodmFsdWUsIHhw LCB5cCwgc2VsZi5yb3RhdGlvbikKKysrICAgICAgICAgICAgZGMuRHJhd1JvdGF0ZWRUZXh0KHZh bHVlLCBpbnQoeHApLCBpbnQoeXApLCBzZWxmLnJvdGF0aW9uKQorKyAKKysgICAgICAgICBlbHNl OgorKyAKKytAQCAtMTEyNSw3ICsxMTI1LDcgQEAgZGVmIERyYXcoc2VsZiwgZGMsIHJlY3QpOgor KyAgICAgICAgICAgICBpZiBmb250LmVzY2FwZW1lbnQgPT0gMToKKysgICAgICAgICAgICAgICAg IHlwb3MgPSB5cG9zIC0gbWF4SCArIGhlaWdodAorKyAKKystICAgICAgICAgICAgZGMuRHJhd1Rl eHQoY2h1bmssIHN0YXJ0LCB5cG9zKQorKysgICAgICAgICAgICBkYy5EcmF3VGV4dChjaHVuaywg c3RhcnQsIGludCh5cG9zKSkKKysgICAgICAgICAgICAgc3RhcnQgKz0gd2lkdGgKKysgCisrIAor K2RpZmYgLS1naXQgYS93eC9saWIvYWd3L3pvb21iYXIucHkgYi93eC9saWIvYWd3L3pvb21iYXIu cHkKKytpbmRleCAxZTZlYzVkYTMuLjhjMmFmZDA1OCAxMDA2NDQKKystLS0gYS93eC9saWIvYWd3 L3pvb21iYXIucHkKKysrKysgYi93eC9saWIvYWd3L3pvb21iYXIucHkKKytAQCAtNDYzLDcgKzQ2 Myw3IEBAIGRlZiBTZXRTaXplKHNlbGYsIHdpZHRoLCBoZWlnaHQpOgorKyAgICAgZGVmIEdldFBv c2l0aW9uKHNlbGYpOgorKyAgICAgICAgICIiIiBSZXR1cm5zIHRoZSBidXR0b24gcG9zaXRpb24u ICIiIgorKyAKKystICAgICAgICByZXR1cm4gd3guUG9pbnQoc2VsZi5fbGVmdCwgc2VsZi5fdG9w KQorKysgICAgICAgIHJldHVybiB3eC5Qb2ludChpbnQoc2VsZi5fbGVmdCksIGludChzZWxmLl90 b3ApKQorKyAKKysgCisrICAgICBkZWYgR2V0U2l6ZShzZWxmKToKKytAQCAtNjAxLDcgKzYwMSw3 IEBAIGRlZiBfX2luaXRfXyhzZWxmLCBiaXRtYXA9Tm9uZSk6CisrICAgICBkZWYgR2V0UG9zaXRp b24oc2VsZik6CisrICAgICAgICAgIiIiIFJldHVybnMgdGhlIHBvc2l0aW9uIG9mIDpjbGFzczpg d3guSW1hZ2VCYXJgLCBhcyBhIDpjbGFzczpgd3guUG9pbnRgLiAiIiIKKysgCisrLSAgICAgICAg cmV0dXJuIHd4LlBvaW50KHNlbGYuX2xlZnQsIHNlbGYuX3RvcCkKKysrICAgICAgICByZXR1cm4g d3guUG9pbnQoaW50KHNlbGYuX2xlZnQpLCBpbnQoc2VsZi5fdG9wKSkKKysgCisrIAorKyAgICAg ZGVmIEdldFNpemUoc2VsZik6CisrQEAgLTY2MCw3ICs2NjAsNyBAQCBkZWYgU2V0QmFyQ29sb3Vy KHNlbGYsIGNvbG91ciwgeFNpemU9Tm9uZSwgeVNpemU9Tm9uZSk6CisrICAgICAgICAgaWYgeFNp emUgaXMgbm90IE5vbmU6CisrICAgICAgICAgICAgIHNlbGYuX3NpemUgPSB3eC5TaXplKHhTaXpl LCB5U2l6ZSkKKysgCisrLSAgICAgICAgYml0bWFwLlJlc2NhbGUoc2VsZi5fc2l6ZS53aWR0aCwg c2VsZi5fc2l6ZS5oZWlnaHQvMikKKysrICAgICAgICBiaXRtYXAuUmVzY2FsZShzZWxmLl9zaXpl LndpZHRoLCBzZWxmLl9zaXplLmhlaWdodC8vMikKKysgCisrICAgICAgICAgcjEsIGcxLCBiMSA9 IHNlbGYuX3N0YXJ0Q29sb3VyLlJlZCgpLCBzZWxmLl9zdGFydENvbG91ci5HcmVlbigpLCBzZWxm Ll9zdGFydENvbG91ci5CbHVlKCkKKysgICAgICAgICByMiwgZzIsIGIyID0gY29sb3VyLlJlZCgp LCBjb2xvdXIuR3JlZW4oKSwgY29sb3VyLkJsdWUoKQorK0BAIC0xMDY1LDcgKzEwNjUsNyBAQCBk ZWYgUmVzZXRTaXplKHNlbGYpOgorKyAgICAgICAgICAgICB5U2l6ZSArPSB5ZXh0ZW50CisrIAor KyAgICAgICAgIGlmIHNlbGYuX3Nob3dSZWZsZWN0aW9uczoKKystICAgICAgICAgICAgeVNpemUg Kz0gc2VsZi5fYnV0dG9uU2l6ZS8yCisrKyAgICAgICAgICAgIHlTaXplICs9IHNlbGYuX2J1dHRv blNpemUvLzIKKysgICAgICAgICBpZiBzZWxmLl9jZW50ZXJab29tOgorKyAgICAgICAgICAgICB5 U2l6ZSArPSBzZWxmLl9idXR0b25TaXplCisrIAorK0BAIC0xMjQwLDcgKzEyNDAsNyBAQCBkZWYg RHJhd0xhYmVscyhzZWxmLCBkYyk6CisrICAgICAgICAgICAgIHRleHRXaWR0aCwgdGV4dEhlaWdo dCA9IGRjLkdldFRleHRFeHRlbnQobGFiZWwpCisrICAgICAgICAgICAgIGJ1dHRvblBvcyA9IGJ1 dHRvbi5HZXRQb3NpdGlvbigpCisrICAgICAgICAgICAgIGJ1dHRvblNpemUgPSBidXR0b24uR2V0 U2l6ZSgpCisrLSAgICAgICAgICAgIHhwb3MgPSBidXR0b25Qb3MueCArIChidXR0b25TaXplLndp ZHRoIC0gdGV4dFdpZHRoKS8yCisrKyAgICAgICAgICAgIHhwb3MgPSBidXR0b25Qb3MueCArIChi dXR0b25TaXplLndpZHRoIC0gdGV4dFdpZHRoKS8vMgorKyAgICAgICAgICAgICB5cG9zID0gYnV0 dG9uUG9zLnkgLSB0ZXh0SGVpZ2h0IC0gMgorKyAKKysgICAgICAgICAgICAgZGMuRHJhd1JlY3Rh bmdsZSh4cG9zLTIsIHlwb3MtMSwgdGV4dFdpZHRoKzQsIHRleHRIZWlnaHQrMikKKytkaWZmIC0t Z2l0IGEvd3gvbGliL2FuYWxvZ2Nsb2NrL2FuYWxvZ2Nsb2NrLnB5IGIvd3gvbGliL2FuYWxvZ2Ns b2NrL2FuYWxvZ2Nsb2NrLnB5CisraW5kZXggN2M0YjE4OTc5Li4xZWUxZDY3NDIgMTAwNjQ0Cisr LS0tIGEvd3gvbGliL2FuYWxvZ2Nsb2NrL2FuYWxvZ2Nsb2NrLnB5CisrKysrIGIvd3gvbGliL2Fu YWxvZ2Nsb2NrL2FuYWxvZ2Nsb2NrLnB5CisrQEAgLTE3Myw3ICsxNzMsNyBAQCBkZWYgX3JlY2Fs Y0Nvb3JkcyhzZWxmLCBzaXplKToKKysgICAgICAgICBzY2FsZSA9IG1pbihbZmxvYXQoc2l6ZS53 aWR0aCkgLyBzZWxmLmJhc2VzaXplLndpZHRoLAorKyAgICAgICAgICAgICAgICAgICAgICBmbG9h dChzaXplLmhlaWdodCkgLyBzZWxmLmJhc2VzaXplLmhlaWdodF0pCisrIAorKy0gICAgICAgIGNl bnRyZSA9IHd4LlBvaW50KHNpemUud2lkdGggLyAyLiwgc2l6ZS5oZWlnaHQgLyAyLikKKysrICAg ICAgICBjZW50cmUgPSB3eC5Qb2ludChzaXplLndpZHRoIC8vIDIsIHNpemUuaGVpZ2h0IC8vIDIp CisrIAorKyAgICAgICAgIHNlbGYuQm94LlJlY2FsY0Nvb3JkcyhzaXplLCBjZW50cmUsIHNjYWxl KQorKyAgICAgICAgIHNlbGYuSGFuZHMuUmVjYWxjQ29vcmRzKHNpemUsIGNlbnRyZSwgc2NhbGUp CisrZGlmZiAtLWdpdCBhL3d4L2xpYi9hbmFsb2djbG9jay9oZWxwZXJzLnB5IGIvd3gvbGliL2Fu YWxvZ2Nsb2NrL2hlbHBlcnMucHkKKytpbmRleCA4OGQxOThiZWUuLjk2NzRkZTkxMiAxMDA2NDQK KystLS0gYS93eC9saWIvYW5hbG9nY2xvY2svaGVscGVycy5weQorKysrKyBiL3d4L2xpYi9hbmFs b2djbG9jay9oZWxwZXJzLnB5CisrQEAgLTM3LDcgKzM3LDcgQEAgZGVmIF9faW5pdF9fKHNlbGYs IGlkeD0wLCBwb3M9Tm9uZSwgc2l6ZT1Ob25lLCBvZmZzZXQ9MCwgY2xvY2tzaXplPU5vbmUsCisr IAorKyAKKysgICAgIGRlZiBfcG9sMnJlY3Qoc2VsZiwgbSwgdCk6CisrLSAgICAgICAgcmV0dXJu IG0gKiBtYXRoLmNvcyhtYXRoLnJhZGlhbnModCkpLCBtICogbWF0aC5zaW4obWF0aC5yYWRpYW5z KHQpKQorKysgICAgICAgIHJldHVybiBpbnQobSAqIG1hdGguY29zKG1hdGgucmFkaWFucyh0KSkp LCBpbnQobSAqIG1hdGguc2luKG1hdGgucmFkaWFucyh0KSkpCisrIAorKyAKKysgICAgIGRlZiBf cmVjdDJwb2woc2VsZiwgeCwgeSk6CisrQEAgLTE3NCw3ICsxNzQsNyBAQCBkZWYgX19pbml0X18o c2VsZiwgKiprd2FyZ3MpOgorKyAKKysgICAgIGRlZiBEcmF3KHNlbGYsIGRjKToKKysgICAgICAg ICBzZWxmLmR5ZXIuU2VsZWN0KGRjKQorKy0gICAgICAgIGRjLkRyYXdDaXJjbGUoc2VsZi5wb3Mu eCwgc2VsZi5wb3MueSwgc2VsZi5yYWRpdXMpCisrKyAgICAgICAgZGMuRHJhd0NpcmNsZShzZWxm LnBvcy54LCBzZWxmLnBvcy55LCBpbnQoc2VsZi5yYWRpdXMpKQorKyAKKysgCisrICAgICBkZWYg UmVjYWxjQ29vcmRzKHNlbGYsIGNsb2Nrc2l6ZSwgY2VudHJlLCBzY2FsZSk6CisrQEAgLTIwNSw3 ICsyMDUsNyBAQCBkZWYgRHJhdyhzZWxmLCBkYywgZW5kLCBvZmZzZXQ9MCk6CisrICAgICAgICAg ICAgIG0sIHQgPSBzZWxmLl9yZWN0MnBvbCh4LCB5KQorKyAgICAgICAgICAgICBwb2x5Z29uW2ld ID0gc2VsZi5fcG9sMnJlY3QobSwgdCAtIGFuZ2xlKQorKyAKKystICAgICAgICBkYy5EcmF3UG9s eWdvbihwb2x5Z29uLCBjZW50cmUueCArIG9mZnNldCwgY2VudHJlLnkgKyBvZmZzZXQpCisrKyAg ICAgICAgZGMuRHJhd1BvbHlnb24ocG9seWdvbiwgaW50KGNlbnRyZS54ICsgb2Zmc2V0KSwgaW50 KGNlbnRyZS55ICsgb2Zmc2V0KSkKKysgCisrIAorKyAgICAgZGVmIFJlY2FsY0Nvb3JkcyhzZWxm LCBjbG9ja3NpemUsIGNlbnRyZSwgc2NhbGUpOgorK0BAIC0yMjYsNyArMjI2LDcgQEAgZGVmIERy YXcoc2VsZiwgZGMsIG9mZnNldD0wKToKKysgICAgICAgICB4ID0gc2VsZi5wb3MueCAtIHdpZHRo IC8gMi4KKysgICAgICAgICB5ID0gc2VsZi5wb3MueSAtIGhlaWdodCAvIDIuCisrIAorKy0gICAg ICAgIGRjLkRyYXdSZWN0YW5nbGUoeCArIG9mZnNldCwgeSArIG9mZnNldCwgd2lkdGgsIGhlaWdo dCkKKysrICAgICAgICBkYy5EcmF3UmVjdGFuZ2xlKGludCh4ICsgb2Zmc2V0KSwgaW50KHkgKyBv ZmZzZXQpLCBpbnQod2lkdGgpLCBpbnQoaGVpZ2h0KSkKKysgCisrICMtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisr IAorK0BAIC0yNDIsNyArMjQyLDcgQEAgZGVmIERyYXcoc2VsZiwgZGMsIG9mZnNldD0wKToKKysg ICAgICAgICB4ID0gc2VsZi5wb3MueAorKyAgICAgICAgIHkgPSBzZWxmLnBvcy55CisrIAorKy0g ICAgICAgIGRjLkRyYXdDaXJjbGUoeCArIG9mZnNldCwgeSArIG9mZnNldCwgcmFkaXVzKQorKysg ICAgICAgIGRjLkRyYXdDaXJjbGUoaW50KHggKyBvZmZzZXQpLCBpbnQoeSArIG9mZnNldCksIGlu dChyYWRpdXMpKQorKyAKKysgIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysgCisrQEAgLTI3Myw3ICsyNzMsNyBA QCBkZWYgRHJhd1N0cmFpZ2h0KHNlbGYsIGRjLCBvZmZzZXQ9MCk6CisrICAgICAgICAgeCA9IHNl bGYucG9zLnggLSB3aWR0aCAvIDIuCisrICAgICAgICAgeSA9IHNlbGYucG9zLnkgLSBoZWlnaHQg LyAyLgorKyAKKystICAgICAgICBkYy5EcmF3UG9seWdvbihwb2x5Z29uLCB4ICsgb2Zmc2V0LCB5 ICsgb2Zmc2V0KQorKysgICAgICAgIGRjLkRyYXdQb2x5Z29uKHBvbHlnb24sIGludCh4ICsgb2Zm c2V0KSwgaW50KHkgKyBvZmZzZXQpKQorKyAKKysgCisrICAgICBkZWYgRHJhd1JvdGF0ZWQoc2Vs ZiwgZGMsIG9mZnNldD0wKToKKytAQCAtMjkwLDcgKzI5MCw3IEBAIGRlZiBEcmF3Um90YXRlZChz ZWxmLCBkYywgb2Zmc2V0PTApOgorKyAgICAgICAgIHggPSBzZWxmLnBvcy54IC0gbWF0aC5jb3Mo cikgKiB3aWR0aCAvIDIuIC0gbWF0aC5zaW4ocikgKiBoZWlnaHQgLyAyLgorKyAgICAgICAgIHkg PSBzZWxmLnBvcy55IC0gbWF0aC5jb3MocikgKiBoZWlnaHQgLyAyLiArIG1hdGguc2luKHIpICog d2lkdGggLyAyLgorKyAKKystICAgICAgICBkYy5EcmF3UG9seWdvbihwb2x5Z29uLCB4ICsgb2Zm c2V0LCB5ICsgb2Zmc2V0KQorKysgICAgICAgIGRjLkRyYXdQb2x5Z29uKHBvbHlnb24sIGludCh4 ICsgb2Zmc2V0KSwgaW50KHkgKyBvZmZzZXQpKQorKyAKKysgIy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysgCisr QEAgLTMwOSw3ICszMDksNyBAQCBkZWYgRHJhd1N0cmFpZ2h0KHNlbGYsIGRjLCBvZmZzZXQ9MCk6 CisrICAgICAgICAgeCA9IHNlbGYucG9zLnggLSB3aWR0aCAvIDIuCisrICAgICAgICAgeSA9IHNl bGYucG9zLnkgLSBoZWlnaHQgLyAyLgorKyAKKystICAgICAgICBkYy5EcmF3VGV4dChzZWxmLnRl eHQsIHggKyBvZmZzZXQsIHkgKyBvZmZzZXQpCisrKyAgICAgICAgZGMuRHJhd1RleHQoc2VsZi50 ZXh0LCBpbnQoeCArIG9mZnNldCksIGludCh5ICsgb2Zmc2V0KSkKKysgCisrIAorKyAgICAgZGVm IERyYXdSb3RhdGVkKHNlbGYsIGRjLCBvZmZzZXQ9MCk6CisrQEAgLTMyMSw3ICszMjEsNyBAQCBk ZWYgRHJhd1JvdGF0ZWQoc2VsZiwgZGMsIG9mZnNldD0wKToKKysgICAgICAgICB4ID0gc2VsZi5w b3MueCAtIG1hdGguY29zKHIpICogd2lkdGggLyAyLiAtIG1hdGguc2luKHIpICogaGVpZ2h0IC8g Mi4KKysgICAgICAgICB5ID0gc2VsZi5wb3MueSAtIG1hdGguY29zKHIpICogaGVpZ2h0IC8gMi4g KyBtYXRoLnNpbihyKSAqIHdpZHRoIC8gMi4KKysgCisrLSAgICAgICAgZGMuRHJhd1JvdGF0ZWRU ZXh0KHNlbGYudGV4dCwgeCArIG9mZnNldCwgeSArIG9mZnNldCwgYW5nbGUpCisrKyAgICAgICAg ZGMuRHJhd1JvdGF0ZWRUZXh0KHNlbGYudGV4dCwgaW50KHggKyBvZmZzZXQpLCBpbnQoeSArIG9m ZnNldCksIGludChhbmdsZSkpCisrIAorKyAKKysgIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKytAQCAtNjU2LDcg KzY1Niw3IEBAIGRlZiBSZWNhbGNDb29yZHMoc2VsZiwgY2xvY2tzaXplLCBjZW50cmUsIHNjYWxl KToKKysgCisrICAgICAgICAgIyBUcnkgdG8gZmluZCBhICdnb29kJyBtYXggc2l6ZSBmb3IgdGV4 dC1iYXNlZCB0aWNrcy4KKysgICAgICAgICBpZiBhX3RpY2sudGV4dCBpcyBub3QgTm9uZToKKyst ICAgICAgICAgICAgc2VsZi5mb250LlNldFBvaW50U2l6ZShzaXplKQorKysgICAgICAgICAgICBz ZWxmLmZvbnQuU2V0UG9pbnRTaXplKGludChzaXplKSkKKysgICAgICAgICAgICAgZGMgPSB3eC5N ZW1vcnlEQygpCisrICAgICAgICAgICAgIGRjLlNlbGVjdE9iamVjdCh3eC5CaXRtYXAoKmNsb2Nr c2l6ZS5HZXQoKSkpCisrICAgICAgICAgICAgIGRjLlNldEZvbnQoc2VsZi5mb250KQorK0BAIC02 ODYsNyArNjg2LDcgQEAgZGVmIFJlY2FsY0Nvb3JkcyhzZWxmLCBjbG9ja3NpemUsIGNlbnRyZSwg c2NhbGUpOgorKyAgICAgICAgICAgICB4ID0gY2VudHJlLnggKyByYWRpdXMgKiBtYXRoLnNpbihh bmdsZSkKKysgICAgICAgICAgICAgeSA9IGNlbnRyZS55ICsgcmFkaXVzICogbWF0aC5jb3MoYW5n bGUpCisrIAorKy0gICAgICAgICAgICB0aWNrLlNldFBvc2l0aW9uKHd4LlBvaW50KHgsIHkpKQor KysgICAgICAgICAgICB0aWNrLlNldFBvc2l0aW9uKHd4LlBvaW50KGludCh4KSwgaW50KHkpKSkK KysgCisrIAorKyAgICAgZGVmIEdldFNpemUoc2VsZik6CisrZGlmZiAtLWdpdCBhL3d4L2xpYi9h bmFsb2djbG9jay9zZXR1cC5weSBiL3d4L2xpYi9hbmFsb2djbG9jay9zZXR1cC5weQorK2luZGV4 IGE4M2M4NjM5ZC4uYTdkZmZiOTAxIDEwMDY0NAorKy0tLSBhL3d4L2xpYi9hbmFsb2djbG9jay9z ZXR1cC5weQorKysrKyBiL3d4L2xpYi9hbmFsb2djbG9jay9zZXR1cC5weQorK0BAIC0xNzksNyAr MTc5LDcgQEAgZGVmIF9faW5pdF9fKHNlbGYsIHBhcmVudCwgdGl0bGUsIGdyb3VwPSJIYW5kcyIp OgorKyAgICAgICAgIHAuU2V0Q3VzdG9tQ29sb3VycyhzZWxmLmN1c3RvbWNvbG91cnMpCisrICAg ICAgICAgc2l6ZXIuQWRkKHAsIHBvcz0oMCwgMSksIGZsYWc9d3guQUxJR05fQ0VOVFJFX1ZFUlRJ Q0FMKQorKyAKKystICAgICAgICBwID0gc2VsZi5idyA9IHd4LlNwaW5DdHJsKHNlbGYsIHNpemU9 KDc1LCAyMSksCisrKyAgICAgICAgcCA9IHNlbGYuYncgPSB3eC5TcGluQ3RybChzZWxmLAorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWluPTAsIG1heD0xMDAsIHZhbHVlPSI3 NSIpCisrICAgICAgICAgc2l6ZXIuQWRkKHAsIHBvcz0oMCwgMiksIHNwYW49KDEsIDIpLCBmbGFn PXd4LkFMSUdOX0NFTlRSRV9WRVJUSUNBTCkKKysgCisrQEAgLTE5Myw3ICsxOTMsNyBAQCBkZWYg X19pbml0X18oc2VsZiwgcGFyZW50LCB0aXRsZSwgZ3JvdXA9IkhhbmRzIik6CisrICAgICAgICAg cCA9IHNlbGYubHMgPSB3eC5TdGF0aWNUZXh0KHNlbGYsIGxhYmVsPSJTaXplOiIpCisrICAgICAg ICAgc2l6ZXIuQWRkKHAsIHBvcz0oMiwgMCksIGZsYWc9d3guQUxJR05fQ0VOVFJFX1ZFUlRJQ0FM KQorKyAKKystICAgICAgICBwID0gc2VsZi5zeiA9IHd4LlNwaW5DdHJsKHNlbGYsIHNpemU9KDc1 LCAyMSksCisrKyAgICAgICAgcCA9IHNlbGYuc3ogPSB3eC5TcGluQ3RybChzZWxmLAorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWluPTAsIG1heD0xMDAsIHZhbHVlPSI3NSIp CisrICAgICAgICAgc2l6ZXIuQWRkKHAsIHBvcz0oMiwgMSksIHNwYW49KDEsIDMpLCBmbGFnPXd4 LkFMSUdOX0NFTlRSRV9WRVJUSUNBTCkKKysgCisrQEAgLTIxMiw3ICsyMTIsNyBAQCBkZWYgX19p bml0X18oc2VsZiwgcGFyZW50LCB0aXRsZSwgZ3JvdXA9IlRpY2tzIik6CisrICAgICAgICAgcCA9 IHd4LlN0YXRpY1RleHQoc2VsZiwgbGFiZWw9Ik9mZnNldDoiKQorKyAgICAgICAgIHNpemVyLkFk ZChwLCBwb3M9KDMsIDApLCBmbGFnPXd4LkFMSUdOX0NFTlRSRV9WRVJUSUNBTCkKKysgCisrLSAg ICAgICAgcCA9IHNlbGYub2YgPSB3eC5TcGluQ3RybChzZWxmLCBzaXplPSg3NSwgMjEpLAorKysg ICAgICAgIHAgPSBzZWxmLm9mID0gd3guU3BpbkN0cmwoc2VsZiwKKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIG1pbj0wLCBtYXg9MTAwLCB2YWx1ZT0iNzUiKQorKyAgICAgICAg IHNpemVyLkFkZChwLCBwb3M9KDMsIDEpLCBzcGFuPSgxLCAzKSwgZmxhZz13eC5BTElHTl9DRU5U UkVfVkVSVElDQUwpCisrIAorK2RpZmYgLS1naXQgYS93eC9saWIvYnV0dG9ucy5weSBiL3d4L2xp Yi9idXR0b25zLnB5CisraW5kZXggNDZkMWI4NzQ3Li5mMDFhNTRkNDEgMTAwNjQ0CisrLS0tIGEv d3gvbGliL2J1dHRvbnMucHkKKysrKysgYi93eC9saWIvYnV0dG9ucy5weQorK0BAIC00NTMsNyAr NDUzLDcgQEAgZGVmIERyYXdMYWJlbChzZWxmLCBkYywgd2lkdGgsIGhlaWdodCwgZHg9MCwgZHk9 MCk6CisrICAgICAgICAgdHcsIHRoID0gZGMuR2V0VGV4dEV4dGVudChsYWJlbCkKKysgICAgICAg ICBpZiBub3Qgc2VsZi51cDoKKysgICAgICAgICAgICAgZHggPSBkeSA9IHNlbGYubGFiZWxEZWx0 YQorKy0gICAgICAgIGRjLkRyYXdUZXh0KGxhYmVsLCAod2lkdGgtdHcpLzIrZHgsIChoZWlnaHQt dGgpLzIrZHkpCisrKyAgICAgICAgZGMuRHJhd1RleHQobGFiZWwsICh3aWR0aC10dykvLzIrZHgs IChoZWlnaHQtdGgpLy8yK2R5KQorKyAKKysgCisrICAgICBkZWYgRHJhd0ZvY3VzSW5kaWNhdG9y KHNlbGYsIGRjLCB3LCBoKToKKytAQCAtODQ0LDcgKzg0NCw3IEBAIGRlZiBEcmF3TGFiZWwoc2Vs ZiwgZGMsIHdpZHRoLCBoZWlnaHQsIGR4PTAsIGR5PTApOgorKyAgICAgICAgIGlmIG5vdCBzZWxm LnVwOgorKyAgICAgICAgICAgICBkeCA9IGR5ID0gc2VsZi5sYWJlbERlbHRhCisrICAgICAgICAg aGFzTWFzayA9IGJtcC5HZXRNYXNrKCkgIT0gTm9uZQorKy0gICAgICAgIGRjLkRyYXdCaXRtYXAo Ym1wLCAod2lkdGgtYncpLzIrZHgsIChoZWlnaHQtYmgpLzIrZHksIGhhc01hc2spCisrKyAgICAg ICAgZGMuRHJhd0JpdG1hcChibXAsICh3aWR0aC1idykvLzIrZHgsIChoZWlnaHQtYmgpLy8yK2R5 LCBoYXNNYXNrKQorKyAKKysgCisrICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrQEAgLTkyNiwxMiArOTI2LDEy IEBAIGRlZiBEcmF3TGFiZWwoc2VsZiwgZGMsIHdpZHRoLCBoZWlnaHQsIGR4PTAsIGR5PTApOgor KyAgICAgICAgIGlmIG5vdCBzZWxmLnVwOgorKyAgICAgICAgICAgICBkeCA9IGR5ID0gc2VsZi5s YWJlbERlbHRhCisrIAorKy0gICAgICAgIHBvc194ID0gKHdpZHRoLWJ3LXR3KS8yK2R4ICAgICAg IyBhZGp1c3QgZm9yIGJpdG1hcCBhbmQgdGV4dCB0byBjZW50cmUKKysrICAgICAgICBwb3NfeCA9 ICh3aWR0aC1idy10dykvLzIrZHggICAgICAjIGFkanVzdCBmb3IgYml0bWFwIGFuZCB0ZXh0IHRv IGNlbnRyZQorKyAgICAgICAgIGlmIGJtcCBpcyBub3QgTm9uZToKKystICAgICAgICAgICAgZGMu RHJhd0JpdG1hcChibXAsIHBvc194LCAoaGVpZ2h0LWJoKS8yK2R5LCBoYXNNYXNrKSAjIGRyYXcg Yml0bWFwIGlmIGF2YWlsYWJsZQorKysgICAgICAgICAgICBkYy5EcmF3Qml0bWFwKGJtcCwgcG9z X3gsIChoZWlnaHQtYmgpLy8yK2R5LCBoYXNNYXNrKSAjIGRyYXcgYml0bWFwIGlmIGF2YWlsYWJs ZQorKyAgICAgICAgICAgICBwb3NfeCA9IHBvc194ICsgMiAgICMgZXh0cmEgc3BhY2luZyBmcm9t IGJpdG1hcAorKyAKKystICAgICAgICBkYy5EcmF3VGV4dChsYWJlbCwgcG9zX3ggKyBkeCtidywg KGhlaWdodC10aCkvMitkeSkgICAgICAjIGRyYXcgdGhlIHRleHQKKysrICAgICAgICBkYy5EcmF3 VGV4dChsYWJlbCwgcG9zX3ggKyBkeCtidywgKGhlaWdodC10aCkvLzIrZHkpICAgICAgIyBkcmF3 IHRoZSB0ZXh0CisrIAorKyAKKysgIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKytkaWZmIC0tZ2l0IGEvd3gvbGli L2NvbG91cmNob29zZXIvcHljb2xvdXJjaG9vc2VyLnB5IGIvd3gvbGliL2NvbG91cmNob29zZXIv cHljb2xvdXJjaG9vc2VyLnB5CisraW5kZXggNjFkYmMwMmQyLi4xMjQzNzY0ODMgMTAwNjQ0Cisr LS0tIGEvd3gvbGliL2NvbG91cmNob29zZXIvcHljb2xvdXJjaG9vc2VyLnB5CisrKysrIGIvd3gv bGliL2NvbG91cmNob29zZXIvcHljb2xvdXJjaG9vc2VyLnB5CisrQEAgLTE4OCw3ICsxODgsNyBA QCBkZWYgX19pbml0X18oc2VsZiwgcGFyZW50LCBpZCk6CisrICAgICAgICAgc2VsZi5jb2xvdXJf c2xpZGVyLkJpbmQod3guRVZUX01PVElPTiwgc2VsZi5vblNsaWRlck1vdGlvbikKKysgICAgICAg ICBzZWxmLnNsaWRlciA9IHd4LlNsaWRlcigKKysgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs Ziwgc2VsZi5pZFNDUk9MTCwgODYsIDAsIHNlbGYuY29sb3VyX3NsaWRlci5IRUlHSFQgLSAxLAor Ky0gICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT13eC5TTF9WRVJUSUNBTCwgc2l6ZT0oMTUs IHNlbGYuY29sb3VyX3NsaWRlci5IRUlHSFQpCisrKyAgICAgICAgICAgICAgICAgICAgICAgIHN0 eWxlPXd4LlNMX1ZFUlRJQ0FMLCBzaXplPSgtMSwgc2VsZi5jb2xvdXJfc2xpZGVyLkhFSUdIVCkK KysgICAgICAgICAgICAgICAgICAgICAgICAgKQorKyAKKysgICAgICAgICBzZWxmLkJpbmQod3gu RVZUX0NPTU1BTkRfU0NST0xMLCBzZWxmLm9uU2Nyb2xsLCBzZWxmLnNsaWRlcikKKytAQCAtMzM4 LDcgKzMzOCw3IEBAIGRlZiBzZXRTbGlkZXJUb1Yoc2VsZiwgdik6CisrICAgICAgICAgbWluID0g c2VsZi5zbGlkZXIuR2V0TWluKCkKKysgICAgICAgICBtYXggPSBzZWxmLnNsaWRlci5HZXRNYXgo KQorKyAgICAgICAgIHZhbCA9ICgxIC0gdikgKiBtYXgKKystICAgICAgICBzZWxmLnNsaWRlci5T ZXRWYWx1ZSh2YWwpCisrKyAgICAgICAgc2VsZi5zbGlkZXIuU2V0VmFsdWUoaW50KHZhbCkpCisr IAorKyAgICAgZGVmIGdldFZGcm9tU2xpZGVyKHNlbGYpOgorKyAgICAgICAgICIiIkdldCB0aGUg Y3VycmVudCB2YWx1ZSBvZiAiViIgZnJvbSB0aGUgdiBzbGlkZXIuIiIiCisrZGlmZiAtLWdpdCBh L3d4L2xpYi9jb2xvdXJjaG9vc2VyL3B5cGFsZXR0ZS5weSBiL3d4L2xpYi9jb2xvdXJjaG9vc2Vy L3B5cGFsZXR0ZS5weQorK2luZGV4IGZmMWZiODQwYy4uNzFiOWZjMmRmIDEwMDY0NAorKy0tLSBh L3d4L2xpYi9jb2xvdXJjaG9vc2VyL3B5cGFsZXR0ZS5weQorKysrKyBiL3d4L2xpYi9jb2xvdXJj aG9vc2VyL3B5cGFsZXR0ZS5weQorK0BAIC0xNjUsNyArMTY1LDcgQEAgZGVmIERyYXdCdWZmZXIo c2VsZik6CisrICAgICAgICAgICAgIGNvbG91ciA9IHd4LkNvbG91cigwLCAwLCAwKQorKyAgICAg ICAgICAgICBzZWxmLmJ1ZmZlci5TZXRQZW4od3guUGVuKGNvbG91ciwgMSwgd3guUEVOU1RZTEVf U09MSUQpKQorKyAgICAgICAgICAgICBzZWxmLmJ1ZmZlci5TZXRCcnVzaCh3eC5CcnVzaChjb2xv dXIsIHd4LkJSVVNIU1RZTEVfVFJBTlNQQVJFTlQpKQorKy0gICAgICAgICAgICBzZWxmLmJ1ZmZl ci5EcmF3Q2lyY2xlKHNlbGYucG9pbnRbMF0sIHNlbGYucG9pbnRbMV0sIDMpCisrKyAgICAgICAg ICAgIHNlbGYuYnVmZmVyLkRyYXdDaXJjbGUoaW50KHNlbGYucG9pbnRbMF0pLCBpbnQoc2VsZi5w b2ludFsxXSksIDMpCisrIAorKyAgICAgZGVmIEhpZ2hsaWdodFBvaW50KHNlbGYsIHgsIHkpOgor KyAgICAgICAgICIiIkhpZ2hsaWdodHMgYW4gYXJlYSBvZiB0aGUgcGFsZXR0ZSB3aXRoIGEgbGl0 dGxlIGNpcmNsZSBhcm91bmQKKytkaWZmIC0tZ2l0IGEvd3gvbGliL2Zsb2F0Y2FudmFzL0ZDT2Jq ZWN0cy5weSBiL3d4L2xpYi9mbG9hdGNhbnZhcy9GQ09iamVjdHMucHkKKytpbmRleCA1OGJlY2Qz OGMuLmNkZjhjYzUzZSAxMDA2NDQKKystLS0gYS93eC9saWIvZmxvYXRjYW52YXMvRkNPYmplY3Rz LnB5CisrKysrIGIvd3gvbGliL2Zsb2F0Y2FudmFzL0ZDT2JqZWN0cy5weQorK0BAIC0yOTYsNyAr Mjk2LDcgQEAgZGVmIFNldFBlbihzZWxmLCBMaW5lQ29sb3IsIExpbmVTdHlsZSwgTGluZVdpZHRo KToKKysgICAgICAgICBlbHNlOgorKyAgICAgICAgICAgICBzZWxmLlBlbiA9IHNlbGYuUGVuTGlz dC5zZXRkZWZhdWx0KAorKyAgICAgICAgICAgICAgICAgKExpbmVDb2xvciwgTGluZVN0eWxlLCBM aW5lV2lkdGgpLAorKy0gICAgICAgICAgICAgICAgd3guUGVuKExpbmVDb2xvciwgTGluZVdpZHRo LCBzZWxmLkxpbmVTdHlsZUxpc3RbTGluZVN0eWxlXSkpCisrKyAgICAgICAgICAgICAgICB3eC5Q ZW4oTGluZUNvbG9yLCBpbnQoTGluZVdpZHRoKSwgc2VsZi5MaW5lU3R5bGVMaXN0W0xpbmVTdHls ZV0pKQorKyAKKysgICAgIGRlZiBTZXRIaXRCcnVzaChzZWxmLCBIaXRDb2xvcik6CisrICAgICAg ICAgIiIiCisrQEAgLTEyMDIsMTQgKzEyMDIsMTQgQEAgZGVmIF9EcmF3KHNlbGYsIGRjICwgV29y bGRUb1BpeGVsLCBTY2FsZVdvcmxkVG9QaXhlbCwgSFRkYz1Ob25lKToKKysgICAgICAgICAgICAg eCA9IHhjIC0gU2l6ZS8yLjAKKysgICAgICAgICAgICAgeSA9IHljIC0gU2l6ZS8yLjAKKysgICAg ICAgICAgICAgZGMuU2V0QnJ1c2goc2VsZi5CcnVzaCkKKystICAgICAgICAgICAgZGMuRHJhd1Jl Y3RhbmdsZSh4LCB5LCBTaXplLCBTaXplKQorKysgICAgICAgICAgICBkYy5EcmF3UmVjdGFuZ2xl KGludCh4KSwgaW50KHkpLCBTaXplLCBTaXplKQorKyAgICAgICAgIGlmIEhUZGMgYW5kIHNlbGYu SGl0QWJsZToKKysgICAgICAgICAgICAgSFRkYy5TZXRQZW4oc2VsZi5IaXRQZW4pCisrICAgICAg ICAgICAgIGlmIHNlbGYuU2l6ZSA8PSAxOgorKyAgICAgICAgICAgICAgICAgSFRkYy5EcmF3UG9p bnQoeGMsIHhjKQorKyAgICAgICAgICAgICBlbHNlOgorKyAgICAgICAgICAgICAgICAgSFRkYy5T ZXRCcnVzaChzZWxmLkhpdEJydXNoKQorKy0gICAgICAgICAgICAgICAgSFRkYy5EcmF3UmVjdGFu Z2xlKHgsIHksIFNpemUsIFNpemUpCisrKyAgICAgICAgICAgICAgICBIVGRjLkRyYXdSZWN0YW5n bGUoaW50KHgpLCBpbnQoeSksIFNpemUsIFNpemUpCisrIAorKyBjbGFzcyBSZWN0RWxsaXBzZShY WU9iamVjdE1peGluLCBMaW5lQW5kRmlsbE1peGluLCBEcmF3T2JqZWN0KToKKysgICAgICIiIkEg UmVjdEVsbGlwc2UgZHJhdyBvYmplY3QuIiIiCisrQEAgLTIxNjEsNyArMjE2MSw3IEBAIGRlZiBf RHJhdyhzZWxmLCBkYyAsIFdvcmxkVG9QaXhlbCwgU2NhbGVXb3JsZFRvUGl4ZWwsIEhUZGM9Tm9u ZSk6CisrICAgICAgICAgVyA9IEggKiAoc2VsZi5ibXBXaWR0aCAvIHNlbGYuYm1wSGVpZ2h0KQor KyAgICAgICAgIGlmIChzZWxmLlNjYWxlZEJpdG1hcCBpcyBOb25lKSBvciAoSCAhPSBzZWxmLlNj YWxlZEhlaWdodCkgOgorKyAgICAgICAgICAgICBzZWxmLlNjYWxlZEhlaWdodCA9IEgKKystICAg ICAgICAgICAgSW1nID0gc2VsZi5JbWFnZS5TY2FsZShXLCBIKQorKysgICAgICAgICAgICBJbWcg PSBzZWxmLkltYWdlLlNjYWxlKGludChXKSwgaW50KEgpKQorKyAgICAgICAgICAgICBzZWxmLlNj YWxlZEJpdG1hcCA9IHd4LkJpdG1hcChJbWcpCisrIAorKyAgICAgICAgIFhZID0gc2VsZi5TaGlm dEZ1bihYWVswXSwgWFlbMV0sIFcsIEgpCisrZGlmZiAtLWdpdCBhL3d4L2xpYi9naXptb3MvbGVk Y3RybC5weSBiL3d4L2xpYi9naXptb3MvbGVkY3RybC5weQorK2luZGV4IGYxODVkNTEwNS4uN2Y0 ZDNmY2Y5IDEwMDY0NAorKy0tLSBhL3d4L2xpYi9naXptb3MvbGVkY3RybC5weQorKysrKyBiL3d4 L2xpYi9naXptb3MvbGVkY3RybC5weQorK0BAIC0yOTMsNyArMjkzLDcgQEAgZGVmIF9kcmF3RGln aXQoc2VsZiwgZGMsIGRpZ2l0LCBjb2x1bW4pOgorKyAKKysgICAgICAgICBpZiBkaWdpdCAmIGMu Q09MT046CisrICAgICAgICAgICAgIGRjLlNldEJydXNoKHd4LkJydXNoKGxpbmVDb2xvcikpCisr LSAgICAgICAgICAgIGNlbnRlclggPSBYUG9zICsgKHNlbGYubV9saW5lTGVuZ3RoICsgc2VsZi5t X2RpZ2l0TWFyZ2luKSAvIDIKKystICAgICAgICAgICAgcmFkaXVzID0gc2VsZi5tX2xpbmVXaWR0 aCAvIDIKKystICAgICAgICAgICAgZGMuRHJhd0NpcmNsZShjZW50ZXJYLCAoc2VsZi5tX2xpbmVM ZW5ndGggKyAoc2VsZi5tX2xpbmVNYXJnaW4gKiAzKSkgLyAyLCByYWRpdXMpCisrLSAgICAgICAg ICAgIGRjLkRyYXdDaXJjbGUoY2VudGVyWCwgKHNlbGYubV9saW5lTGVuZ3RoICogMiArIChzZWxm Lm1fbGluZU1hcmdpbiAqIDUpKSAqIDMgLyA0LCByYWRpdXMpCisrKyAgICAgICAgICAgIGNlbnRl clggPSBYUG9zICsgKHNlbGYubV9saW5lTGVuZ3RoICsgc2VsZi5tX2RpZ2l0TWFyZ2luKSAvLyAy CisrKyAgICAgICAgICAgIHJhZGl1cyA9IHNlbGYubV9saW5lV2lkdGggLy8gMgorKysgICAgICAg ICAgICBkYy5EcmF3Q2lyY2xlKGNlbnRlclgsIChzZWxmLm1fbGluZUxlbmd0aCArIChzZWxmLm1f bGluZU1hcmdpbiAqIDMpKSAvLyAyLCByYWRpdXMpCisrKyAgICAgICAgICAgIGRjLkRyYXdDaXJj bGUoY2VudGVyWCwgKHNlbGYubV9saW5lTGVuZ3RoICogMiArIChzZWxmLm1fbGluZU1hcmdpbiAq IDUpKSAqIDMgLy8gNCwgcmFkaXVzKQorK2RpZmYgLS1naXQgYS93eC9saWIvaW1hZ2Vicm93c2Vy LnB5IGIvd3gvbGliL2ltYWdlYnJvd3Nlci5weQorK2luZGV4IDc5NWU5MGRjYS4uOGUxNDcyN2U3 IDEwMDY0NAorKy0tLSBhL3d4L2xpYi9pbWFnZWJyb3dzZXIucHkKKysrKysgYi93eC9saWIvaW1h Z2Vicm93c2VyLnB5CisrQEAgLTM0Nyw4ICszNDcsOCBAQCBkZWYgRHJhd0ltYWdlKHNlbGYsIGRj KToKKysgICAgICAgICBvd2lkdGggPSBpbnQoc2NhbGUqaXdpZHRoKQorKyAgICAgICAgIG9oZWln aHQgPSBpbnQoc2NhbGUqaWhlaWdodCkKKysgCisrLSAgICAgICAgZGlmZnggPSAod3dpZHRoIC0g b3dpZHRoKS8yICAgIyBjZW50ZXIgY2FsYworKy0gICAgICAgIGRpZmZ5ID0gKHdoZWlnaHQgLSBv aGVpZ2h0KS8yICAgIyBjZW50ZXIgY2FsYworKysgICAgICAgIGRpZmZ4ID0gKHd3aWR0aCAtIG93 aWR0aCkvLzIgICAjIGNlbnRlciBjYWxjCisrKyAgICAgICAgZGlmZnkgPSAod2hlaWdodCAtIG9o ZWlnaHQpLy8yICAgIyBjZW50ZXIgY2FsYworKyAKKysgICAgICAgICBpZiBub3QgYm1wOgorKyAg ICAgICAgICAgICBpZiBvd2lkdGghPWl3aWR0aCBvciBvaGVpZ2h0IT1paGVpZ2h0OgorK2RpZmYg LS1naXQgYS93eC9saWIvb2dsL2Jhc2ljLnB5IGIvd3gvbGliL29nbC9iYXNpYy5weQorK2luZGV4 IGIwODg1OWFiOS4uMDEwN2YyMWZjIDEwMDY0NAorKy0tLSBhL3d4L2xpYi9vZ2wvYmFzaWMucHkK KysrKysgYi93eC9saWIvb2dsL2Jhc2ljLnB5CisrQEAgLTEwNTEsNyArMTA1MSw3IEBAIGRlZiBP bkVyYXNlQ29udGVudHMoc2VsZiwgZGMpOgorKyAgICAgICAgIGRjLlNldFBlbihzZWxmLkdldEJh Y2tncm91bmRQZW4oKSkKKysgICAgICAgICBkYy5TZXRCcnVzaChzZWxmLkdldEJhY2tncm91bmRC cnVzaCgpKQorKyAKKystICAgICAgICBkYy5EcmF3UmVjdGFuZ2xlKHRvcExlZnRYIC0gcGVuV2lk dGgsIHRvcExlZnRZIC0gcGVuV2lkdGgsIG1heFggKyBwZW5XaWR0aCAqIDIgKyA0LCBtYXhZICsg cGVuV2lkdGggKiAyICsgNCkKKysrICAgICAgICBkYy5EcmF3UmVjdGFuZ2xlKGludCh0b3BMZWZ0 WCAtIHBlbldpZHRoKSwgaW50KHRvcExlZnRZIC0gcGVuV2lkdGgpLCBpbnQobWF4WCArIHBlbldp ZHRoICogMiArIDQpLCBpbnQobWF4WSArIHBlbldpZHRoICogMiArIDQpKQorKyAKKysgICAgIGRl ZiBFcmFzZUxpbmtzKHNlbGYsIGRjLCBhdHRhY2htZW50ID0gLTEsIHJlY3Vyc2UgPSBGYWxzZSk6 CisrICAgICAgICAgIiIiCisrQEAgLTI3NjksOSArMjc2OSw5IEBAIGRlZiBPbkRyYXcoc2VsZiwg ZGMpOgorKyAgICAgICAgICAgICBkYy5TZXRCcnVzaChzZWxmLl9icnVzaCkKKysgCisrICAgICAg ICAgaWYgc2VsZi5fY29ybmVyUmFkaXVzOgorKy0gICAgICAgICAgICBkYy5EcmF3Um91bmRlZFJl Y3RhbmdsZSh4MSwgeTEsIHNlbGYuX3dpZHRoLCBzZWxmLl9oZWlnaHQsIHNlbGYuX2Nvcm5lclJh ZGl1cykKKysrICAgICAgICAgICAgZGMuRHJhd1JvdW5kZWRSZWN0YW5nbGUoaW50KHgxKSwgaW50 KHkxKSwgc2VsZi5fd2lkdGgsIHNlbGYuX2hlaWdodCwgc2VsZi5fY29ybmVyUmFkaXVzKQorKyAg ICAgICAgIGVsc2U6CisrLSAgICAgICAgICAgIGRjLkRyYXdSZWN0YW5nbGUoeDEsIHkxLCBzZWxm Ll93aWR0aCwgc2VsZi5faGVpZ2h0KQorKysgICAgICAgICAgICBkYy5EcmF3UmVjdGFuZ2xlKGlu dCh4MSksIGludCh5MSksIHNlbGYuX3dpZHRoLCBzZWxmLl9oZWlnaHQpCisrIAorKyAgICAgZGVm IEdldEJvdW5kaW5nQm94TWluKHNlbGYpOgorKyAgICAgICAgICIiIkdldCB0aGUgYm91bmRpbmcg Ym94IG1pbmltdW0uIiIiCisrQEAgLTI4ODIsNyArMjg4Miw3IEBAIGRlZiBDcmVhdGUoc2VsZiwg dGhlX3BvaW50cyA9IE5vbmUpOgorKyAgICAgICAgICAgICAjIER1cGxpY2F0ZSB0aGUgbGlzdCBv ZiBwb2ludHMKKysgICAgICAgICAgICAgc2VsZi5fcG9pbnRzID0gW10KKysgICAgICAgICAgICAg Zm9yIHBvaW50IGluIHRoZV9wb2ludHM6CisrLSAgICAgICAgICAgICAgICBuZXdfcG9pbnQgPSB3 eC5Qb2ludChwb2ludFswXSwgcG9pbnRbMV0pCisrKyAgICAgICAgICAgICAgICBuZXdfcG9pbnQg PSB3eC5Qb2ludChpbnQocG9pbnRbMF0pLCBpbnQocG9pbnRbMV0pKQorKyAgICAgICAgICAgICAg ICAgc2VsZi5fcG9pbnRzLmFwcGVuZChuZXdfcG9pbnQpCisrICAgICAgICAgICAgIHNlbGYuQ2Fs Y3VsYXRlQm91bmRpbmdCb3goKQorKyAgICAgICAgICAgICBzZWxmLl9vcmlnaW5hbFdpZHRoID0g c2VsZi5fYm91bmRXaWR0aAorK0BAIC0zNDQ0LDcgKzM0NDQsNyBAQCBkZWYgT25EcmF3KHNlbGYs IGRjKToKKysgICAgICAgICAgICAgICAgIGRjLlNldFBlbihzZWxmLl9wZW4pCisrICAgICAgICAg aWYgc2VsZi5fYnJ1c2g6CisrICAgICAgICAgICAgIGRjLlNldEJydXNoKHNlbGYuX2JydXNoKQor Ky0gICAgICAgIGRjLkRyYXdFbGxpcHNlKHNlbGYuX3hwb3MgLSBzZWxmLkdldFdpZHRoKCkgLyAy LjAsIHNlbGYuX3lwb3MgLSBzZWxmLkdldEhlaWdodCgpIC8gMi4wLCBzZWxmLkdldFdpZHRoKCks IHNlbGYuR2V0SGVpZ2h0KCkpCisrKyAgICAgICAgZGMuRHJhd0VsbGlwc2UoaW50KHNlbGYuX3hw b3MgLSBzZWxmLkdldFdpZHRoKCkgLyAyLjApLCBpbnQoc2VsZi5feXBvcyAtIHNlbGYuR2V0SGVp Z2h0KCkgLyAyLjApLCBzZWxmLkdldFdpZHRoKCksIHNlbGYuR2V0SGVpZ2h0KCkpCisrIAorKyAg ICAgZGVmIFNldFNpemUoc2VsZiwgeCwgeSwgcmVjdXJzaXZlID0gVHJ1ZSk6CisrICAgICAgICAg IiIiCisrZGlmZiAtLWdpdCBhL3d4L2xpYi9vZ2wvYm1wc2hhcGUucHkgYi93eC9saWIvb2dsL2Jt cHNoYXBlLnB5CisraW5kZXggZWUyODU5NTI3Li5lNTNkZGIxMzYgMTAwNjQ0CisrLS0tIGEvd3gv bGliL29nbC9ibXBzaGFwZS5weQorKysrKyBiL3d4L2xpYi9vZ2wvYm1wc2hhcGUucHkKKytAQCAt MzIsNyArMzIsNyBAQCBkZWYgT25EcmF3KHNlbGYsIGRjKToKKysgCisrICAgICAgICAgeCA9IHNl bGYuX3hwb3MgLSBzZWxmLl9iaXRtYXAuR2V0V2lkdGgoKSAvIDIuMAorKyAgICAgICAgIHkgPSBz ZWxmLl95cG9zIC0gc2VsZi5fYml0bWFwLkdldEhlaWdodCgpIC8gMi4wCisrLSAgICAgICAgZGMu RHJhd0JpdG1hcChzZWxmLl9iaXRtYXAsIHgsIHksIFRydWUpCisrKyAgICAgICAgZGMuRHJhd0Jp dG1hcChzZWxmLl9iaXRtYXAsIGludCh4KSwgaW50KHkpLCBUcnVlKQorKyAKKysgICAgIGRlZiBT ZXRTaXplKHNlbGYsIHcsIGgsIHJlY3Vyc2l2ZSA9IFRydWUpOgorKyAgICAgICAgICIiIgorK2Rp ZmYgLS1naXQgYS93eC9saWIvb2dsL2NvbXBvc2l0LnB5IGIvd3gvbGliL29nbC9jb21wb3NpdC5w eQorK2luZGV4IGMzYjYyMzk1Mi4uZWVjYWFmYjNmIDEwMDY0NAorKy0tLSBhL3d4L2xpYi9vZ2wv Y29tcG9zaXQucHkKKysrKysgYi93eC9saWIvb2dsL2NvbXBvc2l0LnB5CisrQEAgLTExMzEsMTEg KzExMzEsMTEgQEAgZGVmIE9uRHJhdyhzZWxmLCBkYyk6CisrIAorKyAgICAgICAgIGlmIHNlbGYu X2xlZnRTaWRlOgorKyAgICAgICAgICAgICBkYy5TZXRQZW4oc2VsZi5fbGVmdFNpZGVQZW4pCisr LSAgICAgICAgICAgIGRjLkRyYXdMaW5lKHgxLCB5MiwgeDEsIHkxKQorKysgICAgICAgICAgICBk Yy5EcmF3TGluZShpbnQoeDEpLCBpbnQoeTIpLCBpbnQoeDEpLCBpbnQoeTEpKQorKyAKKysgICAg ICAgICBpZiBzZWxmLl90b3BTaWRlOgorKyAgICAgICAgICAgICBkYy5TZXRQZW4oc2VsZi5fdG9w U2lkZVBlbikKKystICAgICAgICAgICAgZGMuRHJhd0xpbmUoeDEsIHkxLCB4MiwgeTEpCisrKyAg ICAgICAgICAgIGRjLkRyYXdMaW5lKGludCh4MSksIGludCh5MSksIGludCh4MiksIGludCh5MSkp CisrIAorKyAgICAgICAgICMgRm9yIHRlc3RpbmcgcHVycG9zZXMsIGRyYXcgYSByZWN0YW5nbGUg c28gd2Uga25vdworKyAgICAgICAgICMgaG93IGJpZyB0aGUgZGl2aXNpb24gaXMuCisrZGlmZiAt LWdpdCBhL3d4L2xpYi9vZ2wvZGl2aWRlZC5weSBiL3d4L2xpYi9vZ2wvZGl2aWRlZC5weQorK2lu ZGV4IDBiZmIxOTE5Zi4uMDgwOWJlNThjIDEwMDY0NAorKy0tLSBhL3d4L2xpYi9vZ2wvZGl2aWRl ZC5weQorKysrKyBiL3d4L2xpYi9vZ2wvZGl2aWRlZC5weQorK0BAIC0yMzEsNyArMjMxLDcgQEAg ZGVmIE9uRHJhd0NvbnRlbnRzKHNlbGYsIGRjKToKKysgICAgICAgICAgICAgICAgIHJlZ2lvblBl biA9IHJlZ2lvbi5HZXRBY3R1YWxQZW4oKQorKyAgICAgICAgICAgICAgICAgaWYgcmVnaW9uUGVu OgorKyAgICAgICAgICAgICAgICAgICAgIGRjLlNldFBlbihyZWdpb25QZW4pCisrLSAgICAgICAg ICAgICAgICAgICAgZGMuRHJhd0xpbmUobGVmdFgsIHksIHJpZ2h0WCwgeSkKKysrICAgICAgICAg ICAgICAgICAgICBkYy5EcmF3TGluZShpbnQobGVmdFgpLCBpbnQoeSksIGludChyaWdodFgpLCBp bnQoeSkpCisrIAorKyAgICAgICAgICAgICBjdXJyZW50WSA9IGFjdHVhbFkKKysgCisrZGlmZiAt LWdpdCBhL3d4L2xpYi9vZ2wvbGluZXMucHkgYi93eC9saWIvb2dsL2xpbmVzLnB5CisraW5kZXgg OTQ4Yjg1ZDgyLi41MGMwN2UwNDYgMTAwNjQ0CisrLS0tIGEvd3gvbGliL29nbC9saW5lcy5weQor KysrKyBiL3d4L2xpYi9vZ2wvbGluZXMucHkKKytAQCAtMTIwMCw3ICsxMjAwLDcgQEAgZGVmIE9u RHJhdyhzZWxmLCBkYyk6CisrIAorKyAgICAgICAgIHBvaW50cyA9IFtdCisrICAgICAgICAgZm9y IHBvaW50IGluIHNlbGYuX2xpbmVDb250cm9sUG9pbnRzOgorKy0gICAgICAgICAgICBwb2ludHMu YXBwZW5kKHd4LlBvaW50KHBvaW50WzBdLCBwb2ludFsxXSkpCisrKyAgICAgICAgICAgIHBvaW50 cy5hcHBlbmQod3guUG9pbnQoaW50KHBvaW50WzBdKSwgaW50KHBvaW50WzFdKSkpCisrIAorKyAg ICAgICAgIGlmIHNlbGYuX2lzU3BsaW5lOgorKyAgICAgICAgICAgICBkYy5EcmF3U3BsaW5lKHBv aW50cykKKytkaWZmIC0tZ2l0IGEvd3gvbGliL29nbC9vZ2xtaXNjLnB5IGIvd3gvbGliL29nbC9v Z2xtaXNjLnB5CisraW5kZXggODU4OGE3MmI3Li5hOGJlM2ZjNTMgMTAwNjQ0CisrLS0tIGEvd3gv bGliL29nbC9vZ2xtaXNjLnB5CisrKysrIGIvd3gvbGliL29nbC9vZ2xtaXNjLnB5CisrQEAgLTMw MCwxMCArMzAwLDEwIEBAIGRlZiBEcmF3Rm9ybWF0dGVkVGV4dChkYywgdGV4dF9saXN0LCB4cG9z LCB5cG9zLCB3aWR0aCwgaGVpZ2h0LCBmb3JtYXRNb2RlKToKKysgICAgICAgICB5b2Zmc2V0ID0g eXBvcyAtIGhlaWdodCAvIDIuMAorKyAKKysgICAgICMgKzEgdG8gYWxsb3cgZm9yIHJvdW5kaW5n IGVycm9ycworKy0gICAgZGMuU2V0Q2xpcHBpbmdSZWdpb24oeHBvcyAtIHdpZHRoIC8gMi4wLCB5 cG9zIC0gaGVpZ2h0IC8gMi4wLCB3aWR0aCArIDEsIGhlaWdodCArIDEpCisrKyAgICBkYy5TZXRD bGlwcGluZ1JlZ2lvbihpbnQoeHBvcyAtIHdpZHRoIC8gMi4wKSwgaW50KHlwb3MgLSBoZWlnaHQg LyAyLjApLCBpbnQod2lkdGggKyAxKSwgaW50KGhlaWdodCArIDEpKQorKyAKKysgICAgIGZvciBs aW5lIGluIHRleHRfbGlzdDoKKystICAgICAgICBkYy5EcmF3VGV4dChsaW5lLkdldFRleHQoKSwg eG9mZnNldCArIGxpbmUuR2V0WCgpLCB5b2Zmc2V0ICsgbGluZS5HZXRZKCkpCisrKyAgICAgICAg ZGMuRHJhd1RleHQobGluZS5HZXRUZXh0KCksIGludCh4b2Zmc2V0ICsgbGluZS5HZXRYKCkpLCBp bnQoeW9mZnNldCArIGxpbmUuR2V0WSgpKSkKKysgCisrICAgICBkYy5EZXN0cm95Q2xpcHBpbmdS ZWdpb24oKQorKyAKKytkaWZmIC0tZ2l0IGEvd3gvbGliL3Bsb3QvZXhhbXBsZXMvZGVtby5weSBi L3d4L2xpYi9wbG90L2V4YW1wbGVzL2RlbW8ucHkKKytpbmRleCA5OGZiYWFkM2EuLjAyYmVjMWQ5 ZiAxMDA2NDQKKystLS0gYS93eC9saWIvcGxvdC9leGFtcGxlcy9kZW1vLnB5CisrKysrIGIvd3gv bGliL3Bsb3QvZXhhbXBsZXMvZGVtby5weQorK0BAIC05ODQsNyArOTg0LDcgQEAgZGVmIERyYXdQ b2ludExhYmVsKHNlbGYsIGRjLCBtRGF0YURpY3QpOgorKyAKKysgICAgICAgICBzeCwgc3kgPSBt RGF0YURpY3RbInNjYWxlZFhZIl0gICMgc2NhbGVkIHgseSBvZiBjbG9zZXN0IHBvaW50CisrICAg ICAgICAgIyAxMGJ5MTAgc3F1YXJlIGNlbnRlcmVkIG9uIHBvaW50CisrLSAgICAgICAgZGMuRHJh d1JlY3RhbmdsZShzeCAtIDUsIHN5IC0gNSwgMTAsIDEwKQorKysgICAgICAgIGRjLkRyYXdSZWN0 YW5nbGUoaW50KHN4IC0gNSksIGludChzeSAtIDUpLCAxMCwgMTApCisrICAgICAgICAgcHgsIHB5 ID0gbURhdGFEaWN0WyJwb2ludFhZIl0KKysgICAgICAgICBjTnVtID0gbURhdGFEaWN0WyJjdXJ2 ZU51bSJdCisrICAgICAgICAgcG50SW4gPSBtRGF0YURpY3RbInBJbmRleCJdCisrQEAgLTk5Miw3 ICs5OTIsNyBAQCBkZWYgRHJhd1BvaW50TGFiZWwoc2VsZiwgZGMsIG1EYXRhRGljdCk6CisrICAg ICAgICAgIyBtYWtlIGEgc3RyaW5nIHRvIGRpc3BsYXkKKysgICAgICAgICBzID0gIkNydiMgJWks ICclcycsIFB0LiAoJS4yZiwlLjJmKSwgUHRJbmQgJWkiICUgKAorKyAgICAgICAgICAgICBjTnVt LCBsZWdlbmQsIHB4LCBweSwgcG50SW4pCisrLSAgICAgICAgZGMuRHJhd1RleHQocywgc3gsIHN5 ICsgMSkKKysrICAgICAgICBkYy5EcmF3VGV4dChzLCBpbnQoc3gpLCBpbnQoc3kgKyAxKSkKKysg CisrIAorKyBkZWYgcnVuX2RlbW8oKToKKytkaWZmIC0tZ2l0IGEvd3gvbGliL3Bsb3QvcGxvdGNh bnZhcy5weSBiL3d4L2xpYi9wbG90L3Bsb3RjYW52YXMucHkKKytpbmRleCBkZDNmNzdkNTIuLmFi ZWU0N2VmYiAxMDA2NDQKKystLS0gYS93eC9saWIvcGxvdC9wbG90Y2FudmFzLnB5CisrKysrIGIv d3gvbGliL3Bsb3QvcGxvdGNhbnZhcy5weQorK0BAIC0xNzQsMjQgKzE3NCwyNCBAQCBkZWYgX19p bml0X18oc2VsZiwgcGFyZW50LCBpZD13eC5JRF9BTlksIHBvcz13eC5EZWZhdWx0UG9zaXRpb24s CisrIAorKyAgICAgICAgICMgRGVmYXVsdCBQZW5zCisrICAgICAgICAgc2VsZi5fZ3JpZFBlbiA9 IHd4LlBlbih3eC5Db2xvdXIoMTgwLCAxODAsIDE4MCwgMjU1KSwKKystICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHNlbGYuX3BvaW50U2l6ZVswXSwKKysrICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGludChzZWxmLl9wb2ludFNpemVbMF0pLAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgd3guUEVOU1RZTEVfRE9UKQorKyAKKysgICAgICAgICBzZWxmLl9jZW50 ZXJMaW5lUGVuID0gd3guUGVuKHd4LlJFRCwKKystICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNlbGYuX3BvaW50U2l6ZVswXSwKKysrICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGludChzZWxmLl9wb2ludFNpemVbMF0pLAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgd3guUEVOU1RZTEVfU0hPUlRfREFTSCkKKysgCisrICAgICAg ICAgc2VsZi5fYXhlc1BlbiA9IHd4LlBlbih3eC5CTEFDSywKKystICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNlbGYuX3BvaW50U2l6ZVswXSwKKysrICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGludChzZWxmLl9wb2ludFNpemVbMF0pLAorKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgd3guUEVOU1RZTEVfU09MSUQpCisrIAorKyAgICAgICAgIHNlbGYuX3RpY2tQ ZW4gPSB3eC5QZW4od3guQkxBQ0ssCisrLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz ZWxmLl9wb2ludFNpemVbMF0sCisrKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQo c2VsZi5fcG9pbnRTaXplWzBdKSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHd4 LlBFTlNUWUxFX1NPTElEKQorKyAgICAgICAgIHNlbGYuX3RpY2tMZW5ndGggPSB0dXBsZSgteCAq IDIgZm9yIHggaW4gc2VsZi5fcG9pbnRTaXplKQorKyAKKysgICAgICAgICBzZWxmLl9kaWFnb25h bFBlbiA9IHd4LlBlbih3eC5CTFVFLAorKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHNlbGYuX3BvaW50U2l6ZVswXSwKKysrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBpbnQoc2VsZi5fcG9pbnRTaXplWzBdKSwKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB3eC5QRU5TVFlMRV9ET1RfREFTSCkKKysgCisrICAgICBkZWYgU2V0Q3Vyc29y KHNlbGYsIGN1cnNvcik6CisrQEAgLTE5MjUsMTAgKzE5MjUsMTAgQEAgZGVmIF9EcmF3KHNlbGYs IGdyYXBoaWNzLCB4QXhpcz1Ob25lLCB5QXhpcz1Ob25lLCBkYz1Ob25lKToKKysgICAgICAgICAj IHNldCBjbGlwcGluZyBhcmVhIHNvIGRyYXdpbmcgZG9lcyBub3Qgb2NjdXIgb3V0c2lkZSBheGlz IGJveAorKyAgICAgICAgIHB0eCwgcHR5LCByZWN0V2lkdGgsIHJlY3RIZWlnaHQgPSBzZWxmLl9w b2ludDJDbGllbnRDb29yZChwMSwgcDIpCisrICAgICAgICAgIyBhbGxvdyBncmFwaCB0byBvdmVy bGFwIGF4aXMgbGluZXMgYnkgYWRkaW5nIHVuaXRzIHRvIHcgYW5kIGgKKystICAgICAgICBkYy5T ZXRDbGlwcGluZ1JlZ2lvbihwdHggKiBzZWxmLl9wb2ludFNpemVbMF0sCisrLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgcHR5ICogc2VsZi5fcG9pbnRTaXplWzFdLAorKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHJlY3RXaWR0aCAqIHNlbGYuX3BvaW50U2l6ZVswXSArIDIsCisr LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVjdEhlaWdodCAqIHNlbGYuX3BvaW50U2l6 ZVsxXSArIDEpCisrKyAgICAgICAgZGMuU2V0Q2xpcHBpbmdSZWdpb24oaW50KHB0eCAqIHNlbGYu X3BvaW50U2l6ZVswXSksCisrKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50KHB0eSAq IHNlbGYuX3BvaW50U2l6ZVsxXSksCisrKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50 KHJlY3RXaWR0aCAqIHNlbGYuX3BvaW50U2l6ZVswXSArIDIpLAorKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGludChyZWN0SGVpZ2h0ICogc2VsZi5fcG9pbnRTaXplWzFdICsgMSkpCisr ICAgICAgICAgIyBEcmF3IHRoZSBsaW5lcyBhbmQgbWFya2VycworKyAjICAgICAgICBzdGFydCA9 IF90aW1lLnBlcmZfY291bnRlcigpCisrICAgICAgICAgZ3JhcGhpY3MuZHJhdyhkYykKKytAQCAt MjI4MCw3ICsyMjgwLDcgQEAgZGVmIF9kcmF3TGVnZW5kKHNlbGYsIGRjLCBncmFwaGljcywgcmhz VywgdG9wSCwgbGVnZW5kQm94V0gsCisrICAgICAgICAgICAgIHBudCA9ICgodHJoY1swXSArIGxl Z2VuZExIUyArIGxlZ2VuZFN5bUV4dFswXQorKyAgICAgICAgICAgICAgICAgICAgICsgNSAqIHNl bGYuX3BvaW50U2l6ZVswXSksCisrICAgICAgICAgICAgICAgICAgICB0cmhjWzFdICsgcyArIGxp bmVIZWlnaHQgLyAyLiAtIGxlZ2VuZFRleHRFeHRbMV0gLyAyKQorKy0gICAgICAgICAgICBkYy5E cmF3VGV4dChvLmdldExlZ2VuZCgpLCBwbnRbMF0sIHBudFsxXSkKKysrICAgICAgICAgICAgZGMu RHJhd1RleHQoby5nZXRMZWdlbmQoKSwgaW50KHBudFswXSksIGludChwbnRbMV0pKQorKyAgICAg ICAgIGRjLlNldEZvbnQoc2VsZi5fZ2V0Rm9udChzZWxmLl9mb250U2l6ZUF4aXMpKSAgIyByZXNl dAorKyAKKysgICAgIGRlZiBfdGl0bGVMYWJsZXNXSChzZWxmLCBkYywgZ3JhcGhpY3MpOgorK0BA IC0yMzI5LDcgKzIzMjksNyBAQCBkZWYgX2RyYXdSdWJiZXJCYW5kKHNlbGYsIGNvcm5lcjEsIGNv cm5lcjIpOgorKyAgICAgICAgIGRjLlNldFBlbih3eC5QZW4od3guQkxBQ0spKQorKyAgICAgICAg IGRjLlNldEJydXNoKHd4LkJydXNoKHd4LldISVRFLCB3eC5CUlVTSFNUWUxFX1RSQU5TUEFSRU5U KSkKKysgICAgICAgICBkYy5TZXRMb2dpY2FsRnVuY3Rpb24od3guSU5WRVJUKQorKy0gICAgICAg IGRjLkRyYXdSZWN0YW5nbGUocHR4LCBwdHksIHJlY3RXaWR0aCwgcmVjdEhlaWdodCkKKysrICAg ICAgICBkYy5EcmF3UmVjdGFuZ2xlKGludChwdHgpLCBpbnQocHR5KSwgaW50KHJlY3RXaWR0aCks IGludChyZWN0SGVpZ2h0KSkKKysgICAgICAgICBkYy5TZXRMb2dpY2FsRnVuY3Rpb24od3guQ09Q WSkKKysgCisrICAgICBkZWYgX2dldEZvbnQoc2VsZiwgc2l6ZSk6CisrQEAgLTI0MjMsNyArMjQy Myw3IEBAIGRlZiBfZHJhd0dyaWQoc2VsZiwgZGMsIHAxLCBwMiwgc2NhbGUsIHNoaWZ0LCB4dGlj a3MsIHl0aWNrcyk6CisrICAgICAgICAgIyBpbmNyZWFzZXMgdGhpY2tuZXNzIGZvciBwcmludGlu ZyBvbmx5CisrICAgICAgICAgcGVuID0gc2VsZi5ncmlkUGVuCisrICAgICAgICAgcGVuV2lkdGgg PSBzZWxmLnByaW50ZXJTY2FsZSAqIHBlbi5HZXRXaWR0aCgpCisrLSAgICAgICAgcGVuLlNldFdp ZHRoKHBlbldpZHRoKQorKysgICAgICAgIHBlbi5TZXRXaWR0aChpbnQocGVuV2lkdGgpKQorKyAg ICAgICAgIGRjLlNldFBlbihwZW4pCisrIAorKyAgICAgICAgIHgsIHksIHdpZHRoLCBoZWlnaHQg PSBzZWxmLl9wb2ludDJDbGllbnRDb29yZChwMSwgcDIpCisrQEAgLTI0MzIsMTMgKzI0MzIsMTMg QEAgZGVmIF9kcmF3R3JpZChzZWxmLCBkYywgcDEsIHAyLCBzY2FsZSwgc2hpZnQsIHh0aWNrcywg eXRpY2tzKToKKysgICAgICAgICAgICAgaWYgc2VsZi5lbmFibGVHcmlkWzBdOgorKyAgICAgICAg ICAgICAgICAgZm9yIHgsIF8gaW4geHRpY2tzOgorKyAgICAgICAgICAgICAgICAgICAgIHB0ID0g c2NhbGVfYW5kX3NoaWZ0X3BvaW50KHgsIHAxWzFdLCBzY2FsZSwgc2hpZnQpCisrLSAgICAgICAg ICAgICAgICAgICAgZGMuRHJhd0xpbmUocHRbMF0sIHB0WzFdLCBwdFswXSwgcHRbMV0gLSBoZWln aHQpCisrKyAgICAgICAgICAgICAgICAgICAgZGMuRHJhd0xpbmUoaW50KHB0WzBdKSwgaW50KHB0 WzFdKSwgaW50KHB0WzBdKSwgaW50KHB0WzFdIC0gaGVpZ2h0KSkKKysgCisrICAgICAgICAgaWYg c2VsZi5feVNwZWMgIT0gJ25vbmUnOgorKyAgICAgICAgICAgICBpZiBzZWxmLmVuYWJsZUdyaWRb MV06CisrICAgICAgICAgICAgICAgICBmb3IgeSwgbGFiZWwgaW4geXRpY2tzOgorKyAgICAgICAg ICAgICAgICAgICAgIHB0ID0gc2NhbGVfYW5kX3NoaWZ0X3BvaW50KHAxWzBdLCB5LCBzY2FsZSwg c2hpZnQpCisrLSAgICAgICAgICAgICAgICAgICAgZGMuRHJhd0xpbmUocHRbMF0sIHB0WzFdLCBw dFswXSArIHdpZHRoLCBwdFsxXSkKKysrICAgICAgICAgICAgICAgICAgICBkYy5EcmF3TGluZShp bnQocHRbMF0pLCBpbnQocHRbMV0pLCBpbnQocHRbMF0gKyB3aWR0aCksIGludChwdFsxXSkpCisr IAorKyAgICAgQFRlbXBTdHlsZSgncGVuJykKKysgICAgIGRlZiBfZHJhd1RpY2tzKHNlbGYsIGRj LCBwMSwgcDIsIHNjYWxlLCBzaGlmdCwgeHRpY2tzLCB5dGlja3MpOgorK0BAIC0yNDcxLDcgKzI0 NzEsNyBAQCBkZWYgX2RyYXdUaWNrcyhzZWxmLCBkYywgcDEsIHAyLCBzY2FsZSwgc2hpZnQsIHh0 aWNrcywgeXRpY2tzKToKKysgICAgICAgICAjIGluY3JlYXNlcyB0aGlja25lc3MgZm9yIHByaW50 aW5nIG9ubHkKKysgICAgICAgICBwZW4gPSBzZWxmLnRpY2tQZW4KKysgICAgICAgICBwZW5XaWR0 aCA9IHNlbGYucHJpbnRlclNjYWxlICogcGVuLkdldFdpZHRoKCkKKystICAgICAgICBwZW4uU2V0 V2lkdGgocGVuV2lkdGgpCisrKyAgICAgICAgcGVuLlNldFdpZHRoKGludChwZW5XaWR0aCkpCisr ICAgICAgICAgZGMuU2V0UGVuKHBlbikKKysgCisrICAgICAgICAgIyBsZW5ndGhlbiBsaW5lcyBm b3IgcHJpbnRpbmcKKytAQCAtMjQ4NCwxMyArMjQ4NCwxMyBAQCBkZWYgX2RyYXdUaWNrcyhzZWxm LCBkYywgcDEsIHAyLCBzY2FsZSwgc2hpZnQsIHh0aWNrcywgeXRpY2tzKToKKysgICAgICAgICAg ICAgICAgIGxpbmVzID0gW10KKysgICAgICAgICAgICAgICAgIGZvciB4LCBsYWJlbCBpbiB4dGlj a3M6CisrICAgICAgICAgICAgICAgICAgICAgcHQgPSBzY2FsZV9hbmRfc2hpZnRfcG9pbnQoeCwg cDFbMV0sIHNjYWxlLCBzaGlmdCkKKystICAgICAgICAgICAgICAgICAgICBsaW5lcy5hcHBlbmQo KHB0WzBdLCBwdFsxXSwgcHRbMF0sIHB0WzFdIC0geFRpY2tMZW5ndGgpKQorKysgICAgICAgICAg ICAgICAgICAgIGxpbmVzLmFwcGVuZCgoaW50KHB0WzBdKSwgaW50KHB0WzFdKSwgaW50KHB0WzBd KSwgaW50KHB0WzFdIC0geFRpY2tMZW5ndGgpKSkKKysgICAgICAgICAgICAgICAgIGRjLkRyYXdM aW5lTGlzdChsaW5lcykKKysgICAgICAgICAgICAgaWYgdGlja3MudG9wOgorKyAgICAgICAgICAg ICAgICAgbGluZXMgPSBbXQorKyAgICAgICAgICAgICAgICAgZm9yIHgsIGxhYmVsIGluIHh0aWNr czoKKysgICAgICAgICAgICAgICAgICAgICBwdCA9IHNjYWxlX2FuZF9zaGlmdF9wb2ludCh4LCBw MlsxXSwgc2NhbGUsIHNoaWZ0KQorKy0gICAgICAgICAgICAgICAgICAgIGxpbmVzLmFwcGVuZCgo cHRbMF0sIHB0WzFdLCBwdFswXSwgcHRbMV0gKyB4VGlja0xlbmd0aCkpCisrKyAgICAgICAgICAg ICAgICAgICAgbGluZXMuYXBwZW5kKChpbnQocHRbMF0pLCBpbnQocHRbMV0pLCBpbnQocHRbMF0p LCBpbnQocHRbMV0gKyB4VGlja0xlbmd0aCkpKQorKyAgICAgICAgICAgICAgICAgZGMuRHJhd0xp bmVMaXN0KGxpbmVzKQorKyAKKysgICAgICAgICBpZiBzZWxmLnlTcGVjICE9ICdub25lJzoKKytA QCAtMjQ5OCwxMyArMjQ5OCwxMyBAQCBkZWYgX2RyYXdUaWNrcyhzZWxmLCBkYywgcDEsIHAyLCBz Y2FsZSwgc2hpZnQsIHh0aWNrcywgeXRpY2tzKToKKysgICAgICAgICAgICAgICAgIGxpbmVzID0g W10KKysgICAgICAgICAgICAgICAgIGZvciB5LCBsYWJlbCBpbiB5dGlja3M6CisrICAgICAgICAg ICAgICAgICAgICAgcHQgPSBzY2FsZV9hbmRfc2hpZnRfcG9pbnQocDFbMF0sIHksIHNjYWxlLCBz aGlmdCkKKystICAgICAgICAgICAgICAgICAgICBsaW5lcy5hcHBlbmQoKHB0WzBdLCBwdFsxXSwg cHRbMF0gKyB5VGlja0xlbmd0aCwgcHRbMV0pKQorKysgICAgICAgICAgICAgICAgICAgIGxpbmVz LmFwcGVuZCgoaW50KHB0WzBdKSwgaW50KHB0WzFdKSwgaW50KHB0WzBdICsgeVRpY2tMZW5ndGgp LCBpbnQocHRbMV0pKSkKKysgICAgICAgICAgICAgICAgIGRjLkRyYXdMaW5lTGlzdChsaW5lcykK KysgICAgICAgICAgICAgaWYgdGlja3MucmlnaHQ6CisrICAgICAgICAgICAgICAgICBsaW5lcyA9 IFtdCisrICAgICAgICAgICAgICAgICBmb3IgeSwgbGFiZWwgaW4geXRpY2tzOgorKyAgICAgICAg ICAgICAgICAgICAgIHB0ID0gc2NhbGVfYW5kX3NoaWZ0X3BvaW50KHAyWzBdLCB5LCBzY2FsZSwg c2hpZnQpCisrLSAgICAgICAgICAgICAgICAgICAgbGluZXMuYXBwZW5kKChwdFswXSwgcHRbMV0s IHB0WzBdIC0geVRpY2tMZW5ndGgsIHB0WzFdKSkKKysrICAgICAgICAgICAgICAgICAgICBsaW5l cy5hcHBlbmQoKGludChwdFswXSksIGludChwdFsxXSksIGludChwdFswXSAtIHlUaWNrTGVuZ3Ro KSwgaW50KHB0WzFdKSkpCisrICAgICAgICAgICAgICAgICBkYy5EcmF3TGluZUxpc3QobGluZXMp CisrIAorKyAgICAgQFRlbXBTdHlsZSgncGVuJykKKytAQCAtMjUzMSwyNSArMjUzMSwyNSBAQCBk ZWYgX2RyYXdDZW50ZXJMaW5lcyhzZWxmLCBkYywgcDEsIHAyLCBzY2FsZSwgc2hpZnQpOgorKyAg ICAgICAgICMgaW5jcmVhc2VzIHRoaWNrbmVzcyBmb3IgcHJpbnRpbmcgb25seQorKyAgICAgICAg IHBlbiA9IHNlbGYuY2VudGVyTGluZVBlbgorKyAgICAgICAgIHBlbldpZHRoID0gc2VsZi5wcmlu dGVyU2NhbGUgKiBwZW4uR2V0V2lkdGgoKQorKy0gICAgICAgIHBlbi5TZXRXaWR0aChwZW5XaWR0 aCkKKysrICAgICAgICBwZW4uU2V0V2lkdGgoaW50KHBlbldpZHRoKSkKKysgICAgICAgICBkYy5T ZXRQZW4ocGVuKQorKyAKKysgICAgICAgICBpZiBzZWxmLl9jZW50ZXJMaW5lc0VuYWJsZWQgaW4g KCdIb3Jpem9udGFsJywgVHJ1ZSk6CisrICAgICAgICAgICAgIHkxID0gc2NhbGVbMV0gKiBwMVsx XSArIHNoaWZ0WzFdCisrICAgICAgICAgICAgIHkyID0gc2NhbGVbMV0gKiBwMlsxXSArIHNoaWZ0 WzFdCisrICAgICAgICAgICAgIHkgPSAoeTEgLSB5MikgLyAyLjAgKyB5MgorKy0gICAgICAgICAg ICBkYy5EcmF3TGluZShzY2FsZVswXSAqIHAxWzBdICsgc2hpZnRbMF0sCisrLSAgICAgICAgICAg ICAgICAgICAgICAgIHksCisrLSAgICAgICAgICAgICAgICAgICAgICAgIHNjYWxlWzBdICogcDJb MF0gKyBzaGlmdFswXSwKKystICAgICAgICAgICAgICAgICAgICAgICAgeSkKKysrICAgICAgICAg ICAgZGMuRHJhd0xpbmUoaW50KHNjYWxlWzBdICogcDFbMF0gKyBzaGlmdFswXSksCisrKyAgICAg ICAgICAgICAgICAgICAgICAgIGludCh5KSwKKysrICAgICAgICAgICAgICAgICAgICAgICAgaW50 KHNjYWxlWzBdICogcDJbMF0gKyBzaGlmdFswXSksCisrKyAgICAgICAgICAgICAgICAgICAgICAg IGludCh5KSkKKysgICAgICAgICBpZiBzZWxmLl9jZW50ZXJMaW5lc0VuYWJsZWQgaW4gKCdWZXJ0 aWNhbCcsIFRydWUpOgorKyAgICAgICAgICAgICB4MSA9IHNjYWxlWzBdICogcDFbMF0gKyBzaGlm dFswXQorKyAgICAgICAgICAgICB4MiA9IHNjYWxlWzBdICogcDJbMF0gKyBzaGlmdFswXQorKyAg ICAgICAgICAgICB4ID0gKHgxIC0geDIpIC8gMi4wICsgeDIKKystICAgICAgICAgICAgZGMuRHJh d0xpbmUoeCwKKystICAgICAgICAgICAgICAgICAgICAgICAgc2NhbGVbMV0gKiBwMVsxXSArIHNo aWZ0WzFdLAorKy0gICAgICAgICAgICAgICAgICAgICAgICB4LAorKy0gICAgICAgICAgICAgICAg ICAgICAgICBzY2FsZVsxXSAqIHAyWzFdICsgc2hpZnRbMV0pCisrKyAgICAgICAgICAgIGRjLkRy YXdMaW5lKGludCh4KSwKKysrICAgICAgICAgICAgICAgICAgICAgICAgaW50KHNjYWxlWzFdICog cDFbMV0gKyBzaGlmdFsxXSksCisrKyAgICAgICAgICAgICAgICAgICAgICAgIGludCh4KSwKKysr ICAgICAgICAgICAgICAgICAgICAgICAgaW50KHNjYWxlWzFdICogcDJbMV0gKyBzaGlmdFsxXSkp CisrIAorKyAgICAgQFRlbXBTdHlsZSgncGVuJykKKysgICAgIGRlZiBfZHJhd0RpYWdvbmFscyhz ZWxmLCBkYywgcDEsIHAyLCBzY2FsZSwgc2hpZnQpOgorK0BAIC0yNTc1LDE5ICsyNTc1LDE5IEBA IGRlZiBfZHJhd0RpYWdvbmFscyhzZWxmLCBkYywgcDEsIHAyLCBzY2FsZSwgc2hpZnQpOgorKyAg ICAgICAgICIiIgorKyAgICAgICAgIHBlbiA9IHNlbGYuZGlhZ29uYWxQZW4KKysgICAgICAgICBw ZW5XaWR0aCA9IHNlbGYucHJpbnRlclNjYWxlICogcGVuLkdldFdpZHRoKCkKKystICAgICAgICBw ZW4uU2V0V2lkdGgocGVuV2lkdGgpCisrKyAgICAgICAgcGVuLlNldFdpZHRoKGludChwZW5XaWR0 aCkpCisrICAgICAgICAgZGMuU2V0UGVuKHBlbikKKysgCisrICAgICAgICAgaWYgc2VsZi5fZGlh Z29uYWxzRW5hYmxlZCBpbiAoJ0JvdHRvbWxlZnQtVG9wcmlnaHQnLCBUcnVlKToKKystICAgICAg ICAgICAgZGMuRHJhd0xpbmUoc2NhbGVbMF0gKiBwMVswXSArIHNoaWZ0WzBdLAorKy0gICAgICAg ICAgICAgICAgICAgICAgICBzY2FsZVsxXSAqIHAxWzFdICsgc2hpZnRbMV0sCisrLSAgICAgICAg ICAgICAgICAgICAgICAgIHNjYWxlWzBdICogcDJbMF0gKyBzaGlmdFswXSwKKystICAgICAgICAg ICAgICAgICAgICAgICAgc2NhbGVbMV0gKiBwMlsxXSArIHNoaWZ0WzFdKQorKysgICAgICAgICAg ICBkYy5EcmF3TGluZShpbnQoc2NhbGVbMF0gKiBwMVswXSArIHNoaWZ0WzBdKSwKKysrICAgICAg ICAgICAgICAgICAgICAgICAgaW50KHNjYWxlWzFdICogcDFbMV0gKyBzaGlmdFsxXSksCisrKyAg ICAgICAgICAgICAgICAgICAgICAgIGludChzY2FsZVswXSAqIHAyWzBdICsgc2hpZnRbMF0pLAor KysgICAgICAgICAgICAgICAgICAgICAgICBpbnQoc2NhbGVbMV0gKiBwMlsxXSArIHNoaWZ0WzFd KSkKKysgICAgICAgICBpZiBzZWxmLl9kaWFnb25hbHNFbmFibGVkIGluICgnQm90dG9tcmlnaHQt VG9wbGVmdCcsIFRydWUpOgorKy0gICAgICAgICAgICBkYy5EcmF3TGluZShzY2FsZVswXSAqIHAx WzBdICsgc2hpZnRbMF0sCisrLSAgICAgICAgICAgICAgICAgICAgICAgIHNjYWxlWzFdICogcDJb MV0gKyBzaGlmdFsxXSwKKystICAgICAgICAgICAgICAgICAgICAgICAgc2NhbGVbMF0gKiBwMlsw XSArIHNoaWZ0WzBdLAorKy0gICAgICAgICAgICAgICAgICAgICAgICBzY2FsZVsxXSAqIHAxWzFd ICsgc2hpZnRbMV0pCisrKyAgICAgICAgICAgIGRjLkRyYXdMaW5lKGludChzY2FsZVswXSAqIHAx WzBdICsgc2hpZnRbMF0pLAorKysgICAgICAgICAgICAgICAgICAgICAgICBpbnQoc2NhbGVbMV0g KiBwMlsxXSArIHNoaWZ0WzFdKSwKKysrICAgICAgICAgICAgICAgICAgICAgICAgaW50KHNjYWxl WzBdICogcDJbMF0gKyBzaGlmdFswXSksCisrKyAgICAgICAgICAgICAgICAgICAgICAgIGludChz Y2FsZVsxXSAqIHAxWzFdICsgc2hpZnRbMV0pKQorKyAKKysgICAgIEBUZW1wU3R5bGUoJ3Blbicp CisrICAgICBkZWYgX2RyYXdBeGVzKHNlbGYsIGRjLCBwMSwgcDIsIHNjYWxlLCBzaGlmdCk6Cisr QEAgLTI2MTQsNyArMjYxNCw3IEBAIGRlZiBfZHJhd0F4ZXMoc2VsZiwgZGMsIHAxLCBwMiwgc2Nh bGUsIHNoaWZ0KToKKysgICAgICAgICAjIGluY3JlYXNlcyB0aGlja25lc3MgZm9yIHByaW50aW5n IG9ubHkKKysgICAgICAgICBwZW4gPSBzZWxmLmF4ZXNQZW4KKysgICAgICAgICBwZW5XaWR0aCA9 IHNlbGYucHJpbnRlclNjYWxlICogcGVuLkdldFdpZHRoKCkKKystICAgICAgICBwZW4uU2V0V2lk dGgocGVuV2lkdGgpCisrKyAgICAgICAgcGVuLlNldFdpZHRoKGludChwZW5XaWR0aCkpCisrICAg ICAgICAgZGMuU2V0UGVuKHBlbikKKysgCisrICAgICAgICAgYXhlcyA9IHNlbGYuZW5hYmxlQXhl cworK0BAIC0yNjIzLDI0ICsyNjIzLDI0IEBAIGRlZiBfZHJhd0F4ZXMoc2VsZiwgZGMsIHAxLCBw Miwgc2NhbGUsIHNoaWZ0KToKKysgICAgICAgICAgICAgICAgIGxvd2VyLCB1cHBlciA9IHAxWzBd LCBwMlswXQorKyAgICAgICAgICAgICAgICAgYTEgPSBzY2FsZV9hbmRfc2hpZnRfcG9pbnQobG93 ZXIsIHAxWzFdLCBzY2FsZSwgc2hpZnQpCisrICAgICAgICAgICAgICAgICBhMiA9IHNjYWxlX2Fu ZF9zaGlmdF9wb2ludCh1cHBlciwgcDFbMV0sIHNjYWxlLCBzaGlmdCkKKystICAgICAgICAgICAg ICAgIGRjLkRyYXdMaW5lKGExWzBdLCBhMVsxXSwgYTJbMF0sIGEyWzFdKQorKysgICAgICAgICAg ICAgICAgZGMuRHJhd0xpbmUoaW50KGExWzBdKSwgaW50KGExWzFdKSwgaW50KGEyWzBdKSwgaW50 KGEyWzFdKSkKKysgICAgICAgICAgICAgaWYgYXhlcy50b3A6CisrICAgICAgICAgICAgICAgICBs b3dlciwgdXBwZXIgPSBwMVswXSwgcDJbMF0KKysgICAgICAgICAgICAgICAgIGExID0gc2NhbGVf YW5kX3NoaWZ0X3BvaW50KGxvd2VyLCBwMlsxXSwgc2NhbGUsIHNoaWZ0KQorKyAgICAgICAgICAg ICAgICAgYTIgPSBzY2FsZV9hbmRfc2hpZnRfcG9pbnQodXBwZXIsIHAyWzFdLCBzY2FsZSwgc2hp ZnQpCisrLSAgICAgICAgICAgICAgICBkYy5EcmF3TGluZShhMVswXSwgYTFbMV0sIGEyWzBdLCBh MlsxXSkKKysrICAgICAgICAgICAgICAgIGRjLkRyYXdMaW5lKGludChhMVswXSksIGludChhMVsx XSksIGludChhMlswXSksIGludChhMlsxXSkpCisrIAorKyAgICAgICAgIGlmIHNlbGYueVNwZWMg IT0gJ25vbmUnOgorKyAgICAgICAgICAgICBpZiBheGVzLmxlZnQ6CisrICAgICAgICAgICAgICAg ICBsb3dlciwgdXBwZXIgPSBwMVsxXSwgcDJbMV0KKysgICAgICAgICAgICAgICAgIGExID0gc2Nh bGVfYW5kX3NoaWZ0X3BvaW50KHAxWzBdLCBsb3dlciwgc2NhbGUsIHNoaWZ0KQorKyAgICAgICAg ICAgICAgICAgYTIgPSBzY2FsZV9hbmRfc2hpZnRfcG9pbnQocDFbMF0sIHVwcGVyLCBzY2FsZSwg c2hpZnQpCisrLSAgICAgICAgICAgICAgICBkYy5EcmF3TGluZShhMVswXSwgYTFbMV0sIGEyWzBd LCBhMlsxXSkKKysrICAgICAgICAgICAgICAgIGRjLkRyYXdMaW5lKGludChhMVswXSksIGludChh MVsxXSksIGludChhMlswXSksIGludChhMlsxXSkpCisrICAgICAgICAgICAgIGlmIGF4ZXMucmln aHQ6CisrICAgICAgICAgICAgICAgICBsb3dlciwgdXBwZXIgPSBwMVsxXSwgcDJbMV0KKysgICAg ICAgICAgICAgICAgIGExID0gc2NhbGVfYW5kX3NoaWZ0X3BvaW50KHAyWzBdLCBsb3dlciwgc2Nh bGUsIHNoaWZ0KQorKyAgICAgICAgICAgICAgICAgYTIgPSBzY2FsZV9hbmRfc2hpZnRfcG9pbnQo cDJbMF0sIHVwcGVyLCBzY2FsZSwgc2hpZnQpCisrLSAgICAgICAgICAgICAgICBkYy5EcmF3TGlu ZShhMVswXSwgYTFbMV0sIGEyWzBdLCBhMlsxXSkKKysrICAgICAgICAgICAgICAgIGRjLkRyYXdM aW5lKGludChhMVswXSksIGludChhMVsxXSksIGludChhMlswXSksIGludChhMlsxXSkpCisrIAor KyAgICAgQFRlbXBTdHlsZSgncGVuJykKKysgICAgIGRlZiBfZHJhd0F4ZXNWYWx1ZXMoc2VsZiwg ZGMsIHAxLCBwMiwgc2NhbGUsIHNoaWZ0LCB4dGlja3MsIHl0aWNrcyk6CisrQEAgLTI2ODYsOCAr MjY4Niw4IEBAIGRlZiBfZHJhd0F4ZXNWYWx1ZXMoc2VsZiwgZGMsIHAxLCBwMiwgc2NhbGUsIHNo aWZ0LCB4dGlja3MsIHl0aWNrcyk6CisrICAgICAgICAgICAgICAgICAgICAgdyA9IGRjLkdldFRl eHRFeHRlbnQobGFiZWwpWzBdCisrICAgICAgICAgICAgICAgICAgICAgcHQgPSBzY2FsZV9hbmRf c2hpZnRfcG9pbnQoeCwgcDFbMV0sIHNjYWxlLCBzaGlmdCkKKysgICAgICAgICAgICAgICAgICAg ICBjb29yZHMuYXBwZW5kKAorKy0gICAgICAgICAgICAgICAgICAgICAgICAocHRbMF0gLSB3LzIs CisrLSAgICAgICAgICAgICAgICAgICAgICAgICBwdFsxXSArIDIgKiBzZWxmLl9wb2ludFNpemVb MV0gLSB4VGlja0xlbmd0aCkKKysrICAgICAgICAgICAgICAgICAgICAgICAgKGludChwdFswXSAt IHcvMiksCisrKyAgICAgICAgICAgICAgICAgICAgICAgICBpbnQocHRbMV0gKyAyICogc2VsZi5f cG9pbnRTaXplWzFdIC0geFRpY2tMZW5ndGgpKQorKyAgICAgICAgICAgICAgICAgICAgICkKKysg ICAgICAgICAgICAgICAgIGRjLkRyYXdUZXh0TGlzdChsYWJlbHMsIGNvb3JkcykKKysgCisrQEAg LTI2OTgsOCArMjY5OCw4IEBAIGRlZiBfZHJhd0F4ZXNWYWx1ZXMoc2VsZiwgZGMsIHAxLCBwMiwg c2NhbGUsIHNoaWZ0LCB4dGlja3MsIHl0aWNrcyk6CisrICAgICAgICAgICAgICAgICAgICAgdywg aCA9IGRjLkdldFRleHRFeHRlbnQobGFiZWwpCisrICAgICAgICAgICAgICAgICAgICAgcHQgPSBz Y2FsZV9hbmRfc2hpZnRfcG9pbnQoeCwgcDJbMV0sIHNjYWxlLCBzaGlmdCkKKysgICAgICAgICAg ICAgICAgICAgICBjb29yZHMuYXBwZW5kKAorKy0gICAgICAgICAgICAgICAgICAgICAgICAocHRb MF0gLSB3LzIsCisrLSAgICAgICAgICAgICAgICAgICAgICAgICBwdFsxXSAtIDIgKiBzZWxmLl9w b2ludFNpemVbMV0gLSBoIC0geFRpY2tMZW5ndGgpCisrKyAgICAgICAgICAgICAgICAgICAgICAg IChpbnQocHRbMF0gLSB3LzIpLAorKysgICAgICAgICAgICAgICAgICAgICAgICAgaW50KHB0WzFd IC0gMiAqIHNlbGYuX3BvaW50U2l6ZVsxXSAtIGggLSB4VGlja0xlbmd0aCkpCisrICAgICAgICAg ICAgICAgICAgICAgKQorKyAgICAgICAgICAgICAgICAgZGMuRHJhd1RleHRMaXN0KGxhYmVscywg Y29vcmRzKQorKyAKKytAQCAtMjcxMiw4ICsyNzEyLDggQEAgZGVmIF9kcmF3QXhlc1ZhbHVlcyhz ZWxmLCBkYywgcDEsIHAyLCBzY2FsZSwgc2hpZnQsIHh0aWNrcywgeXRpY2tzKToKKysgICAgICAg ICAgICAgICAgICAgICB3ID0gZGMuR2V0VGV4dEV4dGVudChsYWJlbClbMF0KKysgICAgICAgICAg ICAgICAgICAgICBwdCA9IHNjYWxlX2FuZF9zaGlmdF9wb2ludChwMVswXSwgeSwgc2NhbGUsIHNo aWZ0KQorKyAgICAgICAgICAgICAgICAgICAgIGNvb3Jkcy5hcHBlbmQoCisrLSAgICAgICAgICAg ICAgICAgICAgICAgIChwdFswXSAtIHcgLSAzICogc2VsZi5fcG9pbnRTaXplWzBdICsgeVRpY2tM ZW5ndGgsCisrLSAgICAgICAgICAgICAgICAgICAgICAgICBwdFsxXSAtIDAuNSAqIGgpCisrKyAg ICAgICAgICAgICAgICAgICAgICAgIChpbnQocHRbMF0gLSB3IC0gMyAqIHNlbGYuX3BvaW50U2l6 ZVswXSArIHlUaWNrTGVuZ3RoKSwKKysrICAgICAgICAgICAgICAgICAgICAgICAgIGludChwdFsx XSAtIDAuNSAqIGgpKQorKyAgICAgICAgICAgICAgICAgICAgICkKKysgICAgICAgICAgICAgICAg IGRjLkRyYXdUZXh0TGlzdChsYWJlbHMsIGNvb3JkcykKKysgCisrQEAgLTI3MjUsOCArMjcyNSw4 IEBAIGRlZiBfZHJhd0F4ZXNWYWx1ZXMoc2VsZiwgZGMsIHAxLCBwMiwgc2NhbGUsIHNoaWZ0LCB4 dGlja3MsIHl0aWNrcyk6CisrICAgICAgICAgICAgICAgICAgICAgdyA9IGRjLkdldFRleHRFeHRl bnQobGFiZWwpWzBdCisrICAgICAgICAgICAgICAgICAgICAgcHQgPSBzY2FsZV9hbmRfc2hpZnRf cG9pbnQocDJbMF0sIHksIHNjYWxlLCBzaGlmdCkKKysgICAgICAgICAgICAgICAgICAgICBjb29y ZHMuYXBwZW5kKAorKy0gICAgICAgICAgICAgICAgICAgICAgICAocHRbMF0gKyAzICogc2VsZi5f cG9pbnRTaXplWzBdICsgeVRpY2tMZW5ndGgsCisrLSAgICAgICAgICAgICAgICAgICAgICAgICBw dFsxXSAtIDAuNSAqIGgpCisrKyAgICAgICAgICAgICAgICAgICAgICAgIChpbnQocHRbMF0gKyAz ICogc2VsZi5fcG9pbnRTaXplWzBdICsgeVRpY2tMZW5ndGgpLAorKysgICAgICAgICAgICAgICAg ICAgICAgICAgaW50KHB0WzFdIC0gMC41ICogaCkpCisrICAgICAgICAgICAgICAgICAgICAgKQor KyAgICAgICAgICAgICAgICAgZGMuRHJhd1RleHRMaXN0KGxhYmVscywgY29vcmRzKQorKyAKKytA QCAtMjc4NSw3ICsyNzg1LDcgQEAgZGVmIF9kcmF3UGxvdFRpdGxlKHNlbGYsIGRjLCBncmFwaGlj cywgbGhzVywgcmhzVywgdGl0bGVXSCk6CisrICAgICAgICAgICAgICsgKHNlbGYucGxvdGJveF9z aXplWzBdIC0gbGhzVyAtIHJoc1cpIC8gMi4gLSB0aXRsZVdIWzBdIC8gMi4sCisrICAgICAgICAg ICAgIHNlbGYucGxvdGJveF9vcmlnaW5bMV0gLSBzZWxmLnBsb3Rib3hfc2l6ZVsxXQorKyAgICAg ICAgICkKKystICAgICAgICBkYy5EcmF3VGV4dChncmFwaGljcy50aXRsZSwgdGl0bGVQb3NbMF0s IHRpdGxlUG9zWzFdKQorKysgICAgICAgIGRjLkRyYXdUZXh0KGdyYXBoaWNzLnRpdGxlLCBpbnQo dGl0bGVQb3NbMF0pLCBpbnQodGl0bGVQb3NbMV0pKQorKyAKKysgICAgIGRlZiBfZHJhd0F4ZXNM YWJlbHMoc2VsZiwgZGMsIGdyYXBoaWNzLCBsaHNXLCByaHNXLCBib3R0b21ILCB0b3BILAorKyAg ICAgICAgICAgICAgICAgICAgICAgICB4TGFiZWxXSCwgeUxhYmVsV0gpOgorK0BAIC0yODA2LDcg KzI4MDYsNyBAQCBkZWYgX2RyYXdBeGVzTGFiZWxzKHNlbGYsIGRjLCBncmFwaGljcywgbGhzVywg cmhzVywgYm90dG9tSCwgdG9wSCwKKysgICAgICAgICAgICAgKyAoc2VsZi5wbG90Ym94X3NpemVb MF0gLSBsaHNXIC0gcmhzVykgLyAyLiAtIHhMYWJlbFdIWzBdIC8gMi4sCisrICAgICAgICAgICAg IHNlbGYucGxvdGJveF9vcmlnaW5bMV0gLSB4TGFiZWxXSFsxXSAtIHlUaWNrTGVuZ3RoCisrICAg ICAgICAgKQorKy0gICAgICAgIGRjLkRyYXdUZXh0KGdyYXBoaWNzLnhMYWJlbCwgeExhYmVsUG9z WzBdLCB4TGFiZWxQb3NbMV0pCisrKyAgICAgICAgZGMuRHJhd1RleHQoZ3JhcGhpY3MueExhYmVs LCBpbnQoeExhYmVsUG9zWzBdKSwgaW50KHhMYWJlbFBvc1sxXSkpCisrICAgICAgICAgeUxhYmVs UG9zID0gKAorKyAgICAgICAgICAgICBzZWxmLnBsb3Rib3hfb3JpZ2luWzBdIC0gMyAqIHNlbGYu X3BvaW50U2l6ZVswXSArIHhUaWNrTGVuZ3RoLAorKyAgICAgICAgICAgICBzZWxmLnBsb3Rib3hf b3JpZ2luWzFdIC0gYm90dG9tSAorK0BAIC0yODE0LDcgKzI4MTQsNyBAQCBkZWYgX2RyYXdBeGVz TGFiZWxzKHNlbGYsIGRjLCBncmFwaGljcywgbGhzVywgcmhzVywgYm90dG9tSCwgdG9wSCwKKysg ICAgICAgICApCisrICAgICAgICAgaWYgZ3JhcGhpY3MueUxhYmVsOiAgIyBidWcgZml4IGZvciBM aW51eAorKyAgICAgICAgICAgICBkYy5EcmF3Um90YXRlZFRleHQoCisrLSAgICAgICAgICAgICAg ICBncmFwaGljcy55TGFiZWwsIHlMYWJlbFBvc1swXSwgeUxhYmVsUG9zWzFdLCA5MCkKKysrICAg ICAgICAgICAgICAgIGdyYXBoaWNzLnlMYWJlbCwgaW50KHlMYWJlbFBvc1swXSksIGludCh5TGFi ZWxQb3NbMV0pLCA5MCkKKysgCisrICAgICBAVGVtcFN0eWxlKCdwZW4nKQorKyAgICAgZGVmIF9k cmF3UGxvdEFyZWFMYWJlbHMoc2VsZiwgZGMsIGdyYXBoaWNzLCBsaHNXLCByaHNXLCB0aXRsZVdI LAorK0BAIC0yOTQyLDcgKzI5NDIsNyBAQCBkZWYgX2FkanVzdFNjcm9sbGJhcnMoc2VsZik6Cisr ICAgICAgICAgaWYgcG9zID49IDA6CisrICAgICAgICAgICAgIHBhZ2VzaXplID0gaW50KChyX2N1 cnJlbnRbMV0gLSByX2N1cnJlbnRbMF0pIC8gdW5pdCkKKysgCisrLSAgICAgICAgICAgIHNlbGYu c2JfaG9yLlNldFNjcm9sbGJhcihwb3MsIHBhZ2VzaXplLCBzYmZ1bGxyYW5nZSwgcGFnZXNpemUp CisrKyAgICAgICAgICAgIHNlbGYuc2JfaG9yLlNldFNjcm9sbGJhcihwb3MsIHBhZ2VzaXplLCBp bnQoc2JmdWxscmFuZ2UpLCBwYWdlc2l6ZSkKKysgICAgICAgICAgICAgc2VsZi5fc2JfeHVuaXQg PSB1bml0CisrICAgICAgICAgICAgIG5lZWRTY3JvbGxiYXJzID0gbmVlZFNjcm9sbGJhcnMgb3Ig KHBhZ2VzaXplICE9IHNiZnVsbHJhbmdlKQorKyAgICAgICAgIGVsc2U6CisrQEAgLTI5NjQsNyAr Mjk2NCw3IEBAIGRlZiBfYWRqdXN0U2Nyb2xsYmFycyhzZWxmKToKKysgICAgICAgICBpZiBwb3Mg Pj0gMDoKKysgICAgICAgICAgICAgcGFnZXNpemUgPSBpbnQoKHJfY3VycmVudFsxXSAtIHJfY3Vy cmVudFswXSkgLyB1bml0KQorKyAgICAgICAgICAgICBwb3MgPSAoc2JmdWxscmFuZ2UgLSAxIC0g cG9zIC0gcGFnZXNpemUpCisrLSAgICAgICAgICAgIHNlbGYuc2JfdmVydC5TZXRTY3JvbGxiYXIo cG9zLCBwYWdlc2l6ZSwgc2JmdWxscmFuZ2UsIHBhZ2VzaXplKQorKysgICAgICAgICAgICBzZWxm LnNiX3ZlcnQuU2V0U2Nyb2xsYmFyKGludChwb3MpLCBwYWdlc2l6ZSwgaW50KHNiZnVsbHJhbmdl KSwgcGFnZXNpemUpCisrICAgICAgICAgICAgIHNlbGYuX3NiX3l1bml0ID0gdW5pdAorKyAgICAg ICAgICAgICBuZWVkU2Nyb2xsYmFycyA9IG5lZWRTY3JvbGxiYXJzIG9yIChwYWdlc2l6ZSAhPSBz YmZ1bGxyYW5nZSkKKysgICAgICAgICBlbHNlOgorK2RpZmYgLS1naXQgYS93eC9saWIvcGxvdC9w b2x5b2JqZWN0cy5weSBiL3d4L2xpYi9wbG90L3BvbHlvYmplY3RzLnB5CisraW5kZXggMjZhNTRm OGY3Li43MjViMDE2NGUgMTAwNjQ0CisrLS0tIGEvd3gvbGliL3Bsb3QvcG9seW9iamVjdHMucHkK KysrKysgYi93eC9saWIvcGxvdC9wb2x5b2JqZWN0cy5weQorK0BAIC00MTcsNyArNDE3LDcgQEAg ZGVmIGRyYXcoc2VsZiwgZGMsIHByaW50ZXJTY2FsZSwgY29vcmQ9Tm9uZSk6CisrIAorKyAgICAg ICAgIGlmIG5vdCBpc2luc3RhbmNlKGNvbG91ciwgd3guQ29sb3VyKToKKysgICAgICAgICAgICAg Y29sb3VyID0gd3guQ29sb3VyKGNvbG91cikKKystICAgICAgICBwZW4gPSB3eC5QZW4oY29sb3Vy LCB3aWR0aCwgc3R5bGUpCisrKyAgICAgICAgcGVuID0gd3guUGVuKGNvbG91ciwgaW50KHdpZHRo KSwgc3R5bGUpCisrICAgICAgICAgcGVuLlNldENhcCh3eC5DQVBfQlVUVCkKKysgICAgICAgICBk Yy5TZXRQZW4ocGVuKQorKyAgICAgICAgIGlmIGNvb3JkIGlzIE5vbmU6CisrQEAgLTUxOCw3ICs1 MTgsNyBAQCBkZWYgZHJhdyhzZWxmLCBkYywgcHJpbnRlclNjYWxlLCBjb29yZD1Ob25lKToKKysg ICAgICAgICBzdHlsZSA9IHNlbGYuYXR0cmlidXRlc1snc3R5bGUnXQorKyAgICAgICAgIGlmIG5v dCBpc2luc3RhbmNlKGNvbG91ciwgd3guQ29sb3VyKToKKysgICAgICAgICAgICAgY29sb3VyID0g d3guQ29sb3VyKGNvbG91cikKKystICAgICAgICBwZW4gPSB3eC5QZW4oY29sb3VyLCB3aWR0aCwg c3R5bGUpCisrKyAgICAgICAgcGVuID0gd3guUGVuKGNvbG91ciwgaW50KHdpZHRoKSwgc3R5bGUp CisrICAgICAgICAgcGVuLlNldENhcCh3eC5DQVBfUk9VTkQpCisrICAgICAgICAgZGMuU2V0UGVu KHBlbikKKysgICAgICAgICBpZiBjb29yZCBpcyBOb25lOgorK0BAIC01OTAsNyArNTkwLDcgQEAg ZGVmIGRyYXcoc2VsZiwgZGMsIHByaW50ZXJTY2FsZSwgY29vcmQ9Tm9uZSk6CisrICAgICAgICAg aWYgZmlsbGNvbG91ciBhbmQgbm90IGlzaW5zdGFuY2UoZmlsbGNvbG91ciwgd3guQ29sb3VyKToK KysgICAgICAgICAgICAgZmlsbGNvbG91ciA9IHd4LkNvbG91cihmaWxsY29sb3VyKQorKyAKKyst ICAgICAgICBkYy5TZXRQZW4od3guUGVuKGNvbG91ciwgd2lkdGgpKQorKysgICAgICAgIGRjLlNl dFBlbih3eC5QZW4oY29sb3VyLCBpbnQod2lkdGgpKSkKKysgICAgICAgICBpZiBmaWxsY29sb3Vy OgorKyAgICAgICAgICAgICBkYy5TZXRCcnVzaCh3eC5CcnVzaChmaWxsY29sb3VyLCBmaWxsc3R5 bGUpKQorKyAgICAgICAgIGVsc2U6CisrQEAgLTYxOCw2ICs2MTgsNyBAQCBkZWYgX2NpcmNsZShz ZWxmLCBkYywgY29vcmRzLCBzaXplPTEpOgorKyAgICAgICAgIGRjLkRyYXdFbGxpcHNlTGlzdChy ZWN0LmFzdHlwZShucC5pbnQzMikpCisrIAorKyAgICAgZGVmIF9kb3Qoc2VsZiwgZGMsIGNvb3Jk cywgc2l6ZT0xKToKKysrICAgICAgICBjb29yZHMgPSBbKGludChjWzBdKSwgaW50KGNbMV0pKSBm b3IgYyBpbiBjb29yZHNdCisrICAgICAgICAgZGMuRHJhd1BvaW50TGlzdChjb29yZHMpCisrIAor KyAgICAgZGVmIF9zcXVhcmUoc2VsZiwgZGMsIGNvb3Jkcywgc2l6ZT0xKToKKytAQCAtNjk5LDcg KzcwMCw3IEBAIGRlZiBzZXRfcGVuX2FuZF9icnVzaChzZWxmLCBkYywgcHJpbnRlclNjYWxlKToK KysgCisrICAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UocGVuY29sb3VyLCB3eC5Db2xvdXIpOgor KyAgICAgICAgICAgICBwZW5jb2xvdXIgPSB3eC5Db2xvdXIocGVuY29sb3VyKQorKy0gICAgICAg IHBlbiA9IHd4LlBlbihwZW5jb2xvdXIsIHBlbndpZHRoLCBwZW5zdHlsZSkKKysrICAgICAgICBw ZW4gPSB3eC5QZW4ocGVuY29sb3VyLCBpbnQocGVud2lkdGgpLCBwZW5zdHlsZSkKKysgICAgICAg ICBwZW4uU2V0Q2FwKHd4LkNBUF9CVVRUKQorKyAKKysgICAgICAgICBpZiBub3QgaXNpbnN0YW5j ZShmaWxsY29sb3VyLCB3eC5Db2xvdXIpOgorK0BAIC03OTAsNiArNzkxLDcgQEAgZGVmIGRyYXco c2VsZiwgZGMsIHByaW50ZXJTY2FsZSwgY29vcmQ9Tm9uZSk6CisrICAgICAgICAgICAgICAgICBy YWlzZSBUeXBlRXJyb3IoZXJyX3N0ci5mb3JtYXQodHlwZShiYXJ3aWR0aCkpKQorKyAKKysgICAg ICAgICAgICAgcmVjdHMgPSBbc2VsZi5jYWxjX3JlY3QoeCwgeSwgdykgZm9yIHgsIHksIHcgaW4g cHRzXQorKysgICAgICAgICAgICByZWN0cyA9IFsoaW50KHJbMF0pLCBpbnQoclsxXSksIGludChy WzJdKSwgaW50KHJbM10pKSBmb3IgciBpbiByZWN0c10KKysgICAgICAgICAgICAgZGMuRHJhd1Jl Y3RhbmdsZUxpc3QocmVjdHMpCisrICAgICAgICAgZWxzZToKKysgICAgICAgICAgICAgZGMuRHJh d0xpbmVzKGNvb3JkKSAgIyBkcmF3IGxlZ2VuZCBsaW5lCisrQEAgLTg1OCw2ICs4NjAsOCBAQCBk ZWYgZHJhdyhzZWxmLCBkYywgcHJpbnRlclNjYWxlLCBjb29yZD1Ob25lKToKKysgICAgICAgICAg ICAgcmVjdHMgPSBbc2VsZi5jYWxjX3JlY3QoeSwgbG93LCBoaWdoKQorKyAgICAgICAgICAgICAg ICAgICAgICBmb3IgeSwgKGxvdywgaGlnaCkKKysgICAgICAgICAgICAgICAgICAgICAgaW4gemlw KHNlbGYuaGlzdCwgc2VsZi5iaW5zKV0KKysrICAgICAgICAgICAgcmVjdHMgPSBbKGludChyWzBd KSwgaW50KHJbMV0pLCBpbnQoclsyXSksIGludChyWzNdKSkKKysrICAgICAgICAgICAgICAgICAg ICAgZm9yIHIgaW4gcmVjdHNdCisrIAorKyAgICAgICAgICAgICBkYy5EcmF3UmVjdGFuZ2xlTGlz dChyZWN0cykKKysgICAgICAgICBlbHNlOgorK0BAIC0xMTE0LDEwICsxMTE4LDEwIEBAIGRlZiBf ZHJhd19pcXJfYm94KHNlbGYsIGRjLCBwcmludGVyU2NhbGUpOgorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHNlbGYuY3VycmVudFNoaWZ0KQorKyAKKysgICAgICAgICAj IHJlY3RhbmdsZXMgYXJlIGRyYXduIChsZWZ0LCB0b3AsIHdpZHRoLCBoZWlnaHQpIHNvIGFkanVz dAorKy0gICAgICAgIGlxcl9ib3ggPSBbaXFyX2JveFswXVswXSwgICAgICAgICAgICAgICAgICAg IyBYIChsZWZ0KQorKy0gICAgICAgICAgICAgICAgICAgaXFyX2JveFswXVsxXSwgICAgICAgICAg ICAgICAgICAgIyBZICh0b3ApCisrLSAgICAgICAgICAgICAgICAgICBpcXJfYm94WzFdWzBdIC0g aXFyX2JveFswXVswXSwgICAjIFdpZHRoCisrLSAgICAgICAgICAgICAgICAgICBpcXJfYm94WzFd WzFdIC0gaXFyX2JveFswXVsxXV0gICAjIEhlaWdodAorKysgICAgICAgIGlxcl9ib3ggPSBbaW50 KGlxcl9ib3hbMF1bMF0pLCAgICAgICAgICAgICAgICAgICAjIFggKGxlZnQpCisrKyAgICAgICAg ICAgICAgICAgICBpbnQoaXFyX2JveFswXVsxXSksICAgICAgICAgICAgICAgICAgICMgWSAodG9w KQorKysgICAgICAgICAgICAgICAgICAgaW50KGlxcl9ib3hbMV1bMF0gLSBpcXJfYm94WzBdWzBd KSwgICAjIFdpZHRoCisrKyAgICAgICAgICAgICAgICAgICBpbnQoaXFyX2JveFsxXVsxXSAtIGlx cl9ib3hbMF1bMV0pXSAgICMgSGVpZ2h0CisrIAorKyAgICAgICAgIGJveF9wZW4gPSB3eC5QZW4o d3guQkxBQ0ssIDMsIHd4LlBFTlNUWUxFX1NPTElEKQorKyAgICAgICAgIGJveF9icnVzaCA9IHd4 LkJydXNoKHd4LkdSRUVOLCB3eC5CUlVTSFNUWUxFX1NPTElEKQorK0BAIC0xNTAzLDcgKzE1MDcs NyBAQCBkZWYgT25QcmludFBhZ2Uoc2VsZiwgcGFnZSk6CisrICAgICAgICAgc2VsZi5ncmFwaC5f c2V0U2l6ZShwbG90QXJlYVcsIHBsb3RBcmVhSCkKKysgCisrICAgICAgICAgIyBTZXQgb2Zmc2V0 IGFuZCBzY2FsZQorKy0gICAgICAgIGRjLlNldERldmljZU9yaWdpbihwaXhMZWZ0LCBwaXhUb3Ap CisrKyAgICAgICAgZGMuU2V0RGV2aWNlT3JpZ2luKGludChwaXhMZWZ0KSwgaW50KHBpeFRvcCkp CisrIAorKyAgICAgICAgICMgVGhpY2tlbiB1cCBwZW5zIGFuZCBpbmNyZWFzZSBtYXJrZXIgc2l6 ZSBmb3IgcHJpbnRpbmcKKysgICAgICAgICByYXRpb1cgPSBmbG9hdChwbG90QXJlYVcpIC8gY2xp ZW50RGNTaXplWzBdCisrZGlmZiAtLWdpdCBhL3d4L2xpYi9wb3B1cGN0bC5weSBiL3d4L2xpYi9w b3B1cGN0bC5weQorK2luZGV4IDg4M2JlNWFlNS4uMjM2NTAxZjZkIDEwMDY0NAorKy0tLSBhL3d4 L2xpYi9wb3B1cGN0bC5weQorKysrKyBiL3d4L2xpYi9wb3B1cGN0bC5weQorK0BAIC0xMjQsNyAr MTI0LDcgQEAgZGVmIERpc3BsYXkoc2VsZik6CisrICAgICAgICAgc2VsZlNpemUgPSBzZWxmLkdl dFNpemUoKQorKyAgICAgICAgIHRjU2l6ZSA9IHNlbGYuY3RybC5HZXRTaXplKCkKKysgCisrLSAg ICAgICAgcG9zLnggLT0gKHNlbGZTaXplLndpZHRoIC0gdGNTaXplLndpZHRoKSAvIDIKKysrICAg ICAgICBwb3MueCAtPSAoc2VsZlNpemUud2lkdGggLSB0Y1NpemUud2lkdGgpIC8vIDIKKysgICAg ICAgICBpZiBwb3MueCArIHNlbGZTaXplLndpZHRoID4gZFNpemUud2lkdGg6CisrICAgICAgICAg ICAgIHBvcy54ID0gZFNpemUud2lkdGggLSBzZWxmU2l6ZS53aWR0aAorKyAgICAgICAgIGlmIHBv cy54IDwgMDoKKytkaWZmIC0tZ2l0IGEvd3gvbGliL3Njcm9sbGVkcGFuZWwucHkgYi93eC9saWIv c2Nyb2xsZWRwYW5lbC5weQorK2luZGV4IGU0YzQ4MmFmOS4uMWY3ODNlYTk3IDEwMDY0NAorKy0t LSBhL3d4L2xpYi9zY3JvbGxlZHBhbmVsLnB5CisrKysrIGIvd3gvbGliL3Njcm9sbGVkcGFuZWwu cHkKKytAQCAtMjIyLDQgKzIyMiw0IEBAIGRlZiBTY3JvbGxDaGlsZEludG9WaWV3KHNlbGYsIGNo aWxkKToKKysgICAgICAgICAjIGlmIHdlIG5lZWQgdG8gYWRqdXN0CisrICAgICAgICAgaWYgbmV3 X3ZzX3ggIT0gLTEgb3IgbmV3X3ZzX3kgIT0gLTE6CisrICAgICAgICAgICAgICNwcmludCgiJXM6 ICglcywgJXMpIiAlIChzZWxmLkdldE5hbWUoKSwgbmV3X3ZzX3gsIG5ld192c195KSkKKystICAg ICAgICAgICAgc2VsZi5TY3JvbGwobmV3X3ZzX3gsIG5ld192c195KQorKysgICAgICAgICAgICBz ZWxmLlNjcm9sbChpbnQobmV3X3ZzX3gpLCBpbnQobmV3X3ZzX3kpKQorK2RpZmYgLS1naXQgYS93 eC9saWIvdGhyb2JiZXIucHkgYi93eC9saWIvdGhyb2JiZXIucHkKKytpbmRleCA5OTU0ZDZiMjcu LmVlOGM1MTIwOSAxMDA2NDQKKystLS0gYS93eC9saWIvdGhyb2JiZXIucHkKKysrKysgYi93eC9s aWIvdGhyb2JiZXIucHkKKytAQCAtMjAwLDExICsyMDAsMTEgQEAgZGVmIERyYXcoc2VsZiwgZGMp OgorKyAgICAgICAgICIiIgorKyAgICAgICAgIGRjLkRyYXdCaXRtYXAoc2VsZi5zdWJtYXBzW3Nl bGYuc2VxdWVuY2Vbc2VsZi5jdXJyZW50XV0sIDAsIDAsIFRydWUpCisrICAgICAgICAgaWYgc2Vs Zi5vdmVybGF5IGFuZCBzZWxmLnNob3dPdmVybGF5OgorKy0gICAgICAgICAgICBkYy5EcmF3Qml0 bWFwKHNlbGYub3ZlcmxheSwgc2VsZi5vdmVybGF5WCwgc2VsZi5vdmVybGF5WSwgVHJ1ZSkKKysr ICAgICAgICAgICAgZGMuRHJhd0JpdG1hcChzZWxmLm92ZXJsYXksIGludChzZWxmLm92ZXJsYXlY KSwgaW50KHNlbGYub3ZlcmxheVkpLCBUcnVlKQorKyAgICAgICAgIGlmIHNlbGYubGFiZWwgYW5k IHNlbGYuc2hvd0xhYmVsOgorKy0gICAgICAgICAgICBkYy5EcmF3VGV4dChzZWxmLmxhYmVsLCBz ZWxmLmxhYmVsWCwgc2VsZi5sYWJlbFkpCisrKyAgICAgICAgICAgIGRjLkRyYXdUZXh0KHNlbGYu bGFiZWwsIGludChzZWxmLmxhYmVsWCksIGludChzZWxmLmxhYmVsWSkpCisrICAgICAgICAgICAg IGRjLlNldFRleHRGb3JlZ3JvdW5kKHd4LldISVRFKQorKy0gICAgICAgICAgICBkYy5EcmF3VGV4 dChzZWxmLmxhYmVsLCBzZWxmLmxhYmVsWC0xLCBzZWxmLmxhYmVsWS0xKQorKysgICAgICAgICAg ICBkYy5EcmF3VGV4dChzZWxmLmxhYmVsLCBpbnQoc2VsZi5sYWJlbFgtMSksIGludChzZWxmLmxh YmVsWS0xKSkKKysgCisrIAorKyAgICAgZGVmIE9uUGFpbnQoc2VsZiwgZXZlbnQpOgorK2RpZmYg LS1naXQgYS93eC9saWIvdGlja2VyLnB5IGIvd3gvbGliL3RpY2tlci5weQorK2luZGV4IDA0YWJm MGQ0NC4uNGU2ODRiNGNkIDEwMDY0NAorKy0tLSBhL3d4L2xpYi90aWNrZXIucHkKKysrKysgYi93 eC9saWIvdGlja2VyLnB5CisrQEAgLTg2LDcgKzg2LDcgQEAgZGVmIFN0b3Aoc2VsZik6CisrICAg ICBkZWYgU3RhcnQoc2VsZik6CisrICAgICAgICAgIiIiU3RhcnRzIHRoZSB0ZXh0IG1vdmluZyIi IgorKyAgICAgICAgIGlmIG5vdCBzZWxmLnRpbWVyLklzUnVubmluZygpOgorKy0gICAgICAgICAg ICBzZWxmLnRpbWVyLlN0YXJ0KDEwMDAgLyBzZWxmLl9mcHMpCisrKyAgICAgICAgICAgIHNlbGYu dGltZXIuU3RhcnQoMTAwMCAvLyBzZWxmLl9mcHMpCisrIAorKyAKKysgICAgIGRlZiBJc1RpY2tp bmcoc2VsZik6CisrQEAgLTIwOCw3ICsyMDgsNyBAQCBkZWYgRHJhd1RleHQoc2VsZiwgZGMpOgor KyAgICAgICAgICAgICBvZmZ4ID0gc2VsZi5fb2Zmc2V0IC0gc2VsZi5fZXh0ZW50WzBdCisrICAg ICAgICAgZWxzZToKKysgICAgICAgICAgICAgb2ZmeCA9IHNlbGYuR2V0U2l6ZSgpWzBdIC0gc2Vs Zi5fb2Zmc2V0CisrLSAgICAgICAgb2ZmeSA9IChzZWxmLkdldFNpemUoKVsxXSAtIHNlbGYuX2V4 dGVudFsxXSkgLyAyICNjZW50ZXJlZCB2ZXJ0aWNhbGx5CisrKyAgICAgICAgb2ZmeSA9IChzZWxm LkdldFNpemUoKVsxXSAtIHNlbGYuX2V4dGVudFsxXSkgLy8gMiAjY2VudGVyZWQgdmVydGljYWxs eQorKyAgICAgICAgIGRjLkRyYXdUZXh0KHNlbGYuX3RleHQsIG9mZngsIG9mZnkpCisrIAorKyAK KwpkaWZmIC0tZ2l0IGEvc3JjcGtncy93eFB5dGhvbjQvcGF0Y2hlcy8wMDAzLVB5dGhvbi0zLjEw LUFHVy1GbGF0Tm90ZWJvb2sucGF0Y2ggYi9zcmNwa2dzL3d4UHl0aG9uNC9wYXRjaGVzLzAwMDMt UHl0aG9uLTMuMTAtQUdXLUZsYXROb3RlYm9vay5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAwMDAuLjg4YzNjYTE4OTY0NwotLS0gL2Rldi9udWxsCisrKyBiL3NyY3Br Z3Mvd3hQeXRob240L3BhdGNoZXMvMDAwMy1QeXRob24tMy4xMC1BR1ctRmxhdE5vdGVib29rLnBh dGNoCkBAIC0wLDAgKzEsNTcgQEAKK0Zyb20gMWQ1ZmQ3MmRmZjYzZDYyZGQxOWI3N2U0ODlkNDEx NTI0NWQ0ZDQ1MyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFNjb3R0IFRhbGJlcnQg PHN3dEB0ZWNoaWUubmV0PgorRGF0ZTogRGVjIDI4IDIwMjEgMDI6NTg6MTIgKzAwMDAKK1N1Ympl Y3Q6IEZpeCBtb3JlIFB5dGhvbiAzLjEwIGlzc3VlcyB3aXRoIEFHVyBGbGF0Tm90ZWJvb2sgKCMy MDM1NzkwKQorCisKKy0tLQorCitkaWZmIC0tZ2l0IGEvYWEzZGNhMGU0MGJkMDcwMWU4MmNlNDAy OTdhOTgyYjViODQ4NDRkYy5wYXRjaCBiL2FhM2RjYTBlNDBiZDA3MDFlODJjZTQwMjk3YTk4MmI1 Yjg0ODQ0ZGMucGF0Y2gKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwLi5lOGI3 NGFjCistLS0gL2Rldi9udWxsCisrKysgYi9hYTNkY2EwZTQwYmQwNzAxZTgyY2U0MDI5N2E5ODJi NWI4NDg0NGRjLnBhdGNoCitAQCAtMCwwICsxLDQzIEBACisrRnJvbSBhYTNkY2EwZTQwYmQwNzAx ZTgyY2U0MDI5N2E5ODJiNWI4NDg0NGRjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorK0Zyb206 IFNjb3R0IFRhbGJlcnQgPHN3dEB0ZWNoaWUubmV0PgorK0RhdGU6IE1vbiwgMjcgRGVjIDIwMjEg MTk6NDg6NTUgLTA1MDAKKytTdWJqZWN0OiBbUEFUQ0hdIEZpeCBhZGRpdGlvbmFsIFB5dGhvbiAz LjEwIGlzc3VlcyB3aXRoIEFHVyBGbGF0Tm90ZWJvb2sKKysKKystLS0KKysgd3gvbGliL2Fndy9m bGF0bm90ZWJvb2sucHkgfCAxNCArKysrKysrLS0tLS0tLQorKyAxIGZpbGUgY2hhbmdlZCwgNyBp bnNlcnRpb25zKCspLCA3IGRlbGV0aW9ucygtKQorKworK2RpZmYgLS1naXQgYS93eC9saWIvYWd3 L2ZsYXRub3RlYm9vay5weSBiL3d4L2xpYi9hZ3cvZmxhdG5vdGVib29rLnB5CisraW5kZXggZDMz ZjcxZDUxLi42MWJjNGVmYjMgMTAwNjQ0CisrLS0tIGEvd3gvbGliL2Fndy9mbGF0bm90ZWJvb2su cHkKKysrKysgYi93eC9saWIvYWd3L2ZsYXRub3RlYm9vay5weQorK0BAIC05MjUsMTQgKzkyNSwx NCBAQCBkZWYgRHJhd0J1dHRvbihkYywgcmVjdCwgZm9jdXMsIHVwcGVyVGFicyk6CisrIAorKyAg ICAgaWYgZm9jdXM6CisrICAgICAgICAgaWYgdXBwZXJUYWJzOgorKy0gICAgICAgICAgICBsZWZ0 UHQgPSB3eC5Qb2ludChyZWN0LngsIHJlY3QueSArIChyZWN0LmhlaWdodCAvIDEwKSo4KQorKy0g ICAgICAgICAgICByaWdodFB0ID0gd3guUG9pbnQocmVjdC54ICsgcmVjdC53aWR0aCAtIDIsIHJl Y3QueSArIChyZWN0LmhlaWdodCAvIDEwKSo4KQorKysgICAgICAgICAgICBsZWZ0UHQgPSB3eC5Q b2ludChyZWN0LngsIGludChyZWN0LnkgKyAocmVjdC5oZWlnaHQgLyAxMCkqOCkpCisrKyAgICAg ICAgICAgIHJpZ2h0UHQgPSB3eC5Qb2ludChyZWN0LnggKyByZWN0LndpZHRoIC0gMiwgaW50KHJl Y3QueSArIChyZWN0LmhlaWdodCAvIDEwKSo4KSkKKysgICAgICAgICBlbHNlOgorKy0gICAgICAg ICAgICBsZWZ0UHQgPSB3eC5Qb2ludChyZWN0LngsIHJlY3QueSArIChyZWN0LmhlaWdodCAvIDEw KSo1KQorKy0gICAgICAgICAgICByaWdodFB0ID0gd3guUG9pbnQocmVjdC54ICsgcmVjdC53aWR0 aCAtIDIsIHJlY3QueSArIChyZWN0LmhlaWdodCAvIDEwKSo1KQorKysgICAgICAgICAgICBsZWZ0 UHQgPSB3eC5Qb2ludChyZWN0LngsIGludChyZWN0LnkgKyAocmVjdC5oZWlnaHQgLyAxMCkqNSkp CisrKyAgICAgICAgICAgIHJpZ2h0UHQgPSB3eC5Qb2ludChyZWN0LnggKyByZWN0LndpZHRoIC0g MiwgaW50KHJlY3QueSArIChyZWN0LmhlaWdodCAvIDEwKSo1KSkKKysgICAgIGVsc2U6CisrLSAg ICAgICAgbGVmdFB0ID0gd3guUG9pbnQocmVjdC54LCByZWN0LnkgKyAocmVjdC5oZWlnaHQgLyAy KSkKKystICAgICAgICByaWdodFB0ID0gd3guUG9pbnQocmVjdC54ICsgcmVjdC53aWR0aCAtIDIs IHJlY3QueSArIChyZWN0LmhlaWdodCAvIDIpKQorKysgICAgICAgIGxlZnRQdCA9IHd4LlBvaW50 KHJlY3QueCwgaW50KHJlY3QueSArIChyZWN0LmhlaWdodCAvIDIpKSkKKysrICAgICAgICByaWdo dFB0ID0gd3guUG9pbnQocmVjdC54ICsgcmVjdC53aWR0aCAtIDIsIGludChyZWN0LnkgKyAocmVj dC5oZWlnaHQgLyAyKSkpCisrIAorKyAgICAgIyBEZWZpbmUgdGhlIHRvcCByZWdpb24KKysgICAg IHRvcCA9IHd4LlJlY3QocmVjdC5HZXRUb3BMZWZ0KCksIHJpZ2h0UHQpCisrQEAgLTI3NjYsNyAr Mjc2Niw3IEBAIGRlZiBEcmF3VGFiKHNlbGYsIHBhZ2VDb250YWluZXIsIGRjLCBwb3N4LCB0YWJJ ZHgsIHRhYldpZHRoLCB0YWJIZWlnaHQsIGJ0blN0YXR1CisrICAgICAgICAgaWYgcGFnZVRleHRD b2xvdXIgaXMgbm90IE5vbmU6CisrICAgICAgICAgICAgIGRjLlNldFRleHRGb3JlZ3JvdW5kKHBh Z2VUZXh0Q29sb3VyKQorKyAKKystICAgICAgICBkYy5EcmF3VGV4dChwYy5HZXRQYWdlVGV4dCh0 YWJJZHgpLCBwb3N4ICsgdGV4dE9mZnNldCwgaW1hZ2VZQ29vcmQpCisrKyAgICAgICAgZGMuRHJh d1RleHQocGMuR2V0UGFnZVRleHQodGFiSWR4KSwgaW50KHBvc3ggKyB0ZXh0T2Zmc2V0KSwgaW1h Z2VZQ29vcmQpCisrIAorKyAgICAgICAgICMgZHJhdyAneCcgb24gdGFiIChpZiBlbmFibGVkKQor KyAgICAgICAgIGlmIHBjLkhhc0FHV0ZsYWcoRk5CX1hfT05fVEFCKSBhbmQgdGFiSWR4ID09IHBj LkdldFNlbGVjdGlvbigpOgpkaWZmIC0tZ2l0IGEvc3JjcGtncy93eFB5dGhvbjQvcGF0Y2hlcy9y ZXN0b3JlLWdpbC1wc2V1ZG9kYy5wYXRjaCBiL3NyY3BrZ3Mvd3hQeXRob240L3BhdGNoZXMvcmVz dG9yZS1naWwtcHNldWRvZGMucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAwMDAwLi42ZjIxZWNiN2E3MTgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3d4UHl0aG9u NC9wYXRjaGVzL3Jlc3RvcmUtZ2lsLXBzZXVkb2RjLnBhdGNoCkBAIC0wLDAgKzEsNTIgQEAKK0Jh Y2twb3J0IGh0dHBzOi8vZ2l0aHViLmNvbS93eFdpZGdldHMvUGhvZW5peC9wdWxsLzE4NDkKK1Jl Z2FyZGluZyBzZWdmYXVsdCBhcyBpbiBodHRwczovL2dpdGh1Yi5jb20vT1NHZW8vZ3Jhc3MvaXNz dWVzLzExMjMKKworRnJvbSA1Y2FjZTQ3YWFlY2UzY2M0ZjJlNmVhOTdkN2ZkNWJiOGVkMzE2YWM5 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogUm9iaW4gRHVubiA8cm9iaW5AYWxsZHVu bi5jb20+CitEYXRlOiBXZWQsIDE4IE5vdiAyMDIwIDEwOjUyOjUzIC0wODAwCitTdWJqZWN0OiBb UEFUQ0hdIFJlc3RvcmUgR0lMIGFjcXVpc2l0aW9uIGluIHd4UHNldWRvREM6OkZpbmRPYmplY3Rz KgorCistLS0KKyBzcmMvcHNldWRvZGMuY3BwIHwgOCArKystLS0tLQorIDEgZmlsZSBjaGFuZ2Vk LCAzIGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9zcmMvcHNl dWRvZGMuY3BwIGIvc3JjL3BzZXVkb2RjLmNwcAoraW5kZXggNTg5MGVkN2UyLi5lZDRiY2QwNmEg MTAwNjQ0CistLS0gYS9zcmMvcHNldWRvZGMuY3BwCisrKysgYi9zcmMvcHNldWRvZGMuY3BwCitA QCAtNDgzLDcgKzQ4Myw3IEBAIGJvb2wgd3hQc2V1ZG9EQzo6R2V0SWRHcmV5ZWRPdXQoaW50IGlk KQorIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBQeU9iamVjdCAqd3hQc2V1ZG9EQzo6RmluZE9i amVjdHNCeUJCb3god3hDb29yZCB4LCB3eENvb3JkIHkpCisgeworLSAgICAvL3d4UHlCbG9ja190 IGJsb2NrZWQgPSB3eFB5QmVnaW5CbG9ja1RocmVhZHMoKTsKKysgICAgd3hQeVRocmVhZEJsb2Nr ZXIgYmxvY2tlcjsKKyAgICAgcGRjT2JqZWN0TGlzdDo6Y29tcGF0aWJpbGl0eV9pdGVyYXRvciBw dCA9IG1fb2JqZWN0bGlzdC5HZXRGaXJzdCgpOworICAgICBwZGNPYmplY3QgKm9iajsKKyAgICAg UHlPYmplY3QqIHB5TGlzdCA9IE5VTEw7CitAQCAtNTAxLDcgKzUwMSw2IEBAIFB5T2JqZWN0ICp3 eFBzZXVkb0RDOjpGaW5kT2JqZWN0c0J5QkJveCh3eENvb3JkIHgsIHd4Q29vcmQgeSkKKyAgICAg ICAgIH0KKyAgICAgICAgIHB0ID0gcHQtPkdldE5leHQoKTsKKyAgICAgfQorLSAgICAvL3d4UHlF bmRCbG9ja1RocmVhZHMoYmxvY2tlZCk7CisgICAgIHJldHVybiBweUxpc3Q7CisgfQorIAorQEAg LTUxMSw3ICs1MTAsNyBAQCBQeU9iamVjdCAqd3hQc2V1ZG9EQzo6RmluZE9iamVjdHNCeUJCb3go d3hDb29yZCB4LCB3eENvb3JkIHkpCisgUHlPYmplY3QgKnd4UHNldWRvREM6OkZpbmRPYmplY3Rz KHd4Q29vcmQgeCwgd3hDb29yZCB5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB3eENvb3JkIHJhZGl1cywgY29uc3Qgd3hDb2xvciYgYmcpCisgeworLSAgICAvL3d4UHlCbG9j a190IGJsb2NrZWQgPSB3eFB5QmVnaW5CbG9ja1RocmVhZHMoKTsKKysgICAgd3hQeVRocmVhZEJs b2NrZXIgYmxvY2tlcjsKKyAgICAgcGRjT2JqZWN0TGlzdDo6Y29tcGF0aWJpbGl0eV9pdGVyYXRv ciBwdCA9IG1fb2JqZWN0bGlzdC5HZXRGaXJzdCgpOworICAgICBwZGNPYmplY3QgKm9iajsKKyAg ICAgUHlPYmplY3QqIHB5TGlzdCA9IE5VTEw7CitAQCAtNjExLDggKzYxMCw3IEBAIFB5T2JqZWN0 ICp3eFBzZXVkb0RDOjpGaW5kT2JqZWN0cyh3eENvb3JkIHgsIHd4Q29vcmQgeSwKKyAgICAgICAg IG1hc2tkYy5TZWxlY3RPYmplY3Qod3hOdWxsQml0bWFwKTsKKyAgICAgICAgIG1lbWRjLlNlbGVj dE9iamVjdCh3eE51bGxCaXRtYXApOworICAgICB9CistICAgIC8vd3hQeUVuZEJsb2NrVGhyZWFk cyhibG9ja2VkKTsKKy0gICAgcmV0dXJuIHB5TGlzdDsKKysgICAgIHJldHVybiBweUxpc3Q7Cisg fQorIAorIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvd3hQeXRo b240L3RlbXBsYXRlIGIvc3JjcGtncy93eFB5dGhvbjQvdGVtcGxhdGUKaW5kZXggNTU0MTc0MTA1 YTM2Li5hZmVhMWI1NWJmOTAgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mvd3hQeXRob240L3RlbXBsYXRl CisrKyBiL3NyY3BrZ3Mvd3hQeXRob240L3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1w bGF0ZSBmaWxlIGZvciAnd3hQeXRob240JwogcGtnbmFtZT13eFB5dGhvbjQKIHZlcnNpb249NC4w LjcKLXJldmlzaW9uPTQKK3JldmlzaW9uPTUKIHdya3NyYz0id3hQeXRob24tJHt2ZXJzaW9ufSIK IGJ1aWxkX3N0eWxlPXB5dGhvbjMtbW9kdWxlCiBtYWtlX2J1aWxkX2FyZ3M9Ii0tc2tpcC1idWls ZCIKQEAgLTEwLDYgKzEwLDcgQEAgaG9zdG1ha2VkZXBlbmRzPSJwa2ctY29uZmlnIHB5dGhvbjMt c2V0dXB0b29scyBweXRob24zLXBhdGhsaWIyIgogbWFrZWRlcGVuZHM9InB5dGhvbjMtZGV2ZWwg d3hXaWRnZXRzLWd0azMtZGV2ZWwgU0RMMi1kZXZlbCB3ZWJraXQyZ3RrLWRldmVsCiAgZ3N0LXBs dWdpbnMtYmFzZTEtZGV2ZWwiCiBkZXBlbmRzPSJweXRob24zIHB5dGhvbjMtc2l4IHB5dGhvbjMt bnVtcHkgcHl0aG9uMy1QaWxsb3ciCitjaGVja2RlcGVuZHM9InB5dGhvbjMtc2l4IHB5dGhvbjMt bnVtcHkgcHl0aG9uMy1QaWxsb3ciCiBzaG9ydF9kZXNjPSJXeFdpZGdldHMgR1VJIHRvb2xraXQg bGlicmFyeSAoUHl0aG9uMyBCaW5kaW5ncykiCiBtYWludGFpbmVyPSJKYXNwZXIgQ2hhbiA8amFz cGVyY2hhbjUxNUBnbWFpbC5jb20+IgogbGljZW5zZT0iY3VzdG9tOnd4V2luZG93cyIKCkZyb20g OGZiY2FkOGI1MmMxN2I3NDEzMjRmNmU0Mjg3Zjk3MTAwYTEzYWVmNiBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogQXJqYW4gTW9zc2VsIDxhcmphbm1vc3NlbEBnbWFpbC5jb20+CkRhdGU6 IE1vbiwgMTQgRmViIDIwMjIgMjE6NTY6MDMgKzAxMDAKU3ViamVjdDogW1BBVENIIDA5LzE3XSBn cmFzczogdXBkYXRlIHRvIDcuOC43UkMxOyByZWJ1aWxkIGFnYWluc3QgbGliZ2RhbCBhbmQKIHBy b2oKClZlcnNpb24gNy44LjdSQzEgaW5jbHVkZXMgYSB3b3JrYXJvdW5kIGZvciBhIHd4UHl0aG9u IGlzc3VlCmh0dHBzOi8vZ2l0aHViLmNvbS9PU0dlby9ncmFzcy9pc3N1ZXMvMTk3MSNpc3N1ZWNv bW1lbnQtOTkzNjIyNjEzCi0tLQogY29tbW9uL3NobGlicyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHwgICA3ICsrCiBzcmNwa2dzL2dyYXNzL3BhdGNoZXMvbXVzbC1idWlsZC1maXgucGF0 Y2ggfCAgMTMgKysrCiBzcmNwa2dzL2dyYXNzL3RlbXBsYXRlICAgICAgICAgICAgICAgICAgICAg fCAxMjggKysrKysrKysrKysrKysrKystLS0tCiAzIGZpbGVzIGNoYW5nZWQsIDEyNyBpbnNlcnRp b25zKCspLCAyMSBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2dyYXNz L3BhdGNoZXMvbXVzbC1idWlsZC1maXgucGF0Y2gKCmRpZmYgLS1naXQgYS9jb21tb24vc2hsaWJz IGIvY29tbW9uL3NobGlicwppbmRleCA1YTc2ZGM5ZWU5ZTAuLmRkNTY5NzhmNDI2OSAxMDA2NDQK LS0tIGEvY29tbW9uL3NobGlicworKysgYi9jb21tb24vc2hsaWJzCkBAIC00MTE3LDMgKzQxMTcs MTAgQEAgbGlia21sZW5naW5lLnNvLjEgbGlia21sLTEuMy4wXzEKIGxpYmttbHJlZ2lvbmF0b3Iu c28uMSBsaWJrbWwtMS4zLjBfMQogbGlia21seHNkLnNvLjEgbGlia21sLTEuMy4wXzEKIGxpYmtt bGNvbnZlbmllbmNlLnNvLjEgbGlia21sLTEuMy4wXzEKK2xpYmdyYXNzX2RibWliYXNlLjcuOC5z byBncmFzcy03LjguN1JDMV8xCitsaWJncmFzc19kYm1pY2xpZW50LjcuOC5zbyBncmFzcy03Ljgu N1JDMV8xCitsaWJncmFzc19naXMuNy44LnNvIGdyYXNzLTcuOC43UkMxXzEKK2xpYmdyYXNzX2dw cm9qLjcuOC5zbyBncmFzcy03LjguN1JDMV8xCitsaWJncmFzc19pbWFnZXJ5LjcuOC5zbyBncmFz cy03LjguN1JDMV8xCitsaWJncmFzc19yYXN0ZXIuNy44LnNvIGdyYXNzLTcuOC43UkMxXzEKK2xp YmdyYXNzX3ZlY3Rvci43Ljguc28gZ3Jhc3MtNy44LjdSQzFfMQpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9ncmFzcy9wYXRjaGVzL211c2wtYnVpbGQtZml4LnBhdGNoIGIvc3JjcGtncy9ncmFzcy9wYXRj aGVzL211c2wtYnVpbGQtZml4LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwMDAwMC4uMzY0ZWUzMGJlNGQ5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9ncmFzcy9w YXRjaGVzL211c2wtYnVpbGQtZml4LnBhdGNoCkBAIC0wLDAgKzEsMTMgQEAKK2Vycm9yOiB1bmtu b3duIHR5cGUgbmFtZSAnaW50NjRfdCcgcGF0Y2ggZm9yIG11c2wKKworZGlmZiAtLWdpdCBhL2lu Y2x1ZGUvZ2lzLmggYi9pbmNsdWRlL2dpcy5oCistLS0gYS9pbmNsdWRlL2dpcy5oCisrKysgYi9p bmNsdWRlL2dpcy5oCitAQCAtMjQsNiArMjQsNyBAQAorICNpbmNsdWRlIDxzdGRpby5oPgorICNp bmNsdWRlIDxzdGRhcmcuaD4KKyAjaW5jbHVkZSA8c3RkYm9vbC5oPgorKyNpbmNsdWRlIDxzdGRp bnQuaD4KKyAKKyAKKyAvKiBHcmFzcyBhbmQgbG9jYWwgaW5jbHVkZSBmaWxlcyAqLwpkaWZmIC0t Z2l0IGEvc3JjcGtncy9ncmFzcy90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ3Jhc3MvdGVtcGxhdGUKaW5k ZXggYmNjZDY5MWE4MTE2Li4xNjdmYWE0MDEzODUgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ3Jhc3Mv dGVtcGxhdGUKKysrIGIvc3JjcGtncy9ncmFzcy90ZW1wbGF0ZQpAQCAtMSwzMCArMSwxMTYgQEAK ICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2dyYXNzJwogcGtnbmFtZT1ncmFzcwotdmVyc2lvbj03LjYu MQotcmV2aXNpb249NAotX2JpbnZlcj0ke3ZlcnNpb24vLy4vfQotX2JpbnZlcj0ke19iaW52ZXI6 MDoyfQordmVyc2lvbj03LjguN1JDMQorcmV2aXNpb249MQorX2JpbnZlcnNpb249JHt2ZXJzaW9u Ly8uL30KK19iaW52ZXJzaW9uPSR7X2JpbnZlcnNpb246MDoyfQogYnVpbGRfc3R5bGU9Z251LWNv bmZpZ3VyZQotY29uZmlndXJlX2FyZ3M9Ii0tcHJlZml4PVwke0RFU1RESVJ9L3Vzci9zaGFyZSAt LWJpbmRpcj1cJHtERVNURElSfS91c3IvYmluCi0gLS13aXRoLWZyZWV0eXBlLWluY2x1ZGVzPSR7 WEJQU19DUk9TU19CQVNFfS91c3IvaW5jbHVkZS9mcmVldHlwZTIiCi1ob3N0bWFrZWRlcGVuZHM9 ImZsZXggbGliZ2RhbC10b29scyBwa2ctY29uZmlnIHB5dGhvbi1udW1weSB0YXIiCi1tYWtlZGVw ZW5kcz0icHJvai1kZXZlbCB0aWZmLWRldmVsIGxpYmdkYWwtZGV2ZWwgc3FsaXRlLWRldmVsCi0g ZmZ0dy1kZXZlbCBjYWlyby1kZXZlbCBnbHUtZGV2ZWwgd3hQeXRob24tZGV2ZWwiCi1kZXBlbmRz PSJweXRob24tbnVtcHkgd3hQeXRob24iCi1zaG9ydF9kZXNjPSJHZW9ncmFwaGljIFJlc291cmNl cyBBbmFseXNpcyBTdXBwb3J0IFN5c3RlbSAtIEdJUyIKLW1haW50YWluZXI9IkFsZXggSmFyb3Nj aCA8cmVzZWFyY2hAYWxleGouYXQ+IgorY29uZmlndXJlX2FyZ3M9Ii0tcHJlZml4PS91c3IvbGli CisgLS1iaW5kaXI9L3Vzci9iaW4KKyAtLWxpYmRpcj0vdXNyL2xpYgorIC0tbGliZXhlYz0vdXNy L2xpYmV4ZWMKKyAtLWVuYWJsZS1sYXJnZWZpbGUKKyAtLXdpdGgtYmxhcworIC0td2l0aC1ibGFz LWluY2x1ZGVzPS91c3IvaW5jbHVkZQorIC0td2l0aC1iemlwMgorIC0td2l0aC1iemxpYgorIC0t d2l0aC1jYWlybworIC0td2l0aC1jeHgKKyAtLXdpdGgtZnJlZXR5cGUKKyAtLXdpdGgtZnJlZXR5 cGUtaW5jbHVkZXM9L3Vzci9pbmNsdWRlL2ZyZWV0eXBlMgorIC0td2l0aC1nZGFsCisgLS13aXRo LWdlb3MKKyAtLXdpdGgtZ2x3CisgLS13aXRoLWxhcGFjaworIC0td2l0aC1sYXBhY2staW5jbHVk ZXM9L3Vzci9pbmNsdWRlCisgLS13aXRoLW15c3FsCisgLS13aXRoLW15c3FsLWluY2x1ZGVzPS91 c3IvaW5jbHVkZS9teXNxbAorIC0td2l0aC1uZXRjZGY9L3Vzci9iaW4vbmMtY29uZmlnCisgLS13 aXRoLW5scworIC0td2l0aC1vcGVubXAKKyAtLXdpdGgtcG9zdGdyZXMKKyAtLXdpdGgtcG9zdGdy ZXMtaW5jbHVkZXM9L3Vzci9pbmNsdWRlL3Bvc3RncmVzcWwKKyAtLXdpdGgtcG9zdGdyZXMtbGli cz0vdXNyL2xpYi9wc3FsMTQvbGliL3Bvc3RncmVzcWwKKyAtLXdpdGgtcHJvagorIC0td2l0aC1w cm9qLXNoYXJlPS91c3Ivc2hhcmUKKyAtLXdpdGgtcHRocmVhZAorIC0td2l0aC1weXRob249L3Vz ci9iaW4vcHl0aG9uMy1jb25maWcKKyAtLXdpdGgtcmVhZGxpbmUKKyAtLXdpdGgtcmVnZXgKKyAt LXdpdGgtc3FsaXRlCisgLS13aXRoLXd4d2lkZ2V0cyIKK2hvc3RtYWtlZGVwZW5kcz0iZmxleAor IGdldHRleHQKKyBsaWJnZGFsLXRvb2xzCisgcGtnLWNvbmZpZworIHB5dGhvbjMtbnVtcHkKKyBw eXRob24zLXNpeAorIHRhciIKK21ha2VkZXBlbmRzPSJiaXNvbgorIGJsYXMtZGV2ZWwKKyBiemlw Mi1kZXZlbAorIGNhaXJvLWRldmVsCisgZmZ0dy1kZXZlbAorIGZyZWV0eXBlLWRldmVsCisgZ2Vv cy1kZXZlbAorIGdldHRleHQtZGV2ZWwKKyBnbHUtZGV2ZWwKKyBsYXBhY2stZGV2ZWwKKyBsaWJn ZGFsLWRldmVsCisgbGliZ29tcC1kZXZlbAorIGxpYm15c3FsY2xpZW50LWRldmVsCisgbGlicG5n LWRldmVsCisgbGlienN0ZC1kZXZlbAorIG5ldGNkZi1kZXZlbAorIHBvc3RncmVzcWwtbGlicy1k ZXZlbAorIHByb2otZGV2ZWwKKyBweXRob24zLWRldmVsCisgcHl0aG9uMy1QaWxsb3cKKyBweXRo b24zLXNpeAorIHJlYWRsaW5lLWRldmVsCisgc3FsaXRlLWRldmVsCisgdGlmZi1kZXZlbAorIHps aWItZGV2ZWwiCitkZXBlbmRzPSJsaWJnZGFsIHB5dGhvbjMtbnVtcHkgd3hQeXRob240Igorc2hv cnRfZGVzYz0iR2VvZ3JhcGhpYyBSZXNvdXJjZXMgQW5hbHlzaXMgU3VwcG9ydCBTeXN0ZW0iCitt YWludGFpbmVyPSJPcnBoYW5lZCA8b3JwaGFuQHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BM LTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL2dyYXNzLm9zZ2VvLm9yZy8iCi1kaXN0 ZmlsZXM9Imh0dHBzOi8vZ3Jhc3Mub3NnZW8ub3JnL2dyYXNzJHtfYmludmVyfS9zb3VyY2UvJHtw a2duYW1lfS0ke3ZlcnNpb259LnRhci5neiIKLWNoZWNrc3VtPTllMjVjOTljYWZkMTZlZDhmNWUy ZGNhNzViNWExMGRjMmFmMDU2OGRiZWRmM2ZjMzlmMWM1YTBhOWM4NDBiMGIKLXB5dGhvbl92ZXJz aW9uPTIgI3VudmVyaWZpZWQKK2Rpc3RmaWxlcz0iaHR0cHM6Ly9naXRodWIuY29tL09TR2VvL2dy YXNzL2FyY2hpdmUvJHt2ZXJzaW9ufS50YXIuZ3oiCitjaGVja3N1bT1mYTFkNmNjYzFmZGU0Y2Jl YTBiZTA5NTI1NjcyOTQyMWM0MWMxYTEyYmY2MjFmZTEyNGQwZDJjOGU4MjZkZTZhCiBub2Nyb3Nz PSJ0cmllcyB0byBleGVjdXRlIHRhcmdldCBiaW5hcmllcyIKIAorc2hsaWJfcHJvdmlkZXM9Igor IGxpYmdyYXNzX2RibWliYXNlLiR7dmVyc2lvbiUuKn0uc28KKyBsaWJncmFzc19kYm1pY2xpZW50 LiR7dmVyc2lvbiUuKn0uc28KKyBsaWJncmFzc19naXMuJHt2ZXJzaW9uJS4qfS5zbworIGxpYmdy YXNzX2dwcm9qLiR7dmVyc2lvbiUuKn0uc28KKyBsaWJncmFzc19pbWFnZXJ5LiR7dmVyc2lvbiUu Kn0uc28KKyBsaWJncmFzc19yYXN0ZXIuJHt2ZXJzaW9uJS4qfS5zbworIGxpYmdyYXNzX3ZlY3Rv ci4ke3ZlcnNpb24lLip9LnNvIgorCiBwb3N0X2luc3RhbGwoKSB7Ci0JIyBtb3ZlIGdyYXNzNzYg bGlicmFyaWVzIGZyb20gL3Vzci9zaGFyZSB0byAvdXNyL2xpYgotCXZta2RpciB1c3IvbGliCi0J bXYgJHtERVNURElSfS91c3Ivc2hhcmUvZ3Jhc3MqICR7REVTVERJUn0vdXNyL2xpYgotCSMgZml4 ZXMgYSB0b2RvIGluIEdJU0JBU0UKLQlzZWQgLWkgJHtERVNURElSfS91c3IvYmluL2dyYXNzJHtf YmludmVyfSBcCi0JCS1lICIxMDVzO1woZ2lzYmFzZSA9XCkuKjtcMSBcIi91c3IvbGliL2dyYXNz LSR7dmVyc2lvbn1cIjsiCisJIyByZW1vdmUgJERFU1RESVIgaW4gcGF0aHMKKwl2c2VkIC1pIC1l ICJzfCR7REVTVERJUn18fCIgXAorCQkke0RFU1RESVJ9L3Vzci9iaW4vZ3Jhc3M3OCBcCisJCSR7 REVTVERJUn0vdXNyL2xpYi9ncmFzczc4L2V0Yy9mb250Y2FwIFwKKwkJJHtERVNURElSfS91c3Iv bGliL2dyYXNzNzgvZGVtb2xvY2F0aW9uLy5ncmFzc3JjNzggXAorCQkke0RFU1RESVJ9L3Vzci9s aWIvZ3Jhc3M3OC9pbmNsdWRlL01ha2UvUGxhdGZvcm0ubWFrZSBcCisJCSR7REVTVERJUn0vdXNy L2xpYi9ncmFzczc4L2luY2x1ZGUvTWFrZS9HcmFzcy5tYWtlCisKKwkjIGxkLnNvLmNvbmYKKwlt a2RpciAtcCAke0RFU1RESVJ9L2V0Yy9sZC5zby5jb25mLmQKKwllY2hvICIvdXNyL2xpYi9ncmFz cyR7X2JpbnZlcnNpb259L2xpYiIgPiR7REVTVERJUn0vZXRjL2xkLnNvLmNvbmYuZC9ncmFzcyR7 X2JpbnZlcnNpb259LmNvbmYKKwkjIHByb2ZpbGVzCisJbWtkaXIgLXAgJHtERVNURElSfS9ldGMv cHJvZmlsZS5kCisJZWNobyAnZXhwb3J0IFBBVEg9Ii91c3IvbGliL2dyYXNzJyR7X2JpbnZlcnNp b259Jy9iaW46JFBBVEgiJyA+JHtERVNURElSfS9ldGMvcHJvZmlsZS5kL2dyYXNzJHtfYmludmVy c2lvbn0uc2gKKworCXZpbnN0YWxsIGdyYXNzLnBjIDY0NCB1c3Ivc2hhcmUvcGtnY29uZmlnCisJ dmluc3RhbGwgZ3VpL2ljb25zL2dyYXNzLmRlc2t0b3AgNjQ0IHVzci9zaGFyZS9hcHBsaWNhdGlv bnMKKworCWxvY2FsIGljb24gcmVzCisJZm9yIGljb24gaW4gZ3VpL2ljb25zL2dyYXNzLVswLTld KnhbMC05XSoucG5nOyBkbworCQlyZXM9JChlY2hvICRpY29uIHxzZWQgLUUgLWUgJ3N8LiotKFsw LTldK3hbMC05XSspLnBuZ3xcMXwnKQorCQl2aW5zdGFsbCAkaWNvbiAwNjQ0IC91c3Ivc2hhcmUv aWNvbnMvaGljb2xvci8kcmVzL2FwcHMgZ3Jhc3MucG5nCisJZG9uZQogfQoKRnJvbSAxOWQzODI2 ODU4NmQzNjczMGU2MGJlOWZhMGM0NzJkZWRmMTQ2MTdmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQpGcm9tOiBBcmphbiBNb3NzZWwgPGFyamFubW9zc2VsQGdtYWlsLmNvbT4KRGF0ZTogU3VuLCAy NyBKdW4gMjAyMSAyMjoxODo0NiArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTAvMTddIG1lcmthYXJ0 b3I6IHJlYnVpbGQgYWdhaW5zdCBsaWJnZGFsLTMuNC4xIGFuZAogcHJvai03LjIuMQoKLS0tCiBz cmNwa2dzL21lcmthYXJ0b3IvdGVtcGxhdGUgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNl cnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL21lcmthYXJ0b3Iv dGVtcGxhdGUgYi9zcmNwa2dzL21lcmthYXJ0b3IvdGVtcGxhdGUKaW5kZXggY2ZmY2ZiYTFjZjAx Li42NjAzMzc2MTExZjIgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvbWVya2FhcnRvci90ZW1wbGF0ZQor KysgYi9zcmNwa2dzL21lcmthYXJ0b3IvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBs YXRlIGZpbGUgZm9yICdtZXJrYWFydG9yJwogcGtnbmFtZT1tZXJrYWFydG9yCiB2ZXJzaW9uPTAu MTkuMAotcmV2aXNpb249MQorcmV2aXNpb249MgogYnVpbGRfc3R5bGU9cW1ha2UKIGNvbmZpZ3Vy ZV9hcmdzPSJTWVNURU1fUVVBWklQPTEgU1lTVEVNX1FVQVpJUF9MREZMQUdTPS1scXVhemlwNSIK IGhvc3RtYWtlZGVwZW5kcz0icXQ1LXFtYWtlIGxpYmdkYWwtdG9vbHMgcXQ1LWhvc3QtdG9vbHMi CgpGcm9tIGY5N2Q1NTEyYTljMzc4YzA0ZTcyNDI4ZTE5NjY2ZmVlMmNiM2I0ZTggTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCkZyb206IEFyamFuIE1vc3NlbCA8YXJqYW5tb3NzZWxAZ21haWwuY29t PgpEYXRlOiBUdWUsIDI5IEp1biAyMDIxIDAwOjIxOjI3ICswMjAwClN1YmplY3Q6IFtQQVRDSCAx MS8xN10gT3Blbk9yaWVudGVlcmluZy1NYXBwZXI6IHJlYnVpbGQgYWdhaW5zdCBsaWJnZGFsLTMu NC4xCiBhbmQgcHJvai03LjIuMQoKLS0tCiBzcmNwa2dzL09wZW5PcmllbnRlZXJpbmctTWFwcGVy L3RlbXBsYXRlIHwgMTEgKysrKysrKysrLS0KIDEgZmlsZSBjaGFuZ2VkLCA5IGluc2VydGlvbnMo KyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9PcGVuT3JpZW50ZWVyaW5n LU1hcHBlci90ZW1wbGF0ZSBiL3NyY3BrZ3MvT3Blbk9yaWVudGVlcmluZy1NYXBwZXIvdGVtcGxh dGUKaW5kZXggZmQyOWEwOGU3NWI2Li42YTY1MmE2YTdiOTcgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mv T3Blbk9yaWVudGVlcmluZy1NYXBwZXIvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9PcGVuT3JpZW50 ZWVyaW5nLU1hcHBlci90ZW1wbGF0ZQpAQCAtMSwxNCArMSwxNSBAQAogIyBUZW1wbGF0ZSBmaWxl IGZvciAnT3Blbk9yaWVudGVlcmluZy1NYXBwZXInCiBwa2duYW1lPU9wZW5PcmllbnRlZXJpbmct TWFwcGVyCiB2ZXJzaW9uPTAuOS41Ci1yZXZpc2lvbj0xCityZXZpc2lvbj0yCiB3cmtzcmM9Im1h cHBlci0ke3ZlcnNpb259IgogYnVpbGRfc3R5bGU9Y21ha2UKIGhvc3RtYWtlZGVwZW5kcz0iZG94 eWdlbiBxdDUtaG9zdC10b29scyBxdDUtcGx1Z2luLXNxbGl0ZSBxdDUtcW1ha2UgcXQ1LXRvb2xz IgogbWFrZWRlcGVuZHM9InF0NS1kZXZlbCBjbGlwcGVyLWRldmVsIHByb2otZGV2ZWwgemxpYi1k ZXZlbCBsaWJnZGFsLWRldmVsCiAgcXQ1LXRvb2xzLWRldmVsIHNxbGl0ZS1kZXZlbCBjdXBzLWRl dmVsICQodm9wdF9pZiBsb2NhdGlvbiBxdDUtbG9jYXRpb24tZGV2ZWwpCiAgJCh2b3B0X2lmIHNl bnNvcnMgcXQ1LXNlbnNvcnMtZGV2ZWwpCi0gcXQ1LXBsdWdpbi1teXNxbCBxdDUtcGx1Z2luLW9k YmMgcXQ1LXBsdWdpbi1wZ3NxbCBxdDUtcGx1Z2luLXNxbGl0ZSBxdDUtcGx1Z2luLXRkcyIKKyBx dDUtcGx1Z2luLW15c3FsIHF0NS1wbHVnaW4tb2RiYyBxdDUtcGx1Z2luLXBnc3FsIHF0NS1wbHVn aW4tc3FsaXRlIHF0NS1wbHVnaW4tdGRzCisgdGlmZi1kZXZlbCBsaWJjdXJsLWRldmVsIgogc2hv cnRfZGVzYz0iT3JpZW50ZWVyaW5nIG1hcG1ha2luZyBwcm9ncmFtIgogbWFpbnRhaW5lcj0iSm9o biA8bWVAam9obm55bmF0b3IuZGV2PiIKIGxpY2Vuc2U9IkdQTC0zLjAtb3ItbGF0ZXIiCkBAIC0x OCwzICsxOSw5IEBAIGNoZWNrc3VtPTYxOTE1MmNhMDFhMzcwODc1YzE1ZTE5MzA5MThjZTk2MTI4 NGNjYmY1ZDIzNzFjMTQ3ZDUwY2FmNWU1YzJmMDAKIAogYnVpbGRfb3B0aW9ucz0ibG9jYXRpb24g c2Vuc29ycyIKIGJ1aWxkX29wdGlvbnNfZGVmYXVsdD0ibG9jYXRpb24gc2Vuc29ycyIKKworZG9f Y2hlY2soKSB7CisgICAgIyBzZW5zb3JzX3QgdGVzdCBmYWlscyBvbiB0ZXN0IHJ1bm5lcgorCWNk IGJ1aWxkCisJY3Rlc3QgLUUgJ3NlbnNvcnNfdCcKK30KCkZyb20gMjlmN2ExMjA5NjgyY2M4ZTI5 OGU0YTVhMDgxZmMzZjBjNTk2ZjMwMiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQXJq YW4gTW9zc2VsIDxhcmphbm1vc3NlbEBnbWFpbC5jb20+CkRhdGU6IFR1ZSwgMjkgSnVuIDIwMjEg MDA6Mzg6MzUgKzAyMDAKU3ViamVjdDogW1BBVENIIDEyLzE3XSBvc2c6IHJlYnVpbGQgYWdhaW5z dCBsaWJnZGFsLTMuNC4xLCBmaXggbGljZW5zZQoKLS0tCiBzcmNwa2dzL29zZy90ZW1wbGF0ZSB8 IDQgKystLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9zcmNwa2dzL29zZy90ZW1wbGF0ZSBiL3NyY3BrZ3Mvb3NnL3RlbXBsYXRl CmluZGV4IDA4YmY2ZDRiNjU5MS4uZjUxNTM1YzU3MTlkIDEwMDY0NAotLS0gYS9zcmNwa2dzL29z Zy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL29zZy90ZW1wbGF0ZQpAQCAtMiw3ICsyLDcgQEAKIHBr Z25hbWU9b3NnCiByZXZlcnRzPTMuNi4wXzEKIHZlcnNpb249My40LjEKLXJldmlzaW9uPTEyCity ZXZpc2lvbj0xMwogd3Jrc3JjPU9wZW5TY2VuZUdyYXBoLU9wZW5TY2VuZUdyYXBoLSR7dmVyc2lv bn0KIGJ1aWxkX3N0eWxlPWNtYWtlCiBidWlsZF9oZWxwZXI9InFlbXUiCkBAIC0xOSw3ICsxOSw3 IEBAIG1ha2VkZXBlbmRzPSJNZXNhTGliLWRldmVsIGd0a2dsZXh0LWRldmVsIGxpYmN1cmwtZGV2 ZWwgZ2lmbGliLWRldmVsIGxpYnJzdmctZGV2CiBkZXBlbmRzPSJ4cmFuZHIiCiBzaG9ydF9kZXNj PSJPcGVuU2NlbmVHcmFwaDogaGlnaCBwZXJmb3JtYW5jZSByZWFsLXRpbWUgZ3JhcGhpY3MgdG9v bGtpdCIKIG1haW50YWluZXI9Ik9ycGhhbmVkIDxvcnBoYW5Adm9pZGxpbnV4Lm9yZz4iCi1saWNl bnNlPSJPU0dQTC0yLjAtb3ItbGF0ZXIiCitsaWNlbnNlPSJjdXN0b206T3BlblNjZW5lR3JhcGgt UHVibGljLUxpY2Vuc2UtMC4wIgogaG9tZXBhZ2U9Imh0dHA6Ly93d3cub3BlbnNjZW5lZ3JhcGgu b3JnIgogZGlzdGZpbGVzPSJodHRwczovL2dpdGh1Yi5jb20vb3BlbnNjZW5lZ3JhcGgvT3BlblNj ZW5lR3JhcGgvYXJjaGl2ZS9PcGVuU2NlbmVHcmFwaC0ke3ZlcnNpb259LnRhci5neiIKIGNoZWNr c3VtPTkzMGViNDZmMDU3ODFhNzY4ODNlYzE2YzVmNDljZmIyOWEwNTk0MjFkYjEzMTAwNWQ3NWJl YzRkNzg0MDFmZDUKCkZyb20gMDIzMmJiM2E5YTFiYTEyM2NiNWVjZDM4ZDNmYjAwM2EzMjQ3ODBm MCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQXJqYW4gTW9zc2VsIDxhcmphbm1vc3Nl bEBnbWFpbC5jb20+CkRhdGU6IFR1ZSwgMjkgSnVuIDIwMjEgMTc6MzU6NDcgKzAyMDAKU3ViamVj dDogW1BBVENIIDEzLzE3XSBzdW1vOiB1cGRhdGUgdG8gMS45LjI7IHJlYnVpbGQgYWdhaW5zdCBs aWJnZGFsLTMuNC4xCiBhbmQgcHJvai03LjIuMQoKLSBCdWlsZCBUcmFhUy5qYXIgdXNpbmcgTWF2 ZW4gKGZpeGVzIHRlc3RzKQotIEFkZCBFaWdlbjMgZGVwZW5kZW5jeQotLS0KIGNvbW1vbi9zaGxp YnMgICAgICAgICB8ICAyICsrCiBzcmNwa2dzL3N1bW8vdGVtcGxhdGUgfCAyMiArKysrKysrKysr KysrKysrLS0tLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDE4IGluc2VydGlvbnMoKyksIDYgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvY29tbW9uL3NobGlicyBiL2NvbW1vbi9zaGxpYnMKaW5kZXgg ZGQ1Njk3OGY0MjY5Li5mMDQzNjkwOWQwNjYgMTAwNjQ0Ci0tLSBhL2NvbW1vbi9zaGxpYnMKKysr IGIvY29tbW9uL3NobGlicwpAQCAtNDEyNCwzICs0MTI0LDUgQEAgbGliZ3Jhc3NfZ3Byb2ouNy44 LnNvIGdyYXNzLTcuOC43UkMxXzEKIGxpYmdyYXNzX2ltYWdlcnkuNy44LnNvIGdyYXNzLTcuOC43 UkMxXzEKIGxpYmdyYXNzX3Jhc3Rlci43Ljguc28gZ3Jhc3MtNy44LjdSQzFfMQogbGliZ3Jhc3Nf dmVjdG9yLjcuOC5zbyBncmFzcy03LjguN1JDMV8xCitsaWJzdW1vY3BwLnNvIHN1bW8tMS45LjJf MQorbGlidHJhY2ljcHAuc28gc3Vtby0xLjkuMl8xCmRpZmYgLS1naXQgYS9zcmNwa2dzL3N1bW8v dGVtcGxhdGUgYi9zcmNwa2dzL3N1bW8vdGVtcGxhdGUKaW5kZXggZTc2MGZkZDQ1YWVlLi4zYzBl ZWE5OTE2YWEgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mvc3Vtby90ZW1wbGF0ZQorKysgYi9zcmNwa2dz L3N1bW8vdGVtcGxhdGUKQEAgLTEsMTggKzEsMjggQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3N1 bW8nCiBwa2duYW1lPXN1bW8KLXZlcnNpb249MS41LjAKLXJldmlzaW9uPTQKK3ZlcnNpb249MS45 LjIKK3JldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPWNtYWtlCi1weXRob25fdmVyc2lvbj0zCi1ob3N0 bWFrZWRlcGVuZHM9ImxpYmdkYWwtdG9vbHMgcGtnLWNvbmZpZyBzd2lnIHB5dGhvbjMtc2V0dXB0 b29scyIKLW1ha2VkZXBlbmRzPSJweXRob24zLWRldmVsIGZmbXBlZy1kZXZlbCBmb3gtZGV2ZWwg Z2wycHMtZGV2ZWwgbGliZ2RhbC1kZXZlbCBsaWJ4ZXJjZXMtYy1kZXZlbCBvc2ctZGV2ZWwgcHJv ai1kZXZlbCIKK2hvc3RtYWtlZGVwZW5kcz0ibGliZ2RhbC10b29scyBwa2ctY29uZmlnIHN3aWcg cHl0aG9uMy1zZXR1cHRvb2xzCisgYXBhY2hlLW1hdmVuIG9wZW5qZGsxMSBnaXQiCittYWtlZGVw ZW5kcz0icHl0aG9uMy1kZXZlbCBmZm1wZWctZGV2ZWwgZm94LWRldmVsIGdsMnBzLWRldmVsIGxp YmdkYWwtZGV2ZWwKKyBsaWJ4ZXJjZXMtYy1kZXZlbCBvc2ctZGV2ZWwgcHJvai1kZXZlbCBlaWdl biIKK2NoZWNrZGVwZW5kcz0iZ3Rlc3QiCiBzaG9ydF9kZXNjPSJTVU1PIChTaW11bGF0aW9uIG9m IFVyYmFuIE1PYmlsaXR5KSBhbmQgaW5jbHVkZWQgYXBwbGljYXRpb25zIgogbWFpbnRhaW5lcj0i V2FycmlvciBHcmFwaCA8bWFycXVlc0BsYXJjZXMudWVjZS5icj4iCiBsaWNlbnNlPSJFUEwtMi4w IgogaG9tZXBhZ2U9Imh0dHBzOi8vc3Vtby5kbHIuZGUiCiBkaXN0ZmlsZXM9Imh0dHBzOi8vc3Vt by5kbHIuZGUvcmVsZWFzZXMvJHt2ZXJzaW9ufS9zdW1vLXNyYy0ke3ZlcnNpb259LnRhci5neiIK LWNoZWNrc3VtPWRjZjUzMzlmZGRhMDY1OWZhNDRmY2ZkNjlmZTNmNGUwMzAwOWFhOWE1OTg0OTYy NGYyYTNjZmU3MmVkYTlmOGUKK2NoZWNrc3VtPTE5M2E4YWIxNGJiMzA1ZDM5Njc2MjVkNzZjZDI5 MWY1YzU1YmI5MDY4MTc0NjVmMmExMmMyZTY5ZjRiODA4MTMKK3B5dGhvbl92ZXJzaW9uPTMKKwor cHJlX2J1aWxkKCkgeworCWNkIHRvb2xzL2NvbnRyaWJ1dGVkL3RyYWFzCisJbXZuIHBhY2thZ2UK KwltdiB0YXJnZXQvdHJhYXMqLmphciAke3dya3NyY30vYmluL1RyYWFTLmphcgorfQogCiBwb3N0 X2luc3RhbGwoKSB7CiAJcm0gLWYgJHtERVNURElSfS91c3Ivc2hhcmUvc3Vtby90b29scy9saWJz dW1vLyouc28KKwlybSAtZiAke0RFU1RESVJ9L3Vzci9zaGFyZS9zdW1vL3Rvb2xzL2xpYnRyYWNp L19saWJ0cmFjaS5zbwogfQoKRnJvbSA5MjkxYzZmMWVmZmQzNDgxZTUwMThkYTRiYzNmYTAzYWFj ZWY1YTUyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBcmphbiBNb3NzZWwgPGFyamFu bW9zc2VsQGdtYWlsLmNvbT4KRGF0ZTogVHVlLCAyOSBKdW4gMjAyMSAxODo0MzowNSArMDIwMApT dWJqZWN0OiBbUEFUQ0ggMTQvMTddIHZ0azogcmVidWlsZCBhZ2FpbnN0IHByb2otNy4yLjEKCi0t LQogc3JjcGtncy92dGsvdGVtcGxhdGUgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRp b24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL3Z0ay90ZW1wbGF0ZSBi L3NyY3BrZ3MvdnRrL3RlbXBsYXRlCmluZGV4IDg1OGFhMzFiOWMwMy4uNTUzY2Y5MTk4NDY1IDEw MDY0NAotLS0gYS9zcmNwa2dzL3Z0ay90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3Z0ay90ZW1wbGF0 ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3Z0aycKIHBrZ25hbWU9dnRr CiB2ZXJzaW9uPTkuMC4xCi1yZXZpc2lvbj03CityZXZpc2lvbj04CiB3cmtzcmM9VlRLLSR7dmVy c2lvbn0KIGJ1aWxkX3N0eWxlPWNtYWtlCiAjIHZ0ayBjYW4gYmUgaHVnZSwgZXNwZWNpYWxseSB3 aXRoIC1EVlRLX0JVSUxEX0FMTF9NT0RVTEVTPU9OIgoKRnJvbSA4MWExMGE3ZGZjMDNlNzhhODdi NGI0ZjZlMjJiZmEwMWUxYjgzMzJjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBcmph biBNb3NzZWwgPGFyamFubW9zc2VsQGdtYWlsLmNvbT4KRGF0ZTogVHVlLCAyOSBKdW4gMjAyMSAx OToyNDo0MyArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTUvMTddIG9zbTJwZ3NxbDogcmVidWlsZCBh Z2FpbnN0IHByb2otNy4yLjEKCi0tLQogc3JjcGtncy9vc20ycGdzcWwvdGVtcGxhdGUgfCAyICst CiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1n aXQgYS9zcmNwa2dzL29zbTJwZ3NxbC90ZW1wbGF0ZSBiL3NyY3BrZ3Mvb3NtMnBnc3FsL3RlbXBs YXRlCmluZGV4IDFjNTNjNDUwNTA0Ny4uMWQ1ZjcxYjcwMTQwIDEwMDY0NAotLS0gYS9zcmNwa2dz L29zbTJwZ3NxbC90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL29zbTJwZ3NxbC90ZW1wbGF0ZQpAQCAt MSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ29zbTJwZ3NxbCcKIHBrZ25hbWU9b3Nt MnBnc3FsCiB2ZXJzaW9uPTEuNi4wCi1yZXZpc2lvbj0xCityZXZpc2lvbj0yCiBidWlsZF9zdHls ZT1jbWFrZQogaG9zdG1ha2VkZXBlbmRzPSJib29zdCIKIG1ha2VkZXBlbmRzPSJleHBhdC1kZXZl bCBwcm9qLWRldmVsIGJ6aXAyLWRldmVsIHpsaWItZGV2ZWwgYm9vc3QtZGV2ZWwKCkZyb20gMTg0 OTk4Y2U2MDM4MTk3NjhjODhlMTFkN2RkOTk3NzI5Zjg2ZDY2ZCBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogQXJqYW4gTW9zc2VsIDxhcmphbm1vc3NlbEBnbWFpbC5jb20+CkRhdGU6IFR1 ZSwgMjkgSnVuIDIwMjEgMTk6MjY6NTcgKzAyMDAKU3ViamVjdDogW1BBVENIIDE2LzE3XSBYeUdy aWI6IHJlYnVpbGQgYWdhaW5zdCBwcm9qLTcuMi4xCgpEbyBub3QgdXNlIG5pbmphICgidW5rbm93 biB0YXJnZXQiIGVycm9yKQotLS0KIHNyY3BrZ3MvWHlHcmliL3RlbXBsYXRlIHwgNSArKysrLQog MSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdp dCBhL3NyY3BrZ3MvWHlHcmliL3RlbXBsYXRlIGIvc3JjcGtncy9YeUdyaWIvdGVtcGxhdGUKaW5k ZXggZTRhYTNhMmUwMjY1Li45OTVlYzNlZWVhYmIgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvWHlHcmli L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvWHlHcmliL3RlbXBsYXRlCkBAIC0xLDggKzEsOSBAQAog IyBUZW1wbGF0ZSBmaWxlIGZvciAnWHlHcmliJwogcGtnbmFtZT1YeUdyaWIKIHZlcnNpb249MS4y LjYuMQotcmV2aXNpb249MworcmV2aXNpb249NAogYnVpbGRfc3R5bGU9Y21ha2UKK21ha2VfY21k PW1ha2UKIGhvc3RtYWtlZGVwZW5kcz0icXQ1LWRldmVsIHBrZy1jb25maWciCiBtYWtlZGVwZW5k cz0iamFzcGVyLWRldmVsIGxpYm5vdmEtZGV2ZWwgbmV0dGxlLWRldmVsIHByb2otZGV2ZWwgcXQ1 LWRldmVsCiAgcXd0LWRldmVsIGxpYm9wZW5qcGVnMi1kZXZlbCIKQEAgLTEzLDYgKzE0LDggQEAg aG9tZXBhZ2U9Imh0dHBzOi8vb3BlbmdyaWJzLm9yZy8iCiBkaXN0ZmlsZXM9Imh0dHBzOi8vZ2l0 aHViLmNvbS9vcGVuZ3JpYnMvWHlHcmliL2FyY2hpdmUvdiR7dmVyc2lvbn0udGFyLmd6IgogY2hl Y2tzdW09MmRjNjA5OTI5M2FlNmY3YTRiZmJmYzBjYWI1OTBjZjdhZDQ4MjQxZDYwOGU2ZDdhNzZl MzU5NjFiOWZjMjE1NwogCitleHBvcnQgQ01BS0VfR0VORVJBVE9SPSJVbml4IE1ha2VmaWxlcyIK KwogaWYgWyAiJENST1NTX0JVSUxEIiBdOyB0aGVuCiAJbWFrZV9idWlsZF9hcmdzPSJMSU5LPSR7 WEJQU19DUk9TU19UUklQTEVUfS1jKysiCiBmaQoKRnJvbSAyZTMzZDliOWRiMWE3YmNiM2Y0NDhi MzA0OTMwMGNkNTI4OWMzMDVhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBcmphbiBN b3NzZWwgPGFyamFubW9zc2VsQGdtYWlsLmNvbT4KRGF0ZTogVHVlLCAxNSBGZWIgMjAyMiAyMjo0 Njo0NSArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMTcvMTddIE5ldyBwYWNrYWdlOiBsaWJzcGF0aWFs aXRlLTUuMC4xCgotLS0KIGNvbW1vbi9zaGxpYnMgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB8ICAyICsKIC4uLi9wYXRjaGVzL2Rpc2FibGVfY2hlY2tfZHJvcF9yZW5hbWUucGF0Y2gg ICB8IDI4ICsrKysrKysrKysrKysKIC4uLi9wYXRjaGVzL2Rpc2FibGVfY2hlY2tfc3FsX3N0bXQu cGF0Y2ggICAgICB8IDI5ICsrKysrKysrKysrKysKIHNyY3BrZ3MvbGlic3BhdGlhbGl0ZS90ZW1w bGF0ZSAgICAgICAgICAgICAgICB8IDQyICsrKysrKysrKysrKysrKysrKysKIDQgZmlsZXMgY2hh bmdlZCwgMTAxIGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xpYnNw YXRpYWxpdGUvcGF0Y2hlcy9kaXNhYmxlX2NoZWNrX2Ryb3BfcmVuYW1lLnBhdGNoCiBjcmVhdGUg bW9kZSAxMDA2NDQgc3JjcGtncy9saWJzcGF0aWFsaXRlL3BhdGNoZXMvZGlzYWJsZV9jaGVja19z cWxfc3RtdC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGlic3BhdGlhbGl0ZS90 ZW1wbGF0ZQoKZGlmZiAtLWdpdCBhL2NvbW1vbi9zaGxpYnMgYi9jb21tb24vc2hsaWJzCmluZGV4 IGYwNDM2OTA5ZDA2Ni4uNWY3ZTdiYWM4OGQzIDEwMDY0NAotLS0gYS9jb21tb24vc2hsaWJzCisr KyBiL2NvbW1vbi9zaGxpYnMKQEAgLTQxMTcsNiArNDExNyw4IEBAIGxpYmttbGVuZ2luZS5zby4x IGxpYmttbC0xLjMuMF8xCiBsaWJrbWxyZWdpb25hdG9yLnNvLjEgbGlia21sLTEuMy4wXzEKIGxp YmttbHhzZC5zby4xIGxpYmttbC0xLjMuMF8xCiBsaWJrbWxjb252ZW5pZW5jZS5zby4xIGxpYmtt bC0xLjMuMF8xCitsaWJzcGF0aWFsaXRlLnNvLjcgbGlic3BhdGlhbGl0ZS01LjAuMV8xCittb2Rf c3BhdGlhbGl0ZS5zby43IGxpYnNwYXRpYWxpdGUtNS4wLjFfMQogbGliZ3Jhc3NfZGJtaWJhc2Uu Ny44LnNvIGdyYXNzLTcuOC43UkMxXzEKIGxpYmdyYXNzX2RibWljbGllbnQuNy44LnNvIGdyYXNz LTcuOC43UkMxXzEKIGxpYmdyYXNzX2dpcy43Ljguc28gZ3Jhc3MtNy44LjdSQzFfMQpkaWZmIC0t Z2l0IGEvc3JjcGtncy9saWJzcGF0aWFsaXRlL3BhdGNoZXMvZGlzYWJsZV9jaGVja19kcm9wX3Jl bmFtZS5wYXRjaCBiL3NyY3BrZ3MvbGlic3BhdGlhbGl0ZS9wYXRjaGVzL2Rpc2FibGVfY2hlY2tf ZHJvcF9yZW5hbWUucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw Li4zMGI2N2Y1YjhmNjEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xpYnNwYXRpYWxpdGUv cGF0Y2hlcy9kaXNhYmxlX2NoZWNrX2Ryb3BfcmVuYW1lLnBhdGNoCkBAIC0wLDAgKzEsMjggQEAK K0Rpc2FibGUgY2hlY2tfZHJvcF9yZW5hbWUgdGVzdC4gSXQgZmFpbHMgd2l0aDoKK1JlbmFtZVRh YmxlICJ0YWJsZV8xIiBlcnJvcjogUmVuYW1lVGFibGUgZXhjZXB0aW9uIC0gZXJyb3IgaW4gdHJp Z2dlciBJU09fbWV0YWRhdGFfcmVmZXJlbmNlX3Jvd19pZF92YWx1ZV9pbnNlcnQ6IG5vIHN1Y2gg Y29sdW1uOiByb3dpZC4KKworZGlmZiAtLWdpdCBhL3Rlc3QvTWFrZWZpbGUuYW0gYi90ZXN0L01h a2VmaWxlLmFtCitpbmRleCBmZWMyNWRkLi41MGIxNmFlIDEwMDY0NAorLS0tIGEvdGVzdC9NYWtl ZmlsZS5hbQorKysrIGIvdGVzdC9NYWtlZmlsZS5hbQorQEAgLTc0LDcgKzc0LDYgQEAgY2hlY2tf UFJPR1JBTVMgPSBjaGVja19lbmRpYW4gXAorIAkJY2hlY2tfc2VxdWVuY2UgXAorIAkJY2hlY2tf c3RvcmVkX3Byb2MgXAorIAkJY2hlY2tfd21zIFwKKy0JCWNoZWNrX2Ryb3BfcmVuYW1lIFwKKyAJ CXJvdXRpbmdfdGVzdCBcCisgCQlnZW9qc29uX3Rlc3QgXAorIAkJY2hlY2tfemlwc2hwCitkaWZm IC0tZ2l0IGEvdGVzdC9NYWtlZmlsZS5pbiBiL3Rlc3QvTWFrZWZpbGUuaW4KK2luZGV4IDhhMGIx NTQuLjUyYTEwNjYgMTAwNjQ0CistLS0gYS90ZXN0L01ha2VmaWxlLmluCisrKysgYi90ZXN0L01h a2VmaWxlLmluCitAQCAtMTI0LDcgKzEyNCw3IEBAIGNoZWNrX1BST0dSQU1TID0gY2hlY2tfZW5k aWFuJChFWEVFWFQpIGNoZWNrX3ZlcnNpb24kKEVYRUVYVCkgXAorIAljaGVja19uZXR3b3JrMmQk KEVYRUVYVCkgY2hlY2tfbmV0d29yazNkJChFWEVFWFQpIFwKKyAJY2hlY2tfbmV0d29ya19sb2ck KEVYRUVYVCkgY2hlY2tfdmlydHVhbGtubiQoRVhFRVhUKSBcCisgCWNoZWNrX3NlcXVlbmNlJChF WEVFWFQpIGNoZWNrX3N0b3JlZF9wcm9jJChFWEVFWFQpIFwKKy0JY2hlY2tfd21zJChFWEVFWFQp IGNoZWNrX2Ryb3BfcmVuYW1lJChFWEVFWFQpIFwKKysJY2hlY2tfd21zJChFWEVFWFQpIFwKKyAJ cm91dGluZ190ZXN0JChFWEVFWFQpIGdlb2pzb25fdGVzdCQoRVhFRVhUKSBcCisgCWNoZWNrX3pp cHNocCQoRVhFRVhUKSAkKGFtX19FWEVFWFRfMSkKKyBARU5BQkxFX0dFT1BBQ0tBR0VfVFJVRUBh bV9fYXBwZW5kXzEgPSBcCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xpYnNwYXRpYWxpdGUvcGF0Y2hl cy9kaXNhYmxlX2NoZWNrX3NxbF9zdG10LnBhdGNoIGIvc3JjcGtncy9saWJzcGF0aWFsaXRlL3Bh dGNoZXMvZGlzYWJsZV9jaGVja19zcWxfc3RtdC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAwMDAuLjFkYzNiNTcwNTk1NQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3Br Z3MvbGlic3BhdGlhbGl0ZS9wYXRjaGVzL2Rpc2FibGVfY2hlY2tfc3FsX3N0bXQucGF0Y2gKQEAg LTAsMCArMSwyOSBAQAorRGlzYWJsZSBjaGVja19zcWxfc3RtdCB0ZXN0cworCitodHRwczovL3d3 dy5nYWlhLWdpcy5pdC9mb3NzaWwvbGlic3BhdGlhbGl0ZS90a3R2aWV3LzNlNDYzNDliZjJiZmM1 OGIzZTMwNTFkMWZmN2NhYjczZWVkMTlhODg/cGxhaW50ZXh0CisKKy0tLSBhL3Rlc3QvTWFrZWZp bGUuYW0JMjAyMC0wOC0yMyAxODo0NjoyMy4wMDAwMDAwMDAgKzAyMDAKKysrKyBiL3Rlc3QvTWFr ZWZpbGUuYW0JMjAyMC0xMi0yMiAxNDo0NToxMC4yMDYwODU1MTUgKzAxMDAKK0BAIC0zMSwxMCAr MzEsNiBAQAorIAkJY2hlY2tfZ2FpYV91dGY4IFwKKyAJCWNoZWNrX2V4dGVuc2lvbiBcCisgCQlj aGVja19yZWNvdmVyX2dlb20gXAorLQkJY2hlY2tfc3FsX3N0bXQgXAorLQkJY2hlY2tfc3FsX3N0 bXRfdGlueSBcCistCQljaGVja19zcWxfc3RtdF9sZWdhY3kgXAorLQkJY2hlY2tfc3FsX3N0bXRf ZXh0ZW5zaW9uIFwKKyAJCWNoZWNrX211bHRpdGhyZWFkIFwKKyAJCWNoZWNrX3ZpcnR1YWx0YWJs ZTEgXAorIAkJY2hlY2tfdmlydHVhbHRhYmxlMiBcCistLS0gYS90ZXN0L01ha2VmaWxlLmluCTIw MjAtMDgtMjMgMTg6NDY6MjMuMDAwMDAwMDAwICswMjAwCisrKysgYi90ZXN0L01ha2VmaWxlLmlu CTIwMjAtMTItMjIgMTQ6NDE6MDYuNDE2MzM1NzM3ICswMTAwCitAQCAtMTAyLDkgKzEwMiw2IEBA CisgCWNoZWNrX3hsc19sb2FkJChFWEVFWFQpIGNoZWNrX21hdGhfZnVuY3MkKEVYRUVYVCkgXAor IAljaGVja19nYWlhX3V0aWwkKEVYRUVYVCkgY2hlY2tfZ2FpYV91dGY4JChFWEVFWFQpIFwKKyAJ Y2hlY2tfZXh0ZW5zaW9uJChFWEVFWFQpIGNoZWNrX3JlY292ZXJfZ2VvbSQoRVhFRVhUKSBcCist CWNoZWNrX3NxbF9zdG10JChFWEVFWFQpIGNoZWNrX3NxbF9zdG10X3RpbnkkKEVYRUVYVCkgXAor LQljaGVja19zcWxfc3RtdF9sZWdhY3kkKEVYRUVYVCkgXAorLQljaGVja19zcWxfc3RtdF9leHRl bnNpb24kKEVYRUVYVCkgY2hlY2tfbXVsdGl0aHJlYWQkKEVYRUVYVCkgXAorIAljaGVja192aXJ0 dWFsdGFibGUxJChFWEVFWFQpIGNoZWNrX3ZpcnR1YWx0YWJsZTIkKEVYRUVYVCkgXAorIAljaGVj a192aXJ0dWFsdGFibGUzJChFWEVFWFQpIGNoZWNrX3ZpcnR1YWx0YWJsZTQkKEVYRUVYVCkgXAor IAljaGVja192aXJ0dWFsdGFibGU1JChFWEVFWFQpIGNoZWNrX3ZpcnR1YWx0YWJsZTYkKEVYRUVY VCkgXApkaWZmIC0tZ2l0IGEvc3JjcGtncy9saWJzcGF0aWFsaXRlL3RlbXBsYXRlIGIvc3JjcGtn cy9saWJzcGF0aWFsaXRlL3RlbXBsYXRlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwMDAwMC4uMzFjMTBhNTU3N2U3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9saWJzcGF0 aWFsaXRlL3RlbXBsYXRlCkBAIC0wLDAgKzEsNDIgQEAKKyMgVGVtcGxhdGUgZmlsZSBmb3IgJ2xp YnNwYXRpYWxpdGUnCitwa2duYW1lPWxpYnNwYXRpYWxpdGUKK3ZlcnNpb249NS4wLjEKK3Jldmlz aW9uPTEKK2J1aWxkX3N0eWxlPWdudS1jb25maWd1cmUKK2hvc3RtYWtlZGVwZW5kcz0icGtnLWNv bmZpZyBsaWJydHRvcG8gZ2Vvcy1kZXZlbCBsaWJ4bWwyIgorbWFrZWRlcGVuZHM9ImZyZWV4bC1k ZXZlbAorIGdlb3MtZGV2ZWwKKyBsaWJydHRvcG8tZGV2ZWwKKyBsaWJ4bWwyLWRldmVsCisgbWlu aXppcC1kZXZlbAorIHByb2otZGV2ZWwKKyBzcWxpdGUtZGV2ZWwKKyB6bGliLWRldmVsIgorZGVw ZW5kcz0ic3FsaXRlIgorc2hvcnRfZGVzYz0iR2Vvc3BhdGlhbCBleHRlbnNpb24gZm9yIFNRTGl0 ZSIKK21haW50YWluZXI9Ik9ycGhhbmVkIDxvcnBoYW5Adm9pZGxpbnV4Lm9yZz4iCitsaWNlbnNl PSJNUEwtMS4wIgoraG9tZXBhZ2U9Imh0dHBzOi8vd3d3LmdhaWEtZ2lzLml0L2Zvc3NpbC9saWJz cGF0aWFsaXRlL2luZGV4IgorZGlzdGZpbGVzPSJodHRwOi8vd3d3LmdhaWEtZ2lzLml0L2dhaWEt c2lucy8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLmd6IgorY2hlY2tzdW09ZWVjYmM5NDMxMWM3 ODAxMmQwNTllYmMwZmFlODZlYTVlZjZlZWNiMTMzMDNlNmU4MmIzNzUzYzFiMzQwOWU5OAorCitD RkxBR1M9Ii1EQUNDRVBUX1VTRV9PRl9ERVBSRUNBVEVEX1BST0pfQVBJX0giCisKK2lmIFsgIiRD Uk9TU19CVUlMRCIgXTsgdGhlbgorCWhvc3RtYWtlZGVwZW5kcys9IiBsaWJ0b29sIGdlb3MtZGV2 ZWwiCitmaQorCitwb3N0X2luc3RhbGwoKSB7CisJdmxpY2Vuc2UgQ09QWUlORworfQorCitsaWJz cGF0aWFsaXRlLWRldmVsX3BhY2thZ2UoKSB7CisJZGVwZW5kcz0iJHBrZ25hbWU+PSR7dmVyc2lv bn1fJHtyZXZpc2lvbn0iCisJc2hvcnRfZGVzYys9IiAtIGRldmVsb3BtZW50IGZpbGVzIgorCXBr Z19pbnN0YWxsKCkgeworCQl2bW92ZSB1c3IvaW5jbHVkZQorCQl2bW92ZSB1c3IvbGliL3BrZ2Nv bmZpZworCQl2bW92ZSAidXNyL2xpYi8qLnNvIgorCQl2bW92ZSAidXNyL2xpYi8qLmEiCisJfQor fQo= --===============5050088475194109506==--