From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 From: Dmitry Butskoy To: git-commits@fedoraproject.org Subject: [rpms/seamonkey] f44: Update to 2.53.24 Date: Thu, 30 Jul 2026 20:17:34 GMT Message-ID: <178544265496.1.2966766657408864453.rpms-seamonkey-6bb83ba8ec69@fedoraproject.org> List-ID: X-Git-Repo: rpms/seamonkey X-Git-Branch: f44 X-Git-Rev: 6bb83ba8ec69ba386a7bd7bc0599abf262c618da QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvc2VhbW9ua2V5CkJy YW5jaCA6IGY0NApDb21taXQgOiA2YmI4M2JhOGVjNjliYTM4NmE3YmQ3YmMwNTk5YWJmMjYyYzYx OGRhCkF1dGhvciA6IERtaXRyeSBCdXRza295IDxkbWl0cnlAYnV0c2tveS5uYW1lPgpEYXRlICAg OiAyMDI2LTA3LTMwVDIzOjE3OjEzKzAzOjAwClN0YXRzICA6ICsyOTI5Ny8tMjQ0MDQgaW4gOCBm aWxlKHMpClVSTCAgICA6IGh0dHBzOi8vc3JjLmZlZG9yYXByb2plY3Qub3JnL3JwbXMvc2VhbW9u a2V5L2MvNmJiODNiYThlYzY5YmEzODZhN2JkN2JjMDU5OWFiZjI2MmM2MThkYT9icmFuY2g9ZjQ0 CgpMb2c6ClVwZGF0ZSB0byAyLjUzLjI0CgotLS0KZGlmZiAtLWdpdCBhL3NlYW1vbmtleS0yLjUz LjIyLW1vemlsbGEtMTg4MjIwOS5wYXRjaCBiL3NlYW1vbmtleS0yLjUzLjIyLW1vemlsbGEtMTg4 MjIwOS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzhjNzIzZi4uMDAwMDAw MAotLS0gYS9zZWFtb25rZXktMi41My4yMi1tb3ppbGxhLTE4ODIyMDkucGF0Y2gKKysrIC9kZXYv bnVsbApAQCAtMSwyNDM5NiArMCwwIEBACi1kaWZmIC1OcmJ1IGEvLmNhcmdvL2NvbmZpZy5pbiBi Ly5jYXJnby9jb25maWcuaW4KLS0tLSBhLy5jYXJnby9jb25maWcuaW4JMjAyNS0wOS0wNyAxNDoz MDozNy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiLy5jYXJnby9jb25maWcuaW4JMjAyNS0wOS0xNyAx Nzo1ODo1My4zNzQ1MjYyMDEgKzAzMDAKLUBAIC03LDEwICs3LDEwIEBACi0gYnJhbmNoID0gImRl c2VyaWFsaXplX2Zyb21fZW51bXM4IgotIHJlcGxhY2Utd2l0aCA9ICJ2ZW5kb3JlZC1zb3VyY2Vz IgotIAotLVtzb3VyY2UuImh0dHBzOi8vZ2l0aHViLmNvbS9oc2l2b25lbi9wYWNrZWRfc2ltZCJd Ci0tZ2l0ID0gImh0dHBzOi8vZ2l0aHViLmNvbS9oc2l2b25lbi9wYWNrZWRfc2ltZCIKLStbc291 cmNlLiJnaXQraHR0cHM6Ly9naXRodWIuY29tL2hzaXZvbmVuL2FueV9hbGxfd29ya2Fyb3VuZD9y ZXY9N2ZiMWI3MDM0YzlmMTcyYWFkZTIxZWUxYzg1NTRlOGQ4YTQ4YWY4MCJdCi0rZ2l0ID0gImh0 dHBzOi8vZ2l0aHViLmNvbS9oc2l2b25lbi9hbnlfYWxsX3dvcmthcm91bmQiCi0rcmV2ID0gIjdm YjFiNzAzNGM5ZjE3MmFhZGUyMWVlMWM4NTU0ZThkOGE0OGFmODAiCi0gcmVwbGFjZS13aXRoID0g InZlbmRvcmVkLXNvdXJjZXMiCi0tcmV2ID0gImU1ODhjZWI1Njg4NzhlMWEzMTU2ZWE5Y2U1NTFk NWI2M2VmMGNkYzQiCi0gCi0gW3NvdXJjZS52ZW5kb3JlZC1zb3VyY2VzXQotIGRpcmVjdG9yeSA9 ICdAdG9wX3NyY2RpckAvdGhpcmRfcGFydHkvcnVzdCcKLWRpZmYgLU5yYnUgYS9DYXJnby5sb2Nr IGIvQ2FyZ28ubG9jawotLS0tIGEvQ2FyZ28ubG9jawkyMDI1LTA5LTA3IDE0OjMwOjM3LjAwMDAw MDAwMCArMDMwMAotKysrIGIvQ2FyZ28ubG9jawkyMDI1LTA5LTE3IDE4OjAwOjQzLjIwOTMyMTk4 MCArMDMwMAotQEAgLTIxLDYgKzIxLDE1IEBACi0gXQotIAotIFtbcGFja2FnZV1dCi0rbmFtZSA9 ICJhbnlfYWxsX3dvcmthcm91bmQiCi0rdmVyc2lvbiA9ICIwLjEuMCIKLStzb3VyY2UgPSAiZ2l0 K2h0dHBzOi8vZ2l0aHViLmNvbS9oc2l2b25lbi9hbnlfYWxsX3dvcmthcm91bmQ/cmV2PTdmYjFi NzAzNGM5ZjE3MmFhZGUyMWVlMWM4NTU0ZThkOGE0OGFmODAjN2ZiMWI3MDM0YzlmMTcyYWFkZTIx ZWUxYzg1NTRlOGQ4YTQ4YWY4MCIKLStkZXBlbmRlbmNpZXMgPSBbCi0rICJjZmctaWYgMS4wLjAi LAotKyAidmVyc2lvbl9jaGVjayIsCi0rXQotKwotK1tbcGFja2FnZV1dCi0gbmFtZSA9ICJhcHBf dW5pdHMiCi0gdmVyc2lvbiA9ICIwLjcuMCIKLSBzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9n aXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCi1AQCAtNjA4LDEyICs2MTcsMTIg QEAKLSAKLSBbW3BhY2thZ2VdXQotIG5hbWUgPSAiZW5jb2RpbmdfcnMiCi0tdmVyc2lvbiA9ICIw LjguMzMiCi0rdmVyc2lvbiA9ICIwLjguMzQiCi0gc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8v Z2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgotLWNoZWNrc3VtID0gIjcyNjhi Mzg2Mjk2YTAyNWU0NzRkNTE0MDY3OGY3NWQ2ZGU5NDkzYWU1NWE1ZDcwOWVlYjlkZDA4MTQ5OTQ1 ZTEiCi0rY2hlY2tzdW0gPSAiYjQ1ZGU5MDRhYTBiMDEwYmNlMmFiNDUyNjRkMDYzMTY4MTg0N2Zh N2I2ZjJlYWE3ZGFiNzYxOTk0M2JjNGY1OSIKLSBkZXBlbmRlbmNpZXMgPSBbCi0rICJhbnlfYWxs X3dvcmthcm91bmQiLAotICAiY2ZnLWlmIDEuMC4wIiwKLS0gInBhY2tlZF9zaW1kIiwKLSBdCi0g Ci0gW1twYWNrYWdlXV0KLUBAIC0xMzA2LDE1ICsxMzE1LDYgQEAKLSBdCi0gCi0gW1twYWNrYWdl XV0KLS1uYW1lID0gInBhY2tlZF9zaW1kIgotLXZlcnNpb24gPSAiMC4zLjkiCi0tc291cmNlID0g ImdpdCtodHRwczovL2dpdGh1Yi5jb20vaHNpdm9uZW4vcGFja2VkX3NpbWQ/cmV2PWU1ODhjZWI1 Njg4NzhlMWEzMTU2ZWE5Y2U1NTFkNWI2M2VmMGNkYzQjZTU4OGNlYjU2ODg3OGUxYTMxNTZlYTlj ZTU1MWQ1YjYzZWYwY2RjNCIKLS1kZXBlbmRlbmNpZXMgPSBbCi0tICJjZmctaWYgMS4wLjAiLAot LSAibnVtLXRyYWl0cyAwLjIuMTUiLAotLV0KLS0KLS1bW3BhY2thZ2VdXQotIG5hbWUgPSAicGFy a2luZ19sb3QiCi0gdmVyc2lvbiA9ICIwLjYuMyIKLSBzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6 Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCi1AQCAtMjI0MCw2ICsyMjQw LDEyIEBACi0gY2hlY2tzdW0gPSAiODg3YjViNjMxYzJhZDAxNjI4YmJiYWE3ZGQ0Yzg2OWY4MGQz MTg2Njg4ZjhkMGI2ZjU4Nzc0ZmJlMzI0OTg4YyIKLSAKLSBbW3BhY2thZ2VdXQotK25hbWUgPSAi dmVyc2lvbl9jaGVjayIKLSt2ZXJzaW9uID0gIjAuOS40IgotK3NvdXJjZSA9ICJyZWdpc3RyeSto dHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKLStjaGVja3N1bSA9 ICI0OTg3NGI1MTY3YjY1ZDcxOTNiOGFiYTE1NjdmNWM3ZDkzZDAwMWNhZmMzNDYwMGNlZTAwM2Vk YTc4N2U0ODNmIgotKwotK1tbcGFja2FnZV1dCi0gbmFtZSA9ICJ2b2lkIgotIHZlcnNpb24gPSAi MS4wLjIiCi0gc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcv Y3JhdGVzLmlvLWluZGV4IgotZGlmZiAtTnJidSBhL0NhcmdvLnRvbWwgYi9DYXJnby50b21sCi0t LS0gYS9DYXJnby50b21sCTIwMjUtMDktMDcgMTQ6MzA6MzcuMDAwMDAwMDAwICswMzAwCi0rKysg Yi9DYXJnby50b21sCTIwMjUtMDktMTcgMTg6MDI6MjMuNzA0NDc1MjQ2ICswMzAwCi1AQCAtNTMs NCArNTMsNCBAQAotIFtwYXRjaC5jcmF0ZXMtaW9dCi0gbGlidWRldi1zeXMgPSB7IHBhdGggPSAi ZG9tL3dlYmF1dGhuL2xpYnVkZXYtc3lzIiB9Ci0gc2VyZGVfZGVyaXZlID0geyBnaXQgPSAiaHR0 cHM6Ly9naXRodWIuY29tL3NlcnZvL3NlcmRlIiwgYnJhbmNoID0gImRlc2VyaWFsaXplX2Zyb21f ZW51bXM4IiB9Ci0tcGFja2VkX3NpbWQgPSB7IGdpdCA9ICJodHRwczovL2dpdGh1Yi5jb20vaHNp dm9uZW4vcGFja2VkX3NpbWQiLCByZXYgPSAiZTU4OGNlYjU2ODg3OGUxYTMxNTZlYTljZTU1MWQ1 YjYzZWYwY2RjNCIgfQotK2FueV9hbGxfd29ya2Fyb3VuZCA9IHsgZ2l0ID0gImh0dHBzOi8vZ2l0 aHViLmNvbS9oc2l2b25lbi9hbnlfYWxsX3dvcmthcm91bmQiLCByZXYgPSAiN2ZiMWI3MDM0Yzlm MTcyYWFkZTIxZWUxYzg1NTRlOGQ4YTQ4YWY4MCIgfQotZGlmZiAtTnJidSBhL2NvbmZpZy9tYWtl ZmlsZXMvcnVzdC5tayBiL2NvbmZpZy9tYWtlZmlsZXMvcnVzdC5tawotLS0tIGEvY29uZmlnL21h a2VmaWxlcy9ydXN0Lm1rCTIwMjUtMDQtMjAgMTk6Mjg6MDEuMDAwMDAwMDAwICswMzAwCi0rKysg Yi9jb25maWcvbWFrZWZpbGVzL3J1c3QubWsJMjAyNS0wOS0xNyAxNzo0MToyMS4xMzc4MDUwNDYg KzAzMDAKLUBAIC02Niw3ICs2Niw3IEBACi0gIyBSVVNUQ19CT09UU1RSQVAgOj0gZ2tydXN0X3No YXJlZCxxY21zIGZvciBsYXRlcgotIFJVU1RDX0JPT1RTVFJBUCA6PSBna3J1c3Rfc2hhcmVkCi0g aWZkZWYgTU9aX1JVU1RfU0lNRAotLVJVU1RDX0JPT1RTVFJBUCA6PSAkKFJVU1RDX0JPT1RTVFJB UCksZW5jb2RpbmdfcnMscGFja2VkX3NpbWQKLStSVVNUQ19CT09UU1RSQVAgOj0gJChSVVNUQ19C T09UU1RSQVApLGVuY29kaW5nX3JzLGFueV9hbGxfd29ya2Fyb3VuZAotIGVuZGlmCi0gZXhwb3J0 IFJVU1RDX0JPT1RTVFJBUAotIGVuZGlmCi1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9h bnlfYWxsX3dvcmthcm91bmQvLmNhcmdvLWNoZWNrc3VtLmpzb24gYi90aGlyZF9wYXJ0eS9ydXN0 L2FueV9hbGxfd29ya2Fyb3VuZC8uY2FyZ28tY2hlY2tzdW0uanNvbgotLS0tIGEvdGhpcmRfcGFy dHkvcnVzdC9hbnlfYWxsX3dvcmthcm91bmQvLmNhcmdvLWNoZWNrc3VtLmpzb24JMTk3MC0wMS0w MSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvYW55X2Fs bF93b3JrYXJvdW5kLy5jYXJnby1jaGVja3N1bS5qc29uCTIwMjUtMDktMTcgMTc6NDE6MjEuMTM3 ODA1MDQ2ICswMzAwCi1AQCAtMCwwICsxIEBACi0reyJmaWxlcyI6eyJDYXJnby50b21sIjoiZjhj MTI3NDQ5ZGM5NDMyZDQwNGMyMWM5OTgzM2U0NjE3YWI4OGE3OTc0NDVhZjI0OWE3ZmUzYzk4OTk4 NWQ2ZCIsIkxJQ0VOU0UtQVBBQ0hFIjoiYTYwZWVhODE3NTE0NTMxNjY4ZDdlMDA3NjU3MzE0NDlm ZTE0ZDA1OWQzMjQ5ZTBiYzkzYjM2ZGU0NWY3NTlmMiIsIkxJQ0VOU0UtTUlUIjoiNjQ4NWI4ZWQz MTBkM2YwMzQwYmYxYWQxZjQ3NjQ1MDY5Y2U0MDY5ZGNjNmJiNDZjN2Q1YzZmYWY0MWRlMWZkYiIs IkxJQ0VOU0UtTUlULVFDTVMiOiIzNmQ4NDdhZTg4MmY2NTc0ZWJjNzJmNTZhNGYzNTRlNGYxMDRm ZGU0YTU4NDM3MzQ5NjQ4MmU5N2Q1MmQzMWJjIiwiUkVBRE1FLm1kIjoiNGM2MTdiOGNlZDNhMjdi N2VkZWNmMGU1ZTQxZWQ0NTFjMDRlODhkYWI1MjllN2EzNWZjY2M0ZTE1NTFlZmJkNyIsImJ1aWxk LnJzIjoiNTZiMjlhYjZkYTNlNDkwNzViZmQwYTdiNjkwMjY3YzgwMTYyOThiZjBkMzMyZTJlNjhi YmFmMTlkZWNiYmY3MSIsInNyYy9saWIucnMiOiI3MTE4MTA2NjkwYjlkMjVjNWQwYTNlMjA3OWZl YjgzZDc2ZjFkNDM0ZDBkYTM2YjlkMDM1MTgwNmQyN2M4NTBkIn0sInBhY2thZ2UiOm51bGx9Ci1c IE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0 L2FueV9hbGxfd29ya2Fyb3VuZC9DYXJnby50b21sIGIvdGhpcmRfcGFydHkvcnVzdC9hbnlfYWxs X3dvcmthcm91bmQvQ2FyZ28udG9tbAotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9hbnlfYWxsX3dv cmthcm91bmQvQ2FyZ28udG9tbAkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAot KysrIGIvdGhpcmRfcGFydHkvcnVzdC9hbnlfYWxsX3dvcmthcm91bmQvQ2FyZ28udG9tbAkyMDI1 LTA5LTE3IDE3OjQxOjIxLjEzNzgwNTA0NiArMDMwMAotQEAgLTAsMCArMSwyOCBAQAotKyMgVEhJ UyBGSUxFIElTIEFVVE9NQVRJQ0FMTFkgR0VORVJBVEVEIEJZIENBUkdPCi0rIwotKyMgV2hlbiB1 cGxvYWRpbmcgY3JhdGVzIHRvIHRoZSByZWdpc3RyeSBDYXJnbyB3aWxsIGF1dG9tYXRpY2FsbHkK LSsjICJub3JtYWxpemUiIENhcmdvLnRvbWwgZmlsZXMgZm9yIG1heGltYWwgY29tcGF0aWJpbGl0 eQotKyMgd2l0aCBhbGwgdmVyc2lvbnMgb2YgQ2FyZ28gYW5kIGFsc28gcmV3cml0ZSBgcGF0aGAg ZGVwZW5kZW5jaWVzCi0rIyB0byByZWdpc3RyeSAoZS5nLiwgY3JhdGVzLmlvKSBkZXBlbmRlbmNp ZXMuCi0rIwotKyMgSWYgeW91IGFyZSByZWFkaW5nIHRoaXMgZmlsZSBiZSBhd2FyZSB0aGF0IHRo ZSBvcmlnaW5hbCBDYXJnby50b21sCi0rIyB3aWxsIGxpa2VseSBsb29rIHZlcnkgZGlmZmVyZW50 IChhbmQgbXVjaCBtb3JlIHJlYXNvbmFibGUpLgotKyMgU2VlIENhcmdvLnRvbWwub3JpZyBmb3Ig dGhlIG9yaWdpbmFsIGNvbnRlbnRzLgotKwotK1twYWNrYWdlXQotK2VkaXRpb24gPSAiMjAyMSIK LStuYW1lID0gImFueV9hbGxfd29ya2Fyb3VuZCIKLSt2ZXJzaW9uID0gIjAuMS4wIgotK2F1dGhv cnMgPSBbIkhlbnJpIFNpdm9uZW4gPGhzaXZvbmVuQGhzaXZvbmVuLmZpPiJdCi0rZGVzY3JpcHRp b24gPSAiV29ya2Fyb3VuZCBmb3IgYmFkIExMVk0gY29kZWdlbiBmb3IgYm9vbGVhbiByZWR1Y3Rp b25zIG9uIDMyLWJpdCBBUk0iCi0raG9tZXBhZ2UgPSAiaHR0cHM6Ly9kb2NzLnJzL2FueV9hbGxf d29ya2Fyb3VuZC8iCi0rZG9jdW1lbnRhdGlvbiA9ICJodHRwczovL2RvY3MucnMvYW55X2FsbF93 b3JrYXJvdW5kLyIKLStyZWFkbWUgPSAiUkVBRE1FLm1kIgotK2xpY2Vuc2UgPSAiTUlUIE9SIEFw YWNoZS0yLjAiCi0rcmVwb3NpdG9yeSA9ICJodHRwczovL2dpdGh1Yi5jb20vaHNpdm9uZW4vYW55 X2FsbF93b3JrYXJvdW5kIgotKwotK1tkZXBlbmRlbmNpZXNdCi0rY2ZnLWlmID0gIjEuMCIKLSsK LStbYnVpbGQtZGVwZW5kZW5jaWVzXQotK3ZlcnNpb25fY2hlY2sgPSAiMC45IgotZGlmZiAtTnJi dSBhL3RoaXJkX3BhcnR5L3J1c3QvYW55X2FsbF93b3JrYXJvdW5kL0xJQ0VOU0UtQVBBQ0hFIGIv dGhpcmRfcGFydHkvcnVzdC9hbnlfYWxsX3dvcmthcm91bmQvTElDRU5TRS1BUEFDSEUKLS0tLSBh L3RoaXJkX3BhcnR5L3J1c3QvYW55X2FsbF93b3JrYXJvdW5kL0xJQ0VOU0UtQVBBQ0hFCTE5NzAt MDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L2Fu eV9hbGxfd29ya2Fyb3VuZC9MSUNFTlNFLUFQQUNIRQkyMDI1LTA5LTE3IDE3OjQxOjIxLjEzNzgw NTA0NiArMDMwMAotQEAgLTAsMCArMSwyMDEgQEAKLSsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBBcGFjaGUgTGljZW5zZQotKyAgICAgICAgICAgICAgICAgICAgICAgIFZlcnNpb24gMi4w LCBKYW51YXJ5IDIwMDQKLSsgICAgICAgICAgICAgICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5v cmcvbGljZW5zZXMvCi0rCi0rVEVSTVMgQU5EIENPTkRJVElPTlMgRk9SIFVTRSwgUkVQUk9EVUNU SU9OLCBBTkQgRElTVFJJQlVUSU9OCi0rCi0rMS4gRGVmaW5pdGlvbnMuCi0rCi0rICAgIkxpY2Vu c2UiIHNoYWxsIG1lYW4gdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIGZvciB1c2UsIHJlcHJvZHVj dGlvbiwKLSsgICBhbmQgZGlzdHJpYnV0aW9uIGFzIGRlZmluZWQgYnkgU2VjdGlvbnMgMSB0aHJv dWdoIDkgb2YgdGhpcyBkb2N1bWVudC4KLSsKLSsgICAiTGljZW5zb3IiIHNoYWxsIG1lYW4gdGhl IGNvcHlyaWdodCBvd25lciBvciBlbnRpdHkgYXV0aG9yaXplZCBieQotKyAgIHRoZSBjb3B5cmln aHQgb3duZXIgdGhhdCBpcyBncmFudGluZyB0aGUgTGljZW5zZS4KLSsKLSsgICAiTGVnYWwgRW50 aXR5IiBzaGFsbCBtZWFuIHRoZSB1bmlvbiBvZiB0aGUgYWN0aW5nIGVudGl0eSBhbmQgYWxsCi0r ICAgb3RoZXIgZW50aXRpZXMgdGhhdCBjb250cm9sLCBhcmUgY29udHJvbGxlZCBieSwgb3IgYXJl IHVuZGVyIGNvbW1vbgotKyAgIGNvbnRyb2wgd2l0aCB0aGF0IGVudGl0eS4gRm9yIHRoZSBwdXJw b3NlcyBvZiB0aGlzIGRlZmluaXRpb24sCi0rICAgImNvbnRyb2wiIG1lYW5zIChpKSB0aGUgcG93 ZXIsIGRpcmVjdCBvciBpbmRpcmVjdCwgdG8gY2F1c2UgdGhlCi0rICAgZGlyZWN0aW9uIG9yIG1h bmFnZW1lbnQgb2Ygc3VjaCBlbnRpdHksIHdoZXRoZXIgYnkgY29udHJhY3Qgb3IKLSsgICBvdGhl cndpc2UsIG9yIChpaSkgb3duZXJzaGlwIG9mIGZpZnR5IHBlcmNlbnQgKDUwJSkgb3IgbW9yZSBv ZiB0aGUKLSsgICBvdXRzdGFuZGluZyBzaGFyZXMsIG9yIChpaWkpIGJlbmVmaWNpYWwgb3duZXJz aGlwIG9mIHN1Y2ggZW50aXR5LgotKwotKyAgICJZb3UiIChvciAiWW91ciIpIHNoYWxsIG1lYW4g YW4gaW5kaXZpZHVhbCBvciBMZWdhbCBFbnRpdHkKLSsgICBleGVyY2lzaW5nIHBlcm1pc3Npb25z IGdyYW50ZWQgYnkgdGhpcyBMaWNlbnNlLgotKwotKyAgICJTb3VyY2UiIGZvcm0gc2hhbGwgbWVh biB0aGUgcHJlZmVycmVkIGZvcm0gZm9yIG1ha2luZyBtb2RpZmljYXRpb25zLAotKyAgIGluY2x1 ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8gc29mdHdhcmUgc291cmNlIGNvZGUsIGRvY3VtZW50YXRp b24KLSsgICBzb3VyY2UsIGFuZCBjb25maWd1cmF0aW9uIGZpbGVzLgotKwotKyAgICJPYmplY3Qi IGZvcm0gc2hhbGwgbWVhbiBhbnkgZm9ybSByZXN1bHRpbmcgZnJvbSBtZWNoYW5pY2FsCi0rICAg dHJhbnNmb3JtYXRpb24gb3IgdHJhbnNsYXRpb24gb2YgYSBTb3VyY2UgZm9ybSwgaW5jbHVkaW5n IGJ1dAotKyAgIG5vdCBsaW1pdGVkIHRvIGNvbXBpbGVkIG9iamVjdCBjb2RlLCBnZW5lcmF0ZWQg ZG9jdW1lbnRhdGlvbiwKLSsgICBhbmQgY29udmVyc2lvbnMgdG8gb3RoZXIgbWVkaWEgdHlwZXMu Ci0rCi0rICAgIldvcmsiIHNoYWxsIG1lYW4gdGhlIHdvcmsgb2YgYXV0aG9yc2hpcCwgd2hldGhl ciBpbiBTb3VyY2Ugb3IKLSsgICBPYmplY3QgZm9ybSwgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhl IExpY2Vuc2UsIGFzIGluZGljYXRlZCBieSBhCi0rICAgY29weXJpZ2h0IG5vdGljZSB0aGF0IGlz IGluY2x1ZGVkIGluIG9yIGF0dGFjaGVkIHRvIHRoZSB3b3JrCi0rICAgKGFuIGV4YW1wbGUgaXMg cHJvdmlkZWQgaW4gdGhlIEFwcGVuZGl4IGJlbG93KS4KLSsKLSsgICAiRGVyaXZhdGl2ZSBXb3Jr cyIgc2hhbGwgbWVhbiBhbnkgd29yaywgd2hldGhlciBpbiBTb3VyY2Ugb3IgT2JqZWN0Ci0rICAg Zm9ybSwgdGhhdCBpcyBiYXNlZCBvbiAob3IgZGVyaXZlZCBmcm9tKSB0aGUgV29yayBhbmQgZm9y IHdoaWNoIHRoZQotKyAgIGVkaXRvcmlhbCByZXZpc2lvbnMsIGFubm90YXRpb25zLCBlbGFib3Jh dGlvbnMsIG9yIG90aGVyIG1vZGlmaWNhdGlvbnMKLSsgICByZXByZXNlbnQsIGFzIGEgd2hvbGUs IGFuIG9yaWdpbmFsIHdvcmsgb2YgYXV0aG9yc2hpcC4gRm9yIHRoZSBwdXJwb3NlcwotKyAgIG9m IHRoaXMgTGljZW5zZSwgRGVyaXZhdGl2ZSBXb3JrcyBzaGFsbCBub3QgaW5jbHVkZSB3b3JrcyB0 aGF0IHJlbWFpbgotKyAgIHNlcGFyYWJsZSBmcm9tLCBvciBtZXJlbHkgbGluayAob3IgYmluZCBi eSBuYW1lKSB0byB0aGUgaW50ZXJmYWNlcyBvZiwKLSsgICB0aGUgV29yayBhbmQgRGVyaXZhdGl2 ZSBXb3JrcyB0aGVyZW9mLgotKwotKyAgICJDb250cmlidXRpb24iIHNoYWxsIG1lYW4gYW55IHdv cmsgb2YgYXV0aG9yc2hpcCwgaW5jbHVkaW5nCi0rICAgdGhlIG9yaWdpbmFsIHZlcnNpb24gb2Yg dGhlIFdvcmsgYW5kIGFueSBtb2RpZmljYXRpb25zIG9yIGFkZGl0aW9ucwotKyAgIHRvIHRoYXQg V29yayBvciBEZXJpdmF0aXZlIFdvcmtzIHRoZXJlb2YsIHRoYXQgaXMgaW50ZW50aW9uYWxseQot KyAgIHN1Ym1pdHRlZCB0byBMaWNlbnNvciBmb3IgaW5jbHVzaW9uIGluIHRoZSBXb3JrIGJ5IHRo ZSBjb3B5cmlnaHQgb3duZXIKLSsgICBvciBieSBhbiBpbmRpdmlkdWFsIG9yIExlZ2FsIEVudGl0 eSBhdXRob3JpemVkIHRvIHN1Ym1pdCBvbiBiZWhhbGYgb2YKLSsgICB0aGUgY29weXJpZ2h0IG93 bmVyLiBGb3IgdGhlIHB1cnBvc2VzIG9mIHRoaXMgZGVmaW5pdGlvbiwgInN1Ym1pdHRlZCIKLSsg ICBtZWFucyBhbnkgZm9ybSBvZiBlbGVjdHJvbmljLCB2ZXJiYWwsIG9yIHdyaXR0ZW4gY29tbXVu aWNhdGlvbiBzZW50Ci0rICAgdG8gdGhlIExpY2Vuc29yIG9yIGl0cyByZXByZXNlbnRhdGl2ZXMs IGluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8KLSsgICBjb21tdW5pY2F0aW9uIG9uIGVsZWN0 cm9uaWMgbWFpbGluZyBsaXN0cywgc291cmNlIGNvZGUgY29udHJvbCBzeXN0ZW1zLAotKyAgIGFu ZCBpc3N1ZSB0cmFja2luZyBzeXN0ZW1zIHRoYXQgYXJlIG1hbmFnZWQgYnksIG9yIG9uIGJlaGFs ZiBvZiwgdGhlCi0rICAgTGljZW5zb3IgZm9yIHRoZSBwdXJwb3NlIG9mIGRpc2N1c3NpbmcgYW5k IGltcHJvdmluZyB0aGUgV29yaywgYnV0Ci0rICAgZXhjbHVkaW5nIGNvbW11bmljYXRpb24gdGhh dCBpcyBjb25zcGljdW91c2x5IG1hcmtlZCBvciBvdGhlcndpc2UKLSsgICBkZXNpZ25hdGVkIGlu IHdyaXRpbmcgYnkgdGhlIGNvcHlyaWdodCBvd25lciBhcyAiTm90IGEgQ29udHJpYnV0aW9uLiIK LSsKLSsgICAiQ29udHJpYnV0b3IiIHNoYWxsIG1lYW4gTGljZW5zb3IgYW5kIGFueSBpbmRpdmlk dWFsIG9yIExlZ2FsIEVudGl0eQotKyAgIG9uIGJlaGFsZiBvZiB3aG9tIGEgQ29udHJpYnV0aW9u IGhhcyBiZWVuIHJlY2VpdmVkIGJ5IExpY2Vuc29yIGFuZAotKyAgIHN1YnNlcXVlbnRseSBpbmNv cnBvcmF0ZWQgd2l0aGluIHRoZSBXb3JrLgotKwotKzIuIEdyYW50IG9mIENvcHlyaWdodCBMaWNl bnNlLiBTdWJqZWN0IHRvIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZgotKyAgIHRoaXMgTGlj ZW5zZSwgZWFjaCBDb250cmlidXRvciBoZXJlYnkgZ3JhbnRzIHRvIFlvdSBhIHBlcnBldHVhbCwK LSsgICB3b3JsZHdpZGUsIG5vbi1leGNsdXNpdmUsIG5vLWNoYXJnZSwgcm95YWx0eS1mcmVlLCBp cnJldm9jYWJsZQotKyAgIGNvcHlyaWdodCBsaWNlbnNlIHRvIHJlcHJvZHVjZSwgcHJlcGFyZSBE ZXJpdmF0aXZlIFdvcmtzIG9mLAotKyAgIHB1YmxpY2x5IGRpc3BsYXksIHB1YmxpY2x5IHBlcmZv cm0sIHN1YmxpY2Vuc2UsIGFuZCBkaXN0cmlidXRlIHRoZQotKyAgIFdvcmsgYW5kIHN1Y2ggRGVy aXZhdGl2ZSBXb3JrcyBpbiBTb3VyY2Ugb3IgT2JqZWN0IGZvcm0uCi0rCi0rMy4gR3JhbnQgb2Yg UGF0ZW50IExpY2Vuc2UuIFN1YmplY3QgdG8gdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mCi0r ICAgdGhpcyBMaWNlbnNlLCBlYWNoIENvbnRyaWJ1dG9yIGhlcmVieSBncmFudHMgdG8gWW91IGEg cGVycGV0dWFsLAotKyAgIHdvcmxkd2lkZSwgbm9uLWV4Y2x1c2l2ZSwgbm8tY2hhcmdlLCByb3lh bHR5LWZyZWUsIGlycmV2b2NhYmxlCi0rICAgKGV4Y2VwdCBhcyBzdGF0ZWQgaW4gdGhpcyBzZWN0 aW9uKSBwYXRlbnQgbGljZW5zZSB0byBtYWtlLCBoYXZlIG1hZGUsCi0rICAgdXNlLCBvZmZlciB0 byBzZWxsLCBzZWxsLCBpbXBvcnQsIGFuZCBvdGhlcndpc2UgdHJhbnNmZXIgdGhlIFdvcmssCi0r ICAgd2hlcmUgc3VjaCBsaWNlbnNlIGFwcGxpZXMgb25seSB0byB0aG9zZSBwYXRlbnQgY2xhaW1z IGxpY2Vuc2FibGUKLSsgICBieSBzdWNoIENvbnRyaWJ1dG9yIHRoYXQgYXJlIG5lY2Vzc2FyaWx5 IGluZnJpbmdlZCBieSB0aGVpcgotKyAgIENvbnRyaWJ1dGlvbihzKSBhbG9uZSBvciBieSBjb21i aW5hdGlvbiBvZiB0aGVpciBDb250cmlidXRpb24ocykKLSsgICB3aXRoIHRoZSBXb3JrIHRvIHdo aWNoIHN1Y2ggQ29udHJpYnV0aW9uKHMpIHdhcyBzdWJtaXR0ZWQuIElmIFlvdQotKyAgIGluc3Rp dHV0ZSBwYXRlbnQgbGl0aWdhdGlvbiBhZ2FpbnN0IGFueSBlbnRpdHkgKGluY2x1ZGluZyBhCi0r ICAgY3Jvc3MtY2xhaW0gb3IgY291bnRlcmNsYWltIGluIGEgbGF3c3VpdCkgYWxsZWdpbmcgdGhh dCB0aGUgV29yawotKyAgIG9yIGEgQ29udHJpYnV0aW9uIGluY29ycG9yYXRlZCB3aXRoaW4gdGhl IFdvcmsgY29uc3RpdHV0ZXMgZGlyZWN0Ci0rICAgb3IgY29udHJpYnV0b3J5IHBhdGVudCBpbmZy aW5nZW1lbnQsIHRoZW4gYW55IHBhdGVudCBsaWNlbnNlcwotKyAgIGdyYW50ZWQgdG8gWW91IHVu ZGVyIHRoaXMgTGljZW5zZSBmb3IgdGhhdCBXb3JrIHNoYWxsIHRlcm1pbmF0ZQotKyAgIGFzIG9m IHRoZSBkYXRlIHN1Y2ggbGl0aWdhdGlvbiBpcyBmaWxlZC4KLSsKLSs0LiBSZWRpc3RyaWJ1dGlv bi4gWW91IG1heSByZXByb2R1Y2UgYW5kIGRpc3RyaWJ1dGUgY29waWVzIG9mIHRoZQotKyAgIFdv cmsgb3IgRGVyaXZhdGl2ZSBXb3JrcyB0aGVyZW9mIGluIGFueSBtZWRpdW0sIHdpdGggb3Igd2l0 aG91dAotKyAgIG1vZGlmaWNhdGlvbnMsIGFuZCBpbiBTb3VyY2Ugb3IgT2JqZWN0IGZvcm0sIHBy b3ZpZGVkIHRoYXQgWW91Ci0rICAgbWVldCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Ci0rCi0r ICAgKGEpIFlvdSBtdXN0IGdpdmUgYW55IG90aGVyIHJlY2lwaWVudHMgb2YgdGhlIFdvcmsgb3IK LSsgICAgICAgRGVyaXZhdGl2ZSBXb3JrcyBhIGNvcHkgb2YgdGhpcyBMaWNlbnNlOyBhbmQKLSsK LSsgICAoYikgWW91IG11c3QgY2F1c2UgYW55IG1vZGlmaWVkIGZpbGVzIHRvIGNhcnJ5IHByb21p bmVudCBub3RpY2VzCi0rICAgICAgIHN0YXRpbmcgdGhhdCBZb3UgY2hhbmdlZCB0aGUgZmlsZXM7 IGFuZAotKwotKyAgIChjKSBZb3UgbXVzdCByZXRhaW4sIGluIHRoZSBTb3VyY2UgZm9ybSBvZiBh bnkgRGVyaXZhdGl2ZSBXb3JrcwotKyAgICAgICB0aGF0IFlvdSBkaXN0cmlidXRlLCBhbGwgY29w eXJpZ2h0LCBwYXRlbnQsIHRyYWRlbWFyaywgYW5kCi0rICAgICAgIGF0dHJpYnV0aW9uIG5vdGlj ZXMgZnJvbSB0aGUgU291cmNlIGZvcm0gb2YgdGhlIFdvcmssCi0rICAgICAgIGV4Y2x1ZGluZyB0 aG9zZSBub3RpY2VzIHRoYXQgZG8gbm90IHBlcnRhaW4gdG8gYW55IHBhcnQgb2YKLSsgICAgICAg dGhlIERlcml2YXRpdmUgV29ya3M7IGFuZAotKwotKyAgIChkKSBJZiB0aGUgV29yayBpbmNsdWRl cyBhICJOT1RJQ0UiIHRleHQgZmlsZSBhcyBwYXJ0IG9mIGl0cwotKyAgICAgICBkaXN0cmlidXRp b24sIHRoZW4gYW55IERlcml2YXRpdmUgV29ya3MgdGhhdCBZb3UgZGlzdHJpYnV0ZSBtdXN0Ci0r ICAgICAgIGluY2x1ZGUgYSByZWFkYWJsZSBjb3B5IG9mIHRoZSBhdHRyaWJ1dGlvbiBub3RpY2Vz IGNvbnRhaW5lZAotKyAgICAgICB3aXRoaW4gc3VjaCBOT1RJQ0UgZmlsZSwgZXhjbHVkaW5nIHRo b3NlIG5vdGljZXMgdGhhdCBkbyBub3QKLSsgICAgICAgcGVydGFpbiB0byBhbnkgcGFydCBvZiB0 aGUgRGVyaXZhdGl2ZSBXb3JrcywgaW4gYXQgbGVhc3Qgb25lCi0rICAgICAgIG9mIHRoZSBmb2xs b3dpbmcgcGxhY2VzOiB3aXRoaW4gYSBOT1RJQ0UgdGV4dCBmaWxlIGRpc3RyaWJ1dGVkCi0rICAg ICAgIGFzIHBhcnQgb2YgdGhlIERlcml2YXRpdmUgV29ya3M7IHdpdGhpbiB0aGUgU291cmNlIGZv cm0gb3IKLSsgICAgICAgZG9jdW1lbnRhdGlvbiwgaWYgcHJvdmlkZWQgYWxvbmcgd2l0aCB0aGUg RGVyaXZhdGl2ZSBXb3Jrczsgb3IsCi0rICAgICAgIHdpdGhpbiBhIGRpc3BsYXkgZ2VuZXJhdGVk IGJ5IHRoZSBEZXJpdmF0aXZlIFdvcmtzLCBpZiBhbmQKLSsgICAgICAgd2hlcmV2ZXIgc3VjaCB0 aGlyZC1wYXJ0eSBub3RpY2VzIG5vcm1hbGx5IGFwcGVhci4gVGhlIGNvbnRlbnRzCi0rICAgICAg IG9mIHRoZSBOT1RJQ0UgZmlsZSBhcmUgZm9yIGluZm9ybWF0aW9uYWwgcHVycG9zZXMgb25seSBh bmQKLSsgICAgICAgZG8gbm90IG1vZGlmeSB0aGUgTGljZW5zZS4gWW91IG1heSBhZGQgWW91ciBv d24gYXR0cmlidXRpb24KLSsgICAgICAgbm90aWNlcyB3aXRoaW4gRGVyaXZhdGl2ZSBXb3JrcyB0 aGF0IFlvdSBkaXN0cmlidXRlLCBhbG9uZ3NpZGUKLSsgICAgICAgb3IgYXMgYW4gYWRkZW5kdW0g dG8gdGhlIE5PVElDRSB0ZXh0IGZyb20gdGhlIFdvcmssIHByb3ZpZGVkCi0rICAgICAgIHRoYXQg c3VjaCBhZGRpdGlvbmFsIGF0dHJpYnV0aW9uIG5vdGljZXMgY2Fubm90IGJlIGNvbnN0cnVlZAot KyAgICAgICBhcyBtb2RpZnlpbmcgdGhlIExpY2Vuc2UuCi0rCi0rICAgWW91IG1heSBhZGQgWW91 ciBvd24gY29weXJpZ2h0IHN0YXRlbWVudCB0byBZb3VyIG1vZGlmaWNhdGlvbnMgYW5kCi0rICAg bWF5IHByb3ZpZGUgYWRkaXRpb25hbCBvciBkaWZmZXJlbnQgbGljZW5zZSB0ZXJtcyBhbmQgY29u ZGl0aW9ucwotKyAgIGZvciB1c2UsIHJlcHJvZHVjdGlvbiwgb3IgZGlzdHJpYnV0aW9uIG9mIFlv dXIgbW9kaWZpY2F0aW9ucywgb3IKLSsgICBmb3IgYW55IHN1Y2ggRGVyaXZhdGl2ZSBXb3JrcyBh cyBhIHdob2xlLCBwcm92aWRlZCBZb3VyIHVzZSwKLSsgICByZXByb2R1Y3Rpb24sIGFuZCBkaXN0 cmlidXRpb24gb2YgdGhlIFdvcmsgb3RoZXJ3aXNlIGNvbXBsaWVzIHdpdGgKLSsgICB0aGUgY29u ZGl0aW9ucyBzdGF0ZWQgaW4gdGhpcyBMaWNlbnNlLgotKwotKzUuIFN1Ym1pc3Npb24gb2YgQ29u dHJpYnV0aW9ucy4gVW5sZXNzIFlvdSBleHBsaWNpdGx5IHN0YXRlIG90aGVyd2lzZSwKLSsgICBh bnkgQ29udHJpYnV0aW9uIGludGVudGlvbmFsbHkgc3VibWl0dGVkIGZvciBpbmNsdXNpb24gaW4g dGhlIFdvcmsKLSsgICBieSBZb3UgdG8gdGhlIExpY2Vuc29yIHNoYWxsIGJlIHVuZGVyIHRoZSB0 ZXJtcyBhbmQgY29uZGl0aW9ucyBvZgotKyAgIHRoaXMgTGljZW5zZSwgd2l0aG91dCBhbnkgYWRk aXRpb25hbCB0ZXJtcyBvciBjb25kaXRpb25zLgotKyAgIE5vdHdpdGhzdGFuZGluZyB0aGUgYWJv dmUsIG5vdGhpbmcgaGVyZWluIHNoYWxsIHN1cGVyc2VkZSBvciBtb2RpZnkKLSsgICB0aGUgdGVy bXMgb2YgYW55IHNlcGFyYXRlIGxpY2Vuc2UgYWdyZWVtZW50IHlvdSBtYXkgaGF2ZSBleGVjdXRl ZAotKyAgIHdpdGggTGljZW5zb3IgcmVnYXJkaW5nIHN1Y2ggQ29udHJpYnV0aW9ucy4KLSsKLSs2 LiBUcmFkZW1hcmtzLiBUaGlzIExpY2Vuc2UgZG9lcyBub3QgZ3JhbnQgcGVybWlzc2lvbiB0byB1 c2UgdGhlIHRyYWRlCi0rICAgbmFtZXMsIHRyYWRlbWFya3MsIHNlcnZpY2UgbWFya3MsIG9yIHBy b2R1Y3QgbmFtZXMgb2YgdGhlIExpY2Vuc29yLAotKyAgIGV4Y2VwdCBhcyByZXF1aXJlZCBmb3Ig cmVhc29uYWJsZSBhbmQgY3VzdG9tYXJ5IHVzZSBpbiBkZXNjcmliaW5nIHRoZQotKyAgIG9yaWdp biBvZiB0aGUgV29yayBhbmQgcmVwcm9kdWNpbmcgdGhlIGNvbnRlbnQgb2YgdGhlIE5PVElDRSBm aWxlLgotKwotKzcuIERpc2NsYWltZXIgb2YgV2FycmFudHkuIFVubGVzcyByZXF1aXJlZCBieSBh cHBsaWNhYmxlIGxhdyBvcgotKyAgIGFncmVlZCB0byBpbiB3cml0aW5nLCBMaWNlbnNvciBwcm92 aWRlcyB0aGUgV29yayAoYW5kIGVhY2gKLSsgICBDb250cmlidXRvciBwcm92aWRlcyBpdHMgQ29u dHJpYnV0aW9ucykgb24gYW4gIkFTIElTIiBCQVNJUywKLSsgICBXSVRIT1VUIFdBUlJBTlRJRVMg T1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IKLSsgICBpbXBsaWVk LCBpbmNsdWRpbmcsIHdpdGhvdXQgbGltaXRhdGlvbiwgYW55IHdhcnJhbnRpZXMgb3IgY29uZGl0 aW9ucwotKyAgIG9mIFRJVExFLCBOT04tSU5GUklOR0VNRU5ULCBNRVJDSEFOVEFCSUxJVFksIG9y IEZJVE5FU1MgRk9SIEEKLSsgICBQQVJUSUNVTEFSIFBVUlBPU0UuIFlvdSBhcmUgc29sZWx5IHJl c3BvbnNpYmxlIGZvciBkZXRlcm1pbmluZyB0aGUKLSsgICBhcHByb3ByaWF0ZW5lc3Mgb2YgdXNp bmcgb3IgcmVkaXN0cmlidXRpbmcgdGhlIFdvcmsgYW5kIGFzc3VtZSBhbnkKLSsgICByaXNrcyBh c3NvY2lhdGVkIHdpdGggWW91ciBleGVyY2lzZSBvZiBwZXJtaXNzaW9ucyB1bmRlciB0aGlzIExp Y2Vuc2UuCi0rCi0rOC4gTGltaXRhdGlvbiBvZiBMaWFiaWxpdHkuIEluIG5vIGV2ZW50IGFuZCB1 bmRlciBubyBsZWdhbCB0aGVvcnksCi0rICAgd2hldGhlciBpbiB0b3J0IChpbmNsdWRpbmcgbmVn bGlnZW5jZSksIGNvbnRyYWN0LCBvciBvdGhlcndpc2UsCi0rICAgdW5sZXNzIHJlcXVpcmVkIGJ5 IGFwcGxpY2FibGUgbGF3IChzdWNoIGFzIGRlbGliZXJhdGUgYW5kIGdyb3NzbHkKLSsgICBuZWds aWdlbnQgYWN0cykgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNoYWxsIGFueSBDb250cmlidXRv ciBiZQotKyAgIGxpYWJsZSB0byBZb3UgZm9yIGRhbWFnZXMsIGluY2x1ZGluZyBhbnkgZGlyZWN0 LCBpbmRpcmVjdCwgc3BlY2lhbCwKLSsgICBpbmNpZGVudGFsLCBvciBjb25zZXF1ZW50aWFsIGRh bWFnZXMgb2YgYW55IGNoYXJhY3RlciBhcmlzaW5nIGFzIGEKLSsgICByZXN1bHQgb2YgdGhpcyBM aWNlbnNlIG9yIG91dCBvZiB0aGUgdXNlIG9yIGluYWJpbGl0eSB0byB1c2UgdGhlCi0rICAgV29y ayAoaW5jbHVkaW5nIGJ1dCBub3QgbGltaXRlZCB0byBkYW1hZ2VzIGZvciBsb3NzIG9mIGdvb2R3 aWxsLAotKyAgIHdvcmsgc3RvcHBhZ2UsIGNvbXB1dGVyIGZhaWx1cmUgb3IgbWFsZnVuY3Rpb24s IG9yIGFueSBhbmQgYWxsCi0rICAgb3RoZXIgY29tbWVyY2lhbCBkYW1hZ2VzIG9yIGxvc3Nlcyks IGV2ZW4gaWYgc3VjaCBDb250cmlidXRvcgotKyAgIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBv c3NpYmlsaXR5IG9mIHN1Y2ggZGFtYWdlcy4KLSsKLSs5LiBBY2NlcHRpbmcgV2FycmFudHkgb3Ig QWRkaXRpb25hbCBMaWFiaWxpdHkuIFdoaWxlIHJlZGlzdHJpYnV0aW5nCi0rICAgdGhlIFdvcmsg b3IgRGVyaXZhdGl2ZSBXb3JrcyB0aGVyZW9mLCBZb3UgbWF5IGNob29zZSB0byBvZmZlciwKLSsg ICBhbmQgY2hhcmdlIGEgZmVlIGZvciwgYWNjZXB0YW5jZSBvZiBzdXBwb3J0LCB3YXJyYW50eSwg aW5kZW1uaXR5LAotKyAgIG9yIG90aGVyIGxpYWJpbGl0eSBvYmxpZ2F0aW9ucyBhbmQvb3Igcmln aHRzIGNvbnNpc3RlbnQgd2l0aCB0aGlzCi0rICAgTGljZW5zZS4gSG93ZXZlciwgaW4gYWNjZXB0 aW5nIHN1Y2ggb2JsaWdhdGlvbnMsIFlvdSBtYXkgYWN0IG9ubHkKLSsgICBvbiBZb3VyIG93biBi ZWhhbGYgYW5kIG9uIFlvdXIgc29sZSByZXNwb25zaWJpbGl0eSwgbm90IG9uIGJlaGFsZgotKyAg IG9mIGFueSBvdGhlciBDb250cmlidXRvciwgYW5kIG9ubHkgaWYgWW91IGFncmVlIHRvIGluZGVt bmlmeSwKLSsgICBkZWZlbmQsIGFuZCBob2xkIGVhY2ggQ29udHJpYnV0b3IgaGFybWxlc3MgZm9y IGFueSBsaWFiaWxpdHkKLSsgICBpbmN1cnJlZCBieSwgb3IgY2xhaW1zIGFzc2VydGVkIGFnYWlu c3QsIHN1Y2ggQ29udHJpYnV0b3IgYnkgcmVhc29uCi0rICAgb2YgeW91ciBhY2NlcHRpbmcgYW55 IHN1Y2ggd2FycmFudHkgb3IgYWRkaXRpb25hbCBsaWFiaWxpdHkuCi0rCi0rRU5EIE9GIFRFUk1T IEFORCBDT05ESVRJT05TCi0rCi0rQVBQRU5ESVg6IEhvdyB0byBhcHBseSB0aGUgQXBhY2hlIExp Y2Vuc2UgdG8geW91ciB3b3JrLgotKwotKyAgIFRvIGFwcGx5IHRoZSBBcGFjaGUgTGljZW5zZSB0 byB5b3VyIHdvcmssIGF0dGFjaCB0aGUgZm9sbG93aW5nCi0rICAgYm9pbGVycGxhdGUgbm90aWNl LCB3aXRoIHRoZSBmaWVsZHMgZW5jbG9zZWQgYnkgYnJhY2tldHMgIltdIgotKyAgIHJlcGxhY2Vk IHdpdGggeW91ciBvd24gaWRlbnRpZnlpbmcgaW5mb3JtYXRpb24uIChEb24ndCBpbmNsdWRlCi0r ICAgdGhlIGJyYWNrZXRzISkgIFRoZSB0ZXh0IHNob3VsZCBiZSBlbmNsb3NlZCBpbiB0aGUgYXBw cm9wcmlhdGUKLSsgICBjb21tZW50IHN5bnRheCBmb3IgdGhlIGZpbGUgZm9ybWF0LiBXZSBhbHNv IHJlY29tbWVuZCB0aGF0IGEKLSsgICBmaWxlIG9yIGNsYXNzIG5hbWUgYW5kIGRlc2NyaXB0aW9u IG9mIHB1cnBvc2UgYmUgaW5jbHVkZWQgb24gdGhlCi0rICAgc2FtZSAicHJpbnRlZCBwYWdlIiBh cyB0aGUgY29weXJpZ2h0IG5vdGljZSBmb3IgZWFzaWVyCi0rICAgaWRlbnRpZmljYXRpb24gd2l0 aGluIHRoaXJkLXBhcnR5IGFyY2hpdmVzLgotKwotK0NvcHlyaWdodCBbeXl5eV0gW25hbWUgb2Yg Y29weXJpZ2h0IG93bmVyXQotKwotK0xpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwg VmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotK3lvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUg ZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLStZb3UgbWF5IG9idGFpbiBh IGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSsKLSsJaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vu c2VzL0xJQ0VOU0UtMi4wCi0rCi0rVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9y IGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotK2Rpc3RyaWJ1dGVkIHVuZGVyIHRoZSBM aWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0rV0lUSE9VVCBXQVJS QU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxp ZWQuCi0rU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5n IHBlcm1pc3Npb25zIGFuZAotK2xpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotZGlmZiAt TnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvYW55X2FsbF93b3JrYXJvdW5kL0xJQ0VOU0UtTUlUIGIv dGhpcmRfcGFydHkvcnVzdC9hbnlfYWxsX3dvcmthcm91bmQvTElDRU5TRS1NSVQKLS0tLSBhL3Ro aXJkX3BhcnR5L3J1c3QvYW55X2FsbF93b3JrYXJvdW5kL0xJQ0VOU0UtTUlUCTE5NzAtMDEtMDEg MDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L2FueV9hbGxf d29ya2Fyb3VuZC9MSUNFTlNFLU1JVAkyMDI1LTA5LTE3IDE3OjQxOjIxLjEzNzgwNTA0NiArMDMw MAotQEAgLTAsMCArMSwyNSBAQAotK0NvcHlyaWdodCAoYykgMjAxNCBUaGUgUnVzdCBQcm9qZWN0 IERldmVsb3BlcnMKLSsKLStQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNo YXJnZSwgdG8gYW55Ci0rcGVyc29uIG9idGFpbmluZyBhIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBh bmQgYXNzb2NpYXRlZAotK2RvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8g ZGVhbCBpbiB0aGUKLStTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0 aG91dAotK2xpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2Us Ci0rcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9m Ci0rdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdh cmUKLStpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZwotK2Nv bmRpdGlvbnM6Ci0rCi0rVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlz c2lvbiBub3RpY2UKLStzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50 aWFsIHBvcnRpb25zCi0rb2YgdGhlIFNvZnR3YXJlLgotKwotK1RIRSBTT0ZUV0FSRSBJUyBQUk9W SURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GCi0rQU5ZIEtJTkQsIEVYUFJFU1MgT1Ig SU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRAotK1RPIFRIRSBXQVJSQU5USUVTIE9G IE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQQotK1BBUlRJQ1VMQVIgUFVSUE9TRSBBTkQg Tk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVAotK1NIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlS SUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZCi0rQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIg TElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTgotK09GIENPTlRSQUNULCBUT1JUIE9SIE9U SEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IKLStJTiBDT05ORUNUSU9OIFdJVEggVEhF IFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIKLStERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUu Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9hbnlfYWxsX3dvcmthcm91bmQvTElDRU5T RS1NSVQtUUNNUyBiL3RoaXJkX3BhcnR5L3J1c3QvYW55X2FsbF93b3JrYXJvdW5kL0xJQ0VOU0Ut TUlULVFDTVMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvYW55X2FsbF93b3JrYXJvdW5kL0xJQ0VO U0UtTUlULVFDTVMJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3Ro aXJkX3BhcnR5L3J1c3QvYW55X2FsbF93b3JrYXJvdW5kL0xJQ0VOU0UtTUlULVFDTVMJMjAyNS0w OS0xNyAxNzo0MToyMS4xMzc4MDUwNDYgKzAzMDAKLUBAIC0wLDAgKzEsMjEgQEAKLStxY21zCi0r Q29weXJpZ2h0IChDKSAyMDA5LTIwMjQgTW96aWxsYSBDb3Jwb3JhdGlvbgotK0NvcHlyaWdodCAo QykgMTk5OC0yMDA3IE1hcnRpIE1hcmlhCi0rCi0rUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRl ZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIAotK2EgY29weSBvZiB0 aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29m dHdhcmUiKSwgCi0rdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwg aW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiAKLSt0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwg bW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgCi0rYW5kL29y IHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdo b20gdGhlIFNvZnR3YXJlIAotK2lzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUg Zm9sbG93aW5nIGNvbmRpdGlvbnM6Ci0rCi0rVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5k IHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4gCi0rYWxsIGNvcGll cyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCi0rCi0rVEhFIFNPRlRX QVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIAot K0VYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyAKLStUSEUg V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ VVJQT1NFIEFORCAKLStOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRI T1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIAotK0xJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1B R0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gCi0rT0YgQ09OVFJB Q1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNU SU9OIAotK1dJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4g VEhFIFNPRlRXQVJFLgotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvYW55X2FsbF93b3Jr YXJvdW5kL1JFQURNRS5tZCBiL3RoaXJkX3BhcnR5L3J1c3QvYW55X2FsbF93b3JrYXJvdW5kL1JF QURNRS5tZAotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9hbnlfYWxsX3dvcmthcm91bmQvUkVBRE1F Lm1kCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0 eS9ydXN0L2FueV9hbGxfd29ya2Fyb3VuZC9SRUFETUUubWQJMjAyNS0wOS0xNyAxNzo0MToyMS4x Mzc4MDUwNDYgKzAzMDAKLUBAIC0wLDAgKzEsMTMgQEAKLSsjIGFueV9hbGxfd29ya2Fyb3VuZAot KwotK1RoaXMgaXMgYSB3b3JrYXJvdW5kIGZvciBiYWQgY29kZWdlbiAoW1J1c3QgYnVnXShodHRw czovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL3BvcnRhYmxlLXNpbWQvaXNzdWVzLzE0NiksIFtMTFZN IGJ1Z10oaHR0cHM6Ly9naXRodWIuY29tL2xsdm0vbGx2bS1wcm9qZWN0L2lzc3Vlcy81MDQ2Nikp IGZvciB0aGUgYGFueSgpYCBhbmQgYGFsbCgpYCByZWR1Y3Rpb25zIGZvciBORU9OLWJhY2tlZCBT SU1EIHZlY3RvcnMgb24gMzItYml0IEFSTS4gT24gb3RoZXIgcGxhdGZvcm1zIHRoZXNlIGRlbGVn YXRlIHRvIGBhbnkoKWAgYW5kIGBhbGwoKWAgaW4gYGNvcmU6OnNpbWRgLgotKwotK1RoZSBwbGFu IGlzIHRvIGFiYW5kb24gdGhpcyBjcmF0ZSBvbmNlIHRoZSBMTFZNIGJ1ZyBpcyBmaXhlZCBvciBg Y29yZTo6c2ltZGAgd29ya3MgYXJvdW5kIHRoZSBMTFZNIGJ1Zy4KLSsKLStUaGUgY29kZSBpcyBm b3JrZWQgZnJvbSB0aGUgW2BwYWNrZWRfc2ltZGAgY3JhdGVdKGh0dHBzOi8vcmF3LmdpdGh1YnVz ZXJjb250ZW50LmNvbS9oc2l2b25lbi9wYWNrZWRfc2ltZC9kOTM4ZTM5YmVlOWJjNWMyMjJmNWYy ZjJhMGRmOWU1M2I1Y2UzNmFlL3NyYy9jb2RlZ2VuL3JlZHVjdGlvbnMvbWFzay9hcm0ucnMpLgot KwotK1RoaXMgY3JhdGUgcmVxdWlyZXMgTmlnaHRseSBSdXN0IGFzIGl0IGRlcGVuZHMgb24gdGhl IGBwb3J0YWJsZV9zaW1kYCBmZWF0dXJlLgotKwotKyMgTGljZW5zZQotKwotK2BNSVQgT1IgQXBh Y2hlLTIuMGAsIHNpbmNlIHRoYXQncyBob3cgYHBhY2tlZF9zaW1kYCBpcyBsaWNlbnNlZC4gKFRo ZSBBUk0gaW50cmluc2ljcyBSdXN0IHZlcnNpb24gd29ya2Fyb3VuZCBpcyBmcm9tIHFjbXMsIHNl ZSBMSUNFTlNFLU1JVC1RQ01TLikKLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L2FueV9h bGxfd29ya2Fyb3VuZC9idWlsZC5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvYW55X2FsbF93b3JrYXJv dW5kL2J1aWxkLnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L2FueV9hbGxfd29ya2Fyb3VuZC9i dWlsZC5ycwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRf cGFydHkvcnVzdC9hbnlfYWxsX3dvcmthcm91bmQvYnVpbGQucnMJMjAyNS0wOS0xNyAxNzo0MToy MS4xMzc4MDUwNDYgKzAzMDAKLUBAIC0wLDAgKzEsNyBAQAotK2V4dGVybiBjcmF0ZSB2ZXJzaW9u X2NoZWNrIGFzIHJ1c3RjOwotKwotK2ZuIG1haW4oKSB7Ci0rICAgIGlmIHJ1c3RjOjppc19taW5f dmVyc2lvbigiMS43OC4wIikudW53cmFwX29yKGZhbHNlKSB7Ci0rICAgICAgICBwcmludGxuISgi Y2FyZ286cnVzdGMtY2ZnPXN0ZHNpbWRfc3BsaXQiKTsKLSsgICAgfQotK30KLWRpZmYgLU5yYnUg YS90aGlyZF9wYXJ0eS9ydXN0L2FueV9hbGxfd29ya2Fyb3VuZC9zcmMvbGliLnJzIGIvdGhpcmRf cGFydHkvcnVzdC9hbnlfYWxsX3dvcmthcm91bmQvc3JjL2xpYi5ycwotLS0tIGEvdGhpcmRfcGFy dHkvcnVzdC9hbnlfYWxsX3dvcmthcm91bmQvc3JjL2xpYi5ycwkxOTcwLTAxLTAxIDAzOjAwOjAw LjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9hbnlfYWxsX3dvcmthcm91 bmQvc3JjL2xpYi5ycwkyMDI1LTA5LTE3IDE3OjQxOjIxLjEzODgwNTAwNyArMDMwMAotQEAgLTAs MCArMSwxMTAgQEAKLSsvLyBUaGlzIGNvZGUgYmVnYW4gYXMgYSBmb3JrIG9mCi0rLy8gaHR0cHM6 Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3J1c3QtbGFuZy9wYWNrZWRfc2ltZC9kOTM4ZTM5 YmVlOWJjNWMyMjJmNWYyZjJhMGRmOWU1M2I1Y2UzNmFlL3NyYy9jb2RlZ2VuL3JlZHVjdGlvbnMv bWFzay9hcm0ucnMKLSsvLyB3aGljaCBkaWRuJ3QgaGF2ZSBhIGxpY2Vuc2UgaGVhZGVyIG9uIHRo ZSBmaWxlLCBidXQgQ2FyZ28udG9tbCBzYWlkICJNSVQgT1IgQXBhY2hlLTIuMCIuCi0rLy8gU2Vl IExJQ0VOU0UtTUlUIGFuZCBMSUNFTlNFLUFQQUNIRS4KLSsKLSsjIVtub19zdGRdCi0rIyFbZmVh dHVyZShwb3J0YWJsZV9zaW1kKV0KLSsjIVtjZmdfYXR0cigKLSsgICAgYWxsKAotKyAgICAgICAg c3Rkc2ltZF9zcGxpdCwKLSsgICAgICAgIHRhcmdldF9hcmNoID0gImFybSIsCi0rICAgICAgICB0 YXJnZXRfZW5kaWFuID0gImxpdHRsZSIsCi0rICAgICAgICB0YXJnZXRfZmVhdHVyZSA9ICJuZW9u IiwKLSsgICAgICAgIHRhcmdldF9mZWF0dXJlID0gInY3IgotKyAgICApLAotKyAgICBmZWF0dXJl KHN0ZGFyY2hfYXJtX25lb25faW50cmluc2ljcykKLSspXQotKyMhW2NmZ19hdHRyKAotKyAgICBh bGwoCi0rICAgICAgICBub3Qoc3Rkc2ltZF9zcGxpdCksCi0rICAgICAgICB0YXJnZXRfYXJjaCA9 ICJhcm0iLAotKyAgICAgICAgdGFyZ2V0X2VuZGlhbiA9ICJsaXR0bGUiLAotKyAgICAgICAgdGFy Z2V0X2ZlYXR1cmUgPSAibmVvbiIsCi0rICAgICAgICB0YXJnZXRfZmVhdHVyZSA9ICJ2NyIKLSsg ICAgKSwKLSsgICAgZmVhdHVyZShzdGRzaW1kKQotKyldCi0rCi0rdXNlIGNmZ19pZjo6Y2ZnX2lm OwotK3VzZSBjb3JlOjpzaW1kOjptYXNrMTZ4ODsKLSt1c2UgY29yZTo6c2ltZDo6bWFzazMyeDQ7 Ci0rdXNlIGNvcmU6OnNpbWQ6Om1hc2s4eDE2OwotKwotK2NmZ19pZiEgewotKyAgICBpZiAjW2Nm ZyhhbGwodGFyZ2V0X2FyY2ggPSAiYXJtIiwgdGFyZ2V0X2VuZGlhbiA9ICJsaXR0bGUiLCB0YXJn ZXRfZmVhdHVyZSA9ICJuZW9uIiwgdGFyZ2V0X2ZlYXR1cmUgPSAidjciKSldIHsKLSsgICAgICAg IHVzZSBjb3JlOjpzaW1kOjptYXNrOHg4OwotKyAgICAgICAgdXNlIGNvcmU6OnNpbWQ6Om1hc2sx Nng0OwotKyAgICAgICAgdXNlIGNvcmU6OnNpbWQ6Om1hc2szMngyOwotKyAgICAgICAgbWFjcm9f cnVsZXMhIGFybV8xMjhfdjdfbmVvbl9pbXBsIHsKLSsgICAgICAgICAgICAoJGFsbDppZGVudCwg JGFueTppZGVudCwgJGlkOmlkZW50LCAkaGFsZjppZGVudCwgJHZwbWluOmlkZW50LCAkdnBtYXg6 aWRlbnQpID0+IHsKLSsgICAgICAgICAgICAgICAgI1tpbmxpbmVdCi0rICAgICAgICAgICAgICAg IHB1YiBmbiAkYWxsKHM6ICRpZCkgLT4gYm9vbCB7Ci0rICAgICAgICAgICAgICAgICAgICB1c2Ug Y29yZTo6YXJjaDo6YXJtOjokdnBtaW47Ci0rICAgICAgICAgICAgICAgICAgICB1c2UgY29yZTo6 bWVtOjp0cmFuc211dGU7Ci0rICAgICAgICAgICAgICAgICAgICB1bnNhZmUgewotKyAgICAgICAg ICAgICAgICAgICAgICAgIHVuaW9uIFUgewotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBo YWx2ZXM6ICgkaGFsZiwgJGhhbGYpLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWM6 ICRpZCwKLSsgICAgICAgICAgICAgICAgICAgICAgICB9Ci0rICAgICAgICAgICAgICAgICAgICAg ICAgbGV0IGhhbHZlcyA9IFUgeyB2ZWM6IHMgfS5oYWx2ZXM7Ci0rICAgICAgICAgICAgICAgICAg ICAgICAgbGV0IGg6ICRoYWxmID0gdHJhbnNtdXRlKCR2cG1pbih0cmFuc211dGUoaGFsdmVzLjAp LCB0cmFuc211dGUoaGFsdmVzLjEpKSk7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgaC5hbGwo KQotKyAgICAgICAgICAgICAgICAgICAgfQotKyAgICAgICAgICAgICAgICB9Ci0rICAgICAgICAg ICAgICAgICNbaW5saW5lXQotKyAgICAgICAgICAgICAgICBwdWIgZm4gJGFueShzOiAkaWQpIC0+ IGJvb2wgewotKyAgICAgICAgICAgICAgICAgICAgdXNlIGNvcmU6OmFyY2g6OmFybTo6JHZwbWF4 OwotKyAgICAgICAgICAgICAgICAgICAgdXNlIGNvcmU6Om1lbTo6dHJhbnNtdXRlOwotKyAgICAg ICAgICAgICAgICAgICAgdW5zYWZlIHsKLSsgICAgICAgICAgICAgICAgICAgICAgICB1bmlvbiBV IHsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFsdmVzOiAoJGhhbGYsICRoYWxmKSwK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjOiAkaWQsCi0rICAgICAgICAgICAgICAg ICAgICAgICAgfQotKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBoYWx2ZXMgPSBVIHsgdmVj OiBzIH0uaGFsdmVzOwotKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBoOiAkaGFsZiA9IHRy YW5zbXV0ZSgkdnBtYXgodHJhbnNtdXRlKGhhbHZlcy4wKSwgdHJhbnNtdXRlKGhhbHZlcy4xKSkp OwotKyAgICAgICAgICAgICAgICAgICAgICAgIGguYW55KCkKLSsgICAgICAgICAgICAgICAgICAg IH0KLSsgICAgICAgICAgICAgICAgfQotKyAgICAgICAgICAgIH0KLSsgICAgICAgIH0KLSsgICAg fSBlbHNlIHsKLSsgICAgICAgIG1hY3JvX3J1bGVzISBhcm1fMTI4X3Y3X25lb25faW1wbCB7Ci0r ICAgICAgICAgICAgKCRhbGw6aWRlbnQsICRhbnk6aWRlbnQsICRpZDppZGVudCwgJGhhbGY6aWRl bnQsICR2cG1pbjppZGVudCwgJHZwbWF4OmlkZW50KSA9PiB7Ci0rICAgICAgICAgICAgICAgICNb aW5saW5lKGFsd2F5cyldCi0rICAgICAgICAgICAgICAgIHB1YiBmbiAkYWxsKHM6ICRpZCkgLT4g Ym9vbCB7Ci0rICAgICAgICAgICAgICAgICAgICBzLmFsbCgpCi0rICAgICAgICAgICAgICAgIH0K LSsgICAgICAgICAgICAgICAgI1tpbmxpbmUoYWx3YXlzKV0KLSsgICAgICAgICAgICAgICAgcHVi IGZuICRhbnkoczogJGlkKSAtPiBib29sIHsKLSsgICAgICAgICAgICAgICAgICAgIHMuYW55KCkK LSsgICAgICAgICAgICAgICAgfQotKyAgICAgICAgICAgIH0KLSsgICAgICAgIH0KLSsgICAgfQot K30KLSsKLSthcm1fMTI4X3Y3X25lb25faW1wbCEoCi0rICAgIGFsbF9tYXNrOHgxNiwKLSsgICAg YW55X21hc2s4eDE2LAotKyAgICBtYXNrOHgxNiwKLSsgICAgbWFzazh4OCwKLSsgICAgdnBtaW5f dTgsCi0rICAgIHZwbWF4X3U4Ci0rKTsKLSthcm1fMTI4X3Y3X25lb25faW1wbCEoCi0rICAgIGFs bF9tYXNrMTZ4OCwKLSsgICAgYW55X21hc2sxNng4LAotKyAgICBtYXNrMTZ4OCwKLSsgICAgbWFz azE2eDQsCi0rICAgIHZwbWluX3UxNiwKLSsgICAgdnBtYXhfdTE2Ci0rKTsKLSthcm1fMTI4X3Y3 X25lb25faW1wbCEoCi0rICAgIGFsbF9tYXNrMzJ4NCwKLSsgICAgYW55X21hc2szMng0LAotKyAg ICBtYXNrMzJ4NCwKLSsgICAgbWFzazMyeDIsCi0rICAgIHZwbWluX3UzMiwKLSsgICAgdnBtYXhf dTMyCi0rKTsKLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzLy5jYXJn by1jaGVja3N1bS5qc29uIGIvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy8uY2FyZ28tY2hl Y2tzdW0uanNvbgotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy8uY2FyZ28tY2hl Y2tzdW0uanNvbgkyMDI1LTA0LTIwIDE5OjI4OjEyLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhp cmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy8uY2FyZ28tY2hlY2tzdW0uanNvbgkyMDI1LTA5LTE3 IDE3OjQxOjIxLjEzODgwNTAwNyArMDMwMAotQEAgLTEgKzEgQEAKLS17ImZpbGVzIjp7IkNPTlRS SUJVVElORy5tZCI6ImNhMTkwMWYzZTg1MzJmYjRjZWM4OTRmZDM2NjRmMGVhYTg5OGMwYzRiOTYx ZDFiOTkyZDFlZDU0ZWFjZjM2MmEiLCJDT1BZUklHSFQiOiIxMTc4OWY0NWJiMTgwODQxY2QzNjJh NWVlZTY3ODljNjhkZGI1NzNhMTExMDVlMzA3NjhjMzA4YTZhZGQwMTkwIiwiQ2FyZ28udG9tbCI6 IjQyZmE4MzMyMmFhOWZkNjcyM2I3N2QzNWQwY2FjYjkyY2JiNmU3ZjU3M2NlMTFjNTVmNTIyNTI5 Mjg2NmY4ZjQiLCJJZGVhcy5tZCI6ImI3NDUyODkzZjUwMDE2Mzg2OGQ4ZGU1MmMwOWFkZGFmOTFl MTYzMjQ1NGVkMDJlODkyYzQ2N2VkN2VjMzlkYmQiLCJMSUNFTlNFLUFQQUNIRSI6ImNmYzc3NDli OTZmNjNiZDMxYzNjNDJiNWM0NzFiZjc1NjgxNDA1M2U4NDdjMTBmM2ViMDAzNDE3YmM1MjNkMzAi LCJMSUNFTlNFLU1JVCI6IjNmYTRjYTgzZGNjOTIzNzgzOWIxYmRlYjJlNmQxNmJkZmI1ZWMwYzVj ZTQyYjI0Njk0ZDhiYmYwZGNiZWY3MmMiLCJMSUNFTlNFLVdIQVRXRyI6IjgzODExODM4OGZlNWMy ZTdmMWRiYmFlZWQxM2UxYzdmM2ViZjg4YmU5MTMxOWM3YzFkNzdjMThlOTg3ZDFhNTAiLCJSRUFE TUUubWQiOiJkOTM4ZThhYjBiOWFiNjdlNzRhMWE0ZjQ4ZjIzZmRjZTk1NmQwYWQzYTNmNjE0N2Fl NzYxMmE5Mjc2M2M4OGQ1IiwiY2kvbWlyaS5zaCI6IjQzY2I4ZDgyZjQ5ZTNiZmUyZDIyNzRiNmNj ZDZmMDcxNGE0MTg4Y2NlZjBjZWNjMDQwODI5ODgzY2ZkYmVlMjUiLCJkb2MvQmlnNS50eHQiOiJm NzNhMmVkYzVjYjZjMmQxNDBiYTZlMDdmNDU0MmUxYzRhMjM0OTUwMzc4YWNkZTFkZjkzNDgwZjBj YTBiZTBiIiwiZG9jL0VVQy1KUC50eHQiOiJlZTI4MThiOTA3ZDAxMzdmNDBhOWFiOWZkNTI1ZmM3 MDBhNDRkYmRkZGI2Y2YwYzE1N2E2NTY1NjZiYWU0YmYxIiwiZG9jL0VVQy1LUi50eHQiOiI3MWQ5 ZTJjY2YzYjEyNGU4YmRmYjQzM2M4Y2YyNzczZmQ4NzgwNzcwMzhkMGNlYzNjNzIzN2E1MGY0YTc4 YTMwIiwiZG9jL0dCSy50eHQiOiJjMWI1MjJiNWE3OTk4ODRlNTAwMWRhNjYxZjQyYzVhOGY0ZDBh Y2I5ZWYxZDc0YjIwNmYyMmI1ZjY1MzY1NjA2IiwiZG9jL0lCTTg2Ni50eHQiOiJhNWE0MzNlODA0 ZDBmODNhZjc4NTAxNTE3OWZiYzFkOWIwZWFmMWY3OTYwZWZjZDA0MDkzZTEzNmI1MWZiZDBlIiwi ZG9jL0lTTy0yMDIyLUpQLnR4dCI6ImFmODY2ODRmNWE4ZjBlMjg2OGQ3YjJjMjkyODYwMTQwYzNk MmU1NTI3NTMwY2EwOTFmMWIyODE5OGU4ZTJmZTYiLCJkb2MvSVNPLTg4NTktMTAudHh0IjoiNmQz OTQ5YWQ3YzgxY2ExNzY4OTUxMDFlZDgxYTFkYjdkZjEwNjBkNjRlMjYyODgwYjk0YmQzMWJiMzQ0 YWI0ZCIsImRvYy9JU08tODg1OS0xMy50eHQiOiIzOTUxZGQ4OWNmOTNmNzcyOTE0ODA5MTY4M2Nm ODUxMWY0NTI5Mzg4YjdkYzhkY2QwZDYyZWFlZDU1YmU5M2ZhIiwiZG9jL0lTTy04ODU5LTE0LnR4 dCI6IjNkMzMwNzg0YTAzNzRmZDI1NWEzOGI0Nzk0OTY3NWNjNzE2OGM4MDA1MzA1MzRiMGEwMWNh YzZlZGM2MjNhZGMiLCJkb2MvSVNPLTg4NTktMTUudHh0IjoiMjRiMTA4NGFhYjUxMjdhODVhYWI5 OTE1M2Y4NmUyNDY5NGQwYTM2MTVmNTNiNWNlMjM2ODNmOTdjZjY2YzQ3YSIsImRvYy9JU08tODg1 OS0xNi50eHQiOiJjZTAyNzI1NTliOTJiYTc2ZDdhN2U0NzZmNjQyNGFlNGE1Y2M3MmU3NWIxODM2 MTFiMDgzOTJlNDRhZGQ0ZDI1IiwiZG9jL0lTTy04ODU5LTIudHh0IjoiMThjZWZmODhjMTNkMWI1 YmE0NTVhMzkxOWIxZTNkZTQ4OTA0NWM0YzNkMmRkN2U4NTI3YzEyNWM3NWQ1NGFhZCIsImRvYy9J U08tODg1OS0zLnR4dCI6IjIxNzk4NDA0YzY4ZjRmNWRiNTkyMjMzNjJmMjQ5OTlkYTk2OTY4YzA2 Mjg0MjczMjFmY2NjZTdkMjg0OWExMzAiLCJkb2MvSVNPLTg4NTktNC50eHQiOiJkMjdmNjUyMGM2 YzViZmJjYzE5MTc2YjcxZDA4MWNkYjNiY2NkZTE2MjJiYjNlNDIwZDU2ODBlODEyNjMyZDUzIiwi ZG9jL0lTTy04ODU5LTUudHh0IjoiYTEwZWM4ZDZlYTdhNzhhZDE1ZGE3Mjc1ZjZjYjFhMzM2NTEx ODUyN2UyOGY5YWY2ZDBkNTgzMDUwMTMwM2YzYSIsImRvYy9JU08tODg1OS02LnR4dCI6ImNjZGE4 YTJlZmM5NjExNTMzNmJkZDc3Nzc2NjM3Yjk3MTI0MjVlNDRmYmNmNzQ1MzUzYjkwNTdmYmVmMTQ0 ZTciLCJkb2MvSVNPLTg4NTktNy50eHQiOiIxNzkwMGZhMWYyN2E0NDU5NThmMGE3N2Q3ZDkwNTZi ZTM3NWE2YmQ3ZWU0NDkyYWE2ODBjN2MxNTAwYmFiODVlIiwiZG9jL0lTTy04ODU5LTgtSS50eHQi OiI4MzU3NTU1NjQ2ZDU0MjY1YTliOWZmYTNlNjhiMDhkMTMyMzEyZjE1NjFjNjAxMDhmZjliOGIx MTY3YjZlY2YyIiwiZG9jL0lTTy04ODU5LTgudHh0IjoiNzJjZDZmM2FmYjdiNGE5YzE2YTY2YTM2 MjQ3MzMxNTc3MGI3NzU1ZDcyYzg2Yzg3MGU1MmZjM2ViYTg2YzhhZiIsImRvYy9LT0k4LVIudHh0 IjoiODM5Y2YxOWEzOGRhOTk0NDg4MDA0ZWQ3ODE0YjFmNjE1MTY0MDE1NmE5YTJhZjAyYmYyZWZj YTc0NWZiNTk2NiIsImRvYy9LT0k4LVUudHh0IjoiMGNjNzY2MjRlZDFmMDI0MTgzZTIyOThiN2Uw MTk5NTdkYTJjNzBjOGNhMDZlMGZjNGU2ZjM1M2Y1MGE1MDU0ZiIsImRvYy9TaGlmdF9KSVMudHh0 IjoiMzRjNDkxNDE4MThjYjlkZGJjZjU5Y2M4NThmNzhhNzliZThhZDE0OGQ1NjNmMjY0MTUxMDhh ZTFmMTQ4NDQzZiIsImRvYy9VVEYtMTZCRS50eHQiOiJlMmUyODBkOGFjYmFhNmQyYTZiMzU2OWQ2 MGUxNzUwMGEyODVmMmJhYTBkZjMzNjNkZDg1NTM3Y2Q1YTFlZjhmIiwiZG9jL1VURi0xNkxFLnR4 dCI6IjcwYmRjMTcwZTNmYzUyOThiYTY4ZjEwMTI1ZmI1ZWViOGIwNzcwMzZjYzk2YmI0NDE2YzRk ZTM5NmY2ZDc2YzEiLCJkb2MvVVRGLTgudHh0IjoiZWE3YmFlNzQyZTYxMzAxMGNlZDAwMmNmNGI2 MDFhNzM3ZDIyMDNmYWQ2NWUxMTU2MTE0NTFiYzQ0MjhmNTQ4YSIsImRvYy9nYjE4MDMwLnR4dCI6 ImRjNzEzNzhhOGYwN2EyZDg2NTlmNjllZTgxZmI4NzkxZmVmNTZiYTg2ZjEyNGI0Mjk5NzgyODUy MzdiYjRhN2IiLCJkb2MvbWFjaW50b3NoLnR4dCI6IjU3NDkxZTUzODY2NzExYjQ2NzJkOWI5ZmYz NTM4MGI5ZGFjOWUwZDhlM2Q2YzIwYmRkNjE0MDYwMzY4N2MwMjMiLCJkb2MvcmVwbGFjZW1lbnQu dHh0IjoiNGI2YzNiYmQ3OTk5ZDlkNDEwOGEyODE1OTRiZDAyZDEzNjA3ZTMzNGE5NTQ2NWFmZmY4 YzJjMDhkMzk1ZjBlNCIsImRvYy93aW5kb3dzLTEyNTAudHh0IjoiNjEyOTZiYjZhMjFjZGFiNjAy MzAwZDMyZWNmYmE0MzRjYjgyZGU1YWMzYmM4OGQ1ODcxMGQyZjEyNWUyOGQzOSIsImRvYy93aW5k b3dzLTEyNTEudHh0IjoiN2RlZWExYzYxZGVhMTQ4NWM4ZmYwMmRiMmM3ZDU3OGRiN2E5YWFiNjNh YjFjZmQwMmVjMDRiNTE1ODY0Njg5ZSIsImRvYy93aW5kb3dzLTEyNTIudHh0IjoiOTMzZWYzYmRk ZGZjZTVlZTEzMmI5ZjFhMWFhOGI0NzQyM2QyNTg3YmJlNDc1YjE5MDI4ZDBhNmQzOGUxODBiNiIs ImRvYy93aW5kb3dzLTEyNTMudHh0IjoiMWEzODc0OGI4OGU5OTA3MWE1YzdiM2Q1NDU2ZWFkNGNh ZWRlYWJhYjUwZDUwZDY1OGJlMTA1YmMxMTM3MTRkZSIsImRvYy93aW5kb3dzLTEyNTQudHh0Ijoi ZjgzNzJmODZjNmY4ZDY0MjU2M2NkNmRkYzAyNTI2MDU1MzI5MmEzOTQyM2RmMTY4M2E5ODY3MGJk N2JmMmI0NyIsImRvYy93aW5kb3dzLTEyNTUudHh0IjoiNGU1ODUyNDk0NzMwMDU0ZTJkYTI1OGE3 NGUxYjlkNzgwYWJiY2RkOGNlMjJlYmMyMThjYTJlZmU5ZTkwNDkzZCIsImRvYy93aW5kb3dzLTEy NTYudHh0IjoiYzA4NzljNTE3MmFiZWRlYWQzMDJhNDA2ZThmNjBkOWNkOTU5ODY5NGEwZmZhNGZk Mjg4ZmZlNGZlZjdiOGVhMSIsImRvYy93aW5kb3dzLTEyNTcudHh0IjoiYzI4YTBjOWY5NjRmY2Iy YjQ2ZDIxZjUzN2M0MDI0NDY1MDFhMjgwMDY3MDQ4MWQ2YWJmOWZkOWU5MDE4ZDUyMyIsImRvYy93 aW5kb3dzLTEyNTgudHh0IjoiNTAxOWFlNGQ2MTgwNWM3OWFhY2JmMTdjOTM3OTMzNDJkYmIwOThk NjVhMTgzNzc4M2JjM2UyYzZkNmEyMzYwMiIsImRvYy93aW5kb3dzLTg3NC50eHQiOiI0ZWYwZTQ1 MDFjNWZlYmE4YjE3YWVlMTgxODYwMmVkNDRiMzZjYTg0NzVkYjc3MWNlMmZjMTZkMzkyY2FiZWNj IiwiZG9jL3gtbWFjLWN5cmlsbGljLnR4dCI6IjU4YmUxNTRkOGE4ODhjYTNkNDg0YjgzYjQ0Zjc0 OTgyM2VmMzM5YWIyN2YxNGQ5MGNhOWE4NTZmNTA1MGE4YmQiLCJkb2MveC11c2VyLWRlZmluZWQu dHh0IjoiZjljZDA3YzQzMjFiZjVjZmIwYmU0YmRkZGQyNTEwNzI5OTliMDRhNmNmN2E2ZjViYzYz NzA5YTg0ZTJjMWZmYyIsImdlbmVyYXRlLWVuY29kaW5nLWRhdGEucHkiOiJiZTk4OWRkMjVjNmI5 NDZlM2U4NzQ1ZmRjOGU4YTgwZmNmMjRiM2JlOTlhZDBiNGI3ODE1M2JhM2Y2YWI2MzEwIiwicnVz dGZtdC50b21sIjoiODVjMWEzYjQzODJmZDg5ZTk5MWNiYjgxYjcwZmI1Mjc4MDQ3MmVkYzA2NGM5 NjM5NDNjZGFhYTU2ZTBhMjAzMCIsInNyYy9hc2NpaS5ycyI6ImM0NGMwMDI2NDFhZGI1ZWJjNDM2 ODcwN2E4Y2MwYTA3NmQyZjMzZTZhNWMyN2IxYjY5OTg4ZWI1MTVmNTY1M2QiLCJzcmMvYmlnNS5y cyI6ImVjNmUyOTEzMDExYTM4ZTlhM2U4MjVhMTczMWYxMzlhN2NhMWQ1YjI2NGZlZmFlNTFhM2Nj MWE2OGE1N2NlZjkiLCJzcmMvZGF0YS5ycyI6IjhhNjE3Y2M1NzAzMjA5MmQ2NTg1MGViMjdlMDBk ZTY4N2M4MGFlYTMyOTllODM5YTFmNThiNDJkMGIzNWFiZjMiLCJzcmMvZXVjX2pwLnJzIjoiMzIw NDdmNWI1NDAxODhjNGNiMTljMDcxNjVmODQ2Yjk3ODZhMDlmMThlMzE1ZWQzZTliZGExMjkzZGFl NTJhYSIsInNyYy9ldWNfa3IucnMiOiI5YjI1YWZjNzJkOTM3ODcwMGVlY2ZhYzU4ZDU1YWQxYzU5 NDZkNmNkMGNjZGUyYzI5YzA4MjAwZWYyZGU2YmI5Iiwic3JjL2diMTgwMzAucnMiOiI4MDg1ODcx NjhkNzNmMGM4MGY4NTIwZjBjYTliMTYxODY2ZWQyZWZlYjE3YTA1ZTg1ZmRmM2I4ZWZlN2JhMjhh Iiwic3JjL2hhbmRsZXMucnMiOiJjYzgzZGMwNzU0NzUxZDY3ZjU2ODhhNjVjNWUwMTkxY2JhMDJm NmJhY2NlODFhMDgxM2EyNDNjYmE1NWVlZjdhIiwic3JjL2lzb18yMDIyX2pwLnJzIjoiOWJiNDg1 ZTgyNTc0ZjRiN2Q0YjIzNjRmMGZmMjc2YWNiNmEwYmMxMTE3NTg0MjBhM2IwZWM1ZTA0YzE5NjY1 MiIsInNyYy9saWIucnMiOiIxZGMwN2I4MThlNDU4NDZiMTZkZGNhZjBkZTQ2Yzg4NjJkZDdkZjgw OTkxMjNlYzM4Yjk1YzNmOGFkOWM5MWVjIiwic3JjL21hY3Jvcy5ycyI6IjIwMDk5N2Y4ODcwZGU4 YmZkOGNkYzQ3NWU5MjExNWRmNDIxMDhjMGRmNjYxZTQ5ZDNkMWNiYzMyMDU2ZTFkOTkiLCJzcmMv bWVtLnJzIjoiMGJmMzQxMDNlMGFkMWI4NDJhMTNhMDgyZGVlMmI5MjBiMDVjZjRmYjBmMTQ1Yzll ZTdmNjA4ZjRjYjRhNTQ0ZiIsInNyYy9yZXBsYWNlbWVudC5ycyI6Ijc2NjBiMzRhNTNmOGMxY2Ey YmRmYTBlNTFlODQzZWMyODMyNjk1MDk1MmFkOGJjOTY1NjlmZWI5M2FjNjIzMDgiLCJzcmMvc2hp ZnRfamlzLnJzIjoiNjk1MWFlNjdlMzZiMWExMmZhM2EzMDczNDk1N2Y0NDRkOGIxYjRhZTBlMmJk ZTUyMDYwYjI5YmQwZjE2ZDlkOSIsInNyYy9zaW1kX2Z1bmNzLnJzIjoiMjYxMmFiYTg2ZTFkMjAx MDk2ZDdlNDdhODU5YmMzNDQ0Zjg1OTM0Y2M4MmQ4YWRjNmQzOWE0MzA0ZDllZWNmYyIsInNyYy9z aW5nbGVfYnl0ZS5ycyI6IjNjOWU5YzFmOTQ2YWU2MjJjNzI1YmE5NDIxMjQwYzFmYWE5YTA1ZTk1 ZmExMGRkNDY0MmEyNWNiMjc2YTFlZGMiLCJzcmMvdGVzdF9kYXRhL2JpZzVfaW4udHh0IjoiNGM1 YTg2OTFmOGRjNzE3MzExODg5YzYzODk0MDI2ZDJmYjYyNzI1YTg2YzQyMDhjYTI3NGE5Y2M4ZDQy YTUwMyIsInNyYy90ZXN0X2RhdGEvYmlnNV9pbl9yZWYudHh0IjoiOTlkMzk5ZTE3NzUwY2Y5Yzdj ZjMwYmIyNTNkYmZlMzViODFjNGZjYmRlYWQ5M2NmYTQ4YjE0MjkyMTM0NzNjNyIsInNyYy90ZXN0 X2RhdGEvYmlnNV9vdXQudHh0IjoiNjE5M2NhOTdjMjk3YWEyMGUwOTM5NjAzOGQxOGU5MzhiYjdl YTMzMWMyNmYwZjI0NTQwOTcyOTY3MjNhMGIxMyIsInNyYy90ZXN0X2RhdGEvYmlnNV9vdXRfcmVm LnR4dCI6IjM2NTY3NjkxZjU1N2RmMTQ0ZjZjYzUyMDAxNWE4NzAzOGRmYTE1NmYyOTZmY2YxMDNi NTZhZTlhNzE4YmUxZmMiLCJzcmMvdGVzdF9kYXRhL2V1Y19rcl9pbi50eHQiOiJjODZhNzIyNGYz MjE1ZmEwZDA0ZTY4NTYyMmE3NTJmZGM3Mjc2M2U4YWUwNzYyMzBjN2ZkNjJkZTU3ZWM0MDc0Iiwi c3JjL3Rlc3RfZGF0YS9ldWNfa3JfaW5fcmVmLnR4dCI6IjFmNDE5ZjRjYTQ3ZDcwOGI1NGM3M2M0 NjE1NDVhMDIyYWUyZTIwNDk4ZmRiZjgwMDVhNDgzZDc1MmEyMDQ4ODMiLCJzcmMvdGVzdF9kYXRh L2V1Y19rcl9vdXQudHh0IjoiZTdmMzJlMDI2ZjcwYmUxZTFiNThlMDA0N2JhZjdkM2QyYzUyMDI2 OWM0ZjliOTk5MmUxNThiNGRlY2IwYTFhMyIsInNyYy90ZXN0X2RhdGEvZXVjX2tyX291dF9yZWYu dHh0IjoiYzk5MDc4NTc5ODBiMjBiOGU5ZTNiNTg0NDgyZWQ2NTY3YTJiZTYxODVkNzIyMzdiNjMy MmYwNDA0OTQ0OTI0ZSIsInNyYy90ZXN0X2RhdGEvZ2IxODAzMF9pbi50eHQiOiJhYjcyMzFiMmQz ZTlhZmFjZGJkN2Q3ZjNiOWU1MzYxYTdmZjlmN2UxY2ZkYjRmM2JkOTA1YjkzNjJiMzA5ZTUzIiwi c3JjL3Rlc3RfZGF0YS9nYjE4MDMwX2luX3JlZi50eHQiOiJkYzUwNjk0MjFhZGNhMjA0M2M1NWY1 MDEyYjU1YTc2ZmRmZjY1MWQyMmU2ZTY5OWZkMDk3OGY4ZDU3MDY4MTVjIiwic3JjL3Rlc3RfZGF0 YS9nYjE4MDMwX291dC50eHQiOiJmMDIwOGQ1MjdmNWNhNjNkZTdkOWEwMzIzYmU4ZDVjZjEyZDhh MTA0YjI5NDNkOTJjMjcwMWYwYzMzNjRkYWMxIiwic3JjL3Rlc3RfZGF0YS9nYjE4MDMwX291dF9y ZWYudHh0IjoiNjgxOWZlNDc2MjdlNGVhMDEwMjcwMDNmYzUxNGI5ZjIxYTEzMjJlNzMyZDdmMWZi OTJjYzZjNTQ1NWJjNmMwNyIsInNyYy90ZXN0X2RhdGEvaXNvXzIwMjJfanBfaW4udHh0IjoiY2Qy NGJiZGNiMTgzNGUyNWRiNTQ2NDZmYmY0YzQxNTYwYTEzZGM3NTQwZjZiZTNkYmE0ZjVkOTdkNDQ1 MTNhZiIsInNyYy90ZXN0X2RhdGEvaXNvXzIwMjJfanBfaW5fcmVmLnR4dCI6IjNkYzRlNmE1ZTA2 NDcxOTQyZDA4NmIxNmM5NDQwOTQ1ZTc4NDE1ZjZmM2Y0N2U0MzcxN2U0YmMyZWFjMmNkZjUiLCJz cmMvdGVzdF9kYXRhL2lzb18yMDIyX2pwX291dC50eHQiOiI5YjZmMDE1MzI5ZGRhNmMzZjllZTVj ZTZkYmQ2ZmE5Yzg5YWNjMjEyODNlODg2ODM2Yzc4YjhkODMzNDgwYzIxIiwic3JjL3Rlc3RfZGF0 YS9pc29fMjAyMl9qcF9vdXRfcmVmLnR4dCI6Ijc4Y2IyNjAwOTNhMjAxMTZhZDlhNDJmNDNiMDVk MTg0OGM1YWIxMDBiNmI5YTg1MDc0OTgwOWU5NDM4ODRiMzUiLCJzcmMvdGVzdF9kYXRhL2ppczAy MDhfaW4udHh0IjoiNmRmMzAzMDU1M2ZmYjBhNjYxNWJiMzNkYzhlYTlkY2E2ZDk2MjNhOTAyOGUy ZmZlYzc1NGNlM2MzZGE4MjRjYyIsInNyYy90ZXN0X2RhdGEvamlzMDIwOF9pbl9yZWYudHh0Ijoi M2RjNGU2YTVlMDY0NzE5NDJkMDg2YjE2Yzk0NDA5NDVlNzg0MTVmNmYzZjQ3ZTQzNzE3ZTRiYzJl YWMyY2RmNSIsInNyYy90ZXN0X2RhdGEvamlzMDIwOF9vdXQudHh0IjoiNGVjMjQ0NzdlMTY3NWNl NzUwNzMzYmRjM2M1YWRkMWNkMjdiNmJkNGNlMWYwOTI4OTU2NDY0NmU5NjU0ZTg1NyIsInNyYy90 ZXN0X2RhdGEvamlzMDIwOF9vdXRfcmVmLnR4dCI6ImMzZTFjZWY1MDMyYjJiMWQ5M2E0MDZmMzFm Zjk0MGM0ZTJkZmU4ODU5YjhiMTdjYTI3NjFmZWU3YTc1YTBlNDgiLCJzcmMvdGVzdF9kYXRhL2pp czAyMTJfaW4udHh0IjoiYzAxMWYwZGQ3MmJkN2M4Y2Q5MjJkZjkzNzRlZjhkMjc2OWE3NzE5MDUx NGM3N2Y2YzYyYjQxNTg1MmVlYjlmZSIsInNyYy90ZXN0X2RhdGEvamlzMDIxMl9pbl9yZWYudHh0 IjoiN2Q5NDU4YjNkMmY3M2U3MDkyYTdmNTA1YzA4Y2UxZDIzM2RkZTE4YWE2NzlmYmNmOTg4OTI1 NjIzOWNjOWUwNiIsInNyYy90ZXN0X2RhdGEvc2hpZnRfamlzX2luLnR4dCI6IjAyZTM4OWNjZWYw ZGQyMTIyZTYzZjUwMzg5OTQwMmNiN2Y3OTc5MTJjMjQ0NGNjODBhYjkzMTMxMTE2YzU1MjQiLCJz cmMvdGVzdF9kYXRhL3NoaWZ0X2ppc19pbl9yZWYudHh0IjoiNTEyZjk4NTk1MGNhOTAyZTY0M2M4 ODY4MmRiYTk3MDhiN2MzOGQzYzVlYzI5MjUxNjhhYjAwYWM5NGFiMTlmOSIsInNyYy90ZXN0X2Rh dGEvc2hpZnRfamlzX291dC50eHQiOiI1ZmJjNDRkYTdiZjYzOWJmNmNmZTBmYTFmZDNlYmE3MTAy Yjg4ZjgxOTE5YzllYTk5MTMwMjcxMmY2OTQyNmZiIiwic3JjL3Rlc3RfZGF0YS9zaGlmdF9qaXNf b3V0X3JlZi50eHQiOiI0NjYzMjJjNmZlZDgyODZjNjQ1ODI3MzE3NTUyOTBjMjI5NjUwOGVmZGQy NTg4MjZlNjI3OTY4NjY0OWI0ODFmIiwic3JjL3Rlc3RfbGFiZWxzX25hbWVzLnJzIjoiMjNhMmUx MWIwMmIzYjhkMTVmYjU2MTNhNjI1ZTNlZGIyYzYxZTcwZTNjNTgxYWJmZDYzODcxOWE0MDg4MjAw ZCIsInNyYy90ZXN0aW5nLnJzIjoiZjU5ZTY3MWU5NWE5OGE1NmY2YjU3M2U4YzZiZTRkNzFlNjcw YmY1MmY3ZTIwZWIxNjA1ZDk5MGFhZmExODk0ZSIsInNyYy91dGZfMTYucnMiOiJjMDcxYTE0N2Zh ZDM4ZDc1MGMyYzI0N2UxNDFiNzZiOTI5YTQ4MDA3Yjk5ZjI2YjI5MjJiOWNhZWNkYWYyZjI1Iiwi c3JjL3V0Zl84LnJzIjoiN2I3ZDg4N2IzNDdmMWFlZmEwMzI0NmIwMjhhMzZhNzI3NThhNGNlNzZj MjhmM2I0NWMxOTQ2Nzg1MWFhNzgzOSIsInNyYy92YXJpYW50LnJzIjoiMWZhYjUzNjM1ODhhMTU1 NGE3MTY5ZGU4NzMxZWE5Y2RlZDdhYzYzZWEzNWNhYWJkZDFjMjdhOGRkZTY4YzI3YiIsInNyYy94 X3VzZXJfZGVmaW5lZC5ycyI6ImM5YzAxMDczMGRmYjlmMTQxZDRmZWQxOTM1MGMwOGEyMWFmMjQw OTEzYTU0YmI2NGY1Y2E4OWZmOTNiNmI3ZDEifSwicGFja2FnZSI6IjcyNjhiMzg2Mjk2YTAyNWU0 NzRkNTE0MDY3OGY3NWQ2ZGU5NDkzYWU1NWE1ZDcwOWVlYjlkZDA4MTQ5OTQ1ZTEifQotXCBObyBu ZXdsaW5lIGF0IGVuZCBvZiBmaWxlCi0reyJmaWxlcyI6eyJDT05UUklCVVRJTkcubWQiOiJjYTE5 MDFmM2U4NTMyZmI0Y2VjODk0ZmQzNjY0ZjBlYWE4OThjMGM0Yjk2MWQxYjk5MmQxZWQ1NGVhY2Yz NjJhIiwiQ09QWVJJR0hUIjoiMTE3ODlmNDViYjE4MDg0MWNkMzYyYTVlZWU2Nzg5YzY4ZGRiNTcz YTExMTA1ZTMwNzY4YzMwOGE2YWRkMDE5MCIsIkNhcmdvLnRvbWwiOiIyMmE0ZDIxMGM5MmRhZTlm MzJjNjk0NGVmMzQwZWU4ZmRkMDI3Zjk5YzA4MTU3N2U4OTA3MTIzZTJhOTMzODNlIiwiSWRlYXMu bWQiOiJiNzQ1Mjg5M2Y1MDAxNjM4NjhkOGRlNTJjMDlhZGRhZjkxZTE2MzI0NTRlZDAyZTg5MmM0 NjdlZDdlYzM5ZGJkIiwiTElDRU5TRS1BUEFDSEUiOiJjZmM3NzQ5Yjk2ZjYzYmQzMWMzYzQyYjVj NDcxYmY3NTY4MTQwNTNlODQ3YzEwZjNlYjAwMzQxN2JjNTIzZDMwIiwiTElDRU5TRS1NSVQiOiIz ZmE0Y2E4M2RjYzkyMzc4MzliMWJkZWIyZTZkMTZiZGZiNWVjMGM1Y2U0MmIyNDY5NGQ4YmJmMGRj YmVmNzJjIiwiTElDRU5TRS1XSEFUV0ciOiI4MzgxMTgzODhmZTVjMmU3ZjFkYmJhZWVkMTNlMWM3 ZjNlYmY4OGJlOTEzMTljN2MxZDc3YzE4ZTk4N2QxYTUwIiwiUkVBRE1FLm1kIjoiMWQwOGFlZmNi OTJhZmE4MWIxODE1NDA0OWM5YWJiY2FkNDU0MGEyM2Y3MTcyZTlmOWJiZWQ1YWYzM2YxYTA4NyIs ImNpL21pcmkuc2giOiI0M2NiOGQ4MmY0OWUzYmZlMmQyMjc0YjZjY2Q2ZjA3MTRhNDE4OGNjZWYw Y2VjYzA0MDgyOTg4M2NmZGJlZTI1IiwiZG9jL0JpZzUudHh0IjoiZjczYTJlZGM1Y2I2YzJkMTQw YmE2ZTA3ZjQ1NDJlMWM0YTIzNDk1MDM3OGFjZGUxZGY5MzQ4MGYwY2EwYmUwYiIsImRvYy9FVUMt SlAudHh0IjoiZWUyODE4YjkwN2QwMTM3ZjQwYTlhYjlmZDUyNWZjNzAwYTQ0ZGJkZGRiNmNmMGMx NTdhNjU2NTY2YmFlNGJmMSIsImRvYy9FVUMtS1IudHh0IjoiNzFkOWUyY2NmM2IxMjRlOGJkZmI0 MzNjOGNmMjc3M2ZkODc4MDc3MDM4ZDBjZWMzYzcyMzdhNTBmNGE3OGEzMCIsImRvYy9HQksudHh0 IjoiYzFiNTIyYjVhNzk5ODg0ZTUwMDFkYTY2MWY0MmM1YThmNGQwYWNiOWVmMWQ3NGIyMDZmMjJi NWY2NTM2NTYwNiIsImRvYy9JQk04NjYudHh0IjoiYTVhNDMzZTgwNGQwZjgzYWY3ODUwMTUxNzlm YmMxZDliMGVhZjFmNzk2MGVmY2QwNDA5M2UxMzZiNTFmYmQwZSIsImRvYy9JU08tMjAyMi1KUC50 eHQiOiJhZjg2Njg0ZjVhOGYwZTI4NjhkN2IyYzI5Mjg2MDE0MGMzZDJlNTUyNzUzMGNhMDkxZjFi MjgxOThlOGUyZmU2IiwiZG9jL0lTTy04ODU5LTEwLnR4dCI6IjZkMzk0OWFkN2M4MWNhMTc2ODk1 MTAxZWQ4MWExZGI3ZGYxMDYwZDY0ZTI2Mjg4MGI5NGJkMzFiYjM0NGFiNGQiLCJkb2MvSVNPLTg4 NTktMTMudHh0IjoiMzk1MWRkODljZjkzZjc3MjkxNDgwOTE2ODNjZjg1MTFmNDUyOTM4OGI3ZGM4 ZGNkMGQ2MmVhZWQ1NWJlOTNmYSIsImRvYy9JU08tODg1OS0xNC50eHQiOiIzZDMzMDc4NGEwMzc0 ZmQyNTVhMzhiNDc5NDk2NzVjYzcxNjhjODAwNTMwNTM0YjBhMDFjYWM2ZWRjNjIzYWRjIiwiZG9j L0lTTy04ODU5LTE1LnR4dCI6IjI0YjEwODRhYWI1MTI3YTg1YWFiOTkxNTNmODZlMjQ2OTRkMGEz NjE1ZjUzYjVjZTIzNjgzZjk3Y2Y2NmM0N2EiLCJkb2MvSVNPLTg4NTktMTYudHh0IjoiY2UwMjcy NTU5YjkyYmE3NmQ3YTdlNDc2ZjY0MjRhZTRhNWNjNzJlNzViMTgzNjExYjA4MzkyZTQ0YWRkNGQy NSIsImRvYy9JU08tODg1OS0yLnR4dCI6IjE4Y2VmZjg4YzEzZDFiNWJhNDU1YTM5MTliMWUzZGU0 ODkwNDVjNGMzZDJkZDdlODUyN2MxMjVjNzVkNTRhYWQiLCJkb2MvSVNPLTg4NTktMy50eHQiOiIy MTc5ODQwNGM2OGY0ZjVkYjU5MjIzMzYyZjI0OTk5ZGE5Njk2OGMwNjI4NDI3MzIxZmNjY2U3ZDI4 NDlhMTMwIiwiZG9jL0lTTy04ODU5LTQudHh0IjoiZDI3ZjY1MjBjNmM1YmZiY2MxOTE3NmI3MWQw ODFjZGIzYmNjZGUxNjIyYmIzZTQyMGQ1NjgwZTgxMjYzMmQ1MyIsImRvYy9JU08tODg1OS01LnR4 dCI6ImExMGVjOGQ2ZWE3YTc4YWQxNWRhNzI3NWY2Y2IxYTMzNjUxMTg1MjdlMjhmOWFmNmQwZDU4 MzA1MDEzMDNmM2EiLCJkb2MvSVNPLTg4NTktNi50eHQiOiJjY2RhOGEyZWZjOTYxMTUzMzZiZGQ3 Nzc3NjYzN2I5NzEyNDI1ZTQ0ZmJjZjc0NTM1M2I5MDU3ZmJlZjE0NGU3IiwiZG9jL0lTTy04ODU5 LTcudHh0IjoiMTc5MDBmYTFmMjdhNDQ1OTU4ZjBhNzdkN2Q5MDU2YmUzNzVhNmJkN2VlNDQ5MmFh NjgwYzdjMTUwMGJhYjg1ZSIsImRvYy9JU08tODg1OS04LUkudHh0IjoiODM1NzU1NTY0NmQ1NDI2 NWE5YjlmZmEzZTY4YjA4ZDEzMjMxMmYxNTYxYzYwMTA4ZmY5YjhiMTE2N2I2ZWNmMiIsImRvYy9J U08tODg1OS04LnR4dCI6IjcyY2Q2ZjNhZmI3YjRhOWMxNmE2NmEzNjI0NzMzMTU3NzBiNzc1NWQ3 MmM4NmM4NzBlNTJmYzNlYmE4NmM4YWYiLCJkb2MvS09JOC1SLnR4dCI6IjgzOWNmMTlhMzhkYTk5 NDQ4ODAwNGVkNzgxNGIxZjYxNTE2NDAxNTZhOWEyYWYwMmJmMmVmY2E3NDVmYjU5NjYiLCJkb2Mv S09JOC1VLnR4dCI6IjBjYzc2NjI0ZWQxZjAyNDE4M2UyMjk4YjdlMDE5OTU3ZGEyYzcwYzhjYTA2 ZTBmYzRlNmYzNTNmNTBhNTA1NGYiLCJkb2MvU2hpZnRfSklTLnR4dCI6IjM0YzQ5MTQxODE4Y2I5 ZGRiY2Y1OWNjODU4Zjc4YTc5YmU4YWQxNDhkNTYzZjI2NDE1MTA4YWUxZjE0ODQ0M2YiLCJkb2Mv VVRGLTE2QkUudHh0IjoiZTJlMjgwZDhhY2JhYTZkMmE2YjM1NjlkNjBlMTc1MDBhMjg1ZjJiYWEw ZGYzMzYzZGQ4NTUzN2NkNWExZWY4ZiIsImRvYy9VVEYtMTZMRS50eHQiOiI3MGJkYzE3MGUzZmM1 Mjk4YmE2OGYxMDEyNWZiNWVlYjhiMDc3MDM2Y2M5NmJiNDQxNmM0ZGUzOTZmNmQ3NmMxIiwiZG9j L1VURi04LnR4dCI6ImVhN2JhZTc0MmU2MTMwMTBjZWQwMDJjZjRiNjAxYTczN2QyMjAzZmFkNjVl MTE1NjExNDUxYmM0NDI4ZjU0OGEiLCJkb2MvZ2IxODAzMC50eHQiOiJkYzcxMzc4YThmMDdhMmQ4 NjU5ZjY5ZWU4MWZiODc5MWZlZjU2YmE4NmYxMjRiNDI5OTc4Mjg1MjM3YmI0YTdiIiwiZG9jL21h Y2ludG9zaC50eHQiOiI1NzQ5MWU1Mzg2NjcxMWI0NjcyZDliOWZmMzUzODBiOWRhYzllMGQ4ZTNk NmMyMGJkZDYxNDA2MDM2ODdjMDIzIiwiZG9jL3JlcGxhY2VtZW50LnR4dCI6IjRiNmMzYmJkNzk5 OWQ5ZDQxMDhhMjgxNTk0YmQwMmQxMzYwN2UzMzRhOTU0NjVhZmZmOGMyYzA4ZDM5NWYwZTQiLCJk b2Mvd2luZG93cy0xMjUwLnR4dCI6IjYxMjk2YmI2YTIxY2RhYjYwMjMwMGQzMmVjZmJhNDM0Y2I4 MmRlNWFjM2JjODhkNTg3MTBkMmYxMjVlMjhkMzkiLCJkb2Mvd2luZG93cy0xMjUxLnR4dCI6Ijdk ZWVhMWM2MWRlYTE0ODVjOGZmMDJkYjJjN2Q1NzhkYjdhOWFhYjYzYWIxY2ZkMDJlYzA0YjUxNTg2 NDY4OWUiLCJkb2Mvd2luZG93cy0xMjUyLnR4dCI6IjkzM2VmM2JkZGRmY2U1ZWUxMzJiOWYxYTFh YThiNDc0MjNkMjU4N2JiZTQ3NWIxOTAyOGQwYTZkMzhlMTgwYjYiLCJkb2Mvd2luZG93cy0xMjUz LnR4dCI6IjFhMzg3NDhiODhlOTkwNzFhNWM3YjNkNTQ1NmVhZDRjYWVkZWFiYWI1MGQ1MGQ2NThi ZTEwNWJjMTEzNzE0ZGUiLCJkb2Mvd2luZG93cy0xMjU0LnR4dCI6ImY4MzcyZjg2YzZmOGQ2NDI1 NjNjZDZkZGMwMjUyNjA1NTMyOTJhMzk0MjNkZjE2ODNhOTg2NzBiZDdiZjJiNDciLCJkb2Mvd2lu ZG93cy0xMjU1LnR4dCI6IjRlNTg1MjQ5NDczMDA1NGUyZGEyNThhNzRlMWI5ZDc4MGFiYmNkZDhj ZTIyZWJjMjE4Y2EyZWZlOWU5MDQ5M2QiLCJkb2Mvd2luZG93cy0xMjU2LnR4dCI6ImMwODc5YzUx NzJhYmVkZWFkMzAyYTQwNmU4ZjYwZDljZDk1OTg2OTRhMGZmYTRmZDI4OGZmZTRmZWY3YjhlYTEi LCJkb2Mvd2luZG93cy0xMjU3LnR4dCI6ImMyOGEwYzlmOTY0ZmNiMmI0NmQyMWY1MzdjNDAyNDQ2 NTAxYTI4MDA2NzA0ODFkNmFiZjlmZDllOTAxOGQ1MjMiLCJkb2Mvd2luZG93cy0xMjU4LnR4dCI6 IjUwMTlhZTRkNjE4MDVjNzlhYWNiZjE3YzkzNzkzMzQyZGJiMDk4ZDY1YTE4Mzc3ODNiYzNlMmM2 ZDZhMjM2MDIiLCJkb2Mvd2luZG93cy04NzQudHh0IjoiNGVmMGU0NTAxYzVmZWJhOGIxN2FlZTE4 MTg2MDJlZDQ0YjM2Y2E4NDc1ZGI3NzFjZTJmYzE2ZDM5MmNhYmVjYyIsImRvYy94LW1hYy1jeXJp bGxpYy50eHQiOiI1OGJlMTU0ZDhhODg4Y2EzZDQ4NGI4M2I0NGY3NDk4MjNlZjMzOWFiMjdmMTRk OTBjYTlhODU2ZjUwNTBhOGJkIiwiZG9jL3gtdXNlci1kZWZpbmVkLnR4dCI6ImY5Y2QwN2M0MzIx YmY1Y2ZiMGJlNGJkZGRkMjUxMDcyOTk5YjA0YTZjZjdhNmY1YmM2MzcwOWE4NGUyYzFmZmMiLCJn ZW5lcmF0ZS1lbmNvZGluZy1kYXRhLnB5IjoiYmU5ODlkZDI1YzZiOTQ2ZTNlODc0NWZkYzhlOGE4 MGZjZjI0YjNiZTk5YWQwYjRiNzgxNTNiYTNmNmFiNjMxMCIsInJ1c3RmbXQudG9tbCI6Ijg1YzFh M2I0MzgyZmQ4OWU5OTFjYmI4MWI3MGZiNTI3ODA0NzJlZGMwNjRjOTYzOTQzY2RhYWE1NmUwYTIw MzAiLCJzcmMvYXNjaWkucnMiOiJmMTEwMDBmNjhmYTk3MGFmNzA0MzgwOGVhMjlhMTkwYzI5NWY3 NmFjYmM1Mjg5ZWU2YjE0YTlkODhjZGI5MTljIiwic3JjL2JpZzUucnMiOiJlYzZlMjkxMzAxMWEz OGU5YTNlODI1YTE3MzFmMTM5YTdjYTFkNWIyNjRmZWZhZTUxYTNjYzFhNjhhNTdjZWY5Iiwic3Jj L2RhdGEucnMiOiI4YTYxN2NjNTcwMzIwOTJkNjU4NTBlYjI3ZTAwZGU2ODdjODBhZWEzMjk5ZTgz OWExZjU4YjQyZDBiMzVhYmYzIiwic3JjL2V1Y19qcC5ycyI6IjMyMDQ3ZjViNTQwMTg4YzRjYjE5 YzA3MTY1Zjg0NmI5Nzg2YTA5ZjE4ZTMxNWVkM2U5YmRhMTI5M2RhZTUyYWEiLCJzcmMvZXVjX2ty LnJzIjoiOWIyNWFmYzcyZDkzNzg3MDBlZWNmYWM1OGQ1NWFkMWM1OTQ2ZDZjZDBjY2RlMmMyOWMw ODIwMGVmMmRlNmJiOSIsInNyYy9nYjE4MDMwLnJzIjoiODA4NTg3MTY4ZDczZjBjODBmODUyMGYw Y2E5YjE2MTg2NmVkMmVmZWIxN2EwNWU4NWZkZjNiOGVmZTdiYTI4YSIsInNyYy9oYW5kbGVzLnJz IjoiYjA4Y2VmMWY1Nzg1YmI2YTQ4MjJmMmU4NDRjNmRmMWIwNDZiNzM3YjdhMDc1ZTQ1OTNlYWE4 YzQyMDhlOWZlMiIsInNyYy9pc29fMjAyMl9qcC5ycyI6IjliYjQ4NWU4MjU3NGY0YjdkNGIyMzY0 ZjBmZjI3NmFjYjZhMGJjMTExNzU4NDIwYTNiMGVjNWUwNGMxOTY2NTIiLCJzcmMvbGliLnJzIjoi ODM0ZjQ0YjY3MGVjNDhlZTgyYzBlMTIyMjNkMTU2NzMxM2ZkZDlmODhiY2E1ZjRiMTE3YzgyYzE4 MjhmNTU5ZiIsInNyYy9tYWNyb3MucnMiOiIyMDA5OTdmODg3MGRlOGJmZDhjZGM0NzVlOTIxMTVk ZjQyMTA4YzBkZjY2MWU0OWQzZDFjYmMzMjA1NmUxZDk5Iiwic3JjL21lbS5ycyI6Ijk0ODU3MTEz N2QzYjE1MWRmOGRiNGZiMmM3MzNlNzRhZTU5NWQwNTVjZGYwYWQ4M2FiY2FiOTM0MWQ2YWRhYmUi LCJzcmMvcmVwbGFjZW1lbnQucnMiOiI3NjYwYjM0YTUzZjhjMWNhMmJkZmEwZTUxZTg0M2VjMjgz MjY5NTA5NTJhZDhiYzk2NTY5ZmViOTNhYzYyMzA4Iiwic3JjL3NoaWZ0X2ppcy5ycyI6IjY5NTFh ZTY3ZTM2YjFhMTJmYTNhMzA3MzQ5NTdmNDQ0ZDhiMWI0YWUwZTJiZGU1MjA2MGIyOWJkMGYxNmQ5 ZDkiLCJzcmMvc2ltZF9mdW5jcy5ycyI6IjBiNzZlYWU1ZWYyYzc4ODFmY2VkZWJiZDhjZDY1MmI1 MzNlNzlmNjk0NDc2NjhhM2U5YjhlM2EyYTY2OGU3NGMiLCJzcmMvc2luZ2xlX2J5dGUucnMiOiIz YWQ4NzExNmZiMzM5NDM0YTRiNThlOGYyYjE1NDg1ZjJiNjZiOWY3ODE0ZDcwOGYxNjE5NGVkMDhm NmQ2Y2NmIiwic3JjL3Rlc3RfZGF0YS9iaWc1X2luLnR4dCI6IjRjNWE4NjkxZjhkYzcxNzMxMTg4 OWM2Mzg5NDAyNmQyZmI2MjcyNWE4NmM0MjA4Y2EyNzRhOWNjOGQ0MmE1MDMiLCJzcmMvdGVzdF9k YXRhL2JpZzVfaW5fcmVmLnR4dCI6Ijk5ZDM5OWUxNzc1MGNmOWM3Y2YzMGJiMjUzZGJmZTM1Yjgx YzRmY2JkZWFkOTNjZmE0OGIxNDI5MjEzNDczYzciLCJzcmMvdGVzdF9kYXRhL2JpZzVfb3V0LnR4 dCI6IjYxOTNjYTk3YzI5N2FhMjBlMDkzOTYwMzhkMThlOTM4YmI3ZWEzMzFjMjZmMGYyNDU0MDk3 Mjk2NzIzYTBiMTMiLCJzcmMvdGVzdF9kYXRhL2JpZzVfb3V0X3JlZi50eHQiOiIzNjU2NzY5MWY1 NTdkZjE0NGY2Y2M1MjAwMTVhODcwMzhkZmExNTZmMjk2ZmNmMTAzYjU2YWU5YTcxOGJlMWZjIiwi c3JjL3Rlc3RfZGF0YS9ldWNfa3JfaW4udHh0IjoiYzg2YTcyMjRmMzIxNWZhMGQwNGU2ODU2MjJh NzUyZmRjNzI3NjNlOGFlMDc2MjMwYzdmZDYyZGU1N2VjNDA3NCIsInNyYy90ZXN0X2RhdGEvZXVj X2tyX2luX3JlZi50eHQiOiIxZjQxOWY0Y2E0N2Q3MDhiNTRjNzNjNDYxNTQ1YTAyMmFlMmUyMDQ5 OGZkYmY4MDA1YTQ4M2Q3NTJhMjA0ODgzIiwic3JjL3Rlc3RfZGF0YS9ldWNfa3Jfb3V0LnR4dCI6 ImU3ZjMyZTAyNmY3MGJlMWUxYjU4ZTAwNDdiYWY3ZDNkMmM1MjAyNjljNGY5Yjk5OTJlMTU4YjRk ZWNiMGExYTMiLCJzcmMvdGVzdF9kYXRhL2V1Y19rcl9vdXRfcmVmLnR4dCI6ImM5OTA3ODU3OTgw YjIwYjhlOWUzYjU4NDQ4MmVkNjU2N2EyYmU2MTg1ZDcyMjM3YjYzMjJmMDQwNDk0NDkyNGUiLCJz cmMvdGVzdF9kYXRhL2diMTgwMzBfaW4udHh0IjoiYWI3MjMxYjJkM2U5YWZhY2RiZDdkN2YzYjll NTM2MWE3ZmY5ZjdlMWNmZGI0ZjNiZDkwNWI5MzYyYjMwOWU1MyIsInNyYy90ZXN0X2RhdGEvZ2Ix ODAzMF9pbl9yZWYudHh0IjoiZGM1MDY5NDIxYWRjYTIwNDNjNTVmNTAxMmI1NWE3NmZkZmY2NTFk MjJlNmU2OTlmZDA5NzhmOGQ1NzA2ODE1YyIsInNyYy90ZXN0X2RhdGEvZ2IxODAzMF9vdXQudHh0 IjoiZjAyMDhkNTI3ZjVjYTYzZGU3ZDlhMDMyM2JlOGQ1Y2YxMmQ4YTEwNGIyOTQzZDkyYzI3MDFm MGMzMzY0ZGFjMSIsInNyYy90ZXN0X2RhdGEvZ2IxODAzMF9vdXRfcmVmLnR4dCI6IjY4MTlmZTQ3 NjI3ZTRlYTAxMDI3MDAzZmM1MTRiOWYyMWExMzIyZTczMmQ3ZjFmYjkyY2M2YzU0NTViYzZjMDci LCJzcmMvdGVzdF9kYXRhL2lzb18yMDIyX2pwX2luLnR4dCI6ImNkMjRiYmRjYjE4MzRlMjVkYjU0 NjQ2ZmJmNGM0MTU2MGExM2RjNzU0MGY2YmUzZGJhNGY1ZDk3ZDQ0NTEzYWYiLCJzcmMvdGVzdF9k YXRhL2lzb18yMDIyX2pwX2luX3JlZi50eHQiOiIzZGM0ZTZhNWUwNjQ3MTk0MmQwODZiMTZjOTQ0 MDk0NWU3ODQxNWY2ZjNmNDdlNDM3MTdlNGJjMmVhYzJjZGY1Iiwic3JjL3Rlc3RfZGF0YS9pc29f MjAyMl9qcF9vdXQudHh0IjoiOWI2ZjAxNTMyOWRkYTZjM2Y5ZWU1Y2U2ZGJkNmZhOWM4OWFjYzIx MjgzZTg4NjgzNmM3OGI4ZDgzMzQ4MGMyMSIsInNyYy90ZXN0X2RhdGEvaXNvXzIwMjJfanBfb3V0 X3JlZi50eHQiOiI3OGNiMjYwMDkzYTIwMTE2YWQ5YTQyZjQzYjA1ZDE4NDhjNWFiMTAwYjZiOWE4 NTA3NDk4MDllOTQzODg0YjM1Iiwic3JjL3Rlc3RfZGF0YS9qaXMwMjA4X2luLnR4dCI6IjZkZjMw MzA1NTNmZmIwYTY2MTViYjMzZGM4ZWE5ZGNhNmQ5NjIzYTkwMjhlMmZmZWM3NTRjZTNjM2RhODI0 Y2MiLCJzcmMvdGVzdF9kYXRhL2ppczAyMDhfaW5fcmVmLnR4dCI6IjNkYzRlNmE1ZTA2NDcxOTQy ZDA4NmIxNmM5NDQwOTQ1ZTc4NDE1ZjZmM2Y0N2U0MzcxN2U0YmMyZWFjMmNkZjUiLCJzcmMvdGVz dF9kYXRhL2ppczAyMDhfb3V0LnR4dCI6IjRlYzI0NDc3ZTE2NzVjZTc1MDczM2JkYzNjNWFkZDFj ZDI3YjZiZDRjZTFmMDkyODk1NjQ2NDZlOTY1NGU4NTciLCJzcmMvdGVzdF9kYXRhL2ppczAyMDhf b3V0X3JlZi50eHQiOiJjM2UxY2VmNTAzMmIyYjFkOTNhNDA2ZjMxZmY5NDBjNGUyZGZlODg1OWI4 YjE3Y2EyNzYxZmVlN2E3NWEwZTQ4Iiwic3JjL3Rlc3RfZGF0YS9qaXMwMjEyX2luLnR4dCI6ImMw MTFmMGRkNzJiZDdjOGNkOTIyZGY5Mzc0ZWY4ZDI3NjlhNzcxOTA1MTRjNzdmNmM2MmI0MTU4NTJl ZWI5ZmUiLCJzcmMvdGVzdF9kYXRhL2ppczAyMTJfaW5fcmVmLnR4dCI6IjdkOTQ1OGIzZDJmNzNl NzA5MmE3ZjUwNWMwOGNlMWQyMzNkZGUxOGFhNjc5ZmJjZjk4ODkyNTYyMzljYzllMDYiLCJzcmMv dGVzdF9kYXRhL3NoaWZ0X2ppc19pbi50eHQiOiIwMmUzODljY2VmMGRkMjEyMmU2M2Y1MDM4OTk0 MDJjYjdmNzk3OTEyYzI0NDRjYzgwYWI5MzEzMTExNmM1NTI0Iiwic3JjL3Rlc3RfZGF0YS9zaGlm dF9qaXNfaW5fcmVmLnR4dCI6IjUxMmY5ODU5NTBjYTkwMmU2NDNjODg2ODJkYmE5NzA4YjdjMzhk M2M1ZWMyOTI1MTY4YWIwMGFjOTRhYjE5ZjkiLCJzcmMvdGVzdF9kYXRhL3NoaWZ0X2ppc19vdXQu dHh0IjoiNWZiYzQ0ZGE3YmY2MzliZjZjZmUwZmExZmQzZWJhNzEwMmI4OGY4MTkxOWM5ZWE5OTEz MDI3MTJmNjk0MjZmYiIsInNyYy90ZXN0X2RhdGEvc2hpZnRfamlzX291dF9yZWYudHh0IjoiNDY2 MzIyYzZmZWQ4Mjg2YzY0NTgyNzMxNzU1MjkwYzIyOTY1MDhlZmRkMjU4ODI2ZTYyNzk2ODY2NDli NDgxZiIsInNyYy90ZXN0X2xhYmVsc19uYW1lcy5ycyI6IjIzYTJlMTFiMDJiM2I4ZDE1ZmI1NjEz YTYyNWUzZWRiMmM2MWU3MGUzYzU4MWFiZmQ2Mzg3MTlhNDA4ODIwMGQiLCJzcmMvdGVzdGluZy5y cyI6ImY1OWU2NzFlOTVhOThhNTZmNmI1NzNlOGM2YmU0ZDcxZTY3MGJmNTJmN2UyMGViMTYwNWQ5 OTBhYWZhMTg5NGUiLCJzcmMvdXRmXzE2LnJzIjoiYzA3MWExNDdmYWQzOGQ3NTBjMmMyNDdlMTQx Yjc2YjkyOWE0ODAwN2I5OWYyNmIyOTIyYjljYWVjZGFmMmYyNSIsInNyYy91dGZfOC5ycyI6Ijdi N2Q4ODdiMzQ3ZjFhZWZhMDMyNDZiMDI4YTM2YTcyNzU4YTRjZTc2YzI4ZjNiNDVjMTk0Njc4NTFh YTc4MzkiLCJzcmMvdmFyaWFudC5ycyI6IjFmYWI1MzYzNTg4YTE1NTRhNzE2OWRlODczMWVhOWNk ZWQ3YWM2M2VhMzVjYWFiZGQxYzI3YThkZGU2OGMyN2IiLCJzcmMveF91c2VyX2RlZmluZWQucnMi OiI5NDU2Y2E0NjE2OGVmODZjOTgzOTlhMjUzNmY1NzdlZjdiZTNjZGRlOTBjMGM1MTM5MmQ4YWM0 ODUxOWQzZmFlIn0sInBhY2thZ2UiOiJiNDVkZTkwNGFhMGIwMTBiY2UyYWI0NTI2NGQwNjMxNjgx ODQ3ZmE3YjZmMmVhYTdkYWI3NjE5OTQzYmM0ZjU5In0KLVwgTm8gbmV3bGluZSBhdCBlbmQgb2Yg ZmlsZQotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvQ2FyZ28udG9t bCBiL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvQ2FyZ28udG9tbAotLS0tIGEvdGhpcmRf cGFydHkvcnVzdC9lbmNvZGluZ19ycy9DYXJnby50b21sCTIwMjUtMDQtMjAgMTk6Mjg6MTIuMDAw MDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL0NhcmdvLnRv bWwJMjAyNS0wOS0xNyAxNzo0MToyMS4xMzg4MDUwMDcgKzAzMDAKLUBAIC0xMSw4ICsxMSw5IEBA Ci0gCi0gW3BhY2thZ2VdCi0gZWRpdGlvbiA9ICIyMDE4IgotK3J1c3QtdmVyc2lvbiA9ICIxLjM2 IgotIG5hbWUgPSAiZW5jb2RpbmdfcnMiCi0tdmVyc2lvbiA9ICIwLjguMzMiCi0rdmVyc2lvbiA9 ICIwLjguMzQiCi0gYXV0aG9ycyA9IFsiSGVucmkgU2l2b25lbiA8aHNpdm9uZW5AaHNpdm9uZW4u Zmk+Il0KLSBkZXNjcmlwdGlvbiA9ICJBIEdlY2tvLW9yaWVudGVkIGltcGxlbWVudGF0aW9uIG9m IHRoZSBFbmNvZGluZyBTdGFuZGFyZCIKLSBob21lcGFnZSA9ICJodHRwczovL2RvY3MucnMvZW5j b2RpbmdfcnMvIgotQEAgLTM2LDEzICszNywxMyBAQAotIFtwcm9maWxlLnJlbGVhc2VdCi0gbHRv ID0gdHJ1ZQotIAotK1tkZXBlbmRlbmNpZXMuYW55X2FsbF93b3JrYXJvdW5kXQotK3ZlcnNpb24g PSAiMC4xLjAiCi0rb3B0aW9uYWwgPSB0cnVlCi0rCi0gW2RlcGVuZGVuY2llcy5jZmctaWZdCi0g dmVyc2lvbiA9ICIxLjAiCi0gCi0tW2RlcGVuZGVuY2llcy5wYWNrZWRfc2ltZF0KLS12ZXJzaW9u ID0gIjAuMy45IgotLW9wdGlvbmFsID0gdHJ1ZQotLQotIFtkZXBlbmRlbmNpZXMuc2VyZGVdCi0g dmVyc2lvbiA9ICIxLjAiCi0gb3B0aW9uYWwgPSB0cnVlCi1AQCAtNzQsMTAgKzc1LDQgQEAKLSBs ZXNzLXNsb3ctYmlnNS1oYW56aS1lbmNvZGUgPSBbXQotIGxlc3Mtc2xvdy1nYi1oYW56aS1lbmNv ZGUgPSBbXQotIGxlc3Mtc2xvdy1rYW5qaS1lbmNvZGUgPSBbXQotLXNpbWQtYWNjZWwgPSBbCi0t ICAgICJwYWNrZWRfc2ltZCIsCi0tICAgICJwYWNrZWRfc2ltZC9pbnRvX2JpdHMiLAotLV0KLS0K LS1bYmFkZ2VzLnRyYXZpcy1jaV0KLS1yZXBvc2l0b3J5ID0gImhzaXZvbmVuL2VuY29kaW5nX3Jz IgotK3NpbWQtYWNjZWwgPSBbImFueV9hbGxfd29ya2Fyb3VuZCJdCi1kaWZmIC1OcmJ1IGEvdGhp cmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9SRUFETUUubWQgYi90aGlyZF9wYXJ0eS9ydXN0L2Vu Y29kaW5nX3JzL1JFQURNRS5tZAotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9S RUFETUUubWQJMjAyNS0wNC0yMCAxOToyODoxMi4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJk X3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvUkVBRE1FLm1kCTIwMjUtMDktMTcgMTc6NDE6MjEuMTM4 ODA1MDA3ICswMzAwCi1AQCAtMTY3LDEzICsxNjcsMTUgQEAKLSAKLSAjIyMgYHNpbWQtYWNjZWxg Ci0gCi0tRW5hYmxlcyBTSU1EIGFjY2VsZXJhdGlvbiB1c2luZyB0aGUgbmlnaHRseS1kZXBlbmRl bnQgYHBhY2tlZF9zaW1kYCBjcmF0ZS4KLStFbmFibGVzIFNJTUQgYWNjZWxlcmF0aW9uIHVzaW5n IHRoZSBuaWdodGx5LWRlcGVuZGVudCBgcG9ydGFibGVfc2ltZGAgc3RhbmRhcmQKLStsaWJyYXJ5 IGZlYXR1cmUuCi0gCi0gVGhpcyBpcyBhbiBvcHQtaW4gZmVhdHVyZSwgYmVjYXVzZSBlbmFibGlu ZyB0aGlzIGZlYXR1cmUgX29wdHMgb3V0XyBvZiBSdXN0J3MKLSBndWFyYW50ZWVzIG9mIGZ1dHVy ZSBjb21waWxlcnMgY29tcGlsaW5nIG9sZCBjb2RlIChha2EuICJzdGFiaWxpdHkgc3RvcnkiKS4K LSAKLSBDdXJyZW50bHksIHRoaXMgaGFzIG5vdCBiZWVuIHRlc3RlZCB0byBiZSBhbiBpbXByb3Zl bWVudCBleGNlcHQgZm9yIHRoZXNlCi0tdGFyZ2V0czoKLSt0YXJnZXRzIGFuZCBlbmFibGluZyB0 aGUgYHNpbWQtYWNjZWxgIGZlYXR1cmUgaXMgZXhwZWN0ZWQgdG8gYnJlYWsgdGhlIGJ1aWxkCi0r b24gb3RoZXIgdGFyZ2V0czoKLSAKLSAqIHg4Nl82NAotICogaTY4NgotQEAgLTE4NSwyMiArMTg3 LDYgQEAKLSBSdXN0XywgeW91IHNob3VsZCBlbmFibGUgdGhpcyBmZWF0dXJlLiBPdGhlcndpc2Us IHBsZWFzZSBfZG8gbm90XyBlbmFibGUgdGhpcwotIGZlYXR1cmUuCi0gCi0tX05vdGUhXyBJZiB5 b3UgYXJlIGNvbXBpbGluZyBmb3IgYSB0YXJnZXQgdGhhdCBkb2VzIG5vdCBoYXZlIDEyOC1iaXQg U0lNRAotLWVuYWJsZWQgYXMgcGFydCBvZiB0aGUgdGFyZ2V0IGRlZmluaXRpb24gYW5kIHlvdSBh cmUgZW5hYmxpbmcgMTI4LWJpdCBTSU1ECi0tdXNpbmcgYC1DIHRhcmdldF9mZWF0dXJlYCwgeW91 IG5lZWQgdG8gZW5hYmxlIHRoZSBgY29yZV9hcmNoYCBDYXJnbyBmZWF0dXJlCi0tZm9yIGBwYWNr ZWRfc2ltZGAgdG8gY29tcGlsZSBhIGNyYXRlcy5pbyBzbmFwc2hvdCBvZiBgY29yZV9hcmNoYCBp bnN0ZWFkIG9mCi0tdXNpbmcgdGhlIHN0YW5kYXJkLWxpYnJhcnkgY29weSBvZiBgY29yZTo6YXJj aGAsIGJlY2F1c2UgdGhlIGBjb3JlOjphcmNoYAotLW1vZHVsZSBvZiB0aGUgcHJlLWNvbXBpbGVk IHN0YW5kYXJkIGxpYnJhcnkgaGFzIGJlZW4gY29tcGlsZWQgd2l0aCB0aGUKLS1hc3N1bXB0aW9u IHRoYXQgdGhlIENQVSBkb2Vzbid0IGhhdmUgMTI4LWJpdCBTSU1ELiBBdCBwcmVzZW50IHRoaXMg YXBwbGllcwotLW1haW5seSB0byAzMi1iaXQgQVJNIHRhcmdldHMgd2hvc2UgZmlyc3QgY29tcG9u ZW50IGRvZXMgbm90IGluY2x1ZGUgdGhlCi0tc3Vic3RyaW5nIGBuZW9uYC4KLS0KLS1UaGUgZW5j b2RpbmdfcnMgc2lkZSBvZiB0aGluZ3MgaGFzIG5vdCBiZWVuIHByb3Blcmx5IHNldCB1cCBmb3Ig UE9XRVIsCi0tUG93ZXJQQywgTUlQUywgZXRjLiwgU0lNRCBhdCB0aGlzIHRpbWUsIHNvIGV2ZW4g aWYgeW91IHdlcmUgdG8gZm9sbG93Ci0tdGhlIGFkdmljZSBmcm9tIHRoZSBwcmV2aW91cyBwYXJh Z3JhcGgsIHlvdSBwcm9iYWJseSBzaG91bGRuJ3QgdXNlCi0tdGhlIGBzaW1kLWFjY2VsYCBvcHRp b24gb24gdGhlIGxlc3MgbWFpbnN0cmVhbSBhcmNoaXRlY3R1cmVzIGF0IHRoaXMKLS10aW1lLgot LQotIFVzZWQgYnkgRmlyZWZveC4KLSAKLSAjIyMgYHNlcmRlYAotQEAgLTM4MSw4ICszNjcsOSBA QAotIGFwcGVhciB0byB0cmVhdCBNU1JWIGNoYW5nZXMgYXMgc2VtdmVyLWJyZWFraW5nLCBzbyBp dCB3b3VsZCBiZSB1c2VsZXNzIGZvcgotIHRoaXMgY3JhdGUgdG8gdHJlYXQgTVNSViBjaGFuZ2Vz IGFzIHNlbXZlci1icmVha2luZy4KLSAKLS1BcyBvZiAyMDIxLTAyLTA0LCBNU1JWIGFwcGVhcnMg dG8gYmUgUnVzdCAxLjM2LjAgZm9yIHVzaW5nIHRoZSBjcmF0ZSBhbmQKLStBcyBvZiAyMDI0LTA0 LTA0LCBNU1JWIGFwcGVhcnMgdG8gYmUgUnVzdCAxLjM2LjAgZm9yIHVzaW5nIHRoZSBjcmF0ZSBh bmQKLSAxLjQyLjAgZm9yIGRvYyB0ZXN0cyB0byBwYXNzIHdpdGhvdXQgZXJyb3JzIGFib3V0IHRo ZSBnbG9iYWwgYWxsb2NhdG9yLgotK1dpdGggdGhlIGBzaW1kLWFjY2VsYCBmZWF0dXJlLCB0aGUg TVNSViBpcyBldmVuIGhpZ2hlci4KLSAKLSAjIyBDb21wYXRpYmlsaXR5IHdpdGggcnVzdC1lbmNv ZGluZwotIAotQEAgLTQ0NiwxMCArNDMzLDE3IEBACi0gLSBbeF0gQWRkIGFjdHVhbGx5IGZhc3Qg Q0pLIGVuY29kZSBvcHRpb25zLgotIC0gWyBdIH5JbnZlc3RpZ2F0ZSBbQm9iIFN0ZWFnYWxsJ3Mg bG9va3VwIHRhYmxlIGFjY2VsZXJhdGlvbiBmb3IgVVRGLThdKGh0dHBzOi8vZ2l0aHViLmNvbS9C b2JTdGVhZ2FsbC9DcHBOb3cyMDE4L2Jsb2IvbWFzdGVyL0Zhc3RDb252ZXJzaW9uRnJvbVVURi04 L0Zhc3QlMjBDb252ZXJzaW9uJTIwRnJvbSUyMFVURi04JTIwd2l0aCUyMEMlMkIlMkIlMkMlMjBE RkFzJTJDJTIwYW5kJTIwU1NFJTIwSW50cmluc2ljcyUyMC0lMjBCb2IlMjBTdGVhZ2FsbCUyMC0l MjBDJTJCJTJCTm93JTIwMjAxOC5wZGYpLn4KLSAtIFt4XSBQcm92aWRlIGEgYnVpbGQgbW9kZSB0 aGF0IHdvcmtzIHdpdGhvdXQgYGFsbG9jYCAod2l0aCBsZXNzZXIgQVBJIHN1cmZhY2UpLgotLS0g WyBdIE1pZ3JhdGUgdG8gYHN0ZDo6c2ltZGAgb25jZSBpdCBpcyBzdGFibGUgYW5kIGRlY2xhcmUg MS4wLgotKy0gW3hdIE1pZ3JhdGUgdG8gYHN0ZDo6c2ltZGAgfm9uY2UgaXQgaXMgc3RhYmxlIGFu ZCBkZWNsYXJlIDEuMC5+Ci0rLSBbIF0gTWlncmF0ZSBgdW5zYWZlYCBzbGljZSBhY2Nlc3MgYnkg bGFyZ2VyIHR5cGVzIHRoYW4gYHU4YC9gdTE2YCB0byBgYWxpZ25fdG9gLgotIAotICMjIFJlbGVh c2UgTm90ZXMKLSAKLSsjIyMgMC44LjM0Ci0rCi0rKiBVc2UgdGhlIGBwb3J0YWJsZV9zaW1kYCBu aWdodGx5IGZlYXR1cmUgb2YgdGhlIHN0YW5kYXJkIGxpYnJhcnkgaW5zdGVhZCBvZiB0aGUgYHBh Y2tlZF9zaW1kYCBjcmF0ZS4gT25seSBhZmZlY3RzIHRoZSBgc2ltZC1hY2NlbGAgb3B0aW9uYWwg bmlnaHRseSBmZWF0dXJlLgotKyogSW50ZXJuYWwgZG9jdW1lbnRhdGlvbiBpbXByb3ZlbWVudHMg YW5kIG1pbm9yIGNvZGUgaW1wcm92ZW1lbnRzIGFyb3VuZCBgdW5zYWZlYC4KLSsqIEFkZGVkIGBy dXN0LXZlcnNpb25gIHRvIGBDYXJnby50b21sYC4KLSsKLSAjIyMgMC44LjMzCi0gCi0gKiBVc2Ug YHBhY2tlZF9zaW1kYCBpbnN0ZWFkIG9mIGBwYWNrZWRfc2ltZF8yYCBhZ2FpbiBub3cgdGhhdCB1 cGRhdGVzIGFyZSBiYWNrIHVuZGVyIHRoZSBgcGFja2VkX3NpbWRgIG5hbWUuIE9ubHkgYWZmZWN0 cyB0aGUgYHNpbWQtYWNjZWxgIG9wdGlvbmFsIG5pZ2h0bHkgZmVhdHVyZS4KLWRpZmYgLU5yYnUg YS90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy9hc2NpaS5ycyBiL3RoaXJkX3BhcnR5 L3J1c3QvZW5jb2RpbmdfcnMvc3JjL2FzY2lpLnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L2Vu Y29kaW5nX3JzL3NyYy9hc2NpaS5ycwkyMDI1LTA0LTIwIDE5OjI4OjEyLjAwMDAwMDAwMCArMDMw MAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvYXNjaWkucnMJMjAyNS0w OS0xNyAxNzo0MToyMS4xMzk4MDQ5NjkgKzAzMDAKLUBAIC01MSw2ICs1MSw4IEBACi0gICAgIH0K LSB9Ci0gCi0rLy8gU2FmZXR5IGludmFyaWFudHMgZm9yIG1hc2tzOiBkYXRhICYgbWFzayA9IDAg Zm9yIHZhbGlkIEFTQ0lJIG9yIGJhc2ljIGxhdGluIHV0Zi0xNgotKwotIC8vIGBhc2AgdHJ1bmNh dGVzLCBzbyB3b3JrcyBvbiAzMi1iaXQsIHRvby4KLSAjW2FsbG93KGRlYWRfY29kZSldCi0gcHVi IGNvbnN0IEFTQ0lJX01BU0s6IHVzaXplID0gMHg4MDgwXzgwODBfODA4MF84MDgwdTY0IGFzIHVz aXplOwotQEAgLTYyLDYgKzY0LDkgQEAKLSAjW2FsbG93KHVudXNlZF9tYWNyb3MpXQotIG1hY3Jv X3J1bGVzISBhc2NpaV9uYWl2ZSB7Ci0gICAgICgkbmFtZTppZGVudCwgJHNyY191bml0OnR5LCAk ZHN0X3VuaXQ6dHkpID0+IHsKLSsgICAgICAgIC8vLyBTYWZldHk6IHNyYyBhbmQgZHN0IG11c3Qg aGF2ZSBsZW5fdW5pdCBlbGVtZW50cyBhbmQgYmUgYWxpZ25lZAotKyAgICAgICAgLy8vIFNhZmV0 eS11c2FibGUgaW52YXJpYW50OiB3aWxsIHJldHVybiBTb21lKCkgd2hlbiBpdCBmYWlscwotKyAg ICAgICAgLy8vIHRvIGNvbnZlcnQuIFRoZSBmaXJzdCB2YWx1ZSB3aWxsIGJlIGEgdTggdGhhdCBp cyA+IDEyNy4KLSAgICAgICAgICNbaW5saW5lKGFsd2F5cyldCi0gICAgICAgICBwdWIgdW5zYWZl IGZuICRuYW1lKAotICAgICAgICAgICAgIHNyYzogKmNvbnN0ICRzcmNfdW5pdCwKLUBAIC03MSwx MCArNzYsMTMgQEAKLSAgICAgICAgICAgICAvLyBZZXMsIG1hbnVhbGx5IG9taXR0aW5nIHRoZSBi b3VuZCBjaGVjayBoZXJlIG1hdHRlcnMKLSAgICAgICAgICAgICAvLyBhIGxvdCBmb3IgcGVyZi4K LSAgICAgICAgICAgICBmb3IgaSBpbiAwLi5sZW4gewotKyAgICAgICAgICAgICAgICAvLyBTYWZl dHk6IGxlbiBpbnZhcmlhbnQgdXNlZCBoZXJlCi0gICAgICAgICAgICAgICAgIGxldCBjb2RlX3Vu aXQgPSAqKHNyYy5hZGQoaSkpOwotKyAgICAgICAgICAgICAgICAvLyBTYWZldHk6IFVwaG9sZHMg c2FmZXR5LXVzYWJsZSBpbnZhcmlhbnQgaGVyZQotICAgICAgICAgICAgICAgICBpZiBjb2RlX3Vu aXQgPiAxMjcgewotICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFNvbWUoKGNvZGVfdW5pdCwg aSkpOwotICAgICAgICAgICAgICAgICB9Ci0rICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogbGVu IGludmFyaWFudCB1c2VkIGhlcmUKLSAgICAgICAgICAgICAgICAgKihkc3QuYWRkKGkpKSA9IGNv ZGVfdW5pdCBhcyAkZHN0X3VuaXQ7Ci0gICAgICAgICAgICAgfQotICAgICAgICAgICAgIHJldHVy biBOb25lOwotQEAgLTg1LDkgKzkzLDE1IEBACi0gI1thbGxvdyh1bnVzZWRfbWFjcm9zKV0KLSBt YWNyb19ydWxlcyEgYXNjaWlfYWx1IHsKLSAgICAgKCRuYW1lOmlkZW50LAotKyAgICAgLy8gc2Fm ZXR5IGludmFyaWFudDogc3JjL2RzdCBNVVNUIGJlIHU4Ci0gICAgICAkc3JjX3VuaXQ6dHksCi0g ICAgICAkZHN0X3VuaXQ6dHksCi0rICAgICAvLyBTYWZldHkgaW52YXJpYW50OiBzdHJpZGVfZm4g bXVzdCBjb25zdW1lIGFuZCBwcm9kdWNlIHR3byB1c2l6ZXMsIGFuZCByZXR1cm4gdGhlIGluZGV4 IG9mIHRoZSBmaXJzdCBub24tYXNjaWkgd2hlbiBpdCBmYWlscwotICAgICAgJHN0cmlkZV9mbjpp ZGVudCkgPT4gewotKyAgICAgICAgLy8vIFNhZmV0eTogc3JjIGFuZCBkc3QgbXVzdCBoYXZlIGxl biBlbGVtZW50cywgc3JjIGlzIHZhbGlkIGZvciByZWFkLCBkc3QgaXMgdmFsaWQgZm9yCi0rICAg ICAgICAvLy8gd3JpdGUKLSsgICAgICAgIC8vLyBTYWZldHktdXNhYmxlIGludmFyaWFudDogd2ls bCByZXR1cm4gU29tZSgpIHdoZW4gaXQgZmFpbHMKLSsgICAgICAgIC8vLyB0byBjb252ZXJ0LiBU aGUgZmlyc3QgdmFsdWUgd2lsbCBiZSBhIHU4IHRoYXQgaXMgPiAxMjcuCi0gICAgICAgICAjW2Nm Z19hdHRyKGZlYXR1cmUgPSAiY2FyZ28tY2xpcHB5IiwgYWxsb3cobmV2ZXJfbG9vcCwgY2FzdF9w dHJfYWxpZ25tZW50KSldCi0gICAgICAgICAjW2lubGluZShhbHdheXMpXQotICAgICAgICAgcHVi IHVuc2FmZSBmbiAkbmFtZSgKLUBAIC05OCw2ICsxMTIsNyBAQAotICAgICAgICAgICAgIGxldCBt dXQgb2Zmc2V0ID0gMHVzaXplOwotICAgICAgICAgICAgIC8vIFRoaXMgbG9vcCBpcyBvbmx5IGJy b2tlbiBvdXQgb2YgYXMgYSBgZ290b2AgZm9yd2FyZAotICAgICAgICAgICAgIGxvb3AgewotKyAg ICAgICAgICAgICAgICAvLyBTYWZldHk6IHVudGlsX2FsaWdubWVudCBiZWNvbWVzIHRoZSBudW1i ZXIgb2YgYnl0ZXMgd2UgbmVlZCB0byBtdW5jaCB1bnRpbCB3ZSBhcmUgYWxpZ25lZCB0byB1c2l6 ZQotICAgICAgICAgICAgICAgICBsZXQgbXV0IHVudGlsX2FsaWdubWVudCA9IHsKLSAgICAgICAg ICAgICAgICAgICAgIC8vIENoZWNrIGlmIHRoZSBvdGhlciB1bml0IGFsaWducyBpZiB3ZSBtb3Zl IHRoZSBuYXJyb3dlciB1bml0Ci0gICAgICAgICAgICAgICAgICAgICAvLyB0byBhbGlnbm1lbnQu Ci1AQCAtMTA2LDYgKzEyMSw3IEBACi0gICAgICAgICAgICAgICAgICAgICBsZXQgc3JjX2FsaWdu bWVudCA9IChzcmMgYXMgdXNpemUpICYgQUxVX0FMSUdOTUVOVF9NQVNLOwotICAgICAgICAgICAg ICAgICAgICAgbGV0IGRzdF9hbGlnbm1lbnQgPSAoZHN0IGFzIHVzaXplKSAmIEFMVV9BTElHTk1F TlRfTUFTSzsKLSAgICAgICAgICAgICAgICAgICAgIGlmIHNyY19hbGlnbm1lbnQgIT0gZHN0X2Fs aWdubWVudCB7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBiYWlscyBlYXJs eSBhbmQgZW5kcyB1cCBpbiB0aGUgbmHDr3ZlIGJyYW5jaCB3aGVyZSB1c2l6ZS1hbGlnbm1lbnQg ZG9lc24ndCBtYXR0ZXIKLSAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAg ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIChBTFVfQUxJR05NRU5UIC0gc3Jj X2FsaWdubWVudCkgJiBBTFVfQUxJR05NRU5UX01BU0sKLUBAIC0xMzQsMjUgKzE1MCw0MCBAQAot ICAgICAgICAgICAgICAgICAgICAgLy8geDg2XzY0IHNob3VsZCBiZSB1c2luZyBTU0UyIGluIGR1 ZSBjb3Vyc2UsIGtlZXBpbmcgdGhlIG1vdmUKLSAgICAgICAgICAgICAgICAgICAgIC8vIHRvIGFs aWdubWVudCBoZXJlLiBJdCB3b3VsZCBiZSBnb29kIHRvIHRlc3Qgb24gbW9yZSBBUk0gQ1BVcwot ICAgICAgICAgICAgICAgICAgICAgLy8gYW5kIG9uIHJlYWwgTUlQUyBhbmQgUE9XRVIgaGFyZHdh cmUuCi0rICAgICAgICAgICAgICAgICAgICAvLwotKyAgICAgICAgICAgICAgICAgICAgLy8gU2Fm ZXR5OiBUaGlzIGlzIHRoZSBuYcOvdmUgY29kZSBvbmNlIGFnYWluLCBmb3IgYHVudGlsX2FsaWdu bWVudGAgYnl0ZXMKLSAgICAgICAgICAgICAgICAgICAgIHdoaWxlIHVudGlsX2FsaWdubWVudCAh PSAwIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgY29kZV91bml0ID0gKihzcmMuYWRk KG9mZnNldCkpOwotICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGNvZGVfdW5pdCA+IDEyNyB7 Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogVXBob2xkcyBzYWZldHkt dXNhYmxlIGludmFyaWFudCBoZXJlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVy biBTb21lKChjb2RlX3VuaXQsIG9mZnNldCkpOwotICAgICAgICAgICAgICAgICAgICAgICAgIH0K LSAgICAgICAgICAgICAgICAgICAgICAgICAqKGRzdC5hZGQob2Zmc2V0KSkgPSBjb2RlX3VuaXQg YXMgJGRzdF91bml0OwotKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogb2Zmc2V0 IGlzIHRoZSBudW1iZXIgb2YgYnl0ZXMgY29waWVkIHNvIGZhcgotICAgICAgICAgICAgICAgICAg ICAgICAgIG9mZnNldCArPSAxOwotICAgICAgICAgICAgICAgICAgICAgICAgIHVudGlsX2FsaWdu bWVudCAtPSAxOwotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAg bGV0IGxlbl9taW51c19zdHJpZGUgPSBsZW4gLSBBTFVfU1RSSURFX1NJWkU7Ci0gICAgICAgICAg ICAgICAgICAgICBsb29wIHsKLSsgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IG51 bV9hc2NpaSBpcyBrbm93biB0byBiZSBhIGJ5dGUgaW5kZXggb2YgYSBub24tYXNjaWkgYnl0ZSBk dWUgdG8gc3RyaWRlX2ZuJ3MgaW52YXJpYW50Ci0gICAgICAgICAgICAgICAgICAgICAgICAgaWYg bGV0IFNvbWUobnVtX2FzY2lpKSA9ICRzdHJpZGVfZm4oCi0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgIC8vIFNhZmV0eTogVGhlc2UgYXJlIGtub3duIHRvIGJlIHZhbGlkIGFuZCBhbGlnbmVk IHNpbmNlIHdlIGhhdmUgYXQKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbGVhc3Qg QUxVX1NUUklERV9TSVpFIGRhdGEgaW4gdGhlc2UgYnVmZmVycywgYW5kIG9mZnNldCBpcyB0aGUK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbnVtYmVyIG9mIGVsZW1lbnRzIGNvcGll ZCBzbyBmYXIsIHdoaWNoIGFjY29yZGluZyB0byB0aGUKLSsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgLy8gdW50aWxfYWxpZ25tZW50IGNhbGN1bGF0aW9uIGFib3ZlIHdpbGwgY2F1c2UgYm90 aCBzcmMgYW5kIGRzdCB0byBiZQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBhbGln bmVkIHRvIHVzaXplIGFmdGVyIHRoaXMgYWRkCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg IHNyYy5hZGQob2Zmc2V0KSBhcyAqY29uc3QgdXNpemUsCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGRzdC5hZGQob2Zmc2V0KSBhcyAqbXV0IHVzaXplLAotICAgICAgICAgICAgICAgICAg ICAgICAgICkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQgKz0gbnVtX2Fz Y2lpOwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IFVwaG9sZHMgc2Fm ZXR5LXVzYWJsZSBpbnZhcmlhbnQgaGVyZSBieSBpbmRleGluZyBpbnRvIG5vbi1hc2NpaSBieXRl Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBTb21lKCgqKHNyYy5hZGQob2Zm c2V0KSksIG9mZnNldCkpOwotICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSsgICAgICAgICAg ICAgICAgICAgICAgICAvLyBTYWZldHk6IG9mZnNldCBjb250aW51ZXMgdG8gYmUgdGhlIG51bWJl ciBvZiBieXRlcyBjb3BpZWQgc28gZmFyLCBhbmQKLSsgICAgICAgICAgICAgICAgICAgICAgICAv LyBtYWludGFpbnMgdXNpemUgYWxpZ25tZW50IGZvciB0aGUgbmV4dCBsb29wIGl0ZXJhdGlvbgot ICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCArPSBBTFVfU1RSSURFX1NJWkU7Ci0rICAg ICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBUaGlzIGlzIGBvZmZzZXQgPiBsZW4gLSBz dHJpZGUuIFRoaXMgbG9vcCB3aWxsIGNvbnRpbnVlIGFzIGxvbmcgYXMKLSsgICAgICAgICAgICAg ICAgICAgICAgICAvLyBgb2Zmc2V0IDw9IGxlbiAtIHN0cmlkZWAsIHdoaWNoIG1lYW5zIHRoZXJl IGFyZSBgc3RyaWRlYCBieXRlcyB0byBzdGlsbCBiZSByZWFkLgotICAgICAgICAgICAgICAgICAg ICAgICAgIGlmIG9mZnNldCA+IGxlbl9taW51c19zdHJpZGUgewotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgICAgICB9Ci1AQCAtMTYwLDEx ICsxOTEsMTcgQEAKLSAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICBicmVhazsK LSAgICAgICAgICAgICB9Ci0rCi0rICAgICAgICAgICAgLy8gU2FmZXR5OiBUaGlzIGlzIHRoZSBu YcOvdmUgY29kZSwgc2FtZSBhcyBhc2NpaV9uYWl2ZSwgYW5kIGhhcyBubyByZXF1aXJlbWVudHMK LSsgICAgICAgICAgICAvLyBvdGhlciB0aGFuIHNyYy9kc3QgYmVpbmcgdmFsaWQgZm9yIHRoZSB0 aGUgcmlnaHQgbGVucwotICAgICAgICAgICAgIHdoaWxlIG9mZnNldCA8IGxlbiB7Ci0rICAgICAg ICAgICAgICAgIC8vIFNhZmV0eTogbGVuIGludmFyaWFudCB1c2VkIGhlcmUKLSAgICAgICAgICAg ICAgICAgbGV0IGNvZGVfdW5pdCA9ICooc3JjLmFkZChvZmZzZXQpKTsKLSAgICAgICAgICAgICAg ICAgaWYgY29kZV91bml0ID4gMTI3IHsKLSsgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTog VXBob2xkcyBzYWZldHktdXNhYmxlIGludmFyaWFudCBoZXJlCi0gICAgICAgICAgICAgICAgICAg ICByZXR1cm4gU29tZSgoY29kZV91bml0LCBvZmZzZXQpKTsKLSAgICAgICAgICAgICAgICAgfQot KyAgICAgICAgICAgICAgICAvLyBTYWZldHk6IGxlbiBpbnZhcmlhbnQgdXNlZCBoZXJlCi0gICAg ICAgICAgICAgICAgICooZHN0LmFkZChvZmZzZXQpKSA9IGNvZGVfdW5pdCBhcyAkZHN0X3VuaXQ7 Ci0gICAgICAgICAgICAgICAgIG9mZnNldCArPSAxOwotICAgICAgICAgICAgIH0KLUBAIC0xNzYs OSArMjEzLDE2IEBACi0gI1thbGxvdyh1bnVzZWRfbWFjcm9zKV0KLSBtYWNyb19ydWxlcyEgYmFz aWNfbGF0aW5fYWx1IHsKLSAgICAgKCRuYW1lOmlkZW50LAotKyAgICAvLyBzYWZldHkgaW52YXJp YW50OiB1c2UgdTggZm9yIHNyYy9kZXN0IGZvciBhc2NpaSwgYW5kIHUxNiBmb3IgYmFzaWNfbGF0 aW4KLSAgICAgICRzcmNfdW5pdDp0eSwKLSAgICAgICRkc3RfdW5pdDp0eSwKLSsgICAgLy8gc2Fm ZXR5IGludmFyaWFudDogc3RyaWRlIGZ1bmN0aW9uIG11c3QgbXVuY2ggQUxVX1NUUklERV9TSVpF KnNpemUoc3JjX3VuaXQpIGJ5dGVzIG9mZiBvZiBzcmMgYW5kCi0rICAgIC8vIHdyaXRlIEFMVV9T VFJJREVfU0laRSpzaXplKGRzdF91bml0KSBieXRlcyB0byBkc3QKLSAgICAgICRzdHJpZGVfZm46 aWRlbnQpID0+IHsKLSsgICAgICAgIC8vLyBTYWZldHk6IHNyYyBhbmQgZHN0IG11c3QgaGF2ZSBs ZW4gZWxlbWVudHMsIHNyYyBpcyB2YWxpZCBmb3IgcmVhZCwgZHN0IGlzIHZhbGlkIGZvcgotKyAg ICAgICAgLy8vIHdyaXRlCi0rICAgICAgICAvLy8gU2FmZXR5LXVzYWJsZSBpbnZhcmlhbnQ6IHdp bGwgcmV0dXJuIFNvbWUoKSB3aGVuIGl0IGZhaWxzCi0rICAgICAgICAvLy8gdG8gY29udmVydC4g VGhlIGZpcnN0IHZhbHVlIHdpbGwgYmUgYSB1OCB0aGF0IGlzID4gMTI3LgotICAgICAgICAgI1tj ZmdfYXR0cigKLSAgICAgICAgICAgICBmZWF0dXJlID0gImNhcmdvLWNsaXBweSIsCi0gICAgICAg ICAgICAgYWxsb3cobmV2ZXJfbG9vcCwgY2FzdF9wdHJfYWxpZ25tZW50LCBjYXN0X2xvc3NsZXNz KQotQEAgLTE5Miw2ICsyMzYsOCBAQAotICAgICAgICAgICAgIGxldCBtdXQgb2Zmc2V0ID0gMHVz aXplOwotICAgICAgICAgICAgIC8vIFRoaXMgbG9vcCBpcyBvbmx5IGJyb2tlbiBvdXQgb2YgYXMg YSBgZ290b2AgZm9yd2FyZAotICAgICAgICAgICAgIGxvb3AgewotKyAgICAgICAgICAgICAgICAv LyBTYWZldHk6IHVudGlsX2FsaWdubWVudCBiZWNvbWVzIHRoZSBudW1iZXIgb2YgYnl0ZXMgd2Ug bmVlZCB0byBtdW5jaCBmcm9tIHNyYy9kZXN0IHVudGlsIHdlIGFyZSBhbGlnbmVkIHRvIHVzaXpl Ci0rICAgICAgICAgICAgICAgIC8vIFdlIGVuc3VyZSBiYXNpYy1sYXRpbiBoYXMgdGhlIHNhbWUg YWxpZ25tZW50IGFzIGFzY2lpLCBzdGFydGluZyB3aXRoIGFzY2lpIHNpbmNlIGl0IGlzIHNtYWxs ZXIuCi0gICAgICAgICAgICAgICAgIGxldCBtdXQgdW50aWxfYWxpZ25tZW50ID0gewotICAgICAg ICAgICAgICAgICAgICAgLy8gQ2hlY2sgaWYgdGhlIG90aGVyIHVuaXQgYWxpZ25zIGlmIHdlIG1v dmUgdGhlIG5hcnJvd2VyIHVuaXQKLSAgICAgICAgICAgICAgICAgICAgIC8vIHRvIGFsaWdubWVu dC4KLUBAIC0yMzcsMjQgKzI4MywzNyBAQAotICAgICAgICAgICAgICAgICAgICAgLy8geDg2XzY0 IHNob3VsZCBiZSB1c2luZyBTU0UyIGluIGR1ZSBjb3Vyc2UsIGtlZXBpbmcgdGhlIG1vdmUKLSAg ICAgICAgICAgICAgICAgICAgIC8vIHRvIGFsaWdubWVudCBoZXJlLiBJdCB3b3VsZCBiZSBnb29k IHRvIHRlc3Qgb24gbW9yZSBBUk0gQ1BVcwotICAgICAgICAgICAgICAgICAgICAgLy8gYW5kIG9u IHJlYWwgTUlQUyBhbmQgUE9XRVIgaGFyZHdhcmUuCi0rICAgICAgICAgICAgICAgICAgICAvLwot KyAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBUaGlzIGlzIHRoZSBuYcOvdmUgY29kZSBv bmNlIGFnYWluLCBmb3IgYHVudGlsX2FsaWdubWVudGAgYnl0ZXMKLSAgICAgICAgICAgICAgICAg ICAgIHdoaWxlIHVudGlsX2FsaWdubWVudCAhPSAwIHsKLSAgICAgICAgICAgICAgICAgICAgICAg ICBsZXQgY29kZV91bml0ID0gKihzcmMuYWRkKG9mZnNldCkpOwotICAgICAgICAgICAgICAgICAg ICAgICAgIGlmIGNvZGVfdW5pdCA+IDEyNyB7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAg IC8vIFNhZmV0eTogVXBob2xkcyBzYWZldHktdXNhYmxlIGludmFyaWFudCBoZXJlCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBTb21lKChjb2RlX3VuaXQsIG9mZnNldCkpOwot ICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAqKGRz dC5hZGQob2Zmc2V0KSkgPSBjb2RlX3VuaXQgYXMgJGRzdF91bml0OwotKyAgICAgICAgICAgICAg ICAgICAgICAgIC8vIFNhZmV0eTogb2Zmc2V0IGlzIHRoZSBudW1iZXIgb2YgYnl0ZXMgY29waWVk IHNvIGZhcgotICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCArPSAxOwotICAgICAgICAg ICAgICAgICAgICAgICAgIHVudGlsX2FsaWdubWVudCAtPSAxOwotICAgICAgICAgICAgICAgICAg ICAgfQotICAgICAgICAgICAgICAgICAgICAgbGV0IGxlbl9taW51c19zdHJpZGUgPSBsZW4gLSBB TFVfU1RSSURFX1NJWkU7Ci0gICAgICAgICAgICAgICAgICAgICBsb29wIHsKLSAgICAgICAgICAg ICAgICAgICAgICAgICBpZiAhJHN0cmlkZV9mbigKLSsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgLy8gU2FmZXR5OiBUaGVzZSBhcmUga25vd24gdG8gYmUgdmFsaWQgYW5kIGFsaWduZWQgc2lu Y2Ugd2UgaGF2ZSBhdAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBsZWFzdCBBTFVf U1RSSURFX1NJWkUgZGF0YSBpbiB0aGVzZSBidWZmZXJzLCBhbmQgb2Zmc2V0IGlzIHRoZQotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBudW1iZXIgb2YgZWxlbWVudHMgY29waWVkIHNv IGZhciwgd2hpY2ggYWNjb3JkaW5nIHRvIHRoZQotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAvLyB1bnRpbF9hbGlnbm1lbnQgY2FsY3VsYXRpb24gYWJvdmUgd2lsbCBjYXVzZSBib3RoIHNy YyBhbmQgZHN0IHRvIGJlCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFsaWduZWQg dG8gdXNpemUgYWZ0ZXIgdGhpcyBhZGQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Jj LmFkZChvZmZzZXQpIGFzICpjb25zdCB1c2l6ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgZHN0LmFkZChvZmZzZXQpIGFzICptdXQgdXNpemUsCi0gICAgICAgICAgICAgICAgICAgICAg ICAgKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAg ICAgICAgICAgICAgIH0KLSsgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IG9mZnNl dCBjb250aW51ZXMgdG8gYmUgdGhlIG51bWJlciBvZiBieXRlcyBjb3BpZWQgc28gZmFyLCBhbmQK LSsgICAgICAgICAgICAgICAgICAgICAgICAvLyBtYWludGFpbnMgdXNpemUgYWxpZ25tZW50IGZv ciB0aGUgbmV4dCBsb29wIGl0ZXJhdGlvbgotICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNl dCArPSBBTFVfU1RSSURFX1NJWkU7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5 OiBUaGlzIGlzIGBvZmZzZXQgPiBsZW4gLSBzdHJpZGUuIFRoaXMgbG9vcCB3aWxsIGNvbnRpbnVl IGFzIGxvbmcgYXMKLSsgICAgICAgICAgICAgICAgICAgICAgICAvLyBgb2Zmc2V0IDw9IGxlbiAt IHN0cmlkZWAsIHdoaWNoIG1lYW5zIHRoZXJlIGFyZSBgc3RyaWRlYCBieXRlcyB0byBzdGlsbCBi ZSByZWFkLgotICAgICAgICAgICAgICAgICAgICAgICAgIGlmIG9mZnNldCA+IGxlbl9taW51c19z dHJpZGUgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAg ICAgICAgICAgICAgICB9Ci1AQCAtMjYyLDExICszMjEsMTUgQEAKLSAgICAgICAgICAgICAgICAg fQotICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICB9Ci0rICAgICAgICAgICAg Ly8gU2FmZXR5OiBUaGlzIGlzIHRoZSBuYcOvdmUgY29kZSBvbmNlIGFnYWluLCBmb3IgbGVmdG92 ZXIgYnl0ZXMKLSAgICAgICAgICAgICB3aGlsZSBvZmZzZXQgPCBsZW4gewotKyAgICAgICAgICAg ICAgICAvLyBTYWZldHk6IGxlbiBpbnZhcmlhbnQgdXNlZCBoZXJlCi0gICAgICAgICAgICAgICAg IGxldCBjb2RlX3VuaXQgPSAqKHNyYy5hZGQob2Zmc2V0KSk7Ci0gICAgICAgICAgICAgICAgIGlm IGNvZGVfdW5pdCA+IDEyNyB7Ci0rICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IFVwaG9s ZHMgc2FmZXR5LXVzYWJsZSBpbnZhcmlhbnQgaGVyZQotICAgICAgICAgICAgICAgICAgICAgcmV0 dXJuIFNvbWUoKGNvZGVfdW5pdCwgb2Zmc2V0KSk7Ci0gICAgICAgICAgICAgICAgIH0KLSsgICAg ICAgICAgICAgICAgLy8gU2FmZXR5OiBsZW4gaW52YXJpYW50IHVzZWQgaGVyZQotICAgICAgICAg ICAgICAgICAqKGRzdC5hZGQob2Zmc2V0KSkgPSBjb2RlX3VuaXQgYXMgJGRzdF91bml0OwotICAg ICAgICAgICAgICAgICBvZmZzZXQgKz0gMTsKLSAgICAgICAgICAgICB9Ci1AQCAtMjc3LDcgKzM0 MCwxMSBAQAotIAotICNbYWxsb3codW51c2VkX21hY3JvcyldCi0gbWFjcm9fcnVsZXMhIGxhdGlu MV9hbHUgewotKyAgICAvLyBzYWZldHkgaW52YXJpYW50OiBzdHJpZGUgZnVuY3Rpb24gbXVzdCBt dW5jaCBBTFVfU1RSSURFX1NJWkUqc2l6ZShzcmNfdW5pdCkgYnl0ZXMgb2ZmIG9mIHNyYyBhbmQK LSsgICAgLy8gd3JpdGUgQUxVX1NUUklERV9TSVpFKnNpemUoZHN0X3VuaXQpIGJ5dGVzIHRvIGRz dAotICAgICAoJG5hbWU6aWRlbnQsICRzcmNfdW5pdDp0eSwgJGRzdF91bml0OnR5LCAkc3RyaWRl X2ZuOmlkZW50KSA9PiB7Ci0rICAgICAgICAvLy8gU2FmZXR5OiBzcmMgYW5kIGRzdCBtdXN0IGhh dmUgbGVuIGVsZW1lbnRzLCBzcmMgaXMgdmFsaWQgZm9yIHJlYWQsIGRzdCBpcyB2YWxpZCBmb3IK LSsgICAgICAgIC8vLyB3cml0ZQotICAgICAgICAgI1tjZmdfYXR0cigKLSAgICAgICAgICAgICBm ZWF0dXJlID0gImNhcmdvLWNsaXBweSIsCi0gICAgICAgICAgICAgYWxsb3cobmV2ZXJfbG9vcCwg Y2FzdF9wdHJfYWxpZ25tZW50LCBjYXN0X2xvc3NsZXNzKQotQEAgLTI4Nyw2ICszNTQsOCBAQAot ICAgICAgICAgICAgIGxldCBtdXQgb2Zmc2V0ID0gMHVzaXplOwotICAgICAgICAgICAgIC8vIFRo aXMgbG9vcCBpcyBvbmx5IGJyb2tlbiBvdXQgb2YgYXMgYSBgZ290b2AgZm9yd2FyZAotICAgICAg ICAgICAgIGxvb3AgewotKyAgICAgICAgICAgICAgICAvLyBTYWZldHk6IHVudGlsX2FsaWdubWVu dCBiZWNvbWVzIHRoZSBudW1iZXIgb2YgYnl0ZXMgd2UgbmVlZCB0byBtdW5jaCBmcm9tIHNyYy9k ZXN0IHVudGlsIHdlIGFyZSBhbGlnbmVkIHRvIHVzaXplCi0rICAgICAgICAgICAgICAgIC8vIFdl IGVuc3VyZSB0aGUgVVRGLTE2IHNpZGUgaGFzIHRoZSBzYW1lIGFsaWdubWVudCBhcyB0aGUgTGF0 aW4tMSBzaWRlLCBzdGFydGluZyB3aXRoIExhdGluLTEgc2luY2UgaXQgaXMgc21hbGxlci4KLSAg ICAgICAgICAgICAgICAgbGV0IG11dCB1bnRpbF9hbGlnbm1lbnQgPSB7Ci0gICAgICAgICAgICAg ICAgICAgICBpZiA6OmNvcmU6Om1lbTo6c2l6ZV9vZjo6PCRzcmNfdW5pdD4oKSA8IDo6Y29yZTo6 bWVtOjpzaXplX29mOjo8JGRzdF91bml0PigpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAv LyB1bnBhY2sKLUBAIC0zMTMsMTkgKzM4MiwzMCBAQAotICAgICAgICAgICAgICAgICAgICAgfQot ICAgICAgICAgICAgICAgICB9OwotICAgICAgICAgICAgICAgICBpZiB1bnRpbF9hbGlnbm1lbnQg KyBBTFVfU1RSSURFX1NJWkUgPD0gbGVuIHsKLSsgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0 eTogVGhpcyBpcyB0aGUgbmHDr3ZlIGNvZGUgb25jZSBhZ2FpbiwgZm9yIGB1bnRpbF9hbGlnbm1l bnRgIGJ5dGVzCi0gICAgICAgICAgICAgICAgICAgICB3aGlsZSB1bnRpbF9hbGlnbm1lbnQgIT0g MCB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGNvZGVfdW5pdCA9ICooc3JjLmFkZChv ZmZzZXQpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAqKGRzdC5hZGQob2Zmc2V0KSkgPSBj b2RlX3VuaXQgYXMgJGRzdF91bml0OwotKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0 eTogb2Zmc2V0IGlzIHRoZSBudW1iZXIgb2YgYnl0ZXMgY29waWVkIHNvIGZhcgotICAgICAgICAg ICAgICAgICAgICAgICAgIG9mZnNldCArPSAxOwotICAgICAgICAgICAgICAgICAgICAgICAgIHVu dGlsX2FsaWdubWVudCAtPSAxOwotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg ICAgICAgICAgbGV0IGxlbl9taW51c19zdHJpZGUgPSBsZW4gLSBBTFVfU1RSSURFX1NJWkU7Ci0g ICAgICAgICAgICAgICAgICAgICBsb29wIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAkc3Ry aWRlX2ZuKAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IFRoZXNlIGFy ZSBrbm93biB0byBiZSB2YWxpZCBhbmQgYWxpZ25lZCBzaW5jZSB3ZSBoYXZlIGF0Ci0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgIC8vIGxlYXN0IEFMVV9TVFJJREVfU0laRSBkYXRhIGluIHRo ZXNlIGJ1ZmZlcnMsIGFuZCBvZmZzZXQgaXMgdGhlCi0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgIC8vIG51bWJlciBvZiBlbGVtZW50cyBjb3BpZWQgc28gZmFyLCB3aGljaCBhY2NvcmRpbmcg dG8gdGhlCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHVudGlsX2FsaWdubWVudCBj YWxjdWxhdGlvbiBhYm92ZSB3aWxsIGNhdXNlIGJvdGggc3JjIGFuZCBkc3QgdG8gYmUKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgLy8gYWxpZ25lZCB0byB1c2l6ZSBhZnRlciB0aGlzIGFk ZAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmMuYWRkKG9mZnNldCkgYXMgKmNvbnN0 IHVzaXplLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkc3QuYWRkKG9mZnNldCkgYXMg Km11dCB1c2l6ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICApOwotKyAgICAgICAgICAgICAg ICAgICAgICAgIC8vIFNhZmV0eTogb2Zmc2V0IGNvbnRpbnVlcyB0byBiZSB0aGUgbnVtYmVyIG9m IGJ5dGVzIGNvcGllZCBzbyBmYXIsIGFuZAotKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIG1h aW50YWlucyB1c2l6ZSBhbGlnbm1lbnQgZm9yIHRoZSBuZXh0IGxvb3AgaXRlcmF0aW9uCi0gICAg ICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IEFMVV9TVFJJREVfU0laRTsKLSsgICAgICAg ICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IFRoaXMgaXMgYG9mZnNldCA+IGxlbiAtIHN0cmlk ZS4gVGhpcyBsb29wIHdpbGwgY29udGludWUgYXMgbG9uZyBhcwotKyAgICAgICAgICAgICAgICAg ICAgICAgIC8vIGBvZmZzZXQgPD0gbGVuIC0gc3RyaWRlYCwgd2hpY2ggbWVhbnMgdGhlcmUgYXJl IGBzdHJpZGVgIGJ5dGVzIHRvIHN0aWxsIGJlIHJlYWQuCi0gICAgICAgICAgICAgICAgICAgICAg ICAgaWYgb2Zmc2V0ID4gbGVuX21pbnVzX3N0cmlkZSB7Ci0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAgICAgICAgIH0KLUBAIC0zMzMsNyArNDEz LDkgQEAKLSAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAg ICAgICAgICB9Ci0rICAgICAgICAgICAgLy8gU2FmZXR5OiBUaGlzIGlzIHRoZSBuYcOvdmUgY29k ZSBvbmNlIGFnYWluLCBmb3IgbGVmdG92ZXIgYnl0ZXMKLSAgICAgICAgICAgICB3aGlsZSBvZmZz ZXQgPCBsZW4gewotKyAgICAgICAgICAgICAgICAvLyBTYWZldHk6IGxlbiBpbnZhcmlhbnQgdXNl ZCBoZXJlCi0gICAgICAgICAgICAgICAgIGxldCBjb2RlX3VuaXQgPSAqKHNyYy5hZGQob2Zmc2V0 KSk7Ci0gICAgICAgICAgICAgICAgICooZHN0LmFkZChvZmZzZXQpKSA9IGNvZGVfdW5pdCBhcyAk ZHN0X3VuaXQ7Ci0gICAgICAgICAgICAgICAgIG9mZnNldCArPSAxOwotQEAgLTM0OCwxMSArNDMw LDE5IEBACi0gICAgICAgICAkbmFtZTppZGVudCwKLSAgICAgICAgICRzcmNfdW5pdDp0eSwKLSAg ICAgICAgICRkc3RfdW5pdDp0eSwKLSsgICAgICAgIC8vIFNhZmV0eTogVGhpcyBmdW5jdGlvbiBt dXN0IHJlcXVpcmUgYWxpZ25lZCBzcmMvZGVzdCB0aGF0IGFyZSB2YWxpZCBmb3IgcmVhZGluZy93 cml0aW5nIFNJTURfU1RSSURFX1NJWkUgc3JjX3VuaXQvZHN0X3VuaXQKLSAgICAgICAgICRzdHJp ZGVfYm90aF9hbGlnbmVkOmlkZW50LAotKyAgICAgICAgLy8gU2FmZXR5OiBUaGlzIGZ1bmN0aW9u IG11c3QgcmVxdWlyZSBhbGlnbmVkL3VuYWxpZ25lZCBzcmMvZGVzdCB0aGF0IGFyZSB2YWxpZCBm b3IgcmVhZGluZy93cml0aW5nIFNJTURfU1RSSURFX1NJWkUgc3JjX3VuaXQvZHN0X3VuaXQKLSAg ICAgICAgICRzdHJpZGVfc3JjX2FsaWduZWQ6aWRlbnQsCi0rICAgICAgICAvLyBTYWZldHk6IFRo aXMgZnVuY3Rpb24gbXVzdCByZXF1aXJlIHVuYWxpZ25lZC9hbGlnbmVkIHNyYy9kZXN0IHRoYXQg YXJlIHZhbGlkIGZvciByZWFkaW5nL3dyaXRpbmcgU0lNRF9TVFJJREVfU0laRSBzcmNfdW5pdC9k c3RfdW5pdAotICAgICAgICAgJHN0cmlkZV9kc3RfYWxpZ25lZDppZGVudCwKLSsgICAgICAgIC8v IFNhZmV0eTogVGhpcyBmdW5jdGlvbiBtdXN0IHJlcXVpcmUgdW5hbGlnbmVkIHNyYy9kZXN0IHRo YXQgYXJlIHZhbGlkIGZvciByZWFkaW5nL3dyaXRpbmcgU0lNRF9TVFJJREVfU0laRSBzcmNfdW5p dC9kc3RfdW5pdAotICAgICAgICAgJHN0cmlkZV9uZWl0aGVyX2FsaWduZWQ6aWRlbnQKLSAgICAg KSA9PiB7Ci0rICAgICAgICAvLy8gU2FmZXR5OiBzcmMvZHN0IG11c3QgYmUgdmFsaWQgZm9yIHJl YWRzL3dyaXRlcyBvZiBgbGVuYCBlbGVtZW50cyBvZiB0aGVpciB1bml0cy4KLSsgICAgICAgIC8v LwotKyAgICAgICAgLy8vIFNhZmV0eS11c2FibGUgaW52YXJpYW50OiB3aWxsIHJldHVybiBTb21l KCkgd2hlbiBpdCBlbmNvdW50ZXJzIG5vbi1BU0NJSSwgd2l0aCB0aGUgZmlyc3QgZWxlbWVudCBp biB0aGUgU29tZSBiZWluZwotKyAgICAgICAgLy8vIGd1YXJhbnRlZWQgdG8gYmUgbm9uLUFTQ0lJ ICg+IDEyNyksIGFuZCB0aGUgc2Vjb25kIGJlaW5nIHRoZSBvZmZzZXQgd2hlcmUgaXQgaXMgZm91 bmQKLSAgICAgICAgICNbaW5saW5lKGFsd2F5cyldCi0gICAgICAgICBwdWIgdW5zYWZlIGZuICRu YW1lKAotICAgICAgICAgICAgIHNyYzogKmNvbnN0ICRzcmNfdW5pdCwKLUBAIC0zNjAsNiArNDUw LDcgQEAKLSAgICAgICAgICAgICBsZW46IHVzaXplLAotICAgICAgICAgKSAtPiBPcHRpb248KCRz cmNfdW5pdCwgdXNpemUpPiB7Ci0gICAgICAgICAgICAgbGV0IG11dCBvZmZzZXQgPSAwdXNpemU7 Ci0rICAgICAgICAgICAgLy8gU2FmZXR5OiBpZiB0aGlzIGNoZWNrIHN1Y2NlZWRzIHdlJ3JlIHZh bGlkIGZvciByZWFkaW5nL3dyaXRpbmcgYXQgbGVhc3QgYFNJTURfU1RSSURFX1NJWkVgIGVsZW1l bnRzLgotICAgICAgICAgICAgIGlmIFNJTURfU1RSSURFX1NJWkUgPD0gbGVuIHsKLSAgICAgICAg ICAgICAgICAgbGV0IGxlbl9taW51c19zdHJpZGUgPSBsZW4gLSBTSU1EX1NUUklERV9TSVpFOwot ICAgICAgICAgICAgICAgICAvLyBYWFggU2hvdWxkIHdlIGZpcnN0IHByb2Nlc3Mgb25lIHN0cmlk ZSB1bmNvbmRpdGlvbmFsbHkgYXMgdW5hbGlnbmVkIHRvCi1AQCAtMzY4LDIzICs0NTksMjkgQEAK LSAgICAgICAgICAgICAgICAgLy8gb24gSGFzd2VsbCwgaXQgd291bGQgbWFrZSBzZW5zZSB0byBq dXN0IHVzZSB1bmFsaWduZWQgYW5kIG5vdCBib3RoZXIKLSAgICAgICAgICAgICAgICAgLy8gY2hl Y2tpbmcuIE5lZWQgdG8gYmVuY2htYXJrIG9sZGVyIGFyY2hpdGVjdHVyZXMgYmVmb3JlIGRlY2lk aW5nLgotICAgICAgICAgICAgICAgICBsZXQgZHN0X21hc2tlZCA9IChkc3QgYXMgdXNpemUpICYg U0lNRF9BTElHTk1FTlRfTUFTSzsKLSsgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBjaGVja2lu ZyB3aGV0aGVyIHNyYyBpcyBhbGlnbmVkCi0gICAgICAgICAgICAgICAgIGlmICgoc3JjIGFzIHVz aXplKSAmIFNJTURfQUxJR05NRU5UX01BU0spID09IDAgewotKyAgICAgICAgICAgICAgICAgICAg Ly8gU2FmZXR5OiBDaGVja2luZyB3aGV0aGVyIGRzdCBpcyBhbGlnbmVkCi0gICAgICAgICAgICAg ICAgICAgICBpZiBkc3RfbWFza2VkID09IDAgewotICAgICAgICAgICAgICAgICAgICAgICAgIGxv b3AgewotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IFdlJ3JlIHZhbGlk IHRvIHJlYWQvd3JpdGUgU0lNRF9TVFJJREVfU0laRSBlbGVtZW50cyBhbmQgaGF2ZSB0aGUgYXBw cm9wcmlhdGUgYWxpZ25tZW50cwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAhJHN0 cmlkZV9ib3RoX2FsaWduZWQoc3JjLmFkZChvZmZzZXQpLCBkc3QuYWRkKG9mZnNldCkpIHsKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCArPSBTSU1E X1NUUklERV9TSVpFOwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IFRo aXMgaXMgYG9mZnNldCA+IGxlbiAtIFNJTURfU1RSSURFX1NJWkVgIHdoaWNoIG1lYW5zIHdlIGFs d2F5cyBoYXZlIGF0IGxlYXN0IGBTSU1EX1NUUklERV9TSVpFYCBlbGVtZW50cyB0byBtdW5jaCBu ZXh0IHRpbWUuCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIG9mZnNldCA+IGxlbl9t aW51c19zdHJpZGUgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgICB9 Ci0gICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAg IGxvb3AgewotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IFdlJ3JlIHZh bGlkIHRvIHJlYWQvd3JpdGUgU0lNRF9TVFJJREVfU0laRSBlbGVtZW50cyBhbmQgaGF2ZSB0aGUg YXBwcm9wcmlhdGUgYWxpZ25tZW50cwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAh JHN0cmlkZV9zcmNfYWxpZ25lZChzcmMuYWRkKG9mZnNldCksIGRzdC5hZGQob2Zmc2V0KSkgewot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IFNJ TURfU1RSSURFX1NJWkU7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTog VGhpcyBpcyBgb2Zmc2V0ID4gbGVuIC0gU0lNRF9TVFJJREVfU0laRWAgd2hpY2ggbWVhbnMgd2Ug YWx3YXlzIGhhdmUgYXQgbGVhc3QgYFNJTURfU1RSSURFX1NJWkVgIGVsZW1lbnRzIHRvIG11bmNo IG5leHQgdGltZS4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgb2Zmc2V0ID4gbGVu X21pbnVzX3N0cmlkZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotQEAgLTM5MywyMCArNDkwLDI0IEBACi0g ICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICBpZiBkc3RfbWFz a2VkID09IDAgewotICAgICAgICAgICAgICAgICAgICAgICAgIGxvb3AgewotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IFdlJ3JlIHZhbGlkIHRvIHJlYWQvd3JpdGUgU0lN RF9TVFJJREVfU0laRSBlbGVtZW50cyBhbmQgaGF2ZSB0aGUgYXBwcm9wcmlhdGUgYWxpZ25tZW50 cwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAhJHN0cmlkZV9kc3RfYWxpZ25lZChz cmMuYWRkKG9mZnNldCksIGRzdC5hZGQob2Zmc2V0KSkgewotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IFNJTURfU1RSSURFX1NJWkU7Ci0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogVGhpcyBpcyBgb2Zmc2V0ID4gbGVu IC0gU0lNRF9TVFJJREVfU0laRWAgd2hpY2ggbWVhbnMgd2UgYWx3YXlzIGhhdmUgYXQgbGVhc3Qg YFNJTURfU1RSSURFX1NJWkVgIGVsZW1lbnRzIHRvIG11bmNoIG5leHQgdGltZS4KLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgaWYgb2Zmc2V0ID4gbGVuX21pbnVzX3N0cmlkZSB7Ci0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAg ICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgbG9vcCB7Ci0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogV2UncmUgdmFsaWQgdG8gcmVhZC93cml0ZSBT SU1EX1NUUklERV9TSVpFIGVsZW1lbnRzIGFuZCBoYXZlIHRoZSBhcHByb3ByaWF0ZSBhbGlnbm1l bnRzCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICEkc3RyaWRlX25laXRoZXJfYWxp Z25lZChzcmMuYWRkKG9mZnNldCksIGRzdC5hZGQob2Zmc2V0KSkgewotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IFNJTURfU1RSSURFX1NJWkU7 Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogVGhpcyBpcyBgb2Zmc2V0 ID4gbGVuIC0gU0lNRF9TVFJJREVfU0laRWAgd2hpY2ggbWVhbnMgd2UgYWx3YXlzIGhhdmUgYXQg bGVhc3QgYFNJTURfU1RSSURFX1NJWkVgIGVsZW1lbnRzIHRvIG11bmNoIG5leHQgdGltZS4KLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgb2Zmc2V0ID4gbGVuX21pbnVzX3N0cmlkZSB7 Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfQotQEAgLTQxNSw4ICs1MTYsMTAgQEAKLSAgICAgICAgICAgICAgICAg fQotICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICB3aGlsZSBvZmZzZXQgPCBsZW4gewotKyAg ICAgICAgICAgICAgICAvLyBTYWZldHk6IHVzZXMgbGVuIGludmFyaWFudCBoZXJlIGFuZCBiZWxv dwotICAgICAgICAgICAgICAgICBsZXQgY29kZV91bml0ID0gKihzcmMuYWRkKG9mZnNldCkpOwot ICAgICAgICAgICAgICAgICBpZiBjb2RlX3VuaXQgPiAxMjcgewotKyAgICAgICAgICAgICAgICAg ICAgLy8gU2FmZXR5OiB1cGhvbGRzIHNhZmV0eS11c2FibGUgaW52YXJpYW50Ci0gICAgICAgICAg ICAgICAgICAgICByZXR1cm4gU29tZSgoY29kZV91bml0LCBvZmZzZXQpKTsKLSAgICAgICAgICAg ICAgICAgfQotICAgICAgICAgICAgICAgICAqKGRzdC5hZGQob2Zmc2V0KSkgPSBjb2RlX3VuaXQg YXMgJGRzdF91bml0OwotQEAgLTQzMywxMyArNTM2LDIxIEBACi0gICAgICAgICAkbmFtZTppZGVu dCwKLSAgICAgICAgICRzcmNfdW5pdDp0eSwKLSAgICAgICAgICRkc3RfdW5pdDp0eSwKLSsgICAg ICAgIC8vIFNhZmV0eTogVGhpcyBmdW5jdGlvbiBtdXN0IHJlcXVpcmUgYWxpZ25lZCBzcmMvZGVz dCB0aGF0IGFyZSB2YWxpZCBmb3IgcmVhZGluZy93cml0aW5nIFNJTURfU1RSSURFX1NJWkUgc3Jj X3VuaXQvZHN0X3VuaXQKLSAgICAgICAgICRzdHJpZGVfYm90aF9hbGlnbmVkOmlkZW50LAotKyAg ICAgICAgLy8gU2FmZXR5OiBUaGlzIGZ1bmN0aW9uIG11c3QgcmVxdWlyZSBhbGlnbmVkL3VuYWxp Z25lZCBzcmMvZGVzdCB0aGF0IGFyZSB2YWxpZCBmb3IgcmVhZGluZy93cml0aW5nIFNJTURfU1RS SURFX1NJWkUgc3JjX3VuaXQvZHN0X3VuaXQKLSAgICAgICAgICRzdHJpZGVfc3JjX2FsaWduZWQ6 aWRlbnQsCi0rICAgICAgICAvLyBTYWZldHk6IFRoaXMgZnVuY3Rpb24gbXVzdCByZXF1aXJlIHVu YWxpZ25lZCBzcmMvZGVzdCB0aGF0IGFyZSB2YWxpZCBmb3IgcmVhZGluZy93cml0aW5nIFNJTURf U1RSSURFX1NJWkUgc3JjX3VuaXQvZHN0X3VuaXQKLSAgICAgICAgICRzdHJpZGVfbmVpdGhlcl9h bGlnbmVkOmlkZW50LAotKyAgICAgICAgLy8gU2FmZXR5OiBUaGlzIGZ1bmN0aW9uIG11c3QgcmVx dWlyZSBhbGlnbmVkIHNyYy9kZXN0IHRoYXQgYXJlIHZhbGlkIGZvciByZWFkaW5nL3dyaXRpbmcg MipTSU1EX1NUUklERV9TSVpFIHNyY191bml0L2RzdF91bml0Ci0gICAgICAgICAkZG91YmxlX3N0 cmlkZV9ib3RoX2FsaWduZWQ6aWRlbnQsCi0rICAgICAgICAvLyBTYWZldHk6IFRoaXMgZnVuY3Rp b24gbXVzdCByZXF1aXJlIGFsaWduZWQvdW5hbGlnbmVkIHNyYy9kZXN0IHRoYXQgYXJlIHZhbGlk IGZvciByZWFkaW5nL3dyaXRpbmcgMipTSU1EX1NUUklERV9TSVpFIHNyY191bml0L2RzdF91bml0 Ci0gICAgICAgICAkZG91YmxlX3N0cmlkZV9zcmNfYWxpZ25lZDppZGVudAotICAgICApID0+IHsK LS0gICAgICAgICNbaW5saW5lKGFsd2F5cyldCi0rICAgICAgICAvLy8gU2FmZXR5OiBzcmMvZHN0 IG11c3QgYmUgdmFsaWQgZm9yIHJlYWRzL3dyaXRlcyBvZiBgbGVuYCBlbGVtZW50cyBvZiB0aGVp ciB1bml0cy4KLSsgICAgICAgIC8vLwotKyAgICAgICAgLy8vIFNhZmV0eS11c2FibGUgaW52YXJp YW50OiB3aWxsIHJldHVybiBTb21lKCkgd2hlbiBpdCBlbmNvdW50ZXJzIG5vbi1BU0NJSSwgd2l0 aCB0aGUgZmlyc3QgZWxlbWVudCBpbiB0aGUgU29tZSBiZWluZwotKyAgICAgICAgLy8vIGd1YXJh bnRlZWQgdG8gYmUgbm9uLUFTQ0lJICg+IDEyNyksIGFuZCB0aGUgc2Vjb25kIGJlaW5nIHRoZSBv ZmZzZXQgd2hlcmUgaXQgaXMgZm91bmQgICAgICAgICNbaW5saW5lKGFsd2F5cyldCi0gICAgICAg ICBwdWIgdW5zYWZlIGZuICRuYW1lKAotICAgICAgICAgICAgIHNyYzogKmNvbnN0ICRzcmNfdW5p dCwKLSAgICAgICAgICAgICBkc3Q6ICptdXQgJGRzdF91bml0LAotQEAgLTQ1MCw4ICs1NjEsMTAg QEAKLSAgICAgICAgICAgICAvLyBUaGlzIGxvb3AgaXMgb25seSBicm9rZW4gb3V0IG9mIGFzIGEg Z290byBmb3J3YXJkIHdpdGhvdXQKLSAgICAgICAgICAgICAvLyBhY3R1YWxseSBsb29waW5nCi0g ICAgICAgICAgICAgJ291dGVyOiBsb29wIHsKLSsgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBp ZiB0aGlzIGNoZWNrIHN1Y2NlZWRzIHdlJ3JlIHZhbGlkIGZvciByZWFkaW5nL3dyaXRpbmcgYXQg bGVhc3QgYFNJTURfU1RSSURFX1NJWkVgIGVsZW1lbnRzLgotICAgICAgICAgICAgICAgICBpZiBT SU1EX1NUUklERV9TSVpFIDw9IGxlbiB7Ci0gICAgICAgICAgICAgICAgICAgICAvLyBGaXJzdCwg cHJvY2VzcyBvbmUgdW5hbGlnbmVkCi0rICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IHRo aXMgaXMgc2FmZSB0byBjYWxsIHNpbmNlIHdlJ3JlIHZhbGlkIGZvciB0aGlzIHJlYWQvd3JpdGUK LSAgICAgICAgICAgICAgICAgICAgIGlmICEkc3RyaWRlX25laXRoZXJfYWxpZ25lZChzcmMsIGRz dCkgewotICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrICdvdXRlcjsKLSAgICAgICAgICAg ICAgICAgICAgIH0KLUBAIC00NjEsMzcgKzU3NCw1NCBAQAotICAgICAgICAgICAgICAgICAgICAg Ly8gdGhlcmUgd2lsbCBiZSBlbm91Z2ggbW9yZSB0byBqdXN0aWZ5IG1vcmUgZXhwZW5zZQotICAg ICAgICAgICAgICAgICAgICAgLy8gaW4gdGhlIGNhc2Ugb2Ygbm9uLUFTQ0lJLgotICAgICAgICAg ICAgICAgICAgICAgLy8gVXNlIGFsaWduZWQgcmVhZHMgZm9yIHRoZSBzYWtlIG9mIG9sZCBtaWNy b2FjaGl0ZWN0dXJlcy4KLSsgICAgICAgICAgICAgICAgICAgIC8vCi0rICAgICAgICAgICAgICAg ICAgICAvLyBTYWZldHk6IHRoaXMgY29ycmVjdGx5IGNhbGN1bGF0ZXMgdGhlIG51bWJlciBvZiBz cmNfdW5pdHMgdGhhdCBuZWVkIHRvIGJlIHJlYWQgYmVmb3JlIHRoZSByZW1haW5pbmcgbGlzdCBp cyBhbGlnbmVkLgotKyAgICAgICAgICAgICAgICAgICAgLy8gVGhpcyBpcyBsZXNzIHRoYXQgU0lN RF9BTElHTk1FTlQsIHdoaWNoIGlzIGFsc28gU0lNRF9TVFJJREVfU0laRSAoYXMgZG9jdW1lbnRl ZCkKLSAgICAgICAgICAgICAgICAgICAgIGxldCB1bnRpbF9hbGlnbm1lbnQgPSAoKFNJTURfQUxJ R05NRU5UCi0gICAgICAgICAgICAgICAgICAgICAgICAgLSAoKHNyYy5hZGQob2Zmc2V0KSBhcyB1 c2l6ZSkgJiBTSU1EX0FMSUdOTUVOVF9NQVNLKSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAm IFNJTURfQUxJR05NRU5UX01BU0spCi0gICAgICAgICAgICAgICAgICAgICAgICAgLyB1bml0X3Np emU7Ci0tICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIGFkZGl0aW9uIHdvbid0IG92ZXJmbG93 LCBiZWNhdXNlIGV2ZW4gaW4gdGhlIDMyLWJpdCBQQUUgY2FzZSB0aGUKLSsgICAgICAgICAgICAg ICAgICAgIC8vIFNhZmV0eTogVGhpcyBhZGRpdGlvbiB3b24ndCBvdmVyZmxvdywgYmVjYXVzZSBl dmVuIGluIHRoZSAzMi1iaXQgUEFFIGNhc2UgdGhlCi0gICAgICAgICAgICAgICAgICAgICAvLyBh ZGRyZXNzIHNwYWNlIGhvbGRzIGVub3VnaCBjb2RlIHRoYXQgdGhlIHNsaWNlIGxlbmd0aCBjYW4n dCBiZSB0aGF0Ci0gICAgICAgICAgICAgICAgICAgICAvLyBjbG9zZSB0byBhZGRyZXNzIHNwYWNl IHNpemUuCi0gICAgICAgICAgICAgICAgICAgICAvLyBvZmZzZXQgbm93IGVxdWFscyBTSU1EX1NU UklERV9TSVpFLCBoZW5jZSB0aW1lcyAzIGJlbG93LgotKyAgICAgICAgICAgICAgICAgICAgLy8K LSsgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogaWYgdGhpcyBjaGVjayBzdWNjZWVkcyB3 ZSdyZSB2YWxpZCBmb3IgcmVhZGluZy93cml0aW5nIGF0IGxlYXN0IGAyICogU0lNRF9TVFJJREVf U0laRWAgZWxlbWVudHMgcGx1cyBgdW50aWxfYWxpZ25tZW50YC4KLSsgICAgICAgICAgICAgICAg ICAgIC8vIFRoZSBleHRyYSBTSU1EX1NUUklERV9TSVpFIGluIHRoZSBjb25kaXRpb24gaXMgYmVj YXVzZSBgb2Zmc2V0YCBpcyBhbHJlYWR5IGBTSU1EX1NUUklERV9TSVpFYC4KLSAgICAgICAgICAg ICAgICAgICAgIGlmIHVudGlsX2FsaWdubWVudCArIChTSU1EX1NUUklERV9TSVpFICogMykgPD0g bGVuIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICBpZiB1bnRpbF9hbGlnbm1lbnQgIT0gMCB7 Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogdGhpcyBpcyBzYWZlIHRv IGNhbGwgc2luY2Ugd2UncmUgdmFsaWQgZm9yIHRoaXMgcmVhZC93cml0ZSAoYW5kIG1vcmUpLCBh bmQgZG9uJ3QgY2FyZSBhYm91dCBhbGlnbm1lbnQKLSsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgLy8gVGhpcyB3aWxsIGNvcHkgb3ZlciBieXRlcyB0aGF0IGdldCBkZWNvZGVkIHR3aWNlIHNp bmNlIGl0J3Mgbm90IGluY3JlbWVudGluZyBgb2Zmc2V0YCBieSBTSU1EX1NUUklERV9TSVpFLiBU aGlzIGlzIGZpbmUuCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICEkc3RyaWRlX25l aXRoZXJfYWxpZ25lZChzcmMuYWRkKG9mZnNldCksIGRzdC5hZGQob2Zmc2V0KSkgewotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IHVudGlsX2Fs aWdubWVudDsKLSAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0rICAgICAgICAgICAgICAgICAg ICAgICAgLy8gU2FmZXR5OiBBdCB0aGlzIHBvaW50IHdlJ3JlIHZhbGlkIGZvciByZWFkaW5nL3dy aXRpbmcgMipTSU1EX1NUUklERV9TSVpFIGVsZW1lbnRzCi0rICAgICAgICAgICAgICAgICAgICAg ICAgLy8gU2FmZXR5OiBOb3cgYG9mZnNldGAgaXMgYWxpZ25lZCBmb3IgYHNyY2AKLSAgICAgICAg ICAgICAgICAgICAgICAgICBsZXQgbGVuX21pbnVzX3N0cmlkZV90aW1lc190d28gPSBsZW4gLSAo U0lNRF9TVFJJREVfU0laRSAqIDIpOwotKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0 eTogVGhpcyBpcyB3aGV0aGVyIGRzdCBpcyBhbGlnbmVkCi0gICAgICAgICAgICAgICAgICAgICAg ICAgbGV0IGRzdF9tYXNrZWQgPSAoZHN0LmFkZChvZmZzZXQpIGFzIHVzaXplKSAmIFNJTURfQUxJ R05NRU5UX01BU0s7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgaWYgZHN0X21hc2tlZCA9PSAw IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9vcCB7Ci0rICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IGJvdGggYXJlIGFsaWduZWQsIHdlIGNhbiBjYWxs IHRoZSBhbGlnbmVkIGZ1bmN0aW9uLiBXZSdyZSB2YWxpZCBmb3IgcmVhZGluZy93cml0aW5nIGRv dWJsZSBzdHJpZGUgZnJvbSB0aGUgaW5pdGlhbCBjb25kaXRpb24KLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIC8vIGFuZCB0aGUgbG9vcCBicmVhayBjb25kaXRpb24gYmVsb3cKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGxldCBTb21lKGFkdmFuY2UpID0KLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZG91YmxlX3N0cmlkZV9ib3RoX2Fs aWduZWQoc3JjLmFkZChvZmZzZXQpLCBkc3QuYWRkKG9mZnNldCkpCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg b2Zmc2V0ICs9IGFkdmFuY2U7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg bGV0IGNvZGVfdW5pdCA9ICooc3JjLmFkZChvZmZzZXQpKTsKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IHVzZXMgc2FmZXR5LXVzYWJsZSBpbnZhcmlhbnQg b24gYXNjaWlfdG9fYXNjaWlfc2ltZF9kb3VibGVfc3RyaWRlIHRvIHJldHVybgotKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGd1YXJhbnRlZWQgbm9uLWFzY2lpCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFNvbWUoKGNvZGVfdW5pdCwg b2Zmc2V0KSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQgKz0gU0lNRF9TVFJJREVfU0laRSAqIDI7Ci0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IFRoaXMgaXMgYG9mZnNl dCA+IGxlbiAtIDIgKiBTSU1EX1NUUklERV9TSVpFYCB3aGljaCBtZWFucyB3ZSBhbHdheXMgaGF2 ZSBhdCBsZWFzdCBgMiAqIFNJTURfU1RSSURFX1NJWkVgIGVsZW1lbnRzIHRvIG11bmNoIG5leHQg dGltZS4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIG9mZnNldCA+IGxlbl9t aW51c19zdHJpZGVfdGltZXNfdHdvIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBT YWZldHk6IFdlJ3JlIHZhbGlkIGZvciByZWFkaW5nL3dyaXRpbmcgb25lIG1vcmUsIGFuZCBjYW4g c3RpbGwgYXNzdW1lIGFsaWdubWVudAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBv ZmZzZXQgKyBTSU1EX1NUUklERV9TSVpFIDw9IGxlbiB7Ci0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBpZiAhJHN0cmlkZV9ib3RoX2FsaWduZWQoc3JjLmFkZChvZmZzZXQpLCBkc3Qu YWRkKG9mZnNldCkpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVh ayAnb3V0ZXI7Ci1AQCAtNTAwLDE4ICs2MzAsMjUgQEAKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGxvb3AgewotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Ly8gU2FmZXR5OiBvbmx5IHNyYyBpcyBhbGlnbmVkIGhlcmUuIFdlJ3JlIHZhbGlkIGZvciByZWFk aW5nL3dyaXRpbmcgZG91YmxlIHN0cmlkZSBmcm9tIHRoZSBpbml0aWFsIGNvbmRpdGlvbgotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYW5kIHRoZSBsb29wIGJyZWFrIGNvbmRp dGlvbiBiZWxvdwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgbGV0IFNvbWUo YWR2YW5jZSkgPQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRkb3VibGVf c3RyaWRlX3NyY19hbGlnbmVkKHNyYy5hZGQob2Zmc2V0KSwgZHN0LmFkZChvZmZzZXQpKQotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIG9mZnNldCArPSBhZHZhbmNlOwotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGxldCBjb2RlX3VuaXQgPSAqKHNyYy5hZGQob2Zmc2V0KSk7Ci0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiB1c2VzIHNhZmV0eS11c2Fi bGUgaW52YXJpYW50IG9uIGFzY2lpX3RvX2FzY2lpX3NpbWRfZG91YmxlX3N0cmlkZSB0byByZXR1 cm4KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBndWFyYW50ZWVkIG5v bi1hc2NpaQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBTb21l KChjb2RlX3VuaXQsIG9mZnNldCkpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IFNJTURfU1RSSURF X1NJWkUgKiAyOwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBU aGlzIGlzIGBvZmZzZXQgPiBsZW4gLSAyICogU0lNRF9TVFJJREVfU0laRWAgd2hpY2ggbWVhbnMg d2UgYWx3YXlzIGhhdmUgYXQgbGVhc3QgYDIgKiBTSU1EX1NUUklERV9TSVpFYCBlbGVtZW50cyB0 byBtdW5jaCBuZXh0IHRpbWUuCi0rCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp ZiBvZmZzZXQgPiBsZW5fbWludXNfc3RyaWRlX3RpbWVzX3R3byB7Ci0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgLy8gU2FmZXR5OiBXZSdyZSB2YWxpZCBmb3IgcmVhZGluZy93cml0aW5nIG9u ZSBtb3JlLCBhbmQgY2FuIHN0aWxsIGFzc3VtZSBhbGlnbm1lbnQKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgaWYgb2Zmc2V0ICsgU0lNRF9TVFJJREVfU0laRSA8PSBsZW4gewotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgISRzdHJpZGVfc3JjX2FsaWduZWQoc3JjLmFk ZChvZmZzZXQpLCBkc3QuYWRkKG9mZnNldCkpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBicmVhayAnb3V0ZXI7Ci1AQCAtNTIyLDExICs2NTksMTMgQEAKLSAgICAgICAg ICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgLy8gQXQgbW9z dCB0d28gaXRlcmF0aW9ucywgc28gdW5yb2xsCi0gICAgICAgICAgICAgICAgICAgICAgICAgaWYg b2Zmc2V0ICsgU0lNRF9TVFJJREVfU0laRSA8PSBsZW4gewotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAvLyBTYWZldHk6IFRoZSBjaGVjayBhYm92ZSBlbnN1cmVzIHdlJ3JlIGFsbG93ZWQg dG8gcmVhZC93cml0ZSB0aGlzLCBhbmQgd2UgZG9uJ3QgdXNlIGFsaWdubWVudAotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBpZiAhJHN0cmlkZV9uZWl0aGVyX2FsaWduZWQoc3JjLmFkZChv ZmZzZXQpLCBkc3QuYWRkKG9mZnNldCkpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgIG9mZnNldCArPSBTSU1EX1NUUklERV9TSVpFOwotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBpZiBvZmZzZXQgKyBTSU1EX1NUUklERV9TSVpFIDw9IGxlbiB7Ci0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IFRoZSBjaGVjayBhYm92 ZSBlbnN1cmVzIHdlJ3JlIGFsbG93ZWQgdG8gcmVhZC93cml0ZSB0aGlzLCBhbmQgd2UgZG9uJ3Qg dXNlIGFsaWdubWVudAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgISRzdHJp ZGVfbmVpdGhlcl9hbGlnbmVkKHNyYy5hZGQob2Zmc2V0KSwgZHN0LmFkZChvZmZzZXQpKSB7Ci0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9Ci1AQCAtNTM4LDggKzY3NywxMCBAQAotICAgICAgICAgICAg ICAgICBicmVhayAnb3V0ZXI7Ci0gICAgICAgICAgICAgfQotICAgICAgICAgICAgIHdoaWxlIG9m ZnNldCA8IGxlbiB7Ci0rICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogcmVsaWVzIHN0cmFpZ2h0 Zm9yd2FyZGx5IG9uIHRoZSBgbGVuYCBpbnZhcmlhbnQKLSAgICAgICAgICAgICAgICAgbGV0IGNv ZGVfdW5pdCA9ICooc3JjLmFkZChvZmZzZXQpKTsKLSAgICAgICAgICAgICAgICAgaWYgY29kZV91 bml0ID4gMTI3IHsKLSsgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eS11c2FibGUgaW52YXJp YW50IHVwaGVsZCBoZXJlCi0gICAgICAgICAgICAgICAgICAgICByZXR1cm4gU29tZSgoY29kZV91 bml0LCBvZmZzZXQpKTsKLSAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAqKGRz dC5hZGQob2Zmc2V0KSkgPSBjb2RlX3VuaXQgYXMgJGRzdF91bml0OwotQEAgLTU1NiwzMCArNjk3 LDQ1IEBACi0gICAgICAgICAkbmFtZTppZGVudCwKLSAgICAgICAgICRzcmNfdW5pdDp0eSwKLSAg ICAgICAgICRkc3RfdW5pdDp0eSwKLSsgICAgICAgIC8vIFNhZmV0eTogVGhpcyBmdW5jdGlvbiBt dXN0IHJlcXVpcmUgYWxpZ25lZCBzcmMvZGVzdCB0aGF0IGFyZSB2YWxpZCBmb3IgcmVhZGluZy93 cml0aW5nIFNJTURfU1RSSURFX1NJWkUgc3JjX3VuaXQvZHN0X3VuaXQKLSAgICAgICAgICRzdHJp ZGVfYm90aF9hbGlnbmVkOmlkZW50LAotKyAgICAgICAgLy8gU2FmZXR5OiBUaGlzIGZ1bmN0aW9u IG11c3QgcmVxdWlyZSBhbGlnbmVkL3VuYWxpZ25lZCBzcmMvZGVzdCB0aGF0IGFyZSB2YWxpZCBm b3IgcmVhZGluZy93cml0aW5nIFNJTURfU1RSSURFX1NJWkUgc3JjX3VuaXQvZHN0X3VuaXQKLSAg ICAgICAgICRzdHJpZGVfc3JjX2FsaWduZWQ6aWRlbnQsCi0rICAgICAgICAvLyBTYWZldHk6IFRo aXMgZnVuY3Rpb24gbXVzdCByZXF1aXJlIHVuYWxpZ25lZC9hbGlnbmVkIHNyYy9kZXN0IHRoYXQg YXJlIHZhbGlkIGZvciByZWFkaW5nL3dyaXRpbmcgU0lNRF9TVFJJREVfU0laRSBzcmNfdW5pdC9k c3RfdW5pdAotICAgICAgICAgJHN0cmlkZV9kc3RfYWxpZ25lZDppZGVudCwKLSsgICAgICAgIC8v IFNhZmV0eTogVGhpcyBmdW5jdGlvbiBtdXN0IHJlcXVpcmUgdW5hbGlnbmVkIHNyYy9kZXN0IHRo YXQgYXJlIHZhbGlkIGZvciByZWFkaW5nL3dyaXRpbmcgU0lNRF9TVFJJREVfU0laRSBzcmNfdW5p dC9kc3RfdW5pdAotICAgICAgICAgJHN0cmlkZV9uZWl0aGVyX2FsaWduZWQ6aWRlbnQKLSsKLSAg ICAgKSA9PiB7Ci0rICAgICAgICAvLy8gU2FmZXR5OiBzcmMvZHN0IG11c3QgYmUgdmFsaWQgZm9y IHJlYWRzL3dyaXRlcyBvZiBgbGVuYCBlbGVtZW50cyBvZiB0aGVpciB1bml0cy4KLSAgICAgICAg ICNbaW5saW5lKGFsd2F5cyldCi0gICAgICAgICBwdWIgdW5zYWZlIGZuICRuYW1lKHNyYzogKmNv bnN0ICRzcmNfdW5pdCwgZHN0OiAqbXV0ICRkc3RfdW5pdCwgbGVuOiB1c2l6ZSkgewotICAgICAg ICAgICAgIGxldCBtdXQgb2Zmc2V0ID0gMHVzaXplOwotKyAgICAgICAgICAgIC8vIFNhZmV0eTog aWYgdGhpcyBjaGVjayBzdWNjZWVkcyB3ZSdyZSB2YWxpZCBmb3IgcmVhZGluZy93cml0aW5nIGF0 IGxlYXN0IGBTSU1EX1NUUklERV9TSVpFYCBlbGVtZW50cy4KLSAgICAgICAgICAgICBpZiBTSU1E X1NUUklERV9TSVpFIDw9IGxlbiB7Ci0gICAgICAgICAgICAgICAgIGxldCBsZW5fbWludXNfc3Ry aWRlID0gbGVuIC0gU0lNRF9TVFJJREVfU0laRTsKLSsgICAgICAgICAgICAgICAgLy8gV2hldGhl ciBkc3QgaXMgYWxpZ25lZAotICAgICAgICAgICAgICAgICBsZXQgZHN0X21hc2tlZCA9IChkc3Qg YXMgdXNpemUpICYgU0lNRF9BTElHTk1FTlRfTUFTSzsKLSsgICAgICAgICAgICAgICAgLy8gV2hl dGhlciBzcmMgaXMgYWxpZ25lZAotICAgICAgICAgICAgICAgICBpZiAoKHNyYyBhcyB1c2l6ZSkg JiBTSU1EX0FMSUdOTUVOVF9NQVNLKSA9PSAwIHsKLSAgICAgICAgICAgICAgICAgICAgIGlmIGRz dF9tYXNrZWQgPT0gMCB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgbG9vcCB7Ci0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogQm90aCB3ZXJlIGFsaWduZWQsIHdlIGNh biB1c2UgdGhlIGFsaWduZWQgZnVuY3Rpb24KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg JHN0cmlkZV9ib3RoX2FsaWduZWQoc3JjLmFkZChvZmZzZXQpLCBkc3QuYWRkKG9mZnNldCkpOwot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQgKz0gU0lNRF9TVFJJREVfU0laRTsK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBUaGlzIGlzIGBvZmZzZXQg PiBsZW4gLSBTSU1EX1NUUklERV9TSVpFYCwgd2hpY2ggbWVhbnMgaW4gdGhlIG5leHQgaXRlcmF0 aW9uIHdlJ3JlIHZhbGlkIGZvcgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByZWFk aW5nL3dyaXRpbmcgYXQgbGVhc3QgU0lNRF9TVFJJREVfU0laRSBlbGVtZW50cy4KLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgaWYgb2Zmc2V0ID4gbGVuX21pbnVzX3N0cmlkZSB7Ci0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAg ICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgbG9vcCB7Ci0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogc3JjIHdhcyBhbGlnbmVkLCBkc3Qgd2FzIG5v dAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkc3RyaWRlX3NyY19hbGlnbmVkKHNyYy5h ZGQob2Zmc2V0KSwgZHN0LmFkZChvZmZzZXQpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgb2Zmc2V0ICs9IFNJTURfU1RSSURFX1NJWkU7Ci0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgIC8vIFNhZmV0eTogVGhpcyBpcyBgb2Zmc2V0ID4gbGVuIC0gU0lNRF9TVFJJREVfU0laRWAs IHdoaWNoIG1lYW5zIGluIHRoZSBuZXh0IGl0ZXJhdGlvbiB3ZSdyZSB2YWxpZCBmb3IKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmVhZGluZy93cml0aW5nIGF0IGxlYXN0IFNJTURf U1RSSURFX1NJWkUgZWxlbWVudHMuCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIG9m ZnNldCA+IGxlbl9taW51c19zdHJpZGUgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLUBAIC01ODgsMTYgKzc0 NCwyMiBAQAotICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAg aWYgZHN0X21hc2tlZCA9PSAwIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICBsb29wIHsKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBzcmMgd2FzIGFsaWduZWQsIGRz dCB3YXMgbm90Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzdHJpZGVfZHN0X2FsaWdu ZWQoc3JjLmFkZChvZmZzZXQpLCBkc3QuYWRkKG9mZnNldCkpOwotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBvZmZzZXQgKz0gU0lNRF9TVFJJREVfU0laRTsKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgLy8gU2FmZXR5OiBUaGlzIGlzIGBvZmZzZXQgPiBsZW4gLSBTSU1EX1NUUklE RV9TSVpFYCwgd2hpY2ggbWVhbnMgaW4gdGhlIG5leHQgaXRlcmF0aW9uIHdlJ3JlIHZhbGlkIGZv cgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByZWFkaW5nL3dyaXRpbmcgYXQgbGVh c3QgU0lNRF9TVFJJREVfU0laRSBlbGVtZW50cy4KLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgaWYgb2Zmc2V0ID4gbGVuX21pbnVzX3N0cmlkZSB7Ci0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAg ICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAg ICAgICAgICAgICAgICAgICAgICAgbG9vcCB7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAg IC8vIFNhZmV0eTogTmVpdGhlciB3ZXJlIGFsaWduZWQKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgJHN0cmlkZV9uZWl0aGVyX2FsaWduZWQoc3JjLmFkZChvZmZzZXQpLCBkc3QuYWRkKG9m ZnNldCkpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQgKz0gU0lNRF9TVFJJ REVfU0laRTsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBUaGlzIGlz IGBvZmZzZXQgPiBsZW4gLSBTSU1EX1NUUklERV9TSVpFYCwgd2hpY2ggbWVhbnMgaW4gdGhlIG5l eHQgaXRlcmF0aW9uIHdlJ3JlIHZhbGlkIGZvcgotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAvLyByZWFkaW5nL3dyaXRpbmcgYXQgbGVhc3QgU0lNRF9TVFJJREVfU0laRSBlbGVtZW50cy4K LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgb2Zmc2V0ID4gbGVuX21pbnVzX3N0cmlk ZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfQotQEAgLTYwNiw2ICs3NjgsNyBAQAotICAgICAgICAgICAgICAg ICB9Ci0gICAgICAgICAgICAgfQotICAgICAgICAgICAgIHdoaWxlIG9mZnNldCA8IGxlbiB7Ci0r ICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogcmVsaWVzIHN0cmFpZ2h0Zm9yd2FyZGx5IG9uIHRo ZSBgbGVuYCBpbnZhcmlhbnQKLSAgICAgICAgICAgICAgICAgbGV0IGNvZGVfdW5pdCA9ICooc3Jj LmFkZChvZmZzZXQpKTsKLSAgICAgICAgICAgICAgICAgKihkc3QuYWRkKG9mZnNldCkpID0gY29k ZV91bml0IGFzICRkc3RfdW5pdDsKLSAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IDE7Ci1AQCAt NjIwLDU2ICs3ODMsNzQgQEAKLSAgICAgICAgICRuYW1lOmlkZW50LAotICAgICAgICAgJHNyY191 bml0OnR5LAotICAgICAgICAgJGRzdF91bml0OnR5LAotKyAgICAgICAgLy8gU2FmZXR5OiBUaGlz IGZ1bmN0aW9uIG11c3QgcmVxdWlyZSBhbGlnbmVkIHNyYy9kZXN0IHRoYXQgYXJlIHZhbGlkIGZv ciByZWFkaW5nL3dyaXRpbmcgU0lNRF9TVFJJREVfU0laRSBzcmNfdW5pdC9kc3RfdW5pdAotICAg ICAgICAgJHN0cmlkZV9ib3RoX2FsaWduZWQ6aWRlbnQsCi0rICAgICAgICAvLyBTYWZldHk6IFRo aXMgZnVuY3Rpb24gbXVzdCByZXF1aXJlIGFsaWduZWQvdW5hbGlnbmVkIHNyYy9kZXN0IHRoYXQg YXJlIHZhbGlkIGZvciByZWFkaW5nL3dyaXRpbmcgU0lNRF9TVFJJREVfU0laRSBzcmNfdW5pdC9k c3RfdW5pdAotICAgICAgICAgJHN0cmlkZV9zcmNfYWxpZ25lZDppZGVudCwKLSsgICAgICAgIC8v IFNhZmV0eTogVGhpcyBmdW5jdGlvbiBtdXN0IHJlcXVpcmUgdW5hbGlnbmVkL2FsaWduZWQgc3Jj L2Rlc3QgdGhhdCBhcmUgdmFsaWQgZm9yIHJlYWRpbmcvd3JpdGluZyBTSU1EX1NUUklERV9TSVpF IHNyY191bml0L2RzdF91bml0Ci0gICAgICAgICAkc3RyaWRlX2RzdF9hbGlnbmVkOmlkZW50LAot KyAgICAgICAgLy8gU2FmZXR5OiBUaGlzIGZ1bmN0aW9uIG11c3QgcmVxdWlyZSB1bmFsaWduZWQg c3JjL2Rlc3QgdGhhdCBhcmUgdmFsaWQgZm9yIHJlYWRpbmcvd3JpdGluZyBTSU1EX1NUUklERV9T SVpFIHNyY191bml0L2RzdF91bml0Ci0gICAgICAgICAkc3RyaWRlX25laXRoZXJfYWxpZ25lZDpp ZGVudAotICAgICApID0+IHsKLSsgICAgICAgIC8vLyBTYWZldHk6IHNyYy9kc3QgbXVzdCBiZSB2 YWxpZCBmb3IgcmVhZHMvd3JpdGVzIG9mIGBsZW5gIGVsZW1lbnRzIG9mIHRoZWlyIHVuaXRzLgot ICAgICAgICAgI1tpbmxpbmUoYWx3YXlzKV0KLSAgICAgICAgIHB1YiB1bnNhZmUgZm4gJG5hbWUo c3JjOiAqY29uc3QgJHNyY191bml0LCBkc3Q6ICptdXQgJGRzdF91bml0LCBsZW46IHVzaXplKSB7 Ci0gICAgICAgICAgICAgbGV0IHVuaXRfc2l6ZSA9IDo6Y29yZTo6bWVtOjpzaXplX29mOjo8JHNy Y191bml0PigpOwotICAgICAgICAgICAgIGxldCBtdXQgb2Zmc2V0ID0gMHVzaXplOwotKyAgICAg ICAgICAgIC8vIFNhZmV0eTogaWYgdGhpcyBjaGVjayBzdWNjZWVkcyB3ZSdyZSB2YWxpZCBmb3Ig cmVhZGluZy93cml0aW5nIGF0IGxlYXN0IGBTSU1EX1NUUklERV9TSVpFYCBlbGVtZW50cy4KLSAg ICAgICAgICAgICBpZiBTSU1EX1NUUklERV9TSVpFIDw9IGxlbiB7Ci0rICAgICAgICAgICAgICAg IC8vIFNhZmV0eTogdGhpcyBjb3JyZWN0bHkgY2FsY3VsYXRlcyB0aGUgbnVtYmVyIG9mIHNyY191 bml0cyB0aGF0IG5lZWQgdG8gYmUgcmVhZCBiZWZvcmUgdGhlIHJlbWFpbmluZyBsaXN0IGlzIGFs aWduZWQuCi0rICAgICAgICAgICAgICAgIC8vIFRoaXMgaXMgYnkgZGVmaW5pdGlvbiBsZXNzIHRo YW4gU0lNRF9TVFJJREVfU0laRS4KLSAgICAgICAgICAgICAgICAgbGV0IG11dCB1bnRpbF9hbGln bm1lbnQgPSAoKFNJTURfU1RSSURFX1NJWkUKLSAgICAgICAgICAgICAgICAgICAgIC0gKChzcmMg YXMgdXNpemUpICYgU0lNRF9BTElHTk1FTlRfTUFTSykpCi0gICAgICAgICAgICAgICAgICAgICAm IFNJTURfQUxJR05NRU5UX01BU0spCi0gICAgICAgICAgICAgICAgICAgICAvIHVuaXRfc2l6ZTsK LSAgICAgICAgICAgICAgICAgd2hpbGUgdW50aWxfYWxpZ25tZW50ICE9IDAgewotKyAgICAgICAg ICAgICAgICAgICAgLy8gU2FmZXR5OiBUaGlzIGlzIGEgc3RyYWlnaHRmb3J3YXJkIGNvcHksIHNp bmNlIHVudGlsX2FsaWdubWVudCBpcyA8IFNJTURfU1RSSURFX1NJWkUgPCBsZW4sIHRoaXMgaXMg aW4tYm91bmRzCi0gICAgICAgICAgICAgICAgICAgICAqKGRzdC5hZGQob2Zmc2V0KSkgPSAqKHNy Yy5hZGQob2Zmc2V0KSkgYXMgJGRzdF91bml0OwotICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0 ICs9IDE7Ci0gICAgICAgICAgICAgICAgICAgICB1bnRpbF9hbGlnbm1lbnQgLT0gMTsKLSAgICAg ICAgICAgICAgICAgfQotKyAgICAgICAgICAgICAgICAvLyBTYWZldHk6IGhlcmUgb2Zmc2V0IHdp bGwgYmUgYHVudGlsX2FsaWdubWVudGAsIGkuZS4gZW5vdWdoIHRvIGFsaWduIGBzcmNgLgotICAg ICAgICAgICAgICAgICBsZXQgbGVuX21pbnVzX3N0cmlkZSA9IGxlbiAtIFNJTURfU1RSSURFX1NJ WkU7Ci0rICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogaWYgdGhpcyBjaGVjayBzdWNjZWVkcyB3 ZSdyZSB2YWxpZCBmb3IgcmVhZGluZy93cml0aW5nIGF0IGxlYXN0IGAyICogU0lNRF9TVFJJREVf U0laRWAgZWxlbWVudHMuCi0gICAgICAgICAgICAgICAgIGlmIG9mZnNldCArIFNJTURfU1RSSURF X1NJWkUgKiAyIDw9IGxlbiB7Ci0gICAgICAgICAgICAgICAgICAgICBsZXQgbGVuX21pbnVzX3N0 cmlkZV90aW1lc190d28gPSBsZW5fbWludXNfc3RyaWRlIC0gU0lNRF9TVFJJREVfU0laRTsKLSsg ICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogYXQgdGhpcyBwb2ludCBzcmMgaXMga25vd24g dG8gYmUgYWxpZ25lZCBhdCBvZmZzZXQsIGRzdCBpcyBub3QuCi0gICAgICAgICAgICAgICAgICAg ICBpZiAoZHN0LmFkZChvZmZzZXQpIGFzIHVzaXplKSAmIFNJTURfQUxJR05NRU5UX01BU0sgPT0g MCB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgbG9vcCB7Ci0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC8vIFNhZmV0eTogV2UgY2hlY2tlZCBhbGlnbm1lbnQgb2YgZHN0IGFib3ZlLCB3 ZSBjYW4gdXNlIHRoZSBhbGlnbm1lbnQgZnVuY3Rpb25zLiBXZSdyZSBhbGxvd2VkIHRvIHJlYWQv d3JpdGUgMipTSU1EX1NUUklERV9TSVpFIGVsZW1lbnRzLCB3aGljaCB3ZSBkby4KLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgJHN0cmlkZV9ib3RoX2FsaWduZWQoc3JjLmFkZChvZmZzZXQp LCBkc3QuYWRkKG9mZnNldCkpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQg Kz0gU0lNRF9TVFJJREVfU0laRTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHN0cmlk ZV9ib3RoX2FsaWduZWQoc3JjLmFkZChvZmZzZXQpLCBkc3QuYWRkKG9mZnNldCkpOwotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQgKz0gU0lNRF9TVFJJREVfU0laRTsKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBUaGlzIGlzIGBvZmZzZXQgPiBsZW4g LSAyICogU0lNRF9TVFJJREVfU0laRWAgd2hpY2ggbWVhbnMgd2UgYWx3YXlzIGhhdmUgYXQgbGVh c3QgYDIgKiBTSU1EX1NUUklERV9TSVpFYCBlbGVtZW50cyB0byBtdW5jaCBuZXh0IHRpbWUuCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIG9mZnNldCA+IGxlbl9taW51c19zdHJpZGVf dGltZXNfdHdvIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgfQot ICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICBs b29wIHsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiB3ZSBlbnN1cmVk IGFsaWdubWVudCBvZiBzcmMgYWxyZWFkeS4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg JHN0cmlkZV9zcmNfYWxpZ25lZChzcmMuYWRkKG9mZnNldCksIGRzdC5hZGQob2Zmc2V0KSk7Ci0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCArPSBTSU1EX1NUUklERV9TSVpFOwot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkc3RyaWRlX3NyY19hbGlnbmVkKHNyYy5hZGQo b2Zmc2V0KSwgZHN0LmFkZChvZmZzZXQpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg b2Zmc2V0ICs9IFNJTURfU1RSSURFX1NJWkU7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAg IC8vIFNhZmV0eTogVGhpcyBpcyBgb2Zmc2V0ID4gbGVuIC0gMiAqIFNJTURfU1RSSURFX1NJWkVg IHdoaWNoIG1lYW5zIHdlIGFsd2F5cyBoYXZlIGF0IGxlYXN0IGAyICogU0lNRF9TVFJJREVfU0la RWAgZWxlbWVudHMgdG8gbXVuY2ggbmV4dCB0aW1lLgotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBpZiBvZmZzZXQgPiBsZW5fbWludXNfc3RyaWRlX3RpbWVzX3R3byB7Ci0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIH0K LSAgICAgICAgICAgICAgICAgfQotKyAgICAgICAgICAgICAgICAvLyBTYWZldHk6IFRoaXMgaXMg YG9mZnNldCA+IGxlbiAtIFNJTURfU1RSSURFX1NJWkVgIHdoaWNoIG1lYW5zIHdlIGFyZSB2YWxp ZCB0byBtdW5jaCBTSU1EX1NUUklERV9TSVpFIG1vcmUgZWxlbWVudHMsIHdoaWNoIHdlIGRvCi0g ICAgICAgICAgICAgICAgIGlmIG9mZnNldCA8IGxlbl9taW51c19zdHJpZGUgewotICAgICAgICAg ICAgICAgICAgICAgJHN0cmlkZV9zcmNfYWxpZ25lZChzcmMuYWRkKG9mZnNldCksIGRzdC5hZGQo b2Zmc2V0KSk7Ci0gICAgICAgICAgICAgICAgICAgICBvZmZzZXQgKz0gU0lNRF9TVFJJREVfU0la RTsKLSAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICB3aGls ZSBvZmZzZXQgPCBsZW4gewotKyAgICAgICAgICAgICAgICAvLyBTYWZldHk6IHVzZXMgbGVuIGlu dmFyaWFudCBoZXJlIGFuZCBiZWxvdwotICAgICAgICAgICAgICAgICBsZXQgY29kZV91bml0ID0g KihzcmMuYWRkKG9mZnNldCkpOwotICAgICAgICAgICAgICAgICAvLyBPbiB4ODZfNjQsIHRoaXMg bG9vcCBhdXRvdmVjdG9yaXplcyBidXQgaW4gdGhlIHBhY2sKLSAgICAgICAgICAgICAgICAgLy8g Y2FzZSB0aGVyZSBhcmUgaW5zdHJ1Y3Rpb25zIHdob3NlIHB1cnBvc2UgaXMgdG8gbWFrZSBzdXJl Ci1AQCAtNjkzLDcgKzg3NCwxMiBAQAotIAotICNbYWxsb3codW51c2VkX21hY3JvcyldCi0gbWFj cm9fcnVsZXMhIGFzY2lpX3NpbWRfdW5hbGlnbiB7Ci0rICAgIC8vIFNhZmV0eTogc3RyaWRlX25l aXRoZXJfYWxpZ25lZCBtdXN0IGJlIGEgZnVuY3Rpb24gdGhhdCByZXF1aXJlcyBzcmMvZGVzdCBi ZSB2YWxpZCBmb3IgdW5hbGlnbmVkIHJlYWRzL3dyaXRlcyBmb3IgU0lNRF9TVFJJREVfU0laRSBl bGVtZW50cyBvZiB0eXBlIHNyY191bml0L2Rlc3RfdW5pdAotICAgICAoJG5hbWU6aWRlbnQsICRz cmNfdW5pdDp0eSwgJGRzdF91bml0OnR5LCAkc3RyaWRlX25laXRoZXJfYWxpZ25lZDppZGVudCkg PT4gewotKyAgICAgICAgLy8vIFNhZmV0eTogc3JjIGFuZCBkc3QgbXVzdCBiZSB2YWxpZCBmb3Ig cmVhZHMvd3JpdGVzIG9mIGxlbiBlbGVtZW50cyBvZiB0eXBlIHNyY191bml0L2RzdF91bml0Ci0r ICAgICAgICAvLy8KLSsgICAgICAgIC8vLyBTYWZldHktdXNhYmxlIGludmFyaWFudDogd2lsbCBy ZXR1cm4gU29tZSgpIHdoZW4gaXQgZW5jb3VudGVycyBub24tQVNDSUksIHdpdGggdGhlIGZpcnN0 IGVsZW1lbnQgaW4gdGhlIFNvbWUgYmVpbmcKLSsgICAgICAgIC8vLyBndWFyYW50ZWVkIHRvIGJl IG5vbi1BU0NJSSAoPiAxMjcpLCBhbmQgdGhlIHNlY29uZCBiZWluZyB0aGUgb2Zmc2V0IHdoZXJl IGl0IGlzIGZvdW5kCi0gICAgICAgICAjW2lubGluZShhbHdheXMpXQotICAgICAgICAgcHViIHVu c2FmZSBmbiAkbmFtZSgKLSAgICAgICAgICAgICBzcmM6ICpjb25zdCAkc3JjX3VuaXQsCi1AQCAt NzAxLDIxICs4ODcsMjYgQEAKLSAgICAgICAgICAgICBsZW46IHVzaXplLAotICAgICAgICAgKSAt PiBPcHRpb248KCRzcmNfdW5pdCwgdXNpemUpPiB7Ci0gICAgICAgICAgICAgbGV0IG11dCBvZmZz ZXQgPSAwdXNpemU7Ci0rICAgICAgICAgICAgLy8gU2FmZXR5OiBpZiB0aGlzIGNoZWNrIHN1Y2Nl ZWRzIHdlJ3JlIHZhbGlkIGZvciByZWFkaW5nL3dyaXRpbmcgYXQgbGVhc3QgYHN0cmlkZWAgZWxl bWVudHMuCi0gICAgICAgICAgICAgaWYgU0lNRF9TVFJJREVfU0laRSA8PSBsZW4gewotICAgICAg ICAgICAgICAgICBsZXQgbGVuX21pbnVzX3N0cmlkZSA9IGxlbiAtIFNJTURfU1RSSURFX1NJWkU7 Ci0gICAgICAgICAgICAgICAgIGxvb3AgewotKyAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5 OiBXZSBrbm93IHdlJ3JlIHZhbGlkIGZvciBgc3RyaWRlYCByZWFkcy93cml0ZXMsIHNvIHdlIGNh biBjYWxsIHRoaXMgZnVuY3Rpb24uIFdlIGRvbid0IG5lZWQgYWxpZ25tZW50LgotICAgICAgICAg ICAgICAgICAgICAgaWYgISRzdHJpZGVfbmVpdGhlcl9hbGlnbmVkKHNyYy5hZGQob2Zmc2V0KSwg ZHN0LmFkZChvZmZzZXQpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAg ICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICBvZmZzZXQgKz0gU0lNRF9T VFJJREVfU0laRTsKLSsgICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgaXMgYG9mZnNldCA+IGxl biAtIHN0cmlkZWAgd2hpY2ggbWVhbnMgd2UgYWx3YXlzIGhhdmUgYXQgbGVhc3QgYHN0cmlkZWAg ZWxlbWVudHMgdG8gbXVuY2ggbmV4dCB0aW1lLgotICAgICAgICAgICAgICAgICAgICAgaWYgb2Zm c2V0ID4gbGVuX21pbnVzX3N0cmlkZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7 Ci0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAg ICB9Ci0gICAgICAgICAgICAgd2hpbGUgb2Zmc2V0IDwgbGVuIHsKLSsgICAgICAgICAgICAgICAg Ly8gU2FmZXR5OiBVc2VzIGxlbiBpbnZhcmlhbnQgaGVyZSBhbmQgYmVsb3cKLSAgICAgICAgICAg ICAgICAgbGV0IGNvZGVfdW5pdCA9ICooc3JjLmFkZChvZmZzZXQpKTsKLSAgICAgICAgICAgICAg ICAgaWYgY29kZV91bml0ID4gMTI3IHsKLSsgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eS11 c2FibGUgaW52YXJpYW50IHVwaGVsZCBoZXJlCi0gICAgICAgICAgICAgICAgICAgICByZXR1cm4g U29tZSgoY29kZV91bml0LCBvZmZzZXQpKTsKLSAgICAgICAgICAgICAgICAgfQotICAgICAgICAg ICAgICAgICAqKGRzdC5hZGQob2Zmc2V0KSkgPSBjb2RlX3VuaXQgYXMgJGRzdF91bml0OwotQEAg LTcyOCwyMSArOTE5LDI3IEBACi0gCi0gI1thbGxvdyh1bnVzZWRfbWFjcm9zKV0KLSBtYWNyb19y dWxlcyEgbGF0aW4xX3NpbWRfdW5hbGlnbiB7Ci0rICAgIC8vIFNhZmV0eTogc3RyaWRlX25laXRo ZXJfYWxpZ25lZCBtdXN0IGJlIGEgZnVuY3Rpb24gdGhhdCByZXF1aXJlcyBzcmMvZGVzdCBiZSB2 YWxpZCBmb3IgdW5hbGlnbmVkIHJlYWRzL3dyaXRlcyBmb3IgU0lNRF9TVFJJREVfU0laRSBlbGVt ZW50cyBvZiB0eXBlIHNyY191bml0L2Rlc3RfdW5pdAotICAgICAoJG5hbWU6aWRlbnQsICRzcmNf dW5pdDp0eSwgJGRzdF91bml0OnR5LCAkc3RyaWRlX25laXRoZXJfYWxpZ25lZDppZGVudCkgPT4g ewotKyAgICAgICAgLy8vIFNhZmV0eTogc3JjIGFuZCBkc3QgbXVzdCBiZSB2YWxpZCBmb3IgdW5h bGlnbmVkIHJlYWRzL3dyaXRlcyBvZiBsZW4gZWxlbWVudHMgb2YgdHlwZSBzcmNfdW5pdC9kc3Rf dW5pdAotICAgICAgICAgI1tpbmxpbmUoYWx3YXlzKV0KLSAgICAgICAgIHB1YiB1bnNhZmUgZm4g JG5hbWUoc3JjOiAqY29uc3QgJHNyY191bml0LCBkc3Q6ICptdXQgJGRzdF91bml0LCBsZW46IHVz aXplKSB7Ci0gICAgICAgICAgICAgbGV0IG11dCBvZmZzZXQgPSAwdXNpemU7Ci0rICAgICAgICAg ICAgLy8gU2FmZXR5OiBpZiB0aGlzIGNoZWNrIHN1Y2NlZWRzIHdlJ3JlIHZhbGlkIGZvciByZWFk aW5nL3dyaXRpbmcgYXQgbGVhc3QgYHN0cmlkZWAgZWxlbWVudHMuCi0gICAgICAgICAgICAgaWYg U0lNRF9TVFJJREVfU0laRSA8PSBsZW4gewotICAgICAgICAgICAgICAgICBsZXQgbGVuX21pbnVz X3N0cmlkZSA9IGxlbiAtIFNJTURfU1RSSURFX1NJWkU7Ci0gICAgICAgICAgICAgICAgIGxvb3Ag ewotKyAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBXZSBrbm93IHdlJ3JlIHZhbGlkIGZv ciBgc3RyaWRlYCByZWFkcy93cml0ZXMsIHNvIHdlIGNhbiBjYWxsIHRoaXMgZnVuY3Rpb24uIFdl IGRvbid0IG5lZWQgYWxpZ25tZW50LgotICAgICAgICAgICAgICAgICAgICAgJHN0cmlkZV9uZWl0 aGVyX2FsaWduZWQoc3JjLmFkZChvZmZzZXQpLCBkc3QuYWRkKG9mZnNldCkpOwotICAgICAgICAg ICAgICAgICAgICAgb2Zmc2V0ICs9IFNJTURfU1RSSURFX1NJWkU7Ci0rICAgICAgICAgICAgICAg ICAgICAvLyBUaGlzIGlzIGBvZmZzZXQgPiBsZW4gLSBzdHJpZGVgIHdoaWNoIG1lYW5zIHdlIGFs d2F5cyBoYXZlIGF0IGxlYXN0IGBzdHJpZGVgIGVsZW1lbnRzIHRvIG11bmNoIG5leHQgdGltZS4K LSAgICAgICAgICAgICAgICAgICAgIGlmIG9mZnNldCA+IGxlbl9taW51c19zdHJpZGUgewotICAg ICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAgICAgfQotICAg ICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgfQotICAgICAgICAgICAgIHdoaWxlIG9mZnNl dCA8IGxlbiB7Ci0rICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogVXNlcyBsZW4gaW52YXJpYW50 IGhlcmUKLSAgICAgICAgICAgICAgICAgbGV0IGNvZGVfdW5pdCA9ICooc3JjLmFkZChvZmZzZXQp KTsKLSAgICAgICAgICAgICAgICAgKihkc3QuYWRkKG9mZnNldCkpID0gY29kZV91bml0IGFzICRk c3RfdW5pdDsKLSAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IDE7Ci1AQCAtNzUzLDcgKzk1MCwx MSBAQAotIAotICNbYWxsb3codW51c2VkX21hY3JvcyldCi0gbWFjcm9fcnVsZXMhIGFzY2lpX3Rv X2FzY2lpX3NpbWRfc3RyaWRlIHsKLSsgICAgLy8gU2FmZXR5OiBsb2FkL3N0b3JlIG11c3QgYmUg dmFsaWQgZm9yIDE2IGJ5dGVzIG9mIHJlYWQvd3JpdGUsIHdoaWNoIG1heSBiZSB1bmFsaWduZWQu IChjYW5kaWRhdGVzOiBgKGxvYWR8c3RvcmUpKDE2fDgpXyh1bmFsaWduZWR8YWxpZ25lZClgIGZ1 bmN0aW9ucykKLSAgICAgKCRuYW1lOmlkZW50LCAkbG9hZDppZGVudCwgJHN0b3JlOmlkZW50KSA9 PiB7Ci0rICAgICAgICAvLy8gU2FmZXR5OiBzcmMgYW5kIGRzdCBtdXN0IGJlIHZhbGlkIGZvciAx NiBieXRlcyBvZiByZWFkL3dyaXRlIGFjY29yZGluZyB0bwotKyAgICAgICAgLy8vIHRoZSAkbG9h ZC8kc3RvcmUgZm4sIHdoaWNoIG1heSBhbGxvdyBmb3IgdW5hbGlnbmVkIHJlYWRzL3dyaXRlcyBv ciByZXF1aXJlCi0rICAgICAgICAvLy8gYWxpZ25tZW50IHRvIGVpdGhlciAxNng4IG9yIHU4eDE2 LgotICAgICAgICAgI1tpbmxpbmUoYWx3YXlzKV0KLSAgICAgICAgIHB1YiB1bnNhZmUgZm4gJG5h bWUoc3JjOiAqY29uc3QgdTgsIGRzdDogKm11dCB1OCkgLT4gYm9vbCB7Ci0gICAgICAgICAgICAg bGV0IHNpbWQgPSAkbG9hZChzcmMpOwotQEAgLTc2OCwxOSArOTY5LDMyIEBACi0gCi0gI1thbGxv dyh1bnVzZWRfbWFjcm9zKV0KLSBtYWNyb19ydWxlcyEgYXNjaWlfdG9fYXNjaWlfc2ltZF9kb3Vi bGVfc3RyaWRlIHsKLSsgICAgLy8gU2FmZXR5OiBzdG9yZSBtdXN0IGJlIHZhbGlkIGZvciAzMiBi eXRlcyBvZiB3cml0ZSwgd2hpY2ggbWF5IGJlIHVuYWxpZ25lZCAoY2FuZGlkYXRlczogYHN0b3Jl KDh8MTYpXyhhbGlnbmVkfHVuYWxpZ25lZClgKQotICAgICAoJG5hbWU6aWRlbnQsICRzdG9yZTpp ZGVudCkgPT4gewotKyAgICAgICAgLy8vIFNhZmV0eTogc3JjIG11c3QgYmUgdmFsaWQgZm9yIDMy IGJ5dGVzIG9mIGFsaWduZWQgdTh4MTYgcmVhZAotKyAgICAgICAgLy8vIGRzdCBtdXN0IGJlIHZh bGlkIGZvciAzMiBieXRlcyBvZiB1bmFsaWduZWQgd3JpdGUgYWNjb3JkaW5nIHRvCi0rICAgICAg ICAvLy8gdGhlICRzdG9yZSBmbiwgd2hpY2ggbWF5IGFsbG93IGZvciB1bmFsaWduZWQgd3JpdGVz IG9yIHJlcXVpcmUKLSsgICAgICAgIC8vLyBhbGlnbm1lbnQgdG8gZWl0aGVyIDE2eDggb3IgdTh4 MTYuCi0rICAgICAgICAvLy8KLSsgICAgICAgIC8vLyBTYWZldHktdXNhYmxlIGludmFyaWFudDog UmV0dXJucyBTb21lKGluZGV4KSBpZiB0aGUgZWxlbWVudCBhdCBgaW5kZXhgIGlzIGludmFsaWQg QVNDSUkKLSAgICAgICAgICNbaW5saW5lKGFsd2F5cyldCi0gICAgICAgICBwdWIgdW5zYWZlIGZu ICRuYW1lKHNyYzogKmNvbnN0IHU4LCBkc3Q6ICptdXQgdTgpIC0+IE9wdGlvbjx1c2l6ZT4gewot ICAgICAgICAgICAgIGxldCBmaXJzdCA9IGxvYWQxNl9hbGlnbmVkKHNyYyk7Ci0gICAgICAgICAg ICAgbGV0IHNlY29uZCA9IGxvYWQxNl9hbGlnbmVkKHNyYy5hZGQoU0lNRF9TVFJJREVfU0laRSkp OwotICAgICAgICAgICAgICRzdG9yZShkc3QsIGZpcnN0KTsKLSAgICAgICAgICAgICBpZiB1bmxp a2VseSghc2ltZF9pc19hc2NpaShmaXJzdCB8IHNlY29uZCkpIHsKLSsgICAgICAgICAgICAgICAg Ly8gU2FmZXR5OiBtYXNrX2FzY2lpIHByb2R1Y2VzIGEgbWFzayBvZiBhbGwgdGhlIGhpZ2ggYml0 cy4KLSAgICAgICAgICAgICAgICAgbGV0IG1hc2tfZmlyc3QgPSBtYXNrX2FzY2lpKGZpcnN0KTsK LSAgICAgICAgICAgICAgICAgaWYgbWFza19maXJzdCAhPSAwIHsKLSsgICAgICAgICAgICAgICAg ICAgIC8vIFNhZmV0eTogb24gbGl0dGxlIGVuZGlhbiBzeXN0ZW1zIHRoaXMgd2lsbCBiZSB0aGUg bnVtYmVyIG9mIGFzY2lpIGJ5dGVzCi0rICAgICAgICAgICAgICAgICAgICAvLyBiZWZvcmUgdGhl IGZpcnN0IG5vbi1hc2NpaSwgaS5lLiB2YWxpZCBmb3IgaW5kZXhpbmcgc3JjCi0rICAgICAgICAg ICAgICAgICAgICAvLyBUT0RPIFNBRkVUWTogV2hhdCBhYm91dCBiaWctZW5kaWFuIHN5c3RlbXM/ Ci0gICAgICAgICAgICAgICAgICAgICByZXR1cm4gU29tZShtYXNrX2ZpcnN0LnRyYWlsaW5nX3pl cm9zKCkgYXMgdXNpemUpOwotICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICRz dG9yZShkc3QuYWRkKFNJTURfU1RSSURFX1NJWkUpLCBzZWNvbmQpOwotICAgICAgICAgICAgICAg ICBsZXQgbWFza19zZWNvbmQgPSBtYXNrX2FzY2lpKHNlY29uZCk7Ci0rICAgICAgICAgICAgICAg IC8vIFNhZmV0eTogb24gbGl0dGxlIGVuZGlhbiBzeXN0ZW1zIHRoaXMgd2lsbCBiZSB0aGUgbnVt YmVyIG9mIGFzY2lpIGJ5dGVzCi0rICAgICAgICAgICAgICAgIC8vIGJlZm9yZSB0aGUgZmlyc3Qg bm9uLWFzY2lpLCBpLmUuIHZhbGlkIGZvciBpbmRleGluZyBzcmMKLSAgICAgICAgICAgICAgICAg cmV0dXJuIFNvbWUoU0lNRF9TVFJJREVfU0laRSArIG1hc2tfc2Vjb25kLnRyYWlsaW5nX3plcm9z KCkgYXMgdXNpemUpOwotICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAkc3RvcmUoZHN0LmFk ZChTSU1EX1NUUklERV9TSVpFKSwgc2Vjb25kKTsKLUBAIC03OTEsNyArMTAwNSwxMSBAQAotIAot ICNbYWxsb3codW51c2VkX21hY3JvcyldCi0gbWFjcm9fcnVsZXMhIGFzY2lpX3RvX2Jhc2ljX2xh dGluX3NpbWRfc3RyaWRlIHsKLSsgICAgLy8gU2FmZXR5OiBsb2FkL3N0b3JlIG11c3QgYmUgdmFs aWQgZm9yIDE2IGJ5dGVzIG9mIHJlYWQvd3JpdGUsIHdoaWNoIG1heSBiZSB1bmFsaWduZWQuIChj YW5kaWRhdGVzOiBgKGxvYWR8c3RvcmUpKDE2fDgpXyh1bmFsaWduZWR8YWxpZ25lZClgIGZ1bmN0 aW9ucykKLSAgICAgKCRuYW1lOmlkZW50LCAkbG9hZDppZGVudCwgJHN0b3JlOmlkZW50KSA9PiB7 Ci0rICAgICAgICAvLy8gU2FmZXR5OiBzcmMgYW5kIGRzdCBtdXN0IGJlIHZhbGlkIGZvciAxNi8z MiBieXRlcyBvZiByZWFkL3dyaXRlIGFjY29yZGluZyB0bwotKyAgICAgICAgLy8vIHRoZSAkbG9h ZC8kc3RvcmUgZm4sIHdoaWNoIG1heSBhbGxvdyBmb3IgdW5hbGlnbmVkIHJlYWRzL3dyaXRlcyBv ciByZXF1aXJlCi0rICAgICAgICAvLy8gYWxpZ25tZW50IHRvIGVpdGhlciAxNng4IG9yIHU4eDE2 LgotICAgICAgICAgI1tpbmxpbmUoYWx3YXlzKV0KLSAgICAgICAgIHB1YiB1bnNhZmUgZm4gJG5h bWUoc3JjOiAqY29uc3QgdTgsIGRzdDogKm11dCB1MTYpIC0+IGJvb2wgewotICAgICAgICAgICAg IGxldCBzaW1kID0gJGxvYWQoc3JjKTsKLUBAIC04MDgsMTMgKzEwMjYsMTggQEAKLSAKLSAjW2Fs bG93KHVudXNlZF9tYWNyb3MpXQotIG1hY3JvX3J1bGVzISBhc2NpaV90b19iYXNpY19sYXRpbl9z aW1kX2RvdWJsZV9zdHJpZGUgewotKyAgICAvLyBTYWZldHk6IHN0b3JlIG11c3QgYmUgdmFsaWQg Zm9yIDE2IGJ5dGVzIG9mIHdyaXRlLCB3aGljaCBtYXkgYmUgdW5hbGlnbmVkCi0gICAgICgkbmFt ZTppZGVudCwgJHN0b3JlOmlkZW50KSA9PiB7Ci0rICAgICAgICAvLy8gU2FmZXR5OiBzcmMgbXVz dCBiZSB2YWxpZCBmb3IgMipTSU1EX1NUUklERV9TSVpFIGJ5dGVzIG9mIGFsaWduZWQgcmVhZHMs Ci0rICAgICAgICAvLy8gYWxpZ25lZCB0byBlaXRoZXIgMTZ4OCBvciB1OHgxNi4KLSsgICAgICAg IC8vLyBkc3QgbXVzdCBiZSB2YWxpZCBmb3IgMipTSU1EX1NUUklERV9TSVpFIGJ5dGVzIG9mIGFs aWduZWQgb3IgdW5hbGlnbmVkIHJlYWRzCi0gICAgICAgICAjW2lubGluZShhbHdheXMpXQotICAg ICAgICAgcHViIHVuc2FmZSBmbiAkbmFtZShzcmM6ICpjb25zdCB1OCwgZHN0OiAqbXV0IHUxNikg LT4gT3B0aW9uPHVzaXplPiB7Ci0gICAgICAgICAgICAgbGV0IGZpcnN0ID0gbG9hZDE2X2FsaWdu ZWQoc3JjKTsKLSAgICAgICAgICAgICBsZXQgc2Vjb25kID0gbG9hZDE2X2FsaWduZWQoc3JjLmFk ZChTSU1EX1NUUklERV9TSVpFKSk7Ci0gICAgICAgICAgICAgbGV0IChhLCBiKSA9IHNpbWRfdW5w YWNrKGZpcnN0KTsKLSAgICAgICAgICAgICAkc3RvcmUoZHN0LCBhKTsKLSsgICAgICAgICAgICAv LyBTYWZldHk6IGRpdmlkZSBieSAyIHNpbmNlIGl0J3MgYSB1MTYgcG9pbnRlcgotICAgICAgICAg ICAgICRzdG9yZShkc3QuYWRkKFNJTURfU1RSSURFX1NJWkUgLyAyKSwgYik7Ci0gICAgICAgICAg ICAgaWYgdW5saWtlbHkoIXNpbWRfaXNfYXNjaWkoZmlyc3QgfCBzZWNvbmQpKSB7Ci0gICAgICAg ICAgICAgICAgIGxldCBtYXNrX2ZpcnN0ID0gbWFza19hc2NpaShmaXJzdCk7Ci1AQCAtODM3LDcg KzEwNjAsMTEgQEAKLSAKLSAjW2FsbG93KHVudXNlZF9tYWNyb3MpXQotIG1hY3JvX3J1bGVzISB1 bnBhY2tfc2ltZF9zdHJpZGUgewotKyAgICAvLyBTYWZldHk6IGxvYWQvc3RvcmUgbXVzdCBiZSB2 YWxpZCBmb3IgMTYgYnl0ZXMgb2YgcmVhZC93cml0ZSwgd2hpY2ggbWF5IGJlIHVuYWxpZ25lZC4g KGNhbmRpZGF0ZXM6IGAobG9hZHxzdG9yZSkoMTZ8OClfKHVuYWxpZ25lZHxhbGlnbmVkKWAgZnVu Y3Rpb25zKQotICAgICAoJG5hbWU6aWRlbnQsICRsb2FkOmlkZW50LCAkc3RvcmU6aWRlbnQpID0+ IHsKLSsgICAgICAgIC8vLyBTYWZldHk6IHNyYyBhbmQgZHN0IG11c3QgYmUgdmFsaWQgZm9yIDE2 IGJ5dGVzIG9mIHJlYWQvd3JpdGUgYWNjb3JkaW5nIHRvCi0rICAgICAgICAvLy8gdGhlICRsb2Fk LyRzdG9yZSBmbiwgd2hpY2ggbWF5IGFsbG93IGZvciB1bmFsaWduZWQgcmVhZHMvd3JpdGVzIG9y IHJlcXVpcmUKLSsgICAgICAgIC8vLyBhbGlnbm1lbnQgdG8gZWl0aGVyIDE2eDggb3IgdTh4MTYu Ci0gICAgICAgICAjW2lubGluZShhbHdheXMpXQotICAgICAgICAgcHViIHVuc2FmZSBmbiAkbmFt ZShzcmM6ICpjb25zdCB1OCwgZHN0OiAqbXV0IHUxNikgewotICAgICAgICAgICAgIGxldCBzaW1k ID0gJGxvYWQoc3JjKTsKLUBAIC04NTAsNyArMTA3NywxMSBAQAotIAotICNbYWxsb3codW51c2Vk X21hY3JvcyldCi0gbWFjcm9fcnVsZXMhIGJhc2ljX2xhdGluX3RvX2FzY2lpX3NpbWRfc3RyaWRl IHsKLSsgICAgLy8gU2FmZXR5OiBsb2FkL3N0b3JlIG11c3QgYmUgdmFsaWQgZm9yIDE2IGJ5dGVz IG9mIHJlYWQvd3JpdGUsIHdoaWNoIG1heSBiZSB1bmFsaWduZWQuIChjYW5kaWRhdGVzOiBgKGxv YWR8c3RvcmUpKDE2fDgpXyh1bmFsaWduZWR8YWxpZ25lZClgIGZ1bmN0aW9ucykKLSAgICAgKCRu YW1lOmlkZW50LCAkbG9hZDppZGVudCwgJHN0b3JlOmlkZW50KSA9PiB7Ci0rICAgICAgICAvLy8g U2FmZXR5OiBzcmMgYW5kIGRzdCBtdXN0IGJlIHZhbGlkIGZvciAzMi8xNiBieXRlcyBvZiByZWFk L3dyaXRlIGFjY29yZGluZyB0bwotKyAgICAgICAgLy8vIHRoZSAkbG9hZC8kc3RvcmUgZm4sIHdo aWNoIG1heSBhbGxvdyBmb3IgdW5hbGlnbmVkIHJlYWRzL3dyaXRlcyBvciByZXF1aXJlCi0rICAg ICAgICAvLy8gYWxpZ25tZW50IHRvIGVpdGhlciAxNng4IG9yIHU4eDE2LgotICAgICAgICAgI1tp bmxpbmUoYWx3YXlzKV0KLSAgICAgICAgIHB1YiB1bnNhZmUgZm4gJG5hbWUoc3JjOiAqY29uc3Qg dTE2LCBkc3Q6ICptdXQgdTgpIC0+IGJvb2wgewotICAgICAgICAgICAgIGxldCBmaXJzdCA9ICRs b2FkKHNyYyk7Ci1AQCAtODY3LDcgKzEwOTgsMTEgQEAKLSAKLSAjW2FsbG93KHVudXNlZF9tYWNy b3MpXQotIG1hY3JvX3J1bGVzISBwYWNrX3NpbWRfc3RyaWRlIHsKLSsgICAgLy8gU2FmZXR5OiBs b2FkL3N0b3JlIG11c3QgYmUgdmFsaWQgZm9yIDE2IGJ5dGVzIG9mIHJlYWQvd3JpdGUsIHdoaWNo IG1heSBiZSB1bmFsaWduZWQuIChjYW5kaWRhdGVzOiBgKGxvYWR8c3RvcmUpKDE2fDgpXyh1bmFs aWduZWR8YWxpZ25lZClgIGZ1bmN0aW9ucykKLSAgICAgKCRuYW1lOmlkZW50LCAkbG9hZDppZGVu dCwgJHN0b3JlOmlkZW50KSA9PiB7Ci0rICAgICAgICAvLy8gU2FmZXR5OiBzcmMgYW5kIGRzdCBt dXN0IGJlIHZhbGlkIGZvciAzMi8xNiBieXRlcyBvZiByZWFkL3dyaXRlIGFjY29yZGluZyB0bwot KyAgICAgICAgLy8vIHRoZSAkbG9hZC8kc3RvcmUgZm4sIHdoaWNoIG1heSBhbGxvdyBmb3IgdW5h bGlnbmVkIHJlYWRzL3dyaXRlcyBvciByZXF1aXJlCi0rICAgICAgICAvLy8gYWxpZ25tZW50IHRv IGVpdGhlciAxNng4IG9yIHU4eDE2LgotICAgICAgICAgI1tpbmxpbmUoYWx3YXlzKV0KLSAgICAg ICAgIHB1YiB1bnNhZmUgZm4gJG5hbWUoc3JjOiAqY29uc3QgdTE2LCBkc3Q6ICptdXQgdTgpIHsK LSAgICAgICAgICAgICBsZXQgZmlyc3QgPSAkbG9hZChzcmMpOwotQEAgLTg5Myw2ICsxMTI4LDgg QEAKLSAKLSAgICAgICAgIHB1YiBjb25zdCBBTFVfQUxJR05NRU5UX01BU0s6IHVzaXplID0gNzsK LSAKLSsgICAgICAgIC8vIFNhZmV0eSBmb3Igc3RyaWRlIG1hY3JvczogV2Ugc3RpY2sgdG8gdGhl IGxvYWQ4X2FsaWduZWQvZXRjIGZhbWlseSBvZiBmdW5jdGlvbnMuIFdlIGNvbnNpc3RlbnRseSBw cm9kdWNlCi0rICAgICAgICAvLyBuZWl0aGVyX3VuYWxpZ25lZCB2YXJpYW50cyB1c2luZyBvbmx5 IHVuYWxpZ25lZCBpbnB1dHMuCi0gICAgICAgICBhc2NpaV90b19hc2NpaV9zaW1kX3N0cmlkZSEo YXNjaWlfdG9fYXNjaWlfc3RyaWRlX25laXRoZXJfYWxpZ25lZCwgbG9hZDE2X3VuYWxpZ25lZCwg c3RvcmUxNl91bmFsaWduZWQpOwotIAotICAgICAgICAgYXNjaWlfdG9fYmFzaWNfbGF0aW5fc2lt ZF9zdHJpZGUhKGFzY2lpX3RvX2Jhc2ljX2xhdGluX3N0cmlkZV9uZWl0aGVyX2FsaWduZWQsIGxv YWQxNl91bmFsaWduZWQsIHN0b3JlOF91bmFsaWduZWQpOwotQEAgLTkwMSw2ICsxMTM4LDggQEAK LSAgICAgICAgIGJhc2ljX2xhdGluX3RvX2FzY2lpX3NpbWRfc3RyaWRlIShiYXNpY19sYXRpbl90 b19hc2NpaV9zdHJpZGVfbmVpdGhlcl9hbGlnbmVkLCBsb2FkOF91bmFsaWduZWQsIHN0b3JlMTZf dW5hbGlnbmVkKTsKLSAgICAgICAgIHBhY2tfc2ltZF9zdHJpZGUhKHBhY2tfc3RyaWRlX25laXRo ZXJfYWxpZ25lZCwgbG9hZDhfdW5hbGlnbmVkLCBzdG9yZTE2X3VuYWxpZ25lZCk7Ci0gCi0rICAg ICAgICAvLyBTYWZldHkgZm9yIGNvbnZlcnNpb24gbWFjcm9zOiBXZSB1c2UgdGhlIHVuYWxpZ24g bWFjcm8gd2l0aCB1bmFsaWduIGZ1bmN0aW9ucyBhYm92ZS4gQWxsIHN0cmlkZSBmdW5jdGlvbnMg d2VyZSBwcm9kdWNlZAotKyAgICAgICAgLy8gYnkgc3RyaWRlIG1hY3JvcyB0aGF0IHVuaXZlcnNh bGx5IG11bmNoIGEgc2luZ2xlIFNJTURfU1RSSURFX1NJWkUgd29ydGggb2YgZWxlbWVudHMuCi0g ICAgICAgICBhc2NpaV9zaW1kX3VuYWxpZ24hKGFzY2lpX3RvX2FzY2lpLCB1OCwgdTgsIGFzY2lp X3RvX2FzY2lpX3N0cmlkZV9uZWl0aGVyX2FsaWduZWQpOwotICAgICAgICAgYXNjaWlfc2ltZF91 bmFsaWduIShhc2NpaV90b19iYXNpY19sYXRpbiwgdTgsIHUxNiwgYXNjaWlfdG9fYmFzaWNfbGF0 aW5fc3RyaWRlX25laXRoZXJfYWxpZ25lZCk7Ci0gICAgICAgICBhc2NpaV9zaW1kX3VuYWxpZ24h KGJhc2ljX2xhdGluX3RvX2FzY2lpLCB1MTYsIHU4LCBiYXNpY19sYXRpbl90b19hc2NpaV9zdHJp ZGVfbmVpdGhlcl9hbGlnbmVkKTsKLUBAIC05MTksNiArMTE1OCw5IEBACi0gCi0gICAgICAgICBw dWIgY29uc3QgU0lNRF9BTElHTk1FTlRfTUFTSzogdXNpemUgPSAxNTsKLSAKLSsgICAgICAgIC8v IFNhZmV0eSBmb3Igc3RyaWRlIG1hY3JvczogV2Ugc3RpY2sgdG8gdGhlIGxvYWQ4X2FsaWduZWQv ZXRjIGZhbWlseSBvZiBmdW5jdGlvbnMuIFdlIGNvbnNpc3RlbnRseSBuYW1lCi0rICAgICAgICAv LyBhbGlnbmVkL3VuYWxpZ25lZCBmdW5jdGlvbnMgYWNjb3JkaW5nIHRvIHNyYy9kc3QgYmVpbmcg YWxpZ25lZC91bmFsaWduZWQKLSsKLSAgICAgICAgIGFzY2lpX3RvX2FzY2lpX3NpbWRfc3RyaWRl IShhc2NpaV90b19hc2NpaV9zdHJpZGVfYm90aF9hbGlnbmVkLCBsb2FkMTZfYWxpZ25lZCwgc3Rv cmUxNl9hbGlnbmVkKTsKLSAgICAgICAgIGFzY2lpX3RvX2FzY2lpX3NpbWRfc3RyaWRlIShhc2Np aV90b19hc2NpaV9zdHJpZGVfc3JjX2FsaWduZWQsIGxvYWQxNl9hbGlnbmVkLCBzdG9yZTE2X3Vu YWxpZ25lZCk7Ci0gICAgICAgICBhc2NpaV90b19hc2NpaV9zaW1kX3N0cmlkZSEoYXNjaWlfdG9f YXNjaWlfc3RyaWRlX2RzdF9hbGlnbmVkLCBsb2FkMTZfdW5hbGlnbmVkLCBzdG9yZTE2X2FsaWdu ZWQpOwotQEAgLTk0NCw2ICsxMTg2LDkgQEAKLSAgICAgICAgIHBhY2tfc2ltZF9zdHJpZGUhKHBh Y2tfc3RyaWRlX2RzdF9hbGlnbmVkLCBsb2FkOF91bmFsaWduZWQsIHN0b3JlMTZfYWxpZ25lZCk7 Ci0gICAgICAgICBwYWNrX3NpbWRfc3RyaWRlIShwYWNrX3N0cmlkZV9uZWl0aGVyX2FsaWduZWQs IGxvYWQ4X3VuYWxpZ25lZCwgc3RvcmUxNl91bmFsaWduZWQpOwotIAotKyAgICAgICAgLy8gU2Fm ZXR5IGZvciBjb252ZXJzaW9uIG1hY3JvczogV2UgdXNlIHRoZSBjb3JyZWN0IHBhdHRlcm4gb2Yg Ym90aC9zcmMvZHN0L25laXRoZXIgaGVyZS4gQWxsIHN0cmlkZSBmdW5jdGlvbnMgd2VyZSBwcm9k dWNlZAotKyAgICAgICAgLy8gYnkgc3RyaWRlIG1hY3JvcyB0aGF0IHVuaXZlcnNhbGx5IG11bmNo IGEgc2luZ2xlIFNJTURfU1RSSURFX1NJWkUgd29ydGggb2YgZWxlbWVudHMuCi0rCi0gICAgICAg ICBhc2NpaV9zaW1kX2NoZWNrX2FsaWduIShhc2NpaV90b19hc2NpaSwgdTgsIHU4LCBhc2NpaV90 b19hc2NpaV9zdHJpZGVfYm90aF9hbGlnbmVkLCBhc2NpaV90b19hc2NpaV9zdHJpZGVfc3JjX2Fs aWduZWQsIGFzY2lpX3RvX2FzY2lpX3N0cmlkZV9kc3RfYWxpZ25lZCwgYXNjaWlfdG9fYXNjaWlf c3RyaWRlX25laXRoZXJfYWxpZ25lZCk7Ci0gICAgICAgICBhc2NpaV9zaW1kX2NoZWNrX2FsaWdu IShhc2NpaV90b19iYXNpY19sYXRpbiwgdTgsIHUxNiwgYXNjaWlfdG9fYmFzaWNfbGF0aW5fc3Ry aWRlX2JvdGhfYWxpZ25lZCwgYXNjaWlfdG9fYmFzaWNfbGF0aW5fc3RyaWRlX3NyY19hbGlnbmVk LCBhc2NpaV90b19iYXNpY19sYXRpbl9zdHJpZGVfZHN0X2FsaWduZWQsIGFzY2lpX3RvX2Jhc2lj X2xhdGluX3N0cmlkZV9uZWl0aGVyX2FsaWduZWQpOwotICAgICAgICAgYXNjaWlfc2ltZF9jaGVj a19hbGlnbiEoYmFzaWNfbGF0aW5fdG9fYXNjaWksIHUxNiwgdTgsIGJhc2ljX2xhdGluX3RvX2Fz Y2lpX3N0cmlkZV9ib3RoX2FsaWduZWQsIGJhc2ljX2xhdGluX3RvX2FzY2lpX3N0cmlkZV9zcmNf YWxpZ25lZCwgYmFzaWNfbGF0aW5fdG9fYXNjaWlfc3RyaWRlX2RzdF9hbGlnbmVkLCBiYXNpY19s YXRpbl90b19hc2NpaV9zdHJpZGVfbmVpdGhlcl9hbGlnbmVkKTsKLUBAIC05NTgsMTIgKzEyMDMs MTYgQEAKLSAKLSAgICAgICAgIHB1YiBjb25zdCBTSU1EX1NUUklERV9TSVpFOiB1c2l6ZSA9IDE2 OwotIAotKyAgICAgICAgLy8vIFNhZmV0eS11c2FibGUgaW52YXJpYW50OiBUaGlzIHNob3VsZCBi ZSBpZGVudGljYWwgdG8gU0lNRF9TVFJJREVfU0laRSAodXNlZCBieSBhc2NpaV9zaW1kX2NoZWNr X2FsaWduX3Vucm9sbGVkKQotICAgICAgICAgcHViIGNvbnN0IFNJTURfQUxJR05NRU5UOiB1c2l6 ZSA9IDE2OwotIAotICAgICAgICAgcHViIGNvbnN0IE1BWF9TVFJJREVfU0laRTogdXNpemUgPSAx NjsKLSAKLSAgICAgICAgIHB1YiBjb25zdCBTSU1EX0FMSUdOTUVOVF9NQVNLOiB1c2l6ZSA9IDE1 OwotIAotKyAgICAgICAgLy8gU2FmZXR5IGZvciBzdHJpZGUgbWFjcm9zOiBXZSBzdGljayB0byB0 aGUgbG9hZDhfYWxpZ25lZC9ldGMgZmFtaWx5IG9mIGZ1bmN0aW9ucy4gV2UgY29uc2lzdGVudGx5 IG5hbWUKLSsgICAgICAgIC8vIGFsaWduZWQvdW5hbGlnbmVkIGZ1bmN0aW9ucyBhY2NvcmRpbmcg dG8gc3JjL2RzdCBiZWluZyBhbGlnbmVkL3VuYWxpZ25lZAotKwotICAgICAgICAgYXNjaWlfdG9f YXNjaWlfc2ltZF9kb3VibGVfc3RyaWRlIShhc2NpaV90b19hc2NpaV9zaW1kX2RvdWJsZV9zdHJp ZGVfYm90aF9hbGlnbmVkLCBzdG9yZTE2X2FsaWduZWQpOwotICAgICAgICAgYXNjaWlfdG9fYXNj aWlfc2ltZF9kb3VibGVfc3RyaWRlIShhc2NpaV90b19hc2NpaV9zaW1kX2RvdWJsZV9zdHJpZGVf c3JjX2FsaWduZWQsIHN0b3JlMTZfdW5hbGlnbmVkKTsKLSAKLUBAIC05ODksNiArMTIzOCw5IEBA Ci0gICAgICAgICBwYWNrX3NpbWRfc3RyaWRlIShwYWNrX3N0cmlkZV9ib3RoX2FsaWduZWQsIGxv YWQ4X2FsaWduZWQsIHN0b3JlMTZfYWxpZ25lZCk7Ci0gICAgICAgICBwYWNrX3NpbWRfc3RyaWRl IShwYWNrX3N0cmlkZV9zcmNfYWxpZ25lZCwgbG9hZDhfYWxpZ25lZCwgc3RvcmUxNl91bmFsaWdu ZWQpOwotIAotKyAgICAgICAgLy8gU2FmZXR5IGZvciBjb252ZXJzaW9uIG1hY3JvczogV2UgdXNl IHRoZSBjb3JyZWN0IHBhdHRlcm4gb2YgYm90aC9zcmMvZHN0L25laXRoZXIvZG91YmxlX2JvdGgv ZG91YmxlX3NyYyBoZXJlLiBBbGwgc3RyaWRlIGZ1bmN0aW9ucyB3ZXJlIHByb2R1Y2VkCi0rICAg ICAgICAvLyBieSBzdHJpZGUgbWFjcm9zIHRoYXQgdW5pdmVyc2FsbHkgbXVuY2ggYSBzaW5nbGUg U0lNRF9TVFJJREVfU0laRSB3b3J0aCBvZiBlbGVtZW50cy4KLSsKLSAgICAgICAgIGFzY2lpX3Np bWRfY2hlY2tfYWxpZ25fdW5yb2xsZWQhKGFzY2lpX3RvX2FzY2lpLCB1OCwgdTgsIGFzY2lpX3Rv X2FzY2lpX3N0cmlkZV9ib3RoX2FsaWduZWQsIGFzY2lpX3RvX2FzY2lpX3N0cmlkZV9zcmNfYWxp Z25lZCwgYXNjaWlfdG9fYXNjaWlfc3RyaWRlX25laXRoZXJfYWxpZ25lZCwgYXNjaWlfdG9fYXNj aWlfc2ltZF9kb3VibGVfc3RyaWRlX2JvdGhfYWxpZ25lZCwgYXNjaWlfdG9fYXNjaWlfc2ltZF9k b3VibGVfc3RyaWRlX3NyY19hbGlnbmVkKTsKLSAgICAgICAgIGFzY2lpX3NpbWRfY2hlY2tfYWxp Z25fdW5yb2xsZWQhKGFzY2lpX3RvX2Jhc2ljX2xhdGluLCB1OCwgdTE2LCBhc2NpaV90b19iYXNp Y19sYXRpbl9zdHJpZGVfYm90aF9hbGlnbmVkLCBhc2NpaV90b19iYXNpY19sYXRpbl9zdHJpZGVf c3JjX2FsaWduZWQsIGFzY2lpX3RvX2Jhc2ljX2xhdGluX3N0cmlkZV9uZWl0aGVyX2FsaWduZWQs IGFzY2lpX3RvX2Jhc2ljX2xhdGluX3NpbWRfZG91YmxlX3N0cmlkZV9ib3RoX2FsaWduZWQsIGFz Y2lpX3RvX2Jhc2ljX2xhdGluX3NpbWRfZG91YmxlX3N0cmlkZV9zcmNfYWxpZ25lZCk7Ci0gCi1A QCAtOTk4LDE0ICsxMjUwLDIxIEBACi0gICAgIH0gZWxzZSBpZiAjW2NmZyhhbGwodGFyZ2V0X2Vu ZGlhbiA9ICJsaXR0bGUiLCB0YXJnZXRfcG9pbnRlcl93aWR0aCA9ICI2NCIpKV0gewotICAgICAg ICAgLy8gQWxpZ25lZCBBTFUgd29yZCwgbGl0dGxlLWVuZGlhbiwgNjQtYml0Ci0gCi0rICAgICAg ICAvLy8gU2FmZXR5IGludmFyaWFudDogdGhpcyBpcyB0aGUgYW1vdW50IG9mIGJ5dGVzIGNvbnN1 bWVkIGJ5Ci0rICAgICAgICAvLy8gdW5wYWNrX2FsdS4gVGhpcyB3aWxsIGJlIHR3aWNlIHRoZSBw b2ludGVyIHdpZHRoLCBhcyBpdCBjb25zdW1lcyB0d28gdXNpemVzLgotKyAgICAgICAgLy8vIFRo aXMgaXMgYWxzbyB0aGUgbnVtYmVyIG9mIGJ5dGVzIHByb2R1Y2VkIGJ5IHBhY2tfYWx1LgotKyAg ICAgICAgLy8vIFRoaXMgaXMgYWxzbyB0aGUgbnVtYmVyIG9mIHUxNiBjb2RlIHVuaXRzIHByb2R1 Y2VkL2NvbnN1bWVkIGJ5IHVucGFja19hbHUvcGFja19hbHUgcmVzcGVjdGl2ZWx5LgotICAgICAg ICAgcHViIGNvbnN0IEFMVV9TVFJJREVfU0laRTogdXNpemUgPSAxNjsKLSAKLSAgICAgICAgIHB1 YiBjb25zdCBNQVhfU1RSSURFX1NJWkU6IHVzaXplID0gMTY7Ci0gCi0rICAgICAgICAvLyBTYWZl dHkgaW52YXJpYW50OiB0aGlzIGlzIHRoZSBwb2ludGVyIHdpZHRoIGluIGJ5dGVzCi0gICAgICAg ICBwdWIgY29uc3QgQUxVX0FMSUdOTUVOVDogdXNpemUgPSA4OwotIAotKyAgICAgICAgLy8gU2Fm ZXR5IGludmFyaWFudDogdGhpcyBpcyBhIG1hc2sgZm9yIGdldHRpbmcgdGhlIGJpdHMgb2YgYSBw b2ludGVyIG5vdCBhbGlnbmVkIHRvIEFMVV9BTElHTk1FTlQKLSAgICAgICAgIHB1YiBjb25zdCBB TFVfQUxJR05NRU5UX01BU0s6IHVzaXplID0gNzsKLSAKLSsgICAgICAgIC8vLyBTYWZldHk6IGRz dCBtdXN0IHBvaW50IHRvIHZhbGlkIHNwYWNlIGZvciB3cml0aW5nIGZvdXIgYHVzaXplYHMKLSAg ICAgICAgICNbaW5saW5lKGFsd2F5cyldCi0gICAgICAgICB1bnNhZmUgZm4gdW5wYWNrX2FsdSh3 b3JkOiB1c2l6ZSwgc2Vjb25kX3dvcmQ6IHVzaXplLCBkc3Q6ICptdXQgdXNpemUpIHsKLSAgICAg ICAgICAgICBsZXQgZmlyc3QgPSAoKDB4MDAwMF8wMDAwX0ZGMDBfMDAwMHVzaXplICYgd29yZCkg PDwgMjQpIHwKLUBAIC0xMDI0LDEyICsxMjgzLDE0IEBACi0gICAgICAgICAgICAgICAgICAgICAg ICAgICgoMHgwMEZGXzAwMDBfMDAwMF8wMDAwdXNpemUgJiBzZWNvbmRfd29yZCkgPj4gMTYpIHwK LSAgICAgICAgICAgICAgICAgICAgICAgICAgKCgweDAwMDBfRkYwMF8wMDAwXzAwMDB1c2l6ZSAm IHNlY29uZF93b3JkKSA+PiAyNCkgfAotICAgICAgICAgICAgICAgICAgICAgICAgICAoKDB4MDAw MF8wMEZGXzAwMDBfMDAwMHVzaXplICYgc2Vjb25kX3dvcmQpID4+IDMyKTsKLSsgICAgICAgICAg ICAvLyBTYWZldHk6IGZuIGludmFyaWFudCB1c2VkIGhlcmUKLSAgICAgICAgICAgICAqZHN0ID0g Zmlyc3Q7Ci0gICAgICAgICAgICAgKihkc3QuYWRkKDEpKSA9IHNlY29uZDsKLSAgICAgICAgICAg ICAqKGRzdC5hZGQoMikpID0gdGhpcmQ7Ci0gICAgICAgICAgICAgKihkc3QuYWRkKDMpKSA9IGZv dXJ0aDsKLSAgICAgICAgIH0KLSAKLSsgICAgICAgIC8vLyBTYWZldHk6IGRzdCBtdXN0IHBvaW50 IHRvIHZhbGlkIHNwYWNlIGZvciB3cml0aW5nIHR3byBgdXNpemVgcwotICAgICAgICAgI1tpbmxp bmUoYWx3YXlzKV0KLSAgICAgICAgIHVuc2FmZSBmbiBwYWNrX2FsdShmaXJzdDogdXNpemUsIHNl Y29uZDogdXNpemUsIHRoaXJkOiB1c2l6ZSwgZm91cnRoOiB1c2l6ZSwgZHN0OiAqbXV0IHVzaXpl KSB7Ci0gICAgICAgICAgICAgbGV0IHdvcmQgPSAoKDB4MDBGRl8wMDAwXzAwMDBfMDAwMHVzaXpl ICYgc2Vjb25kKSA8PCA4KSB8Ci1AQCAtMTA0OCwyMCArMTMwOSwyOCBAQAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICgoMHgwMDAwXzAwRkZfMDAwMF8wMDAwdXNpemUgJiB0aGlyZCkg Pj4gMTYpIHwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKDB4MDAwMF8wMDAwXzAw RkZfMDAwMHVzaXplICYgdGhpcmQpID4+IDgpIHwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAoMHgwMDAwXzAwMDBfMDAwMF8wMEZGdXNpemUgJiB0aGlyZCk7Ci0rICAgICAgICAgICAg Ly8gU2FmZXR5OiBmbiBpbnZhcmlhbnQgdXNlZCBoZXJlCi0gICAgICAgICAgICAgKmRzdCA9IHdv cmQ7Ci0gICAgICAgICAgICAgKihkc3QuYWRkKDEpKSA9IHNlY29uZF93b3JkOwotICAgICAgICAg fQotICAgICB9IGVsc2UgaWYgI1tjZmcoYWxsKHRhcmdldF9lbmRpYW4gPSAibGl0dGxlIiwgdGFy Z2V0X3BvaW50ZXJfd2lkdGggPSAiMzIiKSldIHsKLSAgICAgICAgIC8vIEFsaWduZWQgQUxVIHdv cmQsIGxpdHRsZS1lbmRpYW4sIDMyLWJpdAotIAotKyAgICAgICAgLy8vIFNhZmV0eSBpbnZhcmlh bnQ6IHRoaXMgaXMgdGhlIGFtb3VudCBvZiBieXRlcyBjb25zdW1lZCBieQotKyAgICAgICAgLy8v IHVucGFja19hbHUuIFRoaXMgd2lsbCBiZSB0d2ljZSB0aGUgcG9pbnRlciB3aWR0aCwgYXMgaXQg Y29uc3VtZXMgdHdvIHVzaXplcy4KLSsgICAgICAgIC8vLyBUaGlzIGlzIGFsc28gdGhlIG51bWJl ciBvZiBieXRlcyBwcm9kdWNlZCBieSBwYWNrX2FsdS4KLSsgICAgICAgIC8vLyBUaGlzIGlzIGFs c28gdGhlIG51bWJlciBvZiB1MTYgY29kZSB1bml0cyBwcm9kdWNlZC9jb25zdW1lZCBieSB1bnBh Y2tfYWx1L3BhY2tfYWx1IHJlc3BlY3RpdmVseS4KLSAgICAgICAgIHB1YiBjb25zdCBBTFVfU1RS SURFX1NJWkU6IHVzaXplID0gODsKLSAKLSAgICAgICAgIHB1YiBjb25zdCBNQVhfU1RSSURFX1NJ WkU6IHVzaXplID0gODsKLSAKLSsgICAgICAgIC8vIFNhZmV0eSBpbnZhcmlhbnQ6IHRoaXMgaXMg dGhlIHBvaW50ZXIgd2lkdGggaW4gYnl0ZXMKLSAgICAgICAgIHB1YiBjb25zdCBBTFVfQUxJR05N RU5UOiB1c2l6ZSA9IDQ7Ci0gCi0rICAgICAgICAvLyBTYWZldHkgaW52YXJpYW50OiB0aGlzIGlz IGEgbWFzayBmb3IgZ2V0dGluZyB0aGUgYml0cyBvZiBhIHBvaW50ZXIgbm90IGFsaWduZWQgdG8g QUxVX0FMSUdOTUVOVAotICAgICAgICAgcHViIGNvbnN0IEFMVV9BTElHTk1FTlRfTUFTSzogdXNp emUgPSAzOwotIAotKyAgICAgICAgLy8vIFNhZmV0eTogZHN0IG11c3QgcG9pbnQgdG8gdmFsaWQg c3BhY2UgZm9yIHdyaXRpbmcgZm91ciBgdXNpemVgcwotICAgICAgICAgI1tpbmxpbmUoYWx3YXlz KV0KLSAgICAgICAgIHVuc2FmZSBmbiB1bnBhY2tfYWx1KHdvcmQ6IHVzaXplLCBzZWNvbmRfd29y ZDogdXNpemUsIGRzdDogKm11dCB1c2l6ZSkgewotICAgICAgICAgICAgIGxldCBmaXJzdCA9ICgo MHgwMDAwX0ZGMDB1c2l6ZSAmIHdvcmQpIDw8IDgpIHwKLUBAIC0xMDcyLDEyICsxMzQxLDE0IEBA Ci0gICAgICAgICAgICAgICAgICAgICAgICAgKDB4MDAwMF8wMEZGdXNpemUgJiBzZWNvbmRfd29y ZCk7Ci0gICAgICAgICAgICAgbGV0IGZvdXJ0aCA9ICgoMHhGRjAwXzAwMDB1c2l6ZSAmIHNlY29u ZF93b3JkKSA+PiA4KSB8Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICgoMHgwMEZGXzAwMDB1 c2l6ZSAmIHNlY29uZF93b3JkKSA+PiAxNik7Ci0rICAgICAgICAgICAgLy8gU2FmZXR5OiBmbiBp bnZhcmlhbnQgdXNlZCBoZXJlCi0gICAgICAgICAgICAgKmRzdCA9IGZpcnN0OwotICAgICAgICAg ICAgICooZHN0LmFkZCgxKSkgPSBzZWNvbmQ7Ci0gICAgICAgICAgICAgKihkc3QuYWRkKDIpKSA9 IHRoaXJkOwotICAgICAgICAgICAgICooZHN0LmFkZCgzKSkgPSBmb3VydGg7Ci0gICAgICAgICB9 Ci0gCi0rICAgICAgICAvLy8gU2FmZXR5OiBkc3QgbXVzdCBwb2ludCB0byB2YWxpZCBzcGFjZSBm b3Igd3JpdGluZyB0d28gYHVzaXplYHMKLSAgICAgICAgICNbaW5saW5lKGFsd2F5cyldCi0gICAg ICAgICB1bnNhZmUgZm4gcGFja19hbHUoZmlyc3Q6IHVzaXplLCBzZWNvbmQ6IHVzaXplLCB0aGly ZDogdXNpemUsIGZvdXJ0aDogdXNpemUsIGRzdDogKm11dCB1c2l6ZSkgewotICAgICAgICAgICAg IGxldCB3b3JkID0gKCgweDAwRkZfMDAwMHVzaXplICYgc2Vjb25kKSA8PCA4KSB8Ci1AQCAtMTA4 OCwyMCArMTM1OSwyOCBAQAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoMHgwMDAw XzAwRkZ1c2l6ZSAmIGZvdXJ0aCkgPDwgMTYpIHwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAoKDB4MDBGRl8wMDAwdXNpemUgJiB0aGlyZCkgPj4gOCkgfAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICgweDAwMDBfMDBGRnVzaXplICYgdGhpcmQpOwotKyAgICAgICAgICAg IC8vIFNhZmV0eTogZm4gaW52YXJpYW50IHVzZWQgaGVyZQotICAgICAgICAgICAgICpkc3QgPSB3 b3JkOwotICAgICAgICAgICAgICooZHN0LmFkZCgxKSkgPSBzZWNvbmRfd29yZDsKLSAgICAgICAg IH0KLSAgICAgfSBlbHNlIGlmICNbY2ZnKGFsbCh0YXJnZXRfZW5kaWFuID0gImJpZyIsIHRhcmdl dF9wb2ludGVyX3dpZHRoID0gIjY0IikpXSB7Ci0gICAgICAgICAvLyBBbGlnbmVkIEFMVSB3b3Jk LCBiaWctZW5kaWFuLCA2NC1iaXQKLSAKLSsgICAgICAgIC8vLyBTYWZldHkgaW52YXJpYW50OiB0 aGlzIGlzIHRoZSBhbW91bnQgb2YgYnl0ZXMgY29uc3VtZWQgYnkKLSsgICAgICAgIC8vLyB1bnBh Y2tfYWx1LiBUaGlzIHdpbGwgYmUgdHdpY2UgdGhlIHBvaW50ZXIgd2lkdGgsIGFzIGl0IGNvbnN1 bWVzIHR3byB1c2l6ZXMuCi0rICAgICAgICAvLy8gVGhpcyBpcyBhbHNvIHRoZSBudW1iZXIgb2Yg Ynl0ZXMgcHJvZHVjZWQgYnkgcGFja19hbHUuCi0rICAgICAgICAvLy8gVGhpcyBpcyBhbHNvIHRo ZSBudW1iZXIgb2YgdTE2IGNvZGUgdW5pdHMgcHJvZHVjZWQvY29uc3VtZWQgYnkgdW5wYWNrX2Fs dS9wYWNrX2FsdSByZXNwZWN0aXZlbHkuCi0gICAgICAgICBwdWIgY29uc3QgQUxVX1NUUklERV9T SVpFOiB1c2l6ZSA9IDE2OwotIAotICAgICAgICAgcHViIGNvbnN0IE1BWF9TVFJJREVfU0laRTog dXNpemUgPSAxNjsKLSAKLSsgICAgICAgIC8vIFNhZmV0eSBpbnZhcmlhbnQ6IHRoaXMgaXMgdGhl IHBvaW50ZXIgd2lkdGggaW4gYnl0ZXMKLSAgICAgICAgIHB1YiBjb25zdCBBTFVfQUxJR05NRU5U OiB1c2l6ZSA9IDg7Ci0gCi0rICAgICAgICAvLyBTYWZldHkgaW52YXJpYW50OiB0aGlzIGlzIGEg bWFzayBmb3IgZ2V0dGluZyB0aGUgYml0cyBvZiBhIHBvaW50ZXIgbm90IGFsaWduZWQgdG8gQUxV X0FMSUdOTUVOVAotICAgICAgICAgcHViIGNvbnN0IEFMVV9BTElHTk1FTlRfTUFTSzogdXNpemUg PSA3OwotIAotKyAgICAgICAgLy8vIFNhZmV0eTogZHN0IG11c3QgcG9pbnQgdG8gdmFsaWQgc3Bh Y2UgZm9yIHdyaXRpbmcgZm91ciBgdXNpemVgcwotICAgICAgICAgI1tpbmxpbmUoYWx3YXlzKV0K LSAgICAgICAgIHVuc2FmZSBmbiB1bnBhY2tfYWx1KHdvcmQ6IHVzaXplLCBzZWNvbmRfd29yZDog dXNpemUsIGRzdDogKm11dCB1c2l6ZSkgewotICAgICAgICAgICAgIGxldCBmaXJzdCA9ICgoMHhG RjAwXzAwMDBfMDAwMF8wMDAwdXNpemUgJiB3b3JkKSA+PiA4KSB8Ci1AQCAtMTEyMCwxMiArMTM5 OSwxNCBAQAotICAgICAgICAgICAgICAgICAgICAgICAgICgoMHgwMDAwXzAwMDBfMDBGRl8wMDAw dXNpemUgJiBzZWNvbmRfd29yZCkgPDwgMTYpIHwKLSAgICAgICAgICAgICAgICAgICAgICAgICAo KDB4MDAwMF8wMDAwXzAwMDBfRkYwMHVzaXplICYgc2Vjb25kX3dvcmQpIDw8IDgpIHwKLSAgICAg ICAgICAgICAgICAgICAgICAgICAoMHgwMDAwXzAwMDBfMDAwMF8wMEZGdXNpemUgJiBzZWNvbmRf d29yZCk7Ci0rICAgICAgICAgICAgLy8gU2FmZXR5OiBmbiBpbnZhcmlhbnQgdXNlZCBoZXJlCi0g ICAgICAgICAgICAgKmRzdCA9IGZpcnN0OwotICAgICAgICAgICAgICooZHN0LmFkZCgxKSkgPSBz ZWNvbmQ7Ci0gICAgICAgICAgICAgKihkc3QuYWRkKDIpKSA9IHRoaXJkOwotICAgICAgICAgICAg ICooZHN0LmFkZCgzKSkgPSBmb3VydGg7Ci0gICAgICAgICB9Ci0gCi0rICAgICAgICAvLy8gU2Fm ZXR5OiBkc3QgbXVzdCBwb2ludCB0byB2YWxpZCBzcGFjZSBmb3Igd3JpdGluZyB0d28gYHVzaXpl YHMKLSAgICAgICAgICNbaW5saW5lKGFsd2F5cyldCi0gICAgICAgICB1bnNhZmUgZm4gcGFja19h bHUoZmlyc3Q6IHVzaXplLCBzZWNvbmQ6IHVzaXplLCB0aGlyZDogdXNpemUsIGZvdXJ0aDogdXNp emUsIGRzdDogKm11dCB1c2l6ZSkgewotICAgICAgICAgICAgIGxldCB3b3JkID0gKCgweDAwRkYw MDAwXzAwMDAwMDAwdXNpemUgJiBmaXJzdCkgPDwgOCkgfAotQEAgLTExNDQsMjAgKzE0MjUsMjgg QEAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKDB4MDAwMDAwRkZfMDAwMDAwMDB1 c2l6ZSAmIGZvdXJ0aCkgPj4gMTYpIHwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo KDB4MDAwMDAwMDBfMDBGRjAwMDB1c2l6ZSAmIGZvdXJ0aCkgPj4gOCkgfAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICgweDAwMDAwMDAwXzAwMDAwMEZGdXNpemUgJiAgZm91cnRoKTsK LSsgICAgICAgICAgICAvLyBTYWZldHk6IGZuIGludmFyaWFudCB1c2VkIGhlcmUKLSAgICAgICAg ICAgICAqZHN0ID0gd29yZDsKLSAgICAgICAgICAgICAqKGRzdC5hZGQoMSkpID0gc2Vjb25kX3dv cmQ7Ci0gICAgICAgICB9Ci0gICAgIH0gZWxzZSBpZiAjW2NmZyhhbGwodGFyZ2V0X2VuZGlhbiA9 ICJiaWciLCB0YXJnZXRfcG9pbnRlcl93aWR0aCA9ICIzMiIpKV0gewotICAgICAgICAgLy8gQWxp Z25lZCBBTFUgd29yZCwgYmlnLWVuZGlhbiwgMzItYml0Ci0gCi0rICAgICAgICAvLy8gU2FmZXR5 IGludmFyaWFudDogdGhpcyBpcyB0aGUgYW1vdW50IG9mIGJ5dGVzIGNvbnN1bWVkIGJ5Ci0rICAg ICAgICAvLy8gdW5wYWNrX2FsdS4gVGhpcyB3aWxsIGJlIHR3aWNlIHRoZSBwb2ludGVyIHdpZHRo LCBhcyBpdCBjb25zdW1lcyB0d28gdXNpemVzLgotKyAgICAgICAgLy8vIFRoaXMgaXMgYWxzbyB0 aGUgbnVtYmVyIG9mIGJ5dGVzIHByb2R1Y2VkIGJ5IHBhY2tfYWx1LgotKyAgICAgICAgLy8vIFRo aXMgaXMgYWxzbyB0aGUgbnVtYmVyIG9mIHUxNiBjb2RlIHVuaXRzIHByb2R1Y2VkL2NvbnN1bWVk IGJ5IHVucGFja19hbHUvcGFja19hbHUgcmVzcGVjdGl2ZWx5LgotICAgICAgICAgcHViIGNvbnN0 IEFMVV9TVFJJREVfU0laRTogdXNpemUgPSA4OwotIAotICAgICAgICAgcHViIGNvbnN0IE1BWF9T VFJJREVfU0laRTogdXNpemUgPSA4OwotIAotKyAgICAgICAgLy8gU2FmZXR5IGludmFyaWFudDog dGhpcyBpcyB0aGUgcG9pbnRlciB3aWR0aCBpbiBieXRlcwotICAgICAgICAgcHViIGNvbnN0IEFM VV9BTElHTk1FTlQ6IHVzaXplID0gNDsKLSAKLSsgICAgICAgIC8vIFNhZmV0eSBpbnZhcmlhbnQ6 IHRoaXMgaXMgYSBtYXNrIGZvciBnZXR0aW5nIHRoZSBiaXRzIG9mIGEgcG9pbnRlciBub3QgYWxp Z25lZCB0byBBTFVfQUxJR05NRU5UCi0gICAgICAgICBwdWIgY29uc3QgQUxVX0FMSUdOTUVOVF9N QVNLOiB1c2l6ZSA9IDM7Ci0gCi0rICAgICAgICAvLy8gU2FmZXR5OiBkc3QgbXVzdCBwb2ludCB0 byB2YWxpZCBzcGFjZSBmb3Igd3JpdGluZyBmb3VyIGB1c2l6ZWBzCi0gICAgICAgICAjW2lubGlu ZShhbHdheXMpXQotICAgICAgICAgdW5zYWZlIGZuIHVucGFja19hbHUod29yZDogdXNpemUsIHNl Y29uZF93b3JkOiB1c2l6ZSwgZHN0OiAqbXV0IHVzaXplKSB7Ci0gICAgICAgICAgICAgbGV0IGZp cnN0ID0gKCgweEZGMDBfMDAwMHVzaXplICYgd29yZCkgPj4gOCkgfAotQEAgLTExNjgsMTIgKzE0 NTcsMTQgQEAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgKCgweDAwRkZfMDAwMHVzaXplICYg c2Vjb25kX3dvcmQpID4+IDE2KTsKLSAgICAgICAgICAgICBsZXQgZm91cnRoID0gKCgweDAwMDBf RkYwMHVzaXplICYgc2Vjb25kX3dvcmQpIDw8IDgpIHwKLSAgICAgICAgICAgICAgICAgICAgICAg ICAoMHgwMDAwXzAwRkZ1c2l6ZSAmIHNlY29uZF93b3JkKTsKLSsgICAgICAgICAgICAvLyBTYWZl dHk6IGZuIGludmFyaWFudCB1c2VkIGhlcmUKLSAgICAgICAgICAgICAqZHN0ID0gZmlyc3Q7Ci0g ICAgICAgICAgICAgKihkc3QuYWRkKDEpKSA9IHNlY29uZDsKLSAgICAgICAgICAgICAqKGRzdC5h ZGQoMikpID0gdGhpcmQ7Ci0gICAgICAgICAgICAgKihkc3QuYWRkKDMpKSA9IGZvdXJ0aDsKLSAg ICAgICAgIH0KLSAKLSsgICAgICAgIC8vLyBTYWZldHk6IGRzdCBtdXN0IHBvaW50IHRvIHZhbGlk IHNwYWNlIGZvciB3cml0aW5nIHR3byBgdXNpemVgcwotICAgICAgICAgI1tpbmxpbmUoYWx3YXlz KV0KLSAgICAgICAgIHVuc2FmZSBmbiBwYWNrX2FsdShmaXJzdDogdXNpemUsIHNlY29uZDogdXNp emUsIHRoaXJkOiB1c2l6ZSwgZm91cnRoOiB1c2l6ZSwgZHN0OiAqbXV0IHVzaXplKSB7Ci0gICAg ICAgICAgICAgbGV0IHdvcmQgPSAoKDB4MDBGRl8wMDAwdXNpemUgJiBmaXJzdCkgPDwgOCkgfAot QEAgLTExODQsNiArMTQ3NSw3IEBACi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCgw eDAwMDBfMDBGRnVzaXplICYgdGhpcmQpIDw8IDE2KSB8Ci0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKCgweDAwRkZfMDAwMHVzaXplICYgZm91cnRoKSA+PiA4KSB8Ci0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKDB4MDAwMF8wMEZGdXNpemUgJiBmb3VydGgpOwotKyAgICAg ICAgICAgIC8vIFNhZmV0eTogZm4gaW52YXJpYW50IHVzZWQgaGVyZQotICAgICAgICAgICAgICpk c3QgPSB3b3JkOwotICAgICAgICAgICAgICooZHN0LmFkZCgxKSkgPSBzZWNvbmRfd29yZDsKLSAg ICAgICAgIH0KLUBAIC0xMTk1LDYgKzE0ODcsOCBAQAotIH0KLSAKLSBjZmdfaWYhIHsKLSsgICAg Ly8gU2FmZXR5LXVzYWJsZSBpbnZhcmlhbnQ6IHRoaXMgY291bnRzIHRoZSB6ZXJvZXMgZnJvbSB0 aGUgImZpcnN0IGJ5dGUiIG9mIHV0Zi04IGRhdGEgcGFja2VkIGludG8gYSB1c2l6ZQotKyAgICAv LyB3aXRoIHRoZSB0YXJnZXQgZW5kaWFubmVzcwotICAgICBpZiAjW2NmZyh0YXJnZXRfZW5kaWFu ID0gImxpdHRsZSIpXSB7Ci0gICAgICAgICAjW2FsbG93KGRlYWRfY29kZSldCi0gICAgICAgICAj W2lubGluZShhbHdheXMpXQotQEAgLTEyMTIsMTkgKzE1MDYsMjQgQEAKLSAKLSBjZmdfaWYhIHsK LSAgICAgaWYgI1tjZmcoYWxsKGZlYXR1cmUgPSAic2ltZC1hY2NlbCIsIHRhcmdldF9lbmRpYW4g PSAibGl0dGxlIiwgdGFyZ2V0X2FyY2ggPSAiZGlzYWJsZWQiKSldIHsKLSsgICAgICAgIC8vLyBT YWZldHktdXNhYmxlIGludmFyaWFudDogV2lsbCByZXR1cm4gdGhlIHZhbHVlIGFuZCBwb3NpdGlv biBvZiB0aGUgZmlyc3Qgbm9uLUFTQ0lJIGJ5dGUgaW4gdGhlIHNsaWNlIGluIGEgU29tZSBpZiBm b3VuZC4KLSsgICAgICAgIC8vLyBJbiBvdGhlciB3b3JkcywgdGhlIGZpcnN0IGVsZW1lbnQgb2Yg dGhlIFNvbWUgaXMgYWx3YXlzIGA+IDEyN2AKLSAgICAgICAgICNbaW5saW5lKGFsd2F5cyldCi0g ICAgICAgICBwdWIgZm4gdmFsaWRhdGVfYXNjaWkoc2xpY2U6ICZbdThdKSAtPiBPcHRpb248KHU4 LCB1c2l6ZSk+IHsKLSAgICAgICAgICAgICBsZXQgc3JjID0gc2xpY2UuYXNfcHRyKCk7Ci0gICAg ICAgICAgICAgbGV0IGxlbiA9IHNsaWNlLmxlbigpOwotICAgICAgICAgICAgIGxldCBtdXQgb2Zm c2V0ID0gMHVzaXplOwotKyAgICAgICAgICAgIC8vIFNhZmV0eTogaWYgdGhpcyBjaGVjayBzdWNj ZWVkcyB3ZSdyZSB2YWxpZCBmb3IgcmVhZGluZy93cml0aW5nIGF0IGxlYXN0IGBzdHJpZGVgIGVs ZW1lbnRzLgotICAgICAgICAgICAgIGlmIFNJTURfU1RSSURFX1NJWkUgPD0gbGVuIHsKLSAgICAg ICAgICAgICAgICAgbGV0IGxlbl9taW51c19zdHJpZGUgPSBsZW4gLSBTSU1EX1NUUklERV9TSVpF OwotICAgICAgICAgICAgICAgICBsb29wIHsKLSsgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0 eTogc3JjIGF0IG9mZnNldCBpcyB2YWxpZCBmb3IgYSBgU0lNRF9TVFJJREVfU0laRWAgcmVhZAot ICAgICAgICAgICAgICAgICAgICAgbGV0IHNpbWQgPSB1bnNhZmUgeyBsb2FkMTZfdW5hbGlnbmVk KHNyYy5hZGQob2Zmc2V0KSkgfTsKLSAgICAgICAgICAgICAgICAgICAgIGlmICFzaW1kX2lzX2Fz Y2lpKHNpbWQpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAg ICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIG9mZnNldCArPSBTSU1EX1NUUklERV9T SVpFOwotKyAgICAgICAgICAgICAgICAgICAgLy8gVGhpcyBpcyBgb2Zmc2V0ID4gbGVuIC0gU0lN RF9TVFJJREVfU0laRWAgd2hpY2ggbWVhbnMgd2UgYWx3YXlzIGhhdmUgYXQgbGVhc3QgYFNJTURf U1RSSURFX1NJWkVgIGVsZW1lbnRzIHRvIG11bmNoIG5leHQgdGltZS4KLSAgICAgICAgICAgICAg ICAgICAgIGlmIG9mZnNldCA+IGxlbl9taW51c19zdHJpZGUgewotICAgICAgICAgICAgICAgICAg ICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAgICAgfQotQEAgLTEyMzMsNiArMTUzMiw3 IEBACi0gICAgICAgICAgICAgd2hpbGUgb2Zmc2V0IDwgbGVuIHsKLSAgICAgICAgICAgICAgICAg bGV0IGNvZGVfdW5pdCA9IHNsaWNlW29mZnNldF07Ci0gICAgICAgICAgICAgICAgIGlmIGNvZGVf dW5pdCA+IDEyNyB7Ci0rICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IFNhZmV0eS11c2Fi bGUgaW52YXJpYW50IHVwaGVsZCBoZXJlCi0gICAgICAgICAgICAgICAgICAgICByZXR1cm4gU29t ZSgoY29kZV91bml0LCBvZmZzZXQpKTsKLSAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg ICAgICBvZmZzZXQgKz0gMTsKLUBAIC0xMjQwLDEzICsxNTQwLDE3IEBACi0gICAgICAgICAgICAg Tm9uZQotICAgICAgICAgfQotICAgICB9IGVsc2UgaWYgI1tjZmcoYWxsKGZlYXR1cmUgPSAic2lt ZC1hY2NlbCIsIHRhcmdldF9mZWF0dXJlID0gInNzZTIiKSldIHsKLSsgICAgICAgIC8vLyBTYWZl dHktdXNhYmxlIGludmFyaWFudDogd2lsbCByZXR1cm4gU29tZSgpIHdoZW4gaXQgZW5jb3VudGVy cyBub24tQVNDSUksIHdpdGggdGhlIGZpcnN0IGVsZW1lbnQgaW4gdGhlIFNvbWUgYmVpbmcKLSsg ICAgICAgIC8vLyBndWFyYW50ZWVkIHRvIGJlIG5vbi1BU0NJSSAoPiAxMjcpLCBhbmQgdGhlIHNl Y29uZCBiZWluZyB0aGUgb2Zmc2V0IHdoZXJlIGl0IGlzIGZvdW5kCi0gICAgICAgICAjW2lubGlu ZShhbHdheXMpXQotICAgICAgICAgcHViIGZuIHZhbGlkYXRlX2FzY2lpKHNsaWNlOiAmW3U4XSkg LT4gT3B0aW9uPCh1OCwgdXNpemUpPiB7Ci0gICAgICAgICAgICAgbGV0IHNyYyA9IHNsaWNlLmFz X3B0cigpOwotICAgICAgICAgICAgIGxldCBsZW4gPSBzbGljZS5sZW4oKTsKLSAgICAgICAgICAg ICBsZXQgbXV0IG9mZnNldCA9IDB1c2l6ZTsKLSsgICAgICAgICAgICAvLyBTYWZldHk6IGlmIHRo aXMgY2hlY2sgc3VjY2VlZHMgd2UncmUgdmFsaWQgZm9yIHJlYWRpbmcgYXQgbGVhc3QgYHN0cmlk ZWAgZWxlbWVudHMuCi0gICAgICAgICAgICAgaWYgU0lNRF9TVFJJREVfU0laRSA8PSBsZW4gewot ICAgICAgICAgICAgICAgICAvLyBGaXJzdCwgcHJvY2VzcyBvbmUgdW5hbGlnbmVkIHZlY3Rvcgot KyAgICAgICAgICAgICAgICAvLyBTYWZldHk6IHNyYyBpcyB2YWxpZCBmb3IgYSBgU0lNRF9TVFJJ REVfU0laRWAgcmVhZAotICAgICAgICAgICAgICAgICBsZXQgc2ltZCA9IHVuc2FmZSB7IGxvYWQx Nl91bmFsaWduZWQoc3JjKSB9OwotICAgICAgICAgICAgICAgICBsZXQgbWFzayA9IG1hc2tfYXNj aWkoc2ltZCk7Ci0gICAgICAgICAgICAgICAgIGlmIG1hc2sgIT0gMCB7Ci1AQCAtMTI1NSwxOCAr MTU1OSwyNiBAQAotICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFNvbWUoKG5vbl9hc2NpaSwg b2Zmc2V0KSk7Ci0gICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgb2Zmc2V0ID0g U0lNRF9TVFJJREVfU0laRTsKLSsgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBOb3cgdGhhdCBv ZmZzZXQgaGFzIGNoYW5nZWQgd2UgZG9uJ3QgeWV0IGtub3cgaG93IG11Y2ggaXQgaXMgdmFsaWQg Zm9yCi0gCi0gICAgICAgICAgICAgICAgIC8vIFdlIGhhdmUgbm93IHNlZW4gMTYgQVNDSUkgYnl0 ZXMuIExldCdzIGd1ZXNzIHRoYXQKLSAgICAgICAgICAgICAgICAgLy8gdGhlcmUgd2lsbCBiZSBl bm91Z2ggbW9yZSB0byBqdXN0aWZ5IG1vcmUgZXhwZW5zZQotICAgICAgICAgICAgICAgICAvLyBp biB0aGUgY2FzZSBvZiBub24tQVNDSUkuCi0gICAgICAgICAgICAgICAgIC8vIFVzZSBhbGlnbmVk IHJlYWRzIGZvciB0aGUgc2FrZSBvZiBvbGQgbWljcm9hY2hpdGVjdHVyZXMuCi0rICAgICAgICAg ICAgICAgIC8vIFNhZmV0eTogdGhpcyBjb3JyZWN0bHkgY2FsY3VsYXRlcyB0aGUgbnVtYmVyIG9m IHNyY191bml0cyB0aGF0IG5lZWQgdG8gYmUgcmVhZCBiZWZvcmUgdGhlIHJlbWFpbmluZyBsaXN0 IGlzIGFsaWduZWQuCi0rICAgICAgICAgICAgICAgIC8vIFRoaXMgaXMgYnkgZGVmaW5pdGlvbiBs ZXNzIHRoYW4gU0lNRF9BTElHTk1FTlQsIHdoaWNoIGlzIGRlZmluZWQgdG8gYmUgZXF1YWwgdG8g U0lNRF9TVFJJREVfU0laRS4KLSAgICAgICAgICAgICAgICAgbGV0IHVudGlsX2FsaWdubWVudCA9 IHVuc2FmZSB7IChTSU1EX0FMSUdOTUVOVCAtICgoc3JjLmFkZChvZmZzZXQpIGFzIHVzaXplKSAm IFNJTURfQUxJR05NRU5UX01BU0spKSAmIFNJTURfQUxJR05NRU5UX01BU0sgfTsKLSAgICAgICAg ICAgICAgICAgLy8gVGhpcyBhZGRpdGlvbiB3b24ndCBvdmVyZmxvdywgYmVjYXVzZSBldmVuIGlu IHRoZSAzMi1iaXQgUEFFIGNhc2UgdGhlCi0gICAgICAgICAgICAgICAgIC8vIGFkZHJlc3Mgc3Bh Y2UgaG9sZHMgZW5vdWdoIGNvZGUgdGhhdCB0aGUgc2xpY2UgbGVuZ3RoIGNhbid0IGJlIHRoYXQK LSAgICAgICAgICAgICAgICAgLy8gY2xvc2UgdG8gYWRkcmVzcyBzcGFjZSBzaXplLgotICAgICAg ICAgICAgICAgICAvLyBvZmZzZXQgbm93IGVxdWFscyBTSU1EX1NUUklERV9TSVpFLCBoZW5jZSB0 aW1lcyAzIGJlbG93LgotKyAgICAgICAgICAgICAgICAvLwotKyAgICAgICAgICAgICAgICAvLyBT YWZldHk6IGlmIHRoaXMgY2hlY2sgc3VjY2VlZHMgd2UncmUgdmFsaWQgZm9yIHJlYWRpbmcgYXQg bGVhc3QgYDIgKiBTSU1EX1NUUklERV9TSVpFYCBlbGVtZW50cyBwbHVzIGB1bnRpbF9hbGlnbm1l bnRgLgotKyAgICAgICAgICAgICAgICAvLyBUaGUgZXh0cmEgU0lNRF9TVFJJREVfU0laRSBpbiB0 aGUgY29uZGl0aW9uIGlzIGJlY2F1c2UgYG9mZnNldGAgaXMgYWxyZWFkeSBgU0lNRF9TVFJJREVf U0laRWAuCi0gICAgICAgICAgICAgICAgIGlmIHVudGlsX2FsaWdubWVudCArIChTSU1EX1NUUklE RV9TSVpFICogMykgPD0gbGVuIHsKLSAgICAgICAgICAgICAgICAgICAgIGlmIHVudGlsX2FsaWdu bWVudCAhPSAwIHsKLSsgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IHRoaXMgaXMg c2FmZSB0byBjYWxsIHNpbmNlIHdlJ3JlIHZhbGlkIGZvciB0aGlzIHJlYWQgKGFuZCBtb3JlKSwg YW5kIGRvbid0IGNhcmUgYWJvdXQgYWxpZ25tZW50Ci0rICAgICAgICAgICAgICAgICAgICAgICAg Ly8gVGhpcyB3aWxsIGNvcHkgb3ZlciBieXRlcyB0aGF0IGdldCBkZWNvZGVkIHR3aWNlIHNpbmNl IGl0J3Mgbm90IGluY3JlbWVudGluZyBgb2Zmc2V0YCBieSBTSU1EX1NUUklERV9TSVpFLiBUaGlz IGlzIGZpbmUuCi0gICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHNpbWQgPSB1bnNhZmUgeyBs b2FkMTZfdW5hbGlnbmVkKHNyYy5hZGQob2Zmc2V0KSkgfTsKLSAgICAgICAgICAgICAgICAgICAg ICAgICBsZXQgbWFzayA9IG1hc2tfYXNjaWkoc2ltZCk7Ci0gICAgICAgICAgICAgICAgICAgICAg ICAgaWYgbWFzayAhPSAwIHsKLUBAIC0xMjc2LDUzICsxNTg4LDc4IEBACi0gICAgICAgICAgICAg ICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCArPSB1bnRpbF9h bGlnbm1lbnQ7Ci0gICAgICAgICAgICAgICAgICAgICB9Ci0rICAgICAgICAgICAgICAgICAgICAv LyBTYWZldHk6IEF0IHRoaXMgcG9pbnQgd2UncmUgdmFsaWQgZm9yIHJlYWRpbmcgMipTSU1EX1NU UklERV9TSVpFIGVsZW1lbnRzCi0rICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IE5vdyBg b2Zmc2V0YCBpcyBhbGlnbmVkIGZvciBgc3JjYAotICAgICAgICAgICAgICAgICAgICAgbGV0IGxl bl9taW51c19zdHJpZGVfdGltZXNfdHdvID0gbGVuIC0gKFNJTURfU1RSSURFX1NJWkUgKiAyKTsK LSAgICAgICAgICAgICAgICAgICAgIGxvb3AgewotKyAgICAgICAgICAgICAgICAgICAgICAgIC8v IFNhZmV0eTogV2Ugd2VyZSB2YWxpZCBmb3IgdGhpcyByZWFkLCBhbmQgd2VyZSBhbGlnbmVkLgot ICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBmaXJzdCA9IHVuc2FmZSB7IGxvYWQxNl9hbGln bmVkKHNyYy5hZGQob2Zmc2V0KSkgfTsKLSAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgc2Vj b25kID0gdW5zYWZlIHsgbG9hZDE2X2FsaWduZWQoc3JjLmFkZChvZmZzZXQgKyBTSU1EX1NUUklE RV9TSVpFKSkgfTsKLSAgICAgICAgICAgICAgICAgICAgICAgICBpZiAhc2ltZF9pc19hc2NpaShm aXJzdCB8IHNlY29uZCkgewotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6 IG1hc2tfYXNjaWkgcHJvZHVjZXMgYSBtYXNrIG9mIGFsbCB0aGUgaGlnaCBiaXRzLgotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBsZXQgbWFza19maXJzdCA9IG1hc2tfYXNjaWkoZmlyc3Qp OwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBtYXNrX2ZpcnN0ICE9IDAgewotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBvbiBsaXR0bGUgZW5kaWFu IHN5c3RlbXMgdGhpcyB3aWxsIGJlIHRoZSBudW1iZXIgb2YgYXNjaWkgYnl0ZXMKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGJlZm9yZSB0aGUgZmlyc3Qgbm9uLWFzY2lpLCBp LmUuIHZhbGlkIGZvciBpbmRleGluZyBzcmMKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIC8vIFRPRE8gU0FGRVRZOiBXaGF0IGFib3V0IGJpZy1lbmRpYW4gc3lzdGVtcz8KLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCArPSBtYXNrX2ZpcnN0LnRyYWlsaW5n X3plcm9zKCkgYXMgdXNpemU7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7 Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbWFza19zZWNvbmQgPSBtYXNr X2FzY2lpKHNlY29uZCk7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZl dHk6IG9uIGxpdHRsZSBlbmRpYW4gc3lzdGVtcyB0aGlzIHdpbGwgYmUgdGhlIG51bWJlciBvZiBh c2NpaSBieXRlcwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYmVmb3JlIHRo ZSBmaXJzdCBub24tYXNjaWksIGkuZS4gdmFsaWQgZm9yIGluZGV4aW5nIHNyYwotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IFNJTURfU1RSSURFX1NJWkUgKyBtYXNr X3NlY29uZC50cmFpbGluZ196ZXJvcygpIGFzIHVzaXplOwotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogV2Uga25v dyB0aGlzIGlzIG5vbi1BU0NJSSwgYW5kIGNhbiB1cGhvbGQgdGhlIHNhZmV0eS11c2FibGUgaW52 YXJpYW50IGhlcmUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5vbl9hc2NpaSA9 IHVuc2FmZSB7ICpzcmMuYWRkKG9mZnNldCkgfTsKLSsKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgcmV0dXJuIFNvbWUoKG5vbl9hc2NpaSwgb2Zmc2V0KSk7Ci0gICAgICAgICAgICAgICAg ICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCArPSBTSU1EX1NUUklE RV9TSVpFICogMjsKLSsgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IFRoaXMgaXMg YG9mZnNldCA+IGxlbiAtIDIgKiBTSU1EX1NUUklERV9TSVpFYCB3aGljaCBtZWFucyB3ZSBhbHdh eXMgaGF2ZSBhdCBsZWFzdCBgMiAqIFNJTURfU1RSSURFX1NJWkVgIGVsZW1lbnRzIHRvIG11bmNo IG5leHQgdGltZS4KLSAgICAgICAgICAgICAgICAgICAgICAgICBpZiBvZmZzZXQgPiBsZW5fbWlu dXNfc3RyaWRlX3RpbWVzX3R3byB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFr OwotICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIH0KLSsg ICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogaWYgdGhpcyBjaGVjayBzdWNjZWVkcyB3ZSdy ZSB2YWxpZCBmb3IgcmVhZGluZyBhdCBsZWFzdCBgU0lNRF9TVFJJREVfU0laRWAKLSAgICAgICAg ICAgICAgICAgICAgIGlmIG9mZnNldCArIFNJTURfU1RSSURFX1NJWkUgPD0gbGVuIHsKLSsgICAg ICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IFdlIHdlcmUgdmFsaWQgZm9yIHRoaXMgcmVh ZCwgYW5kIHdlcmUgYWxpZ25lZC4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHNpbWQg PSB1bnNhZmUgeyBsb2FkMTZfYWxpZ25lZChzcmMuYWRkKG9mZnNldCkpIH07Ci0rICAgICAgICAg ICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBtYXNrX2FzY2lpIHByb2R1Y2VzIGEgbWFzayBvZiBh bGwgdGhlIGhpZ2ggYml0cy4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG1hc2sgPSBt YXNrX2FzY2lpKHNpbWQpOwotICAgICAgICAgICAgICAgICAgICAgICAgIGlmIG1hc2sgIT0gMCB7 Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogb24gbGl0dGxlIGVuZGlh biBzeXN0ZW1zIHRoaXMgd2lsbCBiZSB0aGUgbnVtYmVyIG9mIGFzY2lpIGJ5dGVzCi0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgIC8vIGJlZm9yZSB0aGUgZmlyc3Qgbm9uLWFzY2lpLCBpLmUu IHZhbGlkIGZvciBpbmRleGluZyBzcmMKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zm c2V0ICs9IG1hc2sudHJhaWxpbmdfemVyb3MoKSBhcyB1c2l6ZTsKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgbGV0IG5vbl9hc2NpaSA9IHVuc2FmZSB7ICpzcmMuYWRkKG9mZnNldCkgfTsK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBXZSBrbm93IHRoaXMgaXMg bm9uLUFTQ0lJLCBhbmQgY2FuIHVwaG9sZCB0aGUgc2FmZXR5LXVzYWJsZSBpbnZhcmlhbnQgaGVy ZQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gU29tZSgobm9uX2FzY2lpLCBv ZmZzZXQpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAg ICAgICAgb2Zmc2V0ICs9IFNJTURfU1RSSURFX1NJWkU7Ci0gICAgICAgICAgICAgICAgICAgICB9 Ci0gICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0rICAgICAgICAgICAgICAgICAgICAvLyBTYWZl dHk6IHRoaXMgaXMgdGhlIHVuYWxpZ25lZCBicmFuY2gKLSAgICAgICAgICAgICAgICAgICAgIC8v IEF0IG1vc3QgdHdvIGl0ZXJhdGlvbnMsIHNvIHVucm9sbAotKyAgICAgICAgICAgICAgICAgICAg Ly8gU2FmZXR5OiBpZiB0aGlzIGNoZWNrIHN1Y2NlZWRzIHdlJ3JlIHZhbGlkIGZvciByZWFkaW5n IGF0IGxlYXN0IGBTSU1EX1NUUklERV9TSVpFYAotICAgICAgICAgICAgICAgICAgICAgaWYgb2Zm c2V0ICsgU0lNRF9TVFJJREVfU0laRSA8PSBsZW4gewotKyAgICAgICAgICAgICAgICAgICAgICAg IC8vIFNhZmV0eTogV2UncmUgdmFsaWQgZm9yIHRoaXMgcmVhZCBidXQgbXVzdCB1c2UgYW4gdW5h bGlnbmVkIHJlYWQKLSAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgc2ltZCA9IHVuc2FmZSB7 IGxvYWQxNl91bmFsaWduZWQoc3JjLmFkZChvZmZzZXQpKSB9OwotICAgICAgICAgICAgICAgICAg ICAgICAgIGxldCBtYXNrID0gbWFza19hc2NpaShzaW1kKTsKLSAgICAgICAgICAgICAgICAgICAg ICAgICBpZiBtYXNrICE9IDAgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQg Kz0gbWFzay50cmFpbGluZ196ZXJvcygpIGFzIHVzaXplOwotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBsZXQgbm9uX2FzY2lpID0gdW5zYWZlIHsgKnNyYy5hZGQob2Zmc2V0KSB9OwotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHktdXNhYmxlIGludmFyaWFudCB1cGhl bGQgaGVyZSAoc2FtZSBhcyBhYm92ZSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0 dXJuIFNvbWUoKG5vbl9hc2NpaSwgb2Zmc2V0KSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAg fQotICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCArPSBTSU1EX1NUUklERV9TSVpFOwot KyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogaWYgdGhpcyBjaGVjayBzdWNjZWVk cyB3ZSdyZSB2YWxpZCBmb3IgcmVhZGluZyBhdCBsZWFzdCBgU0lNRF9TVFJJREVfU0laRWAKLSAg ICAgICAgICAgICAgICAgICAgICAgICBpZiBvZmZzZXQgKyBTSU1EX1NUUklERV9TSVpFIDw9IGxl biB7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogV2UncmUgdmFsaWQg Zm9yIHRoaXMgcmVhZCBidXQgbXVzdCB1c2UgYW4gdW5hbGlnbmVkIHJlYWQKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGxldCBzaW1kID0gdW5zYWZlIHsgbG9hZDE2X3VuYWxpZ25lZChz cmMuYWRkKG9mZnNldCkpIH07Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbWFz ayA9IG1hc2tfYXNjaWkoc2ltZCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIG1h c2sgIT0gMCB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQgKz0gbWFz ay50cmFpbGluZ196ZXJvcygpIGFzIHVzaXplOwotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgbGV0IG5vbl9hc2NpaSA9IHVuc2FmZSB7ICpzcmMuYWRkKG9mZnNldCkgfTsKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eS11c2FibGUgaW52YXJpYW50IHVw aGVsZCBoZXJlIChzYW1lIGFzIGFib3ZlKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgcmV0dXJuIFNvbWUoKG5vbl9hc2NpaSwgb2Zmc2V0KSk7Ci0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IFNJTURf U1RSSURFX1NJWkU7Ci1AQCAtMTMzMSw4ICsxNjY4LDEwIEBACi0gICAgICAgICAgICAgICAgIH0K LSAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgd2hpbGUgb2Zmc2V0IDwgbGVuIHsKLSsgICAg ICAgICAgICAgICAgLy8gU2FmZXR5OiByZWxpZXMgc3RyYWlnaHRmb3J3YXJkbHkgb24gdGhlIGBs ZW5gIGludmFyaWFudAotICAgICAgICAgICAgICAgICBsZXQgY29kZV91bml0ID0gdW5zYWZlIHsg KihzcmMuYWRkKG9mZnNldCkpIH07Ci0gICAgICAgICAgICAgICAgIGlmIGNvZGVfdW5pdCA+IDEy NyB7Ci0rICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHktdXNhYmxlIGludmFyaWFudCB1cGhl bGQgaGVyZQotICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFNvbWUoKGNvZGVfdW5pdCwgb2Zm c2V0KSk7Ci0gICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IDE7 Ci1AQCAtMTM0MCwzMSArMTY3OSw0MCBAQAotICAgICAgICAgICAgIE5vbmUKLSAgICAgICAgIH0K LSAgICAgfSBlbHNlIHsKLSsgICAgICAgIC8vIFNhZmV0eS11c2FibGUgaW52YXJpYW50OiByZXR1 cm5zIGJ5dGUgaW5kZXggb2YgZmlyc3Qgbm9uLWFzY2lpIGJ5dGUKLSAgICAgICAgICNbaW5saW5l KGFsd2F5cyldCi0gICAgICAgICBmbiBmaW5kX25vbl9hc2NpaSh3b3JkOiB1c2l6ZSwgc2Vjb25k X3dvcmQ6IHVzaXplKSAtPiBPcHRpb248dXNpemU+IHsKLSAgICAgICAgICAgICBsZXQgd29yZF9t YXNrZWQgPSB3b3JkICYgQVNDSUlfTUFTSzsKLSAgICAgICAgICAgICBsZXQgc2Vjb25kX21hc2tl ZCA9IHNlY29uZF93b3JkICYgQVNDSUlfTUFTSzsKLSAgICAgICAgICAgICBpZiAod29yZF9tYXNr ZWQgfCBzZWNvbmRfbWFza2VkKSA9PSAwIHsKLSsgICAgICAgICAgICAgICAgLy8gQm90aCBhcmUg YXNjaWksIGludmFyaWFudCB1cGhlbGQKLSAgICAgICAgICAgICAgICAgcmV0dXJuIE5vbmU7Ci0g ICAgICAgICAgICAgfQotICAgICAgICAgICAgIGlmIHdvcmRfbWFza2VkICE9IDAgewotICAgICAg ICAgICAgICAgICBsZXQgemVyb3MgPSBjb3VudF96ZXJvcyh3b3JkX21hc2tlZCk7Ci0tICAgICAg ICAgICAgICAgIC8vIGB6ZXJvc2Agbm93IGNvbnRhaW5zIDcgKGZvciB0aGUgc2V2ZW4gYml0cyBv ZiBub24tQVNDSUkpCi0rICAgICAgICAgICAgICAgIC8vIGB6ZXJvc2Agbm93IGNvbnRhaW5zIDAg dG8gNyAoZm9yIHRoZSBzZXZlbiBiaXRzIG9mIG1hc2tlZCBBU0NJSSBpbiBsaXR0bGUgZW5kaWFu LAotKyAgICAgICAgICAgICAgICAvLyBvciB1cCB0byA3IGJpdHMgb2Ygbm9uLUFTQ0lJIGluIGJp ZyBlbmRpYW4gaWYgdGhlIGZpcnN0IGJ5dGUgaXMgbm9uLUFTQ0lJKQotICAgICAgICAgICAgICAg ICAvLyBwbHVzIDggdGltZXMgdGhlIG51bWJlciBvZiBBU0NJSSBpbiB0ZXh0IG9yZGVyIGJlZm9y ZSB0aGUKLSAgICAgICAgICAgICAgICAgLy8gbm9uLUFTQ0lJIGJ5dGUgaW4gdGhlIGxpdHRsZS1l bmRpYW4gY2FzZSBvciA4IHRpbWVzIHRoZSBudW1iZXIgb2YgQVNDSUkgaW4KLSAgICAgICAgICAg ICAgICAgLy8gdGV4dCBvcmRlciBiZWZvcmUgdGhlIG5vbi1BU0NJSSBieXRlIGluIHRoZSBiaWct ZW5kaWFuIGNhc2UuCi0gICAgICAgICAgICAgICAgIGxldCBudW1fYXNjaWkgPSAoemVyb3MgPj4g MykgYXMgdXNpemU7Ci0rICAgICAgICAgICAgICAgIC8vIFNhZmV0eS11c2FibGUgaW52YXJpYW50 IHVwaGVsZCBoZXJlCi0gICAgICAgICAgICAgICAgIHJldHVybiBTb21lKG51bV9hc2NpaSk7Ci0g ICAgICAgICAgICAgfQotICAgICAgICAgICAgIGxldCB6ZXJvcyA9IGNvdW50X3plcm9zKHNlY29u ZF9tYXNrZWQpOwotLSAgICAgICAgICAgIC8vIGB6ZXJvc2Agbm93IGNvbnRhaW5zIDcgKGZvciB0 aGUgc2V2ZW4gYml0cyBvZiBub24tQVNDSUkpCi0rICAgICAgICAgICAgLy8gYHplcm9zYCBub3cg Y29udGFpbnMgMCB0byA3IChmb3IgdGhlIHNldmVuIGJpdHMgb2YgbWFza2VkIEFTQ0lJIGluIGxp dHRsZSBlbmRpYW4sCi0rICAgICAgICAgICAgLy8gb3IgdXAgdG8gNyBiaXRzIG9mIG5vbi1BU0NJ SSBpbiBiaWcgZW5kaWFuIGlmIHRoZSBmaXJzdCBieXRlIGlzIG5vbi1BU0NJSSkKLSAgICAgICAg ICAgICAvLyBwbHVzIDggdGltZXMgdGhlIG51bWJlciBvZiBBU0NJSSBpbiB0ZXh0IG9yZGVyIGJl Zm9yZSB0aGUKLSAgICAgICAgICAgICAvLyBub24tQVNDSUkgYnl0ZSBpbiB0aGUgbGl0dGxlLWVu ZGlhbiBjYXNlIG9yIDggdGltZXMgdGhlIG51bWJlciBvZiBBU0NJSSBpbgotICAgICAgICAgICAg IC8vIHRleHQgb3JkZXIgYmVmb3JlIHRoZSBub24tQVNDSUkgYnl0ZSBpbiB0aGUgYmlnLWVuZGlh biBjYXNlLgotICAgICAgICAgICAgIGxldCBudW1fYXNjaWkgPSAoemVyb3MgPj4gMykgYXMgdXNp emU7Ci0rICAgICAgICAgICAgLy8gU2FmZXR5LXVzYWJsZSBpbnZhcmlhbnQgdXBoZWxkIGhlcmUK LSAgICAgICAgICAgICBTb21lKEFMVV9BTElHTk1FTlQgKyBudW1fYXNjaWkpCi0gICAgICAgICB9 Ci0gCi0rICAgICAgICAvLy8gU2FmZXR5OiBgc3JjYCBtdXN0IGJlIHZhbGlkIGZvciB0aGUgcmVh ZHMgb2YgdHdvIGB1c2l6ZWBzCi0rICAgICAgICAvLy8KLSsgICAgICAgIC8vLyBTYWZldHktdXNh YmxlIGludmFyaWFudDogd2lsbCByZXR1cm4gYnl0ZSBpbmRleCBvZiBmaXJzdCBub24tYXNjaWkg Ynl0ZQotICAgICAgICAgI1tpbmxpbmUoYWx3YXlzKV0KLSAgICAgICAgIHVuc2FmZSBmbiB2YWxp ZGF0ZV9hc2NpaV9zdHJpZGUoc3JjOiAqY29uc3QgdXNpemUpIC0+IE9wdGlvbjx1c2l6ZT4gewot ICAgICAgICAgICAgIGxldCB3b3JkID0gKnNyYzsKLUBAIC0xMzcyLDYgKzE3MjAsOCBAQAotICAg ICAgICAgICAgIGZpbmRfbm9uX2FzY2lpKHdvcmQsIHNlY29uZF93b3JkKQotICAgICAgICAgfQot IAotKyAgICAgICAgLy8vIFNhZmV0eS11c2FibGUgaW52YXJpYW50OiB3aWxsIHJldHVybiBTb21l KCkgd2hlbiBpdCBlbmNvdW50ZXJzIG5vbi1BU0NJSSwgd2l0aCB0aGUgZmlyc3QgZWxlbWVudCBp biB0aGUgU29tZSBiZWluZwotKyAgICAgICAgLy8vIGd1YXJhbnRlZWQgdG8gYmUgbm9uLUFTQ0lJ ICg+IDEyNyksIGFuZCB0aGUgc2Vjb25kIGJlaW5nIHRoZSBvZmZzZXQgd2hlcmUgaXQgaXMgZm91 bmQKLSAgICAgICAgICNbY2ZnX2F0dHIoZmVhdHVyZSA9ICJjYXJnby1jbGlwcHkiLCBhbGxvdyhj YXN0X3B0cl9hbGlnbm1lbnQpKV0KLSAgICAgICAgICNbaW5saW5lKGFsd2F5cyldCi0gICAgICAg ICBwdWIgZm4gdmFsaWRhdGVfYXNjaWkoc2xpY2U6ICZbdThdKSAtPiBPcHRpb248KHU4LCB1c2l6 ZSk+IHsKLUBAIC0xMzc5LDIzICsxNzI5LDMwIEBACi0gICAgICAgICAgICAgbGV0IGxlbiA9IHNs aWNlLmxlbigpOwotICAgICAgICAgICAgIGxldCBtdXQgb2Zmc2V0ID0gMHVzaXplOwotICAgICAg ICAgICAgIGxldCBtdXQgdW50aWxfYWxpZ25tZW50ID0gKEFMVV9BTElHTk1FTlQgLSAoKHNyYyBh cyB1c2l6ZSkgJiBBTFVfQUxJR05NRU5UX01BU0spKSAmIEFMVV9BTElHTk1FTlRfTUFTSzsKLSsg ICAgICAgICAgICAvLyBTYWZldHk6IElmIHRoaXMgY2hlY2sgZmFpbHMgd2UncmUgdmFsaWQgdG8g cmVhZCBgdW50aWxfYWxpZ25tZW50ICsgQUxVX1NUUklERV9TSVpFYCBlbGVtZW50cwotICAgICAg ICAgICAgIGlmIHVudGlsX2FsaWdubWVudCArIEFMVV9TVFJJREVfU0laRSA8PSBsZW4gewotICAg ICAgICAgICAgICAgICB3aGlsZSB1bnRpbF9hbGlnbm1lbnQgIT0gMCB7Ci0gICAgICAgICAgICAg ICAgICAgICBsZXQgY29kZV91bml0ID0gc2xpY2Vbb2Zmc2V0XTsKLSAgICAgICAgICAgICAgICAg ICAgIGlmIGNvZGVfdW5pdCA+IDEyNyB7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2Fm ZXR5LXVzYWJsZSBpbnZhaXJhbnQgdXBoZWxkIGhlcmUKLSAgICAgICAgICAgICAgICAgICAgICAg ICByZXR1cm4gU29tZSgoY29kZV91bml0LCBvZmZzZXQpKTsKLSAgICAgICAgICAgICAgICAgICAg IH0KLSAgICAgICAgICAgICAgICAgICAgIG9mZnNldCArPSAxOwotICAgICAgICAgICAgICAgICAg ICAgdW50aWxfYWxpZ25tZW50IC09IDE7Ci0gICAgICAgICAgICAgICAgIH0KLSsgICAgICAgICAg ICAgICAgLy8gU2FmZXR5OiBBdCB0aGlzIHBvaW50IHdlIGhhdmUgcmVhZCB1bnRpbF9hbGlnbm1l bnQgZWxlbWVudHMgYW5kCi0rICAgICAgICAgICAgICAgIC8vIGFyZSB2YWxpZCBmb3IgYEFMVV9T VFJJREVfU0laRWAgbW9yZS4KLSAgICAgICAgICAgICAgICAgbGV0IGxlbl9taW51c19zdHJpZGUg PSBsZW4gLSBBTFVfU1RSSURFX1NJWkU7Ci0gICAgICAgICAgICAgICAgIGxvb3AgewotKyAgICAg ICAgICAgICAgICAgICAgLy8gU2FmZXR5OiB3ZSB3ZXJlIHZhbGlkIGZvciB0aGlzIHJlYWQKLSAg ICAgICAgICAgICAgICAgICAgIGxldCBwdHIgPSB1bnNhZmUgeyBzcmMuYWRkKG9mZnNldCkgYXMg KmNvbnN0IHVzaXplIH07Ci0gICAgICAgICAgICAgICAgICAgICBpZiBsZXQgU29tZShudW1fYXNj aWkpID0gdW5zYWZlIHsgdmFsaWRhdGVfYXNjaWlfc3RyaWRlKHB0cikgfSB7Ci0gICAgICAgICAg ICAgICAgICAgICAgICAgb2Zmc2V0ICs9IG51bV9hc2NpaTsKLSsgICAgICAgICAgICAgICAgICAg ICAgICAvLyBTYWZldHktdXNhYmxlIGludmFpcmFudCB1cGhlbGQgaGVyZSB1c2luZyB0aGUgaW52 YXJpYW50IGZyb20gdmFsaWRhdGVfYXNjaWlfc3RyaWRlKCkKLSAgICAgICAgICAgICAgICAgICAg ICAgICByZXR1cm4gU29tZSgodW5zYWZlIHsgKihzcmMuYWRkKG9mZnNldCkpIH0sIG9mZnNldCkp OwotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9 IEFMVV9TVFJJREVfU0laRTsKLSsgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogVGhpcyBp cyBgb2Zmc2V0ID4gQUxVX1NUUklERV9TSVpFYCB3aGljaCBtZWFucyB3ZSBhbHdheXMgaGF2ZSBh dCBsZWFzdCBgMiAqIEFMVV9TVFJJREVfU0laRWAgZWxlbWVudHMgdG8gbXVuY2ggbmV4dCB0aW1l LgotICAgICAgICAgICAgICAgICAgICAgaWYgb2Zmc2V0ID4gbGVuX21pbnVzX3N0cmlkZSB7Ci0g ICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgICB9Ci1A QCAtMTQwNCw2ICsxNzYxLDcgQEAKLSAgICAgICAgICAgICB3aGlsZSBvZmZzZXQgPCBsZW4gewot ICAgICAgICAgICAgICAgICBsZXQgY29kZV91bml0ID0gc2xpY2Vbb2Zmc2V0XTsKLSAgICAgICAg ICAgICAgICAgaWYgY29kZV91bml0ID4gMTI3IHsKLSsgICAgICAgICAgICAgICAgICAgIC8vIFNh ZmV0eS11c2FibGUgaW52YWlyYW50IHVwaGVsZCBoZXJlCi0gICAgICAgICAgICAgICAgICAgICBy ZXR1cm4gU29tZSgoY29kZV91bml0LCBvZmZzZXQpKTsKLSAgICAgICAgICAgICAgICAgfQotICAg ICAgICAgICAgICAgICBvZmZzZXQgKz0gMTsKLUBAIC0xNDI4LDM2ICsxNzg2LDQ3IEBACi0gCi0g ICAgICAgICBwdWIgY29uc3QgQUxVX0FMSUdOTUVOVF9NQVNLOiB1c2l6ZSA9IDM7Ci0gICAgIH0g ZWxzZSB7Ci0rICAgICAgICAvLyBTYWZldHk6IHNyYyBwb2ludHMgdG8gdHdvIHZhbGlkIGB1c2l6 ZWBzLCBkc3QgcG9pbnRzIHRvIGZvdXIgdmFsaWQgYHVzaXplYHMKLSAgICAgICAgICNbaW5saW5l KGFsd2F5cyldCi0gICAgICAgICB1bnNhZmUgZm4gdW5wYWNrX2xhdGluMV9zdHJpZGVfYWx1KHNy YzogKmNvbnN0IHVzaXplLCBkc3Q6ICptdXQgdXNpemUpIHsKLSsgICAgICAgICAgICAvLyBTYWZl dHk6IHNyYyBzYWZldHkgaW52YXJpYW50IHVzZWQgaGVyZQotICAgICAgICAgICAgIGxldCB3b3Jk ID0gKnNyYzsKLSAgICAgICAgICAgICBsZXQgc2Vjb25kX3dvcmQgPSAqKHNyYy5hZGQoMSkpOwot KyAgICAgICAgICAgIC8vIFNhZmV0eTogZHN0IHNhZmV0eSBpbnZhcmlhbnQgcGFzc2VkIGRvd24K LSAgICAgICAgICAgICB1bnBhY2tfYWx1KHdvcmQsIHNlY29uZF93b3JkLCBkc3QpOwotICAgICAg ICAgfQotIAotKyAgICAgICAgLy8gU2FmZXR5OiBzcmMgcG9pbnRzIHRvIGZvdXIgdmFsaWQgYHVz aXplYHMsIGRzdCBwb2ludHMgdG8gdHdvIHZhbGlkIGB1c2l6ZWBzCi0gICAgICAgICAjW2lubGlu ZShhbHdheXMpXQotICAgICAgICAgdW5zYWZlIGZuIHBhY2tfbGF0aW4xX3N0cmlkZV9hbHUoc3Jj OiAqY29uc3QgdXNpemUsIGRzdDogKm11dCB1c2l6ZSkgewotKyAgICAgICAgICAgIC8vIFNhZmV0 eTogc3JjIHNhZmV0eSBpbnZhcmlhbnQgdXNlZCBoZXJlCi0gICAgICAgICAgICAgbGV0IGZpcnN0 ID0gKnNyYzsKLSAgICAgICAgICAgICBsZXQgc2Vjb25kID0gKihzcmMuYWRkKDEpKTsKLSAgICAg ICAgICAgICBsZXQgdGhpcmQgPSAqKHNyYy5hZGQoMikpOwotICAgICAgICAgICAgIGxldCBmb3Vy dGggPSAqKHNyYy5hZGQoMykpOwotKyAgICAgICAgICAgIC8vIFNhZmV0eTogZHN0IHNhZmV0eSBp bnZhcmlhbnQgcGFzc2VkIGRvd24KLSAgICAgICAgICAgICBwYWNrX2FsdShmaXJzdCwgc2Vjb25k LCB0aGlyZCwgZm91cnRoLCBkc3QpOwotICAgICAgICAgfQotIAotKyAgICAgICAgLy8gU2FmZXR5 OiBzcmMgcG9pbnRzIHRvIHR3byB2YWxpZCBgdXNpemVgcywgZHN0IHBvaW50cyB0byBmb3VyIHZh bGlkIGB1c2l6ZWBzCi0gICAgICAgICAjW2lubGluZShhbHdheXMpXQotICAgICAgICAgdW5zYWZl IGZuIGFzY2lpX3RvX2Jhc2ljX2xhdGluX3N0cmlkZV9hbHUoc3JjOiAqY29uc3QgdXNpemUsIGRz dDogKm11dCB1c2l6ZSkgLT4gYm9vbCB7Ci0rICAgICAgICAgICAgLy8gU2FmZXR5OiBzcmMgc2Fm ZXR5IGludmFyaWFudCB1c2VkIGhlcmUKLSAgICAgICAgICAgICBsZXQgd29yZCA9ICpzcmM7Ci0g ICAgICAgICAgICAgbGV0IHNlY29uZF93b3JkID0gKihzcmMuYWRkKDEpKTsKLSAgICAgICAgICAg ICAvLyBDaGVjayBpZiB0aGUgd29yZHMgY29udGFpbnMgbm9uLUFTQ0lJCi0gICAgICAgICAgICAg aWYgKHdvcmQgJiBBU0NJSV9NQVNLKSB8IChzZWNvbmRfd29yZCAmIEFTQ0lJX01BU0spICE9IDAg ewotICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICAgfQotKyAgICAg ICAgICAgIC8vIFNhZmV0eTogZHN0IHNhZmV0eSBpbnZhcmlhbnQgcGFzc2VkIGRvd24KLSAgICAg ICAgICAgICB1bnBhY2tfYWx1KHdvcmQsIHNlY29uZF93b3JkLCBkc3QpOwotICAgICAgICAgICAg IHRydWUKLSAgICAgICAgIH0KLSAKLSsgICAgICAgIC8vIFNhZmV0eTogc3JjIHBvaW50cyBmb3Vy IHZhbGlkIGB1c2l6ZWBzLCBkc3QgcG9pbnRzIHRvIHR3byB2YWxpZCBgdXNpemVgcwotICAgICAg ICAgI1tpbmxpbmUoYWx3YXlzKV0KLSAgICAgICAgIHVuc2FmZSBmbiBiYXNpY19sYXRpbl90b19h c2NpaV9zdHJpZGVfYWx1KHNyYzogKmNvbnN0IHVzaXplLCBkc3Q6ICptdXQgdXNpemUpIC0+IGJv b2wgewotKyAgICAgICAgICAgIC8vIFNhZmV0eTogc3JjIHNhZmV0eSBpbnZhcmlhbnQgdXNlZCBo ZXJlCi0gICAgICAgICAgICAgbGV0IGZpcnN0ID0gKnNyYzsKLSAgICAgICAgICAgICBsZXQgc2Vj b25kID0gKihzcmMuYWRkKDEpKTsKLSAgICAgICAgICAgICBsZXQgdGhpcmQgPSAqKHNyYy5hZGQo MikpOwotQEAgLTE0NjUsMTYgKzE4MzQsMjIgQEAKLSAgICAgICAgICAgICBpZiAoZmlyc3QgJiBC QVNJQ19MQVRJTl9NQVNLKSB8IChzZWNvbmQgJiBCQVNJQ19MQVRJTl9NQVNLKSB8ICh0aGlyZCAm IEJBU0lDX0xBVElOX01BU0spIHwgKGZvdXJ0aCAmIEJBU0lDX0xBVElOX01BU0spICE9IDAgewot ICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICAgfQotKyAgICAgICAg ICAgIC8vIFNhZmV0eTogZHN0IHNhZmV0eSBpbnZhcmlhbnQgcGFzc2VkIGRvd24KLSAgICAgICAg ICAgICBwYWNrX2FsdShmaXJzdCwgc2Vjb25kLCB0aGlyZCwgZm91cnRoLCBkc3QpOwotICAgICAg ICAgICAgIHRydWUKLSAgICAgICAgIH0KLSAKLSsgICAgICAgIC8vIFNhZmV0eTogc3JjLCBkc3Qg Ym90aCBwb2ludCB0byB0d28gdmFsaWQgYHVzaXplYHMgZWFjaAotKyAgICAgICAgLy8gU2FmZXR5 LXVzYWJsZSBpbnZhcmlhbnQ6IFdpbGwgcmV0dXJuIGJ5dGUgaW5kZXggb2YgZmlyc3Qgbm9uLWFz Y2lpIGJ5dGUuCi0gICAgICAgICAjW2lubGluZShhbHdheXMpXQotICAgICAgICAgdW5zYWZlIGZu IGFzY2lpX3RvX2FzY2lpX3N0cmlkZShzcmM6ICpjb25zdCB1c2l6ZSwgZHN0OiAqbXV0IHVzaXpl KSAtPiBPcHRpb248dXNpemU+IHsKLSsgICAgICAgICAgICAvLyBTYWZldHk6IHNyYyBzYWZldHkg aW52YXJpYW50IHVzZWQgaGVyZQotICAgICAgICAgICAgIGxldCB3b3JkID0gKnNyYzsKLSAgICAg ICAgICAgICBsZXQgc2Vjb25kX3dvcmQgPSAqKHNyYy5hZGQoMSkpOwotKyAgICAgICAgICAgIC8v IFNhZmV0eTogc3JjIHNhZmV0eSBpbnZhcmlhbnQgdXNlZCBoZXJlCi0gICAgICAgICAgICAgKmRz dCA9IHdvcmQ7Ci0gICAgICAgICAgICAgKihkc3QuYWRkKDEpKSA9IHNlY29uZF93b3JkOwotKyAg ICAgICAgICAgIC8vIFJlbGllcyBvbiBzYWZldHktdXNhYmxlIGludmFyaWFudCBoZXJlCi0gICAg ICAgICAgICAgZmluZF9ub25fYXNjaWkod29yZCwgc2Vjb25kX3dvcmQpCi0gICAgICAgICB9Ci0g Ci1AQCAtMTQ4Miw2ICsxODU3LDcgQEAKLSAgICAgICAgIGJhc2ljX2xhdGluX2FsdSEoYmFzaWNf bGF0aW5fdG9fYXNjaWksIHUxNiwgdTgsIGJhc2ljX2xhdGluX3RvX2FzY2lpX3N0cmlkZV9hbHUp OwotICAgICAgICAgbGF0aW4xX2FsdSEodW5wYWNrX2xhdGluMSwgdTgsIHUxNiwgdW5wYWNrX2xh dGluMV9zdHJpZGVfYWx1KTsKLSAgICAgICAgIGxhdGluMV9hbHUhKHBhY2tfbGF0aW4xLCB1MTYs IHU4LCBwYWNrX2xhdGluMV9zdHJpZGVfYWx1KTsKLSsgICAgICAgIC8vIFNhZmV0eSBpbnZhcmlh bnQgdXBoZWxkOiBhc2NpaV90b19hc2NpaV9zdHJpZGUgd2lsbCByZXR1cm4gYnl0ZSBpbmRleCBv ZiBmaXJzdCBub24tYXNjaWkgaWYgZm91bmQKLSAgICAgICAgIGFzY2lpX2FsdSEoYXNjaWlfdG9f YXNjaWksIHU4LCB1OCwgYXNjaWlfdG9fYXNjaWlfc3RyaWRlKTsKLSAgICAgfQotIH0KLWRpZmYg LU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy9oYW5kbGVzLnJzIGIvdGhp cmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvaGFuZGxlcy5ycwotLS0tIGEvdGhpcmRfcGFy dHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvaGFuZGxlcy5ycwkyMDI1LTA0LTIwIDE5OjI4OjEyLjAw MDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvaGFu ZGxlcy5ycwkyMDI1LTA5LTE3IDE3OjQxOjIxLjEzOTgwNDk2OSArMDMwMAotQEAgLTM0LDcgKzM0 LDcgQEAKLSAgICAgICAgIGFsbCh0YXJnZXRfZW5kaWFuID0gImxpdHRsZSIsIHRhcmdldF9mZWF0 dXJlID0gIm5lb24iKQotICAgICApCi0gKSldCi0tdXNlIHBhY2tlZF9zaW1kOjp1MTZ4ODsKLSt1 c2UgY29yZTo6c2ltZDo6dTE2eDg7Ci0gCi0gdXNlIHN1cGVyOjpEZWNvZGVyUmVzdWx0OwotIHVz ZSBzdXBlcjo6RW5jb2RlclJlc3VsdDsKLUBAIC05MCwxOSArOTAsMjMgQEAKLSAKLSAjW2Rlcml2 ZShEZWJ1ZywgQ29weSwgQ2xvbmUpXQotIHN0cnVjdCBVbmFsaWduZWRVMTZTbGljZSB7Ci0rICAg IC8vIFNhZmV0eSBpbnZhcmlhbnQ6IHB0ciBtdXN0IGJlIHZhbGlkIGZvciByZWFkaW5nIDIqbGVu IGJ5dGVzCi0gICAgIHB0cjogKmNvbnN0IHU4LAotICAgICBsZW46IHVzaXplLAotIH0KLSAKLSBp bXBsIFVuYWxpZ25lZFUxNlNsaWNlIHsKLSsgICAgLy8vIFNhZmV0eTogcHRyIG11c3QgYmUgdmFs aWQgZm9yIHJlYWRpbmcgMipsZW4gYnl0ZXMKLSAgICAgI1tpbmxpbmUoYWx3YXlzKV0KLSAgICAg cHViIHVuc2FmZSBmbiBuZXcocHRyOiAqY29uc3QgdTgsIGxlbjogdXNpemUpIC0+IFVuYWxpZ25l ZFUxNlNsaWNlIHsKLSsgICAgICAgIC8vIFNhZmV0eTogZmllbGQgaW52YXJpYW50IHBhc3NlZCB1 cCB0byBjYWxsZXIgaGVyZQotICAgICAgICAgVW5hbGlnbmVkVTE2U2xpY2UgeyBwdHIsIGxlbiB9 Ci0gICAgIH0KLSAKLSAgICAgI1tpbmxpbmUoYWx3YXlzKV0KLSAgICAgcHViIGZuIHRyaW1fbGFz dCgmbXV0IHNlbGYpIHsKLSAgICAgICAgIGFzc2VydCEoc2VsZi5sZW4gPiAwKTsKLSsgICAgICAg IC8vIFNhZmV0eTogaW52YXJpYW50IHVwaGVsZCBoZXJlOiBhIHNsaWNlIGlzIHN0aWxsIHZhbGlk IHdpdGggYSBzaG9ydGVyIGxlbgotICAgICAgICAgc2VsZi5sZW4gLT0gMTsKLSAgICAgfQotIAot QEAgLTExMyw3ICsxMTcsOSBAQAotICAgICAgICAgYXNzZXJ0IShpIDwgc2VsZi5sZW4pOwotICAg ICAgICAgdW5zYWZlIHsKLSAgICAgICAgICAgICBsZXQgbXV0IHU6IE1heWJlVW5pbml0PHUxNj4g PSBNYXliZVVuaW5pdDo6dW5pbml0KCk7Ci0rICAgICAgICAgICAgLy8gU2FmZXR5OiBpIGlzIGF0 IG1vc3QgbGVuIC0gMSwgd2hpY2ggd29ya3MgaGVyZQotICAgICAgICAgICAgIDo6Y29yZTo6cHRy Ojpjb3B5X25vbm92ZXJsYXBwaW5nKHNlbGYucHRyLmFkZChpICogMiksIHUuYXNfbXV0X3B0cigp IGFzICptdXQgdTgsIDIpOwotKyAgICAgICAgICAgIC8vIFNhZmV0eTogdmFsaWQgcmVhZCBhYm92 ZSBsZXRzIHVzIGRvIHRoaXMKLSAgICAgICAgICAgICB1LmFzc3VtZV9pbml0KCkKLSAgICAgICAg IH0KLSAgICAgfQotQEAgLTEyMSw4ICsxMjcsMTMgQEAKLSAgICAgI1tjZmcoZmVhdHVyZSA9ICJz aW1kLWFjY2VsIildCi0gICAgICNbaW5saW5lKGFsd2F5cyldCi0gICAgIHB1YiBmbiBzaW1kX2F0 KCZzZWxmLCBpOiB1c2l6ZSkgLT4gdTE2eDggewotKyAgICAgICAgLy8gU2FmZXR5OiBpL2xlbiBh cmUgb24gdGhlIHNjYWxlIG9mIHUxNnMsIGVhY2ggb25lIGNvcnJlc3BvbmRzIHRvIDIgdThzCi0g ICAgICAgICBhc3NlcnQhKGkgKyBTSU1EX1NUUklERV9TSVpFIC8gMiA8PSBzZWxmLmxlbik7Ci0g ICAgICAgICBsZXQgYnl0ZV9pbmRleCA9IGkgKiAyOwotKyAgICAgICAgLy8gU2FmZXR5OiBsb2Fk MTZfdW5hbGlnbmVkIG5lZWRzIFNJTURfU1RSSURFX1NJWkU9MTYgdTggZWxlbWVudHMgdG8gcmVh ZCwKLSsgICAgICAgIC8vIG9yIDE2LzIgPSA4IHUxNiBlbGVtZW50cyB0byByZWFkLgotKyAgICAg ICAgLy8gV2UgaGF2ZSBjaGVja2VkIHRoYXQgd2UgaGF2ZSBhdCBsZWFzdCB0aGF0IG1hbnkgYWJv dmUuCi0rCi0gICAgICAgICB1bnNhZmUgeyB0b191MTZfbGFuZXMobG9hZDE2X3VuYWxpZ25lZChz ZWxmLnB0ci5hZGQoYnl0ZV9pbmRleCkpKSB9Ci0gICAgIH0KLSAKLUBAIC0xMzYsNiArMTQ3LDcg QEAKLSAgICAgICAgIC8vIFhYWCB0aGUgcmV0dXJuIHZhbHVlIHNob3VsZCBiZSByZXN0cmljdGVk IG5vdCB0bwotICAgICAgICAgLy8gb3V0bGl2ZSBzZWxmLgotICAgICAgICAgYXNzZXJ0IShmcm9t IDw9IHNlbGYubGVuKTsKLSsgICAgICAgIC8vIFNhZmV0eTogVGhpcyB1cGhvbGRzIHRoZSBzYW1l IGludmFyaWFudDogYGZyb21gIGlzIGluIGJvdW5kcyBhbmQgd2UncmUgcmV0dXJuaW5nIGEgc2hv cnRlciBzbGljZQotICAgICAgICAgdW5zYWZlIHsgVW5hbGlnbmVkVTE2U2xpY2U6Om5ldyhzZWxm LnB0ci5hZGQoZnJvbSAqIDIpLCBzZWxmLmxlbiAtIGZyb20pIH0KLSAgICAgfQotIAotQEAgLTE0 NCw2ICsxNTYsOCBAQAotICAgICBwdWIgZm4gY29weV9ibXBfdG88RTogRW5kaWFuPigmc2VsZiwg b3RoZXI6ICZtdXQgW3UxNl0pIC0+IE9wdGlvbjwodTE2LCB1c2l6ZSk+IHsKLSAgICAgICAgIGFz c2VydCEoc2VsZi5sZW4gPD0gb3RoZXIubGVuKCkpOwotICAgICAgICAgbGV0IG11dCBvZmZzZXQg PSAwOwotKyAgICAgICAgLy8gU2FmZXR5OiBTSU1EX1NUUklERV9TSVpFIGlzIG1lYXN1cmVkIGlu IGJ5dGVzLCB3aGVyZWFzIGxlbiBpcyBpbiB1MTZzLiBXZSBjaGVjayB3ZSBjYW4KLSsgICAgICAg IC8vIG11bmNoIFNJTURfU1RSSURFX1NJWkUgLyAyIHUxNnMgd2hpY2ggbWVhbnMgd2UgY2FuIHdy aXRlIFNJTURfU1RSSURFX1NJWkUgdThzCi0gICAgICAgICBpZiBTSU1EX1NUUklERV9TSVpFIC8g MiA8PSBzZWxmLmxlbiB7Ci0gICAgICAgICAgICAgbGV0IGxlbl9taW51c19zdHJpZGUgPSBzZWxm LmxlbiAtIFNJTURfU1RSSURFX1NJWkUgLyAyOwotICAgICAgICAgICAgIGxvb3AgewotQEAgLTE1 MSw2ICsxNjUsNyBAQAotICAgICAgICAgICAgICAgICBpZiBFOjpPUFBPU0lURV9FTkRJQU4gewot ICAgICAgICAgICAgICAgICAgICAgc2ltZCA9IHNpbWRfYnl0ZV9zd2FwKHNpbWQpOwotICAgICAg ICAgICAgICAgICB9Ci0rICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogd2UgaGF2ZSBlbm91Z2gg c3BhY2Ugb24gdGhlIG90aGVyIHNpZGUgdG8gd3JpdGUgdGhpcwotICAgICAgICAgICAgICAgICB1 bnNhZmUgewotICAgICAgICAgICAgICAgICAgICAgc3RvcmU4X3VuYWxpZ25lZChvdGhlci5hc19t dXRfcHRyKCkuYWRkKG9mZnNldCksIHNpbWQpOwotICAgICAgICAgICAgICAgICB9Ci1AQCAtMTU4 LDYgKzE3Myw3IEBACi0gICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAg ICAgfQotICAgICAgICAgICAgICAgICBvZmZzZXQgKz0gU0lNRF9TVFJJREVfU0laRSAvIDI7Ci0r ICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogVGhpcyBlbnN1cmVzIHdlIHN0aWxsIGhhdmUgc3Bh Y2UgZm9yIHdyaXRpbmcgU0lNRF9TVFJJREVfU0laRSB1OHMKLSAgICAgICAgICAgICAgICAgaWYg b2Zmc2V0ID4gbGVuX21pbnVzX3N0cmlkZSB7Ci0gICAgICAgICAgICAgICAgICAgICBicmVhazsK LSAgICAgICAgICAgICAgICAgfQotQEAgLTIzNiw2ICsyNTIsNyBAQAotICkgLT4gQ29weUFzY2lp UmVzdWx0PHVzaXplLCAodTE2LCB1c2l6ZSk+IHsKLSAgICAgbGV0IGxlbiA9IDo6Y29yZTo6Y21w OjptaW4oc3JjLmxlbigpLCBkc3QubGVuKCkpOwotICAgICBsZXQgbXV0IG9mZnNldCA9IDA7Ci0r ICAgIC8vIFNhZmV0eTogVGhpcyBjaGVjayBlbnN1cmVzIHdlIGFyZSBhYmxlIHRvIHJlYWQvd3Jp dGUgYXQgbGVhc3QgU0lNRF9TVFJJREVfU0laRSBlbGVtZW50cwotICAgICBpZiBTSU1EX1NUUklE RV9TSVpFIDw9IGxlbiB7Ci0gICAgICAgICBsZXQgbGVuX21pbnVzX3N0cmlkZSA9IGxlbiAtIFNJ TURfU1RSSURFX1NJWkU7Ci0gICAgICAgICBsb29wIHsKLUBAIC0yNDksMTAgKzI2NiwxMyBAQAot ICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgbGV0 IHBhY2tlZCA9IHNpbWRfcGFjayhmaXJzdCwgc2Vjb25kKTsKLSsgICAgICAgICAgICAvLyBTYWZl dHk6IFdlIGFyZSBhYmxlIHRvIHdyaXRlIFNJTURfU1RSSURFX1NJWkUgZWxlbWVudHMgaW4gdGhp cyBpdGVyYXRpb24KLSAgICAgICAgICAgICB1bnNhZmUgewotICAgICAgICAgICAgICAgICBzdG9y ZTE2X3VuYWxpZ25lZChkc3QuYXNfbXV0X3B0cigpLmFkZChvZmZzZXQpLCBwYWNrZWQpOwotICAg ICAgICAgICAgIH0KLSAgICAgICAgICAgICBvZmZzZXQgKz0gU0lNRF9TVFJJREVfU0laRTsKLSsg ICAgICAgICAgICAvLyBTYWZldHk6IFRoaXMgaXMgYG9mZnNldCA+IGxlbiAtIFNJTURfU1RSSURF X1NJWkVgLCB3aGljaCBlbnN1cmVzIHRoYXQgd2UgY2FuIHdyaXRlIGF0IGxlYXN0IFNJTURfU1RS SURFX1NJWkUgZWxlbWVudHMKLSsgICAgICAgICAgICAvLyBpbiB0aGUgbmV4dCBpdGVyYXRpb24K LSAgICAgICAgICAgICBpZiBvZmZzZXQgPiBsZW5fbWludXNfc3RyaWRlIHsKLSAgICAgICAgICAg ICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgfQotQEAgLTYzNyw3ICs2NTcsNyBAQAotICAgICAg ICAgc2VsZi53cml0ZV9jb2RlX3VuaXQoKDB4REMwMCArIChhc3RyYWwgJiAweDNGRikpIGFzIHUx Nik7Ci0gICAgIH0KLSAgICAgI1tpbmxpbmUoYWx3YXlzKV0KLS0gICAgcHViIGZuIHdyaXRlX3N1 cnJvZ2F0ZV9wYWlyKCZtdXQgc2VsZiwgaGlnaDogdTE2LCBsb3c6IHUxNikgewotKyAgICBmbiB3 cml0ZV9zdXJyb2dhdGVfcGFpcigmbXV0IHNlbGYsIGhpZ2g6IHUxNiwgbG93OiB1MTYpIHsKLSAg ICAgICAgIHNlbGYud3JpdGVfY29kZV91bml0KGhpZ2gpOwotICAgICAgICAgc2VsZi53cml0ZV9j b2RlX3VuaXQobG93KTsKLSAgICAgfQotQEAgLTY0Niw2ICs2NjYsNyBAQAotICAgICAgICAgc2Vs Zi53cml0ZV9ibXBfZXhjbF9hc2NpaShjb21iaW5lZCk7Ci0gICAgICAgICBzZWxmLndyaXRlX2Jt cF9leGNsX2FzY2lpKGNvbWJpbmluZyk7Ci0gICAgIH0KLSsgICAgLy8gU2FmZXR5LXVzYWJsZSBp bnZhcmlhbnQ6IENvcHlBc2NpaVJlc3VsdDo6R29PbiB3aWxsIG9ubHkgY29udGFpbiBieXRlcyA+ PTB4ODAKLSAgICAgI1tpbmxpbmUoYWx3YXlzKV0KLSAgICAgcHViIGZuIGNvcHlfYXNjaWlfZnJv bV9jaGVja19zcGFjZV9ibXA8J2I+KAotICAgICAgICAgJidiIG11dCBzZWxmLAotQEAgLTY1OSw2 ICs2ODAsOCBAQAotICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgIChEZWNv ZGVyUmVzdWx0OjpJbnB1dEVtcHR5LCBzcmNfcmVtYWluaW5nLmxlbigpKQotICAgICAgICAgICAg IH07Ci0rICAgICAgICAgICAgLy8gU2FmZXR5OiBUaGlzIGZ1bmN0aW9uIGlzIGRvY3VtZW50ZWQg YXMgbmVlZGluZyB2YWxpZCBwb2ludGVycyBmb3Igc3JjL2Rlc3QgYW5kIGxlbiwgd2hpY2gKLSsg ICAgICAgICAgICAvLyBpcyB0cnVlIHNpbmNlIHdlJ3ZlIHBhc3NlZCB0aGUgbWludW11bSBsZW5n dGggb2YgdGhlIHR3bwotICAgICAgICAgICAgIG1hdGNoIHVuc2FmZSB7Ci0gICAgICAgICAgICAg ICAgIGFzY2lpX3RvX2Jhc2ljX2xhdGluKHNyY19yZW1haW5pbmcuYXNfcHRyKCksIGRzdF9yZW1h aW5pbmcuYXNfbXV0X3B0cigpLCBsZW5ndGgpCi0gICAgICAgICAgICAgfSB7Ci1AQCAtNjY3LDE2 ICs2OTAsMjAgQEAKLSAgICAgICAgICAgICAgICAgICAgIHNlbGYucG9zICs9IGxlbmd0aDsKLSAg ICAgICAgICAgICAgICAgICAgIHJldHVybiBDb3B5QXNjaWlSZXN1bHQ6OlN0b3AoKHBlbmRpbmcs IHNvdXJjZS5wb3MsIHNlbGYucG9zKSk7Ci0gICAgICAgICAgICAgICAgIH0KLSsgICAgICAgICAg ICAgICAgLy8gU2FmZXR5OiB0aGUgZnVuY3Rpb24gaXMgZG9jdW1lbnRlZCBhcyByZXR1cm5pbmcg Ynl0ZXMgPj0weDgwIGluIHRoZSBTb21lCi0gICAgICAgICAgICAgICAgIFNvbWUoKG5vbl9hc2Np aSwgY29uc3VtZWQpKSA9PiB7Ci0gICAgICAgICAgICAgICAgICAgICBzb3VyY2UucG9zICs9IGNv bnN1bWVkOwotICAgICAgICAgICAgICAgICAgICAgc2VsZi5wb3MgKz0gY29uc3VtZWQ7Ci0gICAg ICAgICAgICAgICAgICAgICBzb3VyY2UucG9zICs9IDE7IC8vICsxIGZvciBub25fYXNjaWkKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBub24tYXNjaWkg YnViYmxlZCBvdXQgaGVyZQotICAgICAgICAgICAgICAgICAgICAgbm9uX2FzY2lpCi0gICAgICAg ICAgICAgICAgIH0KLSAgICAgICAgICAgICB9Ci0gICAgICAgICB9OwotKyAgICAgICAgLy8gU2Fm ZXR5OiBub24tYXNjaWkgcmV0dXJuZWQgaGVyZQotICAgICAgICAgQ29weUFzY2lpUmVzdWx0OjpH b09uKChub25fYXNjaWlfcmV0LCBVdGYxNkJtcEhhbmRsZTo6bmV3KHNlbGYpKSkKLSAgICAgfQot KyAgICAvLyBTYWZldHktdXNhYmxlIGludmFyaWFudDogQ29weUFzY2lpUmVzdWx0OjpHb09uIHdp bGwgb25seSBjb250YWluIGJ5dGVzID49MHg4MAotICAgICAjW2lubGluZShhbHdheXMpXQotICAg ICBwdWIgZm4gY29weV9hc2NpaV9mcm9tX2NoZWNrX3NwYWNlX2FzdHJhbDwnYj4oCi0gICAgICAg ICAmJ2IgbXV0IHNlbGYsCi1AQCAtNjkxLDYgKzcxOCw4IEBACi0gICAgICAgICAgICAgfSBlbHNl IHsKLSAgICAgICAgICAgICAgICAgKERlY29kZXJSZXN1bHQ6OklucHV0RW1wdHksIHNyY19yZW1h aW5pbmcubGVuKCkpCi0gICAgICAgICAgICAgfTsKLSsgICAgICAgICAgICAvLyBTYWZldHk6IFRo aXMgZnVuY3Rpb24gaXMgZG9jdW1lbnRlZCBhcyBuZWVkaW5nIHZhbGlkIHBvaW50ZXJzIGZvciBz cmMvZGVzdCBhbmQgbGVuLCB3aGljaAotKyAgICAgICAgICAgIC8vIGlzIHRydWUgc2luY2Ugd2Un dmUgcGFzc2VkIHRoZSBtaW51bXVtIGxlbmd0aCBvZiB0aGUgdHdvCi0gICAgICAgICAgICAgbWF0 Y2ggdW5zYWZlIHsKLSAgICAgICAgICAgICAgICAgYXNjaWlfdG9fYmFzaWNfbGF0aW4oc3JjX3Jl bWFpbmluZy5hc19wdHIoKSwgZHN0X3JlbWFpbmluZy5hc19tdXRfcHRyKCksIGxlbmd0aCkKLSAg ICAgICAgICAgICB9IHsKLUBAIC02OTksMTEgKzcyOCwxMyBAQAotICAgICAgICAgICAgICAgICAg ICAgc2VsZi5wb3MgKz0gbGVuZ3RoOwotICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIENvcHlB c2NpaVJlc3VsdDo6U3RvcCgocGVuZGluZywgc291cmNlLnBvcywgc2VsZi5wb3MpKTsKLSAgICAg ICAgICAgICAgICAgfQotKyAgICAgICAgICAgICAgICAvLyBTYWZldHk6IHRoZSBmdW5jdGlvbiBp cyBkb2N1bWVudGVkIGFzIHJldHVybmluZyBieXRlcyA+PTB4ODAgaW4gdGhlIFNvbWUKLSAgICAg ICAgICAgICAgICAgU29tZSgobm9uX2FzY2lpLCBjb25zdW1lZCkpID0+IHsKLSAgICAgICAgICAg ICAgICAgICAgIHNvdXJjZS5wb3MgKz0gY29uc3VtZWQ7Ci0gICAgICAgICAgICAgICAgICAgICBz ZWxmLnBvcyArPSBjb25zdW1lZDsKLSAgICAgICAgICAgICAgICAgICAgIGlmIHNlbGYucG9zICsg MSA8IGRzdF9sZW4gewotICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZS5wb3MgKz0gMTsg Ly8gKzEgZm9yIG5vbl9hc2NpaQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgLy8gU2FmZXR5OiBub24tYXNjaWkgYnViYmxlZCBvdXQgaGVyZQotICAgICAgICAgICAg ICAgICAgICAgICAgIG5vbl9hc2NpaQotICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAg ICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gQ29weUFzY2lpUmVzdWx0OjpTdG9wKCgKLUBA IC03MTUsNiArNzQ2LDcgQEAKLSAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgIH0KLSAg ICAgICAgIH07Ci0rICAgICAgICAvLyBTYWZldHk6IG5vbi1hc2NpaSByZXR1cm5lZCBoZXJlCi0g ICAgICAgICBDb3B5QXNjaWlSZXN1bHQ6OkdvT24oKG5vbl9hc2NpaV9yZXQsIFV0ZjE2QXN0cmFs SGFuZGxlOjpuZXcoc2VsZikpKQotICAgICB9Ci0gICAgICNbaW5saW5lKGFsd2F5cyldCi1kaWZm IC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvbGliLnJzIGIvdGhpcmRf cGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvbGliLnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0 L2VuY29kaW5nX3JzL3NyYy9saWIucnMJMjAyNS0wNC0yMCAxOToyODoxMi4wMDAwMDAwMDAgKzAz MDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL2xpYi5ycwkyMDI1LTA5 LTE3IDE3OjQxOjIxLjE0MDgwNDkzMSArMDMwMAotQEAgLTY4OSw3ICs2ODksNyBAQAotIC8vISBm b3IgZGlzY3Vzc2lvbiBhYm91dCB0aGUgVVRGLTE2IGZhbWlseS4KLSAKLSAjIVtub19zdGRdCi0t IyFbY2ZnX2F0dHIoZmVhdHVyZSA9ICJzaW1kLWFjY2VsIiwgZmVhdHVyZShjb3JlX2ludHJpbnNp Y3MpKV0KLSsjIVtjZmdfYXR0cihmZWF0dXJlID0gInNpbWQtYWNjZWwiLCBmZWF0dXJlKGNvcmVf aW50cmluc2ljcywgcG9ydGFibGVfc2ltZCkpXQotIAotICNbY2ZnKGZlYXR1cmUgPSAiYWxsb2Mi KV0KLSAjW2NmZ19hdHRyKHRlc3QsIG1hY3JvX3VzZSldCi1AQCAtNjk5LDE3ICs2OTksNiBAQAot ICNbbWFjcm9fdXNlXQotIGV4dGVybiBjcmF0ZSBjZmdfaWY7Ci0gCi0tI1tjZmcoYWxsKAotLSAg ICBmZWF0dXJlID0gInNpbWQtYWNjZWwiLAotLSAgICBhbnkoCi0tICAgICAgICB0YXJnZXRfZmVh dHVyZSA9ICJzc2UyIiwKLS0gICAgICAgIGFsbCh0YXJnZXRfZW5kaWFuID0gImxpdHRsZSIsIHRh cmdldF9hcmNoID0gImFhcmNoNjQiKSwKLS0gICAgICAgIGFsbCh0YXJnZXRfZW5kaWFuID0gImxp dHRsZSIsIHRhcmdldF9mZWF0dXJlID0gIm5lb24iKQotLSAgICApCi0tKSldCi0tI1ttYWNyb191 c2Uoc2h1ZmZsZSldCi0tZXh0ZXJuIGNyYXRlIHBhY2tlZF9zaW1kOwotLQotICNbY2ZnKGZlYXR1 cmUgPSAic2VyZGUiKV0KLSBleHRlcm4gY3JhdGUgc2VyZGU7Ci0gCi1kaWZmIC1OcmJ1IGEvdGhp cmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvbWVtLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9l bmNvZGluZ19ycy9zcmMvbWVtLnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3Jz L3NyYy9tZW0ucnMJMjAyNS0wNC0yMCAxOToyODoxMi4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3Ro aXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL21lbS5ycwkyMDI1LTA5LTE3IDE3OjQxOjIx LjE0MDgwNDkzMSArMDMwMAotQEAgLTExNiw2ICsxMTYsMTEgQEAKLSAgICAgICAgICAgICAgICAg ICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIGxldCBsZW5fbWludXNfc3RyaWRlID0gbGVuIC0g QUxVX0FMSUdOTUVOVCAvIHVuaXRfc2l6ZTsKLSAgICAgICAgICAgICAgICAgICAgIGlmIG9mZnNl dCArICg0ICogKEFMVV9BTElHTk1FTlQgLyB1bml0X3NpemUpKSA8PSBsZW4gewotKyAgICAgICAg ICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogdGhlIGFib3ZlIGNoZWNrIGxldHMgdXMgcGVyZm9y bSA0IGNvbnNlY3V0aXZlIHJlYWRzIG9mCi0rICAgICAgICAgICAgICAgICAgICAgICAgLy8gbGVu Z3RoIEFMVV9BTElHTk1FTlQgLyB1bml0X3NpemUuIEFMVV9BTElHTk1FTlQgaXMgdGhlIHNpemUg b2YgdXNpemUsIGFuZCB1bml0X3NpemUKLSsgICAgICAgICAgICAgICAgICAgICAgICAvLyBpcyB0 aGUgc2l6ZSBvZiB0aGUgYHNyY2AgcG9pbnRlciwgc28gdGhpcyBpcyBlcXVhbCB0byBwZXJmb3Jt aW5nIGZvdXIgdXNpemUgcmVhZHMuCi0rICAgICAgICAgICAgICAgICAgICAgICAgLy8KLSsgICAg ICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIGludmFyaWFudCBpcyB1cGhlbGQgb24gYWxsIGxv b3AgaXRlcmF0aW9ucwotICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsZW5fbWludXNfdW5y b2xsID0gbGVuIC0gKDQgKiAoQUxVX0FMSUdOTUVOVCAvIHVuaXRfc2l6ZSkpOwotICAgICAgICAg ICAgICAgICAgICAgICAgIGxvb3AgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQg dW5yb2xsX2FjY3UgPSB1bnNhZmUgeyAqKHNyYy5hZGQob2Zmc2V0KSBhcyAqY29uc3QgdXNpemUp IH0KLUBAIC0xMzQsMTIgKzEzOSwxNCBAQAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCArPSA0ICogKEFMVV9BTElHTk1FTlQgLyB1bml0 X3NpemUpOwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IHRoaXMgY2hl Y2sgbGV0cyB1cyBjb250aW51ZSB0byBwZXJmb3JtIHRoZSA0IHJlYWRzIGVhcmxpZXIKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgaWYgb2Zmc2V0ID4gbGVuX21pbnVzX3Vucm9sbCB7Ci0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAg ICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIHdoaWxlIG9mZnNldCA8PSBsZW5fbWludXNf c3RyaWRlIHsKLSsgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IHRoZSBhYm92ZSBj aGVjayBsZXRzIHVzIHBlcmZvcm0gb25lIHVzaXplIHJlYWQuCi0gICAgICAgICAgICAgICAgICAg ICAgICAgYWNjdSB8PSB1bnNhZmUgeyAqKHNyYy5hZGQob2Zmc2V0KSBhcyAqY29uc3QgdXNpemUp IH07Ci0gICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IEFMVV9BTElHTk1FTlQgLyB1 bml0X3NpemU7Ci0gICAgICAgICAgICAgICAgICAgICB9Ci1AQCAtMTg5LDYgKzE5NiwxMSBAQAot ICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgbGV0IGxlbl9taW51 c19zdHJpZGUgPSBsZW4gLSBTSU1EX1NUUklERV9TSVpFIC8gdW5pdF9zaXplOwotICAgICAgICAg ICAgICAgICAgICAgaWYgb2Zmc2V0ICsgKDQgKiAoU0lNRF9TVFJJREVfU0laRSAvIHVuaXRfc2l6 ZSkpIDw9IGxlbiB7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiB0aGUgYWJv dmUgY2hlY2sgbGV0cyB1cyBwZXJmb3JtIDQgY29uc2VjdXRpdmUgcmVhZHMgb2YKLSsgICAgICAg ICAgICAgICAgICAgICAgICAvLyBsZW5ndGggU0lNRF9TVFJJREVfU0laRSAvIHVuaXRfc2l6ZS4g U0lNRF9TVFJJREVfU0laRSBpcyB0aGUgc2l6ZSBvZiAkc2ltZF90eSwgYW5kIHVuaXRfc2l6ZQot KyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGlzIHRoZSBzaXplIG9mIHRoZSBgc3JjYCBwb2lu dGVyLCBzbyB0aGlzIGlzIGVxdWFsIHRvIHBlcmZvcm1pbmcgZm91ciAkc2ltZF90eSByZWFkcy4K LSsgICAgICAgICAgICAgICAgICAgICAgICAvLwotKyAgICAgICAgICAgICAgICAgICAgICAgIC8v IFRoaXMgaW52YXJpYW50IGlzIHVwaGVsZCBvbiBhbGwgbG9vcCBpdGVyYXRpb25zCi0gICAgICAg ICAgICAgICAgICAgICAgICAgbGV0IGxlbl9taW51c191bnJvbGwgPSBsZW4gLSAoNCAqIChTSU1E X1NUUklERV9TSVpFIC8gdW5pdF9zaXplKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgbG9v cCB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB1bnJvbGxfYWNjdSA9IHVuc2Fm ZSB7ICooc3JjLmFkZChvZmZzZXQpIGFzICpjb25zdCAkc2ltZF90eSkgfQotQEAgLTIwOCw2ICsy MjAsNyBAQAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgIG9mZnNldCArPSA0ICogKFNJTURfU1RSSURFX1NJWkUgLyB1bml0X3NpemUpOwotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IHRoaXMgY2hlY2sgbGV0cyB1cyBjb250 aW51ZSB0byBwZXJmb3JtIHRoZSA0IHJlYWRzIGVhcmxpZXIKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgaWYgb2Zmc2V0ID4gbGVuX21pbnVzX3Vucm9sbCB7Ci0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQot QEAgLTIxNSw2ICsyMjgsNyBAQAotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg ICAgICAgICAgbGV0IG11dCBzaW1kX2FjY3UgPSAkc3BsYXQ7Ci0gICAgICAgICAgICAgICAgICAg ICB3aGlsZSBvZmZzZXQgPD0gbGVuX21pbnVzX3N0cmlkZSB7Ci0rICAgICAgICAgICAgICAgICAg ICAgICAgLy8gU2FmZXR5OiB0aGUgYWJvdmUgY2hlY2sgbGV0cyB1cyBwZXJmb3JtIG9uZSAkc2lt ZF90eSByZWFkLgotICAgICAgICAgICAgICAgICAgICAgICAgIHNpbWRfYWNjdSA9IHNpbWRfYWNj dSB8IHVuc2FmZSB7ICooc3JjLmFkZChvZmZzZXQpIGFzICpjb25zdCAkc2ltZF90eSkgfTsKLSAg ICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQgKz0gU0lNRF9TVFJJREVfU0laRSAvIHVuaXRf c2l6ZTsKLSAgICAgICAgICAgICAgICAgICAgIH0KLUBAIC0yMzQsOCArMjQ4LDggQEAKLSBjZmdf aWYhIHsKLSAgICAgaWYgI1tjZmcoYWxsKGZlYXR1cmUgPSAic2ltZC1hY2NlbCIsIGFueSh0YXJn ZXRfZmVhdHVyZSA9ICJzc2UyIiwgYWxsKHRhcmdldF9lbmRpYW4gPSAibGl0dGxlIiwgdGFyZ2V0 X2FyY2ggPSAiYWFyY2g2NCIpLCBhbGwodGFyZ2V0X2VuZGlhbiA9ICJsaXR0bGUiLCB0YXJnZXRf ZmVhdHVyZSA9ICJuZW9uIikpKSldIHsKLSAgICAgICAgIHVzZSBjcmF0ZTo6c2ltZF9mdW5jczo6 KjsKLS0gICAgICAgIHVzZSBwYWNrZWRfc2ltZDo6dTh4MTY7Ci0tICAgICAgICB1c2UgcGFja2Vk X3NpbWQ6OnUxNng4OwotKyAgICAgICAgdXNlIGNvcmU6OnNpbWQ6OnU4eDE2OwotKyAgICAgICAg dXNlIGNvcmU6OnNpbWQ6OnUxNng4OwotIAotICAgICAgICAgY29uc3QgU0lNRF9BTElHTk1FTlQ6 IHVzaXplID0gMTY7Ci0gCi1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19y cy9zcmMvc2ltZF9mdW5jcy5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3Np bWRfZnVuY3MucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3NpbWRf ZnVuY3MucnMJMjAyNS0wNC0yMCAxOToyODoxMi4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJk X3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3NpbWRfZnVuY3MucnMJMjAyNS0wOS0xNyAxNzo0 MToyMS4xNDE4MDQ4OTIgKzAzMDAKLUBAIC03LDU1ICs3LDc0IEBACi0gLy8gb3B0aW9uLiBUaGlz IGZpbGUgbWF5IG5vdCBiZSBjb3BpZWQsIG1vZGlmaWVkLCBvciBkaXN0cmlidXRlZAotIC8vIGV4 Y2VwdCBhY2NvcmRpbmcgdG8gdGhvc2UgdGVybXMuCi0gCi0tdXNlIHBhY2tlZF9zaW1kOjp1MTZ4 ODsKLS11c2UgcGFja2VkX3NpbWQ6OnU4eDE2OwotLXVzZSBwYWNrZWRfc2ltZDo6SW50b0JpdHM7 Ci0rdXNlIGFueV9hbGxfd29ya2Fyb3VuZDo6YWxsX21hc2sxNng4OwotK3VzZSBhbnlfYWxsX3dv cmthcm91bmQ6OmFsbF9tYXNrOHgxNjsKLSt1c2UgYW55X2FsbF93b3JrYXJvdW5kOjphbnlfbWFz azE2eDg7Ci0rdXNlIGFueV9hbGxfd29ya2Fyb3VuZDo6YW55X21hc2s4eDE2OwotK3VzZSBjb3Jl OjpzaW1kOjpjbXA6OlNpbWRQYXJ0aWFsRXE7Ci0rdXNlIGNvcmU6OnNpbWQ6OmNtcDo6U2ltZFBh cnRpYWxPcmQ7Ci0rdXNlIGNvcmU6OnNpbWQ6Om1hc2sxNng4OwotK3VzZSBjb3JlOjpzaW1kOjpt YXNrOHgxNjsKLSt1c2UgY29yZTo6c2ltZDo6c2ltZF9zd2l6emxlOwotK3VzZSBjb3JlOjpzaW1k Ojp1MTZ4ODsKLSt1c2UgY29yZTo6c2ltZDo6dTh4MTY7Ci0rdXNlIGNvcmU6OnNpbWQ6OlRvQnl0 ZXM7Ci0gCi0gLy8gVE9ETzogTWlncmF0ZSB1bmFsaWduZWQgYWNjZXNzIHRvIHN0ZGxpYiBjb2Rl IGlmL3doZW4gdGhlIFJGQwotIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvcmZjcy9w dWxsLzE3MjUgaXMgaW1wbGVtZW50ZWQuCi0gCi0rLy8vIFNhZmV0eSBpbnZhcmlhbnQ6IHB0ciBt dXN0IGJlIHZhbGlkIGZvciBhbiB1bmFsaWduZWQgcmVhZCBvZiAxNiBieXRlcwotICNbaW5saW5l KGFsd2F5cyldCi0gcHViIHVuc2FmZSBmbiBsb2FkMTZfdW5hbGlnbmVkKHB0cjogKmNvbnN0IHU4 KSAtPiB1OHgxNiB7Ci0tICAgIGxldCBtdXQgc2ltZCA9IDo6Y29yZTo6bWVtOjp1bmluaXRpYWxp emVkKCk7Ci0tICAgIDo6Y29yZTo6cHRyOjpjb3B5X25vbm92ZXJsYXBwaW5nKHB0ciwgJm11dCBz aW1kIGFzICptdXQgdTh4MTYgYXMgKm11dCB1OCwgMTYpOwotLSAgICBzaW1kCi0rICAgIGxldCBt dXQgc2ltZCA9IDo6Y29yZTo6bWVtOjpNYXliZVVuaW5pdDo6PHU4eDE2Pjo6dW5pbml0KCk7Ci0r ICAgIDo6Y29yZTo6cHRyOjpjb3B5X25vbm92ZXJsYXBwaW5nKHB0ciwgc2ltZC5hc19tdXRfcHRy KCkgYXMgKm11dCB1OCwgMTYpOwotKyAgICAvLyBTYWZldHk6IGNvcGllZCAxNiBieXRlcyBvZiBp bml0aWFsaXplZCBtZW1vcnkgaW50byB0aGlzLCBpdCBpcyBub3cgaW5pdGlhbGl6ZWQKLSsgICAg c2ltZC5hc3N1bWVfaW5pdCgpCi0gfQotIAotKy8vLyBTYWZldHkgaW52YXJpYW50OiBwdHIgbXVz dCBiZSB2YWxpZCBmb3IgYW4gYWxpZ25lZC1mb3ItdTh4MTYgcmVhZCBvZiAxNiBieXRlcwotICNb YWxsb3coZGVhZF9jb2RlKV0KLSAjW2lubGluZShhbHdheXMpXQotIHB1YiB1bnNhZmUgZm4gbG9h ZDE2X2FsaWduZWQocHRyOiAqY29uc3QgdTgpIC0+IHU4eDE2IHsKLSAgICAgKihwdHIgYXMgKmNv bnN0IHU4eDE2KQotIH0KLSAKLSsvLy8gU2FmZXR5IGludmFyaWFudDogcHRyIG11c3QgYmUgdmFs aWQgZm9yIGFuIHVuYWxpZ25lZCBzdG9yZSBvZiAxNiBieXRlcwotICNbaW5saW5lKGFsd2F5cyld Ci0gcHViIHVuc2FmZSBmbiBzdG9yZTE2X3VuYWxpZ25lZChwdHI6ICptdXQgdTgsIHM6IHU4eDE2 KSB7Ci0gICAgIDo6Y29yZTo6cHRyOjpjb3B5X25vbm92ZXJsYXBwaW5nKCZzIGFzICpjb25zdCB1 OHgxNiBhcyAqY29uc3QgdTgsIHB0ciwgMTYpOwotIH0KLSAKLSsvLy8gU2FmZXR5IGludmFyaWFu dDogcHRyIG11c3QgYmUgdmFsaWQgZm9yIGFuIGFsaWduZWQtZm9yLXU4eDE2IHN0b3JlIG9mIDE2 IGJ5dGVzCi0gI1thbGxvdyhkZWFkX2NvZGUpXQotICNbaW5saW5lKGFsd2F5cyldCi0gcHViIHVu c2FmZSBmbiBzdG9yZTE2X2FsaWduZWQocHRyOiAqbXV0IHU4LCBzOiB1OHgxNikgewotICAgICAq KHB0ciBhcyAqbXV0IHU4eDE2KSA9IHM7Ci0gfQotIAotKy8vLyBTYWZldHkgaW52YXJpYW50OiBw dHIgbXVzdCBiZSB2YWxpZCBmb3IgYW4gdW5hbGlnbmVkIHJlYWQgb2YgMTYgYnl0ZXMKLSAjW2lu bGluZShhbHdheXMpXQotIHB1YiB1bnNhZmUgZm4gbG9hZDhfdW5hbGlnbmVkKHB0cjogKmNvbnN0 IHUxNikgLT4gdTE2eDggewotLSAgICBsZXQgbXV0IHNpbWQgPSA6OmNvcmU6Om1lbTo6dW5pbml0 aWFsaXplZCgpOwotLSAgICA6OmNvcmU6OnB0cjo6Y29weV9ub25vdmVybGFwcGluZyhwdHIgYXMg KmNvbnN0IHU4LCAmbXV0IHNpbWQgYXMgKm11dCB1MTZ4OCBhcyAqbXV0IHU4LCAxNik7Ci0tICAg IHNpbWQKLSsgICAgbGV0IG11dCBzaW1kID0gOjpjb3JlOjptZW06Ok1heWJlVW5pbml0Ojo8dTE2 eDg+Ojp1bmluaXQoKTsKLSsgICAgOjpjb3JlOjpwdHI6OmNvcHlfbm9ub3ZlcmxhcHBpbmcocHRy IGFzICpjb25zdCB1OCwgc2ltZC5hc19tdXRfcHRyKCkgYXMgKm11dCB1OCwgMTYpOwotKyAgICAv LyBTYWZldHk6IGNvcGllZCAxNiBieXRlcyBvZiBpbml0aWFsaXplZCBtZW1vcnkgaW50byB0aGlz LCBpdCBpcyBub3cgaW5pdGlhbGl6ZWQKLSsgICAgc2ltZC5hc3N1bWVfaW5pdCgpCi0gfQotIAot Ky8vLyBTYWZldHkgaW52YXJpYW50OiBwdHIgbXVzdCBiZSB2YWxpZCBmb3IgYW4gYWxpZ25lZC1m b3ItdTE2eDggcmVhZCBvZiAxNiBieXRlcwotICNbYWxsb3coZGVhZF9jb2RlKV0KLSAjW2lubGlu ZShhbHdheXMpXQotIHB1YiB1bnNhZmUgZm4gbG9hZDhfYWxpZ25lZChwdHI6ICpjb25zdCB1MTYp IC0+IHUxNng4IHsKLSAgICAgKihwdHIgYXMgKmNvbnN0IHUxNng4KQotIH0KLSAKLSsvLy8gU2Fm ZXR5IGludmFyaWFudDogcHRyIG11c3QgYmUgdmFsaWQgZm9yIGFuIHVuYWxpZ25lZCBzdG9yZSBv ZiAxNiBieXRlcwotICNbaW5saW5lKGFsd2F5cyldCi0gcHViIHVuc2FmZSBmbiBzdG9yZThfdW5h bGlnbmVkKHB0cjogKm11dCB1MTYsIHM6IHUxNng4KSB7Ci0gICAgIDo6Y29yZTo6cHRyOjpjb3B5 X25vbm92ZXJsYXBwaW5nKCZzIGFzICpjb25zdCB1MTZ4OCBhcyAqY29uc3QgdTgsIHB0ciBhcyAq bXV0IHU4LCAxNik7Ci0gfQotIAotKy8vLyBTYWZldHkgaW52YXJpYW50OiBwdHIgbXVzdCBiZSB2 YWxpZCBmb3IgYW4gYWxpZ25lZC1mb3ItdTE2eDggc3RvcmUgb2YgMTYgYnl0ZXMKLSAjW2FsbG93 KGRlYWRfY29kZSldCi0gI1tpbmxpbmUoYWx3YXlzKV0KLSBwdWIgdW5zYWZlIGZuIHN0b3JlOF9h bGlnbmVkKHB0cjogKm11dCB1MTYsIHM6IHUxNng4KSB7Ci1AQCAtMTAwLDcgKzExOSw3IEBACi0g Ci0gI1tpbmxpbmUoYWx3YXlzKV0KLSBwdWIgZm4gdG9fdTE2X2xhbmVzKHM6IHU4eDE2KSAtPiB1 MTZ4OCB7Ci0tICAgIHMuaW50b19iaXRzKCkKLSsgICAgdTE2eDg6OmZyb21fbmVfYnl0ZXMocykK LSB9Ci0gCi0gY2ZnX2lmISB7Ci1AQCAtMTA4LDEwICsxMjcsMTEgQEAKLSAKLSAgICAgICAgIC8v IEV4cG9zZSBsb3ctbGV2ZWwgbWFzayBpbnN0ZWFkIG9mIGhpZ2hlci1sZXZlbCBjb25jbHVzaW9u LAotICAgICAgICAgLy8gYmVjYXVzZSB0aGUgbm9uLUFTQ0lJIGNhc2Ugd291bGQgcGVyZm9ybSBs ZXNzIHdlbGwgb3RoZXJ3aXNlLgotKyAgICAgICAgLy8gU2FmZXR5LXVzYWJsZSBpbnZhcmlhbnQ6 IFRoaXMgcmV0dXJuZWQgdmFsdWUgaXMgd2hldGhlciBlYWNoIGhpZ2ggYml0IGlzIHNldAotICAg ICAgICAgI1tpbmxpbmUoYWx3YXlzKV0KLSAgICAgICAgIHB1YiBmbiBtYXNrX2FzY2lpKHM6IHU4 eDE2KSAtPiBpMzIgewotICAgICAgICAgICAgIHVuc2FmZSB7Ci0tICAgICAgICAgICAgICAgIF9t bV9tb3ZlbWFza19lcGk4KHMuaW50b19iaXRzKCkpCi0rICAgICAgICAgICAgICAgIF9tbV9tb3Zl bWFza19lcGk4KHMuaW50bygpKQotICAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAKLUBAIC0x MjUsMTQgKzE0NSwxNiBAQAotICAgICAgICAgI1tpbmxpbmUoYWx3YXlzKV0KLSAgICAgICAgIHB1 YiBmbiBzaW1kX2lzX2FzY2lpKHM6IHU4eDE2KSAtPiBib29sIHsKLSAgICAgICAgICAgICB1bnNh ZmUgewotLSAgICAgICAgICAgICAgICBfbW1fbW92ZW1hc2tfZXBpOChzLmludG9fYml0cygpKSA9 PSAwCi0rICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogV2UgaGF2ZSBjZmcoKWQgdGhlIGNvcnJl Y3QgcGxhdGZvcm0KLSsgICAgICAgICAgICAgICAgX21tX21vdmVtYXNrX2VwaTgocy5pbnRvKCkp ID09IDAKLSAgICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgIH0gZWxzZSBpZiAjW2NmZyh0 YXJnZXRfYXJjaCA9ICJhYXJjaDY0IildewotICAgICAgICAgI1tpbmxpbmUoYWx3YXlzKV0KLSAg ICAgICAgIHB1YiBmbiBzaW1kX2lzX2FzY2lpKHM6IHU4eDE2KSAtPiBib29sIHsKLSAgICAgICAg ICAgICB1bnNhZmUgewotLSAgICAgICAgICAgICAgICB2bWF4dnFfdTgocy5pbnRvX2JpdHMoKSkg PCAweDgwCi0rICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogV2UgaGF2ZSBjZmcoKWQgdGhlIGNv cnJlY3QgcGxhdGZvcm0KLSsgICAgICAgICAgICAgICAgdm1heHZxX3U4KHMuaW50bygpKSA8IDB4 ODAKLSAgICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgIH0gZWxzZSB7Ci1AQCAtMTQxLDcg KzE2Myw3IEBACi0gICAgICAgICAgICAgLy8gVGhpcyBvcHRpbWl6ZXMgYmV0dGVyIG9uIEFSTSB0 aGFuCi0gICAgICAgICAgICAgLy8gdGhlIGx0IGZvcm11bGF0aW9uLgotICAgICAgICAgICAgIGxl dCBoaWdoZXN0X2FzY2lpID0gdTh4MTY6OnNwbGF0KDB4N0YpOwotLSAgICAgICAgICAgICFzLmd0 KGhpZ2hlc3RfYXNjaWkpLmFueSgpCi0rICAgICAgICAgICAgIWFueV9tYXNrOHgxNihzLnNpbWRf Z3QoaGlnaGVzdF9hc2NpaSkpCi0gICAgICAgICB9Ci0gICAgIH0KLSB9Ci1AQCAtMTU0LDIwICsx NzYsMjEgQEAKLSAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgICAgICAgfQot ICAgICAgICAgICAgIGxldCBhYm92ZV9zdHJfbGF0aW4xID0gdTh4MTY6OnNwbGF0KDB4QzQpOwot LSAgICAgICAgICAgIHMubHQoYWJvdmVfc3RyX2xhdGluMSkuYWxsKCkKLSsgICAgICAgICAgICBz LnNpbWRfbHQoYWJvdmVfc3RyX2xhdGluMSkuYWxsKCkKLSAgICAgICAgIH0KLSAgICAgfSBlbHNl IGlmICNbY2ZnKHRhcmdldF9hcmNoID0gImFhcmNoNjQiKV17Ci0gICAgICAgICAjW2lubGluZShh bHdheXMpXQotICAgICAgICAgcHViIGZuIHNpbWRfaXNfc3RyX2xhdGluMShzOiB1OHgxNikgLT4g Ym9vbCB7Ci0gICAgICAgICAgICAgdW5zYWZlIHsKLS0gICAgICAgICAgICAgICAgdm1heHZxX3U4 KHMuaW50b19iaXRzKCkpIDwgMHhDNAotKyAgICAgICAgICAgICAgICAvLyBTYWZldHk6IFdlIGhh dmUgY2ZnKClkIHRoZSBjb3JyZWN0IHBsYXRmb3JtCi0rICAgICAgICAgICAgICAgIHZtYXh2cV91 OChzLmludG8oKSkgPCAweEM0Ci0gICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICB9IGVs c2UgewotICAgICAgICAgI1tpbmxpbmUoYWx3YXlzKV0KLSAgICAgICAgIHB1YiBmbiBzaW1kX2lz X3N0cl9sYXRpbjEoczogdTh4MTYpIC0+IGJvb2wgewotICAgICAgICAgICAgIGxldCBhYm92ZV9z dHJfbGF0aW4xID0gdTh4MTY6OnNwbGF0KDB4QzQpOwotLSAgICAgICAgICAgIHMubHQoYWJvdmVf c3RyX2xhdGluMSkuYWxsKCkKLSsgICAgICAgICAgICBhbGxfbWFzazh4MTYocy5zaW1kX2x0KGFi b3ZlX3N0cl9sYXRpbjEpKQotICAgICAgICAgfQotICAgICB9Ci0gfQotQEAgLTE3NywyMSArMjAw LDIzIEBACi0gICAgICAgICAjW2lubGluZShhbHdheXMpXQotICAgICAgICAgcHViIGZuIHNpbWRf aXNfYmFzaWNfbGF0aW4oczogdTE2eDgpIC0+IGJvb2wgewotICAgICAgICAgICAgIHVuc2FmZSB7 Ci0tICAgICAgICAgICAgICAgIHZtYXh2cV91MTYocy5pbnRvX2JpdHMoKSkgPCAweDgwCi0rICAg ICAgICAgICAgICAgIC8vIFNhZmV0eTogV2UgaGF2ZSBjZmcoKWQgdGhlIGNvcnJlY3QgcGxhdGZv cm0KLSsgICAgICAgICAgICAgICAgdm1heHZxX3UxNihzLmludG8oKSkgPCAweDgwCi0gICAgICAg ICAgICAgfQotICAgICAgICAgfQotIAotICAgICAgICAgI1tpbmxpbmUoYWx3YXlzKV0KLSAgICAg ICAgIHB1YiBmbiBzaW1kX2lzX2xhdGluMShzOiB1MTZ4OCkgLT4gYm9vbCB7Ci0gICAgICAgICAg ICAgdW5zYWZlIHsKLS0gICAgICAgICAgICAgICAgdm1heHZxX3UxNihzLmludG9fYml0cygpKSA8 IDB4MTAwCi0rICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogV2UgaGF2ZSBjZmcoKWQgdGhlIGNv cnJlY3QgcGxhdGZvcm0KLSsgICAgICAgICAgICAgICAgdm1heHZxX3UxNihzLmludG8oKSkgPCAw eDEwMAotICAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgfSBlbHNlIHsKLSAgICAgICAg ICNbaW5saW5lKGFsd2F5cyldCi0gICAgICAgICBwdWIgZm4gc2ltZF9pc19iYXNpY19sYXRpbihz OiB1MTZ4OCkgLT4gYm9vbCB7Ci0gICAgICAgICAgICAgbGV0IGFib3ZlX2FzY2lpID0gdTE2eDg6 OnNwbGF0KDB4ODApOwotLSAgICAgICAgICAgIHMubHQoYWJvdmVfYXNjaWkpLmFsbCgpCi0rICAg ICAgICAgICAgYWxsX21hc2sxNng4KHMuc2ltZF9sdChhYm92ZV9hc2NpaSkpCi0gICAgICAgICB9 Ci0gCi0gICAgICAgICAjW2lubGluZShhbHdheXMpXQotQEAgLTIwMCw3ICsyMjUsNyBAQAotICAg ICAgICAgICAgIC8vIHNlZW1zIGZhc3RlciBpbiB0aGlzIGNhc2Ugd2hpbGUgdGhlIGFib3ZlCi0g ICAgICAgICAgICAgLy8gZnVuY3Rpb24gaXMgYmV0dGVyIHRoZSBvdGhlciB3YXkgcm91bmQuLi4K LSAgICAgICAgICAgICBsZXQgaGlnaGVzdF9sYXRpbjEgPSB1MTZ4ODo6c3BsYXQoMHhGRik7Ci0t ICAgICAgICAgICAgIXMuZ3QoaGlnaGVzdF9sYXRpbjEpLmFueSgpCi0rICAgICAgICAgICAgIWFu eV9tYXNrMTZ4OChzLnNpbWRfZ3QoaGlnaGVzdF9sYXRpbjEpKQotICAgICAgICAgfQotICAgICB9 Ci0gfQotQEAgLTIwOSw3ICsyMzQsNyBAQAotIHB1YiBmbiBjb250YWluc19zdXJyb2dhdGVzKHM6 IHUxNng4KSAtPiBib29sIHsKLSAgICAgbGV0IG1hc2sgPSB1MTZ4ODo6c3BsYXQoMHhGODAwKTsK LSAgICAgbGV0IHN1cnJvZ2F0ZV9iaXRzID0gdTE2eDg6OnNwbGF0KDB4RDgwMCk7Ci0tICAgIChz ICYgbWFzaykuZXEoc3Vycm9nYXRlX2JpdHMpLmFueSgpCi0rICAgIGFueV9tYXNrMTZ4OCgocyAm IG1hc2spLnNpbWRfZXEoc3Vycm9nYXRlX2JpdHMpKQotIH0KLSAKLSBjZmdfaWYhIHsKLUBAIC0y MTcsNyArMjQyLDggQEAKLSAgICAgICAgIG1hY3JvX3J1bGVzISBhYXJjaDY0X3JldHVybl9mYWxz ZV9pZl9iZWxvd19oZWJyZXcgewotICAgICAgICAgICAgICgkczppZGVudCkgPT4gKHsKLSAgICAg ICAgICAgICAgICAgdW5zYWZlIHsKLS0gICAgICAgICAgICAgICAgICAgIGlmIHZtYXh2cV91MTYo JHMuaW50b19iaXRzKCkpIDwgMHgwNTkwIHsKLSsgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0 eTogV2UgaGF2ZSBjZmcoKWQgdGhlIGNvcnJlY3QgcGxhdGZvcm0KLSsgICAgICAgICAgICAgICAg ICAgIGlmIHZtYXh2cV91MTYoJHMuaW50bygpKSA8IDB4MDU5MCB7Ci0gICAgICAgICAgICAgICAg ICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAg ICAgICAgICB9Ci1AQCAtMjM0LDcgKzI2MCw3IEBACi0gCi0gICAgICAgICBtYWNyb19ydWxlcyEg bm9uX2FhcmNoNjRfcmV0dXJuX2ZhbHNlX2lmX2FsbCB7Ci0gICAgICAgICAgICAgKCRzOmlkZW50 KSA9PiAoewotLSAgICAgICAgICAgICAgICBpZiAkcy5hbGwoKSB7Ci0rICAgICAgICAgICAgICAg IGlmIGFsbF9tYXNrMTZ4OCgkcykgewotICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNl OwotICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgfSkKLUBAIC0yNDUsNyArMjcxLDcg QEAKLSBtYWNyb19ydWxlcyEgaW5fcmFuZ2UxNng4IHsKLSAgICAgKCRzOmlkZW50LCAkc3RhcnQ6 ZXhwciwgJGVuZDpleHByKSA9PiB7ewotICAgICAgICAgLy8gU0lNRCBzdWIgaXMgd3JhcHBpbmcK LS0gICAgICAgICgkcyAtIHUxNng4OjpzcGxhdCgkc3RhcnQpKS5sdCh1MTZ4ODo6c3BsYXQoJGVu ZCAtICRzdGFydCkpCi0rICAgICAgICAoJHMgLSB1MTZ4ODo6c3BsYXQoJHN0YXJ0KSkuc2ltZF9s dCh1MTZ4ODo6c3BsYXQoJGVuZCAtICRzdGFydCkpCi0gICAgIH19OwotIH0KLSAKLUBAIC0yNTks NDMgKzI4NSw0NCBAQAotIAotICAgICBhYXJjaDY0X3JldHVybl9mYWxzZV9pZl9iZWxvd19oZWJy ZXchKHMpOwotIAotLSAgICBsZXQgYmVsb3dfaGVicmV3ID0gcy5sdCh1MTZ4ODo6c3BsYXQoMHgw NTkwKSk7Ci0rICAgIGxldCBiZWxvd19oZWJyZXcgPSBzLnNpbWRfbHQodTE2eDg6OnNwbGF0KDB4 MDU5MCkpOwotIAotICAgICBub25fYWFyY2g2NF9yZXR1cm5fZmFsc2VfaWZfYWxsIShiZWxvd19o ZWJyZXcpOwotIAotLSAgICBpZiAoYmVsb3dfaGVicmV3IHwgaW5fcmFuZ2UxNng4IShzLCAweDA5 MDAsIDB4MjAwRikgfCBpbl9yYW5nZTE2eDghKHMsIDB4MjA2OCwgMHhEODAyKSkuYWxsKCkgewot KyAgICBpZiBhbGxfbWFzazE2eDgoCi0rICAgICAgICBiZWxvd19oZWJyZXcgfCBpbl9yYW5nZTE2 eDghKHMsIDB4MDkwMCwgMHgyMDBGKSB8IGluX3JhbmdlMTZ4OCEocywgMHgyMDY4LCAweEQ4MDIp LAotKyAgICApIHsKLSAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgfQotIAotICAgICAvLyBR dWljayByZWZ1dGF0aW9uIGZhaWxlZC4gTGV0J3MgZG8gdGhlIGZ1bGwgY2hlY2suCi0gCi0rICAg IGFueV9tYXNrMTZ4OCgKLSAgICAgKGluX3JhbmdlMTZ4OCEocywgMHgwNTkwLCAweDA5MDApCi0g ICAgICAgICB8IGluX3JhbmdlMTZ4OCEocywgMHhGQjFELCAweEZFMDApCi0gICAgICAgICB8IGlu X3JhbmdlMTZ4OCEocywgMHhGRTcwLCAweEZFRkYpCi0gICAgICAgICB8IGluX3JhbmdlMTZ4OCEo cywgMHhEODAyLCAweEQ4MDQpCi0gICAgICAgICB8IGluX3JhbmdlMTZ4OCEocywgMHhEODNBLCAw eEQ4M0MpCi0tICAgICAgICB8IHMuZXEodTE2eDg6OnNwbGF0KDB4MjAwRikpCi0tICAgICAgICB8 IHMuZXEodTE2eDg6OnNwbGF0KDB4MjAyQikpCi0tICAgICAgICB8IHMuZXEodTE2eDg6OnNwbGF0 KDB4MjAyRSkpCi0tICAgICAgICB8IHMuZXEodTE2eDg6OnNwbGF0KDB4MjA2NykpKQotLSAgICAu YW55KCkKLSsgICAgICAgICAgICB8IHMuc2ltZF9lcSh1MTZ4ODo6c3BsYXQoMHgyMDBGKSkKLSsg ICAgICAgICAgICB8IHMuc2ltZF9lcSh1MTZ4ODo6c3BsYXQoMHgyMDJCKSkKLSsgICAgICAgICAg ICB8IHMuc2ltZF9lcSh1MTZ4ODo6c3BsYXQoMHgyMDJFKSkKLSsgICAgICAgICAgICB8IHMuc2lt ZF9lcSh1MTZ4ODo6c3BsYXQoMHgyMDY3KSkpLAotKyAgICApCi0gfQotIAotICNbaW5saW5lKGFs d2F5cyldCi0gcHViIGZuIHNpbWRfdW5wYWNrKHM6IHU4eDE2KSAtPiAodTE2eDgsIHUxNng4KSB7 Ci0tICAgIHVuc2FmZSB7Ci0tICAgICAgICBsZXQgZmlyc3Q6IHU4eDE2ID0gc2h1ZmZsZSEoCi0r ICAgIGxldCBmaXJzdDogdTh4MTYgPSBzaW1kX3N3aXp6bGUhKAotICAgICAgICAgICAgIHMsCi0g ICAgICAgICAgICAgdTh4MTY6OnNwbGF0KDApLAotICAgICAgICAgICAgIFswLCAxNiwgMSwgMTcs IDIsIDE4LCAzLCAxOSwgNCwgMjAsIDUsIDIxLCA2LCAyMiwgNywgMjNdCi0gICAgICAgICApOwot LSAgICAgICAgbGV0IHNlY29uZDogdTh4MTYgPSBzaHVmZmxlISgKLSsgICAgbGV0IHNlY29uZDog dTh4MTYgPSBzaW1kX3N3aXp6bGUhKAotICAgICAgICAgICAgIHMsCi0gICAgICAgICAgICAgdTh4 MTY6OnNwbGF0KDApLAotICAgICAgICAgICAgIFs4LCAyNCwgOSwgMjUsIDEwLCAyNiwgMTEsIDI3 LCAxMiwgMjgsIDEzLCAyOSwgMTQsIDMwLCAxNSwgMzFdCi0gICAgICAgICApOwotLSAgICAgICAg KGZpcnN0LmludG9fYml0cygpLCBzZWNvbmQuaW50b19iaXRzKCkpCi0tICAgIH0KLSsgICAgKHUx Nng4Ojpmcm9tX25lX2J5dGVzKGZpcnN0KSwgdTE2eDg6OmZyb21fbmVfYnl0ZXMoc2Vjb25kKSkK LSB9Ci0gCi0gY2ZnX2lmISB7Ci1AQCAtMzAzLDIzICszMzAsMjIgQEAKLSAgICAgICAgICNbaW5s aW5lKGFsd2F5cyldCi0gICAgICAgICBwdWIgZm4gc2ltZF9wYWNrKGE6IHUxNng4LCBiOiB1MTZ4 OCkgLT4gdTh4MTYgewotICAgICAgICAgICAgIHVuc2FmZSB7Ci0tICAgICAgICAgICAgICAgIF9t bV9wYWNrdXNfZXBpMTYoYS5pbnRvX2JpdHMoKSwgYi5pbnRvX2JpdHMoKSkuaW50b19iaXRzKCkK LSsgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBXZSBoYXZlIGNmZygpZCB0aGUgY29ycmVjdCBw bGF0Zm9ybQotKyAgICAgICAgICAgICAgICBfbW1fcGFja3VzX2VwaTE2KGEuaW50bygpLCBiLmlu dG8oKSkuaW50bygpCi0gICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICB9IGVsc2Ugewot ICAgICAgICAgI1tpbmxpbmUoYWx3YXlzKV0KLSAgICAgICAgIHB1YiBmbiBzaW1kX3BhY2soYTog dTE2eDgsIGI6IHUxNng4KSAtPiB1OHgxNiB7Ci0tICAgICAgICAgICAgdW5zYWZlIHsKLS0gICAg ICAgICAgICAgICAgbGV0IGZpcnN0OiB1OHgxNiA9IGEuaW50b19iaXRzKCk7Ci0tICAgICAgICAg ICAgICAgIGxldCBzZWNvbmQ6IHU4eDE2ID0gYi5pbnRvX2JpdHMoKTsKLS0gICAgICAgICAgICAg ICAgc2h1ZmZsZSEoCi0rICAgICAgICAgICAgbGV0IGZpcnN0OiB1OHgxNiA9IGEudG9fbmVfYnl0 ZXMoKTsKLSsgICAgICAgICAgICBsZXQgc2Vjb25kOiB1OHgxNiA9IGIudG9fbmVfYnl0ZXMoKTsK LSsgICAgICAgICAgICBzaW1kX3N3aXp6bGUhKAotICAgICAgICAgICAgICAgICAgICAgZmlyc3Qs Ci0gICAgICAgICAgICAgICAgICAgICBzZWNvbmQsCi0gICAgICAgICAgICAgICAgICAgICBbMCwg MiwgNCwgNiwgOCwgMTAsIDEyLCAxNCwgMTYsIDE4LCAyMCwgMjIsIDI0LCAyNiwgMjgsIDMwXQot ICAgICAgICAgICAgICAgICApCi0gICAgICAgICAgICAgfQotICAgICAgICAgfQotLSAgICB9Ci0g fQotIAotICNbY2ZnKHRlc3QpXQotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2Rp bmdfcnMvc3JjL3NpbmdsZV9ieXRlLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9z cmMvc2luZ2xlX2J5dGUucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3Jj L3NpbmdsZV9ieXRlLnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTIuMDAwMDAwMDAwICswMzAwCi0rKysg Yi90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy9zaW5nbGVfYnl0ZS5ycwkyMDI1LTA5 LTE3IDE3OjQxOjIxLjE0MTgwNDg5MiArMDMwMAotQEAgLTUzLDYgKzUzLDkgQEAKLSAgICAgICAg ICAgICAgICAgICAgIC8vIHN0YXRpY2FsbHkgb21pdCB0aGUgYm91bmQgY2hlY2sgd2hlbiBhY2Nl c3NpbmcKLSAgICAgICAgICAgICAgICAgICAgIC8vIGBbdTE2OyAxMjhdYCB3aXRoIGFuIGluZGV4 Ci0gICAgICAgICAgICAgICAgICAgICAvLyBgbm9uX2FzY2lpIGFzIHVzaXplIC0gMHg4MHVzaXpl YC4KLSsgICAgICAgICAgICAgICAgICAgIC8vCi0rICAgICAgICAgICAgICAgICAgICAvLyBTYWZl dHk6IGBub25fYXNjaWlgIGlzIGEgdTggYnl0ZSA+PTB4ODAsIGZyb20gdGhlIGludmFyaWFudHMK LSsgICAgICAgICAgICAgICAgICAgIC8vIG9uIFV0ZjhEZXN0aW5hdGlvbjo6Y29weV9hc2NpaV9m cm9tX2NoZWNrX3NwYWNlX2JtcCgpCi0gICAgICAgICAgICAgICAgICAgICBsZXQgbWFwcGVkID0K LSAgICAgICAgICAgICAgICAgICAgICAgICB1bnNhZmUgeyAqKHNlbGYudGFibGUuZ2V0X3VuY2hl Y2tlZChub25fYXNjaWkgYXMgdXNpemUgLSAweDgwdXNpemUpKSB9OwotICAgICAgICAgICAgICAg ICAgICAgLy8gbGV0IG1hcHBlZCA9IHNlbGYudGFibGVbbm9uX2FzY2lpIGFzIHVzaXplIC0gMHg4 MHVzaXplXTsKLUBAIC0xNTEsOSArMTU0LDEyIEBACi0gICAgICAgICB9IGVsc2UgewotICAgICAg ICAgICAgIChEZWNvZGVyUmVzdWx0OjpJbnB1dEVtcHR5LCBzcmMubGVuKCkpCi0gICAgICAgICB9 OwotKyAgICAgICAgLy8gU2FmZXR5IGludmFyaWFudDogY29udmVydGVkIDw9IGxlbmd0aC4gUXVp dGUgb2Z0ZW4gd2UgaGF2ZSBgY29udmVydGVkIDwgbGVuZ3RoYAotKyAgICAgICAgLy8gd2hpY2gg d2lsbCBiZSBzZXBhcmF0ZWx5IG1hcmtlZC4KLSAgICAgICAgIGxldCBtdXQgY29udmVydGVkID0g MHVzaXplOwotICAgICAgICAgJ291dGVybW9zdDogbG9vcCB7Ci0gICAgICAgICAgICAgbWF0Y2gg dW5zYWZlIHsKLSsgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBsZW5ndGggaXMgdGhlIG1pbmlt dW0gbGVuZ3RoLCBgc3JjL2RzdCArIHhgIHdpbGwgYWx3YXlzIGJlIHZhbGlkIGZvciByZWFkcy93 cml0ZXMgb2YgYGxlbiAtIHhgCi0gICAgICAgICAgICAgICAgIGFzY2lpX3RvX2Jhc2ljX2xhdGlu KAotICAgICAgICAgICAgICAgICAgICAgc3JjLmFzX3B0cigpLmFkZChjb252ZXJ0ZWQpLAotICAg ICAgICAgICAgICAgICAgICAgZHN0LmFzX211dF9wdHIoKS5hZGQoY29udmVydGVkKSwKLUBAIC0x NjQsNiArMTcwLDEyIEBACi0gICAgICAgICAgICAgICAgICAgICByZXR1cm4gKHBlbmRpbmcsIGxl bmd0aCwgbGVuZ3RoKTsKLSAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICBTb21l KChtdXQgbm9uX2FzY2lpLCBjb25zdW1lZCkpID0+IHsKLSsgICAgICAgICAgICAgICAgICAgIC8v IFNhZmV0eSBpbnZhcmlhbnQ6IGBjb252ZXJ0ZWQgPD0gbGVuZ3RoYCB1cGhlbGQsIHNpbmNlIHRo aXMgY2FuIG9ubHkgY29uc3VtZQotKyAgICAgICAgICAgICAgICAgICAgLy8gdXAgdG8gYGxlbmd0 aCAtIGNvbnZlcnRlZGAgYnl0ZXMuCi0rICAgICAgICAgICAgICAgICAgICAvLwotKyAgICAgICAg ICAgICAgICAgICAgLy8gRnVydGhlcm1vcmUsIGluIHRoaXMgY29udGV4dCwKLSsgICAgICAgICAg ICAgICAgICAgIC8vIHdlIGNhbiBhc3N1bWUgYGNvbnZlcnRlZCA8IGxlbmd0aGAgc2luY2UgdGhp cyBicmFuY2ggaXMgb25seSBldmVyIGhpdCB3aGVuCi0rICAgICAgICAgICAgICAgICAgICAvLyBh c2NpaV90b19iYXNpY19sYXRpbiBmYWlscyB0byBjb25zdW1lIHRoZSBlbnRpcmUgc2xpY2UKLSAg ICAgICAgICAgICAgICAgICAgIGNvbnZlcnRlZCArPSBjb25zdW1lZDsKLSAgICAgICAgICAgICAg ICAgICAgICdtaWRkbGU6IGxvb3AgewotICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGBjb252 ZXJ0ZWRgIGRvZXNuJ3QgY291bnQgdGhlIHJlYWRpbmcgb2YgYG5vbl9hc2NpaWAgeWV0LgotQEAg LTE3Miw2ICsxODQsOSBAQAotICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHN0YXRpY2FsbHkg b21pdCB0aGUgYm91bmQgY2hlY2sgd2hlbiBhY2Nlc3NpbmcKLSAgICAgICAgICAgICAgICAgICAg ICAgICAvLyBgW3UxNjsgMTI4XWAgd2l0aCBhbiBpbmRleAotICAgICAgICAgICAgICAgICAgICAg ICAgIC8vIGBub25fYXNjaWkgYXMgdXNpemUgLSAweDgwdXNpemVgLgotKyAgICAgICAgICAgICAg ICAgICAgICAgIC8vCi0rICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBXZSBjYW4g cmVseSBvbiBgbm9uX2FzY2lpYCBiZWluZyBiZXR3ZWVuIGAweDgwYCBhbmQgYDB4RkZgIGR1ZSB0 bwotKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoZSBpbnZhcmlhbnRzIG9mIGBhc2NpaV90 b19iYXNpY19sYXRpbigpYCwgYW5kIG91ciB0YWJsZSBoYXMgZW5vdWdoIHNwYWNlIGZvciB0aGF0 LgotICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtYXBwZWQgPQotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB1bnNhZmUgeyAqKHNlbGYudGFibGUuZ2V0X3VuY2hlY2tlZChub25fYXNj aWkgYXMgdXNpemUgLSAweDgwdXNpemUpKSB9OwotICAgICAgICAgICAgICAgICAgICAgICAgIC8v IGxldCBtYXBwZWQgPSBzZWxmLnRhYmxlW25vbl9hc2NpaSBhcyB1c2l6ZSAtIDB4ODB1c2l6ZV07 Ci1AQCAtMTgzLDkgKzE5OCwxMCBAQAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOwot ICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgICB1bnNh ZmUgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGUgYm91bmQgY2hlY2sgaGFz IGFscmVhZHkgYmVlbiBwZXJmb3JtZWQKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8g U2FmZXR5OiBBcyBtZW50aW9uZWQgYWJvdmUsIGBjb252ZXJ0ZWQgPCBsZW5ndGhgCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICooZHN0LmdldF91bmNoZWNrZWRfbXV0KGNvbnZlcnRlZCkp ID0gbWFwcGVkOwotICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSsgICAgICAgICAgICAgICAg ICAgICAgICAvLyBTYWZldHk6IGBjb252ZXJ0ZWQgPD0gbGVuZ3RoYCB1cGhlbGQsIHNpbmNlIGBj b252ZXJ0ZWQgPCBsZW5ndGhgIGJlZm9yZSB0aGlzCi0gICAgICAgICAgICAgICAgICAgICAgICAg Y29udmVydGVkICs9IDE7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgLy8gTmV4dCwgaGFuZGxl IEFTQ0lJIHB1bmN0dWF0aW9uIGFuZCBub24tQVNDSUkgd2l0aG91dAotICAgICAgICAgICAgICAg ICAgICAgICAgIC8vIGdvaW5nIGJhY2sgdG8gQVNDSUkgYWNjZWxlcmF0aW9uLiBOb24tQVNDSUkg c2NyaXB0cwotQEAgLTE5OCw3ICsyMTQsMTAgQEAKLSAgICAgICAgICAgICAgICAgICAgICAgICBp ZiBjb252ZXJ0ZWQgPT0gbGVuZ3RoIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0 dXJuIChwZW5kaW5nLCBsZW5ndGgsIGxlbmd0aCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAg fQotKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogV2UgYXJlIGJhY2sgdG8gYGNv bnZlcnRlZCA8IGxlbmd0aGAgYmVjYXVzZSBvZiB0aGUgPT0gYWJvdmUKLSsgICAgICAgICAgICAg ICAgICAgICAgICAvLyBhbmQgY2FuIHBlcmZvcm0gdGhpcyBjaGVjay4KLSAgICAgICAgICAgICAg ICAgICAgICAgICBsZXQgbXV0IGIgPSB1bnNhZmUgeyAqKHNyYy5nZXRfdW5jaGVja2VkKGNvbnZl cnRlZCkpIH07Ci0rICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBgY29udmVydGVk IDwgbGVuZ3RoYCBpcyB1cGhlbGQgZm9yIHRoaXMgbG9vcAotICAgICAgICAgICAgICAgICAgICAg ICAgICdpbm5lcm1vc3Q6IGxvb3AgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBi ID4gMTI3IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbl9hc2NpaSA9IGI7 Ci1AQCAtMjA4LDE1ICsyMjcsMjAgQEAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8g Ynl0ZSB1bmNvbmRpdGlvbmFsbHkgaW5zdGVhZCBvZiB0cnlpbmcgdG8gdW5yZWFkIGl0Ci0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRvIG1ha2UgaXQgcGFydCBvZiB0aGUgbmV4dCBT SU1EIHN0cmlkZS4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zYWZlIHsKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogYGNvbnZlcnRlZCA8IGxlbmd0 aGAgaXMgdHJ1ZSBmb3IgdGhpcyBsb29wCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAqKGRzdC5nZXRfdW5jaGVja2VkX211dChjb252ZXJ0ZWQpKSA9IHUxNjo6ZnJvbShiKTsKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAvLyBTYWZldHk6IFdlIGFyZSBub3cgYXQgYGNvbnZlcnRlZCA8PSBsZW5ndGhgLiBXZSBzaG91 bGQgKm5vdCogYGNvbnRpbnVlYAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGUg bG9vcCB3aXRob3V0IHJldmVyaWZ5aW5nCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv bnZlcnRlZCArPSAxOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBiIDwgNjAgewot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gV2UndmUgZ290IHB1bmN0dWF0aW9u Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBjb252ZXJ0ZWQgPT0gbGVuZ3Ro IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKHBlbmRpbmcs IGxlbmd0aCwgbGVuZ3RoKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogd2UncmUgYmFjayB0byBg Y29udmVydGVkIDw9IGxlbmd0aGAgYmVjYXVzZSBvZiB0aGUgPT0gYWJvdmUKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGIgPSB1bnNhZmUgeyAqKHNyYy5nZXRfdW5jaGVja2VkKGNv bnZlcnRlZCkpIH07Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6 IFRoZSBsb29wIGNvbnRpbnVlcyBhcyBgY29udmVydGVkIDwgbGVuZ3RoYAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgY29udGludWUgJ2lubmVybW9zdDsKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBXZSd2ZSBn b3QgbWFya3VwIG9yIEFTQ0lJIHRleHQKLUBAIC0yMzQsNiArMjU4LDggQEAKLSAgICAgICAgIGxv b3AgewotICAgICAgICAgICAgIGlmIGxldCBTb21lKChub25fYXNjaWksIG9mZnNldCkpID0gdmFs aWRhdGVfYXNjaWkoYnl0ZXMpIHsKLSAgICAgICAgICAgICAgICAgdG90YWwgKz0gb2Zmc2V0Owot KyAgICAgICAgICAgICAgICAvLyBTYWZldHk6IFdlIGNhbiByZWx5IG9uIGBub25fYXNjaWlgIGJl aW5nIGJldHdlZW4gYDB4ODBgIGFuZCBgMHhGRmAgZHVlIHRvCi0rICAgICAgICAgICAgICAgIC8v IHRoZSBpbnZhcmlhbnRzIG9mIGBhc2NpaV90b19iYXNpY19sYXRpbigpYCwgYW5kIG91ciB0YWJs ZSBoYXMgZW5vdWdoIHNwYWNlIGZvciB0aGF0LgotICAgICAgICAgICAgICAgICBsZXQgbWFwcGVk ID0gdW5zYWZlIHsgKihzZWxmLnRhYmxlLmdldF91bmNoZWNrZWQobm9uX2FzY2lpIGFzIHVzaXpl IC0gMHg4MHVzaXplKSkgfTsKLSAgICAgICAgICAgICAgICAgaWYgbWFwcGVkICE9IHUxNjo6ZnJv bShub25fYXNjaWkpIHsKLSAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0b3RhbDsKLUBAIC0z ODQsOSArNDEwLDEyIEBACi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgIChFbmNvZGVy UmVzdWx0OjpJbnB1dEVtcHR5LCBzcmMubGVuKCkpCi0gICAgICAgICB9OwotKyAgICAgICAgLy8g U2FmZXR5IGludmFyaWFudDogY29udmVydGVkIDw9IGxlbmd0aC4gUXVpdGUgb2Z0ZW4gd2UgaGF2 ZSBgY29udmVydGVkIDwgbGVuZ3RoYAotKyAgICAgICAgLy8gd2hpY2ggd2lsbCBiZSBzZXBhcmF0 ZWx5IG1hcmtlZC4KLSAgICAgICAgIGxldCBtdXQgY29udmVydGVkID0gMHVzaXplOwotICAgICAg ICAgJ291dGVybW9zdDogbG9vcCB7Ci0gICAgICAgICAgICAgbWF0Y2ggdW5zYWZlIHsKLSsgICAg ICAgICAgICAgICAgLy8gU2FmZXR5OiBsZW5ndGggaXMgdGhlIG1pbmltdW0gbGVuZ3RoLCBgc3Jj L2RzdCArIHhgIHdpbGwgYWx3YXlzIGJlIHZhbGlkIGZvciByZWFkcy93cml0ZXMgb2YgYGxlbiAt IHhgCi0gICAgICAgICAgICAgICAgIGJhc2ljX2xhdGluX3RvX2FzY2lpKAotICAgICAgICAgICAg ICAgICAgICAgc3JjLmFzX3B0cigpLmFkZChjb252ZXJ0ZWQpLAotICAgICAgICAgICAgICAgICAg ICAgZHN0LmFzX211dF9wdHIoKS5hZGQoY29udmVydGVkKSwKLUBAIC0zOTcsMTUgKzQyNiwyMyBA QAotICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChwZW5kaW5nLCBsZW5ndGgsIGxlbmd0aCk7 Ci0gICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgU29tZSgobXV0IG5vbl9hc2Np aSwgY29uc3VtZWQpKSA9PiB7Ci0rICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHkgaW52YXJp YW50OiBgY29udmVydGVkIDw9IGxlbmd0aGAgdXBoZWxkLCBzaW5jZSB0aGlzIGNhbiBvbmx5IGNv bnN1bWUKLSsgICAgICAgICAgICAgICAgICAgIC8vIHVwIHRvIGBsZW5ndGggLSBjb252ZXJ0ZWRg IGJ5dGVzLgotKyAgICAgICAgICAgICAgICAgICAgLy8KLSsgICAgICAgICAgICAgICAgICAgIC8v IEZ1cnRoZXJtb3JlLCBpbiB0aGlzIGNvbnRleHQsCi0rICAgICAgICAgICAgICAgICAgICAvLyB3 ZSBjYW4gYXNzdW1lIGBjb252ZXJ0ZWQgPCBsZW5ndGhgIHNpbmNlIHRoaXMgYnJhbmNoIGlzIG9u bHkgZXZlciBoaXQgd2hlbgotKyAgICAgICAgICAgICAgICAgICAgLy8gYXNjaWlfdG9fYmFzaWNf bGF0aW4gZmFpbHMgdG8gY29uc3VtZSB0aGUgZW50aXJlIHNsaWNlCi0gICAgICAgICAgICAgICAg ICAgICBjb252ZXJ0ZWQgKz0gY29uc3VtZWQ7Ci0gICAgICAgICAgICAgICAgICAgICAnbWlkZGxl OiBsb29wIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAvLyBgY29udmVydGVkYCBkb2Vzbid0 IGNvdW50IHRoZSByZWFkaW5nIG9mIGBub25fYXNjaWlgIHlldC4KLSAgICAgICAgICAgICAgICAg ICAgICAgICBtYXRjaCBzZWxmLmVuY29kZV91MTYobm9uX2FzY2lpKSB7Ci0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFNvbWUoYnl0ZSkgPT4gewotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgdW5zYWZlIHsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAv LyBTYWZldHk6IHdlJ3JlIGFsbG93ZWQgdGhpcyBhY2Nlc3Mgc2luY2UgYGNvbnZlcnRlZCA8IGxl bmd0aGAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKGRzdC5nZXRfdW5j aGVja2VkX211dChjb252ZXJ0ZWQpKSA9IGJ5dGU7Ci0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb252ZXJ0ZWQgKz0g MTsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGBjb252ZXJ0ZWQgPD0gbGVu Z3RoYCBub3cKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBOb25lID0+IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IC8vIEF0IHRoaXMgcG9pbnQsIHdlIG5lZWQgdG8ga25vdyBpZiB3ZQotQEAgLTQyMSw2ICs0NTgs OCBAQAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udmVy dGVkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOwotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAvLyBTYWZldHk6IGNvbnZlcmVkIDwgbGVuZ3RoIGZyb20gb3V0c2lkZSB0 aGUgbWF0Y2gsIGFuZCBgY29udmVydGVkICsgMSAhPSBsZW5ndGhgLAotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIC8vIFNvIGBjb252ZXJ0ZWQgKyAxIDwgbGVuZ3RoYCBhcyB3 ZWxsLiBXZSdyZSBpbiBib3VuZHMKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBsZXQgc2Vjb25kID0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg dTMyOjpmcm9tKHVuc2FmZSB7ICpzcmMuZ2V0X3VuY2hlY2tlZChjb252ZXJ0ZWQgKyAxKSB9KTsK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBzZWNvbmQgJiAweEZDMDB1 MzIgIT0gMHhEQzAwdTMyIHsKLUBAIC00MzIsNiArNDcxLDE4IEBACi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIC8vIFRoZSBuZXh0IGNvZGUgdW5pdCBpcyBhIGxvdyBzdXJyb2dhdGUuCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGFzdHJhbDogY2hhciA9IHVuc2FmZSB7Ci0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogV2UgY2Fu IHJlbHkgb24gbm9uX2FzY2lpIGJlaW5nIDB4RDgwMC0weERCRkYgc2luY2UgdGhlIGhpZ2ggYml0 cyBhcmUgMHhEODAwCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8v IFRoZW4sIChub25fYXNjaWkgPDwgMTAgLSAweEQ4MDAgPDwgMTApIGJlY29tZXMgYmV0d2VlbiAo MCB0byAweDNGRikgPDwgMTAsIHdoaWNoIGlzIGJldHdlZW4KLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgLy8gMHg0MDAgdG8gMHhmZmMwMC4gQWRkaW5nIHRoZSAweDEw MDAwIGdpdmVzIGEgcmFuZ2Ugb2YgMHgxMDQwMCB0byAweDEwZmMwMC4gU3VidHJhY3RpbmcgdGhl IDB4REMwMAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBnaXZl cyAweDI4MDAgdG8gMHgxMDIwMDAKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgLy8gVGhlIHNlY29uZCB0ZXJtIGlzIGJldHdlZW4gMHhEQzAwIGFuZCAweERGRkYgZnJv bSB0aGUgY2hlY2sgYWJvdmUuIFRoaXMgZ2l2ZXMgYSBtYXhpbXVtCi0rICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHBvc3NpYmxlIHJhbmdlIG9mICgweDEwNDAwICsg MHhEQzAwKSB0byAoMHgxMDIwMDAgKyAweERGRkYpIHdoaWNoIGlzIDB4MUUwMDAgdG8gMHgxMGZm ZmYuCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgaXMg aW4gcmFuZ2UuCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vCi0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZyb20gYSBVbmljb2Rl IHByaW5jaXBsZXMgcGVyc3BlY3RpdmUgdGhpcyBjYW4gYWxzbyBiZSB2ZXJpZmllZCBhcyB3ZSBo YXZlIGNoZWNrZWQgdGhhdCBgbm9uX2FzY2lpYCBpcyBhIGhpZ2ggc3Vycm9nYXRlCi0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICgweEQ4MDAuLj0weERCRkYpLCBh bmQgdGhhdCBgc2Vjb25kYCBpcyBhIGxvdyBzdXJyb2dhdGUgKGAweERDMDAuLj0weERGRkZgKSwg YW5kIHdlIGFyZSBhcHBseWluZyByZXZlcnNlIG9mIHRoZSBVVEMxNiB0cmFuc2Zvcm1hdGlvbgot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBhbGdvcml0aG0gPGh0 dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL1VURi0xNiNDb2RlX3BvaW50c19mcm9tX1UrMDEw MDAwX3RvX1UrMTBGRkZGPiwgYnkgYXBwbHlpbmcgdGhlIGhpZ2ggc3Vycm9nYXRlIC0gMHhEODAw IHRvIHRoZQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBoaWdo IHRlbiBiaXRzLCBhbmQgdGhlIGxvdyBzdXJyb2dhdGUgLSAweERjMDAgdG8gdGhlIGxvdyB0ZW4g Yml0cywgYW5kIHRoZW4gYWRkaW5nIDB4MTAwMDAKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgOjpjb3JlOjpjaGFyOjpmcm9tX3UzMl91bmNoZWNrZWQoCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodTMyOjpmcm9tKG5vbl9hc2Np aSkgPDwgMTApICsgc2Vjb25kCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgLSAoKCgweEQ4MDB1MzIgPDwgMTApIC0gMHgxXzAwMDB1MzIpICsgMHhEQzAw dTMyKSwKLUBAIC00NTYsNiArNTA3LDcgQEAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBjb252ZXJ0ZWQgKyAxLCAvLyArMSBgZm9yIG5vbl9hc2NpaWAKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBjb252ZXJ0ZWQsCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICApOwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2Fm ZXR5OiBUaGlzIGJyYW5jaCBkaXZlcmdlcywgc28gbm8gbmVlZCB0byB1cGhvbGQgaW52YXJpYW50 cyBvbiBgY29udmVydGVkYAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAg ICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgIC8vIE5leHQsIGhh bmRsZSBBU0NJSSBwdW5jdHVhdGlvbiBhbmQgbm9uLUFTQ0lJIHdpdGhvdXQKLUBAIC00NjksOCAr NTIxLDEyIEBACi0gICAgICAgICAgICAgICAgICAgICAgICAgaWYgY29udmVydGVkID09IGxlbmd0 aCB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAocGVuZGluZywgbGVuZ3Ro LCBsZW5ndGgpOwotICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSsgICAgICAgICAgICAgICAg ICAgICAgICAvLyBTYWZldHk6IHdlJ3JlIGJhY2sgdG8gYGNvbnZlcnRlZCA8IGxlbmd0aGAgZHVl IHRvIHRoZSA9PSBhYm92ZSBhbmQgY2FuIHBlcmZvcm0KLSsgICAgICAgICAgICAgICAgICAgICAg ICAvLyB0aGUgdW5jaGVja2VkIHJlYWQKLSAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0 IHVuaXQgPSB1bnNhZmUgeyAqKHNyYy5nZXRfdW5jaGVja2VkKGNvbnZlcnRlZCkpIH07Ci0gICAg ICAgICAgICAgICAgICAgICAgICAgJ2lubmVybW9zdDogbG9vcCB7Ci0rICAgICAgICAgICAgICAg ICAgICAgICAgICAgIC8vIFNhZmV0eTogVGhpcyBsb29wIGFsd2F5cyBiZWdpbnMgd2l0aCBgY29u dmVydGVkIDwgbGVuZ3RoYCwgc2VlCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRo ZSBpbnZhcmlhbnQgb3V0c2lkZSBhbmQgdGhlIGNvbW1lbnQgb24gdGhlIGNvbnRpbnVlIGJlbG93 Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHVuaXQgPiAxMjcgewotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgbm9uX2FzY2lpID0gdW5pdDsKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlICdtaWRkbGU7Ci1AQCAtNDc5LDE5ICs1MzUsMjUg QEAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYnl0ZSB1bmNvbmRpdGlvbmFsbHkg aW5zdGVhZCBvZiB0cnlpbmcgdG8gdW5yZWFkIGl0Ci0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgIC8vIHRvIG1ha2UgaXQgcGFydCBvZiB0aGUgbmV4dCBTSU1EIHN0cmlkZS4KLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgdW5zYWZlIHsKLSsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIC8vIFNhZmV0eTogQ2FuIHJlbHkgb24gY29udmVydGVkIDwgbGVuZ3RoCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAqKGRzdC5nZXRfdW5jaGVja2VkX211dChjb252ZXJ0 ZWQpKSA9IHVuaXQgYXMgdTg7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgY29udmVydGVkICs9IDE7Ci0rICAgICAgICAgICAgICAg ICAgICAgICAgICAgIC8vIGBjb252ZXJ0ZWQgPD0gbGVuZ3RoYCBoZXJlCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGlmIHVuaXQgPCA2MCB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAvLyBXZSd2ZSBnb3QgcHVuY3R1YXRpb24KLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGlmIGNvbnZlcnRlZCA9PSBsZW5ndGggewotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHJldHVybiAocGVuZGluZywgbGVuZ3RoLCBsZW5ndGgpOwotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgLy8gU2FmZXR5OiBgY29udmVydGVkIDwgbGVuZ3RoYCBkdWUgdG8gdGhlID09IGFib3Zl LiBUaGUgcmVhZCBpcyBzYWZlLgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5p dCA9IHVuc2FmZSB7ICooc3JjLmdldF91bmNoZWNrZWQoY29udmVydGVkKSkgfTsKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogVGhpcyBvbmx5IGhhcHBlbnMgaWYg YGNvbnZlcnRlZCA8IGxlbmd0aGAsIG1haW50YWluaW5nIGl0Ci0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBjb250aW51ZSAnaW5uZXJtb3N0OwotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFdlJ3ZlIGdvdCBtYXJr dXAgb3IgQVNDSUkgdGV4dAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZSAn b3V0ZXJtb3N0OwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IEFsbCBv dGhlciByb3V0ZXMgdG8gaGVyZSBkaXZlcmdlIHNvIHRoZSBjb250aW51ZSBpcyB0aGUgb25seQot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB3YXkgdG8gcnVuIHRoZSBpbm5lcm1vc3Qg bG9vcC4KLSAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICB9 Ci0gICAgICAgICAgICAgICAgIH0KLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L2VuY29k aW5nX3JzL3NyYy94X3VzZXJfZGVmaW5lZC5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2Rpbmdf cnMvc3JjL3hfdXNlcl9kZWZpbmVkLnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5n X3JzL3NyYy94X3VzZXJfZGVmaW5lZC5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCAr MDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMveF91c2VyX2RlZmlu ZWQucnMJMjAyNS0wOS0xNyAxNzo0MToyMS4xNDE4MDQ4OTIgKzAzMDAKLUBAIC0xNCwxMiArMTQs MTMgQEAKLSBjZmdfaWYhIHsKLSAgICAgaWYgI1tjZmcoZmVhdHVyZSA9ICJzaW1kLWFjY2VsIild IHsKLSAgICAgICAgIHVzZSBzaW1kX2Z1bmNzOjoqOwotLSAgICAgICAgdXNlIHBhY2tlZF9zaW1k Ojp1MTZ4ODsKLSsgICAgICAgIHVzZSBjb3JlOjpzaW1kOjp1MTZ4ODsKLSsgICAgICAgIHVzZSBj b3JlOjpzaW1kOjpjbXA6OlNpbWRQYXJ0aWFsT3JkOwotIAotICAgICAgICAgI1tpbmxpbmUoYWx3 YXlzKV0KLSAgICAgICAgIGZuIHNoaWZ0X3VwcGVyKHVucGFja2VkOiB1MTZ4OCkgLT4gdTE2eDgg ewotICAgICAgICAgICAgIGxldCBoaWdoZXN0X2FzY2lpID0gdTE2eDg6OnNwbGF0KDB4N0YpOwot LSAgICAgICAgICAgIHVucGFja2VkICsgdW5wYWNrZWQuZ3QoaGlnaGVzdF9hc2NpaSkuc2VsZWN0 KHUxNng4OjpzcGxhdCgweEY3MDApLCB1MTZ4ODo6c3BsYXQoMCkpICAgICAgICB9Ci0rICAgICAg ICAgICAgdW5wYWNrZWQgKyB1bnBhY2tlZC5zaW1kX2d0KGhpZ2hlc3RfYXNjaWkpLnNlbGVjdCh1 MTZ4ODo6c3BsYXQoMHhGNzAwKSwgdTE2eDg6OnNwbGF0KDApKSAgICAgICAgfQotICAgICB9IGVs c2UgewotICAgICB9Ci0gfQotQEAgLTExNiwxMCArMTE3LDE1IEBACi0gICAgICAgICBsZXQgc2lt ZF9pdGVyYXRpb25zID0gbGVuZ3RoID4+IDQ7Ci0gICAgICAgICBsZXQgc3JjX3B0ciA9IHNyYy5h c19wdHIoKTsKLSAgICAgICAgIGxldCBkc3RfcHRyID0gZHN0LmFzX211dF9wdHIoKTsKLSsgICAg ICAgIC8vIFNhZmV0eTogVGhpcyBpcyBgZm9yIGkgaW4gMC4ubGVuZ3RoIC8gMTZgCi0gICAgICAg ICBmb3IgaSBpbiAwLi5zaW1kX2l0ZXJhdGlvbnMgewotKyAgICAgICAgICAgIC8vIFNhZmV0eTog VGhpcyBpcyBpbiBib3VuZHM6IGxlbmd0aCBpcyB0aGUgbWludW11bSB2YWxpZCBsZW5ndGggZm9y IGJvdGggc3JjL2RzdAotKyAgICAgICAgICAgIC8vIGFuZCBpIHJhbmdlcyB0byBsZW5ndGgvMTYs IHNvIG11bHRpcGx5aW5nIGJ5IDE2IHdpbGwgYWx3YXlzIGJlIGA8IGxlbmd0aGAgYW5kIGNhbiBk bwotKyAgICAgICAgICAgIC8vIGEgMTYgYnl0ZSByZWFkCi0gICAgICAgICAgICAgbGV0IGlucHV0 ID0gdW5zYWZlIHsgbG9hZDE2X3VuYWxpZ25lZChzcmNfcHRyLmFkZChpICogMTYpKSB9OwotICAg ICAgICAgICAgIGxldCAoZmlyc3QsIHNlY29uZCkgPSBzaW1kX3VucGFjayhpbnB1dCk7Ci0gICAg ICAgICAgICAgdW5zYWZlIHsKLSsgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBzYW1lIGFzIGFi b3ZlLCBidXQgdGhpcyBpcyB0d28gY29uc2VjdXRpdmUgOC1ieXRlIHJlYWRzCi0gICAgICAgICAg ICAgICAgIHN0b3JlOF91bmFsaWduZWQoZHN0X3B0ci5hZGQoaSAqIDE2KSwgc2hpZnRfdXBwZXIo Zmlyc3QpKTsKLSAgICAgICAgICAgICAgICAgc3RvcmU4X3VuYWxpZ25lZChkc3RfcHRyLmFkZCgo aSAqIDE2KSArIDgpLCBzaGlmdF91cHBlcihzZWNvbmQpKTsKLSAgICAgICAgICAgICB9Ci1kaWZm IC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC8uYXBwdmV5b3IueW1sIGIvdGhp cmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC8uYXBwdmV5b3IueW1sCi0tLS0gYS90aGlyZF9wYXJ0 eS9ydXN0L3BhY2tlZF9zaW1kLy5hcHB2ZXlvci55bWwJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAw MDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvLmFwcHZleW9y LnltbAkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsNTkgKzAsMCBA QAotLW1hdHJpeDoKLS0gIGFsbG93X2ZhaWx1cmVzOgotLSAgICAjIEZJWE1FOiBodHRwczovL2dp dGh1Yi5jb20vcnVzdC1sYW5nLW51cnNlcnkvcGFja2VkX3NpbWQvaXNzdWVzLzcyCi0tICAgIC0g VEFSR0VUOiBpNjg2LXBjLXdpbmRvd3MtbXN2YwotLSAgICAtIFRBUkdFVDogaTY4Ni1wYy13aW5k b3dzLWdudQotLSAgICAtIFRBUkdFVDogeDg2XzY0LXBjLXdpbmRvd3MtZ251Ci0tICBmYXN0X2Zp bmlzaDogdHJ1ZQotLQotLWVudmlyb25tZW50OgotLSAgbWF0cml4OgotLSAgICAtIFRBUkdFVDog eDg2XzY0LXBjLXdpbmRvd3MtbXN2YwotLSAgICAgIE1TWVNURU06IE1JTkdXNjQKLS0gICAgICBO T1ZFUklGWTogIjEiCi0tICAgIC0gVEFSR0VUOiB4ODZfNjQtcGMtd2luZG93cy1tc3ZjCi0tICAg ICAgTVNZU1RFTTogTUlOR1c2NAotLSAgICAgIFJVU1RGTEFHUzogIi1DIHRhcmdldC1mZWF0dXJl PStzc2U0LjIiCi0tICAgICAgTk9WRVJJRlk6ICIxIgotLSAgICAtIFRBUkdFVDogeDg2XzY0LXBj LXdpbmRvd3MtbXN2YwotLSAgICAgIE1TWVNURU06IE1JTkdXNjQKLS0gICAgICBSVVNURkxBR1M6 ICItQyB0YXJnZXQtZmVhdHVyZT0rYXZ4IgotLSAgICAgIE5PVkVSSUZZOiAiMSIKLS0gICAgLSBU QVJHRVQ6IHg4Nl82NC1wYy13aW5kb3dzLW1zdmMKLS0gICAgICBNU1lTVEVNOiBNSU5HVzY0Ci0t ICAgICAgUlVTVEZMQUdTOiAiLUMgdGFyZ2V0LWZlYXR1cmU9K2F2eDIiCi0tICAgICAgTk9WRVJJ Rlk6ICIxIgotLQotLSAgICAtIFRBUkdFVDogaTY4Ni1wYy13aW5kb3dzLW1zdmMKLS0gICAgICBN U1lTVEVNOiBNSU5HVzMyCi0tICAgICAgTk9WRVJJRlk6ICIxIgotLSAgICAtIFRBUkdFVDogaTY4 Ni1wYy13aW5kb3dzLW1zdmMKLS0gICAgICBNU1lTVEVNOiBNSU5HVzMyCi0tICAgICAgUlVTVEZM QUdTOiAiLUMgdGFyZ2V0LWZlYXR1cmU9K3NzZTQuMiIKLS0gICAgICBOT1ZFUklGWTogIjEiCi0t ICAgIC0gVEFSR0VUOiBpNjg2LXBjLXdpbmRvd3MtbXN2YwotLSAgICAgIE1TWVNURU06IE1JTkdX MzIKLS0gICAgICBSVVNURkxBR1M6ICItQyB0YXJnZXQtZmVhdHVyZT0rYXZ4IgotLSAgICAgIE5P VkVSSUZZOiAiMSIKLS0gICAgLSBUQVJHRVQ6IGk2ODYtcGMtd2luZG93cy1tc3ZjCi0tICAgICAg TVNZU1RFTTogTUlOR1czMgotLSAgICAgIFJVU1RGTEFHUzogIi1DIHRhcmdldC1mZWF0dXJlPSth dngyIgotLSAgICAgIE5PVkVSSUZZOiAiMSIKLS0KLS0gICAgLSBUQVJHRVQ6IHg4Nl82NC1wYy13 aW5kb3dzLWdudQotLSAgICAgIE1TWVNURU06IE1JTkdXNjQKLS0KLS0gICAgLSBUQVJHRVQ6IGk2 ODYtcGMtd2luZG93cy1nbnUKLS0gICAgICBNU1lTVEVNOiBNSU5HVzMyCi0tICAgIC0gVEFSR0VU OiB4ODZfNjQtcGMtd2luZG93cy1nbnUKLS0gICAgICBNU1lTVEVNOiBNSU5HVzY0Ci0taW5zdGFs bDoKLS0gIC0gcHM6IGlmIChscyAtciAuIC1maSAiKi5ycyIgfCBzbHMgImB0IikgeyB0aHJvdyAi Rm91bmQgdGFiIGNoYXJhY3RlciIgfQotLSAgLSBwczogU3RhcnQtRmlsZURvd25sb2FkICJodHRw czovL3N0YXRpYy5ydXN0LWxhbmcub3JnL2Rpc3QvcnVzdC1uaWdodGx5LSR7ZW52OlRBUkdFVH0u ZXhlIiAtRmlsZU5hbWUgInJ1c3QtaW5zdGFsbC5leGUiCi0tICAtIHBzOiAuXHJ1c3QtaW5zdGFs bC5leGUgL1ZFUllTSUxFTlQgL05PUkVTVEFSVCAvRElSPSJDOlxydXN0IiB8IE91dC1OdWxsCi0t ICAtIHBzOiAkZW52OlBBVEg9IiRlbnY6UEFUSDtDOlxydXN0XGJpbiIKLS0gIC0gc2V0IFBBVEg9 YzpcbXN5czY0XCVNU1lTVEVNJVxiaW47YzpcbXN5czY0XHVzclxiaW47JVBBVEglCi0tICAtIHJ1 c3RjIC12VgotLSAgLSBjYXJnbyAtdlYKLS1idWlsZDogZmFsc2UKLS10ZXN0X3NjcmlwdDogYmFz aCAtYyAiY2kvcnVuLnNoIgotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3Np bWQvLmNhcmdvLWNoZWNrc3VtLmpzb24gYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kLy5j YXJnby1jaGVja3N1bS5qc29uCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kLy5j YXJnby1jaGVja3N1bS5qc29uCTIwMjUtMDktMDcgMTQ6MzA6MzcuMDAwMDAwMDAwICswMzAwCi0r KysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kLy5jYXJnby1jaGVja3N1bS5qc29uCTE5 NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSArMCwwIEBACi0teyJmaWxl cyI6eyIuYXBwdmV5b3IueW1sIjoiZjFlZDAxODUwZTBkNzI1Zjk0OThmNTJhMWE2M2RkZjQwNzAy YWQ2ZTBiZjViMmQ3YzRjMDRkNzZlOTY3OTRhMyIsIi5naXRodWIvd29ya2Zsb3dzL2JlbmNobWFy a3MueW1sIjoiZDA0OWYwMTZkYzUzODMwYTNmY2M3MzU4MzNlY2ExNjhkZjJlNDkxZjMzYjZiNDRj ZTdlNGQ1ZDFkZDQ1Mzg1NCIsIi5naXRodWIvd29ya2Zsb3dzL2NpLnltbCI6IjE3MGEyMDc0YWRk NTdkZGM4Zjg4Yjc4MDE0OWU0OTMwMTYyYzZlZTQ3MThhZGQ0MzY5ZGNhOGUzZmQ2YzAyMmEiLCIu Z2l0aHViL3dvcmtmbG93cy9kb2NzLnltbCI6Ijg2ZjdlYjY1MmM5MDA2MjRlNGRlYjc2MzIwY2Q5 MjE3NWRiMWZhNzI5NWE3NmYyOGYzMDMzNmZmMGZhZDE2MDQiLCIuZ2l0aHViL3dvcmtmbG93cy9y dW4tY2ktc2NyaXB0LnltbCI6ImQ4NDdiZTI5M2Y5ZWMxNzAzOGU0NTA2NTJiMWViN2JkYzIwYjgw NWMxOGM1ZGJhYjM0ZDFkOWZmN2E5Yzg5NDAiLCIudHJhdmlzLnltbCI6IjMwYTYxYTVlYzUzMzU1 ZmMxZjM1ODVlMTY5MDI4MDMwOGMyYjc5NjE3MDFhYmMxMWU4Mzg5YjIzNWI2NDcxNzgiLCJDYXJn by50b21sIjoiMDIxNTFjNDE1ZjI2N2E2YWViODY1MTE1ODQ3Mjc0NGQ3MWUxZDlkYTg4ODNkZDIw YmUyNTczMWE0MmU1MjBmNCIsIkxJQ0VOU0UtQVBBQ0hFIjoiYTYwZWVhODE3NTE0NTMxNjY4ZDdl MDA3NjU3MzE0NDlmZTE0ZDA1OWQzMjQ5ZTBiYzkzYjM2ZGU0NWY3NTlmMiIsIkxJQ0VOU0UtTUlU IjoiNjQ4NWI4ZWQzMTBkM2YwMzQwYmYxYWQxZjQ3NjQ1MDY5Y2U0MDY5ZGNjNmJiNDZjN2Q1YzZm YWY0MWRlMWZkYiIsIlJFQURNRS5tZCI6ImM0YWM3MDI3YTlhYjdkNzg1OGFhODk1N2Q3NDU0ZGJm Y2RiYjgxZTYwNWI2YTE3MWYwNTMxMGNjM2NhZDM3NjIiLCJib3JzLnRvbWwiOiJkZWU4ODFkYzY5 YjliNzgzNGU0ZWJhNWQ5NWMzZWQ1YTQxNmQ0NjI4ODE1YTE2N2Q2YTIyZDRjYjRmYjA2NGI4Iiwi YnVpbGQucnMiOiIwMTllZDI5YzQzOTg5NzgyZDhlZWMzYTk2MTY1NGNmYzE3MmQ3YTc4OThkYTRl Y2E4ZjY1NDcwMGFmN2UxOTg4IiwiY2kvYWxsLnNoIjoiMmFlNmIyNDQ1YjRkYjgzODMzZTQwYjM3 ZWZkMDAxNmM2Yjk4NzllZTk4OGI5YjNlZjk0ZGI1NDM5YTNlMTYwNiIsImNpL2FuZHJvaWQtaW5z dGFsbC1uZGsuc2giOiJiZGNmOTNiYTkwNDNhYzExODRlMmM1MDRhM2Q0MGM0N2M2YzE2MDFkODgy ZTBmMGEyN2E4ZWI1NmZiYWJjYjVmIiwiY2kvYW5kcm9pZC1pbnN0YWxsLXNkay5zaCI6IjM0OTA0 MzIwMjJjNWM4ZjVhMTE1YzA4NGY3YTlhY2ExNjI2Zjk2YzBjODdmZmI2MjAxOTIyOGM0MzQ2YjQ3 ZTQiLCJjaS9hbmRyb2lkLXN5c2ltYWdlLnNoIjoiZWJmNGU1ZGFhMWYwZmUxYjIwOTJiNzlmMGYz ZjE2MWM0YzQyNzVjYjc0NGU1MjM1MmM0ZDgxYWI0NTFlNGM1YSIsImNpL2JlbmNobWFyay5zaCI6 ImI2MWQxOWVmNmI5MGRlYmE4ZmI3OWRlZTc0YzhiMDYyZDk0ODQ0Njc2MjkzZGEzNDZkYTg3YmI3 OGE5YTQ5YTQiLCJjaS9kZXBsb3lfYW5kX3J1bl9vbl9pb3Nfc2ltdWxhdG9yLnJzIjoiZWM4ZWNm ODJkOTIwNzI2NzZhYTQ3ZjBkMWEzZDAyMWI2MGE3YWUzNTMxMTUzZWYxMmQyZmY0NTQxZmMyOTRk YyIsImNpL2RvY2tlci9hYXJjaDY0LWxpbnV4LWFuZHJvaWQvRG9ja2VyZmlsZSI6ImFjZTJlN2Qz M2M4N2JjMGY2ZDM5NjJhNGEzNDA4YzA0NTU3NjQ2ZjdmNTFhYjk5Y2ZiZjU3NDkwNjc5NmIwMTYi LCJjaS9kb2NrZXIvYWFyY2g2NC11bmtub3duLWxpbnV4LWdudS9Eb2NrZXJmaWxlIjoiZGE4OGMw ZDUwZjE2ZGMwODQ0OGM3ZmRmMWZhNWVkMmNiZTU3NmFjZjllN2RkODViNWI4MTg2MjFiMmE4Yzcw MiIsImNpL2RvY2tlci9hcm0tdW5rbm93bi1saW51eC1nbnVlYWJpL0RvY2tlcmZpbGUiOiJiYjVm OGFlODkwNzA3YzEyODY1MjI5MGZmYzU0NDQ0NzY0M2JmMTIwMzdkZGQ3M2M2YWQ2OTg5Zjg0OGNi MzgwIiwiY2kvZG9ja2VyL2FybS11bmtub3duLWxpbnV4LWdudWVhYmloZi9Eb2NrZXJmaWxlIjoi MWFmYWVmY2JjMDViNzQwODU5YWNkNGUwNjdiYzkyNDM5YmU2YmNiZThmMmU5Njc4NDc0ZmI0MzRi Y2QzOThkOSIsImNpL2RvY2tlci9hcm12Ny1saW51eC1hbmRyb2lkZWFiaS9Eb2NrZXJmaWxlIjoi MzcwZTU1ZDMzMzBhNDEzYTNjY2Y2NzdiM2FmYjNlMGVmOTAxOGE1ZmFiMjYzZmFhOTdhZThhYzAx N2ZjMjI4NiIsImNpL2RvY2tlci9hcm12Ny11bmtub3duLWxpbnV4LWdudWVhYmloZi9Eb2NrZXJm aWxlIjoiODI4MmVhNzA3YTk0MTA5YmVlZDQ3YTU3NTc0NzU1ZTJkNTg0MDE3MzU5MDRhMDNmODVm YjY0YzU3OGM1M2I0ZiIsImNpL2RvY2tlci9pNTg2LXVua25vd24tbGludXgtZ251L0RvY2tlcmZp bGUiOiI0OTc5MjkyMjI2OWYzNzFiZDI5ZGE0NzI3ZTkwODUxMDFiMjdiZTY3YTZiOTc3NTVkMDE5 NmM2MzMxN2Y3YWJiIiwiY2kvZG9ja2VyL2k2ODYtdW5rbm93bi1saW51eC1nbnUvRG9ja2VyZmls ZSI6IjQ5NzkyOTIyMjY5ZjM3MWJkMjlkYTQ3MjdlOTA4NTEwMWIyN2JlNjdhNmI5Nzc1NWQwMTk2 YzYzMzE3ZjdhYmIiLCJjaS9kb2NrZXIvbWlwcy11bmtub3duLWxpbnV4LWdudS9Eb2NrZXJmaWxl IjoiYjJlYmMyNTc5NzYxMmM0ZjgzOTVmZTlkNDA3NzI1MTU2MDQ0OTU1YmZiY2Y0NDIwMzZiN2Y1 NWI0M2E1ZjlkYSIsImNpL2RvY2tlci9taXBzNjQtdW5rbm93bi1saW51eC1nbnVhYmk2NC9Eb2Nr ZXJmaWxlIjoiYjBjMTY5MmFjNjViYzU2ZGQzMDQ5NGIxOTkzZDhlOTI5YzQ4Y2M5YzRiOTIwMjli N2M3NTkyYWY2ZDRmOTIyMCIsImNpL2RvY2tlci9taXBzNjRlbC11bmtub3duLWxpbnV4LWdudWFi aTY0L0RvY2tlcmZpbGUiOiI0ZTkyNDljMTc5MzAwMTM4MTQxZDBiMmI3NDAxYjExODk3ZjY0YWVk NjlmNTQxZjA3OGMxZGI0NTk0ZGYyODI3IiwiY2kvZG9ja2VyL21pcHNlbC11bmtub3duLWxpbnV4 LW11c2wvRG9ja2VyZmlsZSI6IjMxNjRjNTJiMGRjYmIwMWFmYTc4MjkyYjE1YjVjNDM1MDNjY2Yw NDkxY2Y2ZWI4MDFlYzJiZjIyYWUyNzRlNTIiLCJjaS9kb2NrZXIvcG93ZXJwYy11bmtub3duLWxp bnV4LWdudS9Eb2NrZXJmaWxlIjoiYWU4Mjc0MzA5OTI4NjIwYTVkZDIzMmE0NjI2NGUwNTM5OWJi NzQ2Mjg4ZWJlZTM4NDNhNzFjNDE2MjIwOGNjMyIsImNpL2RvY2tlci9wb3dlcnBjNjQtdW5rbm93 bi1saW51eC1nbnUvRG9ja2VyZmlsZSI6ImJhNWZiYzRiZjNiYjkxY2Q1MGI0MDcyNDhkYTMxMjI1 NjgxZWZjOGYyYmU3NjE4ZjRhMGFiMTIxOWIzODk1MDgiLCJjaS9kb2NrZXIvcG93ZXJwYzY0bGUt dW5rbm93bi1saW51eC1nbnUvRG9ja2VyZmlsZSI6IjUzZjk3ZjhiOWI1YWNhNzUzNGI5YmY5ZWE0 OGYzNTE3NTA1MmNkMmE1NjBhMTA3ZTAxYWQyNzA3MzFjMDMyZmMiLCJjaS9kb2NrZXIvczM5MHgt dW5rbm93bi1saW51eC1nbnUvRG9ja2VyZmlsZSI6Ijg5ZjU0MjFjZjA2ZDgxN2FlOTQwOTI5ODdl OTE0NDcyZWYzODRhZDJkMWZmZjI3MzViZTNkODc4NmJhMTEyMTQiLCJjaS9kb2NrZXIvc3BhcmM2 NC11bmtub3duLWxpbnV4LWdudS9Eb2NrZXJmaWxlIjoiODNlYmExOTU3NjQ4NmY5ZDEwZDdjMDM3 ZDY2OWQ3MmIzMWE2NTU2NWE0NzlmMzBiMjJhYWIzNmFhYTJmZjhkYyIsImNpL2RvY2tlci90aHVt YnY3bmVvbi1saW51eC1hbmRyb2lkZWFiaS9Eb2NrZXJmaWxlIjoiYzJkZWNkNTU5MWJkN2EwOTM3 ODkwMWJlZjYyOWNkOTQ0YWNmMDUyZWI1NWU0ZjM1Yjc5ZWI5Y2I0ZDYyMjQ2YSIsImNpL2RvY2tl ci90aHVtYnY3bmVvbi11bmtub3duLWxpbnV4LWdudWVhYmloZi9Eb2NrZXJmaWxlIjoiNTE5NTVh OGJmM2M0ZDQ0MGY0NzM4MmFmNmY1NDI2ZWJmZjk0YWIwMWEwNGRhMzYxNzViYWJkYTlhMDU3NzQw ZiIsImNpL2RvY2tlci93YXNtMzItdW5rbm93bi11bmtub3duL0RvY2tlcmZpbGUiOiJiOTgyYjQy MWM3MGRiNDc2OTAwZGY1YjYwZTE5ZWY4ODE1ZTZjN2RhZTIyNjg3MjI1MDAyNzgwY2FiN2IwYTc2 IiwiY2kvZG9ja2VyL3g4Nl82NC1saW51eC1hbmRyb2lkL0RvY2tlcmZpbGUiOiJhMTdlYmRiMTg2 Y2UyZGQ2YjYyMTAwYjVhNDM5ZTA1YTFhYjlhZGFiMTEzZTI1MDg4NDNlMTIxYWFlYTUyOTkyIiwi Y2kvZG9ja2VyL3g4Nl82NC11bmtub3duLWxpbnV4LWdudS1lbXVsYXRlZC9Eb2NrZXJmaWxlIjoi NDRiNjIwM2Q5MjkwYmZkYzUzZDgxMjE5ZjA5MzdlMTExMDg0N2EyM2RkOTgyZWM4YzRkZTM4ODM1 NGYwMTUzNiIsImNpL2RvY2tlci94ODZfNjQtdW5rbm93bi1saW51eC1nbnUvRG9ja2VyZmlsZSI6 IjdmNGUzY2E1ZmEyODhlYTcwZWRiNGQxZjc1MzA5NzA4Y2QzMGIxOTJlMmU0NDQ0ZTYxYzRkNWIz YjU4Zjg5Y2YiLCJjaS9kb3guc2giOiI0MzRlOTYxMWM1MmUzODkzMTJkMmIwMzU2NGFkZjA5NDI5 ZjEwY2M3NmZlNjZhODY0NGFkYjEwNDkwM2I4N2I3IiwiY2kvbGludXgtczM5MHguc2giOiJkNmI3 MzJkNzc5NWI0YmExMzEzMjZhZmY4OTNiY2E2MjI4YTdkMmViMGU5NDAyZjEzNTcwNTQxM2RiYmUw ZGNlIiwiY2kvbGludXgtc3BhcmM2NC5zaCI6ImM5Mjk2NjgzOGIxYWI3YWQzYjdhMzQ0ODMzZWU3 MjZhYmE2YjY0N2NmNTk1MmU1NmYwYWQxYmE0MjBiMTMzMjUiLCJjaS9sbGQtc2hpbS5ycyI6IjNk N2Y3MWVjMjNhNDllMmI2N2Y2OTRhMDE2ODc4NmY5YTk1NGRkYTE1ZjVhMTM4ODE1ZDk2NjY0M2Zk M2ZjYzMiLCJjaS9tYXhfbGluZV93aWR0aC5zaCI6IjBhMTUxOGJiYTRjOWVjYWE1NTY5NGNiMmU5 OTMwZDBlMTljMjY1YmFhYmY3MzE0M2YxN2Y5Y2YyODVhYWE1YmIiLCJjaS9ydW4tZG9ja2VyLnNo IjoiOTJlMDM2MzkwYWQ5YjBkMTZmMTA5NTc5ZGYxYjVjZWQyZTcyZTlhZmVhNDBjN2QwMTE0MDBl YmQzYTJhOTBkZSIsImNpL3J1bi5zaCI6IjlhZmFiYzk2MWUwZWU4M2I4NzIwMWYzZmQ1NTRjMTll NWIwYzM2ZjNhOTVkMDEzNTk1ZTI3NmM5ODgyZGQwYTQiLCJjaS9ydW5fZXhhbXBsZXMuc2giOiJk MWEyM2M2YzM1Mzc0YTA2NzhiYTUxMTRiOWI4ZmVmZDhiZTBhNzllNzc0ODcyYThiZjA4OThkMWJh Y2ExOGQwIiwiY2kvcnVudGVzdC1hbmRyb2lkLnJzIjoiMTQ1YThlOTc5OWE1MjIzOTc1MDYxZmU3 ZTU4NmFkZTU2NjllZTQ4NzdhN2Q3YTRjZjZiNGFiNDhlOGUzNmM3YyIsImNpL3NldHVwX2JlbmNo bWFya3Muc2giOiJmYWUzOTYwMDIzZjZmM2QxMzg4Y2QyYWQyMmZkYmFiNGIwNzVmMWYyOWRkNDI5 MmQ3OTk0YTIwNzgzYmViNmNmIiwiY2kvdGVzdC1ydW5uZXItbGludXgiOiJjOGFhNjAyNWNmZjUz MDZmNGYzMWQwYzYxZGM1ZjlkNGRkNWExZDE4OWFiNjEzZWY4ZDRjMzY3YzY5NGQ5Y2NkIiwiY29u dHJpYnV0aW5nLm1kIjoiMmQyNjI5MzEwYWQ0ZDQ2NGM0ODJiZGJiNTgxOWYwZDZjZTIyM2M1NzZh ZWVmMmNkY2U2YTFmNjg1NzA4NWVhNSIsInBlcmYtZ3VpZGUvLmdpdGlnbm9yZSI6ImZlODJjN2Rh NTUxMDc5ZDgzMmNmNzQyMDBiMGIzNTliNGRmOTgyOGNiNGEwNDE2ZmE3Mzg0ZjA3YTJhZTZhMTMi LCJwZXJmLWd1aWRlL2Jvb2sudG9tbCI6IjExNWE5ODI4NDEyNmM2YjE4MDE3OGI0NDcxMzMxNGNj NDk0ZjA4YTcxNjYyZWUyY2UxNWNmNjdmMTdhNTEwNjQiLCJwZXJmLWd1aWRlL3NyYy9TVU1NQVJZ Lm1kIjoiM2UwM2JmZmM5OTFmZGMyMDUwZjNkNTE4NDJkNzJkOWQyMWVhNmFiYWI1NmEzYmFmM2Iy ZDU5NzNhNzhiODllMSIsInBlcmYtZ3VpZGUvc3JjL2FzY2lpLmNzcyI6IjI5YWZiMDg4MzNiMmZl MjI1MGYwNDEyZTFmYTExNjFhMjQzMmEwODIwYTE0OTUzYzg3MTI0NDA3NDE3Yzc0MWEiLCJwZXJm LWd1aWRlL3NyYy9ib3VuZF9jaGVja3MubWQiOiI1ZTQ5OTFmZjU4YTE4M2VmMGNkOWZkYzFmZWI0 Y2QxMmQwODNiNDRiZGY4NzM5M2JiYjA5Mjc4MDhlZjNjZTdkIiwicGVyZi1ndWlkZS9zcmMvZmxv YXQtbWF0aC9hcHByb3gubWQiOiI4YzA5MDMyZmEyZDc5NWEwYzVkYjE3NzU4MjZjODUwZDI4ZWIy NjI3ODQ2ZDA5NjVjNjBlZTcyZGU2MzczNWFkIiwicGVyZi1ndWlkZS9zcmMvZmxvYXQtbWF0aC9m bWEubWQiOiIzMTEwNzZiYTRiNzQxZDYwNGE4MmU3NGI4M2E4ZDdlOGMzMThmY2JkN2Y2NGM0Mzky ZDFjZjVhZjk1YzYwMjQzIiwicGVyZi1ndWlkZS9zcmMvZmxvYXQtbWF0aC9mcC5tZCI6IjA0MTUz ZTc3NWFiNmU0ZjBkNzgzN2JjYzUxNTIzMGQzMjdiMDRlZGZhMzRjODRjZTljOWUxMGViYWVlZjJi ZTgiLCJwZXJmLWd1aWRlL3NyYy9mbG9hdC1tYXRoL3N2bWwubWQiOiIwNzk4ODczYjhlZWRhZWRh NWZlZDYyZGM5MTY0NWI1N2MyMDc3NWEwMmQzY2Q3NGQ4YmQwNjk1OGYxNTE2NTA2IiwicGVyZi1n dWlkZS9zcmMvaW50cm9kdWN0aW9uLm1kIjoiOWY1YTE5ZTllNjc1MWYyNWQyZGFhZDM5ODkxYTBj YzYwMDk3NDUyN2VjNGM4MzA1ODQzZjk2MTg5MTA2NzFiZCIsInBlcmYtZ3VpZGUvc3JjL3Byb2Yv bGludXgubWQiOiI0NDc3MzFlYjVkZTdkNjkxNjY3MjhmZGJjNWVjYjBjMGM5ZGI2NzhlYTQ5M2I0 NWE1OTJkNjdkZDAwMjE4NGMwIiwicGVyZi1ndWlkZS9zcmMvcHJvZi9tY2EubWQiOiJmNTZkNTRm M2QyMGU3YWE0ZDMyMDUyMTg2ZTgyMzdiMDNkNjU5NzFlYjVkMTEyODAyYjQ0MjU3MGZmMTFkMzQ0 IiwicGVyZi1ndWlkZS9zcmMvcHJvZi9wcm9maWxpbmcubWQiOiI4YTY1MGMwZmQ2ZWRlMDk2NDc4 OWJiNjU3NzU1N2VlZWYxZDgyMjZhODk2Nzg4NjAyY2U2MTUyOGUyNjBlNDNjIiwicGVyZi1ndWlk ZS9zcmMvdGFyZ2V0LWZlYXR1cmUvYXR0cmlidXRlLm1kIjoiNjE1Zjg4ZGNhMGE3MDdiNmM0MTZm YTYwNTQzNWRkNmUxZmI1MzYxY2M2Mzk0MjljYmY2OGNkODc2MjRiZDc4YiIsInBlcmYtZ3VpZGUv c3JjL3RhcmdldC1mZWF0dXJlL2ZlYXR1cmVzLm1kIjoiMTcwNzc3NjBmZjI0YzAwNmI2MDZkZDIx ODg5YzUzZDg3MjI4ZjQzMTFmM2JhM2E1NzRmOWFmZGVhY2Q4NjE2NSIsInBlcmYtZ3VpZGUvc3Jj L3RhcmdldC1mZWF0dXJlL2lubGluaW5nLm1kIjoiN2VkMWQ3MDY4ZDgxNzNhMDBkODRjMTZjZmU1 ODcxY2Q2OGI5ZjA0ZjhkMGNjYTJkMDFlYmM4NDk1N2ViZjJmNiIsInBlcmYtZ3VpZGUvc3JjL3Rh cmdldC1mZWF0dXJlL3ByYWN0aWNlLm1kIjoiYzRiMzcxODQyZTAwODZkZjE3ODQ4OGZlYzk3ZjIw ZGVmOGYwYzYyZWU1ODhiY2QyNWZkOTQ4YjliMWZhMjI3ZSIsInBlcmYtZ3VpZGUvc3JjL3Rhcmdl dC1mZWF0dXJlL3J1bnRpbWUubWQiOiI4MzU0MjVmNWVlNTk3ZmIzZTUxZDM2ZTcyNWE4MWViZWUy OWY0NTYxMjMxZDE5NTYzY2Q0ZGE4MWRiYjFjZmNiIiwicGVyZi1ndWlkZS9zcmMvdGFyZ2V0LWZl YXR1cmUvcnVzdGZsYWdzLm1kIjoiMDExOTdhY2Y2ZjBhZGVjOGRiMzJiODU5MTgxMWY2OWNlY2I2 NTU1YTJiMDVkYzVkNWVjMjdkMGUzZjdiMDY1ZSIsInBlcmYtZ3VpZGUvc3JjL3ZlcnQtaG9yLW9w cy5tZCI6ImM2MjExYzBlZTkxZTYwNTUyZWM1OTJkODlkOWQ5NTdlZWRjMjFkZWUzY2JkODllMWFk Njc2NWVhMDZhMjc0NzEiLCJydXN0Zm10LnRvbWwiOiJkOTlhNDNmM2Y4ZWY5ZTQyNWNmMDFjMzMz ZmJhOWYwMDUxZjg4OGY1ZDg3YWI0ZThmNjNjMmY3ZDBmZTY2MjBmIiwic3JjL2FwaS5ycyI6ImJi MTc5NWU5NjU3YTgyOThkMzdkMjM0OWI0NTQ0M2YwOGU5ZTQ1NTM5OWFkNGI3MjcwMTg2MDA3Mjg0 NzhjMTAiLCJzcmMvYXBpL2JpdF9tYW5pcC5ycyI6IjI3ZjMwOTdmYzBhMTFlM2M0MTA3MDQ5ZDk3 NzllNjgwZGNkNjc0MDdhMDY2NzA0MDA4YTZiOWM0ZmQ1MjllMDUiLCJzcmMvYXBpL2JpdG1hc2su cnMiOiIwNThlYmMzOGEyZTAzNjNmMDdhNDQxZDNlOWE0Nzc1YWFlYzU3Y2NiMTcwYTBlNWQ1ZWZh NWRjNDc0M2FiMDdiIiwic3JjL2FwaS9jYXN0LnJzIjoiMDNiOTRhM2QzMTZhYzdiN2JlNzA2ODgx MDA0NDkxMWU5NjVlODg5YTBhY2U3YmFlNzYyNzQ5Y2E3NGE5Mjc0NyIsInNyYy9hcGkvY2FzdC9t YWNyb3MucnMiOiJiMGExNGQwYzgzYWQyZWJiN2EyNzUxODBmNmQ5ZTNmMmJjMzEyYmE1N2E3ZDNk NmMzOWZhZDRlMGYyMGY5NDA4Iiwic3JjL2FwaS9jYXN0L3YxMjgucnMiOiJlZGQwOTk0ZWZhYzQz NzlkZmYyNmUxNzg0MjNhNTJkYmIzZmZlYjM4YjFmYzk3Y2FlOTc1ZDc0NGMwMGI0ZmI2Iiwic3Jj L2FwaS9jYXN0L3YxNi5ycyI6Ijk2YmQ5OGMyZDIxYjA2NjNhYmU2YzBhYjMzMDA1YjFmYTY5M2Yz ZGI3ZWU2Nzk1MzUxMzkxMzQzODYzNDg0ZGEiLCJzcmMvYXBpL2Nhc3QvdjI1Ni5ycyI6IjhjMzFm ZTkxZjVlNzhlZjczN2RmYmE2OTc5Y2MxMjQwMjEwY2IwOTRhODlkMjg0ZmU0NTliZjhhOTkxY2Ey NGIiLCJzcmMvYXBpL2Nhc3QvdjMyLnJzIjoiYTk5YTc5ZGQ4NGQyYTVlNmFkZjlkYjk4NzA1Njc1 OTE1YmQwM2ZkMTI4N2Q0ODljN2ZlMzhlODRkN2U0YTA4NiIsInNyYy9hcGkvY2FzdC92NTEyLnJz IjoiYzBkZDUyNmY0MWVkN2I4YTcxYzM3NDNkOTEyNjc1NTRlYzBhMGM3NTgzNGNjYzJlM2VjYjBl ZjMwMDRhZjY0MiIsInNyYy9hcGkvY2FzdC92NjQucnMiOiI2NTcyZmRiYTJhMTI0MWE2Y2Q2NjZk M2YwY2NlMzMwNmNkMmNiN2U1ZTIzNjE3MmU1OWQ1ZDQzNTFjOGE4OGFmIiwic3JjL2FwaS9jbXAu cnMiOiIzNTdjM2EyYTA5YzZkNDYxMWMzMmRkN2ZhOTViZTJmYWU5MzNkNTEzZTIyOTAyNmVjOWI0 NDQ1MWE3N2I4ODRlIiwic3JjL2FwaS9jbXAvZXEucnMiOiI2MGY3MGYzNTViYWU0Y2I1YjE3ZGI1 MzIwNGNhY2MzODkwZjcwNjcwNjExYzE3ZGY2MzhkNGMwNGY3Y2M4MDc1Iiwic3JjL2FwaS9jbXAv b3JkLnJzIjoiNTg5ZjcyMzQ3NjFjMjk0ZmE1ZGY4ZjUyNWJjNGFjZDVhNDdjZGI2MDIyMDdkNTI0 YTBkNGUxOTgwNGNkOTY5NSIsInNyYy9hcGkvY21wL3BhcnRpYWxfZXEucnMiOiI5MDJjY2I4YWEw MWZkNTczOGIzMGJhMGI3MTI2NjljMjFkNDgwMTk1ODkwN2UwM2JhZDIzNDMyYzdkYmEwMTk4Iiwi c3JjL2FwaS9jbXAvcGFydGlhbF9vcmQucnMiOiI5ZGIwYzM3ZDc0MzRjZGZjNjJkOGQ2NjkxMmU5 NzJmYTNkOGMxMTVhYjJhZjA1MWE2ZjQ1ZTQxNGJkM2U0ZjFjIiwic3JjL2FwaS9jbXAvdmVydGlj YWwucnMiOiJkZTNkNjJmMzhlYmE4MTcyOTlhYTE2ZjFlMTkzOTk1NGM5YTQ0N2UzMTY1MDkzOTc0 NjVjMjgzMDg1MmJhMDUzIiwic3JjL2FwaS9kZWZhdWx0LnJzIjoiNjdiZjIxYzEzNDEyN2QxMmE3 MDI4YzhiODhhNTdmMGNlZWU4Y2NiZDc0OTc2ZGE4Y2E3NGViOWYxNmExNzRkNSIsInNyYy9hcGkv Zm10LnJzIjoiNjdmYjgwNGJiODZiNmNkNzdjZjhjZDQ5MmI1NzMzY2U0MzcwNzFiNjZmZTMyOTcy NzhiOGE2NTUyYzMyNWRkYSIsInNyYy9hcGkvZm10L2JpbmFyeS5ycyI6IjAyYjJiMjg3Zjc0MDRm OGE5ODM4MTNjZjcwYzg3MTA4YzhkYTM4MzU1NzhiNjNhYjMwMzExNjg4NWY2MDk0MTMiLCJzcmMv YXBpL2ZtdC9kZWJ1Zy5ycyI6IjU2ZTFjM2JkYzA5Mjc0NzM0NGZmZmFhZmZmOWRhNzE2M2VlNzgy Nzg1N2Y2ZmI3Y2IxYzk5MjNlY2E0ZjZmYTAiLCJzcmMvYXBpL2ZtdC9sb3dlcl9oZXgucnMiOiI1 NThmZDU5MmY3ZjQ4NTcxMmZiMDUxNTA5Y2VjYzcxNzRhMjFlNmJmNjJlNWNlNjQ3NjZlNzVhZmM5 N2JiOGUxIiwic3JjL2FwaS9mbXQvb2N0YWwucnMiOiIzYjJlNzA4NzdhNGYzNjhjNzcwNGY4ZTI1 NDIzNmMwMTRjMzY1Yzc0ZDkzMzcxYzFmZWI1ZjAzMGU2YzY2NDIyIiwic3JjL2FwaS9mbXQvdXBw ZXJfaGV4LnJzIjoiMmE0NDJmNjY2YmM4MGUyMmQ0MWY5MDNmODgxMjM4ZmUxMTRkZDQ5MzQ0YzNl ZDY5ODQ5MjUwZTg1M2NhZmM1ZCIsInNyYy9hcGkvZnJvbS5ycyI6IjJlNTk5ZDgzMjljYjA1ZWFm MDYyMjRjYzQ0MTM1NWM0YjdiNTEyNTRmYzE5MjU2NjE5MzMzYmU4YzE0OWQ0NDQiLCJzcmMvYXBp L2Zyb20vZnJvbV9hcnJheS5ycyI6IjVkMmNjNzAwNTY4Mzc2YmY2ZWUxZmU1ZTQwNmRhM2JjMmQ0 ODhmZjE1NTY0NGJmNzNkMDZhMTM0OWI3M2ZjNTMiLCJzcmMvYXBpL2Zyb20vZnJvbV92ZWN0b3Iu cnMiOiI5NzY0MzcxYWE5ZTYwMDVhYWNlNzRkZWExNGY1OWU1NjExYTA5NWI3Y2Y0MjcwNzk0MDky NDc0OTI4MmM1MmYwIiwic3JjL2FwaS9oYXNoLnJzIjoiNTA3NmVjZTg3OTY5NTkyYzg3NjQ4NmY1 YjFlYThhZmZiZWFlYzM3OWQxYTE0YTMwODU5ZTBhYTU1OTIwMTlkZSIsInNyYy9hcGkvaW50b19i aXRzLnJzIjoiOGY4MDExNjI3MjUwZTIzZTY2YjVjMGNhNjQxYWZiMDc5ZDgyMzI2NzRiYjEzNTQx NDBiNTM2YmRiZWE2M2U1NSIsInNyYy9hcGkvaW50b19iaXRzL2FyY2hfc3BlY2lmaWMucnMiOiJl NzQ0NTAyMWYzOTA4MzI2YmZlZTc1ODgzNWU1ZmM1YWQ1NmFhMWJhYTc3ZmMxYzU4YWJlNDM1MGM2 NmM2NzBhIiwic3JjL2FwaS9pbnRvX2JpdHMvbWFjcm9zLnJzIjoiYmI0ZmU5OWJlMmFmNmEyMWQ4 MDVlZmFiNDRjOGU0ZTYxYTdiMmFkYjQyYTY1NTA0YTBjZjI2ZDEzZWZkYWRjZCIsInNyYy9hcGkv aW50b19iaXRzL3YxMjgucnMiOiIxNDVhNDQ5MjJiMDlhNWNhNWI2MmQ4OGE0NjFkMzI3ZDM5OWE5 OTdhMTVkYjRiMTFkN2IxN2U1NTRhOWZhNGMwIiwic3JjL2FwaS9pbnRvX2JpdHMvdjE2LnJzIjoi ZjRmNGY2MWJhODhhYTUxYjE1OGVjNTZjYTNkY2UyMzQzNDlhZWEwZGFmMmIzMDI5YTE0YWI1MTI1 ZDFlNDFlNSIsInNyYy9hcGkvaW50b19iaXRzL3YyNTYucnMiOiI4Y2VhOWM1ZDk4MDlmMTEzMjNj YjdjZGM1M2I4M2RmNTkzZmQxN2NhZjkyNjI1MWU0MTJhZTk3NzdiZWQ1NDdmIiwic3JjL2FwaS9p bnRvX2JpdHMvdjMyLnJzIjoiOTA1YmE2ODNkMzQyZmEzMmY0MjAyYjgwYmI0NjUzMDgwN2JkMGE1 YjU4OGY2YzJlOGM5ZjQ3NTIyM2M0Nzc3NSIsInNyYy9hcGkvaW50b19iaXRzL3Y1MTIucnMiOiJl MjVhZmExZmJmMDg4YTVkNThlN2Q3NWQxOTdiNmNkNGM1NjYzN2VhMjg1NDJiYTE4ZTQ2YTQ1MWYy OWQwNGU3Iiwic3JjL2FwaS9pbnRvX2JpdHMvdjY0LnJzIjoiZDYyMzgwMjJjY2ZmN2I5MmU1NWIz ZjYwMTdmYzI2OWFjYjZmMzYzMzBhNmQ3ZThmYjM4OTg1M2EwZjFiNjQ3OCIsInNyYy9hcGkvbWF0 aC5ycyI6IjhiMmEyZmM2NTE5MTdhODUwNTM5Zjk5M2FhMGI5ZTViZjRkYTY3YjExNjg1Mjg1Yjhk ZThjZGNhMzExNzE5ZWMiLCJzcmMvYXBpL21hdGgvZmxvYXQucnMiOiI2MWQyNzk0ZDY4MjYyYTEw OTBhZTQ3M2JkMzA3OTNiNWY2NWNmNzMyZjMyYTY2OTRhM2FmMmNlNWQ5MjI1NjE2Iiwic3JjL2Fw aS9tYXRoL2Zsb2F0L2Ficy5ycyI6IjViNmIyNzAxZTJlMTExMzViN2NlNThhMDUwNTJlYTgxMjBl MTBlNDcwMmM5NWQwNDZiOWQyMWI4MjdiMjZiZjgiLCJzcmMvYXBpL21hdGgvZmxvYXQvY29uc3Rz LnJzIjoiNjMwMmM5MjYxZGE0MjkxZDE0NGQ1YmI1MzQ5M2NkZDA3MzQ5OGZlYjQwOTU1ZmI2ODYw ZWEzYzRkMDZjOTc4YSIsInNyYy9hcGkvbWF0aC9mbG9hdC9jb3MucnMiOiI0YzJkZDcxNzM3Mjhl ZjE4OTMxNGYxNTc2Yzk0ODZlMDNiZTIxYjdkYTk4ODQzYjJmOTAxMTI4MmE3OTc5ZTMxIiwic3Jj L2FwaS9tYXRoL2Zsb2F0L2V4cC5ycyI6IjdjNmQ1ZjFlMzA0ZjQ5OGEwMWNmYTIzYjkyMzgwYzgx NWQ3ZGEwYWQ5NGVhZTM0ODM3ODNiYzM3N2QyODdlZWYiLCJzcmMvYXBpL21hdGgvZmxvYXQvbG4u cnMiOiI1NGM3NTgzZjNkZjc5M2IzOWZmNTc1MzRmYWRlMjdiNDFiYjk5MjQzOWU1ZGMxNzgyNTJm NWNhMzE5MGEzZTU0Iiwic3JjL2FwaS9tYXRoL2Zsb2F0L211bF9hZGQucnMiOiI2MmNhYzc3NjYw ZDIwMTU5Mjc2ZDRjOWVmMDY2ZWI5MGM4MWNiZGRiODA4ZThlMTU3MTgyYzYwNzYyNWFkMmViIiwi c3JjL2FwaS9tYXRoL2Zsb2F0L211bF9hZGRlLnJzIjoiYmFlMDU2ZWU5ZjNhNzBkZjM5ZWMzYzNi MmY2NDM3YzY1MzAzODg4YTdiODQzZWYxYTViY2YxZjVhY2EwZTYwMiIsInNyYy9hcGkvbWF0aC9m bG9hdC9wb3dmLnJzIjoiOWRkYjkzODk4NGIzNmQzOWQ4MmE4MmY4NjJmODBkZjhmN2ZiMDEzZjFk MjIyZDQ1Njk4ZDQxZDg4NDcyZjU2OCIsInNyYy9hcGkvbWF0aC9mbG9hdC9yZWNwcmUucnMiOiI1 ODkyMjU3OTRmZjFkYmYzMTE1OGRmZjY2MGU2ZDQ1MDllY2M4YmVmYmI1N2M2MzM5MDBkZWE1YWMw Yjg0MGQ2Iiwic3JjL2FwaS9tYXRoL2Zsb2F0L3JzcXJ0ZS5ycyI6ImEzMmFiZGNjMzE4ZDdjY2M4 NDQ4MjMxZjU0ZDc1Yjg4NGI3Y2JlYjAzYTdkNTk1NzEzYWI2MjQzMDM2ZjRkYmYiLCJzcmMvYXBp L21hdGgvZmxvYXQvc2luLnJzIjoiY2JkMzYyMmI3ZGY3NGYxOTY5MTc0MzAwMWM4Y2Y3NDdhMjAx Zjg5NzdhZDkwNTQyZmVlOTE1ZjM3ZGNkMWU0OSIsInNyYy9hcGkvbWF0aC9mbG9hdC9zcXJ0LnJz IjoiMGM2NmQ1ZDYzZmIwOGU0ZDk5YzZiODJhODgyOGU0MTE3M2FmZjFhYzlmYTFhMjc2NGExMWZh YzIxN2NjZjJhYyIsInNyYy9hcGkvbWF0aC9mbG9hdC9zcXJ0ZS5ycyI6IjczMWUxYzlmMzIxYjY2 MmFjY2RkMjdkYWNiM2FhYzJlODA0M2I3YWVjYjJmMjE2MWRkZTczM2JkOWYwMjUzNjIiLCJzcmMv YXBpL21pbmltYWwucnMiOiIxZjIyYmNjNTI4NTU1NDQ0ZTc2ZGU1NjllYzBhZTIwMjliOWFlOWQw NDgwNWVmZWFmYTkzMzY5YzgwOTgwMzZiIiwic3JjL2FwaS9taW5pbWFsL2l1Zi5ycyI6IjgxOWNm ZjI2ZDNlMTk2ZjgwNzY0NWJjYzFkNzllYjI3ZDlmMTc1ZWRiODk5MTBmMjI3NGQ1MmExZTkxM2Nk MTEiLCJzcmMvYXBpL21pbmltYWwvbWFzay5ycyI6IjBjYWUxMGFlMWZjNjVmNTA3MGU2ODZjMGM3 OWJmYmEyN2I4NmIzM2Q2YzM5OTM2N2JkNDg0OGZiMzY3ZGNlYzQiLCJzcmMvYXBpL21pbmltYWwv cHRyLnJzIjoiZjc0ZDdhNDkyNWQ3MjA5ZmFlYmMyNmVhODMxNTI1OWNiMmMwOGVjNjU3ODlhNzA4 NjllNTk1NjQ5YTliYzM5YSIsInNyYy9hcGkvb3BzLnJzIjoiM2UyNzNiMjc3YTBmMzAxOWQ0MmMz YzU5Y2E5NGE1YWZkNDg4NWQ1YWU2ZDIxODJlNTA4OWJiZWVjOWRlNDJlZSIsInNyYy9hcGkvb3Bz L3NjYWxhcl9hcml0aG1ldGljLnJzIjoiZDJkNWFkODk3YTU5ZGQwNzg3NTQ0ZjkyN2UwZTdjYTQw NzJjM2U1OGIwZjRhMjMyNDA4MzMxMmIwZDVhMjFkNyIsInNyYy9hcGkvb3BzL3NjYWxhcl9iaXR3 aXNlLnJzIjoiNDgyMjA0ZTQ1OWNhNmJlNzk1NjhlMWM5ZjcwYWRiZTJkMjE1MTQxMmRkZjEyMmZi MjE2MWJlOGViYjUxYzQwYyIsInNyYy9hcGkvb3BzL3NjYWxhcl9tYXNrX2JpdHdpc2UucnMiOiJj MjUwZjUyMDQyZTM3YjIyZDU3MjU2YzgwZDQ2MDQxMDRjZmQyZmJlMmEyZTEyN2M2NzYyNjcyNzBj YTVkMzUwIiwic3JjL2FwaS9vcHMvc2NhbGFyX3NoaWZ0cy5ycyI6ImM0NzczZDQzNWMzZjlkYTQ0 NTQzMjdlNmZiYjJiNWI0MWExYzBlYmIxY2NhNzM3MmU2OWRjN2EzNDRhMWI2ZTQiLCJzcmMvYXBp L29wcy92ZWN0b3JfYXJpdGhtZXRpYy5ycyI6ImRkY2ExNWQwOWRkZWVmNTAyYzJlZDY2MTE3YTYy MzAwY2E2NWQ4N2U5NTllOGI2MjJkNzY3YmRmMWMzMDc5MTAiLCJzcmMvYXBpL29wcy92ZWN0b3Jf Yml0d2lzZS5ycyI6ImIzOTY4ZjcwMDViNjQ5ZWRjYzIyYTU0ZTIzNzliMTRkNWVlMTkwNDVmMmU3 ODQwMjk4MDU3ODFhZTA0M2I1ZWUiLCJzcmMvYXBpL29wcy92ZWN0b3JfZmxvYXRfbWluX21heC5y cyI6Ijc2YmY4Y2I2MDdlMmM0NDI5MjNjMWRhMTA2MWE2YjgwZDc0MmQ2MDc0MDgwMzNjMmEzNzYx MTYxMTE0Y2YyYTAiLCJzcmMvYXBpL29wcy92ZWN0b3JfaW50X21pbl9tYXgucnMiOiJhMzc4Nzg5 YzZmZjliMzJhNTFmYmQwYTk3ZmZkMzZlZDEwMmNkMWZlNmEwNjdkMmIwMjAxN2MxZGYzNDJkZWY2 Iiwic3JjL2FwaS9vcHMvdmVjdG9yX21hc2tfYml0d2lzZS5ycyI6IjUwNTJkMTg1MTdkNzY1NDE1 ZDQwMzI3ZTZlOGU1NWEzMTJkYWFjYTBhNWUyYWVjOTU5YmZhNTRiMTY3NWY5YzgiLCJzcmMvYXBp L29wcy92ZWN0b3JfbmVnLnJzIjoiNWM2MmY2YjAyMjE5ODNjZGJkMjNjZDBhM2FmMzY3MmU2YmEx MjU1ZjBkZmU4YjE5YWFlNmZiZDY1MDNlMjMxYiIsInNyYy9hcGkvb3BzL3ZlY3Rvcl9yb3RhdGVz LnJzIjoiNmMzZjc2MWQ5ZDU1MWY2MzY1YThhOTU1MzljZWFjZTRiMWEwMmUwYjEyZDE0NGYzNGVk NjhkYjk0ZTg4Y2ZmNCIsInNyYy9hcGkvb3BzL3ZlY3Rvcl9zaGlmdHMucnMiOiJlNTEwYmUxNDEy N2MwZmZkNThhMjU3M2EzOTcwMWRhMzU1N2Q2NmJlZGVjMDk4MzdhYzhiYmQ0NGQ1NzlkYTAwIiwi c3JjL2FwaS9wdHIucnMiOiI4YTc5MzI1MWJlZDYxMzBkY2ZiMmYxNTE5Y2VhYTE4Yjc1MWJiYjE1 ODc1OTI4ZDBmYjZkZWI1YTVlMDc1MjNhIiwic3JjL2FwaS9wdHIvZ2F0aGVyX3NjYXR0ZXIucnMi OiIzZDYxNGY5ZDViNGNhMjAxYTlmN2U0NmFmNDQwNWUxZDJjMjhlY2VlMTYyMDI5N2MyM2I1MmUz N2I5MmNjMGVhIiwic3JjL2FwaS9yZWR1Y3Rpb25zLnJzIjoiYWU1YmFjYTgxMzUyZWNkNDQ1MjZk NmMzMGMwYTFmZWVkYTQ3NWVjNzNkZGQzYzNlYzZiMTRlOTQ0ZTU0NDhlZSIsInNyYy9hcGkvcmVk dWN0aW9ucy9iaXR3aXNlLnJzIjoiOGJmOTEwYWUyMjYxODhiZDE1ZmM3ZTEyNWYwNThjZDI1NjZi NjE4NmZjZDBjZDhmZDAyMGYzNTJjMzljZTEzOSIsInNyYy9hcGkvcmVkdWN0aW9ucy9mbG9hdF9h cml0aG1ldGljLnJzIjoiNDdhNTY3OTg5NmRiMmNiYjU2YzMxMzcyZmU0MjE0M2RhMDE1YjZiZWFl N2RiNWQyZjNhMDMwOWRkZjQyN2FlMSIsInNyYy9hcGkvcmVkdWN0aW9ucy9pbnRlZ2VyX2FyaXRo bWV0aWMucnMiOiJjMmRmM2NmNzQ5M2NjYTQxNzRmMmM2NWFlYTQyMmEzZDIwZDhhMjNhZjAzZjhk NTdjZWY3MmMxOWZlZThmMjBkIiwic3JjL2FwaS9yZWR1Y3Rpb25zL21hc2sucnMiOiJkYjgzMzI3 YTk1MGUzM2EzMTdmMzdmZDMzY2E0ZTIwYzM0N2ZiNDE1OTc1ZWMwMjRmM2UyM2RhODUwOTQyNWFm Iiwic3JjL2FwaS9yZWR1Y3Rpb25zL21pbl9tYXgucnMiOiI2YWY4YzlhYTQ1YzY5OTYxYjFiNmZj MjA1Mzk1ZjQ3NjdkNDQyMTg2OWZiMTA1ZmIzZDU2M2M1NjA1ZmMxM2NkIiwic3JjL2FwaS9zZWxl Y3QucnMiOiI2YjA3ZTdlODAyNmRmNTYxZjczMDcyMjFhODk2ZjBmYmIyNzI1MzZmNDFiOTEwOTA0 MGFjMDk0YzI0YzY5MzMxIiwic3JjL2FwaS9zaHVmZmxlLnJzIjoiYmU3ZmFmZjliNTk2NTQ5MjZk ZjEyODk3YjJmOThhNGJhYTdkNmFjZjJhZjFhYWY5M2QzODhiYTZlOTZmODNlYyIsInNyYy9hcGkv c2h1ZmZsZTFfZHluLnJzIjoiYmZlYTVhOTE5MDViMzE0NDRlOWVmN2NhNmVkZGI3YTk2MDZiN2Uy MmQzZjcxYmI4NDJlYjI3OTVhMDM0NjYyMCIsInNyYy9hcGkvc2xpY2UucnMiOiJlZTg3NDg0ZThh ZjMyOTU0N2I5YTVkNGYyYTY5ZThiZWQ2ZWExMGJiZDk2MjcwZDcwNjA4Mzg0M2Q0ZWVhMmFjIiwi c3JjL2FwaS9zbGljZS9mcm9tX3NsaWNlLnJzIjoiMzczNTM2MzAwMDczNzEwNGE4ZmM1ZjM5NGFk OGMzMWVjMTRlODg1OTUyYmQ1NzY0N2RkMmE4NDAwMWFlZTBhNiIsInNyYy9hcGkvc2xpY2Uvd3Jp dGVfdG9fc2xpY2UucnMiOiI3OWQwOWM2NGQwMDcyNDc4M2M3N2M0MmU0NTgzZWVlYzk3YjE4ZGI5 NGNmMmFlMTQ2YjU2NGMzZjg1Y2ZlZmQ2Iiwic3JjL2FwaS9zd2FwX2J5dGVzLnJzIjoiMDViNDI2 MmVhYWRlMmY2M2U2Y2QzYjc4MGMxOWEwM2FlY2QyNDU5ZDRjYzQzNjAwNTFmYzA4ODg4NzE3OWE2 ZSIsInNyYy9jb2RlZ2VuLnJzIjoiZGI0ZjIzMmZiOWY1NzI4ZGIzMTBiODdkYzhjNDczM2JlNDhh ZmFjYWIxMDUzNzk4YzA2MTA2YmVmOWE0MmIwNSIsInNyYy9jb2RlZ2VuL2JpdF9tYW5pcC5ycyI6 IjUyNWVhNmZmN2FkMWUwNDNiNmY2MTM2OTkyMTY2ZjE4MDNlZDU1NjNiN2Y2ZmMyOTJjMWM0MDI1 N2QyMGUyNjQiLCJzcmMvY29kZWdlbi9sbHZtLnJzIjoiMTJlNzQ4YjQ5MjhjM2JlNmNjMTJiNDE2 NWMzMDQxYTNkMGVmY2NmNjE5NTMzOGVjZDNkODhiOGZkYjBiYmNjNyIsInNyYy9jb2RlZ2VuL21h dGgucnMiOiJkZmNmMDJhZDM0ZTJmZGZlMjJjM2YxY2MyODIyMDAxY2M4OTVlNjUwMzFiNGQwNmU1 ODVlNTA0NzgzOWZlYmI3Iiwic3JjL2NvZGVnZW4vbWF0aC9mbG9hdC5ycyI6IjJjMWNiY2UxNTVi YzUyN2NlMzRkNDcyYzBmZWY2YmMzZGFkYjc5Y2Q3YTM1N2RkN2FhNWIxZWJlYjFkNzdhMTMiLCJz cmMvY29kZWdlbi9tYXRoL2Zsb2F0L2Ficy5ycyI6ImQ1YWFhZGNmNTQwYmRiOWI0MjY0ZGNhNjQ3 MWEyNTVmZDdiZjUwOWU3NjNiZWYwMjM5YzAxNDRhNjg0NjZmZWEiLCJzcmMvY29kZWdlbi9tYXRo L2Zsb2F0L2Nvcy5ycyI6IjE3ZjI4ZDI5MDBjODUyZGNhMjIxZmE5YzkyYTljZDVmZTdmZDJkZjhk NDI3YmJjNjAyMTZjNzQ5YjJiZTAxM2QiLCJzcmMvY29kZWdlbi9tYXRoL2Zsb2F0L2Nvc19waS5y cyI6ImRiYWY5ZjQ0M2Y5ODQ2YTQ5MWQ0ZWM1MjIxMGE3YjU4MzVkZDU5M2IwMzM2NmUzMTM1YjA1 YzM3ZDcwZjlkNmMiLCJzcmMvY29kZWdlbi9tYXRoL2Zsb2F0L2V4cC5ycyI6ImQzMDAwNThhNGJj YzdhZTc5NzZmMjE2ZjgxOTAyY2Q3M2E5ZTYwM2FkNjM4ODBkZmYzYmJjODY2YzI3YTlmMzciLCJz cmMvY29kZWdlbi9tYXRoL2Zsb2F0L2xuLnJzIjoiYzg1MWUyMTFlNDNmODI1NjA5M2JhNzViMDNh ZTBjMzA3Yzk5NjJlZTY2ZDk0ZjA5YjRkZDgwMDY4MTkwY2JkZiIsInNyYy9jb2RlZ2VuL21hdGgv ZmxvYXQvbWFjcm9zLnJzIjoiZmM5OTI0ODY5ZWQ4NWU0Nzk1OTgzYWYyMjhjYWNmMjMxNThmNGYz NTkxOWFkY2UxNmM5MjBhZDRhM2YwYTAwOSIsInNyYy9jb2RlZ2VuL21hdGgvZmxvYXQvbXVsX2Fk ZC5ycyI6IjA0MWE1YjY5ZDU5OTFkOTNlZjc5NTM1MWIxNzU2MGMxMGZhZjgwYjc4ZmQyNmFkN2Rm NDJhMjM5YjMyY2Y5ZGUiLCJzcmMvY29kZWdlbi9tYXRoL2Zsb2F0L211bF9hZGRlLnJzIjoiZDcx ZDVmMGYzMzMzYjYyYTc0MzliODIzY2I3YWRmNTM0MGVhMTU1NWNlODIwZmI0YTNmNGNiOTIyZjcz ZjVmNSIsInNyYy9jb2RlZ2VuL21hdGgvZmxvYXQvcG93Zi5ycyI6Ijk3NDJjMzg3N2YxYTU1MDlj YTVjOTQ5MmE0MDg4NGI2NTc5YmE2ZGQxMWMyNmI3MTEyZTYzZjcwNjY2YjM5NWQiLCJzcmMvY29k ZWdlbi9tYXRoL2Zsb2F0L3Npbi5ycyI6IjBlOTg2OGQzNTUzMTU2NjUwOWYzYTAxZDg1ZDUyNTMw NDVlYjRhZmE4NTI1ZDg0MDdkY2MxZjVmMzNjNTYwMzYiLCJzcmMvY29kZWdlbi9tYXRoL2Zsb2F0 L3Npbl9jb3NfcGkucnMiOiI4ZTZiNjE0MmQ3ZGQyNDBjZGIzNjY2OTcyMmU4MmFiOTgxMGEyMjYx ZTg2ZTY1OWY3ZDk3YTk0MmFkOGIxMjU4Iiwic3JjL2NvZGVnZW4vbWF0aC9mbG9hdC9zaW5fcGku cnMiOiJiYjZkMzlkYjhmOTIxZTAzYTMwMWZjNTIwNmFjMWE2MWE5N2RlZjhhMmNiODNiODdjY2Yx ODlmM2ZjNDhkNTQ4Iiwic3JjL2NvZGVnZW4vbWF0aC9mbG9hdC9zcXJ0LnJzIjoiZTZlYmIwYzVm NDI4ZWZhZDFmNjcyYjlhOGZlNGU1ODUzNGRiZjFlYTVhOGZlMDkyY2U1Y2U3NmI1MmZlODljYiIs InNyYy9jb2RlZ2VuL21hdGgvZmxvYXQvc3FydGUucnMiOiIyM2FjZmFlYTM4ZDBlMDgxYTZkOTAy MWMxMDk0ZTgxM2QwY2ZkMTJjNThjMWVjYTk2NjJhYWRlNWU2MjVkNTFjIiwic3JjL2NvZGVnZW4v cG9pbnRlcl9zaXplZF9pbnQucnMiOiI2Y2ExM2MyMTRiNmNmN2UwOTI5ZGJlMThlOTZhMTZmYzBi YjdkODc5OTYwOGRmMjljNGM4MTE1NDkwZjk5ZTAxIiwic3JjL2NvZGVnZW4vcmVkdWN0aW9ucy5y cyI6IjhlYjE4ZWJhYzc2OTg1ZDJhYTMwMjYyYTJlZGQ4Y2IwMDQyMzBiNTExYTc2NWQ2NTc1MjVm Njc3YTU4NWMxMmMiLCJzcmMvY29kZWdlbi9yZWR1Y3Rpb25zL21hc2sucnMiOiJlNjdmMzVhMWY0 ZDE1NmE0ODk0YTJkNmVhNWE5MzViNGQ4OThjZjcwZWVmYjI3MTVmNWMxY2MxNjVlNzc2YzExIiwi c3JjL2NvZGVnZW4vcmVkdWN0aW9ucy9tYXNrL2FhcmNoNjQucnMiOiI4NGIxMDFjMTdjYWQxZWRl NGViNmQzOGNhZGEwYWM3ZGEyMzlkYmE4Y2VhM2JhZGQzODI5Yjk2N2U1NTg0MzFmIiwic3JjL2Nv ZGVnZW4vcmVkdWN0aW9ucy9tYXNrL2FybS5ycyI6ImFhYTA3MTI5YmQwNzhhZTdlNjc3Y2Y4Yjhl NjdlYzlmMzA1MzY2MDZhMGM3ZWQxYmFhYTE4ZmQxNzkzYmIyMTgiLCJzcmMvY29kZWdlbi9yZWR1 Y3Rpb25zL21hc2svZmFsbGJhY2sucnMiOiIzZWI5MzE5ZDJjN2NmMTkyMTZiNjA3Yjg0NTk2MTJj NGUwMjdiNjQzY2YxMWIwMzY5MzdkMzY4OTZiZjc2Nzg2Iiwic3JjL2NvZGVnZW4vcmVkdWN0aW9u cy9tYXNrL2ZhbGxiYWNrX2ltcGwucnMiOiI3NjU0N2YzOTZlNTVlZjQwMzMyN2M3N2MzMTRjZjhk YjhjN2E1YzliOTgxOWJmYjkyNWFiZWFjZjEzMDI0OWU1Iiwic3JjL2NvZGVnZW4vcmVkdWN0aW9u cy9tYXNrL3g4Ni5ycyI6IjM2ZGNkOGFmNGFiOTk3MzBhMDc4ZWQxMTNkMzk1NWY3NGViMWEyODc2 ZTJlNmQ5ZjIyNGUwZmY0NjJjMjE2ZDEiLCJzcmMvY29kZWdlbi9yZWR1Y3Rpb25zL21hc2sveDg2 L2F2eC5ycyI6IjNhNDA4NjhiMzhjODZlMzVhZWZiOTZkNzU3OGRlNjMyMmVmZTg5ZDgxMzVlMDM2 NjM1OWI1NGRkZDA2Zjg2MWEiLCJzcmMvY29kZWdlbi9yZWR1Y3Rpb25zL21hc2sveDg2L2F2eDIu cnMiOiI2NzdhZWQzZjA1NjI4NTI4NWRhYTNhZGZmOGJjNjVlNzM5NjMwYjQ0MjRkZWZhNmQ5NjY1 ZTE2MGYwMjc1MDdlIiwic3JjL2NvZGVnZW4vcmVkdWN0aW9ucy9tYXNrL3g4Ni9zc2UucnMiOiI4 NTIyZjZlZDAzZjZjMzJkZDU3N2Q0Mjk4ZGY0NzdjMDhhZWFhYTM4NTYzNzA2ZjI5MDk2ZTE5MTFl ZDczMWYyIiwic3JjL2NvZGVnZW4vcmVkdWN0aW9ucy9tYXNrL3g4Ni9zc2UyLnJzIjoiNTRlYzU2 ZTQ5YjBjNjg0MWVjY2I3MTllNGYzMTBkNjVmZTc2N2MwNDEzNmIyZWMyMGJkOGI5ZDdkOTg5N2I5 ZSIsInNyYy9jb2RlZ2VuL3NodWZmbGUucnMiOiIxZWMyOTMwZjRlMWFjYzQzYWMzMGI1MThhZjI5 OGQ0NjZhNzllOWU3NTczNGE1MWMzODBiNzgxMGVmZDFhMjdmIiwic3JjL2NvZGVnZW4vc2h1ZmZs ZTFfZHluLnJzIjoiM2YxM2NhMTU5NzM3ODc1OGQwNTEwNmJmNWZmMzcxNWVlZTUzMWYzY2I2ZDg4 ZjQ4YjkxODJiZDZjOTM4NmI1MSIsInNyYy9jb2RlZ2VuL3N3YXBfYnl0ZXMucnMiOiJjNjdjODZl OTFjYTNmYzc3NTM5ZTBlZmNlYTA4MWEzYzYyNTQ4Y2NjZjUwMzk2M2FlNDA4ZjJlODZmNGU2YTIx Iiwic3JjL2NvZGVnZW4vdjEyOC5ycyI6Ijk0MjI2YjMxZWM0MDNkMThkOWQyZmUwNjcxM2YxNDdj OWM3OWU5YjVmOTEwNTA4OTA4ODI2NjMxM2Y4NDMxODUiLCJzcmMvY29kZWdlbi92MTYucnMiOiJk ZGVjNGZmYjY2YjZmN2FhZmZiOWExNzgwYzVkZGJhODI1NTdhYmQ3NGY0NTA3M2QzMzUwNDdlMDRj Zjc0OTI0Iiwic3JjL2NvZGVnZW4vdjI1Ni5ycyI6IjZiNjM5MTdmMDQ0NDExOGQ2YjE1OTViZmYy MDQ1ZTU5Yjk3YzRkMjQwMTJiZDU3NWY2OWYxZjBlZmM1YTAyNDEiLCJzcmMvY29kZWdlbi92MzIu cnMiOiIzNDc3YjNjNTU0MGFlZDg2ZTYxZTJmNTgwN2RkMzFkYjk0NzQxM2NlYzkxODFjNTg3ZDkz ZWQ2ZWM3NGYwZWJhIiwic3JjL2NvZGVnZW4vdjUxMi5ycyI6IjU4NTRmOTlkM2FhYmM0Y2Q0MmIy OGEyMGQ5Y2U0NDc3NTZkYzJiYTAyNGE0MDlhNjliNmE4YWUxZjE4NDJmYzUiLCJzcmMvY29kZWdl bi92NjQucnMiOiJlOWU4OWNhZWJmZTYzZDEwYzBjYmNhNjFlNGRmZGJhM2I3ZTAyZWUwOTg5MTcw ZjgwYmVlZDIzMjM3ZGRkOTUwIiwic3JjL2NvZGVnZW4vdlB0ci5ycyI6ImYwNzUzYjQwNWNkYzg2 NWJkZjhlODJjNjUwNWYyOTllYTFmOTYxMzYyMzllYmJhZjdmOWNlOTNkMzEwNzY0YjgiLCJzcmMv Y29kZWdlbi92U2l6ZS5ycyI6ImM4OWY1ZmRlYjI4YWM0YzgyNzJlZDE4MTZmY2UwM2Q5ZDk1MzA4 Y2MzMmJiMjUzM2JkOGIyMGNkNWFjMTAyYWMiLCJzcmMvbGliLnJzIjoiMDUwNDhjNmE4NWVjNjVj ZjkwMmQ5ZGQ4Zjc1N2EzZjc2MzkyYjcwM2E2Nzk0ZWE3MWYwZDQxNTAwYTg5Zjc4ZiIsInNyYy9t YXNrcy5ycyI6IjcwZmMwYWJlNGMyOTA3Y2UyYTQ5MWM1NzRlMWNmYjlmMzQyMzM4NWRhMmUxYTky M2E0OGM5YzEzZjhiYTZlZDgiLCJzcmMvc2VhbGVkLnJzIjoiYWU3ZmRlYWY1ZDg0Y2Q3NzEwZWQ3 MzBjYTcyY2E3ZWFiYTkzZGY2Y2IwYWNiMTgzZTVjMGE3MzI3YWNmMTk3ZiIsInNyYy90ZXN0aW5n LnJzIjoiODk2NjY5YzA4ZDhjODAxNDQ4YTRkMmZhZGM5ZDYzM2VkYTBmYmU4NzlkMjI5OTk3ZTJh MTgyZTMxMjc4ZTQ2OSIsInNyYy90ZXN0aW5nL21hY3Jvcy5ycyI6IjQwM2JiYzVlY2I3Yzc4NmZl MzYxNTZkZjMwMmQwYzA3YTgxMjI0MDhkYmIxNWY3NDc0ZDc2ODIyMjRiYTExMDYiLCJzcmMvdGVz dGluZy91dGlscy5ycyI6IjQxOTEyYTkyMjY2ZGZlODg0NjQ3ZmMwMzVlNDI0MmZkNzQ2MTAwZGY4 ZTgzOTgwOGFlMDM5N2FmMzc1OWEzYzgiLCJzcmMvdjEyOC5ycyI6IjE2Y2Y5YThlNzE1NmI4OTll ZTliOWNkM2YyZGJhOWQxM2VjNjMyODliZWE4YzNlZTlhZTJlNDNhZDk1MTAyODgiLCJzcmMvdjE2 LnJzIjoiY2I2NDY1Y2YxZTAwYmY1MzAxODNhZjE4MTliOWZlM2Q3ZWVjOTc4Zjg3NjVkNWU4NWQ5 YjU4YTM5YTRiNDA0NSIsInNyYy92MjU2LnJzIjoiZmUyMzUwMTdkYTE4YzdmM2MzNjE4MzFjNjBl MzE3M2FkMzA0ZDhlYTFlOTVkNjRlYmViYzc5ZGEyZDcwODUxMSIsInNyYy92MzIucnMiOiIxNDVk MzQ3ODU1YmFjNTliMmRlNjUwOGY5ZTU5NDY1NGU2YzMzMDQyM2FmOWVkYzBlMmFjOGY0ZDFhYmRm NDVlIiwic3JjL3Y1MTIucnMiOiJmMzcyZjI3N2YzZTYyZWI1Yzk0NWJiMWM0NjAzMzNmZGIxN2I2 OTc0ZmNjODc2NjMzNzg4ZmY1M2JkZWQ5NTk5Iiwic3JjL3Y2NC5ycyI6IjBiODA3OTg4MWI3MTU3 NWUzNDE0YmUwYjdmOGY3ZWFiYTY1MjgxYmE2NzMyZjJiMmY2MWY3M2U5NWI2ZjQ4ZjciLCJzcmMv dlB0ci5ycyI6IjhiM2U0MzNkNDg3MTgwYmI0MzA0ZmY3MTI0NWVjYWQ5MGYwMDEwZjQzZTEzOWE3 MjAyN2I2NzJhYmU1OGZhY2MiLCJzcmMvdlNpemUucnMiOiJlZGE1YWEwMjA3MDZjYmY5NGQxNWJh ZGE0MWEwYzJhMzVmYzhmM2YzN2NiN2MyY2Q2ZjM0ZDIwMTM5OWE0OTVlIiwidGVzdHMvZW5kaWFu bmVzcy5ycyI6IjUxNDdmODZkMjI0YzRjNTQwYjc3MjAzM2RhMmY5OTRjYWQ5YmM5YzAzNWYzOGVj MjFlMjNiYzRlNTVmOGE3NTkifSwicGFja2FnZSI6bnVsbH0KLVwgTm8gbmV3bGluZSBhdCBlbmQg b2YgZmlsZQotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvLmdpdGh1 Yi93b3JrZmxvd3MvYmVuY2htYXJrcy55bWwgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1k Ly5naXRodWIvd29ya2Zsb3dzL2JlbmNobWFya3MueW1sCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0 L3BhY2tlZF9zaW1kLy5naXRodWIvd29ya2Zsb3dzL2JlbmNobWFya3MueW1sCTIwMjUtMDQtMjAg MTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9z aW1kLy5naXRodWIvd29ya2Zsb3dzL2JlbmNobWFya3MueW1sCTE5NzAtMDEtMDEgMDM6MDA6MDAu MDAwMDAwMDAwICswMzAwCi1AQCAtMSwzMSArMCwwIEBACi0tbmFtZTogYmVuY2htYXJrcwotLQot LW9uOgotLSAgcHVzaDoKLS0gICAgYnJhbmNoZXM6Ci0tICAgICAgLSBtYXN0ZXIKLS0gIHB1bGxf cmVxdWVzdDoKLS0gIHdvcmtmbG93X2Rpc3BhdGNoOgotLQotLWpvYnM6Ci0tICB4ODZfNjQtdW5r bm93bi1saW51eC1nbnU6Ci0tICAgIHVzZXM6IC4vLmdpdGh1Yi93b3JrZmxvd3MvcnVuLWNpLXNj cmlwdC55bWwKLS0gICAgd2l0aDoKLS0gICAgICB0YXJnZXQ6IHg4Nl82NC11bmtub3duLWxpbnV4 LWdudQotLSAgICAgIHNldHVwX3NjcmlwdDogY2kvc2V0dXBfYmVuY2htYXJrcy5zaAotLSAgICAg IHNjcmlwdDogY2kvYmVuY2htYXJrLnNoCi0tICAgICAgbm9ydW46IDEKLS0gICAgICB2ZXJpZnk6 IDEKLS0gICAgICAjIEZJWE1FOiBmaWd1cmUgb3V0IGhvdyB0byBhZGQgZG93bmxvYWRlZCBpc3Bj IHRvIFBBVEgKLS0gICAgICAjIGZlYXR1cmVzOiBpc3BjCi0tICB4ODZfNjQtYXBwbGUtZGFyd2lu OgotLSAgICB1c2VzOiAuLy5naXRodWIvd29ya2Zsb3dzL3J1bi1jaS1zY3JpcHQueW1sCi0tICAg IHdpdGg6Ci0tICAgICAgdGFyZ2V0OiB4ODZfNjQtYXBwbGUtZGFyd2luCi0tICAgICAgcnVubmVy OiBtYWNvcy1sYXRlc3QKLS0gICAgICBzZXR1cF9zY3JpcHQ6IGNpL3NldHVwX2JlbmNobWFya3Mu c2gKLS0gICAgICBzY3JpcHQ6IGNpL2JlbmNobWFyay5zaAotLSAgICAgIG5vcnVuOiAxCi0tICAg ICAgdmVyaWZ5OiAxCi0tICAgICAgIyBGSVhNRTogZmlndXJlIG91dCBob3cgdG8gYWRkIGRvd25s b2FkZWQgaXNwYyB0byBQQVRICi0tICAgICAgIyBmZWF0dXJlczogaXNwYwotZGlmZiAtTnJidSBh L3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvLmdpdGh1Yi93b3JrZmxvd3MvY2kueW1sIGIv dGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC8uZ2l0aHViL3dvcmtmbG93cy9jaS55bWwKLS0t LSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvLmdpdGh1Yi93b3JrZmxvd3MvY2kueW1s CTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9y dXN0L3BhY2tlZF9zaW1kLy5naXRodWIvd29ya2Zsb3dzL2NpLnltbAkxOTcwLTAxLTAxIDAzOjAw OjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsMjE4ICswLDAgQEAKLS1uYW1lOiBjaQotLQotLSMg dHJpZ2dlciBmb3IgYWxsIFBScyBhbmQgY2hhbmdlcyB0byBtYXN0ZXIKLS1vbjoKLS0gIHB1c2g6 Ci0tICAgIGJyYW5jaGVzOgotLSAgICAgIC0gbWFzdGVyCi0tICBwdWxsX3JlcXVlc3Q6Ci0tCi0t am9iczoKLS0gIHJ1c3RmbXQ6Ci0tICAgIHVzZXM6IC4vLmdpdGh1Yi93b3JrZmxvd3MvcnVuLWNp LXNjcmlwdC55bWwKLS0gICAgd2l0aDoKLS0gICAgICBzY3JpcHQ6IGNpL2FsbC5zaCBjaGVja19m bXQgfHwgdHJ1ZQotLSAgeDg2XzY0LXVua25vd24tbGludXgtYW5kcm9pZDoKLS0gICAgdXNlczog Li8uZ2l0aHViL3dvcmtmbG93cy9ydW4tY2ktc2NyaXB0LnltbAotLSAgICBzdHJhdGVneToKLS0g ICAgICBmYWlsLWZhc3Q6IHRydWUKLS0gICAgd2l0aDoKLS0gICAgICB0YXJnZXQ6IHg4Nl82NC1s aW51eC1hbmRyb2lkCi0tICBhcm12Ny1saW51eC1hbmRyb2lkZWFiaToKLS0gICAgdXNlczogLi8u Z2l0aHViL3dvcmtmbG93cy9ydW4tY2ktc2NyaXB0LnltbAotLSAgICBzdHJhdGVneToKLS0gICAg ICBmYWlsLWZhc3Q6IHRydWUKLS0gICAgd2l0aDoKLS0gICAgICB0YXJnZXQ6IGFybXY3LWxpbnV4 LWFuZHJvaWRlYWJpCi0tICBhYXJjaDY0LXVua25vd24tbGludXgtYW5kcm9pZC1ORU9OOgotLSAg ICB1c2VzOiAuLy5naXRodWIvd29ya2Zsb3dzL3J1bi1jaS1zY3JpcHQueW1sCi0tICAgIHN0cmF0 ZWd5OgotLSAgICAgIGZhaWwtZmFzdDogdHJ1ZQotLSAgICB3aXRoOgotLSAgICAgIHRhcmdldDog YWFyY2g2NC1saW51eC1hbmRyb2lkCi0tICAgICAgcnVzdGZsYWdzOiAtQ3RhcmdldC1mZWF0dXJl PStuZW9uCi0tICB0aHVtYnY3bmVvbi1saW51eC1hbmRyb2lkZWFiaToKLS0gICAgdXNlczogLi8u Z2l0aHViL3dvcmtmbG93cy9ydW4tY2ktc2NyaXB0LnltbAotLSAgICBzdHJhdGVneToKLS0gICAg ICBmYWlsLWZhc3Q6IGZhbHNlCi0tICAgIHdpdGg6Ci0tICAgICAgdGFyZ2V0OiB0aHVtYnY3bmVv bi1saW51eC1hbmRyb2lkZWFiaQotLSAgaTU4Ni11bmtub3duLWxpbnV4LWdudToKLS0gICAgdXNl czogLi8uZ2l0aHViL3dvcmtmbG93cy9ydW4tY2ktc2NyaXB0LnltbAotLSAgICBzdHJhdGVneToK LS0gICAgICBmYWlsLWZhc3Q6IGZhbHNlCi0tICAgIHdpdGg6Ci0tICAgICAgdGFyZ2V0OiBpNTg2 LXVua25vd24tbGludXgtZ251Ci0tICAgICAgcnVzdGZsYWdzOiAtQ3JlbG9jYXRpb24tbW9kZWw9 c3RhdGljCi0tICBpNTg2LXVua25vd24tbGludXgtZ251LVNTRToKLS0gICAgdXNlczogLi8uZ2l0 aHViL3dvcmtmbG93cy9ydW4tY2ktc2NyaXB0LnltbAotLSAgICBzdHJhdGVneToKLS0gICAgICBm YWlsLWZhc3Q6IGZhbHNlCi0tICAgIHdpdGg6Ci0tICAgICAgdGFyZ2V0OiBpNTg2LXVua25vd24t bGludXgtZ251Ci0tICAgICAgcnVzdGZsYWdzOiAtQ3JlbG9jYXRpb24tbW9kZWw9c3RhdGljIC1D dGFyZ2V0LWZlYXR1cmU9K3NzZQotLSAgaTU4Ni11bmtub3duLWxpbnV4LWdudS1TU0UyOgotLSAg ICB1c2VzOiAuLy5naXRodWIvd29ya2Zsb3dzL3J1bi1jaS1zY3JpcHQueW1sCi0tICAgIHN0cmF0 ZWd5OgotLSAgICAgIGZhaWwtZmFzdDogZmFsc2UKLS0gICAgd2l0aDoKLS0gICAgICB0YXJnZXQ6 IGk1ODYtdW5rbm93bi1saW51eC1nbnUKLS0gICAgICBydXN0ZmxhZ3M6IC1DcmVsb2NhdGlvbi1t b2RlbD1zdGF0aWMgLUN0YXJnZXQtZmVhdHVyZT0rc3NlMgotLSAgaTY4Ni11bmtub3duLWxpbnV4 LWdudToKLS0gICAgdXNlczogLi8uZ2l0aHViL3dvcmtmbG93cy9ydW4tY2ktc2NyaXB0LnltbAot LSAgICBzdHJhdGVneToKLS0gICAgICBmYWlsLWZhc3Q6IGZhbHNlCi0tICAgIHdpdGg6Ci0tICAg ICAgdGFyZ2V0OiBpNjg2LXVua25vd24tbGludXgtZ251Ci0tICAgICAgcnVzdGZsYWdzOiAtQ3Jl bG9jYXRpb24tbW9kZWw9c3RhdGljCi0tICBpNjg2LXVua25vd24tbGludXgtZ251LVNTRTRfMjoK LS0gICAgdXNlczogLi8uZ2l0aHViL3dvcmtmbG93cy9ydW4tY2ktc2NyaXB0LnltbAotLSAgICBz dHJhdGVneToKLS0gICAgICBmYWlsLWZhc3Q6IGZhbHNlCi0tICAgIHdpdGg6Ci0tICAgICAgdGFy Z2V0OiBpNjg2LXVua25vd24tbGludXgtZ251Ci0tICAgICAgcnVzdGZsYWdzOiAtQ3JlbG9jYXRp b24tbW9kZWw9c3RhdGljIC1DdGFyZ2V0LWZlYXR1cmU9K3NzZTQuMgotLSAgaTY4Ni11bmtub3du LWxpbnV4LWdudS1BVlgyOgotLSAgICB1c2VzOiAuLy5naXRodWIvd29ya2Zsb3dzL3J1bi1jaS1z Y3JpcHQueW1sCi0tICAgIHN0cmF0ZWd5OgotLSAgICAgIGZhaWwtZmFzdDogZmFsc2UKLS0gICAg d2l0aDoKLS0gICAgICB0YXJnZXQ6IGk2ODYtdW5rbm93bi1saW51eC1nbnUKLS0gICAgICBydXN0 ZmxhZ3M6IC1DcmVsb2NhdGlvbi1tb2RlbD1zdGF0aWMgLUN0YXJnZXQtZmVhdHVyZT0rYXZ4Mgot LSAgeDg2XzY0LXVua25vd24tbGludXgtZ251OgotLSAgICB1c2VzOiAuLy5naXRodWIvd29ya2Zs b3dzL3J1bi1jaS1zY3JpcHQueW1sCi0tICAgIHN0cmF0ZWd5OgotLSAgICAgIGZhaWwtZmFzdDog dHJ1ZQotLSAgICB3aXRoOgotLSAgICAgIHRhcmdldDogeDg2XzY0LXVua25vd24tbGludXgtZ251 Ci0tICB4ODZfNjQtdW5rbm93bi1saW51eC1nbnUtU1NFNF8yOgotLSAgICB1c2VzOiAuLy5naXRo dWIvd29ya2Zsb3dzL3J1bi1jaS1zY3JpcHQueW1sCi0tICAgIHN0cmF0ZWd5OgotLSAgICAgIGZh aWwtZmFzdDogdHJ1ZQotLSAgICB3aXRoOgotLSAgICAgIHRhcmdldDogeDg2XzY0LXVua25vd24t bGludXgtZ251Ci0tICAgICAgcnVzdGZsYWdzOiAtQ3RhcmdldC1mZWF0dXJlPStzc2U0LjIKLS0g IHg4Nl82NC11bmtub3duLWxpbnV4LWdudS1BVlgyOgotLSAgICB1c2VzOiAuLy5naXRodWIvd29y a2Zsb3dzL3J1bi1jaS1zY3JpcHQueW1sCi0tICAgIHN0cmF0ZWd5OgotLSAgICAgIGZhaWwtZmFz dDogdHJ1ZQotLSAgICB3aXRoOgotLSAgICAgIHRhcmdldDogeDg2XzY0LXVua25vd24tbGludXgt Z251Ci0tICAgICAgcnVzdGZsYWdzOiAtQ3RhcmdldC1mZWF0dXJlPSthdngyCi0tICBhcm0tdW5r bm93bi1saW51eC1nbnVlYWJpaGY6Ci0tICAgIHVzZXM6IC4vLmdpdGh1Yi93b3JrZmxvd3MvcnVu LWNpLXNjcmlwdC55bWwKLS0gICAgc3RyYXRlZ3k6Ci0tICAgICAgZmFpbC1mYXN0OiB0cnVlCi0t ICAgIHdpdGg6Ci0tICAgICAgdGFyZ2V0OiBhcm0tdW5rbm93bi1saW51eC1nbnVlYWJpaGYKLS0g IGFybXY3LXVua25vd24tbGludXgtZ251ZWFiaWhmOgotLSAgICB1c2VzOiAuLy5naXRodWIvd29y a2Zsb3dzL3J1bi1jaS1zY3JpcHQueW1sCi0tICAgIHN0cmF0ZWd5OgotLSAgICAgIGZhaWwtZmFz dDogdHJ1ZQotLSAgICB3aXRoOgotLSAgICAgIHRhcmdldDogYXJtdjctdW5rbm93bi1saW51eC1n bnVlYWJpaGYKLS0gIGFybXY3LXVua25vd24tbGludXgtZ251ZWFiaWhmLU5FT046Ci0tICAgIHVz ZXM6IC4vLmdpdGh1Yi93b3JrZmxvd3MvcnVuLWNpLXNjcmlwdC55bWwKLS0gICAgc3RyYXRlZ3k6 Ci0tICAgICAgZmFpbC1mYXN0OiB0cnVlCi0tICAgIHdpdGg6Ci0tICAgICAgdGFyZ2V0OiBhcm12 Ny11bmtub3duLWxpbnV4LWdudWVhYmloZgotLSAgICAgIHJ1c3RmbGFnczogLUN0YXJnZXQtZmVh dHVyZT0rbmVvbgotLSAgdGh1bWJ2N25lb24tdW5rbm93bi1saW51eC1nbnVlYWJpaGY6Ci0tICAg IHVzZXM6IC4vLmdpdGh1Yi93b3JrZmxvd3MvcnVuLWNpLXNjcmlwdC55bWwKLS0gICAgc3RyYXRl Z3k6Ci0tICAgICAgZmFpbC1mYXN0OiBmYWxzZQotLSAgICB3aXRoOgotLSAgICAgIHRhcmdldDog dGh1bWJ2N25lb24tdW5rbm93bi1saW51eC1nbnVlYWJpaGYKLS0gIGFhcmNoNjQtdW5rbm93bi1s aW51eC1nbnUtTkVPTjoKLS0gICAgdXNlczogLi8uZ2l0aHViL3dvcmtmbG93cy9ydW4tY2ktc2Ny aXB0LnltbAotLSAgICBzdHJhdGVneToKLS0gICAgICBmYWlsLWZhc3Q6IHRydWUKLS0gICAgd2l0 aDoKLS0gICAgICB0YXJnZXQ6IGFhcmNoNjQtdW5rbm93bi1saW51eC1nbnUKLS0gICAgICBydXN0 ZmxhZ3M6IC1DdGFyZ2V0LWZlYXR1cmU9K25lb24KLS0gIHBvd2VycGMtdW5rbm93bi1saW51eC1n bnU6Ci0tICAgIHVzZXM6IC4vLmdpdGh1Yi93b3JrZmxvd3MvcnVuLWNpLXNjcmlwdC55bWwKLS0g ICAgc3RyYXRlZ3k6Ci0tICAgICAgZmFpbC1mYXN0OiBmYWxzZQotLSAgICB3aXRoOgotLSAgICAg IHRhcmdldDogcG93ZXJwYy11bmtub3duLWxpbnV4LWdudQotLSAgcG93ZXJwYzY0LXVua25vd24t bGludXgtZ251OgotLSAgICB1c2VzOiAuLy5naXRodWIvd29ya2Zsb3dzL3J1bi1jaS1zY3JpcHQu eW1sCi0tICAgIHN0cmF0ZWd5OgotLSAgICAgIGZhaWwtZmFzdDogZmFsc2UKLS0gICAgd2l0aDoK LS0gICAgICB0YXJnZXQ6IHBvd2VycGM2NC11bmtub3duLWxpbnV4LWdudQotLSAgcG93ZXJwYzY0 bGUtdW5rbm93bi1saW51eC1nbnU6Ci0tICAgIHVzZXM6IC4vLmdpdGh1Yi93b3JrZmxvd3MvcnVu LWNpLXNjcmlwdC55bWwKLS0gICAgc3RyYXRlZ3k6Ci0tICAgICAgZmFpbC1mYXN0OiB0cnVlCi0t ICAgIHdpdGg6Ci0tICAgICAgdGFyZ2V0OiBwb3dlcnBjNjRsZS11bmtub3duLWxpbnV4LWdudQot LSAgcG93ZXJwYzY0bGUtdW5rbm93bi1saW51eC1nbnUtQUxUSVZFQzoKLS0gICAgdXNlczogLi8u Z2l0aHViL3dvcmtmbG93cy9ydW4tY2ktc2NyaXB0LnltbAotLSAgICBzdHJhdGVneToKLS0gICAg ICBmYWlsLWZhc3Q6IHRydWUKLS0gICAgd2l0aDoKLS0gICAgICB0YXJnZXQ6IHBvd2VycGM2NGxl LXVua25vd24tbGludXgtZ251Ci0tICAgICAgcnVzdGZsYWdzOiAtQ3RhcmdldC1mZWF0dXJlPSth bHRpdmVjCi0tICBwb3dlcnBjNjRsZS11bmtub3duLWxpbnV4LWdudS1WU1g6Ci0tICAgIHVzZXM6 IC4vLmdpdGh1Yi93b3JrZmxvd3MvcnVuLWNpLXNjcmlwdC55bWwKLS0gICAgc3RyYXRlZ3k6Ci0t ICAgICAgZmFpbC1mYXN0OiB0cnVlCi0tICAgIHdpdGg6Ci0tICAgICAgdGFyZ2V0OiBwb3dlcnBj NjRsZS11bmtub3duLWxpbnV4LWdudQotLSAgICAgIHJ1c3RmbGFnczogLUN0YXJnZXQtZmVhdHVy ZT0rdnN4Ci0tICBzMzkweC11bmtub3duLWxpbnV4LWdudToKLS0gICAgdXNlczogLi8uZ2l0aHVi L3dvcmtmbG93cy9ydW4tY2ktc2NyaXB0LnltbAotLSAgICBzdHJhdGVneToKLS0gICAgICBmYWls LWZhc3Q6IGZhbHNlCi0tICAgIHdpdGg6Ci0tICAgICAgdGFyZ2V0OiBzMzkweC11bmtub3duLWxp bnV4LWdudQotLSAgc3BhcmM2NC11bmtub3duLWxpbnV4LWdudToKLS0gICAgdXNlczogLi8uZ2l0 aHViL3dvcmtmbG93cy9ydW4tY2ktc2NyaXB0LnltbAotLSAgICBzdHJhdGVneToKLS0gICAgICBm YWlsLWZhc3Q6IGZhbHNlCi0tICAgIHdpdGg6Ci0tICAgICAgdGFyZ2V0OiBzcGFyYzY0LXVua25v d24tbGludXgtZ251Ci0tICB3YXNtMzItdW5rbm93bi11bmtub3duOgotLSAgICB1c2VzOiAuLy5n aXRodWIvd29ya2Zsb3dzL3J1bi1jaS1zY3JpcHQueW1sCi0tICAgIHN0cmF0ZWd5OgotLSAgICAg IGZhaWwtZmFzdDogZmFsc2UKLS0gICAgd2l0aDoKLS0gICAgICB0YXJnZXQ6IHdhc20zMi11bmtu b3duLXVua25vd24KLS0gIHg4Nl82NC1hcHBsZS1kYXJ3aW4tU1NFNF8yOgotLSAgICB1c2VzOiAu Ly5naXRodWIvd29ya2Zsb3dzL3J1bi1jaS1zY3JpcHQueW1sCi0tICAgIHN0cmF0ZWd5OgotLSAg ICAgIGZhaWwtZmFzdDogdHJ1ZQotLSAgICB3aXRoOgotLSAgICAgIHJ1bm5lcjogbWFjb3MtbGF0 ZXN0Ci0tICAgICAgc2NyaXB0OiBjaS9ydW4uc2gKLS0gICAgICB0YXJnZXQ6IHg4Nl82NC1hcHBs ZS1kYXJ3aW4KLS0gICAgICBydXN0ZmxhZ3M6IC1DdGFyZ2V0LWZlYXR1cmU9K3NzZTQuMgotLSAg eDg2XzY0LWFwcGxlLWRhcndpbi1BVlg6Ci0tICAgIHVzZXM6IC4vLmdpdGh1Yi93b3JrZmxvd3Mv cnVuLWNpLXNjcmlwdC55bWwKLS0gICAgc3RyYXRlZ3k6Ci0tICAgICAgZmFpbC1mYXN0OiB0cnVl Ci0tICAgIHdpdGg6Ci0tICAgICAgcnVubmVyOiBtYWNvcy1sYXRlc3QKLS0gICAgICBzY3JpcHQ6 IGNpL3J1bi5zaAotLSAgICAgIHRhcmdldDogeDg2XzY0LWFwcGxlLWRhcndpbgotLSAgICAgIHJ1 c3RmbGFnczogLUN0YXJnZXQtZmVhdHVyZT0rYXZ4Ci0tICB4ODZfNjQtYXBwbGUtaW9zOgotLSAg ICB1c2VzOiAuLy5naXRodWIvd29ya2Zsb3dzL3J1bi1jaS1zY3JpcHQueW1sCi0tICAgIHN0cmF0 ZWd5OgotLSAgICAgIGZhaWwtZmFzdDogdHJ1ZQotLSAgICB3aXRoOgotLSAgICAgIHJ1bm5lcjog bWFjb3MtbGF0ZXN0Ci0tICAgICAgc2NyaXB0OiBjaS9ydW4uc2gKLS0gICAgICB0YXJnZXQ6IHg4 Nl82NC1hcHBsZS1pb3MKLS0gIGFhcmNoNjQtYXBwbGUtaW9zOgotLSAgICB1c2VzOiAuLy5naXRo dWIvd29ya2Zsb3dzL3J1bi1jaS1zY3JpcHQueW1sCi0tICAgIHN0cmF0ZWd5OgotLSAgICAgIGZh aWwtZmFzdDogdHJ1ZQotLSAgICB3aXRoOgotLSAgICAgIHJ1bm5lcjogbWFjb3MtbGF0ZXN0Ci0t ICAgICAgc2NyaXB0OiBjaS9ydW4uc2gKLS0gICAgICB0YXJnZXQ6IGFhcmNoNjQtYXBwbGUtaW9z Ci0tICAgICAgcnVzdGZsYWdzOiAtQ3RhcmdldC1mZWF0dXJlPStuZW9uCi1kaWZmIC1OcmJ1IGEv dGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC8uZ2l0aHViL3dvcmtmbG93cy9kb2NzLnltbCBi L3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvLmdpdGh1Yi93b3JrZmxvd3MvZG9jcy55bWwK LS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvLmdpdGh1Yi93b3JrZmxvd3MvZG9j cy55bWwJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3Bh cnR5L3J1c3QvcGFja2VkX3NpbWQvLmdpdGh1Yi93b3JrZmxvd3MvZG9jcy55bWwJMTk3MC0wMS0w MSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDEzICswLDAgQEAKLS1uYW1lOiBkb2Nz Ci0tCi0tb246Ci0tICBwdXNoOgotLSAgICBicmFuY2hlczoKLS0gICAgICAtIG1hc3RlcgotLQot LWpvYnM6Ci0tICBkb2NzOgotLSAgICB1c2VzOiAuLy5naXRodWIvd29ya2Zsb3dzL3J1bi1jaS1z Y3JpcHQueW1sCi0tICAgIHdpdGg6Ci0tICAgICAgc2V0dXBfc2NyaXB0OiBjYXJnbyBpbnN0YWxs IG1kYm9vawotLSAgICAgIHNjcmlwdDogY2kvZG94LnNoCi1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFy dHkvcnVzdC9wYWNrZWRfc2ltZC8uZ2l0aHViL3dvcmtmbG93cy9ydW4tY2ktc2NyaXB0LnltbCBi L3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvLmdpdGh1Yi93b3JrZmxvd3MvcnVuLWNpLXNj cmlwdC55bWwKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvLmdpdGh1Yi93b3Jr Zmxvd3MvcnVuLWNpLXNjcmlwdC55bWwJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAz MDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvLmdpdGh1Yi93b3JrZmxvd3Mv cnVuLWNpLXNjcmlwdC55bWwJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBA IC0xLDg2ICswLDAgQEAKLS1uYW1lOiBydW4tY2ktc2NyaXB0Ci0tCi0tb246Ci0tICB3b3JrZmxv d19jYWxsOgotLSAgICBpbnB1dHM6Ci0tICAgICAgcnVubmVyOgotLSAgICAgICAgcmVxdWlyZWQ6 IGZhbHNlCi0tICAgICAgICB0eXBlOiBzdHJpbmcKLS0gICAgICAgIGRlZmF1bHQ6IHVidW50dS1s YXRlc3QKLS0gICAgICB0YXJnZXQ6Ci0tICAgICAgICByZXF1aXJlZDogZmFsc2UKLS0gICAgICAg IHR5cGU6IHN0cmluZwotLSAgICAgICAgZGVmYXVsdDogJycKLS0gICAgICBydXN0ZmxhZ3M6Ci0t ICAgICAgICByZXF1aXJlZDogZmFsc2UKLS0gICAgICAgIHR5cGU6IHN0cmluZwotLSAgICAgICAg ZGVmYXVsdDogJycKLS0gICAgICBzY3JpcHQ6Ci0tICAgICAgICByZXF1aXJlZDogZmFsc2UKLS0g ICAgICAgIHR5cGU6IHN0cmluZwotLSAgICAgICAgZGVmYXVsdDogY2kvcnVuLWRvY2tlci5zaAot LSAgICAgIHNldHVwX3NjcmlwdDoKLS0gICAgICAgIHJlcXVpcmVkOiBmYWxzZQotLSAgICAgICAg dHlwZTogc3RyaW5nCi0tICAgICAgbm9ydW46Ci0tICAgICAgICByZXF1aXJlZDogZmFsc2UKLS0g ICAgICAgIHR5cGU6IHN0cmluZwotLSAgICAgICAgZGVmYXVsdDogJycKLS0gICAgICB2ZXJpZnk6 Ci0tICAgICAgICByZXF1aXJlZDogZmFsc2UKLS0gICAgICAgIHR5cGU6IHN0cmluZwotLSAgICAg ICAgZGVmYXVsdDogJycKLS0gICAgICBmZWF0dXJlczoKLS0gICAgICAgIHJlcXVpcmVkOiBmYWxz ZQotLSAgICAgICAgdHlwZTogc3RyaW5nCi0tICAgICAgICBkZWZhdWx0OiAnJwotLQotLWpvYnM6 Ci0tICBydW4tY2ktc2NyaXB0OgotLSAgICBydW5zLW9uOiAke3sgaW5wdXRzLnJ1bm5lciB9fQot LSAgICBzdGVwczoKLS0gICAgICAtIG5hbWU6IENoZWNrb3V0Ci0tICAgICAgICB1c2VzOiBhY3Rp b25zL2NoZWNrb3V0QHYyCi0tICAgICAgLSBuYW1lOiBJbml0IFJ1c3R1cCBDYWNoZQotLSAgICAg ICAgdXNlczogYWN0aW9ucy9jYWNoZUB2MgotLSAgICAgICAgd2l0aDoKLS0gICAgICAgICAgcGF0 aDogfAotLSAgICAgICAgICAgIH4vLnJ1c3R1cC90b29sY2hhaW5zCi0tICAgICAgICAgIGtleTog JHt7IHJ1bm5lci5vcyB9fS1jYXJnby0ke3sgaGFzaEZpbGVzKCcqKi9ydXN0LXRvb2xjaGFpbicp IH19Ci0tICAgICAgLSBuYW1lOiBJbnN0YWxsIFRvb2xjaGFpbgotLSAgICAgICAgdXNlczogZHRv bG5heS9ydXN0LXRvb2xjaGFpbkBuaWdodGx5Ci0tICAgICAgICB3aXRoOgotLSAgICAgICAgICAj IEZJWE1FOiBjaGFuZ2UgdG8gbmlnaHRseSBvbmNlIGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxh bmcvcGFja2VkX3NpbWQvcHVsbC8zNTAgaXMgbWVyZ2VkCi0tICAgICAgICAgICMgbmVlZHMgdG8g YmUga2VwdCBpbiBzeW5jIHdpdGggdGhlIHRvb2xjaGFpbiBmaWxlcwotLSAgICAgICAgICB0YXJn ZXRzOiAke3sgaW5wdXRzLnRhcmdldCB9fQotLSAgICAgICAgICBjb21wb25lbnRzOiBydXN0Zm10 Ci0tICAgICAgLSBuYW1lOiBHZW5lcmF0ZSBMb2NrZmlsZQotLSAgICAgICAgcnVuOiBjYXJnbyBn ZW5lcmF0ZS1sb2NrZmlsZQotLSAgICAgIC0gbmFtZTogSW5pdCBDYXJnbyBDYWNoZQotLSAgICAg ICAgdXNlczogYWN0aW9ucy9jYWNoZUB2MgotLSAgICAgICAgd2l0aDoKLS0gICAgICAgICAgcGF0 aDogfAotLSAgICAgICAgICAgIH4vLmNhcmdvL2Jpbi8KLS0gICAgICAgICAgICB+Ly5jYXJnby9y ZWdpc3RyeS9pbmRleC8KLS0gICAgICAgICAgICB+Ly5jYXJnby9yZWdpc3RyeS9jYWNoZS8KLS0g ICAgICAgICAgICB+Ly5jYXJnby9naXQvZGIvCi0tICAgICAgICAgICAgdGFyZ2V0LwotLSAgICAg ICAgICBrZXk6ICR7eyBydW5uZXIub3MgfX0tY2FyZ28tJHt7IGhhc2hGaWxlcygnKiovQ2FyZ28u bG9jaycpIH19Ci0tICAgICAgLSBuYW1lOiBTZXR1cAotLSAgICAgICAgaWY6ICR7eyBpbnB1dHMu c2V0dXBfc2NyaXB0ICE9ICcnIH19Ci0tICAgICAgICBydW46ICR7eyBpbnB1dHMuc2V0dXBfc2Ny aXB0IH19Ci0tICAgICAgICBlbnY6Ci0tICAgICAgICAgIFRBUkdFVDogJHt7IGlucHV0cy50YXJn ZXQgfX0KLS0gICAgICAgICAgUlVTVEZMQUdTOiAke3sgaW5wdXRzLnJ1c3RmbGFncyB9fQotLSAg ICAgICAgICBOT1JVTjogJHt7IGlucHV0cy5ub3J1biB9fQotLSAgICAgICAgICBWRVJJRlk6ICR7 eyBpbnB1dHMudmVyaWZ5IH19Ci0tICAgICAgICAgIEZFQVRVUkVTOiAke3sgaW5wdXRzLmZlYXR1 cmVzIH19Ci0tICAgICAgLSBuYW1lOiBSdW4gQ0kgU2NyaXB0Ci0tICAgICAgICB0aW1lb3V0LW1p bnV0ZXM6IDMwCi0tICAgICAgICBydW46ICR7eyBpbnB1dHMuc2NyaXB0IH19Ci0tICAgICAgICBl bnY6Ci0tICAgICAgICAgIFRBUkdFVDogJHt7IGlucHV0cy50YXJnZXQgfX0KLS0gICAgICAgICAg UlVTVEZMQUdTOiAke3sgaW5wdXRzLnJ1c3RmbGFncyB9fQotLSAgICAgICAgICBOT1JVTjogJHt7 IGlucHV0cy5ub3J1biB9fQotLSAgICAgICAgICBWRVJJRlk6ICR7eyBpbnB1dHMudmVyaWZ5IH19 Ci0tICAgICAgICAgIEZFQVRVUkVTOiAke3sgaW5wdXRzLmZlYXR1cmVzIH19Ci1kaWZmIC1OcmJ1 IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC8udHJhdmlzLnltbCBiL3RoaXJkX3BhcnR5 L3J1c3QvcGFja2VkX3NpbWQvLnRyYXZpcy55bWwKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFj a2VkX3NpbWQvLnRyYXZpcy55bWwJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAK LSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvLnRyYXZpcy55bWwJMTk3MC0wMS0w MSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDIxMiArMCwwIEBACi0tbGFuZ3VhZ2U6 IHJ1c3QKLS1ydXN0OiBuaWdodGx5Ci0tb3M6IGxpbnV4Ci0tZGlzdDogZm9jYWwKLS0KLS1zdGFn ZXM6Ci0tICAtIHRvb2xzCi0tICAtIGJ1aWxkLXRlc3QtdmVyaWZ5ICMgUGFzc2VzIGZ1bGwgdGVz dCBzdWl0ZSwgcGVybWl0IG5vIHJlZ3Jlc3Npb25zICh1bmxlc3MgaXQncyBydXN0dXAgOi8pCi0t ICAtIDMyYml0LXRpZXIxCi0tICAtIDY0Yml0LXRpZXIyCi0tICAtIDMyYml0LXRpZXIyCi0tCi0t am9iczoKLS0gIGZhc3RfZmluaXNoOiB0cnVlCi0tICBpbmNsdWRlOgotLSAgICAjIEFuZHJvaWQ6 Ci0tICAgIC0gZW52OiBUQVJHRVQ9eDg2XzY0LWxpbnV4LWFuZHJvaWQKLS0gICAgICBuYW1lOiAi eDg2XzY0LXVua25vd24tbGludXgtYW5kcm9pZCArIFNTRTIiCi0tICAgICAgc3RhZ2U6IGJ1aWxk LXRlc3QtdmVyaWZ5Ci0tICAgIC0gZW52OiBUQVJHRVQ9YXJtLWxpbnV4LWFuZHJvaWRlYWJpCi0t ICAgICAgbmFtZTogImFybS1saW51eC1hbmRyb2lkZWFiaSIKLS0gICAgICBzdGFnZTogYnVpbGQt dGVzdC12ZXJpZnkKLS0gICAgLSBuYW1lOiAiYWFyY2g2NC11bmtub3duLWxpbnV4LWFuZHJvaWQg KyBORU9OIgotLSAgICAgIGVudjogVEFSR0VUPWFhcmNoNjQtbGludXgtYW5kcm9pZCBSVVNURkxB R1M9Ii1DIHRhcmdldC1mZWF0dXJlPStuZW9uIgotLSAgICAgIHN0YWdlOiBidWlsZC10ZXN0LXZl cmlmeQotLSAgICAtIGVudjogVEFSR0VUPSJ0aHVtYnY3bmVvbi1saW51eC1hbmRyb2lkZWFiaSIK LS0gICAgICBuYW1lOiAidGh1bWJ2N25lb24tbGludXgtYW5kcm9pZGVhYmkiCi0tICAgICAgc3Rh Z2U6IDMyYml0LXRpZXIyCi0tICAgICMgTGludXg6Ci0tICAgIC0gZW52OiBUQVJHRVQ9aTU4Ni11 bmtub3duLWxpbnV4LWdudQotLSAgICAgIG5hbWU6ICJpNTg2LXVua25vd24tbGludXgtZ251Igot LSAgICAgIHN0YWdlOiAzMmJpdC10aWVyMgotLSAgICAtIGVudjogVEFSR0VUPWk1ODYtdW5rbm93 bi1saW51eC1nbnUgUlVTVEZMQUdTPSItQyB0YXJnZXQtZmVhdHVyZT0rc3NlIgotLSAgICAgIG5h bWU6ICJpNTg2LXVua25vd24tbGludXgtZ251ICsgU1NFIgotLSAgICAgIHN0YWdlOiAzMmJpdC10 aWVyMgotLSAgICAtIGVudjogVEFSR0VUPWk1ODYtdW5rbm93bi1saW51eC1nbnUgUlVTVEZMQUdT PSItQyB0YXJnZXQtZmVhdHVyZT0rc3NlMiIKLS0gICAgICBuYW1lOiAiaTU4Ni11bmtub3duLWxp bnV4LWdudSArIFNTRTIiCi0tICAgICAgc3RhZ2U6IDMyYml0LXRpZXIyCi0tICAgIC0gZW52OiBU QVJHRVQ9aTY4Ni11bmtub3duLWxpbnV4LWdudQotLSAgICAgIG5hbWU6ICJpNjg2LXVua25vd24t bGludXgtZ251ICsgU1NFMiIKLS0gICAgICBzdGFnZTogMzJiaXQtdGllcjEKLS0gICAgLSBlbnY6 IFRBUkdFVD1pNjg2LXVua25vd24tbGludXgtZ251IFJVU1RGTEFHUz0iLUMgdGFyZ2V0LWZlYXR1 cmU9K3NzZTQuMiIKLS0gICAgICBuYW1lOiAiaTY4Ni11bmtub3duLWxpbnV4LWdudSArIFNTRTQu MiIKLS0gICAgICBzdGFnZTogMzJiaXQtdGllcjEKLS0gICAgLSBlbnY6IFRBUkdFVD1pNjg2LXVu a25vd24tbGludXgtZ251IFJVU1RGTEFHUz0iLUMgdGFyZ2V0LWZlYXR1cmU9K2F2eDIiCi0tICAg ICAgbmFtZTogImk2ODYtdW5rbm93bi1saW51eC1nbnUgKyBBVlgyIgotLSAgICAgIHN0YWdlOiAz MmJpdC10aWVyMQotLSAgICAtIGVudjogVEFSR0VUPXg4Nl82NC11bmtub3duLWxpbnV4LWdudSBS VVNURkxBR1M9Ii1DIHRhcmdldC1mZWF0dXJlPStzc2U0LjIiCi0tICAgICAgbmFtZTogIng4Nl82 NC11bmtub3duLWxpbnV4LWdudSArIFNTRTQuMiIKLS0gICAgICBzdGFnZTogYnVpbGQtdGVzdC12 ZXJpZnkKLS0gICAgLSBlbnY6IFRBUkdFVD14ODZfNjQtdW5rbm93bi1saW51eC1nbnUgUlVTVEZM QUdTPSItQyB0YXJnZXQtZmVhdHVyZT0rYXZ4MiIKLS0gICAgICBuYW1lOiAieDg2XzY0LXVua25v d24tbGludXgtZ251ICsgQVZYMiIKLS0gICAgICBzdGFnZTogYnVpbGQtdGVzdC12ZXJpZnkKLS0g ICAgLSBlbnY6IFRBUkdFVD1hcm0tdW5rbm93bi1saW51eC1nbnVlYWJpaGYKLS0gICAgICBuYW1l OiAiYXJtLXVua25vd24tbGludXgtZ251ZWFiaWhmIgotLSAgICAgIHN0YWdlOiBidWlsZC10ZXN0 LXZlcmlmeQotLSAgICAtIGVudjogVEFSR0VUPWFybXY3LXVua25vd24tbGludXgtZ251ZWFiaWhm Ci0tICAgICAgbmFtZTogImFybXY3LXVua25vd24tbGludXgtZ251ZWFiaWhmIgotLSAgICAgIHN0 YWdlOiBidWlsZC10ZXN0LXZlcmlmeQotLSAgICAtIGVudjogVEFSR0VUPWFybXY3LXVua25vd24t bGludXgtZ251ZWFiaWhmIFJVU1RGTEFHUz0iLUMgdGFyZ2V0LWZlYXR1cmU9K25lb24iCi0tICAg ICAgbmFtZTogImFybXY3LXVua25vd24tbGludXgtZ251ZWFiaWhmICsgTkVPTiIKLS0gICAgICBz dGFnZTogYnVpbGQtdGVzdC12ZXJpZnkKLS0gICAgLSBlbnY6IFRBUkdFVD0idGh1bWJ2N25lb24t dW5rbm93bi1saW51eC1nbnVlYWJpaGYiCi0tICAgICAgbmFtZTogInRodW1idjduZW9uLXVua25v d24tbGludXgtZ251ZWFiaWhmIgotLSAgICAgIHN0YWdlOiAzMmJpdC10aWVyMgotLSAgICAtIG5h bWU6ICJhYXJjaDY0LXVua25vd24tbGludXgtZ251ICsgTkVPTiIKLS0gICAgICBlbnY6IFRBUkdF VD1hYXJjaDY0LXVua25vd24tbGludXgtZ251IFJVU1RGTEFHUz0iLUMgdGFyZ2V0LWZlYXR1cmU9 K25lb24iCi0tICAgICAgc3RhZ2U6IGJ1aWxkLXRlc3QtdmVyaWZ5Ci0tICAgIC0gZW52OiBUQVJH RVQ9bWlwcy11bmtub3duLWxpbnV4LWdudQotLSAgICAgIG5hbWU6ICJtaXBzLXVua25vd24tbGlu dXgtZ251IgotLSAgICAgIHN0YWdlOiAzMmJpdC10aWVyMgotLSAgICAtIGVudjogVEFSR0VUPW1p cHNlbC11bmtub3duLWxpbnV4LW11c2wKLS0gICAgICBuYW1lOiAibWlwc2VsLXVua25vd24tbGlu dXgtbXVzbCIKLS0gICAgICBzdGFnZTogMzJiaXQtdGllcjIKLS0gICAgLSBlbnY6IFRBUkdFVD1t aXBzNjQtdW5rbm93bi1saW51eC1nbnVhYmk2NAotLSAgICAgIG5hbWU6ICJtaXBzNjQtdW5rbm93 bi1saW51eC1nbnVhYmk2NCIKLS0gICAgICBzdGFnZTogNjRiaXQtdGllcjIKLS0gICAgLSBlbnY6 IFRBUkdFVD1taXBzNjRlbC11bmtub3duLWxpbnV4LWdudWFiaTY0Ci0tICAgICAgbmFtZTogIm1p cHM2NGVsLXVua25vd24tbGludXgtZ251YWJpNjQiCi0tICAgICAgc3RhZ2U6IDY0Yml0LXRpZXIy Ci0tICAgICAgIyBGSVhNRTogaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy1udXJzZXJ5L3Bh Y2tlZF9zaW1kL2lzc3Vlcy8xOAotLSAgICAgICMgZW52OiBUQVJHRVQ9bWlwczY0ZWwtdW5rbm93 bi1saW51eC1nbnVhYmk2NCBSVVNURkxBR1M9Ii1DIHRhcmdldC1mZWF0dXJlPSttc2EgLUMgdGFy Z2V0LWNwdT1taXBzNjRyNiIKLS0gICAgLSBlbnY6IFRBUkdFVD1wb3dlcnBjLXVua25vd24tbGlu dXgtZ251Ci0tICAgICAgbmFtZTogInBvd2VycGMtdW5rbm93bi1saW51eC1nbnUiCi0tICAgICAg c3RhZ2U6IDMyYml0LXRpZXIyCi0tICAgIC0gZW52OiBUQVJHRVQ9cG93ZXJwYzY0LXVua25vd24t bGludXgtZ251Ci0tICAgICAgbmFtZTogInBvd2VycGM2NC11bmtub3duLWxpbnV4LWdudSIKLS0g ICAgICBzdGFnZTogNjRiaXQtdGllcjIKLS0gICAgLSBuYW1lOiAicG93ZXJwYzY0bGUtdW5rbm93 bi1saW51eC1nbnUiCi0tICAgICAgZW52OiBUQVJHRVQ9cG93ZXJwYzY0bGUtdW5rbm93bi1saW51 eC1nbnUKLS0gICAgICBzdGFnZTogYnVpbGQtdGVzdC12ZXJpZnkKLS0gICAgLSBuYW1lOiAicG93 ZXJwYzY0bGUtdW5rbm93bi1saW51eC1nbnUgKyBBTFRJVkVDIgotLSAgICAgIGVudjogVEFSR0VU PXBvd2VycGM2NGxlLXVua25vd24tbGludXgtZ251IFJVU1RGTEFHUz0iLUMgdGFyZ2V0LWZlYXR1 cmU9K2FsdGl2ZWMiCi0tICAgICAgc3RhZ2U6IGJ1aWxkLXRlc3QtdmVyaWZ5Ci0tICAgIC0gbmFt ZTogInBvd2VycGM2NGxlLXVua25vd24tbGludXgtZ251ICsgVlNYIgotLSAgICAgIGVudjogVEFS R0VUPXBvd2VycGM2NGxlLXVua25vd24tbGludXgtZ251IFJVU1RGTEFHUz0iLUMgdGFyZ2V0LWZl YXR1cmU9K3ZzeCIKLS0gICAgICBzdGFnZTogYnVpbGQtdGVzdC12ZXJpZnkKLS0gICAgLSBuYW1l OiAiczM5MHgtdW5rbm93bi1saW51eC1nbnUiCi0tICAgICAgZW52OiBUQVJHRVQ9czM5MHgtdW5r bm93bi1saW51eC1nbnUKLS0gICAgICBzdGFnZTogNjRiaXQtdGllcjIKLS0gICAgLSBlbnY6IFRB UkdFVD1zcGFyYzY0LXVua25vd24tbGludXgtZ251Ci0tICAgICAgbmFtZTogInNwYXJjNjQtdW5r bm93bi1saW51eC1nbnUiCi0tICAgICAgc3RhZ2U6IDY0Yml0LXRpZXIyCi0tICAgICMgV2ViQXNz ZW1ibHk6Ci0tICAgIC0gZW52OiBUQVJHRVQ9d2FzbTMyLXVua25vd24tdW5rbm93bgotLSAgICAg IG5hbWU6ICJ3YXNtMzItdW5rbm93bi11bmtub3duIgotLSAgICAgIHN0YWdlOiAzMmJpdC10aWVy MgotLSAgICAjIE1hY09TWDoKLS0gICAgLSBvczogb3N4Ci0tICAgICAgZW52OiBUQVJHRVQ9eDg2 XzY0LWFwcGxlLWRhcndpbiBSVVNURkxBR1M9Ii1DIHRhcmdldC1mZWF0dXJlPStzc2U0LjIiCi0t ICAgICAgbmFtZTogIng4Nl82NC1hcHBsZS1kYXJ3aW4gKyBTU0U0LjIiCi0tICAgICAgaW5zdGFs bDogdHJ1ZQotLSAgICAgIHNjcmlwdDogY2kvcnVuLnNoCi0tICAgICAgb3N4X2ltYWdlOiB4Y29k ZTEwCi0tICAgICAgc3RhZ2U6IGJ1aWxkLXRlc3QtdmVyaWZ5Ci0tICAgICAgIyBUcmF2aXMtQ0kg T1NYIGJ1aWxkIGJvdHMgZG8gbm90IHN1cHBvcnQgQVZYMjoKLS0gICAgLSBvczogb3N4Ci0tICAg ICAgZW52OiBUQVJHRVQ9eDg2XzY0LWFwcGxlLWRhcndpbiBSVVNURkxBR1M9Ii1DIHRhcmdldC1m ZWF0dXJlPSthdngiCi0tICAgICAgbmFtZTogIng4Nl82NC1hcHBsZS1kYXJ3aW4gKyBBVlgiCi0t ICAgICAgaW5zdGFsbDogdHJ1ZQotLSAgICAgIHNjcmlwdDogY2kvcnVuLnNoCi0tICAgICAgb3N4 X2ltYWdlOiB4Y29kZTEwCi0tICAgICAgc3RhZ2U6IGJ1aWxkLXRlc3QtdmVyaWZ5Ci0tICAgICMg KkJTRHM6Ci0tICAgICMtIGVudjogVEFSR0VUPWk2ODYtdW5rbm93bi1mcmVlYnNkIE5PUlVOPTEK LS0gICAgIyAgc2NyaXB0OiBjaS9ydW4uc2gKLS0gICAgIy0gZW52OiBUQVJHRVQ9eDg2XzY0LXVu a25vd24tZnJlZWJzZCBOT1JVTj0xCi0tICAgICMgIHNjcmlwdDogY2kvcnVuLnNoCi0tICAgICMt IGVudjogVEFSR0VUPXg4Nl82NC11bmtub3duLW5ldGJzZCBOT1JVTj0xCi0tICAgICMgIHNjcmlw dDogY2kvcnVuLnNoCi0tICAgICMgU29sYXJpczoKLS0gICAgIy0gZW52OiBUQVJHRVQ9eDg2XzY0 LXN1bi1zb2xhcmlzIE5PUlVOPTEKLS0gICAgIyAgc2NyaXB0OiBjaS9ydW4uc2gKLS0gICAgIyBp T1M6Ci0tICAgIC0gb3M6IG9zeAotLSAgICAgIGVudjogVEFSR0VUPXg4Nl82NC1hcHBsZS1pb3MK LS0gICAgICBuYW1lOiAieDg2XzY0LWFwcGxlLWlvcyArIFNTRTIiCi0tICAgICAgc2NyaXB0OiBj aS9ydW4uc2gKLS0gICAgICBvc3hfaW1hZ2U6IHhjb2RlOS40Ci0tICAgICAgc3RhZ2U6IDY0Yml0 LXRpZXIyCi0tICAgIC0gbmFtZTogImFhcmNoNjQtYXBwbGUtaW9zICsgTkVPTiIKLS0gICAgICBl bnY6IFRBUkdFVD1hYXJjaDY0LWFwcGxlLWlvcyBSVVNURkxBR1M9Ii1DIHRhcmdldC1mZWF0dXJl PStuZW9uIgotLSAgICAgIG9zOiBvc3gKLS0gICAgICBvc3hfaW1hZ2U6IHhjb2RlOS40Ci0tICAg ICAgc2NyaXB0OiBjaS9ydW4uc2gKLS0gICAgICBzdGFnZTogNjRiaXQtdGllcjIKLS0gICAgIyBC RU5DSE1BUktTOgotLSAgICAtIG5hbWU6ICJCZW5jaG1hcmtzIC0geDg2XzY0LXVua25vd24tbGlu dXgtZ251IgotLSAgICAgIGluc3RhbGw6IFRBUkdFVD14ODZfNjQtdW5rbm93bi1saW51eC1nbnUg Li9jaS9zZXR1cF9iZW5jaG1hcmtzLnNoCi0tICAgICAgIyBGSVhNRTogVXNlIGBjb3JlX2FyY2gs c2xlZWYtc3lzYCBmZWF0dXJlcyBvbmNlIHRoZXkgd29ya3MgYWdhaW4KLS0gICAgICBzY3JpcHQ6 IFBBVEg9JChwd2QpOiRQQVRIIE5PUlVOPTEgVkVSSUZZPTEgRkVBVFVSRVM9aXNwYyBjaS9iZW5j aG1hcmsuc2gKLS0gICAgICBzdGFnZTogdG9vbHMKLS0gICAgLSBuYW1lOiAiQmVuY2htYXJrcyAt IHg4Nl82NC1hcHBsZS1kYXJ3aW4iCi0tICAgICAgaW5zdGFsbDogVEFSR0VUPXg4Nl82NC1hcHBs ZS1kYXJ3aW4gLi9jaS9zZXR1cF9iZW5jaG1hcmtzLnNoCi0tICAgICAgIyBGSVhNRTogVXNlIGBj b3JlX2FyY2gsc2xlZWYtc3lzYCBmZWF0dXJlcyBvbmNlIHRoZXkgd29ya3MgYWdhaW4KLS0gICAg ICBzY3JpcHQ6IFBBVEg9JChwd2QpOiRQQVRIIE5PUlVOPTEgVkVSSUZZPTEgRkVBVFVSRVM9aXNw YyBjaS9iZW5jaG1hcmsuc2gKLS0gICAgICBvczogb3N4Ci0tICAgICAgb3N4X2ltYWdlOiB4Y29k ZTkuNAotLSAgICAgIHN0YWdlOiB0b29scwotLSAgICAjIFRPT0xTOgotLSAgICAtIG5hbWU6ICJE b2N1bWVudGF0aW9uIgotLSAgICAgIGJlZm9yZV9pbnN0YWxsOgotLSAgICAgICAgLSBzdWRvIGFk ZC1hcHQtcmVwb3NpdG9yeSAteSBwcGE6ZGVhZHNuYWtlcy9wcGEKLS0gICAgICAgIC0gc3VkbyBh cHQtZ2V0IHVwZGF0ZSAteQotLSAgICAgICAgLSBzdWRvIGFwdC1nZXQgaW5zdGFsbCAteSBweXRo b24zLjkKLS0gICAgICBpbnN0YWxsOgotLSAgICAgICAgLSBjYXJnbyBpbnN0YWxsIG1kYm9vawot LSAgICAgIHNjcmlwdDogY2kvZG94LnNoCi0tICAgICAgc3RhZ2U6IHRvb2xzCi0tICAgIC0gbmFt ZTogInJ1c3RmbXQiCi0tICAgICAgaW5zdGFsbDogdHJ1ZQotLSAgICAgIHNjcmlwdDogfAotLSAg ICAgICAgcnVzdHVwIHRvb2xjaGFpbiBpbnN0YWxsIG5pZ2h0bHkgLWMgcnVzdGZtdCAtLWFsbG93 LWRvd25ncmFkZQotLSAgICAgICAgY2kvYWxsLnNoIGNoZWNrX2ZtdCB8fCB0cnVlCi0tICAgICAg c3RhZ2U6IHRvb2xzCi0tCi0tICBhbGxvd19mYWlsdXJlczoKLS0gICAgIyBGSVhNRTogSVNQQyBj YW5ub3QgYmUgZm91bmQ/Ci0tICAgIC0gbmFtZTogIkJlbmNobWFya3MgLSB4ODZfNjQtYXBwbGUt ZGFyd2luIgotLSAgICAjIEZJWE1FOiBpNjg2IGZhaWxzIGluIGlubGluaW5nLCBhcHBhcmVudGx5 Ci0tICAgIC0gc3RhZ2U6IDMyYml0LXRpZXIxCi0tICAgICMtIGVudjogVEFSR0VUPWk2ODYtdW5r bm93bi1mcmVlYnNkIE5PUlVOPTEKLS0gICAgIy0gZW52OiBUQVJHRVQ9eDg2XzY0LXVua25vd24t ZnJlZWJzZCBOT1JVTj0xCi0tICAgICMtIGVudjogVEFSR0VUPXg4Nl82NC11bmtub3duLW5ldGJz ZCBOT1JVTj0xCi0tICAgICMtIGVudjogVEFSR0VUPXg4Nl82NC1zdW4tc29sYXJpcyBOT1JVTj0x Ci0tCi0tICAgICMgRklYTUU6IFRCRAotLSAgICAtIHN0YWdlOiA2NGJpdC10aWVyMgotLSAgICAt IHN0YWdlOiAzMmJpdC10aWVyMgotLQotLSAgICAjIEZJWE1FOiBpT1MKLS0gICAgIyBodHRwczov L2dpdGh1Yi5jb20vcnVzdC1sYW5nLW51cnNlcnkvcGFja2VkX3NpbWQvaXNzdWVzLzI2Ci0tICAg IC0gZW52OiBUQVJHRVQ9eDg2XzY0LWFwcGxlLWlvcwotLSAgICAjIElzIHRoaXMgcmVsYXRlZCB0 byB0aGUgYWJvdmU/IE15c3RlcmlvdXMgdGVzdCBmYWlsdXJlCi0tICAgIC0gbmFtZTogImFhcmNo NjQtYXBwbGUtaW9zICsgTkVPTiIKLS0KLS1pbnN0YWxsOiB0cmF2aXNfcmV0cnkgcnVzdHVwIHRh cmdldCBhZGQgJFRBUkdFVAotLWJlZm9yZV9zY3JpcHQ6IGNhcmdvIGdlbmVyYXRlLWxvY2tmaWxl Ci0tc2NyaXB0OiB0cmF2aXNfd2FpdCA1MCBjaS9ydW4tZG9ja2VyLnNoCi0tYWZ0ZXJfc2NyaXB0 OiBzbGVlcCA1Ci0tCi0tZW52OgotLSAgZ2xvYmFsOgotLSAgICBzZWN1cmU6ICJsUEh2N3M2K0F4 UVlOYUZuY3ljVkZRdCsrWTFhc1FtTWhPaWtRVTF6dGxQOENLNytobjJtOThjZy9ldU9KeXpJT2Iy aUozWlg0Y0daa3p3NGxjNTlNUUJCeWIxR3REYmF6UW9VT3pWRGJWZmU5QkREMmY4SlZvSUZoMUNN ZmpQS1E3R2cvckpxV2x3clVsU2Q1R054UEN1dEtqWTdxWmhKdVI2U1FiSmpsV2FHTjJWZDRmVkN6 S1h6OGZIUlhnTUVaUytkK0NSNE5zcmtiODNKM1o0czVrU2RKbWhZeEo2MUFXanV6SlZ3VWg0bDMv SEVZbFNMNVhYcHVoNVIyaTdXMTZoMVBsTmRhVFVna1psaTFsSHpPOCs2UThMelg5K1hpTElFVlg5 bHczQTJOZElLR3o4RS8rN1FzNW9ZT2t3WWhqUk9zRFF4SUs3eGtTTTMwYlF1Tjdjd01CeWJBVkl5 T1BKa3FYUTFkUXlwODNLU2RzT2o3Sk15RERSdmNFRExJNmVoUmxtNUVjZEg3WXJSZXVib044MWlV bzBTYTdWc3VVbWdqNWhqRVJDdDlyMzBmOWFXdWl0QUJhaTd2S1J0amdsZzdTcDVDckVWUEE0UFFz NlBxS0NDUm9nb2dnYlhKL1o1RHl3L1JaYVhQZU5SOStxSUtOMVZqbTlHZXcxc1JOMkpLLzMrdlhU S3R5SlhIL3VCeGdKdDRqUWxidVNoT0p1RitCU2ZURjg4c01lNjdhLzM1N1NTT0liNEprYUN5ZDBm bERDV1lFODU3NmthSFBsVlZNVDJwZVhlZTBMZVJYbTFlMTNuRzNOYTB0M0xTL29ySkxQSE9TaE5R R29EajdxQVA1YUVLZ2dSeWE4OTZKR3d0dmxhQkhIVG1TUWg2NUc3Y3lORXJabz0iCi0tYnJhbmNo ZXM6Ci0tICBvbmx5OgotLSAgICAtIHN0YWdpbmcgIyBib3JzIHIrCi0tICAgIC0gdHJ5aW5nICAj IGJvcnMgdHJ5Ci0tICAgIC0gbWFzdGVyCi0tbm90aWZpY2F0aW9uczoKLS0gIGVtYWlsOgotLSAg ICBvbl9zdWNjZXNzOiBuZXZlcgotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2Vk X3NpbWQvQ2FyZ28udG9tbCBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvQ2FyZ28udG9t bAotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9DYXJnby50b21sCTIwMjUtMDkt MDcgMTQ6MzA6MzcuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tl ZF9zaW1kL0NhcmdvLnRvbWwJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBA IC0xLDgwICswLDAgQEAKLS0jIFRISVMgRklMRSBJUyBBVVRPTUFUSUNBTExZIEdFTkVSQVRFRCBC WSBDQVJHTwotLSMKLS0jIFdoZW4gdXBsb2FkaW5nIGNyYXRlcyB0byB0aGUgcmVnaXN0cnkgQ2Fy Z28gd2lsbCBhdXRvbWF0aWNhbGx5Ci0tIyAibm9ybWFsaXplIiBDYXJnby50b21sIGZpbGVzIGZv ciBtYXhpbWFsIGNvbXBhdGliaWxpdHkKLS0jIHdpdGggYWxsIHZlcnNpb25zIG9mIENhcmdvIGFu ZCBhbHNvIHJld3JpdGUgYHBhdGhgIGRlcGVuZGVuY2llcwotLSMgdG8gcmVnaXN0cnkgKGUuZy4s IGNyYXRlcy5pbykgZGVwZW5kZW5jaWVzLgotLSMKLS0jIElmIHlvdSBhcmUgcmVhZGluZyB0aGlz IGZpbGUgYmUgYXdhcmUgdGhhdCB0aGUgb3JpZ2luYWwgQ2FyZ28udG9tbAotLSMgd2lsbCBsaWtl bHkgbG9vayB2ZXJ5IGRpZmZlcmVudCAoYW5kIG11Y2ggbW9yZSByZWFzb25hYmxlKS4KLS0jIFNl ZSBDYXJnby50b21sLm9yaWcgZm9yIHRoZSBvcmlnaW5hbCBjb250ZW50cy4KLS0KLS1bcGFja2Fn ZV0KLS1lZGl0aW9uID0gIjIwMTgiCi0tbmFtZSA9ICJwYWNrZWRfc2ltZCIKLS12ZXJzaW9uID0g IjAuMy45IgotLWJ1aWxkID0gImJ1aWxkLnJzIgotLWRlc2NyaXB0aW9uID0gIlBvcnRhYmxlIFBh Y2tlZCBTSU1EIHZlY3RvcnMiCi0taG9tZXBhZ2UgPSAiaHR0cHM6Ly9naXRodWIuY29tL3J1c3Qt bGFuZy9wYWNrZWRfc2ltZCIKLS1kb2N1bWVudGF0aW9uID0gImh0dHBzOi8vZG9jcy5ycy9jcmF0 ZS9wYWNrZWRfc2ltZC8iCi0tcmVhZG1lID0gIlJFQURNRS5tZCIKLS1rZXl3b3JkcyA9IFsKLS0g ICAgInNpbWQiLAotLSAgICAidmVjdG9yIiwKLS0gICAgInBvcnRhYmlsaXR5IiwKLS1dCi0tY2F0 ZWdvcmllcyA9IFsKLS0gICAgImhhcmR3YXJlLXN1cHBvcnQiLAotLSAgICAiY29uY3VycmVuY3ki LAotLSAgICAibm8tc3RkIiwKLS0gICAgImRhdGEtc3RydWN0dXJlcyIsCi0tXQotLWxpY2Vuc2Ug PSAiTUlUIE9SIEFwYWNoZS0yLjAiCi0tcmVwb3NpdG9yeSA9ICJodHRwczovL2dpdGh1Yi5jb20v cnVzdC1sYW5nL3BhY2tlZF9zaW1kIgotLQotLVtwYWNrYWdlLm1ldGFkYXRhLmRvY3MucnNdCi0t ZmVhdHVyZXMgPSBbImludG9fYml0cyJdCi0tcnVzdGRvYy1hcmdzID0gWwotLSAgICAiLS1jZmci LAotLSAgICAiZG9jX2NmZyIsCi0tXQotLQotLVtkZXBlbmRlbmNpZXNdCi0tY2ZnLWlmID0gIjEu MC4wIgotLQotLVtkZXBlbmRlbmNpZXMuY29yZV9hcmNoXQotLXZlcnNpb24gPSAiMC4xLjUiCi0t b3B0aW9uYWwgPSB0cnVlCi0tCi0tW2RlcGVuZGVuY2llcy5udW0tdHJhaXRzXQotLXZlcnNpb24g PSAiMC4yLjE0IgotLWRlZmF1bHQtZmVhdHVyZXMgPSBmYWxzZQotLQotLVtkZXYtZGVwZW5kZW5j aWVzXQotLXBhc3RlID0gIl4xIgotLQotLVtkZXYtZGVwZW5kZW5jaWVzLmFycmF5dmVjXQotLXZl cnNpb24gPSAiXjAuNSIKLS1kZWZhdWx0LWZlYXR1cmVzID0gZmFsc2UKLS0KLS1bZmVhdHVyZXNd Ci0tZGVmYXVsdCA9IFtdCi0taW50b19iaXRzID0gW10KLS1saWJjb3JlX25lb24gPSBbXQotLQot LVt0YXJnZXQuImNmZyh0YXJnZXRfYXJjaCA9IFwieDg2XzY0XCIpIi5kZXBlbmRlbmNpZXMuc2xl ZWYtc3lzXQotLXZlcnNpb24gPSAiMC4xLjIiCi0tb3B0aW9uYWwgPSB0cnVlCi0tCi0tW3Rhcmdl dC53YXNtMzItdW5rbm93bi11bmtub3duLmRldi1kZXBlbmRlbmNpZXNdCi0td2FzbS1iaW5kZ2Vu ID0gIj0wLjIuODciCi0td2FzbS1iaW5kZ2VuLXRlc3QgPSAiPTAuMy4zNyIKLS0KLS1bYmFkZ2Vz LmlzLWl0LW1haW50YWluZWQtaXNzdWUtcmVzb2x1dGlvbl0KLS1yZXBvc2l0b3J5ID0gInJ1c3Qt bGFuZy9wYWNrZWRfc2ltZCIKLS0KLS1bYmFkZ2VzLmlzLWl0LW1haW50YWluZWQtb3Blbi1pc3N1 ZXNdCi0tcmVwb3NpdG9yeSA9ICJydXN0LWxhbmcvcGFja2VkX3NpbWQiCi0tCi0tW2JhZGdlcy5t YWludGVuYW5jZV0KLS1zdGF0dXMgPSAiZXhwZXJpbWVudGFsIgotZGlmZiAtTnJidSBhL3RoaXJk X3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvTElDRU5TRS1BUEFDSEUgYi90aGlyZF9wYXJ0eS9ydXN0 L3BhY2tlZF9zaW1kL0xJQ0VOU0UtQVBBQ0hFCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tl ZF9zaW1kL0xJQ0VOU0UtQVBBQ0hFCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAw Ci0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL0xJQ0VOU0UtQVBBQ0hFCTE5NzAt MDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSwyMDEgKzAsMCBAQAotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIEFwYWNoZSBMaWNlbnNlCi0tICAgICAgICAgICAgICAg ICAgICAgICAgVmVyc2lvbiAyLjAsIEphbnVhcnkgMjAwNAotLSAgICAgICAgICAgICAgICAgICAg IGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy8KLS0KLS1URVJNUyBBTkQgQ09ORElUSU9O UyBGT1IgVVNFLCBSRVBST0RVQ1RJT04sIEFORCBESVNUUklCVVRJT04KLS0KLS0xLiBEZWZpbml0 aW9ucy4KLS0KLS0gICAiTGljZW5zZSIgc2hhbGwgbWVhbiB0aGUgdGVybXMgYW5kIGNvbmRpdGlv bnMgZm9yIHVzZSwgcmVwcm9kdWN0aW9uLAotLSAgIGFuZCBkaXN0cmlidXRpb24gYXMgZGVmaW5l ZCBieSBTZWN0aW9ucyAxIHRocm91Z2ggOSBvZiB0aGlzIGRvY3VtZW50LgotLQotLSAgICJMaWNl bnNvciIgc2hhbGwgbWVhbiB0aGUgY29weXJpZ2h0IG93bmVyIG9yIGVudGl0eSBhdXRob3JpemVk IGJ5Ci0tICAgdGhlIGNvcHlyaWdodCBvd25lciB0aGF0IGlzIGdyYW50aW5nIHRoZSBMaWNlbnNl LgotLQotLSAgICJMZWdhbCBFbnRpdHkiIHNoYWxsIG1lYW4gdGhlIHVuaW9uIG9mIHRoZSBhY3Rp bmcgZW50aXR5IGFuZCBhbGwKLS0gICBvdGhlciBlbnRpdGllcyB0aGF0IGNvbnRyb2wsIGFyZSBj b250cm9sbGVkIGJ5LCBvciBhcmUgdW5kZXIgY29tbW9uCi0tICAgY29udHJvbCB3aXRoIHRoYXQg ZW50aXR5LiBGb3IgdGhlIHB1cnBvc2VzIG9mIHRoaXMgZGVmaW5pdGlvbiwKLS0gICAiY29udHJv bCIgbWVhbnMgKGkpIHRoZSBwb3dlciwgZGlyZWN0IG9yIGluZGlyZWN0LCB0byBjYXVzZSB0aGUK LS0gICBkaXJlY3Rpb24gb3IgbWFuYWdlbWVudCBvZiBzdWNoIGVudGl0eSwgd2hldGhlciBieSBj b250cmFjdCBvcgotLSAgIG90aGVyd2lzZSwgb3IgKGlpKSBvd25lcnNoaXAgb2YgZmlmdHkgcGVy Y2VudCAoNTAlKSBvciBtb3JlIG9mIHRoZQotLSAgIG91dHN0YW5kaW5nIHNoYXJlcywgb3IgKGlp aSkgYmVuZWZpY2lhbCBvd25lcnNoaXAgb2Ygc3VjaCBlbnRpdHkuCi0tCi0tICAgIllvdSIgKG9y ICJZb3VyIikgc2hhbGwgbWVhbiBhbiBpbmRpdmlkdWFsIG9yIExlZ2FsIEVudGl0eQotLSAgIGV4 ZXJjaXNpbmcgcGVybWlzc2lvbnMgZ3JhbnRlZCBieSB0aGlzIExpY2Vuc2UuCi0tCi0tICAgIlNv dXJjZSIgZm9ybSBzaGFsbCBtZWFuIHRoZSBwcmVmZXJyZWQgZm9ybSBmb3IgbWFraW5nIG1vZGlm aWNhdGlvbnMsCi0tICAgaW5jbHVkaW5nIGJ1dCBub3QgbGltaXRlZCB0byBzb2Z0d2FyZSBzb3Vy Y2UgY29kZSwgZG9jdW1lbnRhdGlvbgotLSAgIHNvdXJjZSwgYW5kIGNvbmZpZ3VyYXRpb24gZmls ZXMuCi0tCi0tICAgIk9iamVjdCIgZm9ybSBzaGFsbCBtZWFuIGFueSBmb3JtIHJlc3VsdGluZyBm cm9tIG1lY2hhbmljYWwKLS0gICB0cmFuc2Zvcm1hdGlvbiBvciB0cmFuc2xhdGlvbiBvZiBhIFNv dXJjZSBmb3JtLCBpbmNsdWRpbmcgYnV0Ci0tICAgbm90IGxpbWl0ZWQgdG8gY29tcGlsZWQgb2Jq ZWN0IGNvZGUsIGdlbmVyYXRlZCBkb2N1bWVudGF0aW9uLAotLSAgIGFuZCBjb252ZXJzaW9ucyB0 byBvdGhlciBtZWRpYSB0eXBlcy4KLS0KLS0gICAiV29yayIgc2hhbGwgbWVhbiB0aGUgd29yayBv ZiBhdXRob3JzaGlwLCB3aGV0aGVyIGluIFNvdXJjZSBvcgotLSAgIE9iamVjdCBmb3JtLCBtYWRl IGF2YWlsYWJsZSB1bmRlciB0aGUgTGljZW5zZSwgYXMgaW5kaWNhdGVkIGJ5IGEKLS0gICBjb3B5 cmlnaHQgbm90aWNlIHRoYXQgaXMgaW5jbHVkZWQgaW4gb3IgYXR0YWNoZWQgdG8gdGhlIHdvcmsK LS0gICAoYW4gZXhhbXBsZSBpcyBwcm92aWRlZCBpbiB0aGUgQXBwZW5kaXggYmVsb3cpLgotLQot LSAgICJEZXJpdmF0aXZlIFdvcmtzIiBzaGFsbCBtZWFuIGFueSB3b3JrLCB3aGV0aGVyIGluIFNv dXJjZSBvciBPYmplY3QKLS0gICBmb3JtLCB0aGF0IGlzIGJhc2VkIG9uIChvciBkZXJpdmVkIGZy b20pIHRoZSBXb3JrIGFuZCBmb3Igd2hpY2ggdGhlCi0tICAgZWRpdG9yaWFsIHJldmlzaW9ucywg YW5ub3RhdGlvbnMsIGVsYWJvcmF0aW9ucywgb3Igb3RoZXIgbW9kaWZpY2F0aW9ucwotLSAgIHJl cHJlc2VudCwgYXMgYSB3aG9sZSwgYW4gb3JpZ2luYWwgd29yayBvZiBhdXRob3JzaGlwLiBGb3Ig dGhlIHB1cnBvc2VzCi0tICAgb2YgdGhpcyBMaWNlbnNlLCBEZXJpdmF0aXZlIFdvcmtzIHNoYWxs IG5vdCBpbmNsdWRlIHdvcmtzIHRoYXQgcmVtYWluCi0tICAgc2VwYXJhYmxlIGZyb20sIG9yIG1l cmVseSBsaW5rIChvciBiaW5kIGJ5IG5hbWUpIHRvIHRoZSBpbnRlcmZhY2VzIG9mLAotLSAgIHRo ZSBXb3JrIGFuZCBEZXJpdmF0aXZlIFdvcmtzIHRoZXJlb2YuCi0tCi0tICAgIkNvbnRyaWJ1dGlv biIgc2hhbGwgbWVhbiBhbnkgd29yayBvZiBhdXRob3JzaGlwLCBpbmNsdWRpbmcKLS0gICB0aGUg b3JpZ2luYWwgdmVyc2lvbiBvZiB0aGUgV29yayBhbmQgYW55IG1vZGlmaWNhdGlvbnMgb3IgYWRk aXRpb25zCi0tICAgdG8gdGhhdCBXb3JrIG9yIERlcml2YXRpdmUgV29ya3MgdGhlcmVvZiwgdGhh dCBpcyBpbnRlbnRpb25hbGx5Ci0tICAgc3VibWl0dGVkIHRvIExpY2Vuc29yIGZvciBpbmNsdXNp b24gaW4gdGhlIFdvcmsgYnkgdGhlIGNvcHlyaWdodCBvd25lcgotLSAgIG9yIGJ5IGFuIGluZGl2 aWR1YWwgb3IgTGVnYWwgRW50aXR5IGF1dGhvcml6ZWQgdG8gc3VibWl0IG9uIGJlaGFsZiBvZgot LSAgIHRoZSBjb3B5cmlnaHQgb3duZXIuIEZvciB0aGUgcHVycG9zZXMgb2YgdGhpcyBkZWZpbml0 aW9uLCAic3VibWl0dGVkIgotLSAgIG1lYW5zIGFueSBmb3JtIG9mIGVsZWN0cm9uaWMsIHZlcmJh bCwgb3Igd3JpdHRlbiBjb21tdW5pY2F0aW9uIHNlbnQKLS0gICB0byB0aGUgTGljZW5zb3Igb3Ig aXRzIHJlcHJlc2VudGF0aXZlcywgaW5jbHVkaW5nIGJ1dCBub3QgbGltaXRlZCB0bwotLSAgIGNv bW11bmljYXRpb24gb24gZWxlY3Ryb25pYyBtYWlsaW5nIGxpc3RzLCBzb3VyY2UgY29kZSBjb250 cm9sIHN5c3RlbXMsCi0tICAgYW5kIGlzc3VlIHRyYWNraW5nIHN5c3RlbXMgdGhhdCBhcmUgbWFu YWdlZCBieSwgb3Igb24gYmVoYWxmIG9mLCB0aGUKLS0gICBMaWNlbnNvciBmb3IgdGhlIHB1cnBv c2Ugb2YgZGlzY3Vzc2luZyBhbmQgaW1wcm92aW5nIHRoZSBXb3JrLCBidXQKLS0gICBleGNsdWRp bmcgY29tbXVuaWNhdGlvbiB0aGF0IGlzIGNvbnNwaWN1b3VzbHkgbWFya2VkIG9yIG90aGVyd2lz ZQotLSAgIGRlc2lnbmF0ZWQgaW4gd3JpdGluZyBieSB0aGUgY29weXJpZ2h0IG93bmVyIGFzICJO b3QgYSBDb250cmlidXRpb24uIgotLQotLSAgICJDb250cmlidXRvciIgc2hhbGwgbWVhbiBMaWNl bnNvciBhbmQgYW55IGluZGl2aWR1YWwgb3IgTGVnYWwgRW50aXR5Ci0tICAgb24gYmVoYWxmIG9m IHdob20gYSBDb250cmlidXRpb24gaGFzIGJlZW4gcmVjZWl2ZWQgYnkgTGljZW5zb3IgYW5kCi0t ICAgc3Vic2VxdWVudGx5IGluY29ycG9yYXRlZCB3aXRoaW4gdGhlIFdvcmsuCi0tCi0tMi4gR3Jh bnQgb2YgQ29weXJpZ2h0IExpY2Vuc2UuIFN1YmplY3QgdG8gdGhlIHRlcm1zIGFuZCBjb25kaXRp b25zIG9mCi0tICAgdGhpcyBMaWNlbnNlLCBlYWNoIENvbnRyaWJ1dG9yIGhlcmVieSBncmFudHMg dG8gWW91IGEgcGVycGV0dWFsLAotLSAgIHdvcmxkd2lkZSwgbm9uLWV4Y2x1c2l2ZSwgbm8tY2hh cmdlLCByb3lhbHR5LWZyZWUsIGlycmV2b2NhYmxlCi0tICAgY29weXJpZ2h0IGxpY2Vuc2UgdG8g cmVwcm9kdWNlLCBwcmVwYXJlIERlcml2YXRpdmUgV29ya3Mgb2YsCi0tICAgcHVibGljbHkgZGlz cGxheSwgcHVibGljbHkgcGVyZm9ybSwgc3VibGljZW5zZSwgYW5kIGRpc3RyaWJ1dGUgdGhlCi0t ICAgV29yayBhbmQgc3VjaCBEZXJpdmF0aXZlIFdvcmtzIGluIFNvdXJjZSBvciBPYmplY3QgZm9y bS4KLS0KLS0zLiBHcmFudCBvZiBQYXRlbnQgTGljZW5zZS4gU3ViamVjdCB0byB0aGUgdGVybXMg YW5kIGNvbmRpdGlvbnMgb2YKLS0gICB0aGlzIExpY2Vuc2UsIGVhY2ggQ29udHJpYnV0b3IgaGVy ZWJ5IGdyYW50cyB0byBZb3UgYSBwZXJwZXR1YWwsCi0tICAgd29ybGR3aWRlLCBub24tZXhjbHVz aXZlLCBuby1jaGFyZ2UsIHJveWFsdHktZnJlZSwgaXJyZXZvY2FibGUKLS0gICAoZXhjZXB0IGFz IHN0YXRlZCBpbiB0aGlzIHNlY3Rpb24pIHBhdGVudCBsaWNlbnNlIHRvIG1ha2UsIGhhdmUgbWFk ZSwKLS0gICB1c2UsIG9mZmVyIHRvIHNlbGwsIHNlbGwsIGltcG9ydCwgYW5kIG90aGVyd2lzZSB0 cmFuc2ZlciB0aGUgV29yaywKLS0gICB3aGVyZSBzdWNoIGxpY2Vuc2UgYXBwbGllcyBvbmx5IHRv IHRob3NlIHBhdGVudCBjbGFpbXMgbGljZW5zYWJsZQotLSAgIGJ5IHN1Y2ggQ29udHJpYnV0b3Ig dGhhdCBhcmUgbmVjZXNzYXJpbHkgaW5mcmluZ2VkIGJ5IHRoZWlyCi0tICAgQ29udHJpYnV0aW9u KHMpIGFsb25lIG9yIGJ5IGNvbWJpbmF0aW9uIG9mIHRoZWlyIENvbnRyaWJ1dGlvbihzKQotLSAg IHdpdGggdGhlIFdvcmsgdG8gd2hpY2ggc3VjaCBDb250cmlidXRpb24ocykgd2FzIHN1Ym1pdHRl ZC4gSWYgWW91Ci0tICAgaW5zdGl0dXRlIHBhdGVudCBsaXRpZ2F0aW9uIGFnYWluc3QgYW55IGVu dGl0eSAoaW5jbHVkaW5nIGEKLS0gICBjcm9zcy1jbGFpbSBvciBjb3VudGVyY2xhaW0gaW4gYSBs YXdzdWl0KSBhbGxlZ2luZyB0aGF0IHRoZSBXb3JrCi0tICAgb3IgYSBDb250cmlidXRpb24gaW5j b3Jwb3JhdGVkIHdpdGhpbiB0aGUgV29yayBjb25zdGl0dXRlcyBkaXJlY3QKLS0gICBvciBjb250 cmlidXRvcnkgcGF0ZW50IGluZnJpbmdlbWVudCwgdGhlbiBhbnkgcGF0ZW50IGxpY2Vuc2VzCi0t ICAgZ3JhbnRlZCB0byBZb3UgdW5kZXIgdGhpcyBMaWNlbnNlIGZvciB0aGF0IFdvcmsgc2hhbGwg dGVybWluYXRlCi0tICAgYXMgb2YgdGhlIGRhdGUgc3VjaCBsaXRpZ2F0aW9uIGlzIGZpbGVkLgot LQotLTQuIFJlZGlzdHJpYnV0aW9uLiBZb3UgbWF5IHJlcHJvZHVjZSBhbmQgZGlzdHJpYnV0ZSBj b3BpZXMgb2YgdGhlCi0tICAgV29yayBvciBEZXJpdmF0aXZlIFdvcmtzIHRoZXJlb2YgaW4gYW55 IG1lZGl1bSwgd2l0aCBvciB3aXRob3V0Ci0tICAgbW9kaWZpY2F0aW9ucywgYW5kIGluIFNvdXJj ZSBvciBPYmplY3QgZm9ybSwgcHJvdmlkZWQgdGhhdCBZb3UKLS0gICBtZWV0IHRoZSBmb2xsb3dp bmcgY29uZGl0aW9uczoKLS0KLS0gICAoYSkgWW91IG11c3QgZ2l2ZSBhbnkgb3RoZXIgcmVjaXBp ZW50cyBvZiB0aGUgV29yayBvcgotLSAgICAgICBEZXJpdmF0aXZlIFdvcmtzIGEgY29weSBvZiB0 aGlzIExpY2Vuc2U7IGFuZAotLQotLSAgIChiKSBZb3UgbXVzdCBjYXVzZSBhbnkgbW9kaWZpZWQg ZmlsZXMgdG8gY2FycnkgcHJvbWluZW50IG5vdGljZXMKLS0gICAgICAgc3RhdGluZyB0aGF0IFlv dSBjaGFuZ2VkIHRoZSBmaWxlczsgYW5kCi0tCi0tICAgKGMpIFlvdSBtdXN0IHJldGFpbiwgaW4g dGhlIFNvdXJjZSBmb3JtIG9mIGFueSBEZXJpdmF0aXZlIFdvcmtzCi0tICAgICAgIHRoYXQgWW91 IGRpc3RyaWJ1dGUsIGFsbCBjb3B5cmlnaHQsIHBhdGVudCwgdHJhZGVtYXJrLCBhbmQKLS0gICAg ICAgYXR0cmlidXRpb24gbm90aWNlcyBmcm9tIHRoZSBTb3VyY2UgZm9ybSBvZiB0aGUgV29yaywK LS0gICAgICAgZXhjbHVkaW5nIHRob3NlIG5vdGljZXMgdGhhdCBkbyBub3QgcGVydGFpbiB0byBh bnkgcGFydCBvZgotLSAgICAgICB0aGUgRGVyaXZhdGl2ZSBXb3JrczsgYW5kCi0tCi0tICAgKGQp IElmIHRoZSBXb3JrIGluY2x1ZGVzIGEgIk5PVElDRSIgdGV4dCBmaWxlIGFzIHBhcnQgb2YgaXRz Ci0tICAgICAgIGRpc3RyaWJ1dGlvbiwgdGhlbiBhbnkgRGVyaXZhdGl2ZSBXb3JrcyB0aGF0IFlv dSBkaXN0cmlidXRlIG11c3QKLS0gICAgICAgaW5jbHVkZSBhIHJlYWRhYmxlIGNvcHkgb2YgdGhl IGF0dHJpYnV0aW9uIG5vdGljZXMgY29udGFpbmVkCi0tICAgICAgIHdpdGhpbiBzdWNoIE5PVElD RSBmaWxlLCBleGNsdWRpbmcgdGhvc2Ugbm90aWNlcyB0aGF0IGRvIG5vdAotLSAgICAgICBwZXJ0 YWluIHRvIGFueSBwYXJ0IG9mIHRoZSBEZXJpdmF0aXZlIFdvcmtzLCBpbiBhdCBsZWFzdCBvbmUK LS0gICAgICAgb2YgdGhlIGZvbGxvd2luZyBwbGFjZXM6IHdpdGhpbiBhIE5PVElDRSB0ZXh0IGZp bGUgZGlzdHJpYnV0ZWQKLS0gICAgICAgYXMgcGFydCBvZiB0aGUgRGVyaXZhdGl2ZSBXb3Jrczsg d2l0aGluIHRoZSBTb3VyY2UgZm9ybSBvcgotLSAgICAgICBkb2N1bWVudGF0aW9uLCBpZiBwcm92 aWRlZCBhbG9uZyB3aXRoIHRoZSBEZXJpdmF0aXZlIFdvcmtzOyBvciwKLS0gICAgICAgd2l0aGlu IGEgZGlzcGxheSBnZW5lcmF0ZWQgYnkgdGhlIERlcml2YXRpdmUgV29ya3MsIGlmIGFuZAotLSAg ICAgICB3aGVyZXZlciBzdWNoIHRoaXJkLXBhcnR5IG5vdGljZXMgbm9ybWFsbHkgYXBwZWFyLiBU aGUgY29udGVudHMKLS0gICAgICAgb2YgdGhlIE5PVElDRSBmaWxlIGFyZSBmb3IgaW5mb3JtYXRp b25hbCBwdXJwb3NlcyBvbmx5IGFuZAotLSAgICAgICBkbyBub3QgbW9kaWZ5IHRoZSBMaWNlbnNl LiBZb3UgbWF5IGFkZCBZb3VyIG93biBhdHRyaWJ1dGlvbgotLSAgICAgICBub3RpY2VzIHdpdGhp biBEZXJpdmF0aXZlIFdvcmtzIHRoYXQgWW91IGRpc3RyaWJ1dGUsIGFsb25nc2lkZQotLSAgICAg ICBvciBhcyBhbiBhZGRlbmR1bSB0byB0aGUgTk9USUNFIHRleHQgZnJvbSB0aGUgV29yaywgcHJv dmlkZWQKLS0gICAgICAgdGhhdCBzdWNoIGFkZGl0aW9uYWwgYXR0cmlidXRpb24gbm90aWNlcyBj YW5ub3QgYmUgY29uc3RydWVkCi0tICAgICAgIGFzIG1vZGlmeWluZyB0aGUgTGljZW5zZS4KLS0K LS0gICBZb3UgbWF5IGFkZCBZb3VyIG93biBjb3B5cmlnaHQgc3RhdGVtZW50IHRvIFlvdXIgbW9k aWZpY2F0aW9ucyBhbmQKLS0gICBtYXkgcHJvdmlkZSBhZGRpdGlvbmFsIG9yIGRpZmZlcmVudCBs aWNlbnNlIHRlcm1zIGFuZCBjb25kaXRpb25zCi0tICAgZm9yIHVzZSwgcmVwcm9kdWN0aW9uLCBv ciBkaXN0cmlidXRpb24gb2YgWW91ciBtb2RpZmljYXRpb25zLCBvcgotLSAgIGZvciBhbnkgc3Vj aCBEZXJpdmF0aXZlIFdvcmtzIGFzIGEgd2hvbGUsIHByb3ZpZGVkIFlvdXIgdXNlLAotLSAgIHJl cHJvZHVjdGlvbiwgYW5kIGRpc3RyaWJ1dGlvbiBvZiB0aGUgV29yayBvdGhlcndpc2UgY29tcGxp ZXMgd2l0aAotLSAgIHRoZSBjb25kaXRpb25zIHN0YXRlZCBpbiB0aGlzIExpY2Vuc2UuCi0tCi0t NS4gU3VibWlzc2lvbiBvZiBDb250cmlidXRpb25zLiBVbmxlc3MgWW91IGV4cGxpY2l0bHkgc3Rh dGUgb3RoZXJ3aXNlLAotLSAgIGFueSBDb250cmlidXRpb24gaW50ZW50aW9uYWxseSBzdWJtaXR0 ZWQgZm9yIGluY2x1c2lvbiBpbiB0aGUgV29yawotLSAgIGJ5IFlvdSB0byB0aGUgTGljZW5zb3Ig c2hhbGwgYmUgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mCi0tICAgdGhpcyBMaWNl bnNlLCB3aXRob3V0IGFueSBhZGRpdGlvbmFsIHRlcm1zIG9yIGNvbmRpdGlvbnMuCi0tICAgTm90 d2l0aHN0YW5kaW5nIHRoZSBhYm92ZSwgbm90aGluZyBoZXJlaW4gc2hhbGwgc3VwZXJzZWRlIG9y IG1vZGlmeQotLSAgIHRoZSB0ZXJtcyBvZiBhbnkgc2VwYXJhdGUgbGljZW5zZSBhZ3JlZW1lbnQg eW91IG1heSBoYXZlIGV4ZWN1dGVkCi0tICAgd2l0aCBMaWNlbnNvciByZWdhcmRpbmcgc3VjaCBD b250cmlidXRpb25zLgotLQotLTYuIFRyYWRlbWFya3MuIFRoaXMgTGljZW5zZSBkb2VzIG5vdCBn cmFudCBwZXJtaXNzaW9uIHRvIHVzZSB0aGUgdHJhZGUKLS0gICBuYW1lcywgdHJhZGVtYXJrcywg c2VydmljZSBtYXJrcywgb3IgcHJvZHVjdCBuYW1lcyBvZiB0aGUgTGljZW5zb3IsCi0tICAgZXhj ZXB0IGFzIHJlcXVpcmVkIGZvciByZWFzb25hYmxlIGFuZCBjdXN0b21hcnkgdXNlIGluIGRlc2Ny aWJpbmcgdGhlCi0tICAgb3JpZ2luIG9mIHRoZSBXb3JrIGFuZCByZXByb2R1Y2luZyB0aGUgY29u dGVudCBvZiB0aGUgTk9USUNFIGZpbGUuCi0tCi0tNy4gRGlzY2xhaW1lciBvZiBXYXJyYW50eS4g VW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yCi0tICAgYWdyZWVkIHRvIGluIHdy aXRpbmcsIExpY2Vuc29yIHByb3ZpZGVzIHRoZSBXb3JrIChhbmQgZWFjaAotLSAgIENvbnRyaWJ1 dG9yIHByb3ZpZGVzIGl0cyBDb250cmlidXRpb25zKSBvbiBhbiAiQVMgSVMiIEJBU0lTLAotLSAg IFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhw cmVzcyBvcgotLSAgIGltcGxpZWQsIGluY2x1ZGluZywgd2l0aG91dCBsaW1pdGF0aW9uLCBhbnkg d2FycmFudGllcyBvciBjb25kaXRpb25zCi0tICAgb2YgVElUTEUsIE5PTi1JTkZSSU5HRU1FTlQs IE1FUkNIQU5UQUJJTElUWSwgb3IgRklUTkVTUyBGT1IgQQotLSAgIFBBUlRJQ1VMQVIgUFVSUE9T RS4gWW91IGFyZSBzb2xlbHkgcmVzcG9uc2libGUgZm9yIGRldGVybWluaW5nIHRoZQotLSAgIGFw cHJvcHJpYXRlbmVzcyBvZiB1c2luZyBvciByZWRpc3RyaWJ1dGluZyB0aGUgV29yayBhbmQgYXNz dW1lIGFueQotLSAgIHJpc2tzIGFzc29jaWF0ZWQgd2l0aCBZb3VyIGV4ZXJjaXNlIG9mIHBlcm1p c3Npb25zIHVuZGVyIHRoaXMgTGljZW5zZS4KLS0KLS04LiBMaW1pdGF0aW9uIG9mIExpYWJpbGl0 eS4gSW4gbm8gZXZlbnQgYW5kIHVuZGVyIG5vIGxlZ2FsIHRoZW9yeSwKLS0gICB3aGV0aGVyIGlu IHRvcnQgKGluY2x1ZGluZyBuZWdsaWdlbmNlKSwgY29udHJhY3QsIG9yIG90aGVyd2lzZSwKLS0g ICB1bmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgKHN1Y2ggYXMgZGVsaWJlcmF0ZSBh bmQgZ3Jvc3NseQotLSAgIG5lZ2xpZ2VudCBhY3RzKSBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywg c2hhbGwgYW55IENvbnRyaWJ1dG9yIGJlCi0tICAgbGlhYmxlIHRvIFlvdSBmb3IgZGFtYWdlcywg aW5jbHVkaW5nIGFueSBkaXJlY3QsIGluZGlyZWN0LCBzcGVjaWFsLAotLSAgIGluY2lkZW50YWws IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvZiBhbnkgY2hhcmFjdGVyIGFyaXNpbmcgYXMgYQot LSAgIHJlc3VsdCBvZiB0aGlzIExpY2Vuc2Ugb3Igb3V0IG9mIHRoZSB1c2Ugb3IgaW5hYmlsaXR5 IHRvIHVzZSB0aGUKLS0gICBXb3JrIChpbmNsdWRpbmcgYnV0IG5vdCBsaW1pdGVkIHRvIGRhbWFn ZXMgZm9yIGxvc3Mgb2YgZ29vZHdpbGwsCi0tICAgd29yayBzdG9wcGFnZSwgY29tcHV0ZXIgZmFp bHVyZSBvciBtYWxmdW5jdGlvbiwgb3IgYW55IGFuZCBhbGwKLS0gICBvdGhlciBjb21tZXJjaWFs IGRhbWFnZXMgb3IgbG9zc2VzKSwgZXZlbiBpZiBzdWNoIENvbnRyaWJ1dG9yCi0tICAgaGFzIGJl ZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2Ygc3VjaCBkYW1hZ2VzLgotLQotLTkuIEFj Y2VwdGluZyBXYXJyYW50eSBvciBBZGRpdGlvbmFsIExpYWJpbGl0eS4gV2hpbGUgcmVkaXN0cmli dXRpbmcKLS0gICB0aGUgV29yayBvciBEZXJpdmF0aXZlIFdvcmtzIHRoZXJlb2YsIFlvdSBtYXkg Y2hvb3NlIHRvIG9mZmVyLAotLSAgIGFuZCBjaGFyZ2UgYSBmZWUgZm9yLCBhY2NlcHRhbmNlIG9m IHN1cHBvcnQsIHdhcnJhbnR5LCBpbmRlbW5pdHksCi0tICAgb3Igb3RoZXIgbGlhYmlsaXR5IG9i bGlnYXRpb25zIGFuZC9vciByaWdodHMgY29uc2lzdGVudCB3aXRoIHRoaXMKLS0gICBMaWNlbnNl LiBIb3dldmVyLCBpbiBhY2NlcHRpbmcgc3VjaCBvYmxpZ2F0aW9ucywgWW91IG1heSBhY3Qgb25s eQotLSAgIG9uIFlvdXIgb3duIGJlaGFsZiBhbmQgb24gWW91ciBzb2xlIHJlc3BvbnNpYmlsaXR5 LCBub3Qgb24gYmVoYWxmCi0tICAgb2YgYW55IG90aGVyIENvbnRyaWJ1dG9yLCBhbmQgb25seSBp ZiBZb3UgYWdyZWUgdG8gaW5kZW1uaWZ5LAotLSAgIGRlZmVuZCwgYW5kIGhvbGQgZWFjaCBDb250 cmlidXRvciBoYXJtbGVzcyBmb3IgYW55IGxpYWJpbGl0eQotLSAgIGluY3VycmVkIGJ5LCBvciBj bGFpbXMgYXNzZXJ0ZWQgYWdhaW5zdCwgc3VjaCBDb250cmlidXRvciBieSByZWFzb24KLS0gICBv ZiB5b3VyIGFjY2VwdGluZyBhbnkgc3VjaCB3YXJyYW50eSBvciBhZGRpdGlvbmFsIGxpYWJpbGl0 eS4KLS0KLS1FTkQgT0YgVEVSTVMgQU5EIENPTkRJVElPTlMKLS0KLS1BUFBFTkRJWDogSG93IHRv IGFwcGx5IHRoZSBBcGFjaGUgTGljZW5zZSB0byB5b3VyIHdvcmsuCi0tCi0tICAgVG8gYXBwbHkg dGhlIEFwYWNoZSBMaWNlbnNlIHRvIHlvdXIgd29yaywgYXR0YWNoIHRoZSBmb2xsb3dpbmcKLS0g ICBib2lsZXJwbGF0ZSBub3RpY2UsIHdpdGggdGhlIGZpZWxkcyBlbmNsb3NlZCBieSBicmFja2V0 cyAiW10iCi0tICAgcmVwbGFjZWQgd2l0aCB5b3VyIG93biBpZGVudGlmeWluZyBpbmZvcm1hdGlv bi4gKERvbid0IGluY2x1ZGUKLS0gICB0aGUgYnJhY2tldHMhKSAgVGhlIHRleHQgc2hvdWxkIGJl IGVuY2xvc2VkIGluIHRoZSBhcHByb3ByaWF0ZQotLSAgIGNvbW1lbnQgc3ludGF4IGZvciB0aGUg ZmlsZSBmb3JtYXQuIFdlIGFsc28gcmVjb21tZW5kIHRoYXQgYQotLSAgIGZpbGUgb3IgY2xhc3Mg bmFtZSBhbmQgZGVzY3JpcHRpb24gb2YgcHVycG9zZSBiZSBpbmNsdWRlZCBvbiB0aGUKLS0gICBz YW1lICJwcmludGVkIHBhZ2UiIGFzIHRoZSBjb3B5cmlnaHQgbm90aWNlIGZvciBlYXNpZXIKLS0g ICBpZGVudGlmaWNhdGlvbiB3aXRoaW4gdGhpcmQtcGFydHkgYXJjaGl2ZXMuCi0tCi0tQ29weXJp Z2h0IFt5eXl5XSBbbmFtZSBvZiBjb3B5cmlnaHQgb3duZXJdCi0tCi0tTGljZW5zZWQgdW5kZXIg dGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0teW91IG1h eSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNl LgotLVlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotLQotLQlodHRwOi8v d3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLS0KLS1Vbmxlc3MgcmVxdWlyZWQg YnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0tZGlz dHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBC QVNJUywKLS1XSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0 aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLS1TZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZp YyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0tbGltaXRhdGlvbnMgdW5kZXIg dGhlIExpY2Vuc2UuCi1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9M SUNFTlNFLU1JVCBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvTElDRU5TRS1NSVQKLS0t LSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvTElDRU5TRS1NSVQJMjAyNS0wNC0yMCAx OToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3Np bWQvTElDRU5TRS1NSVQJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0x LDI1ICswLDAgQEAKLS1Db3B5cmlnaHQgKGMpIDIwMTQgVGhlIFJ1c3QgUHJvamVjdCBEZXZlbG9w ZXJzCi0tCi0tUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRv IGFueQotLXBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29j aWF0ZWQKLS1kb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvIGRlYWwgaW4g dGhlCi0tU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQKLS1s aW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLAotLXB1Ymxp c2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZgotLXRoZSBT b2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlCi0taXMg ZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcKLS1jb25kaXRpb25z OgotLQotLVRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90 aWNlCi0tc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0 aW9ucwotLW9mIHRoZSBTb2Z0d2FyZS4KLS0KLS1USEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFT IElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRgotLUFOWSBLSU5ELCBFWFBSRVNTIE9SIElNUExJRUQs IElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQKLS1UTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFO VEFCSUxJVFksIEZJVE5FU1MgRk9SIEEKLS1QQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJ TkdFTUVOVC4gSU4gTk8gRVZFTlQKLS1TSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9M REVSUyBCRSBMSUFCTEUgRk9SIEFOWQotLUNMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElU WSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04KLS1PRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0Us IEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SCi0tSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FS RSBPUiBUSEUgVVNFIE9SIE9USEVSCi0tREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgotZGlmZiAt TnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvUkVBRE1FLm1kIGIvdGhpcmRfcGFy dHkvcnVzdC9wYWNrZWRfc2ltZC9SRUFETUUubWQKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFj a2VkX3NpbWQvUkVBRE1FLm1kCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0r KysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL1JFQURNRS5tZAkxOTcwLTAxLTAxIDAz OjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsMTQ0ICswLDAgQEAKLS0jIGBTaW1kPFtUOyBO XT5gCi0tCi0tIyMgSW1wbGVtZW50YXRpb24gb2YgW1J1c3QgUkZDICMyMzY2OiBgc3RkOjpzaW1k YF1bcmZjMjM2Nl0KLS0KLS1bIVtMYXRlc3QgVmVyc2lvbl1dW2NyYXRlcy5pb10gWyFbZG9jc11d W21hc3Rlcl9kb2NzXQotLQotLSoqV0FSTklORyoqOiB0aGlzIGNyYXRlIG9ubHkgc3VwcG9ydHMg dGhlIG1vc3QgcmVjZW50IG5pZ2h0bHkgUnVzdCB0b29sY2hhaW4KLS1hbmQgd2lsbCBiZSBzdXBl cnNlZGVkIGJ5IFtgIyFbZmVhdHVyZShwb3J0YWJsZV9zaW1kKV1gXShodHRwczovL2dpdGh1Yi5j b20vcnVzdC1sYW5nL3BvcnRhYmxlLXNpbWQpLgotLQotLSMjIERvY3VtZW50YXRpb24KLS0KLS0q IFtBUEkgZG9jcyAoYG1hc3RlcmAgYnJhbmNoKV1bbWFzdGVyX2RvY3NdCi0tKiBbUGVyZm9ybWFu Y2UgZ3VpZGVdW3BlcmZfZ3VpZGVdCi0tKiBbQVBJIGRvY3MgKGBkb2NzLnJzYCldW2RvY3MucnNd Ci0tKiBbUkZDMjM2NiBgc3RkOjpzaW1kYF1bcmZjMjM2Nl06IC0gY29udGFpbnMgbW90aXZhdGlv biwgZGVzaWduIHJhdGlvbmFsZSwKLS0gIGRpc2N1c3Npb24sIGV0Yy4KLS0KLS0jIyBFeGFtcGxl cwotLQotLU1vc3Qgb2YgdGhlIGV4YW1wbGVzIGNvbWUgd2l0aCBib3RoIGEgc2NhbGFyIGFuZCBh IHZlY3Rvcml6ZWQgaW1wbGVtZW50YXRpb24uCi0tCi0tKiBbYGFvYmVuY2hgXShodHRwczovL2dp dGh1Yi5jb20vcnVzdC1sYW5nLW51cnNlcnkvcGFja2VkX3NpbWQvdHJlZS9tYXN0ZXIvZXhhbXBs ZXMvYW9iZW5jaCkKLS0qIFtgZmFubmt1Y2hfcmVkdXhgXShodHRwczovL2dpdGh1Yi5jb20vcnVz dC1sYW5nLW51cnNlcnkvcGFja2VkX3NpbWQvdHJlZS9tYXN0ZXIvZXhhbXBsZXMvZmFubmt1Y2hf cmVkdXgpCi0tKiBbYG1hdHJpeCBpbnZlcnNlYF0oaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFu Zy1udXJzZXJ5L3BhY2tlZF9zaW1kL3RyZWUvbWFzdGVyL2V4YW1wbGVzL21hdHJpeF9pbnZlcnNl KQotLSogW2BtYW5kZWxicm90YF0oaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy1udXJzZXJ5 L3BhY2tlZF9zaW1kL3RyZWUvbWFzdGVyL2V4YW1wbGVzL21hbmRlbGJyb3QpCi0tKiBbYG4tYm9k eWBdKGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmctbnVyc2VyeS9wYWNrZWRfc2ltZC90cmVl L21hc3Rlci9leGFtcGxlcy9uYm9keSkKLS0qIFtgb3B0aW9uc19wcmljaW5nYF0oaHR0cHM6Ly9n aXRodWIuY29tL3J1c3QtbGFuZy1udXJzZXJ5L3BhY2tlZF9zaW1kL3RyZWUvbWFzdGVyL2V4YW1w bGVzL29wdGlvbnNfcHJpY2luZykKLS0qIFtgc3BlY3RyYWxfbm9ybWBdKGh0dHBzOi8vZ2l0aHVi LmNvbS9ydXN0LWxhbmctbnVyc2VyeS9wYWNrZWRfc2ltZC90cmVlL21hc3Rlci9leGFtcGxlcy9z cGVjdHJhbF9ub3JtKQotLSogW2B0cmlhbmdsZSB0cmFuc2Zvcm1gXShodHRwczovL2dpdGh1Yi5j b20vcnVzdC1sYW5nLW51cnNlcnkvcGFja2VkX3NpbWQvdHJlZS9tYXN0ZXIvZXhhbXBsZXMvdHJp YW5nbGVfeGZvcm0pCi0tKiBbYHN0ZW5jaWxgXShodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5n LW51cnNlcnkvcGFja2VkX3NpbWQvdHJlZS9tYXN0ZXIvZXhhbXBsZXMvc3RlbmNpbCkKLS0qIFtg dmVjdG9yIGRvdCBwcm9kdWN0YF0oaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy1udXJzZXJ5 L3BhY2tlZF9zaW1kL3RyZWUvbWFzdGVyL2V4YW1wbGVzL2RvdF9wcm9kdWN0KQotLQotLSMjIENh cmdvIGZlYXR1cmVzCi0tCi0tKiBgaW50b19iaXRzYCAoZGVmYXVsdDogZGlzYWJsZWQpOiBlbmFi bGVzIGBGcm9tQml0c2AvYEludG9CaXRzYCB0cmFpdAotLSAgaW1wbGVtZW50YXRpb25zIGZvciB0 aGUgdmVjdG9yIHR5cGVzLiBUaGVzZSBhbGxvdyByZWludGVycHJldGluZyB0aGUgYml0cyBvZiBh Ci0tICB2ZWN0b3IgdHlwZSBhcyB0aG9zZSBvZiBhbm90aGVyIHZlY3RvciB0eXBlIHNhZmVseSBi eSBqdXN0IHVzaW5nIHRoZQotLSAgYC5pbnRvX2JpdHMoKWAgbWV0aG9kLgotLQotLSMjIFBlcmZv cm1hbmNlCi0tCi0tVGhlIGZvbGxvd2luZyBbSVNQQ10gZXhhbXBsZXMgYXJlIGFsc28gcGFydCBv ZiBgcGFja2VkX3NpbWRgJ3MKLS1bYGV4YW1wbGVzL2BdKGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0 LWxhbmctbnVyc2VyeS9wYWNrZWRfc2ltZC90cmVlL21hc3Rlci9leGFtcGxlcy8pCi0tZGlyZWN0 b3J5LCB3aGVyZSBgcGFja2VkX3NpbWRgK1tgcmF5b25gXVtyYXlvbl0gYXJlIHVzZWQgdG8gZW11 bGF0ZSBbSVNQQ10ncwotLVNpbmdsZS1Qcm9ncmFtLU11bHRpcGxlLURhdGEgKFNQTUQpIHByb2dy YW1taW5nIG1vZGVsLiBUaGUgcGVyZm9ybWFuY2UgcmVzdWx0cwotLW9uIGRpZmZlcmVudCBoYXJk d2FyZSBpcyBzaG93biBpbiB0aGUgYHJlYWRtZS5tZGAgb2YgZWFjaCBleGFtcGxlLiBUaGUgZm9s bG93aW5nCi0tdGFibGUgc3VtbWFyaXplcyB0aGUgcGVyZm9ybWFuY2UgcmFuZ2VzLCB3aGVyZSBg K2AgbWVhbnMgc3BlZWQtdXAgYW5kIGAtYAotLXNsb3dkb3duOgotLQotLSogYGFvYmVuY2hgOiBg Wy0xLjAyeCwgKzEuNTN4XWAsCi0tKiBgc3RlbmNpbGA6IGBbKzEuMDZ4LCArMS43MnhdYCwKLS0q IGBtYW5kZWxicm90YDogYFstMS43NHgsICsxLjJ4XWAsCi0tKiBgb3B0aW9uc19wcmljaW5nYDoK LS0gICAqIGBibGFja19zY2hvbGVzYDogYCsxLjB4YAotLSAgICogYGJpbm9taWFsX3B1dGA6IGAr MS40eGAKLS0KLS0gV2hpbGUgU1BNRCBpcyBub3QgdGhlIGludGVuZGVkIHVzZSBjYXNlIGZvciBg cGFja2VkX3NpbWRgLCBpdCBpcyBwb3NzaWJsZSB0bwotLSBjb21iaW5lIHRoZSBsaWJyYXJ5IHdp dGggW2ByYXlvbmBdW3JheW9uXSB0byBwb29ybHkgZW11bGF0ZSBbSVNQQ10ncyBTUE1EIHByb2dy YW1taW5nCi0tIG1vZGVsIGluIFJ1c3QuIFdyaXRpbmcgcGVyZm9ybWFudCBjb2RlIGlzIG5vdCBh cyBzdHJhaWdodGZvcndhcmQgYXMgd2l0aAotLSBbSVNQQ10sIGJ1dCB3aXRoIHNvbWUgY2FyZSAo ZS5nLiBzZWUgdGhlIFtQZXJmb3JtYW5jZSBHdWlkZV1bcGVyZl9ndWlkZV0pIG9uZQotLSBjYW4g ZWFzaWx5IG1hdGNoIGFuZCBvZnRlbiBvdXQtcGVyZm9ybSBbSVNQQ10ncyAiZGVmYXVsdCBwZXJm b3JtYW5jZSIuCi0tCi0tIyMgUGxhdGZvcm0gc3VwcG9ydAotLQotLVRoZSBmb2xsb3dpbmcgdGFi bGUgZGVzY3JpYmVzIHRoZSBzdXBwb3J0ZWQgcGxhdGZvcm1zOiBgYnVpbGRgIHNob3dzIHdoZXRo ZXIKLS10aGUgbGlicmFyeSBjb21waWxlcyB3aXRob3V0IGlzc3VlcyBmb3IgYSBnaXZlbiB0YXJn ZXQsIHdoaWxlIGBydW5gIHNob3dzCi0td2hldGhlciB0aGUgdGVzdCBzdWl0ZSBwYXNzZXMgZm9y IGEgZ2l2ZW4gdGFyZ2V0LgotLQotLXwgKipMaW51eCoqICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB8ICoqYnVpbGQqKiB8ICoqcnVuKiogfAotLXwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS18LS0tLS0tLS0tfAotLXwgYGk1ODYtdW5rbm93bi1s aW51eC1nbnVgICAgICAgICAgICAgICB8IOKckyAgICAgICAgIHwg4pyXICAgICAgIHwKLS18IGBp Njg2LXVua25vd24tbGludXgtZ251YCAgICAgICAgICAgICAgfCDinJMgICAgICAgICB8IOKclyAg ICAgICB8Ci0tfCBgeDg2XzY0LXVua25vd24tbGludXgtZ251YCAgICAgICAgICAgIHwg4pyTICAg ICAgICAgfCDinJMgICAgICAgfAotLXwgYGFybS11bmtub3duLWxpbnV4LWdudWVhYmloZmAgICAg ICAgICB8IOKckyAgICAgICAgIHwg4pyTICAgICAgIHwKLS18IGBhcm12Ny11bmtub3duLWxpbnV4 LWdudWVhYmlgICAgICAgICAgfCDinJMgICAgICAgICB8IOKckyAgICAgICB8Ci0tfCBgYWFyY2g2 NC11bmtub3duLWxpbnV4LWdudWAgICAgICAgICAgIHwg4pyTICAgICAgICAgfCDinJMgICAgICAg fAotLXwgYHBvd2VycGMtdW5rbm93bi1saW51eC1nbnVgICAgICAgICAgICB8IOKckyAgICAgICAg IHwg4pyXICAgICAgIHwKLS18IGBwb3dlcnBjNjQtdW5rbm93bi1saW51eC1nbnVgICAgICAgICAg fCDinJMgICAgICAgICB8IOKclyAgICAgICB8Ci0tfCBgcG93ZXJwYzY0bGUtdW5rbm93bi1saW51 eC1nbnVgICAgICAgIHwg4pyTICAgICAgICAgfCDinJMgICAgICAgfAotLXwgYHMzOTB4LXVua25v d24tbGludXgtZ251YCAgICAgICAgICAgICB8IOKckyAgICAgICAgIHwg4pyXICAgICAgIHwKLS18 IGBzcGFyYzY0LXVua25vd24tbGludXgtZ251YCAgICAgICAgICAgfCDinJMgICAgICAgICB8IOKc lyAgICAgICB8Ci0tfCBgdGh1bWJ2N25lb24tdW5rbm93bi1saW51eC1nbnVlYWJpaGZgIHwg4pyT ICAgICAgICAgfCDinJMgICAgICAgfAotLXwgKipNYWNPU1gqKiAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8ICoqYnVpbGQqKiB8ICoqcnVuKiogfAotLXwgYHg4Nl82NC1hcHBsZS1kYXJ3aW5g ICAgICAgICAgICAgICAgICB8IOKckyAgICAgICAgIHwg4pyTICAgICAgIHwKLS18ICoqQW5kcm9p ZCoqICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAqKmJ1aWxkKiogfCAqKnJ1bioqIHwKLS18 IGB4ODZfNjQtbGludXgtYW5kcm9pZGAgICAgICAgICAgICAgICAgfCDinJMgICAgICAgICB8IOKc kyAgICAgICB8Ci0tfCBgYXJtdjctbGludXgtYW5kcm9pZGVhYmlgICAgICAgICAgICAgIHwg4pyT ICAgICAgICAgfCDinJcgICAgICAgfAotLXwgYGFhcmNoNjQtbGludXgtYW5kcm9pZGAgICAgICAg ICAgICAgICB8IOKckyAgICAgICAgIHwg4pyXICAgICAgIHwKLS18IGB0aHVtYnY3bmVvbi1saW51 eC1hbmRyb2lkZWFiaWAgICAgICAgfCDinJMgICAgICAgICB8IOKclyAgICAgICB8Ci0tfCAqKmlP UyoqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgKipidWlsZCoqIHwgKipydW4qKiB8 Ci0tfCBgeDg2XzY0LWFwcGxlLWlvc2AgICAgICAgICAgICAgICAgICAgIHwg4pyXICAgICAgICAg fCDinJcgICAgICAgfAotLXwgYGFhcmNoNjQtYXBwbGUtaW9zYCAgICAgICAgICAgICAgICAgICB8 IOKclyAgICAgICAgIHwg4pyXICAgICAgIHwKLS0KLS0KLS0jIyBNYWNoaW5lIGNvZGUgdmVyaWZp Y2F0aW9uCi0tCi0tVGhlCi0tW2B2ZXJpZnkvYF0oaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFu Zy1udXJzZXJ5L3BhY2tlZF9zaW1kL3RyZWUvbWFzdGVyL3ZlcmlmeSkKLS1jcmF0ZSB0ZXN0cyBk aXNhc3NlbWJsZXMgdGhlIHBvcnRhYmxlIHBhY2tlZCB2ZWN0b3IgQVBJcyBhdCBydW4tdGltZSBh bmQKLS1jb21wYXJlcyB0aGUgZ2VuZXJhdGVkIG1hY2hpbmUgY29kZSBhZ2FpbnN0IHRoZSBkZXNp cmVkIG9uZSB0byBtYWtlIHN1cmUgdGhhdAotLXRoaXMgY3JhdGUgcmVtYWlucyBlZmZpY2llbnQu Ci0tCi0tIyMgTGljZW5zZQotLQotLVRoaXMgcHJvamVjdCBpcyBsaWNlbnNlZCB1bmRlciBlaXRo ZXIgb2YKLS0KLS0qIFtBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjBdKGh0dHA6Ly93d3cuYXBh Y2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMCkKLS0gIChbTElDRU5TRS1BUEFDSEVdKExJQ0VO U0UtQVBBQ0hFKSkKLS0KLS0qIFtNSVQgTGljZW5zZV0oaHR0cDovL29wZW5zb3VyY2Uub3JnL2xp Y2Vuc2VzL01JVCkKLS0gIChbTElDRU5TRS1NSVRdKExJQ0VOU0UtTUlUKSkKLS0KLS1hdCB5b3Vy IG9wdGlvbi4KLS0KLS0jIyBDb250cmlidXRpbmcKLS0KLS1XZSB3ZWxjb21lIGFsbCBwZW9wbGUg d2hvIHdhbnQgdG8gY29udHJpYnV0ZS4KLS1QbGVhc2Ugc2VlIHRoZSBbY29udHJpYnV0aW5nIGlu c3RydWN0aW9uc10gZm9yIG1vcmUgaW5mb3JtYXRpb24uCi0tCi0tQ29udHJpYnV0aW9ucyBpbiBh bnkgZm9ybSAoaXNzdWVzLCBwdWxsIHJlcXVlc3RzLCBldGMuKSB0byB0aGlzIHByb2plY3QKLS1t dXN0IGFkaGVyZSB0byBSdXN0J3MgW0NvZGUgb2YgQ29uZHVjdF0uCi0tCi0tVW5sZXNzIHlvdSBl eHBsaWNpdGx5IHN0YXRlIG90aGVyd2lzZSwgYW55IGNvbnRyaWJ1dGlvbiBpbnRlbnRpb25hbGx5 IHN1Ym1pdHRlZAotLWZvciBpbmNsdXNpb24gaW4gYHBhY2tlZF9zaW1kYCBieSB5b3UsIGFzIGRl ZmluZWQgaW4gdGhlIEFwYWNoZS0yLjAgbGljZW5zZSwgc2hhbGwgYmUKLS1kdWFsIGxpY2Vuc2Vk IGFzIGFib3ZlLCB3aXRob3V0IGFueSBhZGRpdGlvbmFsIHRlcm1zIG9yIGNvbmRpdGlvbnMuCi0t Ci0tW3RyYXZpc106IGh0dHBzOi8vdHJhdmlzLWNpLmNvbS9ydXN0LWxhbmcvcGFja2VkX3NpbWQK LS1bVHJhdmlzLUNJIFN0YXR1c106IGh0dHBzOi8vdHJhdmlzLWNpLmNvbS9ydXN0LWxhbmcvcGFj a2VkX3NpbWQuc3ZnP2JyYW5jaD1tYXN0ZXIKLS1bYXBwdmV5b3JdOiBodHRwczovL2NpLmFwcHZl eW9yLmNvbS9wcm9qZWN0L2duemxiZy9wYWNrZWQtc2ltZAotLVtBcHB2ZXlvciBTdGF0dXNdOiBo dHRwczovL2NpLmFwcHZleW9yLmNvbS9hcGkvcHJvamVjdHMvc3RhdHVzL2hkN3Y5ZHZyNDQyaGdk aXg/c3ZnPXRydWUKLS1bTGF0ZXN0IFZlcnNpb25dOiBodHRwczovL2ltZy5zaGllbGRzLmlvL2Ny YXRlcy92L3BhY2tlZF9zaW1kLnN2ZwotLVtjcmF0ZXMuaW9dOiBodHRwczovL2NyYXRlcy5pby9j cmF0ZXMvcGFja2VkX3NpbWQKLS1bZG9jc106IGh0dHBzOi8vZG9jcy5ycy9wYWNrZWRfc2ltZC9i YWRnZS5zdmcKLS1bZG9jcy5yc106IGh0dHBzOi8vZG9jcy5ycy9wYWNrZWRfc2ltZAotLVttYXN0 ZXJfZG9jc106IGh0dHBzOi8vcnVzdC1sYW5nLW51cnNlcnkuZ2l0aHViLmlvL3BhY2tlZF9zaW1k L3BhY2tlZF9zaW1kLwotLVtwZXJmX2d1aWRlXTogaHR0cHM6Ly9ydXN0LWxhbmctbnVyc2VyeS5n aXRodWIuaW8vcGFja2VkX3NpbWQvcGVyZi1ndWlkZS8KLS1bcmZjMjM2Nl06IGh0dHBzOi8vZ2l0 aHViLmNvbS9ydXN0LWxhbmcvcmZjcy9wdWxsLzIzNjYKLS1bSVNQQ106IGh0dHBzOi8vaXNwYy5n aXRodWIuaW8vCi0tW3JheW9uXTogaHR0cHM6Ly9jcmF0ZXMuaW8vY3JhdGVzL3JheW9uCi0tW2Jv b3N0X2xpY2Vuc2VdOiBodHRwczovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0Ci0tW1NM RUVGXTogaHR0cHM6Ly9zbGVlZi5vcmcvCi0tW3NsZWVmX3N5c106IGh0dHBzOi8vY3JhdGVzLmlv L2NyYXRlcy9zbGVlZi1zeXMKLS1bY29udHJpYnV0aW5nIGluc3RydWN0aW9uc106IGNvbnRyaWJ1 dGluZy5tZAotLVtDb2RlIG9mIENvbmR1Y3RdOiBodHRwczovL3d3dy5ydXN0LWxhbmcub3JnL2Vu LVVTL2NvbmR1Y3QuaHRtbAotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3Np bWQvYm9ycy50b21sIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9ib3JzLnRvbWwKLS0t LSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvYm9ycy50b21sCTIwMjUtMDQtMjAgMTk6 Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1k L2JvcnMudG9tbAkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsMyAr MCwwIEBACi0tc3RhdHVzID0gWwotLSAgICAiY29udGludW91cy1pbnRlZ3JhdGlvbi90cmF2aXMt Y2kvcHVzaCIKLS1dCi1cIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKLWRpZmYgLU5yYnUgYS90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2J1aWxkLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9w YWNrZWRfc2ltZC9idWlsZC5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9i dWlsZC5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRf cGFydHkvcnVzdC9wYWNrZWRfc2ltZC9idWlsZC5ycwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAw MDAwMCArMDMwMAotQEAgLTEsNiArMCwwIEBACi0tZm4gbWFpbigpIHsKLS0gICAgbGV0IHRhcmdl dCA9IHN0ZDo6ZW52Ojp2YXIoIlRBUkdFVCIpLmV4cGVjdCgiVEFSR0VUIGVudmlyb25tZW50IHZh cmlhYmxlIG5vdCBkZWZpbmVkIik7Ci0tICAgIGlmIHRhcmdldC5jb250YWlucygibmVvbiIpIHsK LS0gICAgICAgIHByaW50bG4hKCJjYXJnbzpydXN0Yy1jZmc9bGliY29yZV9uZW9uIik7Ci0tICAg IH0KLS19Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9hbGwu c2ggYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2FsbC5zaAotLS0tIGEvdGhpcmRf cGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9hbGwuc2gJMjAyNS0wOS0wNyAxNDozMDozNy4wMDAw MDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvYWxsLnNo CTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSw3MSArMCwwIEBACi0t IyEvdXNyL2Jpbi9lbnYgYmFzaAotLSMKLS0jIFBlcmZvcm1zIGFuIG9wZXJhdGlvbiBvbiBhbGwg dGFyZ2V0cwotLQotLXNldCAtZXgKLS0KLS06ICIkezE/VGhlIGFsbC5zaCBzY3JpcHQgcmVxdWly ZXMgb25lIGFyZ3VtZW50Ln0iCi0tCi0tb3A9JDEKLS0KLS1jYXJnb19jbGVhbigpIHsKLS0gICAg Y2FyZ28gY2xlYW4KLS19Ci0tCi0tY2FyZ29fY2hlY2tfZm10KCkgewotLSAgICBjYXJnbyBmbXQg LS1hbGwgLS0gLS1jaGVjawotLX0KLS0KLS1jYXJnb19mbXQoKSB7Ci0tICAgIGNhcmdvIGZtdCAt LWFsbAotLX0KLS0KLS1jYXJnb19jbGlwcHkoKSB7Ci0tICAgIGNhcmdvIGNsaXBweSAtLWFsbCAt LSAtRCBjbGlwcHk6OnBlcmYKLS19Ci0tCi0tQ01EPSItMSIKLS0KLS1jYXNlICRvcCBpbgotLSAg ICBjbGVhbiopCi0tICAgICAgICBDTUQ9Y2FyZ29fY2xlYW4KLS0gICAgICAgIDs7Ci0tICAgIGNo ZWNrX2ZtdCopCi0tICAgICAgICBDTUQ9Y2FyZ29fY2hlY2tfZm10Ci0tICAgICAgICA7OwotLSAg ICBmbXQqKQotLSAgICAgICAgQ01EPWNhcmdvX2ZtdAotLSAgICAgICAgOzsKLS0gICAgY2xpcHB5 KQotLSAgICAgICAgQ01EPWNhcmdvX2NsaXBweQotLSAgICAgICAgOzsKLS0gICAgKikKLS0gICAg ICAgIGVjaG8gIlVua25vd24gb3BlcmF0aW9uOiBcIiR7b3B9XCIiCi0tICAgICAgICBleGl0IDEK LS0gICAgICAgIDs7Ci0tZXNhYwotLQotLWVjaG8gIk9wZXJhdGlvbiBpczogJHtDTUR9IgotLQot LSMgT24gc3JjLwotLSRDTUQKLS0KLS0jIENoZWNrIGV4YW1wbGVzLwotLWZvciBkaXIgaW4gZXhh bXBsZXMvKi8KLS1kbwotLSAgICBkaXI9JHtkaXIlKi99Ci0tICAgICgKLS0gICAgICAgIGNkICIk e2RpciUqL30iCi0tICAgICAgICAkQ01ECi0tICAgICkKLS1kb25lCi0tCi0tKAotLSAgICBjZCB2 ZXJpZnkvdmVyaWZ5Ci0tICAgICRDTUQKLS0pCi0tCi0tKAotLSAgICBjZCBtaWNyb19iZW5jaG1h cmtzCi0tICAgICRDTUQKLS0pCi1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRf c2ltZC9jaS9hbmRyb2lkLWluc3RhbGwtbmRrLnNoIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRf c2ltZC9jaS9hbmRyb2lkLWluc3RhbGwtbmRrLnNoCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3Bh Y2tlZF9zaW1kL2NpL2FuZHJvaWQtaW5zdGFsbC1uZGsuc2gJMjAyNS0wNC0yMCAxOToyODoxMy4w MDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvYW5k cm9pZC1pbnN0YWxsLW5kay5zaAkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAot QEAgLTEsMjEgKzAsMCBAQAotLSMhL3Vzci9iaW4vZW52IHNoCi0tIyBDb3B5cmlnaHQgMjAxNiBU aGUgUnVzdCBQcm9qZWN0IERldmVsb3BlcnMuIFNlZSB0aGUgQ09QWVJJR0hUCi0tIyBmaWxlIGF0 IHRoZSB0b3AtbGV2ZWwgZGlyZWN0b3J5IG9mIHRoaXMgZGlzdHJpYnV0aW9uIGFuZCBhdAotLSMg aHR0cDovL3J1c3QtbGFuZy5vcmcvQ09QWVJJR0hULgotLSMKLS0jIExpY2Vuc2VkIHVuZGVyIHRo ZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgPExJQ0VOU0UtQVBBQ0hFIG9yCi0tIyBodHRw Oi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjA+IG9yIHRoZSBNSVQgbGljZW5z ZQotLSMgPExJQ0VOU0UtTUlUIG9yIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVQ+ LCBhdCB5b3VyCi0tIyBvcHRpb24uIFRoaXMgZmlsZSBtYXkgbm90IGJlIGNvcGllZCwgbW9kaWZp ZWQsIG9yIGRpc3RyaWJ1dGVkCi0tIyBleGNlcHQgYWNjb3JkaW5nIHRvIHRob3NlIHRlcm1zLgot LQotLXNldCAtZXgKLS0KLS1BTkRST0lEX05ES19VUkw9aHR0cHM6Ly9kbC5nb29nbGUuY29tL2Fu ZHJvaWQvcmVwb3NpdG9yeQotLUFORFJPSURfTkRLX0FSQ0hJVkU9YW5kcm9pZC1uZGstcjI1Yi1s aW51eC56aXAKLS0KLS1jdXJsIC1mTyAiJEFORFJPSURfTkRLX1VSTC8kQU5EUk9JRF9OREtfQVJD SElWRSIKLS11bnppcCAtcSAkQU5EUk9JRF9OREtfQVJDSElWRQotLXJtICRBTkRST0lEX05ES19B UkNISVZFCi0tbXYgYW5kcm9pZC1uZGstKiBuZGsKLS1ybSAtcmYgYW5kcm9pZC1uZGstKgotZGlm ZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvYW5kcm9pZC1pbnN0YWxs LXNkay5zaCBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvYW5kcm9pZC1pbnN0YWxs LXNkay5zaAotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9hbmRyb2lkLWlu c3RhbGwtc2RrLnNoCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2FuZHJvaWQtaW5zdGFsbC1zZGsuc2gJMTk3 MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDYwICswLDAgQEAKLS0jIS91 c3IvYmluL2VudiBzaAotLSMgQ29weXJpZ2h0IDIwMTYgVGhlIFJ1c3QgUHJvamVjdCBEZXZlbG9w ZXJzLiBTZWUgdGhlIENPUFlSSUdIVAotLSMgZmlsZSBhdCB0aGUgdG9wLWxldmVsIGRpcmVjdG9y eSBvZiB0aGlzIGRpc3RyaWJ1dGlvbiBhbmQgYXQKLS0jIGh0dHA6Ly9ydXN0LWxhbmcub3JnL0NP UFlSSUdIVC4KLS0jCi0tIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNp b24gMi4wIDxMSUNFTlNFLUFQQUNIRSBvcgotLSMgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vu c2VzL0xJQ0VOU0UtMi4wPiBvciB0aGUgTUlUIGxpY2Vuc2UKLS0jIDxMSUNFTlNFLU1JVCBvciBo dHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUPiwgYXQgeW91cgotLSMgb3B0aW9uLiBU aGlzIGZpbGUgbWF5IG5vdCBiZSBjb3BpZWQsIG1vZGlmaWVkLCBvciBkaXN0cmlidXRlZAotLSMg ZXhjZXB0IGFjY29yZGluZyB0byB0aG9zZSB0ZXJtcy4KLS0KLS1zZXQgLWV4Ci0tCi0tIyBQcmVw IHRoZSBTREsgYW5kIGVtdWxhdG9yCi0tIwotLSMgTm90ZSB0aGF0IHRoZSB1cGRhdGUgcHJvY2Vz cyByZXF1aXJlcyB0aGF0IHdlIGFjY2VwdCBhIGJ1bmNoIG9mIGxpY2Vuc2VzLCBhbmQKLS0jIHdl IGNhbid0IGp1c3QgcGlwZSBgeWVzYCBpbnRvIGl0IGZvciBzb21lIHJlYXNvbiwgc28gd2UgdGFr ZSB0aGUgc2FtZSBzdHJhdGVneQotLSMgbG9jYXRlZCBpbiBodHRwczovL2dpdGh1Yi5jb20vYXBw dW5pdGUvZG9ja2VyIGJ5IGp1c3Qgd3JhcHBpbmcgaXQgaW4gYSBzY3JpcHQKLS0jIHdoaWNoIGFw cGFyZW50bHkgbWFnaWNhbGx5IGFjY2VwdHMgdGhlIGxpY2Vuc2VzLgotLQotLW1rZGlyIHNkawot LWN1cmwgLS1yZXRyeSA1IGh0dHBzOi8vZGwuZ29vZ2xlLmNvbS9hbmRyb2lkL3JlcG9zaXRvcnkv c2RrLXRvb2xzLWxpbnV4LTM4NTkzOTcuemlwIC1PCi0tdW56aXAgLWQgc2RrIHNkay10b29scy1s aW51eC0zODU5Mzk3LnppcAotLQotLWNhc2UgIiQxIiBpbgotLSAgYXJtIHwgYXJtdjcpCi0tICAg IGFiaT1hcm1lYWJpLXY3YQotLSAgICA7OwotLQotLSAgYWFyY2g2NCkKLS0gICAgYWJpPWFybTY0 LXY4YQotLSAgICA7OwotLQotLSAgaTY4NikKLS0gICAgYWJpPXg4NgotLSAgICA7OwotLQotLSAg eDg2XzY0KQotLSAgICBhYmk9eDg2XzY0Ci0tICAgIDs7Ci0tCi0tICAqKQotLSAgICBlY2hvICJp bnZhbGlkIGFyY2g6ICQxIgotLSAgICBleGl0IDEKLS0gICAgOzsKLS1lc2FjOwotLQotLSMgLS1u b19odHRwcyBhdm9pZHMKLS0gICAgICMgamF2YXgubmV0LnNzbC5TU0xIYW5kc2hha2VFeGNlcHRp b246IHN1bi5zZWN1cml0eS52YWxpZGF0b3IuVmFsaWRhdG9yRXhjZXB0aW9uOiBObyB0cnVzdGVk IGNlcnRpZmljYXRlIGZvdW5kCi0teWVzIHwgLi9zZGsvdG9vbHMvYmluL3Nka21hbmFnZXIgLS1s aWNlbnNlcyAtLW5vX2h0dHBzCi0teWVzIHwgLi9zZGsvdG9vbHMvYmluL3Nka21hbmFnZXIgLS1u b19odHRwcyBcCi0tICAgICAgICAiZW11bGF0b3IiIFwKLS0gICAgICAgICJwbGF0Zm9ybS10b29s cyIgXAotLSAgICAgICAgInBsYXRmb3JtczthbmRyb2lkLTI0IiBcCi0tICAgICAgICAic3lzdGVt LWltYWdlczthbmRyb2lkLTI0O2RlZmF1bHQ7JGFiaSIKLS0KLS1lY2hvICJubyIgfAotLSAgICAu L3Nkay90b29scy9iaW4vYXZkbWFuYWdlciBjcmVhdGUgYXZkIFwKLS0gICAgICAgIC0tbmFtZSAi JHsxfSIgXAotLSAgICAgICAgLS1wYWNrYWdlICJzeXN0ZW0taW1hZ2VzO2FuZHJvaWQtMjQ7ZGVm YXVsdDskYWJpIgotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kv YW5kcm9pZC1zeXNpbWFnZS5zaCBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvYW5k cm9pZC1zeXNpbWFnZS5zaAotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9h bmRyb2lkLXN5c2ltYWdlLnNoCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0r KysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2FuZHJvaWQtc3lzaW1hZ2Uuc2gJ MTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDU2ICswLDAgQEAKLS0j IS91c3IvYmluL2VudiBiYXNoCi0tCi0tIyBDb3B5cmlnaHQgMjAxNyBUaGUgUnVzdCBQcm9qZWN0 IERldmVsb3BlcnMuIFNlZSB0aGUgQ09QWVJJR0hUCi0tIyBmaWxlIGF0IHRoZSB0b3AtbGV2ZWwg ZGlyZWN0b3J5IG9mIHRoaXMgZGlzdHJpYnV0aW9uIGFuZCBhdAotLSMgaHR0cDovL3J1c3QtbGFu Zy5vcmcvQ09QWVJJR0hULgotLSMKLS0jIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5z ZSwgVmVyc2lvbiAyLjAgPExJQ0VOU0UtQVBBQ0hFIG9yCi0tIyBodHRwOi8vd3d3LmFwYWNoZS5v cmcvbGljZW5zZXMvTElDRU5TRS0yLjA+IG9yIHRoZSBNSVQgbGljZW5zZQotLSMgPExJQ0VOU0Ut TUlUIG9yIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVQ+LCBhdCB5b3VyCi0tIyBv cHRpb24uIFRoaXMgZmlsZSBtYXkgbm90IGJlIGNvcGllZCwgbW9kaWZpZWQsIG9yIGRpc3RyaWJ1 dGVkCi0tIyBleGNlcHQgYWNjb3JkaW5nIHRvIHRob3NlIHRlcm1zLgotLQotLXNldCAtZXgKLS0K LS1VUkw9aHR0cHM6Ly9kbC5nb29nbGUuY29tL2FuZHJvaWQvcmVwb3NpdG9yeS9zeXMtaW1nL2Fu ZHJvaWQKLS0KLS1tYWluKCkgewotLSAgICBsb2NhbCBhcmNoPSIkezF9IgotLSAgICBsb2NhbCBu YW1lPSIkezJ9IgotLSAgICBsb2NhbCBkZXN0PS9zeXN0ZW0KLS0gICAgbG9jYWwgdGQKLS0gICAg dGQ9IiQobWt0ZW1wIC1kKSIKLS0KLS0gICAgYXB0LWdldCBpbnN0YWxsIC0tbm8taW5zdGFsbC1y ZWNvbW1lbmRzIGUydG9vbHMKLS0KLS0gICAgcHVzaGQgIiR7dGR9IgotLSAgICBjdXJsIC0tcmV0 cnkgNSAtTyAiJHtVUkx9LyR7bmFtZX0iCi0tICAgIHVuemlwIC1xICIke25hbWV9IgotLQotLSAg ICBsb2NhbCBzeXN0ZW0KLS0gICAgc3lzdGVtPSIkKGZpbmQgLiAtbmFtZSBzeXN0ZW0uaW1nKSIK LS0gICAgbWtkaXIgLXAgJHtkZXN0fS97YmluLGxpYixsaWI2NH0KLS0KLS0gICAgIyBFeHRyYWN0 IGFuZHJvaWQgbGlua2VyIGFuZCBsaWJyYXJpZXMgdG8gL3N5c3RlbQotLSAgICAjIFRoaXMgYWxs b3dzIGFuZHJvaWQgZXhlY3V0YWJsZXMgdG8gYmUgcnVuIGRpcmVjdGx5IChvciB3aXRoIHFlbXUp Ci0tICAgIGlmIFsgIiR7YXJjaH0iID0gIng4Nl82NCIgXSB8fCBbICIke2FyY2h9IiA9ICJhcm02 NCIgXTsgdGhlbgotLSAgICAgICAgZTJjcCAtcCAiJHtzeXN0ZW19Oi9iaW4vbGlua2VyNjQiICIk e2Rlc3R9L2Jpbi8iCi0tICAgICAgICBlMmNwIC1wICIke3N5c3RlbX06L2xpYjY0L2xpYmRsLnNv IiAiJHtkZXN0fS9saWI2NC8iCi0tICAgICAgICBlMmNwIC1wICIke3N5c3RlbX06L2xpYjY0L2xp YmMuc28iICIke2Rlc3R9L2xpYjY0LyIKLS0gICAgICAgIGUyY3AgLXAgIiR7c3lzdGVtfTovbGli NjQvbGlibS5zbyIgIiR7ZGVzdH0vbGliNjQvIgotLSAgICBlbHNlCi0tICAgICAgICBlMmNwIC1w ICIke3N5c3RlbX06L2Jpbi9saW5rZXIiICIke2Rlc3R9L2Jpbi8iCi0tICAgICAgICBlMmNwIC1w ICIke3N5c3RlbX06L2xpYi9saWJkbC5zbyIgIiR7ZGVzdH0vbGliLyIKLS0gICAgICAgIGUyY3Ag LXAgIiR7c3lzdGVtfTovbGliL2xpYmMuc28iICIke2Rlc3R9L2xpYi8iCi0tICAgICAgICBlMmNw IC1wICIke3N5c3RlbX06L2xpYi9saWJtLnNvIiAiJHtkZXN0fS9saWIvIgotLSAgICBmaQotLQot LSAgICAjIGNsZWFuIHVwCi0tICAgIGFwdC1nZXQgcHVyZ2UgLS1hdXRvLXJlbW92ZSAteSBlMnRv b2xzCi0tCi0tICAgIHBvcGQKLS0KLS0gICAgcm0gLXJmICIke3RkfSIKLS19Ci0tCi0tbWFpbiAi JHtAfSIKLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2JlbmNo bWFyay5zaCBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvYmVuY2htYXJrLnNoCi0t LS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2JlbmNobWFyay5zaAkyMDI1LTA5 LTA3IDE0OjMwOjM3LjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNr ZWRfc2ltZC9jaS9iZW5jaG1hcmsuc2gJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAz MDAKLUBAIC0xLDMyICswLDAgQEAKLS0jIS91c3IvYmluL2VudiBiYXNoCi0tIwotLSMgUnVucyBh bGwgYmVuY2htYXJrcy4gQ29udHJvbGxlZCBieSB0aGUgZm9sbG93aW5nIGVudmlyb25tZW50IHZh cmlhYmxlczoKLS0jCi0tIyBGRUFUVVJFUz17fSAtIGNhcmdvIGZlYXR1cmVzIHRvIHBhc3MgdG8g YWxsIGJlbmNobWFya3MgKGUuZy4gY29yZV9hcmNoLHNsZWVmLXN5cyxpc3BjKQotLSMgTk9SVU49 ezF9ICAgLSBvbmx5IGJ1aWxkcyB0aGUgYmVuY2htYXJrcwotLQotLXNldCAtZXgKLS0KLS1pZiBb WyAke05PUlVOfSAhPSAxIF1dOyB0aGVuCi0tICAgICMgTW9zdCBiZW5jaG1hcmtzIHJlcXVpcmUg aHlwZXJmaW5lOyByZXF1aXJlIGl0IHVwZnJvbnQuCi0tICAgIGhhc2ggaHlwZXJmaW5lIDI+L2Rl di9udWxsIHx8IHsgZWNobyA+JjIgImh5cGVyZmluZSBpcyBub3QgaW4gUEFUSC4iOyBleGl0IDE7 IH0KLS1maQotLQotLQotLSMgSWYgdGhlIGlzcGMgYmVuY2htYXJrIGZlYXR1cmUgaXMgZW5hYmxl ZCwgaXNwYyBtdXN0IGJlIGluIHRoZSBwYXRoIG9mIHRoZQotLSMgYmVuY2htYXJrcy4gCi0taWYg ZWNobyAiJEZFQVRVUkVTIiB8IGdyZXAgLXEgImlzcGMiOyB0aGVuCi0tICAgIGhhc2ggaXNwYyAy Pi9kZXYvbnVsbCB8fCB7IGVjaG8gPiYyICJpc3BjIGlzIG5vdCBpbiBQQVRILiI7IGV4aXQgMTsg fQotLWZpCi0tCi0tIyBBbiBleGFtcGxlIHdpdGggYSBiZW5jaG1hcmsuc2ggaXMgYSBiZW5jaG1h cms6Ci0tZm9yIGRpciBpbiBleGFtcGxlcy8qLwotLWRvCi0tICAgIGRpcj0ke2RpciUqL30KLS0g ICAgY2QgJHtkaXIlKi99Ci0tICAgIGlmIFsgLWYgImJlbmNobWFyay5zaCIgXTsgdGhlbgotLSAg ICAgICAgLi9iZW5jaG1hcmsuc2gKLS0gICAgZmkKLS0gICAgY2QgLQotLWRvbmUKLS0KLWRpZmYg LU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RlcGxveV9hbmRfcnVuX29u X2lvc19zaW11bGF0b3IucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RlcGxv eV9hbmRfcnVuX29uX2lvc19zaW11bGF0b3IucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFj a2VkX3NpbWQvY2kvZGVwbG95X2FuZF9ydW5fb25faW9zX3NpbXVsYXRvci5ycwkyMDI1LTA0LTIw IDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRf c2ltZC9jaS9kZXBsb3lfYW5kX3J1bl9vbl9pb3Nfc2ltdWxhdG9yLnJzCTE5NzAtMDEtMDEgMDM6 MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSwxNzYgKzAsMCBAQAotLS8vIENvcHlyaWdodCAy MDE3IFRoZSBSdXN0IFByb2plY3QgRGV2ZWxvcGVycy4gU2VlIHRoZSBDT1BZUklHSFQKLS0vLyBm aWxlIGF0IHRoZSB0b3AtbGV2ZWwgZGlyZWN0b3J5IG9mIHRoaXMgZGlzdHJpYnV0aW9uIGFuZCBh dAotLS8vIGh0dHA6Ly9ydXN0LWxhbmcub3JnL0NPUFlSSUdIVC4KLS0vLwotLS8vIExpY2Vuc2Vk IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgPExJQ0VOU0UtQVBBQ0hFIG9y Ci0tLy8gaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wPiBvciB0aGUg TUlUIGxpY2Vuc2UKLS0vLyA8TElDRU5TRS1NSVQgb3IgaHR0cDovL29wZW5zb3VyY2Uub3JnL2xp Y2Vuc2VzL01JVD4sIGF0IHlvdXIKLS0vLyBvcHRpb24uIFRoaXMgZmlsZSBtYXkgbm90IGJlIGNv cGllZCwgbW9kaWZpZWQsIG9yIGRpc3RyaWJ1dGVkCi0tLy8gZXhjZXB0IGFjY29yZGluZyB0byB0 aG9zZSB0ZXJtcy4KLS0KLS0vLyBUaGlzIGlzIGEgc2NyaXB0IHRvIGRlcGxveSBhbmQgZXhlY3V0 ZSBhIGJpbmFyeSBvbiBhbiBpT1Mgc2ltdWxhdG9yLgotLS8vIFRoZSBwcmltYXJ5IHVzZSBvZiB0 aGlzIGlzIHRvIGJlIGFibGUgdG8gcnVuIHVuaXQgdGVzdHMgb24gdGhlIHNpbXVsYXRvciBhbmQK LS0vLyByZXRyaWV2ZSB0aGUgcmVzdWx0cy4KLS0vLwotLS8vIFRvIGRvIHRoaXMgdGhyb3VnaCBD YXJnbyBpbnN0ZWFkLCB1c2UgRGluZ2h5Ci0tLy8gKGh0dHBzOi8vZ2l0aHViLmNvbS9zbmlwc2Nv L2RpbmdoeSk6IGNhcmdvIGRpbmdoeSBpbnN0YWxsLCB0aGVuIGNhcmdvIGRpbmdoeQotLS8vIHRl c3QuCi0tCi0tdXNlIHN0ZDo6ZW52OwotLXVzZSBzdGQ6OmZzOjp7c2VsZiwgRmlsZX07Ci0tdXNl IHN0ZDo6aW86OldyaXRlOwotLXVzZSBzdGQ6OnBhdGg6OlBhdGg7Ci0tdXNlIHN0ZDo6cHJvY2Vz czsKLS11c2Ugc3RkOjpwcm9jZXNzOjpDb21tYW5kOwotLQotLW1hY3JvX3J1bGVzISB0IHsKLS0g ICAgKCRlOmV4cHIpID0+IChtYXRjaCAkZSB7Ci0tICAgICAgICBPayhlKSA9PiBlLAotLSAgICAg ICAgRXJyKGUpID0+IHBhbmljISgie30gZmFpbGVkIHdpdGg6IHt9Iiwgc3RyaW5naWZ5ISgkZSks IGUpLAotLSAgICB9KQotLX0KLS0KLS0vLyBTdGVwIG9uZTogV3JhcCBhcyBhbiBhcHAKLS1mbiBw YWNrYWdlX2FzX3NpbXVsYXRvcl9hcHAoY3JhdGVfbmFtZTogJnN0ciwgdGVzdF9iaW5hcnlfcGF0 aDogJlBhdGgpIHsKLS0gICAgcHJpbnRsbiEoIlBhY2thZ2luZyBzaW11bGF0b3IgYXBwIik7Ci0t ICAgIGRyb3AoZnM6OnJlbW92ZV9kaXJfYWxsKCJpb3Nfc2ltdWxhdG9yX2FwcCIpKTsKLS0gICAg dCEoZnM6OmNyZWF0ZV9kaXIoImlvc19zaW11bGF0b3JfYXBwIikpOwotLSAgICB0IShmczo6Y29w eSh0ZXN0X2JpbmFyeV9wYXRoLAotLSAgICAgICAgICAgICAgICBQYXRoOjpuZXcoImlvc19zaW11 bGF0b3JfYXBwIikuam9pbihjcmF0ZV9uYW1lKSkpOwotLQotLSAgICBsZXQgbXV0IGYgPSB0IShG aWxlOjpjcmVhdGUoImlvc19zaW11bGF0b3JfYXBwL0luZm8ucGxpc3QiKSk7Ci0tICAgIHQhKGYu d3JpdGVfYWxsKGZvcm1hdCEociMiCi0tICAgICAgICA8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29k aW5nPSJVVEYtOCI/PgotLSAgICAgICAgPCFET0NUWVBFIHBsaXN0IFBVQkxJQwotLSAgICAgICAg ICAgICAgICAiLS8vQXBwbGUvL0RURCBQTElTVCAxLjAvL0VOIgotLSAgICAgICAgICAgICAgICAi aHR0cDovL3d3dy5hcHBsZS5jb20vRFREcy9Qcm9wZXJ0eUxpc3QtMS4wLmR0ZCI+Ci0tICAgICAg ICA8cGxpc3QgdmVyc2lvbj0iMS4wIj4KLS0gICAgICAgICAgICA8ZGljdD4KLS0gICAgICAgICAg ICAgICAgPGtleT5DRkJ1bmRsZUV4ZWN1dGFibGU8L2tleT4KLS0gICAgICAgICAgICAgICAgPHN0 cmluZz57fTwvc3RyaW5nPgotLSAgICAgICAgICAgICAgICA8a2V5PkNGQnVuZGxlSWRlbnRpZmll cjwva2V5PgotLSAgICAgICAgICAgICAgICA8c3RyaW5nPmNvbS5ydXN0LnVuaXR0ZXN0czwvc3Ry aW5nPgotLSAgICAgICAgICAgIDwvZGljdD4KLS0gICAgICAgIDwvcGxpc3Q+Ci0tICAgICIjLCBj cmF0ZV9uYW1lKS5hc19ieXRlcygpKSk7Ci0tfQotLQotLS8vIFN0ZXAgdHdvOiBTdGFydCB0aGUg aU9TIHNpbXVsYXRvcgotLWZuIHN0YXJ0X3NpbXVsYXRvcigpIHsKLS0gICAgcHJpbnRsbiEoIkxv b2tpbmcgZm9yIGlPUyBzaW11bGF0b3IiKTsKLS0gICAgbGV0IG91dHB1dCA9IHQhKENvbW1hbmQ6 Om5ldygieGNydW4iKS5hcmcoInNpbWN0bCIpLmFyZygibGlzdCIpLm91dHB1dCgpKTsKLS0gICAg YXNzZXJ0IShvdXRwdXQuc3RhdHVzLnN1Y2Nlc3MoKSk7Ci0tICAgIGxldCBtdXQgc2ltdWxhdG9y X2V4aXN0cyA9IGZhbHNlOwotLSAgICBsZXQgbXV0IHNpbXVsYXRvcl9ib290ZWQgPSBmYWxzZTsK LS0gICAgbGV0IG11dCBmb3VuZF9ydXN0X3NpbSA9IGZhbHNlOwotLSAgICBsZXQgc3Rkb3V0ID0g dCEoU3RyaW5nOjpmcm9tX3V0Zjgob3V0cHV0LnN0ZG91dCkpOwotLSAgICBmb3IgbGluZSBpbiBz dGRvdXQubGluZXMoKSB7Ci0tICAgICAgICBpZiBsaW5lLmNvbnRhaW5zKCJydXN0X2lvcyIpIHsK LS0gICAgICAgICAgICBpZiBmb3VuZF9ydXN0X3NpbSB7Ci0tICAgICAgICAgICAgICAgIHBhbmlj ISgiRHVwbGljYXRlIHJ1c3RfaW9zIHNpbXVsYXRvcnMgZm91bmQuIFBsZWFzZSBcCi0tICAgICAg ICAgICAgICAgICAgICAgICAgZG91YmxlLWNoZWNrIHhjcnVuIHNpbWN0bCBsaXN0LiIpOwotLSAg ICAgICAgICAgIH0KLS0gICAgICAgICAgICBzaW11bGF0b3JfZXhpc3RzID0gdHJ1ZTsKLS0gICAg ICAgICAgICBzaW11bGF0b3JfYm9vdGVkID0gbGluZS5jb250YWlucygiKEJvb3RlZCkiKTsKLS0g ICAgICAgICAgICBmb3VuZF9ydXN0X3NpbSA9IHRydWU7Ci0tICAgICAgICB9Ci0tICAgIH0KLS0K LS0gICAgaWYgc2ltdWxhdG9yX2V4aXN0cyA9PSBmYWxzZSB7Ci0tICAgICAgICBwcmludGxuISgi Q3JlYXRpbmcgaU9TIHNpbXVsYXRvciIpOwotLSAgICAgICAgQ29tbWFuZDo6bmV3KCJ4Y3J1biIp Ci0tICAgICAgICAgICAgICAgIC5hcmcoInNpbWN0bCIpCi0tICAgICAgICAgICAgICAgIC5hcmco ImNyZWF0ZSIpCi0tICAgICAgICAgICAgICAgIC5hcmcoInJ1c3RfaW9zIikKLS0gICAgICAgICAg ICAgICAgLmFyZygiY29tLmFwcGxlLkNvcmVTaW11bGF0b3IuU2ltRGV2aWNlVHlwZS5pUGhvbmUt U0UiKQotLSAgICAgICAgICAgICAgICAuYXJnKCJjb20uYXBwbGUuQ29yZVNpbXVsYXRvci5TaW1S dW50aW1lLmlPUy0xMC0yIikKLS0gICAgICAgICAgICAgICAgLmNoZWNrX3N0YXR1cygpOwotLSAg ICB9IGVsc2UgaWYgc2ltdWxhdG9yX2Jvb3RlZCA9PSB0cnVlIHsKLS0gICAgICAgIHByaW50bG4h KCJTaHV0dGluZyBkb3duIGFscmVhZHktYm9vdGVkIHNpbXVsYXRvciIpOwotLSAgICAgICAgQ29t bWFuZDo6bmV3KCJ4Y3J1biIpCi0tICAgICAgICAgICAgICAgIC5hcmcoInNpbWN0bCIpCi0tICAg ICAgICAgICAgICAgIC5hcmcoInNodXRkb3duIikKLS0gICAgICAgICAgICAgICAgLmFyZygicnVz dF9pb3MiKQotLSAgICAgICAgICAgICAgICAuY2hlY2tfc3RhdHVzKCk7Ci0tICAgIH0KLS0KLS0g ICAgcHJpbnRsbiEoIlN0YXJ0aW5nIGlPUyBzaW11bGF0b3IiKTsKLS0gICAgLy8gV2UgY2FuJ3Qg dW5pbnN0YWxsIHRoZSBhcHAgKGlmIHByZXNlbnQpIGFzIHRoYXQgd2lsbCBoYW5nIGlmIHRoZQot LSAgICAvLyBzaW11bGF0b3IgaXNuJ3QgY29tcGxldGVseSBib290ZWQ7IGp1c3QgZXJhc2UgdGhl IHNpbXVsYXRvciBpbnN0ZWFkLgotLSAgICBDb21tYW5kOjpuZXcoInhjcnVuIikuYXJnKCJzaW1j dGwiKS5hcmcoImVyYXNlIikuYXJnKCJydXN0X2lvcyIpLmNoZWNrX3N0YXR1cygpOwotLSAgICBD b21tYW5kOjpuZXcoInhjcnVuIikuYXJnKCJzaW1jdGwiKS5hcmcoImJvb3QiKS5hcmcoInJ1c3Rf aW9zIikuY2hlY2tfc3RhdHVzKCk7Ci0tfQotLQotLS8vIFN0ZXAgdGhyZWU6IEluc3RhbGwgdGhl IGFwcAotLWZuIGluc3RhbGxfYXBwX3RvX3NpbXVsYXRvcigpIHsKLS0gICAgcHJpbnRsbiEoIklu c3RhbGxpbmcgYXBwIHRvIHNpbXVsYXRvciIpOwotLSAgICBDb21tYW5kOjpuZXcoInhjcnVuIikK LS0gICAgICAgICAgICAuYXJnKCJzaW1jdGwiKQotLSAgICAgICAgICAgIC5hcmcoImluc3RhbGwi KQotLSAgICAgICAgICAgIC5hcmcoImJvb3RlZCIpCi0tICAgICAgICAgICAgLmFyZygiaW9zX3Np bXVsYXRvcl9hcHAvIikKLS0gICAgICAgICAgICAuY2hlY2tfc3RhdHVzKCk7Ci0tfQotLQotLS8v IFN0ZXAgZm91cjogUnVuIHRoZSBhcHAKLS1mbiBydW5fYXBwX29uX3NpbXVsYXRvcigpIHsKLS0g ICAgcHJpbnRsbiEoIlJ1bm5pbmcgYXBwIik7Ci0tICAgIGxldCBvdXRwdXQgPSB0IShDb21tYW5k OjpuZXcoInhjcnVuIikKLS0gICAgICAgICAgICAgICAgICAgIC5hcmcoInNpbWN0bCIpCi0tICAg ICAgICAgICAgICAgICAgICAuYXJnKCJsYXVuY2giKQotLSAgICAgICAgICAgICAgICAgICAgLmFy ZygiLS1jb25zb2xlIikKLS0gICAgICAgICAgICAgICAgICAgIC5hcmcoImJvb3RlZCIpCi0tICAg ICAgICAgICAgICAgICAgICAuYXJnKCJjb20ucnVzdC51bml0dGVzdHMiKQotLSAgICAgICAgICAg ICAgICAgICAgLm91dHB1dCgpKTsKLS0KLS0gICAgcHJpbnRsbiEoInN0ZG91dCAtLVxue31cbiIs IFN0cmluZzo6ZnJvbV91dGY4X2xvc3N5KCZvdXRwdXQuc3Rkb3V0KSk7Ci0tICAgIHByaW50bG4h KCJzdGRlcnIgLS1cbnt9XG4iLCBTdHJpbmc6OmZyb21fdXRmOF9sb3NzeSgmb3V0cHV0LnN0ZGVy cikpOwotLQotLSAgICBsZXQgc3Rkb3V0ID0gU3RyaW5nOjpmcm9tX3V0ZjhfbG9zc3koJm91dHB1 dC5zdGRvdXQpOwotLSAgICBsZXQgZmFpbGVkID0gc3Rkb3V0LmxpbmVzKCkKLS0gICAgICAgIC5m aW5kKHxsfCBsLmNvbnRhaW5zKCJGQUlMRUQiKSkKLS0gICAgICAgIC5tYXAofGx8IGwuY29udGFp bnMoIkZBSUxFRCIpKQotLSAgICAgICAgLnVud3JhcF9vcihmYWxzZSk7Ci0tCi0tICAgIGxldCBw YXNzZWQgPSBzdGRvdXQubGluZXMoKQotLSAgICAgICAgLmZpbmQofGx8IGwuY29udGFpbnMoInRl c3QgcmVzdWx0OiBvayIpKQotLSAgICAgICAgLm1hcCh8bHwgbC5jb250YWlucygidGVzdCByZXN1 bHQ6IG9rIikpCi0tICAgICAgICAudW53cmFwX29yKGZhbHNlKTsKLS0KLS0gICAgcHJpbnRsbiEo IlNodXR0aW5nIGRvd24gc2ltdWxhdG9yIik7Ci0tICAgIENvbW1hbmQ6Om5ldygieGNydW4iKQot LSAgICAgICAgLmFyZygic2ltY3RsIikKLS0gICAgICAgIC5hcmcoInNodXRkb3duIikKLS0gICAg ICAgIC5hcmcoInJ1c3RfaW9zIikKLS0gICAgICAgIC5jaGVja19zdGF0dXMoKTsKLS0gICAgaWYg IShwYXNzZWQgJiYgIWZhaWxlZCkgewotLSAgICAgICAgcGFuaWMhKCJ0ZXN0cyBkaWRuJ3QgcGFz cyIpOwotLSAgICB9Ci0tfQotLQotLXRyYWl0IENoZWNrU3RhdHVzIHsKLS0gICAgZm4gY2hlY2tf c3RhdHVzKCZtdXQgc2VsZik7Ci0tfQotLQotLWltcGwgQ2hlY2tTdGF0dXMgZm9yIENvbW1hbmQg ewotLSAgICBmbiBjaGVja19zdGF0dXMoJm11dCBzZWxmKSB7Ci0tICAgICAgICBwcmludGxuISgi XHRydW5uaW5nOiB7Oj99Iiwgc2VsZik7Ci0tICAgICAgICBhc3NlcnQhKHQhKHNlbGYuc3RhdHVz KCkpLnN1Y2Nlc3MoKSk7Ci0tICAgIH0KLS19Ci0tCi0tZm4gbWFpbigpIHsKLS0gICAgbGV0IGFy Z3M6IFZlYzxTdHJpbmc+ID0gZW52OjphcmdzKCkuY29sbGVjdCgpOwotLSAgICBpZiBhcmdzLmxl bigpICE9IDIgewotLSAgICAgICAgcHJpbnRsbiEoIlVzYWdlOiB7fSA8ZXhlY3V0YWJsZT4iLCBh cmdzWzBdKTsKLS0gICAgICAgIHByb2Nlc3M6OmV4aXQoLTEpOwotLSAgICB9Ci0tCi0tICAgIGxl dCB0ZXN0X2JpbmFyeV9wYXRoID0gUGF0aDo6bmV3KCZhcmdzWzFdKTsKLS0gICAgbGV0IGNyYXRl X25hbWUgPSB0ZXN0X2JpbmFyeV9wYXRoLmZpbGVfbmFtZSgpLnVud3JhcCgpOwotLQotLSAgICBw YWNrYWdlX2FzX3NpbXVsYXRvcl9hcHAoY3JhdGVfbmFtZS50b19zdHIoKS51bndyYXAoKSwgdGVz dF9iaW5hcnlfcGF0aCk7Ci0tICAgIHN0YXJ0X3NpbXVsYXRvcigpOwotLSAgICBpbnN0YWxsX2Fw cF90b19zaW11bGF0b3IoKTsKLS0gICAgcnVuX2FwcF9vbl9zaW11bGF0b3IoKTsKLS19Ci1kaWZm IC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIvYWFyY2g2NC1s aW51eC1hbmRyb2lkL0RvY2tlcmZpbGUgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2Np L2RvY2tlci9hYXJjaDY0LWxpbnV4LWFuZHJvaWQvRG9ja2VyZmlsZQotLS0tIGEvdGhpcmRfcGFy dHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIvYWFyY2g2NC1saW51eC1hbmRyb2lkL0RvY2tl cmZpbGUJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3Bh cnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL2FhcmNoNjQtbGludXgtYW5kcm9pZC9Eb2Nr ZXJmaWxlCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSw0NyArMCww IEBACi0tRlJPTSB1YnVudHU6MTYuMDQKLS0KLS1SVU4gZHBrZyAtLWFkZC1hcmNoaXRlY3R1cmUg aTM4NiAmJiBcCi0tICAgIGFwdC1nZXQgdXBkYXRlICYmIFwKLS0gICAgYXB0LWdldCBpbnN0YWxs IC15IC0tbm8taW5zdGFsbC1yZWNvbW1lbmRzIFwKLS0gIGZpbGUgXAotLSAgbWFrZSBcCi0tICBj dXJsIFwKLS0gIGNhLWNlcnRpZmljYXRlcyBcCi0tICBweXRob24gXAotLSAgdW56aXAgXAotLSAg ZXhwZWN0IFwKLS0gIG9wZW5qZGstOS1qcmUgXAotLSAgbGlic3RkYysrNjppMzg2IFwKLS0gIGxp YnB1bHNlMCBcCi0tICBnY2MgXAotLSAgbGliYzYtZGV2Ci0tCi0tV09SS0RJUiAvYW5kcm9pZC8K LS1DT1BZIGFuZHJvaWQqIC9hbmRyb2lkLwotLQotLUVOViBBTkRST0lEX0FSQ0g9YWFyY2g2NAot LUVOViBQQVRIPSRQQVRIOi9hbmRyb2lkL25kay0kQU5EUk9JRF9BUkNIL2JpbjovYW5kcm9pZC9z ZGsvdG9vbHM6L2FuZHJvaWQvc2RrL3BsYXRmb3JtLXRvb2xzCi0tCi0tUlVOIHNoIC9hbmRyb2lk L2FuZHJvaWQtaW5zdGFsbC1uZGsuc2ggJEFORFJPSURfQVJDSAotLVJVTiBzaCAvYW5kcm9pZC9h bmRyb2lkLWluc3RhbGwtc2RrLnNoICRBTkRST0lEX0FSQ0gKLS1SVU4gbXYgL3Jvb3QvLmFuZHJv aWQgL3RtcAotLVJVTiBjaG1vZCA3NzcgLVIgL3RtcC8uYW5kcm9pZAotLVJVTiBjaG1vZCA3NTUg L2FuZHJvaWQvc2RrL3Rvb2xzLyogL2FuZHJvaWQvc2RrL2VtdWxhdG9yL3FlbXUvbGludXgteDg2 XzY0LyoKLS0KLS1FTlYgUEFUSD0kUEFUSDovcnVzdC9iaW4gXAotLSAgICBDQVJHT19UQVJHRVRf QUFSQ0g2NF9MSU5VWF9BTkRST0lEX0xJTktFUj1hYXJjaDY0LWxpbnV4LWFuZHJvaWQtZ2NjIFwK LS0gICAgQ0FSR09fVEFSR0VUX0FBUkNINjRfTElOVVhfQU5EUk9JRF9SVU5ORVI9L3RtcC9ydW50 ZXN0IFwKLS0gICAgT0JKRFVNUD1hYXJjaDY0LWxpbnV4LWFuZHJvaWQtb2JqZHVtcCBcCi0tICAg IEhPTUU9L3RtcAotLQotLUFERCBydW50ZXN0LWFuZHJvaWQucnMgL3RtcC9ydW50ZXN0LnJzCi0t RU5UUllQT0lOVCBbIFwKLS0gICJiYXNoIiwgXAotLSAgIi1jIiwgXAotLSAgIyBzZXQgU0hFTEwg c28gYW5kcm9pZCBjYW4gZGV0ZWN0IGEgNjRiaXRzIHN5c3RlbSwgc2VlCi0tICAjIGh0dHA6Ly9z dGFja292ZXJmbG93LmNvbS9hLzQxNzg5MTQ0Ci0tICAiU0hFTEw9L2Jpbi9kYXNoIC9hbmRyb2lk L3Nkay9lbXVsYXRvci9lbXVsYXRvciBAYWFyY2g2NCAtbm8td2luZG93ICYgXAotLSAgIHJ1c3Rj IC90bXAvcnVudGVzdC5ycyAtbyAvdG1wL3J1bnRlc3QgJiYgXAotLSAgIGV4ZWMgXCIkQFwiIiwg XAotLSAgIi0tIiBcCi0tXQotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3Np bWQvY2kvZG9ja2VyL2FhcmNoNjQtdW5rbm93bi1saW51eC1nbnUvRG9ja2VyZmlsZSBiL3RoaXJk X3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL2FhcmNoNjQtdW5rbm93bi1saW51eC1n bnUvRG9ja2VyZmlsZQotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2Nr ZXIvYWFyY2g2NC11bmtub3duLWxpbnV4LWdudS9Eb2NrZXJmaWxlCTIwMjUtMDQtMjAgMTk6Mjg6 MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2Np L2RvY2tlci9hYXJjaDY0LXVua25vd24tbGludXgtZ251L0RvY2tlcmZpbGUJMTk3MC0wMS0wMSAw MzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDE0ICswLDAgQEAKLS1GUk9NIHVidW50dTox OC4wNAotLVJVTiBhcHQtZ2V0IHVwZGF0ZSAmJiBhcHQtZ2V0IGluc3RhbGwgLXkgLS1uby1pbnN0 YWxsLXJlY29tbWVuZHMgXAotLSAgZ2NjIFwKLS0gIGNhLWNlcnRpZmljYXRlcyBcCi0tICBsaWJj Ni1kZXYgXAotLSAgZ2NjLWFhcmNoNjQtbGludXgtZ251IFwKLS0gIGxpYmM2LWRldi1hcm02NC1j cm9zcyBcCi0tICBxZW11LXVzZXIgXAotLSAgbWFrZSBcCi0tICBmaWxlCi0tCi0tRU5WIENBUkdP X1RBUkdFVF9BQVJDSDY0X1VOS05PV05fTElOVVhfR05VX0xJTktFUj1hYXJjaDY0LWxpbnV4LWdu dS1nY2MgXAotLSAgICBDQVJHT19UQVJHRVRfQUFSQ0g2NF9VTktOT1dOX0xJTlVYX0dOVV9SVU5O RVI9InFlbXUtYWFyY2g2NCAtTCAvdXNyL2FhcmNoNjQtbGludXgtZ251IiBcCi0tICAgIE9CSkRV TVA9YWFyY2g2NC1saW51eC1nbnUtb2JqZHVtcAotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1 c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL2FybS11bmtub3duLWxpbnV4LWdudWVhYmkvRG9ja2Vy ZmlsZSBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL2FybS11bmtub3du LWxpbnV4LWdudWVhYmkvRG9ja2VyZmlsZQotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRf c2ltZC9jaS9kb2NrZXIvYXJtLXVua25vd24tbGludXgtZ251ZWFiaS9Eb2NrZXJmaWxlCTIwMjUt MDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3Bh Y2tlZF9zaW1kL2NpL2RvY2tlci9hcm0tdW5rbm93bi1saW51eC1nbnVlYWJpL0RvY2tlcmZpbGUJ MTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDE1ICswLDAgQEAKLS1G Uk9NIHVidW50dToxOC4wNAotLVJVTiBhcHQtZ2V0IHVwZGF0ZSAmJiBhcHQtZ2V0IGluc3RhbGwg LXkgLS1uby1pbnN0YWxsLXJlY29tbWVuZHMgXAotLSAgZ2NjIFwKLS0gIGNhLWNlcnRpZmljYXRl cyBcCi0tICBsaWJjNi1kZXYgXAotLSAgbGliYzYtYXJtZWwtY3Jvc3MgXAotLSAgbGliYzYtZGV2 LWFybWVsLWNyb3NzIFwKLS0gIGJpbnV0aWxzLWFybS1saW51eC1nbnVlYWJpIFwKLS0gIGdjYy1h cm0tbGludXgtZ251ZWFiaSBcCi0tICBxZW11LXVzZXIgXAotLSAgbWFrZSBcCi0tICBmaWxlCi0t RU5WIENBUkdPX1RBUkdFVF9BUk1fVU5LTk9XTl9MSU5VWF9HTlVFQUJJX0xJTktFUj1hcm0tbGlu dXgtZ251ZWFiaS1nY2MgXAotLSAgICBDQVJHT19UQVJHRVRfQVJNX1VOS05PV05fTElOVVhfR05V RUFCSV9SVU5ORVI9InFlbXUtYXJtIC1MIC91c3IvYXJtLWxpbnV4LWdudWVhYmkiIFwKLS0gICAg T0JKRFVNUD1hcm0tbGludXgtZ251ZWFiaS1vYmpkdW1wCi1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFy dHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIvYXJtLXVua25vd24tbGludXgtZ251ZWFiaWhm L0RvY2tlcmZpbGUgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci9hcm0t dW5rbm93bi1saW51eC1nbnVlYWJpaGYvRG9ja2VyZmlsZQotLS0tIGEvdGhpcmRfcGFydHkvcnVz dC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIvYXJtLXVua25vd24tbGludXgtZ251ZWFiaWhmL0RvY2tl cmZpbGUJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3Bh cnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL2FybS11bmtub3duLWxpbnV4LWdudWVhYmlo Zi9Eb2NrZXJmaWxlCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSwx MyArMCwwIEBACi0tRlJPTSB1YnVudHU6MTguMDQKLS1SVU4gYXB0LWdldCB1cGRhdGUgJiYgYXB0 LWdldCBpbnN0YWxsIC15IC0tbm8taW5zdGFsbC1yZWNvbW1lbmRzIFwKLS0gIGdjYyBcCi0tICBj YS1jZXJ0aWZpY2F0ZXMgXAotLSAgbGliYzYtZGV2IFwKLS0gIGdjYy1hcm0tbGludXgtZ251ZWFi aWhmIFwKLS0gIGxpYmM2LWRldi1hcm1oZi1jcm9zcyBcCi0tICBxZW11LXVzZXIgXAotLSAgbWFr ZSBcCi0tICBmaWxlCi0tRU5WIENBUkdPX1RBUkdFVF9BUk1fVU5LTk9XTl9MSU5VWF9HTlVFQUJJ SEZfTElOS0VSPWFybS1saW51eC1nbnVlYWJpaGYtZ2NjIFwKLS0gICAgQ0FSR09fVEFSR0VUX0FS TV9VTktOT1dOX0xJTlVYX0dOVUVBQklIRl9SVU5ORVI9InFlbXUtYXJtIC1MIC91c3IvYXJtLWxp bnV4LWdudWVhYmloZiIgXAotLSAgICBPQkpEVU1QPWFybS1saW51eC1nbnVlYWJpaGYtb2JqZHVt cAotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL2Fy bXY3LWxpbnV4LWFuZHJvaWRlYWJpL0RvY2tlcmZpbGUgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tl ZF9zaW1kL2NpL2RvY2tlci9hcm12Ny1saW51eC1hbmRyb2lkZWFiaS9Eb2NrZXJmaWxlCi0tLS0g YS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci9hcm12Ny1saW51eC1hbmRy b2lkZWFiaS9Eb2NrZXJmaWxlCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0r KysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci9hcm12Ny1saW51eC1h bmRyb2lkZWFiaS9Eb2NrZXJmaWxlCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAw Ci1AQCAtMSw0NyArMCwwIEBACi0tRlJPTSB1YnVudHU6MTYuMDQKLS0KLS1SVU4gZHBrZyAtLWFk ZC1hcmNoaXRlY3R1cmUgaTM4NiAmJiBcCi0tICAgIGFwdC1nZXQgdXBkYXRlICYmIFwKLS0gICAg YXB0LWdldCBpbnN0YWxsIC15IC0tbm8taW5zdGFsbC1yZWNvbW1lbmRzIFwKLS0gIGZpbGUgXAot LSAgbWFrZSBcCi0tICBjdXJsIFwKLS0gIGNhLWNlcnRpZmljYXRlcyBcCi0tICBweXRob24gXAot LSAgdW56aXAgXAotLSAgZXhwZWN0IFwKLS0gIG9wZW5qZGstOS1qcmUgXAotLSAgbGlic3RkYysr NjppMzg2IFwKLS0gIGxpYnB1bHNlMCBcCi0tICBnY2MgXAotLSAgbGliYzYtZGV2Ci0tCi0tV09S S0RJUiAvYW5kcm9pZC8KLS1DT1BZIGFuZHJvaWQqIC9hbmRyb2lkLwotLQotLUVOViBBTkRST0lE X0FSQ0g9YXJtCi0tRU5WIFBBVEg9JFBBVEg6L2FuZHJvaWQvbmRrLSRBTkRST0lEX0FSQ0gvYmlu Oi9hbmRyb2lkL3Nkay90b29sczovYW5kcm9pZC9zZGsvcGxhdGZvcm0tdG9vbHMKLS0KLS1SVU4g c2ggL2FuZHJvaWQvYW5kcm9pZC1pbnN0YWxsLW5kay5zaCAkQU5EUk9JRF9BUkNICi0tUlVOIHNo IC9hbmRyb2lkL2FuZHJvaWQtaW5zdGFsbC1zZGsuc2ggJEFORFJPSURfQVJDSAotLVJVTiBtdiAv cm9vdC8uYW5kcm9pZCAvdG1wCi0tUlVOIGNobW9kIDc3NyAtUiAvdG1wLy5hbmRyb2lkCi0tUlVO IGNobW9kIDc1NSAvYW5kcm9pZC9zZGsvdG9vbHMvKiAvYW5kcm9pZC9zZGsvZW11bGF0b3IvcWVt dS9saW51eC14ODZfNjQvKgotLQotLUVOViBQQVRIPSRQQVRIOi9ydXN0L2JpbiBcCi0tICAgIENB UkdPX1RBUkdFVF9BUk1fTElOVVhfQU5EUk9JREVBQklfTElOS0VSPWFybS1saW51eC1hbmRyb2lk ZWFiaS1nY2MgXAotLSAgICBDQVJHT19UQVJHRVRfQVJNX0xJTlVYX0FORFJPSURFQUJJX1JVTk5F Uj0vdG1wL3J1bnRlc3QgXAotLSAgICBPQkpEVU1QPWFybS1saW51eC1hbmRyb2lkZWFiaS1vYmpk dW1wIFwKLS0gICAgSE9NRT0vdG1wCi0tCi0tQUREIHJ1bnRlc3QtYW5kcm9pZC5ycyAvdG1wL3J1 bnRlc3QucnMKLS1FTlRSWVBPSU5UIFsgXAotLSAgImJhc2giLCBcCi0tICAiLWMiLCBcCi0tICAj IHNldCBTSEVMTCBzbyBhbmRyb2lkIGNhbiBkZXRlY3QgYSA2NGJpdHMgc3lzdGVtLCBzZWUKLS0g ICMgaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL2EvNDE3ODkxNDQKLS0gICJTSEVMTD0vYmluL2Rh c2ggL2FuZHJvaWQvc2RrL2VtdWxhdG9yL2VtdWxhdG9yIEBhcm0gLW5vLXdpbmRvdyAmIFwKLS0g ICBydXN0YyAvdG1wL3J1bnRlc3QucnMgLW8gL3RtcC9ydW50ZXN0ICYmIFwKLS0gICBleGVjIFwi JEBcIiIsIFwKLS0gICItLSIgXAotLV0KLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3Bh Y2tlZF9zaW1kL2NpL2RvY2tlci9hcm12Ny11bmtub3duLWxpbnV4LWdudWVhYmloZi9Eb2NrZXJm aWxlIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIvYXJtdjctdW5rbm93 bi1saW51eC1nbnVlYWJpaGYvRG9ja2VyZmlsZQotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNr ZWRfc2ltZC9jaS9kb2NrZXIvYXJtdjctdW5rbm93bi1saW51eC1nbnVlYWJpaGYvRG9ja2VyZmls ZQkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkv cnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIvYXJtdjctdW5rbm93bi1saW51eC1nbnVlYWJpaGYv RG9ja2VyZmlsZQkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsMTMg KzAsMCBAQAotLUZST00gdWJ1bnR1OjE4LjA0Ci0tUlVOIGFwdC1nZXQgdXBkYXRlICYmIGFwdC1n ZXQgaW5zdGFsbCAteSAtLW5vLWluc3RhbGwtcmVjb21tZW5kcyBcCi0tICBnY2MgXAotLSAgY2Et Y2VydGlmaWNhdGVzIFwKLS0gIGxpYmM2LWRldiBcCi0tICBnY2MtYXJtLWxpbnV4LWdudWVhYmlo ZiBcCi0tICBsaWJjNi1kZXYtYXJtaGYtY3Jvc3MgXAotLSAgcWVtdS11c2VyIFwKLS0gIG1ha2Ug XAotLSAgZmlsZQotLUVOViBDQVJHT19UQVJHRVRfQVJNVjdfVU5LTk9XTl9MSU5VWF9HTlVFQUJJ SEZfTElOS0VSPWFybS1saW51eC1nbnVlYWJpaGYtZ2NjIFwKLS0gICAgQ0FSR09fVEFSR0VUX0FS TVY3X1VOS05PV05fTElOVVhfR05VRUFCSUhGX1JVTk5FUj0icWVtdS1hcm0gLUwgL3Vzci9hcm0t bGludXgtZ251ZWFiaWhmIiBcCi0tICAgIE9CSkRVTVA9YXJtLWxpbnV4LWdudWVhYmloZi1vYmpk dW1wCi1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIv aTU4Ni11bmtub3duLWxpbnV4LWdudS9Eb2NrZXJmaWxlIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNr ZWRfc2ltZC9jaS9kb2NrZXIvaTU4Ni11bmtub3duLWxpbnV4LWdudS9Eb2NrZXJmaWxlCi0tLS0g YS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci9pNTg2LXVua25vd24tbGlu dXgtZ251L0RvY2tlcmZpbGUJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsr KyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL2k1ODYtdW5rbm93bi1s aW51eC1nbnUvRG9ja2VyZmlsZQkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAot QEAgLTEsNyArMCwwIEBACi0tRlJPTSB1YnVudHU6MTguMDQKLS1SVU4gYXB0LWdldCB1cGRhdGUg JiYgYXB0LWdldCBpbnN0YWxsIC15IC0tbm8taW5zdGFsbC1yZWNvbW1lbmRzIFwKLS0gIGdjYy1t dWx0aWxpYiBcCi0tICBsaWJjNi1kZXYgXAotLSAgZmlsZSBcCi0tICBtYWtlIFwKLS0gIGNhLWNl cnRpZmljYXRlcwotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kv ZG9ja2VyL2k2ODYtdW5rbm93bi1saW51eC1nbnUvRG9ja2VyZmlsZSBiL3RoaXJkX3BhcnR5L3J1 c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL2k2ODYtdW5rbm93bi1saW51eC1nbnUvRG9ja2VyZmls ZQotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIvaTY4Ni11bmtu b3duLWxpbnV4LWdudS9Eb2NrZXJmaWxlCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICsw MzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci9pNjg2LXVu a25vd24tbGludXgtZ251L0RvY2tlcmZpbGUJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAg KzAzMDAKLUBAIC0xLDcgKzAsMCBAQAotLUZST00gdWJ1bnR1OjE4LjA0Ci0tUlVOIGFwdC1nZXQg dXBkYXRlICYmIGFwdC1nZXQgaW5zdGFsbCAteSAtLW5vLWluc3RhbGwtcmVjb21tZW5kcyBcCi0t ICBnY2MtbXVsdGlsaWIgXAotLSAgbGliYzYtZGV2IFwKLS0gIGZpbGUgXAotLSAgbWFrZSBcCi0t ICBjYS1jZXJ0aWZpY2F0ZXMKLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9z aW1kL2NpL2RvY2tlci9taXBzLXVua25vd24tbGludXgtZ251L0RvY2tlcmZpbGUgYi90aGlyZF9w YXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci9taXBzLXVua25vd24tbGludXgtZ251L0Rv Y2tlcmZpbGUKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL21p cHMtdW5rbm93bi1saW51eC1nbnUvRG9ja2VyZmlsZQkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAw MDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIv bWlwcy11bmtub3duLWxpbnV4LWdudS9Eb2NrZXJmaWxlCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAw MDAwMDAwICswMzAwCi1AQCAtMSwxMyArMCwwIEBACi0tRlJPTSB1YnVudHU6MTguMDQKLS0KLS1S VU4gYXB0LWdldCB1cGRhdGUgJiYgYXB0LWdldCBpbnN0YWxsIC15IC0tbm8taW5zdGFsbC1yZWNv bW1lbmRzIFwKLS0gICAgICAgIGdjYyBsaWJjNi1kZXYgcWVtdS11c2VyIGNhLWNlcnRpZmljYXRl cyBcCi0tICAgICAgICBnY2MtbWlwcy1saW51eC1nbnUgbGliYzYtZGV2LW1pcHMtY3Jvc3MgXAot LSAgICAgICAgcWVtdS1zeXN0ZW0tbWlwcyBcCi0tICAgICAgICBxZW11LXVzZXIgXAotLSAgICAg ICAgbWFrZSBcCi0tICAgICAgICBmaWxlCi0tCi0tRU5WIENBUkdPX1RBUkdFVF9NSVBTX1VOS05P V05fTElOVVhfR05VX0xJTktFUj1taXBzLWxpbnV4LWdudS1nY2MgXAotLSAgICBDQVJHT19UQVJH RVRfTUlQU19VTktOT1dOX0xJTlVYX0dOVV9SVU5ORVI9InFlbXUtbWlwcyAtTCAvdXNyL21pcHMt bGludXgtZ251IiBcCi0tICAgIE9CSkRVTVA9bWlwcy1saW51eC1nbnUtb2JqZHVtcAotXCBObyBu ZXdsaW5lIGF0IGVuZCBvZiBmaWxlCi1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNr ZWRfc2ltZC9jaS9kb2NrZXIvbWlwczY0LXVua25vd24tbGludXgtZ251YWJpNjQvRG9ja2VyZmls ZSBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL21pcHM2NC11bmtub3du LWxpbnV4LWdudWFiaTY0L0RvY2tlcmZpbGUKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2Vk X3NpbWQvY2kvZG9ja2VyL21pcHM2NC11bmtub3duLWxpbnV4LWdudWFiaTY0L0RvY2tlcmZpbGUJ MjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1 c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL21pcHM2NC11bmtub3duLWxpbnV4LWdudWFiaTY0L0Rv Y2tlcmZpbGUJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDEwICsw LDAgQEAKLS1GUk9NIHVidW50dToxOC4wNAotLQotLVJVTiBhcHQtZ2V0IHVwZGF0ZSAmJiBhcHQt Z2V0IGluc3RhbGwgLXkgLS1uby1pbnN0YWxsLXJlY29tbWVuZHMgXAotLSAgICAgICAgZ2NjIGxp YmM2LWRldiBxZW11LXVzZXIgY2EtY2VydGlmaWNhdGVzIFwKLS0gICAgICAgIGdjYy1taXBzNjQt bGludXgtZ251YWJpNjQgbGliYzYtZGV2LW1pcHM2NC1jcm9zcyBcCi0tICAgICAgICBxZW11LXN5 c3RlbS1taXBzNjQgcWVtdS11c2VyCi0tCi0tRU5WIENBUkdPX1RBUkdFVF9NSVBTNjRfVU5LTk9X Tl9MSU5VWF9HTlVBQkk2NF9MSU5LRVI9bWlwczY0LWxpbnV4LWdudWFiaTY0LWdjYyBcCi0tICAg IENBUkdPX1RBUkdFVF9NSVBTNjRfVU5LTk9XTl9MSU5VWF9HTlVBQkk2NF9SVU5ORVI9InFlbXUt bWlwczY0IC1MIC91c3IvbWlwczY0LWxpbnV4LWdudWFiaTY0IiBcCi0tICAgIE9CSkRVTVA9bWlw czY0LWxpbnV4LWdudWFiaTY0LW9iamR1bXAKLVwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQot ZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL21pcHM2 NGVsLXVua25vd24tbGludXgtZ251YWJpNjQvRG9ja2VyZmlsZSBiL3RoaXJkX3BhcnR5L3J1c3Qv cGFja2VkX3NpbWQvY2kvZG9ja2VyL21pcHM2NGVsLXVua25vd24tbGludXgtZ251YWJpNjQvRG9j a2VyZmlsZQotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIvbWlw czY0ZWwtdW5rbm93bi1saW51eC1nbnVhYmk2NC9Eb2NrZXJmaWxlCTIwMjUtMDQtMjAgMTk6Mjg6 MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2Np L2RvY2tlci9taXBzNjRlbC11bmtub3duLWxpbnV4LWdudWFiaTY0L0RvY2tlcmZpbGUJMTk3MC0w MS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDEwICswLDAgQEAKLS1GUk9NIHVi dW50dToxOC4wNAotLQotLVJVTiBhcHQtZ2V0IHVwZGF0ZSAmJiBhcHQtZ2V0IGluc3RhbGwgLXkg LS1uby1pbnN0YWxsLXJlY29tbWVuZHMgXAotLSAgICAgICAgZ2NjIGxpYmM2LWRldiBxZW11LXVz ZXIgY2EtY2VydGlmaWNhdGVzIFwKLS0gICAgICAgIGdjYy1taXBzNjRlbC1saW51eC1nbnVhYmk2 NCBsaWJjNi1kZXYtbWlwczY0ZWwtY3Jvc3MgXAotLSAgICAgICAgcWVtdS1zeXN0ZW0tbWlwczY0 ZWwKLS0KLS1FTlYgQ0FSR09fVEFSR0VUX01JUFM2NEVMX1VOS05PV05fTElOVVhfR05VQUJJNjRf TElOS0VSPW1pcHM2NGVsLWxpbnV4LWdudWFiaTY0LWdjYyBcCi0tICAgIENBUkdPX1RBUkdFVF9N SVBTNjRFTF9VTktOT1dOX0xJTlVYX0dOVUFCSTY0X1JVTk5FUj0icWVtdS1taXBzNjRlbCAtTCAv dXNyL21pcHM2NGVsLWxpbnV4LWdudWFiaTY0IiBcCi0tICAgIE9CSkRVTVA9bWlwczY0ZWwtbGlu dXgtZ251YWJpNjQtb2JqZHVtcAotXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCi1kaWZmIC1O cmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIvbWlwc2VsLXVua25v d24tbGludXgtbXVzbC9Eb2NrZXJmaWxlIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9j aS9kb2NrZXIvbWlwc2VsLXVua25vd24tbGludXgtbXVzbC9Eb2NrZXJmaWxlCi0tLS0gYS90aGly ZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci9taXBzZWwtdW5rbm93bi1saW51eC1t dXNsL0RvY2tlcmZpbGUJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBi L3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL21pcHNlbC11bmtub3duLWxp bnV4LW11c2wvRG9ja2VyZmlsZQkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAot QEAgLTEsMjUgKzAsMCBAQAotLUZST00gdWJ1bnR1OjE4LjEwCi0tCi0tUlVOIGFwdC1nZXQgdXBk YXRlICYmIFwKLS0gICAgYXB0LWdldCBpbnN0YWxsIC15IC0tbm8taW5zdGFsbC1yZWNvbW1lbmRz IFwKLS0gICAgY2EtY2VydGlmaWNhdGVzIFwKLS0gICAgZ2NjIFwKLS0gICAgbGliYzYtZGV2IFwK LS0gICAgbWFrZSBcCi0tICAgIHFlbXUtdXNlciBcCi0tICAgIHFlbXUtc3lzdGVtLW1pcHMgXAot LSAgICBiemlwMiBcCi0tICAgIGN1cmwgXAotLSAgICBmaWxlCi0tCi0tUlVOIG1rZGlyIC90b29s Y2hhaW4KLS0KLS0jIE5vdGUgdGhhdCB0aGlzIG9yaWdpbmFsbHkgY2FtZSBmcm9tOgotLSMgaHR0 cHM6Ly9kb3dubG9hZHMub3BlbndydC5vcmcvc25hcHNob3RzL3RydW5rL21hbHRhL2dlbmVyaWMv T3BlbldydC1Ub29sY2hhaW4tbWFsdGEtbGVfZ2NjLTUuMy4wX211c2wtMS4xLjE1LkxpbnV4LXg4 Nl82NC50YXIuYnoyCi0tUlVOIGN1cmwgLUwgaHR0cHM6Ly9jaS1taXJyb3JzLnJ1c3QtbGFuZy5v cmcvbGliYy9PcGVuV3J0LVRvb2xjaGFpbi1tYWx0YS1sZV9nY2MtNS4zLjBfbXVzbC0xLjEuMTUu TGludXgteDg2XzY0LnRhci5iejIgfCBcCi0tICAgICAgdGFyIHhqZiAtIC1DIC90b29sY2hhaW4g LS1zdHJpcC1jb21wb25lbnRzPTIKLS0KLS1FTlYgUEFUSD0kUEFUSDovcnVzdC9iaW46L3Rvb2xj aGFpbi9iaW4gXAotLSAgICBDQ19taXBzZWxfdW5rbm93bl9saW51eF9tdXNsPW1pcHNlbC1vcGVu d3J0LWxpbnV4LWdjYyBcCi0tICAgIENBUkdPX1RBUkdFVF9NSVBTRUxfVU5LTk9XTl9MSU5VWF9N VVNMX0xJTktFUj1taXBzZWwtb3BlbndydC1saW51eC1nY2MgXAotLSAgICBDQVJHT19UQVJHRVRf TUlQU0VMX1VOS05PV05fTElOVVhfTVVTTF9SVU5ORVI9InFlbXUtbWlwc2VsIC1MIC90b29sY2hh aW4iCi1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIv cG93ZXJwYy11bmtub3duLWxpbnV4LWdudS9Eb2NrZXJmaWxlIGIvdGhpcmRfcGFydHkvcnVzdC9w YWNrZWRfc2ltZC9jaS9kb2NrZXIvcG93ZXJwYy11bmtub3duLWxpbnV4LWdudS9Eb2NrZXJmaWxl Ci0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci9wb3dlcnBjLXVu a25vd24tbGludXgtZ251L0RvY2tlcmZpbGUJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAg KzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL3Bvd2Vy cGMtdW5rbm93bi1saW51eC1nbnUvRG9ja2VyZmlsZQkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAw MDAwMCArMDMwMAotQEAgLTEsMTMgKzAsMCBAQAotLUZST00gdWJ1bnR1OjIyLjA0Ci0tCi0tUlVO IGFwdC1nZXQgdXBkYXRlICYmIGFwdC1nZXQgaW5zdGFsbCAteSAtLW5vLWluc3RhbGwtcmVjb21t ZW5kcyBcCi0tICAgICAgICBnY2MgbGliYzYtZGV2IHFlbXUtdXNlciBjYS1jZXJ0aWZpY2F0ZXMg XAotLSAgICAgICAgZ2NjLXBvd2VycGMtbGludXgtZ251IGxpYmM2LWRldi1wb3dlcnBjLWNyb3Nz IFwKLS0gICAgICAgIHFlbXUtc3lzdGVtLXBwYyBcCi0tICAgICAgICBtYWtlIFwKLS0gICAgICAg IGZpbGUKLS0KLS1FTlYgQ0FSR09fVEFSR0VUX1BPV0VSUENfVU5LTk9XTl9MSU5VWF9HTlVfTElO S0VSPXBvd2VycGMtbGludXgtZ251LWdjYyBcCi0tICAgIENBUkdPX1RBUkdFVF9QT1dFUlBDX1VO S05PV05fTElOVVhfR05VX1JVTk5FUj0icWVtdS1wcGMgLWNwdSBWZ2VyIC1MIC91c3IvcG93ZXJw Yy1saW51eC1nbnUiIFwKLS0gICAgQ0M9cG93ZXJwYy1saW51eC1nbnUtZ2NjIFwKLS0gICAgT0JK RFVNUD1wb3dlcnBjLWxpbnV4LWdudS1vYmpkdW1wCi1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkv cnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIvcG93ZXJwYzY0LXVua25vd24tbGludXgtZ251L0Rv Y2tlcmZpbGUgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci9wb3dlcnBj NjQtdW5rbm93bi1saW51eC1nbnUvRG9ja2VyZmlsZQotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9w YWNrZWRfc2ltZC9jaS9kb2NrZXIvcG93ZXJwYzY0LXVua25vd24tbGludXgtZ251L0RvY2tlcmZp bGUJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5 L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL3Bvd2VycGM2NC11bmtub3duLWxpbnV4LWdudS9E b2NrZXJmaWxlCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSwxNyAr MCwwIEBACi0tRlJPTSB1YnVudHU6MjIuMDQKLS0KLS1SVU4gYXB0LWdldCB1cGRhdGUgJiYgYXB0 LWdldCBpbnN0YWxsIC15IC0tbm8taW5zdGFsbC1yZWNvbW1lbmRzIFwKLS0gICAgZ2NjIFwKLS0g ICAgY2EtY2VydGlmaWNhdGVzIFwKLS0gICAgbGliYzYtZGV2IFwKLS0gICAgZ2NjLXBvd2VycGM2 NC1saW51eC1nbnUgXAotLSAgICBsaWJjNi1kZXYtcHBjNjQtY3Jvc3MgXAotLSAgICBxZW11LXVz ZXIgIFwKLS0gICAgcWVtdS1zeXN0ZW0tcHBjIFwKLS0gICAgbWFrZSBcCi0tICAgIGZpbGUgCi0t Ci0tRU5WIENBUkdPX1RBUkdFVF9QT1dFUlBDNjRfVU5LTk9XTl9MSU5VWF9HTlVfTElOS0VSPXBv d2VycGM2NC1saW51eC1nbnUtZ2NjIFwKLS0gICAgQ0FSR09fVEFSR0VUX1BPV0VSUEM2NF9VTktO T1dOX0xJTlVYX0dOVV9SVU5ORVI9InFlbXUtcHBjNjQgLUwgL3Vzci9wb3dlcnBjNjQtbGludXgt Z251IiBcCi0tICAgIENDPXBvd2VycGM2NC1saW51eC1nbnUtZ2NjIFwKLS0gICAgT0JKRFVNUD1w b3dlcnBjNjQtbGludXgtZ251LW9iamR1bXAKLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0 L3BhY2tlZF9zaW1kL2NpL2RvY2tlci9wb3dlcnBjNjRsZS11bmtub3duLWxpbnV4LWdudS9Eb2Nr ZXJmaWxlIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIvcG93ZXJwYzY0 bGUtdW5rbm93bi1saW51eC1nbnUvRG9ja2VyZmlsZQotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9w YWNrZWRfc2ltZC9jaS9kb2NrZXIvcG93ZXJwYzY0bGUtdW5rbm93bi1saW51eC1nbnUvRG9ja2Vy ZmlsZQkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFy dHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIvcG93ZXJwYzY0bGUtdW5rbm93bi1saW51eC1n bnUvRG9ja2VyZmlsZQkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEs MTEgKzAsMCBAQAotLUZST00gdWJ1bnR1OjIyLjA0Ci0tCi0tUlVOIGFwdC1nZXQgdXBkYXRlICYm IGFwdC1nZXQgaW5zdGFsbCAteSAtLW5vLWluc3RhbGwtcmVjb21tZW5kcyBcCi0tICAgICAgICBn Y2MgbGliYzYtZGV2IHFlbXUtdXNlciBjYS1jZXJ0aWZpY2F0ZXMgXAotLSAgICAgICAgZ2NjLXBv d2VycGM2NGxlLWxpbnV4LWdudSBsaWJjNi1kZXYtcHBjNjRlbC1jcm9zcyBcCi0tICAgICAgICBx ZW11LXN5c3RlbS1wcGMgZmlsZSBtYWtlCi0tCi0tRU5WIENBUkdPX1RBUkdFVF9QT1dFUlBDNjRM RV9VTktOT1dOX0xJTlVYX0dOVV9MSU5LRVI9cG93ZXJwYzY0bGUtbGludXgtZ251LWdjYyBcCi0t ICAgIENBUkdPX1RBUkdFVF9QT1dFUlBDNjRMRV9VTktOT1dOX0xJTlVYX0dOVV9SVU5ORVI9InFl bXUtcHBjNjRsZSAtTCAvdXNyL3Bvd2VycGM2NGxlLWxpbnV4LWdudSIgXAotLSAgICBDQz1wb3dl cnBjNjRsZS1saW51eC1nbnUtZ2NjIFwKLS0gICAgT0JKRFVNUD1wb3dlcnBjNjRsZS1saW51eC1n bnUtb2JqZHVtcAotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kv ZG9ja2VyL3MzOTB4LXVua25vd24tbGludXgtZ251L0RvY2tlcmZpbGUgYi90aGlyZF9wYXJ0eS9y dXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci9zMzkweC11bmtub3duLWxpbnV4LWdudS9Eb2NrZXJm aWxlCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci9zMzkweC11 bmtub3duLWxpbnV4LWdudS9Eb2NrZXJmaWxlCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAw ICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci9zMzkw eC11bmtub3duLWxpbnV4LWdudS9Eb2NrZXJmaWxlCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAw MDAwICswMzAwCi1AQCAtMSwyMCArMCwwIEBACi0tRlJPTSB1YnVudHU6MjIuMDQKLS0KLS1SVU4g YXB0LWdldCB1cGRhdGUgJiYgXAotLSAgICBhcHQtZ2V0IGluc3RhbGwgLXkgLS1uby1pbnN0YWxs LXJlY29tbWVuZHMgXAotLSAgICBjYS1jZXJ0aWZpY2F0ZXMgXAotLSAgICBjdXJsIFwKLS0gICAg Y21ha2UgXAotLSAgICBnY2MgXAotLSAgICBsaWJjNi1kZXYgXAotLSAgICBnKystczM5MHgtbGlu dXgtZ251IFwKLS0gICAgbGliYzYtZGV2LXMzOTB4LWNyb3NzIFwKLS0gICAgcWVtdS11c2VyIFwK LS0gICAgbWFrZSBcCi0tICAgIGZpbGUKLS0KLS1FTlYgQ0FSR09fVEFSR0VUX1MzOTBYX1VOS05P V05fTElOVVhfR05VX0xJTktFUj1zMzkweC1saW51eC1nbnUtZ2NjIFwKLS0gICAgQ0FSR09fVEFS R0VUX1MzOTBYX1VOS05PV05fTElOVVhfR05VX1JVTk5FUj0icWVtdS1zMzkweCAtTCAvdXNyL3Mz OTB4LWxpbnV4LWdudSIgXAotLSAgICBDQ19zMzkweF91bmtub3duX2xpbnV4X2dudT1zMzkweC1s aW51eC1nbnUtZ2NjIFwKLS0gICAgQ1hYX3MzOTB4X3Vua25vd25fbGludXhfZ251PXMzOTB4LWxp bnV4LWdudS1nKysgXAotLSAgICBPQkpEVU1QPXMzOTB4LWxpbnV4LWdudS1vYmpkdW1wCi1kaWZm IC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIvc3BhcmM2NC11 bmtub3duLWxpbnV4LWdudS9Eb2NrZXJmaWxlIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2lt ZC9jaS9kb2NrZXIvc3BhcmM2NC11bmtub3duLWxpbnV4LWdudS9Eb2NrZXJmaWxlCi0tLS0gYS90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci9zcGFyYzY0LXVua25vd24tbGlu dXgtZ251L0RvY2tlcmZpbGUJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsr KyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL3NwYXJjNjQtdW5rbm93 bi1saW51eC1nbnUvRG9ja2VyZmlsZQkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMw MAotQEAgLTEsMTggKzAsMCBAQAotLUZST00gZGViaWFuOmJvb2t3b3JtCi0tCi0tUlVOIGFwdC1n ZXQgdXBkYXRlICYmIGFwdC1nZXQgaW5zdGFsbCAteSAtLW5vLWluc3RhbGwtcmVjb21tZW5kcyBc Ci0tICAgICAgICBjdXJsIGNhLWNlcnRpZmljYXRlcyBcCi0tICAgICAgICBnY2MgbGliYzYtZGV2 IFwKLS0gICAgICAgIGdjYy1zcGFyYzY0LWxpbnV4LWdudSBsaWJjNi1kZXYtc3BhcmM2NC1jcm9z cyBcCi0tICAgICAgICBxZW11LXN5c3RlbS1zcGFyYzY0IG9wZW5iaW9zLXNwYXJjIHNlYWJpb3Mg aXB4ZS1xZW11IFwKLS0gICAgICAgIHA3emlwLWZ1bGwgY3BpbwotLQotLUNPUFkgbGludXgtc3Bh cmM2NC5zaCAvCi0tUlVOIGJhc2ggL2xpbnV4LXNwYXJjNjQuc2gKLS0KLS1DT1BZIHRlc3QtcnVu bmVyLWxpbnV4IC8KLS0KLS1FTlYgQ0FSR09fVEFSR0VUX1NQQVJDNjRfVU5LTk9XTl9MSU5VWF9H TlVfTElOS0VSPXNwYXJjNjQtbGludXgtZ251LWdjYyBcCi0tICAgIENBUkdPX1RBUkdFVF9TUEFS QzY0X1VOS05PV05fTElOVVhfR05VX1JVTk5FUj0iL3Rlc3QtcnVubmVyLWxpbnV4IHNwYXJjNjQi IFwKLS0gICAgQ0Nfc3BhcmM2NF91bmtub3duX2xpbnV4X2dudT1zcGFyYzY0LWxpbnV4LWdudS1n Y2MgXAotLSAgICBQQVRIPSRQQVRIOi9ydXN0L2JpbgotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5 L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL3RodW1idjduZW9uLWxpbnV4LWFuZHJvaWRlYWJp L0RvY2tlcmZpbGUgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci90aHVt YnY3bmVvbi1saW51eC1hbmRyb2lkZWFiaS9Eb2NrZXJmaWxlCi0tLS0gYS90aGlyZF9wYXJ0eS9y dXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci90aHVtYnY3bmVvbi1saW51eC1hbmRyb2lkZWFiaS9E b2NrZXJmaWxlCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGly ZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci90aHVtYnY3bmVvbi1saW51eC1hbmRy b2lkZWFiaS9Eb2NrZXJmaWxlCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1A QCAtMSw0NyArMCwwIEBACi0tRlJPTSB1YnVudHU6MTYuMDQKLS0KLS1SVU4gZHBrZyAtLWFkZC1h cmNoaXRlY3R1cmUgaTM4NiAmJiBcCi0tICAgIGFwdC1nZXQgdXBkYXRlICYmIFwKLS0gICAgYXB0 LWdldCBpbnN0YWxsIC15IC0tbm8taW5zdGFsbC1yZWNvbW1lbmRzIFwKLS0gIGZpbGUgXAotLSAg bWFrZSBcCi0tICBjdXJsIFwKLS0gIGNhLWNlcnRpZmljYXRlcyBcCi0tICBweXRob24gXAotLSAg dW56aXAgXAotLSAgZXhwZWN0IFwKLS0gIG9wZW5qZGstOS1qcmUgXAotLSAgbGlic3RkYysrNjpp Mzg2IFwKLS0gIGxpYnB1bHNlMCBcCi0tICBnY2MgXAotLSAgbGliYzYtZGV2Ci0tCi0tV09SS0RJ UiAvYW5kcm9pZC8KLS1DT1BZIGFuZHJvaWQqIC9hbmRyb2lkLwotLQotLUVOViBBTkRST0lEX0FS Q0g9YXJtCi0tRU5WIFBBVEg9JFBBVEg6L2FuZHJvaWQvbmRrLSRBTkRST0lEX0FSQ0gvYmluOi9h bmRyb2lkL3Nkay90b29sczovYW5kcm9pZC9zZGsvcGxhdGZvcm0tdG9vbHMKLS0KLS1SVU4gc2gg L2FuZHJvaWQvYW5kcm9pZC1pbnN0YWxsLW5kay5zaCAkQU5EUk9JRF9BUkNICi0tUlVOIHNoIC9h bmRyb2lkL2FuZHJvaWQtaW5zdGFsbC1zZGsuc2ggJEFORFJPSURfQVJDSAotLVJVTiBtdiAvcm9v dC8uYW5kcm9pZCAvdG1wCi0tUlVOIGNobW9kIDc3NyAtUiAvdG1wLy5hbmRyb2lkCi0tUlVOIGNo bW9kIDc1NSAvYW5kcm9pZC9zZGsvdG9vbHMvKiAvYW5kcm9pZC9zZGsvZW11bGF0b3IvcWVtdS9s aW51eC14ODZfNjQvKgotLQotLUVOViBQQVRIPSRQQVRIOi9ydXN0L2JpbiBcCi0tICAgIENBUkdP X1RBUkdFVF9USFVNQlY3TkVPTl9MSU5VWF9BTkRST0lERUFCSV9MSU5LRVI9YXJtLWxpbnV4LWFu ZHJvaWRlYWJpLWdjYyBcCi0tICAgIENBUkdPX1RBUkdFVF9USFVNQlY3TkVPTl9MSU5VWF9BTkRS T0lERUFCSV9SVU5ORVI9L3RtcC9ydW50ZXN0IFwKLS0gICAgT0JKRFVNUD1hcm0tbGludXgtYW5k cm9pZGVhYmktb2JqZHVtcCBcCi0tICAgIEhPTUU9L3RtcAotLQotLUFERCBydW50ZXN0LWFuZHJv aWQucnMgL3RtcC9ydW50ZXN0LnJzCi0tRU5UUllQT0lOVCBbIFwKLS0gICJiYXNoIiwgXAotLSAg Ii1jIiwgXAotLSAgIyBzZXQgU0hFTEwgc28gYW5kcm9pZCBjYW4gZGV0ZWN0IGEgNjRiaXRzIHN5 c3RlbSwgc2VlCi0tICAjIGh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9hLzQxNzg5MTQ0Ci0tICAi U0hFTEw9L2Jpbi9kYXNoIC9hbmRyb2lkL3Nkay9lbXVsYXRvci9lbXVsYXRvciBAYXJtIC1uby13 aW5kb3cgJiBcCi0tICAgcnVzdGMgL3RtcC9ydW50ZXN0LnJzIC1vIC90bXAvcnVudGVzdCAmJiBc Ci0tICAgZXhlYyBcIiRAXCIiLCBcCi0tICAiLS0iIFwKLS1dCi1kaWZmIC1OcmJ1IGEvdGhpcmRf cGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIvdGh1bWJ2N25lb24tdW5rbm93bi1saW51 eC1nbnVlYWJpaGYvRG9ja2VyZmlsZSBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kv ZG9ja2VyL3RodW1idjduZW9uLXVua25vd24tbGludXgtZ251ZWFiaWhmL0RvY2tlcmZpbGUKLS0t LSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL3RodW1idjduZW9uLXVu a25vd24tbGludXgtZ251ZWFiaWhmL0RvY2tlcmZpbGUJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAw MDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2Vy L3RodW1idjduZW9uLXVua25vd24tbGludXgtZ251ZWFiaWhmL0RvY2tlcmZpbGUJMTk3MC0wMS0w MSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDEzICswLDAgQEAKLS1GUk9NIHVidW50 dToxOC4wNAotLVJVTiBhcHQtZ2V0IHVwZGF0ZSAmJiBhcHQtZ2V0IGluc3RhbGwgLXkgLS1uby1p bnN0YWxsLXJlY29tbWVuZHMgXAotLSAgZ2NjIFwKLS0gIGNhLWNlcnRpZmljYXRlcyBcCi0tICBs aWJjNi1kZXYgXAotLSAgZ2NjLWFybS1saW51eC1nbnVlYWJpaGYgXAotLSAgbGliYzYtZGV2LWFy bWhmLWNyb3NzIFwKLS0gIHFlbXUtdXNlciBcCi0tICBtYWtlIFwKLS0gIGZpbGUKLS1FTlYgQ0FS R09fVEFSR0VUX1RIVU1CVjdORU9OX1VOS05PV05fTElOVVhfR05VRUFCSUhGX0xJTktFUj1hcm0t bGludXgtZ251ZWFiaWhmLWdjYyBcCi0tICAgIENBUkdPX1RBUkdFVF9USFVNQlY3TkVPTl9VTktO T1dOX0xJTlVYX0dOVUVBQklIRl9SVU5ORVI9InFlbXUtYXJtIC1MIC91c3IvYXJtLWxpbnV4LWdu dWVhYmloZiIgXAotLSAgICBPQkpEVU1QPWFybS1saW51eC1nbnVlYWJpaGYtb2JqZHVtcAotZGlm ZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL3dhc20zMi11 bmtub3duLXVua25vd24vRG9ja2VyZmlsZSBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQv Y2kvZG9ja2VyL3dhc20zMi11bmtub3duLXVua25vd24vRG9ja2VyZmlsZQotLS0tIGEvdGhpcmRf cGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIvd2FzbTMyLXVua25vd24tdW5rbm93bi9E b2NrZXJmaWxlCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGly ZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci93YXNtMzItdW5rbm93bi11bmtub3du L0RvY2tlcmZpbGUJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDM5 ICswLDAgQEAKLS1GUk9NIHVidW50dToyMi4wNAotLQotLVJVTiBhcHQtZ2V0IHVwZGF0ZSAteSAm JiBhcHQtZ2V0IGluc3RhbGwgLXkgLS1uby1pbnN0YWxsLXJlY29tbWVuZHMgXAotLSAgY2EtY2Vy dGlmaWNhdGVzIFwKLS0gIGNsYW5nIFwKLS0gIGNtYWtlIFwKLS0gIGN1cmwgXAotLSAgZ2l0IFwK LS0gIGxpYmM2LWRldiBcCi0tICBtYWtlIFwKLS0gIG5pbmphLWJ1aWxkIFwKLS0gIHB5dGhvbi1p cy1weXRob24zIFwKLS0gIHh6LXV0aWxzCi0tCi0tIyBJbnN0YWxsIGB3YXNtMndhdGAKLS1SVU4g Z2l0IGNsb25lIC0tcmVjdXJzaXZlIGh0dHBzOi8vZ2l0aHViLmNvbS9XZWJBc3NlbWJseS93YWJ0 Ci0tUlVOIG1ha2UgLUMgd2FidCAtaiQobnByb2MpCi0tRU5WIFBBVEg9JFBBVEg6L3dhYnQvYmlu Ci0tCi0tIyBJbnN0YWxsIGB3YXNtLWJpbmRnZW4tdGVzdC1ydW5uZXJgCi0tUlVOIGN1cmwgLUwg aHR0cHM6Ly9naXRodWIuY29tL3J1c3R3YXNtL3dhc20tYmluZGdlbi9yZWxlYXNlcy9kb3dubG9h ZC8wLjIuODcvd2FzbS1iaW5kZ2VuLTAuMi44Ny14ODZfNjQtdW5rbm93bi1saW51eC1tdXNsLnRh ci5neiBcCi0tICB8IHRhciB4emYgLQotLSMgS2VlcCBpbiBzeW5jIHdpdGggdGhlIHZlcnNpb24g b24gQ2FyZ28udG9tbC4KLS1FTlYgUEFUSD0kUEFUSDovd2FzbS1iaW5kZ2VuLTAuMi44Ny14ODZf NjQtdW5rbm93bi1saW51eC1tdXNsCi0tRU5WIENBUkdPX1RBUkdFVF9XQVNNMzJfVU5LTk9XTl9V TktOT1dOX1JVTk5FUj13YXNtLWJpbmRnZW4tdGVzdC1ydW5uZXIKLS0KLS0jIEluc3RhbGwgYG5v ZGVgCi0tUlVOIGN1cmwgaHR0cHM6Ly9ub2RlanMub3JnL2Rpc3QvdjE0LjE2LjAvbm9kZS12MTQu MTYuMC1saW51eC14NjQudGFyLnh6IHwgdGFyIHhKZiAtCi0tRU5WIFBBVEg9JFBBVEg6L25vZGUt djE0LjE2LjAtbGludXgteDY0L2JpbgotLQotLSMgV2UgdXNlIGEgc2hpbSBsaW5rZXIgdGhhdCBy ZW1vdmVzIGAtLXN0cmlwLWRlYnVnYCB3aGVuIHBhc3NlZCB0byBMTEQuIFdoaWxlCi0tIyB0aGlz IHR5cGljYWxseSByZXN1bHRzIGluIGludmFsaWQgZGVidWcgaW5mb3JtYXRpb24gaW4gcmVsZWFz ZSBtb2RlIGl0IGRvZXNuJ3QKLS0jIHJlc3VsdCBpbiBhbiBpbnZhbGlkIG5hbWVzIHNlY3Rpb24g d2hpY2ggaXMgd2hhdCB3ZSdyZSBpbnRlcmVzdGVkIGluLgotLUNPUFkgbGxkLXNoaW0ucnMgLwot LUVOViBDQVJHT19UQVJHRVRfV0FTTTMyX1VOS05PV05fVU5LTk9XTl9MSU5LRVI9L3RtcC9sbGQt c2hpbQotLQotLSMgUnVzdGMgaXNuJ3QgYXZhaWxhYmxlIHVudGlsIHRoaXMgY29udGFpbmVyIHN0 YXJ0cywgc28gZGVmZXIgY29tcGlsYXRpb24gb2YgdGhlCi0tIyBzaGltLgotLUVOVFJZUE9JTlQg L3J1c3QvYmluL3J1c3RjIC9sbGQtc2hpbS5ycyAtbyAvdG1wL2xsZC1zaGltICYmIGV4ZWMgYmFz aCAiJEAiCi1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2Nr ZXIveDg2XzY0LWxpbnV4LWFuZHJvaWQvRG9ja2VyZmlsZSBiL3RoaXJkX3BhcnR5L3J1c3QvcGFj a2VkX3NpbWQvY2kvZG9ja2VyL3g4Nl82NC1saW51eC1hbmRyb2lkL0RvY2tlcmZpbGUKLS0tLSBh L3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL3g4Nl82NC1saW51eC1hbmRy b2lkL0RvY2tlcmZpbGUJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBi L3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL3g4Nl82NC1saW51eC1hbmRy b2lkL0RvY2tlcmZpbGUJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0x LDMxICswLDAgQEAKLS1GUk9NIHVidW50dToyMC4wNAotLQotLVJVTiBhcHQtZ2V0IHVwZGF0ZSAm JiBcCi0tICAgIGFwdC1nZXQgaW5zdGFsbCAteSAtLW5vLWluc3RhbGwtcmVjb21tZW5kcyBcCi0t ICBjYS1jZXJ0aWZpY2F0ZXMgXAotLSAgY3VybCBcCi0tICBnY2MgXAotLSAgbGliYy1kZXYgXAot LSAgcHl0aG9uIFwKLS0gIHVuemlwIFwKLS0gIGZpbGUgXAotLSAgbWFrZQotLQotLVdPUktESVIg L2FuZHJvaWQvCi0tRU5WIEFORFJPSURfQVJDSD14ODZfNjQKLS1DT1BZIGFuZHJvaWQtaW5zdGFs bC1uZGsuc2ggL2FuZHJvaWQvCi0tUlVOIHNoIC9hbmRyb2lkL2FuZHJvaWQtaW5zdGFsbC1uZGsu c2gKLS0KLS1FTlYgU1REQVJDSF9BU1NFUlRfSU5TVFJfTElNSVQ9MzAKLS0KLS0jIFdlIGRvIG5v dCBydW4geDg2XzY0LWxpbnV4LWFuZHJvaWQgdGVzdHMgb24gYW4gYW5kcm9pZCBlbXVsYXRvci4K LS0jIFNlZSBjaS9hbmRyb2lkLXN5c2ltYWdlLnNoIGZvciBpbmZvcm1hdGlvbnMgYWJvdXQgaG93 IHRlc3RzIGFyZSBydW4uCi0tQ09QWSBhbmRyb2lkLXN5c2ltYWdlLnNoIC9hbmRyb2lkLwotLVJV TiBiYXNoIC9hbmRyb2lkL2FuZHJvaWQtc3lzaW1hZ2Uuc2ggeDg2XzY0IHg4Nl82NC0yNF9yMDcu emlwCi0tCi0tRU5WIFBBVEg9JFBBVEg6L3J1c3QvYmluOi9hbmRyb2lkL25kay90b29sY2hhaW5z L2xsdm0vcHJlYnVpbHQvbGludXgteDg2XzY0L2JpbiBcCi0tICAgIENBUkdPX1RBUkdFVF9YODZf NjRfTElOVVhfQU5EUk9JRF9MSU5LRVI9eDg2XzY0LWxpbnV4LWFuZHJvaWQyMS1jbGFuZyBcCi0t ICAgIENDX3g4Nl82NF9saW51eF9hbmRyb2lkPXg4Nl82NC1saW51eC1hbmRyb2lkMjEtY2xhbmcg XAotLSAgICBDWFhfeDg2XzY0X2xpbnV4X2FuZHJvaWQ9eDg2XzY0LWxpbnV4LWFuZHJvaWQyMS1j bGFuZysrIFwKLS0gICAgT0JKRFVNUD1sbHZtLW9iamR1bXAgXAotLSAgICBIT01FPS90bXAKLWRp ZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci94ODZfNjQt dW5rbm93bi1saW51eC1nbnUvRG9ja2VyZmlsZSBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3Np bWQvY2kvZG9ja2VyL3g4Nl82NC11bmtub3duLWxpbnV4LWdudS9Eb2NrZXJmaWxlCi0tLS0gYS90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci94ODZfNjQtdW5rbm93bi1saW51 eC1nbnUvRG9ja2VyZmlsZQkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysr IGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIveDg2XzY0LXVua25vd24t bGludXgtZ251L0RvY2tlcmZpbGUJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAK LUBAIC0xLDEwICswLDAgQEAKLS1GUk9NIHVidW50dToxOC4wNAotLVJVTiBhcHQtZ2V0IHVwZGF0 ZSAmJiBhcHQtZ2V0IGluc3RhbGwgLXkgLS1uby1pbnN0YWxsLXJlY29tbWVuZHMgXAotLSAgZ2Nj IFwKLS0gIGxpYmM2LWRldiBcCi0tICBmaWxlIFwKLS0gIG1ha2UgXAotLSAgY2EtY2VydGlmaWNh dGVzIFwKLS0gIGNtYWtlIFwKLS0gIGxpYmNsYW5nLWRldiBcCi0tICBjbGFuZwotZGlmZiAtTnJi dSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL3g4Nl82NC11bmtub3du LWxpbnV4LWdudS1lbXVsYXRlZC9Eb2NrZXJmaWxlIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRf c2ltZC9jaS9kb2NrZXIveDg2XzY0LXVua25vd24tbGludXgtZ251LWVtdWxhdGVkL0RvY2tlcmZp bGUKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL3g4Nl82NC11 bmtub3duLWxpbnV4LWdudS1lbXVsYXRlZC9Eb2NrZXJmaWxlCTIwMjUtMDQtMjAgMTk6Mjg6MTMu MDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2Rv Y2tlci94ODZfNjQtdW5rbm93bi1saW51eC1nbnUtZW11bGF0ZWQvRG9ja2VyZmlsZQkxOTcwLTAx LTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsMTYgKzAsMCBAQAotLUZST00gdWJ1 bnR1OjE4LjA0Ci0tUlVOIGFwdC1nZXQgdXBkYXRlICYmIGFwdC1nZXQgaW5zdGFsbCAteSAtLW5v LWluc3RhbGwtcmVjb21tZW5kcyBcCi0tICBnY2MgXAotLSAgbGliYzYtZGV2IFwKLS0gIGZpbGUg XAotLSAgbWFrZSBcCi0tICBjYS1jZXJ0aWZpY2F0ZXMgXAotLSAgd2dldCBcCi0tICBiemlwMiBc Ci0tICBjbWFrZSBcCi0tICBsaWJjbGFuZy1kZXYgXAotLSAgY2xhbmcKLS0KLS1SVU4gd2dldCBo dHRwczovL2dpdGh1Yi5jb20vZ256bGJnL2ludGVsX3NkZS9yYXcvbWFzdGVyL3NkZS1leHRlcm5h bC04LjE2LjAtMjAxOC0wMS0zMC1saW4udGFyLmJ6MgotLVJVTiB0YXIgLXhqZiBzZGUtZXh0ZXJu YWwtOC4xNi4wLTIwMTgtMDEtMzAtbGluLnRhci5iejIKLS1FTlYgQ0FSR09fVEFSR0VUX1g4Nl82 NF9VTktOT1dOX0xJTlVYX0dOVV9SVU5ORVI9Ii9zZGUtZXh0ZXJuYWwtOC4xNi4wLTIwMTgtMDEt MzAtbGluL3NkZTY0IC0tIgotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3Np bWQvY2kvZG94LnNoIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb3guc2gKLS0t LSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG94LnNoCTIwMjUtMDktMDcgMTQ6 MzA6MzcuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1k L2NpL2RveC5zaAkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsMjcg KzAsMCBAQAotLSMhL2Jpbi9zaAotLQotLXNldCAtZXgKLS0KLS1ybSAtcmYgdGFyZ2V0L2RvYwot LW1rZGlyIC1wIHRhcmdldC9kb2MKLS0KLS0jIEJ1aWxkIEFQSSBkb2N1bWVudGF0aW9uCi0tY2Fy Z28gZG9jIC0tZmVhdHVyZXM9aW50b19iaXRzCi0tCi0tIyBCdWlsZCBQZXJmb3JtYW5jZSBHdWlk ZQotLSMgRklYTUU6IGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmctbnVyc2VyeS9tZEJvb2sv aXNzdWVzLzc4MAotLSMgbWRib29rIGJ1aWxkIHBlcmYtZ3VpZGUgLWQgdGFyZ2V0L2RvYy9wZXJm LWd1aWRlCi0tY2QgcGVyZi1ndWlkZQotLW1kYm9vayBidWlsZAotLWNkIC0KLS1jcCAtciBwZXJm LWd1aWRlL2Jvb2sgdGFyZ2V0L2RvYy9wZXJmLWd1aWRlCi0tCi0tIyBJZiB3ZSdyZSBvbiB0cmF2 aXMsIG5vdCBhIFBSLCBhbmQgb24gdGhlIHJpZ2h0IGJyYW5jaCwgcHVibGlzaCEKLS1pZiBbICIk VFJBVklTX1BVTExfUkVRVUVTVCIgPSAiZmFsc2UiIF0gJiYgWyAiJFRSQVZJU19CUkFOQ0giID0g Im1hc3RlciIgXTsgdGhlbgotLSAgcHl0aG9uMyAtdlYKLS0gIHBpcCAtdlYKLS0gIHB5dGhvbjMu OSAtdlYKLS0gIHBpcCBpbnN0YWxsIGdocF9pbXBvcnQgLS11c2VyCi0tICBnaHAtaW1wb3J0IC1u IHRhcmdldC9kb2MKLS0gIGdpdCBwdXNoIC1xZiBodHRwczovLyR7R0hfUEFHRVN9QGdpdGh1Yi5j b20vJHtUUkFWSVNfUkVQT19TTFVHfS5naXQgZ2gtcGFnZXMKLS1maQotZGlmZiAtTnJidSBhL3Ro aXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvbGludXgtczM5MHguc2ggYi90aGlyZF9wYXJ0 eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2xpbnV4LXMzOTB4LnNoCi0tLS0gYS90aGlyZF9wYXJ0eS9y dXN0L3BhY2tlZF9zaW1kL2NpL2xpbnV4LXMzOTB4LnNoCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAw MDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2xpbnV4 LXMzOTB4LnNoCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSwxOCAr MCwwIEBACi0tc2V0IC1leAotLQotLW1rZGlyIC1tIDc3NyAvcWVtdQotLWNkIC9xZW11Ci0tCi0t Y3VybCAtTE8gaHR0cHM6Ly9naXRodWIuY29tL3FlbXUvcWVtdS9yYXcvbWFzdGVyL3BjLWJpb3Mv czM5MC1jY3cuaW1nCi0tY3VybCAtTE8gaHR0cDovL2Z0cC5kZWJpYW4ub3JnL2RlYmlhbi9kaXN0 cy90ZXN0aW5nL21haW4vaW5zdGFsbGVyLXMzOTB4LzIwMTcwODI4L2ltYWdlcy9nZW5lcmljL2tl cm5lbC5kZWJpYW4KLS1jdXJsIC1MTyBodHRwOi8vZnRwLmRlYmlhbi5vcmcvZGViaWFuL2Rpc3Rz L3Rlc3RpbmcvbWFpbi9pbnN0YWxsZXItczM5MHgvMjAxNzA4MjgvaW1hZ2VzL2dlbmVyaWMvaW5p dHJkLmRlYmlhbgotLQotLW12IGtlcm5lbC5kZWJpYW4ga2VybmVsCi0tbXYgaW5pdHJkLmRlYmlh biBpbml0cmQuZ3oKLS0KLS1ta2RpciBpbml0Ci0tY2QgaW5pdAotLWd1bnppcCAtYyAuLi9pbml0 cmQuZ3ogfCBjcGlvIC1pZAotLXJtIC4uL2luaXRyZC5negotLWNwIC91c3IvczM5MHgtbGludXgt Z251L2xpYi9saWJnY2Nfcy5zby4xIHVzci9saWIvCi0tY2htb2QgYSt3IC4KLWRpZmYgLU5yYnUg YS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2xpbnV4LXNwYXJjNjQuc2ggYi90aGly ZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2xpbnV4LXNwYXJjNjQuc2gKLS0tLSBhL3RoaXJk X3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvbGludXgtc3BhcmM2NC5zaAkyMDI1LTA0LTIwIDE5 OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2lt ZC9jaS9saW51eC1zcGFyYzY0LnNoCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAw Ci1AQCAtMSwxNyArMCwwIEBACi0tc2V0IC1leAotLQotLW1rZGlyIC1tIDc3NyAvcWVtdQotLWNk IC9xZW11Ci0tCi0tY3VybCAtTE8gaHR0cHM6Ly9jZGltYWdlLmRlYmlhbi5vcmcvY2RpbWFnZS9w b3J0cy85LjAvc3BhcmM2NC9pc28tY2QvZGViaWFuLTkuMC1zcGFyYzY0LU5FVElOU1QtMS5pc28K LS03eiBlIGRlYmlhbi05LjAtc3BhcmM2NC1ORVRJTlNULTEuaXNvIGJvb3QvaW5pdHJkLmd6Ci0t N3ogZSBkZWJpYW4tOS4wLXNwYXJjNjQtTkVUSU5TVC0xLmlzbyBib290L3NwYXJjNjQKLS1tdiBz cGFyYzY0IGtlcm5lbAotLXJtIGRlYmlhbi05LjAtc3BhcmM2NC1ORVRJTlNULTEuaXNvCi0tCi0t bWtkaXIgaW5pdAotLWNkIGluaXQKLS1ndW56aXAgLWMgLi4vaW5pdHJkLmd6IHwgY3BpbyAtaWQK LS1ybSAuLi9pbml0cmQuZ3oKLS1jcCAvdXNyL3NwYXJjNjQtbGludXgtZ251L2xpYi9saWJnY2Nf cy5zby4xIHVzci9saWIvCi0tY2htb2QgYSt3IC4KLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9y dXN0L3BhY2tlZF9zaW1kL2NpL2xsZC1zaGltLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRf c2ltZC9jaS9sbGQtc2hpbS5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9j aS9sbGQtc2hpbS5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIv dGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9sbGQtc2hpbS5ycwkxOTcwLTAxLTAxIDAz OjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsMTEgKzAsMCBAQAotLXVzZSBzdGQ6Om9zOjp1 bml4OjpwcmVsdWRlOjoqOwotLXVzZSBzdGQ6OnByb2Nlc3M6OkNvbW1hbmQ7Ci0tdXNlIHN0ZDo6 ZW52OwotLQotLWZuIG1haW4oKSB7Ci0tICAgIGxldCBhcmdzID0gZW52OjphcmdzKCkKLS0gICAg ICAgIC5za2lwKDEpCi0tICAgICAgICAuZmlsdGVyKHxzfCBzICE9ICItLXN0cmlwLWRlYnVnIikK LS0gICAgICAgIC5jb2xsZWN0Ojo8VmVjPF8+PigpOwotLSAgICBwYW5pYyEoImZhaWxlZCB0byBl eGVjOiB7fSIsIENvbW1hbmQ6Om5ldygicnVzdC1sbGQiKS5hcmdzKCZhcmdzKS5leGVjKCkpOwot LX0KLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL21heF9saW5l X3dpZHRoLnNoIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9tYXhfbGluZV93aWR0 aC5zaAotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9tYXhfbGluZV93aWR0 aC5zaAkyMDI1LTA5LTA3IDE0OjMwOjM3LjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFy dHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9tYXhfbGluZV93aWR0aC5zaAkxOTcwLTAxLTAxIDAzOjAw OjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsMTcgKzAsMCBAQAotLSMhL3Vzci9iaW4vZW52IHNo Ci0tCi0tc2V0IC14Ci0tCi0tZXhwb3J0IHN1Y2Nlc3M9dHJ1ZQotLQotLWZpbmQgLiAtaW5hbWUg JyoucnMnIHwgd2hpbGUgcmVhZCAtciBmaWxlOyBkbwotLSAgICByZXN1bHQ9JChncmVwICcuXHs3 OVx9JyAiJHtmaWxlfSIgfCBncmVwIC0taW52ZXJ0ICdodHRwJykKLS0gICAgaWYgWyAiJHtyZXN1 bHR9IiA9ICIiIF0KLS0gICAgdGhlbgotLSAgICAgICAgOgotLSAgICBlbHNlCi0tICAgICAgICBl Y2hvICJmaWxlIFwiJHtmaWxlfVwiOiAkcmVzdWx0IgotLSAgICAgICAgZXhpdCAxCi0tICAgIGZp Ci0tZG9uZQotLQotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kv cnVuLWRvY2tlci5zaCBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvcnVuLWRvY2tl ci5zaAotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9ydW4tZG9ja2VyLnNo CTIwMjUtMDktMDcgMTQ6MzA6MzcuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9y dXN0L3BhY2tlZF9zaW1kL2NpL3J1bi1kb2NrZXIuc2gJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAw MDAwMDAgKzAzMDAKLUBAIC0xLDM4ICswLDAgQEAKLS0jIFNtYWxsIHNjcmlwdCB0byBydW4gdGVz dHMgZm9yIGEgdGFyZ2V0IChvciBhbGwgdGFyZ2V0cykgaW5zaWRlIGFsbCB0aGUKLS0jIHJlc3Bl Y3RpdmUgZG9ja2VyIGltYWdlcy4KLS0KLS1zZXQgLWV4Ci0tCi0tcnVuKCkgewotLSAgICBlY2hv ICJCdWlsZGluZyBkb2NrZXIgY29udGFpbmVyIGZvciBUQVJHRVQ9JHtUQVJHRVR9IFJVU1RGTEFH Uz0ke1JVU1RGTEFHU30iCi0tICAgIGRvY2tlciBidWlsZCAtdCBwYWNrZWRfc2ltZCAtZiBjaS9k b2NrZXIvJHtUQVJHRVR9L0RvY2tlcmZpbGUgY2kvCi0tICAgIG1rZGlyIC1wIHRhcmdldAotLSAg ICB0YXJnZXQ9JChlY2hvICIke1RBUkdFVH0iIHwgc2VkICdzLy1lbXVsYXRlZC8vJykKLS0gICAg ZWNobyAiUnVubmluZyBkb2NrZXIiCi0tICAgIGRvY2tlciBydW4gXAotLSAgICAgIC0tdXNlciBg aWQgLXVgOmBpZCAtZ2AgXAotLSAgICAgIC0tcm0gXAotLSAgICAgIC0taW5pdCBcCi0tICAgICAg LS12b2x1bWUgJEhPTUUvLmNhcmdvOi9jYXJnbyBcCi0tICAgICAgLS1lbnYgQ0FSR09fSE9NRT0v Y2FyZ28gXAotLSAgICAgIC0tdm9sdW1lIGBydXN0YyAtLXByaW50IHN5c3Jvb3RgOi9ydXN0OnJv IFwKLS0gICAgICAtLWVudiBUQVJHRVQ9JHRhcmdldCBcCi0tICAgICAgLS1lbnYgTk9SVU4gXAot LSAgICAgIC0tZW52IE5PVkVSSUZZIFwKLS0gICAgICAtLWVudiBSVVNURkxBR1MgXAotLSAgICAg IC0tdm9sdW1lIGBwd2RgOi9jaGVja291dDpybyBcCi0tICAgICAgLS12b2x1bWUgYHB3ZGAvdGFy Z2V0Oi9jaGVja291dC90YXJnZXQgXAotLSAgICAgIC0td29ya2RpciAvY2hlY2tvdXQgXAotLSAg ICAgIC0tcHJpdmlsZWdlZCBcCi0tICAgICAgcGFja2VkX3NpbWQgXAotLSAgICAgIGJhc2ggXAot LSAgICAgIC1jICdQQVRIPSRQQVRIOi9ydXN0L2JpbiBleGVjIGNpL3J1bi5zaCcKLS19Ci0tCi0t aWYgWyAteiAiJHtUQVJHRVR9IiBdOyB0aGVuCi0tICBmb3IgZCBpbiBgbHMgY2kvZG9ja2VyL2A7 IGRvCi0tICAgIHJ1biAkZAotLSAgZG9uZQotLWVsc2UKLS0gIHJ1biAke1RBUkdFVH0KLS1maQot ZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvcnVuLnNoIGIvdGhp cmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9ydW4uc2gKLS0tLSBhL3RoaXJkX3BhcnR5L3J1 c3QvcGFja2VkX3NpbWQvY2kvcnVuLnNoCTIwMjUtMDktMDcgMTQ6MzA6MzcuMDAwMDAwMDAwICsw MzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL3J1bi5zaAkxOTcwLTAx LTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsOTkgKzAsMCBAQAotLSMhL3Vzci9i aW4vZW52IGJhc2gKLS0KLS1zZXQgLWV4Ci0tCi0tOiAke1RBUkdFVD8iVGhlIFRBUkdFVCBlbnZp cm9ubWVudCB2YXJpYWJsZSBtdXN0IGJlIHNldC4ifQotLQotLSMgVGVzdHMgYXJlIGFsbCBzdXBl ciBmYXN0IGFueXdheSwgYW5kIHRoZXkgZmF1bHQgb2Z0ZW4gZW5vdWdoIG9uIHRyYXZpcyB0aGF0 Ci0tIyBoYXZpbmcgb25seSBvbmUgdGhyZWFkIGluY3JlYXNlcyBkZWJ1Z2dhYmlsaXR5IHRvIGJl IHdvcnRoIGl0LgotLSNleHBvcnQgUlVTVF9URVNUX1RIUkVBRFM9MQotLSNleHBvcnQgUlVTVF9C QUNLVFJBQ0U9ZnVsbAotLSNleHBvcnQgUlVTVF9URVNUX05PQ0FQVFVSRT0xCi0tCi0tIyBTb21l IGFwcHZleW9yIGJ1aWxkcyBydW4gb3V0LW9mLW1lbW9yeTsgdGhpcyBhdHRlbXB0cyB0byBtaXRp Z2F0ZSB0aGF0OgotLSMgaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy1udXJzZXJ5L3BhY2tl ZF9zaW1kL2lzc3Vlcy8zOQotLSMgZXhwb3J0IFJVU1RGTEFHUz0iJHtSVVNURkxBR1N9IC1DIGNv ZGVnZW4tdW5pdHM9MSIKLS0jIGV4cG9ydCBDQVJHT19CVUlMRF9KT0JTPTEKLS0KLS1leHBvcnQg Q0FSR09fU1VCQ01EPXRlc3QKLS1pZiBbWyAiJHtOT1JVTn0iID09ICIxIiBdXTsgdGhlbgotLSAg ICBleHBvcnQgQ0FSR09fU1VCQ01EPWJ1aWxkCi0tZmkKLS0KLS1pZiBbWyAke1RBUkdFVH0gPT0g Ing4Nl82NC1hcHBsZS1pb3MiIF1dIHx8IFtbICR7VEFSR0VUfSA9PSAiaTM4Ni1hcHBsZS1pb3Mi IF1dOyB0aGVuCi0tICAgIGV4cG9ydCBSVVNURkxBR1M9IiR7UlVTVEZMQUdTfSAtQ2xpbmstYXJn PS1taW9zLXNpbXVsYXRvci12ZXJzaW9uLW1pbj03LjAiCi0tICAgIHJ1c3RjIC4vY2kvZGVwbG95 X2FuZF9ydW5fb25faW9zX3NpbXVsYXRvci5ycyAtbyAkSE9NRS9ydW50ZXN0Ci0tICAgIGV4cG9y dCBDQVJHT19UQVJHRVRfWDg2XzY0X0FQUExFX0lPU19SVU5ORVI9JEhPTUUvcnVudGVzdAotLSAg ICBleHBvcnQgQ0FSR09fVEFSR0VUX0kzODZfQVBQTEVfSU9TX1JVTk5FUj0kSE9NRS9ydW50ZXN0 Ci0tZmkKLS0KLS0jIFRoZSBzb3VyY2UgZGlyZWN0b3J5IGlzIHJlYWQtb25seS4gTmVlZCB0byBj b3B5IGludGVybmFsIGNyYXRlcyB0byB0aGUgdGFyZ2V0Ci0tIyBkaXJlY3RvcnkgZm9yIHRoZWly IENhcmdvLmxvY2sgdG8gYmUgcHJvcGVybHkgd3JpdHRlbi4KLS1ta2RpciB0YXJnZXQgfHwgdHJ1 ZQotLQotLXJ1c3RjIC0tdmVyc2lvbgotLWNhcmdvIC0tdmVyc2lvbgotLWVjaG8gIlRBUkdFVD0k e1RBUkdFVH0iCi0tZWNobyAiSE9TVD0ke0hPU1R9IgotLWVjaG8gIlJVU1RGTEFHUz0ke1JVU1RG TEFHU30iCi0tZWNobyAiTk9SVU49JHtOT1JVTn0iCi0tZWNobyAiTk9WRVJJRlk9JHtOT1ZFUklG WX0iCi0tZWNobyAiQ0FSR09fU1VCQ01EPSR7Q0FSR09fU1VCQ01EfSIKLS1lY2hvICJDQVJHT19C VUlMRF9KT0JTPSR7Q0FSR09fQlVJTERfSk9CU30iCi0tZWNobyAiQ0FSR09fSU5DUkVNRU5UQUw9 JHtDQVJHT19JTkNSRU1FTlRBTH0iCi0tZWNobyAiUlVTVF9URVNUX1RIUkVBRFM9JHtSVVNUX1RF U1RfVEhSRUFEU30iCi0tZWNobyAiUlVTVF9CQUNLVFJBQ0U9JHtSVVNUX0JBQ0tUUkFDRX0iCi0t ZWNobyAiUlVTVF9URVNUX05PQ0FQVFVSRT0ke1JVU1RfVEVTVF9OT0NBUFRVUkV9IgotLQotLWNh cmdvX3Rlc3QoKSB7Ci0tICAgIGNtZD0iY2FyZ28gJHtDQVJHT19TVUJDTUR9IC0tdmVyYm9zZSAt LXRhcmdldD0ke1RBUkdFVH0gJHtAfSIKLS0gICAgaWYgWyAiJHtOT1JVTn0iICE9ICIxIiBdCi0t ICAgIHRoZW4KLS0gICAgICAgIGlmIFsgIiRUQVJHRVQiICE9ICJ3YXNtMzItdW5rbm93bi11bmtu b3duIiBdCi0tICAgICAgICB0aGVuCi0tICAgICAgICAgICAgY21kPSIkY21kIC0tIC0tcXVpZXQi Ci0tICAgICAgICBmaQotLSAgICBmaQotLSAgICBta2RpciB0YXJnZXQgfHwgdHJ1ZQotLSAgICAk e2NtZH0gMj4mMSB8IHRlZSA+IHRhcmdldC9vdXRwdXQKLS0gICAgaWYgW1sgJHtQSVBFU1RBVFVT WzBdfSAhPSAwIF1dOyB0aGVuCi0tICAgICAgICBjYXQgdGFyZ2V0L291dHB1dAotLSAgICAgICAg cmV0dXJuIDEKLS0gICAgZmkKLS19Ci0tCi0tY2FyZ29fdGVzdF9pbXBsKCkgewotLSAgICBPUklH SU5BTF9SVVNURkxBR1M9JHtSVVNURkxBR1N9Ci0tICAgIFJVU1RGTEFHUz0iJHtPUklHSU5BTF9S VVNURkxBR1N9IC0tY2ZnIHRlc3RfdjE2ICAtLWNmZyB0ZXN0X3YzMiAtLWNmZyB0ZXN0X3Y2NCIg Y2FyZ29fdGVzdCAke0B9Ci0tICAgIFJVU1RGTEFHUz0iJHtPUklHSU5BTF9SVVNURkxBR1N9IC0t Y2ZnIHRlc3RfdjEyOCAtLWNmZyB0ZXN0X3YyNTYiIGNhcmdvX3Rlc3QgJHtAfQotLSAgICBSVVNU RkxBR1M9IiR7T1JJR0lOQUxfUlVTVEZMQUdTfSAtLWNmZyB0ZXN0X3Y1MTIiIGNhcmdvX3Rlc3Qg JHtAfQotLSAgICBSVVNURkxBR1M9JHtPUklHSU5BTF9SVVNURkxBR1N9Ci0tfQotLQotLSMgRGVi dWcgcnVuOgotLWlmIFtbICIke1RBUkdFVH0iICE9ICJ3YXNtMzItdW5rbm93bi11bmtub3duIiBd XTsgdGhlbgotLSAgICMgUnVuIHdhc20zMi11bmtub3duLXVua25vd24gaW4gcmVsZWFzZSBtb2Rl IG9ubHkKLS0gICBjYXJnb190ZXN0X2ltcGwKLS1maQotLQotLWlmIFtbICIke1RBUkdFVH0iID09 ICJ4ODZfNjQtdW5rbm93bi1saW51eC1nbnUiIF1dIHx8IFtbICIke1RBUkdFVH0iID09ICJ4ODZf NjQtcGMtd2luZG93cy1tc3ZjIiBdXTsgdGhlbgotLSAgICAjIHVzZSBzbGVlZiBvbiBsaW51eCBh bmQgd2luZG93cyB4ODZfNjQgYnVpbGRzCi0tICAgICMgRklYTUU6IFVzZSBgY29yZV9hcmNoLHNs ZWVmLXN5c2AgZmVhdHVyZXMgb25jZSB0aGV5IHdvcmtzIGFnYWluCi0tICAgIGNhcmdvX3Rlc3Rf aW1wbCAtLXJlbGVhc2UgLS1mZWF0dXJlcz1pbnRvX2JpdHMKLS1lbHNlCi0tICAgICMgRklYTUU6 IFVzZSBgY29yZV9hcmNoYCBmZWF0dXJlIG9uY2UgaXQgd29ya3MgYWdhaW4KLS0gICAgY2FyZ29f dGVzdF9pbXBsIC0tcmVsZWFzZSAtLWZlYXR1cmVzPWludG9fYml0cwotLWZpCi0tCi0tIyBWZXJp ZnkgY29kZSBnZW5lcmF0aW9uCi0taWYgW1sgIiR7Tk9WRVJJRll9IiAhPSAiMSIgXV07IHRoZW4K LS0gICAgY3AgLXIgdmVyaWZ5L3ZlcmlmeSB0YXJnZXQvdmVyaWZ5Ci0tICAgIGV4cG9ydCBTVERT SU1EX0FTU0VSVF9JTlNUUl9MSU1JVD0zMAotLSAgICBpZiBbWyAiJHtUQVJHRVR9IiA9PSAiaTU4 Ni11bmtub3duLWxpbnV4LWdudSIgXV07IHRoZW4KLS0gICAgICAgIGV4cG9ydCBTVERTSU1EX0FT U0VSVF9JTlNUUl9MSU1JVD01MAotLSAgICBmaQotLSAgICBjYXJnb190ZXN0IC0tcmVsZWFzZSAt LW1hbmlmZXN0LXBhdGg9dGFyZ2V0L3ZlcmlmeS9DYXJnby50b21sCi0tZmkKLS0KLS0jIEZJWE1F OiBGaWd1cmUgb3V0IHdoaWNoIGV4YW1wbGVzIHRha2UgdG9vIGxvbmcgdG8gcnVuIGFuZCBpZ25v cmUgb3IgYWRqdXN0IHRob3NlCi0tIy4gY2kvcnVuX2V4YW1wbGVzLnNoCi1kaWZmIC1OcmJ1IGEv dGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9ydW5fZXhhbXBsZXMuc2ggYi90aGlyZF9w YXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL3J1bl9leGFtcGxlcy5zaAotLS0tIGEvdGhpcmRfcGFy dHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9ydW5fZXhhbXBsZXMuc2gJMjAyNS0wNC0yMCAxOToyODox My4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kv cnVuX2V4YW1wbGVzLnNoCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAt MSw1MSArMCwwIEBACi0tIyBSdW5zIGFsbCBleGFtcGxlcy4KLS0KLS0jIEZJWE1FOiBodHRwczov L2dpdGh1Yi5jb20vcnVzdC1sYW5nLW51cnNlcnkvcGFja2VkX3NpbWQvaXNzdWVzLzU1Ci0tIyBB bGwgZXhhbXBsZXMgZmFpbCB0byBidWlsZCBmb3IgYGFybXY3LWFwcGxlLWlvc2AuCi0taWYgW1sg JHtUQVJHRVR9ID09ICJhcm12Ny1hcHBsZS1pb3MiIF1dOyB0aGVuCi0tICAgIGV4aXQgMAotLWZp Ci0tCi0tIyBGSVhNRTogdHJhdmlzIGV4Y2VlZHMgNTAgbWludXRlcyBvbiB0aGVzZSB0YXJnZXRz Ci0tIyBTa2lwcGluZyB0aGUgZXhhbXBsZXMgaXMgYW4gYXR0ZW1wdCBhdCBwcmV2ZW50aW5nIHRy YXZpcyBmcm9tIHRpbWluZy1vdXQKLS1pZiBbWyAke1RBUkdFVH0gPT0gImFybS1saW51eC1hbmRy b2lkYWJpIiBdXSB8fCBbWyAke1RBUkdFVH0gPT0gImFhcmNoNjQtbGludXgtYW5kcm9pZGFiaSIg XV0gXAotLSAgICB8fCBbWyAke1RBUkdFVH0gPT0gInNwYXJjNjQtdW5rbm93bi1saW51eC1nbnUi IF1dOyB0aGVuCi0tICAgIGV4aXQgMAotLWZpCi0tCi0taWYgW1sgJHtUQVJHRVR9ID09ICJ3YXNt MzItdW5rbm93bi11bmtub3duIiBdXTsgdGhlbgotLSAgICBleGl0IDAKLS1maQotLQotLWNwIC1y IGV4YW1wbGVzL2FvYmVuY2ggdGFyZ2V0L2FvYmVuY2gKLS1jYXJnb190ZXN0IC0tbWFuaWZlc3Qt cGF0aD10YXJnZXQvYW9iZW5jaC9DYXJnby50b21sIC0tcmVsZWFzZSAtLW5vLWRlZmF1bHQtZmVh dHVyZXMKLS1jYXJnb190ZXN0IC0tbWFuaWZlc3QtcGF0aD10YXJnZXQvYW9iZW5jaC9DYXJnby50 b21sIC0tcmVsZWFzZSAtLWZlYXR1cmVzPTI1NmJpdAotLQotLWNwIC1yIGV4YW1wbGVzL2RvdF9w cm9kdWN0IHRhcmdldC9kb3RfcHJvZHVjdAotLWNhcmdvX3Rlc3QgLS1tYW5pZmVzdC1wYXRoPXRh cmdldC9kb3RfcHJvZHVjdC9DYXJnby50b21sIC0tcmVsZWFzZQotLQotLWNwIC1yIGV4YW1wbGVz L2Zhbm5rdWNoX3JlZHV4IHRhcmdldC9mYW5ua3VjaF9yZWR1eAotLWNhcmdvX3Rlc3QgLS1tYW5p ZmVzdC1wYXRoPXRhcmdldC9mYW5ua3VjaF9yZWR1eC9DYXJnby50b21sIC0tcmVsZWFzZQotLQot LSMgRklYTUU6IGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmctbnVyc2VyeS9wYWNrZWRfc2lt ZC9pc3N1ZXMvNTYKLS1pZiBbWyAke1RBUkdFVH0gIT0gImk1ODYtdW5rbm93bi1saW51eC1nbnUi IF1dOyB0aGVuCi0tICAgIGNwIC1yIGV4YW1wbGVzL21hbmRlbGJyb3QgdGFyZ2V0L21hbmRlbGJy b3QKLS0gICAgY2FyZ29fdGVzdCAtLW1hbmlmZXN0LXBhdGg9dGFyZ2V0L21hbmRlbGJyb3QvQ2Fy Z28udG9tbCAtLXJlbGVhc2UKLS1maQotLQotLWNwIC1yIGV4YW1wbGVzL21hdHJpeF9pbnZlcnNl IHRhcmdldC9tYXRyaXhfaW52ZXJzZQotLWNhcmdvX3Rlc3QgLS1tYW5pZmVzdC1wYXRoPXRhcmdl dC9tYXRyaXhfaW52ZXJzZS9DYXJnby50b21sIC0tcmVsZWFzZQotLQotLWNwIC1yIGV4YW1wbGVz L25ib2R5IHRhcmdldC9uYm9keQotLWNhcmdvX3Rlc3QgLS1tYW5pZmVzdC1wYXRoPXRhcmdldC9u Ym9keS9DYXJnby50b21sIC0tcmVsZWFzZQotLQotLWNwIC1yIGV4YW1wbGVzL3NwZWN0cmFsX25v cm0gdGFyZ2V0L3NwZWN0cmFsX25vcm0KLS1jYXJnb190ZXN0IC0tbWFuaWZlc3QtcGF0aD10YXJn ZXQvc3BlY3RyYWxfbm9ybS9DYXJnby50b21sIC0tcmVsZWFzZQotLQotLWlmIFtbICR7VEFSR0VU fSAhPSAiaTU4Ni11bmtub3duLWxpbnV4LWdudSIgXV07IHRoZW4KLS0gICAgY3AgLXIgZXhhbXBs ZXMvc3RlbmNpbCB0YXJnZXQvc3RlbmNpbAotLSAgICBjYXJnb190ZXN0IC0tbWFuaWZlc3QtcGF0 aD10YXJnZXQvc3RlbmNpbC9DYXJnby50b21sIC0tcmVsZWFzZQotLWZpCi0tCi0tY3AgLXIgZXhh bXBsZXMvdHJpYW5nbGVfeGZvcm0gdGFyZ2V0L3RyaWFuZ2xlX3hmb3JtCi0tY2FyZ29fdGVzdCAt LW1hbmlmZXN0LXBhdGg9dGFyZ2V0L3RyaWFuZ2xlX3hmb3JtL0NhcmdvLnRvbWwgLS1yZWxlYXNl Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9ydW50ZXN0LWFu ZHJvaWQucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL3J1bnRlc3QtYW5kcm9p ZC5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9ydW50ZXN0LWFuZHJv aWQucnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3Bh cnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvcnVudGVzdC1hbmRyb2lkLnJzCTE5NzAtMDEtMDEgMDM6 MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSw0NSArMCwwIEBACi0tdXNlIHN0ZDo6ZW52Owot LXVzZSBzdGQ6OnByb2Nlc3M6OkNvbW1hbmQ7Ci0tdXNlIHN0ZDo6cGF0aDo6e1BhdGgsIFBhdGhC dWZ9OwotLQotLWZuIG1haW4oKSB7Ci0tICAgIGxldCBhcmdzID0gZW52OjphcmdzX29zKCkKLS0g ICAgICAgIC5za2lwKDEpCi0tICAgICAgICAuZmlsdGVyKHxhcmd8IGFyZyAhPSAiLS1xdWlldCIp Ci0tICAgICAgICAuY29sbGVjdDo6PFZlYzxfPj4oKTsKLS0gICAgYXNzZXJ0X2VxIShhcmdzLmxl bigpLCAxKTsKLS0gICAgbGV0IHRlc3QgPSBQYXRoQnVmOjpmcm9tKCZhcmdzWzBdKTsKLS0gICAg bGV0IGRzdCA9IFBhdGg6Om5ldygiL2RhdGEvbG9jYWwvdG1wIikuam9pbih0ZXN0LmZpbGVfbmFt ZSgpLnVud3JhcCgpKTsKLS0KLS0gICAgbGV0IHN0YXR1cyA9IENvbW1hbmQ6Om5ldygiYWRiIikK LS0gICAgICAgIC5hcmcoIndhaXQtZm9yLWRldmljZSIpCi0tICAgICAgICAuc3RhdHVzKCkKLS0g ICAgICAgIC5leHBlY3QoImZhaWxlZCB0byBydW46IGFkYiB3YWl0LWZvci1kZXZpY2UiKTsKLS0g ICAgYXNzZXJ0IShzdGF0dXMuc3VjY2VzcygpKTsKLS0KLS0gICAgbGV0IHN0YXR1cyA9IENvbW1h bmQ6Om5ldygiYWRiIikKLS0gICAgICAgIC5hcmcoInB1c2giKQotLSAgICAgICAgLmFyZygmdGVz dCkKLS0gICAgICAgIC5hcmcoJmRzdCkKLS0gICAgICAgIC5zdGF0dXMoKQotLSAgICAgICAgLmV4 cGVjdCgiZmFpbGVkIHRvIHJ1bjogYWRiIHB1c2hyIik7Ci0tICAgIGFzc2VydCEoc3RhdHVzLnN1 Y2Nlc3MoKSk7Ci0tCi0tICAgIGxldCBvdXRwdXQgPSBDb21tYW5kOjpuZXcoImFkYiIpCi0tICAg ICAgICAuYXJnKCJzaGVsbCIpCi0tICAgICAgICAuYXJnKCZkc3QpCi0tICAgICAgICAub3V0cHV0 KCkKLS0gICAgICAgIC5leHBlY3QoImZhaWxlZCB0byBydW46IGFkYiBzaGVsbCIpOwotLSAgICBh c3NlcnQhKHN0YXR1cy5zdWNjZXNzKCkpOwotLQotLSAgICBwcmludGxuISgic3RhdHVzOiB7fVxu c3Rkb3V0IC0tLVxue31cbnN0ZGVyciAtLS1cbnt9IiwKLS0gICAgICAgICAgICAgb3V0cHV0LnN0 YXR1cywKLS0gICAgICAgICAgICAgU3RyaW5nOjpmcm9tX3V0ZjhfbG9zc3koJm91dHB1dC5zdGRv dXQpLAotLSAgICAgICAgICAgICBTdHJpbmc6OmZyb21fdXRmOF9sb3NzeSgmb3V0cHV0LnN0ZGVy cikpOwotLQotLSAgICBsZXQgc3Rkb3V0ID0gU3RyaW5nOjpmcm9tX3V0ZjhfbG9zc3koJm91dHB1 dC5zdGRvdXQpOwotLSAgICBsZXQgbXV0IGxpbmVzID0gc3Rkb3V0LmxpbmVzKCkuZmlsdGVyKHxs fCBsLnN0YXJ0c193aXRoKCJ0ZXN0IHJlc3VsdCIpKTsKLS0gICAgaWYgIWxpbmVzLmFsbCh8bHwg bC5jb250YWlucygidGVzdCByZXN1bHQ6IG9rIikgJiYgbC5jb250YWlucygiMCBmYWlsZWQiKSkg ewotLSAgICAgICAgcGFuaWMhKCJmYWlsZWQgdG8gZmluZCBzdWNjZXNzZnVsIHRlc3QgcnVuIik7 Ci0tICAgIH0KLS19Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9j aS9zZXR1cF9iZW5jaG1hcmtzLnNoIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9z ZXR1cF9iZW5jaG1hcmtzLnNoCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2Np L3NldHVwX2JlbmNobWFya3Muc2gJMjAyNS0wOS0wNyAxNDozMDozNy4wMDAwMDAwMDAgKzAzMDAK LSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvc2V0dXBfYmVuY2htYXJrcy5z aAkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsNyArMCwwIEBACi0t IyEvdXNyL2Jpbi9lbnYgYmFzaAotLQotLXNldCAtZXgKLS0KLS0jIEdldCBsYXRlc3QgSVNQQyBi aW5hcnkgZm9yIHRoZSB0YXJnZXQgYW5kIHB1dCBpdCBpbiB0aGUgcGF0aAotLWdpdCBjbG9uZSBo dHRwczovL2dpdGh1Yi5jb20vZ256bGJnL2lzcGMtYmluYXJpZXMKLS1jcCBpc3BjLWJpbmFyaWVz L2lzcGMtJHtUQVJHRVR9IGlzcGMKLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tl ZF9zaW1kL2NpL3Rlc3QtcnVubmVyLWxpbnV4IGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2lt ZC9jaS90ZXN0LXJ1bm5lci1saW51eAotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2lt ZC9jaS90ZXN0LXJ1bm5lci1saW51eAkyMDI1LTA5LTA3IDE0OjMwOjM3LjAwMDAwMDAwMCArMDMw MAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS90ZXN0LXJ1bm5lci1saW51 eAkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsMjQgKzAsMCBAQAot LSMhL2Jpbi9zaAotLQotLXNldCAtZQotLQotLWFyY2g9JDEKLS1wcm9nPSQyCi0tCi0tY2QgL3Fl bXUvaW5pdAotLWNwIC1mICQyIHByb2cKLS1maW5kIC4gfCBjcGlvIC0tY3JlYXRlIC0tZm9ybWF0 PSduZXdjJyAtLXF1aWV0IHwgZ3ppcCA+IC4uL2luaXRyZC5negotLWNkIC4uCi0tCi0tdGltZW91 dCAzMHMgcWVtdS1zeXN0ZW0tJGFyY2ggXAotLSAgICAgICAgLW0gMTAyNCBcCi0tICAgICAgICAt bm9ncmFwaGljIFwKLS0gICAgICAgIC1rZXJuZWwga2VybmVsIFwKLS0gICAgICAgIC1pbml0cmQg aW5pdHJkLmd6IFwKLS0gICAgICAgIC1hcHBlbmQgaW5pdD0vcHJvZyA+IG91dHB1dCB8fCB0cnVl Ci0tCi0tIyByZW1vdmUga2VybmVsIG1lc3NhZ2VzCi0tdHIgLWQgJ1xyJyA8IG91dHB1dCB8IGVn cmVwIC12ICdeXFsnCi0tCi0tIyBpZiB0aGUgb3V0cHV0IGNvbnRhaW5zIGEgZmFpbHVyZSwgcmV0 dXJuIGVycm9yCi0tISBncmVwIEZBSUxFRCBvdXRwdXQgPiAvZGV2L251bGwKLWRpZmYgLU5yYnUg YS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NvbnRyaWJ1dGluZy5tZCBiL3RoaXJkX3Bh cnR5L3J1c3QvcGFja2VkX3NpbWQvY29udHJpYnV0aW5nLm1kCi0tLS0gYS90aGlyZF9wYXJ0eS9y dXN0L3BhY2tlZF9zaW1kL2NvbnRyaWJ1dGluZy5tZAkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAw MDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jb250cmlidXRp bmcubWQJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDY3ICswLDAg QEAKLS0jIENvbnRyaWJ1dGluZyB0byBgcGFja2VkX3NpbWRgCi0tCi0tV2VsY29tZSEgSWYgeW91 IGFyZSByZWFkaW5nIHRoaXMgZG9jdW1lbnQsIGl0IG1lYW5zIHlvdSBhcmUgaW50ZXJlc3RlZCBp biBjb250cmlidXRpbmcKLS10byB0aGUgYHBhY2tlZF9zaW1kYCBjcmF0ZS4KLS0KLS0jIyBSZXBv cnRpbmcgaXNzdWVzCi0tCi0tQWxsIGlzc3VlcyB3aXRoIHRoaXMgY3JhdGUgYXJlIHRyYWNrZWQg dXNpbmcgR2l0SHViJ3MgW0lzc3VlIFRyYWNrZXJdLgotLQotLVlvdSBjYW4gdXNlIGlzc3VlcyB0 byBicmluZyBidWdzIHRvIHRoZSBhdHRlbnRpb24gb2YgdGhlIG1haW50YWluZXJzLCB0byBkaXNj dXNzCi0tY2VydGFpbiBwcm9ibGVtcyBlbmNvdW50ZXJlZCB3aXRoIHRoZSBjcmF0ZSwgb3IgdG8g cmVxdWVzdCBuZXcgZmVhdHVyZXMgKGFsdGhvdWdoCi0tZmVhdHVyZSByZXF1ZXN0cyBzaG91bGQg YmUgbGltaXRlZCB0byB0aGluZ3MgbWVudGlvbmVkIGluIHRoZSBbUkZDXSkuCi0tCi0tT25lIHRo aW5nIHRvIGtlZXAgaW4gbWluZCBpcyB0byBhbHdheXMgdXNlIHRoZSAqKmxhdGVzdCoqIG5pZ2h0 bHkgdG9vbGNoYWluIHdoZW4KLS13b3JraW5nIG9uIHRoaXMgY3JhdGUuIER1ZSB0byB0aGUgbmF0 dXJlIG9mIHRoaXMgcHJvamVjdCwgd2UgdXNlIGEgbG90IG9mIHVuc3RhYmxlCi0tZmVhdHVyZXMs IG1lYW5pbmcgYnJlYWthZ2UgaGFwcGVucyBvZnRlbi4KLS0KLS1bSXNzdWUgVHJhY2tlcl06IGh0 dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmctbnVyc2VyeS9wYWNrZWRfc2ltZC9pc3N1ZXMKLS1b UkZDXTogaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9yZmNzL3B1bGwvMjM2NgotLQotLSMj IyBMTFZNIGlzc3VlcwotLQotLVRoZSBSdXN0IGNvbXBpbGVyIHJlbGllcyBvbiBbTExWTV0oaHR0 cHM6Ly9sbHZtLm9yZy8pIGZvciBtYWNoaW5lIGNvZGUgZ2VuZXJhdGlvbiwKLS1hbmQgcXVpdGUg YSBmZXcgTExWTSBidWdzIGhhdmUgYmVlbiBkaXNjb3ZlcmVkIGR1cmluZyB0aGUgZGV2ZWxvcG1l bnQgb2YgdGhpcyBwcm9qZWN0LgotLQotLUlmIHlvdSBlbmNvdW50ZXIgaXNzdWVzIHdpdGggaW5j b3JyZWN0L3N1Ym9wdGltYWwgY29kZWdlbiwgd2hpY2ggeW91IGRvIG5vdCBlbmNvdW50ZXIKLS13 aGVuIHVzaW5nIHRoZSBbU0lNRCB2ZW5kb3IgaW50cmluc2ljc10oaHR0cHM6Ly9kb2MucnVzdC1s YW5nLm9yZy9uaWdodGx5L3N0ZC9hcmNoLyksCi0taXQgaXMgbGlrZWx5IHRoZSBpc3N1ZSBpcyB3 aXRoIExMVk0sIG9yIHRoaXMgY3JhdGUncyBpbnRlcmFjdGlvbiB3aXRoIGl0LgotLQotLVlvdSBz aG91bGQgZmlyc3Qgb3BlbiBhbiBpc3N1ZSAqKmluIHRoaXMgcmVwbyoqIHRvIGhlbHAgdXMgdHJh Y2sgdGhlIHByb2JsZW0sIGFuZCB3ZQotLXdpbGwgaGVscCBkZXRlcm1pbmUgd2hhdCBpcyB0aGUg ZXhhY3QgY2F1c2Ugb2YgdGhlIHByb2JsZW0uCi0tSWYgTExWTSBpcyBpbmRlZWQgdGhlIGNhdXNl LCB0aGUgaXNzdWUgd2lsbCBiZSByZXBvcnRlZCB1cHN0cmVhbSB0byB0aGUKLS1bTExWTSBidWd0 cmFja2VyXShodHRwczovL2J1Z3MubGx2bS5vcmcvKS4KLS0KLS0jIyBTdWJtaXR0aW5nIFB1bGwg UmVxdWVzdHMKLS0KLS1OZXcgY29kZSBpcyBzdWJtaXR0ZWQgdG8gdGhlIGNyYXRlIHVzaW5nIEdp dEh1YidzIFtwdWxsIHJlcXVlc3RdIG1lY2hhbmlzbS4KLS1Zb3Ugc2hvdWxkIGZpcnN0IGZvcmsg dGhpcyByZXBvc2l0b3J5LCBtYWtlIHlvdXIgY2hhbmdlcyAocHJlZmVyYWJseSBpbiBhIG5ldwot LWJyYW5jaCksIHRoZW4gdXNlIEdpdEh1YidzIHdlYiBVSSB0byBjcmVhdGUgYSBuZXcgUFIuCi0t Ci0tW3B1bGwgcmVxdWVzdF06IGh0dHBzOi8vaGVscC5naXRodWIuY29tL2FydGljbGVzL2Fib3V0 LXB1bGwtcmVxdWVzdHMvCi0tCi0tIyMjIEV4YW1wbGVzCi0tCi0tVGhlIGBleGFtcGxlc2AgZGly ZWN0b3J5IGNvbnRhaW5zIGNvZGUgc2hvd2Nhc2luZyBTSU1EIGNvZGUgd3JpdHRlbiB3aXRoIHRo aXMgY3JhdGUsCi0tdXN1YWxseSBpbiBjb21wYXJpc29uIHRvIHNjYWxhciBvciBJU1BDIGNvZGUu IElmIHlvdSBoYXZlIGEgcHJvamVjdCAvIGlkZWEgd2hpY2gKLS11c2VzIFNJTUQsIHdlJ2QgbG92 ZSB0byBhZGQgaXQgdG8gdGhlIGV4YW1wbGVzIGxpc3QuCi0tCi0tRXZlcnkgZXhhbXBsZSBzaG91 bGQgaW5jbHVkZSBhIHNtYWxsIGBSRUFETUVgLCBkZXNjcmliaW5nIHRoZSBleGFtcGxlIGNvZGUn cyBwdXJwb3NlLgotLUlmIHlvdXIgZXhhbXBsZSBjb3VsZCBwb3RlbnRpYWxseSB3b3JrIGFzIGEg YmVuY2htYXJrLCB0aGVuIGFkZCBhIGBiZW5jaG1hcmsuc2hgCi0tc2NyaXB0IHRvIGFsbG93IHJ1 bm5pbmcgdGhlIGV4YW1wbGUgYmVuY2htYXJrIGNvZGUgaW4gQ0kuIFNlZSBhbiBleGlzdGluZyBl eGFtcGxlJ3MKLS1bYGJlbmNobWFyay5zaGBdKGV4YW1wbGVzL2FvYmVuY2gvYmVuY2htYXJrLnNo KSBmb3IgYSBzYW1wbGUuCi0tCi0tRG9uJ3QgZm9yZ2V0IHRvIHVwZGF0ZSB0aGUgY3JhdGUncyB0 b3AtbGV2ZWwgYFJFQURNRWAgd2l0aCBhIGxpbmsgdG8geW91ciBleGFtcGxlLgotLQotLSMjIyBQ ZXJmIGd1aWRlCi0tCi0tVGhlIG9iamVjdGl2ZSBvZiB0aGUgW3BlcmZvcm1hbmNlIGd1aWRlXVtw ZXJmLWd1aWRlXSBpcyB0byBiZSBhIGNvbXByZWhlbnNpdmUKLS1yZXNvdXJjZSBkZXRhaWxpbmcg dGhlIHByb2Nlc3Mgb2Ygb3B0aW1pemluZyBSdXN0IGNvZGUgd2l0aCBTSU1EIHN1cHBvcnQuCi0t Ci0tSWYgeW91IGJlbGlldmUgYSBjZXJ0YWluIHNlY3Rpb24gY291bGQgYmUgcmV3b3JkZWQsIG9y IGlmIHlvdSBoYXZlIGFueSB0aXBzICYgdHJpY2tzCi0tcmVsYXRlZCB0byBTSU1EIHdoaWNoIHlv dSdkIGxpa2UgdG8gc2hhcmUsIHBsZWFzZSBvcGVuIGEgUFIuCi0tCi0tW21kQm9va10gaXMgdXNl ZCB0byBtYW5hZ2UgdGhlIGZvcm1hdHRpbmcgb2YgdGhlIGd1aWRlIGFzIGEgYm9vay4KLS0KLS1b cGVyZi1ndWlkZV06IGh0dHBzOi8vcnVzdC1sYW5nLW51cnNlcnkuZ2l0aHViLmlvL3BhY2tlZF9z aW1kL3BlcmYtZ3VpZGUvCi0tW21kQm9va106IGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmct bnVyc2VyeS9tZEJvb2sKLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1k L3BlcmYtZ3VpZGUvLmdpdGlnbm9yZSBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvcGVy Zi1ndWlkZS8uZ2l0aWdub3JlCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3Bl cmYtZ3VpZGUvLmdpdGlnbm9yZQkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAot KysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9wZXJmLWd1aWRlLy5naXRpZ25vcmUJ MTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xICswLDAgQEAKLS0vYm9v awotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlkZS9i b29rLnRvbWwgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUvYm9vay50 b21sCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUvYm9vay50 b21sCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0 eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUvYm9vay50b21sCTE5NzAtMDEtMDEgMDM6MDA6 MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSwxMiArMCwwIEBACi0tW2Jvb2tdCi0tYXV0aG9ycyA9 IFsiR29uemFsbyBCcml0byBHYWRlc2NoaSIsICJHYWJyaWVsIE1hamVyaSJdCi0tbXVsdGlsaW5n dWFsID0gZmFsc2UKLS1zcmMgPSAic3JjIgotLXRpdGxlID0gIlJ1c3QgU0lNRCBQZXJmb3JtYW5j ZSBHdWlkZSIKLS1kZXNjcmlwdGlvbiA9ICJUaGlzIGJvb2sgZGVzY3JpYmVzIGhvdyB0byB3cml0 ZSBwZXJmb3JtYW50IFNJTUQgY29kZSBpbiBSdXN0LiIKLS0KLS1bYnVpbGRdCi0tY3JlYXRlLW1p c3NpbmcgPSBmYWxzZQotLQotLVtvdXRwdXQuaHRtbF0KLS1hZGRpdGlvbmFsLWNzcyA9IFsiLi9z cmMvYXNjaWkuY3NzIl0KLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1k L3BlcmYtZ3VpZGUvc3JjL1NVTU1BUlkubWQgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1k L3BlcmYtZ3VpZGUvc3JjL1NVTU1BUlkubWQKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2Vk X3NpbWQvcGVyZi1ndWlkZS9zcmMvU1VNTUFSWS5tZAkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAw MDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9wZXJmLWd1aWRl L3NyYy9TVU1NQVJZLm1kCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAt MSwyMSArMCwwIEBACi0tIyBTdW1tYXJ5Ci0tCi0tW0ludHJvZHVjdGlvbl0oLi9pbnRyb2R1Y3Rp b24ubWQpCi0tCi0tLSBbRmxvYXRpbmctcG9pbnQgTWF0aF0oLi9mbG9hdC1tYXRoL2ZwLm1kKQot LSAgLSBbU2hvcnQtdmVjdG9yIE1hdGggTGlicmFyeV0oLi9mbG9hdC1tYXRoL3N2bWwubWQpCi0t ICAtIFtBcHByb3hpbWF0ZSBmdW5jdGlvbnNdKC4vZmxvYXQtbWF0aC9hcHByb3gubWQpCi0tICAt IFtGdXNlZCBtdWx0aXBseS1hY2N1bXVsYXRlXSguL2Zsb2F0LW1hdGgvZm1hLm1kKQotLQotLS0g W1RhcmdldCBmZWF0dXJlc10oLi90YXJnZXQtZmVhdHVyZS9mZWF0dXJlcy5tZCkKLS0gIC0gW1Vz aW5nIGBSVVNURkxBR1NgXSguL3RhcmdldC1mZWF0dXJlL3J1c3RmbGFncy5tZCkKLS0gIC0gW1Vz aW5nIHRoZSBgdGFyZ2V0X2ZlYXR1cmVgIGF0dHJpYnV0ZV0oLi90YXJnZXQtZmVhdHVyZS9hdHRy aWJ1dGUubWQpCi0tICAtIFtJbnRlcmFjdGlvbiB3aXRoIGlubGluaW5nXSguL3RhcmdldC1mZWF0 dXJlL2lubGluaW5nLm1kKQotLSAgLSBbRGV0ZWN0aW5nIGZlYXR1cmVzIGF0IHJ1bnRpbWVdKC4v dGFyZ2V0LWZlYXR1cmUvcnVudGltZS5tZCkKLS0KLS0tIFtCb3VuZHMgY2hlY2tpbmddKC4vYm91 bmRfY2hlY2tzLm1kKQotLS0gW1ZlcnRpY2FsIGFuZCBob3Jpem9udGFsIG9wZXJhdGlvbnNdKC4v dmVydC1ob3Itb3BzLm1kKQotLQotLS0gW1BlcmZvcm1hbmNlIHByb2ZpbGluZ10oLi9wcm9mL3By b2ZpbGluZy5tZCkKLS0gIC0gW1Byb2ZpbGluZyBvbiBMaW51eF0oLi9wcm9mL2xpbnV4Lm1kKQot LSAgLSBbVXNpbmcgbWFjaGluZSBjb2RlIGFuYWx5emVyc10oLi9wcm9mL21jYS5tZCkKLWRpZmYg LU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUvc3JjL2FzY2lp LmNzcyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlkZS9zcmMvYXNjaWku Y3NzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUvc3JjL2Fz Y2lpLmNzcwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRf cGFydHkvcnVzdC9wYWNrZWRfc2ltZC9wZXJmLWd1aWRlL3NyYy9hc2NpaS5jc3MJMTk3MC0wMS0w MSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDQgKzAsMCBAQAotLWNvZGUgewotLSAg ICAvKiAiU291cmNlIENvZGUgUHJvIiBicmVha3MgQVNDSUkgYXJ0ICovCi0tICAgIGZvbnQtZmFt aWx5OiBDb25zb2xhcywgIlVidW50dSBNb25vIiwgTWVubG8sICJEZWphVnUgU2FucyBNb25vIiwg bW9ub3NwYWNlOwotLX0KLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1k L3BlcmYtZ3VpZGUvc3JjL2JvdW5kX2NoZWNrcy5tZCBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2Vk X3NpbWQvcGVyZi1ndWlkZS9zcmMvYm91bmRfY2hlY2tzLm1kCi0tLS0gYS90aGlyZF9wYXJ0eS9y dXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUvc3JjL2JvdW5kX2NoZWNrcy5tZAkyMDI1LTA0LTIw IDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRf c2ltZC9wZXJmLWd1aWRlL3NyYy9ib3VuZF9jaGVja3MubWQJMTk3MC0wMS0wMSAwMzowMDowMC4w MDAwMDAwMDAgKzAzMDAKLUBAIC0xLDIyICswLDAgQEAKLS0jIEJvdW5kcyBjaGVja2luZwotLQot LVJlYWRpbmcgYW5kIHdyaXRpbmcgcGFja2VkIHZlY3RvcnMgdG8vZnJvbSBzbGljZXMgaXMgY2hl Y2tlZCBieSBkZWZhdWx0LgotLUluZGVwZW5kZW50bHkgb2YgdGhlIGNvbmZpZ3VyYXRpb24gb3B0 aW9ucyB1c2VkLCB0aGUgc2FmZSBmdW5jdGlvbnM6Ci0tCi0tKiBgU2ltZDxbVDsgTl0+Ojpmcm9t X3NsaWNlX2FsaWduZWQoJiBzWy4uXSlgCi0tKiBgU2ltZDxbVDsgTl0+Ojp3cml0ZV90b19zbGlj ZV9hbGlnbmVkKCZtdXQgc1suLl0pYAotLQotLWFsd2F5cyBjaGVjayB0aGF0OgotLQotLSogdGhl IHNsaWNlIGlzIGJpZyBlbm91Z2ggdG8gaG9sZCB0aGUgdmVjdG9yCi0tKiB0aGUgc2xpY2UgaXMg c3VpdGFibHkgYWxpZ25lZCB0byBwZXJmb3JtIGFuIGFsaWduZWQgbG9hZC9zdG9yZSBmb3IgYSBg U2ltZDxbVDsKLS0gIE5dPmAgKHRoaXMgYWxpZ25tZW50IGlzIG9mdGVuIG11Y2ggbGFyZ2VyIHRo YW4gdGhhdCBvZiBgVGApLgotLQotLVRoZXJlIGFyZSBgX3VuYWxpZ25lZGAgdmVyc2lvbnMgdGhh dCB1c2UgdW5hbGlnbmVkIGxvYWQgYW5kIHN0b3JlcywgYXMgd2VsbCBhcwotLWB1bnNhZmVgIGBf dW5jaGVja2VkYCB0aGF0IGRvIG5vdCBwZXJmb3JtIGFueSBjaGVja3MgaWZmIGBkZWJ1Zy1hc3Nl cnRpb25zID0KLS1mYWxzZWAgLyBgZGVidWcgPSBmYWxzZWAuIFRoYXQgaXMsIHRoZSBgX3VuY2hl Y2tlZGAgbWV0aG9kcyBkbyBzdGlsbCBhc3NlcnQgc2l6ZQotLWFuZCBhbGlnbm1lbnQgaW4gZGVi dWcgYnVpbGRzIGFuZCBjb3VsZCBhbHNvIGRvIHNvIGluIHJlbGVhc2UgYnVpbGRzIGRlcGVuZGlu ZwotLW9uIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMuCi0tCi0tVGhlc2UgYXNzZXJ0aW9ucyBk byBvZnRlbiBzaWduaWZpY2FudGx5IGltcGFjdCBwZXJmb3JtYW5jZSBhbmQgeW91IHNob3VsZCBi ZQotLWF3YXJlIG9mIHRoZW0uCi1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRf c2ltZC9wZXJmLWd1aWRlL3NyYy9mbG9hdC1tYXRoL2FwcHJveC5tZCBiL3RoaXJkX3BhcnR5L3J1 c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlkZS9zcmMvZmxvYXQtbWF0aC9hcHByb3gubWQKLS0tLSBh L3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlkZS9zcmMvZmxvYXQtbWF0aC9h cHByb3gubWQJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJk X3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlkZS9zcmMvZmxvYXQtbWF0aC9hcHByb3gu bWQJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDggKzAsMCBAQAot LSMgQXBwcm94aW1hdGUgZnVuY3Rpb25zCi0tCi0tPCEtLSBUT0RPOgotLQotLUV4cGxhaW4gdGhh dCB0aGV5IGV4aXN0cywgdGhhdCB0aGV5IGFyZSBvZnRlbiBfbXVjaF8gZmFzdGVyLCBob3cgdG8g dXNlIHRoZW0sCi0tdGhhdCBwZW9wbGUgc2hvdWxkIGNoZWNrIHdoZXRoZXIgdGhlIGVycm9yIGlz IGdvb2QgZW5vdWdoIGZvciB0aGVpcgotLWFwcGxpY2F0aW9ucy4gRXhwbGFpbiB0aGF0IHRoaXMg ZXJyb3IgaXMgY3VycmVudGx5IHVuc3RhYmxlIGFuZCBtaWdodCBjaGFuZ2UuCi0tLS0+Ci1kaWZm IC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9wZXJmLWd1aWRlL3NyYy9mbG9h dC1tYXRoL2ZtYS5tZCBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlkZS9z cmMvZmxvYXQtbWF0aC9mbWEubWQKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQv cGVyZi1ndWlkZS9zcmMvZmxvYXQtbWF0aC9mbWEubWQJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAw MDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlk ZS9zcmMvZmxvYXQtbWF0aC9mbWEubWQJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAz MDAKLUBAIC0xLDYgKzAsMCBAQAotLSMgRnVzZWQgTXVsdGlwbHkgQWRkCi0tCi0tPCEtLSBUT0RP OgotLUV4cGxhaW4gdGhhdCB0aGlzIGlzIGEgY29tcG91bmQgb3BlcmF0aW9uLCBpbmZpbml0ZSBw cmVjaXNpb24sIGRpZmZlcmVuY2UKLS1iZXR3ZWVuIGBtdWxfYWRkYCBhbmQgYG11bF9hZGRlYCwg dGhhdCBMTFZNIGNhbm5vdCBkbyB0aGlzIGJ5IGl0c2VsZiwgZXRjLgotLS0tPgotZGlmZiAtTnJi dSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlkZS9zcmMvZmxvYXQtbWF0 aC9mcC5tZCBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlkZS9zcmMvZmxv YXQtbWF0aC9mcC5tZAotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9wZXJmLWd1 aWRlL3NyYy9mbG9hdC1tYXRoL2ZwLm1kCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICsw MzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUvc3JjL2Zs b2F0LW1hdGgvZnAubWQJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0x LDMgKzAsMCBAQAotLSMgRmxvYXRpbmctcG9pbnQgbWF0aAotLQotLVRoaXMgY2hhcHRlciBjb250 YWlucyBpbmZvcm1hdGlvbiBwZXJ0YWluaW5nIHRvIHdvcmtpbmcgd2l0aCBmbG9hdGluZy1wb2lu dCBudW1iZXJzLgotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvcGVy Zi1ndWlkZS9zcmMvZmxvYXQtbWF0aC9zdm1sLm1kIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRf c2ltZC9wZXJmLWd1aWRlL3NyYy9mbG9hdC1tYXRoL3N2bWwubWQKLS0tLSBhL3RoaXJkX3BhcnR5 L3J1c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlkZS9zcmMvZmxvYXQtbWF0aC9zdm1sLm1kCTIwMjUt MDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3Bh Y2tlZF9zaW1kL3BlcmYtZ3VpZGUvc3JjL2Zsb2F0LW1hdGgvc3ZtbC5tZAkxOTcwLTAxLTAxIDAz OjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsNyArMCwwIEBACi0tIyBTaG9ydCBWZWN0b3Ig TWF0aCBMaWJyYXJ5Ci0tCi0tPCEtLSBUT0RPOgotLUV4cGxhaW4gaG93IGlzIHNob3J0LXZlY3Rv ciBtYXRoIHBlcmZvcm1lZCBieSBkZWZhdWx0IChqdXN0IHNjYWxhcml6ZWQgbGlibSBjYWxscyku Ci0tCi0tRXhwbGFpbiBob3cgdG8gZW5hYmxlIGBzbGVlZmAsIGV0Yy4KLS0tLT4KLWRpZmYgLU5y YnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUvc3JjL2ludHJvZHVj dGlvbi5tZCBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlkZS9zcmMvaW50 cm9kdWN0aW9uLm1kCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3Vp ZGUvc3JjL2ludHJvZHVjdGlvbi5tZAkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMw MAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9wZXJmLWd1aWRlL3NyYy9pbnRy b2R1Y3Rpb24ubWQJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDI2 ICswLDAgQEAKLS0jIEludHJvZHVjdGlvbgotLQotLSMjIFdoYXQgaXMgU0lNRAotLQotLTwhLS0g VE9ETzoKLS1kZXNjcmliZSB3aGF0IFNJTUQgaXMsIHdoaWNoIGFsZ29yaXRobXMgY2FuIGJlbmVm aXQgZnJvbSBpdCwKLS1naXZlIHVzYWdlIGV4YW1wbGVzCi0tLS0+Ci0tCi0tIyMgSGlzdG9yeSBv ZiBTSU1EIGluIFJ1c3QKLS0KLS08IS0tIFRPRE86Ci0tZGlzY3VzcyBoaXN0b3J5IG9mIHVuc3Rh YmxlIHN0ZDo6c2ltZCwKLS1zdGFiaWxpemF0aW9uIG9mIHN0ZDo6YXJjaCwgZXRjLgotLS0tPgot LQotLSMjIERpc2NvdmVyIHBhY2tlZF9zaW1kCi0tCi0tPCEtLSBUT0RPOiBkZXNjcmliZSBzY29w ZSBvZiB0aGlzIHByb2plY3QgLS0+Ci0tCi0tV3JpdGluZyBmYXN0IGFuZCBwb3J0YWJsZSBTSU1E IGFsZ29yaXRobXMgdXNpbmcgYHBhY2tlZF9zaW1kYCBpcywgdW5mb3J0dW5hdGVseSwKLS1ub3Qg dHJpdmlhbC4gVGhlcmUgYXJlIG1hbnkgcGl0ZmFscyB0aGF0IG9uZSBzaG91bGQgYmUgYXdhcmUg b2YsIGFuZCBzb21lIGlkaW9tcwotLXRoYXQgaGVscCBhdm9pZCB0aG9zZSBwaXRmYWxscy4KLS0K LS1UaGlzIGJvb2sgYXR0ZW1wdHMgdG8gZG9jdW1lbnQgdGhlc2UgYmVzdCBwcmFjdGljZXMgYW5k IHByb3ZpZGVzIHByYWN0aWNhbCBleGFtcGxlcwotLW9uIGhvdyB0byBhcHBseSB0aGUgdGlwcyB0 byBfeW91cl8gY29kZS4KLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1k L3BlcmYtZ3VpZGUvc3JjL3Byb2YvbGludXgubWQgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9z aW1kL3BlcmYtZ3VpZGUvc3JjL3Byb2YvbGludXgubWQKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3Qv cGFja2VkX3NpbWQvcGVyZi1ndWlkZS9zcmMvcHJvZi9saW51eC5tZAkyMDI1LTA0LTIwIDE5OjI4 OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9w ZXJmLWd1aWRlL3NyYy9wcm9mL2xpbnV4Lm1kCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAw ICswMzAwCi1AQCAtMSwxMDcgKzAsMCBAQAotLSMgUGVyZm9ybWFuY2UgcHJvZmlsaW5nIG9uIExp bnV4Ci0tCi0tIyMgVXNpbmcgYHBlcmZgCi0tCi0tW3BlcmZdKGh0dHBzOi8vcGVyZi53aWtpLmtl cm5lbC5vcmcvKSBpcyB0aGUgbW9zdCBwb3dlcmZ1bCBwZXJmb3JtYW5jZSBwcm9maWxlcgotLWZv ciBMaW51eCwgZmVhdHVyaW5nIHN1cHBvcnQgZm9yIHZhcmlvdXMgaGFyZHdhcmUgUGVyZm9ybWFu Y2UgTW9uaXRvcmluZyBVbml0cywKLS1hcyB3ZWxsIGFzIGludGVncmF0aW9uIHdpdGggdGhlIGtl cm5lbCdzIHBlcmZvcm1hbmNlIGV2ZW50cyBmcmFtZXdvcmsuCi0tCi0tV2Ugd2lsbCBvbmx5IGxv b2sgYXQgaG93IGNhbiB0aGUgYHBlcmZgIGNvbW1hbmQgY2FuIGJlIHVzZWQgdG8gcHJvZmlsZSBT SU1EIGNvZGUuCi0tRnVsbCBzeXN0ZW0gcHJvZmlsaW5nIGlzIG91dHNpZGUgb2YgdGhlIHNjb3Bl IG9mIHRoaXMgYm9vay4KLS0KLS0jIyMgUmVjb3JkaW5nCi0tCi0tVGhlIGZpcnN0IHN0ZXAgaXMg dG8gcmVjb3JkIGEgcHJvZ3JhbSdzIGV4ZWN1dGlvbiBkdXJpbmcgYW4gYXZlcmFnZSB3b3JrbG9h ZC4KLS1JdCBoZWxwcyBpZiB5b3UgY2FuIGlzb2xhdGUgdGhlIHBhcnRzIG9mIHlvdXIgcHJvZ3Jh bSB3aGljaCBoYXZlIHBlcmZvcm1hbmNlCi0taXNzdWVzLCBhbmQgc2V0IHVwIGEgYmVuY2htYXJr IHdoaWNoIGNhbiBiZSBlYXNpbHkgKHJlKXJ1bi4KLS0KLS1CdWlsZCB0aGUgYmVuY2htYXJrIGJp bmFyeSBpbiByZWxlYXNlIG1vZGUsIGFmdGVyIGhhdmluZyBlbmFibGVkIGRlYnVnIGluZm86Ci0t Ci0tYGBgc2gKLS0kIGNhcmdvIGJ1aWxkIC0tcmVsZWFzZQotLUZpbmlzaGVkIHJlbGVhc2UgW29w dGltaXplZCArIGRlYnVnaW5mb10gdGFyZ2V0KHMpIGluIDAuMDJzCi0tYGBgCi0tCi0tVGhlbiB1 c2UgdGhlIGBwZXJmIHJlY29yZGAgc3ViY29tbWFuZDoKLS0KLS1gYGBzaAotLSQgcGVyZiByZWNv cmQgLS1jYWxsLWdyYXBoPWR3YXJmIC4vdGFyZ2V0L3JlbGVhc2UvbXktcHJvZ3JhbQotLVsgcGVy ZiByZWNvcmQ6IFdva2VuIHVwIDEwIHRpbWVzIHRvIHdyaXRlIGRhdGEgXQotLVsgcGVyZiByZWNv cmQ6IENhcHR1cmVkIGFuZCB3cm90ZSAyLDM1NiBNQiBwZXJmLmRhdGEgKDI5MiBzYW1wbGVzKSBd Ci0tYGBgCi0tCi0tSW5zdGVhZCBvZiB1c2luZyBgLS1jYWxsLWdyYXBoPWR3YXJmYCwgd2hpY2gg Y2FuIGJlY29tZSBwcmV0dHkgc2xvdywgeW91IGNhbiB1c2UKLS1gLS1jYWxsLWdyYXBoPWxicmAg aWYgeW91IGhhdmUgYSBwcm9jZXNzb3Igd2l0aCBzdXBwb3J0IGZvciBMYXN0IEJyYW5jaCBSZWNv cmQKLS0oaS5lLiBJbnRlbCBIYXN3ZWxsIGFuZCBuZXdlcikuCi0tCi0tYHBlcmZgIHdpbGwsIGJ5 IGRlZmF1bHQsIHJlY29yZCB0aGUgY291bnQgb2YgQ1BVIGN5Y2xlcyBpdCB0YWtlcyB0byBleGVj dXRlCi0tdmFyaW91cyBwYXJ0cyBvZiB5b3VyIHByb2dyYW0uIFlvdSBjYW4gdXNlIHRoZSBgLWVg IGNvbW1hbmQgbGluZSBvcHRpb24KLS10byBlbmFibGUgb3RoZXIgcGVyZm9ybWFuY2UgZXZlbnRz LCBzdWNoIGFzIGBjYWNoZS1taXNzZXNgLiBVc2UgYHBlcmYgbGlzdGAKLS10byBnZXQgYSBsaXN0 IG9mIGFsbCBoYXJkd2FyZSBjb3VudGVycyBzdXBwb3J0ZWQgYnkgeW91ciBDUFUuCi0tCi0tIyMj IFZpZXdpbmcgdGhlIHJlcG9ydAotLQotLVRoZSBuZXh0IHN0ZXAgaXMgZ2V0dGluZyBhIGJpcmQn cyBleWUgdmlldyBvZiB0aGUgcHJvZ3JhbSdzIGV4ZWN1dGlvbi4KLS1gcGVyZmAgcHJvdmlkZXMg YSBgbmN1cnNlc2AtYmFzZWQgaW50ZXJmYWNlIHdoaWNoIHdpbGwgZ2V0IHlvdSBzdGFydGVkLgot LQotLVVzZSBgcGVyZiByZXBvcnRgIHRvIG9wZW4gYSB2aXN1YWxpemF0aW9uIG9mIHlvdXIgcHJv Z3JhbSdzIHBlcmZvcm1hbmNlOgotLQotLWBgYHNoCi0tcGVyZiByZXBvcnQgLS1oaWVyYXJjaHkg LU0gaW50ZWwKLS1gYGAKLS0KLS1gLS1oaWVyYXJjaHlgIHdpbGwgZGlzcGxheSBhIHRyZWUtbGlr ZSBzdHJ1Y3R1cmUgb2Ygd2hlcmUgeW91ciBwcm9ncmFtIHNwZW50Ci0tbW9zdCBvZiBpdHMgdGlt ZS4gYC1NIGludGVsYCBlbmFibGVzIGRpc2Fzc2VtYmx5IG91dHB1dCB3aXRoIEludGVsIHN5bnRh eCwgd2hpY2gKLS1pcyBzdWJqZWN0aXZlbHkgbW9yZSByZWFkYWJsZSB0aGFuIHRoZSBkZWZhdWx0 IEFUJlQgc3ludGF4LgotLQotLUhlcmUgaXMgdGhlIG91dHB1dCBmcm9tIHByb2ZpbGluZyB0aGUg YG5ib2R5YCBiZW5jaG1hcms6Ci0tCi0tYGBgCi0tLSAxMDAsMDAlIG5ib2R5Ci0tICAtIDk0LDE4 JSBuYm9keQotLSAgICArIDkzLDQ4JSBbLl0gbmJvZHlfbGliOjpzaW1kOjphZHZhbmNlCi0tICAg ICsgMCw3MCUgWy5dIG5ib2R5X2xpYjo6cnVuCi0tICAgICsgNSwwNiUgbGliYy0yLjI4LnNvCi0t YGBgCi0tCi0tSWYgeW91IG1vdmUgd2l0aCB0aGUgYXJyb3cga2V5cyB0byBhbnkgbm9kZSBpbiB0 aGUgdHJlZSwgeW91IGNhbiB0aGUgcHJlc3MgYGFgCi0tdG8gaGF2ZSBgcGVyZmAgX2Fubm90YXRl XyB0aGF0IG5vZGUuIFRoaXMgbWVhbnMgaXQgd2lsbDoKLS0KLS0tIGRpc2Fzc2VtYmxlIHRoZSBm dW5jdGlvbgotLQotLS0gYXNzb2NpYXRlIGV2ZXJ5IGluc3RydWN0aW9uIHdpdGggdGhlIHBlcmNl bnRhZ2Ugb2YgdGltZSB3aGljaCB3YXMgc3BlbnQgZXhlY3V0aW5nIGl0Ci0tCi0tLSBpbnRlcmxl YXZlcyB0aGUgZGlzYXNzZW1ibHkgd2l0aCB0aGUgc291cmNlIGNvZGUsCi0tICBhc3N1bWluZyBp dCBmb3VuZCB0aGUgZGVidWcgc3ltYm9scwotLSAgKHlvdSBjYW4gdXNlIGBzYCB0byB0b2dnbGUg dGhpcyBiZWhhdmlvdXIpCi0tCi0tYHBlcmZgIHdpbGwsIGJ5IGRlZmF1bHQsIG9wZW4gdGhlIGlu c3RydWN0aW9uIHdoaWNoIGl0IGlkZW50aWZpZWQgYXMgYmVpbmcgdGhlCi0taG90dGVzdCBzcG90 IGluIHRoZSBmdW5jdGlvbjoKLS0KLS1gYGAKLS0wLDc2ICDilIIgbW92YXBkIHhtbTIseG1tMAot LTAsMzggIOKUgiBtb3ZobHBzIHhtbTIseG1tMAotLSAgICAgIOKUgiBhZGRwZCAgeG1tMix4bW0w Ci0tICAgICAg4pSCIHVucGNrbHBkIHhtbTEseG1tMgotLTEyLDUwIOKUgiBzcXJ0cGQgeG1tMCx4 bW0xCi0tMSw1MiAg4pSCIG11bHBkICB4bW0wLHhtbTEKLS1gYGAKLS0KLS1JbiB0aGlzIGNhc2Us IGBzcXJ0cGRgIHdpbGwgYmUgaGlnaGxpZ2h0ZWQgaW4gcmVkLCBzaW5jZSB0aGF0J3MgdGhlIGlu c3RydWN0aW9uCi0td2hpY2ggdGhlIENQVSBzcGVuZHMgbW9zdCBvZiBpdHMgdGltZSBleGVjdXRp bmcuCi0tCi0tIyMgVXNpbmcgVmFsZ3JpbmQKLS0KLS1WYWxncmluZCBpcyBhIHNldCBvZiB0b29s cyB3aGljaCBpbml0aWFsbHkgaGVscGVkIEMvQysrIHByb2dyYW1tZXJzIGZpbmQgdW5zYWZlCi0t bWVtb3J5IGFjY2Vzc2VzIGluIHRoZWlyIGNvZGUuIE5vd2FkYXlzIHRoZSBwcm9qZWN0IGFsc28g aGFzCi0tCi0tLSBhIGhlYXAgcHJvZmlsZXIgY2FsbGVkIGBtYXNzaWZgCi0tCi0tLSBhIGNhY2hl IHV0aWxpemF0aW9uIHByb2ZpbGVyIGNhbGxlZCBgY2FjaGVncmluZGAKLS0KLS0tIGEgY2FsbC1n cmFwaCBwZXJmb3JtYW5jZSBwcm9maWxlciBjYWxsZWQgYGNhbGxncmluZGAKLS0KLS08IS0tCi0t VE9ETzogZXhwbGFpbiB2YWxncmluZCdzIGR5bmFtaWMgYmluYXJ5IHRyYW5zbGF0aW9uLCB3YXJu IGFib3V0IG1hc3NpdmUKLS1zbG93ZG93biwgdGFsayBhYm91dCBga2NhY2hlZ3JpbmRgIGZvciBh IEdVSQotLS0tPgotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvcGVy Zi1ndWlkZS9zcmMvcHJvZi9tY2EubWQgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3Bl cmYtZ3VpZGUvc3JjL3Byb2YvbWNhLm1kCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9z aW1kL3BlcmYtZ3VpZGUvc3JjL3Byb2YvbWNhLm1kCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAw MDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUv c3JjL3Byb2YvbWNhLm1kCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAt MSwxMDAgKzAsMCBAQAotLSMgTWFjaGluZSBjb2RlIGFuYWx5c2lzIHRvb2xzCi0tCi0tIyMgVGhl IG1pY3JvYXJjaGl0ZWN0dXJlIG9mIG1vZGVybiBDUFVzCi0tCi0tV2hpbGUgeW91IG1pZ2h0IGhh dmUgaGVhcmQgb2YgSW5zdHJ1Y3Rpb24gU2V0IEFyY2hpdGVjdHVyZXMsIHN1Y2ggYXMgYHg4NmAg b3IKLS1gYXJtYCBvciBgbWlwc2AsIHRoZSB0ZXJtIF9taWNyb2FyY2hpdGVjdHVyZV8gKGFsc28g d3JpdHRlbiBoZXJlIGFzIF/CtS1hcmNoXyksCi0tcmVmZXJzIHRvIHRoZSBpbnRlcm5hbCBkZXRh aWxzIG9mIGFuIGFjdHVhbCBmYW1pbHkgb2YgQ1BVcywgc3VjaCBhcyBJbnRlbCdzCi0tX0hhc3dl bGxfIG9yIEFNRCdzIF9KYWd1YXJfLgotLQotLVJlcGxhY2luZyBzY2FsYXIgY29kZSB3aXRoIFNJ TUQgY29kZSB3aWxsIGltcHJvdmUgcGVyZm9ybWFuY2Ugb24gYWxsIENQVXMKLS1zdXBwb3J0aW5n IHRoZSByZXF1aXJlZCB2ZWN0b3IgZXh0ZW5zaW9ucy4KLS1Ib3dldmVyLCBkdWUgdG8gbWljcm9h cmNoaXRlY3R1cmFsIGRpZmZlcmVuY2VzLCB0aGUgYWN0dWFsIHNwZWVkLXVwIGF0Ci0tcnVudGlt ZSBtaWdodCB2YXJ5LgotLQotLSoqRXhhbXBsZSoqOiBhIHNpbXBsZSBleGFtcGxlIGFyaXNlcyB3 aGVuIG9wdGltaXppbmcgZm9yIEFNRCBLOCBDUFVzLgotLVRoZSBhc3NlbWJseSBnZW5lcmF0ZWQg Zm9yIGFuIGVtcHR5IGZ1bmN0aW9uIHNob3VsZCBsb29rIGxpa2UgdGhpczoKLS0KLS1gYGBhc20K LS1ub3AKLS1yZXQKLS1gYGAKLS0KLS1UaGUgYG5vcGAgaXMgdXNlZCB0byBhbGlnbiB0aGUgYHJl dGAgaW5zdHJ1Y3Rpb24gZm9yIGJldHRlciBwZXJmb3JtYW5jZS4KLS1Ib3dldmVyLCB0aGUgY29t cGlsZXIgd2lsbCBhY3R1YWxseSBnZW5lcmF0ZWQgdGhlIGZvbGxvd2luZyBjb2RlOgotLQotLWBg YGFzbQotLXJlcHogcmV0Ci0tYGBgCi0tCi0tVGhlIGByZXB6YCBpbnN0cnVjdGlvbiB3aWxsIHJl cGVhdCB0aGUgZm9sbG93aW5nIGluc3RydWN0aW9uIHVudGlsIGEgY2VydGFpbgotLWNvbmRpdGlv bi4gT2YgY291cnNlLCBpbiB0aGlzIHNpdHVhdGlvbiwgdGhlIGZ1bmN0aW9uIHdpbGwgc2ltcGx5 IGltbWVkaWF0ZWx5Ci0tcmV0dXJuLCBhbmQgdGhlIGByZXRgIGluc3RydWN0aW9uIGlzIHN0aWxs IGFsaWduZWQuCi0tSG93ZXZlciwgQU1EIEs4J3MgYnJhbmNoIHByZWRpY3RvciBwZXJmb3JtcyBi ZXR0ZXIgd2l0aCB0aGUgbGF0dGVyIGNvZGUuCi0tCi0tRm9yIHRob3NlIGxvb2tpbmcgdG8gYWJz b2x1dGVseSBtYXhpbWl6ZSBwZXJmb3JtYW5jZSBmb3IgYSBjZXJ0YWluIHRhcmdldCDCtS1hcmNo LAotLXlvdSB3aWxsIGhhdmUgdG8gcmVhZCBzb21lIENQVSBtYW51YWxzLCBvciBhc2sgdGhlIGNv bXBpbGVyIHRvIGRvIGl0IGZvciB5b3UKLS13aXRoIGAtQyB0YXJnZXQtY3B1YC4KLS0KLS0jIyMg U3VtbWFyeSBvZiBDUFUgaW50ZXJuYWxzCi0tCi0tTW9kZXJuIHByb2Nlc3NvcnMgYXJlIGFibGUg dG8gZXhlY3V0ZSBpbnN0cnVjdGlvbnMgb3V0LW9mLW9yZGVyIGZvciBiZXR0ZXIgcGVyZm9ybWFu Y2UsCi0tYnkgdXRpbGl6aW5nIHRyaWNrcyBzdWNoIGFzIFticmFuY2ggcHJlZGljdGlvbl0sIFtp bnN0cnVjdGlvbiBwaXBlbGluaW5nXSwKLS1vciBbc3VwZXJzY2FsYXIgZXhlY3V0aW9uXS4KLS0K LS1bYnJhbmNoIHByZWRpY3Rpb25dOiBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9CcmFu Y2hfcHJlZGljdG9yCi0tW2luc3RydWN0aW9uIHBpcGVsaW5pbmddOiBodHRwczovL2VuLndpa2lw ZWRpYS5vcmcvd2lraS9JbnN0cnVjdGlvbl9waXBlbGluaW5nCi0tW3N1cGVyc2NhbGFyIGV4ZWN1 dGlvbl06IGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL1N1cGVyc2NhbGFyX3Byb2Nlc3Nv cgotLQotLVNJTUQgaW5zdHJ1Y3Rpb25zIGFyZSBhbHNvIHN1YmplY3QgdG8gdGhlc2Ugb3B0aW1p emF0aW9ucywgbWVhbmluZyBpdCBjYW4gZ2V0IHByZXR0eQotLWRpZmZpY3VsdCB0byBkZXRlcm1p bmUgd2hlcmUgdGhlIHNsb3dkb3duIGhhcHBlbnMuCi0tRm9yIGV4YW1wbGUsIGlmIHRoZSBwcm9m aWxlciByZXBvcnRzIGEgc3RvcmUgb3BlcmF0aW9uIGlzIHNsb3csIG9uZSBvZiB0d28gdGhpbmdz Ci0tY291bGQgYmUgaGFwcGVuaW5nOgotLQotLS0gdGhlIHN0b3JlIGlzIGxpbWl0ZWQgYnkgdGhl IENQVSdzIG1lbW9yeSBiYW5kd2lkdGgsIHdoaWNoIGlzIGFjdHVhbGx5IGFuIGlkZWFsCi0tICBz Y2VuYXJpbywgYWxsIHRoaW5ncyBjb25zaWRlcmVkOwotLQotLS0gbWVtb3J5IGJhbmR3aWR0aCBp cyBub3doZXJlIG5lYXIgaXRzIHBlYWssIGJ1dCB0aGUgdmFsdWUgdG8gYmUgc3RvcmVkIGlzIGF0 IHRoZQotLSAgZW5kIG9mIGEgbG9uZyBjaGFpbiBvZiBvcGVyYXRpb25zLCBhbmQgdGhpcyBzdG9y ZSBpcyB3aGVyZSB0aGUgcHJvZmlsZXIKLS0gIGVuY291bnRlcmVkIHRoZSBwaXBlbGluZSBzdGFs bDsKLS0KLS1TaW5jZSBtb3N0IHByb2ZpbGVycyBhcmUgc2ltcGxlIHRvb2xzIHdoaWNoIGRvbid0 IHVuZGVyc3RhbmQgdGhlIHN1YnRsZXRpZXMgb2YKLS1pbnN0cnVjdGlvbiBzY2hlZHVsaW5nLCB5 b3UKLS0KLS0jIyBBbmFseXppbmcgdGhlIG1hY2hpbmUgY29kZQotLQotLUNlcnRhaW4gdG9vbHMg aGF2ZSBrbm93bGVkZ2Ugb2YgaW50ZXJuYWwgQ1BVIG1pY3JvYXJjaGl0ZWN0dXJlLCBpLmUuIHRo ZXkga25vdwotLQotLS0gaG93IG1hbnkgcGh5c2ljYWwgW3JlZ2lzdGVyIGZpbGVzXSBhIENQVSBh Y3R1YWxseSBoYXMKLS0KLS0tIHdoYXQgaXMgdGhlIGxhdGVuY3kgLyB0aHJvdWdodHB1dCBvZiBh biBpbnN0cnVjdGlvbgotLQotLS0gd2hhdCBbwrUtb3BzXSBhcmUgZ2VuZXJhdGVkIGZvciBhIHNl dCBvZiBpbnN0cnVjdGlvbnMKLS0KLS1hbmQgbWFueSBvdGhlciBhcmNoaXRlY3R1cmFsIGRldGFp bHMuCi0tCi0tW3JlZ2lzdGVyIGZpbGVzXTogaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kv UmVnaXN0ZXJfZmlsZQotLVvCtS1vcHNdOiBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9N aWNyby1vcGVyYXRpb24KLS0KLS1UaGVzZSB0b29scyBhcmUgdGhlcmVmb3JlIGFibGUgdG8gcHJv dmlkZSBhY2N1cmF0ZSBpbmZvcm1hdGlvbiBhcyB0byB3aHkgc29tZQotLWluc3RydWN0aW9ucyBh cmUgaW5lZmZpY2llbnQsIGFuZCB3aGVyZSB0aGUgYm90dGxlbmVjayBpcy4KLS0KLS1UaGUgZGlz YWR2YW50YWdlIGlzIHRoYXQgdGhlIG91dHB1dCBvZiB0aGVzZSB0b29scyByZXF1aXJlcyBhZHZh bmNlZCBrbm93bGVkZ2UKLS1vZiB0aGUgdGFyZ2V0IGFyY2hpdGVjdHVyZSB0byB1bmRlcnN0YW5k LCBpLmUuIHRoZXkgKipjYW5ub3QqKiBwb2ludCBvdXQgd2hhdAotLXRoZSBjYXVzZSBvZiB0aGUg aXNzdWUgaXMgZXhwbGljaXRseS4KLS0KLS0jIyBJbnRlbCdzIEFyY2hpdGVjdHVyZSBDb2RlIEFu YWx5emVyIChJQUNBKQotLQotLVtJQUNBXSBpcyBhIGZyZWUgdG9vbCBvZmZlcmVkIGJ5IEludGVs IGZvciBhbmFseXppbmcgdGhlIHBlcmZvcm1hbmNlIG9mIHZhcmlvdXMKLS1jb21wdXRhdGlvbmFs IGtlcm5lbHMuCi0tCi0tQmVpbmcgYSBwcm9wcmlldGFyeSwgY2xvc2VkIHNvdXJjZSB0b29sLCBp dCBfb25seV8gc3VwcG9ydHMgSW50ZWwncyDCtS1hcmNoZXMuCi0tCi0tW0lBQ0FdOiBodHRwczov L3NvZnR3YXJlLmludGVsLmNvbS9lbi11cy9hcnRpY2xlcy9pbnRlbC1hcmNoaXRlY3R1cmUtY29k ZS1hbmFseXplcgotLQotLSMjIGxsdm0tbWNhCi0tCi0tPCEtLQotLVRPRE86IG9uY2UgTExWTSA3 IGdldHMgcmVsZWFzZWQsIHdyaXRlIGEgY2hhcHRlciBvbiB1c2luZyBsbHZtLW1jYQotLXdpdGgg U0lNRCBkaXNhc3NlbWJseS4KLS0tLT4KLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3Bh Y2tlZF9zaW1kL3BlcmYtZ3VpZGUvc3JjL3Byb2YvcHJvZmlsaW5nLm1kIGIvdGhpcmRfcGFydHkv cnVzdC9wYWNrZWRfc2ltZC9wZXJmLWd1aWRlL3NyYy9wcm9mL3Byb2ZpbGluZy5tZAotLS0tIGEv dGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9wZXJmLWd1aWRlL3NyYy9wcm9mL3Byb2ZpbGlu Zy5tZAkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFy dHkvcnVzdC9wYWNrZWRfc2ltZC9wZXJmLWd1aWRlL3NyYy9wcm9mL3Byb2ZpbGluZy5tZAkxOTcw LTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsMTQgKzAsMCBAQAotLSMgUGVy Zm9ybWFuY2UgcHJvZmlsaW5nCi0tCi0tV2hpbGUgdGhlIHJlc3Qgb2YgdGhlIGJvb2sgcHJvdmlk ZXMgcHJhY3RpY2FsIGFkdmljZSBvbiBob3cgdG8gaW1wcm92ZSB0aGUgcGVyZm9ybWFuY2UKLS1v ZiBTSU1EIGNvZGUsIHRoaXMgY2hhcHRlciBpcyBkZWRpY2F0ZWQgdG8gWyoqcGVyZm9ybWFuY2Ug cHJvZmlsaW5nKipdW3Byb2ZpbGluZ10uCi0tUHJvZmlsaW5nIGNvbnNpc3RzIG9mIHJlY29yZGlu ZyBhIHByb2dyYW0ncyBleGVjdXRpb24gaW4gb3JkZXIgdG8gaWRlbnRpZnkgcHJvZ3JhbQotLWhv dHNwb3RzLgotLQotLSoqSW1wb3J0YW50Kio6IG1vc3QgcHJvZmlsZXJzIHJlcXVpcmUgZGVidWcg aW5mb3JtYXRpb24gaW4gb3JkZXIgdG8gYWNjdXJhdGVseQotLWxpbmsgdGhlIHByb2dyYW0gaG90 c3BvdHMgYmFjayB0byB0aGUgY29ycmVzcG9uZGluZyBzb3VyY2UgY29kZSBsaW5lcy4gUnVzdCB3 aWxsCi0tZGlzYWJsZSBkZWJ1ZyBpbmZvIGdlbmVyYXRpb24gYnkgZGVmYXVsdCBmb3Igb3B0aW1p emVkIGJ1aWxkcywgYnV0IHlvdSBjYW4gY2hhbmdlCi0tdGhhdCBbaW4geW91ciBgQ2FyZ28udG9t bGBdW2NhcmdvLXJlZl0uCi0tCi0tW3Byb2ZpbGluZ106IGh0dHBzOi8vZW4ud2lraXBlZGlhLm9y Zy93aWtpL1Byb2ZpbGluZ18oY29tcHV0ZXJfcHJvZ3JhbW1pbmcpCi0tW2NhcmdvLXJlZl06IGh0 dHBzOi8vZG9jLnJ1c3QtbGFuZy5vcmcvY2FyZ28vcmVmZXJlbmNlL21hbmlmZXN0Lmh0bWwjdGhl LXByb2ZpbGUtc2VjdGlvbnMKLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9z aW1kL3BlcmYtZ3VpZGUvc3JjL3RhcmdldC1mZWF0dXJlL2F0dHJpYnV0ZS5tZCBiL3RoaXJkX3Bh cnR5L3J1c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlkZS9zcmMvdGFyZ2V0LWZlYXR1cmUvYXR0cmli dXRlLm1kCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUvc3Jj L3RhcmdldC1mZWF0dXJlL2F0dHJpYnV0ZS5tZAkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAw MCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9wZXJmLWd1aWRlL3Ny Yy90YXJnZXQtZmVhdHVyZS9hdHRyaWJ1dGUubWQJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAw MDAgKzAzMDAKLUBAIC0xLDUgKzAsMCBAQAotLSMgVGhlIGB0YXJnZXRfZmVhdHVyZWAgYXR0cmli dXRlCi0tCi0tPCEtLSBUT0RPOgotLUV4cGxhaW4gdGhlIGAjW3RhcmdldF9mZWF0dXJlXWAgYXR0 cmlidXRlCi0tLS0+Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9w ZXJmLWd1aWRlL3NyYy90YXJnZXQtZmVhdHVyZS9mZWF0dXJlcy5tZCBiL3RoaXJkX3BhcnR5L3J1 c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlkZS9zcmMvdGFyZ2V0LWZlYXR1cmUvZmVhdHVyZXMubWQK LS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlkZS9zcmMvdGFyZ2V0 LWZlYXR1cmUvZmVhdHVyZXMubWQJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAK LSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlkZS9zcmMvdGFyZ2V0 LWZlYXR1cmUvZmVhdHVyZXMubWQJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAK LUBAIC0xLDEzICswLDAgQEAKLS0jIEVuYWJsaW5nIHRhcmdldCBmZWF0dXJlcwotLQotLU5vdCBh bGwgcHJvY2Vzc29ycyBvZiBhIGNlcnRhaW4gYXJjaGl0ZWN0dXJlIHdpbGwgaGF2ZSBTSU1EIHBy b2Nlc3NpbmcgdW5pdHMsCi0tYW5kIHVzaW5nIGEgU0lNRCBpbnN0cnVjdGlvbiB3aGljaCBpcyBu b3Qgc3VwcG9ydGVkIHdpbGwgdHJpZ2dlciB1bmRlZmluZWQgYmVoYXZpb3IuCi0tCi0tVG8gYWxs b3cgYnVpbGRpbmcgc2FmZSwgcG9ydGFibGUgcHJvZ3JhbXMsIHRoZSBSdXN0IGNvbXBpbGVyIHdp bGwgKipub3QqKiwgYnkgZGVmYXVsdCwKLS1nZW5lcmF0ZSBhbnkgc29ydCBvZiB2ZWN0b3IgaW5z dHJ1Y3Rpb25zLCB1bmxlc3MgaXQgY2FuIHN0YXRpY2FsbHkgZGV0ZXJtaW5lCi0tdGhleSBhcmUg c3VwcG9ydGVkLiBGb3IgZXhhbXBsZSwgb24gQU1ENjQsIFNTRTIgc3VwcG9ydCBpcyBhcmNoaXRl Y3R1cmFsbHkgZ3VhcmFudGVlZC4KLS1UaGUgYHg4Nl82NC1hcHBsZS1kYXJ3aW5gIHRhcmdldCBl bmFibGVzIHVwIHRvIFNTU0UzLiBUaGUgZ2V0IGEgZGVmaW50aXZlIGxpc3Qgb2YKLS13aGljaCBm ZWF0dXJlcyBhcmUgZW5hYmxlZCBieSBkZWZhdWx0IG9uIHZhcmlvdXMgcGxhdGZvcm1zLCByZWZl ciB0byB0aGUgdGFyZ2V0Ci0tc3BlY2lmaWNhdGlvbnMgW2luIHRoZSBjb21waWxlcidzIHNvdXJj ZSBjb2RlXVt0YXJnZXRzXS4KLS0KLS1bdGFyZ2V0c106IGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0 LWxhbmcvcnVzdC90cmVlL21hc3Rlci9zcmMvbGlicnVzdGNfdGFyZ2V0L3NwZWMKLWRpZmYgLU5y YnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUvc3JjL3RhcmdldC1m ZWF0dXJlL2lubGluaW5nLm1kIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9wZXJmLWd1 aWRlL3NyYy90YXJnZXQtZmVhdHVyZS9pbmxpbmluZy5tZAotLS0tIGEvdGhpcmRfcGFydHkvcnVz dC9wYWNrZWRfc2ltZC9wZXJmLWd1aWRlL3NyYy90YXJnZXQtZmVhdHVyZS9pbmxpbmluZy5tZAky MDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVz dC9wYWNrZWRfc2ltZC9wZXJmLWd1aWRlL3NyYy90YXJnZXQtZmVhdHVyZS9pbmxpbmluZy5tZAkx OTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsNSArMCwwIEBACi0tIyBJ bmxpbmluZwotLQotLTwhLS0gVE9ETzoKLS1FeHBsYWluIGhvdyB0aGUgYCNbdGFyZ2V0X2ZlYXR1 cmVdYCBhdHRyaWJ1dGUgaW50ZXJhY3RzIHdpdGggaW5saW5pbmcKLS0tLT4KLWRpZmYgLU5yYnUg YS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUvc3JjL3RhcmdldC1mZWF0 dXJlL3ByYWN0aWNlLm1kIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9wZXJmLWd1aWRl L3NyYy90YXJnZXQtZmVhdHVyZS9wcmFjdGljZS5tZAotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9w YWNrZWRfc2ltZC9wZXJmLWd1aWRlL3NyYy90YXJnZXQtZmVhdHVyZS9wcmFjdGljZS5tZAkyMDI1 LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9w YWNrZWRfc2ltZC9wZXJmLWd1aWRlL3NyYy90YXJnZXQtZmVhdHVyZS9wcmFjdGljZS5tZAkxOTcw LTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsMzEgKzAsMCBAQAotLSMgVGFy Z2V0IGZlYXR1cmVzIGluIHByYWN0aWNlCi0tCi0tVXNpbmcgYFJVU1RGTEFHU2Agd2lsbCBhbGxv dyB0aGUgY3JhdGUgYmVpbmcgY29tcGlsZWQsIGFzIHdlbGwgYXMgYWxsIGl0cwotLXRyYW5zaXRp dmUgZGVwZW5kZW5jaWVzIHRvIHVzZSBjZXJ0YWluIHRhcmdldCBmZWF0dXJlcy4KLS0KLS1BIHRl aG5pcXVlIHVzZWQgdG8gYXZvaWQgdW5kZWZpbmVkIGJlaGF2aW9yIGF0IHJ1bnRpbWUgaXMgdG8g Y29tcGlsZSBhbmQKLS1zaGlwIG11bHRpcGxlIGJpbmFyaWVzLCBlYWNoIGNvbXBpbGVkIHdpdGgg YSBjZXJ0YWluIHNldCBvZiBmZWF0dXJlcy4KLS1UaGlzIG1pZ2h0IG5vdCBiZSBmZWFzaWJsZSBp biBzb21lIGNhc2VzLCBhbmQgY2FuIHF1aWNrbHkgZ2V0IG91dCBvZiBoYW5kCi0tYXMgbW9yZSBh bmQgbW9yZSB2ZWN0b3IgZXh0ZW5zaW9ucyBhcmUgYWRkZWQgdG8gYW4gYXJjaGl0ZWN0dXJlLgot LQotLVJ1c3QgY2FuIGJlIG1vcmUgZmxleGlibGU6IHlvdSBjYW4gYnVpbGQgYSBzaW5nbGUgYmlu YXJ5L2xpYnJhcnkgd2hpY2ggYXV0b21hdGljYWxseQotLXBpY2tzIHRoZSBiZXN0IHN1cHBvcnRl ZCB2ZWN0b3IgaW5zdHJ1Y3Rpb25zIGRlcGVuZGluZyBvbiB0aGUgaG9zdCBtYWNoaW5lLgotLVRo ZSB0cmljayBjb25zaXN0cyBvZiBtb25vbW9ycGhpemluZyBwYXJ0cyBvZiB0aGUgY29kZSBkdXJp bmcgYnVpbGRpbmcsIGFuZCB0aGVuCi0tdXNpbmcgcnVuLXRpbWUgZmVhdHVyZSBkZXRlY3Rpb24g dG8gc2VsZWN0IHRoZSByaWdodCBjb2RlIHBhdGggd2hlbiBydW5uaW5nLgotLQotLTwhLS0gVE9E TwotLUV4cGxhaW4gaG93IHRvIGNyZWF0ZSBlZmZpY2llbnQgZnVuY3Rpb25zIHRoYXQgZGlzcGF0 Y2ggdG8gZGlmZmVyZW50Ci0taW1wbGVtZW50YXRpb25zIGF0IHJ1bi10aW1lIHdpdGhvdXQgaXNz dWVzIChlLmcuIHVzaW5nIGAjW2lubGluZShhbHdheXMpXWAgZm9yCi0tdGhlIGltcGxzLCB3cmFw cGluZyBpbiBgI1t0YXJnZXRfZmVhdHVyZV1gLCBhbmQgdGhlIHdyYXBwaW5nIHRob3NlIGluIGEg ZnVuY3Rpb24KLS10aGF0IGRvZXMgcnVuLXRpbWUgZmVhdHVyZSBkZXRlY3Rpb24pLgotLS0tPgot LQotLSoqTk9URSoqICh4ODYgc3BlY2lmaWMpOiBiZWNhdXNlIHRoZSBBVlggKDI1Ni1iaXQpIHJl Z2lzdGVycyBleHRlbmQgdGhlIGV4aXN0aW5nCi0tU1NFICgxMjgtYml0KSByZWdpc3RlcnMsIG1p eGluZyBTU0UgYW5kIEFWWCBpbnN0cnVjdGlvbnMgaW4gYSBwcm9ncmFtIGNhbiBjYXVzZQotLXBl cmZvcm1hbmNlIGlzc3Vlcy4KLS0KLS1UaGUgc29sdXRpb24gaXMgdG8gY29tcGlsZSBhbGwgY29k ZSwgZXZlbiB0aGUgY29kZSB3cml0dGVuIHdpdGggMTI4LWJpdCB2ZWN0b3JzLAotLXdpdGggdGhl IEFWWCB0YXJnZXQgZmVhdHVyZSBlbmFibGVkLiBUaGlzIHdpbGwgY2F1c2UgdGhlIGNvbXBpbGVy IHRvIHByZWZpeCB0aGUKLS1nZW5lcmF0ZWQgaW5zdHJ1Y3Rpb25zIHdpdGggdGhlIFtWRVhdIHBy ZWZpeC4KLS0KLS1bVkVYXTogaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvVkVYX3ByZWZp eAotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlkZS9z cmMvdGFyZ2V0LWZlYXR1cmUvcnVudGltZS5tZCBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3Np bWQvcGVyZi1ndWlkZS9zcmMvdGFyZ2V0LWZlYXR1cmUvcnVudGltZS5tZAotLS0tIGEvdGhpcmRf cGFydHkvcnVzdC9wYWNrZWRfc2ltZC9wZXJmLWd1aWRlL3NyYy90YXJnZXQtZmVhdHVyZS9ydW50 aW1lLm1kCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9w YXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUvc3JjL3RhcmdldC1mZWF0dXJlL3J1bnRp bWUubWQJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDUgKzAsMCBA QAotLSMgRGV0ZWN0aW5nIGhvc3QgZmVhdHVyZXMgYXQgcnVudGltZQotLQotLTwhLS0gVE9ETzoK LS1FeHBsYWluIGNvc3QgKGhvdyBpdCB3b3JrcykuCi0tLS0+Ci1kaWZmIC1OcmJ1IGEvdGhpcmRf cGFydHkvcnVzdC9wYWNrZWRfc2ltZC9wZXJmLWd1aWRlL3NyYy90YXJnZXQtZmVhdHVyZS9ydXN0 ZmxhZ3MubWQgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUvc3JjL3Rh cmdldC1mZWF0dXJlL3J1c3RmbGFncy5tZAotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRf c2ltZC9wZXJmLWd1aWRlL3NyYy90YXJnZXQtZmVhdHVyZS9ydXN0ZmxhZ3MubWQJMjAyNS0wNC0y MCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2Vk X3NpbWQvcGVyZi1ndWlkZS9zcmMvdGFyZ2V0LWZlYXR1cmUvcnVzdGZsYWdzLm1kCTE5NzAtMDEt MDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSw3NyArMCwwIEBACi0tIyBVc2luZyBS VVNURkxBR1MKLS0KLS1PbmUgb2YgdGhlIGVhc2llc3Qgd2F5cyB0byBiZW5lZml0IGZyb20gU0lN RCBpcyB0byBhbGxvdyB0aGUgY29tcGlsZXIKLS10byBnZW5lcmF0ZSBjb2RlIHVzaW5nIGNlcnRh aW4gdmVjdG9yIGluc3RydWN0aW9uIGV4dGVuc2lvbnMuCi0tCi0tVGhlIGVudmlyb25tZW50IHZh cmlhYmxlIGBSVVNURkxBR1NgIGNhbiBiZSB1c2VkIHRvIHBhc3Mgb3B0aW9ucyBmb3IgY29kZQot LWdlbmVyYXRpb24gdG8gdGhlIFJ1c3QgY29tcGlsZXIuIFRoZXNlIGZsYWdzIHdpbGwgYWZmZWN0 ICoqYWxsKiogY29tcGlsZWQgY3JhdGVzLgotLQotLVRoZXJlIGFyZSB0d28gZmxhZ3Mgd2hpY2gg Y2FuIGJlIHVzZWQgdG8gZW5hYmxlIHNwZWNpZmljIHZlY3RvciBleHRlbnNpb25zOgotLQotLSMj IHRhcmdldC1mZWF0dXJlCi0tCi0tLSBTeW50YXg6IGAtQyB0YXJnZXQtZmVhdHVyZT08ZmVhdHVy ZXM+YAotLQotLS0gUHJvdmlkZXMgdGhlIGNvbXBpbGVyIHdpdGggYSBjb21tYS1zZXBhcmF0ZWQg c2V0IG9mIGluc3RydWN0aW9uIGV4dGVuc2lvbnMKLS0gIHRvIGVuYWJsZS4KLS0KLS0gICoqRXhh bXBsZSoqOiBVc2UgYC1DIHRhcmdldC1mZWF0dXJlPStzc2UzLCthdnhgIHRvIGVuYWJsZSBnZW5l cmF0aW5nIGluc3RydWN0aW9ucwotLSAgZm9yIFtTdHJlYW1pbmcgU0lNRCBFeHRlbnNpb25zIDNd KGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL1NTRTMpIGFuZAotLSAgW0FkdmFuY2VkIFZl Y3RvciBFeHRlbnNpb25zXShodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9BZHZhbmNlZF9W ZWN0b3JfRXh0ZW5zaW9ucykuCi0tCi0tLSBUbyBsaXN0IHRhcmdldCB0cmlwbGVzIGZvciBhbGwg dGFyZ2V0cyBzdXBwb3J0ZWQgYnkgUnVzdCwgdXNlOgotLQotLSAgYGBgc2gKLS0gIHJ1c3RjIC0t cHJpbnQgdGFyZ2V0LWxpc3QKLS0gIGBgYAotLQotLS0gVG8gbGlzdCBhbGwgc3VwcG9ydCB0YXJn ZXQgZmVhdHVyZXMgZm9yIGEgY2VydGFpbiB0YXJnZXQgdHJpcGxlLCB1c2U6Ci0tCi0tICBgYGBz aAotLSAgcnVzdGMgLS10YXJnZXQ9JHtUUklQTEV9IC0tcHJpbnQgdGFyZ2V0LWZlYXR1cmVzCi0t ICBgYGAKLS0KLS0tIE5vdGUgdGhhdCBhbGwgQ1BVIGZlYXR1cmVzIGFyZSBpbmRlcGVuZGVudCwg YW5kIHdpbGwgaGF2ZSB0byBiZSBlbmFibGVkIGluZGl2aWR1YWxseS4KLS0KLS0gICoqRXhhbXBs ZSoqOiBTZXR0aW5nIGAtQyB0YXJnZXQtZmVhdHVyZT0rYXZ4MmAgd2lsbCBfbm90XyBlbmFibGUg YGZtYWAsIGV2ZW4gdGhvdWdoCi0tICBhbGwgQ1BVcyB3aGljaCBzdXBwb3J0IEFWWDIgYWxzbyBz dXBwb3J0IEZNQS4gVG8gZW5hYmxlIGJvdGgsIG9uZSBoYXMgdG8gdXNlCi0tICBgLUMgdGFyZ2V0 LWZlYXR1cmU9K2F2eDIsK2ZtYWAKLS0KLS0tIFNvbWUgZmVhdHVyZXMgYWxzbyBkZXBlbmQgb24g b3RoZXIgZmVhdHVyZXMsIHdoaWNoIG5lZWQgdG8gYmUgZW5hYmxlZCBmb3IgdGhlCi0tICB0YXJn ZXQgaW5zdHJ1Y3Rpb25zIHRvIGJlIGdlbmVyYXRlZC4KLS0KLS0gICoqRXhhbXBsZSoqOiBVbmxl c3MgYHY3YCBpcyBzcGVjaWZpZWQgYXMgdGhlIHRhcmdldCBDUFUgKHNlZSBiZWxvdyksIHRvIGVu YWJsZQotLSAgTkVPTiBvbiBBUk0gaXQgaXMgbmVjZXNzYXJ5IHRvIHVzZSBgLUMgdGFyZ2V0LWZl YXR1cmU9K3Y3LCtuZW9uYC4KLS0KLS0jIyB0YXJnZXQtY3B1Ci0tCi0tLSBTeW50YXg6IGAtQyB0 YXJnZXQtY3B1PTxjcHU+YAotLQotLS0gU2V0cyB0aGUgaWRlbnRpZmllciBvZiBhIENQVSBmYW1p bHkgLyBtb2RlbCBmb3Igd2hpY2ggdG8gYnVpbGQgYW5kIG9wdGltaXplIHRoZSBjb2RlLgotLQot LSAgKipFeGFtcGxlKio6IGBSVVNURkxBR1M9Jy1DIHRhcmdldC1jcHU9Y29ydGV4LWE3NSdgCi0t Ci0tLSBUbyBsaXN0IGFsbCBzdXBwb3J0ZWQgdGFyZ2V0IENQVXMgZm9yIGEgY2VydGFpbiB0YXJn ZXQgdHJpcGxlLCB1c2U6Ci0tCi0tICBgYGBzaAotLSAgcnVzdGMgLS10YXJnZXQ9JHtUUklQTEV9 IC0tcHJpbnQgdGFyZ2V0LWNwdXMKLS0gIGBgYAotLQotLSAgKipFeGFtcGxlKio6Ci0tCi0tICBg YGBzaAotLSAgcnVzdGMgLS10YXJnZXQ9aTY4Ni1wYy13aW5kb3dzLW1zdmMgLS1wcmludCB0YXJn ZXQtY3B1cwotLSAgYGBgCi0tCi0tLSBUaGUgY29tcGlsZXIgd2lsbCB0cmFuc2xhdGUgdGhpcyBp bnRvIGEgbGlzdCBvZiB0YXJnZXQgZmVhdHVyZXMuIFRoZXJlZm9yZSwKLS0gIGluZGl2aWR1YWwg ZmVhdHVyZSBjaGVja3MgKGAjW2NmZyh0YXJnZXRfZmVhdHVyZSA9ICIuLi4iKV1gKSB3aWxsIHN0 aWxsCi0tICB3b3JrIHByb3Blcmx5LgotLQotLS0gSXQgd2lsbCBjYXVzZSB0aGUgY29kZSBnZW5l cmF0b3IgdG8gb3B0aW1pemUgdGhlIGdlbmVyYXRlZCBjb2RlIGZvciB0aGF0Ci0tICBzcGVjaWZp YyBDUFUgbW9kZWwuCi0tCi0tLSBVc2luZyBgbmF0aXZlYCBhcyB0aGUgQ1BVIG1vZGVsIHdpbGwg Y2F1c2UgUnVzdCB0byBnZW5lcmF0ZSBhbmQgb3B0aW1pemUgY29kZQotLSAgZm9yIHRoZSBDUFUg cnVubmluZyB0aGUgY29tcGlsZXIuIEl0IGlzIHVzZWZ1bCB3aGVuIGJ1aWxkaW5nIHByb2dyYW1z IHdoaWNoIHlvdQotLSAgcGxhbiB0byBvbmx5IHVzZSBsb2NhbGx5LiBUaGlzIHNob3VsZCBuZXZl ciBiZSB1c2VkIHdoZW4gdGhlIGdlbmVyYXRlZCBwcm9ncmFtcwotLSAgYXJlIG1lYW50IHRvIGJl IHJ1biBvbiBvdGhlciBjb21wdXRlcnMsIHN1Y2ggYXMgd2hlbiBwYWNrYWdpbmcgZm9yIGRpc3Ry aWJ1dGlvbgotLSAgb3IgY3Jvc3MtY29tcGlsaW5nLgotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5 L3J1c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlkZS9zcmMvdmVydC1ob3Itb3BzLm1kIGIvdGhpcmRf cGFydHkvcnVzdC9wYWNrZWRfc2ltZC9wZXJmLWd1aWRlL3NyYy92ZXJ0LWhvci1vcHMubWQKLS0t LSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlkZS9zcmMvdmVydC1ob3It b3BzLm1kCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9w YXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUvc3JjL3ZlcnQtaG9yLW9wcy5tZAkxOTcw LTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsNzYgKzAsMCBAQAotLSMgVmVy dGljYWwgYW5kIGhvcml6b250YWwgb3BlcmF0aW9ucwotLQotLUluIFNJTUQgdGVybWlub2xvZ3ks IGVhY2ggdmVjdG9yIGhhcyBhIGNlcnRhaW4gIndpZHRoIiAobnVtYmVyIG9mIGxhbmVzKS4KLS1B IHZlY3RvciBwcm9jZXNzb3IgaXMgYWJsZSB0byBwZXJmb3JtIHR3byBraW5kcyBvZiBvcGVyYXRp b25zIG9uIGEgdmVjdG9yOgotLQotLS0gVmVydGljYWwgb3BlcmF0aW9uczoKLS0gIG9wZXJhdGUg b24gdHdvIHZlY3RvcnMgb2YgdGhlIHNhbWUgd2lkdGgsIHJlc3VsdCBoYXMgc2FtZSB3aWR0aAot LQotLSoqRXhhbXBsZSoqOiB2ZXJ0aWNhbCBhZGRpdGlvbiBvZiB0d28gYGYzMng0YCB2ZWN0b3Jz Ci0tCi0tICAgICAgJTAgICAgID09IHwgMiB8IC0zLjUgfCAgMCB8IDcgfAotLSAgICAgICAgICAg ICAgICAgICsgICAgICsgICAgICsgICArCi0tICAgICAgJTEgICAgID09IHwgNCB8ICAxLjUgfCAt MSB8IDAgfAotLSAgICAgICAgICAgICAgICAgID0gICAgID0gICAgID0gICA9Ci0tICAgICUwICsg JTEgID09IHwgNiB8ICAtMiAgfCAtMSB8IDcgfAotLQotLS0gSG9yaXpvbnRhbCBvcGVyYXRpb25z OgotLSAgcmVkdWNlIHRoZSBlbGVtZW50cyBvZiB0d28gdmVjdG9ycyBpbiBzb21lIHdheSwKLS0g IHRoZSByZXN1bHQncyBlbGVtZW50cyBjb21iaW5lIGluZm9ybWF0aW9uIGZyb20gdGhlIHR3byBv cmlnaW5hbCBvbmVzCi0tCi0tKipFeGFtcGxlKio6IGhvcml6b250YWwgYWRkaXRpb24gb2YgdHdv IGB1NjR4MmAgdmVjdG9ycwotLQotLSAgICAgICUwICAgICA9PSB8IDEgfCAgMyB8Ci0tICAgICAg ICAgICAgICAgICAg4pSU4pSAK+KUgOKUgOKUgOKUmAotLSAgICAgICAgICAgICAgICAgICAg4pSU 4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSQCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIOKU ggotLSAgICAgICUxICAgICA9PSB8IDQgfCAtMSB8ICDilIIKLS0gICAgICAgICAgICAgICAgICDi lJTilIAr4pSA4pSA4pSYICAgIOKUggotLSAgICAgICAgICAgICAgICAgICAg4pSU4pSA4pSA4pSA 4pSQICAg4pSCCi0tICAgICAgICAgICAgICAgICAgICAgICAg4pSCICAg4pSCCi0tICAgICAgICAg ICAgICAgICAg4pSM4pSA4pSA4pSA4pSA4pSA4pSC4pSA4pSA4pSA4pSYCi0tICAgICAgICAgICAg ICAgICAg4pa8ICAgICDilrwKLS0gICAgJTAgKyAlMSAgPT0gfCA0IHwgICAzIHwKLS0KLS0jIyBQ ZXJmb3JtYW5jZSBjb25zaWRlcmF0aW9uIG9mIGhvcml6b250YWwgb3BlcmF0aW9ucwotLQotLVRo ZSByZXN1bHQgb2YgdmVydGljYWwgb3BlcmF0aW9ucywgbGlrZSB2ZWN0b3IgbmVnYXRpb246IGAt YWAsIGZvciBhIGdpdmVuIGxhbmUsCi0tZG9lcyBub3QgZGVwZW5kIG9uIHRoZSByZXN1bHQgb2Yg dGhlIG9wZXJhdGlvbiBmb3IgdGhlIG90aGVyIGxhbmVzLiBUaGUgcmVzdWx0Ci0tb2YgaG9yaXpv bnRhbCBvcGVyYXRpb25zLCBsaWtlIHRoZSB2ZWN0b3IgYHN1bWAgcmVkdWN0aW9uOiBgYS5zdW0o KWAsIGRlcGVuZHMgb24KLS10aGUgdmFsdWUgb2YgYWxsIHZlY3RvciBsYW5lcy4KLS0KLS1JbiB2 aXJ0dWFsbHkgYWxsIGFyY2hpdGVjdHVyZXMgdmVydGljYWwgb3BlcmF0aW9ucyBhcmUgZmFzdCwg d2hpbGUgaG9yaXpvbnRhbAotLW9wZXJhdGlvbnMgYXJlLCBieSBjb21wYXJpc29uLCB2ZXJ5IHNs b3cuCi0tCi0tQ29uc2lkZXIgdGhlIGZvbGxvd2luZyB0d28gZnVuY3Rpb25zIGZvciBjb21wdXRp bmcgdGhlIHN1bSBvZiBhbGwgYGYzMmAgdmFsdWVzCi0taW4gYSBzbGljZToKLS0KLS1gYGBydXN0 Ci0tZm4gZmFzdF9zdW0oeDogJltmMzJdKSAtPiBmMzIgewotLSAgICBhc3NlcnQhKHgubGVuKCkg JSA0ID09IDApOwotLSAgICBsZXQgbXV0IHN1bSA9IGYzMng0OjpzcGxhdCgwLik7IC8vIFswLiwg MC4sIDAuLCAwLl0KLS0gICAgZm9yIGkgaW4gKDAuLngubGVuKCkpLnN0ZXBfYnkoNCkgewotLSAg ICAgICAgc3VtICs9IGYzMng0Ojpmcm9tX3NsaWNlX3VuYWxpZ25lZCgmeFtpLi5dKTsKLS0gICAg fQotLSAgICBzdW0uc3VtKCkKLS19Ci0tCi0tZm4gc2xvd19zdW0oeDogJltmMzJdKSAtPiBmMzIg ewotLSAgICBhc3NlcnQhKHgubGVuKCkgJSA0ID09IDApOwotLSAgICBsZXQgbXV0IHN1bTogZjMy ID0gMC47Ci0tICAgIGZvciBpIGluICgwLi54LmxlbigpKS5zdGVwX2J5KDQpIHsKLS0gICAgICAg IHN1bSArPSBmMzJ4NDo6ZnJvbV9zbGljZV91bmFsaWduZWQoJnhbaS4uXSkuc3VtKCk7Ci0tICAg IH0KLS0gICAgc3VtCi0tfQotLWBgYAotLQotLVRoZSBpbm5lciBsb29wIG92ZXIgdGhlIHNsaWNl IGlzIHdoZXJlIHRoZSBidWxrIG9mIHRoZSB3b3JrIGFjdHVhbGx5IGhhcHBlbnMuCi0tVGhlcmUs IHRoZSBgZmFzdF9zdW1gIGZ1bmN0aW9uIHBlcmZvcm0gdmVydGljYWwgb3BlcmF0aW9ucyBpbnRv IGEgdmVjdG9yLCBkb2luZwotLWEgc2luZ2xlIGhvcml6b250YWwgcmVkdWN0aW9uIGF0IHRoZSBl bmQsIHdoaWxlIHRoZSBgc2xvd19zdW1gIGZ1bmN0aW9uIHBlcmZvcm1zCi0taG9yaXpvbnRhbCB2 ZWN0b3Igb3BlcmF0aW9ucyBpbnNpZGUgb2YgdGhlIGxvb3AuCi0tCi0tT24gYWxsIHdpZGVseS11 c2VkIGFyY2hpdGVjdHVyZXMsIGBmYXN0X3N1bWAgaXMgYSBsYXJnZSBjb25zdGFudCBmYWN0b3Ig ZmFzdGVyCi0tdGhhbiBgc2xvd19zdW1gLiBZb3UgY2FuIHJ1biB0aGUgW3NsaWNlX3N1bV0oKSBl eGFtcGxlIGFuZCBzZWUgZm9yIHlvdXJzZWxmLiBPbgotLXRoZSBwYXJ0aWN1bGFyIG1hY2hpbmUg dGVzdGVkIHRoZXJlIHRoZSBhbGdvcml0aG0gdXNpbmcgdGhlIGhvcml6b250YWwgdmVjdG9yCi0t YWRkaXRpb24gaXMgMi43eCBzbG93ZXIgdGhhbiB0aGUgb25lIHVzaW5nIHZlcnRpY2FsIHZlY3Rv ciBvcGVyYXRpb25zIQotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQv cnVzdGZtdC50b21sIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9ydXN0Zm10LnRvbWwK LS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvcnVzdGZtdC50b21sCTIwMjUtMDQt MjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tl ZF9zaW1kL3J1c3RmbXQudG9tbAkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAot QEAgLTEsNSArMCwwIEBACi0tbWF4X3dpZHRoID0gMTEwCi0tdXNlX3NtYWxsX2hldXJpc3RpY3Mg PSAiTWF4IgotLXdyYXBfY29tbWVudHMgPSB0cnVlCi0tZWRpdGlvbiA9ICIyMDE4IgotLWVycm9y X29uX2xpbmVfb3ZlcmZsb3cgPSB0cnVlCi1cIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKLWRp ZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvYml0X21hbmlw LnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2JpdF9tYW5pcC5ycwot LS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2JpdF9tYW5pcC5ycwky MDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVz dC9wYWNrZWRfc2ltZC9zcmMvYXBpL2JpdF9tYW5pcC5ycwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAw MDAwMDAwMCArMDMwMAotQEAgLTEsMTI5ICswLDAgQEAKLS0vLyEgQml0IG1hbmlwdWxhdGlvbnMu Ci0tCi0tbWFjcm9fcnVsZXMhIGltcGxfYml0X21hbmlwIHsKLS0gICAgKFskZWxlbV90eTppZGVu dDsgJGVsZW1fY291bnQ6ZXhwcl06ICRpZDppZGVudCB8ICR0ZXN0X3R0OnR0KSA9PiB7Ci0tICAg ICAgICBpbXBsICRpZCB7Ci0tICAgICAgICAgICAgLy8vIFJldHVybnMgdGhlIG51bWJlciBvZiBv bmVzIGluIHRoZSBiaW5hcnkgcmVwcmVzZW50YXRpb24gb2YKLS0gICAgICAgICAgICAvLy8gdGhl IGxhbmVzIG9mIGBzZWxmYC4KLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBw dWIgZm4gY291bnRfb25lcyhzZWxmKSAtPiBTZWxmIHsKLS0gICAgICAgICAgICAgICAgc3VwZXI6 OmNvZGVnZW46OmJpdF9tYW5pcDo6Qml0TWFuaXA6OmN0cG9wKHNlbGYpCi0tICAgICAgICAgICAg fQotLQotLSAgICAgICAgICAgIC8vLyBSZXR1cm5zIHRoZSBudW1iZXIgb2YgemVyb3MgaW4gdGhl IGJpbmFyeSByZXByZXNlbnRhdGlvbiBvZgotLSAgICAgICAgICAgIC8vLyB0aGUgbGFuZXMgb2Yg YHNlbGZgLgotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIHB1YiBmbiBjb3Vu dF96ZXJvcyhzZWxmKSAtPiBTZWxmIHsKLS0gICAgICAgICAgICAgICAgc3VwZXI6OmNvZGVnZW46 OmJpdF9tYW5pcDo6Qml0TWFuaXA6OmN0cG9wKCFzZWxmKQotLSAgICAgICAgICAgIH0KLS0KLS0g ICAgICAgICAgICAvLy8gUmV0dXJucyB0aGUgbnVtYmVyIG9mIGxlYWRpbmcgemVyb3MgaW4gdGhl IGJpbmFyeQotLSAgICAgICAgICAgIC8vLyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbGFuZXMgb2Yg YHNlbGZgLgotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIHB1YiBmbiBsZWFk aW5nX3plcm9zKHNlbGYpIC0+IFNlbGYgewotLSAgICAgICAgICAgICAgICBzdXBlcjo6Y29kZWdl bjo6Yml0X21hbmlwOjpCaXRNYW5pcDo6Y3RseihzZWxmKQotLSAgICAgICAgICAgIH0KLS0KLS0g ICAgICAgICAgICAvLy8gUmV0dXJucyB0aGUgbnVtYmVyIG9mIHRyYWlsaW5nIHplcm9zIGluIHRo ZSBiaW5hcnkKLS0gICAgICAgICAgICAvLy8gcmVwcmVzZW50YXRpb24gb2YgdGhlIGxhbmVzIG9m IGBzZWxmYC4KLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBwdWIgZm4gdHJh aWxpbmdfemVyb3Moc2VsZikgLT4gU2VsZiB7Ci0tICAgICAgICAgICAgICAgIHN1cGVyOjpjb2Rl Z2VuOjpiaXRfbWFuaXA6OkJpdE1hbmlwOjpjdHR6KHNlbGYpCi0tICAgICAgICAgICAgfQotLSAg ICAgICAgfQotLQotLSAgICAgICAgdGVzdF9pZiEgewotLSAgICAgICAgICAgICR0ZXN0X3R0Ogot LSAgICAgICAgICAgIHBhc3RlOjppdGVtISB7Ci0tICAgICAgICAgICAgICAgICNbYWxsb3cob3Zl cmZsb3dpbmdfbGl0ZXJhbHMpXQotLSAgICAgICAgICAgICAgICBwdWIgbW9kIFs8JGlkIF9iaXRf bWFuaXA+XSB7Ci0tICAgICAgICAgICAgICAgICAgICAjIVthbGxvdyhjb25zdF9pdGVtX211dGF0 aW9uKV0KLS0gICAgICAgICAgICAgICAgICAgIHVzZSBzdXBlcjo6KjsKLS0KLS0gICAgICAgICAg ICAgICAgICAgIGNvbnN0IExBTkVfV0lEVEg6IHVzaXplID0gbWVtOjpzaXplX29mOjo8JGVsZW1f dHk+KCkgKiA4OwotLQotLSAgICAgICAgICAgICAgICAgICAgbWFjcm9fcnVsZXMhIHRlc3RfZnVu YyB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgKCR4OmV4cHIsICRmdW5jOmlkZW50KSA9PiB7 ewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IGFjdHVhbCA9ICR4OwotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgaSBpbiAwLi4kaWQ6OmxhbmVzKCkgewotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0dWFsID0gYWN0dWFsLnJlcGxhY2UoCi0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaSwKLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAkeC5leHRyYWN0KGkpLiRmdW5jKCkgYXMgJGVsZW1fdHkKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGV4cGVjdGVkID0gJHgu JGZ1bmMoKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShhY3R1YWws IGV4cGVjdGVkKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICB9fTsKLS0gICAgICAgICAgICAg ICAgICAgIH0KLS0KLS0gICAgICAgICAgICAgICAgICAgIGNvbnN0IEJZVEVTOiBbdTg7IDY0XSA9 IFsKLS0gICAgICAgICAgICAgICAgICAgICAgICAwLCAxLCAyLCAzLCA0LCA1LCA2LCA3LAotLSAg ICAgICAgICAgICAgICAgICAgICAgIDgsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsCi0tICAg ICAgICAgICAgICAgICAgICAgICAgMTYsIDE3LCAxOCwgMTksIDIwLCAyMSwgMjIsIDIzLAotLSAg ICAgICAgICAgICAgICAgICAgICAgIDI0LCAyNSwgMjYsIDI3LCAyOCwgMjksIDMwLCAzMSwKLS0g ICAgICAgICAgICAgICAgICAgICAgICAzMiwgMzMsIDM0LCAzNSwgMzYsIDM3LCAzOCwgMzksCi0t ICAgICAgICAgICAgICAgICAgICAgICAgNDAsIDQxLCA0MiwgNDMsIDQ0LCA0NSwgNDYsIDQ3LAot LSAgICAgICAgICAgICAgICAgICAgICAgIDQ4LCA0OSwgNTAsIDUxLCA1MiwgNTMsIDU0LCA1NSwK LS0gICAgICAgICAgICAgICAgICAgICAgICA1NiwgNTcsIDU4LCA1OSwgNjAsIDYxLCA2MiwgNjMs Ci0tICAgICAgICAgICAgICAgICAgICBdOwotLQotLSAgICAgICAgICAgICAgICAgICAgZm4gbG9h ZF9ieXRlcygpIC0+ICRpZCB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGVsZW1zOiAm bXV0IFskZWxlbV90eV0gPSB1bnNhZmUgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBz bGljZTo6ZnJvbV9yYXdfcGFydHNfbXV0KAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgQllURVMuYXNfbXV0X3B0cigpIGFzICptdXQgJGVsZW1fdHksCi0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAkaWQ6OmxhbmVzKCksCi0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgICkKLS0gICAgICAgICAgICAgICAgICAgICAgICB9OwotLSAgICAgICAgICAgICAgICAgICAg ICAgICRpZDo6ZnJvbV9zbGljZV91bmFsaWduZWQoZWxlbXMpCi0tICAgICAgICAgICAgICAgICAg ICB9Ci0tCi0tICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9 ICJ3YXNtMzIiKSwgdGVzdCldCi0tICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKHRhcmdl dF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KLS0gICAgICAgICAgICAgICAg ICAgIGZuIGNvdW50X29uZXMoKSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9mdW5j ISgkaWQ6OnNwbGF0KDApLCBjb3VudF9vbmVzKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICB0 ZXN0X2Z1bmMhKCRpZDo6c3BsYXQoITApLCBjb3VudF9vbmVzKTsKLS0gICAgICAgICAgICAgICAg ICAgICAgICB0ZXN0X2Z1bmMhKGxvYWRfYnl0ZXMoKSwgY291bnRfb25lcyk7Ci0tICAgICAgICAg ICAgICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJn ZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldCi0tICAgICAgICAgICAgICAgICAgICAjW2NmZ19h dHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KLS0gICAgICAg ICAgICAgICAgICAgIGZuIGNvdW50X3plcm9zKCkgewotLSAgICAgICAgICAgICAgICAgICAgICAg IHRlc3RfZnVuYyEoJGlkOjpzcGxhdCgwKSwgY291bnRfemVyb3MpOwotLSAgICAgICAgICAgICAg ICAgICAgICAgIHRlc3RfZnVuYyEoJGlkOjpzcGxhdCghMCksIGNvdW50X3plcm9zKTsKLS0gICAg ICAgICAgICAgICAgICAgICAgICB0ZXN0X2Z1bmMhKGxvYWRfYnl0ZXMoKSwgY291bnRfemVyb3Mp OwotLSAgICAgICAgICAgICAgICAgICAgfQotLQotLSAgICAgICAgICAgICAgICAgICAgI1tjZmdf YXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXQotLSAgICAgICAgICAgICAg ICAgICAgI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVz dCldCi0tICAgICAgICAgICAgICAgICAgICBmbiBsZWFkaW5nX3plcm9zKCkgewotLSAgICAgICAg ICAgICAgICAgICAgICAgIHRlc3RfZnVuYyEoJGlkOjpzcGxhdCgwKSwgbGVhZGluZ196ZXJvcyk7 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9mdW5jISgkaWQ6OnNwbGF0KDEpLCBsZWFk aW5nX3plcm9zKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAvLyBzb21lIGltcGxlbWVudGF0 aW9ucyB1c2UgYHBzaHVmYmAgd2hpY2ggaGFzIHVuaXF1ZQotLSAgICAgICAgICAgICAgICAgICAg ICAgIC8vIGJlaGF2aW9yIHdoZW4gdGhlIDh0aCBiaXQgaXMgc2V0LgotLSAgICAgICAgICAgICAg ICAgICAgICAgIHRlc3RfZnVuYyEoJGlkOjpzcGxhdCgwYjEwMDBfMDAxMCksIGxlYWRpbmdfemVy b3MpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfZnVuYyEoJGlkOjpzcGxhdCghMCks IGxlYWRpbmdfemVyb3MpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfZnVuYyEoCi0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpZDo6c3BsYXQoMSA8PCAoTEFORV9XSURUSCAt IDEpKSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVhZGluZ196ZXJvcwotLSAgICAg ICAgICAgICAgICAgICAgICAgICk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9mdW5j IShsb2FkX2J5dGVzKCksIGxlYWRpbmdfemVyb3MpOwotLSAgICAgICAgICAgICAgICAgICAgfQot LQotLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2Fz bTMyIiksIHRlc3QpXQotLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cih0YXJnZXRfYXJj aCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCi0tICAgICAgICAgICAgICAgICAgICBm biB0cmFpbGluZ196ZXJvcygpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X2Z1bmMh KCRpZDo6c3BsYXQoMCksIHRyYWlsaW5nX3plcm9zKTsKLS0gICAgICAgICAgICAgICAgICAgICAg ICB0ZXN0X2Z1bmMhKCRpZDo6c3BsYXQoMSksIHRyYWlsaW5nX3plcm9zKTsKLS0gICAgICAgICAg ICAgICAgICAgICAgICB0ZXN0X2Z1bmMhKCRpZDo6c3BsYXQoMGIxMDAwXzAwMTApLCB0cmFpbGlu Z196ZXJvcyk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9mdW5jISgkaWQ6OnNwbGF0 KCEwKSwgdHJhaWxpbmdfemVyb3MpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfZnVu YyEoCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpZDo6c3BsYXQoMSA8PCAoTEFORV9X SURUSCAtIDEpKSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhaWxpbmdfemVyb3MK LS0gICAgICAgICAgICAgICAgICAgICAgICApOwotLSAgICAgICAgICAgICAgICAgICAgICAgIHRl c3RfZnVuYyEobG9hZF9ieXRlcygpLCB0cmFpbGluZ196ZXJvcyk7Ci0tICAgICAgICAgICAgICAg ICAgICB9Ci0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0t ICAgIH07Ci0tfQotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3Jj L2FwaS9iaXRtYXNrLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2Jp dG1hc2sucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9iaXRt YXNrLnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9w YXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvYml0bWFzay5ycwkxOTcwLTAxLTAxIDAzOjAw OjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsNzkgKzAsMCBAQAotLS8vISBCaXRtYXNrIEFQSQot LQotLW1hY3JvX3J1bGVzISBpbXBsX2JpdG1hc2sgewotLSAgICAoJGlkOmlkZW50IHwgJGliaXRt YXNrX3R5OmlkZW50IHwgKCRzZXQ6ZXhwciwgJGNsZWFyOmV4cHIpCi0tICAgICB8ICR0ZXN0X3R0 OnR0KSA9PiB7Ci0tICAgICAgICBpbXBsICRpZCB7Ci0tICAgICAgICAgICAgLy8vIENyZWF0ZXMg YSBiaXRtYXNrIHdpdGggdGhlIE1TQiBvZiBlYWNoIHZlY3RvciBsYW5lLgotLSAgICAgICAgICAg IC8vLwotLSAgICAgICAgICAgIC8vLyBJZiB0aGUgdmVjdG9yIGhhcyBsZXNzIHRoYW4gOCBsYW5l cywgdGhlIGJpdHMgdGhhdCBkbyBub3QKLS0gICAgICAgICAgICAvLy8gY29ycmVzcG9uZCB0byBh bnkgdmVjdG9yIGxhbmVzIGFyZSBjbGVhcmVkLgotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAg ICAgICAgICAgIHB1YiBmbiBiaXRtYXNrKHNlbGYpIC0+ICRpYml0bWFza190eSB7Ci0tICAgICAg ICAgICAgICAgIHVuc2FmZSB7IGNvZGVnZW46Omxsdm06OnNpbWRfYml0bWFzayhzZWxmLjApIH0K LS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tCi0tICAgICAgICB0ZXN0X2lmISB7Ci0tICAg ICAgICAgICAgJHRlc3RfdHQ6Ci0tICAgICAgICAgICAgcGFzdGU6Oml0ZW0hIHsKLS0gICAgICAg ICAgICAgICAgI1tjZmcobm90KAotLSAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IGh0dHBz Oi8vZ2l0aHViLmNvbS9ydXN0LWxhbmctbnVyc2VyeS9wYWNrZWRfc2ltZC9pc3N1ZXMvMjEwCi0t ICAgICAgICAgICAgICAgICAgICB0YXJnZXRfZW5kaWFuID0gImJpZyIKLS0gICAgICAgICAgICAg ICAgKSldCi0tICAgICAgICAgICAgICAgIHB1YiBtb2QgWzwkaWQgX2JpdG1hc2s+XSB7Ci0tICAg ICAgICAgICAgICAgICAgICB1c2Ugc3VwZXI6Oio7Ci0tICAgICAgICAgICAgICAgICAgICAjW2Nm Z19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldCi0tICAgICAgICAgICAg ICAgICAgICAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90 ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgIGZuIGJpdG1hc2soKSB7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgLy8gY2xlYXIgYWxsIGxhbmVzCi0tICAgICAgICAgICAgICAgICAgICAgICAg bGV0IHZlYyA9ICRpZDo6c3BsYXQoJGNsZWFyIGFzIF8pOwotLSAgICAgICAgICAgICAgICAgICAg ICAgIGxldCBiaXRtYXNrOiAkaWJpdG1hc2tfdHkgPSAwOwotLSAgICAgICAgICAgICAgICAgICAg ICAgIGFzc2VydF9lcSEodmVjLmJpdG1hc2soKSwgYml0bWFzayk7Ci0tCi0tICAgICAgICAgICAg ICAgICAgICAgICAgLy8gc2V0IGV2ZW4gbGFuZXMKLS0gICAgICAgICAgICAgICAgICAgICAgICBs ZXQgbXV0IHZlYyA9ICRpZDo6c3BsYXQoJGNsZWFyIGFzIF8pOwotLSAgICAgICAgICAgICAgICAg ICAgICAgIGZvciBpIGluIDAuLiRpZDo6bGFuZXMoKSB7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGlmIGkgJSAyID09IDAgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg dmVjID0gdmVjLnJlcGxhY2UoaSwgJHNldCBhcyBfKTsKLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAg ICAgICAvLyBjcmVhdGUgYml0bWFzayB3aXRoIGV2ZW4gbGFuZXMgc2V0OgotLSAgICAgICAgICAg ICAgICAgICAgICAgIGxldCBtdXQgYml0bWFzazogJGliaXRtYXNrX3R5ID0gMDsKLS0gICAgICAg ICAgICAgICAgICAgICAgICBmb3IgaSBpbiAwLi4kaWQ6OmxhbmVzKCkgewotLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICBpZiBpICUgMiA9PSAwIHsKLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGJpdG1hc2sgfD0gMSA8PCBpOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICB9Ci0tICAgICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgICAg IGFzc2VydF9lcSEodmVjLmJpdG1hc2soKSwgYml0bWFzayk7Ci0tCi0tCi0tICAgICAgICAgICAg ICAgICAgICAgICAgLy8gc2V0IG9kZCBsYW5lcwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxl dCBtdXQgdmVjID0gJGlkOjpzcGxhdCgkY2xlYXIgYXMgXyk7Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgZm9yIGkgaW4gMC4uJGlkOjpsYW5lcygpIHsKLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgaWYgaSAlIDIgIT0gMCB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2 ZWMgPSB2ZWMucmVwbGFjZShpLCAkc2V0IGFzIF8pOwotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAg ICAgIC8vIGNyZWF0ZSBiaXRtYXNrIHdpdGggb2RkIGxhbmVzIHNldDoKLS0gICAgICAgICAgICAg ICAgICAgICAgICBsZXQgbXV0IGJpdG1hc2s6ICRpYml0bWFza190eSA9IDA7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgZm9yIGkgaW4gMC4uJGlkOjpsYW5lcygpIHsKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgaWYgaSAlIDIgIT0gMCB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBiaXRtYXNrIHw9IDEgPDwgaTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg fQotLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgICAgICBh c3NlcnRfZXEhKHZlYy5iaXRtYXNrKCksIGJpdG1hc2spOwotLQotLSAgICAgICAgICAgICAgICAg ICAgICAgIC8vIHNldCBhbGwgbGFuZXMKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdmVj ID0gJGlkOjpzcGxhdCgkc2V0IGFzIF8pOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBt dXQgYml0bWFzazogJGliaXRtYXNrX3R5ID0gMDsKLS0gICAgICAgICAgICAgICAgICAgICAgICBm b3IgaSBpbiAwLi4kaWQ6OmxhbmVzKCkgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBi aXRtYXNrIHw9IDEgPDwgaTsKLS0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh2ZWMuYml0bWFzaygpLCBiaXRtYXNrKTsKLS0gICAg ICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgIH0KLS0g ICAgICAgIH0KLS0gICAgfTsKLS19Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNr ZWRfc2ltZC9zcmMvYXBpL2Nhc3QvbWFjcm9zLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRf c2ltZC9zcmMvYXBpL2Nhc3QvbWFjcm9zLnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tl ZF9zaW1kL3NyYy9hcGkvY2FzdC9tYWNyb3MucnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAw MDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9jYXN0 L21hY3Jvcy5ycwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsODIg KzAsMCBAQAotLS8vISBNYWNyb3MgaW1wbGVtZW50aW5nIGBGcm9tQ2FzdGAKLS0KLS1tYWNyb19y dWxlcyEgaW1wbF9mcm9tX2Nhc3RfIHsKLS0gICAgKCRpZDppZGVudFskdGVzdF90dDp0dF06ICRm cm9tX3R5OmlkZW50KSA9PiB7Ci0tICAgICAgICBpbXBsIGNyYXRlOjphcGk6OmNhc3Q6OkZyb21D YXN0PCRmcm9tX3R5PiBmb3IgJGlkIHsKLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAg ICAgICBmbiBmcm9tX2Nhc3QoeDogJGZyb21fdHkpIC0+IFNlbGYgewotLSAgICAgICAgICAgICAg ICB1c2UgY3JhdGU6Omxsdm06OnNpbWRfY2FzdDsKLS0gICAgICAgICAgICAgICAgZGVidWdfYXNz ZXJ0X2VxISgkZnJvbV90eTo6bGFuZXMoKSwgJGlkOjpsYW5lcygpKTsKLS0gICAgICAgICAgICAg ICAgU2ltZCh1bnNhZmUgeyBzaW1kX2Nhc3QoeC4wKSB9KQotLSAgICAgICAgICAgIH0KLS0gICAg ICAgIH0KLS0KLS0gICAgICAgIHRlc3RfaWYhewotLSAgICAgICAgICAgICR0ZXN0X3R0OgotLSAg ICAgICAgICAgIHBhc3RlOjppdGVtISB7Ci0tICAgICAgICAgICAgICAgIHB1YiBtb2QgWzwkaWQg X2Zyb21fY2FzdF8gJGZyb21fdHk+XSB7Ci0tICAgICAgICAgICAgICAgICAgICB1c2Ugc3VwZXI6 Oio7Ci0tICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3 YXNtMzIiKSwgdGVzdCldICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9i aW5kZ2VuX3Rlc3QpXQotLSAgICAgICAgICAgICAgICAgICAgZm4gdGVzdCgpIHsKLS0gICAgICAg ICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKCRpZDo6bGFuZXMoKSwgJGZyb21fdHk6OmxhbmVz KCkpOwotLSAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAg ICAgICAgfQotLSAgICAgICAgfQotLSAgICB9OwotLX0KLS0KLS1tYWNyb19ydWxlcyEgaW1wbF9m cm9tX2Nhc3QgewotLSAgICAoJGlkOmlkZW50WyR0ZXN0X3R0OnR0XTogJCgkZnJvbV90eTppZGVu dCksKikgPT4gewotLSAgICAgICAgJCgKLS0gICAgICAgICAgICBpbXBsX2Zyb21fY2FzdF8hKCRp ZFskdGVzdF90dF06ICRmcm9tX3R5KTsKLS0gICAgICAgICkqCi0tICAgIH0KLS19Ci0tCi0tbWFj cm9fcnVsZXMhIGltcGxfZnJvbV9jYXN0X21hc2tfIHsKLS0gICAgKCRpZDppZGVudFskdGVzdF90 dDp0dF06ICRmcm9tX3R5OmlkZW50KSA9PiB7Ci0tICAgICAgICBpbXBsIGNyYXRlOjphcGk6OmNh c3Q6OkZyb21DYXN0PCRmcm9tX3R5PiBmb3IgJGlkIHsKLS0gICAgICAgICAgICAjW2lubGluZV0K LS0gICAgICAgICAgICBmbiBmcm9tX2Nhc3QoeDogJGZyb21fdHkpIC0+IFNlbGYgewotLSAgICAg ICAgICAgICAgICBkZWJ1Z19hc3NlcnRfZXEhKCRmcm9tX3R5OjpsYW5lcygpLCAkaWQ6OmxhbmVz KCkpOwotLSAgICAgICAgICAgICAgICB4Lm5lKCRmcm9tX3R5OjpkZWZhdWx0KCkpCi0tICAgICAg ICAgICAgICAgICAgICAuc2VsZWN0KCRpZDo6c3BsYXQodHJ1ZSksICRpZDo6c3BsYXQoZmFsc2Up KQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0KLS0gICAgICAgIHRlc3RfaWYhewotLSAg ICAgICAgICAgICR0ZXN0X3R0OgotLSAgICAgICAgICAgIHBhc3RlOjppdGVtISB7Ci0tICAgICAg ICAgICAgICAgIHB1YiBtb2QgWzwkaWQgX2Zyb21fY2FzdF8gJGZyb21fdHk+XSB7Ci0tICAgICAg ICAgICAgICAgICAgICB1c2Ugc3VwZXI6Oio7Ci0tICAgICAgICAgICAgICAgICAgICAjW2NmZ19h dHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldICNbY2ZnX2F0dHIodGFyZ2V0 X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQotLSAgICAgICAgICAgICAgICAg ICAgZm4gdGVzdCgpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKCRpZDo6 bGFuZXMoKSwgJGZyb21fdHk6OmxhbmVzKCkpOwotLQotLSAgICAgICAgICAgICAgICAgICAgICAg IGxldCB4ID0gJGZyb21fdHk6OmRlZmF1bHQoKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBs ZXQgbTogJGlkID0geC5jYXN0KCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0ISht Lm5vbmUoKSk7Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgIH0KLS0g ICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgIH07Ci0tfQotLQotLW1hY3JvX3J1bGVzISBp bXBsX2Zyb21fY2FzdF9tYXNrIHsKLS0gICAgKCRpZDppZGVudFskdGVzdF90dDp0dF06ICQoJGZy b21fdHk6aWRlbnQpLCopID0+IHsKLS0gICAgICAgICQoCi0tICAgICAgICAgICAgaW1wbF9mcm9t X2Nhc3RfbWFza18hKCRpZFskdGVzdF90dF06ICRmcm9tX3R5KTsKLS0gICAgICAgICkqCi0tICAg IH0KLS19Ci0tCi0tI1thbGxvdyh1bnVzZWQpXQotLW1hY3JvX3J1bGVzISBpbXBsX2ludG9fY2Fz dCB7Ci0tICAgICgkaWQ6aWRlbnRbJHRlc3RfdHQ6dHRdOiAkKCRmcm9tX3R5OmlkZW50KSwqKSA9 PiB7Ci0tICAgICAgICAkKAotLSAgICAgICAgICAgIGltcGxfZnJvbV9jYXN0XyEoJGZyb21fdHlb JHRlc3RfdHRdOiAkaWQpOwotLSAgICAgICAgKSoKLS0gICAgfQotLX0KLWRpZmYgLU5yYnUgYS90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvY2FzdC92MTI4LnJzIGIvdGhpcmRf cGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2Nhc3QvdjEyOC5ycwotLS0tIGEvdGhpcmRf cGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2Nhc3QvdjEyOC5ycwkyMDI1LTA0LTIwIDE5 OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2lt ZC9zcmMvYXBpL2Nhc3QvdjEyOC5ycwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMw MAotQEAgLTEsMzAyICswLDAgQEAKLS0vLyEgYEZyb21DYXN0YCBhbmQgYEludG9DYXN0YCBpbXBs ZW1lbnRhdGlvbnMgZm9yIHBvcnRhYmxlIDEyOC1iaXQgd2lkZSB2ZWN0b3JzCi0tI1tydXN0Zm10 Ojpza2lwXQotLQotLXVzZSBjcmF0ZTo6KjsKLS0KLS1pbXBsX2Zyb21fY2FzdCEoaTh4MTZbdGVz dF92MTI4XTogdTh4MTYsIG04eDE2LCBpMTZ4MTYsIHUxNngxNiwgbTE2eDE2LCBpMzJ4MTYsIHUz MngxNiwgZjMyeDE2LCBtMzJ4MTYpOwotLWltcGxfZnJvbV9jYXN0ISh1OHgxNlt0ZXN0X3YxMjhd OiBpOHgxNiwgbTh4MTYsIGkxNngxNiwgdTE2eDE2LCBtMTZ4MTYsIGkzMngxNiwgdTMyeDE2LCBm MzJ4MTYsIG0zMngxNik7Ci0taW1wbF9mcm9tX2Nhc3RfbWFzayEobTh4MTZbdGVzdF92MTI4XTog aTh4MTYsIHU4eDE2LCBpMTZ4MTYsIHUxNngxNiwgbTE2eDE2LCBpMzJ4MTYsIHUzMngxNiwgZjMy eDE2LCBtMzJ4MTYpOwotLQotLWltcGxfZnJvbV9jYXN0ISgKLS0gICAgaTE2eDhbdGVzdF92MTI4 XTogaTh4OCwKLS0gICAgdTh4OCwKLS0gICAgbTh4OCwKLS0gICAgdTE2eDgsCi0tICAgIG0xNng4 LAotLSAgICBpMzJ4OCwKLS0gICAgdTMyeDgsCi0tICAgIGYzMng4LAotLSAgICBtMzJ4OCwKLS0g ICAgaTY0eDgsCi0tICAgIHU2NHg4LAotLSAgICBmNjR4OCwKLS0gICAgbTY0eDgsCi0tICAgIGlz aXpleDgsCi0tICAgIHVzaXpleDgsCi0tICAgIG1zaXpleDgKLS0pOwotLWltcGxfZnJvbV9jYXN0 ISgKLS0gICAgdTE2eDhbdGVzdF92MTI4XTogaTh4OCwKLS0gICAgdTh4OCwKLS0gICAgbTh4OCwK LS0gICAgaTE2eDgsCi0tICAgIG0xNng4LAotLSAgICBpMzJ4OCwKLS0gICAgdTMyeDgsCi0tICAg IGYzMng4LAotLSAgICBtMzJ4OCwKLS0gICAgaTY0eDgsCi0tICAgIHU2NHg4LAotLSAgICBmNjR4 OCwKLS0gICAgbTY0eDgsCi0tICAgIGlzaXpleDgsCi0tICAgIHVzaXpleDgsCi0tICAgIG1zaXpl eDgKLS0pOwotLWltcGxfZnJvbV9jYXN0X21hc2shKAotLSAgICBtMTZ4OFt0ZXN0X3YxMjhdOiBp OHg4LAotLSAgICB1OHg4LAotLSAgICBtOHg4LAotLSAgICBpMTZ4OCwKLS0gICAgdTE2eDgsCi0t ICAgIGkzMng4LAotLSAgICB1MzJ4OCwKLS0gICAgZjMyeDgsCi0tICAgIG0zMng4LAotLSAgICBp NjR4OCwKLS0gICAgdTY0eDgsCi0tICAgIGY2NHg4LAotLSAgICBtNjR4OCwKLS0gICAgaXNpemV4 OCwKLS0gICAgdXNpemV4OCwKLS0gICAgbXNpemV4OAotLSk7Ci0tCi0taW1wbF9mcm9tX2Nhc3Qh KAotLSAgICBpMzJ4NFt0ZXN0X3YxMjhdOiBpOHg0LAotLSAgICB1OHg0LAotLSAgICBtOHg0LAot LSAgICBpMTZ4NCwKLS0gICAgdTE2eDQsCi0tICAgIG0xNng0LAotLSAgICB1MzJ4NCwKLS0gICAg ZjMyeDQsCi0tICAgIG0zMng0LAotLSAgICBpNjR4NCwKLS0gICAgdTY0eDQsCi0tICAgIGY2NHg0 LAotLSAgICBtNjR4NCwKLS0gICAgaTEyOHg0LAotLSAgICB1MTI4eDQsCi0tICAgIG0xMjh4NCwK LS0gICAgaXNpemV4NCwKLS0gICAgdXNpemV4NCwKLS0gICAgbXNpemV4NAotLSk7Ci0taW1wbF9m cm9tX2Nhc3QhKAotLSAgICB1MzJ4NFt0ZXN0X3YxMjhdOiBpOHg0LAotLSAgICB1OHg0LAotLSAg ICBtOHg0LAotLSAgICBpMTZ4NCwKLS0gICAgdTE2eDQsCi0tICAgIG0xNng0LAotLSAgICBpMzJ4 NCwKLS0gICAgZjMyeDQsCi0tICAgIG0zMng0LAotLSAgICBpNjR4NCwKLS0gICAgdTY0eDQsCi0t ICAgIGY2NHg0LAotLSAgICBtNjR4NCwKLS0gICAgaTEyOHg0LAotLSAgICB1MTI4eDQsCi0tICAg IG0xMjh4NCwKLS0gICAgaXNpemV4NCwKLS0gICAgdXNpemV4NCwKLS0gICAgbXNpemV4NAotLSk7 Ci0taW1wbF9mcm9tX2Nhc3QhKAotLSAgICBmMzJ4NFt0ZXN0X3YxMjhdOiBpOHg0LAotLSAgICB1 OHg0LAotLSAgICBtOHg0LAotLSAgICBpMTZ4NCwKLS0gICAgdTE2eDQsCi0tICAgIG0xNng0LAot LSAgICBpMzJ4NCwKLS0gICAgdTMyeDQsCi0tICAgIG0zMng0LAotLSAgICBpNjR4NCwKLS0gICAg dTY0eDQsCi0tICAgIGY2NHg0LAotLSAgICBtNjR4NCwKLS0gICAgaTEyOHg0LAotLSAgICB1MTI4 eDQsCi0tICAgIG0xMjh4NCwKLS0gICAgaXNpemV4NCwKLS0gICAgdXNpemV4NCwKLS0gICAgbXNp emV4NAotLSk7Ci0taW1wbF9mcm9tX2Nhc3RfbWFzayEoCi0tICAgIG0zMng0W3Rlc3RfdjEyOF06 IGk4eDQsCi0tICAgIHU4eDQsCi0tICAgIG04eDQsCi0tICAgIGkxNng0LAotLSAgICB1MTZ4NCwK LS0gICAgbTE2eDQsCi0tICAgIGkzMng0LAotLSAgICB1MzJ4NCwKLS0gICAgZjMyeDQsCi0tICAg IGk2NHg0LAotLSAgICB1NjR4NCwKLS0gICAgZjY0eDQsCi0tICAgIG02NHg0LAotLSAgICBpMTI4 eDQsCi0tICAgIHUxMjh4NCwKLS0gICAgbTEyOHg0LAotLSAgICBpc2l6ZXg0LAotLSAgICB1c2l6 ZXg0LAotLSAgICBtc2l6ZXg0Ci0tKTsKLS0KLS1pbXBsX2Zyb21fY2FzdCEoCi0tICAgIGk2NHgy W3Rlc3RfdjEyOF06IGk4eDIsCi0tICAgIHU4eDIsCi0tICAgIG04eDIsCi0tICAgIGkxNngyLAot LSAgICB1MTZ4MiwKLS0gICAgbTE2eDIsCi0tICAgIGkzMngyLAotLSAgICB1MzJ4MiwKLS0gICAg ZjMyeDIsCi0tICAgIG0zMngyLAotLSAgICB1NjR4MiwKLS0gICAgZjY0eDIsCi0tICAgIG02NHgy LAotLSAgICBpMTI4eDIsCi0tICAgIHUxMjh4MiwKLS0gICAgbTEyOHgyLAotLSAgICBpc2l6ZXgy LAotLSAgICB1c2l6ZXgyLAotLSAgICBtc2l6ZXgyCi0tKTsKLS1pbXBsX2Zyb21fY2FzdCEoCi0t ICAgIHU2NHgyW3Rlc3RfdjEyOF06IGk4eDIsCi0tICAgIHU4eDIsCi0tICAgIG04eDIsCi0tICAg IGkxNngyLAotLSAgICB1MTZ4MiwKLS0gICAgbTE2eDIsCi0tICAgIGkzMngyLAotLSAgICB1MzJ4 MiwKLS0gICAgZjMyeDIsCi0tICAgIG0zMngyLAotLSAgICBpNjR4MiwKLS0gICAgZjY0eDIsCi0t ICAgIG02NHgyLAotLSAgICBpMTI4eDIsCi0tICAgIHUxMjh4MiwKLS0gICAgbTEyOHgyLAotLSAg ICBpc2l6ZXgyLAotLSAgICB1c2l6ZXgyLAotLSAgICBtc2l6ZXgyCi0tKTsKLS1pbXBsX2Zyb21f Y2FzdCEoCi0tICAgIGY2NHgyW3Rlc3RfdjEyOF06IGk4eDIsCi0tICAgIHU4eDIsCi0tICAgIG04 eDIsCi0tICAgIGkxNngyLAotLSAgICB1MTZ4MiwKLS0gICAgbTE2eDIsCi0tICAgIGkzMngyLAot LSAgICB1MzJ4MiwKLS0gICAgZjMyeDIsCi0tICAgIG0zMngyLAotLSAgICBpNjR4MiwKLS0gICAg dTY0eDIsCi0tICAgIG02NHgyLAotLSAgICBpMTI4eDIsCi0tICAgIHUxMjh4MiwKLS0gICAgbTEy OHgyLAotLSAgICBpc2l6ZXgyLAotLSAgICB1c2l6ZXgyLAotLSAgICBtc2l6ZXgyCi0tKTsKLS1p bXBsX2Zyb21fY2FzdF9tYXNrISgKLS0gICAgbTY0eDJbdGVzdF92MTI4XTogaTh4MiwKLS0gICAg dTh4MiwKLS0gICAgbTh4MiwKLS0gICAgaTE2eDIsCi0tICAgIHUxNngyLAotLSAgICBtMTZ4MiwK LS0gICAgaTMyeDIsCi0tICAgIHUzMngyLAotLSAgICBmMzJ4MiwKLS0gICAgbTMyeDIsCi0tICAg IGk2NHgyLAotLSAgICB1NjR4MiwKLS0gICAgZjY0eDIsCi0tICAgIGkxMjh4MiwKLS0gICAgdTEy OHgyLAotLSAgICBtMTI4eDIsCi0tICAgIGlzaXpleDIsCi0tICAgIHVzaXpleDIsCi0tICAgIG1z aXpleDIKLS0pOwotLQotLWltcGxfZnJvbV9jYXN0ISgKLS0gICAgaXNpemV4Mlt0ZXN0X3YxMjhd OiBpOHgyLAotLSAgICB1OHgyLAotLSAgICBtOHgyLAotLSAgICBpMTZ4MiwKLS0gICAgdTE2eDIs Ci0tICAgIG0xNngyLAotLSAgICBpMzJ4MiwKLS0gICAgdTMyeDIsCi0tICAgIGYzMngyLAotLSAg ICBtMzJ4MiwKLS0gICAgaTY0eDIsCi0tICAgIHU2NHgyLAotLSAgICBmNjR4MiwKLS0gICAgbTY0 eDIsCi0tICAgIGkxMjh4MiwKLS0gICAgdTEyOHgyLAotLSAgICBtMTI4eDIsCi0tICAgIHVzaXpl eDIsCi0tICAgIG1zaXpleDIKLS0pOwotLWltcGxfZnJvbV9jYXN0ISgKLS0gICAgdXNpemV4Mlt0 ZXN0X3YxMjhdOiBpOHgyLAotLSAgICB1OHgyLAotLSAgICBtOHgyLAotLSAgICBpMTZ4MiwKLS0g ICAgdTE2eDIsCi0tICAgIG0xNngyLAotLSAgICBpMzJ4MiwKLS0gICAgdTMyeDIsCi0tICAgIGYz MngyLAotLSAgICBtMzJ4MiwKLS0gICAgaTY0eDIsCi0tICAgIHU2NHgyLAotLSAgICBmNjR4MiwK LS0gICAgbTY0eDIsCi0tICAgIGkxMjh4MiwKLS0gICAgdTEyOHgyLAotLSAgICBtMTI4eDIsCi0t ICAgIGlzaXpleDIsCi0tICAgIG1zaXpleDIKLS0pOwotLWltcGxfZnJvbV9jYXN0X21hc2shKAot LSAgICBtc2l6ZXgyW3Rlc3RfdjEyOF06IGk4eDIsCi0tICAgIHU4eDIsCi0tICAgIG04eDIsCi0t ICAgIGkxNngyLAotLSAgICB1MTZ4MiwKLS0gICAgbTE2eDIsCi0tICAgIGkzMngyLAotLSAgICB1 MzJ4MiwKLS0gICAgZjMyeDIsCi0tICAgIG0zMngyLAotLSAgICBpNjR4MiwKLS0gICAgdTY0eDIs Ci0tICAgIGY2NHgyLAotLSAgICBtNjR4MiwKLS0gICAgaTEyOHgyLAotLSAgICB1MTI4eDIsCi0t ICAgIG0xMjh4MiwKLS0gICAgaXNpemV4MiwKLS0gICAgdXNpemV4MgotLSk7Ci0tCi0tLy8gRklY TUVbdGVzdF92MTI4XTogNjQtYml0IHNpbmdsZSBlbGVtZW50IHZlY3RvcnMgaW50b19jYXN0IGlt cGxzCi0taW1wbF9mcm9tX2Nhc3QhKGkxMjh4MVt0ZXN0X3YxMjhdOiB1MTI4eDEsIG0xMjh4MSk7 Ci0taW1wbF9mcm9tX2Nhc3QhKHUxMjh4MVt0ZXN0X3YxMjhdOiBpMTI4eDEsIG0xMjh4MSk7Ci0t aW1wbF9mcm9tX2Nhc3QhKG0xMjh4MVt0ZXN0X3YxMjhdOiBpMTI4eDEsIHUxMjh4MSk7Ci1kaWZm IC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2Nhc3QvdjE2LnJz IGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2Nhc3QvdjE2LnJzCi0tLS0g YS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvY2FzdC92MTYucnMJMjAyNS0w NC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFj a2VkX3NpbWQvc3JjL2FwaS9jYXN0L3YxNi5ycwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAw MCArMDMwMAotQEAgLTEsNjggKzAsMCBAQAotLS8vISBgRnJvbUNhc3RgIGFuZCBgSW50b0Nhc3Rg IGltcGxlbWVudGF0aW9ucyBmb3IgcG9ydGFibGUgMTYtYml0IHdpZGUgdmVjdG9ycwotLSNbcnVz dGZtdDo6c2tpcF0KLS0KLS11c2UgY3JhdGU6Oio7Ci0tCi0taW1wbF9mcm9tX2Nhc3QhKAotLSAg ICBpOHgyW3Rlc3RfdjE2XTogdTh4MiwKLS0gICAgbTh4MiwKLS0gICAgaTE2eDIsCi0tICAgIHUx NngyLAotLSAgICBtMTZ4MiwKLS0gICAgaTMyeDIsCi0tICAgIHUzMngyLAotLSAgICBmMzJ4MiwK LS0gICAgbTMyeDIsCi0tICAgIGk2NHgyLAotLSAgICB1NjR4MiwKLS0gICAgZjY0eDIsCi0tICAg IG02NHgyLAotLSAgICBpMTI4eDIsCi0tICAgIHUxMjh4MiwKLS0gICAgbTEyOHgyLAotLSAgICBp c2l6ZXgyLAotLSAgICB1c2l6ZXgyLAotLSAgICBtc2l6ZXgyCi0tKTsKLS1pbXBsX2Zyb21fY2Fz dCEoCi0tICAgIHU4eDJbdGVzdF92MTZdOiBpOHgyLAotLSAgICBtOHgyLAotLSAgICBpMTZ4MiwK LS0gICAgdTE2eDIsCi0tICAgIG0xNngyLAotLSAgICBpMzJ4MiwKLS0gICAgdTMyeDIsCi0tICAg IGYzMngyLAotLSAgICBtMzJ4MiwKLS0gICAgaTY0eDIsCi0tICAgIHU2NHgyLAotLSAgICBmNjR4 MiwKLS0gICAgbTY0eDIsCi0tICAgIGkxMjh4MiwKLS0gICAgdTEyOHgyLAotLSAgICBtMTI4eDIs Ci0tICAgIGlzaXpleDIsCi0tICAgIHVzaXpleDIsCi0tICAgIG1zaXpleDIKLS0pOwotLWltcGxf ZnJvbV9jYXN0X21hc2shKAotLSAgICBtOHgyW3Rlc3RfdjE2XTogaTh4MiwKLS0gICAgdTh4MiwK LS0gICAgaTE2eDIsCi0tICAgIHUxNngyLAotLSAgICBtMTZ4MiwKLS0gICAgaTMyeDIsCi0tICAg IHUzMngyLAotLSAgICBmMzJ4MiwKLS0gICAgbTMyeDIsCi0tICAgIGk2NHgyLAotLSAgICB1NjR4 MiwKLS0gICAgZjY0eDIsCi0tICAgIG02NHgyLAotLSAgICBpMTI4eDIsCi0tICAgIHUxMjh4MiwK LS0gICAgbTEyOHgyLAotLSAgICBpc2l6ZXgyLAotLSAgICB1c2l6ZXgyLAotLSAgICBtc2l6ZXgy Ci0tKTsKLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkv Y2FzdC92MjU2LnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2Nhc3Qv djI1Ni5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2Nhc3Qv djI1Ni5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRf cGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2Nhc3QvdjI1Ni5ycwkxOTcwLTAxLTAxIDAz OjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsMjk4ICswLDAgQEAKLS0vLyEgYEZyb21DYXN0 YCBhbmQgYEludG9DYXN0YCBpbXBsZW1lbnRhdGlvbnMgZm9yIHBvcnRhYmxlIDI1Ni1iaXQgd2lk ZSB2ZWN0b3JzCi0tI1tydXN0Zm10Ojpza2lwXQotLQotLXVzZSBjcmF0ZTo6KjsKLS0KLS1pbXBs X2Zyb21fY2FzdCEoaTh4MzJbdGVzdF92MjU2XTogdTh4MzIsIG04eDMyLCBpMTZ4MzIsIHUxNngz MiwgbTE2eDMyKTsKLS1pbXBsX2Zyb21fY2FzdCEodTh4MzJbdGVzdF92MjU2XTogaTh4MzIsIG04 eDMyLCBpMTZ4MzIsIHUxNngzMiwgbTE2eDMyKTsKLS1pbXBsX2Zyb21fY2FzdF9tYXNrIShtOHgz Mlt0ZXN0X3YyNTZdOiBpOHgzMiwgdTh4MzIsIGkxNngzMiwgdTE2eDMyLCBtMTZ4MzIpOwotLQot LWltcGxfZnJvbV9jYXN0IShpMTZ4MTZbdGVzdF92MjU2XTogaTh4MTYsIHU4eDE2LCBtOHgxNiwg dTE2eDE2LCBtMTZ4MTYsIGkzMngxNiwgdTMyeDE2LCBmMzJ4MTYsIG0zMngxNik7Ci0taW1wbF9m cm9tX2Nhc3QhKHUxNngxNlt0ZXN0X3YyNTZdOiBpOHgxNiwgdTh4MTYsIG04eDE2LCBpMTZ4MTYs IG0xNngxNiwgaTMyeDE2LCB1MzJ4MTYsIGYzMngxNiwgbTMyeDE2KTsKLS1pbXBsX2Zyb21fY2Fz dF9tYXNrIShtMTZ4MTZbdGVzdF92MjU2XTogaTh4MTYsIHU4eDE2LCBtOHgxNiwgaTE2eDE2LCB1 MTZ4MTYsIGkzMngxNiwgdTMyeDE2LCBmMzJ4MTYsIG0zMngxNik7Ci0tCi0taW1wbF9mcm9tX2Nh c3QhKAotLSAgICBpMzJ4OFt0ZXN0X3YyNTZdOiBpOHg4LAotLSAgICB1OHg4LAotLSAgICBtOHg4 LAotLSAgICBpMTZ4OCwKLS0gICAgdTE2eDgsCi0tICAgIG0xNng4LAotLSAgICB1MzJ4OCwKLS0g ICAgZjMyeDgsCi0tICAgIG0zMng4LAotLSAgICBpNjR4OCwKLS0gICAgdTY0eDgsCi0tICAgIGY2 NHg4LAotLSAgICBtNjR4OCwKLS0gICAgaXNpemV4OCwKLS0gICAgdXNpemV4OCwKLS0gICAgbXNp emV4OAotLSk7Ci0taW1wbF9mcm9tX2Nhc3QhKAotLSAgICB1MzJ4OFt0ZXN0X3YyNTZdOiBpOHg4 LAotLSAgICB1OHg4LAotLSAgICBtOHg4LAotLSAgICBpMTZ4OCwKLS0gICAgdTE2eDgsCi0tICAg IG0xNng4LAotLSAgICBpMzJ4OCwKLS0gICAgZjMyeDgsCi0tICAgIG0zMng4LAotLSAgICBpNjR4 OCwKLS0gICAgdTY0eDgsCi0tICAgIGY2NHg4LAotLSAgICBtNjR4OCwKLS0gICAgaXNpemV4OCwK LS0gICAgdXNpemV4OCwKLS0gICAgbXNpemV4OAotLSk7Ci0taW1wbF9mcm9tX2Nhc3QhKAotLSAg ICBmMzJ4OFt0ZXN0X3YyNTZdOiBpOHg4LAotLSAgICB1OHg4LAotLSAgICBtOHg4LAotLSAgICBp MTZ4OCwKLS0gICAgdTE2eDgsCi0tICAgIG0xNng4LAotLSAgICBpMzJ4OCwKLS0gICAgdTMyeDgs Ci0tICAgIG0zMng4LAotLSAgICBpNjR4OCwKLS0gICAgdTY0eDgsCi0tICAgIGY2NHg4LAotLSAg ICBtNjR4OCwKLS0gICAgaXNpemV4OCwKLS0gICAgdXNpemV4OCwKLS0gICAgbXNpemV4OAotLSk7 Ci0taW1wbF9mcm9tX2Nhc3RfbWFzayEoCi0tICAgIG0zMng4W3Rlc3RfdjI1Nl06IGk4eDgsCi0t ICAgIHU4eDgsCi0tICAgIG04eDgsCi0tICAgIGkxNng4LAotLSAgICB1MTZ4OCwKLS0gICAgbTE2 eDgsCi0tICAgIGkzMng4LAotLSAgICB1MzJ4OCwKLS0gICAgZjMyeDgsCi0tICAgIGk2NHg4LAot LSAgICB1NjR4OCwKLS0gICAgZjY0eDgsCi0tICAgIG02NHg4LAotLSAgICBpc2l6ZXg4LAotLSAg ICB1c2l6ZXg4LAotLSAgICBtc2l6ZXg4Ci0tKTsKLS0KLS1pbXBsX2Zyb21fY2FzdCEoCi0tICAg IGk2NHg0W3Rlc3RfdjI1Nl06IGk4eDQsCi0tICAgIHU4eDQsCi0tICAgIG04eDQsCi0tICAgIGkx Nng0LAotLSAgICB1MTZ4NCwKLS0gICAgbTE2eDQsCi0tICAgIGkzMng0LAotLSAgICB1MzJ4NCwK LS0gICAgZjMyeDQsCi0tICAgIG0zMng0LAotLSAgICB1NjR4NCwKLS0gICAgZjY0eDQsCi0tICAg IG02NHg0LAotLSAgICBpMTI4eDQsCi0tICAgIHUxMjh4NCwKLS0gICAgbTEyOHg0LAotLSAgICBp c2l6ZXg0LAotLSAgICB1c2l6ZXg0LAotLSAgICBtc2l6ZXg0Ci0tKTsKLS1pbXBsX2Zyb21fY2Fz dCEoCi0tICAgIHU2NHg0W3Rlc3RfdjI1Nl06IGk4eDQsCi0tICAgIHU4eDQsCi0tICAgIG04eDQs Ci0tICAgIGkxNng0LAotLSAgICB1MTZ4NCwKLS0gICAgbTE2eDQsCi0tICAgIGkzMng0LAotLSAg ICB1MzJ4NCwKLS0gICAgZjMyeDQsCi0tICAgIG0zMng0LAotLSAgICBpNjR4NCwKLS0gICAgZjY0 eDQsCi0tICAgIG02NHg0LAotLSAgICBpMTI4eDQsCi0tICAgIHUxMjh4NCwKLS0gICAgbTEyOHg0 LAotLSAgICBpc2l6ZXg0LAotLSAgICB1c2l6ZXg0LAotLSAgICBtc2l6ZXg0Ci0tKTsKLS1pbXBs X2Zyb21fY2FzdCEoCi0tICAgIGY2NHg0W3Rlc3RfdjI1Nl06IGk4eDQsCi0tICAgIHU4eDQsCi0t ICAgIG04eDQsCi0tICAgIGkxNng0LAotLSAgICB1MTZ4NCwKLS0gICAgbTE2eDQsCi0tICAgIGkz Mng0LAotLSAgICB1MzJ4NCwKLS0gICAgZjMyeDQsCi0tICAgIG0zMng0LAotLSAgICBpNjR4NCwK LS0gICAgdTY0eDQsCi0tICAgIG02NHg0LAotLSAgICBpMTI4eDQsCi0tICAgIHUxMjh4NCwKLS0g ICAgbTEyOHg0LAotLSAgICBpc2l6ZXg0LAotLSAgICB1c2l6ZXg0LAotLSAgICBtc2l6ZXg0Ci0t KTsKLS1pbXBsX2Zyb21fY2FzdF9tYXNrISgKLS0gICAgbTY0eDRbdGVzdF92MjU2XTogaTh4NCwK LS0gICAgdTh4NCwKLS0gICAgbTh4NCwKLS0gICAgaTE2eDQsCi0tICAgIHUxNng0LAotLSAgICBt MTZ4NCwKLS0gICAgaTMyeDQsCi0tICAgIHUzMng0LAotLSAgICBmMzJ4NCwKLS0gICAgbTMyeDQs Ci0tICAgIGk2NHg0LAotLSAgICB1NjR4NCwKLS0gICAgZjY0eDQsCi0tICAgIGkxMjh4NCwKLS0g ICAgdTEyOHg0LAotLSAgICBtMTI4eDQsCi0tICAgIGlzaXpleDQsCi0tICAgIHVzaXpleDQsCi0t ICAgIG1zaXpleDQKLS0pOwotLQotLWltcGxfZnJvbV9jYXN0ISgKLS0gICAgaTEyOHgyW3Rlc3Rf djI1Nl06IGk4eDIsCi0tICAgIHU4eDIsCi0tICAgIG04eDIsCi0tICAgIGkxNngyLAotLSAgICB1 MTZ4MiwKLS0gICAgbTE2eDIsCi0tICAgIGkzMngyLAotLSAgICB1MzJ4MiwKLS0gICAgZjMyeDIs Ci0tICAgIG0zMngyLAotLSAgICBpNjR4MiwKLS0gICAgdTY0eDIsCi0tICAgIGY2NHgyLAotLSAg ICBtNjR4MiwKLS0gICAgdTEyOHgyLAotLSAgICBtMTI4eDIsCi0tICAgIGlzaXpleDIsCi0tICAg IHVzaXpleDIsCi0tICAgIG1zaXpleDIKLS0pOwotLWltcGxfZnJvbV9jYXN0ISgKLS0gICAgdTEy OHgyW3Rlc3RfdjI1Nl06IGk4eDIsCi0tICAgIHU4eDIsCi0tICAgIG04eDIsCi0tICAgIGkxNngy LAotLSAgICB1MTZ4MiwKLS0gICAgbTE2eDIsCi0tICAgIGkzMngyLAotLSAgICB1MzJ4MiwKLS0g ICAgZjMyeDIsCi0tICAgIG0zMngyLAotLSAgICBpNjR4MiwKLS0gICAgdTY0eDIsCi0tICAgIGY2 NHgyLAotLSAgICBtNjR4MiwKLS0gICAgaTEyOHgyLAotLSAgICBtMTI4eDIsCi0tICAgIGlzaXpl eDIsCi0tICAgIHVzaXpleDIsCi0tICAgIG1zaXpleDIKLS0pOwotLWltcGxfZnJvbV9jYXN0X21h c2shKAotLSAgICBtMTI4eDJbdGVzdF92MjU2XTogaTh4MiwKLS0gICAgdTh4MiwKLS0gICAgbTh4 MiwKLS0gICAgaTE2eDIsCi0tICAgIHUxNngyLAotLSAgICBtMTZ4MiwKLS0gICAgaTMyeDIsCi0t ICAgIHUzMngyLAotLSAgICBmMzJ4MiwKLS0gICAgbTMyeDIsCi0tICAgIGk2NHgyLAotLSAgICB1 NjR4MiwKLS0gICAgbTY0eDIsCi0tICAgIGY2NHgyLAotLSAgICBpMTI4eDIsCi0tICAgIHUxMjh4 MiwKLS0gICAgaXNpemV4MiwKLS0gICAgdXNpemV4MiwKLS0gICAgbXNpemV4MgotLSk7Ci0tCi0t aW1wbF9mcm9tX2Nhc3QhKAotLSAgICBpc2l6ZXg0W3Rlc3RfdjI1Nl06IGk4eDQsCi0tICAgIHU4 eDQsCi0tICAgIG04eDQsCi0tICAgIGkxNng0LAotLSAgICB1MTZ4NCwKLS0gICAgbTE2eDQsCi0t ICAgIGkzMng0LAotLSAgICB1MzJ4NCwKLS0gICAgZjMyeDQsCi0tICAgIG0zMng0LAotLSAgICBp NjR4NCwKLS0gICAgdTY0eDQsCi0tICAgIGY2NHg0LAotLSAgICBtNjR4NCwKLS0gICAgaTEyOHg0 LAotLSAgICB1MTI4eDQsCi0tICAgIG0xMjh4NCwKLS0gICAgdXNpemV4NCwKLS0gICAgbXNpemV4 NAotLSk7Ci0taW1wbF9mcm9tX2Nhc3QhKAotLSAgICB1c2l6ZXg0W3Rlc3RfdjI1Nl06IGk4eDQs Ci0tICAgIHU4eDQsCi0tICAgIG04eDQsCi0tICAgIGkxNng0LAotLSAgICB1MTZ4NCwKLS0gICAg bTE2eDQsCi0tICAgIGkzMng0LAotLSAgICB1MzJ4NCwKLS0gICAgZjMyeDQsCi0tICAgIG0zMng0 LAotLSAgICBpNjR4NCwKLS0gICAgdTY0eDQsCi0tICAgIGY2NHg0LAotLSAgICBtNjR4NCwKLS0g ICAgaTEyOHg0LAotLSAgICB1MTI4eDQsCi0tICAgIG0xMjh4NCwKLS0gICAgaXNpemV4NCwKLS0g ICAgbXNpemV4NAotLSk7Ci0taW1wbF9mcm9tX2Nhc3RfbWFzayEoCi0tICAgIG1zaXpleDRbdGVz dF92MjU2XTogaTh4NCwKLS0gICAgdTh4NCwKLS0gICAgbTh4NCwKLS0gICAgaTE2eDQsCi0tICAg IHUxNng0LAotLSAgICBtMTZ4NCwKLS0gICAgaTMyeDQsCi0tICAgIHUzMng0LAotLSAgICBmMzJ4 NCwKLS0gICAgbTMyeDQsCi0tICAgIGk2NHg0LAotLSAgICB1NjR4NCwKLS0gICAgZjY0eDQsCi0t ICAgIG02NHg0LAotLSAgICBpMTI4eDQsCi0tICAgIHUxMjh4NCwKLS0gICAgbTEyOHg0LAotLSAg ICBpc2l6ZXg0LAotLSAgICB1c2l6ZXg0Ci0tKTsKLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9y dXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvY2FzdC92MzIucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3Bh Y2tlZF9zaW1kL3NyYy9hcGkvY2FzdC92MzIucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFj a2VkX3NpbWQvc3JjL2FwaS9jYXN0L3YzMi5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAw MCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2Nhc3Qv djMyLnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSwxMzIgKzAs MCBAQAotLS8vISBgRnJvbUNhc3RgIGFuZCBgSW50b0Nhc3RgIGltcGxlbWVudGF0aW9ucyBmb3Ig cG9ydGFibGUgMzItYml0IHdpZGUgdmVjdG9ycwotLSNbcnVzdGZtdDo6c2tpcF0KLS0KLS11c2Ug Y3JhdGU6Oio7Ci0tCi0taW1wbF9mcm9tX2Nhc3QhKAotLSAgICBpOHg0W3Rlc3RfdjMyXTogdTh4 NCwKLS0gICAgbTh4NCwKLS0gICAgaTE2eDQsCi0tICAgIHUxNng0LAotLSAgICBtMTZ4NCwKLS0g ICAgaTMyeDQsCi0tICAgIHUzMng0LAotLSAgICBmMzJ4NCwKLS0gICAgbTMyeDQsCi0tICAgIGk2 NHg0LAotLSAgICB1NjR4NCwKLS0gICAgZjY0eDQsCi0tICAgIG02NHg0LAotLSAgICBpMTI4eDQs Ci0tICAgIHUxMjh4NCwKLS0gICAgbTEyOHg0LAotLSAgICBpc2l6ZXg0LAotLSAgICB1c2l6ZXg0 LAotLSAgICBtc2l6ZXg0Ci0tKTsKLS1pbXBsX2Zyb21fY2FzdCEoCi0tICAgIHU4eDRbdGVzdF92 MzJdOiBpOHg0LAotLSAgICBtOHg0LAotLSAgICBpMTZ4NCwKLS0gICAgdTE2eDQsCi0tICAgIG0x Nng0LAotLSAgICBpMzJ4NCwKLS0gICAgdTMyeDQsCi0tICAgIGYzMng0LAotLSAgICBtMzJ4NCwK LS0gICAgaTY0eDQsCi0tICAgIHU2NHg0LAotLSAgICBmNjR4NCwKLS0gICAgbTY0eDQsCi0tICAg IGkxMjh4NCwKLS0gICAgdTEyOHg0LAotLSAgICBtMTI4eDQsCi0tICAgIGlzaXpleDQsCi0tICAg IHVzaXpleDQsCi0tICAgIG1zaXpleDQKLS0pOwotLWltcGxfZnJvbV9jYXN0X21hc2shKAotLSAg ICBtOHg0W3Rlc3RfdjMyXTogaTh4NCwKLS0gICAgdTh4NCwKLS0gICAgaTE2eDQsCi0tICAgIHUx Nng0LAotLSAgICBtMTZ4NCwKLS0gICAgaTMyeDQsCi0tICAgIHUzMng0LAotLSAgICBmMzJ4NCwK LS0gICAgbTMyeDQsCi0tICAgIGk2NHg0LAotLSAgICB1NjR4NCwKLS0gICAgZjY0eDQsCi0tICAg IG02NHg0LAotLSAgICBpMTI4eDQsCi0tICAgIHUxMjh4NCwKLS0gICAgbTEyOHg0LAotLSAgICBp c2l6ZXg0LAotLSAgICB1c2l6ZXg0LAotLSAgICBtc2l6ZXg0Ci0tKTsKLS0KLS1pbXBsX2Zyb21f Y2FzdCEoCi0tICAgIGkxNngyW3Rlc3RfdjMyXTogaTh4MiwKLS0gICAgdTh4MiwKLS0gICAgbTh4 MiwKLS0gICAgdTE2eDIsCi0tICAgIG0xNngyLAotLSAgICBpMzJ4MiwKLS0gICAgdTMyeDIsCi0t ICAgIGYzMngyLAotLSAgICBtMzJ4MiwKLS0gICAgaTY0eDIsCi0tICAgIHU2NHgyLAotLSAgICBm NjR4MiwKLS0gICAgbTY0eDIsCi0tICAgIGkxMjh4MiwKLS0gICAgdTEyOHgyLAotLSAgICBtMTI4 eDIsCi0tICAgIGlzaXpleDIsCi0tICAgIHVzaXpleDIsCi0tICAgIG1zaXpleDIKLS0pOwotLWlt cGxfZnJvbV9jYXN0ISgKLS0gICAgdTE2eDJbdGVzdF92MzJdOiBpOHgyLAotLSAgICB1OHgyLAot LSAgICBtOHgyLAotLSAgICBpMTZ4MiwKLS0gICAgbTE2eDIsCi0tICAgIGkzMngyLAotLSAgICB1 MzJ4MiwKLS0gICAgZjMyeDIsCi0tICAgIG0zMngyLAotLSAgICBpNjR4MiwKLS0gICAgdTY0eDIs Ci0tICAgIGY2NHgyLAotLSAgICBtNjR4MiwKLS0gICAgaTEyOHgyLAotLSAgICB1MTI4eDIsCi0t ICAgIG0xMjh4MiwKLS0gICAgaXNpemV4MiwKLS0gICAgdXNpemV4MiwKLS0gICAgbXNpemV4Mgot LSk7Ci0taW1wbF9mcm9tX2Nhc3RfbWFzayEoCi0tICAgIG0xNngyW3Rlc3RfdjMyXTogaTh4MiwK LS0gICAgdTh4MiwKLS0gICAgbTh4MiwKLS0gICAgaTE2eDIsCi0tICAgIHUxNngyLAotLSAgICBp MzJ4MiwKLS0gICAgdTMyeDIsCi0tICAgIGYzMngyLAotLSAgICBtMzJ4MiwKLS0gICAgaTY0eDIs Ci0tICAgIHU2NHgyLAotLSAgICBmNjR4MiwKLS0gICAgbTY0eDIsCi0tICAgIGkxMjh4MiwKLS0g ICAgdTEyOHgyLAotLSAgICBtMTI4eDIsCi0tICAgIGlzaXpleDIsCi0tICAgIHVzaXpleDIsCi0t ICAgIG1zaXpleDIKLS0pOwotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3Np bWQvc3JjL2FwaS9jYXN0L3Y1MTIucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3Ny Yy9hcGkvY2FzdC92NTEyLnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3Ny Yy9hcGkvY2FzdC92NTEyLnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0r KysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvY2FzdC92NTEyLnJzCTE5 NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSwyMDkgKzAsMCBAQAotLS8v ISBgRnJvbUNhc3RgIGFuZCBgSW50b0Nhc3RgIGltcGxlbWVudGF0aW9ucyBmb3IgcG9ydGFibGUg NTEyLWJpdCB3aWRlIHZlY3RvcnMKLS0jW3J1c3RmbXQ6OnNraXBdCi0tCi0tdXNlIGNyYXRlOjoq OwotLQotLWltcGxfZnJvbV9jYXN0IShpOHg2NFt0ZXN0X3Y1MTJdOiB1OHg2NCwgbTh4NjQpOwot LWltcGxfZnJvbV9jYXN0ISh1OHg2NFt0ZXN0X3Y1MTJdOiBpOHg2NCwgbTh4NjQpOwotLWltcGxf ZnJvbV9jYXN0X21hc2shKG04eDY0W3Rlc3RfdjUxMl06IGk4eDY0LCB1OHg2NCk7Ci0tCi0taW1w bF9mcm9tX2Nhc3QhKGkxNngzMlt0ZXN0X3Y1MTJdOiBpOHgzMiwgdTh4MzIsIG04eDMyLCB1MTZ4 MzIsIG0xNngzMik7Ci0taW1wbF9mcm9tX2Nhc3QhKHUxNngzMlt0ZXN0X3Y1MTJdOiBpOHgzMiwg dTh4MzIsIG04eDMyLCBpMTZ4MzIsIG0xNngzMik7Ci0taW1wbF9mcm9tX2Nhc3RfbWFzayEobTE2 eDMyW3Rlc3RfdjUxMl06IGk4eDMyLCB1OHgzMiwgbTh4MzIsIGkxNngzMiwgdTE2eDMyKTsKLS0K LS1pbXBsX2Zyb21fY2FzdCEoaTMyeDE2W3Rlc3RfdjUxMl06IGk4eDE2LCB1OHgxNiwgbTh4MTYs IGkxNngxNiwgdTE2eDE2LCBtMTZ4MTYsIHUzMngxNiwgZjMyeDE2LCBtMzJ4MTYpOwotLWltcGxf ZnJvbV9jYXN0ISh1MzJ4MTZbdGVzdF92NTEyXTogaTh4MTYsIHU4eDE2LCBtOHgxNiwgaTE2eDE2 LCB1MTZ4MTYsIG0xNngxNiwgaTMyeDE2LCBmMzJ4MTYsIG0zMngxNik7Ci0taW1wbF9mcm9tX2Nh c3QhKGYzMngxNlt0ZXN0X3Y1MTJdOiBpOHgxNiwgdTh4MTYsIG04eDE2LCBpMTZ4MTYsIHUxNngx NiwgbTE2eDE2LCBpMzJ4MTYsIHUzMngxNiwgbTMyeDE2KTsKLS1pbXBsX2Zyb21fY2FzdF9tYXNr IShtMzJ4MTZbdGVzdF92NTEyXTogaTh4MTYsIHU4eDE2LCBtOHgxNiwgaTE2eDE2LCB1MTZ4MTYs IG0xNngxNiwgaTMyeDE2LCB1MzJ4MTYsIGYzMngxNik7Ci0tCi0taW1wbF9mcm9tX2Nhc3QhKAot LSAgICBpNjR4OFt0ZXN0X3Y1MTJdOiBpOHg4LAotLSAgICB1OHg4LAotLSAgICBtOHg4LAotLSAg ICBpMTZ4OCwKLS0gICAgdTE2eDgsCi0tICAgIG0xNng4LAotLSAgICBpMzJ4OCwKLS0gICAgdTMy eDgsCi0tICAgIGYzMng4LAotLSAgICBtMzJ4OCwKLS0gICAgdTY0eDgsCi0tICAgIGY2NHg4LAot LSAgICBtNjR4OCwKLS0gICAgaXNpemV4OCwKLS0gICAgdXNpemV4OCwKLS0gICAgbXNpemV4OAot LSk7Ci0taW1wbF9mcm9tX2Nhc3QhKAotLSAgICB1NjR4OFt0ZXN0X3Y1MTJdOiBpOHg4LAotLSAg ICB1OHg4LAotLSAgICBtOHg4LAotLSAgICBpMTZ4OCwKLS0gICAgdTE2eDgsCi0tICAgIG0xNng4 LAotLSAgICBpMzJ4OCwKLS0gICAgdTMyeDgsCi0tICAgIGYzMng4LAotLSAgICBtMzJ4OCwKLS0g ICAgaTY0eDgsCi0tICAgIGY2NHg4LAotLSAgICBtNjR4OCwKLS0gICAgaXNpemV4OCwKLS0gICAg dXNpemV4OCwKLS0gICAgbXNpemV4OAotLSk7Ci0taW1wbF9mcm9tX2Nhc3QhKAotLSAgICBmNjR4 OFt0ZXN0X3Y1MTJdOiBpOHg4LAotLSAgICB1OHg4LAotLSAgICBtOHg4LAotLSAgICBpMTZ4OCwK LS0gICAgdTE2eDgsCi0tICAgIG0xNng4LAotLSAgICBpMzJ4OCwKLS0gICAgdTMyeDgsCi0tICAg IGYzMng4LAotLSAgICBtMzJ4OCwKLS0gICAgaTY0eDgsCi0tICAgIHU2NHg4LAotLSAgICBtNjR4 OCwKLS0gICAgaXNpemV4OCwKLS0gICAgdXNpemV4OCwKLS0gICAgbXNpemV4OAotLSk7Ci0taW1w bF9mcm9tX2Nhc3RfbWFzayEoCi0tICAgIG02NHg4W3Rlc3RfdjUxMl06IGk4eDgsCi0tICAgIHU4 eDgsCi0tICAgIG04eDgsCi0tICAgIGkxNng4LAotLSAgICB1MTZ4OCwKLS0gICAgbTE2eDgsCi0t ICAgIGkzMng4LAotLSAgICB1MzJ4OCwKLS0gICAgZjMyeDgsCi0tICAgIG0zMng4LAotLSAgICBp NjR4OCwKLS0gICAgdTY0eDgsCi0tICAgIGY2NHg4LAotLSAgICBpc2l6ZXg4LAotLSAgICB1c2l6 ZXg4LAotLSAgICBtc2l6ZXg4Ci0tKTsKLS0KLS1pbXBsX2Zyb21fY2FzdCEoCi0tICAgIGkxMjh4 NFt0ZXN0X3Y1MTJdOiBpOHg0LAotLSAgICB1OHg0LAotLSAgICBtOHg0LAotLSAgICBpMTZ4NCwK LS0gICAgdTE2eDQsCi0tICAgIG0xNng0LAotLSAgICBpMzJ4NCwKLS0gICAgdTMyeDQsCi0tICAg IGYzMng0LAotLSAgICBtMzJ4NCwKLS0gICAgaTY0eDQsCi0tICAgIHU2NHg0LAotLSAgICBmNjR4 NCwKLS0gICAgbTY0eDQsCi0tICAgIHUxMjh4NCwKLS0gICAgbTEyOHg0LAotLSAgICBpc2l6ZXg0 LAotLSAgICB1c2l6ZXg0LAotLSAgICBtc2l6ZXg0Ci0tKTsKLS1pbXBsX2Zyb21fY2FzdCEoCi0t ICAgIHUxMjh4NFt0ZXN0X3Y1MTJdOiBpOHg0LAotLSAgICB1OHg0LAotLSAgICBtOHg0LAotLSAg ICBpMTZ4NCwKLS0gICAgdTE2eDQsCi0tICAgIG0xNng0LAotLSAgICBpMzJ4NCwKLS0gICAgdTMy eDQsCi0tICAgIGYzMng0LAotLSAgICBtMzJ4NCwKLS0gICAgaTY0eDQsCi0tICAgIHU2NHg0LAot LSAgICBmNjR4NCwKLS0gICAgbTY0eDQsCi0tICAgIGkxMjh4NCwKLS0gICAgbTEyOHg0LAotLSAg ICBpc2l6ZXg0LAotLSAgICB1c2l6ZXg0LAotLSAgICBtc2l6ZXg0Ci0tKTsKLS1pbXBsX2Zyb21f Y2FzdF9tYXNrISgKLS0gICAgbTEyOHg0W3Rlc3RfdjUxMl06IGk4eDQsCi0tICAgIHU4eDQsCi0t ICAgIG04eDQsCi0tICAgIGkxNng0LAotLSAgICB1MTZ4NCwKLS0gICAgbTE2eDQsCi0tICAgIGkz Mng0LAotLSAgICB1MzJ4NCwKLS0gICAgZjMyeDQsCi0tICAgIG0zMng0LAotLSAgICBpNjR4NCwK LS0gICAgdTY0eDQsCi0tICAgIG02NHg0LAotLSAgICBmNjR4NCwKLS0gICAgaTEyOHg0LAotLSAg ICB1MTI4eDQsCi0tICAgIGlzaXpleDQsCi0tICAgIHVzaXpleDQsCi0tICAgIG1zaXpleDQKLS0p OwotLQotLWltcGxfZnJvbV9jYXN0ISgKLS0gICAgaXNpemV4OFt0ZXN0X3Y1MTJdOiBpOHg4LAot LSAgICB1OHg4LAotLSAgICBtOHg4LAotLSAgICBpMTZ4OCwKLS0gICAgdTE2eDgsCi0tICAgIG0x Nng4LAotLSAgICBpMzJ4OCwKLS0gICAgdTMyeDgsCi0tICAgIGYzMng4LAotLSAgICBtMzJ4OCwK LS0gICAgaTY0eDgsCi0tICAgIHU2NHg4LAotLSAgICBmNjR4OCwKLS0gICAgbTY0eDgsCi0tICAg IHVzaXpleDgsCi0tICAgIG1zaXpleDgKLS0pOwotLWltcGxfZnJvbV9jYXN0ISgKLS0gICAgdXNp emV4OFt0ZXN0X3Y1MTJdOiBpOHg4LAotLSAgICB1OHg4LAotLSAgICBtOHg4LAotLSAgICBpMTZ4 OCwKLS0gICAgdTE2eDgsCi0tICAgIG0xNng4LAotLSAgICBpMzJ4OCwKLS0gICAgdTMyeDgsCi0t ICAgIGYzMng4LAotLSAgICBtMzJ4OCwKLS0gICAgaTY0eDgsCi0tICAgIHU2NHg4LAotLSAgICBm NjR4OCwKLS0gICAgbTY0eDgsCi0tICAgIGlzaXpleDgsCi0tICAgIG1zaXpleDgKLS0pOwotLWlt cGxfZnJvbV9jYXN0X21hc2shKAotLSAgICBtc2l6ZXg4W3Rlc3RfdjUxMl06IGk4eDgsCi0tICAg IHU4eDgsCi0tICAgIG04eDgsCi0tICAgIGkxNng4LAotLSAgICB1MTZ4OCwKLS0gICAgbTE2eDgs Ci0tICAgIGkzMng4LAotLSAgICB1MzJ4OCwKLS0gICAgZjMyeDgsCi0tICAgIG0zMng4LAotLSAg ICBpNjR4OCwKLS0gICAgdTY0eDgsCi0tICAgIGY2NHg4LAotLSAgICBtNjR4OCwKLS0gICAgaXNp emV4OCwKLS0gICAgdXNpemV4OAotLSk7Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9w YWNrZWRfc2ltZC9zcmMvYXBpL2Nhc3QvdjY0LnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRf c2ltZC9zcmMvYXBpL2Nhc3QvdjY0LnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9z aW1kL3NyYy9hcGkvY2FzdC92NjQucnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAz MDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9jYXN0L3Y2NC5y cwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsMjA4ICswLDAgQEAK LS0vLyEgYEZyb21DYXN0YCBhbmQgYEludG9DYXN0YCBpbXBsZW1lbnRhdGlvbnMgZm9yIHBvcnRh YmxlIDY0LWJpdCB3aWRlIHZlY3RvcnMKLS0jW3J1c3RmbXQ6OnNraXBdCi0tCi0tdXNlIGNyYXRl OjoqOwotLQotLWltcGxfZnJvbV9jYXN0ISgKLS0gICAgaTh4OFt0ZXN0X3Y2NF06IHU4eDgsCi0t ICAgIG04eDgsCi0tICAgIGkxNng4LAotLSAgICB1MTZ4OCwKLS0gICAgbTE2eDgsCi0tICAgIGkz Mng4LAotLSAgICB1MzJ4OCwKLS0gICAgZjMyeDgsCi0tICAgIG0zMng4LAotLSAgICBpNjR4OCwK LS0gICAgdTY0eDgsCi0tICAgIGY2NHg4LAotLSAgICBtNjR4OCwKLS0gICAgaXNpemV4OCwKLS0g ICAgdXNpemV4OCwKLS0gICAgbXNpemV4OAotLSk7Ci0taW1wbF9mcm9tX2Nhc3QhKAotLSAgICB1 OHg4W3Rlc3RfdjY0XTogaTh4OCwKLS0gICAgbTh4OCwKLS0gICAgaTE2eDgsCi0tICAgIHUxNng4 LAotLSAgICBtMTZ4OCwKLS0gICAgaTMyeDgsCi0tICAgIHUzMng4LAotLSAgICBmMzJ4OCwKLS0g ICAgbTMyeDgsCi0tICAgIGk2NHg4LAotLSAgICB1NjR4OCwKLS0gICAgZjY0eDgsCi0tICAgIG02 NHg4LAotLSAgICBpc2l6ZXg4LAotLSAgICB1c2l6ZXg4LAotLSAgICBtc2l6ZXg4Ci0tKTsKLS1p bXBsX2Zyb21fY2FzdF9tYXNrISgKLS0gICAgbTh4OFt0ZXN0X3Y2NF06IGk4eDgsCi0tICAgIHU4 eDgsCi0tICAgIGkxNng4LAotLSAgICB1MTZ4OCwKLS0gICAgbTE2eDgsCi0tICAgIGkzMng4LAot LSAgICB1MzJ4OCwKLS0gICAgZjMyeDgsCi0tICAgIG0zMng4LAotLSAgICBpNjR4OCwKLS0gICAg dTY0eDgsCi0tICAgIGY2NHg4LAotLSAgICBtNjR4OCwKLS0gICAgaXNpemV4OCwKLS0gICAgdXNp emV4OCwKLS0gICAgbXNpemV4OAotLSk7Ci0tCi0taW1wbF9mcm9tX2Nhc3QhKAotLSAgICBpMTZ4 NFt0ZXN0X3Y2NF06IGk4eDQsCi0tICAgIHU4eDQsCi0tICAgIG04eDQsCi0tICAgIHUxNng0LAot LSAgICBtMTZ4NCwKLS0gICAgaTMyeDQsCi0tICAgIHUzMng0LAotLSAgICBmMzJ4NCwKLS0gICAg bTMyeDQsCi0tICAgIGk2NHg0LAotLSAgICB1NjR4NCwKLS0gICAgZjY0eDQsCi0tICAgIG02NHg0 LAotLSAgICBpMTI4eDQsCi0tICAgIHUxMjh4NCwKLS0gICAgbTEyOHg0LAotLSAgICBpc2l6ZXg0 LAotLSAgICB1c2l6ZXg0LAotLSAgICBtc2l6ZXg0Ci0tKTsKLS1pbXBsX2Zyb21fY2FzdCEoCi0t ICAgIHUxNng0W3Rlc3RfdjY0XTogaTh4NCwKLS0gICAgdTh4NCwKLS0gICAgbTh4NCwKLS0gICAg aTE2eDQsCi0tICAgIG0xNng0LAotLSAgICBpMzJ4NCwKLS0gICAgdTMyeDQsCi0tICAgIGYzMng0 LAotLSAgICBtMzJ4NCwKLS0gICAgaTY0eDQsCi0tICAgIHU2NHg0LAotLSAgICBmNjR4NCwKLS0g ICAgbTY0eDQsCi0tICAgIGkxMjh4NCwKLS0gICAgdTEyOHg0LAotLSAgICBtMTI4eDQsCi0tICAg IGlzaXpleDQsCi0tICAgIHVzaXpleDQsCi0tICAgIG1zaXpleDQKLS0pOwotLWltcGxfZnJvbV9j YXN0X21hc2shKAotLSAgICBtMTZ4NFt0ZXN0X3Y2NF06IGk4eDQsCi0tICAgIHU4eDQsCi0tICAg IG04eDQsCi0tICAgIGkxNng0LAotLSAgICB1MTZ4NCwKLS0gICAgaTMyeDQsCi0tICAgIHUzMng0 LAotLSAgICBmMzJ4NCwKLS0gICAgbTMyeDQsCi0tICAgIGk2NHg0LAotLSAgICB1NjR4NCwKLS0g ICAgZjY0eDQsCi0tICAgIG02NHg0LAotLSAgICBpMTI4eDQsCi0tICAgIHUxMjh4NCwKLS0gICAg bTEyOHg0LAotLSAgICBpc2l6ZXg0LAotLSAgICB1c2l6ZXg0LAotLSAgICBtc2l6ZXg0Ci0tKTsK LS0KLS1pbXBsX2Zyb21fY2FzdCEoCi0tICAgIGkzMngyW3Rlc3RfdjY0XTogaTh4MiwKLS0gICAg dTh4MiwKLS0gICAgbTh4MiwKLS0gICAgaTE2eDIsCi0tICAgIHUxNngyLAotLSAgICBtMTZ4MiwK LS0gICAgdTMyeDIsCi0tICAgIGYzMngyLAotLSAgICBtMzJ4MiwKLS0gICAgaTY0eDIsCi0tICAg IHU2NHgyLAotLSAgICBmNjR4MiwKLS0gICAgbTY0eDIsCi0tICAgIGkxMjh4MiwKLS0gICAgdTEy OHgyLAotLSAgICBtMTI4eDIsCi0tICAgIGlzaXpleDIsCi0tICAgIHVzaXpleDIsCi0tICAgIG1z aXpleDIKLS0pOwotLWltcGxfZnJvbV9jYXN0ISgKLS0gICAgdTMyeDJbdGVzdF92NjRdOiBpOHgy LAotLSAgICB1OHgyLAotLSAgICBtOHgyLAotLSAgICBpMTZ4MiwKLS0gICAgdTE2eDIsCi0tICAg IG0xNngyLAotLSAgICBpMzJ4MiwKLS0gICAgZjMyeDIsCi0tICAgIG0zMngyLAotLSAgICBpNjR4 MiwKLS0gICAgdTY0eDIsCi0tICAgIGY2NHgyLAotLSAgICBtNjR4MiwKLS0gICAgaTEyOHgyLAot LSAgICB1MTI4eDIsCi0tICAgIG0xMjh4MiwKLS0gICAgaXNpemV4MiwKLS0gICAgdXNpemV4MiwK LS0gICAgbXNpemV4MgotLSk7Ci0taW1wbF9mcm9tX2Nhc3QhKAotLSAgICBmMzJ4Mlt0ZXN0X3Y2 NF06IGk4eDIsCi0tICAgIHU4eDIsCi0tICAgIG04eDIsCi0tICAgIGkxNngyLAotLSAgICB1MTZ4 MiwKLS0gICAgbTE2eDIsCi0tICAgIGkzMngyLAotLSAgICB1MzJ4MiwKLS0gICAgbTMyeDIsCi0t ICAgIGk2NHgyLAotLSAgICB1NjR4MiwKLS0gICAgZjY0eDIsCi0tICAgIG02NHgyLAotLSAgICBp MTI4eDIsCi0tICAgIHUxMjh4MiwKLS0gICAgbTEyOHgyLAotLSAgICBpc2l6ZXgyLAotLSAgICB1 c2l6ZXgyLAotLSAgICBtc2l6ZXgyCi0tKTsKLS1pbXBsX2Zyb21fY2FzdF9tYXNrISgKLS0gICAg bTMyeDJbdGVzdF92NjRdOiBpOHgyLAotLSAgICB1OHgyLAotLSAgICBtOHgyLAotLSAgICBpMTZ4 MiwKLS0gICAgdTE2eDIsCi0tICAgIG0xNngyLAotLSAgICBpMzJ4MiwKLS0gICAgdTMyeDIsCi0t ICAgIGYzMngyLAotLSAgICBpNjR4MiwKLS0gICAgdTY0eDIsCi0tICAgIGY2NHgyLAotLSAgICBt NjR4MiwKLS0gICAgaTEyOHgyLAotLSAgICB1MTI4eDIsCi0tICAgIG0xMjh4MiwKLS0gICAgaXNp emV4MiwKLS0gICAgdXNpemV4MiwKLS0gICAgbXNpemV4MgotLSk7Ci1kaWZmIC1OcmJ1IGEvdGhp cmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2Nhc3QucnMgYi90aGlyZF9wYXJ0eS9y dXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvY2FzdC5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9w YWNrZWRfc2ltZC9zcmMvYXBpL2Nhc3QucnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAg KzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9jYXN0LnJz CTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSwxMDggKzAsMCBAQAot LS8vISBJbXBsZW1lbnRhdGlvbiBvZiBgRnJvbUNhc3RgIGFuZCBgSW50b0Nhc3RgLgotLSMhW2Fs bG93KGNsaXBweTo6bW9kdWxlX25hbWVfcmVwZXRpdGlvbnMpXQotLQotLS8vLyBOdW1lcmljIGNh c3QgZnJvbSBgVGAgdG8gYFNlbGZgLgotLS8vLwotLS8vLyA+IE5vdGU6IFRoaXMgaXMgYSB0ZW1w b3Jhcnkgd29ya2Fyb3VuZCB1bnRpbCB0aGUgY29udmVyc2lvbiB0cmFpdHMKLS0vLy8gc3BlY2lm aWVkID4gaW4gW1JGQzI0ODRdIGFyZSBpbXBsZW1lbnRlZC4KLS0vLy8KLS0vLy8gTnVtZXJpYyBj YXN0IGJldHdlZW4gdmVjdG9ycyB3aXRoIHRoZSBzYW1lIG51bWJlciBvZiBsYW5lcywgc3VjaCB0 aGF0OgotLS8vLwotLS8vLyAqIGNhc3RpbmcgaW50ZWdlciB2ZWN0b3JzIHdob3NlIGxhbmUgdHlw ZXMgaGF2ZSB0aGUgc2FtZSBzaXplIChlLmcuIGBpMzJ4TmAKLS0vLy8gLT4gYHUzMnhOYCkgaXMg YSAqKm5vLW9wKiosCi0tLy8vCi0tLy8vICogY2FzdGluZyBmcm9tIGEgbGFyZ2VyIGludGVnZXIg dG8gYSBzbWFsbGVyIGludGVnZXIgKGUuZy4gYHUzMnhOYCAtPgotLS8vLyBgdTh4TmApIHdpbGwg Kip0cnVuY2F0ZSoqLAotLS8vLwotLS8vLyAqIGNhc3RpbmcgZnJvbSBhIHNtYWxsZXIgaW50ZWdl ciB0byBhIGxhcmdlciBpbnRlZ2VyICAgKGUuZy4gYHU4eE5gIC0+Ci0tLy8vICAgYHUzMnhOYCkg d2lsbDoKLS0vLy8gICAgKiAqKnplcm8tZXh0ZW5kKiogaWYgdGhlIHNvdXJjZSBpcyB1bnNpZ25l ZCwgb3IKLS0vLy8gICAgKiAqKnNpZ24tZXh0ZW5kKiogaWYgdGhlIHNvdXJjZSBpcyBzaWduZWQs Ci0tLy8vCi0tLy8vICogY2FzdGluZyBmcm9tIGEgZmxvYXQgdG8gYW4gaW50ZWdlciB3aWxsICoq cm91bmQgdGhlIGZsb2F0IHRvd2FyZHMgemVybyoqLAotLS8vLwotLS8vLyAqIGNhc3RpbmcgZnJv bSBhbiBpbnRlZ2VyIHRvIGZsb2F0IHdpbGwgcHJvZHVjZSB0aGUgZmxvYXRpbmcgcG9pbnQKLS0v Ly8gcmVwcmVzZW50YXRpb24gb2YgdGhlIGludGVnZXIsICoqcm91bmRpbmcgdG8gbmVhcmVzdCwg dGllcyB0byBldmVuKiosCi0tLy8vCi0tLy8vICogY2FzdGluZyBmcm9tIGFuIGBmMzJgIHRvIGFu IGBmNjRgIGlzIHBlcmZlY3QgYW5kIGxvc3NsZXNzLAotLS8vLwotLS8vLyAqIGNhc3RpbmcgZnJv bSBhbiBgZjY0YCB0byBhbiBgZjMyYCAqKnJvdW5kcyB0byBuZWFyZXN0LCB0aWVzIHRvIGV2ZW4q Ki4KLS0vLy8KLS0vLy8gW1JGQzI0ODRdOiBodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL3Jm Y3MvcHVsbC8yNDg0Ci0tcHViIHRyYWl0IEZyb21DYXN0PFQ+OiBjcmF0ZTo6bWFya2VyOjpTaXpl ZCB7Ci0tICAgIC8vLyBOdW1lcmljIGNhc3QgZnJvbSBgVGAgdG8gYFNlbGZgLgotLSAgICBmbiBm cm9tX2Nhc3QoXzogVCkgLT4gU2VsZjsKLS19Ci0tCi0tLy8vIE51bWVyaWMgY2FzdCBmcm9tIGBT ZWxmYCB0byBgVGAuCi0tLy8vCi0tLy8vID4gTm90ZTogVGhpcyBpcyBhIHRlbXBvcmFyeSB3b3Jr YXJvdW5kIHVudGlsIHRoZSBjb252ZXJzaW9uIHRyYWl0cwotLS8vLyBzcGVjaWZpZWQgPiBpbiBb UkZDMjQ4NF0gYXJlIGltcGxlbWVudGVkLgotLS8vLwotLS8vLyBOdW1lcmljIGNhc3QgYmV0d2Vl biB2ZWN0b3JzIHdpdGggdGhlIHNhbWUgbnVtYmVyIG9mIGxhbmVzLCBzdWNoIHRoYXQ6Ci0tLy8v Ci0tLy8vICogY2FzdGluZyBpbnRlZ2VyIHZlY3RvcnMgd2hvc2UgbGFuZSB0eXBlcyBoYXZlIHRo ZSBzYW1lIHNpemUgKGUuZy4gYGkzMnhOYAotLS8vLyAtPiBgdTMyeE5gKSBpcyBhICoqbm8tb3Aq KiwKLS0vLy8KLS0vLy8gKiBjYXN0aW5nIGZyb20gYSBsYXJnZXIgaW50ZWdlciB0byBhIHNtYWxs ZXIgaW50ZWdlciAoZS5nLiBgdTMyeE5gIC0+Ci0tLy8vIGB1OHhOYCkgd2lsbCAqKnRydW5jYXRl KiosCi0tLy8vCi0tLy8vICogY2FzdGluZyBmcm9tIGEgc21hbGxlciBpbnRlZ2VyIHRvIGEgbGFy Z2VyIGludGVnZXIgICAoZS5nLiBgdTh4TmAgLT4KLS0vLy8gICBgdTMyeE5gKSB3aWxsOgotLS8v LyAgICAqICoqemVyby1leHRlbmQqKiBpZiB0aGUgc291cmNlIGlzIHVuc2lnbmVkLCBvcgotLS8v LyAgICAqICoqc2lnbi1leHRlbmQqKiBpZiB0aGUgc291cmNlIGlzIHNpZ25lZCwKLS0vLy8KLS0v Ly8gKiBjYXN0aW5nIGZyb20gYSBmbG9hdCB0byBhbiBpbnRlZ2VyIHdpbGwgKipyb3VuZCB0aGUg ZmxvYXQgdG93YXJkcyB6ZXJvKiosCi0tLy8vCi0tLy8vICogY2FzdGluZyBmcm9tIGFuIGludGVn ZXIgdG8gZmxvYXQgd2lsbCBwcm9kdWNlIHRoZSBmbG9hdGluZyBwb2ludAotLS8vLyByZXByZXNl bnRhdGlvbiBvZiB0aGUgaW50ZWdlciwgKipyb3VuZGluZyB0byBuZWFyZXN0LCB0aWVzIHRvIGV2 ZW4qKiwKLS0vLy8KLS0vLy8gKiBjYXN0aW5nIGZyb20gYW4gYGYzMmAgdG8gYW4gYGY2NGAgaXMg cGVyZmVjdCBhbmQgbG9zc2xlc3MsCi0tLy8vCi0tLy8vICogY2FzdGluZyBmcm9tIGFuIGBmNjRg IHRvIGFuIGBmMzJgICoqcm91bmRzIHRvIG5lYXJlc3QsIHRpZXMgdG8gZXZlbioqLgotLS8vLwot LS8vLyBbUkZDMjQ4NF06IGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvcmZjcy9wdWxsLzI0 ODQKLS1wdWIgdHJhaXQgQ2FzdDxUPjogY3JhdGU6Om1hcmtlcjo6U2l6ZWQgewotLSAgICAvLy8g TnVtZXJpYyBjYXN0IGZyb20gYHNlbGZgIHRvIGBUYC4KLS0gICAgZm4gY2FzdChzZWxmKSAtPiBU OwotLX0KLS0KLS0vLy8gYEZyb21DYXN0YCBpbXBsaWVzIGBDYXN0YC4KLS1pbXBsPFQsIFU+IENh c3Q8VT4gZm9yIFQKLS13aGVyZQotLSAgICBVOiBGcm9tQ2FzdDxUPiwKLS17Ci0tICAgICNbaW5s aW5lXQotLSAgICBmbiBjYXN0KHNlbGYpIC0+IFUgewotLSAgICAgICAgVTo6ZnJvbV9jYXN0KHNl bGYpCi0tICAgIH0KLS19Ci0tCi0tLy8vIGBGcm9tQ2FzdGAgYW5kIGBDYXN0YCBhcmUgcmVmbGV4 aXZlCi0taW1wbDxUPiBGcm9tQ2FzdDxUPiBmb3IgVCB7Ci0tICAgICNbaW5saW5lXQotLSAgICBm biBmcm9tX2Nhc3QodDogU2VsZikgLT4gU2VsZiB7Ci0tICAgICAgICB0Ci0tICAgIH0KLS19Ci0t Ci0tI1ttYWNyb191c2VdCi0tbW9kIG1hY3JvczsKLS0KLS1tb2QgdjE2OwotLXB1YiB1c2Ugc2Vs Zjo6djE2OjoqOwotLQotLW1vZCB2MzI7Ci0tcHViIHVzZSBzZWxmOjp2MzI6Oio7Ci0tCi0tbW9k IHY2NDsKLS1wdWIgdXNlIHNlbGY6OnY2NDo6KjsKLS0KLS1tb2QgdjEyODsKLS1wdWIgdXNlIHNl bGY6OnYxMjg6Oio7Ci0tCi0tbW9kIHYyNTY7Ci0tcHViIHVzZSBzZWxmOjp2MjU2OjoqOwotLQot LW1vZCB2NTEyOwotLXB1YiB1c2Ugc2VsZjo6djUxMjo6KjsKLWRpZmYgLU5yYnUgYS90aGlyZF9w YXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvY21wL2VxLnJzIGIvdGhpcmRfcGFydHkvcnVz dC9wYWNrZWRfc2ltZC9zcmMvYXBpL2NtcC9lcS5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9w YWNrZWRfc2ltZC9zcmMvYXBpL2NtcC9lcS5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAw MCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2NtcC9l cS5ycwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsMjcgKzAsMCBA QAotLS8vISBJbXBsZW1lbnRzIGBFcWAgZm9yIHZlY3RvciB0eXBlcy4KLS0KLS1tYWNyb19ydWxl cyEgaW1wbF9jbXBfZXEgewotLSAgICAoCi0tICAgICAgICBbJGVsZW1fdHk6aWRlbnQ7ICRlbGVt X2NvdW50OmV4cHJdOgotLSAgICAgICAgJGlkOmlkZW50IHwgJHRlc3RfdHQ6dHQgfAotLSAgICAg ICAgKCR0cnVlOmV4cHIsICRmYWxzZTpleHByKQotLSAgICApID0+IHsKLS0gICAgICAgIGltcGwg Y3JhdGU6OmNtcDo6RXEgZm9yICRpZCB7fQotLSAgICAgICAgaW1wbCBjcmF0ZTo6Y21wOjpFcSBm b3IgTGV4aWNvZ3JhcGhpY2FsbHlPcmRlcmVkPCRpZD4ge30KLS0KLS0gICAgICAgIHRlc3RfaWYh ewotLSAgICAgICAgICAgICR0ZXN0X3R0OgotLSAgICAgICAgICAgIHBhc3RlOjppdGVtISB7Ci0t ICAgICAgICAgICAgICAgIHB1YiBtb2QgWzwkaWQgX2NtcF9lcT5dIHsKLS0gICAgICAgICAgICAg ICAgICAgIHVzZSBzdXBlcjo6KjsKLS0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90 KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0gI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9 ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCi0tICAgICAgICAgICAgICAgICAgICBmbiBl cSgpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICBmbiBmb288RTogY3JhdGU6OmNtcDo6RXE+ KF86IEUpIHt9Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGEgPSAkaWQ6OnNwbGF0KCRm YWxzZSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgZm9vKGEpOwotLSAgICAgICAgICAgICAg ICAgICAgfQotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQot LSAgICB9OwotLX0KLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3Ny Yy9hcGkvY21wL29yZC5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9j bXAvb3JkLnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvY21w L29yZC5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRf cGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2NtcC9vcmQucnMJMTk3MC0wMS0wMSAwMzow MDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDQzICswLDAgQEAKLS0vLyEgSW1wbGVtZW50cyBg T3JkYCBmb3IgdmVjdG9yIHR5cGVzLgotLQotLW1hY3JvX3J1bGVzISBpbXBsX2NtcF9vcmQgewot LSAgICAoCi0tICAgICAgICBbJGVsZW1fdHk6aWRlbnQ7ICRlbGVtX2NvdW50OmV4cHJdOgotLSAg ICAgICAgJGlkOmlkZW50IHwgJHRlc3RfdHQ6dHQgfAotLSAgICAgICAgKCR0cnVlOmV4cHIsICRm YWxzZTpleHByKQotLSAgICApID0+IHsKLS0gICAgICAgIGltcGwgJGlkIHsKLS0gICAgICAgICAg ICAvLy8gUmV0dXJucyBhIHdyYXBwZXIgdGhhdCBpbXBsZW1lbnRzIGBPcmRgLgotLSAgICAgICAg ICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIHB1YiBmbiBsZXhfb3JkKCZzZWxmKSAtPiBMZXhp Y29ncmFwaGljYWxseU9yZGVyZWQ8JGlkPiB7Ci0tICAgICAgICAgICAgICAgIExleGljb2dyYXBo aWNhbGx5T3JkZXJlZCgqc2VsZikKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tCi0tICAg ICAgICBpbXBsIGNyYXRlOjpjbXA6Ok9yZCBmb3IgTGV4aWNvZ3JhcGhpY2FsbHlPcmRlcmVkPCRp ZD4gewotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIGZuIGNtcCgmc2VsZiwg b3RoZXI6ICZTZWxmKSAtPiBjcmF0ZTo6Y21wOjpPcmRlcmluZyB7Ci0tICAgICAgICAgICAgICAg IG1hdGNoIHNlbGYucGFydGlhbF9jbXAob3RoZXIpIHsKLS0gICAgICAgICAgICAgICAgICAgIFNv bWUoeCkgPT4geCwKLS0gICAgICAgICAgICAgICAgICAgIE5vbmUgPT4gdW5zYWZlIHsgY3JhdGU6 OmhpbnQ6OnVucmVhY2hhYmxlX3VuY2hlY2tlZCgpIH0sCi0tICAgICAgICAgICAgICAgIH0KLS0g ICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tCi0tICAgICAgICB0ZXN0X2lmIXsKLS0gICAgICAg ICAgICAkdGVzdF90dDoKLS0gICAgICAgICAgICBwYXN0ZTo6aXRlbSEgewotLSAgICAgICAgICAg ICAgICBwdWIgbW9kIFs8JGlkIF9jbXBfb3JkPl0gewotLSAgICAgICAgICAgICAgICAgICAgdXNl IHN1cGVyOjoqOwotLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2Fy Y2ggPSAid2FzbTMyIiksIHRlc3QpXSAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIs IHdhc21fYmluZGdlbl90ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgIGZuIGVxKCkgewotLSAg ICAgICAgICAgICAgICAgICAgICAgIGZuIGZvbzxFOiBjcmF0ZTo6Y21wOjpPcmQ+KF86IEUpIHt9 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGEgPSAkaWQ6OnNwbGF0KCRmYWxzZSk7Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgZm9vKGEucGFydGlhbF9sZXhfb3JkKCkpOwotLSAgICAg ICAgICAgICAgICAgICAgICAgIGZvbyhhLmxleF9vcmQoKSk7Ci0tICAgICAgICAgICAgICAgICAg ICB9Ci0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAg IH07Ci0tfQotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2Fw aS9jbXAvcGFydGlhbF9lcS5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2Fw aS9jbXAvcGFydGlhbF9lcS5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9z cmMvYXBpL2NtcC9wYXJ0aWFsX2VxLnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICsw MzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvY21wL3BhcnRp YWxfZXEucnMJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDY1ICsw LDAgQEAKLS0vLyEgSW1wbGVtZW50cyBgUGFydGlhbEVxYCBmb3IgdmVjdG9yIHR5cGVzLgotLQot LW1hY3JvX3J1bGVzISBpbXBsX2NtcF9wYXJ0aWFsX2VxIHsKLS0gICAgKAotLSAgICAgICAgWyRl bGVtX3R5OmlkZW50OyAkZWxlbV9jb3VudDpleHByXToKLS0gICAgICAgICRpZDppZGVudCB8ICR0 ZXN0X3R0OnR0IHwKLS0gICAgICAgICgkdHJ1ZTpleHByLCAkZmFsc2U6ZXhwcikKLS0gICAgKSA9 PiB7Ci0tICAgICAgICAvLyBGSVhNRTogaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy1udXJz ZXJ5L3J1c3QtY2xpcHB5L2lzc3Vlcy8yODkyCi0tICAgICAgICAjW2FsbG93KGNsaXBweTo6cGFy dGlhbGVxX25lX2ltcGwpXQotLSAgICAgICAgaW1wbCBjcmF0ZTo6Y21wOjpQYXJ0aWFsRXE8JGlk PiBmb3IgJGlkIHsKLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBmbiBlcSgm c2VsZiwgb3RoZXI6ICZTZWxmKSAtPiBib29sIHsKLS0gICAgICAgICAgICAgICAgJGlkOjplcSgq c2VsZiwgKm90aGVyKS5hbGwoKQotLSAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAjW2lubGlu ZV0KLS0gICAgICAgICAgICBmbiBuZSgmc2VsZiwgb3RoZXI6ICZTZWxmKSAtPiBib29sIHsKLS0g ICAgICAgICAgICAgICAgJGlkOjpuZSgqc2VsZiwgKm90aGVyKS5hbnkoKQotLSAgICAgICAgICAg IH0KLS0gICAgICAgIH0KLS0KLS0gICAgICAgIC8vIEZJWE1FOiBodHRwczovL2dpdGh1Yi5jb20v cnVzdC1sYW5nLW51cnNlcnkvcnVzdC1jbGlwcHkvaXNzdWVzLzI4OTIKLS0gICAgICAgICNbYWxs b3coY2xpcHB5OjpwYXJ0aWFsZXFfbmVfaW1wbCldCi0tICAgICAgICBpbXBsIGNyYXRlOjpjbXA6 OlBhcnRpYWxFcTxMZXhpY29ncmFwaGljYWxseU9yZGVyZWQ8JGlkPj4gZm9yIExleGljb2dyYXBo aWNhbGx5T3JkZXJlZDwkaWQ+IHsKLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAg ICBmbiBlcSgmc2VsZiwgb3RoZXI6ICZTZWxmKSAtPiBib29sIHsKLS0gICAgICAgICAgICAgICAg c2VsZi4wID09IG90aGVyLjAKLS0gICAgICAgICAgICB9Ci0tICAgICAgICAgICAgI1tpbmxpbmVd Ci0tICAgICAgICAgICAgZm4gbmUoJnNlbGYsIG90aGVyOiAmU2VsZikgLT4gYm9vbCB7Ci0tICAg ICAgICAgICAgICAgIHNlbGYuMCAhPSBvdGhlci4wCi0tICAgICAgICAgICAgfQotLSAgICAgICAg fQotLQotLSAgICAgICAgdGVzdF9pZiEgewotLSAgICAgICAgICAgICR0ZXN0X3R0OgotLSAgICAg ICAgICAgIHBhc3RlOjppdGVtISB7Ci0tICAgICAgICAgICAgICAgIHB1YiBtb2QgWzwkaWQgX2Nt cF9QYXJ0aWFsRXE+XSB7Ci0tICAgICAgICAgICAgICAgICAgICB1c2Ugc3VwZXI6Oio7Ci0tICAg ICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwg dGVzdCldCi0tICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndh c20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgIGZuIHBhcnRp YWxfZXEoKSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGEgPSAkaWQ6OnNwbGF0KCRm YWxzZSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGIgPSAkaWQ6OnNwbGF0KCR0cnVl KTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKGEgIT0gYik7Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgYXNzZXJ0ISghKGEgPT0gYikpOwotLSAgICAgICAgICAgICAgICAg ICAgICAgIGFzc2VydCEoYSA9PSBhKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQh KCEoYSAhPSBhKSk7Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgaWYgJGlkOjpsYW5lcygp ID4gMSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBhID0gJGlkOjpzcGxhdCgk ZmFsc2UpLnJlcGxhY2UoMCwgJHRydWUpOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBs ZXQgYiA9ICRpZDo6c3BsYXQoJHRydWUpOwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICBhc3NlcnQhKGEgIT0gYik7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCEo IShhID09IGIpKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IShhID09IGEp OwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKCEoYSAhPSBhKSk7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAg ICAgICAgICB9Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICB9OwotLX0KLWRpZmYg LU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvY21wL3BhcnRpYWxf b3JkLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2NtcC9wYXJ0aWFs X29yZC5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2NtcC9w YXJ0aWFsX29yZC5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIv dGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2NtcC9wYXJ0aWFsX29yZC5ycwkx OTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsMjMwICswLDAgQEAKLS0v LyEgSW1wbGVtZW50cyBgUGFydGlhbE9yZGAgZm9yIHZlY3RvciB0eXBlcy4KLS0vLyEKLS0vLyEg VGhpcyBpbXBsZW1lbnRzIGEgbGV4aWNvZ3JhcGhpY2FsIG9yZGVyLgotLQotLW1hY3JvX3J1bGVz ISBpbXBsX2NtcF9wYXJ0aWFsX29yZCB7Ci0tICAgIChbJGVsZW1fdHk6aWRlbnQ7ICRlbGVtX2Nv dW50OmV4cHJdOiAkaWQ6aWRlbnQgfCAkdGVzdF90dDp0dCkgPT4gewotLSAgICAgICAgaW1wbCAk aWQgewotLSAgICAgICAgICAgIC8vLyBSZXR1cm5zIGEgd3JhcHBlciB0aGF0IGltcGxlbWVudHMg YFBhcnRpYWxPcmRgLgotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIHB1YiBm biBwYXJ0aWFsX2xleF9vcmQoJnNlbGYpIC0+IExleGljb2dyYXBoaWNhbGx5T3JkZXJlZDwkaWQ+ IHsKLS0gICAgICAgICAgICAgICAgTGV4aWNvZ3JhcGhpY2FsbHlPcmRlcmVkKCpzZWxmKQotLSAg ICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0KLS0gICAgICAgIGltcGwgY3JhdGU6OmNtcDo6UGFy dGlhbE9yZDxMZXhpY29ncmFwaGljYWxseU9yZGVyZWQ8JGlkPj4gZm9yIExleGljb2dyYXBoaWNh bGx5T3JkZXJlZDwkaWQ+IHsKLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBm biBwYXJ0aWFsX2NtcCgmc2VsZiwgb3RoZXI6ICZTZWxmKSAtPiBPcHRpb248Y3JhdGU6OmNtcDo6 T3JkZXJpbmc+IHsKLS0gICAgICAgICAgICAgICAgaWYgUGFydGlhbEVxOjplcShzZWxmLCBvdGhl cikgewotLSAgICAgICAgICAgICAgICAgICAgU29tZShjcmF0ZTo6Y21wOjpPcmRlcmluZzo6RXF1 YWwpCi0tICAgICAgICAgICAgICAgIH0gZWxzZSBpZiBQYXJ0aWFsT3JkOjpsdChzZWxmLCBvdGhl cikgewotLSAgICAgICAgICAgICAgICAgICAgU29tZShjcmF0ZTo6Y21wOjpPcmRlcmluZzo6TGVz cykKLS0gICAgICAgICAgICAgICAgfSBlbHNlIGlmIFBhcnRpYWxPcmQ6Omd0KHNlbGYsIG90aGVy KSB7Ci0tICAgICAgICAgICAgICAgICAgICBTb21lKGNyYXRlOjpjbXA6Ok9yZGVyaW5nOjpHcmVh dGVyKQotLSAgICAgICAgICAgICAgICB9IGVsc2UgewotLSAgICAgICAgICAgICAgICAgICAgTm9u ZQotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgICAgICNbaW5s aW5lXQotLSAgICAgICAgICAgIGZuIGx0KCZzZWxmLCBvdGhlcjogJlNlbGYpIC0+IGJvb2wgewot LSAgICAgICAgICAgICAgICBsZXQgbV9sdCA9IHNlbGYuMC5sdChvdGhlci4wKTsKLS0gICAgICAg ICAgICAgICAgbGV0IG1fZXEgPSBzZWxmLjAuZXEob3RoZXIuMCk7Ci0tICAgICAgICAgICAgICAg IGZvciBpIGluIDAuLiRpZDo6bGFuZXMoKSB7Ci0tICAgICAgICAgICAgICAgICAgICBpZiBtX2Vx LmV4dHJhY3QoaSkgewotLSAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotLSAgICAg ICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1fbHQuZXh0cmFj dChpKTsKLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICBmYWxzZQotLSAgICAg ICAgICAgIH0KLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBmbiBsZSgmc2Vs Ziwgb3RoZXI6ICZTZWxmKSAtPiBib29sIHsKLS0gICAgICAgICAgICAgICAgc2VsZi5sdChvdGhl cikgfCBQYXJ0aWFsRXE6OmVxKHNlbGYsIG90aGVyKQotLSAgICAgICAgICAgIH0KLS0gICAgICAg ICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBmbiBnZSgmc2VsZiwgb3RoZXI6ICZTZWxmKSAt PiBib29sIHsKLS0gICAgICAgICAgICAgICAgc2VsZi5ndChvdGhlcikgfCBQYXJ0aWFsRXE6OmVx KHNlbGYsIG90aGVyKQotLSAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAjW2lubGluZV0KLS0g ICAgICAgICAgICBmbiBndCgmc2VsZiwgb3RoZXI6ICZTZWxmKSAtPiBib29sIHsKLS0gICAgICAg ICAgICAgICAgbGV0IG1fZ3QgPSBzZWxmLjAuZ3Qob3RoZXIuMCk7Ci0tICAgICAgICAgICAgICAg IGxldCBtX2VxID0gc2VsZi4wLmVxKG90aGVyLjApOwotLSAgICAgICAgICAgICAgICBmb3IgaSBp biAwLi4kaWQ6OmxhbmVzKCkgewotLSAgICAgICAgICAgICAgICAgICAgaWYgbV9lcS5leHRyYWN0 KGkpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKLS0gICAgICAgICAgICAg ICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgIHJldHVybiBtX2d0LmV4dHJhY3QoaSk7Ci0t ICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgZmFsc2UKLS0gICAgICAgICAgICB9 Ci0tICAgICAgICB9Ci0tICAgIH07Ci0tfQotLQotLW1hY3JvX3J1bGVzISB0ZXN0X2NtcF9wYXJ0 aWFsX29yZF9pbnQgewotLSAgICAoWyRlbGVtX3R5OmlkZW50OyAkZWxlbV9jb3VudDpleHByXTog JGlkOmlkZW50IHwgJHRlc3RfdHQ6dHQpID0+IHsKLS0gICAgICAgIHRlc3RfaWYhewotLSAgICAg ICAgICAgICR0ZXN0X3R0OgotLSAgICAgICAgICAgIHBhc3RlOjppdGVtISB7Ci0tICAgICAgICAg ICAgICAgIHB1YiBtb2QgWzwkaWQgX2NtcF9QYXJ0aWFsT3JkPl0gewotLSAgICAgICAgICAgICAg ICAgICAgdXNlIHN1cGVyOjoqOwotLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cihub3Qo dGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXSAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0g Indhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgIGZuIHBh cnRpYWxfbGV4X29yZCgpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICB1c2UgY3JhdGU6OnRl c3Rpbmc6OnV0aWxzOjp7dGVzdF9jbXB9OwotLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNv bnN0YW50IHZhbHVlcwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBhID0gJGlkOjpzcGxh dCgwKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgYiA9ICRpZDo6c3BsYXQoMSk7Ci0t Ci0tICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9jbXAoYS5wYXJ0aWFsX2xleF9vcmQoKSwg Yi5wYXJ0aWFsX2xleF9vcmQoKSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBT b21lKGNyYXRlOjpjbXA6Ok9yZGVyaW5nOjpMZXNzKSk7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgdGVzdF9jbXAoYi5wYXJ0aWFsX2xleF9vcmQoKSwgYS5wYXJ0aWFsX2xleF9vcmQoKSwKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTb21lKGNyYXRlOjpjbXA6Ok9yZGVyaW5n OjpHcmVhdGVyKSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9jbXAoYS5wYXJ0aWFs X2xleF9vcmQoKSwgYS5wYXJ0aWFsX2xleF9vcmQoKSwKLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBTb21lKGNyYXRlOjpjbXA6Ok9yZGVyaW5nOjpFcXVhbCkpOwotLSAgICAgICAg ICAgICAgICAgICAgICAgIHRlc3RfY21wKGIucGFydGlhbF9sZXhfb3JkKCksIGIucGFydGlhbF9s ZXhfb3JkKCksCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU29tZShjcmF0ZTo6 Y21wOjpPcmRlcmluZzo6RXF1YWwpKTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAvLyB2 YXJpYWJsZSB2YWx1ZXM6IGEgPSBbMCwgMSwgMiwgM107IGIgPSBbMywgMiwgMSwgMF0KLS0gICAg ICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IGEgPSAkaWQ6OnNwbGF0KDApOwotLSAgICAgICAg ICAgICAgICAgICAgICAgIGxldCBtdXQgYiA9ICRpZDo6c3BsYXQoMCk7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgZm9yIGkgaW4gMC4uJGlkOjpsYW5lcygpIHsKLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgYSA9IGEucmVwbGFjZShpLCBpIGFzICRlbGVtX3R5KTsKLS0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgYiA9IGIucmVwbGFjZShpLCAoJGlkOjpsYW5lcygpIC0gaSkgYXMg JGVsZW1fdHkpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAg ICAgICAgICB0ZXN0X2NtcChhLnBhcnRpYWxfbGV4X29yZCgpLCBiLnBhcnRpYWxfbGV4X29yZCgp LAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNvbWUoY3JhdGU6OmNtcDo6T3Jk ZXJpbmc6Okxlc3MpKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X2NtcChiLnBhcnRp YWxfbGV4X29yZCgpLCBhLnBhcnRpYWxfbGV4X29yZCgpLAotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFNvbWUoY3JhdGU6OmNtcDo6T3JkZXJpbmc6OkdyZWF0ZXIpKTsKLS0gICAg ICAgICAgICAgICAgICAgICAgICB0ZXN0X2NtcChhLnBhcnRpYWxfbGV4X29yZCgpLCBhLnBhcnRp YWxfbGV4X29yZCgpLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNvbWUoY3Jh dGU6OmNtcDo6T3JkZXJpbmc6OkVxdWFsKSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgdGVz dF9jbXAoYi5wYXJ0aWFsX2xleF9vcmQoKSwgYi5wYXJ0aWFsX2xleF9vcmQoKSwKLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBTb21lKGNyYXRlOjpjbXA6Ok9yZGVyaW5nOjpFcXVh bCkpOwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIHZhcmlhYmxlIHZhbHVlczogYSA9 IFswLCAxLCAyLCAzXTsgYiA9IFswLCAxLCAyLCA0XQotLSAgICAgICAgICAgICAgICAgICAgICAg IGxldCBtdXQgYiA9IGE7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYiA9IGIucmVwbGFjZSgK LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGlkOjpsYW5lcygpIC0gMSwKLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgYS5leHRyYWN0KCRpZDo6bGFuZXMoKSAtIDEpICsgMSBhcyAk ZWxlbV90eQotLSAgICAgICAgICAgICAgICAgICAgICAgICk7Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgdGVzdF9jbXAoYS5wYXJ0aWFsX2xleF9vcmQoKSwgYi5wYXJ0aWFsX2xleF9vcmQoKSwK LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTb21lKGNyYXRlOjpjbXA6Ok9yZGVy aW5nOjpMZXNzKSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9jbXAoYi5wYXJ0aWFs X2xleF9vcmQoKSwgYS5wYXJ0aWFsX2xleF9vcmQoKSwKLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBTb21lKGNyYXRlOjpjbXA6Ok9yZGVyaW5nOjpHcmVhdGVyKSk7Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgdGVzdF9jbXAoYS5wYXJ0aWFsX2xleF9vcmQoKSwgYS5wYXJ0aWFs X2xleF9vcmQoKSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTb21lKGNyYXRl OjpjbXA6Ok9yZGVyaW5nOjpFcXVhbCkpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIHRlc3Rf Y21wKGIucGFydGlhbF9sZXhfb3JkKCksIGIucGFydGlhbF9sZXhfb3JkKCksCi0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgU29tZShjcmF0ZTo6Y21wOjpPcmRlcmluZzo6RXF1YWwp KTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICBpZiAkaWQ6OmxhbmVzKCkgPiAyIHsKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdmFyaWFibGUgdmFsdWVzIGEgPSBbMCwgMSwg MCwgMF07IGIgPSBbMCwgMSwgMiwgM10KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0 IGIgPSBhOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IGEgPSAkaWQ6OnNw bGF0KDApOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhID0gYS5yZXBsYWNlKDEsIDEg YXMgJGVsZW1fdHkpOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X2NtcChhLnBh cnRpYWxfbGV4X29yZCgpLCBiLnBhcnRpYWxfbGV4X29yZCgpLAotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBTb21lKGNyYXRlOjpjbXA6Ok9yZGVyaW5nOjpMZXNzKSk7Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfY21wKGIucGFydGlhbF9sZXhfb3JkKCks IGEucGFydGlhbF9sZXhfb3JkKCksCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFNvbWUoY3JhdGU6OmNtcDo6T3JkZXJpbmc6OkdyZWF0ZXIpKTsKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgdGVzdF9jbXAoYS5wYXJ0aWFsX2xleF9vcmQoKSwgYS5wYXJ0aWFsX2xl eF9vcmQoKSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU29tZShjcmF0 ZTo6Y21wOjpPcmRlcmluZzo6RXF1YWwpKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg dGVzdF9jbXAoYi5wYXJ0aWFsX2xleF9vcmQoKSwgYi5wYXJ0aWFsX2xleF9vcmQoKSwKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU29tZShjcmF0ZTo6Y21wOjpPcmRlcmlu Zzo6RXF1YWwpKTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdmFyaWFibGUg dmFsdWVzOiBhID0gWzAsIDEsIDIsIDNdOyBiID0gWzAsIDEsIDMsIDJdCi0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGxldCBtdXQgYiA9IGE7Ci0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGIgPSBiLnJlcGxhY2UoCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyLCBh LmV4dHJhY3QoJGlkOjpsYW5lcygpIC0gMSkgKyAxIGFzICRlbGVtX3R5Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgICk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfY21w KGEucGFydGlhbF9sZXhfb3JkKCksIGIucGFydGlhbF9sZXhfb3JkKCksCi0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFNvbWUoY3JhdGU6OmNtcDo6T3JkZXJpbmc6Okxlc3Mp KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9jbXAoYi5wYXJ0aWFsX2xleF9v cmQoKSwgYS5wYXJ0aWFsX2xleF9vcmQoKSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgU29tZShjcmF0ZTo6Y21wOjpPcmRlcmluZzo6R3JlYXRlcikpOwotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICB0ZXN0X2NtcChhLnBhcnRpYWxfbGV4X29yZCgpLCBhLnBhcnRp YWxfbGV4X29yZCgpLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTb21l KGNyYXRlOjpjbXA6Ok9yZGVyaW5nOjpFcXVhbCkpOwotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICB0ZXN0X2NtcChiLnBhcnRpYWxfbGV4X29yZCgpLCBiLnBhcnRpYWxfbGV4X29yZCgpLAot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTb21lKGNyYXRlOjpjbXA6Ok9y ZGVyaW5nOjpFcXVhbCkpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAg ICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgIH0KLS0gICAgICAg IH0KLS0gICAgfTsKLS19Ci0tCi0tbWFjcm9fcnVsZXMhIHRlc3RfY21wX3BhcnRpYWxfb3JkX21h c2sgewotLSAgICAoWyRlbGVtX3R5OmlkZW50OyAkZWxlbV9jb3VudDpleHByXTogJGlkOmlkZW50 IHwgJHRlc3RfdHQ6dHQpID0+IHsKLS0gICAgICAgIHRlc3RfaWYhewotLSAgICAgICAgICAgICR0 ZXN0X3R0OgotLSAgICAgICAgICAgIHBhc3RlOjppdGVtISB7Ci0tICAgICAgICAgICAgICAgIHB1 YiBtb2QgWzwkaWQgX2NtcF9QYXJ0aWFsT3JkPl0gewotLSAgICAgICAgICAgICAgICAgICAgdXNl IHN1cGVyOjoqOwotLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2Fy Y2ggPSAid2FzbTMyIiksIHRlc3QpXSAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIs IHdhc21fYmluZGdlbl90ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgIGZuIHBhcnRpYWxfbGV4 X29yZCgpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICB1c2UgY3JhdGU6OnRlc3Rpbmc6OnV0 aWxzOjp7dGVzdF9jbXB9OwotLSAgICAgICAgICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6Y21w OjpPcmRlcmluZzsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAvLyBjb25zdGFudCB2YWx1 ZXMKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgYSA9ICRpZDo6c3BsYXQoZmFsc2UpOwot LSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBiID0gJGlkOjpzcGxhdCh0cnVlKTsKLS0KLS0g ICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X2NtcChhLnBhcnRpYWxfbGV4X29yZCgpLCBiLnBh cnRpYWxfbGV4X29yZCgpLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNvbWUo T3JkZXJpbmc6Okxlc3MpKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X2NtcChiLnBh cnRpYWxfbGV4X29yZCgpLCBhLnBhcnRpYWxfbGV4X29yZCgpLAotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFNvbWUoT3JkZXJpbmc6OkdyZWF0ZXIpKTsKLS0gICAgICAgICAgICAg ICAgICAgICAgICB0ZXN0X2NtcChhLnBhcnRpYWxfbGV4X29yZCgpLCBhLnBhcnRpYWxfbGV4X29y ZCgpLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNvbWUoT3JkZXJpbmc6OkVx dWFsKSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9jbXAoYi5wYXJ0aWFsX2xleF9v cmQoKSwgYi5wYXJ0aWFsX2xleF9vcmQoKSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBTb21lKE9yZGVyaW5nOjpFcXVhbCkpOwotLQotLSAgICAgICAgICAgICAgICAgICAgICAg IC8vIHZhcmlhYmxlIHZhbHVlczoKLS0gICAgICAgICAgICAgICAgICAgICAgICAvLyBhID0gW2Zh bHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlXTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAvLyBi ID0gW2ZhbHNlLCBmYWxzZSwgZmFsc2UsIHRydWVdCi0tICAgICAgICAgICAgICAgICAgICAgICAg bGV0IGEgPSAkaWQ6OnNwbGF0KGZhbHNlKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQg bXV0IGIgPSAkaWQ6OnNwbGF0KGZhbHNlKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBiID0g Yi5yZXBsYWNlKCRpZDo6bGFuZXMoKSAtIDEsIHRydWUpOwotLSAgICAgICAgICAgICAgICAgICAg ICAgIHRlc3RfY21wKGEucGFydGlhbF9sZXhfb3JkKCksIGIucGFydGlhbF9sZXhfb3JkKCksCi0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU29tZShPcmRlcmluZzo6TGVzcykpOwot LSAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfY21wKGIucGFydGlhbF9sZXhfb3JkKCksIGEu cGFydGlhbF9sZXhfb3JkKCksCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU29t ZShPcmRlcmluZzo6R3JlYXRlcikpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfY21w KGEucGFydGlhbF9sZXhfb3JkKCksIGEucGFydGlhbF9sZXhfb3JkKCksCi0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgU29tZShPcmRlcmluZzo6RXF1YWwpKTsKLS0gICAgICAgICAg ICAgICAgICAgICAgICB0ZXN0X2NtcChiLnBhcnRpYWxfbGV4X29yZCgpLCBiLnBhcnRpYWxfbGV4 X29yZCgpLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNvbWUoT3JkZXJpbmc6 OkVxdWFsKSk7Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgLy8gdmFyaWFibGUgdmFsdWVz OgotLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIGEgPSBbdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgZmFs c2VdOwotLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIGIgPSBbdHJ1ZSwgdHJ1ZSwgdHJ1ZSwg dHJ1ZV0KLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IGEgPSAkaWQ6OnNwbGF0KHRy dWUpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBiID0gJGlkOjpzcGxhdCh0cnVlKTsK LS0gICAgICAgICAgICAgICAgICAgICAgICBhID0gYS5yZXBsYWNlKCRpZDo6bGFuZXMoKSAtIDEs IGZhbHNlKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X2NtcChhLnBhcnRpYWxfbGV4 X29yZCgpLCBiLnBhcnRpYWxfbGV4X29yZCgpLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFNvbWUoT3JkZXJpbmc6Okxlc3MpKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICB0 ZXN0X2NtcChiLnBhcnRpYWxfbGV4X29yZCgpLCBhLnBhcnRpYWxfbGV4X29yZCgpLAotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNvbWUoT3JkZXJpbmc6OkdyZWF0ZXIpKTsKLS0g ICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X2NtcChhLnBhcnRpYWxfbGV4X29yZCgpLCBhLnBh cnRpYWxfbGV4X29yZCgpLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNvbWUo T3JkZXJpbmc6OkVxdWFsKSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9jbXAoYi5w YXJ0aWFsX2xleF9vcmQoKSwgYi5wYXJ0aWFsX2xleF9vcmQoKSwKLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBTb21lKE9yZGVyaW5nOjpFcXVhbCkpOwotLQotLSAgICAgICAgICAg ICAgICAgICAgICAgIGlmICRpZDo6bGFuZXMoKSA+IDIgewotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAvLyB2YXJpYWJsZSB2YWx1ZXMKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg Ly8gYSA9IFtmYWxzZSwgdHJ1ZSwgZmFsc2UsIGZhbHNlXTsKLS0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgLy8gYiA9IFtmYWxzZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZV0KLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgbGV0IG11dCBhID0gJGlkOjpzcGxhdChmYWxzZSk7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGxldCBtdXQgYiA9ICRpZDo6c3BsYXQodHJ1ZSk7Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGEgPSBhLnJlcGxhY2UoMSwgdHJ1ZSk7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGIgPSBiLnJlcGxhY2UoMCwgZmFsc2UpOwotLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICB0ZXN0X2NtcChhLnBhcnRpYWxfbGV4X29yZCgpLCBiLnBhcnRpYWxf bGV4X29yZCgpLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTb21lKE9y ZGVyaW5nOjpMZXNzKSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfY21wKGIu cGFydGlhbF9sZXhfb3JkKCksIGEucGFydGlhbF9sZXhfb3JkKCksCi0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFNvbWUoT3JkZXJpbmc6OkdyZWF0ZXIpKTsKLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgdGVzdF9jbXAoYS5wYXJ0aWFsX2xleF9vcmQoKSwgYS5wYXJ0 aWFsX2xleF9vcmQoKSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU29t ZShPcmRlcmluZzo6RXF1YWwpKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9j bXAoYi5wYXJ0aWFsX2xleF9vcmQoKSwgYi5wYXJ0aWFsX2xleF9vcmQoKSwKLS0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgU29tZShPcmRlcmluZzo6RXF1YWwpKTsKLS0gICAg ICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAg ICAgICAgIH0KLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgIH07Ci0tfQotZGlmZiAt TnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9jbXAvdmVydGljYWwu cnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvY21wL3ZlcnRpY2FsLnJz Ci0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvY21wL3ZlcnRpY2Fs LnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0 eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvY21wL3ZlcnRpY2FsLnJzCTE5NzAtMDEtMDEgMDM6 MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSwxMTQgKzAsMCBAQAotLS8vISBWZXJ0aWNhbCAo bGFuZS13aXNlKSB2ZWN0b3IgY29tcGFyaXNvbnMgcmV0dXJuaW5nIHZlY3RvciBtYXNrcy4KLS0K LS1tYWNyb19ydWxlcyEgaW1wbF9jbXBfdmVydGljYWwgewotLSAgICAoCi0tICAgICAgICBbJGVs ZW1fdHk6aWRlbnQ7ICRlbGVtX2NvdW50OmV4cHJdOgotLSAgICAgICAgJGlkOmlkZW50LAotLSAg ICAgICAgJG1hc2tfdHk6aWRlbnQsCi0tICAgICAgICAkaXNfbWFzazpleHByLCgkdHJ1ZTpleHBy LCAkZmFsc2U6ZXhwcikgfCAkdGVzdF90dDp0dAotLSAgICApID0+IHsKLS0gICAgICAgIGltcGwg JGlkIHsKLS0gICAgICAgICAgICAvLy8gTGFuZS13aXNlIGVxdWFsaXR5IGNvbXBhcmlzb24uCi0t ICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgcHViIGZuIGVxKHNlbGYsIG90aGVy OiBTZWxmKSAtPiAkbWFza190eSB7Ci0tICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6bGx2bTo6 c2ltZF9lcTsKLS0gICAgICAgICAgICAgICAgU2ltZCh1bnNhZmUgeyBzaW1kX2VxKHNlbGYuMCwg b3RoZXIuMCkgfSkKLS0gICAgICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgLy8vIExhbmUtd2lz ZSBpbmVxdWFsaXR5IGNvbXBhcmlzb24uCi0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAg ICAgICAgcHViIGZuIG5lKHNlbGYsIG90aGVyOiBTZWxmKSAtPiAkbWFza190eSB7Ci0tICAgICAg ICAgICAgICAgIHVzZSBjcmF0ZTo6bGx2bTo6c2ltZF9uZTsKLS0gICAgICAgICAgICAgICAgU2lt ZCh1bnNhZmUgeyBzaW1kX25lKHNlbGYuMCwgb3RoZXIuMCkgfSkKLS0gICAgICAgICAgICB9Ci0t Ci0tICAgICAgICAgICAgLy8vIExhbmUtd2lzZSBsZXNzLXRoYW4gY29tcGFyaXNvbi4KLS0gICAg ICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBwdWIgZm4gbHQoc2VsZiwgb3RoZXI6IFNl bGYpIC0+ICRtYXNrX3R5IHsKLS0gICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpsbHZtOjp7c2lt ZF9ndCwgc2ltZF9sdH07Ci0tICAgICAgICAgICAgICAgIGlmICRpc19tYXNrIHsKLS0gICAgICAg ICAgICAgICAgICAgIFNpbWQodW5zYWZlIHsgc2ltZF9ndChzZWxmLjAsIG90aGVyLjApIH0pCi0t ICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0tICAgICAgICAgICAgICAgICAgICBTaW1kKHVuc2Fm ZSB7IHNpbWRfbHQoc2VsZi4wLCBvdGhlci4wKSB9KQotLSAgICAgICAgICAgICAgICB9Ci0tICAg ICAgICAgICAgfQotLQotLSAgICAgICAgICAgIC8vLyBMYW5lLXdpc2UgbGVzcy10aGFuLW9yLWVx dWFscyBjb21wYXJpc29uLgotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIHB1 YiBmbiBsZShzZWxmLCBvdGhlcjogU2VsZikgLT4gJG1hc2tfdHkgewotLSAgICAgICAgICAgICAg ICB1c2UgY3JhdGU6Omxsdm06OntzaW1kX2dlLCBzaW1kX2xlfTsKLS0gICAgICAgICAgICAgICAg aWYgJGlzX21hc2sgewotLSAgICAgICAgICAgICAgICAgICAgU2ltZCh1bnNhZmUgeyBzaW1kX2dl KHNlbGYuMCwgb3RoZXIuMCkgfSkKLS0gICAgICAgICAgICAgICAgfSBlbHNlIHsKLS0gICAgICAg ICAgICAgICAgICAgIFNpbWQodW5zYWZlIHsgc2ltZF9sZShzZWxmLjAsIG90aGVyLjApIH0pCi0t ICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgLy8vIExh bmUtd2lzZSBncmVhdGVyLXRoYW4gY29tcGFyaXNvbi4KLS0gICAgICAgICAgICAjW2lubGluZV0K LS0gICAgICAgICAgICBwdWIgZm4gZ3Qoc2VsZiwgb3RoZXI6IFNlbGYpIC0+ICRtYXNrX3R5IHsK LS0gICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpsbHZtOjp7c2ltZF9ndCwgc2ltZF9sdH07Ci0t ICAgICAgICAgICAgICAgIGlmICRpc19tYXNrIHsKLS0gICAgICAgICAgICAgICAgICAgIFNpbWQo dW5zYWZlIHsgc2ltZF9sdChzZWxmLjAsIG90aGVyLjApIH0pCi0tICAgICAgICAgICAgICAgIH0g ZWxzZSB7Ci0tICAgICAgICAgICAgICAgICAgICBTaW1kKHVuc2FmZSB7IHNpbWRfZ3Qoc2VsZi4w LCBvdGhlci4wKSB9KQotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgfQotLQotLSAg ICAgICAgICAgIC8vLyBMYW5lLXdpc2UgZ3JlYXRlci10aGFuLW9yLWVxdWFscyBjb21wYXJpc29u LgotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIHB1YiBmbiBnZShzZWxmLCBv dGhlcjogU2VsZikgLT4gJG1hc2tfdHkgewotLSAgICAgICAgICAgICAgICB1c2UgY3JhdGU6Omxs dm06OntzaW1kX2dlLCBzaW1kX2xlfTsKLS0gICAgICAgICAgICAgICAgaWYgJGlzX21hc2sgewot LSAgICAgICAgICAgICAgICAgICAgU2ltZCh1bnNhZmUgeyBzaW1kX2xlKHNlbGYuMCwgb3RoZXIu MCkgfSkKLS0gICAgICAgICAgICAgICAgfSBlbHNlIHsKLS0gICAgICAgICAgICAgICAgICAgIFNp bWQodW5zYWZlIHsgc2ltZF9nZShzZWxmLjAsIG90aGVyLjApIH0pCi0tICAgICAgICAgICAgICAg IH0KLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgICAgICB0ZXN0X2lmIXsKLS0gICAg ICAgICAgICAkdGVzdF90dDoKLS0gICAgICAgICAgICBwYXN0ZTo6aXRlbSEgewotLSAgICAgICAg ICAgICAgICBwdWIgbW9kIFs8JGlkIF9jbXBfdmVydGljYWw+XSB7Ci0tICAgICAgICAgICAgICAg ICAgICB1c2Ugc3VwZXI6Oio7Ci0tICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0 YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAi d2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQotLSAgICAgICAgICAgICAgICAgICAgZm4gY21w KCkgewotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBhID0gJGlkOjpzcGxhdCgkZmFsc2Up OwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBiID0gJGlkOjpzcGxhdCgkdHJ1ZSk7Ci0t Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHIgPSBhLmx0KGIpOwotLSAgICAgICAgICAg ICAgICAgICAgICAgIGxldCBlID0gJG1hc2tfdHk6OnNwbGF0KHRydWUpOwotLSAgICAgICAgICAg ICAgICAgICAgICAgIGFzc2VydCEociA9PSBlKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBs ZXQgciA9IGEubGUoYik7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IShyID09IGUp OwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBlID0gJG1hc2tfdHk6OnNwbGF0KGZh bHNlKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgciA9IGEuZ3QoYik7Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgYXNzZXJ0IShyID09IGUpOwotLSAgICAgICAgICAgICAgICAgICAg ICAgIGxldCByID0gYS5nZShiKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKHIg PT0gZSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHIgPSBhLmVxKGIpOwotLSAgICAg ICAgICAgICAgICAgICAgICAgIGFzc2VydCEociA9PSBlKTsKLS0KLS0gICAgICAgICAgICAgICAg ICAgICAgICBsZXQgbXV0IGEgPSBhOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQg YiA9IGI7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBlID0gZTsKLS0gICAgICAg ICAgICAgICAgICAgICAgICBmb3IgaSBpbiAwLi4kaWQ6OmxhbmVzKCkgewotLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICBpZiBpICUgMiA9PSAwIHsKLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGEgPSBhLnJlcGxhY2UoaSwgJGZhbHNlKTsKLS0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGIgPSBiLnJlcGxhY2UoaSwgJHRydWUpOwotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZSA9IGUucmVwbGFjZShpLCB0cnVlKTsKLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgfSBlbHNlIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGEg PSBhLnJlcGxhY2UoaSwgJHRydWUpOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg YiA9IGIucmVwbGFjZShpLCAkZmFsc2UpOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgZSA9IGUucmVwbGFjZShpLCBmYWxzZSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0KLS0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICAgICAg bGV0IHIgPSBhLmx0KGIpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCEociA9PSBl KTsKLS0gICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAg ICAgIH0KLS0gICAgICAgIH0KLS0gICAgfTsKLS19Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkv cnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2NtcC5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2Vk X3NpbWQvc3JjL2FwaS9jbXAucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQv c3JjL2FwaS9jbXAucnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBi L3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9jbXAucnMJMTk3MC0wMS0wMSAw MzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDE2ICswLDAgQEAKLS0vLyEgSW1wbGVtZW50 IGNtcCB0cmFpdHMgZm9yIHZlY3RvciB0eXBlcwotLQotLSNbbWFjcm9fdXNlXQotLW1vZCBwYXJ0 aWFsX2VxOwotLQotLSNbbWFjcm9fdXNlXQotLW1vZCBlcTsKLS0KLS0jW21hY3JvX3VzZV0KLS1t b2QgcGFydGlhbF9vcmQ7Ci0tCi0tI1ttYWNyb191c2VdCi0tbW9kIG9yZDsKLS0KLS0jW21hY3Jv X3VzZV0KLS1tb2QgdmVydGljYWw7Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNr ZWRfc2ltZC9zcmMvYXBpL2RlZmF1bHQucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1k L3NyYy9hcGkvZGVmYXVsdC5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9z cmMvYXBpL2RlZmF1bHQucnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsr KyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9kZWZhdWx0LnJzCTE5NzAt MDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSwzMCArMCwwIEBACi0tLy8hIElt cGxlbWVudHMgYERlZmF1bHRgIGZvciB2ZWN0b3IgdHlwZXMuCi0tCi0tbWFjcm9fcnVsZXMhIGlt cGxfZGVmYXVsdCB7Ci0tICAgIChbJGVsZW1fdHk6aWRlbnQ7ICRlbGVtX2NvdW50OmV4cHJdOiAk aWQ6aWRlbnQgfCAkdGVzdF90dDp0dCkgPT4gewotLSAgICAgICAgaW1wbCBEZWZhdWx0IGZvciAk aWQgewotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIGZuIGRlZmF1bHQoKSAt PiBTZWxmIHsKLS0gICAgICAgICAgICAgICAgU2VsZjo6c3BsYXQoJGVsZW1fdHk6OmRlZmF1bHQo KSkKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tCi0tICAgICAgICB0ZXN0X2lmIXsKLS0g ICAgICAgICAgICAkdGVzdF90dDoKLS0gICAgICAgICAgICBwYXN0ZTo6aXRlbSEgewotLSAgICAg ICAgICAgICAgICAvLyBDb21wYXJpc29ucyB1c2UgaW50ZWdlciBjYXN0cyB3aXRoaW4gbWFudGlz c2FeMSByYW5nZS4KLS0gICAgICAgICAgICAgICAgI1thbGxvdyhjbGlwcHk6OmZsb2F0X2NtcCld Ci0tICAgICAgICAgICAgICAgIHB1YiBtb2QgWzwkaWQgX2RlZmF1bHQ+XSB7Ci0tICAgICAgICAg ICAgICAgICAgICB1c2Ugc3VwZXI6Oio7Ci0tICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRy KG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldICNbY2ZnX2F0dHIodGFyZ2V0X2Fy Y2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQotLSAgICAgICAgICAgICAgICAgICAg Zm4gZGVmYXVsdCgpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgYSA9ICRpZDo6ZGVm YXVsdCgpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGZvciBpIGluIDAuLiRpZDo6bGFuZXMo KSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoYS5leHRyYWN0KGkp LCAkZWxlbV90eTo6ZGVmYXVsdCgpKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0tICAg ICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICB9Ci0t ICAgICAgICB9Ci0tICAgIH07Ci0tfQotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFj a2VkX3NpbWQvc3JjL2FwaS9mbXQvYmluYXJ5LnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRf c2ltZC9zcmMvYXBpL2ZtdC9iaW5hcnkucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2Vk X3NpbWQvc3JjL2FwaS9mbXQvYmluYXJ5LnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAw ICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvZm10L2Jp bmFyeS5ycwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsNTQgKzAs MCBAQAotLS8vISBJbXBsZW1lbnQgT2N0YWwgZm9ybWF0dGluZwotLQotLW1hY3JvX3J1bGVzISBp bXBsX2ZtdF9iaW5hcnkgewotLSAgICAoWyRlbGVtX3R5OmlkZW50OyAkZWxlbV9jb3VudDpleHBy XTogJGlkOmlkZW50IHwgJHRlc3RfdHQ6dHQpID0+IHsKLS0gICAgICAgIGltcGwgY3JhdGU6OmZt dDo6QmluYXJ5IGZvciAkaWQgewotLSAgICAgICAgICAgICNbYWxsb3coY2xpcHB5OjptaXNzaW5n X2lubGluZV9pbl9wdWJsaWNfaXRlbXMpXQotLSAgICAgICAgICAgIGZuIGZtdCgmc2VsZiwgZjog Jm11dCBjcmF0ZTo6Zm10OjpGb3JtYXR0ZXI8J18+KSAtPiBjcmF0ZTo6Zm10OjpSZXN1bHQgewot LSAgICAgICAgICAgICAgICB3cml0ZSEoZiwgInt9KCIsIHN0cmluZ2lmeSEoJGlkKSk/OwotLSAg ICAgICAgICAgICAgICBmb3IgaSBpbiAwLi4kZWxlbV9jb3VudCB7Ci0tICAgICAgICAgICAgICAg ICAgICBpZiBpID4gMCB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGUhKGYsICIsICIp PzsKLS0gICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgIHNlbGYuZXh0 cmFjdChpKS5mbXQoZik/OwotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgIHdy aXRlIShmLCAiKSIpCi0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICAgICAgdGVzdF9p ZiEgewotLSAgICAgICAgICAgICR0ZXN0X3R0OgotLSAgICAgICAgICAgIHBhc3RlOjppdGVtISB7 Ci0tICAgICAgICAgICAgICAgIHB1YiBtb2QgWzwkaWQgX2ZtdF9iaW5hcnk+XSB7Ci0tICAgICAg ICAgICAgICAgICAgICB1c2Ugc3VwZXI6Oio7Ci0tICAgICAgICAgICAgICAgICAgICAjW2NmZ19h dHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldCi0tICAgICAgICAgICAgICAg ICAgICAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0 KV0KLS0gICAgICAgICAgICAgICAgICAgIGZuIGJpbmFyeSgpIHsKLS0gICAgICAgICAgICAgICAg ICAgICAgICB1c2UgYXJyYXl2ZWM6OntBcnJheVN0cmluZyxBcnJheVZlY307Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgdHlwZSBUaW55U3RyaW5nID0gQXJyYXlTdHJpbmc8W3U4OyA1MTJdPjsK LS0KLS0gICAgICAgICAgICAgICAgICAgICAgICB1c2UgY3JhdGU6OmZtdDo6V3JpdGU7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgbGV0IHYgPSAkaWQ6OnNwbGF0KCRlbGVtX3R5OjpkZWZhdWx0 KCkpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgcyA9IFRpbnlTdHJpbmc6Om5l dygpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRlISgmbXV0IHMsICJ7OiNifSIsIHYp LnVud3JhcCgpOwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgYmVnID0gVGlu eVN0cmluZzo6bmV3KCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGUhKCZtdXQgYmVn LCAie30oIiwgc3RyaW5naWZ5ISgkaWQpKS51bndyYXAoKTsKLS0gICAgICAgICAgICAgICAgICAg ICAgICBhc3NlcnQhKHMuc3RhcnRzX3dpdGgoYmVnLmFzX3N0cigpKSk7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgYXNzZXJ0IShzLmVuZHNfd2l0aCgiKSIpKTsKLS0gICAgICAgICAgICAgICAg ICAgICAgICBsZXQgczogQXJyYXlWZWM8W1RpbnlTdHJpbmc7IDY0XT4KLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgPSBzLnJlcGxhY2UoYmVnLmFzX3N0cigpLCAiIikKLS0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgLnJlcGxhY2UoIikiLCAiIikuc3BsaXQoIiwiKQotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAubWFwKHx2fCBUaW55U3RyaW5nOjpmcm9tKHYudHJpbSgpKS51 bndyYXAoKSkKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLmNvbGxlY3QoKTsKLS0gICAg ICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHMubGVuKCksICRpZDo6bGFuZXMoKSk7Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChpbmRleCwgc3MpIGluIHMuaW50b19pdGVyKCku ZW51bWVyYXRlKCkgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IGUgPSBU aW55U3RyaW5nOjpuZXcoKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGUhKCZt dXQgZSwgIns6I2J9Iiwgdi5leHRyYWN0KGluZGV4KSkudW53cmFwKCk7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoc3MsIGUpOwotLSAgICAgICAgICAgICAgICAgICAg ICAgIH0KLS0gICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgfQotLSAgICAg ICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgfTsKLS19Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFy dHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2ZtdC9kZWJ1Zy5ycyBiL3RoaXJkX3BhcnR5L3J1 c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9mbXQvZGVidWcucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1 c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9mbXQvZGVidWcucnMJMjAyNS0wNC0yMCAxOToyODoxMy4w MDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2Fw aS9mbXQvZGVidWcucnMJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0x LDYwICswLDAgQEAKLS0vLyEgSW1wbGVtZW50IGRlYnVnIGZvcm1hdHRpbmcKLS0KLS1tYWNyb19y dWxlcyEgaW1wbF9mbXRfZGVidWdfdGVzdHMgewotLSAgICAoWyRlbGVtX3R5OnR5OyAkZWxlbV9j b3VudDpleHByXTogJGlkOmlkZW50IHwgJHRlc3RfdHQ6dHQpID0+IHsKLS0gICAgICAgIHRlc3Rf aWYhIHsKLS0gICAgICAgICAgICAkdGVzdF90dDoKLS0gICAgICAgICAgICBwYXN0ZTo6aXRlbSEg ewotLSAgICAgICAgICAgICAgICBwdWIgbW9kIFs8JGlkIF9mbXRfZGVidWc+XSB7Ci0tICAgICAg ICAgICAgICAgICAgICB1c2Ugc3VwZXI6Oio7Ci0tICAgICAgICAgICAgICAgICAgICAjW2NmZ19h dHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldCi0tICAgICAgICAgICAgICAg ICAgICAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0 KV0KLS0gICAgICAgICAgICAgICAgICAgIGZuIGRlYnVnKCkgewotLSAgICAgICAgICAgICAgICAg ICAgICAgIHVzZSBhcnJheXZlYzo6e0FycmF5U3RyaW5nLEFycmF5VmVjfTsKLS0gICAgICAgICAg ICAgICAgICAgICAgICB0eXBlIFRpbnlTdHJpbmcgPSBBcnJheVN0cmluZzxbdTg7IDUxMl0+Owot LQotLSAgICAgICAgICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6Zm10OjpXcml0ZTsKLS0gICAg ICAgICAgICAgICAgICAgICAgICBsZXQgdiA9ICRpZDo6ZGVmYXVsdCgpOwotLSAgICAgICAgICAg ICAgICAgICAgICAgIGxldCBtdXQgcyA9IFRpbnlTdHJpbmc6Om5ldygpOwotLSAgICAgICAgICAg ICAgICAgICAgICAgIHdyaXRlISgmbXV0IHMsICJ7Oj99IiwgdikudW53cmFwKCk7Ci0tCi0tICAg ICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBiZWcgPSBUaW55U3RyaW5nOjpuZXcoKTsKLS0g ICAgICAgICAgICAgICAgICAgICAgICB3cml0ZSEoJm11dCBiZWcsICJ7fSgiLCBzdHJpbmdpZnkh KCRpZCkpLnVud3JhcCgpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCEocy5zdGFy dHNfd2l0aChiZWcuYXNfc3RyKCkpKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQh KHMuZW5kc193aXRoKCIpIikpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBzOiBBcnJh eVZlYzxbVGlueVN0cmluZzsgNjRdPgotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IHMu cmVwbGFjZShiZWcuYXNfc3RyKCksICIiKQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAu cmVwbGFjZSgiKSIsICIiKS5zcGxpdCgiLCIpCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAg IC5tYXAofHZ8IFRpbnlTdHJpbmc6OmZyb20odi50cmltKCkpLnVud3JhcCgpKQotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAuY29sbGVjdCgpOwotLSAgICAgICAgICAgICAgICAgICAgICAg IGFzc2VydF9lcSEocy5sZW4oKSwgJGlkOjpsYW5lcygpKTsKLS0gICAgICAgICAgICAgICAgICAg ICAgICBmb3IgKGluZGV4LCBzcykgaW4gcy5pbnRvX2l0ZXIoKS5lbnVtZXJhdGUoKSB7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgZSA9IFRpbnlTdHJpbmc6Om5ldygpOwot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICB3cml0ZSEoJm11dCBlLCAiezo/fSIsIHYuZXh0 cmFjdChpbmRleCkpLnVud3JhcCgpOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3Nl cnRfZXEhKHNzLCBlKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAg ICAgICAgICB9Ci0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9 Ci0tICAgIH07Ci0tfQotLQotLW1hY3JvX3J1bGVzISBpbXBsX2ZtdF9kZWJ1ZyB7Ci0tICAgIChb JGVsZW1fdHk6dHk7ICRlbGVtX2NvdW50OmV4cHJdOiAkaWQ6aWRlbnQgfCAkdGVzdF90dDp0dCkg PT4gewotLSAgICAgICAgaW1wbCBjcmF0ZTo6Zm10OjpEZWJ1ZyBmb3IgJGlkIHsKLS0gICAgICAg ICAgICAjW2FsbG93KGNsaXBweTo6bWlzc2luZ19pbmxpbmVfaW5fcHVibGljX2l0ZW1zKV0KLS0g ICAgICAgICAgICBmbiBmbXQoJnNlbGYsIGY6ICZtdXQgY3JhdGU6OmZtdDo6Rm9ybWF0dGVyPCdf PikgLT4gY3JhdGU6OmZtdDo6UmVzdWx0IHsKLS0gICAgICAgICAgICAgICAgd3JpdGUhKGYsICJ7 fSgiLCBzdHJpbmdpZnkhKCRpZCkpPzsKLS0gICAgICAgICAgICAgICAgZm9yIGkgaW4gMC4uJGVs ZW1fY291bnQgewotLSAgICAgICAgICAgICAgICAgICAgaWYgaSA+IDAgewotLSAgICAgICAgICAg ICAgICAgICAgICAgIHdyaXRlIShmLCAiLCAiKT87Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0t ICAgICAgICAgICAgICAgICAgICBzZWxmLmV4dHJhY3QoaSkuZm10KGYpPzsKLS0gICAgICAgICAg ICAgICAgfQotLSAgICAgICAgICAgICAgICB3cml0ZSEoZiwgIikiKQotLSAgICAgICAgICAgIH0K LS0gICAgICAgIH0KLS0gICAgICAgIGltcGxfZm10X2RlYnVnX3Rlc3RzIShbJGVsZW1fdHk7ICRl bGVtX2NvdW50XTogJGlkIHwgJHRlc3RfdHQpOwotLSAgICB9OwotLX0KLWRpZmYgLU5yYnUgYS90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvZm10L2xvd2VyX2hleC5ycyBiL3Ro aXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9mbXQvbG93ZXJfaGV4LnJzCi0tLS0g YS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvZm10L2xvd2VyX2hleC5ycwky MDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVz dC9wYWNrZWRfc2ltZC9zcmMvYXBpL2ZtdC9sb3dlcl9oZXgucnMJMTk3MC0wMS0wMSAwMzowMDow MC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDU0ICswLDAgQEAKLS0vLyEgSW1wbGVtZW50IGBMb3dl ckhleGAgZm9ybWF0dGluZwotLQotLW1hY3JvX3J1bGVzISBpbXBsX2ZtdF9sb3dlcl9oZXggewot LSAgICAoWyRlbGVtX3R5OmlkZW50OyAkZWxlbV9jb3VudDpleHByXTogJGlkOmlkZW50IHwgJHRl c3RfdHQ6dHQpID0+IHsKLS0gICAgICAgIGltcGwgY3JhdGU6OmZtdDo6TG93ZXJIZXggZm9yICRp ZCB7Ci0tICAgICAgICAgICAgI1thbGxvdyhjbGlwcHk6Om1pc3NpbmdfaW5saW5lX2luX3B1Ymxp Y19pdGVtcyldCi0tICAgICAgICAgICAgZm4gZm10KCZzZWxmLCBmOiAmbXV0IGNyYXRlOjpmbXQ6 OkZvcm1hdHRlcjwnXz4pIC0+IGNyYXRlOjpmbXQ6OlJlc3VsdCB7Ci0tICAgICAgICAgICAgICAg IHdyaXRlIShmLCAie30oIiwgc3RyaW5naWZ5ISgkaWQpKT87Ci0tICAgICAgICAgICAgICAgIGZv ciBpIGluIDAuLiRlbGVtX2NvdW50IHsKLS0gICAgICAgICAgICAgICAgICAgIGlmIGkgPiAwIHsK LS0gICAgICAgICAgICAgICAgICAgICAgICB3cml0ZSEoZiwgIiwgIik/OwotLSAgICAgICAgICAg ICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgc2VsZi5leHRyYWN0KGkpLmZtdChmKT87 Ci0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgd3JpdGUhKGYsICIpIikKLS0g ICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgICAgICB0ZXN0X2lmISB7Ci0tICAgICAgICAg ICAgJHRlc3RfdHQ6Ci0tICAgICAgICAgICAgcGFzdGU6Oml0ZW0hIHsKLS0gICAgICAgICAgICAg ICAgcHViIG1vZCBbPCRpZCBfZm10X2xvd2VyX2hleD5dIHsKLS0gICAgICAgICAgICAgICAgICAg IHVzZSBzdXBlcjo6KjsKLS0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdl dF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0 dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQotLSAgICAgICAg ICAgICAgICAgICAgZm4gbG93ZXJfaGV4KCkgewotLSAgICAgICAgICAgICAgICAgICAgICAgIHVz ZSBhcnJheXZlYzo6e0FycmF5U3RyaW5nLEFycmF5VmVjfTsKLS0gICAgICAgICAgICAgICAgICAg ICAgICB0eXBlIFRpbnlTdHJpbmcgPSBBcnJheVN0cmluZzxbdTg7IDUxMl0+OwotLQotLSAgICAg ICAgICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6Zm10OjpXcml0ZTsKLS0gICAgICAgICAgICAg ICAgICAgICAgICBsZXQgdiA9ICRpZDo6c3BsYXQoJGVsZW1fdHk6OmRlZmF1bHQoKSk7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBzID0gVGlueVN0cmluZzo6bmV3KCk7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgd3JpdGUhKCZtdXQgcywgIns6I3h9IiwgdikudW53cmFwKCk7 Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBiZWcgPSBUaW55U3RyaW5nOjpu ZXcoKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICB3cml0ZSEoJm11dCBiZWcsICJ7fSgiLCBz dHJpbmdpZnkhKCRpZCkpLnVud3JhcCgpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2Vy dCEocy5zdGFydHNfd2l0aChiZWcuYXNfc3RyKCkpKTsKLS0gICAgICAgICAgICAgICAgICAgICAg ICBhc3NlcnQhKHMuZW5kc193aXRoKCIpIikpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxl dCBzOiBBcnJheVZlYzxbVGlueVN0cmluZzsgNjRdPgotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICA9IHMucmVwbGFjZShiZWcuYXNfc3RyKCksICIiKS5yZXBsYWNlKCIpIiwgIiIpCi0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgIC5zcGxpdCgiLCIpCi0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC5tYXAofHZ8IFRpbnlTdHJpbmc6OmZyb20odi50cmltKCkpLnVud3JhcCgpKQot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAuY29sbGVjdCgpOwotLSAgICAgICAgICAgICAg ICAgICAgICAgIGFzc2VydF9lcSEocy5sZW4oKSwgJGlkOjpsYW5lcygpKTsKLS0gICAgICAgICAg ICAgICAgICAgICAgICBmb3IgKGluZGV4LCBzcykgaW4gcy5pbnRvX2l0ZXIoKS5lbnVtZXJhdGUo KSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgZSA9IFRpbnlTdHJpbmc6 Om5ldygpOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB3cml0ZSEoJm11dCBlLCAiezoj eH0iLCB2LmV4dHJhY3QoaW5kZXgpKS51bndyYXAoKTsKLS0gICAgICAgICAgICAgICAgICAgICAg ICBhc3NlcnRfZXEhKHNzLCBlKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAg ICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICB9Ci0tICAg ICAgICB9Ci0tICAgIH07Ci0tfQotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2Vk X3NpbWQvc3JjL2FwaS9mbXQvb2N0YWwucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1k L3NyYy9hcGkvZm10L29jdGFsLnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1k L3NyYy9hcGkvZm10L29jdGFsLnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAw Ci0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvZm10L29jdGFsLnJz CTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSw1NCArMCwwIEBACi0t Ly8hIEltcGxlbWVudCBPY3RhbCBmb3JtYXR0aW5nCi0tCi0tbWFjcm9fcnVsZXMhIGltcGxfZm10 X29jdGFsIHsKLS0gICAgKFskZWxlbV90eTppZGVudDsgJGVsZW1fY291bnQ6ZXhwcl06ICRpZDpp ZGVudCB8ICR0ZXN0X3R0OnR0KSA9PiB7Ci0tICAgICAgICBpbXBsIGNyYXRlOjpmbXQ6Ok9jdGFs IGZvciAkaWQgewotLSAgICAgICAgICAgICNbYWxsb3coY2xpcHB5OjptaXNzaW5nX2lubGluZV9p bl9wdWJsaWNfaXRlbXMpXQotLSAgICAgICAgICAgIGZuIGZtdCgmc2VsZiwgZjogJm11dCBjcmF0 ZTo6Zm10OjpGb3JtYXR0ZXI8J18+KSAtPiBjcmF0ZTo6Zm10OjpSZXN1bHQgewotLSAgICAgICAg ICAgICAgICB3cml0ZSEoZiwgInt9KCIsIHN0cmluZ2lmeSEoJGlkKSk/OwotLSAgICAgICAgICAg ICAgICBmb3IgaSBpbiAwLi4kZWxlbV9jb3VudCB7Ci0tICAgICAgICAgICAgICAgICAgICBpZiBp ID4gMCB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGUhKGYsICIsICIpPzsKLS0gICAg ICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgIHNlbGYuZXh0cmFjdChpKS5m bXQoZik/OwotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgIHdyaXRlIShmLCAi KSIpCi0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICAgICAgdGVzdF9pZiEgewotLSAg ICAgICAgICAgICR0ZXN0X3R0OgotLSAgICAgICAgICAgIHBhc3RlOjppdGVtISB7Ci0tICAgICAg ICAgICAgICAgIHB1YiBtb2QgWzwkaWQgX2ZtdF9vY3RhbD5dIHsKLS0gICAgICAgICAgICAgICAg ICAgIHVzZSBzdXBlcjo6KjsKLS0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRh cmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgICNbY2Zn X2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQotLSAgICAg ICAgICAgICAgICAgICAgZm4gb2N0YWxfaGV4KCkgewotLSAgICAgICAgICAgICAgICAgICAgICAg IHVzZSBhcnJheXZlYzo6e0FycmF5U3RyaW5nLEFycmF5VmVjfTsKLS0gICAgICAgICAgICAgICAg ICAgICAgICB0eXBlIFRpbnlTdHJpbmcgPSBBcnJheVN0cmluZzxbdTg7IDUxMl0+OwotLQotLSAg ICAgICAgICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6Zm10OjpXcml0ZTsKLS0gICAgICAgICAg ICAgICAgICAgICAgICBsZXQgdiA9ICRpZDo6c3BsYXQoJGVsZW1fdHk6OmRlZmF1bHQoKSk7Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBzID0gVGlueVN0cmluZzo6bmV3KCk7Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGUhKCZtdXQgcywgIns6I299IiwgdikudW53cmFw KCk7Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBiZWcgPSBUaW55U3RyaW5n OjpuZXcoKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICB3cml0ZSEoJm11dCBiZWcsICJ7fSgi LCBzdHJpbmdpZnkhKCRpZCkpLnVud3JhcCgpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFz c2VydCEocy5zdGFydHNfd2l0aChiZWcuYXNfc3RyKCkpKTsKLS0gICAgICAgICAgICAgICAgICAg ICAgICBhc3NlcnQhKHMuZW5kc193aXRoKCIpIikpOwotLSAgICAgICAgICAgICAgICAgICAgICAg IGxldCBzOiBBcnJheVZlYzxbVGlueVN0cmluZzsgNjRdPgotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICA9IHMucmVwbGFjZShiZWcuYXNfc3RyKCksICIiKS5yZXBsYWNlKCIpIiwgIiIpCi0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5zcGxpdCgiLCIpCi0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgIC5tYXAofHZ8IFRpbnlTdHJpbmc6OmZyb20odi50cmltKCkpLnVud3JhcCgp KQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAuY29sbGVjdCgpOwotLSAgICAgICAgICAg ICAgICAgICAgICAgIGFzc2VydF9lcSEocy5sZW4oKSwgJGlkOjpsYW5lcygpKTsKLS0gICAgICAg ICAgICAgICAgICAgICAgICBmb3IgKGluZGV4LCBzcykgaW4gcy5pbnRvX2l0ZXIoKS5lbnVtZXJh dGUoKSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgZSA9IFRpbnlTdHJp bmc6Om5ldygpOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB3cml0ZSEoJm11dCBlLCAi ezojb30iLCB2LmV4dHJhY3QoaW5kZXgpKS51bndyYXAoKTsKLS0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgYXNzZXJ0X2VxIShzcywgZSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgfQot LSAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAg fQotLSAgICAgICAgfQotLSAgICB9OwotLX0KLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0 L3BhY2tlZF9zaW1kL3NyYy9hcGkvZm10L3VwcGVyX2hleC5ycyBiL3RoaXJkX3BhcnR5L3J1c3Qv cGFja2VkX3NpbWQvc3JjL2FwaS9mbXQvdXBwZXJfaGV4LnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9y dXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvZm10L3VwcGVyX2hleC5ycwkyMDI1LTA0LTIwIDE5OjI4 OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9z cmMvYXBpL2ZtdC91cHBlcl9oZXgucnMJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAz MDAKLUBAIC0xLDU0ICswLDAgQEAKLS0vLyEgSW1wbGVtZW50IGBVcHBlckhleGAgZm9ybWF0dGlu ZwotLQotLW1hY3JvX3J1bGVzISBpbXBsX2ZtdF91cHBlcl9oZXggewotLSAgICAoWyRlbGVtX3R5 OmlkZW50OyAkZWxlbV9jb3VudDpleHByXTogJGlkOmlkZW50IHwgJHRlc3RfdHQ6dHQpID0+IHsK LS0gICAgICAgIGltcGwgY3JhdGU6OmZtdDo6VXBwZXJIZXggZm9yICRpZCB7Ci0tICAgICAgICAg ICAgI1thbGxvdyhjbGlwcHk6Om1pc3NpbmdfaW5saW5lX2luX3B1YmxpY19pdGVtcyldCi0tICAg ICAgICAgICAgZm4gZm10KCZzZWxmLCBmOiAmbXV0IGNyYXRlOjpmbXQ6OkZvcm1hdHRlcjwnXz4p IC0+IGNyYXRlOjpmbXQ6OlJlc3VsdCB7Ci0tICAgICAgICAgICAgICAgIHdyaXRlIShmLCAie30o Iiwgc3RyaW5naWZ5ISgkaWQpKT87Ci0tICAgICAgICAgICAgICAgIGZvciBpIGluIDAuLiRlbGVt X2NvdW50IHsKLS0gICAgICAgICAgICAgICAgICAgIGlmIGkgPiAwIHsKLS0gICAgICAgICAgICAg ICAgICAgICAgICB3cml0ZSEoZiwgIiwgIik/OwotLSAgICAgICAgICAgICAgICAgICAgfQotLSAg ICAgICAgICAgICAgICAgICAgc2VsZi5leHRyYWN0KGkpLmZtdChmKT87Ci0tICAgICAgICAgICAg ICAgIH0KLS0gICAgICAgICAgICAgICAgd3JpdGUhKGYsICIpIikKLS0gICAgICAgICAgICB9Ci0t ICAgICAgICB9Ci0tICAgICAgICB0ZXN0X2lmISB7Ci0tICAgICAgICAgICAgJHRlc3RfdHQ6Ci0t ICAgICAgICAgICAgcGFzdGU6Oml0ZW0hIHsKLS0gICAgICAgICAgICAgICAgcHViIG1vZCBbPCRp ZCBfZm10X3VwcGVyX2hleD5dIHsKLS0gICAgICAgICAgICAgICAgICAgIHVzZSBzdXBlcjo6KjsK LS0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20z MiIpLCB0ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2gg PSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQotLSAgICAgICAgICAgICAgICAgICAgZm4g dXBwZXJfaGV4KCkgewotLSAgICAgICAgICAgICAgICAgICAgICAgIHVzZSBhcnJheXZlYzo6e0Fy cmF5U3RyaW5nLEFycmF5VmVjfTsKLS0gICAgICAgICAgICAgICAgICAgICAgICB0eXBlIFRpbnlT dHJpbmcgPSBBcnJheVN0cmluZzxbdTg7IDUxMl0+OwotLQotLSAgICAgICAgICAgICAgICAgICAg ICAgIHVzZSBjcmF0ZTo6Zm10OjpXcml0ZTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQg diA9ICRpZDo6c3BsYXQoJGVsZW1fdHk6OmRlZmF1bHQoKSk7Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgbGV0IG11dCBzID0gVGlueVN0cmluZzo6bmV3KCk7Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgd3JpdGUhKCZtdXQgcywgIns6I1h9IiwgdikudW53cmFwKCk7Ci0tCi0tICAgICAgICAg ICAgICAgICAgICAgICAgbGV0IG11dCBiZWcgPSBUaW55U3RyaW5nOjpuZXcoKTsKLS0gICAgICAg ICAgICAgICAgICAgICAgICB3cml0ZSEoJm11dCBiZWcsICJ7fSgiLCBzdHJpbmdpZnkhKCRpZCkp LnVud3JhcCgpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCEocy5zdGFydHNfd2l0 aChiZWcuYXNfc3RyKCkpKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKHMuZW5k c193aXRoKCIpIikpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBzOiBBcnJheVZlYzxb VGlueVN0cmluZzsgNjRdPgotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IHMucmVwbGFj ZShiZWcuYXNfc3RyKCksICIiKS5yZXBsYWNlKCIpIiwgIiIpCi0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC5zcGxpdCgiLCIpCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5tYXAo fHZ8IFRpbnlTdHJpbmc6OmZyb20odi50cmltKCkpLnVud3JhcCgpKQotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAuY29sbGVjdCgpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2Vy dF9lcSEocy5sZW4oKSwgJGlkOjpsYW5lcygpKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBm b3IgKGluZGV4LCBzcykgaW4gcy5pbnRvX2l0ZXIoKS5lbnVtZXJhdGUoKSB7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGxldCBtdXQgZSA9IFRpbnlTdHJpbmc6Om5ldygpOwotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICB3cml0ZSEoJm11dCBlLCAiezojWH0iLCB2LmV4dHJhY3Qo aW5kZXgpKS51bndyYXAoKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2Vx IShzcywgZSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAg ICAgfQotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAg ICB9OwotLX0KLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9h cGkvZm10LnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2ZtdC5ycwot LS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2ZtdC5ycwkyMDI1LTA0 LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNr ZWRfc2ltZC9zcmMvYXBpL2ZtdC5ycwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMw MAotQEAgLTEsMTIgKzAsMCBAQAotLS8vISBJbXBsZW1lbnRzIGZvcm1hdHRpbmcgQVBJcwotLQot LSNbbWFjcm9fdXNlXQotLW1vZCBkZWJ1ZzsKLS0jW21hY3JvX3VzZV0KLS1tb2QgbG93ZXJfaGV4 OwotLSNbbWFjcm9fdXNlXQotLW1vZCB1cHBlcl9oZXg7Ci0tI1ttYWNyb191c2VdCi0tbW9kIG9j dGFsOwotLSNbbWFjcm9fdXNlXQotLW1vZCBiaW5hcnk7Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFy dHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2Zyb20vZnJvbV9hcnJheS5ycyBiL3RoaXJkX3Bh cnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9mcm9tL2Zyb21fYXJyYXkucnMKLS0tLSBhL3Ro aXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9mcm9tL2Zyb21fYXJyYXkucnMJMjAy NS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3Qv cGFja2VkX3NpbWQvc3JjL2FwaS9mcm9tL2Zyb21fYXJyYXkucnMJMTk3MC0wMS0wMSAwMzowMDow MC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDEyNCArMCwwIEBACi0tLy8hIEltcGxlbWVudHMgYEZy b208W1Q7IE5dPmAgYW5kIGBJbnRvPFtUOyBOXT5gIGZvciB2ZWN0b3IgdHlwZXMuCi0tCi0tbWFj cm9fcnVsZXMhIGltcGxfZnJvbV9hcnJheSB7Ci0tICAgIChbJGVsZW1fdHk6aWRlbnQ7ICRlbGVt X2NvdW50OmV4cHJdOiAkaWQ6aWRlbnQgfCAkdGVzdF90dDp0dAotLSAgICAgfCAoJG5vbl9kZWZh dWx0X2FycmF5OmV4cHIsICRub25fZGVmYXVsdF92ZWM6ZXhwcikpID0+IHsKLS0gICAgICAgIGlt cGwgRnJvbTxbJGVsZW1fdHk7ICRlbGVtX2NvdW50XT4gZm9yICRpZCB7Ci0tICAgICAgICAgICAg I1tpbmxpbmVdCi0tICAgICAgICAgICAgZm4gZnJvbShhcnJheTogWyRlbGVtX3R5OyAkZWxlbV9j b3VudF0pIC0+IFNlbGYgewotLSAgICAgICAgICAgICAgICB1bmlvbiBVIHsKLS0gICAgICAgICAg ICAgICAgICAgIGFycmF5OiBbJGVsZW1fdHk7ICRlbGVtX2NvdW50XSwKLS0gICAgICAgICAgICAg ICAgICAgIHZlYzogJGlkLAotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgIHVu c2FmZSB7IFUgeyBhcnJheSB9LnZlYyB9Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLQot LSAgICAgICAgaW1wbCBGcm9tPCRpZD4gZm9yIFskZWxlbV90eTsgJGVsZW1fY291bnRdIHsKLS0g ICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBmbiBmcm9tKHZlYzogJGlkKSAtPiBT ZWxmIHsKLS0gICAgICAgICAgICAgICAgdW5pb24gVSB7Ci0tICAgICAgICAgICAgICAgICAgICBh cnJheTogWyRlbGVtX3R5OyAkZWxlbV9jb3VudF0sCi0tICAgICAgICAgICAgICAgICAgICB2ZWM6 ICRpZCwKLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICB1bnNhZmUgeyBVIHsg dmVjIH0uYXJyYXkgfQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0KLS0gICAgICAgIC8v IEZJWE1FOiBgSW50bzo6aW50b2AgaXMgbm90IGlubGluZSwgYnV0IGR1ZSB0bwotLSAgICAgICAg Ly8gdGhlIGJsYW5rZXQgaW1wbCBpbiBgc3RkYCwgd2hpY2ggaXMgbm90Ci0tICAgICAgICAvLyBt YXJrZWQgYGRlZmF1bHRgLCB3ZSBjYW5ub3Qgb3ZlcnJpZGUgaXQgaGVyZSB3aXRoCi0tICAgICAg ICAvLyBzcGVjaWFsaXphdGlvbi4KLS0gICAgICAgIC8qCi0tICAgICAgICBpbXBsIEludG88WyRl bGVtX3R5OyAkZWxlbV9jb3VudF0+IGZvciAkaWQgewotLSAgICAgICAgICAgICNbaW5saW5lXQot LSAgICAgICAgICAgIGZuIGludG8oc2VsZikgLT4gWyRlbGVtX3R5OyAkZWxlbV9jb3VudF0gewot LSAgICAgICAgICAgICAgICB1bmlvbiBVIHsKLS0gICAgICAgICAgICAgICAgICAgIGFycmF5OiBb JGVsZW1fdHk7ICRlbGVtX2NvdW50XSwKLS0gICAgICAgICAgICAgICAgICAgIHZlYzogJGlkLAot LSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgIHVuc2FmZSB7IFUgeyB2ZWM6IHNl bGYgfS5hcnJheSB9Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLQotLSAgICAgICAgaW1w bCBJbnRvPCRpZD4gZm9yIFskZWxlbV90eTsgJGVsZW1fY291bnRdIHsKLS0gICAgICAgICAgICAj W2lubGluZV0KLS0gICAgICAgICAgICBmbiBpbnRvKHNlbGYpIC0+ICRpZCB7Ci0tICAgICAgICAg ICAgICAgIHVuaW9uIFUgewotLSAgICAgICAgICAgICAgICAgICAgYXJyYXk6IFskZWxlbV90eTsg JGVsZW1fY291bnRdLAotLSAgICAgICAgICAgICAgICAgICAgdmVjOiAkaWQsCi0tICAgICAgICAg ICAgICAgIH0KLS0gICAgICAgICAgICAgICAgdW5zYWZlIHsgVSB7IGFycmF5OiBzZWxmIH0udmVj IH0KLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgICAgICAqLwotLQotLSAgICAgICAg dGVzdF9pZiEgewotLSAgICAgICAgICAgICR0ZXN0X3R0OgotLSAgICAgICAgICAgIHBhc3RlOjpp dGVtISB7Ci0tICAgICAgICAgICAgICAgIC8vIENvbXBhcmlzb25zIHVzZSBpbnRlZ2VyIGNhc3Rz IHdpdGhpbiBtYW50aXNzYV4xIHJhbmdlLgotLSAgICAgICAgICAgICAgICAjW2FsbG93KGNsaXBw eTo6ZmxvYXRfY21wKV0KLS0gICAgICAgICAgICAgICAgbW9kIFs8JGlkIF9mcm9tPl0gewotLSAg ICAgICAgICAgICAgICAgICAgdXNlIHN1cGVyOjoqOwotLSAgICAgICAgICAgICAgICAgICAgI1t0 ZXN0XQotLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cihtaXJpLCBpZ25vcmUpXQotLSAg ICAgICAgICAgICAgICAgICAgZm4gYXJyYXkoKSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAg bGV0IHZlYzogJGlkID0gRGVmYXVsdDo6ZGVmYXVsdCgpOwotLQotLSAgICAgICAgICAgICAgICAg ICAgICAgIC8vIEZJWE1FOiBXb3JrYXJvdW5kIGZvciBhcnJheXMgd2l0aCBtb3JlIHRoYW4gMzIK LS0gICAgICAgICAgICAgICAgICAgICAgICAvLyBlbGVtZW50cy4KLS0gICAgICAgICAgICAgICAg ICAgICAgICAvLwotLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmUgYmVjYXVzZSB3ZSBu ZXZlciB0YWtlIGEgcmVmZXJlbmNlIHRvIGFueQotLSAgICAgICAgICAgICAgICAgICAgICAgIC8v IHVuaW5pdGlhbGl6ZWQgZWxlbWVudC4KLS0gICAgICAgICAgICAgICAgICAgICAgICB1bmlvbiBX IHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJyYXk6IFskZWxlbV90eTsgJGVsZW1f Y291bnRdLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdGhlcjogKCkKLS0gICAgICAg ICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBhcnJh eSA9IFcgeyBvdGhlcjogKCkgfTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBmb3IgaSBpbiAw Li4kZWxlbV9jb3VudCB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZWZhdWx0 OiAkZWxlbV90eSA9IERlZmF1bHQ6OmRlZmF1bHQoKTsKLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgLy8gbm90ZTogYXJyYXkub3RoZXIgaXMgdGhlIGFjdGl2ZSBtZW1iZXIgYW5kCi0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGluaXRpYWxpemVkIHNvIHdlIGNhbiB0YWtlIGEg cmVmZXJlbmNlIHRvIGl0OgotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgcCA9IHVu c2FmZSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbXV0IGFycmF5Lm90aGVy IGFzICptdXQgKCkgYXMgKm11dCAkZWxlbV90eQotLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICB9OwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBub3RlOiBkZWZhdWx0IGlzIGEg dmFsaWQgYml0LXBhdHRlcm4gZm9yCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICRl bGVtX3R5OgotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNhZmUgewotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgY3JhdGU6OnB0cjo6d3JpdGUocC53cmFwcGluZ19hZGQo aSksIGRlZmF1bHQpCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIG5vdGU6IHRoZSBh cnJheSB2YXJpYW50IG9mIHRoZSB1bmlvbiBpcyBwcm9wZXJseQotLSAgICAgICAgICAgICAgICAg ICAgICAgIC8vIGluaXRpYWxpemVkOgotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQg YXJyYXkgPSB1bnNhZmUgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcnJheS5hcnJh eQotLSAgICAgICAgICAgICAgICAgICAgICAgIH07Ci0tCi0tICAgICAgICAgICAgICAgICAgICAg ICAgYXJyYXlbMF0gPSAkbm9uX2RlZmF1bHRfYXJyYXk7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgbGV0IHZlYyA9IHZlYy5yZXBsYWNlKDAsICRub25fZGVmYXVsdF92ZWMpOwotLQotLSAgICAg ICAgICAgICAgICAgICAgICAgIGxldCB2ZWNfZnJvbV9hcnJheSA9ICRpZDo6ZnJvbShhcnJheSk7 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh2ZWNfZnJvbV9hcnJheSwgdmVj KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgYXJyYXlfZnJvbV92ZWMKLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgPSA8WyRlbGVtX3R5OyAkZWxlbV9jb3VudF0+Ojpmcm9tKHZl Yyk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IFdvcmthcm91bmQgZm9yIGFy cmF5cyB3aXRoIG1vcmUgdGhhbiAzMgotLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIGVsZW1l bnRzLgotLSAgICAgICAgICAgICAgICAgICAgICAgIGZvciBpIGluIDAuLiRlbGVtX2NvdW50IHsK LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShhcnJheV9mcm9tX3ZlY1tp XSwgYXJyYXlbaV0pOwotLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAg ICAgICAgICAgICAgICBsZXQgdmVjX2Zyb21faW50b19hcnJheTogJGlkID0gYXJyYXkuaW50bygp OwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodmVjX2Zyb21faW50b19hcnJh eSwgdmVjKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgYXJyYXlfZnJvbV9pbnRvX3Zl YzogWyRlbGVtX3R5OyAkZWxlbV9jb3VudF0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg PSB2ZWMuaW50bygpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBXb3JrYXJv dW5kIGZvciBhcnJheXMgd2l0aCBtb3JlIHRoYW4gMzIKLS0gICAgICAgICAgICAgICAgICAgICAg ICAvLyBlbGVtZW50cy4KLS0gICAgICAgICAgICAgICAgICAgICAgICBmb3IgaSBpbiAwLi4kZWxl bV9jb3VudCB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoYXJyYXlf ZnJvbV9pbnRvX3ZlY1tpXSwgYXJyYXlbaV0pOwotLSAgICAgICAgICAgICAgICAgICAgICAgIH0K LS0gICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAg IH0KLS0gICAgICAgIH0KLS0gICAgfTsKLS19Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVz dC9wYWNrZWRfc2ltZC9zcmMvYXBpL2Zyb20vZnJvbV92ZWN0b3IucnMgYi90aGlyZF9wYXJ0eS9y dXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvZnJvbS9mcm9tX3ZlY3Rvci5ycwotLS0tIGEvdGhpcmRf cGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2Zyb20vZnJvbV92ZWN0b3IucnMJMjAyNS0w NC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFj a2VkX3NpbWQvc3JjL2FwaS9mcm9tL2Zyb21fdmVjdG9yLnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAu MDAwMDAwMDAwICswMzAwCi1AQCAtMSw2NyArMCwwIEBACi0tLy8hIEltcGxlbWVudHMgYEZyb21g IGFuZCBgSW50b2AgZm9yIHZlY3RvciB0eXBlcy4KLS0KLS1tYWNyb19ydWxlcyEgaW1wbF9mcm9t X3ZlY3RvciB7Ci0tICAgIChbJGVsZW1fdHk6aWRlbnQ7ICRlbGVtX2NvdW50OmV4cHJdOiAkaWQ6 aWRlbnQgfCAkdGVzdF90dDp0dAotLSAgICAgfCAkc291cmNlOmlkZW50KSA9PiB7Ci0tICAgICAg ICBpbXBsIEZyb208JHNvdXJjZT4gZm9yICRpZCB7Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0t ICAgICAgICAgICAgZm4gZnJvbShzb3VyY2U6ICRzb3VyY2UpIC0+IFNlbGYgewotLSAgICAgICAg ICAgICAgICBmbiBzdGF0aWNfYXNzZXJ0X3NhbWVfbnVtYmVyX29mX2xhbmVzPFQsIFU+KCkKLS0g ICAgICAgICAgICAgICAgd2hlcmUKLS0gICAgICAgICAgICAgICAgICAgIFQ6IGNyYXRlOjpzZWFs ZWQ6OlNpbWQsCi0tICAgICAgICAgICAgICAgICAgICBVOiBjcmF0ZTo6c2VhbGVkOjpTaW1kPExh bmVzVHlwZSA9IFQ6OkxhbmVzVHlwZT4sCi0tICAgICAgICAgICAgICAgIHsKLS0gICAgICAgICAg ICAgICAgfQotLSAgICAgICAgICAgICAgICB1c2UgY3JhdGU6Omxsdm06OnNpbWRfY2FzdDsKLS0g ICAgICAgICAgICAgICAgc3RhdGljX2Fzc2VydF9zYW1lX251bWJlcl9vZl9sYW5lczo6PCRpZCwg JHNvdXJjZT4oKTsKLS0gICAgICAgICAgICAgICAgU2ltZCh1bnNhZmUgeyBzaW1kX2Nhc3Qoc291 cmNlLjApIH0pCi0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLQotLSAgICAgICAgLy8gRklY TUU6IGBJbnRvOjppbnRvYCBpcyBub3QgaW5saW5lLCBidXQgZHVlIHRvIHRoZSBibGFua2V0IGlt cGwgaW4KLS0gICAgICAgIC8vIGBzdGRgLCB3aGljaCBpcyBub3QgbWFya2VkIGBkZWZhdWx0YCwg d2UgY2Fubm90IG92ZXJyaWRlIGl0IGhlcmUKLS0gICAgICAgIC8vIHdpdGggc3BlY2lhbGl6YXRp b24uCi0tCi0tICAgICAgICAvKgotLSAgICAgICAgICAgaW1wbCBJbnRvPCRpZD4gZm9yICRzb3Vy Y2UgewotLSAgICAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgICAgIGZuIGludG8o c2VsZikgLT4gJGlkIHsKLS0gICAgICAgICAgICAgICAgICAgdW5zYWZlIHsgc2ltZF9jYXN0KHNl bGYpIH0KLS0gICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICB9Ci0tICAgICAgICAqLwotLQot LSAgICAgICAgdGVzdF9pZiEgewotLSAgICAgICAgICAgICR0ZXN0X3R0OgotLSAgICAgICAgICAg IHBhc3RlOjppdGVtISB7Ci0tICAgICAgICAgICAgICAgIHB1YiBtb2QgWzwkaWQgX2Zyb21fICRz b3VyY2U+XSB7Ci0tICAgICAgICAgICAgICAgICAgICB1c2Ugc3VwZXI6Oio7Ci0tICAgICAgICAg ICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCld Ci0tICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIs IHdhc21fYmluZGdlbl90ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgIGZuIGZyb20oKSB7Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISgkaWQ6OmxhbmVzKCksICRzb3VyY2U6 OmxhbmVzKCkpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBzb3VyY2U6ICRzb3VyY2Ug PSBEZWZhdWx0OjpkZWZhdWx0KCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHZlYzog JGlkID0gRGVmYXVsdDo6ZGVmYXVsdCgpOwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIGxl dCBlID0gJGlkOjpmcm9tKHNvdXJjZSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0 X2VxIShlLCB2ZWMpOwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBlOiAkaWQgPSBz b3VyY2UuaW50bygpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoZSwgdmVj KTsKLS0gICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAg ICAgIH0KLS0gICAgICAgIH0KLS0gICAgfTsKLS19Ci0tCi0tbWFjcm9fcnVsZXMhIGltcGxfZnJv bV92ZWN0b3JzIHsKLS0gICAgKFskZWxlbV90eTppZGVudDsgJGVsZW1fY291bnQ6ZXhwcl06ICRp ZDppZGVudCB8ICR0ZXN0X3R0OnR0Ci0tICAgICB8ICQoJHNvdXJjZTppZGVudCksKikgPT4gewot LSAgICAgICAgJCgKLS0gICAgICAgICAgICBpbXBsX2Zyb21fdmVjdG9yISgKLS0gICAgICAgICAg ICAgICAgWyRlbGVtX3R5OyAkZWxlbV9jb3VudF06ICRpZCB8ICR0ZXN0X3R0IHwgJHNvdXJjZQot LSAgICAgICAgICAgICk7Ci0tICAgICAgICApKgotLSAgICB9Ci0tfQotZGlmZiAtTnJidSBhL3Ro aXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9mcm9tLnJzIGIvdGhpcmRfcGFydHkv cnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2Zyb20ucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3Qv cGFja2VkX3NpbWQvc3JjL2FwaS9mcm9tLnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAw ICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvZnJvbS5y cwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsNyArMCwwIEBACi0t Ly8hIEltcGxlbWVudGF0aW9ucyBvZiB0aGUgYEZyb21gIGFuZCBgSW50b2AgdHJhaXRzCi0tCi0t I1ttYWNyb191c2VdCi0tbW9kIGZyb21fYXJyYXk7Ci0tCi0tI1ttYWNyb191c2VdCi0tbW9kIGZy b21fdmVjdG9yOwotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3Jj L2FwaS9oYXNoLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2hhc2gu cnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9oYXNoLnJzCTIw MjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0 L3BhY2tlZF9zaW1kL3NyYy9hcGkvaGFzaC5ycwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAw MCArMDMwMAotQEAgLTEsNDkgKzAsMCBAQAotLS8vISBJbXBsZW1lbnRzIGBIYXNoYCBmb3IgdmVj dG9yIHR5cGVzLgotLQotLW1hY3JvX3J1bGVzISBpbXBsX2hhc2ggewotLSAgICAoWyRlbGVtX3R5 OmlkZW50OyAkZWxlbV9jb3VudDpleHByXTogJGlkOmlkZW50IHwgJHRlc3RfdHQ6dHQpID0+IHsK LS0gICAgICAgIGltcGwgY3JhdGU6Omhhc2g6Okhhc2ggZm9yICRpZCB7Ci0tICAgICAgICAgICAg I1tpbmxpbmVdCi0tICAgICAgICAgICAgZm4gaGFzaDxIOiBjcmF0ZTo6aGFzaDo6SGFzaGVyPigm c2VsZiwgc3RhdGU6ICZtdXQgSCkgewotLSAgICAgICAgICAgICAgICB1bnNhZmUgewotLSAgICAg ICAgICAgICAgICAgICAgdW5pb24gQSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgZGF0YTog WyRlbGVtX3R5OyAkaWQ6OmxhbmVzKCldLAotLSAgICAgICAgICAgICAgICAgICAgICAgIHZlYzog JGlkLAotLSAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgQSB7IHZl YzogKnNlbGYgfS5kYXRhLmhhc2goc3RhdGUpCi0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAg ICAgICB9Ci0tICAgICAgICB9Ci0tCi0tICAgICAgICB0ZXN0X2lmISB7Ci0tICAgICAgICAgICAg JHRlc3RfdHQ6Ci0tICAgICAgICAgICAgcGFzdGU6Oml0ZW0hIHsKLS0gICAgICAgICAgICAgICAg cHViIG1vZCBbPCRpZCBfaGFzaD5dIHsKLS0gICAgICAgICAgICAgICAgICAgIHVzZSBzdXBlcjo6 KjsKLS0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndh c20zMiIpLCB0ZXN0KV0gI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2Jp bmRnZW5fdGVzdCldCi0tICAgICAgICAgICAgICAgICAgICBmbiBoYXNoKCkgewotLSAgICAgICAg ICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6aGFzaDo6e0hhc2gsIEhhc2hlcn07Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgI1thbGxvdyhkZXByZWNhdGVkKV0KLS0gICAgICAgICAgICAgICAg ICAgICAgICB1c2UgY3JhdGU6Omhhc2g6OntTaXBIYXNoZXIxM307Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgdHlwZSBBID0gWyRlbGVtX3R5OyAkaWQ6OmxhbmVzKCldOwotLSAgICAgICAgICAg ICAgICAgICAgICAgIGxldCBhOiBBID0gWzQyIGFzICRlbGVtX3R5OyAkaWQ6OmxhbmVzKCldOwot LSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoCi0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGNyYXRlOjptZW06OnNpemVfb2Y6OjxBPigpLAotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICBjcmF0ZTo6bWVtOjpzaXplX29mOjo8JGlkPigpCi0tICAgICAgICAgICAgICAg ICAgICAgICAgKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAjW2FsbG93KGRlcHJlY2F0ZWQp XQotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgYV9oYXNoID0gU2lwSGFzaGVyMTM6 Om5ldygpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgdl9oYXNoID0gYV9oYXNo LmNsb25lKCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYS5oYXNoKCZtdXQgYV9oYXNoKTsK LS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAvLyBJbnRlZ2VyIHdpdGhpbiBtYW50aXNzYV4x IHJhbmdlLgotLSAgICAgICAgICAgICAgICAgICAgICAgICNbYWxsb3coY2xpcHB5OjpmbG9hdF9j bXApXQotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2ID0gJGlkOjpzcGxhdCg0MiBhcyAk ZWxlbV90eSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgdi5oYXNoKCZtdXQgdl9oYXNoKTsK LS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGFfaGFzaC5maW5pc2goKSwgdl9o YXNoLmZpbmlzaCgpKTsKLS0gICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAg fQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgfTsKLS19Ci1kaWZmIC1OcmJ1IGEv dGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2ludG9fYml0cy9hcmNoX3NwZWNp ZmljLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2ludG9fYml0cy9h cmNoX3NwZWNpZmljLnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9h cGkvaW50b19iaXRzL2FyY2hfc3BlY2lmaWMucnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAw MDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9pbnRv X2JpdHMvYXJjaF9zcGVjaWZpYy5ycwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMw MAotQEAgLTEsMzQ1ICswLDAgQEAKLS0vLyEgYEZyb21CaXRzYCBhbmQgYEludG9CaXRzYCBiZXR3 ZWVuIHBvcnRhYmxlIHZlY3RvciB0eXBlcyBhbmQgdGhlCi0tLy8hIGFyY2hpdGVjdHVyZS1zcGVj aWZpYyB2ZWN0b3IgdHlwZXMuCi0tI1tydXN0Zm10Ojpza2lwXQotLQotLS8vIEZJWE1FOiBNSVBT IEZyb21CaXRzL0ludG9CaXRzCi0tCi0tI1thbGxvdyh1bnVzZWQpXQotLXVzZSBjcmF0ZTo6KjsK LS0KLS0vLy8gVGhpcyBtYWNybyBpbXBsZW1lbnRzIEZyb21CaXRzIGZvciB0aGUgcG9ydGFibGUg YW5kIHRoZSBhcmNoaXRlY3R1cmUKLS0vLy8gc3BlY2lmaWMgdmVjdG9yIHR5cGVzLgotLS8vLwot LS8vLyBUaGUgImxlYWYiIGNhc2UgaXMgYXQgdGhlIGJvdHRvbSwgYW5kIHRoZSBtb3N0IGdlbmVy aWMgY2FzZSBpcyBhdCB0aGUgdG9wLgotLS8vLyBUaGUgZ2VuZXJpYyBjYXNlIGlzIHNwbGl0IGlu dG8gc21hbGxlciBjYXNlcyByZWN1cnNpdmVseS4KLS1tYWNyb19ydWxlcyEgaW1wbF9hcmNoIHsK LS0gICAgKFskYXJjaF9oZWFkX2k6aWRlbnRbJGFyY2hfaGVhZF90dDp0dF06ICQoJGFyY2hfaGVh ZF90eTppZGVudCksKl0sCi0tICAgICAkKFskYXJjaF90YWlsX2k6aWRlbnRbJGFyY2hfdGFpbF90 dDp0dF06ICQoJGFyY2hfdGFpbF90eTppZGVudCksKl0pLCogfAotLSAgICAgZnJvbTogJCgkZnJv bV90eTppZGVudCksKiB8IGludG86ICQoJGludG9fdHk6aWRlbnQpLCogfAotLSAgICAgdGVzdDog JHRlc3RfdHQ6dHQpID0+IHsKLS0gICAgICAgIGltcGxfYXJjaCEoCi0tICAgICAgICAgICAgWyRh cmNoX2hlYWRfaVskYXJjaF9oZWFkX3R0XTogJCgkYXJjaF9oZWFkX3R5KSwqXSB8Ci0tICAgICAg ICAgICAgZnJvbTogJCgkZnJvbV90eSksKiB8Ci0tICAgICAgICAgICAgaW50bzogJCgkaW50b190 eSksKiB8Ci0tICAgICAgICAgICAgdGVzdDogJHRlc3RfdHQKLS0gICAgICAgICk7Ci0tICAgICAg ICBpbXBsX2FyY2ghKAotLSAgICAgICAgICAgICQoWyRhcmNoX3RhaWxfaVskYXJjaF90YWlsX3R0 XTogJCgkYXJjaF90YWlsX3R5KSwqXSksKiB8Ci0tICAgICAgICAgICAgZnJvbTogJCgkZnJvbV90 eSksKiB8Ci0tICAgICAgICAgICAgaW50bzogJCgkaW50b190eSksKiB8Ci0tICAgICAgICAgICAg dGVzdDogJHRlc3RfdHQKLS0gICAgICAgICk7Ci0tICAgIH07Ci0tICAgIChbJGFyY2g6aWRlbnRb JGFyY2hfdHQ6dHRdOiAkKCRhcmNoX3R5OmlkZW50KSwqXSB8Ci0tICAgICBmcm9tOiAkKCRmcm9t X3R5OmlkZW50KSwqIHwgaW50bzogJCgkaW50b190eTppZGVudCksKiB8Ci0tICAgICB0ZXN0OiAk dGVzdF90dDp0dCkgPT4gewotLSAgICAgICAgLy8gbm90ZTogaWYgdGFyZ2V0IGlzICJhcm0iLCAi K3Y3LCtuZW9uIiBtdXN0IGJlIGVuYWJsZWQKLS0gICAgICAgIC8vIGFuZCB0aGUgc3RkIGxpYnJh cnkgbXVzdCBiZSByZWNvbXBpbGVkIHdpdGggdGhlbQotLSAgICAgICAgI1tjZmcoYW55KAotLSAg ICAgICAgICAgIG5vdCh0YXJnZXRfYXJjaCA9ICJhcm0iKSwKLS0gICAgICAgICAgICBhbGwodGFy Z2V0X2ZlYXR1cmUgPSAidjciLCB0YXJnZXRfZmVhdHVyZSA9ICJuZW9uIiwKLS0gICAgICAgICAg ICAgICAgYW55KGZlYXR1cmUgPSAiY29yZV9hcmNoIiwgbGliY29yZV9uZW9uKSkpCi0tICAgICAg ICApXQotLSAgICAgICAgLy8gbm90ZTogaWYgdGFyZ2V0IGlzICJwb3dlcnBjIiwgImFsdGl2ZWMi IG11c3QgYmUgZW5hYmxlZAotLSAgICAgICAgLy8gYW5kIHRoZSBzdGQgbGlicmFyeSBtdXN0IGJl IHJlY29tcGlsZWQgd2l0aCBpdAotLSAgICAgICAgI1tjZmcoYW55KAotLSAgICAgICAgICAgIG5v dCh0YXJnZXRfYXJjaCA9ICJwb3dlcnBjIiksCi0tICAgICAgICAgICAgYWxsKHRhcmdldF9mZWF0 dXJlID0gImFsdGl2ZWMiLCBmZWF0dXJlID0gImNvcmVfYXJjaCIpLAotLSAgICAgICAgKSldCi0t ICAgICAgICAjW2NmZyh0YXJnZXRfYXJjaCA9ICRhcmNoX3R0KV0KLS0gICAgICAgIHVzZSBjcmF0 ZTo6YXJjaDo6JGFyY2g6OnsKLS0gICAgICAgICAgICAkKCRhcmNoX3R5KSwqCi0tICAgICAgICB9 OwotLQotLSAgICAgICAgI1tjZmcoYW55KAotLSAgICAgICAgICAgIG5vdCh0YXJnZXRfYXJjaCA9 ICJhcm0iKSwKLS0gICAgICAgICAgICBhbGwodGFyZ2V0X2ZlYXR1cmUgPSAidjciLCB0YXJnZXRf ZmVhdHVyZSA9ICJuZW9uIiwKLS0gICAgICAgICAgICAgICAgYW55KGZlYXR1cmUgPSAiY29yZV9h cmNoIiwgbGliY29yZV9uZW9uKSkpCi0tICAgICAgICApXQotLSAgICAgICAgI1tjZmcoYW55KAot LSAgICAgICAgICAgIG5vdCh0YXJnZXRfYXJjaCA9ICJwb3dlcnBjIiksCi0tICAgICAgICAgICAg YWxsKHRhcmdldF9mZWF0dXJlID0gImFsdGl2ZWMiLCBmZWF0dXJlID0gImNvcmVfYXJjaCIpLAot LSAgICAgICAgKSldCi0tICAgICAgICAjW2NmZyh0YXJnZXRfYXJjaCA9ICRhcmNoX3R0KV0KLS0g ICAgICAgIGltcGxfYXJjaCEoJCgkYXJjaF90eSksKiB8ICQoJGZyb21fdHkpLCogfCAkKCRpbnRv X3R5KSwqIHwKLS0gICAgICAgICAgICAgICAgICAgdGVzdDogJHRlc3RfdHQpOwotLSAgICB9Owot LSAgICAoJGFyY2hfaGVhZDppZGVudCwgJCgkYXJjaF90YWlsOmlkZW50KSwqIHwgJCgkZnJvbV90 eTppZGVudCksKgotLSAgICAgfCAkKCRpbnRvX3R5OmlkZW50KSwqIHwgdGVzdDogJHRlc3RfdHQ6 dHQpID0+IHsKLS0gICAgICAgIGltcGxfYXJjaCEoJGFyY2hfaGVhZCB8ICQoJGZyb21fdHkpLCog fCAkKCRpbnRvX3R5KSwqIHwKLS0gICAgICAgICAgICAgICAgICAgdGVzdDogJHRlc3RfdHQpOwot LSAgICAgICAgaW1wbF9hcmNoISgkKCRhcmNoX3RhaWwpLCogfCAkKCRmcm9tX3R5KSwqIHwgJCgk aW50b190eSksKiB8Ci0tICAgICAgICAgICAgICAgICAgIHRlc3Q6ICR0ZXN0X3R0KTsKLS0gICAg fTsKLS0gICAgKCRhcmNoX2hlYWQ6aWRlbnQgfCAkKCRmcm9tX3R5OmlkZW50KSwqIHwgJCgkaW50 b190eTppZGVudCksKiB8Ci0tICAgICB0ZXN0OiAkdGVzdF90dDp0dCkgPT4gewotLSAgICAgICAg aW1wbF9mcm9tX2JpdHMhKCRhcmNoX2hlYWRbJHRlc3RfdHRdOiAkKCRmcm9tX3R5KSwqKTsKLS0g ICAgICAgIGltcGxfaW50b19iaXRzISgkYXJjaF9oZWFkWyR0ZXN0X3R0XTogJCgkaW50b190eSks Kik7Ci0tICAgIH07Ci0tfQotLQotLS8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0tLy8gSW1wbGVt ZW50YXRpb25zIGZvciB0aGUgNjQtYml0IHdpZGUgdmVjdG9yIHR5cGVzOgotLQotLS8vIEZJWE1F OiA2NC1iaXQgc2luZ2xlIGVsZW1lbnQgdHlwZXMKLS0vLyBGSVhNRTogYXJtL2FhcmNoIGZsb2F0 MTZ4NF90IG1pc3NpbmcKLS1pbXBsX2FyY2ghKAotLSAgICBbCi0tICAgICAgICBhcm1bImFybSJd OiBpbnQ4eDhfdCwKLS0gICAgICAgIHVpbnQ4eDhfdCwKLS0gICAgICAgIHBvbHk4eDhfdCwKLS0g ICAgICAgIGludDE2eDRfdCwKLS0gICAgICAgIHVpbnQxNng0X3QsCi0tICAgICAgICBwb2x5MTZ4 NF90LAotLSAgICAgICAgaW50MzJ4Ml90LAotLSAgICAgICAgdWludDMyeDJfdCwKLS0gICAgICAg IGZsb2F0MzJ4Ml90LAotLSAgICAgICAgaW50NjR4MV90LAotLSAgICAgICAgdWludDY0eDFfdAot LSAgICBdLAotLSAgICBbCi0tICAgICAgICBhYXJjaDY0WyJhYXJjaDY0Il06IGludDh4OF90LAot LSAgICAgICAgdWludDh4OF90LAotLSAgICAgICAgcG9seTh4OF90LAotLSAgICAgICAgaW50MTZ4 NF90LAotLSAgICAgICAgdWludDE2eDRfdCwKLS0gICAgICAgIHBvbHkxNng0X3QsCi0tICAgICAg ICBpbnQzMngyX3QsCi0tICAgICAgICB1aW50MzJ4Ml90LAotLSAgICAgICAgZmxvYXQzMngyX3Qs Ci0tICAgICAgICBpbnQ2NHgxX3QsCi0tICAgICAgICB1aW50NjR4MV90LAotLSAgICAgICAgZmxv YXQ2NHgxX3QKLS0gICAgXSB8IGZyb206IGk4eDgsCi0tICAgIHU4eDgsCi0tICAgIG04eDgsCi0t ICAgIGkxNng0LAotLSAgICB1MTZ4NCwKLS0gICAgbTE2eDQsCi0tICAgIGkzMngyLAotLSAgICB1 MzJ4MiwKLS0gICAgZjMyeDIsCi0tICAgIG0zMngyIHwgaW50bzogaTh4OCwKLS0gICAgdTh4OCwK LS0gICAgaTE2eDQsCi0tICAgIHUxNng0LAotLSAgICBpMzJ4MiwKLS0gICAgdTMyeDIsCi0tICAg IGYzMngyIHwgdGVzdDogdGVzdF92NjQKLS0pOwotLQotLS8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ci0tLy8gSW1wbGVtZW50YXRpb25zIGZvciB0aGUgMTI4LWJpdCB3aWRlIHZlY3RvciB0eXBlczoK LS0KLS0vLyBGSVhNRTogYXJtL2FhcmNoIGZsb2F0MTZ4OF90IG1pc3NpbmcKLS0vLyBGSVhNRTog cHBjIHZlY3Rvcl9waXhlbCBtaXNzaW5nCi0tLy8gRklYTUU6IHBwYzY0IHZlY3Rvcl9GbG9hdDE2 IG1pc3NpbmcKLS0vLyBGSVhNRTogcHBjNjQgdmVjdG9yX3NpZ25lZF9sb25nX2xvbmcgbWlzc2lu ZwotLS8vIEZJWE1FOiBwcGM2NCB2ZWN0b3JfdW5zaWduZWRfbG9uZ19sb25nIG1pc3NpbmcKLS0v LyBGSVhNRTogcHBjNjQgdmVjdG9yX2Jvb2xfbG9uZ19sb25nIG1pc3NpbmcKLS0vLyBGSVhNRTog cHBjNjQgdmVjdG9yX3NpZ25lZF9fX2ludDEyOCBtaXNzaW5nCi0tLy8gRklYTUU6IHBwYzY0IHZl Y3Rvcl91bnNpZ25lZF9fX2ludDEyOCBtaXNzaW5nCi0taW1wbF9hcmNoISgKLS0gICAgW3g4Nlsi eDg2Il06IF9fbTEyOCwgX19tMTI4aSwgX19tMTI4ZF0sCi0tICAgIFt4ODZfNjRbIng4Nl82NCJd OiBfX20xMjgsIF9fbTEyOGksIF9fbTEyOGRdLAotLSAgICBbCi0tICAgICAgICBhcm1bImFybSJd OiBpbnQ4eDE2X3QsCi0tICAgICAgICB1aW50OHgxNl90LAotLSAgICAgICAgcG9seTh4MTZfdCwK LS0gICAgICAgIGludDE2eDhfdCwKLS0gICAgICAgIHVpbnQxNng4X3QsCi0tICAgICAgICBwb2x5 MTZ4OF90LAotLSAgICAgICAgaW50MzJ4NF90LAotLSAgICAgICAgdWludDMyeDRfdCwKLS0gICAg ICAgIGZsb2F0MzJ4NF90LAotLSAgICAgICAgaW50NjR4Ml90LAotLSAgICAgICAgdWludDY0eDJf dAotLSAgICBdLAotLSAgICBbCi0tICAgICAgICBhYXJjaDY0WyJhYXJjaDY0Il06IGludDh4MTZf dCwKLS0gICAgICAgIHVpbnQ4eDE2X3QsCi0tICAgICAgICBwb2x5OHgxNl90LAotLSAgICAgICAg aW50MTZ4OF90LAotLSAgICAgICAgdWludDE2eDhfdCwKLS0gICAgICAgIHBvbHkxNng4X3QsCi0t ICAgICAgICBpbnQzMng0X3QsCi0tICAgICAgICB1aW50MzJ4NF90LAotLSAgICAgICAgZmxvYXQz Mng0X3QsCi0tICAgICAgICBpbnQ2NHgyX3QsCi0tICAgICAgICB1aW50NjR4Ml90LAotLSAgICAg ICAgZmxvYXQ2NHgyX3QKLS0gICAgXSwKLS0gICAgWwotLSAgICAgICAgcG93ZXJwY1sicG93ZXJw YyJdOiB2ZWN0b3Jfc2lnbmVkX2NoYXIsCi0tICAgICAgICB2ZWN0b3JfdW5zaWduZWRfY2hhciwK LS0gICAgICAgIHZlY3Rvcl9zaWduZWRfc2hvcnQsCi0tICAgICAgICB2ZWN0b3JfdW5zaWduZWRf c2hvcnQsCi0tICAgICAgICB2ZWN0b3Jfc2lnbmVkX2ludCwKLS0gICAgICAgIHZlY3Rvcl91bnNp Z25lZF9pbnQsCi0tICAgICAgICB2ZWN0b3JfZmxvYXQKLS0gICAgXSwKLS0gICAgWwotLSAgICAg ICAgcG93ZXJwYzY0WyJwb3dlcnBjNjQiXTogdmVjdG9yX3NpZ25lZF9jaGFyLAotLSAgICAgICAg dmVjdG9yX3Vuc2lnbmVkX2NoYXIsCi0tICAgICAgICB2ZWN0b3Jfc2lnbmVkX3Nob3J0LAotLSAg ICAgICAgdmVjdG9yX3Vuc2lnbmVkX3Nob3J0LAotLSAgICAgICAgdmVjdG9yX3NpZ25lZF9pbnQs Ci0tICAgICAgICB2ZWN0b3JfdW5zaWduZWRfaW50LAotLSAgICAgICAgdmVjdG9yX2Zsb2F0LAot LSAgICAgICAgdmVjdG9yX3NpZ25lZF9sb25nLAotLSAgICAgICAgdmVjdG9yX3Vuc2lnbmVkX2xv bmcsCi0tICAgICAgICB2ZWN0b3JfZG91YmxlCi0tICAgIF0gfCBmcm9tOiBpOHgxNiwKLS0gICAg dTh4MTYsCi0tICAgIG04eDE2LAotLSAgICBpMTZ4OCwKLS0gICAgdTE2eDgsCi0tICAgIG0xNng4 LAotLSAgICBpMzJ4NCwKLS0gICAgdTMyeDQsCi0tICAgIGYzMng0LAotLSAgICBtMzJ4NCwKLS0g ICAgaTY0eDIsCi0tICAgIHU2NHgyLAotLSAgICBmNjR4MiwKLS0gICAgbTY0eDIsCi0tICAgIGkx Mjh4MSwKLS0gICAgdTEyOHgxLAotLSAgICBtMTI4eDEgfCBpbnRvOiBpOHgxNiwKLS0gICAgdTh4 MTYsCi0tICAgIGkxNng4LAotLSAgICB1MTZ4OCwKLS0gICAgaTMyeDQsCi0tICAgIHUzMng0LAot LSAgICBmMzJ4NCwKLS0gICAgaTY0eDIsCi0tICAgIHU2NHgyLAotLSAgICBmNjR4MiwKLS0gICAg aTEyOHgxLAotLSAgICB1MTI4eDEgfCB0ZXN0OiB0ZXN0X3YxMjgKLS0pOwotLQotLWltcGxfYXJj aCEoCi0tICAgIFtwb3dlcnBjWyJwb3dlcnBjIl06IHZlY3Rvcl9ib29sX2NoYXJdLAotLSAgICBb cG93ZXJwYzY0WyJwb3dlcnBjNjQiXTogdmVjdG9yX2Jvb2xfY2hhcl0gfCBmcm9tOiBtOHgxNiwK LS0gICAgbTE2eDgsCi0tICAgIG0zMng0LAotLSAgICBtNjR4MiwKLS0gICAgbTEyOHgxIHwgaW50 bzogaTh4MTYsCi0tICAgIHU4eDE2LAotLSAgICBpMTZ4OCwKLS0gICAgdTE2eDgsCi0tICAgIGkz Mng0LAotLSAgICB1MzJ4NCwKLS0gICAgZjMyeDQsCi0tICAgIGk2NHgyLAotLSAgICB1NjR4MiwK LS0gICAgZjY0eDIsCi0tICAgIGkxMjh4MSwKLS0gICAgdTEyOHgxLAotLSAgICAvLyBNYXNrczoK LS0gICAgbTh4MTYgfCB0ZXN0OiB0ZXN0X3YxMjgKLS0pOwotLQotLWltcGxfYXJjaCEoCi0tICAg IFtwb3dlcnBjWyJwb3dlcnBjIl06IHZlY3Rvcl9ib29sX3Nob3J0XSwKLS0gICAgW3Bvd2VycGM2 NFsicG93ZXJwYzY0Il06IHZlY3Rvcl9ib29sX3Nob3J0XSB8IGZyb206IG0xNng4LAotLSAgICBt MzJ4NCwKLS0gICAgbTY0eDIsCi0tICAgIG0xMjh4MSB8IGludG86IGk4eDE2LAotLSAgICB1OHgx NiwKLS0gICAgaTE2eDgsCi0tICAgIHUxNng4LAotLSAgICBpMzJ4NCwKLS0gICAgdTMyeDQsCi0t ICAgIGYzMng0LAotLSAgICBpNjR4MiwKLS0gICAgdTY0eDIsCi0tICAgIGY2NHgyLAotLSAgICBp MTI4eDEsCi0tICAgIHUxMjh4MSwKLS0gICAgLy8gTWFza3M6Ci0tICAgIG04eDE2LAotLSAgICBt MTZ4OCB8IHRlc3Q6IHRlc3RfdjEyOAotLSk7Ci0tCi0taW1wbF9hcmNoISgKLS0gICAgW3Bvd2Vy cGNbInBvd2VycGMiXTogdmVjdG9yX2Jvb2xfaW50XSwKLS0gICAgW3Bvd2VycGM2NFsicG93ZXJw YzY0Il06IHZlY3Rvcl9ib29sX2ludF0gfCBmcm9tOiBtMzJ4NCwKLS0gICAgbTY0eDIsCi0tICAg IG0xMjh4MSB8IGludG86IGk4eDE2LAotLSAgICB1OHgxNiwKLS0gICAgaTE2eDgsCi0tICAgIHUx Nng4LAotLSAgICBpMzJ4NCwKLS0gICAgdTMyeDQsCi0tICAgIGYzMng0LAotLSAgICBpNjR4MiwK LS0gICAgdTY0eDIsCi0tICAgIGY2NHgyLAotLSAgICBpMTI4eDEsCi0tICAgIHUxMjh4MSwKLS0g ICAgLy8gTWFza3M6Ci0tICAgIG04eDE2LAotLSAgICBtMTZ4OCwKLS0gICAgbTMyeDQgfCB0ZXN0 OiB0ZXN0X3YxMjgKLS0pOwotLQotLWltcGxfYXJjaCEoCi0tICAgIFtwb3dlcnBjNjRbInBvd2Vy cGM2NCJdOiB2ZWN0b3JfYm9vbF9sb25nXSB8IGZyb206IG02NHgyLAotLSAgICBtMTI4eDEgfCBp bnRvOiBpOHgxNiwKLS0gICAgdTh4MTYsCi0tICAgIGkxNng4LAotLSAgICB1MTZ4OCwKLS0gICAg aTMyeDQsCi0tICAgIHUzMng0LAotLSAgICBmMzJ4NCwKLS0gICAgaTY0eDIsCi0tICAgIHU2NHgy LAotLSAgICBmNjR4MiwKLS0gICAgaTEyOHgxLAotLSAgICB1MTI4eDEsCi0tICAgIC8vIE1hc2tz OgotLSAgICBtOHgxNiwKLS0gICAgbTE2eDgsCi0tICAgIG0zMng0LAotLSAgICBtNjR4MiB8IHRl c3Q6IHRlc3RfdjEyOAotLSk7Ci0tCi0tLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLS0vLyBJbXBs ZW1lbnRhdGlvbnMgZm9yIHRoZSAyNTYtYml0IHdpZGUgdmVjdG9yIHR5cGVzCi0tCi0taW1wbF9h cmNoISgKLS0gICAgW3g4NlsieDg2Il06IF9fbTI1NiwgX19tMjU2aSwgX19tMjU2ZF0sCi0tICAg IFt4ODZfNjRbIng4Nl82NCJdOiBfX20yNTYsIF9fbTI1NmksIF9fbTI1NmRdIHwgZnJvbTogaTh4 MzIsCi0tICAgIHU4eDMyLAotLSAgICBtOHgzMiwKLS0gICAgaTE2eDE2LAotLSAgICB1MTZ4MTYs Ci0tICAgIG0xNngxNiwKLS0gICAgaTMyeDgsCi0tICAgIHUzMng4LAotLSAgICBmMzJ4OCwKLS0g ICAgbTMyeDgsCi0tICAgIGk2NHg0LAotLSAgICB1NjR4NCwKLS0gICAgZjY0eDQsCi0tICAgIG02 NHg0LAotLSAgICBpMTI4eDIsCi0tICAgIHUxMjh4MiwKLS0gICAgbTEyOHgyIHwgaW50bzogaTh4 MzIsCi0tICAgIHU4eDMyLAotLSAgICBpMTZ4MTYsCi0tICAgIHUxNngxNiwKLS0gICAgaTMyeDgs Ci0tICAgIHUzMng4LAotLSAgICBmMzJ4OCwKLS0gICAgaTY0eDQsCi0tICAgIHU2NHg0LAotLSAg ICBmNjR4NCwKLS0gICAgaTEyOHgyLAotLSAgICB1MTI4eDIgfCB0ZXN0OiB0ZXN0X3YyNTYKLS0p OwotLQotLS8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0tLy8gRklYTUU6IEltcGxlbWVudGF0aW9u cyBmb3IgdGhlIDUxMi1iaXQgd2lkZSB2ZWN0b3IgdHlwZXMKLWRpZmYgLU5yYnUgYS90aGlyZF9w YXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvaW50b19iaXRzL21hY3Jvcy5ycyBiL3RoaXJk X3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9pbnRvX2JpdHMvbWFjcm9zLnJzCi0tLS0g YS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvaW50b19iaXRzL21hY3Jvcy5y cwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkv cnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2ludG9fYml0cy9tYWNyb3MucnMJMTk3MC0wMS0wMSAw MzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDc0ICswLDAgQEAKLS0vLyEgTWFjcm9zIGlt cGxlbWVudGluZyBgRnJvbUJpdHNgCi0tCi0tbWFjcm9fcnVsZXMhIGltcGxfZnJvbV9iaXRzXyB7 Ci0tICAgICgkaWQ6aWRlbnRbJHRlc3RfdHQ6dHRdOiAkZnJvbV90eTppZGVudCkgPT4gewotLSAg ICAgICAgaW1wbCBjcmF0ZTo6YXBpOjppbnRvX2JpdHM6OkZyb21CaXRzPCRmcm9tX3R5PiBmb3Ig JGlkIHsKLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBmbiBmcm9tX2JpdHMo eDogJGZyb21fdHkpIC0+IFNlbGYgewotLSAgICAgICAgICAgICAgICB1bnNhZmUgeyBjcmF0ZTo6 bWVtOjp0cmFuc211dGUoeCkgfQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0KLS0gICAg ICAgIHRlc3RfaWYhIHsKLS0gICAgICAgICAgICAkdGVzdF90dDoKLS0gICAgICAgICAgICBwYXN0 ZTo6aXRlbSEgewotLSAgICAgICAgICAgICAgICBwdWIgbW9kIFs8JGlkIF9mcm9tX2JpdHNfICRm cm9tX3R5Pl0gewotLSAgICAgICAgICAgICAgICAgICAgdXNlIHN1cGVyOjoqOwotLSAgICAgICAg ICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3Qp XQotLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIi LCB3YXNtX2JpbmRnZW5fdGVzdCldCi0tICAgICAgICAgICAgICAgICAgICBmbiB0ZXN0KCkgewot LSAgICAgICAgICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6ewotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICBwdHI6OntyZWFkX3VuYWxpZ25lZH0sCi0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgIG1lbTo6e3NpemVfb2YsIHplcm9lZH0KLS0gICAgICAgICAgICAgICAgICAgICAgICB9 OwotLSAgICAgICAgICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6SW50b0JpdHM7Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShzaXplX29mOjo8JGlkPigpLAotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV9vZjo6PCRmcm9tX3R5PigpKTsKLS0gICAg ICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIGlzIHNhZmUgYmVjYXVzZSB3ZSBuZXZlciBjcmVh dGUgYSByZWZlcmVuY2UgdG8KLS0gICAgICAgICAgICAgICAgICAgICAgICAvLyB1bmluaXRpYWxp emVkIG1lbW9yeToKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgYTogJGZyb21fdHkgPSB1 bnNhZmUgeyB6ZXJvZWQoKSB9OwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBiXzA6 ICRpZCA9IGNyYXRlOjpGcm9tQml0czo6ZnJvbV9iaXRzKGEpOwotLSAgICAgICAgICAgICAgICAg ICAgICAgIGxldCBiXzE6ICRpZCA9IGEuaW50b19iaXRzKCk7Ci0tCi0tICAgICAgICAgICAgICAg ICAgICAgICAgLy8gQ2hlY2sgdGhhdCB0aGVzZSBhcmUgYnl0ZS13aXNlIGVxdWFsLCB0aGF0IGlz LAotLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoYXQgdGhlIGJpdCBwYXR0ZXJucyBhcmUg aWRlbnRpY2FsOgotLSAgICAgICAgICAgICAgICAgICAgICAgIGZvciBpIGluIDAuLnNpemVfb2Y6 OjwkaWQ+KCkgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIGlzIHNhZmUg YmVjYXVzZSB3ZSBvbmx5IHJlYWQgaW5pdGlhbGl6ZWQKLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgLy8gbWVtb3J5IGluIGJvdW5kcy4gQWxzbywgdGFraW5nIGEgcmVmZXJlbmNlIHRvCi0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGBiX2lgIGlzIG9rIGJlY2F1c2UgdGhlIGZp ZWxkcyBhcmUgaW5pdGlhbGl6ZWQuCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2Fm ZSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgYl8wX3Y6IHU4ID0gcmVh ZF91bmFsaWduZWQoCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCZiXzAg YXMgKmNvbnN0ICRpZCBhcyAqY29uc3QgdTgpCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIC53cmFwcGluZ19hZGQoaSkKLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgYl8xX3Y6IHU4 ID0gcmVhZF91bmFsaWduZWQoCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KCZiXzEgYXMgKmNvbnN0ICRpZCBhcyAqY29uc3QgdTgpCi0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIC53cmFwcGluZ19hZGQoaSkKLS0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRf ZXEhKGJfMF92LCBiXzFfdik7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAg ICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAg ICAgICAgIH0KLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgIH07Ci0tfQotLQotLW1h Y3JvX3J1bGVzISBpbXBsX2Zyb21fYml0cyB7Ci0tICAgICgkaWQ6aWRlbnRbJHRlc3RfdHQ6dHRd OiAkKCRmcm9tX3R5OmlkZW50KSwqKSA9PiB7Ci0tICAgICAgICAkKAotLSAgICAgICAgICAgIGlt cGxfZnJvbV9iaXRzXyEoJGlkWyR0ZXN0X3R0XTogJGZyb21fdHkpOwotLSAgICAgICAgKSoKLS0g ICAgfQotLX0KLS0KLS0jW2FsbG93KHVudXNlZCldCi0tbWFjcm9fcnVsZXMhIGltcGxfaW50b19i aXRzIHsKLS0gICAgKCRpZDppZGVudFskdGVzdF90dDp0dF06ICQoJGZyb21fdHk6aWRlbnQpLCop ID0+IHsKLS0gICAgICAgICQoCi0tICAgICAgICAgICAgaW1wbF9mcm9tX2JpdHNfISgkZnJvbV90 eVskdGVzdF90dF06ICRpZCk7Ci0tICAgICAgICApKgotLSAgICB9Ci0tfQotZGlmZiAtTnJidSBh L3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9pbnRvX2JpdHMvdjEyOC5ycyBi L3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9pbnRvX2JpdHMvdjEyOC5ycwot LS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2ludG9fYml0cy92MTI4 LnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0 eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvaW50b19iaXRzL3YxMjgucnMJMTk3MC0wMS0wMSAw MzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDIzMiArMCwwIEBACi0tLy8hIGBGcm9tQml0 c2AgYW5kIGBJbnRvQml0c2AgaW1wbGVtZW50YXRpb25zIGZvciBwb3J0YWJsZSAxMjgtYml0IHdp ZGUgdmVjdG9ycwotLSNbcnVzdGZtdDo6c2tpcF0KLS0KLS0jW2FsbG93KHVudXNlZCldICAvLyB3 YXNtX2JpbmRnZW5fdGVzdAotLXVzZSBjcmF0ZTo6KjsKLS0KLS1pbXBsX2Zyb21fYml0cyEoCi0t ICAgIGk4eDE2W3Rlc3RfdjEyOF06IHU4eDE2LAotLSAgICBtOHgxNiwKLS0gICAgaTE2eDgsCi0t ICAgIHUxNng4LAotLSAgICBtMTZ4OCwKLS0gICAgaTMyeDQsCi0tICAgIHUzMng0LAotLSAgICBm MzJ4NCwKLS0gICAgbTMyeDQsCi0tICAgIGk2NHgyLAotLSAgICB1NjR4MiwKLS0gICAgZjY0eDIs Ci0tICAgIG02NHgyLAotLSAgICBpMTI4eDEsCi0tICAgIHUxMjh4MSwKLS0gICAgbTEyOHgxCi0t KTsKLS1pbXBsX2Zyb21fYml0cyEoCi0tICAgIHU4eDE2W3Rlc3RfdjEyOF06IGk4eDE2LAotLSAg ICBtOHgxNiwKLS0gICAgaTE2eDgsCi0tICAgIHUxNng4LAotLSAgICBtMTZ4OCwKLS0gICAgaTMy eDQsCi0tICAgIHUzMng0LAotLSAgICBmMzJ4NCwKLS0gICAgbTMyeDQsCi0tICAgIGk2NHgyLAot LSAgICB1NjR4MiwKLS0gICAgZjY0eDIsCi0tICAgIG02NHgyLAotLSAgICBpMTI4eDEsCi0tICAg IHUxMjh4MSwKLS0gICAgbTEyOHgxCi0tKTsKLS1pbXBsX2Zyb21fYml0cyEobTh4MTZbdGVzdF92 MTI4XTogbTE2eDgsIG0zMng0LCBtNjR4MiwgbTEyOHgxKTsKLS0KLS1pbXBsX2Zyb21fYml0cyEo Ci0tICAgIGkxNng4W3Rlc3RfdjEyOF06IGk4eDE2LAotLSAgICB1OHgxNiwKLS0gICAgbTh4MTYs Ci0tICAgIHUxNng4LAotLSAgICBtMTZ4OCwKLS0gICAgaTMyeDQsCi0tICAgIHUzMng0LAotLSAg ICBmMzJ4NCwKLS0gICAgbTMyeDQsCi0tICAgIGk2NHgyLAotLSAgICB1NjR4MiwKLS0gICAgZjY0 eDIsCi0tICAgIG02NHgyLAotLSAgICBpMTI4eDEsCi0tICAgIHUxMjh4MSwKLS0gICAgbTEyOHgx Ci0tKTsKLS1pbXBsX2Zyb21fYml0cyEoCi0tICAgIHUxNng4W3Rlc3RfdjEyOF06IGk4eDE2LAot LSAgICB1OHgxNiwKLS0gICAgbTh4MTYsCi0tICAgIGkxNng4LAotLSAgICBtMTZ4OCwKLS0gICAg aTMyeDQsCi0tICAgIHUzMng0LAotLSAgICBmMzJ4NCwKLS0gICAgbTMyeDQsCi0tICAgIGk2NHgy LAotLSAgICB1NjR4MiwKLS0gICAgZjY0eDIsCi0tICAgIG02NHgyLAotLSAgICBpMTI4eDEsCi0t ICAgIHUxMjh4MSwKLS0gICAgbTEyOHgxCi0tKTsKLS1pbXBsX2Zyb21fYml0cyEobTE2eDhbdGVz dF92MTI4XTogbTMyeDQsIG02NHgyLCBtMTI4eDEpOwotLQotLWltcGxfZnJvbV9iaXRzISgKLS0g ICAgaTMyeDRbdGVzdF92MTI4XTogaTh4MTYsCi0tICAgIHU4eDE2LAotLSAgICBtOHgxNiwKLS0g ICAgaTE2eDgsCi0tICAgIHUxNng4LAotLSAgICBtMTZ4OCwKLS0gICAgdTMyeDQsCi0tICAgIGYz Mng0LAotLSAgICBtMzJ4NCwKLS0gICAgaTY0eDIsCi0tICAgIHU2NHgyLAotLSAgICBmNjR4MiwK LS0gICAgbTY0eDIsCi0tICAgIGkxMjh4MSwKLS0gICAgdTEyOHgxLAotLSAgICBtMTI4eDEKLS0p OwotLWltcGxfZnJvbV9iaXRzISgKLS0gICAgdTMyeDRbdGVzdF92MTI4XTogaTh4MTYsCi0tICAg IHU4eDE2LAotLSAgICBtOHgxNiwKLS0gICAgaTE2eDgsCi0tICAgIHUxNng4LAotLSAgICBtMTZ4 OCwKLS0gICAgaTMyeDQsCi0tICAgIGYzMng0LAotLSAgICBtMzJ4NCwKLS0gICAgaTY0eDIsCi0t ICAgIHU2NHgyLAotLSAgICBmNjR4MiwKLS0gICAgbTY0eDIsCi0tICAgIGkxMjh4MSwKLS0gICAg dTEyOHgxLAotLSAgICBtMTI4eDEKLS0pOwotLWltcGxfZnJvbV9iaXRzISgKLS0gICAgZjMyeDRb dGVzdF92MTI4XTogaTh4MTYsCi0tICAgIHU4eDE2LAotLSAgICBtOHgxNiwKLS0gICAgaTE2eDgs Ci0tICAgIHUxNng4LAotLSAgICBtMTZ4OCwKLS0gICAgaTMyeDQsCi0tICAgIHUzMng0LAotLSAg ICBtMzJ4NCwKLS0gICAgaTY0eDIsCi0tICAgIHU2NHgyLAotLSAgICBmNjR4MiwKLS0gICAgbTY0 eDIsCi0tICAgIGkxMjh4MSwKLS0gICAgdTEyOHgxLAotLSAgICBtMTI4eDEKLS0pOwotLWltcGxf ZnJvbV9iaXRzIShtMzJ4NFt0ZXN0X3YxMjhdOiBtNjR4MiwgbTEyOHgxKTsKLS0KLS1pbXBsX2Zy b21fYml0cyEoCi0tICAgIGk2NHgyW3Rlc3RfdjEyOF06IGk4eDE2LAotLSAgICB1OHgxNiwKLS0g ICAgbTh4MTYsCi0tICAgIGkxNng4LAotLSAgICB1MTZ4OCwKLS0gICAgbTE2eDgsCi0tICAgIGkz Mng0LAotLSAgICB1MzJ4NCwKLS0gICAgZjMyeDQsCi0tICAgIG0zMng0LAotLSAgICB1NjR4MiwK LS0gICAgZjY0eDIsCi0tICAgIG02NHgyLAotLSAgICBpMTI4eDEsCi0tICAgIHUxMjh4MSwKLS0g ICAgbTEyOHgxCi0tKTsKLS1pbXBsX2Zyb21fYml0cyEoCi0tICAgIHU2NHgyW3Rlc3RfdjEyOF06 IGk4eDE2LAotLSAgICB1OHgxNiwKLS0gICAgbTh4MTYsCi0tICAgIGkxNng4LAotLSAgICB1MTZ4 OCwKLS0gICAgbTE2eDgsCi0tICAgIGkzMng0LAotLSAgICB1MzJ4NCwKLS0gICAgZjMyeDQsCi0t ICAgIG0zMng0LAotLSAgICBpNjR4MiwKLS0gICAgZjY0eDIsCi0tICAgIG02NHgyLAotLSAgICBp MTI4eDEsCi0tICAgIHUxMjh4MSwKLS0gICAgbTEyOHgxCi0tKTsKLS1pbXBsX2Zyb21fYml0cyEo Ci0tICAgIGY2NHgyW3Rlc3RfdjEyOF06IGk4eDE2LAotLSAgICB1OHgxNiwKLS0gICAgbTh4MTYs Ci0tICAgIGkxNng4LAotLSAgICB1MTZ4OCwKLS0gICAgbTE2eDgsCi0tICAgIGkzMng0LAotLSAg ICB1MzJ4NCwKLS0gICAgZjMyeDQsCi0tICAgIG0zMng0LAotLSAgICBpNjR4MiwKLS0gICAgdTY0 eDIsCi0tICAgIG02NHgyLAotLSAgICBpMTI4eDEsCi0tICAgIHUxMjh4MSwKLS0gICAgbTEyOHgx Ci0tKTsKLS1pbXBsX2Zyb21fYml0cyEobTY0eDJbdGVzdF92MTI4XTogbTEyOHgxKTsKLS0KLS1p bXBsX2Zyb21fYml0cyEoCi0tICAgIGkxMjh4MVt0ZXN0X3YxMjhdOiBpOHgxNiwKLS0gICAgdTh4 MTYsCi0tICAgIG04eDE2LAotLSAgICBpMTZ4OCwKLS0gICAgdTE2eDgsCi0tICAgIG0xNng4LAot LSAgICBpMzJ4NCwKLS0gICAgdTMyeDQsCi0tICAgIGYzMng0LAotLSAgICBtMzJ4NCwKLS0gICAg aTY0eDIsCi0tICAgIHU2NHgyLAotLSAgICBmNjR4MiwKLS0gICAgbTY0eDIsCi0tICAgIHUxMjh4 MSwKLS0gICAgbTEyOHgxCi0tKTsKLS1pbXBsX2Zyb21fYml0cyEoCi0tICAgIHUxMjh4MVt0ZXN0 X3YxMjhdOiBpOHgxNiwKLS0gICAgdTh4MTYsCi0tICAgIG04eDE2LAotLSAgICBpMTZ4OCwKLS0g ICAgdTE2eDgsCi0tICAgIG0xNng4LAotLSAgICBpMzJ4NCwKLS0gICAgdTMyeDQsCi0tICAgIGYz Mng0LAotLSAgICBtMzJ4NCwKLS0gICAgaTY0eDIsCi0tICAgIHU2NHgyLAotLSAgICBmNjR4MiwK LS0gICAgbTY0eDIsCi0tICAgIGkxMjh4MSwKLS0gICAgbTEyOHgxCi0tKTsKLS0vLyBub3RlOiBt MTI4eDEgY2Fubm90IGJlIGNvbnN0cnVjdGVkIGZyb20gYWxsIHRoZSBvdGhlciBtYXNrcyBiaXQg cGF0dGVybnMgaW4KLS0vLyBoZXJlCi1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNr ZWRfc2ltZC9zcmMvYXBpL2ludG9fYml0cy92MTYucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tl ZF9zaW1kL3NyYy9hcGkvaW50b19iaXRzL3YxNi5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9w YWNrZWRfc2ltZC9zcmMvYXBpL2ludG9fYml0cy92MTYucnMJMjAyNS0wNC0yMCAxOToyODoxMy4w MDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2Fw aS9pbnRvX2JpdHMvdjE2LnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1A QCAtMSw5ICswLDAgQEAKLS0vLyEgYEZyb21CaXRzYCBhbmQgYEludG9CaXRzYCBpbXBsZW1lbnRh dGlvbnMgZm9yIHBvcnRhYmxlIDE2LWJpdCB3aWRlIHZlY3RvcnMKLS0jW3J1c3RmbXQ6OnNraXBd Ci0tCi0tI1thbGxvdyh1bnVzZWQpXSAgLy8gd2FzbV9iaW5kZ2VuX3Rlc3QKLS11c2UgY3JhdGU6 Oio7Ci0tCi0taW1wbF9mcm9tX2JpdHMhKGk4eDJbdGVzdF92MTZdOiB1OHgyLCBtOHgyKTsKLS1p bXBsX2Zyb21fYml0cyEodTh4Mlt0ZXN0X3YxNl06IGk4eDIsIG04eDIpOwotLS8vIG5vdGU6IG04 eDIgY2Fubm90IGJlIGNvbnN0cnVjdGVkIGZyb20gYWxsIGk4eDIgb3IgdTh4MiBiaXQgcGF0dGVy bnMKLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvaW50 b19iaXRzL3YyNTYucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvaW50 b19iaXRzL3YyNTYucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2Fw aS9pbnRvX2JpdHMvdjI1Ni5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAot KysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2ludG9fYml0cy92MjU2 LnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSwyMzIgKzAsMCBA QAotLS8vISBgRnJvbUJpdHNgIGFuZCBgSW50b0JpdHNgIGltcGxlbWVudGF0aW9ucyBmb3IgcG9y dGFibGUgMjU2LWJpdCB3aWRlIHZlY3RvcnMKLS0jW3J1c3RmbXQ6OnNraXBdCi0tCi0tI1thbGxv dyh1bnVzZWQpXSAgLy8gd2FzbV9iaW5kZ2VuX3Rlc3QKLS11c2UgY3JhdGU6Oio7Ci0tCi0taW1w bF9mcm9tX2JpdHMhKAotLSAgICBpOHgzMlt0ZXN0X3YyNTZdOiB1OHgzMiwKLS0gICAgbTh4MzIs Ci0tICAgIGkxNngxNiwKLS0gICAgdTE2eDE2LAotLSAgICBtMTZ4MTYsCi0tICAgIGkzMng4LAot LSAgICB1MzJ4OCwKLS0gICAgZjMyeDgsCi0tICAgIG0zMng4LAotLSAgICBpNjR4NCwKLS0gICAg dTY0eDQsCi0tICAgIGY2NHg0LAotLSAgICBtNjR4NCwKLS0gICAgaTEyOHgyLAotLSAgICB1MTI4 eDIsCi0tICAgIG0xMjh4MgotLSk7Ci0taW1wbF9mcm9tX2JpdHMhKAotLSAgICB1OHgzMlt0ZXN0 X3YyNTZdOiBpOHgzMiwKLS0gICAgbTh4MzIsCi0tICAgIGkxNngxNiwKLS0gICAgdTE2eDE2LAot LSAgICBtMTZ4MTYsCi0tICAgIGkzMng4LAotLSAgICB1MzJ4OCwKLS0gICAgZjMyeDgsCi0tICAg IG0zMng4LAotLSAgICBpNjR4NCwKLS0gICAgdTY0eDQsCi0tICAgIGY2NHg0LAotLSAgICBtNjR4 NCwKLS0gICAgaTEyOHgyLAotLSAgICB1MTI4eDIsCi0tICAgIG0xMjh4MgotLSk7Ci0taW1wbF9m cm9tX2JpdHMhKG04eDMyW3Rlc3RfdjI1Nl06IG0xNngxNiwgbTMyeDgsIG02NHg0LCBtMTI4eDIp OwotLQotLWltcGxfZnJvbV9iaXRzISgKLS0gICAgaTE2eDE2W3Rlc3RfdjI1Nl06IGk4eDMyLAot LSAgICB1OHgzMiwKLS0gICAgbTh4MzIsCi0tICAgIHUxNngxNiwKLS0gICAgbTE2eDE2LAotLSAg ICBpMzJ4OCwKLS0gICAgdTMyeDgsCi0tICAgIGYzMng4LAotLSAgICBtMzJ4OCwKLS0gICAgaTY0 eDQsCi0tICAgIHU2NHg0LAotLSAgICBmNjR4NCwKLS0gICAgbTY0eDQsCi0tICAgIGkxMjh4MiwK LS0gICAgdTEyOHgyLAotLSAgICBtMTI4eDIKLS0pOwotLWltcGxfZnJvbV9iaXRzISgKLS0gICAg dTE2eDE2W3Rlc3RfdjI1Nl06IGk4eDMyLAotLSAgICB1OHgzMiwKLS0gICAgbTh4MzIsCi0tICAg IGkxNngxNiwKLS0gICAgbTE2eDE2LAotLSAgICBpMzJ4OCwKLS0gICAgdTMyeDgsCi0tICAgIGYz Mng4LAotLSAgICBtMzJ4OCwKLS0gICAgaTY0eDQsCi0tICAgIHU2NHg0LAotLSAgICBmNjR4NCwK LS0gICAgbTY0eDQsCi0tICAgIGkxMjh4MiwKLS0gICAgdTEyOHgyLAotLSAgICBtMTI4eDIKLS0p OwotLWltcGxfZnJvbV9iaXRzIShtMTZ4MTZbdGVzdF92MjU2XTogbTMyeDgsIG02NHg0LCBtMTI4 eDIpOwotLQotLWltcGxfZnJvbV9iaXRzISgKLS0gICAgaTMyeDhbdGVzdF92MjU2XTogaTh4MzIs Ci0tICAgIHU4eDMyLAotLSAgICBtOHgzMiwKLS0gICAgaTE2eDE2LAotLSAgICB1MTZ4MTYsCi0t ICAgIG0xNngxNiwKLS0gICAgdTMyeDgsCi0tICAgIGYzMng4LAotLSAgICBtMzJ4OCwKLS0gICAg aTY0eDQsCi0tICAgIHU2NHg0LAotLSAgICBmNjR4NCwKLS0gICAgbTY0eDQsCi0tICAgIGkxMjh4 MiwKLS0gICAgdTEyOHgyLAotLSAgICBtMTI4eDIKLS0pOwotLWltcGxfZnJvbV9iaXRzISgKLS0g ICAgdTMyeDhbdGVzdF92MjU2XTogaTh4MzIsCi0tICAgIHU4eDMyLAotLSAgICBtOHgzMiwKLS0g ICAgaTE2eDE2LAotLSAgICB1MTZ4MTYsCi0tICAgIG0xNngxNiwKLS0gICAgaTMyeDgsCi0tICAg IGYzMng4LAotLSAgICBtMzJ4OCwKLS0gICAgaTY0eDQsCi0tICAgIHU2NHg0LAotLSAgICBmNjR4 NCwKLS0gICAgbTY0eDQsCi0tICAgIGkxMjh4MiwKLS0gICAgdTEyOHgyLAotLSAgICBtMTI4eDIK LS0pOwotLWltcGxfZnJvbV9iaXRzISgKLS0gICAgZjMyeDhbdGVzdF92MjU2XTogaTh4MzIsCi0t ICAgIHU4eDMyLAotLSAgICBtOHgzMiwKLS0gICAgaTE2eDE2LAotLSAgICB1MTZ4MTYsCi0tICAg IG0xNngxNiwKLS0gICAgaTMyeDgsCi0tICAgIHUzMng4LAotLSAgICBtMzJ4OCwKLS0gICAgaTY0 eDQsCi0tICAgIHU2NHg0LAotLSAgICBmNjR4NCwKLS0gICAgbTY0eDQsCi0tICAgIGkxMjh4MiwK LS0gICAgdTEyOHgyLAotLSAgICBtMTI4eDIKLS0pOwotLWltcGxfZnJvbV9iaXRzIShtMzJ4OFt0 ZXN0X3YyNTZdOiBtNjR4NCwgbTEyOHgyKTsKLS0KLS1pbXBsX2Zyb21fYml0cyEoCi0tICAgIGk2 NHg0W3Rlc3RfdjI1Nl06IGk4eDMyLAotLSAgICB1OHgzMiwKLS0gICAgbTh4MzIsCi0tICAgIGkx NngxNiwKLS0gICAgdTE2eDE2LAotLSAgICBtMTZ4MTYsCi0tICAgIGkzMng4LAotLSAgICB1MzJ4 OCwKLS0gICAgZjMyeDgsCi0tICAgIG0zMng4LAotLSAgICB1NjR4NCwKLS0gICAgZjY0eDQsCi0t ICAgIG02NHg0LAotLSAgICBpMTI4eDIsCi0tICAgIHUxMjh4MiwKLS0gICAgbTEyOHgyCi0tKTsK LS1pbXBsX2Zyb21fYml0cyEoCi0tICAgIHU2NHg0W3Rlc3RfdjI1Nl06IGk4eDMyLAotLSAgICB1 OHgzMiwKLS0gICAgbTh4MzIsCi0tICAgIGkxNngxNiwKLS0gICAgdTE2eDE2LAotLSAgICBtMTZ4 MTYsCi0tICAgIGkzMng4LAotLSAgICB1MzJ4OCwKLS0gICAgZjMyeDgsCi0tICAgIG0zMng4LAot LSAgICBpNjR4NCwKLS0gICAgZjY0eDQsCi0tICAgIG02NHg0LAotLSAgICBpMTI4eDIsCi0tICAg IHUxMjh4MiwKLS0gICAgbTEyOHgyCi0tKTsKLS1pbXBsX2Zyb21fYml0cyEoCi0tICAgIGY2NHg0 W3Rlc3RfdjI1Nl06IGk4eDMyLAotLSAgICB1OHgzMiwKLS0gICAgbTh4MzIsCi0tICAgIGkxNngx NiwKLS0gICAgdTE2eDE2LAotLSAgICBtMTZ4MTYsCi0tICAgIGkzMng4LAotLSAgICB1MzJ4OCwK LS0gICAgZjMyeDgsCi0tICAgIG0zMng4LAotLSAgICBpNjR4NCwKLS0gICAgdTY0eDQsCi0tICAg IG02NHg0LAotLSAgICBpMTI4eDIsCi0tICAgIHUxMjh4MiwKLS0gICAgbTEyOHgyCi0tKTsKLS1p bXBsX2Zyb21fYml0cyEobTY0eDRbdGVzdF92MjU2XTogbTEyOHgyKTsKLS0KLS1pbXBsX2Zyb21f Yml0cyEoCi0tICAgIGkxMjh4Mlt0ZXN0X3YyNTZdOiBpOHgzMiwKLS0gICAgdTh4MzIsCi0tICAg IG04eDMyLAotLSAgICBpMTZ4MTYsCi0tICAgIHUxNngxNiwKLS0gICAgbTE2eDE2LAotLSAgICBp MzJ4OCwKLS0gICAgdTMyeDgsCi0tICAgIGYzMng4LAotLSAgICBtMzJ4OCwKLS0gICAgaTY0eDQs Ci0tICAgIHU2NHg0LAotLSAgICBmNjR4NCwKLS0gICAgbTY0eDQsCi0tICAgIHUxMjh4MiwKLS0g ICAgbTEyOHgyCi0tKTsKLS1pbXBsX2Zyb21fYml0cyEoCi0tICAgIHUxMjh4Mlt0ZXN0X3YyNTZd OiBpOHgzMiwKLS0gICAgdTh4MzIsCi0tICAgIG04eDMyLAotLSAgICBpMTZ4MTYsCi0tICAgIHUx NngxNiwKLS0gICAgbTE2eDE2LAotLSAgICBpMzJ4OCwKLS0gICAgdTMyeDgsCi0tICAgIGYzMng4 LAotLSAgICBtMzJ4OCwKLS0gICAgaTY0eDQsCi0tICAgIHU2NHg0LAotLSAgICBmNjR4NCwKLS0g ICAgbTY0eDQsCi0tICAgIGkxMjh4MiwKLS0gICAgbTEyOHgyCi0tKTsKLS0vLyBub3RlOiBtMTI4 eDIgY2Fubm90IGJlIGNvbnN0cnVjdGVkIGZyb20gYWxsIHRoZSBvdGhlciBtYXNrcyBiaXQgcGF0 dGVybnMgaW4KLS0vLyBoZXJlCi1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRf c2ltZC9zcmMvYXBpL2ludG9fYml0cy92MzIucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9z aW1kL3NyYy9hcGkvaW50b19iaXRzL3YzMi5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNr ZWRfc2ltZC9zcmMvYXBpL2ludG9fYml0cy92MzIucnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAw MDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9p bnRvX2JpdHMvdjMyLnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAt MSwxMyArMCwwIEBACi0tLy8hIGBGcm9tQml0c2AgYW5kIGBJbnRvQml0c2AgaW1wbGVtZW50YXRp b25zIGZvciBwb3J0YWJsZSAzMi1iaXQgd2lkZSB2ZWN0b3JzCi0tI1tydXN0Zm10Ojpza2lwXQot LQotLSNbYWxsb3codW51c2VkKV0gIC8vIHdhc21fYmluZGdlbl90ZXN0Ci0tdXNlIGNyYXRlOjoq OwotLQotLWltcGxfZnJvbV9iaXRzIShpOHg0W3Rlc3RfdjMyXTogdTh4NCwgbTh4NCwgaTE2eDIs IHUxNngyLCBtMTZ4Mik7Ci0taW1wbF9mcm9tX2JpdHMhKHU4eDRbdGVzdF92MzJdOiBpOHg0LCBt OHg0LCBpMTZ4MiwgdTE2eDIsIG0xNngyKTsKLS1pbXBsX2Zyb21fYml0cyEobTh4NFt0ZXN0X3Yz Ml06IG0xNngyKTsKLS0KLS1pbXBsX2Zyb21fYml0cyEoaTE2eDJbdGVzdF92MzJdOiBpOHg0LCB1 OHg0LCBtOHg0LCB1MTZ4MiwgbTE2eDIpOwotLWltcGxfZnJvbV9iaXRzISh1MTZ4Mlt0ZXN0X3Yz Ml06IGk4eDQsIHU4eDQsIG04eDQsIGkxNngyLCBtMTZ4Mik7Ci0tLy8gbm90ZTogbTE2eDIgY2Fu bm90IGJlIGNvbnN0cnVjdGVkIGZyb20gYWxsIG04eDQgYml0IHBhdHRlcm5zCi1kaWZmIC1OcmJ1 IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2ludG9fYml0cy92NTEyLnJz IGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2ludG9fYml0cy92NTEyLnJz Ci0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvaW50b19iaXRzL3Y1 MTIucnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3Bh cnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9pbnRvX2JpdHMvdjUxMi5ycwkxOTcwLTAxLTAx IDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsMjMyICswLDAgQEAKLS0vLyEgYEZyb21C aXRzYCBhbmQgYEludG9CaXRzYCBpbXBsZW1lbnRhdGlvbnMgZm9yIHBvcnRhYmxlIDUxMi1iaXQg d2lkZSB2ZWN0b3JzCi0tI1tydXN0Zm10Ojpza2lwXQotLQotLSNbYWxsb3codW51c2VkKV0gIC8v IHdhc21fYmluZGdlbl90ZXN0Ci0tdXNlIGNyYXRlOjoqOwotLQotLWltcGxfZnJvbV9iaXRzISgK LS0gICAgaTh4NjRbdGVzdF92NTEyXTogdTh4NjQsCi0tICAgIG04eDY0LAotLSAgICBpMTZ4MzIs Ci0tICAgIHUxNngzMiwKLS0gICAgbTE2eDMyLAotLSAgICBpMzJ4MTYsCi0tICAgIHUzMngxNiwK LS0gICAgZjMyeDE2LAotLSAgICBtMzJ4MTYsCi0tICAgIGk2NHg4LAotLSAgICB1NjR4OCwKLS0g ICAgZjY0eDgsCi0tICAgIG02NHg4LAotLSAgICBpMTI4eDQsCi0tICAgIHUxMjh4NCwKLS0gICAg bTEyOHg0Ci0tKTsKLS1pbXBsX2Zyb21fYml0cyEoCi0tICAgIHU4eDY0W3Rlc3RfdjUxMl06IGk4 eDY0LAotLSAgICBtOHg2NCwKLS0gICAgaTE2eDMyLAotLSAgICB1MTZ4MzIsCi0tICAgIG0xNngz MiwKLS0gICAgaTMyeDE2LAotLSAgICB1MzJ4MTYsCi0tICAgIGYzMngxNiwKLS0gICAgbTMyeDE2 LAotLSAgICBpNjR4OCwKLS0gICAgdTY0eDgsCi0tICAgIGY2NHg4LAotLSAgICBtNjR4OCwKLS0g ICAgaTEyOHg0LAotLSAgICB1MTI4eDQsCi0tICAgIG0xMjh4NAotLSk7Ci0taW1wbF9mcm9tX2Jp dHMhKG04eDY0W3Rlc3RfdjUxMl06IG0xNngzMiwgbTMyeDE2LCBtNjR4OCwgbTEyOHg0KTsKLS0K LS1pbXBsX2Zyb21fYml0cyEoCi0tICAgIGkxNngzMlt0ZXN0X3Y1MTJdOiBpOHg2NCwKLS0gICAg dTh4NjQsCi0tICAgIG04eDY0LAotLSAgICB1MTZ4MzIsCi0tICAgIG0xNngzMiwKLS0gICAgaTMy eDE2LAotLSAgICB1MzJ4MTYsCi0tICAgIGYzMngxNiwKLS0gICAgbTMyeDE2LAotLSAgICBpNjR4 OCwKLS0gICAgdTY0eDgsCi0tICAgIGY2NHg4LAotLSAgICBtNjR4OCwKLS0gICAgaTEyOHg0LAot LSAgICB1MTI4eDQsCi0tICAgIG0xMjh4NAotLSk7Ci0taW1wbF9mcm9tX2JpdHMhKAotLSAgICB1 MTZ4MzJbdGVzdF92NTEyXTogaTh4NjQsCi0tICAgIHU4eDY0LAotLSAgICBtOHg2NCwKLS0gICAg aTE2eDMyLAotLSAgICBtMTZ4MzIsCi0tICAgIGkzMngxNiwKLS0gICAgdTMyeDE2LAotLSAgICBm MzJ4MTYsCi0tICAgIG0zMngxNiwKLS0gICAgaTY0eDgsCi0tICAgIHU2NHg4LAotLSAgICBmNjR4 OCwKLS0gICAgbTY0eDgsCi0tICAgIGkxMjh4NCwKLS0gICAgdTEyOHg0LAotLSAgICBtMTI4eDQK LS0pOwotLWltcGxfZnJvbV9iaXRzIShtMTZ4MzJbdGVzdF92NTEyXTogbTMyeDE2LCBtNjR4OCwg bTEyOHg0KTsKLS0KLS1pbXBsX2Zyb21fYml0cyEoCi0tICAgIGkzMngxNlt0ZXN0X3Y1MTJdOiBp OHg2NCwKLS0gICAgdTh4NjQsCi0tICAgIG04eDY0LAotLSAgICBpMTZ4MzIsCi0tICAgIHUxNngz MiwKLS0gICAgbTE2eDMyLAotLSAgICB1MzJ4MTYsCi0tICAgIGYzMngxNiwKLS0gICAgbTMyeDE2 LAotLSAgICBpNjR4OCwKLS0gICAgdTY0eDgsCi0tICAgIGY2NHg4LAotLSAgICBtNjR4OCwKLS0g ICAgaTEyOHg0LAotLSAgICB1MTI4eDQsCi0tICAgIG0xMjh4NAotLSk7Ci0taW1wbF9mcm9tX2Jp dHMhKAotLSAgICB1MzJ4MTZbdGVzdF92NTEyXTogaTh4NjQsCi0tICAgIHU4eDY0LAotLSAgICBt OHg2NCwKLS0gICAgaTE2eDMyLAotLSAgICB1MTZ4MzIsCi0tICAgIG0xNngzMiwKLS0gICAgaTMy eDE2LAotLSAgICBmMzJ4MTYsCi0tICAgIG0zMngxNiwKLS0gICAgaTY0eDgsCi0tICAgIHU2NHg4 LAotLSAgICBmNjR4OCwKLS0gICAgbTY0eDgsCi0tICAgIGkxMjh4NCwKLS0gICAgdTEyOHg0LAot LSAgICBtMTI4eDQKLS0pOwotLWltcGxfZnJvbV9iaXRzISgKLS0gICAgZjMyeDE2W3Rlc3RfdjUx Ml06IGk4eDY0LAotLSAgICB1OHg2NCwKLS0gICAgbTh4NjQsCi0tICAgIGkxNngzMiwKLS0gICAg dTE2eDMyLAotLSAgICBtMTZ4MzIsCi0tICAgIGkzMngxNiwKLS0gICAgdTMyeDE2LAotLSAgICBt MzJ4MTYsCi0tICAgIGk2NHg4LAotLSAgICB1NjR4OCwKLS0gICAgZjY0eDgsCi0tICAgIG02NHg4 LAotLSAgICBpMTI4eDQsCi0tICAgIHUxMjh4NCwKLS0gICAgbTEyOHg0Ci0tKTsKLS1pbXBsX2Zy b21fYml0cyEobTMyeDE2W3Rlc3RfdjUxMl06IG02NHg4LCBtMTI4eDQpOwotLQotLWltcGxfZnJv bV9iaXRzISgKLS0gICAgaTY0eDhbdGVzdF92NTEyXTogaTh4NjQsCi0tICAgIHU4eDY0LAotLSAg ICBtOHg2NCwKLS0gICAgaTE2eDMyLAotLSAgICB1MTZ4MzIsCi0tICAgIG0xNngzMiwKLS0gICAg aTMyeDE2LAotLSAgICB1MzJ4MTYsCi0tICAgIGYzMngxNiwKLS0gICAgbTMyeDE2LAotLSAgICB1 NjR4OCwKLS0gICAgZjY0eDgsCi0tICAgIG02NHg4LAotLSAgICBpMTI4eDQsCi0tICAgIHUxMjh4 NCwKLS0gICAgbTEyOHg0Ci0tKTsKLS1pbXBsX2Zyb21fYml0cyEoCi0tICAgIHU2NHg4W3Rlc3Rf djUxMl06IGk4eDY0LAotLSAgICB1OHg2NCwKLS0gICAgbTh4NjQsCi0tICAgIGkxNngzMiwKLS0g ICAgdTE2eDMyLAotLSAgICBtMTZ4MzIsCi0tICAgIGkzMngxNiwKLS0gICAgdTMyeDE2LAotLSAg ICBmMzJ4MTYsCi0tICAgIG0zMngxNiwKLS0gICAgaTY0eDgsCi0tICAgIGY2NHg4LAotLSAgICBt NjR4OCwKLS0gICAgaTEyOHg0LAotLSAgICB1MTI4eDQsCi0tICAgIG0xMjh4NAotLSk7Ci0taW1w bF9mcm9tX2JpdHMhKAotLSAgICBmNjR4OFt0ZXN0X3Y1MTJdOiBpOHg2NCwKLS0gICAgdTh4NjQs Ci0tICAgIG04eDY0LAotLSAgICBpMTZ4MzIsCi0tICAgIHUxNngzMiwKLS0gICAgbTE2eDMyLAot LSAgICBpMzJ4MTYsCi0tICAgIHUzMngxNiwKLS0gICAgZjMyeDE2LAotLSAgICBtMzJ4MTYsCi0t ICAgIGk2NHg4LAotLSAgICB1NjR4OCwKLS0gICAgbTY0eDgsCi0tICAgIGkxMjh4NCwKLS0gICAg dTEyOHg0LAotLSAgICBtMTI4eDQKLS0pOwotLWltcGxfZnJvbV9iaXRzIShtNjR4OFt0ZXN0X3Y1 MTJdOiBtMTI4eDQpOwotLQotLWltcGxfZnJvbV9iaXRzISgKLS0gICAgaTEyOHg0W3Rlc3RfdjUx Ml06IGk4eDY0LAotLSAgICB1OHg2NCwKLS0gICAgbTh4NjQsCi0tICAgIGkxNngzMiwKLS0gICAg dTE2eDMyLAotLSAgICBtMTZ4MzIsCi0tICAgIGkzMngxNiwKLS0gICAgdTMyeDE2LAotLSAgICBm MzJ4MTYsCi0tICAgIG0zMngxNiwKLS0gICAgaTY0eDgsCi0tICAgIHU2NHg4LAotLSAgICBmNjR4 OCwKLS0gICAgbTY0eDgsCi0tICAgIHUxMjh4NCwKLS0gICAgbTEyOHg0Ci0tKTsKLS1pbXBsX2Zy b21fYml0cyEoCi0tICAgIHUxMjh4NFt0ZXN0X3Y1MTJdOiBpOHg2NCwKLS0gICAgdTh4NjQsCi0t ICAgIG04eDY0LAotLSAgICBpMTZ4MzIsCi0tICAgIHUxNngzMiwKLS0gICAgbTE2eDMyLAotLSAg ICBpMzJ4MTYsCi0tICAgIHUzMngxNiwKLS0gICAgZjMyeDE2LAotLSAgICBtMzJ4MTYsCi0tICAg IGk2NHg4LAotLSAgICB1NjR4OCwKLS0gICAgZjY0eDgsCi0tICAgIG02NHg4LAotLSAgICBpMTI4 eDQsCi0tICAgIG0xMjh4NAotLSk7Ci0tLy8gbm90ZTogbTEyOHg0IGNhbm5vdCBiZSBjb25zdHJ1 Y3RlZCBmcm9tIGFsbCB0aGUgb3RoZXIgbWFza3MgYml0IHBhdHRlcm5zIGluCi0tLy8gaGVyZQot ZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9pbnRvX2Jp dHMvdjY0LnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2ludG9fYml0 cy92NjQucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9pbnRv X2JpdHMvdjY0LnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvaW50b19iaXRzL3Y2NC5ycwkxOTcw LTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsMTggKzAsMCBAQAotLS8vISBg RnJvbUJpdHNgIGFuZCBgSW50b0JpdHNgIGltcGxlbWVudGF0aW9ucyBmb3IgcG9ydGFibGUgNjQt Yml0IHdpZGUgdmVjdG9ycwotLSNbcnVzdGZtdDo6c2tpcF0KLS0KLS0jW2FsbG93KHVudXNlZCld ICAvLyB3YXNtX2JpbmRnZW5fdGVzdAotLXVzZSBjcmF0ZTo6KjsKLS0KLS1pbXBsX2Zyb21fYml0 cyEoaTh4OFt0ZXN0X3Y2NF06IHU4eDgsIG04eDgsIGkxNng0LCB1MTZ4NCwgbTE2eDQsIGkzMngy LCB1MzJ4MiwgZjMyeDIsIG0zMngyKTsKLS1pbXBsX2Zyb21fYml0cyEodTh4OFt0ZXN0X3Y2NF06 IGk4eDgsIG04eDgsIGkxNng0LCB1MTZ4NCwgbTE2eDQsIGkzMngyLCB1MzJ4MiwgZjMyeDIsIG0z MngyKTsKLS1pbXBsX2Zyb21fYml0cyEobTh4OFt0ZXN0X3Y2NF06IG0xNng0LCBtMzJ4Mik7Ci0t Ci0taW1wbF9mcm9tX2JpdHMhKGkxNng0W3Rlc3RfdjY0XTogaTh4OCwgdTh4OCwgbTh4OCwgdTE2 eDQsIG0xNng0LCBpMzJ4MiwgdTMyeDIsIGYzMngyLCBtMzJ4Mik7Ci0taW1wbF9mcm9tX2JpdHMh KHUxNng0W3Rlc3RfdjY0XTogaTh4OCwgdTh4OCwgbTh4OCwgaTE2eDQsIG0xNng0LCBpMzJ4Miwg dTMyeDIsIGYzMngyLCBtMzJ4Mik7Ci0taW1wbF9mcm9tX2JpdHMhKG0xNng0W3Rlc3RfdjY0XTog bTMyeDIpOwotLQotLWltcGxfZnJvbV9iaXRzIShpMzJ4Mlt0ZXN0X3Y2NF06IGk4eDgsIHU4eDgs IG04eDgsIGkxNng0LCB1MTZ4NCwgbTE2eDQsIHUzMngyLCBmMzJ4MiwgbTMyeDIpOwotLWltcGxf ZnJvbV9iaXRzISh1MzJ4Mlt0ZXN0X3Y2NF06IGk4eDgsIHU4eDgsIG04eDgsIGkxNng0LCB1MTZ4 NCwgbTE2eDQsIGkzMngyLCBmMzJ4MiwgbTMyeDIpOwotLWltcGxfZnJvbV9iaXRzIShmMzJ4Mlt0 ZXN0X3Y2NF06IGk4eDgsIHU4eDgsIG04eDgsIGkxNng0LCB1MTZ4NCwgbTE2eDQsIGkzMngyLCB1 MzJ4MiwgbTMyeDIpOwotLS8vIG5vdGU6IG0zMngyIGNhbm5vdCBiZSBjb25zdHJ1Y3RlZCBmcm9t IGFsbCBtMTZ4NCBvciBtOHg4IGJpdCBwYXR0ZXJucwotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5 L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9pbnRvX2JpdHMucnMgYi90aGlyZF9wYXJ0eS9ydXN0 L3BhY2tlZF9zaW1kL3NyYy9hcGkvaW50b19iaXRzLnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0 L3BhY2tlZF9zaW1kL3NyYy9hcGkvaW50b19iaXRzLnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAw MDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkv aW50b19iaXRzLnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSw1 OSArMCwwIEBACi0tLy8hIEltcGxlbWVudGF0aW9uIG9mIGBGcm9tQml0c2AgYW5kIGBJbnRvQml0 c2AuCi0tCi0tLy8vIFNhZmUgbG9zc2xlc3MgYml0d2lzZSBjb252ZXJzaW9uIGZyb20gYFRgIHRv IGBTZWxmYC4KLS0jW2NmZ19hdHRyKGRvY19jZmcsIGRvYyhjZmcoZmVhdHVyZSA9ICJpbnRvX2Jp dHMiKSkpXQotLXB1YiB0cmFpdCBGcm9tQml0czxUPjogY3JhdGU6Om1hcmtlcjo6U2l6ZWQgewot LSAgICAvLy8gU2FmZSBsb3NzbGVzcyBiaXR3aXNlIHRyYW5zbXV0ZSBmcm9tIGBUYCB0byBgU2Vs ZmAuCi0tICAgIGZuIGZyb21fYml0cyh0OiBUKSAtPiBTZWxmOwotLX0KLS0KLS0vLy8gU2FmZSBs b3NzbGVzcyBiaXR3aXNlIGNvbnZlcnNpb24gZnJvbSBgU2VsZmAgdG8gYFRgLgotLSNbY2ZnX2F0 dHIoZG9jX2NmZywgZG9jKGNmZyhmZWF0dXJlID0gImludG9fYml0cyIpKSldCi0tcHViIHRyYWl0 IEludG9CaXRzPFQ+OiBjcmF0ZTo6bWFya2VyOjpTaXplZCB7Ci0tICAgIC8vLyBTYWZlIGxvc3Ns ZXNzIGJpdHdpc2UgdHJhbnNtdXRlIGZyb20gYHNlbGZgIHRvIGBUYC4KLS0gICAgZm4gaW50b19i aXRzKHNlbGYpIC0+IFQ7Ci0tfQotLQotLS8vLyBgRnJvbUJpdHNgIGltcGxpZXMgYEludG9CaXRz YC4KLS1pbXBsPFQsIFU+IEludG9CaXRzPFU+IGZvciBUCi0td2hlcmUKLS0gICAgVTogRnJvbUJp dHM8VD4sCi0tewotLSAgICAjW2lubGluZV0KLS0gICAgZm4gaW50b19iaXRzKHNlbGYpIC0+IFUg ewotLSAgICAgICAgZGVidWdfYXNzZXJ0IShjcmF0ZTo6bWVtOjpzaXplX29mOjo8U2VsZj4oKSA9 PSBjcmF0ZTo6bWVtOjpzaXplX29mOjo8VT4oKSk7Ci0tICAgICAgICBVOjpmcm9tX2JpdHMoc2Vs ZikKLS0gICAgfQotLX0KLS0KLS0vLy8gYEZyb21CaXRzYCBhbmQgYEludG9CaXRzYCBhcmUgcmVm bGV4aXZlCi0taW1wbDxUPiBGcm9tQml0czxUPiBmb3IgVCB7Ci0tICAgICNbaW5saW5lXQotLSAg ICBmbiBmcm9tX2JpdHModDogU2VsZikgLT4gU2VsZiB7Ci0tICAgICAgICB0Ci0tICAgIH0KLS19 Ci0tCi0tI1ttYWNyb191c2VdCi0tbW9kIG1hY3JvczsKLS0KLS1tb2QgdjE2OwotLXB1YiB1c2Ug c2VsZjo6djE2OjoqOwotLQotLW1vZCB2MzI7Ci0tcHViIHVzZSBzZWxmOjp2MzI6Oio7Ci0tCi0t bW9kIHY2NDsKLS1wdWIgdXNlIHNlbGY6OnY2NDo6KjsKLS0KLS1tb2QgdjEyODsKLS1wdWIgdXNl IHNlbGY6OnYxMjg6Oio7Ci0tCi0tbW9kIHYyNTY7Ci0tcHViIHVzZSBzZWxmOjp2MjU2OjoqOwot LQotLW1vZCB2NTEyOwotLXB1YiB1c2Ugc2VsZjo6djUxMjo6KjsKLS0KLS1tb2QgYXJjaF9zcGVj aWZpYzsKLS1wdWIgdXNlIHNlbGY6OmFyY2hfc3BlY2lmaWM6Oio7Ci1kaWZmIC1OcmJ1IGEvdGhp cmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL21hdGgvZmxvYXQvYWJzLnJzIGIvdGhp cmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL21hdGgvZmxvYXQvYWJzLnJzCi0tLS0g YS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvbWF0aC9mbG9hdC9hYnMucnMJ MjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1 c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9tYXRoL2Zsb2F0L2Ficy5ycwkxOTcwLTAxLTAxIDAzOjAw OjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsMzEgKzAsMCBAQAotLS8vISBJbXBsZW1lbnRzIHZl cnRpY2FsIChsYW5lLXdpc2UpIGZsb2F0aW5nLXBvaW50IGBhYnNgLgotLQotLW1hY3JvX3J1bGVz ISBpbXBsX21hdGhfZmxvYXRfYWJzIHsKLS0gICAgKFskZWxlbV90eTppZGVudDsgJGVsZW1fY291 bnQ6ZXhwcl06ICRpZDppZGVudCB8ICR0ZXN0X3R0OnR0KSA9PiB7Ci0tICAgICAgICBpbXBsICRp ZCB7Ci0tICAgICAgICAgICAgLy8vIEFic29sdXRlIHZhbHVlLgotLSAgICAgICAgICAgICNbaW5s aW5lXQotLSAgICAgICAgICAgIHB1YiBmbiBhYnMoc2VsZikgLT4gU2VsZiB7Ci0tICAgICAgICAg ICAgICAgIHVzZSBjcmF0ZTo6Y29kZWdlbjo6bWF0aDo6ZmxvYXQ6OmFiczo6QWJzOwotLSAgICAg ICAgICAgICAgICBBYnM6OmFicyhzZWxmKQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0K LS0gICAgICAgIHRlc3RfaWYhewotLSAgICAgICAgICAgICR0ZXN0X3R0OgotLSAgICAgICAgICAg IHBhc3RlOjppdGVtISB7Ci0tICAgICAgICAgICAgICAgIHB1YiBtb2QgWzwkaWQgX21hdGhfYWJz Pl0gewotLSAgICAgICAgICAgICAgICAgICAgdXNlIHN1cGVyOjoqOwotLSAgICAgICAgICAgICAg ICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXSAjW2Nm Z19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KLS0gICAg ICAgICAgICAgICAgICAgIGZuIGFicygpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQg byA9ICRpZDo6c3BsYXQoMSBhcyAkZWxlbV90eSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAg YXNzZXJ0X2VxIShvLCBvLmFicygpKTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQg bW8gPSAkaWQ6OnNwbGF0KC0xIGFzICRlbGVtX3R5KTsKLS0gICAgICAgICAgICAgICAgICAgICAg ICBhc3NlcnRfZXEhKG8sIG1vLmFicygpKTsKLS0gICAgICAgICAgICAgICAgICAgIH0KLS0gICAg ICAgICAgICAgICAgfQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgfTsKLS19Ci1k aWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL21hdGgvZmxv YXQvY29uc3RzLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL21hdGgv ZmxvYXQvY29uc3RzLnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9h cGkvbWF0aC9mbG9hdC9jb25zdHMucnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAz MDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9tYXRoL2Zsb2F0 L2NvbnN0cy5ycwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsNzQg KzAsMCBAQAotLW1hY3JvX3J1bGVzISBpbXBsX2Zsb2F0X2NvbnN0cyB7Ci0tICAgIChbJGVsZW1f dHk6aWRlbnQ7ICRlbGVtX2NvdW50OmV4cHJdOiAkaWQ6aWRlbnQpID0+IHsKLS0gICAgICAgIGlt cGwgJGlkIHsKLS0gICAgICAgICAgICAvLy8gTWFjaGluZSBlcHNpbG9uIHZhbHVlLgotLSAgICAg ICAgICAgIHB1YiBjb25zdCBFUFNJTE9OOiAkaWQgPSAkaWQ6OnNwbGF0KGNvcmU6OiRlbGVtX3R5 OjpFUFNJTE9OKTsKLS0KLS0gICAgICAgICAgICAvLy8gU21hbGxlc3QgZmluaXRlIHZhbHVlLgot LSAgICAgICAgICAgIHB1YiBjb25zdCBNSU46ICRpZCA9ICRpZDo6c3BsYXQoY29yZTo6JGVsZW1f dHk6Ok1JTik7Ci0tCi0tICAgICAgICAgICAgLy8vIFNtYWxsZXN0IHBvc2l0aXZlIG5vcm1hbCB2 YWx1ZS4KLS0gICAgICAgICAgICBwdWIgY29uc3QgTUlOX1BPU0lUSVZFOiAkaWQgPSAkaWQ6OnNw bGF0KGNvcmU6OiRlbGVtX3R5OjpNSU5fUE9TSVRJVkUpOwotLQotLSAgICAgICAgICAgIC8vLyBM YXJnZXN0IGZpbml0ZSB2YWx1ZS4KLS0gICAgICAgICAgICBwdWIgY29uc3QgTUFYOiAkaWQgPSAk aWQ6OnNwbGF0KGNvcmU6OiRlbGVtX3R5OjpNQVgpOwotLQotLSAgICAgICAgICAgIC8vLyBOb3Qg YSBOdW1iZXIgKE5hTikuCi0tICAgICAgICAgICAgcHViIGNvbnN0IE5BTjogJGlkID0gJGlkOjpz cGxhdChjb3JlOjokZWxlbV90eTo6TkFOKTsKLS0KLS0gICAgICAgICAgICAvLy8gSW5maW5pdHkg KOKInikuCi0tICAgICAgICAgICAgcHViIGNvbnN0IElORklOSVRZOiAkaWQgPSAkaWQ6OnNwbGF0 KGNvcmU6OiRlbGVtX3R5OjpJTkZJTklUWSk7Ci0tCi0tICAgICAgICAgICAgLy8vIE5lZ2F0aXZl IGluZmluaXR5ICgt4oieKS4KLS0gICAgICAgICAgICBwdWIgY29uc3QgTkVHX0lORklOSVRZOiAk aWQgPSAkaWQ6OnNwbGF0KGNvcmU6OiRlbGVtX3R5OjpORUdfSU5GSU5JVFkpOwotLQotLSAgICAg ICAgICAgIC8vLyBBcmNoaW1lZGVzJyBjb25zdGFudCAoz4ApCi0tICAgICAgICAgICAgcHViIGNv bnN0IFBJOiAkaWQgPSAkaWQ6OnNwbGF0KGNvcmU6OiRlbGVtX3R5Ojpjb25zdHM6OlBJKTsKLS0K LS0gICAgICAgICAgICAvLy8gz4AvMgotLSAgICAgICAgICAgIHB1YiBjb25zdCBGUkFDX1BJXzI6 ICRpZCA9ICRpZDo6c3BsYXQoY29yZTo6JGVsZW1fdHk6OmNvbnN0czo6RlJBQ19QSV8yKTsKLS0K LS0gICAgICAgICAgICAvLy8gz4AvMwotLSAgICAgICAgICAgIHB1YiBjb25zdCBGUkFDX1BJXzM6 ICRpZCA9ICRpZDo6c3BsYXQoY29yZTo6JGVsZW1fdHk6OmNvbnN0czo6RlJBQ19QSV8zKTsKLS0K LS0gICAgICAgICAgICAvLy8gz4AvNAotLSAgICAgICAgICAgIHB1YiBjb25zdCBGUkFDX1BJXzQ6 ICRpZCA9ICRpZDo6c3BsYXQoY29yZTo6JGVsZW1fdHk6OmNvbnN0czo6RlJBQ19QSV80KTsKLS0K LS0gICAgICAgICAgICAvLy8gz4AvNgotLSAgICAgICAgICAgIHB1YiBjb25zdCBGUkFDX1BJXzY6 ICRpZCA9ICRpZDo6c3BsYXQoY29yZTo6JGVsZW1fdHk6OmNvbnN0czo6RlJBQ19QSV82KTsKLS0K LS0gICAgICAgICAgICAvLy8gz4AvOAotLSAgICAgICAgICAgIHB1YiBjb25zdCBGUkFDX1BJXzg6 ICRpZCA9ICRpZDo6c3BsYXQoY29yZTo6JGVsZW1fdHk6OmNvbnN0czo6RlJBQ19QSV84KTsKLS0K LS0gICAgICAgICAgICAvLy8gMS/PgAotLSAgICAgICAgICAgIHB1YiBjb25zdCBGUkFDXzFfUEk6 ICRpZCA9ICRpZDo6c3BsYXQoY29yZTo6JGVsZW1fdHk6OmNvbnN0czo6RlJBQ18xX1BJKTsKLS0K LS0gICAgICAgICAgICAvLy8gMi/PgAotLSAgICAgICAgICAgIHB1YiBjb25zdCBGUkFDXzJfUEk6 ICRpZCA9ICRpZDo6c3BsYXQoY29yZTo6JGVsZW1fdHk6OmNvbnN0czo6RlJBQ18yX1BJKTsKLS0K LS0gICAgICAgICAgICAvLy8gMi9zcXJ0KM+AKQotLSAgICAgICAgICAgIHB1YiBjb25zdCBGUkFD XzJfU1FSVF9QSTogJGlkID0gJGlkOjpzcGxhdChjb3JlOjokZWxlbV90eTo6Y29uc3RzOjpGUkFD XzJfU1FSVF9QSSk7Ci0tCi0tICAgICAgICAgICAgLy8vIHNxcnQoMikKLS0gICAgICAgICAgICBw dWIgY29uc3QgU1FSVF8yOiAkaWQgPSAkaWQ6OnNwbGF0KGNvcmU6OiRlbGVtX3R5Ojpjb25zdHM6 OlNRUlRfMik7Ci0tCi0tICAgICAgICAgICAgLy8vIDEvc3FydCgyKQotLSAgICAgICAgICAgIHB1 YiBjb25zdCBGUkFDXzFfU1FSVF8yOiAkaWQgPSAkaWQ6OnNwbGF0KGNvcmU6OiRlbGVtX3R5Ojpj b25zdHM6OkZSQUNfMV9TUVJUXzIpOwotLQotLSAgICAgICAgICAgIC8vLyBFdWxlcidzIG51bWJl ciAoZSkKLS0gICAgICAgICAgICBwdWIgY29uc3QgRTogJGlkID0gJGlkOjpzcGxhdChjb3JlOjok ZWxlbV90eTo6Y29uc3RzOjpFKTsKLS0KLS0gICAgICAgICAgICAvLy8gbG9nPHN1Yj4yPC9zdWI+ KGUpCi0tICAgICAgICAgICAgcHViIGNvbnN0IExPRzJfRTogJGlkID0gJGlkOjpzcGxhdChjb3Jl OjokZWxlbV90eTo6Y29uc3RzOjpMT0cyX0UpOwotLQotLSAgICAgICAgICAgIC8vLyBsb2c8c3Vi PjEwPC9zdWI+KGUpCi0tICAgICAgICAgICAgcHViIGNvbnN0IExPRzEwX0U6ICRpZCA9ICRpZDo6 c3BsYXQoY29yZTo6JGVsZW1fdHk6OmNvbnN0czo6TE9HMTBfRSk7Ci0tCi0tICAgICAgICAgICAg Ly8vIGxuKDIpCi0tICAgICAgICAgICAgcHViIGNvbnN0IExOXzI6ICRpZCA9ICRpZDo6c3BsYXQo Y29yZTo6JGVsZW1fdHk6OmNvbnN0czo6TE5fMik7Ci0tCi0tICAgICAgICAgICAgLy8vIGxuKDEw KQotLSAgICAgICAgICAgIHB1YiBjb25zdCBMTl8xMDogJGlkID0gJGlkOjpzcGxhdChjb3JlOjok ZWxlbV90eTo6Y29uc3RzOjpMTl8xMCk7Ci0tICAgICAgICB9Ci0tICAgIH07Ci0tfQotZGlmZiAt TnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9tYXRoL2Zsb2F0L2Nv cy5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9tYXRoL2Zsb2F0L2Nv cy5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL21hdGgvZmxv YXQvY29zLnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGly ZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvbWF0aC9mbG9hdC9jb3MucnMJMTk3MC0w MS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDQ0ICswLDAgQEAKLS0vLyEgSW1w bGVtZW50cyB2ZXJ0aWNhbCAobGFuZS13aXNlKSBmbG9hdGluZy1wb2ludCBgY29zYC4KLS0KLS1t YWNyb19ydWxlcyEgaW1wbF9tYXRoX2Zsb2F0X2NvcyB7Ci0tICAgIChbJGVsZW1fdHk6aWRlbnQ7 ICRlbGVtX2NvdW50OmV4cHJdOiAkaWQ6aWRlbnQgfCAkdGVzdF90dDp0dCkgPT4gewotLSAgICAg ICAgaW1wbCAkaWQgewotLSAgICAgICAgICAgIC8vLyBDb3NpbmUuCi0tICAgICAgICAgICAgI1tp bmxpbmVdCi0tICAgICAgICAgICAgcHViIGZuIGNvcyhzZWxmKSAtPiBTZWxmIHsKLS0gICAgICAg ICAgICAgICAgdXNlIGNyYXRlOjpjb2RlZ2VuOjptYXRoOjpmbG9hdDo6Y29zOjpDb3M7Ci0tICAg ICAgICAgICAgICAgIENvczo6Y29zKHNlbGYpCi0tICAgICAgICAgICAgfQotLQotLSAgICAgICAg ICAgIC8vLyBDb3NpbmUgb2YgYHNlbGYgKiBQSWAuCi0tICAgICAgICAgICAgI1tpbmxpbmVdCi0t ICAgICAgICAgICAgcHViIGZuIGNvc19waShzZWxmKSAtPiBTZWxmIHsKLS0gICAgICAgICAgICAg ICAgdXNlIGNyYXRlOjpjb2RlZ2VuOjptYXRoOjpmbG9hdDo6Y29zX3BpOjpDb3NQaTsKLS0gICAg ICAgICAgICAgICAgQ29zUGk6OmNvc19waShzZWxmKQotLSAgICAgICAgICAgIH0KLS0gICAgICAg IH0KLS0KLS0gICAgICAgIHRlc3RfaWYhewotLSAgICAgICAgICAgICR0ZXN0X3R0OgotLSAgICAg ICAgICAgIHBhc3RlOjppdGVtISB7Ci0tICAgICAgICAgICAgICAgIHB1YiBtb2QgWzwkaWQgX21h dGhfY29zPl0gewotLSAgICAgICAgICAgICAgICAgICAgdXNlIHN1cGVyOjoqOwotLSAgICAgICAg ICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3Qp XSAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0K LS0gICAgICAgICAgICAgICAgICAgIGZuIGNvcygpIHsKLS0gICAgICAgICAgICAgICAgICAgICAg ICB1c2UgY3JhdGU6OiRlbGVtX3R5Ojpjb25zdHM6OlBJOwotLSAgICAgICAgICAgICAgICAgICAg ICAgIGxldCB6ID0gJGlkOjpzcGxhdCgwIGFzICRlbGVtX3R5KTsKLS0gICAgICAgICAgICAgICAg ICAgICAgICBsZXQgbyA9ICRpZDo6c3BsYXQoMSBhcyAkZWxlbV90eSk7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgbGV0IHAgPSAkaWQ6OnNwbGF0KFBJIGFzICRlbGVtX3R5KTsKLS0gICAgICAg ICAgICAgICAgICAgICAgICBsZXQgcGggPSAkaWQ6OnNwbGF0KFBJIGFzICRlbGVtX3R5IC8gMi4p OwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB6X3IgPSAkaWQ6OnNwbGF0KChQSSBhcyAk ZWxlbV90eSAvIDIuKS5jb3MoKSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG9fciA9 ICRpZDo6c3BsYXQoKFBJIGFzICRlbGVtX3R5KS5jb3MoKSk7Ci0tCi0tICAgICAgICAgICAgICAg ICAgICAgICAgYXNzZXJ0X2VxIShvLCB6LmNvcygpKTsKLS0gICAgICAgICAgICAgICAgICAgICAg ICBhc3NlcnRfZXEhKHpfciwgcGguY29zKCkpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFz c2VydF9lcSEob19yLCBwLmNvcygpKTsKLS0gICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAg ICAgICAgICAgfQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgfTsKLS19Ci1kaWZm IC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL21hdGgvZmxvYXQv ZXhwLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL21hdGgvZmxvYXQv ZXhwLnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvbWF0aC9m bG9hdC9leHAucnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3Ro aXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9tYXRoL2Zsb2F0L2V4cC5ycwkxOTcw LTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsMzMgKzAsMCBAQAotLS8vISBJ bXBsZW1lbnRzIHZlcnRpY2FsIChsYW5lLXdpc2UpIGZsb2F0aW5nLXBvaW50IGBleHBgLgotLQot LW1hY3JvX3J1bGVzISBpbXBsX21hdGhfZmxvYXRfZXhwIHsKLS0gICAgKFskZWxlbV90eTppZGVu dDsgJGVsZW1fY291bnQ6ZXhwcl06ICRpZDppZGVudCB8ICR0ZXN0X3R0OnR0KSA9PiB7Ci0tICAg ICAgICBpbXBsICRpZCB7Ci0tICAgICAgICAgICAgLy8vIFJldHVybnMgdGhlIGV4cG9uZW50aWFs IGZ1bmN0aW9uIG9mIGBzZWxmYDogYGVeKHNlbGYpYC4KLS0gICAgICAgICAgICAjW2lubGluZV0K LS0gICAgICAgICAgICBwdWIgZm4gZXhwKHNlbGYpIC0+IFNlbGYgewotLSAgICAgICAgICAgICAg ICB1c2UgY3JhdGU6OmNvZGVnZW46Om1hdGg6OmZsb2F0OjpleHA6OkV4cDsKLS0gICAgICAgICAg ICAgICAgRXhwOjpleHAoc2VsZikKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tCi0tICAg ICAgICB0ZXN0X2lmIXsKLS0gICAgICAgICAgICAkdGVzdF90dDoKLS0gICAgICAgICAgICBwYXN0 ZTo6aXRlbSEgewotLSAgICAgICAgICAgICAgICBwdWIgbW9kIFs8JGlkIF9tYXRoX2V4cD5dIHsK LS0gICAgICAgICAgICAgICAgICAgIHVzZSBzdXBlcjo6KjsKLS0gICAgICAgICAgICAgICAgICAg ICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0gI1tjZmdfYXR0 cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCi0tICAgICAgICAg ICAgICAgICAgICBmbiBleHAoKSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHogPSAk aWQ6OnNwbGF0KDAgYXMgJGVsZW1fdHkpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBv ID0gJGlkOjpzcGxhdCgxIGFzICRlbGVtX3R5KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBh c3NlcnRfZXEhKG8sIHouZXhwKCkpOwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBl ID0gJGlkOjpzcGxhdChjcmF0ZTo6ZjY0Ojpjb25zdHM6OkUgYXMgJGVsZW1fdHkpOwotLSAgICAg ICAgICAgICAgICAgICAgICAgIGxldCB0b2wgPSAkaWQ6OnNwbGF0KDIuNGUtNCBhcyAkZWxlbV90 eSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0ISgoZSAtIG8uZXhwKCkpLmFicygp LmxlKHRvbCkuYWxsKCkpOwotLSAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAg ICB9Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICB9OwotLX0KLWRpZmYgLU5yYnUg YS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvbWF0aC9mbG9hdC9sbi5ycyBi L3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9tYXRoL2Zsb2F0L2xuLnJzCi0t LS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvbWF0aC9mbG9hdC9sbi5y cwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkv cnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL21hdGgvZmxvYXQvbG4ucnMJMTk3MC0wMS0wMSAwMzow MDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDMzICswLDAgQEAKLS0vLyEgSW1wbGVtZW50cyB2 ZXJ0aWNhbCAobGFuZS13aXNlKSBmbG9hdGluZy1wb2ludCBgbG5gLgotLQotLW1hY3JvX3J1bGVz ISBpbXBsX21hdGhfZmxvYXRfbG4gewotLSAgICAoWyRlbGVtX3R5OmlkZW50OyAkZWxlbV9jb3Vu dDpleHByXTogJGlkOmlkZW50IHwgJHRlc3RfdHQ6dHQpID0+IHsKLS0gICAgICAgIGltcGwgJGlk IHsKLS0gICAgICAgICAgICAvLy8gUmV0dXJucyB0aGUgbmF0dXJhbCBsb2dhcml0aG0gb2YgYHNl bGZgLgotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIHB1YiBmbiBsbihzZWxm KSAtPiBTZWxmIHsKLS0gICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpjb2RlZ2VuOjptYXRoOjpm bG9hdDo6bG46OkxuOwotLSAgICAgICAgICAgICAgICBMbjo6bG4oc2VsZikKLS0gICAgICAgICAg ICB9Ci0tICAgICAgICB9Ci0tCi0tICAgICAgICB0ZXN0X2lmIXsKLS0gICAgICAgICAgICAkdGVz dF90dDoKLS0gICAgICAgICAgICBwYXN0ZTo6aXRlbSEgewotLSAgICAgICAgICAgICAgICBwdWIg bW9kIFs8JGlkIF9tYXRoX2xuPl0gewotLSAgICAgICAgICAgICAgICAgICAgdXNlIHN1cGVyOjoq OwotLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2Fz bTMyIiksIHRlc3QpXSAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmlu ZGdlbl90ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgIGZuIGxuKCkgewotLSAgICAgICAgICAg ICAgICAgICAgICAgIGxldCB6ID0gJGlkOjpzcGxhdCgwIGFzICRlbGVtX3R5KTsKLS0gICAgICAg ICAgICAgICAgICAgICAgICBsZXQgbyA9ICRpZDo6c3BsYXQoMSBhcyAkZWxlbV90eSk7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh6LCBvLmxuKCkpOwotLQotLSAgICAgICAg ICAgICAgICAgICAgICAgIGxldCBlID0gJGlkOjpzcGxhdChjcmF0ZTo6ZjY0Ojpjb25zdHM6OkUg YXMgJGVsZW1fdHkpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0b2wgPSAkaWQ6OnNw bGF0KDIuNGUtNCBhcyAkZWxlbV90eSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0 ISgobyAtIGUubG4oKSkuYWJzKCkubGUodG9sKS5hbGwoKSk7Ci0tICAgICAgICAgICAgICAgICAg ICB9Ci0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAg IH07Ci0tfQotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2Fw aS9tYXRoL2Zsb2F0L211bF9hZGQucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3Ny Yy9hcGkvbWF0aC9mbG9hdC9tdWxfYWRkLnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tl ZF9zaW1kL3NyYy9hcGkvbWF0aC9mbG9hdC9tdWxfYWRkLnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMu MDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9h cGkvbWF0aC9mbG9hdC9tdWxfYWRkLnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICsw MzAwCi1AQCAtMSw0NCArMCwwIEBACi0tLy8hIEltcGxlbWVudHMgdmVydGljYWwgKGxhbmUtd2lz ZSkgZmxvYXRpbmctcG9pbnQgYG11bF9hZGRgLgotLQotLW1hY3JvX3J1bGVzISBpbXBsX21hdGhf ZmxvYXRfbXVsX2FkZCB7Ci0tICAgIChbJGVsZW1fdHk6aWRlbnQ7ICRlbGVtX2NvdW50OmV4cHJd OiAkaWQ6aWRlbnQgfCAkdGVzdF90dDp0dCkgPT4gewotLSAgICAgICAgaW1wbCAkaWQgewotLSAg ICAgICAgICAgIC8vLyBGdXNlZCBtdWx0aXBseSBhZGQ6IGBzZWxmICogeSArIHpgCi0tICAgICAg ICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgcHViIGZuIG11bF9hZGQoc2VsZiwgeTogU2Vs ZiwgejogU2VsZikgLT4gU2VsZiB7Ci0tICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6Y29kZWdl bjo6bWF0aDo6ZmxvYXQ6Om11bF9hZGQ6Ok11bEFkZDsKLS0gICAgICAgICAgICAgICAgTXVsQWRk OjptdWxfYWRkKHNlbGYsIHksIHopCi0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLQotLSAg ICAgICAgdGVzdF9pZiF7Ci0tICAgICAgICAgICAgJHRlc3RfdHQ6Ci0tICAgICAgICAgICAgcGFz dGU6Oml0ZW0hIHsKLS0gICAgICAgICAgICAgICAgcHViIG1vZCBbPCRpZCBfbWF0aF9tdWxfYWRk Pl0gewotLSAgICAgICAgICAgICAgICAgICAgdXNlIHN1cGVyOjoqOwotLSAgICAgICAgICAgICAg ICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXSAjW2Nm Z19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KLS0gICAg ICAgICAgICAgICAgICAgIGZuIG11bF9hZGQoKSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAg bGV0IHogPSAkaWQ6OnNwbGF0KDAgYXMgJGVsZW1fdHkpOwotLSAgICAgICAgICAgICAgICAgICAg ICAgIGxldCBvID0gJGlkOjpzcGxhdCgxIGFzICRlbGVtX3R5KTsKLS0gICAgICAgICAgICAgICAg ICAgICAgICBsZXQgdCA9ICRpZDo6c3BsYXQoMiBhcyAkZWxlbV90eSk7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgbGV0IHQzID0gJGlkOjpzcGxhdCgzIGFzICRlbGVtX3R5KTsKLS0gICAgICAg ICAgICAgICAgICAgICAgICBsZXQgZiA9ICRpZDo6c3BsYXQoNCBhcyAkZWxlbV90eSk7Ci0tCi0t ICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh6LCB6Lm11bF9hZGQoeiwgeikpOwot LSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEobywgby5tdWxfYWRkKG8sIHopKTsK LS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG8sIG8ubXVsX2FkZCh6LCBvKSk7 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvLCB6Lm11bF9hZGQobywgbykp OwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodCwgby5tdWxfYWRkKG8s IG8pKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQsIG8ubXVsX2FkZCh0 LCB6KSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0LCB0Lm11bF9hZGQo bywgeikpOwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoZiwgdC5tdWxf YWRkKHQsIHopKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGYsIHQubXVs X2FkZChvLCB0KSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0MywgdC5t dWxfYWRkKG8sIG8pKTsKLS0gICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAg fQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgfTsKLS19Ci1kaWZmIC1OcmJ1IGEv dGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL21hdGgvZmxvYXQvbXVsX2FkZGUu cnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvbWF0aC9mbG9hdC9tdWxf YWRkZS5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL21hdGgv ZmxvYXQvbXVsX2FkZGUucnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsr KyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9tYXRoL2Zsb2F0L211bF9h ZGRlLnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSw0OCArMCww IEBACi0tLy8hIEltcGxlbWVudHMgdmVydGljYWwgKGxhbmUtd2lzZSkgZmxvYXRpbmctcG9pbnQg YG11bF9hZGRlYC4KLS0KLS1tYWNyb19ydWxlcyEgaW1wbF9tYXRoX2Zsb2F0X211bF9hZGRlIHsK LS0gICAgKFskZWxlbV90eTppZGVudDsgJGVsZW1fY291bnQ6ZXhwcl06ICRpZDppZGVudCB8ICR0 ZXN0X3R0OnR0KSA9PiB7Ci0tICAgICAgICBpbXBsICRpZCB7Ci0tICAgICAgICAgICAgLy8vIEZ1 c2VkIG11bHRpcGx5IGFkZCBlc3RpbWF0ZTogfj0gYHNlbGYgKiB5ICsgemAKLS0gICAgICAgICAg ICAvLy8KLS0gICAgICAgICAgICAvLy8gV2hpbGUgZnVzZWQgbXVsdGlwbHktYWRkIChgZm1hYCkg aGFzIGluZmluaXRlIHByZWNpc2lvbiwKLS0gICAgICAgICAgICAvLy8gYG11bF9hZGRlYCBoYXMg X2F0IHdvcnN0XyB0aGUgc2FtZSBwcmVjaXNpb24gb2YgYSBtdWx0aXBseSBmb2xsb3dlZCBieSBh biBhZGQuCi0tICAgICAgICAgICAgLy8vIFRoaXMgbWlnaHQgYmUgbW9yZSBlZmZpY2llbnQgb24g YXJjaGl0ZWN0dXJlcyB0aGF0IGRvIG5vdCBoYXZlIGFuIGBmbWFgIGluc3RydWN0aW9uLgotLSAg ICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIHB1YiBmbiBtdWxfYWRkZShzZWxmLCB5 OiBTZWxmLCB6OiBTZWxmKSAtPiBTZWxmIHsKLS0gICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpj b2RlZ2VuOjptYXRoOjpmbG9hdDo6bXVsX2FkZGU6Ok11bEFkZEU7Ci0tICAgICAgICAgICAgICAg IE11bEFkZEU6Om11bF9hZGRlKHNlbGYsIHksIHopCi0tICAgICAgICAgICAgfQotLSAgICAgICAg fQotLQotLSAgICAgICAgdGVzdF9pZiF7Ci0tICAgICAgICAgICAgJHRlc3RfdHQ6Ci0tICAgICAg ICAgICAgcGFzdGU6Oml0ZW0hIHsKLS0gICAgICAgICAgICAgICAgcHViIG1vZCBbPCRpZCBfbWF0 aF9tdWxfYWRkZT5dIHsKLS0gICAgICAgICAgICAgICAgICAgIHVzZSBzdXBlcjo6KjsKLS0gICAg ICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0 ZXN0KV0gI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVz dCldCi0tICAgICAgICAgICAgICAgICAgICBmbiBtdWxfYWRkZSgpIHsKLS0gICAgICAgICAgICAg ICAgICAgICAgICBsZXQgeiA9ICRpZDo6c3BsYXQoMCBhcyAkZWxlbV90eSk7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgbGV0IG8gPSAkaWQ6OnNwbGF0KDEgYXMgJGVsZW1fdHkpOwotLSAgICAg ICAgICAgICAgICAgICAgICAgIGxldCB0ID0gJGlkOjpzcGxhdCgyIGFzICRlbGVtX3R5KTsKLS0g ICAgICAgICAgICAgICAgICAgICAgICBsZXQgdDMgPSAkaWQ6OnNwbGF0KDMgYXMgJGVsZW1fdHkp OwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBmID0gJGlkOjpzcGxhdCg0IGFzICRlbGVt X3R5KTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHosIHoubXVsX2Fk ZGUoeiwgeikpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEobywgby5tdWxf YWRkZShvLCB6KSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvLCBvLm11 bF9hZGRlKHosIG8pKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG8sIHou bXVsX2FkZGUobywgbykpOwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEo dCwgby5tdWxfYWRkZShvLCBvKSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2Vx ISh0LCBvLm11bF9hZGRlKHQsIHopKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRf ZXEhKHQsIHQubXVsX2FkZGUobywgeikpOwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIGFz c2VydF9lcSEoZiwgdC5tdWxfYWRkZSh0LCB6KSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAg YXNzZXJ0X2VxIShmLCB0Lm11bF9hZGRlKG8sIHQpKTsKLS0gICAgICAgICAgICAgICAgICAgICAg ICBhc3NlcnRfZXEhKHQzLCB0Lm11bF9hZGRlKG8sIG8pKTsKLS0gICAgICAgICAgICAgICAgICAg IH0KLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAg fTsKLS19Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBp L21hdGgvZmxvYXQvcG93Zi5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2Fw aS9tYXRoL2Zsb2F0L3Bvd2YucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQv c3JjL2FwaS9tYXRoL2Zsb2F0L3Bvd2YucnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAg KzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9tYXRoL2Zs b2F0L3Bvd2YucnMJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDM2 ICswLDAgQEAKLS0vLyEgSW1wbGVtZW50cyB2ZXJ0aWNhbCAobGFuZS13aXNlKSBmbG9hdGluZy1w b2ludCBgcG93ZmAuCi0tCi0tbWFjcm9fcnVsZXMhIGltcGxfbWF0aF9mbG9hdF9wb3dmIHsKLS0g ICAgKFskZWxlbV90eTppZGVudDsgJGVsZW1fY291bnQ6ZXhwcl06ICRpZDppZGVudCB8ICR0ZXN0 X3R0OnR0KSA9PiB7Ci0tICAgICAgICBpbXBsICRpZCB7Ci0tICAgICAgICAgICAgLy8vIFJhaXNl cyBgc2VsZmAgbnVtYmVyIHRvIHRoZSBmbG9hdGluZyBwb2ludCBwb3dlciBvZiBgeGAuCi0tICAg ICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgcHViIGZuIHBvd2Yoc2VsZiwgeDogU2Vs ZikgLT4gU2VsZiB7Ci0tICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6Y29kZWdlbjo6bWF0aDo6 ZmxvYXQ6OnBvd2Y6OlBvd2Y7Ci0tICAgICAgICAgICAgICAgIFBvd2Y6OnBvd2Yoc2VsZiwgeCkK LS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tCi0tICAgICAgICB0ZXN0X2lmIXsKLS0gICAg ICAgICAgICAkdGVzdF90dDoKLS0gICAgICAgICAgICBwYXN0ZTo6aXRlbSEgewotLSAgICAgICAg ICAgICAgICBwdWIgbW9kIFs8JGlkIF9tYXRoX3Bvd2Y+XSB7Ci0tICAgICAgICAgICAgICAgICAg ICB1c2Ugc3VwZXI6Oio7Ci0tICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJn ZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2Fz bTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQotLSAgICAgICAgICAgICAgICAgICAgZm4gcG93Zigp IHsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgeiA9ICRpZDo6c3BsYXQoMCBhcyAkZWxl bV90eSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG8gPSAkaWQ6OnNwbGF0KDEgYXMg JGVsZW1fdHkpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ID0gJGlkOjpzcGxhdCgy IGFzICRlbGVtX3R5KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG8sIG8u cG93Zih6KSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvLCB0LnBvd2Yo eikpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEobywgby5wb3dmKG8pKTsK LS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQsIHQucG93ZihvKSk7Ci0tCi0t ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGYgPSAkaWQ6OnNwbGF0KDQgYXMgJGVsZW1fdHkp OwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoZiwgdC5wb3dmKHQpKTsKLS0g ICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgIH0K LS0gICAgICAgIH0KLS0gICAgfTsKLS19Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9w YWNrZWRfc2ltZC9zcmMvYXBpL21hdGgvZmxvYXQvcmVjcHJlLnJzIGIvdGhpcmRfcGFydHkvcnVz dC9wYWNrZWRfc2ltZC9zcmMvYXBpL21hdGgvZmxvYXQvcmVjcHJlLnJzCi0tLS0gYS90aGlyZF9w YXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvbWF0aC9mbG9hdC9yZWNwcmUucnMJMjAyNS0w NC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFj a2VkX3NpbWQvc3JjL2FwaS9tYXRoL2Zsb2F0L3JlY3ByZS5ycwkxOTcwLTAxLTAxIDAzOjAwOjAw LjAwMDAwMDAwMCArMDMwMAotQEAgLTEsMzYgKzAsMCBAQAotLS8vISBJbXBsZW1lbnRzIHZlcnRp Y2FsIChsYW5lLXdpc2UpIGZsb2F0aW5nLXBvaW50IGByZWNwcmVgLgotLQotLW1hY3JvX3J1bGVz ISBpbXBsX21hdGhfZmxvYXRfcmVjcHJlIHsKLS0gICAgKFskZWxlbV90eTppZGVudDsgJGVsZW1f Y291bnQ6ZXhwcl06ICRpZDppZGVudCB8ICR0ZXN0X3R0OnR0KSA9PiB7Ci0tICAgICAgICBpbXBs ICRpZCB7Ci0tICAgICAgICAgICAgLy8vIFJlY2lwcm9jYWwgZXN0aW1hdGU6IGB+PSAxLiAvIHNl bGZgLgotLSAgICAgICAgICAgIC8vLwotLSAgICAgICAgICAgIC8vLyBGSVhNRTogVGhlIHByZWNp c2lvbiBvZiB0aGUgZXN0aW1hdGUgaXMgY3VycmVudGx5IHVuc3BlY2lmaWVkLgotLSAgICAgICAg ICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIHB1YiBmbiByZWNwcmUoc2VsZikgLT4gU2VsZiB7 Ci0tICAgICAgICAgICAgICAgICRpZDo6c3BsYXQoMS4pIC8gc2VsZgotLSAgICAgICAgICAgIH0K LS0gICAgICAgIH0KLS0KLS0gICAgICAgIHRlc3RfaWYhewotLSAgICAgICAgICAgICR0ZXN0X3R0 OgotLSAgICAgICAgICAgIHBhc3RlOjppdGVtISB7Ci0tICAgICAgICAgICAgICAgIHB1YiBtb2Qg WzwkaWQgX21hdGhfcmVjcHJlPl0gewotLSAgICAgICAgICAgICAgICAgICAgdXNlIHN1cGVyOjoq OwotLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2Fz bTMyIiksIHRlc3QpXSAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmlu ZGdlbl90ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgIGZuIHJlY3ByZSgpIHsKLS0gICAgICAg ICAgICAgICAgICAgICAgICBsZXQgdG9sID0gJGlkOjpzcGxhdCgyLjRlLTQgYXMgJGVsZW1fdHkp OwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBvID0gJGlkOjpzcGxhdCgxIGFzICRlbGVt X3R5KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgZXJyb3IgPSAobyAtIG8ucmVjcHJl KCkpLmFicygpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCEoZXJyb3IubGUodG9s KS5hbGwoKSk7Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHQgPSAkaWQ6OnNwbGF0 KDIgYXMgJGVsZW1fdHkpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBlID0gMC41Owot LSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBlcnJvciA9IChlIC0gdC5yZWNwcmUoKSkuYWJz KCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IShlcnJvci5sZSh0b2wpLmFsbCgp KTsKLS0gICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAg ICAgIH0KLS0gICAgICAgIH0KLS0gICAgfTsKLS19Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkv cnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL21hdGgvZmxvYXQvcnNxcnRlLnJzIGIvdGhpcmRfcGFy dHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL21hdGgvZmxvYXQvcnNxcnRlLnJzCi0tLS0gYS90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvbWF0aC9mbG9hdC9yc3FydGUucnMJ MjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1 c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9tYXRoL2Zsb2F0L3JzcXJ0ZS5ycwkxOTcwLTAxLTAxIDAz OjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsNDAgKzAsMCBAQAotLS8vISBJbXBsZW1lbnRz IHZlcnRpY2FsIChsYW5lLXdpc2UpIGZsb2F0aW5nLXBvaW50IGByc3FydGVgLgotLQotLW1hY3Jv X3J1bGVzISBpbXBsX21hdGhfZmxvYXRfcnNxcnRlIHsKLS0gICAgKFskZWxlbV90eTppZGVudDsg JGVsZW1fY291bnQ6ZXhwcl06ICRpZDppZGVudCB8ICR0ZXN0X3R0OnR0KSA9PiB7Ci0tICAgICAg ICBpbXBsICRpZCB7Ci0tICAgICAgICAgICAgLy8vIFJlY2lwcm9jYWwgc3F1YXJlLXJvb3QgZXN0 aW1hdGU6IGB+PSAxLiAvIHNlbGYuc3FydCgpYC4KLS0gICAgICAgICAgICAvLy8KLS0gICAgICAg ICAgICAvLy8gRklYTUU6IFRoZSBwcmVjaXNpb24gb2YgdGhlIGVzdGltYXRlIGlzIGN1cnJlbnRs eSB1bnNwZWNpZmllZC4KLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBwdWIg Zm4gcnNxcnRlKHNlbGYpIC0+IFNlbGYgewotLSAgICAgICAgICAgICAgICB1bnNhZmUgewotLSAg ICAgICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpsbHZtOjpzaW1kX2ZzcXJ0OwotLSAgICAgICAg ICAgICAgICAgICAgJGlkOjpzcGxhdCgxLikgLyBTaW1kKHNpbWRfZnNxcnQoc2VsZi4wKSkKLS0g ICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0KLS0gICAgICAg IHRlc3RfaWYhewotLSAgICAgICAgICAgICR0ZXN0X3R0OgotLSAgICAgICAgICAgIHBhc3RlOjpp dGVtISB7Ci0tICAgICAgICAgICAgICAgIHB1YiBtb2QgWzwkaWQgX21hdGhfcnNxcnRlPl0gewot LSAgICAgICAgICAgICAgICAgICAgdXNlIHN1cGVyOjoqOwotLSAgICAgICAgICAgICAgICAgICAg I1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXSAjW2NmZ19hdHRy KHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KLS0gICAgICAgICAg ICAgICAgICAgIGZuIHJzcXJ0ZSgpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICB1c2UgY3Jh dGU6OiRlbGVtX3R5Ojpjb25zdHM6OlNRUlRfMjsKLS0gICAgICAgICAgICAgICAgICAgICAgICBs ZXQgdG9sID0gJGlkOjpzcGxhdCgyLjRlLTQgYXMgJGVsZW1fdHkpOwotLSAgICAgICAgICAgICAg ICAgICAgICAgIGxldCBvID0gJGlkOjpzcGxhdCgxIGFzICRlbGVtX3R5KTsKLS0gICAgICAgICAg ICAgICAgICAgICAgICBsZXQgZXJyb3IgPSAobyAtIG8ucnNxcnRlKCkpLmFicygpOwotLSAgICAg ICAgICAgICAgICAgICAgICAgIGFzc2VydCEoZXJyb3IubGUodG9sKS5hbGwoKSk7Ci0tCi0tICAg ICAgICAgICAgICAgICAgICAgICAgbGV0IHQgPSAkaWQ6OnNwbGF0KDIgYXMgJGVsZW1fdHkpOwot LSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBlID0gMS4gLyBTUVJUXzI7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgbGV0IGVycm9yID0gKGUgLSB0LnJzcXJ0ZSgpKS5hYnMoKTsKLS0gICAg ICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKGVycm9yLmxlKHRvbCkuYWxsKCkpOwotLSAgICAg ICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgfQotLSAg ICAgICAgfQotLSAgICB9OwotLX0KLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tl ZF9zaW1kL3NyYy9hcGkvbWF0aC9mbG9hdC9zaW4ucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tl ZF9zaW1kL3NyYy9hcGkvbWF0aC9mbG9hdC9zaW4ucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3Qv cGFja2VkX3NpbWQvc3JjL2FwaS9tYXRoL2Zsb2F0L3Npbi5ycwkyMDI1LTA0LTIwIDE5OjI4OjEz LjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMv YXBpL21hdGgvZmxvYXQvc2luLnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAw Ci1AQCAtMSw1MCArMCwwIEBACi0tLy8hIEltcGxlbWVudHMgdmVydGljYWwgKGxhbmUtd2lzZSkg ZmxvYXRpbmctcG9pbnQgYHNpbmAuCi0tCi0tbWFjcm9fcnVsZXMhIGltcGxfbWF0aF9mbG9hdF9z aW4gewotLSAgICAoWyRlbGVtX3R5OmlkZW50OyAkZWxlbV9jb3VudDpleHByXTogJGlkOmlkZW50 IHwgJHRlc3RfdHQ6dHQpID0+IHsKLS0gICAgICAgIGltcGwgJGlkIHsKLS0gICAgICAgICAgICAv Ly8gU2luZS4KLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBwdWIgZm4gc2lu KHNlbGYpIC0+IFNlbGYgewotLSAgICAgICAgICAgICAgICB1c2UgY3JhdGU6OmNvZGVnZW46Om1h dGg6OmZsb2F0OjpzaW46OlNpbjsKLS0gICAgICAgICAgICAgICAgU2luOjpzaW4oc2VsZikKLS0g ICAgICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgLy8vIFNpbmUgb2YgYHNlbGYgKiBQSWAuCi0t ICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgcHViIGZuIHNpbl9waShzZWxmKSAt PiBTZWxmIHsKLS0gICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpjb2RlZ2VuOjptYXRoOjpmbG9h dDo6c2luX3BpOjpTaW5QaTsKLS0gICAgICAgICAgICAgICAgU2luUGk6OnNpbl9waShzZWxmKQot LSAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAvLy8gU2luZSBhbmQgY29zaW5lIG9mIGBz ZWxmICogUElgLgotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIHB1YiBmbiBz aW5fY29zX3BpKHNlbGYpIC0+IChTZWxmLCBTZWxmKSB7Ci0tICAgICAgICAgICAgICAgIHVzZSBj cmF0ZTo6Y29kZWdlbjo6bWF0aDo6ZmxvYXQ6OnNpbl9jb3NfcGk6OlNpbkNvc1BpOwotLSAgICAg ICAgICAgICAgICBTaW5Db3NQaTo6c2luX2Nvc19waShzZWxmKQotLSAgICAgICAgICAgIH0KLS0g ICAgICAgIH0KLS0KLS0gICAgICAgIHRlc3RfaWYhewotLSAgICAgICAgICAgICR0ZXN0X3R0Ogot LSAgICAgICAgICAgIHBhc3RlOjppdGVtISB7Ci0tICAgICAgICAgICAgICAgIHB1YiBtb2QgWzwk aWQgX21hdGhfc2luPl0gewotLSAgICAgICAgICAgICAgICAgICAgdXNlIHN1cGVyOjoqOwotLSAg ICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiks IHRlc3QpXSAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90 ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgIGZuIHNpbigpIHsKLS0gICAgICAgICAgICAgICAg ICAgICAgICB1c2UgY3JhdGU6OiRlbGVtX3R5Ojpjb25zdHM6OlBJOwotLSAgICAgICAgICAgICAg ICAgICAgICAgIGxldCB6ID0gJGlkOjpzcGxhdCgwIGFzICRlbGVtX3R5KTsKLS0gICAgICAgICAg ICAgICAgICAgICAgICBsZXQgcCA9ICRpZDo6c3BsYXQoUEkgYXMgJGVsZW1fdHkpOwotLSAgICAg ICAgICAgICAgICAgICAgICAgIGxldCBwaCA9ICRpZDo6c3BsYXQoUEkgYXMgJGVsZW1fdHkgLyAy Lik7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG9fciA9ICRpZDo6c3BsYXQoKFBJIGFz ICRlbGVtX3R5IC8gMi4pLnNpbigpKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgel9y ID0gJGlkOjpzcGxhdCgoUEkgYXMgJGVsZW1fdHkpLnNpbigpKTsKLS0KLS0gICAgICAgICAgICAg ICAgICAgICAgICBhc3NlcnRfZXEhKHosIHouc2luKCkpOwotLSAgICAgICAgICAgICAgICAgICAg ICAgIGFzc2VydF9lcSEob19yLCBwaC5zaW4oKSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAg YXNzZXJ0X2VxISh6X3IsIHAuc2luKCkpOwotLSAgICAgICAgICAgICAgICAgICAgfQotLSAgICAg ICAgICAgICAgICB9Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICB9OwotLX0KLWRp ZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvbWF0aC9mbG9h dC9zcXJ0LnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL21hdGgvZmxv YXQvc3FydC5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL21h dGgvZmxvYXQvc3FydC5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysr IGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL21hdGgvZmxvYXQvc3FydC5y cwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsMzUgKzAsMCBAQAot LS8vISBJbXBsZW1lbnRzIHZlcnRpY2FsIChsYW5lLXdpc2UpIGZsb2F0aW5nLXBvaW50IGBzcXJ0 YC4KLS0KLS1tYWNyb19ydWxlcyEgaW1wbF9tYXRoX2Zsb2F0X3NxcnQgewotLSAgICAoWyRlbGVt X3R5OmlkZW50OyAkZWxlbV9jb3VudDpleHByXTogJGlkOmlkZW50IHwgJHRlc3RfdHQ6dHQpID0+ IHsKLS0gICAgICAgIGltcGwgJGlkIHsKLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAg ICAgICBwdWIgZm4gc3FydChzZWxmKSAtPiBTZWxmIHsKLS0gICAgICAgICAgICAgICAgdXNlIGNy YXRlOjpjb2RlZ2VuOjptYXRoOjpmbG9hdDo6c3FydDo6U3FydDsKLS0gICAgICAgICAgICAgICAg U3FydDo6c3FydChzZWxmKQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0KLS0gICAgICAg IHRlc3RfaWYhewotLSAgICAgICAgICAgICR0ZXN0X3R0OgotLSAgICAgICAgICAgIHBhc3RlOjpp dGVtISB7Ci0tICAgICAgICAgICAgICAgIHB1YiBtb2QgWzwkaWQgX21hdGhfc3FydD5dIHsKLS0g ICAgICAgICAgICAgICAgICAgIHVzZSBzdXBlcjo6KjsKLS0gICAgICAgICAgICAgICAgICAgICNb Y2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0gI1tjZmdfYXR0cih0 YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCi0tICAgICAgICAgICAg ICAgICAgICBmbiBzcXJ0KCkgewotLSAgICAgICAgICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6 JGVsZW1fdHk6OmNvbnN0czo6U1FSVF8yOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB6 ID0gJGlkOjpzcGxhdCgwIGFzICRlbGVtX3R5KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBs ZXQgbyA9ICRpZDo6c3BsYXQoMSBhcyAkZWxlbV90eSk7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgYXNzZXJ0X2VxISh6LCB6LnNxcnQoKSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNz ZXJ0X2VxIShvLCBvLnNxcnQoKSk7Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHQg PSAkaWQ6OnNwbGF0KDIgYXMgJGVsZW1fdHkpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxl dCBlID0gJGlkOjpzcGxhdChTUVJUXzIpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2Vy dF9lcSEoZSwgdC5zcXJ0KCkpOwotLQotLSAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAg ICAgICAgICB9Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICB9OwotLX0KLWRpZmYg LU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvbWF0aC9mbG9hdC9z cXJ0ZS5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9tYXRoL2Zsb2F0 L3NxcnRlLnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvbWF0 aC9mbG9hdC9zcXJ0ZS5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysr IGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL21hdGgvZmxvYXQvc3FydGUu cnMJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDQ0ICswLDAgQEAK LS0vLyEgSW1wbGVtZW50cyB2ZXJ0aWNhbCAobGFuZS13aXNlKSBmbG9hdGluZy1wb2ludCBgc3Fy dGVgLgotLQotLW1hY3JvX3J1bGVzISBpbXBsX21hdGhfZmxvYXRfc3FydGUgewotLSAgICAoWyRl bGVtX3R5OmlkZW50OyAkZWxlbV9jb3VudDpleHByXTogJGlkOmlkZW50IHwgJHRlc3RfdHQ6dHQp ID0+IHsKLS0gICAgICAgIGltcGwgJGlkIHsKLS0gICAgICAgICAgICAvLy8gU3F1YXJlLXJvb3Qg ZXN0aW1hdGUuCi0tICAgICAgICAgICAgLy8vCi0tICAgICAgICAgICAgLy8vIEZJWE1FOiBUaGUg cHJlY2lzaW9uIG9mIHRoZSBlc3RpbWF0ZSBpcyBjdXJyZW50bHkgdW5zcGVjaWZpZWQuCi0tICAg ICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgcHViIGZuIHNxcnRlKHNlbGYpIC0+IFNl bGYgewotLSAgICAgICAgICAgICAgICB1c2UgY3JhdGU6OmNvZGVnZW46Om1hdGg6OmZsb2F0Ojpz cXJ0ZTo6U3FydGU7Ci0tICAgICAgICAgICAgICAgIFNxcnRlOjpzcXJ0ZShzZWxmKQotLSAgICAg ICAgICAgIH0KLS0gICAgICAgIH0KLS0KLS0gICAgICAgIHRlc3RfaWYhewotLSAgICAgICAgICAg ICR0ZXN0X3R0OgotLSAgICAgICAgICAgIHBhc3RlOjppdGVtISB7Ci0tICAgICAgICAgICAgICAg IHB1YiBtb2QgWzwkaWQgX21hdGhfc3FydGU+XSB7Ci0tICAgICAgICAgICAgICAgICAgICB1c2Ug c3VwZXI6Oio7Ci0tICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJj aCA9ICJ3YXNtMzIiKSwgdGVzdCldICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwg d2FzbV9iaW5kZ2VuX3Rlc3QpXQotLSAgICAgICAgICAgICAgICAgICAgZm4gc3FydGUoKSB7Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgdXNlIGNyYXRlOjokZWxlbV90eTo6Y29uc3RzOjpTUVJU XzI7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRvbCA9ICRpZDo6c3BsYXQoMi40ZS00 IGFzICRlbGVtX3R5KTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgeiA9ICRpZDo6 c3BsYXQoMCBhcyAkZWxlbV90eSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGVycm9y ID0gKHogLSB6LnNxcnRlKCkpLmFicygpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2Vy dCEoZXJyb3IubGUodG9sKS5hbGwoKSk7Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0 IG8gPSAkaWQ6OnNwbGF0KDEgYXMgJGVsZW1fdHkpOwotLSAgICAgICAgICAgICAgICAgICAgICAg IGxldCBlcnJvciA9IChvIC0gby5zcXJ0ZSgpKS5hYnMoKTsKLS0gICAgICAgICAgICAgICAgICAg ICAgICBhc3NlcnQhKGVycm9yLmxlKHRvbCkuYWxsKCkpOwotLQotLSAgICAgICAgICAgICAgICAg ICAgICAgIGxldCB0ID0gJGlkOjpzcGxhdCgyIGFzICRlbGVtX3R5KTsKLS0gICAgICAgICAgICAg ICAgICAgICAgICBsZXQgZSA9ICRpZDo6c3BsYXQoU1FSVF8yIGFzICRlbGVtX3R5KTsKLS0gICAg ICAgICAgICAgICAgICAgICAgICBsZXQgZXJyb3IgPSAoZSAtIHQuc3FydGUoKSkuYWJzKCk7Ci0t Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IShlcnJvci5sZSh0b2wpLmFsbCgpKTsK LS0gICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAg IH0KLS0gICAgICAgIH0KLS0gICAgfTsKLS19Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVz dC9wYWNrZWRfc2ltZC9zcmMvYXBpL21hdGgvZmxvYXQucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3Bh Y2tlZF9zaW1kL3NyYy9hcGkvbWF0aC9mbG9hdC5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9w YWNrZWRfc2ltZC9zcmMvYXBpL21hdGgvZmxvYXQucnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAw MDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9t YXRoL2Zsb2F0LnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSw2 MSArMCwwIEBACi0tLy8hIEltcGxlbWVudHMgdmVydGljYWwgZmxvYXRpbmctcG9pbnQgbWF0aCBv cGVyYXRpb25zLgotLQotLSNbbWFjcm9fdXNlXQotLW1vZCBhYnM7Ci0tCi0tI1ttYWNyb191c2Vd Ci0tbW9kIGNvbnN0czsKLS0KLS0jW21hY3JvX3VzZV0KLS1tb2QgY29zOwotLQotLSNbbWFjcm9f dXNlXQotLW1vZCBleHA7Ci0tCi0tI1ttYWNyb191c2VdCi0tbW9kIHBvd2Y7Ci0tCi0tI1ttYWNy b191c2VdCi0tbW9kIGxuOwotLQotLSNbbWFjcm9fdXNlXQotLW1vZCBtdWxfYWRkOwotLQotLSNb bWFjcm9fdXNlXQotLW1vZCBtdWxfYWRkZTsKLS0KLS0jW21hY3JvX3VzZV0KLS1tb2QgcmVjcHJl OwotLQotLSNbbWFjcm9fdXNlXQotLW1vZCByc3FydGU7Ci0tCi0tI1ttYWNyb191c2VdCi0tbW9k IHNpbjsKLS0KLS0jW21hY3JvX3VzZV0KLS1tb2Qgc3FydDsKLS0KLS0jW21hY3JvX3VzZV0KLS1t b2Qgc3FydGU7Ci0tCi0tbWFjcm9fcnVsZXMhIGltcGxfZmxvYXRfY2F0ZWdvcnkgewotLSAgICAo WyRlbGVtX3R5OmlkZW50OyAkZWxlbV9jb3VudDpleHByXTogJGlkOmlkZW50LCAkbWFza190eTpp ZGVudCkgPT4gewotLSAgICAgICAgaW1wbCAkaWQgewotLSAgICAgICAgICAgICNbaW5saW5lXQot LSAgICAgICAgICAgIHB1YiBmbiBpc19uYW4oc2VsZikgLT4gJG1hc2tfdHkgewotLSAgICAgICAg ICAgICAgICBzZWxmLm5lKHNlbGYpCi0tICAgICAgICAgICAgfQotLQotLSAgICAgICAgICAgICNb aW5saW5lXQotLSAgICAgICAgICAgIHB1YiBmbiBpc19pbmZpbml0ZShzZWxmKSAtPiAkbWFza190 eSB7Ci0tICAgICAgICAgICAgICAgIHNlbGYuZXEoU2VsZjo6SU5GSU5JVFkpIHwgc2VsZi5lcShT ZWxmOjpORUdfSU5GSU5JVFkpCi0tICAgICAgICAgICAgfQotLQotLSAgICAgICAgICAgICNbaW5s aW5lXQotLSAgICAgICAgICAgIHB1YiBmbiBpc19maW5pdGUoc2VsZikgLT4gJG1hc2tfdHkgewot LSAgICAgICAgICAgICAgICAhKHNlbGYuaXNfbmFuKCkgfCBzZWxmLmlzX2luZmluaXRlKCkpCi0t ICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICB9OwotLX0KLWRpZmYgLU5yYnUgYS90aGly ZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvbWF0aC5ycyBiL3RoaXJkX3BhcnR5L3J1 c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9tYXRoLnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3Bh Y2tlZF9zaW1kL3NyYy9hcGkvbWF0aC5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCAr MDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL21hdGgucnMJ MTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDQgKzAsMCBAQAotLS8v ISBJbXBsZW1lbnRzIHZlcnRpY2FsIG1hdGggb3BlcmF0aW9ucwotLQotLSNbbWFjcm9fdXNlXQot LW1vZCBmbG9hdDsKLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3Ny Yy9hcGkvbWluaW1hbC9pdWYucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9h cGkvbWluaW1hbC9pdWYucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3Jj L2FwaS9taW5pbWFsL2l1Zi5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAot KysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL21pbmltYWwvaXVmLnJz CTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSwxNjkgKzAsMCBAQAot LS8vISBNaW5pbWFsIEFQSSBvZiBzaWduZWQgaW50ZWdlciwgdW5zaWduZWQgaW50ZWdlciwgYW5k IGZsb2F0aW5nLXBvaW50Ci0tLy8hIHZlY3RvcnMuCi0tCi0tbWFjcm9fcnVsZXMhIGltcGxfbWlu aW1hbF9pdWYgewotLSAgICAoWyRlbGVtX3R5OmlkZW50OyAkZWxlbV9jb3VudDpleHByXTogJGlk OmlkZW50IHwgJGllbGVtX3R5OmlkZW50IHwKLS0gICAgICR0ZXN0X3R0OnR0IHwgJCgkZWxlbV9u YW1lOmlkZW50KSwrIHwgJCgjWyRkb2M6bWV0YV0pKikgPT4gewotLQotLSAgICAgICAgJCgjWyRk b2NdKSoKLS0gICAgICAgIHB1YiB0eXBlICRpZCA9IFNpbWQ8WyRlbGVtX3R5OyAkZWxlbV9jb3Vu dF0+OwotLQotLSAgICAgICAgaW1wbCBzZWFsZWQ6OlNpbWQgZm9yICRpZCB7Ci0tICAgICAgICAg ICAgdHlwZSBFbGVtZW50ID0gJGVsZW1fdHk7Ci0tICAgICAgICAgICAgY29uc3QgTEFORVM6IHVz aXplID0gJGVsZW1fY291bnQ7Ci0tICAgICAgICAgICAgdHlwZSBMYW5lc1R5cGUgPSBbdTMyOyAk ZWxlbV9jb3VudF07Ci0tICAgICAgICB9Ci0tCi0tICAgICAgICBpbXBsICRpZCB7Ci0tICAgICAg ICAgICAgLy8vIENyZWF0ZXMgYSBuZXcgaW5zdGFuY2Ugd2l0aCBlYWNoIHZlY3RvciBlbGVtZW50 cyBpbml0aWFsaXplZAotLSAgICAgICAgICAgIC8vLyB3aXRoIHRoZSBwcm92aWRlZCB2YWx1ZXMu Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgI1thbGxvdyhjbGlwcHk6OnRv b19tYW55X2FyZ3VtZW50cyldCi0tICAgICAgICAgICAgcHViIGNvbnN0IGZuIG5ldygkKCRlbGVt X25hbWU6ICRlbGVtX3R5KSwqKSAtPiBTZWxmIHsKLS0gICAgICAgICAgICAgICAgU2ltZChjb2Rl Z2VuOjokaWQoJCgkZWxlbV9uYW1lIGFzICRpZWxlbV90eSksKikpCi0tICAgICAgICAgICAgfQot LQotLSAgICAgICAgICAgIC8vLyBSZXR1cm5zIHRoZSBudW1iZXIgb2YgdmVjdG9yIGxhbmVzLgot LSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIHB1YiBjb25zdCBmbiBsYW5lcygp IC0+IHVzaXplIHsKLS0gICAgICAgICAgICAgICAgJGVsZW1fY291bnQKLS0gICAgICAgICAgICB9 Ci0tCi0tICAgICAgICAgICAgLy8vIENvbnN0cnVjdHMgYSBuZXcgaW5zdGFuY2Ugd2l0aCBlYWNo IGVsZW1lbnQgaW5pdGlhbGl6ZWQgdG8KLS0gICAgICAgICAgICAvLy8gYHZhbHVlYC4KLS0gICAg ICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBwdWIgY29uc3QgZm4gc3BsYXQodmFsdWU6 ICRlbGVtX3R5KSAtPiBTZWxmIHsKLS0gICAgICAgICAgICAgICAgU2ltZChjb2RlZ2VuOjokaWQo JCh7Ci0tICAgICAgICAgICAgICAgICAgICAjW2FsbG93KG5vbl9jYW1lbF9jYXNlX3R5cGVzLCBk ZWFkX2NvZGUpXQotLSAgICAgICAgICAgICAgICAgICAgc3RydWN0ICRlbGVtX25hbWU7Ci0tICAg ICAgICAgICAgICAgICAgICB2YWx1ZSBhcyAkaWVsZW1fdHkKLS0gICAgICAgICAgICAgICAgfSks KikpCi0tICAgICAgICAgICAgfQotLQotLSAgICAgICAgICAgIC8vLyBFeHRyYWN0cyB0aGUgdmFs dWUgYXQgYGluZGV4YC4KLS0gICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAvLy8gIyBQYW5p Y3MKLS0gICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAvLy8gSWYgYGluZGV4ID49IFNlbGY6 OmxhbmVzKClgLgotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIHB1YiBmbiBl eHRyYWN0KHNlbGYsIGluZGV4OiB1c2l6ZSkgLT4gJGVsZW1fdHkgewotLSAgICAgICAgICAgICAg ICBhc3NlcnQhKGluZGV4IDwgJGVsZW1fY291bnQpOwotLSAgICAgICAgICAgICAgICB1bnNhZmUg eyBzZWxmLmV4dHJhY3RfdW5jaGVja2VkKGluZGV4KSB9Ci0tICAgICAgICAgICAgfQotLQotLSAg ICAgICAgICAgIC8vLyBFeHRyYWN0cyB0aGUgdmFsdWUgYXQgYGluZGV4YC4KLS0gICAgICAgICAg ICAvLy8KLS0gICAgICAgICAgICAvLy8gIyBTYWZldHkKLS0gICAgICAgICAgICAvLy8KLS0gICAg ICAgICAgICAvLy8gSWYgYGluZGV4ID49IFNlbGY6OmxhbmVzKClgIHRoZSBiZWhhdmlvciBpcyB1 bmRlZmluZWQuCi0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgcHViIHVuc2Fm ZSBmbiBleHRyYWN0X3VuY2hlY2tlZChzZWxmLCBpbmRleDogdXNpemUpIC0+ICRlbGVtX3R5IHsK LS0gICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpsbHZtOjpzaW1kX2V4dHJhY3Q7Ci0tICAgICAg ICAgICAgICAgIGxldCBlOiAkaWVsZW1fdHkgPSBzaW1kX2V4dHJhY3Qoc2VsZi4wLCBpbmRleCBh cyB1MzIpOwotLSAgICAgICAgICAgICAgICBlIGFzICRlbGVtX3R5Ci0tICAgICAgICAgICAgfQot LQotLSAgICAgICAgICAgIC8vLyBSZXR1cm5zIGEgbmV3IHZlY3RvciB3aGVyZSB0aGUgdmFsdWUg YXQgYGluZGV4YCBpcyByZXBsYWNlZCBieSBgbmV3X3ZhbHVlYC4KLS0gICAgICAgICAgICAvLy8K LS0gICAgICAgICAgICAvLy8gIyBQYW5pY3MKLS0gICAgICAgICAgICAvLy8KLS0gICAgICAgICAg ICAvLy8gSWYgYGluZGV4ID49IFNlbGY6OmxhbmVzKClgLgotLSAgICAgICAgICAgICNbaW5saW5l XQotLSAgICAgICAgICAgICNbbXVzdF91c2UgPSAicmVwbGFjZSBkb2VzIG5vdCBtb2RpZnkgdGhl IG9yaWdpbmFsIHZhbHVlIC0gXAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgaXQgcmV0dXJu cyBhIG5ldyB2ZWN0b3Igd2l0aCB0aGUgdmFsdWUgYXQgYGluZGV4YCBcCi0tICAgICAgICAgICAg ICAgICAgICAgICAgICByZXBsYWNlZCBieSBgbmV3X3ZhbHVlYGQiCi0tICAgICAgICAgICAgXQot LSAgICAgICAgICAgIHB1YiBmbiByZXBsYWNlKHNlbGYsIGluZGV4OiB1c2l6ZSwgbmV3X3ZhbHVl OiAkZWxlbV90eSkgLT4gU2VsZiB7Ci0tICAgICAgICAgICAgICAgIGFzc2VydCEoaW5kZXggPCAk ZWxlbV9jb3VudCk7Ci0tICAgICAgICAgICAgICAgIHVuc2FmZSB7IHNlbGYucmVwbGFjZV91bmNo ZWNrZWQoaW5kZXgsIG5ld192YWx1ZSkgfQotLSAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAg ICAvLy8gUmV0dXJucyBhIG5ldyB2ZWN0b3Igd2hlcmUgdGhlIHZhbHVlIGF0IGBpbmRleGAgaXMg cmVwbGFjZWQgYnkgYG5ld192YWx1ZWAuCi0tICAgICAgICAgICAgLy8vCi0tICAgICAgICAgICAg Ly8vICMgU2FmZXR5Ci0tICAgICAgICAgICAgLy8vCi0tICAgICAgICAgICAgLy8vIElmIGBpbmRl eCA+PSBTZWxmOjpsYW5lcygpYCB0aGUgYmVoYXZpb3IgaXMgdW5kZWZpbmVkLgotLSAgICAgICAg ICAgICNbaW5saW5lXQotLSAgICAgICAgICAgICNbbXVzdF91c2UgPSAicmVwbGFjZV91bmNoZWNr ZWQgZG9lcyBub3QgbW9kaWZ5IHRoZSBvcmlnaW5hbCB2YWx1ZSAtIFwKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgIGl0IHJldHVybnMgYSBuZXcgdmVjdG9yIHdpdGggdGhlIHZhbHVlIGF0IGBp bmRleGAgXAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwbGFjZWQgYnkgYG5ld192YWx1 ZWBkIgotLSAgICAgICAgICAgIF0KLS0gICAgICAgICAgICBwdWIgdW5zYWZlIGZuIHJlcGxhY2Vf dW5jaGVja2VkKAotLSAgICAgICAgICAgICAgICBzZWxmLAotLSAgICAgICAgICAgICAgICBpbmRl eDogdXNpemUsCi0tICAgICAgICAgICAgICAgIG5ld192YWx1ZTogJGVsZW1fdHksCi0tICAgICAg ICAgICAgKSAtPiBTZWxmIHsKLS0gICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpsbHZtOjpzaW1k X2luc2VydDsKLS0gICAgICAgICAgICAgICAgU2ltZChzaW1kX2luc2VydChzZWxmLjAsIGluZGV4 IGFzIHUzMiwgbmV3X3ZhbHVlIGFzICRpZWxlbV90eSkpCi0tICAgICAgICAgICAgfQotLSAgICAg ICAgfQotLQotLSAgICAgICAgdGVzdF9pZiF7Ci0tICAgICAgICAgICAgJHRlc3RfdHQ6Ci0tICAg ICAgICAgICAgcGFzdGU6Oml0ZW0hIHsKLS0gICAgICAgICAgICAgICAgLy8gQ29tcGFyaXNvbnMg dXNlIGludGVnZXIgY2FzdHMgd2l0aGluIG1hbnRpc3NhXjEgcmFuZ2UuCi0tICAgICAgICAgICAg ICAgICNbYWxsb3coY2xpcHB5OjpmbG9hdF9jbXApXQotLSAgICAgICAgICAgICAgICBwdWIgbW9k IFs8JGlkIF9taW5pbWFsPl0gewotLSAgICAgICAgICAgICAgICAgICAgdXNlIHN1cGVyOjoqOwot LSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMy IiksIHRlc3QpXQotLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9 ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCi0tICAgICAgICAgICAgICAgICAgICBmbiBt aW5pbWFsKCkgewotLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIGxhbmVzOgotLSAgICAgICAg ICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoJGVsZW1fY291bnQsICRpZDo6bGFuZXMoKSk7Ci0t Ci0tICAgICAgICAgICAgICAgICAgICAgICAgLy8gc3BsYXQgYW5kIGV4dHJhY3QgLyBleHRyYWN0 X3VuY2hlY2tlZDoKLS0gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBWQUw6ICRlbGVtX3R5 ID0gNyBhcyAkZWxlbV90eTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBWRUM6ICRp ZCA9ICRpZDo6c3BsYXQoVkFMKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBmb3IgaSBpbiAw Li4kaWQ6OmxhbmVzKCkgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEh KFZBTCwgVkVDLmV4dHJhY3QoaSkpOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3Nl cnRfZXEhKAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVkFMLCB1bnNhZmUgeyBW RUMuZXh0cmFjdF91bmNoZWNrZWQoaSkgfQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAp OwotLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAgICAgICAgICAg ICAvLyByZXBsYWNlIC8gcmVwbGFjZV91bmNoZWNrZWQKLS0gICAgICAgICAgICAgICAgICAgICAg ICBsZXQgbmV3X3ZlYyA9IFZFQy5yZXBsYWNlKDAsIDQyIGFzICRlbGVtX3R5KTsKLS0gICAgICAg ICAgICAgICAgICAgICAgICBmb3IgaSBpbiAwLi4kaWQ6OmxhbmVzKCkgewotLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICBpZiBpID09IDAgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgYXNzZXJ0X2VxISg0MiBhcyAkZWxlbV90eSwgbmV3X3ZlYy5leHRyYWN0KGkpKTsKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLS0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGFzc2VydF9lcSEoVkFMLCBuZXdfdmVjLmV4dHJhY3QoaSkpOwotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICAgICAgfQotLSAg ICAgICAgICAgICAgICAgICAgICAgIGxldCBuZXdfdmVjID0gdW5zYWZlIHsKLS0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgVkVDLnJlcGxhY2VfdW5jaGVja2VkKDAsIDQyIGFzICRlbGVtX3R5 KQotLSAgICAgICAgICAgICAgICAgICAgICAgIH07Ci0tICAgICAgICAgICAgICAgICAgICAgICAg Zm9yIGkgaW4gMC4uJGlkOjpsYW5lcygpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg aWYgaSA9PSAwIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEo NDIgYXMgJGVsZW1fdHksIG5ld192ZWMuZXh0cmFjdChpKSk7Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0gZWxzZSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3Nl cnRfZXEhKFZBTCwgbmV3X3ZlYy5leHRyYWN0KGkpKTsKLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAg IH0KLS0KLS0gICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiB3YXNtLWJpbmRnZW4tdGVzdCBk b2VzIG5vdCBzdXBwb3J0ICNbc2hvdWxkX3BhbmljXQotLSAgICAgICAgICAgICAgICAgICAgLy8g I1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXSAjW2NmZ19hdHRy KHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KLS0gICAgICAgICAg ICAgICAgICAgICNbY2ZnKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSldCi0tICAgICAgICAg ICAgICAgICAgICAjW3Rlc3RdCi0tICAgICAgICAgICAgICAgICAgICAjW3Nob3VsZF9wYW5pY10K LS0gICAgICAgICAgICAgICAgICAgIGZuIGV4dHJhY3RfcGFuaWNfb29iKCkgewotLSAgICAgICAg ICAgICAgICAgICAgICAgIGNvbnN0IFZBTDogJGVsZW1fdHkgPSA3IGFzICRlbGVtX3R5OwotLSAg ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFZFQzogJGlkID0gJGlkOjpzcGxhdChWQUwpOwot LSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBfID0gVkVDLmV4dHJhY3QoJGlkOjpsYW5lcygp KTsKLS0gICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgIC8vIEZJWE1F OiB3YXNtLWJpbmRnZW4tdGVzdCBkb2VzIG5vdCBzdXBwb3J0ICNbc2hvdWxkX3BhbmljXQotLSAg ICAgICAgICAgICAgICAgICAgLy8gI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMy IiksIHRlc3QpXSAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdl bl90ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgICNbY2ZnKG5vdCh0YXJnZXRfYXJjaCA9ICJ3 YXNtMzIiKSldCi0tICAgICAgICAgICAgICAgICAgICAjW3Rlc3RdCi0tICAgICAgICAgICAgICAg ICAgICAjW3Nob3VsZF9wYW5pY10KLS0gICAgICAgICAgICAgICAgICAgIGZuIHJlcGxhY2VfcGFu aWNfb29iKCkgewotLSAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFZBTDogJGVsZW1fdHkg PSA3IGFzICRlbGVtX3R5OwotLSAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFZFQzogJGlk ID0gJGlkOjpzcGxhdChWQUwpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBfID0gVkVD LnJlcGxhY2UoJGlkOjpsYW5lcygpLCA0MiBhcyAkZWxlbV90eSk7Ci0tICAgICAgICAgICAgICAg ICAgICB9Ci0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0t ICAgIH0KLS19Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMv YXBpL21pbmltYWwvbWFzay5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2Fw aS9taW5pbWFsL21hc2sucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3Jj L2FwaS9taW5pbWFsL21hc2sucnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAK LSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9taW5pbWFsL21hc2su cnMJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDE3NiArMCwwIEBA Ci0tLy8hIE1pbmltYWwgQVBJIG9mIG1hc2sgdmVjdG9ycy4KLS0KLS1tYWNyb19ydWxlcyEgaW1w bF9taW5pbWFsX21hc2sgewotLSAgICAoWyRlbGVtX3R5OmlkZW50OyAkZWxlbV9jb3VudDpleHBy XTogJGlkOmlkZW50IHwgJGllbGVtX3R5OmlkZW50Ci0tICAgIHwgJHRlc3RfdHQ6dHQgfCAkKCRl bGVtX25hbWU6aWRlbnQpLCsgfCAkKCNbJGRvYzptZXRhXSkqKSA9PiB7Ci0tICAgICAgICAkKCNb JGRvY10pKgotLSAgICAgICAgcHViIHR5cGUgJGlkID0gU2ltZDxbJGVsZW1fdHk7ICRlbGVtX2Nv dW50XT47Ci0tCi0tICAgICAgICBpbXBsIHNlYWxlZDo6U2ltZCBmb3IgJGlkIHsKLS0gICAgICAg ICAgICB0eXBlIEVsZW1lbnQgPSAkZWxlbV90eTsKLS0gICAgICAgICAgICBjb25zdCBMQU5FUzog dXNpemUgPSAkZWxlbV9jb3VudDsKLS0gICAgICAgICAgICB0eXBlIExhbmVzVHlwZSA9IFt1MzI7 ICRlbGVtX2NvdW50XTsKLS0gICAgICAgIH0KLS0KLS0gICAgICAgIGltcGwgJGlkIHsKLS0gICAg ICAgICAgICAvLy8gQ3JlYXRlcyBhIG5ldyBpbnN0YW5jZSB3aXRoIGVhY2ggdmVjdG9yIGVsZW1l bnRzIGluaXRpYWxpemVkCi0tICAgICAgICAgICAgLy8vIHdpdGggdGhlIHByb3ZpZGVkIHZhbHVl cy4KLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICAjW2FsbG93KGNsaXBweTo6 dG9vX21hbnlfYXJndW1lbnRzKV0KLS0gICAgICAgICAgICBwdWIgY29uc3QgZm4gbmV3KCQoJGVs ZW1fbmFtZTogYm9vbCksKikgLT4gU2VsZiB7Ci0tICAgICAgICAgICAgICAgIFNpbWQoY29kZWdl bjo6JGlkKCQoU2VsZjo6Ym9vbF90b19pbnRlcm5hbCgkZWxlbV9uYW1lKSksKikpCi0tICAgICAg ICAgICAgfQotLQotLSAgICAgICAgICAgIC8vLyBDb252ZXJ0cyBhIGJvb2xlYW4gdHlwZSBpbnRv IHRoZSB0eXBlIG9mIHRoZSB2ZWN0b3IgbGFuZXMuCi0tICAgICAgICAgICAgI1tpbmxpbmVdCi0t ICAgICAgICAgICAgI1thbGxvdyhjbGlwcHk6OmluZGV4aW5nX3NsaWNpbmcpXQotLSAgICAgICAg ICAgIGNvbnN0IGZuIGJvb2xfdG9faW50ZXJuYWwoeDogYm9vbCkgLT4gJGllbGVtX3R5IHsKLS0g ICAgICAgICAgICAgICAgWzAgYXMgJGllbGVtX3R5LCAhKDAgYXMgJGllbGVtX3R5KV1beCBhcyB1 c2l6ZV0KLS0gICAgICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgLy8vIFJldHVybnMgdGhlIG51 bWJlciBvZiB2ZWN0b3IgbGFuZXMuCi0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAg ICAgcHViIGNvbnN0IGZuIGxhbmVzKCkgLT4gdXNpemUgewotLSAgICAgICAgICAgICAgICAkZWxl bV9jb3VudAotLSAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAvLy8gQ29uc3RydWN0cyBh IG5ldyBpbnN0YW5jZSB3aXRoIGVhY2ggZWxlbWVudCBpbml0aWFsaXplZCB0bwotLSAgICAgICAg ICAgIC8vLyBgdmFsdWVgLgotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIHB1 YiBjb25zdCBmbiBzcGxhdCh2YWx1ZTogYm9vbCkgLT4gU2VsZiB7Ci0tICAgICAgICAgICAgICAg IFNpbWQoY29kZWdlbjo6JGlkKCQoewotLSAgICAgICAgICAgICAgICAgICAgI1thbGxvdyhub25f Y2FtZWxfY2FzZV90eXBlcywgZGVhZF9jb2RlKV0KLS0gICAgICAgICAgICAgICAgICAgIHN0cnVj dCAkZWxlbV9uYW1lOwotLSAgICAgICAgICAgICAgICAgICAgU2VsZjo6Ym9vbF90b19pbnRlcm5h bCh2YWx1ZSkKLS0gICAgICAgICAgICAgICAgfSksKikpCi0tICAgICAgICAgICAgfQotLQotLSAg ICAgICAgICAgIC8vLyBFeHRyYWN0cyB0aGUgdmFsdWUgYXQgYGluZGV4YC4KLS0gICAgICAgICAg ICAvLy8KLS0gICAgICAgICAgICAvLy8gIyBQYW5pY3MKLS0gICAgICAgICAgICAvLy8KLS0gICAg ICAgICAgICAvLy8gSWYgYGluZGV4ID49IFNlbGY6OmxhbmVzKClgLgotLSAgICAgICAgICAgICNb aW5saW5lXQotLSAgICAgICAgICAgIHB1YiBmbiBleHRyYWN0KHNlbGYsIGluZGV4OiB1c2l6ZSkg LT4gYm9vbCB7Ci0tICAgICAgICAgICAgICAgIGFzc2VydCEoaW5kZXggPCAkZWxlbV9jb3VudCk7 Ci0tICAgICAgICAgICAgICAgIHVuc2FmZSB7IHNlbGYuZXh0cmFjdF91bmNoZWNrZWQoaW5kZXgp IH0KLS0gICAgICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgLy8vIEV4dHJhY3RzIHRoZSB2YWx1 ZSBhdCBgaW5kZXhgLgotLSAgICAgICAgICAgIC8vLwotLSAgICAgICAgICAgIC8vLyAjIFNhZmV0 eQotLSAgICAgICAgICAgIC8vLwotLSAgICAgICAgICAgIC8vLyBJZiBgaW5kZXggPj0gU2VsZjo6 bGFuZXMoKWAgdGhlIGJlaGF2aW9yIGlzIHVuZGVmaW5lZC4KLS0gICAgICAgICAgICAjW2lubGlu ZV0KLS0gICAgICAgICAgICBwdWIgdW5zYWZlIGZuIGV4dHJhY3RfdW5jaGVja2VkKHNlbGYsIGlu ZGV4OiB1c2l6ZSkgLT4gYm9vbCB7Ci0tICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6bGx2bTo6 c2ltZF9leHRyYWN0OwotLSAgICAgICAgICAgICAgICBsZXQgeDogJGllbGVtX3R5ID0gc2ltZF9l eHRyYWN0KHNlbGYuMCwgaW5kZXggYXMgdTMyKTsKLS0gICAgICAgICAgICAgICAgeCAhPSAwCi0t ICAgICAgICAgICAgfQotLQotLSAgICAgICAgICAgIC8vLyBSZXR1cm5zIGEgbmV3IHZlY3RvciB3 aGVyZSB0aGUgdmFsdWUgYXQgYGluZGV4YCBpcyByZXBsYWNlZCBieQotLSAgICAgICAgICAgIC8v LyBgbmV3X3ZhbHVlYC4KLS0gICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAvLy8gIyBQYW5p Y3MKLS0gICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAvLy8gSWYgYGluZGV4ID49IFNlbGY6 OmxhbmVzKClgLgotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgICNbbXVzdF91 c2UgPSAicmVwbGFjZSBkb2VzIG5vdCBtb2RpZnkgdGhlIG9yaWdpbmFsIHZhbHVlIC0gXAotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgaXQgcmV0dXJucyBhIG5ldyB2ZWN0b3Igd2l0aCB0aGUg dmFsdWUgYXQgYGluZGV4YCBcCi0tICAgICAgICAgICAgICAgICAgICAgICAgICByZXBsYWNlZCBi eSBgbmV3X3ZhbHVlYGQiCi0tICAgICAgICAgICAgXQotLSAgICAgICAgICAgIHB1YiBmbiByZXBs YWNlKHNlbGYsIGluZGV4OiB1c2l6ZSwgbmV3X3ZhbHVlOiBib29sKSAtPiBTZWxmIHsKLS0gICAg ICAgICAgICAgICAgYXNzZXJ0IShpbmRleCA8ICRlbGVtX2NvdW50KTsKLS0gICAgICAgICAgICAg ICAgdW5zYWZlIHsgc2VsZi5yZXBsYWNlX3VuY2hlY2tlZChpbmRleCwgbmV3X3ZhbHVlKSB9Ci0t ICAgICAgICAgICAgfQotLQotLSAgICAgICAgICAgIC8vLyBSZXR1cm5zIGEgbmV3IHZlY3RvciB3 aGVyZSB0aGUgdmFsdWUgYXQgYGluZGV4YCBpcyByZXBsYWNlZCBieQotLSAgICAgICAgICAgIC8v LyBgbmV3X3ZhbHVlYC4KLS0gICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAvLy8gIyBTYWZl dHkKLS0gICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAvLy8gSWYgYGluZGV4ID49IFNlbGY6 OmxhbmVzKClgIHRoZSBiZWhhdmlvciBpcyB1bmRlZmluZWQuCi0tICAgICAgICAgICAgI1tpbmxp bmVdCi0tICAgICAgICAgICAgI1ttdXN0X3VzZSA9ICJyZXBsYWNlX3VuY2hlY2tlZCBkb2VzIG5v dCBtb2RpZnkgdGhlIG9yaWdpbmFsIHZhbHVlIC0gXAotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgaXQgcmV0dXJucyBhIG5ldyB2ZWN0b3Igd2l0aCB0aGUgdmFsdWUgYXQgYGluZGV4YCBcCi0t ICAgICAgICAgICAgICAgICAgICAgICAgICByZXBsYWNlZCBieSBgbmV3X3ZhbHVlYGQiCi0tICAg ICAgICAgICAgXQotLSAgICAgICAgICAgIHB1YiB1bnNhZmUgZm4gcmVwbGFjZV91bmNoZWNrZWQo Ci0tICAgICAgICAgICAgICAgIHNlbGYsCi0tICAgICAgICAgICAgICAgIGluZGV4OiB1c2l6ZSwK LS0gICAgICAgICAgICAgICAgbmV3X3ZhbHVlOiBib29sLAotLSAgICAgICAgICAgICkgLT4gU2Vs ZiB7Ci0tICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6bGx2bTo6c2ltZF9pbnNlcnQ7Ci0tICAg ICAgICAgICAgICAgIFNpbWQoc2ltZF9pbnNlcnQoc2VsZi4wLCBpbmRleCBhcyB1MzIsCi0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2VsZjo6Ym9vbF90b19pbnRlcm5hbChuZXdf dmFsdWUpKSkKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tCi0tICAgICAgICB0ZXN0X2lm IXsKLS0gICAgICAgICAgICAkdGVzdF90dDoKLS0gICAgICAgICAgICBwYXN0ZTo6aXRlbSEgewot LSAgICAgICAgICAgICAgICBwdWIgbW9kIFs8JGlkIF9taW5pbWFsPl0gewotLSAgICAgICAgICAg ICAgICAgICAgdXNlIHN1cGVyOjoqOwotLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cihu b3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXQotLSAgICAgICAgICAgICAgICAgICAg I1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCi0t ICAgICAgICAgICAgICAgICAgICBmbiBtaW5pbWFsKCkgewotLSAgICAgICAgICAgICAgICAgICAg ICAgIC8vIFRPRE86IHRlc3QgbmV3Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgLy8gbGFu ZXM6Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISgkZWxlbV9jb3VudCwgJGlk OjpsYW5lcygpKTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAvLyBzcGxhdCBhbmQgZXh0 cmFjdCAvIGV4dHJhY3RfdW5jaGVja2VkOgotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2 ZWMgPSAkaWQ6OnNwbGF0KHRydWUpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGZvciBpIGlu IDAuLiRpZDo6bGFuZXMoKSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9l cSEodHJ1ZSwgdmVjLmV4dHJhY3QoaSkpOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBh c3NlcnRfZXEhKHRydWUsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg dW5zYWZlIHsgdmVjLmV4dHJhY3RfdW5jaGVja2VkKGkpIH0KLS0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0tCi0tICAgICAgICAgICAg ICAgICAgICAgICAgLy8gcmVwbGFjZSAvIHJlcGxhY2VfdW5jaGVja2VkCi0tICAgICAgICAgICAg ICAgICAgICAgICAgbGV0IG5ld192ZWMgPSB2ZWMucmVwbGFjZSgwLCBmYWxzZSk7Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgZm9yIGkgaW4gMC4uJGlkOjpsYW5lcygpIHsKLS0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgaWYgaSA9PSAwIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGFzc2VydF9lcSEoZmFsc2UsIG5ld192ZWMuZXh0cmFjdChpKSk7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBhc3NlcnRfZXEhKHRydWUsIG5ld192ZWMuZXh0cmFjdChpKSk7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgbGV0IG5ld192ZWMgPSB1bnNhZmUgewotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICB2ZWMucmVwbGFjZV91bmNoZWNrZWQoMCwgZmFsc2UpCi0tICAgICAgICAgICAg ICAgICAgICAgICAgfTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBmb3IgaSBpbiAwLi4kaWQ6 OmxhbmVzKCkgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBpID09IDAgewotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShmYWxzZSwgbmV3X3ZlYy5l eHRyYWN0KGkpKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodHJ1ZSwgbmV3X3ZlYy5leHRy YWN0KGkpKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAg ICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAgICAg ICAgIC8vIEZJWE1FOiB3YXNtLWJpbmRnZW4tdGVzdCBkb2VzIG5vdCBzdXBwb3J0ICNbc2hvdWxk X3BhbmljXQotLSAgICAgICAgICAgICAgICAgICAgLy8gI1tjZmdfYXR0cihub3QodGFyZ2V0X2Fy Y2ggPSAid2FzbTMyIiksIHRlc3QpXQotLSAgICAgICAgICAgICAgICAgICAgLy8gI1tjZmdfYXR0 cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCi0tICAgICAgICAg ICAgICAgICAgICAjW2NmZyhub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIikpXQotLSAgICAgICAg ICAgICAgICAgICAgI1t0ZXN0XQotLSAgICAgICAgICAgICAgICAgICAgI1tzaG91bGRfcGFuaWNd Ci0tICAgICAgICAgICAgICAgICAgICBmbiBleHRyYWN0X3BhbmljX29vYigpIHsKLS0gICAgICAg ICAgICAgICAgICAgICAgICBsZXQgdmVjID0gJGlkOjpzcGxhdChmYWxzZSk7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgbGV0IF8gPSB2ZWMuZXh0cmFjdCgkaWQ6OmxhbmVzKCkpOwotLSAgICAg ICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IHdhc20tYmlu ZGdlbi10ZXN0IGRvZXMgbm90IHN1cHBvcnQgI1tzaG91bGRfcGFuaWNdCi0tICAgICAgICAgICAg ICAgICAgICAvLyAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCld Ci0tICAgICAgICAgICAgICAgICAgICAvLyAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20z MiIsIHdhc21fYmluZGdlbl90ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgICNbY2ZnKG5vdCh0 YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSldCi0tICAgICAgICAgICAgICAgICAgICAjW3Rlc3RdCi0t ICAgICAgICAgICAgICAgICAgICAjW3Nob3VsZF9wYW5pY10KLS0gICAgICAgICAgICAgICAgICAg IGZuIHJlcGxhY2VfcGFuaWNfb29iKCkgewotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2 ZWMgPSAkaWQ6OnNwbGF0KGZhbHNlKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgXyA9 IHZlYy5yZXBsYWNlKCRpZDo6bGFuZXMoKSwgdHJ1ZSk7Ci0tICAgICAgICAgICAgICAgICAgICB9 Ci0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgIH0K LS19Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL21p bmltYWwvcHRyLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL21pbmlt YWwvcHRyLnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvbWlu aW1hbC9wdHIucnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3Ro aXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9taW5pbWFsL3B0ci5ycwkxOTcwLTAx LTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsMTM3MyArMCwwIEBACi0tLy8hIE1p bmltYWwgQVBJIG9mIHBvaW50ZXIgdmVjdG9ycy4KLS0KLS1tYWNyb19ydWxlcyEgaW1wbF9taW5p bWFsX3AgewotLSAgICAoWyRlbGVtX3R5OnR5OyAkZWxlbV9jb3VudDpleHByXTogJGlkOmlkZW50 LCAkbWFza190eTppZGVudCwKLS0gICAgICR1c2l6ZV90eTppZGVudCwgJGlzaXplX3R5OmlkZW50 IHwgJHJlZjppZGVudCB8ICR0ZXN0X3R0OnR0Ci0tICAgICB8ICQoJGVsZW1fbmFtZTppZGVudCks KyB8ICgkdHJ1ZTpleHByLCAkZmFsc2U6ZXhwcikgfAotLSAgICAgJCgjWyRkb2M6bWV0YV0pKikg PT4gewotLQotLSAgICAgICAgJCgjWyRkb2NdKSoKLS0gICAgICAgIHB1YiB0eXBlICRpZDxUPiA9 IFNpbWQ8WyRlbGVtX3R5OyAkZWxlbV9jb3VudF0+OwotLQotLSAgICAgICAgaW1wbDxUPiBzZWFs ZWQ6OlNpbWQgZm9yICRpZDxUPiB7Ci0tICAgICAgICAgICAgdHlwZSBFbGVtZW50ID0gJGVsZW1f dHk7Ci0tICAgICAgICAgICAgY29uc3QgTEFORVM6IHVzaXplID0gJGVsZW1fY291bnQ7Ci0tICAg ICAgICAgICAgdHlwZSBMYW5lc1R5cGUgPSBbdTMyOyAkZWxlbV9jb3VudF07Ci0tICAgICAgICB9 Ci0tCi0tICAgICAgICBpbXBsPFQ+ICRpZDxUPiB7Ci0tICAgICAgICAgICAgLy8vIENyZWF0ZXMg YSBuZXcgaW5zdGFuY2Ugd2l0aCBlYWNoIHZlY3RvciBlbGVtZW50cyBpbml0aWFsaXplZAotLSAg ICAgICAgICAgIC8vLyB3aXRoIHRoZSBwcm92aWRlZCB2YWx1ZXMuCi0tICAgICAgICAgICAgI1tp bmxpbmVdCi0tICAgICAgICAgICAgI1thbGxvdyhjbGlwcHk6OnRvb19tYW55X2FyZ3VtZW50cyld Ci0tICAgICAgICAgICAgcHViIGNvbnN0IGZuIG5ldygkKCRlbGVtX25hbWU6ICRlbGVtX3R5KSwq KSAtPiBTZWxmIHsKLS0gICAgICAgICAgICAgICAgU2ltZChjb2RlZ2VuOjokaWQoJCgkZWxlbV9u YW1lKSwqKSkKLS0gICAgICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgLy8vIFJldHVybnMgdGhl IG51bWJlciBvZiB2ZWN0b3IgbGFuZXMuCi0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAg ICAgICAgcHViIGNvbnN0IGZuIGxhbmVzKCkgLT4gdXNpemUgewotLSAgICAgICAgICAgICAgICAk ZWxlbV9jb3VudAotLSAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAvLy8gQ29uc3RydWN0 cyBhIG5ldyBpbnN0YW5jZSB3aXRoIGVhY2ggZWxlbWVudCBpbml0aWFsaXplZCB0bwotLSAgICAg ICAgICAgIC8vLyBgdmFsdWVgLgotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAg IHB1YiBjb25zdCBmbiBzcGxhdCh2YWx1ZTogJGVsZW1fdHkpIC0+IFNlbGYgewotLSAgICAgICAg ICAgICAgICBTaW1kKGNvZGVnZW46OiRpZCgkKHsKLS0gICAgICAgICAgICAgICAgICAgICNbYWxs b3cobm9uX2NhbWVsX2Nhc2VfdHlwZXMsIGRlYWRfY29kZSldCi0tICAgICAgICAgICAgICAgICAg ICBzdHJ1Y3QgJGVsZW1fbmFtZTsKLS0gICAgICAgICAgICAgICAgICAgIHZhbHVlCi0tICAgICAg ICAgICAgICAgIH0pLCopKQotLSAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAvLy8gQ29u c3RydWN0cyBhIG5ldyBpbnN0YW5jZSB3aXRoIGVhY2ggZWxlbWVudCBpbml0aWFsaXplZCB0bwot LSAgICAgICAgICAgIC8vLyBgbnVsbGAuCi0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAg ICAgICAgcHViIGNvbnN0IGZuIG51bGwoKSAtPiBTZWxmIHsKLS0gICAgICAgICAgICAgICAgU2Vs Zjo6c3BsYXQoY3JhdGU6OnB0cjo6bnVsbF9tdXQoKSBhcyAkZWxlbV90eSkKLS0gICAgICAgICAg ICB9Ci0tCi0tICAgICAgICAgICAgLy8vIFJldHVybnMgYSBtYXNrIHRoYXQgc2VsZWN0cyB0aG9z ZSBsYW5lcyB0aGF0IGNvbnRhaW4gYG51bGxgCi0tICAgICAgICAgICAgLy8vIHBvaW50ZXJzLgot LSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIHB1YiBmbiBpc19udWxsKHNlbGYp IC0+ICRtYXNrX3R5IHsKLS0gICAgICAgICAgICAgICAgc2VsZi5lcShTZWxmOjpudWxsKCkpCi0t ICAgICAgICAgICAgfQotLQotLSAgICAgICAgICAgIC8vLyBFeHRyYWN0cyB0aGUgdmFsdWUgYXQg YGluZGV4YC4KLS0gICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAvLy8gIyBQYW5pY3MKLS0g ICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAvLy8gSWYgYGluZGV4ID49IFNlbGY6OmxhbmVz KClgLgotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIHB1YiBmbiBleHRyYWN0 KHNlbGYsIGluZGV4OiB1c2l6ZSkgLT4gJGVsZW1fdHkgewotLSAgICAgICAgICAgICAgICBhc3Nl cnQhKGluZGV4IDwgJGVsZW1fY291bnQpOwotLSAgICAgICAgICAgICAgICB1bnNhZmUgeyBzZWxm LmV4dHJhY3RfdW5jaGVja2VkKGluZGV4KSB9Ci0tICAgICAgICAgICAgfQotLQotLSAgICAgICAg ICAgIC8vLyBFeHRyYWN0cyB0aGUgdmFsdWUgYXQgYGluZGV4YC4KLS0gICAgICAgICAgICAvLy8K LS0gICAgICAgICAgICAvLy8gIyBTYWZldHkKLS0gICAgICAgICAgICAvLy8KLS0gICAgICAgICAg ICAvLy8gSWYgYGluZGV4ID49IFNlbGY6OmxhbmVzKClgIHRoZSBiZWhhdmlvciBpcyB1bmRlZmlu ZWQuCi0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgcHViIHVuc2FmZSBmbiBl eHRyYWN0X3VuY2hlY2tlZChzZWxmLCBpbmRleDogdXNpemUpIC0+ICRlbGVtX3R5IHsKLS0gICAg ICAgICAgICAgICAgdXNlIGNyYXRlOjpsbHZtOjpzaW1kX2V4dHJhY3Q7Ci0tICAgICAgICAgICAg ICAgIHNpbWRfZXh0cmFjdChzZWxmLjAsIGluZGV4IGFzIHUzMikKLS0gICAgICAgICAgICB9Ci0t Ci0tICAgICAgICAgICAgLy8vIFJldHVybnMgYSBuZXcgdmVjdG9yIHdoZXJlIHRoZSB2YWx1ZSBh dCBgaW5kZXhgIGlzIHJlcGxhY2VkIGJ5Ci0tICAgICAgICAgICAgLy8vIGBuZXdfdmFsdWVgLgot LSAgICAgICAgICAgIC8vLwotLSAgICAgICAgICAgIC8vLyAjIFBhbmljcwotLSAgICAgICAgICAg IC8vLwotLSAgICAgICAgICAgIC8vLyBJZiBgaW5kZXggPj0gU2VsZjo6bGFuZXMoKWAuCi0tICAg ICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgI1ttdXN0X3VzZSA9ICJyZXBsYWNlIGRv ZXMgbm90IG1vZGlmeSB0aGUgb3JpZ2luYWwgdmFsdWUgLSBcCi0tICAgICAgICAgICAgICAgICAg ICAgICAgICBpdCByZXR1cm5zIGEgbmV3IHZlY3RvciB3aXRoIHRoZSB2YWx1ZSBhdCBgaW5kZXhg IFwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxhY2VkIGJ5IGBuZXdfdmFsdWVgZCIK LS0gICAgICAgICAgICBdCi0tICAgICAgICAgICAgI1thbGxvdyhjbGlwcHk6Om5vdF91bnNhZmVf cHRyX2FyZ19kZXJlZildCi0tICAgICAgICAgICAgcHViIGZuIHJlcGxhY2Uoc2VsZiwgaW5kZXg6 IHVzaXplLCBuZXdfdmFsdWU6ICRlbGVtX3R5KSAtPiBTZWxmIHsKLS0gICAgICAgICAgICAgICAg YXNzZXJ0IShpbmRleCA8ICRlbGVtX2NvdW50KTsKLS0gICAgICAgICAgICAgICAgdW5zYWZlIHsg c2VsZi5yZXBsYWNlX3VuY2hlY2tlZChpbmRleCwgbmV3X3ZhbHVlKSB9Ci0tICAgICAgICAgICAg fQotLQotLSAgICAgICAgICAgIC8vLyBSZXR1cm5zIGEgbmV3IHZlY3RvciB3aGVyZSB0aGUgdmFs dWUgYXQgYGluZGV4YCBpcyByZXBsYWNlZCBieSBgbmV3X3ZhbHVlYC4KLS0gICAgICAgICAgICAv Ly8KLS0gICAgICAgICAgICAvLy8gIyBTYWZldHkKLS0gICAgICAgICAgICAvLy8KLS0gICAgICAg ICAgICAvLy8gSWYgYGluZGV4ID49IFNlbGY6OmxhbmVzKClgIHRoZSBiZWhhdmlvciBpcyB1bmRl ZmluZWQuCi0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgI1ttdXN0X3VzZSA9 ICJyZXBsYWNlX3VuY2hlY2tlZCBkb2VzIG5vdCBtb2RpZnkgdGhlIG9yaWdpbmFsIHZhbHVlIC0g XAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgaXQgcmV0dXJucyBhIG5ldyB2ZWN0b3Igd2l0 aCB0aGUgdmFsdWUgYXQgYGluZGV4YCBcCi0tICAgICAgICAgICAgICAgICAgICAgICAgICByZXBs YWNlZCBieSBgbmV3X3ZhbHVlYGQiCi0tICAgICAgICAgICAgXQotLSAgICAgICAgICAgIHB1YiB1 bnNhZmUgZm4gcmVwbGFjZV91bmNoZWNrZWQoCi0tICAgICAgICAgICAgICAgIHNlbGYsCi0tICAg ICAgICAgICAgICAgIGluZGV4OiB1c2l6ZSwKLS0gICAgICAgICAgICAgICAgbmV3X3ZhbHVlOiAk ZWxlbV90eSwKLS0gICAgICAgICAgICApIC0+IFNlbGYgewotLSAgICAgICAgICAgICAgICB1c2Ug Y3JhdGU6Omxsdm06OnNpbWRfaW5zZXJ0OwotLSAgICAgICAgICAgICAgICBTaW1kKHNpbWRfaW5z ZXJ0KHNlbGYuMCwgaW5kZXggYXMgdTMyLCBuZXdfdmFsdWUpKQotLSAgICAgICAgICAgIH0KLS0g ICAgICAgIH0KLS0KLS0KLS0gICAgICAgIHRlc3RfaWYhewotLSAgICAgICAgICAgICR0ZXN0X3R0 OgotLSAgICAgICAgICAgIHBhc3RlOjppdGVtISB7Ci0tICAgICAgICAgICAgICAgIHB1YiBtb2Qg WzwkaWQgX21pbmltYWw+XSB7Ci0tICAgICAgICAgICAgICAgICAgICB1c2Ugc3VwZXI6Oio7Ci0t ICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIi KSwgdGVzdCldCi0tICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0g Indhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgIGZuIG1p bmltYWwoKSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgLy8gbGFuZXM6Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgYXNzZXJ0X2VxISgkZWxlbV9jb3VudCwgJGlkOjo8aTMyPjo6bGFuZXMo KSk7Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgLy8gc3BsYXQgYW5kIGV4dHJhY3QgLyBl eHRyYWN0X3VuY2hlY2tlZDoKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgVkFMNzogPCRp ZDxpMzI+IGFzIHNlYWxlZDo6U2ltZD46OkVsZW1lbnQKLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgPSAkcmVmISg3KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgVkFMNDI6IDwk aWQ8aTMyPiBhcyBzZWFsZWQ6OlNpbWQ+OjpFbGVtZW50Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgID0gJHJlZiEoNDIpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBWRUM6ICRp ZDxpMzI+ID0gJGlkOjpzcGxhdChWQUw3KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBmb3Ig aSBpbiAwLi4kaWQ6OjxpMzI+OjpsYW5lcygpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgYXNzZXJ0X2VxIShWQUw3LCBWRUMuZXh0cmFjdChpKSk7Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGFzc2VydF9lcSEoCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBW QUw3LCB1bnNhZmUgeyBWRUMuZXh0cmFjdF91bmNoZWNrZWQoaSkgfQotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICApOwotLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0KLS0gICAgICAg ICAgICAgICAgICAgICAgICAvLyByZXBsYWNlIC8gcmVwbGFjZV91bmNoZWNrZWQKLS0gICAgICAg ICAgICAgICAgICAgICAgICBsZXQgbmV3X3ZlYyA9IFZFQy5yZXBsYWNlKDAsIFZBTDQyKTsKLS0g ICAgICAgICAgICAgICAgICAgICAgICBmb3IgaSBpbiAwLi4kaWQ6OjxpMzI+OjpsYW5lcygpIHsK LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgaSA9PSAwIHsKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoVkFMNDIsIG5ld192ZWMuZXh0cmFjdChpKSk7 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKFZBTDcsIG5ld192ZWMuZXh0cmFjdChpKSk7Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgICAgICB9 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld192ZWMgPSB1bnNhZmUgewotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICBWRUMucmVwbGFjZV91bmNoZWNrZWQoMCwgVkFMNDIpCi0t ICAgICAgICAgICAgICAgICAgICAgICAgfTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBmb3Ig aSBpbiAwLi4kaWQ6OjxpMzI+OjpsYW5lcygpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgaWYgaSA9PSAwIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9l cSEoVkFMNDIsIG5ld192ZWMuZXh0cmFjdChpKSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH0gZWxzZSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEh KFZBTDcsIG5ld192ZWMuZXh0cmFjdChpKSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0KLS0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgICAgICAgICAg ICAgbGV0IG11dCBuID0gJGlkOjo8aTMyPjo6bnVsbCgpOwotLSAgICAgICAgICAgICAgICAgICAg ICAgIGFzc2VydF9lcSEoCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIG4sCi0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgICRpZDo6PGkzMj46OnNwbGF0KHVuc2FmZSB7IGNyYXRlOjpt ZW06Onplcm9lZCgpIH0pCi0tICAgICAgICAgICAgICAgICAgICAgICAgKTsKLS0gICAgICAgICAg ICAgICAgICAgICAgICBhc3NlcnQhKG4uaXNfbnVsbCgpLmFsbCgpKTsKLS0gICAgICAgICAgICAg ICAgICAgICAgICBuID0gbi5yZXBsYWNlKAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAw LCB1bnNhZmUgeyBjcmF0ZTo6bWVtOjp0cmFuc211dGUoMV9pc2l6ZSkgfQotLSAgICAgICAgICAg ICAgICAgICAgICAgICk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0ISghbi5pc19u dWxsKCkuYWxsKCkpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGlmICRpZDo6PGkzMj46Omxh bmVzKCkgPiAxIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IShuLmlzX251 bGwoKS5hbnkoKSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0ISghbi5pc19udWxsKCkuYW55KCkpOwotLSAgICAg ICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgIH0KLS0KLS0gICAgICAg ICAgICAgICAgICAgIC8vIEZJWE1FOiB3YXNtLWJpbmRnZW4tdGVzdCBkb2VzIG5vdCBzdXBwb3J0 ICNbc2hvdWxkX3BhbmljXQotLSAgICAgICAgICAgICAgICAgICAgLy8gI1tjZmdfYXR0cihub3Qo dGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXQotLSAgICAgICAgICAgICAgICAgICAgLy8g I1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCi0t ICAgICAgICAgICAgICAgICAgICAjW2NmZyhub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIikpXQot LSAgICAgICAgICAgICAgICAgICAgI1t0ZXN0XQotLSAgICAgICAgICAgICAgICAgICAgI1tzaG91 bGRfcGFuaWNdCi0tICAgICAgICAgICAgICAgICAgICBmbiBleHRyYWN0X3BhbmljX29vYigpIHsK LS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgVkFMOiA8JGlkPGkzMj4gYXMgc2VhbGVkOjpT aW1kPjo6RWxlbWVudAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA9ICRyZWYhKDcpOwot LSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBWRUM6ICRpZDxpMzI+ID0gJGlkOjpzcGxhdChW QUwpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBfID0gVkVDLmV4dHJhY3QoJGlkOjo8 aTMyPjo6bGFuZXMoKSk7Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0tCi0tICAgICAgICAgICAg ICAgICAgICAvLyBGSVhNRTogd2FzbS1iaW5kZ2VuLXRlc3QgZG9lcyBub3Qgc3VwcG9ydCAjW3No b3VsZF9wYW5pY10KLS0gICAgICAgICAgICAgICAgICAgIC8vICNbY2ZnX2F0dHIobm90KHRhcmdl dF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgIC8vICNbY2Zn X2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQotLSAgICAg ICAgICAgICAgICAgICAgI1tjZmcobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpKV0KLS0gICAg ICAgICAgICAgICAgICAgICNbdGVzdF0KLS0gICAgICAgICAgICAgICAgICAgICNbc2hvdWxkX3Bh bmljXQotLSAgICAgICAgICAgICAgICAgICAgZm4gcmVwbGFjZV9wYW5pY19vb2IoKSB7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgbGV0IFZBTDogPCRpZDxpMzI+IGFzIHNlYWxlZDo6U2ltZD46 OkVsZW1lbnQKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAkcmVmISg3KTsKLS0gICAg ICAgICAgICAgICAgICAgICAgICBsZXQgVkFMNDI6IDwkaWQ8aTMyPiBhcyBzZWFsZWQ6OlNpbWQ+ OjpFbGVtZW50Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gJHJlZiEoNDIpOwotLSAg ICAgICAgICAgICAgICAgICAgICAgIGxldCBWRUM6ICRpZDxpMzI+ID0gJGlkOjpzcGxhdChWQUwp OwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBfID0gVkVDLnJlcGxhY2UoJGlkOjo8aTMy Pjo6bGFuZXMoKSwgVkFMNDIpOwotLSAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAg ICAgICB9Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLQotLSAgICAgICAgaW1wbDxUPiBj cmF0ZTo6Zm10OjpEZWJ1ZyBmb3IgJGlkPFQ+IHsKLS0gICAgICAgICAgICAjW2FsbG93KGNsaXBw eTo6bWlzc2luZ19pbmxpbmVfaW5fcHVibGljX2l0ZW1zKV0KLS0gICAgICAgICAgICBmbiBmbXQo JnNlbGYsIGY6ICZtdXQgY3JhdGU6OmZtdDo6Rm9ybWF0dGVyPCdfPikKLS0gICAgICAgICAgICAg ICAgICAgLT4gY3JhdGU6OmZtdDo6UmVzdWx0IHsKLS0gICAgICAgICAgICAgICAgd3JpdGUhKAot LSAgICAgICAgICAgICAgICAgICAgZiwKLS0gICAgICAgICAgICAgICAgICAgICJ7fTx7fT4oIiwK LS0gICAgICAgICAgICAgICAgICAgIHN0cmluZ2lmeSEoJGlkKSwKLS0gICAgICAgICAgICAgICAg ICAgIGNyYXRlOjppbnRyaW5zaWNzOjp0eXBlX25hbWU6OjxUPigpCi0tICAgICAgICAgICAgICAg ICk/OwotLSAgICAgICAgICAgICAgICBmb3IgaSBpbiAwLi4kZWxlbV9jb3VudCB7Ci0tICAgICAg ICAgICAgICAgICAgICBpZiBpID4gMCB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGUh KGYsICIsICIpPzsKLS0gICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAg IHNlbGYuZXh0cmFjdChpKS5mbXQoZik/OwotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAg ICAgICAgIHdyaXRlIShmLCAiKSIpCi0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLQotLSAg ICAgICAgIHRlc3RfaWYhewotLSAgICAgICAgICAgICR0ZXN0X3R0OgotLSAgICAgICAgICAgIHBh c3RlOjppdGVtISB7Ci0tICAgICAgICAgICAgICAgIHB1YiBtb2QgWzwkaWQgX2ZtdF9kZWJ1Zz5d IHsKLS0gICAgICAgICAgICAgICAgICAgIHVzZSBzdXBlcjo6KjsKLS0gICAgICAgICAgICAgICAg ICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0KLS0gICAg ICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9i aW5kZ2VuX3Rlc3QpXQotLSAgICAgICAgICAgICAgICAgICAgZm4gZGVidWcoKSB7Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgdXNlIGFycmF5dmVjOjp7QXJyYXlTdHJpbmcsQXJyYXlWZWN9Owot LSAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgVGlueVN0cmluZyA9IEFycmF5U3RyaW5nPFt1 ODsgNTEyXT47Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpmbXQ6Oldy aXRlOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2ID0gJGlkOjo8aTMyPjo6ZGVmYXVs dCgpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgcyA9IFRpbnlTdHJpbmc6Om5l dygpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRlISgmbXV0IHMsICJ7Oj99Iiwgdiku dW53cmFwKCk7Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBiZWcgPSBUaW55 U3RyaW5nOjpuZXcoKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICB3cml0ZSEoJm11dCBiZWcs ICJ7fTxpMzI+KCIsIHN0cmluZ2lmeSEoJGlkKSkudW53cmFwKCk7Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgYXNzZXJ0ISgKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcy5zdGFydHNf d2l0aChiZWcuYXNfc3RyKCkpLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAicyA9IHt9 IChzaG91bGQgc3RhcnQgd2l0aCA9IHt9KSIsIHMsIGJlZwotLSAgICAgICAgICAgICAgICAgICAg ICAgICk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IShzLmVuZHNfd2l0aCgiKSIp KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgczogQXJyYXlWZWM8W1RpbnlTdHJpbmc7 IDY0XT4KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBzLnJlcGxhY2UoYmVnLmFzX3N0 cigpLCAiIikKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLnJlcGxhY2UoIikiLCAiIiku c3BsaXQoIiwiKQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAubWFwKHx2fCBUaW55U3Ry aW5nOjpmcm9tKHYudHJpbSgpKS51bndyYXAoKSkKLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgLmNvbGxlY3QoKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHMubGVu KCksICRpZDo6PGkzMj46OmxhbmVzKCkpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGZvciAo aW5kZXgsIHNzKSBpbiBzLmludG9faXRlcigpLmVudW1lcmF0ZSgpIHsKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgbGV0IG11dCBlID0gVGlueVN0cmluZzo6bmV3KCk7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHdyaXRlISgmbXV0IGUsICJ7Oj99Iiwgdi5leHRyYWN0KGluZGV4 KSkudW53cmFwKCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoc3Ms IGUpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgIH0K LS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgIH0KLS0gICAgICAgICB9Ci0tCi0tICAg ICAgICBpbXBsPFQ+IERlZmF1bHQgZm9yICRpZDxUPiB7Ci0tICAgICAgICAgICAgI1tpbmxpbmVd Ci0tICAgICAgICAgICAgZm4gZGVmYXVsdCgpIC0+IFNlbGYgewotLSAgICAgICAgICAgICAgICAv LyBGSVhNRTogcHRycyBkbyBub3QgaW1wbGVtZW50IGRlZmF1bHQKLS0gICAgICAgICAgICAgICAg U2VsZjo6bnVsbCgpCi0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLQotLSAgICAgICAgdGVz dF9pZiF7Ci0tICAgICAgICAgICAgJHRlc3RfdHQ6Ci0tICAgICAgICAgICAgcGFzdGU6Oml0ZW0h IHsKLS0gICAgICAgICAgICAgICAgcHViIG1vZCBbPCRpZCBfZGVmYXVsdD5dIHsKLS0gICAgICAg ICAgICAgICAgICAgIHVzZSBzdXBlcjo6KjsKLS0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0 dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0KLS0gICAgICAgICAgICAgICAg ICAgICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3Qp XQotLSAgICAgICAgICAgICAgICAgICAgZm4gZGVmYXVsdCgpIHsKLS0gICAgICAgICAgICAgICAg ICAgICAgICBsZXQgYSA9ICRpZDo6PGkzMj46OmRlZmF1bHQoKTsKLS0gICAgICAgICAgICAgICAg ICAgICAgICBmb3IgaSBpbiAwLi4kaWQ6OjxpMzI+OjpsYW5lcygpIHsKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgYXNzZXJ0X2VxISgKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGEuZXh0cmFjdChpKSwgdW5zYWZlIHsgY3JhdGU6Om1lbTo6emVyb2VkKCkgfQotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICApOwotLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0g ICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgIH0K LS0gICAgICAgIH0KLS0KLS0gICAgICAgIGltcGw8VD4gJGlkPFQ+IHsKLS0gICAgICAgICAgICAv Ly8gTGFuZS13aXNlIGVxdWFsaXR5IGNvbXBhcmlzb24uCi0tICAgICAgICAgICAgI1tpbmxpbmVd Ci0tICAgICAgICAgICAgcHViIGZuIGVxKHNlbGYsIG90aGVyOiBTZWxmKSAtPiAkbWFza190eSB7 Ci0tICAgICAgICAgICAgICAgIHVuc2FmZSB7Ci0tICAgICAgICAgICAgICAgICAgICB1c2UgY3Jh dGU6Omxsdm06OnNpbWRfZXE7Ci0tICAgICAgICAgICAgICAgICAgICBsZXQgYTogJHVzaXplX3R5 ID0gY3JhdGU6Om1lbTo6dHJhbnNtdXRlKHNlbGYpOwotLSAgICAgICAgICAgICAgICAgICAgbGV0 IGI6ICR1c2l6ZV90eSA9IGNyYXRlOjptZW06OnRyYW5zbXV0ZShvdGhlcik7Ci0tICAgICAgICAg ICAgICAgICAgICBTaW1kKHNpbWRfZXEoYS4wLCBiLjApKQotLSAgICAgICAgICAgICAgICB9Ci0t ICAgICAgICAgICAgfQotLQotLSAgICAgICAgICAgIC8vLyBMYW5lLXdpc2UgaW5lcXVhbGl0eSBj b21wYXJpc29uLgotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIHB1YiBmbiBu ZShzZWxmLCBvdGhlcjogU2VsZikgLT4gJG1hc2tfdHkgewotLSAgICAgICAgICAgICAgICB1bnNh ZmUgewotLSAgICAgICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpsbHZtOjpzaW1kX25lOwotLSAg ICAgICAgICAgICAgICAgICAgbGV0IGE6ICR1c2l6ZV90eSA9IGNyYXRlOjptZW06OnRyYW5zbXV0 ZShzZWxmKTsKLS0gICAgICAgICAgICAgICAgICAgIGxldCBiOiAkdXNpemVfdHkgPSBjcmF0ZTo6 bWVtOjp0cmFuc211dGUob3RoZXIpOwotLSAgICAgICAgICAgICAgICAgICAgU2ltZChzaW1kX25l KGEuMCwgYi4wKSkKLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgIH0KLS0KLS0gICAg ICAgICAgICAvLy8gTGFuZS13aXNlIGxlc3MtdGhhbiBjb21wYXJpc29uLgotLSAgICAgICAgICAg ICNbaW5saW5lXQotLSAgICAgICAgICAgIHB1YiBmbiBsdChzZWxmLCBvdGhlcjogU2VsZikgLT4g JG1hc2tfdHkgewotLSAgICAgICAgICAgICAgICB1bnNhZmUgewotLSAgICAgICAgICAgICAgICAg ICAgdXNlIGNyYXRlOjpsbHZtOjpzaW1kX2x0OwotLSAgICAgICAgICAgICAgICAgICAgbGV0IGE6 ICR1c2l6ZV90eSA9IGNyYXRlOjptZW06OnRyYW5zbXV0ZShzZWxmKTsKLS0gICAgICAgICAgICAg ICAgICAgIGxldCBiOiAkdXNpemVfdHkgPSBjcmF0ZTo6bWVtOjp0cmFuc211dGUob3RoZXIpOwot LSAgICAgICAgICAgICAgICAgICAgU2ltZChzaW1kX2x0KGEuMCwgYi4wKSkKLS0gICAgICAgICAg ICAgICAgfQotLSAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAvLy8gTGFuZS13aXNlIGxl c3MtdGhhbi1vci1lcXVhbHMgY29tcGFyaXNvbi4KLS0gICAgICAgICAgICAjW2lubGluZV0KLS0g ICAgICAgICAgICBwdWIgZm4gbGUoc2VsZiwgb3RoZXI6IFNlbGYpIC0+ICRtYXNrX3R5IHsKLS0g ICAgICAgICAgICAgICAgdW5zYWZlIHsKLS0gICAgICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6 bGx2bTo6c2ltZF9sZTsKLS0gICAgICAgICAgICAgICAgICAgIGxldCBhOiAkdXNpemVfdHkgPSBj cmF0ZTo6bWVtOjp0cmFuc211dGUoc2VsZik7Ci0tICAgICAgICAgICAgICAgICAgICBsZXQgYjog JHVzaXplX3R5ID0gY3JhdGU6Om1lbTo6dHJhbnNtdXRlKG90aGVyKTsKLS0gICAgICAgICAgICAg ICAgICAgIFNpbWQoc2ltZF9sZShhLjAsIGIuMCkpCi0tICAgICAgICAgICAgICAgIH0KLS0gICAg ICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgLy8vIExhbmUtd2lzZSBncmVhdGVyLXRoYW4gY29t cGFyaXNvbi4KLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBwdWIgZm4gZ3Qo c2VsZiwgb3RoZXI6IFNlbGYpIC0+ICRtYXNrX3R5IHsKLS0gICAgICAgICAgICAgICAgdW5zYWZl IHsKLS0gICAgICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6bGx2bTo6c2ltZF9ndDsKLS0gICAg ICAgICAgICAgICAgICAgIGxldCBhOiAkdXNpemVfdHkgPSBjcmF0ZTo6bWVtOjp0cmFuc211dGUo c2VsZik7Ci0tICAgICAgICAgICAgICAgICAgICBsZXQgYjogJHVzaXplX3R5ID0gY3JhdGU6Om1l bTo6dHJhbnNtdXRlKG90aGVyKTsKLS0gICAgICAgICAgICAgICAgICAgIFNpbWQoc2ltZF9ndChh LjAsIGIuMCkpCi0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICB9Ci0tCi0tICAgICAg ICAgICAgLy8vIExhbmUtd2lzZSBncmVhdGVyLXRoYW4tb3ItZXF1YWxzIGNvbXBhcmlzb24uCi0t ICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgcHViIGZuIGdlKHNlbGYsIG90aGVy OiBTZWxmKSAtPiAkbWFza190eSB7Ci0tICAgICAgICAgICAgICAgIHVuc2FmZSB7Ci0tICAgICAg ICAgICAgICAgICAgICB1c2UgY3JhdGU6Omxsdm06OnNpbWRfZ2U7Ci0tICAgICAgICAgICAgICAg ICAgICBsZXQgYTogJHVzaXplX3R5ID0gY3JhdGU6Om1lbTo6dHJhbnNtdXRlKHNlbGYpOwotLSAg ICAgICAgICAgICAgICAgICAgbGV0IGI6ICR1c2l6ZV90eSA9IGNyYXRlOjptZW06OnRyYW5zbXV0 ZShvdGhlcik7Ci0tICAgICAgICAgICAgICAgICAgICBTaW1kKHNpbWRfZ2UoYS4wLCBiLjApKQot LSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLQotLSAgICAg ICAgdGVzdF9pZiF7Ci0tICAgICAgICAgICAgJHRlc3RfdHQ6Ci0tICAgICAgICAgICAgcGFzdGU6 Oml0ZW0hIHsKLS0gICAgICAgICAgICAgICAgcHViIG1vZCBbPCRpZCBfY21wX3ZlcnRpY2FsPl0g ewotLSAgICAgICAgICAgICAgICAgICAgdXNlIHN1cGVyOjoqOwotLSAgICAgICAgICAgICAgICAg ICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXQotLSAgICAg ICAgICAgICAgICAgICAgI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2Jp bmRnZW5fdGVzdCldCi0tICAgICAgICAgICAgICAgICAgICBmbiBjbXAoKSB7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgbGV0IGEgPSAkaWQ6OjxpMzI+OjpudWxsKCk7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgbGV0IGIgPSAkaWQ6OjxpMzI+OjpzcGxhdCh1bnNhZmUgewotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICBjcmF0ZTo6bWVtOjp0cmFuc211dGUoMV9pc2l6ZSkKLS0gICAg ICAgICAgICAgICAgICAgICAgICB9KTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQg ciA9IGEubHQoYik7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGUgPSAkbWFza190eTo6 c3BsYXQodHJ1ZSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IShyID09IGUpOwot LSAgICAgICAgICAgICAgICAgICAgICAgIGxldCByID0gYS5sZShiKTsKLS0gICAgICAgICAgICAg ICAgICAgICAgICBhc3NlcnQhKHIgPT0gZSk7Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAg bGV0IGUgPSAkbWFza190eTo6c3BsYXQoZmFsc2UpOwotLSAgICAgICAgICAgICAgICAgICAgICAg IGxldCByID0gYS5ndChiKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKHIgPT0g ZSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHIgPSBhLmdlKGIpOwotLSAgICAgICAg ICAgICAgICAgICAgICAgIGFzc2VydCEociA9PSBlKTsKLS0gICAgICAgICAgICAgICAgICAgICAg ICBsZXQgciA9IGEuZXEoYik7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IShyID09 IGUpOwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgYSA9IGE7Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgbGV0IG11dCBiID0gYjsKLS0gICAgICAgICAgICAgICAgICAgICAg ICBsZXQgbXV0IGUgPSBlOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGZvciBpIGluIDAuLiRp ZDo6PGkzMj46OmxhbmVzKCkgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBpICUg MiA9PSAwIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGEgPSBhLnJlcGxhY2Uo Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaSwKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB1bnNhZmUgeyBjcmF0ZTo6bWVtOjp0cmFuc211dGUoMF9p c2l6ZSkgfQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKLS0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGIgPSBiLnJlcGxhY2UoCi0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgaSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB1bnNhZmUgeyBjcmF0ZTo6bWVtOjp0cmFuc211dGUoMV9pc2l6ZSkgfQotLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGUgPSBlLnJlcGxhY2UoaSwgdHJ1ZSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0g ZWxzZSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhID0gYS5yZXBsYWNlKAot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGksCi0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgdW5zYWZlIHsgY3JhdGU6Om1lbTo6dHJhbnNtdXRlKDFfaXNp emUpIH0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBiID0gYi5yZXBsYWNlKAotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGksCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg dW5zYWZlIHsgY3JhdGU6Om1lbTo6dHJhbnNtdXRlKDBfaXNpemUpIH0KLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBl ID0gZS5yZXBsYWNlKGksIGZhbHNlKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQot LSAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQg ciA9IGEubHQoYik7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IShyID09IGUpOwot LSAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAg fQotLSAgICAgICAgfQotLQotLSAgICAgICAgI1thbGxvdyhjbGlwcHk6OnBhcnRpYWxlcV9uZV9p bXBsKV0KLS0gICAgICAgIGltcGw8VD4gY3JhdGU6OmNtcDo6UGFydGlhbEVxPCRpZDxUPj4gZm9y ICRpZDxUPiB7Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgZm4gZXEoJnNl bGYsIG90aGVyOiAmU2VsZikgLT4gYm9vbCB7Ci0tICAgICAgICAgICAgICAgICRpZDo6PFQ+Ojpl cSgqc2VsZiwgKm90aGVyKS5hbGwoKQotLSAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAjW2lu bGluZV0KLS0gICAgICAgICAgICBmbiBuZSgmc2VsZiwgb3RoZXI6ICZTZWxmKSAtPiBib29sIHsK LS0gICAgICAgICAgICAgICAgJGlkOjo8VD46Om5lKCpzZWxmLCAqb3RoZXIpLmFueSgpCi0tICAg ICAgICAgICAgfQotLSAgICAgICAgfQotLQotLSAgICAgICAgLy8gRklYTUU6IGh0dHBzOi8vZ2l0 aHViLmNvbS9ydXN0LWxhbmctbnVyc2VyeS9ydXN0LWNsaXBweS9pc3N1ZXMvMjg5MgotLSAgICAg ICAgI1thbGxvdyhjbGlwcHk6OnBhcnRpYWxlcV9uZV9pbXBsKV0KLS0gICAgICAgIGltcGw8VD4g Y3JhdGU6OmNtcDo6UGFydGlhbEVxPExleGljb2dyYXBoaWNhbGx5T3JkZXJlZDwkaWQ8VD4+Pgot LSAgICAgICAgICAgIGZvciBMZXhpY29ncmFwaGljYWxseU9yZGVyZWQ8JGlkPFQ+PgotLSAgICAg ICAgewotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIGZuIGVxKCZzZWxmLCBv dGhlcjogJlNlbGYpIC0+IGJvb2wgewotLSAgICAgICAgICAgICAgICBzZWxmLjAgPT0gb3RoZXIu MAotLSAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBm biBuZSgmc2VsZiwgb3RoZXI6ICZTZWxmKSAtPiBib29sIHsKLS0gICAgICAgICAgICAgICAgc2Vs Zi4wICE9IG90aGVyLjAKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tCi0tICAgICAgICB0 ZXN0X2lmIXsKLS0gICAgICAgICAgICAkdGVzdF90dDoKLS0gICAgICAgICAgICBwYXN0ZTo6aXRl bSEgewotLSAgICAgICAgICAgICAgICBwdWIgbW9kIFs8JGlkIF9jbXBfUGFydGlhbEVxPl0gewot LSAgICAgICAgICAgICAgICAgICAgdXNlIHN1cGVyOjoqOwotLSAgICAgICAgICAgICAgICAgICAg I1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXQotLSAgICAgICAg ICAgICAgICAgICAgI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRn ZW5fdGVzdCldCi0tICAgICAgICAgICAgICAgICAgICBmbiBwYXJ0aWFsX2VxKCkgewotLSAgICAg ICAgICAgICAgICAgICAgICAgIGxldCBhID0gJGlkOjo8aTMyPjo6bnVsbCgpOwotLSAgICAgICAg ICAgICAgICAgICAgICAgIGxldCBiID0gJGlkOjo8aTMyPjo6c3BsYXQodW5zYWZlIHsKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgY3JhdGU6Om1lbTo6dHJhbnNtdXRlKDFfaXNpemUpCi0t ICAgICAgICAgICAgICAgICAgICAgICAgfSk7Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAg YXNzZXJ0IShhICE9IGIpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCEoIShhID09 IGIpKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKGEgPT0gYSk7Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgYXNzZXJ0ISghKGEgIT0gYSkpOwotLQotLSAgICAgICAgICAgICAg ICAgICAgICAgIGlmICRpZDo6PGkzMj46OmxhbmVzKCkgPiAxIHsKLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgbGV0IGEgPSAkaWQ6OjxpMzI+OjpudWxsKCkucmVwbGFjZSgwLCB1bnNhZmUg ewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JhdGU6Om1lbTo6dHJhbnNtdXRl KDFfaXNpemUpCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pOwotLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICBsZXQgYiA9ICRpZDo6PGkzMj46OnNwbGF0KHVuc2FmZSB7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmF0ZTo6bWVtOjp0cmFuc211dGUoMV9pc2l6 ZSkKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7Ci0tCi0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGFzc2VydCEoYSAhPSBiKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgYXNzZXJ0ISghKGEgPT0gYikpOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3Nl cnQhKGEgPT0gYSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCEoIShhICE9 IGEpKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICB9 Ci0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tCi0tICAg ICAgICBpbXBsPFQ+IGNyYXRlOjpjbXA6OkVxIGZvciAkaWQ8VD4ge30KLS0gICAgICAgIGltcGw8 VD4gY3JhdGU6OmNtcDo6RXEgZm9yIExleGljb2dyYXBoaWNhbGx5T3JkZXJlZDwkaWQ8VD4+IHt9 Ci0tCi0tICAgICAgICB0ZXN0X2lmIXsKLS0gICAgICAgICAgICAkdGVzdF90dDoKLS0gICAgICAg ICAgICBwYXN0ZTo6aXRlbSEgewotLSAgICAgICAgICAgICAgICBwdWIgbW9kIFs8JGlkIF9jbXBf ZXE+XSB7Ci0tICAgICAgICAgICAgICAgICAgICB1c2Ugc3VwZXI6Oio7Ci0tICAgICAgICAgICAg ICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldCi0t ICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdh c21fYmluZGdlbl90ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgIGZuIGVxKCkgewotLSAgICAg ICAgICAgICAgICAgICAgICAgIGZuIGZvbzxFOiBjcmF0ZTo6Y21wOjpFcT4oXzogRSkge30KLS0g ICAgICAgICAgICAgICAgICAgICAgICBsZXQgYSA9ICRpZDo6PGkzMj46Om51bGwoKTsKLS0gICAg ICAgICAgICAgICAgICAgICAgICBmb28oYSk7Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0tICAg ICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tCi0tICAgICAgICBp bXBsPFQ+IEZyb208WyRlbGVtX3R5OyAkZWxlbV9jb3VudF0+IGZvciAkaWQ8VD4gewotLSAgICAg ICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIGZuIGZyb20oYXJyYXk6IFskZWxlbV90eTsg JGVsZW1fY291bnRdKSAtPiBTZWxmIHsKLS0gICAgICAgICAgICAgICAgdW5zYWZlIHsKLS0gICAg ICAgICAgICAgICAgICAgIC8vIEZJWE1FOiB1bm5lY2Vzc2FyeSB6ZXJvaW5nOyBiZXR0ZXIgdGhh biBVQi4KLS0gICAgICAgICAgICAgICAgICAgIGxldCBtdXQgdTogU2VsZiA9IGNyYXRlOjptZW06 Onplcm9lZCgpOwotLSAgICAgICAgICAgICAgICAgICAgY3JhdGU6OnB0cjo6Y29weV9ub25vdmVy bGFwcGluZygKLS0gICAgICAgICAgICAgICAgICAgICAgICAmYXJyYXkgYXMgKmNvbnN0IFskZWxl bV90eTsgJGVsZW1fY291bnRdIGFzICpjb25zdCB1OCwKLS0gICAgICAgICAgICAgICAgICAgICAg ICAmbXV0IHUgYXMgKm11dCBTZWxmIGFzICptdXQgdTgsCi0tICAgICAgICAgICAgICAgICAgICAg ICAgY3JhdGU6Om1lbTo6c2l6ZV9vZjo6PFNlbGY+KCkKLS0gICAgICAgICAgICAgICAgICAgICk7 Ci0tICAgICAgICAgICAgICAgICAgICB1Ci0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAg ICB9Ci0tICAgICAgICB9Ci0tICAgICAgICBpbXBsPFQ+IEludG88WyRlbGVtX3R5OyAkZWxlbV9j b3VudF0+IGZvciAkaWQ8VD4gewotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAg IGZuIGludG8oc2VsZikgLT4gWyRlbGVtX3R5OyAkZWxlbV9jb3VudF0gewotLSAgICAgICAgICAg ICAgICB1bnNhZmUgewotLSAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IHVubmVjZXNzYXJ5 IHplcm9pbmc7IGJldHRlciB0aGFuIFVCLgotLSAgICAgICAgICAgICAgICAgICAgbGV0IG11dCB1 OiBbJGVsZW1fdHk7ICRlbGVtX2NvdW50XSA9IGNyYXRlOjptZW06Onplcm9lZCgpOwotLSAgICAg ICAgICAgICAgICAgICAgY3JhdGU6OnB0cjo6Y29weV9ub25vdmVybGFwcGluZygKLS0gICAgICAg ICAgICAgICAgICAgICAgICAmc2VsZiBhcyAqY29uc3QgJGlkPFQ+IGFzICpjb25zdCB1OCwKLS0g ICAgICAgICAgICAgICAgICAgICAgICAmbXV0IHUgYXMgKm11dCBbJGVsZW1fdHk7ICRlbGVtX2Nv dW50XSBhcyAqbXV0IHU4LAotLSAgICAgICAgICAgICAgICAgICAgICAgIGNyYXRlOjptZW06OnNp emVfb2Y6OjxTZWxmPigpCi0tICAgICAgICAgICAgICAgICAgICApOwotLSAgICAgICAgICAgICAg ICAgICAgdQotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQot LQotLSAgICAgICAgdGVzdF9pZiF7Ci0tICAgICAgICAgICAgJHRlc3RfdHQ6Ci0tICAgICAgICAg ICAgcGFzdGU6Oml0ZW0hIHsKLS0gICAgICAgICAgICAgICAgcHViIG1vZCBbPCRpZCBfZnJvbT5d IHsKLS0gICAgICAgICAgICAgICAgICAgIHVzZSBzdXBlcjo6KjsKLS0gICAgICAgICAgICAgICAg ICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0KLS0gICAg ICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9i aW5kZ2VuX3Rlc3QpXQotLSAgICAgICAgICAgICAgICAgICAgZm4gYXJyYXkoKSB7Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgbGV0IHZhbHVlcyA9IFsxX2kzMjsgJGVsZW1fY291bnRdOwotLQot LSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgdmVjOiAkaWQ8aTMyPiA9IERlZmF1bHQ6 OmRlZmF1bHQoKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IGFycmF5ID0gWwot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaWQ6OjxpMzI+OjpudWxsKCkuZXh0cmFjdCgw KTsgJGVsZW1fY291bnQKLS0gICAgICAgICAgICAgICAgICAgICAgICBdOwotLQotLSAgICAgICAg ICAgICAgICAgICAgICAgIGZvciBpIGluIDAuLiRlbGVtX2NvdW50IHsKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgbGV0IHB0ciA9ICZ2YWx1ZXNbaV0gYXMgKmNvbnN0IGkzMiBhcyAqbXV0 IGkzMjsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjID0gdmVjLnJlcGxhY2UoaSwg cHRyKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJyYXlbaV0gPSBwdHI7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgfQotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZJ WE1FOiB0aGVyZSBpcyBubyBpbXBsIG9mIEZyb208JGlkPFQ+PiBmb3IgWyRlbGVtX3R5OyBOXQot LSAgICAgICAgICAgICAgICAgICAgICAgIC8vIGxldCBhMCA9IEZyb206OmZyb20odmVjKTsKLS0g ICAgICAgICAgICAgICAgICAgICAgICAvLyBhc3NlcnRfZXEhKGEwLCBhcnJheSk7Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgI1thbGxvdyh1bnVzZWRfYXNzaWdubWVudHMpXQotLSAgICAgICAg ICAgICAgICAgICAgICAgIGxldCBtdXQgYTEgPSBhcnJheTsKLS0gICAgICAgICAgICAgICAgICAg ICAgICBhMSA9IHZlYy5pbnRvKCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2Vx IShhMSwgYXJyYXkpOwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2MDogJGlkPGkz Mj4gPSBGcm9tOjpmcm9tKGFycmF5KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRf ZXEhKHYwLCB2ZWMpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2MTogJGlkPGkzMj4g PSBhcnJheS5pbnRvKCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh2MSwg dmVjKTsKLS0gICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgfQotLSAgICAg ICAgICAgIH0KLS0gICAgICAgIH0KLS0KLS0gICAgICAgIGltcGw8VD4gJGlkPFQ+IHsKLS0gICAg ICAgICAgICAvLy8gSW5zdGFudGlhdGVzIGEgbmV3IHZlY3RvciB3aXRoIHRoZSB2YWx1ZXMgb2Yg dGhlIGBzbGljZWAuCi0tICAgICAgICAgICAgLy8vCi0tICAgICAgICAgICAgLy8vICMgUGFuaWNz Ci0tICAgICAgICAgICAgLy8vCi0tICAgICAgICAgICAgLy8vIElmIGBzbGljZS5sZW4oKSA8IFNl bGY6OmxhbmVzKClgIG9yIGAmc2xpY2VbMF1gIGlzIG5vdCBhbGlnbmVkCi0tICAgICAgICAgICAg Ly8vIHRvIGFuIGBhbGlnbl9vZjo6PFNlbGY+KClgIGJvdW5kYXJ5LgotLSAgICAgICAgICAgICNb aW5saW5lXQotLSAgICAgICAgICAgIHB1YiBmbiBmcm9tX3NsaWNlX2FsaWduZWQoc2xpY2U6ICZb JGVsZW1fdHldKSAtPiBTZWxmIHsKLS0gICAgICAgICAgICAgICAgdW5zYWZlIHsKLS0gICAgICAg ICAgICAgICAgICAgIGFzc2VydCEoc2xpY2UubGVuKCkgPj0gJGVsZW1fY291bnQpOwotLSAgICAg ICAgICAgICAgICAgICAgbGV0IHRhcmdldF9wdHIgPSBzbGljZS5hc19wdHIoKTsKLS0gICAgICAg ICAgICAgICAgICAgIGFzc2VydCEoCi0tICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0X3B0 ci5hbGlnbl9vZmZzZXQoY3JhdGU6Om1lbTo6YWxpZ25fb2Y6OjxTZWxmPigpKQotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICA9PSAwCi0tICAgICAgICAgICAgICAgICAgICApOwotLSAgICAg ICAgICAgICAgICAgICAgU2VsZjo6ZnJvbV9zbGljZV9hbGlnbmVkX3VuY2hlY2tlZChzbGljZSkK LS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAvLy8g SW5zdGFudGlhdGVzIGEgbmV3IHZlY3RvciB3aXRoIHRoZSB2YWx1ZXMgb2YgdGhlIGBzbGljZWAu Ci0tICAgICAgICAgICAgLy8vCi0tICAgICAgICAgICAgLy8vICMgUGFuaWNzCi0tICAgICAgICAg ICAgLy8vCi0tICAgICAgICAgICAgLy8vIElmIGBzbGljZS5sZW4oKSA8IFNlbGY6OmxhbmVzKClg LgotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIHB1YiBmbiBmcm9tX3NsaWNl X3VuYWxpZ25lZChzbGljZTogJlskZWxlbV90eV0pIC0+IFNlbGYgewotLSAgICAgICAgICAgICAg ICB1bnNhZmUgewotLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IShzbGljZS5sZW4oKSA+PSAk ZWxlbV9jb3VudCk7Ci0tICAgICAgICAgICAgICAgICAgICBTZWxmOjpmcm9tX3NsaWNlX3VuYWxp Z25lZF91bmNoZWNrZWQoc2xpY2UpCi0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICB9 Ci0tCi0tICAgICAgICAgICAgLy8vIEluc3RhbnRpYXRlcyBhIG5ldyB2ZWN0b3Igd2l0aCB0aGUg dmFsdWVzIG9mIHRoZSBgc2xpY2VgLgotLSAgICAgICAgICAgIC8vLwotLSAgICAgICAgICAgIC8v LyAjIFNhZmV0eQotLSAgICAgICAgICAgIC8vLwotLSAgICAgICAgICAgIC8vLyBJZiBgc2xpY2Uu bGVuKCkgPCBTZWxmOjpsYW5lcygpYCBvciBgJnNsaWNlWzBdYCBpcyBub3QgYWxpZ25lZAotLSAg ICAgICAgICAgIC8vLyB0byBhbiBgYWxpZ25fb2Y6OjxTZWxmPigpYCBib3VuZGFyeSwgdGhlIGJl aGF2aW9yIGlzIHVuZGVmaW5lZC4KLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAg ICBwdWIgdW5zYWZlIGZuIGZyb21fc2xpY2VfYWxpZ25lZF91bmNoZWNrZWQoc2xpY2U6ICZbJGVs ZW1fdHldKQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAtPiBTZWxmIHsKLS0gICAgICAgICAgICAgICAgI1thbGxvdyhjbGlwcHk6OmNhc3Rf cHRyX2FsaWdubWVudCldCi0tICAgICAgICAgICAgICAgICooc2xpY2UuYXNfcHRyKCkuY2FzdCgp KQotLSAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAvLy8gSW5zdGFudGlhdGVzIGEgbmV3 IHZlY3RvciB3aXRoIHRoZSB2YWx1ZXMgb2YgdGhlIGBzbGljZWAuCi0tICAgICAgICAgICAgLy8v Ci0tICAgICAgICAgICAgLy8vICMgU2FmZXR5Ci0tICAgICAgICAgICAgLy8vCi0tICAgICAgICAg ICAgLy8vIElmIGBzbGljZS5sZW4oKSA8IFNlbGY6OmxhbmVzKClgIHRoZSBiZWhhdmlvciBpcyB1 bmRlZmluZWQuCi0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgcHViIHVuc2Fm ZSBmbiBmcm9tX3NsaWNlX3VuYWxpZ25lZF91bmNoZWNrZWQoCi0tICAgICAgICAgICAgICAgIHNs aWNlOiAmWyRlbGVtX3R5XSwKLS0gICAgICAgICAgICApIC0+IFNlbGYgewotLSAgICAgICAgICAg ICAgICB1c2UgY3JhdGU6Om1lbTo6c2l6ZV9vZjsKLS0gICAgICAgICAgICAgICAgbGV0IHRhcmdl dF9wdHIgPSBzbGljZS5hc19wdHIoKS5jYXN0KCk7Ci0tICAgICAgICAgICAgICAgIGxldCBtdXQg eCA9IFNlbGY6OnNwbGF0KGNyYXRlOjpwdHI6Om51bGxfbXV0KCkgYXMgJGVsZW1fdHkpOwotLSAg ICAgICAgICAgICAgICBsZXQgc2VsZl9wdHIgPSAmbXV0IHggYXMgKm11dCBTZWxmIGFzICptdXQg dTg7Ci0tICAgICAgICAgICAgICAgIGNyYXRlOjpwdHI6OmNvcHlfbm9ub3ZlcmxhcHBpbmcoCi0t ICAgICAgICAgICAgICAgICAgICB0YXJnZXRfcHRyLAotLSAgICAgICAgICAgICAgICAgICAgc2Vs Zl9wdHIsCi0tICAgICAgICAgICAgICAgICAgICBzaXplX29mOjo8U2VsZj4oKSwKLS0gICAgICAg ICAgICAgICAgKTsKLS0gICAgICAgICAgICAgICAgeAotLSAgICAgICAgICAgIH0KLS0gICAgICAg IH0KLS0KLS0gICAgICAgIHRlc3RfaWYhewotLSAgICAgICAgICAgICR0ZXN0X3R0OgotLSAgICAg ICAgICAgIHBhc3RlOjppdGVtISB7Ci0tICAgICAgICAgICAgICAgIHB1YiBtb2QgWzwkaWQgX3Ns aWNlX2Zyb21fc2xpY2U+XSB7Ci0tICAgICAgICAgICAgICAgICAgICB1c2Ugc3VwZXI6Oio7Ci0t ICAgICAgICAgICAgICAgICAgICB1c2UgY3JhdGU6Oml0ZXI6Okl0ZXJhdG9yOwotLQotLSAgICAg ICAgICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRl c3QpXQotLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNt MzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCi0tICAgICAgICAgICAgICAgICAgICBmbiBmcm9tX3Ns aWNlX3VuYWxpZ25lZCgpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgKG51bGwsIG5v bl9udWxsKSA9IHB0cl92YWxzISgkaWQ8aTMyPik7Ci0tCi0tICAgICAgICAgICAgICAgICAgICAg ICAgbGV0IG11dCB1bmFsaWduZWQgPSBbCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5v bl9udWxsOyAkaWQ6OjxpMzI+OjpsYW5lcygpICsgMQotLSAgICAgICAgICAgICAgICAgICAgICAg IF07Ci0tICAgICAgICAgICAgICAgICAgICAgICAgdW5hbGlnbmVkWzBdID0gbnVsbDsKLS0gICAg ICAgICAgICAgICAgICAgICAgICBsZXQgdmVjID0gJGlkOjo8aTMyPjo6ZnJvbV9zbGljZV91bmFs aWduZWQoCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICZ1bmFsaWduZWRbMS4uXQotLSAg ICAgICAgICAgICAgICAgICAgICAgICk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChp bmRleCwgJmIpIGluIHVuYWxpZ25lZC5pdGVyKCkuZW51bWVyYXRlKCkgewotLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICBpZiBpbmRleCA9PSAwIHsKLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGFzc2VydF9lcSEoYiwgbnVsbCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH0gZWxzZSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEh KGIsIG5vbl9udWxsKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9l cSEoYiwgdmVjLmV4dHJhY3QoaW5kZXggLSAxKSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH0KLS0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICB9 Ci0tCi0tICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogd2FzbS1iaW5kZ2VuLXRlc3QgZG9l cyBub3Qgc3VwcG9ydCAjW3Nob3VsZF9wYW5pY10KLS0gICAgICAgICAgICAgICAgICAgIC8vICNb Y2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0KLS0gICAgICAgICAg ICAgICAgICAgIC8vICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5k Z2VuX3Rlc3QpXQotLSAgICAgICAgICAgICAgICAgICAgI1tjZmcobm90KHRhcmdldF9hcmNoID0g Indhc20zMiIpKV0KLS0gICAgICAgICAgICAgICAgICAgICNbdGVzdF0KLS0gICAgICAgICAgICAg ICAgICAgICNbc2hvdWxkX3BhbmljXQotLSAgICAgICAgICAgICAgICAgICAgZm4gZnJvbV9zbGlj ZV91bmFsaWduZWRfZmFpbCgpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgKF9udWxs LCBub25fbnVsbCkgPSBwdHJfdmFscyEoJGlkPGkzMj4pOwotLSAgICAgICAgICAgICAgICAgICAg ICAgIGxldCB1bmFsaWduZWQgPSBbbm9uX251bGw7ICRpZDo6PGkzMj46OmxhbmVzKCkgKyAxXTsK LS0gICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGUgc2xpY2UgaXMgbm90IGxhcmdlIGVub3Vn aCA9PiBwYW5pYwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBfdmVjID0gJGlkOjo8aTMy Pjo6ZnJvbV9zbGljZV91bmFsaWduZWQoCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICZ1 bmFsaWduZWRbMi4uXQotLSAgICAgICAgICAgICAgICAgICAgICAgICk7Ci0tICAgICAgICAgICAg ICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgICAgICAgICB1bmlvbiBBIHsKLS0gICAgICAgICAg ICAgICAgICAgICAgICBkYXRhOiBbPCRpZDxpMzI+IGFzIHNlYWxlZDo6U2ltZD46OkVsZW1lbnQ7 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIgKiAkaWQ6OjxpMzI+OjpsYW5lcygp XSwKLS0gICAgICAgICAgICAgICAgICAgICAgICBfdmVjOiAkaWQ8aTMyPiwKLS0gICAgICAgICAg ICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdl dF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0 dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQotLSAgICAgICAg ICAgICAgICAgICAgZm4gZnJvbV9zbGljZV9hbGlnbmVkKCkgewotLSAgICAgICAgICAgICAgICAg ICAgICAgIGxldCAobnVsbCwgbm9uX251bGwpID0gcHRyX3ZhbHMhKCRpZDxpMzI+KTsKLS0gICAg ICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IGFsaWduZWQgPSBBIHsKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgZGF0YTogW251bGw7IDIgKiAkaWQ6OjxpMzI+OjpsYW5lcygpXSwKLS0g ICAgICAgICAgICAgICAgICAgICAgICB9OwotLSAgICAgICAgICAgICAgICAgICAgICAgIGZvciBp IGluCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpZDo6PGkzMj46OmxhbmVzKCkuLigy ICogJGlkOjo8aTMyPjo6bGFuZXMoKSkgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB1 bnNhZmUgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ25lZC5kYXRhW2ld ID0gbm9uX251bGw7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAg ICAgICAgICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHZlYyA9IHVu c2FmZSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpZDo6PGkzMj46OmZyb21fc2xp Y2VfYWxpZ25lZCgKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZhbGlnbmVkLmRh dGFbJGlkOjo8aTMyPjo6bGFuZXMoKS4uXQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAp Ci0tICAgICAgICAgICAgICAgICAgICAgICAgfTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBm b3IgKGluZGV4LCAmYikgaW4gdW5zYWZlIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg YWxpZ25lZC5kYXRhLml0ZXIoKS5lbnVtZXJhdGUoKQotLSAgICAgICAgICAgICAgICAgICAgICAg IH0gewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBpbmRleCA8ICRpZDo6PGkzMj46 OmxhbmVzKCkgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShi LCBudWxsKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoYiwgbm9uX251bGwpOwotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISgKLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBiLCB2ZWMuZXh0cmFjdChpbmRleCAtICRpZDo6PGkzMj46Omxh bmVzKCkpCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOwotLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAg ICAgICAgICAgICAgfQotLQotLSAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IHdhc20tYmlu ZGdlbi10ZXN0IGRvZXMgbm90IHN1cHBvcnQgI1tzaG91bGRfcGFuaWNdCi0tICAgICAgICAgICAg ICAgICAgICAvLyAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCld Ci0tICAgICAgICAgICAgICAgICAgICAvLyAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20z MiIsIHdhc21fYmluZGdlbl90ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgICNbY2ZnKG5vdCh0 YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSldCi0tICAgICAgICAgICAgICAgICAgICAjW3Rlc3RdCi0t ICAgICAgICAgICAgICAgICAgICAjW3Nob3VsZF9wYW5pY10KLS0gICAgICAgICAgICAgICAgICAg IGZuIGZyb21fc2xpY2VfYWxpZ25lZF9mYWlsX2xhbmVzKCkgewotLSAgICAgICAgICAgICAgICAg ICAgICAgIGxldCAoX251bGwsIG5vbl9udWxsKSA9IHB0cl92YWxzISgkaWQ8aTMyPik7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgbGV0IGFsaWduZWQgPSBBIHsKLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgZGF0YTogW25vbl9udWxsOyAyICogJGlkOjo8aTMyPjo6bGFuZXMoKV0sCi0t ICAgICAgICAgICAgICAgICAgICAgICAgfTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAvLyB0 aGUgc2xpY2UgaXMgbm90IGxhcmdlIGVub3VnaCA9PiBwYW5pYwotLSAgICAgICAgICAgICAgICAg ICAgICAgIGxldCBfdmVjID0gdW5zYWZlIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg JGlkOjo8aTMyPjo6ZnJvbV9zbGljZV9hbGlnbmVkKAotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgJmFsaWduZWQuZGF0YVsyICogJGlkOjo8aTMyPjo6bGFuZXMoKS4uXQotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICApCi0tICAgICAgICAgICAgICAgICAgICAgICAgfTsKLS0g ICAgICAgICAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiB3 YXNtLWJpbmRnZW4tdGVzdCBkb2VzIG5vdCBzdXBwb3J0ICNbc2hvdWxkX3BhbmljXQotLSAgICAg ICAgICAgICAgICAgICAgLy8gI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiks IHRlc3QpXQotLSAgICAgICAgICAgICAgICAgICAgLy8gI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9 ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCi0tICAgICAgICAgICAgICAgICAgICAjW2Nm Zyhub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIikpXQotLSAgICAgICAgICAgICAgICAgICAgI1t0 ZXN0XQotLSAgICAgICAgICAgICAgICAgICAgI1tzaG91bGRfcGFuaWNdCi0tICAgICAgICAgICAg ICAgICAgICBmbiBmcm9tX3NsaWNlX2FsaWduZWRfZmFpbF9hbGlnbigpIHsKLS0gICAgICAgICAg ICAgICAgICAgICAgICB1bnNhZmUgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQg KG51bGwsIF9ub25fbnVsbCkgPSBwdHJfdmFscyEoJGlkPGkzMj4pOwotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICBsZXQgYWxpZ25lZCA9IEEgewotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZGF0YTogW251bGw7IDIgKiAkaWQ6OjxpMzI+OjpsYW5lcygpXSwKLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgfTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg Ly8gZ2V0IGEgcG9pbnRlciB0byB0aGUgZnJvbnQgb2YgZGF0YQotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICBsZXQgcHRyID0gYWxpZ25lZC5kYXRhLmFzX3B0cigpOwotLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAvLyBvZmZzZXQgcG9pbnRlciBieSBvbmUgZWxlbWVudAotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICBsZXQgcHRyID0gcHRyLndyYXBwaW5nX2FkZCgxKTsKLS0K LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgcHRyLmFsaWduX29mZnNldCgKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyYXRlOjptZW06OmFsaWduX29mOjo8JGlkPGkz Mj4+KCkKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKSA9PSAwIHsKLS0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIC8vIHRoZSBwb2ludGVyIGlzIHByb3Blcmx5IGFsaWduZWQs IHNvCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBmcm9tX3NsaWNlX2FsaWdu ZWQgd29uJ3QgZmFpbCBoZXJlIChlLmcuIHRoaXMKLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIC8vIGNhbiBoYXBwZW4gZm9yIGkxMjh4MSkuIFNvIHdlIHBhbmljIHRvIG1ha2UKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoZSAic2hvdWxkX2ZhaWwiIHRlc3Qg cGFzczoKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhbmljISgib2siKTsKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotLQotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAvLyBjcmVhdGUgYSBzbGljZSAtIHRoaXMgaXMgc2FmZSwgYmVjYXVzZSB0aGUKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgLy8gZWxlbWVudHMgb2YgdGhlIHNsaWNlIGV4aXN0LCBh cmUgcHJvcGVybHkKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gaW5pdGlhbGl6ZWQs IGFuZCBwcm9wZXJseSBhbGlnbmVkOgotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQg cyA9IHNsaWNlOjpmcm9tX3Jhd19wYXJ0cygKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHB0ciwgJGlkOjo8aTMyPjo6bGFuZXMoKQotLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICApOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGlzIHNob3VsZCBhbHdheXMg cGFuaWMgYmVjYXVzZSB0aGUgc2xpY2UKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8g YWxpZ25tZW50IGRvZXMgbm90IG1hdGNoIHRoZSBhbGlnbm1lbnQKLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgLy8gcmVxdWlyZW1lbnRzIGZvciB0aGUgdmVjdG9yIHR5cGU6Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGxldCBfdmVjID0gJGlkOjo8aTMyPjo6ZnJvbV9zbGljZV9h bGlnbmVkKHMpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAg ICAgIH0KLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0K LS0gICAgICAgIGltcGw8VD4gJGlkPFQ+IHsKLS0gICAgICAgICAgICAvLy8gV3JpdGVzIHRoZSB2 YWx1ZXMgb2YgdGhlIHZlY3RvciB0byB0aGUgYHNsaWNlYC4KLS0gICAgICAgICAgICAvLy8KLS0g ICAgICAgICAgICAvLy8gIyBQYW5pY3MKLS0gICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAv Ly8gSWYgYHNsaWNlLmxlbigpIDwgU2VsZjo6bGFuZXMoKWAgb3IgYCZzbGljZVswXWAgaXMgbm90 Ci0tICAgICAgICAgICAgLy8vIGFsaWduZWQgdG8gYW4gYGFsaWduX29mOjo8U2VsZj4oKWAgYm91 bmRhcnkuCi0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgcHViIGZuIHdyaXRl X3RvX3NsaWNlX2FsaWduZWQoc2VsZiwgc2xpY2U6ICZtdXQgWyRlbGVtX3R5XSkgewotLSAgICAg ICAgICAgICAgICB1bnNhZmUgewotLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IShzbGljZS5s ZW4oKSA+PSAkZWxlbV9jb3VudCk7Ci0tICAgICAgICAgICAgICAgICAgICBsZXQgdGFyZ2V0X3B0 ciA9IHNsaWNlLmFzX211dF9wdHIoKTsKLS0gICAgICAgICAgICAgICAgICAgIGFzc2VydCEoCi0t ICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0X3B0ci5hbGlnbl9vZmZzZXQoY3JhdGU6Om1l bTo6YWxpZ25fb2Y6OjxTZWxmPigpKQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PSAw Ci0tICAgICAgICAgICAgICAgICAgICApOwotLSAgICAgICAgICAgICAgICAgICAgc2VsZi53cml0 ZV90b19zbGljZV9hbGlnbmVkX3VuY2hlY2tlZChzbGljZSk7Ci0tICAgICAgICAgICAgICAgIH0K LS0gICAgICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgLy8vIFdyaXRlcyB0aGUgdmFsdWVzIG9m IHRoZSB2ZWN0b3IgdG8gdGhlIGBzbGljZWAuCi0tICAgICAgICAgICAgLy8vCi0tICAgICAgICAg ICAgLy8vICMgUGFuaWNzCi0tICAgICAgICAgICAgLy8vCi0tICAgICAgICAgICAgLy8vIElmIGBz bGljZS5sZW4oKSA8IFNlbGY6OmxhbmVzKClgLgotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAg ICAgICAgICAgIHB1YiBmbiB3cml0ZV90b19zbGljZV91bmFsaWduZWQoc2VsZiwgc2xpY2U6ICZt dXQgWyRlbGVtX3R5XSkgewotLSAgICAgICAgICAgICAgICB1bnNhZmUgewotLSAgICAgICAgICAg ICAgICAgICAgYXNzZXJ0IShzbGljZS5sZW4oKSA+PSAkZWxlbV9jb3VudCk7Ci0tICAgICAgICAg ICAgICAgICAgICBzZWxmLndyaXRlX3RvX3NsaWNlX3VuYWxpZ25lZF91bmNoZWNrZWQoc2xpY2Up OwotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgfQotLQotLSAgICAgICAgICAgIC8v LyBXcml0ZXMgdGhlIHZhbHVlcyBvZiB0aGUgdmVjdG9yIHRvIHRoZSBgc2xpY2VgLgotLSAgICAg ICAgICAgIC8vLwotLSAgICAgICAgICAgIC8vLyAjIFNhZmV0eQotLSAgICAgICAgICAgIC8vLwot LSAgICAgICAgICAgIC8vLyBJZiBgc2xpY2UubGVuKCkgPCBTZWxmOjpsYW5lcygpYCBvciBgJnNs aWNlWzBdYCBpcyBub3QKLS0gICAgICAgICAgICAvLy8gYWxpZ25lZCB0byBhbiBgYWxpZ25fb2Y6 OjxTZWxmPigpYCBib3VuZGFyeSwgdGhlIGJlaGF2aW9yIGlzCi0tICAgICAgICAgICAgLy8vIHVu ZGVmaW5lZC4KLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBwdWIgdW5zYWZl IGZuIHdyaXRlX3RvX3NsaWNlX2FsaWduZWRfdW5jaGVja2VkKAotLSAgICAgICAgICAgICAgICBz ZWxmLCBzbGljZTogJm11dCBbJGVsZW1fdHldLAotLSAgICAgICAgICAgICkgewotLSAgICAgICAg ICAgICAgICAjW2FsbG93KGNsaXBweTo6Y2FzdF9wdHJfYWxpZ25tZW50KV0KLS0gICAgICAgICAg ICAgICAgKihzbGljZS5hc19tdXRfcHRyKCkuY2FzdCgpKSA9IHNlbGY7Ci0tICAgICAgICAgICAg fQotLQotLSAgICAgICAgICAgIC8vLyBXcml0ZXMgdGhlIHZhbHVlcyBvZiB0aGUgdmVjdG9yIHRv IHRoZSBgc2xpY2VgLgotLSAgICAgICAgICAgIC8vLwotLSAgICAgICAgICAgIC8vLyAjIFNhZmV0 eQotLSAgICAgICAgICAgIC8vLwotLSAgICAgICAgICAgIC8vLyBJZiBgc2xpY2UubGVuKCkgPCBT ZWxmOjpsYW5lcygpYCB0aGUgYmVoYXZpb3IgaXMgdW5kZWZpbmVkLgotLSAgICAgICAgICAgICNb aW5saW5lXQotLSAgICAgICAgICAgIHB1YiB1bnNhZmUgZm4gd3JpdGVfdG9fc2xpY2VfdW5hbGln bmVkX3VuY2hlY2tlZCgKLS0gICAgICAgICAgICAgICAgc2VsZiwgc2xpY2U6ICZtdXQgWyRlbGVt X3R5XSwKLS0gICAgICAgICAgICApIHsKLS0gICAgICAgICAgICAgICAgbGV0IHRhcmdldF9wdHIg PSBzbGljZS5hc19tdXRfcHRyKCkuY2FzdCgpOwotLSAgICAgICAgICAgICAgICBsZXQgc2VsZl9w dHIgPSAmc2VsZiBhcyAqY29uc3QgU2VsZiBhcyAqY29uc3QgdTg7Ci0tICAgICAgICAgICAgICAg IGNyYXRlOjpwdHI6OmNvcHlfbm9ub3ZlcmxhcHBpbmcoCi0tICAgICAgICAgICAgICAgICAgICBz ZWxmX3B0ciwKLS0gICAgICAgICAgICAgICAgICAgIHRhcmdldF9wdHIsCi0tICAgICAgICAgICAg ICAgICAgICBjcmF0ZTo6bWVtOjpzaXplX29mOjo8U2VsZj4oKSwKLS0gICAgICAgICAgICAgICAg KTsKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tCi0tICAgICAgICB0ZXN0X2lmIXsKLS0g ICAgICAgICAgICAkdGVzdF90dDoKLS0gICAgICAgICAgICBwYXN0ZTo6aXRlbSEgewotLSAgICAg ICAgICAgICAgICBwdWIgbW9kIFs8JGlkIF9zbGljZV93cml0ZV90b19zbGljZT5dIHsKLS0gICAg ICAgICAgICAgICAgICAgIHVzZSBzdXBlcjo6KjsKLS0gICAgICAgICAgICAgICAgICAgIHVzZSBj cmF0ZTo6aXRlcjo6SXRlcmF0b3I7Ci0tCi0tICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRy KG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldCi0tICAgICAgICAgICAgICAgICAg ICAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0K LS0gICAgICAgICAgICAgICAgICAgIGZuIHdyaXRlX3RvX3NsaWNlX3VuYWxpZ25lZCgpIHsKLS0g ICAgICAgICAgICAgICAgICAgICAgICBsZXQgKG51bGwsIG5vbl9udWxsKSA9IHB0cl92YWxzISgk aWQ8aTMyPik7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCB1bmFsaWduZWQgPSBb bnVsbDsgJGlkOjo8aTMyPjo6bGFuZXMoKSArIDFdOwotLSAgICAgICAgICAgICAgICAgICAgICAg IGxldCB2ZWMgPSAkaWQ6OjxpMzI+OjpzcGxhdChub25fbnVsbCk7Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgdmVjLndyaXRlX3RvX3NsaWNlX3VuYWxpZ25lZCgmbXV0IHVuYWxpZ25lZFsxLi5d KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGluZGV4LCAmYikgaW4gdW5hbGlnbmVk Lml0ZXIoKS5lbnVtZXJhdGUoKSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGlu ZGV4ID09IDAgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShi LCBudWxsKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoYiwgbm9uX251bGwpOwotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShiLCB2ZWMuZXh0cmFjdChpbmRl eCAtIDEpKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAg ICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAgICAg ICAgIC8vIEZJWE1FOiB3YXNtLWJpbmRnZW4tdGVzdCBkb2VzIG5vdCBzdXBwb3J0ICNbc2hvdWxk X3BhbmljXQotLSAgICAgICAgICAgICAgICAgICAgLy8gI1tjZmdfYXR0cihub3QodGFyZ2V0X2Fy Y2ggPSAid2FzbTMyIiksIHRlc3QpXQotLSAgICAgICAgICAgICAgICAgICAgLy8gI1tjZmdfYXR0 cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCi0tICAgICAgICAg ICAgICAgICAgICAjW2NmZyhub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIikpXQotLSAgICAgICAg ICAgICAgICAgICAgI1t0ZXN0XQotLSAgICAgICAgICAgICAgICAgICAgI1tzaG91bGRfcGFuaWNd Ci0tICAgICAgICAgICAgICAgICAgICBmbiB3cml0ZV90b19zbGljZV91bmFsaWduZWRfZmFpbCgp IHsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgKG51bGwsIG5vbl9udWxsKSA9IHB0cl92 YWxzISgkaWQ8aTMyPik7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCB1bmFsaWdu ZWQgPSBbbnVsbDsgJGlkOjo8aTMyPjo6bGFuZXMoKSArIDFdOwotLSAgICAgICAgICAgICAgICAg ICAgICAgIGxldCB2ZWMgPSAkaWQ6OjxpMzI+OjpzcGxhdChub25fbnVsbCk7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgLy8gdGhlIHNsaWNlIGlzIG5vdCBsYXJnZSBlbm91Z2ggPT4gcGFuaWMK LS0gICAgICAgICAgICAgICAgICAgICAgICB2ZWMud3JpdGVfdG9fc2xpY2VfdW5hbGlnbmVkKCZt dXQgdW5hbGlnbmVkWzIuLl0pOwotLSAgICAgICAgICAgICAgICAgICAgfQotLQotLSAgICAgICAg ICAgICAgICAgICAgdW5pb24gQSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgZGF0YTogWzwk aWQ8aTMyPiBhcyBzZWFsZWQ6OlNpbWQ+OjpFbGVtZW50OwotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAyICogJGlkOjo8aTMyPjo6bGFuZXMoKV0sCi0tICAgICAgICAgICAgICAgICAg ICAgICAgX3ZlYzogJGlkPGkzMj4sCi0tICAgICAgICAgICAgICAgICAgICB9Ci0tCi0tICAgICAg ICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVz dCldCi0tICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20z MiIsIHdhc21fYmluZGdlbl90ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgIGZuIHdyaXRlX3Rv X3NsaWNlX2FsaWduZWQoKSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IChudWxsLCBu b25fbnVsbCkgPSBwdHJfdmFscyEoJGlkPGkzMj4pOwotLSAgICAgICAgICAgICAgICAgICAgICAg IGxldCBtdXQgYWxpZ25lZCA9IEEgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRh OiBbbnVsbDsgMiAqICRpZDo6PGkzMj46OmxhbmVzKCldLAotLSAgICAgICAgICAgICAgICAgICAg ICAgIH07Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHZlYyA9ICRpZDo6PGkzMj46OnNw bGF0KG5vbl9udWxsKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICB1bnNhZmUgewotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICB2ZWMud3JpdGVfdG9fc2xpY2VfYWxpZ25lZCgKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICZtdXQgYWxpZ25lZC5kYXRhWyRpZDo6PGkzMj46 OmxhbmVzKCkuLl0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKQotLSAgICAgICAgICAg ICAgICAgICAgICAgIH07Ci0tICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChpbmRleCwgJmIp IGluCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2FmZSB7IGFsaWduZWQuZGF0YS5p dGVyKCkuZW51bWVyYXRlKCkgfSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGlu ZGV4IDwgJGlkOjo8aTMyPjo6bGFuZXMoKSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBhc3NlcnRfZXEhKGIsIG51bGwpOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 IGVsc2UgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShiLCBu b25fbnVsbCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKAot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGIsIHZlYy5leHRyYWN0KGluZGV4 IC0gJGlkOjo8aTMyPjo6bGFuZXMoKSkKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAg ICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgICAgICAgICAv LyBGSVhNRTogd2FzbS1iaW5kZ2VuLXRlc3QgZG9lcyBub3Qgc3VwcG9ydCAjW3Nob3VsZF9wYW5p Y10KLS0gICAgICAgICAgICAgICAgICAgIC8vICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0g Indhc20zMiIpLCB0ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgIC8vICNbY2ZnX2F0dHIodGFy Z2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQotLSAgICAgICAgICAgICAg ICAgICAgI1tjZmcobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpKV0KLS0gICAgICAgICAgICAg ICAgICAgICNbdGVzdF0KLS0gICAgICAgICAgICAgICAgICAgICNbc2hvdWxkX3BhbmljXQotLSAg ICAgICAgICAgICAgICAgICAgZm4gd3JpdGVfdG9fc2xpY2VfYWxpZ25lZF9mYWlsX2xhbmVzKCkg ewotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCAobnVsbCwgbm9uX251bGwpID0gcHRyX3Zh bHMhKCRpZDxpMzI+KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IGFsaWduZWQg PSBBIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YTogW251bGw7IDIgKiAkaWQ6 OjxpMzI+OjpsYW5lcygpXSwKLS0gICAgICAgICAgICAgICAgICAgICAgICB9OwotLSAgICAgICAg ICAgICAgICAgICAgICAgIGxldCB2ZWMgPSAkaWQ6OjxpMzI+OjpzcGxhdChub25fbnVsbCk7Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhlIHNsaWNlIGlzIG5vdCBsYXJnZSBlbm91Z2gg PT4gcGFuaWMKLS0gICAgICAgICAgICAgICAgICAgICAgICB1bnNhZmUgewotLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICB2ZWMud3JpdGVfdG9fc2xpY2VfYWxpZ25lZCgKLS0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICZtdXQgYWxpZ25lZC5kYXRhWzIgKiAkaWQ6OjxpMzI+Ojps YW5lcygpLi5dCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKLS0gICAgICAgICAgICAg ICAgICAgICAgICB9OwotLSAgICAgICAgICAgICAgICAgICAgfQotLQotLSAgICAgICAgICAgICAg ICAgICAgLy8gRklYTUU6IHdhc20tYmluZGdlbi10ZXN0IGRvZXMgbm90IHN1cHBvcnQgI1tzaG91 bGRfcGFuaWNdCi0tICAgICAgICAgICAgICAgICAgICAvLyAjW2NmZ19hdHRyKG5vdCh0YXJnZXRf YXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldCi0tICAgICAgICAgICAgICAgICAgICAvLyAjW2NmZ19h dHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KLS0gICAgICAg ICAgICAgICAgICAgICNbY2ZnKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSldCi0tICAgICAg ICAgICAgICAgICAgICAjW3Rlc3RdCi0tICAgICAgICAgICAgICAgICAgICAjW3Nob3VsZF9wYW5p Y10KLS0gICAgICAgICAgICAgICAgICAgIGZuIHdyaXRlX3RvX3NsaWNlX2FsaWduZWRfZmFpbF9h bGlnbigpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgKG51bGwsIG5vbl9udWxsKSA9 IHB0cl92YWxzISgkaWQ8aTMyPik7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgdW5zYWZlIHsK LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBhbGlnbmVkID0gQSB7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhOiBbbnVsbDsgMiAqICRpZDo6PGkzMj46 OmxhbmVzKCldLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9OwotLQotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAvLyBnZXQgYSBwb2ludGVyIHRvIHRoZSBmcm9udCBvZiBkYXRh Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBwdHIgPSBhbGlnbmVkLmRhdGEuYXNf bXV0X3B0cigpOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBvZmZzZXQgcG9pbnRl ciBieSBvbmUgZWxlbWVudAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgcHRyID0g cHRyLndyYXBwaW5nX2FkZCgxKTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYg cHRyLmFsaWduX29mZnNldCgKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyYXRl OjptZW06OmFsaWduX29mOjo8JGlkPGkzMj4+KCkKLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgKSA9PSAwIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoZSBwb2lu dGVyIGlzIHByb3Blcmx5IGFsaWduZWQsIHNvCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAvLyB3cml0ZV90b19zbGljZV9hbGlnbmVkIHdvbid0IGZhaWwgaGVyZSAoZS5nLgotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhpcyBjYW4gaGFwcGVuIGZvciBpMTI4 eDEpLiBTbyB3ZSBwYW5pYyB0bwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8g bWFrZSB0aGUgInNob3VsZF9mYWlsIiB0ZXN0IHBhc3M6Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBwYW5pYyEoIm9rIik7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K LS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY3JlYXRlIGEgc2xpY2UgLSB0aGlz IGlzIHNhZmUsIGJlY2F1c2UgdGhlCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGVs ZW1lbnRzIG9mIHRoZSBzbGljZSBleGlzdCwgYXJlIHByb3Blcmx5Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgIC8vIGluaXRpYWxpemVkLCBhbmQgcHJvcGVybHkgYWxpZ25lZDoKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHMgPSBzbGljZTo6ZnJvbV9yYXdfcGFydHNfbXV0 KAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHRyLCAkaWQ6OjxpMzI+OjpsYW5l cygpCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC8vIHRoaXMgc2hvdWxkIGFsd2F5cyBwYW5pYyBiZWNhdXNlIHRoZSBzbGljZQot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBhbGlnbm1lbnQgZG9lcyBub3QgbWF0Y2gg dGhlIGFsaWdubWVudAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByZXF1aXJlbWVu dHMgZm9yIHRoZSB2ZWN0b3IgdHlwZToKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0 IHZlYyA9ICRpZDo6PGkzMj46OnNwbGF0KG5vbl9udWxsKTsKLS0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgdmVjLndyaXRlX3RvX3NsaWNlX2FsaWduZWQocyk7Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICB9Ci0t ICAgICAgICAgICAgfQotLSAgICAgICAgfQotLQotLSAgICAgICAgaW1wbDxUPiBjcmF0ZTo6aGFz aDo6SGFzaCBmb3IgJGlkPFQ+IHsKLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAg ICBmbiBoYXNoPEg6IGNyYXRlOjpoYXNoOjpIYXNoZXI+KCZzZWxmLCBzdGF0ZTogJm11dCBIKSB7 Ci0tICAgICAgICAgICAgICAgIGxldCBzOiAkdXNpemVfdHkgPSB1bnNhZmUgeyBjcmF0ZTo6bWVt Ojp0cmFuc211dGUoKnNlbGYpIH07Ci0tICAgICAgICAgICAgICAgIHMuaGFzaChzdGF0ZSkKLS0g ICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tCi0tICAgICAgICB0ZXN0X2lmISB7Ci0tICAgICAg ICAgICAgJHRlc3RfdHQ6Ci0tICAgICAgICAgICAgcGFzdGU6Oml0ZW0hIHsKLS0gICAgICAgICAg ICAgICAgcHViIG1vZCBbPCRpZCBfaGFzaD5dIHsKLS0gICAgICAgICAgICAgICAgICAgIHVzZSBz dXBlcjo6KjsKLS0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNo ID0gIndhc20zMiIpLCB0ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIodGFy Z2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQotLSAgICAgICAgICAgICAg ICAgICAgZm4gaGFzaCgpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICB1c2UgY3JhdGU6Omhh c2g6OntIYXNoLCBIYXNoZXJ9OwotLSAgICAgICAgICAgICAgICAgICAgICAgICNbYWxsb3coZGVw cmVjYXRlZCldCi0tICAgICAgICAgICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpoYXNoOjp7U2lw SGFzaGVyMTN9OwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2YWx1ZXMgPSBbMV9p MzI7ICRlbGVtX2NvdW50XTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IHZl YzogJGlkPGkzMj4gPSBEZWZhdWx0OjpkZWZhdWx0KCk7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgbGV0IG11dCBhcnJheSA9IFsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGlkOjo8 aTMyPjo6bnVsbCgpLmV4dHJhY3QoMCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICRl bGVtX2NvdW50Ci0tICAgICAgICAgICAgICAgICAgICAgICAgXTsKLS0KLS0gICAgICAgICAgICAg ICAgICAgICAgICBmb3IgaSBpbiAwLi4kZWxlbV9jb3VudCB7Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGxldCBwdHIgPSAmdmFsdWVzW2ldIGFzICpjb25zdCBpMzIgYXMgKm11dCBpMzI7 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlYyA9IHZlYy5yZXBsYWNlKGksIHB0cik7 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFycmF5W2ldID0gcHRyOwotLSAgICAgICAg ICAgICAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAjW2FsbG93KGRl cHJlY2F0ZWQpXQotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgYV9oYXNoID0gU2lw SGFzaGVyMTM6Om5ldygpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgdl9oYXNo ID0gYV9oYXNoLmNsb25lKCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXJyYXkuaGFzaCgm bXV0IGFfaGFzaCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgdmVjLmhhc2goJm11dCB2X2hh c2gpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoYV9oYXNoLmZpbmlzaCgp LCB2X2hhc2guZmluaXNoKCkpOwotLSAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAg ICAgICB9Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLQotLSAgICAgICAgaW1wbDxUPiAk aWQ8VD4gewotLSAgICAgICAgICAgIC8vLyBDYWxjdWxhdGVzIHRoZSBvZmZzZXQgZnJvbSBhIHBv aW50ZXIuCi0tICAgICAgICAgICAgLy8vCi0tICAgICAgICAgICAgLy8vIGBjb3VudGAgaXMgaW4g dW5pdHMgb2YgYFRgOyBlLmcuIGEgY291bnQgb2YgYDNgIHJlcHJlc2VudHMgYQotLSAgICAgICAg ICAgIC8vLyBwb2ludGVyIG9mZnNldCBvZiBgMyAqIHNpemVfb2Y6OjxUPigpYCBieXRlcy4KLS0g ICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAvLy8gIyBTYWZldHkKLS0gICAgICAgICAgICAv Ly8KLS0gICAgICAgICAgICAvLy8gSWYgYW55IG9mIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBh cmUgdmlvbGF0ZWQsIHRoZSByZXN1bHQgaXMKLS0gICAgICAgICAgICAvLy8gVW5kZWZpbmVkIEJl aGF2aW9yOgotLSAgICAgICAgICAgIC8vLwotLSAgICAgICAgICAgIC8vLyAqIEJvdGggdGhlIHN0 YXJ0aW5nIGFuZCByZXN1bHRpbmcgcG9pbnRlciBtdXN0IGJlIGVpdGhlciBpbgotLSAgICAgICAg ICAgIC8vLyBib3VuZHMgb3Igb25lIGJ5dGUgcGFzdCB0aGUgZW5kIG9mIGFuIGFsbG9jYXRlZCBv YmplY3QuCi0tICAgICAgICAgICAgLy8vCi0tICAgICAgICAgICAgLy8vICogVGhlIGNvbXB1dGVk IG9mZnNldCwgaW4gYnl0ZXMsIGNhbm5vdCBvdmVyZmxvdyBhbiBgaXNpemVgLgotLSAgICAgICAg ICAgIC8vLwotLSAgICAgICAgICAgIC8vLyAqIFRoZSBvZmZzZXQgYmVpbmcgaW4gYm91bmRzIGNh bm5vdCByZWx5IG9uICJ3cmFwcGluZyBhcm91bmQiCi0tICAgICAgICAgICAgLy8vIHRoZSBhZGRy ZXNzIHNwYWNlLiBUaGF0IGlzLCB0aGUgaW5maW5pdGUtcHJlY2lzaW9uIHN1bSwgaW4gYnl0ZXMK LS0gICAgICAgICAgICAvLy8gbXVzdCBmaXQgaW4gYSBgdXNpemVgLgotLSAgICAgICAgICAgIC8v LwotLSAgICAgICAgICAgIC8vLyBUaGUgY29tcGlsZXIgYW5kIHN0YW5kYXJkIGxpYnJhcnkgZ2Vu ZXJhbGx5IHRyaWVzIHRvIGVuc3VyZQotLSAgICAgICAgICAgIC8vLyBhbGxvY2F0aW9ucyBuZXZl ciByZWFjaCBhIHNpemUgd2hlcmUgYW4gb2Zmc2V0IGlzIGEgY29uY2Vybi4gRm9yCi0tICAgICAg ICAgICAgLy8vIGluc3RhbmNlLCBgVmVjYCBhbmQgYEJveGAgZW5zdXJlIHRoZXkgbmV2ZXIgYWxs b2NhdGUgbW9yZSB0aGFuCi0tICAgICAgICAgICAgLy8vIGBpc2l6ZTo6TUFYYCBieXRlcywgc28g YHZlYy5hc19wdHIoKS5vZmZzZXQodmVjLmxlbigpIGFzIGlzaXplKWAKLS0gICAgICAgICAgICAv Ly8gaXMgYWx3YXlzIHNhZmUuCi0tICAgICAgICAgICAgLy8vCi0tICAgICAgICAgICAgLy8vIE1v c3QgcGxhdGZvcm1zIGZ1bmRhbWVudGFsbHkgY2FuJ3QgZXZlbiBjb25zdHJ1Y3Qgc3VjaCBhbgot LSAgICAgICAgICAgIC8vLyBhbGxvY2F0aW9uLiBGb3IgaW5zdGFuY2UsIG5vIGtub3duIDY0LWJp dCBwbGF0Zm9ybSBjYW4gZXZlcgotLSAgICAgICAgICAgIC8vLyBzZXJ2ZSBhIHJlcXVlc3QgZm9y IDI2MyBieXRlcyBkdWUgdG8gcGFnZS10YWJsZSBsaW1pdGF0aW9ucyBvcgotLSAgICAgICAgICAg IC8vLyBzcGxpdHRpbmcgdGhlIGFkZHJlc3Mgc3BhY2UuIEhvd2V2ZXIsIHNvbWUgMzItYml0IGFu ZCAxNi1iaXQKLS0gICAgICAgICAgICAvLy8gcGxhdGZvcm1zIG1heSBzdWNjZXNzZnVsbHkgc2Vy dmUgYSByZXF1ZXN0IGZvciBtb3JlIHRoYW4KLS0gICAgICAgICAgICAvLy8gYGlzaXplOjpNQVhg IGJ5dGVzIHdpdGggdGhpbmdzIGxpa2UgUGh5c2ljYWwgQWRkcmVzcyBFeHRlbnNpb24uCi0tICAg ICAgICAgICAgLy8vIEFzIHN1Y2gsIG1lbW9yeSBhY3F1aXJlZCBkaXJlY3RseSBmcm9tIGFsbG9j YXRvcnMgb3IgbWVtb3J5Ci0tICAgICAgICAgICAgLy8vIG1hcHBlZCBmaWxlcyBtYXkgYmUgdG9v IGxhcmdlIHRvIGhhbmRsZSB3aXRoIHRoaXMgZnVuY3Rpb24uCi0tICAgICAgICAgICAgLy8vCi0t ICAgICAgICAgICAgLy8vIENvbnNpZGVyIHVzaW5nIGB3cmFwcGluZ19vZmZzZXRgIGluc3RlYWQg aWYgdGhlc2UgY29uc3RyYWludHMKLS0gICAgICAgICAgICAvLy8gYXJlIGRpZmZpY3VsdCB0byBz YXRpc2Z5LiBUaGUgb25seSBhZHZhbnRhZ2Ugb2YgdGhpcyBtZXRob2QgaXMKLS0gICAgICAgICAg ICAvLy8gdGhhdCBpdCBlbmFibGVzIG1vcmUgYWdncmVzc2l2ZSBjb21waWxlciBvcHRpbWl6YXRp b25zLgotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIHB1YiB1bnNhZmUgZm4g b2Zmc2V0KHNlbGYsIGNvdW50OiAkaXNpemVfdHkpIC0+IFNlbGYgewotLSAgICAgICAgICAgICAg ICAvLyBGSVhNRTogc2hvdWxkIHVzZSBMTFZNJ3MgYGFkZCBuc3cgbnV3YAotLSAgICAgICAgICAg ICAgICBzZWxmLndyYXBwaW5nX29mZnNldChjb3VudCkKLS0gICAgICAgICAgICB9Ci0tCi0tICAg ICAgICAgICAgLy8vIENhbGN1bGF0ZXMgdGhlIG9mZnNldCBmcm9tIGEgcG9pbnRlciB1c2luZyB3 cmFwcGluZyBhcml0aG1ldGljLgotLSAgICAgICAgICAgIC8vLwotLSAgICAgICAgICAgIC8vLyBg Y291bnRgIGlzIGluIHVuaXRzIG9mIGBUYDsgZS5nLiBhIGNvdW50IG9mIGAzYCByZXByZXNlbnRz IGEKLS0gICAgICAgICAgICAvLy8gcG9pbnRlciBvZmZzZXQgb2YgYDMgKiBzaXplX29mOjo8VD4o KWAgYnl0ZXMuCi0tICAgICAgICAgICAgLy8vCi0tICAgICAgICAgICAgLy8vICMgU2FmZXR5Ci0t ICAgICAgICAgICAgLy8vCi0tICAgICAgICAgICAgLy8vIFRoZSByZXN1bHRpbmcgcG9pbnRlciBk b2VzIG5vdCBuZWVkIHRvIGJlIGluIGJvdW5kcywgYnV0IGl0IGlzCi0tICAgICAgICAgICAgLy8v IHBvdGVudGlhbGx5IGhhemFyZG91cyB0byBkZXJlZmVyZW5jZSAod2hpY2ggcmVxdWlyZXMgdW5z YWZlKS4KLS0gICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAvLy8gQWx3YXlzIHVzZSBgLm9m ZnNldChjb3VudClgIGluc3RlYWQgd2hlbiBwb3NzaWJsZSwgYmVjYXVzZQotLSAgICAgICAgICAg IC8vLyBvZmZzZXQgYWxsb3dzIHRoZSBjb21waWxlciB0byBvcHRpbWl6ZSBiZXR0ZXIuCi0tICAg ICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgcHViIGZuIHdyYXBwaW5nX29mZnNldChz ZWxmLCBjb3VudDogJGlzaXplX3R5KSAtPiBTZWxmIHsKLS0gICAgICAgICAgICAgICAgdW5zYWZl IHsKLS0gICAgICAgICAgICAgICAgICAgIGxldCB4OiAkaXNpemVfdHkgPSBjcmF0ZTo6bWVtOjp0 cmFuc211dGUoc2VsZik7Ci0tICAgICAgICAgICAgICAgICAgICAvLyBub3RlOiB7KywqfSBjdXJy ZW50bHkgcGVyZm9ybXMgYSBgd3JhcHBpbmdfe2FkZCwgbXVsfWAKLS0gICAgICAgICAgICAgICAg ICAgIGNyYXRlOjptZW06OnRyYW5zbXV0ZSgKLS0gICAgICAgICAgICAgICAgICAgICAgICB4ICsg KGNvdW50ICogY3JhdGU6Om1lbTo6c2l6ZV9vZjo6PFQ+KCkgYXMgaXNpemUpCi0tICAgICAgICAg ICAgICAgICAgICApCi0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICB9Ci0tCi0tICAg ICAgICAgICAgLy8vIENhbGN1bGF0ZXMgdGhlIGRpc3RhbmNlIGJldHdlZW4gdHdvIHBvaW50ZXJz LgotLSAgICAgICAgICAgIC8vLwotLSAgICAgICAgICAgIC8vLyBUaGUgcmV0dXJuZWQgdmFsdWUg aXMgaW4gdW5pdHMgb2YgYFRgOiB0aGUgZGlzdGFuY2UgaW4gYnl0ZXMgaXMKLS0gICAgICAgICAg ICAvLy8gZGl2aWRlZCBieSBgbWVtOjpzaXplX29mOjo8VD4oKWAuCi0tICAgICAgICAgICAgLy8v Ci0tICAgICAgICAgICAgLy8vIFRoaXMgZnVuY3Rpb24gaXMgdGhlIGludmVyc2Ugb2Ygb2Zmc2V0 LgotLSAgICAgICAgICAgIC8vLwotLSAgICAgICAgICAgIC8vLyAjIFNhZmV0eQotLSAgICAgICAg ICAgIC8vLwotLSAgICAgICAgICAgIC8vLyBJZiBhbnkgb2YgdGhlIGZvbGxvd2luZyBjb25kaXRp b25zIGFyZSB2aW9sYXRlZCwgdGhlIHJlc3VsdCBpcwotLSAgICAgICAgICAgIC8vLyBVbmRlZmlu ZWQgQmVoYXZpb3I6Ci0tICAgICAgICAgICAgLy8vCi0tICAgICAgICAgICAgLy8vICogQm90aCB0 aGUgc3RhcnRpbmcgYW5kIG90aGVyIHBvaW50ZXIgbXVzdCBiZSBlaXRoZXIgaW4gYm91bmRzCi0t ICAgICAgICAgICAgLy8vIG9yIG9uZSBieXRlIHBhc3QgdGhlIGVuZCBvZiB0aGUgc2FtZSBhbGxv Y2F0ZWQgb2JqZWN0LgotLSAgICAgICAgICAgIC8vLwotLSAgICAgICAgICAgIC8vLyAqIFRoZSBk aXN0YW5jZSBiZXR3ZWVuIHRoZSBwb2ludGVycywgaW4gYnl0ZXMsIGNhbm5vdCBvdmVyZmxvdwot LSAgICAgICAgICAgIC8vLyBhbiBgaXNpemVgLgotLSAgICAgICAgICAgIC8vLwotLSAgICAgICAg ICAgIC8vLyAqIFRoZSBkaXN0YW5jZSBiZXR3ZWVuIHRoZSBwb2ludGVycywgaW4gYnl0ZXMsIG11 c3QgYmUgYW4gZXhhY3QKLS0gICAgICAgICAgICAvLy8gbXVsdGlwbGUgb2YgdGhlIHNpemUgb2Yg YFRgLgotLSAgICAgICAgICAgIC8vLwotLSAgICAgICAgICAgIC8vLyAqIFRoZSBkaXN0YW5jZSBi ZWluZyBpbiBib3VuZHMgY2Fubm90IHJlbHkgb24gIndyYXBwaW5nIGFyb3VuZCIKLS0gICAgICAg ICAgICAvLy8gdGhlIGFkZHJlc3Mgc3BhY2UuCi0tICAgICAgICAgICAgLy8vCi0tICAgICAgICAg ICAgLy8vIFRoZSBjb21waWxlciBhbmQgc3RhbmRhcmQgbGlicmFyeSBnZW5lcmFsbHkgdHJ5IHRv IGVuc3VyZQotLSAgICAgICAgICAgIC8vLyBhbGxvY2F0aW9ucyBuZXZlciByZWFjaCBhIHNpemUg d2hlcmUgYW4gb2Zmc2V0IGlzIGEgY29uY2Vybi4gRm9yCi0tICAgICAgICAgICAgLy8vIGluc3Rh bmNlLCBgVmVjYCBhbmQgYEJveGAgZW5zdXJlIHRoZXkgbmV2ZXIgYWxsb2NhdGUgbW9yZSB0aGFu Ci0tICAgICAgICAgICAgLy8vIGBpc2l6ZTo6TUFYYCBieXRlcywgc28gYHB0cl9pbnRvX3ZlYy5v ZmZzZXRfZnJvbSh2ZWMuYXNfcHRyKCkpYAotLSAgICAgICAgICAgIC8vLyBpcyBhbHdheXMgc2Fm ZS4KLS0gICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAvLy8gTW9zdCBwbGF0Zm9ybXMgZnVu ZGFtZW50YWxseSBjYW4ndCBldmVuIGNvbnN0cnVjdCBzdWNoIGFuCi0tICAgICAgICAgICAgLy8v IGFsbG9jYXRpb24uIEZvciBpbnN0YW5jZSwgbm8ga25vd24gNjQtYml0IHBsYXRmb3JtIGNhbiBl dmVyCi0tICAgICAgICAgICAgLy8vIHNlcnZlIGEgcmVxdWVzdCBmb3IgMjYzIGJ5dGVzIGR1ZSB0 byBwYWdlLXRhYmxlIGxpbWl0YXRpb25zIG9yCi0tICAgICAgICAgICAgLy8vIHNwbGl0dGluZyB0 aGUgYWRkcmVzcyBzcGFjZS4gSG93ZXZlciwgc29tZSAzMi1iaXQgYW5kIDE2LWJpdAotLSAgICAg ICAgICAgIC8vLyBwbGF0Zm9ybXMgbWF5IHN1Y2Nlc3NmdWxseSBzZXJ2ZSBhIHJlcXVlc3QgZm9y IG1vcmUgdGhhbgotLSAgICAgICAgICAgIC8vLyBgaXNpemU6Ok1BWGAgYnl0ZXMgd2l0aCB0aGlu Z3MgbGlrZSBQaHlzaWNhbCBBZGRyZXNzIEV4dGVuc2lvbi4KLS0gICAgICAgICAgICAvLy8gQXMg c3VjaCwgbWVtb3J5IGFjcXVpcmVkIGRpcmVjdGx5IGZyb20gYWxsb2NhdG9ycyBvciBtZW1vcnkK LS0gICAgICAgICAgICAvLy8gbWFwcGVkIGZpbGVzIG1heSBiZSB0b28gbGFyZ2UgdG8gaGFuZGxl IHdpdGggdGhpcyBmdW5jdGlvbi4KLS0gICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAvLy8g Q29uc2lkZXIgdXNpbmcgYHdyYXBwaW5nX29mZnNldF9mcm9tYCBpbnN0ZWFkIGlmIHRoZXNlIGNv bnN0cmFpbnRzCi0tICAgICAgICAgICAgLy8vIGFyZSBkaWZmaWN1bHQgdG8gc2F0aXNmeS4gVGhl IG9ubHkgYWR2YW50YWdlIG9mIHRoaXMgbWV0aG9kIGlzCi0tICAgICAgICAgICAgLy8vIHRoYXQg aXQgZW5hYmxlcyBtb3JlIGFnZ3Jlc3NpdmUgY29tcGlsZXIgb3B0aW1pemF0aW9ucy4KLS0gICAg ICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBwdWIgdW5zYWZlIGZuIG9mZnNldF9mcm9t KHNlbGYsIG9yaWdpbjogU2VsZikgLT4gJGlzaXplX3R5IHsKLS0gICAgICAgICAgICAgICAgLy8g RklYTUU6IHNob3VsZCB1c2UgTExWTSdzIGBzdWIgbnN3IG51d2AuCi0tICAgICAgICAgICAgICAg IHNlbGYud3JhcHBpbmdfb2Zmc2V0X2Zyb20ob3JpZ2luKQotLSAgICAgICAgICAgIH0KLS0KLS0g ICAgICAgICAgICAvLy8gQ2FsY3VsYXRlcyB0aGUgZGlzdGFuY2UgYmV0d2VlbiB0d28gcG9pbnRl cnMuCi0tICAgICAgICAgICAgLy8vCi0tICAgICAgICAgICAgLy8vIFRoZSByZXR1cm5lZCB2YWx1 ZSBpcyBpbiB1bml0cyBvZiBgVGA6IHRoZSBkaXN0YW5jZSBpbiBieXRlcyBpcwotLSAgICAgICAg ICAgIC8vLyBkaXZpZGVkIGJ5IGBtZW06OnNpemVfb2Y6OjxUPigpYC4KLS0gICAgICAgICAgICAv Ly8KLS0gICAgICAgICAgICAvLy8gSWYgdGhlIGFkZHJlc3MgZGlmZmVyZW50IGJldHdlZW4gdGhl IHR3byBwb2ludGVycyBpcyBub3QgYQotLSAgICAgICAgICAgIC8vLyBtdWx0aXBsZSBvZiBgbWVt OjpzaXplX29mOjo8VD4oKWAgdGhlbiB0aGUgcmVzdWx0IG9mIHRoZQotLSAgICAgICAgICAgIC8v LyBkaXZpc2lvbiBpcyByb3VuZGVkIHRvd2FyZHMgemVyby4KLS0gICAgICAgICAgICAvLy8KLS0g ICAgICAgICAgICAvLy8gVGhvdWdoIHRoaXMgbWV0aG9kIGlzIHNhZmUgZm9yIGFueSB0d28gcG9p bnRlcnMsIG5vdGUgdGhhdCBpdHMKLS0gICAgICAgICAgICAvLy8gcmVzdWx0IHdpbGwgYmUgbW9z dGx5IHVzZWxlc3MgaWYgdGhlIHR3byBwb2ludGVycyBhcmVuJ3QgaW50bwotLSAgICAgICAgICAg IC8vLyB0aGUgc2FtZSBhbGxvY2F0ZWQgb2JqZWN0LCBmb3IgZXhhbXBsZSBpZiB0aGV5IHBvaW50 IHRvIHR3bwotLSAgICAgICAgICAgIC8vLyBkaWZmZXJlbnQgbG9jYWwgdmFyaWFibGVzLgotLSAg ICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIHB1YiBmbiB3cmFwcGluZ19vZmZzZXRf ZnJvbShzZWxmLCBvcmlnaW46IFNlbGYpIC0+ICRpc2l6ZV90eSB7Ci0tICAgICAgICAgICAgICAg IGxldCB4OiAkaXNpemVfdHkgPSB1bnNhZmUgeyBjcmF0ZTo6bWVtOjp0cmFuc211dGUoc2VsZikg fTsKLS0gICAgICAgICAgICAgICAgbGV0IHk6ICRpc2l6ZV90eSA9IHVuc2FmZSB7IGNyYXRlOjpt ZW06OnRyYW5zbXV0ZShvcmlnaW4pIH07Ci0tICAgICAgICAgICAgICAgIC8vIG5vdGU6IHstLC99 IGN1cnJlbnRseSBwZXJmb3JtIHdyYXBwaW5nX3tzdWIsIGRpdn0KLS0gICAgICAgICAgICAgICAg KHkgLSB4KSAvIChjcmF0ZTo6bWVtOjpzaXplX29mOjo8VD4oKSBhcyBpc2l6ZSkKLS0gICAgICAg ICAgICB9Ci0tCi0tICAgICAgICAgICAgLy8vIENhbGN1bGF0ZXMgdGhlIG9mZnNldCBmcm9tIGEg cG9pbnRlciAoY29udmVuaWVuY2UgZm9yCi0tICAgICAgICAgICAgLy8vIGAub2Zmc2V0KGNvdW50 IGFzIGlzaXplKWApLgotLSAgICAgICAgICAgIC8vLwotLSAgICAgICAgICAgIC8vLyBgY291bnRg IGlzIGluIHVuaXRzIG9mIGBUYDsgZS5nLiBhIGNvdW50IG9mIDMgcmVwcmVzZW50cyBhCi0tICAg ICAgICAgICAgLy8vIHBvaW50ZXIgb2Zmc2V0IG9mIGAzICogc2l6ZV9vZjo6PFQ+KClgIGJ5dGVz LgotLSAgICAgICAgICAgIC8vLwotLSAgICAgICAgICAgIC8vLyAjIFNhZmV0eQotLSAgICAgICAg ICAgIC8vLwotLSAgICAgICAgICAgIC8vLyBJZiBhbnkgb2YgdGhlIGZvbGxvd2luZyBjb25kaXRp b25zIGFyZSB2aW9sYXRlZCwgdGhlIHJlc3VsdCBpcwotLSAgICAgICAgICAgIC8vLyBVbmRlZmlu ZWQgQmVoYXZpb3I6Ci0tICAgICAgICAgICAgLy8vCi0tICAgICAgICAgICAgLy8vICogQm90aCB0 aGUgc3RhcnRpbmcgYW5kIHJlc3VsdGluZyBwb2ludGVyIG11c3QgYmUgZWl0aGVyIGluCi0tICAg ICAgICAgICAgLy8vIGJvdW5kcyBvciBvbmUgYnl0ZSBwYXN0IHRoZSBlbmQgb2YgYW4gYWxsb2Nh dGVkIG9iamVjdC4KLS0gICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAvLy8gKiBUaGUgY29t cHV0ZWQgb2Zmc2V0LCBpbiBieXRlcywgY2Fubm90IG92ZXJmbG93IGFuIGBpc2l6ZWAuCi0tICAg ICAgICAgICAgLy8vCi0tICAgICAgICAgICAgLy8vICogVGhlIG9mZnNldCBiZWluZyBpbiBib3Vu ZHMgY2Fubm90IHJlbHkgb24gIndyYXBwaW5nIGFyb3VuZCIKLS0gICAgICAgICAgICAvLy8gdGhl IGFkZHJlc3Mgc3BhY2UuIFRoYXQgaXMsIHRoZSBpbmZpbml0ZS1wcmVjaXNpb24gc3VtIG11c3Qg Zml0Ci0tICAgICAgICAgICAgLy8vIGluIGEgYHVzaXplYC4KLS0gICAgICAgICAgICAvLy8KLS0g ICAgICAgICAgICAvLy8gVGhlIGNvbXBpbGVyIGFuZCBzdGFuZGFyZCBsaWJyYXJ5IGdlbmVyYWxs eSB0cmllcyB0byBlbnN1cmUKLS0gICAgICAgICAgICAvLy8gYWxsb2NhdGlvbnMgbmV2ZXIgcmVh Y2ggYSBzaXplIHdoZXJlIGFuIG9mZnNldCBpcyBhIGNvbmNlcm4uIEZvcgotLSAgICAgICAgICAg IC8vLyBpbnN0YW5jZSwgYFZlY2AgYW5kIGBCb3hgIGVuc3VyZSB0aGV5IG5ldmVyIGFsbG9jYXRl IG1vcmUgdGhhbgotLSAgICAgICAgICAgIC8vLyBgaXNpemU6Ok1BWGAgYnl0ZXMsIHNvIGB2ZWMu YXNfcHRyKCkuYWRkKHZlYy5sZW4oKSlgIGlzIGFsd2F5cwotLSAgICAgICAgICAgIC8vLyBzYWZl LgotLSAgICAgICAgICAgIC8vLwotLSAgICAgICAgICAgIC8vLyBNb3N0IHBsYXRmb3JtcyBmdW5k YW1lbnRhbGx5IGNhbid0IGV2ZW4gY29uc3RydWN0IHN1Y2ggYW4KLS0gICAgICAgICAgICAvLy8g YWxsb2NhdGlvbi4gRm9yIGluc3RhbmNlLCBubyBrbm93biA2NC1iaXQgcGxhdGZvcm0gY2FuIGV2 ZXIKLS0gICAgICAgICAgICAvLy8gc2VydmUgYSByZXF1ZXN0IGZvciAyNjMgYnl0ZXMgZHVlIHRv IHBhZ2UtdGFibGUgbGltaXRhdGlvbnMgb3IKLS0gICAgICAgICAgICAvLy8gc3BsaXR0aW5nIHRo ZSBhZGRyZXNzIHNwYWNlLiBIb3dldmVyLCBzb21lIDMyLWJpdCBhbmQgMTYtYml0Ci0tICAgICAg ICAgICAgLy8vIHBsYXRmb3JtcyBtYXkgc3VjY2Vzc2Z1bGx5IHNlcnZlIGEgcmVxdWVzdCBmb3Ig bW9yZSB0aGFuCi0tICAgICAgICAgICAgLy8vIGBpc2l6ZTo6TUFYYCBieXRlcyB3aXRoIHRoaW5n cyBsaWtlIFBoeXNpY2FsIEFkZHJlc3MgRXh0ZW5zaW9uLgotLSAgICAgICAgICAgIC8vLyBBcyBz dWNoLCBtZW1vcnkgYWNxdWlyZWQgZGlyZWN0bHkgZnJvbSBhbGxvY2F0b3JzIG9yIG1lbW9yeQot LSAgICAgICAgICAgIC8vLyBtYXBwZWQgZmlsZXMgbWF5IGJlIHRvbyBsYXJnZSB0byBoYW5kbGUg d2l0aCB0aGlzIGZ1bmN0aW9uLgotLSAgICAgICAgICAgIC8vLwotLSAgICAgICAgICAgIC8vLyBD b25zaWRlciB1c2luZyBgd3JhcHBpbmdfb2Zmc2V0YCBpbnN0ZWFkIGlmIHRoZXNlIGNvbnN0cmFp bnRzCi0tICAgICAgICAgICAgLy8vIGFyZSBkaWZmaWN1bHQgdG8gc2F0aXNmeS4gVGhlIG9ubHkg YWR2YW50YWdlIG9mIHRoaXMgbWV0aG9kIGlzCi0tICAgICAgICAgICAgLy8vIHRoYXQgaXQgZW5h YmxlcyBtb3JlIGFnZ3Jlc3NpdmUgY29tcGlsZXIgb3B0aW1pemF0aW9ucy4KLS0gICAgICAgICAg ICAjW2lubGluZV0KLS0gICAgICAgICAgICAjW2FsbG93KGNsaXBweTo6c2hvdWxkX2ltcGxlbWVu dF90cmFpdCldCi0tICAgICAgICAgICAgcHViIHVuc2FmZSBmbiBhZGQoc2VsZiwgY291bnQ6ICR1 c2l6ZV90eSkgLT4gU2VsZiB7Ci0tICAgICAgICAgICAgICAgIHNlbGYub2Zmc2V0KGNvdW50LmNh c3QoKSkKLS0gICAgICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgLy8vIENhbGN1bGF0ZXMgdGhl IG9mZnNldCBmcm9tIGEgcG9pbnRlciAoY29udmVuaWVuY2UgZm9yCi0tICAgICAgICAgICAgLy8v IGAub2Zmc2V0KChjb3VudCBhcyBpc2l6ZSkud3JhcHBpbmdfbmVnKCkpYCkuCi0tICAgICAgICAg ICAgLy8vCi0tICAgICAgICAgICAgLy8vIGBjb3VudGAgaXMgaW4gdW5pdHMgb2YgVDsgZS5nLiBh IGBjb3VudGAgb2YgMyByZXByZXNlbnRzIGEKLS0gICAgICAgICAgICAvLy8gcG9pbnRlciBvZmZz ZXQgb2YgYDMgKiBzaXplX29mOjo8VD4oKWAgYnl0ZXMuCi0tICAgICAgICAgICAgLy8vCi0tICAg ICAgICAgICAgLy8vICMgU2FmZXR5Ci0tICAgICAgICAgICAgLy8vCi0tICAgICAgICAgICAgLy8v IElmIGFueSBvZiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIHZpb2xhdGVkLCB0aGUgcmVz dWx0IGlzCi0tICAgICAgICAgICAgLy8vIFVuZGVmaW5lZCBCZWhhdmlvcjoKLS0gICAgICAgICAg ICAvLy8KLS0gICAgICAgICAgICAvLy8gKiBCb3RoIHRoZSBzdGFydGluZyBhbmQgcmVzdWx0aW5n IHBvaW50ZXIgbXVzdCBiZSBlaXRoZXIgaW4KLS0gICAgICAgICAgICAvLy8gYm91bmRzIG9yIG9u ZSBieXRlIHBhc3QgdGhlIGVuZCBvZiBhbiBhbGxvY2F0ZWQgb2JqZWN0LgotLSAgICAgICAgICAg IC8vLwotLSAgICAgICAgICAgIC8vLyAqIFRoZSBjb21wdXRlZCBvZmZzZXQgY2Fubm90IGV4Y2Vl ZCBgaXNpemU6Ok1BWGAgKipieXRlcyoqLgotLSAgICAgICAgICAgIC8vLwotLSAgICAgICAgICAg IC8vLyAqIFRoZSBvZmZzZXQgYmVpbmcgaW4gYm91bmRzIGNhbm5vdCByZWx5IG9uICJ3cmFwcGlu ZyBhcm91bmQiCi0tICAgICAgICAgICAgLy8vIHRoZSBhZGRyZXNzIHNwYWNlLiBUaGF0IGlzLCB0 aGUgaW5maW5pdGUtcHJlY2lzaW9uIHN1bSBtdXN0IGZpdAotLSAgICAgICAgICAgIC8vLyBpbiBh IHVzaXplLgotLSAgICAgICAgICAgIC8vLwotLSAgICAgICAgICAgIC8vLyBUaGUgY29tcGlsZXIg YW5kIHN0YW5kYXJkIGxpYnJhcnkgZ2VuZXJhbGx5IHRyaWVzIHRvIGVuc3VyZQotLSAgICAgICAg ICAgIC8vLyBhbGxvY2F0aW9ucyBuZXZlciByZWFjaCBhIHNpemUgd2hlcmUgYW4gb2Zmc2V0IGlz IGEgY29uY2Vybi4gRm9yCi0tICAgICAgICAgICAgLy8vIGluc3RhbmNlLCBgVmVjYCBhbmQgYEJv eGAgZW5zdXJlIHRoZXkgbmV2ZXIgYWxsb2NhdGUgbW9yZSB0aGFuCi0tICAgICAgICAgICAgLy8v IGBpc2l6ZTo6TUFYYCBieXRlcywgc28KLS0gICAgICAgICAgICAvLy8gYHZlYy5hc19wdHIoKS5h ZGQodmVjLmxlbigpKS5zdWIodmVjLmxlbigpKWAgaXMgYWx3YXlzIHNhZmUuCi0tICAgICAgICAg ICAgLy8vCi0tICAgICAgICAgICAgLy8vIE1vc3QgcGxhdGZvcm1zIGZ1bmRhbWVudGFsbHkgY2Fu J3QgZXZlbiBjb25zdHJ1Y3Qgc3VjaCBhbgotLSAgICAgICAgICAgIC8vLyBhbGxvY2F0aW9uLiBG b3IgaW5zdGFuY2UsIG5vIGtub3duIDY0LWJpdCBwbGF0Zm9ybSBjYW4gZXZlcgotLSAgICAgICAg ICAgIC8vLyBzZXJ2ZSBhIHJlcXVlc3QgZm9yIDI8c3VwPjYzPC9zdXA+IGJ5dGVzIGR1ZSB0byBw YWdlLXRhYmxlCi0tICAgICAgICAgICAgLy8vIGxpbWl0YXRpb25zIG9yIHNwbGl0dGluZyB0aGUg YWRkcmVzcyBzcGFjZS4gSG93ZXZlciwgc29tZSAzMi1iaXQKLS0gICAgICAgICAgICAvLy8gYW5k IDE2LWJpdCBwbGF0Zm9ybXMgbWF5IHN1Y2Nlc3NmdWxseSBzZXJ2ZSBhIHJlcXVlc3QgZm9yIG1v cmUKLS0gICAgICAgICAgICAvLy8gdGhhbiBgaXNpemU6Ok1BWGAgYnl0ZXMgd2l0aCB0aGluZ3Mg bGlrZSBQaHlzaWNhbCBBZGRyZXNzCi0tICAgICAgICAgICAgLy8vIEV4dGVuc2lvbi4gQXMgc3Vj aCwgbWVtb3J5IGFjcXVpcmVkIGRpcmVjdGx5IGZyb20gYWxsb2NhdG9ycyBvcgotLSAgICAgICAg ICAgIC8vLyBtZW1vcnkgbWFwcGVkIGZpbGVzICptYXkqIGJlIHRvbyBsYXJnZSB0byBoYW5kbGUg d2l0aCB0aGlzCi0tICAgICAgICAgICAgLy8vIGZ1bmN0aW9uLgotLSAgICAgICAgICAgIC8vLwot LSAgICAgICAgICAgIC8vLyBDb25zaWRlciB1c2luZyBgd3JhcHBpbmdfb2Zmc2V0YCBpbnN0ZWFk IGlmIHRoZXNlIGNvbnN0cmFpbnRzCi0tICAgICAgICAgICAgLy8vIGFyZSBkaWZmaWN1bHQgdG8g c2F0aXNmeS4gVGhlIG9ubHkgYWR2YW50YWdlIG9mIHRoaXMgbWV0aG9kIGlzCi0tICAgICAgICAg ICAgLy8vIHRoYXQgaXQgZW5hYmxlcyBtb3JlIGFnZ3Jlc3NpdmUgY29tcGlsZXIgb3B0aW1pemF0 aW9ucy4KLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICAjW2FsbG93KGNsaXBw eTo6c2hvdWxkX2ltcGxlbWVudF90cmFpdCldCi0tICAgICAgICAgICAgcHViIHVuc2FmZSBmbiBz dWIoc2VsZiwgY291bnQ6ICR1c2l6ZV90eSkgLT4gU2VsZiB7Ci0tICAgICAgICAgICAgICAgIGxl dCB4OiAkaXNpemVfdHkgPSBjb3VudC5jYXN0KCk7Ci0tICAgICAgICAgICAgICAgIC8vIG5vdGU6 IC0gaXMgY3VycmVudGx5IHdyYXBwaW5nX25lZwotLSAgICAgICAgICAgICAgICBzZWxmLm9mZnNl dCgteCkKLS0gICAgICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgLy8vIENhbGN1bGF0ZXMgdGhl IG9mZnNldCBmcm9tIGEgcG9pbnRlciB1c2luZyB3cmFwcGluZyBhcml0aG1ldGljLgotLSAgICAg ICAgICAgIC8vLyAoY29udmVuaWVuY2UgZm9yIGAud3JhcHBpbmdfb2Zmc2V0KGNvdW50IGFzIGlz aXplKWApCi0tICAgICAgICAgICAgLy8vCi0tICAgICAgICAgICAgLy8vIGBjb3VudGAgaXMgaW4g dW5pdHMgb2YgVDsgZS5nLiBhIGBjb3VudGAgb2YgMyByZXByZXNlbnRzIGEKLS0gICAgICAgICAg ICAvLy8gcG9pbnRlciBvZmZzZXQgb2YgYDMgKiBzaXplX29mOjo8VD4oKWAgYnl0ZXMuCi0tICAg ICAgICAgICAgLy8vCi0tICAgICAgICAgICAgLy8vICMgU2FmZXR5Ci0tICAgICAgICAgICAgLy8v Ci0tICAgICAgICAgICAgLy8vIFRoZSByZXN1bHRpbmcgcG9pbnRlciBkb2VzIG5vdCBuZWVkIHRv IGJlIGluIGJvdW5kcywgYnV0IGl0IGlzCi0tICAgICAgICAgICAgLy8vIHBvdGVudGlhbGx5IGhh emFyZG91cyB0byBkZXJlZmVyZW5jZSAod2hpY2ggcmVxdWlyZXMgYHVuc2FmZWApLgotLSAgICAg ICAgICAgIC8vLwotLSAgICAgICAgICAgIC8vLyBBbHdheXMgdXNlIGAuYWRkKGNvdW50KWAgaW5z dGVhZCB3aGVuIHBvc3NpYmxlLCBiZWNhdXNlIGBhZGRgCi0tICAgICAgICAgICAgLy8vIGFsbG93 cyB0aGUgY29tcGlsZXIgdG8gb3B0aW1pemUgYmV0dGVyLgotLSAgICAgICAgICAgICNbaW5saW5l XQotLSAgICAgICAgICAgIHB1YiBmbiB3cmFwcGluZ19hZGQoc2VsZiwgY291bnQ6ICR1c2l6ZV90 eSkgLT4gU2VsZiB7Ci0tICAgICAgICAgICAgICAgIHNlbGYud3JhcHBpbmdfb2Zmc2V0KGNvdW50 LmNhc3QoKSkKLS0gICAgICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgLy8vIENhbGN1bGF0ZXMg dGhlIG9mZnNldCBmcm9tIGEgcG9pbnRlciB1c2luZyB3cmFwcGluZyBhcml0aG1ldGljLgotLSAg ICAgICAgICAgIC8vLyAoY29udmVuaWVuY2UgZm9yIGAud3JhcHBpbmdfb2Zmc2V0KChjb3VudCBh cwotLSAgICAgICAgICAgIC8vLyBpc2l6ZSkud3JhcHBpbmdfc3ViKCkpYCkKLS0gICAgICAgICAg ICAvLy8KLS0gICAgICAgICAgICAvLy8gYGNvdW50YCBpcyBpbiB1bml0cyBvZiBUOyBlLmcuIGEg YGNvdW50YCBvZiAzIHJlcHJlc2VudHMgYQotLSAgICAgICAgICAgIC8vLyBwb2ludGVyIG9mZnNl dCBvZiBgMyAqIHNpemVfb2Y6OjxUPigpYCBieXRlcy4KLS0gICAgICAgICAgICAvLy8KLS0gICAg ICAgICAgICAvLy8gIyBTYWZldHkKLS0gICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAvLy8g VGhlIHJlc3VsdGluZyBwb2ludGVyIGRvZXMgbm90IG5lZWQgdG8gYmUgaW4gYm91bmRzLCBidXQg aXQgaXMKLS0gICAgICAgICAgICAvLy8gcG90ZW50aWFsbHkgaGF6YXJkb3VzIHRvIGRlcmVmZXJl bmNlICh3aGljaCByZXF1aXJlcyBgdW5zYWZlYCkuCi0tICAgICAgICAgICAgLy8vCi0tICAgICAg ICAgICAgLy8vIEFsd2F5cyB1c2UgYC5zdWIoY291bnQpYCBpbnN0ZWFkIHdoZW4gcG9zc2libGUs IGJlY2F1c2UgYHN1YmAKLS0gICAgICAgICAgICAvLy8gYWxsb3dzIHRoZSBjb21waWxlciB0byBv cHRpbWl6ZSBiZXR0ZXIuCi0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgcHVi IGZuIHdyYXBwaW5nX3N1YihzZWxmLCBjb3VudDogJHVzaXplX3R5KSAtPiBTZWxmIHsKLS0gICAg ICAgICAgICAgICAgbGV0IHg6ICRpc2l6ZV90eSA9IGNvdW50LmNhc3QoKTsKLS0gICAgICAgICAg ICAgICAgc2VsZi53cmFwcGluZ19vZmZzZXQoLTEgKiB4KQotLSAgICAgICAgICAgIH0KLS0gICAg ICAgIH0KLS0KLS0gICAgICAgIGltcGw8VD4gJGlkPFQ+IHsKLS0gICAgICAgICAgICAvLy8gU2h1 ZmZsZSB2ZWN0b3IgZWxlbWVudHMgYWNjb3JkaW5nIHRvIGBpbmRpY2VzYC4KLS0gICAgICAgICAg ICAjW2lubGluZV0KLS0gICAgICAgICAgICBwdWIgZm4gc2h1ZmZsZTFfZHluPEk+KHNlbGYsIGlu ZGljZXM6IEkpIC0+IFNlbGYKLS0gICAgICAgICAgICAgICAgd2hlcmUKLS0gICAgICAgICAgICAg ICAgU2VsZjogY29kZWdlbjo6c2h1ZmZsZTFfZHluOjpTaHVmZmxlMUR5bjxJbmRpY2VzID0gST4s Ci0tICAgICAgICAgICAgewotLSAgICAgICAgICAgICAgICBjb2RlZ2VuOjpzaHVmZmxlMV9keW46 OlNodWZmbGUxRHluOjpzaHVmZmxlMV9keW4oc2VsZiwgaW5kaWNlcykKLS0gICAgICAgICAgICB9 Ci0tICAgICAgICB9Ci0tCi0tICAgICAgICB0ZXN0X2lmISB7Ci0tICAgICAgICAgICAgICAgICR0 ZXN0X3R0OgotLSAgICAgICAgICAgIHBhc3RlOjppdGVtISB7Ci0tICAgICAgICAgICAgICAgIHB1 YiBtb2QgWzwkaWQgX3NodWZmbGUxX2R5bj5dIHsKLS0gICAgICAgICAgICAgICAgICAgIHVzZSBz dXBlcjo6KjsKLS0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNo ID0gIndhc20zMiIpLCB0ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIodGFy Z2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQotLSAgICAgICAgICAgICAg ICAgICAgZm4gc2h1ZmZsZTFfZHluKCkgewotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCAo bnVsbCwgbm9uX251bGwpID0gcHRyX3ZhbHMhKCRpZDxpMzI+KTsKLS0KLS0gICAgICAgICAgICAg ICAgICAgICAgICAvLyBhbHRlcm5hdGluZyA9IFtub25fbnVsbCwgbnVsbCwgbm9uX251bGwsIG51 bGwsIC4uLl0KLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IGFsdGVybmF0aW5nID0g JGlkOjo8aTMyPjo6c3BsYXQobnVsbCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGkg aW4gMC4uJGlkOjo8aTMyPjo6bGFuZXMoKSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAg IGlmIGkgJSAyID09IDAgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0ZXJu YXRpbmcgPSBhbHRlcm5hdGluZy5yZXBsYWNlKGksIG5vbl9udWxsKTsKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0KLS0gICAgICAg ICAgICAgICAgICAgICAgICB0eXBlIEluZGljZXMgPSA8JGlkPGkzMj4KLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgYXMgY29kZWdlbjo6c2h1ZmZsZTFfZHluOjpTaHVmZmxlMUR5bj46Oklu ZGljZXM7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgLy8gZXZlbiA9IFswLCAwLCAyLCAyLCA0 LCA0LCAuLl0KLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgZXZlbiA9IHsKLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCB2ID0gSW5kaWNlczo6c3BsYXQoMCk7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGZvciBpIGluIDAuLiRpZDo6PGkzMj46OmxhbmVzKCkg ewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgaSAlIDIgPT0gMCB7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdiA9IHYucmVwbGFjZShpLCAoaSBhcyB1 OCkuaW50bygpKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ID0gdi5yZXBsYWNlKGksIChpIGFzIHU4 IC0gMSkuaW50bygpKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgfTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAv LyBvZGQgPSBbMSwgMSwgMywgMywgNSwgNSwgLi4uXQotLSAgICAgICAgICAgICAgICAgICAgICAg IGxldCBvZGQgPSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgdiA9IElu ZGljZXM6OnNwbGF0KDApOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgaSBpbiAw Li4kaWQ6OjxpMzI+OjpsYW5lcygpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGlmIGkgJSAyICE9IDAgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYg PSB2LnJlcGxhY2UoaSwgKGkgYXMgdTgpLmludG8oKSk7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9IGVsc2UgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHYgPSB2LnJlcGxhY2UoaSwgKGkgYXMgdTggKyAxKS5pbnRvKCkpOwotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHYKLS0gICAgICAgICAgICAgICAgICAgICAgICB9Owot LQotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoCi0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGFsdGVybmF0aW5nLnNodWZmbGUxX2R5bihldmVuKSwKLS0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgJGlkOjo8aTMyPjo6c3BsYXQobm9uX251bGwpCi0tICAgICAgICAg ICAgICAgICAgICAgICAgKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBpZiAkaWQ6OjxpMzI+ OjpsYW5lcygpID4gMSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEo Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHRlcm5hdGluZy5zaHVmZmxlMV9k eW4ob2RkKSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpZDo6PGkzMj46OnNw bGF0KG51bGwpCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICB9 Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICB9OwotLX0KLWRpZmYgLU5yYnUgYS90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvbWluaW1hbC5ycyBiL3RoaXJkX3Bh cnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9taW5pbWFsLnJzCi0tLS0gYS90aGlyZF9wYXJ0 eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvbWluaW1hbC5ycwkyMDI1LTA0LTIwIDE5OjI4OjEz LjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMv YXBpL21pbmltYWwucnMJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0x LDYgKzAsMCBAQAotLSNbbWFjcm9fdXNlXQotLW1vZCBpdWY7Ci0tI1ttYWNyb191c2VdCi0tbW9k IG1hc2s7Ci0tI1ttYWNyb191c2VdCi0tbW9kIHB0cjsKLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0 eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvb3BzL3NjYWxhcl9hcml0aG1ldGljLnJzIGIvdGhp cmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL29wcy9zY2FsYXJfYXJpdGhtZXRpYy5y cwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL29wcy9zY2FsYXJf YXJpdGhtZXRpYy5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIv dGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL29wcy9zY2FsYXJfYXJpdGhtZXRp Yy5ycwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsMjAzICswLDAg QEAKLS0vLyEgVmVydGljYWwgKGxhbmUtd2lzZSkgdmVjdG9yLXNjYWxhciAvIHNjYWxhci12ZWN0 b3IgYXJpdGhtZXRpYyBvcGVyYXRpb25zLgotLQotLW1hY3JvX3J1bGVzISBpbXBsX29wc19zY2Fs YXJfYXJpdGhtZXRpYyB7Ci0tICAgIChbJGVsZW1fdHk6aWRlbnQ7ICRlbGVtX2NvdW50OmV4cHJd OiAkaWQ6aWRlbnQgfCAkdGVzdF90dDp0dCkgPT4gewotLSAgICAgICAgaW1wbCBjcmF0ZTo6b3Bz OjpBZGQ8JGVsZW1fdHk+IGZvciAkaWQgewotLSAgICAgICAgICAgIHR5cGUgT3V0cHV0ID0gU2Vs ZjsKLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBmbiBhZGQoc2VsZiwgb3Ro ZXI6ICRlbGVtX3R5KSAtPiBTZWxmIHsKLS0gICAgICAgICAgICAgICAgc2VsZiArICRpZDo6c3Bs YXQob3RoZXIpCi0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICAgICAgaW1wbCBjcmF0 ZTo6b3BzOjpBZGQ8JGlkPiBmb3IgJGVsZW1fdHkgewotLSAgICAgICAgICAgIHR5cGUgT3V0cHV0 ID0gJGlkOwotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIGZuIGFkZChzZWxm LCBvdGhlcjogJGlkKSAtPiAkaWQgewotLSAgICAgICAgICAgICAgICAkaWQ6OnNwbGF0KHNlbGYp ICsgb3RoZXIKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tCi0tICAgICAgICBpbXBsIGNy YXRlOjpvcHM6OlN1YjwkZWxlbV90eT4gZm9yICRpZCB7Ci0tICAgICAgICAgICAgdHlwZSBPdXRw dXQgPSBTZWxmOwotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIGZuIHN1Yihz ZWxmLCBvdGhlcjogJGVsZW1fdHkpIC0+IFNlbGYgewotLSAgICAgICAgICAgICAgICBzZWxmIC0g JGlkOjpzcGxhdChvdGhlcikKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgICAgICBp bXBsIGNyYXRlOjpvcHM6OlN1YjwkaWQ+IGZvciAkZWxlbV90eSB7Ci0tICAgICAgICAgICAgdHlw ZSBPdXRwdXQgPSAkaWQ7Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgZm4g c3ViKHNlbGYsIG90aGVyOiAkaWQpIC0+ICRpZCB7Ci0tICAgICAgICAgICAgICAgICRpZDo6c3Bs YXQoc2VsZikgLSBvdGhlcgotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0KLS0gICAgICAg IGltcGwgY3JhdGU6Om9wczo6TXVsPCRlbGVtX3R5PiBmb3IgJGlkIHsKLS0gICAgICAgICAgICB0 eXBlIE91dHB1dCA9IFNlbGY7Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAg Zm4gbXVsKHNlbGYsIG90aGVyOiAkZWxlbV90eSkgLT4gU2VsZiB7Ci0tICAgICAgICAgICAgICAg IHNlbGYgKiAkaWQ6OnNwbGF0KG90aGVyKQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0g ICAgICAgIGltcGwgY3JhdGU6Om9wczo6TXVsPCRpZD4gZm9yICRlbGVtX3R5IHsKLS0gICAgICAg ICAgICB0eXBlIE91dHB1dCA9ICRpZDsKLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAg ICAgICBmbiBtdWwoc2VsZiwgb3RoZXI6ICRpZCkgLT4gJGlkIHsKLS0gICAgICAgICAgICAgICAg JGlkOjpzcGxhdChzZWxmKSAqIG90aGVyCi0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLQot LSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpEaXY8JGVsZW1fdHk+IGZvciAkaWQgewotLSAgICAg ICAgICAgIHR5cGUgT3V0cHV0ID0gU2VsZjsKLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAg ICAgICAgICBmbiBkaXYoc2VsZiwgb3RoZXI6ICRlbGVtX3R5KSAtPiBTZWxmIHsKLS0gICAgICAg ICAgICAgICAgc2VsZiAvICRpZDo6c3BsYXQob3RoZXIpCi0tICAgICAgICAgICAgfQotLSAgICAg ICAgfQotLSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpEaXY8JGlkPiBmb3IgJGVsZW1fdHkgewot LSAgICAgICAgICAgIHR5cGUgT3V0cHV0ID0gJGlkOwotLSAgICAgICAgICAgICNbaW5saW5lXQot LSAgICAgICAgICAgIGZuIGRpdihzZWxmLCBvdGhlcjogJGlkKSAtPiAkaWQgewotLSAgICAgICAg ICAgICAgICAkaWQ6OnNwbGF0KHNlbGYpIC8gb3RoZXIKLS0gICAgICAgICAgICB9Ci0tICAgICAg ICB9Ci0tCi0tICAgICAgICBpbXBsIGNyYXRlOjpvcHM6OlJlbTwkZWxlbV90eT4gZm9yICRpZCB7 Ci0tICAgICAgICAgICAgdHlwZSBPdXRwdXQgPSBTZWxmOwotLSAgICAgICAgICAgICNbaW5saW5l XQotLSAgICAgICAgICAgIGZuIHJlbShzZWxmLCBvdGhlcjogJGVsZW1fdHkpIC0+IFNlbGYgewot LSAgICAgICAgICAgICAgICBzZWxmICUgJGlkOjpzcGxhdChvdGhlcikKLS0gICAgICAgICAgICB9 Ci0tICAgICAgICB9Ci0tICAgICAgICBpbXBsIGNyYXRlOjpvcHM6OlJlbTwkaWQ+IGZvciAkZWxl bV90eSB7Ci0tICAgICAgICAgICAgdHlwZSBPdXRwdXQgPSAkaWQ7Ci0tICAgICAgICAgICAgI1tp bmxpbmVdCi0tICAgICAgICAgICAgZm4gcmVtKHNlbGYsIG90aGVyOiAkaWQpIC0+ICRpZCB7Ci0t ICAgICAgICAgICAgICAgICRpZDo6c3BsYXQoc2VsZikgJSBvdGhlcgotLSAgICAgICAgICAgIH0K LS0gICAgICAgIH0KLS0KLS0gICAgICAgIGltcGwgY3JhdGU6Om9wczo6QWRkQXNzaWduPCRlbGVt X3R5PiBmb3IgJGlkIHsKLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBmbiBh ZGRfYXNzaWduKCZtdXQgc2VsZiwgb3RoZXI6ICRlbGVtX3R5KSB7Ci0tICAgICAgICAgICAgICAg ICpzZWxmID0gKnNlbGYgKyBvdGhlcjsKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tCi0t ICAgICAgICBpbXBsIGNyYXRlOjpvcHM6OlN1YkFzc2lnbjwkZWxlbV90eT4gZm9yICRpZCB7Ci0t ICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgZm4gc3ViX2Fzc2lnbigmbXV0IHNl bGYsIG90aGVyOiAkZWxlbV90eSkgewotLSAgICAgICAgICAgICAgICAqc2VsZiA9ICpzZWxmIC0g b3RoZXI7Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLQotLSAgICAgICAgaW1wbCBjcmF0 ZTo6b3BzOjpNdWxBc3NpZ248JGVsZW1fdHk+IGZvciAkaWQgewotLSAgICAgICAgICAgICNbaW5s aW5lXQotLSAgICAgICAgICAgIGZuIG11bF9hc3NpZ24oJm11dCBzZWxmLCBvdGhlcjogJGVsZW1f dHkpIHsKLS0gICAgICAgICAgICAgICAgKnNlbGYgPSAqc2VsZiAqIG90aGVyOwotLSAgICAgICAg ICAgIH0KLS0gICAgICAgIH0KLS0KLS0gICAgICAgIGltcGwgY3JhdGU6Om9wczo6RGl2QXNzaWdu PCRlbGVtX3R5PiBmb3IgJGlkIHsKLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAg ICBmbiBkaXZfYXNzaWduKCZtdXQgc2VsZiwgb3RoZXI6ICRlbGVtX3R5KSB7Ci0tICAgICAgICAg ICAgICAgICpzZWxmID0gKnNlbGYgLyBvdGhlcjsKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9 Ci0tCi0tICAgICAgICBpbXBsIGNyYXRlOjpvcHM6OlJlbUFzc2lnbjwkZWxlbV90eT4gZm9yICRp ZCB7Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgZm4gcmVtX2Fzc2lnbigm bXV0IHNlbGYsIG90aGVyOiAkZWxlbV90eSkgewotLSAgICAgICAgICAgICAgICAqc2VsZiA9ICpz ZWxmICUgb3RoZXI7Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLQotLSAgICAgICAgdGVz dF9pZiF7Ci0tICAgICAgICAgICAgJHRlc3RfdHQ6Ci0tICAgICAgICAgICAgcGFzdGU6Oml0ZW0h IHsKLS0gICAgICAgICAgICAgICAgcHViIG1vZCBbPCRpZCBfb3BzX3NjYWxhcl9hcml0aD5dIHsK LS0gICAgICAgICAgICAgICAgICAgIHVzZSBzdXBlcjo6KjsKLS0gICAgICAgICAgICAgICAgICAg ICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0gI1tjZmdfYXR0 cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCi0tICAgICAgICAg ICAgICAgICAgICBmbiBvcHNfc2NhbGFyX2FyaXRobWV0aWMoKSB7Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgbGV0IHppID0gMCBhcyAkZWxlbV90eTsKLS0gICAgICAgICAgICAgICAgICAgICAg ICBsZXQgb2kgPSAxIGFzICRlbGVtX3R5OwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0 aSA9IDIgYXMgJGVsZW1fdHk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGZpID0gNCBh cyAkZWxlbV90eTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgeiA9ICRpZDo6c3BsYXQo emkpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBvID0gJGlkOjpzcGxhdChvaSk7Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHQgPSAkaWQ6OnNwbGF0KHRpKTsKLS0gICAgICAg ICAgICAgICAgICAgICAgICBsZXQgZiA9ICRpZDo6c3BsYXQoZmkpOwotLQotLSAgICAgICAgICAg ICAgICAgICAgICAgIC8vIGFkZAotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEo emkgKyB6LCB6KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHogKyB6aSwg eik7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvaSArIHosIG8pOwotLSAg ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEobyArIHppLCBvKTsKLS0gICAgICAgICAg ICAgICAgICAgICAgICBhc3NlcnRfZXEhKHRpICsgeiwgdCk7Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgYXNzZXJ0X2VxISh0ICsgemksIHQpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFz c2VydF9lcSEodGkgKyB0LCBmKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEh KHQgKyB0aSwgZik7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgLy8gc3ViCi0tICAgICAgICAg ICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh6aSAtIHosIHopOwotLSAgICAgICAgICAgICAgICAg ICAgICAgIGFzc2VydF9lcSEoeiAtIHppLCB6KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBh c3NlcnRfZXEhKG9pIC0geiwgbyk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2Vx IShvIC0gemksIG8pOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodGkgLSB6 LCB0KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQgLSB6aSwgdCk7Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShmaSAtIHQsIHQpOwotLSAgICAgICAg ICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoZiAtIHRpLCB0KTsKLS0gICAgICAgICAgICAgICAg ICAgICAgICBhc3NlcnRfZXEhKGYgLSBvIC0gbywgdCk7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgYXNzZXJ0X2VxIShmIC0gb2kgLSBvaSwgdCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAg Ly8gbXVsCi0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh6aSAqIHosIHopOwot LSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoeiAqIHppLCB6KTsKLS0gICAgICAg ICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHppICogbywgeik7Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgYXNzZXJ0X2VxISh6ICogb2ksIHopOwotLSAgICAgICAgICAgICAgICAgICAgICAg IGFzc2VydF9lcSEoemkgKiB0LCB6KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRf ZXEhKHogKiB0aSwgeik7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvaSAq IHQsIHQpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEobyAqIHRpLCB0KTsK LS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHRpICogdCwgZik7Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0ICogdGksIGYpOwotLSAgICAgICAgICAgICAg ICAgICAgICAgIC8vIGRpdgotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoemkg LyBvLCB6KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHogLyBvaSwgeik7 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0aSAvIG8sIHQpOwotLSAgICAg ICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodCAvIG9pLCB0KTsKLS0gICAgICAgICAgICAg ICAgICAgICAgICBhc3NlcnRfZXEhKGZpIC8gbywgZik7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgYXNzZXJ0X2VxIShmIC8gb2ksIGYpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2Vy dF9lcSEodGkgLyB0LCBvKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQg LyB0aSwgbyk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShmaSAvIHQsIHQp OwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoZiAvIHRpLCB0KTsKLS0gICAg ICAgICAgICAgICAgICAgICAgICAvLyByZW0KLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3Nl cnRfZXEhKG9pICUgbywgeik7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShv ICUgb2ksIHopOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoZmkgJSB0LCB6 KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGYgJSB0aSwgeik7Ci0tCi0t ICAgICAgICAgICAgICAgICAgICAgICAgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBs ZXQgbXV0IHYgPSB6OwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHYs IHopOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ICs9IG9pOyAvLyBhZGRfYXNzaWdu Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodiwgbyk7Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHYgLT0gb2k7IC8vIHN1Yl9hc3NpZ24KLS0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh2LCB6KTsKLS0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgdiA9IHQ7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYgKj0gb2k7IC8v IG11bF9hc3NpZ24KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh2LCB0 KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdiAqPSB0aTsKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh2LCBmKTsKLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgdiAvPSBvaTsgLy8gZGl2X2Fzc2lnbgotLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICBhc3NlcnRfZXEhKHYsIGYpOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2IC89IHRp OwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHYsIHQpOwotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICB2ICU9IHRpOyAvLyByZW1fYXNzaWduCi0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodiwgeik7Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICB9Ci0tICAg ICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICB9OwotLX0KLWRpZmYgLU5yYnUgYS90aGlyZF9w YXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvb3BzL3NjYWxhcl9iaXR3aXNlLnJzIGIvdGhp cmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL29wcy9zY2FsYXJfYml0d2lzZS5ycwot LS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL29wcy9zY2FsYXJfYml0 d2lzZS5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRf cGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL29wcy9zY2FsYXJfYml0d2lzZS5ycwkxOTcw LTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsMTYyICswLDAgQEAKLS0vLyEg VmVydGljYWwgKGxhbmUtd2lzZSkgdmVjdG9yLXNjYWxhciAvIHNjYWxhci12ZWN0b3IgYml0d2lz ZSBvcGVyYXRpb25zLgotLQotLW1hY3JvX3J1bGVzISBpbXBsX29wc19zY2FsYXJfYml0d2lzZSB7 Ci0tICAgICgKLS0gICAgICAgIFskZWxlbV90eTppZGVudDsgJGVsZW1fY291bnQ6ZXhwcl06Ci0t ICAgICAgICAkaWQ6aWRlbnQgfCAkdGVzdF90dDp0dCB8Ci0tICAgICAgICAoJHRydWU6ZXhwciwg JGZhbHNlOmV4cHIpCi0tICAgICkgPT4gewotLSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpCaXRY b3I8JGVsZW1fdHk+IGZvciAkaWQgewotLSAgICAgICAgICAgIHR5cGUgT3V0cHV0ID0gU2VsZjsK LS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBmbiBiaXR4b3Ioc2VsZiwgb3Ro ZXI6ICRlbGVtX3R5KSAtPiBTZWxmIHsKLS0gICAgICAgICAgICAgICAgc2VsZiBeICRpZDo6c3Bs YXQob3RoZXIpCi0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICAgICAgaW1wbCBjcmF0 ZTo6b3BzOjpCaXRYb3I8JGlkPiBmb3IgJGVsZW1fdHkgewotLSAgICAgICAgICAgIHR5cGUgT3V0 cHV0ID0gJGlkOwotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIGZuIGJpdHhv cihzZWxmLCBvdGhlcjogJGlkKSAtPiAkaWQgewotLSAgICAgICAgICAgICAgICAkaWQ6OnNwbGF0 KHNlbGYpIF4gb3RoZXIKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tCi0tICAgICAgICBp bXBsIGNyYXRlOjpvcHM6OkJpdEFuZDwkZWxlbV90eT4gZm9yICRpZCB7Ci0tICAgICAgICAgICAg dHlwZSBPdXRwdXQgPSBTZWxmOwotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAg IGZuIGJpdGFuZChzZWxmLCBvdGhlcjogJGVsZW1fdHkpIC0+IFNlbGYgewotLSAgICAgICAgICAg ICAgICBzZWxmICYgJGlkOjpzcGxhdChvdGhlcikKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9 Ci0tICAgICAgICBpbXBsIGNyYXRlOjpvcHM6OkJpdEFuZDwkaWQ+IGZvciAkZWxlbV90eSB7Ci0t ICAgICAgICAgICAgdHlwZSBPdXRwdXQgPSAkaWQ7Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0t ICAgICAgICAgICAgZm4gYml0YW5kKHNlbGYsIG90aGVyOiAkaWQpIC0+ICRpZCB7Ci0tICAgICAg ICAgICAgICAgICRpZDo6c3BsYXQoc2VsZikgJiBvdGhlcgotLSAgICAgICAgICAgIH0KLS0gICAg ICAgIH0KLS0KLS0gICAgICAgIGltcGwgY3JhdGU6Om9wczo6Qml0T3I8JGVsZW1fdHk+IGZvciAk aWQgewotLSAgICAgICAgICAgIHR5cGUgT3V0cHV0ID0gU2VsZjsKLS0gICAgICAgICAgICAjW2lu bGluZV0KLS0gICAgICAgICAgICBmbiBiaXRvcihzZWxmLCBvdGhlcjogJGVsZW1fdHkpIC0+IFNl bGYgewotLSAgICAgICAgICAgICAgICBzZWxmIHwgJGlkOjpzcGxhdChvdGhlcikKLS0gICAgICAg ICAgICB9Ci0tICAgICAgICB9Ci0tICAgICAgICBpbXBsIGNyYXRlOjpvcHM6OkJpdE9yPCRpZD4g Zm9yICRlbGVtX3R5IHsKLS0gICAgICAgICAgICB0eXBlIE91dHB1dCA9ICRpZDsKLS0gICAgICAg ICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBmbiBiaXRvcihzZWxmLCBvdGhlcjogJGlkKSAt PiAkaWQgewotLSAgICAgICAgICAgICAgICAkaWQ6OnNwbGF0KHNlbGYpIHwgb3RoZXIKLS0gICAg ICAgICAgICB9Ci0tICAgICAgICB9Ci0tCi0tICAgICAgICBpbXBsIGNyYXRlOjpvcHM6OkJpdEFu ZEFzc2lnbjwkZWxlbV90eT4gZm9yICRpZCB7Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAg ICAgICAgICAgZm4gYml0YW5kX2Fzc2lnbigmbXV0IHNlbGYsIG90aGVyOiAkZWxlbV90eSkgewot LSAgICAgICAgICAgICAgICAqc2VsZiA9ICpzZWxmICYgb3RoZXI7Ci0tICAgICAgICAgICAgfQot LSAgICAgICAgfQotLSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpCaXRPckFzc2lnbjwkZWxlbV90 eT4gZm9yICRpZCB7Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgZm4gYml0 b3JfYXNzaWduKCZtdXQgc2VsZiwgb3RoZXI6ICRlbGVtX3R5KSB7Ci0tICAgICAgICAgICAgICAg ICpzZWxmID0gKnNlbGYgfCBvdGhlcjsKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAg ICAgICBpbXBsIGNyYXRlOjpvcHM6OkJpdFhvckFzc2lnbjwkZWxlbV90eT4gZm9yICRpZCB7Ci0t ICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgZm4gYml0eG9yX2Fzc2lnbigmbXV0 IHNlbGYsIG90aGVyOiAkZWxlbV90eSkgewotLSAgICAgICAgICAgICAgICAqc2VsZiA9ICpzZWxm IF4gb3RoZXI7Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLQotLSAgICAgICAgdGVzdF9p ZiF7Ci0tICAgICAgICAgICAgJHRlc3RfdHQ6Ci0tICAgICAgICAgICAgcGFzdGU6Oml0ZW0hIHsK LS0gICAgICAgICAgICAgICAgcHViIG1vZCBbPCRpZCBfb3BzX3NjYWxhcl9iaXR3aXNlPl0gewot LSAgICAgICAgICAgICAgICAgICAgdXNlIHN1cGVyOjoqOwotLQotLSAgICAgICAgICAgICAgICAg ICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXSAjW2NmZ19h dHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KLS0gICAgICAg ICAgICAgICAgICAgIGZuIG9wc19zY2FsYXJfYml0d2lzZSgpIHsKLS0gICAgICAgICAgICAgICAg ICAgICAgICBsZXQgemkgPSAwIGFzICRlbGVtX3R5OwotLSAgICAgICAgICAgICAgICAgICAgICAg IGxldCBvaSA9IDEgYXMgJGVsZW1fdHk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRp ID0gMiBhcyAkZWxlbV90eTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgeiA9ICRpZDo6 c3BsYXQoemkpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBvID0gJGlkOjpzcGxhdChv aSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHQgPSAkaWQ6OnNwbGF0KHRpKTsKLS0K LS0gICAgICAgICAgICAgICAgICAgICAgICAvLyBCaXRBbmQ6Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgYXNzZXJ0X2VxIShvaSAmIG8sIG8pOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFz c2VydF9lcSEobyAmIG9pLCBvKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEh KG9pICYgeiwgeik7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvICYgemks IHopOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoemkgJiBvLCB6KTsKLS0g ICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHogJiBvaSwgeik7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh6aSAmIHosIHopOwotLSAgICAgICAgICAgICAgICAg ICAgICAgIGFzc2VydF9lcSEoeiAmIHppLCB6KTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAg ICBhc3NlcnRfZXEhKHRpICYgdCwgdCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0 X2VxISh0ICYgdGksIHQpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodGkg JiBvLCB6KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQgJiBvaSwgeik7 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvaSAmIHQsIHopOwotLSAgICAg ICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEobyAmIHRpLCB6KTsKLS0KLS0gICAgICAgICAg ICAgICAgICAgICAgICAvLyBCaXRPcjoKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRf ZXEhKG9pIHwgbywgbyk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvIHwg b2ksIG8pOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEob2kgfCB6LCBvKTsK LS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG8gfCB6aSwgbyk7Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh6aSB8IG8sIG8pOwotLSAgICAgICAgICAgICAg ICAgICAgICAgIGFzc2VydF9lcSEoeiB8IG9pLCBvKTsKLS0gICAgICAgICAgICAgICAgICAgICAg ICBhc3NlcnRfZXEhKHppIHwgeiwgeik7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0 X2VxISh6IHwgemksIHopOwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEo dGkgfCB0LCB0KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQgfCB0aSwg dCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh6aSB8IHQsIHQpOwotLSAg ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoeiB8IHRpLCB0KTsKLS0gICAgICAgICAg ICAgICAgICAgICAgICBhc3NlcnRfZXEhKHRpIHwgeiwgdCk7Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgYXNzZXJ0X2VxISh0IHwgemksIHQpOwotLQotLSAgICAgICAgICAgICAgICAgICAgICAg IC8vIEJpdFhPUjoKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG9pIF4gbywg eik7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvIF4gb2ksIHopOwotLSAg ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoemkgXiB6LCB6KTsKLS0gICAgICAgICAg ICAgICAgICAgICAgICBhc3NlcnRfZXEhKHogXiB6aSwgeik7Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgYXNzZXJ0X2VxISh6aSBeIG8sIG8pOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFz c2VydF9lcSEoeiBeIG9pLCBvKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEh KG9pIF4geiwgbyk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvIF4gemks IG8pOwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodGkgXiB0LCB6KTsK LS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQgXiB0aSwgeik7Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0aSBeIHosIHQpOwotLSAgICAgICAgICAgICAg ICAgICAgICAgIGFzc2VydF9lcSEodCBeIHppLCB0KTsKLS0gICAgICAgICAgICAgICAgICAgICAg ICBhc3NlcnRfZXEhKHppIF4gdCwgdCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0 X2VxISh6IF4gdGksIHQpOwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIHsKLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgLy8gQW5kQXNzaWduOgotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICBsZXQgbXV0IHYgPSBvOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ICY9 IHRpOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHYsIHopOwotLSAg ICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgICAgICB7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgIC8vIE9yQXNzaWduOgotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICBsZXQgbXV0IHYgPSB6OwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2 IHw9IG9pOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHYsIG8pOwot LSAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgICAgICB7Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFhPUkFzc2lnbjoKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgbGV0IG11dCB2ID0gejsKLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgdiBePSBvaTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh2LCBv KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0t ICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgIH07Ci0t fQotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9vcHMv c2NhbGFyX21hc2tfYml0d2lzZS5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3Jj L2FwaS9vcHMvc2NhbGFyX21hc2tfYml0d2lzZS5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9w YWNrZWRfc2ltZC9zcmMvYXBpL29wcy9zY2FsYXJfbWFza19iaXR3aXNlLnJzCTIwMjUtMDQtMjAg MTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9z aW1kL3NyYy9hcGkvb3BzL3NjYWxhcl9tYXNrX2JpdHdpc2UucnMJMTk3MC0wMS0wMSAwMzowMDow MC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDE0MCArMCwwIEBACi0tLy8hIFZlcnRpY2FsIChsYW5l LXdpc2UpIHZlY3Rvci12ZWN0b3IgYml0d2lzZSBvcGVyYXRpb25zLgotLQotLW1hY3JvX3J1bGVz ISBpbXBsX29wc19zY2FsYXJfbWFza19iaXR3aXNlIHsKLS0gICAgKAotLSAgICAgICAgWyRlbGVt X3R5OmlkZW50OyAkZWxlbV9jb3VudDpleHByXToKLS0gICAgICAgICRpZDppZGVudCB8ICR0ZXN0 X3R0OnR0IHwKLS0gICAgICAgICgkdHJ1ZTpleHByLCAkZmFsc2U6ZXhwcikKLS0gICAgKSA9PiB7 Ci0tICAgICAgICBpbXBsIGNyYXRlOjpvcHM6OkJpdFhvcjxib29sPiBmb3IgJGlkIHsKLS0gICAg ICAgICAgICB0eXBlIE91dHB1dCA9IFNlbGY7Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAg ICAgICAgICAgZm4gYml0eG9yKHNlbGYsIG90aGVyOiBib29sKSAtPiBTZWxmIHsKLS0gICAgICAg ICAgICAgICAgc2VsZiBeICRpZDo6c3BsYXQob3RoZXIpCi0tICAgICAgICAgICAgfQotLSAgICAg ICAgfQotLSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpCaXRYb3I8JGlkPiBmb3IgYm9vbCB7Ci0t ICAgICAgICAgICAgdHlwZSBPdXRwdXQgPSAkaWQ7Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0t ICAgICAgICAgICAgZm4gYml0eG9yKHNlbGYsIG90aGVyOiAkaWQpIC0+ICRpZCB7Ci0tICAgICAg ICAgICAgICAgICRpZDo6c3BsYXQoc2VsZikgXiBvdGhlcgotLSAgICAgICAgICAgIH0KLS0gICAg ICAgIH0KLS0KLS0gICAgICAgIGltcGwgY3JhdGU6Om9wczo6Qml0QW5kPGJvb2w+IGZvciAkaWQg ewotLSAgICAgICAgICAgIHR5cGUgT3V0cHV0ID0gU2VsZjsKLS0gICAgICAgICAgICAjW2lubGlu ZV0KLS0gICAgICAgICAgICBmbiBiaXRhbmQoc2VsZiwgb3RoZXI6IGJvb2wpIC0+IFNlbGYgewot LSAgICAgICAgICAgICAgICBzZWxmICYgJGlkOjpzcGxhdChvdGhlcikKLS0gICAgICAgICAgICB9 Ci0tICAgICAgICB9Ci0tICAgICAgICBpbXBsIGNyYXRlOjpvcHM6OkJpdEFuZDwkaWQ+IGZvciBi b29sIHsKLS0gICAgICAgICAgICB0eXBlIE91dHB1dCA9ICRpZDsKLS0gICAgICAgICAgICAjW2lu bGluZV0KLS0gICAgICAgICAgICBmbiBiaXRhbmQoc2VsZiwgb3RoZXI6ICRpZCkgLT4gJGlkIHsK LS0gICAgICAgICAgICAgICAgJGlkOjpzcGxhdChzZWxmKSAmIG90aGVyCi0tICAgICAgICAgICAg fQotLSAgICAgICAgfQotLQotLSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpCaXRPcjxib29sPiBm b3IgJGlkIHsKLS0gICAgICAgICAgICB0eXBlIE91dHB1dCA9IFNlbGY7Ci0tICAgICAgICAgICAg I1tpbmxpbmVdCi0tICAgICAgICAgICAgZm4gYml0b3Ioc2VsZiwgb3RoZXI6IGJvb2wpIC0+IFNl bGYgewotLSAgICAgICAgICAgICAgICBzZWxmIHwgJGlkOjpzcGxhdChvdGhlcikKLS0gICAgICAg ICAgICB9Ci0tICAgICAgICB9Ci0tICAgICAgICBpbXBsIGNyYXRlOjpvcHM6OkJpdE9yPCRpZD4g Zm9yIGJvb2wgewotLSAgICAgICAgICAgIHR5cGUgT3V0cHV0ID0gJGlkOwotLSAgICAgICAgICAg ICNbaW5saW5lXQotLSAgICAgICAgICAgIGZuIGJpdG9yKHNlbGYsIG90aGVyOiAkaWQpIC0+ICRp ZCB7Ci0tICAgICAgICAgICAgICAgICRpZDo6c3BsYXQoc2VsZikgfCBvdGhlcgotLSAgICAgICAg ICAgIH0KLS0gICAgICAgIH0KLS0KLS0gICAgICAgIGltcGwgY3JhdGU6Om9wczo6Qml0QW5kQXNz aWduPGJvb2w+IGZvciAkaWQgewotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAg IGZuIGJpdGFuZF9hc3NpZ24oJm11dCBzZWxmLCBvdGhlcjogYm9vbCkgewotLSAgICAgICAgICAg ICAgICAqc2VsZiA9ICpzZWxmICYgb3RoZXI7Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQot LSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpCaXRPckFzc2lnbjxib29sPiBmb3IgJGlkIHsKLS0g ICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBmbiBiaXRvcl9hc3NpZ24oJm11dCBz ZWxmLCBvdGhlcjogYm9vbCkgewotLSAgICAgICAgICAgICAgICAqc2VsZiA9ICpzZWxmIHwgb3Ro ZXI7Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICAgICAgaW1wbCBjcmF0ZTo6b3Bz OjpCaXRYb3JBc3NpZ248Ym9vbD4gZm9yICRpZCB7Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0t ICAgICAgICAgICAgZm4gYml0eG9yX2Fzc2lnbigmbXV0IHNlbGYsIG90aGVyOiBib29sKSB7Ci0t ICAgICAgICAgICAgICAgICpzZWxmID0gKnNlbGYgXiBvdGhlcjsKLS0gICAgICAgICAgICB9Ci0t ICAgICAgICB9Ci0tCi0tICAgICAgICB0ZXN0X2lmIXsKLS0gICAgICAgICAgICAkdGVzdF90dDoK LS0gICAgICAgICAgICBwYXN0ZTo6aXRlbSEgewotLSAgICAgICAgICAgICAgICBwdWIgbW9kIFs8 JGlkIF9vcHNfc2NhbGFyX21hc2tfYml0d2lzZT5dIHsKLS0gICAgICAgICAgICAgICAgICAgIHVz ZSBzdXBlcjo6KjsKLS0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9h cmNoID0gIndhc20zMiIpLCB0ZXN0KV0gI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIi LCB3YXNtX2JpbmRnZW5fdGVzdCldCi0tICAgICAgICAgICAgICAgICAgICBmbiBvcHNfc2NhbGFy X21hc2tfYml0d2lzZSgpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGkgPSB0cnVl OwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBmaSA9IGZhbHNlOwotLSAgICAgICAgICAg ICAgICAgICAgICAgIGxldCB0ID0gJGlkOjpzcGxhdCh0aSk7Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgbGV0IGYgPSAkaWQ6OnNwbGF0KGZpKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBh c3NlcnQhKHQgIT0gZik7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0ISghKHQgPT0g ZikpOwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIEJpdEFuZDoKLS0gICAgICAgICAg ICAgICAgICAgICAgICBhc3NlcnRfZXEhKHRpICYgZiwgZik7Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgYXNzZXJ0X2VxISh0ICYgZmksIGYpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFz c2VydF9lcSEoZmkgJiB0LCBmKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEh KGYgJiB0aSwgZik7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0aSAmIHQs IHQpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodCAmIHRpLCB0KTsKLS0g ICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGZpICYgZiwgZik7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShmICYgZmksIGYpOwotLQotLSAgICAgICAgICAgICAg ICAgICAgICAgIC8vIEJpdE9yOgotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEo dGkgfCBmLCB0KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQgfCBmaSwg dCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShmaSB8IHQsIHQpOwotLSAg ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoZiB8IHRpLCB0KTsKLS0gICAgICAgICAg ICAgICAgICAgICAgICBhc3NlcnRfZXEhKHRpIHwgdCwgdCk7Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgYXNzZXJ0X2VxISh0IHwgdGksIHQpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFz c2VydF9lcSEoZmkgfCBmLCBmKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEh KGYgfCBmaSwgZik7Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgLy8gQml0WE9SOgotLSAg ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodGkgXiBmLCB0KTsKLS0gICAgICAgICAg ICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQgXiBmaSwgdCk7Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgYXNzZXJ0X2VxIShmaSBeIHQsIHQpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFz c2VydF9lcSEoZiBeIHRpLCB0KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEh KHRpIF4gdCwgZik7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0IF4gdGks IGYpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoZmkgXiBmLCBmKTsKLS0g ICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGYgXiBmaSwgZik7Ci0tCi0tICAgICAg ICAgICAgICAgICAgICAgICAgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBBbmRB c3NpZ246Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgdiA9IGY7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHYgJj0gdGk7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGFzc2VydF9lcSEodiwgZik7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgfQotLSAg ICAgICAgICAgICAgICAgICAgICAgIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8g T3JBc3NpZ246Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgdiA9IGY7Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYgfD0gdGk7Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGFzc2VydF9lcSEodiwgdCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgfQot LSAgICAgICAgICAgICAgICAgICAgICAgIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg Ly8gWE9SQXNzaWduOgotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IHYgPSBm OwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2IF49IHRpOwotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICBhc3NlcnRfZXEhKHYsIHQpOwotLSAgICAgICAgICAgICAgICAgICAgICAg IH0KLS0gICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAg ICAgIH0KLS0gICAgICAgIH0KLS0gICAgfTsKLS19Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkv cnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL29wcy9zY2FsYXJfc2hpZnRzLnJzIGIvdGhpcmRfcGFy dHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL29wcy9zY2FsYXJfc2hpZnRzLnJzCi0tLS0gYS90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvb3BzL3NjYWxhcl9zaGlmdHMucnMJ MjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1 c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9vcHMvc2NhbGFyX3NoaWZ0cy5ycwkxOTcwLTAxLTAxIDAz OjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsMTA2ICswLDAgQEAKLS0vLyEgVmVydGljYWwg KGxhbmUtd2lzZSkgdmVjdG9yLXNjYWxhciBzaGlmdHMgb3BlcmF0aW9ucy4KLS0KLS1tYWNyb19y dWxlcyEgaW1wbF9vcHNfc2NhbGFyX3NoaWZ0cyB7Ci0tICAgIChbJGVsZW1fdHk6aWRlbnQ7ICRl bGVtX2NvdW50OmV4cHJdOiAkaWQ6aWRlbnQgfCAkdGVzdF90dDp0dCkgPT4gewotLSAgICAgICAg aW1wbCBjcmF0ZTo6b3BzOjpTaGw8dTMyPiBmb3IgJGlkIHsKLS0gICAgICAgICAgICB0eXBlIE91 dHB1dCA9IFNlbGY7Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgZm4gc2hs KHNlbGYsIG90aGVyOiB1MzIpIC0+IFNlbGYgewotLSAgICAgICAgICAgICAgICBzZWxmIDw8ICRp ZDo6c3BsYXQob3RoZXIgYXMgJGVsZW1fdHkpCi0tICAgICAgICAgICAgfQotLSAgICAgICAgfQot LSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpTaHI8dTMyPiBmb3IgJGlkIHsKLS0gICAgICAgICAg ICB0eXBlIE91dHB1dCA9IFNlbGY7Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAg ICAgZm4gc2hyKHNlbGYsIG90aGVyOiB1MzIpIC0+IFNlbGYgewotLSAgICAgICAgICAgICAgICBz ZWxmID4+ICRpZDo6c3BsYXQob3RoZXIgYXMgJGVsZW1fdHkpCi0tICAgICAgICAgICAgfQotLSAg ICAgICAgfQotLQotLSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpTaGxBc3NpZ248dTMyPiBmb3Ig JGlkIHsKLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBmbiBzaGxfYXNzaWdu KCZtdXQgc2VsZiwgb3RoZXI6IHUzMikgewotLSAgICAgICAgICAgICAgICAqc2VsZiA9ICpzZWxm IDw8IG90aGVyOwotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgICAgIGltcGwgY3Jh dGU6Om9wczo6U2hyQXNzaWduPHUzMj4gZm9yICRpZCB7Ci0tICAgICAgICAgICAgI1tpbmxpbmVd Ci0tICAgICAgICAgICAgZm4gc2hyX2Fzc2lnbigmbXV0IHNlbGYsIG90aGVyOiB1MzIpIHsKLS0g ICAgICAgICAgICAgICAgKnNlbGYgPSAqc2VsZiA+PiBvdGhlcjsKLS0gICAgICAgICAgICB9Ci0t ICAgICAgICB9Ci0tICAgICAgICB0ZXN0X2lmIXsKLS0gICAgICAgICAgICAkdGVzdF90dDoKLS0g ICAgICAgICAgICBwYXN0ZTo6aXRlbSEgewotLSAgICAgICAgICAgICAgICBwdWIgbW9kIFs8JGlk IF9vcHNfc2NhbGFyX3NoaWZ0cz5dIHsKLS0gICAgICAgICAgICAgICAgICAgIHVzZSBzdXBlcjo6 KjsKLS0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndh c20zMiIpLCB0ZXN0KV0gI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2Jp bmRnZW5fdGVzdCldCi0tICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKGFueSh0YXJnZXRf YXJjaCA9ICJzMzkweCIsIHRhcmdldF9hcmNoID0gInNwYXJjNjQiKSwKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgYWxsb3codW5yZWFjaGFibGVfY29kZSwgdW51c2VkX3ZhcmlhYmxl cykKLS0gICAgICAgICAgICAgICAgICAgICldCi0tICAgICAgICAgICAgICAgICAgICAjW2NmZyhu b3QodGFyZ2V0X2FyY2ggPSAiYWFyY2g2NCIpKV0KLS0gICAgICAgICAgICAgICAgICAgIC8vfl4g RklYTUU6IGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvcGFja2VkX3NpbWQvaXNzdWVzLzMx NwotLSAgICAgICAgICAgICAgICAgICAgZm4gb3BzX3NjYWxhcl9zaGlmdHMoKSB7Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgbGV0IHogPSAkaWQ6OnNwbGF0KDAgYXMgJGVsZW1fdHkpOwotLSAg ICAgICAgICAgICAgICAgICAgICAgIGxldCBvID0gJGlkOjpzcGxhdCgxIGFzICRlbGVtX3R5KTsK LS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdCA9ICRpZDo6c3BsYXQoMiBhcyAkZWxlbV90 eSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGYgPSAkaWQ6OnNwbGF0KDQgYXMgJGVs ZW1fdHkpOwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIHsKLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgbGV0IHppID0gMCBhcyB1MzI7Ci0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGxldCBvaSA9IDEgYXMgdTMyOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQg dGkgPSAyIGFzIHUzMjsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG1heGkKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gKG1lbTo6c2l6ZV9vZjo6PCRlbGVtX3R5 PigpICogOCAtIDEpIGFzIHUzMjsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8g c2hyCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoeiA+PiB6aSwgeik7 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoeiA+PiBvaSwgeik7Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoeiA+PiB0aSwgeik7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoeiA+PiB0aSwgeik7Ci0tCi0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgICNbY2ZnKGFueSh0YXJnZXRfYXJjaCA9ICJzMzkweCIs IHRhcmdldF9hcmNoID0gInNwYXJjNjQiKSldIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIC8vIEZJWE1FOiBodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nLW51cnNlcnkvcGFj a2VkX3NpbWQvaXNzdWVzLzEzCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1 cm47Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgYXNzZXJ0X2VxIShvID4+IHppLCBvKTsKLS0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgYXNzZXJ0X2VxISh0ID4+IHppLCB0KTsKLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgYXNzZXJ0X2VxIShmID4+IHppLCBmKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgYXNzZXJ0X2VxIShmID4+IG1heGksIHopOwotLQotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICBhc3NlcnRfZXEhKG8gPj4gb2ksIHopOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICBhc3NlcnRfZXEhKHQgPj4gb2ksIG8pOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBh c3NlcnRfZXEhKHQgPj4gdGksIHopOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3Nl cnRfZXEhKGYgPj4gb2ksIHQpOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRf ZXEhKGYgPj4gdGksIG8pOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEh KGYgPj4gbWF4aSwgeik7Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNobAot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHogPDwgemksIHopOwotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG8gPDwgemksIG8pOwotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQgPDwgemksIHQpOwotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGYgPDwgemksIGYpOwotLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGYgPDwgbWF4aSwgeik7Ci0tCi0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEobyA8PCBvaSwgdCk7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGFzc2VydF9lcSEobyA8PCB0aSwgZik7Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGFzc2VydF9lcSEodCA8PCBvaSwgZik7Ci0tCi0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHsgIC8vIHNocl9hc3NpZ24KLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGxldCBtdXQgdiA9IG87Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2 ID4+PSBvaTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodiwg eik7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgeyAgLy8gc2hsX2Fzc2lnbgotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgbGV0IG11dCB2ID0gbzsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYgPDw9 IG9pOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh2LCB0KTsK LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgICAg IH0KLS0gICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAg ICAgIH0KLS0gICAgICAgIH0KLS0gICAgfTsKLS19Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkv cnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL29wcy92ZWN0b3JfYXJpdGhtZXRpYy5ycyBiL3RoaXJk X3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9vcHMvdmVjdG9yX2FyaXRobWV0aWMucnMK LS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9vcHMvdmVjdG9yX2Fy aXRobWV0aWMucnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3Ro aXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9vcHMvdmVjdG9yX2FyaXRobWV0aWMu cnMJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDE0OCArMCwwIEBA Ci0tLy8hIFZlcnRpY2FsIChsYW5lLXdpc2UpIHZlY3Rvci12ZWN0b3IgYXJpdGhtZXRpYyBvcGVy YXRpb25zLgotLQotLW1hY3JvX3J1bGVzISBpbXBsX29wc192ZWN0b3JfYXJpdGhtZXRpYyB7Ci0t ICAgIChbJGVsZW1fdHk6aWRlbnQ7ICRlbGVtX2NvdW50OmV4cHJdOiAkaWQ6aWRlbnQgfCAkdGVz dF90dDp0dCkgPT4gewotLSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpBZGQgZm9yICRpZCB7Ci0t ICAgICAgICAgICAgdHlwZSBPdXRwdXQgPSBTZWxmOwotLSAgICAgICAgICAgICNbaW5saW5lXQot LSAgICAgICAgICAgIGZuIGFkZChzZWxmLCBvdGhlcjogU2VsZikgLT4gU2VsZiB7Ci0tICAgICAg ICAgICAgICAgIHVzZSBjcmF0ZTo6bGx2bTo6c2ltZF9hZGQ7Ci0tICAgICAgICAgICAgICAgIHVu c2FmZSB7IFNpbWQoc2ltZF9hZGQoc2VsZi4wLCBvdGhlci4wKSkgfQotLSAgICAgICAgICAgIH0K LS0gICAgICAgIH0KLS0KLS0gICAgICAgIGltcGwgY3JhdGU6Om9wczo6U3ViIGZvciAkaWQgewot LSAgICAgICAgICAgIHR5cGUgT3V0cHV0ID0gU2VsZjsKLS0gICAgICAgICAgICAjW2lubGluZV0K LS0gICAgICAgICAgICBmbiBzdWIoc2VsZiwgb3RoZXI6IFNlbGYpIC0+IFNlbGYgewotLSAgICAg ICAgICAgICAgICB1c2UgY3JhdGU6Omxsdm06OnNpbWRfc3ViOwotLSAgICAgICAgICAgICAgICB1 bnNhZmUgeyBTaW1kKHNpbWRfc3ViKHNlbGYuMCwgb3RoZXIuMCkpIH0KLS0gICAgICAgICAgICB9 Ci0tICAgICAgICB9Ci0tCi0tICAgICAgICBpbXBsIGNyYXRlOjpvcHM6Ok11bCBmb3IgJGlkIHsK LS0gICAgICAgICAgICB0eXBlIE91dHB1dCA9IFNlbGY7Ci0tICAgICAgICAgICAgI1tpbmxpbmVd Ci0tICAgICAgICAgICAgZm4gbXVsKHNlbGYsIG90aGVyOiBTZWxmKSAtPiBTZWxmIHsKLS0gICAg ICAgICAgICAgICAgdXNlIGNyYXRlOjpsbHZtOjpzaW1kX211bDsKLS0gICAgICAgICAgICAgICAg dW5zYWZlIHsgU2ltZChzaW1kX211bChzZWxmLjAsIG90aGVyLjApKSB9Ci0tICAgICAgICAgICAg fQotLSAgICAgICAgfQotLQotLSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpEaXYgZm9yICRpZCB7 Ci0tICAgICAgICAgICAgdHlwZSBPdXRwdXQgPSBTZWxmOwotLSAgICAgICAgICAgICNbaW5saW5l XQotLSAgICAgICAgICAgIGZuIGRpdihzZWxmLCBvdGhlcjogU2VsZikgLT4gU2VsZiB7Ci0tICAg ICAgICAgICAgICAgIHVzZSBjcmF0ZTo6bGx2bTo6c2ltZF9kaXY7Ci0tICAgICAgICAgICAgICAg IHVuc2FmZSB7IFNpbWQoc2ltZF9kaXYoc2VsZi4wLCBvdGhlci4wKSkgfQotLSAgICAgICAgICAg IH0KLS0gICAgICAgIH0KLS0KLS0gICAgICAgIGltcGwgY3JhdGU6Om9wczo6UmVtIGZvciAkaWQg ewotLSAgICAgICAgICAgIHR5cGUgT3V0cHV0ID0gU2VsZjsKLS0gICAgICAgICAgICAjW2lubGlu ZV0KLS0gICAgICAgICAgICBmbiByZW0oc2VsZiwgb3RoZXI6IFNlbGYpIC0+IFNlbGYgewotLSAg ICAgICAgICAgICAgICB1c2UgY3JhdGU6Omxsdm06OnNpbWRfcmVtOwotLSAgICAgICAgICAgICAg ICB1bnNhZmUgeyBTaW1kKHNpbWRfcmVtKHNlbGYuMCwgb3RoZXIuMCkpIH0KLS0gICAgICAgICAg ICB9Ci0tICAgICAgICB9Ci0tCi0tICAgICAgICBpbXBsIGNyYXRlOjpvcHM6OkFkZEFzc2lnbiBm b3IgJGlkIHsKLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBmbiBhZGRfYXNz aWduKCZtdXQgc2VsZiwgb3RoZXI6IFNlbGYpIHsKLS0gICAgICAgICAgICAgICAgKnNlbGYgPSAq c2VsZiArIG90aGVyOwotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0KLS0gICAgICAgIGlt cGwgY3JhdGU6Om9wczo6U3ViQXNzaWduIGZvciAkaWQgewotLSAgICAgICAgICAgICNbaW5saW5l XQotLSAgICAgICAgICAgIGZuIHN1Yl9hc3NpZ24oJm11dCBzZWxmLCBvdGhlcjogU2VsZikgewot LSAgICAgICAgICAgICAgICAqc2VsZiA9ICpzZWxmIC0gb3RoZXI7Ci0tICAgICAgICAgICAgfQot LSAgICAgICAgfQotLQotLSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpNdWxBc3NpZ24gZm9yICRp ZCB7Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgZm4gbXVsX2Fzc2lnbigm bXV0IHNlbGYsIG90aGVyOiBTZWxmKSB7Ci0tICAgICAgICAgICAgICAgICpzZWxmID0gKnNlbGYg KiBvdGhlcjsKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tCi0tICAgICAgICBpbXBsIGNy YXRlOjpvcHM6OkRpdkFzc2lnbiBmb3IgJGlkIHsKLS0gICAgICAgICAgICAjW2lubGluZV0KLS0g ICAgICAgICAgICBmbiBkaXZfYXNzaWduKCZtdXQgc2VsZiwgb3RoZXI6IFNlbGYpIHsKLS0gICAg ICAgICAgICAgICAgKnNlbGYgPSAqc2VsZiAvIG90aGVyOwotLSAgICAgICAgICAgIH0KLS0gICAg ICAgIH0KLS0KLS0gICAgICAgIGltcGwgY3JhdGU6Om9wczo6UmVtQXNzaWduIGZvciAkaWQgewot LSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIGZuIHJlbV9hc3NpZ24oJm11dCBz ZWxmLCBvdGhlcjogU2VsZikgewotLSAgICAgICAgICAgICAgICAqc2VsZiA9ICpzZWxmICUgb3Ro ZXI7Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLQotLSAgICAgICAgdGVzdF9pZiF7Ci0t ICAgICAgICAgICAgJHRlc3RfdHQ6Ci0tICAgICAgICAgICAgcGFzdGU6Oml0ZW0hIHsKLS0gICAg ICAgICAgICAgICBwdWIgbW9kIFs8JGlkIF9vcHNfdmVjdG9yX2FyaXRoPl0gewotLSAgICAgICAg ICAgICAgICAgICAgdXNlIHN1cGVyOjoqOwotLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0 cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXSAjW2NmZ19hdHRyKHRhcmdldF9h cmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAg IGZuIG9wc192ZWN0b3JfYXJpdGhtZXRpYygpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICBs ZXQgeiA9ICRpZDo6c3BsYXQoMCBhcyAkZWxlbV90eSk7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgbGV0IG8gPSAkaWQ6OnNwbGF0KDEgYXMgJGVsZW1fdHkpOwotLSAgICAgICAgICAgICAgICAg ICAgICAgIGxldCB0ID0gJGlkOjpzcGxhdCgyIGFzICRlbGVtX3R5KTsKLS0gICAgICAgICAgICAg ICAgICAgICAgICBsZXQgZiA9ICRpZDo6c3BsYXQoNCBhcyAkZWxlbV90eSk7Ci0tCi0tICAgICAg ICAgICAgICAgICAgICAgICAgLy8gYWRkCi0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0 X2VxISh6ICsgeiwgeik7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvICsg eiwgbyk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0ICsgeiwgdCk7Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0ICsgdCwgZik7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgLy8gc3ViCi0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2Vx ISh6IC0geiwgeik7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvIC0geiwg byk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0IC0geiwgdCk7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShmIC0gdCwgdCk7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgYXNzZXJ0X2VxIShmIC0gbyAtIG8sIHQpOwotLSAgICAgICAgICAgICAgICAg ICAgICAgIC8vIG11bAotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoeiAqIHos IHopOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoeiAqIG8sIHopOwotLSAg ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoeiAqIHQsIHopOwotLSAgICAgICAgICAg ICAgICAgICAgICAgIGFzc2VydF9lcSEobyAqIHQsIHQpOwotLSAgICAgICAgICAgICAgICAgICAg ICAgIGFzc2VydF9lcSEodCAqIHQsIGYpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIGRp dgotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoeiAvIG8sIHopOwotLSAgICAg ICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodCAvIG8sIHQpOwotLSAgICAgICAgICAgICAg ICAgICAgICAgIGFzc2VydF9lcSEoZiAvIG8sIGYpOwotLSAgICAgICAgICAgICAgICAgICAgICAg IGFzc2VydF9lcSEodCAvIHQsIG8pOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9l cSEoZiAvIHQsIHQpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJlbQotLSAgICAgICAg ICAgICAgICAgICAgICAgIGFzc2VydF9lcSEobyAlIG8sIHopOwotLSAgICAgICAgICAgICAgICAg ICAgICAgIGFzc2VydF9lcSEoZiAlIHQsIHopOwotLQotLSAgICAgICAgICAgICAgICAgICAgICAg IHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCB2ID0gejsKLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh2LCB6KTsKLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgdiArPSBvOyAvLyBhZGRfYXNzaWduCi0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGFzc2VydF9lcSEodiwgbyk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYg LT0gbzsgLy8gc3ViX2Fzc2lnbgotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRf ZXEhKHYsIHopOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ID0gdDsKLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgdiAqPSBvOyAvLyBtdWxfYXNzaWduCi0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodiwgdCk7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHYgKj0gdDsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh2 LCBmKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdiAvPSBvOyAvLyBkaXZfYXNzaWdu Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodiwgZik7Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHYgLz0gdDsKLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgYXNzZXJ0X2VxISh2LCB0KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdiAlPSB0 OyAvLyByZW1fYXNzaWduCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEo diwgeik7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAg fQotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICB9 OwotLX0KLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkv b3BzL3ZlY3Rvcl9iaXR3aXNlLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMv YXBpL29wcy92ZWN0b3JfYml0d2lzZS5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRf c2ltZC9zcmMvYXBpL29wcy92ZWN0b3JfYml0d2lzZS5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAw MDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBp L29wcy92ZWN0b3JfYml0d2lzZS5ycwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMw MAotQEAgLTEsMTI5ICswLDAgQEAKLS0vLyEgVmVydGljYWwgKGxhbmUtd2lzZSkgdmVjdG9yLXZl Y3RvciBiaXR3aXNlIG9wZXJhdGlvbnMuCi0tCi0tbWFjcm9fcnVsZXMhIGltcGxfb3BzX3ZlY3Rv cl9iaXR3aXNlIHsKLS0gICAgKAotLSAgICAgICAgWyRlbGVtX3R5OmlkZW50OyAkZWxlbV9jb3Vu dDpleHByXToKLS0gICAgICAgICRpZDppZGVudCB8ICR0ZXN0X3R0OnR0IHwKLS0gICAgICAgICgk dHJ1ZTpleHByLCAkZmFsc2U6ZXhwcikKLS0gICAgKSA9PiB7Ci0tICAgICAgICBpbXBsIGNyYXRl OjpvcHM6Ok5vdCBmb3IgJGlkIHsKLS0gICAgICAgICAgICB0eXBlIE91dHB1dCA9IFNlbGY7Ci0t ICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgZm4gbm90KHNlbGYpIC0+IFNlbGYg ewotLSAgICAgICAgICAgICAgICBTZWxmOjpzcGxhdCgkdHJ1ZSkgXiBzZWxmCi0tICAgICAgICAg ICAgfQotLSAgICAgICAgfQotLSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpCaXRYb3IgZm9yICRp ZCB7Ci0tICAgICAgICAgICAgdHlwZSBPdXRwdXQgPSBTZWxmOwotLSAgICAgICAgICAgICNbaW5s aW5lXQotLSAgICAgICAgICAgIGZuIGJpdHhvcihzZWxmLCBvdGhlcjogU2VsZikgLT4gU2VsZiB7 Ci0tICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6bGx2bTo6c2ltZF94b3I7Ci0tICAgICAgICAg ICAgICAgIHVuc2FmZSB7IFNpbWQoc2ltZF94b3Ioc2VsZi4wLCBvdGhlci4wKSkgfQotLSAgICAg ICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgICAgIGltcGwgY3JhdGU6Om9wczo6Qml0QW5kIGZv ciAkaWQgewotLSAgICAgICAgICAgIHR5cGUgT3V0cHV0ID0gU2VsZjsKLS0gICAgICAgICAgICAj W2lubGluZV0KLS0gICAgICAgICAgICBmbiBiaXRhbmQoc2VsZiwgb3RoZXI6IFNlbGYpIC0+IFNl bGYgewotLSAgICAgICAgICAgICAgICB1c2UgY3JhdGU6Omxsdm06OnNpbWRfYW5kOwotLSAgICAg ICAgICAgICAgICB1bnNhZmUgeyBTaW1kKHNpbWRfYW5kKHNlbGYuMCwgb3RoZXIuMCkpIH0KLS0g ICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgICAgICBpbXBsIGNyYXRlOjpvcHM6OkJpdE9y IGZvciAkaWQgewotLSAgICAgICAgICAgIHR5cGUgT3V0cHV0ID0gU2VsZjsKLS0gICAgICAgICAg ICAjW2lubGluZV0KLS0gICAgICAgICAgICBmbiBiaXRvcihzZWxmLCBvdGhlcjogU2VsZikgLT4g U2VsZiB7Ci0tICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6bGx2bTo6c2ltZF9vcjsKLS0gICAg ICAgICAgICAgICAgdW5zYWZlIHsgU2ltZChzaW1kX29yKHNlbGYuMCwgb3RoZXIuMCkpIH0KLS0g ICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgICAgICBpbXBsIGNyYXRlOjpvcHM6OkJpdEFu ZEFzc2lnbiBmb3IgJGlkIHsKLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBm biBiaXRhbmRfYXNzaWduKCZtdXQgc2VsZiwgb3RoZXI6IFNlbGYpIHsKLS0gICAgICAgICAgICAg ICAgKnNlbGYgPSAqc2VsZiAmIG90aGVyOwotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0g ICAgICAgIGltcGwgY3JhdGU6Om9wczo6Qml0T3JBc3NpZ24gZm9yICRpZCB7Ci0tICAgICAgICAg ICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgZm4gYml0b3JfYXNzaWduKCZtdXQgc2VsZiwgb3Ro ZXI6IFNlbGYpIHsKLS0gICAgICAgICAgICAgICAgKnNlbGYgPSAqc2VsZiB8IG90aGVyOwotLSAg ICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgICAgIGltcGwgY3JhdGU6Om9wczo6Qml0WG9y QXNzaWduIGZvciAkaWQgewotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIGZu IGJpdHhvcl9hc3NpZ24oJm11dCBzZWxmLCBvdGhlcjogU2VsZikgewotLSAgICAgICAgICAgICAg ICAqc2VsZiA9ICpzZWxmIF4gb3RoZXI7Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLQot LSAgICAgICAgdGVzdF9pZiF7Ci0tICAgICAgICAgICAgJHRlc3RfdHQ6Ci0tICAgICAgICAgICAg cGFzdGU6Oml0ZW0hIHsKLS0gICAgICAgICAgICAgICAgcHViIG1vZCBbPCRpZCBfb3BzX3ZlY3Rv cl9iaXR3aXNlPl0gewotLSAgICAgICAgICAgICAgICAgICAgdXNlIHN1cGVyOjoqOwotLSAgICAg ICAgICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRl c3QpXSAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0 KV0KLS0gICAgICAgICAgICAgICAgICAgIGZuIG9wc192ZWN0b3JfYml0d2lzZSgpIHsKLS0KLS0g ICAgICAgICAgICAgICAgICAgICAgICBsZXQgeiA9ICRpZDo6c3BsYXQoMCBhcyAkZWxlbV90eSk7 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG8gPSAkaWQ6OnNwbGF0KDEgYXMgJGVsZW1f dHkpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ID0gJGlkOjpzcGxhdCgyIGFzICRl bGVtX3R5KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbSA9ICRpZDo6c3BsYXQoIXou ZXh0cmFjdCgwKSk7Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgLy8gTm90OgotLSAgICAg ICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoIXosIG0pOwotLSAgICAgICAgICAgICAgICAg ICAgICAgIGFzc2VydF9lcSEoIW0sIHopOwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIC8v IEJpdEFuZDoKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG8gJiBvLCBvKTsK LS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG8gJiB6LCB6KTsKLS0gICAgICAg ICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHogJiBvLCB6KTsKLS0gICAgICAgICAgICAgICAg ICAgICAgICBhc3NlcnRfZXEhKHogJiB6LCB6KTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAg ICBhc3NlcnRfZXEhKHQgJiB0LCB0KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRf ZXEhKHQgJiBvLCB6KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG8gJiB0 LCB6KTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAvLyBCaXRPcjoKLS0gICAgICAgICAg ICAgICAgICAgICAgICBhc3NlcnRfZXEhKG8gfCBvLCBvKTsKLS0gICAgICAgICAgICAgICAgICAg ICAgICBhc3NlcnRfZXEhKG8gfCB6LCBvKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3Nl cnRfZXEhKHogfCBvLCBvKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHog fCB6LCB6KTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQgfCB0LCB0 KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHogfCB0LCB0KTsKLS0gICAg ICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQgfCB6LCB0KTsKLS0KLS0gICAgICAgICAg ICAgICAgICAgICAgICAvLyBCaXRYT1I6Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0 X2VxIShvIF4gbywgeik7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh6IF4g eiwgeik7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh6IF4gbywgbyk7Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvIF4geiwgbyk7Ci0tCi0tICAgICAg ICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0IF4gdCwgeik7Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgYXNzZXJ0X2VxISh0IF4geiwgdCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAg YXNzZXJ0X2VxISh6IF4gdCwgdCk7Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgewotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBBbmRBc3NpZ246Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGxldCBtdXQgdiA9IG87Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAg IHYgJj0gdDsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh2LCB6KTsK LS0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICAgICAgewot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBPckFzc2lnbjoKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgbGV0IG11dCB2ID0gejsKLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgdiB8PSBvOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHYsIG8p OwotLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgICAgICB7 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFhPUkFzc2lnbjoKLS0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgbGV0IG11dCB2ID0gejsKLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgdiBePSBvOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHYs IG8pOwotLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgIH0K LS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgfTsK LS19Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL29w cy92ZWN0b3JfZmxvYXRfbWluX21heC5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQv c3JjL2FwaS9vcHMvdmVjdG9yX2Zsb2F0X21pbl9tYXgucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1 c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9vcHMvdmVjdG9yX2Zsb2F0X21pbl9tYXgucnMJMjAyNS0w NC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFj a2VkX3NpbWQvc3JjL2FwaS9vcHMvdmVjdG9yX2Zsb2F0X21pbl9tYXgucnMJMTk3MC0wMS0wMSAw MzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDc0ICswLDAgQEAKLS0vLyEgVmVydGljYWwg KGxhbmUtd2lzZSkgdmVjdG9yIGBtaW5gIGFuZCBgbWF4YCBmb3IgZmxvYXRpbmctcG9pbnQgdmVj dG9ycy4KLS0KLS1tYWNyb19ydWxlcyEgaW1wbF9vcHNfdmVjdG9yX2Zsb2F0X21pbl9tYXggewot LSAgICAoWyRlbGVtX3R5OmlkZW50OyAkZWxlbV9jb3VudDpleHByXTogJGlkOmlkZW50IHwgJHRl c3RfdHQ6dHQpID0+IHsKLS0gICAgICAgIGltcGwgJGlkIHsKLS0gICAgICAgICAgICAvLy8gTWlu aW11bSBvZiB0d28gdmVjdG9ycy4KLS0gICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAvLy8g UmV0dXJucyBhIG5ldyB2ZWN0b3IgY29udGFpbmluZyB0aGUgbWluaW11bSB2YWx1ZSBvZiBlYWNo IG9mCi0tICAgICAgICAgICAgLy8vIHRoZSBpbnB1dCB2ZWN0b3IgbGFuZXMuCi0tICAgICAgICAg ICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgcHViIGZuIG1pbihzZWxmLCB4OiBTZWxmKSAtPiBT ZWxmIHsKLS0gICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpsbHZtOjpzaW1kX2ZtaW47Ci0tICAg ICAgICAgICAgICAgIHVuc2FmZSB7IFNpbWQoc2ltZF9mbWluKHNlbGYuMCwgeC4wKSkgfQotLSAg ICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAvLy8gTWF4aW11bSBvZiB0d28gdmVjdG9ycy4K LS0gICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAvLy8gUmV0dXJucyBhIG5ldyB2ZWN0b3Ig Y29udGFpbmluZyB0aGUgbWF4aW11bSB2YWx1ZSBvZiBlYWNoIG9mCi0tICAgICAgICAgICAgLy8v IHRoZSBpbnB1dCB2ZWN0b3IgbGFuZXMuCi0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAg ICAgICAgcHViIGZuIG1heChzZWxmLCB4OiBTZWxmKSAtPiBTZWxmIHsKLS0gICAgICAgICAgICAg ICAgdXNlIGNyYXRlOjpsbHZtOjpzaW1kX2ZtYXg7Ci0tICAgICAgICAgICAgICAgIHVuc2FmZSB7 IFNpbWQoc2ltZF9mbWF4KHNlbGYuMCwgeC4wKSkgfQotLSAgICAgICAgICAgIH0KLS0gICAgICAg IH0KLS0gICAgICAgIHRlc3RfaWYhewotLSAgICAgICAgICAgICR0ZXN0X3R0OgotLSAgICAgICAg ICAgIHBhc3RlOjppdGVtISB7Ci0tICAgICAgICAgICAgICAgICNbY2ZnKG5vdChhbnkoCi0tICAg ICAgICAgICAgICAgICAgICAvLyBGSVhNRTogaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy1u dXJzZXJ5L3BhY2tlZF9zaW1kL2lzc3Vlcy8yMjMKLS0gICAgICAgICAgICAgICAgICAgIGFsbCh0 YXJnZXRfYXJjaCA9ICJtaXBzIiwgdGFyZ2V0X2VuZGlhbiA9ICJiaWciKSwKLS0gICAgICAgICAg ICAgICAgICAgIHRhcmdldF9hcmNoID0gIm1pcHM2NCIsCi0tICAgICAgICAgICAgICAgICkpKV0K LS0gICAgICAgICAgICAgICAgcHViIG1vZCBbPCRpZCBfb3BzX3ZlY3Rvcl9taW5fbWF4Pl0gewot LSAgICAgICAgICAgICAgICAgICAgdXNlIHN1cGVyOjoqOwotLSAgICAgICAgICAgICAgICAgICAg I1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXSAjW2NmZ19hdHRy KHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KLS0gICAgICAgICAg ICAgICAgICAgIGZuIG1pbl9tYXgoKSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG4g PSBjcmF0ZTo6JGVsZW1fdHk6Ok5BTjsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbyA9 ICRpZDo6c3BsYXQoMS4gYXMgJGVsZW1fdHkpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxl dCB0ID0gJGlkOjpzcGxhdCgyLiBhcyAkZWxlbV90eSk7Ci0tCi0tICAgICAgICAgICAgICAgICAg ICAgICAgbGV0IG11dCBtID0gbzsgLy8gWzEuLCAyLiwgMS4sIDIuLCAuLi5dCi0tICAgICAgICAg ICAgICAgICAgICAgICAgbGV0IG11dCBvbiA9IG87Ci0tICAgICAgICAgICAgICAgICAgICAgICAg Zm9yIGkgaW4gMC4uJGlkOjpsYW5lcygpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg aWYgaSAlIDIgPT0gMCB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtID0gbS5y ZXBsYWNlKGksIDIuIGFzICRlbGVtX3R5KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIG9uID0gb24ucmVwbGFjZShpLCBuKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg fQotLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAgICAgICAgICAg ICBhc3NlcnRfZXEhKG8ubWluKHQpLCBvKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3Nl cnRfZXEhKHQubWluKG8pLCBvKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEh KG0ubWluKG8pLCBvKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG8ubWlu KG0pLCBvKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG0ubWluKHQpLCBt KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQubWluKG0pLCBtKTsKLS0K LS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG8ubWF4KHQpLCB0KTsKLS0gICAg ICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQubWF4KG8pLCB0KTsKLS0gICAgICAgICAg ICAgICAgICAgICAgICBhc3NlcnRfZXEhKG0ubWF4KG8pLCBtKTsKLS0gICAgICAgICAgICAgICAg ICAgICAgICBhc3NlcnRfZXEhKG8ubWF4KG0pLCBtKTsKLS0gICAgICAgICAgICAgICAgICAgICAg ICBhc3NlcnRfZXEhKG0ubWF4KHQpLCB0KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3Nl cnRfZXEhKHQubWF4KG0pLCB0KTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRf ZXEhKG9uLm1pbihvKSwgbyk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShv Lm1pbihvbiksIG8pOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEob24ubWF4 KG8pLCBvKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG8ubWF4KG9uKSwg byk7Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAg ICAgICB9Ci0tICAgICAgICB9Ci0tICAgIH07Ci0tfQotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5 L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9vcHMvdmVjdG9yX2ludF9taW5fbWF4LnJzIGIvdGhp cmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL29wcy92ZWN0b3JfaW50X21pbl9tYXgu cnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9vcHMvdmVjdG9y X2ludF9taW5fbWF4LnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysg Yi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvb3BzL3ZlY3Rvcl9pbnRfbWlu X21heC5ycwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsNTcgKzAs MCBAQAotLS8vISBWZXJ0aWNhbCAobGFuZS13aXNlKSB2ZWN0b3IgYG1pbmAgYW5kIGBtYXhgIGZv ciBpbnRlZ2VyIHZlY3RvcnMuCi0tCi0tbWFjcm9fcnVsZXMhIGltcGxfb3BzX3ZlY3Rvcl9pbnRf bWluX21heCB7Ci0tICAgIChbJGVsZW1fdHk6aWRlbnQ7ICRlbGVtX2NvdW50OmV4cHJdOiAkaWQ6 aWRlbnQgfCAkdGVzdF90dDp0dCkgPT4gewotLSAgICAgICAgaW1wbCAkaWQgewotLSAgICAgICAg ICAgIC8vLyBNaW5pbXVtIG9mIHR3byB2ZWN0b3JzLgotLSAgICAgICAgICAgIC8vLwotLSAgICAg ICAgICAgIC8vLyBSZXR1cm5zIGEgbmV3IHZlY3RvciBjb250YWluaW5nIHRoZSBtaW5pbXVtIHZh bHVlIG9mIGVhY2ggb2YKLS0gICAgICAgICAgICAvLy8gdGhlIGlucHV0IHZlY3RvciBsYW5lcy4K LS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBwdWIgZm4gbWluKHNlbGYsIHg6 IFNlbGYpIC0+IFNlbGYgewotLSAgICAgICAgICAgICAgICBzZWxmLmx0KHgpLnNlbGVjdChzZWxm LCB4KQotLSAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAvLy8gTWF4aW11bSBvZiB0d28g dmVjdG9ycy4KLS0gICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAvLy8gUmV0dXJucyBhIG5l dyB2ZWN0b3IgY29udGFpbmluZyB0aGUgbWF4aW11bSB2YWx1ZSBvZiBlYWNoIG9mCi0tICAgICAg ICAgICAgLy8vIHRoZSBpbnB1dCB2ZWN0b3IgbGFuZXMuCi0tICAgICAgICAgICAgI1tpbmxpbmVd Ci0tICAgICAgICAgICAgcHViIGZuIG1heChzZWxmLCB4OiBTZWxmKSAtPiBTZWxmIHsKLS0gICAg ICAgICAgICAgICAgc2VsZi5ndCh4KS5zZWxlY3Qoc2VsZiwgeCkKLS0gICAgICAgICAgICB9Ci0t ICAgICAgICB9Ci0tICAgICAgICB0ZXN0X2lmIXskdGVzdF90dDoKLS0gICAgICAgIHBhc3RlOjpp dGVtISB7Ci0tICAgICAgICAgICAgcHViIG1vZCBbPCRpZCBfb3BzX3ZlY3Rvcl9taW5fbWF4Pl0g ewotLSAgICAgICAgICAgICAgICB1c2Ugc3VwZXI6Oio7Ci0tICAgICAgICAgICAgICAgICNbY2Zn X2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0gI1tjZmdfYXR0cih0YXJn ZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCi0tICAgICAgICAgICAgICAg IGZuIG1pbl9tYXgoKSB7Ci0tICAgICAgICAgICAgICAgICAgICBsZXQgbyA9ICRpZDo6c3BsYXQo MSBhcyAkZWxlbV90eSk7Ci0tICAgICAgICAgICAgICAgICAgICBsZXQgdCA9ICRpZDo6c3BsYXQo MiBhcyAkZWxlbV90eSk7Ci0tCi0tICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IG0gPSBvOwot LSAgICAgICAgICAgICAgICAgICAgZm9yIGkgaW4gMC4uJGlkOjpsYW5lcygpIHsKLS0gICAgICAg ICAgICAgICAgICAgICAgICBpZiBpICUgMiA9PSAwIHsKLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgbSA9IG0ucmVwbGFjZShpLCAyIGFzICRlbGVtX3R5KTsKLS0gICAgICAgICAgICAgICAg ICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICBh c3NlcnRfZXEhKG8ubWluKHQpLCBvKTsKLS0gICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEo dC5taW4obyksIG8pOwotLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShtLm1pbihvKSwg byk7Ci0tICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG8ubWluKG0pLCBvKTsKLS0gICAg ICAgICAgICAgICAgICAgIGFzc2VydF9lcSEobS5taW4odCksIG0pOwotLSAgICAgICAgICAgICAg ICAgICAgYXNzZXJ0X2VxISh0Lm1pbihtKSwgbSk7Ci0tCi0tICAgICAgICAgICAgICAgICAgICBh c3NlcnRfZXEhKG8ubWF4KHQpLCB0KTsKLS0gICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEo dC5tYXgobyksIHQpOwotLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShtLm1heChvKSwg bSk7Ci0tICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG8ubWF4KG0pLCBtKTsKLS0gICAg ICAgICAgICAgICAgICAgIGFzc2VydF9lcSEobS5tYXgodCksIHQpOwotLSAgICAgICAgICAgICAg ICAgICAgYXNzZXJ0X2VxISh0Lm1heChtKSwgdCk7Ci0tICAgICAgICAgICAgICAgIH0KLS0gICAg ICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgIH07Ci0tfQotZGlmZiAtTnJi dSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9vcHMvdmVjdG9yX21hc2tf Yml0d2lzZS5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9vcHMvdmVj dG9yX21hc2tfYml0d2lzZS5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9z cmMvYXBpL29wcy92ZWN0b3JfbWFza19iaXR3aXNlLnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAw MDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkv b3BzL3ZlY3Rvcl9tYXNrX2JpdHdpc2UucnMJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAg KzAzMDAKLUBAIC0xLDExNiArMCwwIEBACi0tLy8hIFZlcnRpY2FsIChsYW5lLXdpc2UpIHZlY3Rv ci12ZWN0b3IgYml0d2lzZSBvcGVyYXRpb25zLgotLQotLW1hY3JvX3J1bGVzISBpbXBsX29wc192 ZWN0b3JfbWFza19iaXR3aXNlIHsKLS0gICAgKAotLSAgICAgICAgWyRlbGVtX3R5OmlkZW50OyAk ZWxlbV9jb3VudDpleHByXToKLS0gICAgICAgICRpZDppZGVudCB8ICR0ZXN0X3R0OnR0IHwKLS0g ICAgICAgICgkdHJ1ZTpleHByLCAkZmFsc2U6ZXhwcikKLS0gICAgKSA9PiB7Ci0tICAgICAgICBp bXBsIGNyYXRlOjpvcHM6Ok5vdCBmb3IgJGlkIHsKLS0gICAgICAgICAgICB0eXBlIE91dHB1dCA9 IFNlbGY7Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgZm4gbm90KHNlbGYp IC0+IFNlbGYgewotLSAgICAgICAgICAgICAgICBTZWxmOjpzcGxhdCgkdHJ1ZSkgXiBzZWxmCi0t ICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpCaXRY b3IgZm9yICRpZCB7Ci0tICAgICAgICAgICAgdHlwZSBPdXRwdXQgPSBTZWxmOwotLSAgICAgICAg ICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIGZuIGJpdHhvcihzZWxmLCBvdGhlcjogU2VsZikg LT4gU2VsZiB7Ci0tICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6bGx2bTo6c2ltZF94b3I7Ci0t ICAgICAgICAgICAgICAgIHVuc2FmZSB7IFNpbWQoc2ltZF94b3Ioc2VsZi4wLCBvdGhlci4wKSkg fQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgICAgIGltcGwgY3JhdGU6Om9wczo6 Qml0QW5kIGZvciAkaWQgewotLSAgICAgICAgICAgIHR5cGUgT3V0cHV0ID0gU2VsZjsKLS0gICAg ICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBmbiBiaXRhbmQoc2VsZiwgb3RoZXI6IFNl bGYpIC0+IFNlbGYgewotLSAgICAgICAgICAgICAgICB1c2UgY3JhdGU6Omxsdm06OnNpbWRfYW5k OwotLSAgICAgICAgICAgICAgICB1bnNhZmUgeyBTaW1kKHNpbWRfYW5kKHNlbGYuMCwgb3RoZXIu MCkpIH0KLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgICAgICBpbXBsIGNyYXRlOjpv cHM6OkJpdE9yIGZvciAkaWQgewotLSAgICAgICAgICAgIHR5cGUgT3V0cHV0ID0gU2VsZjsKLS0g ICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBmbiBiaXRvcihzZWxmLCBvdGhlcjog U2VsZikgLT4gU2VsZiB7Ci0tICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6bGx2bTo6c2ltZF9v cjsKLS0gICAgICAgICAgICAgICAgdW5zYWZlIHsgU2ltZChzaW1kX29yKHNlbGYuMCwgb3RoZXIu MCkpIH0KLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgICAgICBpbXBsIGNyYXRlOjpv cHM6OkJpdEFuZEFzc2lnbiBmb3IgJGlkIHsKLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAg ICAgICAgICBmbiBiaXRhbmRfYXNzaWduKCZtdXQgc2VsZiwgb3RoZXI6IFNlbGYpIHsKLS0gICAg ICAgICAgICAgICAgKnNlbGYgPSAqc2VsZiAmIG90aGVyOwotLSAgICAgICAgICAgIH0KLS0gICAg ICAgIH0KLS0gICAgICAgIGltcGwgY3JhdGU6Om9wczo6Qml0T3JBc3NpZ24gZm9yICRpZCB7Ci0t ICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgZm4gYml0b3JfYXNzaWduKCZtdXQg c2VsZiwgb3RoZXI6IFNlbGYpIHsKLS0gICAgICAgICAgICAgICAgKnNlbGYgPSAqc2VsZiB8IG90 aGVyOwotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgICAgIGltcGwgY3JhdGU6Om9w czo6Qml0WG9yQXNzaWduIGZvciAkaWQgewotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAg ICAgICAgIGZuIGJpdHhvcl9hc3NpZ24oJm11dCBzZWxmLCBvdGhlcjogU2VsZikgewotLSAgICAg ICAgICAgICAgICAqc2VsZiA9ICpzZWxmIF4gb3RoZXI7Ci0tICAgICAgICAgICAgfQotLSAgICAg ICAgfQotLQotLSAgICAgICAgdGVzdF9pZiF7Ci0tICAgICAgICAgICAgJHRlc3RfdHQ6Ci0tICAg ICAgICAgICAgcGFzdGU6Oml0ZW0hIHsKLS0gICAgICAgICAgICAgICAgcHViIG1vZCBbPCRpZCBf b3BzX3ZlY3Rvcl9tYXNrX2JpdHdpc2U+XSB7Ci0tICAgICAgICAgICAgICAgICAgICB1c2Ugc3Vw ZXI6Oio7Ci0tICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9 ICJ3YXNtMzIiKSwgdGVzdCldICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2Fz bV9iaW5kZ2VuX3Rlc3QpXQotLSAgICAgICAgICAgICAgICAgICAgZm4gb3BzX3ZlY3Rvcl9tYXNr X2JpdHdpc2UoKSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHQgPSAkaWQ6OnNwbGF0 KHRydWUpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBmID0gJGlkOjpzcGxhdChmYWxz ZSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0ISh0ICE9IGYpOwotLSAgICAgICAg ICAgICAgICAgICAgICAgIGFzc2VydCEoISh0ID09IGYpKTsKLS0KLS0gICAgICAgICAgICAgICAg ICAgICAgICAvLyBOb3Q6Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISghdCwg Zik7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0LCAhZik7Ci0tCi0tICAg ICAgICAgICAgICAgICAgICAgICAgLy8gQml0QW5kOgotLSAgICAgICAgICAgICAgICAgICAgICAg IGFzc2VydF9lcSEodCAmIGYsIGYpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9l cSEoZiAmIHQsIGYpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodCAmIHQs IHQpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoZiAmIGYsIGYpOwotLQot LSAgICAgICAgICAgICAgICAgICAgICAgIC8vIEJpdE9yOgotLSAgICAgICAgICAgICAgICAgICAg ICAgIGFzc2VydF9lcSEodCB8IGYsIHQpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2Vy dF9lcSEoZiB8IHQsIHQpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodCB8 IHQsIHQpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoZiB8IGYsIGYpOwot LQotLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIEJpdFhPUjoKLS0gICAgICAgICAgICAgICAg ICAgICAgICBhc3NlcnRfZXEhKHQgXiBmLCB0KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBh c3NlcnRfZXEhKGYgXiB0LCB0KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEh KHQgXiB0LCBmKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGYgXiBmLCBm KTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICB7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgIC8vIEFuZEFzc2lnbjoKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11 dCB2ID0gZjsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdiAmPSB0OwotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHYsIGYpOwotLSAgICAgICAgICAgICAgICAg ICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgICAgICB7Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC8vIE9yQXNzaWduOgotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQg bXV0IHYgPSBmOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2IHw9IHQ7Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodiwgdCk7Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgICAgIHsKLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgLy8gWE9SQXNzaWduOgotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBs ZXQgbXV0IHYgPSBmOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2IF49IHQ7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodiwgdCk7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICB9 Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICB9OwotLX0KLWRpZmYgLU5yYnUgYS90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvb3BzL3ZlY3Rvcl9uZWcucnMgYi90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvb3BzL3ZlY3Rvcl9uZWcucnMKLS0t LSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9vcHMvdmVjdG9yX25lZy5y cwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkv cnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL29wcy92ZWN0b3JfbmVnLnJzCTE5NzAtMDEtMDEgMDM6 MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSw0MyArMCwwIEBACi0tLy8hIFZlcnRpY2FsIChs YW5lLXdpc2UpIHZlY3RvciBgTmVnYC4KLS0KLS1tYWNyb19ydWxlcyEgaW1wbF9vcHNfdmVjdG9y X25lZyB7Ci0tICAgIChbJGVsZW1fdHk6aWRlbnQ7ICRlbGVtX2NvdW50OmV4cHJdOiAkaWQ6aWRl bnQgfCAkdGVzdF90dDp0dCkgPT4gewotLSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpOZWcgZm9y ICRpZCB7Ci0tICAgICAgICAgICAgdHlwZSBPdXRwdXQgPSBTZWxmOwotLSAgICAgICAgICAgICNb aW5saW5lXQotLSAgICAgICAgICAgIGZuIG5lZyhzZWxmKSAtPiBTZWxmIHsKLS0gICAgICAgICAg ICAgICAgU2VsZjo6c3BsYXQoLTEgYXMgJGVsZW1fdHkpICogc2VsZgotLSAgICAgICAgICAgIH0K LS0gICAgICAgIH0KLS0gICAgICAgIHRlc3RfaWYhewotLSAgICAgICAgICAgICR0ZXN0X3R0Ogot LSAgICAgICAgICAgIHBhc3RlOjppdGVtISB7Ci0tICAgICAgICAgICAgICAgIHB1YiBtb2QgWzwk aWQgX29wc192ZWN0b3JfbmVnPl0gewotLSAgICAgICAgICAgICAgICAgICAgdXNlIHN1cGVyOjoq OwotLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2Fz bTMyIiksIHRlc3QpXSAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmlu ZGdlbl90ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgIGZuIG5lZygpIHsKLS0gICAgICAgICAg ICAgICAgICAgICAgICBsZXQgeiA9ICRpZDo6c3BsYXQoMCBhcyAkZWxlbV90eSk7Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgbGV0IG8gPSAkaWQ6OnNwbGF0KDEgYXMgJGVsZW1fdHkpOwotLSAg ICAgICAgICAgICAgICAgICAgICAgIGxldCB0ID0gJGlkOjpzcGxhdCgyIGFzICRlbGVtX3R5KTsK LS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgZiA9ICRpZDo6c3BsYXQoNCBhcyAkZWxlbV90 eSk7Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG56ID0gJGlkOjpzcGxhdCgtKDAg YXMgJGVsZW1fdHkpKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbm8gPSAkaWQ6OnNw bGF0KC0oMSBhcyAkZWxlbV90eSkpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBudCA9 ICRpZDo6c3BsYXQoLSgyIGFzICRlbGVtX3R5KSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAg bGV0IG5mID0gJGlkOjpzcGxhdCgtKDQgYXMgJGVsZW1fdHkpKTsKLS0KLS0gICAgICAgICAgICAg ICAgICAgICAgICBhc3NlcnRfZXEhKC16LCBueik7Ci0tICAgICAgICAgICAgICAgICAgICAgICAg YXNzZXJ0X2VxISgtbywgbm8pOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEo LXQsIG50KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKC1mLCBuZik7Ci0t Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh6LCAtbnopOwotLSAgICAgICAg ICAgICAgICAgICAgICAgIGFzc2VydF9lcSEobywgLW5vKTsKLS0gICAgICAgICAgICAgICAgICAg ICAgICBhc3NlcnRfZXEhKHQsIC1udCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0 X2VxIShmLCAtbmYpOwotLSAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICB9 Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICB9OwotLX0KLWRpZmYgLU5yYnUgYS90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvb3BzL3ZlY3Rvcl9yb3RhdGVzLnJz IGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL29wcy92ZWN0b3Jfcm90YXRl cy5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL29wcy92ZWN0 b3Jfcm90YXRlcy5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIv dGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL29wcy92ZWN0b3Jfcm90YXRlcy5y cwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsOTIgKzAsMCBAQAot LS8vISBWZXJ0aWNhbCAobGFuZS13aXNlKSB2ZWN0b3Igcm90YXRlcyBvcGVyYXRpb25zLgotLSMh W2FsbG93KHVudXNlZCldCi0tCi0tbWFjcm9fcnVsZXMhIGltcGxfb3BzX3ZlY3Rvcl9yb3RhdGVz IHsKLS0gICAgKFskZWxlbV90eTppZGVudDsgJGVsZW1fY291bnQ6ZXhwcl06ICRpZDppZGVudCB8 ICR0ZXN0X3R0OnR0KSA9PiB7Ci0tICAgICAgICBpbXBsICRpZCB7Ci0tICAgICAgICAgICAgLy8v IFNoaWZ0cyB0aGUgYml0cyBvZiBlYWNoIGxhbmUgdG8gdGhlIGxlZnQgYnkgdGhlIHNwZWNpZmll ZAotLSAgICAgICAgICAgIC8vLyBhbW91bnQgaW4gdGhlIGNvcnJlc3BvbmRpbmcgbGFuZSBvZiBg bmAsIHdyYXBwaW5nIHRoZQotLSAgICAgICAgICAgIC8vLyB0cnVuY2F0ZWQgYml0cyB0byB0aGUg ZW5kIG9mIHRoZSByZXN1bHRpbmcgaW50ZWdlci4KLS0gICAgICAgICAgICAvLy8KLS0gICAgICAg ICAgICAvLy8gTm90ZTogdGhpcyBpcyBuZWl0aGVyIHRoZSBzYW1lIG9wZXJhdGlvbiBhcyBgPDxg IG5vciBlcXVpdmFsZW50Ci0tICAgICAgICAgICAgLy8vIHRvIGBzbGljZTo6cm90YXRlX2xlZnRg LgotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIHB1YiBmbiByb3RhdGVfbGVm dChzZWxmLCBuOiAkaWQpIC0+ICRpZCB7Ci0tICAgICAgICAgICAgICAgIGNvbnN0IExBTkVfV0lE VEg6ICRlbGVtX3R5ID0KLS0gICAgICAgICAgICAgICAgICAgIGNyYXRlOjptZW06OnNpemVfb2Y6 OjwkZWxlbV90eT4oKSBhcyAkZWxlbV90eSAqIDg7Ci0tICAgICAgICAgICAgICAgIC8vIFByb3Rl Y3QgYWdhaW5zdCB1bmRlZmluZWQgYmVoYXZpb3IgZm9yIG92ZXItbG9uZyBiaXQgc2hpZnRzCi0t ICAgICAgICAgICAgICAgIGxldCBuID0gbiAlIExBTkVfV0lEVEg7Ci0tICAgICAgICAgICAgICAg IChzZWxmIDw8IG4pIHwgKHNlbGYgPj4gKChMQU5FX1dJRFRIIC0gbikgJSBMQU5FX1dJRFRIKSkK LS0gICAgICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgLy8vIFNoaWZ0cyB0aGUgYml0cyBvZiBl YWNoIGxhbmUgdG8gdGhlIHJpZ2h0IGJ5IHRoZSBzcGVjaWZpZWQKLS0gICAgICAgICAgICAvLy8g YW1vdW50IGluIHRoZSBjb3JyZXNwb25kaW5nIGxhbmUgb2YgYG5gLCB3cmFwcGluZyB0aGUKLS0g ICAgICAgICAgICAvLy8gdHJ1bmNhdGVkIGJpdHMgdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgcmVz dWx0aW5nIGludGVnZXIuCi0tICAgICAgICAgICAgLy8vCi0tICAgICAgICAgICAgLy8vIE5vdGU6 IHRoaXMgaXMgbmVpdGhlciB0aGUgc2FtZSBvcGVyYXRpb24gYXMgYD4+YCBub3IgZXF1aXZhbGVu dAotLSAgICAgICAgICAgIC8vLyB0byBgc2xpY2U6OnJvdGF0ZV9yaWdodGAuCi0tICAgICAgICAg ICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgcHViIGZuIHJvdGF0ZV9yaWdodChzZWxmLCBuOiAk aWQpIC0+ICRpZCB7Ci0tICAgICAgICAgICAgICAgIGNvbnN0IExBTkVfV0lEVEg6ICRlbGVtX3R5 ID0KLS0gICAgICAgICAgICAgICAgICAgIGNyYXRlOjptZW06OnNpemVfb2Y6OjwkZWxlbV90eT4o KSBhcyAkZWxlbV90eSAqIDg7Ci0tICAgICAgICAgICAgICAgIC8vIFByb3RlY3QgYWdhaW5zdCB1 bmRlZmluZWQgYmVoYXZpb3IgZm9yIG92ZXItbG9uZyBiaXQgc2hpZnRzCi0tICAgICAgICAgICAg ICAgIGxldCBuID0gbiAlIExBTkVfV0lEVEg7Ci0tICAgICAgICAgICAgICAgIChzZWxmID4+IG4p IHwgKHNlbGYgPDwgKChMQU5FX1dJRFRIIC0gbikgJSBMQU5FX1dJRFRIKSkKLS0gICAgICAgICAg ICB9Ci0tICAgICAgICB9Ci0tCi0tICAgICAgICB0ZXN0X2lmIXsKLS0gICAgICAgICAgICAkdGVz dF90dDoKLS0gICAgICAgICAgICBwYXN0ZTo6aXRlbSEgewotLSAgICAgICAgICAgICAgICAvLyBG SVhNRToKLS0gICAgICAgICAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy1u dXJzZXJ5L3BhY2tlZF9zaW1kL2lzc3Vlcy83NQotLSAgICAgICAgICAgICAgICAjW2NmZyhub3Qo YW55KAotLSAgICAgICAgICAgICAgICAgICAgdGFyZ2V0X2FyY2ggPSAiczM5MHgiLAotLSAgICAg ICAgICAgICAgICAgICAgdGFyZ2V0X2FyY2ggPSAic3BhcmM2NCIsCi0tICAgICAgICAgICAgICAg ICkpKV0KLS0gICAgICAgICAgICAgICAgcHViIG1vZCBbPCRpZCBfb3BzX3ZlY3Rvcl9yb3RhdGU+ XSB7Ci0tICAgICAgICAgICAgICAgICAgICB1c2Ugc3VwZXI6Oio7Ci0tICAgICAgICAgICAgICAg ICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldICNbY2Zn X2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQotLSAgICAg ICAgICAgICAgICAgICAgI1tjZmcobm90KHRhcmdldF9hcmNoID0gImFhcmNoNjQiKSldCi0tICAg ICAgICAgICAgICAgICAgICAvL35eIEZJWE1FOiBodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5n L3BhY2tlZF9zaW1kL2lzc3Vlcy8zMTcKLS0gICAgICAgICAgICAgICAgICAgIGZuIHJvdGF0ZV9v cHMoKSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHogPSAkaWQ6OnNwbGF0KDAgYXMg JGVsZW1fdHkpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBvID0gJGlkOjpzcGxhdCgx IGFzICRlbGVtX3R5KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdCA9ICRpZDo6c3Bs YXQoMiBhcyAkZWxlbV90eSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGYgPSAkaWQ6 OnNwbGF0KDQgYXMgJGVsZW1fdHkpOwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBt YXggPSAkaWQ6OnNwbGF0KAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWVtOjpzaXpl X29mOjo8JGVsZW1fdHk+KCkgKiA4IC0gMSkgYXMgJGVsZW1fdHkpOwotLQotLSAgICAgICAgICAg ICAgICAgICAgICAgIC8vIHJvdGF0ZV9yaWdodAotLSAgICAgICAgICAgICAgICAgICAgICAgIGFz c2VydF9lcSEoei5yb3RhdGVfcmlnaHQoeiksIHopOwotLSAgICAgICAgICAgICAgICAgICAgICAg IGFzc2VydF9lcSEoei5yb3RhdGVfcmlnaHQobyksIHopOwotLSAgICAgICAgICAgICAgICAgICAg ICAgIGFzc2VydF9lcSEoei5yb3RhdGVfcmlnaHQodCksIHopOwotLQotLSAgICAgICAgICAgICAg ICAgICAgICAgIGFzc2VydF9lcSEoby5yb3RhdGVfcmlnaHQoeiksIG8pOwotLSAgICAgICAgICAg ICAgICAgICAgICAgIGFzc2VydF9lcSEodC5yb3RhdGVfcmlnaHQoeiksIHQpOwotLSAgICAgICAg ICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoZi5yb3RhdGVfcmlnaHQoeiksIGYpOwotLSAgICAg ICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoZi5yb3RhdGVfcmlnaHQobWF4KSwgZiA8PCAx KTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG8ucm90YXRlX3JpZ2h0 KG8pLCBvIDw8IG1heCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0LnJv dGF0ZV9yaWdodChvKSwgbyk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0 LnJvdGF0ZV9yaWdodCh0KSwgbyA8PCBtYXgpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFz c2VydF9lcSEoZi5yb3RhdGVfcmlnaHQobyksIHQpOwotLSAgICAgICAgICAgICAgICAgICAgICAg IGFzc2VydF9lcSEoZi5yb3RhdGVfcmlnaHQodCksIG8pOwotLQotLSAgICAgICAgICAgICAgICAg ICAgICAgIC8vIHJvdGF0ZV9sZWZ0Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2Vx ISh6LnJvdGF0ZV9sZWZ0KHopLCB6KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRf ZXEhKG8ucm90YXRlX2xlZnQoeiksIG8pOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2Vy dF9lcSEodC5yb3RhdGVfbGVmdCh6KSwgdCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNz ZXJ0X2VxIShmLnJvdGF0ZV9sZWZ0KHopLCBmKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBh c3NlcnRfZXEhKGYucm90YXRlX2xlZnQobWF4KSwgdCk7Ci0tCi0tICAgICAgICAgICAgICAgICAg ICAgICAgYXNzZXJ0X2VxIShvLnJvdGF0ZV9sZWZ0KG8pLCB0KTsKLS0gICAgICAgICAgICAgICAg ICAgICAgICBhc3NlcnRfZXEhKG8ucm90YXRlX2xlZnQodCksIGYpOwotLSAgICAgICAgICAgICAg ICAgICAgICAgIGFzc2VydF9lcSEodC5yb3RhdGVfbGVmdChvKSwgZik7Ci0tICAgICAgICAgICAg ICAgICAgICB9Ci0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9 Ci0tICAgIH07Ci0tfQotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQv c3JjL2FwaS9vcHMvdmVjdG9yX3NoaWZ0cy5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3Np bWQvc3JjL2FwaS9vcHMvdmVjdG9yX3NoaWZ0cy5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9w YWNrZWRfc2ltZC9zcmMvYXBpL29wcy92ZWN0b3Jfc2hpZnRzLnJzCTIwMjUtMDQtMjAgMTk6Mjg6 MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3Ny Yy9hcGkvb3BzL3ZlY3Rvcl9zaGlmdHMucnMJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAg KzAzMDAKLUBAIC0xLDEwNiArMCwwIEBACi0tLy8hIFZlcnRpY2FsIChsYW5lLXdpc2UpIHZlY3Rv ci12ZWN0b3Igc2hpZnRzIG9wZXJhdGlvbnMuCi0tCi0tbWFjcm9fcnVsZXMhIGltcGxfb3BzX3Zl Y3Rvcl9zaGlmdHMgewotLSAgICAoWyRlbGVtX3R5OmlkZW50OyAkZWxlbV9jb3VudDpleHByXTog JGlkOmlkZW50IHwgJHRlc3RfdHQ6dHQpID0+IHsKLS0gICAgICAgIGltcGwgY3JhdGU6Om9wczo6 U2hsPCRpZD4gZm9yICRpZCB7Ci0tICAgICAgICAgICAgdHlwZSBPdXRwdXQgPSBTZWxmOwotLSAg ICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIGZuIHNobChzZWxmLCBvdGhlcjogU2Vs ZikgLT4gU2VsZiB7Ci0tICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6bGx2bTo6c2ltZF9zaGw7 Ci0tICAgICAgICAgICAgICAgIHVuc2FmZSB7IFNpbWQoc2ltZF9zaGwoc2VsZi4wLCBvdGhlci4w KSkgfQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgICAgIGltcGwgY3JhdGU6Om9w czo6U2hyPCRpZD4gZm9yICRpZCB7Ci0tICAgICAgICAgICAgdHlwZSBPdXRwdXQgPSBTZWxmOwot LSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIGZuIHNocihzZWxmLCBvdGhlcjog U2VsZikgLT4gU2VsZiB7Ci0tICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6bGx2bTo6c2ltZF9z aHI7Ci0tICAgICAgICAgICAgICAgIHVuc2FmZSB7IFNpbWQoc2ltZF9zaHIoc2VsZi4wLCBvdGhl ci4wKSkgfQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgICAgIGltcGwgY3JhdGU6 Om9wczo6U2hsQXNzaWduPCRpZD4gZm9yICRpZCB7Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0t ICAgICAgICAgICAgZm4gc2hsX2Fzc2lnbigmbXV0IHNlbGYsIG90aGVyOiBTZWxmKSB7Ci0tICAg ICAgICAgICAgICAgICpzZWxmID0gKnNlbGYgPDwgb3RoZXI7Ci0tICAgICAgICAgICAgfQotLSAg ICAgICAgfQotLSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpTaHJBc3NpZ248JGlkPiBmb3IgJGlk IHsKLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBmbiBzaHJfYXNzaWduKCZt dXQgc2VsZiwgb3RoZXI6IFNlbGYpIHsKLS0gICAgICAgICAgICAgICAgKnNlbGYgPSAqc2VsZiA+ PiBvdGhlcjsKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgICAgICB0ZXN0X2lmIXsK LS0gICAgICAgICAgICAkdGVzdF90dDoKLS0gICAgICAgICAgICBwYXN0ZTo6aXRlbSEgewotLSAg ICAgICAgICAgICAgICBwdWIgbW9kIFs8JGlkIF9vcHNfdmVjdG9yX3NoaWZ0cz5dIHsKLS0gICAg ICAgICAgICAgICAgICAgIHVzZSBzdXBlcjo6KjsKLS0gICAgICAgICAgICAgICAgICAgICNbY2Zn X2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0gI1tjZmdfYXR0cih0YXJn ZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCi0tICAgICAgICAgICAgICAg ICAgICAjW2NmZ19hdHRyKGFueSh0YXJnZXRfYXJjaCA9ICJzMzkweCIsIHRhcmdldF9hcmNoID0g InNwYXJjNjQiKSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxsb3codW5yZWFj aGFibGVfY29kZSwgdW51c2VkX3ZhcmlhYmxlcykKLS0gICAgICAgICAgICAgICAgICAgICldCi0t ICAgICAgICAgICAgICAgICAgICAjW2NmZyhub3QodGFyZ2V0X2FyY2ggPSAiYWFyY2g2NCIpKV0K LS0gICAgICAgICAgICAgICAgICAgIC8vfl4gRklYTUU6IGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0 LWxhbmcvcGFja2VkX3NpbWQvaXNzdWVzLzMxNwotLSAgICAgICAgICAgICAgICAgICAgZm4gb3Bz X3ZlY3Rvcl9zaGlmdHMoKSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHogPSAkaWQ6 OnNwbGF0KDAgYXMgJGVsZW1fdHkpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBvID0g JGlkOjpzcGxhdCgxIGFzICRlbGVtX3R5KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQg dCA9ICRpZDo6c3BsYXQoMiBhcyAkZWxlbV90eSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAg bGV0IGYgPSAkaWQ6OnNwbGF0KDQgYXMgJGVsZW1fdHkpOwotLQotLSAgICAgICAgICAgICAgICAg ICAgICAgIGxldCBtYXggPSRpZDo6c3BsYXQoCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAg IChtZW06OnNpemVfb2Y6OjwkZWxlbV90eT4oKSAqIDggLSAxKSBhcyAkZWxlbV90eQotLSAgICAg ICAgICAgICAgICAgICAgICAgICk7Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgLy8gc2hy Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh6ID4+IHosIHopOwotLSAgICAg ICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoeiA+PiBvLCB6KTsKLS0gICAgICAgICAgICAg ICAgICAgICAgICBhc3NlcnRfZXEhKHogPj4gdCwgeik7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgYXNzZXJ0X2VxISh6ID4+IHQsIHopOwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgICNb Y2ZnKGFueSh0YXJnZXRfYXJjaCA9ICJzMzkweCIsIHRhcmdldF9hcmNoID0gInNwYXJjNjQiKSld IHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IHJ1c3QgcHJvZHVjZXMg YmFkIGNvZGVnZW4gZm9yIHNoaWZ0czoKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8g aHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy1udXJzZXJ5L3BhY2tlZF9zaW1kL2lzc3Vlcy8x MwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgfQotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEobyA+PiB6 LCBvKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQgPj4geiwgdCk7Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShmID4+IHosIGYpOwotLSAgICAgICAg ICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoZiA+PiBtYXgsIHopOwotLQotLSAgICAgICAgICAg ICAgICAgICAgICAgIGFzc2VydF9lcSEobyA+PiBvLCB6KTsKLS0gICAgICAgICAgICAgICAgICAg ICAgICBhc3NlcnRfZXEhKHQgPj4gbywgbyk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNz ZXJ0X2VxISh0ID4+IHQsIHopOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEo ZiA+PiBvLCB0KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGYgPj4gdCwg byk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShmID4+IG1heCwgeik7Ci0t Ci0tICAgICAgICAgICAgICAgICAgICAgICAgLy8gc2hsCi0tICAgICAgICAgICAgICAgICAgICAg ICAgYXNzZXJ0X2VxISh6IDw8IHosIHopOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2Vy dF9lcSEobyA8PCB6LCBvKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQg PDwgeiwgdCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShmIDw8IHosIGYp OwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoZiA8PCBtYXgsIHopOwotLQot LSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEobyA8PCBvLCB0KTsKLS0gICAgICAg ICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG8gPDwgdCwgZik7Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgYXNzZXJ0X2VxISh0IDw8IG8sIGYpOwotLQotLSAgICAgICAgICAgICAgICAgICAg ICAgIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gc2hyX2Fzc2lnbgotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IHYgPSBvOwotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICB2ID4+PSBvOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRf ZXEhKHYsIHopOwotLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAg ICAgICAgICB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNobF9hc3NpZ24KLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCB2ID0gbzsKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgdiA8PD0gbzsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNz ZXJ0X2VxISh2LCB0KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAg ICAgICAgICB9Ci0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9 Ci0tICAgIH07Ci0tfQotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQv c3JjL2FwaS9vcHMucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvb3Bz LnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvb3BzLnJzCTIw MjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0 L3BhY2tlZF9zaW1kL3NyYy9hcGkvb3BzLnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAw ICswMzAwCi1AQCAtMSwzMiArMCwwIEBACi0tLy8hIEltcGxlbWVudGF0aW9uIG9mIHRoZSBgb3Bz YCB0cmFpdHMKLS0jW21hY3JvX3VzZV0KLS1tb2QgdmVjdG9yX21hc2tfYml0d2lzZTsKLS0jW21h Y3JvX3VzZV0KLS1tb2Qgc2NhbGFyX21hc2tfYml0d2lzZTsKLS0KLS0jW21hY3JvX3VzZV0KLS1t b2QgdmVjdG9yX2FyaXRobWV0aWM7Ci0tI1ttYWNyb191c2VdCi0tbW9kIHNjYWxhcl9hcml0aG1l dGljOwotLQotLSNbbWFjcm9fdXNlXQotLW1vZCB2ZWN0b3JfYml0d2lzZTsKLS0jW21hY3JvX3Vz ZV0KLS1tb2Qgc2NhbGFyX2JpdHdpc2U7Ci0tCi0tI1ttYWNyb191c2VdCi0tbW9kIHZlY3Rvcl9z aGlmdHM7Ci0tI1ttYWNyb191c2VdCi0tbW9kIHNjYWxhcl9zaGlmdHM7Ci0tCi0tI1ttYWNyb191 c2VdCi0tbW9kIHZlY3Rvcl9yb3RhdGVzOwotLQotLSNbbWFjcm9fdXNlXQotLW1vZCB2ZWN0b3Jf bmVnOwotLQotLSNbbWFjcm9fdXNlXQotLW1vZCB2ZWN0b3JfaW50X21pbl9tYXg7Ci0tCi0tI1tt YWNyb191c2VdCi0tbW9kIHZlY3Rvcl9mbG9hdF9taW5fbWF4OwotZGlmZiAtTnJidSBhL3RoaXJk X3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9wdHIvZ2F0aGVyX3NjYXR0ZXIucnMgYi90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvcHRyL2dhdGhlcl9zY2F0dGVyLnJz Ci0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvcHRyL2dhdGhlcl9z Y2F0dGVyLnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGly ZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvcHRyL2dhdGhlcl9zY2F0dGVyLnJzCTE5 NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSwyMTYgKzAsMCBAQAotLS8v ISBJbXBsZW1lbnRzIG1hc2tlZCBnYXRoZXIgYW5kIHNjYXR0ZXJzIGZvciB2ZWN0b3JzIG9mIHBv aW50ZXJzCi0tCi0tbWFjcm9fcnVsZXMhIGltcGxfcHRyX3JlYWQgewotLSAgICAoWyRlbGVtX3R5 OnR5OyAkZWxlbV9jb3VudDpleHByXTogJGlkOmlkZW50LCAkbWFza190eTppZGVudAotLSAgICAg fCAkdGVzdF90dDp0dCkgPT4gewotLSAgICAgICAgaW1wbDxUPiAkaWQ8VD4KLS0gICAgICAgIHdo ZXJlCi0tICAgICAgICAgICAgW1Q7ICRlbGVtX2NvdW50XTogc2VhbGVkOjpTaW1kQXJyYXksCi0t ICAgICAgICB7Ci0tICAgICAgICAgICAgLy8vIFJlYWRzIHNlbGVjdGVkIHZlY3RvciBlbGVtZW50 cyBmcm9tIG1lbW9yeS4KLS0gICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAvLy8gSW5zdGFu dGlhdGVzIGEgbmV3IHZlY3RvciBieSByZWFkaW5nIHRoZSB2YWx1ZXMgZnJvbSBgc2VsZmAgZm9y Ci0tICAgICAgICAgICAgLy8vIHRob3NlIGxhbmVzIHdob3NlIGBtYXNrYCBpcyBgdHJ1ZWAsIGFu ZCB1c2luZyB0aGUgZWxlbWVudHMgb2YKLS0gICAgICAgICAgICAvLy8gYHZhbHVlYCBvdGhlcndp c2UuCi0tICAgICAgICAgICAgLy8vCi0tICAgICAgICAgICAgLy8vIE5vIG1lbW9yeSBpcyBhY2Nl c3NlZCBmb3IgdGhvc2UgbGFuZXMgb2YgYHNlbGZgIHdob3NlIGBtYXNrYCBpcwotLSAgICAgICAg ICAgIC8vLyBgZmFsc2VgLgotLSAgICAgICAgICAgIC8vLwotLSAgICAgICAgICAgIC8vLyAjIFNh ZmV0eQotLSAgICAgICAgICAgIC8vLwotLSAgICAgICAgICAgIC8vLyBUaGlzIG1ldGhvZCBpcyB1 bnNhZmUgYmVjYXVzZSBpdCBkZXJlZmVyZW5jZXMgcmF3IHBvaW50ZXJzLiBUaGUKLS0gICAgICAg ICAgICAvLy8gcG9pbnRlcnMgbXVzdCBiZSBhbGlnbmVkIHRvIGBtZW06OmFsaWduX29mOjo8VD4o KWAuCi0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgcHViIHVuc2FmZSBmbiBy ZWFkPE0+KAotLSAgICAgICAgICAgICAgICBzZWxmLAotLSAgICAgICAgICAgICAgICBtYXNrOiBT aW1kPFtNOyAkZWxlbV9jb3VudF0+LAotLSAgICAgICAgICAgICAgICB2YWx1ZTogU2ltZDxbVDsg JGVsZW1fY291bnRdPiwKLS0gICAgICAgICAgICApIC0+IFNpbWQ8W1Q7ICRlbGVtX2NvdW50XT4K LS0gICAgICAgICAgICB3aGVyZQotLSAgICAgICAgICAgICAgICBNOiBzZWFsZWQ6Ok1hc2ssCi0t ICAgICAgICAgICAgICAgIFtNOyAkZWxlbV9jb3VudF06IHNlYWxlZDo6U2ltZEFycmF5LAotLSAg ICAgICAgICAgIHsKLS0gICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpsbHZtOjpzaW1kX2dhdGhl cjsKLS0gICAgICAgICAgICAgICAgU2ltZChzaW1kX2dhdGhlcih2YWx1ZS4wLCBzZWxmLjAsIG1h c2suMCkpCi0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLQotLSAgICAgICAgdGVzdF9pZiEg ewotLSAgICAgICAgICAgICR0ZXN0X3R0OgotLSAgICAgICAgICAgIHBhc3RlOjppdGVtISB7Ci0t ICAgICAgICAgICAgICAgIG1vZCBbPCRpZCBfcmVhZD5dIHsKLS0gICAgICAgICAgICAgICAgICAg IHVzZSBzdXBlcjo6KjsKLS0gICAgICAgICAgICAgICAgICAgICNbdGVzdF0KLS0gICAgICAgICAg ICAgICAgICAgIGZuIHJlYWQoKSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCB2 ID0gWzBfaTMyOyAkZWxlbV9jb3VudF07Ci0tICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGkg aW4gMC4uJGVsZW1fY291bnQgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2W2ldID0g aSBhcyBpMzI7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgfQotLQotLSAgICAgICAgICAgICAg ICAgICAgICAgIGxldCBtdXQgcHRyID0gJGlkOjo8aTMyPjo6bnVsbCgpOwotLQotLSAgICAgICAg ICAgICAgICAgICAgICAgIGZvciBpIGluIDAuLiRlbGVtX2NvdW50IHsKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgcHRyID0gcHRyLnJlcGxhY2UoaSwKLS0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICZ2W2ldIGFzICpjb25zdCBpMzIgYXMgKm11dCBpMzIKLS0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0tCi0tICAg ICAgICAgICAgICAgICAgICAgICAgLy8gYWxsIG1hc2sgZWxlbWVudHMgYXJlIHRydWU6Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgbGV0IG1hc2sgPSAkbWFza190eTo6c3BsYXQodHJ1ZSk7Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRlZiA9IFNpbWQ6OjxbaTMyOyAkZWxlbV9jb3Vu dF0+OjpzcGxhdCg0Ml9pMzIpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCByOiBTaW1k PFtpMzI7ICRlbGVtX2NvdW50XT4gPSB1bnNhZmUgewotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICBwdHIucmVhZChtYXNrLCBkZWYpCi0tICAgICAgICAgICAgICAgICAgICAgICAgfTsKLS0g ICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKAotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICByLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBTaW1kOjo8W2kzMjsgJGVs ZW1fY291bnRdPjo6ZnJvbV9zbGljZV91bmFsaWduZWQoCi0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAmdgotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICApCi0tICAgICAgICAg ICAgICAgICAgICAgICAgKTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IG1h c2sgPSBtYXNrOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGZvciBpIGluIDAuLiRlbGVtX2Nv dW50IHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgaSAlIDIgIT0gMCB7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXNrID0gbWFzay5yZXBsYWNlKGksIGZhbHNl KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAg ICAgIH0KLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAvLyBldmVuIG1hc2sgZWxlbWVudHMg YXJlIHRydWUsIG9kZCBvbmVzIGFyZSBmYWxzZToKLS0gICAgICAgICAgICAgICAgICAgICAgICBs ZXQgcjogU2ltZDxbaTMyOyAkZWxlbV9jb3VudF0+ID0gdW5zYWZlIHsKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgcHRyLnJlYWQobWFzaywgZGVmKQotLSAgICAgICAgICAgICAgICAgICAg ICAgIH07Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBlID0gdjsKLS0gICAgICAg ICAgICAgICAgICAgICAgICBmb3IgaSBpbiAwLi4kZWxlbV9jb3VudCB7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGlmIGkgJSAyICE9IDAgewotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZVtpXSA9IDQyOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9l cSEoCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIHIsCi0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFNpbWQ6OjxbaTMyOyAkZWxlbV9jb3VudF0+Ojpmcm9tX3NsaWNlX3VuYWxpZ25l ZCgKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZlCi0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgICkKLS0gICAgICAgICAgICAgICAgICAgICAgICApOwotLQotLSAgICAgICAg ICAgICAgICAgICAgICAgIC8vIGFsbCBtYXNrIGVsZW1lbnRzIGFyZSBmYWxzZToKLS0gICAgICAg ICAgICAgICAgICAgICAgICBsZXQgbWFzayA9ICRtYXNrX3R5OjpzcGxhdChmYWxzZSk7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgbGV0IGRlZiA9IFNpbWQ6OjxbaTMyOyAkZWxlbV9jb3VudF0+ OjpzcGxhdCg0Ml9pMzIpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCByOiBTaW1kPFtp MzI7ICRlbGVtX2NvdW50XT4gPSB1bnNhZmUgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICBwdHIucmVhZChtYXNrLCBkZWYpIH0KLS0gICAgICAgICAgICAgICAgICAgICAgICA7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShyLCBkZWYpOwotLSAgICAgICAgICAgICAg ICAgICAgfQotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQot LSAgICB9OwotLX0KLS0KLS1tYWNyb19ydWxlcyEgaW1wbF9wdHJfd3JpdGUgewotLSAgICAoWyRl bGVtX3R5OnR5OyAkZWxlbV9jb3VudDpleHByXTogJGlkOmlkZW50LCAkbWFza190eTppZGVudAot LSAgICAgfCAkdGVzdF90dDp0dCkgPT4gewotLSAgICAgICAgaW1wbDxUPiAkaWQ8VD4KLS0gICAg ICAgIHdoZXJlCi0tICAgICAgICAgICAgW1Q7ICRlbGVtX2NvdW50XTogc2VhbGVkOjpTaW1kQXJy YXksCi0tICAgICAgICB7Ci0tICAgICAgICAgICAgLy8vIFdyaXRlcyBzZWxlY3RlZCB2ZWN0b3Ig ZWxlbWVudHMgdG8gbWVtb3J5LgotLSAgICAgICAgICAgIC8vLwotLSAgICAgICAgICAgIC8vLyBX cml0ZXMgdGhlIGxhbmVzIG9mIGB2YWx1ZXNgIGZvciB3aGljaCB0aGUgbWFzayBpcyBgdHJ1ZWAg dG8KLS0gICAgICAgICAgICAvLy8gdGhlaXIgY29ycmVzcG9uZGluZyBtZW1vcnkgYWRkcmVzc2Vz IGluIGBzZWxmYC4KLS0gICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAvLy8gTm8gbWVtb3J5 IGlzIGFjY2Vzc2VkIGZvciB0aG9zZSBsYW5lcyBvZiBgc2VsZmAgd2hvc2UgYG1hc2tgIGlzCi0t ICAgICAgICAgICAgLy8vIGBmYWxzZWAuCi0tICAgICAgICAgICAgLy8vCi0tICAgICAgICAgICAg Ly8vIE92ZXJsYXBwaW5nIG1lbW9yeSBhZGRyZXNzZXMgb2YgYHNlbGZgIGFyZSB3cml0dGVuIHRv IGluIG9yZGVyCi0tICAgICAgICAgICAgLy8vIGZyb20gdGhlIGxlc3Qtc2lnbmlmaWNhbnQgdG8g dGhlIG1vc3Qtc2lnbmlmaWNhbnQgZWxlbWVudC4KLS0gICAgICAgICAgICAvLy8KLS0gICAgICAg ICAgICAvLy8gIyBTYWZldHkKLS0gICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAvLy8gVGhp cyBtZXRob2QgaXMgdW5zYWZlIGJlY2F1c2UgaXQgZGVyZWZlcmVuY2VzIHJhdyBwb2ludGVycy4g VGhlCi0tICAgICAgICAgICAgLy8vIHBvaW50ZXJzIG11c3QgYmUgYWxpZ25lZCB0byBgbWVtOjph bGlnbl9vZjo6PFQ+KClgLgotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIHB1 YiB1bnNhZmUgZm4gd3JpdGU8TT4oc2VsZiwgbWFzazogU2ltZDxbTTsgJGVsZW1fY291bnRdPiwg dmFsdWU6IFNpbWQ8W1Q7ICRlbGVtX2NvdW50XT4pCi0tICAgICAgICAgICAgd2hlcmUKLS0gICAg ICAgICAgICAgICAgTTogc2VhbGVkOjpNYXNrLAotLSAgICAgICAgICAgICAgICBbTTsgJGVsZW1f Y291bnRdOiBzZWFsZWQ6OlNpbWRBcnJheSwKLS0gICAgICAgICAgICB7Ci0tICAgICAgICAgICAg ICAgIHVzZSBjcmF0ZTo6bGx2bTo6c2ltZF9zY2F0dGVyOwotLSAgICAgICAgICAgICAgICBzaW1k X3NjYXR0ZXIodmFsdWUuMCwgc2VsZi4wLCBtYXNrLjApCi0tICAgICAgICAgICAgfQotLSAgICAg ICAgfQotLQotLSAgICAgICAgdGVzdF9pZiEgewotLSAgICAgICAgICAgICR0ZXN0X3R0OgotLSAg ICAgICAgICAgIHBhc3RlOjppdGVtISB7Ci0tICAgICAgICAgICAgICAgIG1vZCBbPCRpZCBfd3Jp dGU+XSB7Ci0tICAgICAgICAgICAgICAgICAgICB1c2Ugc3VwZXI6Oio7Ci0tICAgICAgICAgICAg ICAgICAgICAjW3Rlc3RdCi0tICAgICAgICAgICAgICAgICAgICBmbiB3cml0ZSgpIHsKLS0gICAg ICAgICAgICAgICAgICAgICAgICAvLyBmb3J0eV90d28gPSBbNDIsIDQyLCA0MiwgLi4uXQotLSAg ICAgICAgICAgICAgICAgICAgICAgIGxldCBmb3J0eV90d28KLS0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgPSBTaW1kOjo8W2kzMjsgJGVsZW1fY291bnRdPjo6c3BsYXQoNDJfaTMyKTsKLS0K LS0gICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIHRlc3Qgd2lsbCB3cml0ZSB0byB0aGlz IGFycmF5Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBhcnIgPSBbMF9pMzI7ICRl bGVtX2NvdW50XTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBmb3IgaSBpbiAwLi4kZWxlbV9j b3VudCB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFycltpXSA9IGkgYXMgaTMyOwot LSAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgICAgICAvLyBh cnIgPSBbMCwgMSwgMiwgLi4uXQotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQg cHRyID0gJGlkOjo8aTMyPjo6bnVsbCgpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGZvciBp IGluIDAuLiRlbGVtX2NvdW50IHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHRyID0g cHRyLnJlcGxhY2UoaSwgdW5zYWZlIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGFyci5hc19wdHIoKS5hZGQoaSkgYXMgKm11dCBpMzIKLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgfSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAg ICAgICAgIC8vIHB0ciA9IFsmYXJyWzBdLCAmYXJyWzFdLCAuLi5dCi0tCi0tICAgICAgICAgICAg ICAgICAgICAgICAgLy8gd3JpdGUgYGZvcnR5X3R3b2AgdG8gYWxsIGVsZW1lbnRzIG9mIGB2YAot LSAgICAgICAgICAgICAgICAgICAgICAgIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg bGV0IGJhY2t1cCA9IGFycjsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zYWZlIHsK LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB0ci53cml0ZSgkbWFza190eTo6c3Bs YXQodHJ1ZSksIGZvcnR5X3R3bykKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfTsKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShhcnIsIFs0Ml9pMzI7ICRlbGVt X2NvdW50XSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyciA9IGJhY2t1cDsgIC8v IGFyciA9IFswLCAxLCAyLCAuLi5dCi0tICAgICAgICAgICAgICAgICAgICAgICAgfQotLQotLSAg ICAgICAgICAgICAgICAgICAgICAgIC8vIHdyaXRlIDQyIHRvIGV2ZW4gZWxlbWVudHMgb2YgYXJy OgotLSAgICAgICAgICAgICAgICAgICAgICAgIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgLy8gc2V0IG9kZCBlbGVtZW50cyBvZiB0aGUgbWFzayB0byBmYWxzZQotLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICBsZXQgbXV0IG1hc2sgPSAkbWFza190eTo6c3BsYXQodHJ1ZSk7Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciBpIGluIDAuLiRlbGVtX2NvdW50IHsKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGkgJSAyICE9IDAgewotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hc2sgPSBtYXNrLnJlcGxhY2UoaSwgZmFsc2Up OwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG1hc2sgPSBbdHJ1 ZSwgZmFsc2UsIHRydWUsIGZhbHNlLCAuLi5dCi0tCi0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgIC8vIGV4cGVjdGVkIHJlc3VsdCByID0gWzQyLCAxLCA0MiwgMywgNDIsIDUsIC4uLl0KLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCByID0gYXJyOwotLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICBmb3IgaSBpbiAwLi4kZWxlbV9jb3VudCB7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBpZiBpICUgMiA9PSAwIHsKLS0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICByW2ldID0gNDI7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgbGV0IGJhY2t1cCA9IGFycjsKLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgdW5zYWZlIHsgcHRyLndyaXRlKG1hc2ssIGZvcnR5X3R3bykgfTsKLS0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShhcnIsIHIpOwotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICBhcnIgPSBiYWNrdXA7ICAvLyBhcnIgPSBbMCwgMSwgMiwgMywgLi4uXQotLSAg ICAgICAgICAgICAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAvLyB3 cml0ZSA0MiB0byBubyBlbGVtZW50cyBvZiBhcnIKLS0gICAgICAgICAgICAgICAgICAgICAgICB7 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBiYWNrdXAgPSBhcnI7Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHVuc2FmZSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBwdHIud3JpdGUoJG1hc2tfdHk6OnNwbGF0KGZhbHNlKSwgZm9ydHlfdHdvKQotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9OwotLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICBhc3NlcnRfZXEhKGFyciwgYmFja3VwKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0t ICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICB9 Ci0tICAgICAgICB9Ci0tICAgIH07Ci0tfQotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3Qv cGFja2VkX3NpbWQvc3JjL2FwaS9wdHIucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1k L3NyYy9hcGkvcHRyLnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9h cGkvcHRyLnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGly ZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvcHRyLnJzCTE5NzAtMDEtMDEgMDM6MDA6 MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSw0ICswLDAgQEAKLS0vLyEgVmVjdG9yIG9mIHBvaW50 ZXJzCi0tCi0tI1ttYWNyb191c2VdCi0tbW9kIGdhdGhlcl9zY2F0dGVyOwotZGlmZiAtTnJidSBh L3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9yZWR1Y3Rpb25zL2JpdHdpc2Uu cnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvcmVkdWN0aW9ucy9iaXR3 aXNlLnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvcmVkdWN0 aW9ucy9iaXR3aXNlLnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysg Yi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvcmVkdWN0aW9ucy9iaXR3aXNl LnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSwxNTEgKzAsMCBA QAotLS8vISBJbXBsZW1lbnRzIHBvcnRhYmxlIGhvcml6b250YWwgYml0d2lzZSB2ZWN0b3IgcmVk dWN0aW9ucy4KLS0jIVthbGxvdyh1bnVzZWQpXQotLQotLW1hY3JvX3J1bGVzISBpbXBsX3JlZHVj dGlvbl9iaXR3aXNlIHsKLS0gICAgKAotLSAgICAgICAgWyRlbGVtX3R5OmlkZW50OyAkZWxlbV9j b3VudDpleHByXToKLS0gICAgICAgICRpZDppZGVudCB8ICRpZWxlbV90eTppZGVudCB8ICR0ZXN0 X3R0OnR0IHwKLS0gICAgICAgICgkY29udmVydDpleHByKSB8Ci0tICAgICAgICAoJHRydWU6ZXhw ciwgJGZhbHNlOmV4cHIpCi0tICAgICkgPT4gewotLSAgICAgICAgaW1wbCAkaWQgewotLSAgICAg ICAgICAgIC8vLyBMYW5lLXdpc2UgYml0d2lzZSBgYW5kYCBvZiB0aGUgdmVjdG9yIGVsZW1lbnRz LgotLSAgICAgICAgICAgIC8vLwotLSAgICAgICAgICAgIC8vLyBOb3RlOiBpZiB0aGUgdmVjdG9y IGhhcyBvbmUgbGFuZSwgdGhlIGZpcnN0IGVsZW1lbnQgb2YgdGhlCi0tICAgICAgICAgICAgLy8v IHZlY3RvciBpcyByZXR1cm5lZC4KLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAg ICBwdWIgZm4gYW5kKHNlbGYpIC0+ICRlbGVtX3R5IHsKLS0gICAgICAgICAgICAgICAgI1tjZmco bm90KHRhcmdldF9hcmNoID0gImFhcmNoNjQiKSldCi0tICAgICAgICAgICAgICAgIHsKLS0gICAg ICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6bGx2bTo6c2ltZF9yZWR1Y2VfYW5kOwotLSAgICAg ICAgICAgICAgICAgICAgbGV0IHI6ICRpZWxlbV90eSA9IHVuc2FmZSB7IHNpbWRfcmVkdWNlX2Fu ZChzZWxmLjApIH07Ci0tICAgICAgICAgICAgICAgICAgICAkY29udmVydChyKQotLSAgICAgICAg ICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICNbY2ZnKHRhcmdldF9hcmNoID0gImFhcmNoNjQi KV0KLS0gICAgICAgICAgICAgICAgewotLSAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IGJy b2tlbiBvbiBhYXJjaDY0Ci0tICAgICAgICAgICAgICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5j b20vcnVzdC1sYW5nLW51cnNlcnkvcGFja2VkX3NpbWQvaXNzdWVzLzE1Ci0tICAgICAgICAgICAg ICAgICAgICBsZXQgbXV0IHggPSBzZWxmLmV4dHJhY3QoMCkgYXMgJGVsZW1fdHk7Ci0tICAgICAg ICAgICAgICAgICAgICBmb3IgaSBpbiAxLi4kaWQ6OmxhbmVzKCkgewotLSAgICAgICAgICAgICAg ICAgICAgICAgIHggJj0gc2VsZi5leHRyYWN0KGkpIGFzICRlbGVtX3R5OwotLSAgICAgICAgICAg ICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgeAotLSAgICAgICAgICAgICAgICB9Ci0t ICAgICAgICAgICAgfQotLQotLSAgICAgICAgICAgIC8vLyBMYW5lLXdpc2UgYml0d2lzZSBgb3Jg IG9mIHRoZSB2ZWN0b3IgZWxlbWVudHMuCi0tICAgICAgICAgICAgLy8vCi0tICAgICAgICAgICAg Ly8vIE5vdGU6IGlmIHRoZSB2ZWN0b3IgaGFzIG9uZSBsYW5lLCB0aGUgZmlyc3QgZWxlbWVudCBv ZiB0aGUKLS0gICAgICAgICAgICAvLy8gdmVjdG9yIGlzIHJldHVybmVkLgotLSAgICAgICAgICAg ICNbaW5saW5lXQotLSAgICAgICAgICAgIHB1YiBmbiBvcihzZWxmKSAtPiAkZWxlbV90eSB7Ci0t ICAgICAgICAgICAgICAgICNbY2ZnKG5vdCh0YXJnZXRfYXJjaCA9ICJhYXJjaDY0IikpXQotLSAg ICAgICAgICAgICAgICB7Ci0tICAgICAgICAgICAgICAgICAgICB1c2UgY3JhdGU6Omxsdm06OnNp bWRfcmVkdWNlX29yOwotLSAgICAgICAgICAgICAgICAgICAgbGV0IHI6ICRpZWxlbV90eSA9IHVu c2FmZSB7IHNpbWRfcmVkdWNlX29yKHNlbGYuMCkgfTsKLS0gICAgICAgICAgICAgICAgICAgICRj b252ZXJ0KHIpCi0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgI1tjZmcodGFy Z2V0X2FyY2ggPSAiYWFyY2g2NCIpXQotLSAgICAgICAgICAgICAgICB7Ci0tICAgICAgICAgICAg ICAgICAgICAvLyBGSVhNRTogYnJva2VuIG9uIGFhcmNoNjQKLS0gICAgICAgICAgICAgICAgICAg IC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmctbnVyc2VyeS9wYWNrZWRfc2ltZC9pc3N1 ZXMvMTUKLS0gICAgICAgICAgICAgICAgICAgIGxldCBtdXQgeCA9IHNlbGYuZXh0cmFjdCgwKSBh cyAkZWxlbV90eTsKLS0gICAgICAgICAgICAgICAgICAgIGZvciBpIGluIDEuLiRpZDo6bGFuZXMo KSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgeCB8PSBzZWxmLmV4dHJhY3QoaSkgYXMgJGVs ZW1fdHk7Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICB4Ci0t ICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgLy8vIExh bmUtd2lzZSBiaXR3aXNlIGB4b3JgIG9mIHRoZSB2ZWN0b3IgZWxlbWVudHMuCi0tICAgICAgICAg ICAgLy8vCi0tICAgICAgICAgICAgLy8vIE5vdGU6IGlmIHRoZSB2ZWN0b3IgaGFzIG9uZSBsYW5l LCB0aGUgZmlyc3QgZWxlbWVudCBvZiB0aGUKLS0gICAgICAgICAgICAvLy8gdmVjdG9yIGlzIHJl dHVybmVkLgotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIHB1YiBmbiB4b3Io c2VsZikgLT4gJGVsZW1fdHkgewotLSAgICAgICAgICAgICAgICAjW2NmZyhub3QodGFyZ2V0X2Fy Y2ggPSAiYWFyY2g2NCIpKV0KLS0gICAgICAgICAgICAgICAgewotLSAgICAgICAgICAgICAgICAg ICAgdXNlIGNyYXRlOjpsbHZtOjpzaW1kX3JlZHVjZV94b3I7Ci0tICAgICAgICAgICAgICAgICAg ICBsZXQgcjogJGllbGVtX3R5ID0gdW5zYWZlIHsgc2ltZF9yZWR1Y2VfeG9yKHNlbGYuMCkgfTsK LS0gICAgICAgICAgICAgICAgICAgICRjb252ZXJ0KHIpCi0tICAgICAgICAgICAgICAgIH0KLS0g ICAgICAgICAgICAgICAgI1tjZmcodGFyZ2V0X2FyY2ggPSAiYWFyY2g2NCIpXQotLSAgICAgICAg ICAgICAgICB7Ci0tICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogYnJva2VuIG9uIGFhcmNo NjQKLS0gICAgICAgICAgICAgICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmct bnVyc2VyeS9wYWNrZWRfc2ltZC9pc3N1ZXMvMTUKLS0gICAgICAgICAgICAgICAgICAgIGxldCBt dXQgeCA9IHNlbGYuZXh0cmFjdCgwKSBhcyAkZWxlbV90eTsKLS0gICAgICAgICAgICAgICAgICAg IGZvciBpIGluIDEuLiRpZDo6bGFuZXMoKSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgeCBe PSBzZWxmLmV4dHJhY3QoaSkgYXMgJGVsZW1fdHk7Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0t ICAgICAgICAgICAgICAgICAgICB4Ci0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICB9 Ci0tICAgICAgICB9Ci0tCi0tICAgICAgICB0ZXN0X2lmIXsKLS0gICAgICAgICAgICAkdGVzdF90 dDoKLS0gICAgICAgICAgICBwYXN0ZTo6aXRlbSEgewotLSAgICAgICAgICAgICAgICBwdWIgbW9k IFs8JGlkIF9yZWR1Y3Rpb25fYml0d2lzZT5dIHsKLS0gICAgICAgICAgICAgICAgICAgIHVzZSBz dXBlcjo6KjsKLS0KLS0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9h cmNoID0gIndhc20zMiIpLCB0ZXN0KV0gI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIi LCB3YXNtX2JpbmRnZW5fdGVzdCldCi0tICAgICAgICAgICAgICAgICAgICBmbiBhbmQoKSB7Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHYgPSAkaWQ6OnNwbGF0KCRmYWxzZSk7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh2LmFuZCgpLCAkZmFsc2UpOwotLSAgICAg ICAgICAgICAgICAgICAgICAgIGxldCB2ID0gJGlkOjpzcGxhdCgkdHJ1ZSk7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh2LmFuZCgpLCAkdHJ1ZSk7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgbGV0IHYgPSAkaWQ6OnNwbGF0KCRmYWxzZSk7Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgbGV0IHYgPSB2LnJlcGxhY2UoMCwgJHRydWUpOwotLSAgICAgICAgICAgICAgICAg ICAgICAgIGlmICRpZDo6bGFuZXMoKSA+IDEgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICBhc3NlcnRfZXEhKHYuYW5kKCksICRmYWxzZSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAg fSBlbHNlIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh2LmFuZCgp LCAkdHJ1ZSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAg ICAgICAgIGxldCB2ID0gJGlkOjpzcGxhdCgkdHJ1ZSk7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgbGV0IHYgPSB2LnJlcGxhY2UoMCwgJGZhbHNlKTsKLS0gICAgICAgICAgICAgICAgICAgICAg ICBhc3NlcnRfZXEhKHYuYW5kKCksICRmYWxzZSk7Ci0tCi0tICAgICAgICAgICAgICAgICAgICB9 Ci0tICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNt MzIiKSwgdGVzdCldICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5k Z2VuX3Rlc3QpXQotLSAgICAgICAgICAgICAgICAgICAgZm4gb3IoKSB7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgbGV0IHYgPSAkaWQ6OnNwbGF0KCRmYWxzZSk7Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgYXNzZXJ0X2VxISh2Lm9yKCksICRmYWxzZSk7Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgbGV0IHYgPSAkaWQ6OnNwbGF0KCR0cnVlKTsKLS0gICAgICAgICAgICAgICAgICAgICAg ICBhc3NlcnRfZXEhKHYub3IoKSwgJHRydWUpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxl dCB2ID0gJGlkOjpzcGxhdCgkZmFsc2UpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2 ID0gdi5yZXBsYWNlKDAsICR0cnVlKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRf ZXEhKHYub3IoKSwgJHRydWUpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2ID0gJGlk OjpzcGxhdCgkdHJ1ZSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHYgPSB2LnJlcGxh Y2UoMCwgJGZhbHNlKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBpZiAkaWQ6OmxhbmVzKCkg PiAxIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh2Lm9yKCksICR0 cnVlKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICBhc3NlcnRfZXEhKHYub3IoKSwgJGZhbHNlKTsKLS0gICAgICAgICAgICAg ICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAg ICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldICNbY2ZnX2F0 dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQotLSAgICAgICAg ICAgICAgICAgICAgZm4geG9yKCkgewotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2ID0g JGlkOjpzcGxhdCgkZmFsc2UpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEo di54b3IoKSwgJGZhbHNlKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdiA9ICRpZDo6 c3BsYXQoJHRydWUpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGlmICRpZDo6bGFuZXMoKSA+ IDEgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHYueG9yKCksICRm YWxzZSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh2LnhvcigpLCAkdHJ1ZSk7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2ID0gJGlkOjpzcGxh dCgkZmFsc2UpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2ID0gdi5yZXBsYWNlKDAs ICR0cnVlKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHYueG9yKCksICR0 cnVlKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdiA9ICRpZDo6c3BsYXQoJHRydWUp OwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2ID0gdi5yZXBsYWNlKDAsICRmYWxzZSk7 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgaWYgJGlkOjpsYW5lcygpID4gMSB7Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodi54b3IoKSwgJHRydWUpOwotLSAgICAg ICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAg IGFzc2VydF9lcSEodi54b3IoKSwgJGZhbHNlKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICB9 Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAg ICB9Ci0tICAgICAgICB9Ci0tICAgIH07Ci0tfQotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1 c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9yZWR1Y3Rpb25zL2Zsb2F0X2FyaXRobWV0aWMucnMgYi90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvcmVkdWN0aW9ucy9mbG9hdF9hcml0 aG1ldGljLnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvcmVk dWN0aW9ucy9mbG9hdF9hcml0aG1ldGljLnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAw ICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvcmVkdWN0 aW9ucy9mbG9hdF9hcml0aG1ldGljLnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICsw MzAwCi1AQCAtMSwzMTMgKzAsMCBAQAotLS8vISBJbXBsZW1lbnRzIHBvcnRhYmxlIGhvcml6b250 YWwgZmxvYXQgdmVjdG9yIGFyaXRobWV0aWMgcmVkdWN0aW9ucy4KLS0KLS1tYWNyb19ydWxlcyEg aW1wbF9yZWR1Y3Rpb25fZmxvYXRfYXJpdGhtZXRpYyB7Ci0tICAgIChbJGVsZW1fdHk6aWRlbnQ7 ICRlbGVtX2NvdW50OmV4cHJdOiAkaWQ6aWRlbnQgfCAkdGVzdF90dDp0dCkgPT4gewotLSAgICAg ICAgaW1wbCAkaWQgewotLSAgICAgICAgICAgIC8vLyBIb3Jpem9udGFsIHN1bSBvZiB0aGUgdmVj dG9yIGVsZW1lbnRzLgotLSAgICAgICAgICAgIC8vLwotLSAgICAgICAgICAgIC8vLyBUaGUgaW50 cmluc2ljIHBlcmZvcm1zIGEgdHJlZS1yZWR1Y3Rpb24gb2YgdGhlIHZlY3RvciBlbGVtZW50cy4K LS0gICAgICAgICAgICAvLy8gVGhhdCBpcywgZm9yIGFuIDggZWxlbWVudCB2ZWN0b3I6Ci0tICAg ICAgICAgICAgLy8vCi0tICAgICAgICAgICAgLy8vID4gKCh4MCArIHgxKSArICh4MiArIHgzKSkg KyAoKHg0ICsgeDUpICsgKHg2ICsgeDcpKQotLSAgICAgICAgICAgIC8vLwotLSAgICAgICAgICAg IC8vLyBJZiBvbmUgb2YgdGhlIHZlY3RvciBlbGVtZW50IGlzIGBOYU5gIHRoZSByZWR1Y3Rpb24g cmV0dXJucwotLSAgICAgICAgICAgIC8vLyBgTmFOYC4gVGhlIHJlc3VsdGluZyBgTmFOYCBpcyBu b3QgcmVxdWlyZWQgdG8gYmUgZXF1YWwgdG8gYW55Ci0tICAgICAgICAgICAgLy8vIG9mIHRoZSBg TmFOYHMgaW4gdGhlIHZlY3Rvci4KLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAg ICBwdWIgZm4gc3VtKHNlbGYpIC0+ICRlbGVtX3R5IHsKLS0gICAgICAgICAgICAgICAgI1tjZmco bm90KHRhcmdldF9hcmNoID0gImFhcmNoNjQiKSldCi0tICAgICAgICAgICAgICAgIHsKLS0gICAg ICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6bGx2bTo6c2ltZF9yZWR1Y2VfYWRkX29yZGVyZWQ7 Ci0tICAgICAgICAgICAgICAgICAgICB1bnNhZmUgeyBzaW1kX3JlZHVjZV9hZGRfb3JkZXJlZChz ZWxmLjAsIDAgYXMgJGVsZW1fdHkpIH0KLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAg ICAgICAjW2NmZyh0YXJnZXRfYXJjaCA9ICJhYXJjaDY0IildCi0tICAgICAgICAgICAgICAgIHsK LS0gICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBicm9rZW4gb24gQUFyY2g2NAotLSAgICAg ICAgICAgICAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy1udXJzZXJ5L3Bh Y2tlZF9zaW1kL2lzc3Vlcy8xNQotLSAgICAgICAgICAgICAgICAgICAgbGV0IG11dCB4ID0gc2Vs Zi5leHRyYWN0KDApIGFzICRlbGVtX3R5OwotLSAgICAgICAgICAgICAgICAgICAgZm9yIGkgaW4g MS4uJGlkOjpsYW5lcygpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICB4ICs9IHNlbGYuZXh0 cmFjdChpKSBhcyAkZWxlbV90eTsKLS0gICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAg ICAgICAgICAgIHgKLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgIH0KLS0KLS0gICAg ICAgICAgICAvLy8gSG9yaXpvbnRhbCBwcm9kdWN0IG9mIHRoZSB2ZWN0b3IgZWxlbWVudHMuCi0t ICAgICAgICAgICAgLy8vCi0tICAgICAgICAgICAgLy8vIFRoZSBpbnRyaW5zaWMgcGVyZm9ybXMg YSB0cmVlLXJlZHVjdGlvbiBvZiB0aGUgdmVjdG9yIGVsZW1lbnRzLgotLSAgICAgICAgICAgIC8v LyBUaGF0IGlzLCBmb3IgYW4gOCBlbGVtZW50IHZlY3RvcjoKLS0gICAgICAgICAgICAvLy8KLS0g ICAgICAgICAgICAvLy8gPiAoKHgwICogeDEpICogKHgyICogeDMpKSAqICgoeDQgKiB4NSkgKiAo eDYgKiB4NykpCi0tICAgICAgICAgICAgLy8vCi0tICAgICAgICAgICAgLy8vIElmIG9uZSBvZiB0 aGUgdmVjdG9yIGVsZW1lbnQgaXMgYE5hTmAgdGhlIHJlZHVjdGlvbiByZXR1cm5zCi0tICAgICAg ICAgICAgLy8vIGBOYU5gLiBUaGUgcmVzdWx0aW5nIGBOYU5gIGlzIG5vdCByZXF1aXJlZCB0byBi ZSBlcXVhbCB0byBhbnkKLS0gICAgICAgICAgICAvLy8gb2YgdGhlIGBOYU5gcyBpbiB0aGUgdmVj dG9yLgotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIHB1YiBmbiBwcm9kdWN0 KHNlbGYpIC0+ICRlbGVtX3R5IHsKLS0gICAgICAgICAgICAgICAgI1tjZmcobm90KHRhcmdldF9h cmNoID0gImFhcmNoNjQiKSldCi0tICAgICAgICAgICAgICAgIHsKLS0gICAgICAgICAgICAgICAg ICAgIHVzZSBjcmF0ZTo6bGx2bTo6c2ltZF9yZWR1Y2VfbXVsX29yZGVyZWQ7Ci0tICAgICAgICAg ICAgICAgICAgICB1bnNhZmUgeyBzaW1kX3JlZHVjZV9tdWxfb3JkZXJlZChzZWxmLjAsIDEgYXMg JGVsZW1fdHkpIH0KLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAjW2NmZyh0 YXJnZXRfYXJjaCA9ICJhYXJjaDY0IildCi0tICAgICAgICAgICAgICAgIHsKLS0gICAgICAgICAg ICAgICAgICAgIC8vIEZJWE1FOiBicm9rZW4gb24gQUFyY2g2NAotLSAgICAgICAgICAgICAgICAg ICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy1udXJzZXJ5L3BhY2tlZF9zaW1kL2lz c3Vlcy8xNQotLSAgICAgICAgICAgICAgICAgICAgbGV0IG11dCB4ID0gc2VsZi5leHRyYWN0KDAp IGFzICRlbGVtX3R5OwotLSAgICAgICAgICAgICAgICAgICAgZm9yIGkgaW4gMS4uJGlkOjpsYW5l cygpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICB4ICo9IHNlbGYuZXh0cmFjdChpKSBhcyAk ZWxlbV90eTsKLS0gICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgIHgK LS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0KLS0gICAg ICAgIGltcGwgY3JhdGU6Oml0ZXI6OlN1bSBmb3IgJGlkIHsKLS0gICAgICAgICAgICAjW2lubGlu ZV0KLS0gICAgICAgICAgICBmbiBzdW08STogSXRlcmF0b3I8SXRlbSA9ICRpZD4+KGl0ZXI6IEkp IC0+ICRpZCB7Ci0tICAgICAgICAgICAgICAgIGl0ZXIuZm9sZCgkaWQ6OnNwbGF0KDAuKSwgY3Jh dGU6Om9wczo6QWRkOjphZGQpCi0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLQotLSAgICAg ICAgaW1wbCBjcmF0ZTo6aXRlcjo6UHJvZHVjdCBmb3IgJGlkIHsKLS0gICAgICAgICAgICAjW2lu bGluZV0KLS0gICAgICAgICAgICBmbiBwcm9kdWN0PEk6IEl0ZXJhdG9yPEl0ZW0gPSAkaWQ+Pihp dGVyOiBJKSAtPiAkaWQgewotLSAgICAgICAgICAgICAgICBpdGVyLmZvbGQoJGlkOjpzcGxhdCgx LiksIGNyYXRlOjpvcHM6Ok11bDo6bXVsKQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0K LS0gICAgICAgIGltcGw8J2E+IGNyYXRlOjppdGVyOjpTdW08JidhICRpZD4gZm9yICRpZCB7Ci0t ICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgZm4gc3VtPEk6IEl0ZXJhdG9yPEl0 ZW0gPSAmJ2EgJGlkPj4oaXRlcjogSSkgLT4gJGlkIHsKLS0gICAgICAgICAgICAgICAgaXRlci5m b2xkKCRpZDo6c3BsYXQoMC4pLCB8YSwgYnwgY3JhdGU6Om9wczo6QWRkOjphZGQoYSwgKmIpKQot LSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0KLS0gICAgICAgIGltcGw8J2E+IGNyYXRlOjpp dGVyOjpQcm9kdWN0PCYnYSAkaWQ+IGZvciAkaWQgewotLSAgICAgICAgICAgICNbaW5saW5lXQot LSAgICAgICAgICAgIGZuIHByb2R1Y3Q8STogSXRlcmF0b3I8SXRlbSA9ICYnYSAkaWQ+PihpdGVy OiBJKSAtPiAkaWQgewotLSAgICAgICAgICAgICAgICBpdGVyLmZvbGQoJGlkOjpzcGxhdCgxLiks IHxhLCBifCBjcmF0ZTo6b3BzOjpNdWw6Om11bChhLCAqYikpCi0tICAgICAgICAgICAgfQotLSAg ICAgICAgfQotLQotLSAgICAgICAgdGVzdF9pZiEgewotLSAgICAgICAgICAgICR0ZXN0X3R0Ogot LSAgICAgICAgICAgIHBhc3RlOjppdGVtISB7Ci0tICAgICAgICAgICAgICAgIC8vIENvbXBhcmlz b25zIHVzZSBpbnRlZ2VyIGNhc3RzIHdpdGhpbiBtYW50aXNzYV4xIHJhbmdlLgotLSAgICAgICAg ICAgICAgICAjW2FsbG93KGNsaXBweTo6ZmxvYXRfY21wKV0KLS0gICAgICAgICAgICAgICAgcHVi IG1vZCBbPCRpZCBfcmVkdWN0aW9uX2Zsb2F0X2FyaXRoPl0gewotLSAgICAgICAgICAgICAgICAg ICAgdXNlIHN1cGVyOjoqOwotLSAgICAgICAgICAgICAgICAgICAgZm4gYWx0ZXJuYXRpbmcoeDog dXNpemUpIC0+ICRpZCB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCB2ID0gJGlk OjpzcGxhdCgxIGFzICRlbGVtX3R5KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBmb3IgaSBp biAwLi4kaWQ6OmxhbmVzKCkgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBpICUg eCA9PSAwIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYgPSB2LnJlcGxhY2Uo aSwgMiBhcyAkZWxlbV90eSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAg ICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICAgICAgdgotLSAgICAg ICAgICAgICAgICAgICAgfQotLQotLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cihub3Qo dGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXQotLSAgICAgICAgICAgICAgICAgICAgI1tj ZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCi0tICAg ICAgICAgICAgICAgICAgICBmbiBzdW0oKSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0 IHYgPSAkaWQ6OnNwbGF0KDAgYXMgJGVsZW1fdHkpOwotLSAgICAgICAgICAgICAgICAgICAgICAg IGFzc2VydF9lcSEodi5zdW0oKSwgMCBhcyAkZWxlbV90eSk7Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgbGV0IHYgPSAkaWQ6OnNwbGF0KDEgYXMgJGVsZW1fdHkpOwotLSAgICAgICAgICAgICAg ICAgICAgICAgIGFzc2VydF9lcSEodi5zdW0oKSwgJGlkOjpsYW5lcygpIGFzICRlbGVtX3R5KTsK LS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdiA9IGFsdGVybmF0aW5nKDIpOwotLSAgICAg ICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoCi0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHYuc3VtKCksCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICgkaWQ6OmxhbmVzKCkg LyAyICsgJGlkOjpsYW5lcygpKSBhcyAkZWxlbV90eQotLSAgICAgICAgICAgICAgICAgICAgICAg ICk7Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICAjW2NmZ19h dHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldCi0tICAgICAgICAgICAgICAg ICAgICAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0 KV0KLS0gICAgICAgICAgICAgICAgICAgIGZuIHByb2R1Y3QoKSB7Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgbGV0IHYgPSAkaWQ6OnNwbGF0KDAgYXMgJGVsZW1fdHkpOwotLSAgICAgICAgICAg ICAgICAgICAgICAgIGFzc2VydF9lcSEodi5wcm9kdWN0KCksIDAgYXMgJGVsZW1fdHkpOwotLSAg ICAgICAgICAgICAgICAgICAgICAgIGxldCB2ID0gJGlkOjpzcGxhdCgxIGFzICRlbGVtX3R5KTsK LS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHYucHJvZHVjdCgpLCAxIGFzICRl bGVtX3R5KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgZiA9IG1hdGNoICRpZDo6bGFu ZXMoKSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIDY0ID0+IDE2LAotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAzMiA9PiA4LAotLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAxNiA9PiA0LAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBfID0+IDIsCi0tICAgICAg ICAgICAgICAgICAgICAgICAgfTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdiA9IGFs dGVybmF0aW5nKGYpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoCi0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHYucHJvZHVjdCgpLAotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAoMl91c2l6ZS5wb3coKCRpZDo6bGFuZXMoKSAvIGYpIGFzIHUzMikKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGFzICRlbGVtX3R5KQotLSAgICAgICAgICAgICAgICAg ICAgICAgICk7Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgICAgICAg ICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldCi0tICAgICAg ICAgICAgICAgICAgICAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmlu ZGdlbl90ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgICNbYWxsb3codW5yZWFjaGFibGVfY29k ZSldCi0tICAgICAgICAgICAgICAgICAgICBmbiBzdW1fbmFuKCkgewotLSAgICAgICAgICAgICAg ICAgICAgICAgIC8vIEZJWE1FOiBodHRwczovL2J1Z3MubGx2bS5vcmcvc2hvd19idWcuY2dpP2lk PTM2NzMyCi0tICAgICAgICAgICAgICAgICAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3J1 c3QtbGFuZy1udXJzZXJ5L3BhY2tlZF9zaW1kL2lzc3Vlcy82Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgcmV0dXJuOwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBuMCA9IGNyYXRl OjokZWxlbV90eTo6TkFOOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2MCA9ICRpZDo6 c3BsYXQoLTMuMCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGkgaW4gMC4uJGlkOjps YW5lcygpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCB2ID0gdjAucmVw bGFjZShpLCBuMCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIElmIHRoZSB2ZWN0 b3IgY29udGFpbnMgYSBOYU4gdGhlIHJlc3VsdCBpcyBOYU46Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGFzc2VydCEoCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2LnN1 bSgpLmlzX25hbigpLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm5hbiBhdCB7 fSA9PiB7fSB8IHs6P30iLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaSwKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYuc3VtKCksCi0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB2Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGZvciBqIGluIDAuLmkgewotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgdiA9IHYucmVwbGFjZShqLCBuMCk7Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBhc3NlcnQhKHYuc3VtKCkuaXNfbmFuKCkpOwotLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAg ICAgICAgICAgICAgICAgIGxldCB2ID0gJGlkOjpzcGxhdChuMCk7Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgYXNzZXJ0ISh2LnN1bSgpLmlzX25hbigpLCAiYWxsIG5hbnMgfCB7Oj99Iiwgdik7 Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgICAgICAgICAjW2NmZ19h dHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldCi0tICAgICAgICAgICAgICAg ICAgICAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0 KV0KLS0gICAgICAgICAgICAgICAgICAgICNbYWxsb3codW5yZWFjaGFibGVfY29kZSldCi0tICAg ICAgICAgICAgICAgICAgICBmbiBwcm9kdWN0X25hbigpIHsKLS0gICAgICAgICAgICAgICAgICAg ICAgICAvLyBGSVhNRTogaHR0cHM6Ly9idWdzLmxsdm0ub3JnL3Nob3dfYnVnLmNnaT9pZD0zNjcz MgotLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxh bmctbnVyc2VyeS9wYWNrZWRfc2ltZC9pc3N1ZXMvNgotLSAgICAgICAgICAgICAgICAgICAgICAg IHJldHVybjsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbjAgPSBjcmF0ZTo6JGVs ZW1fdHk6Ok5BTjsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdjAgPSAkaWQ6OnNwbGF0 KC0zLjApOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGZvciBpIGluIDAuLiRpZDo6bGFuZXMo KSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgdiA9IHYwLnJlcGxhY2Uo aSwgbjApOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBJZiB0aGUgdmVjdG9yIGNv bnRhaW5zIGEgTmFOIHRoZSByZXN1bHQgaXMgTmFOOgotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICBhc3NlcnQhKAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdi5wcm9kdWN0 KCkuaXNfbmFuKCksCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibmFuIGF0IHt9 ID0+IHt9IHwgezo/fSIsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpLAotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdi5wcm9kdWN0KCksCi0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB2Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciBqIGluIDAuLmkgewotLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgdiA9IHYucmVwbGFjZShqLCBuMCk7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKHYucHJvZHVjdCgpLmlzX25hbigpKTsKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0g ICAgICAgICAgICAgICAgICAgICAgICBsZXQgdiA9ICRpZDo6c3BsYXQobjApOwotLSAgICAgICAg ICAgICAgICAgICAgICAgIGFzc2VydCEodi5wcm9kdWN0KCkuaXNfbmFuKCksICJhbGwgbmFucyB8 IHs6P30iLCB2KTsKLS0gICAgICAgICAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAgICAg ICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0KLS0gICAg ICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9i aW5kZ2VuX3Rlc3QpXQotLSAgICAgICAgICAgICAgICAgICAgI1thbGxvdyh1bnVzZWQsIGRlYWRf Y29kZSldCi0tICAgICAgICAgICAgICAgICAgICBmbiBzdW1fcm91bmRvZmYoKSB7Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgLy8gUGVyZm9ybXMgYSB0cmVlLXJlZHVjdGlvbgotLSAgICAgICAg ICAgICAgICAgICAgICAgIGZuIHRyZWVfcmVkdWNlX3N1bShhOiAmWyRlbGVtX3R5XSkgLT4gJGVs ZW1fdHkgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKCFhLmlzX2VtcHR5 KCkpOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBhLmxlbigpID09IDEgewotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYVswXQotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9IGVsc2UgaWYgYS5sZW4oKSA9PSAyIHsKLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGFbMF0gKyBhWzFdCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxz ZSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbWlkID0gYS5sZW4oKSAv IDI7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgKGxlZnQsIHJpZ2h0KSA9 IGEuc3BsaXRfYXQobWlkKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyZWVf cmVkdWNlX3N1bShsZWZ0KSArIHRyZWVfcmVkdWNlX3N1bShyaWdodCkKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0KLS0gICAgICAg ICAgICAgICAgICAgICAgICBsZXQgbXV0IHN0YXJ0ID0gY3JhdGU6OiRlbGVtX3R5OjpFUFNJTE9O OwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgc2NhbGFyX3JlZHVjdGlvbiA9IDAu IGFzICRlbGVtX3R5OwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgdiA9ICRp ZDo6c3BsYXQoMC4gYXMgJGVsZW1fdHkpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGZvciBp IGluIDAuLiRpZDo6bGFuZXMoKSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBj ID0gaWYgaSAlIDIgPT0gMCB7IDFlMyB9IGVsc2UgeyAtMS4gfTsKLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgc3RhcnQgKj0gOjpjb3JlOjokZWxlbV90eTo6Y29uc3RzOjpQSSAqIGM7Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjYWxhcl9yZWR1Y3Rpb24gKz0gc3RhcnQ7Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYgPSB2LnJlcGxhY2UoaSwgc3RhcnQpOwotLSAg ICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgc2lt ZF9yZWR1Y3Rpb24gPSB2LnN1bSgpOwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBt dXQgYSA9IFswLiBhcyAkZWxlbV90eTsgJGlkOjpsYW5lcygpXTsKLS0gICAgICAgICAgICAgICAg ICAgICAgICB2LndyaXRlX3RvX3NsaWNlX3VuYWxpZ25lZCgmbXV0IGEpOwotLSAgICAgICAgICAg ICAgICAgICAgICAgIGxldCB0cmVlX3JlZHVjdGlvbiA9IHRyZWVfcmVkdWNlX3N1bSgmYSk7Ci0t Ci0tICAgICAgICAgICAgICAgICAgICAgICAgLy8gdG9sZXJhdGUgMSBVTFAgZGlmZmVyZW5jZToK LS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgcmVkX2JpdHMgPSBzaW1kX3JlZHVjdGlvbi50 b19iaXRzKCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRyZWVfYml0cyA9IHRyZWVf cmVkdWN0aW9uLnRvX2JpdHMoKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKAot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiByZWRfYml0cyA+IHRyZWVfYml0cyB7Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWRfYml0cyAtIHRyZWVfYml0cwotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgdHJlZV9iaXRzIC0gcmVkX2JpdHMKLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgfSA8IDIsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ2ZWN0b3I6IHs6P30g fCBzaW1kX3JlZHVjdGlvbjogezo/fSB8IFwKLS10cmVlX3JlZHVjdGlvbjoge30gfCBzY2FsYXJf cmVkdWN0aW9uOiB7fSIsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYsCi0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHNpbWRfcmVkdWN0aW9uLAotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICB0cmVlX3JlZHVjdGlvbiwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg c2NhbGFyX3JlZHVjdGlvbgotLSAgICAgICAgICAgICAgICAgICAgICAgICk7Ci0tICAgICAgICAg ICAgICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJn ZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldCi0tICAgICAgICAgICAgICAgICAgICAjW2NmZ19h dHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KLS0gICAgICAg ICAgICAgICAgICAgICNbYWxsb3codW51c2VkLCBkZWFkX2NvZGUpXQotLSAgICAgICAgICAgICAg ICAgICAgZm4gcHJvZHVjdF9yb3VuZG9mZigpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICB1 c2UgOjpjb3JlOjpjb252ZXJ0OjpUcnlJbnRvOwotLSAgICAgICAgICAgICAgICAgICAgICAgIC8v IFBlcmZvcm1zIGEgdHJlZS1yZWR1Y3Rpb24KLS0gICAgICAgICAgICAgICAgICAgICAgICBmbiB0 cmVlX3JlZHVjZV9wcm9kdWN0KGE6ICZbJGVsZW1fdHldKSAtPiAkZWxlbV90eSB7Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCEoIWEuaXNfZW1wdHkoKSk7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGlmIGEubGVuKCkgPT0gMSB7Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBhWzBdCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBp ZiBhLmxlbigpID09IDIgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYVswXSAq IGFbMV0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLS0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGxldCBtaWQgPSBhLmxlbigpIC8gMjsKLS0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGxldCAobGVmdCwgcmlnaHQpID0gYS5zcGxpdF9hdChtaWQp OwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJlZV9yZWR1Y2VfcHJvZHVjdChs ZWZ0KQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogdHJlZV9yZWR1Y2Vf cHJvZHVjdChyaWdodCkKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAg ICAgICAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IHN0 YXJ0ID0gY3JhdGU6OiRlbGVtX3R5OjpFUFNJTE9OOwotLSAgICAgICAgICAgICAgICAgICAgICAg IGxldCBtdXQgc2NhbGFyX3JlZHVjdGlvbiA9IDEuIGFzICRlbGVtX3R5OwotLQotLSAgICAgICAg ICAgICAgICAgICAgICAgIGxldCBtdXQgdiA9ICRpZDo6c3BsYXQoMC4gYXMgJGVsZW1fdHkpOwot LSAgICAgICAgICAgICAgICAgICAgICAgIGZvciBpIGluIDAuLiRpZDo6bGFuZXMoKSB7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBjID0gaWYgaSAlIDIgPT0gMCB7IDFlMyB9IGVs c2UgeyAtMS4gfTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQgKj0gOjpjb3Jl OjokZWxlbV90eTo6Y29uc3RzOjpQSSAqIGM7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAg IHNjYWxhcl9yZWR1Y3Rpb24gKj0gc3RhcnQ7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAg IHYgPSB2LnJlcGxhY2UoaSwgc3RhcnQpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0g ICAgICAgICAgICAgICAgICAgICAgICBsZXQgc2ltZF9yZWR1Y3Rpb24gPSB2LnByb2R1Y3QoKTsK LS0KLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IGEgPSBbMC4gYXMgJGVsZW1fdHk7 ICRpZDo6bGFuZXMoKV07Ci0tICAgICAgICAgICAgICAgICAgICAgICAgdi53cml0ZV90b19zbGlj ZV91bmFsaWduZWQoJm11dCBhKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdHJlZV9y ZWR1Y3Rpb24gPSB0cmVlX3JlZHVjZV9wcm9kdWN0KCZhKTsKLS0KLS0gICAgICAgICAgICAgICAg ICAgICAgICAvLyBGSVhNRTogVG9vIGltcHJlY2lzZSwgZXZlbiBvbmx5IGZvciBwcm9kdWN0KGYz Mng4KS4KLS0gICAgICAgICAgICAgICAgICAgICAgICAvLyBGaWd1cmUgb3V0IGhvdyB0byBuYXJy b3cgdGhpcyBkb3duLgotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB1bHBfbGltaXQgPSAk aWQ6OmxhbmVzKCkgLyAyOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCByZWRfYml0cyA9 IHNpbWRfcmVkdWN0aW9uLnRvX2JpdHMoKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQg dHJlZV9iaXRzID0gdHJlZV9yZWR1Y3Rpb24udG9fYml0cygpOwotLSAgICAgICAgICAgICAgICAg ICAgICAgIGFzc2VydCEoCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHJlZF9iaXRz ID4gdHJlZV9iaXRzIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZF9iaXRz IC0gdHJlZV9iaXRzCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmVlX2JpdHMgLSByZWRfYml0cwotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9IDwgdWxwX2xpbWl0LnRyeV9pbnRvKCkudW53cmFwKCks Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ2ZWN0b3I6IHs6P30gfCBzaW1kX3JlZHVj dGlvbjogezo/fSB8IFwKLS10cmVlX3JlZHVjdGlvbjoge30gfCBzY2FsYXJfcmVkdWN0aW9uOiB7 fSIsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYsCi0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNpbWRfcmVkdWN0aW9uLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB0 cmVlX3JlZHVjdGlvbiwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NhbGFyX3JlZHVj dGlvbgotLSAgICAgICAgICAgICAgICAgICAgICAgICk7Ci0tICAgICAgICAgICAgICAgICAgICB9 Ci0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgIH07 Ci0tfQotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9y ZWR1Y3Rpb25zL2ludGVnZXJfYXJpdGhtZXRpYy5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2Vk X3NpbWQvc3JjL2FwaS9yZWR1Y3Rpb25zL2ludGVnZXJfYXJpdGhtZXRpYy5ycwotLS0tIGEvdGhp cmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL3JlZHVjdGlvbnMvaW50ZWdlcl9hcml0 aG1ldGljLnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGly ZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvcmVkdWN0aW9ucy9pbnRlZ2VyX2FyaXRo bWV0aWMucnMJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDE5MyAr MCwwIEBACi0tLy8hIEltcGxlbWVudHMgcG9ydGFibGUgaG9yaXpvbnRhbCBpbnRlZ2VyIHZlY3Rv ciBhcml0aG1ldGljIHJlZHVjdGlvbnMuCi0tCi0tbWFjcm9fcnVsZXMhIGltcGxfcmVkdWN0aW9u X2ludGVnZXJfYXJpdGhtZXRpYyB7Ci0tICAgIChbJGVsZW1fdHk6aWRlbnQ7ICRlbGVtX2NvdW50 OmV4cHJdOiAkaWQ6aWRlbnQgfCAkaWVsZW1fdHk6aWRlbnQKLS0gICAgIHwgJHRlc3RfdHQ6dHQp ID0+IHsKLS0gICAgICAgIGltcGwgJGlkIHsKLS0gICAgICAgICAgICAvLy8gSG9yaXpvbnRhbCB3 cmFwcGluZyBzdW0gb2YgdGhlIHZlY3RvciBlbGVtZW50cy4KLS0gICAgICAgICAgICAvLy8KLS0g ICAgICAgICAgICAvLy8gVGhlIGludHJpbnNpYyBwZXJmb3JtcyBhIHRyZWUtcmVkdWN0aW9uIG9m IHRoZSB2ZWN0b3IgZWxlbWVudHMuCi0tICAgICAgICAgICAgLy8vIFRoYXQgaXMsIGZvciBhbiA4 IGVsZW1lbnQgdmVjdG9yOgotLSAgICAgICAgICAgIC8vLwotLSAgICAgICAgICAgIC8vLyA+ICgo eDAgKyB4MSkgKyAoeDIgKyB4MykpICsgKCh4NCArIHg1KSArICh4NiArIHg3KSkKLS0gICAgICAg ICAgICAvLy8KLS0gICAgICAgICAgICAvLy8gSWYgYW4gb3BlcmF0aW9uIG92ZXJmbG93cyBpdCBy ZXR1cm5zIHRoZSBtYXRoZW1hdGljYWwgcmVzdWx0Ci0tICAgICAgICAgICAgLy8vIG1vZHVsbyBg Ml5uYCB3aGVyZSBgbmAgaXMgdGhlIG51bWJlciBvZiB0aW1lcyBpdCBvdmVyZmxvd3MuCi0tICAg ICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgcHViIGZuIHdyYXBwaW5nX3N1bShzZWxm KSAtPiAkZWxlbV90eSB7Ci0tICAgICAgICAgICAgICAgICNbY2ZnKG5vdCh0YXJnZXRfYXJjaCA9 ICJhYXJjaDY0IikpXQotLSAgICAgICAgICAgICAgICB7Ci0tICAgICAgICAgICAgICAgICAgICB1 c2UgY3JhdGU6Omxsdm06OnNpbWRfcmVkdWNlX2FkZF9vcmRlcmVkOwotLSAgICAgICAgICAgICAg ICAgICAgbGV0IHY6ICRpZWxlbV90eSA9IHVuc2FmZSB7IHNpbWRfcmVkdWNlX2FkZF9vcmRlcmVk KHNlbGYuMCwgMCBhcyAkaWVsZW1fdHkpIH07Ci0tICAgICAgICAgICAgICAgICAgICB2IGFzICRl bGVtX3R5Ci0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgI1tjZmcodGFyZ2V0 X2FyY2ggPSAiYWFyY2g2NCIpXQotLSAgICAgICAgICAgICAgICB7Ci0tICAgICAgICAgICAgICAg ICAgICAvLyBGSVhNRTogYnJva2VuIG9uIEFBcmNoNjQKLS0gICAgICAgICAgICAgICAgICAgIC8v IGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmctbnVyc2VyeS9wYWNrZWRfc2ltZC9pc3N1ZXMv MTUKLS0gICAgICAgICAgICAgICAgICAgIGxldCBtdXQgeCA9IHNlbGYuZXh0cmFjdCgwKSBhcyAk ZWxlbV90eTsKLS0gICAgICAgICAgICAgICAgICAgIGZvciBpIGluIDEuLiRpZDo6bGFuZXMoKSB7 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgeCA9IHgud3JhcHBpbmdfYWRkKHNlbGYuZXh0cmFj dChpKSBhcyAkZWxlbV90eSk7Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAg ICAgICAgICB4Ci0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICB9Ci0tCi0tICAgICAg ICAgICAgLy8vIEhvcml6b250YWwgd3JhcHBpbmcgcHJvZHVjdCBvZiB0aGUgdmVjdG9yIGVsZW1l bnRzLgotLSAgICAgICAgICAgIC8vLwotLSAgICAgICAgICAgIC8vLyBUaGUgaW50cmluc2ljIHBl cmZvcm1zIGEgdHJlZS1yZWR1Y3Rpb24gb2YgdGhlIHZlY3RvciBlbGVtZW50cy4KLS0gICAgICAg ICAgICAvLy8gVGhhdCBpcywgZm9yIGFuIDggZWxlbWVudCB2ZWN0b3I6Ci0tICAgICAgICAgICAg Ly8vCi0tICAgICAgICAgICAgLy8vID4gKCh4MCAqIHgxKSAqICh4MiAqIHgzKSkgKiAoKHg0ICog eDUpICogKHg2ICogeDcpKQotLSAgICAgICAgICAgIC8vLwotLSAgICAgICAgICAgIC8vLyBJZiBh biBvcGVyYXRpb24gb3ZlcmZsb3dzIGl0IHJldHVybnMgdGhlIG1hdGhlbWF0aWNhbCByZXN1bHQK LS0gICAgICAgICAgICAvLy8gbW9kdWxvIGAyXm5gIHdoZXJlIGBuYCBpcyB0aGUgbnVtYmVyIG9m IHRpbWVzIGl0IG92ZXJmbG93cy4KLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAg ICBwdWIgZm4gd3JhcHBpbmdfcHJvZHVjdChzZWxmKSAtPiAkZWxlbV90eSB7Ci0tICAgICAgICAg ICAgICAgICNbY2ZnKG5vdCh0YXJnZXRfYXJjaCA9ICJhYXJjaDY0IikpXQotLSAgICAgICAgICAg ICAgICB7Ci0tICAgICAgICAgICAgICAgICAgICB1c2UgY3JhdGU6Omxsdm06OnNpbWRfcmVkdWNl X211bF9vcmRlcmVkOwotLSAgICAgICAgICAgICAgICAgICAgbGV0IHY6ICRpZWxlbV90eSA9IHVu c2FmZSB7IHNpbWRfcmVkdWNlX211bF9vcmRlcmVkKHNlbGYuMCwgMSBhcyAkaWVsZW1fdHkpIH07 Ci0tICAgICAgICAgICAgICAgICAgICB2IGFzICRlbGVtX3R5Ci0tICAgICAgICAgICAgICAgIH0K LS0gICAgICAgICAgICAgICAgI1tjZmcodGFyZ2V0X2FyY2ggPSAiYWFyY2g2NCIpXQotLSAgICAg ICAgICAgICAgICB7Ci0tICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogYnJva2VuIG9uIEFB cmNoNjQKLS0gICAgICAgICAgICAgICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxh bmctbnVyc2VyeS9wYWNrZWRfc2ltZC9pc3N1ZXMvMTUKLS0gICAgICAgICAgICAgICAgICAgIGxl dCBtdXQgeCA9IHNlbGYuZXh0cmFjdCgwKSBhcyAkZWxlbV90eTsKLS0gICAgICAgICAgICAgICAg ICAgIGZvciBpIGluIDEuLiRpZDo6bGFuZXMoKSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAg eCA9IHgud3JhcHBpbmdfbXVsKHNlbGYuZXh0cmFjdChpKSBhcyAkZWxlbV90eSk7Ci0tICAgICAg ICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICB4Ci0tICAgICAgICAgICAgICAg IH0KLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tCi0tICAgICAgICBpbXBsIGNyYXRlOjpp dGVyOjpTdW0gZm9yICRpZCB7Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAg Zm4gc3VtPEk6IEl0ZXJhdG9yPEl0ZW0gPSAkaWQ+PihpdGVyOiBJKSAtPiAkaWQgewotLSAgICAg ICAgICAgICAgICBpdGVyLmZvbGQoJGlkOjpzcGxhdCgwKSwgY3JhdGU6Om9wczo6QWRkOjphZGQp Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLQotLSAgICAgICAgaW1wbCBjcmF0ZTo6aXRl cjo6UHJvZHVjdCBmb3IgJGlkIHsKLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAg ICBmbiBwcm9kdWN0PEk6IEl0ZXJhdG9yPEl0ZW0gPSAkaWQ+PihpdGVyOiBJKSAtPiAkaWQgewot LSAgICAgICAgICAgICAgICBpdGVyLmZvbGQoJGlkOjpzcGxhdCgxKSwgY3JhdGU6Om9wczo6TXVs OjptdWwpCi0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLQotLSAgICAgICAgaW1wbDwnYT4g Y3JhdGU6Oml0ZXI6OlN1bTwmJ2EgJGlkPiBmb3IgJGlkIHsKLS0gICAgICAgICAgICAjW2lubGlu ZV0KLS0gICAgICAgICAgICBmbiBzdW08STogSXRlcmF0b3I8SXRlbSA9ICYnYSAkaWQ+PihpdGVy OiBJKSAtPiAkaWQgewotLSAgICAgICAgICAgICAgICBpdGVyLmZvbGQoJGlkOjpzcGxhdCgwKSwg fGEsIGJ8IGNyYXRlOjpvcHM6OkFkZDo6YWRkKGEsICpiKSkKLS0gICAgICAgICAgICB9Ci0tICAg ICAgICB9Ci0tCi0tICAgICAgICBpbXBsPCdhPiBjcmF0ZTo6aXRlcjo6UHJvZHVjdDwmJ2EgJGlk PiBmb3IgJGlkIHsKLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBmbiBwcm9k dWN0PEk6IEl0ZXJhdG9yPEl0ZW0gPSAmJ2EgJGlkPj4oaXRlcjogSSkgLT4gJGlkIHsKLS0gICAg ICAgICAgICAgICAgaXRlci5mb2xkKCRpZDo6c3BsYXQoMSksIHxhLCBifCBjcmF0ZTo6b3BzOjpN dWw6Om11bChhLCAqYikpCi0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLQotLSAgICAgICAg dGVzdF9pZiEgewotLSAgICAgICAgICAgICR0ZXN0X3R0OgotLSAgICAgICAgICAgIHBhc3RlOjpp dGVtISB7Ci0tICAgICAgICAgICAgICAgIHB1YiBtb2QgWzwkaWQgX3JlZHVjdGlvbl9pbnRfYXJp dGg+XSB7Ci0tICAgICAgICAgICAgICAgICAgICB1c2Ugc3VwZXI6Oio7Ci0tCi0tICAgICAgICAg ICAgICAgICAgICBmbiBhbHRlcm5hdGluZyh4OiB1c2l6ZSkgLT4gJGlkIHsKLS0gICAgICAgICAg ICAgICAgICAgICAgICBsZXQgbXV0IHYgPSAkaWQ6OnNwbGF0KDEgYXMgJGVsZW1fdHkpOwotLSAg ICAgICAgICAgICAgICAgICAgICAgIGZvciBpIGluIDAuLiRpZDo6bGFuZXMoKSB7Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGlmIGkgJSB4ID09IDAgewotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgdiA9IHYucmVwbGFjZShpLCAyIGFzICRlbGVtX3R5KTsKLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAg ICAgICAgICAgICAgICAgICAgICB2Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0tCi0tICAgICAg ICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVz dCldCi0tICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20z MiIsIHdhc21fYmluZGdlbl90ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgIGZuIHdyYXBwaW5n X3N1bSgpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdiA9ICRpZDo6c3BsYXQoMCBh cyAkZWxlbV90eSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh2LndyYXBw aW5nX3N1bSgpLCAwIGFzICRlbGVtX3R5KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQg diA9ICRpZDo6c3BsYXQoMSBhcyAkZWxlbV90eSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAg YXNzZXJ0X2VxISh2LndyYXBwaW5nX3N1bSgpLCAkaWQ6OmxhbmVzKCkgYXMgJGVsZW1fdHkpOwot LSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2ID0gYWx0ZXJuYXRpbmcoMik7Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgaWYgJGlkOjpsYW5lcygpID4gMSB7Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGFzc2VydF9lcSEoCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB2LndyYXBwaW5nX3N1bSgpLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCRp ZDo6bGFuZXMoKSAvIDIgKyAkaWQ6OmxhbmVzKCkpIGFzICRlbGVtX3R5Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgICk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISgKLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHYud3JhcHBpbmdfc3VtKCksCi0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAyIGFzICRlbGVtX3R5Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgfQotLSAg ICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiks IHRlc3QpXQotLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3 YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCi0tICAgICAgICAgICAgICAgICAgICBmbiB3cmFw cGluZ19zdW1fb3ZlcmZsb3coKSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHN0YXJ0 ID0gJGVsZW1fdHk6Om1heF92YWx1ZSgpCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0g KCRpZDo6bGFuZXMoKSBhcyAkZWxlbV90eSAvIDIpOwotLQotLSAgICAgICAgICAgICAgICAgICAg ICAgIGxldCB2ID0gJGlkOjpzcGxhdChzdGFydCBhcyAkZWxlbV90eSk7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgbGV0IHZ3cmFwcGluZ19zdW0gPSB2LndyYXBwaW5nX3N1bSgpOwotLQotLSAg ICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgd3JhcHBpbmdfc3VtID0gc3RhcnQ7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgZm9yIF8gaW4gMS4uJGlkOjpsYW5lcygpIHsKLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgd3JhcHBpbmdfc3VtID0gd3JhcHBpbmdfc3VtLndyYXBwaW5n X2FkZChzdGFydCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAg ICAgICAgICAgIGFzc2VydF9lcSEod3JhcHBpbmdfc3VtLCB2d3JhcHBpbmdfc3VtLCAidiA9IHs6 P30iLCB2KTsKLS0gICAgICAgICAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAgICAgICAg ICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0KLS0gICAgICAg ICAgICAgICAgICAgICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5k Z2VuX3Rlc3QpXQotLSAgICAgICAgICAgICAgICAgICAgZm4gd3JhcHBpbmdfcHJvZHVjdCgpIHsK LS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdiA9ICRpZDo6c3BsYXQoMCBhcyAkZWxlbV90 eSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh2LndyYXBwaW5nX3Byb2R1 Y3QoKSwgMCBhcyAkZWxlbV90eSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHYgPSAk aWQ6OnNwbGF0KDEgYXMgJGVsZW1fdHkpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2Vy dF9lcSEodi53cmFwcGluZ19wcm9kdWN0KCksIDEgYXMgJGVsZW1fdHkpOwotLSAgICAgICAgICAg ICAgICAgICAgICAgIGxldCBmID0gbWF0Y2ggJGlkOjpsYW5lcygpIHsKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgNjQgPT4gMTYsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMy ID0+IDgsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE2ID0+IDQsCi0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgIF8gPT4gMiwKLS0gICAgICAgICAgICAgICAgICAgICAgICB9Owot LSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2ID0gYWx0ZXJuYXRpbmcoZik7Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgaWYgJGlkOjpsYW5lcygpID4gMSB7Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGFzc2VydF9lcSEoCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB2LndyYXBwaW5nX3Byb2R1Y3QoKSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICgyX3VzaXplLnBvdygoJGlkOjpsYW5lcygpIC8gZikgYXMgdTMyKQotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGFzICRlbGVtX3R5KQotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICApOwotLSAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB2LndyYXBwaW5nX3Byb2R1Y3QoKSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDIgYXMgJGVsZW1fdHkKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKLS0gICAg ICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0tCi0tICAgICAg ICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVz dCldCi0tICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20z MiIsIHdhc21fYmluZGdlbl90ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgIGZuIHdyYXBwaW5n X3Byb2R1Y3Rfb3ZlcmZsb3coKSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHN0YXJ0 ID0gJGVsZW1fdHk6Om1heF92YWx1ZSgpCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0g KCRpZDo6bGFuZXMoKSBhcyAkZWxlbV90eSAvIDIpOwotLQotLSAgICAgICAgICAgICAgICAgICAg ICAgIGxldCB2ID0gJGlkOjpzcGxhdChzdGFydCBhcyAkZWxlbV90eSk7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgbGV0IHZtdWwgPSB2LndyYXBwaW5nX3Byb2R1Y3QoKTsKLS0KLS0gICAgICAg ICAgICAgICAgICAgICAgICBsZXQgbXV0IG11bCA9IHN0YXJ0OwotLSAgICAgICAgICAgICAgICAg ICAgICAgIGZvciBfIGluIDEuLiRpZDo6bGFuZXMoKSB7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgIG11bCA9IG11bC53cmFwcGluZ19tdWwoc3RhcnQpOwotLSAgICAgICAgICAgICAgICAg ICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG11bCwgdm11bCwg InYgPSB7Oj99Iiwgdik7Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAg IH0KLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgIH07Ci0tfQotZGlmZiAtTnJidSBh L3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9yZWR1Y3Rpb25zL21hc2sucnMg Yi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvcmVkdWN0aW9ucy9tYXNrLnJz Ci0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvcmVkdWN0aW9ucy9t YXNrLnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9w YXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvcmVkdWN0aW9ucy9tYXNrLnJzCTE5NzAtMDEt MDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSw4OSArMCwwIEBACi0tLy8hIEltcGxl bWVudHMgcG9ydGFibGUgaG9yaXpvbnRhbCBtYXNrIHJlZHVjdGlvbnMuCi0tCi0tbWFjcm9fcnVs ZXMhIGltcGxfcmVkdWN0aW9uX21hc2sgewotLSAgICAoWyRlbGVtX3R5OmlkZW50OyAkZWxlbV9j b3VudDpleHByXTogJGlkOmlkZW50IHwgJHRlc3RfdHQ6dHQpID0+IHsKLS0gICAgICAgIGltcGwg JGlkIHsKLS0gICAgICAgICAgICAvLy8gQXJlIGBhbGxgIHZlY3RvciBsYW5lcyBgdHJ1ZWA/Ci0t ICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgcHViIGZuIGFsbChzZWxmKSAtPiBi b29sIHsKLS0gICAgICAgICAgICAgICAgdW5zYWZlIHsgY3JhdGU6OmNvZGVnZW46OnJlZHVjdGlv bnM6Om1hc2s6OkFsbDo6YWxsKHNlbGYpIH0KLS0gICAgICAgICAgICB9Ci0tICAgICAgICAgICAg Ly8vIElzIGBhbnlgIHZlY3RvciBsYW5lIGB0cnVlYD8KLS0gICAgICAgICAgICAjW2lubGluZV0K LS0gICAgICAgICAgICBwdWIgZm4gYW55KHNlbGYpIC0+IGJvb2wgewotLSAgICAgICAgICAgICAg ICB1bnNhZmUgeyBjcmF0ZTo6Y29kZWdlbjo6cmVkdWN0aW9uczo6bWFzazo6QW55Ojphbnkoc2Vs ZikgfQotLSAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAvLy8gQXJlIGBhbGxgIHZlY3RvciBs YW5lcyBgZmFsc2VgPwotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIHB1YiBm biBub25lKHNlbGYpIC0+IGJvb2wgewotLSAgICAgICAgICAgICAgICAhc2VsZi5hbnkoKQotLSAg ICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0KLS0gICAgICAgIHRlc3RfaWYhIHsKLS0gICAgICAg ICAgICAkdGVzdF90dDoKLS0gICAgICAgICAgICBwYXN0ZTo6aXRlbSEgewotLSAgICAgICAgICAg ICAgICBwdWIgbW9kIFs8JGlkIF9yZWR1Y3Rpb24+XSB7Ci0tICAgICAgICAgICAgICAgICAgICB1 c2Ugc3VwZXI6Oio7Ci0tICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRf YXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldCi0tICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRy KHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KLS0gICAgICAgICAg ICAgICAgICAgIGZuIGFsbCgpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgYSA9ICRp ZDo6c3BsYXQodHJ1ZSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IShhLmFsbCgp KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgYSA9ICRpZDo6c3BsYXQoZmFsc2UpOwot LSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCEoIWEuYWxsKCkpOwotLQotLSAgICAgICAg ICAgICAgICAgICAgICAgIGlmICRpZDo6bGFuZXMoKSA+IDEgewotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICBmb3IgaSBpbiAwLi4kaWQ6OmxhbmVzKCkgewotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgbGV0IG11dCBhID0gJGlkOjpzcGxhdCh0cnVlKTsKLS0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGEgPSBhLnJlcGxhY2UoaSwgZmFsc2UpOwotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0ISghYS5hbGwoKSk7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IGEgPSAkaWQ6OnNwbGF0KGZhbHNlKTsKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGEgPSBhLnJlcGxhY2UoaSwgdHJ1ZSk7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKCFhLmFsbCgpKTsKLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAg ICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRh cmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgICNbY2Zn X2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQotLSAgICAg ICAgICAgICAgICAgICAgZm4gYW55KCkgewotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBh ID0gJGlkOjpzcGxhdCh0cnVlKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKGEu YW55KCkpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBhID0gJGlkOjpzcGxhdChmYWxz ZSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0ISghYS5hbnkoKSk7Ci0tCi0tICAg ICAgICAgICAgICAgICAgICAgICAgaWYgJGlkOjpsYW5lcygpID4gMSB7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGZvciBpIGluIDAuLiRpZDo6bGFuZXMoKSB7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IGEgPSAkaWQ6OnNwbGF0KHRydWUpOwotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgYSA9IGEucmVwbGFjZShpLCBmYWxzZSk7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKGEuYW55KCkpOwotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBhID0gJGlkOjpzcGxhdChmYWxzZSk7Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhID0gYS5yZXBsYWNlKGksIHRydWUpOwot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IShhLmFueSgpKTsKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0g ICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90 KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgICNb Y2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQotLSAg ICAgICAgICAgICAgICAgICAgZm4gbm9uZSgpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICBs ZXQgYSA9ICRpZDo6c3BsYXQodHJ1ZSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0 ISghYS5ub25lKCkpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBhID0gJGlkOjpzcGxh dChmYWxzZSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IShhLm5vbmUoKSk7Ci0t Ci0tICAgICAgICAgICAgICAgICAgICAgICAgaWYgJGlkOjpsYW5lcygpID4gMSB7Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGZvciBpIGluIDAuLiRpZDo6bGFuZXMoKSB7Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IGEgPSAkaWQ6OnNwbGF0KHRydWUpOwot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYSA9IGEucmVwbGFjZShpLCBmYWxzZSk7 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKCFhLm5vbmUoKSk7Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IGEgPSAkaWQ6OnNwbGF0KGZh bHNlKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGEgPSBhLnJlcGxhY2UoaSwg dHJ1ZSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKCFhLm5vbmUo KSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAg ICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgIH0KLS0gICAg ICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgIH07Ci0tfQotZGlmZiAtTnJidSBhL3RoaXJkX3Bh cnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9yZWR1Y3Rpb25zL21pbl9tYXgucnMgYi90aGly ZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvcmVkdWN0aW9ucy9taW5fbWF4LnJzCi0t LS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvcmVkdWN0aW9ucy9taW5f bWF4LnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9w YXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvcmVkdWN0aW9ucy9taW5fbWF4LnJzCTE5NzAt MDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSwzNjAgKzAsMCBAQAotLS8vISBJ bXBsZW1lbnRzIHBvcnRhYmxlIGhvcml6b250YWwgdmVjdG9yIG1pbi9tYXggcmVkdWN0aW9ucy4K LS0KLS1tYWNyb19ydWxlcyEgaW1wbF9yZWR1Y3Rpb25fbWluX21heCB7Ci0tICAgIChbJGVsZW1f dHk6aWRlbnQ7ICRlbGVtX2NvdW50OmV4cHJdOiAkaWQ6aWRlbnQKLS0gICAgIHwgJGllbGVtX3R5 OmlkZW50IHwgJHRlc3RfdHQ6dHQpID0+IHsKLS0gICAgICAgIGltcGwgJGlkIHsKLS0gICAgICAg ICAgICAvLy8gTGFyZ2VzdCB2ZWN0b3IgZWxlbWVudCB2YWx1ZS4KLS0gICAgICAgICAgICAjW2lu bGluZV0KLS0gICAgICAgICAgICBwdWIgZm4gbWF4X2VsZW1lbnQoc2VsZikgLT4gJGVsZW1fdHkg ewotLSAgICAgICAgICAgICAgICAjW2NmZyhub3QoYW55KAotLSAgICAgICAgICAgICAgICAgICAg dGFyZ2V0X2FyY2ggPSAiYWFyY2g2NCIsCi0tICAgICAgICAgICAgICAgICAgICB0YXJnZXRfYXJj aCA9ICJhcm0iLAotLSAgICAgICAgICAgICAgICAgICAgdGFyZ2V0X2FyY2ggPSAicG93ZXJwYzY0 IiwKLS0gICAgICAgICAgICAgICAgICAgIHRhcmdldF9hcmNoID0gIndhc20zMiIsCi0tICAgICAg ICAgICAgICAgICkpKV0KLS0gICAgICAgICAgICAgICAgewotLSAgICAgICAgICAgICAgICAgICAg dXNlIGNyYXRlOjpsbHZtOjpzaW1kX3JlZHVjZV9tYXg7Ci0tICAgICAgICAgICAgICAgICAgICBs ZXQgdjogJGllbGVtX3R5ID0gdW5zYWZlIHsgc2ltZF9yZWR1Y2VfbWF4KHNlbGYuMCkgfTsKLS0g ICAgICAgICAgICAgICAgICAgIHYgYXMgJGVsZW1fdHkKLS0gICAgICAgICAgICAgICAgfQotLSAg ICAgICAgICAgICAgICAjW2NmZyhhbnkoCi0tICAgICAgICAgICAgICAgICAgICB0YXJnZXRfYXJj aCA9ICJhYXJjaDY0IiwKLS0gICAgICAgICAgICAgICAgICAgIHRhcmdldF9hcmNoID0gImFybSIs Ci0tICAgICAgICAgICAgICAgICAgICB0YXJnZXRfYXJjaCA9ICJwb3dlcnBjNjQiLAotLSAgICAg ICAgICAgICAgICAgICAgdGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwKLS0gICAgICAgICAgICAgICAg KSldCi0tICAgICAgICAgICAgICAgIHsKLS0gICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBi cm9rZW4gb24gQUFyY2g2NAotLSAgICAgICAgICAgICAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIu Y29tL3J1c3QtbGFuZy1udXJzZXJ5L3BhY2tlZF9zaW1kL2lzc3Vlcy8xNQotLSAgICAgICAgICAg ICAgICAgICAgLy8gRklYTUU6IGJyb2tlbiBvbiBXQVNNMzIKLS0gICAgICAgICAgICAgICAgICAg IC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmctbnVyc2VyeS9wYWNrZWRfc2ltZC9pc3N1 ZXMvOTEKLS0gICAgICAgICAgICAgICAgICAgIGxldCBtdXQgeCA9IHNlbGYuZXh0cmFjdCgwKTsK LS0gICAgICAgICAgICAgICAgICAgIGZvciBpIGluIDEuLiRpZDo6bGFuZXMoKSB7Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgeCA9IHgubWF4KHNlbGYuZXh0cmFjdChpKSk7Ci0tICAgICAgICAg ICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICB4Ci0tICAgICAgICAgICAgICAgIH0K LS0gICAgICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgLy8vIFNtYWxsZXN0IHZlY3RvciBlbGVt ZW50IHZhbHVlLgotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIHB1YiBmbiBt aW5fZWxlbWVudChzZWxmKSAtPiAkZWxlbV90eSB7Ci0tICAgICAgICAgICAgICAgICNbY2ZnKG5v dChhbnkoCi0tICAgICAgICAgICAgICAgICAgICB0YXJnZXRfYXJjaCA9ICJhYXJjaDY0IiwKLS0g ICAgICAgICAgICAgICAgICAgIHRhcmdldF9hcmNoID0gImFybSIsCi0tICAgICAgICAgICAgICAg ICAgICBhbGwodGFyZ2V0X2FyY2ggPSAieDg2Iiwgbm90KHRhcmdldF9mZWF0dXJlID0gInNzZTIi KSksCi0tICAgICAgICAgICAgICAgICAgICB0YXJnZXRfYXJjaCA9ICJwb3dlcnBjNjQiLAotLSAg ICAgICAgICAgICAgICAgICAgdGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwKLS0gICAgICAgICAgICAg ICAgKSwpKV0KLS0gICAgICAgICAgICAgICAgewotLSAgICAgICAgICAgICAgICAgICAgdXNlIGNy YXRlOjpsbHZtOjpzaW1kX3JlZHVjZV9taW47Ci0tICAgICAgICAgICAgICAgICAgICBsZXQgdjog JGllbGVtX3R5ID0gdW5zYWZlIHsgc2ltZF9yZWR1Y2VfbWluKHNlbGYuMCkgfTsKLS0gICAgICAg ICAgICAgICAgICAgIHYgYXMgJGVsZW1fdHkKLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAg ICAgICAgICAjW2NmZyhhbnkoCi0tICAgICAgICAgICAgICAgICAgICB0YXJnZXRfYXJjaCA9ICJh YXJjaDY0IiwKLS0gICAgICAgICAgICAgICAgICAgIHRhcmdldF9hcmNoID0gImFybSIsCi0tICAg ICAgICAgICAgICAgICAgICBhbGwodGFyZ2V0X2FyY2ggPSAieDg2Iiwgbm90KHRhcmdldF9mZWF0 dXJlID0gInNzZTIiKSksCi0tICAgICAgICAgICAgICAgICAgICB0YXJnZXRfYXJjaCA9ICJwb3dl cnBjNjQiLAotLSAgICAgICAgICAgICAgICAgICAgdGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwKLS0g ICAgICAgICAgICAgICAgKSldCi0tICAgICAgICAgICAgICAgIHsKLS0gICAgICAgICAgICAgICAg ICAgIC8vIEZJWE1FOiBicm9rZW4gb24gQUFyY2g2NAotLSAgICAgICAgICAgICAgICAgICAgLy8g aHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy1udXJzZXJ5L3BhY2tlZF9zaW1kL2lzc3Vlcy8x NQotLSAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IGJyb2tlbiBvbiBpNTg2LXVua25vd24t bGludXgtZ251Ci0tICAgICAgICAgICAgICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vcnVz dC1sYW5nLW51cnNlcnkvcGFja2VkX3NpbWQvaXNzdWVzLzIyCi0tICAgICAgICAgICAgICAgICAg ICAvLyBGSVhNRTogYnJva2VuIG9uIFdBU00zMgotLSAgICAgICAgICAgICAgICAgICAgLy8gaHR0 cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy1udXJzZXJ5L3BhY2tlZF9zaW1kL2lzc3Vlcy85MQot LSAgICAgICAgICAgICAgICAgICAgbGV0IG11dCB4ID0gc2VsZi5leHRyYWN0KDApOwotLSAgICAg ICAgICAgICAgICAgICAgZm9yIGkgaW4gMS4uJGlkOjpsYW5lcygpIHsKLS0gICAgICAgICAgICAg ICAgICAgICAgICB4ID0geC5taW4oc2VsZi5leHRyYWN0KGkpKTsKLS0gICAgICAgICAgICAgICAg ICAgIH0KLS0gICAgICAgICAgICAgICAgICAgIHgKLS0gICAgICAgICAgICAgICAgfQotLSAgICAg ICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgICAgIHRlc3RfaWYhIHskdGVzdF90dDoKLS0gICAg ICAgIHBhc3RlOjppdGVtISB7Ci0tICAgICAgICAgICAgLy8gQ29tcGFyaXNvbnMgdXNlIGludGVn ZXIgY2FzdHMgd2l0aGluIG1hbnRpc3NhXjEgcmFuZ2UuCi0tICAgICAgICAgICAgI1thbGxvdyhj bGlwcHk6OmZsb2F0X2NtcCldCi0tICAgICAgICAgICAgcHViIG1vZCBbPCRpZCBfcmVkdWN0aW9u X21pbl9tYXg+XSB7Ci0tICAgICAgICAgICAgICAgIHVzZSBzdXBlcjo6KjsKLS0gICAgICAgICAg ICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXQotLSAg ICAgICAgICAgICAgICAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmlu ZGdlbl90ZXN0KV0KLS0gICAgICAgICAgICAgICAgcHViIGZuIG1heF9lbGVtZW50KCkgewotLSAg ICAgICAgICAgICAgICAgICAgbGV0IHYgPSAkaWQ6OnNwbGF0KDAgYXMgJGVsZW1fdHkpOwotLSAg ICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh2Lm1heF9lbGVtZW50KCksIDAgYXMgJGVsZW1f dHkpOwotLSAgICAgICAgICAgICAgICAgICAgaWYgJGlkOjpsYW5lcygpID4gMSB7Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgbGV0IHYgPSB2LnJlcGxhY2UoMSwgMSBhcyAkZWxlbV90eSk7Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh2Lm1heF9lbGVtZW50KCksIDEgYXMg JGVsZW1fdHkpOwotLSAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAg bGV0IHYgPSB2LnJlcGxhY2UoMCwgMiBhcyAkZWxlbV90eSk7Ci0tICAgICAgICAgICAgICAgICAg ICBhc3NlcnRfZXEhKHYubWF4X2VsZW1lbnQoKSwgMiBhcyAkZWxlbV90eSk7Ci0tICAgICAgICAg ICAgICAgIH0KLS0KLS0gICAgICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2gg PSAid2FzbTMyIiksIHRlc3QpXQotLSAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKHRhcmdldF9h cmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KLS0gICAgICAgICAgICAgICAgcHVi IGZuIG1pbl9lbGVtZW50KCkgewotLSAgICAgICAgICAgICAgICAgICAgbGV0IHYgPSAkaWQ6OnNw bGF0KDAgYXMgJGVsZW1fdHkpOwotLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh2Lm1p bl9lbGVtZW50KCksIDAgYXMgJGVsZW1fdHkpOwotLSAgICAgICAgICAgICAgICAgICAgaWYgJGlk OjpsYW5lcygpID4gMSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHYgPSB2LnJlcGxh Y2UoMSwgMSBhcyAkZWxlbV90eSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2Vx ISh2Lm1pbl9lbGVtZW50KCksIDAgYXMgJGVsZW1fdHkpOwotLSAgICAgICAgICAgICAgICAgICAg fQotLSAgICAgICAgICAgICAgICAgICAgbGV0IHYgPSAkaWQ6OnNwbGF0KDEgYXMgJGVsZW1fdHkp OwotLSAgICAgICAgICAgICAgICAgICAgbGV0IHYgPSB2LnJlcGxhY2UoMCwgMiBhcyAkZWxlbV90 eSk7Ci0tICAgICAgICAgICAgICAgICAgICBpZiAkaWQ6OmxhbmVzKCkgPiAxIHsKLS0gICAgICAg ICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHYubWluX2VsZW1lbnQoKSwgMSBhcyAkZWxlbV90 eSk7Ci0tICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotLSAgICAgICAgICAgICAgICAgICAg ICAgIGFzc2VydF9lcSEodi5taW5fZWxlbWVudCgpLCAyIGFzICRlbGVtX3R5KTsKLS0gICAgICAg ICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgIGlmICRpZDo6bGFuZXMoKSA+IDEg ewotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2ID0gJGlkOjpzcGxhdCgyIGFzICRlbGVt X3R5KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdiA9IHYucmVwbGFjZSgxLCAxIGFz ICRlbGVtX3R5KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHYubWluX2Vs ZW1lbnQoKSwgMSBhcyAkZWxlbV90eSk7Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAg ICAgICAgICAgIH0KLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAg IH07Ci0tfQotLQotLW1hY3JvX3J1bGVzISB0ZXN0X3JlZHVjdGlvbl9mbG9hdF9taW5fbWF4IHsK LS0gICAgKFskZWxlbV90eTppZGVudDsgJGVsZW1fY291bnQ6ZXhwcl06ICRpZDppZGVudCB8ICR0 ZXN0X3R0OnR0KSA9PiB7Ci0tICAgICAgICB0ZXN0X2lmISB7Ci0tICAgICAgICAgICAgJHRlc3Rf dHQ6Ci0tICAgICAgICAgICAgcGFzdGU6Oml0ZW0hIHsKLS0gICAgICAgICAgICAgICAgLy8gQ29t cGFyaXNvbnMgdXNlIGludGVnZXIgY2FzdHMgd2l0aGluIG1hbnRpc3NhXjEgcmFuZ2UuCi0tICAg ICAgICAgICAgICAgICNbYWxsb3coY2xpcHB5OjpmbG9hdF9jbXApXQotLSAgICAgICAgICAgICAg ICBwdWIgbW9kIFs8JGlkIF9yZWR1Y3Rpb25fbWluX21heF9uYW4+XSB7Ci0tICAgICAgICAgICAg ICAgICAgICB1c2Ugc3VwZXI6Oio7Ci0tICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5v dCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldCi0tICAgICAgICAgICAgICAgICAgICAj W2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KLS0g ICAgICAgICAgICAgICAgICAgIGZuIG1pbl9lbGVtZW50X3Rlc3QoKSB7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgbGV0IG4gPSBjcmF0ZTo6JGVsZW1fdHk6Ok5BTjsKLS0KLS0gICAgICAgICAg ICAgICAgICAgICAgICBhc3NlcnRfZXEhKG4ubWluKC0zLiksIC0zLik7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgYXNzZXJ0X2VxISgoLTMuIGFzICRlbGVtX3R5KS5taW4obiksIC0zLik7Ci0t Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHYwID0gJGlkOjpzcGxhdCgtMy4pOwotLQot LSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0YXJnZXRfd2l0aF9icm9rZW5fbGFzdF9sYW5l X25hbiA9ICFjZmchKGFueSgKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0X2Fy Y2ggPSAiYXJtIiwgdGFyZ2V0X2FyY2ggPSAiYWFyY2g2NCIsCi0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGFsbCh0YXJnZXRfYXJjaCA9ICJ4ODYiLAotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgbm90KHRhcmdldF9mZWF0dXJlID0gInNzZTIiKQotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICApLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRfYXJj aCA9ICJwb3dlcnBjNjQiLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRfYXJj aCA9ICJ3YXNtMzIiLAotLSAgICAgICAgICAgICAgICAgICAgICAgICkpOwotLQotLSAgICAgICAg ICAgICAgICAgICAgICAgIC8vIFRoZSB2ZWN0b3IgaXMgaW5pdGlhbGl6ZWQgdG8gYC0zLmBzOiBb LTMsIC0zLCAtMywgLTNdCi0tICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGkgaW4gMC4uJGlk OjpsYW5lcygpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gV2UgcmVwbGFjZSB0 aGUgaS10aCBlbGVtZW50IG9mIHRoZSB2ZWN0b3Igd2l0aAotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAvLyBgTmFOYDogWy0zLCAtMywgLTMsIE5hTl0KLS0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgbGV0IG11dCB2ID0gdjAucmVwbGFjZShpLCBuKTsKLS0KLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgLy8gSWYgdGhlIE5hTiBpcyBpbiB0aGUgbGFzdCBwbGFjZSwgdGhlIExM Vk0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gaW1wbGVtZW50YXRpb24gb2YgdGhl c2UgbWV0aG9kcyBpcyBicm9rZW4gb24gc29tZQotLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAvLyB0YXJnZXRzOgotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBpID09ICRpZDo6 bGFuZXMoKSAtIDEgJiYKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldF93 aXRoX2Jyb2tlbl9sYXN0X2xhbmVfbmFuIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBhc3NlcnRfZXEhKHYubWluX2VsZW1lbnQoKSwgLTMuLAotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIltBXTogbmFuIGF0IHt9ID0+IHt9IHwgezo/ fSIsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpLCB2Lm1p bl9lbGVtZW50KCksIHYpOwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8g SWYgd2UgcmVwbGFjZSBhbGwgdGhlIGVsZW1lbnRzIGluIHRoZSB2ZWN0b3IKLS0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIC8vIHVwLXRvIHRoZSBgaS10aGAgbGFuZSB3aXRoIGBOYU5g cywgdGhlIHJlc3VsdAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gaXMgc3Rp bGwgYWx3YXlzIGAtMy5gIHVubGVzcyBhbGwgZWxlbWVudHMgb2YKLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIC8vIHRoZSB2ZWN0b3IgYXJlIGBOYU5gczoKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGZvciBqIGluIDAuLmkgewotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHYgPSB2LnJlcGxhY2Uoaiwgbik7Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgaWYgaiA9PSBpLTEgewotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBhc3NlcnQhKHYubWluX2VsZW1lbnQoKS5pc19uYW4oKSwKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJbQl06IG5hbiBhdCB7fSA9 PiB7fSB8IHs6P30iLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgaSwgdi5taW5fZWxlbWVudCgpLCB2KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9IGVsc2UgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBhc3NlcnRfZXEhKHYubWluX2VsZW1lbnQoKSwgLTMuLAotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIltCXTogbmFuIGF0IHt9ID0+IHt9IHwgezo/fSIsCi0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpLCB2Lm1pbl9lbGVt ZW50KCksIHYpOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC8vIFdlIGFyZSBkb25lIGhlcmUsIHNpbmNlIHdlIHdlcmUgaW4gdGhlIGxhc3QK LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGxhbmUgd2hpY2ggaXMgdGhlIGxh c3QgaXRlcmF0aW9uIG9mIHRoZSBsb29wLgotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgYnJlYWsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotLQotLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAvLyBXZSBhcmUgbm90IGluIHRoZSBsYXN0IGxhbmUsIGFuZCB0aGVy ZSBpcyBvbmx5Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG9uZSBgTmFOYCBpbiB0 aGUgdmVjdG9yLgotLQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBJZiB0aGUgdmVj dG9yIGhhcyBvbmUgbGFuZSwgdGhlIHJlc3VsdCBpcyBgTmFOYDoKLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgaWYgJGlkOjpsYW5lcygpID09IDEgewotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgYXNzZXJ0ISh2Lm1pbl9lbGVtZW50KCkuaXNfbmFuKCksCi0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJbQ106IGFsbCBuYW5zIHwgdj17Oj99IHwg bWluPXt9IHwgXAotLWlzX25hbjoge30iLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB2LCB2Lm1pbl9lbGVtZW50KCksCi0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHYubWluX2VsZW1lbnQoKS5pc19uYW4oKQotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IC8vIEFuZCB3ZSBhcmUgZG9uZSwgc2luY2UgdGhlIHZlY3RvciBvbmx5IGhhcwotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgLy8gb25lIGxhbmUgYW55d2F5cy4KLS0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICB9Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoZSB2ZWN0b3IgaGFzIG1v cmUgdGhhbiBvbmUgbGFuZSwgc2luY2UgdGhlcmUgaXMKLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgLy8gb25seSBvbmUgYE5hTmAgaW4gdGhlIHZlY3RvciwgdGhlIHJlc3VsdCBpcwotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBhbHdheXMgYC0zYC4KLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh2Lm1pbl9lbGVtZW50KCksIC0zLiwKLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiW0RdOiBuYW4gYXQge30gPT4ge30gfCB7 Oj99IiwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpLCB2Lm1pbl9l bGVtZW50KCksIHYpOwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBJZiB3ZSBy ZXBsYWNlIGFsbCB0aGUgZWxlbWVudHMgaW4gdGhlIHZlY3RvcgotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAvLyB1cC10byB0aGUgYGktdGhgIGxhbmUgd2l0aCBgTmFOYHMsIHRoZSByZXN1 bHQgaXMKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gc3RpbGwgYWx3YXlzIGAtMy5g IHVubGVzcyBhbGwgZWxlbWVudHMgb2YgdGhlCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAg IC8vIHZlY3RvciBhcmUgYE5hTmBzOgotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3Ig aiBpbiAwLi5pIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYgPSB2LnJlcGxh Y2Uoaiwgbik7Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBpID09ICRp ZDo6bGFuZXMoKSAtIDEgJiYgaiA9PSBpIC0gMSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgLy8gQWxsIGVsZW1lbnRzIG9mIHRoZSB2ZWN0b3IgYXJlIGBOYU5gcywKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGVyZWZvcmUgdGhlIHJlc3Vs dCBpcyBOYU4gYXMgd2VsbC4KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAv LwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIE5vdGU6IHRoZSAjbGFu ZXMgb2YgdGhlIHZlY3RvciBpcyA+IDEsIHNvCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgLy8gImkgLSAxIiBkb2VzIG5vdCBvdmVyZmxvdy4KLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKHYubWluX2VsZW1lbnQoKS5pc19uYW4oKSwKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJbRV06IGFsbCBuYW5z IHwgdj17Oj99IHwgbWluPXt9IHwgXAotLWlzX25hbjoge30iLAotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgdiwgdi5taW5fZWxlbWVudCgpLAotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdi5taW5fZWxlbWVudCgpLmlzX25h bigpKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhlcmUgYXJlIG5vbi1gTmFOYCBlbGVt ZW50cyBpbiB0aGUKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB2ZWN0 b3IsIHRoZXJlZm9yZSB0aGUgcmVzdWx0IGlzIGAtMy5gOgotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodi5taW5fZWxlbWVudCgpLCAtMy4sCi0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiW0ZdOiBuYW4gYXQge30g PT4ge30gfCB7Oj99IiwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGksIHYubWluX2VsZW1lbnQoKSwgdik7Ci0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAg ICAgICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWYgdGhlIHZlY3Rv ciBjb250YWlucyBhbGwgTmFOcyB0aGUgcmVzdWx0IGlzIE5hTjoKLS0gICAgICAgICAgICAgICAg ICAgICAgICBhc3NlcnQhKCRpZDo6c3BsYXQobikubWluX2VsZW1lbnQoKS5pc19uYW4oKSwKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhbGwgbmFucyB8IHY9ezo/fSB8IG1pbj17 fSB8IGlzX25hbjoge30iLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGlkOjpz cGxhdChuKSwgJGlkOjpzcGxhdChuKS5taW5fZWxlbWVudCgpLAotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgJGlkOjpzcGxhdChuKS5taW5fZWxlbWVudCgpLmlzX25hbigpKTsKLS0g ICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90 KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgICNb Y2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQotLSAg ICAgICAgICAgICAgICAgICAgZm4gbWF4X2VsZW1lbnRfdGVzdCgpIHsKLS0gICAgICAgICAgICAg ICAgICAgICAgICBsZXQgbiA9IGNyYXRlOjokZWxlbV90eTo6TkFOOwotLQotLSAgICAgICAgICAg ICAgICAgICAgICAgIGFzc2VydF9lcSEobi5tYXgoLTMuKSwgLTMuKTsKLS0gICAgICAgICAgICAg ICAgICAgICAgICBhc3NlcnRfZXEhKCgtMy4gYXMgJGVsZW1fdHkpLm1heChuKSwgLTMuKTsKLS0K LS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdjAgPSAkaWQ6OnNwbGF0KC0zLik7Ci0tCi0t ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRhcmdldF93aXRoX2Jyb2tlbl9sYXN0X2xhbmVf bmFuID0gIWNmZyEoYW55KAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRfYXJj aCA9ICJhcm0iLCB0YXJnZXRfYXJjaCA9ICJhYXJjaDY0IiwKLS0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgdGFyZ2V0X2FyY2ggPSAicG93ZXJwYzY0IiwgdGFyZ2V0X2FyY2ggPSAid2FzbTMy IiwKLS0gICAgICAgICAgICAgICAgICAgICAgICApKTsKLS0KLS0gICAgICAgICAgICAgICAgICAg ICAgICAvLyBUaGUgdmVjdG9yIGlzIGluaXRpYWxpemVkIHRvIGAtMy5gczogWy0zLCAtMywgLTMs IC0zXQotLSAgICAgICAgICAgICAgICAgICAgICAgIGZvciBpIGluIDAuLiRpZDo6bGFuZXMoKSB7 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFdlIHJlcGxhY2UgdGhlIGktdGggZWxl bWVudCBvZiB0aGUgdmVjdG9yIHdpdGgKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8g YE5hTmA6IFstMywgLTMsIC0zLCBOYU5dCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxl dCBtdXQgdiA9IHYwLnJlcGxhY2UoaSwgbik7Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgIC8vIElmIHRoZSBOYU4gaXMgaW4gdGhlIGxhc3QgcGxhY2UsIHRoZSBMTFZNCi0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgIC8vIGltcGxlbWVudGF0aW9uIG9mIHRoZXNlIG1ldGhvZHMg aXMgYnJva2VuIG9uIHNvbWUKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGFyZ2V0 czoKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgaSA9PSAkaWQ6OmxhbmVzKCkgLSAx ICYmCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0X3dpdGhfYnJva2VuX2xh c3RfbGFuZV9uYW4gewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2Vx ISh2Lm1heF9lbGVtZW50KCksIC0zLiwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIltBXTogbmFuIGF0IHt9ID0+IHt9IHwgezo/fSIsCi0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGksIHYubWF4X2VsZW1lbnQoKSwgdik7Ci0tCi0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBJZiB3ZSByZXBsYWNlIGFsbCB0aGUgZWxl bWVudHMgaW4gdGhlIHZlY3RvcgotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8g dXAtdG8gdGhlIGBpLXRoYCBsYW5lIHdpdGggYE5hTmBzLCB0aGUgcmVzdWx0Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAvLyBpcyBzdGlsbCBhbHdheXMgYC0zLmAgdW5sZXNzIGFs bCBlbGVtZW50cyBvZgotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhlIHZl Y3RvciBhcmUgYE5hTmBzOgotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGog aW4gMC4uaSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdiA9IHYucmVw bGFjZShqLCBuKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBqID09 IGktMSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCEo di5taW5fZWxlbWVudCgpLmlzX25hbigpLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAiW0JdOiBuYW4gYXQge30gPT4ge30gfCB7Oj99IiwKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgaSwgdi5taW5fZWxlbWVudCgpLCB2KTsKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHYubWF4X2VsZW1lbnQoKSwgLTMu LAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIltCXTogbmFu IGF0IHt9ID0+IHt9IHwgezo/fSIsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBpLCB2Lm1heF9lbGVtZW50KCksIHYpOwotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0K LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFdlIGFyZSBkb25lIGhlcmUsIHNp bmNlIHdlIHdlcmUgaW4gdGhlIGxhc3QKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IC8vIGxhbmUgd2hpY2ggaXMgdGhlIGxhc3QgaXRlcmF0aW9uIG9mIHRoZSBsb29wLgotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsKLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgfQotLQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBXZSBhcmUgbm90IGlu IHRoZSBsYXN0IGxhbmUsIGFuZCB0aGVyZSBpcyBvbmx5Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgIC8vIG9uZSBgTmFOYCBpbiB0aGUgdmVjdG9yLgotLQotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAvLyBJZiB0aGUgdmVjdG9yIGhhcyBvbmUgbGFuZSwgdGhlIHJlc3VsdCBpcyBg TmFOYDoKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgJGlkOjpsYW5lcygpID09IDEg ewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0ISh2Lm1heF9lbGVtZW50 KCkuaXNfbmFuKCksCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJb Q106IGFsbCBuYW5zIHwgdj17Oj99IHwgbWluPXt9IHwgXAotLWlzX25hbjoge30iLAotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2LCB2Lm1heF9lbGVtZW50KCksCi0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYubWF4X2VsZW1lbnQoKS5p c19uYW4oKSk7Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBBbmQgd2Ug YXJlIGRvbmUsIHNpbmNlIHRoZSB2ZWN0b3Igb25seSBoYXMKLS0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIC8vIG9uZSBsYW5lIGFueXdheXMuCi0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBicmVhazsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotLQotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGUgdmVjdG9yIGhhcyBtb3JlIHRoYW4gb25l IGxhbmUsIHNpbmNlIHRoZXJlIGlzCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG9u bHkgb25lIGBOYU5gIGluIHRoZSB2ZWN0b3IsIHRoZSByZXN1bHQgaXMKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgLy8gYWx3YXlzIGAtM2AuCi0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGFzc2VydF9lcSEodi5tYXhfZWxlbWVudCgpLCAtMy4sCi0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIltEXTogbmFuIGF0IHt9ID0+IHt9IHwgezo/fSIsCi0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaSwgdi5tYXhfZWxlbWVudCgpLCB2 KTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWYgd2UgcmVwbGFjZSBhbGwg dGhlIGVsZW1lbnRzIGluIHRoZSB2ZWN0b3IKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg Ly8gdXAtdG8gdGhlIGBpLXRoYCBsYW5lIHdpdGggYE5hTmBzLCB0aGUgcmVzdWx0IGlzCi0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHN0aWxsIGFsd2F5cyBgLTMuYCB1bmxlc3MgYWxs IGVsZW1lbnRzIG9mIHRoZQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB2ZWN0b3Ig YXJlIGBOYU5gczoKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGogaW4gMC4uaSB7 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ID0gdi5yZXBsYWNlKGosIG4pOwot LQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgaSA9PSAkaWQ6OmxhbmVzKCkg LSAxICYmIGogPT0gaSAtIDEgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IC8vIEFsbCBlbGVtZW50cyBvZiB0aGUgdmVjdG9yIGFyZSBgTmFOYHMsCi0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhlcmVmb3JlIHRoZSByZXN1bHQgaXMgTmFOIGFz IHdlbGwuCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8KLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBOb3RlOiB0aGUgI2xhbmVzIG9mIHRoZSB2 ZWN0b3IgaXMgPiAxLCBzbwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8v ICJpIC0gMSIgZG9lcyBub3Qgb3ZlcmZsb3cuCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgYXNzZXJ0ISh2Lm1heF9lbGVtZW50KCkuaXNfbmFuKCksCi0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiW0VdOiBhbGwgbmFucyB8IHY9ezo/fSB8 IG1heD17fSB8IFwKLS1pc19uYW46IHt9IiwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHYsIHYubWF4X2VsZW1lbnQoKSwKLS0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHYubWF4X2VsZW1lbnQoKS5pc19uYW4oKSk7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIC8vIFRoZXJlIGFyZSBub24tYE5hTmAgZWxlbWVudHMgaW4gdGhl Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdmVjdG9yLCB0aGVyZWZv cmUgdGhlIHJlc3VsdCBpcyBgLTMuYDoKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBhc3NlcnRfZXEhKHYubWF4X2VsZW1lbnQoKSwgLTMuLAotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIltGXTogbmFuIGF0IHt9ID0+IHt9IHwgezo/ fSIsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpLCB2 Lm1heF9lbGVtZW50KCksIHYpOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICAgICAg fQotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIElmIHRoZSB2ZWN0b3IgY29udGFpbnMg YWxsIE5hTnMgdGhlIHJlc3VsdCBpcyBOYU46Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNz ZXJ0ISgkaWQ6OnNwbGF0KG4pLm1heF9lbGVtZW50KCkuaXNfbmFuKCksCi0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAiYWxsIG5hbnMgfCB2PXs6P30gfCBtYXg9e30gfCBpc19uYW46 IHt9IiwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpZDo6c3BsYXQobiksICRp ZDo6c3BsYXQobikubWF4X2VsZW1lbnQoKSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICRpZDo6c3BsYXQobikubWF4X2VsZW1lbnQoKS5pc19uYW4oKSk7Ci0tICAgICAgICAgICAg ICAgICAgICB9Ci0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9 Ci0tICAgIH07Ci0tfQotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQv c3JjL2FwaS9yZWR1Y3Rpb25zLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMv YXBpL3JlZHVjdGlvbnMucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3Jj L2FwaS9yZWR1Y3Rpb25zLnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0r KysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvcmVkdWN0aW9ucy5ycwkx OTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsMTIgKzAsMCBAQAotLS8v ISBSZWR1Y3Rpb25zCi0tCi0tI1ttYWNyb191c2VdCi0tbW9kIGZsb2F0X2FyaXRobWV0aWM7Ci0t I1ttYWNyb191c2VdCi0tbW9kIGludGVnZXJfYXJpdGhtZXRpYzsKLS0jW21hY3JvX3VzZV0KLS1t b2QgYml0d2lzZTsKLS0jW21hY3JvX3VzZV0KLS1tb2QgbWFzazsKLS0jW21hY3JvX3VzZV0KLS1t b2QgbWluX21heDsKLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3Ny Yy9hcGkvc2VsZWN0LnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL3Nl bGVjdC5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL3NlbGVj dC5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFy dHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL3NlbGVjdC5ycwkxOTcwLTAxLTAxIDAzOjAwOjAw LjAwMDAwMDAwMCArMDMwMAotQEAgLTEsNzMgKzAsMCBAQAotLS8vISBJbXBsZW1lbnRzIG1hc2sn cyBgc2VsZWN0YC4KLS0KLS0vLy8gSW1wbGVtZW50cyBtYXNrIHNlbGVjdCBtZXRob2QKLS1tYWNy b19ydWxlcyEgaW1wbF9zZWxlY3QgewotLSAgICAoWyRlbGVtX3R5OmlkZW50OyAkZWxlbV9jb3Vu dDpleHByXTogJGlkOmlkZW50IHwgJHRlc3RfdHQ6dHQpID0+IHsKLS0gICAgICAgIGltcGwgJGlk IHsKLS0gICAgICAgICAgICAvLy8gU2VsZWN0cyBlbGVtZW50cyBvZiBgYWAgYW5kIGBiYCB1c2lu ZyBtYXNrLgotLSAgICAgICAgICAgIC8vLwotLSAgICAgICAgICAgIC8vLyBUaGUgbGFuZXMgb2Yg dGhlIHJlc3VsdCBmb3Igd2hpY2ggdGhlIG1hc2sgaXMgYHRydWVgIGNvbnRhaW4KLS0gICAgICAg ICAgICAvLy8gdGhlIHZhbHVlcyBvZiBgYWAuIFRoZSByZW1haW5pbmcgbGFuZXMgY29udGFpbiB0 aGUgdmFsdWVzIG9mCi0tICAgICAgICAgICAgLy8vIGBiYC4KLS0gICAgICAgICAgICAjW2lubGlu ZV0KLS0gICAgICAgICAgICBwdWIgZm4gc2VsZWN0PFQ+KHNlbGYsIGE6IFNpbWQ8VD4sIGI6IFNp bWQ8VD4pIC0+IFNpbWQ8VD4KLS0gICAgICAgICAgICB3aGVyZQotLSAgICAgICAgICAgICAgICBU OiBzZWFsZWQ6OlNpbWRBcnJheTxOVCA9IDxbJGVsZW1fdHk7ICRlbGVtX2NvdW50XSBhcyBzZWFs ZWQ6OlNpbWRBcnJheT46Ok5UPiwKLS0gICAgICAgICAgICB7Ci0tICAgICAgICAgICAgICAgIHVz ZSBjcmF0ZTo6bGx2bTo6c2ltZF9zZWxlY3Q7Ci0tICAgICAgICAgICAgICAgIFNpbWQodW5zYWZl IHsgc2ltZF9zZWxlY3Qoc2VsZi4wLCBhLjAsIGIuMCkgfSkKLS0gICAgICAgICAgICB9Ci0tICAg ICAgICB9Ci0tCi0tICAgICAgICB0ZXN0X3NlbGVjdCEoYm9vbCwgJGlkLCAkaWQsIChmYWxzZSwg dHJ1ZSkgfCAkdGVzdF90dCk7Ci0tICAgIH07Ci0tfQotLQotLW1hY3JvX3J1bGVzISB0ZXN0X3Nl bGVjdCB7Ci0tICAgICgKLS0gICAgICAgICRlbGVtX3R5OmlkZW50LAotLSAgICAgICAgJG1hc2tf dHk6aWRlbnQsCi0tICAgICAgICAkdmVjX3R5OmlkZW50LCgkc21hbGw6ZXhwciwgJGxhcmdlOmV4 cHIpIHwKLS0gICAgICAgICR0ZXN0X3R0OnR0Ci0tICAgICkgPT4gewotLSAgICAgICAgdGVzdF9p ZiEgewotLSAgICAgICAgICAgICR0ZXN0X3R0OgotLSAgICAgICAgICAgIHBhc3RlOjppdGVtISB7 Ci0tICAgICAgICAgICAgICAgIHB1YiBtb2QgWzwkdmVjX3R5IF9zZWxlY3Q+XSB7Ci0tICAgICAg ICAgICAgICAgICAgICB1c2Ugc3VwZXI6Oio7Ci0tCi0tICAgICAgICAgICAgICAgICAgICAjW2Nm Z19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldICNbY2ZnX2F0dHIodGFy Z2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQotLSAgICAgICAgICAgICAg ICAgICAgZm4gc2VsZWN0KCkgewotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBvID0gJHNt YWxsIGFzICRlbGVtX3R5OwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ID0gJGxhcmdl IGFzICRlbGVtX3R5OwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBhID0gJHZlY190 eTo6c3BsYXQobyk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGIgPSAkdmVjX3R5Ojpz cGxhdCh0KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbSA9IGEubHQoYik7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShtLnNlbGVjdChhLCBiKSwgYSk7Ci0tCi0t ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG0gPSBiLmx0KGEpOwotLSAgICAgICAgICAgICAg ICAgICAgICAgIGFzc2VydF9lcSEobS5zZWxlY3QoYiwgYSksIGEpOwotLQotLSAgICAgICAgICAg ICAgICAgICAgICAgIGxldCBtdXQgYyA9IGE7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0 IG11dCBkID0gYjsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IG1fZSA9ICRtYXNr X3R5OjpzcGxhdChmYWxzZSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGkgaW4gMC4u JHZlY190eTo6bGFuZXMoKSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGkgJSAy ID09IDAgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGNfdG1wID0gYy5l eHRyYWN0KGkpOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYyA9IGMucmVwbGFj ZShpLCBkLmV4dHJhY3QoaSkpOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZCA9 IGQucmVwbGFjZShpLCBjX3RtcCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxz ZSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2UgPSBtX2UucmVwbGFjZShp LCB0cnVlKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAg ICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbSA9IGMubHQoZCk7 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShtX2UsIG0pOwotLSAgICAgICAg ICAgICAgICAgICAgICAgIGFzc2VydF9lcSEobS5zZWxlY3QoYywgZCksIGEpOwotLSAgICAgICAg ICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgfQotLSAgICAg ICAgfQotLSAgICB9OwotLX0KLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9z aW1kL3NyYy9hcGkvc2h1ZmZsZS5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3Jj L2FwaS9zaHVmZmxlLnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9h cGkvc2h1ZmZsZS5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIv dGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL3NodWZmbGUucnMJMTk3MC0wMS0w MSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDE4NCArMCwwIEBACi0tLy8hIEltcGxl bWVudHMgcG9ydGFibGUgdmVjdG9yIHNodWZmbGVzIHdpdGggaW1tZWRpYXRlIGluZGljZXMuCi0t Ci0tLy8gRklYTUU6IGNvbXByZWhlbnNpdmUgdGVzdHMKLS0vLyBodHRwczovL2dpdGh1Yi5jb20v cnVzdC1sYW5nLW51cnNlcnkvcGFja2VkX3NpbWQvaXNzdWVzLzIwCi0tCi0tLy8vIFNodWZmbGVz IHZlY3RvciBlbGVtZW50cy4KLS0vLy8KLS0vLy8gVGhpcyBtYWNybyByZXR1cm5zIGEgbmV3IHZl Y3RvciB0aGF0IGNvbnRhaW5zIGEgc2h1ZmZsZSBvZiB0aGUgZWxlbWVudHMgaW4KLS0vLy8gb25l IChgc2h1ZmZsZSEodmVjLCBbaW5kaWNlcy4uLl0pYCkgb3IgdHdvIChgc2h1ZmZsZSEodmVjMCwg dmVjMSwKLS0vLy8gW2luZGljZXMuLi5dKWApIGlucHV0IHZlY3RvcnMuCi0tLy8vCi0tLy8vIFRo ZSB0eXBlIG9mIGB2ZWMwYCBhbmQgYHZlYzFgIG11c3QgYmUgZXF1YWwsIGFuZCB0aGUgZWxlbWVu dCB0eXBlIG9mIHRoZQotLS8vLyByZXN1bHRpbmcgdmVjdG9yIGlzIHRoZSBlbGVtZW50IHR5cGUg b2YgdGhlIGlucHV0IHZlY3Rvci4KLS0vLy8KLS0vLy8gVGhlIG51bWJlciBvZiBgaW5kaWNlc2Ag bXVzdCBiZSBhIHBvd2VyLW9mLXR3byBpbiByYW5nZSBgWzAsIDY0KWAsIHNpbmNlCi0tLy8vIGN1 cnJlbnRseSwgdGhlIGxhcmdlc3QgdmVjdG9yIHN1cHBvcnRlZCBieSB0aGUgbGlicmFyeSBoYXMg NjQgbGFuZXMuIFRoZQotLS8vLyBsZW5ndGggb2YgdGhlIHJlc3VsdGluZyB2ZWN0b3IgZXF1YWxz IHRoZSBudW1iZXIgb2YgaW5kaWNlcyBwcm92aWRlZC4KLS0vLy8KLS0vLy8gVGhlIGluZGljZXMg bXVzdCBiZSBpbiByYW5nZSBgWzAsIE0gKiBOKWAgd2hlcmUgYE1gIGlzIHRoZSBudW1iZXIgb2Yg aW5wdXQKLS0vLy8gdmVjdG9ycyAoYDFgIG9yIGAyYCkgYW5kIGBOYCBpcyB0aGUgbnVtYmVyIG9m IGxhbmVzIG9mIHRoZSBpbnB1dCB2ZWN0b3JzLgotLS8vLyBUaGUgaW5kaWNlcyBgaWAgaW4gcmFu Z2UgYFswLCBOKWAgcmVmZXIgdG8gdGhlIGBpYC10aCBlbGVtZW50IG9mIGB2ZWMwYCwKLS0vLy8g d2hpbGUgdGhlIGluZGljZXMgaW4gcmFuZ2UgYFtOLCAyKk4pYCByZWZlciB0byB0aGUgYGkgLSBO YC10aCBlbGVtZW50IG9mCi0tLy8vIGB2ZWMxYC4KLS0vLy8KLS0vLy8gIyBFeGFtcGxlcwotLS8v LwotLS8vLyBTaHVmZmxpbmcgZWxlbWVudHMgb2YgdHdvIHZlY3RvcnM6Ci0tLy8vCi0tLy8vIGBg YAotLS8vLyAjIHVzZSBwYWNrZWRfc2ltZDo6KjsKLS0vLy8gIyBmbiBtYWluKCkgewotLS8vLyAv LyBTaHVmZmxlIGFsbG93cyByZW9yZGVyaW5nIHRoZSBlbGVtZW50czoKLS0vLy8gbGV0IHggPSBp MzJ4NDo6bmV3KDEsIDIsIDMsIDQpOwotLS8vLyBsZXQgeSA9IGkzMng0OjpuZXcoNSwgNiwgNywg OCk7Ci0tLy8vIGxldCByID0gc2h1ZmZsZSEoeCwgeSwgWzQsIDAsIDUsIDFdKTsKLS0vLy8gYXNz ZXJ0X2VxIShyLCBpMzJ4NDo6bmV3KDUsIDEsIDYsIDIpKTsKLS0vLy8KLS0vLy8gLy8gVGhlIHJl c3VsdGluZyB2ZWN0b3IgY2FuIGFscyBiZSBzbWFsbGVyIHRoYW4gdGhlIGlucHV0OgotLS8vLyBs ZXQgciA9IHNodWZmbGUhKHgsIHksIFsxLCA2XSk7Ci0tLy8vIGFzc2VydF9lcSEociwgaTMyeDI6 Om5ldygyLCA3KSk7Ci0tLy8vCi0tLy8vIC8vIE9yIGxhcmdlcjoKLS0vLy8gbGV0IHIgPSBzaHVm ZmxlISh4LCB5LCBbMSwgMywgNCwgMiwgMSwgNywgMiwgMl0pOwotLS8vLyBhc3NlcnRfZXEhKHIs IGkzMng4OjpuZXcoMiwgNCwgNSwgMywgMiwgOCwgMywgMykpOwotLS8vLyAvLyBBdCBtb3N0IDIg KiB0aGUgbnVtYmVyIG9mIGxhbmVzIGluIHRoZSBpbnB1dCB2ZWN0b3IuCi0tLy8vICMgfQotLS8v LyBgYGAKLS0vLy8KLS0vLy8gU2h1ZmZsaW5nIGVsZW1lbnRzIG9mIG9uZSB2ZWN0b3I6Ci0tLy8v Ci0tLy8vIGBgYAotLS8vLyAjIHVzZSBwYWNrZWRfc2ltZDo6KjsKLS0vLy8gIyBmbiBtYWluKCkg ewotLS8vLyAvLyBTaHVmZmxlIGFsbG93cyByZW9yZGVyaW5nIHRoZSBlbGVtZW50cyBvZiBhIHZl Y3RvcjoKLS0vLy8gbGV0IHggPSBpMzJ4NDo6bmV3KDEsIDIsIDMsIDQpOwotLS8vLyBsZXQgciA9 IHNodWZmbGUhKHgsIFsyLCAxLCAzLCAwXSk7Ci0tLy8vIGFzc2VydF9lcSEociwgaTMyeDQ6Om5l dygzLCAyLCA0LCAxKSk7Ci0tLy8vCi0tLy8vIC8vIFRoZSByZXN1bHRpbmcgdmVjdG9yIGNhbiBi ZSBzbWFsbGVyIHRoYW4gdGhlIGlucHV0OgotLS8vLyBsZXQgciA9IHNodWZmbGUhKHgsIFsxLCAz XSk7Ci0tLy8vIGFzc2VydF9lcSEociwgaTMyeDI6Om5ldygyLCA0KSk7Ci0tLy8vCi0tLy8vIC8v IEVxdWFsOgotLS8vLyBsZXQgciA9IHNodWZmbGUhKHgsIFsxLCAzLCAyLCAwXSk7Ci0tLy8vIGFz c2VydF9lcSEociwgaTMyeDQ6Om5ldygyLCA0LCAzLCAxKSk7Ci0tLy8vCi0tLy8vIC8vIE9yIGxh cmdlcjoKLS0vLy8gbGV0IHIgPSBzaHVmZmxlISh4LCBbMSwgMywgMiwgMiwgMSwgMywgMiwgMl0p OwotLS8vLyBhc3NlcnRfZXEhKHIsIGkzMng4OjpuZXcoMiwgNCwgMywgMywgMiwgNCwgMywgMykp OwotLS8vLyAvLyBBdCBtb3N0IDIgKiB0aGUgbnVtYmVyIG9mIGxhbmVzIGluIHRoZSBpbnB1dCB2 ZWN0b3IuCi0tLy8vICMgfQotLS8vLyBgYGAKLS0jW21hY3JvX2V4cG9ydF0KLS1tYWNyb19ydWxl cyEgc2h1ZmZsZSB7Ci0tICAgICgkdmVjMDpleHByLCAkdmVjMTpleHByLCBbJGwwOmV4cHIsICRs MTpleHByXSkgPT4ge3sKLS0gICAgICAgICNbYWxsb3codW51c2VkX3Vuc2FmZSldCi0tICAgICAg ICB1bnNhZmUgewotLSAgICAgICAgICAgICRjcmF0ZTo6U2ltZCgkY3JhdGU6Ol9fc2h1ZmZsZV92 ZWN0b3IyOjo8e1skbDAsICRsMV19LCBfLCBfPigKLS0gICAgICAgICAgICAgICAgJHZlYzAuMCwK LS0gICAgICAgICAgICAgICAgJHZlYzEuMCwKLS0gICAgICAgICAgICApKQotLSAgICAgICAgfQot LSAgICB9fTsKLS0gICAgKCR2ZWMwOmV4cHIsICR2ZWMxOmV4cHIsIFskbDA6ZXhwciwgJGwxOmV4 cHIsICRsMjpleHByLCAkbDM6ZXhwcl0pID0+IHt7Ci0tICAgICAgICAjW2FsbG93KHVudXNlZF91 bnNhZmUpXQotLSAgICAgICAgdW5zYWZlIHsKLS0gICAgICAgICAgICAkY3JhdGU6OlNpbWQoJGNy YXRlOjpfX3NodWZmbGVfdmVjdG9yNDo6PHtbJGwwLCAkbDEsICRsMiwgJGwzXX0sIF8sIF8+KAot LSAgICAgICAgICAgICAgICAkdmVjMC4wLAotLSAgICAgICAgICAgICAgICAkdmVjMS4wLAotLSAg ICAgICAgICAgICkpCi0tICAgICAgICB9Ci0tICAgIH19OwotLSAgICAoJHZlYzA6ZXhwciwgJHZl YzE6ZXhwciwKLS0gICAgIFskbDA6ZXhwciwgJGwxOmV4cHIsICRsMjpleHByLCAkbDM6ZXhwciwK LS0gICAgICAkbDQ6ZXhwciwgJGw1OmV4cHIsICRsNjpleHByLCAkbDc6ZXhwcl0pID0+IHt7Ci0t ICAgICAgICAjW2FsbG93KHVudXNlZF91bnNhZmUpXQotLSAgICAgICAgdW5zYWZlIHsKLS0gICAg ICAgICAgICAkY3JhdGU6OlNpbWQoJGNyYXRlOjpfX3NodWZmbGVfdmVjdG9yODo6PHtbJGwwLCAk bDEsICRsMiwgJGwzLCAkbDQsICRsNSwgJGw2LCAkbDddfSwgXywgXz4oCi0tICAgICAgICAgICAg ICAgICR2ZWMwLjAsCi0tICAgICAgICAgICAgICAgICR2ZWMxLjAsCi0tICAgICAgICAgICAgKSkK LS0gICAgICAgIH0KLS0gICAgfX07Ci0tICAgICgkdmVjMDpleHByLCAkdmVjMTpleHByLAotLSAg ICAgWyRsMDpleHByLCAkbDE6ZXhwciwgJGwyOmV4cHIsICRsMzpleHByLAotLSAgICAgICRsNDpl eHByLCAkbDU6ZXhwciwgJGw2OmV4cHIsICRsNzpleHByLAotLSAgICAgICRsODpleHByLCAkbDk6 ZXhwciwgJGwxMDpleHByLCAkbDExOmV4cHIsCi0tICAgICAgJGwxMjpleHByLCAkbDEzOmV4cHIs ICRsMTQ6ZXhwciwgJGwxNTpleHByXSkgPT4ge3sKLS0gICAgICAgICNbYWxsb3codW51c2VkX3Vu c2FmZSldCi0tICAgICAgICB1bnNhZmUgewotLSAgICAgICAgICAgICRjcmF0ZTo6U2ltZCgkY3Jh dGU6Ol9fc2h1ZmZsZV92ZWN0b3IxNjo6PHsKLS0gICAgICAgICAgICAgICAgWwotLSAgICAgICAg ICAgICAgICAgICAgJGwwLCAkbDEsICRsMiwgJGwzLCAkbDQsICRsNSwgJGw2LCAkbDcsICRsOCwg JGw5LCAkbDEwLAotLSAgICAgICAgICAgICAgICAgICAgJGwxMSwgJGwxMiwgJGwxMywgJGwxNCwg JGwxNSwKLS0gICAgICAgICAgICAgICAgXQotLSAgICAgICAgICAgIH0sIF8sIF8+KAotLSAgICAg ICAgICAgICAgICAkdmVjMC4wLAotLSAgICAgICAgICAgICAgICAkdmVjMS4wLAotLSAgICAgICAg ICAgICkpCi0tICAgICAgICB9Ci0tICAgIH19OwotLSAgICAoJHZlYzA6ZXhwciwgJHZlYzE6ZXhw ciwKLS0gICAgIFskbDA6ZXhwciwgJGwxOmV4cHIsICRsMjpleHByLCAkbDM6ZXhwciwKLS0gICAg ICAkbDQ6ZXhwciwgJGw1OmV4cHIsICRsNjpleHByLCAkbDc6ZXhwciwKLS0gICAgICAkbDg6ZXhw ciwgJGw5OmV4cHIsICRsMTA6ZXhwciwgJGwxMTpleHByLAotLSAgICAgICRsMTI6ZXhwciwgJGwx MzpleHByLCAkbDE0OmV4cHIsICRsMTU6ZXhwciwKLS0gICAgICAkbDE2OmV4cHIsICRsMTc6ZXhw ciwgJGwxODpleHByLCAkbDE5OmV4cHIsCi0tICAgICAgJGwyMDpleHByLCAkbDIxOmV4cHIsICRs MjI6ZXhwciwgJGwyMzpleHByLAotLSAgICAgICRsMjQ6ZXhwciwgJGwyNTpleHByLCAkbDI2OmV4 cHIsICRsMjc6ZXhwciwKLS0gICAgICAkbDI4OmV4cHIsICRsMjk6ZXhwciwgJGwzMDpleHByLCAk bDMxOmV4cHJdKSA9PiB7ewotLSAgICAgICAgI1thbGxvdyh1bnVzZWRfdW5zYWZlKV0KLS0gICAg ICAgIHVuc2FmZSB7Ci0tICAgICAgICAgICAgJGNyYXRlOjpTaW1kKCRjcmF0ZTo6X19zaHVmZmxl X3ZlY3RvcjMyOjo8ewotLSAgICAgICAgICAgICAgICBbCi0tICAgICAgICAgICAgICAgICAgICAk bDAsICRsMSwgJGwyLCAkbDMsICRsNCwgJGw1LCAkbDYsICRsNywgJGw4LCAkbDksICRsMTAsCi0t ICAgICAgICAgICAgICAgICAgICAkbDExLCAkbDEyLCAkbDEzLCAkbDE0LCAkbDE1LCAkbDE2LCAk bDE3LCAkbDE4LCAkbDE5LAotLSAgICAgICAgICAgICAgICAgICAgJGwyMCwgJGwyMSwgJGwyMiwg JGwyMywgJGwyNCwgJGwyNSwgJGwyNiwgJGwyNywgJGwyOCwKLS0gICAgICAgICAgICAgICAgICAg ICRsMjksICRsMzAsICRsMzEsCi0tICAgICAgICAgICAgICAgIF0KLS0gICAgICAgICAgICB9LCBf LCBfPigKLS0gICAgICAgICAgICAgICAgJHZlYzAuMCwKLS0gICAgICAgICAgICAgICAgJHZlYzEu MCwKLS0gICAgICAgICAgICApKQotLSAgICAgICAgfQotLSAgICB9fTsKLS0gICAgKCR2ZWMwOmV4 cHIsICR2ZWMxOmV4cHIsCi0tICAgICBbJGwwOmV4cHIsICRsMTpleHByLCAkbDI6ZXhwciwgJGwz OmV4cHIsCi0tICAgICAgJGw0OmV4cHIsICRsNTpleHByLCAkbDY6ZXhwciwgJGw3OmV4cHIsCi0t ICAgICAgJGw4OmV4cHIsICRsOTpleHByLCAkbDEwOmV4cHIsICRsMTE6ZXhwciwKLS0gICAgICAk bDEyOmV4cHIsICRsMTM6ZXhwciwgJGwxNDpleHByLCAkbDE1OmV4cHIsCi0tICAgICAgJGwxNjpl eHByLCAkbDE3OmV4cHIsICRsMTg6ZXhwciwgJGwxOTpleHByLAotLSAgICAgICRsMjA6ZXhwciwg JGwyMTpleHByLCAkbDIyOmV4cHIsICRsMjM6ZXhwciwKLS0gICAgICAkbDI0OmV4cHIsICRsMjU6 ZXhwciwgJGwyNjpleHByLCAkbDI3OmV4cHIsCi0tICAgICAgJGwyODpleHByLCAkbDI5OmV4cHIs ICRsMzA6ZXhwciwgJGwzMTpleHByLAotLSAgICAgICRsMzI6ZXhwciwgJGwzMzpleHByLCAkbDM0 OmV4cHIsICRsMzU6ZXhwciwKLS0gICAgICAkbDM2OmV4cHIsICRsMzc6ZXhwciwgJGwzODpleHBy LCAkbDM5OmV4cHIsCi0tICAgICAgJGw0MDpleHByLCAkbDQxOmV4cHIsICRsNDI6ZXhwciwgJGw0 MzpleHByLAotLSAgICAgICRsNDQ6ZXhwciwgJGw0NTpleHByLCAkbDQ2OmV4cHIsICRsNDc6ZXhw ciwKLS0gICAgICAkbDQ4OmV4cHIsICRsNDk6ZXhwciwgJGw1MDpleHByLCAkbDUxOmV4cHIsCi0t ICAgICAgJGw1MjpleHByLCAkbDUzOmV4cHIsICRsNTQ6ZXhwciwgJGw1NTpleHByLAotLSAgICAg ICRsNTY6ZXhwciwgJGw1NzpleHByLCAkbDU4OmV4cHIsICRsNTk6ZXhwciwKLS0gICAgICAkbDYw OmV4cHIsICRsNjE6ZXhwciwgJGw2MjpleHByLCAkbDYzOmV4cHJdKSA9PiB7ewotLSAgICAgICAg I1thbGxvdyh1bnVzZWRfdW5zYWZlKV0KLS0gICAgICAgIHVuc2FmZSB7Ci0tICAgICAgICAgICAg JGNyYXRlOjpTaW1kKCRjcmF0ZTo6X19zaHVmZmxlX3ZlY3RvcjY0Ojo8e1sKLS0gICAgICAgICAg ICAgICAgJGwwLCAkbDEsICRsMiwgJGwzLCAkbDQsICRsNSwgJGw2LCAkbDcsICRsOCwgJGw5LCAk bDEwLAotLSAgICAgICAgICAgICAgICAkbDExLCAkbDEyLCAkbDEzLCAkbDE0LCAkbDE1LCAkbDE2 LCAkbDE3LCAkbDE4LCAkbDE5LAotLSAgICAgICAgICAgICAgICAkbDIwLCAkbDIxLCAkbDIyLCAk bDIzLCAkbDI0LCAkbDI1LCAkbDI2LCAkbDI3LCAkbDI4LAotLSAgICAgICAgICAgICAgICAkbDI5 LCAkbDMwLCAkbDMxLCAkbDMyLCAkbDMzLCAkbDM0LCAkbDM1LCAkbDM2LCAkbDM3LAotLSAgICAg ICAgICAgICAgICAkbDM4LCAkbDM5LCAkbDQwLCAkbDQxLCAkbDQyLCAkbDQzLCAkbDQ0LCAkbDQ1 LCAkbDQ2LAotLSAgICAgICAgICAgICAgICAkbDQ3LCAkbDQ4LCAkbDQ5LCAkbDUwLCAkbDUxLCAk bDUyLCAkbDUzLCAkbDU0LCAkbDU1LAotLSAgICAgICAgICAgICAgICAkbDU2LCAkbDU3LCAkbDU4 LCAkbDU5LCAkbDYwLCAkbDYxLCAkbDYyLCAkbDYzLAotLSAgICAgICAgICAgIF19LCBfLCBfPigK LS0gICAgICAgICAgICAgICAgJHZlYzAuMCwKLS0gICAgICAgICAgICAgICAgJHZlYzEuMCwKLS0g ICAgICAgICAgICApKQotLSAgICAgICAgfQotLSAgICAgfX07Ci0tICAgICgkdmVjOmV4cHIsIFsk KCRsOmV4cHIpLCpdKSA9PiB7Ci0tICAgICAgICBtYXRjaCAkdmVjIHsKLS0gICAgICAgICAgICB2 ID0+IHNodWZmbGUhKHYsIHYsIFskKCRsKSwqXSkKLS0gICAgICAgIH0KLS0gICAgfTsKLS19Ci1k aWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL3NodWZmbGUx X2R5bi5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9zaHVmZmxlMV9k eW4ucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9zaHVmZmxl MV9keW4ucnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJk X3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9zaHVmZmxlMV9keW4ucnMJMTk3MC0wMS0w MSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDE1OSArMCwwIEBACi0tLy8hIFNodWZm bGUgdmVjdG9yIGVsZW1lbnRzIGFjY29yZGluZyB0byBhIGR5bmFtaWMgdmVjdG9yIG9mIGluZGlj ZXMuCi0tCi0tbWFjcm9fcnVsZXMhIGltcGxfc2h1ZmZsZTFfZHluIHsKLS0gICAgKFskZWxlbV90 eTppZGVudDsgJGVsZW1fY291bnQ6ZXhwcl06ICRpZDppZGVudCB8ICR0ZXN0X3R0OnR0KSA9PiB7 Ci0tICAgICAgICBpbXBsICRpZCB7Ci0tICAgICAgICAgICAgLy8vIFNodWZmbGUgdmVjdG9yIGVs ZW1lbnRzIGFjY29yZGluZyB0byBgaW5kaWNlc2AuCi0tICAgICAgICAgICAgI1tpbmxpbmVdCi0t ICAgICAgICAgICAgcHViIGZuIHNodWZmbGUxX2R5bjxJPihzZWxmLCBpbmRpY2VzOiBJKSAtPiBT ZWxmCi0tICAgICAgICAgICAgd2hlcmUKLS0gICAgICAgICAgICAgICAgU2VsZjogY29kZWdlbjo6 c2h1ZmZsZTFfZHluOjpTaHVmZmxlMUR5bjxJbmRpY2VzID0gST4sCi0tICAgICAgICAgICAgewot LSAgICAgICAgICAgICAgICBjb2RlZ2VuOjpzaHVmZmxlMV9keW46OlNodWZmbGUxRHluOjpzaHVm ZmxlMV9keW4oc2VsZiwgaW5kaWNlcykKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAg IH07Ci0tfQotLQotLW1hY3JvX3J1bGVzISB0ZXN0X3NodWZmbGUxX2R5biB7Ci0tICAgIChbJGVs ZW1fdHk6aWRlbnQ7ICRlbGVtX2NvdW50OmV4cHJdOiAkaWQ6aWRlbnQgfCAkdGVzdF90dDp0dCkg PT4gewotLSAgICAgICAgdGVzdF9pZiEgewotLSAgICAgICAgICAgICR0ZXN0X3R0OgotLSAgICAg ICAgICAgIHBhc3RlOjppdGVtISB7Ci0tICAgICAgICAgICAgICAgIHB1YiBtb2QgWzwkaWQgX3No dWZmbGUxX2R5bj5dIHsKLS0gICAgICAgICAgICAgICAgICAgIHVzZSBzdXBlcjo6KjsKLS0gICAg ICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0 ZXN0KV0gI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVz dCldCi0tICAgICAgICAgICAgICAgICAgICBmbiBzaHVmZmxlMV9keW4oKSB7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgbGV0IGluY3JlYXNpbmcgPSB7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGxldCBtdXQgdiA9ICRpZDo6c3BsYXQoMCBhcyAkZWxlbV90eSk7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGZvciBpIGluIDAuLiRpZDo6bGFuZXMoKSB7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB2ID0gdi5yZXBsYWNlKGksIGkgYXMgJGVsZW1fdHkpOwot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHYKLS0gICAgICAgICAgICAgICAgICAgICAgICB9OwotLSAgICAgICAgICAgICAgICAgICAg ICAgIGxldCBkZWNyZWFzaW5nID0gewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQg bXV0IHYgPSAkaWQ6OnNwbGF0KDAgYXMgJGVsZW1fdHkpOwotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICBmb3IgaSBpbiAwLi4kaWQ6OmxhbmVzKCkgewotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgdiA9IHYucmVwbGFjZSgKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBpLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgkaWQ6Omxh bmVzKCkgLSAxIC0gaSkgYXMgJGVsZW1fdHkKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgdgotLSAgICAgICAgICAgICAgICAgICAgICAgIH07Ci0tCi0tICAgICAgICAg ICAgICAgICAgICAgICAgdHlwZSBJbmRpY2VzID0gPAotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAkaWQgYXMgY29kZWdlbjo6c2h1ZmZsZTFfZHluOjpTaHVmZmxlMUR5bgotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICA+OjpJbmRpY2VzOwotLSAgICAgICAgICAgICAgICAgICAgICAg IGxldCBpbmNyZWFzaW5nX2lkczogSW5kaWNlcyA9IGluY3JlYXNpbmcuY2FzdCgpOwotLSAgICAg ICAgICAgICAgICAgICAgICAgIGxldCBkZWNyZWFzaW5nX2lkczogSW5kaWNlcyA9IGRlY3JlYXNp bmcuY2FzdCgpOwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoCi0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGluY3JlYXNpbmcuc2h1ZmZsZTFfZHluKGluY3JlYXNp bmdfaWRzKSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5jcmVhc2luZywKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgIihpLGkpPT5pIgotLSAgICAgICAgICAgICAgICAgICAg ICAgICk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISgKLS0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgZGVjcmVhc2luZy5zaHVmZmxlMV9keW4oaW5jcmVhc2luZ19pZHMp LAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWNyZWFzaW5nLAotLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAiKGQsaSk9PmQiCi0tICAgICAgICAgICAgICAgICAgICAgICAgKTsK LS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKAotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICBpbmNyZWFzaW5nLnNodWZmbGUxX2R5bihkZWNyZWFzaW5nX2lkcyksCi0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGRlY3JlYXNpbmcsCi0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgICIoaSxkKT0+ZCIKLS0gICAgICAgICAgICAgICAgICAgICAgICApOwotLSAgICAg ICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoCi0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGRlY3JlYXNpbmcuc2h1ZmZsZTFfZHluKGRlY3JlYXNpbmdfaWRzKSwKLS0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgaW5jcmVhc2luZywKLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgIihkLGQpPT5pIgotLSAgICAgICAgICAgICAgICAgICAgICAgICk7Ci0tCi0tICAgICAgICAg ICAgICAgICAgICAgICAgZm9yIGkgaW4gMC4uJGlkOjpsYW5lcygpIHsKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgbGV0IHZfaWRzOiBJbmRpY2VzCi0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICA9ICRpZDo6c3BsYXQoaSBhcyAkZWxlbV90eSkuY2FzdCgpOwotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGluY3JlYXNpbmcuc2h1ZmZsZTFfZHluKHZf aWRzKSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaWQ6OnNwbGF0 KGluY3JlYXNpbmcuZXh0cmFjdChpKSkKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsK LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShkZWNyZWFzaW5nLnNodWZm bGUxX2R5bih2X2lkcyksCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg JGlkOjpzcGxhdChkZWNyZWFzaW5nLmV4dHJhY3QoaSkpCi0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgICk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoCi0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaWQ6OnNwbGF0KGkgYXMgJGVsZW1fdHkpCi0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnNodWZmbGUxX2R5bihpbmNyZWFz aW5nX2lkcyksCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaWQ6OnNwbGF0KGkg YXMgJGVsZW1fdHkpCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoCi0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAkaWQ6OnNwbGF0KGkgYXMgJGVsZW1fdHkpCi0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgLnNodWZmbGUxX2R5bihkZWNyZWFzaW5nX2lkcyksCi0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAkaWQ6OnNwbGF0KGkgYXMgJGVsZW1fdHkpCi0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgICk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgfQotLSAg ICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgfQot LSAgICAgICAgfQotLSAgICB9OwotLX0KLS0KLS1tYWNyb19ydWxlcyEgdGVzdF9zaHVmZmxlMV9k eW5fbWFzayB7Ci0tICAgIChbJGVsZW1fdHk6aWRlbnQ7ICRlbGVtX2NvdW50OmV4cHJdOiAkaWQ6 aWRlbnQgfCAkdGVzdF90dDp0dCkgPT4gewotLSAgICAgICAgdGVzdF9pZiEgewotLSAgICAgICAg ICAgICR0ZXN0X3R0OgotLSAgICAgICAgICAgIHBhc3RlOjppdGVtISB7Ci0tICAgICAgICAgICAg ICAgIHB1YiBtb2QgWzwkaWQgX3NodWZmbGUxX2R5bj5dIHsKLS0gICAgICAgICAgICAgICAgICAg IHVzZSBzdXBlcjo6KjsKLS0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdl dF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0gI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNt MzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCi0tICAgICAgICAgICAgICAgICAgICBmbiBzaHVmZmxl MV9keW4oKSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgLy8gYWx0ZXJuYXRpbmcgPSBbdHJ1 ZSwgZmFsc2UsIHRydWUsIGZhbHNlLCAuLi5dCi0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0 IG11dCBhbHRlcm5hdGluZyA9ICRpZDo6c3BsYXQoZmFsc2UpOwotLSAgICAgICAgICAgICAgICAg ICAgICAgIGZvciBpIGluIDAuLiRpZDo6bGFuZXMoKSB7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGlmIGkgJSAyID09IDAgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg YWx0ZXJuYXRpbmcgPSBhbHRlcm5hdGluZy5yZXBsYWNlKGksIHRydWUpOwotLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICAgICAgfQotLQotLSAgICAg ICAgICAgICAgICAgICAgICAgIHR5cGUgSW5kaWNlcyA9IDwKLS0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgJGlkIGFzIGNvZGVnZW46OnNodWZmbGUxX2R5bjo6U2h1ZmZsZTFEeW4KLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgPjo6SW5kaWNlczsKLS0gICAgICAgICAgICAgICAgICAg ICAgICAvLyBldmVuID0gWzAsIDAsIDIsIDIsIDQsIDQsIC4uXQotLSAgICAgICAgICAgICAgICAg ICAgICAgIGxldCBldmVuID0gewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0 IHYgPSBJbmRpY2VzOjpzcGxhdCgwKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9y IGkgaW4gMC4uJGlkOjpsYW5lcygpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGlmIGkgJSAyID09IDAgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYg PSB2LnJlcGxhY2UoaSwgKGkgYXMgdTgpLmludG8oKSk7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9IGVsc2UgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHYgPSB2LnJlcGxhY2UoaSwgKGkgYXMgdTggLSAxKS5pbnRvKCkpOwotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHYKLS0gICAgICAgICAgICAgICAgICAgICAgICB9Owot LSAgICAgICAgICAgICAgICAgICAgICAgIC8vIG9kZCA9IFsxLCAxLCAzLCAzLCA1LCA1LCAuLi5d Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG9kZCA9IHsKLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgbGV0IG11dCB2ID0gSW5kaWNlczo6c3BsYXQoMCk7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGZvciBpIGluIDAuLiRpZDo6bGFuZXMoKSB7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBpZiBpICUgMiAhPSAwIHsKLS0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB2ID0gdi5yZXBsYWNlKGksIChpIGFzIHU4KS5pbnRvKCkpOwotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB2ID0gdi5yZXBsYWNlKGksIChpIGFzIHU4ICsgMSkuaW50bygp KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgfTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEh KAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHRlcm5hdGluZy5zaHVmZmxlMV9keW4o ZXZlbiksCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpZDo6c3BsYXQodHJ1ZSkKLS0g ICAgICAgICAgICAgICAgICAgICAgICApOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGlmICRp ZDo6bGFuZXMoKSA+IDEgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEh KAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0ZXJuYXRpbmcuc2h1ZmZsZTFf ZHluKG9kZCksCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaWQ6OnNwbGF0KGZh bHNlKQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICApOwotLSAgICAgICAgICAgICAgICAg ICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgfQotLSAg ICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgfTsKLS19Ci1kaWZmIC1OcmJ1IGEvdGhpcmRf cGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL3NsaWNlL2Zyb21fc2xpY2UucnMgYi90aGly ZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvc2xpY2UvZnJvbV9zbGljZS5ycwotLS0t IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL3NsaWNlL2Zyb21fc2xpY2Uu cnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5 L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9zbGljZS9mcm9tX3NsaWNlLnJzCTE5NzAtMDEtMDEg MDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSwyMDIgKzAsMCBAQAotLS8vISBJbXBsZW1l bnRzIG1ldGhvZHMgdG8gcmVhZCBhIHZlY3RvciB0eXBlIGZyb20gYSBzbGljZS4KLS0KLS1tYWNy b19ydWxlcyEgaW1wbF9zbGljZV9mcm9tX3NsaWNlIHsKLS0gICAgKFskZWxlbV90eTppZGVudDsg JGVsZW1fY291bnQ6ZXhwcl06ICRpZDppZGVudCB8ICR0ZXN0X3R0OnR0KSA9PiB7Ci0tICAgICAg ICBpbXBsICRpZCB7Ci0tICAgICAgICAgICAgLy8vIEluc3RhbnRpYXRlcyBhIG5ldyB2ZWN0b3Ig d2l0aCB0aGUgdmFsdWVzIG9mIHRoZSBgc2xpY2VgLgotLSAgICAgICAgICAgIC8vLwotLSAgICAg ICAgICAgIC8vLyAjIFBhbmljcwotLSAgICAgICAgICAgIC8vLwotLSAgICAgICAgICAgIC8vLyBJ ZiBgc2xpY2UubGVuKCkgPCBTZWxmOjpsYW5lcygpYCBvciBgJnNsaWNlWzBdYCBpcyBub3QgYWxp Z25lZAotLSAgICAgICAgICAgIC8vLyB0byBhbiBgYWxpZ25fb2Y6OjxTZWxmPigpYCBib3VuZGFy eS4KLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBwdWIgZm4gZnJvbV9zbGlj ZV9hbGlnbmVkKHNsaWNlOiAmWyRlbGVtX3R5XSkgLT4gU2VsZiB7Ci0tICAgICAgICAgICAgICAg IHVuc2FmZSB7Ci0tICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKHNsaWNlLmxlbigpID49ICRl bGVtX2NvdW50KTsKLS0gICAgICAgICAgICAgICAgICAgIGxldCB0YXJnZXRfcHRyID0gc2xpY2Uu YXNfcHRyKCk7Ci0tICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHRhcmdldF9wdHIuYWxp Z25fb2Zmc2V0KGNyYXRlOjptZW06OmFsaWduX29mOjo8U2VsZj4oKSksIDApOwotLSAgICAgICAg ICAgICAgICAgICAgU2VsZjo6ZnJvbV9zbGljZV9hbGlnbmVkX3VuY2hlY2tlZChzbGljZSkKLS0g ICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAvLy8gSW5z dGFudGlhdGVzIGEgbmV3IHZlY3RvciB3aXRoIHRoZSB2YWx1ZXMgb2YgdGhlIGBzbGljZWAuCi0t ICAgICAgICAgICAgLy8vCi0tICAgICAgICAgICAgLy8vICMgUGFuaWNzCi0tICAgICAgICAgICAg Ly8vCi0tICAgICAgICAgICAgLy8vIElmIGBzbGljZS5sZW4oKSA8IFNlbGY6OmxhbmVzKClgLgot LSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIHB1YiBmbiBmcm9tX3NsaWNlX3Vu YWxpZ25lZChzbGljZTogJlskZWxlbV90eV0pIC0+IFNlbGYgewotLSAgICAgICAgICAgICAgICB1 bnNhZmUgewotLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IShzbGljZS5sZW4oKSA+PSAkZWxl bV9jb3VudCk7Ci0tICAgICAgICAgICAgICAgICAgICBTZWxmOjpmcm9tX3NsaWNlX3VuYWxpZ25l ZF91bmNoZWNrZWQoc2xpY2UpCi0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICB9Ci0t Ci0tICAgICAgICAgICAgLy8vIEluc3RhbnRpYXRlcyBhIG5ldyB2ZWN0b3Igd2l0aCB0aGUgdmFs dWVzIG9mIHRoZSBgc2xpY2VgLgotLSAgICAgICAgICAgIC8vLwotLSAgICAgICAgICAgIC8vLyAj IFNhZmV0eQotLSAgICAgICAgICAgIC8vLwotLSAgICAgICAgICAgIC8vLyBJZiBgc2xpY2UubGVu KCkgPCBTZWxmOjpsYW5lcygpYCBvciBgJnNsaWNlWzBdYCBpcyBub3QgYWxpZ25lZAotLSAgICAg ICAgICAgIC8vLyB0byBhbiBgYWxpZ25fb2Y6OjxTZWxmPigpYCBib3VuZGFyeSwgdGhlIGJlaGF2 aW9yIGlzIHVuZGVmaW5lZC4KLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBw dWIgdW5zYWZlIGZuIGZyb21fc2xpY2VfYWxpZ25lZF91bmNoZWNrZWQoc2xpY2U6ICZbJGVsZW1f dHldKSAtPiBTZWxmIHsKLS0gICAgICAgICAgICAgICAgZGVidWdfYXNzZXJ0IShzbGljZS5sZW4o KSA+PSAkZWxlbV9jb3VudCk7Ci0tICAgICAgICAgICAgICAgIGxldCB0YXJnZXRfcHRyID0gc2xp Y2UuYXNfcHRyKCk7Ci0tICAgICAgICAgICAgICAgIGRlYnVnX2Fzc2VydF9lcSEodGFyZ2V0X3B0 ci5hbGlnbl9vZmZzZXQoY3JhdGU6Om1lbTo6YWxpZ25fb2Y6OjxTZWxmPigpKSwgMCk7Ci0tCi0t ICAgICAgICAgICAgICAgICNbYWxsb3coY2xpcHB5OjpjYXN0X3B0cl9hbGlnbm1lbnQpXQotLSAg ICAgICAgICAgICAgICAqKHRhcmdldF9wdHIgYXMgKmNvbnN0IFNlbGYpCi0tICAgICAgICAgICAg fQotLQotLSAgICAgICAgICAgIC8vLyBJbnN0YW50aWF0ZXMgYSBuZXcgdmVjdG9yIHdpdGggdGhl IHZhbHVlcyBvZiB0aGUgYHNsaWNlYC4KLS0gICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAv Ly8gIyBTYWZldHkKLS0gICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAvLy8gSWYgYHNsaWNl LmxlbigpIDwgU2VsZjo6bGFuZXMoKWAgdGhlIGJlaGF2aW9yIGlzIHVuZGVmaW5lZC4KLS0gICAg ICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBwdWIgdW5zYWZlIGZuIGZyb21fc2xpY2Vf dW5hbGlnbmVkX3VuY2hlY2tlZChzbGljZTogJlskZWxlbV90eV0pIC0+IFNlbGYgewotLSAgICAg ICAgICAgICAgICB1c2UgY3JhdGU6Om1lbTo6c2l6ZV9vZjsKLS0gICAgICAgICAgICAgICAgZGVi dWdfYXNzZXJ0IShzbGljZS5sZW4oKSA+PSAkZWxlbV9jb3VudCk7Ci0tICAgICAgICAgICAgICAg IGxldCB0YXJnZXRfcHRyID0gc2xpY2UuYXNfcHRyKCkuY2FzdCgpOwotLSAgICAgICAgICAgICAg ICBsZXQgbXV0IHggPSBTZWxmOjpzcGxhdCgwIGFzICRlbGVtX3R5KTsKLS0gICAgICAgICAgICAg ICAgbGV0IHNlbGZfcHRyID0gJm11dCB4IGFzICptdXQgU2VsZiBhcyAqbXV0IHU4OwotLSAgICAg ICAgICAgICAgICBjcmF0ZTo6cHRyOjpjb3B5X25vbm92ZXJsYXBwaW5nKHRhcmdldF9wdHIsIHNl bGZfcHRyLCBzaXplX29mOjo8U2VsZj4oKSk7Ci0tICAgICAgICAgICAgICAgIHgKLS0gICAgICAg ICAgICB9Ci0tICAgICAgICB9Ci0tCi0tICAgICAgICB0ZXN0X2lmISB7Ci0tICAgICAgICAgICAg JHRlc3RfdHQ6Ci0tICAgICAgICAgICAgcGFzdGU6Oml0ZW0hIHsKLS0gICAgICAgICAgICAgICAg Ly8gQ29tcGFyaXNvbnMgdXNlIGludGVnZXIgY2FzdHMgd2l0aGluIG1hbnRpc3NhXjEgcmFuZ2Uu Ci0tICAgICAgICAgICAgICAgICNbYWxsb3coY2xpcHB5OjpmbG9hdF9jbXApXQotLSAgICAgICAg ICAgICAgICBwdWIgbW9kIFs8JGlkIF9zbGljZV9mcm9tX3NsaWNlPl0gewotLSAgICAgICAgICAg ICAgICAgICAgdXNlIHN1cGVyOjoqOwotLSAgICAgICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpp dGVyOjpJdGVyYXRvcjsKLS0KLS0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRh cmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgICNbY2Zn X2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQotLSAgICAg ICAgICAgICAgICAgICAgZm4gZnJvbV9zbGljZV91bmFsaWduZWQoKSB7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgbGV0IG11dCB1bmFsaWduZWQgPSBbNDIgYXMgJGVsZW1fdHk7ICRpZDo6bGFu ZXMoKSArIDFdOwotLSAgICAgICAgICAgICAgICAgICAgICAgIHVuYWxpZ25lZFswXSA9IDAgYXMg JGVsZW1fdHk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHZlYyA9ICRpZDo6ZnJvbV9z bGljZV91bmFsaWduZWQoJnVuYWxpZ25lZFsxLi5dKTsKLS0gICAgICAgICAgICAgICAgICAgICAg ICBmb3IgKGluZGV4LCAmYikgaW4gdW5hbGlnbmVkLml0ZXIoKS5lbnVtZXJhdGUoKSB7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGluZGV4ID09IDAgewotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShiLCAwIGFzICRlbGVtX3R5KTsKLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGFzc2VydF9lcSEoYiwgNDIgYXMgJGVsZW1fdHkpOwotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShiLCB2ZWMuZXh0cmFjdChpbmRleCAtIDEpKTsKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgICAgIH0K LS0gICAgICAgICAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAgICAgICAgIC8vIEZJWE1F OiB3YXNtLWJpbmRnZW4tdGVzdCBkb2VzIG5vdCBzdXBwb3J0ICNbc2hvdWxkX3BhbmljXQotLSAg ICAgICAgICAgICAgICAgICAgLy8gI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMy IiksIHRlc3QpXQotLSAgICAgICAgICAgICAgICAgICAgLy8gI1tjZmdfYXR0cih0YXJnZXRfYXJj aCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCi0tICAgICAgICAgICAgICAgICAgICAj W2NmZyhub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIikpXQotLSAgICAgICAgICAgICAgICAgICAg I1t0ZXN0XQotLSAgICAgICAgICAgICAgICAgICAgI1tzaG91bGRfcGFuaWNdCi0tICAgICAgICAg ICAgICAgICAgICBmbiBmcm9tX3NsaWNlX3VuYWxpZ25lZF9mYWlsKCkgewotLSAgICAgICAgICAg ICAgICAgICAgICAgIGxldCBtdXQgdW5hbGlnbmVkID0gWzQyIGFzICRlbGVtX3R5OyAkaWQ6Omxh bmVzKCkgKyAxXTsKLS0gICAgICAgICAgICAgICAgICAgICAgICB1bmFsaWduZWRbMF0gPSAwIGFz ICRlbGVtX3R5OwotLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoZSBzbGljZSBpcyBub3Qg bGFyZ2UgZW5vdWdoID0+IHBhbmljCi0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IF92ZWMg PSAkaWQ6OmZyb21fc2xpY2VfdW5hbGlnbmVkKCZ1bmFsaWduZWRbMi4uXSk7Ci0tICAgICAgICAg ICAgICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgICAgICAgICB1bmlvbiBBIHsKLS0gICAgICAg ICAgICAgICAgICAgICAgICBkYXRhOiBbJGVsZW1fdHk7IDIgKiAkaWQ6OmxhbmVzKCldLAotLSAg ICAgICAgICAgICAgICAgICAgICAgIF92ZWM6ICRpZCwKLS0gICAgICAgICAgICAgICAgICAgIH0K LS0KLS0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndh c20zMiIpLCB0ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIodGFyZ2V0X2Fy Y2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQotLSAgICAgICAgICAgICAgICAgICAg Zm4gZnJvbV9zbGljZV9hbGlnbmVkKCkgewotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBt dXQgYWxpZ25lZCA9IEEgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhOiBbMCBh cyAkZWxlbV90eTsgMiAqICRpZDo6bGFuZXMoKV0sCi0tICAgICAgICAgICAgICAgICAgICAgICAg fTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBmb3IgaSBpbiAkaWQ6OmxhbmVzKCkuLigyICog JGlkOjpsYW5lcygpKSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2FmZSB7Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGlnbmVkLmRhdGFbaV0gPSA0MiBhcyAk ZWxlbV90eTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAg ICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdmVjID0gdW5zYWZl IHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGlkOjpmcm9tX3NsaWNlX2FsaWduZWQo Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmYWxpZ25lZC5kYXRhWyRpZDo6bGFu ZXMoKS4uXQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICApCi0tICAgICAgICAgICAgICAg ICAgICAgICAgfTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGluZGV4LCAmYikgaW4K LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zYWZlIHsgYWxpZ25lZC5kYXRhLml0ZXIo KS5lbnVtZXJhdGUoKSB9IHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgaW5kZXgg PCAkaWQ6OmxhbmVzKCkgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0 X2VxIShiLCAwIGFzICRlbGVtX3R5KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBl bHNlIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoYiwgNDIg YXMgJGVsZW1fdHkpOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2Vx ISgKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiLCB2ZWMuZXh0cmFjdChp bmRleCAtICRpZDo6bGFuZXMoKSkKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgICAg ICB9Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgICAgICAgICAvLyBG SVhNRTogd2FzbS1iaW5kZ2VuLXRlc3QgZG9lcyBub3Qgc3VwcG9ydCAjW3Nob3VsZF9wYW5pY10K LS0gICAgICAgICAgICAgICAgICAgIC8vICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndh c20zMiIpLCB0ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgIC8vICNbY2ZnX2F0dHIodGFyZ2V0 X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQotLSAgICAgICAgICAgICAgICAg ICAgI1tjZmcobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpKV0KLS0gICAgICAgICAgICAgICAg ICAgICNbdGVzdF0KLS0gICAgICAgICAgICAgICAgICAgICNbc2hvdWxkX3BhbmljXQotLSAgICAg ICAgICAgICAgICAgICAgZm4gZnJvbV9zbGljZV9hbGlnbmVkX2ZhaWxfbGFuZXMoKSB7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgbGV0IGFsaWduZWQgPSBBIHsKLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgZGF0YTogWzAgYXMgJGVsZW1fdHk7IDIgKiAkaWQ6OmxhbmVzKCldLAotLSAg ICAgICAgICAgICAgICAgICAgICAgIH07Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IF92 ZWMgPSB1bnNhZmUgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaWQ6OmZyb21fc2xp Y2VfYWxpZ25lZCgKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZhbGlnbmVkLmRh dGFbMiAqICRpZDo6bGFuZXMoKS4uXQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICApCi0t ICAgICAgICAgICAgICAgICAgICAgICAgfTsKLS0gICAgICAgICAgICAgICAgICAgIH0KLS0KLS0g ICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiB3YXNtLWJpbmRnZW4tdGVzdCBkb2VzIG5vdCBz dXBwb3J0ICNbc2hvdWxkX3BhbmljXQotLSAgICAgICAgICAgICAgICAgICAgLy8gI1tjZmdfYXR0 cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXQotLSAgICAgICAgICAgICAgICAg ICAgLy8gI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVz dCldCi0tICAgICAgICAgICAgICAgICAgICAjW2NmZyhub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMy IikpXQotLSAgICAgICAgICAgICAgICAgICAgI1t0ZXN0XQotLSAgICAgICAgICAgICAgICAgICAg I1tzaG91bGRfcGFuaWNdCi0tICAgICAgICAgICAgICAgICAgICBmbiBmcm9tX3NsaWNlX2FsaWdu ZWRfZmFpbF9hbGlnbigpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICB1bnNhZmUgewotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgYWxpZ25lZCA9IEEgewotLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZGF0YTogWzAgYXMgJGVsZW1fdHk7IDIgKiAkaWQ6OmxhbmVz KCldLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9OwotLQotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAvLyBnZXQgYSBwb2ludGVyIHRvIHRoZSBmcm9udCBvZiBkYXRhCi0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBwdHI6ICpjb25zdCAkZWxlbV90eSA9IGFsaWdu ZWQuZGF0YS5hc19wdHIoKQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXMgKmNv bnN0ICRlbGVtX3R5OwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBvZmZzZXQgcG9p bnRlciBieSBvbmUgZWxlbWVudAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgcHRy ID0gcHRyLndyYXBwaW5nX2FkZCgxKTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg aWYgcHRyLmFsaWduX29mZnNldCgKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNy YXRlOjptZW06OmFsaWduX29mOjo8JGlkPigpCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAg ICkgPT0gMCB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGUgcG9pbnRl ciBpcyBwcm9wZXJseSBhbGlnbmVkLCBzbwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgLy8gZnJvbV9zbGljZV9hbGlnbmVkIHdvbid0IGZhaWwgaGVyZSAoZS5nLiB0aGlzCi0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBjYW4gaGFwcGVuIGZvciBpMTI4eDEpLiBT byB3ZSBwYW5pYyB0byBtYWtlCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0 aGUgInNob3VsZF9mYWlsIiB0ZXN0IHBhc3M6Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBwYW5pYyEoIm9rIik7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0KLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY3JlYXRlIGEgc2xpY2UgLSB0aGlzIGlzIHNh ZmUsIGJlY2F1c2UgdGhlCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGVsZW1lbnRz IG9mIHRoZSBzbGljZSBleGlzdCwgYXJlIHByb3Blcmx5Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgIC8vIGluaXRpYWxpemVkLCBhbmQgcHJvcGVybHkgYWxpZ25lZDoKLS0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgbGV0IHM6ICZbJGVsZW1fdHldID0gc2xpY2U6OmZyb21fcmF3X3Bh cnRzKAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHRyLCAkaWQ6OmxhbmVzKCkK LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgLy8gdGhpcyBzaG91bGQgYWx3YXlzIHBhbmljIGJlY2F1c2UgdGhlIHNsaWNlCi0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFsaWdubWVudCBkb2VzIG5vdCBtYXRjaCB0aGUg YWxpZ25tZW50Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJlcXVpcmVtZW50cyBm b3IgdGhlIHZlY3RvciB0eXBlOgotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgX3Zl YyA9ICRpZDo6ZnJvbV9zbGljZV9hbGlnbmVkKHMpOwotLSAgICAgICAgICAgICAgICAgICAgICAg IH0KLS0gICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAg ICAgIH0KLS0gICAgICAgIH0KLS0gICAgfTsKLS19Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkv cnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL3NsaWNlL3dyaXRlX3RvX3NsaWNlLnJzIGIvdGhpcmRf cGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL3NsaWNlL3dyaXRlX3RvX3NsaWNlLnJzCi0t LS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvc2xpY2Uvd3JpdGVfdG9f c2xpY2UucnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJk X3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9zbGljZS93cml0ZV90b19zbGljZS5ycwkx OTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsMTk2ICswLDAgQEAKLS0v LyEgSW1wbGVtZW50cyBtZXRob2RzIHRvIHdyaXRlIGEgdmVjdG9yIHR5cGUgdG8gYSBzbGljZS4K LS0KLS1tYWNyb19ydWxlcyEgaW1wbF9zbGljZV93cml0ZV90b19zbGljZSB7Ci0tICAgIChbJGVs ZW1fdHk6aWRlbnQ7ICRlbGVtX2NvdW50OmV4cHJdOiAkaWQ6aWRlbnQgfCAkdGVzdF90dDp0dCkg PT4gewotLSAgICAgICAgaW1wbCAkaWQgewotLSAgICAgICAgICAgIC8vLyBXcml0ZXMgdGhlIHZh bHVlcyBvZiB0aGUgdmVjdG9yIHRvIHRoZSBgc2xpY2VgLgotLSAgICAgICAgICAgIC8vLwotLSAg ICAgICAgICAgIC8vLyAjIFBhbmljcwotLSAgICAgICAgICAgIC8vLwotLSAgICAgICAgICAgIC8v LyBJZiBgc2xpY2UubGVuKCkgPCBTZWxmOjpsYW5lcygpYCBvciBgJnNsaWNlWzBdYCBpcyBub3QK LS0gICAgICAgICAgICAvLy8gYWxpZ25lZCB0byBhbiBgYWxpZ25fb2Y6OjxTZWxmPigpYCBib3Vu ZGFyeS4KLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBwdWIgZm4gd3JpdGVf dG9fc2xpY2VfYWxpZ25lZChzZWxmLCBzbGljZTogJm11dCBbJGVsZW1fdHldKSB7Ci0tICAgICAg ICAgICAgICAgIHVuc2FmZSB7Ci0tICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKHNsaWNlLmxl bigpID49ICRlbGVtX2NvdW50KTsKLS0gICAgICAgICAgICAgICAgICAgIGxldCB0YXJnZXRfcHRy ID0gc2xpY2UuYXNfbXV0X3B0cigpOwotLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0 YXJnZXRfcHRyLmFsaWduX29mZnNldChjcmF0ZTo6bWVtOjphbGlnbl9vZjo6PFNlbGY+KCkpLCAw KTsKLS0gICAgICAgICAgICAgICAgICAgIHNlbGYud3JpdGVfdG9fc2xpY2VfYWxpZ25lZF91bmNo ZWNrZWQoc2xpY2UpOwotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgfQotLQotLSAg ICAgICAgICAgIC8vLyBXcml0ZXMgdGhlIHZhbHVlcyBvZiB0aGUgdmVjdG9yIHRvIHRoZSBgc2xp Y2VgLgotLSAgICAgICAgICAgIC8vLwotLSAgICAgICAgICAgIC8vLyAjIFBhbmljcwotLSAgICAg ICAgICAgIC8vLwotLSAgICAgICAgICAgIC8vLyBJZiBgc2xpY2UubGVuKCkgPCBTZWxmOjpsYW5l cygpYC4KLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBwdWIgZm4gd3JpdGVf dG9fc2xpY2VfdW5hbGlnbmVkKHNlbGYsIHNsaWNlOiAmbXV0IFskZWxlbV90eV0pIHsKLS0gICAg ICAgICAgICAgICAgdW5zYWZlIHsKLS0gICAgICAgICAgICAgICAgICAgIGFzc2VydCEoc2xpY2Uu bGVuKCkgPj0gJGVsZW1fY291bnQpOwotLSAgICAgICAgICAgICAgICAgICAgc2VsZi53cml0ZV90 b19zbGljZV91bmFsaWduZWRfdW5jaGVja2VkKHNsaWNlKTsKLS0gICAgICAgICAgICAgICAgfQot LSAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAvLy8gV3JpdGVzIHRoZSB2YWx1ZXMgb2Yg dGhlIHZlY3RvciB0byB0aGUgYHNsaWNlYC4KLS0gICAgICAgICAgICAvLy8KLS0gICAgICAgICAg ICAvLy8gIyBTYWZldHkKLS0gICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAvLy8gSWYgYHNs aWNlLmxlbigpIDwgU2VsZjo6bGFuZXMoKWAgb3IgYCZzbGljZVswXWAgaXMgbm90Ci0tICAgICAg ICAgICAgLy8vIGFsaWduZWQgdG8gYW4gYGFsaWduX29mOjo8U2VsZj4oKWAgYm91bmRhcnksIHRo ZSBiZWhhdmlvciBpcwotLSAgICAgICAgICAgIC8vLyB1bmRlZmluZWQuCi0tICAgICAgICAgICAg I1tpbmxpbmVdCi0tICAgICAgICAgICAgcHViIHVuc2FmZSBmbiB3cml0ZV90b19zbGljZV9hbGln bmVkX3VuY2hlY2tlZChzZWxmLCBzbGljZTogJm11dCBbJGVsZW1fdHldKSB7Ci0tICAgICAgICAg ICAgICAgIGRlYnVnX2Fzc2VydCEoc2xpY2UubGVuKCkgPj0gJGVsZW1fY291bnQpOwotLSAgICAg ICAgICAgICAgICBsZXQgdGFyZ2V0X3B0ciA9IHNsaWNlLmFzX211dF9wdHIoKTsKLS0gICAgICAg ICAgICAgICAgZGVidWdfYXNzZXJ0X2VxISh0YXJnZXRfcHRyLmFsaWduX29mZnNldChjcmF0ZTo6 bWVtOjphbGlnbl9vZjo6PFNlbGY+KCkpLCAwKTsKLS0KLS0gICAgICAgICAgICAgICAgI1thbGxv dyhjbGlwcHk6OmNhc3RfcHRyX2FsaWdubWVudCldCi0tICAgICAgICAgICAgICAgICNbYWxsb3co Y2xpcHB5OjpjYXN0X3B0cl9hbGlnbm1lbnQpXQotLSAgICAgICAgICAgICAgICAjW2FsbG93KGNs aXBweTo6Y2FzdF9wdHJfYWxpZ25tZW50KV0KLS0gICAgICAgICAgICAgICAgI1thbGxvdyhjbGlw cHk6OmNhc3RfcHRyX2FsaWdubWVudCldCi0tICAgICAgICAgICAgICAgICoodGFyZ2V0X3B0ciBh cyAqbXV0IFNlbGYpID0gc2VsZjsKLS0gICAgICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgLy8v IFdyaXRlcyB0aGUgdmFsdWVzIG9mIHRoZSB2ZWN0b3IgdG8gdGhlIGBzbGljZWAuCi0tICAgICAg ICAgICAgLy8vCi0tICAgICAgICAgICAgLy8vICMgU2FmZXR5Ci0tICAgICAgICAgICAgLy8vCi0t ICAgICAgICAgICAgLy8vIElmIGBzbGljZS5sZW4oKSA8IFNlbGY6OmxhbmVzKClgIHRoZSBiZWhh dmlvciBpcyB1bmRlZmluZWQuCi0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAg cHViIHVuc2FmZSBmbiB3cml0ZV90b19zbGljZV91bmFsaWduZWRfdW5jaGVja2VkKHNlbGYsIHNs aWNlOiAmbXV0IFskZWxlbV90eV0pIHsKLS0gICAgICAgICAgICAgICAgZGVidWdfYXNzZXJ0IShz bGljZS5sZW4oKSA+PSAkZWxlbV9jb3VudCk7Ci0tICAgICAgICAgICAgICAgIGxldCB0YXJnZXRf cHRyID0gc2xpY2UuYXNfbXV0X3B0cigpLmNhc3QoKTsKLS0gICAgICAgICAgICAgICAgbGV0IHNl bGZfcHRyID0gJnNlbGYgYXMgKmNvbnN0IFNlbGYgYXMgKmNvbnN0IHU4OwotLSAgICAgICAgICAg ICAgICBjcmF0ZTo6cHRyOjpjb3B5X25vbm92ZXJsYXBwaW5nKHNlbGZfcHRyLCB0YXJnZXRfcHRy LCBjcmF0ZTo6bWVtOjpzaXplX29mOjo8U2VsZj4oKSk7Ci0tICAgICAgICAgICAgfQotLSAgICAg ICAgfQotLQotLSAgICAgICAgdGVzdF9pZiEgewotLSAgICAgICAgICAgICR0ZXN0X3R0OgotLSAg ICAgICAgICAgIHBhc3RlOjppdGVtISB7Ci0tICAgICAgICAgICAgICAgIC8vIENvbXBhcmlzb25z IHVzZSBpbnRlZ2VyIGNhc3RzIHdpdGhpbiBtYW50aXNzYV4xIHJhbmdlLgotLSAgICAgICAgICAg ICAgICAjW2FsbG93KGNsaXBweTo6ZmxvYXRfY21wKV0KLS0gICAgICAgICAgICAgICAgcHViIG1v ZCBbPCRpZCBfc2xpY2Vfd3JpdGVfdG9fc2xpY2U+XSB7Ci0tICAgICAgICAgICAgICAgICAgICB1 c2Ugc3VwZXI6Oio7Ci0tICAgICAgICAgICAgICAgICAgICB1c2UgY3JhdGU6Oml0ZXI6Okl0ZXJh dG9yOwotLQotLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2gg PSAid2FzbTMyIiksIHRlc3QpXQotLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cih0YXJn ZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCi0tICAgICAgICAgICAgICAg ICAgICBmbiB3cml0ZV90b19zbGljZV91bmFsaWduZWQoKSB7Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgbGV0IG11dCB1bmFsaWduZWQgPSBbMCBhcyAkZWxlbV90eTsgJGlkOjpsYW5lcygpICsg MV07Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHZlYyA9ICRpZDo6c3BsYXQoNDIgYXMg JGVsZW1fdHkpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIHZlYy53cml0ZV90b19zbGljZV91 bmFsaWduZWQoJm11dCB1bmFsaWduZWRbMS4uXSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAg Zm9yIChpbmRleCwgJmIpIGluIHVuYWxpZ25lZC5pdGVyKCkuZW51bWVyYXRlKCkgewotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICBpZiBpbmRleCA9PSAwIHsKLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoYiwgMCBhcyAkZWxlbV90eSk7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBhc3NlcnRfZXEhKGIsIDQyIGFzICRlbGVtX3R5KTsKLS0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGFzc2VydF9lcSEoYiwgdmVjLmV4dHJhY3QoaW5kZXggLSAxKSk7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0t ICAgICAgICAgICAgICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTog d2FzbS1iaW5kZ2VuLXRlc3QgZG9lcyBub3Qgc3VwcG9ydCAjW3Nob3VsZF9wYW5pY10KLS0gICAg ICAgICAgICAgICAgICAgIC8vICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIp LCB0ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgIC8vICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2gg PSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQotLSAgICAgICAgICAgICAgICAgICAgI1tj Zmcobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpKV0KLS0gICAgICAgICAgICAgICAgICAgICNb dGVzdF0KLS0gICAgICAgICAgICAgICAgICAgICNbc2hvdWxkX3BhbmljXQotLSAgICAgICAgICAg ICAgICAgICAgZm4gd3JpdGVfdG9fc2xpY2VfdW5hbGlnbmVkX2ZhaWwoKSB7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgbGV0IG11dCB1bmFsaWduZWQgPSBbMCBhcyAkZWxlbV90eTsgJGlkOjps YW5lcygpICsgMV07Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHZlYyA9ICRpZDo6c3Bs YXQoNDIgYXMgJGVsZW1fdHkpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIHZlYy53cml0ZV90 b19zbGljZV91bmFsaWduZWQoJm11dCB1bmFsaWduZWRbMi4uXSk7Ci0tICAgICAgICAgICAgICAg ICAgICB9Ci0tCi0tICAgICAgICAgICAgICAgICAgICB1bmlvbiBBIHsKLS0gICAgICAgICAgICAg ICAgICAgICAgICBkYXRhOiBbJGVsZW1fdHk7IDIgKiAkaWQ6OmxhbmVzKCldLAotLSAgICAgICAg ICAgICAgICAgICAgICAgIF92ZWM6ICRpZCwKLS0gICAgICAgICAgICAgICAgICAgIH0KLS0KLS0g ICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIp LCB0ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAi d2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQotLSAgICAgICAgICAgICAgICAgICAgZm4gd3Jp dGVfdG9fc2xpY2VfYWxpZ25lZCgpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0 IGFsaWduZWQgPSBBIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YTogWzAgYXMg JGVsZW1fdHk7IDIgKiAkaWQ6OmxhbmVzKCldLAotLSAgICAgICAgICAgICAgICAgICAgICAgIH07 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHZlYyA9ICRpZDo6c3BsYXQoNDIgYXMgJGVs ZW1fdHkpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIHVuc2FmZSB7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHZlYy53cml0ZV90b19zbGljZV9hbGlnbmVkKAotLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgJm11dCBhbGlnbmVkLmRhdGFbJGlkOjpsYW5lcygpLi5dCi0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGZvciAoaWR4LCAmYikgaW4gYWxpZ25lZC5kYXRhLml0ZXIoKS5lbnVtZXJhdGUoKSB7Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBpZHggPCAkaWQ6OmxhbmVzKCkgewot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoYiwgMCBhcyAk ZWxlbV90eSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoYiwgNDIgYXMgJGVs ZW1fdHkpOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEo Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGIsIHZlYy5leHRyYWN0 KGlkeCAtICRpZDo6bGFuZXMoKSkKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICApOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAg ICAgICAgICAgfQotLQotLSAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IHdhc20tYmluZGdl bi10ZXN0IGRvZXMgbm90IHN1cHBvcnQgI1tzaG91bGRfcGFuaWNdCi0tICAgICAgICAgICAgICAg ICAgICAvLyAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldCi0t ICAgICAgICAgICAgICAgICAgICAvLyAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIs IHdhc21fYmluZGdlbl90ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgICNbY2ZnKG5vdCh0YXJn ZXRfYXJjaCA9ICJ3YXNtMzIiKSldCi0tICAgICAgICAgICAgICAgICAgICAjW3Rlc3RdCi0tICAg ICAgICAgICAgICAgICAgICAjW3Nob3VsZF9wYW5pY10KLS0gICAgICAgICAgICAgICAgICAgIGZu IHdyaXRlX3RvX3NsaWNlX2FsaWduZWRfZmFpbF9sYW5lcygpIHsKLS0gICAgICAgICAgICAgICAg ICAgICAgICBsZXQgbXV0IGFsaWduZWQgPSBBIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgZGF0YTogWzAgYXMgJGVsZW1fdHk7IDIgKiAkaWQ6OmxhbmVzKCldLAotLSAgICAgICAgICAg ICAgICAgICAgICAgIH07Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHZlYyA9ICRpZDo6 c3BsYXQoNDIgYXMgJGVsZW1fdHkpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIHVuc2FmZSB7 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlYy53cml0ZV90b19zbGljZV9hbGlnbmVk KAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm11dCBhbGlnbmVkLmRhdGFbMiAq ICRpZDo6bGFuZXMoKS4uXQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICApCi0tICAgICAg ICAgICAgICAgICAgICAgICAgfTsKLS0gICAgICAgICAgICAgICAgICAgIH0KLS0KLS0gICAgICAg ICAgICAgICAgICAgIC8vIEZJWE1FOiB3YXNtLWJpbmRnZW4tdGVzdCBkb2VzIG5vdCBzdXBwb3J0 ICNbc2hvdWxkX3BhbmljXQotLSAgICAgICAgICAgICAgICAgICAgLy8gI1tjZmdfYXR0cihub3Qo dGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXQotLSAgICAgICAgICAgICAgICAgICAgLy8g I1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCi0t ICAgICAgICAgICAgICAgICAgICAjW2NmZyhub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIikpXQot LSAgICAgICAgICAgICAgICAgICAgI1t0ZXN0XQotLSAgICAgICAgICAgICAgICAgICAgI1tzaG91 bGRfcGFuaWNdCi0tICAgICAgICAgICAgICAgICAgICBmbiB3cml0ZV90b19zbGljZV9hbGlnbmVk X2ZhaWxfYWxpZ24oKSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgdW5zYWZlIHsKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBhbGlnbmVkID0gQSB7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBkYXRhOiBbMCBhcyAkZWxlbV90eTsgMiAqICRpZDo6bGFu ZXMoKV0sCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07Ci0tCi0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgIC8vIGdldCBhIHBvaW50ZXIgdG8gdGhlIGZyb250IG9mIGRhdGEKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHB0cjogKm11dCAkZWxlbV90eQotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBhbGlnbmVkLmRhdGEuYXNfbXV0X3B0cigpIGFz ICptdXQgJGVsZW1fdHk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG9mZnNldCBw b2ludGVyIGJ5IG9uZSBlbGVtZW50Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBw dHIgPSBwdHIud3JhcHBpbmdfYWRkKDEpOwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICBpZiBwdHIuYWxpZ25fb2Zmc2V0KGNyYXRlOjptZW06OmFsaWduX29mOjo8JGlkPigpKQotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT0gMCB7Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAvLyB0aGUgcG9pbnRlciBpcyBwcm9wZXJseSBhbGlnbmVkLCBzbwotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gd3JpdGVfdG9fc2xpY2VfYWxpZ25lZCB3 b24ndCBmYWlsIGhlcmUgKGUuZy4KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8v IHRoaXMgY2FuIGhhcHBlbiBmb3IgaTEyOHgxKS4gU28gd2UgcGFuaWMgdG8KLS0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIC8vIG1ha2UgdGhlICJzaG91bGRfZmFpbCIgdGVzdCBwYXNz OgotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFuaWMhKCJvayIpOwotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAg IC8vIGNyZWF0ZSBhIHNsaWNlIC0gdGhpcyBpcyBzYWZlLCBiZWNhdXNlIHRoZQotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAvLyBlbGVtZW50cyBvZiB0aGUgc2xpY2UgZXhpc3QsIGFyZSBw cm9wZXJseQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBpbml0aWFsaXplZCwgYW5k IHByb3Blcmx5IGFsaWduZWQ6Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBzOiAm bXV0IFskZWxlbV90eV0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gc2xpY2U6 OmZyb21fcmF3X3BhcnRzX211dChwdHIsICRpZDo6bGFuZXMoKSk7Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgIC8vIHRoaXMgc2hvdWxkIGFsd2F5cyBwYW5pYyBiZWNhdXNlIHRoZSBzbGlj ZQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBhbGlnbm1lbnQgZG9lcyBub3QgbWF0 Y2ggdGhlIGFsaWdubWVudAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByZXF1aXJl bWVudHMgZm9yIHRoZSB2ZWN0b3IgdHlwZToKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg bGV0IHZlYyA9ICRpZDo6c3BsYXQoNDIgYXMgJGVsZW1fdHkpOwotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICB2ZWMud3JpdGVfdG9fc2xpY2VfYWxpZ25lZChzKTsKLS0gICAgICAgICAgICAg ICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgIH0K LS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgIH07Ci0tfQotZGlmZiAtTnJidSBhL3Ro aXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9zbGljZS5ycyBiL3RoaXJkX3BhcnR5 L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9zbGljZS5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVz dC9wYWNrZWRfc2ltZC9zcmMvYXBpL3NsaWNlLnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAw MDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvc2xp Y2UucnMJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDcgKzAsMCBA QAotLS8vISBTbGljZSBmcm9tL3RvIG1ldGhvZHMKLS0KLS0jW21hY3JvX3VzZV0KLS1tb2QgZnJv bV9zbGljZTsKLS0KLS0jW21hY3JvX3VzZV0KLS1tb2Qgd3JpdGVfdG9fc2xpY2U7Ci1kaWZmIC1O cmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL3N3YXBfYnl0ZXMucnMg Yi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvc3dhcF9ieXRlcy5ycwotLS0t IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL3N3YXBfYnl0ZXMucnMJMjAy NS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3Qv cGFja2VkX3NpbWQvc3JjL2FwaS9zd2FwX2J5dGVzLnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAw MDAwMDAwICswMzAwCi1AQCAtMSwxOTIgKzAsMCBAQAotLS8vISBIb3Jpem9udGFsIHN3YXAgYnl0 ZXMKLS0KLS1tYWNyb19ydWxlcyEgaW1wbF9zd2FwX2J5dGVzIHsKLS0gICAgKFskZWxlbV90eTpp ZGVudDsgJGVsZW1fY291bnQ6ZXhwcl06ICRpZDppZGVudCB8ICR0ZXN0X3R0OnR0KSA9PiB7Ci0t ICAgICAgICBpbXBsICRpZCB7Ci0tICAgICAgICAgICAgLy8vIFJldmVyc2VzIHRoZSBieXRlIG9y ZGVyIG9mIHRoZSB2ZWN0b3IuCi0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAg cHViIGZuIHN3YXBfYnl0ZXMoc2VsZikgLT4gU2VsZiB7Ci0tICAgICAgICAgICAgICAgIHN1cGVy Ojpjb2RlZ2VuOjpzd2FwX2J5dGVzOjpTd2FwQnl0ZXM6OnN3YXBfYnl0ZXMoc2VsZikKLS0gICAg ICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgLy8vIENvbnZlcnRzIHNlbGYgdG8gbGl0dGxlIGVu ZGlhbiBmcm9tIHRoZSB0YXJnZXQncyBlbmRpYW5uZXNzLgotLSAgICAgICAgICAgIC8vLwotLSAg ICAgICAgICAgIC8vLyBPbiBsaXR0bGUgZW5kaWFuIHRoaXMgaXMgYSBuby1vcC4gT24gYmlnIGVu ZGlhbiB0aGUgYnl0ZXMgYXJlCi0tICAgICAgICAgICAgLy8vIHN3YXBwZWQuCi0tICAgICAgICAg ICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgcHViIGZuIHRvX2xlKHNlbGYpIC0+IFNlbGYgewot LSAgICAgICAgICAgICAgICAjW2NmZyh0YXJnZXRfZW5kaWFuID0gImxpdHRsZSIpXQotLSAgICAg ICAgICAgICAgICB7Ci0tICAgICAgICAgICAgICAgICAgICBzZWxmCi0tICAgICAgICAgICAgICAg IH0KLS0gICAgICAgICAgICAgICAgI1tjZmcobm90KHRhcmdldF9lbmRpYW4gPSAibGl0dGxlIikp XQotLSAgICAgICAgICAgICAgICB7Ci0tICAgICAgICAgICAgICAgICAgICBzZWxmLnN3YXBfYnl0 ZXMoKQotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgfQotLQotLSAgICAgICAgICAg IC8vLyBDb252ZXJ0cyBzZWxmIHRvIGJpZyBlbmRpYW4gZnJvbSB0aGUgdGFyZ2V0J3MgZW5kaWFu bmVzcy4KLS0gICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAvLy8gT24gYmlnIGVuZGlhbiB0 aGlzIGlzIGEgbm8tb3AuIE9uIGxpdHRsZSBlbmRpYW4gdGhlIGJ5dGVzIGFyZQotLSAgICAgICAg ICAgIC8vLyBzd2FwcGVkLgotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIHB1 YiBmbiB0b19iZShzZWxmKSAtPiBTZWxmIHsKLS0gICAgICAgICAgICAgICAgI1tjZmcodGFyZ2V0 X2VuZGlhbiA9ICJiaWciKV0KLS0gICAgICAgICAgICAgICAgewotLSAgICAgICAgICAgICAgICAg ICAgc2VsZgotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICNbY2ZnKG5vdCh0 YXJnZXRfZW5kaWFuID0gImJpZyIpKV0KLS0gICAgICAgICAgICAgICAgewotLSAgICAgICAgICAg ICAgICAgICAgc2VsZi5zd2FwX2J5dGVzKCkKLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAg ICAgIH0KLS0KLS0gICAgICAgICAgICAvLy8gQ29udmVydHMgYSB2ZWN0b3IgZnJvbSBsaXR0bGUg ZW5kaWFuIHRvIHRoZSB0YXJnZXQncyBlbmRpYW5uZXNzLgotLSAgICAgICAgICAgIC8vLwotLSAg ICAgICAgICAgIC8vLyBPbiBsaXR0bGUgZW5kaWFuIHRoaXMgaXMgYSBuby1vcC4gT24gYmlnIGVu ZGlhbiB0aGUgYnl0ZXMgYXJlCi0tICAgICAgICAgICAgLy8vIHN3YXBwZWQuCi0tICAgICAgICAg ICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgcHViIGZuIGZyb21fbGUoeDogU2VsZikgLT4gU2Vs ZiB7Ci0tICAgICAgICAgICAgICAgICNbY2ZnKHRhcmdldF9lbmRpYW4gPSAibGl0dGxlIildCi0t ICAgICAgICAgICAgICAgIHsKLS0gICAgICAgICAgICAgICAgICAgIHgKLS0gICAgICAgICAgICAg ICAgfQotLSAgICAgICAgICAgICAgICAjW2NmZyhub3QodGFyZ2V0X2VuZGlhbiA9ICJsaXR0bGUi KSldCi0tICAgICAgICAgICAgICAgIHsKLS0gICAgICAgICAgICAgICAgICAgIHguc3dhcF9ieXRl cygpCi0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICB9Ci0tCi0tICAgICAgICAgICAg Ly8vIENvbnZlcnRzIGEgdmVjdG9yIGZyb20gYmlnIGVuZGlhbiB0byB0aGUgdGFyZ2V0J3MgZW5k aWFubmVzcy4KLS0gICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAvLy8gT24gYmlnIGVuZGlh biB0aGlzIGlzIGEgbm8tb3AuIE9uIGxpdHRsZSBlbmRpYW4gdGhlIGJ5dGVzIGFyZQotLSAgICAg ICAgICAgIC8vLyBzd2FwcGVkLgotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAg IHB1YiBmbiBmcm9tX2JlKHg6IFNlbGYpIC0+IFNlbGYgewotLSAgICAgICAgICAgICAgICAjW2Nm Zyh0YXJnZXRfZW5kaWFuID0gImJpZyIpXQotLSAgICAgICAgICAgICAgICB7Ci0tICAgICAgICAg ICAgICAgICAgICB4Ci0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgI1tjZmco bm90KHRhcmdldF9lbmRpYW4gPSAiYmlnIikpXQotLSAgICAgICAgICAgICAgICB7Ci0tICAgICAg ICAgICAgICAgICAgICB4LnN3YXBfYnl0ZXMoKQotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAg ICAgICAgfQotLSAgICAgICAgfQotLQotLSAgICAgICAgdGVzdF9pZiEgewotLSAgICAgICAgICAg ICR0ZXN0X3R0OgotLSAgICAgICAgICAgIHBhc3RlOjppdGVtISB7Ci0tICAgICAgICAgICAgICAg IHB1YiBtb2QgWzwkaWQgX3N3YXBfYnl0ZXM+XSB7Ci0tICAgICAgICAgICAgICAgICAgICB1c2Ug c3VwZXI6Oio7Ci0tCi0tICAgICAgICAgICAgICAgICAgICBjb25zdCBCWVRFUzogW3U4OyA2NF0g PSBbCi0tICAgICAgICAgICAgICAgICAgICAgICAgMCwgMSwgMiwgMywgNCwgNSwgNiwgNywKLS0g ICAgICAgICAgICAgICAgICAgICAgICA4LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LAotLSAg ICAgICAgICAgICAgICAgICAgICAgIDE2LCAxNywgMTgsIDE5LCAyMCwgMjEsIDIyLCAyMywKLS0g ICAgICAgICAgICAgICAgICAgICAgICAyNCwgMjUsIDI2LCAyNywgMjgsIDI5LCAzMCwgMzEsCi0t ICAgICAgICAgICAgICAgICAgICAgICAgMzIsIDMzLCAzNCwgMzUsIDM2LCAzNywgMzgsIDM5LAot LSAgICAgICAgICAgICAgICAgICAgICAgIDQwLCA0MSwgNDIsIDQzLCA0NCwgNDUsIDQ2LCA0NywK LS0gICAgICAgICAgICAgICAgICAgICAgICA0OCwgNDksIDUwLCA1MSwgNTIsIDUzLCA1NCwgNTUs Ci0tICAgICAgICAgICAgICAgICAgICAgICAgNTYsIDU3LCA1OCwgNTksIDYwLCA2MSwgNjIsIDYz LAotLSAgICAgICAgICAgICAgICAgICAgXTsKLS0KLS0gICAgICAgICAgICAgICAgICAgIG1hY3Jv X3J1bGVzISBzd2FwIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAoJGZ1bmM6IGlkZW50KSA9 PiB7ewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBjYXRjaCBwb3NzaWJsZSBmdXR1 cmUgPjUxMiB2ZWN0b3JzCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCEobWVt OjpzaXplX29mOjo8JGlkPigpIDw9IDY0KTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgbGV0IG11dCBhY3R1YWwgPSBCWVRFUzsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg bGV0IGVsZW1zOiAmbXV0IFskZWxlbV90eV0gPSB1bnNhZmUgewotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc2xpY2U6OmZyb21fcmF3X3BhcnRzX211dCgKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBhY3R1YWwuYXNfbXV0X3B0cigpIGFzICptdXQgJGVsZW1f dHksCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGlkOjpsYW5lcygpLAot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9OwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdmVjID0gJGlk Ojpmcm9tX3NsaWNlX3VuYWxpZ25lZChlbGVtcyk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgICRpZDo6JGZ1bmModmVjKS53cml0ZV90b19zbGljZV91bmFsaWduZWQoZWxlbXMpOwotLQot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3R1YWwKLS0gICAgICAgICAgICAgICAgICAg ICAgICB9fTsKLS0gICAgICAgICAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAgICAgICAg IG1hY3JvX3J1bGVzISB0ZXN0X3N3YXAgewotLSAgICAgICAgICAgICAgICAgICAgICAgICgkZnVu YzogaWRlbnQpID0+IHt7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBhY3R1YWwg PSBzd2FwISgkZnVuYyk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBleHBlY3Rl ZCA9Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCWVRFUy5pdGVyKCkucmV2KCkK LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5za2lwKDY0IC0gY3JhdGU6Om1lbTo6 c2l6ZV9vZjo6PCRpZD4oKSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCEo YWN0dWFsLml0ZXIoKS56aXAoZXhwZWN0ZWQpCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgLmFsbCh8KHgsIHkpfCB4ID09IHkpKTsKLS0gICAgICAgICAgICAgICAgICAgICAg ICB9fTsKLS0gICAgICAgICAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAgICAgICAgIG1h Y3JvX3J1bGVzISB0ZXN0X25vX3N3YXAgewotLSAgICAgICAgICAgICAgICAgICAgICAgICgkZnVu YzogaWRlbnQpID0+IHt7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBhY3R1YWwg PSBzd2FwISgkZnVuYyk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBleHBlY3Rl ZCA9IEJZVEVTLml0ZXIoKQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnRha2Uo bWVtOjpzaXplX29mOjo8JGlkPigpKTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg YXNzZXJ0IShhY3R1YWwuaXRlcigpLnppcChleHBlY3RlZCkKLS0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAuYWxsKHwoeCwgeSl8IHggPT0geSkpOwotLSAgICAgICAgICAgICAg ICAgICAgICAgIH19OwotLSAgICAgICAgICAgICAgICAgICAgfQotLQotLSAgICAgICAgICAgICAg ICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXSAjW2Nm Z19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KLS0gICAg ICAgICAgICAgICAgICAgIGZuIHN3YXBfYnl0ZXMoKSB7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgdGVzdF9zd2FwIShzd2FwX2J5dGVzKTsKLS0gICAgICAgICAgICAgICAgICAgIH0KLS0KLS0g ICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIp LCB0ZXN0KV0gI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5f dGVzdCldCi0tICAgICAgICAgICAgICAgICAgICBmbiB0b19sZSgpIHsKLS0gICAgICAgICAgICAg ICAgICAgICAgICAjW2NmZyh0YXJnZXRfZW5kaWFuID0gImxpdHRsZSIpXQotLSAgICAgICAgICAg ICAgICAgICAgICAgIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9ub19zd2Fw ISh0b19sZSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAg ICAgICAgICNbY2ZnKG5vdCh0YXJnZXRfZW5kaWFuID0gImxpdHRsZSIpKV0KLS0gICAgICAgICAg ICAgICAgICAgICAgICB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3Rfc3dhcCEo dG9fbGUpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAg IH0KLS0KLS0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0g Indhc20zMiIpLCB0ZXN0KV0gI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNt X2JpbmRnZW5fdGVzdCldCi0tICAgICAgICAgICAgICAgICAgICBmbiB0b19iZSgpIHsKLS0gICAg ICAgICAgICAgICAgICAgICAgICAjW2NmZyh0YXJnZXRfZW5kaWFuID0gImJpZyIpXQotLSAgICAg ICAgICAgICAgICAgICAgICAgIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9u b19zd2FwISh0b19iZSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAg ICAgICAgICAgICAgICNbY2ZnKG5vdCh0YXJnZXRfZW5kaWFuID0gImJpZyIpKV0KLS0gICAgICAg ICAgICAgICAgICAgICAgICB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3Rfc3dh cCEodG9fYmUpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAg ICAgIH0KLS0KLS0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNo ID0gIndhc20zMiIpLCB0ZXN0KV0gI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3 YXNtX2JpbmRnZW5fdGVzdCldCi0tICAgICAgICAgICAgICAgICAgICBmbiBmcm9tX2xlKCkgewot LSAgICAgICAgICAgICAgICAgICAgICAgICNbY2ZnKHRhcmdldF9lbmRpYW4gPSAibGl0dGxlIild Ci0tICAgICAgICAgICAgICAgICAgICAgICAgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICB0ZXN0X25vX3N3YXAhKGZyb21fbGUpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0g ICAgICAgICAgICAgICAgICAgICAgICAjW2NmZyhub3QodGFyZ2V0X2VuZGlhbiA9ICJsaXR0bGUi KSldCi0tICAgICAgICAgICAgICAgICAgICAgICAgewotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICB0ZXN0X3N3YXAhKGZyb21fbGUpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0g ICAgICAgICAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIo bm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0gI1tjZmdfYXR0cih0YXJnZXRfYXJj aCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCi0tICAgICAgICAgICAgICAgICAgICBm biBmcm9tX2JlKCkgewotLSAgICAgICAgICAgICAgICAgICAgICAgICNbY2ZnKHRhcmdldF9lbmRp YW4gPSAiYmlnIildCi0tICAgICAgICAgICAgICAgICAgICAgICAgewotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICB0ZXN0X25vX3N3YXAhKGZyb21fYmUpOwotLSAgICAgICAgICAgICAgICAg ICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgICAgICAjW2NmZyhub3QodGFyZ2V0X2VuZGlh biA9ICJiaWciKSldCi0tICAgICAgICAgICAgICAgICAgICAgICAgewotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICB0ZXN0X3N3YXAhKGZyb21fYmUpOwotLSAgICAgICAgICAgICAgICAgICAg ICAgIH0KLS0gICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgfQotLSAgICAg ICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgfTsKLS19Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFy dHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRf c2ltZC9zcmMvYXBpLnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9h cGkucnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3Bh cnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS5ycwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAw MDAwMCArMDMwMAotQEAgLTEsMzA4ICswLDAgQEAKLS0vLyEgSW1wbGVtZW50cyB0aGUgU2ltZDxb VDsgTl0+IEFQSXMKLS0KLS0jW21hY3JvX3VzZV0KLS1tb2QgYml0bWFzazsKLS1wdWIoY3JhdGUp IG1vZCBjYXN0OwotLSNbbWFjcm9fdXNlXQotLW1vZCBjbXA7Ci0tI1ttYWNyb191c2VdCi0tbW9k IGRlZmF1bHQ7Ci0tI1ttYWNyb191c2VdCi0tbW9kIGZtdDsKLS0jW21hY3JvX3VzZV0KLS1tb2Qg ZnJvbTsKLS0jW21hY3JvX3VzZV0KLS1tb2QgaGFzaDsKLS0jW21hY3JvX3VzZV0KLS1tb2QgbWF0 aDsKLS0jW21hY3JvX3VzZV0KLS1tb2QgbWluaW1hbDsKLS0jW21hY3JvX3VzZV0KLS1tb2Qgb3Bz OwotLSNbbWFjcm9fdXNlXQotLW1vZCBwdHI7Ci0tI1ttYWNyb191c2VdCi0tbW9kIHJlZHVjdGlv bnM7Ci0tI1ttYWNyb191c2VdCi0tbW9kIHNlbGVjdDsKLS0jW21hY3JvX3VzZV0KLS1tb2Qgc2h1 ZmZsZTsKLS0jW21hY3JvX3VzZV0KLS1tb2Qgc2h1ZmZsZTFfZHluOwotLSNbbWFjcm9fdXNlXQot LW1vZCBzbGljZTsKLS0jW21hY3JvX3VzZV0KLS1tb2Qgc3dhcF9ieXRlczsKLS0jW21hY3JvX3Vz ZV0KLS1tb2QgYml0X21hbmlwOwotLQotLSNbY2ZnKGZlYXR1cmUgPSAiaW50b19iaXRzIildCi0t cHViKGNyYXRlKSBtb2QgaW50b19iaXRzOwotLQotLW1hY3JvX3J1bGVzISBpbXBsX2kgewotLSAg ICAoWyRlbGVtX3R5OmlkZW50OyAkZWxlbV9uOmV4cHJdOiAkdHVwbGVfaWQ6aWRlbnQsICRtYXNr X3R5OmlkZW50Ci0tICAgICB8ICRpZWxlbV90eTppZGVudCwgJGliaXRtYXNrX3R5OmlkZW50IHwg JHRlc3RfdHQ6dHQgfCAkKCRlbGVtX2lkczppZGVudCksKgotLSAgICAgfCBGcm9tOiAkKCRmcm9t X3ZlY190eTppZGVudCksKiB8ICQoI1skZG9jOm1ldGFdKSopID0+IHsKLS0gICAgICAgIGltcGxf bWluaW1hbF9pdWYhKFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICRpZWxlbV90eSB8 ICR0ZXN0X3R0Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICB8ICQoJGVsZW1faWRzKSwqIHwg JCgjWyRkb2NdKSopOwotLSAgICAgICAgaW1wbF9vcHNfdmVjdG9yX2FyaXRobWV0aWMhKFskZWxl bV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsKLS0gICAgICAgIGltcGxfb3Bz X3NjYWxhcl9hcml0aG1ldGljIShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVz dF90dCk7Ci0tICAgICAgICBpbXBsX29wc192ZWN0b3JfYml0d2lzZSEoCi0tICAgICAgICAgICAg WyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQgfCAoISgwIGFzICRlbGVt X3R5KSwgMCkKLS0gICAgICAgICk7Ci0tICAgICAgICBpbXBsX29wc19zY2FsYXJfYml0d2lzZSEo Ci0tICAgICAgICAgICAgWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQg fCAoISgwIGFzICRlbGVtX3R5KSwgMCkKLS0gICAgICAgICk7Ci0tICAgICAgICBpbXBsX29wc192 ZWN0b3Jfc2hpZnRzIShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCk7 Ci0tICAgICAgICBpbXBsX29wc19zY2FsYXJfc2hpZnRzIShbJGVsZW1fdHk7ICRlbGVtX25dOiAk dHVwbGVfaWQgfCAkdGVzdF90dCk7Ci0tICAgICAgICBpbXBsX29wc192ZWN0b3Jfcm90YXRlcyEo WyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOwotLSAgICAgICAgaW1w bF9vcHNfdmVjdG9yX25lZyEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3Rf dHQpOwotLSAgICAgICAgaW1wbF9vcHNfdmVjdG9yX2ludF9taW5fbWF4ISgKLS0gICAgICAgICAg ICBbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dAotLSAgICAgICAgKTsK LS0gICAgICAgIGltcGxfcmVkdWN0aW9uX2ludGVnZXJfYXJpdGhtZXRpYyEoCi0tICAgICAgICAg ICAgWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJGllbGVtX3R5IHwgJHRlc3RfdHQK LS0gICAgICAgICk7Ci0tICAgICAgICBpbXBsX3JlZHVjdGlvbl9taW5fbWF4ISgKLS0gICAgICAg ICAgICBbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkaWVsZW1fdHkgfCAkdGVzdF90 dAotLSAgICAgICAgKTsKLS0gICAgICAgIGltcGxfcmVkdWN0aW9uX2JpdHdpc2UhKAotLSAgICAg ICAgICAgIFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICRpZWxlbV90eSB8ICR0ZXN0 X3R0Ci0tICAgICAgICAgICAgfCAofHh8eyB4IGFzICRlbGVtX3R5IH0pIHwgKCEoMCBhcyAkZWxl bV90eSksIDApCi0tICAgICAgICApOwotLSAgICAgICAgaW1wbF9mbXRfZGVidWchKFskZWxlbV90 eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsKLS0gICAgICAgIGltcGxfZm10X2xv d2VyX2hleCEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOwotLSAg ICAgICAgaW1wbF9mbXRfdXBwZXJfaGV4IShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQg fCAkdGVzdF90dCk7Ci0tICAgICAgICBpbXBsX2ZtdF9vY3RhbCEoWyRlbGVtX3R5OyAkZWxlbV9u XTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOwotLSAgICAgICAgaW1wbF9mbXRfYmluYXJ5IShbJGVs ZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCk7Ci0tICAgICAgICBpbXBsX2Zy b21fYXJyYXkhKFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0IHwgKDEs IDEpKTsKLS0gICAgICAgIGltcGxfZnJvbV92ZWN0b3JzISgKLS0gICAgICAgICAgICBbJGVsZW1f dHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCB8ICQoJGZyb21fdmVjX3R5KSwqCi0t ICAgICAgICApOwotLSAgICAgICAgaW1wbF9kZWZhdWx0IShbJGVsZW1fdHk7ICRlbGVtX25dOiAk dHVwbGVfaWQgfCAkdGVzdF90dCk7Ci0tICAgICAgICBpbXBsX2hhc2ghKFskZWxlbV90eTsgJGVs ZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsKLS0gICAgICAgIGltcGxfc2xpY2VfZnJvbV9z bGljZSEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOwotLSAgICAg ICAgaW1wbF9zbGljZV93cml0ZV90b19zbGljZSEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxl X2lkIHwgJHRlc3RfdHQpOwotLSAgICAgICAgaW1wbF9zd2FwX2J5dGVzIShbJGVsZW1fdHk7ICRl bGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCk7Ci0tICAgICAgICBpbXBsX2JpdF9tYW5pcCEo WyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOwotLSAgICAgICAgaW1w bF9zaHVmZmxlMV9keW4hKFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0 KTsKLS0gICAgICAgIGltcGxfY21wX3BhcnRpYWxfZXEhKAotLSAgICAgICAgICAgIFskZWxlbV90 eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0IHwgKDAsIDEpCi0tICAgICAgICApOwot LSAgICAgICAgaW1wbF9jbXBfZXEhKFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0 ZXN0X3R0IHwgKDAsIDEpKTsKLS0gICAgICAgIGltcGxfY21wX3ZlcnRpY2FsISgKLS0gICAgICAg ICAgICBbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQsICRtYXNrX3R5LCBmYWxzZSwgKDEs IDApIHwgJHRlc3RfdHQKLS0gICAgICAgICk7Ci0tICAgICAgICBpbXBsX2NtcF9wYXJ0aWFsX29y ZCEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOwotLSAgICAgICAg aW1wbF9jbXBfb3JkIShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCB8 ICgwLCAxKSk7Ci0tICAgICAgICBpbXBsX2JpdG1hc2shKCR0dXBsZV9pZCB8ICRpYml0bWFza190 eSB8ICgtMSwgMCkgfCAkdGVzdF90dCk7Ci0tCi0tICAgICAgICB0ZXN0X3NlbGVjdCEoJGVsZW1f dHksICRtYXNrX3R5LCAkdHVwbGVfaWQsICgxLCAyKSB8ICR0ZXN0X3R0KTsKLS0gICAgICAgIHRl c3RfY21wX3BhcnRpYWxfb3JkX2ludCEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwg JHRlc3RfdHQpOwotLSAgICAgICAgdGVzdF9zaHVmZmxlMV9keW4hKFskZWxlbV90eTsgJGVsZW1f bl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsKLS0gICAgfQotLX0KLS0KLS1tYWNyb19ydWxlcyEg aW1wbF91IHsKLS0gICAgKFskZWxlbV90eTppZGVudDsgJGVsZW1fbjpleHByXTogJHR1cGxlX2lk OmlkZW50LCAkbWFza190eTppZGVudAotLSAgICAgfCAkaWVsZW1fdHk6aWRlbnQsICRpYml0bWFz a190eTppZGVudCB8ICR0ZXN0X3R0OnR0IHwgJCgkZWxlbV9pZHM6aWRlbnQpLCoKLS0gICAgIHwg RnJvbTogJCgkZnJvbV92ZWNfdHk6aWRlbnQpLCogfCAkKCNbJGRvYzptZXRhXSkqKSA9PiB7Ci0t ICAgICAgICBpbXBsX21pbmltYWxfaXVmIShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQg fCAkaWVsZW1fdHkgfCAkdGVzdF90dAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgfCAkKCRl bGVtX2lkcyksKiB8ICQoI1skZG9jXSkqKTsKLS0gICAgICAgIGltcGxfb3BzX3ZlY3Rvcl9hcml0 aG1ldGljIShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCk7Ci0tICAg ICAgICBpbXBsX29wc19zY2FsYXJfYXJpdGhtZXRpYyEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1 cGxlX2lkIHwgJHRlc3RfdHQpOwotLSAgICAgICAgaW1wbF9vcHNfdmVjdG9yX2JpdHdpc2UhKAot LSAgICAgICAgICAgIFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0IHwg KCEoMCBhcyAkZWxlbV90eSksIDApCi0tICAgICAgICApOwotLSAgICAgICAgaW1wbF9vcHNfc2Nh bGFyX2JpdHdpc2UhKAotLSAgICAgICAgICAgIFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9p ZCB8ICR0ZXN0X3R0IHwgKCEoMCBhcyAkZWxlbV90eSksIDApCi0tICAgICAgICApOwotLSAgICAg ICAgaW1wbF9vcHNfdmVjdG9yX3NoaWZ0cyEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lk IHwgJHRlc3RfdHQpOwotLSAgICAgICAgaW1wbF9vcHNfc2NhbGFyX3NoaWZ0cyEoWyRlbGVtX3R5 OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOwotLSAgICAgICAgaW1wbF9vcHNfdmVj dG9yX3JvdGF0ZXMhKFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsK LS0gICAgICAgIGltcGxfb3BzX3ZlY3Rvcl9pbnRfbWluX21heCEoCi0tICAgICAgICAgICAgWyRl bGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQKLS0gICAgICAgICk7Ci0tICAg ICAgICBpbXBsX3JlZHVjdGlvbl9pbnRlZ2VyX2FyaXRobWV0aWMhKAotLSAgICAgICAgICAgIFsk ZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICRpZWxlbV90eSB8ICR0ZXN0X3R0Ci0tICAg ICAgICApOwotLSAgICAgICAgaW1wbF9yZWR1Y3Rpb25fbWluX21heCEoCi0tICAgICAgICAgICAg WyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJGllbGVtX3R5IHwgJHRlc3RfdHQKLS0g ICAgICAgICk7Ci0tICAgICAgICBpbXBsX3JlZHVjdGlvbl9iaXR3aXNlISgKLS0gICAgICAgICAg ICBbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkaWVsZW1fdHkgfCAkdGVzdF90dAot LSAgICAgICAgICAgIHwgKHx4fHsgeCBhcyAkZWxlbV90eSB9KSB8ICghKDAgYXMgJGVsZW1fdHkp LCAwKQotLSAgICAgICAgKTsKLS0gICAgICAgIGltcGxfZm10X2RlYnVnIShbJGVsZW1fdHk7ICRl bGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCk7Ci0tICAgICAgICBpbXBsX2ZtdF9sb3dlcl9o ZXghKFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsKLS0gICAgICAg IGltcGxfZm10X3VwcGVyX2hleCEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRl c3RfdHQpOwotLSAgICAgICAgaW1wbF9mbXRfb2N0YWwhKFskZWxlbV90eTsgJGVsZW1fbl06ICR0 dXBsZV9pZCB8ICR0ZXN0X3R0KTsKLS0gICAgICAgIGltcGxfZm10X2JpbmFyeSEoWyRlbGVtX3R5 OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOwotLSAgICAgICAgaW1wbF9mcm9tX2Fy cmF5IShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCB8ICgxLCAxKSk7 Ci0tICAgICAgICBpbXBsX2Zyb21fdmVjdG9ycyEoCi0tICAgICAgICAgICAgWyRlbGVtX3R5OyAk ZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQgfCAkKCRmcm9tX3ZlY190eSksKgotLSAgICAg ICAgKTsKLS0gICAgICAgIGltcGxfZGVmYXVsdCEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxl X2lkIHwgJHRlc3RfdHQpOwotLSAgICAgICAgaW1wbF9oYXNoIShbJGVsZW1fdHk7ICRlbGVtX25d OiAkdHVwbGVfaWQgfCAkdGVzdF90dCk7Ci0tICAgICAgICBpbXBsX3NsaWNlX2Zyb21fc2xpY2Uh KFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsKLS0gICAgICAgIGlt cGxfc2xpY2Vfd3JpdGVfdG9fc2xpY2UhKFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8 ICR0ZXN0X3R0KTsKLS0gICAgICAgIGltcGxfc3dhcF9ieXRlcyEoWyRlbGVtX3R5OyAkZWxlbV9u XTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOwotLSAgICAgICAgaW1wbF9iaXRfbWFuaXAhKFskZWxl bV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsKLS0gICAgICAgIGltcGxfc2h1 ZmZsZTFfZHluIShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCk7Ci0t ICAgICAgICBpbXBsX2NtcF9wYXJ0aWFsX2VxISgKLS0gICAgICAgICAgICBbJGVsZW1fdHk7ICRl bGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCB8ICgxLCAwKQotLSAgICAgICAgKTsKLS0gICAg ICAgIGltcGxfY21wX2VxIShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90 dCB8ICgwLCAxKSk7Ci0tICAgICAgICBpbXBsX2NtcF92ZXJ0aWNhbCEoCi0tICAgICAgICAgICAg WyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkLCAkbWFza190eSwgZmFsc2UsICgxLCAwKSB8 ICR0ZXN0X3R0Ci0tICAgICAgICApOwotLSAgICAgICAgaW1wbF9jbXBfcGFydGlhbF9vcmQhKFsk ZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsKLS0gICAgICAgIGltcGxf Y21wX29yZCEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQgfCAoMCwg MSkpOwotLSAgICAgICAgaW1wbF9iaXRtYXNrISgkdHVwbGVfaWQgfCAkaWJpdG1hc2tfdHkgfCAo JGllbGVtX3R5OjptYXhfdmFsdWUoKSwgMCkgfAotLSAgICAgICAgICAgICAgICAgICAgICAkdGVz dF90dCk7Ci0tCi0tICAgICAgICB0ZXN0X3NlbGVjdCEoJGVsZW1fdHksICRtYXNrX3R5LCAkdHVw bGVfaWQsICgxLCAyKSB8ICR0ZXN0X3R0KTsKLS0gICAgICAgIHRlc3RfY21wX3BhcnRpYWxfb3Jk X2ludCEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOwotLSAgICAg ICAgdGVzdF9zaHVmZmxlMV9keW4hKFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0 ZXN0X3R0KTsKLS0gICAgfQotLX0KLS0KLS1tYWNyb19ydWxlcyEgaW1wbF9mIHsKLS0gICAgKFsk ZWxlbV90eTppZGVudDsgJGVsZW1fbjpleHByXTogJHR1cGxlX2lkOmlkZW50LCAkbWFza190eTpp ZGVudAotLSAgICAgfCAkaWVsZW1fdHk6aWRlbnQgfCAkdGVzdF90dDp0dCB8ICQoJGVsZW1faWRz OmlkZW50KSwqCi0tICAgICB8IEZyb206ICQoJGZyb21fdmVjX3R5OmlkZW50KSwqIHwgJCgjWyRk b2M6bWV0YV0pKikgPT4gewotLSAgICAgICAgaW1wbF9taW5pbWFsX2l1ZiEoWyRlbGVtX3R5OyAk ZWxlbV9uXTogJHR1cGxlX2lkIHwgJGllbGVtX3R5IHwgJHRlc3RfdHQKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgIHwgJCgkZWxlbV9pZHMpLCogfCAkKCNbJGRvY10pKik7Ci0tICAgICAgICBp bXBsX29wc192ZWN0b3JfYXJpdGhtZXRpYyEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lk IHwgJHRlc3RfdHQpOwotLSAgICAgICAgaW1wbF9vcHNfc2NhbGFyX2FyaXRobWV0aWMhKFskZWxl bV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsKLS0gICAgICAgIGltcGxfb3Bz X3ZlY3Rvcl9uZWchKFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsK LS0gICAgICAgIGltcGxfb3BzX3ZlY3Rvcl9mbG9hdF9taW5fbWF4ISgKLS0gICAgICAgICAgICBb JGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dAotLSAgICAgICAgKTsKLS0g ICAgICAgIGltcGxfcmVkdWN0aW9uX2Zsb2F0X2FyaXRobWV0aWMhKAotLSAgICAgICAgICAgIFsk ZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsKLS0gICAgICAgIGltcGxf cmVkdWN0aW9uX21pbl9tYXghKAotLSAgICAgICAgICAgIFskZWxlbV90eTsgJGVsZW1fbl06ICR0 dXBsZV9pZCB8ICRpZWxlbV90eSB8ICR0ZXN0X3R0Ci0tICAgICAgICApOwotLSAgICAgICAgaW1w bF9mbXRfZGVidWchKFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsK LS0gICAgICAgIGltcGxfZnJvbV9hcnJheSEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lk IHwgJHRlc3RfdHQgfCAoMS4sIDEuKSk7Ci0tICAgICAgICBpbXBsX2Zyb21fdmVjdG9ycyEoCi0t ICAgICAgICAgICAgWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQgfCAk KCRmcm9tX3ZlY190eSksKgotLSAgICAgICAgKTsKLS0gICAgICAgIGltcGxfZGVmYXVsdCEoWyRl bGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOwotLSAgICAgICAgaW1wbF9j bXBfcGFydGlhbF9lcSEoCi0tICAgICAgICAgICAgWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxl X2lkIHwgJHRlc3RfdHQgfCAoMS4sIDAuKQotLSAgICAgICAgKTsKLS0gICAgICAgIGltcGxfc2xp Y2VfZnJvbV9zbGljZSEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQp OwotLSAgICAgICAgaW1wbF9zbGljZV93cml0ZV90b19zbGljZSEoWyRlbGVtX3R5OyAkZWxlbV9u XTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOwotLSAgICAgICAgaW1wbF9zaHVmZmxlMV9keW4hKFsk ZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsKLS0KLS0gICAgICAgIGlt cGxfZmxvYXRfY29uc3RzIShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQpOwotLSAgICAg ICAgaW1wbF9mbG9hdF9jYXRlZ29yeSEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkLCAk bWFza190eSk7Ci0tCi0tICAgICAgICAvLyBmbG9hdGluZy1wb2ludCBtYXRoCi0tICAgICAgICBp bXBsX21hdGhfZmxvYXRfYWJzIShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVz dF90dCk7Ci0tICAgICAgICBpbXBsX21hdGhfZmxvYXRfY29zIShbJGVsZW1fdHk7ICRlbGVtX25d OiAkdHVwbGVfaWQgfCAkdGVzdF90dCk7Ci0tICAgICAgICBpbXBsX21hdGhfZmxvYXRfZXhwIShb JGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCk7Ci0tICAgICAgICBpbXBs X21hdGhfZmxvYXRfbG4hKFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0 KTsKLS0gICAgICAgIGltcGxfbWF0aF9mbG9hdF9tdWxfYWRkIShbJGVsZW1fdHk7ICRlbGVtX25d OiAkdHVwbGVfaWQgfCAkdGVzdF90dCk7Ci0tICAgICAgICBpbXBsX21hdGhfZmxvYXRfbXVsX2Fk ZGUhKFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsKLS0gICAgICAg IGltcGxfbWF0aF9mbG9hdF9wb3dmIShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAk dGVzdF90dCk7Ci0tICAgICAgICBpbXBsX21hdGhfZmxvYXRfcmVjcHJlIShbJGVsZW1fdHk7ICRl bGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCk7Ci0tICAgICAgICBpbXBsX21hdGhfZmxvYXRf cnNxcnRlIShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCk7Ci0tICAg ICAgICBpbXBsX21hdGhfZmxvYXRfc2luIShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQg fCAkdGVzdF90dCk7Ci0tICAgICAgICBpbXBsX21hdGhfZmxvYXRfc3FydCEoWyRlbGVtX3R5OyAk ZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOwotLSAgICAgICAgaW1wbF9tYXRoX2Zsb2F0 X3NxcnRlIShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCk7Ci0tICAg ICAgICBpbXBsX2NtcF92ZXJ0aWNhbCEoCi0tICAgICAgICAgICAgWyRlbGVtX3R5OyAkZWxlbV9u XTogJHR1cGxlX2lkLCAkbWFza190eSwgZmFsc2UsICgxLiwgMC4pCi0tICAgICAgICAgICAgICAg IHwgJHRlc3RfdHQKLS0gICAgICAgICk7Ci0tCi0tICAgICAgICB0ZXN0X3NlbGVjdCEoJGVsZW1f dHksICRtYXNrX3R5LCAkdHVwbGVfaWQsICgxLiwgMi4pIHwgJHRlc3RfdHQpOwotLSAgICAgICAg dGVzdF9yZWR1Y3Rpb25fZmxvYXRfbWluX21heCEoCi0tICAgICAgICAgICAgWyRlbGVtX3R5OyAk ZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQKLS0gICAgICAgICk7Ci0tICAgICAgICB0ZXN0 X3NodWZmbGUxX2R5biEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQp OwotLSAgICB9Ci0tfQotLQotLW1hY3JvX3J1bGVzISBpbXBsX20gewotLSAgICAoWyRlbGVtX3R5 OmlkZW50OyAkZWxlbV9uOmV4cHJdOiAkdHVwbGVfaWQ6aWRlbnQKLS0gICAgIHwgJGllbGVtX3R5 OmlkZW50LCAkaWJpdG1hc2tfdHk6aWRlbnQKLS0gICAgIHwgJHRlc3RfdHQ6dHQgfCAkKCRlbGVt X2lkczppZGVudCksKiB8IEZyb206ICQoJGZyb21fdmVjX3R5OmlkZW50KSwqCi0tICAgICB8ICQo I1skZG9jOm1ldGFdKSopID0+IHsKLS0gICAgICAgIGltcGxfbWluaW1hbF9tYXNrISgKLS0gICAg ICAgICAgICBbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkaWVsZW1fdHkgfCAkdGVz dF90dAotLSAgICAgICAgICAgIHwgJCgkZWxlbV9pZHMpLCogfCAkKCNbJGRvY10pKgotLSAgICAg ICAgKTsKLS0gICAgICAgIGltcGxfb3BzX3ZlY3Rvcl9tYXNrX2JpdHdpc2UhKAotLSAgICAgICAg ICAgIFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0IHwgKHRydWUsIGZh bHNlKQotLSAgICAgICAgKTsKLS0gICAgICAgIGltcGxfb3BzX3NjYWxhcl9tYXNrX2JpdHdpc2Uh KAotLSAgICAgICAgICAgIFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0 IHwgKHRydWUsIGZhbHNlKQotLSAgICAgICAgKTsKLS0gICAgICAgIGltcGxfcmVkdWN0aW9uX2Jp dHdpc2UhKAotLSAgICAgICAgICAgIFtib29sOyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJGllbGVt X3R5IHwgJHRlc3RfdHQKLS0gICAgICAgICAgICAgICAgfCAofHh8eyB4ICE9IDAgfSkgfCAodHJ1 ZSwgZmFsc2UpCi0tICAgICAgICApOwotLSAgICAgICAgaW1wbF9yZWR1Y3Rpb25fbWFzayEoWyRl bGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOwotLSAgICAgICAgaW1wbF9m bXRfZGVidWchKFtib29sOyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOwotLSAgICAg ICAgaW1wbF9mcm9tX2FycmF5ISgKLS0gICAgICAgICAgICBbJGVsZW1fdHk7ICRlbGVtX25dOiAk dHVwbGVfaWQgfCAkdGVzdF90dAotLSAgICAgICAgICAgIHwgKGNyYXRlOjokZWxlbV90eTo6bmV3 KHRydWUpLCB0cnVlKQotLSAgICAgICAgKTsKLS0gICAgICAgIGltcGxfZnJvbV92ZWN0b3JzISgK LS0gICAgICAgICAgICBbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCB8 ICQoJGZyb21fdmVjX3R5KSwqCi0tICAgICAgICApOwotLSAgICAgICAgaW1wbF9kZWZhdWx0IShb Ym9vbDsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsKLS0gICAgICAgIGltcGxfY21w X3BhcnRpYWxfZXEhKAotLSAgICAgICAgICAgIFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9p ZCB8ICR0ZXN0X3R0IHwgKHRydWUsIGZhbHNlKQotLSAgICAgICAgKTsKLS0gICAgICAgIGltcGxf Y21wX2VxISgKLS0gICAgICAgICAgICBbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAk dGVzdF90dCB8ICh0cnVlLCBmYWxzZSkKLS0gICAgICAgICk7Ci0tICAgICAgICBpbXBsX2NtcF92 ZXJ0aWNhbCEoCi0tICAgICAgICAgICAgWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkLCAk dHVwbGVfaWQsIHRydWUsICh0cnVlLCBmYWxzZSkKLS0gICAgICAgICAgICB8ICR0ZXN0X3R0Ci0t ICAgICAgICApOwotLSAgICAgICAgaW1wbF9zZWxlY3QhKFskZWxlbV90eTsgJGVsZW1fbl06ICR0 dXBsZV9pZCB8ICR0ZXN0X3R0KTsKLS0gICAgICAgIGltcGxfY21wX3BhcnRpYWxfb3JkIShbJGVs ZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCk7Ci0tICAgICAgICBpbXBsX2Nt cF9vcmQhKAotLSAgICAgICAgICAgIFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0 ZXN0X3R0IHwgKGZhbHNlLCB0cnVlKQotLSAgICAgICAgKTsKLS0gICAgICAgIGltcGxfc2h1ZmZs ZTFfZHluIShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCk7Ci0tICAg ICAgICBpbXBsX2JpdG1hc2shKCR0dXBsZV9pZCB8ICRpYml0bWFza190eSB8ICh0cnVlLCBmYWxz ZSkgfCAkdGVzdF90dCk7Ci0tCi0tICAgICAgICB0ZXN0X2NtcF9wYXJ0aWFsX29yZF9tYXNrIShb JGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCk7Ci0tICAgICAgICB0ZXN0 X3NodWZmbGUxX2R5bl9tYXNrIShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVz dF90dCk7Ci0tICAgIH0KLS19Ci0tCi0tbWFjcm9fcnVsZXMhIGltcGxfY29uc3RfcCB7Ci0tICAg IChbJGVsZW1fdHk6dHk7ICRlbGVtX246ZXhwcl06ICR0dXBsZV9pZDppZGVudCwgJG1hc2tfdHk6 aWRlbnQsCi0tICAgICAkdXNpemVfdHk6aWRlbnQsICRpc2l6ZV90eTppZGVudAotLSAgICAgfCAk dGVzdF90dDp0dCB8ICQoJGVsZW1faWRzOmlkZW50KSwqCi0tICAgICB8IEZyb206ICQoJGZyb21f dmVjX3R5OmlkZW50KSwqIHwgJCgjWyRkb2M6bWV0YV0pKikgPT4gewotLSAgICAgICAgaW1wbF9t aW5pbWFsX3AhKAotLSAgICAgICAgICAgIFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCwg JG1hc2tfdHksICR1c2l6ZV90eSwgJGlzaXplX3R5Ci0tICAgICAgICAgICAgICAgIHwgcmVmXyB8 ICR0ZXN0X3R0IHwgJCgkZWxlbV9pZHMpLCoKLS0gICAgICAgICAgICAgICAgfCAoMSBhcyAkZWxl bV90eSwgMCBhcyAkZWxlbV90eSkgfCAkKCNbJGRvY10pKgotLSAgICAgICAgKTsKLS0gICAgICAg IGltcGxfcHRyX3JlYWQhKFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCwgJG1hc2tfdHkg fCAkdGVzdF90dCk7Ci0tICAgIH0KLS19Ci0tCi0tbWFjcm9fcnVsZXMhIGltcGxfbXV0X3Agewot LSAgICAoWyRlbGVtX3R5OnR5OyAkZWxlbV9uOmV4cHJdOiAkdHVwbGVfaWQ6aWRlbnQsICRtYXNr X3R5OmlkZW50LAotLSAgICAgJHVzaXplX3R5OmlkZW50LCAkaXNpemVfdHk6aWRlbnQKLS0gICAg IHwgJHRlc3RfdHQ6dHQgfCAkKCRlbGVtX2lkczppZGVudCksKgotLSAgICAgfCBGcm9tOiAkKCRm cm9tX3ZlY190eTppZGVudCksKiB8ICQoI1skZG9jOm1ldGFdKSopID0+IHsKLS0gICAgICAgIGlt cGxfbWluaW1hbF9wISgKLS0gICAgICAgICAgICBbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVf aWQsICRtYXNrX3R5LCAkdXNpemVfdHksICRpc2l6ZV90eQotLSAgICAgICAgICAgICAgICB8IHJl Zl9tdXRfIHwgJHRlc3RfdHQgfCAkKCRlbGVtX2lkcyksKgotLSAgICAgICAgICAgICAgICB8ICgx IGFzICRlbGVtX3R5LCAwIGFzICRlbGVtX3R5KSB8ICQoI1skZG9jXSkqCi0tICAgICAgICApOwot LSAgICAgICAgaW1wbF9wdHJfcmVhZCEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkLCAk bWFza190eSB8ICR0ZXN0X3R0KTsKLS0gICAgICAgIGltcGxfcHRyX3dyaXRlIShbJGVsZW1fdHk7 ICRlbGVtX25dOiAkdHVwbGVfaWQsICRtYXNrX3R5IHwgJHRlc3RfdHQpOwotLSAgICB9Ci0tfQot ZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vYml0 X21hbmlwLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9iaXRf bWFuaXAucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4v Yml0X21hbmlwLnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL2JpdF9tYW5pcC5ycwkxOTcw LTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsMzQ3ICswLDAgQEAKLS0vLyEg TExWTSBiaXQgbWFuaXB1bGF0aW9uIGludHJpbnNpY3MuCi0tI1tydXN0Zm10Ojpza2lwXQotLQot LXB1YihjcmF0ZSkgdXNlIGNyYXRlOjoqOwotLQotLSNbYWxsb3coaW1wcm9wZXJfY3R5cGVzLCBk ZWFkX2NvZGUpXQotLWV4dGVybiAiQyIgewotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0bHou djJpOCJdCi0tICAgIGZuIGN0bHpfdTh4Mih4OiB1OHgyLCBpc196ZXJvX3VuZGVmOiBib29sKSAt PiB1OHgyOwotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0bHoudjRpOCJdCi0tICAgIGZuIGN0 bHpfdTh4NCh4OiB1OHg0LCBpc196ZXJvX3VuZGVmOiBib29sKSAtPiB1OHg0OwotLSAgICAjW2xp bmtfbmFtZSA9ICJsbHZtLmN0bHoudjhpOCJdCi0tICAgIGZuIGN0bHpfdTh4OCh4OiB1OHg4LCBp c196ZXJvX3VuZGVmOiBib29sKSAtPiB1OHg4OwotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0 bHoudjE2aTgiXQotLSAgICBmbiBjdGx6X3U4eDE2KHg6IHU4eDE2LCBpc196ZXJvX3VuZGVmOiBi b29sKSAtPiB1OHgxNjsKLS0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5jdGx6LnYzMmk4Il0KLS0g ICAgZm4gY3Rsel91OHgzMih4OiB1OHgzMiwgaXNfemVyb191bmRlZjogYm9vbCkgLT4gdTh4MzI7 Ci0tICAgICNbbGlua19uYW1lID0gImxsdm0uY3Rsei52NjRpOCJdCi0tICAgIGZuIGN0bHpfdTh4 NjQoeDogdTh4NjQsIGlzX3plcm9fdW5kZWY6IGJvb2wpIC0+IHU4eDY0OwotLQotLSAgICAjW2xp bmtfbmFtZSA9ICJsbHZtLmN0bHoudjJpMTYiXQotLSAgICBmbiBjdGx6X3UxNngyKHg6IHUxNngy LCBpc196ZXJvX3VuZGVmOiBib29sKSAtPiB1MTZ4MjsKLS0gICAgI1tsaW5rX25hbWUgPSAibGx2 bS5jdGx6LnY0aTE2Il0KLS0gICAgZm4gY3Rsel91MTZ4NCh4OiB1MTZ4NCwgaXNfemVyb191bmRl ZjogYm9vbCkgLT4gdTE2eDQ7Ci0tICAgICNbbGlua19uYW1lID0gImxsdm0uY3Rsei52OGkxNiJd Ci0tICAgIGZuIGN0bHpfdTE2eDgoeDogdTE2eDgsIGlzX3plcm9fdW5kZWY6IGJvb2wpIC0+IHUx Nng4OwotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0bHoudjE2aTE2Il0KLS0gICAgZm4gY3Rs el91MTZ4MTYoeDogdTE2eDE2LCBpc196ZXJvX3VuZGVmOiBib29sKSAtPiB1MTZ4MTY7Ci0tICAg ICNbbGlua19uYW1lID0gImxsdm0uY3Rsei52MzJpMTYiXQotLSAgICBmbiBjdGx6X3UxNngzMih4 OiB1MTZ4MzIsIGlzX3plcm9fdW5kZWY6IGJvb2wpIC0+IHUxNngzMjsKLS0KLS0gICAgI1tsaW5r X25hbWUgPSAibGx2bS5jdGx6LnYyaTMyIl0KLS0gICAgZm4gY3Rsel91MzJ4Mih4OiB1MzJ4Miwg aXNfemVyb191bmRlZjogYm9vbCkgLT4gdTMyeDI7Ci0tICAgICNbbGlua19uYW1lID0gImxsdm0u Y3Rsei52NGkzMiJdCi0tICAgIGZuIGN0bHpfdTMyeDQoeDogdTMyeDQsIGlzX3plcm9fdW5kZWY6 IGJvb2wpIC0+IHUzMng0OwotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0bHoudjhpMzIiXQot LSAgICBmbiBjdGx6X3UzMng4KHg6IHUzMng4LCBpc196ZXJvX3VuZGVmOiBib29sKSAtPiB1MzJ4 ODsKLS0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5jdGx6LnYxNmkzMiJdCi0tICAgIGZuIGN0bHpf dTMyeDE2KHg6IHUzMngxNiwgaXNfemVyb191bmRlZjogYm9vbCkgLT4gdTMyeDE2OwotLQotLSAg ICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0bHoudjJpNjQiXQotLSAgICBmbiBjdGx6X3U2NHgyKHg6 IHU2NHgyLCBpc196ZXJvX3VuZGVmOiBib29sKSAtPiB1NjR4MjsKLS0gICAgI1tsaW5rX25hbWUg PSAibGx2bS5jdGx6LnY0aTY0Il0KLS0gICAgZm4gY3Rsel91NjR4NCh4OiB1NjR4NCwgaXNfemVy b191bmRlZjogYm9vbCkgLT4gdTY0eDQ7Ci0tICAgICNbbGlua19uYW1lID0gImxsdm0uY3Rsei52 OGk2NCJdCi0tICAgIGZuIGN0bHpfdTY0eDgoeDogdTY0eDgsIGlzX3plcm9fdW5kZWY6IGJvb2wp IC0+IHU2NHg4OwotLQotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0bHoudjFpMTI4Il0KLS0g ICAgZm4gY3Rsel91MTI4eDEoeDogdTEyOHgxLCBpc196ZXJvX3VuZGVmOiBib29sKSAtPiB1MTI4 eDE7Ci0tICAgICNbbGlua19uYW1lID0gImxsdm0uY3Rsei52MmkxMjgiXQotLSAgICBmbiBjdGx6 X3UxMjh4Mih4OiB1MTI4eDIsIGlzX3plcm9fdW5kZWY6IGJvb2wpIC0+IHUxMjh4MjsKLS0gICAg I1tsaW5rX25hbWUgPSAibGx2bS5jdGx6LnY0aTEyOCJdCi0tICAgIGZuIGN0bHpfdTEyOHg0KHg6 IHUxMjh4NCwgaXNfemVyb191bmRlZjogYm9vbCkgLT4gdTEyOHg0OwotLQotLSAgICAjW2xpbmtf bmFtZSA9ICJsbHZtLmN0dHoudjJpOCJdCi0tICAgIGZuIGN0dHpfdTh4Mih4OiB1OHgyLCBpc196 ZXJvX3VuZGVmOiBib29sKSAtPiB1OHgyOwotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0dHou djRpOCJdCi0tICAgIGZuIGN0dHpfdTh4NCh4OiB1OHg0LCBpc196ZXJvX3VuZGVmOiBib29sKSAt PiB1OHg0OwotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0dHoudjhpOCJdCi0tICAgIGZuIGN0 dHpfdTh4OCh4OiB1OHg4LCBpc196ZXJvX3VuZGVmOiBib29sKSAtPiB1OHg4OwotLSAgICAjW2xp bmtfbmFtZSA9ICJsbHZtLmN0dHoudjE2aTgiXQotLSAgICBmbiBjdHR6X3U4eDE2KHg6IHU4eDE2 LCBpc196ZXJvX3VuZGVmOiBib29sKSAtPiB1OHgxNjsKLS0gICAgI1tsaW5rX25hbWUgPSAibGx2 bS5jdHR6LnYzMmk4Il0KLS0gICAgZm4gY3R0el91OHgzMih4OiB1OHgzMiwgaXNfemVyb191bmRl ZjogYm9vbCkgLT4gdTh4MzI7Ci0tICAgICNbbGlua19uYW1lID0gImxsdm0uY3R0ei52NjRpOCJd Ci0tICAgIGZuIGN0dHpfdTh4NjQoeDogdTh4NjQsIGlzX3plcm9fdW5kZWY6IGJvb2wpIC0+IHU4 eDY0OwotLQotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0dHoudjJpMTYiXQotLSAgICBmbiBj dHR6X3UxNngyKHg6IHUxNngyLCBpc196ZXJvX3VuZGVmOiBib29sKSAtPiB1MTZ4MjsKLS0gICAg I1tsaW5rX25hbWUgPSAibGx2bS5jdHR6LnY0aTE2Il0KLS0gICAgZm4gY3R0el91MTZ4NCh4OiB1 MTZ4NCwgaXNfemVyb191bmRlZjogYm9vbCkgLT4gdTE2eDQ7Ci0tICAgICNbbGlua19uYW1lID0g Imxsdm0uY3R0ei52OGkxNiJdCi0tICAgIGZuIGN0dHpfdTE2eDgoeDogdTE2eDgsIGlzX3plcm9f dW5kZWY6IGJvb2wpIC0+IHUxNng4OwotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0dHoudjE2 aTE2Il0KLS0gICAgZm4gY3R0el91MTZ4MTYoeDogdTE2eDE2LCBpc196ZXJvX3VuZGVmOiBib29s KSAtPiB1MTZ4MTY7Ci0tICAgICNbbGlua19uYW1lID0gImxsdm0uY3R0ei52MzJpMTYiXQotLSAg ICBmbiBjdHR6X3UxNngzMih4OiB1MTZ4MzIsIGlzX3plcm9fdW5kZWY6IGJvb2wpIC0+IHUxNngz MjsKLS0KLS0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5jdHR6LnYyaTMyIl0KLS0gICAgZm4gY3R0 el91MzJ4Mih4OiB1MzJ4MiwgaXNfemVyb191bmRlZjogYm9vbCkgLT4gdTMyeDI7Ci0tICAgICNb bGlua19uYW1lID0gImxsdm0uY3R0ei52NGkzMiJdCi0tICAgIGZuIGN0dHpfdTMyeDQoeDogdTMy eDQsIGlzX3plcm9fdW5kZWY6IGJvb2wpIC0+IHUzMng0OwotLSAgICAjW2xpbmtfbmFtZSA9ICJs bHZtLmN0dHoudjhpMzIiXQotLSAgICBmbiBjdHR6X3UzMng4KHg6IHUzMng4LCBpc196ZXJvX3Vu ZGVmOiBib29sKSAtPiB1MzJ4ODsKLS0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5jdHR6LnYxNmkz MiJdCi0tICAgIGZuIGN0dHpfdTMyeDE2KHg6IHUzMngxNiwgaXNfemVyb191bmRlZjogYm9vbCkg LT4gdTMyeDE2OwotLQotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0dHoudjJpNjQiXQotLSAg ICBmbiBjdHR6X3U2NHgyKHg6IHU2NHgyLCBpc196ZXJvX3VuZGVmOiBib29sKSAtPiB1NjR4MjsK LS0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5jdHR6LnY0aTY0Il0KLS0gICAgZm4gY3R0el91NjR4 NCh4OiB1NjR4NCwgaXNfemVyb191bmRlZjogYm9vbCkgLT4gdTY0eDQ7Ci0tICAgICNbbGlua19u YW1lID0gImxsdm0uY3R0ei52OGk2NCJdCi0tICAgIGZuIGN0dHpfdTY0eDgoeDogdTY0eDgsIGlz X3plcm9fdW5kZWY6IGJvb2wpIC0+IHU2NHg4OwotLQotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZt LmN0dHoudjFpMTI4Il0KLS0gICAgZm4gY3R0el91MTI4eDEoeDogdTEyOHgxLCBpc196ZXJvX3Vu ZGVmOiBib29sKSAtPiB1MTI4eDE7Ci0tICAgICNbbGlua19uYW1lID0gImxsdm0uY3R0ei52Mmkx MjgiXQotLSAgICBmbiBjdHR6X3UxMjh4Mih4OiB1MTI4eDIsIGlzX3plcm9fdW5kZWY6IGJvb2wp IC0+IHUxMjh4MjsKLS0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5jdHR6LnY0aTEyOCJdCi0tICAg IGZuIGN0dHpfdTEyOHg0KHg6IHUxMjh4NCwgaXNfemVyb191bmRlZjogYm9vbCkgLT4gdTEyOHg0 OwotLQotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0cG9wLnYyaTgiXQotLSAgICBmbiBjdHBv cF91OHgyKHg6IHU4eDIpIC0+IHU4eDI7Ci0tICAgICNbbGlua19uYW1lID0gImxsdm0uY3Rwb3Au djRpOCJdCi0tICAgIGZuIGN0cG9wX3U4eDQoeDogdTh4NCkgLT4gdTh4NDsKLS0gICAgI1tsaW5r X25hbWUgPSAibGx2bS5jdHBvcC52OGk4Il0KLS0gICAgZm4gY3Rwb3BfdTh4OCh4OiB1OHg4KSAt PiB1OHg4OwotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0cG9wLnYxNmk4Il0KLS0gICAgZm4g Y3Rwb3BfdTh4MTYoeDogdTh4MTYpIC0+IHU4eDE2OwotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZt LmN0cG9wLnYzMmk4Il0KLS0gICAgZm4gY3Rwb3BfdTh4MzIoeDogdTh4MzIpIC0+IHU4eDMyOwot LSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0cG9wLnY2NGk4Il0KLS0gICAgZm4gY3Rwb3BfdTh4 NjQoeDogdTh4NjQpIC0+IHU4eDY0OwotLQotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0cG9w LnYyaTE2Il0KLS0gICAgZm4gY3Rwb3BfdTE2eDIoeDogdTE2eDIpIC0+IHUxNngyOwotLSAgICAj W2xpbmtfbmFtZSA9ICJsbHZtLmN0cG9wLnY0aTE2Il0KLS0gICAgZm4gY3Rwb3BfdTE2eDQoeDog dTE2eDQpIC0+IHUxNng0OwotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0cG9wLnY4aTE2Il0K LS0gICAgZm4gY3Rwb3BfdTE2eDgoeDogdTE2eDgpIC0+IHUxNng4OwotLSAgICAjW2xpbmtfbmFt ZSA9ICJsbHZtLmN0cG9wLnYxNmkxNiJdCi0tICAgIGZuIGN0cG9wX3UxNngxNih4OiB1MTZ4MTYp IC0+IHUxNngxNjsKLS0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5jdHBvcC52MzJpMTYiXQotLSAg ICBmbiBjdHBvcF91MTZ4MzIoeDogdTE2eDMyKSAtPiB1MTZ4MzI7Ci0tCi0tICAgICNbbGlua19u YW1lID0gImxsdm0uY3Rwb3AudjJpMzIiXQotLSAgICBmbiBjdHBvcF91MzJ4Mih4OiB1MzJ4Mikg LT4gdTMyeDI7Ci0tICAgICNbbGlua19uYW1lID0gImxsdm0uY3Rwb3AudjRpMzIiXQotLSAgICBm biBjdHBvcF91MzJ4NCh4OiB1MzJ4NCkgLT4gdTMyeDQ7Ci0tICAgICNbbGlua19uYW1lID0gImxs dm0uY3Rwb3AudjhpMzIiXQotLSAgICBmbiBjdHBvcF91MzJ4OCh4OiB1MzJ4OCkgLT4gdTMyeDg7 Ci0tICAgICNbbGlua19uYW1lID0gImxsdm0uY3Rwb3AudjE2aTMyIl0KLS0gICAgZm4gY3Rwb3Bf dTMyeDE2KHg6IHUzMngxNikgLT4gdTMyeDE2OwotLQotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZt LmN0cG9wLnYyaTY0Il0KLS0gICAgZm4gY3Rwb3BfdTY0eDIoeDogdTY0eDIpIC0+IHU2NHgyOwot LSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0cG9wLnY0aTY0Il0KLS0gICAgZm4gY3Rwb3BfdTY0 eDQoeDogdTY0eDQpIC0+IHU2NHg0OwotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0cG9wLnY4 aTY0Il0KLS0gICAgZm4gY3Rwb3BfdTY0eDgoeDogdTY0eDgpIC0+IHU2NHg4OwotLQotLSAgICAj W2xpbmtfbmFtZSA9ICJsbHZtLmN0cG9wLnYxaTEyOCJdCi0tICAgIGZuIGN0cG9wX3UxMjh4MSh4 OiB1MTI4eDEpIC0+IHUxMjh4MTsKLS0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5jdHBvcC52Mmkx MjgiXQotLSAgICBmbiBjdHBvcF91MTI4eDIoeDogdTEyOHgyKSAtPiB1MTI4eDI7Ci0tICAgICNb bGlua19uYW1lID0gImxsdm0uY3Rwb3AudjRpMTI4Il0KLS0gICAgZm4gY3Rwb3BfdTEyOHg0KHg6 IHUxMjh4NCkgLT4gdTEyOHg0OwotLX0KLS0KLS1wdWIoY3JhdGUpIHRyYWl0IEJpdE1hbmlwIHsK LS0gICAgZm4gY3Rwb3Aoc2VsZikgLT4gU2VsZjsKLS0gICAgZm4gY3RseihzZWxmKSAtPiBTZWxm OwotLSAgICBmbiBjdHR6KHNlbGYpIC0+IFNlbGY7Ci0tfQotLQotLW1hY3JvX3J1bGVzISBpbXBs X2JpdF9tYW5pcCB7Ci0tICAgIChpbm5lcjogJHR5OmlkZW50LCAkc2NhbGFyOnR5LCAkdXR5Omlk ZW50LAotLSAgICAgJGN0cG9wOmlkZW50LCAkY3RsejppZGVudCwgJGN0dHo6aWRlbnQpID0+IHsK LS0gICAgICAgIC8vIEZJWE1FOiBzZXZlcmFsIExMVk0gaW50cmluc2ljcyBicmVhayBvbiBzMzkw eCBodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nLW51cnNlcnkvcGFja2VkX3NpbWQvaXNzdWVz LzE5MgotLSAgICAgICAgI1tjZmcodGFyZ2V0X2FyY2ggPSAiczM5MHgiKV0KLS0gICAgICAgIGlt cGxfYml0X21hbmlwISB7IHNjYWxhcjogJHR5LCAkc2NhbGFyIH0KLS0gICAgICAgICNbY2ZnKG5v dCh0YXJnZXRfYXJjaCA9ICJzMzkweCIpKV0KLS0gICAgICAgIGltcGwgQml0TWFuaXAgZm9yICR0 eSB7Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgZm4gY3Rwb3Aoc2VsZikg LT4gU2VsZiB7Ci0tICAgICAgICAgICAgICAgIGxldCB5OiAkdXR5ID0gc2VsZi5jYXN0KCk7Ci0t ICAgICAgICAgICAgICAgIHVuc2FmZSB7ICRjdHBvcCh5KS5jYXN0KCkgfQotLSAgICAgICAgICAg IH0KLS0KLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBmbiBjdGx6KHNlbGYp IC0+IFNlbGYgewotLSAgICAgICAgICAgICAgICBsZXQgeTogJHV0eSA9IHNlbGYuY2FzdCgpOwot LSAgICAgICAgICAgICAgICAvLyB0aGUgY3R4eCBpbnRyaW5zaWNzIG5lZWQgY29tcGlsZS10aW1l IGNvbnN0YW50Ci0tICAgICAgICAgICAgICAgIC8vIGBpc196ZXJvX3VuZGVmYAotLSAgICAgICAg ICAgICAgICB1bnNhZmUgeyAkY3Rseih5LCBmYWxzZSkuY2FzdCgpIH0KLS0gICAgICAgICAgICB9 Ci0tCi0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgZm4gY3R0eihzZWxmKSAt PiBTZWxmIHsKLS0gICAgICAgICAgICAgICAgbGV0IHk6ICR1dHkgPSBzZWxmLmNhc3QoKTsKLS0g ICAgICAgICAgICAgICAgdW5zYWZlIHsgJGN0dHooeSwgZmFsc2UpLmNhc3QoKSB9Ci0tICAgICAg ICAgICAgfQotLSAgICAgICAgfQotLSAgICB9OwotLSAgICAoc2l6ZWRfaW5uZXI6ICR0eTppZGVu dCwgJHNjYWxhcjp0eSwgJHV0eTppZGVudCkgPT4gewotLSAgICAgICAgI1tjZmcodGFyZ2V0X2Fy Y2ggPSAiczM5MHgiKV0KLS0gICAgICAgIGltcGxfYml0X21hbmlwISB7IHNjYWxhcjogJHR5LCAk c2NhbGFyIH0KLS0gICAgICAgICNbY2ZnKG5vdCh0YXJnZXRfYXJjaCA9ICJzMzkweCIpKV0KLS0g ICAgICAgIGltcGwgQml0TWFuaXAgZm9yICR0eSB7Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0t ICAgICAgICAgICAgZm4gY3Rwb3Aoc2VsZikgLT4gU2VsZiB7Ci0tICAgICAgICAgICAgICAgIGxl dCB5OiAkdXR5ID0gc2VsZi5jYXN0KCk7Ci0tICAgICAgICAgICAgICAgICR1dHk6OmN0cG9wKHkp LmNhc3QoKQotLSAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAg ICAgICAgICBmbiBjdGx6KHNlbGYpIC0+IFNlbGYgewotLSAgICAgICAgICAgICAgICBsZXQgeTog JHV0eSA9IHNlbGYuY2FzdCgpOwotLSAgICAgICAgICAgICAgICAkdXR5OjpjdGx6KHkpLmNhc3Qo KQotLSAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAg ICBmbiBjdHR6KHNlbGYpIC0+IFNlbGYgewotLSAgICAgICAgICAgICAgICBsZXQgeTogJHV0eSA9 IHNlbGYuY2FzdCgpOwotLSAgICAgICAgICAgICAgICAkdXR5OjpjdHR6KHkpLmNhc3QoKQotLSAg ICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgfTsKLS0gICAgKHNjYWxhcjogJHR5OmlkZW50 LCAkc2NhbGFyOnR5KSA9PiB7Ci0tICAgICAgICBpbXBsIEJpdE1hbmlwIGZvciAkdHkgewotLSAg ICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIGZuIGN0cG9wKHNlbGYpIC0+IFNlbGYg ewotLSAgICAgICAgICAgICAgICBsZXQgbXV0IG9uZXMgPSBzZWxmOwotLSAgICAgICAgICAgICAg ICBmb3IgaSBpbiAwLi5TZWxmOjpsYW5lcygpIHsKLS0gICAgICAgICAgICAgICAgICAgIG9uZXMg PSBvbmVzLnJlcGxhY2UoaSwgc2VsZi5leHRyYWN0KGkpLmNvdW50X29uZXMoKSBhcyAkc2NhbGFy KTsKLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICBvbmVzCi0tICAgICAgICAg ICAgfQotLQotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIGZuIGN0bHooc2Vs ZikgLT4gU2VsZiB7Ci0tICAgICAgICAgICAgICAgIGxldCBtdXQgbHogPSBzZWxmOwotLSAgICAg ICAgICAgICAgICBmb3IgaSBpbiAwLi5TZWxmOjpsYW5lcygpIHsKLS0gICAgICAgICAgICAgICAg ICAgIGx6ID0gbHoucmVwbGFjZShpLCBzZWxmLmV4dHJhY3QoaSkubGVhZGluZ196ZXJvcygpIGFz ICRzY2FsYXIpOwotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgIGx6Ci0tICAg ICAgICAgICAgfQotLQotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIGZuIGN0 dHooc2VsZikgLT4gU2VsZiB7Ci0tICAgICAgICAgICAgICAgIGxldCBtdXQgdHogPSBzZWxmOwot LSAgICAgICAgICAgICAgICBmb3IgaSBpbiAwLi5TZWxmOjpsYW5lcygpIHsKLS0gICAgICAgICAg ICAgICAgICAgIHR6ID0gdHoucmVwbGFjZShpLCBzZWxmLmV4dHJhY3QoaSkudHJhaWxpbmdfemVy b3MoKSBhcyAkc2NhbGFyKTsKLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICB0 egotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgfTsKLS0gICAgKCR1dHk6aWRlbnQs ICR1c2NhbGFyOnR5LCAkaXR5OmlkZW50LCAkaXNjYWxhcjp0eSwKLS0gICAgICRjdHBvcDppZGVu dCwgJGN0bHo6aWRlbnQsICRjdHR6OmlkZW50KSA9PiB7Ci0tICAgICAgICBpbXBsX2JpdF9tYW5p cCEgeyBpbm5lcjogJHV0eSwgJHVzY2FsYXIsICR1dHksICRjdHBvcCwgJGN0bHosICRjdHR6IH0K LS0gICAgICAgIGltcGxfYml0X21hbmlwISB7IGlubmVyOiAkaXR5LCAkaXNjYWxhciwgJHV0eSwg JGN0cG9wLCAkY3RseiwgJGN0dHogfQotLSAgICB9OwotLSAgICAoc2l6ZWQ6ICR1c2l6ZTppZGVu dCwgJHVzY2FsYXI6dHksICRpc2l6ZTppZGVudCwKLS0gICAgICRpc2NhbGFyOnR5LCAkdHk6aWRl bnQpID0+IHsKLS0gICAgICAgIGltcGxfYml0X21hbmlwISB7IHNpemVkX2lubmVyOiAkdXNpemUs ICR1c2NhbGFyLCAkdHkgfQotLSAgICAgICAgaW1wbF9iaXRfbWFuaXAhIHsgc2l6ZWRfaW5uZXI6 ICRpc2l6ZSwgJGlzY2FsYXIsICR0eSB9Ci0tICAgIH07Ci0tfQotLQotLWltcGxfYml0X21hbmlw ISB7IHU4eDIgICAsICAgdTgsIGk4eDIsIGk4LCAgIGN0cG9wX3U4eDIsICAgY3Rsel91OHgyLCAg IGN0dHpfdTh4MiAgIH0KLS1pbXBsX2JpdF9tYW5pcCEgeyB1OHg0ICAgLCAgIHU4LCBpOHg0LCBp OCwgICBjdHBvcF91OHg0LCAgIGN0bHpfdTh4NCwgICBjdHR6X3U4eDQgICB9Ci0tI1tjZmcobm90 KHRhcmdldF9hcmNoID0gImFhcmNoNjQiKSldIC8vIHNlZSBiZWxvdwotLWltcGxfYml0X21hbmlw ISB7IHU4eDggICAsICAgdTgsIGk4eDgsIGk4LCAgIGN0cG9wX3U4eDgsICAgY3Rsel91OHg4LCAg IGN0dHpfdTh4OCAgIH0KLS1pbXBsX2JpdF9tYW5pcCEgeyB1OHgxNiAgLCAgdTgsIGk4eDE2LCBp OCwgIGN0cG9wX3U4eDE2LCAgY3Rsel91OHgxNiwgIGN0dHpfdTh4MTYgIH0KLS1pbXBsX2JpdF9t YW5pcCEgeyB1OHgzMiAgLCAgdTgsIGk4eDMyLCBpOCwgIGN0cG9wX3U4eDMyLCAgY3Rsel91OHgz MiwgIGN0dHpfdTh4MzIgIH0KLS1pbXBsX2JpdF9tYW5pcCEgeyB1OHg2NCAgLCAgdTgsIGk4eDY0 LCBpOCwgIGN0cG9wX3U4eDY0LCAgY3Rsel91OHg2NCwgIGN0dHpfdTh4NjQgIH0KLS1pbXBsX2Jp dF9tYW5pcCEgeyB1MTZ4MiAgLCAgdTE2LCBpMTZ4MiwgaTE2LCAgY3Rwb3BfdTE2eDIsICBjdGx6 X3UxNngyLCAgY3R0el91MTZ4MiAgfQotLWltcGxfYml0X21hbmlwISB7IHUxNng0ICAsICB1MTYs IGkxNng0LCBpMTYsICBjdHBvcF91MTZ4NCwgIGN0bHpfdTE2eDQsICBjdHR6X3UxNng0ICB9Ci0t aW1wbF9iaXRfbWFuaXAhIHsgdTE2eDggICwgIHUxNiwgaTE2eDgsIGkxNiwgIGN0cG9wX3UxNng4 LCAgY3Rsel91MTZ4OCwgIGN0dHpfdTE2eDggIH0KLS1pbXBsX2JpdF9tYW5pcCEgeyB1MTZ4MTYg LCB1MTYsIGkxNngxNiwgaTE2LCBjdHBvcF91MTZ4MTYsIGN0bHpfdTE2eDE2LCBjdHR6X3UxNngx NiB9Ci0taW1wbF9iaXRfbWFuaXAhIHsgdTE2eDMyICwgdTE2LCBpMTZ4MzIsIGkxNiwgY3Rwb3Bf dTE2eDMyLCBjdGx6X3UxNngzMiwgY3R0el91MTZ4MzIgfQotLWltcGxfYml0X21hbmlwISB7IHUz MngyICAsICB1MzIsIGkzMngyLCBpMzIsICBjdHBvcF91MzJ4MiwgIGN0bHpfdTMyeDIsICBjdHR6 X3UzMngyICB9Ci0taW1wbF9iaXRfbWFuaXAhIHsgdTMyeDQgICwgIHUzMiwgaTMyeDQsIGkzMiwg IGN0cG9wX3UzMng0LCAgY3Rsel91MzJ4NCwgIGN0dHpfdTMyeDQgIH0KLS1pbXBsX2JpdF9tYW5p cCEgeyB1MzJ4OCAgLCAgdTMyLCBpMzJ4OCwgaTMyLCAgY3Rwb3BfdTMyeDgsICBjdGx6X3UzMng4 LCAgY3R0el91MzJ4OCAgfQotLWltcGxfYml0X21hbmlwISB7IHUzMngxNiAsIHUzMiwgaTMyeDE2 LCBpMzIsIGN0cG9wX3UzMngxNiwgY3Rsel91MzJ4MTYsIGN0dHpfdTMyeDE2IH0KLS1pbXBsX2Jp dF9tYW5pcCEgeyB1NjR4MiAgLCAgdTY0LCBpNjR4MiwgaTY0LCAgY3Rwb3BfdTY0eDIsICBjdGx6 X3U2NHgyLCAgY3R0el91NjR4MiAgfQotLWltcGxfYml0X21hbmlwISB7IHU2NHg0ICAsICB1NjQs IGk2NHg0LCBpNjQsICBjdHBvcF91NjR4NCwgIGN0bHpfdTY0eDQsICBjdHR6X3U2NHg0ICB9Ci0t aW1wbF9iaXRfbWFuaXAhIHsgdTY0eDggICwgIHU2NCwgaTY0eDgsIGk2NCwgIGN0cG9wX3U2NHg4 LCAgY3Rsel91NjR4OCwgIGN0dHpfdTY0eDggIH0KLS1pbXBsX2JpdF9tYW5pcCEgeyB1MTI4eDEg LCB1MTI4LCBpMTI4eDEsIGkxMjgsIGN0cG9wX3UxMjh4MSwgY3Rsel91MTI4eDEsIGN0dHpfdTEy OHgxIH0KLS1pbXBsX2JpdF9tYW5pcCEgeyB1MTI4eDIgLCB1MTI4LCBpMTI4eDIsIGkxMjgsIGN0 cG9wX3UxMjh4MiwgY3Rsel91MTI4eDIsIGN0dHpfdTEyOHgyIH0KLS1pbXBsX2JpdF9tYW5pcCEg eyB1MTI4eDQgLCB1MTI4LCBpMTI4eDQsIGkxMjgsIGN0cG9wX3UxMjh4NCwgY3Rsel91MTI4eDQs IGN0dHpfdTEyOHg0IH0KLS0KLS0jW2NmZyh0YXJnZXRfYXJjaCA9ICJhYXJjaDY0IildCi0taW1w bCBCaXRNYW5pcCBmb3IgdTh4OCB7Ci0tICAgICNbaW5saW5lXQotLSAgICBmbiBjdHBvcChzZWxm KSAtPiBTZWxmIHsKLS0gICAgICAgIGxldCB5OiB1OHg4ID0gc2VsZi5jYXN0KCk7Ci0tICAgICAg ICB1bnNhZmUgeyBjdHBvcF91OHg4KHkpLmNhc3QoKSB9Ci0tICAgIH0KLS0KLS0gICAgI1tpbmxp bmVdCi0tICAgIGZuIGN0bHooc2VsZikgLT4gU2VsZiB7Ci0tICAgICAgICBsZXQgeTogdTh4OCA9 IHNlbGYuY2FzdCgpOwotLSAgICAgICAgdW5zYWZlIHsgY3Rsel91OHg4KHksIGZhbHNlKS5jYXN0 KCkgfQotLSAgICB9Ci0tCi0tICAgICNbaW5saW5lXQotLSAgICBmbiBjdHR6KHNlbGYpIC0+IFNl bGYgewotLSAgICAgICAgLy8gRklYTUU6IExMVk0gY3R0ei52OGk4IGJyb2tlbiBvbiBhYXJjaDY0 IGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmctbnVyc2VyeS9wYWNrZWRfc2ltZC9pc3N1ZXMv MTkxCi0tICAgICAgICAvLyBPUFRJTUlaRTogYWRhcHQgdGhlIGFsZ29yaXRobSB1c2VkIGZvciB2 OGkxNi9ldGMgdG8gUnVzdCdzIGFhcmNoNjQKLS0gICAgICAgIC8vIGludHJpbnNpY3MKLS0gICAg ICAgIGxldCBtdXQgdHogPSBzZWxmOwotLSAgICAgICAgZm9yIGkgaW4gMC4uU2VsZjo6bGFuZXMo KSB7Ci0tICAgICAgICAgICAgdHogPSB0ei5yZXBsYWNlKGksIHNlbGYuZXh0cmFjdChpKS50cmFp bGluZ196ZXJvcygpIGFzIHU4KTsKLS0gICAgICAgIH0KLS0gICAgICAgIHR6Ci0tICAgIH0KLS19 Ci0tI1tjZmcodGFyZ2V0X2FyY2ggPSAiYWFyY2g2NCIpXQotLWltcGwgQml0TWFuaXAgZm9yIGk4 eDggewotLSAgICAjW2lubGluZV0KLS0gICAgZm4gY3Rwb3Aoc2VsZikgLT4gU2VsZiB7Ci0tICAg ICAgICBsZXQgeTogdTh4OCA9IHNlbGYuY2FzdCgpOwotLSAgICAgICAgdW5zYWZlIHsgY3Rwb3Bf dTh4OCh5KS5jYXN0KCkgfQotLSAgICB9Ci0tCi0tICAgICNbaW5saW5lXQotLSAgICBmbiBjdGx6 KHNlbGYpIC0+IFNlbGYgewotLSAgICAgICAgbGV0IHk6IHU4eDggPSBzZWxmLmNhc3QoKTsKLS0g ICAgICAgIHVuc2FmZSB7IGN0bHpfdTh4OCh5LCBmYWxzZSkuY2FzdCgpIH0KLS0gICAgfQotLQot LSAgICAjW2lubGluZV0KLS0gICAgZm4gY3R0eihzZWxmKSAtPiBTZWxmIHsKLS0gICAgICAgIC8v IEZJWE1FOiBMTFZNIGN0dHoudjhpOCBicm9rZW4gb24gYWFyY2g2NCBodHRwczovL2dpdGh1Yi5j b20vcnVzdC1sYW5nLW51cnNlcnkvcGFja2VkX3NpbWQvaXNzdWVzLzE5MQotLSAgICAgICAgLy8g T1BUSU1JWkU6IGFkYXB0IHRoZSBhbGdvcml0aG0gdXNlZCBmb3IgdjhpMTYvZXRjIHRvIFJ1c3Qn cyBhYXJjaDY0Ci0tICAgICAgICAvLyBpbnRyaW5zaWNzCi0tICAgICAgICBsZXQgbXV0IHR6ID0g c2VsZjsKLS0gICAgICAgIGZvciBpIGluIDAuLlNlbGY6OmxhbmVzKCkgewotLSAgICAgICAgICAg IHR6ID0gdHoucmVwbGFjZShpLCBzZWxmLmV4dHJhY3QoaSkudHJhaWxpbmdfemVyb3MoKSBhcyBp OCk7Ci0tICAgICAgICB9Ci0tICAgICAgICB0egotLSAgICB9Ci0tfQotLQotLWNmZ19pZiEgewot LSAgICBpZiAjW2NmZyh0YXJnZXRfcG9pbnRlcl93aWR0aCA9ICI4IildIHsKLS0gICAgICAgIGlt cGxfYml0X21hbmlwISB7IHNpemVkOiB1c2l6ZXgyLCB1c2l6ZSwgaXNpemV4MiwgaXNpemUsIHU4 eDIgfQotLSAgICAgICAgaW1wbF9iaXRfbWFuaXAhIHsgc2l6ZWQ6IHVzaXpleDQsIHVzaXplLCBp c2l6ZXg0LCBpc2l6ZSwgdTh4NCB9Ci0tICAgICAgICBpbXBsX2JpdF9tYW5pcCEgeyBzaXplZDog dXNpemV4OCwgdXNpemUsIGlzaXpleDgsIGlzaXplLCB1OHg4IH0KLS0gICAgfSBlbHNlIGlmICNb Y2ZnKHRhcmdldF9wb2ludGVyX3dpZHRoID0gIjE2IildIHsKLS0gICAgICAgIGltcGxfYml0X21h bmlwISB7IHNpemVkOiB1c2l6ZXgyLCB1c2l6ZSwgaXNpemV4MiwgaXNpemUsIHUxNngyIH0KLS0g ICAgICAgIGltcGxfYml0X21hbmlwISB7IHNpemVkOiB1c2l6ZXg0LCB1c2l6ZSwgaXNpemV4NCwg aXNpemUsIHUxNng0IH0KLS0gICAgICAgIGltcGxfYml0X21hbmlwISB7IHNpemVkOiB1c2l6ZXg4 LCB1c2l6ZSwgaXNpemV4OCwgaXNpemUsIHUxNng4IH0KLS0gICAgfSBlbHNlIGlmICNbY2ZnKHRh cmdldF9wb2ludGVyX3dpZHRoID0gIjMyIildIHsKLS0gICAgICAgIGltcGxfYml0X21hbmlwISB7 IHNpemVkOiB1c2l6ZXgyLCB1c2l6ZSwgaXNpemV4MiwgaXNpemUsIHUzMngyIH0KLS0gICAgICAg IGltcGxfYml0X21hbmlwISB7IHNpemVkOiB1c2l6ZXg0LCB1c2l6ZSwgaXNpemV4NCwgaXNpemUs IHUzMng0IH0KLS0gICAgICAgIGltcGxfYml0X21hbmlwISB7IHNpemVkOiB1c2l6ZXg4LCB1c2l6 ZSwgaXNpemV4OCwgaXNpemUsIHUzMng4IH0KLS0gICAgfSBlbHNlIGlmICNbY2ZnKHRhcmdldF9w b2ludGVyX3dpZHRoID0gIjY0IildIHsKLS0gICAgICAgIGltcGxfYml0X21hbmlwISB7IHNpemVk OiB1c2l6ZXgyLCB1c2l6ZSwgaXNpemV4MiwgaXNpemUsIHU2NHgyIH0KLS0gICAgICAgIGltcGxf Yml0X21hbmlwISB7IHNpemVkOiB1c2l6ZXg0LCB1c2l6ZSwgaXNpemV4NCwgaXNpemUsIHU2NHg0 IH0KLS0gICAgICAgIGltcGxfYml0X21hbmlwISB7IHNpemVkOiB1c2l6ZXg4LCB1c2l6ZSwgaXNp emV4OCwgaXNpemUsIHU2NHg4IH0KLS0gICAgfSBlbHNlIHsKLS0gICAgICAgIGNvbXBpbGVfZXJy b3IhKCJ1bnN1cHBvcnRlZCB0YXJnZXRfcG9pbnRlcl93aWR0aCIpOwotLSAgICB9Ci0tfQotZGlm ZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vbGx2bS5y cyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vbGx2bS5ycwotLS0t IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9sbHZtLnJzCTIwMjUt MDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3Bh Y2tlZF9zaW1kL3NyYy9jb2RlZ2VuL2xsdm0ucnMJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAw MDAgKzAzMDAKLUBAIC0xLDEyMiArMCwwIEBACi0tLy8hIExMVk0ncyBwbGF0Zm9ybSBpbnRyaW5z aWNzCi0tIyFbYWxsb3coZGVhZF9jb2RlKV0KLS0KLS11c2UgY3JhdGU6OnNlYWxlZDo6U2h1ZmZs ZTsKLS0jW2FsbG93KHVudXNlZF9pbXBvcnRzKV0gLy8gRklYTUU6IHNwdXJpb3VzIHdhcm5pbmc/ Ci0tdXNlIGNyYXRlOjpzZWFsZWQ6OlNpbWQ7Ci0tCi0tZXh0ZXJuICJwbGF0Zm9ybS1pbnRyaW5z aWMiIHsKLS0gICAgZm4gc2ltZF9zaHVmZmxlPFQsIEksIFU+KHg6IFQsIHk6IFQsIGlkeDogSSkg LT4gVTsKLS19Ci0tCi0tI1thbGxvdyhjbGlwcHk6Om1pc3Npbmdfc2FmZXR5X2RvYyldCi0tI1tp bmxpbmVdCi0tcHViIHVuc2FmZSBmbiBfX3NodWZmbGVfdmVjdG9yMjxjb25zdCBJRFg6IFt1MzI7 IDJdLCBULCBVPih4OiBULCB5OiBUKSAtPiBVCi0td2hlcmUKLS0gICAgVDogU2ltZCwKLS0gICAg PFQgYXMgU2ltZD46OkVsZW1lbnQ6IFNodWZmbGU8W3UzMjsgMl0sIE91dHB1dCA9IFU+LAotLXsK LS0gICAgc2ltZF9zaHVmZmxlKHgsIHksIElEWCkKLS19Ci0tCi0tI1thbGxvdyhjbGlwcHk6Om1p c3Npbmdfc2FmZXR5X2RvYyldCi0tI1tpbmxpbmVdCi0tcHViIHVuc2FmZSBmbiBfX3NodWZmbGVf dmVjdG9yNDxjb25zdCBJRFg6IFt1MzI7IDRdLCBULCBVPih4OiBULCB5OiBUKSAtPiBVCi0td2hl cmUKLS0gICAgVDogU2ltZCwKLS0gICAgPFQgYXMgU2ltZD46OkVsZW1lbnQ6IFNodWZmbGU8W3Uz MjsgNF0sIE91dHB1dCA9IFU+LAotLXsKLS0gICAgc2ltZF9zaHVmZmxlKHgsIHksIElEWCkKLS19 Ci0tCi0tI1thbGxvdyhjbGlwcHk6Om1pc3Npbmdfc2FmZXR5X2RvYyldCi0tI1tpbmxpbmVdCi0t cHViIHVuc2FmZSBmbiBfX3NodWZmbGVfdmVjdG9yODxjb25zdCBJRFg6IFt1MzI7IDhdLCBULCBV Pih4OiBULCB5OiBUKSAtPiBVCi0td2hlcmUKLS0gICAgVDogU2ltZCwKLS0gICAgPFQgYXMgU2lt ZD46OkVsZW1lbnQ6IFNodWZmbGU8W3UzMjsgOF0sIE91dHB1dCA9IFU+LAotLXsKLS0gICAgc2lt ZF9zaHVmZmxlKHgsIHksIElEWCkKLS19Ci0tCi0tI1thbGxvdyhjbGlwcHk6Om1pc3Npbmdfc2Fm ZXR5X2RvYyldCi0tI1tpbmxpbmVdCi0tcHViIHVuc2FmZSBmbiBfX3NodWZmbGVfdmVjdG9yMTY8 Y29uc3QgSURYOiBbdTMyOyAxNl0sIFQsIFU+KHg6IFQsIHk6IFQpIC0+IFUKLS13aGVyZQotLSAg ICBUOiBTaW1kLAotLSAgICA8VCBhcyBTaW1kPjo6RWxlbWVudDogU2h1ZmZsZTxbdTMyOyAxNl0s IE91dHB1dCA9IFU+LAotLXsKLS0gICAgc2ltZF9zaHVmZmxlKHgsIHksIElEWCkKLS19Ci0tCi0t I1thbGxvdyhjbGlwcHk6Om1pc3Npbmdfc2FmZXR5X2RvYyldCi0tI1tpbmxpbmVdCi0tcHViIHVu c2FmZSBmbiBfX3NodWZmbGVfdmVjdG9yMzI8Y29uc3QgSURYOiBbdTMyOyAzMl0sIFQsIFU+KHg6 IFQsIHk6IFQpIC0+IFUKLS13aGVyZQotLSAgICBUOiBTaW1kLAotLSAgICA8VCBhcyBTaW1kPjo6 RWxlbWVudDogU2h1ZmZsZTxbdTMyOyAzMl0sIE91dHB1dCA9IFU+LAotLXsKLS0gICAgc2ltZF9z aHVmZmxlKHgsIHksIElEWCkKLS19Ci0tCi0tI1thbGxvdyhjbGlwcHk6Om1pc3Npbmdfc2FmZXR5 X2RvYyldCi0tI1tpbmxpbmVdCi0tcHViIHVuc2FmZSBmbiBfX3NodWZmbGVfdmVjdG9yNjQ8Y29u c3QgSURYOiBbdTMyOyA2NF0sIFQsIFU+KHg6IFQsIHk6IFQpIC0+IFUKLS13aGVyZQotLSAgICBU OiBTaW1kLAotLSAgICA8VCBhcyBTaW1kPjo6RWxlbWVudDogU2h1ZmZsZTxbdTMyOyA2NF0sIE91 dHB1dCA9IFU+LAotLXsKLS0gICAgc2ltZF9zaHVmZmxlKHgsIHksIElEWCkKLS19Ci0tCi0tZXh0 ZXJuICJwbGF0Zm9ybS1pbnRyaW5zaWMiIHsKLS0gICAgcHViKGNyYXRlKSBmbiBzaW1kX2VxPFQs IFU+KHg6IFQsIHk6IFQpIC0+IFU7Ci0tICAgIHB1YihjcmF0ZSkgZm4gc2ltZF9uZTxULCBVPih4 OiBULCB5OiBUKSAtPiBVOwotLSAgICBwdWIoY3JhdGUpIGZuIHNpbWRfbHQ8VCwgVT4oeDogVCwg eTogVCkgLT4gVTsKLS0gICAgcHViKGNyYXRlKSBmbiBzaW1kX2xlPFQsIFU+KHg6IFQsIHk6IFQp IC0+IFU7Ci0tICAgIHB1YihjcmF0ZSkgZm4gc2ltZF9ndDxULCBVPih4OiBULCB5OiBUKSAtPiBV OwotLSAgICBwdWIoY3JhdGUpIGZuIHNpbWRfZ2U8VCwgVT4oeDogVCwgeTogVCkgLT4gVTsKLS0K LS0gICAgcHViKGNyYXRlKSBmbiBzaW1kX2luc2VydDxULCBVPih4OiBULCBpZHg6IHUzMiwgdmFs OiBVKSAtPiBUOwotLSAgICBwdWIoY3JhdGUpIGZuIHNpbWRfZXh0cmFjdDxULCBVPih4OiBULCBp ZHg6IHUzMikgLT4gVTsKLS0KLS0gICAgcHViKGNyYXRlKSBmbiBzaW1kX2Nhc3Q8VCwgVT4oeDog VCkgLT4gVTsKLS0KLS0gICAgcHViKGNyYXRlKSBmbiBzaW1kX2FkZDxUPih4OiBULCB5OiBUKSAt PiBUOwotLSAgICBwdWIoY3JhdGUpIGZuIHNpbWRfc3ViPFQ+KHg6IFQsIHk6IFQpIC0+IFQ7Ci0t ICAgIHB1YihjcmF0ZSkgZm4gc2ltZF9tdWw8VD4oeDogVCwgeTogVCkgLT4gVDsKLS0gICAgcHVi KGNyYXRlKSBmbiBzaW1kX2RpdjxUPih4OiBULCB5OiBUKSAtPiBUOwotLSAgICBwdWIoY3JhdGUp IGZuIHNpbWRfcmVtPFQ+KHg6IFQsIHk6IFQpIC0+IFQ7Ci0tICAgIHB1YihjcmF0ZSkgZm4gc2lt ZF9zaGw8VD4oeDogVCwgeTogVCkgLT4gVDsKLS0gICAgcHViKGNyYXRlKSBmbiBzaW1kX3NocjxU Pih4OiBULCB5OiBUKSAtPiBUOwotLSAgICBwdWIoY3JhdGUpIGZuIHNpbWRfYW5kPFQ+KHg6IFQs IHk6IFQpIC0+IFQ7Ci0tICAgIHB1YihjcmF0ZSkgZm4gc2ltZF9vcjxUPih4OiBULCB5OiBUKSAt PiBUOwotLSAgICBwdWIoY3JhdGUpIGZuIHNpbWRfeG9yPFQ+KHg6IFQsIHk6IFQpIC0+IFQ7Ci0t Ci0tICAgIHB1YihjcmF0ZSkgZm4gc2ltZF9yZWR1Y2VfYWRkX3Vub3JkZXJlZDxULCBVPih4OiBU KSAtPiBVOwotLSAgICBwdWIoY3JhdGUpIGZuIHNpbWRfcmVkdWNlX211bF91bm9yZGVyZWQ8VCwg VT4oeDogVCkgLT4gVTsKLS0gICAgcHViKGNyYXRlKSBmbiBzaW1kX3JlZHVjZV9hZGRfb3JkZXJl ZDxULCBVPih4OiBULCBhY2M6IFUpIC0+IFU7Ci0tICAgIHB1YihjcmF0ZSkgZm4gc2ltZF9yZWR1 Y2VfbXVsX29yZGVyZWQ8VCwgVT4oeDogVCwgYWNjOiBVKSAtPiBVOwotLSAgICBwdWIoY3JhdGUp IGZuIHNpbWRfcmVkdWNlX21pbjxULCBVPih4OiBUKSAtPiBVOwotLSAgICBwdWIoY3JhdGUpIGZu IHNpbWRfcmVkdWNlX21heDxULCBVPih4OiBUKSAtPiBVOwotLSAgICBwdWIoY3JhdGUpIGZuIHNp bWRfcmVkdWNlX21pbl9uYW5sZXNzPFQsIFU+KHg6IFQpIC0+IFU7Ci0tICAgIHB1YihjcmF0ZSkg Zm4gc2ltZF9yZWR1Y2VfbWF4X25hbmxlc3M8VCwgVT4oeDogVCkgLT4gVTsKLS0gICAgcHViKGNy YXRlKSBmbiBzaW1kX3JlZHVjZV9hbmQ8VCwgVT4oeDogVCkgLT4gVTsKLS0gICAgcHViKGNyYXRl KSBmbiBzaW1kX3JlZHVjZV9vcjxULCBVPih4OiBUKSAtPiBVOwotLSAgICBwdWIoY3JhdGUpIGZu IHNpbWRfcmVkdWNlX3hvcjxULCBVPih4OiBUKSAtPiBVOwotLSAgICBwdWIoY3JhdGUpIGZuIHNp bWRfcmVkdWNlX2FsbDxUPih4OiBUKSAtPiBib29sOwotLSAgICBwdWIoY3JhdGUpIGZuIHNpbWRf cmVkdWNlX2FueTxUPih4OiBUKSAtPiBib29sOwotLQotLSAgICBwdWIoY3JhdGUpIGZuIHNpbWRf c2VsZWN0PE0sIFQ+KG06IE0sIGE6IFQsIGI6IFQpIC0+IFQ7Ci0tCi0tICAgIHB1YihjcmF0ZSkg Zm4gc2ltZF9mbWluPFQ+KGE6IFQsIGI6IFQpIC0+IFQ7Ci0tICAgIHB1YihjcmF0ZSkgZm4gc2lt ZF9mbWF4PFQ+KGE6IFQsIGI6IFQpIC0+IFQ7Ci0tCi0tICAgIHB1YihjcmF0ZSkgZm4gc2ltZF9m c3FydDxUPihhOiBUKSAtPiBUOwotLSAgICBwdWIoY3JhdGUpIGZuIHNpbWRfZm1hPFQ+KGE6IFQs IGI6IFQsIGM6IFQpIC0+IFQ7Ci0tCi0tICAgIHB1YihjcmF0ZSkgZm4gc2ltZF9nYXRoZXI8VCwg UCwgTT4odmFsdWU6IFQsIHBvaW50ZXJzOiBQLCBtYXNrOiBNKSAtPiBUOwotLSAgICBwdWIoY3Jh dGUpIGZuIHNpbWRfc2NhdHRlcjxULCBQLCBNPih2YWx1ZTogVCwgcG9pbnRlcnM6IFAsIG1hc2s6 IE0pOwotLQotLSAgICBwdWIoY3JhdGUpIGZuIHNpbWRfYml0bWFzazxULCBVPih2YWx1ZTogVCkg LT4gVTsKLS19Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMv Y29kZWdlbi9tYXRoL2Zsb2F0L2Ficy5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQv c3JjL2NvZGVnZW4vbWF0aC9mbG9hdC9hYnMucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFj a2VkX3NpbWQvc3JjL2NvZGVnZW4vbWF0aC9mbG9hdC9hYnMucnMJMjAyNS0wNC0yMCAxOToyODox My4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3Jj L2NvZGVnZW4vbWF0aC9mbG9hdC9hYnMucnMJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAg KzAzMDAKLUBAIC0xLDEwMyArMCwwIEBACi0tLy8hIFZlcnRpY2FsIGZsb2F0aW5nLXBvaW50IGBm YWJzYAotLSMhW2FsbG93KHVudXNlZCldCi0tCi0tLy8gRklYTUUgNjQtYml0IDEgZWxlbSB2ZWN0 b3JzIGZhYnMKLS0KLS11c2UgY3JhdGU6Oio7Ci0tCi0tcHViKGNyYXRlKSB0cmFpdCBBYnMgewot LSAgICBmbiBhYnMoc2VsZikgLT4gU2VsZjsKLS19Ci0tCi0tI1thbGxvdyhpbXByb3Blcl9jdHlw ZXMpXQotLWV4dGVybiAiQyIgewotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmZhYnMudjJmMzIi XQotLSAgICBmbiBmYWJzX3YyZjMyKHg6IGYzMngyKSAtPiBmMzJ4MjsKLS0gICAgI1tsaW5rX25h bWUgPSAibGx2bS5mYWJzLnY0ZjMyIl0KLS0gICAgZm4gZmFic192NGYzMih4OiBmMzJ4NCkgLT4g ZjMyeDQ7Ci0tICAgICNbbGlua19uYW1lID0gImxsdm0uZmFicy52OGYzMiJdCi0tICAgIGZuIGZh YnNfdjhmMzIoeDogZjMyeDgpIC0+IGYzMng4OwotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmZh YnMudjE2ZjMyIl0KLS0gICAgZm4gZmFic192MTZmMzIoeDogZjMyeDE2KSAtPiBmMzJ4MTY7Ci0t ICAgIC8qIEZJWE1FIDY0LWJpdCBmYWJzZ2xlIGVsZW0gdmVjdG9ycwotLSAgICAjW2xpbmtfbmFt ZSA9ICJsbHZtLmZhYnMudjFmNjQiXQotLSAgICBmbiBmYWJzX3YxZjY0KHg6IGY2NHgxKSAtPiBm NjR4MTsKLS0gICAgICovCi0tICAgICNbbGlua19uYW1lID0gImxsdm0uZmFicy52MmY2NCJdCi0t ICAgIGZuIGZhYnNfdjJmNjQoeDogZjY0eDIpIC0+IGY2NHgyOwotLSAgICAjW2xpbmtfbmFtZSA9 ICJsbHZtLmZhYnMudjRmNjQiXQotLSAgICBmbiBmYWJzX3Y0ZjY0KHg6IGY2NHg0KSAtPiBmNjR4 NDsKLS0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5mYWJzLnY4ZjY0Il0KLS0gICAgZm4gZmFic192 OGY2NCh4OiBmNjR4OCkgLT4gZjY0eDg7Ci0tCi0tICAgICNbbGlua19uYW1lID0gImxsdm0uZmFi cy5mMzIiXQotLSAgICBmbiBmYWJzX2YzMih4OiBmMzIpIC0+IGYzMjsKLS0gICAgI1tsaW5rX25h bWUgPSAibGx2bS5mYWJzLmY2NCJdCi0tICAgIGZuIGZhYnNfZjY0KHg6IGY2NCkgLT4gZjY0Owot LX0KLS0KLS1nZW5fdW5hcnlfaW1wbF90YWJsZSEoQWJzLCBhYnMpOwotLQotLWNmZ19pZiEgewot LSAgICBpZiAjW2NmZyh0YXJnZXRfYXJjaCA9ICJzMzkweCIpXSB7Ci0tICAgICAgICAvLyBGSVhN RTogaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy1udXJzZXJ5L3BhY2tlZF9zaW1kL2lzc3Vl cy8xNAotLSAgICAgICAgaW1wbF91bmFyeSEoZjMyeDJbZjMyOyAyXTogZmFic19mMzIpOwotLSAg ICAgICAgaW1wbF91bmFyeSEoZjMyeDRbZjMyOyA0XTogZmFic19mMzIpOwotLSAgICAgICAgaW1w bF91bmFyeSEoZjMyeDhbZjMyOyA4XTogZmFic19mMzIpOwotLSAgICAgICAgaW1wbF91bmFyeSEo ZjMyeDE2W2YzMjsgMTZdOiBmYWJzX2YzMik7Ci0tCi0tICAgICAgICBpbXBsX3VuYXJ5IShmNjR4 MltmNjQ7IDJdOiBmYWJzX2Y2NCk7Ci0tICAgICAgICBpbXBsX3VuYXJ5IShmNjR4NFtmNjQ7IDRd OiBmYWJzX2Y2NCk7Ci0tICAgICAgICBpbXBsX3VuYXJ5IShmNjR4OFtmNjQ7IDhdOiBmYWJzX2Y2 NCk7Ci0tICAgIH0gZWxzZSBpZiAjW2NmZyhhbGwodGFyZ2V0X2FyY2ggPSAieDg2XzY0IiwgZmVh dHVyZSA9ICJzbGVlZi1zeXMiKSldIHsKLS0gICAgICAgIHVzZSBzbGVlZl9zeXM6Oio7Ci0tICAg ICAgICBjZmdfaWYhIHsKLS0gICAgICAgICAgICBpZiAjW2NmZyh0YXJnZXRfZmVhdHVyZSA9ICJh dngyIildIHsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDJbdCA9PiBmMzJ4NF06 IFNsZWVmX2ZhYnNmNF9hdngyMTI4KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMy eDE2W2ggPT4gZjMyeDhdOiBTbGVlZl9mYWJzZjhfYXZ4Mik7Ci0tICAgICAgICAgICAgICAgIGlt cGxfdW5hcnkhKGY2NHg4W2ggPT4gZjY0eDRdOiBTbGVlZl9mYWJzZDRfYXZ4Mik7Ci0tCi0tICAg ICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng0OiBTbGVlZl9mYWJzZjRfYXZ4MjEyOCk7Ci0t ICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng4OiBTbGVlZl9mYWJzZjhfYXZ4Mik7Ci0t ICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHgyOiBTbGVlZl9mYWJzZDJfYXZ4MjEyOCk7 Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg0OiBTbGVlZl9mYWJzZDRfYXZ4Mik7 Ci0tICAgICAgICAgICAgfSBlbHNlIGlmICNbY2ZnKHRhcmdldF9mZWF0dXJlID0gImF2eCIpXSB7 Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMngyW3QgPT4gZjMyeDRdOiBTbGVlZl9m YWJzZjRfc3NlNCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMngxNltoID0+IGYz Mng4XTogU2xlZWZfZmFic2Y4X2F2eCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2 NHg4W2ggPT4gZjY0eDRdOiBTbGVlZl9mYWJzZDRfYXZ4KTsKLS0KLS0gICAgICAgICAgICAgICAg aW1wbF91bmFyeSEoZjMyeDQ6IFNsZWVmX2ZhYnNmNF9zc2U0KTsKLS0gICAgICAgICAgICAgICAg aW1wbF91bmFyeSEoZjMyeDg6IFNsZWVmX2ZhYnNmOF9hdngpOwotLSAgICAgICAgICAgICAgICBp bXBsX3VuYXJ5IShmNjR4MjogU2xlZWZfZmFic2QyX3NzZTQpOwotLSAgICAgICAgICAgICAgICBp bXBsX3VuYXJ5IShmNjR4NDogU2xlZWZfZmFic2Q0X2F2eCk7Ci0tICAgICAgICAgICAgfSBlbHNl IGlmICNbY2ZnKHRhcmdldF9mZWF0dXJlID0gInNzZTQuMiIpXSB7Ci0tICAgICAgICAgICAgICAg IGltcGxfdW5hcnkhKGYzMngyW3QgPT4gZjMyeDRdOiBTbGVlZl9mYWJzZjRfc3NlNCk7Ci0tICAg ICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMngxNltxID0+IGYzMng0XTogU2xlZWZfZmFic2Y0 X3NzZTQpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4OFtxID0+IGY2NHgyXTog U2xlZWZfZmFic2QyX3NzZTQpOwotLQotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4 NDogU2xlZWZfZmFic2Y0X3NzZTQpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4 OFtoID0+IGYzMng0XTogU2xlZWZfZmFic2Y0X3NzZTQpOwotLSAgICAgICAgICAgICAgICBpbXBs X3VuYXJ5IShmNjR4MjogU2xlZWZfZmFic2QyX3NzZTQpOwotLSAgICAgICAgICAgICAgICBpbXBs X3VuYXJ5IShmNjR4NFtoID0+IGY2NHgyXTogU2xlZWZfZmFic2QyX3NzZTQpOwotLSAgICAgICAg ICAgIH0gZWxzZSB7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMngyW2YzMjsgMl06 IGZhYnNfZjMyKTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDE2OiBmYWJzX3Yx NmYzMik7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg4OiBmYWJzX3Y4ZjY0KTsK LS0KLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDQ6IGZhYnNfdjRmMzIpOwotLSAg ICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4ODogZmFic192OGYzMik7Ci0tICAgICAgICAg ICAgICAgIGltcGxfdW5hcnkhKGY2NHgyOiBmYWJzX3YyZjY0KTsKLS0gICAgICAgICAgICAgICAg aW1wbF91bmFyeSEoZjY0eDQ6IGZhYnNfdjRmNjQpOwotLSAgICAgICAgICAgIH0KLS0gICAgICAg IH0KLS0gICAgfSBlbHNlIHsKLS0gICAgICAgIGltcGxfdW5hcnkhKGYzMngyW2YzMjsgMl06IGZh YnNfZjMyKTsKLS0gICAgICAgIGltcGxfdW5hcnkhKGYzMng0OiBmYWJzX3Y0ZjMyKTsKLS0gICAg ICAgIGltcGxfdW5hcnkhKGYzMng4OiBmYWJzX3Y4ZjMyKTsKLS0gICAgICAgIGltcGxfdW5hcnkh KGYzMngxNjogZmFic192MTZmMzIpOwotLQotLSAgICAgICAgaW1wbF91bmFyeSEoZjY0eDI6IGZh YnNfdjJmNjQpOwotLSAgICAgICAgaW1wbF91bmFyeSEoZjY0eDQ6IGZhYnNfdjRmNjQpOwotLSAg ICAgICAgaW1wbF91bmFyeSEoZjY0eDg6IGZhYnNfdjhmNjQpOwotLSAgICB9Ci0tfQotZGlmZiAt TnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vbWF0aC9mbG9h dC9jb3MucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL21hdGgv ZmxvYXQvY29zLnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2Rl Z2VuL21hdGgvZmxvYXQvY29zLnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAw Ci0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL21hdGgvZmxv YXQvY29zLnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSwxMDMg KzAsMCBAQAotLS8vISBWZXJ0aWNhbCBmbG9hdGluZy1wb2ludCBgY29zYAotLSMhW2FsbG93KHVu dXNlZCldCi0tCi0tLy8gRklYTUUgNjQtYml0IDEgZWxlbSB2ZWN0b3IgY29zCi0tCi0tdXNlIGNy YXRlOjoqOwotLQotLXB1YihjcmF0ZSkgdHJhaXQgQ29zIHsKLS0gICAgZm4gY29zKHNlbGYpIC0+ IFNlbGY7Ci0tfQotLQotLSNbYWxsb3coaW1wcm9wZXJfY3R5cGVzKV0KLS1leHRlcm4gIkMiIHsK LS0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5jb3MudjJmMzIiXQotLSAgICBmbiBjb3NfdjJmMzIo eDogZjMyeDIpIC0+IGYzMngyOwotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmNvcy52NGYzMiJd Ci0tICAgIGZuIGNvc192NGYzMih4OiBmMzJ4NCkgLT4gZjMyeDQ7Ci0tICAgICNbbGlua19uYW1l ID0gImxsdm0uY29zLnY4ZjMyIl0KLS0gICAgZm4gY29zX3Y4ZjMyKHg6IGYzMng4KSAtPiBmMzJ4 ODsKLS0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5jb3MudjE2ZjMyIl0KLS0gICAgZm4gY29zX3Yx NmYzMih4OiBmMzJ4MTYpIC0+IGYzMngxNjsKLS0gICAgLyogRklYTUUgNjQtYml0IGNvc2dsZSBl bGVtIHZlY3RvcnMKLS0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5jb3MudjFmNjQiXQotLSAgICBm biBjb3NfdjFmNjQoeDogZjY0eDEpIC0+IGY2NHgxOwotLSAgICAgKi8KLS0gICAgI1tsaW5rX25h bWUgPSAibGx2bS5jb3MudjJmNjQiXQotLSAgICBmbiBjb3NfdjJmNjQoeDogZjY0eDIpIC0+IGY2 NHgyOwotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmNvcy52NGY2NCJdCi0tICAgIGZuIGNvc192 NGY2NCh4OiBmNjR4NCkgLT4gZjY0eDQ7Ci0tICAgICNbbGlua19uYW1lID0gImxsdm0uY29zLnY4 ZjY0Il0KLS0gICAgZm4gY29zX3Y4ZjY0KHg6IGY2NHg4KSAtPiBmNjR4ODsKLS0KLS0gICAgI1ts aW5rX25hbWUgPSAibGx2bS5jb3MuZjMyIl0KLS0gICAgZm4gY29zX2YzMih4OiBmMzIpIC0+IGYz MjsKLS0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5jb3MuZjY0Il0KLS0gICAgZm4gY29zX2Y2NCh4 OiBmNjQpIC0+IGY2NDsKLS19Ci0tCi0tZ2VuX3VuYXJ5X2ltcGxfdGFibGUhKENvcywgY29zKTsK LS0KLS1jZmdfaWYhIHsKLS0gICAgaWYgI1tjZmcodGFyZ2V0X2FyY2ggPSAiczM5MHgiKV0gewot LSAgICAgICAgLy8gRklYTUU6IGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmctbnVyc2VyeS9w YWNrZWRfc2ltZC9pc3N1ZXMvMTQKLS0gICAgICAgIGltcGxfdW5hcnkhKGYzMngyW2YzMjsgMl06 IGNvc19mMzIpOwotLSAgICAgICAgaW1wbF91bmFyeSEoZjMyeDRbZjMyOyA0XTogY29zX2YzMik7 Ci0tICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4OFtmMzI7IDhdOiBjb3NfZjMyKTsKLS0gICAgICAg IGltcGxfdW5hcnkhKGYzMngxNltmMzI7IDE2XTogY29zX2YzMik7Ci0tCi0tICAgICAgICBpbXBs X3VuYXJ5IShmNjR4MltmNjQ7IDJdOiBjb3NfZjY0KTsKLS0gICAgICAgIGltcGxfdW5hcnkhKGY2 NHg0W2Y2NDsgNF06IGNvc19mNjQpOwotLSAgICAgICAgaW1wbF91bmFyeSEoZjY0eDhbZjY0OyA4 XTogY29zX2Y2NCk7Ci0tICAgIH0gZWxzZSBpZiAjW2NmZyhhbGwodGFyZ2V0X2FyY2ggPSAieDg2 XzY0IiwgZmVhdHVyZSA9ICJzbGVlZi1zeXMiKSldIHsKLS0gICAgICAgIHVzZSBzbGVlZl9zeXM6 Oio7Ci0tICAgICAgICBjZmdfaWYhIHsKLS0gICAgICAgICAgICBpZiAjW2NmZyh0YXJnZXRfZmVh dHVyZSA9ICJhdngyIildIHsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDJbdCA9 PiBmMzJ4NF06IFNsZWVmX2Nvc2Y0X3UxMGF2eDIxMjgpOwotLSAgICAgICAgICAgICAgICBpbXBs X3VuYXJ5IShmMzJ4MTZbaCA9PiBmMzJ4OF06IFNsZWVmX2Nvc2Y4X3UxMGF2eDIpOwotLSAgICAg ICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4OFtoID0+IGY2NHg0XTogU2xlZWZfY29zZDRfdTEw YXZ4Mik7Ci0tCi0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng0OiBTbGVlZl9jb3Nm NF91MTBhdngyMTI4KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDg6IFNsZWVm X2Nvc2Y4X3UxMGF2eDIpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4MjogU2xl ZWZfY29zZDJfdTEwYXZ4MjEyOCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg0 OiBTbGVlZl9jb3NkNF91MTBhdngyKTsKLS0gICAgICAgICAgICB9IGVsc2UgaWYgI1tjZmcodGFy Z2V0X2ZlYXR1cmUgPSAiYXZ4IildIHsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMy eDJbdCA9PiBmMzJ4NF06IFNsZWVmX2Nvc2Y0X3UxMHNzZTQpOwotLSAgICAgICAgICAgICAgICBp bXBsX3VuYXJ5IShmMzJ4MTZbaCA9PiBmMzJ4OF06IFNsZWVmX2Nvc2Y4X3UxMGF2eCk7Ci0tICAg ICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg4W2ggPT4gZjY0eDRdOiBTbGVlZl9jb3NkNF91 MTBhdngpOwotLQotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4NDogU2xlZWZfY29z ZjRfdTEwc3NlNCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng4OiBTbGVlZl9j b3NmOF91MTBhdngpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4MjogU2xlZWZf Y29zZDJfdTEwc3NlNCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg0OiBTbGVl Zl9jb3NkNF91MTBhdngpOwotLSAgICAgICAgICAgIH0gZWxzZSBpZiAjW2NmZyh0YXJnZXRfZmVh dHVyZSA9ICJzc2U0LjIiKV0gewotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4Mlt0 ID0+IGYzMng0XTogU2xlZWZfY29zZjRfdTEwc3NlNCk7Ci0tICAgICAgICAgICAgICAgIGltcGxf dW5hcnkhKGYzMngxNltxID0+IGYzMng0XTogU2xlZWZfY29zZjRfdTEwc3NlNCk7Ci0tICAgICAg ICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg4W3EgPT4gZjY0eDJdOiBTbGVlZl9jb3NkMl91MTBz c2U0KTsKLS0KLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDQ6IFNsZWVmX2Nvc2Y0 X3UxMHNzZTQpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4OFtoID0+IGYzMng0 XTogU2xlZWZfY29zZjRfdTEwc3NlNCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2 NHgyOiBTbGVlZl9jb3NkMl91MTBzc2U0KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEo ZjY0eDRbaCA9PiBmNjR4Ml06IFNsZWVmX2Nvc2QyX3UxMHNzZTQpOwotLSAgICAgICAgICAgIH0g ZWxzZSB7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMngyW2YzMjsgMl06IGNvc19m MzIpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4MTY6IGNvc192MTZmMzIpOwot LSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4ODogY29zX3Y4ZjY0KTsKLS0KLS0gICAg ICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDQ6IGNvc192NGYzMik7Ci0tICAgICAgICAgICAg ICAgIGltcGxfdW5hcnkhKGYzMng4OiBjb3NfdjhmMzIpOwotLSAgICAgICAgICAgICAgICBpbXBs X3VuYXJ5IShmNjR4MjogY29zX3YyZjY0KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEo ZjY0eDQ6IGNvc192NGY2NCk7Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICB9IGVs c2UgewotLSAgICAgICAgaW1wbF91bmFyeSEoZjMyeDJbZjMyOyAyXTogY29zX2YzMik7Ci0tICAg ICAgICBpbXBsX3VuYXJ5IShmMzJ4NDogY29zX3Y0ZjMyKTsKLS0gICAgICAgIGltcGxfdW5hcnkh KGYzMng4OiBjb3NfdjhmMzIpOwotLSAgICAgICAgaW1wbF91bmFyeSEoZjMyeDE2OiBjb3NfdjE2 ZjMyKTsKLS0KLS0gICAgICAgIGltcGxfdW5hcnkhKGY2NHgyOiBjb3NfdjJmNjQpOwotLSAgICAg ICAgaW1wbF91bmFyeSEoZjY0eDQ6IGNvc192NGY2NCk7Ci0tICAgICAgICBpbXBsX3VuYXJ5IShm NjR4ODogY29zX3Y4ZjY0KTsKLS0gICAgfQotLX0KLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9y dXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL21hdGgvZmxvYXQvY29zX3BpLnJzIGIvdGhpcmRf cGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9tYXRoL2Zsb2F0L2Nvc19waS5ycwot LS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9tYXRoL2Zsb2F0 L2Nvc19waS5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhp cmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9tYXRoL2Zsb2F0L2Nvc19waS5y cwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsODcgKzAsMCBAQAot LS8vISBWZXJ0aWNhbCBmbG9hdGluZy1wb2ludCBgY29zYAotLSMhW2FsbG93KHVudXNlZCldCi0t Ci0tLy8gRklYTUUgNjQtYml0IDEgZWxlbSB2ZWN0b3JzIGNvc19waQotLQotLXVzZSBjcmF0ZTo6 KjsKLS0KLS1wdWIoY3JhdGUpIHRyYWl0IENvc1BpIHsKLS0gICAgZm4gY29zX3BpKHNlbGYpIC0+ IFNlbGY7Ci0tfQotLQotLWdlbl91bmFyeV9pbXBsX3RhYmxlIShDb3NQaSwgY29zX3BpKTsKLS0K LS1tYWNyb19ydWxlcyEgaW1wbF9kZWYgewotLSAgICAoJHZpZDppZGVudCwgJFBJOnBhdGgpID0+ IHsKLS0gICAgICAgIGltcGwgQ29zUGkgZm9yICR2aWQgewotLSAgICAgICAgICAgICNbaW5saW5l XQotLSAgICAgICAgICAgIGZuIGNvc19waShzZWxmKSAtPiBTZWxmIHsKLS0gICAgICAgICAgICAg ICAgKHNlbGYgKiBTZWxmOjpzcGxhdCgkUEkpKS5jb3MoKQotLSAgICAgICAgICAgIH0KLS0gICAg ICAgIH0KLS0gICAgfTsKLS19Ci0tbWFjcm9fcnVsZXMhIGltcGxfZGVmMzIgewotLSAgICAoJHZp ZDppZGVudCkgPT4gewotLSAgICAgICAgaW1wbF9kZWYhKCR2aWQsIGNyYXRlOjpmMzI6OmNvbnN0 czo6UEkpOwotLSAgICB9OwotLX0KLS1tYWNyb19ydWxlcyEgaW1wbF9kZWY2NCB7Ci0tICAgICgk dmlkOmlkZW50KSA9PiB7Ci0tICAgICAgICBpbXBsX2RlZiEoJHZpZCwgY3JhdGU6OmY2NDo6Y29u c3RzOjpQSSk7Ci0tICAgIH07Ci0tfQotLQotLWNmZ19pZiEgewotLSAgICBpZiAjW2NmZyhhbGwo dGFyZ2V0X2FyY2ggPSAieDg2XzY0IiwgZmVhdHVyZSA9ICJzbGVlZi1zeXMiKSldIHsKLS0gICAg ICAgIHVzZSBzbGVlZl9zeXM6Oio7Ci0tICAgICAgICBjZmdfaWYhIHsKLS0gICAgICAgICAgICBp ZiAjW2NmZyh0YXJnZXRfZmVhdHVyZSA9ICJhdngyIildIHsKLS0gICAgICAgICAgICAgICAgaW1w bF91bmFyeSEoZjMyeDJbdCA9PiBmMzJ4NF06IFNsZWVmX2Nvc3BpZjRfdTA1YXZ4MjEyOCk7Ci0t ICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMngxNltoID0+IGYzMng4XTogU2xlZWZfY29z cGlmOF91MDVhdngyKTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDhbaCA9PiBm NjR4NF06IFNsZWVmX2Nvc3BpZDRfdTA1YXZ4Mik7Ci0tCi0tICAgICAgICAgICAgICAgIGltcGxf dW5hcnkhKGYzMng0OiBTbGVlZl9jb3NwaWY0X3UwNWF2eDIxMjgpOwotLSAgICAgICAgICAgICAg ICBpbXBsX3VuYXJ5IShmMzJ4ODogU2xlZWZfY29zcGlmOF91MDVhdngyKTsKLS0gICAgICAgICAg ICAgICAgaW1wbF91bmFyeSEoZjY0eDI6IFNsZWVmX2Nvc3BpZDJfdTA1YXZ4MjEyOCk7Ci0tICAg ICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg0OiBTbGVlZl9jb3NwaWQ0X3UwNWF2eDIpOwot LSAgICAgICAgICAgIH0gZWxzZSBpZiAjW2NmZyh0YXJnZXRfZmVhdHVyZSA9ICJhdngiKV0gewot LSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4Mlt0ID0+IGYzMng0XTogU2xlZWZfY29z cGlmNF91MDVzc2U0KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDE2W2ggPT4g ZjMyeDhdOiBTbGVlZl9jb3NwaWY4X3UwNWF2eCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5h cnkhKGY2NHg4W2ggPT4gZjY0eDRdOiBTbGVlZl9jb3NwaWQ0X3UwNWF2eCk7Ci0tCi0tICAgICAg ICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng0OiBTbGVlZl9jb3NwaWY0X3UwNXNzZTQpOwotLSAg ICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4ODogU2xlZWZfY29zcGlmOF91MDVhdngpOwot LSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4MjogU2xlZWZfY29zcGlkMl91MDVzc2U0 KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDQ6IFNsZWVmX2Nvc3BpZDRfdTA1 YXZ4KTsKLS0gICAgICAgICAgICB9IGVsc2UgaWYgI1tjZmcodGFyZ2V0X2ZlYXR1cmUgPSAic3Nl NC4yIildIHsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDJbdCA9PiBmMzJ4NF06 IFNsZWVmX2Nvc3BpZjRfdTA1c3NlNCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYz MngxNltxID0+IGYzMng0XTogU2xlZWZfY29zcGlmNF91MDVzc2U0KTsKLS0gICAgICAgICAgICAg ICAgaW1wbF91bmFyeSEoZjY0eDhbcSA9PiBmNjR4Ml06IFNsZWVmX2Nvc3BpZDJfdTA1c3NlNCk7 Ci0tCi0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng0OiBTbGVlZl9jb3NwaWY0X3Uw NXNzZTQpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4OFtoID0+IGYzMng0XTog U2xlZWZfY29zcGlmNF91MDVzc2U0KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0 eDI6IFNsZWVmX2Nvc3BpZDJfdTA1c3NlNCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkh KGY2NHg0W2ggPT4gZjY0eDJdOiBTbGVlZl9jb3NwaWQyX3UwNXNzZTQpOwotLSAgICAgICAgICAg IH0gZWxzZSB7Ci0tICAgICAgICAgICAgICAgIGltcGxfZGVmMzIhKGYzMngyKTsKLS0gICAgICAg ICAgICAgICAgaW1wbF9kZWYzMiEoZjMyeDQpOwotLSAgICAgICAgICAgICAgICBpbXBsX2RlZjMy IShmMzJ4OCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfZGVmMzIhKGYzMngxNik7Ci0tCi0tICAg ICAgICAgICAgICAgIGltcGxfZGVmNjQhKGY2NHgyKTsKLS0gICAgICAgICAgICAgICAgaW1wbF9k ZWY2NCEoZjY0eDQpOwotLSAgICAgICAgICAgICAgICBpbXBsX2RlZjY0IShmNjR4OCk7Ci0tICAg ICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICB9IGVsc2UgewotLSAgICAgICAgaW1wbF9kZWYz MiEoZjMyeDIpOwotLSAgICAgICAgaW1wbF9kZWYzMiEoZjMyeDQpOwotLSAgICAgICAgaW1wbF9k ZWYzMiEoZjMyeDgpOwotLSAgICAgICAgaW1wbF9kZWYzMiEoZjMyeDE2KTsKLS0KLS0gICAgICAg IGltcGxfZGVmNjQhKGY2NHgyKTsKLS0gICAgICAgIGltcGxfZGVmNjQhKGY2NHg0KTsKLS0gICAg ICAgIGltcGxfZGVmNjQhKGY2NHg4KTsKLS0gICAgfQotLX0KLWRpZmYgLU5yYnUgYS90aGlyZF9w YXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL21hdGgvZmxvYXQvZXhwLnJzIGIvdGhp cmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9tYXRoL2Zsb2F0L2V4cC5ycwot LS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9tYXRoL2Zsb2F0 L2V4cC5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRf cGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9tYXRoL2Zsb2F0L2V4cC5ycwkxOTcw LTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsMTEyICswLDAgQEAKLS0vLyEg VmVydGljYWwgZmxvYXRpbmctcG9pbnQgYGV4cGAKLS0jIVthbGxvdyh1bnVzZWQpXQotLQotLS8v IEZJWE1FIDY0LWJpdCBleHBnbGUgZWxlbSB2ZWN0b3JzIG1pc2V4cGcKLS0KLS11c2UgY3JhdGU6 Oio7Ci0tCi0tcHViKGNyYXRlKSB0cmFpdCBFeHAgewotLSAgICBmbiBleHAoc2VsZikgLT4gU2Vs ZjsKLS19Ci0tCi0tI1thbGxvdyhpbXByb3Blcl9jdHlwZXMpXQotLWV4dGVybiAiQyIgewotLSAg ICAjW2xpbmtfbmFtZSA9ICJsbHZtLmV4cC52MmYzMiJdCi0tICAgIGZuIGV4cF92MmYzMih4OiBm MzJ4MikgLT4gZjMyeDI7Ci0tICAgICNbbGlua19uYW1lID0gImxsdm0uZXhwLnY0ZjMyIl0KLS0g ICAgZm4gZXhwX3Y0ZjMyKHg6IGYzMng0KSAtPiBmMzJ4NDsKLS0gICAgI1tsaW5rX25hbWUgPSAi bGx2bS5leHAudjhmMzIiXQotLSAgICBmbiBleHBfdjhmMzIoeDogZjMyeDgpIC0+IGYzMng4Owot LSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmV4cC52MTZmMzIiXQotLSAgICBmbiBleHBfdjE2ZjMy KHg6IGYzMngxNikgLT4gZjMyeDE2OwotLSAgICAvKiBGSVhNRSA2NC1iaXQgZXhwZ2xlIGVsZW0g dmVjdG9ycwotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmV4cC52MWY2NCJdCi0tICAgIGZuIGV4 cF92MWY2NCh4OiBmNjR4MSkgLT4gZjY0eDE7Ci0tICAgICAqLwotLSAgICAjW2xpbmtfbmFtZSA9 ICJsbHZtLmV4cC52MmY2NCJdCi0tICAgIGZuIGV4cF92MmY2NCh4OiBmNjR4MikgLT4gZjY0eDI7 Ci0tICAgICNbbGlua19uYW1lID0gImxsdm0uZXhwLnY0ZjY0Il0KLS0gICAgZm4gZXhwX3Y0ZjY0 KHg6IGY2NHg0KSAtPiBmNjR4NDsKLS0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5leHAudjhmNjQi XQotLSAgICBmbiBleHBfdjhmNjQoeDogZjY0eDgpIC0+IGY2NHg4OwotLQotLSAgICAjW2xpbmtf bmFtZSA9ICJsbHZtLmV4cC5mMzIiXQotLSAgICBmbiBleHBfZjMyKHg6IGYzMikgLT4gZjMyOwot LSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmV4cC5mNjQiXQotLSAgICBmbiBleHBfZjY0KHg6IGY2 NCkgLT4gZjY0OwotLX0KLS0KLS1nZW5fdW5hcnlfaW1wbF90YWJsZSEoRXhwLCBleHApOwotLQot LWNmZ19pZiEgewotLSAgICBpZiAjW2NmZyh0YXJnZXRfYXJjaCA9ICJzMzkweCIpXSB7Ci0tICAg ICAgICAvLyBGSVhNRTogaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy1udXJzZXJ5L3BhY2tl ZF9zaW1kL2lzc3Vlcy8xNAotLSAgICAgICAgaW1wbF91bmFyeSEoZjMyeDJbZjMyOyAyXTogZXhw X2YzMik7Ci0tICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4NFtmMzI7IDRdOiBleHBfZjMyKTsKLS0g ICAgICAgIGltcGxfdW5hcnkhKGYzMng4W2YzMjsgOF06IGV4cF9mMzIpOwotLSAgICAgICAgaW1w bF91bmFyeSEoZjMyeDE2W2YzMjsgMTZdOiBleHBfZjMyKTsKLS0KLS0gICAgICAgIGltcGxfdW5h cnkhKGY2NHgyW2Y2NDsgMl06IGV4cF9mNjQpOwotLSAgICAgICAgaW1wbF91bmFyeSEoZjY0eDRb ZjY0OyA0XTogZXhwX2Y2NCk7Ci0tICAgICAgICBpbXBsX3VuYXJ5IShmNjR4OFtmNjQ7IDhdOiBl eHBfZjY0KTsKLS0gICAgfSBlbHNlIGlmICNbY2ZnKGFsbCh0YXJnZXRfYXJjaCA9ICJ4ODZfNjQi LCBmZWF0dXJlID0gInNsZWVmLXN5cyIpKV0gewotLSAgICAgICAgdXNlIHNsZWVmX3N5czo6KjsK LS0gICAgICAgIGNmZ19pZiEgewotLSAgICAgICAgICAgIGlmICNbY2ZnKHRhcmdldF9mZWF0dXJl ID0gImF2eDIiKV0gewotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4Mlt0ID0+IGYz Mng0XTogU2xlZWZfZXhwZjRfdTEwYXZ4MjEyOCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5h cnkhKGYzMngxNltoID0+IGYzMng4XTogU2xlZWZfZXhwZjhfdTEwYXZ4Mik7Ci0tICAgICAgICAg ICAgICAgIGltcGxfdW5hcnkhKGY2NHg4W2ggPT4gZjY0eDRdOiBTbGVlZl9leHBkNF91MTBhdngy KTsKLS0KLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDQ6IFNsZWVmX2V4cGY0X3Ux MGF2eDIxMjgpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4ODogU2xlZWZfZXhw ZjhfdTEwYXZ4Mik7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHgyOiBTbGVlZl9l eHBkMl91MTBhdngyMTI4KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDQ6IFNs ZWVmX2V4cGQ0X3UxMGF2eDIpOwotLSAgICAgICAgICAgIH0gZWxzZSBpZiAjW2NmZyh0YXJnZXRf ZmVhdHVyZSA9ICJhdngiKV0gewotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4Mlt0 ID0+IGYzMng0XTogU2xlZWZfZXhwZjRfdTEwc3NlNCk7Ci0tICAgICAgICAgICAgICAgIGltcGxf dW5hcnkhKGYzMngxNltoID0+IGYzMng4XTogU2xlZWZfZXhwZjhfdTEwYXZ4KTsKLS0gICAgICAg ICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDhbaCA9PiBmNjR4NF06IFNsZWVmX2V4cGQ0X3UxMGF2 eCk7Ci0tCi0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng0OiBTbGVlZl9leHBmNF91 MTBzc2U0KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDg6IFNsZWVmX2V4cGY4 X3UxMGF2eCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHgyOiBTbGVlZl9leHBk Ml91MTBzc2U0KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDQ6IFNsZWVmX2V4 cGQ0X3UxMGF2eCk7Ci0tICAgICAgICAgICAgfSBlbHNlIGlmICNbY2ZnKHRhcmdldF9mZWF0dXJl ID0gInNzZTQuMiIpXSB7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMngyW3QgPT4g ZjMyeDRdOiBTbGVlZl9leHBmNF91MTBzc2U0KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFy eSEoZjMyeDE2W3EgPT4gZjMyeDRdOiBTbGVlZl9leHBmNF91MTBzc2U0KTsKLS0gICAgICAgICAg ICAgICAgaW1wbF91bmFyeSEoZjY0eDhbcSA9PiBmNjR4Ml06IFNsZWVmX2V4cGQyX3UxMHNzZTQp OwotLQotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4NDogU2xlZWZfZXhwZjRfdTEw c3NlNCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng4W2ggPT4gZjMyeDRdOiBT bGVlZl9leHBmNF91MTBzc2U0KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDI6 IFNsZWVmX2V4cGQyX3UxMHNzZTQpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4 NFtoID0+IGY2NHgyXTogU2xlZWZfZXhwZDJfdTEwc3NlNCk7Ci0tICAgICAgICAgICAgfSBlbHNl IGlmICNbY2ZnKHRhcmdldF9mZWF0dXJlID0gInNzZTIiKV0gewotLSAgICAgICAgICAgICAgICBp bXBsX3VuYXJ5IShmMzJ4Mlt0ID0+IGYzMng0XTogU2xlZWZfZXhwZjRfdTEwc3NlMik7Ci0tICAg ICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMngxNltxID0+IGYzMng0XTogU2xlZWZfZXhwZjRf dTEwc3NlMik7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg4W3EgPT4gZjY0eDJd OiBTbGVlZl9leHBkMl91MTBzc2UyKTsKLS0KLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEo ZjMyeDQ6IFNsZWVmX2V4cGY0X3UxMHNzZTIpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5 IShmMzJ4OFtoID0+IGYzMng0XTogU2xlZWZfZXhwZjRfdTEwc3NlMik7Ci0tICAgICAgICAgICAg ICAgIGltcGxfdW5hcnkhKGY2NHgyOiBTbGVlZl9leHBkMl91MTBzc2UyKTsKLS0gICAgICAgICAg ICAgICAgaW1wbF91bmFyeSEoZjY0eDRbaCA9PiBmNjR4Ml06IFNsZWVmX2V4cGQyX3UxMHNzZTIp OwotLSAgICAgICAgICAgIH0gZWxzZSB7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYz MngyW2YzMjsgMl06IGV4cF9mMzIpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4 MTY6IGV4cF92MTZmMzIpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4ODogZXhw X3Y4ZjY0KTsKLS0KLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDQ6IGV4cF92NGYz Mik7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng4OiBleHBfdjhmMzIpOwotLSAg ICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4MjogZXhwX3YyZjY0KTsKLS0gICAgICAgICAg ICAgICAgaW1wbF91bmFyeSEoZjY0eDQ6IGV4cF92NGY2NCk7Ci0tICAgICAgICAgICAgfQotLSAg ICAgICAgfQotLSAgICB9IGVsc2UgewotLSAgICAgICAgaW1wbF91bmFyeSEoZjMyeDJbZjMyOyAy XTogZXhwX2YzMik7Ci0tICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4NDogZXhwX3Y0ZjMyKTsKLS0g ICAgICAgIGltcGxfdW5hcnkhKGYzMng4OiBleHBfdjhmMzIpOwotLSAgICAgICAgaW1wbF91bmFy eSEoZjMyeDE2OiBleHBfdjE2ZjMyKTsKLS0KLS0gICAgICAgIGltcGxfdW5hcnkhKGY2NHgyOiBl eHBfdjJmNjQpOwotLSAgICAgICAgaW1wbF91bmFyeSEoZjY0eDQ6IGV4cF92NGY2NCk7Ci0tICAg ICAgICBpbXBsX3VuYXJ5IShmNjR4ODogZXhwX3Y4ZjY0KTsKLS0gICAgfQotLX0KLWRpZmYgLU5y YnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL21hdGgvZmxvYXQv bG4ucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL21hdGgvZmxv YXQvbG4ucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4v bWF0aC9mbG9hdC9sbi5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysr IGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9tYXRoL2Zsb2F0L2xu LnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSwxMTIgKzAsMCBA QAotLS8vISBWZXJ0aWNhbCBmbG9hdGluZy1wb2ludCBgbG5gCi0tIyFbYWxsb3codW51c2VkKV0K LS0KLS0vLyBGSVhNRSA2NC1iaXQgbG5nbGUgZWxlbSB2ZWN0b3JzIG1pc2xuZwotLQotLXVzZSBj cmF0ZTo6KjsKLS0KLS1wdWIoY3JhdGUpIHRyYWl0IExuIHsKLS0gICAgZm4gbG4oc2VsZikgLT4g U2VsZjsKLS19Ci0tCi0tI1thbGxvdyhpbXByb3Blcl9jdHlwZXMpXQotLWV4dGVybiAiQyIgewot LSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmxvZy52MmYzMiJdCi0tICAgIGZuIGxuX3YyZjMyKHg6 IGYzMngyKSAtPiBmMzJ4MjsKLS0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5sb2cudjRmMzIiXQot LSAgICBmbiBsbl92NGYzMih4OiBmMzJ4NCkgLT4gZjMyeDQ7Ci0tICAgICNbbGlua19uYW1lID0g Imxsdm0ubG9nLnY4ZjMyIl0KLS0gICAgZm4gbG5fdjhmMzIoeDogZjMyeDgpIC0+IGYzMng4Owot LSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmxvZy52MTZmMzIiXQotLSAgICBmbiBsbl92MTZmMzIo eDogZjMyeDE2KSAtPiBmMzJ4MTY7Ci0tICAgIC8qIEZJWE1FIDY0LWJpdCBsbmdsZSBlbGVtIHZl Y3RvcnMKLS0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5sb2cudjFmNjQiXQotLSAgICBmbiBsbl92 MWY2NCh4OiBmNjR4MSkgLT4gZjY0eDE7Ci0tICAgICAqLwotLSAgICAjW2xpbmtfbmFtZSA9ICJs bHZtLmxvZy52MmY2NCJdCi0tICAgIGZuIGxuX3YyZjY0KHg6IGY2NHgyKSAtPiBmNjR4MjsKLS0g ICAgI1tsaW5rX25hbWUgPSAibGx2bS5sb2cudjRmNjQiXQotLSAgICBmbiBsbl92NGY2NCh4OiBm NjR4NCkgLT4gZjY0eDQ7Ci0tICAgICNbbGlua19uYW1lID0gImxsdm0ubG9nLnY4ZjY0Il0KLS0g ICAgZm4gbG5fdjhmNjQoeDogZjY0eDgpIC0+IGY2NHg4OwotLQotLSAgICAjW2xpbmtfbmFtZSA9 ICJsbHZtLmxvZy5mMzIiXQotLSAgICBmbiBsbl9mMzIoeDogZjMyKSAtPiBmMzI7Ci0tICAgICNb bGlua19uYW1lID0gImxsdm0ubG9nLmY2NCJdCi0tICAgIGZuIGxuX2Y2NCh4OiBmNjQpIC0+IGY2 NDsKLS19Ci0tCi0tZ2VuX3VuYXJ5X2ltcGxfdGFibGUhKExuLCBsbik7Ci0tCi0tY2ZnX2lmISB7 Ci0tICAgIGlmICNbY2ZnKHRhcmdldF9hcmNoID0gInMzOTB4IildIHsKLS0gICAgICAgIC8vIEZJ WE1FOiBodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nLW51cnNlcnkvcGFja2VkX3NpbWQvaXNz dWVzLzE0Ci0tICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4MltmMzI7IDJdOiBsbl9mMzIpOwotLSAg ICAgICAgaW1wbF91bmFyeSEoZjMyeDRbZjMyOyA0XTogbG5fZjMyKTsKLS0gICAgICAgIGltcGxf dW5hcnkhKGYzMng4W2YzMjsgOF06IGxuX2YzMik7Ci0tICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4 MTZbZjMyOyAxNl06IGxuX2YzMik7Ci0tCi0tICAgICAgICBpbXBsX3VuYXJ5IShmNjR4MltmNjQ7 IDJdOiBsbl9mNjQpOwotLSAgICAgICAgaW1wbF91bmFyeSEoZjY0eDRbZjY0OyA0XTogbG5fZjY0 KTsKLS0gICAgICAgIGltcGxfdW5hcnkhKGY2NHg4W2Y2NDsgOF06IGxuX2Y2NCk7Ci0tICAgIH0g ZWxzZSBpZiAjW2NmZyhhbGwodGFyZ2V0X2FyY2ggPSAieDg2XzY0IiwgZmVhdHVyZSA9ICJzbGVl Zi1zeXMiKSldIHsKLS0gICAgICAgIHVzZSBzbGVlZl9zeXM6Oio7Ci0tICAgICAgICBjZmdfaWYh IHsKLS0gICAgICAgICAgICBpZiAjW2NmZyh0YXJnZXRfZmVhdHVyZSA9ICJhdngyIildIHsKLS0g ICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDJbdCA9PiBmMzJ4NF06IFNsZWVmX2xvZ2Y0 X3UxMGF2eDIxMjgpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4MTZbaCA9PiBm MzJ4OF06IFNsZWVmX2xvZ2Y4X3UxMGF2eDIpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5 IShmNjR4OFtoID0+IGY2NHg0XTogU2xlZWZfbG9nZDRfdTEwYXZ4Mik7Ci0tCi0tICAgICAgICAg ICAgICAgIGltcGxfdW5hcnkhKGYzMng0OiBTbGVlZl9sb2dmNF91MTBhdngyMTI4KTsKLS0gICAg ICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDg6IFNsZWVmX2xvZ2Y4X3UxMGF2eDIpOwotLSAg ICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4MjogU2xlZWZfbG9nZDJfdTEwYXZ4MjEyOCk7 Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg0OiBTbGVlZl9sb2dkNF91MTBhdngy KTsKLS0gICAgICAgICAgICB9IGVsc2UgaWYgI1tjZmcodGFyZ2V0X2ZlYXR1cmUgPSAiYXZ4Iild IHsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDJbdCA9PiBmMzJ4NF06IFNsZWVm X2xvZ2Y0X3UxMHNzZTQpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4MTZbaCA9 PiBmMzJ4OF06IFNsZWVmX2xvZ2Y4X3UxMGF2eCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5h cnkhKGY2NHg4W2ggPT4gZjY0eDRdOiBTbGVlZl9sb2dkNF91MTBhdngpOwotLQotLSAgICAgICAg ICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4NDogU2xlZWZfbG9nZjRfdTEwc3NlNCk7Ci0tICAgICAg ICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng4OiBTbGVlZl9sb2dmOF91MTBhdngpOwotLSAgICAg ICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4MjogU2xlZWZfbG9nZDJfdTEwc3NlNCk7Ci0tICAg ICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg0OiBTbGVlZl9sb2dkNF91MTBhdngpOwotLSAg ICAgICAgICAgIH0gZWxzZSBpZiAjW2NmZyh0YXJnZXRfZmVhdHVyZSA9ICJzc2U0LjIiKV0gewot LSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4Mlt0ID0+IGYzMng0XTogU2xlZWZfbG9n ZjRfdTEwc3NlNCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMngxNltxID0+IGYz Mng0XTogU2xlZWZfbG9nZjRfdTEwc3NlNCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkh KGY2NHg4W3EgPT4gZjY0eDJdOiBTbGVlZl9sb2dkMl91MTBzc2U0KTsKLS0KLS0gICAgICAgICAg ICAgICAgaW1wbF91bmFyeSEoZjMyeDQ6IFNsZWVmX2xvZ2Y0X3UxMHNzZTQpOwotLSAgICAgICAg ICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4OFtoID0+IGYzMng0XTogU2xlZWZfbG9nZjRfdTEwc3Nl NCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHgyOiBTbGVlZl9sb2dkMl91MTBz c2U0KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDRbaCA9PiBmNjR4Ml06IFNs ZWVmX2xvZ2QyX3UxMHNzZTQpOwotLSAgICAgICAgICAgIH0gZWxzZSBpZiAjW2NmZyh0YXJnZXRf ZmVhdHVyZSA9ICJzc2UyIildIHsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDJb dCA9PiBmMzJ4NF06IFNsZWVmX2xvZ2Y0X3UxMHNzZTIpOwotLSAgICAgICAgICAgICAgICBpbXBs X3VuYXJ5IShmMzJ4MTZbcSA9PiBmMzJ4NF06IFNsZWVmX2xvZ2Y0X3UxMHNzZTIpOwotLSAgICAg ICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4OFtxID0+IGY2NHgyXTogU2xlZWZfbG9nZDJfdTEw c3NlMik7Ci0tCi0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng0OiBTbGVlZl9sb2dm NF91MTBzc2UyKTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDhbaCA9PiBmMzJ4 NF06IFNsZWVmX2xvZ2Y0X3UxMHNzZTIpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShm NjR4MjogU2xlZWZfbG9nZDJfdTEwc3NlMik7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkh KGY2NHg0W2ggPT4gZjY0eDJdOiBTbGVlZl9sb2dkMl91MTBzc2UyKTsKLS0gICAgICAgICAgICB9 IGVsc2UgewotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4MltmMzI7IDJdOiBsbl9m MzIpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4MTY6IGxuX3YxNmYzMik7Ci0t ICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg4OiBsbl92OGY2NCk7Ci0tCi0tICAgICAg ICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng0OiBsbl92NGYzMik7Ci0tICAgICAgICAgICAgICAg IGltcGxfdW5hcnkhKGYzMng4OiBsbl92OGYzMik7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5h cnkhKGY2NHgyOiBsbl92MmY2NCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg0 OiBsbl92NGY2NCk7Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICB9IGVsc2Ugewot LSAgICAgICAgaW1wbF91bmFyeSEoZjMyeDJbZjMyOyAyXTogbG5fZjMyKTsKLS0gICAgICAgIGlt cGxfdW5hcnkhKGYzMng0OiBsbl92NGYzMik7Ci0tICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4ODog bG5fdjhmMzIpOwotLSAgICAgICAgaW1wbF91bmFyeSEoZjMyeDE2OiBsbl92MTZmMzIpOwotLQot LSAgICAgICAgaW1wbF91bmFyeSEoZjY0eDI6IGxuX3YyZjY0KTsKLS0gICAgICAgIGltcGxfdW5h cnkhKGY2NHg0OiBsbl92NGY2NCk7Ci0tICAgICAgICBpbXBsX3VuYXJ5IShmNjR4ODogbG5fdjhm NjQpOwotLSAgICB9Ci0tfQotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3Np bWQvc3JjL2NvZGVnZW4vbWF0aC9mbG9hdC9tYWNyb3MucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3Bh Y2tlZF9zaW1kL3NyYy9jb2RlZ2VuL21hdGgvZmxvYXQvbWFjcm9zLnJzCi0tLS0gYS90aGlyZF9w YXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL21hdGgvZmxvYXQvbWFjcm9zLnJzCTIw MjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0 L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL21hdGgvZmxvYXQvbWFjcm9zLnJzCTE5NzAtMDEtMDEg MDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSw0NzAgKzAsMCBAQAotLS8vISBVdGlsaXR5 IG1hY3JvcwotLSMhW2FsbG93KHVudXNlZCldCi0tCi0tbWFjcm9fcnVsZXMhIGltcGxfdW5hcnlf IHsKLS0gICAgLy8gaW1wbGVtZW50YXRpb24gbWFwcGluZyAxOjEKLS0gICAgKHZlYyB8ICR0cmFp dF9pZDppZGVudCwgJHRyYWl0X21ldGhvZDppZGVudCwgJHZlY19pZDppZGVudCwKLS0gICAgICRm dW46aWRlbnQpID0+IHsKLS0gICAgICAgIGltcGwgJHRyYWl0X2lkIGZvciAkdmVjX2lkIHsKLS0g ICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBmbiAkdHJhaXRfbWV0aG9kKHNlbGYp IC0+IFNlbGYgewotLSAgICAgICAgICAgICAgICB1bnNhZmUgewotLSAgICAgICAgICAgICAgICAg ICAgdXNlIGNyYXRlOjptZW06OnRyYW5zbXV0ZTsKLS0gICAgICAgICAgICAgICAgICAgIHRyYW5z bXV0ZSgkZnVuKHRyYW5zbXV0ZShzZWxmKSkpCi0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAg ICAgICB9Ci0tICAgICAgICB9Ci0tICAgIH07Ci0tICAgIC8vIGltcGxlbWVudGF0aW9uIG1hcHBp bmcgMToxIGZvciB3aGVuIGAkZnVuYCBpcyBhIGdlbmVyaWMgZnVuY3Rpb24KLS0gICAgLy8gbGlr ZSBzb21lIG9mIHRoZSBmcCBtYXRoIHJ1c3RjIGludHJpbnNpY3MgKGUuZy4gYGZuIGZ1bjxUPih4 OiBUKSAtPiBUYCkuCi0tICAgIChnZW4gfCAkdHJhaXRfaWQ6aWRlbnQsICR0cmFpdF9tZXRob2Q6 aWRlbnQsICR2ZWNfaWQ6aWRlbnQsCi0tICAgICAkZnVuOmlkZW50KSA9PiB7Ci0tICAgICAgICBp bXBsICR0cmFpdF9pZCBmb3IgJHZlY19pZCB7Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAg ICAgICAgICAgZm4gJHRyYWl0X21ldGhvZChzZWxmKSAtPiBTZWxmIHsKLS0gICAgICAgICAgICAg ICAgdW5zYWZlIHsKLS0gICAgICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6bWVtOjp0cmFuc211 dGU7Ci0tICAgICAgICAgICAgICAgICAgICB0cmFuc211dGUoJGZ1bihzZWxmLjApKQotLSAgICAg ICAgICAgICAgICB9Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICB9OwotLSAgICAo c2NhbGFyIHwgJHRyYWl0X2lkOmlkZW50LCAkdHJhaXRfbWV0aG9kOmlkZW50LAotLSAgICAgJHZl Y19pZDppZGVudCwgWyRzaWQ6aWRlbnQ7ICRzY291bnQ6ZXhwcl0sICRmdW46aWRlbnQpID0+IHsK LS0gICAgICAgIGltcGwgJHRyYWl0X2lkIGZvciAkdmVjX2lkIHsKLS0gICAgICAgICAgICAjW2lu bGluZV0KLS0gICAgICAgICAgICBmbiAkdHJhaXRfbWV0aG9kKHNlbGYpIC0+IFNlbGYgewotLSAg ICAgICAgICAgICAgICB1bnNhZmUgewotLSAgICAgICAgICAgICAgICAgICAgdW5pb24gVSB7Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgdmVjOiAkdmVjX2lkLAotLSAgICAgICAgICAgICAgICAg ICAgICAgIHNjYWxhcnM6IFskc2lkOyAkc2NvdW50XSwKLS0gICAgICAgICAgICAgICAgICAgIH0K LS0gICAgICAgICAgICAgICAgICAgIGxldCBtdXQgc2NhbGFycyA9IFUgeyB2ZWM6IHNlbGYgfS5z Y2FsYXJzOwotLSAgICAgICAgICAgICAgICAgICAgZm9yIGkgaW4gJm11dCBzY2FsYXJzIHsKLS0g ICAgICAgICAgICAgICAgICAgICAgICAqaSA9ICRmdW4oKmkpOwotLSAgICAgICAgICAgICAgICAg ICAgfQotLSAgICAgICAgICAgICAgICAgICAgVSB7IHNjYWxhcnMgfS52ZWMKLS0gICAgICAgICAg ICAgICAgfQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgfTsKLS0gICAgLy8gaW1w bGVtZW50YXRpb24gY2FsbGluZyBmdW4gdHdpY2Ugb24gZWFjaCBvZiB0aGUgdmVjdG9yIGhhbHZl czoKLS0gICAgKGhhbHZlcyB8ICR0cmFpdF9pZDppZGVudCwgJHRyYWl0X21ldGhvZDppZGVudCwg JHZlY19pZDppZGVudCwKLS0gICAgICR2ZWNoX2lkOmlkZW50LCAkZnVuOmlkZW50KSA9PiB7Ci0t ICAgICAgICBpbXBsICR0cmFpdF9pZCBmb3IgJHZlY19pZCB7Ci0tICAgICAgICAgICAgI1tpbmxp bmVdCi0tICAgICAgICAgICAgZm4gJHRyYWl0X21ldGhvZChzZWxmKSAtPiBTZWxmIHsKLS0gICAg ICAgICAgICAgICAgdW5zYWZlIHsKLS0gICAgICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6bWVt Ojp0cmFuc211dGU7Ci0tICAgICAgICAgICAgICAgICAgICB1bmlvbiBVIHsKLS0gICAgICAgICAg ICAgICAgICAgICAgICB2ZWM6ICR2ZWNfaWQsCi0tICAgICAgICAgICAgICAgICAgICAgICAgaGFs dmVzOiBbJHZlY2hfaWQ7IDJdLAotLSAgICAgICAgICAgICAgICAgICAgfQotLQotLSAgICAgICAg ICAgICAgICAgICAgbGV0IG11dCBoYWx2ZXMgPSBVIHsgdmVjOiBzZWxmIH0uaGFsdmVzOwotLQot LSAgICAgICAgICAgICAgICAgICAgKmhhbHZlcy5nZXRfdW5jaGVja2VkX211dCgwKSA9IHRyYW5z bXV0ZSgkZnVuKHRyYW5zbXV0ZSgqaGFsdmVzLmdldF91bmNoZWNrZWQoMCkpKSk7Ci0tICAgICAg ICAgICAgICAgICAgICAqaGFsdmVzLmdldF91bmNoZWNrZWRfbXV0KDEpID0gdHJhbnNtdXRlKCRm dW4odHJhbnNtdXRlKCpoYWx2ZXMuZ2V0X3VuY2hlY2tlZCgxKSkpKTsKLS0KLS0gICAgICAgICAg ICAgICAgICAgIFUgeyBoYWx2ZXMgfS52ZWMKLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAg ICAgIH0KLS0gICAgICAgIH0KLS0gICAgfTsKLS0gICAgLy8gaW1wbGVtZW50YXRpb24gY2FsbGlu ZyBmdW4gZm91ciB0aW1lcyBvbiBlYWNoIG9mIHRoZSB2ZWN0b3IgcXVhcnRlcnM6Ci0tICAgIChx dWFydGVyIHwgJHRyYWl0X2lkOmlkZW50LCAkdHJhaXRfbWV0aG9kOmlkZW50LCAkdmVjX2lkOmlk ZW50LAotLSAgICAgJHZlY3FfaWQ6aWRlbnQsICRmdW46aWRlbnQpID0+IHsKLS0gICAgICAgIGlt cGwgJHRyYWl0X2lkIGZvciAkdmVjX2lkIHsKLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAg ICAgICAgICBmbiAkdHJhaXRfbWV0aG9kKHNlbGYpIC0+IFNlbGYgewotLSAgICAgICAgICAgICAg ICB1bnNhZmUgewotLSAgICAgICAgICAgICAgICAgICAgdXNlIGNyYXRlOjptZW06OnRyYW5zbXV0 ZTsKLS0gICAgICAgICAgICAgICAgICAgIHVuaW9uIFUgewotLSAgICAgICAgICAgICAgICAgICAg ICAgIHZlYzogJHZlY19pZCwKLS0gICAgICAgICAgICAgICAgICAgICAgICBxdWFydGVyczogWyR2 ZWNxX2lkOyA0XSwKLS0gICAgICAgICAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAgICAg ICAgIGxldCBtdXQgcXVhcnRlcnMgPSBVIHsgdmVjOiBzZWxmIH0ucXVhcnRlcnM7Ci0tCi0tICAg ICAgICAgICAgICAgICAgICAqcXVhcnRlcnMuZ2V0X3VuY2hlY2tlZF9tdXQoMCkgPSB0cmFuc211 dGUoJGZ1bih0cmFuc211dGUoKnF1YXJ0ZXJzLmdldF91bmNoZWNrZWQoMCkpKSk7Ci0tICAgICAg ICAgICAgICAgICAgICAqcXVhcnRlcnMuZ2V0X3VuY2hlY2tlZF9tdXQoMSkgPSB0cmFuc211dGUo JGZ1bih0cmFuc211dGUoKnF1YXJ0ZXJzLmdldF91bmNoZWNrZWQoMSkpKSk7Ci0tICAgICAgICAg ICAgICAgICAgICAqcXVhcnRlcnMuZ2V0X3VuY2hlY2tlZF9tdXQoMikgPSB0cmFuc211dGUoJGZ1 bih0cmFuc211dGUoKnF1YXJ0ZXJzLmdldF91bmNoZWNrZWQoMikpKSk7Ci0tICAgICAgICAgICAg ICAgICAgICAqcXVhcnRlcnMuZ2V0X3VuY2hlY2tlZF9tdXQoMykgPSB0cmFuc211dGUoJGZ1bih0 cmFuc211dGUoKnF1YXJ0ZXJzLmdldF91bmNoZWNrZWQoMykpKSk7Ci0tCi0tICAgICAgICAgICAg ICAgICAgICBVIHsgcXVhcnRlcnMgfS52ZWMKLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAg ICAgIH0KLS0gICAgICAgIH0KLS0gICAgfTsKLS0gICAgLy8gaW1wbGVtZW50YXRpb24gY2FsbGlu ZyBmdW4gb25jZSBvbiBhIHZlY3RvciB0d2ljZSBhcyBsYXJnZToKLS0gICAgKHR3aWNlIHwgJHRy YWl0X2lkOmlkZW50LCAkdHJhaXRfbWV0aG9kOmlkZW50LCAkdmVjX2lkOmlkZW50LAotLSAgICAg JHZlY3RfaWQ6aWRlbnQsICRmdW46aWRlbnQpID0+IHsKLS0gICAgICAgIGltcGwgJHRyYWl0X2lk IGZvciAkdmVjX2lkIHsKLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBmbiAk dHJhaXRfbWV0aG9kKHNlbGYpIC0+IFNlbGYgewotLSAgICAgICAgICAgICAgICB1bnNhZmUgewot LSAgICAgICAgICAgICAgICAgICAgdXNlIGNyYXRlOjptZW06Ont0cmFuc211dGUsIHVuaW5pdGlh bGl6ZWR9OwotLQotLSAgICAgICAgICAgICAgICAgICAgdW5pb24gVSB7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgdmVjOiBbJHZlY19pZDsgMl0sCi0tICAgICAgICAgICAgICAgICAgICAgICAg dHdpY2U6ICR2ZWN0X2lkLAotLSAgICAgICAgICAgICAgICAgICAgfQotLQotLSAgICAgICAgICAg ICAgICAgICAgbGV0IHR3aWNlID0gVSB7IHZlYzogW3NlbGYsIHVuaW5pdGlhbGl6ZWQoKV0gfS50 d2ljZTsKLS0gICAgICAgICAgICAgICAgICAgIGxldCB0d2ljZSA9IHRyYW5zbXV0ZSgkZnVuKHRy YW5zbXV0ZSh0d2ljZSkpKTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICooVSB7IHR3aWNlIH0u dmVjLmdldF91bmNoZWNrZWQoMCkpCi0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICB9 Ci0tICAgICAgICB9Ci0tICAgIH07Ci0tfQotLQotLW1hY3JvX3J1bGVzISBnZW5fdW5hcnlfaW1w bF90YWJsZSB7Ci0tICAgICgkdHJhaXRfaWQ6aWRlbnQsICR0cmFpdF9tZXRob2Q6aWRlbnQpID0+ IHsKLS0gICAgICAgIG1hY3JvX3J1bGVzISBpbXBsX3VuYXJ5IHsKLS0gICAgICAgICAgICAoJHZp ZDppZGVudDogJGZ1bjppZGVudCkgPT4gewotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5XyEo dmVjIHwgJHRyYWl0X2lkLCAkdHJhaXRfbWV0aG9kLCAkdmlkLCAkZnVuKTsKLS0gICAgICAgICAg ICB9OwotLSAgICAgICAgICAgICgkdmlkOmlkZW50W2ddOiAkZnVuOmlkZW50KSA9PiB7Ci0tICAg ICAgICAgICAgICAgIGltcGxfdW5hcnlfIShnZW4gfCAkdHJhaXRfaWQsICR0cmFpdF9tZXRob2Qs ICR2aWQsICRmdW4pOwotLSAgICAgICAgICAgIH07Ci0tICAgICAgICAgICAgKCR2aWQ6aWRlbnRb JHNpZDppZGVudDsgJHNjOmV4cHJdOiAkZnVuOmlkZW50KSA9PiB7Ci0tICAgICAgICAgICAgICAg IGltcGxfdW5hcnlfIShzY2FsYXIgfCAkdHJhaXRfaWQsICR0cmFpdF9tZXRob2QsICR2aWQsIFsk c2lkOyAkc2NdLCAkZnVuKTsKLS0gICAgICAgICAgICB9OwotLSAgICAgICAgICAgICgkdmlkOmlk ZW50W3NdOiAkZnVuOmlkZW50KSA9PiB7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnlfIShz Y2FsYXIgfCAkdHJhaXRfaWQsICR0cmFpdF9tZXRob2QsICR2aWQsICRmdW4pOwotLSAgICAgICAg ICAgIH07Ci0tICAgICAgICAgICAgKCR2aWQ6aWRlbnRbaCA9PiAkdmlkX2g6aWRlbnRdOiAkZnVu OmlkZW50KSA9PiB7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnlfIShoYWx2ZXMgfCAkdHJh aXRfaWQsICR0cmFpdF9tZXRob2QsICR2aWQsICR2aWRfaCwgJGZ1bik7Ci0tICAgICAgICAgICAg fTsKLS0gICAgICAgICAgICAoJHZpZDppZGVudFtxID0+ICR2aWRfcTppZGVudF06ICRmdW46aWRl bnQpID0+IHsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeV8hKHF1YXJ0ZXIgfCAkdHJhaXRf aWQsICR0cmFpdF9tZXRob2QsICR2aWQsICR2aWRfcSwgJGZ1bik7Ci0tICAgICAgICAgICAgfTsK LS0gICAgICAgICAgICAoJHZpZDppZGVudFt0ID0+ICR2aWRfdDppZGVudF06ICRmdW46aWRlbnQp ID0+IHsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeV8hKHR3aWNlIHwgJHRyYWl0X2lkLCAk dHJhaXRfbWV0aG9kLCAkdmlkLCAkdmlkX3QsICRmdW4pOwotLSAgICAgICAgICAgIH07Ci0tICAg ICAgICB9Ci0tICAgIH07Ci0tfQotLQotLW1hY3JvX3J1bGVzISBpbXBsX3RlcnRpYXJ5XyB7Ci0t ICAgIC8vIGltcGxlbWVudGF0aW9uIG1hcHBpbmcgMToxCi0tICAgICh2ZWMgfCAkdHJhaXRfaWQ6 aWRlbnQsICR0cmFpdF9tZXRob2Q6aWRlbnQsICR2ZWNfaWQ6aWRlbnQsCi0tICAgICAkZnVuOmlk ZW50KSA9PiB7Ci0tICAgICAgICBpbXBsICR0cmFpdF9pZCBmb3IgJHZlY19pZCB7Ci0tICAgICAg ICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgZm4gJHRyYWl0X21ldGhvZChzZWxmLCB5OiBT ZWxmLCB6OiBTZWxmKSAtPiBTZWxmIHsKLS0gICAgICAgICAgICAgICAgdW5zYWZlIHsKLS0gICAg ICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6bWVtOjp0cmFuc211dGU7Ci0tICAgICAgICAgICAg ICAgICAgICB0cmFuc211dGUoJGZ1bih0cmFuc211dGUoc2VsZiksIHRyYW5zbXV0ZSh5KSwgdHJh bnNtdXRlKHopKSkKLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgIH0KLS0gICAgICAg IH0KLS0gICAgfTsKLS0gICAgKHNjYWxhciB8ICR0cmFpdF9pZDppZGVudCwgJHRyYWl0X21ldGhv ZDppZGVudCwKLS0gICAgICR2ZWNfaWQ6aWRlbnQsIFskc2lkOmlkZW50OyAkc2NvdW50OmV4cHJd LCAkZnVuOmlkZW50KSA9PiB7Ci0tICAgICAgICBpbXBsICR0cmFpdF9pZCBmb3IgJHZlY19pZCB7 Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgZm4gJHRyYWl0X21ldGhvZChz ZWxmLCB5OiBTZWxmLCB6OiBTZWxmKSAtPiBTZWxmIHsKLS0gICAgICAgICAgICAgICAgdW5zYWZl IHsKLS0gICAgICAgICAgICAgICAgICAgIHVuaW9uIFUgewotLSAgICAgICAgICAgICAgICAgICAg ICAgIHZlYzogJHZlY19pZCwKLS0gICAgICAgICAgICAgICAgICAgICAgICBzY2FsYXJzOiBbJHNp ZDsgJHNjb3VudF0sCi0tICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAg ICBsZXQgbXV0IHggPSBVIHsgdmVjOiBzZWxmIH0uc2NhbGFyczsKLS0gICAgICAgICAgICAgICAg ICAgIGxldCB5ID0gVSB7IHZlYzogeSB9LnNjYWxhcnM7Ci0tICAgICAgICAgICAgICAgICAgICBs ZXQgeiA9IFUgeyB2ZWM6IHogfS5zY2FsYXJzOwotLSAgICAgICAgICAgICAgICAgICAgZm9yICh4 LCAoeSwgeikpIGluICgmbXV0IHNjYWxhcnMpLnppcCgmeSkuemlwKCZ6KSB7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgKmkgPSAkZnVuKCppLCAqeSwgKnopOwotLSAgICAgICAgICAgICAgICAg ICAgfQotLSAgICAgICAgICAgICAgICAgICAgVSB7IHZlYzogeCB9LnZlYwotLSAgICAgICAgICAg ICAgICB9Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICB9OwotLSAgICAvLyBpbXBs ZW1lbnRhdGlvbiBjYWxsaW5nIGZ1biB0d2ljZSBvbiBlYWNoIG9mIHRoZSB2ZWN0b3IgaGFsdmVz OgotLSAgICAoaGFsdmVzIHwgJHRyYWl0X2lkOmlkZW50LCAkdHJhaXRfbWV0aG9kOmlkZW50LCAk dmVjX2lkOmlkZW50LAotLSAgICAgJHZlY2hfaWQ6aWRlbnQsICRmdW46aWRlbnQpID0+IHsKLS0g ICAgICAgIGltcGwgJHRyYWl0X2lkIGZvciAkdmVjX2lkIHsKLS0gICAgICAgICAgICAjW2lubGlu ZV0KLS0gICAgICAgICAgICBmbiAkdHJhaXRfbWV0aG9kKHNlbGYsIHk6IFNlbGYsIHo6IFNlbGYp IC0+IFNlbGYgewotLSAgICAgICAgICAgICAgICB1bnNhZmUgewotLSAgICAgICAgICAgICAgICAg ICAgdXNlIGNyYXRlOjptZW06OnRyYW5zbXV0ZTsKLS0gICAgICAgICAgICAgICAgICAgIHVuaW9u IFUgewotLSAgICAgICAgICAgICAgICAgICAgICAgIHZlYzogJHZlY19pZCwKLS0gICAgICAgICAg ICAgICAgICAgICAgICBoYWx2ZXM6IFskdmVjaF9pZDsgMl0sCi0tICAgICAgICAgICAgICAgICAg ICB9Ci0tCi0tICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IHhfaGFsdmVzID0gVSB7IHZlYzog c2VsZiB9LmhhbHZlczsKLS0gICAgICAgICAgICAgICAgICAgIGxldCB5X2hhbHZlcyA9IFUgeyB2 ZWM6IHkgfS5oYWx2ZXM7Ci0tICAgICAgICAgICAgICAgICAgICBsZXQgel9oYWx2ZXMgPSBVIHsg dmVjOiB6IH0uaGFsdmVzOwotLQotLSAgICAgICAgICAgICAgICAgICAgKnhfaGFsdmVzLmdldF91 bmNoZWNrZWRfbXV0KDApID0gdHJhbnNtdXRlKCRmdW4oCi0tICAgICAgICAgICAgICAgICAgICAg ICAgdHJhbnNtdXRlKCp4X2hhbHZlcy5nZXRfdW5jaGVja2VkKDApKSwKLS0gICAgICAgICAgICAg ICAgICAgICAgICB0cmFuc211dGUoKnlfaGFsdmVzLmdldF91bmNoZWNrZWQoMCkpLAotLSAgICAg ICAgICAgICAgICAgICAgICAgIHRyYW5zbXV0ZSgqel9oYWx2ZXMuZ2V0X3VuY2hlY2tlZCgwKSks Ci0tICAgICAgICAgICAgICAgICAgICApKTsKLS0gICAgICAgICAgICAgICAgICAgICp4X2hhbHZl cy5nZXRfdW5jaGVja2VkX211dCgxKSA9IHRyYW5zbXV0ZSgkZnVuKAotLSAgICAgICAgICAgICAg ICAgICAgICAgIHRyYW5zbXV0ZSgqeF9oYWx2ZXMuZ2V0X3VuY2hlY2tlZCgxKSksCi0tICAgICAg ICAgICAgICAgICAgICAgICAgdHJhbnNtdXRlKCp5X2hhbHZlcy5nZXRfdW5jaGVja2VkKDEpKSwK LS0gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc211dGUoKnpfaGFsdmVzLmdldF91bmNoZWNr ZWQoMSkpLAotLSAgICAgICAgICAgICAgICAgICAgKSk7Ci0tCi0tICAgICAgICAgICAgICAgICAg ICBVIHsgaGFsdmVzOiB4X2hhbHZlcyB9LnZlYwotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAg ICAgICAgfQotLSAgICAgICAgfQotLSAgICB9OwotLSAgICAvLyBpbXBsZW1lbnRhdGlvbiBjYWxs aW5nIGZ1biBmb3VyIHRpbWVzIG9uIGVhY2ggb2YgdGhlIHZlY3RvciBxdWFydGVyczoKLS0gICAg KHF1YXJ0ZXIgfCAkdHJhaXRfaWQ6aWRlbnQsICR0cmFpdF9tZXRob2Q6aWRlbnQsICR2ZWNfaWQ6 aWRlbnQsCi0tICAgICAkdmVjcV9pZDppZGVudCwgJGZ1bjppZGVudCkgPT4gewotLSAgICAgICAg aW1wbCAkdHJhaXRfaWQgZm9yICR2ZWNfaWQgewotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAg ICAgICAgICAgIGZuICR0cmFpdF9tZXRob2Qoc2VsZiwgeTogU2VsZiwgejogU2VsZikgLT4gU2Vs ZiB7Ci0tICAgICAgICAgICAgICAgIHVuc2FmZSB7Ci0tICAgICAgICAgICAgICAgICAgICB1c2Ug Y3JhdGU6Om1lbTo6dHJhbnNtdXRlOwotLSAgICAgICAgICAgICAgICAgICAgdW5pb24gVSB7Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgdmVjOiAkdmVjX2lkLAotLSAgICAgICAgICAgICAgICAg ICAgICAgIHF1YXJ0ZXJzOiBbJHZlY3FfaWQ7IDRdLAotLSAgICAgICAgICAgICAgICAgICAgfQot LQotLSAgICAgICAgICAgICAgICAgICAgbGV0IG11dCB4X3F1YXJ0ZXJzID0gVSB7IHZlYzogc2Vs ZiB9LnF1YXJ0ZXJzOwotLSAgICAgICAgICAgICAgICAgICAgbGV0IHlfcXVhcnRlcnMgPSBVIHsg dmVjOiB5IH0ucXVhcnRlcnM7Ci0tICAgICAgICAgICAgICAgICAgICBsZXQgel9xdWFydGVycyA9 IFUgeyB2ZWM6IHogfS5xdWFydGVyczsKLS0KLS0gICAgICAgICAgICAgICAgICAgICp4X3F1YXJ0 ZXJzLmdldF91bmNoZWNrZWRfbXV0KDApID0gdHJhbnNtdXRlKCRmdW4oCi0tICAgICAgICAgICAg ICAgICAgICAgICAgdHJhbnNtdXRlKCp4X3F1YXJ0ZXJzLmdldF91bmNoZWNrZWQoMCkpLAotLSAg ICAgICAgICAgICAgICAgICAgICAgIHRyYW5zbXV0ZSgqeV9xdWFydGVycy5nZXRfdW5jaGVja2Vk KDApKSwKLS0gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc211dGUoKnpfcXVhcnRlcnMuZ2V0 X3VuY2hlY2tlZCgwKSksCi0tICAgICAgICAgICAgICAgICAgICApKTsKLS0KLS0gICAgICAgICAg ICAgICAgICAgICp4X3F1YXJ0ZXJzLmdldF91bmNoZWNrZWRfbXV0KDEpID0gdHJhbnNtdXRlKCRm dW4oCi0tICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNtdXRlKCp4X3F1YXJ0ZXJzLmdldF91 bmNoZWNrZWQoMSkpLAotLSAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zbXV0ZSgqeV9xdWFy dGVycy5nZXRfdW5jaGVja2VkKDEpKSwKLS0gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc211 dGUoKnpfcXVhcnRlcnMuZ2V0X3VuY2hlY2tlZCgxKSksCi0tICAgICAgICAgICAgICAgICAgICAp KTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICp4X3F1YXJ0ZXJzLmdldF91bmNoZWNrZWRfbXV0 KDIpID0gdHJhbnNtdXRlKCRmdW4oCi0tICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNtdXRl KCp4X3F1YXJ0ZXJzLmdldF91bmNoZWNrZWQoMikpLAotLSAgICAgICAgICAgICAgICAgICAgICAg IHRyYW5zbXV0ZSgqeV9xdWFydGVycy5nZXRfdW5jaGVja2VkKDIpKSwKLS0gICAgICAgICAgICAg ICAgICAgICAgICB0cmFuc211dGUoKnpfcXVhcnRlcnMuZ2V0X3VuY2hlY2tlZCgyKSksCi0tICAg ICAgICAgICAgICAgICAgICApKTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICp4X3F1YXJ0ZXJz LmdldF91bmNoZWNrZWRfbXV0KDMpID0gdHJhbnNtdXRlKCRmdW4oCi0tICAgICAgICAgICAgICAg ICAgICAgICAgdHJhbnNtdXRlKCp4X3F1YXJ0ZXJzLmdldF91bmNoZWNrZWQoMykpLAotLSAgICAg ICAgICAgICAgICAgICAgICAgIHRyYW5zbXV0ZSgqeV9xdWFydGVycy5nZXRfdW5jaGVja2VkKDMp KSwKLS0gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc211dGUoKnpfcXVhcnRlcnMuZ2V0X3Vu Y2hlY2tlZCgzKSksCi0tICAgICAgICAgICAgICAgICAgICApKTsKLS0KLS0gICAgICAgICAgICAg ICAgICAgIFUgeyBxdWFydGVyczogeF9xdWFydGVycyB9LnZlYwotLSAgICAgICAgICAgICAgICB9 Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICB9OwotLSAgICAvLyBpbXBsZW1lbnRh dGlvbiBjYWxsaW5nIGZ1biBvbmNlIG9uIGEgdmVjdG9yIHR3aWNlIGFzIGxhcmdlOgotLSAgICAo dHdpY2UgfCAkdHJhaXRfaWQ6aWRlbnQsICR0cmFpdF9tZXRob2Q6aWRlbnQsICR2ZWNfaWQ6aWRl bnQsCi0tICAgICAkdmVjdF9pZDppZGVudCwgJGZ1bjppZGVudCkgPT4gewotLSAgICAgICAgaW1w bCAkdHJhaXRfaWQgZm9yICR2ZWNfaWQgewotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAg ICAgICAgIGZuICR0cmFpdF9tZXRob2Qoc2VsZiwgeTogU2VsZiwgejogU2VsZikgLT4gU2VsZiB7 Ci0tICAgICAgICAgICAgICAgIHVuc2FmZSB7Ci0tICAgICAgICAgICAgICAgICAgICB1c2UgY3Jh dGU6Om1lbTo6e3RyYW5zbXV0ZSwgdW5pbml0aWFsaXplZH07Ci0tCi0tICAgICAgICAgICAgICAg ICAgICB1bmlvbiBVIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICB2ZWM6IFskdmVjX2lkOyAy XSwKLS0gICAgICAgICAgICAgICAgICAgICAgICB0d2ljZTogJHZlY3RfaWQsCi0tICAgICAgICAg ICAgICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgICAgICAgICBsZXQgeF90d2ljZSA9IFUgeyB2 ZWM6IFtzZWxmLCB1bmluaXRpYWxpemVkKCldIH0udHdpY2U7Ci0tICAgICAgICAgICAgICAgICAg ICBsZXQgeV90d2ljZSA9IFUgeyB2ZWM6IFt5LCB1bmluaXRpYWxpemVkKCldIH0udHdpY2U7Ci0t ICAgICAgICAgICAgICAgICAgICBsZXQgel90d2ljZSA9IFUgeyB2ZWM6IFt6LCB1bmluaXRpYWxp emVkKCldIH0udHdpY2U7Ci0tICAgICAgICAgICAgICAgICAgICBsZXQgdHdpY2U6ICR2ZWN0X2lk ID0KLS0gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc211dGUoJGZ1bih0cmFuc211dGUoeF90 d2ljZSksIHRyYW5zbXV0ZSh5X3R3aWNlKSwgdHJhbnNtdXRlKHpfdHdpY2UpKSk7Ci0tCi0tICAg ICAgICAgICAgICAgICAgICAqKFUgeyB0d2ljZSB9LnZlYy5nZXRfdW5jaGVja2VkKDApKQotLSAg ICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICB9OwotLX0K LS0KLS1tYWNyb19ydWxlcyEgZ2VuX3RlcnRpYXJ5X2ltcGxfdGFibGUgewotLSAgICAoJHRyYWl0 X2lkOmlkZW50LCAkdHJhaXRfbWV0aG9kOmlkZW50KSA9PiB7Ci0tICAgICAgICBtYWNyb19ydWxl cyEgaW1wbF90ZXJ0aWFyeSB7Ci0tICAgICAgICAgICAgKCR2aWQ6aWRlbnQ6ICRmdW46aWRlbnQp ID0+IHsKLS0gICAgICAgICAgICAgICAgaW1wbF90ZXJ0aWFyeV8hKHZlYyB8ICR0cmFpdF9pZCwg JHRyYWl0X21ldGhvZCwgJHZpZCwgJGZ1bik7Ci0tICAgICAgICAgICAgfTsKLS0gICAgICAgICAg ICAoJHZpZDppZGVudFskc2lkOmlkZW50OyAkc2M6ZXhwcl06ICRmdW46aWRlbnQpID0+IHsKLS0g ICAgICAgICAgICAgICAgaW1wbF90ZXJ0aWFyeV8hKHNjYWxhciB8ICR0cmFpdF9pZCwgJHRyYWl0 X21ldGhvZCwgJHZpZCwgWyRzaWQ7ICRzY10sICRmdW4pOwotLSAgICAgICAgICAgIH07Ci0tICAg ICAgICAgICAgKCR2aWQ6aWRlbnRbc106ICRmdW46aWRlbnQpID0+IHsKLS0gICAgICAgICAgICAg ICAgaW1wbF90ZXJ0aWFyeV8hKHNjYWxhciB8ICR0cmFpdF9pZCwgJHRyYWl0X21ldGhvZCwgJHZp ZCwgJGZ1bik7Ci0tICAgICAgICAgICAgfTsKLS0gICAgICAgICAgICAoJHZpZDppZGVudFtoID0+ ICR2aWRfaDppZGVudF06ICRmdW46aWRlbnQpID0+IHsKLS0gICAgICAgICAgICAgICAgaW1wbF90 ZXJ0aWFyeV8hKGhhbHZlcyB8ICR0cmFpdF9pZCwgJHRyYWl0X21ldGhvZCwgJHZpZCwgJHZpZF9o LCAkZnVuKTsKLS0gICAgICAgICAgICB9OwotLSAgICAgICAgICAgICgkdmlkOmlkZW50W3EgPT4g JHZpZF9xOmlkZW50XTogJGZ1bjppZGVudCkgPT4gewotLSAgICAgICAgICAgICAgICBpbXBsX3Rl cnRpYXJ5XyEocXVhcnRlciB8ICR0cmFpdF9pZCwgJHRyYWl0X21ldGhvZCwgJHZpZCwgJHZpZF9x LCAkZnVuKTsKLS0gICAgICAgICAgICB9OwotLSAgICAgICAgICAgICgkdmlkOmlkZW50W3QgPT4g JHZpZF90OmlkZW50XTogJGZ1bjppZGVudCkgPT4gewotLSAgICAgICAgICAgICAgICBpbXBsX3Rl cnRpYXJ5XyEodHdpY2UgfCAkdHJhaXRfaWQsICR0cmFpdF9tZXRob2QsICR2aWQsICR2aWRfdCwg JGZ1bik7Ci0tICAgICAgICAgICAgfTsKLS0gICAgICAgIH0KLS0gICAgfTsKLS19Ci0tCi0tbWFj cm9fcnVsZXMhIGltcGxfYmluYXJ5XyB7Ci0tICAgIC8vIGltcGxlbWVudGF0aW9uIG1hcHBpbmcg MToxCi0tICAgICh2ZWMgfCAkdHJhaXRfaWQ6aWRlbnQsICR0cmFpdF9tZXRob2Q6aWRlbnQsICR2 ZWNfaWQ6aWRlbnQsCi0tICAgICAkZnVuOmlkZW50KSA9PiB7Ci0tICAgICAgICBpbXBsICR0cmFp dF9pZCBmb3IgJHZlY19pZCB7Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAg Zm4gJHRyYWl0X21ldGhvZChzZWxmLCB5OiBTZWxmKSAtPiBTZWxmIHsKLS0gICAgICAgICAgICAg ICAgdW5zYWZlIHsKLS0gICAgICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6bWVtOjp0cmFuc211 dGU7Ci0tICAgICAgICAgICAgICAgICAgICB0cmFuc211dGUoJGZ1bih0cmFuc211dGUoc2VsZiks IHRyYW5zbXV0ZSh5KSkpCi0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICB9Ci0tICAg ICAgICB9Ci0tICAgIH07Ci0tICAgIChzY2FsYXIgfCAkdHJhaXRfaWQ6aWRlbnQsICR0cmFpdF9t ZXRob2Q6aWRlbnQsCi0tICAgICAkdmVjX2lkOmlkZW50LCBbJHNpZDppZGVudDsgJHNjb3VudDpl eHByXSwgJGZ1bjppZGVudCkgPT4gewotLSAgICAgICAgaW1wbCAkdHJhaXRfaWQgZm9yICR2ZWNf aWQgewotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIGZuICR0cmFpdF9tZXRo b2Qoc2VsZiwgeTogU2VsZikgLT4gU2VsZiB7Ci0tICAgICAgICAgICAgICAgIHVuc2FmZSB7Ci0t ICAgICAgICAgICAgICAgICAgICB1bmlvbiBVIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICB2 ZWM6ICR2ZWNfaWQsCi0tICAgICAgICAgICAgICAgICAgICAgICAgc2NhbGFyczogWyRzaWQ7ICRz Y291bnRdLAotLSAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgbGV0 IG11dCB4ID0gVSB7IHZlYzogc2VsZiB9LnNjYWxhcnM7Ci0tICAgICAgICAgICAgICAgICAgICBs ZXQgeSA9IFUgeyB2ZWM6IHkgfS5zY2FsYXJzOwotLSAgICAgICAgICAgICAgICAgICAgZm9yICh4 LCB5KSBpbiB4Lml0ZXJfbXV0KCkuemlwKCZ5KSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAg KnggPSAkZnVuKCp4LCAqeSk7Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAg ICAgICAgICBVIHsgc2NhbGFyczogeCB9LnZlYwotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAg ICAgICAgfQotLSAgICAgICAgfQotLSAgICB9OwotLSAgICAvLyBpbXBsZW1lbnRhdGlvbiBjYWxs aW5nIGZ1biB0d2ljZSBvbiBlYWNoIG9mIHRoZSB2ZWN0b3IgaGFsdmVzOgotLSAgICAoaGFsdmVz IHwgJHRyYWl0X2lkOmlkZW50LCAkdHJhaXRfbWV0aG9kOmlkZW50LCAkdmVjX2lkOmlkZW50LAot LSAgICAgJHZlY2hfaWQ6aWRlbnQsICRmdW46aWRlbnQpID0+IHsKLS0gICAgICAgIGltcGwgJHRy YWl0X2lkIGZvciAkdmVjX2lkIHsKLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAg ICBmbiAkdHJhaXRfbWV0aG9kKHNlbGYsIHk6IFNlbGYpIC0+IFNlbGYgewotLSAgICAgICAgICAg ICAgICB1bnNhZmUgewotLSAgICAgICAgICAgICAgICAgICAgdXNlIGNyYXRlOjptZW06OnRyYW5z bXV0ZTsKLS0gICAgICAgICAgICAgICAgICAgIHVuaW9uIFUgewotLSAgICAgICAgICAgICAgICAg ICAgICAgIHZlYzogJHZlY19pZCwKLS0gICAgICAgICAgICAgICAgICAgICAgICBoYWx2ZXM6IFsk dmVjaF9pZDsgMl0sCi0tICAgICAgICAgICAgICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgICAg ICAgICBsZXQgbXV0IHhfaGFsdmVzID0gVSB7IHZlYzogc2VsZiB9LmhhbHZlczsKLS0gICAgICAg ICAgICAgICAgICAgIGxldCB5X2hhbHZlcyA9IFUgeyB2ZWM6IHkgfS5oYWx2ZXM7Ci0tCi0tICAg ICAgICAgICAgICAgICAgICAqeF9oYWx2ZXMuZ2V0X3VuY2hlY2tlZF9tdXQoMCkgPSB0cmFuc211 dGUoJGZ1bigKLS0gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc211dGUoKnhfaGFsdmVzLmdl dF91bmNoZWNrZWQoMCkpLAotLSAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zbXV0ZSgqeV9o YWx2ZXMuZ2V0X3VuY2hlY2tlZCgwKSksCi0tICAgICAgICAgICAgICAgICAgICApKTsKLS0gICAg ICAgICAgICAgICAgICAgICp4X2hhbHZlcy5nZXRfdW5jaGVja2VkX211dCgxKSA9IHRyYW5zbXV0 ZSgkZnVuKAotLSAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zbXV0ZSgqeF9oYWx2ZXMuZ2V0 X3VuY2hlY2tlZCgxKSksCi0tICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNtdXRlKCp5X2hh bHZlcy5nZXRfdW5jaGVja2VkKDEpKSwKLS0gICAgICAgICAgICAgICAgICAgICkpOwotLQotLSAg ICAgICAgICAgICAgICAgICAgVSB7IGhhbHZlczogeF9oYWx2ZXMgfS52ZWMKLS0gICAgICAgICAg ICAgICAgfQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgfTsKLS0gICAgLy8gaW1w bGVtZW50YXRpb24gY2FsbGluZyBmdW4gZm91ciB0aW1lcyBvbiBlYWNoIG9mIHRoZSB2ZWN0b3Ig cXVhcnRlcnM6Ci0tICAgIChxdWFydGVyIHwgJHRyYWl0X2lkOmlkZW50LCAkdHJhaXRfbWV0aG9k OmlkZW50LCAkdmVjX2lkOmlkZW50LAotLSAgICAgJHZlY3FfaWQ6aWRlbnQsICRmdW46aWRlbnQp ID0+IHsKLS0gICAgICAgIGltcGwgJHRyYWl0X2lkIGZvciAkdmVjX2lkIHsKLS0gICAgICAgICAg ICAjW2lubGluZV0KLS0gICAgICAgICAgICBmbiAkdHJhaXRfbWV0aG9kKHNlbGYsIHk6IFNlbGYp IC0+IFNlbGYgewotLSAgICAgICAgICAgICAgICB1bnNhZmUgewotLSAgICAgICAgICAgICAgICAg ICAgdXNlIGNyYXRlOjptZW06OnRyYW5zbXV0ZTsKLS0gICAgICAgICAgICAgICAgICAgIHVuaW9u IFUgewotLSAgICAgICAgICAgICAgICAgICAgICAgIHZlYzogJHZlY19pZCwKLS0gICAgICAgICAg ICAgICAgICAgICAgICBxdWFydGVyczogWyR2ZWNxX2lkOyA0XSwKLS0gICAgICAgICAgICAgICAg ICAgIH0KLS0KLS0gICAgICAgICAgICAgICAgICAgIGxldCBtdXQgeF9xdWFydGVycyA9IFUgeyB2 ZWM6IHNlbGYgfS5xdWFydGVyczsKLS0gICAgICAgICAgICAgICAgICAgIGxldCB5X3F1YXJ0ZXJz ID0gVSB7IHZlYzogeSB9LnF1YXJ0ZXJzOwotLQotLSAgICAgICAgICAgICAgICAgICAgKnhfcXVh cnRlcnMuZ2V0X3VuY2hlY2tlZF9tdXQoMCkgPSB0cmFuc211dGUoJGZ1bigKLS0gICAgICAgICAg ICAgICAgICAgICAgICB0cmFuc211dGUoKnhfcXVhcnRlcnMuZ2V0X3VuY2hlY2tlZCgwKSksCi0t ICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNtdXRlKCp5X3F1YXJ0ZXJzLmdldF91bmNoZWNr ZWQoMCkpLAotLSAgICAgICAgICAgICAgICAgICAgKSk7Ci0tCi0tICAgICAgICAgICAgICAgICAg ICAqeF9xdWFydGVycy5nZXRfdW5jaGVja2VkX211dCgxKSA9IHRyYW5zbXV0ZSgkZnVuKAotLSAg ICAgICAgICAgICAgICAgICAgICAgIHRyYW5zbXV0ZSgqeF9xdWFydGVycy5nZXRfdW5jaGVja2Vk KDEpKSwKLS0gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc211dGUoKnlfcXVhcnRlcnMuZ2V0 X3VuY2hlY2tlZCgxKSksCi0tICAgICAgICAgICAgICAgICAgICApKTsKLS0KLS0gICAgICAgICAg ICAgICAgICAgICp4X3F1YXJ0ZXJzLmdldF91bmNoZWNrZWRfbXV0KDIpID0gdHJhbnNtdXRlKCRm dW4oCi0tICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNtdXRlKCp4X3F1YXJ0ZXJzLmdldF91 bmNoZWNrZWQoMikpLAotLSAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zbXV0ZSgqeV9xdWFy dGVycy5nZXRfdW5jaGVja2VkKDIpKSwKLS0gICAgICAgICAgICAgICAgICAgICkpOwotLQotLSAg ICAgICAgICAgICAgICAgICAgKnhfcXVhcnRlcnMuZ2V0X3VuY2hlY2tlZF9tdXQoMykgPSB0cmFu c211dGUoJGZ1bigKLS0gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc211dGUoKnhfcXVhcnRl cnMuZ2V0X3VuY2hlY2tlZCgzKSksCi0tICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNtdXRl KCp5X3F1YXJ0ZXJzLmdldF91bmNoZWNrZWQoMykpLAotLSAgICAgICAgICAgICAgICAgICAgKSk7 Ci0tCi0tICAgICAgICAgICAgICAgICAgICBVIHsgcXVhcnRlcnM6IHhfcXVhcnRlcnMgfS52ZWMK LS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgfTsK LS0gICAgLy8gaW1wbGVtZW50YXRpb24gY2FsbGluZyBmdW4gb25jZSBvbiBhIHZlY3RvciB0d2lj ZSBhcyBsYXJnZToKLS0gICAgKHR3aWNlIHwgJHRyYWl0X2lkOmlkZW50LCAkdHJhaXRfbWV0aG9k OmlkZW50LCAkdmVjX2lkOmlkZW50LAotLSAgICAgJHZlY3RfaWQ6aWRlbnQsICRmdW46aWRlbnQp ID0+IHsKLS0gICAgICAgIGltcGwgJHRyYWl0X2lkIGZvciAkdmVjX2lkIHsKLS0gICAgICAgICAg ICAjW2lubGluZV0KLS0gICAgICAgICAgICBmbiAkdHJhaXRfbWV0aG9kKHNlbGYsIHk6IFNlbGYp IC0+IFNlbGYgewotLSAgICAgICAgICAgICAgICB1bnNhZmUgewotLSAgICAgICAgICAgICAgICAg ICAgdXNlIGNyYXRlOjptZW06Ont0cmFuc211dGUsIHVuaW5pdGlhbGl6ZWR9OwotLQotLSAgICAg ICAgICAgICAgICAgICAgdW5pb24gVSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgdmVjOiBb JHZlY19pZDsgMl0sCi0tICAgICAgICAgICAgICAgICAgICAgICAgdHdpY2U6ICR2ZWN0X2lkLAot LSAgICAgICAgICAgICAgICAgICAgfQotLQotLSAgICAgICAgICAgICAgICAgICAgbGV0IHhfdHdp Y2UgPSBVIHsgdmVjOiBbc2VsZiwgdW5pbml0aWFsaXplZCgpXSB9LnR3aWNlOwotLSAgICAgICAg ICAgICAgICAgICAgbGV0IHlfdHdpY2UgPSBVIHsgdmVjOiBbeSwgdW5pbml0aWFsaXplZCgpXSB9 LnR3aWNlOwotLSAgICAgICAgICAgICAgICAgICAgbGV0IHR3aWNlOiAkdmVjdF9pZCA9IHRyYW5z bXV0ZSgkZnVuKHRyYW5zbXV0ZSh4X3R3aWNlKSwgdHJhbnNtdXRlKHlfdHdpY2UpKSk7Ci0tCi0t ICAgICAgICAgICAgICAgICAgICAqKFUgeyB0d2ljZSB9LnZlYy5nZXRfdW5jaGVja2VkKDApKQot LSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICB9Owot LX0KLS0KLS1tYWNyb19ydWxlcyEgZ2VuX2JpbmFyeV9pbXBsX3RhYmxlIHsKLS0gICAgKCR0cmFp dF9pZDppZGVudCwgJHRyYWl0X21ldGhvZDppZGVudCkgPT4gewotLSAgICAgICAgbWFjcm9fcnVs ZXMhIGltcGxfYmluYXJ5IHsKLS0gICAgICAgICAgICAoJHZpZDppZGVudDogJGZ1bjppZGVudCkg PT4gewotLSAgICAgICAgICAgICAgICBpbXBsX2JpbmFyeV8hKHZlYyB8ICR0cmFpdF9pZCwgJHRy YWl0X21ldGhvZCwgJHZpZCwgJGZ1bik7Ci0tICAgICAgICAgICAgfTsKLS0gICAgICAgICAgICAo JHZpZDppZGVudFskc2lkOmlkZW50OyAkc2M6ZXhwcl06ICRmdW46aWRlbnQpID0+IHsKLS0gICAg ICAgICAgICAgICAgaW1wbF9iaW5hcnlfIShzY2FsYXIgfCAkdHJhaXRfaWQsICR0cmFpdF9tZXRo b2QsICR2aWQsIFskc2lkOyAkc2NdLCAkZnVuKTsKLS0gICAgICAgICAgICB9OwotLSAgICAgICAg ICAgICgkdmlkOmlkZW50W3NdOiAkZnVuOmlkZW50KSA9PiB7Ci0tICAgICAgICAgICAgICAgIGlt cGxfYmluYXJ5XyEoc2NhbGFyIHwgJHRyYWl0X2lkLCAkdHJhaXRfbWV0aG9kLCAkdmlkLCAkZnVu KTsKLS0gICAgICAgICAgICB9OwotLSAgICAgICAgICAgICgkdmlkOmlkZW50W2ggPT4gJHZpZF9o OmlkZW50XTogJGZ1bjppZGVudCkgPT4gewotLSAgICAgICAgICAgICAgICBpbXBsX2JpbmFyeV8h KGhhbHZlcyB8ICR0cmFpdF9pZCwgJHRyYWl0X21ldGhvZCwgJHZpZCwgJHZpZF9oLCAkZnVuKTsK LS0gICAgICAgICAgICB9OwotLSAgICAgICAgICAgICgkdmlkOmlkZW50W3EgPT4gJHZpZF9xOmlk ZW50XTogJGZ1bjppZGVudCkgPT4gewotLSAgICAgICAgICAgICAgICBpbXBsX2JpbmFyeV8hKHF1 YXJ0ZXIgfCAkdHJhaXRfaWQsICR0cmFpdF9tZXRob2QsICR2aWQsICR2aWRfcSwgJGZ1bik7Ci0t ICAgICAgICAgICAgfTsKLS0gICAgICAgICAgICAoJHZpZDppZGVudFt0ID0+ICR2aWRfdDppZGVu dF06ICRmdW46aWRlbnQpID0+IHsKLS0gICAgICAgICAgICAgICAgaW1wbF9iaW5hcnlfISh0d2lj ZSB8ICR0cmFpdF9pZCwgJHRyYWl0X21ldGhvZCwgJHZpZCwgJHZpZF90LCAkZnVuKTsKLS0gICAg ICAgICAgICB9OwotLSAgICAgICAgfQotLSAgICB9OwotLX0KLWRpZmYgLU5yYnUgYS90aGlyZF9w YXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL21hdGgvZmxvYXQvbXVsX2FkZC5ycyBi L3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vbWF0aC9mbG9hdC9tdWxf YWRkLnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL21h dGgvZmxvYXQvbXVsX2FkZC5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAot KysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9tYXRoL2Zsb2F0 L211bF9hZGQucnMJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDEw OSArMCwwIEBACi0tLy8hIFZlcnRpY2FsIGZsb2F0aW5nLXBvaW50IGBtdWxfYWRkYAotLSMhW2Fs bG93KHVudXNlZCldCi0tdXNlIGNyYXRlOjoqOwotLQotLS8vIEZJWE1FOiA2NC1iaXQgMSBlbGVt ZW50IG11bF9hZGQKLS0KLS1wdWIoY3JhdGUpIHRyYWl0IE11bEFkZCB7Ci0tICAgIGZuIG11bF9h ZGQoc2VsZiwgeTogU2VsZiwgejogU2VsZikgLT4gU2VsZjsKLS19Ci0tCi0tI1tjZmcobm90KHRh cmdldF9hcmNoID0gInMzOTB4IikpXQotLSNbYWxsb3coaW1wcm9wZXJfY3R5cGVzKV0KLS1leHRl cm4gIkMiIHsKLS0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5mbWEudjJmMzIiXQotLSAgICBmbiBm bWFfdjJmMzIoeDogZjMyeDIsIHk6IGYzMngyLCB6OiBmMzJ4MikgLT4gZjMyeDI7Ci0tICAgICNb bGlua19uYW1lID0gImxsdm0uZm1hLnY0ZjMyIl0KLS0gICAgZm4gZm1hX3Y0ZjMyKHg6IGYzMng0 LCB5OiBmMzJ4NCwgejogZjMyeDQpIC0+IGYzMng0OwotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZt LmZtYS52OGYzMiJdCi0tICAgIGZuIGZtYV92OGYzMih4OiBmMzJ4OCwgeTogZjMyeDgsIHo6IGYz Mng4KSAtPiBmMzJ4ODsKLS0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5mbWEudjE2ZjMyIl0KLS0g ICAgZm4gZm1hX3YxNmYzMih4OiBmMzJ4MTYsIHk6IGYzMngxNiwgejogZjMyeDE2KSAtPiBmMzJ4 MTY7Ci0tICAgIC8qIEZJWE1FIDY0LWJpdCBzaW5nbGUgZWxlbSB2ZWN0b3JzCi0tICAgICNbbGlu a19uYW1lID0gImxsdm0uZm1hLnYxZjY0Il0KLS0gICAgZm4gZm1hX3YxZjY0KHg6IGY2NHgxLCB5 OiBmNjR4MSwgejogZjY0eDEpIC0+IGY2NHgxOwotLSAgICAqLwotLSAgICAjW2xpbmtfbmFtZSA9 ICJsbHZtLmZtYS52MmY2NCJdCi0tICAgIGZuIGZtYV92MmY2NCh4OiBmNjR4MiwgeTogZjY0eDIs IHo6IGY2NHgyKSAtPiBmNjR4MjsKLS0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5mbWEudjRmNjQi XQotLSAgICBmbiBmbWFfdjRmNjQoeDogZjY0eDQsIHk6IGY2NHg0LCB6OiBmNjR4NCkgLT4gZjY0 eDQ7Ci0tICAgICNbbGlua19uYW1lID0gImxsdm0uZm1hLnY4ZjY0Il0KLS0gICAgZm4gZm1hX3Y4 ZjY0KHg6IGY2NHg4LCB5OiBmNjR4OCwgejogZjY0eDgpIC0+IGY2NHg4OwotLX0KLS0KLS1nZW5f dGVydGlhcnlfaW1wbF90YWJsZSEoTXVsQWRkLCBtdWxfYWRkKTsKLS0KLS1jZmdfaWYhIHsKLS0g ICAgaWYgI1tjZmcodGFyZ2V0X2FyY2ggPSAiczM5MHgiKV0gewotLSAgICAgICAgLy8gRklYTUU6 IGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmctbnVyc2VyeS9wYWNrZWRfc2ltZC9pc3N1ZXMv MTQKLS0gICAgICAgIG1hY3JvX3J1bGVzISBpbXBsX2Jyb2tlbiB7Ci0tICAgICAgICAgICAgKCRp ZDppZGVudCkgPT4gewotLSAgICAgICAgICAgICAgICBpbXBsIE11bEFkZCBmb3IgJGlkIHsKLS0g ICAgICAgICAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgICAgICAgICAgZm4gbXVs X2FkZChzZWxmLCB5OiBTZWxmLCB6OiBTZWxmKSAtPiBTZWxmIHsKLS0gICAgICAgICAgICAgICAg ICAgICAgICBzZWxmICogeSArIHoKLS0gICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAg ICAgICAgfQotLSAgICAgICAgICAgIH07Ci0tICAgICAgICB9Ci0tCi0tICAgICAgICBpbXBsX2Jy b2tlbiEoZjMyeDIpOwotLSAgICAgICAgaW1wbF9icm9rZW4hKGYzMng0KTsKLS0gICAgICAgIGlt cGxfYnJva2VuIShmMzJ4OCk7Ci0tICAgICAgICBpbXBsX2Jyb2tlbiEoZjMyeDE2KTsKLS0KLS0g ICAgICAgIGltcGxfYnJva2VuIShmNjR4Mik7Ci0tICAgICAgICBpbXBsX2Jyb2tlbiEoZjY0eDQp OwotLSAgICAgICAgaW1wbF9icm9rZW4hKGY2NHg4KTsKLS0gICAgfSBlbHNlIGlmICNbY2ZnKGFs bCh0YXJnZXRfYXJjaCA9ICJ4ODZfNjQiLCBmZWF0dXJlID0gInNsZWVmLXN5cyIpKV0gewotLSAg ICAgICAgdXNlIHNsZWVmX3N5czo6KjsKLS0gICAgICAgIGNmZ19pZiEgewotLSAgICAgICAgICAg IGlmICNbY2ZnKHRhcmdldF9mZWF0dXJlID0gImF2eDIiKV0gewotLSAgICAgICAgICAgICAgICBp bXBsX3RlcnRpYXJ5IShmMzJ4Mlt0ID0+IGYzMng0XTogU2xlZWZfZm1hZjRfYXZ4MjEyOCk7Ci0t ICAgICAgICAgICAgICAgIGltcGxfdGVydGlhcnkhKGYzMngxNltoID0+IGYzMng4XTogU2xlZWZf Zm1hZjhfYXZ4Mik7Ci0tICAgICAgICAgICAgICAgIGltcGxfdGVydGlhcnkhKGY2NHg4W2ggPT4g ZjY0eDRdOiBTbGVlZl9mbWFkNF9hdngyKTsKLS0KLS0gICAgICAgICAgICAgICAgaW1wbF90ZXJ0 aWFyeSEoZjMyeDQ6IFNsZWVmX2ZtYWY0X2F2eDIxMjgpOwotLSAgICAgICAgICAgICAgICBpbXBs X3RlcnRpYXJ5IShmMzJ4ODogU2xlZWZfZm1hZjhfYXZ4Mik7Ci0tICAgICAgICAgICAgICAgIGlt cGxfdGVydGlhcnkhKGY2NHgyOiBTbGVlZl9mbWFkMl9hdngyMTI4KTsKLS0gICAgICAgICAgICAg ICAgaW1wbF90ZXJ0aWFyeSEoZjY0eDQ6IFNsZWVmX2ZtYWQ0X2F2eDIpOwotLSAgICAgICAgICAg IH0gZWxzZSBpZiAjW2NmZyh0YXJnZXRfZmVhdHVyZSA9ICJhdngiKV0gewotLSAgICAgICAgICAg ICAgICBpbXBsX3RlcnRpYXJ5IShmMzJ4Mlt0ID0+IGYzMng0XTogU2xlZWZfZm1hZjRfc3NlNCk7 Ci0tICAgICAgICAgICAgICAgIGltcGxfdGVydGlhcnkhKGYzMngxNltoID0+IGYzMng4XTogU2xl ZWZfZm1hZjhfYXZ4KTsKLS0gICAgICAgICAgICAgICAgaW1wbF90ZXJ0aWFyeSEoZjY0eDhbaCA9 PiBmNjR4NF06IFNsZWVmX2ZtYWQ0X2F2eCk7Ci0tCi0tICAgICAgICAgICAgICAgIGltcGxfdGVy dGlhcnkhKGYzMng0OiBTbGVlZl9mbWFmNF9zc2U0KTsKLS0gICAgICAgICAgICAgICAgaW1wbF90 ZXJ0aWFyeSEoZjMyeDg6IFNsZWVmX2ZtYWY4X2F2eCk7Ci0tICAgICAgICAgICAgICAgIGltcGxf dGVydGlhcnkhKGY2NHgyOiBTbGVlZl9mbWFkMl9zc2U0KTsKLS0gICAgICAgICAgICAgICAgaW1w bF90ZXJ0aWFyeSEoZjY0eDQ6IFNsZWVmX2ZtYWQ0X2F2eCk7Ci0tICAgICAgICAgICAgfSBlbHNl IGlmICNbY2ZnKHRhcmdldF9mZWF0dXJlID0gInNzZTQuMiIpXSB7Ci0tICAgICAgICAgICAgICAg IGltcGxfdGVydGlhcnkhKGYzMngyW3QgPT4gZjMyeDRdOiBTbGVlZl9mbWFmNF9zc2U0KTsKLS0g ICAgICAgICAgICAgICAgaW1wbF90ZXJ0aWFyeSEoZjMyeDE2W3EgPT4gZjMyeDRdOiBTbGVlZl9m bWFmNF9zc2U0KTsKLS0gICAgICAgICAgICAgICAgaW1wbF90ZXJ0aWFyeSEoZjY0eDhbcSA9PiBm NjR4Ml06IFNsZWVmX2ZtYWQyX3NzZTQpOwotLQotLSAgICAgICAgICAgICAgICBpbXBsX3RlcnRp YXJ5IShmMzJ4NDogU2xlZWZfZm1hZjRfc3NlNCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfdGVy dGlhcnkhKGYzMng4W2ggPT4gZjMyeDRdOiBTbGVlZl9mbWFmNF9zc2U0KTsKLS0gICAgICAgICAg ICAgICAgaW1wbF90ZXJ0aWFyeSEoZjY0eDI6IFNsZWVmX2ZtYWQyX3NzZTQpOwotLSAgICAgICAg ICAgICAgICBpbXBsX3RlcnRpYXJ5IShmNjR4NFtoID0+IGY2NHgyXTogU2xlZWZfZm1hZDJfc3Nl NCk7Ci0tICAgICAgICAgICAgfSBlbHNlIHsKLS0gICAgICAgICAgICAgICAgaW1wbF90ZXJ0aWFy eSEoZjMyeDI6IGZtYV92MmYzMik7Ci0tICAgICAgICAgICAgICAgIGltcGxfdGVydGlhcnkhKGYz MngxNjogZm1hX3YxNmYzMik7Ci0tICAgICAgICAgICAgICAgIGltcGxfdGVydGlhcnkhKGY2NHg4 OiBmbWFfdjhmNjQpOwotLQotLSAgICAgICAgICAgICAgICBpbXBsX3RlcnRpYXJ5IShmMzJ4NDog Zm1hX3Y0ZjMyKTsKLS0gICAgICAgICAgICAgICAgaW1wbF90ZXJ0aWFyeSEoZjMyeDg6IGZtYV92 OGYzMik7Ci0tICAgICAgICAgICAgICAgIGltcGxfdGVydGlhcnkhKGY2NHgyOiBmbWFfdjJmNjQp OwotLSAgICAgICAgICAgICAgICBpbXBsX3RlcnRpYXJ5IShmNjR4NDogZm1hX3Y0ZjY0KTsKLS0g ICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgIH0gZWxzZSB7Ci0tICAgICAgICBpbXBsX3Rl cnRpYXJ5IShmMzJ4MjogZm1hX3YyZjMyKTsKLS0gICAgICAgIGltcGxfdGVydGlhcnkhKGYzMng0 OiBmbWFfdjRmMzIpOwotLSAgICAgICAgaW1wbF90ZXJ0aWFyeSEoZjMyeDg6IGZtYV92OGYzMik7 Ci0tICAgICAgICBpbXBsX3RlcnRpYXJ5IShmMzJ4MTY6IGZtYV92MTZmMzIpOwotLSAgICAgICAg Ly8gaW1wbF90ZXJ0aWFyeSEoZjY0eDE6IGZtYV92MWY2NCk7IC8vIEZJWE1FIDY0LWJpdCBmbWFn bGUgZWxlbSB2ZWN0b3JzCi0tICAgICAgICBpbXBsX3RlcnRpYXJ5IShmNjR4MjogZm1hX3YyZjY0 KTsKLS0gICAgICAgIGltcGxfdGVydGlhcnkhKGY2NHg0OiBmbWFfdjRmNjQpOwotLSAgICAgICAg aW1wbF90ZXJ0aWFyeSEoZjY0eDg6IGZtYV92OGY2NCk7Ci0tICAgIH0KLS19Ci1kaWZmIC1OcmJ1 IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9tYXRoL2Zsb2F0L211 bF9hZGRlLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9tYXRo L2Zsb2F0L211bF9hZGRlLnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3Ny Yy9jb2RlZ2VuL21hdGgvZmxvYXQvbXVsX2FkZGUucnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAw MDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVn ZW4vbWF0aC9mbG9hdC9tdWxfYWRkZS5ycwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCAr MDMwMAotQEAgLTEsNjAgKzAsMCBAQAotLS8vISBBcHByb3hpbWF0aW9uIGZvciBmbG9hdGluZy1w b2ludCBgbXVsX2FkZGAKLS11c2UgY3JhdGU6Oio7Ci0tCi0tLy8gRklYTUU6IDY0LWJpdCAxIGVs ZW1lbnQgbXVsX2FkZGUKLS0KLS1wdWIoY3JhdGUpIHRyYWl0IE11bEFkZEUgewotLSAgICBmbiBt dWxfYWRkZShzZWxmLCB5OiBTZWxmLCB6OiBTZWxmKSAtPiBTZWxmOwotLX0KLS0KLS0jW2NmZyhu b3QodGFyZ2V0X2FyY2ggPSAiczM5MHgiKSldCi0tI1thbGxvdyhpbXByb3Blcl9jdHlwZXMpXQot LWV4dGVybiAiQyIgewotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmZtdWxhZGQudjJmMzIiXQot LSAgICBmbiBmbXVsYWRkX3YyZjMyKHg6IGYzMngyLCB5OiBmMzJ4MiwgejogZjMyeDIpIC0+IGYz MngyOwotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmZtdWxhZGQudjRmMzIiXQotLSAgICBmbiBm bXVsYWRkX3Y0ZjMyKHg6IGYzMng0LCB5OiBmMzJ4NCwgejogZjMyeDQpIC0+IGYzMng0OwotLSAg ICAjW2xpbmtfbmFtZSA9ICJsbHZtLmZtdWxhZGQudjhmMzIiXQotLSAgICBmbiBmbXVsYWRkX3Y4 ZjMyKHg6IGYzMng4LCB5OiBmMzJ4OCwgejogZjMyeDgpIC0+IGYzMng4OwotLSAgICAjW2xpbmtf bmFtZSA9ICJsbHZtLmZtdWxhZGQudjE2ZjMyIl0KLS0gICAgZm4gZm11bGFkZF92MTZmMzIoeDog ZjMyeDE2LCB5OiBmMzJ4MTYsIHo6IGYzMngxNikgLT4gZjMyeDE2OwotLSAgICAvKiBGSVhNRSA2 NC1iaXQgc2luZ2xlIGVsZW0gdmVjdG9ycwotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmZtdWxh ZGQudjFmNjQiXQotLSAgICBmbiBmbXVsYWRkX3YxZjY0KHg6IGY2NHgxLCB5OiBmNjR4MSwgejog ZjY0eDEpIC0+IGY2NHgxOwotLSAgICAqLwotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmZtdWxh ZGQudjJmNjQiXQotLSAgICBmbiBmbXVsYWRkX3YyZjY0KHg6IGY2NHgyLCB5OiBmNjR4Miwgejog ZjY0eDIpIC0+IGY2NHgyOwotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmZtdWxhZGQudjRmNjQi XQotLSAgICBmbiBmbXVsYWRkX3Y0ZjY0KHg6IGY2NHg0LCB5OiBmNjR4NCwgejogZjY0eDQpIC0+ IGY2NHg0OwotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmZtdWxhZGQudjhmNjQiXQotLSAgICBm biBmbXVsYWRkX3Y4ZjY0KHg6IGY2NHg4LCB5OiBmNjR4OCwgejogZjY0eDgpIC0+IGY2NHg4Owot LX0KLS0KLS1tYWNyb19ydWxlcyEgaW1wbF9tdWxfYWRkZSB7Ci0tICAgICgkaWQ6aWRlbnQgOiAk Zm46aWRlbnQpID0+IHsKLS0gICAgICAgIGltcGwgTXVsQWRkRSBmb3IgJGlkIHsKLS0gICAgICAg ICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBmbiBtdWxfYWRkZShzZWxmLCB5OiBTZWxmLCB6 OiBTZWxmKSAtPiBTZWxmIHsKLS0gICAgICAgICAgICAgICAgI1tjZmcobm90KHRhcmdldF9hcmNo ID0gInMzOTB4IikpXQotLSAgICAgICAgICAgICAgICB7Ci0tICAgICAgICAgICAgICAgICAgICB1 c2UgY3JhdGU6Om1lbTo6dHJhbnNtdXRlOwotLSAgICAgICAgICAgICAgICAgICAgdW5zYWZlIHsg dHJhbnNtdXRlKCRmbih0cmFuc211dGUoc2VsZiksIHRyYW5zbXV0ZSh5KSwgdHJhbnNtdXRlKHop KSkgfQotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICNbY2ZnKHRhcmdldF9h cmNoID0gInMzOTB4IildCi0tICAgICAgICAgICAgICAgIHsKLS0gICAgICAgICAgICAgICAgICAg IC8vIEZJWE1FOiBodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nLW51cnNlcnkvcGFja2VkX3Np bWQvaXNzdWVzLzE0Ci0tICAgICAgICAgICAgICAgICAgICBzZWxmICogeSArIHoKLS0gICAgICAg ICAgICAgICAgfQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgfTsKLS19Ci0tCi0t aW1wbF9tdWxfYWRkZSEoZjMyeDI6IGZtdWxhZGRfdjJmMzIpOwotLWltcGxfbXVsX2FkZGUhKGYz Mng0OiBmbXVsYWRkX3Y0ZjMyKTsKLS1pbXBsX211bF9hZGRlIShmMzJ4ODogZm11bGFkZF92OGYz Mik7Ci0taW1wbF9tdWxfYWRkZSEoZjMyeDE2OiBmbXVsYWRkX3YxNmYzMik7Ci0tLy8gaW1wbF9t dWxfYWRkZSEoZjY0eDE6IGZtYV92MWY2NCk7IC8vIEZJWE1FIDY0LWJpdCBmbWFnbGUgZWxlbSB2 ZWN0b3JzCi0taW1wbF9tdWxfYWRkZSEoZjY0eDI6IGZtdWxhZGRfdjJmNjQpOwotLWltcGxfbXVs X2FkZGUhKGY2NHg0OiBmbXVsYWRkX3Y0ZjY0KTsKLS1pbXBsX211bF9hZGRlIShmNjR4ODogZm11 bGFkZF92OGY2NCk7Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9z cmMvY29kZWdlbi9tYXRoL2Zsb2F0L3Bvd2YucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9z aW1kL3NyYy9jb2RlZ2VuL21hdGgvZmxvYXQvcG93Zi5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVz dC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9tYXRoL2Zsb2F0L3Bvd2YucnMJMjAyNS0wNC0yMCAx OToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3Np bWQvc3JjL2NvZGVnZW4vbWF0aC9mbG9hdC9wb3dmLnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAw MDAwMDAwICswMzAwCi1AQCAtMSwxMTIgKzAsMCBAQAotLS8vISBWZXJ0aWNhbCBmbG9hdGluZy1w b2ludCBgcG93ZmAKLS0jIVthbGxvdyh1bnVzZWQpXQotLQotLS8vIEZJWE1FIDY0LWJpdCBwb3dm Z2xlIGVsZW0gdmVjdG9ycyBtaXNwb3dmZwotLQotLXVzZSBjcmF0ZTo6KjsKLS0KLS1wdWIoY3Jh dGUpIHRyYWl0IFBvd2YgewotLSAgICBmbiBwb3dmKHNlbGYsIHg6IFNlbGYpIC0+IFNlbGY7Ci0t fQotLQotLSNbYWxsb3coaW1wcm9wZXJfY3R5cGVzKV0KLS1leHRlcm4gIkMiIHsKLS0gICAgI1ts aW5rX25hbWUgPSAibGx2bS5wb3cudjJmMzIiXQotLSAgICBmbiBwb3dmX3YyZjMyKHg6IGYzMngy LCB5OiBmMzJ4MikgLT4gZjMyeDI7Ci0tICAgICNbbGlua19uYW1lID0gImxsdm0ucG93LnY0ZjMy Il0KLS0gICAgZm4gcG93Zl92NGYzMih4OiBmMzJ4NCwgeTogZjMyeDQpIC0+IGYzMng0OwotLSAg ICAjW2xpbmtfbmFtZSA9ICJsbHZtLnBvdy52OGYzMiJdCi0tICAgIGZuIHBvd2ZfdjhmMzIoeDog ZjMyeDgsIHk6IGYzMng4KSAtPiBmMzJ4ODsKLS0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5wb3cu djE2ZjMyIl0KLS0gICAgZm4gcG93Zl92MTZmMzIoeDogZjMyeDE2LCB5OiBmMzJ4MTYpIC0+IGYz MngxNjsKLS0gICAgLyogRklYTUUgNjQtYml0IHBvd2ZnbGUgZWxlbSB2ZWN0b3JzCi0tICAgICNb bGlua19uYW1lID0gImxsdm0ucG93LnYxZjY0Il0KLS0gICAgZm4gcG93Zl92MWY2NCh4OiBmNjR4 MSwgeTogZjY0eDEpIC0+IGY2NHgxOwotLSAgICAgKi8KLS0gICAgI1tsaW5rX25hbWUgPSAibGx2 bS5wb3cudjJmNjQiXQotLSAgICBmbiBwb3dmX3YyZjY0KHg6IGY2NHgyLCB5OiBmNjR4MikgLT4g ZjY0eDI7Ci0tICAgICNbbGlua19uYW1lID0gImxsdm0ucG93LnY0ZjY0Il0KLS0gICAgZm4gcG93 Zl92NGY2NCh4OiBmNjR4NCwgeTogZjY0eDQpIC0+IGY2NHg0OwotLSAgICAjW2xpbmtfbmFtZSA9 ICJsbHZtLnBvdy52OGY2NCJdCi0tICAgIGZuIHBvd2ZfdjhmNjQoeDogZjY0eDgsIHk6IGY2NHg4 KSAtPiBmNjR4ODsKLS0KLS0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5wb3cuZjMyIl0KLS0gICAg Zm4gcG93Zl9mMzIoeDogZjMyLCB5OiBmMzIpIC0+IGYzMjsKLS0gICAgI1tsaW5rX25hbWUgPSAi bGx2bS5wb3cuZjY0Il0KLS0gICAgZm4gcG93Zl9mNjQoeDogZjY0LCB5OiBmNjQpIC0+IGY2NDsK LS19Ci0tCi0tZ2VuX2JpbmFyeV9pbXBsX3RhYmxlIShQb3dmLCBwb3dmKTsKLS0KLS1jZmdfaWYh IHsKLS0gICAgaWYgI1tjZmcodGFyZ2V0X2FyY2ggPSAiczM5MHgiKV0gewotLSAgICAgICAgLy8g RklYTUU6IGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmctbnVyc2VyeS9wYWNrZWRfc2ltZC9p c3N1ZXMvMTQKLS0gICAgICAgIGltcGxfYmluYXJ5IShmMzJ4MltmMzI7IDJdOiBwb3dmX2YzMik7 Ci0tICAgICAgICBpbXBsX2JpbmFyeSEoZjMyeDRbZjMyOyA0XTogcG93Zl9mMzIpOwotLSAgICAg ICAgaW1wbF9iaW5hcnkhKGYzMng4W2YzMjsgOF06IHBvd2ZfZjMyKTsKLS0gICAgICAgIGltcGxf YmluYXJ5IShmMzJ4MTZbZjMyOyAxNl06IHBvd2ZfZjMyKTsKLS0KLS0gICAgICAgIGltcGxfYmlu YXJ5IShmNjR4MltmNjQ7IDJdOiBwb3dmX2Y2NCk7Ci0tICAgICAgICBpbXBsX2JpbmFyeSEoZjY0 eDRbZjY0OyA0XTogcG93Zl9mNjQpOwotLSAgICAgICAgaW1wbF9iaW5hcnkhKGY2NHg4W2Y2NDsg OF06IHBvd2ZfZjY0KTsKLS0gICAgfSBlbHNlIGlmICNbY2ZnKGFsbCh0YXJnZXRfYXJjaCA9ICJ4 ODZfNjQiLCBmZWF0dXJlID0gInNsZWVmLXN5cyIpKV0gewotLSAgICAgICAgdXNlIHNsZWVmX3N5 czo6KjsKLS0gICAgICAgIGNmZ19pZiEgewotLSAgICAgICAgICAgIGlmICNbY2ZnKHRhcmdldF9m ZWF0dXJlID0gImF2eDIiKV0gewotLSAgICAgICAgICAgICAgICBpbXBsX2JpbmFyeSEoZjMyeDJb dCA9PiBmMzJ4NF06IFNsZWVmX3Bvd2Y0X3UxMGF2eDIxMjgpOwotLSAgICAgICAgICAgICAgICBp bXBsX2JpbmFyeSEoZjMyeDE2W2ggPT4gZjMyeDhdOiBTbGVlZl9wb3dmOF91MTBhdngyKTsKLS0g ICAgICAgICAgICAgICAgaW1wbF9iaW5hcnkhKGY2NHg4W2ggPT4gZjY0eDRdOiBTbGVlZl9wb3dk NF91MTBhdngyKTsKLS0KLS0gICAgICAgICAgICAgICAgaW1wbF9iaW5hcnkhKGYzMng0OiBTbGVl Zl9wb3dmNF91MTBhdngyMTI4KTsKLS0gICAgICAgICAgICAgICAgaW1wbF9iaW5hcnkhKGYzMng4 OiBTbGVlZl9wb3dmOF91MTBhdngyKTsKLS0gICAgICAgICAgICAgICAgaW1wbF9iaW5hcnkhKGY2 NHgyOiBTbGVlZl9wb3dkMl91MTBhdngyMTI4KTsKLS0gICAgICAgICAgICAgICAgaW1wbF9iaW5h cnkhKGY2NHg0OiBTbGVlZl9wb3dkNF91MTBhdngyKTsKLS0gICAgICAgICAgICB9IGVsc2UgaWYg I1tjZmcodGFyZ2V0X2ZlYXR1cmUgPSAiYXZ4IildIHsKLS0gICAgICAgICAgICAgICAgaW1wbF9i aW5hcnkhKGYzMngyW3QgPT4gZjMyeDRdOiBTbGVlZl9wb3dmNF91MTBzc2U0KTsKLS0gICAgICAg ICAgICAgICAgaW1wbF9iaW5hcnkhKGYzMngxNltoID0+IGYzMng4XTogU2xlZWZfcG93ZjhfdTEw YXZ4KTsKLS0gICAgICAgICAgICAgICAgaW1wbF9iaW5hcnkhKGY2NHg4W2ggPT4gZjY0eDRdOiBT bGVlZl9wb3dkNF91MTBhdngpOwotLQotLSAgICAgICAgICAgICAgICBpbXBsX2JpbmFyeSEoZjMy eDQ6IFNsZWVmX3Bvd2Y0X3UxMHNzZTQpOwotLSAgICAgICAgICAgICAgICBpbXBsX2JpbmFyeSEo ZjMyeDg6IFNsZWVmX3Bvd2Y4X3UxMGF2eCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfYmluYXJ5 IShmNjR4MjogU2xlZWZfcG93ZDJfdTEwc3NlNCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfYmlu YXJ5IShmNjR4NDogU2xlZWZfcG93ZDRfdTEwYXZ4KTsKLS0gICAgICAgICAgICB9IGVsc2UgaWYg I1tjZmcodGFyZ2V0X2ZlYXR1cmUgPSAic3NlNC4yIildIHsKLS0gICAgICAgICAgICAgICAgaW1w bF9iaW5hcnkhKGYzMngyW3QgPT4gZjMyeDRdOiBTbGVlZl9wb3dmNF91MTBzc2U0KTsKLS0gICAg ICAgICAgICAgICAgaW1wbF9iaW5hcnkhKGYzMngxNltxID0+IGYzMng0XTogU2xlZWZfcG93ZjRf dTEwc3NlNCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfYmluYXJ5IShmNjR4OFtxID0+IGY2NHgy XTogU2xlZWZfcG93ZDJfdTEwc3NlNCk7Ci0tCi0tICAgICAgICAgICAgICAgIGltcGxfYmluYXJ5 IShmMzJ4NDogU2xlZWZfcG93ZjRfdTEwc3NlNCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfYmlu YXJ5IShmMzJ4OFtoID0+IGYzMng0XTogU2xlZWZfcG93ZjRfdTEwc3NlNCk7Ci0tICAgICAgICAg ICAgICAgIGltcGxfYmluYXJ5IShmNjR4MjogU2xlZWZfcG93ZDJfdTEwc3NlNCk7Ci0tICAgICAg ICAgICAgICAgIGltcGxfYmluYXJ5IShmNjR4NFtoID0+IGY2NHgyXTogU2xlZWZfcG93ZDJfdTEw c3NlNCk7Ci0tICAgICAgICAgICAgfSBlbHNlIGlmICNbY2ZnKHRhcmdldF9mZWF0dXJlID0gInNz ZTIiKV0gewotLSAgICAgICAgICAgICAgICBpbXBsX2JpbmFyeSEoZjMyeDJbdCA9PiBmMzJ4NF06 IFNsZWVmX3Bvd2Y0X3UxMHNzZTIpOwotLSAgICAgICAgICAgICAgICBpbXBsX2JpbmFyeSEoZjMy eDE2W3EgPT4gZjMyeDRdOiBTbGVlZl9wb3dmNF91MTBzc2UyKTsKLS0gICAgICAgICAgICAgICAg aW1wbF9iaW5hcnkhKGY2NHg4W3EgPT4gZjY0eDJdOiBTbGVlZl9wb3dkMl91MTBzc2UyKTsKLS0K LS0gICAgICAgICAgICAgICAgaW1wbF9iaW5hcnkhKGYzMng0OiBTbGVlZl9wb3dmNF91MTBzc2Uy KTsKLS0gICAgICAgICAgICAgICAgaW1wbF9iaW5hcnkhKGYzMng4W2ggPT4gZjMyeDRdOiBTbGVl Zl9wb3dmNF91MTBzc2UyKTsKLS0gICAgICAgICAgICAgICAgaW1wbF9iaW5hcnkhKGY2NHgyOiBT bGVlZl9wb3dkMl91MTBzc2UyKTsKLS0gICAgICAgICAgICAgICAgaW1wbF9iaW5hcnkhKGY2NHg0 W2ggPT4gZjY0eDJdOiBTbGVlZl9wb3dkMl91MTBzc2UyKTsKLS0gICAgICAgICAgICB9IGVsc2Ug ewotLSAgICAgICAgICAgICAgICBpbXBsX2JpbmFyeSEoZjMyeDJbZjMyOyAyXTogcG93Zl9mMzIp OwotLSAgICAgICAgICAgICAgICBpbXBsX2JpbmFyeSEoZjMyeDQ6IHBvd2ZfdjRmMzIpOwotLSAg ICAgICAgICAgICAgICBpbXBsX2JpbmFyeSEoZjMyeDg6IHBvd2ZfdjhmMzIpOwotLSAgICAgICAg ICAgICAgICBpbXBsX2JpbmFyeSEoZjMyeDE2OiBwb3dmX3YxNmYzMik7Ci0tCi0tICAgICAgICAg ICAgICAgIGltcGxfYmluYXJ5IShmNjR4MjogcG93Zl92MmY2NCk7Ci0tICAgICAgICAgICAgICAg IGltcGxfYmluYXJ5IShmNjR4NDogcG93Zl92NGY2NCk7Ci0tICAgICAgICAgICAgICAgIGltcGxf YmluYXJ5IShmNjR4ODogcG93Zl92OGY2NCk7Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQot LSAgICB9IGVsc2UgewotLSAgICAgICAgaW1wbF9iaW5hcnkhKGYzMngyW2YzMjsgMl06IHBvd2Zf ZjMyKTsKLS0gICAgICAgIGltcGxfYmluYXJ5IShmMzJ4NDogcG93Zl92NGYzMik7Ci0tICAgICAg ICBpbXBsX2JpbmFyeSEoZjMyeDg6IHBvd2ZfdjhmMzIpOwotLSAgICAgICAgaW1wbF9iaW5hcnkh KGYzMngxNjogcG93Zl92MTZmMzIpOwotLQotLSAgICAgICAgaW1wbF9iaW5hcnkhKGY2NHgyOiBw b3dmX3YyZjY0KTsKLS0gICAgICAgIGltcGxfYmluYXJ5IShmNjR4NDogcG93Zl92NGY2NCk7Ci0t ICAgICAgICBpbXBsX2JpbmFyeSEoZjY0eDg6IHBvd2ZfdjhmNjQpOwotLSAgICB9Ci0tfQotZGlm ZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vbWF0aC9m bG9hdC9zaW4ucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL21h dGgvZmxvYXQvc2luLnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9j b2RlZ2VuL21hdGgvZmxvYXQvc2luLnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICsw MzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL21hdGgv ZmxvYXQvc2luLnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSwx MDMgKzAsMCBAQAotLS8vISBWZXJ0aWNhbCBmbG9hdGluZy1wb2ludCBgc2luYAotLSMhW2FsbG93 KHVudXNlZCldCi0tCi0tLy8gRklYTUUgNjQtYml0IDEgZWxlbSB2ZWN0b3JzIHNpbgotLQotLXVz ZSBjcmF0ZTo6KjsKLS0KLS1wdWIoY3JhdGUpIHRyYWl0IFNpbiB7Ci0tICAgIGZuIHNpbihzZWxm KSAtPiBTZWxmOwotLX0KLS0KLS0jW2FsbG93KGltcHJvcGVyX2N0eXBlcyldCi0tZXh0ZXJuICJD IiB7Ci0tICAgICNbbGlua19uYW1lID0gImxsdm0uc2luLnYyZjMyIl0KLS0gICAgZm4gc2luX3Yy ZjMyKHg6IGYzMngyKSAtPiBmMzJ4MjsKLS0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5zaW4udjRm MzIiXQotLSAgICBmbiBzaW5fdjRmMzIoeDogZjMyeDQpIC0+IGYzMng0OwotLSAgICAjW2xpbmtf bmFtZSA9ICJsbHZtLnNpbi52OGYzMiJdCi0tICAgIGZuIHNpbl92OGYzMih4OiBmMzJ4OCkgLT4g ZjMyeDg7Ci0tICAgICNbbGlua19uYW1lID0gImxsdm0uc2luLnYxNmYzMiJdCi0tICAgIGZuIHNp bl92MTZmMzIoeDogZjMyeDE2KSAtPiBmMzJ4MTY7Ci0tICAgIC8qIEZJWE1FIDY0LWJpdCBzaW5n bGUgZWxlbSB2ZWN0b3JzCi0tICAgICNbbGlua19uYW1lID0gImxsdm0uc2luLnYxZjY0Il0KLS0g ICAgZm4gc2luX3YxZjY0KHg6IGY2NHgxKSAtPiBmNjR4MTsKLS0gICAgICovCi0tICAgICNbbGlu a19uYW1lID0gImxsdm0uc2luLnYyZjY0Il0KLS0gICAgZm4gc2luX3YyZjY0KHg6IGY2NHgyKSAt PiBmNjR4MjsKLS0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5zaW4udjRmNjQiXQotLSAgICBmbiBz aW5fdjRmNjQoeDogZjY0eDQpIC0+IGY2NHg0OwotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLnNp bi52OGY2NCJdCi0tICAgIGZuIHNpbl92OGY2NCh4OiBmNjR4OCkgLT4gZjY0eDg7Ci0tCi0tICAg ICNbbGlua19uYW1lID0gImxsdm0uc2luLmYzMiJdCi0tICAgIGZuIHNpbl9mMzIoeDogZjMyKSAt PiBmMzI7Ci0tICAgICNbbGlua19uYW1lID0gImxsdm0uc2luLmY2NCJdCi0tICAgIGZuIHNpbl9m NjQoeDogZjY0KSAtPiBmNjQ7Ci0tfQotLQotLWdlbl91bmFyeV9pbXBsX3RhYmxlIShTaW4sIHNp bik7Ci0tCi0tY2ZnX2lmISB7Ci0tICAgIGlmICNbY2ZnKHRhcmdldF9hcmNoID0gInMzOTB4Iild IHsKLS0gICAgICAgIC8vIEZJWE1FOiBodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nLW51cnNl cnkvcGFja2VkX3NpbWQvaXNzdWVzLzE0Ci0tICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4MltmMzI7 IDJdOiBzaW5fZjMyKTsKLS0gICAgICAgIGltcGxfdW5hcnkhKGYzMng0W2YzMjsgNF06IHNpbl9m MzIpOwotLSAgICAgICAgaW1wbF91bmFyeSEoZjMyeDhbZjMyOyA4XTogc2luX2YzMik7Ci0tICAg ICAgICBpbXBsX3VuYXJ5IShmMzJ4MTZbZjMyOyAxNl06IHNpbl9mMzIpOwotLQotLSAgICAgICAg aW1wbF91bmFyeSEoZjY0eDJbZjY0OyAyXTogc2luX2Y2NCk7Ci0tICAgICAgICBpbXBsX3VuYXJ5 IShmNjR4NFtmNjQ7IDRdOiBzaW5fZjY0KTsKLS0gICAgICAgIGltcGxfdW5hcnkhKGY2NHg4W2Y2 NDsgOF06IHNpbl9mNjQpOwotLSAgICB9IGVsc2UgaWYgI1tjZmcoYWxsKHRhcmdldF9hcmNoID0g Ing4Nl82NCIsIGZlYXR1cmUgPSAic2xlZWYtc3lzIikpXSB7Ci0tICAgICAgICB1c2Ugc2xlZWZf c3lzOjoqOwotLSAgICAgICAgY2ZnX2lmISB7Ci0tICAgICAgICAgICAgaWYgI1tjZmcodGFyZ2V0 X2ZlYXR1cmUgPSAiYXZ4MiIpXSB7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMngy W3QgPT4gZjMyeDRdOiBTbGVlZl9zaW5mNF91MTBhdngyMTI4KTsKLS0gICAgICAgICAgICAgICAg aW1wbF91bmFyeSEoZjMyeDE2W2ggPT4gZjMyeDhdOiBTbGVlZl9zaW5mOF91MTBhdngyKTsKLS0g ICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDhbaCA9PiBmNjR4NF06IFNsZWVmX3NpbmQ0 X3UxMGF2eDIpOwotLQotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4NDogU2xlZWZf c2luZjRfdTEwYXZ4MjEyOCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng4OiBT bGVlZl9zaW5mOF91MTBhdngyKTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDI6 IFNsZWVmX3NpbmQyX3UxMGF2eDIxMjgpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShm NjR4NDogU2xlZWZfc2luZDRfdTEwYXZ4Mik7Ci0tICAgICAgICAgICAgfSBlbHNlIGlmICNbY2Zn KHRhcmdldF9mZWF0dXJlID0gImF2eCIpXSB7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkh KGYzMngyW3QgPT4gZjMyeDRdOiBTbGVlZl9zaW5mNF91MTBzc2U0KTsKLS0gICAgICAgICAgICAg ICAgaW1wbF91bmFyeSEoZjMyeDE2W2ggPT4gZjMyeDhdOiBTbGVlZl9zaW5mOF91MTBhdngpOwot LSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4OFtoID0+IGY2NHg0XTogU2xlZWZfc2lu ZDRfdTEwYXZ4KTsKLS0KLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDQ6IFNsZWVm X3NpbmY0X3UxMHNzZTQpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4ODogU2xl ZWZfc2luZjhfdTEwYXZ4KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDI6IFNs ZWVmX3NpbmQyX3UxMHNzZTQpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4NDog U2xlZWZfc2luZDRfdTEwYXZ4KTsKLS0gICAgICAgICAgICB9IGVsc2UgaWYgI1tjZmcodGFyZ2V0 X2ZlYXR1cmUgPSAic3NlNC4yIildIHsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMy eDJbdCA9PiBmMzJ4NF06IFNsZWVmX3NpbmY0X3UxMHNzZTQpOwotLSAgICAgICAgICAgICAgICBp bXBsX3VuYXJ5IShmMzJ4MTZbcSA9PiBmMzJ4NF06IFNsZWVmX3NpbmY0X3UxMHNzZTQpOwotLSAg ICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4OFtxID0+IGY2NHgyXTogU2xlZWZfc2luZDJf dTEwc3NlNCk7Ci0tCi0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng0OiBTbGVlZl9z aW5mNF91MTBzc2U0KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDhbaCA9PiBm MzJ4NF06IFNsZWVmX3NpbmY0X3UxMHNzZTQpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5 IShmNjR4MjogU2xlZWZfc2luZDJfdTEwc3NlNCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5h cnkhKGY2NHg0W2ggPT4gZjY0eDJdOiBTbGVlZl9zaW5kMl91MTBzc2U0KTsKLS0gICAgICAgICAg ICB9IGVsc2UgewotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4MltmMzI7IDJdOiBz aW5fZjMyKTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDE2OiBzaW5fdjE2ZjMy KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDg6IHNpbl92OGY2NCk7Ci0tCi0t ICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng0OiBzaW5fdjRmMzIpOwotLSAgICAgICAg ICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4ODogc2luX3Y4ZjMyKTsKLS0gICAgICAgICAgICAgICAg aW1wbF91bmFyeSEoZjY0eDI6IHNpbl92MmY2NCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5h cnkhKGY2NHg0OiBzaW5fdjRmNjQpOwotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAg fSBlbHNlIHsKLS0gICAgICAgIGltcGxfdW5hcnkhKGYzMngyW2YzMjsgMl06IHNpbl9mMzIpOwot LSAgICAgICAgaW1wbF91bmFyeSEoZjMyeDQ6IHNpbl92NGYzMik7Ci0tICAgICAgICBpbXBsX3Vu YXJ5IShmMzJ4ODogc2luX3Y4ZjMyKTsKLS0gICAgICAgIGltcGxfdW5hcnkhKGYzMngxNjogc2lu X3YxNmYzMik7Ci0tCi0tICAgICAgICBpbXBsX3VuYXJ5IShmNjR4Mjogc2luX3YyZjY0KTsKLS0g ICAgICAgIGltcGxfdW5hcnkhKGY2NHg0OiBzaW5fdjRmNjQpOwotLSAgICAgICAgaW1wbF91bmFy eSEoZjY0eDg6IHNpbl92OGY2NCk7Ci0tICAgIH0KLS19Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFy dHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9tYXRoL2Zsb2F0L3Npbl9jb3NfcGkucnMg Yi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL21hdGgvZmxvYXQvc2lu X2Nvc19waS5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdl bi9tYXRoL2Zsb2F0L3Npbl9jb3NfcGkucnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAg KzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vbWF0 aC9mbG9hdC9zaW5fY29zX3BpLnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAw Ci1AQCAtMSwxODggKzAsMCBAQAotLS8vISBWZXJ0aWNhbCBmbG9hdGluZy1wb2ludCBgc2luX2Nv c2AKLS0jIVthbGxvdyh1bnVzZWQpXQotLQotLS8vIEZJWE1FIDY0LWJpdCAxIGVsZW0gdmVjdG9y cyBzaW5fY29zCi0tCi0tdXNlIGNyYXRlOjoqOwotLQotLXB1YihjcmF0ZSkgdHJhaXQgU2luQ29z UGk6IFNpemVkIHsKLS0gICAgdHlwZSBPdXRwdXQ7Ci0tICAgIGZuIHNpbl9jb3NfcGkoc2VsZikg LT4gU2VsZjo6T3V0cHV0OwotLX0KLS0KLS1tYWNyb19ydWxlcyEgaW1wbF9kZWYgewotLSAgICAo JHZpZDppZGVudCwgJFBJOnBhdGgpID0+IHsKLS0gICAgICAgIGltcGwgU2luQ29zUGkgZm9yICR2 aWQgewotLSAgICAgICAgICAgIHR5cGUgT3V0cHV0ID0gKFNlbGYsIFNlbGYpOwotLSAgICAgICAg ICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIGZuIHNpbl9jb3NfcGkoc2VsZikgLT4gU2VsZjo6 T3V0cHV0IHsKLS0gICAgICAgICAgICAgICAgbGV0IHYgPSBzZWxmICogU2VsZjo6c3BsYXQoJFBJ KTsKLS0gICAgICAgICAgICAgICAgKHYuc2luKCksIHYuY29zKCkpCi0tICAgICAgICAgICAgfQot LSAgICAgICAgfQotLSAgICB9OwotLX0KLS0KLS1tYWNyb19ydWxlcyEgaW1wbF9kZWYzMiB7Ci0t ICAgICgkdmlkOmlkZW50KSA9PiB7Ci0tICAgICAgICBpbXBsX2RlZiEoJHZpZCwgY3JhdGU6OmYz Mjo6Y29uc3RzOjpQSSk7Ci0tICAgIH07Ci0tfQotLW1hY3JvX3J1bGVzISBpbXBsX2RlZjY0IHsK LS0gICAgKCR2aWQ6aWRlbnQpID0+IHsKLS0gICAgICAgIGltcGxfZGVmISgkdmlkLCBjcmF0ZTo6 ZjY0Ojpjb25zdHM6OlBJKTsKLS0gICAgfTsKLS19Ci0tCi0tbWFjcm9fcnVsZXMhIGltcGxfdW5h cnlfdCB7Ci0tICAgICgkdmlkOmlkZW50OiAkZnVuOmlkZW50KSA9PiB7Ci0tICAgICAgICBpbXBs IFNpbkNvc1BpIGZvciAkdmlkIHsKLS0gICAgICAgICAgICB0eXBlIE91dHB1dCA9IChTZWxmLCBT ZWxmKTsKLS0gICAgICAgICAgICBmbiBzaW5fY29zX3BpKHNlbGYpIC0+IFNlbGY6Ok91dHB1dCB7 Ci0tICAgICAgICAgICAgICAgIHVuc2FmZSB7Ci0tICAgICAgICAgICAgICAgICAgICB1c2UgY3Jh dGU6Om1lbTo6dHJhbnNtdXRlOwotLSAgICAgICAgICAgICAgICAgICAgdHJhbnNtdXRlKCRmdW4o dHJhbnNtdXRlKHNlbGYpKSkKLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgIH0KLS0g ICAgICAgIH0KLS0gICAgfTsKLS0gICAgKCR2aWQ6aWRlbnRbdCA9PiAkdmlkX3Q6aWRlbnRdOiAk ZnVuOmlkZW50KSA9PiB7Ci0tICAgICAgICBpbXBsIFNpbkNvc1BpIGZvciAkdmlkIHsKLS0gICAg ICAgICAgICB0eXBlIE91dHB1dCA9IChTZWxmLCBTZWxmKTsKLS0gICAgICAgICAgICBmbiBzaW5f Y29zX3BpKHNlbGYpIC0+IFNlbGY6Ok91dHB1dCB7Ci0tICAgICAgICAgICAgICAgIHVuc2FmZSB7 Ci0tICAgICAgICAgICAgICAgICAgICB1c2UgY3JhdGU6Om1lbTo6e3RyYW5zbXV0ZSwgdW5pbml0 aWFsaXplZH07Ci0tCi0tICAgICAgICAgICAgICAgICAgICB1bmlvbiBVIHsKLS0gICAgICAgICAg ICAgICAgICAgICAgICB2ZWM6IFskdmlkOyAyXSwKLS0gICAgICAgICAgICAgICAgICAgICAgICB0 d2ljZTogJHZpZF90LAotLSAgICAgICAgICAgICAgICAgICAgfQotLQotLSAgICAgICAgICAgICAg ICAgICAgbGV0IHR3aWNlID0gVSB7IHZlYzogW3NlbGYsIHVuaW5pdGlhbGl6ZWQoKV0gfS50d2lj ZTsKLS0gICAgICAgICAgICAgICAgICAgIGxldCB0d2ljZSA9IHRyYW5zbXV0ZSgkZnVuKHRyYW5z bXV0ZSh0d2ljZSkpKTsKLS0KLS0gICAgICAgICAgICAgICAgICAgIHVuaW9uIFIgewotLSAgICAg ICAgICAgICAgICAgICAgICAgIHR3aWNlOiAoJHZpZF90LCAkdmlkX3QpLAotLSAgICAgICAgICAg ICAgICAgICAgICAgIHZlY3M6IChbJHZpZDsgMl0sIFskdmlkOyAyXSksCi0tICAgICAgICAgICAg ICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICBsZXQgciA9IFIgeyB0d2ljZSB9LnZlY3M7 Ci0tICAgICAgICAgICAgICAgICAgICAoKnIuMC5nZXRfdW5jaGVja2VkKDApLCAqci4wLmdldF91 bmNoZWNrZWQoMSkpCi0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICB9Ci0tICAgICAg ICB9Ci0tICAgIH07Ci0tICAgICgkdmlkOmlkZW50W2ggPT4gJHZpZF9oOmlkZW50XTogJGZ1bjpp ZGVudCkgPT4gewotLSAgICAgICAgaW1wbCBTaW5Db3NQaSBmb3IgJHZpZCB7Ci0tICAgICAgICAg ICAgdHlwZSBPdXRwdXQgPSAoU2VsZiwgU2VsZik7Ci0tICAgICAgICAgICAgZm4gc2luX2Nvc19w aShzZWxmKSAtPiBTZWxmOjpPdXRwdXQgewotLSAgICAgICAgICAgICAgICB1bnNhZmUgewotLSAg ICAgICAgICAgICAgICAgICAgdXNlIGNyYXRlOjptZW06OnRyYW5zbXV0ZTsKLS0KLS0gICAgICAg ICAgICAgICAgICAgIHVuaW9uIFUgewotLSAgICAgICAgICAgICAgICAgICAgICAgIHZlYzogJHZp ZCwKLS0gICAgICAgICAgICAgICAgICAgICAgICBoYWx2ZXM6IFskdmlkX2g7IDJdLAotLSAgICAg ICAgICAgICAgICAgICAgfQotLQotLSAgICAgICAgICAgICAgICAgICAgbGV0IGhhbHZlcyA9IFUg eyB2ZWM6IHNlbGYgfS5oYWx2ZXM7Ci0tCi0tICAgICAgICAgICAgICAgICAgICBsZXQgcmVzXzA6 ICgkdmlkX2gsICR2aWRfaCkgPSB0cmFuc211dGUoJGZ1bih0cmFuc211dGUoKmhhbHZlcy5nZXRf dW5jaGVja2VkKDApKSkpOwotLSAgICAgICAgICAgICAgICAgICAgbGV0IHJlc18xOiAoJHZpZF9o LCAkdmlkX2gpID0gdHJhbnNtdXRlKCRmdW4odHJhbnNtdXRlKCpoYWx2ZXMuZ2V0X3VuY2hlY2tl ZCgxKSkpKTsKLS0KLS0gICAgICAgICAgICAgICAgICAgIHVuaW9uIFIgewotLSAgICAgICAgICAg ICAgICAgICAgICAgIHJlc3VsdDogKCR2aWQsICR2aWQpLAotLSAgICAgICAgICAgICAgICAgICAg ICAgIGhhbHZlczogKFskdmlkX2g7IDJdLCBbJHZpZF9oOyAyXSksCi0tICAgICAgICAgICAgICAg ICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICBSIHsgaGFsdmVzOiAoW3Jlc18wLjAsIHJlc18x LjBdLCBbcmVzXzAuMSwgcmVzXzEuMV0pIH0ucmVzdWx0Ci0tICAgICAgICAgICAgICAgIH0KLS0g ICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgIH07Ci0tICAgICgkdmlkOmlkZW50W3EgPT4g JHZpZF9xOmlkZW50XTogJGZ1bjppZGVudCkgPT4gewotLSAgICAgICAgaW1wbCBTaW5Db3NQaSBm b3IgJHZpZCB7Ci0tICAgICAgICAgICAgdHlwZSBPdXRwdXQgPSAoU2VsZiwgU2VsZik7Ci0tICAg ICAgICAgICAgZm4gc2luX2Nvc19waShzZWxmKSAtPiBTZWxmOjpPdXRwdXQgewotLSAgICAgICAg ICAgICAgICB1bnNhZmUgewotLSAgICAgICAgICAgICAgICAgICAgdXNlIGNyYXRlOjptZW06OnRy YW5zbXV0ZTsKLS0KLS0gICAgICAgICAgICAgICAgICAgIHVuaW9uIFUgewotLSAgICAgICAgICAg ICAgICAgICAgICAgIHZlYzogJHZpZCwKLS0gICAgICAgICAgICAgICAgICAgICAgICBxdWFydGVy czogWyR2aWRfcTsgNF0sCi0tICAgICAgICAgICAgICAgICAgICB9Ci0tCi0tICAgICAgICAgICAg ICAgICAgICBsZXQgcXVhcnRlcnMgPSBVIHsgdmVjOiBzZWxmIH0ucXVhcnRlcnM7Ci0tCi0tICAg ICAgICAgICAgICAgICAgICBsZXQgcmVzXzA6ICgkdmlkX3EsICR2aWRfcSkgPSB0cmFuc211dGUo JGZ1bih0cmFuc211dGUoKnF1YXJ0ZXJzLmdldF91bmNoZWNrZWQoMCkpKSk7Ci0tICAgICAgICAg ICAgICAgICAgICBsZXQgcmVzXzE6ICgkdmlkX3EsICR2aWRfcSkgPSB0cmFuc211dGUoJGZ1bih0 cmFuc211dGUoKnF1YXJ0ZXJzLmdldF91bmNoZWNrZWQoMSkpKSk7Ci0tICAgICAgICAgICAgICAg ICAgICBsZXQgcmVzXzI6ICgkdmlkX3EsICR2aWRfcSkgPSB0cmFuc211dGUoJGZ1bih0cmFuc211 dGUoKnF1YXJ0ZXJzLmdldF91bmNoZWNrZWQoMikpKSk7Ci0tICAgICAgICAgICAgICAgICAgICBs ZXQgcmVzXzM6ICgkdmlkX3EsICR2aWRfcSkgPSB0cmFuc211dGUoJGZ1bih0cmFuc211dGUoKnF1 YXJ0ZXJzLmdldF91bmNoZWNrZWQoMykpKSk7Ci0tCi0tICAgICAgICAgICAgICAgICAgICB1bmlv biBSIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQ6ICgkdmlkLCAkdmlkKSwKLS0g ICAgICAgICAgICAgICAgICAgICAgICBxdWFydGVyczogKFskdmlkX3E7IDRdLCBbJHZpZF9xOyA0 XSksCi0tICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICBSIHsKLS0g ICAgICAgICAgICAgICAgICAgICAgICBxdWFydGVyczogKAotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICBbcmVzXzAuMCwgcmVzXzEuMCwgcmVzXzIuMCwgcmVzXzMuMF0sCi0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFtyZXNfMC4xLCByZXNfMS4xLCByZXNfMi4xLCByZXNfMy4xXSwK LS0gICAgICAgICAgICAgICAgICAgICAgICApLAotLSAgICAgICAgICAgICAgICAgICAgfQotLSAg ICAgICAgICAgICAgICAgICAgLnJlc3VsdAotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAg ICAgfQotLSAgICAgICAgfQotLSAgICB9OwotLX0KLS0KLS1jZmdfaWYhIHsKLS0gICAgaWYgI1tj ZmcoYWxsKHRhcmdldF9hcmNoID0gIng4Nl82NCIsIGZlYXR1cmUgPSAic2xlZWYtc3lzIikpXSB7 Ci0tICAgICAgICB1c2Ugc2xlZWZfc3lzOjoqOwotLSAgICAgICAgY2ZnX2lmISB7Ci0tICAgICAg ICAgICAgaWYgI1tjZmcodGFyZ2V0X2ZlYXR1cmUgPSAiYXZ4MiIpXSB7Ci0tICAgICAgICAgICAg ICAgIGltcGxfdW5hcnlfdCEoZjMyeDJbdCA9PiBmMzJ4NF06IFNsZWVmX3NpbmNvc3BpZjRfdTA1 YXZ4MjEyOCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnlfdCEoZjMyeDE2W2ggPT4gZjMy eDhdOiBTbGVlZl9zaW5jb3NwaWY4X3UwNWF2eDIpOwotLSAgICAgICAgICAgICAgICBpbXBsX3Vu YXJ5X3QhKGY2NHg4W2ggPT4gZjY0eDRdOiBTbGVlZl9zaW5jb3NwaWQ0X3UwNWF2eDIpOwotLQot LSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5X3QhKGYzMng0OiBTbGVlZl9zaW5jb3NwaWY0X3Uw NWF2eDIxMjgpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5X3QhKGYzMng4OiBTbGVlZl9z aW5jb3NwaWY4X3UwNWF2eDIpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5X3QhKGY2NHgy OiBTbGVlZl9zaW5jb3NwaWQyX3UwNWF2eDIxMjgpOwotLSAgICAgICAgICAgICAgICBpbXBsX3Vu YXJ5X3QhKGY2NHg0OiBTbGVlZl9zaW5jb3NwaWQ0X3UwNWF2eDIpOwotLSAgICAgICAgICAgIH0g ZWxzZSBpZiAjW2NmZyh0YXJnZXRfZmVhdHVyZSA9ICJhdngiKV0gewotLSAgICAgICAgICAgICAg ICBpbXBsX3VuYXJ5X3QhKGYzMngyW3QgPT4gZjMyeDRdOiBTbGVlZl9zaW5jb3NwaWY0X3UwNXNz ZTQpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5X3QhKGYzMngxNltoID0+IGYzMng4XTog U2xlZWZfc2luY29zcGlmOF91MDVhdngpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5X3Qh KGY2NHg4W2ggPT4gZjY0eDRdOiBTbGVlZl9zaW5jb3NwaWQ0X3UwNWF2eCk7Ci0tCi0tICAgICAg ICAgICAgICAgIGltcGxfdW5hcnlfdCEoZjMyeDQ6IFNsZWVmX3NpbmNvc3BpZjRfdTA1c3NlNCk7 Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnlfdCEoZjMyeDg6IFNsZWVmX3NpbmNvc3BpZjhf dTA1YXZ4KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeV90IShmNjR4MjogU2xlZWZfc2lu Y29zcGlkMl91MDVzc2U0KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeV90IShmNjR4NDog U2xlZWZfc2luY29zcGlkNF91MDVhdngpOwotLSAgICAgICAgICAgIH0gZWxzZSBpZiAjW2NmZyh0 YXJnZXRfZmVhdHVyZSA9ICJzc2U0LjIiKV0gewotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5 X3QhKGYzMngyW3QgPT4gZjMyeDRdOiBTbGVlZl9zaW5jb3NwaWY0X3UwNXNzZTQpOwotLSAgICAg ICAgICAgICAgICBpbXBsX3VuYXJ5X3QhKGYzMngxNltxID0+IGYzMng0XTogU2xlZWZfc2luY29z cGlmNF91MDVzc2U0KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeV90IShmNjR4OFtxID0+ IGY2NHgyXTogU2xlZWZfc2luY29zcGlkMl91MDVzc2U0KTsKLS0KLS0gICAgICAgICAgICAgICAg aW1wbF91bmFyeV90IShmMzJ4NDogU2xlZWZfc2luY29zcGlmNF91MDVzc2U0KTsKLS0gICAgICAg ICAgICAgICAgaW1wbF91bmFyeV90IShmMzJ4OFtoID0+IGYzMng0XTogU2xlZWZfc2luY29zcGlm NF91MDVzc2U0KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeV90IShmNjR4MjogU2xlZWZf c2luY29zcGlkMl91MDVzc2U0KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeV90IShmNjR4 NFtoID0+IGY2NHgyXTogU2xlZWZfc2luY29zcGlkMl91MDVzc2U0KTsKLS0gICAgICAgICAgICB9 IGVsc2UgewotLSAgICAgICAgICAgICAgICBpbXBsX2RlZjMyIShmMzJ4Mik7Ci0tICAgICAgICAg ICAgICAgIGltcGxfZGVmMzIhKGYzMng0KTsKLS0gICAgICAgICAgICAgICAgaW1wbF9kZWYzMiEo ZjMyeDgpOwotLSAgICAgICAgICAgICAgICBpbXBsX2RlZjMyIShmMzJ4MTYpOwotLQotLSAgICAg ICAgICAgICAgICBpbXBsX2RlZjY0IShmNjR4Mik7Ci0tICAgICAgICAgICAgICAgIGltcGxfZGVm NjQhKGY2NHg0KTsKLS0gICAgICAgICAgICAgICAgaW1wbF9kZWY2NCEoZjY0eDgpOwotLSAgICAg ICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgfSBlbHNlIHsKLS0gICAgICAgIGltcGxfZGVmMzIh KGYzMngyKTsKLS0gICAgICAgIGltcGxfZGVmMzIhKGYzMng0KTsKLS0gICAgICAgIGltcGxfZGVm MzIhKGYzMng4KTsKLS0gICAgICAgIGltcGxfZGVmMzIhKGYzMngxNik7Ci0tCi0tICAgICAgICBp bXBsX2RlZjY0IShmNjR4Mik7Ci0tICAgICAgICBpbXBsX2RlZjY0IShmNjR4NCk7Ci0tICAgICAg ICBpbXBsX2RlZjY0IShmNjR4OCk7Ci0tICAgIH0KLS19Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFy dHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9tYXRoL2Zsb2F0L3Npbl9waS5ycyBiL3Ro aXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vbWF0aC9mbG9hdC9zaW5fcGku cnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vbWF0aC9m bG9hdC9zaW5fcGkucnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBi L3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vbWF0aC9mbG9hdC9zaW5f cGkucnMJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDg3ICswLDAg QEAKLS0vLyEgVmVydGljYWwgZmxvYXRpbmctcG9pbnQgYHNpbl9waWAKLS0jIVthbGxvdyh1bnVz ZWQpXQotLQotLS8vIEZJWE1FIDY0LWJpdCAxIGVsZW0gdmVjdG9ycyBzaW5fcGkKLS0KLS11c2Ug Y3JhdGU6Oio7Ci0tCi0tcHViKGNyYXRlKSB0cmFpdCBTaW5QaSB7Ci0tICAgIGZuIHNpbl9waShz ZWxmKSAtPiBTZWxmOwotLX0KLS0KLS1nZW5fdW5hcnlfaW1wbF90YWJsZSEoU2luUGksIHNpbl9w aSk7Ci0tCi0tbWFjcm9fcnVsZXMhIGltcGxfZGVmIHsKLS0gICAgKCR2aWQ6aWRlbnQsICRQSTpw YXRoKSA9PiB7Ci0tICAgICAgICBpbXBsIFNpblBpIGZvciAkdmlkIHsKLS0gICAgICAgICAgICAj W2lubGluZV0KLS0gICAgICAgICAgICBmbiBzaW5fcGkoc2VsZikgLT4gU2VsZiB7Ci0tICAgICAg ICAgICAgICAgIChzZWxmICogU2VsZjo6c3BsYXQoJFBJKSkuc2luKCkKLS0gICAgICAgICAgICB9 Ci0tICAgICAgICB9Ci0tICAgIH07Ci0tfQotLW1hY3JvX3J1bGVzISBpbXBsX2RlZjMyIHsKLS0g ICAgKCR2aWQ6aWRlbnQpID0+IHsKLS0gICAgICAgIGltcGxfZGVmISgkdmlkLCBjcmF0ZTo6ZjMy Ojpjb25zdHM6OlBJKTsKLS0gICAgfTsKLS19Ci0tbWFjcm9fcnVsZXMhIGltcGxfZGVmNjQgewot LSAgICAoJHZpZDppZGVudCkgPT4gewotLSAgICAgICAgaW1wbF9kZWYhKCR2aWQsIGNyYXRlOjpm NjQ6OmNvbnN0czo6UEkpOwotLSAgICB9OwotLX0KLS0KLS1jZmdfaWYhIHsKLS0gICAgaWYgI1tj ZmcoYWxsKHRhcmdldF9hcmNoID0gIng4Nl82NCIsIGZlYXR1cmUgPSAic2xlZWYtc3lzIikpXSB7 Ci0tICAgICAgICB1c2Ugc2xlZWZfc3lzOjoqOwotLSAgICAgICAgY2ZnX2lmISB7Ci0tICAgICAg ICAgICAgaWYgI1tjZmcodGFyZ2V0X2ZlYXR1cmUgPSAiYXZ4MiIpXSB7Ci0tICAgICAgICAgICAg ICAgIGltcGxfdW5hcnkhKGYzMngyW3QgPT4gZjMyeDRdOiBTbGVlZl9zaW5waWY0X3UwNWF2eDIx MjgpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4MTZbaCA9PiBmMzJ4OF06IFNs ZWVmX3NpbnBpZjhfdTA1YXZ4Mik7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg4 W2ggPT4gZjY0eDRdOiBTbGVlZl9zaW5waWQ0X3UwNWF2eDIpOwotLQotLSAgICAgICAgICAgICAg ICBpbXBsX3VuYXJ5IShmMzJ4NDogU2xlZWZfc2lucGlmNF91MDVhdngyMTI4KTsKLS0gICAgICAg ICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDg6IFNsZWVmX3NpbnBpZjhfdTA1YXZ4Mik7Ci0tICAg ICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHgyOiBTbGVlZl9zaW5waWQyX3UwNWF2eDIxMjgp OwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4NDogU2xlZWZfc2lucGlkNF91MDVh dngyKTsKLS0gICAgICAgICAgICB9IGVsc2UgaWYgI1tjZmcodGFyZ2V0X2ZlYXR1cmUgPSAiYXZ4 IildIHsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDJbdCA9PiBmMzJ4NF06IFNs ZWVmX3NpbnBpZjRfdTA1c3NlNCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMngx NltoID0+IGYzMng4XTogU2xlZWZfc2lucGlmOF91MDVhdngpOwotLSAgICAgICAgICAgICAgICBp bXBsX3VuYXJ5IShmNjR4OFtoID0+IGY2NHg0XTogU2xlZWZfc2lucGlkNF91MDVhdngpOwotLQot LSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4NDogU2xlZWZfc2lucGlmNF91MDVzc2U0 KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDg6IFNsZWVmX3NpbnBpZjhfdTA1 YXZ4KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDI6IFNsZWVmX3NpbnBpZDJf dTA1c3NlNCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg0OiBTbGVlZl9zaW5w aWQ0X3UwNWF2eCk7Ci0tICAgICAgICAgICAgfSBlbHNlIGlmICNbY2ZnKHRhcmdldF9mZWF0dXJl ID0gInNzZTQuMiIpXSB7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMngyW3QgPT4g ZjMyeDRdOiBTbGVlZl9zaW5waWY0X3UwNXNzZTQpOwotLSAgICAgICAgICAgICAgICBpbXBsX3Vu YXJ5IShmMzJ4MTZbcSA9PiBmMzJ4NF06IFNsZWVmX3NpbnBpZjRfdTA1c3NlNCk7Ci0tICAgICAg ICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg4W3EgPT4gZjY0eDJdOiBTbGVlZl9zaW5waWQyX3Uw NXNzZTQpOwotLQotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4NDogU2xlZWZfc2lu cGlmNF91MDVzc2U0KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDhbaCA9PiBm MzJ4NF06IFNsZWVmX3NpbnBpZjRfdTA1c3NlNCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5h cnkhKGY2NHgyOiBTbGVlZl9zaW5waWQyX3UwNXNzZTQpOwotLSAgICAgICAgICAgICAgICBpbXBs X3VuYXJ5IShmNjR4NFtoID0+IGY2NHgyXTogU2xlZWZfc2lucGlkMl91MDVzc2U0KTsKLS0gICAg ICAgICAgICB9IGVsc2UgewotLSAgICAgICAgICAgICAgICBpbXBsX2RlZjMyIShmMzJ4Mik7Ci0t ICAgICAgICAgICAgICAgIGltcGxfZGVmMzIhKGYzMng0KTsKLS0gICAgICAgICAgICAgICAgaW1w bF9kZWYzMiEoZjMyeDgpOwotLSAgICAgICAgICAgICAgICBpbXBsX2RlZjMyIShmMzJ4MTYpOwot LQotLSAgICAgICAgICAgICAgICBpbXBsX2RlZjY0IShmNjR4Mik7Ci0tICAgICAgICAgICAgICAg IGltcGxfZGVmNjQhKGY2NHg0KTsKLS0gICAgICAgICAgICAgICAgaW1wbF9kZWY2NCEoZjY0eDgp OwotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgfSBlbHNlIHsKLS0gICAgICAgIGlt cGxfZGVmMzIhKGYzMngyKTsKLS0gICAgICAgIGltcGxfZGVmMzIhKGYzMng0KTsKLS0gICAgICAg IGltcGxfZGVmMzIhKGYzMng4KTsKLS0gICAgICAgIGltcGxfZGVmMzIhKGYzMngxNik7Ci0tCi0t ICAgICAgICBpbXBsX2RlZjY0IShmNjR4Mik7Ci0tICAgICAgICBpbXBsX2RlZjY0IShmNjR4NCk7 Ci0tICAgICAgICBpbXBsX2RlZjY0IShmNjR4OCk7Ci0tICAgIH0KLS19Ci1kaWZmIC1OcmJ1IGEv dGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9tYXRoL2Zsb2F0L3NxcnQu cnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL21hdGgvZmxvYXQv c3FydC5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9t YXRoL2Zsb2F0L3NxcnQucnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsr KyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vbWF0aC9mbG9hdC9z cXJ0LnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSwxMDMgKzAs MCBAQAotLS8vISBWZXJ0aWNhbCBmbG9hdGluZy1wb2ludCBgc3FydGAKLS0jIVthbGxvdyh1bnVz ZWQpXQotLQotLS8vIEZJWE1FIDY0LWJpdCAxIGVsZW0gdmVjdG9ycyBzcXJ0Ci0tCi0tdXNlIGNy YXRlOjoqOwotLQotLXB1YihjcmF0ZSkgdHJhaXQgU3FydCB7Ci0tICAgIGZuIHNxcnQoc2VsZikg LT4gU2VsZjsKLS19Ci0tCi0tI1thbGxvdyhpbXByb3Blcl9jdHlwZXMpXQotLWV4dGVybiAiQyIg ewotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLnNxcnQudjJmMzIiXQotLSAgICBmbiBzcXJ0X3Yy ZjMyKHg6IGYzMngyKSAtPiBmMzJ4MjsKLS0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5zcXJ0LnY0 ZjMyIl0KLS0gICAgZm4gc3FydF92NGYzMih4OiBmMzJ4NCkgLT4gZjMyeDQ7Ci0tICAgICNbbGlu a19uYW1lID0gImxsdm0uc3FydC52OGYzMiJdCi0tICAgIGZuIHNxcnRfdjhmMzIoeDogZjMyeDgp IC0+IGYzMng4OwotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLnNxcnQudjE2ZjMyIl0KLS0gICAg Zm4gc3FydF92MTZmMzIoeDogZjMyeDE2KSAtPiBmMzJ4MTY7Ci0tICAgIC8qIEZJWE1FIDY0LWJp dCBzcXJ0Z2xlIGVsZW0gdmVjdG9ycwotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLnNxcnQudjFm NjQiXQotLSAgICBmbiBzcXJ0X3YxZjY0KHg6IGY2NHgxKSAtPiBmNjR4MTsKLS0gICAgICovCi0t ICAgICNbbGlua19uYW1lID0gImxsdm0uc3FydC52MmY2NCJdCi0tICAgIGZuIHNxcnRfdjJmNjQo eDogZjY0eDIpIC0+IGY2NHgyOwotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLnNxcnQudjRmNjQi XQotLSAgICBmbiBzcXJ0X3Y0ZjY0KHg6IGY2NHg0KSAtPiBmNjR4NDsKLS0gICAgI1tsaW5rX25h bWUgPSAibGx2bS5zcXJ0LnY4ZjY0Il0KLS0gICAgZm4gc3FydF92OGY2NCh4OiBmNjR4OCkgLT4g ZjY0eDg7Ci0tCi0tICAgICNbbGlua19uYW1lID0gImxsdm0uc3FydC5mMzIiXQotLSAgICBmbiBz cXJ0X2YzMih4OiBmMzIpIC0+IGYzMjsKLS0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5zcXJ0LmY2 NCJdCi0tICAgIGZuIHNxcnRfZjY0KHg6IGY2NCkgLT4gZjY0OwotLX0KLS0KLS1nZW5fdW5hcnlf aW1wbF90YWJsZSEoU3FydCwgc3FydCk7Ci0tCi0tY2ZnX2lmISB7Ci0tICAgIGlmICNbY2ZnKHRh cmdldF9hcmNoID0gInMzOTB4IildIHsKLS0gICAgICAgIC8vIEZJWE1FOiBodHRwczovL2dpdGh1 Yi5jb20vcnVzdC1sYW5nLW51cnNlcnkvcGFja2VkX3NpbWQvaXNzdWVzLzE0Ci0tICAgICAgICBp bXBsX3VuYXJ5IShmMzJ4MltmMzI7IDJdOiBzcXJ0X2YzMik7Ci0tICAgICAgICBpbXBsX3VuYXJ5 IShmMzJ4NFtmMzI7IDRdOiBzcXJ0X2YzMik7Ci0tICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4OFtm MzI7IDhdOiBzcXJ0X2YzMik7Ci0tICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4MTZbZjMyOyAxNl06 IHNxcnRfZjMyKTsKLS0KLS0gICAgICAgIGltcGxfdW5hcnkhKGY2NHgyW2Y2NDsgMl06IHNxcnRf ZjY0KTsKLS0gICAgICAgIGltcGxfdW5hcnkhKGY2NHg0W2Y2NDsgNF06IHNxcnRfZjY0KTsKLS0g ICAgICAgIGltcGxfdW5hcnkhKGY2NHg4W2Y2NDsgOF06IHNxcnRfZjY0KTsKLS0gICAgfSBlbHNl IGlmICNbY2ZnKGFsbCh0YXJnZXRfYXJjaCA9ICJ4ODZfNjQiLCBmZWF0dXJlID0gInNsZWVmLXN5 cyIpKV0gewotLSAgICAgICAgdXNlIHNsZWVmX3N5czo6KjsKLS0gICAgICAgIGNmZ19pZiEgewot LSAgICAgICAgICAgIGlmICNbY2ZnKHRhcmdldF9mZWF0dXJlID0gImF2eDIiKV0gewotLSAgICAg ICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4Mlt0ID0+IGYzMng0XTogU2xlZWZfc3FydGY0X2F2 eDIxMjgpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4MTZbaCA9PiBmMzJ4OF06 IFNsZWVmX3NxcnRmOF9hdngyKTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDhb aCA9PiBmNjR4NF06IFNsZWVmX3NxcnRkNF9hdngyKTsKLS0KLS0gICAgICAgICAgICAgICAgaW1w bF91bmFyeSEoZjMyeDQ6IFNsZWVmX3NxcnRmNF9hdngyMTI4KTsKLS0gICAgICAgICAgICAgICAg aW1wbF91bmFyeSEoZjMyeDg6IFNsZWVmX3NxcnRmOF9hdngyKTsKLS0gICAgICAgICAgICAgICAg aW1wbF91bmFyeSEoZjY0eDI6IFNsZWVmX3NxcnRkMl9hdngyMTI4KTsKLS0gICAgICAgICAgICAg ICAgaW1wbF91bmFyeSEoZjY0eDQ6IFNsZWVmX3NxcnRkNF9hdngyKTsKLS0gICAgICAgICAgICB9 IGVsc2UgaWYgI1tjZmcodGFyZ2V0X2ZlYXR1cmUgPSAiYXZ4IildIHsKLS0gICAgICAgICAgICAg ICAgaW1wbF91bmFyeSEoZjMyeDJbdCA9PiBmMzJ4NF06IFNsZWVmX3NxcnRmNF9zc2U0KTsKLS0g ICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDE2W2ggPT4gZjMyeDhdOiBTbGVlZl9zcXJ0 ZjhfYXZ4KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDhbaCA9PiBmNjR4NF06 IFNsZWVmX3NxcnRkNF9hdngpOwotLQotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4 NDogU2xlZWZfc3FydGY0X3NzZTQpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4 ODogU2xlZWZfc3FydGY4X2F2eCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHgy OiBTbGVlZl9zcXJ0ZDJfc3NlNCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg0 OiBTbGVlZl9zcXJ0ZDRfYXZ4KTsKLS0gICAgICAgICAgICB9IGVsc2UgaWYgI1tjZmcodGFyZ2V0 X2ZlYXR1cmUgPSAic3NlNC4yIildIHsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMy eDJbdCA9PiBmMzJ4NF06IFNsZWVmX3NxcnRmNF9zc2U0KTsKLS0gICAgICAgICAgICAgICAgaW1w bF91bmFyeSEoZjMyeDE2W3EgPT4gZjMyeDRdOiBTbGVlZl9zcXJ0ZjRfc3NlNCk7Ci0tICAgICAg ICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg4W3EgPT4gZjY0eDJdOiBTbGVlZl9zcXJ0ZDJfc3Nl NCk7Ci0tCi0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng0OiBTbGVlZl9zcXJ0ZjRf c3NlNCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng4W2ggPT4gZjMyeDRdOiBT bGVlZl9zcXJ0ZjRfc3NlNCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHgyOiBT bGVlZl9zcXJ0ZDJfc3NlNCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg0W2gg PT4gZjY0eDJdOiBTbGVlZl9zcXJ0ZDJfc3NlNCk7Ci0tICAgICAgICAgICAgfSBlbHNlIHsKLS0g ICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDJbZjMyOyAyXTogc3FydF9mMzIpOwotLSAg ICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4MTY6IHNxcnRfdjE2ZjMyKTsKLS0gICAgICAg ICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDg6IHNxcnRfdjhmNjQpOwotLQotLSAgICAgICAgICAg ICAgICBpbXBsX3VuYXJ5IShmMzJ4NDogc3FydF92NGYzMik7Ci0tICAgICAgICAgICAgICAgIGlt cGxfdW5hcnkhKGYzMng4OiBzcXJ0X3Y4ZjMyKTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFy eSEoZjY0eDI6IHNxcnRfdjJmNjQpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4 NDogc3FydF92NGY2NCk7Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICB9IGVsc2Ug ewotLSAgICAgICAgaW1wbF91bmFyeSEoZjMyeDJbZjMyOyAyXTogc3FydF9mMzIpOwotLSAgICAg ICAgaW1wbF91bmFyeSEoZjMyeDQ6IHNxcnRfdjRmMzIpOwotLSAgICAgICAgaW1wbF91bmFyeSEo ZjMyeDg6IHNxcnRfdjhmMzIpOwotLSAgICAgICAgaW1wbF91bmFyeSEoZjMyeDE2OiBzcXJ0X3Yx NmYzMik7Ci0tCi0tICAgICAgICBpbXBsX3VuYXJ5IShmNjR4Mjogc3FydF92MmY2NCk7Ci0tICAg ICAgICBpbXBsX3VuYXJ5IShmNjR4NDogc3FydF92NGY2NCk7Ci0tICAgICAgICBpbXBsX3VuYXJ5 IShmNjR4ODogc3FydF92OGY2NCk7Ci0tICAgIH0KLS19Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFy dHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9tYXRoL2Zsb2F0L3NxcnRlLnJzIGIvdGhp cmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9tYXRoL2Zsb2F0L3NxcnRlLnJz Ci0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL21hdGgvZmxv YXQvc3FydGUucnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3Ro aXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vbWF0aC9mbG9hdC9zcXJ0ZS5y cwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsNjcgKzAsMCBAQAot LS8vISBWZXJ0aWNhbCBmbG9hdGluZy1wb2ludCBgc3FydGAKLS0jIVthbGxvdyh1bnVzZWQpXQot LQotLS8vIEZJWE1FIDY0LWJpdCAxIGVsZW0gdmVjdG9ycyBzcXJ0ZQotLQotLXVzZSBjcmF0ZTo6 bGx2bTo6c2ltZF9mc3FydDsKLS11c2UgY3JhdGU6Oio7Ci0tCi0tcHViKGNyYXRlKSB0cmFpdCBT cXJ0ZSB7Ci0tICAgIGZuIHNxcnRlKHNlbGYpIC0+IFNlbGY7Ci0tfQotLQotLWdlbl91bmFyeV9p bXBsX3RhYmxlIShTcXJ0ZSwgc3FydGUpOwotLQotLWNmZ19pZiEgewotLSAgICBpZiAjW2NmZyhh bGwodGFyZ2V0X2FyY2ggPSAieDg2XzY0IiwgZmVhdHVyZSA9ICJzbGVlZi1zeXMiKSldIHsKLS0g ICAgICAgIHVzZSBzbGVlZl9zeXM6Oio7Ci0tICAgICAgICBjZmdfaWYhIHsKLS0gICAgICAgICAg ICBpZiAjW2NmZyh0YXJnZXRfZmVhdHVyZSA9ICJhdngyIildIHsKLS0gICAgICAgICAgICAgICAg aW1wbF91bmFyeSEoZjMyeDJbdCA9PiBmMzJ4NF06IFNsZWVmX3NxcnRmNF91MzVhdngyMTI4KTsK LS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDE2W2ggPT4gZjMyeDhdOiBTbGVlZl9z cXJ0ZjhfdTM1YXZ4Mik7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg4W2ggPT4g ZjY0eDRdOiBTbGVlZl9zcXJ0ZDRfdTM1YXZ4Mik7Ci0tCi0tICAgICAgICAgICAgICAgIGltcGxf dW5hcnkhKGYzMng0OiBTbGVlZl9zcXJ0ZjRfdTM1YXZ4MjEyOCk7Ci0tICAgICAgICAgICAgICAg IGltcGxfdW5hcnkhKGYzMng4OiBTbGVlZl9zcXJ0ZjhfdTM1YXZ4Mik7Ci0tICAgICAgICAgICAg ICAgIGltcGxfdW5hcnkhKGY2NHgyOiBTbGVlZl9zcXJ0ZDJfdTM1YXZ4MjEyOCk7Ci0tICAgICAg ICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg0OiBTbGVlZl9zcXJ0ZDRfdTM1YXZ4Mik7Ci0tICAg ICAgICAgICAgfSBlbHNlIGlmICNbY2ZnKHRhcmdldF9mZWF0dXJlID0gImF2eCIpXSB7Ci0tICAg ICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMngyW3QgPT4gZjMyeDRdOiBTbGVlZl9zcXJ0ZjRf dTM1c3NlNCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMngxNltoID0+IGYzMng4 XTogU2xlZWZfc3FydGY4X3UzNWF2eCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2 NHg4W2ggPT4gZjY0eDRdOiBTbGVlZl9zcXJ0ZDRfdTM1YXZ4KTsKLS0KLS0gICAgICAgICAgICAg ICAgaW1wbF91bmFyeSEoZjMyeDQ6IFNsZWVmX3NxcnRmNF91MzVzc2U0KTsKLS0gICAgICAgICAg ICAgICAgaW1wbF91bmFyeSEoZjMyeDg6IFNsZWVmX3NxcnRmOF91MzVhdngpOwotLSAgICAgICAg ICAgICAgICBpbXBsX3VuYXJ5IShmNjR4MjogU2xlZWZfc3FydGQyX3UzNXNzZTQpOwotLSAgICAg ICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4NDogU2xlZWZfc3FydGQ0X3UzNWF2eCk7Ci0tICAg ICAgICAgICAgfSBlbHNlIGlmICNbY2ZnKHRhcmdldF9mZWF0dXJlID0gInNzZTQuMiIpXSB7Ci0t ICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMngyW3QgPT4gZjMyeDRdOiBTbGVlZl9zcXJ0 ZjRfdTM1c3NlNCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMngxNltxID0+IGYz Mng0XTogU2xlZWZfc3FydGY0X3UzNXNzZTQpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5 IShmNjR4OFtxID0+IGY2NHgyXTogU2xlZWZfc3FydGQyX3UzNXNzZTQpOwotLQotLSAgICAgICAg ICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4NDogU2xlZWZfc3FydGY0X3UzNXNzZTQpOwotLSAgICAg ICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4OFtoID0+IGYzMng0XTogU2xlZWZfc3FydGY0X3Uz NXNzZTQpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4MjogU2xlZWZfc3FydGQy X3UzNXNzZTQpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4NFtoID0+IGY2NHgy XTogU2xlZWZfc3FydGQyX3UzNXNzZTQpOwotLSAgICAgICAgICAgIH0gZWxzZSB7Ci0tICAgICAg ICAgICAgICAgIGltcGxfdW5hcnkhKGYzMngyW2ddOiBzaW1kX2ZzcXJ0KTsKLS0gICAgICAgICAg ICAgICAgaW1wbF91bmFyeSEoZjMyeDE2W2ddOiBzaW1kX2ZzcXJ0KTsKLS0gICAgICAgICAgICAg ICAgaW1wbF91bmFyeSEoZjY0eDhbZ106IHNpbWRfZnNxcnQpOwotLQotLSAgICAgICAgICAgICAg ICBpbXBsX3VuYXJ5IShmMzJ4NFtnXTogc2ltZF9mc3FydCk7Ci0tICAgICAgICAgICAgICAgIGlt cGxfdW5hcnkhKGYzMng4W2ddOiBzaW1kX2ZzcXJ0KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91 bmFyeSEoZjY0eDJbZ106IHNpbWRfZnNxcnQpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5 IShmNjR4NFtnXTogc2ltZF9mc3FydCk7Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAg ICB9IGVsc2UgewotLSAgICAgICAgaW1wbF91bmFyeSEoZjMyeDJbZ106IHNpbWRfZnNxcnQpOwot LSAgICAgICAgaW1wbF91bmFyeSEoZjMyeDRbZ106IHNpbWRfZnNxcnQpOwotLSAgICAgICAgaW1w bF91bmFyeSEoZjMyeDhbZ106IHNpbWRfZnNxcnQpOwotLSAgICAgICAgaW1wbF91bmFyeSEoZjMy eDE2W2ddOiBzaW1kX2ZzcXJ0KTsKLS0KLS0gICAgICAgIGltcGxfdW5hcnkhKGY2NHgyW2ddOiBz aW1kX2ZzcXJ0KTsKLS0gICAgICAgIGltcGxfdW5hcnkhKGY2NHg0W2ddOiBzaW1kX2ZzcXJ0KTsK LS0gICAgICAgIGltcGxfdW5hcnkhKGY2NHg4W2ddOiBzaW1kX2ZzcXJ0KTsKLS0gICAgfQotLX0K LWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL21h dGgvZmxvYXQucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL21h dGgvZmxvYXQucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVn ZW4vbWF0aC9mbG9hdC5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysr IGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9tYXRoL2Zsb2F0LnJz CTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSwxOCArMCwwIEBACi0t Ly8hIFZlcnRpY2FsIGZsb2F0aW5nLXBvaW50IG1hdGggb3BlcmF0aW9ucy4KLS0jIVthbGxvdyhj bGlwcHk6OnVzZWxlc3NfdHJhbnNtdXRlKV0KLS0KLS0jW21hY3JvX3VzZV0KLS1wdWIoY3JhdGUp IG1vZCBtYWNyb3M7Ci0tcHViKGNyYXRlKSBtb2QgYWJzOwotLXB1YihjcmF0ZSkgbW9kIGNvczsK LS1wdWIoY3JhdGUpIG1vZCBjb3NfcGk7Ci0tcHViKGNyYXRlKSBtb2QgZXhwOwotLXB1YihjcmF0 ZSkgbW9kIGxuOwotLXB1YihjcmF0ZSkgbW9kIG11bF9hZGQ7Ci0tcHViKGNyYXRlKSBtb2QgbXVs X2FkZGU7Ci0tcHViKGNyYXRlKSBtb2QgcG93ZjsKLS1wdWIoY3JhdGUpIG1vZCBzaW47Ci0tcHVi KGNyYXRlKSBtb2Qgc2luX2Nvc19waTsKLS1wdWIoY3JhdGUpIG1vZCBzaW5fcGk7Ci0tcHViKGNy YXRlKSBtb2Qgc3FydDsKLS1wdWIoY3JhdGUpIG1vZCBzcXJ0ZTsKLWRpZmYgLU5yYnUgYS90aGly ZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL21hdGgucnMgYi90aGlyZF9wYXJ0 eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL21hdGgucnMKLS0tLSBhL3RoaXJkX3BhcnR5 L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vbWF0aC5ycwkyMDI1LTA0LTIwIDE5OjI4OjEz LjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMv Y29kZWdlbi9tYXRoLnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAt MSwzICswLDAgQEAKLS0vLyEgVmVydGljYWwgbWF0aCBvcGVyYXRpb25zCi0tCi0tcHViKGNyYXRl KSBtb2QgZmxvYXQ7Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9z cmMvY29kZWdlbi9wb2ludGVyX3NpemVkX2ludC5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2Vk X3NpbWQvc3JjL2NvZGVnZW4vcG9pbnRlcl9zaXplZF9pbnQucnMKLS0tLSBhL3RoaXJkX3BhcnR5 L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vcG9pbnRlcl9zaXplZF9pbnQucnMJMjAyNS0w NC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFj a2VkX3NpbWQvc3JjL2NvZGVnZW4vcG9pbnRlcl9zaXplZF9pbnQucnMJMTk3MC0wMS0wMSAwMzow MDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDI4ICswLDAgQEAKLS0vLyEgUHJvdmlkZXMgYGlz aXplYCBhbmQgYHVzaXplYAotLQotLXVzZSBjZmdfaWY6OmNmZ19pZjsKLS0KLS1jZmdfaWYhIHsK LS0gICAgaWYgI1tjZmcodGFyZ2V0X3BvaW50ZXJfd2lkdGggPSAiOCIpXSB7Ci0tICAgICAgICBw dWIoY3JhdGUpIHR5cGUgaXNpemVfID0gaTg7Ci0tICAgICAgICBwdWIoY3JhdGUpIHR5cGUgdXNp emVfID0gdTg7Ci0tICAgIH0gZWxzZSBpZiAjW2NmZyh0YXJnZXRfcG9pbnRlcl93aWR0aCA9ICIx NiIpXSB7Ci0tICAgICAgICBwdWIoY3JhdGUpIHR5cGUgaXNpemVfID0gaTE2OwotLSAgICAgICAg cHViKGNyYXRlKSB0eXBlIHVzaXplXyA9IHUxNjsKLS0gICAgfSBlbHNlIGlmICNbY2ZnKHRhcmdl dF9wb2ludGVyX3dpZHRoID0gIjMyIildIHsKLS0gICAgICAgIHB1YihjcmF0ZSkgdHlwZSBpc2l6 ZV8gPSBpMzI7Ci0tICAgICAgICBwdWIoY3JhdGUpIHR5cGUgdXNpemVfID0gdTMyOwotLQotLSAg ICB9IGVsc2UgaWYgI1tjZmcodGFyZ2V0X3BvaW50ZXJfd2lkdGggPSAiNjQiKV0gewotLSAgICAg ICAgcHViKGNyYXRlKSB0eXBlIGlzaXplXyA9IGk2NDsKLS0gICAgICAgIHB1YihjcmF0ZSkgdHlw ZSB1c2l6ZV8gPSB1NjQ7Ci0tICAgIH0gZWxzZSBpZiAjW2NmZyh0YXJnZXRfcG9pbnRlcl93aWR0 aCA9ICI2NCIpXSB7Ci0tICAgICAgICBwdWIoY3JhdGUpIHR5cGUgaXNpemVfID0gaTY0OwotLSAg ICAgICAgcHViKGNyYXRlKSB0eXBlIHVzaXplXyA9IHU2NDsKLS0gICAgfSBlbHNlIGlmICNbY2Zn KHRhcmdldF9wb2ludGVyX3dpZHRoID0gIjEyOCIpXSB7Ci0tICAgICAgICBwdWIoY3JhdGUpIHR5 cGUgaXNpemVfID0gaTEyODsKLS0gICAgICAgIHB1YihjcmF0ZSkgdHlwZSB1c2l6ZV8gPSB1MTI4 OwotLSAgICB9IGVsc2UgewotLSAgICAgICAgY29tcGlsZV9lcnJvciEoInVuc3VwcG9ydGVkIHRh cmdldF9wb2ludGVyX3dpZHRoIik7Ci0tICAgIH0KLS19Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFy dHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9yZWR1Y3Rpb25zL21hc2svYWFyY2g2NC5y cyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vcmVkdWN0aW9ucy9t YXNrL2FhcmNoNjQucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2Nv ZGVnZW4vcmVkdWN0aW9ucy9tYXNrL2FhcmNoNjQucnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAw MDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVn ZW4vcmVkdWN0aW9ucy9tYXNrL2FhcmNoNjQucnMJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAw MDAgKzAzMDAKLUBAIC0xLDgxICswLDAgQEAKLS0vLyEgTWFzayByZWR1Y3Rpb25zIGltcGxlbWVu dGF0aW9uIGZvciBgYWFyY2g2NGAgdGFyZ2V0cwotLQotLS8vLyAxMjgtYml0IHdpZGUgdmVjdG9y cwotLW1hY3JvX3J1bGVzISBhYXJjaDY0XzEyOF9uZW9uX2ltcGwgewotLSAgICAoJGlkOmlkZW50 LCAkdm1pbjppZGVudCwgJHZtYXg6aWRlbnQpID0+IHsKLS0gICAgICAgIGltcGwgQWxsIGZvciAk aWQgewotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgICNbdGFyZ2V0X2ZlYXR1 cmUoZW5hYmxlID0gIm5lb24iKV0KLS0gICAgICAgICAgICB1bnNhZmUgZm4gYWxsKHNlbGYpIC0+ IGJvb2wgewotLSAgICAgICAgICAgICAgICB1c2UgY3JhdGU6OmFyY2g6OmFhcmNoNjQ6OiR2bWlu OwotLSAgICAgICAgICAgICAgICAkdm1pbihjcmF0ZTo6bWVtOjp0cmFuc211dGUoc2VsZikpICE9 IDAKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgICAgICBpbXBsIEFueSBmb3IgJGlk IHsKLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICAjW3RhcmdldF9mZWF0dXJl KGVuYWJsZSA9ICJuZW9uIildCi0tICAgICAgICAgICAgdW5zYWZlIGZuIGFueShzZWxmKSAtPiBi b29sIHsKLS0gICAgICAgICAgICAgICAgdXNlIGNyYXRlOjphcmNoOjphYXJjaDY0Ojokdm1heDsK LS0gICAgICAgICAgICAgICAgJHZtYXgoY3JhdGU6Om1lbTo6dHJhbnNtdXRlKHNlbGYpKSAhPSAw Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICB9OwotLX0KLS0KLS0vLy8gNjQtYml0 IHdpZGUgdmVjdG9ycwotLW1hY3JvX3J1bGVzISBhYXJjaDY0XzY0X25lb25faW1wbCB7Ci0tICAg ICgkaWQ6aWRlbnQsICR2ZWMxMjg6aWRlbnQpID0+IHsKLS0gICAgICAgIGltcGwgQWxsIGZvciAk aWQgewotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgICNbdGFyZ2V0X2ZlYXR1 cmUoZW5hYmxlID0gIm5lb24iKV0KLS0gICAgICAgICAgICB1bnNhZmUgZm4gYWxsKHNlbGYpIC0+ IGJvb2wgewotLSAgICAgICAgICAgICAgICAvLyBEdXBsaWNhdGVzIHRoZSA2NC1iaXQgdmVjdG9y IGludG8gYSAxMjgtYml0IG9uZSBhbmQKLS0gICAgICAgICAgICAgICAgLy8gY2FsbHMgYWxsIG9u IHRoYXQuCi0tICAgICAgICAgICAgICAgIHVuaW9uIFUgewotLSAgICAgICAgICAgICAgICAgICAg aGFsdmVzOiAoJGlkLCAkaWQpLAotLSAgICAgICAgICAgICAgICAgICAgdmVjOiAkdmVjMTI4LAot LSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgIFUgeyBoYWx2ZXM6IChzZWxmLCBz ZWxmKSB9LnZlYy5hbGwoKQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgICAgIGlt cGwgQW55IGZvciAkaWQgewotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgICNb dGFyZ2V0X2ZlYXR1cmUoZW5hYmxlID0gIm5lb24iKV0KLS0gICAgICAgICAgICB1bnNhZmUgZm4g YW55KHNlbGYpIC0+IGJvb2wgewotLSAgICAgICAgICAgICAgICB1bmlvbiBVIHsKLS0gICAgICAg ICAgICAgICAgICAgIGhhbHZlczogKCRpZCwgJGlkKSwKLS0gICAgICAgICAgICAgICAgICAgIHZl YzogJHZlYzEyOCwKLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICBVIHsgaGFs dmVzOiAoc2VsZiwgc2VsZikgfS52ZWMuYW55KCkKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9 Ci0tICAgIH07Ci0tfQotLQotLS8vLyBNYXNrIHJlZHVjdGlvbiBpbXBsZW1lbnRhdGlvbiBmb3Ig YGFhcmNoNjRgIHRhcmdldHMKLS1tYWNyb19ydWxlcyEgaW1wbF9tYXNrX3JlZHVjdGlvbnMgewot LSAgICAvLyA2NC1iaXQgd2lkZSBtYXNrcwotLSAgICAobTh4OCkgPT4gewotLSAgICAgICAgYWFy Y2g2NF82NF9uZW9uX2ltcGwhKG04eDgsIG04eDE2KTsKLS0gICAgfTsKLS0gICAgKG0xNng0KSA9 PiB7Ci0tICAgICAgICBhYXJjaDY0XzY0X25lb25faW1wbCEobTE2eDQsIG0xNng4KTsKLS0gICAg fTsKLS0gICAgKG0zMngyKSA9PiB7Ci0tICAgICAgICBhYXJjaDY0XzY0X25lb25faW1wbCEobTMy eDIsIG0zMng0KTsKLS0gICAgfTsKLS0gICAgLy8gMTI4LWJpdCB3aWRlIG1hc2tzCi0tICAgICht OHgxNikgPT4gewotLSAgICAgICAgYWFyY2g2NF8xMjhfbmVvbl9pbXBsIShtOHgxNiwgdm1pbnZx X3U4LCB2bWF4dnFfdTgpOwotLSAgICB9OwotLSAgICAobTE2eDgpID0+IHsKLS0gICAgICAgIGFh cmNoNjRfMTI4X25lb25faW1wbCEobTE2eDgsIHZtaW52cV91MTYsIHZtYXh2cV91MTYpOwotLSAg ICB9OwotLSAgICAobTMyeDQpID0+IHsKLS0gICAgICAgIGFhcmNoNjRfMTI4X25lb25faW1wbCEo bTMyeDQsIHZtaW52cV91MzIsIHZtYXh2cV91MzIpOwotLSAgICB9OwotLSAgICAvLyBGYWxsYmFj ayB0byBMTFZNJ3MgZGVmYXVsdCBjb2RlLWdlbmVyYXRpb246Ci0tICAgICgkaWQ6aWRlbnQpID0+ IHsKLS0gICAgICAgIGZhbGxiYWNrX2ltcGwhKCRpZCk7Ci0tICAgIH07Ci0tfQotZGlmZiAtTnJi dSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vcmVkdWN0aW9ucy9t YXNrL2FybS5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vcmVk dWN0aW9ucy9tYXNrL2FybS5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9z cmMvY29kZWdlbi9yZWR1Y3Rpb25zL21hc2svYXJtLnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAw MDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2Rl Z2VuL3JlZHVjdGlvbnMvbWFzay9hcm0ucnMJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAg KzAzMDAKLUBAIC0xLDU2ICswLDAgQEAKLS0vLyEgTWFzayByZWR1Y3Rpb25zIGltcGxlbWVudGF0 aW9uIGZvciBgYXJtYCB0YXJnZXRzCi0tCi0tLy8vIEltcGxlbWVudGF0aW9uIGZvciBBUk0gKyB2 NyArIE5FT04gZm9yIDY0LWJpdCBvciAxMjgtYml0IHdpZGUgdmVjdG9ycyB3aXRoCi0tLy8vIG1v cmUgdGhhbiB0d28gZWxlbWVudHMuCi0tbWFjcm9fcnVsZXMhIGFybV8xMjhfdjdfbmVvbl9pbXBs IHsKLS0gICAgKCRpZDppZGVudCwgJGhhbGY6aWRlbnQsICR2cG1pbjppZGVudCwgJHZwbWF4Omlk ZW50KSA9PiB7Ci0tICAgICAgICBpbXBsIEFsbCBmb3IgJGlkIHsKLS0gICAgICAgICAgICAjW2lu bGluZV0KLS0gICAgICAgICAgICAjW3RhcmdldF9mZWF0dXJlKGVuYWJsZSA9ICJ2NyxuZW9uIild Ci0tICAgICAgICAgICAgdW5zYWZlIGZuIGFsbChzZWxmKSAtPiBib29sIHsKLS0gICAgICAgICAg ICAgICAgdXNlIGNyYXRlOjphcmNoOjphcm06OiR2cG1pbjsKLS0gICAgICAgICAgICAgICAgdXNl IGNyYXRlOjptZW06OnRyYW5zbXV0ZTsKLS0gICAgICAgICAgICAgICAgdW5pb24gVSB7Ci0tICAg ICAgICAgICAgICAgICAgICBoYWx2ZXM6ICgkaGFsZiwgJGhhbGYpLAotLSAgICAgICAgICAgICAg ICAgICAgdmVjOiAkaWQsCi0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgbGV0 IGhhbHZlcyA9IFUgeyB2ZWM6IHNlbGYgfS5oYWx2ZXM7Ci0tICAgICAgICAgICAgICAgIGxldCBo OiAkaGFsZiA9IHRyYW5zbXV0ZSgkdnBtaW4odHJhbnNtdXRlKGhhbHZlcy4wKSwgdHJhbnNtdXRl KGhhbHZlcy4xKSkpOwotLSAgICAgICAgICAgICAgICBoLmFsbCgpCi0tICAgICAgICAgICAgfQot LSAgICAgICAgfQotLSAgICAgICAgaW1wbCBBbnkgZm9yICRpZCB7Ci0tICAgICAgICAgICAgI1tp bmxpbmVdCi0tICAgICAgICAgICAgI1t0YXJnZXRfZmVhdHVyZShlbmFibGUgPSAidjcsbmVvbiIp XQotLSAgICAgICAgICAgIHVuc2FmZSBmbiBhbnkoc2VsZikgLT4gYm9vbCB7Ci0tICAgICAgICAg ICAgICAgIHVzZSBjcmF0ZTo6YXJjaDo6YXJtOjokdnBtYXg7Ci0tICAgICAgICAgICAgICAgIHVz ZSBjcmF0ZTo6bWVtOjp0cmFuc211dGU7Ci0tICAgICAgICAgICAgICAgIHVuaW9uIFUgewotLSAg ICAgICAgICAgICAgICAgICAgaGFsdmVzOiAoJGhhbGYsICRoYWxmKSwKLS0gICAgICAgICAgICAg ICAgICAgIHZlYzogJGlkLAotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgIGxl dCBoYWx2ZXMgPSBVIHsgdmVjOiBzZWxmIH0uaGFsdmVzOwotLSAgICAgICAgICAgICAgICBsZXQg aDogJGhhbGYgPSB0cmFuc211dGUoJHZwbWF4KHRyYW5zbXV0ZShoYWx2ZXMuMCksIHRyYW5zbXV0 ZShoYWx2ZXMuMSkpKTsKLS0gICAgICAgICAgICAgICAgaC5hbnkoKQotLSAgICAgICAgICAgIH0K LS0gICAgICAgIH0KLS0gICAgfTsKLS19Ci0tCi0tLy8vIE1hc2sgcmVkdWN0aW9uIGltcGxlbWVu dGF0aW9uIGZvciBgYXJtYCB0YXJnZXRzCi0tbWFjcm9fcnVsZXMhIGltcGxfbWFza19yZWR1Y3Rp b25zIHsKLS0gICAgLy8gMTI4LWJpdCB3aWRlIG1hc2tzCi0tICAgIChtOHgxNikgPT4gewotLSAg ICAgICAgYXJtXzEyOF92N19uZW9uX2ltcGwhKG04eDE2LCBtOHg4LCB2cG1pbl91OCwgdnBtYXhf dTgpOwotLSAgICB9OwotLSAgICAobTE2eDgpID0+IHsKLS0gICAgICAgIGFybV8xMjhfdjdfbmVv bl9pbXBsIShtMTZ4OCwgbTE2eDQsIHZwbWluX3UxNiwgdnBtYXhfdTE2KTsKLS0gICAgfTsKLS0g ICAgKG0zMng0KSA9PiB7Ci0tICAgICAgICBhcm1fMTI4X3Y3X25lb25faW1wbCEobTMyeDQsIG0z MngyLCB2cG1pbl91MzIsIHZwbWF4X3UzMik7Ci0tICAgIH07Ci0tICAgIC8vIEZhbGxiYWNrIHRv IExMVk0ncyBkZWZhdWx0IGNvZGUtZ2VuZXJhdGlvbjoKLS0gICAgKCRpZDppZGVudCkgPT4gewot LSAgICAgICAgZmFsbGJhY2tfaW1wbCEoJGlkKTsKLS0gICAgfTsKLS19Ci1kaWZmIC1OcmJ1IGEv dGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9yZWR1Y3Rpb25zL21hc2sv ZmFsbGJhY2sucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3Jl ZHVjdGlvbnMvbWFzay9mYWxsYmFjay5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRf c2ltZC9zcmMvY29kZWdlbi9yZWR1Y3Rpb25zL21hc2svZmFsbGJhY2sucnMJMjAyNS0wNC0yMCAx OToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3Np bWQvc3JjL2NvZGVnZW4vcmVkdWN0aW9ucy9tYXNrL2ZhbGxiYWNrLnJzCTE5NzAtMDEtMDEgMDM6 MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSw4ICswLDAgQEAKLS0vLyEgRGVmYXVsdCBtYXNr IHJlZHVjdGlvbiBpbXBsZW1lbnRhdGlvbnMuCi0tCi0tLy8vIERlZmF1bHQgbWFzayByZWR1Y3Rp b24gaW1wbGVtZW50YXRpb24KLS1tYWNyb19ydWxlcyEgaW1wbF9tYXNrX3JlZHVjdGlvbnMgewot LSAgICAoJGlkOmlkZW50KSA9PiB7Ci0tICAgICAgICBmYWxsYmFja19pbXBsISgkaWQpOwotLSAg ICB9OwotLX0KLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9j b2RlZ2VuL3JlZHVjdGlvbnMvbWFzay9mYWxsYmFja19pbXBsLnJzIGIvdGhpcmRfcGFydHkvcnVz dC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9yZWR1Y3Rpb25zL21hc2svZmFsbGJhY2tfaW1wbC5y cwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9yZWR1Y3Rp b25zL21hc2svZmFsbGJhY2tfaW1wbC5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCAr MDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9yZWR1 Y3Rpb25zL21hc2svZmFsbGJhY2tfaW1wbC5ycwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAw MCArMDMwMAotQEAgLTEsMjM3ICswLDAgQEAKLS0vLyEgRGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBv ZiBhIG1hc2sgcmVkdWN0aW9uIGZvciBhbnkgdGFyZ2V0LgotLQotLW1hY3JvX3J1bGVzISBmYWxs YmFja190b19vdGhlcl9pbXBsIHsKLS0gICAgKCRpZDppZGVudCwgJG90aGVyOmlkZW50KSA9PiB7 Ci0tICAgICAgICBpbXBsIEFsbCBmb3IgJGlkIHsKLS0gICAgICAgICAgICAjW2lubGluZV0KLS0g ICAgICAgICAgICB1bnNhZmUgZm4gYWxsKHNlbGYpIC0+IGJvb2wgewotLSAgICAgICAgICAgICAg ICBsZXQgbTogJG90aGVyID0gY3JhdGU6Om1lbTo6dHJhbnNtdXRlKHNlbGYpOwotLSAgICAgICAg ICAgICAgICBtLmFsbCgpCi0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICAgICAgaW1w bCBBbnkgZm9yICRpZCB7Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgdW5z YWZlIGZuIGFueShzZWxmKSAtPiBib29sIHsKLS0gICAgICAgICAgICAgICAgbGV0IG06ICRvdGhl ciA9IGNyYXRlOjptZW06OnRyYW5zbXV0ZShzZWxmKTsKLS0gICAgICAgICAgICAgICAgbS5hbnko KQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgfTsKLS19Ci0tCi0tLy8vIEZhbGxi YWNrIGltcGxlbWVudGF0aW9uLgotLW1hY3JvX3J1bGVzISBmYWxsYmFja19pbXBsIHsKLS0gICAg Ly8gMTYtYml0IHdpZGUgbWFza3M6Ci0tICAgIChtOHgyKSA9PiB7Ci0tICAgICAgICBpbXBsIEFs bCBmb3IgbTh4MiB7Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgdW5zYWZl IGZuIGFsbChzZWxmKSAtPiBib29sIHsKLS0gICAgICAgICAgICAgICAgbGV0IGk6IHUxNiA9IGNy YXRlOjptZW06OnRyYW5zbXV0ZShzZWxmKTsKLS0gICAgICAgICAgICAgICAgaSA9PSB1MTY6Om1h eF92YWx1ZSgpCi0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICAgICAgaW1wbCBBbnkg Zm9yIG04eDIgewotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIHVuc2FmZSBm biBhbnkoc2VsZikgLT4gYm9vbCB7Ci0tICAgICAgICAgICAgICAgIGxldCBpOiB1MTYgPSBjcmF0 ZTo6bWVtOjp0cmFuc211dGUoc2VsZik7Ci0tICAgICAgICAgICAgICAgIGkgIT0gMAotLSAgICAg ICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgfTsKLS0gICAgLy8gMzItYml0IHdpZGUgbWFza3MK LS0gICAgKG04eDQpID0+IHsKLS0gICAgICAgIGltcGwgQWxsIGZvciBtOHg0IHsKLS0gICAgICAg ICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICB1bnNhZmUgZm4gYWxsKHNlbGYpIC0+IGJvb2wg ewotLSAgICAgICAgICAgICAgICBsZXQgaTogdTMyID0gY3JhdGU6Om1lbTo6dHJhbnNtdXRlKHNl bGYpOwotLSAgICAgICAgICAgICAgICBpID09IHUzMjo6bWF4X3ZhbHVlKCkKLS0gICAgICAgICAg ICB9Ci0tICAgICAgICB9Ci0tICAgICAgICBpbXBsIEFueSBmb3IgbTh4NCB7Ci0tICAgICAgICAg ICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgdW5zYWZlIGZuIGFueShzZWxmKSAtPiBib29sIHsK LS0gICAgICAgICAgICAgICAgbGV0IGk6IHUzMiA9IGNyYXRlOjptZW06OnRyYW5zbXV0ZShzZWxm KTsKLS0gICAgICAgICAgICAgICAgaSAhPSAwCi0tICAgICAgICAgICAgfQotLSAgICAgICAgfQot LSAgICB9OwotLSAgICAobTE2eDIpID0+IHsKLS0gICAgICAgIGZhbGxiYWNrX3RvX290aGVyX2lt cGwhKG0xNngyLCBtOHg0KTsKLS0gICAgfTsKLS0gICAgLy8gNjQtYml0IHdpZGUgbWFza3M6Ci0t ICAgIChtOHg4KSA9PiB7Ci0tICAgICAgICBpbXBsIEFsbCBmb3IgbTh4OCB7Ci0tICAgICAgICAg ICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgdW5zYWZlIGZuIGFsbChzZWxmKSAtPiBib29sIHsK LS0gICAgICAgICAgICAgICAgbGV0IGk6IHU2NCA9IGNyYXRlOjptZW06OnRyYW5zbXV0ZShzZWxm KTsKLS0gICAgICAgICAgICAgICAgaSA9PSB1NjQ6Om1heF92YWx1ZSgpCi0tICAgICAgICAgICAg fQotLSAgICAgICAgfQotLSAgICAgICAgaW1wbCBBbnkgZm9yIG04eDggewotLSAgICAgICAgICAg ICNbaW5saW5lXQotLSAgICAgICAgICAgIHVuc2FmZSBmbiBhbnkoc2VsZikgLT4gYm9vbCB7Ci0t ICAgICAgICAgICAgICAgIGxldCBpOiB1NjQgPSBjcmF0ZTo6bWVtOjp0cmFuc211dGUoc2VsZik7 Ci0tICAgICAgICAgICAgICAgIGkgIT0gMAotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0g ICAgfTsKLS0gICAgKG0xNng0KSA9PiB7Ci0tICAgICAgICBmYWxsYmFja190b19vdGhlcl9pbXBs IShtMTZ4NCwgbTh4OCk7Ci0tICAgIH07Ci0tICAgIChtMzJ4MikgPT4gewotLSAgICAgICAgZmFs bGJhY2tfdG9fb3RoZXJfaW1wbCEobTMyeDIsIG0xNng0KTsKLS0gICAgfTsKLS0gICAgLy8gRklY TUU6IDY0eDEgbWF4awotLSAgICAvLyAxMjgtYml0IHdpZGUgbWFza3M6Ci0tICAgIChtOHgxNikg PT4gewotLSAgICAgICAgaW1wbCBBbGwgZm9yIG04eDE2IHsKLS0gICAgICAgICAgICAjW2lubGlu ZV0KLS0gICAgICAgICAgICB1bnNhZmUgZm4gYWxsKHNlbGYpIC0+IGJvb2wgewotLSAgICAgICAg ICAgICAgICBsZXQgaTogdTEyOCA9IGNyYXRlOjptZW06OnRyYW5zbXV0ZShzZWxmKTsKLS0gICAg ICAgICAgICAgICAgaSA9PSB1MTI4OjptYXhfdmFsdWUoKQotLSAgICAgICAgICAgIH0KLS0gICAg ICAgIH0KLS0gICAgICAgIGltcGwgQW55IGZvciBtOHgxNiB7Ci0tICAgICAgICAgICAgI1tpbmxp bmVdCi0tICAgICAgICAgICAgdW5zYWZlIGZuIGFueShzZWxmKSAtPiBib29sIHsKLS0gICAgICAg ICAgICAgICAgbGV0IGk6IHUxMjggPSBjcmF0ZTo6bWVtOjp0cmFuc211dGUoc2VsZik7Ci0tICAg ICAgICAgICAgICAgIGkgIT0gMAotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgfTsK LS0gICAgKG0xNng4KSA9PiB7Ci0tICAgICAgICBmYWxsYmFja190b19vdGhlcl9pbXBsIShtMTZ4 OCwgbTh4MTYpOwotLSAgICB9OwotLSAgICAobTMyeDQpID0+IHsKLS0gICAgICAgIGZhbGxiYWNr X3RvX290aGVyX2ltcGwhKG0zMng0LCBtMTZ4OCk7Ci0tICAgIH07Ci0tICAgIChtNjR4MikgPT4g ewotLSAgICAgICAgZmFsbGJhY2tfdG9fb3RoZXJfaW1wbCEobTY0eDIsIG0zMng0KTsKLS0gICAg fTsKLS0gICAgKG0xMjh4MSkgPT4gewotLSAgICAgICAgZmFsbGJhY2tfdG9fb3RoZXJfaW1wbCEo bTEyOHgxLCBtNjR4Mik7Ci0tICAgIH07Ci0tICAgIC8vIDI1Ni1iaXQgd2lkZSBtYXNrcwotLSAg ICAobTh4MzIpID0+IHsKLS0gICAgICAgIGltcGwgQWxsIGZvciBtOHgzMiB7Ci0tICAgICAgICAg ICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgdW5zYWZlIGZuIGFsbChzZWxmKSAtPiBib29sIHsK LS0gICAgICAgICAgICAgICAgbGV0IGk6IFt1MTI4OyAyXSA9IGNyYXRlOjptZW06OnRyYW5zbXV0 ZShzZWxmKTsKLS0gICAgICAgICAgICAgICAgbGV0IG86IFt1MTI4OyAyXSA9IFt1MTI4OjptYXhf dmFsdWUoKTsgMl07Ci0tICAgICAgICAgICAgICAgIGkgPT0gbwotLSAgICAgICAgICAgIH0KLS0g ICAgICAgIH0KLS0gICAgICAgIGltcGwgQW55IGZvciBtOHgzMiB7Ci0tICAgICAgICAgICAgI1tp bmxpbmVdCi0tICAgICAgICAgICAgdW5zYWZlIGZuIGFueShzZWxmKSAtPiBib29sIHsKLS0gICAg ICAgICAgICAgICAgbGV0IGk6IFt1MTI4OyAyXSA9IGNyYXRlOjptZW06OnRyYW5zbXV0ZShzZWxm KTsKLS0gICAgICAgICAgICAgICAgbGV0IG86IFt1MTI4OyAyXSA9IFswOyAyXTsKLS0gICAgICAg ICAgICAgICAgaSAhPSBvCi0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICB9OwotLSAg ICAobTE2eDE2KSA9PiB7Ci0tICAgICAgICBmYWxsYmFja190b19vdGhlcl9pbXBsIShtMTZ4MTYs IG04eDMyKTsKLS0gICAgfTsKLS0gICAgKG0zMng4KSA9PiB7Ci0tICAgICAgICBmYWxsYmFja190 b19vdGhlcl9pbXBsIShtMzJ4OCwgbTE2eDE2KTsKLS0gICAgfTsKLS0gICAgKG02NHg0KSA9PiB7 Ci0tICAgICAgICBmYWxsYmFja190b19vdGhlcl9pbXBsIShtNjR4NCwgbTMyeDgpOwotLSAgICB9 OwotLSAgICAobTEyOHgyKSA9PiB7Ci0tICAgICAgICBmYWxsYmFja190b19vdGhlcl9pbXBsISht MTI4eDIsIG02NHg0KTsKLS0gICAgfTsKLS0gICAgLy8gNTEyLWJpdCB3aWRlIG1hc2tzCi0tICAg IChtOHg2NCkgPT4gewotLSAgICAgICAgaW1wbCBBbGwgZm9yIG04eDY0IHsKLS0gICAgICAgICAg ICAjW2lubGluZV0KLS0gICAgICAgICAgICB1bnNhZmUgZm4gYWxsKHNlbGYpIC0+IGJvb2wgewot LSAgICAgICAgICAgICAgICBsZXQgaTogW3UxMjg7IDRdID0gY3JhdGU6Om1lbTo6dHJhbnNtdXRl KHNlbGYpOwotLSAgICAgICAgICAgICAgICBsZXQgbzogW3UxMjg7IDRdID0gW3UxMjg6Om1heF92 YWx1ZSgpOyA0XTsKLS0gICAgICAgICAgICAgICAgaSA9PSBvCi0tICAgICAgICAgICAgfQotLSAg ICAgICAgfQotLSAgICAgICAgaW1wbCBBbnkgZm9yIG04eDY0IHsKLS0gICAgICAgICAgICAjW2lu bGluZV0KLS0gICAgICAgICAgICB1bnNhZmUgZm4gYW55KHNlbGYpIC0+IGJvb2wgewotLSAgICAg ICAgICAgICAgICBsZXQgaTogW3UxMjg7IDRdID0gY3JhdGU6Om1lbTo6dHJhbnNtdXRlKHNlbGYp OwotLSAgICAgICAgICAgICAgICBsZXQgbzogW3UxMjg7IDRdID0gWzA7IDRdOwotLSAgICAgICAg ICAgICAgICBpICE9IG8KLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgIH07Ci0tICAg IChtMTZ4MzIpID0+IHsKLS0gICAgICAgIGZhbGxiYWNrX3RvX290aGVyX2ltcGwhKG0xNngzMiwg bTh4NjQpOwotLSAgICB9OwotLSAgICAobTMyeDE2KSA9PiB7Ci0tICAgICAgICBmYWxsYmFja190 b19vdGhlcl9pbXBsIShtMzJ4MTYsIG0xNngzMik7Ci0tICAgIH07Ci0tICAgIChtNjR4OCkgPT4g ewotLSAgICAgICAgZmFsbGJhY2tfdG9fb3RoZXJfaW1wbCEobTY0eDgsIG0zMngxNik7Ci0tICAg IH07Ci0tICAgIChtMTI4eDQpID0+IHsKLS0gICAgICAgIGZhbGxiYWNrX3RvX290aGVyX2ltcGwh KG0xMjh4NCwgbTY0eDgpOwotLSAgICB9OwotLSAgICAvLyBNYXNrcyB3aXRoIHBvaW50ZXItc2l6 ZWQgZWxlbWVudHM2NAotLSAgICAobXNpemV4MikgPT4gewotLSAgICAgICAgY2ZnX2lmISB7Ci0t ICAgICAgICAgICAgaWYgI1tjZmcodGFyZ2V0X3BvaW50ZXJfd2lkdGggPSAiNjQiKV0gewotLSAg ICAgICAgICAgICAgICBmYWxsYmFja190b19vdGhlcl9pbXBsIShtc2l6ZXgyLCBtNjR4Mik7Ci0t ICAgICAgICAgICAgfSBlbHNlIGlmICNbY2ZnKHRhcmdldF9wb2ludGVyX3dpZHRoID0gIjMyIild IHsKLS0gICAgICAgICAgICAgICAgZmFsbGJhY2tfdG9fb3RoZXJfaW1wbCEobXNpemV4MiwgbTMy eDIpOwotLSAgICAgICAgICAgIH0gZWxzZSB7Ci0tICAgICAgICAgICAgICAgIGNvbXBpbGVfZXJy b3IhKCJ1bnN1cHBvcnRlZCB0YXJnZXRfcG9pbnRlcl93aWR0aCIpOwotLSAgICAgICAgICAgIH0K LS0gICAgICAgIH0KLS0gICAgfTsKLS0gICAgKG1zaXpleDQpID0+IHsKLS0gICAgICAgIGNmZ19p ZiEgewotLSAgICAgICAgICAgIGlmICNbY2ZnKHRhcmdldF9wb2ludGVyX3dpZHRoID0gIjY0Iild IHsKLS0gICAgICAgICAgICAgICAgZmFsbGJhY2tfdG9fb3RoZXJfaW1wbCEobXNpemV4NCwgbTY0 eDQpOwotLSAgICAgICAgICAgIH0gZWxzZSBpZiAjW2NmZyh0YXJnZXRfcG9pbnRlcl93aWR0aCA9 ICIzMiIpXSB7Ci0tICAgICAgICAgICAgICAgIGZhbGxiYWNrX3RvX290aGVyX2ltcGwhKG1zaXpl eDQsIG0zMng0KTsKLS0gICAgICAgICAgICB9IGVsc2UgewotLSAgICAgICAgICAgICAgICBjb21w aWxlX2Vycm9yISgidW5zdXBwb3J0ZWQgdGFyZ2V0X3BvaW50ZXJfd2lkdGgiKTsKLS0gICAgICAg ICAgICB9Ci0tICAgICAgICB9Ci0tICAgIH07Ci0tICAgIChtc2l6ZXg4KSA9PiB7Ci0tICAgICAg ICBjZmdfaWYhIHsKLS0gICAgICAgICAgICBpZiAjW2NmZyh0YXJnZXRfcG9pbnRlcl93aWR0aCA9 ICI2NCIpXSB7Ci0tICAgICAgICAgICAgICAgIGZhbGxiYWNrX3RvX290aGVyX2ltcGwhKG1zaXpl eDgsIG02NHg4KTsKLS0gICAgICAgICAgICB9IGVsc2UgaWYgI1tjZmcodGFyZ2V0X3BvaW50ZXJf d2lkdGggPSAiMzIiKV0gewotLSAgICAgICAgICAgICAgICBmYWxsYmFja190b19vdGhlcl9pbXBs IShtc2l6ZXg4LCBtMzJ4OCk7Ci0tICAgICAgICAgICAgfSBlbHNlIHsKLS0gICAgICAgICAgICAg ICAgY29tcGlsZV9lcnJvciEoInVuc3VwcG9ydGVkIHRhcmdldF9wb2ludGVyX3dpZHRoIik7Ci0t ICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICB9OwotLX0KLS0KLS1tYWNyb19ydWxlcyEg cmVjdXJzZV9oYWxmIHsKLS0gICAgKCR2aWQ6aWRlbnQsICR2aWRfaDppZGVudCkgPT4gewotLSAg ICAgICAgaW1wbCBBbGwgZm9yICR2aWQgewotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAg ICAgICAgIHVuc2FmZSBmbiBhbGwoc2VsZikgLT4gYm9vbCB7Ci0tICAgICAgICAgICAgICAgIHVu aW9uIFUgewotLSAgICAgICAgICAgICAgICAgICAgaGFsdmVzOiAoJHZpZF9oLCAkdmlkX2gpLAot LSAgICAgICAgICAgICAgICAgICAgdmVjOiAkdmlkLAotLSAgICAgICAgICAgICAgICB9Ci0tICAg ICAgICAgICAgICAgIGxldCBoYWx2ZXMgPSBVIHsgdmVjOiBzZWxmIH0uaGFsdmVzOwotLSAgICAg ICAgICAgICAgICBoYWx2ZXMuMC5hbGwoKSAmJiBoYWx2ZXMuMS5hbGwoKQotLSAgICAgICAgICAg IH0KLS0gICAgICAgIH0KLS0gICAgICAgIGltcGwgQW55IGZvciAkdmlkIHsKLS0gICAgICAgICAg ICAjW2lubGluZV0KLS0gICAgICAgICAgICB1bnNhZmUgZm4gYW55KHNlbGYpIC0+IGJvb2wgewot LSAgICAgICAgICAgICAgICB1bmlvbiBVIHsKLS0gICAgICAgICAgICAgICAgICAgIGhhbHZlczog KCR2aWRfaCwgJHZpZF9oKSwKLS0gICAgICAgICAgICAgICAgICAgIHZlYzogJHZpZCwKLS0gICAg ICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICBsZXQgaGFsdmVzID0gVSB7IHZlYzogc2Vs ZiB9LmhhbHZlczsKLS0gICAgICAgICAgICAgICAgaGFsdmVzLjAuYW55KCkgfHwgaGFsdmVzLjEu YW55KCkKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgIH07Ci0tfQotZGlmZiAtTnJi dSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vcmVkdWN0aW9ucy9t YXNrL3g4Ni9hdngucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2Vu L3JlZHVjdGlvbnMvbWFzay94ODYvYXZ4LnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tl ZF9zaW1kL3NyYy9jb2RlZ2VuL3JlZHVjdGlvbnMvbWFzay94ODYvYXZ4LnJzCTIwMjUtMDQtMjAg MTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9z aW1kL3NyYy9jb2RlZ2VuL3JlZHVjdGlvbnMvbWFzay94ODYvYXZ4LnJzCTE5NzAtMDEtMDEgMDM6 MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSw5NSArMCwwIEBACi0tLy8hIE1hc2sgcmVkdWN0 aW9ucyBpbXBsZW1lbnRhdGlvbiBmb3IgYHg4NmAgYW5kIGB4ODZfNjRgIHRhcmdldHMgd2l0aCBg QVZYYAotLQotLS8vLyBgeDg2YC9geDg2XzY0YCAyNTYtYml0IGBBVlhgIGltcGxlbWVudGF0aW9u Ci0tLy8vIEZJWE1FOiBpdCBtaWdodCBiZSBmYXN0ZXIgaGVyZSB0byBkbyB0d28gYF9tbV9tb3Zt YXNrX2VwaThgCi0tI1tjZmcodGFyZ2V0X2ZlYXR1cmUgPSAiYXZ4IildCi0tbWFjcm9fcnVsZXMh IHg4Nl9tOHgzMl9hdnhfaW1wbCB7Ci0tICAgICgkaWQ6aWRlbnQpID0+IHsKLS0gICAgICAgIGlt cGwgQWxsIGZvciAkaWQgewotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgICNb dGFyZ2V0X2ZlYXR1cmUoZW5hYmxlID0gImF2eCIpXQotLSAgICAgICAgICAgIHVuc2FmZSBmbiBh bGwoc2VsZikgLT4gYm9vbCB7Ci0tICAgICAgICAgICAgICAgICNbY2ZnKHRhcmdldF9hcmNoID0g Ing4NiIpXQotLSAgICAgICAgICAgICAgICB1c2UgY3JhdGU6OmFyY2g6Ong4Njo6X21tMjU2X3Rl c3RjX3NpMjU2OwotLSAgICAgICAgICAgICAgICAjW2NmZyh0YXJnZXRfYXJjaCA9ICJ4ODZfNjQi KV0KLS0gICAgICAgICAgICAgICAgdXNlIGNyYXRlOjphcmNoOjp4ODZfNjQ6Ol9tbTI1Nl90ZXN0 Y19zaTI1NjsKLS0gICAgICAgICAgICAgICAgX21tMjU2X3Rlc3RjX3NpMjU2KGNyYXRlOjptZW06 OnRyYW5zbXV0ZShzZWxmKSwgY3JhdGU6Om1lbTo6dHJhbnNtdXRlKCRpZDo6c3BsYXQodHJ1ZSkp KSAhPSAwCi0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICAgICAgaW1wbCBBbnkgZm9y ICRpZCB7Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgI1t0YXJnZXRfZmVh dHVyZShlbmFibGUgPSAiYXZ4IildCi0tICAgICAgICAgICAgdW5zYWZlIGZuIGFueShzZWxmKSAt PiBib29sIHsKLS0gICAgICAgICAgICAgICAgI1tjZmcodGFyZ2V0X2FyY2ggPSAieDg2IildCi0t ICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6YXJjaDo6eDg2OjpfbW0yNTZfdGVzdHpfc2kyNTY7 Ci0tICAgICAgICAgICAgICAgICNbY2ZnKHRhcmdldF9hcmNoID0gIng4Nl82NCIpXQotLSAgICAg ICAgICAgICAgICB1c2UgY3JhdGU6OmFyY2g6Ong4Nl82NDo6X21tMjU2X3Rlc3R6X3NpMjU2Owot LSAgICAgICAgICAgICAgICBfbW0yNTZfdGVzdHpfc2kyNTYoY3JhdGU6Om1lbTo6dHJhbnNtdXRl KHNlbGYpLCBjcmF0ZTo6bWVtOjp0cmFuc211dGUoc2VsZikpID09IDAKLS0gICAgICAgICAgICB9 Ci0tICAgICAgICB9Ci0tICAgIH07Ci0tfQotLQotLS8vLyBgeDg2YC9geDg2XzY0YCAyNTYtYml0 IG0zMng4IGBBVlhgIGltcGxlbWVudGF0aW9uCi0tbWFjcm9fcnVsZXMhIHg4Nl9tMzJ4OF9hdnhf aW1wbCB7Ci0tICAgICgkaWQ6aWRlbnQpID0+IHsKLS0gICAgICAgIGltcGwgQWxsIGZvciAkaWQg ewotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgICNbdGFyZ2V0X2ZlYXR1cmUo ZW5hYmxlID0gInNzZSIpXQotLSAgICAgICAgICAgIHVuc2FmZSBmbiBhbGwoc2VsZikgLT4gYm9v bCB7Ci0tICAgICAgICAgICAgICAgICNbY2ZnKHRhcmdldF9hcmNoID0gIng4NiIpXQotLSAgICAg ICAgICAgICAgICB1c2UgY3JhdGU6OmFyY2g6Ong4Njo6X21tMjU2X21vdmVtYXNrX3BzOwotLSAg ICAgICAgICAgICAgICAjW2NmZyh0YXJnZXRfYXJjaCA9ICJ4ODZfNjQiKV0KLS0gICAgICAgICAg ICAgICAgdXNlIGNyYXRlOjphcmNoOjp4ODZfNjQ6Ol9tbTI1Nl9tb3ZlbWFza19wczsKLS0gICAg ICAgICAgICAgICAgLy8gX21tMjU2X21vdmVtYXNrX3BzKGEpIGNyZWF0ZXMgYSA4Yml0IG1hc2sg Y29udGFpbmluZyB0aGUKLS0gICAgICAgICAgICAgICAgLy8gbW9zdCBzaWduaWZpY2FudCBiaXQg b2YgZWFjaCBsYW5lIG9mIGBhYC4gSWYgYWxsIGJpdHMgYXJlCi0tICAgICAgICAgICAgICAgIC8v IHNldCwgdGhlbiBhbGwgOCBsYW5lcyBvZiB0aGUgbWFzayBhcmUgdHJ1ZS4KLS0gICAgICAgICAg ICAgICAgX21tMjU2X21vdmVtYXNrX3BzKGNyYXRlOjptZW06OnRyYW5zbXV0ZShzZWxmKSkgPT0g MGJfMTExMV8xMTExX2kzMgotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgICAgIGlt cGwgQW55IGZvciAkaWQgewotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgICNb dGFyZ2V0X2ZlYXR1cmUoZW5hYmxlID0gInNzZSIpXQotLSAgICAgICAgICAgIHVuc2FmZSBmbiBh bnkoc2VsZikgLT4gYm9vbCB7Ci0tICAgICAgICAgICAgICAgICNbY2ZnKHRhcmdldF9hcmNoID0g Ing4NiIpXQotLSAgICAgICAgICAgICAgICB1c2UgY3JhdGU6OmFyY2g6Ong4Njo6X21tMjU2X21v dmVtYXNrX3BzOwotLSAgICAgICAgICAgICAgICAjW2NmZyh0YXJnZXRfYXJjaCA9ICJ4ODZfNjQi KV0KLS0gICAgICAgICAgICAgICAgdXNlIGNyYXRlOjphcmNoOjp4ODZfNjQ6Ol9tbTI1Nl9tb3Zl bWFza19wczsKLS0KLS0gICAgICAgICAgICAgICAgX21tMjU2X21vdmVtYXNrX3BzKGNyYXRlOjpt ZW06OnRyYW5zbXV0ZShzZWxmKSkgIT0gMAotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0g ICAgfTsKLS19Ci0tCi0tLy8vIGB4ODZgL2B4ODZfNjRgIDI1Ni1iaXQgbTY0eDQgYEFWWGAgaW1w bGVtZW50YXRpb24KLS1tYWNyb19ydWxlcyEgeDg2X202NHg0X2F2eF9pbXBsIHsKLS0gICAgKCRp ZDppZGVudCkgPT4gewotLSAgICAgICAgaW1wbCBBbGwgZm9yICRpZCB7Ci0tICAgICAgICAgICAg I1tpbmxpbmVdCi0tICAgICAgICAgICAgI1t0YXJnZXRfZmVhdHVyZShlbmFibGUgPSAic3NlIild Ci0tICAgICAgICAgICAgdW5zYWZlIGZuIGFsbChzZWxmKSAtPiBib29sIHsKLS0gICAgICAgICAg ICAgICAgI1tjZmcodGFyZ2V0X2FyY2ggPSAieDg2IildCi0tICAgICAgICAgICAgICAgIHVzZSBj cmF0ZTo6YXJjaDo6eDg2OjpfbW0yNTZfbW92ZW1hc2tfcGQ7Ci0tICAgICAgICAgICAgICAgICNb Y2ZnKHRhcmdldF9hcmNoID0gIng4Nl82NCIpXQotLSAgICAgICAgICAgICAgICB1c2UgY3JhdGU6 OmFyY2g6Ong4Nl82NDo6X21tMjU2X21vdmVtYXNrX3BkOwotLSAgICAgICAgICAgICAgICAvLyBf bW0yNTZfbW92ZW1hc2tfcGQoYSkgY3JlYXRlcyBhIDRiaXQgbWFzayBjb250YWluaW5nIHRoZQot LSAgICAgICAgICAgICAgICAvLyBtb3N0IHNpZ25pZmljYW50IGJpdCBvZiBlYWNoIGxhbmUgb2Yg YGFgLiBJZiBhbGwgYml0cyBhcmUKLS0gICAgICAgICAgICAgICAgLy8gc2V0LCB0aGVuIGFsbCA0 IGxhbmVzIG9mIHRoZSBtYXNrIGFyZSB0cnVlLgotLSAgICAgICAgICAgICAgICBfbW0yNTZfbW92 ZW1hc2tfcGQoY3JhdGU6Om1lbTo6dHJhbnNtdXRlKHNlbGYpKSA9PSAwYl8xMTExX2kzMgotLSAg ICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgICAgIGltcGwgQW55IGZvciAkaWQgewotLSAg ICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgICNbdGFyZ2V0X2ZlYXR1cmUoZW5hYmxl ID0gInNzZSIpXQotLSAgICAgICAgICAgIHVuc2FmZSBmbiBhbnkoc2VsZikgLT4gYm9vbCB7Ci0t ICAgICAgICAgICAgICAgICNbY2ZnKHRhcmdldF9hcmNoID0gIng4NiIpXQotLSAgICAgICAgICAg ICAgICB1c2UgY3JhdGU6OmFyY2g6Ong4Njo6X21tMjU2X21vdmVtYXNrX3BkOwotLSAgICAgICAg ICAgICAgICAjW2NmZyh0YXJnZXRfYXJjaCA9ICJ4ODZfNjQiKV0KLS0gICAgICAgICAgICAgICAg dXNlIGNyYXRlOjphcmNoOjp4ODZfNjQ6Ol9tbTI1Nl9tb3ZlbWFza19wZDsKLS0KLS0gICAgICAg ICAgICAgICAgX21tMjU2X21vdmVtYXNrX3BkKGNyYXRlOjptZW06OnRyYW5zbXV0ZShzZWxmKSkg IT0gMAotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgfTsKLS19Ci1kaWZmIC1OcmJ1 IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9yZWR1Y3Rpb25zL21h c2sveDg2L2F2eDIucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2Vu L3JlZHVjdGlvbnMvbWFzay94ODYvYXZ4Mi5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNr ZWRfc2ltZC9zcmMvY29kZWdlbi9yZWR1Y3Rpb25zL21hc2sveDg2L2F2eDIucnMJMjAyNS0wNC0y MCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2Vk X3NpbWQvc3JjL2NvZGVnZW4vcmVkdWN0aW9ucy9tYXNrL3g4Ni9hdngyLnJzCTE5NzAtMDEtMDEg MDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSwzNSArMCwwIEBACi0tLy8hIE1hc2sgcmVk dWN0aW9ucyBpbXBsZW1lbnRhdGlvbiBmb3IgYHg4NmAgYW5kIGB4ODZfNjRgIHRhcmdldHMgd2l0 aCBgQVZYMmAuCi0tIyFbYWxsb3codW51c2VkKV0KLS0KLS0vLy8geDg2L3g4Nl82NCAyNTYtYml0 IG04eDMyIEFWWDIgaW1wbGVtZW50YXRpb24KLS1tYWNyb19ydWxlcyEgeDg2X204eDMyX2F2eDJf aW1wbCB7Ci0tICAgICgkaWQ6aWRlbnQpID0+IHsKLS0gICAgICAgIGltcGwgQWxsIGZvciAkaWQg ewotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgICNbdGFyZ2V0X2ZlYXR1cmUo ZW5hYmxlID0gInNzZTIiKV0KLS0gICAgICAgICAgICB1bnNhZmUgZm4gYWxsKHNlbGYpIC0+IGJv b2wgewotLSAgICAgICAgICAgICAgICAjW2NmZyh0YXJnZXRfYXJjaCA9ICJ4ODYiKV0KLS0gICAg ICAgICAgICAgICAgdXNlIGNyYXRlOjphcmNoOjp4ODY6Ol9tbTI1Nl9tb3ZlbWFza19lcGk4Owot LSAgICAgICAgICAgICAgICAjW2NmZyh0YXJnZXRfYXJjaCA9ICJ4ODZfNjQiKV0KLS0gICAgICAg ICAgICAgICAgdXNlIGNyYXRlOjphcmNoOjp4ODZfNjQ6Ol9tbTI1Nl9tb3ZlbWFza19lcGk4Owot LSAgICAgICAgICAgICAgICAvLyBfbW0yNTZfbW92ZW1hc2tfZXBpOChhKSBjcmVhdGVzIGEgMzJi aXQgbWFzayBjb250YWluaW5nIHRoZQotLSAgICAgICAgICAgICAgICAvLyBtb3N0IHNpZ25pZmlj YW50IGJpdCBvZiBlYWNoIGJ5dGUgb2YgYGFgLiBJZiBhbGwKLS0gICAgICAgICAgICAgICAgLy8g Yml0cyBhcmUgc2V0LCB0aGVuIGFsbCAzMiBsYW5lcyBvZiB0aGUgbWFzayBhcmUKLS0gICAgICAg ICAgICAgICAgLy8gdHJ1ZS4KLS0gICAgICAgICAgICAgICAgX21tMjU2X21vdmVtYXNrX2VwaTgo Y3JhdGU6Om1lbTo6dHJhbnNtdXRlKHNlbGYpKSA9PSAtMV9pMzIKLS0gICAgICAgICAgICB9Ci0t ICAgICAgICB9Ci0tICAgICAgICBpbXBsIEFueSBmb3IgJGlkIHsKLS0gICAgICAgICAgICAjW2lu bGluZV0KLS0gICAgICAgICAgICAjW3RhcmdldF9mZWF0dXJlKGVuYWJsZSA9ICJzc2UyIildCi0t ICAgICAgICAgICAgdW5zYWZlIGZuIGFueShzZWxmKSAtPiBib29sIHsKLS0gICAgICAgICAgICAg ICAgI1tjZmcodGFyZ2V0X2FyY2ggPSAieDg2IildCi0tICAgICAgICAgICAgICAgIHVzZSBjcmF0 ZTo6YXJjaDo6eDg2OjpfbW0yNTZfbW92ZW1hc2tfZXBpODsKLS0gICAgICAgICAgICAgICAgI1tj ZmcodGFyZ2V0X2FyY2ggPSAieDg2XzY0IildCi0tICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6 YXJjaDo6eDg2XzY0OjpfbW0yNTZfbW92ZW1hc2tfZXBpODsKLS0KLS0gICAgICAgICAgICAgICAg X21tMjU2X21vdmVtYXNrX2VwaTgoY3JhdGU6Om1lbTo6dHJhbnNtdXRlKHNlbGYpKSAhPSAwCi0t ICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICB9OwotLX0KLWRpZmYgLU5yYnUgYS90aGly ZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3JlZHVjdGlvbnMvbWFzay94ODYv c3NlLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9yZWR1Y3Rp b25zL21hc2sveDg2L3NzZS5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9z cmMvY29kZWdlbi9yZWR1Y3Rpb25zL21hc2sveDg2L3NzZS5ycwkyMDI1LTA0LTIwIDE5OjI4OjEz LjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMv Y29kZWdlbi9yZWR1Y3Rpb25zL21hc2sveDg2L3NzZS5ycwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAw MDAwMDAwMCArMDMwMAotQEAgLTEsMzUgKzAsMCBAQAotLS8vISBNYXNrIHJlZHVjdGlvbnMgaW1w bGVtZW50YXRpb24gZm9yIGB4ODZgIGFuZCBgeDg2XzY0YCB0YXJnZXRzIHdpdGggYFNTRWAuCi0t IyFbYWxsb3codW51c2VkKV0KLS0KLS0vLy8gYHg4NmAvYHg4Nl82NGAgMTI4LWJpdCBgbTMyeDRg IGBTU0VgIGltcGxlbWVudGF0aW9uCi0tbWFjcm9fcnVsZXMhIHg4Nl9tMzJ4NF9zc2VfaW1wbCB7 Ci0tICAgICgkaWQ6aWRlbnQpID0+IHsKLS0gICAgICAgIGltcGwgQWxsIGZvciAkaWQgewotLSAg ICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgICNbdGFyZ2V0X2ZlYXR1cmUoZW5hYmxl ID0gInNzZSIpXQotLSAgICAgICAgICAgIHVuc2FmZSBmbiBhbGwoc2VsZikgLT4gYm9vbCB7Ci0t ICAgICAgICAgICAgICAgICNbY2ZnKHRhcmdldF9hcmNoID0gIng4NiIpXQotLSAgICAgICAgICAg ICAgICB1c2UgY3JhdGU6OmFyY2g6Ong4Njo6X21tX21vdmVtYXNrX3BzOwotLSAgICAgICAgICAg ICAgICAjW2NmZyh0YXJnZXRfYXJjaCA9ICJ4ODZfNjQiKV0KLS0gICAgICAgICAgICAgICAgdXNl IGNyYXRlOjphcmNoOjp4ODZfNjQ6Ol9tbV9tb3ZlbWFza19wczsKLS0gICAgICAgICAgICAgICAg Ly8gX21tX21vdmVtYXNrX3BzKGEpIGNyZWF0ZXMgYSA0Yml0IG1hc2sgY29udGFpbmluZyB0aGUK LS0gICAgICAgICAgICAgICAgLy8gbW9zdCBzaWduaWZpY2FudCBiaXQgb2YgZWFjaCBsYW5lIG9m IGBhYC4gSWYgYWxsCi0tICAgICAgICAgICAgICAgIC8vIGJpdHMgYXJlIHNldCwgdGhlbiBhbGwg NCBsYW5lcyBvZiB0aGUgbWFzayBhcmUKLS0gICAgICAgICAgICAgICAgLy8gdHJ1ZS4KLS0gICAg ICAgICAgICAgICAgX21tX21vdmVtYXNrX3BzKGNyYXRlOjptZW06OnRyYW5zbXV0ZShzZWxmKSkg PT0gMGJfMTExMV9pMzIKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgICAgICBpbXBs IEFueSBmb3IgJGlkIHsKLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICAjW3Rh cmdldF9mZWF0dXJlKGVuYWJsZSA9ICJzc2UiKV0KLS0gICAgICAgICAgICB1bnNhZmUgZm4gYW55 KHNlbGYpIC0+IGJvb2wgewotLSAgICAgICAgICAgICAgICAjW2NmZyh0YXJnZXRfYXJjaCA9ICJ4 ODYiKV0KLS0gICAgICAgICAgICAgICAgdXNlIGNyYXRlOjphcmNoOjp4ODY6Ol9tbV9tb3ZlbWFz a19wczsKLS0gICAgICAgICAgICAgICAgI1tjZmcodGFyZ2V0X2FyY2ggPSAieDg2XzY0IildCi0t ICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6YXJjaDo6eDg2XzY0OjpfbW1fbW92ZW1hc2tfcHM7 Ci0tCi0tICAgICAgICAgICAgICAgIF9tbV9tb3ZlbWFza19wcyhjcmF0ZTo6bWVtOjp0cmFuc211 dGUoc2VsZikpICE9IDAKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgIH07Ci0tfQot ZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vcmVk dWN0aW9ucy9tYXNrL3g4Ni9zc2UyLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9z cmMvY29kZWdlbi9yZWR1Y3Rpb25zL21hc2sveDg2L3NzZTIucnMKLS0tLSBhL3RoaXJkX3BhcnR5 L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vcmVkdWN0aW9ucy9tYXNrL3g4Ni9zc2UyLnJz CTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9y dXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3JlZHVjdGlvbnMvbWFzay94ODYvc3NlMi5ycwkx OTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsNjggKzAsMCBAQAotLS8v ISBNYXNrIHJlZHVjdGlvbnMgaW1wbGVtZW50YXRpb24gZm9yIGB4ODZgIGFuZCBgeDg2XzY0YCB0 YXJnZXRzIHdpdGggYFNTRTJgLgotLSMhW2FsbG93KHVudXNlZCldCi0tCi0tLy8vIGB4ODZgL2B4 ODZfNjRgIDEyOC1iaXQgbTY0eDIgYFNTRTJgIGltcGxlbWVudGF0aW9uCi0tbWFjcm9fcnVsZXMh IHg4Nl9tNjR4Ml9zc2UyX2ltcGwgewotLSAgICAoJGlkOmlkZW50KSA9PiB7Ci0tICAgICAgICBp bXBsIEFsbCBmb3IgJGlkIHsKLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICAj W3RhcmdldF9mZWF0dXJlKGVuYWJsZSA9ICJzc2UiKV0KLS0gICAgICAgICAgICB1bnNhZmUgZm4g YWxsKHNlbGYpIC0+IGJvb2wgewotLSAgICAgICAgICAgICAgICAjW2NmZyh0YXJnZXRfYXJjaCA9 ICJ4ODYiKV0KLS0gICAgICAgICAgICAgICAgdXNlIGNyYXRlOjphcmNoOjp4ODY6Ol9tbV9tb3Zl bWFza19wZDsKLS0gICAgICAgICAgICAgICAgI1tjZmcodGFyZ2V0X2FyY2ggPSAieDg2XzY0Iild Ci0tICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6YXJjaDo6eDg2XzY0OjpfbW1fbW92ZW1hc2tf cGQ7Ci0tICAgICAgICAgICAgICAgIC8vIF9tbV9tb3ZlbWFza19wZChhKSBjcmVhdGVzIGEgMmJp dCBtYXNrIGNvbnRhaW5pbmcgdGhlCi0tICAgICAgICAgICAgICAgIC8vIG1vc3Qgc2lnbmlmaWNh bnQgYml0IG9mIGVhY2ggbGFuZSBvZiBgYWAuIElmIGFsbAotLSAgICAgICAgICAgICAgICAvLyBi aXRzIGFyZSBzZXQsIHRoZW4gYWxsIDIgbGFuZXMgb2YgdGhlIG1hc2sgYXJlCi0tICAgICAgICAg ICAgICAgIC8vIHRydWUuCi0tICAgICAgICAgICAgICAgIF9tbV9tb3ZlbWFza19wZChjcmF0ZTo6 bWVtOjp0cmFuc211dGUoc2VsZikpID09IDBiXzExX2kzMgotLSAgICAgICAgICAgIH0KLS0gICAg ICAgIH0KLS0gICAgICAgIGltcGwgQW55IGZvciAkaWQgewotLSAgICAgICAgICAgICNbaW5saW5l XQotLSAgICAgICAgICAgICNbdGFyZ2V0X2ZlYXR1cmUoZW5hYmxlID0gInNzZSIpXQotLSAgICAg ICAgICAgIHVuc2FmZSBmbiBhbnkoc2VsZikgLT4gYm9vbCB7Ci0tICAgICAgICAgICAgICAgICNb Y2ZnKHRhcmdldF9hcmNoID0gIng4NiIpXQotLSAgICAgICAgICAgICAgICB1c2UgY3JhdGU6OmFy Y2g6Ong4Njo6X21tX21vdmVtYXNrX3BkOwotLSAgICAgICAgICAgICAgICAjW2NmZyh0YXJnZXRf YXJjaCA9ICJ4ODZfNjQiKV0KLS0gICAgICAgICAgICAgICAgdXNlIGNyYXRlOjphcmNoOjp4ODZf NjQ6Ol9tbV9tb3ZlbWFza19wZDsKLS0KLS0gICAgICAgICAgICAgICAgX21tX21vdmVtYXNrX3Bk KGNyYXRlOjptZW06OnRyYW5zbXV0ZShzZWxmKSkgIT0gMAotLSAgICAgICAgICAgIH0KLS0gICAg ICAgIH0KLS0gICAgfTsKLS19Ci0tCi0tLy8vIGB4ODZgL2B4ODZfNjRgIDEyOC1iaXQgbTh4MTYg YFNTRTJgIGltcGxlbWVudGF0aW9uCi0tbWFjcm9fcnVsZXMhIHg4Nl9tOHgxNl9zc2UyX2ltcGwg ewotLSAgICAoJGlkOmlkZW50KSA9PiB7Ci0tICAgICAgICBpbXBsIEFsbCBmb3IgJGlkIHsKLS0g ICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICAjW3RhcmdldF9mZWF0dXJlKGVuYWJs ZSA9ICJzc2UyIildCi0tICAgICAgICAgICAgdW5zYWZlIGZuIGFsbChzZWxmKSAtPiBib29sIHsK LS0gICAgICAgICAgICAgICAgI1tjZmcodGFyZ2V0X2FyY2ggPSAieDg2IildCi0tICAgICAgICAg ICAgICAgIHVzZSBjcmF0ZTo6YXJjaDo6eDg2OjpfbW1fbW92ZW1hc2tfZXBpODsKLS0gICAgICAg ICAgICAgICAgI1tjZmcodGFyZ2V0X2FyY2ggPSAieDg2XzY0IildCi0tICAgICAgICAgICAgICAg IHVzZSBjcmF0ZTo6YXJjaDo6eDg2XzY0OjpfbW1fbW92ZW1hc2tfZXBpODsKLS0gICAgICAgICAg ICAgICAgLy8gX21tX21vdmVtYXNrX2VwaTgoYSkgY3JlYXRlcyBhIDE2Yml0IG1hc2sgY29udGFp bmluZyB0aGUKLS0gICAgICAgICAgICAgICAgLy8gbW9zdCBzaWduaWZpY2FudCBiaXQgb2YgZWFj aCBieXRlIG9mIGBhYC4gSWYgYWxsCi0tICAgICAgICAgICAgICAgIC8vIGJpdHMgYXJlIHNldCwg dGhlbiBhbGwgMTYgbGFuZXMgb2YgdGhlIG1hc2sgYXJlCi0tICAgICAgICAgICAgICAgIC8vIHRy dWUuCi0tICAgICAgICAgICAgICAgIF9tbV9tb3ZlbWFza19lcGk4KGNyYXRlOjptZW06OnRyYW5z bXV0ZShzZWxmKSkgPT0gaTMyOjpmcm9tKHUxNjo6bWF4X3ZhbHVlKCkpCi0tICAgICAgICAgICAg fQotLSAgICAgICAgfQotLSAgICAgICAgaW1wbCBBbnkgZm9yICRpZCB7Ci0tICAgICAgICAgICAg I1tpbmxpbmVdCi0tICAgICAgICAgICAgI1t0YXJnZXRfZmVhdHVyZShlbmFibGUgPSAic3NlMiIp XQotLSAgICAgICAgICAgIHVuc2FmZSBmbiBhbnkoc2VsZikgLT4gYm9vbCB7Ci0tICAgICAgICAg ICAgICAgICNbY2ZnKHRhcmdldF9hcmNoID0gIng4NiIpXQotLSAgICAgICAgICAgICAgICB1c2Ug Y3JhdGU6OmFyY2g6Ong4Njo6X21tX21vdmVtYXNrX2VwaTg7Ci0tICAgICAgICAgICAgICAgICNb Y2ZnKHRhcmdldF9hcmNoID0gIng4Nl82NCIpXQotLSAgICAgICAgICAgICAgICB1c2UgY3JhdGU6 OmFyY2g6Ong4Nl82NDo6X21tX21vdmVtYXNrX2VwaTg7Ci0tCi0tICAgICAgICAgICAgICAgIF9t bV9tb3ZlbWFza19lcGk4KGNyYXRlOjptZW06OnRyYW5zbXV0ZShzZWxmKSkgIT0gMAotLSAgICAg ICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgfTsKLS19Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFy dHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9yZWR1Y3Rpb25zL21hc2sveDg2LnJzIGIv dGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9yZWR1Y3Rpb25zL21hc2sv eDg2LnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3Jl ZHVjdGlvbnMvbWFzay94ODYucnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAK LSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vcmVkdWN0aW9u cy9tYXNrL3g4Ni5ycwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEs MjE2ICswLDAgQEAKLS0vLyEgTWFzayByZWR1Y3Rpb25zIGltcGxlbWVudGF0aW9uIGZvciBgeDg2 YCBhbmQgYHg4Nl82NGAgdGFyZ2V0cwotLQotLSNbY2ZnKHRhcmdldF9mZWF0dXJlID0gInNzZSIp XQotLSNbbWFjcm9fdXNlXQotLW1vZCBzc2U7Ci0tCi0tI1tjZmcodGFyZ2V0X2ZlYXR1cmUgPSAi c3NlMiIpXQotLSNbbWFjcm9fdXNlXQotLW1vZCBzc2UyOwotLQotLSNbY2ZnKHRhcmdldF9mZWF0 dXJlID0gImF2eCIpXQotLSNbbWFjcm9fdXNlXQotLW1vZCBhdng7Ci0tCi0tI1tjZmcodGFyZ2V0 X2ZlYXR1cmUgPSAiYXZ4MiIpXQotLSNbbWFjcm9fdXNlXQotLW1vZCBhdngyOwotLQotLS8vLyB4 ODYgNjQtYml0IG04eDggaW1wbGVtZW50YXRpb24KLS1tYWNyb19ydWxlcyEgeDg2X204eDhfaW1w bCB7Ci0tICAgICgkaWQ6aWRlbnQpID0+IHsKLS0gICAgICAgIGZhbGxiYWNrX2ltcGwhKCRpZCk7 Ci0tICAgIH07Ci0tfQotLQotLS8vLyB4ODYgMTI4LWJpdCBtOHgxNiBpbXBsZW1lbnRhdGlvbgot LW1hY3JvX3J1bGVzISB4ODZfbTh4MTZfaW1wbCB7Ci0tICAgICgkaWQ6aWRlbnQpID0+IHsKLS0g ICAgICAgIGNmZ19pZiEgewotLSAgICAgICAgICAgIGlmICNbY2ZnKHRhcmdldF9mZWF0dXJlID0g InNzZTIiKV0gewotLSAgICAgICAgICAgICAgICB4ODZfbTh4MTZfc3NlMl9pbXBsISgkaWQpOwot LSAgICAgICAgICAgIH0gZWxzZSB7Ci0tICAgICAgICAgICAgICAgIGZhbGxiYWNrX2ltcGwhKCRp ZCk7Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICB9OwotLX0KLS0KLS0vLy8geDg2 IDEyOC1iaXQgbTMyeDQgaW1wbGVtZW50YXRpb24KLS1tYWNyb19ydWxlcyEgeDg2X20zMng0X2lt cGwgewotLSAgICAoJGlkOmlkZW50KSA9PiB7Ci0tICAgICAgICBjZmdfaWYhIHsKLS0gICAgICAg ICAgICBpZiAjW2NmZyh0YXJnZXRfZmVhdHVyZSA9ICJzc2UiKV0gewotLSAgICAgICAgICAgICAg ICB4ODZfbTMyeDRfc3NlX2ltcGwhKCRpZCk7Ci0tICAgICAgICAgICAgfSBlbHNlIHsKLS0gICAg ICAgICAgICAgICAgZmFsbGJhY2tfaW1wbCEoJGlkKTsKLS0gICAgICAgICAgICB9Ci0tICAgICAg ICB9Ci0tICAgIH07Ci0tfQotLQotLS8vLyB4ODYgMTI4LWJpdCBtNjR4MiBpbXBsZW1lbnRhdGlv bgotLW1hY3JvX3J1bGVzISB4ODZfbTY0eDJfaW1wbCB7Ci0tICAgICgkaWQ6aWRlbnQpID0+IHsK LS0gICAgICAgIGNmZ19pZiEgewotLSAgICAgICAgICAgIGlmICNbY2ZnKHRhcmdldF9mZWF0dXJl ID0gInNzZTIiKV0gewotLSAgICAgICAgICAgICAgICB4ODZfbTY0eDJfc3NlMl9pbXBsISgkaWQp OwotLSAgICAgICAgICAgIH0gZWxzZSBpZiAjW2NmZyh0YXJnZXRfZmVhdHVyZSA9ICJzc2UiKV0g ewotLSAgICAgICAgICAgICAgICB4ODZfbTMyeDRfc3NlX2ltcGwhKCRpZCk7Ci0tICAgICAgICAg ICAgfSBlbHNlIHsKLS0gICAgICAgICAgICAgICAgZmFsbGJhY2tfaW1wbCEoJGlkKTsKLS0gICAg ICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgIH07Ci0tfQotLQotLS8vLyB4ODYgMjU2LWJpdCBt OHgzMiBpbXBsZW1lbnRhdGlvbgotLW1hY3JvX3J1bGVzISB4ODZfbTh4MzJfaW1wbCB7Ci0tICAg ICgkaWQ6aWRlbnQsICRoYWxmX2lkOmlkZW50KSA9PiB7Ci0tICAgICAgICBjZmdfaWYhIHsKLS0g ICAgICAgICAgICBpZiAjW2NmZyh0YXJnZXRfZmVhdHVyZSA9ICJhdngyIildIHsKLS0gICAgICAg ICAgICAgICAgeDg2X204eDMyX2F2eDJfaW1wbCEoJGlkKTsKLS0gICAgICAgICAgICB9IGVsc2Ug aWYgI1tjZmcodGFyZ2V0X2ZlYXR1cmUgPSAiYXZ4IildIHsKLS0gICAgICAgICAgICAgICAgeDg2 X204eDMyX2F2eF9pbXBsISgkaWQpOwotLSAgICAgICAgICAgIH0gZWxzZSBpZiAjW2NmZyh0YXJn ZXRfZmVhdHVyZSA9ICJzc2UyIildIHsKLS0gICAgICAgICAgICAgICAgcmVjdXJzZV9oYWxmISgk aWQsICRoYWxmX2lkKTsKLS0gICAgICAgICAgICB9IGVsc2UgewotLSAgICAgICAgICAgICAgICBm YWxsYmFja19pbXBsISgkaWQpOwotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgfTsK LS19Ci0tCi0tLy8vIHg4NiAyNTYtYml0IG0zMng4IGltcGxlbWVudGF0aW9uCi0tbWFjcm9fcnVs ZXMhIHg4Nl9tMzJ4OF9pbXBsIHsKLS0gICAgKCRpZDppZGVudCwgJGhhbGZfaWQ6aWRlbnQpID0+ IHsKLS0gICAgICAgIGNmZ19pZiEgewotLSAgICAgICAgICAgIGlmICNbY2ZnKHRhcmdldF9mZWF0 dXJlID0gImF2eCIpXSB7Ci0tICAgICAgICAgICAgICAgIHg4Nl9tMzJ4OF9hdnhfaW1wbCEoJGlk KTsKLS0gICAgICAgICAgICB9IGVsc2UgaWYgI1tjZmcodGFyZ2V0X2ZlYXR1cmUgPSAic3NlIild IHsKLS0gICAgICAgICAgICAgICAgcmVjdXJzZV9oYWxmISgkaWQsICRoYWxmX2lkKTsKLS0gICAg ICAgICAgICB9IGVsc2UgewotLSAgICAgICAgICAgICAgICBmYWxsYmFja19pbXBsISgkaWQpOwot LSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgfTsKLS19Ci0tCi0tLy8vIHg4NiAyNTYt Yml0IG02NHg0IGltcGxlbWVudGF0aW9uCi0tbWFjcm9fcnVsZXMhIHg4Nl9tNjR4NF9pbXBsIHsK LS0gICAgKCRpZDppZGVudCwgJGhhbGZfaWQ6aWRlbnQpID0+IHsKLS0gICAgICAgIGNmZ19pZiEg ewotLSAgICAgICAgICAgIGlmICNbY2ZnKHRhcmdldF9mZWF0dXJlID0gImF2eCIpXSB7Ci0tICAg ICAgICAgICAgICAgIHg4Nl9tNjR4NF9hdnhfaW1wbCEoJGlkKTsKLS0gICAgICAgICAgICB9IGVs c2UgaWYgI1tjZmcodGFyZ2V0X2ZlYXR1cmUgPSAic3NlIildIHsKLS0gICAgICAgICAgICAgICAg cmVjdXJzZV9oYWxmISgkaWQsICRoYWxmX2lkKTsKLS0gICAgICAgICAgICB9IGVsc2UgewotLSAg ICAgICAgICAgICAgICBmYWxsYmFja19pbXBsISgkaWQpOwotLSAgICAgICAgICAgIH0KLS0gICAg ICAgIH0KLS0gICAgfTsKLS19Ci0tCi0tLy8vIEZhbGxiYWNrIGltcGxlbWVudGF0aW9uLgotLW1h Y3JvX3J1bGVzISB4ODZfaW50cl9pbXBsIHsKLS0gICAgKCRpZDppZGVudCkgPT4gewotLSAgICAg ICAgaW1wbCBBbGwgZm9yICRpZCB7Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAg ICAgdW5zYWZlIGZuIGFsbChzZWxmKSAtPiBib29sIHsKLS0gICAgICAgICAgICAgICAgdXNlIGNy YXRlOjpsbHZtOjpzaW1kX3JlZHVjZV9hbGw7Ci0tICAgICAgICAgICAgICAgIHNpbWRfcmVkdWNl X2FsbChzZWxmLjApCi0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICAgICAgaW1wbCBB bnkgZm9yICRpZCB7Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgdW5zYWZl IGZuIGFueShzZWxmKSAtPiBib29sIHsKLS0gICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpsbHZt OjpzaW1kX3JlZHVjZV9hbnk7Ci0tICAgICAgICAgICAgICAgIHNpbWRfcmVkdWNlX2FueShzZWxm LjApCi0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICB9OwotLX0KLS0KLS0vLy8gTWFz ayByZWR1Y3Rpb24gaW1wbGVtZW50YXRpb24gZm9yIGB4ODZgIGFuZCBgeDg2XzY0YCB0YXJnZXRz Ci0tbWFjcm9fcnVsZXMhIGltcGxfbWFza19yZWR1Y3Rpb25zIHsKLS0gICAgLy8gNjQtYml0IHdp ZGUgbWFza3MKLS0gICAgKG04eDgpID0+IHsKLS0gICAgICAgIHg4Nl9tOHg4X2ltcGwhKG04eDgp OwotLSAgICB9OwotLSAgICAobTE2eDQpID0+IHsKLS0gICAgICAgIHg4Nl9tOHg4X2ltcGwhKG0x Nng0KTsKLS0gICAgfTsKLS0gICAgKG0zMngyKSA9PiB7Ci0tICAgICAgICB4ODZfbTh4OF9pbXBs IShtMzJ4Mik7Ci0tICAgIH07Ci0tICAgIC8vIDEyOC1iaXQgd2lkZSBtYXNrcwotLSAgICAobTh4 MTYpID0+IHsKLS0gICAgICAgIHg4Nl9tOHgxNl9pbXBsIShtOHgxNik7Ci0tICAgIH07Ci0tICAg IChtMTZ4OCkgPT4gewotLSAgICAgICAgeDg2X204eDE2X2ltcGwhKG0xNng4KTsKLS0gICAgfTsK LS0gICAgKG0zMng0KSA9PiB7Ci0tICAgICAgICB4ODZfbTMyeDRfaW1wbCEobTMyeDQpOwotLSAg ICB9OwotLSAgICAobTY0eDIpID0+IHsKLS0gICAgICAgIHg4Nl9tNjR4Ml9pbXBsIShtNjR4Mik7 Ci0tICAgIH07Ci0tICAgIChtMTI4eDEpID0+IHsKLS0gICAgICAgIHg4Nl9pbnRyX2ltcGwhKG0x Mjh4MSk7Ci0tICAgIH07Ci0tICAgIC8vIDI1Ni1iaXQgd2lkZSBtYXNrczoKLS0gICAgKG04eDMy KSA9PiB7Ci0tICAgICAgICB4ODZfbTh4MzJfaW1wbCEobTh4MzIsIG04eDE2KTsKLS0gICAgfTsK LS0gICAgKG0xNngxNikgPT4gewotLSAgICAgICAgeDg2X204eDMyX2ltcGwhKG0xNngxNiwgbTE2 eDgpOwotLSAgICB9OwotLSAgICAobTMyeDgpID0+IHsKLS0gICAgICAgIHg4Nl9tMzJ4OF9pbXBs IShtMzJ4OCwgbTMyeDQpOwotLSAgICB9OwotLSAgICAobTY0eDQpID0+IHsKLS0gICAgICAgIHg4 Nl9tNjR4NF9pbXBsIShtNjR4NCwgbTY0eDIpOwotLSAgICB9OwotLSAgICAobTEyOHgyKSA9PiB7 Ci0tICAgICAgICB4ODZfaW50cl9pbXBsIShtMTI4eDIpOwotLSAgICB9OwotLSAgICAobXNpemV4 MikgPT4gewotLSAgICAgICAgY2ZnX2lmISB7Ci0tICAgICAgICAgICAgaWYgI1tjZmcodGFyZ2V0 X3BvaW50ZXJfd2lkdGggPSAiNjQiKV0gewotLSAgICAgICAgICAgICAgICBmYWxsYmFja190b19v dGhlcl9pbXBsIShtc2l6ZXgyLCBtNjR4Mik7Ci0tICAgICAgICAgICAgfSBlbHNlIGlmICNbY2Zn KHRhcmdldF9wb2ludGVyX3dpZHRoID0gIjMyIildIHsKLS0gICAgICAgICAgICAgICAgZmFsbGJh Y2tfdG9fb3RoZXJfaW1wbCEobXNpemV4MiwgbTMyeDIpOwotLSAgICAgICAgICAgIH0gZWxzZSB7 Ci0tICAgICAgICAgICAgICAgIGNvbXBpbGVfZXJyb3IhKCJ1bnN1cHBvcnRlZCB0YXJnZXRfcG9p bnRlcl93aWR0aCIpOwotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgfTsKLS0gICAg KG1zaXpleDQpID0+IHsKLS0gICAgICAgIGNmZ19pZiEgewotLSAgICAgICAgICAgIGlmICNbY2Zn KHRhcmdldF9wb2ludGVyX3dpZHRoID0gIjY0IildIHsKLS0gICAgICAgICAgICAgICAgZmFsbGJh Y2tfdG9fb3RoZXJfaW1wbCEobXNpemV4NCwgbTY0eDQpOwotLSAgICAgICAgICAgIH0gZWxzZSBp ZiAjW2NmZyh0YXJnZXRfcG9pbnRlcl93aWR0aCA9ICIzMiIpXSB7Ci0tICAgICAgICAgICAgICAg IGZhbGxiYWNrX3RvX290aGVyX2ltcGwhKG1zaXpleDQsIG0zMng0KTsKLS0gICAgICAgICAgICB9 IGVsc2UgewotLSAgICAgICAgICAgICAgICBjb21waWxlX2Vycm9yISgidW5zdXBwb3J0ZWQgdGFy Z2V0X3BvaW50ZXJfd2lkdGgiKTsKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgIH07 Ci0tICAgIChtc2l6ZXg4KSA9PiB7Ci0tICAgICAgICBjZmdfaWYhIHsKLS0gICAgICAgICAgICBp ZiAjW2NmZyh0YXJnZXRfcG9pbnRlcl93aWR0aCA9ICI2NCIpXSB7Ci0tICAgICAgICAgICAgICAg IGZhbGxiYWNrX3RvX290aGVyX2ltcGwhKG1zaXpleDgsIG02NHg4KTsKLS0gICAgICAgICAgICB9 IGVsc2UgaWYgI1tjZmcodGFyZ2V0X3BvaW50ZXJfd2lkdGggPSAiMzIiKV0gewotLSAgICAgICAg ICAgICAgICBmYWxsYmFja190b19vdGhlcl9pbXBsIShtc2l6ZXg4LCBtMzJ4OCk7Ci0tICAgICAg ICAgICAgfSBlbHNlIHsKLS0gICAgICAgICAgICAgICAgY29tcGlsZV9lcnJvciEoInVuc3VwcG9y dGVkIHRhcmdldF9wb2ludGVyX3dpZHRoIik7Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQot LSAgICB9OwotLQotLSAgICAvLyBGYWxsYmFjayB0byBMTFZNJ3MgZGVmYXVsdCBjb2RlLWdlbmVy YXRpb246Ci0tICAgICgkaWQ6aWRlbnQpID0+IHsKLS0gICAgICAgIGZhbGxiYWNrX2ltcGwhKCRp ZCk7Ci0tICAgIH07Ci0tfQotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3Np bWQvc3JjL2NvZGVnZW4vcmVkdWN0aW9ucy9tYXNrLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNr ZWRfc2ltZC9zcmMvY29kZWdlbi9yZWR1Y3Rpb25zL21hc2sucnMKLS0tLSBhL3RoaXJkX3BhcnR5 L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vcmVkdWN0aW9ucy9tYXNrLnJzCTIwMjUtMDQt MjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tl ZF9zaW1kL3NyYy9jb2RlZ2VuL3JlZHVjdGlvbnMvbWFzay5ycwkxOTcwLTAxLTAxIDAzOjAwOjAw LjAwMDAwMDAwMCArMDMwMAotQEAgLTEsNjkgKzAsMCBAQAotLS8vISBDb2RlIGdlbmVyYXRpb24g d29ya2Fyb3VuZCBmb3IgYGFsbCgpYCBtYXNrIGhvcml6b250YWwgcmVkdWN0aW9uLgotLS8vIQot LS8vISBXb3JrcyBhcm91bmQgW0xMVk0gYnVnIDM2NzAyXS4KLS0vLyEKLS0vLyEgW0xMVk0gYnVn IDM2NzAyXTogaHR0cHM6Ly9idWdzLmxsdm0ub3JnL3Nob3dfYnVnLmNnaT9pZD0zNjcwMgotLSMh W2FsbG93KHVudXNlZF9tYWNyb3MpXQotLQotLXVzZSBjcmF0ZTo6KjsKLS0KLS1wdWIoY3JhdGUp IHRyYWl0IEFsbDogY3JhdGU6Om1hcmtlcjo6U2l6ZWQgewotLSAgICB1bnNhZmUgZm4gYWxsKHNl bGYpIC0+IGJvb2w7Ci0tfQotLQotLXB1YihjcmF0ZSkgdHJhaXQgQW55OiBjcmF0ZTo6bWFya2Vy OjpTaXplZCB7Ci0tICAgIHVuc2FmZSBmbiBhbnkoc2VsZikgLT4gYm9vbDsKLS19Ci0tCi0tI1tt YWNyb191c2VdCi0tbW9kIGZhbGxiYWNrX2ltcGw7Ci0tCi0tY2ZnX2lmISB7Ci0tICAgIGlmICNb Y2ZnKGFueSh0YXJnZXRfYXJjaCA9ICJ4ODYiLCB0YXJnZXRfYXJjaCA9ICJ4ODZfNjQiKSldIHsK LS0gICAgICAgICNbbWFjcm9fdXNlXQotLSAgICAgICAgbW9kIHg4NjsKLS0gICAgfSBlbHNlIGlm ICNbY2ZnKGFsbCh0YXJnZXRfYXJjaCA9ICJhcm0iLCB0YXJnZXRfZmVhdHVyZSA9ICJ2NyIsCi0t ICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0X2ZlYXR1cmUgPSAibmVvbiIsCi0tICAgICAg ICAgICAgICAgICAgICAgICAgYW55KGZlYXR1cmUgPSAiY29yZV9hcmNoIiwgbGliY29yZV9uZW9u KSkpXSB7Ci0tICAgICAgICAjW21hY3JvX3VzZV0KLS0gICAgICAgIG1vZCBhcm07Ci0tICAgIH0g ZWxzZSBpZiAjW2NmZyhhbGwodGFyZ2V0X2FyY2ggPSAiYWFyY2g2NCIsIHRhcmdldF9mZWF0dXJl ID0gIm5lb24iKSldIHsKLS0gICAgICAgICNbbWFjcm9fdXNlXQotLSAgICAgICAgbW9kIGFhcmNo NjQ7Ci0tICAgIH0gZWxzZSB7Ci0tICAgICAgICAjW21hY3JvX3VzZV0KLS0gICAgICAgIG1vZCBm YWxsYmFjazsKLS0gICAgfQotLX0KLS0KLS1pbXBsX21hc2tfcmVkdWN0aW9ucyEobTh4Mik7Ci0t aW1wbF9tYXNrX3JlZHVjdGlvbnMhKG04eDQpOwotLWltcGxfbWFza19yZWR1Y3Rpb25zIShtOHg4 KTsKLS1pbXBsX21hc2tfcmVkdWN0aW9ucyEobTh4MTYpOwotLWltcGxfbWFza19yZWR1Y3Rpb25z IShtOHgzMik7Ci0taW1wbF9tYXNrX3JlZHVjdGlvbnMhKG04eDY0KTsKLS0KLS1pbXBsX21hc2tf cmVkdWN0aW9ucyEobTE2eDIpOwotLWltcGxfbWFza19yZWR1Y3Rpb25zIShtMTZ4NCk7Ci0taW1w bF9tYXNrX3JlZHVjdGlvbnMhKG0xNng4KTsKLS1pbXBsX21hc2tfcmVkdWN0aW9ucyEobTE2eDE2 KTsKLS1pbXBsX21hc2tfcmVkdWN0aW9ucyEobTE2eDMyKTsKLS0KLS1pbXBsX21hc2tfcmVkdWN0 aW9ucyEobTMyeDIpOwotLWltcGxfbWFza19yZWR1Y3Rpb25zIShtMzJ4NCk7Ci0taW1wbF9tYXNr X3JlZHVjdGlvbnMhKG0zMng4KTsKLS1pbXBsX21hc2tfcmVkdWN0aW9ucyEobTMyeDE2KTsKLS0K LS0vLyBGSVhNRTogNjQtYml0IHNpbmdsZSBlbGVtZW50IHZlY3RvcgotLS8vIGltcGxfbWFza19y ZWR1Y3Rpb25zIShtNjR4MSk7Ci0taW1wbF9tYXNrX3JlZHVjdGlvbnMhKG02NHgyKTsKLS1pbXBs X21hc2tfcmVkdWN0aW9ucyEobTY0eDQpOwotLWltcGxfbWFza19yZWR1Y3Rpb25zIShtNjR4OCk7 Ci0tCi0taW1wbF9tYXNrX3JlZHVjdGlvbnMhKG0xMjh4MSk7Ci0taW1wbF9tYXNrX3JlZHVjdGlv bnMhKG0xMjh4Mik7Ci0taW1wbF9tYXNrX3JlZHVjdGlvbnMhKG0xMjh4NCk7Ci0tCi0taW1wbF9t YXNrX3JlZHVjdGlvbnMhKG1zaXpleDIpOwotLWltcGxfbWFza19yZWR1Y3Rpb25zIShtc2l6ZXg0 KTsKLS1pbXBsX21hc2tfcmVkdWN0aW9ucyEobXNpemV4OCk7Ci1kaWZmIC1OcmJ1IGEvdGhpcmRf cGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9yZWR1Y3Rpb25zLnJzIGIvdGhpcmRf cGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9yZWR1Y3Rpb25zLnJzCi0tLS0gYS90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3JlZHVjdGlvbnMucnMJMjAy NS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3Qv cGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vcmVkdWN0aW9ucy5ycwkxOTcwLTAxLTAxIDAzOjAwOjAw LjAwMDAwMDAwMCArMDMwMAotQEAgLTEgKzAsMCBAQAotLXB1YihjcmF0ZSkgbW9kIG1hc2s7Ci1k aWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9zaHVm ZmxlLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9zaHVmZmxl LnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3NodWZm bGUucnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3Bh cnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vc2h1ZmZsZS5ycwkxOTcwLTAxLTAxIDAz OjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsMTUwICswLDAgQEAKLS0vLyEgSW1wbGVtZW50 YXRpb25zIG9mIHRoZSBgU2h1ZmZsZVJlc3VsdGAgdHJhaXQgZm9yIHRoZSBkaWZmZXJlbnQgbnVt YmVycyBvZgotLS8vISBsYW5lcyBhbmQgdmVjdG9yIGVsZW1lbnQgdHlwZXMuCi0tCi0tdXNlIGNy YXRlOjptYXNrczo6KjsKLS11c2UgY3JhdGU6OnNlYWxlZDo6e1NlYWwsIFNodWZmbGV9OwotLQot LW1hY3JvX3J1bGVzISBpbXBsX3NodWZmbGUgewotLSAgICAoJGFycmF5OnR5LCAkYmFzZTp0eSwg JG91dDp0eSkgPT4gewotLSAgICAgICAgaW1wbCBTZWFsPCRhcnJheT4gZm9yICRiYXNlIHt9Ci0t ICAgICAgICBpbXBsIFNodWZmbGU8JGFycmF5PiBmb3IgJGJhc2UgewotLSAgICAgICAgICAgIHR5 cGUgT3V0cHV0ID0gJG91dDsKLS0gICAgICAgIH0KLS0gICAgfTsKLS19Ci0tCi0taW1wbF9zaHVm ZmxlISB7IFt1MzI7IDJdLCBpOCwgY3JhdGU6OmNvZGVnZW46Omk4eDIgfQotLWltcGxfc2h1ZmZs ZSEgeyBbdTMyOyA0XSwgaTgsIGNyYXRlOjpjb2RlZ2VuOjppOHg0IH0KLS1pbXBsX3NodWZmbGUh IHsgW3UzMjsgOF0sIGk4LCBjcmF0ZTo6Y29kZWdlbjo6aTh4OCB9Ci0taW1wbF9zaHVmZmxlISB7 IFt1MzI7IDE2XSwgaTgsIGNyYXRlOjpjb2RlZ2VuOjppOHgxNiB9Ci0taW1wbF9zaHVmZmxlISB7 IFt1MzI7IDMyXSwgaTgsIGNyYXRlOjpjb2RlZ2VuOjppOHgzMiB9Ci0taW1wbF9zaHVmZmxlISB7 IFt1MzI7IDY0XSwgaTgsIGNyYXRlOjpjb2RlZ2VuOjppOHg2NCB9Ci0tCi0taW1wbF9zaHVmZmxl ISB7IFt1MzI7IDJdLCB1OCwgY3JhdGU6OmNvZGVnZW46OnU4eDIgfQotLWltcGxfc2h1ZmZsZSEg eyBbdTMyOyA0XSwgdTgsIGNyYXRlOjpjb2RlZ2VuOjp1OHg0IH0KLS1pbXBsX3NodWZmbGUhIHsg W3UzMjsgOF0sIHU4LCBjcmF0ZTo6Y29kZWdlbjo6dTh4OCB9Ci0taW1wbF9zaHVmZmxlISB7IFt1 MzI7IDE2XSwgdTgsIGNyYXRlOjpjb2RlZ2VuOjp1OHgxNiB9Ci0taW1wbF9zaHVmZmxlISB7IFt1 MzI7IDMyXSwgdTgsIGNyYXRlOjpjb2RlZ2VuOjp1OHgzMiB9Ci0taW1wbF9zaHVmZmxlISB7IFt1 MzI7IDY0XSwgdTgsIGNyYXRlOjpjb2RlZ2VuOjp1OHg2NCB9Ci0tCi0taW1wbF9zaHVmZmxlISB7 IFt1MzI7IDJdLCBtOCwgY3JhdGU6OmNvZGVnZW46Om04eDIgfQotLWltcGxfc2h1ZmZsZSEgeyBb dTMyOyA0XSwgbTgsIGNyYXRlOjpjb2RlZ2VuOjptOHg0IH0KLS1pbXBsX3NodWZmbGUhIHsgW3Uz MjsgOF0sIG04LCBjcmF0ZTo6Y29kZWdlbjo6bTh4OCB9Ci0taW1wbF9zaHVmZmxlISB7IFt1MzI7 IDE2XSwgbTgsIGNyYXRlOjpjb2RlZ2VuOjptOHgxNiB9Ci0taW1wbF9zaHVmZmxlISB7IFt1MzI7 IDMyXSwgbTgsIGNyYXRlOjpjb2RlZ2VuOjptOHgzMiB9Ci0taW1wbF9zaHVmZmxlISB7IFt1MzI7 IDY0XSwgbTgsIGNyYXRlOjpjb2RlZ2VuOjptOHg2NCB9Ci0tCi0taW1wbF9zaHVmZmxlISB7IFt1 MzI7IDJdLCBpMTYsIGNyYXRlOjpjb2RlZ2VuOjppMTZ4MiB9Ci0taW1wbF9zaHVmZmxlISB7IFt1 MzI7IDRdLCBpMTYsIGNyYXRlOjpjb2RlZ2VuOjppMTZ4NCB9Ci0taW1wbF9zaHVmZmxlISB7IFt1 MzI7IDhdLCBpMTYsIGNyYXRlOjpjb2RlZ2VuOjppMTZ4OCB9Ci0taW1wbF9zaHVmZmxlISB7IFt1 MzI7IDE2XSwgaTE2LCBjcmF0ZTo6Y29kZWdlbjo6aTE2eDE2IH0KLS1pbXBsX3NodWZmbGUhIHsg W3UzMjsgMzJdLCBpMTYsIGNyYXRlOjpjb2RlZ2VuOjppMTZ4MzIgfQotLQotLWltcGxfc2h1ZmZs ZSEgeyBbdTMyOyAyXSwgdTE2LCBjcmF0ZTo6Y29kZWdlbjo6dTE2eDIgfQotLWltcGxfc2h1ZmZs ZSEgeyBbdTMyOyA0XSwgdTE2LCBjcmF0ZTo6Y29kZWdlbjo6dTE2eDQgfQotLWltcGxfc2h1ZmZs ZSEgeyBbdTMyOyA4XSwgdTE2LCBjcmF0ZTo6Y29kZWdlbjo6dTE2eDggfQotLWltcGxfc2h1ZmZs ZSEgeyBbdTMyOyAxNl0sIHUxNiwgY3JhdGU6OmNvZGVnZW46OnUxNngxNiB9Ci0taW1wbF9zaHVm ZmxlISB7IFt1MzI7IDMyXSwgdTE2LCBjcmF0ZTo6Y29kZWdlbjo6dTE2eDMyIH0KLS0KLS1pbXBs X3NodWZmbGUhIHsgW3UzMjsgMl0sIG0xNiwgY3JhdGU6OmNvZGVnZW46Om0xNngyIH0KLS1pbXBs X3NodWZmbGUhIHsgW3UzMjsgNF0sIG0xNiwgY3JhdGU6OmNvZGVnZW46Om0xNng0IH0KLS1pbXBs X3NodWZmbGUhIHsgW3UzMjsgOF0sIG0xNiwgY3JhdGU6OmNvZGVnZW46Om0xNng4IH0KLS1pbXBs X3NodWZmbGUhIHsgW3UzMjsgMTZdLCBtMTYsIGNyYXRlOjpjb2RlZ2VuOjptMTZ4MTYgfQotLQot LWltcGxfc2h1ZmZsZSEgeyBbdTMyOyAyXSwgaTMyLCBjcmF0ZTo6Y29kZWdlbjo6aTMyeDIgfQot LWltcGxfc2h1ZmZsZSEgeyBbdTMyOyA0XSwgaTMyLCBjcmF0ZTo6Y29kZWdlbjo6aTMyeDQgfQot LWltcGxfc2h1ZmZsZSEgeyBbdTMyOyA4XSwgaTMyLCBjcmF0ZTo6Y29kZWdlbjo6aTMyeDggfQot LWltcGxfc2h1ZmZsZSEgeyBbdTMyOyAxNl0sIGkzMiwgY3JhdGU6OmNvZGVnZW46OmkzMngxNiB9 Ci0tCi0taW1wbF9zaHVmZmxlISB7IFt1MzI7IDJdLCB1MzIsIGNyYXRlOjpjb2RlZ2VuOjp1MzJ4 MiB9Ci0taW1wbF9zaHVmZmxlISB7IFt1MzI7IDRdLCB1MzIsIGNyYXRlOjpjb2RlZ2VuOjp1MzJ4 NCB9Ci0taW1wbF9zaHVmZmxlISB7IFt1MzI7IDhdLCB1MzIsIGNyYXRlOjpjb2RlZ2VuOjp1MzJ4 OCB9Ci0taW1wbF9zaHVmZmxlISB7IFt1MzI7IDE2XSwgdTMyLCBjcmF0ZTo6Y29kZWdlbjo6dTMy eDE2IH0KLS0KLS1pbXBsX3NodWZmbGUhIHsgW3UzMjsgMl0sIGYzMiwgY3JhdGU6OmNvZGVnZW46 OmYzMngyIH0KLS1pbXBsX3NodWZmbGUhIHsgW3UzMjsgNF0sIGYzMiwgY3JhdGU6OmNvZGVnZW46 OmYzMng0IH0KLS1pbXBsX3NodWZmbGUhIHsgW3UzMjsgOF0sIGYzMiwgY3JhdGU6OmNvZGVnZW46 OmYzMng4IH0KLS1pbXBsX3NodWZmbGUhIHsgW3UzMjsgMTZdLCBmMzIsIGNyYXRlOjpjb2RlZ2Vu OjpmMzJ4MTYgfQotLQotLWltcGxfc2h1ZmZsZSEgeyBbdTMyOyAyXSwgbTMyLCBjcmF0ZTo6Y29k ZWdlbjo6bTMyeDIgfQotLWltcGxfc2h1ZmZsZSEgeyBbdTMyOyA0XSwgbTMyLCBjcmF0ZTo6Y29k ZWdlbjo6bTMyeDQgfQotLWltcGxfc2h1ZmZsZSEgeyBbdTMyOyA4XSwgbTMyLCBjcmF0ZTo6Y29k ZWdlbjo6bTMyeDggfQotLWltcGxfc2h1ZmZsZSEgeyBbdTMyOyAxNl0sIG0zMiwgY3JhdGU6OmNv ZGVnZW46Om0zMngxNiB9Ci0tCi0tLyogRklYTUU6IDY0LWJpdCBzaW5nbGUgZWxlbWVudCB2ZWN0 b3IKLS1pbXBsX3NodWZmbGUhIHsgW3UzMjsgMV0sIGk2NCwgY3JhdGU6OmNvZGVnZW46Omk2NHgx IH0KLS0qLwotLWltcGxfc2h1ZmZsZSEgeyBbdTMyOyAyXSwgaTY0LCBjcmF0ZTo6Y29kZWdlbjo6 aTY0eDIgfQotLWltcGxfc2h1ZmZsZSEgeyBbdTMyOyA0XSwgaTY0LCBjcmF0ZTo6Y29kZWdlbjo6 aTY0eDQgfQotLWltcGxfc2h1ZmZsZSEgeyBbdTMyOyA4XSwgaTY0LCBjcmF0ZTo6Y29kZWdlbjo6 aTY0eDggfQotLQotLS8qIEZJWE1FOiA2NC1iaXQgc2luZ2xlIGVsZW1lbnQgdmVjdG9yCi0taW1w bF9zaHVmZmxlISB7IFt1MzI7IDFdLCBpNjQsIGNyYXRlOjpjb2RlZ2VuOjppNjR4MSB9Ci0tKi8K LS1pbXBsX3NodWZmbGUhIHsgW3UzMjsgMl0sIHU2NCwgY3JhdGU6OmNvZGVnZW46OnU2NHgyIH0K LS1pbXBsX3NodWZmbGUhIHsgW3UzMjsgNF0sIHU2NCwgY3JhdGU6OmNvZGVnZW46OnU2NHg0IH0K LS1pbXBsX3NodWZmbGUhIHsgW3UzMjsgOF0sIHU2NCwgY3JhdGU6OmNvZGVnZW46OnU2NHg4IH0K LS0KLS0vKiBGSVhNRTogNjQtYml0IHNpbmdsZSBlbGVtZW50IHZlY3RvcgotLWltcGxfc2h1ZmZs ZSEgeyBbdTMyOyAxXSwgaTY0LCBjcmF0ZTo6Y29kZWdlbjo6aTY0eDEgfQotLSovCi0taW1wbF9z aHVmZmxlISB7IFt1MzI7IDJdLCBmNjQsIGNyYXRlOjpjb2RlZ2VuOjpmNjR4MiB9Ci0taW1wbF9z aHVmZmxlISB7IFt1MzI7IDRdLCBmNjQsIGNyYXRlOjpjb2RlZ2VuOjpmNjR4NCB9Ci0taW1wbF9z aHVmZmxlISB7IFt1MzI7IDhdLCBmNjQsIGNyYXRlOjpjb2RlZ2VuOjpmNjR4OCB9Ci0tCi0tLyog RklYTUU6IDY0LWJpdCBzaW5nbGUgZWxlbWVudCB2ZWN0b3IKLS1pbXBsX3NodWZmbGUhIHsgW3Uz MjsgMV0sIGk2NCwgY3JhdGU6OmNvZGVnZW46Omk2NHgxIH0KLS0qLwotLWltcGxfc2h1ZmZsZSEg eyBbdTMyOyAyXSwgbTY0LCBjcmF0ZTo6Y29kZWdlbjo6bTY0eDIgfQotLWltcGxfc2h1ZmZsZSEg eyBbdTMyOyA0XSwgbTY0LCBjcmF0ZTo6Y29kZWdlbjo6bTY0eDQgfQotLWltcGxfc2h1ZmZsZSEg eyBbdTMyOyA4XSwgbTY0LCBjcmF0ZTo6Y29kZWdlbjo6bTY0eDggfQotLQotLWltcGxfc2h1ZmZs ZSEgeyBbdTMyOyAyXSwgaXNpemUsIGNyYXRlOjpjb2RlZ2VuOjppc2l6ZXgyIH0KLS1pbXBsX3No dWZmbGUhIHsgW3UzMjsgNF0sIGlzaXplLCBjcmF0ZTo6Y29kZWdlbjo6aXNpemV4NCB9Ci0taW1w bF9zaHVmZmxlISB7IFt1MzI7IDhdLCBpc2l6ZSwgY3JhdGU6OmNvZGVnZW46OmlzaXpleDggfQot LQotLWltcGxfc2h1ZmZsZSEgeyBbdTMyOyAyXSwgdXNpemUsIGNyYXRlOjpjb2RlZ2VuOjp1c2l6 ZXgyIH0KLS1pbXBsX3NodWZmbGUhIHsgW3UzMjsgNF0sIHVzaXplLCBjcmF0ZTo6Y29kZWdlbjo6 dXNpemV4NCB9Ci0taW1wbF9zaHVmZmxlISB7IFt1MzI7IDhdLCB1c2l6ZSwgY3JhdGU6OmNvZGVn ZW46OnVzaXpleDggfQotLQotLWltcGxfc2h1ZmZsZSEgeyBbdTMyOyAyXSwgbXNpemUsIGNyYXRl Ojpjb2RlZ2VuOjptc2l6ZXgyIH0KLS1pbXBsX3NodWZmbGUhIHsgW3UzMjsgNF0sIG1zaXplLCBj cmF0ZTo6Y29kZWdlbjo6bXNpemV4NCB9Ci0taW1wbF9zaHVmZmxlISB7IFt1MzI7IDhdLCBtc2l6 ZSwgY3JhdGU6OmNvZGVnZW46Om1zaXpleDggfQotLQotLWltcGw8VD4gU2VhbDxbdTMyOyAyXT4g Zm9yICpjb25zdCBUIHt9Ci0taW1wbDxUPiBTaHVmZmxlPFt1MzI7IDJdPiBmb3IgKmNvbnN0IFQg ewotLSAgICB0eXBlIE91dHB1dCA9IGNyYXRlOjpjb2RlZ2VuOjpjcHRyeDI8VD47Ci0tfQotLWlt cGw8VD4gU2VhbDxbdTMyOyA0XT4gZm9yICpjb25zdCBUIHt9Ci0taW1wbDxUPiBTaHVmZmxlPFt1 MzI7IDRdPiBmb3IgKmNvbnN0IFQgewotLSAgICB0eXBlIE91dHB1dCA9IGNyYXRlOjpjb2RlZ2Vu OjpjcHRyeDQ8VD47Ci0tfQotLWltcGw8VD4gU2VhbDxbdTMyOyA4XT4gZm9yICpjb25zdCBUIHt9 Ci0taW1wbDxUPiBTaHVmZmxlPFt1MzI7IDhdPiBmb3IgKmNvbnN0IFQgewotLSAgICB0eXBlIE91 dHB1dCA9IGNyYXRlOjpjb2RlZ2VuOjpjcHRyeDg8VD47Ci0tfQotLQotLWltcGw8VD4gU2VhbDxb dTMyOyAyXT4gZm9yICptdXQgVCB7fQotLWltcGw8VD4gU2h1ZmZsZTxbdTMyOyAyXT4gZm9yICpt dXQgVCB7Ci0tICAgIHR5cGUgT3V0cHV0ID0gY3JhdGU6OmNvZGVnZW46Om1wdHJ4MjxUPjsKLS19 Ci0taW1wbDxUPiBTZWFsPFt1MzI7IDRdPiBmb3IgKm11dCBUIHt9Ci0taW1wbDxUPiBTaHVmZmxl PFt1MzI7IDRdPiBmb3IgKm11dCBUIHsKLS0gICAgdHlwZSBPdXRwdXQgPSBjcmF0ZTo6Y29kZWdl bjo6bXB0cng0PFQ+OwotLX0KLS1pbXBsPFQ+IFNlYWw8W3UzMjsgOF0+IGZvciAqbXV0IFQge30K LS1pbXBsPFQ+IFNodWZmbGU8W3UzMjsgOF0+IGZvciAqbXV0IFQgewotLSAgICB0eXBlIE91dHB1 dCA9IGNyYXRlOjpjb2RlZ2VuOjptcHRyeDg8VD47Ci0tfQotLQotLWltcGxfc2h1ZmZsZSEgeyBb dTMyOyAxXSwgaTEyOCwgY3JhdGU6OmNvZGVnZW46OmkxMjh4MSB9Ci0taW1wbF9zaHVmZmxlISB7 IFt1MzI7IDJdLCBpMTI4LCBjcmF0ZTo6Y29kZWdlbjo6aTEyOHgyIH0KLS1pbXBsX3NodWZmbGUh IHsgW3UzMjsgNF0sIGkxMjgsIGNyYXRlOjpjb2RlZ2VuOjppMTI4eDQgfQotLQotLWltcGxfc2h1 ZmZsZSEgeyBbdTMyOyAxXSwgdTEyOCwgY3JhdGU6OmNvZGVnZW46OnUxMjh4MSB9Ci0taW1wbF9z aHVmZmxlISB7IFt1MzI7IDJdLCB1MTI4LCBjcmF0ZTo6Y29kZWdlbjo6dTEyOHgyIH0KLS1pbXBs X3NodWZmbGUhIHsgW3UzMjsgNF0sIHUxMjgsIGNyYXRlOjpjb2RlZ2VuOjp1MTI4eDQgfQotLQot LWltcGxfc2h1ZmZsZSEgeyBbdTMyOyAxXSwgbTEyOCwgY3JhdGU6OmNvZGVnZW46Om0xMjh4MSB9 Ci0taW1wbF9zaHVmZmxlISB7IFt1MzI7IDJdLCBtMTI4LCBjcmF0ZTo6Y29kZWdlbjo6bTEyOHgy IH0KLS1pbXBsX3NodWZmbGUhIHsgW3UzMjsgNF0sIG0xMjgsIGNyYXRlOjpjb2RlZ2VuOjptMTI4 eDQgfQotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVn ZW4vc2h1ZmZsZTFfZHluLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29k ZWdlbi9zaHVmZmxlMV9keW4ucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQv c3JjL2NvZGVnZW4vc2h1ZmZsZTFfZHluLnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAw ICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3No dWZmbGUxX2R5bi5ycwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEs NDA4ICswLDAgQEAKLS0vLyEgU2h1ZmZsZSB2ZWN0b3IgbGFuZXMgd2l0aCBydW4tdGltZSBpbmRp Y2VzLgotLQotLXVzZSBjcmF0ZTo6KjsKLS0KLS1wdWIgdHJhaXQgU2h1ZmZsZTFEeW4gewotLSAg ICB0eXBlIEluZGljZXM7Ci0tICAgIGZuIHNodWZmbGUxX2R5bihzZWxmLCBfOiBTZWxmOjpJbmRp Y2VzKSAtPiBTZWxmOwotLX0KLS0KLS0vLyBGYWxsYmFjayBpbXBsZW1lbnRhdGlvbgotLW1hY3Jv X3J1bGVzISBpbXBsX2ZhbGxiYWNrIHsKLS0gICAgKCRpZDppZGVudCkgPT4gewotLSAgICAgICAg aW1wbCBTaHVmZmxlMUR5biBmb3IgJGlkIHsKLS0gICAgICAgICAgICB0eXBlIEluZGljZXMgPSBT ZWxmOwotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIGZuIHNodWZmbGUxX2R5 bihzZWxmLCBpbmRpY2VzOiBTZWxmOjpJbmRpY2VzKSAtPiBTZWxmIHsKLS0gICAgICAgICAgICAg ICAgbGV0IG11dCByZXN1bHQgPSBTZWxmOjpzcGxhdCgwKTsKLS0gICAgICAgICAgICAgICAgZm9y IGkgaW4gMC4uJGlkOjpsYW5lcygpIHsKLS0gICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IHJl c3VsdC5yZXBsYWNlKGksIHNlbGYuZXh0cmFjdChpbmRpY2VzLmV4dHJhY3QoaSkgYXMgdXNpemUp KTsKLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICByZXN1bHQKLS0gICAgICAg ICAgICB9Ci0tICAgICAgICB9Ci0tICAgIH07Ci0tfQotLQotLW1hY3JvX3J1bGVzISBpbXBsX3No dWZmbGUxX2R5biB7Ci0tICAgICh1OHg4KSA9PiB7Ci0tICAgICAgICBjZmdfaWYhIHsKLS0gICAg ICAgICAgICBpZiAjW2NmZyhhbGwoCi0tICAgICAgICAgICAgICAgIGFueSgKLS0gICAgICAgICAg ICAgICAgICAgIGFsbCh0YXJnZXRfYXJjaCA9ICJhYXJjaDY0IiwgdGFyZ2V0X2ZlYXR1cmUgPSAi bmVvbiIpLAotLSAgICAgICAgICAgICAgICAgICAgYWxsKHRhcmdldF9hcmNoID0gImRvZXNub3Rl eGlzdCIsIHRhcmdldF9mZWF0dXJlID0gInY3IiwKLS0gICAgICAgICAgICAgICAgICAgICAgICB0 YXJnZXRfZmVhdHVyZSA9ICJuZW9uIikKLS0gICAgICAgICAgICAgICAgKSwKLS0gICAgICAgICAg ICAgICAgYW55KGZlYXR1cmUgPSAiY29yZV9hcmNoIiwgbGliY29yZV9uZW9uKQotLSAgICAgICAg ICAgICkKLS0gICAgICAgICAgICApXSB7Ci0tICAgICAgICAgICAgICAgIGltcGwgU2h1ZmZsZTFE eW4gZm9yIHU4eDggewotLSAgICAgICAgICAgICAgICAgICAgdHlwZSBJbmRpY2VzID0gU2VsZjsK LS0gICAgICAgICAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgICAgICAgICAgZm4g c2h1ZmZsZTFfZHluKHNlbGYsIGluZGljZXM6IFNlbGY6OkluZGljZXMpIC0+IFNlbGYgewotLSAg ICAgICAgICAgICAgICAgICAgICAgICNbY2ZnKHRhcmdldF9hcmNoID0gImFhcmNoNjQiKV0KLS0g ICAgICAgICAgICAgICAgICAgICAgICB1c2UgY3JhdGU6OmFyY2g6OmFhcmNoNjQ6OnZ0YmwxX3U4 OwotLSAgICAgICAgICAgICAgICAgICAgICAgICNbY2ZnKHRhcmdldF9hcmNoID0gImRvZXNub3Rl eGlzdCIpXQotLSAgICAgICAgICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6YXJjaDo6YXJtOjp2 dGJsMV91ODsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIGlzIHNhZmUgYmVj YXVzZSB0aGUgYmluYXJ5IGlzIGNvbXBpbGVkIHdpdGgKLS0gICAgICAgICAgICAgICAgICAgICAg ICAvLyBuZW9uIGVuYWJsZWQgYXQgY29tcGlsZS10aW1lIGFuZCBjYW4gdGhlcmVmb3JlIG9ubHkK LS0gICAgICAgICAgICAgICAgICAgICAgICAvLyBydW4gb24gQ1BVcyB0aGF0IGhhdmUgaXQgZW5h YmxlZC4KLS0gICAgICAgICAgICAgICAgICAgICAgICB1bnNhZmUgewotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICBTaW1kKG1lbTo6dHJhbnNtdXRlKAotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgdnRibDFfdTgobWVtOjp0cmFuc211dGUoc2VsZi4wKSwKLS0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JhdGU6Om1lbTo6dHJhbnNtdXRlKGluZGlj ZXMuMCkpCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICkpCi0tICAgICAgICAgICAgICAg ICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICB9Ci0t ICAgICAgICAgICAgfSBlbHNlIHsKLS0gICAgICAgICAgICAgICAgaW1wbF9mYWxsYmFjayEodTh4 OCk7Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICB9OwotLSAgICAodTh4MTYpID0+ IHsKLS0gICAgICAgIGNmZ19pZiEgewotLSAgICAgICAgICAgIGlmICNbY2ZnKGFsbChhbnkodGFy Z2V0X2FyY2ggPSAieDg2IiwgdGFyZ2V0X2FyY2ggPSAieDg2XzY0IiksCi0tICAgICAgICAgICAg ICAgICAgICAgICAgIHRhcmdldF9mZWF0dXJlID0gInNzc2UzIikpXSB7Ci0tICAgICAgICAgICAg ICAgIGltcGwgU2h1ZmZsZTFEeW4gZm9yIHU4eDE2IHsKLS0gICAgICAgICAgICAgICAgICAgIHR5 cGUgSW5kaWNlcyA9IFNlbGY7Ci0tICAgICAgICAgICAgICAgICAgICAjW2lubGluZV0KLS0gICAg ICAgICAgICAgICAgICAgIGZuIHNodWZmbGUxX2R5bihzZWxmLCBpbmRpY2VzOiBTZWxmOjpJbmRp Y2VzKSAtPiBTZWxmIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAjW2NmZyh0YXJnZXRfYXJj aCA9ICJ4ODYiKV0KLS0gICAgICAgICAgICAgICAgICAgICAgICB1c2UgY3JhdGU6OmFyY2g6Ong4 Njo6X21tX3NodWZmbGVfZXBpODsKLS0gICAgICAgICAgICAgICAgICAgICAgICAjW2NmZyh0YXJn ZXRfYXJjaCA9ICJ4ODZfNjQiKV0KLS0gICAgICAgICAgICAgICAgICAgICAgICB1c2UgY3JhdGU6 OmFyY2g6Ong4Nl82NDo6X21tX3NodWZmbGVfZXBpODsKLS0gICAgICAgICAgICAgICAgICAgICAg ICAvLyBUaGlzIGlzIHNhZmUgYmVjYXVzZSB0aGUgYmluYXJ5IGlzIGNvbXBpbGVkIHdpdGgKLS0g ICAgICAgICAgICAgICAgICAgICAgICAvLyBzc3NlMyBlbmFibGVkIGF0IGNvbXBpbGUtdGltZSBh bmQgY2FuIHRoZXJlZm9yZSBvbmx5Ci0tICAgICAgICAgICAgICAgICAgICAgICAgLy8gcnVuIG9u IENQVXMgdGhhdCBoYXZlIGl0IGVuYWJsZWQuCi0tICAgICAgICAgICAgICAgICAgICAgICAgdW5z YWZlIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgU2ltZChtZW06OnRyYW5zbXV0ZSgK LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9tbV9zaHVmZmxlX2VwaTgobWVtOjp0 cmFuc211dGUoc2VsZi4wKSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBjcmF0ZTo6bWVtOjp0cmFuc211dGUoaW5kaWNlcykpCi0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgICkpCi0tICAgICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAg ICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgfSBlbHNlIGlm ICNbY2ZnKGFsbCh0YXJnZXRfYXJjaCA9ICJhYXJjaDY0IiwgdGFyZ2V0X2ZlYXR1cmUgPSAibmVv biIsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbnkoZmVhdHVyZSA9ICJjb3Jl X2FyY2giLCBsaWJjb3JlX25lb24pKSldIHsKLS0gICAgICAgICAgICAgICAgaW1wbCBTaHVmZmxl MUR5biBmb3IgdTh4MTYgewotLSAgICAgICAgICAgICAgICAgICAgdHlwZSBJbmRpY2VzID0gU2Vs ZjsKLS0gICAgICAgICAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgICAgICAgICAg Zm4gc2h1ZmZsZTFfZHluKHNlbGYsIGluZGljZXM6IFNlbGY6OkluZGljZXMpIC0+IFNlbGYgewot LSAgICAgICAgICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6YXJjaDo6YWFyY2g2NDo6dnF0Ymwx cV91ODsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIGlzIHNhZmUgYmVjYXVz ZSB0aGUgYmluYXJ5IGlzIGNvbXBpbGVkIHdpdGgKLS0gICAgICAgICAgICAgICAgICAgICAgICAv LyBuZW9uIGVuYWJsZWQgYXQgY29tcGlsZS10aW1lIGFuZCBjYW4gdGhlcmVmb3JlIG9ubHkKLS0g ICAgICAgICAgICAgICAgICAgICAgICAvLyBydW4gb24gQ1BVcyB0aGF0IGhhdmUgaXQgZW5hYmxl ZC4KLS0gICAgICAgICAgICAgICAgICAgICAgICB1bnNhZmUgewotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICBTaW1kKG1lbTo6dHJhbnNtdXRlKAotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgdnF0YmwxcV91OChtZW06OnRyYW5zbXV0ZShzZWxmLjApLAotLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyYXRlOjptZW06OnRyYW5zbXV0ZShpbmRp Y2VzLjApKQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICApKQotLSAgICAgICAgICAgICAg ICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgfQot LSAgICAgICAgICAgIH0gZWxzZSBpZiAjW2NmZyhhbGwodGFyZ2V0X2FyY2ggPSAiZG9lc25vdGV4 aXN0IiwgdGFyZ2V0X2ZlYXR1cmUgPSAidjciLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdGFyZ2V0X2ZlYXR1cmUgPSAibmVvbiIsCi0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBhbnkoZmVhdHVyZSA9ICJjb3JlX2FyY2giLCBsaWJjb3JlX25lb24pKSldIHsKLS0g ICAgICAgICAgICAgICAgaW1wbCBTaHVmZmxlMUR5biBmb3IgdTh4MTYgewotLSAgICAgICAgICAg ICAgICAgICAgdHlwZSBJbmRpY2VzID0gU2VsZjsKLS0gICAgICAgICAgICAgICAgICAgICNbaW5s aW5lXQotLSAgICAgICAgICAgICAgICAgICAgZm4gc2h1ZmZsZTFfZHluKHNlbGYsIGluZGljZXM6 IFNlbGY6OkluZGljZXMpIC0+IFNlbGYgewotLSAgICAgICAgICAgICAgICAgICAgICAgIHVzZSBj cmF0ZTo6YXJjaDo6YXJtOjp2dGJsMl91ODsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAv LyBUaGlzIGlzIHNhZmUgYmVjYXVzZSB0aGUgYmluYXJ5IGlzIGNvbXBpbGVkIHdpdGgKLS0gICAg ICAgICAgICAgICAgICAgICAgICAvLyBuZW9uIGVuYWJsZWQgYXQgY29tcGlsZS10aW1lIGFuZCBj YW4gdGhlcmVmb3JlIG9ubHkKLS0gICAgICAgICAgICAgICAgICAgICAgICAvLyBydW4gb24gQ1BV cyB0aGF0IGhhdmUgaXQgZW5hYmxlZC4KLS0gICAgICAgICAgICAgICAgICAgICAgICB1bnNhZmUg ewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bmlvbiBVIHsKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGo6IHU4eDE2LAotLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgczogKHU4eDgsIHU4eDgpLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0t Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCAoaTAsIGkxKSA9IFUgeyBqOiB5IH0u czsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHIwID0gdnRibDJfdTgoCi0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZW06OnRyYW5zbXV0ZSh4KSwKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyYXRlOjptZW06OnRyYW5zbXV0ZShpMCkKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgbGV0IHIxID0gdnRibDJfdTgoCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBt ZW06OnRyYW5zbXV0ZSh4KSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyYXRl OjptZW06OnRyYW5zbXV0ZShpMSkKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKLS0K LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHIgPSBVIHsgczogKHIwLCByMSkgfS5q OwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBTaW1kKG1lbTo6dHJhbnNtdXRlKHIp KQotLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgIH0KLS0g ICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgIH0gZWxzZSB7Ci0tICAgICAgICAgICAgICAg IGltcGxfZmFsbGJhY2shKHU4eDE2KTsKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAg IH07Ci0tICAgICh1MTZ4OCkgPT4gewotLSAgICAgICAgaW1wbCBTaHVmZmxlMUR5biBmb3IgdTE2 eDggewotLSAgICAgICAgICAgIHR5cGUgSW5kaWNlcyA9IFNlbGY7Ci0tICAgICAgICAgICAgI1tp bmxpbmVdCi0tICAgICAgICAgICAgZm4gc2h1ZmZsZTFfZHluKHNlbGYsIGluZGljZXM6IFNlbGY6 OkluZGljZXMpIC0+IFNlbGYgewotLSAgICAgICAgICAgICAgICBsZXQgaW5kaWNlczogdTh4OCA9 IChpbmRpY2VzICogMikuY2FzdCgpOwotLSAgICAgICAgICAgICAgICBsZXQgaW5kaWNlczogdTh4 MTYgPSBzaHVmZmxlIShpbmRpY2VzLCBbMCwgMCwgMSwgMSwgMiwgMiwgMywgMywgNCwgNCwgNSwg NSwgNiwgNiwgNywgN10pOwotLSAgICAgICAgICAgICAgICBsZXQgdiA9IHU4eDE2OjpuZXcoMCwg MSwgMCwgMSwgMCwgMSwgMCwgMSwgMCwgMSwgMCwgMSwgMCwgMSwgMCwgMSk7Ci0tICAgICAgICAg ICAgICAgIGxldCBpbmRpY2VzID0gaW5kaWNlcyArIHY7Ci0tICAgICAgICAgICAgICAgIHVuc2Fm ZSB7Ci0tICAgICAgICAgICAgICAgICAgICBsZXQgczogdTh4MTYgPSBjcmF0ZTo6bWVtOjp0cmFu c211dGUoc2VsZik7Ci0tICAgICAgICAgICAgICAgICAgICBjcmF0ZTo6bWVtOjp0cmFuc211dGUo cy5zaHVmZmxlMV9keW4oaW5kaWNlcykpCi0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAg ICB9Ci0tICAgICAgICB9Ci0tICAgIH07Ci0tICAgICh1MzJ4NCkgPT4gewotLSAgICAgICAgY2Zn X2lmISB7Ci0tICAgICAgICAgICAgaWYgI1tjZmcoYWxsKGFueSh0YXJnZXRfYXJjaCA9ICJ4ODYi LCB0YXJnZXRfYXJjaCA9ICJ4ODZfNjQiKSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgdGFy Z2V0X2ZlYXR1cmUgPSAiYXZ4IikpXSB7Ci0tICAgICAgICAgICAgICAgIGltcGwgU2h1ZmZsZTFE eW4gZm9yIHUzMng0IHsKLS0gICAgICAgICAgICAgICAgICAgIHR5cGUgSW5kaWNlcyA9IFNlbGY7 Ci0tICAgICAgICAgICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICAgICAgICAgIGZu IHNodWZmbGUxX2R5bihzZWxmLCBpbmRpY2VzOiBTZWxmOjpJbmRpY2VzKSAtPiBTZWxmIHsKLS0g ICAgICAgICAgICAgICAgICAgICAgICAjW2NmZyh0YXJnZXRfYXJjaCA9ICJ4ODYiKV0KLS0gICAg ICAgICAgICAgICAgICAgICAgICB1c2UgY3JhdGU6OmFyY2g6Ong4Njo6e19tbV9wZXJtdXRldmFy X3BzfTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAjW2NmZyh0YXJnZXRfYXJjaCA9ICJ4ODZf NjQiKV0KLS0gICAgICAgICAgICAgICAgICAgICAgICB1c2UgY3JhdGU6OmFyY2g6Ong4Nl82NDo6 e19tbV9wZXJtdXRldmFyX3BzfTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICB1bnNhZmUg ewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmF0ZTo6bWVtOjp0cmFuc211dGUoCi0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfbW1fcGVybXV0ZXZhcl9wcygKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmF0ZTo6bWVtOjp0cmFuc211dGUoc2Vs Zi4wKSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmF0ZTo6bWVtOjp0 cmFuc211dGUoaW5kaWNlcy4wKQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICApCi0tICAgICAgICAgICAgICAgICAgICAgICAg fQotLSAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAg ICAgfSBlbHNlIHsKLS0gICAgICAgICAgICAgICAgaW1wbCBTaHVmZmxlMUR5biBmb3IgdTMyeDQg ewotLSAgICAgICAgICAgICAgICAgICAgdHlwZSBJbmRpY2VzID0gU2VsZjsKLS0gICAgICAgICAg ICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgICAgICAgICAgZm4gc2h1ZmZsZTFfZHlu KHNlbGYsIGluZGljZXM6IFNlbGY6OkluZGljZXMpIC0+IFNlbGYgewotLSAgICAgICAgICAgICAg ICAgICAgICAgIGxldCBpbmRpY2VzOiB1OHg0ID0gKGluZGljZXMgKiA0KS5jYXN0KCk7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgbGV0IGluZGljZXM6IHU4eDE2ID0gc2h1ZmZsZSEoCi0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGluZGljZXMsCi0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFswLCAwLCAwLCAwLCAxLCAxLCAxLCAxLCAyLCAyLCAyLCAyLCAzLCAzLCAzLCAzXQot LSAgICAgICAgICAgICAgICAgICAgICAgICk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0 IHYgPSB1OHgxNjo6bmV3KAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAxLCAyLCAz LCAwLCAxLCAyLCAzLCAwLCAxLCAyLCAzLCAwLCAxLCAyLCAzCi0tICAgICAgICAgICAgICAgICAg ICAgICAgKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgaW5kaWNlcyA9IGluZGljZXMg KyB2OwotLSAgICAgICAgICAgICAgICAgICAgICAgIHVuc2FmZSB7Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGxldCBzOiB1OHgxNiA9Y3JhdGU6Om1lbTo6dHJhbnNtdXRlKHNlbGYpOwot LSAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyYXRlOjptZW06OnRyYW5zbXV0ZShzLnNodWZm bGUxX2R5bihpbmRpY2VzKSkKLS0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAg ICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICB9Ci0tICAgICAg ICB9Ci0tICAgIH07Ci0tICAgICh1NjR4MikgPT4gewotLSAgICAgICAgY2ZnX2lmISB7Ci0tICAg ICAgICAgICAgaWYgI1tjZmcoYWxsKGFueSh0YXJnZXRfYXJjaCA9ICJ4ODYiLCB0YXJnZXRfYXJj aCA9ICJ4ODZfNjQiKSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0X2ZlYXR1cmUg PSAiYXZ4IikpXSB7Ci0tICAgICAgICAgICAgICAgIGltcGwgU2h1ZmZsZTFEeW4gZm9yIHU2NHgy IHsKLS0gICAgICAgICAgICAgICAgICAgIHR5cGUgSW5kaWNlcyA9IFNlbGY7Ci0tICAgICAgICAg ICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICAgICAgICAgIGZuIHNodWZmbGUxX2R5 bihzZWxmLCBpbmRpY2VzOiBTZWxmOjpJbmRpY2VzKSAtPiBTZWxmIHsKLS0gICAgICAgICAgICAg ICAgICAgICAgICAjW2NmZyh0YXJnZXRfYXJjaCA9ICJ4ODYiKV0KLS0gICAgICAgICAgICAgICAg ICAgICAgICB1c2UgY3JhdGU6OmFyY2g6Ong4Njo6e19tbV9wZXJtdXRldmFyX3BkfTsKLS0gICAg ICAgICAgICAgICAgICAgICAgICAjW2NmZyh0YXJnZXRfYXJjaCA9ICJ4ODZfNjQiKV0KLS0gICAg ICAgICAgICAgICAgICAgICAgICB1c2UgY3JhdGU6OmFyY2g6Ong4Nl82NDo6e19tbV9wZXJtdXRl dmFyX3BkfTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAvLyBfbW1fcGVybXV0ZXZhcl9wZCB1 c2VzIHRoZSBfc2Vjb25kXyBiaXQgb2YgZWFjaAotLSAgICAgICAgICAgICAgICAgICAgICAgIC8v IGVsZW1lbnQgdG8gcGVyZm9ybSB0aGUgc2VsZWN0aW9uLCB0aGF0IGlzOiAwYjAwID0+IDAsCi0t ICAgICAgICAgICAgICAgICAgICAgICAgLy8gMGIxMCA9PiAxOgotLSAgICAgICAgICAgICAgICAg ICAgICAgIGxldCBpbmRpY2VzID0gaW5kaWNlcyA8PCAxOwotLSAgICAgICAgICAgICAgICAgICAg ICAgIHVuc2FmZSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyYXRlOjptZW06OnRy YW5zbXV0ZSgKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9tbV9wZXJtdXRldmFy X3BkKAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyYXRlOjptZW06OnRy YW5zbXV0ZShzZWxmKSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmF0 ZTo6bWVtOjp0cmFuc211dGUoaW5kaWNlcykKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICkKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKQotLSAgICAgICAgICAgICAgICAg ICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgfQotLSAg ICAgICAgICAgIH0gZWxzZSB7Ci0tICAgICAgICAgICAgICAgIGltcGwgU2h1ZmZsZTFEeW4gZm9y IHU2NHgyIHsKLS0gICAgICAgICAgICAgICAgICAgIHR5cGUgSW5kaWNlcyA9IFNlbGY7Ci0tICAg ICAgICAgICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICAgICAgICAgIGZuIHNodWZm bGUxX2R5bihzZWxmLCBpbmRpY2VzOiBTZWxmOjpJbmRpY2VzKSAtPiBTZWxmIHsKLS0gICAgICAg ICAgICAgICAgICAgICAgICBsZXQgaW5kaWNlczogdTh4MiA9IChpbmRpY2VzICogOCkuY2FzdCgp OwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBpbmRpY2VzOiB1OHgxNiA9IHNodWZmbGUh KAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRpY2VzLAotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICBbMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMSwgMSwgMSwgMSwgMSwgMSwg MSwgMV0KLS0gICAgICAgICAgICAgICAgICAgICAgICApOwotLSAgICAgICAgICAgICAgICAgICAg ICAgIGxldCB2ID0gdTh4MTY6Om5ldygKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwg MSwgMiwgMywgNCwgNSwgNiwgNywgMCwgMSwgMiwgMywgNCwgNSwgNiwgNwotLSAgICAgICAgICAg ICAgICAgICAgICAgICk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGluZGljZXMgPSBp bmRpY2VzICsgdjsKLS0gICAgICAgICAgICAgICAgICAgICAgICB1bnNhZmUgewotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICBsZXQgczogdTh4MTYgPWNyYXRlOjptZW06OnRyYW5zbXV0ZShz ZWxmKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICBjcmF0ZTo6bWVtOjp0cmFuc211dGUo cy5zaHVmZmxlMV9keW4oaW5kaWNlcykpCi0tICAgICAgICAgICAgICAgICAgICAgICAgfQotLSAg ICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgfQot LSAgICAgICAgfQotLSAgICB9OwotLSAgICAodTEyOHgxKSA9PiB7Ci0tICAgICAgICBpbXBsIFNo dWZmbGUxRHluIGZvciB1MTI4eDEgewotLSAgICAgICAgICAgIHR5cGUgSW5kaWNlcyA9IFNlbGY7 Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgZm4gc2h1ZmZsZTFfZHluKHNl bGYsIF9pbmRpY2VzOiBTZWxmOjpJbmRpY2VzKSAtPiBTZWxmIHsKLS0gICAgICAgICAgICAgICAg c2VsZgotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgfTsKLS0gICAgKCRpZDppZGVu dCkgPT4gewotLSAgICAgICAgaW1wbF9mYWxsYmFjayEoJGlkKTsKLS0gICAgfTsKLS19Ci0tCi0t aW1wbF9zaHVmZmxlMV9keW4hKHU4eDIpOwotLWltcGxfc2h1ZmZsZTFfZHluISh1OHg0KTsKLS1p bXBsX3NodWZmbGUxX2R5biEodTh4OCk7Ci0taW1wbF9zaHVmZmxlMV9keW4hKHU4eDE2KTsKLS1p bXBsX3NodWZmbGUxX2R5biEodTh4MzIpOwotLWltcGxfc2h1ZmZsZTFfZHluISh1OHg2NCk7Ci0t Ci0taW1wbF9zaHVmZmxlMV9keW4hKHUxNngyKTsKLS1pbXBsX3NodWZmbGUxX2R5biEodTE2eDQp OwotLWltcGxfc2h1ZmZsZTFfZHluISh1MTZ4OCk7Ci0taW1wbF9zaHVmZmxlMV9keW4hKHUxNngx Nik7Ci0taW1wbF9zaHVmZmxlMV9keW4hKHUxNngzMik7Ci0tCi0taW1wbF9zaHVmZmxlMV9keW4h KHUzMngyKTsKLS1pbXBsX3NodWZmbGUxX2R5biEodTMyeDQpOwotLWltcGxfc2h1ZmZsZTFfZHlu ISh1MzJ4OCk7Ci0taW1wbF9zaHVmZmxlMV9keW4hKHUzMngxNik7Ci0tCi0taW1wbF9zaHVmZmxl MV9keW4hKHU2NHgyKTsKLS1pbXBsX3NodWZmbGUxX2R5biEodTY0eDQpOwotLWltcGxfc2h1ZmZs ZTFfZHluISh1NjR4OCk7Ci0tCi0taW1wbF9zaHVmZmxlMV9keW4hKHVzaXpleDIpOwotLWltcGxf c2h1ZmZsZTFfZHluISh1c2l6ZXg0KTsKLS1pbXBsX3NodWZmbGUxX2R5biEodXNpemV4OCk7Ci0t Ci0taW1wbF9zaHVmZmxlMV9keW4hKHUxMjh4MSk7Ci0taW1wbF9zaHVmZmxlMV9keW4hKHUxMjh4 Mik7Ci0taW1wbF9zaHVmZmxlMV9keW4hKHUxMjh4NCk7Ci0tCi0tLy8gSW1wbGVtZW50YXRpb24g Zm9yIG5vbi11bnNpZ25lZCB2ZWN0b3IgdHlwZXMKLS1tYWNyb19ydWxlcyEgaW1wbF9zaHVmZmxl MV9keW5fbm9uX3UgewotLSAgICAoJGlkOmlkZW50LCAkdWlkOmlkZW50KSA9PiB7Ci0tICAgICAg ICBpbXBsIFNodWZmbGUxRHluIGZvciAkaWQgewotLSAgICAgICAgICAgIHR5cGUgSW5kaWNlcyA9 ICR1aWQ7Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgZm4gc2h1ZmZsZTFf ZHluKHNlbGYsIGluZGljZXM6IFNlbGY6OkluZGljZXMpIC0+IFNlbGYgewotLSAgICAgICAgICAg ICAgICB1bnNhZmUgewotLSAgICAgICAgICAgICAgICAgICAgbGV0IHU6ICR1aWQgPSBjcmF0ZTo6 bWVtOjp0cmFuc211dGUoc2VsZik7Ci0tICAgICAgICAgICAgICAgICAgICBjcmF0ZTo6bWVtOjp0 cmFuc211dGUodS5zaHVmZmxlMV9keW4oaW5kaWNlcykpCi0tICAgICAgICAgICAgICAgIH0KLS0g ICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgIH07Ci0tfQotLQotLWltcGxfc2h1ZmZsZTFf ZHluX25vbl91IShpOHgyLCB1OHgyKTsKLS1pbXBsX3NodWZmbGUxX2R5bl9ub25fdSEoaTh4NCwg dTh4NCk7Ci0taW1wbF9zaHVmZmxlMV9keW5fbm9uX3UhKGk4eDgsIHU4eDgpOwotLWltcGxfc2h1 ZmZsZTFfZHluX25vbl91IShpOHgxNiwgdTh4MTYpOwotLWltcGxfc2h1ZmZsZTFfZHluX25vbl91 IShpOHgzMiwgdTh4MzIpOwotLWltcGxfc2h1ZmZsZTFfZHluX25vbl91IShpOHg2NCwgdTh4NjQp OwotLQotLWltcGxfc2h1ZmZsZTFfZHluX25vbl91IShpMTZ4MiwgdTE2eDIpOwotLWltcGxfc2h1 ZmZsZTFfZHluX25vbl91IShpMTZ4NCwgdTE2eDQpOwotLWltcGxfc2h1ZmZsZTFfZHluX25vbl91 IShpMTZ4OCwgdTE2eDgpOwotLWltcGxfc2h1ZmZsZTFfZHluX25vbl91IShpMTZ4MTYsIHUxNngx Nik7Ci0taW1wbF9zaHVmZmxlMV9keW5fbm9uX3UhKGkxNngzMiwgdTE2eDMyKTsKLS0KLS1pbXBs X3NodWZmbGUxX2R5bl9ub25fdSEoaTMyeDIsIHUzMngyKTsKLS1pbXBsX3NodWZmbGUxX2R5bl9u b25fdSEoaTMyeDQsIHUzMng0KTsKLS1pbXBsX3NodWZmbGUxX2R5bl9ub25fdSEoaTMyeDgsIHUz Mng4KTsKLS1pbXBsX3NodWZmbGUxX2R5bl9ub25fdSEoaTMyeDE2LCB1MzJ4MTYpOwotLQotLWlt cGxfc2h1ZmZsZTFfZHluX25vbl91IShpNjR4MiwgdTY0eDIpOwotLWltcGxfc2h1ZmZsZTFfZHlu X25vbl91IShpNjR4NCwgdTY0eDQpOwotLWltcGxfc2h1ZmZsZTFfZHluX25vbl91IShpNjR4OCwg dTY0eDgpOwotLQotLWltcGxfc2h1ZmZsZTFfZHluX25vbl91IShpc2l6ZXgyLCB1c2l6ZXgyKTsK LS1pbXBsX3NodWZmbGUxX2R5bl9ub25fdSEoaXNpemV4NCwgdXNpemV4NCk7Ci0taW1wbF9zaHVm ZmxlMV9keW5fbm9uX3UhKGlzaXpleDgsIHVzaXpleDgpOwotLQotLWltcGxfc2h1ZmZsZTFfZHlu X25vbl91IShpMTI4eDEsIHUxMjh4MSk7Ci0taW1wbF9zaHVmZmxlMV9keW5fbm9uX3UhKGkxMjh4 MiwgdTEyOHgyKTsKLS1pbXBsX3NodWZmbGUxX2R5bl9ub25fdSEoaTEyOHg0LCB1MTI4eDQpOwot LQotLWltcGxfc2h1ZmZsZTFfZHluX25vbl91IShtOHgyLCB1OHgyKTsKLS1pbXBsX3NodWZmbGUx X2R5bl9ub25fdSEobTh4NCwgdTh4NCk7Ci0taW1wbF9zaHVmZmxlMV9keW5fbm9uX3UhKG04eDgs IHU4eDgpOwotLWltcGxfc2h1ZmZsZTFfZHluX25vbl91IShtOHgxNiwgdTh4MTYpOwotLWltcGxf c2h1ZmZsZTFfZHluX25vbl91IShtOHgzMiwgdTh4MzIpOwotLWltcGxfc2h1ZmZsZTFfZHluX25v bl91IShtOHg2NCwgdTh4NjQpOwotLQotLWltcGxfc2h1ZmZsZTFfZHluX25vbl91IShtMTZ4Miwg dTE2eDIpOwotLWltcGxfc2h1ZmZsZTFfZHluX25vbl91IShtMTZ4NCwgdTE2eDQpOwotLWltcGxf c2h1ZmZsZTFfZHluX25vbl91IShtMTZ4OCwgdTE2eDgpOwotLWltcGxfc2h1ZmZsZTFfZHluX25v bl91IShtMTZ4MTYsIHUxNngxNik7Ci0taW1wbF9zaHVmZmxlMV9keW5fbm9uX3UhKG0xNngzMiwg dTE2eDMyKTsKLS0KLS1pbXBsX3NodWZmbGUxX2R5bl9ub25fdSEobTMyeDIsIHUzMngyKTsKLS1p bXBsX3NodWZmbGUxX2R5bl9ub25fdSEobTMyeDQsIHUzMng0KTsKLS1pbXBsX3NodWZmbGUxX2R5 bl9ub25fdSEobTMyeDgsIHUzMng4KTsKLS1pbXBsX3NodWZmbGUxX2R5bl9ub25fdSEobTMyeDE2 LCB1MzJ4MTYpOwotLQotLWltcGxfc2h1ZmZsZTFfZHluX25vbl91IShtNjR4MiwgdTY0eDIpOwot LWltcGxfc2h1ZmZsZTFfZHluX25vbl91IShtNjR4NCwgdTY0eDQpOwotLWltcGxfc2h1ZmZsZTFf ZHluX25vbl91IShtNjR4OCwgdTY0eDgpOwotLQotLWltcGxfc2h1ZmZsZTFfZHluX25vbl91ISht c2l6ZXgyLCB1c2l6ZXgyKTsKLS1pbXBsX3NodWZmbGUxX2R5bl9ub25fdSEobXNpemV4NCwgdXNp emV4NCk7Ci0taW1wbF9zaHVmZmxlMV9keW5fbm9uX3UhKG1zaXpleDgsIHVzaXpleDgpOwotLQot LWltcGxfc2h1ZmZsZTFfZHluX25vbl91IShtMTI4eDEsIHUxMjh4MSk7Ci0taW1wbF9zaHVmZmxl MV9keW5fbm9uX3UhKG0xMjh4MiwgdTEyOHgyKTsKLS1pbXBsX3NodWZmbGUxX2R5bl9ub25fdSEo bTEyOHg0LCB1MTI4eDQpOwotLQotLWltcGxfc2h1ZmZsZTFfZHluX25vbl91IShmMzJ4MiwgdTMy eDIpOwotLWltcGxfc2h1ZmZsZTFfZHluX25vbl91IShmMzJ4NCwgdTMyeDQpOwotLWltcGxfc2h1 ZmZsZTFfZHluX25vbl91IShmMzJ4OCwgdTMyeDgpOwotLWltcGxfc2h1ZmZsZTFfZHluX25vbl91 IShmMzJ4MTYsIHUzMngxNik7Ci0tCi0taW1wbF9zaHVmZmxlMV9keW5fbm9uX3UhKGY2NHgyLCB1 NjR4Mik7Ci0taW1wbF9zaHVmZmxlMV9keW5fbm9uX3UhKGY2NHg0LCB1NjR4NCk7Ci0taW1wbF9z aHVmZmxlMV9keW5fbm9uX3UhKGY2NHg4LCB1NjR4OCk7Ci0tCi0tLy8gSW1wbGVtZW50YXRpb24g Zm9yIG5vbi11bnNpZ25lZCB2ZWN0b3IgdHlwZXMKLS1tYWNyb19ydWxlcyEgaW1wbF9zaHVmZmxl MV9keW5fcHRyIHsKLS0gICAgKCRpZDppZGVudCwgJHVpZDppZGVudCkgPT4gewotLSAgICAgICAg aW1wbDxUPiBTaHVmZmxlMUR5biBmb3IgJGlkPFQ+IHsKLS0gICAgICAgICAgICB0eXBlIEluZGlj ZXMgPSAkdWlkOwotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIGZuIHNodWZm bGUxX2R5bihzZWxmLCBpbmRpY2VzOiBTZWxmOjpJbmRpY2VzKSAtPiBTZWxmIHsKLS0gICAgICAg ICAgICAgICAgdW5zYWZlIHsKLS0gICAgICAgICAgICAgICAgICAgIGxldCB1OiAkdWlkID0gY3Jh dGU6Om1lbTo6dHJhbnNtdXRlKHNlbGYpOwotLSAgICAgICAgICAgICAgICAgICAgY3JhdGU6Om1l bTo6dHJhbnNtdXRlKHUuc2h1ZmZsZTFfZHluKGluZGljZXMpKQotLSAgICAgICAgICAgICAgICB9 Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICB9OwotLX0KLS0KLS1pbXBsX3NodWZm bGUxX2R5bl9wdHIhKGNwdHJ4MiwgdXNpemV4Mik7Ci0taW1wbF9zaHVmZmxlMV9keW5fcHRyIShj cHRyeDQsIHVzaXpleDQpOwotLWltcGxfc2h1ZmZsZTFfZHluX3B0ciEoY3B0cng4LCB1c2l6ZXg4 KTsKLS0KLS1pbXBsX3NodWZmbGUxX2R5bl9wdHIhKG1wdHJ4MiwgdXNpemV4Mik7Ci0taW1wbF9z aHVmZmxlMV9keW5fcHRyIShtcHRyeDQsIHVzaXpleDQpOwotLWltcGxfc2h1ZmZsZTFfZHluX3B0 ciEobXB0cng4LCB1c2l6ZXg4KTsKLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tl ZF9zaW1kL3NyYy9jb2RlZ2VuL3N3YXBfYnl0ZXMucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tl ZF9zaW1kL3NyYy9jb2RlZ2VuL3N3YXBfYnl0ZXMucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3Qv cGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vc3dhcF9ieXRlcy5ycwkyMDI1LTA0LTIwIDE5OjI4OjEz LjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMv Y29kZWdlbi9zd2FwX2J5dGVzLnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAw Ci1AQCAtMSwxNDkgKzAsMCBAQAotLS8vISBIb3Jpem9udGFsIHN3YXAgYnl0ZXMgcmVkdWN0aW9u cy4KLS0KLS0vLyBGSVhNRTogaW52ZXN0aWdhdGUgdXNpbmcgYGxsdm0uYnN3YXBgCi0tLy8gaHR0 cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy1udXJzZXJ5L3BhY2tlZF9zaW1kL2lzc3Vlcy8xOQot LQotLXVzZSBjcmF0ZTo6KjsKLS0KLS1wdWIoY3JhdGUpIHRyYWl0IFN3YXBCeXRlcyB7Ci0tICAg IGZuIHN3YXBfYnl0ZXMoc2VsZikgLT4gU2VsZjsKLS19Ci0tCi0tbWFjcm9fcnVsZXMhIGltcGxf c3dhcF9ieXRlcyB7Ci0tICAgICh2MTY6ICQoJGlkOmlkZW50LCkrKSA9PiB7Ci0tICAgICAgICAk KAotLSAgICAgICAgICAgIGltcGwgU3dhcEJ5dGVzIGZvciAkaWQgewotLSAgICAgICAgICAgICAg ICAjW2lubGluZV0KLS0gICAgICAgICAgICAgICAgZm4gc3dhcF9ieXRlcyhzZWxmKSAtPiBTZWxm IHsKLS0gICAgICAgICAgICAgICAgICAgIHNodWZmbGUhKHNlbGYsIFsxLCAwXSkKLS0gICAgICAg ICAgICAgICAgfQotLSAgICAgICAgICAgIH0KLS0gICAgICAgICkrCi0tICAgIH07Ci0tICAgICh2 MzI6ICQoJGlkOmlkZW50LCkrKSA9PiB7Ci0tICAgICAgICAkKAotLSAgICAgICAgICAgIGltcGwg U3dhcEJ5dGVzIGZvciAkaWQgewotLSAgICAgICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAg ICAgICAgICAgI1thbGxvdyhjbGlwcHk6OnVzZWxlc3NfdHJhbnNtdXRlKV0KLS0gICAgICAgICAg ICAgICAgZm4gc3dhcF9ieXRlcyhzZWxmKSAtPiBTZWxmIHsKLS0gICAgICAgICAgICAgICAgICAg IHVuc2FmZSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGJ5dGVzOiB1OHg0ID0gY3Jh dGU6Om1lbTo6dHJhbnNtdXRlKHNlbGYpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBy ZXN1bHQ6IHU4eDQgPSBzaHVmZmxlIShieXRlcywgWzMsIDIsIDEsIDBdKTsKLS0gICAgICAgICAg ICAgICAgICAgICAgICBjcmF0ZTo6bWVtOjp0cmFuc211dGUocmVzdWx0KQotLSAgICAgICAgICAg ICAgICAgICAgfQotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgfQotLSAgICAgICAg KSsKLS0gICAgfTsKLS0gICAgKHY2NDogJCgkaWQ6aWRlbnQsKSspID0+IHsKLS0gICAgICAgICQo Ci0tICAgICAgICAgICAgaW1wbCBTd2FwQnl0ZXMgZm9yICRpZCB7Ci0tICAgICAgICAgICAgICAg ICNbaW5saW5lXQotLSAgICAgICAgICAgICAgICAjW2FsbG93KGNsaXBweTo6dXNlbGVzc190cmFu c211dGUpXQotLSAgICAgICAgICAgICAgICBmbiBzd2FwX2J5dGVzKHNlbGYpIC0+IFNlbGYgewot LSAgICAgICAgICAgICAgICAgICAgdW5zYWZlIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICBs ZXQgYnl0ZXM6IHU4eDggPSBjcmF0ZTo6bWVtOjp0cmFuc211dGUoc2VsZik7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgbGV0IHJlc3VsdDogdTh4OCA9IHNodWZmbGUhKAotLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICBieXRlcywgWzcsIDYsIDUsIDQsIDMsIDIsIDEsIDBdCi0tICAgICAg ICAgICAgICAgICAgICAgICAgKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBjcmF0ZTo6bWVt Ojp0cmFuc211dGUocmVzdWx0KQotLSAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAg ICAgICB9Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgKSsKLS0gICAgfTsKLS0gICAgKHYxMjg6 ICQoJGlkOmlkZW50LCkrKSA9PiB7Ci0tICAgICAgICAkKAotLSAgICAgICAgICAgIGltcGwgU3dh cEJ5dGVzIGZvciAkaWQgewotLSAgICAgICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAg ICAgICAgI1thbGxvdyhjbGlwcHk6OnVzZWxlc3NfdHJhbnNtdXRlKV0KLS0gICAgICAgICAgICAg ICAgZm4gc3dhcF9ieXRlcyhzZWxmKSAtPiBTZWxmIHsKLS0gICAgICAgICAgICAgICAgICAgIHVu c2FmZSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGJ5dGVzOiB1OHgxNiA9IGNyYXRl OjptZW06OnRyYW5zbXV0ZShzZWxmKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgcmVz dWx0OiB1OHgxNiA9IHNodWZmbGUhKGJ5dGVzLCBbCi0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsCi0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDAKLS0gICAgICAgICAgICAgICAgICAgICAgICBd KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBjcmF0ZTo6bWVtOjp0cmFuc211dGUocmVzdWx0 KQotLSAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAg ICAgfQotLSAgICAgICAgKSsKLS0gICAgfTsKLS0gICAgKHYyNTY6ICQoJGlkOmlkZW50LCkrKSA9 PiB7Ci0tICAgICAgICAkKAotLSAgICAgICAgICAgIGltcGwgU3dhcEJ5dGVzIGZvciAkaWQgewot LSAgICAgICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICAgICAgI1thbGxvdyhjbGlw cHk6OnVzZWxlc3NfdHJhbnNtdXRlKV0KLS0gICAgICAgICAgICAgICAgZm4gc3dhcF9ieXRlcyhz ZWxmKSAtPiBTZWxmIHsKLS0gICAgICAgICAgICAgICAgICAgIHVuc2FmZSB7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgbGV0IGJ5dGVzOiB1OHgzMiA9IGNyYXRlOjptZW06OnRyYW5zbXV0ZShz ZWxmKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgcmVzdWx0OiB1OHgzMiA9IHNodWZm bGUhKGJ5dGVzLCBbCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMxLCAzMCwgMjksIDI4 LCAyNywgMjYsIDI1LCAyNCwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgMjMsIDIyLCAy MSwgMjAsIDE5LCAxOCwgMTcsIDE2LAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAxNSwg MTQsIDEzLCAxMiwgMTEsIDEwLCA5LCAgOCwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg NywgIDYsICA1LCAgNCwgIDMsICAyLCAgMSwgIDAKLS0gICAgICAgICAgICAgICAgICAgICAgICBd KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBjcmF0ZTo6bWVtOjp0cmFuc211dGUocmVzdWx0 KQotLSAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAg ICAgfQotLSAgICAgICAgKSsKLS0gICAgfTsKLS0gICAgKHY1MTI6ICQoJGlkOmlkZW50LCkrKSA9 PiB7Ci0tICAgICAgICAkKAotLSAgICAgICAgICAgIGltcGwgU3dhcEJ5dGVzIGZvciAkaWQgewot LSAgICAgICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICAgICAgI1thbGxvdyhjbGlw cHk6OnVzZWxlc3NfdHJhbnNtdXRlKV0KLS0gICAgICAgICAgICAgICAgZm4gc3dhcF9ieXRlcyhz ZWxmKSAtPiBTZWxmIHsKLS0gICAgICAgICAgICAgICAgICAgIHVuc2FmZSB7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgbGV0IGJ5dGVzOiB1OHg2NCA9IGNyYXRlOjptZW06OnRyYW5zbXV0ZShz ZWxmKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgcmVzdWx0OiB1OHg2NCA9IHNodWZm bGUhKGJ5dGVzLCBbCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIDYzLCA2MiwgNjEsIDYw LCA1OSwgNTgsIDU3LCA1NiwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgNTUsIDU0LCA1 MywgNTIsIDUxLCA1MCwgNDksIDQ4LAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA0Nywg NDYsIDQ1LCA0NCwgNDMsIDQyLCA0MSwgNDAsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAg IDM5LCAzOCwgMzcsIDM2LCAzNSwgMzQsIDMzLCAzMiwKLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgMzEsIDMwLCAyOSwgMjgsIDI3LCAyNiwgMjUsIDI0LAotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAyMywgMjIsIDIxLCAyMCwgMTksIDE4LCAxNywgMTYsCi0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksICA4LAotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICA3LCAgNiwgIDUsICA0LCAgMywgIDIsICAxLCAgMAotLSAgICAg ICAgICAgICAgICAgICAgICAgIF0pOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGNyYXRlOjpt ZW06OnRyYW5zbXV0ZShyZXN1bHQpCi0tICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAg ICAgICAgIH0KLS0gICAgICAgICAgICB9Ci0tICAgICAgICApKwotLSAgICB9OwotLX0KLS0KLS1p bXBsX3N3YXBfYnl0ZXMhKHYxNjogdTh4MiwgaTh4MiwpOwotLWltcGxfc3dhcF9ieXRlcyEodjMy OiB1OHg0LCBpOHg0LCB1MTZ4MiwgaTE2eDIsKTsKLS0vLyBGSVhNRTogNjQtYml0IHNpbmdsZSBl bGVtZW50IHZlY3RvcgotLWltcGxfc3dhcF9ieXRlcyEodjY0OiB1OHg4LCBpOHg4LCB1MTZ4NCwg aTE2eDQsIHUzMngyLCBpMzJ4MiAvKiB1NjR4MSwgaTY0eDEsICovLCk7Ci0tCi0taW1wbF9zd2Fw X2J5dGVzISh2MTI4OiB1OHgxNiwgaTh4MTYsIHUxNng4LCBpMTZ4OCwgdTMyeDQsIGkzMng0LCB1 NjR4MiwgaTY0eDIsIHUxMjh4MSwgaTEyOHgxLCk7Ci0taW1wbF9zd2FwX2J5dGVzISh2MjU2OiB1 OHgzMiwgaTh4MzIsIHUxNngxNiwgaTE2eDE2LCB1MzJ4OCwgaTMyeDgsIHU2NHg0LCBpNjR4NCwg dTEyOHgyLCBpMTI4eDIsKTsKLS0KLS1pbXBsX3N3YXBfYnl0ZXMhKHY1MTI6IHU4eDY0LCBpOHg2 NCwgdTE2eDMyLCBpMTZ4MzIsIHUzMngxNiwgaTMyeDE2LCB1NjR4OCwgaTY0eDgsIHUxMjh4NCwg aTEyOHg0LCk7Ci0tCi0tY2ZnX2lmISB7Ci0tICAgIGlmICNbY2ZnKHRhcmdldF9wb2ludGVyX3dp ZHRoID0gIjgiKV0gewotLSAgICAgICAgaW1wbF9zd2FwX2J5dGVzISh2MTY6IGlzaXpleDIsIHVz aXpleDIsKTsKLS0gICAgICAgIGltcGxfc3dhcF9ieXRlcyEodjMyOiBpc2l6ZXg0LCB1c2l6ZXg0 LCk7Ci0tICAgICAgICBpbXBsX3N3YXBfYnl0ZXMhKHY2NDogaXNpemV4OCwgdXNpemV4OCwpOwot LSAgICB9IGVsc2UgaWYgI1tjZmcodGFyZ2V0X3BvaW50ZXJfd2lkdGggPSAiMTYiKV0gewotLSAg ICAgICAgaW1wbF9zd2FwX2J5dGVzISh2MzI6IGlzaXpleDIsIHVzaXpleDIsKTsKLS0gICAgICAg IGltcGxfc3dhcF9ieXRlcyEodjY0OiBpc2l6ZXg0LCB1c2l6ZXg0LCk7Ci0tICAgICAgICBpbXBs X3N3YXBfYnl0ZXMhKHYxMjg6IGlzaXpleDgsIHVzaXpleDgsKTsKLS0gICAgfSBlbHNlIGlmICNb Y2ZnKHRhcmdldF9wb2ludGVyX3dpZHRoID0gIjMyIildIHsKLS0gICAgICAgIGltcGxfc3dhcF9i eXRlcyEodjY0OiBpc2l6ZXgyLCB1c2l6ZXgyLCk7Ci0tICAgICAgICBpbXBsX3N3YXBfYnl0ZXMh KHYxMjg6IGlzaXpleDQsIHVzaXpleDQsKTsKLS0gICAgICAgIGltcGxfc3dhcF9ieXRlcyEodjI1 NjogaXNpemV4OCwgdXNpemV4OCwpOwotLSAgICB9IGVsc2UgaWYgI1tjZmcodGFyZ2V0X3BvaW50 ZXJfd2lkdGggPSAiNjQiKV0gewotLSAgICAgICAgaW1wbF9zd2FwX2J5dGVzISh2MTI4OiBpc2l6 ZXgyLCB1c2l6ZXgyLCk7Ci0tICAgICAgICBpbXBsX3N3YXBfYnl0ZXMhKHYyNTY6IGlzaXpleDQs IHVzaXpleDQsKTsKLS0gICAgICAgIGltcGxfc3dhcF9ieXRlcyEodjUxMjogaXNpemV4OCwgdXNp emV4OCwpOwotLSAgICB9IGVsc2UgewotLSAgICAgICAgY29tcGlsZV9lcnJvciEoInVuc3VwcG9y dGVkIHRhcmdldF9wb2ludGVyX3dpZHRoIik7Ci0tICAgIH0KLS19Ci1kaWZmIC1OcmJ1IGEvdGhp cmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi92MTI4LnJzIGIvdGhpcmRfcGFy dHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi92MTI4LnJzCi0tLS0gYS90aGlyZF9wYXJ0 eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3YxMjgucnMJMjAyNS0wNC0yMCAxOToyODox My4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3Jj L2NvZGVnZW4vdjEyOC5ycwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAg LTEsNDYgKzAsMCBAQAotLS8vISBJbnRlcm5hbCAxMjgtYml0IHdpZGUgdmVjdG9yIHR5cGVzCi0t Ci0tdXNlIGNyYXRlOjptYXNrczo6KjsKLS0KLS0jW3J1c3RmbXQ6OnNraXBdCi0taW1wbF9zaW1k X2FycmF5ISgKLS0gICAgW2k4OyAxNl06IGk4eDE2IHwKLS0gICAgaTgsIGk4LCBpOCwgaTgsCi0t ICAgIGk4LCBpOCwgaTgsIGk4LAotLSAgICBpOCwgaTgsIGk4LCBpOCwKLS0gICAgaTgsIGk4LCBp OCwgaTgKLS0pOwotLSNbcnVzdGZtdDo6c2tpcF0KLS1pbXBsX3NpbWRfYXJyYXkhKAotLSAgICBb dTg7IDE2XTogdTh4MTYgfAotLSAgICB1OCwgdTgsIHU4LCB1OCwKLS0gICAgdTgsIHU4LCB1OCwg dTgsCi0tICAgIHU4LCB1OCwgdTgsIHU4LAotLSAgICB1OCwgdTgsIHU4LCB1OAotLSk7Ci0tI1ty dXN0Zm10Ojpza2lwXQotLWltcGxfc2ltZF9hcnJheSEoCi0tICAgIFttODsgMTZdOiBtOHgxNiB8 Ci0tICAgIGk4LCBpOCwgaTgsIGk4LAotLSAgICBpOCwgaTgsIGk4LCBpOCwKLS0gICAgaTgsIGk4 LCBpOCwgaTgsCi0tICAgIGk4LCBpOCwgaTgsIGk4Ci0tKTsKLS0KLS1pbXBsX3NpbWRfYXJyYXkh KFtpMTY7IDhdOiBpMTZ4OCB8IGkxNiwgaTE2LCBpMTYsIGkxNiwgaTE2LCBpMTYsIGkxNiwgaTE2 KTsKLS1pbXBsX3NpbWRfYXJyYXkhKFt1MTY7IDhdOiB1MTZ4OCB8IHUxNiwgdTE2LCB1MTYsIHUx NiwgdTE2LCB1MTYsIHUxNiwgdTE2KTsKLS1pbXBsX3NpbWRfYXJyYXkhKFttMTY7IDhdOiBtMTZ4 OCB8IGkxNiwgaTE2LCBpMTYsIGkxNiwgaTE2LCBpMTYsIGkxNiwgaTE2KTsKLS0KLS1pbXBsX3Np bWRfYXJyYXkhKFtpMzI7IDRdOiBpMzJ4NCB8IGkzMiwgaTMyLCBpMzIsIGkzMik7Ci0taW1wbF9z aW1kX2FycmF5IShbdTMyOyA0XTogdTMyeDQgfCB1MzIsIHUzMiwgdTMyLCB1MzIpOwotLWltcGxf c2ltZF9hcnJheSEoW2YzMjsgNF06IGYzMng0IHwgZjMyLCBmMzIsIGYzMiwgZjMyKTsKLS1pbXBs X3NpbWRfYXJyYXkhKFttMzI7IDRdOiBtMzJ4NCB8IGkzMiwgaTMyLCBpMzIsIGkzMik7Ci0tCi0t aW1wbF9zaW1kX2FycmF5IShbaTY0OyAyXTogaTY0eDIgfCBpNjQsIGk2NCk7Ci0taW1wbF9zaW1k X2FycmF5IShbdTY0OyAyXTogdTY0eDIgfCB1NjQsIHU2NCk7Ci0taW1wbF9zaW1kX2FycmF5IShb ZjY0OyAyXTogZjY0eDIgfCBmNjQsIGY2NCk7Ci0taW1wbF9zaW1kX2FycmF5IShbbTY0OyAyXTog bTY0eDIgfCBpNjQsIGk2NCk7Ci0tCi0taW1wbF9zaW1kX2FycmF5IShbaTEyODsgMV06IGkxMjh4 MSB8IGkxMjgpOwotLWltcGxfc2ltZF9hcnJheSEoW3UxMjg7IDFdOiB1MTI4eDEgfCB1MTI4KTsK LS1pbXBsX3NpbWRfYXJyYXkhKFttMTI4OyAxXTogbTEyOHgxIHwgaTEyOCk7Ci1kaWZmIC1OcmJ1 IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi92MTYucnMgYi90aGly ZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3YxNi5ycwotLS0tIGEvdGhpcmRf cGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi92MTYucnMJMjAyNS0wNC0yMCAxOToy ODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQv c3JjL2NvZGVnZW4vdjE2LnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1A QCAtMSw3ICswLDAgQEAKLS0vLyEgSW50ZXJuYWwgMTYtYml0IHdpZGUgdmVjdG9yIHR5cGVzCi0t Ci0tdXNlIGNyYXRlOjptYXNrczo6KjsKLS0KLS1pbXBsX3NpbWRfYXJyYXkhKFtpODsgMl06IGk4 eDIgfCBpOCwgaTgpOwotLWltcGxfc2ltZF9hcnJheSEoW3U4OyAyXTogdTh4MiB8IHU4LCB1OCk7 Ci0taW1wbF9zaW1kX2FycmF5IShbbTg7IDJdOiBtOHgyIHwgaTgsIGk4KTsKLWRpZmYgLU5yYnUg YS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3YyNTYucnMgYi90aGly ZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3YyNTYucnMKLS0tLSBhL3RoaXJk X3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vdjI1Ni5ycwkyMDI1LTA0LTIwIDE5 OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2lt ZC9zcmMvY29kZWdlbi92MjU2LnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAw Ci1AQCAtMSw3OCArMCwwIEBACi0tLy8hIEludGVybmFsIDI1Ni1iaXQgd2lkZSB2ZWN0b3IgdHlw ZXMKLS0KLS11c2UgY3JhdGU6Om1hc2tzOjoqOwotLQotLSNbcnVzdGZtdDo6c2tpcF0KLS1pbXBs X3NpbWRfYXJyYXkhKAotLSAgICBbaTg7IDMyXTogaTh4MzIgfAotLSAgICBpOCwgaTgsIGk4LCBp OCwKLS0gICAgaTgsIGk4LCBpOCwgaTgsCi0tICAgIGk4LCBpOCwgaTgsIGk4LAotLSAgICBpOCwg aTgsIGk4LCBpOCwKLS0gICAgaTgsIGk4LCBpOCwgaTgsCi0tICAgIGk4LCBpOCwgaTgsIGk4LAot LSAgICBpOCwgaTgsIGk4LCBpOCwKLS0gICAgaTgsIGk4LCBpOCwgaTgKLS0pOwotLSNbcnVzdGZt dDo6c2tpcF0KLS1pbXBsX3NpbWRfYXJyYXkhKAotLSAgICBbdTg7IDMyXTogdTh4MzIgfAotLSAg ICB1OCwgdTgsIHU4LCB1OCwKLS0gICAgdTgsIHU4LCB1OCwgdTgsCi0tICAgIHU4LCB1OCwgdTgs IHU4LAotLSAgICB1OCwgdTgsIHU4LCB1OCwKLS0gICAgdTgsIHU4LCB1OCwgdTgsCi0tICAgIHU4 LCB1OCwgdTgsIHU4LAotLSAgICB1OCwgdTgsIHU4LCB1OCwKLS0gICAgdTgsIHU4LCB1OCwgdTgK LS0pOwotLSNbcnVzdGZtdDo6c2tpcF0KLS1pbXBsX3NpbWRfYXJyYXkhKAotLSAgICBbbTg7IDMy XTogbTh4MzIgfAotLSAgICBpOCwgaTgsIGk4LCBpOCwKLS0gICAgaTgsIGk4LCBpOCwgaTgsCi0t ICAgIGk4LCBpOCwgaTgsIGk4LAotLSAgICBpOCwgaTgsIGk4LCBpOCwKLS0gICAgaTgsIGk4LCBp OCwgaTgsCi0tICAgIGk4LCBpOCwgaTgsIGk4LAotLSAgICBpOCwgaTgsIGk4LCBpOCwKLS0gICAg aTgsIGk4LCBpOCwgaTgKLS0pOwotLSNbcnVzdGZtdDo6c2tpcF0KLS1pbXBsX3NpbWRfYXJyYXkh KAotLSAgICBbaTE2OyAxNl06IGkxNngxNiB8Ci0tICAgIGkxNiwgaTE2LCBpMTYsIGkxNiwKLS0g ICAgaTE2LCBpMTYsIGkxNiwgaTE2LAotLSAgICBpMTYsIGkxNiwgaTE2LCBpMTYsCi0tICAgIGkx NiwgaTE2LCBpMTYsIGkxNgotLSk7Ci0tI1tydXN0Zm10Ojpza2lwXQotLWltcGxfc2ltZF9hcnJh eSEoCi0tICAgIFt1MTY7IDE2XTogdTE2eDE2IHwKLS0gICAgdTE2LCB1MTYsIHUxNiwgdTE2LAot LSAgICB1MTYsIHUxNiwgdTE2LCB1MTYsCi0tICAgIHUxNiwgdTE2LCB1MTYsIHUxNiwKLS0gICAg dTE2LCB1MTYsIHUxNiwgdTE2Ci0tKTsKLS0jW3J1c3RmbXQ6OnNraXBdCi0taW1wbF9zaW1kX2Fy cmF5ISgKLS0gICAgW20xNjsgMTZdOiBtMTZ4MTYgfAotLSAgICBpMTYsIGkxNiwgaTE2LCBpMTYs Ci0tICAgIGkxNiwgaTE2LCBpMTYsIGkxNiwKLS0gICAgaTE2LCBpMTYsIGkxNiwgaTE2LAotLSAg ICBpMTYsIGkxNiwgaTE2LCBpMTYKLS0pOwotLQotLWltcGxfc2ltZF9hcnJheSEoW2kzMjsgOF06 IGkzMng4IHwgaTMyLCBpMzIsIGkzMiwgaTMyLCBpMzIsIGkzMiwgaTMyLCBpMzIpOwotLWltcGxf c2ltZF9hcnJheSEoW3UzMjsgOF06IHUzMng4IHwgdTMyLCB1MzIsIHUzMiwgdTMyLCB1MzIsIHUz MiwgdTMyLCB1MzIpOwotLWltcGxfc2ltZF9hcnJheSEoW2YzMjsgOF06IGYzMng4IHwgZjMyLCBm MzIsIGYzMiwgZjMyLCBmMzIsIGYzMiwgZjMyLCBmMzIpOwotLWltcGxfc2ltZF9hcnJheSEoW20z MjsgOF06IG0zMng4IHwgaTMyLCBpMzIsIGkzMiwgaTMyLCBpMzIsIGkzMiwgaTMyLCBpMzIpOwot LQotLWltcGxfc2ltZF9hcnJheSEoW2k2NDsgNF06IGk2NHg0IHwgaTY0LCBpNjQsIGk2NCwgaTY0 KTsKLS1pbXBsX3NpbWRfYXJyYXkhKFt1NjQ7IDRdOiB1NjR4NCB8IHU2NCwgdTY0LCB1NjQsIHU2 NCk7Ci0taW1wbF9zaW1kX2FycmF5IShbZjY0OyA0XTogZjY0eDQgfCBmNjQsIGY2NCwgZjY0LCBm NjQpOwotLWltcGxfc2ltZF9hcnJheSEoW202NDsgNF06IG02NHg0IHwgaTY0LCBpNjQsIGk2NCwg aTY0KTsKLS0KLS1pbXBsX3NpbWRfYXJyYXkhKFtpMTI4OyAyXTogaTEyOHgyIHwgaTEyOCwgaTEy OCk7Ci0taW1wbF9zaW1kX2FycmF5IShbdTEyODsgMl06IHUxMjh4MiB8IHUxMjgsIHUxMjgpOwot LWltcGxfc2ltZF9hcnJheSEoW20xMjg7IDJdOiBtMTI4eDIgfCBpMTI4LCBpMTI4KTsKLWRpZmYg LU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3YzMi5ycyBi L3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vdjMyLnJzCi0tLS0gYS90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3YzMi5ycwkyMDI1LTA0LTIw IDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRf c2ltZC9zcmMvY29kZWdlbi92MzIucnMJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAz MDAKLUBAIC0xLDExICswLDAgQEAKLS0vLyEgSW50ZXJuYWwgMzItYml0IHdpZGUgdmVjdG9yIHR5 cGVzCi0tCi0tdXNlIGNyYXRlOjptYXNrczo6KjsKLS0KLS1pbXBsX3NpbWRfYXJyYXkhKFtpODsg NF06IGk4eDQgfCBpOCwgaTgsIGk4LCBpOCk7Ci0taW1wbF9zaW1kX2FycmF5IShbdTg7IDRdOiB1 OHg0IHwgdTgsIHU4LCB1OCwgdTgpOwotLWltcGxfc2ltZF9hcnJheSEoW204OyA0XTogbTh4NCB8 IGk4LCBpOCwgaTgsIGk4KTsKLS0KLS1pbXBsX3NpbWRfYXJyYXkhKFtpMTY7IDJdOiBpMTZ4MiB8 IGkxNiwgaTE2KTsKLS1pbXBsX3NpbWRfYXJyYXkhKFt1MTY7IDJdOiB1MTZ4MiB8IHUxNiwgdTE2 KTsKLS1pbXBsX3NpbWRfYXJyYXkhKFttMTY7IDJdOiBtMTZ4MiB8IGkxNiwgaTE2KTsKLWRpZmYg LU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3Y1MTIucnMg Yi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3Y1MTIucnMKLS0tLSBh L3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vdjUxMi5ycwkyMDI1LTA0 LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNr ZWRfc2ltZC9zcmMvY29kZWdlbi92NTEyLnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAw ICswMzAwCi1AQCAtMSwxNDUgKzAsMCBAQAotLS8vISBJbnRlcm5hbCA1MTItYml0IHdpZGUgdmVj dG9yIHR5cGVzCi0tCi0tdXNlIGNyYXRlOjptYXNrczo6KjsKLS0KLS0jW3J1c3RmbXQ6OnNraXBd Ci0taW1wbF9zaW1kX2FycmF5ISgKLS0gICAgW2k4OyA2NF06IGk4eDY0IHwKLS0gICAgaTgsIGk4 LCBpOCwgaTgsCi0tICAgIGk4LCBpOCwgaTgsIGk4LAotLSAgICBpOCwgaTgsIGk4LCBpOCwKLS0g ICAgaTgsIGk4LCBpOCwgaTgsCi0tICAgIGk4LCBpOCwgaTgsIGk4LAotLSAgICBpOCwgaTgsIGk4 LCBpOCwKLS0gICAgaTgsIGk4LCBpOCwgaTgsCi0tICAgIGk4LCBpOCwgaTgsIGk4LAotLQotLSAg ICBpOCwgaTgsIGk4LCBpOCwKLS0gICAgaTgsIGk4LCBpOCwgaTgsCi0tICAgIGk4LCBpOCwgaTgs IGk4LAotLSAgICBpOCwgaTgsIGk4LCBpOCwKLS0gICAgaTgsIGk4LCBpOCwgaTgsCi0tICAgIGk4 LCBpOCwgaTgsIGk4LAotLSAgICBpOCwgaTgsIGk4LCBpOCwKLS0gICAgaTgsIGk4LCBpOCwgaTgK LS0pOwotLSNbcnVzdGZtdDo6c2tpcF0KLS1pbXBsX3NpbWRfYXJyYXkhKAotLSAgICBbdTg7IDY0 XTogdTh4NjQgfAotLSAgICB1OCwgdTgsIHU4LCB1OCwKLS0gICAgdTgsIHU4LCB1OCwgdTgsCi0t ICAgIHU4LCB1OCwgdTgsIHU4LAotLSAgICB1OCwgdTgsIHU4LCB1OCwKLS0gICAgdTgsIHU4LCB1 OCwgdTgsCi0tICAgIHU4LCB1OCwgdTgsIHU4LAotLSAgICB1OCwgdTgsIHU4LCB1OCwKLS0gICAg dTgsIHU4LCB1OCwgdTgsCi0tCi0tICAgIHU4LCB1OCwgdTgsIHU4LAotLSAgICB1OCwgdTgsIHU4 LCB1OCwKLS0gICAgdTgsIHU4LCB1OCwgdTgsCi0tICAgIHU4LCB1OCwgdTgsIHU4LAotLSAgICB1 OCwgdTgsIHU4LCB1OCwKLS0gICAgdTgsIHU4LCB1OCwgdTgsCi0tICAgIHU4LCB1OCwgdTgsIHU4 LAotLSAgICB1OCwgdTgsIHU4LCB1OAotLSk7Ci0tI1tydXN0Zm10Ojpza2lwXQotLWltcGxfc2lt ZF9hcnJheSEoCi0tICAgIFttODsgNjRdOiBtOHg2NCB8Ci0tICAgIGk4LCBpOCwgaTgsIGk4LAot LSAgICBpOCwgaTgsIGk4LCBpOCwKLS0gICAgaTgsIGk4LCBpOCwgaTgsCi0tICAgIGk4LCBpOCwg aTgsIGk4LAotLSAgICBpOCwgaTgsIGk4LCBpOCwKLS0gICAgaTgsIGk4LCBpOCwgaTgsCi0tICAg IGk4LCBpOCwgaTgsIGk4LAotLSAgICBpOCwgaTgsIGk4LCBpOCwKLS0KLS0gICAgaTgsIGk4LCBp OCwgaTgsCi0tICAgIGk4LCBpOCwgaTgsIGk4LAotLSAgICBpOCwgaTgsIGk4LCBpOCwKLS0gICAg aTgsIGk4LCBpOCwgaTgsCi0tICAgIGk4LCBpOCwgaTgsIGk4LAotLSAgICBpOCwgaTgsIGk4LCBp OCwKLS0gICAgaTgsIGk4LCBpOCwgaTgsCi0tICAgIGk4LCBpOCwgaTgsIGk4Ci0tKTsKLS0jW3J1 c3RmbXQ6OnNraXBdCi0taW1wbF9zaW1kX2FycmF5ISgKLS0gICAgW2kxNjsgMzJdOiBpMTZ4MzIg fAotLSAgICBpMTYsIGkxNiwgaTE2LCBpMTYsCi0tICAgIGkxNiwgaTE2LCBpMTYsIGkxNiwKLS0g ICAgaTE2LCBpMTYsIGkxNiwgaTE2LAotLSAgICBpMTYsIGkxNiwgaTE2LCBpMTYsCi0tICAgIGkx NiwgaTE2LCBpMTYsIGkxNiwKLS0gICAgaTE2LCBpMTYsIGkxNiwgaTE2LAotLSAgICBpMTYsIGkx NiwgaTE2LCBpMTYsCi0tICAgIGkxNiwgaTE2LCBpMTYsIGkxNgotLSk7Ci0tI1tydXN0Zm10Ojpz a2lwXQotLWltcGxfc2ltZF9hcnJheSEoCi0tICAgIFt1MTY7IDMyXTogdTE2eDMyIHwKLS0gICAg dTE2LCB1MTYsIHUxNiwgdTE2LAotLSAgICB1MTYsIHUxNiwgdTE2LCB1MTYsCi0tICAgIHUxNiwg dTE2LCB1MTYsIHUxNiwKLS0gICAgdTE2LCB1MTYsIHUxNiwgdTE2LAotLSAgICB1MTYsIHUxNiwg dTE2LCB1MTYsCi0tICAgIHUxNiwgdTE2LCB1MTYsIHUxNiwKLS0gICAgdTE2LCB1MTYsIHUxNiwg dTE2LAotLSAgICB1MTYsIHUxNiwgdTE2LCB1MTYKLS0pOwotLSNbcnVzdGZtdDo6c2tpcF0KLS1p bXBsX3NpbWRfYXJyYXkhKAotLSAgICBbbTE2OyAzMl06IG0xNngzMiB8Ci0tICAgIGkxNiwgaTE2 LCBpMTYsIGkxNiwKLS0gICAgaTE2LCBpMTYsIGkxNiwgaTE2LAotLSAgICBpMTYsIGkxNiwgaTE2 LCBpMTYsCi0tICAgIGkxNiwgaTE2LCBpMTYsIGkxNiwKLS0gICAgaTE2LCBpMTYsIGkxNiwgaTE2 LAotLSAgICBpMTYsIGkxNiwgaTE2LCBpMTYsCi0tICAgIGkxNiwgaTE2LCBpMTYsIGkxNiwKLS0g ICAgaTE2LCBpMTYsIGkxNiwgaTE2Ci0tKTsKLS0KLS0jW3J1c3RmbXQ6OnNraXBdCi0taW1wbF9z aW1kX2FycmF5ISgKLS0gICAgW2kzMjsgMTZdOiBpMzJ4MTYgfAotLSAgICBpMzIsIGkzMiwgaTMy LCBpMzIsCi0tICAgIGkzMiwgaTMyLCBpMzIsIGkzMiwKLS0gICAgaTMyLCBpMzIsIGkzMiwgaTMy LAotLSAgICBpMzIsIGkzMiwgaTMyLCBpMzIKLS0pOwotLSNbcnVzdGZtdDo6c2tpcF0KLS1pbXBs X3NpbWRfYXJyYXkhKAotLSAgICBbdTMyOyAxNl06IHUzMngxNiB8Ci0tICAgIHUzMiwgdTMyLCB1 MzIsIHUzMiwKLS0gICAgdTMyLCB1MzIsIHUzMiwgdTMyLAotLSAgICB1MzIsIHUzMiwgdTMyLCB1 MzIsCi0tICAgIHUzMiwgdTMyLCB1MzIsIHUzMgotLSk7Ci0tI1tydXN0Zm10Ojpza2lwXQotLWlt cGxfc2ltZF9hcnJheSEoCi0tICAgIFtmMzI7IDE2XTogZjMyeDE2IHwKLS0gICAgZjMyLCBmMzIs IGYzMiwgZjMyLAotLSAgICBmMzIsIGYzMiwgZjMyLCBmMzIsCi0tICAgIGYzMiwgZjMyLCBmMzIs IGYzMiwKLS0gICAgZjMyLCBmMzIsIGYzMiwgZjMyCi0tKTsKLS0jW3J1c3RmbXQ6OnNraXBdCi0t aW1wbF9zaW1kX2FycmF5ISgKLS0gICAgW20zMjsgMTZdOiBtMzJ4MTYgfAotLSAgICBpMzIsIGkz MiwgaTMyLCBpMzIsCi0tICAgIGkzMiwgaTMyLCBpMzIsIGkzMiwKLS0gICAgaTMyLCBpMzIsIGkz MiwgaTMyLAotLSAgICBpMzIsIGkzMiwgaTMyLCBpMzIKLS0pOwotLQotLWltcGxfc2ltZF9hcnJh eSEoW2k2NDsgOF06IGk2NHg4IHwgaTY0LCBpNjQsIGk2NCwgaTY0LCBpNjQsIGk2NCwgaTY0LCBp NjQpOwotLWltcGxfc2ltZF9hcnJheSEoW3U2NDsgOF06IHU2NHg4IHwgdTY0LCB1NjQsIHU2NCwg dTY0LCB1NjQsIHU2NCwgdTY0LCB1NjQpOwotLWltcGxfc2ltZF9hcnJheSEoW2Y2NDsgOF06IGY2 NHg4IHwgZjY0LCBmNjQsIGY2NCwgZjY0LCBmNjQsIGY2NCwgZjY0LCBmNjQpOwotLWltcGxfc2lt ZF9hcnJheSEoW202NDsgOF06IG02NHg4IHwgaTY0LCBpNjQsIGk2NCwgaTY0LCBpNjQsIGk2NCwg aTY0LCBpNjQpOwotLQotLWltcGxfc2ltZF9hcnJheSEoW2kxMjg7IDRdOiBpMTI4eDQgfCBpMTI4 LCBpMTI4LCBpMTI4LCBpMTI4KTsKLS1pbXBsX3NpbWRfYXJyYXkhKFt1MTI4OyA0XTogdTEyOHg0 IHwgdTEyOCwgdTEyOCwgdTEyOCwgdTEyOCk7Ci0taW1wbF9zaW1kX2FycmF5IShbbTEyODsgNF06 IG0xMjh4NCB8IGkxMjgsIGkxMjgsIGkxMjgsIGkxMjgpOwotZGlmZiAtTnJidSBhL3RoaXJkX3Bh cnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vdjY0LnJzIGIvdGhpcmRfcGFydHkvcnVz dC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi92NjQucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3Qv cGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vdjY0LnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAw MDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2Vu L3Y2NC5ycwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsMjEgKzAs MCBAQAotLS8vISBJbnRlcm5hbCA2NC1iaXQgd2lkZSB2ZWN0b3IgdHlwZXMKLS0KLS11c2UgY3Jh dGU6Om1hc2tzOjoqOwotLQotLWltcGxfc2ltZF9hcnJheSEoW2k4OyA4XTogaTh4OCB8IGk4LCBp OCwgaTgsIGk4LCBpOCwgaTgsIGk4LCBpOCk7Ci0taW1wbF9zaW1kX2FycmF5IShbdTg7IDhdOiB1 OHg4IHwgdTgsIHU4LCB1OCwgdTgsIHU4LCB1OCwgdTgsIHU4KTsKLS1pbXBsX3NpbWRfYXJyYXkh KFttODsgOF06IG04eDggfCBpOCwgaTgsIGk4LCBpOCwgaTgsIGk4LCBpOCwgaTgpOwotLQotLWlt cGxfc2ltZF9hcnJheSEoW2kxNjsgNF06IGkxNng0IHwgaTE2LCBpMTYsIGkxNiwgaTE2KTsKLS1p bXBsX3NpbWRfYXJyYXkhKFt1MTY7IDRdOiB1MTZ4NCB8IHUxNiwgdTE2LCB1MTYsIHUxNik7Ci0t aW1wbF9zaW1kX2FycmF5IShbbTE2OyA0XTogbTE2eDQgfCBpMTYsIGkxNiwgaTE2LCBpMTYpOwot LQotLWltcGxfc2ltZF9hcnJheSEoW2kzMjsgMl06IGkzMngyIHwgaTMyLCBpMzIpOwotLWltcGxf c2ltZF9hcnJheSEoW3UzMjsgMl06IHUzMngyIHwgdTMyLCB1MzIpOwotLWltcGxfc2ltZF9hcnJh eSEoW2YzMjsgMl06IGYzMngyIHwgZjMyLCBmMzIpOwotLWltcGxfc2ltZF9hcnJheSEoW20zMjsg Ml06IG0zMngyIHwgaTMyLCBpMzIpOwotLQotLWltcGxfc2ltZF9hcnJheSEoW2k2NDsgMV06IGk2 NHgxIHwgaTY0KTsKLS1pbXBsX3NpbWRfYXJyYXkhKFt1NjQ7IDFdOiB1NjR4MSB8IHU2NCk7Ci0t aW1wbF9zaW1kX2FycmF5IShbZjY0OyAxXTogZjY0eDEgfCBmNjQpOwotLWltcGxfc2ltZF9hcnJh eSEoW202NDsgMV06IG02NHgxIHwgaTY0KTsKLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0 L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3ZQdHIucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tl ZF9zaW1kL3NyYy9jb2RlZ2VuL3ZQdHIucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2Vk X3NpbWQvc3JjL2NvZGVnZW4vdlB0ci5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCAr MDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi92UHRy LnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSwzNSArMCwwIEBA Ci0tLy8hIFBvaW50ZXIgdmVjdG9yIHR5cGVzCi0tCi0tbWFjcm9fcnVsZXMhIGltcGxfc2ltZF9w dHIgewotLSAgICAoWyRwdHJfdHk6dHk7ICRlbGVtX2NvdW50OmV4cHJdOiAkdHVwbGVfaWQ6aWRl bnQgfCAkdHk6aWRlbnQKLS0gICAgIHwgJCgkdHlzOnR5KSwqKSA9PiB7Ci0tICAgICAgICAjW2Rl cml2ZShDb3B5LCBDbG9uZSldCi0tICAgICAgICAjW3JlcHIoc2ltZCldCi0tICAgICAgICBwdWIg c3RydWN0ICR0dXBsZV9pZDwkdHk+KCQocHViKGNyYXRlKSAkdHlzKSwqKTsKLS0gICAgICAgIC8v Xl5eXl5eXiBsZWFrZWQgdGhyb3VnaCBTaW1kQXJyYXkKLS0KLS0gICAgICAgIGltcGw8JHR5PiBj cmF0ZTo6c2VhbGVkOjpTZWFsIGZvciBbJHB0cl90eTsgJGVsZW1fY291bnRdIHt9Ci0tICAgICAg ICBpbXBsPCR0eT4gY3JhdGU6OnNlYWxlZDo6U2ltZEFycmF5IGZvciBbJHB0cl90eTsgJGVsZW1f Y291bnRdIHsKLS0gICAgICAgICAgICB0eXBlIFR1cGxlID0gJHR1cGxlX2lkPCRwdHJfdHk+Owot LSAgICAgICAgICAgIHR5cGUgVCA9ICRwdHJfdHk7Ci0tICAgICAgICAgICAgY29uc3QgTjogdXNp emUgPSAkZWxlbV9jb3VudDsKLS0gICAgICAgICAgICB0eXBlIE5UID0gW3UzMjsgJGVsZW1fY291 bnRdOwotLSAgICAgICAgfQotLQotLSAgICAgICAgaW1wbDwkdHk+IGNyYXRlOjpzZWFsZWQ6OlNl YWwgZm9yICR0dXBsZV9pZDwkcHRyX3R5PiB7fQotLSAgICAgICAgaW1wbDwkdHk+IGNyYXRlOjpz ZWFsZWQ6OlNpbWQgZm9yICR0dXBsZV9pZDwkcHRyX3R5PiB7Ci0tICAgICAgICAgICAgdHlwZSBF bGVtZW50ID0gJHB0cl90eTsKLS0gICAgICAgICAgICBjb25zdCBMQU5FUzogdXNpemUgPSAkZWxl bV9jb3VudDsKLS0gICAgICAgICAgICB0eXBlIExhbmVzVHlwZSA9IFt1MzI7ICRlbGVtX2NvdW50 XTsKLS0gICAgICAgIH0KLS0KLS0gICAgfQotLX0KLS0KLS1pbXBsX3NpbWRfcHRyIShbKmNvbnN0 IFQ7IDJdOiBjcHRyeDIgfCBUIHwgVCwgVCk7Ci0taW1wbF9zaW1kX3B0ciEoWypjb25zdCBUOyA0 XTogY3B0cng0IHwgVCB8IFQsIFQsIFQsIFQpOwotLWltcGxfc2ltZF9wdHIhKFsqY29uc3QgVDsg OF06IGNwdHJ4OCB8IFQgfCBULCBULCBULCBULCBULCBULCBULCBUKTsKLS0KLS1pbXBsX3NpbWRf cHRyIShbKm11dCBUOyAyXTogbXB0cngyIHwgVCB8IFQsIFQpOwotLWltcGxfc2ltZF9wdHIhKFsq bXV0IFQ7IDRdOiBtcHRyeDQgfCBUIHwgVCwgVCwgVCwgVCk7Ci0taW1wbF9zaW1kX3B0ciEoWypt dXQgVDsgOF06IG1wdHJ4OCB8IFQgfCBULCBULCBULCBULCBULCBULCBULCBUKTsKLWRpZmYgLU5y YnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3ZTaXplLnJzIGIv dGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi92U2l6ZS5ycwotLS0tIGEv dGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi92U2l6ZS5ycwkyMDI1LTA0 LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNr ZWRfc2ltZC9zcmMvY29kZWdlbi92U2l6ZS5ycwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAw MCArMDMwMAotQEAgLTEsMTYgKzAsMCBAQAotLS8vISBWZWN0b3IgdHlwZXMgd2l0aCBwb2ludGVy LXNpemVkIGVsZW1lbnRzCi0tCi0tdXNlIGNyYXRlOjpjb2RlZ2VuOjpwb2ludGVyX3NpemVkX2lu dDo6e2lzaXplXywgdXNpemVffTsKLS11c2UgY3JhdGU6Om1hc2tzOjoqOwotLQotLWltcGxfc2lt ZF9hcnJheSEoW2lzaXplOyAyXTogaXNpemV4MiB8IGlzaXplXywgaXNpemVfKTsKLS1pbXBsX3Np bWRfYXJyYXkhKFt1c2l6ZTsgMl06IHVzaXpleDIgfCB1c2l6ZV8sIHVzaXplXyk7Ci0taW1wbF9z aW1kX2FycmF5IShbbXNpemU7IDJdOiBtc2l6ZXgyIHwgaXNpemVfLCBpc2l6ZV8pOwotLQotLWlt cGxfc2ltZF9hcnJheSEoW2lzaXplOyA0XTogaXNpemV4NCB8IGlzaXplXywgaXNpemVfLCBpc2l6 ZV8sIGlzaXplXyk7Ci0taW1wbF9zaW1kX2FycmF5IShbdXNpemU7IDRdOiB1c2l6ZXg0IHwgdXNp emVfLCB1c2l6ZV8sIHVzaXplXywgdXNpemVfKTsKLS1pbXBsX3NpbWRfYXJyYXkhKFttc2l6ZTsg NF06IG1zaXpleDQgfCBpc2l6ZV8sIGlzaXplXywgaXNpemVfLCBpc2l6ZV8pOwotLQotLWltcGxf c2ltZF9hcnJheSEoW2lzaXplOyA4XTogaXNpemV4OCB8IGlzaXplXywgaXNpemVfLCBpc2l6ZV8s IGlzaXplXywgaXNpemVfLCBpc2l6ZV8sIGlzaXplXywgaXNpemVfKTsKLS1pbXBsX3NpbWRfYXJy YXkhKFt1c2l6ZTsgOF06IHVzaXpleDggfCB1c2l6ZV8sIHVzaXplXywgdXNpemVfLCB1c2l6ZV8s IHVzaXplXywgdXNpemVfLCB1c2l6ZV8sIHVzaXplXyk7Ci0taW1wbF9zaW1kX2FycmF5IShbbXNp emU7IDhdOiBtc2l6ZXg4IHwgaXNpemVfLCBpc2l6ZV8sIGlzaXplXywgaXNpemVfLCBpc2l6ZV8s IGlzaXplXywgaXNpemVfLCBpc2l6ZV8pOwotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3Qv cGFja2VkX3NpbWQvc3JjL2NvZGVnZW4ucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1k L3NyYy9jb2RlZ2VuLnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9j b2RlZ2VuLnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGly ZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuLnJzCTE5NzAtMDEtMDEgMDM6MDA6 MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSw2MiArMCwwIEBACi0tLy8hIENvZGUtZ2VuZXJhdGlv biB1dGlsaXRpZXMKLS0KLS1wdWIoY3JhdGUpIG1vZCBiaXRfbWFuaXA7Ci0tcHViKGNyYXRlKSBt b2QgbGx2bTsKLS1wdWIoY3JhdGUpIG1vZCBtYXRoOwotLXB1YihjcmF0ZSkgbW9kIHJlZHVjdGlv bnM7Ci0tcHViKGNyYXRlKSBtb2Qgc2h1ZmZsZTsKLS1wdWIoY3JhdGUpIG1vZCBzaHVmZmxlMV9k eW47Ci0tcHViKGNyYXRlKSBtb2Qgc3dhcF9ieXRlczsKLS0KLS1tYWNyb19ydWxlcyEgaW1wbF9z aW1kX2FycmF5IHsKLS0gICAgKFskZWxlbV90eTppZGVudDsgJGVsZW1fY291bnQ6ZXhwcl06Ci0t ICAgICAkdHVwbGVfaWQ6aWRlbnQgfCAkKCRlbGVtX3R5czppZGVudCksKikgPT4gewotLSAgICAg ICAgI1tkZXJpdmUoQ29weSwgQ2xvbmUpXQotLSAgICAgICAgI1tyZXByKHNpbWQpXQotLSAgICAg ICAgcHViIHN0cnVjdCAkdHVwbGVfaWQoJChwdWIoY3JhdGUpICRlbGVtX3R5cyksKik7Ci0tICAg ICAgICAvL15eXl5eXl4gbGVha2VkIHRocm91Z2ggU2ltZEFycmF5Ci0tCi0tICAgICAgICBpbXBs IGNyYXRlOjpzZWFsZWQ6OlNlYWwgZm9yIFskZWxlbV90eTsgJGVsZW1fY291bnRdIHt9Ci0tCi0t ICAgICAgICBpbXBsIGNyYXRlOjpzZWFsZWQ6OlNpbWRBcnJheSBmb3IgWyRlbGVtX3R5OyAkZWxl bV9jb3VudF0gewotLSAgICAgICAgICAgIHR5cGUgVHVwbGUgPSAkdHVwbGVfaWQ7Ci0tICAgICAg ICAgICAgdHlwZSBUID0gJGVsZW1fdHk7Ci0tICAgICAgICAgICAgY29uc3QgTjogdXNpemUgPSAk ZWxlbV9jb3VudDsKLS0gICAgICAgICAgICB0eXBlIE5UID0gW3UzMjsgJGVsZW1fY291bnRdOwot LSAgICAgICAgfQotLQotLSAgICAgICAgaW1wbCBjcmF0ZTo6c2VhbGVkOjpTZWFsIGZvciAkdHVw bGVfaWQge30KLS0gICAgICAgIGltcGwgY3JhdGU6OnNlYWxlZDo6U2ltZCBmb3IgJHR1cGxlX2lk IHsKLS0gICAgICAgICAgICB0eXBlIEVsZW1lbnQgPSAkZWxlbV90eTsKLS0gICAgICAgICAgICBj b25zdCBMQU5FUzogdXNpemUgPSAkZWxlbV9jb3VudDsKLS0gICAgICAgICAgICB0eXBlIExhbmVz VHlwZSA9IFt1MzI7ICRlbGVtX2NvdW50XTsKLS0gICAgICAgIH0KLS0KLS0gICAgfQotLX0KLS0K LS1wdWIoY3JhdGUpIG1vZCBwb2ludGVyX3NpemVkX2ludDsKLS0KLS1wdWIoY3JhdGUpIG1vZCB2 MTY7Ci0tcHViKGNyYXRlKSB1c2Ugc2VsZjo6djE2OjoqOwotLQotLXB1YihjcmF0ZSkgbW9kIHYz MjsKLS1wdWIoY3JhdGUpIHVzZSBzZWxmOjp2MzI6Oio7Ci0tCi0tcHViKGNyYXRlKSBtb2QgdjY0 OwotLXB1YihjcmF0ZSkgdXNlIHNlbGY6OnY2NDo6KjsKLS0KLS1wdWIoY3JhdGUpIG1vZCB2MTI4 OwotLXB1YihjcmF0ZSkgdXNlIHNlbGY6OnYxMjg6Oio7Ci0tCi0tcHViKGNyYXRlKSBtb2QgdjI1 NjsKLS1wdWIoY3JhdGUpIHVzZSBzZWxmOjp2MjU2OjoqOwotLQotLXB1YihjcmF0ZSkgbW9kIHY1 MTI7Ci0tcHViKGNyYXRlKSB1c2Ugc2VsZjo6djUxMjo6KjsKLS0KLS1wdWIoY3JhdGUpIG1vZCB2 U2l6ZTsKLS1wdWIoY3JhdGUpIHVzZSBzZWxmOjp2U2l6ZTo6KjsKLS0KLS1wdWIoY3JhdGUpIG1v ZCB2UHRyOwotLXB1YihjcmF0ZSkgdXNlIHNlbGY6OnZQdHI6Oio7Ci1kaWZmIC1OcmJ1IGEvdGhp cmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvbGliLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9w YWNrZWRfc2ltZC9zcmMvbGliLnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1k L3NyYy9saWIucnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3Ro aXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2xpYi5ycwkxOTcwLTAxLTAxIDAzOjAwOjAw LjAwMDAwMDAwMCArMDMwMAotQEAgLTEsMzQ4ICswLDAgQEAKLS0vLyEgIyBQb3J0YWJsZSBwYWNr ZWQgU0lNRCB2ZWN0b3JzCi0tLy8hCi0tLy8hIFRoaXMgY3JhdGUgaXMgcHJvcG9zZWQgZm9yIHN0 YWJpbGl6YXRpb24gYXMgYHN0ZDo6cGFja2VkX3NpbWRgIGluIFtSRkMyMzY2OgotLS8vISBgc3Rk OjpzaW1kYF0oaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9yZmNzL3B1bGwvMjM2NikgLgot LS8vIQotLS8vISBUaGUgZXhhbXBsZXMgYXZhaWxhYmxlIGluIHRoZQotLS8vISBbYGV4YW1wbGVz L2BdKGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmctbnVyc2VyeS9wYWNrZWRfc2ltZC90cmVl L21hc3Rlci9leGFtcGxlcykKLS0vLyEgc3ViLWRpcmVjdG9yeSBvZiB0aGUgY3JhdGUgc2hvd2Nh c2UgaG93IHRvIHVzZSB0aGUgbGlicmFyeSBpbiBwcmFjdGljZS4KLS0vLyEKLS0vLyEgIyMgVGFi bGUgb2YgY29udGVudHMKLS0vLyEKLS0vLyEgLSBbSW50cm9kdWN0aW9uXSgjaW50cm9kdWN0aW9u KQotLS8vISAtIFtWZWN0b3IgdHlwZXNdKCN2ZWN0b3ItdHlwZXMpCi0tLy8hIC0gW0NvbmRpdGlv bmFsIG9wZXJhdGlvbnNdKCNjb25kaXRpb25hbC1vcGVyYXRpb25zKQotLS8vISAtIFtDb252ZXJz aW9uc10oI2NvbnZlcnNpb25zKQotLS8vISAtIFtIYXJkd2FyZSBGZWF0dXJlc10oI2hhcmR3YXJl LWZlYXR1cmVzKQotLS8vISAtIFtQZXJmb3JtYW5jZSBndWlkZV0oaHR0cHM6Ly9ydXN0LWxhbmct bnVyc2VyeS5naXRodWIuaW8vcGFja2VkX3NpbWQvcGVyZi1ndWlkZS8pCi0tLy8hCi0tLy8hICMj IEludHJvZHVjdGlvbgotLS8vIQotLS8vISBUaGlzIGNyYXRlIGV4cG9ydHMgW2BTaW1kPFtUOyBO XT5gXVtgU2ltZGBdOiBhIHBhY2tlZCB2ZWN0b3Igb2YgYE5gCi0tLy8hIGVsZW1lbnRzIG9mIHR5 cGUgYFRgIGFzIHdlbGwgYXMgbWFueSB0eXBlIGFsaWFzZXMgZm9yIHRoaXMgdHlwZTogZm9yCi0t Ly8hIGV4YW1wbGUsIFtgZjMyeDRgXSwgd2hpY2ggaXMganVzdCBhbiBhbGlhcyBmb3IgYFNpbWQ8 W2YzMjsgNF0+YC4KLS0vLyEKLS0vLyEgVGhlIG9wZXJhdGlvbnMgb24gcGFja2VkIHZlY3RvcnMg YXJlLCBieSBkZWZhdWx0LCAidmVydGljYWwiLCB0aGF0IGlzLCB0aGV5Ci0tLy8hIGFyZSBhcHBs aWVkIHRvIGVhY2ggdmVjdG9yIGxhbmUgaW4gaXNvbGF0aW9uIG9mIHRoZSBvdGhlcnM6Ci0tLy8h Ci0tLy8hIGBgYAotLS8vISAjIHVzZSBwYWNrZWRfc2ltZDo6KjsKLS0vLyEgbGV0IGEgPSBpMzJ4 NDo6bmV3KDEsIDIsIDMsIDQpOwotLS8vISBsZXQgYiA9IGkzMng0OjpuZXcoNSwgNiwgNywgOCk7 Ci0tLy8hIGFzc2VydF9lcSEoYSArIGIsIGkzMng0OjpuZXcoNiwgOCwgMTAsIDEyKSk7Ci0tLy8h IGBgYAotLS8vIQotLS8vISBNYW55ICJob3Jpem9udGFsIiBvcGVyYXRpb25zIGFyZSBhbHNvIHBy b3ZpZGVkOgotLS8vIQotLS8vISBgYGAKLS0vLyEgIyB1c2UgcGFja2VkX3NpbWQ6Oio7Ci0tLy8h ICMgbGV0IGEgPSBpMzJ4NDo6bmV3KDEsIDIsIDMsIDQpOwotLS8vISBhc3NlcnRfZXEhKGEud3Jh cHBpbmdfc3VtKCksIDEwKTsKLS0vLyEgYGBgCi0tLy8hCi0tLy8hIEluIHZpcnR1YWxseSBhbGwg YXJjaGl0ZWN0dXJlcyB2ZXJ0aWNhbCBvcGVyYXRpb25zIGFyZSBmYXN0LCB3aGlsZQotLS8vISBo b3Jpem9udGFsIG9wZXJhdGlvbnMgYXJlLCBieSBjb21wYXJpc29uLCBtdWNoIHNsb3dlci4gVGhh dCBpcywgdGhlCi0tLy8hIG1vc3QgcG9ydGFibHktZWZmaWNpZW50IHdheSBvZiBwZXJmb3JtaW5n IGEgcmVkdWN0aW9uIG92ZXIgYSBzbGljZQotLS8vISBpcyB0byBjb2xsZWN0IHRoZSByZXN1bHRz IGludG8gYSB2ZWN0b3IgdXNpbmcgdmVydGljYWwgb3BlcmF0aW9ucywKLS0vLyEgYW5kIHBlcmZv cm1pbmcgYSBzaW5nbGUgaG9yaXpvbnRhbCBvcGVyYXRpb24gYXQgdGhlIGVuZDoKLS0vLyEKLS0v LyEgYGBgCi0tLy8hICMgdXNlIHBhY2tlZF9zaW1kOjoqOwotLS8vISBmbiByZWR1Y2UoeDogJltp MzJdKSAtPiBpMzIgewotLS8vISAgICAgYXNzZXJ0X2VxISh4LmxlbigpICUgNCwgMCk7Ci0tLy8h ICAgICBsZXQgbXV0IHN1bSA9IGkzMng0OjpzcGxhdCgwKTsgLy8gWzAsIDAsIDAsIDBdCi0tLy8h ICAgICBmb3IgaSBpbiAoMC4ueC5sZW4oKSkuc3RlcF9ieSg0KSB7Ci0tLy8hICAgICAgICAgc3Vt ICs9IGkzMng0Ojpmcm9tX3NsaWNlX3VuYWxpZ25lZCgmeFtpLi5dKTsKLS0vLyEgICAgIH0KLS0v LyEgICAgIHN1bS53cmFwcGluZ19zdW0oKQotLS8vISB9Ci0tLy8hCi0tLy8hIGxldCB4ID0gWzAs IDEsIDIsIDMsIDQsIDUsIDYsIDddOwotLS8vISBhc3NlcnRfZXEhKHJlZHVjZSgmeCksIDI4KTsK LS0vLyEgYGBgCi0tLy8hCi0tLy8hICMjIFZlY3RvciB0eXBlcwotLS8vIQotLS8vISBUaGUgdmVj dG9yIHR5cGUgYWxpYXNlcyBhcmUgbmFtZWQgYWNjb3JkaW5nIHRvIHRoZSBmb2xsb3dpbmcgc2No ZW1lOgotLS8vIQotLS8vISA+IGB7ZWxlbWVudF90eXBlfXh7bnVtYmVyX29mX2xhbmVzfSA9PSBT aW1kPFtlbGVtZW50X3R5cGU7Ci0tLy8hIG51bWJlcl9vZl9sYW5lc10+YAotLS8vIQotLS8vISB3 aGVyZSB0aGUgZm9sbG93aW5nIGVsZW1lbnQgdHlwZXMgYXJlIHN1cHBvcnRlZDoKLS0vLyEKLS0v LyEgKiBgaXtlbGVtZW50X3dpZHRofWA6IHNpZ25lZCBpbnRlZ2VyCi0tLy8hICogYHV7ZWxlbWVu dF93aWR0aH1gOiB1bnNpZ25lZCBpbnRlZ2VyCi0tLy8hICogYGZ7ZWxlbWVudF93aWR0aH1gOiBm bG9hdAotLS8vISAqIGBte2VsZW1lbnRfd2lkdGh9YDogbWFzayAoc2VlIGJlbG93KQotLS8vISAq IGAqe2NvbnN0LG11dH0gVGA6IGBjb25zdGAgYW5kIGBtdXRgIHBvaW50ZXJzCi0tLy8hCi0tLy8h ICMjIEJhc2ljIG9wZXJhdGlvbnMKLS0vLyEKLS0vLyEgYGBgCi0tLy8hICMgdXNlIHBhY2tlZF9z aW1kOjoqOwotLS8vISAvLyBTZXRzIGFsbCBlbGVtZW50cyB0byBgMGA6Ci0tLy8hIGxldCBhID0g aTMyeDQ6OnNwbGF0KDApOwotLS8vIQotLS8vISAvLyBSZWFkcyBhIHZlY3RvciBmcm9tIGEgc2xp Y2U6Ci0tLy8hIGxldCBtdXQgYXJyID0gWzAsIDAsIDAsIDEsIDIsIDMsIDQsIDVdOwotLS8vISBs ZXQgYiA9IGkzMng0Ojpmcm9tX3NsaWNlX3VuYWxpZ25lZCgmYXJyKTsKLS0vLyEKLS0vLyEgLy8g UmVhZHMgdGhlIDQtdGggZWxlbWVudCBvZiBhIHZlY3RvcjoKLS0vLyEgYXNzZXJ0X2VxIShiLmV4 dHJhY3QoMyksIDEpOwotLS8vIQotLS8vISAvLyBSZXR1cm5zIGEgbmV3IHZlY3RvciB3aGVyZSB0 aGUgNC10aCBlbGVtZW50IGlzIHJlcGxhY2VkIHdpdGggYDFgOgotLS8vISBsZXQgYSA9IGEucmVw bGFjZSgzLCAxKTsKLS0vLyEgYXNzZXJ0X2VxIShhLCBiKTsKLS0vLyEKLS0vLyEgLy8gV3JpdGVz IGEgdmVjdG9yIHRvIGEgc2xpY2U6Ci0tLy8hIGxldCBhID0gYS5yZXBsYWNlKDIsIDEpOwotLS8v ISBhLndyaXRlX3RvX3NsaWNlX3VuYWxpZ25lZCgmbXV0IGFycls0Li5dKTsKLS0vLyEgYXNzZXJ0 X2VxIShhcnIsIFswLCAwLCAwLCAxLCAwLCAwLCAxLCAxXSk7Ci0tLy8hIGBgYAotLS8vIQotLS8v ISAjIyBDb25kaXRpb25hbCBvcGVyYXRpb25zCi0tLy8hCi0tLy8hIE9uZSBvZnRlbiBuZWVkcyB0 byBwZXJmb3JtIGFuIG9wZXJhdGlvbiBvbiBzb21lIGxhbmVzIG9mIHRoZSB2ZWN0b3IuIFZlY3Rv cgotLS8vISBtYXNrcywgbGlrZSBgbTMyeDRgLCBhbGxvdyBzZWxlY3Rpbmcgb24gd2hpY2ggdmVj dG9yIGxhbmVzIGFuIG9wZXJhdGlvbiBpcwotLS8vISB0byBiZSBwZXJmb3JtZWQ6Ci0tLy8hCi0t Ly8hIGBgYAotLS8vISAjIHVzZSBwYWNrZWRfc2ltZDo6KjsKLS0vLyEgbGV0IGEgPSBpMzJ4NDo6 bmV3KDEsIDEsIDIsIDIpOwotLS8vIQotLS8vISAvLyBBZGQgYDFgIHRvIHRoZSBmaXJzdCB0d28g bGFuZXMgb2YgdGhlIHZlY3Rvci4KLS0vLyEgbGV0IG0gPSBtMTZ4NDo6bmV3KHRydWUsIHRydWUs IGZhbHNlLCBmYWxzZSk7Ci0tLy8hIGxldCBhID0gbS5zZWxlY3QoYSArIDEsIGEpOwotLS8vISBh c3NlcnRfZXEhKGEsIGkzMng0OjpzcGxhdCgyKSk7Ci0tLy8hIGBgYAotLS8vIQotLS8vISBUaGUg ZWxlbWVudHMgb2YgYSB2ZWN0b3IgbWFzayBhcmUgZWl0aGVyIGB0cnVlYCBvciBgZmFsc2VgLiBI ZXJlIGB0cnVlYAotLS8vISBtZWFucyB0aGF0IGEgbGFuZSBpcyAic2VsZWN0ZWQiLCB3aGlsZSBg ZmFsc2VgIG1lYW5zIHRoYXQgYSBsYW5lIGlzIG5vdAotLS8vISBzZWxlY3RlZC4KLS0vLyEKLS0v LyEgQWxsIHZlY3RvciBtYXNrcyBpbXBsZW1lbnQgYSBgbWFzay5zZWxlY3QoYTogVCwgYjogVCkg LT4gVGAgbWV0aG9kIHRoYXQKLS0vLyEgd29ya3Mgb24gYWxsIHZlY3RvcnMgdGhhdCBoYXZlIHRo ZSBzYW1lIG51bWJlciBvZiBsYW5lcyBhcyB0aGUgbWFzay4gVGhlCi0tLy8hIHJlc3VsdGluZyB2 ZWN0b3IgY29udGFpbnMgdGhlIGVsZW1lbnRzIG9mIGBhYCBmb3IgdGhvc2UgbGFuZXMgZm9yIHdo aWNoIHRoZQotLS8vISBtYXNrIGlzIGB0cnVlYCwgYW5kIHRoZSBlbGVtZW50cyBvZiBgYmAgb3Ro ZXJ3aXNlLgotLS8vIQotLS8vISBUaGUgZXhhbXBsZSBjb25zdHJ1Y3RzIGEgbWFzayB3aXRoIHRo ZSBmaXJzdCB0d28gbGFuZXMgc2V0IHRvIGB0cnVlYCBhbmQKLS0vLyEgdGhlIGxhc3QgdHdvIGxh bmVzIHNldCB0byBgZmFsc2VgLiBUaGlzIHNlbGVjdHMgdGhlIGZpcnN0IHR3byBsYW5lcyBvZiBg YSArCi0tLy8hIDFgIGFuZCB0aGUgbGFzdCB0d28gbGFuZXMgb2YgYGFgLCBwcm9kdWNpbmcgYSB2 ZWN0b3Igd2hlcmUgdGhlIGZpcnN0IHR3bwotLS8vISBsYW5lcyBoYXZlIGJlZW4gaW5jcmVtZW50 ZWQgYnkgYDFgLgotLS8vIQotLS8vISA+IG5vdGU6IG1hc2sgYHNlbGVjdGAgY2FuIGJlIHVzZWQg b24gdmVjdG9yIHR5cGVzIHRoYXQgaGF2ZSB0aGUgc2FtZSBudW1iZXIKLS0vLyEgPiBvZiBsYW5l cyBhcyB0aGUgbWFzay4gVGhlIGV4YW1wbGUgc2hvd3MgdGhpcyBieSB1c2luZyBbYG0xNng0YF0g aW5zdGVhZAotLS8vISA+IG9mIFtgbTMyeDRgXS4gSXQgaXMgX3R5cGljYWxseV8gbW9yZSBwZXJm b3JtYW50IHRvIHVzZSBhIG1hc2sgZWxlbWVudAotLS8vISA+IHdpZHRoIGVxdWFsIHRvIHRoZSBl bGVtZW50IHdpZHRoIG9mIHRoZSB2ZWN0b3JzIGJlaW5nIG9wZXJhdGVkIHVwb24uCi0tLy8hID4g VGhpcyBpcywgaG93ZXZlciwgbm90IHRydWUgZm9yIDUxMi1iaXQgd2lkZSB2ZWN0b3JzIHdoZW4g dGFyZ2V0aW5nCi0tLy8hID4gQVZYLTUxMiwgd2hlcmUgdGhlIG1vc3QgZWZmaWNpZW50IG1hc2tz IHVzZSBvbmx5IDEtYml0IHBlciBlbGVtZW50LgotLS8vIQotLS8vISBBbGwgdmVydGljYWwgY29t cGFyaXNvbiBvcGVyYXRpb25zIHJldHVybnMgbWFza3M6Ci0tLy8hCi0tLy8hIGBgYAotLS8vISAj IHVzZSBwYWNrZWRfc2ltZDo6KjsKLS0vLyEgbGV0IGEgPSBpMzJ4NDo6bmV3KDEsIDEsIDMsIDMp OwotLS8vISBsZXQgYiA9IGkzMng0OjpuZXcoMiwgMiwgMCwgMCk7Ci0tLy8hCi0tLy8hIC8vIGdl OiA+PSAoR3JlYXRlciBFZXF1YWw7IHNlZSBhbHNvIGx0LCBsZSwgZ3QsIGVxLCBuZSkuCi0tLy8h IGxldCBtID0gYS5nZShpMzJ4NDo6c3BsYXQoMikpOwotLS8vIQotLS8vISBpZiBtLmFueSgpIHsK LS0vLyEgICAgIC8vIGFsbCAvIGFueSAvIG5vbmUgYWxsb3cgY29oZXJlbnQgY29udHJvbCBmbG93 Ci0tLy8hICAgICBsZXQgZCA9IG0uc2VsZWN0KGEsIGIpOwotLS8vISAgICAgYXNzZXJ0X2VxIShk LCBpMzJ4NDo6bmV3KDIsIDIsIDMsIDMpKTsKLS0vLyEgfQotLS8vISBgYGAKLS0vLyEKLS0vLyEg IyMgQ29udmVyc2lvbnMKLS0vLyEKLS0vLyEgKiAqKmxvc3NsZXNzIHdpZGVuaW5nIGNvbnZlcnNp b25zKio6IFtgRnJvbWBdL1tgSW50b2BdIGFyZSBpbXBsZW1lbnRlZCBmb3IKLS0vLyEgICB2ZWN0 b3JzIHdpdGggdGhlIHNhbWUgbnVtYmVyIG9mIGxhbmVzIHdoZW4gdGhlIGNvbnZlcnNpb24gaXMg dmFsdWUKLS0vLyEgcHJlc2VydmluZyAgIChzYW1lIGFzIGluIGBzdGRgKS4KLS0vLyEKLS0vLyEg KiAqKnNhZmUgYml0d2lzZSBjb252ZXJzaW9ucyoqOiBUaGUgY2FyZ28gZmVhdHVyZSBgaW50b19i aXRzYCBwcm92aWRlcyB0aGUKLS0vLyEgICBgSW50b0JpdHMvRnJvbUJpdHNgIHRyYWl0cyAoYHgu aW50b19iaXRzKClgKS4gVGhlc2UgcGVyZm9ybSBzYWZlIGJpdHdpc2UKLS0vLyEgICBgdHJhbnNt dXRlYHMgd2hlbiBhbGwgYml0IHBhdHRlcm5zIG9mIHRoZSBzb3VyY2UgdHlwZSBhcmUgdmFsaWQg Yml0Ci0tLy8hICAgcGF0dGVybnMgb2YgdGhlIHRhcmdldCB0eXBlIGFuZCBhcmUgYWxzbyBpbXBs ZW1lbnRlZCBmb3IgdGhlCi0tLy8hICAgYXJjaGl0ZWN0dXJlLXNwZWNpZmljIHZlY3RvciB0eXBl cyBvZiBgc3RkOjphcmNoYC4gRm9yIGV4YW1wbGUsIGBsZXQgeDoKLS0vLyEgICB1OHg4ID0gbTh4 ODo6c3BsYXQodHJ1ZSkuaW50b19iaXRzKCk7YCBpcyBwcm92aWRlZCBiZWNhdXNlIGFsbCBgbTh4 OGAgYml0Ci0tLy8hICAgcGF0dGVybnMgYXJlIHZhbGlkIGB1OHg4YCBiaXQgcGF0dGVybnMuIEhv d2V2ZXIsIHRoZSBvcHBvc2l0ZSBpcyBub3QKLS0vLyEgdHJ1ZSwgICBub3QgYWxsIGB1OHg4YCBi aXQgcGF0dGVybnMgYXJlIHZhbGlkIGBtOHg4YCBiaXQtcGF0dGVybnMsIHNvIHRoaXMKLS0vLyEg ICBvcGVyYXRpb24gY2Fubm90IGJlIHBlcmZvcm1lZCBzYWZlbHkgdXNpbmcgYHguaW50b19iaXRz KClgOyBvbmUgbmVlZHMgdG8KLS0vLyEgICB1c2UgYHVuc2FmZSB7IGNyYXRlOjptZW06OnRyYW5z bXV0ZSh4KSB9YCBmb3IgdGhhdCwgbWFraW5nIHN1cmUgdGhhdCB0aGUKLS0vLyEgICB2YWx1ZSBp biB0aGUgYHU4eDhgIGlzIGEgdmFsaWQgYml0LXBhdHRlcm4gb2YgYG04eDhgLgotLS8vIQotLS8v ISAqICoqbnVtZXJpYyBjYXN0cyoqIChgYXNgKTogYXJlIHBlcmZvcm1lZCB1c2luZyBbYEZyb21D YXN0YF0vW2BDYXN0YF0KLS0vLyEgKGB4LmNhc3QoKWApLCBqdXN0IGxpa2UgYGFzYDoKLS0vLyEK LS0vLyEgICAqIGNhc3RpbmcgaW50ZWdlciB2ZWN0b3JzIHdob3NlIGxhbmUgdHlwZXMgaGF2ZSB0 aGUgc2FtZSBzaXplIChlLmcuCi0tLy8hIGBpMzJ4TmAgICAgIC0+IGB1MzJ4TmApIGlzIGEgKipu by1vcCoqLAotLS8vIQotLS8vISAgICogY2FzdGluZyBmcm9tIGEgbGFyZ2VyIGludGVnZXIgdG8g YSBzbWFsbGVyIGludGVnZXIgKGUuZy4gYHUzMnhOYCAtPgotLS8vISBgdTh4TmApICAgICB3aWxs ICoqdHJ1bmNhdGUqKiwKLS0vLyEKLS0vLyEgICAqIGNhc3RpbmcgZnJvbSBhIHNtYWxsZXIgaW50 ZWdlciB0byBhIGxhcmdlciBpbnRlZ2VyICAgICAoZS5nLiBgdTh4TmAgLT4KLS0vLyEgICAgIGB1 MzJ4TmApIHdpbGw6Ci0tLy8hICAgICAgICAqICoqemVyby1leHRlbmQqKiBpZiB0aGUgc291cmNl IGlzIHVuc2lnbmVkLCBvcgotLS8vISAgICAgICAgKiAqKnNpZ24tZXh0ZW5kKiogaWYgdGhlIHNv dXJjZSBpcyBzaWduZWQsCi0tLy8hCi0tLy8hICAgKiBjYXN0aW5nIGZyb20gYSBmbG9hdCB0byBh biBpbnRlZ2VyIHdpbGwgKipyb3VuZCB0aGUgZmxvYXQgdG93YXJkcwotLS8vISB6ZXJvKiosCi0t Ly8hCi0tLy8hICAgKiBjYXN0aW5nIGZyb20gYW4gaW50ZWdlciB0byBmbG9hdCB3aWxsIHByb2R1 Y2UgdGhlIGZsb2F0aW5nIHBvaW50Ci0tLy8hICAgICByZXByZXNlbnRhdGlvbiBvZiB0aGUgaW50 ZWdlciwgKipyb3VuZGluZyB0byBuZWFyZXN0LCB0aWVzIHRvIGV2ZW4qKiwKLS0vLyEKLS0vLyEg ICAqIGNhc3RpbmcgZnJvbSBhbiBgZjMyYCB0byBhbiBgZjY0YCBpcyBwZXJmZWN0IGFuZCBsb3Nz bGVzcywKLS0vLyEKLS0vLyEgICAqIGNhc3RpbmcgZnJvbSBhbiBgZjY0YCB0byBhbiBgZjMyYCAq KnJvdW5kcyB0byBuZWFyZXN0LCB0aWVzIHRvIGV2ZW4qKi4KLS0vLyEKLS0vLyEgICBOdW1lcmlj IGNhc3RzIGFyZSBub3QgdmVyeSAicHJlY2lzZSI6IHNvbWV0aW1lcyBsb3NzeSwgc29tZXRpbWVz IHZhbHVlCi0tLy8hICAgcHJlc2VydmluZywgZXRjLgotLS8vIQotLS8vISAjIyBIYXJkd2FyZSBG ZWF0dXJlcwotLS8vIQotLS8vISBUaGlzIGNyYXRlIGNhbiB1c2UgZGlmZmVyZW50IGhhcmR3YXJl IGZlYXR1cmVzIGJhc2VkIG9uIHlvdXIgY29uZmlndXJlZAotLS8vISBgUlVTVEZMQUdTYC4gRm9y IGV4YW1wbGUsIHdpdGggbm8gY29uZmlndXJlZCBgUlVTVEZMQUdTYCwgYHU2NHg4YCBvbgotLS8v ISB4ODZfNjQgd2lsbCB1c2UgU1NFMiBvcGVyYXRpb25zIGxpa2UgYFBDTVBFUURgLiBJZiB5b3Ug Y29uZmlndXJlCi0tLy8hIGBSVVNURkxBR1M9Jy1DIHRhcmdldC1mZWF0dXJlPSthdngyLCthdngn YCBvbiBzdXBwb3J0ZWQgeDg2XzY0IGhhcmR3YXJlCi0tLy8hIHRoZSBzYW1lIGB1NjR4OGAgbWF5 IHVzZSB3aWRlciBBVlgyIG9wZXJhdGlvbnMgbGlrZSBgVlBDTVBFUVFgLiBJdCBpcwotLS8vISBp bXBvcnRhbnQgZm9yIHBlcmZvcm1hbmNlIGFuZCBmb3IgaGFyZHdhcmUgc3VwcG9ydCByZXF1aXJl bWVudHMgdGhhdAotLS8vISB5b3UgY2hvb3NlIGFuIGFwcHJvcHJpYXRlIHNldCBvZiBgdGFyZ2V0 LWZlYXR1cmVgIGFuZCBgdGFyZ2V0LWNwdWAKLS0vLyEgb3B0aW9ucyBkdXJpbmcgYnVpbGRzLiBG b3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIHRoZSBbUGVyZm9ybWFuY2UKLS0vLyEgZ3VpZGVdKGh0 dHBzOi8vcnVzdC1sYW5nLW51cnNlcnkuZ2l0aHViLmlvL3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUv KQotLQotLSMhW2ZlYXR1cmUoCi0tICAgIGFkdF9jb25zdF9wYXJhbXMsCi0tICAgIHJlcHJfc2lt ZCwKLS0gICAgcnVzdGNfYXR0cnMsCi0tICAgIHBsYXRmb3JtX2ludHJpbnNpY3MsCi0tICAgIHN0 ZHNpbWQsCi0tICAgIGFybV90YXJnZXRfZmVhdHVyZSwKLS0gICAgbGlua19sbHZtX2ludHJpbnNp Y3MsCi0tICAgIGNvcmVfaW50cmluc2ljcywKLS0gICAgc3RtdF9leHByX2F0dHJpYnV0ZXMsCi0t ICAgIGN1c3RvbV9pbm5lcl9hdHRyaWJ1dGVzLAotLSldCi0tIyFbYWxsb3cobm9uX2NhbWVsX2Nh c2VfdHlwZXMsIG5vbl9zbmFrZV9jYXNlLAotLSAgICAgICAgLy8gRklYTUU6IHRoZXNlIHR5cGVz IGFyZSB1bnNvdW5kIGluIEMgRkZJIGFscmVhZHkKLS0gICAgICAgIC8vIFNlZSBodHRwczovL2dp dGh1Yi5jb20vcnVzdC1sYW5nL3J1c3QvaXNzdWVzLzUzMzQ2Ci0tICAgICAgICBpbXByb3Blcl9j dHlwZXNfZGVmaW5pdGlvbnMsCi0tICAgICAgICBpbmNvbXBsZXRlX2ZlYXR1cmVzLAotLSAgICAg ICAgY2xpcHB5OjpjYXN0X3Bvc3NpYmxlX3RydW5jYXRpb24sCi0tICAgICAgICBjbGlwcHk6OmNh c3RfbG9zc2xlc3MsCi0tICAgICAgICBjbGlwcHk6OmNhc3RfcG9zc2libGVfd3JhcCwKLS0gICAg ICAgIGNsaXBweTo6Y2FzdF9wcmVjaXNpb25fbG9zcywKLS0gICAgICAgIC8vIFRPRE86IG1hbnVh bGx5IGFkZCB0aGUgYCNbbXVzdF91c2VdYCBhdHRyaWJ1dGUgd2hlcmUgYXBwcm9wcmlhdGUKLS0g ICAgICAgIGNsaXBweTo6bXVzdF91c2VfY2FuZGlkYXRlLAotLSAgICAgICAgLy8gVGhpcyBsaW50 IGlzIGN1cnJlbnRseSBicm9rZW4gZm9yIGdlbmVyaWMgY29kZQotLSAgICAgICAgLy8gU2VlIGh0 dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvcnVzdC1jbGlwcHkvaXNzdWVzLzM0MTAKLS0gICAg ICAgIGNsaXBweTo6dXNlX3NlbGYsCi0tICAgICAgICBjbGlwcHk6Ondyb25nX3NlbGZfY29udmVu dGlvbiwKLS0gICAgICAgIGNsaXBweTo6ZnJvbV9vdmVyX2ludG8sCi0tKV0KLS0jIVtjZmdfYXR0 cih0ZXN0LCBmZWF0dXJlKGhhc2htYXBfaW50ZXJuYWxzKSldCi0tIyFbY2ZnX2F0dHIoZG9jX2Nm ZywgZmVhdHVyZShkb2NfY2ZnKSldCi0tIyFbZGVueShydXN0XzIwMThfaWRpb21zLCBjbGlwcHk6 Om1pc3NpbmdfaW5saW5lX2luX3B1YmxpY19pdGVtcyldCi0tIyFbbm9fc3RkXQotLQotLXVzZSBj ZmdfaWY6OmNmZ19pZjsKLS0KLS1jZmdfaWYhIHsKLS0gICAgaWYgI1tjZmcoZmVhdHVyZSA9ICJj b3JlX2FyY2giKV0gewotLSAgICAgICAgI1thbGxvdyh1bnVzZWRfaW1wb3J0cyldCi0tICAgICAg ICB1c2UgY29yZV9hcmNoIGFzIGFyY2g7Ci0tICAgIH0gZWxzZSB7Ci0tICAgICAgICAjW2FsbG93 KHVudXNlZF9pbXBvcnRzKV0KLS0gICAgICAgIHVzZSBjb3JlOjphcmNoOwotLSAgICB9Ci0tfQot LQotLSNbY2ZnKGFsbCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB0ZXN0KSldCi0tdXNlIHdhc21f YmluZGdlbl90ZXN0OjoqOwotLQotLSNbYWxsb3codW51c2VkX2ltcG9ydHMpXQotLXVzZSBjb3Jl Ojp7Ci0tICAgIC8qIGFyY2ggKGhhbmRsZWQgYWJvdmUpLCAqLyBjbXAsIGYzMiwgZjY0LCBmbXQs IGhhc2gsIGhpbnQsIGkxMjgsIGkxNiwgaTMyLCBpNjQsIGk4LCBpbnRyaW5zaWNzLAotLSAgICBp c2l6ZSwgaXRlciwgbWFya2VyLCBtZW0sIG9wcywgcHRyLCBzbGljZSwgdTEyOCwgdTE2LCB1MzIs IHU2NCwgdTgsIHVzaXplLAotLX07Ci0tCi0tI1ttYWNyb191c2VdCi0tbW9kIHRlc3Rpbmc7Ci0t I1ttYWNyb191c2VdCi0tbW9kIGFwaTsKLS1tb2QgY29kZWdlbjsKLS1tb2Qgc2VhbGVkOwotLQot LXB1YiB1c2UgY3JhdGU6OnNlYWxlZDo6e01hc2ssIFNodWZmbGUsIFNpbWQgYXMgU2ltZFZlY3Rv ciwgU2ltZEFycmF5fTsKLS0KLS0vLy8gUGFja2VkIFNJTUQgdmVjdG9yIHR5cGUuCi0tLy8vCi0t Ly8vICMgRXhhbXBsZXMKLS0vLy8KLS0vLy8gYGBgCi0tLy8vICMgdXNlIHBhY2tlZF9zaW1kOjpT aW1kOwotLS8vLyBsZXQgdiA9IFNpbWQ6OjxbaTMyOyA0XT46Om5ldygwLCAxLCAyLCAzKTsKLS0v Ly8gYXNzZXJ0X2VxISh2LmV4dHJhY3QoMiksIDIpOwotLS8vLyBgYGAKLS0jW3JlcHIodHJhbnNw YXJlbnQpXQotLSNbZGVyaXZlKENvcHksIENsb25lKV0KLS1wdWIgc3RydWN0IFNpbWQ8QTogc2Vh bGVkOjpTaW1kQXJyYXk+KAotLSAgICAvLyBGSVhNRTogdGhpcyB0eXBlIHNob3VsZCBiZSBwcml2 YXRlLAotLSAgICAvLyBidXQgaXQgY3VycmVudGx5IG11c3QgYmUgcHVibGljIGZvciB0aGUKLS0g ICAgLy8gYHNodWZmbGUhYCBtYWNybyB0byB3b3JrOiBpdCBuZWVkcyB0bwotLSAgICAvLyBhY2Nl c3MgdGhlIGludGVybmFsIGByZXByKHNpbWQpYCB0eXBlCi0tICAgIC8vIHRvIGNhbGwgdGhlIHNo dWZmbGUgaW50cmluc2ljcy4KLS0gICAgI1tkb2MoaGlkZGVuKV0gcHViIDxBIGFzIHNlYWxlZDo6 U2ltZEFycmF5Pjo6VHVwbGUsCi0tKTsKLS0KLS1pbXBsPEE6IHNlYWxlZDo6U2ltZEFycmF5PiBz ZWFsZWQ6OlNlYWwgZm9yIFNpbWQ8QT4ge30KLS0KLS0vLy8gV3JhcHBlciBvdmVyIGBUYCBpbXBs ZW1lbnRpbmcgYSBsZXhpY29yYXBoaWNhbCBvcmRlciB2aWEgdGhlIGBQYXJ0aWFsT3JkYAotLS8v LyBhbmQvb3IgYE9yZGAgdHJhaXRzLgotLSNbcmVwcih0cmFuc3BhcmVudCldCi0tI1tkZXJpdmUo Q29weSwgQ2xvbmUsIERlYnVnKV0KLS0jW2FsbG93KGNsaXBweTo6bWlzc2luZ19pbmxpbmVfaW5f cHVibGljX2l0ZW1zKV0KLS1wdWIgc3RydWN0IExleGljb2dyYXBoaWNhbGx5T3JkZXJlZDxUPihU KTsKLS0KLS1tb2QgbWFza3M7Ci0tcHViIHVzZSBzZWxmOjptYXNrczo6KjsKLS0KLS1tb2QgdjE2 OwotLXB1YiB1c2Ugc2VsZjo6djE2OjoqOwotLQotLW1vZCB2MzI7Ci0tcHViIHVzZSBzZWxmOjp2 MzI6Oio7Ci0tCi0tbW9kIHY2NDsKLS1wdWIgdXNlIHNlbGY6OnY2NDo6KjsKLS0KLS1tb2QgdjEy ODsKLS1wdWIgdXNlIHNlbGY6OnYxMjg6Oio7Ci0tCi0tbW9kIHYyNTY7Ci0tcHViIHVzZSBzZWxm Ojp2MjU2OjoqOwotLQotLW1vZCB2NTEyOwotLXB1YiB1c2Ugc2VsZjo6djUxMjo6KjsKLS0KLS1t b2QgdlNpemU7Ci0tcHViIHVzZSBzZWxmOjp2U2l6ZTo6KjsKLS0KLS1tb2QgdlB0cjsKLS1wdWIg dXNlIHNlbGY6OnZQdHI6Oio7Ci0tCi0tcHViIHVzZSBzZWxmOjphcGk6OmNhc3Q6Oio7Ci0tCi0t I1tjZmcoZmVhdHVyZSA9ICJpbnRvX2JpdHMiKV0KLS1wdWIgdXNlIHNlbGY6OmFwaTo6aW50b19i aXRzOjoqOwotLQotLS8vIFJlLWV4cG9ydCB0aGUgc2h1ZmZsZSBpbnRyaW5zaWNzIHJlcXVpcmVk IGJ5IHRoZSBgc2h1ZmZsZSFgIG1hY3JvLgotLSNbZG9jKGhpZGRlbildCi0tcHViIHVzZSBzZWxm Ojpjb2RlZ2VuOjpsbHZtOjp7Ci0tICAgIF9fc2h1ZmZsZV92ZWN0b3IxNiwgX19zaHVmZmxlX3Zl Y3RvcjIsIF9fc2h1ZmZsZV92ZWN0b3IzMiwgX19zaHVmZmxlX3ZlY3RvcjQsIF9fc2h1ZmZsZV92 ZWN0b3I2NCwKLS0gICAgX19zaHVmZmxlX3ZlY3RvcjgsCi0tfTsKLS0KLS1wdWIoY3JhdGUpIG1v ZCBsbHZtIHsKLS0gICAgcHViKGNyYXRlKSB1c2UgY3JhdGU6OmNvZGVnZW46Omxsdm06Oio7Ci0t fQotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL21hc2tzLnJz IGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvbWFza3MucnMKLS0tLSBhL3RoaXJk X3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL21hc2tzLnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMu MDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9t YXNrcy5ycwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsMTI2ICsw LDAgQEAKLS0vLyEgTWFzayB0eXBlcwotLQotLW1hY3JvX3J1bGVzISBpbXBsX21hc2tfdHkgewot LSAgICAoJGlkOmlkZW50IDogJGVsZW1fdHk6aWRlbnQgfCAjWyRkb2M6bWV0YV0pID0+IHsKLS0g ICAgICAgICNbJGRvY10KLS0gICAgICAgICNbZGVyaXZlKENvcHksIENsb25lKV0KLS0gICAgICAg IHB1YiBzdHJ1Y3QgJGlkKCRlbGVtX3R5KTsKLS0KLS0gICAgICAgIGltcGwgY3JhdGU6OnNlYWxl ZDo6U2VhbCBmb3IgJGlkIHt9Ci0tICAgICAgICBpbXBsIGNyYXRlOjpzZWFsZWQ6Ok1hc2sgZm9y ICRpZCB7Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgZm4gdGVzdCgmc2Vs ZikgLT4gYm9vbCB7Ci0tICAgICAgICAgICAgICAgICRpZDo6dGVzdChzZWxmKQotLSAgICAgICAg ICAgIH0KLS0gICAgICAgIH0KLS0KLS0gICAgICAgIGltcGwgJGlkIHsKLS0gICAgICAgICAgICAv Ly8gSW5zdGFudGlhdGUgYSBtYXNrIHdpdGggYHZhbHVlYAotLSAgICAgICAgICAgICNbaW5saW5l XQotLSAgICAgICAgICAgIHB1YiBmbiBuZXcoeDogYm9vbCkgLT4gU2VsZiB7Ci0tICAgICAgICAg ICAgICAgIGlmIHggewotLSAgICAgICAgICAgICAgICAgICAgJGlkKCEwKQotLSAgICAgICAgICAg ICAgICB9IGVsc2UgewotLSAgICAgICAgICAgICAgICAgICAgJGlkKDApCi0tICAgICAgICAgICAg ICAgIH0KLS0gICAgICAgICAgICB9Ci0tICAgICAgICAgICAgLy8vIFRlc3QgaWYgdGhlIG1hc2sg aXMgc2V0Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgcHViIGZuIHRlc3Qo JnNlbGYpIC0+IGJvb2wgewotLSAgICAgICAgICAgICAgICBzZWxmLjAgIT0gMAotLSAgICAgICAg ICAgIH0KLS0gICAgICAgIH0KLS0KLS0gICAgICAgIGltcGwgRGVmYXVsdCBmb3IgJGlkIHsKLS0g ICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBmbiBkZWZhdWx0KCkgLT4gU2VsZiB7 Ci0tICAgICAgICAgICAgICAgICRpZCgwKQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0K LS0gICAgICAgICNbYWxsb3coY2xpcHB5OjpwYXJ0aWFsZXFfbmVfaW1wbCldCi0tICAgICAgICBp bXBsIFBhcnRpYWxFcTwkaWQ+IGZvciAkaWQgewotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAg ICAgICAgICAgIGZuIGVxKCZzZWxmLCBvdGhlcjogJlNlbGYpIC0+IGJvb2wgewotLSAgICAgICAg ICAgICAgICBzZWxmLjAgPT0gb3RoZXIuMAotLSAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAj W2lubGluZV0KLS0gICAgICAgICAgICBmbiBuZSgmc2VsZiwgb3RoZXI6ICZTZWxmKSAtPiBib29s IHsKLS0gICAgICAgICAgICAgICAgc2VsZi4wICE9IG90aGVyLjAKLS0gICAgICAgICAgICB9Ci0t ICAgICAgICB9Ci0tCi0tICAgICAgICBpbXBsIEVxIGZvciAkaWQge30KLS0KLS0gICAgICAgIGlt cGwgUGFydGlhbE9yZDwkaWQ+IGZvciAkaWQgewotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAg ICAgICAgICAgIGZuIHBhcnRpYWxfY21wKCZzZWxmLCBvdGhlcjogJlNlbGYpIC0+IE9wdGlvbjxj cmF0ZTo6Y21wOjpPcmRlcmluZz4gewotLSAgICAgICAgICAgICAgICB1c2UgY3JhdGU6OmNtcDo6 T3JkZXJpbmc7Ci0tICAgICAgICAgICAgICAgIGlmIHNlbGYgPT0gb3RoZXIgewotLSAgICAgICAg ICAgICAgICAgICAgU29tZShPcmRlcmluZzo6RXF1YWwpCi0tICAgICAgICAgICAgICAgIH0gZWxz ZSBpZiBzZWxmLjAgPiBvdGhlci4wIHsKLS0gICAgICAgICAgICAgICAgICAgIC8vIE5vdGU6Ci0t ICAgICAgICAgICAgICAgICAgICAvLyAgKiBmYWxzZSA9IDBfaQotLSAgICAgICAgICAgICAgICAg ICAgLy8gICogdHJ1ZSA9PSAhMF9pID09IC0xX2kKLS0gICAgICAgICAgICAgICAgICAgIFNvbWUo T3JkZXJpbmc6Okxlc3MpCi0tICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0tICAgICAgICAgICAg ICAgICAgICBTb21lKE9yZGVyaW5nOjpHcmVhdGVyKQotLSAgICAgICAgICAgICAgICB9Ci0tICAg ICAgICAgICAgfQotLQotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIGZuIGx0 KCZzZWxmLCBvdGhlcjogJlNlbGYpIC0+IGJvb2wgewotLSAgICAgICAgICAgICAgICBzZWxmLjAg PiBvdGhlci4wCi0tICAgICAgICAgICAgfQotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAg ICAgICAgIGZuIGd0KCZzZWxmLCBvdGhlcjogJlNlbGYpIC0+IGJvb2wgewotLSAgICAgICAgICAg ICAgICBzZWxmLjAgPCBvdGhlci4wCi0tICAgICAgICAgICAgfQotLSAgICAgICAgICAgICNbaW5s aW5lXQotLSAgICAgICAgICAgIGZuIGxlKCZzZWxmLCBvdGhlcjogJlNlbGYpIC0+IGJvb2wgewot LSAgICAgICAgICAgICAgICBzZWxmLjAgPj0gb3RoZXIuMAotLSAgICAgICAgICAgIH0KLS0gICAg ICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBmbiBnZSgmc2VsZiwgb3RoZXI6ICZTZWxm KSAtPiBib29sIHsKLS0gICAgICAgICAgICAgICAgc2VsZi4wIDw9IG90aGVyLjAKLS0gICAgICAg ICAgICB9Ci0tICAgICAgICB9Ci0tCi0tICAgICAgICBpbXBsIE9yZCBmb3IgJGlkIHsKLS0gICAg ICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBmbiBjbXAoJnNlbGYsIG90aGVyOiAmU2Vs ZikgLT4gY3JhdGU6OmNtcDo6T3JkZXJpbmcgewotLSAgICAgICAgICAgICAgICBtYXRjaCBzZWxm LnBhcnRpYWxfY21wKG90aGVyKSB7Ci0tICAgICAgICAgICAgICAgICAgICBTb21lKHgpID0+IHgs Ci0tICAgICAgICAgICAgICAgICAgICBOb25lID0+IHVuc2FmZSB7IGNyYXRlOjpoaW50Ojp1bnJl YWNoYWJsZV91bmNoZWNrZWQoKSB9LAotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAg fQotLSAgICAgICAgfQotLQotLSAgICAgICAgaW1wbCBjcmF0ZTo6aGFzaDo6SGFzaCBmb3IgJGlk IHsKLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBmbiBoYXNoPEg6IGNyYXRl OjpoYXNoOjpIYXNoZXI+KCZzZWxmLCBzdGF0ZTogJm11dCBIKSB7Ci0tICAgICAgICAgICAgICAg IChzZWxmLjAgIT0gMCkuaGFzaChzdGF0ZSk7Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQot LQotLSAgICAgICAgaW1wbCBjcmF0ZTo6Zm10OjpEZWJ1ZyBmb3IgJGlkIHsKLS0gICAgICAgICAg ICAjW2lubGluZV0KLS0gICAgICAgICAgICBmbiBmbXQoJnNlbGYsIGZtdHRlcjogJm11dCBjcmF0 ZTo6Zm10OjpGb3JtYXR0ZXI8J18+KSAtPiBSZXN1bHQ8KCksIGNyYXRlOjpmbXQ6OkVycm9yPiB7 Ci0tICAgICAgICAgICAgICAgIHdyaXRlIShmbXR0ZXIsICJ7fSh7fSkiLCBzdHJpbmdpZnkhKCRp ZCksIHNlbGYuMCAhPSAwKQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgfTsKLS19 Ci0tCi0taW1wbF9tYXNrX3R5IShtODogaTggfCAvLy8gOC1iaXQgd2lkZSBtYXNrLgotLSk7Ci0t aW1wbF9tYXNrX3R5IShtMTY6IGkxNiB8IC8vLyAxNi1iaXQgd2lkZSBtYXNrLgotLSk7Ci0taW1w bF9tYXNrX3R5IShtMzI6IGkzMiB8IC8vLyAzMi1iaXQgd2lkZSBtYXNrLgotLSk7Ci0taW1wbF9t YXNrX3R5IShtNjQ6IGk2NCB8IC8vLyA2NC1iaXQgd2lkZSBtYXNrLgotLSk7Ci0taW1wbF9tYXNr X3R5IShtMTI4OiBpMTI4IHwgLy8vIDEyOC1iaXQgd2lkZSBtYXNrLgotLSk7Ci0taW1wbF9tYXNr X3R5IShtc2l6ZTogaXNpemUgfCAvLy8gaXNpemUtd2lkZSBtYXNrLgotLSk7Ci1kaWZmIC1OcmJ1 IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvc2VhbGVkLnJzIGIvdGhpcmRfcGFy dHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvc2VhbGVkLnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0 L3BhY2tlZF9zaW1kL3NyYy9zZWFsZWQucnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAg KzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL3NlYWxlZC5ycwkx OTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsNDIgKzAsMCBAQAotLS8v ISBTZWFsZWQgdHJhaXRzCi0tCi0tLy8vIEEgc2VhbGVkIHRyYWl0LCB0aGlzIGlzIGxvZ2ljYWxs eSBwcml2YXRlIHRvIHRoZSBjcmF0ZQotLS8vLyBhbmQgd2lsbCBwcmV2ZW50IGltcGxlbWVudGF0 aW9ucyBmcm9tIG91dHNpZGUgdGhlIGNyYXRlCi0tcHViIHRyYWl0IFNlYWw8VCA9ICgpPiB7fQot LQotLS8vLyBUcmFpdCBpbXBsZW1lbnRlZCBieSBhcnJheXMgdGhhdCBjYW4gYmUgU0lNRCB0eXBl cy4KLS1wdWIgdHJhaXQgU2ltZEFycmF5OiBTZWFsIHsKLS0gICAgLy8vIFRoZSB0eXBlIG9mIHRo ZSAjW3JlcHIoc2ltZCldIHR5cGUuCi0tICAgIHR5cGUgVHVwbGU6IENvcHkgKyBDbG9uZTsKLS0g ICAgLy8vIFRoZSBlbGVtZW50IHR5cGUgb2YgdGhlIHZlY3Rvci4KLS0gICAgdHlwZSBUOwotLSAg ICAvLy8gVGhlIG51bWJlciBvZiBlbGVtZW50cyBpbiB0aGUgYXJyYXkuCi0tICAgIGNvbnN0IE46 IHVzaXplOwotLSAgICAvLy8gVGhlIHR5cGU6IGBbdTMyOyBTZWxmOjpOXWAuCi0tICAgIHR5cGUg TlQ7Ci0tfQotLQotLS8vLyBUaGlzIHRyYWl0cyBpcyB1c2VkIHRvIGNvbnN0cmFpbnQgdGhlIGFy Z3VtZW50cwotLS8vLyBhbmQgcmVzdWx0IHR5cGUgb2YgdGhlIHBvcnRhYmxlIHNodWZmbGVzLgot LSNbZG9jKGhpZGRlbildCi0tcHViIHRyYWl0IFNodWZmbGU8TGFuZXM+OiBTZWFsPExhbmVzPiB7 Ci0tICAgIC8vIExhbmVzIGlzIGEgYFt1MzI7IE5dYCB3aGVyZSBgTmAgaXMgdGhlIG51bWJlciBv ZiB2ZWN0b3IgbGFuZXMKLS0KLS0gICAgLy8vIFRoZSByZXN1bHQgdHlwZSBvZiB0aGUgc2h1ZmZs ZS4KLS0gICAgdHlwZSBPdXRwdXQ7Ci0tfQotLQotLS8vLyBUaGlzIHRyYWl0IGlzIGltcGxlbWVu dGVkIGJ5IGFsbCBTSU1EIHZlY3RvciB0eXBlcy4KLS1wdWIgdHJhaXQgU2ltZDogU2VhbCB7Ci0t ICAgIC8vLyBFbGVtZW50IHR5cGUgb2YgdGhlIFNJTUQgdmVjdG9yCi0tICAgIHR5cGUgRWxlbWVu dDsKLS0gICAgLy8vIFRoZSBudW1iZXIgb2YgZWxlbWVudHMgaW4gdGhlIFNJTUQgdmVjdG9yLgot LSAgICBjb25zdCBMQU5FUzogdXNpemU7Ci0tICAgIC8vLyBUaGUgdHlwZTogYFt1MzI7IFNlbGY6 Ok5dYC4KLS0gICAgdHlwZSBMYW5lc1R5cGU7Ci0tfQotLQotLS8vLyBUaGlzIHRyYWl0IGlzIGlt cGxlbWVudGVkIGJ5IGFsbCBtYXNrIHR5cGVzCi0tcHViIHRyYWl0IE1hc2s6IFNlYWwgewotLSAg ICBmbiB0ZXN0KCZzZWxmKSAtPiBib29sOwotLX0KLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9y dXN0L3BhY2tlZF9zaW1kL3NyYy90ZXN0aW5nL21hY3Jvcy5ycyBiL3RoaXJkX3BhcnR5L3J1c3Qv cGFja2VkX3NpbWQvc3JjL3Rlc3RpbmcvbWFjcm9zLnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0 L3BhY2tlZF9zaW1kL3NyYy90ZXN0aW5nL21hY3Jvcy5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAw MDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvdGVz dGluZy9tYWNyb3MucnMJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0x LDQ0ICswLDAgQEAKLS0vLyEgVGVzdGluZyBtYWNyb3MKLS0KLS1tYWNyb19ydWxlcyEgdGVzdF9p ZiB7Ci0tICAgICgkY2ZnX3R0OnR0OiAkaXQ6aXRlbSkgPT4gewotLSAgICAgICAgI1tjZmcoYW55 KAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIC8vIFRlc3QgZXZlcnl0aGluZyBpZjoKLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLwotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICogdGVzdHMgYXJl IGVuYWJsZWQsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgLy8gKiBubyBmZWF0dXJlcyBhYm91dCBleGNsdXNpdmVseSB0ZXN0aW5n Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgLy8gICBzcGVjaWZpYyB2ZWN0b3IgY2xhc3NlcyBhcmUgZW5hYmxlZAotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsbCh0 ZXN0LCBub3QoYW55KAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X3YxNiwKLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF92MzIsCi0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHRlc3RfdjY0LAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X3YxMjgsCi0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfdjI1NiwKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdGVzdF92NTEyLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X25vbmUsICAvLyBkaXNhYmxlcyBhbGwgdGVz dHMKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICApKSksCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgLy8gVGVzdCBpZjoKLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLwotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICogdGVzdHMgYXJl IGVuYWJsZWQKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAvLyAqIGEgcGFydGljdWxhciBjZmcgdG9rZW4gdHJlZSByZXR1cm5zIHRy dWUKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBhbGwodGVzdCwgJGNmZ190dCksCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICApKV0KLS0gICAgICAgICRpdAotLSAgICB9Owot LX0KLS0KLS0jW2NmZyh0ZXN0KV0KLS0jW2FsbG93KHVudXNlZCldCi0tbWFjcm9fcnVsZXMhIHJl Zl8gewotLSAgICAoJGFueXRoaW5nOnR0KSA9PiB7Ci0tICAgICAgICAmJGFueXRoaW5nCi0tICAg IH07Ci0tfQotLQotLSNbY2ZnKHRlc3QpXQotLSNbYWxsb3codW51c2VkKV0KLS1tYWNyb19ydWxl cyEgcmVmX211dF8gewotLSAgICAoJGFueXRoaW5nOnR0KSA9PiB7Ci0tICAgICAgICAmbXV0ICRh bnl0aGluZwotLSAgICB9OwotLX0KLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tl ZF9zaW1kL3NyYy90ZXN0aW5nL3V0aWxzLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2lt ZC9zcmMvdGVzdGluZy91dGlscy5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2lt ZC9zcmMvdGVzdGluZy91dGlscy5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMw MAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvdGVzdGluZy91dGlscy5y cwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsMTMwICswLDAgQEAK LS0vLyEgVGVzdGluZyB1dGlsaXRpZXMKLS0KLS0jIVthbGxvdyhkZWFkX2NvZGUpXQotLS8vIEZJ WE1FOiBPciBkb24ndC4gQnV0IGl0J3MgdHJ1ZSB0aGlzIGlzIGEgcHJvYmxlbWF0aWMgY29tcGFy aXNvbi4KLS0jIVthbGxvdyhjbGlwcHk6Om5lZ19jbXBfb3Bfb25fcGFydGlhbF9vcmQpXQotLQot LXVzZSBjcmF0ZTo6e2NtcDo6UGFydGlhbE9yZCwgZm10OjpEZWJ1ZywgTGV4aWNvZ3JhcGhpY2Fs bHlPcmRlcmVkfTsKLS0KLS0vLy8gVGVzdHMgUGFydGlhbE9yZCBmb3IgYGFgIGFuZCBgYmAgd2hl cmUgYGEgPCBiYCBpcyB0cnVlLgotLXB1YiBmbiB0ZXN0X2x0PFQ+KGE6IExleGljb2dyYXBoaWNh bGx5T3JkZXJlZDxUPiwgYjogTGV4aWNvZ3JhcGhpY2FsbHlPcmRlcmVkPFQ+KQotLXdoZXJlCi0t ICAgIExleGljb2dyYXBoaWNhbGx5T3JkZXJlZDxUPjogRGVidWcgKyBQYXJ0aWFsT3JkLAotLXsK LS0gICAgYXNzZXJ0IShhIDwgYiwgIns6P30sIHs6P30iLCBhLCBiKTsKLS0gICAgYXNzZXJ0IShi ID4gYSwgIns6P30sIHs6P30iLCBhLCBiKTsKLS0KLS0gICAgYXNzZXJ0ISghKGEgPT0gYiksICJ7 Oj99LCB7Oj99IiwgYSwgYik7Ci0tICAgIGFzc2VydF9uZSEoYSwgYiwgIns6P30sIHs6P30iLCBh LCBiKTsKLS0KLS0gICAgYXNzZXJ0IShhIDw9IGIsICJ7Oj99LCB7Oj99IiwgYSwgYik7Ci0tICAg IGFzc2VydCEoYiA+PSBhLCAiezo/fSwgezo/fSIsIGEsIGIpOwotLQotLSAgICAvLyBUaGUgZWxl Z2FuY2Ugb2YgdGhlIG1hdGhlbWF0aWNhbCBleHByZXNzaW9uIG9mIGlycmVmbGV4aXZpdHkgaXMg bW9yZQotLSAgICAvLyB0aGFuIGNsaXBweSBjYW4gaGFuZGxlLgotLSAgICAjW2FsbG93KGNsaXBw eTo6ZXFfb3ApXQotLSAgICB7Ci0tICAgICAgICAvLyBJcnJlZmxleGl2aXR5Ci0tICAgICAgICBh c3NlcnQhKCEoYSA8IGEpLCAiezo/fSwgezo/fSIsIGEsIGIpOwotLSAgICAgICAgYXNzZXJ0ISgh KGIgPCBiKSwgIns6P30sIHs6P30iLCBhLCBiKTsKLS0gICAgICAgIGFzc2VydCEoIShhID4gYSks ICJ7Oj99LCB7Oj99IiwgYSwgYik7Ci0tICAgICAgICBhc3NlcnQhKCEoYiA+IGIpLCAiezo/fSwg ezo/fSIsIGEsIGIpOwotLQotLSAgICAgICAgYXNzZXJ0IShhIDw9IGEsICJ7Oj99LCB7Oj99Iiwg YSwgYik7Ci0tICAgICAgICBhc3NlcnQhKGIgPD0gYiwgIns6P30sIHs6P30iLCBhLCBiKTsKLS0g ICAgfQotLX0KLS0KLS0vLy8gVGVzdHMgUGFydGlhbE9yZCBmb3IgYGFgIGFuZCBgYmAgd2hlcmUg YGEgPD0gYmAgaXMgdHJ1ZS4KLS1wdWIgZm4gdGVzdF9sZTxUPihhOiBMZXhpY29ncmFwaGljYWxs eU9yZGVyZWQ8VD4sIGI6IExleGljb2dyYXBoaWNhbGx5T3JkZXJlZDxUPikKLS13aGVyZQotLSAg ICBMZXhpY29ncmFwaGljYWxseU9yZGVyZWQ8VD46IERlYnVnICsgUGFydGlhbE9yZCwKLS17Ci0t ICAgIGFzc2VydCEoYSA8PSBiLCAiezo/fSwgezo/fSIsIGEsIGIpOwotLSAgICBhc3NlcnQhKGIg Pj0gYSwgIns6P30sIHs6P30iLCBhLCBiKTsKLS0KLS0gICAgYXNzZXJ0IShhIDw9IGIsICJ7Oj99 LCB7Oj99IiwgYSwgYik7Ci0tICAgIGFzc2VydCEoYiA+PSBhLCAiezo/fSwgezo/fSIsIGEsIGIp OwotLQotLSAgICBpZiBhID09IGIgewotLSAgICAgICAgYXNzZXJ0ISghKGEgPCBiKSwgIns6P30s IHs6P30iLCBhLCBiKTsKLS0gICAgICAgIGFzc2VydCEoIShiID4gYSksICJ7Oj99LCB7Oj99Iiwg YSwgYik7Ci0tCi0tICAgICAgICBhc3NlcnQhKCEoYSAhPSBiKSwgIns6P30sIHs6P30iLCBhLCBi KTsKLS0gICAgfSBlbHNlIHsKLS0gICAgICAgIGFzc2VydF9uZSEoYSwgYiwgIns6P30sIHs6P30i LCBhLCBiKTsKLS0gICAgICAgIHRlc3RfbHQoYSwgYik7Ci0tICAgIH0KLS19Ci0tCi0tLy8vIFRl c3QgUGFydGlhbE9yZDo6cGFydGlhbF9jbXAgZm9yIGBhYCBhbmQgYGJgIHJldHVybmluZyBgT3Jk ZXJpbmdgCi0tcHViIGZuIHRlc3RfY21wPFQ+KAotLSAgICBhOiBMZXhpY29ncmFwaGljYWxseU9y ZGVyZWQ8VD4sCi0tICAgIGI6IExleGljb2dyYXBoaWNhbGx5T3JkZXJlZDxUPiwKLS0gICAgbzog T3B0aW9uPGNyYXRlOjpjbXA6Ok9yZGVyaW5nPiwKLS0pIHdoZXJlCi0tICAgIExleGljb2dyYXBo aWNhbGx5T3JkZXJlZDxUPjogUGFydGlhbE9yZCArIERlYnVnLAotLSAgICBUOiBEZWJ1ZyArIGNy YXRlOjpzZWFsZWQ6OlNpbWQgKyBDb3B5ICsgQ2xvbmUsCi0tICAgIDxUIGFzIGNyYXRlOjpzZWFs ZWQ6OlNpbWQ+OjpFbGVtZW50OiBEZWZhdWx0ICsgQ29weSArIENsb25lICsgUGFydGlhbE9yZCwK LS17Ci0tICAgIGFzc2VydCEoVDo6TEFORVMgPD0gNjQsICJhcnJheSBsZW5ndGggaW4gdGhlc2Ug dHdvIGFycmF5cyBuZWVkcyB1cGRhdGluZyIpOwotLSAgICBsZXQgbXV0IGFycl9hOiBbVDo6RWxl bWVudDsgNjRdID0gW0RlZmF1bHQ6OmRlZmF1bHQoKTsgNjRdOwotLSAgICBsZXQgbXV0IGFycl9i OiBbVDo6RWxlbWVudDsgNjRdID0gW0RlZmF1bHQ6OmRlZmF1bHQoKTsgNjRdOwotLQotLSAgICB1 bnNhZmUgeyBjcmF0ZTo6cHRyOjp3cml0ZV91bmFsaWduZWQoYXJyX2EuYXNfbXV0X3B0cigpIGFz ICptdXQgTGV4aWNvZ3JhcGhpY2FsbHlPcmRlcmVkPFQ+LCBhKSB9Ci0tICAgIHVuc2FmZSB7IGNy YXRlOjpwdHI6OndyaXRlX3VuYWxpZ25lZChhcnJfYi5hc19tdXRfcHRyKCkgYXMgKm11dCBMZXhp Y29ncmFwaGljYWxseU9yZGVyZWQ8VD4sIGIpIH0KLS0gICAgbGV0IGV4cGVjdGVkID0gYXJyX2Fb MC4uVDo6TEFORVNdLnBhcnRpYWxfY21wKCZhcnJfYlswLi5UOjpMQU5FU10pOwotLSAgICBsZXQg cmVzdWx0ID0gYS5wYXJ0aWFsX2NtcCgmYik7Ci0tICAgIGFzc2VydF9lcSEoZXhwZWN0ZWQsIHJl c3VsdCwgIns6P30sIHs6P30iLCBhLCBiKTsKLS0gICAgYXNzZXJ0X2VxIShvLCByZXN1bHQsICJ7 Oj99LCB7Oj99IiwgYSwgYik7Ci0tICAgIG1hdGNoIG8gewotLSAgICAgICAgU29tZShjcmF0ZTo6 Y21wOjpPcmRlcmluZzo6TGVzcykgPT4gewotLSAgICAgICAgICAgIHRlc3RfbHQoYSwgYik7Ci0t ICAgICAgICAgICAgdGVzdF9sZShhLCBiKTsKLS0gICAgICAgIH0KLS0gICAgICAgIFNvbWUoY3Jh dGU6OmNtcDo6T3JkZXJpbmc6OkdyZWF0ZXIpID0+IHsKLS0gICAgICAgICAgICB0ZXN0X2x0KGIs IGEpOwotLSAgICAgICAgICAgIHRlc3RfbGUoYiwgYSk7Ci0tICAgICAgICB9Ci0tICAgICAgICBT b21lKGNyYXRlOjpjbXA6Ok9yZGVyaW5nOjpFcXVhbCkgPT4gewotLSAgICAgICAgICAgIGFzc2Vy dCEoYSA9PSBiLCAiezo/fSwgezo/fSIsIGEsIGIpOwotLSAgICAgICAgICAgIGFzc2VydCEoIShh ICE9IGIpLCAiezo/fSwgezo/fSIsIGEsIGIpOwotLSAgICAgICAgICAgIGFzc2VydCEoIShhIDwg YiksICJ7Oj99LCB7Oj99IiwgYSwgYik7Ci0tICAgICAgICAgICAgYXNzZXJ0ISghKGIgPCBhKSwg Ins6P30sIHs6P30iLCBhLCBiKTsKLS0gICAgICAgICAgICBhc3NlcnQhKCEoYSA+IGIpLCAiezo/ fSwgezo/fSIsIGEsIGIpOwotLSAgICAgICAgICAgIGFzc2VydCEoIShiID4gYSksICJ7Oj99LCB7 Oj99IiwgYSwgYik7Ci0tCi0tICAgICAgICAgICAgdGVzdF9sZShhLCBiKTsKLS0gICAgICAgICAg ICB0ZXN0X2xlKGIsIGEpOwotLSAgICAgICAgfQotLSAgICAgICAgTm9uZSA9PiB7Ci0tICAgICAg ICAgICAgYXNzZXJ0ISghKGEgPT0gYiksICJ7Oj99LCB7Oj99IiwgYSwgYik7Ci0tICAgICAgICAg ICAgYXNzZXJ0ISghKGEgIT0gYiksICJ7Oj99LCB7Oj99IiwgYSwgYik7Ci0tICAgICAgICAgICAg YXNzZXJ0ISghKGEgPCBiKSwgIns6P30sIHs6P30iLCBhLCBiKTsKLS0gICAgICAgICAgICBhc3Nl cnQhKCEoYSA+IGIpLCAiezo/fSwgezo/fSIsIGEsIGIpOwotLSAgICAgICAgICAgIGFzc2VydCEo IShiIDwgYSksICJ7Oj99LCB7Oj99IiwgYSwgYik7Ci0tICAgICAgICAgICAgYXNzZXJ0ISghKGIg PiBhKSwgIns6P30sIHs6P30iLCBhLCBiKTsKLS0gICAgICAgICAgICBhc3NlcnQhKCEoYSA8PSBi KSwgIns6P30sIHs6P30iLCBhLCBiKTsKLS0gICAgICAgICAgICBhc3NlcnQhKCEoYiA8PSBhKSwg Ins6P30sIHs6P30iLCBhLCBiKTsKLS0gICAgICAgICAgICBhc3NlcnQhKCEoYSA+PSBiKSwgIns6 P30sIHs6P30iLCBhLCBiKTsKLS0gICAgICAgICAgICBhc3NlcnQhKCEoYiA+PSBhKSwgIns6P30s IHs6P30iLCBhLCBiKTsKLS0gICAgICAgIH0KLS0gICAgfQotLX0KLS0KLS0vLyBSZXR1cm5zIGEg dHVwbGUgY29udGFpbmluZyB0d28gZGlzdGluY3QgcG9pbnRlciB2YWx1ZXMgb2YgdGhlIHNhbWUg dHlwZSBhcwotLS8vIHRoZSBlbGVtZW50IHR5cGUgb2YgdGhlIFNpbWQgdmVjdG9yIGAkaWRgLgot LSNbYWxsb3codW51c2VkKV0KLS1tYWNyb19ydWxlcyEgcHRyX3ZhbHMgewotLSAgICAoJGlkOnR5 KSA9PiB7Ci0tICAgICAgICAvLyBleHBhbmRzIHRvIGFuIGV4cHJlc3Npb24KLS0gICAgICAgICNb YWxsb3codW51c2VkX3Vuc2FmZSldCi0tICAgICAgICB1bnNhZmUgewotLSAgICAgICAgICAgIC8v IGFsbCBiaXRzIGNsZWFyZWQKLS0gICAgICAgICAgICBsZXQgY2xlYXI6IDwkaWQgYXMgc2VhbGVk OjpTaW1kPjo6RWxlbWVudCA9IGNyYXRlOjptZW06Onplcm9lZCgpOwotLSAgICAgICAgICAgIC8v IGFsbCBiaXRzIHNldAotLSAgICAgICAgICAgIGxldCBzZXQ6IDwkaWQgYXMgc2VhbGVkOjpTaW1k Pjo6RWxlbWVudCA9IGNyYXRlOjptZW06OnRyYW5zbXV0ZSgtMV9pc2l6ZSk7Ci0tICAgICAgICAg ICAgKGNsZWFyLCBzZXQpCi0tICAgICAgICB9Ci0tICAgIH07Ci0tfQotZGlmZiAtTnJidSBhL3Ro aXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL3Rlc3RpbmcucnMgYi90aGlyZF9wYXJ0eS9y dXN0L3BhY2tlZF9zaW1kL3NyYy90ZXN0aW5nLnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3Bh Y2tlZF9zaW1kL3NyYy90ZXN0aW5nLnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICsw MzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy90ZXN0aW5nLnJzCTE5 NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSw4ICswLDAgQEAKLS0vLyEg VGVzdGluZyBtYWNyb3MgYW5kIG90aGVyIHV0aWxpdGllcy4KLS0KLS0jW21hY3JvX3VzZV0KLS1t b2QgbWFjcm9zOwotLQotLSNbY2ZnKHRlc3QpXQotLSNbbWFjcm9fdXNlXQotLXB1YihjcmF0ZSkg bW9kIHV0aWxzOwotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3Jj L3YxMjgucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy92MTI4LnJzCi0tLS0g YS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy92MTI4LnJzCTIwMjUtMDQtMjAgMTk6 Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1k L3NyYy92MTI4LnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSw4 MCArMCwwIEBACi0tLy8hIDEyOC1iaXQgd2lkZSB2ZWN0b3IgdHlwZXMKLS0jW3J1c3RmbXQ6OnNr aXBdCi0tCi0tdXNlIGNyYXRlOjoqOwotLQotLWltcGxfaSEoW2k4OyAxNl06IGk4eDE2LCBtOHgx NiB8IGk4LCB1MTYgfCB0ZXN0X3YxMjggfAotLSAgICAgICAgeDAsIHgxLCB4MiwgeDMsIHg0LCB4 NSwgeDYsIHg3LCB4OCwgeDksIHgxMCwgeDExLCB4MTIsIHgxMywgeDE0LCB4MTUgfAotLSAgICAg ICAgRnJvbTogfAotLSAgICAgICAgLy8vIEEgMTI4LWJpdCB2ZWN0b3Igd2l0aCAxNiBgaThgIGxh bmVzLgotLSk7Ci0taW1wbF91IShbdTg7IDE2XTogdTh4MTYsIG04eDE2IHwgdTgsIHUxNiB8IHRl c3RfdjEyOCB8Ci0tICAgICAgICB4MCwgeDEsIHgyLCB4MywgeDQsIHg1LCB4NiwgeDcsIHg4LCB4 OSwgeDEwLCB4MTEsIHgxMiwgeDEzLCB4MTQsIHgxNSB8Ci0tICAgICAgICBGcm9tOiB8Ci0tICAg ICAgICAvLy8gQSAxMjgtYml0IHZlY3RvciB3aXRoIDE2IGB1OGAgbGFuZXMuCi0tKTsKLS1pbXBs X20hKFttODsgMTZdOiBtOHgxNiB8IGk4LCB1MTYgfCB0ZXN0X3YxMjggfAotLSAgICAgICAgeDAs IHgxLCB4MiwgeDMsIHg0LCB4NSwgeDYsIHg3LCB4OCwgeDksIHgxMCwgeDExLCB4MTIsIHgxMywg eDE0LCB4MTUgfAotLSAgICAgICAgRnJvbTogbTE2eDE2IHwKLS0gICAgICAgIC8vLyBBIDEyOC1i aXQgdmVjdG9yIG1hc2sgd2l0aCAxNiBgbThgIGxhbmVzLgotLSk7Ci0tCi0taW1wbF9pIShbaTE2 OyA4XTogaTE2eDgsIG0xNng4IHwgaTE2LCB1OCB8IHRlc3RfdjEyOCB8IHgwLCB4MSwgeDIsIHgz LCB4NCwgeDUsIHg2LCB4NyB8Ci0tICAgICAgICBGcm9tOiBpOHg4LCB1OHg4IHwKLS0gICAgICAg IC8vLyBBIDEyOC1iaXQgdmVjdG9yIHdpdGggOCBgaTE2YCBsYW5lcy4KLS0pOwotLWltcGxfdSEo W3UxNjsgOF06IHUxNng4LCBtMTZ4OCB8IHUxNiwgdTggfCB0ZXN0X3YxMjggfCB4MCwgeDEsIHgy LCB4MywgeDQsIHg1LCB4NiwgeDcgfAotLSAgICAgICAgRnJvbTogdTh4OCB8Ci0tICAgICAgICAv Ly8gQSAxMjgtYml0IHZlY3RvciB3aXRoIDggYHUxNmAgbGFuZXMuCi0tKTsKLS1pbXBsX20hKFtt MTY7IDhdOiBtMTZ4OCB8IGkxNiwgdTggfCB0ZXN0X3YxMjggfCB4MCwgeDEsIHgyLCB4MywgeDQs IHg1LCB4NiwgeDcgfAotLSAgICAgICAgRnJvbTogbTh4OCwgbTMyeDggfAotLSAgICAgICAgLy8v IEEgMTI4LWJpdCB2ZWN0b3IgbWFzayB3aXRoIDggYG0xNmAgbGFuZXMuCi0tKTsKLS0KLS1pbXBs X2khKFtpMzI7IDRdOiBpMzJ4NCwgbTMyeDQgfCBpMzIsIHU4IHwgdGVzdF92MTI4IHwgeDAsIHgx LCB4MiwgeDMgfAotLSAgICAgICAgRnJvbTogaTh4NCwgdTh4NCwgaTE2eDQsIHUxNng0ICB8Ci0t ICAgICAgICAvLy8gQSAxMjgtYml0IHZlY3RvciB3aXRoIDQgYGkzMmAgbGFuZXMuCi0tKTsKLS1p bXBsX3UhKFt1MzI7IDRdOiB1MzJ4NCwgbTMyeDQgfCB1MzIsIHU4IHwgdGVzdF92MTI4IHwgeDAs IHgxLCB4MiwgeDMgfAotLSAgICAgICAgRnJvbTogdTh4NCwgdTE2eDQgfAotLSAgICAgICAgLy8v IEEgMTI4LWJpdCB2ZWN0b3Igd2l0aCA0IGB1MzJgIGxhbmVzLgotLSk7Ci0taW1wbF9mIShbZjMy OyA0XTogZjMyeDQsIG0zMng0IHwgZjMyIHwgdGVzdF92MTI4IHwgeDAsIHgxLCB4MiwgeDMgfAot LSAgICAgICAgRnJvbTogaTh4NCwgdTh4NCwgaTE2eDQsIHUxNng0IHwKLS0gICAgICAgIC8vLyBB IDEyOC1iaXQgdmVjdG9yIHdpdGggNCBgZjMyYCBsYW5lcy4KLS0pOwotLWltcGxfbSEoW20zMjsg NF06IG0zMng0IHwgaTMyLCB1OCB8IHRlc3RfdjEyOCB8IHgwLCB4MSwgeDIsIHgzIHwKLS0gICAg ICAgIEZyb206IG04eDQsIG0xNng0LCBtNjR4NCB8Ci0tICAgICAgICAvLy8gQSAxMjgtYml0IHZl Y3RvciBtYXNrIHdpdGggNCBgbTMyYCBsYW5lcy4KLS0pOwotLQotLWltcGxfaSEoW2k2NDsgMl06 IGk2NHgyLCBtNjR4MiB8IGk2NCwgdTggfCB0ZXN0X3YxMjggfCB4MCwgeDEgfAotLSAgICAgICAg RnJvbTogaTh4MiwgdTh4MiwgaTE2eDIsIHUxNngyLCBpMzJ4MiwgdTMyeDIgfAotLSAgICAgICAg Ly8vIEEgMTI4LWJpdCB2ZWN0b3Igd2l0aCAyIGBpNjRgIGxhbmVzLgotLSk7Ci0taW1wbF91IShb dTY0OyAyXTogdTY0eDIsIG02NHgyIHwgdTY0LCB1OCB8IHRlc3RfdjEyOCB8IHgwLCB4MSB8Ci0t ICAgICAgICBGcm9tOiB1OHgyLCB1MTZ4MiwgdTMyeDIgfAotLSAgICAgICAgLy8vIEEgMTI4LWJp dCB2ZWN0b3Igd2l0aCAyIGB1NjRgIGxhbmVzLgotLSk7Ci0taW1wbF9mIShbZjY0OyAyXTogZjY0 eDIsIG02NHgyIHwgZjY0IHwgdGVzdF92MTI4IHwgeDAsIHgxIHwKLS0gICAgICAgIEZyb206IGk4 eDIsIHU4eDIsIGkxNngyLCB1MTZ4MiwgaTMyeDIsIHUzMngyLCBmMzJ4MiB8Ci0tICAgICAgICAv Ly8gQSAxMjgtYml0IHZlY3RvciB3aXRoIDIgYGY2NGAgbGFuZXMuCi0tKTsKLS1pbXBsX20hKFtt NjQ7IDJdOiBtNjR4MiB8IGk2NCwgdTggfCB0ZXN0X3YxMjggfCB4MCwgeDEgfAotLSAgICAgICAg RnJvbTogbTh4MiwgbTE2eDIsIG0zMngyLCBtMTI4eDIgfAotLSAgICAgICAgLy8vIEEgMTI4LWJp dCB2ZWN0b3IgbWFzayB3aXRoIDIgYG02NGAgbGFuZXMuCi0tKTsKLS0KLS1pbXBsX2khKFtpMTI4 OyAxXTogaTEyOHgxLCBtMTI4eDEgfCBpMTI4LCB1OCB8IHRlc3RfdjEyOCB8IHgwIHwKLS0gICAg ICAgIEZyb206IC8qaTh4MSwgdTh4MSwgaTE2eDEsIHUxNngxLCBpMzJ4MSwgdTMyeDEsIGk2NHgx LCB1NjR4MSAqLyB8IC8vIEZJWE1FOiB1bmFyeSBzbWFsbCB2ZWN0b3IgdHlwZXMKLS0gICAgICAg IC8vLyBBIDEyOC1iaXQgdmVjdG9yIHdpdGggMSBgaTEyOGAgbGFuZS4KLS0pOwotLWltcGxfdSEo W3UxMjg7IDFdOiB1MTI4eDEsIG0xMjh4MSB8IHUxMjgsIHU4IHwgdGVzdF92MTI4IHwgeDAgfAot LSAgICAgICAgRnJvbTogLyp1OHgxLCB1MTZ4MSwgdTMyeDEsIHU2NHgxICovIHwgLy8gRklYTUU6 IHVuYXJ5IHNtYWxsIHZlY3RvciB0eXBlcwotLSAgICAgICAgLy8vIEEgMTI4LWJpdCB2ZWN0b3Ig d2l0aCAxIGB1MTI4YCBsYW5lLgotLSk7Ci0taW1wbF9tIShbbTEyODsgMV06IG0xMjh4MSB8IGkx MjgsIHU4IHwgdGVzdF92MTI4IHwgeDAgfAotLSAgICAgICAgRnJvbTogLyptOHgxLCBtMTZ4MSwg bTMyeDEsIG02NHgxICovIHwgLy8gRklYTUU6IHVuYXJ5IHNtYWxsIHZlY3RvciB0eXBlcwotLSAg ICAgICAgLy8vIEEgMTI4LWJpdCB2ZWN0b3IgbWFzayB3aXRoIDEgYG0xMjhgIGxhbmUuCi0tKTsK LWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy92MTYucnMgYi90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy92MTYucnMKLS0tLSBhL3RoaXJkX3BhcnR5 L3J1c3QvcGFja2VkX3NpbWQvc3JjL3YxNi5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAw MCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvdjE2LnJzCTE5 NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSwxNiArMCwwIEBACi0tLy8h IDE2LWJpdCB3aWRlIHZlY3RvciB0eXBlcwotLQotLXVzZSBjcmF0ZTo6KjsKLS0KLS1pbXBsX2kh KFtpODsgMl06IGk4eDIsIG04eDIgfCBpOCwgdTggfCB0ZXN0X3YxNiB8IHgwLCB4MSB8Ci0tICAg ICAgICBGcm9tOiB8Ci0tICAgICAgICAvLy8gQSAxNi1iaXQgdmVjdG9yIHdpdGggMiBgaThgIGxh bmVzLgotLSk7Ci0taW1wbF91IShbdTg7IDJdOiB1OHgyLCBtOHgyIHwgdTgsIHU4IHwgdGVzdF92 MTYgfCB4MCwgeDEgfAotLSAgICAgICAgRnJvbTogfAotLSAgICAgICAgLy8vIEEgMTYtYml0IHZl Y3RvciB3aXRoIDIgYHU4YCBsYW5lcy4KLS0pOwotLWltcGxfbSEoW204OyAyXTogbTh4MiB8IGk4 LCB1OCB8IHRlc3RfdjE2IHwgeDAsIHgxIHwKLS0gICAgICAgIEZyb206IG0xNngyLCBtMzJ4Miwg bTY0eDIsIG0xMjh4MiB8Ci0tICAgICAgICAvLy8gQSAxNi1iaXQgdmVjdG9yIG1hc2sgd2l0aCAy IGBtOGAgbGFuZXMuCi0tKTsKLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9z aW1kL3NyYy92MjU2LnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvdjI1Ni5y cwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvdjI1Ni5ycwkyMDI1LTA0 LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNr ZWRfc2ltZC9zcmMvdjI1Ni5ycwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAot QEAgLTEsODYgKzAsMCBAQAotLS8vISAyNTYtYml0IHdpZGUgdmVjdG9yIHR5cGVzCi0tI1tydXN0 Zm10Ojpza2lwXQotLQotLXVzZSBjcmF0ZTo6KjsKLS0KLS1pbXBsX2khKFtpODsgMzJdOiBpOHgz MiwgbTh4MzIgfCBpOCwgdTMyIHwgdGVzdF92MjU2IHwKLS0gICAgICAgIHgwLCB4MSwgeDIsIHgz LCB4NCwgeDUsIHg2LCB4NywgeDgsIHg5LCB4MTAsIHgxMSwgeDEyLCB4MTMsIHgxNCwgeDE1LAot LSAgICAgICAgeDE2LCB4MTcsIHgxOCwgeDE5LCB4MjAsIHgyMSwgeDIyLCB4MjMsIHgyNCwgeDI1 LCB4MjYsIHgyNywgeDI4LCB4MjksIHgzMCwgeDMxIHwKLS0gICAgICAgIEZyb206IHwKLS0gICAg ICAgIC8vLyBBIDI1Ni1iaXQgdmVjdG9yIHdpdGggMzIgYGk4YCBsYW5lcy4KLS0pOwotLWltcGxf dSEoW3U4OyAzMl06IHU4eDMyLCBtOHgzMiB8IHU4LCB1MzIgfCB0ZXN0X3YyNTYgfAotLSAgICAg ICAgeDAsIHgxLCB4MiwgeDMsIHg0LCB4NSwgeDYsIHg3LCB4OCwgeDksIHgxMCwgeDExLCB4MTIs IHgxMywgeDE0LCB4MTUsCi0tICAgICAgICB4MTYsIHgxNywgeDE4LCB4MTksIHgyMCwgeDIxLCB4 MjIsIHgyMywgeDI0LCB4MjUsIHgyNiwgeDI3LCB4MjgsIHgyOSwgeDMwLCB4MzEgfAotLSAgICAg ICAgRnJvbTogfAotLSAgICAgICAgLy8vIEEgMjU2LWJpdCB2ZWN0b3Igd2l0aCAzMiBgdThgIGxh bmVzLgotLSk7Ci0taW1wbF9tIShbbTg7IDMyXTogbTh4MzIgfCBpOCwgdTMyIHwgdGVzdF92MjU2 IHwKLS0gICAgICAgIHgwLCB4MSwgeDIsIHgzLCB4NCwgeDUsIHg2LCB4NywgeDgsIHg5LCB4MTAs IHgxMSwgeDEyLCB4MTMsIHgxNCwgeDE1LAotLSAgICAgICAgeDE2LCB4MTcsIHgxOCwgeDE5LCB4 MjAsIHgyMSwgeDIyLCB4MjMsIHgyNCwgeDI1LCB4MjYsIHgyNywgeDI4LCB4MjksIHgzMCwgeDMx IHwKLS0gICAgICAgIEZyb206ICB8Ci0tICAgICAgICAvLy8gQSAyNTYtYml0IHZlY3RvciBtYXNr IHdpdGggMzIgYG04YCBsYW5lcy4KLS0pOwotLQotLWltcGxfaSEoW2kxNjsgMTZdOiBpMTZ4MTYs IG0xNngxNiB8IGkxNiwgdTE2IHwgdGVzdF92MjU2IHwKLS0gICAgICAgIHgwLCB4MSwgeDIsIHgz LCB4NCwgeDUsIHg2LCB4NywgeDgsIHg5LCB4MTAsIHgxMSwgeDEyLCB4MTMsIHgxNCwgeDE1IHwK LS0gICAgICAgIEZyb206IGk4eDE2LCB1OHgxNiB8Ci0tICAgICAgICAvLy8gQSAyNTYtYml0IHZl Y3RvciB3aXRoIDE2IGBpMTZgIGxhbmVzLgotLSk7Ci0taW1wbF91IShbdTE2OyAxNl06IHUxNngx NiwgbTE2eDE2IHwgdTE2LCB1MTYgfCB0ZXN0X3YyNTYgfAotLSAgICAgICAgeDAsIHgxLCB4Miwg eDMsIHg0LCB4NSwgeDYsIHg3LCB4OCwgeDksIHgxMCwgeDExLCB4MTIsIHgxMywgeDE0LCB4MTUg fAotLSAgICAgICAgRnJvbTogdTh4MTYgfAotLSAgICAgICAgLy8vIEEgMjU2LWJpdCB2ZWN0b3Ig d2l0aCAxNiBgdTE2YCBsYW5lcy4KLS0pOwotLWltcGxfbSEoW20xNjsgMTZdOiBtMTZ4MTYgfCBp MTYsIHUxNiB8IHRlc3RfdjI1NiB8Ci0tICAgICAgICB4MCwgeDEsIHgyLCB4MywgeDQsIHg1LCB4 NiwgeDcsIHg4LCB4OSwgeDEwLCB4MTEsIHgxMiwgeDEzLCB4MTQsIHgxNSB8Ci0tICAgICAgICBG cm9tOiBtOHgxNiB8Ci0tICAgICAgICAvLy8gQSAyNTYtYml0IHZlY3RvciBtYXNrIHdpdGggMTYg YG0xNmAgbGFuZXMuCi0tKTsKLS0KLS1pbXBsX2khKFtpMzI7IDhdOiBpMzJ4OCwgbTMyeDggfCBp MzIsIHU4IHwgdGVzdF92MjU2IHwgeDAsIHgxLCB4MiwgeDMsIHg0LCB4NSwgeDYsIHg3ICB8Ci0t ICAgICAgICBGcm9tOiBpOHg4LCB1OHg4LCBpMTZ4OCwgdTE2eDggfAotLSAgICAgICAgLy8vIEEg MjU2LWJpdCB2ZWN0b3Igd2l0aCA4IGBpMzJgIGxhbmVzLgotLSk7Ci0taW1wbF91IShbdTMyOyA4 XTogdTMyeDgsIG0zMng4IHwgdTMyLCB1OCB8IHRlc3RfdjI1NiB8IHgwLCB4MSwgeDIsIHgzLCB4 NCwgeDUsIHg2LCB4NyB8Ci0tICAgICAgICBGcm9tOiB1OHg4LCB1MTZ4OCB8Ci0tICAgICAgICAv Ly8gQSAyNTYtYml0IHZlY3RvciB3aXRoIDggYHUzMmAgbGFuZXMuCi0tKTsKLS1pbXBsX2YhKFtm MzI7IDhdOiBmMzJ4OCwgbTMyeDggfCBmMzIgfCB0ZXN0X3YyNTYgfCB4MCwgeDEsIHgyLCB4Mywg eDQsIHg1LCB4NiwgeDcgfAotLSAgICAgICAgRnJvbTogaTh4OCwgdTh4OCwgaTE2eDgsIHUxNng4 IHwKLS0gICAgICAgIC8vLyBBIDI1Ni1iaXQgdmVjdG9yIHdpdGggOCBgZjMyYCBsYW5lcy4KLS0p OwotLWltcGxfbSEoW20zMjsgOF06IG0zMng4IHwgaTMyLCB1OCB8IHRlc3RfdjI1NiB8IHgwLCB4 MSwgeDIsIHgzLCB4NCwgeDUsIHg2LCB4NyB8Ci0tICAgICAgICBGcm9tOiBtOHg4LCBtMTZ4OCB8 Ci0tICAgICAgICAvLy8gQSAyNTYtYml0IHZlY3RvciBtYXNrIHdpdGggOCBgbTMyYCBsYW5lcy4K LS0pOwotLQotLWltcGxfaSEoW2k2NDsgNF06IGk2NHg0LCBtNjR4NCB8IGk2NCwgdTggfCB0ZXN0 X3YyNTYgfCB4MCwgeDEsIHgyLCB4MyB8Ci0tICAgICAgICBGcm9tOiBpOHg0LCB1OHg0LCBpMTZ4 NCwgdTE2eDQsIGkzMng0LCB1MzJ4NCB8Ci0tICAgICAgICAvLy8gQSAyNTYtYml0IHZlY3RvciB3 aXRoIDQgYGk2NGAgbGFuZXMuCi0tKTsKLS1pbXBsX3UhKFt1NjQ7IDRdOiB1NjR4NCwgbTY0eDQg fCB1NjQsIHU4IHwgdGVzdF92MjU2IHwgeDAsIHgxLCB4MiwgeDMgfAotLSAgICAgICAgRnJvbTog dTh4NCwgdTE2eDQsIHUzMng0IHwKLS0gICAgICAgIC8vLyBBIDI1Ni1iaXQgdmVjdG9yIHdpdGgg NCBgdTY0YCBsYW5lcy4KLS0pOwotLWltcGxfZiEoW2Y2NDsgNF06IGY2NHg0LCBtNjR4NCB8IGY2 NCB8IHRlc3RfdjI1NiB8IHgwLCB4MSwgeDIsIHgzIHwKLS0gICAgICAgIEZyb206IGk4eDQsIHU4 eDQsIGkxNng0LCB1MTZ4NCwgaTMyeDQsIHUzMng0LCBmMzJ4NCB8Ci0tICAgICAgICAvLy8gQSAy NTYtYml0IHZlY3RvciB3aXRoIDQgYGY2NGAgbGFuZXMuCi0tKTsKLS1pbXBsX20hKFttNjQ7IDRd OiBtNjR4NCB8IGk2NCwgdTggfCB0ZXN0X3YyNTYgfCB4MCwgeDEsIHgyLCB4MyB8Ci0tICAgICAg ICBGcm9tOiBtOHg0LCBtMTZ4NCwgbTMyeDQgfAotLSAgICAgICAgLy8vIEEgMjU2LWJpdCB2ZWN0 b3IgbWFzayB3aXRoIDQgYG02NGAgbGFuZXMuCi0tKTsKLS0KLS1pbXBsX2khKFtpMTI4OyAyXTog aTEyOHgyLCBtMTI4eDIgfCBpMTI4LCB1OCB8IHRlc3RfdjI1NiB8IHgwLCB4MSB8Ci0tICAgICAg ICBGcm9tOiBpOHgyLCB1OHgyLCBpMTZ4MiwgdTE2eDIsIGkzMngyLCB1MzJ4MiwgaTY0eDIsIHU2 NHgyIHwKLS0gICAgICAgIC8vLyBBIDI1Ni1iaXQgdmVjdG9yIHdpdGggMiBgaTEyOGAgbGFuZXMu Ci0tKTsKLS1pbXBsX3UhKFt1MTI4OyAyXTogdTEyOHgyLCBtMTI4eDIgfCB1MTI4LCB1OCB8IHRl c3RfdjI1NiB8IHgwLCB4MSB8Ci0tICAgICAgICBGcm9tOiB1OHgyLCB1MTZ4MiwgdTMyeDIsIHU2 NHgyIHwKLS0gICAgICAgIC8vLyBBIDI1Ni1iaXQgdmVjdG9yIHdpdGggMiBgdTEyOGAgbGFuZXMu Ci0tKTsKLS1pbXBsX20hKFttMTI4OyAyXTogbTEyOHgyIHwgaTEyOCwgdTggfCB0ZXN0X3YyNTYg fCB4MCwgeDEgfAotLSAgICAgICAgRnJvbTogbTh4MiwgbTE2eDIsIG0zMngyLCBtNjR4MiB8Ci0t ICAgICAgICAvLy8gQSAyNTYtYml0IHZlY3RvciBtYXNrIHdpdGggMiBgbTEyOGAgbGFuZXMuCi0t KTsKLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy92MzIucnMg Yi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy92MzIucnMKLS0tLSBhL3RoaXJkX3Bh cnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL3YzMi5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAw MDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvdjMyLnJz CTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSwyOSArMCwwIEBACi0t Ly8hIDMyLWJpdCB3aWRlIHZlY3RvciB0eXBlcwotLQotLXVzZSBjcmF0ZTo6KjsKLS0KLS1pbXBs X2khKFtpODsgNF06IGk4eDQsIG04eDQgfCBpOCwgdTggfCB0ZXN0X3YzMiB8IHgwLCB4MSwgeDIs IHgzIHwKLS0gICAgICAgIEZyb206IHwKLS0gICAgICAgIC8vLyBBIDMyLWJpdCB2ZWN0b3Igd2l0 aCA0IGBpOGAgbGFuZXMuCi0tKTsKLS1pbXBsX3UhKFt1ODsgNF06IHU4eDQsIG04eDQgfCB1OCwg dTggfCB0ZXN0X3YzMiB8IHgwLCB4MSwgeDIsIHgzIHwKLS0gICAgICAgIEZyb206IHwKLS0gICAg ICAgIC8vLyBBIDMyLWJpdCB2ZWN0b3Igd2l0aCA0IGB1OGAgbGFuZXMuCi0tKTsKLS1pbXBsX20h KFttODsgNF06IG04eDQgfCBpOCwgdTggfCB0ZXN0X3YzMiB8IHgwLCB4MSwgeDIsIHgzIHwKLS0g ICAgICAgIEZyb206IG0xNng0LCBtMzJ4NCwgbTY0eDQgfAotLSAgICAgICAgLy8vIEEgMzItYml0 IHZlY3RvciBtYXNrIHdpdGggNCBgbThgIGxhbmVzLgotLSk7Ci0tCi0taW1wbF9pIShbaTE2OyAy XTogaTE2eDIsIG0xNngyIHwgaTE2LCB1OCB8IHRlc3RfdjMyIHwgeDAsIHgxIHwKLS0gICAgICAg IEZyb206IGk4eDIsIHU4eDIgfAotLSAgICAgICAgLy8vIEEgMzItYml0IHZlY3RvciB3aXRoIDIg YGkxNmAgbGFuZXMuCi0tKTsKLS1pbXBsX3UhKFt1MTY7IDJdOiB1MTZ4MiwgbTE2eDIgfCB1MTYs IHU4IHwgdGVzdF92MzIgfCB4MCwgeDEgfAotLSAgICAgICAgRnJvbTogdTh4MiB8Ci0tICAgICAg ICAvLy8gQSAzMi1iaXQgdmVjdG9yIHdpdGggMiBgdTE2YCBsYW5lcy4KLS0pOwotLWltcGxfbSEo W20xNjsgMl06IG0xNngyIHwgaTE2LCB1OCB8IHRlc3RfdjMyIHwgeDAsIHgxIHwKLS0gICAgICAg IEZyb206IG04eDIsIG0zMngyLCBtNjR4MiwgbTEyOHgyIHwKLS0gICAgICAgIC8vLyBBIDMyLWJp dCB2ZWN0b3IgbWFzayB3aXRoIDIgYG0xNmAgbGFuZXMuCi0tKTsKLWRpZmYgLU5yYnUgYS90aGly ZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy92NTEyLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9w YWNrZWRfc2ltZC9zcmMvdjUxMi5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2lt ZC9zcmMvdjUxMi5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIv dGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvdjUxMi5ycwkxOTcwLTAxLTAxIDAzOjAw OjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsOTkgKzAsMCBAQAotLS8vISA1MTItYml0IHdpZGUg dmVjdG9yIHR5cGVzCi0tI1tydXN0Zm10Ojpza2lwXQotLQotLXVzZSBjcmF0ZTo6KjsKLS0KLS1p bXBsX2khKFtpODsgNjRdOiBpOHg2NCwgbTh4NjQgfCBpOCwgdTY0IHwgdGVzdF92NTEyIHwKLS0g ICAgICAgIHgwLCB4MSwgeDIsIHgzLCB4NCwgeDUsIHg2LCB4NywgeDgsIHg5LCB4MTAsIHgxMSwg eDEyLCB4MTMsIHgxNCwgeDE1LAotLSAgICAgICAgeDE2LCB4MTcsIHgxOCwgeDE5LCB4MjAsIHgy MSwgeDIyLCB4MjMsIHgyNCwgeDI1LCB4MjYsIHgyNywgeDI4LCB4MjksIHgzMCwgeDMxLAotLSAg ICAgICAgeDMyLCB4MzMsIHgzNCwgeDM1LCB4MzYsIHgzNywgeDM4LCB4MzksIHg0MCwgeDQxLCB4 NDIsIHg0MywgeDQ0LCB4NDUsIHg0NiwgeDQ3LAotLSAgICAgICAgeDQ4LCB4NDksIHg1MCwgeDUx LCB4NTIsIHg1MywgeDU0LCB4NTUsIHg1NiwgeDU3LCB4NTgsIHg1OSwgeDYwLCB4NjEsIHg2Miwg eDYzIHwKLS0gICAgICAgIEZyb206IHwKLS0gICAgICAgIC8vLyBBIDUxMi1iaXQgdmVjdG9yIHdp dGggNjQgYGk4YCBsYW5lcy4KLS0pOwotLWltcGxfdSEoW3U4OyA2NF06IHU4eDY0LCBtOHg2NCB8 IHU4LCB1NjQgfCB0ZXN0X3Y1MTIgfAotLSAgICAgICAgeDAsIHgxLCB4MiwgeDMsIHg0LCB4NSwg eDYsIHg3LCB4OCwgeDksIHgxMCwgeDExLCB4MTIsIHgxMywgeDE0LCB4MTUsCi0tICAgICAgICB4 MTYsIHgxNywgeDE4LCB4MTksIHgyMCwgeDIxLCB4MjIsIHgyMywgeDI0LCB4MjUsIHgyNiwgeDI3 LCB4MjgsIHgyOSwgeDMwLCB4MzEsCi0tICAgICAgICB4MzIsIHgzMywgeDM0LCB4MzUsIHgzNiwg eDM3LCB4MzgsIHgzOSwgeDQwLCB4NDEsIHg0MiwgeDQzLCB4NDQsIHg0NSwgeDQ2LCB4NDcsCi0t ICAgICAgICB4NDgsIHg0OSwgeDUwLCB4NTEsIHg1MiwgeDUzLCB4NTQsIHg1NSwgeDU2LCB4NTcs IHg1OCwgeDU5LCB4NjAsIHg2MSwgeDYyLCB4NjMgfAotLSAgICAgICAgRnJvbTogfAotLSAgICAg ICAgLy8vIEEgNTEyLWJpdCB2ZWN0b3Igd2l0aCA2NCBgdThgIGxhbmVzLgotLSk7Ci0taW1wbF9t IShbbTg7IDY0XTogbTh4NjQgfCBpOCwgdTY0IHwgdGVzdF92NTEyIHwKLS0gICAgICAgIHgwLCB4 MSwgeDIsIHgzLCB4NCwgeDUsIHg2LCB4NywgeDgsIHg5LCB4MTAsIHgxMSwgeDEyLCB4MTMsIHgx NCwgeDE1LAotLSAgICAgICAgeDE2LCB4MTcsIHgxOCwgeDE5LCB4MjAsIHgyMSwgeDIyLCB4MjMs IHgyNCwgeDI1LCB4MjYsIHgyNywgeDI4LCB4MjksIHgzMCwgeDMxLAotLSAgICAgICAgeDMyLCB4 MzMsIHgzNCwgeDM1LCB4MzYsIHgzNywgeDM4LCB4MzksIHg0MCwgeDQxLCB4NDIsIHg0MywgeDQ0 LCB4NDUsIHg0NiwgeDQ3LAotLSAgICAgICAgeDQ4LCB4NDksIHg1MCwgeDUxLCB4NTIsIHg1Mywg eDU0LCB4NTUsIHg1NiwgeDU3LCB4NTgsIHg1OSwgeDYwLCB4NjEsIHg2MiwgeDYzIHwKLS0gICAg ICAgIEZyb206ICB8Ci0tICAgICAgICAvLy8gQSA1MTItYml0IHZlY3RvciBtYXNrIHdpdGggNjQg YG04YCBsYW5lcy4KLS0pOwotLQotLWltcGxfaSEoW2kxNjsgMzJdOiBpMTZ4MzIsIG0xNngzMiB8 IGkxNiwgdTMyIHwgdGVzdF92NTEyIHwKLS0gICAgICAgIHgwLCB4MSwgeDIsIHgzLCB4NCwgeDUs IHg2LCB4NywgeDgsIHg5LCB4MTAsIHgxMSwgeDEyLCB4MTMsIHgxNCwgeDE1LAotLSAgICAgICAg eDE2LCB4MTcsIHgxOCwgeDE5LCB4MjAsIHgyMSwgeDIyLCB4MjMsIHgyNCwgeDI1LCB4MjYsIHgy NywgeDI4LCB4MjksIHgzMCwgeDMxIHwKLS0gICAgICAgIEZyb206IGk4eDMyLCB1OHgzMiB8Ci0t ICAgICAgICAvLy8gQSA1MTItYml0IHZlY3RvciB3aXRoIDMyIGBpMTZgIGxhbmVzLgotLSk7Ci0t aW1wbF91IShbdTE2OyAzMl06IHUxNngzMiwgbTE2eDMyIHwgdTE2LCB1MzIgfCB0ZXN0X3Y1MTIg fAotLSAgICAgICAgeDAsIHgxLCB4MiwgeDMsIHg0LCB4NSwgeDYsIHg3LCB4OCwgeDksIHgxMCwg eDExLCB4MTIsIHgxMywgeDE0LCB4MTUsCi0tICAgICAgICB4MTYsIHgxNywgeDE4LCB4MTksIHgy MCwgeDIxLCB4MjIsIHgyMywgeDI0LCB4MjUsIHgyNiwgeDI3LCB4MjgsIHgyOSwgeDMwLCB4MzEg fAotLSAgICAgICAgRnJvbTogdTh4MzIgfAotLSAgICAgICAgLy8vIEEgNTEyLWJpdCB2ZWN0b3Ig d2l0aCAzMiBgdTE2YCBsYW5lcy4KLS0pOwotLWltcGxfbSEoW20xNjsgMzJdOiBtMTZ4MzIgfCBp MTYsIHUzMiB8IHRlc3RfdjUxMiB8Ci0tICAgICAgICB4MCwgeDEsIHgyLCB4MywgeDQsIHg1LCB4 NiwgeDcsIHg4LCB4OSwgeDEwLCB4MTEsIHgxMiwgeDEzLCB4MTQsIHgxNSwKLS0gICAgICAgIHgx NiwgeDE3LCB4MTgsIHgxOSwgeDIwLCB4MjEsIHgyMiwgeDIzLCB4MjQsIHgyNSwgeDI2LCB4Mjcs IHgyOCwgeDI5LCB4MzAsIHgzMSB8Ci0tICAgICAgICBGcm9tOiBtOHgzMiB8Ci0tICAgICAgICAv Ly8gQSA1MTItYml0IHZlY3RvciBtYXNrIHdpdGggMzIgYG0xNmAgbGFuZXMuCi0tKTsKLS0KLS1p bXBsX2khKFtpMzI7IDE2XTogaTMyeDE2LCBtMzJ4MTYgfCBpMzIsIHUxNiB8IHRlc3RfdjUxMiB8 Ci0tICAgICAgICB4MCwgeDEsIHgyLCB4MywgeDQsIHg1LCB4NiwgeDcsIHg4LCB4OSwgeDEwLCB4 MTEsIHgxMiwgeDEzLCB4MTQsIHgxNSB8Ci0tICAgICAgICBGcm9tOiBpOHgxNiwgdTh4MTYsIGkx NngxNiwgdTE2eDE2IHwKLS0gICAgICAgIC8vLyBBIDUxMi1iaXQgdmVjdG9yIHdpdGggMTYgYGkz MmAgbGFuZXMuCi0tKTsKLS1pbXBsX3UhKFt1MzI7IDE2XTogdTMyeDE2LCBtMzJ4MTYgfCB1MzIs IHUxNiB8IHRlc3RfdjUxMiB8Ci0tICAgICAgICB4MCwgeDEsIHgyLCB4MywgeDQsIHg1LCB4Niwg eDcsIHg4LCB4OSwgeDEwLCB4MTEsIHgxMiwgeDEzLCB4MTQsIHgxNSB8Ci0tICAgICAgICBGcm9t OiB1OHgxNiwgdTE2eDE2IHwKLS0gICAgICAgIC8vLyBBIDUxMi1iaXQgdmVjdG9yIHdpdGggMTYg YHUzMmAgbGFuZXMuCi0tKTsKLS1pbXBsX2YhKFtmMzI7IDE2XTogZjMyeDE2LCBtMzJ4MTYgfCBm MzIgfCB0ZXN0X3Y1MTIgfAotLSAgICAgICAgeDAsIHgxLCB4MiwgeDMsIHg0LCB4NSwgeDYsIHg3 LCB4OCwgeDksIHgxMCwgeDExLCB4MTIsIHgxMywgeDE0LCB4MTUgfAotLSAgICAgICAgRnJvbTog aTh4MTYsIHU4eDE2LCBpMTZ4MTYsIHUxNngxNiB8Ci0tICAgICAgICAvLy8gQSA1MTItYml0IHZl Y3RvciB3aXRoIDE2IGBmMzJgIGxhbmVzLgotLSk7Ci0taW1wbF9tIShbbTMyOyAxNl06IG0zMngx NiB8IGkzMiwgdTE2IHwgdGVzdF92NTEyIHwKLS0gICAgICAgIHgwLCB4MSwgeDIsIHgzLCB4NCwg eDUsIHg2LCB4NywgeDgsIHg5LCB4MTAsIHgxMSwgeDEyLCB4MTMsIHgxNCwgeDE1IHwKLS0gICAg ICAgIEZyb206IG04eDE2LCBtMTZ4MTYgfAotLSAgICAgICAgLy8vIEEgNTEyLWJpdCB2ZWN0b3Ig bWFzayB3aXRoIDE2IGBtMzJgIGxhbmVzLgotLSk7Ci0tCi0taW1wbF9pIShbaTY0OyA4XTogaTY0 eDgsIG02NHg4IHwgaTY0LCB1OCB8IHRlc3RfdjUxMiB8IHgwLCB4MSwgeDIsIHgzLCB4NCwgeDUs IHg2LCB4NyB8Ci0tICAgICAgICBGcm9tOiBpOHg4LCB1OHg4LCBpMTZ4OCwgdTE2eDgsIGkzMng4 LCB1MzJ4OCB8Ci0tICAgICAgICAvLy8gQSA1MTItYml0IHZlY3RvciB3aXRoIDggYGk2NGAgbGFu ZXMuCi0tKTsKLS1pbXBsX3UhKFt1NjQ7IDhdOiB1NjR4OCwgbTY0eDggfCB1NjQsIHU4IHwgdGVz dF92NTEyIHwgeDAsIHgxLCB4MiwgeDMsIHg0LCB4NSwgeDYsIHg3IHwKLS0gICAgICAgIEZyb206 IHU4eDgsIHUxNng4LCB1MzJ4OCB8Ci0tICAgICAgICAvLy8gQSA1MTItYml0IHZlY3RvciB3aXRo IDggYHU2NGAgbGFuZXMuCi0tKTsKLS1pbXBsX2YhKFtmNjQ7IDhdOiBmNjR4OCwgbTY0eDggfCBm NjQgfCB0ZXN0X3Y1MTIgfCB4MCwgeDEsIHgyLCB4MywgeDQsIHg1LCB4NiwgeDcgfAotLSAgICAg ICAgRnJvbTogaTh4OCwgdTh4OCwgaTE2eDgsIHUxNng4LCBpMzJ4OCwgdTMyeDgsIGYzMng4IHwK LS0gICAgICAgIC8vLyBBIDUxMi1iaXQgdmVjdG9yIHdpdGggOCBgZjY0YCBsYW5lcy4KLS0pOwot LWltcGxfbSEoW202NDsgOF06IG02NHg4IHwgaTY0LCB1OCB8IHRlc3RfdjUxMiB8IHgwLCB4MSwg eDIsIHgzLCB4NCwgeDUsIHg2LCB4NyB8Ci0tICAgICAgICBGcm9tOiBtOHg4LCBtMTZ4OCwgbTMy eDggfAotLSAgICAgICAgLy8vIEEgNTEyLWJpdCB2ZWN0b3IgbWFzayB3aXRoIDggYG02NGAgbGFu ZXMuCi0tKTsKLS0KLS1pbXBsX2khKFtpMTI4OyA0XTogaTEyOHg0LCBtMTI4eDQgfCBpMTI4LCB1 OCB8IHRlc3RfdjUxMiB8IHgwLCB4MSwgeDIsIHgzIHwKLS0gICAgICAgIEZyb206IGk4eDQsIHU4 eDQsIGkxNng0LCB1MTZ4NCwgaTMyeDQsIHUzMng0LCBpNjR4NCwgdTY0eDQgfAotLSAgICAgICAg Ly8vIEEgNTEyLWJpdCB2ZWN0b3Igd2l0aCA0IGBpMTI4YCBsYW5lcy4KLS0pOwotLWltcGxfdSEo W3UxMjg7IDRdOiB1MTI4eDQsIG0xMjh4NCB8IHUxMjgsIHU4IHwgdGVzdF92NTEyIHwgeDAsIHgx LCB4MiwgeDMgfAotLSAgICAgICAgRnJvbTogdTh4NCwgdTE2eDQsIHUzMng0LCB1NjR4NCB8Ci0t ICAgICAgICAvLy8gQSA1MTItYml0IHZlY3RvciB3aXRoIDQgYHUxMjhgIGxhbmVzLgotLSk7Ci0t aW1wbF9tIShbbTEyODsgNF06IG0xMjh4NCB8IGkxMjgsIHU4IHwgdGVzdF92NTEyIHwgeDAsIHgx LCB4MiwgeDMgfAotLSAgICAgICAgRnJvbTogbTh4NCwgbTE2eDQsIG0zMng0LCBtNjR4NCB8Ci0t ICAgICAgICAvLy8gQSA1MTItYml0IHZlY3RvciBtYXNrIHdpdGggNCBgbTEyOGAgbGFuZXMuCi0t KTsKLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy92NjQucnMg Yi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy92NjQucnMKLS0tLSBhL3RoaXJkX3Bh cnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL3Y2NC5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAw MDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvdjY0LnJz CTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSw2NiArMCwwIEBACi0t Ly8hIDY0LWJpdCB3aWRlIHZlY3RvciB0eXBlcwotLSNbcnVzdGZtdDo6c2tpcF0KLS0KLS11c2Ug c3VwZXI6Oio7Ci0tCi0taW1wbF9pIShbaTg7IDhdOiBpOHg4LCBtOHg4IHwgaTgsIHU4IHwgdGVz dF92NjQgfCB4MCwgeDEsIHgyLCB4MywgeDQsIHg1LCB4NiwgeDcgfAotLSAgICAgICAgRnJvbTog fAotLSAgICAgICAgLy8vIEEgNjQtYml0IHZlY3RvciB3aXRoIDggYGk4YCBsYW5lcy4KLS0pOwot LWltcGxfdSEoW3U4OyA4XTogdTh4OCwgbTh4OCB8IHU4LCB1OCB8IHRlc3RfdjY0IHwgeDAsIHgx LCB4MiwgeDMsIHg0LCB4NSwgeDYsIHg3IHwKLS0gICAgICAgIEZyb206IHwKLS0gICAgICAgIC8v LyBBIDY0LWJpdCB2ZWN0b3Igd2l0aCA4IGB1OGAgbGFuZXMuCi0tKTsKLS1pbXBsX20hKFttODsg OF06IG04eDggfCBpOCwgdTggfCB0ZXN0X3Y2NCB8IHgwLCB4MSwgeDIsIHgzLCB4NCwgeDUsIHg2 LCB4NyB8Ci0tICAgICAgICBGcm9tOiBtMTZ4OCwgbTMyeDggfAotLSAgICAgICAgLy8vIEEgNjQt Yml0IHZlY3RvciBtYXNrIHdpdGggOCBgbThgIGxhbmVzLgotLSk7Ci0tCi0taW1wbF9pIShbaTE2 OyA0XTogaTE2eDQsIG0xNng0IHwgaTE2LCB1OCB8IHRlc3RfdjY0IHwgeDAsIHgxLCB4MiwgeDMg fAotLSAgICAgICAgRnJvbTogaTh4NCwgdTh4NCB8Ci0tICAgICAgICAvLy8gQSA2NC1iaXQgdmVj dG9yIHdpdGggNCBgaTE2YCBsYW5lcy4KLS0pOwotLWltcGxfdSEoW3UxNjsgNF06IHUxNng0LCBt MTZ4NCB8IHUxNiwgdTggfCB0ZXN0X3Y2NCB8IHgwLCB4MSwgeDIsIHgzIHwKLS0gICAgICAgIEZy b206IHU4eDQgfAotLSAgICAgICAgLy8vIEEgNjQtYml0IHZlY3RvciB3aXRoIDQgYHUxNmAgbGFu ZXMuCi0tKTsKLS1pbXBsX20hKFttMTY7IDRdOiBtMTZ4NCB8IGkxNiwgdTggfCB0ZXN0X3Y2NCB8 IHgwLCB4MSwgeDIsIHgzIHwKLS0gICAgICAgIEZyb206IG04eDQsIG0zMng0LCBtNjR4NCB8Ci0t ICAgICAgICAvLy8gQSA2NC1iaXQgdmVjdG9yIG1hc2sgd2l0aCA0IGBtMTZgIGxhbmVzLgotLSk7 Ci0tCi0taW1wbF9pIShbaTMyOyAyXTogaTMyeDIsIG0zMngyIHwgaTMyLCB1OCB8IHRlc3RfdjY0 IHwgeDAsIHgxIHwKLS0gICAgICAgIEZyb206IGk4eDIsIHU4eDIsIGkxNngyLCB1MTZ4MiB8Ci0t ICAgICAgICAvLy8gQSA2NC1iaXQgdmVjdG9yIHdpdGggMiBgaTMyYCBsYW5lcy4KLS0pOwotLWlt cGxfdSEoW3UzMjsgMl06IHUzMngyLCBtMzJ4MiB8IHUzMiwgdTggfCB0ZXN0X3Y2NCB8IHgwLCB4 MSB8Ci0tICAgICAgICBGcm9tOiB1OHgyLCB1MTZ4MiB8Ci0tICAgICAgICAvLy8gQSA2NC1iaXQg dmVjdG9yIHdpdGggMiBgdTMyYCBsYW5lcy4KLS0pOwotLWltcGxfbSEoW20zMjsgMl06IG0zMngy IHwgaTMyLCB1OCB8IHRlc3RfdjY0IHwgeDAsIHgxIHwKLS0gICAgICAgIEZyb206IG04eDIsIG0x NngyLCBtNjR4MiwgbTEyOHgyIHwKLS0gICAgICAgIC8vLyBBIDY0LWJpdCB2ZWN0b3IgbWFzayB3 aXRoIDIgYG0zMmAgbGFuZXMuCi0tKTsKLS1pbXBsX2YhKFtmMzI7IDJdOiBmMzJ4MiwgbTMyeDIg fCBmMzIgfCB0ZXN0X3Y2NCB8IHgwLCB4MSB8Ci0tICAgICAgICBGcm9tOiBpOHgyLCB1OHgyLCBp MTZ4MiwgdTE2eDIgfAotLSAgICAgICAgLy8vIEEgNjQtYml0IHZlY3RvciB3aXRoIDIgYGYzMmAg bGFuZXMuCi0tKTsKLS0KLS0vKgotLWltcGxfaSEoW2k2NDsgMV06IGk2NHgxLCBtNjR4MSB8IGk2 NCwgdTggfCB0ZXN0X3Y2NCB8IHgwIHwKLS0gICAgICAgIEZyb206IC8qaTh4MSwgdTh4MSwgaTE2 eDEsIHUxNngxLCBpMzJ4MSwgdTMyeDEqLyB8ICAvLyBGSVhNRTogcHJpbWl0aXZlIHRvIHZlY3Rv ciBjb252ZXJzaW9uCi0tICAgICAgICAvLy8gQSA2NC1iaXQgdmVjdG9yIHdpdGggMSBgaTY0YCBs YW5lcy4KLS0pOwotLWltcGxfdSEoW3U2NDsgMV06IHU2NHgxLCBtNjR4MSB8IHU2NCwgdTggfCB0 ZXN0X3Y2NCB8IHgwIHwKLS0gICAgICAgIEZyb206IC8qdTh4MSwgdTE2eDEsIHUzMngxKi8gfCAv LyBGSVhNRTogcHJpbWl0aXZlIHRvIHZlY3RvciBjb252ZXJzaW9uCi0tICAgICAgICAvLy8gQSA2 NC1iaXQgdmVjdG9yIHdpdGggMSBgdTY0YCBsYW5lcy4KLS0pOwotLWltcGxfbSEoW202NDsgMV06 IG02NHgxIHwgaTY0LCB1OCB8IHRlc3RfdjY0IHwgeDAgfAotLSAgICAgICAgRnJvbTogLyptOHgx LCBtMTZ4MSwgbTMyeDEsICovIG0xMjh4MSB8IC8vIEZJWE1FOiB1bmFyeSBzbWFsbCB2ZWN0b3Ig dHlwZXMKLS0gICAgICAgIC8vLyBBIDY0LWJpdCB2ZWN0b3IgbWFzayB3aXRoIDEgYG02NGAgbGFu ZXMuCi0tKTsKLS1pbXBsX2YhKFtmNjQ7IDFdOiBmNjR4MSwgbTY0eDEgfCBmNjQgfCB0ZXN0X3Y2 NCB8IHgwIHwKLS0gICAgICAgIEZyb206IC8qaTh4MSwgdTh4MSwgaTE2eDEsIHUxNngxLCBpMzJ4 MSwgdTMyeDEsIGYzMngxKi8gfCAvLyBGSVhNRTogdW5hcnkgc21hbGwgdmVjdG9yIHR5cGVzCi0t ICAgICAgICAvLy8gQSA2NC1iaXQgdmVjdG9yIHdpdGggMSBgZjY0YCBsYW5lcy4KLS0pOwotLSov Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvdlB0ci5ycyBi L3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL3ZQdHIucnMKLS0tLSBhL3RoaXJkX3Bh cnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL3ZQdHIucnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAw MDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL3ZQdHIu cnMJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDM0ICswLDAgQEAK LS0vLyEgVmVjdG9ycyBvZiBwb2ludGVycwotLSNbcnVzdGZtdDo6c2tpcF0KLS0KLS11c2UgY3Jh dGU6Oio7Ci0tCi0taW1wbF9jb25zdF9wISgKLS0gICAgWypjb25zdCBUOyAyXTogY3B0cngyLCBt c2l6ZXgyLCB1c2l6ZXgyLCBpc2l6ZXgyIHwgdGVzdF92MTI4IHwgeDAsIHgxIHwgRnJvbTogfAot LSAgICAvLy8gQSB2ZWN0b3Igd2l0aCAyIGAqY29uc3QgVGAgbGFuZXMKLS0pOwotLQotLWltcGxf bXV0X3AhKAotLSAgICBbKm11dCBUOyAyXTogbXB0cngyLCBtc2l6ZXgyLCB1c2l6ZXgyLCBpc2l6 ZXgyIHwgdGVzdF92MTI4IHwgeDAsIHgxIHwgRnJvbTogfAotLSAgICAvLy8gQSB2ZWN0b3Igd2l0 aCAyIGAqbXV0IFRgIGxhbmVzCi0tKTsKLS0KLS1pbXBsX2NvbnN0X3AhKAotLSAgICBbKmNvbnN0 IFQ7IDRdOiBjcHRyeDQsIG1zaXpleDQsIHVzaXpleDQsIGlzaXpleDQgfCB0ZXN0X3YyNTYgfCB4 MCwgeDEsIHgyLCB4MyB8IEZyb206IHwKLS0gICAgLy8vIEEgdmVjdG9yIHdpdGggNCBgKmNvbnN0 IFRgIGxhbmVzCi0tKTsKLS0KLS1pbXBsX211dF9wISgKLS0gICAgWyptdXQgVDsgNF06IG1wdHJ4 NCwgbXNpemV4NCwgdXNpemV4NCwgaXNpemV4NCB8IHRlc3RfdjI1NiB8IHgwLCB4MSwgeDIsIHgz IHwgRnJvbTogfAotLSAgICAvLy8gQSB2ZWN0b3Igd2l0aCA0IGAqbXV0IFRgIGxhbmVzCi0tKTsK LS0KLS1pbXBsX2NvbnN0X3AhKAotLSAgICBbKmNvbnN0IFQ7IDhdOiBjcHRyeDgsIG1zaXpleDgs IHVzaXpleDgsIGlzaXpleDggfCB0ZXN0X3Y1MTIgfCB4MCwgeDEsIHgyLCB4MywgeDQsIHg1LCB4 NiwgeDcgfCBGcm9tOiB8Ci0tICAgIC8vLyBBIHZlY3RvciB3aXRoIDggYCpjb25zdCBUYCBsYW5l cwotLSk7Ci0tCi0taW1wbF9tdXRfcCEoCi0tICAgIFsqbXV0IFQ7IDhdOiBtcHRyeDgsIG1zaXpl eDgsIHVzaXpleDgsIGlzaXpleDggfCB0ZXN0X3Y1MTIgfCB4MCwgeDEsIHgyLCB4MywgeDQsIHg1 LCB4NiwgeDcgfCBGcm9tOiB8Ci0tICAgIC8vLyBBIHZlY3RvciB3aXRoIDggYCptdXQgVGAgbGFu ZXMKLS0pOwotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL3ZT aXplLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvdlNpemUucnMKLS0tLSBh L3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL3ZTaXplLnJzCTIwMjUtMDQtMjAgMTk6 Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1k L3NyYy92U2l6ZS5ycwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEs NTMgKzAsMCBAQAotLS8vISBWZWN0b3JzIHdpdGggcG9pbnRlci1zaXplZCBlbGVtZW50cwotLQot LXVzZSBjcmF0ZTo6Y29kZWdlbjo6cG9pbnRlcl9zaXplZF9pbnQ6Ontpc2l6ZV8sIHVzaXplX307 Ci0tdXNlIGNyYXRlOjoqOwotLQotLWltcGxfaSEoW2lzaXplOyAyXTogaXNpemV4MiwgbXNpemV4 MiB8IGlzaXplXywgdTggfCB0ZXN0X3YxMjggfAotLSAgICAgICAgeDAsIHgxfAotLSAgICAgICAg RnJvbTogfAotLSAgICAgICAgLy8vIEEgdmVjdG9yIHdpdGggMiBgaXNpemVgIGxhbmVzLgotLSk7 Ci0tCi0taW1wbF91IShbdXNpemU7IDJdOiB1c2l6ZXgyLCBtc2l6ZXgyIHwgdXNpemVfLCB1OCB8 IHRlc3RfdjEyOCB8Ci0tICAgICAgICB4MCwgeDF8Ci0tICAgICAgICBGcm9tOiB8Ci0tICAgICAg ICAvLy8gQSB2ZWN0b3Igd2l0aCAyIGB1c2l6ZWAgbGFuZXMuCi0tKTsKLS1pbXBsX20hKFttc2l6 ZTsgMl06IG1zaXpleDIgfCBpc2l6ZV8sIHU4IHwgdGVzdF92MTI4IHwKLS0gICAgICAgIHgwLCB4 MSB8Ci0tICAgICAgICBGcm9tOiB8Ci0tICAgICAgICAvLy8gQSB2ZWN0b3IgbWFzayB3aXRoIDIg YG1zaXplYCBsYW5lcy4KLS0pOwotLQotLWltcGxfaSEoW2lzaXplOyA0XTogaXNpemV4NCwgbXNp emV4NCB8IGlzaXplXywgdTggfCB0ZXN0X3YyNTYgfAotLSAgICAgICAgeDAsIHgxLCB4MiwgeDMg fAotLSAgICAgICAgRnJvbTogfAotLSAgICAgICAgLy8vIEEgdmVjdG9yIHdpdGggNCBgaXNpemVg IGxhbmVzLgotLSk7Ci0taW1wbF91IShbdXNpemU7IDRdOiB1c2l6ZXg0LCBtc2l6ZXg0IHwgdXNp emVfLCB1OCB8IHRlc3RfdjI1NiB8Ci0tICAgICAgICB4MCwgeDEsIHgyLCB4M3wKLS0gICAgICAg IEZyb206IHwKLS0gICAgICAgIC8vLyBBIHZlY3RvciB3aXRoIDQgYHVzaXplYCBsYW5lcy4KLS0p OwotLWltcGxfbSEoW21zaXplOyA0XTogbXNpemV4NCB8IGlzaXplXywgdTggfCB0ZXN0X3YyNTYg fAotLSAgICAgICAgeDAsIHgxLCB4MiwgeDMgfAotLSAgICAgICAgRnJvbTogfAotLSAgICAgICAg Ly8vIEEgdmVjdG9yIG1hc2sgd2l0aCA0IGBtc2l6ZWAgbGFuZXMuCi0tKTsKLS0KLS1pbXBsX2kh KFtpc2l6ZTsgOF06IGlzaXpleDgsIG1zaXpleDggfCBpc2l6ZV8sIHU4IHwgdGVzdF92NTEyIHwK LS0gICAgICAgIHgwLCB4MSwgeDIsIHgzLCB4NCwgeDUsIHg2LCB4NyB8Ci0tICAgICAgICBGcm9t OiB8Ci0tICAgICAgICAvLy8gQSB2ZWN0b3Igd2l0aCA4IGBpc2l6ZWAgbGFuZXMuCi0tKTsKLS1p bXBsX3UhKFt1c2l6ZTsgOF06IHVzaXpleDgsIG1zaXpleDggfCB1c2l6ZV8sIHU4IHwgdGVzdF92 NTEyIHwKLS0gICAgICAgIHgwLCB4MSwgeDIsIHgzLCB4NCwgeDUsIHg2LCB4NyB8Ci0tICAgICAg ICBGcm9tOiB8Ci0tICAgICAgICAvLy8gQSB2ZWN0b3Igd2l0aCA4IGB1c2l6ZWAgbGFuZXMuCi0t KTsKLS1pbXBsX20hKFttc2l6ZTsgOF06IG1zaXpleDggfCBpc2l6ZV8sIHU4IHwgdGVzdF92NTEy IHwKLS0gICAgICAgIHgwLCB4MSwgeDIsIHgzLCB4NCwgeDUsIHg2LCB4NyB8Ci0tICAgICAgICBG cm9tOiB8Ci0tICAgICAgICAvLy8gQSB2ZWN0b3IgbWFzayB3aXRoIDggYG1zaXplYCBsYW5lcy4K LS0pOwotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvdGVzdHMvZW5k aWFubmVzcy5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvdGVzdHMvZW5kaWFubmVz cy5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC90ZXN0cy9lbmRpYW5uZXNz LnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0 eS9ydXN0L3BhY2tlZF9zaW1kL3Rlc3RzL2VuZGlhbm5lc3MucnMJMTk3MC0wMS0wMSAwMzowMDow MC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDI2OCArMCwwIEBACi0tI1tjZmcodGFyZ2V0X2FyY2gg PSAid2FzbTMyIildCi0tdXNlIHdhc21fYmluZGdlbl90ZXN0OjoqOwotLQotLXVzZSBwYWNrZWRf c2ltZDo6KjsKLS11c2Ugc3RkOjp7bWVtLCBzbGljZX07Ci0tCi0tI1tjZmdfYXR0cihub3QodGFy Z2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXQotLSNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAi d2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQotLWZuIGVuZGlhbl9pbmRleGluZygpIHsKLS0g ICAgbGV0IHYgPSBpMzJ4NDo6bmV3KDAsIDEsIDIsIDMpOwotLSAgICBhc3NlcnRfZXEhKHYuZXh0 cmFjdCgwKSwgMCk7Ci0tICAgIGFzc2VydF9lcSEodi5leHRyYWN0KDEpLCAxKTsKLS0gICAgYXNz ZXJ0X2VxISh2LmV4dHJhY3QoMiksIDIpOwotLSAgICBhc3NlcnRfZXEhKHYuZXh0cmFjdCgzKSwg Myk7Ci0tfQotLQotLSNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0 KV0KLS0jW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0 KV0KLS1mbiBlbmRpYW5fYml0Y2FzdHMoKSB7Ci0tICAgICNbcnVzdGZtdDo6c2tpcF0KLS0gICAg bGV0IHggPSBpOHgxNjo6bmV3KAotLSAgICAgICAgMCwgMSwgMiwgMywgNCwgNSwgNiwgNywKLS0g ICAgICAgIDgsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsCi0tICAgICk7Ci0tICAgIGxldCB0 OiBpMTZ4OCA9IHVuc2FmZSB7IG1lbTo6dHJhbnNtdXRlKHgpIH07Ci0tICAgIGxldCBlOiBpMTZ4 OCA9IGlmIGNmZyEodGFyZ2V0X2VuZGlhbiA9ICJsaXR0bGUiKSB7Ci0tICAgICAgICBpMTZ4ODo6 bmV3KDI1NiwgNzcwLCAxMjg0LCAxNzk4LCAyMzEyLCAyODI2LCAzMzQwLCAzODU0KQotLSAgICB9 IGVsc2UgewotLSAgICAgICAgaTE2eDg6Om5ldygxLCA1MTUsIDEwMjksIDE1NDMsIDIwNTcsIDI1 NzEsIDMwODUsIDM1OTkpCi0tICAgIH07Ci0tICAgIGFzc2VydF9lcSEodCwgZSk7Ci0tfQotLQot LSNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0KLS0jW2NmZ19h dHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KLS1mbiBlbmRp YW5fY2FzdHMoKSB7Ci0tICAgICNbcnVzdGZtdDo6c2tpcF0KLS0gICAgbGV0IHggPSBpOHgxNjo6 bmV3KAotLSAgICAgICAgMCwgMSwgMiwgMywgNCwgNSwgNiwgNywKLS0gICAgICAgIDgsIDksIDEw LCAxMSwgMTIsIDEzLCAxNCwgMTUsCi0tICAgICk7Ci0tICAgIGxldCB0OiBpMTZ4MTYgPSB4Lmlu dG8oKTsgLy8gc2ltZF9jYXN0Ci0tICAgICNbcnVzdGZtdDo6c2tpcF0KLS0gICAgbGV0IGUgPSBp MTZ4MTY6Om5ldygKLS0gICAgICAgIDAsIDEsIDIsIDMsIDQsIDUsIDYsIDcsCi0tICAgICAgICA4 LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LAotLSAgICApOwotLSAgICBhc3NlcnRfZXEhKHQs IGUpOwotLX0KLS0KLS0jW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVz dCldCi0tI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVz dCldCi0tZm4gZW5kaWFuX2xvYWRfYW5kX3N0b3JlcygpIHsKLS0gICAgI1tydXN0Zm10Ojpza2lw XQotLSAgICBsZXQgeCA9IGk4eDE2OjpuZXcoCi0tICAgICAgICAwLCAxLCAyLCAzLCA0LCA1LCA2 LCA3LAotLSAgICAgICAgOCwgOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwKLS0gICAgKTsKLS0g ICAgbGV0IG11dCB5OiBbaTE2OyA4XSA9IFswOyA4XTsKLS0gICAgeC53cml0ZV90b19zbGljZV91 bmFsaWduZWQodW5zYWZlIHsgc2xpY2U6OmZyb21fcmF3X3BhcnRzX211dCgmbXV0IHkgYXMgKm11 dCBfIGFzICptdXQgaTgsIDE2KSB9KTsKLS0KLS0gICAgbGV0IGU6IFtpMTY7IDhdID0gaWYgY2Zn ISh0YXJnZXRfZW5kaWFuID0gImxpdHRsZSIpIHsKLS0gICAgICAgIFsyNTYsIDc3MCwgMTI4NCwg MTc5OCwgMjMxMiwgMjgyNiwgMzM0MCwgMzg1NF0KLS0gICAgfSBlbHNlIHsKLS0gICAgICAgIFsx LCA1MTUsIDEwMjksIDE1NDMsIDIwNTcsIDI1NzEsIDMwODUsIDM1OTldCi0tICAgIH07Ci0tICAg IGFzc2VydF9lcSEoeSwgZSk7Ci0tCi0tICAgIGxldCB6ID0gaTh4MTY6OmZyb21fc2xpY2VfdW5h bGlnbmVkKHVuc2FmZSB7IHNsaWNlOjpmcm9tX3Jhd19wYXJ0cygmeSBhcyAqY29uc3QgXyBhcyAq Y29uc3QgaTgsIDE2KSB9KTsKLS0gICAgYXNzZXJ0X2VxISh6LCB4KTsKLS19Ci0tCi0tI1tjZmdf YXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXQotLSNbY2ZnX2F0dHIodGFy Z2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQotLWZuIGVuZGlhbl9hcnJh eV91bmlvbigpIHsKLS0gICAgdW5pb24gQSB7Ci0tICAgICAgICBkYXRhOiBbZjMyOyA0XSwKLS0g ICAgICAgIHZlYzogZjMyeDQsCi0tICAgIH0KLS0gICAgbGV0IHg6IFtmMzI7IDRdID0gdW5zYWZl IHsgQSB7IHZlYzogZjMyeDQ6Om5ldygwLiwgMS4sIDIuLCAzLikgfS5kYXRhIH07Ci0tICAgIC8v IEFzIGFsbCBvZiB0aGVzZSBhcmUgaW50ZWdlciB2YWx1ZXMgd2l0aGluIHRoZSBtYW50aXNzYV4x IHJhbmdlLCBpdAotLSAgICAvLyB3b3VsZCBiZSB2ZXJ5IHVudXN1YWwgZm9yIHRoZW0gdG8gYWN0 dWFsbHkgZmFpbCB0byBjb21wYXJlLgotLSAgICAjW2FsbG93KGNsaXBweTo6ZmxvYXRfY21wKV0K LS0gICAgewotLSAgICAgICAgYXNzZXJ0X2VxISh4WzBdLCAwX2YzMik7Ci0tICAgICAgICBhc3Nl cnRfZXEhKHhbMV0sIDFfZjMyKTsKLS0gICAgICAgIGFzc2VydF9lcSEoeFsyXSwgMl9mMzIpOwot LSAgICAgICAgYXNzZXJ0X2VxISh4WzNdLCAzX2YzMik7Ci0tICAgIH0KLS0gICAgbGV0IHk6IGYz Mng0ID0gdW5zYWZlIHsgQSB7IGRhdGE6IFszLiwgMi4sIDEuLCAwLl0gfS52ZWMgfTsKLS0gICAg YXNzZXJ0X2VxISh5LCBmMzJ4NDo6bmV3KDMuLCAyLiwgMS4sIDAuKSk7Ci0tCi0tICAgIHVuaW9u IEIgewotLSAgICAgICAgZGF0YTogW2k4OyAxNl0sCi0tICAgICAgICB2ZWM6IGk4eDE2LAotLSAg ICB9Ci0tICAgICNbcnVzdGZtdDo6c2tpcF0KLS0gICAgbGV0IHggPSBpOHgxNjo6bmV3KAotLSAg ICAgICAgMCwgMSwgMiwgMywgNCwgNSwgNiwgNywKLS0gICAgICAgIDgsIDksIDEwLCAxMSwgMTIs IDEzLCAxNCwgMTUsCi0tICAgICk7Ci0tICAgIGxldCB4OiBbaTg7IDE2XSA9IHVuc2FmZSB7IEIg eyB2ZWM6IHggfS5kYXRhIH07Ci0tCi0tICAgIGZvciAoaSwgdikgaW4geC5pdGVyKCkuZW51bWVy YXRlKCkgewotLSAgICAgICAgYXNzZXJ0X2VxIShpIGFzIGk4LCAqdik7Ci0tICAgIH0KLS0KLS0g ICAgI1tydXN0Zm10Ojpza2lwXQotLSAgICBsZXQgeSA9IFsKLS0gICAgICAgIDE1LCAxNCwgMTMs IDEyLCAxMSwgMTksIDksIDgsCi0tICAgICAgICA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwCi0tICAg IF07Ci0tICAgICNbcnVzdGZtdDo6c2tpcF0KLS0gICAgbGV0IGUgPSBpOHgxNjo6bmV3KAotLSAg ICAgICAgMTUsIDE0LCAxMywgMTIsIDExLCAxOSwgOSwgOCwKLS0gICAgICAgIDcsIDYsIDUsIDQs IDMsIDIsIDEsIDAKLS0gICAgKTsKLS0gICAgbGV0IHogPSB1bnNhZmUgeyBCIHsgZGF0YTogeSB9 LnZlYyB9OwotLSAgICBhc3NlcnRfZXEhKHosIGUpOwotLQotLSAgICB1bmlvbiBDIHsKLS0gICAg ICAgIGRhdGE6IFtpMTY7IDhdLAotLSAgICAgICAgdmVjOiBpOHgxNiwKLS0gICAgfQotLSAgICAj W3J1c3RmbXQ6OnNraXBdCi0tICAgIGxldCB4ID0gaTh4MTY6Om5ldygKLS0gICAgICAgIDAsIDEs IDIsIDMsIDQsIDUsIDYsIDcsCi0tICAgICAgICA4LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1 LAotLSAgICApOwotLSAgICBsZXQgeDogW2kxNjsgOF0gPSB1bnNhZmUgeyBDIHsgdmVjOiB4IH0u ZGF0YSB9OwotLQotLSAgICBsZXQgZTogW2kxNjsgOF0gPSBpZiBjZmchKHRhcmdldF9lbmRpYW4g PSAibGl0dGxlIikgewotLSAgICAgICAgWzI1NiwgNzcwLCAxMjg0LCAxNzk4LCAyMzEyLCAyODI2 LCAzMzQwLCAzODU0XQotLSAgICB9IGVsc2UgewotLSAgICAgICAgWzEsIDUxNSwgMTAyOSwgMTU0 MywgMjA1NywgMjU3MSwgMzA4NSwgMzU5OV0KLS0gICAgfTsKLS0gICAgYXNzZXJ0X2VxISh4LCBl KTsKLS19Ci0tCi0tI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3Qp XQotLSNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3Qp XQotLWZuIGVuZGlhbl90dXBsZV9hY2Nlc3MoKSB7Ci0tICAgIHR5cGUgRjMyeDRUID0gKGYzMiwg ZjMyLCBmMzIsIGYzMik7Ci0tICAgIHVuaW9uIEEgewotLSAgICAgICAgZGF0YTogRjMyeDRULAot LSAgICAgICAgdmVjOiBmMzJ4NCwKLS0gICAgfQotLSAgICBsZXQgeDogRjMyeDRUID0gdW5zYWZl IHsgQSB7IHZlYzogZjMyeDQ6Om5ldygwLiwgMS4sIDIuLCAzLikgfS5kYXRhIH07Ci0tICAgIC8v IEFzIGFsbCBvZiB0aGVzZSBhcmUgaW50ZWdlciB2YWx1ZXMgd2l0aGluIHRoZSBtYW50aXNzYV4x IHJhbmdlLCBpdAotLSAgICAvLyB3b3VsZCBiZSB2ZXJ5IHVudXN1YWwgZm9yIHRoZW0gdG8gYWN0 dWFsbHkgZmFpbCB0byBjb21wYXJlLgotLSAgICAjW2FsbG93KGNsaXBweTo6ZmxvYXRfY21wKV0K LS0gICAgewotLSAgICAgICAgYXNzZXJ0X2VxISh4LjAsIDBfZjMyKTsKLS0gICAgICAgIGFzc2Vy dF9lcSEoeC4xLCAxX2YzMik7Ci0tICAgICAgICBhc3NlcnRfZXEhKHguMiwgMl9mMzIpOwotLSAg ICAgICAgYXNzZXJ0X2VxISh4LjMsIDNfZjMyKTsKLS0gICAgfQotLSAgICBsZXQgeTogZjMyeDQg PSB1bnNhZmUgeyBBIHsgZGF0YTogKDMuLCAyLiwgMS4sIDAuKSB9LnZlYyB9OwotLSAgICBhc3Nl cnRfZXEhKHksIGYzMng0OjpuZXcoMy4sIDIuLCAxLiwgMC4pKTsKLS0KLS0gICAgI1tydXN0Zm10 Ojpza2lwXQotLSAgICB0eXBlIEk4eDE2VCA9IChpOCwgaTgsIGk4LCBpOCwgaTgsIGk4LCBpOCwg aTgsIGk4LCBpOCwgaTgsIGk4LCBpOCwgaTgsIGk4LCBpOCk7Ci0tICAgIHVuaW9uIEIgewotLSAg ICAgICAgZGF0YTogSTh4MTZULAotLSAgICAgICAgdmVjOiBpOHgxNiwKLS0gICAgfQotLQotLSAg ICAjW3J1c3RmbXQ6OnNraXBdCi0tICAgIGxldCB4ID0gaTh4MTY6Om5ldygKLS0gICAgICAgIDAs IDEsIDIsIDMsIDQsIDUsIDYsIDcsCi0tICAgICAgICA4LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQs IDE1LAotLSAgICApOwotLSAgICBsZXQgeDogSTh4MTZUID0gdW5zYWZlIHsgQiB7IHZlYzogeCB9 LmRhdGEgfTsKLS0KLS0gICAgYXNzZXJ0X2VxISh4LjAsIDApOwotLSAgICBhc3NlcnRfZXEhKHgu MSwgMSk7Ci0tICAgIGFzc2VydF9lcSEoeC4yLCAyKTsKLS0gICAgYXNzZXJ0X2VxISh4LjMsIDMp OwotLSAgICBhc3NlcnRfZXEhKHguNCwgNCk7Ci0tICAgIGFzc2VydF9lcSEoeC41LCA1KTsKLS0g ICAgYXNzZXJ0X2VxISh4LjYsIDYpOwotLSAgICBhc3NlcnRfZXEhKHguNywgNyk7Ci0tICAgIGFz c2VydF9lcSEoeC44LCA4KTsKLS0gICAgYXNzZXJ0X2VxISh4LjksIDkpOwotLSAgICBhc3NlcnRf ZXEhKHguMTAsIDEwKTsKLS0gICAgYXNzZXJ0X2VxISh4LjExLCAxMSk7Ci0tICAgIGFzc2VydF9l cSEoeC4xMiwgMTIpOwotLSAgICBhc3NlcnRfZXEhKHguMTMsIDEzKTsKLS0gICAgYXNzZXJ0X2Vx ISh4LjE0LCAxNCk7Ci0tICAgIGFzc2VydF9lcSEoeC4xNSwgMTUpOwotLQotLSAgICAjW3J1c3Rm bXQ6OnNraXBdCi0tICAgIGxldCB5ID0gKAotLSAgICAgICAgMTUsIDE0LCAxMywgMTIsIDExLCAx MCwgOSwgOCwKLS0gICAgICAgIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDAKLS0gICAgKTsKLS0gICAg bGV0IHo6IGk4eDE2ID0gdW5zYWZlIHsgQiB7IGRhdGE6IHkgfS52ZWMgfTsKLS0gICAgI1tydXN0 Zm10Ojpza2lwXQotLSAgICBsZXQgZSA9IGk4eDE2OjpuZXcoCi0tICAgICAgICAxNSwgMTQsIDEz LCAxMiwgMTEsIDEwLCA5LCA4LAotLSAgICAgICAgNywgNiwgNSwgNCwgMywgMiwgMSwgMAotLSAg ICApOwotLSAgICBhc3NlcnRfZXEhKGUsIHopOwotLQotLSAgICAjW3J1c3RmbXQ6OnNraXBdCi0t ICAgIHR5cGUgSTE2eDhUID0gKGkxNiwgaTE2LCBpMTYsIGkxNiwgaTE2LCBpMTYsIGkxNiwgaTE2 KTsKLS0gICAgdW5pb24gQyB7Ci0tICAgICAgICBkYXRhOiBJMTZ4OFQsCi0tICAgICAgICB2ZWM6 IGk4eDE2LAotLSAgICB9Ci0tCi0tICAgICNbcnVzdGZtdDo6c2tpcF0KLS0gICAgbGV0IHggPSBp OHgxNjo6bmV3KAotLSAgICAgICAgMCwgMSwgMiwgMywgNCwgNSwgNiwgNywKLS0gICAgICAgIDgs IDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsCi0tICAgICk7Ci0tICAgIGxldCB4OiBJMTZ4OFQg PSB1bnNhZmUgeyBDIHsgdmVjOiB4IH0uZGF0YSB9OwotLQotLSAgICBsZXQgZTogW2kxNjsgOF0g PSBpZiBjZmchKHRhcmdldF9lbmRpYW4gPSAibGl0dGxlIikgewotLSAgICAgICAgWzI1NiwgNzcw LCAxMjg0LCAxNzk4LCAyMzEyLCAyODI2LCAzMzQwLCAzODU0XQotLSAgICB9IGVsc2UgewotLSAg ICAgICAgWzEsIDUxNSwgMTAyOSwgMTU0MywgMjA1NywgMjU3MSwgMzA4NSwgMzU5OV0KLS0gICAg fTsKLS0gICAgYXNzZXJ0X2VxISh4LjAsIGVbMF0pOwotLSAgICBhc3NlcnRfZXEhKHguMSwgZVsx XSk7Ci0tICAgIGFzc2VydF9lcSEoeC4yLCBlWzJdKTsKLS0gICAgYXNzZXJ0X2VxISh4LjMsIGVb M10pOwotLSAgICBhc3NlcnRfZXEhKHguNCwgZVs0XSk7Ci0tICAgIGFzc2VydF9lcSEoeC41LCBl WzVdKTsKLS0gICAgYXNzZXJ0X2VxISh4LjYsIGVbNl0pOwotLSAgICBhc3NlcnRfZXEhKHguNywg ZVs3XSk7Ci0tCi0tICAgICNbcnVzdGZtdDo6c2tpcF0KLS0gICAgI1tyZXByKEMpXQotLSAgICAj W2Rlcml2ZShDb3B5ICxDbG9uZSldCi0tICAgIHB1YiBzdHJ1Y3QgVHVwKHB1YiBpOCwgcHViIGk4 LCBwdWIgaTE2LCBwdWIgaTgsIHB1YiBpOCwgcHViIGkxNiwKLS0gICAgICAgICAgICAgICAgICAg cHViIGk4LCBwdWIgaTgsIHB1YiBpMTYsIHB1YiBpOCwgcHViIGk4LCBwdWIgaTE2KTsKLS0KLS0g ICAgdW5pb24gRCB7Ci0tICAgICAgICBkYXRhOiBUdXAsCi0tICAgICAgICB2ZWM6IGk4eDE2LAot LSAgICB9Ci0tCi0tICAgICNbcnVzdGZtdDo6c2tpcF0KLS0gICAgbGV0IHggPSBpOHgxNjo6bmV3 KAotLSAgICAgICAgMCwgMSwgMiwgMywgNCwgNSwgNiwgNywKLS0gICAgICAgIDgsIDksIDEwLCAx MSwgMTIsIDEzLCAxNCwgMTUsCi0tICAgICk7Ci0tICAgIGxldCB4OiBUdXAgPSB1bnNhZmUgeyBE IHsgdmVjOiB4IH0uZGF0YSB9OwotLQotLSAgICBsZXQgZTogW2kxNjsgMTJdID0gaWYgY2ZnISh0 YXJnZXRfZW5kaWFuID0gImxpdHRsZSIpIHsKLS0gICAgICAgIFswLCAxLCA3NzAsIDQsIDUsIDE3 OTgsIDgsIDksIDI4MjYsIDEyLCAxMywgMzg1NF0KLS0gICAgfSBlbHNlIHsKLS0gICAgICAgIFsw LCAxLCA1MTUsIDQsIDUsIDE1NDMsIDgsIDksIDI1NzEsIDEyLCAxMywgMzU5OV0KLS0gICAgfTsK LS0gICAgYXNzZXJ0X2VxISh4LjAgYXMgaTE2LCBlWzBdKTsKLS0gICAgYXNzZXJ0X2VxISh4LjEg YXMgaTE2LCBlWzFdKTsKLS0gICAgYXNzZXJ0X2VxISh4LjIgYXMgaTE2LCBlWzJdKTsKLS0gICAg YXNzZXJ0X2VxISh4LjMgYXMgaTE2LCBlWzNdKTsKLS0gICAgYXNzZXJ0X2VxISh4LjQgYXMgaTE2 LCBlWzRdKTsKLS0gICAgYXNzZXJ0X2VxISh4LjUgYXMgaTE2LCBlWzVdKTsKLS0gICAgYXNzZXJ0 X2VxISh4LjYgYXMgaTE2LCBlWzZdKTsKLS0gICAgYXNzZXJ0X2VxISh4LjcgYXMgaTE2LCBlWzdd KTsKLS0gICAgYXNzZXJ0X2VxISh4LjggYXMgaTE2LCBlWzhdKTsKLS0gICAgYXNzZXJ0X2VxISh4 LjkgYXMgaTE2LCBlWzldKTsKLS0gICAgYXNzZXJ0X2VxISh4LjEwIGFzIGkxNiwgZVsxMF0pOwot LSAgICBhc3NlcnRfZXEhKHguMTEgYXMgaTE2LCBlWzExXSk7Ci0tfQotZGlmZiAtTnJidSBhL3Ro aXJkX3BhcnR5L3J1c3QvdmVyc2lvbl9jaGVjay8uY2FyZ28tY2hlY2tzdW0uanNvbiBiL3RoaXJk X3BhcnR5L3J1c3QvdmVyc2lvbl9jaGVjay8uY2FyZ28tY2hlY2tzdW0uanNvbgotLS0tIGEvdGhp cmRfcGFydHkvcnVzdC92ZXJzaW9uX2NoZWNrLy5jYXJnby1jaGVja3N1bS5qc29uCTE5NzAtMDEt MDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3ZlcnNp b25fY2hlY2svLmNhcmdvLWNoZWNrc3VtLmpzb24JMjAyNS0wOS0xNyAxNzo0MTo0Ny41MDU3OTU1 OTggKzAzMDAKLUBAIC0wLDAgKzEgQEAKLSt7ImZpbGVzIjp7IkNhcmdvLnRvbWwiOiJmMjVkODgw NDQ5MTRjYjM0NjZkZjQzYmMzOWExOTllMTU4OWRkYTFhYWQzMjI2YzljN2U3YWM0ZDJmODc1MWQw IiwiTElDRU5TRS1BUEFDSEUiOiJhNjBlZWE4MTc1MTQ1MzE2NjhkN2UwMDc2NTczMTQ0OWZlMTRk MDU5ZDMyNDllMGJjOTNiMzZkZTQ1Zjc1OWYyIiwiTElDRU5TRS1NSVQiOiJiN2U2NTBmM2ZjZTVj NTMyNDlkMWNkYzYwOGI1NGRmMTU2YTk3ZWRkNjM2Y2Y5ZDIzNDk4ZDBjZmU3YWVjNjNlIiwiUkVB RE1FLm1kIjoiYWMyYTBhMzYwODEyNDM2YmQ1Nzk4ZjVmZTJhZmZlN2Q2ZWQ5ZWI3ZjE1ZDZlNGQ3 MzkzMWU5NWI0Mzc1NjBmMiIsInNyYy9jaGFubmVsLnJzIjoiZDI0NDNkNTAzZDRjYzQ2OWExNzFh NTFhMjZlY2EzZWMwZDJhNThiNWY3Mzc1YTg0NTQyYzM2ZjE0MjE3NjZhOCIsInNyYy9kYXRlLnJz IjoiMDk1ODBhMGEyMDA4ZmFkMmNjYmM0M2ZiNDJhODhmNDIyMjFiOThiMDE2OTI3MDIwMjJhMjk2 ZGM5Yzg2YmYzNyIsInNyYy9saWIucnMiOiI3NjBmMGQyOTU2N2VjYWE2MTI4NzA4OGNmMjNjZjc0 YjNjMGVmYmJjZDMwNzdjZWE1ZmI3Yzg4MzU5ZTk2YzdlIiwic3JjL3ZlcnNpb24ucnMiOiJkYmEx OGEyNTk4M2VjNmUzN2I5NTJmNGNkYzUyMTljOWU1YWJiYTJjM2E3NmNlZjg3NDY1ZTFmYmE2Zjhh Yzg5In0sInBhY2thZ2UiOiI0OTg3NGI1MTY3YjY1ZDcxOTNiOGFiYTE1NjdmNWM3ZDkzZDAwMWNh ZmMzNDYwMGNlZTAwM2VkYTc4N2U0ODNmIn0KLVwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQot ZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvdmVyc2lvbl9jaGVjay9DYXJnby50b21sIGIv dGhpcmRfcGFydHkvcnVzdC92ZXJzaW9uX2NoZWNrL0NhcmdvLnRvbWwKLS0tLSBhL3RoaXJkX3Bh cnR5L3J1c3QvdmVyc2lvbl9jaGVjay9DYXJnby50b21sCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAw MDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3ZlcnNpb25fY2hlY2svQ2FyZ28u dG9tbAkyMDI1LTA5LTE3IDE3OjQxOjQ3LjUwNTc5NTU5OCArMDMwMAotQEAgLTAsMCArMSwyNCBA QAotKyMgVEhJUyBGSUxFIElTIEFVVE9NQVRJQ0FMTFkgR0VORVJBVEVEIEJZIENBUkdPCi0rIwot KyMgV2hlbiB1cGxvYWRpbmcgY3JhdGVzIHRvIHRoZSByZWdpc3RyeSBDYXJnbyB3aWxsIGF1dG9t YXRpY2FsbHkKLSsjICJub3JtYWxpemUiIENhcmdvLnRvbWwgZmlsZXMgZm9yIG1heGltYWwgY29t cGF0aWJpbGl0eQotKyMgd2l0aCBhbGwgdmVyc2lvbnMgb2YgQ2FyZ28gYW5kIGFsc28gcmV3cml0 ZSBgcGF0aGAgZGVwZW5kZW5jaWVzCi0rIyB0byByZWdpc3RyeSAoZS5nLiwgY3JhdGVzLmlvKSBk ZXBlbmRlbmNpZXMuCi0rIwotKyMgSWYgeW91IGFyZSByZWFkaW5nIHRoaXMgZmlsZSBiZSBhd2Fy ZSB0aGF0IHRoZSBvcmlnaW5hbCBDYXJnby50b21sCi0rIyB3aWxsIGxpa2VseSBsb29rIHZlcnkg ZGlmZmVyZW50IChhbmQgbXVjaCBtb3JlIHJlYXNvbmFibGUpLgotKyMgU2VlIENhcmdvLnRvbWwu b3JpZyBmb3IgdGhlIG9yaWdpbmFsIGNvbnRlbnRzLgotKwotK1twYWNrYWdlXQotK25hbWUgPSAi dmVyc2lvbl9jaGVjayIKLSt2ZXJzaW9uID0gIjAuOS40IgotK2F1dGhvcnMgPSBbIlNlcmdpbyBC ZW5pdGV6IDxzYkBzZXJnaW8uYno+Il0KLStleGNsdWRlID0gWyJzdGF0aWMiXQotK2Rlc2NyaXB0 aW9uID0gIlRpbnkgY3JhdGUgdG8gY2hlY2sgdGhlIHZlcnNpb24gb2YgdGhlIGluc3RhbGxlZC9y dW5uaW5nIHJ1c3RjLiIKLStkb2N1bWVudGF0aW9uID0gImh0dHBzOi8vZG9jcy5ycy92ZXJzaW9u X2NoZWNrLyIKLStyZWFkbWUgPSAiUkVBRE1FLm1kIgotK2tleXdvcmRzID0gWyJ2ZXJzaW9uIiwg InJ1c3RjIiwgIm1pbmltdW0iLCAiY2hlY2siXQotK2xpY2Vuc2UgPSAiTUlUL0FwYWNoZS0yLjAi Ci0rcmVwb3NpdG9yeSA9ICJodHRwczovL2dpdGh1Yi5jb20vU2VyZ2lvQmVuaXRlei92ZXJzaW9u X2NoZWNrIgotKwotK1tkZXBlbmRlbmNpZXNdCi1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVz dC92ZXJzaW9uX2NoZWNrL0xJQ0VOU0UtQVBBQ0hFIGIvdGhpcmRfcGFydHkvcnVzdC92ZXJzaW9u X2NoZWNrL0xJQ0VOU0UtQVBBQ0hFCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3ZlcnNpb25fY2hl Y2svTElDRU5TRS1BUEFDSEUJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLSsr KyBiL3RoaXJkX3BhcnR5L3J1c3QvdmVyc2lvbl9jaGVjay9MSUNFTlNFLUFQQUNIRQkyMDI1LTA5 LTE3IDE3OjQxOjQ3LjUwNTc5NTU5OCArMDMwMAotQEAgLTAsMCArMSwyMDEgQEAKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBBcGFjaGUgTGljZW5zZQotKyAgICAgICAgICAgICAgICAg ICAgICAgIFZlcnNpb24gMi4wLCBKYW51YXJ5IDIwMDQKLSsgICAgICAgICAgICAgICAgICAgICBo dHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvCi0rCi0rVEVSTVMgQU5EIENPTkRJVElPTlMg Rk9SIFVTRSwgUkVQUk9EVUNUSU9OLCBBTkQgRElTVFJJQlVUSU9OCi0rCi0rMS4gRGVmaW5pdGlv bnMuCi0rCi0rICAgIkxpY2Vuc2UiIHNoYWxsIG1lYW4gdGhlIHRlcm1zIGFuZCBjb25kaXRpb25z IGZvciB1c2UsIHJlcHJvZHVjdGlvbiwKLSsgICBhbmQgZGlzdHJpYnV0aW9uIGFzIGRlZmluZWQg YnkgU2VjdGlvbnMgMSB0aHJvdWdoIDkgb2YgdGhpcyBkb2N1bWVudC4KLSsKLSsgICAiTGljZW5z b3IiIHNoYWxsIG1lYW4gdGhlIGNvcHlyaWdodCBvd25lciBvciBlbnRpdHkgYXV0aG9yaXplZCBi eQotKyAgIHRoZSBjb3B5cmlnaHQgb3duZXIgdGhhdCBpcyBncmFudGluZyB0aGUgTGljZW5zZS4K LSsKLSsgICAiTGVnYWwgRW50aXR5IiBzaGFsbCBtZWFuIHRoZSB1bmlvbiBvZiB0aGUgYWN0aW5n IGVudGl0eSBhbmQgYWxsCi0rICAgb3RoZXIgZW50aXRpZXMgdGhhdCBjb250cm9sLCBhcmUgY29u dHJvbGxlZCBieSwgb3IgYXJlIHVuZGVyIGNvbW1vbgotKyAgIGNvbnRyb2wgd2l0aCB0aGF0IGVu dGl0eS4gRm9yIHRoZSBwdXJwb3NlcyBvZiB0aGlzIGRlZmluaXRpb24sCi0rICAgImNvbnRyb2wi IG1lYW5zIChpKSB0aGUgcG93ZXIsIGRpcmVjdCBvciBpbmRpcmVjdCwgdG8gY2F1c2UgdGhlCi0r ICAgZGlyZWN0aW9uIG9yIG1hbmFnZW1lbnQgb2Ygc3VjaCBlbnRpdHksIHdoZXRoZXIgYnkgY29u dHJhY3Qgb3IKLSsgICBvdGhlcndpc2UsIG9yIChpaSkgb3duZXJzaGlwIG9mIGZpZnR5IHBlcmNl bnQgKDUwJSkgb3IgbW9yZSBvZiB0aGUKLSsgICBvdXRzdGFuZGluZyBzaGFyZXMsIG9yIChpaWkp IGJlbmVmaWNpYWwgb3duZXJzaGlwIG9mIHN1Y2ggZW50aXR5LgotKwotKyAgICJZb3UiIChvciAi WW91ciIpIHNoYWxsIG1lYW4gYW4gaW5kaXZpZHVhbCBvciBMZWdhbCBFbnRpdHkKLSsgICBleGVy Y2lzaW5nIHBlcm1pc3Npb25zIGdyYW50ZWQgYnkgdGhpcyBMaWNlbnNlLgotKwotKyAgICJTb3Vy Y2UiIGZvcm0gc2hhbGwgbWVhbiB0aGUgcHJlZmVycmVkIGZvcm0gZm9yIG1ha2luZyBtb2RpZmlj YXRpb25zLAotKyAgIGluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8gc29mdHdhcmUgc291cmNl IGNvZGUsIGRvY3VtZW50YXRpb24KLSsgICBzb3VyY2UsIGFuZCBjb25maWd1cmF0aW9uIGZpbGVz LgotKwotKyAgICJPYmplY3QiIGZvcm0gc2hhbGwgbWVhbiBhbnkgZm9ybSByZXN1bHRpbmcgZnJv bSBtZWNoYW5pY2FsCi0rICAgdHJhbnNmb3JtYXRpb24gb3IgdHJhbnNsYXRpb24gb2YgYSBTb3Vy Y2UgZm9ybSwgaW5jbHVkaW5nIGJ1dAotKyAgIG5vdCBsaW1pdGVkIHRvIGNvbXBpbGVkIG9iamVj dCBjb2RlLCBnZW5lcmF0ZWQgZG9jdW1lbnRhdGlvbiwKLSsgICBhbmQgY29udmVyc2lvbnMgdG8g b3RoZXIgbWVkaWEgdHlwZXMuCi0rCi0rICAgIldvcmsiIHNoYWxsIG1lYW4gdGhlIHdvcmsgb2Yg YXV0aG9yc2hpcCwgd2hldGhlciBpbiBTb3VyY2Ugb3IKLSsgICBPYmplY3QgZm9ybSwgbWFkZSBh dmFpbGFibGUgdW5kZXIgdGhlIExpY2Vuc2UsIGFzIGluZGljYXRlZCBieSBhCi0rICAgY29weXJp Z2h0IG5vdGljZSB0aGF0IGlzIGluY2x1ZGVkIGluIG9yIGF0dGFjaGVkIHRvIHRoZSB3b3JrCi0r ICAgKGFuIGV4YW1wbGUgaXMgcHJvdmlkZWQgaW4gdGhlIEFwcGVuZGl4IGJlbG93KS4KLSsKLSsg ICAiRGVyaXZhdGl2ZSBXb3JrcyIgc2hhbGwgbWVhbiBhbnkgd29yaywgd2hldGhlciBpbiBTb3Vy Y2Ugb3IgT2JqZWN0Ci0rICAgZm9ybSwgdGhhdCBpcyBiYXNlZCBvbiAob3IgZGVyaXZlZCBmcm9t KSB0aGUgV29yayBhbmQgZm9yIHdoaWNoIHRoZQotKyAgIGVkaXRvcmlhbCByZXZpc2lvbnMsIGFu bm90YXRpb25zLCBlbGFib3JhdGlvbnMsIG9yIG90aGVyIG1vZGlmaWNhdGlvbnMKLSsgICByZXBy ZXNlbnQsIGFzIGEgd2hvbGUsIGFuIG9yaWdpbmFsIHdvcmsgb2YgYXV0aG9yc2hpcC4gRm9yIHRo ZSBwdXJwb3NlcwotKyAgIG9mIHRoaXMgTGljZW5zZSwgRGVyaXZhdGl2ZSBXb3JrcyBzaGFsbCBu b3QgaW5jbHVkZSB3b3JrcyB0aGF0IHJlbWFpbgotKyAgIHNlcGFyYWJsZSBmcm9tLCBvciBtZXJl bHkgbGluayAob3IgYmluZCBieSBuYW1lKSB0byB0aGUgaW50ZXJmYWNlcyBvZiwKLSsgICB0aGUg V29yayBhbmQgRGVyaXZhdGl2ZSBXb3JrcyB0aGVyZW9mLgotKwotKyAgICJDb250cmlidXRpb24i IHNoYWxsIG1lYW4gYW55IHdvcmsgb2YgYXV0aG9yc2hpcCwgaW5jbHVkaW5nCi0rICAgdGhlIG9y aWdpbmFsIHZlcnNpb24gb2YgdGhlIFdvcmsgYW5kIGFueSBtb2RpZmljYXRpb25zIG9yIGFkZGl0 aW9ucwotKyAgIHRvIHRoYXQgV29yayBvciBEZXJpdmF0aXZlIFdvcmtzIHRoZXJlb2YsIHRoYXQg aXMgaW50ZW50aW9uYWxseQotKyAgIHN1Ym1pdHRlZCB0byBMaWNlbnNvciBmb3IgaW5jbHVzaW9u IGluIHRoZSBXb3JrIGJ5IHRoZSBjb3B5cmlnaHQgb3duZXIKLSsgICBvciBieSBhbiBpbmRpdmlk dWFsIG9yIExlZ2FsIEVudGl0eSBhdXRob3JpemVkIHRvIHN1Ym1pdCBvbiBiZWhhbGYgb2YKLSsg ICB0aGUgY29weXJpZ2h0IG93bmVyLiBGb3IgdGhlIHB1cnBvc2VzIG9mIHRoaXMgZGVmaW5pdGlv biwgInN1Ym1pdHRlZCIKLSsgICBtZWFucyBhbnkgZm9ybSBvZiBlbGVjdHJvbmljLCB2ZXJiYWws IG9yIHdyaXR0ZW4gY29tbXVuaWNhdGlvbiBzZW50Ci0rICAgdG8gdGhlIExpY2Vuc29yIG9yIGl0 cyByZXByZXNlbnRhdGl2ZXMsIGluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8KLSsgICBjb21t dW5pY2F0aW9uIG9uIGVsZWN0cm9uaWMgbWFpbGluZyBsaXN0cywgc291cmNlIGNvZGUgY29udHJv bCBzeXN0ZW1zLAotKyAgIGFuZCBpc3N1ZSB0cmFja2luZyBzeXN0ZW1zIHRoYXQgYXJlIG1hbmFn ZWQgYnksIG9yIG9uIGJlaGFsZiBvZiwgdGhlCi0rICAgTGljZW5zb3IgZm9yIHRoZSBwdXJwb3Nl IG9mIGRpc2N1c3NpbmcgYW5kIGltcHJvdmluZyB0aGUgV29yaywgYnV0Ci0rICAgZXhjbHVkaW5n IGNvbW11bmljYXRpb24gdGhhdCBpcyBjb25zcGljdW91c2x5IG1hcmtlZCBvciBvdGhlcndpc2UK LSsgICBkZXNpZ25hdGVkIGluIHdyaXRpbmcgYnkgdGhlIGNvcHlyaWdodCBvd25lciBhcyAiTm90 IGEgQ29udHJpYnV0aW9uLiIKLSsKLSsgICAiQ29udHJpYnV0b3IiIHNoYWxsIG1lYW4gTGljZW5z b3IgYW5kIGFueSBpbmRpdmlkdWFsIG9yIExlZ2FsIEVudGl0eQotKyAgIG9uIGJlaGFsZiBvZiB3 aG9tIGEgQ29udHJpYnV0aW9uIGhhcyBiZWVuIHJlY2VpdmVkIGJ5IExpY2Vuc29yIGFuZAotKyAg IHN1YnNlcXVlbnRseSBpbmNvcnBvcmF0ZWQgd2l0aGluIHRoZSBXb3JrLgotKwotKzIuIEdyYW50 IG9mIENvcHlyaWdodCBMaWNlbnNlLiBTdWJqZWN0IHRvIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9u cyBvZgotKyAgIHRoaXMgTGljZW5zZSwgZWFjaCBDb250cmlidXRvciBoZXJlYnkgZ3JhbnRzIHRv IFlvdSBhIHBlcnBldHVhbCwKLSsgICB3b3JsZHdpZGUsIG5vbi1leGNsdXNpdmUsIG5vLWNoYXJn ZSwgcm95YWx0eS1mcmVlLCBpcnJldm9jYWJsZQotKyAgIGNvcHlyaWdodCBsaWNlbnNlIHRvIHJl cHJvZHVjZSwgcHJlcGFyZSBEZXJpdmF0aXZlIFdvcmtzIG9mLAotKyAgIHB1YmxpY2x5IGRpc3Bs YXksIHB1YmxpY2x5IHBlcmZvcm0sIHN1YmxpY2Vuc2UsIGFuZCBkaXN0cmlidXRlIHRoZQotKyAg IFdvcmsgYW5kIHN1Y2ggRGVyaXZhdGl2ZSBXb3JrcyBpbiBTb3VyY2Ugb3IgT2JqZWN0IGZvcm0u Ci0rCi0rMy4gR3JhbnQgb2YgUGF0ZW50IExpY2Vuc2UuIFN1YmplY3QgdG8gdGhlIHRlcm1zIGFu ZCBjb25kaXRpb25zIG9mCi0rICAgdGhpcyBMaWNlbnNlLCBlYWNoIENvbnRyaWJ1dG9yIGhlcmVi eSBncmFudHMgdG8gWW91IGEgcGVycGV0dWFsLAotKyAgIHdvcmxkd2lkZSwgbm9uLWV4Y2x1c2l2 ZSwgbm8tY2hhcmdlLCByb3lhbHR5LWZyZWUsIGlycmV2b2NhYmxlCi0rICAgKGV4Y2VwdCBhcyBz dGF0ZWQgaW4gdGhpcyBzZWN0aW9uKSBwYXRlbnQgbGljZW5zZSB0byBtYWtlLCBoYXZlIG1hZGUs Ci0rICAgdXNlLCBvZmZlciB0byBzZWxsLCBzZWxsLCBpbXBvcnQsIGFuZCBvdGhlcndpc2UgdHJh bnNmZXIgdGhlIFdvcmssCi0rICAgd2hlcmUgc3VjaCBsaWNlbnNlIGFwcGxpZXMgb25seSB0byB0 aG9zZSBwYXRlbnQgY2xhaW1zIGxpY2Vuc2FibGUKLSsgICBieSBzdWNoIENvbnRyaWJ1dG9yIHRo YXQgYXJlIG5lY2Vzc2FyaWx5IGluZnJpbmdlZCBieSB0aGVpcgotKyAgIENvbnRyaWJ1dGlvbihz KSBhbG9uZSBvciBieSBjb21iaW5hdGlvbiBvZiB0aGVpciBDb250cmlidXRpb24ocykKLSsgICB3 aXRoIHRoZSBXb3JrIHRvIHdoaWNoIHN1Y2ggQ29udHJpYnV0aW9uKHMpIHdhcyBzdWJtaXR0ZWQu IElmIFlvdQotKyAgIGluc3RpdHV0ZSBwYXRlbnQgbGl0aWdhdGlvbiBhZ2FpbnN0IGFueSBlbnRp dHkgKGluY2x1ZGluZyBhCi0rICAgY3Jvc3MtY2xhaW0gb3IgY291bnRlcmNsYWltIGluIGEgbGF3 c3VpdCkgYWxsZWdpbmcgdGhhdCB0aGUgV29yawotKyAgIG9yIGEgQ29udHJpYnV0aW9uIGluY29y cG9yYXRlZCB3aXRoaW4gdGhlIFdvcmsgY29uc3RpdHV0ZXMgZGlyZWN0Ci0rICAgb3IgY29udHJp YnV0b3J5IHBhdGVudCBpbmZyaW5nZW1lbnQsIHRoZW4gYW55IHBhdGVudCBsaWNlbnNlcwotKyAg IGdyYW50ZWQgdG8gWW91IHVuZGVyIHRoaXMgTGljZW5zZSBmb3IgdGhhdCBXb3JrIHNoYWxsIHRl cm1pbmF0ZQotKyAgIGFzIG9mIHRoZSBkYXRlIHN1Y2ggbGl0aWdhdGlvbiBpcyBmaWxlZC4KLSsK LSs0LiBSZWRpc3RyaWJ1dGlvbi4gWW91IG1heSByZXByb2R1Y2UgYW5kIGRpc3RyaWJ1dGUgY29w aWVzIG9mIHRoZQotKyAgIFdvcmsgb3IgRGVyaXZhdGl2ZSBXb3JrcyB0aGVyZW9mIGluIGFueSBt ZWRpdW0sIHdpdGggb3Igd2l0aG91dAotKyAgIG1vZGlmaWNhdGlvbnMsIGFuZCBpbiBTb3VyY2Ug b3IgT2JqZWN0IGZvcm0sIHByb3ZpZGVkIHRoYXQgWW91Ci0rICAgbWVldCB0aGUgZm9sbG93aW5n IGNvbmRpdGlvbnM6Ci0rCi0rICAgKGEpIFlvdSBtdXN0IGdpdmUgYW55IG90aGVyIHJlY2lwaWVu dHMgb2YgdGhlIFdvcmsgb3IKLSsgICAgICAgRGVyaXZhdGl2ZSBXb3JrcyBhIGNvcHkgb2YgdGhp cyBMaWNlbnNlOyBhbmQKLSsKLSsgICAoYikgWW91IG11c3QgY2F1c2UgYW55IG1vZGlmaWVkIGZp bGVzIHRvIGNhcnJ5IHByb21pbmVudCBub3RpY2VzCi0rICAgICAgIHN0YXRpbmcgdGhhdCBZb3Ug Y2hhbmdlZCB0aGUgZmlsZXM7IGFuZAotKwotKyAgIChjKSBZb3UgbXVzdCByZXRhaW4sIGluIHRo ZSBTb3VyY2UgZm9ybSBvZiBhbnkgRGVyaXZhdGl2ZSBXb3JrcwotKyAgICAgICB0aGF0IFlvdSBk aXN0cmlidXRlLCBhbGwgY29weXJpZ2h0LCBwYXRlbnQsIHRyYWRlbWFyaywgYW5kCi0rICAgICAg IGF0dHJpYnV0aW9uIG5vdGljZXMgZnJvbSB0aGUgU291cmNlIGZvcm0gb2YgdGhlIFdvcmssCi0r ICAgICAgIGV4Y2x1ZGluZyB0aG9zZSBub3RpY2VzIHRoYXQgZG8gbm90IHBlcnRhaW4gdG8gYW55 IHBhcnQgb2YKLSsgICAgICAgdGhlIERlcml2YXRpdmUgV29ya3M7IGFuZAotKwotKyAgIChkKSBJ ZiB0aGUgV29yayBpbmNsdWRlcyBhICJOT1RJQ0UiIHRleHQgZmlsZSBhcyBwYXJ0IG9mIGl0cwot KyAgICAgICBkaXN0cmlidXRpb24sIHRoZW4gYW55IERlcml2YXRpdmUgV29ya3MgdGhhdCBZb3Ug ZGlzdHJpYnV0ZSBtdXN0Ci0rICAgICAgIGluY2x1ZGUgYSByZWFkYWJsZSBjb3B5IG9mIHRoZSBh dHRyaWJ1dGlvbiBub3RpY2VzIGNvbnRhaW5lZAotKyAgICAgICB3aXRoaW4gc3VjaCBOT1RJQ0Ug ZmlsZSwgZXhjbHVkaW5nIHRob3NlIG5vdGljZXMgdGhhdCBkbyBub3QKLSsgICAgICAgcGVydGFp biB0byBhbnkgcGFydCBvZiB0aGUgRGVyaXZhdGl2ZSBXb3JrcywgaW4gYXQgbGVhc3Qgb25lCi0r ICAgICAgIG9mIHRoZSBmb2xsb3dpbmcgcGxhY2VzOiB3aXRoaW4gYSBOT1RJQ0UgdGV4dCBmaWxl IGRpc3RyaWJ1dGVkCi0rICAgICAgIGFzIHBhcnQgb2YgdGhlIERlcml2YXRpdmUgV29ya3M7IHdp dGhpbiB0aGUgU291cmNlIGZvcm0gb3IKLSsgICAgICAgZG9jdW1lbnRhdGlvbiwgaWYgcHJvdmlk ZWQgYWxvbmcgd2l0aCB0aGUgRGVyaXZhdGl2ZSBXb3Jrczsgb3IsCi0rICAgICAgIHdpdGhpbiBh IGRpc3BsYXkgZ2VuZXJhdGVkIGJ5IHRoZSBEZXJpdmF0aXZlIFdvcmtzLCBpZiBhbmQKLSsgICAg ICAgd2hlcmV2ZXIgc3VjaCB0aGlyZC1wYXJ0eSBub3RpY2VzIG5vcm1hbGx5IGFwcGVhci4gVGhl IGNvbnRlbnRzCi0rICAgICAgIG9mIHRoZSBOT1RJQ0UgZmlsZSBhcmUgZm9yIGluZm9ybWF0aW9u YWwgcHVycG9zZXMgb25seSBhbmQKLSsgICAgICAgZG8gbm90IG1vZGlmeSB0aGUgTGljZW5zZS4g WW91IG1heSBhZGQgWW91ciBvd24gYXR0cmlidXRpb24KLSsgICAgICAgbm90aWNlcyB3aXRoaW4g RGVyaXZhdGl2ZSBXb3JrcyB0aGF0IFlvdSBkaXN0cmlidXRlLCBhbG9uZ3NpZGUKLSsgICAgICAg b3IgYXMgYW4gYWRkZW5kdW0gdG8gdGhlIE5PVElDRSB0ZXh0IGZyb20gdGhlIFdvcmssIHByb3Zp ZGVkCi0rICAgICAgIHRoYXQgc3VjaCBhZGRpdGlvbmFsIGF0dHJpYnV0aW9uIG5vdGljZXMgY2Fu bm90IGJlIGNvbnN0cnVlZAotKyAgICAgICBhcyBtb2RpZnlpbmcgdGhlIExpY2Vuc2UuCi0rCi0r ICAgWW91IG1heSBhZGQgWW91ciBvd24gY29weXJpZ2h0IHN0YXRlbWVudCB0byBZb3VyIG1vZGlm aWNhdGlvbnMgYW5kCi0rICAgbWF5IHByb3ZpZGUgYWRkaXRpb25hbCBvciBkaWZmZXJlbnQgbGlj ZW5zZSB0ZXJtcyBhbmQgY29uZGl0aW9ucwotKyAgIGZvciB1c2UsIHJlcHJvZHVjdGlvbiwgb3Ig ZGlzdHJpYnV0aW9uIG9mIFlvdXIgbW9kaWZpY2F0aW9ucywgb3IKLSsgICBmb3IgYW55IHN1Y2gg RGVyaXZhdGl2ZSBXb3JrcyBhcyBhIHdob2xlLCBwcm92aWRlZCBZb3VyIHVzZSwKLSsgICByZXBy b2R1Y3Rpb24sIGFuZCBkaXN0cmlidXRpb24gb2YgdGhlIFdvcmsgb3RoZXJ3aXNlIGNvbXBsaWVz IHdpdGgKLSsgICB0aGUgY29uZGl0aW9ucyBzdGF0ZWQgaW4gdGhpcyBMaWNlbnNlLgotKwotKzUu IFN1Ym1pc3Npb24gb2YgQ29udHJpYnV0aW9ucy4gVW5sZXNzIFlvdSBleHBsaWNpdGx5IHN0YXRl IG90aGVyd2lzZSwKLSsgICBhbnkgQ29udHJpYnV0aW9uIGludGVudGlvbmFsbHkgc3VibWl0dGVk IGZvciBpbmNsdXNpb24gaW4gdGhlIFdvcmsKLSsgICBieSBZb3UgdG8gdGhlIExpY2Vuc29yIHNo YWxsIGJlIHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZgotKyAgIHRoaXMgTGljZW5z ZSwgd2l0aG91dCBhbnkgYWRkaXRpb25hbCB0ZXJtcyBvciBjb25kaXRpb25zLgotKyAgIE5vdHdp dGhzdGFuZGluZyB0aGUgYWJvdmUsIG5vdGhpbmcgaGVyZWluIHNoYWxsIHN1cGVyc2VkZSBvciBt b2RpZnkKLSsgICB0aGUgdGVybXMgb2YgYW55IHNlcGFyYXRlIGxpY2Vuc2UgYWdyZWVtZW50IHlv dSBtYXkgaGF2ZSBleGVjdXRlZAotKyAgIHdpdGggTGljZW5zb3IgcmVnYXJkaW5nIHN1Y2ggQ29u dHJpYnV0aW9ucy4KLSsKLSs2LiBUcmFkZW1hcmtzLiBUaGlzIExpY2Vuc2UgZG9lcyBub3QgZ3Jh bnQgcGVybWlzc2lvbiB0byB1c2UgdGhlIHRyYWRlCi0rICAgbmFtZXMsIHRyYWRlbWFya3MsIHNl cnZpY2UgbWFya3MsIG9yIHByb2R1Y3QgbmFtZXMgb2YgdGhlIExpY2Vuc29yLAotKyAgIGV4Y2Vw dCBhcyByZXF1aXJlZCBmb3IgcmVhc29uYWJsZSBhbmQgY3VzdG9tYXJ5IHVzZSBpbiBkZXNjcmli aW5nIHRoZQotKyAgIG9yaWdpbiBvZiB0aGUgV29yayBhbmQgcmVwcm9kdWNpbmcgdGhlIGNvbnRl bnQgb2YgdGhlIE5PVElDRSBmaWxlLgotKwotKzcuIERpc2NsYWltZXIgb2YgV2FycmFudHkuIFVu bGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvcgotKyAgIGFncmVlZCB0byBpbiB3cml0 aW5nLCBMaWNlbnNvciBwcm92aWRlcyB0aGUgV29yayAoYW5kIGVhY2gKLSsgICBDb250cmlidXRv ciBwcm92aWRlcyBpdHMgQ29udHJpYnV0aW9ucykgb24gYW4gIkFTIElTIiBCQVNJUywKLSsgICBX SVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJl c3Mgb3IKLSsgICBpbXBsaWVkLCBpbmNsdWRpbmcsIHdpdGhvdXQgbGltaXRhdGlvbiwgYW55IHdh cnJhbnRpZXMgb3IgY29uZGl0aW9ucwotKyAgIG9mIFRJVExFLCBOT04tSU5GUklOR0VNRU5ULCBN RVJDSEFOVEFCSUxJVFksIG9yIEZJVE5FU1MgRk9SIEEKLSsgICBQQVJUSUNVTEFSIFBVUlBPU0Uu IFlvdSBhcmUgc29sZWx5IHJlc3BvbnNpYmxlIGZvciBkZXRlcm1pbmluZyB0aGUKLSsgICBhcHBy b3ByaWF0ZW5lc3Mgb2YgdXNpbmcgb3IgcmVkaXN0cmlidXRpbmcgdGhlIFdvcmsgYW5kIGFzc3Vt ZSBhbnkKLSsgICByaXNrcyBhc3NvY2lhdGVkIHdpdGggWW91ciBleGVyY2lzZSBvZiBwZXJtaXNz aW9ucyB1bmRlciB0aGlzIExpY2Vuc2UuCi0rCi0rOC4gTGltaXRhdGlvbiBvZiBMaWFiaWxpdHku IEluIG5vIGV2ZW50IGFuZCB1bmRlciBubyBsZWdhbCB0aGVvcnksCi0rICAgd2hldGhlciBpbiB0 b3J0IChpbmNsdWRpbmcgbmVnbGlnZW5jZSksIGNvbnRyYWN0LCBvciBvdGhlcndpc2UsCi0rICAg dW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IChzdWNoIGFzIGRlbGliZXJhdGUgYW5k IGdyb3NzbHkKLSsgICBuZWdsaWdlbnQgYWN0cykgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNo YWxsIGFueSBDb250cmlidXRvciBiZQotKyAgIGxpYWJsZSB0byBZb3UgZm9yIGRhbWFnZXMsIGlu Y2x1ZGluZyBhbnkgZGlyZWN0LCBpbmRpcmVjdCwgc3BlY2lhbCwKLSsgICBpbmNpZGVudGFsLCBv ciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb2YgYW55IGNoYXJhY3RlciBhcmlzaW5nIGFzIGEKLSsg ICByZXN1bHQgb2YgdGhpcyBMaWNlbnNlIG9yIG91dCBvZiB0aGUgdXNlIG9yIGluYWJpbGl0eSB0 byB1c2UgdGhlCi0rICAgV29yayAoaW5jbHVkaW5nIGJ1dCBub3QgbGltaXRlZCB0byBkYW1hZ2Vz IGZvciBsb3NzIG9mIGdvb2R3aWxsLAotKyAgIHdvcmsgc3RvcHBhZ2UsIGNvbXB1dGVyIGZhaWx1 cmUgb3IgbWFsZnVuY3Rpb24sIG9yIGFueSBhbmQgYWxsCi0rICAgb3RoZXIgY29tbWVyY2lhbCBk YW1hZ2VzIG9yIGxvc3NlcyksIGV2ZW4gaWYgc3VjaCBDb250cmlidXRvcgotKyAgIGhhcyBiZWVu IGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHN1Y2ggZGFtYWdlcy4KLSsKLSs5LiBBY2Nl cHRpbmcgV2FycmFudHkgb3IgQWRkaXRpb25hbCBMaWFiaWxpdHkuIFdoaWxlIHJlZGlzdHJpYnV0 aW5nCi0rICAgdGhlIFdvcmsgb3IgRGVyaXZhdGl2ZSBXb3JrcyB0aGVyZW9mLCBZb3UgbWF5IGNo b29zZSB0byBvZmZlciwKLSsgICBhbmQgY2hhcmdlIGEgZmVlIGZvciwgYWNjZXB0YW5jZSBvZiBz dXBwb3J0LCB3YXJyYW50eSwgaW5kZW1uaXR5LAotKyAgIG9yIG90aGVyIGxpYWJpbGl0eSBvYmxp Z2F0aW9ucyBhbmQvb3IgcmlnaHRzIGNvbnNpc3RlbnQgd2l0aCB0aGlzCi0rICAgTGljZW5zZS4g SG93ZXZlciwgaW4gYWNjZXB0aW5nIHN1Y2ggb2JsaWdhdGlvbnMsIFlvdSBtYXkgYWN0IG9ubHkK LSsgICBvbiBZb3VyIG93biBiZWhhbGYgYW5kIG9uIFlvdXIgc29sZSByZXNwb25zaWJpbGl0eSwg bm90IG9uIGJlaGFsZgotKyAgIG9mIGFueSBvdGhlciBDb250cmlidXRvciwgYW5kIG9ubHkgaWYg WW91IGFncmVlIHRvIGluZGVtbmlmeSwKLSsgICBkZWZlbmQsIGFuZCBob2xkIGVhY2ggQ29udHJp YnV0b3IgaGFybWxlc3MgZm9yIGFueSBsaWFiaWxpdHkKLSsgICBpbmN1cnJlZCBieSwgb3IgY2xh aW1zIGFzc2VydGVkIGFnYWluc3QsIHN1Y2ggQ29udHJpYnV0b3IgYnkgcmVhc29uCi0rICAgb2Yg eW91ciBhY2NlcHRpbmcgYW55IHN1Y2ggd2FycmFudHkgb3IgYWRkaXRpb25hbCBsaWFiaWxpdHku Ci0rCi0rRU5EIE9GIFRFUk1TIEFORCBDT05ESVRJT05TCi0rCi0rQVBQRU5ESVg6IEhvdyB0byBh cHBseSB0aGUgQXBhY2hlIExpY2Vuc2UgdG8geW91ciB3b3JrLgotKwotKyAgIFRvIGFwcGx5IHRo ZSBBcGFjaGUgTGljZW5zZSB0byB5b3VyIHdvcmssIGF0dGFjaCB0aGUgZm9sbG93aW5nCi0rICAg Ym9pbGVycGxhdGUgbm90aWNlLCB3aXRoIHRoZSBmaWVsZHMgZW5jbG9zZWQgYnkgYnJhY2tldHMg IltdIgotKyAgIHJlcGxhY2VkIHdpdGggeW91ciBvd24gaWRlbnRpZnlpbmcgaW5mb3JtYXRpb24u IChEb24ndCBpbmNsdWRlCi0rICAgdGhlIGJyYWNrZXRzISkgIFRoZSB0ZXh0IHNob3VsZCBiZSBl bmNsb3NlZCBpbiB0aGUgYXBwcm9wcmlhdGUKLSsgICBjb21tZW50IHN5bnRheCBmb3IgdGhlIGZp bGUgZm9ybWF0LiBXZSBhbHNvIHJlY29tbWVuZCB0aGF0IGEKLSsgICBmaWxlIG9yIGNsYXNzIG5h bWUgYW5kIGRlc2NyaXB0aW9uIG9mIHB1cnBvc2UgYmUgaW5jbHVkZWQgb24gdGhlCi0rICAgc2Ft ZSAicHJpbnRlZCBwYWdlIiBhcyB0aGUgY29weXJpZ2h0IG5vdGljZSBmb3IgZWFzaWVyCi0rICAg aWRlbnRpZmljYXRpb24gd2l0aGluIHRoaXJkLXBhcnR5IGFyY2hpdmVzLgotKwotK0NvcHlyaWdo dCBbeXl5eV0gW25hbWUgb2YgY29weXJpZ2h0IG93bmVyXQotKwotK0xpY2Vuc2VkIHVuZGVyIHRo ZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotK3lvdSBtYXkg bm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4K LStZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSsKLSsJaHR0cDovL3d3 dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0rCi0rVW5sZXNzIHJlcXVpcmVkIGJ5 IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotK2Rpc3Ry aWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFT SVMsCi0rV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhl ciBleHByZXNzIG9yIGltcGxpZWQuCi0rU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMg bGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotK2xpbWl0YXRpb25zIHVuZGVyIHRo ZSBMaWNlbnNlLgotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvdmVyc2lvbl9jaGVjay9M SUNFTlNFLU1JVCBiL3RoaXJkX3BhcnR5L3J1c3QvdmVyc2lvbl9jaGVjay9MSUNFTlNFLU1JVAot LS0tIGEvdGhpcmRfcGFydHkvcnVzdC92ZXJzaW9uX2NoZWNrL0xJQ0VOU0UtTUlUCTE5NzAtMDEt MDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3ZlcnNp b25fY2hlY2svTElDRU5TRS1NSVQJMjAyNS0wOS0xNyAxNzo0MTo0Ny41MDU3OTU1OTggKzAzMDAK LUBAIC0wLDAgKzEsMTkgQEAKLStUaGUgTUlUIExpY2Vuc2UgKE1JVCkKLStDb3B5cmlnaHQgKGMp IDIwMTctMjAxOCBTZXJnaW8gQmVuaXRlegotKwotK1Blcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50 ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkgb2YKLSt0 aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29m dHdhcmUiKSwgdG8gZGVhbCBpbgotK3RoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBp bmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8KLSt1c2UsIGNvcHksIG1v ZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxs IGNvcGllcyBvZgotK3RoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20g dGhlIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywKLStzdWJqZWN0IHRvIHRoZSBmb2xs b3dpbmcgY29uZGl0aW9uczoKLSsKLStUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhp cyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwKLStjb3BpZXMgb3Ig c3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgotKwotK1RIRSBTT0ZUV0FSRSBJ UyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNT IE9SCi0rSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElF UyBPRiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MKLStGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Ug QU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IKLStD T1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhF UiBMSUFCSUxJVFksIFdIRVRIRVIKLStJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1Ig T1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTgotK0NPTk5FQ1RJT04gV0lUSCBU SEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUu Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC92ZXJzaW9uX2NoZWNrL1JFQURNRS5tZCBi L3RoaXJkX3BhcnR5L3J1c3QvdmVyc2lvbl9jaGVjay9SRUFETUUubWQKLS0tLSBhL3RoaXJkX3Bh cnR5L3J1c3QvdmVyc2lvbl9jaGVjay9SRUFETUUubWQJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAw MDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvdmVyc2lvbl9jaGVjay9SRUFETUUu bWQJMjAyNS0wOS0xNyAxNzo0MTo0Ny41MDc3OTU1MjIgKzAzMDAKLUBAIC0wLDAgKzEsODAgQEAK LSsjIHZlcnNpb25cX2NoZWNrCi0rCi0rWyFbQnVpbGQgU3RhdHVzXShodHRwczovL2dpdGh1Yi5j b20vU2VyZ2lvQmVuaXRlei92ZXJzaW9uX2NoZWNrL3dvcmtmbG93cy9DSS9iYWRnZS5zdmcpXSho dHRwczovL2dpdGh1Yi5jb20vU2VyZ2lvQmVuaXRlei92ZXJzaW9uX2NoZWNrL2FjdGlvbnMpCi0r WyFbQ3VycmVudCBDcmF0ZXMuaW8gVmVyc2lvbl0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9jcmF0 ZXMvdi92ZXJzaW9uX2NoZWNrLnN2ZyldKGh0dHBzOi8vY3JhdGVzLmlvL2NyYXRlcy92ZXJzaW9u X2NoZWNrKQotK1shW3J1c3Rkb2NzIG9uIGRvY3MucnNdKGh0dHBzOi8vZG9jcy5ycy92ZXJzaW9u X2NoZWNrL2JhZGdlLnN2ZyldKGh0dHBzOi8vZG9jcy5ycy92ZXJzaW9uX2NoZWNrKQotKwotK1Ro aXMgdGlueSBjcmF0ZSBjaGVja3MgdGhhdCB0aGUgcnVubmluZyBvciBpbnN0YWxsZWQgYHJ1c3Rj YCBtZWV0cyBzb21lIHZlcnNpb24KLStyZXF1aXJlbWVudHMuIFRoZSB2ZXJzaW9uIGlzIHF1ZXJp ZWQgYnkgY2FsbGluZyB0aGUgUnVzdCBjb21waWxlciB3aXRoCi0rYC0tdmVyc2lvbmAuIFRoZSBw YXRoIHRvIHRoZSBjb21waWxlciBpcyBkZXRlcm1pbmVkIGZpcnN0IHZpYSB0aGUgYFJVU1RDYAot K2Vudmlyb25tZW50IHZhcmlhYmxlLiBJZiBpdCBpcyBub3Qgc2V0LCB0aGVuIGBydXN0Y2AgaXMg dXNlZC4gSWYgdGhhdCBmYWlscywgbm8KLStkZXRlcm1pbmF0aW9uIGlzIG1hZGUsIGFuZCBjYWxs cyByZXR1cm4gYE5vbmVgLgotKwotKyMjIFVzYWdlCi0rCi0rQWRkIHRvIHlvdXIgYENhcmdvLnRv bWxgIGZpbGUsIHR5cGljYWxseSBhcyBhIGJ1aWxkIGRlcGVuZGVuY3k6Ci0rCi0rYGBgdG9tbAot K1tidWlsZC1kZXBlbmRlbmNpZXNdCi0rdmVyc2lvbl9jaGVjayA9ICIwLjkiCi0rYGBgCi0rCi0r YHZlcnNpb25fY2hlY2tgIGlzIGNvbXBhdGlibGUgYW5kIGNvbXBpbGVzIHdpdGggUnVzdCAxLjAu MCBhbmQgYmV5b25kLgotKwotKyMjIEV4YW1wbGVzCi0rCi0rU2V0IGEgYGNmZ2AgZmxhZyBpbiBg YnVpbGQucnNgIGlmIHRoZSBydW5uaW5nIGNvbXBpbGVyIHdhcyBkZXRlcm1pbmVkIHRvIGJlCi0r YXQgbGVhc3QgdmVyc2lvbiBgMS4xMy4wYDoKLSsKLStgYGBydXN0Ci0rZXh0ZXJuIGNyYXRlIHZl cnNpb25fY2hlY2sgYXMgcnVzdGM7Ci0rCi0raWYgcnVzdGM6OmlzX21pbl92ZXJzaW9uKCIxLjEz LjAiKS51bndyYXBfb3IoZmFsc2UpIHsKLSsgICAgcHJpbnRsbiEoImNhcmdvOnJ1c3RjLWNmZz1x dWVzdGlvbl9tYXJrX29wZXJhdG9yIik7Ci0rfQotK2BgYAotKwotK0NoZWNrIHRoYXQgdGhlIHJ1 bm5pbmcgY29tcGlsZXIgd2FzIHJlbGVhc2VkIG9uIG9yIGFmdGVyIGAyMDE4LTEyLTE4YDoKLSsK LStgYGBydXN0Ci0rZXh0ZXJuIGNyYXRlIHZlcnNpb25fY2hlY2sgYXMgcnVzdGM7Ci0rCi0rbWF0 Y2ggcnVzdGM6OmlzX21pbl9kYXRlKCIyMDE4LTEyLTE4IikgewotKyAgICBTb21lKHRydWUpID0+ ICJZZXAhIEl0J3MgcmVjZW50ISIsCi0rICAgIFNvbWUoZmFsc2UpID0+ICJObywgaXQncyBvbGRl ci4iLAotKyAgICBOb25lID0+ICJDb3VsZG4ndCBkZXRlcm1pbmUgdGhlIHJ1c3RjIHZlcnNpb24u IgotK307Ci0rYGBgCi0rCi0rQ2hlY2sgdGhhdCB0aGUgcnVubmluZyBjb21waWxlciBzdXBwb3J0 cyBmZWF0dXJlIGZsYWdzOgotKwotK2BgYHJ1c3QKLStleHRlcm4gY3JhdGUgdmVyc2lvbl9jaGVj ayBhcyBydXN0YzsKLSsKLSttYXRjaCBydXN0Yzo6aXNfZmVhdHVyZV9mbGFnZ2FibGUoKSB7Ci0r ICAgIFNvbWUodHJ1ZSkgPT4gIlllcyEgSXQncyBhIGRldiBvciBuaWdodGx5IHJlbGVhc2UhIiwK LSsgICAgU29tZShmYWxzZSkgPT4gIk5vLCBpdCdzIHN0YWJsZSBvciBiZXRhLiIsCi0rICAgIE5v bmUgPT4gIkNvdWxkbid0IGRldGVybWluZSB0aGUgcnVzdGMgdmVyc2lvbi4iCi0rfTsKLStgYGAK LSsKLStTZWUgdGhlIFtydXN0ZG9jc10oaHR0cHM6Ly9kb2NzLnJzL3ZlcnNpb25fY2hlY2spIGZv ciBtb3JlIGV4YW1wbGVzIGFuZCBjb21wbGV0ZQotK2RvY3VtZW50YXRpb24uCi0rCi0rIyMgQWx0 ZXJuYXRpdmVzCi0rCi0rVGhpcyBjcmF0ZSBpcyBkZWFkIHNpbXBsZSB3aXRoIG5vIGRlcGVuZGVu Y2llcy4gSWYgeW91IG5lZWQgc29tZXRoaW5nIG1vcmUgYW5kCi0rZG9uJ3QgY2FyZSBhYm91dCBw YW5pY2tpbmcgaWYgdGhlIHZlcnNpb24gY2Fubm90IGJlIG9idGFpbmVkLCBvciBpZiB5b3UgZG9u J3QKLSttaW5kIGFkZGluZyBkZXBlbmRlbmNpZXMsIHNlZSBbcnVzdGNfdmVyc2lvbl0uIElmIHlv dSdkIGluc3RlYWQgcHJlZmVyIGEgZmVhdHVyZQotK2RldGVjdGlvbiBsaWJyYXJ5IHRoYXQgd29y a3MgYnkgZHluYW1pY2FsbHkgaW52b2tpbmcgYHJ1c3RjYCB3aXRoIGEKLStyZXByZXNlbnRhdGl2 ZSBjb2RlIHNhbXBsZSwgc2VlIFthdXRvY2ZnXS4KLSsKLStbcnVzdGNfdmVyc2lvbl06IGh0dHBz Oi8vY3JhdGVzLmlvL2NyYXRlcy9ydXN0Y192ZXJzaW9uCi0rW2F1dG9jZmddOiBodHRwczovL2Ny YXRlcy5pby9jcmF0ZXMvYXV0b2NmZwotKwotKyMjIExpY2Vuc2UKLSsKLStgdmVyc2lvbl9jaGVj a2AgaXMgbGljZW5zZWQgdW5kZXIgZWl0aGVyIG9mIHRoZSBmb2xsb3dpbmcsIGF0IHlvdXIgb3B0 aW9uOgotKwotKyAqIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCwgKFtMSUNFTlNFLUFQQUNI RV0oTElDRU5TRS1BUEFDSEUpIG9yIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNF TlNFLTIuMCkKLSsgKiBNSVQgTGljZW5zZSAoW0xJQ0VOU0UtTUlUXShMSUNFTlNFLU1JVCkgb3Ig aHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVCkKLWRpZmYgLU5yYnUgYS90aGlyZF9w YXJ0eS9ydXN0L3ZlcnNpb25fY2hlY2svc3JjL2NoYW5uZWwucnMgYi90aGlyZF9wYXJ0eS9ydXN0 L3ZlcnNpb25fY2hlY2svc3JjL2NoYW5uZWwucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvdmVy c2lvbl9jaGVjay9zcmMvY2hhbm5lbC5ycwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCAr MDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC92ZXJzaW9uX2NoZWNrL3NyYy9jaGFubmVsLnJz CTIwMjUtMDktMTcgMTc6NDE6NDcuNTA3Nzk1NTIyICswMzAwCi1AQCAtMCwwICsxLDE5MyBAQAot K3VzZSBzdGQ6OmZtdDsKLSsKLSsjW2Rlcml2ZShEZWJ1ZywgUGFydGlhbEVxLCBFcSwgQ29weSwg Q2xvbmUpXQotK2VudW0gS2luZCB7Ci0rICAgIERldiwKLSsgICAgTmlnaHRseSwKLSsgICAgQmV0 YSwKLSsgICAgU3RhYmxlLAotK30KLSsKLSsvLy8gUmVsZWFzZSBjaGFubmVsOiAiZGV2IiwgIm5p Z2h0bHkiLCAiYmV0YSIsIG9yICJzdGFibGUiLgotKyNbZGVyaXZlKERlYnVnLCBQYXJ0aWFsRXEs IEVxLCBDb3B5LCBDbG9uZSldCi0rcHViIHN0cnVjdCBDaGFubmVsKEtpbmQpOwotKwotK2ltcGwg Q2hhbm5lbCB7Ci0rICAgIC8vLyBSZWFkcyB0aGUgcmVsZWFzZSBjaGFubmVsIG9mIHRoZSBydW5u aW5nIGNvbXBpbGVyLiBJZiBpdCBjYW5ub3QgYmUKLSsgICAgLy8vIGRldGVybWluZWQgKHNlZSB0 aGUgW3RvcC1sZXZlbCBkb2N1bWVudGF0aW9uXShjcmF0ZSkpLCByZXR1cm5zIGBOb25lYC4KLSsg ICAgLy8vCi0rICAgIC8vLyAjIEV4YW1wbGUKLSsgICAgLy8vCi0rICAgIC8vLyBgYGBydXN0Ci0r ICAgIC8vLyB1c2UgdmVyc2lvbl9jaGVjazo6Q2hhbm5lbDsKLSsgICAgLy8vCi0rICAgIC8vLyBt YXRjaCBDaGFubmVsOjpyZWFkKCkgewotKyAgICAvLy8gICAgIFNvbWUoYykgPT4gZm9ybWF0ISgi VGhlIGNoYW5uZWwgaXM6IHt9IiwgYyksCi0rICAgIC8vLyAgICAgTm9uZSA9PiBmb3JtYXQhKCJG YWlsZWQgdG8gcmVhZCB0aGUgcmVsZWFzZSBjaGFubmVsLiIpCi0rICAgIC8vLyB9OwotKyAgICAv Ly8gYGBgCi0rICAgIHB1YiBmbiByZWFkKCkgLT4gT3B0aW9uPENoYW5uZWw+IHsKLSsgICAgICAg IDo6Z2V0X3ZlcnNpb25fYW5kX2RhdGUoKQotKyAgICAgICAgICAgIC5hbmRfdGhlbih8KHZlcnNp b24sIF8pfCB2ZXJzaW9uKQotKyAgICAgICAgICAgIC5hbmRfdGhlbih8dmVyc2lvbnwgQ2hhbm5l bDo6cGFyc2UoJnZlcnNpb24pKQotKyAgICB9Ci0rCi0rICAgIC8vLyBQYXJzZSBhIFJ1c3QgcmVs ZWFzZSBjaGFubmVsIGZyb20gYSBSdXN0IHJlbGVhc2UgdmVyc2lvbiBzdHJpbmcgKG9mIHRoZQot KyAgICAvLy8gZm9ybSBgbWFqb3JbLm1pbm9yWy5wYXRjaFstY2hhbm5lbF1dXWApLiBSZXR1cm5z IGBOb25lYCBpZiBgdmVyc2lvbmAgaXMKLSsgICAgLy8vIG5vdCBhIHZhbGlkIFJ1c3QgdmVyc2lv biBzdHJpbmcuCi0rICAgIC8vLwotKyAgICAvLy8gIyBFeGFtcGxlCi0rICAgIC8vLwotKyAgICAv Ly8gYGBgcnVzdAotKyAgICAvLy8gdXNlIHZlcnNpb25fY2hlY2s6OkNoYW5uZWw7Ci0rICAgIC8v LwotKyAgICAvLy8gbGV0IGRldiA9IENoYW5uZWw6OnBhcnNlKCIxLjMuMC1kZXYiKS51bndyYXAo KTsKLSsgICAgLy8vIGFzc2VydCEoZGV2LmlzX2RldigpKTsKLSsgICAgLy8vCi0rICAgIC8vLyBs ZXQgbmlnaHRseSA9IENoYW5uZWw6OnBhcnNlKCIxLjQyLjItbmlnaHRseSIpLnVud3JhcCgpOwot KyAgICAvLy8gYXNzZXJ0IShuaWdodGx5LmlzX25pZ2h0bHkoKSk7Ci0rICAgIC8vLwotKyAgICAv Ly8gbGV0IGJldGEgPSBDaGFubmVsOjpwYXJzZSgiMS4zMi4wLWJldGEiKS51bndyYXAoKTsKLSsg ICAgLy8vIGFzc2VydCEoYmV0YS5pc19iZXRhKCkpOwotKyAgICAvLy8KLSsgICAgLy8vIGxldCBz dGFibGUgPSBDaGFubmVsOjpwYXJzZSgiMS40LjAiKS51bndyYXAoKTsKLSsgICAgLy8vIGFzc2Vy dCEoc3RhYmxlLmlzX3N0YWJsZSgpKTsKLSsgICAgLy8vIGBgYAotKyAgICBwdWIgZm4gcGFyc2Uo dmVyc2lvbjogJnN0cikgLT4gT3B0aW9uPENoYW5uZWw+IHsKLSsgICAgICAgIGxldCB2ZXJzaW9u ID0gdmVyc2lvbi50cmltKCk7Ci0rICAgICAgICBpZiB2ZXJzaW9uLmNvbnRhaW5zKCItZGV2Iikg fHwgdmVyc2lvbiA9PSAiZGV2IiB7Ci0rICAgICAgICAgICAgU29tZShDaGFubmVsKEtpbmQ6OkRl dikpCi0rICAgICAgICB9IGVsc2UgaWYgdmVyc2lvbi5jb250YWlucygiLW5pZ2h0bHkiKSB8fCB2 ZXJzaW9uID09ICJuaWdodGx5IiB7Ci0rICAgICAgICAgICAgU29tZShDaGFubmVsKEtpbmQ6Ok5p Z2h0bHkpKQotKyAgICAgICAgfSBlbHNlIGlmIHZlcnNpb24uY29udGFpbnMoIi1iZXRhIikgfHwg dmVyc2lvbiA9PSAiYmV0YSIgewotKyAgICAgICAgICAgIFNvbWUoQ2hhbm5lbChLaW5kOjpCZXRh KSkKLSsgICAgICAgIH0gZWxzZSBpZiAhdmVyc2lvbi5jb250YWlucygiLSIpIHsKLSsgICAgICAg ICAgICBTb21lKENoYW5uZWwoS2luZDo6U3RhYmxlKSkKLSsgICAgICAgIH0gZWxzZSB7Ci0rICAg ICAgICAgICAgTm9uZQotKyAgICAgICAgfQotKyAgICB9Ci0rCi0rICAgIC8vLyBSZXR1cm5zIHRo ZSBuYW1lIG9mIHRoZSByZWxlYXNlIGNoYW5uZWwuCi0rICAgIGZuIGFzX3N0cigmc2VsZikgLT4g JidzdGF0aWMgc3RyIHsKLSsgICAgICAgIG1hdGNoIHNlbGYuMCB7Ci0rICAgICAgICAgICAgS2lu ZDo6RGV2ID0+ICJkZXYiLAotKyAgICAgICAgICAgIEtpbmQ6OkJldGEgPT4gImJldGEiLAotKyAg ICAgICAgICAgIEtpbmQ6Ok5pZ2h0bHkgPT4gIm5pZ2h0bHkiLAotKyAgICAgICAgICAgIEtpbmQ6 OlN0YWJsZSA9PiAic3RhYmxlIiwKLSsgICAgICAgIH0KLSsgICAgfQotKwotKyAgICAvLy8gUmV0 dXJucyBgdHJ1ZWAgaWYgdGhpcyBjaGFubmVsIHN1cHBvcnRzIGZlYXR1cmUgZmxhZ3MuIEluIG90 aGVyIHdvcmRzLAotKyAgICAvLy8gcmV0dXJucyBgdHJ1ZWAgaWYgdGhlIGNoYW5uZWwgaXMgZWl0 aGVyIGBkZXZgIG9yIGBuaWdodGx5YC4KLSsgICAgLy8vCi0rICAgIC8vLyAjIEV4YW1wbGUKLSsg ICAgLy8vCi0rICAgIC8vLyBgYGBydXN0Ci0rICAgIC8vLyB1c2UgdmVyc2lvbl9jaGVjazo6Q2hh bm5lbDsKLSsgICAgLy8vCi0rICAgIC8vLyBsZXQgZGV2ID0gQ2hhbm5lbDo6cGFyc2UoIjEuMy4w LWRldiIpLnVud3JhcCgpOwotKyAgICAvLy8gYXNzZXJ0IShkZXYuc3VwcG9ydHNfZmVhdHVyZXMo KSk7Ci0rICAgIC8vLwotKyAgICAvLy8gbGV0IG5pZ2h0bHkgPSBDaGFubmVsOjpwYXJzZSgiMS40 Mi4yLW5pZ2h0bHkiKS51bndyYXAoKTsKLSsgICAgLy8vIGFzc2VydCEobmlnaHRseS5zdXBwb3J0 c19mZWF0dXJlcygpKTsKLSsgICAgLy8vCi0rICAgIC8vLyBsZXQgYmV0YSA9IENoYW5uZWw6OnBh cnNlKCIxLjMyLjAtYmV0YSIpLnVud3JhcCgpOwotKyAgICAvLy8gYXNzZXJ0ISghYmV0YS5zdXBw b3J0c19mZWF0dXJlcygpKTsKLSsgICAgLy8vCi0rICAgIC8vLyBsZXQgc3RhYmxlID0gQ2hhbm5l bDo6cGFyc2UoIjEuNC4wIikudW53cmFwKCk7Ci0rICAgIC8vLyBhc3NlcnQhKCFzdGFibGUuc3Vw cG9ydHNfZmVhdHVyZXMoKSk7Ci0rICAgIC8vLyBgYGAKLSsgICAgcHViIGZuIHN1cHBvcnRzX2Zl YXR1cmVzKCZzZWxmKSAtPiBib29sIHsKLSsgICAgICAgIG1hdGNoIHNlbGYuMCB7Ci0rICAgICAg ICAgICAgS2luZDo6RGV2IHwgS2luZDo6TmlnaHRseSA9PiB0cnVlLAotKyAgICAgICAgICAgIEtp bmQ6OkJldGEgfCBLaW5kOjpTdGFibGUgPT4gZmFsc2UKLSsgICAgICAgIH0KLSsgICAgfQotKwot KyAgICAvLy8gUmV0dXJucyBgdHJ1ZWAgaWYgdGhpcyBjaGFubmVsIGlzIGBkZXZgIGFuZCBgZmFs c2VgIG90aGVyd2lzZS4KLSsgICAgLy8vCi0rICAgIC8vLyAjIEV4YW1wbGUKLSsgICAgLy8vCi0r ICAgIC8vLyBgYGBydXN0Ci0rICAgIC8vLyB1c2UgdmVyc2lvbl9jaGVjazo6Q2hhbm5lbDsKLSsg ICAgLy8vCi0rICAgIC8vLyBsZXQgZGV2ID0gQ2hhbm5lbDo6cGFyc2UoIjEuMy4wLWRldiIpLnVu d3JhcCgpOwotKyAgICAvLy8gYXNzZXJ0IShkZXYuaXNfZGV2KCkpOwotKyAgICAvLy8KLSsgICAg Ly8vIGxldCBzdGFibGUgPSBDaGFubmVsOjpwYXJzZSgiMS4wLjAiKS51bndyYXAoKTsKLSsgICAg Ly8vIGFzc2VydCEoIXN0YWJsZS5pc19kZXYoKSk7Ci0rICAgIC8vLyBgYGAKLSsgICAgcHViIGZu IGlzX2Rldigmc2VsZikgLT4gYm9vbCB7Ci0rICAgICAgICBtYXRjaCBzZWxmLjAgewotKyAgICAg ICAgICAgIEtpbmQ6OkRldiA9PiB0cnVlLAotKyAgICAgICAgICAgIF8gPT4gZmFsc2UKLSsgICAg ICAgIH0KLSsgICAgfQotKwotKyAgICAvLy8gUmV0dXJucyBgdHJ1ZWAgaWYgdGhpcyBjaGFubmVs IGlzIGBuaWdodGx5YCBhbmQgYGZhbHNlYCBvdGhlcndpc2UuCi0rICAgIC8vLwotKyAgICAvLy8g IyBFeGFtcGxlCi0rICAgIC8vLwotKyAgICAvLy8gYGBgcnVzdAotKyAgICAvLy8gdXNlIHZlcnNp b25fY2hlY2s6OkNoYW5uZWw7Ci0rICAgIC8vLwotKyAgICAvLy8gbGV0IG5pZ2h0bHkgPSBDaGFu bmVsOjpwYXJzZSgiMS4zLjAtbmlnaHRseSIpLnVud3JhcCgpOwotKyAgICAvLy8gYXNzZXJ0IShu aWdodGx5LmlzX25pZ2h0bHkoKSk7Ci0rICAgIC8vLwotKyAgICAvLy8gbGV0IHN0YWJsZSA9IENo YW5uZWw6OnBhcnNlKCIxLjAuMCIpLnVud3JhcCgpOwotKyAgICAvLy8gYXNzZXJ0ISghc3RhYmxl LmlzX25pZ2h0bHkoKSk7Ci0rICAgIC8vLyBgYGAKLSsgICAgcHViIGZuIGlzX25pZ2h0bHkoJnNl bGYpIC0+IGJvb2wgewotKyAgICAgICAgbWF0Y2ggc2VsZi4wIHsKLSsgICAgICAgICAgICBLaW5k OjpOaWdodGx5ID0+IHRydWUsCi0rICAgICAgICAgICAgXyA9PiBmYWxzZQotKyAgICAgICAgfQot KyAgICB9Ci0rCi0rICAgIC8vLyBSZXR1cm5zIGB0cnVlYCBpZiB0aGlzIGNoYW5uZWwgaXMgYGJl dGFgIGFuZCBgZmFsc2VgIG90aGVyd2lzZS4KLSsgICAgLy8vCi0rICAgIC8vLyAjIEV4YW1wbGUK LSsgICAgLy8vCi0rICAgIC8vLyBgYGBydXN0Ci0rICAgIC8vLyB1c2UgdmVyc2lvbl9jaGVjazo6 Q2hhbm5lbDsKLSsgICAgLy8vCi0rICAgIC8vLyBsZXQgYmV0YSA9IENoYW5uZWw6OnBhcnNlKCIx LjMuMC1iZXRhIikudW53cmFwKCk7Ci0rICAgIC8vLyBhc3NlcnQhKGJldGEuaXNfYmV0YSgpKTsK LSsgICAgLy8vCi0rICAgIC8vLyBsZXQgc3RhYmxlID0gQ2hhbm5lbDo6cGFyc2UoIjEuMC4wIiku dW53cmFwKCk7Ci0rICAgIC8vLyBhc3NlcnQhKCFzdGFibGUuaXNfYmV0YSgpKTsKLSsgICAgLy8v IGBgYAotKyAgICBwdWIgZm4gaXNfYmV0YSgmc2VsZikgLT4gYm9vbCB7Ci0rICAgICAgICBtYXRj aCBzZWxmLjAgewotKyAgICAgICAgICAgIEtpbmQ6OkJldGEgPT4gdHJ1ZSwKLSsgICAgICAgICAg ICBfID0+IGZhbHNlCi0rICAgICAgICB9Ci0rICAgIH0KLSsKLSsgICAgLy8vIFJldHVybnMgYHRy dWVgIGlmIHRoaXMgY2hhbm5lbCBpcyBgc3RhYmxlYCBhbmQgYGZhbHNlYCBvdGhlcndpc2UuCi0r ICAgIC8vLwotKyAgICAvLy8gIyBFeGFtcGxlCi0rICAgIC8vLwotKyAgICAvLy8gYGBgcnVzdAot KyAgICAvLy8gdXNlIHZlcnNpb25fY2hlY2s6OkNoYW5uZWw7Ci0rICAgIC8vLwotKyAgICAvLy8g bGV0IHN0YWJsZSA9IENoYW5uZWw6OnBhcnNlKCIxLjAuMCIpLnVud3JhcCgpOwotKyAgICAvLy8g YXNzZXJ0IShzdGFibGUuaXNfc3RhYmxlKCkpOwotKyAgICAvLy8KLSsgICAgLy8vIGxldCBiZXRh ID0gQ2hhbm5lbDo6cGFyc2UoIjEuMy4wLWJldGEiKS51bndyYXAoKTsKLSsgICAgLy8vIGFzc2Vy dCEoIWJldGEuaXNfc3RhYmxlKCkpOwotKyAgICAvLy8gYGBgCi0rICAgIHB1YiBmbiBpc19zdGFi bGUoJnNlbGYpIC0+IGJvb2wgewotKyAgICAgICAgbWF0Y2ggc2VsZi4wIHsKLSsgICAgICAgICAg ICBLaW5kOjpTdGFibGUgPT4gdHJ1ZSwKLSsgICAgICAgICAgICBfID0+IGZhbHNlCi0rICAgICAg ICB9Ci0rICAgIH0KLSt9Ci0rCi0raW1wbCBmbXQ6OkRpc3BsYXkgZm9yIENoYW5uZWwgewotKyAg ICBmbiBmbXQoJnNlbGYsIGY6ICZtdXQgZm10OjpGb3JtYXR0ZXIpIC0+IGZtdDo6UmVzdWx0IHsK LSsgICAgICAgIHdyaXRlIShmLCAie30iLCBzZWxmLmFzX3N0cigpKQotKyAgICB9Ci0rfQotZGlm ZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvdmVyc2lvbl9jaGVjay9zcmMvZGF0ZS5ycyBiL3Ro aXJkX3BhcnR5L3J1c3QvdmVyc2lvbl9jaGVjay9zcmMvZGF0ZS5ycwotLS0tIGEvdGhpcmRfcGFy dHkvcnVzdC92ZXJzaW9uX2NoZWNrL3NyYy9kYXRlLnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAw MDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3ZlcnNpb25fY2hlY2svc3JjL2Rh dGUucnMJMjAyNS0wOS0xNyAxNzo0MTo0Ny41MDc3OTU1MjIgKzAzMDAKLUBAIC0wLDAgKzEsMjAz IEBACi0rdXNlIHN0ZDo6Zm10OwotKwotKy8vLyBSZWxlYXNlIGRhdGUgaW5jbHVkaW5nIHllYXIs IG1vbnRoLCBhbmQgZGF5LgotKy8vIEludGVybmFsIHN0b3JhZ2UgaXM6IHlbMzEuLjldIHwgbVs4 Li41XSB8IGRbNS4uLjBdLgotKyNbZGVyaXZlKERlYnVnLCBQYXJ0aWFsRXEsIEVxLCBDb3B5LCBD bG9uZSwgUGFydGlhbE9yZCwgT3JkKV0KLStwdWIgc3RydWN0IERhdGUodTMyKTsKLSsKLStpbXBs IERhdGUgewotKyAgICAvLy8gUmVhZHMgdGhlIHJlbGVhc2UgZGF0ZSBvZiB0aGUgcnVubmluZyBj b21waWxlci4gSWYgaXQgY2Fubm90IGJlCi0rICAgIC8vLyBkZXRlcm1pbmVkIChzZWUgdGhlIFt0 b3AtbGV2ZWwgZG9jdW1lbnRhdGlvbl0oY3JhdGUpKSwgcmV0dXJucyBgTm9uZWAuCi0rICAgIC8v LwotKyAgICAvLy8gIyBFeGFtcGxlCi0rICAgIC8vLwotKyAgICAvLy8gYGBgcnVzdAotKyAgICAv Ly8gdXNlIHZlcnNpb25fY2hlY2s6OkRhdGU7Ci0rICAgIC8vLwotKyAgICAvLy8gbWF0Y2ggRGF0 ZTo6cmVhZCgpIHsKLSsgICAgLy8vICAgICBTb21lKGQpID0+IGZvcm1hdCEoIlRoZSByZWxlYXNl IGRhdGUgaXM6IHt9IiwgZCksCi0rICAgIC8vLyAgICAgTm9uZSA9PiBmb3JtYXQhKCJGYWlsZWQg dG8gcmVhZCB0aGUgcmVsZWFzZSBkYXRlLiIpCi0rICAgIC8vLyB9OwotKyAgICAvLy8gYGBgCi0r ICAgIHB1YiBmbiByZWFkKCkgLT4gT3B0aW9uPERhdGU+IHsKLSsgICAgICAgIDo6Z2V0X3ZlcnNp b25fYW5kX2RhdGUoKQotKyAgICAgICAgICAgIC5hbmRfdGhlbih8KF8sIGRhdGUpfCBkYXRlKQot KyAgICAgICAgICAgIC5hbmRfdGhlbih8ZGF0ZXwgRGF0ZTo6cGFyc2UoJmRhdGUpKQotKyAgICB9 Ci0rCi0rICAgIC8vLyBQYXJzZSBhIHJlbGVhc2UgZGF0ZSBvZiB0aGUgZm9ybSBgJVktJW0tJWRg LiBSZXR1cm5zIGBOb25lYCBpZiBgZGF0ZWAgaXMKLSsgICAgLy8vIG5vdCBpbiBgJVktJW0tJWRg IGZvcm1hdC4KLSsgICAgLy8vCi0rICAgIC8vLyAjIEV4YW1wbGUKLSsgICAgLy8vCi0rICAgIC8v LyBgYGBydXN0Ci0rICAgIC8vLyB1c2UgdmVyc2lvbl9jaGVjazo6RGF0ZTsKLSsgICAgLy8vCi0r ICAgIC8vLyBsZXQgZGF0ZSA9IERhdGU6OnBhcnNlKCIyMDE2LTA0LTIwIikudW53cmFwKCk7Ci0r ICAgIC8vLwotKyAgICAvLy8gYXNzZXJ0IShkYXRlLmF0X2xlYXN0KCIyMDE2LTAxLTEwIikpOwot KyAgICAvLy8gYXNzZXJ0IShkYXRlLmF0X21vc3QoIjIwMTYtMDQtMjAiKSk7Ci0rICAgIC8vLyBh c3NlcnQhKGRhdGUuZXhhY3RseSgiMjAxNi0wNC0yMCIpKTsKLSsgICAgLy8vCi0rICAgIC8vLyBh c3NlcnQhKERhdGU6OnBhcnNlKCIyMDIxLTEyLTMxIikudW53cmFwKCkuZXhhY3RseSgiMjAyMS0x Mi0zMSIpKTsKLSsgICAgLy8vCi0rICAgIC8vLyBhc3NlcnQhKERhdGU6OnBhcnNlKCJNYXJjaCAx MywgMjAxOCIpLmlzX25vbmUoKSk7Ci0rICAgIC8vLyBhc3NlcnQhKERhdGU6OnBhcnNlKCIxLTIt My00LTUiKS5pc19ub25lKCkpOwotKyAgICAvLy8gYXNzZXJ0IShEYXRlOjpwYXJzZSgiMjAyMC0z MDAtMjMxMjAiKS5pc19ub25lKCkpOwotKyAgICAvLy8gYXNzZXJ0IShEYXRlOjpwYXJzZSgiMjAy MC0xMi0xMiAxIikuaXNfbm9uZSgpKTsKLSsgICAgLy8vIGFzc2VydCEoRGF0ZTo6cGFyc2UoIjIw MjAtMTAiKS5pc19ub25lKCkpOwotKyAgICAvLy8gYXNzZXJ0IShEYXRlOjpwYXJzZSgiMjAyMCIp LmlzX25vbmUoKSk7Ci0rICAgIC8vLyBgYGAKLSsgICAgcHViIGZuIHBhcnNlKGRhdGU6ICZzdHIp IC0+IE9wdGlvbjxEYXRlPiB7Ci0rICAgICAgICBsZXQgbXV0IHltZCA9IFswdTE2OyAzXTsKLSsg ICAgICAgIGZvciAoaSwgc3BsaXQpIGluIGRhdGUuc3BsaXQoJy0nKS5tYXAofHN8IHMucGFyc2U6 Ojx1MTY+KCkpLmVudW1lcmF0ZSgpIHsKLSsgICAgICAgICAgICB5bWRbaV0gPSBtYXRjaCAoaSwg c3BsaXQpIHsKLSsgICAgICAgICAgICAgICAgKDMsIF8pIHwgKF8sIEVycihfKSkgPT4gcmV0dXJu IE5vbmUsCi0rICAgICAgICAgICAgICAgIChfLCBPayh2KSkgPT4gdiwKLSsgICAgICAgICAgICB9 OwotKyAgICAgICAgfQotKwotKyAgICAgICAgbGV0ICh5ZWFyLCBtb250aCwgZGF5KSA9ICh5bWRb MF0sIHltZFsxXSwgeW1kWzJdKTsKLSsgICAgICAgIGlmIHllYXIgPT0gMCB8fCBtb250aCA9PSAw IHx8IG1vbnRoID4gMTIgfHwgZGF5ID09IDAgfHwgZGF5ID4gMzEgewotKyAgICAgICAgICAgIHJl dHVybiBOb25lOwotKyAgICAgICAgfQotKwotKyAgICAgICAgU29tZShEYXRlOjpmcm9tX3ltZCh5 ZWFyLCBtb250aCBhcyB1OCwgZGF5IGFzIHU4KSkKLSsgICAgfQotKwotKyAgICAvLy8gQ3JlYXRl cyBhIGBEYXRlYCBmcm9tIGAoeWVhciwgbW9udGgsIGRheSlgIGRhdGUgY29tcG9uZW50cy4KLSsg ICAgLy8vCi0rICAgIC8vLyBEb2VzIG5vdCBjaGVjayB0aGUgdmFsaWRpdHkgb2YgYHllYXJgLCBg bW9udGhgLCBvciBgZGF5YCwgYnV0IGB5ZWFyYCBpcwotKyAgICAvLy8gdHJ1bmNhdGVkIHRvIDIz IGJpdHMgKCUgOCwzODgsNjA4KSwgYG1vbnRoYCB0byA0IGJpdHMgKCUgMTYpLCBhbmQgYGRheWAK LSsgICAgLy8vIHRvIDUgYml0cyAoJSAzMikuCi0rICAgIC8vLwotKyAgICAvLy8gIyBFeGFtcGxl Ci0rICAgIC8vLwotKyAgICAvLy8gYGBgcnVzdAotKyAgICAvLy8gdXNlIHZlcnNpb25fY2hlY2s6 OkRhdGU7Ci0rICAgIC8vLwotKyAgICAvLy8gYXNzZXJ0IShEYXRlOjpmcm9tX3ltZCgyMDIxLCA3 LCAzMCkuZXhhY3RseSgiMjAyMS0wNy0zMCIpKTsKLSsgICAgLy8vIGFzc2VydCEoRGF0ZTo6ZnJv bV95bWQoMjAxMCwgMywgMjMpLmV4YWN0bHkoIjIwMTAtMDMtMjMiKSk7Ci0rICAgIC8vLyBhc3Nl cnQhKERhdGU6OmZyb21feW1kKDIwOTAsIDEsIDMxKS5leGFjdGx5KCIyMDkwLTAxLTMxIikpOwot KyAgICAvLy8KLSsgICAgLy8vIC8vIFRydW5jYXRpb246IDMzICUgMzIgPT0gMHgyMSAmIDB4MUYg PT0gMS4KLSsgICAgLy8vIGFzc2VydCEoRGF0ZTo6ZnJvbV95bWQoMjA5MCwgMSwgMzMpLmV4YWN0 bHkoIjIwOTAtMDEtMDEiKSk7Ci0rICAgIC8vLyBgYGAKLSsgICAgcHViIGZuIGZyb21feW1kKHll YXI6IHUxNiwgbW9udGg6IHU4LCBkYXk6IHU4KSAtPiBEYXRlIHsKLSsgICAgICAgIGxldCB5ZWFy ID0gKHllYXIgYXMgdTMyKSA8PCA5OwotKyAgICAgICAgbGV0IG1vbnRoID0gKChtb250aCBhcyB1 MzIpICYgMHhGKSA8PCA1OwotKyAgICAgICAgbGV0IGRheSA9IChkYXkgYXMgdTMyKSAmIDB4MUY7 Ci0rICAgICAgICBEYXRlKHllYXIgfCBtb250aCB8IGRheSkKLSsgICAgfQotKwotKyAgICAvLy8g UmV0dXJuIHRoZSBvcmlnaW5hbCAoWVlZWSwgTU0sIEREKS4KLSsgICAgZm4gdG9feW1kKCZzZWxm KSAtPiAodTE2LCB1OCwgdTgpIHsKLSsgICAgICAgIGxldCB5ID0gc2VsZi4wID4+IDk7Ci0rICAg ICAgICBsZXQgbSA9IChzZWxmLjAgPj4gNSkgJiAweEY7Ci0rICAgICAgICBsZXQgZCA9IHNlbGYu MCAmIDB4MUY7Ci0rICAgICAgICAoeSBhcyB1MTYsIG0gYXMgdTgsIGQgYXMgdTgpCi0rICAgIH0K LSsKLSsgICAgLy8vIFJldHVybnMgYHRydWVgIGlmIGBzZWxmYCBvY2N1cnMgb24gb3IgYWZ0ZXIg YGRhdGVgLgotKyAgICAvLy8KLSsgICAgLy8vIElmIGBkYXRlYCBvY2N1cnMgYmVmb3JlIGBzZWxm YCwgb3IgaWYgYGRhdGVgIGlzIG5vdCBpbiBgJVktJW0tJWRgCi0rICAgIC8vLyBmb3JtYXQsIHJl dHVybnMgYGZhbHNlYC4KLSsgICAgLy8vCi0rICAgIC8vLyAjIEV4YW1wbGUKLSsgICAgLy8vCi0r ICAgIC8vLyBgYGBydXN0Ci0rICAgIC8vLyB1c2UgdmVyc2lvbl9jaGVjazo6RGF0ZTsKLSsgICAg Ly8vCi0rICAgIC8vLyBsZXQgZGF0ZSA9IERhdGU6OnBhcnNlKCIyMDIwLTAxLTAxIikudW53cmFw KCk7Ci0rICAgIC8vLwotKyAgICAvLy8gYXNzZXJ0IShkYXRlLmF0X2xlYXN0KCIyMDE5LTEyLTMx IikpOwotKyAgICAvLy8gYXNzZXJ0IShkYXRlLmF0X2xlYXN0KCIyMDIwLTAxLTAxIikpOwotKyAg ICAvLy8gYXNzZXJ0IShkYXRlLmF0X2xlYXN0KCIyMDE0LTA0LTMxIikpOwotKyAgICAvLy8KLSsg ICAgLy8vIGFzc2VydCEoIWRhdGUuYXRfbGVhc3QoIjIwMjAtMDEtMDIiKSk7Ci0rICAgIC8vLyBh c3NlcnQhKCFkYXRlLmF0X2xlYXN0KCIyMDI0LTA4LTE4IikpOwotKyAgICAvLy8gYGBgCi0rICAg IHB1YiBmbiBhdF9sZWFzdCgmc2VsZiwgZGF0ZTogJnN0cikgLT4gYm9vbCB7Ci0rICAgICAgICBE YXRlOjpwYXJzZShkYXRlKQotKyAgICAgICAgICAgIC5tYXAofGRhdGV8IHNlbGYgPj0gJmRhdGUp Ci0rICAgICAgICAgICAgLnVud3JhcF9vcihmYWxzZSkKLSsgICAgfQotKwotKyAgICAvLy8gUmV0 dXJucyBgdHJ1ZWAgaWYgYHNlbGZgIG9jY3VycyBvbiBvciBiZWZvcmUgYGRhdGVgLgotKyAgICAv Ly8KLSsgICAgLy8vIElmIGBkYXRlYCBvY2N1cnMgYWZ0ZXIgYHNlbGZgLCBvciBpZiBgZGF0ZWAg aXMgbm90IGluIGAlWS0lbS0lZGAKLSsgICAgLy8vIGZvcm1hdCwgcmV0dXJucyBgZmFsc2VgLgot KyAgICAvLy8KLSsgICAgLy8vICMgRXhhbXBsZQotKyAgICAvLy8KLSsgICAgLy8vIGBgYHJ1c3QK LSsgICAgLy8vIHVzZSB2ZXJzaW9uX2NoZWNrOjpEYXRlOwotKyAgICAvLy8KLSsgICAgLy8vIGxl dCBkYXRlID0gRGF0ZTo6cGFyc2UoIjIwMjAtMDEtMDEiKS51bndyYXAoKTsKLSsgICAgLy8vCi0r ICAgIC8vLyBhc3NlcnQhKGRhdGUuYXRfbW9zdCgiMjAyMC0wMS0wMSIpKTsKLSsgICAgLy8vIGFz c2VydCEoZGF0ZS5hdF9tb3N0KCIyMDIwLTAxLTAyIikpOwotKyAgICAvLy8gYXNzZXJ0IShkYXRl LmF0X21vc3QoIjIwMjQtMDgtMTgiKSk7Ci0rICAgIC8vLwotKyAgICAvLy8gYXNzZXJ0ISghZGF0 ZS5hdF9tb3N0KCIyMDE5LTEyLTMxIikpOwotKyAgICAvLy8gYXNzZXJ0ISghZGF0ZS5hdF9tb3N0 KCIyMDE0LTA0LTMxIikpOwotKyAgICAvLy8gYGBgCi0rICAgIHB1YiBmbiBhdF9tb3N0KCZzZWxm LCBkYXRlOiAmc3RyKSAtPiBib29sIHsKLSsgICAgICAgIERhdGU6OnBhcnNlKGRhdGUpCi0rICAg ICAgICAgICAgLm1hcCh8ZGF0ZXwgc2VsZiA8PSAmZGF0ZSkKLSsgICAgICAgICAgICAudW53cmFw X29yKGZhbHNlKQotKyAgICB9Ci0rCi0rICAgIC8vLyBSZXR1cm5zIGB0cnVlYCBpZiBgc2VsZmAg b2NjdXJzIGV4YWN0bHkgb24gYGRhdGVgLgotKyAgICAvLy8KLSsgICAgLy8vIElmIGBkYXRlYCBp cyBub3QgZXhhY3RseSBgc2VsZmAsIG9yIGlmIGBkYXRlYCBpcyBub3QgaW4gYCVZLSVtLSVkYAot KyAgICAvLy8gZm9ybWF0LCByZXR1cm5zIGBmYWxzZWAuCi0rICAgIC8vLwotKyAgICAvLy8gIyBF eGFtcGxlCi0rICAgIC8vLwotKyAgICAvLy8gYGBgcnVzdAotKyAgICAvLy8gdXNlIHZlcnNpb25f Y2hlY2s6OkRhdGU7Ci0rICAgIC8vLwotKyAgICAvLy8gbGV0IGRhdGUgPSBEYXRlOjpwYXJzZSgi MjAyMC0wMS0wMSIpLnVud3JhcCgpOwotKyAgICAvLy8KLSsgICAgLy8vIGFzc2VydCEoZGF0ZS5l eGFjdGx5KCIyMDIwLTAxLTAxIikpOwotKyAgICAvLy8KLSsgICAgLy8vIGFzc2VydCEoIWRhdGUu ZXhhY3RseSgiMjAxOS0xMi0zMSIpKTsKLSsgICAgLy8vIGFzc2VydCEoIWRhdGUuZXhhY3RseSgi MjAxNC0wNC0zMSIpKTsKLSsgICAgLy8vIGFzc2VydCEoIWRhdGUuZXhhY3RseSgiMjAyMC0wMS0w MiIpKTsKLSsgICAgLy8vIGFzc2VydCEoIWRhdGUuZXhhY3RseSgiMjAyNC0wOC0xOCIpKTsKLSsg ICAgLy8vIGBgYAotKyAgICBwdWIgZm4gZXhhY3RseSgmc2VsZiwgZGF0ZTogJnN0cikgLT4gYm9v bCB7Ci0rICAgICAgICBEYXRlOjpwYXJzZShkYXRlKQotKyAgICAgICAgICAgIC5tYXAofGRhdGV8 IHNlbGYgPT0gJmRhdGUpCi0rICAgICAgICAgICAgLnVud3JhcF9vcihmYWxzZSkKLSsgICAgfQot K30KLSsKLStpbXBsIGZtdDo6RGlzcGxheSBmb3IgRGF0ZSB7Ci0rICAgIGZuIGZtdCgmc2VsZiwg ZjogJm11dCBmbXQ6OkZvcm1hdHRlcikgLT4gZm10OjpSZXN1bHQgewotKyAgICAgICAgbGV0ICh5 LCBtLCBkKSA9IHNlbGYudG9feW1kKCk7Ci0rICAgICAgICB3cml0ZSEoZiwgInt9LXs6MDJ9LXs6 MDJ9IiwgeSwgbSwgZCkKLSsgICAgfQotK30KLSsKLSsjW2NmZyh0ZXN0KV0KLSttb2QgdGVzdHMg ewotKyAgICB1c2Ugc3VwZXI6OkRhdGU7Ci0rCi0rICAgIG1hY3JvX3J1bGVzISByZWZsZXhpdmVf ZGlzcGxheSB7Ci0rICAgICAgICAoJHN0cmluZzpleHByKSA9PiAoCi0rICAgICAgICAgICAgYXNz ZXJ0X2VxIShEYXRlOjpwYXJzZSgkc3RyaW5nKS51bndyYXAoKS50b19zdHJpbmcoKSwgJHN0cmlu Zyk7Ci0rICAgICAgICApCi0rICAgIH0KLSsKLSsgICAgI1t0ZXN0XQotKyAgICBmbiBkaXNwbGF5 KCkgewotKyAgICAgICAgcmVmbGV4aXZlX2Rpc3BsYXkhKCIyMDE5LTA1LTA4Iik7Ci0rICAgICAg ICByZWZsZXhpdmVfZGlzcGxheSEoIjIwMDAtMDEtMDEiKTsKLSsgICAgICAgIHJlZmxleGl2ZV9k aXNwbGF5ISgiMjAwMC0xMi0zMSIpOwotKyAgICAgICAgcmVmbGV4aXZlX2Rpc3BsYXkhKCIyMDkw LTEyLTMxIik7Ci0rICAgICAgICByZWZsZXhpdmVfZGlzcGxheSEoIjE5OTktMDItMTkiKTsKLSsg ICAgICAgIHJlZmxleGl2ZV9kaXNwbGF5ISgiOTk5OS0xMi0zMSIpOwotKyAgICB9Ci0rfQotZGlm ZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvdmVyc2lvbl9jaGVjay9zcmMvbGliLnJzIGIvdGhp cmRfcGFydHkvcnVzdC92ZXJzaW9uX2NoZWNrL3NyYy9saWIucnMKLS0tLSBhL3RoaXJkX3BhcnR5 L3J1c3QvdmVyc2lvbl9jaGVjay9zcmMvbGliLnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAw MDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3ZlcnNpb25fY2hlY2svc3JjL2xpYi5y cwkyMDI1LTA5LTE3IDE3OjQxOjQ3LjUwNzc5NTUyMiArMDMwMAotQEAgLTAsMCArMSw0OTMgQEAK LSsvLyEgVGhpcyB0aW55IGNyYXRlIGNoZWNrcyB0aGF0IHRoZSBydW5uaW5nIG9yIGluc3RhbGxl ZCBgcnVzdGNgIG1lZXRzIHNvbWUKLSsvLyEgdmVyc2lvbiByZXF1aXJlbWVudHMuIFRoZSB2ZXJz aW9uIGlzIHF1ZXJpZWQgYnkgY2FsbGluZyB0aGUgUnVzdCBjb21waWxlcgotKy8vISB3aXRoIGAt LXZlcnNpb25gLiBUaGUgcGF0aCB0byB0aGUgY29tcGlsZXIgaXMgZGV0ZXJtaW5lZCBmaXJzdCB2 aWEgdGhlCi0rLy8hIGBSVVNUQ2AgZW52aXJvbm1lbnQgdmFyaWFibGUuIElmIGl0IGlzIG5vdCBz ZXQsIHRoZW4gYHJ1c3RjYCBpcyB1c2VkLiBJZgotKy8vISB0aGF0IGZhaWxzLCBubyBkZXRlcm1p bmF0aW9uIGlzIG1hZGUsIGFuZCBjYWxscyByZXR1cm4gYE5vbmVgLgotKy8vIQotKy8vISAjIEV4 YW1wbGVzCi0rLy8hCi0rLy8hICogU2V0IGEgYGNmZ2AgZmxhZyBpbiBgYnVpbGQucnNgIGlmIHRo ZSBydW5uaW5nIGNvbXBpbGVyIHdhcyBkZXRlcm1pbmVkIHRvCi0rLy8hICAgYmUgYXQgbGVhc3Qg dmVyc2lvbiBgMS4xMy4wYDoKLSsvLyEKLSsvLyEgICBgYGBydXN0Ci0rLy8hICAgZXh0ZXJuIGNy YXRlIHZlcnNpb25fY2hlY2sgYXMgcnVzdGM7Ci0rLy8hCi0rLy8hICAgaWYgcnVzdGM6OmlzX21p bl92ZXJzaW9uKCIxLjEzLjAiKS51bndyYXBfb3IoZmFsc2UpIHsKLSsvLyEgICAgICAgcHJpbnRs biEoImNhcmdvOnJ1c3RjLWNmZz1xdWVzdGlvbl9tYXJrX29wZXJhdG9yIik7Ci0rLy8hICAgfQot Ky8vISAgIGBgYAotKy8vIQotKy8vISAgIFNlZSBbYGlzX21heF92ZXJzaW9uYF0gb3IgW2Bpc19l eGFjdF92ZXJzaW9uYF0gdG8gY2hlY2sgaWYgdGhlIGNvbXBpbGVyCi0rLy8hICAgaXMgX2F0IG1v c3RfIG9yIF9leGFjdGx5XyBhIGNlcnRhaW4gdmVyc2lvbi4KLSsvLyEKLSsvLyEgKiBDaGVjayB0 aGF0IHRoZSBydW5uaW5nIGNvbXBpbGVyIHdhcyByZWxlYXNlZCBvbiBvciBhZnRlciBgMjAxOC0x Mi0xOGA6Ci0rLy8hCi0rLy8hICAgYGBgcnVzdAotKy8vISAgIGV4dGVybiBjcmF0ZSB2ZXJzaW9u X2NoZWNrIGFzIHJ1c3RjOwotKy8vIQotKy8vISAgIG1hdGNoIHJ1c3RjOjppc19taW5fZGF0ZSgi MjAxOC0xMi0xOCIpIHsKLSsvLyEgICAgICAgU29tZSh0cnVlKSA9PiAiWWVwISBJdCdzIHJlY2Vu dCEiLAotKy8vISAgICAgICBTb21lKGZhbHNlKSA9PiAiTm8sIGl0J3Mgb2xkZXIuIiwKLSsvLyEg ICAgICAgTm9uZSA9PiAiQ291bGRuJ3QgZGV0ZXJtaW5lIHRoZSBydXN0YyB2ZXJzaW9uLiIKLSsv LyEgICB9OwotKy8vISAgIGBgYAotKy8vIQotKy8vISAgIFNlZSBbYGlzX21heF9kYXRlYF0gb3Ig W2Bpc19leGFjdF9kYXRlYF0gdG8gY2hlY2sgaWYgdGhlIGNvbXBpbGVyIHdhcwotKy8vISAgIHJl bGVhc2VkIF9wcmlvciB0b18gb3IgX2V4YWN0bHkgb25fIGEgY2VydGFpbiBkYXRlLgotKy8vIQot Ky8vISAqIENoZWNrIHRoYXQgdGhlIHJ1bm5pbmcgY29tcGlsZXIgc3VwcG9ydHMgZmVhdHVyZSBm bGFnczoKLSsvLyEKLSsvLyEgICBgYGBydXN0Ci0rLy8hICAgZXh0ZXJuIGNyYXRlIHZlcnNpb25f Y2hlY2sgYXMgcnVzdGM7Ci0rLy8hCi0rLy8hICAgbWF0Y2ggcnVzdGM6OmlzX2ZlYXR1cmVfZmxh Z2dhYmxlKCkgewotKy8vISAgICAgICBTb21lKHRydWUpID0+ICJZZXMhIEl0J3MgYSBkZXYgb3Ig bmlnaHRseSByZWxlYXNlISIsCi0rLy8hICAgICAgIFNvbWUoZmFsc2UpID0+ICJObywgaXQncyBz dGFibGUgb3IgYmV0YS4iLAotKy8vISAgICAgICBOb25lID0+ICJDb3VsZG4ndCBkZXRlcm1pbmUg dGhlIHJ1c3RjIHZlcnNpb24uIgotKy8vISAgIH07Ci0rLy8hICAgYGBgCi0rLy8hCi0rLy8hICog Q2hlY2sgdGhhdCB0aGUgcnVubmluZyBjb21waWxlciBzdXBwb3J0cyBhIHNwZWNpZmljIGZlYXR1 cmU6Ci0rLy8hCi0rLy8hICAgYGBgcnVzdAotKy8vISAgIGV4dGVybiBjcmF0ZSB2ZXJzaW9uX2No ZWNrIGFzIHJ1c3RjOwotKy8vIQotKy8vISAgIGlmIGxldCBTb21lKHRydWUpID0gcnVzdGM6OnN1 cHBvcnRzX2ZlYXR1cmUoImRvY19jZmciKSB7Ci0rLy8hICAgICAgcHJpbnRsbiEoImNhcmdvOnJ1 c3RjLWNmZz1oYXNfZG9jX2NmZyIpOwotKy8vISAgIH0KLSsvLyEgICBgYGAKLSsvLyEKLSsvLyEg KiBDaGVjayB0aGF0IHRoZSBydW5uaW5nIGNvbXBpbGVyIGlzIG9uIHRoZSBzdGFibGUgY2hhbm5l bDoKLSsvLyEKLSsvLyEgICBgYGBydXN0Ci0rLy8hICAgZXh0ZXJuIGNyYXRlIHZlcnNpb25fY2hl Y2sgYXMgcnVzdGM7Ci0rLy8hCi0rLy8hICAgbWF0Y2ggcnVzdGM6OkNoYW5uZWw6OnJlYWQoKSB7 Ci0rLy8hICAgICAgIFNvbWUoYykgaWYgYy5pc19zdGFibGUoKSA9PiBmb3JtYXQhKCJZZXMhIEl0 J3Mgc3RhYmxlLiIpLAotKy8vISAgICAgICBTb21lKGMpID0+IGZvcm1hdCEoIk5vLCB0aGUgY2hh bm5lbCB7fSBpcyBub3Qgc3RhYmxlLiIsIGMpLAotKy8vISAgICAgICBOb25lID0+IGZvcm1hdCEo IkNvdWxkbid0IGRldGVybWluZSB0aGUgcnVzdGMgdmVyc2lvbi4iKQotKy8vISAgIH07Ci0rLy8h ICAgYGBgCi0rLy8hCi0rLy8hIFRvIGludGVyYWN0IHdpdGggdGhlIHZlcnNpb24sIHJlbGVhc2Ug ZGF0ZSwgYW5kIHJlbGVhc2UgY2hhbm5lbCBhcyBzdHJ1Y3RzLAotKy8vISB1c2UgW2BWZXJzaW9u YF0sIFtgRGF0ZWBdLCBhbmQgW2BDaGFubmVsYF0sIHJlc3BlY3RpdmVseS4gVGhlIFtgdHJpcGxl KClgXQotKy8vISBmdW5jdGlvbiByZXR1cm5zIGFsbCB0aHJlZSB2YWx1ZXMgZWZmaWNpZW50bHku Ci0rLy8hCi0rLy8hICMgQWx0ZXJuYXRpdmVzCi0rLy8hCi0rLy8hIFRoaXMgY3JhdGUgaXMgZGVh ZCBzaW1wbGUgd2l0aCBubyBkZXBlbmRlbmNpZXMuIElmIHlvdSBuZWVkIHNvbWV0aGluZyBtb3Jl Ci0rLy8hIGFuZCBkb24ndCBjYXJlIGFib3V0IHBhbmlja2luZyBpZiB0aGUgdmVyc2lvbiBjYW5u b3QgYmUgb2J0YWluZWQsIG9yIGlmIHlvdQotKy8vISBkb24ndCBtaW5kIGFkZGluZyBkZXBlbmRl bmNpZXMsIHNlZQotKy8vISBbcnVzdGNfdmVyc2lvbl0oaHR0cHM6Ly9jcmF0ZXMuaW8vY3JhdGVz L3J1c3RjX3ZlcnNpb24pLgotKwotKyMhW2FsbG93KGRlcHJlY2F0ZWQpXQotKwotK21vZCB2ZXJz aW9uOwotK21vZCBjaGFubmVsOwotK21vZCBkYXRlOwotKwotK3VzZSBzdGQ6OmVudjsKLSt1c2Ug c3RkOjpwcm9jZXNzOjpDb21tYW5kOwotKwotKyNbZG9jKGlubGluZSldIHB1YiB1c2UgdmVyc2lv bjo6KjsKLSsjW2RvYyhpbmxpbmUpXSBwdWIgdXNlIGNoYW5uZWw6Oio7Ci0rI1tkb2MoaW5saW5l KV0gcHViIHVzZSBkYXRlOjoqOwotKwotKy8vLyBQYXJzZXMgKHZlcnNpb24sIGRhdGUpIGFzIGF2 YWlsYWJsZSBmcm9tIHJ1c3RjIHZlcnNpb24gc3RyaW5nLgotK2ZuIHZlcnNpb25fYW5kX2RhdGVf ZnJvbV9ydXN0Y192ZXJzaW9uKHM6ICZzdHIpIC0+IChPcHRpb248U3RyaW5nPiwgT3B0aW9uPFN0 cmluZz4pIHsKLSsgICAgbGV0IGxhc3RfbGluZSA9IHMubGluZXMoKS5sYXN0KCkudW53cmFwX29y KHMpOwotKyAgICBsZXQgbXV0IGNvbXBvbmVudHMgPSBsYXN0X2xpbmUudHJpbSgpLnNwbGl0KCIg Iik7Ci0rICAgIGxldCB2ZXJzaW9uID0gY29tcG9uZW50cy5udGgoMSk7Ci0rICAgIGxldCBkYXRl ID0gY29tcG9uZW50cy5maWx0ZXIofGN8IGMuZW5kc193aXRoKCcpJykpLm5leHQoKQotKyAgICAg ICAgLm1hcCh8c3wgcy50cmltX3JpZ2h0KCkudHJpbV9yaWdodF9tYXRjaGVzKCIpIikudHJpbV9s ZWZ0KCkudHJpbV9sZWZ0X21hdGNoZXMoJygnKSk7Ci0rICAgICh2ZXJzaW9uLm1hcCh8c3wgcy50 b19zdHJpbmcoKSksIGRhdGUubWFwKHxzfCBzLnRvX3N0cmluZygpKSkKLSt9Ci0rCi0rLy8vIFBh cnNlcyAodmVyc2lvbiwgZGF0ZSkgYXMgYXZhaWxhYmxlIGZyb20gcnVzdGMgdmVyYm9zZSB2ZXJz aW9uIG91dHB1dC4KLStmbiB2ZXJzaW9uX2FuZF9kYXRlX2Zyb21fcnVzdGNfdmVyYm9zZV92ZXJz aW9uKHM6ICZzdHIpIC0+IChPcHRpb248U3RyaW5nPiwgT3B0aW9uPFN0cmluZz4pIHsKLSsgICAg bGV0IChtdXQgdmVyc2lvbiwgbXV0IGRhdGUpID0gKE5vbmUsIE5vbmUpOwotKyAgICBmb3IgbGlu ZSBpbiBzLmxpbmVzKCkgewotKyAgICAgICAgbGV0IHNwbGl0ID0gfHM6ICZzdHJ8IHMuc3BsaXRu KDIsICI6IikubnRoKDEpLm1hcCh8c3wgcy50cmltKCkudG9fc3RyaW5nKCkpOwotKyAgICAgICAg bWF0Y2ggbGluZS50cmltKCkuc3BsaXQoIiAiKS5udGgoMCkgewotKyAgICAgICAgICAgIFNvbWUo InJ1c3RjIikgPT4gewotKyAgICAgICAgICAgICAgICBsZXQgKHYsIGQpID0gdmVyc2lvbl9hbmRf ZGF0ZV9mcm9tX3J1c3RjX3ZlcnNpb24obGluZSk7Ci0rICAgICAgICAgICAgICAgIHZlcnNpb24g PSB2ZXJzaW9uLm9yKHYpOwotKyAgICAgICAgICAgICAgICBkYXRlID0gZGF0ZS5vcihkKTsKLSsg ICAgICAgICAgICB9LAotKyAgICAgICAgICAgIFNvbWUoInJlbGVhc2U6IikgPT4gdmVyc2lvbiA9 IHNwbGl0KGxpbmUpLAotKyAgICAgICAgICAgIFNvbWUoImNvbW1pdC1kYXRlOiIpIGlmIGxpbmUu ZW5kc193aXRoKCJ1bmtub3duIikgPT4gZGF0ZSA9IE5vbmUsCi0rICAgICAgICAgICAgU29tZSgi Y29tbWl0LWRhdGU6IikgPT4gZGF0ZSA9IHNwbGl0KGxpbmUpLAotKyAgICAgICAgICAgIF8gPT4g Y29udGludWUKLSsgICAgICAgIH0KLSsgICAgfQotKwotKyAgICAodmVyc2lvbiwgZGF0ZSkKLSt9 Ci0rCi0rLy8vIFJldHVybnMgKHZlcnNpb24sIGRhdGUpIGFzIGF2YWlsYWJsZSBmcm9tIGBydXN0 YyAtLXZlcnNpb25gLgotK2ZuIGdldF92ZXJzaW9uX2FuZF9kYXRlKCkgLT4gT3B0aW9uPChPcHRp b248U3RyaW5nPiwgT3B0aW9uPFN0cmluZz4pPiB7Ci0rICAgIGxldCBydXN0YyA9IGVudjo6dmFy KCJSVVNUQyIpLnVud3JhcF9vcl9lbHNlKHxffCAicnVzdGMiLnRvX3N0cmluZygpKTsKLSsgICAg Q29tbWFuZDo6bmV3KHJ1c3RjKS5hcmcoIi0tdmVyYm9zZSIpLmFyZygiLS12ZXJzaW9uIikub3V0 cHV0KCkub2soKQotKyAgICAgICAgLmFuZF90aGVuKHxvdXRwdXR8IFN0cmluZzo6ZnJvbV91dGY4 KG91dHB1dC5zdGRvdXQpLm9rKCkpCi0rICAgICAgICAubWFwKHxzfCB2ZXJzaW9uX2FuZF9kYXRl X2Zyb21fcnVzdGNfdmVyYm9zZV92ZXJzaW9uKCZzKSkKLSt9Ci0rCi0rLy8vIFJlYWRzIHRoZSB0 cmlwbGUgb2YgW2BWZXJzaW9uYF0sIFtgQ2hhbm5lbGBdLCBhbmQgW2BEYXRlYF0gb2YgdGhlIGlu c3RhbGxlZAotKy8vLyBvciBydW5uaW5nIGBydXN0Y2AuCi0rLy8vCi0rLy8vIElmIGFueSBhdHRy aWJ1dGUgY2Fubm90IGJlIGRldGVybWluZWQgKHNlZSB0aGUgW3RvcC1sZXZlbAotKy8vLyBkb2N1 bWVudGF0aW9uXShjcmF0ZSkpLCByZXR1cm5zIGBOb25lYC4KLSsvLy8KLSsvLy8gVG8gb2J0YWlu IG9ubHkgb25lIG9mIHRocmVlIGF0dHJpYnV0ZXMsIHVzZSBbYFZlcnNpb246OnJlYWQoKWBdLAot Ky8vLyBbYENoYW5uZWw6OnJlYWQoKWBdLCBvciBbYERhdGU6OnJlYWQoKWBdLgotK3B1YiBmbiB0 cmlwbGUoKSAtPiBPcHRpb248KFZlcnNpb24sIENoYW5uZWwsIERhdGUpPiB7Ci0rICAgIGxldCAo dmVyc2lvbl9zdHIsIGRhdGVfc3RyKSA9IG1hdGNoIGdldF92ZXJzaW9uX2FuZF9kYXRlKCkgewot KyAgICAgICAgU29tZSgoU29tZSh2ZXJzaW9uKSwgU29tZShkYXRlKSkpID0+ICh2ZXJzaW9uLCBk YXRlKSwKLSsgICAgICAgIF8gPT4gcmV0dXJuIE5vbmUKLSsgICAgfTsKLSsKLSsgICAgLy8gQ2Fu J3QgdXNlIGA/YCBvciBgdHJ5IWAgZm9yIGBPcHRpb25gIGluIDEuMC4wLgotKyAgICBtYXRjaCBW ZXJzaW9uOjpwYXJzZSgmdmVyc2lvbl9zdHIpIHsKLSsgICAgICAgIFNvbWUodmVyc2lvbikgPT4g bWF0Y2ggQ2hhbm5lbDo6cGFyc2UoJnZlcnNpb25fc3RyKSB7Ci0rICAgICAgICAgICAgU29tZShj aGFubmVsKSA9PiBtYXRjaCBEYXRlOjpwYXJzZSgmZGF0ZV9zdHIpIHsKLSsgICAgICAgICAgICAg ICAgU29tZShkYXRlKSA9PiBTb21lKCh2ZXJzaW9uLCBjaGFubmVsLCBkYXRlKSksCi0rICAgICAg ICAgICAgICAgIF8gPT4gTm9uZSwKLSsgICAgICAgICAgICB9LAotKyAgICAgICAgICAgIF8gPT4g Tm9uZSwKLSsgICAgICAgIH0sCi0rICAgICAgICBfID0+IE5vbmUKLSsgICAgfQotK30KLSsKLSsv Ly8gQ2hlY2tzIHRoYXQgdGhlIHJ1bm5pbmcgb3IgaW5zdGFsbGVkIGBydXN0Y2Agd2FzIHJlbGVh c2VkICoqb24gb3IgYWZ0ZXIqKgotKy8vLyBzb21lIGRhdGUuCi0rLy8vCi0rLy8vIFRoZSBmb3Jt YXQgb2YgYG1pbl9kYXRlYCBtdXN0IGJlIFlZWVktTU0tREQuIEZvciBpbnN0YW5jZTogYDIwMTYt MTItMjBgIG9yCi0rLy8vIGAyMDE3LTAxLTA5YC4KLSsvLy8KLSsvLy8gSWYgdGhlIGRhdGUgY2Fu bm90IGJlIHJldHJpZXZlZCBvciBwYXJzZWQsIG9yIGlmIGBtaW5fZGF0ZWAgY291bGQgbm90IGJl Ci0rLy8vIHBhcnNlZCwgcmV0dXJucyBgTm9uZWAuIE90aGVyd2lzZSByZXR1cm5zIGB0cnVlYCBp ZiB0aGUgaW5zdGFsbGVkIGBydXN0Y2AKLSsvLy8gd2FzIHJlbGVhc2Ugb24gb3IgYWZ0ZXIgYG1p bl9kYXRlYCBhbmQgYGZhbHNlYCBvdGhlcndpc2UuCi0rcHViIGZuIGlzX21pbl9kYXRlKG1pbl9k YXRlOiAmc3RyKSAtPiBPcHRpb248Ym9vbD4gewotKyAgICBtYXRjaCAoRGF0ZTo6cmVhZCgpLCBE YXRlOjpwYXJzZShtaW5fZGF0ZSkpIHsKLSsgICAgICAgIChTb21lKHJ1c3RjX2RhdGUpLCBTb21l KG1pbl9kYXRlKSkgPT4gU29tZShydXN0Y19kYXRlID49IG1pbl9kYXRlKSwKLSsgICAgICAgIF8g PT4gTm9uZQotKyAgICB9Ci0rfQotKwotKy8vLyBDaGVja3MgdGhhdCB0aGUgcnVubmluZyBvciBp bnN0YWxsZWQgYHJ1c3RjYCB3YXMgcmVsZWFzZWQgKipvbiBvciBiZWZvcmUqKgotKy8vLyBzb21l IGRhdGUuCi0rLy8vCi0rLy8vIFRoZSBmb3JtYXQgb2YgYG1heF9kYXRlYCBtdXN0IGJlIFlZWVkt TU0tREQuIEZvciBpbnN0YW5jZTogYDIwMTYtMTItMjBgIG9yCi0rLy8vIGAyMDE3LTAxLTA5YC4K LSsvLy8KLSsvLy8gSWYgdGhlIGRhdGUgY2Fubm90IGJlIHJldHJpZXZlZCBvciBwYXJzZWQsIG9y IGlmIGBtYXhfZGF0ZWAgY291bGQgbm90IGJlCi0rLy8vIHBhcnNlZCwgcmV0dXJucyBgTm9uZWAu IE90aGVyd2lzZSByZXR1cm5zIGB0cnVlYCBpZiB0aGUgaW5zdGFsbGVkIGBydXN0Y2AKLSsvLy8g d2FzIHJlbGVhc2Ugb24gb3IgYmVmb3JlIGBtYXhfZGF0ZWAgYW5kIGBmYWxzZWAgb3RoZXJ3aXNl LgotK3B1YiBmbiBpc19tYXhfZGF0ZShtYXhfZGF0ZTogJnN0cikgLT4gT3B0aW9uPGJvb2w+IHsK LSsgICAgbWF0Y2ggKERhdGU6OnJlYWQoKSwgRGF0ZTo6cGFyc2UobWF4X2RhdGUpKSB7Ci0rICAg ICAgICAoU29tZShydXN0Y19kYXRlKSwgU29tZShtYXhfZGF0ZSkpID0+IFNvbWUocnVzdGNfZGF0 ZSA8PSBtYXhfZGF0ZSksCi0rICAgICAgICBfID0+IE5vbmUKLSsgICAgfQotK30KLSsKLSsvLy8g Q2hlY2tzIHRoYXQgdGhlIHJ1bm5pbmcgb3IgaW5zdGFsbGVkIGBydXN0Y2Agd2FzIHJlbGVhc2Vk ICoqZXhhY3RseSoqIG9uCi0rLy8vIHNvbWUgZGF0ZS4KLSsvLy8KLSsvLy8gVGhlIGZvcm1hdCBv ZiBgZGF0ZWAgbXVzdCBiZSBZWVlZLU1NLURELiBGb3IgaW5zdGFuY2U6IGAyMDE2LTEyLTIwYCBv cgotKy8vLyBgMjAxNy0wMS0wOWAuCi0rLy8vCi0rLy8vIElmIHRoZSBkYXRlIGNhbm5vdCBiZSBy ZXRyaWV2ZWQgb3IgcGFyc2VkLCBvciBpZiBgZGF0ZWAgY291bGQgbm90IGJlIHBhcnNlZCwKLSsv Ly8gcmV0dXJucyBgTm9uZWAuIE90aGVyd2lzZSByZXR1cm5zIGB0cnVlYCBpZiB0aGUgaW5zdGFs bGVkIGBydXN0Y2Agd2FzCi0rLy8vIHJlbGVhc2Ugb24gYGRhdGVgIGFuZCBgZmFsc2VgIG90aGVy d2lzZS4KLStwdWIgZm4gaXNfZXhhY3RfZGF0ZShkYXRlOiAmc3RyKSAtPiBPcHRpb248Ym9vbD4g ewotKyAgICBtYXRjaCAoRGF0ZTo6cmVhZCgpLCBEYXRlOjpwYXJzZShkYXRlKSkgewotKyAgICAg ICAgKFNvbWUocnVzdGNfZGF0ZSksIFNvbWUoZGF0ZSkpID0+IFNvbWUocnVzdGNfZGF0ZSA9PSBk YXRlKSwKLSsgICAgICAgIF8gPT4gTm9uZQotKyAgICB9Ci0rfQotKwotKy8vLyBDaGVja3MgdGhh dCB0aGUgcnVubmluZyBvciBpbnN0YWxsZWQgYHJ1c3RjYCBpcyAqKmF0IGxlYXN0Kiogc29tZSBt aW5pbXVtCi0rLy8vIHZlcnNpb24uCi0rLy8vCi0rLy8vIFRoZSBmb3JtYXQgb2YgYG1pbl92ZXJz aW9uYCBpcyBhIHNlbWFudGljIHZlcnNpb246IGAxLjMuMGAsIGAxLjE1LjAtYmV0YWAsCi0rLy8v IGAxLjE0LjBgLCBgMS4xNi4wLW5pZ2h0bHlgLCBldGMuCi0rLy8vCi0rLy8vIElmIHRoZSB2ZXJz aW9uIGNhbm5vdCBiZSByZXRyaWV2ZWQgb3IgcGFyc2VkLCBvciBpZiBgbWluX3ZlcnNpb25gIGNv dWxkIG5vdAotKy8vLyBiZSBwYXJzZWQsIHJldHVybnMgYE5vbmVgLiBPdGhlcndpc2UgcmV0dXJu cyBgdHJ1ZWAgaWYgdGhlIGluc3RhbGxlZCBgcnVzdGNgCi0rLy8vIGlzIGF0IGxlYXN0IGBtaW5f dmVyc2lvbmAgYW5kIGBmYWxzZWAgb3RoZXJ3aXNlLgotK3B1YiBmbiBpc19taW5fdmVyc2lvbiht aW5fdmVyc2lvbjogJnN0cikgLT4gT3B0aW9uPGJvb2w+IHsKLSsgICAgbWF0Y2ggKFZlcnNpb246 OnJlYWQoKSwgVmVyc2lvbjo6cGFyc2UobWluX3ZlcnNpb24pKSB7Ci0rICAgICAgICAoU29tZShy dXN0Y192ZXIpLCBTb21lKG1pbl92ZXIpKSA9PiBTb21lKHJ1c3RjX3ZlciA+PSBtaW5fdmVyKSwK LSsgICAgICAgIF8gPT4gTm9uZQotKyAgICB9Ci0rfQotKwotKy8vLyBDaGVja3MgdGhhdCB0aGUg cnVubmluZyBvciBpbnN0YWxsZWQgYHJ1c3RjYCBpcyAqKmF0IG1vc3QqKiBzb21lIG1heGltdW0K LSsvLy8gdmVyc2lvbi4KLSsvLy8KLSsvLy8gVGhlIGZvcm1hdCBvZiBgbWF4X3ZlcnNpb25gIGlz IGEgc2VtYW50aWMgdmVyc2lvbjogYDEuMy4wYCwgYDEuMTUuMC1iZXRhYCwKLSsvLy8gYDEuMTQu MGAsIGAxLjE2LjAtbmlnaHRseWAsIGV0Yy4KLSsvLy8KLSsvLy8gSWYgdGhlIHZlcnNpb24gY2Fu bm90IGJlIHJldHJpZXZlZCBvciBwYXJzZWQsIG9yIGlmIGBtYXhfdmVyc2lvbmAgY291bGQgbm90 Ci0rLy8vIGJlIHBhcnNlZCwgcmV0dXJucyBgTm9uZWAuIE90aGVyd2lzZSByZXR1cm5zIGB0cnVl YCBpZiB0aGUgaW5zdGFsbGVkIGBydXN0Y2AKLSsvLy8gaXMgYXQgbW9zdCBgbWF4X3ZlcnNpb25g IGFuZCBgZmFsc2VgIG90aGVyd2lzZS4KLStwdWIgZm4gaXNfbWF4X3ZlcnNpb24obWF4X3ZlcnNp b246ICZzdHIpIC0+IE9wdGlvbjxib29sPiB7Ci0rICAgIG1hdGNoIChWZXJzaW9uOjpyZWFkKCks IFZlcnNpb246OnBhcnNlKG1heF92ZXJzaW9uKSkgewotKyAgICAgICAgKFNvbWUocnVzdGNfdmVy KSwgU29tZShtYXhfdmVyKSkgPT4gU29tZShydXN0Y192ZXIgPD0gbWF4X3ZlciksCi0rICAgICAg ICBfID0+IE5vbmUKLSsgICAgfQotK30KLSsKLSsvLy8gQ2hlY2tzIHRoYXQgdGhlIHJ1bm5pbmcg b3IgaW5zdGFsbGVkIGBydXN0Y2AgaXMgKipleGFjdGx5Kiogc29tZSB2ZXJzaW9uLgotKy8vLwot Ky8vLyBUaGUgZm9ybWF0IG9mIGB2ZXJzaW9uYCBpcyBhIHNlbWFudGljIHZlcnNpb246IGAxLjMu MGAsIGAxLjE1LjAtYmV0YWAsCi0rLy8vIGAxLjE0LjBgLCBgMS4xNi4wLW5pZ2h0bHlgLCBldGMu Ci0rLy8vCi0rLy8vIElmIHRoZSB2ZXJzaW9uIGNhbm5vdCBiZSByZXRyaWV2ZWQgb3IgcGFyc2Vk LCBvciBpZiBgdmVyc2lvbmAgY291bGQgbm90IGJlCi0rLy8vIHBhcnNlZCwgcmV0dXJucyBgTm9u ZWAuIE90aGVyd2lzZSByZXR1cm5zIGB0cnVlYCBpZiB0aGUgaW5zdGFsbGVkIGBydXN0Y2AgaXMK LSsvLy8gZXhhY3RseSBgdmVyc2lvbmAgYW5kIGBmYWxzZWAgb3RoZXJ3aXNlLgotK3B1YiBmbiBp c19leGFjdF92ZXJzaW9uKHZlcnNpb246ICZzdHIpIC0+IE9wdGlvbjxib29sPiB7Ci0rICAgIG1h dGNoIChWZXJzaW9uOjpyZWFkKCksIFZlcnNpb246OnBhcnNlKHZlcnNpb24pKSB7Ci0rICAgICAg ICAoU29tZShydXN0Y192ZXIpLCBTb21lKHZlcnNpb24pKSA9PiBTb21lKHJ1c3RjX3ZlciA9PSB2 ZXJzaW9uKSwKLSsgICAgICAgIF8gPT4gTm9uZQotKyAgICB9Ci0rfQotKwotKy8vLyBDaGVja3Mg d2hldGhlciB0aGUgcnVubmluZyBvciBpbnN0YWxsZWQgYHJ1c3RjYCBzdXBwb3J0cyBmZWF0dXJl IGZsYWdzLgotKy8vLwotKy8vLyBJbiBvdGhlciB3b3JkcywgaWYgdGhlIGNoYW5uZWwgaXMgZWl0 aGVyICJuaWdodGx5IiBvciAiZGV2Ii4KLSsvLy8KLSsvLy8gTm90ZSB0aGF0IHN1cHBvcnQgZm9y IHNwZWNpZmljIGBydXN0Y2AgZmVhdHVyZXMgY2FuIGJlIGVuYWJsZWQgb3IgZGlzYWJsZWQKLSsv Ly8gdmlhIHRoZSBgYWxsb3ctZmVhdHVyZXNgIGNvbXBpbGVyIGZsYWcsIHdoaWNoIHRoaXMgZnVu Y3Rpb24gX2RvZXMgbm90XwotKy8vLyBjaGVjay4gVGhhdCBpcywgdGhpcyBmdW5jdGlvbiBfZG9l cyBub3RfIGNoZWNrIHdoZXRoZXIgYSBfc3BlY2lmaWNfIGZlYXR1cmUKLSsvLy8gaXMgc3VwcG9y dGVkLCBidXQgaW5zdGVhZCB3aGV0aGVyIGZlYXR1cmVzIGFyZSBzdXBwb3J0ZWQgYXQgYWxsLiBU byBjaGVjawotKy8vLyBmb3Igc3VwcG9ydCBmb3IgYSBzcGVjaWZpYyBmZWF0dXJlLCB1c2UgW2Bz dXBwb3J0c19mZWF0dXJlKClgXS4KLSsvLy8KLSsvLy8gSWYgdGhlIHZlcnNpb24gY291bGQgbm90 IGJlIGRldGVybWluZWQsIHJldHVybnMgYE5vbmVgLiBPdGhlcndpc2UgcmV0dXJucwotKy8vLyBg dHJ1ZWAgaWYgdGhlIHJ1bm5pbmcgdmVyc2lvbiBzdXBwb3J0cyBmZWF0dXJlIGZsYWdzIGFuZCBg ZmFsc2VgIG90aGVyd2lzZS4KLStwdWIgZm4gaXNfZmVhdHVyZV9mbGFnZ2FibGUoKSAtPiBPcHRp b248Ym9vbD4gewotKyAgICBDaGFubmVsOjpyZWFkKCkubWFwKHxjfCBjLnN1cHBvcnRzX2ZlYXR1 cmVzKCkpCi0rfQotKwotKy8vLyBDaGVja3Mgd2hldGhlciB0aGUgcnVubmluZyBvciBpbnN0YWxs ZWQgYHJ1c3RjYCBzdXBwb3J0cyBgZmVhdHVyZWAuCi0rLy8vCi0rLy8vIFJldHVybnMgX3RydWVf IF9pZmZfIFtgaXNfZmVhdHVyZV9mbGFnZ2FibGUoKWBdIHJldHVybnMgYHRydWVgIF9hbmRfIHRo ZQotKy8vLyBmZWF0dXJlIGlzIG5vdCBkaXNhYmxlZCB2aWEgZXhjbHVzaW9uIGluIGBhbGxvdy1m ZWF0dXJlc2AgdmlhIGBSVVNURkxBR1NgIG9yCi0rLy8vIGBDQVJHT19FTkNPREVEX1JVU1RGTEFH U2AuIElmIHRoZSB2ZXJzaW9uIGNvdWxkIG5vdCBiZSBkZXRlcm1pbmVkLCByZXR1cm5zCi0rLy8v IGBOb25lYC4KLSsvLy8KLSsvLy8gIyBFeGFtcGxlCi0rLy8vCi0rLy8vIGBgYHJ1c3QKLSsvLy8g dXNlIHZlcnNpb25fY2hlY2sgYXMgcnVzdGM7Ci0rLy8vCi0rLy8vIGlmIGxldCBTb21lKHRydWUp ID0gcnVzdGM6OnN1cHBvcnRzX2ZlYXR1cmUoImRvY19jZmciKSB7Ci0rLy8vICAgIHByaW50bG4h KCJjYXJnbzpydXN0Yy1jZmc9aGFzX2RvY19jZmciKTsKLSsvLy8gfQotKy8vLyBgYGAKLStwdWIg Zm4gc3VwcG9ydHNfZmVhdHVyZShmZWF0dXJlOiAmc3RyKSAtPiBPcHRpb248Ym9vbD4gewotKyAg ICBtYXRjaCBpc19mZWF0dXJlX2ZsYWdnYWJsZSgpIHsKLSsgICAgICAgIFNvbWUodHJ1ZSkgPT4g eyAvKiBjb250aW51ZSAqLyB9Ci0rICAgICAgICBTb21lKGZhbHNlKSA9PiByZXR1cm4gU29tZShm YWxzZSksCi0rICAgICAgICBOb25lID0+IHJldHVybiBOb25lLAotKyAgICB9Ci0rCi0rICAgIGxl dCBlbnZfZmxhZ3MgPSBlbnY6OnZhcl9vcygiQ0FSR09fRU5DT0RFRF9SVVNURkxBR1MiKQotKyAg ICAgICAgLm1hcCh8ZmxhZ3N8IChmbGFncywgJ1x4MWYnKSkKLSsgICAgICAgIC5vcl9lbHNlKHx8 IGVudjo6dmFyX29zKCJSVVNURkxBR1MiKS5tYXAofGZsYWdzfCAoZmxhZ3MsICcgJykpKTsKLSsK LSsgICAgaWYgbGV0IFNvbWUoKGZsYWdzLCBkZWxpbSkpID0gZW52X2ZsYWdzIHsKLSsgICAgICAg IGNvbnN0IEFMTE9XX0ZFQVRVUkVTOiAmJ3N0YXRpYyBzdHIgPSAiYWxsb3ctZmVhdHVyZXM9IjsK LSsKLSsgICAgICAgIGxldCBydXN0ZmxhZ3MgPSBmbGFncy50b19zdHJpbmdfbG9zc3koKTsKLSsg ICAgICAgIGxldCBhbGxvd19mZWF0dXJlcyA9IHJ1c3RmbGFncy5zcGxpdChkZWxpbSkKLSsgICAg ICAgICAgICAubWFwKHxmbGFnfCBmbGFnLnRyaW1fbGVmdF9tYXRjaGVzKCItWiIpLnRyaW0oKSkK LSsgICAgICAgICAgICAuZmlsdGVyKHxmbGFnfCBmbGFnLnN0YXJ0c193aXRoKEFMTE9XX0ZFQVRV UkVTKSkKLSsgICAgICAgICAgICAubWFwKHxmbGFnfCAmZmxhZ1tBTExPV19GRUFUVVJFUy5sZW4o KS4uXSk7Ci0rCi0rICAgICAgICBpZiBsZXQgU29tZShhbGxvd19mZWF0dXJlcykgPSBhbGxvd19m ZWF0dXJlcy5sYXN0KCkgewotKyAgICAgICAgICAgIHJldHVybiBTb21lKGFsbG93X2ZlYXR1cmVz LnNwbGl0KCcsJykuYW55KHxmfCBmLnRyaW0oKSA9PSBmZWF0dXJlKSk7Ci0rICAgICAgICB9Ci0r ICAgIH0KLSsKLSsgICAgLy8gSWYgdGhlcmUgYXJlIG5vIGBSVVNURkxBR1NgIG9yIGBDQVJHT19F TkNPREVEX1JVU1RGTEFHU2Agb3IgdGhleSBkb24ndAotKyAgICAvLyBjb250YWluIGFuIGBhbGxv dy1mZWF0dXJlc2AgZmxhZywgYXNzdW1lIGNvbXBpbGVyIGFsbG93cyBhbGwgZmVhdHVyZXMuCi0r ICAgIFNvbWUodHJ1ZSkKLSt9Ci0rCi0rI1tjZmcodGVzdCldCi0rbW9kIHRlc3RzIHsKLSsgICAg dXNlIHN0ZDo6e2VudiwgZnN9OwotKwotKyAgICB1c2Ugc3VwZXI6OnZlcnNpb25fYW5kX2RhdGVf ZnJvbV9ydXN0Y192ZXJzaW9uOwotKyAgICB1c2Ugc3VwZXI6OnZlcnNpb25fYW5kX2RhdGVfZnJv bV9ydXN0Y192ZXJib3NlX3ZlcnNpb247Ci0rCi0rICAgIG1hY3JvX3J1bGVzISBjaGVja19wYXJz ZSB7Ci0rICAgICAgICAoQCAkZjpleHByLCAkczpleHByID0+ICR2OmV4cHIsICRkOmV4cHIpID0+ ICh7Ci0rICAgICAgICAgICAgaWYgbGV0IChTb21lKHYpLCBkKSA9ICRmKCYkcykgewotKyAgICAg ICAgICAgICAgICBsZXQgZV9kOiBPcHRpb248JnN0cj4gPSAkZC5pbnRvKCk7Ci0rICAgICAgICAg ICAgICAgIGFzc2VydF9lcSEoKHYsIGQpLCAoJHYudG9fc3RyaW5nKCksIGVfZC5tYXAofHN8IHMu aW50bygpKSkpOwotKyAgICAgICAgICAgIH0gZWxzZSB7Ci0rICAgICAgICAgICAgICAgIHBhbmlj ISgiezo/fSBkaWRuJ3QgcGFyc2UgZm9yIHZlcnNpb24gdGVzdGluZy4iLCAkcyk7Ci0rICAgICAg ICAgICAgfQotKyAgICAgICAgfSk7Ci0rICAgICAgICAoJGY6ZXhwciwgJHM6ZXhwciA9PiAkdjpl eHByLCAkZDpleHByKSA9PiAoewotKyAgICAgICAgICAgIGxldCB3YXJuID0gIndhcm5pbmc6IGlu dmFsaWQgbG9nZ2luZyBzcGVjICd3YXJuaW5nJywgaWdub3JpbmcgaXQiOwotKyAgICAgICAgICAg IGxldCB3YXJuMiA9ICJ3YXJuaW5nOiBzb3JyeSwgc29tZXRoaW5nIHdlbnQgd3JvbmcgOihzYWQp IjsKLSsgICAgICAgICAgICBjaGVja19wYXJzZSEoQCAkZiwgJHMgPT4gJHYsICRkKTsKLSsgICAg ICAgICAgICBjaGVja19wYXJzZSEoQCAkZiwgJmZvcm1hdCEoInt9XG57fSIsIHdhcm4sICRzKSA9 PiAkdiwgJGQpOwotKyAgICAgICAgICAgIGNoZWNrX3BhcnNlIShAICRmLCAmZm9ybWF0ISgie31c bnt9Iiwgd2FybjIsICRzKSA9PiAkdiwgJGQpOwotKyAgICAgICAgICAgIGNoZWNrX3BhcnNlIShA ICRmLCAmZm9ybWF0ISgie31cbnt9XG57fSIsIHdhcm4sIHdhcm4yLCAkcykgPT4gJHYsICRkKTsK LSsgICAgICAgICAgICBjaGVja19wYXJzZSEoQCAkZiwgJmZvcm1hdCEoInt9XG57fVxue30iLCB3 YXJuMiwgd2FybiwgJHMpID0+ICR2LCAkZCk7Ci0rICAgICAgICB9KQotKyAgICB9Ci0rCi0rICAg IG1hY3JvX3J1bGVzISBjaGVja190ZXJzZV9wYXJzZSB7Ci0rICAgICAgICAoJCgkczpleHByID0+ ICR2OmV4cHIsICRkOmV4cHIsKSspID0+IHskKAotKyAgICAgICAgICAgIGNoZWNrX3BhcnNlISh2 ZXJzaW9uX2FuZF9kYXRlX2Zyb21fcnVzdGNfdmVyc2lvbiwgJHMgPT4gJHYsICRkKTsKLSsgICAg ICAgICkrfQotKyAgICB9Ci0rCi0rICAgIG1hY3JvX3J1bGVzISBjaGVja192ZXJib3NlX3BhcnNl IHsKLSsgICAgICAgICgkKCRzOmV4cHIgPT4gJHY6ZXhwciwgJGQ6ZXhwciwpKykgPT4geyQoCi0r ICAgICAgICAgICAgY2hlY2tfcGFyc2UhKHZlcnNpb25fYW5kX2RhdGVfZnJvbV9ydXN0Y192ZXJi b3NlX3ZlcnNpb24sICRzID0+ICR2LCAkZCk7Ci0rICAgICAgICApK30KLSsgICAgfQotKwotKyAg ICAjW3Rlc3RdCi0rICAgIGZuIHRlc3RfdmVyc2lvbl9wYXJzZSgpIHsKLSsgICAgICAgIGNoZWNr X3RlcnNlX3BhcnNlISB7Ci0rICAgICAgICAgICAgInJ1c3RjIDEuMTguMCIgPT4gIjEuMTguMCIs IE5vbmUsCi0rICAgICAgICAgICAgInJ1c3RjIDEuOC4wIiA9PiAiMS44LjAiLCBOb25lLAotKyAg ICAgICAgICAgICJydXN0YyAxLjIwLjAtbmlnaHRseSIgPT4gIjEuMjAuMC1uaWdodGx5IiwgTm9u ZSwKLSsgICAgICAgICAgICAicnVzdGMgMS4yMCIgPT4gIjEuMjAiLCBOb25lLAotKyAgICAgICAg ICAgICJydXN0YyAxLjMiID0+ICIxLjMiLCBOb25lLAotKyAgICAgICAgICAgICJydXN0YyAxIiA9 PiAiMSIsIE5vbmUsCi0rICAgICAgICAgICAgInJ1c3RjIDEuNS4xLWJldGEiID0+ICIxLjUuMS1i ZXRhIiwgTm9uZSwKLSsgICAgICAgICAgICAicnVzdGMgMS4yMC4wICgyMDE3LTA3LTA5KSIgPT4g IjEuMjAuMCIsIFNvbWUoIjIwMTctMDctMDkiKSwKLSsgICAgICAgICAgICAicnVzdGMgMS4yMC4w LWRldiAoMjAxNy0wNy0wOSkiID0+ICIxLjIwLjAtZGV2IiwgU29tZSgiMjAxNy0wNy0wOSIpLAot KyAgICAgICAgICAgICJydXN0YyAxLjIwLjAtbmlnaHRseSAoZDg0NjkzYjkzIDIwMTctMDctMDkp IiA9PiAiMS4yMC4wLW5pZ2h0bHkiLCBTb21lKCIyMDE3LTA3LTA5IiksCi0rICAgICAgICAgICAg InJ1c3RjIDEuMjAuMCAoZDg0NjkzYjkzIDIwMTctMDctMDkpIiA9PiAiMS4yMC4wIiwgU29tZSgi MjAxNy0wNy0wOSIpLAotKyAgICAgICAgICAgICJydXN0YyAxLjMwLjAtbmlnaHRseSAoM2JjMmNh N2U0IDIwMTgtMDktMjApIiA9PiAiMS4zMC4wLW5pZ2h0bHkiLCBTb21lKCIyMDE4LTA5LTIwIiks Ci0rICAgICAgICB9OwotKyAgICB9Ci0rCi0rICAgICNbdGVzdF0KLSsgICAgZm4gdGVzdF92ZXJi b3NlX3ZlcnNpb25fcGFyc2UoKSB7Ci0rICAgICAgICBjaGVja192ZXJib3NlX3BhcnNlISB7Ci0r ICAgICAgICAgICAgInJ1c3RjIDEuMC4wIChhNTlkZTM3ZTkgMjAxNS0wNS0xMykgKGJ1aWx0IDIw MTUtMDUtMTQpXG5cCi0rICAgICAgICAgICAgICAgIGJpbmFyeTogcnVzdGNcblwKLSsgICAgICAg ICAgICAgICAgY29tbWl0LWhhc2g6IGE1OWRlMzdlOTkwNjAxNjJhMjY3NGUzZmY0NTQwOWFjNzM1 OTVjMGVcblwKLSsgICAgICAgICAgICAgICAgY29tbWl0LWRhdGU6IDIwMTUtMDUtMTNcblwKLSsg ICAgICAgICAgICAgICAgYnVpbGQtZGF0ZTogMjAxNS0wNS0xNFxuXAotKyAgICAgICAgICAgICAg ICBob3N0OiB4ODZfNjQtdW5rbm93bi1saW51eC1nbnVcblwKLSsgICAgICAgICAgICAgICAgcmVs ZWFzZTogMS4wLjAiID0+ICIxLjAuMCIsIFNvbWUoIjIwMTUtMDUtMTMiKSwKLSsKLSsgICAgICAg ICAgICAicnVzdGMgMS4wLjAgKGE1OWRlMzdlOSAyMDE1LTA1LTEzKSAoYnVpbHQgMjAxNS0wNS0x NClcblwKLSsgICAgICAgICAgICAgICAgY29tbWl0LWhhc2g6IGE1OWRlMzdlOTkwNjAxNjJhMjY3 NGUzZmY0NTQwOWFjNzM1OTVjMGVcblwKLSsgICAgICAgICAgICAgICAgY29tbWl0LWRhdGU6IDIw MTUtMDUtMTNcblwKLSsgICAgICAgICAgICAgICAgYnVpbGQtZGF0ZTogMjAxNS0wNS0xNFxuXAot KyAgICAgICAgICAgICAgICBob3N0OiB4ODZfNjQtdW5rbm93bi1saW51eC1nbnVcblwKLSsgICAg ICAgICAgICAgICAgcmVsZWFzZTogMS4wLjAiID0+ICIxLjAuMCIsIFNvbWUoIjIwMTUtMDUtMTMi KSwKLSsKLSsgICAgICAgICAgICAicnVzdGMgMS41MC4wIChjYjc1YWQ1ZGIgMjAyMS0wMi0xMClc blwKLSsgICAgICAgICAgICAgICAgYmluYXJ5OiBydXN0Y1xuXAotKyAgICAgICAgICAgICAgICBj b21taXQtaGFzaDogY2I3NWFkNWRiMDI3ODNlOGIwMjIyZmVlMzYzYzVmNjNmN2UyY2Y1YlxuXAot KyAgICAgICAgICAgICAgICBjb21taXQtZGF0ZTogMjAyMS0wMi0xMFxuXAotKyAgICAgICAgICAg ICAgICBob3N0OiB4ODZfNjQtdW5rbm93bi1saW51eC1nbnVcblwKLSsgICAgICAgICAgICAgICAg cmVsZWFzZTogMS41MC4wIiA9PiAiMS41MC4wIiwgU29tZSgiMjAyMS0wMi0xMCIpLAotKwotKyAg ICAgICAgICAgICJydXN0YyAxLjUyLjAtbmlnaHRseSAoMjM0NzgxYWZlIDIwMjEtMDMtMDcpXG5c Ci0rICAgICAgICAgICAgICAgIGJpbmFyeTogcnVzdGNcblwKLSsgICAgICAgICAgICAgICAgY29t bWl0LWhhc2g6IDIzNDc4MWFmZTMzZDNmMzM5YjAwMmY4NWY5NDgwNDZkODQ3NmNmYzlcblwKLSsg ICAgICAgICAgICAgICAgY29tbWl0LWRhdGU6IDIwMjEtMDMtMDdcblwKLSsgICAgICAgICAgICAg ICAgaG9zdDogeDg2XzY0LXVua25vd24tbGludXgtZ251XG5cCi0rICAgICAgICAgICAgICAgIHJl bGVhc2U6IDEuNTIuMC1uaWdodGx5XG5cCi0rICAgICAgICAgICAgICAgIExMVk0gdmVyc2lvbjog MTIuMC4wIiA9PiAiMS41Mi4wLW5pZ2h0bHkiLCBTb21lKCIyMDIxLTAzLTA3IiksCi0rCi0rICAg ICAgICAgICAgInJ1c3RjIDEuNDEuMVxuXAotKyAgICAgICAgICAgICAgICBiaW5hcnk6IHJ1c3Rj XG5cCi0rICAgICAgICAgICAgICAgIGNvbW1pdC1oYXNoOiB1bmtub3duXG5cCi0rICAgICAgICAg ICAgICAgIGNvbW1pdC1kYXRlOiB1bmtub3duXG5cCi0rICAgICAgICAgICAgICAgIGhvc3Q6IHg4 Nl82NC11bmtub3duLWxpbnV4LWdudVxuXAotKyAgICAgICAgICAgICAgICByZWxlYXNlOiAxLjQx LjFcblwKLSsgICAgICAgICAgICAgICAgTExWTSB2ZXJzaW9uOiA3LjAiID0+ICIxLjQxLjEiLCBO b25lLAotKwotKyAgICAgICAgICAgICJydXN0YyAxLjQ5LjBcblwKLSsgICAgICAgICAgICAgICAg YmluYXJ5OiBydXN0Y1xuXAotKyAgICAgICAgICAgICAgICBjb21taXQtaGFzaDogdW5rbm93blxu XAotKyAgICAgICAgICAgICAgICBjb21taXQtZGF0ZTogdW5rbm93blxuXAotKyAgICAgICAgICAg ICAgICBob3N0OiB4ODZfNjQtdW5rbm93bi1saW51eC1nbnVcblwKLSsgICAgICAgICAgICAgICAg cmVsZWFzZTogMS40OS4wIiA9PiAiMS40OS4wIiwgTm9uZSwKLSsKLSsgICAgICAgICAgICAicnVz dGMgMS41MC4wIChGZWRvcmEgMS41MC4wLTEuZmMzMylcblwKLSsgICAgICAgICAgICAgICAgYmlu YXJ5OiBydXN0Y1xuXAotKyAgICAgICAgICAgICAgICBjb21taXQtaGFzaDogdW5rbm93blxuXAot KyAgICAgICAgICAgICAgICBjb21taXQtZGF0ZTogdW5rbm93blxuXAotKyAgICAgICAgICAgICAg ICBob3N0OiB4ODZfNjQtdW5rbm93bi1saW51eC1nbnVcblwKLSsgICAgICAgICAgICAgICAgcmVs ZWFzZTogMS41MC4wIiA9PiAiMS41MC4wIiwgTm9uZSwKLSsgICAgICAgIH07Ci0rICAgIH0KLSsK LSsgICAgZm4gcmVhZF9zdGF0aWModmVyYm9zZTogYm9vbCwgY2hhbm5lbDogJnN0ciwgbWlub3I6 IHVzaXplKSAtPiBTdHJpbmcgewotKyAgICAgICAgdXNlIHN0ZDo6ZnM6OkZpbGU7Ci0rICAgICAg ICB1c2Ugc3RkOjpwYXRoOjpQYXRoOwotKyAgICAgICAgdXNlIHN0ZDo6aW86OntCdWZSZWFkZXIs IFJlYWR9OwotKwotKyAgICAgICAgbGV0IHN1YmRpciA9IGlmIHZlcmJvc2UgeyAidmVyYm9zZSIg fSBlbHNlIHsgInRlcnNlIiB9OwotKyAgICAgICAgbGV0IHBhdGggPSBQYXRoOjpuZXcoU1RBVElD X1BBVEgpCi0rICAgICAgICAgICAgLmpvaW4oY2hhbm5lbCkKLSsgICAgICAgICAgICAuam9pbihz dWJkaXIpCi0rICAgICAgICAgICAgLmpvaW4oZm9ybWF0ISgicnVzdGMtMS57fS4wIiwgbWlub3Ip KTsKLSsKLSsgICAgICAgIGxldCBmaWxlID0gRmlsZTo6b3BlbihwYXRoKS51bndyYXAoKTsKLSsg ICAgICAgIGxldCBtdXQgYnVmX3JlYWRlciA9IEJ1ZlJlYWRlcjo6bmV3KGZpbGUpOwotKyAgICAg ICAgbGV0IG11dCBjb250ZW50cyA9IFN0cmluZzo6bmV3KCk7Ci0rICAgICAgICBidWZfcmVhZGVy LnJlYWRfdG9fc3RyaW5nKCZtdXQgY29udGVudHMpLnVud3JhcCgpOwotKyAgICAgICAgY29udGVu dHMKLSsgICAgfQotKwotKyAgICBzdGF0aWMgU1RBVElDX1BBVEg6ICYnc3RhdGljIHN0ciA9IGNv bmNhdCEoZW52ISgiQ0FSR09fTUFOSUZFU1RfRElSIiksICIvc3RhdGljIik7Ci0rCi0rICAgIHN0 YXRpYyBEQVRFUzogWyYnc3RhdGljIHN0cjsgNTFdID0gWwotKyAgICAgICAgIjIwMTUtMDUtMTMi LCAiMjAxNS0wNi0xOSIsICIyMDE1LTA4LTAzIiwgIjIwMTUtMDktMTUiLCAiMjAxNS0xMC0yNyIs Ci0rICAgICAgICAiMjAxNS0xMi0wNCIsICIyMDE2LTAxLTE5IiwgIjIwMTYtMDItMjkiLCAiMjAx Ni0wNC0xMSIsICIyMDE2LTA1LTE4IiwKLSsgICAgICAgICIyMDE2LTA3LTAzIiwgIjIwMTYtMDgt MTUiLCAiMjAxNi0wOS0yMyIsICIyMDE2LTExLTA3IiwgIjIwMTYtMTItMTYiLAotKyAgICAgICAg IjIwMTctMDEtMTkiLCAiMjAxNy0wMy0xMCIsICIyMDE3LTA0LTI0IiwgIjIwMTctMDYtMDYiLCAi MjAxNy0wNy0xNyIsCi0rICAgICAgICAiMjAxNy0wOC0yNyIsICIyMDE3LTEwLTA5IiwgIjIwMTct MTEtMjAiLCAiMjAxOC0wMS0wMSIsICIyMDE4LTAyLTEyIiwKLSsgICAgICAgICIyMDE4LTAzLTI1 IiwgIjIwMTgtMDUtMDciLCAiMjAxOC0wNi0xOSIsICIyMDE4LTA3LTMwIiwgIjIwMTgtMDktMTEi LAotKyAgICAgICAgIjIwMTgtMTAtMjQiLCAiMjAxOC0xMi0wNCIsICIyMDE5LTAxLTE2IiwgIjIw MTktMDItMjgiLCAiMjAxOS0wNC0xMCIsCi0rICAgICAgICAiMjAxOS0wNS0yMCIsICIyMDE5LTA3 LTAzIiwgIjIwMTktMDgtMTMiLCAiMjAxOS0wOS0yMyIsICIyMDE5LTExLTA0IiwKLSsgICAgICAg ICIyMDE5LTEyLTE2IiwgIjIwMjAtMDEtMjciLCAiMjAyMC0wMy0wOSIsICIyMDIwLTA0LTIwIiwg IjIwMjAtMDYtMDEiLAotKyAgICAgICAgIjIwMjAtMDctMTMiLCAiMjAyMC0wOC0yNCIsICIyMDIw LTEwLTA3IiwgIjIwMjAtMTEtMTYiLCAiMjAyMC0xMi0yOSIsCi0rICAgICAgICAiMjAyMS0wMi0x MCIsCi0rICAgIF07Ci0rCi0rICAgICNbdGVzdF0KLSsgICAgZm4gdGVzdF9zdGFibGVfY29tcGF0 aWJpbGl0eSgpIHsKLSsgICAgICAgIGlmIGVudjo6dmFyX29zKCJGT1JDRV9TVEFUSUMiKS5pc19u b25lKCkgJiYgZnM6Om1ldGFkYXRhKFNUQVRJQ19QQVRIKS5pc19lcnIoKSB7Ci0rICAgICAgICAg ICAgLy8gV2UgZXhjbHVkZSBgL3N0YXRpY2Agd2hlbiB3ZSBwYWNrYWdlIGB2ZXJzaW9uX2NoZWNr YCwgc28gZG9uJ3QKLSsgICAgICAgICAgICAvLyBydW4gaWYgc3RhdGljIGZpbGVzIGFyZW4ndCBw cmVzZW50IHVubGVzcyB3ZSBrbm93IHRoZXkgc2hvdWxkIGJlLgotKyAgICAgICAgICAgIHJldHVy bjsKLSsgICAgICAgIH0KLSsKLSsgICAgICAgIC8vIEVuc3VyZSB3ZSBjYW4gcGFyc2UgYWxsIG91 dHB1dCBmcm9tIGFsbCBMaW51eCBzdGFibGUgcmVsZWFzZXMuCi0rICAgICAgICBmb3IgdiBpbiAw Li5EQVRFUy5sZW4oKSB7Ci0rICAgICAgICAgICAgbGV0ICh2ZXJzaW9uLCBkYXRlKSA9ICgmZm9y bWF0ISgiMS57fS4wIiwgdiksIFNvbWUoREFURVNbdl0pKTsKLSsgICAgICAgICAgICBjaGVja190 ZXJzZV9wYXJzZSEocmVhZF9zdGF0aWMoZmFsc2UsICJzdGFibGUiLCB2KSA9PiB2ZXJzaW9uLCBk YXRlLCk7Ci0rICAgICAgICAgICAgY2hlY2tfdmVyYm9zZV9wYXJzZSEocmVhZF9zdGF0aWModHJ1 ZSwgInN0YWJsZSIsIHYpID0+IHZlcnNpb24sIGRhdGUsKTsKLSsgICAgICAgIH0KLSsgICAgfQot KwotKyAgICAjW3Rlc3RdCi0rICAgIGZuIHRlc3RfcGFyc2VfY3VycmVudCgpIHsKLSsgICAgICAg IGxldCAodmVyc2lvbiwgY2hhbm5lbCkgPSAoOjpWZXJzaW9uOjpyZWFkKCksIDo6Q2hhbm5lbDo6 cmVhZCgpKTsKLSsgICAgICAgIGFzc2VydCEodmVyc2lvbi5pc19zb21lKCkpOwotKyAgICAgICAg YXNzZXJ0IShjaGFubmVsLmlzX3NvbWUoKSk7Ci0rCi0rICAgICAgICBpZiBsZXQgT2soa25vd25f Y2hhbm5lbCkgPSBlbnY6OnZhcigiS05PV05fQ0hBTk5FTCIpIHsKLSsgICAgICAgICAgICBhc3Nl cnRfZXEhKGNoYW5uZWwsIDo6Q2hhbm5lbDo6cGFyc2UoJmtub3duX2NoYW5uZWwpKTsKLSsgICAg ICAgIH0KLSsgICAgfQotK30KLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3ZlcnNpb25f Y2hlY2svc3JjL3ZlcnNpb24ucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3ZlcnNpb25fY2hlY2svc3Jj L3ZlcnNpb24ucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvdmVyc2lvbl9jaGVjay9zcmMvdmVy c2lvbi5ycwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRf cGFydHkvcnVzdC92ZXJzaW9uX2NoZWNrL3NyYy92ZXJzaW9uLnJzCTIwMjUtMDktMTcgMTc6NDE6 NDcuNTA3Nzk1NTIyICswMzAwCi1AQCAtMCwwICsxLDMxNiBAQAotK3VzZSBzdGQ6OmZtdDsKLSsK LSsvLy8gVmVyc2lvbiBudW1iZXI6IGBtYWpvci5taW5vci5wYXRjaGAsIGlnbm9yaW5nIHJlbGVh c2UgY2hhbm5lbC4KLSsjW2Rlcml2ZShQYXJ0aWFsRXEsIEVxLCBDb3B5LCBDbG9uZSwgUGFydGlh bE9yZCwgT3JkKV0KLStwdWIgc3RydWN0IFZlcnNpb24odTY0KTsKLSsKLStpbXBsIFZlcnNpb24g ewotKyAgICAvLy8gUmVhZHMgdGhlIHZlcnNpb24gb2YgdGhlIHJ1bm5pbmcgY29tcGlsZXIuIElm IGl0IGNhbm5vdCBiZSBkZXRlcm1pbmVkCi0rICAgIC8vLyAoc2VlIHRoZSBbdG9wLWxldmVsIGRv Y3VtZW50YXRpb25dKGNyYXRlKSksIHJldHVybnMgYE5vbmVgLgotKyAgICAvLy8KLSsgICAgLy8v ICMgRXhhbXBsZQotKyAgICAvLy8KLSsgICAgLy8vIGBgYHJ1c3QKLSsgICAgLy8vIHVzZSB2ZXJz aW9uX2NoZWNrOjpWZXJzaW9uOwotKyAgICAvLy8KLSsgICAgLy8vIG1hdGNoIFZlcnNpb246OnJl YWQoKSB7Ci0rICAgIC8vLyAgICAgU29tZShkKSA9PiBmb3JtYXQhKCJWZXJzaW9uIGlzOiB7fSIs IGQpLAotKyAgICAvLy8gICAgIE5vbmUgPT4gZm9ybWF0ISgiRmFpbGVkIHRvIHJlYWQgdGhlIHZl cnNpb24uIikKLSsgICAgLy8vIH07Ci0rICAgIC8vLyBgYGAKLSsgICAgcHViIGZuIHJlYWQoKSAt PiBPcHRpb248VmVyc2lvbj4gewotKyAgICAgICAgOjpnZXRfdmVyc2lvbl9hbmRfZGF0ZSgpCi0r ICAgICAgICAgICAgLmFuZF90aGVuKHwodmVyc2lvbiwgXyl8IHZlcnNpb24pCi0rICAgICAgICAg ICAgLmFuZF90aGVuKHx2ZXJzaW9ufCBWZXJzaW9uOjpwYXJzZSgmdmVyc2lvbikpCi0rICAgIH0K LSsKLSsKLSsgICAgLy8vIFBhcnNlIGEgUnVzdCByZWxlYXNlIHZlcnNpb24gKG9mIHRoZSBmb3Jt Ci0rICAgIC8vLyBgbWFqb3JbLm1pbm9yWy5wYXRjaFstY2hhbm5lbF1dXWApLCBpZ25vcmluZyB0 aGUgcmVsZWFzZSBjaGFubmVsLCBpZgotKyAgICAvLy8gYW55LiBSZXR1cm5zIGBOb25lYCBpZiBg dmVyc2lvbmAgaXMgbm90IGEgdmFsaWQgUnVzdCB2ZXJzaW9uIHN0cmluZy4KLSsgICAgLy8vCi0r ICAgIC8vLyAjIEV4YW1wbGUKLSsgICAgLy8vCi0rICAgIC8vLyBgYGBydXN0Ci0rICAgIC8vLyB1 c2UgdmVyc2lvbl9jaGVjazo6VmVyc2lvbjsKLSsgICAgLy8vCi0rICAgIC8vLyBsZXQgdmVyc2lv biA9IFZlcnNpb246OnBhcnNlKCIxLjE4LjAiKS51bndyYXAoKTsKLSsgICAgLy8vIGFzc2VydCEo dmVyc2lvbi5leGFjdGx5KCIxLjE4LjAiKSk7Ci0rICAgIC8vLwotKyAgICAvLy8gbGV0IHZlcnNp b24gPSBWZXJzaW9uOjpwYXJzZSgiMS4yMC4wLW5pZ2h0bHkiKS51bndyYXAoKTsKLSsgICAgLy8v IGFzc2VydCEodmVyc2lvbi5leGFjdGx5KCIxLjIwLjAiKSk7Ci0rICAgIC8vLyBhc3NlcnQhKHZl cnNpb24uZXhhY3RseSgiMS4yMC4wLWJldGEiKSk7Ci0rICAgIC8vLwotKyAgICAvLy8gbGV0IHZl cnNpb24gPSBWZXJzaW9uOjpwYXJzZSgiMS4zIikudW53cmFwKCk7Ci0rICAgIC8vLyBhc3NlcnQh KHZlcnNpb24uZXhhY3RseSgiMS4zLjAiKSk7Ci0rICAgIC8vLwotKyAgICAvLy8gbGV0IHZlcnNp b24gPSBWZXJzaW9uOjpwYXJzZSgiMSIpLnVud3JhcCgpOwotKyAgICAvLy8gYXNzZXJ0ISh2ZXJz aW9uLmV4YWN0bHkoIjEuMC4wIikpOwotKyAgICAvLy8KLSsgICAgLy8vIGFzc2VydCEoVmVyc2lv bjo6cGFyc2UoIm9uZS50d28udGhyZWUiKS5pc19ub25lKCkpOwotKyAgICAvLy8gYXNzZXJ0IShW ZXJzaW9uOjpwYXJzZSgiMS42NTUzNi4yIikuaXNfbm9uZSgpKTsKLSsgICAgLy8vIGFzc2VydCEo VmVyc2lvbjo6cGFyc2UoIjEuIDIiKS5pc19ub25lKCkpOwotKyAgICAvLy8gYXNzZXJ0IShWZXJz aW9uOjpwYXJzZSgiIikuaXNfbm9uZSgpKTsKLSsgICAgLy8vIGFzc2VydCEoVmVyc2lvbjo6cGFy c2UoIjEuIikuaXNfbm9uZSgpKTsKLSsgICAgLy8vIGFzc2VydCEoVmVyc2lvbjo6cGFyc2UoIjEu Mi4zLjQiKS5pc19ub25lKCkpOwotKyAgICAvLy8gYGBgCi0rICAgIHB1YiBmbiBwYXJzZSh2ZXJz aW9uOiAmc3RyKSAtPiBPcHRpb248VmVyc2lvbj4gewotKyAgICAgICAgbGV0IHNwbGl0cyA9IHZl cnNpb24uc3BsaXQoJy0nKQotKyAgICAgICAgICAgIC5udGgoMCkKLSsgICAgICAgICAgICAudW53 cmFwX29yKCIiKQotKyAgICAgICAgICAgIC5zcGxpdCgnLicpCi0rICAgICAgICAgICAgLm1hcCh8 c3wgcy5wYXJzZTo6PHUxNj4oKSk7Ci0rCi0rICAgICAgICBsZXQgbXV0IG1tcCA9IFswdTE2OyAz XTsKLSsgICAgICAgIGZvciAoaSwgc3BsaXQpIGluIHNwbGl0cy5lbnVtZXJhdGUoKSB7Ci0rICAg ICAgICAgICAgbW1wW2ldID0gbWF0Y2ggKGksIHNwbGl0KSB7Ci0rICAgICAgICAgICAgICAgICgz LCBfKSB8IChfLCBFcnIoXykpID0+IHJldHVybiBOb25lLAotKyAgICAgICAgICAgICAgICAoXywg T2sodikpID0+IHYsCi0rICAgICAgICAgICAgfTsKLSsgICAgICAgIH0KLSsKLSsgICAgICAgIGxl dCAobWFqLCBtaW4sIHBhdGNoKSA9IChtbXBbMF0sIG1tcFsxXSwgbW1wWzJdKTsKLSsgICAgICAg IFNvbWUoVmVyc2lvbjo6ZnJvbV9tbXAobWFqLCBtaW4sIHBhdGNoKSkKLSsgICAgfQotKwotKyAg ICAvLy8gQ3JlYXRlcyBhIGBWZXJzaW9uYCBmcm9tIGAobWFqb3IsIG1pbm9yLCBwYXRjaClgIHZl cnNpb24gY29tcG9uZW50cy4KLSsgICAgLy8vCi0rICAgIC8vLyAjIEV4YW1wbGUKLSsgICAgLy8v Ci0rICAgIC8vLyBgYGBydXN0Ci0rICAgIC8vLyB1c2UgdmVyc2lvbl9jaGVjazo6VmVyc2lvbjsK LSsgICAgLy8vCi0rICAgIC8vLyBhc3NlcnQhKFZlcnNpb246OmZyb21fbW1wKDEsIDM1LCAwKS5l eGFjdGx5KCIxLjM1LjAiKSk7Ci0rICAgIC8vLyBhc3NlcnQhKFZlcnNpb246OmZyb21fbW1wKDEs IDMzLCAwKS5leGFjdGx5KCIxLjMzLjAiKSk7Ci0rICAgIC8vLyBhc3NlcnQhKFZlcnNpb246OmZy b21fbW1wKDEsIDM1LCAxKS5leGFjdGx5KCIxLjM1LjEiKSk7Ci0rICAgIC8vLyBhc3NlcnQhKFZl cnNpb246OmZyb21fbW1wKDEsIDEzLCAyKS5leGFjdGx5KCIxLjEzLjIiKSk7Ci0rICAgIC8vLyBg YGAKLSsgICAgcHViIGZuIGZyb21fbW1wKG1ham9yOiB1MTYsIG1pbm9yOiB1MTYsIHBhdGNoOiB1 MTYpIC0+IFZlcnNpb24gewotKyAgICAgICAgVmVyc2lvbigoKG1ham9yIGFzIHU2NCkgPDwgMzIp IHwgKChtaW5vciBhcyB1NjQpIDw8IDE2KSB8IHBhdGNoIGFzIHU2NCkKLSsgICAgfQotKwotKyAg ICAvLy8gUmV0dXJucyB0aGUgYChtYWpvciwgbWlub3IsIHBhdGNoKWAgdmVyc2lvbiBjb21wb25l bnRzIG9mIGBzZWxmYC4KLSsgICAgLy8vCi0rICAgIC8vLyAjIEV4YW1wbGUKLSsgICAgLy8vCi0r ICAgIC8vLyBgYGBydXN0Ci0rICAgIC8vLyB1c2UgdmVyc2lvbl9jaGVjazo6VmVyc2lvbjsKLSsg ICAgLy8vCi0rICAgIC8vLyBhc3NlcnRfZXEhKFZlcnNpb246OnBhcnNlKCIxLjM1LjAiKS51bndy YXAoKS50b19tbXAoKSwgKDEsIDM1LCAwKSk7Ci0rICAgIC8vLyBhc3NlcnRfZXEhKFZlcnNpb246 OnBhcnNlKCIxLjMzLjAiKS51bndyYXAoKS50b19tbXAoKSwgKDEsIDMzLCAwKSk7Ci0rICAgIC8v LyBhc3NlcnRfZXEhKFZlcnNpb246OnBhcnNlKCIxLjM1LjEiKS51bndyYXAoKS50b19tbXAoKSwg KDEsIDM1LCAxKSk7Ci0rICAgIC8vLyBhc3NlcnRfZXEhKFZlcnNpb246OnBhcnNlKCIxLjEzLjIi KS51bndyYXAoKS50b19tbXAoKSwgKDEsIDEzLCAyKSk7Ci0rICAgIC8vLyBgYGAKLSsgICAgcHVi IGZuIHRvX21tcCgmc2VsZikgLT4gKHUxNiwgdTE2LCB1MTYpIHsKLSsgICAgICAgIGxldCBtYWpv ciA9IHNlbGYuMCA+PiAzMjsKLSsgICAgICAgIGxldCBtaW5vciA9IHNlbGYuMCA+PiAxNjsKLSsg ICAgICAgIGxldCBwYXRjaCA9IHNlbGYuMDsKLSsgICAgICAgIChtYWpvciBhcyB1MTYsIG1pbm9y IGFzIHUxNiwgcGF0Y2ggYXMgdTE2KQotKyAgICB9Ci0rCi0rICAgIC8vLyBSZXR1cm5zIGB0cnVl YCBpZiBgc2VsZmAgaXMgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIGB2ZXJzaW9uYC4KLSsgICAg Ly8vCi0rICAgIC8vLyBJZiBgdmVyc2lvbmAgaXMgZ3JlYXRlciB0aGFuIGBzZWxmYCwgb3IgaWYg YHZlcnNpb25gIGlzIG5vdCBhIHZhbGlkIFJ1c3QKLSsgICAgLy8vIHZlcnNpb24gc3RyaW5nLCBy ZXR1cm5zIGBmYWxzZWAuCi0rICAgIC8vLwotKyAgICAvLy8gIyBFeGFtcGxlCi0rICAgIC8vLwot KyAgICAvLy8gYGBgcnVzdAotKyAgICAvLy8gdXNlIHZlcnNpb25fY2hlY2s6OlZlcnNpb247Ci0r ICAgIC8vLwotKyAgICAvLy8gbGV0IHZlcnNpb24gPSBWZXJzaW9uOjpwYXJzZSgiMS4zNS4wIiku dW53cmFwKCk7Ci0rICAgIC8vLwotKyAgICAvLy8gYXNzZXJ0ISh2ZXJzaW9uLmF0X2xlYXN0KCIx LjMzLjAiKSk7Ci0rICAgIC8vLyBhc3NlcnQhKHZlcnNpb24uYXRfbGVhc3QoIjEuMzUuMCIpKTsK LSsgICAgLy8vIGFzc2VydCEodmVyc2lvbi5hdF9sZWFzdCgiMS4xMy4yIikpOwotKyAgICAvLy8K LSsgICAgLy8vIGFzc2VydCEoIXZlcnNpb24uYXRfbGVhc3QoIjEuMzUuMSIpKTsKLSsgICAgLy8v IGFzc2VydCEoIXZlcnNpb24uYXRfbGVhc3QoIjEuNTUuMCIpKTsKLSsgICAgLy8vCi0rICAgIC8v LyBsZXQgdmVyc2lvbiA9IFZlcnNpb246OnBhcnNlKCIxLjEyLjUiKS51bndyYXAoKTsKLSsgICAg Ly8vCi0rICAgIC8vLyBhc3NlcnQhKHZlcnNpb24uYXRfbGVhc3QoIjEuMTIuMCIpKTsKLSsgICAg Ly8vIGFzc2VydCEoIXZlcnNpb24uYXRfbGVhc3QoIjEuMzUuMCIpKTsKLSsgICAgLy8vIGBgYAot KyAgICBwdWIgZm4gYXRfbGVhc3QoJnNlbGYsIHZlcnNpb246ICZzdHIpIC0+IGJvb2wgewotKyAg ICAgICAgVmVyc2lvbjo6cGFyc2UodmVyc2lvbikKLSsgICAgICAgICAgICAubWFwKHx2ZXJzaW9u fCBzZWxmID49ICZ2ZXJzaW9uKQotKyAgICAgICAgICAgIC51bndyYXBfb3IoZmFsc2UpCi0rICAg IH0KLSsKLSsgICAgLy8vIFJldHVybnMgYHRydWVgIGlmIGBzZWxmYCBpcyBsZXNzIHRoYW4gb3Ig ZXF1YWwgdG8gYHZlcnNpb25gLgotKyAgICAvLy8KLSsgICAgLy8vIElmIGB2ZXJzaW9uYCBpcyBs ZXNzIHRoYW4gYHNlbGZgLCBvciBpZiBgdmVyc2lvbmAgaXMgbm90IGEgdmFsaWQgUnVzdAotKyAg ICAvLy8gdmVyc2lvbiBzdHJpbmcsIHJldHVybnMgYGZhbHNlYC4KLSsgICAgLy8vCi0rICAgIC8v LyAjIEV4YW1wbGUKLSsgICAgLy8vCi0rICAgIC8vLyBgYGBydXN0Ci0rICAgIC8vLyB1c2UgdmVy c2lvbl9jaGVjazo6VmVyc2lvbjsKLSsgICAgLy8vCi0rICAgIC8vLyBsZXQgdmVyc2lvbiA9IFZl cnNpb246OnBhcnNlKCIxLjM1LjAiKS51bndyYXAoKTsKLSsgICAgLy8vCi0rICAgIC8vLyBhc3Nl cnQhKHZlcnNpb24uYXRfbW9zdCgiMS4zNS4xIikpOwotKyAgICAvLy8gYXNzZXJ0ISh2ZXJzaW9u LmF0X21vc3QoIjEuNTUuMCIpKTsKLSsgICAgLy8vIGFzc2VydCEodmVyc2lvbi5hdF9tb3N0KCIx LjM1LjAiKSk7Ci0rICAgIC8vLwotKyAgICAvLy8gYXNzZXJ0ISghdmVyc2lvbi5hdF9tb3N0KCIx LjMzLjAiKSk7Ci0rICAgIC8vLyBhc3NlcnQhKCF2ZXJzaW9uLmF0X21vc3QoIjEuMTMuMiIpKTsK LSsgICAgLy8vIGBgYAotKyAgICBwdWIgZm4gYXRfbW9zdCgmc2VsZiwgdmVyc2lvbjogJnN0cikg LT4gYm9vbCB7Ci0rICAgICAgICBWZXJzaW9uOjpwYXJzZSh2ZXJzaW9uKQotKyAgICAgICAgICAg IC5tYXAofHZlcnNpb258IHNlbGYgPD0gJnZlcnNpb24pCi0rICAgICAgICAgICAgLnVud3JhcF9v cihmYWxzZSkKLSsgICAgfQotKwotKyAgICAvLy8gUmV0dXJucyBgdHJ1ZWAgaWYgYHNlbGZgIGlz IGV4YWN0bHkgZXF1YWwgdG8gYHZlcnNpb25gLgotKyAgICAvLy8KLSsgICAgLy8vIElmIGB2ZXJz aW9uYCBpcyBub3QgZXF1YWwgdG8gYHNlbGZgLCBvciBpZiBgdmVyc2lvbmAgaXMgbm90IGEgdmFs aWQgUnVzdAotKyAgICAvLy8gdmVyc2lvbiBzdHJpbmcsIHJldHVybnMgYGZhbHNlYC4KLSsgICAg Ly8vCi0rICAgIC8vLyAjIEV4YW1wbGUKLSsgICAgLy8vCi0rICAgIC8vLyBgYGBydXN0Ci0rICAg IC8vLyB1c2UgdmVyc2lvbl9jaGVjazo6VmVyc2lvbjsKLSsgICAgLy8vCi0rICAgIC8vLyBsZXQg dmVyc2lvbiA9IFZlcnNpb246OnBhcnNlKCIxLjM1LjAiKS51bndyYXAoKTsKLSsgICAgLy8vCi0r ICAgIC8vLyBhc3NlcnQhKHZlcnNpb24uZXhhY3RseSgiMS4zNS4wIikpOwotKyAgICAvLy8KLSsg ICAgLy8vIGFzc2VydCEoIXZlcnNpb24uZXhhY3RseSgiMS4zMy4wIikpOwotKyAgICAvLy8gYXNz ZXJ0ISghdmVyc2lvbi5leGFjdGx5KCIxLjM1LjEiKSk7Ci0rICAgIC8vLyBhc3NlcnQhKCF2ZXJz aW9uLmV4YWN0bHkoIjEuMTMuMiIpKTsKLSsgICAgLy8vIGBgYAotKyAgICBwdWIgZm4gZXhhY3Rs eSgmc2VsZiwgdmVyc2lvbjogJnN0cikgLT4gYm9vbCB7Ci0rICAgICAgICBWZXJzaW9uOjpwYXJz ZSh2ZXJzaW9uKQotKyAgICAgICAgICAgIC5tYXAofHZlcnNpb258IHNlbGYgPT0gJnZlcnNpb24p Ci0rICAgICAgICAgICAgLnVud3JhcF9vcihmYWxzZSkKLSsgICAgfQotK30KLSsKLStpbXBsIGZt dDo6RGlzcGxheSBmb3IgVmVyc2lvbiB7Ci0rICAgIGZuIGZtdCgmc2VsZiwgZjogJm11dCBmbXQ6 OkZvcm1hdHRlcikgLT4gZm10OjpSZXN1bHQgewotKyAgICAgICAgbGV0IChtYWpvciwgbWlub3Is IHBhdGNoKSA9IHNlbGYudG9fbW1wKCk7Ci0rICAgICAgICB3cml0ZSEoZiwgInt9Lnt9Lnt9Iiwg bWFqb3IsIG1pbm9yLCBwYXRjaCkKLSsgICAgfQotK30KLSsKLStpbXBsIGZtdDo6RGVidWcgZm9y IFZlcnNpb24gewotKyAgICBmbiBmbXQoJnNlbGYsIGY6ICZtdXQgZm10OjpGb3JtYXR0ZXIpIC0+ IGZtdDo6UmVzdWx0IHsKLSsgICAgICAgIC8vIFdlIGRvbid0IHVzZSBgZGVidWdfKmAgYmVjYXVz ZSBpdCdzIG5vdCBhdmFpbGFibGUgaW4gYDEuMC4wYC4KLSsgICAgICAgIHdyaXRlIShmLCAiVmVy c2lvbih7Oj99LCB7Oj99KSIsIHNlbGYuMCwgc2VsZi50b19tbXAoKSkKLSsgICAgfQotK30KLSsK LSsjW2NmZyh0ZXN0KV0KLSttb2QgdGVzdHMgewotKyAgICB1c2Ugc3VwZXI6OlZlcnNpb247Ci0r Ci0rICAgIG1hY3JvX3J1bGVzISBhc3NlcnRfdG9fbW1wIHsKLSsgICAgICAgIC8vIFdlIGRvbid0 IHVzZSBgLmludG86OjxPcHRpb248Xz4+YCBiZWNhdXNlIGl0J3Mgbm90IGF2YWlsYWJsZSBpbiAx LjAuCi0rICAgICAgICAvLyBXZSBkb24ndCB1c2UgdGhlIG1lc3NhZ2UgcGFydCBvZiBgYXNzZXJ0 IWAgZm9yIHRoZSBzYW1lIHJlYXNvbi4KLSsgICAgICAgICgkczpleHByLCBOb25lKSA9PiAoCi0r ICAgICAgICAgICAgYXNzZXJ0X2VxIShWZXJzaW9uOjpwYXJzZSgkcyksIE5vbmUpOwotKyAgICAg ICAgKTsKLSsgICAgICAgICgkczpleHByLCAkbW1wOmV4cHIpID0+ICgKLSsgICAgICAgICAgICBh c3NlcnRfZXEhKFZlcnNpb246OnBhcnNlKCRzKS5tYXAofHZ8IHYudG9fbW1wKCkpLCBTb21lKCRt bXApKTsKLSsgICAgICAgICkKLSsgICAgfQotKwotKyAgICBtYWNyb19ydWxlcyEgYXNzZXJ0X2Zy b21fbW1wIHsKLSsgICAgICAgICgoJHg6ZXhwciwgJHk6ZXhwciwgJHo6ZXhwcikgPT4gJHM6ZXhw cikgPT4gewotKyAgICAgICAgICAgIGFzc2VydF9lcSEoU29tZShWZXJzaW9uOjpmcm9tX21tcCgk eCwgJHksICR6KSksIFZlcnNpb246OnBhcnNlKCRzKSk7Ci0rICAgICAgICB9OwotKyAgICB9Ci0r Ci0rICAgICNbdGVzdF0KLSsgICAgZm4gdGVzdF9zdHJfdG9fbW1wKCkgewotKyAgICAgICAgYXNz ZXJ0X3RvX21tcCEoIjEiLCAoMSwgMCwgMCkpOwotKyAgICAgICAgYXNzZXJ0X3RvX21tcCEoIjEu MiIsICgxLCAyLCAwKSk7Ci0rICAgICAgICBhc3NlcnRfdG9fbW1wISgiMS4xOC4wIiwgKDEsIDE4 LCAwKSk7Ci0rICAgICAgICBhc3NlcnRfdG9fbW1wISgiMy4xOS4wIiwgKDMsIDE5LCAwKSk7Ci0r ICAgICAgICBhc3NlcnRfdG9fbW1wISgiMS4xOS4wLW5pZ2h0bHkiLCAoMSwgMTksIDApKTsKLSsg ICAgICAgIGFzc2VydF90b19tbXAhKCIxLjEyLjIzNDkiLCAoMSwgMTIsIDIzNDkpKTsKLSsgICAg ICAgIGFzc2VydF90b19tbXAhKCIwLjEyIiwgKDAsIDEyLCAwKSk7Ci0rICAgICAgICBhc3NlcnRf dG9fbW1wISgiMS4xMi41IiwgKDEsIDEyLCA1KSk7Ci0rICAgICAgICBhc3NlcnRfdG9fbW1wISgi MS4xMiIsICgxLCAxMiwgMCkpOwotKyAgICAgICAgYXNzZXJ0X3RvX21tcCEoIjEiLCAoMSwgMCwg MCkpOwotKyAgICAgICAgYXNzZXJ0X3RvX21tcCEoIjEuNC40LW5pZ2h0bHkgKGQ4NDY5M2I5MyAy MDE3LTA3LTA5KSkiLCAoMSwgNCwgNCkpOwotKyAgICAgICAgYXNzZXJ0X3RvX21tcCEoIjEuNTg4 NzkuNDQ3OC1kZXYiLCAoMSwgNTg4NzksIDQ0NzgpKTsKLSsgICAgICAgIGFzc2VydF90b19tbXAh KCIxLjU4ODc5LjQ0NzgtZGV2IChkODQ2OTNiOTMgMjAxNy0wNy0wOSkpIiwgKDEsIDU4ODc5LCA0 NDc4KSk7Ci0rICAgIH0KLSsKLSsgICAgI1t0ZXN0XQotKyAgICBmbiB0ZXN0X21hbGZvcm1lZCgp IHsKLSsgICAgICAgIGFzc2VydF90b19tbXAhKCIxLjY1NTM2LjIiLCBOb25lKTsKLSsgICAgICAg IGFzc2VydF90b19tbXAhKCItMS4yLjMiLCBOb25lKTsKLSsgICAgICAgIGFzc2VydF90b19tbXAh KCIxLiAyIiwgTm9uZSk7Ci0rICAgICAgICBhc3NlcnRfdG9fbW1wISgiIiwgTm9uZSk7Ci0rICAg ICAgICBhc3NlcnRfdG9fbW1wISgiICIsIE5vbmUpOwotKyAgICAgICAgYXNzZXJ0X3RvX21tcCEo Ii4iLCBOb25lKTsKLSsgICAgICAgIGFzc2VydF90b19tbXAhKCJvbmUiLCBOb25lKTsKLSsgICAg ICAgIGFzc2VydF90b19tbXAhKCIxLiIsIE5vbmUpOwotKyAgICAgICAgYXNzZXJ0X3RvX21tcCEo IjEuMi4zLjQuNS42IiwgTm9uZSk7Ci0rICAgIH0KLSsKLSsgICAgI1t0ZXN0XQotKyAgICBmbiB0 ZXN0X2Zyb21fbW1wKCkgewotKyAgICAgICAgYXNzZXJ0X2Zyb21fbW1wISgoMSwgMTgsIDApID0+ ICIxLjE4LjAiKTsKLSsgICAgICAgIGFzc2VydF9mcm9tX21tcCEoKDMsIDE5LCAwKSA9PiAiMy4x OS4wIik7Ci0rICAgICAgICBhc3NlcnRfZnJvbV9tbXAhKCgxLCAxOSwgMCkgPT4gIjEuMTkuMCIp OwotKyAgICAgICAgYXNzZXJ0X2Zyb21fbW1wISgoMSwgMTIsIDIzNDkpID0+ICIxLjEyLjIzNDki KTsKLSsgICAgICAgIGFzc2VydF9mcm9tX21tcCEoKDAsIDEyLCAwKSA9PiAiMC4xMiIpOwotKyAg ICAgICAgYXNzZXJ0X2Zyb21fbW1wISgoMSwgMTIsIDUpID0+ICIxLjEyLjUiKTsKLSsgICAgICAg IGFzc2VydF9mcm9tX21tcCEoKDEsIDEyLCAwKSA9PiAiMS4xMiIpOwotKyAgICAgICAgYXNzZXJ0 X2Zyb21fbW1wISgoMSwgMCwgMCkgPT4gIjEiKTsKLSsgICAgICAgIGFzc2VydF9mcm9tX21tcCEo KDEsIDQsIDQpID0+ICIxLjQuNCIpOwotKyAgICAgICAgYXNzZXJ0X2Zyb21fbW1wISgoMSwgNTg4 NzksIDQ0NzgpID0+ICIxLjU4ODc5LjQ0NzgiKTsKLSsgICAgfQotKwotKyAgICAjW3Rlc3RdCi0r ICAgIGZuIHRlc3RfY29tcGFyaXNvbnMoKSB7Ci0rICAgICAgICBsZXQgdmVyc2lvbiA9IFZlcnNp b246OnBhcnNlKCIxLjE4LjAiKS51bndyYXAoKTsKLSsgICAgICAgIGFzc2VydCEodmVyc2lvbi5l eGFjdGx5KCIxLjE4LjAiKSk7Ci0rICAgICAgICBhc3NlcnQhKHZlcnNpb24uYXRfbGVhc3QoIjEu MTIuMCIpKTsKLSsgICAgICAgIGFzc2VydCEodmVyc2lvbi5hdF9sZWFzdCgiMS4xMiIpKTsKLSsg ICAgICAgIGFzc2VydCEodmVyc2lvbi5hdF9sZWFzdCgiMSIpKTsKLSsgICAgICAgIGFzc2VydCEo dmVyc2lvbi5hdF9tb3N0KCIxLjE4LjEiKSk7Ci0rICAgICAgICBhc3NlcnQhKCF2ZXJzaW9uLmV4 YWN0bHkoIjEuMTkuMCIpKTsKLSsgICAgICAgIGFzc2VydCEoIXZlcnNpb24uZXhhY3RseSgiMS4x OC4xIikpOwotKwotKyAgICAgICAgbGV0IHZlcnNpb24gPSBWZXJzaW9uOjpwYXJzZSgiMS4yMC4w LW5pZ2h0bHkiKS51bndyYXAoKTsKLSsgICAgICAgIGFzc2VydCEodmVyc2lvbi5leGFjdGx5KCIx LjIwLjAtYmV0YSIpKTsKLSsgICAgICAgIGFzc2VydCEodmVyc2lvbi5leGFjdGx5KCIxLjIwLjAt bmlnaHRseSIpKTsKLSsgICAgICAgIGFzc2VydCEodmVyc2lvbi5leGFjdGx5KCIxLjIwLjAiKSk7 Ci0rICAgICAgICBhc3NlcnQhKCF2ZXJzaW9uLmV4YWN0bHkoIjEuMTkiKSk7Ci0rCi0rICAgICAg ICBsZXQgdmVyc2lvbiA9IFZlcnNpb246OnBhcnNlKCIxLjMiKS51bndyYXAoKTsKLSsgICAgICAg IGFzc2VydCEodmVyc2lvbi5leGFjdGx5KCIxLjMuMCIpKTsKLSsgICAgICAgIGFzc2VydCEodmVy c2lvbi5leGFjdGx5KCIxLjMuMC1zdGFibGUiKSk7Ci0rICAgICAgICBhc3NlcnQhKHZlcnNpb24u ZXhhY3RseSgiMS4zIikpOwotKyAgICAgICAgYXNzZXJ0ISghdmVyc2lvbi5leGFjdGx5KCIxLjUu MC1zdGFibGUiKSk7Ci0rCi0rICAgICAgICBsZXQgdmVyc2lvbiA9IFZlcnNpb246OnBhcnNlKCIx IikudW53cmFwKCk7Ci0rICAgICAgICBhc3NlcnQhKHZlcnNpb24uZXhhY3RseSgiMS4wLjAiKSk7 Ci0rICAgICAgICBhc3NlcnQhKHZlcnNpb24uZXhhY3RseSgiMS4wIikpOwotKyAgICAgICAgYXNz ZXJ0ISh2ZXJzaW9uLmV4YWN0bHkoIjEiKSk7Ci0rCi0rICAgICAgICBhc3NlcnQhKFZlcnNpb246 OnBhcnNlKCJvbmUudHdvLnRocmVlIikuaXNfbm9uZSgpKTsKLSsgICAgfQotKwotKyAgICBtYWNy b19ydWxlcyEgcmVmbGV4aXZlX2Rpc3BsYXkgewotKyAgICAgICAgKCRzOmV4cHIpID0+ICgKLSsg ICAgICAgICAgICBhc3NlcnRfZXEhKFZlcnNpb246OnBhcnNlKCRzKS51bndyYXAoKS50b19zdHJp bmcoKSwgJHMpOwotKyAgICAgICAgKQotKyAgICB9Ci0rCi0rICAgICNbdGVzdF0KLSsgICAgZm4g ZGlzcGxheSgpIHsKLSsgICAgICAgIHJlZmxleGl2ZV9kaXNwbGF5ISgiMS4wLjAiKTsKLSsgICAg ICAgIHJlZmxleGl2ZV9kaXNwbGF5ISgiMS4yLjMiKTsKLSsgICAgICAgIHJlZmxleGl2ZV9kaXNw bGF5ISgiMS4xMi4xNDM4Iik7Ci0rICAgICAgICByZWZsZXhpdmVfZGlzcGxheSEoIjEuNDQuMCIp OwotKyAgICAgICAgcmVmbGV4aXZlX2Rpc3BsYXkhKCIyLjQ0LjAiKTsKLSsgICAgICAgIHJlZmxl eGl2ZV9kaXNwbGF5ISgiMjM0NTkuMjg5MjMuMzQ4MyIpOwotKyAgICB9Ci0rfQoKZGlmZiAtLWdp dCBhL3NlYW1vbmtleS0yLjUzLjI0LW1vemlsbGEtMTg2NjE5MS5wYXRjaCBiL3NlYW1vbmtleS0y LjUzLjI0LW1vemlsbGEtMTg2NjE5MS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwLi41MTcxYWIxCi0tLSAvZGV2L251bGwKKysrIGIvc2VhbW9ua2V5LTIuNTMuMjQtbW96 aWxsYS0xODY2MTkxLnBhdGNoCkBAIC0wLDAgKzEsMTM4OCBAQAorCisjIEhHIGNoYW5nZXNldCBw YXRjaAorIyBVc2VyIEhlbnJpIFNpdm9uZW4gPGhzaXZvbmVuQGhzaXZvbmVuLmZpPgorIyBEYXRl IDE3Mjk4NTI4OTUgMAorIyBOb2RlIElEIDhlYzZjY2Q2NDQ3YWEyZjhlZDE3NWMxNmIyNzJhYzdk ZDQ2ZTk0NmIKKyMgUGFyZW50ICBhMGE1M2EzZmU2YjBlNDcyMDQwN2E4ZjdmZWE4NWU4Y2ZjYmJk MDkzCitCdWcgMTg2NjE5MSAtIEltcGxlbWVudCBHQjE4MDMwLTIwMjIgY2hhbmdlcyB0byB0aGUg RW5jb2RpbmcgU3RhbmRhcmQuIHI9c3VwcGx5LWNoYWluLXJldmlld2VycyxlbWsKKworRGlmZmVy ZW50aWFsIFJldmlzaW9uOiBodHRwczovL3BoYWJyaWNhdG9yLnNlcnZpY2VzLm1vemlsbGEuY29t L0QyMjI5MjgKKworZGlmZiAtLWdpdCBhL0NhcmdvLmxvY2sgYi9DYXJnby5sb2NrCistLS0gYS9D YXJnby5sb2NrCisrKysgYi9DYXJnby5sb2NrCitAQCAtNjE0LDE5ICs2MTQsMTkgQEAgdmVyc2lv biA9ICIwLjEuMCIKKyBkZXBlbmRlbmNpZXMgPSBbCisgICJlbmNvZGluZ19ycyIsCisgICJuc2Vy cm9yIiwKKyAgIm5zc3RyaW5nIiwKKyBdCisgCisgW1twYWNrYWdlXV0KKyBuYW1lID0gImVuY29k aW5nX3JzIgorLXZlcnNpb24gPSAiMC44LjM0IgorK3ZlcnNpb24gPSAiMC44LjM1IgorIHNvdXJj ZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRl eCIKKy1jaGVja3N1bSA9ICJiNDVkZTkwNGFhMGIwMTBiY2UyYWI0NTI2NGQwNjMxNjgxODQ3ZmE3 YjZmMmVhYTdkYWI3NjE5OTQzYmM0ZjU5IgorK2NoZWNrc3VtID0gIjc1MDMwZjNjNGY0NWRhZmQ3 NTg2ZGQ2NzgwOTY1YThjN2U4ZTI4NWE1ZWNiODY3MTNlNjNhNzljNWIyNzY2ZjMiCisgZGVwZW5k ZW5jaWVzID0gWworICAiYW55X2FsbF93b3JrYXJvdW5kIiwKKyAgImNmZy1pZiAxLjAuMCIsCisg XQorIAorIFtbcGFja2FnZV1dCisgbmFtZSA9ICJlbnZfbG9nZ2VyIgorIHZlcnNpb24gPSAiMC41 LjEzIgorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvLmNhcmdvLWNo ZWNrc3VtLmpzb24gYi90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzLy5jYXJnby1jaGVja3N1 bS5qc29uCistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzLy5jYXJnby1jaGVja3N1 bS5qc29uCisrKysgYi90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzLy5jYXJnby1jaGVja3N1 bS5qc29uCitAQCAtMSwxICsxLDEgQEAKKy17ImZpbGVzIjp7IkNPTlRSSUJVVElORy5tZCI6ImNh MTkwMWYzZTg1MzJmYjRjZWM4OTRmZDM2NjRmMGVhYTg5OGMwYzRiOTYxZDFiOTkyZDFlZDU0ZWFj ZjM2MmEiLCJDT1BZUklHSFQiOiIxMTc4OWY0NWJiMTgwODQxY2QzNjJhNWVlZTY3ODljNjhkZGI1 NzNhMTExMDVlMzA3NjhjMzA4YTZhZGQwMTkwIiwiQ2FyZ28udG9tbCI6IjIyYTRkMjEwYzkyZGFl OWYzMmM2OTQ0ZWYzNDBlZThmZGQwMjdmOTljMDgxNTc3ZTg5MDcxMjNlMmE5MzM4M2UiLCJJZGVh cy5tZCI6ImI3NDUyODkzZjUwMDE2Mzg2OGQ4ZGU1MmMwOWFkZGFmOTFlMTYzMjQ1NGVkMDJlODky YzQ2N2VkN2VjMzlkYmQiLCJMSUNFTlNFLUFQQUNIRSI6ImNmYzc3NDliOTZmNjNiZDMxYzNjNDJi NWM0NzFiZjc1NjgxNDA1M2U4NDdjMTBmM2ViMDAzNDE3YmM1MjNkMzAiLCJMSUNFTlNFLU1JVCI6 IjNmYTRjYTgzZGNjOTIzNzgzOWIxYmRlYjJlNmQxNmJkZmI1ZWMwYzVjZTQyYjI0Njk0ZDhiYmYw ZGNiZWY3MmMiLCJMSUNFTlNFLVdIQVRXRyI6IjgzODExODM4OGZlNWMyZTdmMWRiYmFlZWQxM2Ux YzdmM2ViZjg4YmU5MTMxOWM3YzFkNzdjMThlOTg3ZDFhNTAiLCJSRUFETUUubWQiOiIxZDA4YWVm Y2I5MmFmYTgxYjE4MTU0MDQ5YzlhYmJjYWQ0NTQwYTIzZjcxNzJlOWY5YmJlZDVhZjMzZjFhMDg3 IiwiY2kvbWlyaS5zaCI6IjQzY2I4ZDgyZjQ5ZTNiZmUyZDIyNzRiNmNjZDZmMDcxNGE0MTg4Y2Nl ZjBjZWNjMDQwODI5ODgzY2ZkYmVlMjUiLCJkb2MvQmlnNS50eHQiOiJmNzNhMmVkYzVjYjZjMmQx NDBiYTZlMDdmNDU0MmUxYzRhMjM0OTUwMzc4YWNkZTFkZjkzNDgwZjBjYTBiZTBiIiwiZG9jL0VV Qy1KUC50eHQiOiJlZTI4MThiOTA3ZDAxMzdmNDBhOWFiOWZkNTI1ZmM3MDBhNDRkYmRkZGI2Y2Yw YzE1N2E2NTY1NjZiYWU0YmYxIiwiZG9jL0VVQy1LUi50eHQiOiI3MWQ5ZTJjY2YzYjEyNGU4YmRm YjQzM2M4Y2YyNzczZmQ4NzgwNzcwMzhkMGNlYzNjNzIzN2E1MGY0YTc4YTMwIiwiZG9jL0dCSy50 eHQiOiJjMWI1MjJiNWE3OTk4ODRlNTAwMWRhNjYxZjQyYzVhOGY0ZDBhY2I5ZWYxZDc0YjIwNmYy MmI1ZjY1MzY1NjA2IiwiZG9jL0lCTTg2Ni50eHQiOiJhNWE0MzNlODA0ZDBmODNhZjc4NTAxNTE3 OWZiYzFkOWIwZWFmMWY3OTYwZWZjZDA0MDkzZTEzNmI1MWZiZDBlIiwiZG9jL0lTTy0yMDIyLUpQ LnR4dCI6ImFmODY2ODRmNWE4ZjBlMjg2OGQ3YjJjMjkyODYwMTQwYzNkMmU1NTI3NTMwY2EwOTFm MWIyODE5OGU4ZTJmZTYiLCJkb2MvSVNPLTg4NTktMTAudHh0IjoiNmQzOTQ5YWQ3YzgxY2ExNzY4 OTUxMDFlZDgxYTFkYjdkZjEwNjBkNjRlMjYyODgwYjk0YmQzMWJiMzQ0YWI0ZCIsImRvYy9JU08t ODg1OS0xMy50eHQiOiIzOTUxZGQ4OWNmOTNmNzcyOTE0ODA5MTY4M2NmODUxMWY0NTI5Mzg4Yjdk YzhkY2QwZDYyZWFlZDU1YmU5M2ZhIiwiZG9jL0lTTy04ODU5LTE0LnR4dCI6IjNkMzMwNzg0YTAz NzRmZDI1NWEzOGI0Nzk0OTY3NWNjNzE2OGM4MDA1MzA1MzRiMGEwMWNhYzZlZGM2MjNhZGMiLCJk b2MvSVNPLTg4NTktMTUudHh0IjoiMjRiMTA4NGFhYjUxMjdhODVhYWI5OTE1M2Y4NmUyNDY5NGQw YTM2MTVmNTNiNWNlMjM2ODNmOTdjZjY2YzQ3YSIsImRvYy9JU08tODg1OS0xNi50eHQiOiJjZTAy NzI1NTliOTJiYTc2ZDdhN2U0NzZmNjQyNGFlNGE1Y2M3MmU3NWIxODM2MTFiMDgzOTJlNDRhZGQ0 ZDI1IiwiZG9jL0lTTy04ODU5LTIudHh0IjoiMThjZWZmODhjMTNkMWI1YmE0NTVhMzkxOWIxZTNk ZTQ4OTA0NWM0YzNkMmRkN2U4NTI3YzEyNWM3NWQ1NGFhZCIsImRvYy9JU08tODg1OS0zLnR4dCI6 IjIxNzk4NDA0YzY4ZjRmNWRiNTkyMjMzNjJmMjQ5OTlkYTk2OTY4YzA2Mjg0MjczMjFmY2NjZTdk Mjg0OWExMzAiLCJkb2MvSVNPLTg4NTktNC50eHQiOiJkMjdmNjUyMGM2YzViZmJjYzE5MTc2Yjcx ZDA4MWNkYjNiY2NkZTE2MjJiYjNlNDIwZDU2ODBlODEyNjMyZDUzIiwiZG9jL0lTTy04ODU5LTUu dHh0IjoiYTEwZWM4ZDZlYTdhNzhhZDE1ZGE3Mjc1ZjZjYjFhMzM2NTExODUyN2UyOGY5YWY2ZDBk NTgzMDUwMTMwM2YzYSIsImRvYy9JU08tODg1OS02LnR4dCI6ImNjZGE4YTJlZmM5NjExNTMzNmJk ZDc3Nzc2NjM3Yjk3MTI0MjVlNDRmYmNmNzQ1MzUzYjkwNTdmYmVmMTQ0ZTciLCJkb2MvSVNPLTg4 NTktNy50eHQiOiIxNzkwMGZhMWYyN2E0NDU5NThmMGE3N2Q3ZDkwNTZiZTM3NWE2YmQ3ZWU0NDky YWE2ODBjN2MxNTAwYmFiODVlIiwiZG9jL0lTTy04ODU5LTgtSS50eHQiOiI4MzU3NTU1NjQ2ZDU0 MjY1YTliOWZmYTNlNjhiMDhkMTMyMzEyZjE1NjFjNjAxMDhmZjliOGIxMTY3YjZlY2YyIiwiZG9j L0lTTy04ODU5LTgudHh0IjoiNzJjZDZmM2FmYjdiNGE5YzE2YTY2YTM2MjQ3MzMxNTc3MGI3NzU1 ZDcyYzg2Yzg3MGU1MmZjM2ViYTg2YzhhZiIsImRvYy9LT0k4LVIudHh0IjoiODM5Y2YxOWEzOGRh OTk0NDg4MDA0ZWQ3ODE0YjFmNjE1MTY0MDE1NmE5YTJhZjAyYmYyZWZjYTc0NWZiNTk2NiIsImRv Yy9LT0k4LVUudHh0IjoiMGNjNzY2MjRlZDFmMDI0MTgzZTIyOThiN2UwMTk5NTdkYTJjNzBjOGNh MDZlMGZjNGU2ZjM1M2Y1MGE1MDU0ZiIsImRvYy9TaGlmdF9KSVMudHh0IjoiMzRjNDkxNDE4MThj YjlkZGJjZjU5Y2M4NThmNzhhNzliZThhZDE0OGQ1NjNmMjY0MTUxMDhhZTFmMTQ4NDQzZiIsImRv Yy9VVEYtMTZCRS50eHQiOiJlMmUyODBkOGFjYmFhNmQyYTZiMzU2OWQ2MGUxNzUwMGEyODVmMmJh YTBkZjMzNjNkZDg1NTM3Y2Q1YTFlZjhmIiwiZG9jL1VURi0xNkxFLnR4dCI6IjcwYmRjMTcwZTNm YzUyOThiYTY4ZjEwMTI1ZmI1ZWViOGIwNzcwMzZjYzk2YmI0NDE2YzRkZTM5NmY2ZDc2YzEiLCJk b2MvVVRGLTgudHh0IjoiZWE3YmFlNzQyZTYxMzAxMGNlZDAwMmNmNGI2MDFhNzM3ZDIyMDNmYWQ2 NWUxMTU2MTE0NTFiYzQ0MjhmNTQ4YSIsImRvYy9nYjE4MDMwLnR4dCI6ImRjNzEzNzhhOGYwN2Ey ZDg2NTlmNjllZTgxZmI4NzkxZmVmNTZiYTg2ZjEyNGI0Mjk5NzgyODUyMzdiYjRhN2IiLCJkb2Mv bWFjaW50b3NoLnR4dCI6IjU3NDkxZTUzODY2NzExYjQ2NzJkOWI5ZmYzNTM4MGI5ZGFjOWUwZDhl M2Q2YzIwYmRkNjE0MDYwMzY4N2MwMjMiLCJkb2MvcmVwbGFjZW1lbnQudHh0IjoiNGI2YzNiYmQ3 OTk5ZDlkNDEwOGEyODE1OTRiZDAyZDEzNjA3ZTMzNGE5NTQ2NWFmZmY4YzJjMDhkMzk1ZjBlNCIs ImRvYy93aW5kb3dzLTEyNTAudHh0IjoiNjEyOTZiYjZhMjFjZGFiNjAyMzAwZDMyZWNmYmE0MzRj YjgyZGU1YWMzYmM4OGQ1ODcxMGQyZjEyNWUyOGQzOSIsImRvYy93aW5kb3dzLTEyNTEudHh0Ijoi N2RlZWExYzYxZGVhMTQ4NWM4ZmYwMmRiMmM3ZDU3OGRiN2E5YWFiNjNhYjFjZmQwMmVjMDRiNTE1 ODY0Njg5ZSIsImRvYy93aW5kb3dzLTEyNTIudHh0IjoiOTMzZWYzYmRkZGZjZTVlZTEzMmI5ZjFh MWFhOGI0NzQyM2QyNTg3YmJlNDc1YjE5MDI4ZDBhNmQzOGUxODBiNiIsImRvYy93aW5kb3dzLTEy NTMudHh0IjoiMWEzODc0OGI4OGU5OTA3MWE1YzdiM2Q1NDU2ZWFkNGNhZWRlYWJhYjUwZDUwZDY1 OGJlMTA1YmMxMTM3MTRkZSIsImRvYy93aW5kb3dzLTEyNTQudHh0IjoiZjgzNzJmODZjNmY4ZDY0 MjU2M2NkNmRkYzAyNTI2MDU1MzI5MmEzOTQyM2RmMTY4M2E5ODY3MGJkN2JmMmI0NyIsImRvYy93 aW5kb3dzLTEyNTUudHh0IjoiNGU1ODUyNDk0NzMwMDU0ZTJkYTI1OGE3NGUxYjlkNzgwYWJiY2Rk OGNlMjJlYmMyMThjYTJlZmU5ZTkwNDkzZCIsImRvYy93aW5kb3dzLTEyNTYudHh0IjoiYzA4Nzlj NTE3MmFiZWRlYWQzMDJhNDA2ZThmNjBkOWNkOTU5ODY5NGEwZmZhNGZkMjg4ZmZlNGZlZjdiOGVh MSIsImRvYy93aW5kb3dzLTEyNTcudHh0IjoiYzI4YTBjOWY5NjRmY2IyYjQ2ZDIxZjUzN2M0MDI0 NDY1MDFhMjgwMDY3MDQ4MWQ2YWJmOWZkOWU5MDE4ZDUyMyIsImRvYy93aW5kb3dzLTEyNTgudHh0 IjoiNTAxOWFlNGQ2MTgwNWM3OWFhY2JmMTdjOTM3OTMzNDJkYmIwOThkNjVhMTgzNzc4M2JjM2Uy YzZkNmEyMzYwMiIsImRvYy93aW5kb3dzLTg3NC50eHQiOiI0ZWYwZTQ1MDFjNWZlYmE4YjE3YWVl MTgxODYwMmVkNDRiMzZjYTg0NzVkYjc3MWNlMmZjMTZkMzkyY2FiZWNjIiwiZG9jL3gtbWFjLWN5 cmlsbGljLnR4dCI6IjU4YmUxNTRkOGE4ODhjYTNkNDg0YjgzYjQ0Zjc0OTgyM2VmMzM5YWIyN2Yx NGQ5MGNhOWE4NTZmNTA1MGE4YmQiLCJkb2MveC11c2VyLWRlZmluZWQudHh0IjoiZjljZDA3YzQz MjFiZjVjZmIwYmU0YmRkZGQyNTEwNzI5OTliMDRhNmNmN2E2ZjViYzYzNzA5YTg0ZTJjMWZmYyIs ImdlbmVyYXRlLWVuY29kaW5nLWRhdGEucHkiOiJiZTk4OWRkMjVjNmI5NDZlM2U4NzQ1ZmRjOGU4 YTgwZmNmMjRiM2JlOTlhZDBiNGI3ODE1M2JhM2Y2YWI2MzEwIiwicnVzdGZtdC50b21sIjoiODVj MWEzYjQzODJmZDg5ZTk5MWNiYjgxYjcwZmI1Mjc4MDQ3MmVkYzA2NGM5NjM5NDNjZGFhYTU2ZTBh MjAzMCIsInNyYy9hc2NpaS5ycyI6IjU4OGUzOGIwMWU2NjZkNWU3NDYyNjE3ZWE3ZTkwYTEwOGQ2 MDhkZWM5ZTAxNmYzZDI3M2FjMDc0NGFmMmUwNWQiLCJzcmMvYmlnNS5ycyI6ImVjNmUyOTEzMDEx YTM4ZTlhM2U4MjVhMTczMWYxMzlhN2NhMWQ1YjI2NGZlZmFlNTFhM2NjMWE2OGE1N2NlZjkiLCJz cmMvZGF0YS5ycyI6IjhhNjE3Y2M1NzAzMjA5MmQ2NTg1MGViMjdlMDBkZTY4N2M4MGFlYTMyOTll ODM5YTFmNThiNDJkMGIzNWFiZjMiLCJzcmMvZXVjX2pwLnJzIjoiMzIwNDdmNWI1NDAxODhjNGNi MTljMDcxNjVmODQ2Yjk3ODZhMDlmMThlMzE1ZWQzZTliZGExMjkzZGFlNTJhYSIsInNyYy9ldWNf a3IucnMiOiI5YjI1YWZjNzJkOTM3ODcwMGVlY2ZhYzU4ZDU1YWQxYzU5NDZkNmNkMGNjZGUyYzI5 YzA4MjAwZWYyZGU2YmI5Iiwic3JjL2diMTgwMzAucnMiOiI4MDg1ODcxNjhkNzNmMGM4MGY4NTIw ZjBjYTliMTYxODY2ZWQyZWZlYjE3YTA1ZTg1ZmRmM2I4ZWZlN2JhMjhhIiwic3JjL2hhbmRsZXMu cnMiOiJiMDhjZWYxZjU3ODViYjZhNDgyMmYyZTg0NGM2ZGYxYjA0NmI3MzdiN2EwNzVlNDU5M2Vh YThjNDIwOGU5ZmUyIiwic3JjL2lzb18yMDIyX2pwLnJzIjoiOWJiNDg1ZTgyNTc0ZjRiN2Q0YjIz NjRmMGZmMjc2YWNiNmEwYmMxMTE3NTg0MjBhM2IwZWM1ZTA0YzE5NjY1MiIsInNyYy9saWIucnMi OiI4MzRmNDRiNjcwZWM0OGVlODJjMGUxMjIyM2QxNTY3MzEzZmRkOWY4OGJjYTVmNGIxMTdjODJj MTgyOGY1NTlmIiwic3JjL21hY3Jvcy5ycyI6IjIwMDk5N2Y4ODcwZGU4YmZkOGNkYzQ3NWU5MjEx NWRmNDIxMDhjMGRmNjYxZTQ5ZDNkMWNiYzMyMDU2ZTFkOTkiLCJzcmMvbWVtLnJzIjoiOTQ4NTcx MTM3ZDNiMTUxZGY4ZGI0ZmIyYzczM2U3NGFlNTk1ZDA1NWNkZjBhZDgzYWJjYWI5MzQxZDZhZGFi ZSIsInNyYy9yZXBsYWNlbWVudC5ycyI6Ijc2NjBiMzRhNTNmOGMxY2EyYmRmYTBlNTFlODQzZWMy ODMyNjk1MDk1MmFkOGJjOTY1NjlmZWI5M2FjNjIzMDgiLCJzcmMvc2hpZnRfamlzLnJzIjoiNjk1 MWFlNjdlMzZiMWExMmZhM2EzMDczNDk1N2Y0NDRkOGIxYjRhZTBlMmJkZTUyMDYwYjI5YmQwZjE2 ZDlkOSIsInNyYy9zaW1kX2Z1bmNzLnJzIjoiMDVjNmU3N2FmNzRiZmU3M2NkMzlhNzUyMDY3YzEx NDI1ZDZiNDZlNWRhNDE5OTEwZjU0YmY3NWE1YzAyYTk4NCIsInNyYy9zaW5nbGVfYnl0ZS5ycyI6 IjNhZDg3MTE2ZmIzMzk0MzRhNGI1OGU4ZjJiMTU0ODVmMmI2NmI5Zjc4MTRkNzA4ZjE2MTk0ZWQw OGY2ZDZjY2YiLCJzcmMvdGVzdF9kYXRhL2JpZzVfaW4udHh0IjoiNGM1YTg2OTFmOGRjNzE3MzEx ODg5YzYzODk0MDI2ZDJmYjYyNzI1YTg2YzQyMDhjYTI3NGE5Y2M4ZDQyYTUwMyIsInNyYy90ZXN0 X2RhdGEvYmlnNV9pbl9yZWYudHh0IjoiOTlkMzk5ZTE3NzUwY2Y5YzdjZjMwYmIyNTNkYmZlMzVi ODFjNGZjYmRlYWQ5M2NmYTQ4YjE0MjkyMTM0NzNjNyIsInNyYy90ZXN0X2RhdGEvYmlnNV9vdXQu dHh0IjoiNjE5M2NhOTdjMjk3YWEyMGUwOTM5NjAzOGQxOGU5MzhiYjdlYTMzMWMyNmYwZjI0NTQw OTcyOTY3MjNhMGIxMyIsInNyYy90ZXN0X2RhdGEvYmlnNV9vdXRfcmVmLnR4dCI6IjM2NTY3Njkx ZjU1N2RmMTQ0ZjZjYzUyMDAxNWE4NzAzOGRmYTE1NmYyOTZmY2YxMDNiNTZhZTlhNzE4YmUxZmMi LCJzcmMvdGVzdF9kYXRhL2V1Y19rcl9pbi50eHQiOiJjODZhNzIyNGYzMjE1ZmEwZDA0ZTY4NTYy MmE3NTJmZGM3Mjc2M2U4YWUwNzYyMzBjN2ZkNjJkZTU3ZWM0MDc0Iiwic3JjL3Rlc3RfZGF0YS9l dWNfa3JfaW5fcmVmLnR4dCI6IjFmNDE5ZjRjYTQ3ZDcwOGI1NGM3M2M0NjE1NDVhMDIyYWUyZTIw NDk4ZmRiZjgwMDVhNDgzZDc1MmEyMDQ4ODMiLCJzcmMvdGVzdF9kYXRhL2V1Y19rcl9vdXQudHh0 IjoiZTdmMzJlMDI2ZjcwYmUxZTFiNThlMDA0N2JhZjdkM2QyYzUyMDI2OWM0ZjliOTk5MmUxNThi NGRlY2IwYTFhMyIsInNyYy90ZXN0X2RhdGEvZXVjX2tyX291dF9yZWYudHh0IjoiYzk5MDc4NTc5 ODBiMjBiOGU5ZTNiNTg0NDgyZWQ2NTY3YTJiZTYxODVkNzIyMzdiNjMyMmYwNDA0OTQ0OTI0ZSIs InNyYy90ZXN0X2RhdGEvZ2IxODAzMF9pbi50eHQiOiJhYjcyMzFiMmQzZTlhZmFjZGJkN2Q3ZjNi OWU1MzYxYTdmZjlmN2UxY2ZkYjRmM2JkOTA1YjkzNjJiMzA5ZTUzIiwic3JjL3Rlc3RfZGF0YS9n YjE4MDMwX2luX3JlZi50eHQiOiJkYzUwNjk0MjFhZGNhMjA0M2M1NWY1MDEyYjU1YTc2ZmRmZjY1 MWQyMmU2ZTY5OWZkMDk3OGY4ZDU3MDY4MTVjIiwic3JjL3Rlc3RfZGF0YS9nYjE4MDMwX291dC50 eHQiOiJmMDIwOGQ1MjdmNWNhNjNkZTdkOWEwMzIzYmU4ZDVjZjEyZDhhMTA0YjI5NDNkOTJjMjcw MWYwYzMzNjRkYWMxIiwic3JjL3Rlc3RfZGF0YS9nYjE4MDMwX291dF9yZWYudHh0IjoiNjgxOWZl NDc2MjdlNGVhMDEwMjcwMDNmYzUxNGI5ZjIxYTEzMjJlNzMyZDdmMWZiOTJjYzZjNTQ1NWJjNmMw NyIsInNyYy90ZXN0X2RhdGEvaXNvXzIwMjJfanBfaW4udHh0IjoiY2QyNGJiZGNiMTgzNGUyNWRi NTQ2NDZmYmY0YzQxNTYwYTEzZGM3NTQwZjZiZTNkYmE0ZjVkOTdkNDQ1MTNhZiIsInNyYy90ZXN0 X2RhdGEvaXNvXzIwMjJfanBfaW5fcmVmLnR4dCI6IjNkYzRlNmE1ZTA2NDcxOTQyZDA4NmIxNmM5 NDQwOTQ1ZTc4NDE1ZjZmM2Y0N2U0MzcxN2U0YmMyZWFjMmNkZjUiLCJzcmMvdGVzdF9kYXRhL2lz b18yMDIyX2pwX291dC50eHQiOiI5YjZmMDE1MzI5ZGRhNmMzZjllZTVjZTZkYmQ2ZmE5Yzg5YWNj MjEyODNlODg2ODM2Yzc4YjhkODMzNDgwYzIxIiwic3JjL3Rlc3RfZGF0YS9pc29fMjAyMl9qcF9v dXRfcmVmLnR4dCI6Ijc4Y2IyNjAwOTNhMjAxMTZhZDlhNDJmNDNiMDVkMTg0OGM1YWIxMDBiNmI5 YTg1MDc0OTgwOWU5NDM4ODRiMzUiLCJzcmMvdGVzdF9kYXRhL2ppczAyMDhfaW4udHh0IjoiNmRm MzAzMDU1M2ZmYjBhNjYxNWJiMzNkYzhlYTlkY2E2ZDk2MjNhOTAyOGUyZmZlYzc1NGNlM2MzZGE4 MjRjYyIsInNyYy90ZXN0X2RhdGEvamlzMDIwOF9pbl9yZWYudHh0IjoiM2RjNGU2YTVlMDY0NzE5 NDJkMDg2YjE2Yzk0NDA5NDVlNzg0MTVmNmYzZjQ3ZTQzNzE3ZTRiYzJlYWMyY2RmNSIsInNyYy90 ZXN0X2RhdGEvamlzMDIwOF9vdXQudHh0IjoiNGVjMjQ0NzdlMTY3NWNlNzUwNzMzYmRjM2M1YWRk MWNkMjdiNmJkNGNlMWYwOTI4OTU2NDY0NmU5NjU0ZTg1NyIsInNyYy90ZXN0X2RhdGEvamlzMDIw OF9vdXRfcmVmLnR4dCI6ImMzZTFjZWY1MDMyYjJiMWQ5M2E0MDZmMzFmZjk0MGM0ZTJkZmU4ODU5 YjhiMTdjYTI3NjFmZWU3YTc1YTBlNDgiLCJzcmMvdGVzdF9kYXRhL2ppczAyMTJfaW4udHh0Ijoi YzAxMWYwZGQ3MmJkN2M4Y2Q5MjJkZjkzNzRlZjhkMjc2OWE3NzE5MDUxNGM3N2Y2YzYyYjQxNTg1 MmVlYjlmZSIsInNyYy90ZXN0X2RhdGEvamlzMDIxMl9pbl9yZWYudHh0IjoiN2Q5NDU4YjNkMmY3 M2U3MDkyYTdmNTA1YzA4Y2UxZDIzM2RkZTE4YWE2NzlmYmNmOTg4OTI1NjIzOWNjOWUwNiIsInNy Yy90ZXN0X2RhdGEvc2hpZnRfamlzX2luLnR4dCI6IjAyZTM4OWNjZWYwZGQyMTIyZTYzZjUwMzg5 OTQwMmNiN2Y3OTc5MTJjMjQ0NGNjODBhYjkzMTMxMTE2YzU1MjQiLCJzcmMvdGVzdF9kYXRhL3No aWZ0X2ppc19pbl9yZWYudHh0IjoiNTEyZjk4NTk1MGNhOTAyZTY0M2M4ODY4MmRiYTk3MDhiN2Mz OGQzYzVlYzI5MjUxNjhhYjAwYWM5NGFiMTlmOSIsInNyYy90ZXN0X2RhdGEvc2hpZnRfamlzX291 dC50eHQiOiI1ZmJjNDRkYTdiZjYzOWJmNmNmZTBmYTFmZDNlYmE3MTAyYjg4ZjgxOTE5YzllYTk5 MTMwMjcxMmY2OTQyNmZiIiwic3JjL3Rlc3RfZGF0YS9zaGlmdF9qaXNfb3V0X3JlZi50eHQiOiI0 NjYzMjJjNmZlZDgyODZjNjQ1ODI3MzE3NTUyOTBjMjI5NjUwOGVmZGQyNTg4MjZlNjI3OTY4NjY0 OWI0ODFmIiwic3JjL3Rlc3RfbGFiZWxzX25hbWVzLnJzIjoiMjNhMmUxMWIwMmIzYjhkMTVmYjU2 MTNhNjI1ZTNlZGIyYzYxZTcwZTNjNTgxYWJmZDYzODcxOWE0MDg4MjAwZCIsInNyYy90ZXN0aW5n LnJzIjoiZjU5ZTY3MWU5NWE5OGE1NmY2YjU3M2U4YzZiZTRkNzFlNjcwYmY1MmY3ZTIwZWIxNjA1 ZDk5MGFhZmExODk0ZSIsInNyYy91dGZfMTYucnMiOiJjMDcxYTE0N2ZhZDM4ZDc1MGMyYzI0N2Ux NDFiNzZiOTI5YTQ4MDA3Yjk5ZjI2YjI5MjJiOWNhZWNkYWYyZjI1Iiwic3JjL3V0Zl84LnJzIjoi N2I3ZDg4N2IzNDdmMWFlZmEwMzI0NmIwMjhhMzZhNzI3NThhNGNlNzZjMjhmM2I0NWMxOTQ2Nzg1 MWFhNzgzOSIsInNyYy92YXJpYW50LnJzIjoiMWZhYjUzNjM1ODhhMTU1NGE3MTY5ZGU4NzMxZWE5 Y2RlZDdhYzYzZWEzNWNhYWJkZDFjMjdhOGRkZTY4YzI3YiIsInNyYy94X3VzZXJfZGVmaW5lZC5y cyI6Ijk0NTZjYTQ2MTY4ZWY4NmM5ODM5OWEyNTM2ZjU3N2VmN2JlM2NkZGU5MGMwYzUxMzkyZDhh YzQ4NTE5ZDNmYWUifSwicGFja2FnZSI6ImI0NWRlOTA0YWEwYjAxMGJjZTJhYjQ1MjY0ZDA2MzE2 ODE4NDdmYTdiNmYyZWFhN2RhYjc2MTk5NDNiYzRmNTkifQorXCBObyBuZXdsaW5lIGF0IGVuZCBv ZiBmaWxlCisreyJmaWxlcyI6eyJDT05UUklCVVRJTkcubWQiOiJjYTE5MDFmM2U4NTMyZmI0Y2Vj ODk0ZmQzNjY0ZjBlYWE4OThjMGM0Yjk2MWQxYjk5MmQxZWQ1NGVhY2YzNjJhIiwiQ09QWVJJR0hU IjoiMTE3ODlmNDViYjE4MDg0MWNkMzYyYTVlZWU2Nzg5YzY4ZGRiNTczYTExMTA1ZTMwNzY4YzMw OGE2YWRkMDE5MCIsIkNhcmdvLnRvbWwiOiJkNzQwNWQyYmNmOTljZjk3MjkwNzU0NzNjNDVmNjc3 NjMwZjRjMTk0N2M4YmE5NzU3ZGI2MDdmMjAyNWE3ZGEyIiwiSWRlYXMubWQiOiJiNzQ1Mjg5M2Y1 MDAxNjM4NjhkOGRlNTJjMDlhZGRhZjkxZTE2MzI0NTRlZDAyZTg5MmM0NjdlZDdlYzM5ZGJkIiwi TElDRU5TRS1BUEFDSEUiOiJjZmM3NzQ5Yjk2ZjYzYmQzMWMzYzQyYjVjNDcxYmY3NTY4MTQwNTNl ODQ3YzEwZjNlYjAwMzQxN2JjNTIzZDMwIiwiTElDRU5TRS1NSVQiOiIzZmE0Y2E4M2RjYzkyMzc4 MzliMWJkZWIyZTZkMTZiZGZiNWVjMGM1Y2U0MmIyNDY5NGQ4YmJmMGRjYmVmNzJjIiwiTElDRU5T RS1XSEFUV0ciOiI4MzgxMTgzODhmZTVjMmU3ZjFkYmJhZWVkMTNlMWM3ZjNlYmY4OGJlOTEzMTlj N2MxZDc3YzE4ZTk4N2QxYTUwIiwiUkVBRE1FLm1kIjoiOTgyNjEzN2VkNDI5N2JlM2IyMDE5Yjc0 YThmNjExMWE3OTZmZjUwN2JkZTQxZGYyZjIwNzEyNTM5NzA0YjllOSIsImNpL21pcmkuc2giOiI0 M2NiOGQ4MmY0OWUzYmZlMmQyMjc0YjZjY2Q2ZjA3MTRhNDE4OGNjZWYwY2VjYzA0MDgyOTg4M2Nm ZGJlZTI1IiwiZG9jL0JpZzUudHh0IjoiZjczYTJlZGM1Y2I2YzJkMTQwYmE2ZTA3ZjQ1NDJlMWM0 YTIzNDk1MDM3OGFjZGUxZGY5MzQ4MGYwY2EwYmUwYiIsImRvYy9FVUMtSlAudHh0IjoiZWUyODE4 YjkwN2QwMTM3ZjQwYTlhYjlmZDUyNWZjNzAwYTQ0ZGJkZGRiNmNmMGMxNTdhNjU2NTY2YmFlNGJm MSIsImRvYy9FVUMtS1IudHh0IjoiNzFkOWUyY2NmM2IxMjRlOGJkZmI0MzNjOGNmMjc3M2ZkODc4 MDc3MDM4ZDBjZWMzYzcyMzdhNTBmNGE3OGEzMCIsImRvYy9HQksudHh0IjoiODIyOWU1OTA3NmQ4 YmRkYjAxODY1Y2RjZjZhZmRhMzUzMzIzOGQ3YzIzZDk3Zjk4ODIwZjllM2IyZDEzNTA1ZCIsImRv Yy9JQk04NjYudHh0IjoiYTVhNDMzZTgwNGQwZjgzYWY3ODUwMTUxNzlmYmMxZDliMGVhZjFmNzk2 MGVmY2QwNDA5M2UxMzZiNTFmYmQwZSIsImRvYy9JU08tMjAyMi1KUC50eHQiOiJhZjg2Njg0ZjVh OGYwZTI4NjhkN2IyYzI5Mjg2MDE0MGMzZDJlNTUyNzUzMGNhMDkxZjFiMjgxOThlOGUyZmU2Iiwi ZG9jL0lTTy04ODU5LTEwLnR4dCI6IjZkMzk0OWFkN2M4MWNhMTc2ODk1MTAxZWQ4MWExZGI3ZGYx MDYwZDY0ZTI2Mjg4MGI5NGJkMzFiYjM0NGFiNGQiLCJkb2MvSVNPLTg4NTktMTMudHh0IjoiMzk1 MWRkODljZjkzZjc3MjkxNDgwOTE2ODNjZjg1MTFmNDUyOTM4OGI3ZGM4ZGNkMGQ2MmVhZWQ1NWJl OTNmYSIsImRvYy9JU08tODg1OS0xNC50eHQiOiIzZDMzMDc4NGEwMzc0ZmQyNTVhMzhiNDc5NDk2 NzVjYzcxNjhjODAwNTMwNTM0YjBhMDFjYWM2ZWRjNjIzYWRjIiwiZG9jL0lTTy04ODU5LTE1LnR4 dCI6IjI0YjEwODRhYWI1MTI3YTg1YWFiOTkxNTNmODZlMjQ2OTRkMGEzNjE1ZjUzYjVjZTIzNjgz Zjk3Y2Y2NmM0N2EiLCJkb2MvSVNPLTg4NTktMTYudHh0IjoiY2UwMjcyNTU5YjkyYmE3NmQ3YTdl NDc2ZjY0MjRhZTRhNWNjNzJlNzViMTgzNjExYjA4MzkyZTQ0YWRkNGQyNSIsImRvYy9JU08tODg1 OS0yLnR4dCI6IjE4Y2VmZjg4YzEzZDFiNWJhNDU1YTM5MTliMWUzZGU0ODkwNDVjNGMzZDJkZDdl ODUyN2MxMjVjNzVkNTRhYWQiLCJkb2MvSVNPLTg4NTktMy50eHQiOiIyMTc5ODQwNGM2OGY0ZjVk YjU5MjIzMzYyZjI0OTk5ZGE5Njk2OGMwNjI4NDI3MzIxZmNjY2U3ZDI4NDlhMTMwIiwiZG9jL0lT Ty04ODU5LTQudHh0IjoiZDI3ZjY1MjBjNmM1YmZiY2MxOTE3NmI3MWQwODFjZGIzYmNjZGUxNjIy YmIzZTQyMGQ1NjgwZTgxMjYzMmQ1MyIsImRvYy9JU08tODg1OS01LnR4dCI6ImExMGVjOGQ2ZWE3 YTc4YWQxNWRhNzI3NWY2Y2IxYTMzNjUxMTg1MjdlMjhmOWFmNmQwZDU4MzA1MDEzMDNmM2EiLCJk b2MvSVNPLTg4NTktNi50eHQiOiJjY2RhOGEyZWZjOTYxMTUzMzZiZGQ3Nzc3NjYzN2I5NzEyNDI1 ZTQ0ZmJjZjc0NTM1M2I5MDU3ZmJlZjE0NGU3IiwiZG9jL0lTTy04ODU5LTcudHh0IjoiMTc5MDBm YTFmMjdhNDQ1OTU4ZjBhNzdkN2Q5MDU2YmUzNzVhNmJkN2VlNDQ5MmFhNjgwYzdjMTUwMGJhYjg1 ZSIsImRvYy9JU08tODg1OS04LUkudHh0IjoiODM1NzU1NTY0NmQ1NDI2NWE5YjlmZmEzZTY4YjA4 ZDEzMjMxMmYxNTYxYzYwMTA4ZmY5YjhiMTE2N2I2ZWNmMiIsImRvYy9JU08tODg1OS04LnR4dCI6 IjcyY2Q2ZjNhZmI3YjRhOWMxNmE2NmEzNjI0NzMzMTU3NzBiNzc1NWQ3MmM4NmM4NzBlNTJmYzNl YmE4NmM4YWYiLCJkb2MvS09JOC1SLnR4dCI6IjgzOWNmMTlhMzhkYTk5NDQ4ODAwNGVkNzgxNGIx ZjYxNTE2NDAxNTZhOWEyYWYwMmJmMmVmY2E3NDVmYjU5NjYiLCJkb2MvS09JOC1VLnR4dCI6IjBj Yzc2NjI0ZWQxZjAyNDE4M2UyMjk4YjdlMDE5OTU3ZGEyYzcwYzhjYTA2ZTBmYzRlNmYzNTNmNTBh NTA1NGYiLCJkb2MvU2hpZnRfSklTLnR4dCI6IjM0YzQ5MTQxODE4Y2I5ZGRiY2Y1OWNjODU4Zjc4 YTc5YmU4YWQxNDhkNTYzZjI2NDE1MTA4YWUxZjE0ODQ0M2YiLCJkb2MvVVRGLTE2QkUudHh0Ijoi ZTJlMjgwZDhhY2JhYTZkMmE2YjM1NjlkNjBlMTc1MDBhMjg1ZjJiYWEwZGYzMzYzZGQ4NTUzN2Nk NWExZWY4ZiIsImRvYy9VVEYtMTZMRS50eHQiOiI3MGJkYzE3MGUzZmM1Mjk4YmE2OGYxMDEyNWZi NWVlYjhiMDc3MDM2Y2M5NmJiNDQxNmM0ZGUzOTZmNmQ3NmMxIiwiZG9jL1VURi04LnR4dCI6ImVh N2JhZTc0MmU2MTMwMTBjZWQwMDJjZjRiNjAxYTczN2QyMjAzZmFkNjVlMTE1NjExNDUxYmM0NDI4 ZjU0OGEiLCJkb2MvZ2IxODAzMC50eHQiOiI2N2EwMTY2NWM3NTUwNTMzMGIwZmU1YjhkODhkNTg3 M2Q4Y2U1NTVhMTQ1Yzc3ZGNhMDRhNDY3ZmEyNjgwNzQ0IiwiZG9jL21hY2ludG9zaC50eHQiOiI1 NzQ5MWU1Mzg2NjcxMWI0NjcyZDliOWZmMzUzODBiOWRhYzllMGQ4ZTNkNmMyMGJkZDYxNDA2MDM2 ODdjMDIzIiwiZG9jL3JlcGxhY2VtZW50LnR4dCI6IjRiNmMzYmJkNzk5OWQ5ZDQxMDhhMjgxNTk0 YmQwMmQxMzYwN2UzMzRhOTU0NjVhZmZmOGMyYzA4ZDM5NWYwZTQiLCJkb2Mvd2luZG93cy0xMjUw LnR4dCI6IjYxMjk2YmI2YTIxY2RhYjYwMjMwMGQzMmVjZmJhNDM0Y2I4MmRlNWFjM2JjODhkNTg3 MTBkMmYxMjVlMjhkMzkiLCJkb2Mvd2luZG93cy0xMjUxLnR4dCI6IjdkZWVhMWM2MWRlYTE0ODVj OGZmMDJkYjJjN2Q1NzhkYjdhOWFhYjYzYWIxY2ZkMDJlYzA0YjUxNTg2NDY4OWUiLCJkb2Mvd2lu ZG93cy0xMjUyLnR4dCI6IjkzM2VmM2JkZGRmY2U1ZWUxMzJiOWYxYTFhYThiNDc0MjNkMjU4N2Ji ZTQ3NWIxOTAyOGQwYTZkMzhlMTgwYjYiLCJkb2Mvd2luZG93cy0xMjUzLnR4dCI6IjFhMzg3NDhi ODhlOTkwNzFhNWM3YjNkNTQ1NmVhZDRjYWVkZWFiYWI1MGQ1MGQ2NThiZTEwNWJjMTEzNzE0ZGUi LCJkb2Mvd2luZG93cy0xMjU0LnR4dCI6ImY4MzcyZjg2YzZmOGQ2NDI1NjNjZDZkZGMwMjUyNjA1 NTMyOTJhMzk0MjNkZjE2ODNhOTg2NzBiZDdiZjJiNDciLCJkb2Mvd2luZG93cy0xMjU1LnR4dCI6 IjRlNTg1MjQ5NDczMDA1NGUyZGEyNThhNzRlMWI5ZDc4MGFiYmNkZDhjZTIyZWJjMjE4Y2EyZWZl OWU5MDQ5M2QiLCJkb2Mvd2luZG93cy0xMjU2LnR4dCI6ImMwODc5YzUxNzJhYmVkZWFkMzAyYTQw NmU4ZjYwZDljZDk1OTg2OTRhMGZmYTRmZDI4OGZmZTRmZWY3YjhlYTEiLCJkb2Mvd2luZG93cy0x MjU3LnR4dCI6ImMyOGEwYzlmOTY0ZmNiMmI0NmQyMWY1MzdjNDAyNDQ2NTAxYTI4MDA2NzA0ODFk NmFiZjlmZDllOTAxOGQ1MjMiLCJkb2Mvd2luZG93cy0xMjU4LnR4dCI6IjUwMTlhZTRkNjE4MDVj NzlhYWNiZjE3YzkzNzkzMzQyZGJiMDk4ZDY1YTE4Mzc3ODNiYzNlMmM2ZDZhMjM2MDIiLCJkb2Mv d2luZG93cy04NzQudHh0IjoiNGVmMGU0NTAxYzVmZWJhOGIxN2FlZTE4MTg2MDJlZDQ0YjM2Y2E4 NDc1ZGI3NzFjZTJmYzE2ZDM5MmNhYmVjYyIsImRvYy94LW1hYy1jeXJpbGxpYy50eHQiOiI1OGJl MTU0ZDhhODg4Y2EzZDQ4NGI4M2I0NGY3NDk4MjNlZjMzOWFiMjdmMTRkOTBjYTlhODU2ZjUwNTBh OGJkIiwiZG9jL3gtdXNlci1kZWZpbmVkLnR4dCI6ImY5Y2QwN2M0MzIxYmY1Y2ZiMGJlNGJkZGRk MjUxMDcyOTk5YjA0YTZjZjdhNmY1YmM2MzcwOWE4NGUyYzFmZmMiLCJnZW5lcmF0ZS1lbmNvZGlu Zy1kYXRhLnB5IjoiNmYzNGE4NDU3ODVmNTM0MjVhY2NmMzA3NTllZGM1NjY4NzNmY2IwYzIxODg2 NDhlMDdiMDljODk4ZjM5ZGRkYiIsInJ1c3RmbXQudG9tbCI6Ijg1YzFhM2I0MzgyZmQ4OWU5OTFj YmI4MWI3MGZiNTI3ODA0NzJlZGMwNjRjOTYzOTQzY2RhYWE1NmUwYTIwMzAiLCJzcmMvYXNjaWku cnMiOiI1ODhlMzhiMDFlNjY2ZDVlNzQ2MjYxN2VhN2U5MGExMDhkNjA4ZGVjOWUwMTZmM2QyNzNh YzA3NDRhZjJlMDVkIiwic3JjL2JpZzUucnMiOiJlYzZlMjkxMzAxMWEzOGU5YTNlODI1YTE3MzFm MTM5YTdjYTFkNWIyNjRmZWZhZTUxYTNjYzFhNjhhNTdjZWY5Iiwic3JjL2RhdGEucnMiOiJiOTNm MzQwMjVmZTVjNmE4NWI0YjlmMDAzN2JmNTg5NjEzNTJiZjE5YzgzZjkxYjA5YjM1ZWI4NDk1NjI1 ZWVjIiwic3JjL2V1Y19qcC5ycyI6IjMyMDQ3ZjViNTQwMTg4YzRjYjE5YzA3MTY1Zjg0NmI5Nzg2 YTA5ZjE4ZTMxNWVkM2U5YmRhMTI5M2RhZTUyYWEiLCJzcmMvZXVjX2tyLnJzIjoiOWIyNWFmYzcy ZDkzNzg3MDBlZWNmYWM1OGQ1NWFkMWM1OTQ2ZDZjZDBjY2RlMmMyOWMwODIwMGVmMmRlNmJiOSIs InNyYy9nYjE4MDMwLnJzIjoiODljZDZhZTIyNDdhZGQzZjM0NzFhNjk5YmMxMjExM2E5YWUyZjZi OTFhNTIyM2FiYmYxNWI2OGExMzUzN2RjZCIsInNyYy9nYjE4MDMwXzIwMjIucnMiOiIzYzJlMDY0 OTJjNWUwMGZjZDM5NTE1ZTRhZjRjNTYwZDhjZWU1YzMxZTdhN2UzODhkYjY4MmJjOWVlMzNlZTMy Iiwic3JjL2hhbmRsZXMucnMiOiJiMDhjZWYxZjU3ODViYjZhNDgyMmYyZTg0NGM2ZGYxYjA0NmI3 MzdiN2EwNzVlNDU5M2VhYThjNDIwOGU5ZmUyIiwic3JjL2lzb18yMDIyX2pwLnJzIjoiOWJiNDg1 ZTgyNTc0ZjRiN2Q0YjIzNjRmMGZmMjc2YWNiNmEwYmMxMTE3NTg0MjBhM2IwZWM1ZTA0YzE5NjY1 MiIsInNyYy9saWIucnMiOiJjNGQ5ZmExYzQzMTA1ZTIzMTAxMjJmMWI5MTk3MTI1MDMyZTYwN2Zl NmY3OWJjMjI3NjliMzQwZGU3NmUyNDMwIiwic3JjL21hY3Jvcy5ycyI6IjIwMDk5N2Y4ODcwZGU4 YmZkOGNkYzQ3NWU5MjExNWRmNDIxMDhjMGRmNjYxZTQ5ZDNkMWNiYzMyMDU2ZTFkOTkiLCJzcmMv bWVtLnJzIjoiOTQ4NTcxMTM3ZDNiMTUxZGY4ZGI0ZmIyYzczM2U3NGFlNTk1ZDA1NWNkZjBhZDgz YWJjYWI5MzQxZDZhZGFiZSIsInNyYy9yZXBsYWNlbWVudC5ycyI6Ijc2NjBiMzRhNTNmOGMxY2Ey YmRmYTBlNTFlODQzZWMyODMyNjk1MDk1MmFkOGJjOTY1NjlmZWI5M2FjNjIzMDgiLCJzcmMvc2hp ZnRfamlzLnJzIjoiNjk1MWFlNjdlMzZiMWExMmZhM2EzMDczNDk1N2Y0NDRkOGIxYjRhZTBlMmJk ZTUyMDYwYjI5YmQwZjE2ZDlkOSIsInNyYy9zaW1kX2Z1bmNzLnJzIjoiMDVjNmU3N2FmNzRiZmU3 M2NkMzlhNzUyMDY3YzExNDI1ZDZiNDZlNWRhNDE5OTEwZjU0YmY3NWE1YzAyYTk4NCIsInNyYy9z aW5nbGVfYnl0ZS5ycyI6IjNhZDg3MTE2ZmIzMzk0MzRhNGI1OGU4ZjJiMTU0ODVmMmI2NmI5Zjc4 MTRkNzA4ZjE2MTk0ZWQwOGY2ZDZjY2YiLCJzcmMvdGVzdF9kYXRhL2JpZzVfaW4udHh0IjoiYTVh ZTI5MDc4NjYxMGM3ZmFjZGJiMWQwNmJlNjgxNWU4YmI4MWQ2OGRmYTczODBlZGM3ZGRiNmI4Yzdl NDEyZSIsInNyYy90ZXN0X2RhdGEvYmlnNV9pbl9yZWYudHh0IjoiNTI3MzNkOTk3MGZiODk4N2Yw MTRmYTBlYWMyNzkyMjUwMTIzY2Y1ODNiMzYzYmViMmNlN2IzYzU1ZTNkYzU1NSIsInNyYy90ZXN0 X2RhdGEvYmlnNV9vdXQudHh0IjoiNTc0MjBjYTQxYTY2OWM5NDk3MzhjODRjYWI2MjAwMjA5NTk1 NzJkMmVlOTdiNGUwNTk0MDViZmUyNmE3OWI2ZCIsInNyYy90ZXN0X2RhdGEvYmlnNV9vdXRfcmVm LnR4dCI6IjAwZTVmNjdjMjIyZGQ1Y2QzYmIxNzM5Mjc2OTEwYjhmMDAzMmY0NTRjYmE3Y2Y3YzNl YWEyNTVhNTY0MTg4ZDAiLCJzcmMvdGVzdF9kYXRhL2V1Y19rcl9pbi50eHQiOiIyMTUzNGVjODdl ODJkNzg1ZDEyOGY5ODA5MDJkMTNmYWI2ZDlkZWExNWM2OWE5OTFmNDA5ZDliMGFmZDFjODUyIiwi c3JjL3Rlc3RfZGF0YS9ldWNfa3JfaW5fcmVmLnR4dCI6ImIzMDA5ZTZhOTQ5NjdkZjFmMTEzNWM2 NmYwMDU2MTBiZWJhZDY2NjZkNjM0YWVjNzJkMmFkNzdjMzIxMWJkYTMiLCJzcmMvdGVzdF9kYXRh L2V1Y19rcl9vdXQudHh0IjoiMjAyMDViMGI1YmU0ZjU3OTI3MTE5M2I1YmZiYzU0OWE2MWE5ZmQ1 MjE3YzMzZWVjZmE2MTc4NGEzZmZlMmU5ZCIsInNyYy90ZXN0X2RhdGEvZXVjX2tyX291dF9yZWYu dHh0IjoiYjVmNTY2MjM3ZjhkNGVmNGQwM2FkMjYxMzVjYTk3ZGZkNzM5ODYwOGE4MjE2NWJkNDg1 M2I1MTM0YWIyMmNiNSIsInNyYy90ZXN0X2RhdGEvZ2IxODAzMF9pbi50eHQiOiIwZGQxZmJmMDM2 MDkzMGRhYWZkY2U3ZTY3NjE4NTIwMDVhOGY5MmY3OTEwMTgwZGYxOWEwNzBiNmMzYzU5ZGVlIiwi c3JjL3Rlc3RfZGF0YS9nYjE4MDMwX2luX3JlZi50eHQiOiJmM2VhZWExMTE1ODU3MDU0Y2YzMGY4 YmExODIxOWU3MjM3N2YyYTRhZmQ4NDhjY2YyMjM3NzBkNzVhYTQyNTFkIiwic3JjL3Rlc3RfZGF0 YS9nYjE4MDMwX291dC50eHQiOiI3MTg0ZmU5NTkyNjA5NTk3ZDU1YzI3MzM2MDZiNGM0YjFhMThi NzliMjQ1MzNlMWExNmExNGZmOTJlN2QyYjU1Iiwic3JjL3Rlc3RfZGF0YS9nYjE4MDMwX291dF9y ZWYudHh0IjoiMjNiYjg1MGRkYzY5YWFmMWJkZmVhYmUwNWExMmQ5M2Y2MTRlNTU2MGRhYzg3OWQ1 ZjAyOTI5ZWU0YTdjMDZjNSIsInNyYy90ZXN0X2RhdGEvaXNvXzIwMjJfanBfaW4udHh0IjoiOThm YjgyMzUzMGEzMGE3NmViMGJhN2FiNmFjNzk2OTU5ZTg4NjljMWVjMTQzZjAxOGExOTY0NTgxYWU4 MTNhYSIsInNyYy90ZXN0X2RhdGEvaXNvXzIwMjJfanBfaW5fcmVmLnR4dCI6ImRmODIxNjZkMmUw MWJiNDQ2MjExZDdlNDZmMzNiNDdkOTNhYzFiYWZlYWUyZWQ4ODBlZTkzYzQwOTZkMTEyMTAiLCJz cmMvdGVzdF9kYXRhL2lzb18yMDIyX2pwX291dC50eHQiOiJiZWY4ZWI0ODA0ZWQwODQzYjlkZmZk ZDFkMTY4NzM4NjM1Y2M3N2Y4ZDA5MjliZWIyNTMyYjY4NjMxOGRkYWU2Iiwic3JjL3Rlc3RfZGF0 YS9pc29fMjAyMl9qcF9vdXRfcmVmLnR4dCI6ImIyMjFiMzZiMmJjZTQ5ZDQ5YjYyMGRjOGJhODBk NzdiYWM3NGU4NjYwYTg2YTExNjI4ZTc5YjY3ZjFkOTg5NjQiLCJzcmMvdGVzdF9kYXRhL2ppczAy MDhfaW4udHh0IjoiM2MxYTdhYWFkYTAwZDZmZmY0MWU2MGJkNzU4OWQ3YWU5NGFmYWY1NjI3NTli MTE2OTU4YjFkODQ3MTFkMTdiNiIsInNyYy90ZXN0X2RhdGEvamlzMDIwOF9pbl9yZWYudHh0Ijoi ZGY4MjE2NmQyZTAxYmI0NDYyMTFkN2U0NmYzM2I0N2Q5M2FjMWJhZmVhZTJlZDg4MGVlOTNjNDA5 NmQxMTIxMCIsInNyYy90ZXN0X2RhdGEvamlzMDIwOF9vdXQudHh0IjoiYTYxODhiNjdlYjAwYmE5 ODBjYjgzMDU2MTg2Yzg5YmNkZGRjMWIwMjEwYWY5YWZhNzhlZDFjOWI3YTA5ODk1MCIsInNyYy90 ZXN0X2RhdGEvamlzMDIwOF9vdXRfcmVmLnR4dCI6ImU3NWE5ODZmZTVlNzhlNjRiZjhmYWZkNzM5 MmFlOTZlZTBjYjBhNGIyZTdlZjJmZTcyMmIzY2FhY2YzZTJmNzAiLCJzcmMvdGVzdF9kYXRhL2pp czAyMTJfaW4udHh0IjoiOWVkYTc2NjAwMjY0NmEyNzMxMDQ1N2M2NjE4MzI0MjliZWZmOTA4OWQy NzAzMzU1ODEyYzRjYWMzMGQ4MDBiNSIsInNyYy90ZXN0X2RhdGEvamlzMDIxMl9pbl9yZWYudHh0 IjoiZmNmNzRjNThkMmNiZTliM2YzZGI0ZmE5ZWZmMjZlMDlmNWU5NjQ0MDk3Yzc4NjE0YzAzMTc3 ZTkzODk4OGQwMyIsInNyYy90ZXN0X2RhdGEvc2hpZnRfamlzX2luLnR4dCI6ImU2NWRmNzQ2YmU5 MDM1OWU3MDQyMjg2ODUyMmE3YWEzZThlZDIwZTBkNGMwY2Y5OTk1ZDlkZTI0OGJmOTMzODgiLCJz cmMvdGVzdF9kYXRhL3NoaWZ0X2ppc19pbl9yZWYudHh0IjoiMTNiMTVhZWQ2NGU5ZTdjYjM1ZTZh NzQwYjY3NDEzZjBjMjg1ZmRhOTQ0ZjQ4MTRkNDVhNzYxOWVhMzM4ZmI1ZSIsInNyYy90ZXN0X2Rh dGEvc2hpZnRfamlzX291dC50eHQiOiIxOTJkMGE0YThjZTVkMGY5MDRjNWNiMjgzZGZiOTc0NTc3 ZWU2NjdjZjFlNzE5NTVhNmRkNmFlY2UyYjM1NGVmIiwic3JjL3Rlc3RfZGF0YS9zaGlmdF9qaXNf b3V0X3JlZi50eHQiOiJjYjZkNTBiMGMxMWJhZDFkMWYxZmNjMDJkNzc5NjcyYThiOWEyNTA5Y2Ji YWZkYzYzOTJhY2ViNDljOGI0MjY4Iiwic3JjL3Rlc3RfbGFiZWxzX25hbWVzLnJzIjoiMjNhMmUx MWIwMmIzYjhkMTVmYjU2MTNhNjI1ZTNlZGIyYzYxZTcwZTNjNTgxYWJmZDYzODcxOWE0MDg4MjAw ZCIsInNyYy90ZXN0aW5nLnJzIjoiZjU5ZTY3MWU5NWE5OGE1NmY2YjU3M2U4YzZiZTRkNzFlNjcw YmY1MmY3ZTIwZWIxNjA1ZDk5MGFhZmExODk0ZSIsInNyYy91dGZfMTYucnMiOiJjMDcxYTE0N2Zh ZDM4ZDc1MGMyYzI0N2UxNDFiNzZiOTI5YTQ4MDA3Yjk5ZjI2YjI5MjJiOWNhZWNkYWYyZjI1Iiwi c3JjL3V0Zl84LnJzIjoiN2I3ZDg4N2IzNDdmMWFlZmEwMzI0NmIwMjhhMzZhNzI3NThhNGNlNzZj MjhmM2I0NWMxOTQ2Nzg1MWFhNzgzOSIsInNyYy92YXJpYW50LnJzIjoiMWZhYjUzNjM1ODhhMTU1 NGE3MTY5ZGU4NzMxZWE5Y2RlZDdhYzYzZWEzNWNhYWJkZDFjMjdhOGRkZTY4YzI3YiIsInNyYy94 X3VzZXJfZGVmaW5lZC5ycyI6Ijk0NTZjYTQ2MTY4ZWY4NmM5ODM5OWEyNTM2ZjU3N2VmN2JlM2Nk ZGU5MGMwYzUxMzkyZDhhYzQ4NTE5ZDNmYWUifSwicGFja2FnZSI6Ijc1MDMwZjNjNGY0NWRhZmQ3 NTg2ZGQ2NzgwOTY1YThjN2U4ZTI4NWE1ZWNiODY3MTNlNjNhNzljNWIyNzY2ZjMifQorXCBObyBu ZXdsaW5lIGF0IGVuZCBvZiBmaWxlCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9lbmNv ZGluZ19ycy9DYXJnby50b21sIGIvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9DYXJnby50 b21sCistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL0NhcmdvLnRvbWwKKysrKyBi L3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvQ2FyZ28udG9tbAorQEAgLTgsMTggKzgsMjMg QEAKKyAjIElmIHlvdSBhcmUgcmVhZGluZyB0aGlzIGZpbGUgYmUgYXdhcmUgdGhhdCB0aGUgb3Jp Z2luYWwgQ2FyZ28udG9tbAorICMgd2lsbCBsaWtlbHkgbG9vayB2ZXJ5IGRpZmZlcmVudCAoYW5k IG11Y2ggbW9yZSByZWFzb25hYmxlKS4KKyAjIFNlZSBDYXJnby50b21sLm9yaWcgZm9yIHRoZSBv cmlnaW5hbCBjb250ZW50cy4KKyAKKyBbcGFja2FnZV0KKyBlZGl0aW9uID0gIjIwMTgiCisgcnVz dC12ZXJzaW9uID0gIjEuMzYiCisgbmFtZSA9ICJlbmNvZGluZ19ycyIKKy12ZXJzaW9uID0gIjAu OC4zNCIKKyt2ZXJzaW9uID0gIjAuOC4zNSIKKyBhdXRob3JzID0gWyJIZW5yaSBTaXZvbmVuIDxo c2l2b25lbkBoc2l2b25lbi5maT4iXQorK2J1aWxkID0gZmFsc2UKKythdXRvYmlucyA9IGZhbHNl CisrYXV0b2V4YW1wbGVzID0gZmFsc2UKKythdXRvdGVzdHMgPSBmYWxzZQorK2F1dG9iZW5jaGVz ID0gZmFsc2UKKyBkZXNjcmlwdGlvbiA9ICJBIEdlY2tvLW9yaWVudGVkIGltcGxlbWVudGF0aW9u IG9mIHRoZSBFbmNvZGluZyBTdGFuZGFyZCIKKyBob21lcGFnZSA9ICJodHRwczovL2RvY3MucnMv ZW5jb2RpbmdfcnMvIgorIGRvY3VtZW50YXRpb24gPSAiaHR0cHM6Ly9kb2NzLnJzL2VuY29kaW5n X3JzLyIKKyByZWFkbWUgPSAiUkVBRE1FLm1kIgorIGtleXdvcmRzID0gWworICAgICAiZW5jb2Rp bmciLAorICAgICAid2ViIiwKKyAgICAgInVuaWNvZGUiLAorQEAgLTMyLDE2ICszNywyMCBAQCBj YXRlZ29yaWVzID0gWworICAgICAiaW50ZXJuYXRpb25hbGl6YXRpb24iLAorIF0KKyBsaWNlbnNl ID0gIihBcGFjaGUtMi4wIE9SIE1JVCkgQU5EIEJTRC0zLUNsYXVzZSIKKyByZXBvc2l0b3J5ID0g Imh0dHBzOi8vZ2l0aHViLmNvbS9oc2l2b25lbi9lbmNvZGluZ19ycyIKKyAKKyBbcHJvZmlsZS5y ZWxlYXNlXQorIGx0byA9IHRydWUKKyAKKytbbGliXQorK25hbWUgPSAiZW5jb2RpbmdfcnMiCisr cGF0aCA9ICJzcmMvbGliLnJzIgorKworIFtkZXBlbmRlbmNpZXMuYW55X2FsbF93b3JrYXJvdW5k XQorIHZlcnNpb24gPSAiMC4xLjAiCisgb3B0aW9uYWwgPSB0cnVlCisgCisgW2RlcGVuZGVuY2ll cy5jZmctaWZdCisgdmVyc2lvbiA9ICIxLjAiCisgCisgW2RlcGVuZGVuY2llcy5zZXJkZV0KK2Rp ZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL1JFQURNRS5tZCBiL3RoaXJk X3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvUkVBRE1FLm1kCistLS0gYS90aGlyZF9wYXJ0eS9ydXN0 L2VuY29kaW5nX3JzL1JFQURNRS5tZAorKysrIGIvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19y cy9SRUFETUUubWQKK0BAIC0xMDMsMTcgKzEwMywxNyBAQCBGb3IgbWFwcGluZ3MgdG8gYW5kIGZy b20gV2luZG93cyBjb2RlIHBhCisgVGhpcyBjcmF0ZSBkb2VzIG5vdCBzdXBwb3J0IHNpbmdsZS1i eXRlIERPUyBlbmNvZGluZ3MgdGhhdCBhcmVuJ3QgcmVxdWlyZWQgYnkKKyB0aGUgV2ViIFBsYXRm b3JtLCBidXQgdGhlIFtgb2VtX2NwYF0oaHR0cHM6Ly9jcmF0ZXMuaW8vY3JhdGVzL29lbV9jcCkg Y3JhdGUgZG9lcy4KKyAKKyAjIyBQcmVwYXJpbmcgVGV4dCBmb3IgdGhlIEVuY29kZXJzCisgCisg Tm9ybWFsaXppbmcgdGV4dCBpbnRvIFVuaWNvZGUgTm9ybWFsaXphdGlvbiBGb3JtIEMgcHJpb3Ig dG8gZW5jb2RpbmcgdGV4dCBpbnRvCisgYSBsZWdhY3kgZW5jb2RpbmcgbWluaW1pemVzIHVubWFw cGFibGUgY2hhcmFjdGVycy4gVGV4dCBjYW4gYmUgbm9ybWFsaXplZCB0bworIFVuaWNvZGUgTm9y bWFsaXphdGlvbiBGb3JtIEMgdXNpbmcgdGhlCistW2B1bmljLW5vcm1hbGBdKGh0dHBzOi8vY3Jh dGVzLmlvL2NyYXRlcy91bmljLW5vcm1hbCkgY3JhdGUuCisrW2BpY3Vfbm9ybWFsaXplcmBdKGh0 dHBzOi8vY3JhdGVzLmlvL2NyYXRlcy9pY3Vfbm9ybWFsaXplcikgY3JhdGUuCisgCisgVGhlIGV4 Y2VwdGlvbiBpcyB3aW5kb3dzLTEyNTgsIHdoaWNoIGFmdGVyIG5vcm1hbGl6aW5nIHRvIFVuaWNv ZGUgTm9ybWFsaXphdGlvbgorIEZvcm0gQyByZXF1aXJlcyB0b25lIG1hcmtzIHRvIGJlIGRlY29t cG9zZWQgaW4gb3JkZXIgdG8gbWluaW1pemUgdW5tYXBwYWJsZQorIGNoYXJhY3RlcnMuIFZpZXRu YW1lc2UgdG9uZSBtYXJrcyBjYW4gYmUgZGVjb21wb3NlZCB1c2luZyB0aGUKKyBbYGRldG9uZWBd KGh0dHBzOi8vY3JhdGVzLmlvL2NyYXRlcy9kZXRvbmUpIGNyYXRlLgorIAorICMjIExpY2Vuc2lu ZworIAorQEAgLTM4NiwyMCArMzg2LDE5IEBAIFRvIHJlZ2VuZXJhdGUgdGhlIGdlbmVyYXRlZCBj b2RlOgorIAorICAqIEhhdmUgUHl0aG9uIDIgaW5zdGFsbGVkLgorICAqIENsb25lIFtgaHR0cHM6 Ly9naXRodWIuY29tL2hzaXZvbmVuL2VuY29kaW5nX2NgXShodHRwczovL2dpdGh1Yi5jb20vaHNp dm9uZW4vZW5jb2RpbmdfYykKKyAgICBuZXh0IHRvIHRoZSBgZW5jb2RpbmdfcnNgIGRpcmVjdG9y eS4KKyAgKiBDbG9uZSBbYGh0dHBzOi8vZ2l0aHViLmNvbS9oc2l2b25lbi9jb2RlcGFnZWBdKGh0 dHBzOi8vZ2l0aHViLmNvbS9oc2l2b25lbi9jb2RlcGFnZSkKKyAgICBuZXh0IHRvIHRoZSBgZW5j b2RpbmdfcnNgIGRpcmVjdG9yeS4KKyAgKiBDbG9uZSBbYGh0dHBzOi8vZ2l0aHViLmNvbS93aGF0 d2cvZW5jb2RpbmdgXShodHRwczovL2dpdGh1Yi5jb20vd2hhdHdnL2VuY29kaW5nKQorICAgIG5l eHQgdG8gdGhlIGBlbmNvZGluZ19yc2AgZGlyZWN0b3J5LgorLSAqIENoZWNrb3V0IHJldmlzaW9u IGBiZTMzMzc0NTBlN2RmMWM0OWRjYTc4NzIxNTNjNGM0NjcwZGQ4MjU2YCBvZiB0aGUgYGVuY29k aW5nYCByZXBvLgorKyAqIENoZWNrb3V0IHJldmlzaW9uIGAxZDUxOWJmOGU1NTU1Y2VmNjRjZjNh NzEyNDg1ZjQxY2QxYTZhOTkwYCBvZiB0aGUgYGVuY29kaW5nYCByZXBvLgorICAgIChOb3RlOiBg ZjM4MTM4OWAgd2FzIHRoZSByZXZpc2lvbiBvZiBgZW5jb2RpbmdgIHVzZWQgZnJvbSBiZWZvcmUg dGhlIGBlbmNvZGluZ2AgcmVwbworLSAgIGxpY2Vuc2UgY2hhbmdlLiBTbyBmYXIsIG9ubHkgb3V0 cHV0IGNoYW5nZWQgc2luY2UgdGhlbiBoYXMgYmVlbiB1cGRhdGVkIHRvCistICAgdGhlIG5ldyBs aWNlbnNlIGxlZ2VuZC4pCisrICAgbGljZW5zZSBjaGFuZ2UuKQorICAqIFdpdGggdGhlIGBlbmNv ZGluZ19yc2AgZGlyZWN0b3J5IGFzIHRoZSB3b3JraW5nIGRpcmVjdG9yeSwgcnVuCisgICAgYHB5 dGhvbiBnZW5lcmF0ZS1lbmNvZGluZy1kYXRhLnB5YC4KKyAKKyAjIyBSb2FkbWFwCisgCisgLSBb eF0gRGVzaWduIHRoZSBsb3ctbGV2ZWwgQVBJLgorIC0gW3hdIFByb3ZpZGUgUnVzdC1vbmx5IGNv bnZlbmllbmNlIGZlYXR1cmVzLgorIC0gW3hdIFByb3ZpZGUgYW4gc3RsL2dzbC1mbGF2b3JlZCBD KysgQVBJLgorQEAgLTQzMywxNiArNDMyLDIwIEBAIFRvIHJlZ2VuZXJhdGUgdGhlIGdlbmVyYXRl ZCBjb2RlOgorIC0gW3hdIEFkZCBhY3R1YWxseSBmYXN0IENKSyBlbmNvZGUgb3B0aW9ucy4KKyAt IFsgXSB+SW52ZXN0aWdhdGUgW0JvYiBTdGVhZ2FsbCdzIGxvb2t1cCB0YWJsZSBhY2NlbGVyYXRp b24gZm9yIFVURi04XShodHRwczovL2dpdGh1Yi5jb20vQm9iU3RlYWdhbGwvQ3BwTm93MjAxOC9i bG9iL21hc3Rlci9GYXN0Q29udmVyc2lvbkZyb21VVEYtOC9GYXN0JTIwQ29udmVyc2lvbiUyMEZy b20lMjBVVEYtOCUyMHdpdGglMjBDJTJCJTJCJTJDJTIwREZBcyUyQyUyMGFuZCUyMFNTRSUyMElu dHJpbnNpY3MlMjAtJTIwQm9iJTIwU3RlYWdhbGwlMjAtJTIwQyUyQiUyQk5vdyUyMDIwMTgucGRm KS5+CisgLSBbeF0gUHJvdmlkZSBhIGJ1aWxkIG1vZGUgdGhhdCB3b3JrcyB3aXRob3V0IGBhbGxv Y2AgKHdpdGggbGVzc2VyIEFQSSBzdXJmYWNlKS4KKyAtIFt4XSBNaWdyYXRlIHRvIGBzdGQ6OnNp bWRgIH5vbmNlIGl0IGlzIHN0YWJsZSBhbmQgZGVjbGFyZSAxLjAufgorIC0gWyBdIE1pZ3JhdGUg YHVuc2FmZWAgc2xpY2UgYWNjZXNzIGJ5IGxhcmdlciB0eXBlcyB0aGFuIGB1OGAvYHUxNmAgdG8g YGFsaWduX3RvYC4KKyAKKyAjIyBSZWxlYXNlIE5vdGVzCisgCisrIyMjIDAuOC4zNQorKworKyog SW1wbGVtZW50IGNoYW5nZXMgZm9yIEdCMTgwMzAtMjAyMi4gKEludGVudGlvbmFsbHkgbm90IHRy ZWF0ZWQgYXMgYSBzZW12ZXIgYnJlYWsgaW4gcHJhY3RpY2UgZXZlbiBpZiB0aGlzIGNvdWxkIGJl IGFyZ3VlZCB0byBiZSBhIGJyZWFraW5nIGNoYW5nZSBpbiB0aGVvcnkuKQorKworICMjIyAwLjgu MzQKKyAKKyAqIFVzZSB0aGUgYHBvcnRhYmxlX3NpbWRgIG5pZ2h0bHkgZmVhdHVyZSBvZiB0aGUg c3RhbmRhcmQgbGlicmFyeSBpbnN0ZWFkIG9mIHRoZSBgcGFja2VkX3NpbWRgIGNyYXRlLiBPbmx5 IGFmZmVjdHMgdGhlIGBzaW1kLWFjY2VsYCBvcHRpb25hbCBuaWdodGx5IGZlYXR1cmUuCisgKiBJ bnRlcm5hbCBkb2N1bWVudGF0aW9uIGltcHJvdmVtZW50cyBhbmQgbWlub3IgY29kZSBpbXByb3Zl bWVudHMgYXJvdW5kIGB1bnNhZmVgLgorICogQWRkZWQgYHJ1c3QtdmVyc2lvbmAgdG8gYENhcmdv LnRvbWxgLgorIAorICMjIyAwLjguMzMKKyAKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0 L2VuY29kaW5nX3JzL2RvYy9HQksudHh0IGIvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9k b2MvR0JLLnR4dAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9kb2MvR0JLLnR4 dAorKysrIGIvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9kb2MvR0JLLnR4dAorQEAgLTEs MTMgKzEsMTQgQEAKKyAvLy8gVGhlIGRlY29kZXIgZm9yIHRoaXMgZW5jb2RpbmcgaXMgdGhlIHNh bWUgYXMgdGhlIGRlY29kZXIgZm9yIGdiMTgwMzAuCisgLy8vIFRoZSBlbmNvZGVyIHNpZGUgb2Yg dGhpcyBlbmNvZGluZyBpcyBHQksgd2l0aCBXaW5kb3dzIGNvZGUgcGFnZSA5MzYgZXVybworLS8v LyBzaWduIGJlaGF2aW9yLiBHQksgZXh0ZW5kcyBHQjIzMTItODAgdG8gY292ZXIgdGhlIENKSyBV bmlmaWVkIElkZW9ncmFwaHMKKy0vLy8gVW5pY29kZSBibG9jayBhcyB3ZWxsIGFzIGEgaGFuZGZ1 bCBvZiBpZGVvZ3JhcGhzIGZyb20gdGhlIENKSyBVbmlmaWVkCistLy8vIElkZW9ncmFwaHMgRXh0 ZW5zaW9uIEEgYW5kIENKSyBDb21wYXRpYmlsaXR5IElkZW9ncmFwaHMgYmxvY2tzLgorKy8vLyBz aWduIGJlaGF2aW9yIGFuZCB3aXRoIHRoZSBjaGFuZ2VzIHRvIHR3by1ieXRlIHNlcXVlbmNlcyBt YWRlIGluIEdCMTgwMzAtMjAyMi4KKysvLy8gR0JLIGV4dGVuZHMgR0IyMzEyLTgwIHRvIGNvdmVy IHRoZSBDSksgVW5pZmllZCBJZGVvZ3JhcGhzIFVuaWNvZGUgYmxvY2sgYXMKKysvLy8gd2VsbCBh cyBhIGhhbmRmdWwgb2YgaWRlb2dyYXBocyBmcm9tIHRoZSBDSksgVW5pZmllZCBJZGVvZ3JhcGhz IEV4dGVuc2lvbiBBCisrLy8vIGFuZCBDSksgQ29tcGF0aWJpbGl0eSBJZGVvZ3JhcGhzIGJsb2Nr cy4KKyAvLy8KKyAvLy8gVW5saWtlIGUuZy4gaW4gdGhlIGNhc2Ugb2YgSVNPLTg4NTktMSBhbmQg d2luZG93cy0xMjUyLCBHQksgZW5jb2RlciB3YXNuJ3QKKyAvLy8gdW5pZmllZCB3aXRoIHRoZSBn YjE4MDMwIGVuY29kZXIgaW4gdGhlIEVuY29kaW5nIFN0YW5kYXJkIG91dCBvZiBjb25jZXJuCisg Ly8vIHRoYXQgc2VydmVycyB0aGF0IGV4cGVjdCBHQksgZm9ybSBzdWJtaXNzaW9ucyBtaWdodCBu b3QgYmUgYWJsZSB0byBoYW5kbGUKKyAvLy8gdGhlIGZvdXItYnl0ZSBzZXF1ZW5jZXMuCisgLy8v CisgLy8vIFtJbmRleCB2aXN1YWxpemF0aW9uIGZvciB0aGUgdHdvLWJ5dGUgc2VxdWVuY2VzXSho dHRwczovL2VuY29kaW5nLnNwZWMud2hhdHdnLm9yZy9nYjE4MDMwLmh0bWwpLAorIC8vLyBbVmlz dWFsaXphdGlvbiBvZiBCTVAgY292ZXJhZ2Ugb2YgdGhlIHR3by1ieXRlIGluZGV4XShodHRwczov L2VuY29kaW5nLnNwZWMud2hhdHdnLm9yZy9nYjE4MDMwLWJtcC5odG1sKQorZGlmZiAtLWdpdCBh L3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvZG9jL2diMTgwMzAudHh0IGIvdGhpcmRfcGFy dHkvcnVzdC9lbmNvZGluZ19ycy9kb2MvZ2IxODAzMC50eHQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1 c3QvZW5jb2RpbmdfcnMvZG9jL2diMTgwMzAudHh0CisrKysgYi90aGlyZF9wYXJ0eS9ydXN0L2Vu Y29kaW5nX3JzL2RvYy9nYjE4MDMwLnR4dAorQEAgLTEsOSArMSwxMCBAQAorLS8vLyBUaGlzIGVu Y29kaW5nIG1hdGNoZXMgR0IxODAzMC0yMDA1IGV4Y2VwdCB0aGUgdHdvLWJ5dGUgc2VxdWVuY2Ug MHhBMyAweEEwCistLy8vIG1hcHMgdG8gVSszMDAwIGZvciBjb21wYXRpYmlsaXR5IHdpdGggZXhp c3RpbmcgV2ViIGNvbnRlbnQuIEFzIGEgcmVzdWx0LAorLS8vLyB0aGlzIGVuY29kaW5nIGNhbiBy ZXByZXNlbnQgYWxsIG9mIFVuaWNvZGUgZXhjZXB0IGZvciB0aGUgcHJpdmF0ZS11c2UKKy0vLy8g Y2hhcmFjdGVyIFUrRTVFNS4KKysvLy8gVGhpcyBlbmNvZGluZyBtYXRjaGVzIEdCMTgwMzAtMjAy MiBleGNlcHQgdGhlIHR3by1ieXRlIHNlcXVlbmNlIDB4QTMgMHhBMAorKy8vLyBtYXBzIHRvIFUr MzAwMCBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIGV4aXN0aW5nIFdlYiBjb250ZW50IGFuZCB0aGUg Zm91ci1ieXRlCisrLy8vIHNlcXVlbmNlcyBmb3IgdGhlIG5vbi1QVUEgY2hhcmFjdGVycyB0aGF0 IGdvdCB0d28tYnl0ZSBzZXF1ZW5jZXMgc3RpbGwgZGVjb2RlCisrLy8vIHRvIHRoZSBzYW1lIG5v bi1QVUEgY2hhcmFjdGVycyBhcyBpbiBHQjE4MDMwLTIwMDUuIEFzIGEgcmVzdWx0LCB0aGlzIGVu Y29kaW5nCisrLy8vIGNhbiByZXByZXNlbnQgYWxsIG9mIFVuaWNvZGUgZXhjZXB0IGZvciAxOSBw cml2YXRlLXVzZSBjaGFyYWN0ZXJzLgorIC8vLworIC8vLyBbSW5kZXggdmlzdWFsaXphdGlvbiBm b3IgdGhlIHR3by1ieXRlIHNlcXVlbmNlc10oaHR0cHM6Ly9lbmNvZGluZy5zcGVjLndoYXR3Zy5v cmcvZ2IxODAzMC5odG1sKSwKKyAvLy8gW1Zpc3VhbGl6YXRpb24gb2YgQk1QIGNvdmVyYWdlIG9m IHRoZSB0d28tYnl0ZSBpbmRleF0oaHR0cHM6Ly9lbmNvZGluZy5zcGVjLndoYXR3Zy5vcmcvZ2Ix ODAzMC1ibXAuaHRtbCkKKyAvLy8KKyAvLy8gVGhpcyBlbmNvZGluZyBtYXRjaGVzIHRoZSBXaW5k b3dzIGNvZGUgcGFnZSA1NDkzNi4KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L2VuY29k aW5nX3JzL2dlbmVyYXRlLWVuY29kaW5nLWRhdGEucHkgYi90aGlyZF9wYXJ0eS9ydXN0L2VuY29k aW5nX3JzL2dlbmVyYXRlLWVuY29kaW5nLWRhdGEucHkKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3Qv ZW5jb2RpbmdfcnMvZ2VuZXJhdGUtZW5jb2RpbmctZGF0YS5weQorKysrIGIvdGhpcmRfcGFydHkv cnVzdC9lbmNvZGluZ19ycy9nZW5lcmF0ZS1lbmNvZGluZy1kYXRhLnB5CitAQCAtMTAsMTcgKzEw LDE3IEBACisgIyBleGNlcHQgYWNjb3JkaW5nIHRvIHRob3NlIHRlcm1zLgorIAorIGltcG9ydCBq c29uCisgaW1wb3J0IHN1YnByb2Nlc3MKKyBpbXBvcnQgc3lzCisgaW1wb3J0IG9zLnBhdGgKKyAK KyBpZiAobm90IG9zLnBhdGguaXNmaWxlKCIuLi9lbmNvZGluZy9lbmNvZGluZ3MuanNvbiIpKSBv ciAobm90IG9zLnBhdGguaXNmaWxlKCIuLi9lbmNvZGluZy9pbmRleGVzLmpzb24iKSk6CistICBz eXMuc3RkZXJyLndyaXRlKCJUaGlzIHNjcmlwdCBuZWVkcyBhIGNsb25lIG9mIGh0dHBzOi8vZ2l0 aHViLmNvbS93aGF0d2cvZW5jb2RpbmcvIChwcmVmZXJhYmx5IGF0IHJldmlzaW9uIGYzODEzODkp IG5leHQgdG8gdGhlIGVuY29kaW5nX3JzIGRpcmVjdG9yeS5cbiIpOworKyAgc3lzLnN0ZGVyci53 cml0ZSgiVGhpcyBzY3JpcHQgbmVlZHMgYSBjbG9uZSBvZiBodHRwczovL2dpdGh1Yi5jb20vd2hh dHdnL2VuY29kaW5nLyAocHJlZmVyYWJseSBhdCByZXZpc2lvbiAxZDUxOWJmOGU1NTU1Y2VmNjRj ZjNhNzEyNDg1ZjQxY2QxYTZhOTkwICkgbmV4dCB0byB0aGUgZW5jb2RpbmdfcnMgZGlyZWN0b3J5 LlxuIik7CisgICBzeXMuZXhpdCgtMSkKKyAKKyBpZiBub3Qgb3MucGF0aC5pc2ZpbGUoIi4uL2Vu Y29kaW5nX2Mvc3JjL2xpYi5ycyIpOgorICAgc3lzLnN0ZGVyci53cml0ZSgiVGhpcyBzY3JpcHQg YWxzbyB3cml0ZXMgdGhlIGdlbmVyYXRlZCBwYXJ0cyBvZiB0aGUgZW5jb2RpbmdfYyBjcmF0ZSBh bmQgbmVlZHMgYSBjbG9uZSBvZiBodHRwczovL2dpdGh1Yi5jb20vaHNpdm9uZW4vZW5jb2Rpbmdf YyBuZXh0IHRvIHRoZSBlbmNvZGluZ19ycyBkaXJlY3RvcnkuXG4iKTsKKyAgIHN5cy5leGl0KC0x KQorIAorIGlmIG5vdCBvcy5wYXRoLmlzZmlsZSgiLi4vY29kZXBhZ2Uvc3JjL2xpYi5ycyIpOgor ICAgc3lzLnN0ZGVyci53cml0ZSgiVGhpcyBzY3JpcHQgYWxzbyB3cml0ZXMgdGhlIGdlbmVyYXRl ZCBwYXJ0cyBvZiB0aGUgY29kZXBhZ2UgY3JhdGUgYW5kIG5lZWRzIGEgY2xvbmUgb2YgaHR0cHM6 Ly9naXRodWIuY29tL2hzaXZvbmVuL2NvZGVwYWdlIG5leHQgdG8gdGhlIGVuY29kaW5nX3JzIGRp cmVjdG9yeS5cbiIpOworQEAgLTE2MDcsMTggKzE2MDcsMTcgQEAgdXRmXzhfZmlsZS53cml0ZSgi IiIKKyAKKyAiIiIpCisgCisgdXRmXzhfZmlsZS53cml0ZSh1dGZfOF9yc19lbmQpCisgdXRmXzhf ZmlsZS5jbG9zZSgpCisgCisgIyBVbml0IHRlc3RzCisgCistVEVTVF9IRUFERVIgPSAnJydBbnkg Y29weXJpZ2h0IHRvIHRoZSB0ZXN0IGNvZGUgYmVsb3cgdGhpcyBjb21tZW50IGlzIGRlZGljYXRl ZCB0byB0aGUKKy1QdWJsaWMgRG9tYWluLiBodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9wdWJs aWNkb21haW4vemVyby8xLjAvCisrVEVTVF9IRUFERVIgPSAnJydHZW5lcmF0ZWQgZnJvbSBXSEFU V0cgaW5kZXhlcy5qc29uOyBzZWUgTElDRU5TRS1XSEFUV0cuCisgCisgVGhpcyBpcyBhIGdlbmVy YXRlZCBmaWxlLiBQbGVhc2UgZG8gbm90IGVkaXQuCisgSW5zdGVhZCwgcGxlYXNlIHJlZ2VuZXJh dGUgdXNpbmcgZ2VuZXJhdGUtZW5jb2RpbmctZGF0YS5weQorICcnJworIAorIGluZGV4ID0gaW5k ZXhlc1siamlzMDIwOCJdCisgCisgamlzMDIwOF9pbl9maWxlID0gb3Blbigic3JjL3Rlc3RfZGF0 YS9qaXMwMjA4X2luLnR4dCIsICJ3IikKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L2Vu Y29kaW5nX3JzL3NyYy9kYXRhLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMv ZGF0YS5ycworLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvZGF0YS5ycwor KysrIGIvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvZGF0YS5ycworQEAgLTIsMTYg KzIsNDcgQEAKKyAvLyBmaWxlIGF0IHRoZSB0b3AtbGV2ZWwgZGlyZWN0b3J5IG9mIHRoaXMgZGlz dHJpYnV0aW9uLgorIC8vCisgLy8gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBW ZXJzaW9uIDIuMCA8TElDRU5TRS1BUEFDSEUgb3IKKyAvLyBodHRwczovL3d3dy5hcGFjaGUub3Jn L2xpY2Vuc2VzL0xJQ0VOU0UtMi4wPiBvciB0aGUgTUlUIGxpY2Vuc2UKKyAvLyA8TElDRU5TRS1N SVQgb3IgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVQ+LCBhdCB5b3VyCisgLy8g b3B0aW9uLiBUaGlzIGZpbGUgbWF5IG5vdCBiZSBjb3BpZWQsIG1vZGlmaWVkLCBvciBkaXN0cmli dXRlZAorIC8vIGV4Y2VwdCBhY2NvcmRpbmcgdG8gdGhvc2UgdGVybXMuCisgCisrLy8gVGhlIGFi b3ZlIGxpY2Vuc2UgYXBwbGllcyB0byBjb2RlIGluIHRoaXMgZmlsZS4gVGhlIGRhdGEgaW4gdGhp cworKy8vIGZpbGUgaXMgZ2VuZXJhdGVkIGZyb20gV0hBVFdHJ3MgaW5kZXhlcy5qc29uLCB3aGlj aCBjYW1lIHVuZGVyCisrLy8gdGhlIGZvbGxvd2luZyBsaWNlbnNlOgorKworKy8vIENvcHlyaWdo dCDCqSBXSEFUV0cgKEFwcGxlLCBHb29nbGUsIE1vemlsbGEsIE1pY3Jvc29mdCkuCisrLy8KKysv LyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo IG9yIHdpdGhvdXQKKysvLyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKKysvLworKy8vIDEuIFJlZGlzdHJp YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5v dGljZSwgdGhpcworKy8vICAgIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk aXNjbGFpbWVyLgorKy8vCisrLy8gMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11 c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorKy8vICAgIHRoaXMgbGlz dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3Vt ZW50YXRpb24KKysvLyAgICBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl IGRpc3RyaWJ1dGlvbi4KKysvLworKy8vIDMuIE5laXRoZXIgdGhlIG5hbWUgb2YgdGhlIGNvcHly aWdodCBob2xkZXIgbm9yIHRoZSBuYW1lcyBvZiBpdHMKKysvLyAgICBjb250cmlidXRvcnMgbWF5 IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorKy8v ICAgIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Np b24uCisrLy8KKysvLyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQg SE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTICJBUyBJUyIKKysvLyBBTkQgQU5ZIEVYUFJFU1MgT1Ig SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisr Ly8gSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisrLy8gRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB TEwgVEhFIENPUFlSSUdIVCBIT0xERVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRQorKy8vIEZP UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP UiBDT05TRVFVRU5USUFMCisrLy8gREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKysvLyBTRVJWSUNFUzsgTE9T UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X RVZFUgorKy8vIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisrLy8gT1IgVE9SVCAoSU5DTFVESU5HIE5F R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK KysvLyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ IE9GIFNVQ0ggREFNQUdFLgorKworIC8vIEJFR0lOIEdFTkVSQVRFRCBDT0RFLiBQTEVBU0UgRE8g Tk9UIEVESVQuCisgLy8gSW5zdGVhZCwgcGxlYXNlIHJlZ2VuZXJhdGUgdXNpbmcgZ2VuZXJhdGUt ZW5jb2RpbmctZGF0YS5weQorIAorICNbcmVwcihhbGlnbig2NCkpXSAvLyBBbGlnbiB0byBjYWNo ZSBsaW5lcworIHB1YiBzdHJ1Y3QgU2luZ2xlQnl0ZURhdGEgeworICAgICBwdWIgaWJtODY2OiBb dTE2OyAxMjhdLAorICAgICBwdWIgaXNvXzg4NTlfMjogW3UxNjsgMTI4XSwKKyAgICAgcHViIGlz b184ODU5XzM6IFt1MTY7IDEyOF0sCitAQCAtODgwNTYsMjMgKzg4MDg3LDIzIEBAIHB1YiBzdGF0 aWMgR0JLX09USEVSX1VOU09SVEVEX09GRlNFVFM6IFsKKyAgICAgMHgyMjk1LCAweDMwMTIsIDB4 MzAxRCwgMHhFN0JDLCAweDMwMjEsIDB4MzJBMywgMHgzMzhFLCAweDMzOUMsIDB4MzNBMSwgMHgz M0M0LCAweDMzQ0UsIDB4MzNEMSwKKyAgICAgMHgzM0Q1LCAweEZFMzAsIDB4RkZFMiwgMHhGRkU0 LCAweEU3RTIsIDB4MjEyMSwgMHgzMjMxLCAweEU3RTMsIDB4MjAxMCwgMHhFN0U0LCAweDMwRkMs IDB4MzA5QiwKKyAgICAgMHgzMEZELCAweDMwMDYsIDB4MzA5RCwgMHhGRTQ5LCAweEZFNTQsIDB4 RkU1OSwgMHhGRTY4LCAweDMwM0UsIDB4MkZGMCwgMHgzMDA3LCAweEU3RjQsCisgXTsKKyAKKyBw dWIgc3RhdGljIEdCS19CT1RUT006IFt1MTY7IDEwMV0gPSBbCisgICAgIDB4RjkyQywgMHhGOTc5 LCAweEY5OTUsIDB4RjlFNywgMHhGOUYxLCAweEZBMEMsIDB4RkEwRCwgMHhGQTBFLCAweEZBMEYs IDB4RkExMSwgMHhGQTEzLCAweEZBMTQsCisgICAgIDB4RkExOCwgMHhGQTFGLCAweEZBMjAsIDB4 RkEyMSwgMHhGQTIzLCAweEZBMjQsIDB4RkEyNywgMHhGQTI4LCAweEZBMjksIDB4MkU4MSwgMHhF ODE2LCAweEU4MTcsCistICAgIDB4RTgxOCwgMHgyRTg0LCAweDM0NzMsIDB4MzQ0NywgMHgyRTg4 LCAweDJFOEIsIDB4RTgxRSwgMHgzNTlFLCAweDM2MUEsIDB4MzYwRSwgMHgyRThDLCAweDJFOTcs CistICAgIDB4Mzk2RSwgMHgzOTE4LCAweEU4MjYsIDB4MzlDRiwgMHgzOURGLCAweDNBNzMsIDB4 MzlEMCwgMHhFODJCLCAweEU4MkMsIDB4M0I0RSwgMHgzQzZFLCAweDNDRTAsCistICAgIDB4MkVB NywgMHhFODMxLCAweEU4MzIsIDB4MkVBQSwgMHg0MDU2LCAweDQxNUYsIDB4MkVBRSwgMHg0MzM3 LCAweDJFQjMsIDB4MkVCNiwgMHgyRUI3LCAweEU4M0IsCistICAgIDB4NDNCMSwgMHg0M0FDLCAw eDJFQkIsIDB4NDNERCwgMHg0NEQ2LCAweDQ2NjEsIDB4NDY0QywgMHhFODQzLCAweDQ3MjMsIDB4 NDcyOSwgMHg0NzdDLCAweDQ3OEQsCisrICAgIDB4RTgxOCwgMHgyRTg0LCAweDM0NzMsIDB4MzQ0 NywgMHgyRTg4LCAweDJFOEIsIDB4OUZCNCwgMHgzNTlFLCAweDM2MUEsIDB4MzYwRSwgMHgyRThD LCAweDJFOTcsCisrICAgIDB4Mzk2RSwgMHgzOTE4LCAweDlGQjUsIDB4MzlDRiwgMHgzOURGLCAw eDNBNzMsIDB4MzlEMCwgMHg5RkI2LCAweDlGQjcsIDB4M0I0RSwgMHgzQzZFLCAweDNDRTAsCisr ICAgIDB4MkVBNywgMHhFODMxLCAweDlGQjgsIDB4MkVBQSwgMHg0MDU2LCAweDQxNUYsIDB4MkVB RSwgMHg0MzM3LCAweDJFQjMsIDB4MkVCNiwgMHgyRUI3LCAweEU4M0IsCisrICAgIDB4NDNCMSwg MHg0M0FDLCAweDJFQkIsIDB4NDNERCwgMHg0NEQ2LCAweDQ2NjEsIDB4NDY0QywgMHg5RkI5LCAw eDQ3MjMsIDB4NDcyOSwgMHg0NzdDLCAweDQ3OEQsCisgICAgIDB4MkVDQSwgMHg0OTQ3LCAweDQ5 N0EsIDB4NDk3RCwgMHg0OTgyLCAweDQ5ODMsIDB4NDk4NSwgMHg0OTg2LCAweDQ5OUYsIDB4NDk5 QiwgMHg0OUI3LCAweDQ5QjYsCistICAgIDB4RTg1NCwgMHhFODU1LCAweDRDQTMsIDB4NEM5Riwg MHg0Q0EwLCAweDRDQTEsIDB4NEM3NywgMHg0Q0EyLCAweDREMTMsIDB4NEQxNCwgMHg0RDE1LCAw eDREMTYsCistICAgIDB4NEQxNywgMHg0RDE4LCAweDREMTksIDB4NERBRSwgMHhFODY0LAorKyAg ICAweDlGQkEsIDB4RTg1NSwgMHg0Q0EzLCAweDRDOUYsIDB4NENBMCwgMHg0Q0ExLCAweDRDNzcs IDB4NENBMiwgMHg0RDEzLCAweDREMTQsIDB4NEQxNSwgMHg0RDE2LAorKyAgICAweDREMTcsIDB4 NEQxOCwgMHg0RDE5LCAweDREQUUsIDB4OUZCQiwKKyBdOworIAorIHB1YiBzdGF0aWMgR0IyMzEy X0hBTlpJOiBbdTE2OyA2NzY4XSA9IFsKKyAgICAgMHg1NTRBLCAweDk2M0YsIDB4NTdDMywgMHg2 MzI4LCAweDU0Q0UsIDB4NTUwOSwgMHg1NEMwLCAweDc2OTEsIDB4NzY0QywgMHg4NTNDLCAweDc3 RUUsIDB4ODI3RSwKKyAgICAgMHg3ODhELCAweDcyMzEsIDB4OTY5OCwgMHg5NzhELCAweDZDMjgs IDB4NUI4OSwgMHg0RkZBLCAweDYzMDksIDB4NjY5NywgMHg1Q0I4LCAweDgwRkEsIDB4Njg0OCwK KyAgICAgMHg4MEFFLCAweDY2MDIsIDB4NzZDRSwgMHg1MUY5LCAweDY1NTYsIDB4NzFBQywgMHg3 RkYxLCAweDg4ODQsIDB4NTBCMiwgMHg1OTY1LCAweDYxQ0EsIDB4NkZCMywKKyAgICAgMHg4MkFE LCAweDYzNEMsIDB4NjI1MiwgMHg1M0VELCAweDU0MjcsIDB4N0IwNiwgMHg1MTZCLCAweDc1QTQs IDB4NURGNCwgMHg2MkQ0LCAweDhEQ0IsIDB4OTc3NiwKKyAgICAgMHg2MjhBLCAweDgwMTksIDB4 NTc1RCwgMHg5NzM4LCAweDdGNjIsIDB4NzIzOCwgMHg3NjdELCAweDY3Q0YsIDB4NzY3RSwgMHg2 NDQ2LCAweDRGNzAsIDB4OEQyNSwKK0BAIC04ODY0NSwzNyArODg2NzYsMzcgQEAgcHViIHN0YXRp YyBHQjIzMTJfU1lNQk9MUzogW3UxNjsgOTRdID0gWworICAgICAweDIyOTksIDB4MjIyQiwgMHgy MjJFLCAweDIyNjEsIDB4MjI0QywgMHgyMjQ4LCAweDIyM0QsIDB4MjIxRCwgMHgyMjYwLCAweDIy NkUsIDB4MjI2RiwgMHgyMjY0LAorICAgICAweDIyNjUsIDB4MjIxRSwgMHgyMjM1LCAweDIyMzQs IDB4MjY0MiwgMHgyNjQwLCAweDAwQjAsIDB4MjAzMiwgMHgyMDMzLCAweDIxMDMsIDB4RkYwNCwg MHgwMEE0LAorICAgICAweEZGRTAsIDB4RkZFMSwgMHgyMDMwLCAweDAwQTcsIDB4MjExNiwgMHgy NjA2LCAweDI2MDUsIDB4MjVDQiwgMHgyNUNGLCAweDI1Q0UsIDB4MjVDNywgMHgyNUM2LAorICAg ICAweDI1QTEsIDB4MjVBMCwgMHgyNUIzLCAweDI1QjIsIDB4MjAzQiwgMHgyMTkyLCAweDIxOTAs IDB4MjE5MSwgMHgyMTkzLCAweDMwMTMsCisgXTsKKyAKKyBwdWIgc3RhdGljIEdCMjMxMl9TWU1C T0xTX0FGVEVSX0dSRUVLOiBbdTE2OyAyMl0gPSBbCisgICAgIDB4RkUzNSwgMHhGRTM2LCAweEZF MzksIDB4RkUzQSwgMHhGRTNGLCAweEZFNDAsIDB4RkUzRCwgMHhGRTNFLCAweEZFNDEsIDB4RkU0 MiwgMHhGRTQzLCAweEZFNDQsCistICAgIDB4RTc5NCwgMHhFNzk1LCAweEZFM0IsIDB4RkUzQywg MHhGRTM3LCAweEZFMzgsIDB4RkUzMSwgMHhFNzk2LCAweEZFMzMsIDB4RkUzNCwKKysgICAgMHhG RTE3LCAweEZFMTgsIDB4RkUzQiwgMHhGRTNDLCAweEZFMzcsIDB4RkUzOCwgMHhGRTMxLCAweEZF MTksIDB4RkUzMywgMHhGRTM0LAorIF07CisgCisgcHViIHN0YXRpYyBHQjIzMTJfUElOWUlOOiBb dTE2OyAzMl0gPSBbCisgICAgIDB4MDEwMSwgMHgwMEUxLCAweDAxQ0UsIDB4MDBFMCwgMHgwMTEz LCAweDAwRTksIDB4MDExQiwgMHgwMEU4LCAweDAxMkIsIDB4MDBFRCwgMHgwMUQwLCAweDAwRUMs CisgICAgIDB4MDE0RCwgMHgwMEYzLCAweDAxRDIsIDB4MDBGMiwgMHgwMTZCLCAweDAwRkEsIDB4 MDFENCwgMHgwMEY5LCAweDAxRDYsIDB4MDFEOCwgMHgwMURBLCAweDAxREMsCisgICAgIDB4MDBG QywgMHgwMEVBLCAweDAyNTEsIDB4MUUzRiwgMHgwMTQ0LCAweDAxNDgsIDB4MDFGOSwgMHgwMjYx LAorIF07CisgCistcHViIHN0YXRpYyBHQjIzMTJfT1RIRVJfUE9JTlRFUlM6IFt1MTY7IDQ0XSA9 IFsKKytwdWIgc3RhdGljIEdCMjMxMl9PVEhFUl9QT0lOVEVSUzogW3UxNjsgNDddID0gWworICAg ICAweDAwMDAsIDB4MDAwQSwgMHgwMDEwLCAweDAwMjQsIDB4MDAzOCwgMHgwMDQyLCAweDAwNDMs IDB4MDA0NCwgMHgwMDRFLCAweDAwNTAsIDB4MDA1QywgMHgwMDVFLAorICAgICAweDAwNjEsIDB4 MDA2MiwgMHgwMEJCLCAweDAwQkMsIDB4MDEwRiwgMHgwMTFBLCAweDAxNzAsIDB4MDE3OCwgMHgw MTg5LCAweDAxOTAsIDB4MDE5OCwgMHgwMUE5LAorLSAgICAweDAxQjAsIDB4MDFCNywgMHgwMUNE LCAweDAxRDYsIDB4MDFEQywgMHgwMURELCAweDAxRjcsIDB4MDIwNiwgMHgwMjBDLCAweDAyMEQs IDB4MDIyNywgMHgwMjM0LAorLSAgICAweDAyNTQsIDB4MDI1OCwgMHgwMjdELCAweDAyOTIsIDB4 MDI5NSwgMHgwMkUxLCAweDAyRjAsIDB4MDUyNCwKKysgICAgMHgwMUIwLCAweDAxQjEsIDB4MDFC MiwgMHgwMUIzLCAweDAxQjcsIDB4MDFDRCwgMHgwMUQ2LCAweDAxREMsIDB4MDFERCwgMHgwMUY3 LCAweDAyMDYsIDB4MDIwQywKKysgICAgMHgwMjBELCAweDAyMjcsIDB4MDIzNCwgMHgwMjU0LCAw eDAyNTgsIDB4MDI3RCwgMHgwMjkyLCAweDAyOTUsIDB4MDJFMSwgMHgwMkYwLCAweDA1MjQsCisg XTsKKyAKKy1wdWIgc3RhdGljIEdCMjMxMl9PVEhFUl9VTlNPUlRFRF9PRkZTRVRTOiBbdTE2OyA0 M10gPSBbCisrcHViIHN0YXRpYyBHQjIzMTJfT1RIRVJfVU5TT1JURURfT0ZGU0VUUzogW3UxNjsg NDZdID0gWworICAgICAweDIxNzAsIDB4RTc2NiwgMHgyNDg4LCAweDI0NzQsIDB4MjQ2MCwgMHgy MEFDLCAweEU3NkQsIDB4MzIyMCwgMHhFNzZFLCAweDIxNjAsIDB4RTc3MCwgMHhGRjAxLAorICAg ICAweEZGRTUsIDB4RkYwNSwgMHhGRkUzLCAweDMwNDEsIDB4RTc3MiwgMHgzMEExLCAweEU3N0Qs IDB4MDM5MSwgMHgwM0EzLCAweEU3ODUsIDB4MDNCMSwgMHgwM0MzLAorLSAgICAweEU3OEQsIDB4 MDAwMCwgMHhFNzk3LCAweDA0MTAsIDB4MDQwMSwgMHgwNDE2LCAweEU3QTAsIDB4MDQzMCwgMHgw NDUxLCAweDA0MzYsIDB4RTdBRiwgMHgwMDAwLAorLSAgICAweEU3QzksIDB4MzEwNSwgMHhFN0NE LCAweEU3RkUsIDB4MjUwMCwgMHhFODAxLCAweEUwMDAsCisrICAgIDB4RkUxMCwgMHhGRTEyLCAw eEZFMTEsIDB4RkUxMywgMHgwMDAwLCAweEU3OTcsIDB4MDQxMCwgMHgwNDAxLCAweDA0MTYsIDB4 RTdBMCwgMHgwNDMwLCAweDA0NTEsCisrICAgIDB4MDQzNiwgMHhFN0FGLCAweDAwMDAsIDB4RTdD OSwgMHgzMTA1LCAweEU3Q0QsIDB4RTdGRSwgMHgyNTAwLCAweEU4MDEsIDB4RTAwMCwKKyBdOwor IAorIHB1YiBzdGF0aWMgR0IxODAzMF9SQU5HRV9QT0lOVEVSUzogW3UxNjsgMjA2XSA9IFsKKyAg ICAgMHgwMDAwLCAweDAwMjQsIDB4MDAyNiwgMHgwMDJELCAweDAwMzIsIDB4MDA1MSwgMHgwMDU5 LCAweDAwNUYsIDB4MDA2MCwgMHgwMDY0LCAweDAwNjcsIDB4MDA2OCwKKyAgICAgMHgwMDY5LCAw eDAwNkQsIDB4MDA3RSwgMHgwMDg1LCAweDAwOTQsIDB4MDBBQywgMHgwMEFGLCAweDAwQjMsIDB4 MDBEMCwgMHgwMTMyLCAweDAxMzMsIDB4MDEzNCwKKyAgICAgMHgwMTM1LCAweDAxMzYsIDB4MDEz NywgMHgwMTM4LCAweDAxMzksIDB4MDE1NSwgMHgwMUFDLCAweDAxQkIsIDB4MDIyMCwgMHgwMjIx LCAweDAyMkUsIDB4MDJFNSwKKyAgICAgMHgwMkU2LCAweDAyRUQsIDB4MDJFRSwgMHgwMzI1LCAw eDAzMzMsIDB4MDMzNCwgMHgxRUYyLCAweDFFRjQsIDB4MUVGNSwgMHgxRUY3LCAweDFFRkUsIDB4 MUYwNywKKyAgICAgMHgxRjA4LCAweDFGMDksIDB4MUYwRSwgMHgxRjdFLCAweDFGRDQsIDB4MUZE NSwgMHgxRkQ4LCAweDFGRTQsIDB4MUZFRSwgMHgyMDJDLCAweDIwMzAsIDB4MjA0NiwKK2RpZmYg LS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy9nYjE4MDMwLnJzIGIvdGhp cmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvZ2IxODAzMC5ycworLS0tIGEvdGhpcmRfcGFy dHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvZ2IxODAzMC5ycworKysrIGIvdGhpcmRfcGFydHkvcnVz dC9lbmNvZGluZ19ycy9zcmMvZ2IxODAzMC5ycworQEAgLTQsMTYgKzQsMTcgQEAKKyAvLyBMaWNl bnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wIDxMSUNFTlNFLUFQQUNI RSBvcgorIC8vIGh0dHBzOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjA+IG9y IHRoZSBNSVQgbGljZW5zZQorIC8vIDxMSUNFTlNFLU1JVCBvciBodHRwczovL29wZW5zb3VyY2Uu b3JnL2xpY2Vuc2VzL01JVD4sIGF0IHlvdXIKKyAvLyBvcHRpb24uIFRoaXMgZmlsZSBtYXkgbm90 IGJlIGNvcGllZCwgbW9kaWZpZWQsIG9yIGRpc3RyaWJ1dGVkCisgLy8gZXhjZXB0IGFjY29yZGlu ZyB0byB0aG9zZSB0ZXJtcy4KKyAKKyB1c2Ugc3VwZXI6Oio7CisgdXNlIGNyYXRlOjpkYXRhOjoq OworK3VzZSBjcmF0ZTo6Z2IxODAzMF8yMDIyOjoqOworIHVzZSBjcmF0ZTo6aGFuZGxlczo6KjsK KyB1c2UgY3JhdGU6OnZhcmlhbnQ6Oio7CisgLy8gUnVzdCAxLjE0LjAgcmVxdWlyZXMgdGhlIGZv bGxvd2luZyBkZXNwaXRlIHRoZSBhc3RlcmlzayBhYm92ZS4KKyB1c2Ugc3VwZXI6OmluX2luY2x1 c2l2ZV9yYW5nZTE2OworIHVzZSBzdXBlcjo6aW5fcmFuZ2UxNjsKKyAKKyBlbnVtIEdiMTgwMzBQ ZW5kaW5nIHsKKyAgICAgTm9uZSwKK0BAIC0zNDIsMTggKzM0MywyNSBAQCBmbiBnYmtfZW5jb2Rl X25vbl91bmlmaWVkKGJtcDogdTE2KSAtPiBPCisgICAgICAgICB7CisgICAgICAgICAgICAgLy8g RGlhY3JpdGljcyBhbmQgTGF0aW4gMSBzeW1ib2xzCisgICAgICAgICAgICAgaWYgbGV0IFNvbWUo cG9zKSA9IHBvc2l0aW9uKCZHQjIzMTJfU1lNQk9MU1szLi4oMHhBQyAtIDB4NjApXSwgYm1wKSB7 CisgICAgICAgICAgICAgICAgIHJldHVybiBTb21lKCgweEExLCBwb3MgKyAweEExICsgMykpOwor ICAgICAgICAgICAgIH0KKyAgICAgICAgIH0KKyAgICAgICAgIHJldHVybiBOb25lOworICAgICB9 CistICAgIGlmIGJtcCA+PSAweEU3OTQgeworLSAgICAgICAgLy8gVmFyaW91cyBicmFja2V0cywg YWxsIGluIFBVQSBvciBmdWxsLXdpZHRoIHJlZ2lvbnMKKysKKysgICAgaWYgaW5faW5jbHVzaXZl X3JhbmdlMTYoYm1wLCAweEU3OEQsIDB4RTg2NCkgeworKyAgICAgICAgLy8gVGhlIGFycmF5IGlz IHNvcnRlZCBidXQgc2hvcnQsIHNvIGxldCdzIGRvIGxpbmVhciBzZWFyY2guCisrICAgICAgICBp ZiBsZXQgU29tZShwb3MpID0gcG9zaXRpb24oJkdCMTgwMzBfMjAyMl9PVkVSUklERV9QVUFbLi5d LCBibXApIHsKKysgICAgICAgICAgICBsZXQgcGFpciA9ICZHQjE4MDMwXzIwMjJfT1ZFUlJJREVf QllURVNbcG9zXTsKKysgICAgICAgICAgICByZXR1cm4gU29tZSgocGFpclswXS5pbnRvKCksIHBh aXJbMV0uaW50bygpKSk7CisrICAgICAgICB9CisrICAgIH0gZWxzZSBpZiBibXAgPj0gMHhGRTE3 IHsKKysgICAgICAgIC8vIFZhcmlvdXMgYnJhY2tldHMsIGFsbCBpbiBmdWxsLXdpZHRoIHJlZ2lv bnMKKyAgICAgICAgIGlmIGxldCBTb21lKHBvcykgPSBwb3NpdGlvbigmR0IyMzEyX1NZTUJPTFNf QUZURVJfR1JFRUtbLi5dLCBibXApIHsKKyAgICAgICAgICAgICByZXR1cm4gU29tZSgoMHhBNiwg cG9zICsgKDB4OUYgLSAweDYwICsgMHhBMSkpKTsKKyAgICAgICAgIH0KKyAgICAgfSBlbHNlIGlm IGJtcCA9PSAweDFFM0YgeworICAgICAgICAgLy8gVGhlIG9uZSBQaW55aW4gcGxhY2VkIGVsc2V3 aGVyZSBvbiB0aGUgQk1QCisgICAgICAgICByZXR1cm4gU29tZSgoMHhBOCwgMHg3QiAtIDB4NjAg KyAweEExKSk7CisgICAgIH0gZWxzZSBpZiBpbl9yYW5nZTE2KGJtcCwgMHhBMDAwLCAweEQ4MDAp IHsKKyAgICAgICAgIC8vIFNpbmNlIEtvcmVhbiBoYXMgdXNhZ2UgaW4gQ2hpbmEsIGxldCdzIHNw ZW5kIGEgYnJhbmNoIHRvIGZhc3QtdHJhY2sKK0BAIC0zNzUsMTggKzM4MywyMSBAQCBmbiBnYmtf ZW5jb2RlX25vbl91bmlmaWVkKGJtcDogdTE2KSAtPiBPCisgICAgIH0KKyAgICAgLy8gR0JLIG90 aGVyIChleGNlcHQgcmFkaWNhbHMgYW5kIFBVQSBpbiBHQktfQk9UVE9NKS4KKyAgICAgaWYgbGV0 IFNvbWUob3RoZXJfcG9pbnRlcikgPSBnYmtfb3RoZXJfZW5jb2RlKGJtcCkgeworICAgICAgICAg bGV0IG90aGVyX2xlYWQgPSBvdGhlcl9wb2ludGVyIGFzIHVzaXplIC8gKDE5MCAtIDk0KTsKKyAg ICAgICAgIGxldCBvdGhlcl90cmFpbCA9IG90aGVyX3BvaW50ZXIgYXMgdXNpemUgJSAoMTkwIC0g OTQpOworICAgICAgICAgbGV0IG9mZnNldCA9IGlmIG90aGVyX3RyYWlsIDwgMHgzRiB7IDB4NDAg fSBlbHNlIHsgMHg0MSB9OworICAgICAgICAgcmV0dXJuIFNvbWUoKG90aGVyX2xlYWQgKyAoMHg4 MSArIDB4MjApLCBvdGhlcl90cmFpbCArIG9mZnNldCkpOworICAgICB9CistICAgIC8vIENKSyBS YWRpY2FscyBTdXBwbGVtZW50IG9yIFBVQSBpbiBHQktfQk9UVE9NCistICAgIGlmIGluX2luY2x1 c2l2ZV9yYW5nZTE2KGJtcCwgMHgyRTgxLCAweDJFQ0EpIHx8IGluX2luY2x1c2l2ZV9yYW5nZTE2 KGJtcCwgMHhFODE2LCAweEU4NjQpIHsKKysgICAgLy8gQ0pLIFJhZGljYWxzIFN1cHBsZW1lbnQs IFBVQSwgYW5kIFUrOUZCeCBpZGVvZ3JhcGhzIGluIEdCS19CT1RUT00KKysgICAgaWYgaW5faW5j bHVzaXZlX3JhbmdlMTYoYm1wLCAweDJFODEsIDB4MkVDQSkKKysgICAgICAgIHx8IGluX2luY2x1 c2l2ZV9yYW5nZTE2KGJtcCwgMHg5RkI0LCAweDlGQkIpCisrICAgICAgICB8fCBpbl9pbmNsdXNp dmVfcmFuZ2UxNihibXAsIDB4RTgxNiwgMHhFODU1KQorKyAgICB7CisgICAgICAgICBpZiBsZXQg U29tZShwb3MpID0gcG9zaXRpb24oJkdCS19CT1RUT01bMjEuLl0sIGJtcCkgeworICAgICAgICAg ICAgIGxldCB0cmFpbCA9IHBvcyArIDE2OworICAgICAgICAgICAgIGxldCBvZmZzZXQgPSBpZiB0 cmFpbCA8IDB4M0YgeyAweDQwIH0gZWxzZSB7IDB4NDEgfTsKKyAgICAgICAgICAgICByZXR1cm4g U29tZSgoMHhGRSwgdHJhaWwgKyBvZmZzZXQpKTsKKyAgICAgICAgIH0KKyAgICAgfQorICAgICAv LyBHQjIzMTIgYm90dG9tIFBVQQorICAgICBsZXQgYm1wX21pbnVzX2diMjMxMl9ib3R0b21fcHVh ID0gYm1wLndyYXBwaW5nX3N1YigweEUyMzQpOworQEAgLTYwMiwyMSArNjEzLDI4IEBAIG1vZCB0 ZXN0cyB7CisgCisgICAgICAgICAvLyB0d28gYnl0ZXMKKyAgICAgICAgIGRlY29kZV9nYjE4MDMw KGIiXHg4MVx4NDAiLCAiXHV7NEUwMn0iKTsKKyAgICAgICAgIGRlY29kZV9nYjE4MDMwKGIiXHg4 MVx4N0UiLCAiXHV7NEU4QX0iKTsKKyAgICAgICAgIGRlY29kZV9nYjE4MDMwKGIiXHg4MVx4N0Yi LCAiXHV7RkZGRH1cdXswMDdGfSIpOworICAgICAgICAgZGVjb2RlX2diMTgwMzAoYiJceDgxXHg4 MCIsICJcdXs0RTkwfSIpOworICAgICAgICAgZGVjb2RlX2diMTgwMzAoYiJceDgxXHhGRSIsICJc dXs0RkEyfSIpOworICAgICAgICAgZGVjb2RlX2diMTgwMzAoYiJceEZFXHg0MCIsICJcdXtGQTBD fSIpOworLSAgICAgICAgZGVjb2RlX2diMTgwMzAoYiJceEZFXHg3RSIsICJcdXtFODQzfSIpOwor ICAgICAgICAgZGVjb2RlX2diMTgwMzAoYiJceEZFXHg3RiIsICJcdXtGRkZEfVx1ezAwN0Z9Iik7 CisgICAgICAgICBkZWNvZGVfZ2IxODAzMChiIlx4RkVceDgwIiwgIlx1ezQ3MjN9Iik7CisgICAg ICAgICBkZWNvZGVfZ2IxODAzMChiIlx4RkVceEZFIiwgIlx1e0U0QzV9Iik7CisgCisrICAgICAg ICAvLyBDaGFuZ2VzIGJldHdlZW4gR0IxODAzMC0yMDA1IGFuZCBHQjE4MDMwLTIwMjIKKysgICAg ICAgIGRlY29kZV9nYjE4MDMwKGIiXHhGRVx4N0UiLCAiXHV7OUZCOX0iKTsKKysgICAgICAgIGRl Y29kZV9nYjE4MDMwKGIiXHhBNlx4REQiLCAiXHV7RkUxNH0iKTsKKysKKysgICAgICAgIC8vIFRo ZXNlIG1hcHBpbmdzIHJlbWFpbiBpbiBwbGFjZSB0aGUgR0IxODAzMC0yMDA1IHdheSBkZXNwaXRl IEdCMTgwMzAtMjAyMgorKyAgICAgICAgZGVjb2RlX2diMTgwMzAoYiJceDgyXHgzNVx4OTFceDMy IiwgIlx1ezlGQjl9Iik7CisrICAgICAgICBkZWNvZGVfZ2IxODAzMChiIlx4ODRceDMxXHg4M1x4 MzAiLCAiXHV7RkUxNH0iKTsKKysKKyAgICAgICAgIC8vIFRoZSBkaWZmZXJlbmNlIGZyb20gdGhl IG9yaWdpbmFsIEdCMTgwMzAKKyAgICAgICAgIGRlY29kZV9nYjE4MDMwKGIiXHhBM1x4QTAiLCAi XHV7MzAwMH0iKTsKKyAgICAgICAgIGRlY29kZV9nYjE4MDMwKGIiXHhBMVx4QTEiLCAiXHV7MzAw MH0iKTsKKyAKKyAgICAgICAgIC8vIDB4RkYKKyAgICAgICAgIGRlY29kZV9nYjE4MDMwKGIiXHhG Rlx4NDAiLCAiXHV7RkZGRH1cdXswMDQwfSIpOworICAgICAgICAgZGVjb2RlX2diMTgwMzAoYiJc eEUzXHhGRlx4OUFceDMzIiwgIlx1e0ZGRkR9XHV7RkZGRH0iKTsgLy8gbm90IFx1e0ZGRkR9XHV7 RkZGRH1cdXswMDMzfSAhCisgICAgICAgICBkZWNvZGVfZ2IxODAzMChiIlx4RkZceDMyXHg5QVx4 MzMiLCAiXHV7RkZGRH1cdXswMDMyfVx1e0ZGRkR9Iik7IC8vIG5vdCBcdXtGRkZEfVx1ezAwMzJ9 XHV7RkZGRH1cdXswMDMzfSAhCitAQCAtNjc0LDE2ICs2OTIsMjUgQEAgbW9kIHRlc3RzIHsKKyAg ICAgICAgICAgICAvLyBNaXJpIGlzIHRvbyBzbG93CisgICAgICAgICAgICAgZW5jb2RlX2diMTgw MzAoIlx1ezI2MDN9IiwgYiJceDgxXHgzN1x4QTNceDMwIik7CisgICAgICAgICAgICAgZW5jb2Rl X2diMTgwMzAoIlx1ezFGNEE5fSIsIGIiXHg5NFx4MzlceERBXHgzMyIpOworICAgICAgICAgICAg IGVuY29kZV9nYjE4MDMwKCJcdXsxMEZGRkZ9IiwgYiJceEUzXHgzMlx4OUFceDM1Iik7CisgICAg ICAgICB9CisgCisgICAgICAgICAvLyBFZGdlIGNhc2VzCisgICAgICAgICBlbmNvZGVfZ2IxODAz MCgiXHV7MDBGN30iLCBiIlx4QTFceEMyIik7CisrCisrICAgICAgICAvLyBHQjE4MDMwLTIwMjIK KysgICAgICAgIGVuY29kZV9nYjE4MDMwKCJcdXs5RkI5fSIsIGIiXHhGRVx4N0UiKTsKKysgICAg ICAgIGVuY29kZV9nYjE4MDMwKCJcdXtGRTE0fSIsIGIiXHhBNlx4REQiKTsKKysgICAgICAgIGVu Y29kZV9nYjE4MDMwKCJcdXtFODQzfSIsIGIiXHhGRVx4N0UiKTsKKysgICAgICAgIGVuY29kZV9n YjE4MDMwKCJcdXtFNzkxfSIsIGIiXHhBNlx4REQiKTsKKysKKysgICAgICAgIC8vIE5vbi1jaGFu Z2UgaW4gR0IxODAzMC0yMDIyCisrICAgICAgICBlbmNvZGVfZ2IxODAzMCgiXHV7RTgxN30iLCBi Ilx4RkVceDUyIik7CisgICAgIH0KKyAKKyAgICAgI1t0ZXN0XQorICAgICBmbiB0ZXN0X2dia19l bmNvZGUoKSB7CisgICAgICAgICAvLyBFbXB0eQorICAgICAgICAgZW5jb2RlX2diaygiIiwgYiIi KTsKKyAKKyAgICAgICAgIC8vIEFTQ0lJCitAQCAtNzE2LDE2ICs3NDMsMjUgQEAgbW9kIHRlc3Rz IHsKKyAgICAgICAgICAgICAvLyBNaXJpIGlzIHRvbyBzbG93CisgICAgICAgICAgICAgZW5jb2Rl X2diaygiXHV7MjYwM30iLCBiIiYjOTczMTsiKTsKKyAgICAgICAgICAgICBlbmNvZGVfZ2JrKCJc dXsxRjRBOX0iLCBiIiYjMTI4MTY5OyIpOworICAgICAgICAgICAgIGVuY29kZV9nYmsoIlx1ezEw RkZGRn0iLCBiIiYjMTExNDExMTsiKTsKKyAgICAgICAgIH0KKyAKKyAgICAgICAgIC8vIEVkZ2Ug Y2FzZXMKKyAgICAgICAgIGVuY29kZV9nYmsoIlx1ezAwRjd9IiwgYiJceEExXHhDMiIpOworKwor KyAgICAgICAgLy8gR0IxODAzMC0yMDIyCisrICAgICAgICBlbmNvZGVfZ2IxODAzMCgiXHV7OUZC OX0iLCBiIlx4RkVceDdFIik7CisrICAgICAgICBlbmNvZGVfZ2IxODAzMCgiXHV7RkUxNH0iLCBi Ilx4QTZceEREIik7CisrICAgICAgICBlbmNvZGVfZ2IxODAzMCgiXHV7RTg0M30iLCBiIlx4RkVc eDdFIik7CisrICAgICAgICBlbmNvZGVfZ2IxODAzMCgiXHV7RTc5MX0iLCBiIlx4QTZceEREIik7 CisrCisrICAgICAgICAvLyBOb24tY2hhbmdlIGluIEdCMTgwMzAtMjAyMgorKyAgICAgICAgZW5j b2RlX2diMTgwMzAoIlx1e0U4MTd9IiwgYiJceEZFXHg1MiIpOworICAgICB9CisgCisgICAgICNb dGVzdF0KKyAgICAgI1tjZmdfYXR0cihtaXJpLCBpZ25vcmUpXSAvLyBNaXJpIGlzIHRvbyBzbG93 CisgICAgIGZuIHRlc3RfZ2IxODAzMF9kZWNvZGVfYWxsKCkgeworICAgICAgICAgbGV0IGlucHV0 ID0gaW5jbHVkZV9ieXRlcyEoInRlc3RfZGF0YS9nYjE4MDMwX2luLnR4dCIpOworICAgICAgICAg bGV0IGV4cGVjdGF0aW9uID0gaW5jbHVkZV9zdHIhKCJ0ZXN0X2RhdGEvZ2IxODAzMF9pbl9yZWYu dHh0Iik7CisgICAgICAgICBsZXQgKGNvdywgaGFkX2Vycm9ycykgPSBHQjE4MDMwLmRlY29kZV93 aXRob3V0X2JvbV9oYW5kbGluZyhpbnB1dCk7CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVz dC9lbmNvZGluZ19ycy9zcmMvZ2IxODAzMF8yMDIyLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9lbmNv ZGluZ19ycy9zcmMvZ2IxODAzMF8yMDIyLnJzCituZXcgZmlsZSBtb2RlIDEwMDY0NAorLS0tIC9k ZXYvbnVsbAorKysrIGIvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvZ2IxODAzMF8y MDIyLnJzCitAQCAtMCwwICsxLDU0IEBACisrLy8gQ29weXJpZ2h0IMKpIFdIQVRXRyAoQXBwbGUs IEdvb2dsZSwgTW96aWxsYSwgTWljcm9zb2Z0KS4KKysvLworKy8vIFJlZGlzdHJpYnV0aW9uIGFu ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorKy8vIG1v ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u ZGl0aW9ucyBhcmUgbWV0OgorKy8vCisrLy8gMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLCB0aGlzCisrLy8gICAg bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisrLy8KKysv LyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi b3ZlIGNvcHlyaWdodCBub3RpY2UsCisrLy8gICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbgorKy8vICAgIGFu ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorKy8v CisrLy8gMy4gTmVpdGhlciB0aGUgbmFtZSBvZiB0aGUgY29weXJpZ2h0IGhvbGRlciBub3IgdGhl IG5hbWVzIG9mIGl0cworKy8vICAgIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNl IG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisrLy8gICAgdGhpcyBzb2Z0d2FyZSB3 aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKysvLworKy8vIFRISVMg U09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklC VVRPUlMgIkFTIElTIgorKy8vIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKysvLyBJTVBMSUVEIFdBUlJBTlRJ RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T RSBBUkUKKysvLyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhP TERFUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFCisrLy8gRk9SIEFOWSBESVJFQ1QsIElORElS RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKysv LyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg U1VCU1RJVFVURSBHT09EUyBPUgorKy8vIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisrLy8gQ0FVU0VEIEFO RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU IExJQUJJTElUWSwKKysvLyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorKy8vIE9GIFRISVMgU09GVFdB UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisr CisrLy8vIFRoZSBQVUEgY29kZSBwb2ludHMgc3BlY2lhbC1jYXNlZCBpbiB0aGUgR0IxODAzMCBl bmNvZGVyLgorK3B1YihjcmF0ZSkgc3RhdGljIEdCMTgwMzBfMjAyMl9PVkVSUklERV9QVUE6IFt1 MTY7IDE4XSA9IFsKKysgICAgMHhFNzhELCAweEU3OEUsIDB4RTc4RiwgMHhFNzkwLCAweEU3OTEs IDB4RTc5MiwgMHhFNzkzLCAweEU3OTQsIDB4RTc5NSwgMHhFNzk2LCAweEU4MUUsIDB4RTgyNiwK KysgICAgMHhFODJCLCAweEU4MkMsIDB4RTgzMiwgMHhFODQzLCAweEU4NTQsIDB4RTg2NCwKKytd OworKworKy8vLyBUaGUgYnl0ZXMgY29ycmVzcG9uZGluZyB0byB0aGUgUFVBIGNvZGUgcG9pbnRz IHNwZWNpYWwtY2FzZWQgaW4gdGhlIEdCMTgwMzAgZW5jb2Rlci4KKytwdWIoY3JhdGUpIHN0YXRp YyBHQjE4MDMwXzIwMjJfT1ZFUlJJREVfQllURVM6IFtbdTg7IDJdOyAxOF0gPSBbCisrICAgIFsw eEE2LCAweEQ5XSwKKysgICAgWzB4QTYsIDB4REFdLAorKyAgICBbMHhBNiwgMHhEQl0sCisrICAg IFsweEE2LCAweERDXSwKKysgICAgWzB4QTYsIDB4RERdLAorKyAgICBbMHhBNiwgMHhERV0sCisr ICAgIFsweEE2LCAweERGXSwKKysgICAgWzB4QTYsIDB4RUNdLAorKyAgICBbMHhBNiwgMHhFRF0s CisrICAgIFsweEE2LCAweEYzXSwKKysgICAgWzB4RkUsIDB4NTldLAorKyAgICBbMHhGRSwgMHg2 MV0sCisrICAgIFsweEZFLCAweDY2XSwKKysgICAgWzB4RkUsIDB4NjddLAorKyAgICBbMHhGRSwg MHg2RF0sCisrICAgIFsweEZFLCAweDdFXSwKKysgICAgWzB4RkUsIDB4OTBdLAorKyAgICBbMHhG RSwgMHhBMF0sCisrXTsKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3Jz L3NyYy9saWIucnMgYi90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy9saWIucnMKKy0t LSBhL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL2xpYi5ycworKysrIGIvdGhpcmRf cGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvbGliLnJzCitAQCAtMiwxNiArMiw0NyBAQAorIC8v IGZpbGUgYXQgdGhlIHRvcC1sZXZlbCBkaXJlY3Rvcnkgb2YgdGhpcyBkaXN0cmlidXRpb24uCisg Ly8KKyAvLyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wIDxM SUNFTlNFLUFQQUNIRSBvcgorIC8vIGh0dHBzOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElD RU5TRS0yLjA+IG9yIHRoZSBNSVQgbGljZW5zZQorIC8vIDxMSUNFTlNFLU1JVCBvciBodHRwczov L29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVD4sIGF0IHlvdXIKKyAvLyBvcHRpb24uIFRoaXMg ZmlsZSBtYXkgbm90IGJlIGNvcGllZCwgbW9kaWZpZWQsIG9yIGRpc3RyaWJ1dGVkCisgLy8gZXhj ZXB0IGFjY29yZGluZyB0byB0aG9zZSB0ZXJtcy4KKyAKKysvLyBUaGUgYWJvdmUgbGljZW5zZSBh cHBsaWVzIHRvIGNvZGUgaW4gdGhpcyBmaWxlLiBUaGUgbGFiZWwgZGF0YSBpbgorKy8vIHRoaXMg ZmlsZSBpcyBnZW5lcmF0ZWQgZnJvbSBXSEFUV0cncyBlbmNvZGluZ3MuanNvbiwgd2hpY2ggY2Ft ZSB1bmRlcgorKy8vIHRoZSBmb2xsb3dpbmcgbGljZW5zZToKKysKKysvLyBDb3B5cmlnaHQgwqkg V0hBVFdHIChBcHBsZSwgR29vZ2xlLCBNb3ppbGxhLCBNaWNyb3NvZnQpLgorKy8vCisrLy8gUmVk aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3 aXRob3V0CisrLy8gbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl IGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6CisrLy8KKysvLyAxLiBSZWRpc3RyaWJ1dGlv bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2Us IHRoaXMKKysvLyAgICBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh aW1lci4KKysvLworKy8vIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKysvLyAgICB0aGlzIGxpc3Qgb2Yg Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0 aW9uCisrLy8gICAgYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0 cmlidXRpb24uCisrLy8KKysvLyAzLiBOZWl0aGVyIHRoZSBuYW1lIG9mIHRoZSBjb3B5cmlnaHQg aG9sZGVyIG5vciB0aGUgbmFtZXMgb2YgaXRzCisrLy8gICAgY29udHJpYnV0b3JzIG1heSBiZSB1 c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKysvLyAgICB0 aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgor Ky8vCisrLy8gVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERF UlMgQU5EIENPTlRSSUJVVE9SUyAiQVMgSVMiCisrLy8gQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorKy8vIElN UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS VElDVUxBUiBQVVJQT1NFIEFSRQorKy8vIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRI RSBDT1BZUklHSFQgSE9MREVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUKKysvLyBGT1IgQU5Z IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O U0VRVUVOVElBTAorKy8vIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisrLy8gU0VSVklDRVM7IExPU1MgT0Yg VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIK KysvLyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorKy8vIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisrLy8g T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT VUNIIERBTUFHRS4KKysKKyAjIVtjZmdfYXR0cigKKyAgICAgZmVhdHVyZSA9ICJjYXJnby1jbGlw cHkiLAorICAgICBhbGxvdyhkb2NfbWFya2Rvd24sIGlubGluZV9hbHdheXMsIG5ld19yZXRfbm9f c2VsZikKKyApXQorIAorIC8vISBlbmNvZGluZ19ycyBpcyBhIEdlY2tvLW9yaWVudGVkIEZyZWUg U29mdHdhcmUgLyBPcGVuIFNvdXJjZSBpbXBsZW1lbnRhdGlvbgorIC8vISBvZiB0aGUgW0VuY29k aW5nIFN0YW5kYXJkXShodHRwczovL2VuY29kaW5nLnNwZWMud2hhdHdnLm9yZy8pIGluIFJ1c3Qu CisgLy8hIEdlY2tvLW9yaWVudGVkIG1lYW5zIHRoYXQgY29udmVydGluZyB0byBhbmQgZnJvbSBV VEYtMTYgaXMgc3VwcG9ydGVkIGluCitAQCAtNzI1LDE2ICs3NTYsMTcgQEAgbW9kIHNpbWRfZnVu Y3M7CisgCisgI1tjZmcoYWxsKHRlc3QsIGZlYXR1cmUgPSAiYWxsb2MiKSldCisgbW9kIHRlc3Rp bmc7CisgCisgbW9kIGJpZzU7CisgbW9kIGV1Y19qcDsKKyBtb2QgZXVjX2tyOworIG1vZCBnYjE4 MDMwOworK21vZCBnYjE4MDMwXzIwMjI7CisgbW9kIGlzb18yMDIyX2pwOworIG1vZCByZXBsYWNl bWVudDsKKyBtb2Qgc2hpZnRfamlzOworIG1vZCBzaW5nbGVfYnl0ZTsKKyBtb2QgdXRmXzE2Owor IG1vZCB1dGZfODsKKyBtb2QgeF91c2VyX2RlZmluZWQ7CisgCitAQCAtOTA5LDE5ICs5NDEsMjAg QEAgcHViIHN0YXRpYyBHQktfSU5JVDogRW5jb2RpbmcgPSBFbmNvZGluZworICAgICBuYW1lOiAi R0JLIiwKKyAgICAgdmFyaWFudDogVmFyaWFudEVuY29kaW5nOjpHYmssCisgfTsKKyAKKyAvLy8g VGhlIEdCSyBlbmNvZGluZy4KKyAvLy8KKyAvLy8gVGhlIGRlY29kZXIgZm9yIHRoaXMgZW5jb2Rp bmcgaXMgdGhlIHNhbWUgYXMgdGhlIGRlY29kZXIgZm9yIGdiMTgwMzAuCisgLy8vIFRoZSBlbmNv ZGVyIHNpZGUgb2YgdGhpcyBlbmNvZGluZyBpcyBHQksgd2l0aCBXaW5kb3dzIGNvZGUgcGFnZSA5 MzYgZXVybworLS8vLyBzaWduIGJlaGF2aW9yLiBHQksgZXh0ZW5kcyBHQjIzMTItODAgdG8gY292 ZXIgdGhlIENKSyBVbmlmaWVkIElkZW9ncmFwaHMKKy0vLy8gVW5pY29kZSBibG9jayBhcyB3ZWxs IGFzIGEgaGFuZGZ1bCBvZiBpZGVvZ3JhcGhzIGZyb20gdGhlIENKSyBVbmlmaWVkCistLy8vIElk ZW9ncmFwaHMgRXh0ZW5zaW9uIEEgYW5kIENKSyBDb21wYXRpYmlsaXR5IElkZW9ncmFwaHMgYmxv Y2tzLgorKy8vLyBzaWduIGJlaGF2aW9yIGFuZCB3aXRoIHRoZSBjaGFuZ2VzIHRvIHR3by1ieXRl IHNlcXVlbmNlcyBtYWRlIGluIEdCMTgwMzAtMjAyMi4KKysvLy8gR0JLIGV4dGVuZHMgR0IyMzEy LTgwIHRvIGNvdmVyIHRoZSBDSksgVW5pZmllZCBJZGVvZ3JhcGhzIFVuaWNvZGUgYmxvY2sgYXMK KysvLy8gd2VsbCBhcyBhIGhhbmRmdWwgb2YgaWRlb2dyYXBocyBmcm9tIHRoZSBDSksgVW5pZmll ZCBJZGVvZ3JhcGhzIEV4dGVuc2lvbiBBCisrLy8vIGFuZCBDSksgQ29tcGF0aWJpbGl0eSBJZGVv Z3JhcGhzIGJsb2Nrcy4KKyAvLy8KKyAvLy8gVW5saWtlIGUuZy4gaW4gdGhlIGNhc2Ugb2YgSVNP LTg4NTktMSBhbmQgd2luZG93cy0xMjUyLCBHQksgZW5jb2RlciB3YXNuJ3QKKyAvLy8gdW5pZmll ZCB3aXRoIHRoZSBnYjE4MDMwIGVuY29kZXIgaW4gdGhlIEVuY29kaW5nIFN0YW5kYXJkIG91dCBv ZiBjb25jZXJuCisgLy8vIHRoYXQgc2VydmVycyB0aGF0IGV4cGVjdCBHQksgZm9ybSBzdWJtaXNz aW9ucyBtaWdodCBub3QgYmUgYWJsZSB0byBoYW5kbGUKKyAvLy8gdGhlIGZvdXItYnl0ZSBzZXF1 ZW5jZXMuCisgLy8vCisgLy8vIFtJbmRleCB2aXN1YWxpemF0aW9uIGZvciB0aGUgdHdvLWJ5dGUg c2VxdWVuY2VzXShodHRwczovL2VuY29kaW5nLnNwZWMud2hhdHdnLm9yZy9nYjE4MDMwLmh0bWwp LAorIC8vLyBbVmlzdWFsaXphdGlvbiBvZiBCTVAgY292ZXJhZ2Ugb2YgdGhlIHR3by1ieXRlIGlu ZGV4XShodHRwczovL2VuY29kaW5nLnNwZWMud2hhdHdnLm9yZy9nYjE4MDMwLWJtcC5odG1sKQor QEAgLTE2NTMsMjAgKzE2ODYsMjEgQEAgcHViIHN0YXRpYyBVVEZfODogJidzdGF0aWMgRW5jb2Rp bmcgPSAmVQorIC8vLyBpdGVtcy4KKyBwdWIgc3RhdGljIEdCMTgwMzBfSU5JVDogRW5jb2Rpbmcg PSBFbmNvZGluZyB7CisgICAgIG5hbWU6ICJnYjE4MDMwIiwKKyAgICAgdmFyaWFudDogVmFyaWFu dEVuY29kaW5nOjpHYjE4MDMwLAorIH07CisgCisgLy8vIFRoZSBnYjE4MDMwIGVuY29kaW5nLgor IC8vLworLS8vLyBUaGlzIGVuY29kaW5nIG1hdGNoZXMgR0IxODAzMC0yMDA1IGV4Y2VwdCB0aGUg dHdvLWJ5dGUgc2VxdWVuY2UgMHhBMyAweEEwCistLy8vIG1hcHMgdG8gVSszMDAwIGZvciBjb21w YXRpYmlsaXR5IHdpdGggZXhpc3RpbmcgV2ViIGNvbnRlbnQuIEFzIGEgcmVzdWx0LAorLS8vLyB0 aGlzIGVuY29kaW5nIGNhbiByZXByZXNlbnQgYWxsIG9mIFVuaWNvZGUgZXhjZXB0IGZvciB0aGUg cHJpdmF0ZS11c2UKKy0vLy8gY2hhcmFjdGVyIFUrRTVFNS4KKysvLy8gVGhpcyBlbmNvZGluZyBt YXRjaGVzIEdCMTgwMzAtMjAyMiBleGNlcHQgdGhlIHR3by1ieXRlIHNlcXVlbmNlIDB4QTMgMHhB MAorKy8vLyBtYXBzIHRvIFUrMzAwMCBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIGV4aXN0aW5nIFdl YiBjb250ZW50IGFuZCB0aGUgZm91ci1ieXRlCisrLy8vIHNlcXVlbmNlcyBmb3IgdGhlIG5vbi1Q VUEgY2hhcmFjdGVycyB0aGF0IGdvdCB0d28tYnl0ZSBzZXF1ZW5jZXMgc3RpbGwgZGVjb2RlCisr Ly8vIHRvIHRoZSBzYW1lIG5vbi1QVUEgY2hhcmFjdGVycyBhcyBpbiBHQjE4MDMwLTIwMDUuIEFz IGEgcmVzdWx0LCB0aGlzIGVuY29kaW5nCisrLy8vIGNhbiByZXByZXNlbnQgYWxsIG9mIFVuaWNv ZGUgZXhjZXB0IGZvciAxOSBwcml2YXRlLXVzZSBjaGFyYWN0ZXJzLgorIC8vLworIC8vLyBbSW5k ZXggdmlzdWFsaXphdGlvbiBmb3IgdGhlIHR3by1ieXRlIHNlcXVlbmNlc10oaHR0cHM6Ly9lbmNv ZGluZy5zcGVjLndoYXR3Zy5vcmcvZ2IxODAzMC5odG1sKSwKKyAvLy8gW1Zpc3VhbGl6YXRpb24g b2YgQk1QIGNvdmVyYWdlIG9mIHRoZSB0d28tYnl0ZSBpbmRleF0oaHR0cHM6Ly9lbmNvZGluZy5z cGVjLndoYXR3Zy5vcmcvZ2IxODAzMC1ibXAuaHRtbCkKKyAvLy8KKyAvLy8gVGhpcyBlbmNvZGlu ZyBtYXRjaGVzIHRoZSBXaW5kb3dzIGNvZGUgcGFnZSA1NDkzNi4KKyAvLy8KKyAvLy8gVGhpcyB3 aWxsIGNoYW5nZSBmcm9tIGBzdGF0aWNgIHRvIGBjb25zdGAgaWYgUnVzdCBjaGFuZ2VzCisgLy8v IHRvIG1ha2UgdGhlIHJlZmVyZW50IG9mIGBwdWIgY29uc3QgRk9POiAmJ3N0YXRpYyBFbmNvZGlu Z2AKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy90ZXN0X2Rh dGEvYmlnNV9pbi50eHQgYi90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy90ZXN0X2Rh dGEvYmlnNV9pbi50eHQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3Rl c3RfZGF0YS9iaWc1X2luLnR4dAorKysrIGIvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9z cmMvdGVzdF9kYXRhL2JpZzVfaW4udHh0CitAQCAtMSwxMCArMSw5IEBACistQW55IGNvcHlyaWdo dCB0byB0aGUgdGVzdCBjb2RlIGJlbG93IHRoaXMgY29tbWVudCBpcyBkZWRpY2F0ZWQgdG8gdGhl CistUHVibGljIERvbWFpbi4gaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvcHVibGljZG9tYWlu L3plcm8vMS4wLworK0dlbmVyYXRlZCBmcm9tIFdIQVRXRyBpbmRleGVzLmpzb247IHNlZSBMSUNF TlNFLVdIQVRXRy4KKyAKKyBUaGlzIGlzIGEgZ2VuZXJhdGVkIGZpbGUuIFBsZWFzZSBkbyBub3Qg ZWRpdC4KKyBJbnN0ZWFkLCBwbGVhc2UgcmVnZW5lcmF0ZSB1c2luZyBnZW5lcmF0ZS1lbmNvZGlu Zy1kYXRhLnB5Cisg77+9QAorIO+/vUEKKyDvv71CCisg77+9QworIO+/vUQKK2RpZmYgLS1naXQg YS90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy90ZXN0X2RhdGEvYmlnNV9pbl9yZWYu dHh0IGIvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvdGVzdF9kYXRhL2JpZzVfaW5f cmVmLnR4dAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvdGVzdF9kYXRh L2JpZzVfaW5fcmVmLnR4dAorKysrIGIvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMv dGVzdF9kYXRhL2JpZzVfaW5fcmVmLnR4dAorQEAgLTEsMTAgKzEsOSBAQAorLUFueSBjb3B5cmln aHQgdG8gdGhlIHRlc3QgY29kZSBiZWxvdyB0aGlzIGNvbW1lbnQgaXMgZGVkaWNhdGVkIHRvIHRo ZQorLVB1YmxpYyBEb21haW4uIGh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL3B1YmxpY2RvbWFp bi96ZXJvLzEuMC8KKytHZW5lcmF0ZWQgZnJvbSBXSEFUV0cgaW5kZXhlcy5qc29uOyBzZWUgTElD RU5TRS1XSEFUV0cuCisgCisgVGhpcyBpcyBhIGdlbmVyYXRlZCBmaWxlLiBQbGVhc2UgZG8gbm90 IGVkaXQuCisgSW5zdGVhZCwgcGxlYXNlIHJlZ2VuZXJhdGUgdXNpbmcgZ2VuZXJhdGUtZW5jb2Rp bmctZGF0YS5weQorIO+/vUAKKyDvv71BCisg77+9QgorIO+/vUMKKyDvv71ECitkaWZmIC0tZ2l0 IGEvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvdGVzdF9kYXRhL2JpZzVfb3V0LnR4 dCBiL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3Rlc3RfZGF0YS9iaWc1X291dC50 eHQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3Rlc3RfZGF0YS9iaWc1 X291dC50eHQKKysrKyBiL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3Rlc3RfZGF0 YS9iaWc1X291dC50eHQKK0BAIC0xLDEwICsxLDkgQEAKKy1BbnkgY29weXJpZ2h0IHRvIHRoZSB0 ZXN0IGNvZGUgYmVsb3cgdGhpcyBjb21tZW50IGlzIGRlZGljYXRlZCB0byB0aGUKKy1QdWJsaWMg RG9tYWluLiBodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9wdWJsaWNkb21haW4vemVyby8xLjAv CisrR2VuZXJhdGVkIGZyb20gV0hBVFdHIGluZGV4ZXMuanNvbjsgc2VlIExJQ0VOU0UtV0hBVFdH LgorIAorIFRoaXMgaXMgYSBnZW5lcmF0ZWQgZmlsZS4gUGxlYXNlIGRvIG5vdCBlZGl0LgorIElu c3RlYWQsIHBsZWFzZSByZWdlbmVyYXRlIHVzaW5nIGdlbmVyYXRlLWVuY29kaW5nLWRhdGEucHkK KyDjgIAKKyDvvIwKKyDjgIEKKyDjgIIKKyDvvI4KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9y dXN0L2VuY29kaW5nX3JzL3NyYy90ZXN0X2RhdGEvYmlnNV9vdXRfcmVmLnR4dCBiL3RoaXJkX3Bh cnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3Rlc3RfZGF0YS9iaWc1X291dF9yZWYudHh0CistLS0g YS90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy90ZXN0X2RhdGEvYmlnNV9vdXRfcmVm LnR4dAorKysrIGIvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvdGVzdF9kYXRhL2Jp ZzVfb3V0X3JlZi50eHQKK0BAIC0xLDEwICsxLDkgQEAKKy1BbnkgY29weXJpZ2h0IHRvIHRoZSB0 ZXN0IGNvZGUgYmVsb3cgdGhpcyBjb21tZW50IGlzIGRlZGljYXRlZCB0byB0aGUKKy1QdWJsaWMg RG9tYWluLiBodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9wdWJsaWNkb21haW4vemVyby8xLjAv CisrR2VuZXJhdGVkIGZyb20gV0hBVFdHIGluZGV4ZXMuanNvbjsgc2VlIExJQ0VOU0UtV0hBVFdH LgorIAorIFRoaXMgaXMgYSBnZW5lcmF0ZWQgZmlsZS4gUGxlYXNlIGRvIG5vdCBlZGl0LgorIElu c3RlYWQsIHBsZWFzZSByZWdlbmVyYXRlIHVzaW5nIGdlbmVyYXRlLWVuY29kaW5nLWRhdGEucHkK KyDvv71ACisg77+9QQorIO+/vUIKKyDvv71DCisg77+9RAorZGlmZiAtLWdpdCBhL3RoaXJkX3Bh cnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3Rlc3RfZGF0YS9ldWNfa3JfaW4udHh0IGIvdGhpcmRf cGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvdGVzdF9kYXRhL2V1Y19rcl9pbi50eHQKKy0tLSBh L3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3Rlc3RfZGF0YS9ldWNfa3JfaW4udHh0 CisrKysgYi90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy90ZXN0X2RhdGEvZXVjX2ty X2luLnR4dAorQEAgLTEsMTAgKzEsOSBAQAorLUFueSBjb3B5cmlnaHQgdG8gdGhlIHRlc3QgY29k ZSBiZWxvdyB0aGlzIGNvbW1lbnQgaXMgZGVkaWNhdGVkIHRvIHRoZQorLVB1YmxpYyBEb21haW4u IGh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL3B1YmxpY2RvbWFpbi96ZXJvLzEuMC8KKytHZW5l cmF0ZWQgZnJvbSBXSEFUV0cgaW5kZXhlcy5qc29uOyBzZWUgTElDRU5TRS1XSEFUV0cuCisgCisg VGhpcyBpcyBhIGdlbmVyYXRlZCBmaWxlLiBQbGVhc2UgZG8gbm90IGVkaXQuCisgSW5zdGVhZCwg cGxlYXNlIHJlZ2VuZXJhdGUgdXNpbmcgZ2VuZXJhdGUtZW5jb2RpbmctZGF0YS5weQorIO+/vUEK KyDvv71CCisg77+9QworIO+/vUQKKyDvv71FCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVz dC9lbmNvZGluZ19ycy9zcmMvdGVzdF9kYXRhL2V1Y19rcl9pbl9yZWYudHh0IGIvdGhpcmRfcGFy dHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvdGVzdF9kYXRhL2V1Y19rcl9pbl9yZWYudHh0CistLS0g YS90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy90ZXN0X2RhdGEvZXVjX2tyX2luX3Jl Zi50eHQKKysrKyBiL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3Rlc3RfZGF0YS9l dWNfa3JfaW5fcmVmLnR4dAorQEAgLTEsMTAgKzEsOSBAQAorLUFueSBjb3B5cmlnaHQgdG8gdGhl IHRlc3QgY29kZSBiZWxvdyB0aGlzIGNvbW1lbnQgaXMgZGVkaWNhdGVkIHRvIHRoZQorLVB1Ymxp YyBEb21haW4uIGh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL3B1YmxpY2RvbWFpbi96ZXJvLzEu MC8KKytHZW5lcmF0ZWQgZnJvbSBXSEFUV0cgaW5kZXhlcy5qc29uOyBzZWUgTElDRU5TRS1XSEFU V0cuCisgCisgVGhpcyBpcyBhIGdlbmVyYXRlZCBmaWxlLiBQbGVhc2UgZG8gbm90IGVkaXQuCisg SW5zdGVhZCwgcGxlYXNlIHJlZ2VuZXJhdGUgdXNpbmcgZ2VuZXJhdGUtZW5jb2RpbmctZGF0YS5w eQorIOqwggorIOqwgworIOqwhQorIOqwhgorIOqwiworZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5 L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3Rlc3RfZGF0YS9ldWNfa3Jfb3V0LnR4dCBiL3RoaXJkX3Bh cnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3Rlc3RfZGF0YS9ldWNfa3Jfb3V0LnR4dAorLS0tIGEv dGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvdGVzdF9kYXRhL2V1Y19rcl9vdXQudHh0 CisrKysgYi90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy90ZXN0X2RhdGEvZXVjX2ty X291dC50eHQKK0BAIC0xLDEwICsxLDkgQEAKKy1BbnkgY29weXJpZ2h0IHRvIHRoZSB0ZXN0IGNv ZGUgYmVsb3cgdGhpcyBjb21tZW50IGlzIGRlZGljYXRlZCB0byB0aGUKKy1QdWJsaWMgRG9tYWlu LiBodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9wdWJsaWNkb21haW4vemVyby8xLjAvCisrR2Vu ZXJhdGVkIGZyb20gV0hBVFdHIGluZGV4ZXMuanNvbjsgc2VlIExJQ0VOU0UtV0hBVFdHLgorIAor IFRoaXMgaXMgYSBnZW5lcmF0ZWQgZmlsZS4gUGxlYXNlIGRvIG5vdCBlZGl0LgorIEluc3RlYWQs IHBsZWFzZSByZWdlbmVyYXRlIHVzaW5nIGdlbmVyYXRlLWVuY29kaW5nLWRhdGEucHkKKyDqsIIK KyDqsIMKKyDqsIUKKyDqsIYKKyDqsIsKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L2Vu Y29kaW5nX3JzL3NyYy90ZXN0X2RhdGEvZXVjX2tyX291dF9yZWYudHh0IGIvdGhpcmRfcGFydHkv cnVzdC9lbmNvZGluZ19ycy9zcmMvdGVzdF9kYXRhL2V1Y19rcl9vdXRfcmVmLnR4dAorLS0tIGEv dGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvdGVzdF9kYXRhL2V1Y19rcl9vdXRfcmVm LnR4dAorKysrIGIvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvdGVzdF9kYXRhL2V1 Y19rcl9vdXRfcmVmLnR4dAorQEAgLTEsMTAgKzEsOSBAQAorLUFueSBjb3B5cmlnaHQgdG8gdGhl IHRlc3QgY29kZSBiZWxvdyB0aGlzIGNvbW1lbnQgaXMgZGVkaWNhdGVkIHRvIHRoZQorLVB1Ymxp YyBEb21haW4uIGh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL3B1YmxpY2RvbWFpbi96ZXJvLzEu MC8KKytHZW5lcmF0ZWQgZnJvbSBXSEFUV0cgaW5kZXhlcy5qc29uOyBzZWUgTElDRU5TRS1XSEFU V0cuCisgCisgVGhpcyBpcyBhIGdlbmVyYXRlZCBmaWxlLiBQbGVhc2UgZG8gbm90IGVkaXQuCisg SW5zdGVhZCwgcGxlYXNlIHJlZ2VuZXJhdGUgdXNpbmcgZ2VuZXJhdGUtZW5jb2RpbmctZGF0YS5w eQorIO+/vUEKKyDvv71CCisg77+9QworIO+/vUQKKyDvv71FCitkaWZmIC0tZ2l0IGEvdGhpcmRf cGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvdGVzdF9kYXRhL2diMTgwMzBfaW4udHh0IGIvdGhp cmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvdGVzdF9kYXRhL2diMTgwMzBfaW4udHh0Cist LS0gYS90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy90ZXN0X2RhdGEvZ2IxODAzMF9p bi50eHQKKysrKyBiL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3Rlc3RfZGF0YS9n YjE4MDMwX2luLnR4dAorQEAgLTEsMTAgKzEsOSBAQAorLUFueSBjb3B5cmlnaHQgdG8gdGhlIHRl c3QgY29kZSBiZWxvdyB0aGlzIGNvbW1lbnQgaXMgZGVkaWNhdGVkIHRvIHRoZQorLVB1YmxpYyBE b21haW4uIGh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL3B1YmxpY2RvbWFpbi96ZXJvLzEuMC8K KytHZW5lcmF0ZWQgZnJvbSBXSEFUV0cgaW5kZXhlcy5qc29uOyBzZWUgTElDRU5TRS1XSEFUV0cu CisgCisgVGhpcyBpcyBhIGdlbmVyYXRlZCBmaWxlLiBQbGVhc2UgZG8gbm90IGVkaXQuCisgSW5z dGVhZCwgcGxlYXNlIHJlZ2VuZXJhdGUgdXNpbmcgZ2VuZXJhdGUtZW5jb2RpbmctZGF0YS5weQor IO+/vUAKKyDvv71BCisg77+9QgorIO+/vUMKKyDvv71ECitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFy dHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvdGVzdF9kYXRhL2diMTgwMzBfaW5fcmVmLnR4dCBiL3Ro aXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3Rlc3RfZGF0YS9nYjE4MDMwX2luX3JlZi50 eHQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3Rlc3RfZGF0YS9nYjE4 MDMwX2luX3JlZi50eHQKKysrKyBiL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3Rl c3RfZGF0YS9nYjE4MDMwX2luX3JlZi50eHQKK0BAIC0xLDEwICsxLDkgQEAKKy1BbnkgY29weXJp Z2h0IHRvIHRoZSB0ZXN0IGNvZGUgYmVsb3cgdGhpcyBjb21tZW50IGlzIGRlZGljYXRlZCB0byB0 aGUKKy1QdWJsaWMgRG9tYWluLiBodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9wdWJsaWNkb21h aW4vemVyby8xLjAvCisrR2VuZXJhdGVkIGZyb20gV0hBVFdHIGluZGV4ZXMuanNvbjsgc2VlIExJ Q0VOU0UtV0hBVFdHLgorIAorIFRoaXMgaXMgYSBnZW5lcmF0ZWQgZmlsZS4gUGxlYXNlIGRvIG5v dCBlZGl0LgorIEluc3RlYWQsIHBsZWFzZSByZWdlbmVyYXRlIHVzaW5nIGdlbmVyYXRlLWVuY29k aW5nLWRhdGEucHkKKyDkuIIKKyDkuIQKKyDkuIUKKyDkuIYKKyDkuI8KK0BAIC03MTgwLDQzICs3 MTc5LDQzIEBAIEluc3RlYWQsIHBsZWFzZSByZWdlbmVyYXRlIHVzaW5nIGdlbmVyYXQKKyDPgQor IM+DCisgz4QKKyDPhQorIM+GCisgz4cKKyDPiAorIM+JCist7p6NCist7p6OCist7p6PCist7p6Q Cist7p6RCist7p6SCist7p6TCisr77iQCisr77iSCisr77iRCisr77iTCisr77iUCisr77iVCisr 77iWCisg77i1Cisg77i2Cisg77i5Cisg77i6Cisg77i/Cisg77mACisg77i9Cisg77i+Cisg77mB Cisg77mCCisg77mDCisg77mECist7p6UCist7p6VCisr77iXCisr77iYCisg77i7Cisg77i8Cisg 77i3Cisg77i4Cisg77ixCist7p6WCisr77iZCisg77izCisg77i0Cisg7p6XCisg7p6YCisg7p6Z Cisg7p6aCisg7p6bCisg7p6cCitAQCAtMjM3NzMsODcgKzIzNzcyLDg3IEBAIEluc3RlYWQsIHBs ZWFzZSByZWdlbmVyYXRlIHVzaW5nIGdlbmVyYXQKKyDuoJYKKyDuoJcKKyDuoJgKKyDiuoQKKyDj kbMKKyDjkYcKKyDiuogKKyDiuosKKy3uoJ4KKyvpvrQKKyDjlp4KKyDjmJoKKyDjmI4KKyDiuowK KyDiupcKKyDjpa4KKyDjpJgKKy3uoKYKKyvpvrUKKyDjp48KKyDjp58KKyDjqbMKKyDjp5AKKy3u oKsKKy3uoKwKKyvpvrYKKyvpvrcKKyDjrY4KKyDjsa4KKyDjs6AKKyDiuqcKKyDuoLEKKy3uoLIK KyvpvrgKKyDiuqoKKyDkgZYKKyDkhZ8KKyDiuq4KKyDkjLcKKyDiurMKKyDiurYKKyDiurcKKyDu oLsKKyDkjrEKKyDkjqwKKyDiursKKyDkj50KKyDkk5YKKyDkmaEKKyDkmYwKKy3uoYMKKyvpvrkK KyDknKMKKyDknKkKKyDknbwKKyDkno0KKyDiu4oKKyDkpYcKKyDkpboKKyDkpb0KKyDkpoIKKyDk poMKKyDkpoUKKyDkpoYKKyDkpp8KKyDkppsKKyDkprcKKyDkprYKKy3uoZQKKyvpvroKKyDuoZUK KyDksqMKKyDksp8KKyDksqAKKyDksqEKKyDksbcKKyDksqIKKyDktJMKKyDktJQKKyDktJUKKyDk tJYKKyDktJcKKyDktJgKKyDktJkKKyDktq4KKy3uoaQKKyvpvrsKKyDukagKKyDukakKKyDukaoK KyDukasKKyDukawKKyDuka0KKyDuka4KKyDuka8KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9y dXN0L2VuY29kaW5nX3JzL3NyYy90ZXN0X2RhdGEvZ2IxODAzMF9vdXQudHh0IGIvdGhpcmRfcGFy dHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvdGVzdF9kYXRhL2diMTgwMzBfb3V0LnR4dAorLS0tIGEv dGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvdGVzdF9kYXRhL2diMTgwMzBfb3V0LnR4 dAorKysrIGIvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvdGVzdF9kYXRhL2diMTgw MzBfb3V0LnR4dAorQEAgLTEsMTAgKzEsOSBAQAorLUFueSBjb3B5cmlnaHQgdG8gdGhlIHRlc3Qg Y29kZSBiZWxvdyB0aGlzIGNvbW1lbnQgaXMgZGVkaWNhdGVkIHRvIHRoZQorLVB1YmxpYyBEb21h aW4uIGh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL3B1YmxpY2RvbWFpbi96ZXJvLzEuMC8KKytH ZW5lcmF0ZWQgZnJvbSBXSEFUV0cgaW5kZXhlcy5qc29uOyBzZWUgTElDRU5TRS1XSEFUV0cuCisg CisgVGhpcyBpcyBhIGdlbmVyYXRlZCBmaWxlLiBQbGVhc2UgZG8gbm90IGVkaXQuCisgSW5zdGVh ZCwgcGxlYXNlIHJlZ2VuZXJhdGUgdXNpbmcgZ2VuZXJhdGUtZW5jb2RpbmctZGF0YS5weQorIOS4 ggorIOS4hAorIOS4hQorIOS4hgorIOS4jworQEAgLTcxNzksNDMgKzcxNzgsNDMgQEAgSW5zdGVh ZCwgcGxlYXNlIHJlZ2VuZXJhdGUgdXNpbmcgZ2VuZXJhdAorIM+BCisgz4MKKyDPhAorIM+FCisg z4YKKyDPhworIM+ICisgz4kKKy3uno0KKy3uno4KKy3uno8KKy3unpAKKy3unpEKKy3unpIKKy3u npMKKyvvuJAKKyvvuJIKKyvvuJEKKyvvuJMKKyvvuJQKKyvvuJUKKyvvuJYKKyDvuLUKKyDvuLYK KyDvuLkKKyDvuLoKKyDvuL8KKyDvuYAKKyDvuL0KKyDvuL4KKyDvuYEKKyDvuYIKKyDvuYMKKyDv uYQKKy3unpQKKy3unpUKKyvvuJcKKyvvuJgKKyDvuLsKKyDvuLwKKyDvuLcKKyDvuLgKKyDvuLEK Ky3unpYKKyvvuJkKKyDvuLMKKyDvuLQKKyDunpcKKyDunpgKKyDunpkKKyDunpoKKyDunpsKKyDu npwKK0BAIC0yMzc3Miw4NyArMjM3NzEsODcgQEAgSW5zdGVhZCwgcGxlYXNlIHJlZ2VuZXJhdGUg dXNpbmcgZ2VuZXJhdAorIO6glgorIO6glworIO6gmAorIOK6hAorIOORsworIOORhworIOK6iAor IOK6iworLe6gngorK+m+tAorIOOWngorIOOYmgorIOOYjgorIOK6jAorIOK6lworIOOlrgorIOOk mAorLe6gpgorK+m+tQorIOOnjworIOOnnworIOOpsworIOOnkAorLe6gqworLe6grAorK+m+tgor K+m+tworIOOtjgorIOOxrgorIOOzoAorIOK6pworIO6gsQorLe6gsgorK+m+uAorIOK6qgorIOSB lgorIOSFnworIOK6rgorIOSMtworIOK6sworIOK6tgorIOK6tworIO6guworIOSOsQorIOSOrAor IOK6uworIOSPnQorIOSTlgorIOSZoQorIOSZjAorLe6hgworK+m+uQorIOScoworIOScqQorIOSd vAorIOSejQorIOK7igorIOSlhworIOSlugorIOSlvQorIOSmggorIOSmgworIOSmhQorIOSmhgor IOSmnworIOSmmworIOSmtworIOSmtgorLe6hlAorK+m+ugorIO6hlQorIOSyoworIOSynworIOSy oAorIOSyoQorIOSxtworIOSyogorIOS0kworIOS0lAorIOS0lQorIOS0lgorIOS0lworIOS0mAor IOS0mQorIOS2rgorLe6hpAorK+m+uworIO6RqAorIO6RqQorIO6RqgorIO6RqworIO6RrAorIO6R rQorIO6RrgorIO6RrworZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMv c3JjL3Rlc3RfZGF0YS9nYjE4MDMwX291dF9yZWYudHh0IGIvdGhpcmRfcGFydHkvcnVzdC9lbmNv ZGluZ19ycy9zcmMvdGVzdF9kYXRhL2diMTgwMzBfb3V0X3JlZi50eHQKKy0tLSBhL3RoaXJkX3Bh cnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3Rlc3RfZGF0YS9nYjE4MDMwX291dF9yZWYudHh0Cisr KysgYi90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy90ZXN0X2RhdGEvZ2IxODAzMF9v dXRfcmVmLnR4dAorQEAgLTEsMTAgKzEsOSBAQAorLUFueSBjb3B5cmlnaHQgdG8gdGhlIHRlc3Qg Y29kZSBiZWxvdyB0aGlzIGNvbW1lbnQgaXMgZGVkaWNhdGVkIHRvIHRoZQorLVB1YmxpYyBEb21h aW4uIGh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL3B1YmxpY2RvbWFpbi96ZXJvLzEuMC8KKytH ZW5lcmF0ZWQgZnJvbSBXSEFUV0cgaW5kZXhlcy5qc29uOyBzZWUgTElDRU5TRS1XSEFUV0cuCisg CisgVGhpcyBpcyBhIGdlbmVyYXRlZCBmaWxlLiBQbGVhc2UgZG8gbm90IGVkaXQuCisgSW5zdGVh ZCwgcGxlYXNlIHJlZ2VuZXJhdGUgdXNpbmcgZ2VuZXJhdGUtZW5jb2RpbmctZGF0YS5weQorIO+/ vUAKKyDvv71BCisg77+9QgorIO+/vUMKKyDvv71ECitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkv cnVzdC9lbmNvZGluZ19ycy9zcmMvdGVzdF9kYXRhL2lzb18yMDIyX2pwX2luLnR4dCBiL3RoaXJk X3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3Rlc3RfZGF0YS9pc29fMjAyMl9qcF9pbi50eHQK Ky0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3Rlc3RfZGF0YS9pc29fMjAy Ml9qcF9pbi50eHQKKysrKyBiL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3Rlc3Rf ZGF0YS9pc29fMjAyMl9qcF9pbi50eHQKK0BAIC0xLDEwICsxLDkgQEAKKy1BbnkgY29weXJpZ2h0 IHRvIHRoZSB0ZXN0IGNvZGUgYmVsb3cgdGhpcyBjb21tZW50IGlzIGRlZGljYXRlZCB0byB0aGUK Ky1QdWJsaWMgRG9tYWluLiBodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9wdWJsaWNkb21haW4v emVyby8xLjAvCisrR2VuZXJhdGVkIGZyb20gV0hBVFdHIGluZGV4ZXMuanNvbjsgc2VlIExJQ0VO U0UtV0hBVFdHLgorIAorIFRoaXMgaXMgYSBnZW5lcmF0ZWQgZmlsZS4gUGxlYXNlIGRvIG5vdCBl ZGl0LgorIEluc3RlYWQsIHBsZWFzZSByZWdlbmVyYXRlIHVzaW5nIGdlbmVyYXRlLWVuY29kaW5n LWRhdGEucHkKKyAbJEIhIRsoQgorIBskQiEiGyhCCisgGyRCISMbKEIKKyAbJEIhJBsoQgorIBsk QiElGyhCCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvdGVz dF9kYXRhL2lzb18yMDIyX2pwX2luX3JlZi50eHQgYi90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5n X3JzL3NyYy90ZXN0X2RhdGEvaXNvXzIwMjJfanBfaW5fcmVmLnR4dAorLS0tIGEvdGhpcmRfcGFy dHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvdGVzdF9kYXRhL2lzb18yMDIyX2pwX2luX3JlZi50eHQK KysrKyBiL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3Rlc3RfZGF0YS9pc29fMjAy Ml9qcF9pbl9yZWYudHh0CitAQCAtMSwxMCArMSw5IEBACistQW55IGNvcHlyaWdodCB0byB0aGUg dGVzdCBjb2RlIGJlbG93IHRoaXMgY29tbWVudCBpcyBkZWRpY2F0ZWQgdG8gdGhlCistUHVibGlj IERvbWFpbi4gaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvcHVibGljZG9tYWluL3plcm8vMS4w LworK0dlbmVyYXRlZCBmcm9tIFdIQVRXRyBpbmRleGVzLmpzb247IHNlZSBMSUNFTlNFLVdIQVRX Ry4KKyAKKyBUaGlzIGlzIGEgZ2VuZXJhdGVkIGZpbGUuIFBsZWFzZSBkbyBub3QgZWRpdC4KKyBJ bnN0ZWFkLCBwbGVhc2UgcmVnZW5lcmF0ZSB1c2luZyBnZW5lcmF0ZS1lbmNvZGluZy1kYXRhLnB5 Cisg44CACisg44CBCisg44CCCisg77yMCisg77yOCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkv cnVzdC9lbmNvZGluZ19ycy9zcmMvdGVzdF9kYXRhL2lzb18yMDIyX2pwX291dC50eHQgYi90aGly ZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy90ZXN0X2RhdGEvaXNvXzIwMjJfanBfb3V0LnR4 dAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvdGVzdF9kYXRhL2lzb18y MDIyX2pwX291dC50eHQKKysrKyBiL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3Rl c3RfZGF0YS9pc29fMjAyMl9qcF9vdXQudHh0CitAQCAtMSwxMCArMSw5IEBACistQW55IGNvcHly aWdodCB0byB0aGUgdGVzdCBjb2RlIGJlbG93IHRoaXMgY29tbWVudCBpcyBkZWRpY2F0ZWQgdG8g dGhlCistUHVibGljIERvbWFpbi4gaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvcHVibGljZG9t YWluL3plcm8vMS4wLworK0dlbmVyYXRlZCBmcm9tIFdIQVRXRyBpbmRleGVzLmpzb247IHNlZSBM SUNFTlNFLVdIQVRXRy4KKyAKKyBUaGlzIGlzIGEgZ2VuZXJhdGVkIGZpbGUuIFBsZWFzZSBkbyBu b3QgZWRpdC4KKyBJbnN0ZWFkLCBwbGVhc2UgcmVnZW5lcmF0ZSB1c2luZyBnZW5lcmF0ZS1lbmNv ZGluZy1kYXRhLnB5Cisg44CACisg44CBCisg44CCCisg77yMCisg77yOCitkaWZmIC0tZ2l0IGEv dGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvdGVzdF9kYXRhL2lzb18yMDIyX2pwX291 dF9yZWYudHh0IGIvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvdGVzdF9kYXRhL2lz b18yMDIyX2pwX291dF9yZWYudHh0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3Jz L3NyYy90ZXN0X2RhdGEvaXNvXzIwMjJfanBfb3V0X3JlZi50eHQKKysrKyBiL3RoaXJkX3BhcnR5 L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3Rlc3RfZGF0YS9pc29fMjAyMl9qcF9vdXRfcmVmLnR4dAor QEAgLTEsMTAgKzEsOSBAQAorLUFueSBjb3B5cmlnaHQgdG8gdGhlIHRlc3QgY29kZSBiZWxvdyB0 aGlzIGNvbW1lbnQgaXMgZGVkaWNhdGVkIHRvIHRoZQorLVB1YmxpYyBEb21haW4uIGh0dHA6Ly9j cmVhdGl2ZWNvbW1vbnMub3JnL3B1YmxpY2RvbWFpbi96ZXJvLzEuMC8KKytHZW5lcmF0ZWQgZnJv bSBXSEFUV0cgaW5kZXhlcy5qc29uOyBzZWUgTElDRU5TRS1XSEFUV0cuCisgCisgVGhpcyBpcyBh IGdlbmVyYXRlZCBmaWxlLiBQbGVhc2UgZG8gbm90IGVkaXQuCisgSW5zdGVhZCwgcGxlYXNlIHJl Z2VuZXJhdGUgdXNpbmcgZ2VuZXJhdGUtZW5jb2RpbmctZGF0YS5weQorIBskQiEhGyhCCisgGyRC ISIbKEIKKyAbJEIhIxsoQgorIBskQiEkGyhCCisgGyRCISUbKEIKK2RpZmYgLS1naXQgYS90aGly ZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy90ZXN0X2RhdGEvamlzMDIwOF9pbi50eHQgYi90 aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy90ZXN0X2RhdGEvamlzMDIwOF9pbi50eHQK Ky0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3Rlc3RfZGF0YS9qaXMwMjA4 X2luLnR4dAorKysrIGIvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvdGVzdF9kYXRh L2ppczAyMDhfaW4udHh0CitAQCAtMSwxMCArMSw5IEBACistQW55IGNvcHlyaWdodCB0byB0aGUg dGVzdCBjb2RlIGJlbG93IHRoaXMgY29tbWVudCBpcyBkZWRpY2F0ZWQgdG8gdGhlCistUHVibGlj IERvbWFpbi4gaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvcHVibGljZG9tYWluL3plcm8vMS4w LworK0dlbmVyYXRlZCBmcm9tIFdIQVRXRyBpbmRleGVzLmpzb247IHNlZSBMSUNFTlNFLVdIQVRX Ry4KKyAKKyBUaGlzIGlzIGEgZ2VuZXJhdGVkIGZpbGUuIFBsZWFzZSBkbyBub3QgZWRpdC4KKyBJ bnN0ZWFkLCBwbGVhc2UgcmVnZW5lcmF0ZSB1c2luZyBnZW5lcmF0ZS1lbmNvZGluZy1kYXRhLnB5 Cisg77+977+9Cisg77+977+9Cisg77+977+9Cisg77+977+9Cisg77+977+9CitkaWZmIC0tZ2l0 IGEvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvdGVzdF9kYXRhL2ppczAyMDhfaW5f cmVmLnR4dCBiL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3Rlc3RfZGF0YS9qaXMw MjA4X2luX3JlZi50eHQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3Rl c3RfZGF0YS9qaXMwMjA4X2luX3JlZi50eHQKKysrKyBiL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2Rp bmdfcnMvc3JjL3Rlc3RfZGF0YS9qaXMwMjA4X2luX3JlZi50eHQKK0BAIC0xLDEwICsxLDkgQEAK Ky1BbnkgY29weXJpZ2h0IHRvIHRoZSB0ZXN0IGNvZGUgYmVsb3cgdGhpcyBjb21tZW50IGlzIGRl ZGljYXRlZCB0byB0aGUKKy1QdWJsaWMgRG9tYWluLiBodHRwOi8vY3JlYXRpdmVjb21tb25zLm9y Zy9wdWJsaWNkb21haW4vemVyby8xLjAvCisrR2VuZXJhdGVkIGZyb20gV0hBVFdHIGluZGV4ZXMu anNvbjsgc2VlIExJQ0VOU0UtV0hBVFdHLgorIAorIFRoaXMgaXMgYSBnZW5lcmF0ZWQgZmlsZS4g UGxlYXNlIGRvIG5vdCBlZGl0LgorIEluc3RlYWQsIHBsZWFzZSByZWdlbmVyYXRlIHVzaW5nIGdl bmVyYXRlLWVuY29kaW5nLWRhdGEucHkKKyDjgIAKKyDjgIEKKyDjgIIKKyDvvIwKKyDvvI4KK2Rp ZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy90ZXN0X2RhdGEvamlz MDIwOF9vdXQudHh0IGIvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvdGVzdF9kYXRh L2ppczAyMDhfb3V0LnR4dAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMv dGVzdF9kYXRhL2ppczAyMDhfb3V0LnR4dAorKysrIGIvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGlu Z19ycy9zcmMvdGVzdF9kYXRhL2ppczAyMDhfb3V0LnR4dAorQEAgLTEsMTAgKzEsOSBAQAorLUFu eSBjb3B5cmlnaHQgdG8gdGhlIHRlc3QgY29kZSBiZWxvdyB0aGlzIGNvbW1lbnQgaXMgZGVkaWNh dGVkIHRvIHRoZQorLVB1YmxpYyBEb21haW4uIGh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL3B1 YmxpY2RvbWFpbi96ZXJvLzEuMC8KKytHZW5lcmF0ZWQgZnJvbSBXSEFUV0cgaW5kZXhlcy5qc29u OyBzZWUgTElDRU5TRS1XSEFUV0cuCisgCisgVGhpcyBpcyBhIGdlbmVyYXRlZCBmaWxlLiBQbGVh c2UgZG8gbm90IGVkaXQuCisgSW5zdGVhZCwgcGxlYXNlIHJlZ2VuZXJhdGUgdXNpbmcgZ2VuZXJh dGUtZW5jb2RpbmctZGF0YS5weQorIOOAgAorIOOAgQorIOOAggorIO+8jAorIO+8jgorZGlmZiAt LWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3Rlc3RfZGF0YS9qaXMwMjA4 X291dF9yZWYudHh0IGIvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvdGVzdF9kYXRh L2ppczAyMDhfb3V0X3JlZi50eHQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMv c3JjL3Rlc3RfZGF0YS9qaXMwMjA4X291dF9yZWYudHh0CisrKysgYi90aGlyZF9wYXJ0eS9ydXN0 L2VuY29kaW5nX3JzL3NyYy90ZXN0X2RhdGEvamlzMDIwOF9vdXRfcmVmLnR4dAorQEAgLTEsMTAg KzEsOSBAQAorLUFueSBjb3B5cmlnaHQgdG8gdGhlIHRlc3QgY29kZSBiZWxvdyB0aGlzIGNvbW1l bnQgaXMgZGVkaWNhdGVkIHRvIHRoZQorLVB1YmxpYyBEb21haW4uIGh0dHA6Ly9jcmVhdGl2ZWNv bW1vbnMub3JnL3B1YmxpY2RvbWFpbi96ZXJvLzEuMC8KKytHZW5lcmF0ZWQgZnJvbSBXSEFUV0cg aW5kZXhlcy5qc29uOyBzZWUgTElDRU5TRS1XSEFUV0cuCisgCisgVGhpcyBpcyBhIGdlbmVyYXRl ZCBmaWxlLiBQbGVhc2UgZG8gbm90IGVkaXQuCisgSW5zdGVhZCwgcGxlYXNlIHJlZ2VuZXJhdGUg dXNpbmcgZ2VuZXJhdGUtZW5jb2RpbmctZGF0YS5weQorIO+/ve+/vQorIO+/ve+/vQorIO+/ve+/ vQorIO+/ve+/vQorIO+/ve+/vQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2Rp bmdfcnMvc3JjL3Rlc3RfZGF0YS9qaXMwMjEyX2luLnR4dCBiL3RoaXJkX3BhcnR5L3J1c3QvZW5j b2RpbmdfcnMvc3JjL3Rlc3RfZGF0YS9qaXMwMjEyX2luLnR4dAorLS0tIGEvdGhpcmRfcGFydHkv cnVzdC9lbmNvZGluZ19ycy9zcmMvdGVzdF9kYXRhL2ppczAyMTJfaW4udHh0CisrKysgYi90aGly ZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy90ZXN0X2RhdGEvamlzMDIxMl9pbi50eHQKK0BA IC0xLDEwICsxLDkgQEAKKy1BbnkgY29weXJpZ2h0IHRvIHRoZSB0ZXN0IGNvZGUgYmVsb3cgdGhp cyBjb21tZW50IGlzIGRlZGljYXRlZCB0byB0aGUKKy1QdWJsaWMgRG9tYWluLiBodHRwOi8vY3Jl YXRpdmVjb21tb25zLm9yZy9wdWJsaWNkb21haW4vemVyby8xLjAvCisrR2VuZXJhdGVkIGZyb20g V0hBVFdHIGluZGV4ZXMuanNvbjsgc2VlIExJQ0VOU0UtV0hBVFdHLgorIAorIFRoaXMgaXMgYSBn ZW5lcmF0ZWQgZmlsZS4gUGxlYXNlIGRvIG5vdCBlZGl0LgorIEluc3RlYWQsIHBsZWFzZSByZWdl bmVyYXRlIHVzaW5nIGdlbmVyYXRlLWVuY29kaW5nLWRhdGEucHkKKyDvv73vv73vv70KKyDvv73v v73vv70KKyDvv73vv73vv70KKyDvv73vv73vv70KKyDvv73vv73vv70KK2RpZmYgLS1naXQgYS90 aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy90ZXN0X2RhdGEvamlzMDIxMl9pbl9yZWYu dHh0IGIvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvdGVzdF9kYXRhL2ppczAyMTJf aW5fcmVmLnR4dAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvdGVzdF9k YXRhL2ppczAyMTJfaW5fcmVmLnR4dAorKysrIGIvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19y cy9zcmMvdGVzdF9kYXRhL2ppczAyMTJfaW5fcmVmLnR4dAorQEAgLTEsMTAgKzEsOSBAQAorLUFu eSBjb3B5cmlnaHQgdG8gdGhlIHRlc3QgY29kZSBiZWxvdyB0aGlzIGNvbW1lbnQgaXMgZGVkaWNh dGVkIHRvIHRoZQorLVB1YmxpYyBEb21haW4uIGh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL3B1 YmxpY2RvbWFpbi96ZXJvLzEuMC8KKytHZW5lcmF0ZWQgZnJvbSBXSEFUV0cgaW5kZXhlcy5qc29u OyBzZWUgTElDRU5TRS1XSEFUV0cuCisgCisgVGhpcyBpcyBhIGdlbmVyYXRlZCBmaWxlLiBQbGVh c2UgZG8gbm90IGVkaXQuCisgSW5zdGVhZCwgcGxlYXNlIHJlZ2VuZXJhdGUgdXNpbmcgZ2VuZXJh dGUtZW5jb2RpbmctZGF0YS5weQorIO+/vQorIO+/vQorIO+/vQorIO+/vQorIO+/vQorZGlmZiAt LWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3Rlc3RfZGF0YS9zaGlmdF9q aXNfaW4udHh0IGIvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvdGVzdF9kYXRhL3No aWZ0X2ppc19pbi50eHQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3Rl c3RfZGF0YS9zaGlmdF9qaXNfaW4udHh0CisrKysgYi90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5n X3JzL3NyYy90ZXN0X2RhdGEvc2hpZnRfamlzX2luLnR4dAorQEAgLTEsMTAgKzEsOSBAQAorLUFu eSBjb3B5cmlnaHQgdG8gdGhlIHRlc3QgY29kZSBiZWxvdyB0aGlzIGNvbW1lbnQgaXMgZGVkaWNh dGVkIHRvIHRoZQorLVB1YmxpYyBEb21haW4uIGh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL3B1 YmxpY2RvbWFpbi96ZXJvLzEuMC8KKytHZW5lcmF0ZWQgZnJvbSBXSEFUV0cgaW5kZXhlcy5qc29u OyBzZWUgTElDRU5TRS1XSEFUV0cuCisgCisgVGhpcyBpcyBhIGdlbmVyYXRlZCBmaWxlLiBQbGVh c2UgZG8gbm90IGVkaXQuCisgSW5zdGVhZCwgcGxlYXNlIHJlZ2VuZXJhdGUgdXNpbmcgZ2VuZXJh dGUtZW5jb2RpbmctZGF0YS5weQorIO+/vUAKKyDvv71BCisg77+9QgorIO+/vUMKKyDvv71ECitk aWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvdGVzdF9kYXRhL3No aWZ0X2ppc19pbl9yZWYudHh0IGIvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvdGVz dF9kYXRhL3NoaWZ0X2ppc19pbl9yZWYudHh0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L2VuY29k aW5nX3JzL3NyYy90ZXN0X2RhdGEvc2hpZnRfamlzX2luX3JlZi50eHQKKysrKyBiL3RoaXJkX3Bh cnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3Rlc3RfZGF0YS9zaGlmdF9qaXNfaW5fcmVmLnR4dAor QEAgLTEsMTAgKzEsOSBAQAorLUFueSBjb3B5cmlnaHQgdG8gdGhlIHRlc3QgY29kZSBiZWxvdyB0 aGlzIGNvbW1lbnQgaXMgZGVkaWNhdGVkIHRvIHRoZQorLVB1YmxpYyBEb21haW4uIGh0dHA6Ly9j cmVhdGl2ZWNvbW1vbnMub3JnL3B1YmxpY2RvbWFpbi96ZXJvLzEuMC8KKytHZW5lcmF0ZWQgZnJv bSBXSEFUV0cgaW5kZXhlcy5qc29uOyBzZWUgTElDRU5TRS1XSEFUV0cuCisgCisgVGhpcyBpcyBh IGdlbmVyYXRlZCBmaWxlLiBQbGVhc2UgZG8gbm90IGVkaXQuCisgSW5zdGVhZCwgcGxlYXNlIHJl Z2VuZXJhdGUgdXNpbmcgZ2VuZXJhdGUtZW5jb2RpbmctZGF0YS5weQorIOOAgAorIOOAgQorIOOA ggorIO+8jAorIO+8jgorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMv c3JjL3Rlc3RfZGF0YS9zaGlmdF9qaXNfb3V0LnR4dCBiL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2Rp bmdfcnMvc3JjL3Rlc3RfZGF0YS9zaGlmdF9qaXNfb3V0LnR4dAorLS0tIGEvdGhpcmRfcGFydHkv cnVzdC9lbmNvZGluZ19ycy9zcmMvdGVzdF9kYXRhL3NoaWZ0X2ppc19vdXQudHh0CisrKysgYi90 aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy90ZXN0X2RhdGEvc2hpZnRfamlzX291dC50 eHQKK0BAIC0xLDEwICsxLDkgQEAKKy1BbnkgY29weXJpZ2h0IHRvIHRoZSB0ZXN0IGNvZGUgYmVs b3cgdGhpcyBjb21tZW50IGlzIGRlZGljYXRlZCB0byB0aGUKKy1QdWJsaWMgRG9tYWluLiBodHRw Oi8vY3JlYXRpdmVjb21tb25zLm9yZy9wdWJsaWNkb21haW4vemVyby8xLjAvCisrR2VuZXJhdGVk IGZyb20gV0hBVFdHIGluZGV4ZXMuanNvbjsgc2VlIExJQ0VOU0UtV0hBVFdHLgorIAorIFRoaXMg aXMgYSBnZW5lcmF0ZWQgZmlsZS4gUGxlYXNlIGRvIG5vdCBlZGl0LgorIEluc3RlYWQsIHBsZWFz ZSByZWdlbmVyYXRlIHVzaW5nIGdlbmVyYXRlLWVuY29kaW5nLWRhdGEucHkKKyDjgIAKKyDjgIEK KyDjgIIKKyDvvIwKKyDvvI4KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5n X3JzL3NyYy90ZXN0X2RhdGEvc2hpZnRfamlzX291dF9yZWYudHh0IGIvdGhpcmRfcGFydHkvcnVz dC9lbmNvZGluZ19ycy9zcmMvdGVzdF9kYXRhL3NoaWZ0X2ppc19vdXRfcmVmLnR4dAorLS0tIGEv dGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvdGVzdF9kYXRhL3NoaWZ0X2ppc19vdXRf cmVmLnR4dAorKysrIGIvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvdGVzdF9kYXRh L3NoaWZ0X2ppc19vdXRfcmVmLnR4dAorQEAgLTEsMTAgKzEsOSBAQAorLUFueSBjb3B5cmlnaHQg dG8gdGhlIHRlc3QgY29kZSBiZWxvdyB0aGlzIGNvbW1lbnQgaXMgZGVkaWNhdGVkIHRvIHRoZQor LVB1YmxpYyBEb21haW4uIGh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL3B1YmxpY2RvbWFpbi96 ZXJvLzEuMC8KKytHZW5lcmF0ZWQgZnJvbSBXSEFUV0cgaW5kZXhlcy5qc29uOyBzZWUgTElDRU5T RS1XSEFUV0cuCisgCisgVGhpcyBpcyBhIGdlbmVyYXRlZCBmaWxlLiBQbGVhc2UgZG8gbm90IGVk aXQuCisgSW5zdGVhZCwgcGxlYXNlIHJlZ2VuZXJhdGUgdXNpbmcgZ2VuZXJhdGUtZW5jb2Rpbmct ZGF0YS5weQorIO+/vUAKKyDvv71BCisg77+9QgorIO+/vUMKKyDvv71ECgpkaWZmIC0tZ2l0IGEv c2VhbW9ua2V5LTIuNTMuMjQtbW96aWxsYS0xODgyMjA5LnBhdGNoIGIvc2VhbW9ua2V5LTIuNTMu MjQtbW96aWxsYS0xODgyMjA5LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAuLjkwYzE5NzgKLS0tIC9kZXYvbnVsbAorKysgYi9zZWFtb25rZXktMi41My4yNC1tb3ppbGxh LTE4ODIyMDkucGF0Y2gKQEAgLTAsMCArMSwyNTM4NCBAQAorIyBIRyBjaGFuZ2VzZXQgcGF0Y2gK KyMgVXNlciBIZW5yaSBTaXZvbmVuIDxoc2l2b25lbkBoc2l2b25lbi5maT4KKyMgRGF0ZSAxNzE0 NDYyMTg0IDAKKyMgTm9kZSBJRCAxZGIyZWYxMjZhNmE4NTU1ZGJmNTAzNDVlMTY0OTJjOTc3YjQy ZTkyCisjIFBhcmVudCAgNzg3ZDljZDA2MjQxMmE0MjY0OWE4YzYxNjE5Yjk1YWIyMDRhYjU3MQor QnVnIDE4ODIyMDkgLSBVcGRhdGUgZW5jb2RpbmdfcnMgdG8gMC44LjM0IHRvIGRlYWwgd2l0aCBy dXN0YyBjaGFuZ2VzLiByPWdsYW5kaXVtLHN1cHBseS1jaGFpbi1yZXZpZXdlcnMKKworRGlmZmVy ZW50aWFsIFJldmlzaW9uOiBodHRwczovL3BoYWJyaWNhdG9yLnNlcnZpY2VzLm1vemlsbGEuY29t L0QyMDcxNjcKKworZGlmZiAtLWdpdCBhLy5jYXJnby9jb25maWcuaW4gYi8uY2FyZ28vY29uZmln LmluCistLS0gYS8uY2FyZ28vY29uZmlnLmluCisrKysgYi8uY2FyZ28vY29uZmlnLmluCitAQCAt MiwxNSArMiwxNSBAQAorIHJlZ2lzdHJ5ID0gJ2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcv Y3JhdGVzLmlvLWluZGV4JworIHJlcGxhY2Utd2l0aCA9ICd2ZW5kb3JlZC1zb3VyY2VzJworIAor IFtzb3VyY2UuImh0dHBzOi8vZ2l0aHViLmNvbS9zZXJ2by9zZXJkZSJdCisgZ2l0ID0gImh0dHBz Oi8vZ2l0aHViLmNvbS9zZXJ2by9zZXJkZSIKKyBicmFuY2ggPSAiZGVzZXJpYWxpemVfZnJvbV9l bnVtczgiCisgcmVwbGFjZS13aXRoID0gInZlbmRvcmVkLXNvdXJjZXMiCisgCistW3NvdXJjZS4i aHR0cHM6Ly9naXRodWIuY29tL2hzaXZvbmVuL3BhY2tlZF9zaW1kIl0KKy1naXQgPSAiaHR0cHM6 Ly9naXRodWIuY29tL2hzaXZvbmVuL3BhY2tlZF9zaW1kIgorK1tzb3VyY2UuImdpdCtodHRwczov L2dpdGh1Yi5jb20vaHNpdm9uZW4vYW55X2FsbF93b3JrYXJvdW5kP3Jldj03ZmIxYjcwMzRjOWYx NzJhYWRlMjFlZTFjODU1NGU4ZDhhNDhhZjgwIl0KKytnaXQgPSAiaHR0cHM6Ly9naXRodWIuY29t L2hzaXZvbmVuL2FueV9hbGxfd29ya2Fyb3VuZCIKKytyZXYgPSAiN2ZiMWI3MDM0YzlmMTcyYWFk ZTIxZWUxYzg1NTRlOGQ4YTQ4YWY4MCIKKyByZXBsYWNlLXdpdGggPSAidmVuZG9yZWQtc291cmNl cyIKKy1yZXYgPSAiZTU4OGNlYjU2ODg3OGUxYTMxNTZlYTljZTU1MWQ1YjYzZWYwY2RjNCIKKyAK KyBbc291cmNlLnZlbmRvcmVkLXNvdXJjZXNdCisgZGlyZWN0b3J5ID0gJ0B0b3Bfc3JjZGlyQC90 aGlyZF9wYXJ0eS9ydXN0JworZGlmZiAtLWdpdCBhL0NhcmdvLmxvY2sgYi9DYXJnby5sb2NrCist LS0gYS9DYXJnby5sb2NrCisrKysgYi9DYXJnby5sb2NrCitAQCAtMTYsMTYgKzE2LDI1IEBAIG5h bWUgPSAiYW5zaV90ZXJtIgorIHZlcnNpb24gPSAiMC4xMS4wIgorIHNvdXJjZSA9ICJyZWdpc3Ry eStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKKyBjaGVja3N1 bSA9ICJlZTQ5YmFmNmNiNjE3Yjg1M2FhOGQ5M2JmNDIwZGIyMzgzZmFiNDZkMzE0NDgyY2EyODAz YjQwZDVmZGU5NzliIgorIGRlcGVuZGVuY2llcyA9IFsKKyAgIndpbmFwaSAwLjMuNyIsCisgXQor IAorIFtbcGFja2FnZV1dCisrbmFtZSA9ICJhbnlfYWxsX3dvcmthcm91bmQiCisrdmVyc2lvbiA9 ICIwLjEuMCIKKytzb3VyY2UgPSAiZ2l0K2h0dHBzOi8vZ2l0aHViLmNvbS9oc2l2b25lbi9hbnlf YWxsX3dvcmthcm91bmQ/cmV2PTdmYjFiNzAzNGM5ZjE3MmFhZGUyMWVlMWM4NTU0ZThkOGE0OGFm ODAjN2ZiMWI3MDM0YzlmMTcyYWFkZTIxZWUxYzg1NTRlOGQ4YTQ4YWY4MCIKKytkZXBlbmRlbmNp ZXMgPSBbCisrICJjZmctaWYgMS4wLjAiLAorKyAidmVyc2lvbl9jaGVjayIsCisrXQorKworK1tb cGFja2FnZV1dCisgbmFtZSA9ICJhcHBfdW5pdHMiCisgdmVyc2lvbiA9ICIwLjcuMCIKKyBzb3Vy Y2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5k ZXgiCisgY2hlY2tzdW0gPSAiOWRhZGM2NjgzOTBiMzczZTczZTRhYmJmYzFmMDcyMzhiMDlhMjU4 NThmMmYzOWMwNmNlYmM2ZDhlMTQxZDc3NCIKKyBkZXBlbmRlbmNpZXMgPSBbCisgICJudW0tdHJh aXRzIiwKKyAgInNlcmRlIiwKKyBdCitAQCAtNjA1LDIyICs2MTQsMjIgQEAgdmVyc2lvbiA9ICIw LjEuMCIKKyBkZXBlbmRlbmNpZXMgPSBbCisgICJlbmNvZGluZ19ycyIsCisgICJuc2Vycm9yIiwK KyAgIm5zc3RyaW5nIiwKKyBdCisgCisgW1twYWNrYWdlXV0KKyBuYW1lID0gImVuY29kaW5nX3Jz IgorLXZlcnNpb24gPSAiMC44LjMzIgorK3ZlcnNpb24gPSAiMC44LjM0IgorIHNvdXJjZSA9ICJy ZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKKy1j aGVja3N1bSA9ICI3MjY4YjM4NjI5NmEwMjVlNDc0ZDUxNDA2NzhmNzVkNmRlOTQ5M2FlNTVhNWQ3 MDllZWI5ZGQwODE0OTk0NWUxIgorK2NoZWNrc3VtID0gImI0NWRlOTA0YWEwYjAxMGJjZTJhYjQ1 MjY0ZDA2MzE2ODE4NDdmYTdiNmYyZWFhN2RhYjc2MTk5NDNiYzRmNTkiCisgZGVwZW5kZW5jaWVz ID0gWworKyAiYW55X2FsbF93b3JrYXJvdW5kIiwKKyAgImNmZy1pZiAxLjAuMCIsCistICJwYWNr ZWRfc2ltZCIsCisgXQorIAorIFtbcGFja2FnZV1dCisgbmFtZSA9ICJlbnZfbG9nZ2VyIgorIHZl cnNpb24gPSAiMC41LjEzIgorIHNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20v cnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKKyBjaGVja3N1bSA9ICIxNWIwYTRkMmUzOWY4NDIw MjEwYmU4YjI3ZWVkYTI4MDI5NzI5ZTJmZDQyOTEwMTk0NTUwMTZjMzQ4MjQwYzM4IgorIGRlcGVu ZGVuY2llcyA9IFsKK0BAIC0xMzI0LDI1ICsxMzMzLDE2IEBAIG5hbWUgPSAib3duaW5nX3JlZiIK KyB2ZXJzaW9uID0gIjAuNC4wIgorIHNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5j b20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKKyBjaGVja3N1bSA9ICI0OWE0YjhlYTIxNzll NmEyZTI3NDExZDNiY2EwOWNhNmRkNjMwODIxY2Y2ODk0YzZjN2M4NDY3YThlZTdlZjEzIgorIGRl cGVuZGVuY2llcyA9IFsKKyAgInN0YWJsZV9kZXJlZl90cmFpdCIsCisgXQorIAorIFtbcGFja2Fn ZV1dCistbmFtZSA9ICJwYWNrZWRfc2ltZCIKKy12ZXJzaW9uID0gIjAuMy45IgorLXNvdXJjZSA9 ICJnaXQraHR0cHM6Ly9naXRodWIuY29tL2hzaXZvbmVuL3BhY2tlZF9zaW1kP3Jldj1lNTg4Y2Vi NTY4ODc4ZTFhMzE1NmVhOWNlNTUxZDViNjNlZjBjZGM0I2U1ODhjZWI1Njg4NzhlMWEzMTU2ZWE5 Y2U1NTFkNWI2M2VmMGNkYzQiCistZGVwZW5kZW5jaWVzID0gWworLSAiY2ZnLWlmIDEuMC4wIiwK Ky0gIm51bS10cmFpdHMiLAorLV0KKy0KKy1bW3BhY2thZ2VdXQorIG5hbWUgPSAicGFya2luZ19s b3QiCisgdmVyc2lvbiA9ICIwLjguMCIKKyBzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRo dWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCisgY2hlY2tzdW0gPSAiZmE3NzY3ODE3 NzAxY2NlNzAxZDU1ODViOWM0ZGIzY2RkMDIwODYzOTgzMjJjMWQ3ZThiZjUwOTRhOTZhMmNlNyIK KyBkZXBlbmRlbmNpZXMgPSBbCisgICJsb2NrX2FwaSIsCisgICJwYXJraW5nX2xvdF9jb3JlIiwK KyAgInJ1c3RjX3ZlcnNpb24iLAorQEAgLTIzNjYsMTYgKzIzNjYsMjIgQEAgY2hlY2tzdW0gPSAi MDI1Y2U0MGEwMDdlMTkwN2U1OGQ1YmMxYTU5NAorIAorIFtbcGFja2FnZV1dCisgbmFtZSA9ICJ2 ZWNfbWFwIgorIHZlcnNpb24gPSAiMC44LjAiCisgc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8v Z2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgorIGNoZWNrc3VtID0gIjg4N2I1 YjYzMWMyYWQwMTYyOGJiYmFhN2RkNGM4NjlmODBkMzE4NjY4OGY4ZDBiNmY1ODc3NGZiZTMyNDk4 OGMiCisgCisgW1twYWNrYWdlXV0KKytuYW1lID0gInZlcnNpb25fY2hlY2siCisrdmVyc2lvbiA9 ICIwLjkuNCIKKytzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFu Zy9jcmF0ZXMuaW8taW5kZXgiCisrY2hlY2tzdW0gPSAiNDk4NzRiNTE2N2I2NWQ3MTkzYjhhYmEx NTY3ZjVjN2Q5M2QwMDFjYWZjMzQ2MDBjZWUwMDNlZGE3ODdlNDgzZiIKKysKKytbW3BhY2thZ2Vd XQorIG5hbWUgPSAidm9pZCIKKyB2ZXJzaW9uID0gIjEuMC4yIgorIHNvdXJjZSA9ICJyZWdpc3Ry eStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKKyBjaGVja3N1 bSA9ICI2YTAyZTQ4ODVlZDNiYzBmMmRlOTBlYTZkZDQ1ZWJjYmI2NmRhY2ZmZTAzNTQ3ZmFkYmIw ZWVhZTI3NzA4ODdkIgorIAorIFtbcGFja2FnZV1dCisgbmFtZSA9ICJ3YWxrZGlyIgorIHZlcnNp b24gPSAiMi4xLjQiCitkaWZmIC0tZ2l0IGEvQ2FyZ28udG9tbCBiL0NhcmdvLnRvbWwKKy0tLSBh L0NhcmdvLnRvbWwKKysrKyBiL0NhcmdvLnRvbWwKK0BAIC00OCw5ICs0OCw5IEBAIG9wdC1sZXZl bCA9IDIKKyBycGF0aCA9IGZhbHNlCisgZGVidWctYXNzZXJ0aW9ucyA9IGZhbHNlCisgcGFuaWMg PSAiYWJvcnQiCisgY29kZWdlbi11bml0cyA9IDEKKyAKKyBbcGF0Y2guY3JhdGVzLWlvXQorIGxp YnVkZXYtc3lzID0geyBwYXRoID0gImRvbS93ZWJhdXRobi9saWJ1ZGV2LXN5cyIgfQorIHNlcmRl X2Rlcml2ZSA9IHsgZ2l0ID0gImh0dHBzOi8vZ2l0aHViLmNvbS9zZXJ2by9zZXJkZSIsIGJyYW5j aCA9ICJkZXNlcmlhbGl6ZV9mcm9tX2VudW1zOCIgfQorLXBhY2tlZF9zaW1kID0geyBnaXQgPSAi aHR0cHM6Ly9naXRodWIuY29tL2hzaXZvbmVuL3BhY2tlZF9zaW1kIiwgcmV2ID0gImU1ODhjZWI1 Njg4NzhlMWEzMTU2ZWE5Y2U1NTFkNWI2M2VmMGNkYzQiIH0KKythbnlfYWxsX3dvcmthcm91bmQg PSB7IGdpdCA9ICJodHRwczovL2dpdGh1Yi5jb20vaHNpdm9uZW4vYW55X2FsbF93b3JrYXJvdW5k IiwgcmV2ID0gIjdmYjFiNzAzNGM5ZjE3MmFhZGUyMWVlMWM4NTU0ZThkOGE0OGFmODAiIH0KK2Rp ZmYgLS1naXQgYS9jb25maWcvbWFrZWZpbGVzL3J1c3QubWsgYi9jb25maWcvbWFrZWZpbGVzL3J1 c3QubWsKKy0tLSBhL2NvbmZpZy9tYWtlZmlsZXMvcnVzdC5taworKysrIGIvY29uZmlnL21ha2Vm aWxlcy9ydXN0Lm1rCitAQCAtNjEsMTcgKzYxLDE3IEBAIGVuZGlmCisgZW5kaWYKKyBlbmRpZgor IAorIGlmbmRlZiBSVVNUQ19CT09UU1RSQVAKKyBpZmVxICgsJChmaWx0ZXIgMS40Ny4lIDEuNDgu JSAxLjQ5LiUsJChSVVNUQ19WRVJTSU9OKSkpCisgIyBSVVNUQ19CT09UU1RSQVAgOj0gZ2tydXN0 X3NoYXJlZCxxY21zIGZvciBsYXRlcgorIFJVU1RDX0JPT1RTVFJBUCA6PSBna3J1c3Rfc2hhcmVk CisgaWZkZWYgTU9aX1JVU1RfU0lNRAorLVJVU1RDX0JPT1RTVFJBUCA6PSAkKFJVU1RDX0JPT1RT VFJBUCksZW5jb2RpbmdfcnMscGFja2VkX3NpbWQKKytSVVNUQ19CT09UU1RSQVAgOj0gJChSVVNU Q19CT09UU1RSQVApLGVuY29kaW5nX3JzLGFueV9hbGxfd29ya2Fyb3VuZAorIGVuZGlmCisgZXhw b3J0IFJVU1RDX0JPT1RTVFJBUAorIGVuZGlmCisgZW5kaWYKKyAKKyBpZmRlZiBDQVJHT19JTkNS RU1FTlRBTAorIGV4cG9ydCBDQVJHT19JTkNSRU1FTlRBTAorIGVuZGlmCitkaWZmIC0tZ2l0IGEv dGhpcmRfcGFydHkvcnVzdC9hbnlfYWxsX3dvcmthcm91bmQvLmNhcmdvLWNoZWNrc3VtLmpzb24g Yi90aGlyZF9wYXJ0eS9ydXN0L2FueV9hbGxfd29ya2Fyb3VuZC8uY2FyZ28tY2hlY2tzdW0uanNv bgorbmV3IGZpbGUgbW9kZSAxMDA2NDQKKy0tLSAvZGV2L251bGwKKysrKyBiL3RoaXJkX3BhcnR5 L3J1c3QvYW55X2FsbF93b3JrYXJvdW5kLy5jYXJnby1jaGVja3N1bS5qc29uCitAQCAtMCwwICsx LDEgQEAKKyt7ImZpbGVzIjp7IkNhcmdvLnRvbWwiOiJmOGMxMjc0NDlkYzk0MzJkNDA0YzIxYzk5 ODMzZTQ2MTdhYjg4YTc5NzQ0NWFmMjQ5YTdmZTNjOTg5OTg1ZDZkIiwiTElDRU5TRS1BUEFDSEUi OiJhNjBlZWE4MTc1MTQ1MzE2NjhkN2UwMDc2NTczMTQ0OWZlMTRkMDU5ZDMyNDllMGJjOTNiMzZk ZTQ1Zjc1OWYyIiwiTElDRU5TRS1NSVQiOiI2NDg1YjhlZDMxMGQzZjAzNDBiZjFhZDFmNDc2NDUw NjljZTQwNjlkY2M2YmI0NmM3ZDVjNmZhZjQxZGUxZmRiIiwiTElDRU5TRS1NSVQtUUNNUyI6IjM2 ZDg0N2FlODgyZjY1NzRlYmM3MmY1NmE0ZjM1NGU0ZjEwNGZkZTRhNTg0MzczNDk2NDgyZTk3ZDUy ZDMxYmMiLCJSRUFETUUubWQiOiI0YzYxN2I4Y2VkM2EyN2I3ZWRlY2YwZTVlNDFlZDQ1MWMwNGU4 OGRhYjUyOWU3YTM1ZmNjYzRlMTU1MWVmYmQ3IiwiYnVpbGQucnMiOiI1NmIyOWFiNmRhM2U0OTA3 NWJmZDBhN2I2OTAyNjdjODAxNjI5OGJmMGQzMzJlMmU2OGJiYWYxOWRlY2JiZjcxIiwic3JjL2xp Yi5ycyI6IjcxMTgxMDY2OTBiOWQyNWM1ZDBhM2UyMDc5ZmViODNkNzZmMWQ0MzRkMGRhMzZiOWQw MzUxODA2ZDI3Yzg1MGQifSwicGFja2FnZSI6bnVsbH0KK1wgTm8gbmV3bGluZSBhdCBlbmQgb2Yg ZmlsZQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvYW55X2FsbF93b3JrYXJvdW5kL0Nh cmdvLnRvbWwgYi90aGlyZF9wYXJ0eS9ydXN0L2FueV9hbGxfd29ya2Fyb3VuZC9DYXJnby50b21s CituZXcgZmlsZSBtb2RlIDEwMDY0NAorLS0tIC9kZXYvbnVsbAorKysrIGIvdGhpcmRfcGFydHkv cnVzdC9hbnlfYWxsX3dvcmthcm91bmQvQ2FyZ28udG9tbAorQEAgLTAsMCArMSwyOCBAQAorKyMg VEhJUyBGSUxFIElTIEFVVE9NQVRJQ0FMTFkgR0VORVJBVEVEIEJZIENBUkdPCisrIworKyMgV2hl biB1cGxvYWRpbmcgY3JhdGVzIHRvIHRoZSByZWdpc3RyeSBDYXJnbyB3aWxsIGF1dG9tYXRpY2Fs bHkKKysjICJub3JtYWxpemUiIENhcmdvLnRvbWwgZmlsZXMgZm9yIG1heGltYWwgY29tcGF0aWJp bGl0eQorKyMgd2l0aCBhbGwgdmVyc2lvbnMgb2YgQ2FyZ28gYW5kIGFsc28gcmV3cml0ZSBgcGF0 aGAgZGVwZW5kZW5jaWVzCisrIyB0byByZWdpc3RyeSAoZS5nLiwgY3JhdGVzLmlvKSBkZXBlbmRl bmNpZXMuCisrIworKyMgSWYgeW91IGFyZSByZWFkaW5nIHRoaXMgZmlsZSBiZSBhd2FyZSB0aGF0 IHRoZSBvcmlnaW5hbCBDYXJnby50b21sCisrIyB3aWxsIGxpa2VseSBsb29rIHZlcnkgZGlmZmVy ZW50IChhbmQgbXVjaCBtb3JlIHJlYXNvbmFibGUpLgorKyMgU2VlIENhcmdvLnRvbWwub3JpZyBm b3IgdGhlIG9yaWdpbmFsIGNvbnRlbnRzLgorKworK1twYWNrYWdlXQorK2VkaXRpb24gPSAiMjAy MSIKKytuYW1lID0gImFueV9hbGxfd29ya2Fyb3VuZCIKKyt2ZXJzaW9uID0gIjAuMS4wIgorK2F1 dGhvcnMgPSBbIkhlbnJpIFNpdm9uZW4gPGhzaXZvbmVuQGhzaXZvbmVuLmZpPiJdCisrZGVzY3Jp cHRpb24gPSAiV29ya2Fyb3VuZCBmb3IgYmFkIExMVk0gY29kZWdlbiBmb3IgYm9vbGVhbiByZWR1 Y3Rpb25zIG9uIDMyLWJpdCBBUk0iCisraG9tZXBhZ2UgPSAiaHR0cHM6Ly9kb2NzLnJzL2FueV9h bGxfd29ya2Fyb3VuZC8iCisrZG9jdW1lbnRhdGlvbiA9ICJodHRwczovL2RvY3MucnMvYW55X2Fs bF93b3JrYXJvdW5kLyIKKytyZWFkbWUgPSAiUkVBRE1FLm1kIgorK2xpY2Vuc2UgPSAiTUlUIE9S IEFwYWNoZS0yLjAiCisrcmVwb3NpdG9yeSA9ICJodHRwczovL2dpdGh1Yi5jb20vaHNpdm9uZW4v YW55X2FsbF93b3JrYXJvdW5kIgorKworK1tkZXBlbmRlbmNpZXNdCisrY2ZnLWlmID0gIjEuMCIK KysKKytbYnVpbGQtZGVwZW5kZW5jaWVzXQorK3ZlcnNpb25fY2hlY2sgPSAiMC45IgorZGlmZiAt LWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvYW55X2FsbF93b3JrYXJvdW5kL0xJQ0VOU0UtQVBBQ0hF IGIvdGhpcmRfcGFydHkvcnVzdC9hbnlfYWxsX3dvcmthcm91bmQvTElDRU5TRS1BUEFDSEUKK25l dyBmaWxlIG1vZGUgMTAwNjQ0CistLS0gL2Rldi9udWxsCisrKysgYi90aGlyZF9wYXJ0eS9ydXN0 L2FueV9hbGxfd29ya2Fyb3VuZC9MSUNFTlNFLUFQQUNIRQorQEAgLTAsMCArMSwyMDEgQEAKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBcGFjaGUgTGljZW5zZQorKyAgICAgICAgICAg ICAgICAgICAgICAgIFZlcnNpb24gMi4wLCBKYW51YXJ5IDIwMDQKKysgICAgICAgICAgICAgICAg ICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvCisrCisrVEVSTVMgQU5EIENPTkRJ VElPTlMgRk9SIFVTRSwgUkVQUk9EVUNUSU9OLCBBTkQgRElTVFJJQlVUSU9OCisrCisrMS4gRGVm aW5pdGlvbnMuCisrCisrICAgIkxpY2Vuc2UiIHNoYWxsIG1lYW4gdGhlIHRlcm1zIGFuZCBjb25k aXRpb25zIGZvciB1c2UsIHJlcHJvZHVjdGlvbiwKKysgICBhbmQgZGlzdHJpYnV0aW9uIGFzIGRl ZmluZWQgYnkgU2VjdGlvbnMgMSB0aHJvdWdoIDkgb2YgdGhpcyBkb2N1bWVudC4KKysKKysgICAi TGljZW5zb3IiIHNoYWxsIG1lYW4gdGhlIGNvcHlyaWdodCBvd25lciBvciBlbnRpdHkgYXV0aG9y aXplZCBieQorKyAgIHRoZSBjb3B5cmlnaHQgb3duZXIgdGhhdCBpcyBncmFudGluZyB0aGUgTGlj ZW5zZS4KKysKKysgICAiTGVnYWwgRW50aXR5IiBzaGFsbCBtZWFuIHRoZSB1bmlvbiBvZiB0aGUg YWN0aW5nIGVudGl0eSBhbmQgYWxsCisrICAgb3RoZXIgZW50aXRpZXMgdGhhdCBjb250cm9sLCBh cmUgY29udHJvbGxlZCBieSwgb3IgYXJlIHVuZGVyIGNvbW1vbgorKyAgIGNvbnRyb2wgd2l0aCB0 aGF0IGVudGl0eS4gRm9yIHRoZSBwdXJwb3NlcyBvZiB0aGlzIGRlZmluaXRpb24sCisrICAgImNv bnRyb2wiIG1lYW5zIChpKSB0aGUgcG93ZXIsIGRpcmVjdCBvciBpbmRpcmVjdCwgdG8gY2F1c2Ug dGhlCisrICAgZGlyZWN0aW9uIG9yIG1hbmFnZW1lbnQgb2Ygc3VjaCBlbnRpdHksIHdoZXRoZXIg YnkgY29udHJhY3Qgb3IKKysgICBvdGhlcndpc2UsIG9yIChpaSkgb3duZXJzaGlwIG9mIGZpZnR5 IHBlcmNlbnQgKDUwJSkgb3IgbW9yZSBvZiB0aGUKKysgICBvdXRzdGFuZGluZyBzaGFyZXMsIG9y IChpaWkpIGJlbmVmaWNpYWwgb3duZXJzaGlwIG9mIHN1Y2ggZW50aXR5LgorKworKyAgICJZb3Ui IChvciAiWW91ciIpIHNoYWxsIG1lYW4gYW4gaW5kaXZpZHVhbCBvciBMZWdhbCBFbnRpdHkKKysg ICBleGVyY2lzaW5nIHBlcm1pc3Npb25zIGdyYW50ZWQgYnkgdGhpcyBMaWNlbnNlLgorKworKyAg ICJTb3VyY2UiIGZvcm0gc2hhbGwgbWVhbiB0aGUgcHJlZmVycmVkIGZvcm0gZm9yIG1ha2luZyBt b2RpZmljYXRpb25zLAorKyAgIGluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8gc29mdHdhcmUg c291cmNlIGNvZGUsIGRvY3VtZW50YXRpb24KKysgICBzb3VyY2UsIGFuZCBjb25maWd1cmF0aW9u IGZpbGVzLgorKworKyAgICJPYmplY3QiIGZvcm0gc2hhbGwgbWVhbiBhbnkgZm9ybSByZXN1bHRp bmcgZnJvbSBtZWNoYW5pY2FsCisrICAgdHJhbnNmb3JtYXRpb24gb3IgdHJhbnNsYXRpb24gb2Yg YSBTb3VyY2UgZm9ybSwgaW5jbHVkaW5nIGJ1dAorKyAgIG5vdCBsaW1pdGVkIHRvIGNvbXBpbGVk IG9iamVjdCBjb2RlLCBnZW5lcmF0ZWQgZG9jdW1lbnRhdGlvbiwKKysgICBhbmQgY29udmVyc2lv bnMgdG8gb3RoZXIgbWVkaWEgdHlwZXMuCisrCisrICAgIldvcmsiIHNoYWxsIG1lYW4gdGhlIHdv cmsgb2YgYXV0aG9yc2hpcCwgd2hldGhlciBpbiBTb3VyY2Ugb3IKKysgICBPYmplY3QgZm9ybSwg bWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIExpY2Vuc2UsIGFzIGluZGljYXRlZCBieSBhCisrICAg Y29weXJpZ2h0IG5vdGljZSB0aGF0IGlzIGluY2x1ZGVkIGluIG9yIGF0dGFjaGVkIHRvIHRoZSB3 b3JrCisrICAgKGFuIGV4YW1wbGUgaXMgcHJvdmlkZWQgaW4gdGhlIEFwcGVuZGl4IGJlbG93KS4K KysKKysgICAiRGVyaXZhdGl2ZSBXb3JrcyIgc2hhbGwgbWVhbiBhbnkgd29yaywgd2hldGhlciBp biBTb3VyY2Ugb3IgT2JqZWN0CisrICAgZm9ybSwgdGhhdCBpcyBiYXNlZCBvbiAob3IgZGVyaXZl ZCBmcm9tKSB0aGUgV29yayBhbmQgZm9yIHdoaWNoIHRoZQorKyAgIGVkaXRvcmlhbCByZXZpc2lv bnMsIGFubm90YXRpb25zLCBlbGFib3JhdGlvbnMsIG9yIG90aGVyIG1vZGlmaWNhdGlvbnMKKysg ICByZXByZXNlbnQsIGFzIGEgd2hvbGUsIGFuIG9yaWdpbmFsIHdvcmsgb2YgYXV0aG9yc2hpcC4g Rm9yIHRoZSBwdXJwb3NlcworKyAgIG9mIHRoaXMgTGljZW5zZSwgRGVyaXZhdGl2ZSBXb3JrcyBz aGFsbCBub3QgaW5jbHVkZSB3b3JrcyB0aGF0IHJlbWFpbgorKyAgIHNlcGFyYWJsZSBmcm9tLCBv ciBtZXJlbHkgbGluayAob3IgYmluZCBieSBuYW1lKSB0byB0aGUgaW50ZXJmYWNlcyBvZiwKKysg ICB0aGUgV29yayBhbmQgRGVyaXZhdGl2ZSBXb3JrcyB0aGVyZW9mLgorKworKyAgICJDb250cmli dXRpb24iIHNoYWxsIG1lYW4gYW55IHdvcmsgb2YgYXV0aG9yc2hpcCwgaW5jbHVkaW5nCisrICAg dGhlIG9yaWdpbmFsIHZlcnNpb24gb2YgdGhlIFdvcmsgYW5kIGFueSBtb2RpZmljYXRpb25zIG9y IGFkZGl0aW9ucworKyAgIHRvIHRoYXQgV29yayBvciBEZXJpdmF0aXZlIFdvcmtzIHRoZXJlb2Ys IHRoYXQgaXMgaW50ZW50aW9uYWxseQorKyAgIHN1Ym1pdHRlZCB0byBMaWNlbnNvciBmb3IgaW5j bHVzaW9uIGluIHRoZSBXb3JrIGJ5IHRoZSBjb3B5cmlnaHQgb3duZXIKKysgICBvciBieSBhbiBp bmRpdmlkdWFsIG9yIExlZ2FsIEVudGl0eSBhdXRob3JpemVkIHRvIHN1Ym1pdCBvbiBiZWhhbGYg b2YKKysgICB0aGUgY29weXJpZ2h0IG93bmVyLiBGb3IgdGhlIHB1cnBvc2VzIG9mIHRoaXMgZGVm aW5pdGlvbiwgInN1Ym1pdHRlZCIKKysgICBtZWFucyBhbnkgZm9ybSBvZiBlbGVjdHJvbmljLCB2 ZXJiYWwsIG9yIHdyaXR0ZW4gY29tbXVuaWNhdGlvbiBzZW50CisrICAgdG8gdGhlIExpY2Vuc29y IG9yIGl0cyByZXByZXNlbnRhdGl2ZXMsIGluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8KKysg ICBjb21tdW5pY2F0aW9uIG9uIGVsZWN0cm9uaWMgbWFpbGluZyBsaXN0cywgc291cmNlIGNvZGUg Y29udHJvbCBzeXN0ZW1zLAorKyAgIGFuZCBpc3N1ZSB0cmFja2luZyBzeXN0ZW1zIHRoYXQgYXJl IG1hbmFnZWQgYnksIG9yIG9uIGJlaGFsZiBvZiwgdGhlCisrICAgTGljZW5zb3IgZm9yIHRoZSBw dXJwb3NlIG9mIGRpc2N1c3NpbmcgYW5kIGltcHJvdmluZyB0aGUgV29yaywgYnV0CisrICAgZXhj bHVkaW5nIGNvbW11bmljYXRpb24gdGhhdCBpcyBjb25zcGljdW91c2x5IG1hcmtlZCBvciBvdGhl cndpc2UKKysgICBkZXNpZ25hdGVkIGluIHdyaXRpbmcgYnkgdGhlIGNvcHlyaWdodCBvd25lciBh cyAiTm90IGEgQ29udHJpYnV0aW9uLiIKKysKKysgICAiQ29udHJpYnV0b3IiIHNoYWxsIG1lYW4g TGljZW5zb3IgYW5kIGFueSBpbmRpdmlkdWFsIG9yIExlZ2FsIEVudGl0eQorKyAgIG9uIGJlaGFs ZiBvZiB3aG9tIGEgQ29udHJpYnV0aW9uIGhhcyBiZWVuIHJlY2VpdmVkIGJ5IExpY2Vuc29yIGFu ZAorKyAgIHN1YnNlcXVlbnRseSBpbmNvcnBvcmF0ZWQgd2l0aGluIHRoZSBXb3JrLgorKworKzIu IEdyYW50IG9mIENvcHlyaWdodCBMaWNlbnNlLiBTdWJqZWN0IHRvIHRoZSB0ZXJtcyBhbmQgY29u ZGl0aW9ucyBvZgorKyAgIHRoaXMgTGljZW5zZSwgZWFjaCBDb250cmlidXRvciBoZXJlYnkgZ3Jh bnRzIHRvIFlvdSBhIHBlcnBldHVhbCwKKysgICB3b3JsZHdpZGUsIG5vbi1leGNsdXNpdmUsIG5v LWNoYXJnZSwgcm95YWx0eS1mcmVlLCBpcnJldm9jYWJsZQorKyAgIGNvcHlyaWdodCBsaWNlbnNl IHRvIHJlcHJvZHVjZSwgcHJlcGFyZSBEZXJpdmF0aXZlIFdvcmtzIG9mLAorKyAgIHB1YmxpY2x5 IGRpc3BsYXksIHB1YmxpY2x5IHBlcmZvcm0sIHN1YmxpY2Vuc2UsIGFuZCBkaXN0cmlidXRlIHRo ZQorKyAgIFdvcmsgYW5kIHN1Y2ggRGVyaXZhdGl2ZSBXb3JrcyBpbiBTb3VyY2Ugb3IgT2JqZWN0 IGZvcm0uCisrCisrMy4gR3JhbnQgb2YgUGF0ZW50IExpY2Vuc2UuIFN1YmplY3QgdG8gdGhlIHRl cm1zIGFuZCBjb25kaXRpb25zIG9mCisrICAgdGhpcyBMaWNlbnNlLCBlYWNoIENvbnRyaWJ1dG9y IGhlcmVieSBncmFudHMgdG8gWW91IGEgcGVycGV0dWFsLAorKyAgIHdvcmxkd2lkZSwgbm9uLWV4 Y2x1c2l2ZSwgbm8tY2hhcmdlLCByb3lhbHR5LWZyZWUsIGlycmV2b2NhYmxlCisrICAgKGV4Y2Vw dCBhcyBzdGF0ZWQgaW4gdGhpcyBzZWN0aW9uKSBwYXRlbnQgbGljZW5zZSB0byBtYWtlLCBoYXZl IG1hZGUsCisrICAgdXNlLCBvZmZlciB0byBzZWxsLCBzZWxsLCBpbXBvcnQsIGFuZCBvdGhlcndp c2UgdHJhbnNmZXIgdGhlIFdvcmssCisrICAgd2hlcmUgc3VjaCBsaWNlbnNlIGFwcGxpZXMgb25s eSB0byB0aG9zZSBwYXRlbnQgY2xhaW1zIGxpY2Vuc2FibGUKKysgICBieSBzdWNoIENvbnRyaWJ1 dG9yIHRoYXQgYXJlIG5lY2Vzc2FyaWx5IGluZnJpbmdlZCBieSB0aGVpcgorKyAgIENvbnRyaWJ1 dGlvbihzKSBhbG9uZSBvciBieSBjb21iaW5hdGlvbiBvZiB0aGVpciBDb250cmlidXRpb24ocykK KysgICB3aXRoIHRoZSBXb3JrIHRvIHdoaWNoIHN1Y2ggQ29udHJpYnV0aW9uKHMpIHdhcyBzdWJt aXR0ZWQuIElmIFlvdQorKyAgIGluc3RpdHV0ZSBwYXRlbnQgbGl0aWdhdGlvbiBhZ2FpbnN0IGFu eSBlbnRpdHkgKGluY2x1ZGluZyBhCisrICAgY3Jvc3MtY2xhaW0gb3IgY291bnRlcmNsYWltIGlu IGEgbGF3c3VpdCkgYWxsZWdpbmcgdGhhdCB0aGUgV29yaworKyAgIG9yIGEgQ29udHJpYnV0aW9u IGluY29ycG9yYXRlZCB3aXRoaW4gdGhlIFdvcmsgY29uc3RpdHV0ZXMgZGlyZWN0CisrICAgb3Ig Y29udHJpYnV0b3J5IHBhdGVudCBpbmZyaW5nZW1lbnQsIHRoZW4gYW55IHBhdGVudCBsaWNlbnNl cworKyAgIGdyYW50ZWQgdG8gWW91IHVuZGVyIHRoaXMgTGljZW5zZSBmb3IgdGhhdCBXb3JrIHNo YWxsIHRlcm1pbmF0ZQorKyAgIGFzIG9mIHRoZSBkYXRlIHN1Y2ggbGl0aWdhdGlvbiBpcyBmaWxl ZC4KKysKKys0LiBSZWRpc3RyaWJ1dGlvbi4gWW91IG1heSByZXByb2R1Y2UgYW5kIGRpc3RyaWJ1 dGUgY29waWVzIG9mIHRoZQorKyAgIFdvcmsgb3IgRGVyaXZhdGl2ZSBXb3JrcyB0aGVyZW9mIGlu IGFueSBtZWRpdW0sIHdpdGggb3Igd2l0aG91dAorKyAgIG1vZGlmaWNhdGlvbnMsIGFuZCBpbiBT b3VyY2Ugb3IgT2JqZWN0IGZvcm0sIHByb3ZpZGVkIHRoYXQgWW91CisrICAgbWVldCB0aGUgZm9s bG93aW5nIGNvbmRpdGlvbnM6CisrCisrICAgKGEpIFlvdSBtdXN0IGdpdmUgYW55IG90aGVyIHJl Y2lwaWVudHMgb2YgdGhlIFdvcmsgb3IKKysgICAgICAgRGVyaXZhdGl2ZSBXb3JrcyBhIGNvcHkg b2YgdGhpcyBMaWNlbnNlOyBhbmQKKysKKysgICAoYikgWW91IG11c3QgY2F1c2UgYW55IG1vZGlm aWVkIGZpbGVzIHRvIGNhcnJ5IHByb21pbmVudCBub3RpY2VzCisrICAgICAgIHN0YXRpbmcgdGhh dCBZb3UgY2hhbmdlZCB0aGUgZmlsZXM7IGFuZAorKworKyAgIChjKSBZb3UgbXVzdCByZXRhaW4s IGluIHRoZSBTb3VyY2UgZm9ybSBvZiBhbnkgRGVyaXZhdGl2ZSBXb3JrcworKyAgICAgICB0aGF0 IFlvdSBkaXN0cmlidXRlLCBhbGwgY29weXJpZ2h0LCBwYXRlbnQsIHRyYWRlbWFyaywgYW5kCisr ICAgICAgIGF0dHJpYnV0aW9uIG5vdGljZXMgZnJvbSB0aGUgU291cmNlIGZvcm0gb2YgdGhlIFdv cmssCisrICAgICAgIGV4Y2x1ZGluZyB0aG9zZSBub3RpY2VzIHRoYXQgZG8gbm90IHBlcnRhaW4g dG8gYW55IHBhcnQgb2YKKysgICAgICAgdGhlIERlcml2YXRpdmUgV29ya3M7IGFuZAorKworKyAg IChkKSBJZiB0aGUgV29yayBpbmNsdWRlcyBhICJOT1RJQ0UiIHRleHQgZmlsZSBhcyBwYXJ0IG9m IGl0cworKyAgICAgICBkaXN0cmlidXRpb24sIHRoZW4gYW55IERlcml2YXRpdmUgV29ya3MgdGhh dCBZb3UgZGlzdHJpYnV0ZSBtdXN0CisrICAgICAgIGluY2x1ZGUgYSByZWFkYWJsZSBjb3B5IG9m IHRoZSBhdHRyaWJ1dGlvbiBub3RpY2VzIGNvbnRhaW5lZAorKyAgICAgICB3aXRoaW4gc3VjaCBO T1RJQ0UgZmlsZSwgZXhjbHVkaW5nIHRob3NlIG5vdGljZXMgdGhhdCBkbyBub3QKKysgICAgICAg cGVydGFpbiB0byBhbnkgcGFydCBvZiB0aGUgRGVyaXZhdGl2ZSBXb3JrcywgaW4gYXQgbGVhc3Qg b25lCisrICAgICAgIG9mIHRoZSBmb2xsb3dpbmcgcGxhY2VzOiB3aXRoaW4gYSBOT1RJQ0UgdGV4 dCBmaWxlIGRpc3RyaWJ1dGVkCisrICAgICAgIGFzIHBhcnQgb2YgdGhlIERlcml2YXRpdmUgV29y a3M7IHdpdGhpbiB0aGUgU291cmNlIGZvcm0gb3IKKysgICAgICAgZG9jdW1lbnRhdGlvbiwgaWYg cHJvdmlkZWQgYWxvbmcgd2l0aCB0aGUgRGVyaXZhdGl2ZSBXb3Jrczsgb3IsCisrICAgICAgIHdp dGhpbiBhIGRpc3BsYXkgZ2VuZXJhdGVkIGJ5IHRoZSBEZXJpdmF0aXZlIFdvcmtzLCBpZiBhbmQK KysgICAgICAgd2hlcmV2ZXIgc3VjaCB0aGlyZC1wYXJ0eSBub3RpY2VzIG5vcm1hbGx5IGFwcGVh ci4gVGhlIGNvbnRlbnRzCisrICAgICAgIG9mIHRoZSBOT1RJQ0UgZmlsZSBhcmUgZm9yIGluZm9y bWF0aW9uYWwgcHVycG9zZXMgb25seSBhbmQKKysgICAgICAgZG8gbm90IG1vZGlmeSB0aGUgTGlj ZW5zZS4gWW91IG1heSBhZGQgWW91ciBvd24gYXR0cmlidXRpb24KKysgICAgICAgbm90aWNlcyB3 aXRoaW4gRGVyaXZhdGl2ZSBXb3JrcyB0aGF0IFlvdSBkaXN0cmlidXRlLCBhbG9uZ3NpZGUKKysg ICAgICAgb3IgYXMgYW4gYWRkZW5kdW0gdG8gdGhlIE5PVElDRSB0ZXh0IGZyb20gdGhlIFdvcmss IHByb3ZpZGVkCisrICAgICAgIHRoYXQgc3VjaCBhZGRpdGlvbmFsIGF0dHJpYnV0aW9uIG5vdGlj ZXMgY2Fubm90IGJlIGNvbnN0cnVlZAorKyAgICAgICBhcyBtb2RpZnlpbmcgdGhlIExpY2Vuc2Uu CisrCisrICAgWW91IG1heSBhZGQgWW91ciBvd24gY29weXJpZ2h0IHN0YXRlbWVudCB0byBZb3Vy IG1vZGlmaWNhdGlvbnMgYW5kCisrICAgbWF5IHByb3ZpZGUgYWRkaXRpb25hbCBvciBkaWZmZXJl bnQgbGljZW5zZSB0ZXJtcyBhbmQgY29uZGl0aW9ucworKyAgIGZvciB1c2UsIHJlcHJvZHVjdGlv biwgb3IgZGlzdHJpYnV0aW9uIG9mIFlvdXIgbW9kaWZpY2F0aW9ucywgb3IKKysgICBmb3IgYW55 IHN1Y2ggRGVyaXZhdGl2ZSBXb3JrcyBhcyBhIHdob2xlLCBwcm92aWRlZCBZb3VyIHVzZSwKKysg ICByZXByb2R1Y3Rpb24sIGFuZCBkaXN0cmlidXRpb24gb2YgdGhlIFdvcmsgb3RoZXJ3aXNlIGNv bXBsaWVzIHdpdGgKKysgICB0aGUgY29uZGl0aW9ucyBzdGF0ZWQgaW4gdGhpcyBMaWNlbnNlLgor KworKzUuIFN1Ym1pc3Npb24gb2YgQ29udHJpYnV0aW9ucy4gVW5sZXNzIFlvdSBleHBsaWNpdGx5 IHN0YXRlIG90aGVyd2lzZSwKKysgICBhbnkgQ29udHJpYnV0aW9uIGludGVudGlvbmFsbHkgc3Vi bWl0dGVkIGZvciBpbmNsdXNpb24gaW4gdGhlIFdvcmsKKysgICBieSBZb3UgdG8gdGhlIExpY2Vu c29yIHNoYWxsIGJlIHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZgorKyAgIHRoaXMg TGljZW5zZSwgd2l0aG91dCBhbnkgYWRkaXRpb25hbCB0ZXJtcyBvciBjb25kaXRpb25zLgorKyAg IE5vdHdpdGhzdGFuZGluZyB0aGUgYWJvdmUsIG5vdGhpbmcgaGVyZWluIHNoYWxsIHN1cGVyc2Vk ZSBvciBtb2RpZnkKKysgICB0aGUgdGVybXMgb2YgYW55IHNlcGFyYXRlIGxpY2Vuc2UgYWdyZWVt ZW50IHlvdSBtYXkgaGF2ZSBleGVjdXRlZAorKyAgIHdpdGggTGljZW5zb3IgcmVnYXJkaW5nIHN1 Y2ggQ29udHJpYnV0aW9ucy4KKysKKys2LiBUcmFkZW1hcmtzLiBUaGlzIExpY2Vuc2UgZG9lcyBu b3QgZ3JhbnQgcGVybWlzc2lvbiB0byB1c2UgdGhlIHRyYWRlCisrICAgbmFtZXMsIHRyYWRlbWFy a3MsIHNlcnZpY2UgbWFya3MsIG9yIHByb2R1Y3QgbmFtZXMgb2YgdGhlIExpY2Vuc29yLAorKyAg IGV4Y2VwdCBhcyByZXF1aXJlZCBmb3IgcmVhc29uYWJsZSBhbmQgY3VzdG9tYXJ5IHVzZSBpbiBk ZXNjcmliaW5nIHRoZQorKyAgIG9yaWdpbiBvZiB0aGUgV29yayBhbmQgcmVwcm9kdWNpbmcgdGhl IGNvbnRlbnQgb2YgdGhlIE5PVElDRSBmaWxlLgorKworKzcuIERpc2NsYWltZXIgb2YgV2FycmFu dHkuIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvcgorKyAgIGFncmVlZCB0byBp biB3cml0aW5nLCBMaWNlbnNvciBwcm92aWRlcyB0aGUgV29yayAoYW5kIGVhY2gKKysgICBDb250 cmlidXRvciBwcm92aWRlcyBpdHMgQ29udHJpYnV0aW9ucykgb24gYW4gIkFTIElTIiBCQVNJUywK KysgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVy IGV4cHJlc3Mgb3IKKysgICBpbXBsaWVkLCBpbmNsdWRpbmcsIHdpdGhvdXQgbGltaXRhdGlvbiwg YW55IHdhcnJhbnRpZXMgb3IgY29uZGl0aW9ucworKyAgIG9mIFRJVExFLCBOT04tSU5GUklOR0VN RU5ULCBNRVJDSEFOVEFCSUxJVFksIG9yIEZJVE5FU1MgRk9SIEEKKysgICBQQVJUSUNVTEFSIFBV UlBPU0UuIFlvdSBhcmUgc29sZWx5IHJlc3BvbnNpYmxlIGZvciBkZXRlcm1pbmluZyB0aGUKKysg ICBhcHByb3ByaWF0ZW5lc3Mgb2YgdXNpbmcgb3IgcmVkaXN0cmlidXRpbmcgdGhlIFdvcmsgYW5k IGFzc3VtZSBhbnkKKysgICByaXNrcyBhc3NvY2lhdGVkIHdpdGggWW91ciBleGVyY2lzZSBvZiBw ZXJtaXNzaW9ucyB1bmRlciB0aGlzIExpY2Vuc2UuCisrCisrOC4gTGltaXRhdGlvbiBvZiBMaWFi aWxpdHkuIEluIG5vIGV2ZW50IGFuZCB1bmRlciBubyBsZWdhbCB0aGVvcnksCisrICAgd2hldGhl ciBpbiB0b3J0IChpbmNsdWRpbmcgbmVnbGlnZW5jZSksIGNvbnRyYWN0LCBvciBvdGhlcndpc2Us CisrICAgdW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IChzdWNoIGFzIGRlbGliZXJh dGUgYW5kIGdyb3NzbHkKKysgICBuZWdsaWdlbnQgYWN0cykgb3IgYWdyZWVkIHRvIGluIHdyaXRp bmcsIHNoYWxsIGFueSBDb250cmlidXRvciBiZQorKyAgIGxpYWJsZSB0byBZb3UgZm9yIGRhbWFn ZXMsIGluY2x1ZGluZyBhbnkgZGlyZWN0LCBpbmRpcmVjdCwgc3BlY2lhbCwKKysgICBpbmNpZGVu dGFsLCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb2YgYW55IGNoYXJhY3RlciBhcmlzaW5nIGFz IGEKKysgICByZXN1bHQgb2YgdGhpcyBMaWNlbnNlIG9yIG91dCBvZiB0aGUgdXNlIG9yIGluYWJp bGl0eSB0byB1c2UgdGhlCisrICAgV29yayAoaW5jbHVkaW5nIGJ1dCBub3QgbGltaXRlZCB0byBk YW1hZ2VzIGZvciBsb3NzIG9mIGdvb2R3aWxsLAorKyAgIHdvcmsgc3RvcHBhZ2UsIGNvbXB1dGVy IGZhaWx1cmUgb3IgbWFsZnVuY3Rpb24sIG9yIGFueSBhbmQgYWxsCisrICAgb3RoZXIgY29tbWVy Y2lhbCBkYW1hZ2VzIG9yIGxvc3NlcyksIGV2ZW4gaWYgc3VjaCBDb250cmlidXRvcgorKyAgIGhh cyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHN1Y2ggZGFtYWdlcy4KKysKKys5 LiBBY2NlcHRpbmcgV2FycmFudHkgb3IgQWRkaXRpb25hbCBMaWFiaWxpdHkuIFdoaWxlIHJlZGlz dHJpYnV0aW5nCisrICAgdGhlIFdvcmsgb3IgRGVyaXZhdGl2ZSBXb3JrcyB0aGVyZW9mLCBZb3Ug bWF5IGNob29zZSB0byBvZmZlciwKKysgICBhbmQgY2hhcmdlIGEgZmVlIGZvciwgYWNjZXB0YW5j ZSBvZiBzdXBwb3J0LCB3YXJyYW50eSwgaW5kZW1uaXR5LAorKyAgIG9yIG90aGVyIGxpYWJpbGl0 eSBvYmxpZ2F0aW9ucyBhbmQvb3IgcmlnaHRzIGNvbnNpc3RlbnQgd2l0aCB0aGlzCisrICAgTGlj ZW5zZS4gSG93ZXZlciwgaW4gYWNjZXB0aW5nIHN1Y2ggb2JsaWdhdGlvbnMsIFlvdSBtYXkgYWN0 IG9ubHkKKysgICBvbiBZb3VyIG93biBiZWhhbGYgYW5kIG9uIFlvdXIgc29sZSByZXNwb25zaWJp bGl0eSwgbm90IG9uIGJlaGFsZgorKyAgIG9mIGFueSBvdGhlciBDb250cmlidXRvciwgYW5kIG9u bHkgaWYgWW91IGFncmVlIHRvIGluZGVtbmlmeSwKKysgICBkZWZlbmQsIGFuZCBob2xkIGVhY2gg Q29udHJpYnV0b3IgaGFybWxlc3MgZm9yIGFueSBsaWFiaWxpdHkKKysgICBpbmN1cnJlZCBieSwg b3IgY2xhaW1zIGFzc2VydGVkIGFnYWluc3QsIHN1Y2ggQ29udHJpYnV0b3IgYnkgcmVhc29uCisr ICAgb2YgeW91ciBhY2NlcHRpbmcgYW55IHN1Y2ggd2FycmFudHkgb3IgYWRkaXRpb25hbCBsaWFi aWxpdHkuCisrCisrRU5EIE9GIFRFUk1TIEFORCBDT05ESVRJT05TCisrCisrQVBQRU5ESVg6IEhv dyB0byBhcHBseSB0aGUgQXBhY2hlIExpY2Vuc2UgdG8geW91ciB3b3JrLgorKworKyAgIFRvIGFw cGx5IHRoZSBBcGFjaGUgTGljZW5zZSB0byB5b3VyIHdvcmssIGF0dGFjaCB0aGUgZm9sbG93aW5n CisrICAgYm9pbGVycGxhdGUgbm90aWNlLCB3aXRoIHRoZSBmaWVsZHMgZW5jbG9zZWQgYnkgYnJh Y2tldHMgIltdIgorKyAgIHJlcGxhY2VkIHdpdGggeW91ciBvd24gaWRlbnRpZnlpbmcgaW5mb3Jt YXRpb24uIChEb24ndCBpbmNsdWRlCisrICAgdGhlIGJyYWNrZXRzISkgIFRoZSB0ZXh0IHNob3Vs ZCBiZSBlbmNsb3NlZCBpbiB0aGUgYXBwcm9wcmlhdGUKKysgICBjb21tZW50IHN5bnRheCBmb3Ig dGhlIGZpbGUgZm9ybWF0LiBXZSBhbHNvIHJlY29tbWVuZCB0aGF0IGEKKysgICBmaWxlIG9yIGNs YXNzIG5hbWUgYW5kIGRlc2NyaXB0aW9uIG9mIHB1cnBvc2UgYmUgaW5jbHVkZWQgb24gdGhlCisr ICAgc2FtZSAicHJpbnRlZCBwYWdlIiBhcyB0aGUgY29weXJpZ2h0IG5vdGljZSBmb3IgZWFzaWVy CisrICAgaWRlbnRpZmljYXRpb24gd2l0aGluIHRoaXJkLXBhcnR5IGFyY2hpdmVzLgorKworK0Nv cHlyaWdodCBbeXl5eV0gW25hbWUgb2YgY29weXJpZ2h0IG93bmVyXQorKworK0xpY2Vuc2VkIHVu ZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworK3lv dSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGlj ZW5zZS4KKytZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKysKKysJaHR0 cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisrCisrVW5sZXNzIHJlcXVp cmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQor K2Rpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJ UyIgQkFTSVMsCisrV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQs IGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisrU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3Bl Y2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorK2xpbWl0YXRpb25zIHVu ZGVyIHRoZSBMaWNlbnNlLgorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvYW55X2FsbF93 b3JrYXJvdW5kL0xJQ0VOU0UtTUlUIGIvdGhpcmRfcGFydHkvcnVzdC9hbnlfYWxsX3dvcmthcm91 bmQvTElDRU5TRS1NSVQKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CistLS0gL2Rldi9udWxsCisrKysg Yi90aGlyZF9wYXJ0eS9ydXN0L2FueV9hbGxfd29ya2Fyb3VuZC9MSUNFTlNFLU1JVAorQEAgLTAs MCArMSwyNSBAQAorK0NvcHlyaWdodCAoYykgMjAxNCBUaGUgUnVzdCBQcm9qZWN0IERldmVsb3Bl cnMKKysKKytQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8g YW55CisrcGVyc29uIG9idGFpbmluZyBhIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2Np YXRlZAorK2RvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8gZGVhbCBpbiB0 aGUKKytTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dAorK2xp bWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsCisrcHVibGlz aCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mCisrdGhlIFNv ZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUKKytpcyBm dXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZworK2NvbmRpdGlvbnM6 CisrCisrVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3Rp Y2UKKytzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRp b25zCisrb2YgdGhlIFNvZnR3YXJlLgorKworK1RIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMg SVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GCisrQU5ZIEtJTkQsIEVYUFJFU1MgT1IgSU1QTElFRCwg SU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRAorK1RPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5U QUJJTElUWSwgRklUTkVTUyBGT1IgQQorK1BBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklO R0VNRU5ULiBJTiBOTyBFVkVOVAorK1NIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xE RVJTIEJFIExJQUJMRSBGT1IgQU5ZCisrQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZ LCBXSEVUSEVSIElOIEFOIEFDVElPTgorK09GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwg QVJJU0lORyBGUk9NLCBPVVQgT0YgT1IKKytJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJF IE9SIFRIRSBVU0UgT1IgT1RIRVIKKytERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCitkaWZmIC0t Z2l0IGEvdGhpcmRfcGFydHkvcnVzdC9hbnlfYWxsX3dvcmthcm91bmQvTElDRU5TRS1NSVQtUUNN UyBiL3RoaXJkX3BhcnR5L3J1c3QvYW55X2FsbF93b3JrYXJvdW5kL0xJQ0VOU0UtTUlULVFDTVMK K25ldyBmaWxlIG1vZGUgMTAwNjQ0CistLS0gL2Rldi9udWxsCisrKysgYi90aGlyZF9wYXJ0eS9y dXN0L2FueV9hbGxfd29ya2Fyb3VuZC9MSUNFTlNFLU1JVC1RQ01TCitAQCAtMCwwICsxLDIxIEBA CisrcWNtcworK0NvcHlyaWdodCAoQykgMjAwOS0yMDI0IE1vemlsbGEgQ29ycG9yYXRpb24KKytD b3B5cmlnaHQgKEMpIDE5OTgtMjAwNyBNYXJ0aSBNYXJpYQorKworK1Blcm1pc3Npb24gaXMgaGVy ZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyAKKyth IGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVz ICh0aGUgIlNvZnR3YXJlIiksIAorK3RvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVz dHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gCisrdGhlIHJpZ2h0cyB0byB1 c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2Us IAorK2FuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVy c29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSAKKytpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1Ympl Y3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorKworK1RoZSBhYm92ZSBjb3B5cmlnaHQg bm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluIAor K2FsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgorKwor K1RIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFO WSBLSU5ELCAKKytFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQg VE8gCisrVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBB UlRJQ1VMQVIgUFVSUE9TRSBBTkQgCisrTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFM TCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSAKKytMSUFCTEUgRk9SIEFOWSBD TEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIAor K09GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1Ig SU4gQ09OTkVDVElPTiAKKytXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERF QUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L2Fu eV9hbGxfd29ya2Fyb3VuZC9SRUFETUUubWQgYi90aGlyZF9wYXJ0eS9ydXN0L2FueV9hbGxfd29y a2Fyb3VuZC9SRUFETUUubWQKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CistLS0gL2Rldi9udWxsCisr KysgYi90aGlyZF9wYXJ0eS9ydXN0L2FueV9hbGxfd29ya2Fyb3VuZC9SRUFETUUubWQKK0BAIC0w LDAgKzEsMTMgQEAKKysjIGFueV9hbGxfd29ya2Fyb3VuZAorKworK1RoaXMgaXMgYSB3b3JrYXJv dW5kIGZvciBiYWQgY29kZWdlbiAoW1J1c3QgYnVnXShodHRwczovL2dpdGh1Yi5jb20vcnVzdC1s YW5nL3BvcnRhYmxlLXNpbWQvaXNzdWVzLzE0NiksIFtMTFZNIGJ1Z10oaHR0cHM6Ly9naXRodWIu Y29tL2xsdm0vbGx2bS1wcm9qZWN0L2lzc3Vlcy81MDQ2NikpIGZvciB0aGUgYGFueSgpYCBhbmQg YGFsbCgpYCByZWR1Y3Rpb25zIGZvciBORU9OLWJhY2tlZCBTSU1EIHZlY3RvcnMgb24gMzItYml0 IEFSTS4gT24gb3RoZXIgcGxhdGZvcm1zIHRoZXNlIGRlbGVnYXRlIHRvIGBhbnkoKWAgYW5kIGBh bGwoKWAgaW4gYGNvcmU6OnNpbWRgLgorKworK1RoZSBwbGFuIGlzIHRvIGFiYW5kb24gdGhpcyBj cmF0ZSBvbmNlIHRoZSBMTFZNIGJ1ZyBpcyBmaXhlZCBvciBgY29yZTo6c2ltZGAgd29ya3MgYXJv dW5kIHRoZSBMTFZNIGJ1Zy4KKysKKytUaGUgY29kZSBpcyBmb3JrZWQgZnJvbSB0aGUgW2BwYWNr ZWRfc2ltZGAgY3JhdGVdKGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9oc2l2b25l bi9wYWNrZWRfc2ltZC9kOTM4ZTM5YmVlOWJjNWMyMjJmNWYyZjJhMGRmOWU1M2I1Y2UzNmFlL3Ny Yy9jb2RlZ2VuL3JlZHVjdGlvbnMvbWFzay9hcm0ucnMpLgorKworK1RoaXMgY3JhdGUgcmVxdWly ZXMgTmlnaHRseSBSdXN0IGFzIGl0IGRlcGVuZHMgb24gdGhlIGBwb3J0YWJsZV9zaW1kYCBmZWF0 dXJlLgorKworKyMgTGljZW5zZQorKworK2BNSVQgT1IgQXBhY2hlLTIuMGAsIHNpbmNlIHRoYXQn cyBob3cgYHBhY2tlZF9zaW1kYCBpcyBsaWNlbnNlZC4gKFRoZSBBUk0gaW50cmluc2ljcyBSdXN0 IHZlcnNpb24gd29ya2Fyb3VuZCBpcyBmcm9tIHFjbXMsIHNlZSBMSUNFTlNFLU1JVC1RQ01TLikK K2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L2FueV9hbGxfd29ya2Fyb3VuZC9idWlsZC5y cyBiL3RoaXJkX3BhcnR5L3J1c3QvYW55X2FsbF93b3JrYXJvdW5kL2J1aWxkLnJzCituZXcgZmls ZSBtb2RlIDEwMDY0NAorLS0tIC9kZXYvbnVsbAorKysrIGIvdGhpcmRfcGFydHkvcnVzdC9hbnlf YWxsX3dvcmthcm91bmQvYnVpbGQucnMKK0BAIC0wLDAgKzEsNyBAQAorK2V4dGVybiBjcmF0ZSB2 ZXJzaW9uX2NoZWNrIGFzIHJ1c3RjOworKworK2ZuIG1haW4oKSB7CisrICAgIGlmIHJ1c3RjOjpp c19taW5fdmVyc2lvbigiMS43OC4wIikudW53cmFwX29yKGZhbHNlKSB7CisrICAgICAgICBwcmlu dGxuISgiY2FyZ286cnVzdGMtY2ZnPXN0ZHNpbWRfc3BsaXQiKTsKKysgICAgfQorK30KK2RpZmYg LS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L2FueV9hbGxfd29ya2Fyb3VuZC9zcmMvbGliLnJzIGIv dGhpcmRfcGFydHkvcnVzdC9hbnlfYWxsX3dvcmthcm91bmQvc3JjL2xpYi5ycworbmV3IGZpbGUg bW9kZSAxMDA2NDQKKy0tLSAvZGV2L251bGwKKysrKyBiL3RoaXJkX3BhcnR5L3J1c3QvYW55X2Fs bF93b3JrYXJvdW5kL3NyYy9saWIucnMKK0BAIC0wLDAgKzEsMTEwIEBACisrLy8gVGhpcyBjb2Rl IGJlZ2FuIGFzIGEgZm9yayBvZgorKy8vIGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNv bS9ydXN0LWxhbmcvcGFja2VkX3NpbWQvZDkzOGUzOWJlZTliYzVjMjIyZjVmMmYyYTBkZjllNTNi NWNlMzZhZS9zcmMvY29kZWdlbi9yZWR1Y3Rpb25zL21hc2svYXJtLnJzCisrLy8gd2hpY2ggZGlk bid0IGhhdmUgYSBsaWNlbnNlIGhlYWRlciBvbiB0aGUgZmlsZSwgYnV0IENhcmdvLnRvbWwgc2Fp ZCAiTUlUIE9SIEFwYWNoZS0yLjAiLgorKy8vIFNlZSBMSUNFTlNFLU1JVCBhbmQgTElDRU5TRS1B UEFDSEUuCisrCisrIyFbbm9fc3RkXQorKyMhW2ZlYXR1cmUocG9ydGFibGVfc2ltZCldCisrIyFb Y2ZnX2F0dHIoCisrICAgIGFsbCgKKysgICAgICAgIHN0ZHNpbWRfc3BsaXQsCisrICAgICAgICB0 YXJnZXRfYXJjaCA9ICJhcm0iLAorKyAgICAgICAgdGFyZ2V0X2VuZGlhbiA9ICJsaXR0bGUiLAor KyAgICAgICAgdGFyZ2V0X2ZlYXR1cmUgPSAibmVvbiIsCisrICAgICAgICB0YXJnZXRfZmVhdHVy ZSA9ICJ2NyIKKysgICAgKSwKKysgICAgZmVhdHVyZShzdGRhcmNoX2FybV9uZW9uX2ludHJpbnNp Y3MpCisrKV0KKysjIVtjZmdfYXR0cigKKysgICAgYWxsKAorKyAgICAgICAgbm90KHN0ZHNpbWRf c3BsaXQpLAorKyAgICAgICAgdGFyZ2V0X2FyY2ggPSAiYXJtIiwKKysgICAgICAgIHRhcmdldF9l bmRpYW4gPSAibGl0dGxlIiwKKysgICAgICAgIHRhcmdldF9mZWF0dXJlID0gIm5lb24iLAorKyAg ICAgICAgdGFyZ2V0X2ZlYXR1cmUgPSAidjciCisrICAgICksCisrICAgIGZlYXR1cmUoc3Rkc2lt ZCkKKyspXQorKworK3VzZSBjZmdfaWY6OmNmZ19pZjsKKyt1c2UgY29yZTo6c2ltZDo6bWFzazE2 eDg7CisrdXNlIGNvcmU6OnNpbWQ6Om1hc2szMng0OworK3VzZSBjb3JlOjpzaW1kOjptYXNrOHgx NjsKKysKKytjZmdfaWYhIHsKKysgICAgaWYgI1tjZmcoYWxsKHRhcmdldF9hcmNoID0gImFybSIs IHRhcmdldF9lbmRpYW4gPSAibGl0dGxlIiwgdGFyZ2V0X2ZlYXR1cmUgPSAibmVvbiIsIHRhcmdl dF9mZWF0dXJlID0gInY3IikpXSB7CisrICAgICAgICB1c2UgY29yZTo6c2ltZDo6bWFzazh4ODsK KysgICAgICAgIHVzZSBjb3JlOjpzaW1kOjptYXNrMTZ4NDsKKysgICAgICAgIHVzZSBjb3JlOjpz aW1kOjptYXNrMzJ4MjsKKysgICAgICAgIG1hY3JvX3J1bGVzISBhcm1fMTI4X3Y3X25lb25faW1w bCB7CisrICAgICAgICAgICAgKCRhbGw6aWRlbnQsICRhbnk6aWRlbnQsICRpZDppZGVudCwgJGhh bGY6aWRlbnQsICR2cG1pbjppZGVudCwgJHZwbWF4OmlkZW50KSA9PiB7CisrICAgICAgICAgICAg ICAgICNbaW5saW5lXQorKyAgICAgICAgICAgICAgICBwdWIgZm4gJGFsbChzOiAkaWQpIC0+IGJv b2wgeworKyAgICAgICAgICAgICAgICAgICAgdXNlIGNvcmU6OmFyY2g6OmFybTo6JHZwbWluOwor KyAgICAgICAgICAgICAgICAgICAgdXNlIGNvcmU6Om1lbTo6dHJhbnNtdXRlOworKyAgICAgICAg ICAgICAgICAgICAgdW5zYWZlIHsKKysgICAgICAgICAgICAgICAgICAgICAgICB1bmlvbiBVIHsK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFsdmVzOiAoJGhhbGYsICRoYWxmKSwKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjOiAkaWQsCisrICAgICAgICAgICAgICAgICAg ICAgICAgfQorKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBoYWx2ZXMgPSBVIHsgdmVjOiBz IH0uaGFsdmVzOworKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBoOiAkaGFsZiA9IHRyYW5z bXV0ZSgkdnBtaW4odHJhbnNtdXRlKGhhbHZlcy4wKSwgdHJhbnNtdXRlKGhhbHZlcy4xKSkpOwor KyAgICAgICAgICAgICAgICAgICAgICAgIGguYWxsKCkKKysgICAgICAgICAgICAgICAgICAgIH0K KysgICAgICAgICAgICAgICAgfQorKyAgICAgICAgICAgICAgICAjW2lubGluZV0KKysgICAgICAg ICAgICAgICAgcHViIGZuICRhbnkoczogJGlkKSAtPiBib29sIHsKKysgICAgICAgICAgICAgICAg ICAgIHVzZSBjb3JlOjphcmNoOjphcm06OiR2cG1heDsKKysgICAgICAgICAgICAgICAgICAgIHVz ZSBjb3JlOjptZW06OnRyYW5zbXV0ZTsKKysgICAgICAgICAgICAgICAgICAgIHVuc2FmZSB7Cisr ICAgICAgICAgICAgICAgICAgICAgICAgdW5pb24gVSB7CisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGhhbHZlczogKCRoYWxmLCAkaGFsZiksCisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHZlYzogJGlkLAorKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKysgICAgICAgICAgICAg ICAgICAgICAgICBsZXQgaGFsdmVzID0gVSB7IHZlYzogcyB9LmhhbHZlczsKKysgICAgICAgICAg ICAgICAgICAgICAgICBsZXQgaDogJGhhbGYgPSB0cmFuc211dGUoJHZwbWF4KHRyYW5zbXV0ZSho YWx2ZXMuMCksIHRyYW5zbXV0ZShoYWx2ZXMuMSkpKTsKKysgICAgICAgICAgICAgICAgICAgICAg ICBoLmFueSgpCisrICAgICAgICAgICAgICAgICAgICB9CisrICAgICAgICAgICAgICAgIH0KKysg ICAgICAgICAgICB9CisrICAgICAgICB9CisrICAgIH0gZWxzZSB7CisrICAgICAgICBtYWNyb19y dWxlcyEgYXJtXzEyOF92N19uZW9uX2ltcGwgeworKyAgICAgICAgICAgICgkYWxsOmlkZW50LCAk YW55OmlkZW50LCAkaWQ6aWRlbnQsICRoYWxmOmlkZW50LCAkdnBtaW46aWRlbnQsICR2cG1heDpp ZGVudCkgPT4geworKyAgICAgICAgICAgICAgICAjW2lubGluZShhbHdheXMpXQorKyAgICAgICAg ICAgICAgICBwdWIgZm4gJGFsbChzOiAkaWQpIC0+IGJvb2wgeworKyAgICAgICAgICAgICAgICAg ICAgcy5hbGwoKQorKyAgICAgICAgICAgICAgICB9CisrICAgICAgICAgICAgICAgICNbaW5saW5l KGFsd2F5cyldCisrICAgICAgICAgICAgICAgIHB1YiBmbiAkYW55KHM6ICRpZCkgLT4gYm9vbCB7 CisrICAgICAgICAgICAgICAgICAgICBzLmFueSgpCisrICAgICAgICAgICAgICAgIH0KKysgICAg ICAgICAgICB9CisrICAgICAgICB9CisrICAgIH0KKyt9CisrCisrYXJtXzEyOF92N19uZW9uX2lt cGwhKAorKyAgICBhbGxfbWFzazh4MTYsCisrICAgIGFueV9tYXNrOHgxNiwKKysgICAgbWFzazh4 MTYsCisrICAgIG1hc2s4eDgsCisrICAgIHZwbWluX3U4LAorKyAgICB2cG1heF91OAorKyk7Cisr YXJtXzEyOF92N19uZW9uX2ltcGwhKAorKyAgICBhbGxfbWFzazE2eDgsCisrICAgIGFueV9tYXNr MTZ4OCwKKysgICAgbWFzazE2eDgsCisrICAgIG1hc2sxNng0LAorKyAgICB2cG1pbl91MTYsCisr ICAgIHZwbWF4X3UxNgorKyk7CisrYXJtXzEyOF92N19uZW9uX2ltcGwhKAorKyAgICBhbGxfbWFz azMyeDQsCisrICAgIGFueV9tYXNrMzJ4NCwKKysgICAgbWFzazMyeDQsCisrICAgIG1hc2szMngy LAorKyAgICB2cG1pbl91MzIsCisrICAgIHZwbWF4X3UzMgorKyk7CitkaWZmIC0tZ2l0IGEvdGhp cmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy8uY2FyZ28tY2hlY2tzdW0uanNvbiBiL3RoaXJkX3Bh cnR5L3J1c3QvZW5jb2RpbmdfcnMvLmNhcmdvLWNoZWNrc3VtLmpzb24KKy0tLSBhL3RoaXJkX3Bh cnR5L3J1c3QvZW5jb2RpbmdfcnMvLmNhcmdvLWNoZWNrc3VtLmpzb24KKysrKyBiL3RoaXJkX3Bh cnR5L3J1c3QvZW5jb2RpbmdfcnMvLmNhcmdvLWNoZWNrc3VtLmpzb24KK0BAIC0xLDEgKzEsMSBA QAorLXsiZmlsZXMiOnsiQ09OVFJJQlVUSU5HLm1kIjoiY2ExOTAxZjNlODUzMmZiNGNlYzg5NGZk MzY2NGYwZWFhODk4YzBjNGI5NjFkMWI5OTJkMWVkNTRlYWNmMzYyYSIsIkNPUFlSSUdIVCI6IjEx Nzg5ZjQ1YmIxODA4NDFjZDM2MmE1ZWVlNjc4OWM2OGRkYjU3M2ExMTEwNWUzMDc2OGMzMDhhNmFk ZDAxOTAiLCJDYXJnby50b21sIjoiNDJmYTgzMzIyYWE5ZmQ2NzIzYjc3ZDM1ZDBjYWNiOTJjYmI2 ZTdmNTczY2UxMWM1NWY1MjI1MjkyODY2ZjhmNCIsIklkZWFzLm1kIjoiYjc0NTI4OTNmNTAwMTYz ODY4ZDhkZTUyYzA5YWRkYWY5MWUxNjMyNDU0ZWQwMmU4OTJjNDY3ZWQ3ZWMzOWRiZCIsIkxJQ0VO U0UtQVBBQ0hFIjoiY2ZjNzc0OWI5NmY2M2JkMzFjM2M0MmI1YzQ3MWJmNzU2ODE0MDUzZTg0N2Mx MGYzZWIwMDM0MTdiYzUyM2QzMCIsIkxJQ0VOU0UtTUlUIjoiM2ZhNGNhODNkY2M5MjM3ODM5YjFi ZGViMmU2ZDE2YmRmYjVlYzBjNWNlNDJiMjQ2OTRkOGJiZjBkY2JlZjcyYyIsIkxJQ0VOU0UtV0hB VFdHIjoiODM4MTE4Mzg4ZmU1YzJlN2YxZGJiYWVlZDEzZTFjN2YzZWJmODhiZTkxMzE5YzdjMWQ3 N2MxOGU5ODdkMWE1MCIsIlJFQURNRS5tZCI6ImQ5MzhlOGFiMGI5YWI2N2U3NGExYTRmNDhmMjNm ZGNlOTU2ZDBhZDNhM2Y2MTQ3YWU3NjEyYTkyNzYzYzg4ZDUiLCJjaS9taXJpLnNoIjoiNDNjYjhk ODJmNDllM2JmZTJkMjI3NGI2Y2NkNmYwNzE0YTQxODhjY2VmMGNlY2MwNDA4Mjk4ODNjZmRiZWUy NSIsImRvYy9CaWc1LnR4dCI6ImY3M2EyZWRjNWNiNmMyZDE0MGJhNmUwN2Y0NTQyZTFjNGEyMzQ5 NTAzNzhhY2RlMWRmOTM0ODBmMGNhMGJlMGIiLCJkb2MvRVVDLUpQLnR4dCI6ImVlMjgxOGI5MDdk MDEzN2Y0MGE5YWI5ZmQ1MjVmYzcwMGE0NGRiZGRkYjZjZjBjMTU3YTY1NjU2NmJhZTRiZjEiLCJk b2MvRVVDLUtSLnR4dCI6IjcxZDllMmNjZjNiMTI0ZThiZGZiNDMzYzhjZjI3NzNmZDg3ODA3NzAz OGQwY2VjM2M3MjM3YTUwZjRhNzhhMzAiLCJkb2MvR0JLLnR4dCI6ImMxYjUyMmI1YTc5OTg4NGU1 MDAxZGE2NjFmNDJjNWE4ZjRkMGFjYjllZjFkNzRiMjA2ZjIyYjVmNjUzNjU2MDYiLCJkb2MvSUJN ODY2LnR4dCI6ImE1YTQzM2U4MDRkMGY4M2FmNzg1MDE1MTc5ZmJjMWQ5YjBlYWYxZjc5NjBlZmNk MDQwOTNlMTM2YjUxZmJkMGUiLCJkb2MvSVNPLTIwMjItSlAudHh0IjoiYWY4NjY4NGY1YThmMGUy ODY4ZDdiMmMyOTI4NjAxNDBjM2QyZTU1Mjc1MzBjYTA5MWYxYjI4MTk4ZThlMmZlNiIsImRvYy9J U08tODg1OS0xMC50eHQiOiI2ZDM5NDlhZDdjODFjYTE3Njg5NTEwMWVkODFhMWRiN2RmMTA2MGQ2 NGUyNjI4ODBiOTRiZDMxYmIzNDRhYjRkIiwiZG9jL0lTTy04ODU5LTEzLnR4dCI6IjM5NTFkZDg5 Y2Y5M2Y3NzI5MTQ4MDkxNjgzY2Y4NTExZjQ1MjkzODhiN2RjOGRjZDBkNjJlYWVkNTViZTkzZmEi LCJkb2MvSVNPLTg4NTktMTQudHh0IjoiM2QzMzA3ODRhMDM3NGZkMjU1YTM4YjQ3OTQ5Njc1Y2M3 MTY4YzgwMDUzMDUzNGIwYTAxY2FjNmVkYzYyM2FkYyIsImRvYy9JU08tODg1OS0xNS50eHQiOiIy NGIxMDg0YWFiNTEyN2E4NWFhYjk5MTUzZjg2ZTI0Njk0ZDBhMzYxNWY1M2I1Y2UyMzY4M2Y5N2Nm NjZjNDdhIiwiZG9jL0lTTy04ODU5LTE2LnR4dCI6ImNlMDI3MjU1OWI5MmJhNzZkN2E3ZTQ3NmY2 NDI0YWU0YTVjYzcyZTc1YjE4MzYxMWIwODM5MmU0NGFkZDRkMjUiLCJkb2MvSVNPLTg4NTktMi50 eHQiOiIxOGNlZmY4OGMxM2QxYjViYTQ1NWEzOTE5YjFlM2RlNDg5MDQ1YzRjM2QyZGQ3ZTg1Mjdj MTI1Yzc1ZDU0YWFkIiwiZG9jL0lTTy04ODU5LTMudHh0IjoiMjE3OTg0MDRjNjhmNGY1ZGI1OTIy MzM2MmYyNDk5OWRhOTY5NjhjMDYyODQyNzMyMWZjY2NlN2QyODQ5YTEzMCIsImRvYy9JU08tODg1 OS00LnR4dCI6ImQyN2Y2NTIwYzZjNWJmYmNjMTkxNzZiNzFkMDgxY2RiM2JjY2RlMTYyMmJiM2U0 MjBkNTY4MGU4MTI2MzJkNTMiLCJkb2MvSVNPLTg4NTktNS50eHQiOiJhMTBlYzhkNmVhN2E3OGFk MTVkYTcyNzVmNmNiMWEzMzY1MTE4NTI3ZTI4ZjlhZjZkMGQ1ODMwNTAxMzAzZjNhIiwiZG9jL0lT Ty04ODU5LTYudHh0IjoiY2NkYThhMmVmYzk2MTE1MzM2YmRkNzc3NzY2MzdiOTcxMjQyNWU0NGZi Y2Y3NDUzNTNiOTA1N2ZiZWYxNDRlNyIsImRvYy9JU08tODg1OS03LnR4dCI6IjE3OTAwZmExZjI3 YTQ0NTk1OGYwYTc3ZDdkOTA1NmJlMzc1YTZiZDdlZTQ0OTJhYTY4MGM3YzE1MDBiYWI4NWUiLCJk b2MvSVNPLTg4NTktOC1JLnR4dCI6IjgzNTc1NTU2NDZkNTQyNjVhOWI5ZmZhM2U2OGIwOGQxMzIz MTJmMTU2MWM2MDEwOGZmOWI4YjExNjdiNmVjZjIiLCJkb2MvSVNPLTg4NTktOC50eHQiOiI3MmNk NmYzYWZiN2I0YTljMTZhNjZhMzYyNDczMzE1NzcwYjc3NTVkNzJjODZjODcwZTUyZmMzZWJhODZj OGFmIiwiZG9jL0tPSTgtUi50eHQiOiI4MzljZjE5YTM4ZGE5OTQ0ODgwMDRlZDc4MTRiMWY2MTUx NjQwMTU2YTlhMmFmMDJiZjJlZmNhNzQ1ZmI1OTY2IiwiZG9jL0tPSTgtVS50eHQiOiIwY2M3NjYy NGVkMWYwMjQxODNlMjI5OGI3ZTAxOTk1N2RhMmM3MGM4Y2EwNmUwZmM0ZTZmMzUzZjUwYTUwNTRm IiwiZG9jL1NoaWZ0X0pJUy50eHQiOiIzNGM0OTE0MTgxOGNiOWRkYmNmNTljYzg1OGY3OGE3OWJl OGFkMTQ4ZDU2M2YyNjQxNTEwOGFlMWYxNDg0NDNmIiwiZG9jL1VURi0xNkJFLnR4dCI6ImUyZTI4 MGQ4YWNiYWE2ZDJhNmIzNTY5ZDYwZTE3NTAwYTI4NWYyYmFhMGRmMzM2M2RkODU1MzdjZDVhMWVm OGYiLCJkb2MvVVRGLTE2TEUudHh0IjoiNzBiZGMxNzBlM2ZjNTI5OGJhNjhmMTAxMjVmYjVlZWI4 YjA3NzAzNmNjOTZiYjQ0MTZjNGRlMzk2ZjZkNzZjMSIsImRvYy9VVEYtOC50eHQiOiJlYTdiYWU3 NDJlNjEzMDEwY2VkMDAyY2Y0YjYwMWE3MzdkMjIwM2ZhZDY1ZTExNTYxMTQ1MWJjNDQyOGY1NDhh IiwiZG9jL2diMTgwMzAudHh0IjoiZGM3MTM3OGE4ZjA3YTJkODY1OWY2OWVlODFmYjg3OTFmZWY1 NmJhODZmMTI0YjQyOTk3ODI4NTIzN2JiNGE3YiIsImRvYy9tYWNpbnRvc2gudHh0IjoiNTc0OTFl NTM4NjY3MTFiNDY3MmQ5YjlmZjM1MzgwYjlkYWM5ZTBkOGUzZDZjMjBiZGQ2MTQwNjAzNjg3YzAy MyIsImRvYy9yZXBsYWNlbWVudC50eHQiOiI0YjZjM2JiZDc5OTlkOWQ0MTA4YTI4MTU5NGJkMDJk MTM2MDdlMzM0YTk1NDY1YWZmZjhjMmMwOGQzOTVmMGU0IiwiZG9jL3dpbmRvd3MtMTI1MC50eHQi OiI2MTI5NmJiNmEyMWNkYWI2MDIzMDBkMzJlY2ZiYTQzNGNiODJkZTVhYzNiYzg4ZDU4NzEwZDJm MTI1ZTI4ZDM5IiwiZG9jL3dpbmRvd3MtMTI1MS50eHQiOiI3ZGVlYTFjNjFkZWExNDg1YzhmZjAy ZGIyYzdkNTc4ZGI3YTlhYWI2M2FiMWNmZDAyZWMwNGI1MTU4NjQ2ODllIiwiZG9jL3dpbmRvd3Mt MTI1Mi50eHQiOiI5MzNlZjNiZGRkZmNlNWVlMTMyYjlmMWExYWE4YjQ3NDIzZDI1ODdiYmU0NzVi MTkwMjhkMGE2ZDM4ZTE4MGI2IiwiZG9jL3dpbmRvd3MtMTI1My50eHQiOiIxYTM4NzQ4Yjg4ZTk5 MDcxYTVjN2IzZDU0NTZlYWQ0Y2FlZGVhYmFiNTBkNTBkNjU4YmUxMDViYzExMzcxNGRlIiwiZG9j L3dpbmRvd3MtMTI1NC50eHQiOiJmODM3MmY4NmM2ZjhkNjQyNTYzY2Q2ZGRjMDI1MjYwNTUzMjky YTM5NDIzZGYxNjgzYTk4NjcwYmQ3YmYyYjQ3IiwiZG9jL3dpbmRvd3MtMTI1NS50eHQiOiI0ZTU4 NTI0OTQ3MzAwNTRlMmRhMjU4YTc0ZTFiOWQ3ODBhYmJjZGQ4Y2UyMmViYzIxOGNhMmVmZTllOTA0 OTNkIiwiZG9jL3dpbmRvd3MtMTI1Ni50eHQiOiJjMDg3OWM1MTcyYWJlZGVhZDMwMmE0MDZlOGY2 MGQ5Y2Q5NTk4Njk0YTBmZmE0ZmQyODhmZmU0ZmVmN2I4ZWExIiwiZG9jL3dpbmRvd3MtMTI1Ny50 eHQiOiJjMjhhMGM5Zjk2NGZjYjJiNDZkMjFmNTM3YzQwMjQ0NjUwMWEyODAwNjcwNDgxZDZhYmY5 ZmQ5ZTkwMThkNTIzIiwiZG9jL3dpbmRvd3MtMTI1OC50eHQiOiI1MDE5YWU0ZDYxODA1Yzc5YWFj YmYxN2M5Mzc5MzM0MmRiYjA5OGQ2NWExODM3NzgzYmMzZTJjNmQ2YTIzNjAyIiwiZG9jL3dpbmRv d3MtODc0LnR4dCI6IjRlZjBlNDUwMWM1ZmViYThiMTdhZWUxODE4NjAyZWQ0NGIzNmNhODQ3NWRi NzcxY2UyZmMxNmQzOTJjYWJlY2MiLCJkb2MveC1tYWMtY3lyaWxsaWMudHh0IjoiNThiZTE1NGQ4 YTg4OGNhM2Q0ODRiODNiNDRmNzQ5ODIzZWYzMzlhYjI3ZjE0ZDkwY2E5YTg1NmY1MDUwYThiZCIs ImRvYy94LXVzZXItZGVmaW5lZC50eHQiOiJmOWNkMDdjNDMyMWJmNWNmYjBiZTRiZGRkZDI1MTA3 Mjk5OWIwNGE2Y2Y3YTZmNWJjNjM3MDlhODRlMmMxZmZjIiwiZ2VuZXJhdGUtZW5jb2RpbmctZGF0 YS5weSI6ImJlOTg5ZGQyNWM2Yjk0NmUzZTg3NDVmZGM4ZThhODBmY2YyNGIzYmU5OWFkMGI0Yjc4 MTUzYmEzZjZhYjYzMTAiLCJydXN0Zm10LnRvbWwiOiI4NWMxYTNiNDM4MmZkODllOTkxY2JiODFi NzBmYjUyNzgwNDcyZWRjMDY0Yzk2Mzk0M2NkYWFhNTZlMGEyMDMwIiwic3JjL2FzY2lpLnJzIjoi YzQ0YzAwMjY0MWFkYjVlYmM0MzY4NzA3YThjYzBhMDc2ZDJmMzNlNmE1YzI3YjFiNjk5ODhlYjUx NWY1NjUzZCIsInNyYy9iaWc1LnJzIjoiZWM2ZTI5MTMwMTFhMzhlOWEzZTgyNWExNzMxZjEzOWE3 Y2ExZDViMjY0ZmVmYWU1MWEzY2MxYTY4YTU3Y2VmOSIsInNyYy9kYXRhLnJzIjoiOGE2MTdjYzU3 MDMyMDkyZDY1ODUwZWIyN2UwMGRlNjg3YzgwYWVhMzI5OWU4MzlhMWY1OGI0MmQwYjM1YWJmMyIs InNyYy9ldWNfanAucnMiOiIzMjA0N2Y1YjU0MDE4OGM0Y2IxOWMwNzE2NWY4NDZiOTc4NmEwOWYx OGUzMTVlZDNlOWJkYTEyOTNkYWU1MmFhIiwic3JjL2V1Y19rci5ycyI6IjliMjVhZmM3MmQ5Mzc4 NzAwZWVjZmFjNThkNTVhZDFjNTk0NmQ2Y2QwY2NkZTJjMjljMDgyMDBlZjJkZTZiYjkiLCJzcmMv Z2IxODAzMC5ycyI6IjgwODU4NzE2OGQ3M2YwYzgwZjg1MjBmMGNhOWIxNjE4NjZlZDJlZmViMTdh MDVlODVmZGYzYjhlZmU3YmEyOGEiLCJzcmMvaGFuZGxlcy5ycyI6ImNjODNkYzA3NTQ3NTFkNjdm NTY4OGE2NWM1ZTAxOTFjYmEwMmY2YmFjY2U4MWEwODEzYTI0M2NiYTU1ZWVmN2EiLCJzcmMvaXNv XzIwMjJfanAucnMiOiI5YmI0ODVlODI1NzRmNGI3ZDRiMjM2NGYwZmYyNzZhY2I2YTBiYzExMTc1 ODQyMGEzYjBlYzVlMDRjMTk2NjUyIiwic3JjL2xpYi5ycyI6IjFkYzA3YjgxOGU0NTg0NmIxNmRk Y2FmMGRlNDZjODg2MmRkN2RmODA5OTEyM2VjMzhiOTVjM2Y4YWQ5YzkxZWMiLCJzcmMvbWFjcm9z LnJzIjoiMjAwOTk3Zjg4NzBkZThiZmQ4Y2RjNDc1ZTkyMTE1ZGY0MjEwOGMwZGY2NjFlNDlkM2Qx Y2JjMzIwNTZlMWQ5OSIsInNyYy9tZW0ucnMiOiIwYmYzNDEwM2UwYWQxYjg0MmExM2EwODJkZWUy YjkyMGIwNWNmNGZiMGYxNDVjOWVlN2Y2MDhmNGNiNGE1NDRmIiwic3JjL3JlcGxhY2VtZW50LnJz IjoiNzY2MGIzNGE1M2Y4YzFjYTJiZGZhMGU1MWU4NDNlYzI4MzI2OTUwOTUyYWQ4YmM5NjU2OWZl YjkzYWM2MjMwOCIsInNyYy9zaGlmdF9qaXMucnMiOiI2OTUxYWU2N2UzNmIxYTEyZmEzYTMwNzM0 OTU3ZjQ0NGQ4YjFiNGFlMGUyYmRlNTIwNjBiMjliZDBmMTZkOWQ5Iiwic3JjL3NpbWRfZnVuY3Mu cnMiOiIyNjEyYWJhODZlMWQyMDEwOTZkN2U0N2E4NTliYzM0NDRmODU5MzRjYzgyZDhhZGM2ZDM5 YTQzMDRkOWVlY2ZjIiwic3JjL3NpbmdsZV9ieXRlLnJzIjoiM2M5ZTljMWY5NDZhZTYyMmM3MjVi YTk0MjEyNDBjMWZhYTlhMDVlOTVmYTEwZGQ0NjQyYTI1Y2IyNzZhMWVkYyIsInNyYy90ZXN0X2Rh dGEvYmlnNV9pbi50eHQiOiI0YzVhODY5MWY4ZGM3MTczMTE4ODljNjM4OTQwMjZkMmZiNjI3MjVh ODZjNDIwOGNhMjc0YTljYzhkNDJhNTAzIiwic3JjL3Rlc3RfZGF0YS9iaWc1X2luX3JlZi50eHQi OiI5OWQzOTllMTc3NTBjZjljN2NmMzBiYjI1M2RiZmUzNWI4MWM0ZmNiZGVhZDkzY2ZhNDhiMTQy OTIxMzQ3M2M3Iiwic3JjL3Rlc3RfZGF0YS9iaWc1X291dC50eHQiOiI2MTkzY2E5N2MyOTdhYTIw ZTA5Mzk2MDM4ZDE4ZTkzOGJiN2VhMzMxYzI2ZjBmMjQ1NDA5NzI5NjcyM2EwYjEzIiwic3JjL3Rl c3RfZGF0YS9iaWc1X291dF9yZWYudHh0IjoiMzY1Njc2OTFmNTU3ZGYxNDRmNmNjNTIwMDE1YTg3 MDM4ZGZhMTU2ZjI5NmZjZjEwM2I1NmFlOWE3MThiZTFmYyIsInNyYy90ZXN0X2RhdGEvZXVjX2ty X2luLnR4dCI6ImM4NmE3MjI0ZjMyMTVmYTBkMDRlNjg1NjIyYTc1MmZkYzcyNzYzZThhZTA3NjIz MGM3ZmQ2MmRlNTdlYzQwNzQiLCJzcmMvdGVzdF9kYXRhL2V1Y19rcl9pbl9yZWYudHh0IjoiMWY0 MTlmNGNhNDdkNzA4YjU0YzczYzQ2MTU0NWEwMjJhZTJlMjA0OThmZGJmODAwNWE0ODNkNzUyYTIw NDg4MyIsInNyYy90ZXN0X2RhdGEvZXVjX2tyX291dC50eHQiOiJlN2YzMmUwMjZmNzBiZTFlMWI1 OGUwMDQ3YmFmN2QzZDJjNTIwMjY5YzRmOWI5OTkyZTE1OGI0ZGVjYjBhMWEzIiwic3JjL3Rlc3Rf ZGF0YS9ldWNfa3Jfb3V0X3JlZi50eHQiOiJjOTkwNzg1Nzk4MGIyMGI4ZTllM2I1ODQ0ODJlZDY1 NjdhMmJlNjE4NWQ3MjIzN2I2MzIyZjA0MDQ5NDQ5MjRlIiwic3JjL3Rlc3RfZGF0YS9nYjE4MDMw X2luLnR4dCI6ImFiNzIzMWIyZDNlOWFmYWNkYmQ3ZDdmM2I5ZTUzNjFhN2ZmOWY3ZTFjZmRiNGYz YmQ5MDViOTM2MmIzMDllNTMiLCJzcmMvdGVzdF9kYXRhL2diMTgwMzBfaW5fcmVmLnR4dCI6ImRj NTA2OTQyMWFkY2EyMDQzYzU1ZjUwMTJiNTVhNzZmZGZmNjUxZDIyZTZlNjk5ZmQwOTc4ZjhkNTcw NjgxNWMiLCJzcmMvdGVzdF9kYXRhL2diMTgwMzBfb3V0LnR4dCI6ImYwMjA4ZDUyN2Y1Y2E2M2Rl N2Q5YTAzMjNiZThkNWNmMTJkOGExMDRiMjk0M2Q5MmMyNzAxZjBjMzM2NGRhYzEiLCJzcmMvdGVz dF9kYXRhL2diMTgwMzBfb3V0X3JlZi50eHQiOiI2ODE5ZmU0NzYyN2U0ZWEwMTAyNzAwM2ZjNTE0 YjlmMjFhMTMyMmU3MzJkN2YxZmI5MmNjNmM1NDU1YmM2YzA3Iiwic3JjL3Rlc3RfZGF0YS9pc29f MjAyMl9qcF9pbi50eHQiOiJjZDI0YmJkY2IxODM0ZTI1ZGI1NDY0NmZiZjRjNDE1NjBhMTNkYzc1 NDBmNmJlM2RiYTRmNWQ5N2Q0NDUxM2FmIiwic3JjL3Rlc3RfZGF0YS9pc29fMjAyMl9qcF9pbl9y ZWYudHh0IjoiM2RjNGU2YTVlMDY0NzE5NDJkMDg2YjE2Yzk0NDA5NDVlNzg0MTVmNmYzZjQ3ZTQz NzE3ZTRiYzJlYWMyY2RmNSIsInNyYy90ZXN0X2RhdGEvaXNvXzIwMjJfanBfb3V0LnR4dCI6Ijli NmYwMTUzMjlkZGE2YzNmOWVlNWNlNmRiZDZmYTljODlhY2MyMTI4M2U4ODY4MzZjNzhiOGQ4MzM0 ODBjMjEiLCJzcmMvdGVzdF9kYXRhL2lzb18yMDIyX2pwX291dF9yZWYudHh0IjoiNzhjYjI2MDA5 M2EyMDExNmFkOWE0MmY0M2IwNWQxODQ4YzVhYjEwMGI2YjlhODUwNzQ5ODA5ZTk0Mzg4NGIzNSIs InNyYy90ZXN0X2RhdGEvamlzMDIwOF9pbi50eHQiOiI2ZGYzMDMwNTUzZmZiMGE2NjE1YmIzM2Rj OGVhOWRjYTZkOTYyM2E5MDI4ZTJmZmVjNzU0Y2UzYzNkYTgyNGNjIiwic3JjL3Rlc3RfZGF0YS9q aXMwMjA4X2luX3JlZi50eHQiOiIzZGM0ZTZhNWUwNjQ3MTk0MmQwODZiMTZjOTQ0MDk0NWU3ODQx NWY2ZjNmNDdlNDM3MTdlNGJjMmVhYzJjZGY1Iiwic3JjL3Rlc3RfZGF0YS9qaXMwMjA4X291dC50 eHQiOiI0ZWMyNDQ3N2UxNjc1Y2U3NTA3MzNiZGMzYzVhZGQxY2QyN2I2YmQ0Y2UxZjA5Mjg5NTY0 NjQ2ZTk2NTRlODU3Iiwic3JjL3Rlc3RfZGF0YS9qaXMwMjA4X291dF9yZWYudHh0IjoiYzNlMWNl ZjUwMzJiMmIxZDkzYTQwNmYzMWZmOTQwYzRlMmRmZTg4NTliOGIxN2NhMjc2MWZlZTdhNzVhMGU0 OCIsInNyYy90ZXN0X2RhdGEvamlzMDIxMl9pbi50eHQiOiJjMDExZjBkZDcyYmQ3YzhjZDkyMmRm OTM3NGVmOGQyNzY5YTc3MTkwNTE0Yzc3ZjZjNjJiNDE1ODUyZWViOWZlIiwic3JjL3Rlc3RfZGF0 YS9qaXMwMjEyX2luX3JlZi50eHQiOiI3ZDk0NThiM2QyZjczZTcwOTJhN2Y1MDVjMDhjZTFkMjMz ZGRlMThhYTY3OWZiY2Y5ODg5MjU2MjM5Y2M5ZTA2Iiwic3JjL3Rlc3RfZGF0YS9zaGlmdF9qaXNf aW4udHh0IjoiMDJlMzg5Y2NlZjBkZDIxMjJlNjNmNTAzODk5NDAyY2I3Zjc5NzkxMmMyNDQ0Y2M4 MGFiOTMxMzExMTZjNTUyNCIsInNyYy90ZXN0X2RhdGEvc2hpZnRfamlzX2luX3JlZi50eHQiOiI1 MTJmOTg1OTUwY2E5MDJlNjQzYzg4NjgyZGJhOTcwOGI3YzM4ZDNjNWVjMjkyNTE2OGFiMDBhYzk0 YWIxOWY5Iiwic3JjL3Rlc3RfZGF0YS9zaGlmdF9qaXNfb3V0LnR4dCI6IjVmYmM0NGRhN2JmNjM5 YmY2Y2ZlMGZhMWZkM2ViYTcxMDJiODhmODE5MTljOWVhOTkxMzAyNzEyZjY5NDI2ZmIiLCJzcmMv dGVzdF9kYXRhL3NoaWZ0X2ppc19vdXRfcmVmLnR4dCI6IjQ2NjMyMmM2ZmVkODI4NmM2NDU4Mjcz MTc1NTI5MGMyMjk2NTA4ZWZkZDI1ODgyNmU2Mjc5Njg2NjQ5YjQ4MWYiLCJzcmMvdGVzdF9sYWJl bHNfbmFtZXMucnMiOiIyM2EyZTExYjAyYjNiOGQxNWZiNTYxM2E2MjVlM2VkYjJjNjFlNzBlM2M1 ODFhYmZkNjM4NzE5YTQwODgyMDBkIiwic3JjL3Rlc3RpbmcucnMiOiJmNTllNjcxZTk1YTk4YTU2 ZjZiNTczZThjNmJlNGQ3MWU2NzBiZjUyZjdlMjBlYjE2MDVkOTkwYWFmYTE4OTRlIiwic3JjL3V0 Zl8xNi5ycyI6ImMwNzFhMTQ3ZmFkMzhkNzUwYzJjMjQ3ZTE0MWI3NmI5MjlhNDgwMDdiOTlmMjZi MjkyMmI5Y2FlY2RhZjJmMjUiLCJzcmMvdXRmXzgucnMiOiI3YjdkODg3YjM0N2YxYWVmYTAzMjQ2 YjAyOGEzNmE3Mjc1OGE0Y2U3NmMyOGYzYjQ1YzE5NDY3ODUxYWE3ODM5Iiwic3JjL3ZhcmlhbnQu cnMiOiIxZmFiNTM2MzU4OGExNTU0YTcxNjlkZTg3MzFlYTljZGVkN2FjNjNlYTM1Y2FhYmRkMWMy N2E4ZGRlNjhjMjdiIiwic3JjL3hfdXNlcl9kZWZpbmVkLnJzIjoiYzljMDEwNzMwZGZiOWYxNDFk NGZlZDE5MzUwYzA4YTIxYWYyNDA5MTNhNTRiYjY0ZjVjYTg5ZmY5M2I2YjdkMSJ9LCJwYWNrYWdl IjoiNzI2OGIzODYyOTZhMDI1ZTQ3NGQ1MTQwNjc4Zjc1ZDZkZTk0OTNhZTU1YTVkNzA5ZWViOWRk MDgxNDk5NDVlMSJ9CitcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKKyt7ImZpbGVzIjp7IkNP TlRSSUJVVElORy5tZCI6ImNhMTkwMWYzZTg1MzJmYjRjZWM4OTRmZDM2NjRmMGVhYTg5OGMwYzRi OTYxZDFiOTkyZDFlZDU0ZWFjZjM2MmEiLCJDT1BZUklHSFQiOiIxMTc4OWY0NWJiMTgwODQxY2Qz NjJhNWVlZTY3ODljNjhkZGI1NzNhMTExMDVlMzA3NjhjMzA4YTZhZGQwMTkwIiwiQ2FyZ28udG9t bCI6IjIyYTRkMjEwYzkyZGFlOWYzMmM2OTQ0ZWYzNDBlZThmZGQwMjdmOTljMDgxNTc3ZTg5MDcx MjNlMmE5MzM4M2UiLCJJZGVhcy5tZCI6ImI3NDUyODkzZjUwMDE2Mzg2OGQ4ZGU1MmMwOWFkZGFm OTFlMTYzMjQ1NGVkMDJlODkyYzQ2N2VkN2VjMzlkYmQiLCJMSUNFTlNFLUFQQUNIRSI6ImNmYzc3 NDliOTZmNjNiZDMxYzNjNDJiNWM0NzFiZjc1NjgxNDA1M2U4NDdjMTBmM2ViMDAzNDE3YmM1MjNk MzAiLCJMSUNFTlNFLU1JVCI6IjNmYTRjYTgzZGNjOTIzNzgzOWIxYmRlYjJlNmQxNmJkZmI1ZWMw YzVjZTQyYjI0Njk0ZDhiYmYwZGNiZWY3MmMiLCJMSUNFTlNFLVdIQVRXRyI6IjgzODExODM4OGZl NWMyZTdmMWRiYmFlZWQxM2UxYzdmM2ViZjg4YmU5MTMxOWM3YzFkNzdjMThlOTg3ZDFhNTAiLCJS RUFETUUubWQiOiIxZDA4YWVmY2I5MmFmYTgxYjE4MTU0MDQ5YzlhYmJjYWQ0NTQwYTIzZjcxNzJl OWY5YmJlZDVhZjMzZjFhMDg3IiwiY2kvbWlyaS5zaCI6IjQzY2I4ZDgyZjQ5ZTNiZmUyZDIyNzRi NmNjZDZmMDcxNGE0MTg4Y2NlZjBjZWNjMDQwODI5ODgzY2ZkYmVlMjUiLCJkb2MvQmlnNS50eHQi OiJmNzNhMmVkYzVjYjZjMmQxNDBiYTZlMDdmNDU0MmUxYzRhMjM0OTUwMzc4YWNkZTFkZjkzNDgw ZjBjYTBiZTBiIiwiZG9jL0VVQy1KUC50eHQiOiJlZTI4MThiOTA3ZDAxMzdmNDBhOWFiOWZkNTI1 ZmM3MDBhNDRkYmRkZGI2Y2YwYzE1N2E2NTY1NjZiYWU0YmYxIiwiZG9jL0VVQy1LUi50eHQiOiI3 MWQ5ZTJjY2YzYjEyNGU4YmRmYjQzM2M4Y2YyNzczZmQ4NzgwNzcwMzhkMGNlYzNjNzIzN2E1MGY0 YTc4YTMwIiwiZG9jL0dCSy50eHQiOiJjMWI1MjJiNWE3OTk4ODRlNTAwMWRhNjYxZjQyYzVhOGY0 ZDBhY2I5ZWYxZDc0YjIwNmYyMmI1ZjY1MzY1NjA2IiwiZG9jL0lCTTg2Ni50eHQiOiJhNWE0MzNl ODA0ZDBmODNhZjc4NTAxNTE3OWZiYzFkOWIwZWFmMWY3OTYwZWZjZDA0MDkzZTEzNmI1MWZiZDBl IiwiZG9jL0lTTy0yMDIyLUpQLnR4dCI6ImFmODY2ODRmNWE4ZjBlMjg2OGQ3YjJjMjkyODYwMTQw YzNkMmU1NTI3NTMwY2EwOTFmMWIyODE5OGU4ZTJmZTYiLCJkb2MvSVNPLTg4NTktMTAudHh0Ijoi NmQzOTQ5YWQ3YzgxY2ExNzY4OTUxMDFlZDgxYTFkYjdkZjEwNjBkNjRlMjYyODgwYjk0YmQzMWJi MzQ0YWI0ZCIsImRvYy9JU08tODg1OS0xMy50eHQiOiIzOTUxZGQ4OWNmOTNmNzcyOTE0ODA5MTY4 M2NmODUxMWY0NTI5Mzg4YjdkYzhkY2QwZDYyZWFlZDU1YmU5M2ZhIiwiZG9jL0lTTy04ODU5LTE0 LnR4dCI6IjNkMzMwNzg0YTAzNzRmZDI1NWEzOGI0Nzk0OTY3NWNjNzE2OGM4MDA1MzA1MzRiMGEw MWNhYzZlZGM2MjNhZGMiLCJkb2MvSVNPLTg4NTktMTUudHh0IjoiMjRiMTA4NGFhYjUxMjdhODVh YWI5OTE1M2Y4NmUyNDY5NGQwYTM2MTVmNTNiNWNlMjM2ODNmOTdjZjY2YzQ3YSIsImRvYy9JU08t ODg1OS0xNi50eHQiOiJjZTAyNzI1NTliOTJiYTc2ZDdhN2U0NzZmNjQyNGFlNGE1Y2M3MmU3NWIx ODM2MTFiMDgzOTJlNDRhZGQ0ZDI1IiwiZG9jL0lTTy04ODU5LTIudHh0IjoiMThjZWZmODhjMTNk MWI1YmE0NTVhMzkxOWIxZTNkZTQ4OTA0NWM0YzNkMmRkN2U4NTI3YzEyNWM3NWQ1NGFhZCIsImRv Yy9JU08tODg1OS0zLnR4dCI6IjIxNzk4NDA0YzY4ZjRmNWRiNTkyMjMzNjJmMjQ5OTlkYTk2OTY4 YzA2Mjg0MjczMjFmY2NjZTdkMjg0OWExMzAiLCJkb2MvSVNPLTg4NTktNC50eHQiOiJkMjdmNjUy MGM2YzViZmJjYzE5MTc2YjcxZDA4MWNkYjNiY2NkZTE2MjJiYjNlNDIwZDU2ODBlODEyNjMyZDUz IiwiZG9jL0lTTy04ODU5LTUudHh0IjoiYTEwZWM4ZDZlYTdhNzhhZDE1ZGE3Mjc1ZjZjYjFhMzM2 NTExODUyN2UyOGY5YWY2ZDBkNTgzMDUwMTMwM2YzYSIsImRvYy9JU08tODg1OS02LnR4dCI6ImNj ZGE4YTJlZmM5NjExNTMzNmJkZDc3Nzc2NjM3Yjk3MTI0MjVlNDRmYmNmNzQ1MzUzYjkwNTdmYmVm MTQ0ZTciLCJkb2MvSVNPLTg4NTktNy50eHQiOiIxNzkwMGZhMWYyN2E0NDU5NThmMGE3N2Q3ZDkw NTZiZTM3NWE2YmQ3ZWU0NDkyYWE2ODBjN2MxNTAwYmFiODVlIiwiZG9jL0lTTy04ODU5LTgtSS50 eHQiOiI4MzU3NTU1NjQ2ZDU0MjY1YTliOWZmYTNlNjhiMDhkMTMyMzEyZjE1NjFjNjAxMDhmZjli OGIxMTY3YjZlY2YyIiwiZG9jL0lTTy04ODU5LTgudHh0IjoiNzJjZDZmM2FmYjdiNGE5YzE2YTY2 YTM2MjQ3MzMxNTc3MGI3NzU1ZDcyYzg2Yzg3MGU1MmZjM2ViYTg2YzhhZiIsImRvYy9LT0k4LVIu dHh0IjoiODM5Y2YxOWEzOGRhOTk0NDg4MDA0ZWQ3ODE0YjFmNjE1MTY0MDE1NmE5YTJhZjAyYmYy ZWZjYTc0NWZiNTk2NiIsImRvYy9LT0k4LVUudHh0IjoiMGNjNzY2MjRlZDFmMDI0MTgzZTIyOThi N2UwMTk5NTdkYTJjNzBjOGNhMDZlMGZjNGU2ZjM1M2Y1MGE1MDU0ZiIsImRvYy9TaGlmdF9KSVMu dHh0IjoiMzRjNDkxNDE4MThjYjlkZGJjZjU5Y2M4NThmNzhhNzliZThhZDE0OGQ1NjNmMjY0MTUx MDhhZTFmMTQ4NDQzZiIsImRvYy9VVEYtMTZCRS50eHQiOiJlMmUyODBkOGFjYmFhNmQyYTZiMzU2 OWQ2MGUxNzUwMGEyODVmMmJhYTBkZjMzNjNkZDg1NTM3Y2Q1YTFlZjhmIiwiZG9jL1VURi0xNkxF LnR4dCI6IjcwYmRjMTcwZTNmYzUyOThiYTY4ZjEwMTI1ZmI1ZWViOGIwNzcwMzZjYzk2YmI0NDE2 YzRkZTM5NmY2ZDc2YzEiLCJkb2MvVVRGLTgudHh0IjoiZWE3YmFlNzQyZTYxMzAxMGNlZDAwMmNm NGI2MDFhNzM3ZDIyMDNmYWQ2NWUxMTU2MTE0NTFiYzQ0MjhmNTQ4YSIsImRvYy9nYjE4MDMwLnR4 dCI6ImRjNzEzNzhhOGYwN2EyZDg2NTlmNjllZTgxZmI4NzkxZmVmNTZiYTg2ZjEyNGI0Mjk5Nzgy ODUyMzdiYjRhN2IiLCJkb2MvbWFjaW50b3NoLnR4dCI6IjU3NDkxZTUzODY2NzExYjQ2NzJkOWI5 ZmYzNTM4MGI5ZGFjOWUwZDhlM2Q2YzIwYmRkNjE0MDYwMzY4N2MwMjMiLCJkb2MvcmVwbGFjZW1l bnQudHh0IjoiNGI2YzNiYmQ3OTk5ZDlkNDEwOGEyODE1OTRiZDAyZDEzNjA3ZTMzNGE5NTQ2NWFm ZmY4YzJjMDhkMzk1ZjBlNCIsImRvYy93aW5kb3dzLTEyNTAudHh0IjoiNjEyOTZiYjZhMjFjZGFi NjAyMzAwZDMyZWNmYmE0MzRjYjgyZGU1YWMzYmM4OGQ1ODcxMGQyZjEyNWUyOGQzOSIsImRvYy93 aW5kb3dzLTEyNTEudHh0IjoiN2RlZWExYzYxZGVhMTQ4NWM4ZmYwMmRiMmM3ZDU3OGRiN2E5YWFi NjNhYjFjZmQwMmVjMDRiNTE1ODY0Njg5ZSIsImRvYy93aW5kb3dzLTEyNTIudHh0IjoiOTMzZWYz YmRkZGZjZTVlZTEzMmI5ZjFhMWFhOGI0NzQyM2QyNTg3YmJlNDc1YjE5MDI4ZDBhNmQzOGUxODBi NiIsImRvYy93aW5kb3dzLTEyNTMudHh0IjoiMWEzODc0OGI4OGU5OTA3MWE1YzdiM2Q1NDU2ZWFk NGNhZWRlYWJhYjUwZDUwZDY1OGJlMTA1YmMxMTM3MTRkZSIsImRvYy93aW5kb3dzLTEyNTQudHh0 IjoiZjgzNzJmODZjNmY4ZDY0MjU2M2NkNmRkYzAyNTI2MDU1MzI5MmEzOTQyM2RmMTY4M2E5ODY3 MGJkN2JmMmI0NyIsImRvYy93aW5kb3dzLTEyNTUudHh0IjoiNGU1ODUyNDk0NzMwMDU0ZTJkYTI1 OGE3NGUxYjlkNzgwYWJiY2RkOGNlMjJlYmMyMThjYTJlZmU5ZTkwNDkzZCIsImRvYy93aW5kb3dz LTEyNTYudHh0IjoiYzA4NzljNTE3MmFiZWRlYWQzMDJhNDA2ZThmNjBkOWNkOTU5ODY5NGEwZmZh NGZkMjg4ZmZlNGZlZjdiOGVhMSIsImRvYy93aW5kb3dzLTEyNTcudHh0IjoiYzI4YTBjOWY5NjRm Y2IyYjQ2ZDIxZjUzN2M0MDI0NDY1MDFhMjgwMDY3MDQ4MWQ2YWJmOWZkOWU5MDE4ZDUyMyIsImRv Yy93aW5kb3dzLTEyNTgudHh0IjoiNTAxOWFlNGQ2MTgwNWM3OWFhY2JmMTdjOTM3OTMzNDJkYmIw OThkNjVhMTgzNzc4M2JjM2UyYzZkNmEyMzYwMiIsImRvYy93aW5kb3dzLTg3NC50eHQiOiI0ZWYw ZTQ1MDFjNWZlYmE4YjE3YWVlMTgxODYwMmVkNDRiMzZjYTg0NzVkYjc3MWNlMmZjMTZkMzkyY2Fi ZWNjIiwiZG9jL3gtbWFjLWN5cmlsbGljLnR4dCI6IjU4YmUxNTRkOGE4ODhjYTNkNDg0YjgzYjQ0 Zjc0OTgyM2VmMzM5YWIyN2YxNGQ5MGNhOWE4NTZmNTA1MGE4YmQiLCJkb2MveC11c2VyLWRlZmlu ZWQudHh0IjoiZjljZDA3YzQzMjFiZjVjZmIwYmU0YmRkZGQyNTEwNzI5OTliMDRhNmNmN2E2ZjVi YzYzNzA5YTg0ZTJjMWZmYyIsImdlbmVyYXRlLWVuY29kaW5nLWRhdGEucHkiOiJiZTk4OWRkMjVj NmI5NDZlM2U4NzQ1ZmRjOGU4YTgwZmNmMjRiM2JlOTlhZDBiNGI3ODE1M2JhM2Y2YWI2MzEwIiwi cnVzdGZtdC50b21sIjoiODVjMWEzYjQzODJmZDg5ZTk5MWNiYjgxYjcwZmI1Mjc4MDQ3MmVkYzA2 NGM5NjM5NDNjZGFhYTU2ZTBhMjAzMCIsInNyYy9hc2NpaS5ycyI6IjU4OGUzOGIwMWU2NjZkNWU3 NDYyNjE3ZWE3ZTkwYTEwOGQ2MDhkZWM5ZTAxNmYzZDI3M2FjMDc0NGFmMmUwNWQiLCJzcmMvYmln NS5ycyI6ImVjNmUyOTEzMDExYTM4ZTlhM2U4MjVhMTczMWYxMzlhN2NhMWQ1YjI2NGZlZmFlNTFh M2NjMWE2OGE1N2NlZjkiLCJzcmMvZGF0YS5ycyI6IjhhNjE3Y2M1NzAzMjA5MmQ2NTg1MGViMjdl MDBkZTY4N2M4MGFlYTMyOTllODM5YTFmNThiNDJkMGIzNWFiZjMiLCJzcmMvZXVjX2pwLnJzIjoi MzIwNDdmNWI1NDAxODhjNGNiMTljMDcxNjVmODQ2Yjk3ODZhMDlmMThlMzE1ZWQzZTliZGExMjkz ZGFlNTJhYSIsInNyYy9ldWNfa3IucnMiOiI5YjI1YWZjNzJkOTM3ODcwMGVlY2ZhYzU4ZDU1YWQx YzU5NDZkNmNkMGNjZGUyYzI5YzA4MjAwZWYyZGU2YmI5Iiwic3JjL2diMTgwMzAucnMiOiI4MDg1 ODcxNjhkNzNmMGM4MGY4NTIwZjBjYTliMTYxODY2ZWQyZWZlYjE3YTA1ZTg1ZmRmM2I4ZWZlN2Jh MjhhIiwic3JjL2hhbmRsZXMucnMiOiJiMDhjZWYxZjU3ODViYjZhNDgyMmYyZTg0NGM2ZGYxYjA0 NmI3MzdiN2EwNzVlNDU5M2VhYThjNDIwOGU5ZmUyIiwic3JjL2lzb18yMDIyX2pwLnJzIjoiOWJi NDg1ZTgyNTc0ZjRiN2Q0YjIzNjRmMGZmMjc2YWNiNmEwYmMxMTE3NTg0MjBhM2IwZWM1ZTA0YzE5 NjY1MiIsInNyYy9saWIucnMiOiI4MzRmNDRiNjcwZWM0OGVlODJjMGUxMjIyM2QxNTY3MzEzZmRk OWY4OGJjYTVmNGIxMTdjODJjMTgyOGY1NTlmIiwic3JjL21hY3Jvcy5ycyI6IjIwMDk5N2Y4ODcw ZGU4YmZkOGNkYzQ3NWU5MjExNWRmNDIxMDhjMGRmNjYxZTQ5ZDNkMWNiYzMyMDU2ZTFkOTkiLCJz cmMvbWVtLnJzIjoiOTQ4NTcxMTM3ZDNiMTUxZGY4ZGI0ZmIyYzczM2U3NGFlNTk1ZDA1NWNkZjBh ZDgzYWJjYWI5MzQxZDZhZGFiZSIsInNyYy9yZXBsYWNlbWVudC5ycyI6Ijc2NjBiMzRhNTNmOGMx Y2EyYmRmYTBlNTFlODQzZWMyODMyNjk1MDk1MmFkOGJjOTY1NjlmZWI5M2FjNjIzMDgiLCJzcmMv c2hpZnRfamlzLnJzIjoiNjk1MWFlNjdlMzZiMWExMmZhM2EzMDczNDk1N2Y0NDRkOGIxYjRhZTBl MmJkZTUyMDYwYjI5YmQwZjE2ZDlkOSIsInNyYy9zaW1kX2Z1bmNzLnJzIjoiMDVjNmU3N2FmNzRi ZmU3M2NkMzlhNzUyMDY3YzExNDI1ZDZiNDZlNWRhNDE5OTEwZjU0YmY3NWE1YzAyYTk4NCIsInNy Yy9zaW5nbGVfYnl0ZS5ycyI6IjNhZDg3MTE2ZmIzMzk0MzRhNGI1OGU4ZjJiMTU0ODVmMmI2NmI5 Zjc4MTRkNzA4ZjE2MTk0ZWQwOGY2ZDZjY2YiLCJzcmMvdGVzdF9kYXRhL2JpZzVfaW4udHh0Ijoi NGM1YTg2OTFmOGRjNzE3MzExODg5YzYzODk0MDI2ZDJmYjYyNzI1YTg2YzQyMDhjYTI3NGE5Y2M4 ZDQyYTUwMyIsInNyYy90ZXN0X2RhdGEvYmlnNV9pbl9yZWYudHh0IjoiOTlkMzk5ZTE3NzUwY2Y5 YzdjZjMwYmIyNTNkYmZlMzViODFjNGZjYmRlYWQ5M2NmYTQ4YjE0MjkyMTM0NzNjNyIsInNyYy90 ZXN0X2RhdGEvYmlnNV9vdXQudHh0IjoiNjE5M2NhOTdjMjk3YWEyMGUwOTM5NjAzOGQxOGU5Mzhi YjdlYTMzMWMyNmYwZjI0NTQwOTcyOTY3MjNhMGIxMyIsInNyYy90ZXN0X2RhdGEvYmlnNV9vdXRf cmVmLnR4dCI6IjM2NTY3NjkxZjU1N2RmMTQ0ZjZjYzUyMDAxNWE4NzAzOGRmYTE1NmYyOTZmY2Yx MDNiNTZhZTlhNzE4YmUxZmMiLCJzcmMvdGVzdF9kYXRhL2V1Y19rcl9pbi50eHQiOiJjODZhNzIy NGYzMjE1ZmEwZDA0ZTY4NTYyMmE3NTJmZGM3Mjc2M2U4YWUwNzYyMzBjN2ZkNjJkZTU3ZWM0MDc0 Iiwic3JjL3Rlc3RfZGF0YS9ldWNfa3JfaW5fcmVmLnR4dCI6IjFmNDE5ZjRjYTQ3ZDcwOGI1NGM3 M2M0NjE1NDVhMDIyYWUyZTIwNDk4ZmRiZjgwMDVhNDgzZDc1MmEyMDQ4ODMiLCJzcmMvdGVzdF9k YXRhL2V1Y19rcl9vdXQudHh0IjoiZTdmMzJlMDI2ZjcwYmUxZTFiNThlMDA0N2JhZjdkM2QyYzUy MDI2OWM0ZjliOTk5MmUxNThiNGRlY2IwYTFhMyIsInNyYy90ZXN0X2RhdGEvZXVjX2tyX291dF9y ZWYudHh0IjoiYzk5MDc4NTc5ODBiMjBiOGU5ZTNiNTg0NDgyZWQ2NTY3YTJiZTYxODVkNzIyMzdi NjMyMmYwNDA0OTQ0OTI0ZSIsInNyYy90ZXN0X2RhdGEvZ2IxODAzMF9pbi50eHQiOiJhYjcyMzFi MmQzZTlhZmFjZGJkN2Q3ZjNiOWU1MzYxYTdmZjlmN2UxY2ZkYjRmM2JkOTA1YjkzNjJiMzA5ZTUz Iiwic3JjL3Rlc3RfZGF0YS9nYjE4MDMwX2luX3JlZi50eHQiOiJkYzUwNjk0MjFhZGNhMjA0M2M1 NWY1MDEyYjU1YTc2ZmRmZjY1MWQyMmU2ZTY5OWZkMDk3OGY4ZDU3MDY4MTVjIiwic3JjL3Rlc3Rf ZGF0YS9nYjE4MDMwX291dC50eHQiOiJmMDIwOGQ1MjdmNWNhNjNkZTdkOWEwMzIzYmU4ZDVjZjEy ZDhhMTA0YjI5NDNkOTJjMjcwMWYwYzMzNjRkYWMxIiwic3JjL3Rlc3RfZGF0YS9nYjE4MDMwX291 dF9yZWYudHh0IjoiNjgxOWZlNDc2MjdlNGVhMDEwMjcwMDNmYzUxNGI5ZjIxYTEzMjJlNzMyZDdm MWZiOTJjYzZjNTQ1NWJjNmMwNyIsInNyYy90ZXN0X2RhdGEvaXNvXzIwMjJfanBfaW4udHh0Ijoi Y2QyNGJiZGNiMTgzNGUyNWRiNTQ2NDZmYmY0YzQxNTYwYTEzZGM3NTQwZjZiZTNkYmE0ZjVkOTdk NDQ1MTNhZiIsInNyYy90ZXN0X2RhdGEvaXNvXzIwMjJfanBfaW5fcmVmLnR4dCI6IjNkYzRlNmE1 ZTA2NDcxOTQyZDA4NmIxNmM5NDQwOTQ1ZTc4NDE1ZjZmM2Y0N2U0MzcxN2U0YmMyZWFjMmNkZjUi LCJzcmMvdGVzdF9kYXRhL2lzb18yMDIyX2pwX291dC50eHQiOiI5YjZmMDE1MzI5ZGRhNmMzZjll ZTVjZTZkYmQ2ZmE5Yzg5YWNjMjEyODNlODg2ODM2Yzc4YjhkODMzNDgwYzIxIiwic3JjL3Rlc3Rf ZGF0YS9pc29fMjAyMl9qcF9vdXRfcmVmLnR4dCI6Ijc4Y2IyNjAwOTNhMjAxMTZhZDlhNDJmNDNi MDVkMTg0OGM1YWIxMDBiNmI5YTg1MDc0OTgwOWU5NDM4ODRiMzUiLCJzcmMvdGVzdF9kYXRhL2pp czAyMDhfaW4udHh0IjoiNmRmMzAzMDU1M2ZmYjBhNjYxNWJiMzNkYzhlYTlkY2E2ZDk2MjNhOTAy OGUyZmZlYzc1NGNlM2MzZGE4MjRjYyIsInNyYy90ZXN0X2RhdGEvamlzMDIwOF9pbl9yZWYudHh0 IjoiM2RjNGU2YTVlMDY0NzE5NDJkMDg2YjE2Yzk0NDA5NDVlNzg0MTVmNmYzZjQ3ZTQzNzE3ZTRi YzJlYWMyY2RmNSIsInNyYy90ZXN0X2RhdGEvamlzMDIwOF9vdXQudHh0IjoiNGVjMjQ0NzdlMTY3 NWNlNzUwNzMzYmRjM2M1YWRkMWNkMjdiNmJkNGNlMWYwOTI4OTU2NDY0NmU5NjU0ZTg1NyIsInNy Yy90ZXN0X2RhdGEvamlzMDIwOF9vdXRfcmVmLnR4dCI6ImMzZTFjZWY1MDMyYjJiMWQ5M2E0MDZm MzFmZjk0MGM0ZTJkZmU4ODU5YjhiMTdjYTI3NjFmZWU3YTc1YTBlNDgiLCJzcmMvdGVzdF9kYXRh L2ppczAyMTJfaW4udHh0IjoiYzAxMWYwZGQ3MmJkN2M4Y2Q5MjJkZjkzNzRlZjhkMjc2OWE3NzE5 MDUxNGM3N2Y2YzYyYjQxNTg1MmVlYjlmZSIsInNyYy90ZXN0X2RhdGEvamlzMDIxMl9pbl9yZWYu dHh0IjoiN2Q5NDU4YjNkMmY3M2U3MDkyYTdmNTA1YzA4Y2UxZDIzM2RkZTE4YWE2NzlmYmNmOTg4 OTI1NjIzOWNjOWUwNiIsInNyYy90ZXN0X2RhdGEvc2hpZnRfamlzX2luLnR4dCI6IjAyZTM4OWNj ZWYwZGQyMTIyZTYzZjUwMzg5OTQwMmNiN2Y3OTc5MTJjMjQ0NGNjODBhYjkzMTMxMTE2YzU1MjQi LCJzcmMvdGVzdF9kYXRhL3NoaWZ0X2ppc19pbl9yZWYudHh0IjoiNTEyZjk4NTk1MGNhOTAyZTY0 M2M4ODY4MmRiYTk3MDhiN2MzOGQzYzVlYzI5MjUxNjhhYjAwYWM5NGFiMTlmOSIsInNyYy90ZXN0 X2RhdGEvc2hpZnRfamlzX291dC50eHQiOiI1ZmJjNDRkYTdiZjYzOWJmNmNmZTBmYTFmZDNlYmE3 MTAyYjg4ZjgxOTE5YzllYTk5MTMwMjcxMmY2OTQyNmZiIiwic3JjL3Rlc3RfZGF0YS9zaGlmdF9q aXNfb3V0X3JlZi50eHQiOiI0NjYzMjJjNmZlZDgyODZjNjQ1ODI3MzE3NTUyOTBjMjI5NjUwOGVm ZGQyNTg4MjZlNjI3OTY4NjY0OWI0ODFmIiwic3JjL3Rlc3RfbGFiZWxzX25hbWVzLnJzIjoiMjNh MmUxMWIwMmIzYjhkMTVmYjU2MTNhNjI1ZTNlZGIyYzYxZTcwZTNjNTgxYWJmZDYzODcxOWE0MDg4 MjAwZCIsInNyYy90ZXN0aW5nLnJzIjoiZjU5ZTY3MWU5NWE5OGE1NmY2YjU3M2U4YzZiZTRkNzFl NjcwYmY1MmY3ZTIwZWIxNjA1ZDk5MGFhZmExODk0ZSIsInNyYy91dGZfMTYucnMiOiJjMDcxYTE0 N2ZhZDM4ZDc1MGMyYzI0N2UxNDFiNzZiOTI5YTQ4MDA3Yjk5ZjI2YjI5MjJiOWNhZWNkYWYyZjI1 Iiwic3JjL3V0Zl84LnJzIjoiN2I3ZDg4N2IzNDdmMWFlZmEwMzI0NmIwMjhhMzZhNzI3NThhNGNl NzZjMjhmM2I0NWMxOTQ2Nzg1MWFhNzgzOSIsInNyYy92YXJpYW50LnJzIjoiMWZhYjUzNjM1ODhh MTU1NGE3MTY5ZGU4NzMxZWE5Y2RlZDdhYzYzZWEzNWNhYWJkZDFjMjdhOGRkZTY4YzI3YiIsInNy Yy94X3VzZXJfZGVmaW5lZC5ycyI6Ijk0NTZjYTQ2MTY4ZWY4NmM5ODM5OWEyNTM2ZjU3N2VmN2Jl M2NkZGU5MGMwYzUxMzkyZDhhYzQ4NTE5ZDNmYWUifSwicGFja2FnZSI6ImI0NWRlOTA0YWEwYjAx MGJjZTJhYjQ1MjY0ZDA2MzE2ODE4NDdmYTdiNmYyZWFhN2RhYjc2MTk5NDNiYzRmNTkifQorXCBO byBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9l bmNvZGluZ19ycy9DYXJnby50b21sIGIvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9DYXJn by50b21sCistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL0NhcmdvLnRvbWwKKysr KyBiL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvQ2FyZ28udG9tbAorQEAgLTYsMTggKzYs MTkgQEAKKyAjIHRvIHJlZ2lzdHJ5IChlLmcuLCBjcmF0ZXMuaW8pIGRlcGVuZGVuY2llcy4KKyAj CisgIyBJZiB5b3UgYXJlIHJlYWRpbmcgdGhpcyBmaWxlIGJlIGF3YXJlIHRoYXQgdGhlIG9yaWdp bmFsIENhcmdvLnRvbWwKKyAjIHdpbGwgbGlrZWx5IGxvb2sgdmVyeSBkaWZmZXJlbnQgKGFuZCBt dWNoIG1vcmUgcmVhc29uYWJsZSkuCisgIyBTZWUgQ2FyZ28udG9tbC5vcmlnIGZvciB0aGUgb3Jp Z2luYWwgY29udGVudHMuCisgCisgW3BhY2thZ2VdCisgZWRpdGlvbiA9ICIyMDE4IgorK3J1c3Qt dmVyc2lvbiA9ICIxLjM2IgorIG5hbWUgPSAiZW5jb2RpbmdfcnMiCistdmVyc2lvbiA9ICIwLjgu MzMiCisrdmVyc2lvbiA9ICIwLjguMzQiCisgYXV0aG9ycyA9IFsiSGVucmkgU2l2b25lbiA8aHNp dm9uZW5AaHNpdm9uZW4uZmk+Il0KKyBkZXNjcmlwdGlvbiA9ICJBIEdlY2tvLW9yaWVudGVkIGlt cGxlbWVudGF0aW9uIG9mIHRoZSBFbmNvZGluZyBTdGFuZGFyZCIKKyBob21lcGFnZSA9ICJodHRw czovL2RvY3MucnMvZW5jb2RpbmdfcnMvIgorIGRvY3VtZW50YXRpb24gPSAiaHR0cHM6Ly9kb2Nz LnJzL2VuY29kaW5nX3JzLyIKKyByZWFkbWUgPSAiUkVBRE1FLm1kIgorIGtleXdvcmRzID0gWwor ICAgICAiZW5jb2RpbmciLAorICAgICAid2ViIiwKK0BAIC0zMSwyMyArMzIsMjMgQEAgY2F0ZWdv cmllcyA9IFsKKyAgICAgImludGVybmF0aW9uYWxpemF0aW9uIiwKKyBdCisgbGljZW5zZSA9ICIo QXBhY2hlLTIuMCBPUiBNSVQpIEFORCBCU0QtMy1DbGF1c2UiCisgcmVwb3NpdG9yeSA9ICJodHRw czovL2dpdGh1Yi5jb20vaHNpdm9uZW4vZW5jb2RpbmdfcnMiCisgCisgW3Byb2ZpbGUucmVsZWFz ZV0KKyBsdG8gPSB0cnVlCisgCisrW2RlcGVuZGVuY2llcy5hbnlfYWxsX3dvcmthcm91bmRdCisr dmVyc2lvbiA9ICIwLjEuMCIKKytvcHRpb25hbCA9IHRydWUKKysKKyBbZGVwZW5kZW5jaWVzLmNm Zy1pZl0KKyB2ZXJzaW9uID0gIjEuMCIKKyAKKy1bZGVwZW5kZW5jaWVzLnBhY2tlZF9zaW1kXQor LXZlcnNpb24gPSAiMC4zLjkiCistb3B0aW9uYWwgPSB0cnVlCistCisgW2RlcGVuZGVuY2llcy5z ZXJkZV0KKyB2ZXJzaW9uID0gIjEuMCIKKyBvcHRpb25hbCA9IHRydWUKKyAKKyBbZGV2LWRlcGVu ZGVuY2llcy5iaW5jb2RlXQorIHZlcnNpb24gPSAiMS4wIgorIAorIFtkZXYtZGVwZW5kZW5jaWVz LnNlcmRlX2Rlcml2ZV0KK0BAIC02OSwxNSArNzAsOSBAQCBmYXN0LWxlZ2FjeS1lbmNvZGUgPSBb CisgICAgICJmYXN0LWhhbmphLWVuY29kZSIsCisgICAgICJmYXN0LWthbmppLWVuY29kZSIsCisg ICAgICJmYXN0LWdiLWhhbnppLWVuY29kZSIsCisgICAgICJmYXN0LWJpZzUtaGFuemktZW5jb2Rl IiwKKyBdCisgbGVzcy1zbG93LWJpZzUtaGFuemktZW5jb2RlID0gW10KKyBsZXNzLXNsb3ctZ2It aGFuemktZW5jb2RlID0gW10KKyBsZXNzLXNsb3cta2FuamktZW5jb2RlID0gW10KKy1zaW1kLWFj Y2VsID0gWworLSAgICAicGFja2VkX3NpbWQiLAorLSAgICAicGFja2VkX3NpbWQvaW50b19iaXRz IiwKKy1dCistCistW2JhZGdlcy50cmF2aXMtY2ldCistcmVwb3NpdG9yeSA9ICJoc2l2b25lbi9l bmNvZGluZ19ycyIKKytzaW1kLWFjY2VsID0gWyJhbnlfYWxsX3dvcmthcm91bmQiXQorZGlmZiAt LWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvUkVBRE1FLm1kIGIvdGhpcmRfcGFy dHkvcnVzdC9lbmNvZGluZ19ycy9SRUFETUUubWQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvZW5j b2RpbmdfcnMvUkVBRE1FLm1kCisrKysgYi90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL1JF QURNRS5tZAorQEAgLTE2Miw1MCArMTYyLDM2IEBAIHdyYXBwZXJzLgorICogW0MrK10oaHR0cHM6 Ly9naXRodWIuY29tL2hzaXZvbmVuL3JlY29kZV9jcHApCisgCisgIyMgT3B0aW9uYWwgZmVhdHVy ZXMKKyAKKyBUaGVyZSBhcmUgY3VycmVudGx5IHRoZXNlIG9wdGlvbmFsIGNhcmdvIGZlYXR1cmVz OgorIAorICMjIyBgc2ltZC1hY2NlbGAKKyAKKy1FbmFibGVzIFNJTUQgYWNjZWxlcmF0aW9uIHVz aW5nIHRoZSBuaWdodGx5LWRlcGVuZGVudCBgcGFja2VkX3NpbWRgIGNyYXRlLgorK0VuYWJsZXMg U0lNRCBhY2NlbGVyYXRpb24gdXNpbmcgdGhlIG5pZ2h0bHktZGVwZW5kZW50IGBwb3J0YWJsZV9z aW1kYCBzdGFuZGFyZAorK2xpYnJhcnkgZmVhdHVyZS4KKyAKKyBUaGlzIGlzIGFuIG9wdC1pbiBm ZWF0dXJlLCBiZWNhdXNlIGVuYWJsaW5nIHRoaXMgZmVhdHVyZSBfb3B0cyBvdXRfIG9mIFJ1c3Qn cworIGd1YXJhbnRlZXMgb2YgZnV0dXJlIGNvbXBpbGVycyBjb21waWxpbmcgb2xkIGNvZGUgKGFr YS4gInN0YWJpbGl0eSBzdG9yeSIpLgorIAorIEN1cnJlbnRseSwgdGhpcyBoYXMgbm90IGJlZW4g dGVzdGVkIHRvIGJlIGFuIGltcHJvdmVtZW50IGV4Y2VwdCBmb3IgdGhlc2UKKy10YXJnZXRzOgor K3RhcmdldHMgYW5kIGVuYWJsaW5nIHRoZSBgc2ltZC1hY2NlbGAgZmVhdHVyZSBpcyBleHBlY3Rl ZCB0byBicmVhayB0aGUgYnVpbGQKKytvbiBvdGhlciB0YXJnZXRzOgorIAorICogeDg2XzY0Cisg KiBpNjg2CisgKiBhYXJjaDY0CisgKiB0aHVtYnY3bmVvbgorIAorIElmIHlvdSB1c2UgbmlnaHRs eSBSdXN0LCB5b3UgdXNlIHRhcmdldHMgd2hvc2UgZmlyc3QgY29tcG9uZW50IGlzIG9uZSBvZiB0 aGUKKyBhYm92ZSwgYW5kIHlvdSBhcmUgcHJlcGFyZWQgX3RvIGhhdmUgdG8gcmV2aXNlIHlvdXIg Y29uZmlndXJhdGlvbiB3aGVuIHVwZGF0aW5nCisgUnVzdF8sIHlvdSBzaG91bGQgZW5hYmxlIHRo aXMgZmVhdHVyZS4gT3RoZXJ3aXNlLCBwbGVhc2UgX2RvIG5vdF8gZW5hYmxlIHRoaXMKKyBmZWF0 dXJlLgorIAorLV9Ob3RlIV8gSWYgeW91IGFyZSBjb21waWxpbmcgZm9yIGEgdGFyZ2V0IHRoYXQg ZG9lcyBub3QgaGF2ZSAxMjgtYml0IFNJTUQKKy1lbmFibGVkIGFzIHBhcnQgb2YgdGhlIHRhcmdl dCBkZWZpbml0aW9uIGFuZCB5b3UgYXJlIGVuYWJsaW5nIDEyOC1iaXQgU0lNRAorLXVzaW5nIGAt QyB0YXJnZXRfZmVhdHVyZWAsIHlvdSBuZWVkIHRvIGVuYWJsZSB0aGUgYGNvcmVfYXJjaGAgQ2Fy Z28gZmVhdHVyZQorLWZvciBgcGFja2VkX3NpbWRgIHRvIGNvbXBpbGUgYSBjcmF0ZXMuaW8gc25h cHNob3Qgb2YgYGNvcmVfYXJjaGAgaW5zdGVhZCBvZgorLXVzaW5nIHRoZSBzdGFuZGFyZC1saWJy YXJ5IGNvcHkgb2YgYGNvcmU6OmFyY2hgLCBiZWNhdXNlIHRoZSBgY29yZTo6YXJjaGAKKy1tb2R1 bGUgb2YgdGhlIHByZS1jb21waWxlZCBzdGFuZGFyZCBsaWJyYXJ5IGhhcyBiZWVuIGNvbXBpbGVk IHdpdGggdGhlCistYXNzdW1wdGlvbiB0aGF0IHRoZSBDUFUgZG9lc24ndCBoYXZlIDEyOC1iaXQg U0lNRC4gQXQgcHJlc2VudCB0aGlzIGFwcGxpZXMKKy1tYWlubHkgdG8gMzItYml0IEFSTSB0YXJn ZXRzIHdob3NlIGZpcnN0IGNvbXBvbmVudCBkb2VzIG5vdCBpbmNsdWRlIHRoZQorLXN1YnN0cmlu ZyBgbmVvbmAuCistCistVGhlIGVuY29kaW5nX3JzIHNpZGUgb2YgdGhpbmdzIGhhcyBub3QgYmVl biBwcm9wZXJseSBzZXQgdXAgZm9yIFBPV0VSLAorLVBvd2VyUEMsIE1JUFMsIGV0Yy4sIFNJTUQg YXQgdGhpcyB0aW1lLCBzbyBldmVuIGlmIHlvdSB3ZXJlIHRvIGZvbGxvdworLXRoZSBhZHZpY2Ug ZnJvbSB0aGUgcHJldmlvdXMgcGFyYWdyYXBoLCB5b3UgcHJvYmFibHkgc2hvdWxkbid0IHVzZQor LXRoZSBgc2ltZC1hY2NlbGAgb3B0aW9uIG9uIHRoZSBsZXNzIG1haW5zdHJlYW0gYXJjaGl0ZWN0 dXJlcyBhdCB0aGlzCistdGltZS4KKy0KKyBVc2VkIGJ5IEZpcmVmb3guCisgCisgIyMjIGBzZXJk ZWAKKyAKKyBFbmFibGVzIHN1cHBvcnQgZm9yIHNlcmlhbGl6aW5nIGFuZCBkZXNlcmlhbGl6aW5n IGAmJ3N0YXRpYyBFbmNvZGluZ2AtdHlwZWQKKyBzdHJ1Y3QgZmllbGRzIHVzaW5nIFtTZXJkZV1b MV0uCisgCisgWzFdOiBodHRwczovL3NlcmRlLnJzLworQEAgLTM3NiwxOCArMzYyLDE5IEBAIEl0 IGlzIGEgZ29hbCB0byBzdXBwb3J0IHRoZSBsYXRlc3Qgc3RhYmwKKyB0aGUgdmVyc2lvbiBvZiBS dXN0IHRoYXQncyB1c2VkIGZvciBGaXJlZm94IE5pZ2h0bHkuCisgCisgQXQgdGhpcyB0aW1lLCB0 aGVyZSBpcyBubyBmaXJtIGNvbW1pdG1lbnQgdG8gc3VwcG9ydCBhIHZlcnNpb24gb2xkZXIgdGhh bgorIHdoYXQncyByZXF1aXJlZCBieSBGaXJlZm94LCBhbmQgdGhlcmUgaXMgbm8gY29tbWl0bWVu dCB0byB0cmVhdCBNU1JWIGNoYW5nZXMKKyBhcyBzZW12ZXItYnJlYWtpbmcsIGJlY2F1c2UgdGhp cyBjcmF0ZSBkZXBlbmRzIG9uIGBjZmctaWZgLCB3aGljaCBkb2Vzbid0CisgYXBwZWFyIHRvIHRy ZWF0IE1TUlYgY2hhbmdlcyBhcyBzZW12ZXItYnJlYWtpbmcsIHNvIGl0IHdvdWxkIGJlIHVzZWxl c3MgZm9yCisgdGhpcyBjcmF0ZSB0byB0cmVhdCBNU1JWIGNoYW5nZXMgYXMgc2VtdmVyLWJyZWFr aW5nLgorIAorLUFzIG9mIDIwMjEtMDItMDQsIE1TUlYgYXBwZWFycyB0byBiZSBSdXN0IDEuMzYu MCBmb3IgdXNpbmcgdGhlIGNyYXRlIGFuZAorK0FzIG9mIDIwMjQtMDQtMDQsIE1TUlYgYXBwZWFy cyB0byBiZSBSdXN0IDEuMzYuMCBmb3IgdXNpbmcgdGhlIGNyYXRlIGFuZAorIDEuNDIuMCBmb3Ig ZG9jIHRlc3RzIHRvIHBhc3Mgd2l0aG91dCBlcnJvcnMgYWJvdXQgdGhlIGdsb2JhbCBhbGxvY2F0 b3IuCisrV2l0aCB0aGUgYHNpbWQtYWNjZWxgIGZlYXR1cmUsIHRoZSBNU1JWIGlzIGV2ZW4gaGln aGVyLgorIAorICMjIENvbXBhdGliaWxpdHkgd2l0aCBydXN0LWVuY29kaW5nCisgCisgQSBjb21w YXRpYmlsaXR5IGxheWVyIHRoYXQgaW1wbGVtZW50cyB0aGUgcnVzdC1lbmNvZGluZyBBUEkgb24g dG9wIG9mCisgZW5jb2RpbmdfcnMgaXMKKyBbcHJvdmlkZWQgYXMgYSBzZXBhcmF0ZSBjcmF0ZV0o aHR0cHM6Ly9naXRodWIuY29tL2hzaXZvbmVuL2VuY29kaW5nX3JzX2NvbXBhdCkKKyAoY2Fubm90 IGJlIHVwbG9hZGVkIHRvIGNyYXRlcy5pbykuIFRoZSBjb21wYXRpYmlsaXR5IGxheWVyIHdhcyBv cmlnaW5hbGx5Cisgd3JpdHRlbiB3aXRoIHRoZSBhc3N1cHRpb24gdGhhdCBGaXJlZm94IHdvdWxk IG5lZWQgaXQsIGJ1dCBpdCBpcyBub3QgY3VycmVudGx5CitAQCAtNDQxLDIwICs0MjgsMjcgQEAg VG8gcmVnZW5lcmF0ZSB0aGUgZ2VuZXJhdGVkIGNvZGU6CisgLSBbeF0gSW1wbGVtZW50IHRoZSBy dXN0LWVuY29kaW5nIEFQSSBpbiB0ZXJtcyBvZiBlbmNvZGluZ19ycy4KKyAtIFt4XSBBZGQgU0lN RCBhY2NlbGVyYXRpb24gZm9yIEFhcmNoNjQuCisgLSBbeF0gSW52ZXN0aWdhdGUgdGhlIHVzZSBv ZiBORU9OIG9uIDMyLWJpdCBBUk0uCisgLSBbIF0gfkludmVzdGlnYXRlIEJqw7ZybiBIw7Zocm1h bm4ncyBsb29rdXAgdGFibGUgYWNjZWxlcmF0aW9uIGZvciBVVEYtOCBhcworICAgICAgIGFkYXB0 ZWQgdG8gUnVzdCBpbiBydXN0LWVuY29kaW5nLn4KKyAtIFt4XSBBZGQgYWN0dWFsbHkgZmFzdCBD SksgZW5jb2RlIG9wdGlvbnMuCisgLSBbIF0gfkludmVzdGlnYXRlIFtCb2IgU3RlYWdhbGwncyBs b29rdXAgdGFibGUgYWNjZWxlcmF0aW9uIGZvciBVVEYtOF0oaHR0cHM6Ly9naXRodWIuY29tL0Jv YlN0ZWFnYWxsL0NwcE5vdzIwMTgvYmxvYi9tYXN0ZXIvRmFzdENvbnZlcnNpb25Gcm9tVVRGLTgv RmFzdCUyMENvbnZlcnNpb24lMjBGcm9tJTIwVVRGLTglMjB3aXRoJTIwQyUyQiUyQiUyQyUyMERG QXMlMkMlMjBhbmQlMjBTU0UlMjBJbnRyaW5zaWNzJTIwLSUyMEJvYiUyMFN0ZWFnYWxsJTIwLSUy MEMlMkIlMkJOb3clMjAyMDE4LnBkZikufgorIC0gW3hdIFByb3ZpZGUgYSBidWlsZCBtb2RlIHRo YXQgd29ya3Mgd2l0aG91dCBgYWxsb2NgICh3aXRoIGxlc3NlciBBUEkgc3VyZmFjZSkuCistLSBb IF0gTWlncmF0ZSB0byBgc3RkOjpzaW1kYCBvbmNlIGl0IGlzIHN0YWJsZSBhbmQgZGVjbGFyZSAx LjAuCisrLSBbeF0gTWlncmF0ZSB0byBgc3RkOjpzaW1kYCB+b25jZSBpdCBpcyBzdGFibGUgYW5k IGRlY2xhcmUgMS4wLn4KKystIFsgXSBNaWdyYXRlIGB1bnNhZmVgIHNsaWNlIGFjY2VzcyBieSBs YXJnZXIgdHlwZXMgdGhhbiBgdThgL2B1MTZgIHRvIGBhbGlnbl90b2AuCisgCisgIyMgUmVsZWFz ZSBOb3RlcworIAorKyMjIyAwLjguMzQKKysKKysqIFVzZSB0aGUgYHBvcnRhYmxlX3NpbWRgIG5p Z2h0bHkgZmVhdHVyZSBvZiB0aGUgc3RhbmRhcmQgbGlicmFyeSBpbnN0ZWFkIG9mIHRoZSBgcGFj a2VkX3NpbWRgIGNyYXRlLiBPbmx5IGFmZmVjdHMgdGhlIGBzaW1kLWFjY2VsYCBvcHRpb25hbCBu aWdodGx5IGZlYXR1cmUuCisrKiBJbnRlcm5hbCBkb2N1bWVudGF0aW9uIGltcHJvdmVtZW50cyBh bmQgbWlub3IgY29kZSBpbXByb3ZlbWVudHMgYXJvdW5kIGB1bnNhZmVgLgorKyogQWRkZWQgYHJ1 c3QtdmVyc2lvbmAgdG8gYENhcmdvLnRvbWxgLgorKworICMjIyAwLjguMzMKKyAKKyAqIFVzZSBg cGFja2VkX3NpbWRgIGluc3RlYWQgb2YgYHBhY2tlZF9zaW1kXzJgIGFnYWluIG5vdyB0aGF0IHVw ZGF0ZXMgYXJlIGJhY2sgdW5kZXIgdGhlIGBwYWNrZWRfc2ltZGAgbmFtZS4gT25seSBhZmZlY3Rz IHRoZSBgc2ltZC1hY2NlbGAgb3B0aW9uYWwgbmlnaHRseSBmZWF0dXJlLgorIAorICMjIyAwLjgu MzIKKyAKKyAqIFJlbW92ZWQgYGJ1aWxkLnJzYC4gKFRoaXMgcmVtb3ZhbCBzaG91bGQgcmVzb2x2 ZSBmYWxzZSBwb3NpdGl2ZXMgcmVwb3J0ZWQgYnkgc29tZSBhbnRpdmlydXMgcHJvZHVjdHMuIFRo aXMgbWF5IGJyZWFrIHNvbWUgYnVpbGQgY29uZmlndXJhdGlvbnMgdGhhdCBoYXZlIG9wdGVkIG91 dCBvZiBSdXN0J3MgZ3VhcmFudGVlcyBhZ2FpbnN0IGZ1dHVyZSBidWlsZCBicmVha2FnZS4pCisg KiBJbnRlcm5hbCBjaGFuZ2UgdG8gd2hhdCBBUEkgaXMgdXNlZCBmb3IgcmVpbnRlcnByZXRpbmcg dGhlIGxhbmUgY29uZmlndXJhdGlvbiBvZiBTSU1EIHZlY3RvcnMuCitkaWZmIC0tZ2l0IGEvdGhp cmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvYXNjaWkucnMgYi90aGlyZF9wYXJ0eS9ydXN0 L2VuY29kaW5nX3JzL3NyYy9hc2NpaS5ycworLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGlu Z19ycy9zcmMvYXNjaWkucnMKKysrKyBiL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3Jj L2FzY2lpLnJzCitAQCAtNDYsNzEgKzQ2LDg3IEBAIGNmZ19pZiEgeworICAgICAgICAgI1thbGxv dyhkZWFkX2NvZGUpXQorICAgICAgICAgI1tpbmxpbmUoYWx3YXlzKV0KKyAgICAgICAgIGZuIGxp a2VseShiOiBib29sKSAtPiBib29sIHsKKyAgICAgICAgICAgICBiCisgICAgICAgICB9CisgICAg IH0KKyB9CisgCisrLy8gU2FmZXR5IGludmFyaWFudHMgZm9yIG1hc2tzOiBkYXRhICYgbWFzayA9 IDAgZm9yIHZhbGlkIEFTQ0lJIG9yIGJhc2ljIGxhdGluIHV0Zi0xNgorKworIC8vIGBhc2AgdHJ1 bmNhdGVzLCBzbyB3b3JrcyBvbiAzMi1iaXQsIHRvby4KKyAjW2FsbG93KGRlYWRfY29kZSldCisg cHViIGNvbnN0IEFTQ0lJX01BU0s6IHVzaXplID0gMHg4MDgwXzgwODBfODA4MF84MDgwdTY0IGFz IHVzaXplOworIAorIC8vIGBhc2AgdHJ1bmNhdGVzLCBzbyB3b3JrcyBvbiAzMi1iaXQsIHRvby4K KyAjW2FsbG93KGRlYWRfY29kZSldCisgcHViIGNvbnN0IEJBU0lDX0xBVElOX01BU0s6IHVzaXpl ID0gMHhGRjgwX0ZGODBfRkY4MF9GRjgwdTY0IGFzIHVzaXplOworIAorICNbYWxsb3codW51c2Vk X21hY3JvcyldCisgbWFjcm9fcnVsZXMhIGFzY2lpX25haXZlIHsKKyAgICAgKCRuYW1lOmlkZW50 LCAkc3JjX3VuaXQ6dHksICRkc3RfdW5pdDp0eSkgPT4geworKyAgICAgICAgLy8vIFNhZmV0eTog c3JjIGFuZCBkc3QgbXVzdCBoYXZlIGxlbl91bml0IGVsZW1lbnRzIGFuZCBiZSBhbGlnbmVkCisr ICAgICAgICAvLy8gU2FmZXR5LXVzYWJsZSBpbnZhcmlhbnQ6IHdpbGwgcmV0dXJuIFNvbWUoKSB3 aGVuIGl0IGZhaWxzCisrICAgICAgICAvLy8gdG8gY29udmVydC4gVGhlIGZpcnN0IHZhbHVlIHdp bGwgYmUgYSB1OCB0aGF0IGlzID4gMTI3LgorICAgICAgICAgI1tpbmxpbmUoYWx3YXlzKV0KKyAg ICAgICAgIHB1YiB1bnNhZmUgZm4gJG5hbWUoCisgICAgICAgICAgICAgc3JjOiAqY29uc3QgJHNy Y191bml0LAorICAgICAgICAgICAgIGRzdDogKm11dCAkZHN0X3VuaXQsCisgICAgICAgICAgICAg bGVuOiB1c2l6ZSwKKyAgICAgICAgICkgLT4gT3B0aW9uPCgkc3JjX3VuaXQsIHVzaXplKT4gewor ICAgICAgICAgICAgIC8vIFllcywgbWFudWFsbHkgb21pdHRpbmcgdGhlIGJvdW5kIGNoZWNrIGhl cmUgbWF0dGVycworICAgICAgICAgICAgIC8vIGEgbG90IGZvciBwZXJmLgorICAgICAgICAgICAg IGZvciBpIGluIDAuLmxlbiB7CisrICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogbGVuIGludmFy aWFudCB1c2VkIGhlcmUKKyAgICAgICAgICAgICAgICAgbGV0IGNvZGVfdW5pdCA9ICooc3JjLmFk ZChpKSk7CisrICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogVXBob2xkcyBzYWZldHktdXNhYmxl IGludmFyaWFudCBoZXJlCisgICAgICAgICAgICAgICAgIGlmIGNvZGVfdW5pdCA+IDEyNyB7Cisg ICAgICAgICAgICAgICAgICAgICByZXR1cm4gU29tZSgoY29kZV91bml0LCBpKSk7CisgICAgICAg ICAgICAgICAgIH0KKysgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBsZW4gaW52YXJpYW50IHVz ZWQgaGVyZQorICAgICAgICAgICAgICAgICAqKGRzdC5hZGQoaSkpID0gY29kZV91bml0IGFzICRk c3RfdW5pdDsKKyAgICAgICAgICAgICB9CisgICAgICAgICAgICAgcmV0dXJuIE5vbmU7CisgICAg ICAgICB9CisgICAgIH07CisgfQorIAorICNbYWxsb3codW51c2VkX21hY3JvcyldCisgbWFjcm9f cnVsZXMhIGFzY2lpX2FsdSB7CisgICAgICgkbmFtZTppZGVudCwKKysgICAgIC8vIHNhZmV0eSBp bnZhcmlhbnQ6IHNyYy9kc3QgTVVTVCBiZSB1OAorICAgICAgJHNyY191bml0OnR5LAorICAgICAg JGRzdF91bml0OnR5LAorKyAgICAgLy8gU2FmZXR5IGludmFyaWFudDogc3RyaWRlX2ZuIG11c3Qg Y29uc3VtZSBhbmQgcHJvZHVjZSB0d28gdXNpemVzLCBhbmQgcmV0dXJuIHRoZSBpbmRleCBvZiB0 aGUgZmlyc3Qgbm9uLWFzY2lpIHdoZW4gaXQgZmFpbHMKKyAgICAgICRzdHJpZGVfZm46aWRlbnQp ID0+IHsKKysgICAgICAgIC8vLyBTYWZldHk6IHNyYyBhbmQgZHN0IG11c3QgaGF2ZSBsZW4gZWxl bWVudHMsIHNyYyBpcyB2YWxpZCBmb3IgcmVhZCwgZHN0IGlzIHZhbGlkIGZvcgorKyAgICAgICAg Ly8vIHdyaXRlCisrICAgICAgICAvLy8gU2FmZXR5LXVzYWJsZSBpbnZhcmlhbnQ6IHdpbGwgcmV0 dXJuIFNvbWUoKSB3aGVuIGl0IGZhaWxzCisrICAgICAgICAvLy8gdG8gY29udmVydC4gVGhlIGZp cnN0IHZhbHVlIHdpbGwgYmUgYSB1OCB0aGF0IGlzID4gMTI3LgorICAgICAgICAgI1tjZmdfYXR0 cihmZWF0dXJlID0gImNhcmdvLWNsaXBweSIsIGFsbG93KG5ldmVyX2xvb3AsIGNhc3RfcHRyX2Fs aWdubWVudCkpXQorICAgICAgICAgI1tpbmxpbmUoYWx3YXlzKV0KKyAgICAgICAgIHB1YiB1bnNh ZmUgZm4gJG5hbWUoCisgICAgICAgICAgICAgc3JjOiAqY29uc3QgJHNyY191bml0LAorICAgICAg ICAgICAgIGRzdDogKm11dCAkZHN0X3VuaXQsCisgICAgICAgICAgICAgbGVuOiB1c2l6ZSwKKyAg ICAgICAgICkgLT4gT3B0aW9uPCgkc3JjX3VuaXQsIHVzaXplKT4geworICAgICAgICAgICAgIGxl dCBtdXQgb2Zmc2V0ID0gMHVzaXplOworICAgICAgICAgICAgIC8vIFRoaXMgbG9vcCBpcyBvbmx5 IGJyb2tlbiBvdXQgb2YgYXMgYSBgZ290b2AgZm9yd2FyZAorICAgICAgICAgICAgIGxvb3Agewor KyAgICAgICAgICAgICAgICAvLyBTYWZldHk6IHVudGlsX2FsaWdubWVudCBiZWNvbWVzIHRoZSBu dW1iZXIgb2YgYnl0ZXMgd2UgbmVlZCB0byBtdW5jaCB1bnRpbCB3ZSBhcmUgYWxpZ25lZCB0byB1 c2l6ZQorICAgICAgICAgICAgICAgICBsZXQgbXV0IHVudGlsX2FsaWdubWVudCA9IHsKKyAgICAg ICAgICAgICAgICAgICAgIC8vIENoZWNrIGlmIHRoZSBvdGhlciB1bml0IGFsaWducyBpZiB3ZSBt b3ZlIHRoZSBuYXJyb3dlciB1bml0CisgICAgICAgICAgICAgICAgICAgICAvLyB0byBhbGlnbm1l bnQuCisgICAgICAgICAgICAgICAgICAgICAvLyAgICAgICAgICAgICAgIGlmIDo6Y29yZTo6bWVt OjpzaXplX29mOjo8JHNyY191bml0PigpID09IDo6Y29yZTo6bWVtOjpzaXplX29mOjo8JGRzdF91 bml0PigpIHsKKyAgICAgICAgICAgICAgICAgICAgIC8vIGFzY2lpX3RvX2FzY2lpCisgICAgICAg ICAgICAgICAgICAgICBsZXQgc3JjX2FsaWdubWVudCA9IChzcmMgYXMgdXNpemUpICYgQUxVX0FM SUdOTUVOVF9NQVNLOworICAgICAgICAgICAgICAgICAgICAgbGV0IGRzdF9hbGlnbm1lbnQgPSAo ZHN0IGFzIHVzaXplKSAmIEFMVV9BTElHTk1FTlRfTUFTSzsKKyAgICAgICAgICAgICAgICAgICAg IGlmIHNyY19hbGlnbm1lbnQgIT0gZHN0X2FsaWdubWVudCB7CisrICAgICAgICAgICAgICAgICAg ICAgICAgLy8gU2FmZXR5OiBiYWlscyBlYXJseSBhbmQgZW5kcyB1cCBpbiB0aGUgbmHDr3ZlIGJy YW5jaCB3aGVyZSB1c2l6ZS1hbGlnbm1lbnQgZG9lc24ndCBtYXR0ZXIKKyAgICAgICAgICAgICAg ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg ICAgICAgIChBTFVfQUxJR05NRU5UIC0gc3JjX2FsaWdubWVudCkgJiBBTFVfQUxJR05NRU5UX01B U0sKKyAgICAgICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgfSBlbHNlIGlmIDo6Y29y ZTo6bWVtOjpzaXplX29mOjo8JHNyY191bml0PigpIDwgOjpjb3JlOjptZW06OnNpemVfb2Y6Ojwk ZHN0X3VuaXQ+KCkgeworICAgICAgICAgICAgICAgICAgICAgLy8gYXNjaWlfdG9fYmFzaWNfbGF0 aW4KKyAgICAgICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgIGxldCBzcmNfdW50 aWxfYWxpZ25tZW50ID0gKEFMSUdOTUVOVCAtICgoc3JjIGFzIHVzaXplKSAmIEFMSUdOTUVOVF9N QVNLKSkgJiBBTElHTk1FTlRfTUFTSzsKKyAgICAgICAgICAgICAgICAgICAgIC8vICAgICAgICAg ICAgICAgICAgIGlmIChkc3QuYWRkKHNyY191bnRpbF9hbGlnbm1lbnQpIGFzIHVzaXplKSAmIEFM SUdOTUVOVF9NQVNLICE9IDAgeworICAgICAgICAgICAgICAgICAgICAgLy8gICAgICAgICAgICAg ICAgICAgICAgIGJyZWFrOworQEAgLTEyOSw3NCArMTQ1LDEwNCBAQCBtYWNyb19ydWxlcyEgYXNj aWlfYWx1IHsKKyAgICAgICAgICAgICAgICAgICAgIC8vIE1vdmluZyBwb2ludGVycyB0byBhbGln bm1lbnQgc2VlbXMgdG8gYmUgYSBwZXNzaW1pemF0aW9uIG9uCisgICAgICAgICAgICAgICAgICAg ICAvLyB4ODZfNjQgZm9yIG9wZXJhdGlvbnMgdGhhdCBoYXZlIFVURi0xNiBhcyB0aGUgaW50ZXJu YWwKKyAgICAgICAgICAgICAgICAgICAgIC8vIFVuaWNvZGUgcmVwcmVzZW50YXRpb24uIEhvd2V2 ZXIsIHNpbmNlIGl0IHNlZW1zIHRvIGJlIGEgd2luCisgICAgICAgICAgICAgICAgICAgICAvLyBv biBBUk0gKHRlc3RlZCBBUk12NyBjb2RlIHJ1bm5pbmcgb24gQVJNdjggW3JwaTNdKSwgZXhjZXB0 CisgICAgICAgICAgICAgICAgICAgICAvLyBtaXhlZCByZXN1bHRzIHdoZW4gZW5jb2RpbmcgZnJv bSBVVEYtMTYgYW5kIHNpbmNlIHg4NiBhbmQKKyAgICAgICAgICAgICAgICAgICAgIC8vIHg4Nl82 NCBzaG91bGQgYmUgdXNpbmcgU1NFMiBpbiBkdWUgY291cnNlLCBrZWVwaW5nIHRoZSBtb3ZlCisg ICAgICAgICAgICAgICAgICAgICAvLyB0byBhbGlnbm1lbnQgaGVyZS4gSXQgd291bGQgYmUgZ29v ZCB0byB0ZXN0IG9uIG1vcmUgQVJNIENQVXMKKyAgICAgICAgICAgICAgICAgICAgIC8vIGFuZCBv biByZWFsIE1JUFMgYW5kIFBPV0VSIGhhcmR3YXJlLgorKyAgICAgICAgICAgICAgICAgICAgLy8K KysgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogVGhpcyBpcyB0aGUgbmHDr3ZlIGNvZGUg b25jZSBhZ2FpbiwgZm9yIGB1bnRpbF9hbGlnbm1lbnRgIGJ5dGVzCisgICAgICAgICAgICAgICAg ICAgICB3aGlsZSB1bnRpbF9hbGlnbm1lbnQgIT0gMCB7CisgICAgICAgICAgICAgICAgICAgICAg ICAgbGV0IGNvZGVfdW5pdCA9ICooc3JjLmFkZChvZmZzZXQpKTsKKyAgICAgICAgICAgICAgICAg ICAgICAgICBpZiBjb2RlX3VuaXQgPiAxMjcgeworKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAvLyBTYWZldHk6IFVwaG9sZHMgc2FmZXR5LXVzYWJsZSBpbnZhcmlhbnQgaGVyZQorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gU29tZSgoY29kZV91bml0LCBvZmZzZXQpKTsK KyAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgKihk c3QuYWRkKG9mZnNldCkpID0gY29kZV91bml0IGFzICRkc3RfdW5pdDsKKysgICAgICAgICAgICAg ICAgICAgICAgICAvLyBTYWZldHk6IG9mZnNldCBpcyB0aGUgbnVtYmVyIG9mIGJ5dGVzIGNvcGll ZCBzbyBmYXIKKyAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQgKz0gMTsKKyAgICAgICAg ICAgICAgICAgICAgICAgICB1bnRpbF9hbGlnbm1lbnQgLT0gMTsKKyAgICAgICAgICAgICAgICAg ICAgIH0KKyAgICAgICAgICAgICAgICAgICAgIGxldCBsZW5fbWludXNfc3RyaWRlID0gbGVuIC0g QUxVX1NUUklERV9TSVpFOworICAgICAgICAgICAgICAgICAgICAgbG9vcCB7CisrICAgICAgICAg ICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBudW1fYXNjaWkgaXMga25vd24gdG8gYmUgYSBieXRl IGluZGV4IG9mIGEgbm9uLWFzY2lpIGJ5dGUgZHVlIHRvIHN0cmlkZV9mbidzIGludmFyaWFudAor ICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGxldCBTb21lKG51bV9hc2NpaSkgPSAkc3RyaWRl X2ZuKAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IFRoZXNlIGFyZSBr bm93biB0byBiZSB2YWxpZCBhbmQgYWxpZ25lZCBzaW5jZSB3ZSBoYXZlIGF0CisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgIC8vIGxlYXN0IEFMVV9TVFJJREVfU0laRSBkYXRhIGluIHRoZXNl IGJ1ZmZlcnMsIGFuZCBvZmZzZXQgaXMgdGhlCisrICAgICAgICAgICAgICAgICAgICAgICAgICAg IC8vIG51bWJlciBvZiBlbGVtZW50cyBjb3BpZWQgc28gZmFyLCB3aGljaCBhY2NvcmRpbmcgdG8g dGhlCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHVudGlsX2FsaWdubWVudCBjYWxj dWxhdGlvbiBhYm92ZSB3aWxsIGNhdXNlIGJvdGggc3JjIGFuZCBkc3QgdG8gYmUKKysgICAgICAg ICAgICAgICAgICAgICAgICAgICAgLy8gYWxpZ25lZCB0byB1c2l6ZSBhZnRlciB0aGlzIGFkZAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmMuYWRkKG9mZnNldCkgYXMgKmNvbnN0IHVz aXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkc3QuYWRkKG9mZnNldCkgYXMgKm11 dCB1c2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICApIHsKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgb2Zmc2V0ICs9IG51bV9hc2NpaTsKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgLy8gU2FmZXR5OiBVcGhvbGRzIHNhZmV0eS11c2FibGUgaW52YXJpYW50IGhlcmUgYnkg aW5kZXhpbmcgaW50byBub24tYXNjaWkgYnl0ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICByZXR1cm4gU29tZSgoKihzcmMuYWRkKG9mZnNldCkpLCBvZmZzZXQpKTsKKyAgICAgICAgICAg ICAgICAgICAgICAgICB9CisrICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBvZmZz ZXQgY29udGludWVzIHRvIGJlIHRoZSBudW1iZXIgb2YgYnl0ZXMgY29waWVkIHNvIGZhciwgYW5k CisrICAgICAgICAgICAgICAgICAgICAgICAgLy8gbWFpbnRhaW5zIHVzaXplIGFsaWdubWVudCBm b3IgdGhlIG5leHQgbG9vcCBpdGVyYXRpb24KKyAgICAgICAgICAgICAgICAgICAgICAgICBvZmZz ZXQgKz0gQUxVX1NUUklERV9TSVpFOworKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0 eTogVGhpcyBpcyBgb2Zmc2V0ID4gbGVuIC0gc3RyaWRlLiBUaGlzIGxvb3Agd2lsbCBjb250aW51 ZSBhcyBsb25nIGFzCisrICAgICAgICAgICAgICAgICAgICAgICAgLy8gYG9mZnNldCA8PSBsZW4g LSBzdHJpZGVgLCB3aGljaCBtZWFucyB0aGVyZSBhcmUgYHN0cmlkZWAgYnl0ZXMgdG8gc3RpbGwg YmUgcmVhZC4KKyAgICAgICAgICAgICAgICAgICAgICAgICBpZiBvZmZzZXQgPiBsZW5fbWludXNf c3RyaWRlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg ICB9CisgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgIH0KKysKKysgICAgICAg ICAgICAvLyBTYWZldHk6IFRoaXMgaXMgdGhlIG5hw692ZSBjb2RlLCBzYW1lIGFzIGFzY2lpX25h aXZlLCBhbmQgaGFzIG5vIHJlcXVpcmVtZW50cworKyAgICAgICAgICAgIC8vIG90aGVyIHRoYW4g c3JjL2RzdCBiZWluZyB2YWxpZCBmb3IgdGhlIHRoZSByaWdodCBsZW5zCisgICAgICAgICAgICAg d2hpbGUgb2Zmc2V0IDwgbGVuIHsKKysgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBsZW4gaW52 YXJpYW50IHVzZWQgaGVyZQorICAgICAgICAgICAgICAgICBsZXQgY29kZV91bml0ID0gKihzcmMu YWRkKG9mZnNldCkpOworICAgICAgICAgICAgICAgICBpZiBjb2RlX3VuaXQgPiAxMjcgeworKyAg ICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBVcGhvbGRzIHNhZmV0eS11c2FibGUgaW52YXJp YW50IGhlcmUKKyAgICAgICAgICAgICAgICAgICAgIHJldHVybiBTb21lKChjb2RlX3VuaXQsIG9m ZnNldCkpOworICAgICAgICAgICAgICAgICB9CisrICAgICAgICAgICAgICAgIC8vIFNhZmV0eTog bGVuIGludmFyaWFudCB1c2VkIGhlcmUKKyAgICAgICAgICAgICAgICAgKihkc3QuYWRkKG9mZnNl dCkpID0gY29kZV91bml0IGFzICRkc3RfdW5pdDsKKyAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9 IDE7CisgICAgICAgICAgICAgfQorICAgICAgICAgICAgIE5vbmUKKyAgICAgICAgIH0KKyAgICAg fTsKKyB9CisgCisgI1thbGxvdyh1bnVzZWRfbWFjcm9zKV0KKyBtYWNyb19ydWxlcyEgYmFzaWNf bGF0aW5fYWx1IHsKKyAgICAgKCRuYW1lOmlkZW50LAorKyAgICAvLyBzYWZldHkgaW52YXJpYW50 OiB1c2UgdTggZm9yIHNyYy9kZXN0IGZvciBhc2NpaSwgYW5kIHUxNiBmb3IgYmFzaWNfbGF0aW4K KyAgICAgICRzcmNfdW5pdDp0eSwKKyAgICAgICRkc3RfdW5pdDp0eSwKKysgICAgLy8gc2FmZXR5 IGludmFyaWFudDogc3RyaWRlIGZ1bmN0aW9uIG11c3QgbXVuY2ggQUxVX1NUUklERV9TSVpFKnNp emUoc3JjX3VuaXQpIGJ5dGVzIG9mZiBvZiBzcmMgYW5kCisrICAgIC8vIHdyaXRlIEFMVV9TVFJJ REVfU0laRSpzaXplKGRzdF91bml0KSBieXRlcyB0byBkc3QKKyAgICAgICRzdHJpZGVfZm46aWRl bnQpID0+IHsKKysgICAgICAgIC8vLyBTYWZldHk6IHNyYyBhbmQgZHN0IG11c3QgaGF2ZSBsZW4g ZWxlbWVudHMsIHNyYyBpcyB2YWxpZCBmb3IgcmVhZCwgZHN0IGlzIHZhbGlkIGZvcgorKyAgICAg ICAgLy8vIHdyaXRlCisrICAgICAgICAvLy8gU2FmZXR5LXVzYWJsZSBpbnZhcmlhbnQ6IHdpbGwg cmV0dXJuIFNvbWUoKSB3aGVuIGl0IGZhaWxzCisrICAgICAgICAvLy8gdG8gY29udmVydC4gVGhl IGZpcnN0IHZhbHVlIHdpbGwgYmUgYSB1OCB0aGF0IGlzID4gMTI3LgorICAgICAgICAgI1tjZmdf YXR0cigKKyAgICAgICAgICAgICBmZWF0dXJlID0gImNhcmdvLWNsaXBweSIsCisgICAgICAgICAg ICAgYWxsb3cobmV2ZXJfbG9vcCwgY2FzdF9wdHJfYWxpZ25tZW50LCBjYXN0X2xvc3NsZXNzKQor ICAgICAgICAgKV0KKyAgICAgICAgICNbaW5saW5lKGFsd2F5cyldCisgICAgICAgICBwdWIgdW5z YWZlIGZuICRuYW1lKAorICAgICAgICAgICAgIHNyYzogKmNvbnN0ICRzcmNfdW5pdCwKKyAgICAg ICAgICAgICBkc3Q6ICptdXQgJGRzdF91bml0LAorICAgICAgICAgICAgIGxlbjogdXNpemUsCisg ICAgICAgICApIC0+IE9wdGlvbjwoJHNyY191bml0LCB1c2l6ZSk+IHsKKyAgICAgICAgICAgICBs ZXQgbXV0IG9mZnNldCA9IDB1c2l6ZTsKKyAgICAgICAgICAgICAvLyBUaGlzIGxvb3AgaXMgb25s eSBicm9rZW4gb3V0IG9mIGFzIGEgYGdvdG9gIGZvcndhcmQKKyAgICAgICAgICAgICBsb29wIHsK KysgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiB1bnRpbF9hbGlnbm1lbnQgYmVjb21lcyB0aGUg bnVtYmVyIG9mIGJ5dGVzIHdlIG5lZWQgdG8gbXVuY2ggZnJvbSBzcmMvZGVzdCB1bnRpbCB3ZSBh cmUgYWxpZ25lZCB0byB1c2l6ZQorKyAgICAgICAgICAgICAgICAvLyBXZSBlbnN1cmUgYmFzaWMt bGF0aW4gaGFzIHRoZSBzYW1lIGFsaWdubWVudCBhcyBhc2NpaSwgc3RhcnRpbmcgd2l0aCBhc2Np aSBzaW5jZSBpdCBpcyBzbWFsbGVyLgorICAgICAgICAgICAgICAgICBsZXQgbXV0IHVudGlsX2Fs aWdubWVudCA9IHsKKyAgICAgICAgICAgICAgICAgICAgIC8vIENoZWNrIGlmIHRoZSBvdGhlciB1 bml0IGFsaWducyBpZiB3ZSBtb3ZlIHRoZSBuYXJyb3dlciB1bml0CisgICAgICAgICAgICAgICAg ICAgICAvLyB0byBhbGlnbm1lbnQuCisgICAgICAgICAgICAgICAgICAgICAvLyAgICAgICAgICAg ICAgIGlmIDo6Y29yZTo6bWVtOjpzaXplX29mOjo8JHNyY191bml0PigpID09IDo6Y29yZTo6bWVt OjpzaXplX29mOjo8JGRzdF91bml0PigpIHsKKyAgICAgICAgICAgICAgICAgICAgIC8vIGFzY2lp X3RvX2FzY2lpCisgICAgICAgICAgICAgICAgICAgICAvLyAgICAgICAgICAgICAgICAgICBsZXQg c3JjX2FsaWdubWVudCA9IChzcmMgYXMgdXNpemUpICYgQUxJR05NRU5UX01BU0s7CisgICAgICAg ICAgICAgICAgICAgICAvLyAgICAgICAgICAgICAgICAgICBsZXQgZHN0X2FsaWdubWVudCA9IChk c3QgYXMgdXNpemUpICYgQUxJR05NRU5UX01BU0s7CisgICAgICAgICAgICAgICAgICAgICAvLyAg ICAgICAgICAgICAgICAgICBpZiBzcmNfYWxpZ25tZW50ICE9IGRzdF9hbGlnbm1lbnQgeworQEAg LTIzMiw2NiArMjc4LDg5IEBAIG1hY3JvX3J1bGVzISBiYXNpY19sYXRpbl9hbHUgeworICAgICAg ICAgICAgICAgICAgICAgLy8gTW92aW5nIHBvaW50ZXJzIHRvIGFsaWdubWVudCBzZWVtcyB0byBi ZSBhIHBlc3NpbWl6YXRpb24gb24KKyAgICAgICAgICAgICAgICAgICAgIC8vIHg4Nl82NCBmb3Ig b3BlcmF0aW9ucyB0aGF0IGhhdmUgVVRGLTE2IGFzIHRoZSBpbnRlcm5hbAorICAgICAgICAgICAg ICAgICAgICAgLy8gVW5pY29kZSByZXByZXNlbnRhdGlvbi4gSG93ZXZlciwgc2luY2UgaXQgc2Vl bXMgdG8gYmUgYSB3aW4KKyAgICAgICAgICAgICAgICAgICAgIC8vIG9uIEFSTSAodGVzdGVkIEFS TXY3IGNvZGUgcnVubmluZyBvbiBBUk12OCBbcnBpM10pLCBleGNlcHQKKyAgICAgICAgICAgICAg ICAgICAgIC8vIG1peGVkIHJlc3VsdHMgd2hlbiBlbmNvZGluZyBmcm9tIFVURi0xNiBhbmQgc2lu Y2UgeDg2IGFuZAorICAgICAgICAgICAgICAgICAgICAgLy8geDg2XzY0IHNob3VsZCBiZSB1c2lu ZyBTU0UyIGluIGR1ZSBjb3Vyc2UsIGtlZXBpbmcgdGhlIG1vdmUKKyAgICAgICAgICAgICAgICAg ICAgIC8vIHRvIGFsaWdubWVudCBoZXJlLiBJdCB3b3VsZCBiZSBnb29kIHRvIHRlc3Qgb24gbW9y ZSBBUk0gQ1BVcworICAgICAgICAgICAgICAgICAgICAgLy8gYW5kIG9uIHJlYWwgTUlQUyBhbmQg UE9XRVIgaGFyZHdhcmUuCisrICAgICAgICAgICAgICAgICAgICAvLworKyAgICAgICAgICAgICAg ICAgICAgLy8gU2FmZXR5OiBUaGlzIGlzIHRoZSBuYcOvdmUgY29kZSBvbmNlIGFnYWluLCBmb3Ig YHVudGlsX2FsaWdubWVudGAgYnl0ZXMKKyAgICAgICAgICAgICAgICAgICAgIHdoaWxlIHVudGls X2FsaWdubWVudCAhPSAwIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgY29kZV91bml0 ID0gKihzcmMuYWRkKG9mZnNldCkpOworICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGNvZGVf dW5pdCA+IDEyNyB7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogVXBo b2xkcyBzYWZldHktdXNhYmxlIGludmFyaWFudCBoZXJlCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHJldHVybiBTb21lKChjb2RlX3VuaXQsIG9mZnNldCkpOworICAgICAgICAgICAgICAg ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAqKGRzdC5hZGQob2Zmc2V0KSkg PSBjb2RlX3VuaXQgYXMgJGRzdF91bml0OworKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNh ZmV0eTogb2Zmc2V0IGlzIHRoZSBudW1iZXIgb2YgYnl0ZXMgY29waWVkIHNvIGZhcgorICAgICAg ICAgICAgICAgICAgICAgICAgIG9mZnNldCArPSAxOworICAgICAgICAgICAgICAgICAgICAgICAg IHVudGlsX2FsaWdubWVudCAtPSAxOworICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg ICAgICAgICAgICAgbGV0IGxlbl9taW51c19zdHJpZGUgPSBsZW4gLSBBTFVfU1RSSURFX1NJWkU7 CisgICAgICAgICAgICAgICAgICAgICBsb29wIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICBp ZiAhJHN0cmlkZV9mbigKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBU aGVzZSBhcmUga25vd24gdG8gYmUgdmFsaWQgYW5kIGFsaWduZWQgc2luY2Ugd2UgaGF2ZSBhdAor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBsZWFzdCBBTFVfU1RSSURFX1NJWkUgZGF0 YSBpbiB0aGVzZSBidWZmZXJzLCBhbmQgb2Zmc2V0IGlzIHRoZQorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAvLyBudW1iZXIgb2YgZWxlbWVudHMgY29waWVkIHNvIGZhciwgd2hpY2ggYWNj b3JkaW5nIHRvIHRoZQorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB1bnRpbF9hbGln bm1lbnQgY2FsY3VsYXRpb24gYWJvdmUgd2lsbCBjYXVzZSBib3RoIHNyYyBhbmQgZHN0IHRvIGJl CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFsaWduZWQgdG8gdXNpemUgYWZ0ZXIg dGhpcyBhZGQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjLmFkZChvZmZzZXQpIGFz ICpjb25zdCB1c2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHN0LmFkZChvZmZz ZXQpIGFzICptdXQgdXNpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgKSB7CisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgIH0K KysgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IG9mZnNldCBjb250aW51ZXMgdG8g YmUgdGhlIG51bWJlciBvZiBieXRlcyBjb3BpZWQgc28gZmFyLCBhbmQKKysgICAgICAgICAgICAg ICAgICAgICAgICAvLyBtYWludGFpbnMgdXNpemUgYWxpZ25tZW50IGZvciB0aGUgbmV4dCBsb29w IGl0ZXJhdGlvbgorICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCArPSBBTFVfU1RSSURF X1NJWkU7CisrICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBUaGlzIGlzIGBvZmZz ZXQgPiBsZW4gLSBzdHJpZGUuIFRoaXMgbG9vcCB3aWxsIGNvbnRpbnVlIGFzIGxvbmcgYXMKKysg ICAgICAgICAgICAgICAgICAgICAgICAvLyBgb2Zmc2V0IDw9IGxlbiAtIHN0cmlkZWAsIHdoaWNo IG1lYW5zIHRoZXJlIGFyZSBgc3RyaWRlYCBieXRlcyB0byBzdGlsbCBiZSByZWFkLgorICAgICAg ICAgICAgICAgICAgICAgICAgIGlmIG9mZnNldCA+IGxlbl9taW51c19zdHJpZGUgeworICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICB9 CisgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg ICAgICAgYnJlYWs7CisgICAgICAgICAgICAgfQorKyAgICAgICAgICAgIC8vIFNhZmV0eTogVGhp cyBpcyB0aGUgbmHDr3ZlIGNvZGUgb25jZSBhZ2FpbiwgZm9yIGxlZnRvdmVyIGJ5dGVzCisgICAg ICAgICAgICAgd2hpbGUgb2Zmc2V0IDwgbGVuIHsKKysgICAgICAgICAgICAgICAgLy8gU2FmZXR5 OiBsZW4gaW52YXJpYW50IHVzZWQgaGVyZQorICAgICAgICAgICAgICAgICBsZXQgY29kZV91bml0 ID0gKihzcmMuYWRkKG9mZnNldCkpOworICAgICAgICAgICAgICAgICBpZiBjb2RlX3VuaXQgPiAx MjcgeworKyAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBVcGhvbGRzIHNhZmV0eS11c2Fi bGUgaW52YXJpYW50IGhlcmUKKyAgICAgICAgICAgICAgICAgICAgIHJldHVybiBTb21lKChjb2Rl X3VuaXQsIG9mZnNldCkpOworICAgICAgICAgICAgICAgICB9CisrICAgICAgICAgICAgICAgIC8v IFNhZmV0eTogbGVuIGludmFyaWFudCB1c2VkIGhlcmUKKyAgICAgICAgICAgICAgICAgKihkc3Qu YWRkKG9mZnNldCkpID0gY29kZV91bml0IGFzICRkc3RfdW5pdDsKKyAgICAgICAgICAgICAgICAg b2Zmc2V0ICs9IDE7CisgICAgICAgICAgICAgfQorICAgICAgICAgICAgIE5vbmUKKyAgICAgICAg IH0KKyAgICAgfTsKKyB9CisgCisgI1thbGxvdyh1bnVzZWRfbWFjcm9zKV0KKyBtYWNyb19ydWxl cyEgbGF0aW4xX2FsdSB7CisrICAgIC8vIHNhZmV0eSBpbnZhcmlhbnQ6IHN0cmlkZSBmdW5jdGlv biBtdXN0IG11bmNoIEFMVV9TVFJJREVfU0laRSpzaXplKHNyY191bml0KSBieXRlcyBvZmYgb2Yg c3JjIGFuZAorKyAgICAvLyB3cml0ZSBBTFVfU1RSSURFX1NJWkUqc2l6ZShkc3RfdW5pdCkgYnl0 ZXMgdG8gZHN0CisgICAgICgkbmFtZTppZGVudCwgJHNyY191bml0OnR5LCAkZHN0X3VuaXQ6dHks ICRzdHJpZGVfZm46aWRlbnQpID0+IHsKKysgICAgICAgIC8vLyBTYWZldHk6IHNyYyBhbmQgZHN0 IG11c3QgaGF2ZSBsZW4gZWxlbWVudHMsIHNyYyBpcyB2YWxpZCBmb3IgcmVhZCwgZHN0IGlzIHZh bGlkIGZvcgorKyAgICAgICAgLy8vIHdyaXRlCisgICAgICAgICAjW2NmZ19hdHRyKAorICAgICAg ICAgICAgIGZlYXR1cmUgPSAiY2FyZ28tY2xpcHB5IiwKKyAgICAgICAgICAgICBhbGxvdyhuZXZl cl9sb29wLCBjYXN0X3B0cl9hbGlnbm1lbnQsIGNhc3RfbG9zc2xlc3MpCisgICAgICAgICApXQor ICAgICAgICAgI1tpbmxpbmUoYWx3YXlzKV0KKyAgICAgICAgIHB1YiB1bnNhZmUgZm4gJG5hbWUo c3JjOiAqY29uc3QgJHNyY191bml0LCBkc3Q6ICptdXQgJGRzdF91bml0LCBsZW46IHVzaXplKSB7 CisgICAgICAgICAgICAgbGV0IG11dCBvZmZzZXQgPSAwdXNpemU7CisgICAgICAgICAgICAgLy8g VGhpcyBsb29wIGlzIG9ubHkgYnJva2VuIG91dCBvZiBhcyBhIGBnb3RvYCBmb3J3YXJkCisgICAg ICAgICAgICAgbG9vcCB7CisrICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogdW50aWxfYWxpZ25t ZW50IGJlY29tZXMgdGhlIG51bWJlciBvZiBieXRlcyB3ZSBuZWVkIHRvIG11bmNoIGZyb20gc3Jj L2Rlc3QgdW50aWwgd2UgYXJlIGFsaWduZWQgdG8gdXNpemUKKysgICAgICAgICAgICAgICAgLy8g V2UgZW5zdXJlIHRoZSBVVEYtMTYgc2lkZSBoYXMgdGhlIHNhbWUgYWxpZ25tZW50IGFzIHRoZSBM YXRpbi0xIHNpZGUsIHN0YXJ0aW5nIHdpdGggTGF0aW4tMSBzaW5jZSBpdCBpcyBzbWFsbGVyLgor ICAgICAgICAgICAgICAgICBsZXQgbXV0IHVudGlsX2FsaWdubWVudCA9IHsKKyAgICAgICAgICAg ICAgICAgICAgIGlmIDo6Y29yZTo6bWVtOjpzaXplX29mOjo8JHNyY191bml0PigpIDwgOjpjb3Jl OjptZW06OnNpemVfb2Y6OjwkZHN0X3VuaXQ+KCkgeworICAgICAgICAgICAgICAgICAgICAgICAg IC8vIHVucGFjaworICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBzcmNfdW50aWxfYWxpZ25t ZW50ID0gKEFMVV9BTElHTk1FTlQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLSAoKHNy YyBhcyB1c2l6ZSkgJiBBTFVfQUxJR05NRU5UX01BU0spKQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAmIEFMVV9BTElHTk1FTlRfTUFTSzsKKyAgICAgICAgICAgICAgICAgICAgICAgICBp ZiAoZHN0LndyYXBwaW5nX2FkZChzcmNfdW50aWxfYWxpZ25tZW50KSBhcyB1c2l6ZSkgJiBBTFVf QUxJR05NRU5UX01BU0sKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIT0gMAorQEAgLTMw OCwzNzMgKzM3Nyw0ODUgQEAgbWFjcm9fcnVsZXMhIGxhdGluMV9hbHUgeworICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAhPSAwCisgICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICB9 CisgICAgICAgICAgICAgICAgICAgICAgICAgZHN0X3VudGlsX2FsaWdubWVudAorICAgICAgICAg ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICB9OworICAgICAgICAgICAgICAgICBpZiB1 bnRpbF9hbGlnbm1lbnQgKyBBTFVfU1RSSURFX1NJWkUgPD0gbGVuIHsKKysgICAgICAgICAgICAg ICAgICAgIC8vIFNhZmV0eTogVGhpcyBpcyB0aGUgbmHDr3ZlIGNvZGUgb25jZSBhZ2FpbiwgZm9y IGB1bnRpbF9hbGlnbm1lbnRgIGJ5dGVzCisgICAgICAgICAgICAgICAgICAgICB3aGlsZSB1bnRp bF9hbGlnbm1lbnQgIT0gMCB7CisgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGNvZGVfdW5p dCA9ICooc3JjLmFkZChvZmZzZXQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAqKGRzdC5h ZGQob2Zmc2V0KSkgPSBjb2RlX3VuaXQgYXMgJGRzdF91bml0OworKyAgICAgICAgICAgICAgICAg ICAgICAgIC8vIFNhZmV0eTogb2Zmc2V0IGlzIHRoZSBudW1iZXIgb2YgYnl0ZXMgY29waWVkIHNv IGZhcgorICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCArPSAxOworICAgICAgICAgICAg ICAgICAgICAgICAgIHVudGlsX2FsaWdubWVudCAtPSAxOworICAgICAgICAgICAgICAgICAgICAg fQorICAgICAgICAgICAgICAgICAgICAgbGV0IGxlbl9taW51c19zdHJpZGUgPSBsZW4gLSBBTFVf U1RSSURFX1NJWkU7CisgICAgICAgICAgICAgICAgICAgICBsb29wIHsKKyAgICAgICAgICAgICAg ICAgICAgICAgICAkc3RyaWRlX2ZuKAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBT YWZldHk6IFRoZXNlIGFyZSBrbm93biB0byBiZSB2YWxpZCBhbmQgYWxpZ25lZCBzaW5jZSB3ZSBo YXZlIGF0CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGxlYXN0IEFMVV9TVFJJREVf U0laRSBkYXRhIGluIHRoZXNlIGJ1ZmZlcnMsIGFuZCBvZmZzZXQgaXMgdGhlCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgIC8vIG51bWJlciBvZiBlbGVtZW50cyBjb3BpZWQgc28gZmFyLCB3 aGljaCBhY2NvcmRpbmcgdG8gdGhlCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHVu dGlsX2FsaWdubWVudCBjYWxjdWxhdGlvbiBhYm92ZSB3aWxsIGNhdXNlIGJvdGggc3JjIGFuZCBk c3QgdG8gYmUKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYWxpZ25lZCB0byB1c2l6 ZSBhZnRlciB0aGlzIGFkZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmMuYWRkKG9m ZnNldCkgYXMgKmNvbnN0IHVzaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkc3Qu YWRkKG9mZnNldCkgYXMgKm11dCB1c2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICApOwor KyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogb2Zmc2V0IGNvbnRpbnVlcyB0byBi ZSB0aGUgbnVtYmVyIG9mIGJ5dGVzIGNvcGllZCBzbyBmYXIsIGFuZAorKyAgICAgICAgICAgICAg ICAgICAgICAgIC8vIG1haW50YWlucyB1c2l6ZSBhbGlnbm1lbnQgZm9yIHRoZSBuZXh0IGxvb3Ag aXRlcmF0aW9uCisgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IEFMVV9TVFJJREVf U0laRTsKKysgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IFRoaXMgaXMgYG9mZnNl dCA+IGxlbiAtIHN0cmlkZS4gVGhpcyBsb29wIHdpbGwgY29udGludWUgYXMgbG9uZyBhcworKyAg ICAgICAgICAgICAgICAgICAgICAgIC8vIGBvZmZzZXQgPD0gbGVuIC0gc3RyaWRlYCwgd2hpY2gg bWVhbnMgdGhlcmUgYXJlIGBzdHJpZGVgIGJ5dGVzIHRvIHN0aWxsIGJlIHJlYWQuCisgICAgICAg ICAgICAgICAgICAgICAgICAgaWYgb2Zmc2V0ID4gbGVuX21pbnVzX3N0cmlkZSB7CisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgIH0K KyAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg ICAgICBicmVhazsKKyAgICAgICAgICAgICB9CisrICAgICAgICAgICAgLy8gU2FmZXR5OiBUaGlz IGlzIHRoZSBuYcOvdmUgY29kZSBvbmNlIGFnYWluLCBmb3IgbGVmdG92ZXIgYnl0ZXMKKyAgICAg ICAgICAgICB3aGlsZSBvZmZzZXQgPCBsZW4geworKyAgICAgICAgICAgICAgICAvLyBTYWZldHk6 IGxlbiBpbnZhcmlhbnQgdXNlZCBoZXJlCisgICAgICAgICAgICAgICAgIGxldCBjb2RlX3VuaXQg PSAqKHNyYy5hZGQob2Zmc2V0KSk7CisgICAgICAgICAgICAgICAgICooZHN0LmFkZChvZmZzZXQp KSA9IGNvZGVfdW5pdCBhcyAkZHN0X3VuaXQ7CisgICAgICAgICAgICAgICAgIG9mZnNldCArPSAx OworICAgICAgICAgICAgIH0KKyAgICAgICAgIH0KKyAgICAgfTsKKyB9CisgCisgI1thbGxvdyh1 bnVzZWRfbWFjcm9zKV0KKyBtYWNyb19ydWxlcyEgYXNjaWlfc2ltZF9jaGVja19hbGlnbiB7Cisg ICAgICgKKyAgICAgICAgICRuYW1lOmlkZW50LAorICAgICAgICAgJHNyY191bml0OnR5LAorICAg ICAgICAgJGRzdF91bml0OnR5LAorKyAgICAgICAgLy8gU2FmZXR5OiBUaGlzIGZ1bmN0aW9uIG11 c3QgcmVxdWlyZSBhbGlnbmVkIHNyYy9kZXN0IHRoYXQgYXJlIHZhbGlkIGZvciByZWFkaW5nL3dy aXRpbmcgU0lNRF9TVFJJREVfU0laRSBzcmNfdW5pdC9kc3RfdW5pdAorICAgICAgICAgJHN0cmlk ZV9ib3RoX2FsaWduZWQ6aWRlbnQsCisrICAgICAgICAvLyBTYWZldHk6IFRoaXMgZnVuY3Rpb24g bXVzdCByZXF1aXJlIGFsaWduZWQvdW5hbGlnbmVkIHNyYy9kZXN0IHRoYXQgYXJlIHZhbGlkIGZv ciByZWFkaW5nL3dyaXRpbmcgU0lNRF9TVFJJREVfU0laRSBzcmNfdW5pdC9kc3RfdW5pdAorICAg ICAgICAgJHN0cmlkZV9zcmNfYWxpZ25lZDppZGVudCwKKysgICAgICAgIC8vIFNhZmV0eTogVGhp cyBmdW5jdGlvbiBtdXN0IHJlcXVpcmUgdW5hbGlnbmVkL2FsaWduZWQgc3JjL2Rlc3QgdGhhdCBh cmUgdmFsaWQgZm9yIHJlYWRpbmcvd3JpdGluZyBTSU1EX1NUUklERV9TSVpFIHNyY191bml0L2Rz dF91bml0CisgICAgICAgICAkc3RyaWRlX2RzdF9hbGlnbmVkOmlkZW50LAorKyAgICAgICAgLy8g U2FmZXR5OiBUaGlzIGZ1bmN0aW9uIG11c3QgcmVxdWlyZSB1bmFsaWduZWQgc3JjL2Rlc3QgdGhh dCBhcmUgdmFsaWQgZm9yIHJlYWRpbmcvd3JpdGluZyBTSU1EX1NUUklERV9TSVpFIHNyY191bml0 L2RzdF91bml0CisgICAgICAgICAkc3RyaWRlX25laXRoZXJfYWxpZ25lZDppZGVudAorICAgICAp ID0+IHsKKysgICAgICAgIC8vLyBTYWZldHk6IHNyYy9kc3QgbXVzdCBiZSB2YWxpZCBmb3IgcmVh ZHMvd3JpdGVzIG9mIGBsZW5gIGVsZW1lbnRzIG9mIHRoZWlyIHVuaXRzLgorKyAgICAgICAgLy8v CisrICAgICAgICAvLy8gU2FmZXR5LXVzYWJsZSBpbnZhcmlhbnQ6IHdpbGwgcmV0dXJuIFNvbWUo KSB3aGVuIGl0IGVuY291bnRlcnMgbm9uLUFTQ0lJLCB3aXRoIHRoZSBmaXJzdCBlbGVtZW50IGlu IHRoZSBTb21lIGJlaW5nCisrICAgICAgICAvLy8gZ3VhcmFudGVlZCB0byBiZSBub24tQVNDSUkg KD4gMTI3KSwgYW5kIHRoZSBzZWNvbmQgYmVpbmcgdGhlIG9mZnNldCB3aGVyZSBpdCBpcyBmb3Vu ZAorICAgICAgICAgI1tpbmxpbmUoYWx3YXlzKV0KKyAgICAgICAgIHB1YiB1bnNhZmUgZm4gJG5h bWUoCisgICAgICAgICAgICAgc3JjOiAqY29uc3QgJHNyY191bml0LAorICAgICAgICAgICAgIGRz dDogKm11dCAkZHN0X3VuaXQsCisgICAgICAgICAgICAgbGVuOiB1c2l6ZSwKKyAgICAgICAgICkg LT4gT3B0aW9uPCgkc3JjX3VuaXQsIHVzaXplKT4geworICAgICAgICAgICAgIGxldCBtdXQgb2Zm c2V0ID0gMHVzaXplOworKyAgICAgICAgICAgIC8vIFNhZmV0eTogaWYgdGhpcyBjaGVjayBzdWNj ZWVkcyB3ZSdyZSB2YWxpZCBmb3IgcmVhZGluZy93cml0aW5nIGF0IGxlYXN0IGBTSU1EX1NUUklE RV9TSVpFYCBlbGVtZW50cy4KKyAgICAgICAgICAgICBpZiBTSU1EX1NUUklERV9TSVpFIDw9IGxl biB7CisgICAgICAgICAgICAgICAgIGxldCBsZW5fbWludXNfc3RyaWRlID0gbGVuIC0gU0lNRF9T VFJJREVfU0laRTsKKyAgICAgICAgICAgICAgICAgLy8gWFhYIFNob3VsZCB3ZSBmaXJzdCBwcm9j ZXNzIG9uZSBzdHJpZGUgdW5jb25kaXRpb25hbGx5IGFzIHVuYWxpZ25lZCB0bworICAgICAgICAg ICAgICAgICAvLyBhdm9pZCB0aGUgY29zdCBvZiB0aGUgYnJhbmNoaW5lc3MgYmVsb3cgaWYgdGhl IGZpcnN0IHN0cmlkZSBmYWlscyBhbnl3YXk/CisgICAgICAgICAgICAgICAgIC8vIFhYWCBTaG91 bGQgd2UganVzdCB1c2UgdW5hbGlnbmVkIFNTRTIgYWNjZXNzIHVuY29uZGl0aW9uYWxseT8gSXQg c2VlbXMgdGhhdAorICAgICAgICAgICAgICAgICAvLyBvbiBIYXN3ZWxsLCBpdCB3b3VsZCBtYWtl IHNlbnNlIHRvIGp1c3QgdXNlIHVuYWxpZ25lZCBhbmQgbm90IGJvdGhlcgorICAgICAgICAgICAg ICAgICAvLyBjaGVja2luZy4gTmVlZCB0byBiZW5jaG1hcmsgb2xkZXIgYXJjaGl0ZWN0dXJlcyBi ZWZvcmUgZGVjaWRpbmcuCisgICAgICAgICAgICAgICAgIGxldCBkc3RfbWFza2VkID0gKGRzdCBh cyB1c2l6ZSkgJiBTSU1EX0FMSUdOTUVOVF9NQVNLOworKyAgICAgICAgICAgICAgICAvLyBTYWZl dHk6IGNoZWNraW5nIHdoZXRoZXIgc3JjIGlzIGFsaWduZWQKKyAgICAgICAgICAgICAgICAgaWYg KChzcmMgYXMgdXNpemUpICYgU0lNRF9BTElHTk1FTlRfTUFTSykgPT0gMCB7CisrICAgICAgICAg ICAgICAgICAgICAvLyBTYWZldHk6IENoZWNraW5nIHdoZXRoZXIgZHN0IGlzIGFsaWduZWQKKyAg ICAgICAgICAgICAgICAgICAgIGlmIGRzdF9tYXNrZWQgPT0gMCB7CisgICAgICAgICAgICAgICAg ICAgICAgICAgbG9vcCB7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTog V2UncmUgdmFsaWQgdG8gcmVhZC93cml0ZSBTSU1EX1NUUklERV9TSVpFIGVsZW1lbnRzIGFuZCBo YXZlIHRoZSBhcHByb3ByaWF0ZSBhbGlnbm1lbnRzCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGlmICEkc3RyaWRlX2JvdGhfYWxpZ25lZChzcmMuYWRkKG9mZnNldCksIGRzdC5hZGQob2Zm c2V0KSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zm c2V0ICs9IFNJTURfU1RSSURFX1NJWkU7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8v IFNhZmV0eTogVGhpcyBpcyBgb2Zmc2V0ID4gbGVuIC0gU0lNRF9TVFJJREVfU0laRWAgd2hpY2gg bWVhbnMgd2UgYWx3YXlzIGhhdmUgYXQgbGVhc3QgYFNJTURfU1RSSURFX1NJWkVgIGVsZW1lbnRz IHRvIG11bmNoIG5leHQgdGltZS4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgb2Zm c2V0ID4gbGVuX21pbnVzX3N0cmlkZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAg ICAgICAgICAgICAgbG9vcCB7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0 eTogV2UncmUgdmFsaWQgdG8gcmVhZC93cml0ZSBTSU1EX1NUUklERV9TSVpFIGVsZW1lbnRzIGFu ZCBoYXZlIHRoZSBhcHByb3ByaWF0ZSBhbGlnbm1lbnRzCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGlmICEkc3RyaWRlX3NyY19hbGlnbmVkKHNyYy5hZGQob2Zmc2V0KSwgZHN0LmFkZChv ZmZzZXQpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBv ZmZzZXQgKz0gU0lNRF9TVFJJREVfU0laRTsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg Ly8gU2FmZXR5OiBUaGlzIGlzIGBvZmZzZXQgPiBsZW4gLSBTSU1EX1NUUklERV9TSVpFYCB3aGlj aCBtZWFucyB3ZSBhbHdheXMgaGF2ZSBhdCBsZWFzdCBgU0lNRF9TVFJJREVfU0laRWAgZWxlbWVu dHMgdG8gbXVuY2ggbmV4dCB0aW1lLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBv ZmZzZXQgPiBsZW5fbWludXNfc3RyaWRlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICB9 IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgaWYgZHN0X21hc2tlZCA9PSAwIHsKKyAgICAg ICAgICAgICAgICAgICAgICAgICBsb29wIHsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg Ly8gU2FmZXR5OiBXZSdyZSB2YWxpZCB0byByZWFkL3dyaXRlIFNJTURfU1RSSURFX1NJWkUgZWxl bWVudHMgYW5kIGhhdmUgdGhlIGFwcHJvcHJpYXRlIGFsaWdubWVudHMKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgaWYgISRzdHJpZGVfZHN0X2FsaWduZWQoc3JjLmFkZChvZmZzZXQpLCBk c3QuYWRkKG9mZnNldCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFr OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIG9mZnNldCArPSBTSU1EX1NUUklERV9TSVpFOworKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAvLyBTYWZldHk6IFRoaXMgaXMgYG9mZnNldCA+IGxlbiAtIFNJTURfU1RSSURFX1NJ WkVgIHdoaWNoIG1lYW5zIHdlIGFsd2F5cyBoYXZlIGF0IGxlYXN0IGBTSU1EX1NUUklERV9TSVpF YCBlbGVtZW50cyB0byBtdW5jaCBuZXh0IHRpbWUuCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGlmIG9mZnNldCA+IGxlbl9taW51c19zdHJpZGUgeworICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAg ICAgICAgICAgICAgICAgICAgICAgIGxvb3AgeworKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAvLyBTYWZldHk6IFdlJ3JlIHZhbGlkIHRvIHJlYWQvd3JpdGUgU0lNRF9TVFJJREVfU0laRSBl bGVtZW50cyBhbmQgaGF2ZSB0aGUgYXBwcm9wcmlhdGUgYWxpZ25tZW50cworICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBpZiAhJHN0cmlkZV9uZWl0aGVyX2FsaWduZWQoc3JjLmFkZChvZmZz ZXQpLCBkc3QuYWRkKG9mZnNldCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIG9mZnNldCArPSBTSU1EX1NUUklERV9TSVpFOworKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAvLyBTYWZldHk6IFRoaXMgaXMgYG9mZnNldCA+IGxlbiAtIFNJTURfU1RS SURFX1NJWkVgIHdoaWNoIG1lYW5zIHdlIGFsd2F5cyBoYXZlIGF0IGxlYXN0IGBTSU1EX1NUUklE RV9TSVpFYCBlbGVtZW50cyB0byBtdW5jaCBuZXh0IHRpbWUuCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGlmIG9mZnNldCA+IGxlbl9taW51c19zdHJpZGUgeworICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K KyAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICB9CisgICAg ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICB9CisgICAgICAgICAgICAgd2hpbGUgb2Zmc2V0 IDwgbGVuIHsKKysgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiB1c2VzIGxlbiBpbnZhcmlhbnQg aGVyZSBhbmQgYmVsb3cKKyAgICAgICAgICAgICAgICAgbGV0IGNvZGVfdW5pdCA9ICooc3JjLmFk ZChvZmZzZXQpKTsKKyAgICAgICAgICAgICAgICAgaWYgY29kZV91bml0ID4gMTI3IHsKKysgICAg ICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogdXBob2xkcyBzYWZldHktdXNhYmxlIGludmFyaWFu dAorICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFNvbWUoKGNvZGVfdW5pdCwgb2Zmc2V0KSk7 CisgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgKihkc3QuYWRkKG9mZnNldCkp ID0gY29kZV91bml0IGFzICRkc3RfdW5pdDsKKyAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IDE7 CisgICAgICAgICAgICAgfQorICAgICAgICAgICAgIE5vbmUKKyAgICAgICAgIH0KKyAgICAgfTsK KyB9CisgCisgI1thbGxvdyh1bnVzZWRfbWFjcm9zKV0KKyBtYWNyb19ydWxlcyEgYXNjaWlfc2lt ZF9jaGVja19hbGlnbl91bnJvbGxlZCB7CisgICAgICgKKyAgICAgICAgICRuYW1lOmlkZW50LAor ICAgICAgICAgJHNyY191bml0OnR5LAorICAgICAgICAgJGRzdF91bml0OnR5LAorKyAgICAgICAg Ly8gU2FmZXR5OiBUaGlzIGZ1bmN0aW9uIG11c3QgcmVxdWlyZSBhbGlnbmVkIHNyYy9kZXN0IHRo YXQgYXJlIHZhbGlkIGZvciByZWFkaW5nL3dyaXRpbmcgU0lNRF9TVFJJREVfU0laRSBzcmNfdW5p dC9kc3RfdW5pdAorICAgICAgICAgJHN0cmlkZV9ib3RoX2FsaWduZWQ6aWRlbnQsCisrICAgICAg ICAvLyBTYWZldHk6IFRoaXMgZnVuY3Rpb24gbXVzdCByZXF1aXJlIGFsaWduZWQvdW5hbGlnbmVk IHNyYy9kZXN0IHRoYXQgYXJlIHZhbGlkIGZvciByZWFkaW5nL3dyaXRpbmcgU0lNRF9TVFJJREVf U0laRSBzcmNfdW5pdC9kc3RfdW5pdAorICAgICAgICAgJHN0cmlkZV9zcmNfYWxpZ25lZDppZGVu dCwKKysgICAgICAgIC8vIFNhZmV0eTogVGhpcyBmdW5jdGlvbiBtdXN0IHJlcXVpcmUgdW5hbGln bmVkIHNyYy9kZXN0IHRoYXQgYXJlIHZhbGlkIGZvciByZWFkaW5nL3dyaXRpbmcgU0lNRF9TVFJJ REVfU0laRSBzcmNfdW5pdC9kc3RfdW5pdAorICAgICAgICAgJHN0cmlkZV9uZWl0aGVyX2FsaWdu ZWQ6aWRlbnQsCisrICAgICAgICAvLyBTYWZldHk6IFRoaXMgZnVuY3Rpb24gbXVzdCByZXF1aXJl IGFsaWduZWQgc3JjL2Rlc3QgdGhhdCBhcmUgdmFsaWQgZm9yIHJlYWRpbmcvd3JpdGluZyAyKlNJ TURfU1RSSURFX1NJWkUgc3JjX3VuaXQvZHN0X3VuaXQKKyAgICAgICAgICRkb3VibGVfc3RyaWRl X2JvdGhfYWxpZ25lZDppZGVudCwKKysgICAgICAgIC8vIFNhZmV0eTogVGhpcyBmdW5jdGlvbiBt dXN0IHJlcXVpcmUgYWxpZ25lZC91bmFsaWduZWQgc3JjL2Rlc3QgdGhhdCBhcmUgdmFsaWQgZm9y IHJlYWRpbmcvd3JpdGluZyAyKlNJTURfU1RSSURFX1NJWkUgc3JjX3VuaXQvZHN0X3VuaXQKKyAg ICAgICAgICRkb3VibGVfc3RyaWRlX3NyY19hbGlnbmVkOmlkZW50CisgICAgICkgPT4geworLSAg ICAgICAgI1tpbmxpbmUoYWx3YXlzKV0KKysgICAgICAgIC8vLyBTYWZldHk6IHNyYy9kc3QgbXVz dCBiZSB2YWxpZCBmb3IgcmVhZHMvd3JpdGVzIG9mIGBsZW5gIGVsZW1lbnRzIG9mIHRoZWlyIHVu aXRzLgorKyAgICAgICAgLy8vCisrICAgICAgICAvLy8gU2FmZXR5LXVzYWJsZSBpbnZhcmlhbnQ6 IHdpbGwgcmV0dXJuIFNvbWUoKSB3aGVuIGl0IGVuY291bnRlcnMgbm9uLUFTQ0lJLCB3aXRoIHRo ZSBmaXJzdCBlbGVtZW50IGluIHRoZSBTb21lIGJlaW5nCisrICAgICAgICAvLy8gZ3VhcmFudGVl ZCB0byBiZSBub24tQVNDSUkgKD4gMTI3KSwgYW5kIHRoZSBzZWNvbmQgYmVpbmcgdGhlIG9mZnNl dCB3aGVyZSBpdCBpcyBmb3VuZCAgICAgICAgI1tpbmxpbmUoYWx3YXlzKV0KKyAgICAgICAgIHB1 YiB1bnNhZmUgZm4gJG5hbWUoCisgICAgICAgICAgICAgc3JjOiAqY29uc3QgJHNyY191bml0LAor ICAgICAgICAgICAgIGRzdDogKm11dCAkZHN0X3VuaXQsCisgICAgICAgICAgICAgbGVuOiB1c2l6 ZSwKKyAgICAgICAgICkgLT4gT3B0aW9uPCgkc3JjX3VuaXQsIHVzaXplKT4geworICAgICAgICAg ICAgIGxldCB1bml0X3NpemUgPSA6OmNvcmU6Om1lbTo6c2l6ZV9vZjo6PCRzcmNfdW5pdD4oKTsK KyAgICAgICAgICAgICBsZXQgbXV0IG9mZnNldCA9IDB1c2l6ZTsKKyAgICAgICAgICAgICAvLyBU aGlzIGxvb3AgaXMgb25seSBicm9rZW4gb3V0IG9mIGFzIGEgZ290byBmb3J3YXJkIHdpdGhvdXQK KyAgICAgICAgICAgICAvLyBhY3R1YWxseSBsb29waW5nCisgICAgICAgICAgICAgJ291dGVyOiBs b29wIHsKKysgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBpZiB0aGlzIGNoZWNrIHN1Y2NlZWRz IHdlJ3JlIHZhbGlkIGZvciByZWFkaW5nL3dyaXRpbmcgYXQgbGVhc3QgYFNJTURfU1RSSURFX1NJ WkVgIGVsZW1lbnRzLgorICAgICAgICAgICAgICAgICBpZiBTSU1EX1NUUklERV9TSVpFIDw9IGxl biB7CisgICAgICAgICAgICAgICAgICAgICAvLyBGaXJzdCwgcHJvY2VzcyBvbmUgdW5hbGlnbmVk CisrICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IHRoaXMgaXMgc2FmZSB0byBjYWxsIHNp bmNlIHdlJ3JlIHZhbGlkIGZvciB0aGlzIHJlYWQvd3JpdGUKKyAgICAgICAgICAgICAgICAgICAg IGlmICEkc3RyaWRlX25laXRoZXJfYWxpZ25lZChzcmMsIGRzdCkgeworICAgICAgICAgICAgICAg ICAgICAgICAgIGJyZWFrICdvdXRlcjsKKyAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg ICAgICAgICAgICAgIG9mZnNldCA9IFNJTURfU1RSSURFX1NJWkU7CisgCisgICAgICAgICAgICAg ICAgICAgICAvLyBXZSBoYXZlIG5vdyBzZWVuIDE2IEFTQ0lJIGJ5dGVzLiBMZXQncyBndWVzcyB0 aGF0CisgICAgICAgICAgICAgICAgICAgICAvLyB0aGVyZSB3aWxsIGJlIGVub3VnaCBtb3JlIHRv IGp1c3RpZnkgbW9yZSBleHBlbnNlCisgICAgICAgICAgICAgICAgICAgICAvLyBpbiB0aGUgY2Fz ZSBvZiBub24tQVNDSUkuCisgICAgICAgICAgICAgICAgICAgICAvLyBVc2UgYWxpZ25lZCByZWFk cyBmb3IgdGhlIHNha2Ugb2Ygb2xkIG1pY3JvYWNoaXRlY3R1cmVzLgorKyAgICAgICAgICAgICAg ICAgICAgLy8KKysgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogdGhpcyBjb3JyZWN0bHkg Y2FsY3VsYXRlcyB0aGUgbnVtYmVyIG9mIHNyY191bml0cyB0aGF0IG5lZWQgdG8gYmUgcmVhZCBi ZWZvcmUgdGhlIHJlbWFpbmluZyBsaXN0IGlzIGFsaWduZWQuCisrICAgICAgICAgICAgICAgICAg ICAvLyBUaGlzIGlzIGxlc3MgdGhhdCBTSU1EX0FMSUdOTUVOVCwgd2hpY2ggaXMgYWxzbyBTSU1E X1NUUklERV9TSVpFIChhcyBkb2N1bWVudGVkKQorICAgICAgICAgICAgICAgICAgICAgbGV0IHVu dGlsX2FsaWdubWVudCA9ICgoU0lNRF9BTElHTk1FTlQKKyAgICAgICAgICAgICAgICAgICAgICAg ICAtICgoc3JjLmFkZChvZmZzZXQpIGFzIHVzaXplKSAmIFNJTURfQUxJR05NRU5UX01BU0spKQor ICAgICAgICAgICAgICAgICAgICAgICAgICYgU0lNRF9BTElHTk1FTlRfTUFTSykKKyAgICAgICAg ICAgICAgICAgICAgICAgICAvIHVuaXRfc2l6ZTsKKy0gICAgICAgICAgICAgICAgICAgIC8vIFRo aXMgYWRkaXRpb24gd29uJ3Qgb3ZlcmZsb3csIGJlY2F1c2UgZXZlbiBpbiB0aGUgMzItYml0IFBB RSBjYXNlIHRoZQorKyAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBUaGlzIGFkZGl0aW9u IHdvbid0IG92ZXJmbG93LCBiZWNhdXNlIGV2ZW4gaW4gdGhlIDMyLWJpdCBQQUUgY2FzZSB0aGUK KyAgICAgICAgICAgICAgICAgICAgIC8vIGFkZHJlc3Mgc3BhY2UgaG9sZHMgZW5vdWdoIGNvZGUg dGhhdCB0aGUgc2xpY2UgbGVuZ3RoIGNhbid0IGJlIHRoYXQKKyAgICAgICAgICAgICAgICAgICAg IC8vIGNsb3NlIHRvIGFkZHJlc3Mgc3BhY2Ugc2l6ZS4KKyAgICAgICAgICAgICAgICAgICAgIC8v IG9mZnNldCBub3cgZXF1YWxzIFNJTURfU1RSSURFX1NJWkUsIGhlbmNlIHRpbWVzIDMgYmVsb3cu CisrICAgICAgICAgICAgICAgICAgICAvLworKyAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5 OiBpZiB0aGlzIGNoZWNrIHN1Y2NlZWRzIHdlJ3JlIHZhbGlkIGZvciByZWFkaW5nL3dyaXRpbmcg YXQgbGVhc3QgYDIgKiBTSU1EX1NUUklERV9TSVpFYCBlbGVtZW50cyBwbHVzIGB1bnRpbF9hbGln bm1lbnRgLgorKyAgICAgICAgICAgICAgICAgICAgLy8gVGhlIGV4dHJhIFNJTURfU1RSSURFX1NJ WkUgaW4gdGhlIGNvbmRpdGlvbiBpcyBiZWNhdXNlIGBvZmZzZXRgIGlzIGFscmVhZHkgYFNJTURf U1RSSURFX1NJWkVgLgorICAgICAgICAgICAgICAgICAgICAgaWYgdW50aWxfYWxpZ25tZW50ICsg KFNJTURfU1RSSURFX1NJWkUgKiAzKSA8PSBsZW4geworICAgICAgICAgICAgICAgICAgICAgICAg IGlmIHVudGlsX2FsaWdubWVudCAhPSAwIHsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg Ly8gU2FmZXR5OiB0aGlzIGlzIHNhZmUgdG8gY2FsbCBzaW5jZSB3ZSdyZSB2YWxpZCBmb3IgdGhp cyByZWFkL3dyaXRlIChhbmQgbW9yZSksIGFuZCBkb24ndCBjYXJlIGFib3V0IGFsaWdubWVudAor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIHdpbGwgY29weSBvdmVyIGJ5dGVz IHRoYXQgZ2V0IGRlY29kZWQgdHdpY2Ugc2luY2UgaXQncyBub3QgaW5jcmVtZW50aW5nIGBvZmZz ZXRgIGJ5IFNJTURfU1RSSURFX1NJWkUuIFRoaXMgaXMgZmluZS4KKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgaWYgISRzdHJpZGVfbmVpdGhlcl9hbGlnbmVkKHNyYy5hZGQob2Zmc2V0KSwg ZHN0LmFkZChvZmZzZXQpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVh azsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBvZmZzZXQgKz0gdW50aWxfYWxpZ25tZW50OworICAgICAgICAgICAgICAgICAgICAg ICAgIH0KKysgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IEF0IHRoaXMgcG9pbnQg d2UncmUgdmFsaWQgZm9yIHJlYWRpbmcvd3JpdGluZyAyKlNJTURfU1RSSURFX1NJWkUgZWxlbWVu dHMKKysgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IE5vdyBgb2Zmc2V0YCBpcyBh bGlnbmVkIGZvciBgc3JjYAorICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsZW5fbWludXNf c3RyaWRlX3RpbWVzX3R3byA9IGxlbiAtIChTSU1EX1NUUklERV9TSVpFICogMik7CisrICAgICAg ICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBUaGlzIGlzIHdoZXRoZXIgZHN0IGlzIGFsaWdu ZWQKKyAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZHN0X21hc2tlZCA9IChkc3QuYWRkKG9m ZnNldCkgYXMgdXNpemUpICYgU0lNRF9BTElHTk1FTlRfTUFTSzsKKyAgICAgICAgICAgICAgICAg ICAgICAgICBpZiBkc3RfbWFza2VkID09IDAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBsb29wIHsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogYm90 aCBhcmUgYWxpZ25lZCwgd2UgY2FuIGNhbGwgdGhlIGFsaWduZWQgZnVuY3Rpb24uIFdlJ3JlIHZh bGlkIGZvciByZWFkaW5nL3dyaXRpbmcgZG91YmxlIHN0cmlkZSBmcm9tIHRoZSBpbml0aWFsIGNv bmRpdGlvbgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYW5kIHRoZSBsb29w IGJyZWFrIGNvbmRpdGlvbiBiZWxvdworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg aWYgbGV0IFNvbWUoYWR2YW5jZSkgPQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICRkb3VibGVfc3RyaWRlX2JvdGhfYWxpZ25lZChzcmMuYWRkKG9mZnNldCksIGRzdC5hZGQo b2Zmc2V0KSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQgKz0gYWR2YW5jZTsKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgY29kZV91bml0ID0gKihzcmMuYWRkKG9mZnNl dCkpOworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogdXNl cyBzYWZldHktdXNhYmxlIGludmFyaWFudCBvbiBhc2NpaV90b19hc2NpaV9zaW1kX2RvdWJsZV9z dHJpZGUgdG8gcmV0dXJuCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8g Z3VhcmFudGVlZCBub24tYXNjaWkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICByZXR1cm4gU29tZSgoY29kZV91bml0LCBvZmZzZXQpKTsKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCAr PSBTSU1EX1NUUklERV9TSVpFICogMjsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IC8vIFNhZmV0eTogVGhpcyBpcyBgb2Zmc2V0ID4gbGVuIC0gMiAqIFNJTURfU1RSSURFX1NJWkVg IHdoaWNoIG1lYW5zIHdlIGFsd2F5cyBoYXZlIGF0IGxlYXN0IGAyICogU0lNRF9TVFJJREVfU0la RWAgZWxlbWVudHMgdG8gbXVuY2ggbmV4dCB0aW1lLgorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgaWYgb2Zmc2V0ID4gbGVuX21pbnVzX3N0cmlkZV90aW1lc190d28geworICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogV2UncmUgdmFsaWQgZm9yIHJlYWRpbmcv d3JpdGluZyBvbmUgbW9yZSwgYW5kIGNhbiBzdGlsbCBhc3N1bWUgYWxpZ25tZW50CisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGlmIG9mZnNldCArIFNJTURfU1RSSURFX1NJWkUgPD0gbGVu IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICEkc3RyaWRlX2JvdGhfYWxp Z25lZChzcmMuYWRkKG9mZnNldCksIGRzdC5hZGQob2Zmc2V0KSkgeworICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGJyZWFrICdvdXRlcjsKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCAr PSBTSU1EX1NUUklERV9TSVpFOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAg ICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgbG9vcCB7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IG9u bHkgc3JjIGlzIGFsaWduZWQgaGVyZS4gV2UncmUgdmFsaWQgZm9yIHJlYWRpbmcvd3JpdGluZyBk b3VibGUgc3RyaWRlIGZyb20gdGhlIGluaXRpYWwgY29uZGl0aW9uCisrICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAvLyBhbmQgdGhlIGxvb3AgYnJlYWsgY29uZGl0aW9uIGJlbG93Cisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBsZXQgU29tZShhZHZhbmNlKSA9Cisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGRvdWJsZV9zdHJpZGVfc3JjX2Fs aWduZWQoc3JjLmFkZChvZmZzZXQpLCBkc3QuYWRkKG9mZnNldCkpCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg b2Zmc2V0ICs9IGFkdmFuY2U7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg bGV0IGNvZGVfdW5pdCA9ICooc3JjLmFkZChvZmZzZXQpKTsKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IHVzZXMgc2FmZXR5LXVzYWJsZSBpbnZhcmlhbnQg b24gYXNjaWlfdG9fYXNjaWlfc2ltZF9kb3VibGVfc3RyaWRlIHRvIHJldHVybgorKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGd1YXJhbnRlZWQgbm9uLWFzY2lpCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFNvbWUoKGNvZGVfdW5pdCwg b2Zmc2V0KSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQgKz0gU0lNRF9TVFJJREVfU0laRSAqIDI7Cisr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IFRoaXMgaXMgYG9mZnNl dCA+IGxlbiAtIDIgKiBTSU1EX1NUUklERV9TSVpFYCB3aGljaCBtZWFucyB3ZSBhbHdheXMgaGF2 ZSBhdCBsZWFzdCBgMiAqIFNJTURfU1RSSURFX1NJWkVgIGVsZW1lbnRzIHRvIG11bmNoIG5leHQg dGltZS4KKysKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIG9mZnNldCA+IGxl bl9taW51c19zdHJpZGVfdGltZXNfdHdvIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfQorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAv LyBTYWZldHk6IFdlJ3JlIHZhbGlkIGZvciByZWFkaW5nL3dyaXRpbmcgb25lIG1vcmUsIGFuZCBj YW4gc3RpbGwgYXNzdW1lIGFsaWdubWVudAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp ZiBvZmZzZXQgKyBTSU1EX1NUUklERV9TSVpFIDw9IGxlbiB7CisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBpZiAhJHN0cmlkZV9zcmNfYWxpZ25lZChzcmMuYWRkKG9mZnNldCksIGRz dC5hZGQob2Zmc2V0KSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJy ZWFrICdvdXRlcjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCArPSBTSU1EX1NUUklERV9TSVpFOworICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgfQor ICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAv LyBBdCBtb3N0IHR3byBpdGVyYXRpb25zLCBzbyB1bnJvbGwKKyAgICAgICAgICAgICAgICAgICAg ICAgICBpZiBvZmZzZXQgKyBTSU1EX1NUUklERV9TSVpFIDw9IGxlbiB7CisrICAgICAgICAgICAg ICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogVGhlIGNoZWNrIGFib3ZlIGVuc3VyZXMgd2UncmUg YWxsb3dlZCB0byByZWFkL3dyaXRlIHRoaXMsIGFuZCB3ZSBkb24ndCB1c2UgYWxpZ25tZW50Cisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICEkc3RyaWRlX25laXRoZXJfYWxpZ25lZChz cmMuYWRkKG9mZnNldCksIGRzdC5hZGQob2Zmc2V0KSkgeworICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IFNJTURfU1RSSURFX1NJWkU7CisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGlmIG9mZnNldCArIFNJTURfU1RSSURFX1NJWkUgPD0g bGVuIHsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogVGhlIGNo ZWNrIGFib3ZlIGVuc3VyZXMgd2UncmUgYWxsb3dlZCB0byByZWFkL3dyaXRlIHRoaXMsIGFuZCB3 ZSBkb24ndCB1c2UgYWxpZ25tZW50CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp ZiAhJHN0cmlkZV9uZWl0aGVyX2FsaWduZWQoc3JjLmFkZChvZmZzZXQpLCBkc3QuYWRkKG9mZnNl dCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIG9mZnNldCArPSBTSU1EX1NUUklERV9TSVpFOworICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAg ICAgfQorICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgIGJyZWFrICdvdXRlcjsK KyAgICAgICAgICAgICB9CisgICAgICAgICAgICAgd2hpbGUgb2Zmc2V0IDwgbGVuIHsKKysgICAg ICAgICAgICAgICAgLy8gU2FmZXR5OiByZWxpZXMgc3RyYWlnaHRmb3J3YXJkbHkgb24gdGhlIGBs ZW5gIGludmFyaWFudAorICAgICAgICAgICAgICAgICBsZXQgY29kZV91bml0ID0gKihzcmMuYWRk KG9mZnNldCkpOworICAgICAgICAgICAgICAgICBpZiBjb2RlX3VuaXQgPiAxMjcgeworKyAgICAg ICAgICAgICAgICAgICAgLy8gU2FmZXR5LXVzYWJsZSBpbnZhcmlhbnQgdXBoZWxkIGhlcmUKKyAg ICAgICAgICAgICAgICAgICAgIHJldHVybiBTb21lKChjb2RlX3VuaXQsIG9mZnNldCkpOworICAg ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICooZHN0LmFkZChvZmZzZXQpKSA9IGNv ZGVfdW5pdCBhcyAkZHN0X3VuaXQ7CisgICAgICAgICAgICAgICAgIG9mZnNldCArPSAxOworICAg ICAgICAgICAgIH0KKyAgICAgICAgICAgICBOb25lCisgICAgICAgICB9CisgICAgIH07CisgfQor IAorICNbYWxsb3codW51c2VkX21hY3JvcyldCisgbWFjcm9fcnVsZXMhIGxhdGluMV9zaW1kX2No ZWNrX2FsaWduIHsKKyAgICAgKAorICAgICAgICAgJG5hbWU6aWRlbnQsCisgICAgICAgICAkc3Jj X3VuaXQ6dHksCisgICAgICAgICAkZHN0X3VuaXQ6dHksCisrICAgICAgICAvLyBTYWZldHk6IFRo aXMgZnVuY3Rpb24gbXVzdCByZXF1aXJlIGFsaWduZWQgc3JjL2Rlc3QgdGhhdCBhcmUgdmFsaWQg Zm9yIHJlYWRpbmcvd3JpdGluZyBTSU1EX1NUUklERV9TSVpFIHNyY191bml0L2RzdF91bml0Cisg ICAgICAgICAkc3RyaWRlX2JvdGhfYWxpZ25lZDppZGVudCwKKysgICAgICAgIC8vIFNhZmV0eTog VGhpcyBmdW5jdGlvbiBtdXN0IHJlcXVpcmUgYWxpZ25lZC91bmFsaWduZWQgc3JjL2Rlc3QgdGhh dCBhcmUgdmFsaWQgZm9yIHJlYWRpbmcvd3JpdGluZyBTSU1EX1NUUklERV9TSVpFIHNyY191bml0 L2RzdF91bml0CisgICAgICAgICAkc3RyaWRlX3NyY19hbGlnbmVkOmlkZW50LAorKyAgICAgICAg Ly8gU2FmZXR5OiBUaGlzIGZ1bmN0aW9uIG11c3QgcmVxdWlyZSB1bmFsaWduZWQvYWxpZ25lZCBz cmMvZGVzdCB0aGF0IGFyZSB2YWxpZCBmb3IgcmVhZGluZy93cml0aW5nIFNJTURfU1RSSURFX1NJ WkUgc3JjX3VuaXQvZHN0X3VuaXQKKyAgICAgICAgICRzdHJpZGVfZHN0X2FsaWduZWQ6aWRlbnQs CisrICAgICAgICAvLyBTYWZldHk6IFRoaXMgZnVuY3Rpb24gbXVzdCByZXF1aXJlIHVuYWxpZ25l ZCBzcmMvZGVzdCB0aGF0IGFyZSB2YWxpZCBmb3IgcmVhZGluZy93cml0aW5nIFNJTURfU1RSSURF X1NJWkUgc3JjX3VuaXQvZHN0X3VuaXQKKyAgICAgICAgICRzdHJpZGVfbmVpdGhlcl9hbGlnbmVk OmlkZW50CisrCisgICAgICkgPT4geworKyAgICAgICAgLy8vIFNhZmV0eTogc3JjL2RzdCBtdXN0 IGJlIHZhbGlkIGZvciByZWFkcy93cml0ZXMgb2YgYGxlbmAgZWxlbWVudHMgb2YgdGhlaXIgdW5p dHMuCisgICAgICAgICAjW2lubGluZShhbHdheXMpXQorICAgICAgICAgcHViIHVuc2FmZSBmbiAk bmFtZShzcmM6ICpjb25zdCAkc3JjX3VuaXQsIGRzdDogKm11dCAkZHN0X3VuaXQsIGxlbjogdXNp emUpIHsKKyAgICAgICAgICAgICBsZXQgbXV0IG9mZnNldCA9IDB1c2l6ZTsKKysgICAgICAgICAg ICAvLyBTYWZldHk6IGlmIHRoaXMgY2hlY2sgc3VjY2VlZHMgd2UncmUgdmFsaWQgZm9yIHJlYWRp bmcvd3JpdGluZyBhdCBsZWFzdCBgU0lNRF9TVFJJREVfU0laRWAgZWxlbWVudHMuCisgICAgICAg ICAgICAgaWYgU0lNRF9TVFJJREVfU0laRSA8PSBsZW4geworICAgICAgICAgICAgICAgICBsZXQg bGVuX21pbnVzX3N0cmlkZSA9IGxlbiAtIFNJTURfU1RSSURFX1NJWkU7CisrICAgICAgICAgICAg ICAgIC8vIFdoZXRoZXIgZHN0IGlzIGFsaWduZWQKKyAgICAgICAgICAgICAgICAgbGV0IGRzdF9t YXNrZWQgPSAoZHN0IGFzIHVzaXplKSAmIFNJTURfQUxJR05NRU5UX01BU0s7CisrICAgICAgICAg ICAgICAgIC8vIFdoZXRoZXIgc3JjIGlzIGFsaWduZWQKKyAgICAgICAgICAgICAgICAgaWYgKChz cmMgYXMgdXNpemUpICYgU0lNRF9BTElHTk1FTlRfTUFTSykgPT0gMCB7CisgICAgICAgICAgICAg ICAgICAgICBpZiBkc3RfbWFza2VkID09IDAgeworICAgICAgICAgICAgICAgICAgICAgICAgIGxv b3AgeworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IEJvdGggd2VyZSBh bGlnbmVkLCB3ZSBjYW4gdXNlIHRoZSBhbGlnbmVkIGZ1bmN0aW9uCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICRzdHJpZGVfYm90aF9hbGlnbmVkKHNyYy5hZGQob2Zmc2V0KSwgZHN0LmFk ZChvZmZzZXQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IFNJTURf U1RSSURFX1NJWkU7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogVGhp cyBpcyBgb2Zmc2V0ID4gbGVuIC0gU0lNRF9TVFJJREVfU0laRWAsIHdoaWNoIG1lYW5zIGluIHRo ZSBuZXh0IGl0ZXJhdGlvbiB3ZSdyZSB2YWxpZCBmb3IKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgLy8gcmVhZGluZy93cml0aW5nIGF0IGxlYXN0IFNJTURfU1RSSURFX1NJWkUgZWxlbWVu dHMuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIG9mZnNldCA+IGxlbl9taW51c19z dHJpZGUgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAg ICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgIGxvb3Ag eworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IHNyYyB3YXMgYWxpZ25l ZCwgZHN0IHdhcyBub3QKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHN0cmlkZV9zcmNf YWxpZ25lZChzcmMuYWRkKG9mZnNldCksIGRzdC5hZGQob2Zmc2V0KSk7CisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIG9mZnNldCArPSBTSU1EX1NUUklERV9TSVpFOworKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IFRoaXMgaXMgYG9mZnNldCA+IGxlbiAtIFNJTURf U1RSSURFX1NJWkVgLCB3aGljaCBtZWFucyBpbiB0aGUgbmV4dCBpdGVyYXRpb24gd2UncmUgdmFs aWQgZm9yCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJlYWRpbmcvd3JpdGluZyBh dCBsZWFzdCBTSU1EX1NUUklERV9TSVpFIGVsZW1lbnRzLgorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBpZiBvZmZzZXQgPiBsZW5fbWludXNfc3RyaWRlIHsKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Cisg ICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgfQorICAgICAg ICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgaWYgZHN0X21hc2tlZCA9 PSAwIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICBsb29wIHsKKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgLy8gU2FmZXR5OiBzcmMgd2FzIGFsaWduZWQsIGRzdCB3YXMgbm90CisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICRzdHJpZGVfZHN0X2FsaWduZWQoc3JjLmFkZChvZmZz ZXQpLCBkc3QuYWRkKG9mZnNldCkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZz ZXQgKz0gU0lNRF9TVFJJREVfU0laRTsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8g U2FmZXR5OiBUaGlzIGlzIGBvZmZzZXQgPiBsZW4gLSBTSU1EX1NUUklERV9TSVpFYCwgd2hpY2gg bWVhbnMgaW4gdGhlIG5leHQgaXRlcmF0aW9uIHdlJ3JlIHZhbGlkIGZvcgorKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAvLyByZWFkaW5nL3dyaXRpbmcgYXQgbGVhc3QgU0lNRF9TVFJJREVf U0laRSBlbGVtZW50cy4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgb2Zmc2V0ID4g bGVuX21pbnVzX3N0cmlkZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVh azsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAg ICAgIH0KKyAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAg ICAgICAgbG9vcCB7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogTmVp dGhlciB3ZXJlIGFsaWduZWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHN0cmlkZV9u ZWl0aGVyX2FsaWduZWQoc3JjLmFkZChvZmZzZXQpLCBkc3QuYWRkKG9mZnNldCkpOworICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQgKz0gU0lNRF9TVFJJREVfU0laRTsKKysgICAg ICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBUaGlzIGlzIGBvZmZzZXQgPiBsZW4g LSBTSU1EX1NUUklERV9TSVpFYCwgd2hpY2ggbWVhbnMgaW4gdGhlIG5leHQgaXRlcmF0aW9uIHdl J3JlIHZhbGlkIGZvcgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByZWFkaW5nL3dy aXRpbmcgYXQgbGVhc3QgU0lNRF9TVFJJREVfU0laRSBlbGVtZW50cy4KKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgaWYgb2Zmc2V0ID4gbGVuX21pbnVzX3N0cmlkZSB7CisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgIH0K KyAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICB3aGlsZSBv ZmZzZXQgPCBsZW4geworKyAgICAgICAgICAgICAgICAvLyBTYWZldHk6IHJlbGllcyBzdHJhaWdo dGZvcndhcmRseSBvbiB0aGUgYGxlbmAgaW52YXJpYW50CisgICAgICAgICAgICAgICAgIGxldCBj b2RlX3VuaXQgPSAqKHNyYy5hZGQob2Zmc2V0KSk7CisgICAgICAgICAgICAgICAgICooZHN0LmFk ZChvZmZzZXQpKSA9IGNvZGVfdW5pdCBhcyAkZHN0X3VuaXQ7CisgICAgICAgICAgICAgICAgIG9m ZnNldCArPSAxOworICAgICAgICAgICAgIH0KKyAgICAgICAgIH0KKyAgICAgfTsKKyB9CisgCisg I1thbGxvdyh1bnVzZWRfbWFjcm9zKV0KKyBtYWNyb19ydWxlcyEgbGF0aW4xX3NpbWRfY2hlY2tf YWxpZ25fdW5yb2xsZWQgeworICAgICAoCisgICAgICAgICAkbmFtZTppZGVudCwKKyAgICAgICAg ICRzcmNfdW5pdDp0eSwKKyAgICAgICAgICRkc3RfdW5pdDp0eSwKKysgICAgICAgIC8vIFNhZmV0 eTogVGhpcyBmdW5jdGlvbiBtdXN0IHJlcXVpcmUgYWxpZ25lZCBzcmMvZGVzdCB0aGF0IGFyZSB2 YWxpZCBmb3IgcmVhZGluZy93cml0aW5nIFNJTURfU1RSSURFX1NJWkUgc3JjX3VuaXQvZHN0X3Vu aXQKKyAgICAgICAgICRzdHJpZGVfYm90aF9hbGlnbmVkOmlkZW50LAorKyAgICAgICAgLy8gU2Fm ZXR5OiBUaGlzIGZ1bmN0aW9uIG11c3QgcmVxdWlyZSBhbGlnbmVkL3VuYWxpZ25lZCBzcmMvZGVz dCB0aGF0IGFyZSB2YWxpZCBmb3IgcmVhZGluZy93cml0aW5nIFNJTURfU1RSSURFX1NJWkUgc3Jj X3VuaXQvZHN0X3VuaXQKKyAgICAgICAgICRzdHJpZGVfc3JjX2FsaWduZWQ6aWRlbnQsCisrICAg ICAgICAvLyBTYWZldHk6IFRoaXMgZnVuY3Rpb24gbXVzdCByZXF1aXJlIHVuYWxpZ25lZC9hbGln bmVkIHNyYy9kZXN0IHRoYXQgYXJlIHZhbGlkIGZvciByZWFkaW5nL3dyaXRpbmcgU0lNRF9TVFJJ REVfU0laRSBzcmNfdW5pdC9kc3RfdW5pdAorICAgICAgICAgJHN0cmlkZV9kc3RfYWxpZ25lZDpp ZGVudCwKKysgICAgICAgIC8vIFNhZmV0eTogVGhpcyBmdW5jdGlvbiBtdXN0IHJlcXVpcmUgdW5h bGlnbmVkIHNyYy9kZXN0IHRoYXQgYXJlIHZhbGlkIGZvciByZWFkaW5nL3dyaXRpbmcgU0lNRF9T VFJJREVfU0laRSBzcmNfdW5pdC9kc3RfdW5pdAorICAgICAgICAgJHN0cmlkZV9uZWl0aGVyX2Fs aWduZWQ6aWRlbnQKKyAgICAgKSA9PiB7CisrICAgICAgICAvLy8gU2FmZXR5OiBzcmMvZHN0IG11 c3QgYmUgdmFsaWQgZm9yIHJlYWRzL3dyaXRlcyBvZiBgbGVuYCBlbGVtZW50cyBvZiB0aGVpciB1 bml0cy4KKyAgICAgICAgICNbaW5saW5lKGFsd2F5cyldCisgICAgICAgICBwdWIgdW5zYWZlIGZu ICRuYW1lKHNyYzogKmNvbnN0ICRzcmNfdW5pdCwgZHN0OiAqbXV0ICRkc3RfdW5pdCwgbGVuOiB1 c2l6ZSkgeworICAgICAgICAgICAgIGxldCB1bml0X3NpemUgPSA6OmNvcmU6Om1lbTo6c2l6ZV9v Zjo6PCRzcmNfdW5pdD4oKTsKKyAgICAgICAgICAgICBsZXQgbXV0IG9mZnNldCA9IDB1c2l6ZTsK KysgICAgICAgICAgICAvLyBTYWZldHk6IGlmIHRoaXMgY2hlY2sgc3VjY2VlZHMgd2UncmUgdmFs aWQgZm9yIHJlYWRpbmcvd3JpdGluZyBhdCBsZWFzdCBgU0lNRF9TVFJJREVfU0laRWAgZWxlbWVu dHMuCisgICAgICAgICAgICAgaWYgU0lNRF9TVFJJREVfU0laRSA8PSBsZW4geworKyAgICAgICAg ICAgICAgICAvLyBTYWZldHk6IHRoaXMgY29ycmVjdGx5IGNhbGN1bGF0ZXMgdGhlIG51bWJlciBv ZiBzcmNfdW5pdHMgdGhhdCBuZWVkIHRvIGJlIHJlYWQgYmVmb3JlIHRoZSByZW1haW5pbmcgbGlz dCBpcyBhbGlnbmVkLgorKyAgICAgICAgICAgICAgICAvLyBUaGlzIGlzIGJ5IGRlZmluaXRpb24g bGVzcyB0aGFuIFNJTURfU1RSSURFX1NJWkUuCisgICAgICAgICAgICAgICAgIGxldCBtdXQgdW50 aWxfYWxpZ25tZW50ID0gKChTSU1EX1NUUklERV9TSVpFCisgICAgICAgICAgICAgICAgICAgICAt ICgoc3JjIGFzIHVzaXplKSAmIFNJTURfQUxJR05NRU5UX01BU0spKQorICAgICAgICAgICAgICAg ICAgICAgJiBTSU1EX0FMSUdOTUVOVF9NQVNLKQorICAgICAgICAgICAgICAgICAgICAgLyB1bml0 X3NpemU7CisgICAgICAgICAgICAgICAgIHdoaWxlIHVudGlsX2FsaWdubWVudCAhPSAwIHsKKysg ICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogVGhpcyBpcyBhIHN0cmFpZ2h0Zm9yd2FyZCBj b3B5LCBzaW5jZSB1bnRpbF9hbGlnbm1lbnQgaXMgPCBTSU1EX1NUUklERV9TSVpFIDwgbGVuLCB0 aGlzIGlzIGluLWJvdW5kcworICAgICAgICAgICAgICAgICAgICAgKihkc3QuYWRkKG9mZnNldCkp ID0gKihzcmMuYWRkKG9mZnNldCkpIGFzICRkc3RfdW5pdDsKKyAgICAgICAgICAgICAgICAgICAg IG9mZnNldCArPSAxOworICAgICAgICAgICAgICAgICAgICAgdW50aWxfYWxpZ25tZW50IC09IDE7 CisgICAgICAgICAgICAgICAgIH0KKysgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBoZXJlIG9m ZnNldCB3aWxsIGJlIGB1bnRpbF9hbGlnbm1lbnRgLCBpLmUuIGVub3VnaCB0byBhbGlnbiBgc3Jj YC4KKyAgICAgICAgICAgICAgICAgbGV0IGxlbl9taW51c19zdHJpZGUgPSBsZW4gLSBTSU1EX1NU UklERV9TSVpFOworKyAgICAgICAgICAgICAgICAvLyBTYWZldHk6IGlmIHRoaXMgY2hlY2sgc3Vj Y2VlZHMgd2UncmUgdmFsaWQgZm9yIHJlYWRpbmcvd3JpdGluZyBhdCBsZWFzdCBgMiAqIFNJTURf U1RSSURFX1NJWkVgIGVsZW1lbnRzLgorICAgICAgICAgICAgICAgICBpZiBvZmZzZXQgKyBTSU1E X1NUUklERV9TSVpFICogMiA8PSBsZW4geworICAgICAgICAgICAgICAgICAgICAgbGV0IGxlbl9t aW51c19zdHJpZGVfdGltZXNfdHdvID0gbGVuX21pbnVzX3N0cmlkZSAtIFNJTURfU1RSSURFX1NJ WkU7CisrICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IGF0IHRoaXMgcG9pbnQgc3JjIGlz IGtub3duIHRvIGJlIGFsaWduZWQgYXQgb2Zmc2V0LCBkc3QgaXMgbm90LgorICAgICAgICAgICAg ICAgICAgICAgaWYgKGRzdC5hZGQob2Zmc2V0KSBhcyB1c2l6ZSkgJiBTSU1EX0FMSUdOTUVOVF9N QVNLID09IDAgeworICAgICAgICAgICAgICAgICAgICAgICAgIGxvb3AgeworKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IFdlIGNoZWNrZWQgYWxpZ25tZW50IG9mIGRzdCBh Ym92ZSwgd2UgY2FuIHVzZSB0aGUgYWxpZ25tZW50IGZ1bmN0aW9ucy4gV2UncmUgYWxsb3dlZCB0 byByZWFkL3dyaXRlIDIqU0lNRF9TVFJJREVfU0laRSBlbGVtZW50cywgd2hpY2ggd2UgZG8uCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzdHJpZGVfYm90aF9hbGlnbmVkKHNyYy5hZGQo b2Zmc2V0KSwgZHN0LmFkZChvZmZzZXQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg b2Zmc2V0ICs9IFNJTURfU1RSSURFX1NJWkU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICRzdHJpZGVfYm90aF9hbGlnbmVkKHNyYy5hZGQob2Zmc2V0KSwgZHN0LmFkZChvZmZzZXQpKTsK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IFNJTURfU1RSSURFX1NJWkU7 CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogVGhpcyBpcyBgb2Zmc2V0 ID4gbGVuIC0gMiAqIFNJTURfU1RSSURFX1NJWkVgIHdoaWNoIG1lYW5zIHdlIGFsd2F5cyBoYXZl IGF0IGxlYXN0IGAyICogU0lNRF9TVFJJREVfU0laRWAgZWxlbWVudHMgdG8gbXVuY2ggbmV4dCB0 aW1lLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBvZmZzZXQgPiBsZW5fbWludXNf c3RyaWRlX3RpbWVzX3R3byB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVh azsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAg ICAgIH0KKyAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAg ICAgICAgbG9vcCB7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogd2Ug ZW5zdXJlZCBhbGlnbm1lbnQgb2Ygc3JjIGFscmVhZHkuCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICRzdHJpZGVfc3JjX2FsaWduZWQoc3JjLmFkZChvZmZzZXQpLCBkc3QuYWRkKG9mZnNl dCkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQgKz0gU0lNRF9TVFJJREVf U0laRTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHN0cmlkZV9zcmNfYWxpZ25lZChz cmMuYWRkKG9mZnNldCksIGRzdC5hZGQob2Zmc2V0KSk7CisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIG9mZnNldCArPSBTSU1EX1NUUklERV9TSVpFOworKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAvLyBTYWZldHk6IFRoaXMgaXMgYG9mZnNldCA+IGxlbiAtIDIgKiBTSU1EX1NUUklE RV9TSVpFYCB3aGljaCBtZWFucyB3ZSBhbHdheXMgaGF2ZSBhdCBsZWFzdCBgMiAqIFNJTURfU1RS SURFX1NJWkVgIGVsZW1lbnRzIHRvIG11bmNoIG5leHQgdGltZS4KKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgaWYgb2Zmc2V0ID4gbGVuX21pbnVzX3N0cmlkZV90aW1lc190d28geworICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg ICAgICB9CisgICAgICAgICAgICAgICAgIH0KKysgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBU aGlzIGlzIGBvZmZzZXQgPiBsZW4gLSBTSU1EX1NUUklERV9TSVpFYCB3aGljaCBtZWFucyB3ZSBh cmUgdmFsaWQgdG8gbXVuY2ggU0lNRF9TVFJJREVfU0laRSBtb3JlIGVsZW1lbnRzLCB3aGljaCB3 ZSBkbworICAgICAgICAgICAgICAgICBpZiBvZmZzZXQgPCBsZW5fbWludXNfc3RyaWRlIHsKKyAg ICAgICAgICAgICAgICAgICAgICRzdHJpZGVfc3JjX2FsaWduZWQoc3JjLmFkZChvZmZzZXQpLCBk c3QuYWRkKG9mZnNldCkpOworICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IFNJTURfU1RS SURFX1NJWkU7CisgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICB9CisgICAgICAgICAg ICAgd2hpbGUgb2Zmc2V0IDwgbGVuIHsKKysgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiB1c2Vz IGxlbiBpbnZhcmlhbnQgaGVyZSBhbmQgYmVsb3cKKyAgICAgICAgICAgICAgICAgbGV0IGNvZGVf dW5pdCA9ICooc3JjLmFkZChvZmZzZXQpKTsKKyAgICAgICAgICAgICAgICAgLy8gT24geDg2XzY0 LCB0aGlzIGxvb3AgYXV0b3ZlY3Rvcml6ZXMgYnV0IGluIHRoZSBwYWNrCisgICAgICAgICAgICAg ICAgIC8vIGNhc2UgdGhlcmUgYXJlIGluc3RydWN0aW9ucyB3aG9zZSBwdXJwb3NlIGlzIHRvIG1h a2Ugc3VyZQorICAgICAgICAgICAgICAgICAvLyBlYWNoIHUxNiBpbiB0aGUgdmVjdG9yIGlzIHRy dW5jYXRlZCBiZWZvcmUgcGFja2luZy4gSG93ZXZlciwKKyAgICAgICAgICAgICAgICAgLy8gc2lu Y2Ugd2UgZG9uJ3QgY2FyZSBhYm91dCBzYXR1cmF0aW5nIGJlaGF2aW9yIG9mIFNTRTIgcGFja2lu ZworICAgICAgICAgICAgICAgICAvLyB3aGVuIHRoZSBpbnB1dCBpc24ndCBMYXRpbjEsIHRob3Nl IGluc3RydWN0aW9ucyBhcmUgdXNlbGVzcy4KKyAgICAgICAgICAgICAgICAgLy8gVW5mb3J0dW5h dGVseSwgdXNpbmcgdGhlIGBhc3N1bWVgIGludHJpbnNpYyB0byBsaWUgdG8gdGhlCisgICAgICAg ICAgICAgICAgIC8vIG9wdGltaXplciBkb2Vzbid0IG1ha2UgTExWTSBvbWl0IHRoZSB0cnVuY3Rh dGlvbiB0aGF0IHdlCitAQCAtNjg4LDEzOCArODY5LDE4MCBAQCBtYWNyb19ydWxlcyEgbGF0aW4x X3NpbWRfY2hlY2tfYWxpZ25fdW5yCisgICAgICAgICAgICAgICAgIG9mZnNldCArPSAxOworICAg ICAgICAgICAgIH0KKyAgICAgICAgIH0KKyAgICAgfTsKKyB9CisgCisgI1thbGxvdyh1bnVzZWRf bWFjcm9zKV0KKyBtYWNyb19ydWxlcyEgYXNjaWlfc2ltZF91bmFsaWduIHsKKysgICAgLy8gU2Fm ZXR5OiBzdHJpZGVfbmVpdGhlcl9hbGlnbmVkIG11c3QgYmUgYSBmdW5jdGlvbiB0aGF0IHJlcXVp cmVzIHNyYy9kZXN0IGJlIHZhbGlkIGZvciB1bmFsaWduZWQgcmVhZHMvd3JpdGVzIGZvciBTSU1E X1NUUklERV9TSVpFIGVsZW1lbnRzIG9mIHR5cGUgc3JjX3VuaXQvZGVzdF91bml0CisgICAgICgk bmFtZTppZGVudCwgJHNyY191bml0OnR5LCAkZHN0X3VuaXQ6dHksICRzdHJpZGVfbmVpdGhlcl9h bGlnbmVkOmlkZW50KSA9PiB7CisrICAgICAgICAvLy8gU2FmZXR5OiBzcmMgYW5kIGRzdCBtdXN0 IGJlIHZhbGlkIGZvciByZWFkcy93cml0ZXMgb2YgbGVuIGVsZW1lbnRzIG9mIHR5cGUgc3JjX3Vu aXQvZHN0X3VuaXQKKysgICAgICAgIC8vLworKyAgICAgICAgLy8vIFNhZmV0eS11c2FibGUgaW52 YXJpYW50OiB3aWxsIHJldHVybiBTb21lKCkgd2hlbiBpdCBlbmNvdW50ZXJzIG5vbi1BU0NJSSwg d2l0aCB0aGUgZmlyc3QgZWxlbWVudCBpbiB0aGUgU29tZSBiZWluZworKyAgICAgICAgLy8vIGd1 YXJhbnRlZWQgdG8gYmUgbm9uLUFTQ0lJICg+IDEyNyksIGFuZCB0aGUgc2Vjb25kIGJlaW5nIHRo ZSBvZmZzZXQgd2hlcmUgaXQgaXMgZm91bmQKKyAgICAgICAgICNbaW5saW5lKGFsd2F5cyldCisg ICAgICAgICBwdWIgdW5zYWZlIGZuICRuYW1lKAorICAgICAgICAgICAgIHNyYzogKmNvbnN0ICRz cmNfdW5pdCwKKyAgICAgICAgICAgICBkc3Q6ICptdXQgJGRzdF91bml0LAorICAgICAgICAgICAg IGxlbjogdXNpemUsCisgICAgICAgICApIC0+IE9wdGlvbjwoJHNyY191bml0LCB1c2l6ZSk+IHsK KyAgICAgICAgICAgICBsZXQgbXV0IG9mZnNldCA9IDB1c2l6ZTsKKysgICAgICAgICAgICAvLyBT YWZldHk6IGlmIHRoaXMgY2hlY2sgc3VjY2VlZHMgd2UncmUgdmFsaWQgZm9yIHJlYWRpbmcvd3Jp dGluZyBhdCBsZWFzdCBgc3RyaWRlYCBlbGVtZW50cy4KKyAgICAgICAgICAgICBpZiBTSU1EX1NU UklERV9TSVpFIDw9IGxlbiB7CisgICAgICAgICAgICAgICAgIGxldCBsZW5fbWludXNfc3RyaWRl ID0gbGVuIC0gU0lNRF9TVFJJREVfU0laRTsKKyAgICAgICAgICAgICAgICAgbG9vcCB7CisrICAg ICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IFdlIGtub3cgd2UncmUgdmFsaWQgZm9yIGBzdHJp ZGVgIHJlYWRzL3dyaXRlcywgc28gd2UgY2FuIGNhbGwgdGhpcyBmdW5jdGlvbi4gV2UgZG9uJ3Qg bmVlZCBhbGlnbm1lbnQuCisgICAgICAgICAgICAgICAgICAgICBpZiAhJHN0cmlkZV9uZWl0aGVy X2FsaWduZWQoc3JjLmFkZChvZmZzZXQpLCBkc3QuYWRkKG9mZnNldCkpIHsKKyAgICAgICAgICAg ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg ICAgICAgICAgIG9mZnNldCArPSBTSU1EX1NUUklERV9TSVpFOworKyAgICAgICAgICAgICAgICAg ICAgLy8gVGhpcyBpcyBgb2Zmc2V0ID4gbGVuIC0gc3RyaWRlYCB3aGljaCBtZWFucyB3ZSBhbHdh eXMgaGF2ZSBhdCBsZWFzdCBgc3RyaWRlYCBlbGVtZW50cyB0byBtdW5jaCBuZXh0IHRpbWUuCisg ICAgICAgICAgICAgICAgICAgICBpZiBvZmZzZXQgPiBsZW5fbWludXNfc3RyaWRlIHsKKyAgICAg ICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg ICAgICAgICAgICAgfQorICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICB3aGlsZSBvZmZzZXQg PCBsZW4geworKyAgICAgICAgICAgICAgICAvLyBTYWZldHk6IFVzZXMgbGVuIGludmFyaWFudCBo ZXJlIGFuZCBiZWxvdworICAgICAgICAgICAgICAgICBsZXQgY29kZV91bml0ID0gKihzcmMuYWRk KG9mZnNldCkpOworICAgICAgICAgICAgICAgICBpZiBjb2RlX3VuaXQgPiAxMjcgeworKyAgICAg ICAgICAgICAgICAgICAgLy8gU2FmZXR5LXVzYWJsZSBpbnZhcmlhbnQgdXBoZWxkIGhlcmUKKyAg ICAgICAgICAgICAgICAgICAgIHJldHVybiBTb21lKChjb2RlX3VuaXQsIG9mZnNldCkpOworICAg ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICooZHN0LmFkZChvZmZzZXQpKSA9IGNv ZGVfdW5pdCBhcyAkZHN0X3VuaXQ7CisgICAgICAgICAgICAgICAgIG9mZnNldCArPSAxOworICAg ICAgICAgICAgIH0KKyAgICAgICAgICAgICBOb25lCisgICAgICAgICB9CisgICAgIH07CisgfQor IAorICNbYWxsb3codW51c2VkX21hY3JvcyldCisgbWFjcm9fcnVsZXMhIGxhdGluMV9zaW1kX3Vu YWxpZ24geworKyAgICAvLyBTYWZldHk6IHN0cmlkZV9uZWl0aGVyX2FsaWduZWQgbXVzdCBiZSBh IGZ1bmN0aW9uIHRoYXQgcmVxdWlyZXMgc3JjL2Rlc3QgYmUgdmFsaWQgZm9yIHVuYWxpZ25lZCBy ZWFkcy93cml0ZXMgZm9yIFNJTURfU1RSSURFX1NJWkUgZWxlbWVudHMgb2YgdHlwZSBzcmNfdW5p dC9kZXN0X3VuaXQKKyAgICAgKCRuYW1lOmlkZW50LCAkc3JjX3VuaXQ6dHksICRkc3RfdW5pdDp0 eSwgJHN0cmlkZV9uZWl0aGVyX2FsaWduZWQ6aWRlbnQpID0+IHsKKysgICAgICAgIC8vLyBTYWZl dHk6IHNyYyBhbmQgZHN0IG11c3QgYmUgdmFsaWQgZm9yIHVuYWxpZ25lZCByZWFkcy93cml0ZXMg b2YgbGVuIGVsZW1lbnRzIG9mIHR5cGUgc3JjX3VuaXQvZHN0X3VuaXQKKyAgICAgICAgICNbaW5s aW5lKGFsd2F5cyldCisgICAgICAgICBwdWIgdW5zYWZlIGZuICRuYW1lKHNyYzogKmNvbnN0ICRz cmNfdW5pdCwgZHN0OiAqbXV0ICRkc3RfdW5pdCwgbGVuOiB1c2l6ZSkgeworICAgICAgICAgICAg IGxldCBtdXQgb2Zmc2V0ID0gMHVzaXplOworKyAgICAgICAgICAgIC8vIFNhZmV0eTogaWYgdGhp cyBjaGVjayBzdWNjZWVkcyB3ZSdyZSB2YWxpZCBmb3IgcmVhZGluZy93cml0aW5nIGF0IGxlYXN0 IGBzdHJpZGVgIGVsZW1lbnRzLgorICAgICAgICAgICAgIGlmIFNJTURfU1RSSURFX1NJWkUgPD0g bGVuIHsKKyAgICAgICAgICAgICAgICAgbGV0IGxlbl9taW51c19zdHJpZGUgPSBsZW4gLSBTSU1E X1NUUklERV9TSVpFOworICAgICAgICAgICAgICAgICBsb29wIHsKKysgICAgICAgICAgICAgICAg ICAgIC8vIFNhZmV0eTogV2Uga25vdyB3ZSdyZSB2YWxpZCBmb3IgYHN0cmlkZWAgcmVhZHMvd3Jp dGVzLCBzbyB3ZSBjYW4gY2FsbCB0aGlzIGZ1bmN0aW9uLiBXZSBkb24ndCBuZWVkIGFsaWdubWVu dC4KKyAgICAgICAgICAgICAgICAgICAgICRzdHJpZGVfbmVpdGhlcl9hbGlnbmVkKHNyYy5hZGQo b2Zmc2V0KSwgZHN0LmFkZChvZmZzZXQpKTsKKyAgICAgICAgICAgICAgICAgICAgIG9mZnNldCAr PSBTSU1EX1NUUklERV9TSVpFOworKyAgICAgICAgICAgICAgICAgICAgLy8gVGhpcyBpcyBgb2Zm c2V0ID4gbGVuIC0gc3RyaWRlYCB3aGljaCBtZWFucyB3ZSBhbHdheXMgaGF2ZSBhdCBsZWFzdCBg c3RyaWRlYCBlbGVtZW50cyB0byBtdW5jaCBuZXh0IHRpbWUuCisgICAgICAgICAgICAgICAgICAg ICBpZiBvZmZzZXQgPiBsZW5fbWludXNfc3RyaWRlIHsKKyAgICAgICAgICAgICAgICAgICAgICAg ICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgfQorICAg ICAgICAgICAgIH0KKyAgICAgICAgICAgICB3aGlsZSBvZmZzZXQgPCBsZW4geworKyAgICAgICAg ICAgICAgICAvLyBTYWZldHk6IFVzZXMgbGVuIGludmFyaWFudCBoZXJlCisgICAgICAgICAgICAg ICAgIGxldCBjb2RlX3VuaXQgPSAqKHNyYy5hZGQob2Zmc2V0KSk7CisgICAgICAgICAgICAgICAg ICooZHN0LmFkZChvZmZzZXQpKSA9IGNvZGVfdW5pdCBhcyAkZHN0X3VuaXQ7CisgICAgICAgICAg ICAgICAgIG9mZnNldCArPSAxOworICAgICAgICAgICAgIH0KKyAgICAgICAgIH0KKyAgICAgfTsK KyB9CisgCisgI1thbGxvdyh1bnVzZWRfbWFjcm9zKV0KKyBtYWNyb19ydWxlcyEgYXNjaWlfdG9f YXNjaWlfc2ltZF9zdHJpZGUgeworKyAgICAvLyBTYWZldHk6IGxvYWQvc3RvcmUgbXVzdCBiZSB2 YWxpZCBmb3IgMTYgYnl0ZXMgb2YgcmVhZC93cml0ZSwgd2hpY2ggbWF5IGJlIHVuYWxpZ25lZC4g KGNhbmRpZGF0ZXM6IGAobG9hZHxzdG9yZSkoMTZ8OClfKHVuYWxpZ25lZHxhbGlnbmVkKWAgZnVu Y3Rpb25zKQorICAgICAoJG5hbWU6aWRlbnQsICRsb2FkOmlkZW50LCAkc3RvcmU6aWRlbnQpID0+ IHsKKysgICAgICAgIC8vLyBTYWZldHk6IHNyYyBhbmQgZHN0IG11c3QgYmUgdmFsaWQgZm9yIDE2 IGJ5dGVzIG9mIHJlYWQvd3JpdGUgYWNjb3JkaW5nIHRvCisrICAgICAgICAvLy8gdGhlICRsb2Fk LyRzdG9yZSBmbiwgd2hpY2ggbWF5IGFsbG93IGZvciB1bmFsaWduZWQgcmVhZHMvd3JpdGVzIG9y IHJlcXVpcmUKKysgICAgICAgIC8vLyBhbGlnbm1lbnQgdG8gZWl0aGVyIDE2eDggb3IgdTh4MTYu CisgICAgICAgICAjW2lubGluZShhbHdheXMpXQorICAgICAgICAgcHViIHVuc2FmZSBmbiAkbmFt ZShzcmM6ICpjb25zdCB1OCwgZHN0OiAqbXV0IHU4KSAtPiBib29sIHsKKyAgICAgICAgICAgICBs ZXQgc2ltZCA9ICRsb2FkKHNyYyk7CisgICAgICAgICAgICAgaWYgIXNpbWRfaXNfYXNjaWkoc2lt ZCkgeworICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgfQorICAg ICAgICAgICAgICRzdG9yZShkc3QsIHNpbWQpOworICAgICAgICAgICAgIHRydWUKKyAgICAgICAg IH0KKyAgICAgfTsKKyB9CisgCisgI1thbGxvdyh1bnVzZWRfbWFjcm9zKV0KKyBtYWNyb19ydWxl cyEgYXNjaWlfdG9fYXNjaWlfc2ltZF9kb3VibGVfc3RyaWRlIHsKKysgICAgLy8gU2FmZXR5OiBz dG9yZSBtdXN0IGJlIHZhbGlkIGZvciAzMiBieXRlcyBvZiB3cml0ZSwgd2hpY2ggbWF5IGJlIHVu YWxpZ25lZCAoY2FuZGlkYXRlczogYHN0b3JlKDh8MTYpXyhhbGlnbmVkfHVuYWxpZ25lZClgKQor ICAgICAoJG5hbWU6aWRlbnQsICRzdG9yZTppZGVudCkgPT4geworKyAgICAgICAgLy8vIFNhZmV0 eTogc3JjIG11c3QgYmUgdmFsaWQgZm9yIDMyIGJ5dGVzIG9mIGFsaWduZWQgdTh4MTYgcmVhZAor KyAgICAgICAgLy8vIGRzdCBtdXN0IGJlIHZhbGlkIGZvciAzMiBieXRlcyBvZiB1bmFsaWduZWQg d3JpdGUgYWNjb3JkaW5nIHRvCisrICAgICAgICAvLy8gdGhlICRzdG9yZSBmbiwgd2hpY2ggbWF5 IGFsbG93IGZvciB1bmFsaWduZWQgd3JpdGVzIG9yIHJlcXVpcmUKKysgICAgICAgIC8vLyBhbGln bm1lbnQgdG8gZWl0aGVyIDE2eDggb3IgdTh4MTYuCisrICAgICAgICAvLy8KKysgICAgICAgIC8v LyBTYWZldHktdXNhYmxlIGludmFyaWFudDogUmV0dXJucyBTb21lKGluZGV4KSBpZiB0aGUgZWxl bWVudCBhdCBgaW5kZXhgIGlzIGludmFsaWQgQVNDSUkKKyAgICAgICAgICNbaW5saW5lKGFsd2F5 cyldCisgICAgICAgICBwdWIgdW5zYWZlIGZuICRuYW1lKHNyYzogKmNvbnN0IHU4LCBkc3Q6ICpt dXQgdTgpIC0+IE9wdGlvbjx1c2l6ZT4geworICAgICAgICAgICAgIGxldCBmaXJzdCA9IGxvYWQx Nl9hbGlnbmVkKHNyYyk7CisgICAgICAgICAgICAgbGV0IHNlY29uZCA9IGxvYWQxNl9hbGlnbmVk KHNyYy5hZGQoU0lNRF9TVFJJREVfU0laRSkpOworICAgICAgICAgICAgICRzdG9yZShkc3QsIGZp cnN0KTsKKyAgICAgICAgICAgICBpZiB1bmxpa2VseSghc2ltZF9pc19hc2NpaShmaXJzdCB8IHNl Y29uZCkpIHsKKysgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBtYXNrX2FzY2lpIHByb2R1Y2Vz IGEgbWFzayBvZiBhbGwgdGhlIGhpZ2ggYml0cy4KKyAgICAgICAgICAgICAgICAgbGV0IG1hc2tf Zmlyc3QgPSBtYXNrX2FzY2lpKGZpcnN0KTsKKyAgICAgICAgICAgICAgICAgaWYgbWFza19maXJz dCAhPSAwIHsKKysgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogb24gbGl0dGxlIGVuZGlh biBzeXN0ZW1zIHRoaXMgd2lsbCBiZSB0aGUgbnVtYmVyIG9mIGFzY2lpIGJ5dGVzCisrICAgICAg ICAgICAgICAgICAgICAvLyBiZWZvcmUgdGhlIGZpcnN0IG5vbi1hc2NpaSwgaS5lLiB2YWxpZCBm b3IgaW5kZXhpbmcgc3JjCisrICAgICAgICAgICAgICAgICAgICAvLyBUT0RPIFNBRkVUWTogV2hh dCBhYm91dCBiaWctZW5kaWFuIHN5c3RlbXM/CisgICAgICAgICAgICAgICAgICAgICByZXR1cm4g U29tZShtYXNrX2ZpcnN0LnRyYWlsaW5nX3plcm9zKCkgYXMgdXNpemUpOworICAgICAgICAgICAg ICAgICB9CisgICAgICAgICAgICAgICAgICRzdG9yZShkc3QuYWRkKFNJTURfU1RSSURFX1NJWkUp LCBzZWNvbmQpOworICAgICAgICAgICAgICAgICBsZXQgbWFza19zZWNvbmQgPSBtYXNrX2FzY2lp KHNlY29uZCk7CisrICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogb24gbGl0dGxlIGVuZGlhbiBz eXN0ZW1zIHRoaXMgd2lsbCBiZSB0aGUgbnVtYmVyIG9mIGFzY2lpIGJ5dGVzCisrICAgICAgICAg ICAgICAgIC8vIGJlZm9yZSB0aGUgZmlyc3Qgbm9uLWFzY2lpLCBpLmUuIHZhbGlkIGZvciBpbmRl eGluZyBzcmMKKyAgICAgICAgICAgICAgICAgcmV0dXJuIFNvbWUoU0lNRF9TVFJJREVfU0laRSAr IG1hc2tfc2Vjb25kLnRyYWlsaW5nX3plcm9zKCkgYXMgdXNpemUpOworICAgICAgICAgICAgIH0K KyAgICAgICAgICAgICAkc3RvcmUoZHN0LmFkZChTSU1EX1NUUklERV9TSVpFKSwgc2Vjb25kKTsK KyAgICAgICAgICAgICBOb25lCisgICAgICAgICB9CisgICAgIH07CisgfQorIAorICNbYWxsb3co dW51c2VkX21hY3JvcyldCisgbWFjcm9fcnVsZXMhIGFzY2lpX3RvX2Jhc2ljX2xhdGluX3NpbWRf c3RyaWRlIHsKKysgICAgLy8gU2FmZXR5OiBsb2FkL3N0b3JlIG11c3QgYmUgdmFsaWQgZm9yIDE2 IGJ5dGVzIG9mIHJlYWQvd3JpdGUsIHdoaWNoIG1heSBiZSB1bmFsaWduZWQuIChjYW5kaWRhdGVz OiBgKGxvYWR8c3RvcmUpKDE2fDgpXyh1bmFsaWduZWR8YWxpZ25lZClgIGZ1bmN0aW9ucykKKyAg ICAgKCRuYW1lOmlkZW50LCAkbG9hZDppZGVudCwgJHN0b3JlOmlkZW50KSA9PiB7CisrICAgICAg ICAvLy8gU2FmZXR5OiBzcmMgYW5kIGRzdCBtdXN0IGJlIHZhbGlkIGZvciAxNi8zMiBieXRlcyBv ZiByZWFkL3dyaXRlIGFjY29yZGluZyB0bworKyAgICAgICAgLy8vIHRoZSAkbG9hZC8kc3RvcmUg Zm4sIHdoaWNoIG1heSBhbGxvdyBmb3IgdW5hbGlnbmVkIHJlYWRzL3dyaXRlcyBvciByZXF1aXJl CisrICAgICAgICAvLy8gYWxpZ25tZW50IHRvIGVpdGhlciAxNng4IG9yIHU4eDE2LgorICAgICAg ICAgI1tpbmxpbmUoYWx3YXlzKV0KKyAgICAgICAgIHB1YiB1bnNhZmUgZm4gJG5hbWUoc3JjOiAq Y29uc3QgdTgsIGRzdDogKm11dCB1MTYpIC0+IGJvb2wgeworICAgICAgICAgICAgIGxldCBzaW1k ID0gJGxvYWQoc3JjKTsKKyAgICAgICAgICAgICBpZiAhc2ltZF9pc19hc2NpaShzaW1kKSB7Cisg ICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICB9CisgICAgICAgICAg ICAgbGV0IChmaXJzdCwgc2Vjb25kKSA9IHNpbWRfdW5wYWNrKHNpbWQpOworICAgICAgICAgICAg ICRzdG9yZShkc3QsIGZpcnN0KTsKKyAgICAgICAgICAgICAkc3RvcmUoZHN0LmFkZCg4KSwgc2Vj b25kKTsKKyAgICAgICAgICAgICB0cnVlCisgICAgICAgICB9CisgICAgIH07CisgfQorIAorICNb YWxsb3codW51c2VkX21hY3JvcyldCisgbWFjcm9fcnVsZXMhIGFzY2lpX3RvX2Jhc2ljX2xhdGlu X3NpbWRfZG91YmxlX3N0cmlkZSB7CisrICAgIC8vIFNhZmV0eTogc3RvcmUgbXVzdCBiZSB2YWxp ZCBmb3IgMTYgYnl0ZXMgb2Ygd3JpdGUsIHdoaWNoIG1heSBiZSB1bmFsaWduZWQKKyAgICAgKCRu YW1lOmlkZW50LCAkc3RvcmU6aWRlbnQpID0+IHsKKysgICAgICAgIC8vLyBTYWZldHk6IHNyYyBt dXN0IGJlIHZhbGlkIGZvciAyKlNJTURfU1RSSURFX1NJWkUgYnl0ZXMgb2YgYWxpZ25lZCByZWFk cywKKysgICAgICAgIC8vLyBhbGlnbmVkIHRvIGVpdGhlciAxNng4IG9yIHU4eDE2LgorKyAgICAg ICAgLy8vIGRzdCBtdXN0IGJlIHZhbGlkIGZvciAyKlNJTURfU1RSSURFX1NJWkUgYnl0ZXMgb2Yg YWxpZ25lZCBvciB1bmFsaWduZWQgcmVhZHMKKyAgICAgICAgICNbaW5saW5lKGFsd2F5cyldCisg ICAgICAgICBwdWIgdW5zYWZlIGZuICRuYW1lKHNyYzogKmNvbnN0IHU4LCBkc3Q6ICptdXQgdTE2 KSAtPiBPcHRpb248dXNpemU+IHsKKyAgICAgICAgICAgICBsZXQgZmlyc3QgPSBsb2FkMTZfYWxp Z25lZChzcmMpOworICAgICAgICAgICAgIGxldCBzZWNvbmQgPSBsb2FkMTZfYWxpZ25lZChzcmMu YWRkKFNJTURfU1RSSURFX1NJWkUpKTsKKyAgICAgICAgICAgICBsZXQgKGEsIGIpID0gc2ltZF91 bnBhY2soZmlyc3QpOworICAgICAgICAgICAgICRzdG9yZShkc3QsIGEpOworKyAgICAgICAgICAg IC8vIFNhZmV0eTogZGl2aWRlIGJ5IDIgc2luY2UgaXQncyBhIHUxNiBwb2ludGVyCisgICAgICAg ICAgICAgJHN0b3JlKGRzdC5hZGQoU0lNRF9TVFJJREVfU0laRSAvIDIpLCBiKTsKKyAgICAgICAg ICAgICBpZiB1bmxpa2VseSghc2ltZF9pc19hc2NpaShmaXJzdCB8IHNlY29uZCkpIHsKKyAgICAg ICAgICAgICAgICAgbGV0IG1hc2tfZmlyc3QgPSBtYXNrX2FzY2lpKGZpcnN0KTsKKyAgICAgICAg ICAgICAgICAgaWYgbWFza19maXJzdCAhPSAwIHsKKyAgICAgICAgICAgICAgICAgICAgIHJldHVy biBTb21lKG1hc2tfZmlyc3QudHJhaWxpbmdfemVyb3MoKSBhcyB1c2l6ZSk7CisgICAgICAgICAg ICAgICAgIH0KKyAgICAgICAgICAgICAgICAgbGV0IChjLCBkKSA9IHNpbWRfdW5wYWNrKHNlY29u ZCk7CisgICAgICAgICAgICAgICAgICRzdG9yZShkc3QuYWRkKFNJTURfU1RSSURFX1NJWkUpLCBj KTsKK0BAIC04MzIsNDcgKzEwNTUsNTkgQEAgbWFjcm9fcnVsZXMhIGFzY2lpX3RvX2Jhc2ljX2xh dGluX3NpbWRfZAorICAgICAgICAgICAgICRzdG9yZShkc3QuYWRkKFNJTURfU1RSSURFX1NJWkUg KyAoU0lNRF9TVFJJREVfU0laRSAvIDIpKSwgZCk7CisgICAgICAgICAgICAgTm9uZQorICAgICAg ICAgfQorICAgICB9OworIH0KKyAKKyAjW2FsbG93KHVudXNlZF9tYWNyb3MpXQorIG1hY3JvX3J1 bGVzISB1bnBhY2tfc2ltZF9zdHJpZGUgeworKyAgICAvLyBTYWZldHk6IGxvYWQvc3RvcmUgbXVz dCBiZSB2YWxpZCBmb3IgMTYgYnl0ZXMgb2YgcmVhZC93cml0ZSwgd2hpY2ggbWF5IGJlIHVuYWxp Z25lZC4gKGNhbmRpZGF0ZXM6IGAobG9hZHxzdG9yZSkoMTZ8OClfKHVuYWxpZ25lZHxhbGlnbmVk KWAgZnVuY3Rpb25zKQorICAgICAoJG5hbWU6aWRlbnQsICRsb2FkOmlkZW50LCAkc3RvcmU6aWRl bnQpID0+IHsKKysgICAgICAgIC8vLyBTYWZldHk6IHNyYyBhbmQgZHN0IG11c3QgYmUgdmFsaWQg Zm9yIDE2IGJ5dGVzIG9mIHJlYWQvd3JpdGUgYWNjb3JkaW5nIHRvCisrICAgICAgICAvLy8gdGhl ICRsb2FkLyRzdG9yZSBmbiwgd2hpY2ggbWF5IGFsbG93IGZvciB1bmFsaWduZWQgcmVhZHMvd3Jp dGVzIG9yIHJlcXVpcmUKKysgICAgICAgIC8vLyBhbGlnbm1lbnQgdG8gZWl0aGVyIDE2eDggb3Ig dTh4MTYuCisgICAgICAgICAjW2lubGluZShhbHdheXMpXQorICAgICAgICAgcHViIHVuc2FmZSBm biAkbmFtZShzcmM6ICpjb25zdCB1OCwgZHN0OiAqbXV0IHUxNikgeworICAgICAgICAgICAgIGxl dCBzaW1kID0gJGxvYWQoc3JjKTsKKyAgICAgICAgICAgICBsZXQgKGZpcnN0LCBzZWNvbmQpID0g c2ltZF91bnBhY2soc2ltZCk7CisgICAgICAgICAgICAgJHN0b3JlKGRzdCwgZmlyc3QpOworICAg ICAgICAgICAgICRzdG9yZShkc3QuYWRkKDgpLCBzZWNvbmQpOworICAgICAgICAgfQorICAgICB9 OworIH0KKyAKKyAjW2FsbG93KHVudXNlZF9tYWNyb3MpXQorIG1hY3JvX3J1bGVzISBiYXNpY19s YXRpbl90b19hc2NpaV9zaW1kX3N0cmlkZSB7CisrICAgIC8vIFNhZmV0eTogbG9hZC9zdG9yZSBt dXN0IGJlIHZhbGlkIGZvciAxNiBieXRlcyBvZiByZWFkL3dyaXRlLCB3aGljaCBtYXkgYmUgdW5h bGlnbmVkLiAoY2FuZGlkYXRlczogYChsb2FkfHN0b3JlKSgxNnw4KV8odW5hbGlnbmVkfGFsaWdu ZWQpYCBmdW5jdGlvbnMpCisgICAgICgkbmFtZTppZGVudCwgJGxvYWQ6aWRlbnQsICRzdG9yZTpp ZGVudCkgPT4geworKyAgICAgICAgLy8vIFNhZmV0eTogc3JjIGFuZCBkc3QgbXVzdCBiZSB2YWxp ZCBmb3IgMzIvMTYgYnl0ZXMgb2YgcmVhZC93cml0ZSBhY2NvcmRpbmcgdG8KKysgICAgICAgIC8v LyB0aGUgJGxvYWQvJHN0b3JlIGZuLCB3aGljaCBtYXkgYWxsb3cgZm9yIHVuYWxpZ25lZCByZWFk cy93cml0ZXMgb3IgcmVxdWlyZQorKyAgICAgICAgLy8vIGFsaWdubWVudCB0byBlaXRoZXIgMTZ4 OCBvciB1OHgxNi4KKyAgICAgICAgICNbaW5saW5lKGFsd2F5cyldCisgICAgICAgICBwdWIgdW5z YWZlIGZuICRuYW1lKHNyYzogKmNvbnN0IHUxNiwgZHN0OiAqbXV0IHU4KSAtPiBib29sIHsKKyAg ICAgICAgICAgICBsZXQgZmlyc3QgPSAkbG9hZChzcmMpOworICAgICAgICAgICAgIGxldCBzZWNv bmQgPSAkbG9hZChzcmMuYWRkKDgpKTsKKyAgICAgICAgICAgICBpZiBzaW1kX2lzX2Jhc2ljX2xh dGluKGZpcnN0IHwgc2Vjb25kKSB7CisgICAgICAgICAgICAgICAgICRzdG9yZShkc3QsIHNpbWRf cGFjayhmaXJzdCwgc2Vjb25kKSk7CisgICAgICAgICAgICAgICAgIHRydWUKKyAgICAgICAgICAg ICB9IGVsc2UgeworICAgICAgICAgICAgICAgICBmYWxzZQorICAgICAgICAgICAgIH0KKyAgICAg ICAgIH0KKyAgICAgfTsKKyB9CisgCisgI1thbGxvdyh1bnVzZWRfbWFjcm9zKV0KKyBtYWNyb19y dWxlcyEgcGFja19zaW1kX3N0cmlkZSB7CisrICAgIC8vIFNhZmV0eTogbG9hZC9zdG9yZSBtdXN0 IGJlIHZhbGlkIGZvciAxNiBieXRlcyBvZiByZWFkL3dyaXRlLCB3aGljaCBtYXkgYmUgdW5hbGln bmVkLiAoY2FuZGlkYXRlczogYChsb2FkfHN0b3JlKSgxNnw4KV8odW5hbGlnbmVkfGFsaWduZWQp YCBmdW5jdGlvbnMpCisgICAgICgkbmFtZTppZGVudCwgJGxvYWQ6aWRlbnQsICRzdG9yZTppZGVu dCkgPT4geworKyAgICAgICAgLy8vIFNhZmV0eTogc3JjIGFuZCBkc3QgbXVzdCBiZSB2YWxpZCBm b3IgMzIvMTYgYnl0ZXMgb2YgcmVhZC93cml0ZSBhY2NvcmRpbmcgdG8KKysgICAgICAgIC8vLyB0 aGUgJGxvYWQvJHN0b3JlIGZuLCB3aGljaCBtYXkgYWxsb3cgZm9yIHVuYWxpZ25lZCByZWFkcy93 cml0ZXMgb3IgcmVxdWlyZQorKyAgICAgICAgLy8vIGFsaWdubWVudCB0byBlaXRoZXIgMTZ4OCBv ciB1OHgxNi4KKyAgICAgICAgICNbaW5saW5lKGFsd2F5cyldCisgICAgICAgICBwdWIgdW5zYWZl IGZuICRuYW1lKHNyYzogKmNvbnN0IHUxNiwgZHN0OiAqbXV0IHU4KSB7CisgICAgICAgICAgICAg bGV0IGZpcnN0ID0gJGxvYWQoc3JjKTsKKyAgICAgICAgICAgICBsZXQgc2Vjb25kID0gJGxvYWQo c3JjLmFkZCg4KSk7CisgICAgICAgICAgICAgJHN0b3JlKGRzdCwgc2ltZF9wYWNrKGZpcnN0LCBz ZWNvbmQpKTsKKyAgICAgICAgIH0KKyAgICAgfTsKKyB9CitAQCAtODg4LDI0ICsxMTIzLDI4IEBA IGNmZ19pZiEgeworIC8vICAgICAgICBwdWIgY29uc3QgQUxJR05NRU5UOiB1c2l6ZSA9IDg7Cisg CisgICAgICAgICBwdWIgY29uc3QgQUxVX1NUUklERV9TSVpFOiB1c2l6ZSA9IDE2OworIAorICAg ICAgICAgcHViIGNvbnN0IEFMVV9BTElHTk1FTlQ6IHVzaXplID0gODsKKyAKKyAgICAgICAgIHB1 YiBjb25zdCBBTFVfQUxJR05NRU5UX01BU0s6IHVzaXplID0gNzsKKyAKKysgICAgICAgIC8vIFNh ZmV0eSBmb3Igc3RyaWRlIG1hY3JvczogV2Ugc3RpY2sgdG8gdGhlIGxvYWQ4X2FsaWduZWQvZXRj IGZhbWlseSBvZiBmdW5jdGlvbnMuIFdlIGNvbnNpc3RlbnRseSBwcm9kdWNlCisrICAgICAgICAv LyBuZWl0aGVyX3VuYWxpZ25lZCB2YXJpYW50cyB1c2luZyBvbmx5IHVuYWxpZ25lZCBpbnB1dHMu CisgICAgICAgICBhc2NpaV90b19hc2NpaV9zaW1kX3N0cmlkZSEoYXNjaWlfdG9fYXNjaWlfc3Ry aWRlX25laXRoZXJfYWxpZ25lZCwgbG9hZDE2X3VuYWxpZ25lZCwgc3RvcmUxNl91bmFsaWduZWQp OworIAorICAgICAgICAgYXNjaWlfdG9fYmFzaWNfbGF0aW5fc2ltZF9zdHJpZGUhKGFzY2lpX3Rv X2Jhc2ljX2xhdGluX3N0cmlkZV9uZWl0aGVyX2FsaWduZWQsIGxvYWQxNl91bmFsaWduZWQsIHN0 b3JlOF91bmFsaWduZWQpOworICAgICAgICAgdW5wYWNrX3NpbWRfc3RyaWRlISh1bnBhY2tfc3Ry aWRlX25laXRoZXJfYWxpZ25lZCwgbG9hZDE2X3VuYWxpZ25lZCwgc3RvcmU4X3VuYWxpZ25lZCk7 CisgCisgICAgICAgICBiYXNpY19sYXRpbl90b19hc2NpaV9zaW1kX3N0cmlkZSEoYmFzaWNfbGF0 aW5fdG9fYXNjaWlfc3RyaWRlX25laXRoZXJfYWxpZ25lZCwgbG9hZDhfdW5hbGlnbmVkLCBzdG9y ZTE2X3VuYWxpZ25lZCk7CisgICAgICAgICBwYWNrX3NpbWRfc3RyaWRlIShwYWNrX3N0cmlkZV9u ZWl0aGVyX2FsaWduZWQsIGxvYWQ4X3VuYWxpZ25lZCwgc3RvcmUxNl91bmFsaWduZWQpOworIAor KyAgICAgICAgLy8gU2FmZXR5IGZvciBjb252ZXJzaW9uIG1hY3JvczogV2UgdXNlIHRoZSB1bmFs aWduIG1hY3JvIHdpdGggdW5hbGlnbiBmdW5jdGlvbnMgYWJvdmUuIEFsbCBzdHJpZGUgZnVuY3Rp b25zIHdlcmUgcHJvZHVjZWQKKysgICAgICAgIC8vIGJ5IHN0cmlkZSBtYWNyb3MgdGhhdCB1bml2 ZXJzYWxseSBtdW5jaCBhIHNpbmdsZSBTSU1EX1NUUklERV9TSVpFIHdvcnRoIG9mIGVsZW1lbnRz LgorICAgICAgICAgYXNjaWlfc2ltZF91bmFsaWduIShhc2NpaV90b19hc2NpaSwgdTgsIHU4LCBh c2NpaV90b19hc2NpaV9zdHJpZGVfbmVpdGhlcl9hbGlnbmVkKTsKKyAgICAgICAgIGFzY2lpX3Np bWRfdW5hbGlnbiEoYXNjaWlfdG9fYmFzaWNfbGF0aW4sIHU4LCB1MTYsIGFzY2lpX3RvX2Jhc2lj X2xhdGluX3N0cmlkZV9uZWl0aGVyX2FsaWduZWQpOworICAgICAgICAgYXNjaWlfc2ltZF91bmFs aWduIShiYXNpY19sYXRpbl90b19hc2NpaSwgdTE2LCB1OCwgYmFzaWNfbGF0aW5fdG9fYXNjaWlf c3RyaWRlX25laXRoZXJfYWxpZ25lZCk7CisgICAgICAgICBsYXRpbjFfc2ltZF91bmFsaWduISh1 bnBhY2tfbGF0aW4xLCB1OCwgdTE2LCB1bnBhY2tfc3RyaWRlX25laXRoZXJfYWxpZ25lZCk7Cisg ICAgICAgICBsYXRpbjFfc2ltZF91bmFsaWduIShwYWNrX2xhdGluMSwgdTE2LCB1OCwgcGFja19z dHJpZGVfbmVpdGhlcl9hbGlnbmVkKTsKKyAgICAgfSBlbHNlIGlmICNbY2ZnKGFsbChmZWF0dXJl ID0gInNpbWQtYWNjZWwiLCB0YXJnZXRfZW5kaWFuID0gImxpdHRsZSIsIHRhcmdldF9mZWF0dXJl ID0gIm5lb24iKSldIHsKKyAgICAgICAgIC8vIFNJTUQgd2l0aCBkaWZmZXJlbnQgaW5zdHJ1Y3Rp b25zIGZvciBhbGlnbmVkIGFuZCB1bmFsaWduZWQgbG9hZHMgYW5kIHN0b3Jlcy4KKyAgICAgICAg IC8vCitAQCAtOTE0LDE2ICsxMTUzLDE5IEBAIGNmZ19pZiEgeworICAgICAgICAgLy8gYnV0IHRo ZSBiZW5jaG1hcmsgcmVzdWx0cyBJIHNlZSBkb24ndCBhZ3JlZS4KKyAKKyAgICAgICAgIHB1YiBj b25zdCBTSU1EX1NUUklERV9TSVpFOiB1c2l6ZSA9IDE2OworIAorICAgICAgICAgcHViIGNvbnN0 IE1BWF9TVFJJREVfU0laRTogdXNpemUgPSAxNjsKKyAKKyAgICAgICAgIHB1YiBjb25zdCBTSU1E X0FMSUdOTUVOVF9NQVNLOiB1c2l6ZSA9IDE1OworIAorKyAgICAgICAgLy8gU2FmZXR5IGZvciBz dHJpZGUgbWFjcm9zOiBXZSBzdGljayB0byB0aGUgbG9hZDhfYWxpZ25lZC9ldGMgZmFtaWx5IG9m IGZ1bmN0aW9ucy4gV2UgY29uc2lzdGVudGx5IG5hbWUKKysgICAgICAgIC8vIGFsaWduZWQvdW5h bGlnbmVkIGZ1bmN0aW9ucyBhY2NvcmRpbmcgdG8gc3JjL2RzdCBiZWluZyBhbGlnbmVkL3VuYWxp Z25lZAorKworICAgICAgICAgYXNjaWlfdG9fYXNjaWlfc2ltZF9zdHJpZGUhKGFzY2lpX3RvX2Fz Y2lpX3N0cmlkZV9ib3RoX2FsaWduZWQsIGxvYWQxNl9hbGlnbmVkLCBzdG9yZTE2X2FsaWduZWQp OworICAgICAgICAgYXNjaWlfdG9fYXNjaWlfc2ltZF9zdHJpZGUhKGFzY2lpX3RvX2FzY2lpX3N0 cmlkZV9zcmNfYWxpZ25lZCwgbG9hZDE2X2FsaWduZWQsIHN0b3JlMTZfdW5hbGlnbmVkKTsKKyAg ICAgICAgIGFzY2lpX3RvX2FzY2lpX3NpbWRfc3RyaWRlIShhc2NpaV90b19hc2NpaV9zdHJpZGVf ZHN0X2FsaWduZWQsIGxvYWQxNl91bmFsaWduZWQsIHN0b3JlMTZfYWxpZ25lZCk7CisgICAgICAg ICBhc2NpaV90b19hc2NpaV9zaW1kX3N0cmlkZSEoYXNjaWlfdG9fYXNjaWlfc3RyaWRlX25laXRo ZXJfYWxpZ25lZCwgbG9hZDE2X3VuYWxpZ25lZCwgc3RvcmUxNl91bmFsaWduZWQpOworIAorICAg ICAgICAgYXNjaWlfdG9fYmFzaWNfbGF0aW5fc2ltZF9zdHJpZGUhKGFzY2lpX3RvX2Jhc2ljX2xh dGluX3N0cmlkZV9ib3RoX2FsaWduZWQsIGxvYWQxNl9hbGlnbmVkLCBzdG9yZThfYWxpZ25lZCk7 CisgICAgICAgICBhc2NpaV90b19iYXNpY19sYXRpbl9zaW1kX3N0cmlkZSEoYXNjaWlfdG9fYmFz aWNfbGF0aW5fc3RyaWRlX3NyY19hbGlnbmVkLCBsb2FkMTZfYWxpZ25lZCwgc3RvcmU4X3VuYWxp Z25lZCk7CisgICAgICAgICBhc2NpaV90b19iYXNpY19sYXRpbl9zaW1kX3N0cmlkZSEoYXNjaWlf dG9fYmFzaWNfbGF0aW5fc3RyaWRlX2RzdF9hbGlnbmVkLCBsb2FkMTZfdW5hbGlnbmVkLCBzdG9y ZThfYWxpZ25lZCk7CitAQCAtOTM5LDM2ICsxMTgxLDQzIEBAIGNmZ19pZiEgeworICAgICAgICAg YmFzaWNfbGF0aW5fdG9fYXNjaWlfc2ltZF9zdHJpZGUhKGJhc2ljX2xhdGluX3RvX2FzY2lpX3N0 cmlkZV9kc3RfYWxpZ25lZCwgbG9hZDhfdW5hbGlnbmVkLCBzdG9yZTE2X2FsaWduZWQpOworICAg ICAgICAgYmFzaWNfbGF0aW5fdG9fYXNjaWlfc2ltZF9zdHJpZGUhKGJhc2ljX2xhdGluX3RvX2Fz Y2lpX3N0cmlkZV9uZWl0aGVyX2FsaWduZWQsIGxvYWQ4X3VuYWxpZ25lZCwgc3RvcmUxNl91bmFs aWduZWQpOworIAorICAgICAgICAgcGFja19zaW1kX3N0cmlkZSEocGFja19zdHJpZGVfYm90aF9h bGlnbmVkLCBsb2FkOF9hbGlnbmVkLCBzdG9yZTE2X2FsaWduZWQpOworICAgICAgICAgcGFja19z aW1kX3N0cmlkZSEocGFja19zdHJpZGVfc3JjX2FsaWduZWQsIGxvYWQ4X2FsaWduZWQsIHN0b3Jl MTZfdW5hbGlnbmVkKTsKKyAgICAgICAgIHBhY2tfc2ltZF9zdHJpZGUhKHBhY2tfc3RyaWRlX2Rz dF9hbGlnbmVkLCBsb2FkOF91bmFsaWduZWQsIHN0b3JlMTZfYWxpZ25lZCk7CisgICAgICAgICBw YWNrX3NpbWRfc3RyaWRlIShwYWNrX3N0cmlkZV9uZWl0aGVyX2FsaWduZWQsIGxvYWQ4X3VuYWxp Z25lZCwgc3RvcmUxNl91bmFsaWduZWQpOworIAorKyAgICAgICAgLy8gU2FmZXR5IGZvciBjb252 ZXJzaW9uIG1hY3JvczogV2UgdXNlIHRoZSBjb3JyZWN0IHBhdHRlcm4gb2YgYm90aC9zcmMvZHN0 L25laXRoZXIgaGVyZS4gQWxsIHN0cmlkZSBmdW5jdGlvbnMgd2VyZSBwcm9kdWNlZAorKyAgICAg ICAgLy8gYnkgc3RyaWRlIG1hY3JvcyB0aGF0IHVuaXZlcnNhbGx5IG11bmNoIGEgc2luZ2xlIFNJ TURfU1RSSURFX1NJWkUgd29ydGggb2YgZWxlbWVudHMuCisrCisgICAgICAgICBhc2NpaV9zaW1k X2NoZWNrX2FsaWduIShhc2NpaV90b19hc2NpaSwgdTgsIHU4LCBhc2NpaV90b19hc2NpaV9zdHJp ZGVfYm90aF9hbGlnbmVkLCBhc2NpaV90b19hc2NpaV9zdHJpZGVfc3JjX2FsaWduZWQsIGFzY2lp X3RvX2FzY2lpX3N0cmlkZV9kc3RfYWxpZ25lZCwgYXNjaWlfdG9fYXNjaWlfc3RyaWRlX25laXRo ZXJfYWxpZ25lZCk7CisgICAgICAgICBhc2NpaV9zaW1kX2NoZWNrX2FsaWduIShhc2NpaV90b19i YXNpY19sYXRpbiwgdTgsIHUxNiwgYXNjaWlfdG9fYmFzaWNfbGF0aW5fc3RyaWRlX2JvdGhfYWxp Z25lZCwgYXNjaWlfdG9fYmFzaWNfbGF0aW5fc3RyaWRlX3NyY19hbGlnbmVkLCBhc2NpaV90b19i YXNpY19sYXRpbl9zdHJpZGVfZHN0X2FsaWduZWQsIGFzY2lpX3RvX2Jhc2ljX2xhdGluX3N0cmlk ZV9uZWl0aGVyX2FsaWduZWQpOworICAgICAgICAgYXNjaWlfc2ltZF9jaGVja19hbGlnbiEoYmFz aWNfbGF0aW5fdG9fYXNjaWksIHUxNiwgdTgsIGJhc2ljX2xhdGluX3RvX2FzY2lpX3N0cmlkZV9i b3RoX2FsaWduZWQsIGJhc2ljX2xhdGluX3RvX2FzY2lpX3N0cmlkZV9zcmNfYWxpZ25lZCwgYmFz aWNfbGF0aW5fdG9fYXNjaWlfc3RyaWRlX2RzdF9hbGlnbmVkLCBiYXNpY19sYXRpbl90b19hc2Np aV9zdHJpZGVfbmVpdGhlcl9hbGlnbmVkKTsKKyAgICAgICAgIGxhdGluMV9zaW1kX2NoZWNrX2Fs aWduISh1bnBhY2tfbGF0aW4xLCB1OCwgdTE2LCB1bnBhY2tfc3RyaWRlX2JvdGhfYWxpZ25lZCwg dW5wYWNrX3N0cmlkZV9zcmNfYWxpZ25lZCwgdW5wYWNrX3N0cmlkZV9kc3RfYWxpZ25lZCwgdW5w YWNrX3N0cmlkZV9uZWl0aGVyX2FsaWduZWQpOworICAgICAgICAgbGF0aW4xX3NpbWRfY2hlY2tf YWxpZ24hKHBhY2tfbGF0aW4xLCB1MTYsIHU4LCBwYWNrX3N0cmlkZV9ib3RoX2FsaWduZWQsIHBh Y2tfc3RyaWRlX3NyY19hbGlnbmVkLCBwYWNrX3N0cmlkZV9kc3RfYWxpZ25lZCwgcGFja19zdHJp ZGVfbmVpdGhlcl9hbGlnbmVkKTsKKyAgICAgfSBlbHNlIGlmICNbY2ZnKGFsbChmZWF0dXJlID0g InNpbWQtYWNjZWwiLCB0YXJnZXRfZmVhdHVyZSA9ICJzc2UyIikpXSB7CisgICAgICAgICAvLyBT SU1EIHdpdGggZGlmZmVyZW50IGluc3RydWN0aW9ucyBmb3IgYWxpZ25lZCBhbmQgdW5hbGlnbmVk IGxvYWRzIGFuZCBzdG9yZXMuCisgICAgICAgICAvLworICAgICAgICAgLy8gTmV3ZXIgbWljcm9h cmNoaXRlY3R1cmVzIGFyZSBub3Qgc3VwcG9zZWQgdG8gaGF2ZSBhIHBlcmZvcm1hbmNlIGRpZmZl cmVuY2UgYmV0d2VlbgorICAgICAgICAgLy8gYWxpZ25lZCBhbmQgdW5hbGlnbmVkIFNTRTIgbG9h ZHMgYW5kIHN0b3JlcyB3aGVuIHRoZSBhZGRyZXNzIGlzIGFjdHVhbGx5IGFsaWduZWQsCisgICAg ICAgICAvLyBidXQgdGhlIGJlbmNobWFyayByZXN1bHRzIEkgc2VlIGRvbid0IGFncmVlLgorIAor ICAgICAgICAgcHViIGNvbnN0IFNJTURfU1RSSURFX1NJWkU6IHVzaXplID0gMTY7CisgCisrICAg ICAgICAvLy8gU2FmZXR5LXVzYWJsZSBpbnZhcmlhbnQ6IFRoaXMgc2hvdWxkIGJlIGlkZW50aWNh bCB0byBTSU1EX1NUUklERV9TSVpFICh1c2VkIGJ5IGFzY2lpX3NpbWRfY2hlY2tfYWxpZ25fdW5y b2xsZWQpCisgICAgICAgICBwdWIgY29uc3QgU0lNRF9BTElHTk1FTlQ6IHVzaXplID0gMTY7Cisg CisgICAgICAgICBwdWIgY29uc3QgTUFYX1NUUklERV9TSVpFOiB1c2l6ZSA9IDE2OworIAorICAg ICAgICAgcHViIGNvbnN0IFNJTURfQUxJR05NRU5UX01BU0s6IHVzaXplID0gMTU7CisgCisrICAg ICAgICAvLyBTYWZldHkgZm9yIHN0cmlkZSBtYWNyb3M6IFdlIHN0aWNrIHRvIHRoZSBsb2FkOF9h bGlnbmVkL2V0YyBmYW1pbHkgb2YgZnVuY3Rpb25zLiBXZSBjb25zaXN0ZW50bHkgbmFtZQorKyAg ICAgICAgLy8gYWxpZ25lZC91bmFsaWduZWQgZnVuY3Rpb25zIGFjY29yZGluZyB0byBzcmMvZHN0 IGJlaW5nIGFsaWduZWQvdW5hbGlnbmVkCisrCisgICAgICAgICBhc2NpaV90b19hc2NpaV9zaW1k X2RvdWJsZV9zdHJpZGUhKGFzY2lpX3RvX2FzY2lpX3NpbWRfZG91YmxlX3N0cmlkZV9ib3RoX2Fs aWduZWQsIHN0b3JlMTZfYWxpZ25lZCk7CisgICAgICAgICBhc2NpaV90b19hc2NpaV9zaW1kX2Rv dWJsZV9zdHJpZGUhKGFzY2lpX3RvX2FzY2lpX3NpbWRfZG91YmxlX3N0cmlkZV9zcmNfYWxpZ25l ZCwgc3RvcmUxNl91bmFsaWduZWQpOworIAorICAgICAgICAgYXNjaWlfdG9fYmFzaWNfbGF0aW5f c2ltZF9kb3VibGVfc3RyaWRlIShhc2NpaV90b19iYXNpY19sYXRpbl9zaW1kX2RvdWJsZV9zdHJp ZGVfYm90aF9hbGlnbmVkLCBzdG9yZThfYWxpZ25lZCk7CisgICAgICAgICBhc2NpaV90b19iYXNp Y19sYXRpbl9zaW1kX2RvdWJsZV9zdHJpZGUhKGFzY2lpX3RvX2Jhc2ljX2xhdGluX3NpbWRfZG91 YmxlX3N0cmlkZV9zcmNfYWxpZ25lZCwgc3RvcmU4X3VuYWxpZ25lZCk7CisgCisgICAgICAgICBh c2NpaV90b19hc2NpaV9zaW1kX3N0cmlkZSEoYXNjaWlfdG9fYXNjaWlfc3RyaWRlX2JvdGhfYWxp Z25lZCwgbG9hZDE2X2FsaWduZWQsIHN0b3JlMTZfYWxpZ25lZCk7CisgICAgICAgICBhc2NpaV90 b19hc2NpaV9zaW1kX3N0cmlkZSEoYXNjaWlfdG9fYXNjaWlfc3RyaWRlX3NyY19hbGlnbmVkLCBs b2FkMTZfYWxpZ25lZCwgc3RvcmUxNl91bmFsaWduZWQpOworQEAgLTk4NCwzMyArMTIzMyw0MyBA QCBjZmdfaWYhIHsKKyAgICAgICAgIGJhc2ljX2xhdGluX3RvX2FzY2lpX3NpbWRfc3RyaWRlIShi YXNpY19sYXRpbl90b19hc2NpaV9zdHJpZGVfYm90aF9hbGlnbmVkLCBsb2FkOF9hbGlnbmVkLCBz dG9yZTE2X2FsaWduZWQpOworICAgICAgICAgYmFzaWNfbGF0aW5fdG9fYXNjaWlfc2ltZF9zdHJp ZGUhKGJhc2ljX2xhdGluX3RvX2FzY2lpX3N0cmlkZV9zcmNfYWxpZ25lZCwgbG9hZDhfYWxpZ25l ZCwgc3RvcmUxNl91bmFsaWduZWQpOworICAgICAgICAgYmFzaWNfbGF0aW5fdG9fYXNjaWlfc2lt ZF9zdHJpZGUhKGJhc2ljX2xhdGluX3RvX2FzY2lpX3N0cmlkZV9kc3RfYWxpZ25lZCwgbG9hZDhf dW5hbGlnbmVkLCBzdG9yZTE2X2FsaWduZWQpOworICAgICAgICAgYmFzaWNfbGF0aW5fdG9fYXNj aWlfc2ltZF9zdHJpZGUhKGJhc2ljX2xhdGluX3RvX2FzY2lpX3N0cmlkZV9uZWl0aGVyX2FsaWdu ZWQsIGxvYWQ4X3VuYWxpZ25lZCwgc3RvcmUxNl91bmFsaWduZWQpOworIAorICAgICAgICAgcGFj a19zaW1kX3N0cmlkZSEocGFja19zdHJpZGVfYm90aF9hbGlnbmVkLCBsb2FkOF9hbGlnbmVkLCBz dG9yZTE2X2FsaWduZWQpOworICAgICAgICAgcGFja19zaW1kX3N0cmlkZSEocGFja19zdHJpZGVf c3JjX2FsaWduZWQsIGxvYWQ4X2FsaWduZWQsIHN0b3JlMTZfdW5hbGlnbmVkKTsKKyAKKysgICAg ICAgIC8vIFNhZmV0eSBmb3IgY29udmVyc2lvbiBtYWNyb3M6IFdlIHVzZSB0aGUgY29ycmVjdCBw YXR0ZXJuIG9mIGJvdGgvc3JjL2RzdC9uZWl0aGVyL2RvdWJsZV9ib3RoL2RvdWJsZV9zcmMgaGVy ZS4gQWxsIHN0cmlkZSBmdW5jdGlvbnMgd2VyZSBwcm9kdWNlZAorKyAgICAgICAgLy8gYnkgc3Ry aWRlIG1hY3JvcyB0aGF0IHVuaXZlcnNhbGx5IG11bmNoIGEgc2luZ2xlIFNJTURfU1RSSURFX1NJ WkUgd29ydGggb2YgZWxlbWVudHMuCisrCisgICAgICAgICBhc2NpaV9zaW1kX2NoZWNrX2FsaWdu X3Vucm9sbGVkIShhc2NpaV90b19hc2NpaSwgdTgsIHU4LCBhc2NpaV90b19hc2NpaV9zdHJpZGVf Ym90aF9hbGlnbmVkLCBhc2NpaV90b19hc2NpaV9zdHJpZGVfc3JjX2FsaWduZWQsIGFzY2lpX3Rv X2FzY2lpX3N0cmlkZV9uZWl0aGVyX2FsaWduZWQsIGFzY2lpX3RvX2FzY2lpX3NpbWRfZG91Ymxl X3N0cmlkZV9ib3RoX2FsaWduZWQsIGFzY2lpX3RvX2FzY2lpX3NpbWRfZG91YmxlX3N0cmlkZV9z cmNfYWxpZ25lZCk7CisgICAgICAgICBhc2NpaV9zaW1kX2NoZWNrX2FsaWduX3Vucm9sbGVkIShh c2NpaV90b19iYXNpY19sYXRpbiwgdTgsIHUxNiwgYXNjaWlfdG9fYmFzaWNfbGF0aW5fc3RyaWRl X2JvdGhfYWxpZ25lZCwgYXNjaWlfdG9fYmFzaWNfbGF0aW5fc3RyaWRlX3NyY19hbGlnbmVkLCBh c2NpaV90b19iYXNpY19sYXRpbl9zdHJpZGVfbmVpdGhlcl9hbGlnbmVkLCBhc2NpaV90b19iYXNp Y19sYXRpbl9zaW1kX2RvdWJsZV9zdHJpZGVfYm90aF9hbGlnbmVkLCBhc2NpaV90b19iYXNpY19s YXRpbl9zaW1kX2RvdWJsZV9zdHJpZGVfc3JjX2FsaWduZWQpOworIAorICAgICAgICAgYXNjaWlf c2ltZF9jaGVja19hbGlnbiEoYmFzaWNfbGF0aW5fdG9fYXNjaWksIHUxNiwgdTgsIGJhc2ljX2xh dGluX3RvX2FzY2lpX3N0cmlkZV9ib3RoX2FsaWduZWQsIGJhc2ljX2xhdGluX3RvX2FzY2lpX3N0 cmlkZV9zcmNfYWxpZ25lZCwgYmFzaWNfbGF0aW5fdG9fYXNjaWlfc3RyaWRlX2RzdF9hbGlnbmVk LCBiYXNpY19sYXRpbl90b19hc2NpaV9zdHJpZGVfbmVpdGhlcl9hbGlnbmVkKTsKKyAgICAgICAg IGxhdGluMV9zaW1kX2NoZWNrX2FsaWduX3Vucm9sbGVkISh1bnBhY2tfbGF0aW4xLCB1OCwgdTE2 LCB1bnBhY2tfc3RyaWRlX2JvdGhfYWxpZ25lZCwgdW5wYWNrX3N0cmlkZV9zcmNfYWxpZ25lZCwg dW5wYWNrX3N0cmlkZV9kc3RfYWxpZ25lZCwgdW5wYWNrX3N0cmlkZV9uZWl0aGVyX2FsaWduZWQp OworICAgICAgICAgbGF0aW4xX3NpbWRfY2hlY2tfYWxpZ25fdW5yb2xsZWQhKHBhY2tfbGF0aW4x LCB1MTYsIHU4LCBwYWNrX3N0cmlkZV9ib3RoX2FsaWduZWQsIHBhY2tfc3RyaWRlX3NyY19hbGln bmVkLCBwYWNrX3N0cmlkZV9kc3RfYWxpZ25lZCwgcGFja19zdHJpZGVfbmVpdGhlcl9hbGlnbmVk KTsKKyAgICAgfSBlbHNlIGlmICNbY2ZnKGFsbCh0YXJnZXRfZW5kaWFuID0gImxpdHRsZSIsIHRh cmdldF9wb2ludGVyX3dpZHRoID0gIjY0IikpXSB7CisgICAgICAgICAvLyBBbGlnbmVkIEFMVSB3 b3JkLCBsaXR0bGUtZW5kaWFuLCA2NC1iaXQKKyAKKysgICAgICAgIC8vLyBTYWZldHkgaW52YXJp YW50OiB0aGlzIGlzIHRoZSBhbW91bnQgb2YgYnl0ZXMgY29uc3VtZWQgYnkKKysgICAgICAgIC8v LyB1bnBhY2tfYWx1LiBUaGlzIHdpbGwgYmUgdHdpY2UgdGhlIHBvaW50ZXIgd2lkdGgsIGFzIGl0 IGNvbnN1bWVzIHR3byB1c2l6ZXMuCisrICAgICAgICAvLy8gVGhpcyBpcyBhbHNvIHRoZSBudW1i ZXIgb2YgYnl0ZXMgcHJvZHVjZWQgYnkgcGFja19hbHUuCisrICAgICAgICAvLy8gVGhpcyBpcyBh bHNvIHRoZSBudW1iZXIgb2YgdTE2IGNvZGUgdW5pdHMgcHJvZHVjZWQvY29uc3VtZWQgYnkgdW5w YWNrX2FsdS9wYWNrX2FsdSByZXNwZWN0aXZlbHkuCisgICAgICAgICBwdWIgY29uc3QgQUxVX1NU UklERV9TSVpFOiB1c2l6ZSA9IDE2OworIAorICAgICAgICAgcHViIGNvbnN0IE1BWF9TVFJJREVf U0laRTogdXNpemUgPSAxNjsKKyAKKysgICAgICAgIC8vIFNhZmV0eSBpbnZhcmlhbnQ6IHRoaXMg aXMgdGhlIHBvaW50ZXIgd2lkdGggaW4gYnl0ZXMKKyAgICAgICAgIHB1YiBjb25zdCBBTFVfQUxJ R05NRU5UOiB1c2l6ZSA9IDg7CisgCisrICAgICAgICAvLyBTYWZldHkgaW52YXJpYW50OiB0aGlz IGlzIGEgbWFzayBmb3IgZ2V0dGluZyB0aGUgYml0cyBvZiBhIHBvaW50ZXIgbm90IGFsaWduZWQg dG8gQUxVX0FMSUdOTUVOVAorICAgICAgICAgcHViIGNvbnN0IEFMVV9BTElHTk1FTlRfTUFTSzog dXNpemUgPSA3OworIAorKyAgICAgICAgLy8vIFNhZmV0eTogZHN0IG11c3QgcG9pbnQgdG8gdmFs aWQgc3BhY2UgZm9yIHdyaXRpbmcgZm91ciBgdXNpemVgcworICAgICAgICAgI1tpbmxpbmUoYWx3 YXlzKV0KKyAgICAgICAgIHVuc2FmZSBmbiB1bnBhY2tfYWx1KHdvcmQ6IHVzaXplLCBzZWNvbmRf d29yZDogdXNpemUsIGRzdDogKm11dCB1c2l6ZSkgeworICAgICAgICAgICAgIGxldCBmaXJzdCA9 ICgoMHgwMDAwXzAwMDBfRkYwMF8wMDAwdXNpemUgJiB3b3JkKSA8PCAyNCkgfAorICAgICAgICAg ICAgICAgICAgICAgICAgICgoMHgwMDAwXzAwMDBfMDBGRl8wMDAwdXNpemUgJiB3b3JkKSA8PCAx NikgfAorICAgICAgICAgICAgICAgICAgICAgICAgICgoMHgwMDAwXzAwMDBfMDAwMF9GRjAwdXNp emUgJiB3b3JkKSA8PCA4KSB8CisgICAgICAgICAgICAgICAgICAgICAgICAgKDB4MDAwMF8wMDAw XzAwMDBfMDBGRnVzaXplICYgd29yZCk7CisgICAgICAgICAgICAgbGV0IHNlY29uZCA9ICgoMHhG RjAwXzAwMDBfMDAwMF8wMDAwdXNpemUgJiB3b3JkKSA+PiA4KSB8CisgICAgICAgICAgICAgICAg ICAgICAgICAgICgoMHgwMEZGXzAwMDBfMDAwMF8wMDAwdXNpemUgJiB3b3JkKSA+PiAxNikgfAor QEAgLTEwMTksMjIgKzEyNzgsMjQgQEAgY2ZnX2lmISB7CisgICAgICAgICAgICAgbGV0IHRoaXJk ID0gKCgweDAwMDBfMDAwMF9GRjAwXzAwMDB1c2l6ZSAmIHNlY29uZF93b3JkKSA8PCAyNCkgfAor ICAgICAgICAgICAgICAgICAgICAgICAgICgoMHgwMDAwXzAwMDBfMDBGRl8wMDAwdXNpemUgJiBz ZWNvbmRfd29yZCkgPDwgMTYpIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAoKDB4MDAwMF8w MDAwXzAwMDBfRkYwMHVzaXplICYgc2Vjb25kX3dvcmQpIDw8IDgpIHwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAoMHgwMDAwXzAwMDBfMDAwMF8wMEZGdXNpemUgJiBzZWNvbmRfd29yZCk7Cisg ICAgICAgICAgICAgbGV0IGZvdXJ0aCA9ICgoMHhGRjAwXzAwMDBfMDAwMF8wMDAwdXNpemUgJiBz ZWNvbmRfd29yZCkgPj4gOCkgfAorICAgICAgICAgICAgICAgICAgICAgICAgICAoKDB4MDBGRl8w MDAwXzAwMDBfMDAwMHVzaXplICYgc2Vjb25kX3dvcmQpID4+IDE2KSB8CisgICAgICAgICAgICAg ICAgICAgICAgICAgICgoMHgwMDAwX0ZGMDBfMDAwMF8wMDAwdXNpemUgJiBzZWNvbmRfd29yZCkg Pj4gMjQpIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKCgweDAwMDBfMDBGRl8wMDAwXzAw MDB1c2l6ZSAmIHNlY29uZF93b3JkKSA+PiAzMik7CisrICAgICAgICAgICAgLy8gU2FmZXR5OiBm biBpbnZhcmlhbnQgdXNlZCBoZXJlCisgICAgICAgICAgICAgKmRzdCA9IGZpcnN0OworICAgICAg ICAgICAgICooZHN0LmFkZCgxKSkgPSBzZWNvbmQ7CisgICAgICAgICAgICAgKihkc3QuYWRkKDIp KSA9IHRoaXJkOworICAgICAgICAgICAgICooZHN0LmFkZCgzKSkgPSBmb3VydGg7CisgICAgICAg ICB9CisgCisrICAgICAgICAvLy8gU2FmZXR5OiBkc3QgbXVzdCBwb2ludCB0byB2YWxpZCBzcGFj ZSBmb3Igd3JpdGluZyB0d28gYHVzaXplYHMKKyAgICAgICAgICNbaW5saW5lKGFsd2F5cyldCisg ICAgICAgICB1bnNhZmUgZm4gcGFja19hbHUoZmlyc3Q6IHVzaXplLCBzZWNvbmQ6IHVzaXplLCB0 aGlyZDogdXNpemUsIGZvdXJ0aDogdXNpemUsIGRzdDogKm11dCB1c2l6ZSkgeworICAgICAgICAg ICAgIGxldCB3b3JkID0gKCgweDAwRkZfMDAwMF8wMDAwXzAwMDB1c2l6ZSAmIHNlY29uZCkgPDwg OCkgfAorICAgICAgICAgICAgICAgICAgICAgICAgKCgweDAwMDBfMDBGRl8wMDAwXzAwMDB1c2l6 ZSAmIHNlY29uZCkgPDwgMTYpIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICgoMHgwMDAwXzAw MDBfMDBGRl8wMDAwdXNpemUgJiBzZWNvbmQpIDw8IDI0KSB8CisgICAgICAgICAgICAgICAgICAg ICAgICAoKDB4MDAwMF8wMDAwXzAwMDBfMDBGRnVzaXplICYgc2Vjb25kKSA8PCAzMikgfAorICAg ICAgICAgICAgICAgICAgICAgICAgKCgweDAwRkZfMDAwMF8wMDAwXzAwMDB1c2l6ZSAmIGZpcnN0 KSA+PiAyNCkgfAorICAgICAgICAgICAgICAgICAgICAgICAgKCgweDAwMDBfMDBGRl8wMDAwXzAw MDB1c2l6ZSAmIGZpcnN0KSA+PiAxNikgfAorQEAgLTEwNDMsNzAgKzEzMDQsODggQEAgY2ZnX2lm ISB7CisgICAgICAgICAgICAgbGV0IHNlY29uZF93b3JkID0gKCgweDAwRkZfMDAwMF8wMDAwXzAw MDB1c2l6ZSAmIGZvdXJ0aCkgPDwgOCkgfAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICgoMHgwMDAwXzAwRkZfMDAwMF8wMDAwdXNpemUgJiBmb3VydGgpIDw8IDE2KSB8CisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKCgweDAwMDBfMDAwMF8wMEZGXzAwMDB1c2l6ZSAmIGZv dXJ0aCkgPDwgMjQpIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKDB4MDAwMF8w MDAwXzAwMDBfMDBGRnVzaXplICYgZm91cnRoKSA8PCAzMikgfAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICgoMHgwMEZGXzAwMDBfMDAwMF8wMDAwdXNpemUgJiB0aGlyZCkgPj4gMjQp IHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKDB4MDAwMF8wMEZGXzAwMDBfMDAw MHVzaXplICYgdGhpcmQpID4+IDE2KSB8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KCgweDAwMDBfMDAwMF8wMEZGXzAwMDB1c2l6ZSAmIHRoaXJkKSA+PiA4KSB8CisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKDB4MDAwMF8wMDAwXzAwMDBfMDBGRnVzaXplICYgdGhpcmQp OworKyAgICAgICAgICAgIC8vIFNhZmV0eTogZm4gaW52YXJpYW50IHVzZWQgaGVyZQorICAgICAg ICAgICAgICpkc3QgPSB3b3JkOworICAgICAgICAgICAgICooZHN0LmFkZCgxKSkgPSBzZWNvbmRf d29yZDsKKyAgICAgICAgIH0KKyAgICAgfSBlbHNlIGlmICNbY2ZnKGFsbCh0YXJnZXRfZW5kaWFu ID0gImxpdHRsZSIsIHRhcmdldF9wb2ludGVyX3dpZHRoID0gIjMyIikpXSB7CisgICAgICAgICAv LyBBbGlnbmVkIEFMVSB3b3JkLCBsaXR0bGUtZW5kaWFuLCAzMi1iaXQKKyAKKysgICAgICAgIC8v LyBTYWZldHkgaW52YXJpYW50OiB0aGlzIGlzIHRoZSBhbW91bnQgb2YgYnl0ZXMgY29uc3VtZWQg YnkKKysgICAgICAgIC8vLyB1bnBhY2tfYWx1LiBUaGlzIHdpbGwgYmUgdHdpY2UgdGhlIHBvaW50 ZXIgd2lkdGgsIGFzIGl0IGNvbnN1bWVzIHR3byB1c2l6ZXMuCisrICAgICAgICAvLy8gVGhpcyBp cyBhbHNvIHRoZSBudW1iZXIgb2YgYnl0ZXMgcHJvZHVjZWQgYnkgcGFja19hbHUuCisrICAgICAg ICAvLy8gVGhpcyBpcyBhbHNvIHRoZSBudW1iZXIgb2YgdTE2IGNvZGUgdW5pdHMgcHJvZHVjZWQv Y29uc3VtZWQgYnkgdW5wYWNrX2FsdS9wYWNrX2FsdSByZXNwZWN0aXZlbHkuCisgICAgICAgICBw dWIgY29uc3QgQUxVX1NUUklERV9TSVpFOiB1c2l6ZSA9IDg7CisgCisgICAgICAgICBwdWIgY29u c3QgTUFYX1NUUklERV9TSVpFOiB1c2l6ZSA9IDg7CisgCisrICAgICAgICAvLyBTYWZldHkgaW52 YXJpYW50OiB0aGlzIGlzIHRoZSBwb2ludGVyIHdpZHRoIGluIGJ5dGVzCisgICAgICAgICBwdWIg Y29uc3QgQUxVX0FMSUdOTUVOVDogdXNpemUgPSA0OworIAorKyAgICAgICAgLy8gU2FmZXR5IGlu dmFyaWFudDogdGhpcyBpcyBhIG1hc2sgZm9yIGdldHRpbmcgdGhlIGJpdHMgb2YgYSBwb2ludGVy IG5vdCBhbGlnbmVkIHRvIEFMVV9BTElHTk1FTlQKKyAgICAgICAgIHB1YiBjb25zdCBBTFVfQUxJ R05NRU5UX01BU0s6IHVzaXplID0gMzsKKyAKKysgICAgICAgIC8vLyBTYWZldHk6IGRzdCBtdXN0 IHBvaW50IHRvIHZhbGlkIHNwYWNlIGZvciB3cml0aW5nIGZvdXIgYHVzaXplYHMKKyAgICAgICAg ICNbaW5saW5lKGFsd2F5cyldCisgICAgICAgICB1bnNhZmUgZm4gdW5wYWNrX2FsdSh3b3JkOiB1 c2l6ZSwgc2Vjb25kX3dvcmQ6IHVzaXplLCBkc3Q6ICptdXQgdXNpemUpIHsKKyAgICAgICAgICAg ICBsZXQgZmlyc3QgPSAoKDB4MDAwMF9GRjAwdXNpemUgJiB3b3JkKSA8PCA4KSB8CisgICAgICAg ICAgICAgICAgICAgICAgICAgKDB4MDAwMF8wMEZGdXNpemUgJiB3b3JkKTsKKyAgICAgICAgICAg ICBsZXQgc2Vjb25kID0gKCgweEZGMDBfMDAwMHVzaXplICYgd29yZCkgPj4gOCkgfAorICAgICAg ICAgICAgICAgICAgICAgICAgICAoKDB4MDBGRl8wMDAwdXNpemUgJiB3b3JkKSA+PiAxNik7Cisg ICAgICAgICAgICAgbGV0IHRoaXJkID0gKCgweDAwMDBfRkYwMHVzaXplICYgc2Vjb25kX3dvcmQp IDw8IDgpIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAoMHgwMDAwXzAwRkZ1c2l6ZSAmIHNl Y29uZF93b3JkKTsKKyAgICAgICAgICAgICBsZXQgZm91cnRoID0gKCgweEZGMDBfMDAwMHVzaXpl ICYgc2Vjb25kX3dvcmQpID4+IDgpIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKCgweDAw RkZfMDAwMHVzaXplICYgc2Vjb25kX3dvcmQpID4+IDE2KTsKKysgICAgICAgICAgICAvLyBTYWZl dHk6IGZuIGludmFyaWFudCB1c2VkIGhlcmUKKyAgICAgICAgICAgICAqZHN0ID0gZmlyc3Q7Cisg ICAgICAgICAgICAgKihkc3QuYWRkKDEpKSA9IHNlY29uZDsKKyAgICAgICAgICAgICAqKGRzdC5h ZGQoMikpID0gdGhpcmQ7CisgICAgICAgICAgICAgKihkc3QuYWRkKDMpKSA9IGZvdXJ0aDsKKyAg ICAgICAgIH0KKyAKKysgICAgICAgIC8vLyBTYWZldHk6IGRzdCBtdXN0IHBvaW50IHRvIHZhbGlk IHNwYWNlIGZvciB3cml0aW5nIHR3byBgdXNpemVgcworICAgICAgICAgI1tpbmxpbmUoYWx3YXlz KV0KKyAgICAgICAgIHVuc2FmZSBmbiBwYWNrX2FsdShmaXJzdDogdXNpemUsIHNlY29uZDogdXNp emUsIHRoaXJkOiB1c2l6ZSwgZm91cnRoOiB1c2l6ZSwgZHN0OiAqbXV0IHVzaXplKSB7CisgICAg ICAgICAgICAgbGV0IHdvcmQgPSAoKDB4MDBGRl8wMDAwdXNpemUgJiBzZWNvbmQpIDw8IDgpIHwK KyAgICAgICAgICAgICAgICAgICAgICAgICgoMHgwMDAwXzAwRkZ1c2l6ZSAmIHNlY29uZCkgPDwg MTYpIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICgoMHgwMEZGXzAwMDB1c2l6ZSAmIGZpcnN0 KSA+PiA4KSB8CisgICAgICAgICAgICAgICAgICAgICAgICAoMHgwMDAwXzAwRkZ1c2l6ZSAmIGZp cnN0KTsKKyAgICAgICAgICAgICBsZXQgc2Vjb25kX3dvcmQgPSAoKDB4MDBGRl8wMDAwdXNpemUg JiBmb3VydGgpIDw8IDgpIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKDB4MDAw MF8wMEZGdXNpemUgJiBmb3VydGgpIDw8IDE2KSB8CisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKCgweDAwRkZfMDAwMHVzaXplICYgdGhpcmQpID4+IDgpIHwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAoMHgwMDAwXzAwRkZ1c2l6ZSAmIHRoaXJkKTsKKysgICAgICAgICAg ICAvLyBTYWZldHk6IGZuIGludmFyaWFudCB1c2VkIGhlcmUKKyAgICAgICAgICAgICAqZHN0ID0g d29yZDsKKyAgICAgICAgICAgICAqKGRzdC5hZGQoMSkpID0gc2Vjb25kX3dvcmQ7CisgICAgICAg ICB9CisgICAgIH0gZWxzZSBpZiAjW2NmZyhhbGwodGFyZ2V0X2VuZGlhbiA9ICJiaWciLCB0YXJn ZXRfcG9pbnRlcl93aWR0aCA9ICI2NCIpKV0geworICAgICAgICAgLy8gQWxpZ25lZCBBTFUgd29y ZCwgYmlnLWVuZGlhbiwgNjQtYml0CisgCisrICAgICAgICAvLy8gU2FmZXR5IGludmFyaWFudDog dGhpcyBpcyB0aGUgYW1vdW50IG9mIGJ5dGVzIGNvbnN1bWVkIGJ5CisrICAgICAgICAvLy8gdW5w YWNrX2FsdS4gVGhpcyB3aWxsIGJlIHR3aWNlIHRoZSBwb2ludGVyIHdpZHRoLCBhcyBpdCBjb25z dW1lcyB0d28gdXNpemVzLgorKyAgICAgICAgLy8vIFRoaXMgaXMgYWxzbyB0aGUgbnVtYmVyIG9m IGJ5dGVzIHByb2R1Y2VkIGJ5IHBhY2tfYWx1LgorKyAgICAgICAgLy8vIFRoaXMgaXMgYWxzbyB0 aGUgbnVtYmVyIG9mIHUxNiBjb2RlIHVuaXRzIHByb2R1Y2VkL2NvbnN1bWVkIGJ5IHVucGFja19h bHUvcGFja19hbHUgcmVzcGVjdGl2ZWx5LgorICAgICAgICAgcHViIGNvbnN0IEFMVV9TVFJJREVf U0laRTogdXNpemUgPSAxNjsKKyAKKyAgICAgICAgIHB1YiBjb25zdCBNQVhfU1RSSURFX1NJWkU6 IHVzaXplID0gMTY7CisgCisrICAgICAgICAvLyBTYWZldHkgaW52YXJpYW50OiB0aGlzIGlzIHRo ZSBwb2ludGVyIHdpZHRoIGluIGJ5dGVzCisgICAgICAgICBwdWIgY29uc3QgQUxVX0FMSUdOTUVO VDogdXNpemUgPSA4OworIAorKyAgICAgICAgLy8gU2FmZXR5IGludmFyaWFudDogdGhpcyBpcyBh IG1hc2sgZm9yIGdldHRpbmcgdGhlIGJpdHMgb2YgYSBwb2ludGVyIG5vdCBhbGlnbmVkIHRvIEFM VV9BTElHTk1FTlQKKyAgICAgICAgIHB1YiBjb25zdCBBTFVfQUxJR05NRU5UX01BU0s6IHVzaXpl ID0gNzsKKyAKKysgICAgICAgIC8vLyBTYWZldHk6IGRzdCBtdXN0IHBvaW50IHRvIHZhbGlkIHNw YWNlIGZvciB3cml0aW5nIGZvdXIgYHVzaXplYHMKKyAgICAgICAgICNbaW5saW5lKGFsd2F5cyld CisgICAgICAgICB1bnNhZmUgZm4gdW5wYWNrX2FsdSh3b3JkOiB1c2l6ZSwgc2Vjb25kX3dvcmQ6 IHVzaXplLCBkc3Q6ICptdXQgdXNpemUpIHsKKyAgICAgICAgICAgICBsZXQgZmlyc3QgPSAoKDB4 RkYwMF8wMDAwXzAwMDBfMDAwMHVzaXplICYgd29yZCkgPj4gOCkgfAorICAgICAgICAgICAgICAg ICAgICAgICAgICAoKDB4MDBGRl8wMDAwXzAwMDBfMDAwMHVzaXplICYgd29yZCkgPj4gMTYpIHwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgKCgweDAwMDBfRkYwMF8wMDAwXzAwMDB1c2l6ZSAm IHdvcmQpID4+IDI0KSB8CisgICAgICAgICAgICAgICAgICAgICAgICAgICgoMHgwMDAwXzAwRkZf MDAwMF8wMDAwdXNpemUgJiB3b3JkKSA+PiAzMik7CisgICAgICAgICAgICAgbGV0IHNlY29uZCA9 ICgoMHgwMDAwXzAwMDBfRkYwMF8wMDAwdXNpemUgJiB3b3JkKSA8PCAyNCkgfAorICAgICAgICAg ICAgICAgICAgICAgICAgICgoMHgwMDAwXzAwMDBfMDBGRl8wMDAwdXNpemUgJiB3b3JkKSA8PCAx NikgfAorQEAgLTExMTUsMjIgKzEzOTQsMjQgQEAgY2ZnX2lmISB7CisgICAgICAgICAgICAgbGV0 IHRoaXJkID0gKCgweEZGMDBfMDAwMF8wMDAwXzAwMDB1c2l6ZSAmIHNlY29uZF93b3JkKSA+PiA4 KSB8CisgICAgICAgICAgICAgICAgICAgICAgICAgICgoMHgwMEZGXzAwMDBfMDAwMF8wMDAwdXNp emUgJiBzZWNvbmRfd29yZCkgPj4gMTYpIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKCgw eDAwMDBfRkYwMF8wMDAwXzAwMDB1c2l6ZSAmIHNlY29uZF93b3JkKSA+PiAyNCkgfAorICAgICAg ICAgICAgICAgICAgICAgICAgICAoKDB4MDAwMF8wMEZGXzAwMDBfMDAwMHVzaXplICYgc2Vjb25k X3dvcmQpID4+IDMyKTsKKyAgICAgICAgICAgICBsZXQgZm91cnRoID0gKCgweDAwMDBfMDAwMF9G RjAwXzAwMDB1c2l6ZSAmIHNlY29uZF93b3JkKSA8PCAyNCkgfAorICAgICAgICAgICAgICAgICAg ICAgICAgICgoMHgwMDAwXzAwMDBfMDBGRl8wMDAwdXNpemUgJiBzZWNvbmRfd29yZCkgPDwgMTYp IHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAoKDB4MDAwMF8wMDAwXzAwMDBfRkYwMHVzaXpl ICYgc2Vjb25kX3dvcmQpIDw8IDgpIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAoMHgwMDAw XzAwMDBfMDAwMF8wMEZGdXNpemUgJiBzZWNvbmRfd29yZCk7CisrICAgICAgICAgICAgLy8gU2Fm ZXR5OiBmbiBpbnZhcmlhbnQgdXNlZCBoZXJlCisgICAgICAgICAgICAgKmRzdCA9IGZpcnN0Owor ICAgICAgICAgICAgICooZHN0LmFkZCgxKSkgPSBzZWNvbmQ7CisgICAgICAgICAgICAgKihkc3Qu YWRkKDIpKSA9IHRoaXJkOworICAgICAgICAgICAgICooZHN0LmFkZCgzKSkgPSBmb3VydGg7Cisg ICAgICAgICB9CisgCisrICAgICAgICAvLy8gU2FmZXR5OiBkc3QgbXVzdCBwb2ludCB0byB2YWxp ZCBzcGFjZSBmb3Igd3JpdGluZyB0d28gYHVzaXplYHMKKyAgICAgICAgICNbaW5saW5lKGFsd2F5 cyldCisgICAgICAgICB1bnNhZmUgZm4gcGFja19hbHUoZmlyc3Q6IHVzaXplLCBzZWNvbmQ6IHVz aXplLCB0aGlyZDogdXNpemUsIGZvdXJ0aDogdXNpemUsIGRzdDogKm11dCB1c2l6ZSkgeworICAg ICAgICAgICAgIGxldCB3b3JkID0gKCgweDAwRkYwMDAwXzAwMDAwMDAwdXNpemUgJiBmaXJzdCkg PDwgOCkgfAorICAgICAgICAgICAgICAgICAgICAgICAgKCgweDAwMDAwMEZGXzAwMDAwMDAwdXNp emUgJiBmaXJzdCkgPDwgMTYpIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICgoMHgwMDAwMDAw MF8wMEZGMDAwMHVzaXplICYgZmlyc3QpIDw8IDI0KSB8CisgICAgICAgICAgICAgICAgICAgICAg ICAoKDB4MDAwMDAwMDBfMDAwMDAwRkZ1c2l6ZSAmIGZpcnN0KSA8PCAzMikgfAorICAgICAgICAg ICAgICAgICAgICAgICAgKCgweDAwRkYwMDAwXzAwMDAwMDAwdXNpemUgJiBzZWNvbmQpID4+IDI0 KSB8CisgICAgICAgICAgICAgICAgICAgICAgICAoKDB4MDAwMDAwRkZfMDAwMDAwMDB1c2l6ZSAm IHNlY29uZCkgPj4gMTYpIHwKK0BAIC0xMTM5LDY3ICsxNDIwLDgwIEBAIGNmZ19pZiEgeworICAg ICAgICAgICAgIGxldCBzZWNvbmRfd29yZCA9ICgoMHgwMEZGMDAwMF8wMDAwMDAwMHVzaXplICYg dGhpcmQpIDw8IDgpIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKDB4MDAwMDAw RkZfMDAwMDAwMDB1c2l6ZSAmIHRoaXJkKSA8PCAxNikgfAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICgoMHgwMDAwMDAwMF8wMEZGMDAwMHVzaXplICYgdGhpcmQpIDw8IDI0KSB8Cisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCgweDAwMDAwMDAwXzAwMDAwMEZGdXNpemUg JiB0aGlyZCkgPDwgMzIpIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKDB4MDBG RjAwMDBfMDAwMDAwMDB1c2l6ZSAmIGZvdXJ0aCkgPj4gMjQpIHwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAoKDB4MDAwMDAwRkZfMDAwMDAwMDB1c2l6ZSAmIGZvdXJ0aCkgPj4gMTYp IHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKDB4MDAwMDAwMDBfMDBGRjAwMDB1 c2l6ZSAmIGZvdXJ0aCkgPj4gOCkgfAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgw eDAwMDAwMDAwXzAwMDAwMEZGdXNpemUgJiAgZm91cnRoKTsKKysgICAgICAgICAgICAvLyBTYWZl dHk6IGZuIGludmFyaWFudCB1c2VkIGhlcmUKKyAgICAgICAgICAgICAqZHN0ID0gd29yZDsKKyAg ICAgICAgICAgICAqKGRzdC5hZGQoMSkpID0gc2Vjb25kX3dvcmQ7CisgICAgICAgICB9CisgICAg IH0gZWxzZSBpZiAjW2NmZyhhbGwodGFyZ2V0X2VuZGlhbiA9ICJiaWciLCB0YXJnZXRfcG9pbnRl cl93aWR0aCA9ICIzMiIpKV0geworICAgICAgICAgLy8gQWxpZ25lZCBBTFUgd29yZCwgYmlnLWVu ZGlhbiwgMzItYml0CisgCisrICAgICAgICAvLy8gU2FmZXR5IGludmFyaWFudDogdGhpcyBpcyB0 aGUgYW1vdW50IG9mIGJ5dGVzIGNvbnN1bWVkIGJ5CisrICAgICAgICAvLy8gdW5wYWNrX2FsdS4g VGhpcyB3aWxsIGJlIHR3aWNlIHRoZSBwb2ludGVyIHdpZHRoLCBhcyBpdCBjb25zdW1lcyB0d28g dXNpemVzLgorKyAgICAgICAgLy8vIFRoaXMgaXMgYWxzbyB0aGUgbnVtYmVyIG9mIGJ5dGVzIHBy b2R1Y2VkIGJ5IHBhY2tfYWx1LgorKyAgICAgICAgLy8vIFRoaXMgaXMgYWxzbyB0aGUgbnVtYmVy IG9mIHUxNiBjb2RlIHVuaXRzIHByb2R1Y2VkL2NvbnN1bWVkIGJ5IHVucGFja19hbHUvcGFja19h bHUgcmVzcGVjdGl2ZWx5LgorICAgICAgICAgcHViIGNvbnN0IEFMVV9TVFJJREVfU0laRTogdXNp emUgPSA4OworIAorICAgICAgICAgcHViIGNvbnN0IE1BWF9TVFJJREVfU0laRTogdXNpemUgPSA4 OworIAorKyAgICAgICAgLy8gU2FmZXR5IGludmFyaWFudDogdGhpcyBpcyB0aGUgcG9pbnRlciB3 aWR0aCBpbiBieXRlcworICAgICAgICAgcHViIGNvbnN0IEFMVV9BTElHTk1FTlQ6IHVzaXplID0g NDsKKyAKKysgICAgICAgIC8vIFNhZmV0eSBpbnZhcmlhbnQ6IHRoaXMgaXMgYSBtYXNrIGZvciBn ZXR0aW5nIHRoZSBiaXRzIG9mIGEgcG9pbnRlciBub3QgYWxpZ25lZCB0byBBTFVfQUxJR05NRU5U CisgICAgICAgICBwdWIgY29uc3QgQUxVX0FMSUdOTUVOVF9NQVNLOiB1c2l6ZSA9IDM7CisgCisr ICAgICAgICAvLy8gU2FmZXR5OiBkc3QgbXVzdCBwb2ludCB0byB2YWxpZCBzcGFjZSBmb3Igd3Jp dGluZyBmb3VyIGB1c2l6ZWBzCisgICAgICAgICAjW2lubGluZShhbHdheXMpXQorICAgICAgICAg dW5zYWZlIGZuIHVucGFja19hbHUod29yZDogdXNpemUsIHNlY29uZF93b3JkOiB1c2l6ZSwgZHN0 OiAqbXV0IHVzaXplKSB7CisgICAgICAgICAgICAgbGV0IGZpcnN0ID0gKCgweEZGMDBfMDAwMHVz aXplICYgd29yZCkgPj4gOCkgfAorICAgICAgICAgICAgICAgICAgICAgICAgICAoKDB4MDBGRl8w MDAwdXNpemUgJiB3b3JkKSA+PiAxNik7CisgICAgICAgICAgICAgbGV0IHNlY29uZCA9ICgoMHgw MDAwX0ZGMDB1c2l6ZSAmIHdvcmQpIDw8IDgpIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAo MHgwMDAwXzAwRkZ1c2l6ZSAmIHdvcmQpOworICAgICAgICAgICAgIGxldCB0aGlyZCA9ICgoMHhG RjAwXzAwMDB1c2l6ZSAmIHNlY29uZF93b3JkKSA+PiA4KSB8CisgICAgICAgICAgICAgICAgICAg ICAgICAgICgoMHgwMEZGXzAwMDB1c2l6ZSAmIHNlY29uZF93b3JkKSA+PiAxNik7CisgICAgICAg ICAgICAgbGV0IGZvdXJ0aCA9ICgoMHgwMDAwX0ZGMDB1c2l6ZSAmIHNlY29uZF93b3JkKSA8PCA4 KSB8CisgICAgICAgICAgICAgICAgICAgICAgICAgKDB4MDAwMF8wMEZGdXNpemUgJiBzZWNvbmRf d29yZCk7CisrICAgICAgICAgICAgLy8gU2FmZXR5OiBmbiBpbnZhcmlhbnQgdXNlZCBoZXJlCisg ICAgICAgICAgICAgKmRzdCA9IGZpcnN0OworICAgICAgICAgICAgICooZHN0LmFkZCgxKSkgPSBz ZWNvbmQ7CisgICAgICAgICAgICAgKihkc3QuYWRkKDIpKSA9IHRoaXJkOworICAgICAgICAgICAg ICooZHN0LmFkZCgzKSkgPSBmb3VydGg7CisgICAgICAgICB9CisgCisrICAgICAgICAvLy8gU2Fm ZXR5OiBkc3QgbXVzdCBwb2ludCB0byB2YWxpZCBzcGFjZSBmb3Igd3JpdGluZyB0d28gYHVzaXpl YHMKKyAgICAgICAgICNbaW5saW5lKGFsd2F5cyldCisgICAgICAgICB1bnNhZmUgZm4gcGFja19h bHUoZmlyc3Q6IHVzaXplLCBzZWNvbmQ6IHVzaXplLCB0aGlyZDogdXNpemUsIGZvdXJ0aDogdXNp emUsIGRzdDogKm11dCB1c2l6ZSkgeworICAgICAgICAgICAgIGxldCB3b3JkID0gKCgweDAwRkZf MDAwMHVzaXplICYgZmlyc3QpIDw8IDgpIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICgoMHgw MDAwXzAwRkZ1c2l6ZSAmIGZpcnN0KSA8PCAxNikgfAorICAgICAgICAgICAgICAgICAgICAgICAg KCgweDAwRkZfMDAwMHVzaXplICYgc2Vjb25kKSA+PiA4KSB8CisgICAgICAgICAgICAgICAgICAg ICAgICAoMHgwMDAwXzAwRkZ1c2l6ZSAmIHNlY29uZCk7CisgICAgICAgICAgICAgbGV0IHNlY29u ZF93b3JkID0gKCgweDAwRkZfMDAwMHVzaXplICYgdGhpcmQpIDw8IDgpIHwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAoKDB4MDAwMF8wMEZGdXNpemUgJiB0aGlyZCkgPDwgMTYpIHwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKDB4MDBGRl8wMDAwdXNpemUgJiBmb3Vy dGgpID4+IDgpIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMHgwMDAwXzAwRkZ1 c2l6ZSAmIGZvdXJ0aCk7CisrICAgICAgICAgICAgLy8gU2FmZXR5OiBmbiBpbnZhcmlhbnQgdXNl ZCBoZXJlCisgICAgICAgICAgICAgKmRzdCA9IHdvcmQ7CisgICAgICAgICAgICAgKihkc3QuYWRk KDEpKSA9IHNlY29uZF93b3JkOworICAgICAgICAgfQorICAgICB9IGVsc2UgeworICAgICAgICAg YXNjaWlfbmFpdmUhKGFzY2lpX3RvX2FzY2lpLCB1OCwgdTgpOworICAgICAgICAgYXNjaWlfbmFp dmUhKGFzY2lpX3RvX2Jhc2ljX2xhdGluLCB1OCwgdTE2KTsKKyAgICAgICAgIGFzY2lpX25haXZl IShiYXNpY19sYXRpbl90b19hc2NpaSwgdTE2LCB1OCk7CisgICAgIH0KKyB9CisgCisgY2ZnX2lm ISB7CisrICAgIC8vIFNhZmV0eS11c2FibGUgaW52YXJpYW50OiB0aGlzIGNvdW50cyB0aGUgemVy b2VzIGZyb20gdGhlICJmaXJzdCBieXRlIiBvZiB1dGYtOCBkYXRhIHBhY2tlZCBpbnRvIGEgdXNp emUKKysgICAgLy8gd2l0aCB0aGUgdGFyZ2V0IGVuZGlhbm5lc3MKKyAgICAgaWYgI1tjZmcodGFy Z2V0X2VuZGlhbiA9ICJsaXR0bGUiKV0geworICAgICAgICAgI1thbGxvdyhkZWFkX2NvZGUpXQor ICAgICAgICAgI1tpbmxpbmUoYWx3YXlzKV0KKyAgICAgICAgIGZuIGNvdW50X3plcm9zKHdvcmQ6 IHVzaXplKSAtPiB1MzIgeworICAgICAgICAgICAgIHdvcmQudHJhaWxpbmdfemVyb3MoKQorICAg ICAgICAgfQorICAgICB9IGVsc2UgeworICAgICAgICAgI1thbGxvdyhkZWFkX2NvZGUpXQorQEAg LTEyMDcsMjA4ICsxNTAxLDI3MiBAQCBjZmdfaWYhIHsKKyAgICAgICAgIGZuIGNvdW50X3plcm9z KHdvcmQ6IHVzaXplKSAtPiB1MzIgeworICAgICAgICAgICAgIHdvcmQubGVhZGluZ196ZXJvcygp CisgICAgICAgICB9CisgICAgIH0KKyB9CisgCisgY2ZnX2lmISB7CisgICAgIGlmICNbY2ZnKGFs bChmZWF0dXJlID0gInNpbWQtYWNjZWwiLCB0YXJnZXRfZW5kaWFuID0gImxpdHRsZSIsIHRhcmdl dF9hcmNoID0gImRpc2FibGVkIikpXSB7CisrICAgICAgICAvLy8gU2FmZXR5LXVzYWJsZSBpbnZh cmlhbnQ6IFdpbGwgcmV0dXJuIHRoZSB2YWx1ZSBhbmQgcG9zaXRpb24gb2YgdGhlIGZpcnN0IG5v bi1BU0NJSSBieXRlIGluIHRoZSBzbGljZSBpbiBhIFNvbWUgaWYgZm91bmQuCisrICAgICAgICAv Ly8gSW4gb3RoZXIgd29yZHMsIHRoZSBmaXJzdCBlbGVtZW50IG9mIHRoZSBTb21lIGlzIGFsd2F5 cyBgPiAxMjdgCisgICAgICAgICAjW2lubGluZShhbHdheXMpXQorICAgICAgICAgcHViIGZuIHZh bGlkYXRlX2FzY2lpKHNsaWNlOiAmW3U4XSkgLT4gT3B0aW9uPCh1OCwgdXNpemUpPiB7CisgICAg ICAgICAgICAgbGV0IHNyYyA9IHNsaWNlLmFzX3B0cigpOworICAgICAgICAgICAgIGxldCBsZW4g PSBzbGljZS5sZW4oKTsKKyAgICAgICAgICAgICBsZXQgbXV0IG9mZnNldCA9IDB1c2l6ZTsKKysg ICAgICAgICAgICAvLyBTYWZldHk6IGlmIHRoaXMgY2hlY2sgc3VjY2VlZHMgd2UncmUgdmFsaWQg Zm9yIHJlYWRpbmcvd3JpdGluZyBhdCBsZWFzdCBgc3RyaWRlYCBlbGVtZW50cy4KKyAgICAgICAg ICAgICBpZiBTSU1EX1NUUklERV9TSVpFIDw9IGxlbiB7CisgICAgICAgICAgICAgICAgIGxldCBs ZW5fbWludXNfc3RyaWRlID0gbGVuIC0gU0lNRF9TVFJJREVfU0laRTsKKyAgICAgICAgICAgICAg ICAgbG9vcCB7CisrICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IHNyYyBhdCBvZmZzZXQg aXMgdmFsaWQgZm9yIGEgYFNJTURfU1RSSURFX1NJWkVgIHJlYWQKKyAgICAgICAgICAgICAgICAg ICAgIGxldCBzaW1kID0gdW5zYWZlIHsgbG9hZDE2X3VuYWxpZ25lZChzcmMuYWRkKG9mZnNldCkp IH07CisgICAgICAgICAgICAgICAgICAgICBpZiAhc2ltZF9pc19hc2NpaShzaW1kKSB7CisgICAg ICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICB9CisgICAg ICAgICAgICAgICAgICAgICBvZmZzZXQgKz0gU0lNRF9TVFJJREVfU0laRTsKKysgICAgICAgICAg ICAgICAgICAgIC8vIFRoaXMgaXMgYG9mZnNldCA+IGxlbiAtIFNJTURfU1RSSURFX1NJWkVgIHdo aWNoIG1lYW5zIHdlIGFsd2F5cyBoYXZlIGF0IGxlYXN0IGBTSU1EX1NUUklERV9TSVpFYCBlbGVt ZW50cyB0byBtdW5jaCBuZXh0IHRpbWUuCisgICAgICAgICAgICAgICAgICAgICBpZiBvZmZzZXQg PiBsZW5fbWludXNfc3RyaWRlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAg ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgIH0K KyAgICAgICAgICAgICB3aGlsZSBvZmZzZXQgPCBsZW4geworICAgICAgICAgICAgICAgICBsZXQg Y29kZV91bml0ID0gc2xpY2Vbb2Zmc2V0XTsKKyAgICAgICAgICAgICAgICAgaWYgY29kZV91bml0 ID4gMTI3IHsKKysgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogU2FmZXR5LXVzYWJsZSBp bnZhcmlhbnQgdXBoZWxkIGhlcmUKKyAgICAgICAgICAgICAgICAgICAgIHJldHVybiBTb21lKChj b2RlX3VuaXQsIG9mZnNldCkpOworICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg IG9mZnNldCArPSAxOworICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICBOb25lCisgICAgICAg ICB9CisgICAgIH0gZWxzZSBpZiAjW2NmZyhhbGwoZmVhdHVyZSA9ICJzaW1kLWFjY2VsIiwgdGFy Z2V0X2ZlYXR1cmUgPSAic3NlMiIpKV0geworKyAgICAgICAgLy8vIFNhZmV0eS11c2FibGUgaW52 YXJpYW50OiB3aWxsIHJldHVybiBTb21lKCkgd2hlbiBpdCBlbmNvdW50ZXJzIG5vbi1BU0NJSSwg d2l0aCB0aGUgZmlyc3QgZWxlbWVudCBpbiB0aGUgU29tZSBiZWluZworKyAgICAgICAgLy8vIGd1 YXJhbnRlZWQgdG8gYmUgbm9uLUFTQ0lJICg+IDEyNyksIGFuZCB0aGUgc2Vjb25kIGJlaW5nIHRo ZSBvZmZzZXQgd2hlcmUgaXQgaXMgZm91bmQKKyAgICAgICAgICNbaW5saW5lKGFsd2F5cyldCisg ICAgICAgICBwdWIgZm4gdmFsaWRhdGVfYXNjaWkoc2xpY2U6ICZbdThdKSAtPiBPcHRpb248KHU4 LCB1c2l6ZSk+IHsKKyAgICAgICAgICAgICBsZXQgc3JjID0gc2xpY2UuYXNfcHRyKCk7CisgICAg ICAgICAgICAgbGV0IGxlbiA9IHNsaWNlLmxlbigpOworICAgICAgICAgICAgIGxldCBtdXQgb2Zm c2V0ID0gMHVzaXplOworKyAgICAgICAgICAgIC8vIFNhZmV0eTogaWYgdGhpcyBjaGVjayBzdWNj ZWVkcyB3ZSdyZSB2YWxpZCBmb3IgcmVhZGluZyBhdCBsZWFzdCBgc3RyaWRlYCBlbGVtZW50cy4K KyAgICAgICAgICAgICBpZiBTSU1EX1NUUklERV9TSVpFIDw9IGxlbiB7CisgICAgICAgICAgICAg ICAgIC8vIEZpcnN0LCBwcm9jZXNzIG9uZSB1bmFsaWduZWQgdmVjdG9yCisrICAgICAgICAgICAg ICAgIC8vIFNhZmV0eTogc3JjIGlzIHZhbGlkIGZvciBhIGBTSU1EX1NUUklERV9TSVpFYCByZWFk CisgICAgICAgICAgICAgICAgIGxldCBzaW1kID0gdW5zYWZlIHsgbG9hZDE2X3VuYWxpZ25lZChz cmMpIH07CisgICAgICAgICAgICAgICAgIGxldCBtYXNrID0gbWFza19hc2NpaShzaW1kKTsKKyAg ICAgICAgICAgICAgICAgaWYgbWFzayAhPSAwIHsKKyAgICAgICAgICAgICAgICAgICAgIG9mZnNl dCA9IG1hc2sudHJhaWxpbmdfemVyb3MoKSBhcyB1c2l6ZTsKKyAgICAgICAgICAgICAgICAgICAg IGxldCBub25fYXNjaWkgPSB1bnNhZmUgeyAqc3JjLmFkZChvZmZzZXQpIH07CisgICAgICAgICAg ICAgICAgICAgICByZXR1cm4gU29tZSgobm9uX2FzY2lpLCBvZmZzZXQpKTsKKyAgICAgICAgICAg ICAgICAgfQorICAgICAgICAgICAgICAgICBvZmZzZXQgPSBTSU1EX1NUUklERV9TSVpFOworKyAg ICAgICAgICAgICAgICAvLyBTYWZldHk6IE5vdyB0aGF0IG9mZnNldCBoYXMgY2hhbmdlZCB3ZSBk b24ndCB5ZXQga25vdyBob3cgbXVjaCBpdCBpcyB2YWxpZCBmb3IKKyAKKyAgICAgICAgICAgICAg ICAgLy8gV2UgaGF2ZSBub3cgc2VlbiAxNiBBU0NJSSBieXRlcy4gTGV0J3MgZ3Vlc3MgdGhhdAor ICAgICAgICAgICAgICAgICAvLyB0aGVyZSB3aWxsIGJlIGVub3VnaCBtb3JlIHRvIGp1c3RpZnkg bW9yZSBleHBlbnNlCisgICAgICAgICAgICAgICAgIC8vIGluIHRoZSBjYXNlIG9mIG5vbi1BU0NJ SS4KKyAgICAgICAgICAgICAgICAgLy8gVXNlIGFsaWduZWQgcmVhZHMgZm9yIHRoZSBzYWtlIG9m IG9sZCBtaWNyb2FjaGl0ZWN0dXJlcy4KKysgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiB0aGlz IGNvcnJlY3RseSBjYWxjdWxhdGVzIHRoZSBudW1iZXIgb2Ygc3JjX3VuaXRzIHRoYXQgbmVlZCB0 byBiZSByZWFkIGJlZm9yZSB0aGUgcmVtYWluaW5nIGxpc3QgaXMgYWxpZ25lZC4KKysgICAgICAg ICAgICAgICAgLy8gVGhpcyBpcyBieSBkZWZpbml0aW9uIGxlc3MgdGhhbiBTSU1EX0FMSUdOTUVO VCwgd2hpY2ggaXMgZGVmaW5lZCB0byBiZSBlcXVhbCB0byBTSU1EX1NUUklERV9TSVpFLgorICAg ICAgICAgICAgICAgICBsZXQgdW50aWxfYWxpZ25tZW50ID0gdW5zYWZlIHsgKFNJTURfQUxJR05N RU5UIC0gKChzcmMuYWRkKG9mZnNldCkgYXMgdXNpemUpICYgU0lNRF9BTElHTk1FTlRfTUFTSykp ICYgU0lNRF9BTElHTk1FTlRfTUFTSyB9OworICAgICAgICAgICAgICAgICAvLyBUaGlzIGFkZGl0 aW9uIHdvbid0IG92ZXJmbG93LCBiZWNhdXNlIGV2ZW4gaW4gdGhlIDMyLWJpdCBQQUUgY2FzZSB0 aGUKKyAgICAgICAgICAgICAgICAgLy8gYWRkcmVzcyBzcGFjZSBob2xkcyBlbm91Z2ggY29kZSB0 aGF0IHRoZSBzbGljZSBsZW5ndGggY2FuJ3QgYmUgdGhhdAorICAgICAgICAgICAgICAgICAvLyBj bG9zZSB0byBhZGRyZXNzIHNwYWNlIHNpemUuCisgICAgICAgICAgICAgICAgIC8vIG9mZnNldCBu b3cgZXF1YWxzIFNJTURfU1RSSURFX1NJWkUsIGhlbmNlIHRpbWVzIDMgYmVsb3cuCisrICAgICAg ICAgICAgICAgIC8vCisrICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogaWYgdGhpcyBjaGVjayBz dWNjZWVkcyB3ZSdyZSB2YWxpZCBmb3IgcmVhZGluZyBhdCBsZWFzdCBgMiAqIFNJTURfU1RSSURF X1NJWkVgIGVsZW1lbnRzIHBsdXMgYHVudGlsX2FsaWdubWVudGAuCisrICAgICAgICAgICAgICAg IC8vIFRoZSBleHRyYSBTSU1EX1NUUklERV9TSVpFIGluIHRoZSBjb25kaXRpb24gaXMgYmVjYXVz ZSBgb2Zmc2V0YCBpcyBhbHJlYWR5IGBTSU1EX1NUUklERV9TSVpFYC4KKyAgICAgICAgICAgICAg ICAgaWYgdW50aWxfYWxpZ25tZW50ICsgKFNJTURfU1RSSURFX1NJWkUgKiAzKSA8PSBsZW4gewor ICAgICAgICAgICAgICAgICAgICAgaWYgdW50aWxfYWxpZ25tZW50ICE9IDAgeworKyAgICAgICAg ICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogdGhpcyBpcyBzYWZlIHRvIGNhbGwgc2luY2Ugd2Un cmUgdmFsaWQgZm9yIHRoaXMgcmVhZCAoYW5kIG1vcmUpLCBhbmQgZG9uJ3QgY2FyZSBhYm91dCBh bGlnbm1lbnQKKysgICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIHdpbGwgY29weSBvdmVy IGJ5dGVzIHRoYXQgZ2V0IGRlY29kZWQgdHdpY2Ugc2luY2UgaXQncyBub3QgaW5jcmVtZW50aW5n IGBvZmZzZXRgIGJ5IFNJTURfU1RSSURFX1NJWkUuIFRoaXMgaXMgZmluZS4KKyAgICAgICAgICAg ICAgICAgICAgICAgICBsZXQgc2ltZCA9IHVuc2FmZSB7IGxvYWQxNl91bmFsaWduZWQoc3JjLmFk ZChvZmZzZXQpKSB9OworICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtYXNrID0gbWFza19h c2NpaShzaW1kKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICBpZiBtYXNrICE9IDAgeworICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQgKz0gbWFzay50cmFpbGluZ196ZXJvcygp IGFzIHVzaXplOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbm9uX2FzY2lpID0g dW5zYWZlIHsgKnNyYy5hZGQob2Zmc2V0KSB9OworICAgICAgICAgICAgICAgICAgICAgICAgICAg ICByZXR1cm4gU29tZSgobm9uX2FzY2lpLCBvZmZzZXQpKTsKKyAgICAgICAgICAgICAgICAgICAg ICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IHVudGlsX2FsaWdubWVu dDsKKyAgICAgICAgICAgICAgICAgICAgIH0KKysgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0 eTogQXQgdGhpcyBwb2ludCB3ZSdyZSB2YWxpZCBmb3IgcmVhZGluZyAyKlNJTURfU1RSSURFX1NJ WkUgZWxlbWVudHMKKysgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogTm93IGBvZmZzZXRg IGlzIGFsaWduZWQgZm9yIGBzcmNgCisgICAgICAgICAgICAgICAgICAgICBsZXQgbGVuX21pbnVz X3N0cmlkZV90aW1lc190d28gPSBsZW4gLSAoU0lNRF9TVFJJREVfU0laRSAqIDIpOworICAgICAg ICAgICAgICAgICAgICAgbG9vcCB7CisrICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5 OiBXZSB3ZXJlIHZhbGlkIGZvciB0aGlzIHJlYWQsIGFuZCB3ZXJlIGFsaWduZWQuCisgICAgICAg ICAgICAgICAgICAgICAgICAgbGV0IGZpcnN0ID0gdW5zYWZlIHsgbG9hZDE2X2FsaWduZWQoc3Jj LmFkZChvZmZzZXQpKSB9OworICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBzZWNvbmQgPSB1 bnNhZmUgeyBsb2FkMTZfYWxpZ25lZChzcmMuYWRkKG9mZnNldCArIFNJTURfU1RSSURFX1NJWkUp KSB9OworICAgICAgICAgICAgICAgICAgICAgICAgIGlmICFzaW1kX2lzX2FzY2lpKGZpcnN0IHwg c2Vjb25kKSB7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogbWFza19h c2NpaSBwcm9kdWNlcyBhIG1hc2sgb2YgYWxsIHRoZSBoaWdoIGJpdHMuCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGxldCBtYXNrX2ZpcnN0ID0gbWFza19hc2NpaShmaXJzdCk7CisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGlmIG1hc2tfZmlyc3QgIT0gMCB7CisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IG9uIGxpdHRsZSBlbmRpYW4gc3lzdGVt cyB0aGlzIHdpbGwgYmUgdGhlIG51bWJlciBvZiBhc2NpaSBieXRlcworKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgLy8gYmVmb3JlIHRoZSBmaXJzdCBub24tYXNjaWksIGkuZS4gdmFs aWQgZm9yIGluZGV4aW5nIHNyYworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8g VE9ETyBTQUZFVFk6IFdoYXQgYWJvdXQgYmlnLWVuZGlhbiBzeXN0ZW1zPworICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IG1hc2tfZmlyc3QudHJhaWxpbmdfemVyb3Mo KSBhcyB1c2l6ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtYXNrX3NlY29uZCA9IG1hc2tfYXNjaWko c2Vjb25kKTsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogb24g bGl0dGxlIGVuZGlhbiBzeXN0ZW1zIHRoaXMgd2lsbCBiZSB0aGUgbnVtYmVyIG9mIGFzY2lpIGJ5 dGVzCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBiZWZvcmUgdGhlIGZpcnN0 IG5vbi1hc2NpaSwgaS5lLiB2YWxpZCBmb3IgaW5kZXhpbmcgc3JjCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBvZmZzZXQgKz0gU0lNRF9TVFJJREVfU0laRSArIG1hc2tfc2Vjb25k LnRyYWlsaW5nX3plcm9zKCkgYXMgdXNpemU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0KKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBXZSBrbm93IHRoaXMg aXMgbm9uLUFTQ0lJLCBhbmQgY2FuIHVwaG9sZCB0aGUgc2FmZXR5LXVzYWJsZSBpbnZhcmlhbnQg aGVyZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbm9uX2FzY2lpID0gdW5zYWZl IHsgKnNyYy5hZGQob2Zmc2V0KSB9OworKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICBy ZXR1cm4gU29tZSgobm9uX2FzY2lpLCBvZmZzZXQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAg ICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IFNJTURfU1RSSURFX1NJWkUg KiAyOworKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogVGhpcyBpcyBgb2Zmc2V0 ID4gbGVuIC0gMiAqIFNJTURfU1RSSURFX1NJWkVgIHdoaWNoIG1lYW5zIHdlIGFsd2F5cyBoYXZl IGF0IGxlYXN0IGAyICogU0lNRF9TVFJJREVfU0laRWAgZWxlbWVudHMgdG8gbXVuY2ggbmV4dCB0 aW1lLgorICAgICAgICAgICAgICAgICAgICAgICAgIGlmIG9mZnNldCA+IGxlbl9taW51c19zdHJp ZGVfdGltZXNfdHdvIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg ICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgfQorKyAgICAgICAg ICAgICAgICAgICAgLy8gU2FmZXR5OiBpZiB0aGlzIGNoZWNrIHN1Y2NlZWRzIHdlJ3JlIHZhbGlk IGZvciByZWFkaW5nIGF0IGxlYXN0IGBTSU1EX1NUUklERV9TSVpFYAorICAgICAgICAgICAgICAg ICAgICAgaWYgb2Zmc2V0ICsgU0lNRF9TVFJJREVfU0laRSA8PSBsZW4geworLSAgICAgICAgICAg ICAgICAgICAgICAgICBsZXQgc2ltZCA9IHVuc2FmZSB7IGxvYWQxNl9hbGlnbmVkKHNyYy5hZGQo b2Zmc2V0KSkgfTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG1hc2sgPSBtYXNrX2Fz Y2lpKHNpbWQpOworKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogV2Ugd2VyZSB2 YWxpZCBmb3IgdGhpcyByZWFkLCBhbmQgd2VyZSBhbGlnbmVkLgorKyAgICAgICAgICAgICAgICAg ICAgICAgIGxldCBzaW1kID0gdW5zYWZlIHsgbG9hZDE2X2FsaWduZWQoc3JjLmFkZChvZmZzZXQp KSB9OworKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogbWFza19hc2NpaSBwcm9k dWNlcyBhIG1hc2sgb2YgYWxsIHRoZSBoaWdoIGJpdHMuCisrICAgICAgICAgICAgICAgICAgICAg ICAgbGV0IG1hc2sgPSBtYXNrX2FzY2lpKHNpbWQpOworICAgICAgICAgICAgICAgICAgICAgICAg IGlmIG1hc2sgIT0gMCB7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTog b24gbGl0dGxlIGVuZGlhbiBzeXN0ZW1zIHRoaXMgd2lsbCBiZSB0aGUgbnVtYmVyIG9mIGFzY2lp IGJ5dGVzCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGJlZm9yZSB0aGUgZmlyc3Qg bm9uLWFzY2lpLCBpLmUuIHZhbGlkIGZvciBpbmRleGluZyBzcmMKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgb2Zmc2V0ICs9IG1hc2sudHJhaWxpbmdfemVyb3MoKSBhcyB1c2l6ZTsKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5vbl9hc2NpaSA9IHVuc2FmZSB7ICpzcmMu YWRkKG9mZnNldCkgfTsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBX ZSBrbm93IHRoaXMgaXMgbm9uLUFTQ0lJLCBhbmQgY2FuIHVwaG9sZCB0aGUgc2FmZXR5LXVzYWJs ZSBpbnZhcmlhbnQgaGVyZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gU29t ZSgobm9uX2FzY2lpLCBvZmZzZXQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAg ICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IFNJTURfU1RSSURFX1NJWkU7CisgICAgICAg ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisrICAgICAgICAgICAg ICAgICAgICAvLyBTYWZldHk6IHRoaXMgaXMgdGhlIHVuYWxpZ25lZCBicmFuY2gKKyAgICAgICAg ICAgICAgICAgICAgIC8vIEF0IG1vc3QgdHdvIGl0ZXJhdGlvbnMsIHNvIHVucm9sbAorKyAgICAg ICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBpZiB0aGlzIGNoZWNrIHN1Y2NlZWRzIHdlJ3JlIHZh bGlkIGZvciByZWFkaW5nIGF0IGxlYXN0IGBTSU1EX1NUUklERV9TSVpFYAorICAgICAgICAgICAg ICAgICAgICAgaWYgb2Zmc2V0ICsgU0lNRF9TVFJJREVfU0laRSA8PSBsZW4geworKyAgICAgICAg ICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogV2UncmUgdmFsaWQgZm9yIHRoaXMgcmVhZCBidXQg bXVzdCB1c2UgYW4gdW5hbGlnbmVkIHJlYWQKKyAgICAgICAgICAgICAgICAgICAgICAgICBsZXQg c2ltZCA9IHVuc2FmZSB7IGxvYWQxNl91bmFsaWduZWQoc3JjLmFkZChvZmZzZXQpKSB9OworICAg ICAgICAgICAgICAgICAgICAgICAgIGxldCBtYXNrID0gbWFza19hc2NpaShzaW1kKTsKKyAgICAg ICAgICAgICAgICAgICAgICAgICBpZiBtYXNrICE9IDAgeworICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBvZmZzZXQgKz0gbWFzay50cmFpbGluZ196ZXJvcygpIGFzIHVzaXplOworICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBsZXQgbm9uX2FzY2lpID0gdW5zYWZlIHsgKnNyYy5hZGQo b2Zmc2V0KSB9OworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHktdXNhYmxl IGludmFyaWFudCB1cGhlbGQgaGVyZSAoc2FtZSBhcyBhYm92ZSkKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgcmV0dXJuIFNvbWUoKG5vbl9hc2NpaSwgb2Zmc2V0KSk7CisgICAgICAgICAg ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCArPSBTSU1E X1NUUklERV9TSVpFOworKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogaWYgdGhp cyBjaGVjayBzdWNjZWVkcyB3ZSdyZSB2YWxpZCBmb3IgcmVhZGluZyBhdCBsZWFzdCBgU0lNRF9T VFJJREVfU0laRWAKKyAgICAgICAgICAgICAgICAgICAgICAgICBpZiBvZmZzZXQgKyBTSU1EX1NU UklERV9TSVpFIDw9IGxlbiB7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0 eTogV2UncmUgdmFsaWQgZm9yIHRoaXMgcmVhZCBidXQgbXVzdCB1c2UgYW4gdW5hbGlnbmVkIHJl YWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBzaW1kID0gdW5zYWZlIHsgbG9h ZDE2X3VuYWxpZ25lZChzcmMuYWRkKG9mZnNldCkpIH07CisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBsZXQgbWFzayA9IG1hc2tfYXNjaWkoc2ltZCk7CisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGlmIG1hc2sgIT0gMCB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBvZmZzZXQgKz0gbWFzay50cmFpbGluZ196ZXJvcygpIGFzIHVzaXplOworICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgbGV0IG5vbl9hc2NpaSA9IHVuc2FmZSB7ICpzcmMuYWRkKG9m ZnNldCkgfTsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eS11c2Fi bGUgaW52YXJpYW50IHVwaGVsZCBoZXJlIChzYW1lIGFzIGFib3ZlKQorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgcmV0dXJuIFNvbWUoKG5vbl9hc2NpaSwgb2Zmc2V0KSk7CisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg b2Zmc2V0ICs9IFNJTURfU1RSSURFX1NJWkU7CisgICAgICAgICAgICAgICAgICAgICAgICAgfQor ICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg fQorICAgICAgICAgICAgIHdoaWxlIG9mZnNldCA8IGxlbiB7CisrICAgICAgICAgICAgICAgIC8v IFNhZmV0eTogcmVsaWVzIHN0cmFpZ2h0Zm9yd2FyZGx5IG9uIHRoZSBgbGVuYCBpbnZhcmlhbnQK KyAgICAgICAgICAgICAgICAgbGV0IGNvZGVfdW5pdCA9IHVuc2FmZSB7ICooc3JjLmFkZChvZmZz ZXQpKSB9OworICAgICAgICAgICAgICAgICBpZiBjb2RlX3VuaXQgPiAxMjcgeworKyAgICAgICAg ICAgICAgICAgICAgLy8gU2FmZXR5LXVzYWJsZSBpbnZhcmlhbnQgdXBoZWxkIGhlcmUKKyAgICAg ICAgICAgICAgICAgICAgIHJldHVybiBTb21lKChjb2RlX3VuaXQsIG9mZnNldCkpOworICAgICAg ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgIG9mZnNldCArPSAxOworICAgICAgICAgICAg IH0KKyAgICAgICAgICAgICBOb25lCisgICAgICAgICB9CisgICAgIH0gZWxzZSB7CisrICAgICAg ICAvLyBTYWZldHktdXNhYmxlIGludmFyaWFudDogcmV0dXJucyBieXRlIGluZGV4IG9mIGZpcnN0 IG5vbi1hc2NpaSBieXRlCisgICAgICAgICAjW2lubGluZShhbHdheXMpXQorICAgICAgICAgZm4g ZmluZF9ub25fYXNjaWkod29yZDogdXNpemUsIHNlY29uZF93b3JkOiB1c2l6ZSkgLT4gT3B0aW9u PHVzaXplPiB7CisgICAgICAgICAgICAgbGV0IHdvcmRfbWFza2VkID0gd29yZCAmIEFTQ0lJX01B U0s7CisgICAgICAgICAgICAgbGV0IHNlY29uZF9tYXNrZWQgPSBzZWNvbmRfd29yZCAmIEFTQ0lJ X01BU0s7CisgICAgICAgICAgICAgaWYgKHdvcmRfbWFza2VkIHwgc2Vjb25kX21hc2tlZCkgPT0g MCB7CisrICAgICAgICAgICAgICAgIC8vIEJvdGggYXJlIGFzY2lpLCBpbnZhcmlhbnQgdXBoZWxk CisgICAgICAgICAgICAgICAgIHJldHVybiBOb25lOworICAgICAgICAgICAgIH0KKyAgICAgICAg ICAgICBpZiB3b3JkX21hc2tlZCAhPSAwIHsKKyAgICAgICAgICAgICAgICAgbGV0IHplcm9zID0g Y291bnRfemVyb3Mod29yZF9tYXNrZWQpOworLSAgICAgICAgICAgICAgICAvLyBgemVyb3NgIG5v dyBjb250YWlucyA3IChmb3IgdGhlIHNldmVuIGJpdHMgb2Ygbm9uLUFTQ0lJKQorKyAgICAgICAg ICAgICAgICAvLyBgemVyb3NgIG5vdyBjb250YWlucyAwIHRvIDcgKGZvciB0aGUgc2V2ZW4gYml0 cyBvZiBtYXNrZWQgQVNDSUkgaW4gbGl0dGxlIGVuZGlhbiwKKysgICAgICAgICAgICAgICAgLy8g b3IgdXAgdG8gNyBiaXRzIG9mIG5vbi1BU0NJSSBpbiBiaWcgZW5kaWFuIGlmIHRoZSBmaXJzdCBi eXRlIGlzIG5vbi1BU0NJSSkKKyAgICAgICAgICAgICAgICAgLy8gcGx1cyA4IHRpbWVzIHRoZSBu dW1iZXIgb2YgQVNDSUkgaW4gdGV4dCBvcmRlciBiZWZvcmUgdGhlCisgICAgICAgICAgICAgICAg IC8vIG5vbi1BU0NJSSBieXRlIGluIHRoZSBsaXR0bGUtZW5kaWFuIGNhc2Ugb3IgOCB0aW1lcyB0 aGUgbnVtYmVyIG9mIEFTQ0lJIGluCisgICAgICAgICAgICAgICAgIC8vIHRleHQgb3JkZXIgYmVm b3JlIHRoZSBub24tQVNDSUkgYnl0ZSBpbiB0aGUgYmlnLWVuZGlhbiBjYXNlLgorICAgICAgICAg ICAgICAgICBsZXQgbnVtX2FzY2lpID0gKHplcm9zID4+IDMpIGFzIHVzaXplOworKyAgICAgICAg ICAgICAgICAvLyBTYWZldHktdXNhYmxlIGludmFyaWFudCB1cGhlbGQgaGVyZQorICAgICAgICAg ICAgICAgICByZXR1cm4gU29tZShudW1fYXNjaWkpOworICAgICAgICAgICAgIH0KKyAgICAgICAg ICAgICBsZXQgemVyb3MgPSBjb3VudF96ZXJvcyhzZWNvbmRfbWFza2VkKTsKKy0gICAgICAgICAg ICAvLyBgemVyb3NgIG5vdyBjb250YWlucyA3IChmb3IgdGhlIHNldmVuIGJpdHMgb2Ygbm9uLUFT Q0lJKQorKyAgICAgICAgICAgIC8vIGB6ZXJvc2Agbm93IGNvbnRhaW5zIDAgdG8gNyAoZm9yIHRo ZSBzZXZlbiBiaXRzIG9mIG1hc2tlZCBBU0NJSSBpbiBsaXR0bGUgZW5kaWFuLAorKyAgICAgICAg ICAgIC8vIG9yIHVwIHRvIDcgYml0cyBvZiBub24tQVNDSUkgaW4gYmlnIGVuZGlhbiBpZiB0aGUg Zmlyc3QgYnl0ZSBpcyBub24tQVNDSUkpCisgICAgICAgICAgICAgLy8gcGx1cyA4IHRpbWVzIHRo ZSBudW1iZXIgb2YgQVNDSUkgaW4gdGV4dCBvcmRlciBiZWZvcmUgdGhlCisgICAgICAgICAgICAg Ly8gbm9uLUFTQ0lJIGJ5dGUgaW4gdGhlIGxpdHRsZS1lbmRpYW4gY2FzZSBvciA4IHRpbWVzIHRo ZSBudW1iZXIgb2YgQVNDSUkgaW4KKyAgICAgICAgICAgICAvLyB0ZXh0IG9yZGVyIGJlZm9yZSB0 aGUgbm9uLUFTQ0lJIGJ5dGUgaW4gdGhlIGJpZy1lbmRpYW4gY2FzZS4KKyAgICAgICAgICAgICBs ZXQgbnVtX2FzY2lpID0gKHplcm9zID4+IDMpIGFzIHVzaXplOworKyAgICAgICAgICAgIC8vIFNh ZmV0eS11c2FibGUgaW52YXJpYW50IHVwaGVsZCBoZXJlCisgICAgICAgICAgICAgU29tZShBTFVf QUxJR05NRU5UICsgbnVtX2FzY2lpKQorICAgICAgICAgfQorIAorKyAgICAgICAgLy8vIFNhZmV0 eTogYHNyY2AgbXVzdCBiZSB2YWxpZCBmb3IgdGhlIHJlYWRzIG9mIHR3byBgdXNpemVgcworKyAg ICAgICAgLy8vCisrICAgICAgICAvLy8gU2FmZXR5LXVzYWJsZSBpbnZhcmlhbnQ6IHdpbGwgcmV0 dXJuIGJ5dGUgaW5kZXggb2YgZmlyc3Qgbm9uLWFzY2lpIGJ5dGUKKyAgICAgICAgICNbaW5saW5l KGFsd2F5cyldCisgICAgICAgICB1bnNhZmUgZm4gdmFsaWRhdGVfYXNjaWlfc3RyaWRlKHNyYzog KmNvbnN0IHVzaXplKSAtPiBPcHRpb248dXNpemU+IHsKKyAgICAgICAgICAgICBsZXQgd29yZCA9 ICpzcmM7CisgICAgICAgICAgICAgbGV0IHNlY29uZF93b3JkID0gKihzcmMuYWRkKDEpKTsKKyAg ICAgICAgICAgICBmaW5kX25vbl9hc2NpaSh3b3JkLCBzZWNvbmRfd29yZCkKKyAgICAgICAgIH0K KyAKKysgICAgICAgIC8vLyBTYWZldHktdXNhYmxlIGludmFyaWFudDogd2lsbCByZXR1cm4gU29t ZSgpIHdoZW4gaXQgZW5jb3VudGVycyBub24tQVNDSUksIHdpdGggdGhlIGZpcnN0IGVsZW1lbnQg aW4gdGhlIFNvbWUgYmVpbmcKKysgICAgICAgIC8vLyBndWFyYW50ZWVkIHRvIGJlIG5vbi1BU0NJ SSAoPiAxMjcpLCBhbmQgdGhlIHNlY29uZCBiZWluZyB0aGUgb2Zmc2V0IHdoZXJlIGl0IGlzIGZv dW5kCisgICAgICAgICAjW2NmZ19hdHRyKGZlYXR1cmUgPSAiY2FyZ28tY2xpcHB5IiwgYWxsb3co Y2FzdF9wdHJfYWxpZ25tZW50KSldCisgICAgICAgICAjW2lubGluZShhbHdheXMpXQorICAgICAg ICAgcHViIGZuIHZhbGlkYXRlX2FzY2lpKHNsaWNlOiAmW3U4XSkgLT4gT3B0aW9uPCh1OCwgdXNp emUpPiB7CisgICAgICAgICAgICAgbGV0IHNyYyA9IHNsaWNlLmFzX3B0cigpOworICAgICAgICAg ICAgIGxldCBsZW4gPSBzbGljZS5sZW4oKTsKKyAgICAgICAgICAgICBsZXQgbXV0IG9mZnNldCA9 IDB1c2l6ZTsKKyAgICAgICAgICAgICBsZXQgbXV0IHVudGlsX2FsaWdubWVudCA9IChBTFVfQUxJ R05NRU5UIC0gKChzcmMgYXMgdXNpemUpICYgQUxVX0FMSUdOTUVOVF9NQVNLKSkgJiBBTFVfQUxJ R05NRU5UX01BU0s7CisrICAgICAgICAgICAgLy8gU2FmZXR5OiBJZiB0aGlzIGNoZWNrIGZhaWxz IHdlJ3JlIHZhbGlkIHRvIHJlYWQgYHVudGlsX2FsaWdubWVudCArIEFMVV9TVFJJREVfU0laRWAg ZWxlbWVudHMKKyAgICAgICAgICAgICBpZiB1bnRpbF9hbGlnbm1lbnQgKyBBTFVfU1RSSURFX1NJ WkUgPD0gbGVuIHsKKyAgICAgICAgICAgICAgICAgd2hpbGUgdW50aWxfYWxpZ25tZW50ICE9IDAg eworICAgICAgICAgICAgICAgICAgICAgbGV0IGNvZGVfdW5pdCA9IHNsaWNlW29mZnNldF07Cisg ICAgICAgICAgICAgICAgICAgICBpZiBjb2RlX3VuaXQgPiAxMjcgeworKyAgICAgICAgICAgICAg ICAgICAgICAgIC8vIFNhZmV0eS11c2FibGUgaW52YWlyYW50IHVwaGVsZCBoZXJlCisgICAgICAg ICAgICAgICAgICAgICAgICAgcmV0dXJuIFNvbWUoKGNvZGVfdW5pdCwgb2Zmc2V0KSk7CisgICAg ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICBvZmZzZXQgKz0gMTsKKyAg ICAgICAgICAgICAgICAgICAgIHVudGlsX2FsaWdubWVudCAtPSAxOworICAgICAgICAgICAgICAg ICB9CisrICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogQXQgdGhpcyBwb2ludCB3ZSBoYXZlIHJl YWQgdW50aWxfYWxpZ25tZW50IGVsZW1lbnRzIGFuZAorKyAgICAgICAgICAgICAgICAvLyBhcmUg dmFsaWQgZm9yIGBBTFVfU1RSSURFX1NJWkVgIG1vcmUuCisgICAgICAgICAgICAgICAgIGxldCBs ZW5fbWludXNfc3RyaWRlID0gbGVuIC0gQUxVX1NUUklERV9TSVpFOworICAgICAgICAgICAgICAg ICBsb29wIHsKKysgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogd2Ugd2VyZSB2YWxpZCBm b3IgdGhpcyByZWFkCisgICAgICAgICAgICAgICAgICAgICBsZXQgcHRyID0gdW5zYWZlIHsgc3Jj LmFkZChvZmZzZXQpIGFzICpjb25zdCB1c2l6ZSB9OworICAgICAgICAgICAgICAgICAgICAgaWYg bGV0IFNvbWUobnVtX2FzY2lpKSA9IHVuc2FmZSB7IHZhbGlkYXRlX2FzY2lpX3N0cmlkZShwdHIp IH0geworICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCArPSBudW1fYXNjaWk7CisrICAg ICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5LXVzYWJsZSBpbnZhaXJhbnQgdXBoZWxkIGhl cmUgdXNpbmcgdGhlIGludmFyaWFudCBmcm9tIHZhbGlkYXRlX2FzY2lpX3N0cmlkZSgpCisgICAg ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFNvbWUoKHVuc2FmZSB7ICooc3JjLmFkZChvZmZz ZXQpKSB9LCBvZmZzZXQpKTsKKyAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg ICAgICAgIG9mZnNldCArPSBBTFVfU1RSSURFX1NJWkU7CisrICAgICAgICAgICAgICAgICAgICAv LyBTYWZldHk6IFRoaXMgaXMgYG9mZnNldCA+IEFMVV9TVFJJREVfU0laRWAgd2hpY2ggbWVhbnMg d2UgYWx3YXlzIGhhdmUgYXQgbGVhc3QgYDIgKiBBTFVfU1RSSURFX1NJWkVgIGVsZW1lbnRzIHRv IG11bmNoIG5leHQgdGltZS4KKyAgICAgICAgICAgICAgICAgICAgIGlmIG9mZnNldCA+IGxlbl9t aW51c19zdHJpZGUgeworICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgfQorICAgICAg ICAgICAgIHdoaWxlIG9mZnNldCA8IGxlbiB7CisgICAgICAgICAgICAgICAgIGxldCBjb2RlX3Vu aXQgPSBzbGljZVtvZmZzZXRdOworICAgICAgICAgICAgICAgICBpZiBjb2RlX3VuaXQgPiAxMjcg eworKyAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5LXVzYWJsZSBpbnZhaXJhbnQgdXBoZWxk IGhlcmUKKyAgICAgICAgICAgICAgICAgICAgIHJldHVybiBTb21lKChjb2RlX3VuaXQsIG9mZnNl dCkpOworICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgIG9mZnNldCArPSAxOwor ICAgICAgICAgICAgfQorICAgICAgICAgICAgTm9uZQorICAgICAgICAgfQorIAorICAgICB9CitA QCAtMTQyMyw3MCArMTc4MSw4OCBAQCBjZmdfaWYhIHsKKyAgICAgICAgIC8vIHZlY3RvciByZWFk cyB3aXRob3V0IHZlY3RvciB3cml0ZXMuCisgCisgICAgICAgICBwdWIgY29uc3QgQUxVX1NUUklE RV9TSVpFOiB1c2l6ZSA9IDg7CisgCisgICAgICAgICBwdWIgY29uc3QgQUxVX0FMSUdOTUVOVDog dXNpemUgPSA0OworIAorICAgICAgICAgcHViIGNvbnN0IEFMVV9BTElHTk1FTlRfTUFTSzogdXNp emUgPSAzOworICAgICB9IGVsc2UgeworKyAgICAgICAgLy8gU2FmZXR5OiBzcmMgcG9pbnRzIHRv IHR3byB2YWxpZCBgdXNpemVgcywgZHN0IHBvaW50cyB0byBmb3VyIHZhbGlkIGB1c2l6ZWBzCisg ICAgICAgICAjW2lubGluZShhbHdheXMpXQorICAgICAgICAgdW5zYWZlIGZuIHVucGFja19sYXRp bjFfc3RyaWRlX2FsdShzcmM6ICpjb25zdCB1c2l6ZSwgZHN0OiAqbXV0IHVzaXplKSB7CisrICAg ICAgICAgICAgLy8gU2FmZXR5OiBzcmMgc2FmZXR5IGludmFyaWFudCB1c2VkIGhlcmUKKyAgICAg ICAgICAgICBsZXQgd29yZCA9ICpzcmM7CisgICAgICAgICAgICAgbGV0IHNlY29uZF93b3JkID0g KihzcmMuYWRkKDEpKTsKKysgICAgICAgICAgICAvLyBTYWZldHk6IGRzdCBzYWZldHkgaW52YXJp YW50IHBhc3NlZCBkb3duCisgICAgICAgICAgICAgdW5wYWNrX2FsdSh3b3JkLCBzZWNvbmRfd29y ZCwgZHN0KTsKKyAgICAgICAgIH0KKyAKKysgICAgICAgIC8vIFNhZmV0eTogc3JjIHBvaW50cyB0 byBmb3VyIHZhbGlkIGB1c2l6ZWBzLCBkc3QgcG9pbnRzIHRvIHR3byB2YWxpZCBgdXNpemVgcwor ICAgICAgICAgI1tpbmxpbmUoYWx3YXlzKV0KKyAgICAgICAgIHVuc2FmZSBmbiBwYWNrX2xhdGlu MV9zdHJpZGVfYWx1KHNyYzogKmNvbnN0IHVzaXplLCBkc3Q6ICptdXQgdXNpemUpIHsKKysgICAg ICAgICAgICAvLyBTYWZldHk6IHNyYyBzYWZldHkgaW52YXJpYW50IHVzZWQgaGVyZQorICAgICAg ICAgICAgIGxldCBmaXJzdCA9ICpzcmM7CisgICAgICAgICAgICAgbGV0IHNlY29uZCA9ICooc3Jj LmFkZCgxKSk7CisgICAgICAgICAgICAgbGV0IHRoaXJkID0gKihzcmMuYWRkKDIpKTsKKyAgICAg ICAgICAgICBsZXQgZm91cnRoID0gKihzcmMuYWRkKDMpKTsKKysgICAgICAgICAgICAvLyBTYWZl dHk6IGRzdCBzYWZldHkgaW52YXJpYW50IHBhc3NlZCBkb3duCisgICAgICAgICAgICAgcGFja19h bHUoZmlyc3QsIHNlY29uZCwgdGhpcmQsIGZvdXJ0aCwgZHN0KTsKKyAgICAgICAgIH0KKyAKKysg ICAgICAgIC8vIFNhZmV0eTogc3JjIHBvaW50cyB0byB0d28gdmFsaWQgYHVzaXplYHMsIGRzdCBw b2ludHMgdG8gZm91ciB2YWxpZCBgdXNpemVgcworICAgICAgICAgI1tpbmxpbmUoYWx3YXlzKV0K KyAgICAgICAgIHVuc2FmZSBmbiBhc2NpaV90b19iYXNpY19sYXRpbl9zdHJpZGVfYWx1KHNyYzog KmNvbnN0IHVzaXplLCBkc3Q6ICptdXQgdXNpemUpIC0+IGJvb2wgeworKyAgICAgICAgICAgIC8v IFNhZmV0eTogc3JjIHNhZmV0eSBpbnZhcmlhbnQgdXNlZCBoZXJlCisgICAgICAgICAgICAgbGV0 IHdvcmQgPSAqc3JjOworICAgICAgICAgICAgIGxldCBzZWNvbmRfd29yZCA9ICooc3JjLmFkZCgx KSk7CisgICAgICAgICAgICAgLy8gQ2hlY2sgaWYgdGhlIHdvcmRzIGNvbnRhaW5zIG5vbi1BU0NJ SQorICAgICAgICAgICAgIGlmICh3b3JkICYgQVNDSUlfTUFTSykgfCAoc2Vjb25kX3dvcmQgJiBB U0NJSV9NQVNLKSAhPSAwIHsKKyAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAg ICAgICAgIH0KKysgICAgICAgICAgICAvLyBTYWZldHk6IGRzdCBzYWZldHkgaW52YXJpYW50IHBh c3NlZCBkb3duCisgICAgICAgICAgICAgdW5wYWNrX2FsdSh3b3JkLCBzZWNvbmRfd29yZCwgZHN0 KTsKKyAgICAgICAgICAgICB0cnVlCisgICAgICAgICB9CisgCisrICAgICAgICAvLyBTYWZldHk6 IHNyYyBwb2ludHMgZm91ciB2YWxpZCBgdXNpemVgcywgZHN0IHBvaW50cyB0byB0d28gdmFsaWQg YHVzaXplYHMKKyAgICAgICAgICNbaW5saW5lKGFsd2F5cyldCisgICAgICAgICB1bnNhZmUgZm4g YmFzaWNfbGF0aW5fdG9fYXNjaWlfc3RyaWRlX2FsdShzcmM6ICpjb25zdCB1c2l6ZSwgZHN0OiAq bXV0IHVzaXplKSAtPiBib29sIHsKKysgICAgICAgICAgICAvLyBTYWZldHk6IHNyYyBzYWZldHkg aW52YXJpYW50IHVzZWQgaGVyZQorICAgICAgICAgICAgIGxldCBmaXJzdCA9ICpzcmM7CisgICAg ICAgICAgICAgbGV0IHNlY29uZCA9ICooc3JjLmFkZCgxKSk7CisgICAgICAgICAgICAgbGV0IHRo aXJkID0gKihzcmMuYWRkKDIpKTsKKyAgICAgICAgICAgICBsZXQgZm91cnRoID0gKihzcmMuYWRk KDMpKTsKKyAgICAgICAgICAgICBpZiAoZmlyc3QgJiBCQVNJQ19MQVRJTl9NQVNLKSB8IChzZWNv bmQgJiBCQVNJQ19MQVRJTl9NQVNLKSB8ICh0aGlyZCAmIEJBU0lDX0xBVElOX01BU0spIHwgKGZv dXJ0aCAmIEJBU0lDX0xBVElOX01BU0spICE9IDAgeworICAgICAgICAgICAgICAgICByZXR1cm4g ZmFsc2U7CisgICAgICAgICAgICAgfQorKyAgICAgICAgICAgIC8vIFNhZmV0eTogZHN0IHNhZmV0 eSBpbnZhcmlhbnQgcGFzc2VkIGRvd24KKyAgICAgICAgICAgICBwYWNrX2FsdShmaXJzdCwgc2Vj b25kLCB0aGlyZCwgZm91cnRoLCBkc3QpOworICAgICAgICAgICAgIHRydWUKKyAgICAgICAgIH0K KyAKKysgICAgICAgIC8vIFNhZmV0eTogc3JjLCBkc3QgYm90aCBwb2ludCB0byB0d28gdmFsaWQg YHVzaXplYHMgZWFjaAorKyAgICAgICAgLy8gU2FmZXR5LXVzYWJsZSBpbnZhcmlhbnQ6IFdpbGwg cmV0dXJuIGJ5dGUgaW5kZXggb2YgZmlyc3Qgbm9uLWFzY2lpIGJ5dGUuCisgICAgICAgICAjW2lu bGluZShhbHdheXMpXQorICAgICAgICAgdW5zYWZlIGZuIGFzY2lpX3RvX2FzY2lpX3N0cmlkZShz cmM6ICpjb25zdCB1c2l6ZSwgZHN0OiAqbXV0IHVzaXplKSAtPiBPcHRpb248dXNpemU+IHsKKysg ICAgICAgICAgICAvLyBTYWZldHk6IHNyYyBzYWZldHkgaW52YXJpYW50IHVzZWQgaGVyZQorICAg ICAgICAgICAgIGxldCB3b3JkID0gKnNyYzsKKyAgICAgICAgICAgICBsZXQgc2Vjb25kX3dvcmQg PSAqKHNyYy5hZGQoMSkpOworKyAgICAgICAgICAgIC8vIFNhZmV0eTogc3JjIHNhZmV0eSBpbnZh cmlhbnQgdXNlZCBoZXJlCisgICAgICAgICAgICAgKmRzdCA9IHdvcmQ7CisgICAgICAgICAgICAg Kihkc3QuYWRkKDEpKSA9IHNlY29uZF93b3JkOworKyAgICAgICAgICAgIC8vIFJlbGllcyBvbiBz YWZldHktdXNhYmxlIGludmFyaWFudCBoZXJlCisgICAgICAgICAgICAgZmluZF9ub25fYXNjaWko d29yZCwgc2Vjb25kX3dvcmQpCisgICAgICAgICB9CisgCisgICAgICAgICBiYXNpY19sYXRpbl9h bHUhKGFzY2lpX3RvX2Jhc2ljX2xhdGluLCB1OCwgdTE2LCBhc2NpaV90b19iYXNpY19sYXRpbl9z dHJpZGVfYWx1KTsKKyAgICAgICAgIGJhc2ljX2xhdGluX2FsdSEoYmFzaWNfbGF0aW5fdG9fYXNj aWksIHUxNiwgdTgsIGJhc2ljX2xhdGluX3RvX2FzY2lpX3N0cmlkZV9hbHUpOworICAgICAgICAg bGF0aW4xX2FsdSEodW5wYWNrX2xhdGluMSwgdTgsIHUxNiwgdW5wYWNrX2xhdGluMV9zdHJpZGVf YWx1KTsKKyAgICAgICAgIGxhdGluMV9hbHUhKHBhY2tfbGF0aW4xLCB1MTYsIHU4LCBwYWNrX2xh dGluMV9zdHJpZGVfYWx1KTsKKysgICAgICAgIC8vIFNhZmV0eSBpbnZhcmlhbnQgdXBoZWxkOiBh c2NpaV90b19hc2NpaV9zdHJpZGUgd2lsbCByZXR1cm4gYnl0ZSBpbmRleCBvZiBmaXJzdCBub24t YXNjaWkgaWYgZm91bmQKKyAgICAgICAgIGFzY2lpX2FsdSEoYXNjaWlfdG9fYXNjaWksIHU4LCB1 OCwgYXNjaWlfdG9fYXNjaWlfc3RyaWRlKTsKKyAgICAgfQorIH0KKyAKKyBwdWIgZm4gYXNjaWlf dmFsaWRfdXBfdG8oYnl0ZXM6ICZbdThdKSAtPiB1c2l6ZSB7CisgICAgIG1hdGNoIHZhbGlkYXRl X2FzY2lpKGJ5dGVzKSB7CisgICAgICAgICBOb25lID0+IGJ5dGVzLmxlbigpLAorICAgICAgICAg U29tZSgoXywgbnVtX3ZhbGlkKSkgPT4gbnVtX3ZhbGlkLAorZGlmZiAtLWdpdCBhL3RoaXJkX3Bh cnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL2hhbmRsZXMucnMgYi90aGlyZF9wYXJ0eS9ydXN0L2Vu Y29kaW5nX3JzL3NyYy9oYW5kbGVzLnJzCistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5n X3JzL3NyYy9oYW5kbGVzLnJzCisrKysgYi90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3Ny Yy9oYW5kbGVzLnJzCitAQCAtMjksMTcgKzI5LDE3IEBAIHVzZSBjcmF0ZTo6c2ltZF9mdW5jczo6 KjsKKyAjW2NmZyhhbGwoCisgICAgIGZlYXR1cmUgPSAic2ltZC1hY2NlbCIsCisgICAgIGFueSgK KyAgICAgICAgIHRhcmdldF9mZWF0dXJlID0gInNzZTIiLAorICAgICAgICAgYWxsKHRhcmdldF9l bmRpYW4gPSAibGl0dGxlIiwgdGFyZ2V0X2FyY2ggPSAiYWFyY2g2NCIpLAorICAgICAgICAgYWxs KHRhcmdldF9lbmRpYW4gPSAibGl0dGxlIiwgdGFyZ2V0X2ZlYXR1cmUgPSAibmVvbiIpCisgICAg ICkKKyApKV0KKy11c2UgcGFja2VkX3NpbWQ6OnUxNng4OworK3VzZSBjb3JlOjpzaW1kOjp1MTZ4 ODsKKyAKKyB1c2Ugc3VwZXI6OkRlY29kZXJSZXN1bHQ7CisgdXNlIHN1cGVyOjpFbmNvZGVyUmVz dWx0OworIHVzZSBjcmF0ZTo6YXNjaWk6Oio7CisgdXNlIGNyYXRlOjp1dGZfODo6Y29udmVydF91 dGY4X3RvX3V0ZjE2X3VwX3RvX2ludmFsaWQ7CisgdXNlIGNyYXRlOjp1dGZfODo6dXRmOF92YWxp ZF91cF90bzsKKyAKKyBwdWIgZW51bSBTcGFjZTxUPiB7CitAQCAtODUsODQgKzg1LDEwMCBAQCBp bXBsIEVuZGlhbiBmb3IgTGl0dGxlRW5kaWFuIHsKKyAgICAgY29uc3QgT1BQT1NJVEVfRU5ESUFO OiBib29sID0gZmFsc2U7CisgCisgICAgICNbY2ZnKHRhcmdldF9lbmRpYW4gPSAiYmlnIildCisg ICAgIGNvbnN0IE9QUE9TSVRFX0VORElBTjogYm9vbCA9IHRydWU7CisgfQorIAorICNbZGVyaXZl KERlYnVnLCBDb3B5LCBDbG9uZSldCisgc3RydWN0IFVuYWxpZ25lZFUxNlNsaWNlIHsKKysgICAg Ly8gU2FmZXR5IGludmFyaWFudDogcHRyIG11c3QgYmUgdmFsaWQgZm9yIHJlYWRpbmcgMipsZW4g Ynl0ZXMKKyAgICAgcHRyOiAqY29uc3QgdTgsCisgICAgIGxlbjogdXNpemUsCisgfQorIAorIGlt cGwgVW5hbGlnbmVkVTE2U2xpY2UgeworKyAgICAvLy8gU2FmZXR5OiBwdHIgbXVzdCBiZSB2YWxp ZCBmb3IgcmVhZGluZyAyKmxlbiBieXRlcworICAgICAjW2lubGluZShhbHdheXMpXQorICAgICBw dWIgdW5zYWZlIGZuIG5ldyhwdHI6ICpjb25zdCB1OCwgbGVuOiB1c2l6ZSkgLT4gVW5hbGlnbmVk VTE2U2xpY2UgeworKyAgICAgICAgLy8gU2FmZXR5OiBmaWVsZCBpbnZhcmlhbnQgcGFzc2VkIHVw IHRvIGNhbGxlciBoZXJlCisgICAgICAgICBVbmFsaWduZWRVMTZTbGljZSB7IHB0ciwgbGVuIH0K KyAgICAgfQorIAorICAgICAjW2lubGluZShhbHdheXMpXQorICAgICBwdWIgZm4gdHJpbV9sYXN0 KCZtdXQgc2VsZikgeworICAgICAgICAgYXNzZXJ0IShzZWxmLmxlbiA+IDApOworKyAgICAgICAg Ly8gU2FmZXR5OiBpbnZhcmlhbnQgdXBoZWxkIGhlcmU6IGEgc2xpY2UgaXMgc3RpbGwgdmFsaWQg d2l0aCBhIHNob3J0ZXIgbGVuCisgICAgICAgICBzZWxmLmxlbiAtPSAxOworICAgICB9CisgCisg ICAgICNbaW5saW5lKGFsd2F5cyldCisgICAgIHB1YiBmbiBhdCgmc2VsZiwgaTogdXNpemUpIC0+ IHUxNiB7CisgICAgICAgICB1c2UgY29yZTo6bWVtOjpNYXliZVVuaW5pdDsKKyAKKyAgICAgICAg IGFzc2VydCEoaSA8IHNlbGYubGVuKTsKKyAgICAgICAgIHVuc2FmZSB7CisgICAgICAgICAgICAg bGV0IG11dCB1OiBNYXliZVVuaW5pdDx1MTY+ID0gTWF5YmVVbmluaXQ6OnVuaW5pdCgpOworKyAg ICAgICAgICAgIC8vIFNhZmV0eTogaSBpcyBhdCBtb3N0IGxlbiAtIDEsIHdoaWNoIHdvcmtzIGhl cmUKKyAgICAgICAgICAgICA6OmNvcmU6OnB0cjo6Y29weV9ub25vdmVybGFwcGluZyhzZWxmLnB0 ci5hZGQoaSAqIDIpLCB1LmFzX211dF9wdHIoKSBhcyAqbXV0IHU4LCAyKTsKKysgICAgICAgICAg ICAvLyBTYWZldHk6IHZhbGlkIHJlYWQgYWJvdmUgbGV0cyB1cyBkbyB0aGlzCisgICAgICAgICAg ICAgdS5hc3N1bWVfaW5pdCgpCisgICAgICAgICB9CisgICAgIH0KKyAKKyAgICAgI1tjZmcoZmVh dHVyZSA9ICJzaW1kLWFjY2VsIildCisgICAgICNbaW5saW5lKGFsd2F5cyldCisgICAgIHB1YiBm biBzaW1kX2F0KCZzZWxmLCBpOiB1c2l6ZSkgLT4gdTE2eDggeworKyAgICAgICAgLy8gU2FmZXR5 OiBpL2xlbiBhcmUgb24gdGhlIHNjYWxlIG9mIHUxNnMsIGVhY2ggb25lIGNvcnJlc3BvbmRzIHRv IDIgdThzCisgICAgICAgICBhc3NlcnQhKGkgKyBTSU1EX1NUUklERV9TSVpFIC8gMiA8PSBzZWxm Lmxlbik7CisgICAgICAgICBsZXQgYnl0ZV9pbmRleCA9IGkgKiAyOworKyAgICAgICAgLy8gU2Fm ZXR5OiBsb2FkMTZfdW5hbGlnbmVkIG5lZWRzIFNJTURfU1RSSURFX1NJWkU9MTYgdTggZWxlbWVu dHMgdG8gcmVhZCwKKysgICAgICAgIC8vIG9yIDE2LzIgPSA4IHUxNiBlbGVtZW50cyB0byByZWFk LgorKyAgICAgICAgLy8gV2UgaGF2ZSBjaGVja2VkIHRoYXQgd2UgaGF2ZSBhdCBsZWFzdCB0aGF0 IG1hbnkgYWJvdmUuCisrCisgICAgICAgICB1bnNhZmUgeyB0b191MTZfbGFuZXMobG9hZDE2X3Vu YWxpZ25lZChzZWxmLnB0ci5hZGQoYnl0ZV9pbmRleCkpKSB9CisgICAgIH0KKyAKKyAgICAgI1tp bmxpbmUoYWx3YXlzKV0KKyAgICAgcHViIGZuIGxlbigmc2VsZikgLT4gdXNpemUgeworICAgICAg ICAgc2VsZi5sZW4KKyAgICAgfQorIAorICAgICAjW2lubGluZShhbHdheXMpXQorICAgICBwdWIg Zm4gdGFpbCgmc2VsZiwgZnJvbTogdXNpemUpIC0+IFVuYWxpZ25lZFUxNlNsaWNlIHsKKyAgICAg ICAgIC8vIFhYWCB0aGUgcmV0dXJuIHZhbHVlIHNob3VsZCBiZSByZXN0cmljdGVkIG5vdCB0bwor ICAgICAgICAgLy8gb3V0bGl2ZSBzZWxmLgorICAgICAgICAgYXNzZXJ0IShmcm9tIDw9IHNlbGYu bGVuKTsKKysgICAgICAgIC8vIFNhZmV0eTogVGhpcyB1cGhvbGRzIHRoZSBzYW1lIGludmFyaWFu dDogYGZyb21gIGlzIGluIGJvdW5kcyBhbmQgd2UncmUgcmV0dXJuaW5nIGEgc2hvcnRlciBzbGlj ZQorICAgICAgICAgdW5zYWZlIHsgVW5hbGlnbmVkVTE2U2xpY2U6Om5ldyhzZWxmLnB0ci5hZGQo ZnJvbSAqIDIpLCBzZWxmLmxlbiAtIGZyb20pIH0KKyAgICAgfQorIAorICAgICAjW2NmZyhmZWF0 dXJlID0gInNpbWQtYWNjZWwiKV0KKyAgICAgI1tpbmxpbmUoYWx3YXlzKV0KKyAgICAgcHViIGZu IGNvcHlfYm1wX3RvPEU6IEVuZGlhbj4oJnNlbGYsIG90aGVyOiAmbXV0IFt1MTZdKSAtPiBPcHRp b248KHUxNiwgdXNpemUpPiB7CisgICAgICAgICBhc3NlcnQhKHNlbGYubGVuIDw9IG90aGVyLmxl bigpKTsKKyAgICAgICAgIGxldCBtdXQgb2Zmc2V0ID0gMDsKKysgICAgICAgIC8vIFNhZmV0eTog U0lNRF9TVFJJREVfU0laRSBpcyBtZWFzdXJlZCBpbiBieXRlcywgd2hlcmVhcyBsZW4gaXMgaW4g dTE2cy4gV2UgY2hlY2sgd2UgY2FuCisrICAgICAgICAvLyBtdW5jaCBTSU1EX1NUUklERV9TSVpF IC8gMiB1MTZzIHdoaWNoIG1lYW5zIHdlIGNhbiB3cml0ZSBTSU1EX1NUUklERV9TSVpFIHU4cwor ICAgICAgICAgaWYgU0lNRF9TVFJJREVfU0laRSAvIDIgPD0gc2VsZi5sZW4geworICAgICAgICAg ICAgIGxldCBsZW5fbWludXNfc3RyaWRlID0gc2VsZi5sZW4gLSBTSU1EX1NUUklERV9TSVpFIC8g MjsKKyAgICAgICAgICAgICBsb29wIHsKKyAgICAgICAgICAgICAgICAgbGV0IG11dCBzaW1kID0g c2VsZi5zaW1kX2F0KG9mZnNldCk7CisgICAgICAgICAgICAgICAgIGlmIEU6Ok9QUE9TSVRFX0VO RElBTiB7CisgICAgICAgICAgICAgICAgICAgICBzaW1kID0gc2ltZF9ieXRlX3N3YXAoc2ltZCk7 CisgICAgICAgICAgICAgICAgIH0KKysgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiB3ZSBoYXZl IGVub3VnaCBzcGFjZSBvbiB0aGUgb3RoZXIgc2lkZSB0byB3cml0ZSB0aGlzCisgICAgICAgICAg ICAgICAgIHVuc2FmZSB7CisgICAgICAgICAgICAgICAgICAgICBzdG9yZThfdW5hbGlnbmVkKG90 aGVyLmFzX211dF9wdHIoKS5hZGQob2Zmc2V0KSwgc2ltZCk7CisgICAgICAgICAgICAgICAgIH0K KyAgICAgICAgICAgICAgICAgaWYgY29udGFpbnNfc3Vycm9nYXRlcyhzaW1kKSB7CisgICAgICAg ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg ICBvZmZzZXQgKz0gU0lNRF9TVFJJREVfU0laRSAvIDI7CisrICAgICAgICAgICAgICAgIC8vIFNh ZmV0eTogVGhpcyBlbnN1cmVzIHdlIHN0aWxsIGhhdmUgc3BhY2UgZm9yIHdyaXRpbmcgU0lNRF9T VFJJREVfU0laRSB1OHMKKyAgICAgICAgICAgICAgICAgaWYgb2Zmc2V0ID4gbGVuX21pbnVzX3N0 cmlkZSB7CisgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgfQor ICAgICAgICAgICAgIH0KKyAgICAgICAgIH0KKyAgICAgICAgIHdoaWxlIG9mZnNldCA8IHNlbGYu bGVuIHsKKyAgICAgICAgICAgICBsZXQgdW5pdCA9IHN3YXBfaWZfb3Bwb3NpdGVfZW5kaWFuOjo8 RT4oc2VsZi5hdChvZmZzZXQpKTsKKyAgICAgICAgICAgICBvdGhlcltvZmZzZXRdID0gdW5pdDsK K0BAIC0yMzEsMzMgKzI0NywzNyBAQCBmbiBjb3B5X3VuYWxpZ25lZF9iYXNpY19sYXRpbl90b19h c2NpaTxFCisgI1tjZmcoZmVhdHVyZSA9ICJzaW1kLWFjY2VsIildCisgI1tpbmxpbmUoYWx3YXlz KV0KKyBmbiBjb3B5X3VuYWxpZ25lZF9iYXNpY19sYXRpbl90b19hc2NpaTxFOiBFbmRpYW4+KAor ICAgICBzcmM6IFVuYWxpZ25lZFUxNlNsaWNlLAorICAgICBkc3Q6ICZtdXQgW3U4XSwKKyApIC0+ IENvcHlBc2NpaVJlc3VsdDx1c2l6ZSwgKHUxNiwgdXNpemUpPiB7CisgICAgIGxldCBsZW4gPSA6 OmNvcmU6OmNtcDo6bWluKHNyYy5sZW4oKSwgZHN0LmxlbigpKTsKKyAgICAgbGV0IG11dCBvZmZz ZXQgPSAwOworKyAgICAvLyBTYWZldHk6IFRoaXMgY2hlY2sgZW5zdXJlcyB3ZSBhcmUgYWJsZSB0 byByZWFkL3dyaXRlIGF0IGxlYXN0IFNJTURfU1RSSURFX1NJWkUgZWxlbWVudHMKKyAgICAgaWYg U0lNRF9TVFJJREVfU0laRSA8PSBsZW4geworICAgICAgICAgbGV0IGxlbl9taW51c19zdHJpZGUg PSBsZW4gLSBTSU1EX1NUUklERV9TSVpFOworICAgICAgICAgbG9vcCB7CisgICAgICAgICAgICAg bGV0IG11dCBmaXJzdCA9IHNyYy5zaW1kX2F0KG9mZnNldCk7CisgICAgICAgICAgICAgbGV0IG11 dCBzZWNvbmQgPSBzcmMuc2ltZF9hdChvZmZzZXQgKyAoU0lNRF9TVFJJREVfU0laRSAvIDIpKTsK KyAgICAgICAgICAgICBpZiBFOjpPUFBPU0lURV9FTkRJQU4geworICAgICAgICAgICAgICAgICBm aXJzdCA9IHNpbWRfYnl0ZV9zd2FwKGZpcnN0KTsKKyAgICAgICAgICAgICAgICAgc2Vjb25kID0g c2ltZF9ieXRlX3N3YXAoc2Vjb25kKTsKKyAgICAgICAgICAgICB9CisgICAgICAgICAgICAgaWYg IXNpbWRfaXNfYmFzaWNfbGF0aW4oZmlyc3QgfCBzZWNvbmQpIHsKKyAgICAgICAgICAgICAgICAg YnJlYWs7CisgICAgICAgICAgICAgfQorICAgICAgICAgICAgIGxldCBwYWNrZWQgPSBzaW1kX3Bh Y2soZmlyc3QsIHNlY29uZCk7CisrICAgICAgICAgICAgLy8gU2FmZXR5OiBXZSBhcmUgYWJsZSB0 byB3cml0ZSBTSU1EX1NUUklERV9TSVpFIGVsZW1lbnRzIGluIHRoaXMgaXRlcmF0aW9uCisgICAg ICAgICAgICAgdW5zYWZlIHsKKyAgICAgICAgICAgICAgICAgc3RvcmUxNl91bmFsaWduZWQoZHN0 LmFzX211dF9wdHIoKS5hZGQob2Zmc2V0KSwgcGFja2VkKTsKKyAgICAgICAgICAgICB9CisgICAg ICAgICAgICAgb2Zmc2V0ICs9IFNJTURfU1RSSURFX1NJWkU7CisrICAgICAgICAgICAgLy8gU2Fm ZXR5OiBUaGlzIGlzIGBvZmZzZXQgPiBsZW4gLSBTSU1EX1NUUklERV9TSVpFYCwgd2hpY2ggZW5z dXJlcyB0aGF0IHdlIGNhbiB3cml0ZSBhdCBsZWFzdCBTSU1EX1NUUklERV9TSVpFIGVsZW1lbnRz CisrICAgICAgICAgICAgLy8gaW4gdGhlIG5leHQgaXRlcmF0aW9uCisgICAgICAgICAgICAgaWYg b2Zmc2V0ID4gbGVuX21pbnVzX3N0cmlkZSB7CisgICAgICAgICAgICAgICAgIGJyZWFrOworICAg ICAgICAgICAgIH0KKyAgICAgICAgIH0KKyAgICAgfQorICAgICBjb3B5X3VuYWxpZ25lZF9iYXNp Y19sYXRpbl90b19hc2NpaV9hbHU6OjxFPihzcmMudGFpbChvZmZzZXQpLCAmbXV0IGRzdFtvZmZz ZXQuLl0sIG9mZnNldCkKKyB9CisgCitAQCAtNjMyLDk0ICs2NTIsMTA2IEBAIGltcGw8J2E+IFV0 ZjE2RGVzdGluYXRpb248J2E+IHsKKyAgICAgI1tpbmxpbmUoYWx3YXlzKV0KKyAgICAgZm4gd3Jp dGVfYXN0cmFsKCZtdXQgc2VsZiwgYXN0cmFsOiB1MzIpIHsKKyAgICAgICAgIGRlYnVnX2Fzc2Vy dCEoYXN0cmFsID4gMHhGRkZGKTsKKyAgICAgICAgIGRlYnVnX2Fzc2VydCEoYXN0cmFsIDw9IDB4 MTBfRkZGRik7CisgICAgICAgICBzZWxmLndyaXRlX2NvZGVfdW5pdCgoMHhEN0MwICsgKGFzdHJh bCA+PiAxMCkpIGFzIHUxNik7CisgICAgICAgICBzZWxmLndyaXRlX2NvZGVfdW5pdCgoMHhEQzAw ICsgKGFzdHJhbCAmIDB4M0ZGKSkgYXMgdTE2KTsKKyAgICAgfQorICAgICAjW2lubGluZShhbHdh eXMpXQorLSAgICBwdWIgZm4gd3JpdGVfc3Vycm9nYXRlX3BhaXIoJm11dCBzZWxmLCBoaWdoOiB1 MTYsIGxvdzogdTE2KSB7CisrICAgIGZuIHdyaXRlX3N1cnJvZ2F0ZV9wYWlyKCZtdXQgc2VsZiwg aGlnaDogdTE2LCBsb3c6IHUxNikgeworICAgICAgICAgc2VsZi53cml0ZV9jb2RlX3VuaXQoaGln aCk7CisgICAgICAgICBzZWxmLndyaXRlX2NvZGVfdW5pdChsb3cpOworICAgICB9CisgICAgICNb aW5saW5lKGFsd2F5cyldCisgICAgIGZuIHdyaXRlX2JpZzVfY29tYmluYXRpb24oJm11dCBzZWxm LCBjb21iaW5lZDogdTE2LCBjb21iaW5pbmc6IHUxNikgeworICAgICAgICAgc2VsZi53cml0ZV9i bXBfZXhjbF9hc2NpaShjb21iaW5lZCk7CisgICAgICAgICBzZWxmLndyaXRlX2JtcF9leGNsX2Fz Y2lpKGNvbWJpbmluZyk7CisgICAgIH0KKysgICAgLy8gU2FmZXR5LXVzYWJsZSBpbnZhcmlhbnQ6 IENvcHlBc2NpaVJlc3VsdDo6R29PbiB3aWxsIG9ubHkgY29udGFpbiBieXRlcyA+PTB4ODAKKyAg ICAgI1tpbmxpbmUoYWx3YXlzKV0KKyAgICAgcHViIGZuIGNvcHlfYXNjaWlfZnJvbV9jaGVja19z cGFjZV9ibXA8J2I+KAorICAgICAgICAgJidiIG11dCBzZWxmLAorICAgICAgICAgc291cmNlOiAm bXV0IEJ5dGVTb3VyY2UsCisgICAgICkgLT4gQ29weUFzY2lpUmVzdWx0PChEZWNvZGVyUmVzdWx0 LCB1c2l6ZSwgdXNpemUpLCAodTgsIFV0ZjE2Qm1wSGFuZGxlPCdiLCAnYT4pPiB7CisgICAgICAg ICBsZXQgbm9uX2FzY2lpX3JldCA9IHsKKyAgICAgICAgICAgICBsZXQgc3JjX3JlbWFpbmluZyA9 ICZzb3VyY2Uuc2xpY2Vbc291cmNlLnBvcy4uXTsKKyAgICAgICAgICAgICBsZXQgZHN0X3JlbWFp bmluZyA9ICZtdXQgc2VsZi5zbGljZVtzZWxmLnBvcy4uXTsKKyAgICAgICAgICAgICBsZXQgKHBl bmRpbmcsIGxlbmd0aCkgPSBpZiBkc3RfcmVtYWluaW5nLmxlbigpIDwgc3JjX3JlbWFpbmluZy5s ZW4oKSB7CisgICAgICAgICAgICAgICAgIChEZWNvZGVyUmVzdWx0OjpPdXRwdXRGdWxsLCBkc3Rf cmVtYWluaW5nLmxlbigpKQorICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAg IChEZWNvZGVyUmVzdWx0OjpJbnB1dEVtcHR5LCBzcmNfcmVtYWluaW5nLmxlbigpKQorICAgICAg ICAgICAgIH07CisrICAgICAgICAgICAgLy8gU2FmZXR5OiBUaGlzIGZ1bmN0aW9uIGlzIGRvY3Vt ZW50ZWQgYXMgbmVlZGluZyB2YWxpZCBwb2ludGVycyBmb3Igc3JjL2Rlc3QgYW5kIGxlbiwgd2hp Y2gKKysgICAgICAgICAgICAvLyBpcyB0cnVlIHNpbmNlIHdlJ3ZlIHBhc3NlZCB0aGUgbWludW11 bSBsZW5ndGggb2YgdGhlIHR3bworICAgICAgICAgICAgIG1hdGNoIHVuc2FmZSB7CisgICAgICAg ICAgICAgICAgIGFzY2lpX3RvX2Jhc2ljX2xhdGluKHNyY19yZW1haW5pbmcuYXNfcHRyKCksIGRz dF9yZW1haW5pbmcuYXNfbXV0X3B0cigpLCBsZW5ndGgpCisgICAgICAgICAgICAgfSB7CisgICAg ICAgICAgICAgICAgIE5vbmUgPT4geworICAgICAgICAgICAgICAgICAgICAgc291cmNlLnBvcyAr PSBsZW5ndGg7CisgICAgICAgICAgICAgICAgICAgICBzZWxmLnBvcyArPSBsZW5ndGg7CisgICAg ICAgICAgICAgICAgICAgICByZXR1cm4gQ29weUFzY2lpUmVzdWx0OjpTdG9wKChwZW5kaW5nLCBz b3VyY2UucG9zLCBzZWxmLnBvcykpOworICAgICAgICAgICAgICAgICB9CisrICAgICAgICAgICAg ICAgIC8vIFNhZmV0eTogdGhlIGZ1bmN0aW9uIGlzIGRvY3VtZW50ZWQgYXMgcmV0dXJuaW5nIGJ5 dGVzID49MHg4MCBpbiB0aGUgU29tZQorICAgICAgICAgICAgICAgICBTb21lKChub25fYXNjaWks IGNvbnN1bWVkKSkgPT4geworICAgICAgICAgICAgICAgICAgICAgc291cmNlLnBvcyArPSBjb25z dW1lZDsKKyAgICAgICAgICAgICAgICAgICAgIHNlbGYucG9zICs9IGNvbnN1bWVkOworICAgICAg ICAgICAgICAgICAgICAgc291cmNlLnBvcyArPSAxOyAvLyArMSBmb3Igbm9uX2FzY2lpCisrICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogbm9uLWFzY2lpIGJ1 YmJsZWQgb3V0IGhlcmUKKyAgICAgICAgICAgICAgICAgICAgIG5vbl9hc2NpaQorICAgICAgICAg ICAgICAgICB9CisgICAgICAgICAgICAgfQorICAgICAgICAgfTsKKysgICAgICAgIC8vIFNhZmV0 eTogbm9uLWFzY2lpIHJldHVybmVkIGhlcmUKKyAgICAgICAgIENvcHlBc2NpaVJlc3VsdDo6R29P bigobm9uX2FzY2lpX3JldCwgVXRmMTZCbXBIYW5kbGU6Om5ldyhzZWxmKSkpCisgICAgIH0KKysg ICAgLy8gU2FmZXR5LXVzYWJsZSBpbnZhcmlhbnQ6IENvcHlBc2NpaVJlc3VsdDo6R29PbiB3aWxs IG9ubHkgY29udGFpbiBieXRlcyA+PTB4ODAKKyAgICAgI1tpbmxpbmUoYWx3YXlzKV0KKyAgICAg cHViIGZuIGNvcHlfYXNjaWlfZnJvbV9jaGVja19zcGFjZV9hc3RyYWw8J2I+KAorICAgICAgICAg JidiIG11dCBzZWxmLAorICAgICAgICAgc291cmNlOiAmbXV0IEJ5dGVTb3VyY2UsCisgICAgICkg LT4gQ29weUFzY2lpUmVzdWx0PChEZWNvZGVyUmVzdWx0LCB1c2l6ZSwgdXNpemUpLCAodTgsIFV0 ZjE2QXN0cmFsSGFuZGxlPCdiLCAnYT4pPiB7CisgICAgICAgICBsZXQgbm9uX2FzY2lpX3JldCA9 IHsKKyAgICAgICAgICAgICBsZXQgZHN0X2xlbiA9IHNlbGYuc2xpY2UubGVuKCk7CisgICAgICAg ICAgICAgbGV0IHNyY19yZW1haW5pbmcgPSAmc291cmNlLnNsaWNlW3NvdXJjZS5wb3MuLl07Cisg ICAgICAgICAgICAgbGV0IGRzdF9yZW1haW5pbmcgPSAmbXV0IHNlbGYuc2xpY2Vbc2VsZi5wb3Mu Ll07CisgICAgICAgICAgICAgbGV0IChwZW5kaW5nLCBsZW5ndGgpID0gaWYgZHN0X3JlbWFpbmlu Zy5sZW4oKSA8IHNyY19yZW1haW5pbmcubGVuKCkgeworICAgICAgICAgICAgICAgICAoRGVjb2Rl clJlc3VsdDo6T3V0cHV0RnVsbCwgZHN0X3JlbWFpbmluZy5sZW4oKSkKKyAgICAgICAgICAgICB9 IGVsc2UgeworICAgICAgICAgICAgICAgICAoRGVjb2RlclJlc3VsdDo6SW5wdXRFbXB0eSwgc3Jj X3JlbWFpbmluZy5sZW4oKSkKKyAgICAgICAgICAgICB9OworKyAgICAgICAgICAgIC8vIFNhZmV0 eTogVGhpcyBmdW5jdGlvbiBpcyBkb2N1bWVudGVkIGFzIG5lZWRpbmcgdmFsaWQgcG9pbnRlcnMg Zm9yIHNyYy9kZXN0IGFuZCBsZW4sIHdoaWNoCisrICAgICAgICAgICAgLy8gaXMgdHJ1ZSBzaW5j ZSB3ZSd2ZSBwYXNzZWQgdGhlIG1pbnVtdW0gbGVuZ3RoIG9mIHRoZSB0d28KKyAgICAgICAgICAg ICBtYXRjaCB1bnNhZmUgeworICAgICAgICAgICAgICAgICBhc2NpaV90b19iYXNpY19sYXRpbihz cmNfcmVtYWluaW5nLmFzX3B0cigpLCBkc3RfcmVtYWluaW5nLmFzX211dF9wdHIoKSwgbGVuZ3Ro KQorICAgICAgICAgICAgIH0geworICAgICAgICAgICAgICAgICBOb25lID0+IHsKKyAgICAgICAg ICAgICAgICAgICAgIHNvdXJjZS5wb3MgKz0gbGVuZ3RoOworICAgICAgICAgICAgICAgICAgICAg c2VsZi5wb3MgKz0gbGVuZ3RoOworICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIENvcHlBc2Np aVJlc3VsdDo6U3RvcCgocGVuZGluZywgc291cmNlLnBvcywgc2VsZi5wb3MpKTsKKyAgICAgICAg ICAgICAgICAgfQorKyAgICAgICAgICAgICAgICAvLyBTYWZldHk6IHRoZSBmdW5jdGlvbiBpcyBk b2N1bWVudGVkIGFzIHJldHVybmluZyBieXRlcyA+PTB4ODAgaW4gdGhlIFNvbWUKKyAgICAgICAg ICAgICAgICAgU29tZSgobm9uX2FzY2lpLCBjb25zdW1lZCkpID0+IHsKKyAgICAgICAgICAgICAg ICAgICAgIHNvdXJjZS5wb3MgKz0gY29uc3VtZWQ7CisgICAgICAgICAgICAgICAgICAgICBzZWxm LnBvcyArPSBjb25zdW1lZDsKKyAgICAgICAgICAgICAgICAgICAgIGlmIHNlbGYucG9zICsgMSA8 IGRzdF9sZW4geworICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZS5wb3MgKz0gMTsgLy8g KzEgZm9yIG5vbl9hc2NpaQorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgLy8gU2FmZXR5OiBub24tYXNjaWkgYnViYmxlZCBvdXQgaGVyZQorICAgICAgICAgICAgICAg ICAgICAgICAgIG5vbl9hc2NpaQorICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAg ICAgICAgICAgICAgICAgICAgICByZXR1cm4gQ29weUFzY2lpUmVzdWx0OjpTdG9wKCgKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgRGVjb2RlclJlc3VsdDo6T3V0cHV0RnVsbCwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlLnBvcywKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2VsZi5wb3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgKSk7CisgICAgICAg ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICB9CisgICAg ICAgICB9OworKyAgICAgICAgLy8gU2FmZXR5OiBub24tYXNjaWkgcmV0dXJuZWQgaGVyZQorICAg ICAgICAgQ29weUFzY2lpUmVzdWx0OjpHb09uKChub25fYXNjaWlfcmV0LCBVdGYxNkFzdHJhbEhh bmRsZTo6bmV3KHNlbGYpKSkKKyAgICAgfQorICAgICAjW2lubGluZShhbHdheXMpXQorICAgICBw dWIgZm4gY29weV91dGY4X3VwX3RvX2ludmFsaWRfZnJvbSgmbXV0IHNlbGYsIHNvdXJjZTogJm11 dCBCeXRlU291cmNlKSB7CisgICAgICAgICBsZXQgc3JjX3JlbWFpbmluZyA9ICZzb3VyY2Uuc2xp Y2Vbc291cmNlLnBvcy4uXTsKKyAgICAgICAgIGxldCBkc3RfcmVtYWluaW5nID0gJm11dCBzZWxm LnNsaWNlW3NlbGYucG9zLi5dOworICAgICAgICAgbGV0IChyZWFkLCB3cml0dGVuKSA9IGNvbnZl cnRfdXRmOF90b191dGYxNl91cF90b19pbnZhbGlkKHNyY19yZW1haW5pbmcsIGRzdF9yZW1haW5p bmcpOworICAgICAgICAgc291cmNlLnBvcyArPSByZWFkOworZGlmZiAtLWdpdCBhL3RoaXJkX3Bh cnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL2xpYi5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2Rp bmdfcnMvc3JjL2xpYi5ycworLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMv bGliLnJzCisrKysgYi90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy9saWIucnMKK0BA IC02ODQsMzcgKzY4NCwyNiBAQAorIC8vISA8dHI+PHRkPlRJUy02MjA8L3RkPjx0ZD53aW5kb3dz LTg3NDwvdGQ+PC90cj4KKyAvLyEgPC90Ym9keT4KKyAvLyEgPC90YWJsZT4KKyAvLyEKKyAvLyEg U2VlIHRoZSBzZWN0aW9uIFtfVVRGLTE2TEUsIFVURi0xNkJFIGFuZCBVbmljb2RlIEVuY29kaW5n IFNjaGVtZXNfXSgjdXRmLTE2bGUtdXRmLTE2YmUtYW5kLXVuaWNvZGUtZW5jb2Rpbmctc2NoZW1l cykKKyAvLyEgZm9yIGRpc2N1c3Npb24gYWJvdXQgdGhlIFVURi0xNiBmYW1pbHkuCisgCisgIyFb bm9fc3RkXQorLSMhW2NmZ19hdHRyKGZlYXR1cmUgPSAic2ltZC1hY2NlbCIsIGZlYXR1cmUoY29y ZV9pbnRyaW5zaWNzKSldCisrIyFbY2ZnX2F0dHIoZmVhdHVyZSA9ICJzaW1kLWFjY2VsIiwgZmVh dHVyZShjb3JlX2ludHJpbnNpY3MsIHBvcnRhYmxlX3NpbWQpKV0KKyAKKyAjW2NmZyhmZWF0dXJl ID0gImFsbG9jIildCisgI1tjZmdfYXR0cih0ZXN0LCBtYWNyb191c2UpXQorIGV4dGVybiBjcmF0 ZSBhbGxvYzsKKyAKKyBleHRlcm4gY3JhdGUgY29yZTsKKyAjW21hY3JvX3VzZV0KKyBleHRlcm4g Y3JhdGUgY2ZnX2lmOworIAorLSNbY2ZnKGFsbCgKKy0gICAgZmVhdHVyZSA9ICJzaW1kLWFjY2Vs IiwKKy0gICAgYW55KAorLSAgICAgICAgdGFyZ2V0X2ZlYXR1cmUgPSAic3NlMiIsCistICAgICAg ICBhbGwodGFyZ2V0X2VuZGlhbiA9ICJsaXR0bGUiLCB0YXJnZXRfYXJjaCA9ICJhYXJjaDY0Iiks CistICAgICAgICBhbGwodGFyZ2V0X2VuZGlhbiA9ICJsaXR0bGUiLCB0YXJnZXRfZmVhdHVyZSA9 ICJuZW9uIikKKy0gICAgKQorLSkpXQorLSNbbWFjcm9fdXNlKHNodWZmbGUpXQorLWV4dGVybiBj cmF0ZSBwYWNrZWRfc2ltZDsKKy0KKyAjW2NmZyhmZWF0dXJlID0gInNlcmRlIildCisgZXh0ZXJu IGNyYXRlIHNlcmRlOworIAorICNbY2ZnKGFsbCh0ZXN0LCBmZWF0dXJlID0gInNlcmRlIikpXQor IGV4dGVybiBjcmF0ZSBiaW5jb2RlOworICNbY2ZnKGFsbCh0ZXN0LCBmZWF0dXJlID0gInNlcmRl IikpXQorICNbbWFjcm9fdXNlXQorIGV4dGVybiBjcmF0ZSBzZXJkZV9kZXJpdmU7CitkaWZmIC0t Z2l0IGEvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvbWVtLnJzIGIvdGhpcmRfcGFy dHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvbWVtLnJzCistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L2Vu Y29kaW5nX3JzL3NyYy9tZW0ucnMKKysrKyBiL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMv c3JjL21lbS5ycworQEAgLTExMSwxNiArMTExLDIxIEBAIG1hY3JvX3J1bGVzISBieV91bml0X2No ZWNrX2FsdSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVudGlsX2FsaWdubWVudCAt PSAxOworICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAg ICBpZiBhY2N1ID49ICRib3VuZCB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVy biBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAg ICB9CisgICAgICAgICAgICAgICAgICAgICBsZXQgbGVuX21pbnVzX3N0cmlkZSA9IGxlbiAtIEFM VV9BTElHTk1FTlQgLyB1bml0X3NpemU7CisgICAgICAgICAgICAgICAgICAgICBpZiBvZmZzZXQg KyAoNCAqIChBTFVfQUxJR05NRU5UIC8gdW5pdF9zaXplKSkgPD0gbGVuIHsKKysgICAgICAgICAg ICAgICAgICAgICAgICAvLyBTYWZldHk6IHRoZSBhYm92ZSBjaGVjayBsZXRzIHVzIHBlcmZvcm0g NCBjb25zZWN1dGl2ZSByZWFkcyBvZgorKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGxlbmd0 aCBBTFVfQUxJR05NRU5UIC8gdW5pdF9zaXplLiBBTFVfQUxJR05NRU5UIGlzIHRoZSBzaXplIG9m IHVzaXplLCBhbmQgdW5pdF9zaXplCisrICAgICAgICAgICAgICAgICAgICAgICAgLy8gaXMgdGhl IHNpemUgb2YgdGhlIGBzcmNgIHBvaW50ZXIsIHNvIHRoaXMgaXMgZXF1YWwgdG8gcGVyZm9ybWlu ZyBmb3VyIHVzaXplIHJlYWRzLgorKyAgICAgICAgICAgICAgICAgICAgICAgIC8vCisrICAgICAg ICAgICAgICAgICAgICAgICAgLy8gVGhpcyBpbnZhcmlhbnQgaXMgdXBoZWxkIG9uIGFsbCBsb29w IGl0ZXJhdGlvbnMKKyAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbGVuX21pbnVzX3Vucm9s bCA9IGxlbiAtICg0ICogKEFMVV9BTElHTk1FTlQgLyB1bml0X3NpemUpKTsKKyAgICAgICAgICAg ICAgICAgICAgICAgICBsb29wIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHVu cm9sbF9hY2N1ID0gdW5zYWZlIHsgKihzcmMuYWRkKG9mZnNldCkgYXMgKmNvbnN0IHVzaXplKSB9 CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHVuc2FmZSB7CisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKihzcmMuYWRkKG9mZnNldCArIChBTFVfQUxJR05N RU5UIC8gdW5pdF9zaXplKSkgYXMgKmNvbnN0IHVzaXplKQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCB1bnNhZmUg eworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICooc3JjLmFkZChvZmZzZXQg KyAoMiAqIChBTFVfQUxJR05NRU5UIC8gdW5pdF9zaXplKSkpCitAQCAtMTI5LDIyICsxMzQsMjQg QEAgbWFjcm9fcnVsZXMhIGJ5X3VuaXRfY2hlY2tfYWx1IHsKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgdW5zYWZlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAqKHNyYy5hZGQob2Zmc2V0ICsgKDMgKiAoQUxVX0FMSUdOTUVOVCAvIHVuaXRfc2l6ZSkp KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcyAqY29uc3QgdXNp emUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9OworICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBpZiB1bnJvbGxfYWNjdSAmICRtYXNrICE9IDAgeworICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCArPSA0ICogKEFM VV9BTElHTk1FTlQgLyB1bml0X3NpemUpOworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAv LyBTYWZldHk6IHRoaXMgY2hlY2sgbGV0cyB1cyBjb250aW51ZSB0byBwZXJmb3JtIHRoZSA0IHJl YWRzIGVhcmxpZXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgb2Zmc2V0ID4gbGVu X21pbnVzX3Vucm9sbCB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAg IH0KKyAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgIHdoaWxlIG9m ZnNldCA8PSBsZW5fbWludXNfc3RyaWRlIHsKKysgICAgICAgICAgICAgICAgICAgICAgICAvLyBT YWZldHk6IHRoZSBhYm92ZSBjaGVjayBsZXRzIHVzIHBlcmZvcm0gb25lIHVzaXplIHJlYWQuCisg ICAgICAgICAgICAgICAgICAgICAgICAgYWNjdSB8PSB1bnNhZmUgeyAqKHNyYy5hZGQob2Zmc2V0 KSBhcyAqY29uc3QgdXNpemUpIH07CisgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9 IEFMVV9BTElHTk1FTlQgLyB1bml0X3NpemU7CisgICAgICAgICAgICAgICAgICAgICB9CisgICAg ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICB9CisgICAgICAgICAgICAgZm9yICZ1bml0IGlu ICZidWZmZXJbb2Zmc2V0Li5dIHsKKyAgICAgICAgICAgICAgICAgYWNjdSB8PSB1bml0IGFzIHVz aXplOworICAgICAgICAgICAgIH0KK0BAIC0xODQsMTYgKzE5MSwyMSBAQCBtYWNyb19ydWxlcyEg YnlfdW5pdF9jaGVja19zaW1kIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW50aWxf YWxpZ25tZW50IC09IDE7CisgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg ICAgICAgICAgICAgIGlmIGFjY3UgPj0gJGJvdW5kIHsKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgIGxldCBsZW5fbWludXNfc3RyaWRl ID0gbGVuIC0gU0lNRF9TVFJJREVfU0laRSAvIHVuaXRfc2l6ZTsKKyAgICAgICAgICAgICAgICAg ICAgIGlmIG9mZnNldCArICg0ICogKFNJTURfU1RSSURFX1NJWkUgLyB1bml0X3NpemUpKSA8PSBs ZW4geworKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogdGhlIGFib3ZlIGNoZWNr IGxldHMgdXMgcGVyZm9ybSA0IGNvbnNlY3V0aXZlIHJlYWRzIG9mCisrICAgICAgICAgICAgICAg ICAgICAgICAgLy8gbGVuZ3RoIFNJTURfU1RSSURFX1NJWkUgLyB1bml0X3NpemUuIFNJTURfU1RS SURFX1NJWkUgaXMgdGhlIHNpemUgb2YgJHNpbWRfdHksIGFuZCB1bml0X3NpemUKKysgICAgICAg ICAgICAgICAgICAgICAgICAvLyBpcyB0aGUgc2l6ZSBvZiB0aGUgYHNyY2AgcG9pbnRlciwgc28g dGhpcyBpcyBlcXVhbCB0byBwZXJmb3JtaW5nIGZvdXIgJHNpbWRfdHkgcmVhZHMuCisrICAgICAg ICAgICAgICAgICAgICAgICAgLy8KKysgICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIGlu dmFyaWFudCBpcyB1cGhlbGQgb24gYWxsIGxvb3AgaXRlcmF0aW9ucworICAgICAgICAgICAgICAg ICAgICAgICAgIGxldCBsZW5fbWludXNfdW5yb2xsID0gbGVuIC0gKDQgKiAoU0lNRF9TVFJJREVf U0laRSAvIHVuaXRfc2l6ZSkpOworICAgICAgICAgICAgICAgICAgICAgICAgIGxvb3AgeworICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdW5yb2xsX2FjY3UgPSB1bnNhZmUgeyAqKHNy Yy5hZGQob2Zmc2V0KSBhcyAqY29uc3QgJHNpbWRfdHkpIH0KKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgdW5zYWZlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAqKHNyYy5hZGQob2Zmc2V0ICsgKFNJTURfU1RSSURFX1NJWkUgLyB1bml0X3NpemUpKQor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcyAqY29uc3QgJHNpbWRf dHkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB8IHVuc2FmZSB7CitAQCAtMjAzLDIzICsyMTUsMjUgQEAgbWFjcm9f cnVsZXMhIGJ5X3VuaXRfY2hlY2tfc2ltZCB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB8IHVuc2FmZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKihz cmMuYWRkKG9mZnNldCArICgzICogKFNJTURfU1RSSURFX1NJWkUgLyB1bml0X3NpemUpKSkKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXMgKmNvbnN0ICRzaW1kX3R5 KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgaWYgISRmdW5jKHVucm9sbF9hY2N1KSB7CisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IDQgKiAoU0lNRF9TVFJJ REVfU0laRSAvIHVuaXRfc2l6ZSk7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNh ZmV0eTogdGhpcyBjaGVjayBsZXRzIHVzIGNvbnRpbnVlIHRvIHBlcmZvcm0gdGhlIDQgcmVhZHMg ZWFybGllcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBvZmZzZXQgPiBsZW5fbWlu dXNfdW5yb2xsIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgfQor ICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBzaW1k X2FjY3UgPSAkc3BsYXQ7CisgICAgICAgICAgICAgICAgICAgICB3aGlsZSBvZmZzZXQgPD0gbGVu X21pbnVzX3N0cmlkZSB7CisrICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiB0aGUg YWJvdmUgY2hlY2sgbGV0cyB1cyBwZXJmb3JtIG9uZSAkc2ltZF90eSByZWFkLgorICAgICAgICAg ICAgICAgICAgICAgICAgIHNpbWRfYWNjdSA9IHNpbWRfYWNjdSB8IHVuc2FmZSB7ICooc3JjLmFk ZChvZmZzZXQpIGFzICpjb25zdCAkc2ltZF90eSkgfTsKKyAgICAgICAgICAgICAgICAgICAgICAg ICBvZmZzZXQgKz0gU0lNRF9TVFJJREVfU0laRSAvIHVuaXRfc2l6ZTsKKyAgICAgICAgICAgICAg ICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgIGlmICEkZnVuYyhzaW1kX2FjY3UpIHsKKyAg ICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgICAg ICB9CisgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICB9CitAQCAtMjI5LDE4ICsyNDMs MTggQEAgbWFjcm9fcnVsZXMhIGJ5X3VuaXRfY2hlY2tfc2ltZCB7CisgICAgICAgICAgICAgYWNj dSA8ICRib3VuZAorICAgICAgICAgfQorICAgICB9OworIH0KKyAKKyBjZmdfaWYhIHsKKyAgICAg aWYgI1tjZmcoYWxsKGZlYXR1cmUgPSAic2ltZC1hY2NlbCIsIGFueSh0YXJnZXRfZmVhdHVyZSA9 ICJzc2UyIiwgYWxsKHRhcmdldF9lbmRpYW4gPSAibGl0dGxlIiwgdGFyZ2V0X2FyY2ggPSAiYWFy Y2g2NCIpLCBhbGwodGFyZ2V0X2VuZGlhbiA9ICJsaXR0bGUiLCB0YXJnZXRfZmVhdHVyZSA9ICJu ZW9uIikpKSldIHsKKyAgICAgICAgIHVzZSBjcmF0ZTo6c2ltZF9mdW5jczo6KjsKKy0gICAgICAg IHVzZSBwYWNrZWRfc2ltZDo6dTh4MTY7CistICAgICAgICB1c2UgcGFja2VkX3NpbWQ6OnUxNng4 OworKyAgICAgICAgdXNlIGNvcmU6OnNpbWQ6OnU4eDE2OworKyAgICAgICAgdXNlIGNvcmU6OnNp bWQ6OnUxNng4OworIAorICAgICAgICAgY29uc3QgU0lNRF9BTElHTk1FTlQ6IHVzaXplID0gMTY7 CisgCisgICAgICAgICBjb25zdCBTSU1EX0FMSUdOTUVOVF9NQVNLOiB1c2l6ZSA9IDE1OworIAor ICAgICAgICAgYnlfdW5pdF9jaGVja19zaW1kIShpc19hc2NpaV9pbXBsLCB1OCwgdTh4MTY6OnNw bGF0KDApLCB1OHgxNiwgMHg4MCwgc2ltZF9pc19hc2NpaSk7CisgICAgICAgICBieV91bml0X2No ZWNrX3NpbWQhKGlzX2Jhc2ljX2xhdGluX2ltcGwsIHUxNiwgdTE2eDg6OnNwbGF0KDApLCB1MTZ4 OCwgMHg4MCwgc2ltZF9pc19iYXNpY19sYXRpbik7CisgICAgICAgICBieV91bml0X2NoZWNrX3Np bWQhKGlzX3V0ZjE2X2xhdGluMV9pbXBsLCB1MTYsIHUxNng4OjpzcGxhdCgwKSwgdTE2eDgsIDB4 MTAwLCBzaW1kX2lzX2xhdGluMSk7CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9lbmNv ZGluZ19ycy9zcmMvc2ltZF9mdW5jcy5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMv c3JjL3NpbWRfZnVuY3MucnMKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3Jj L3NpbWRfZnVuY3MucnMKKysrKyBiL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3Np bWRfZnVuY3MucnMKK0BAIC0yLDY1ICsyLDg0IEBACisgLy8gZmlsZSBhdCB0aGUgdG9wLWxldmVs IGRpcmVjdG9yeSBvZiB0aGlzIGRpc3RyaWJ1dGlvbi4KKyAvLworIC8vIExpY2Vuc2VkIHVuZGVy IHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgPExJQ0VOU0UtQVBBQ0hFIG9yCisgLy8g aHR0cHM6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMD4gb3IgdGhlIE1JVCBs aWNlbnNlCisgLy8gPExJQ0VOU0UtTUlUIG9yIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5z ZXMvTUlUPiwgYXQgeW91cgorIC8vIG9wdGlvbi4gVGhpcyBmaWxlIG1heSBub3QgYmUgY29waWVk LCBtb2RpZmllZCwgb3IgZGlzdHJpYnV0ZWQKKyAvLyBleGNlcHQgYWNjb3JkaW5nIHRvIHRob3Nl IHRlcm1zLgorIAorLXVzZSBwYWNrZWRfc2ltZDo6dTE2eDg7CistdXNlIHBhY2tlZF9zaW1kOjp1 OHgxNjsKKy11c2UgcGFja2VkX3NpbWQ6OkludG9CaXRzOworK3VzZSBhbnlfYWxsX3dvcmthcm91 bmQ6OmFsbF9tYXNrMTZ4ODsKKyt1c2UgYW55X2FsbF93b3JrYXJvdW5kOjphbGxfbWFzazh4MTY7 CisrdXNlIGFueV9hbGxfd29ya2Fyb3VuZDo6YW55X21hc2sxNng4OworK3VzZSBhbnlfYWxsX3dv cmthcm91bmQ6OmFueV9tYXNrOHgxNjsKKyt1c2UgY29yZTo6c2ltZDo6Y21wOjpTaW1kUGFydGlh bEVxOworK3VzZSBjb3JlOjpzaW1kOjpjbXA6OlNpbWRQYXJ0aWFsT3JkOworK3VzZSBjb3JlOjpz aW1kOjptYXNrMTZ4ODsKKyt1c2UgY29yZTo6c2ltZDo6bWFzazh4MTY7CisrdXNlIGNvcmU6OnNp bWQ6OnNpbWRfc3dpenpsZTsKKyt1c2UgY29yZTo6c2ltZDo6dTE2eDg7CisrdXNlIGNvcmU6OnNp bWQ6OnU4eDE2OworK3VzZSBjb3JlOjpzaW1kOjpUb0J5dGVzOworIAorIC8vIFRPRE86IE1pZ3Jh dGUgdW5hbGlnbmVkIGFjY2VzcyB0byBzdGRsaWIgY29kZSBpZi93aGVuIHRoZSBSRkMKKyAvLyBo dHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL3JmY3MvcHVsbC8xNzI1IGlzIGltcGxlbWVudGVk LgorIAorKy8vLyBTYWZldHkgaW52YXJpYW50OiBwdHIgbXVzdCBiZSB2YWxpZCBmb3IgYW4gdW5h bGlnbmVkIHJlYWQgb2YgMTYgYnl0ZXMKKyAjW2lubGluZShhbHdheXMpXQorIHB1YiB1bnNhZmUg Zm4gbG9hZDE2X3VuYWxpZ25lZChwdHI6ICpjb25zdCB1OCkgLT4gdTh4MTYgeworLSAgICBsZXQg bXV0IHNpbWQgPSA6OmNvcmU6Om1lbTo6dW5pbml0aWFsaXplZCgpOworLSAgICA6OmNvcmU6OnB0 cjo6Y29weV9ub25vdmVybGFwcGluZyhwdHIsICZtdXQgc2ltZCBhcyAqbXV0IHU4eDE2IGFzICpt dXQgdTgsIDE2KTsKKy0gICAgc2ltZAorKyAgICBsZXQgbXV0IHNpbWQgPSA6OmNvcmU6Om1lbTo6 TWF5YmVVbmluaXQ6Ojx1OHgxNj46OnVuaW5pdCgpOworKyAgICA6OmNvcmU6OnB0cjo6Y29weV9u b25vdmVybGFwcGluZyhwdHIsIHNpbWQuYXNfbXV0X3B0cigpIGFzICptdXQgdTgsIDE2KTsKKysg ICAgLy8gU2FmZXR5OiBjb3BpZWQgMTYgYnl0ZXMgb2YgaW5pdGlhbGl6ZWQgbWVtb3J5IGludG8g dGhpcywgaXQgaXMgbm93IGluaXRpYWxpemVkCisrICAgIHNpbWQuYXNzdW1lX2luaXQoKQorIH0K KyAKKysvLy8gU2FmZXR5IGludmFyaWFudDogcHRyIG11c3QgYmUgdmFsaWQgZm9yIGFuIGFsaWdu ZWQtZm9yLXU4eDE2IHJlYWQgb2YgMTYgYnl0ZXMKKyAjW2FsbG93KGRlYWRfY29kZSldCisgI1tp bmxpbmUoYWx3YXlzKV0KKyBwdWIgdW5zYWZlIGZuIGxvYWQxNl9hbGlnbmVkKHB0cjogKmNvbnN0 IHU4KSAtPiB1OHgxNiB7CisgICAgICoocHRyIGFzICpjb25zdCB1OHgxNikKKyB9CisgCisrLy8v IFNhZmV0eSBpbnZhcmlhbnQ6IHB0ciBtdXN0IGJlIHZhbGlkIGZvciBhbiB1bmFsaWduZWQgc3Rv cmUgb2YgMTYgYnl0ZXMKKyAjW2lubGluZShhbHdheXMpXQorIHB1YiB1bnNhZmUgZm4gc3RvcmUx Nl91bmFsaWduZWQocHRyOiAqbXV0IHU4LCBzOiB1OHgxNikgeworICAgICA6OmNvcmU6OnB0cjo6 Y29weV9ub25vdmVybGFwcGluZygmcyBhcyAqY29uc3QgdTh4MTYgYXMgKmNvbnN0IHU4LCBwdHIs IDE2KTsKKyB9CisgCisrLy8vIFNhZmV0eSBpbnZhcmlhbnQ6IHB0ciBtdXN0IGJlIHZhbGlkIGZv ciBhbiBhbGlnbmVkLWZvci11OHgxNiBzdG9yZSBvZiAxNiBieXRlcworICNbYWxsb3coZGVhZF9j b2RlKV0KKyAjW2lubGluZShhbHdheXMpXQorIHB1YiB1bnNhZmUgZm4gc3RvcmUxNl9hbGlnbmVk KHB0cjogKm11dCB1OCwgczogdTh4MTYpIHsKKyAgICAgKihwdHIgYXMgKm11dCB1OHgxNikgPSBz OworIH0KKyAKKysvLy8gU2FmZXR5IGludmFyaWFudDogcHRyIG11c3QgYmUgdmFsaWQgZm9yIGFu IHVuYWxpZ25lZCByZWFkIG9mIDE2IGJ5dGVzCisgI1tpbmxpbmUoYWx3YXlzKV0KKyBwdWIgdW5z YWZlIGZuIGxvYWQ4X3VuYWxpZ25lZChwdHI6ICpjb25zdCB1MTYpIC0+IHUxNng4IHsKKy0gICAg bGV0IG11dCBzaW1kID0gOjpjb3JlOjptZW06OnVuaW5pdGlhbGl6ZWQoKTsKKy0gICAgOjpjb3Jl OjpwdHI6OmNvcHlfbm9ub3ZlcmxhcHBpbmcocHRyIGFzICpjb25zdCB1OCwgJm11dCBzaW1kIGFz ICptdXQgdTE2eDggYXMgKm11dCB1OCwgMTYpOworLSAgICBzaW1kCisrICAgIGxldCBtdXQgc2lt ZCA9IDo6Y29yZTo6bWVtOjpNYXliZVVuaW5pdDo6PHUxNng4Pjo6dW5pbml0KCk7CisrICAgIDo6 Y29yZTo6cHRyOjpjb3B5X25vbm92ZXJsYXBwaW5nKHB0ciBhcyAqY29uc3QgdTgsIHNpbWQuYXNf bXV0X3B0cigpIGFzICptdXQgdTgsIDE2KTsKKysgICAgLy8gU2FmZXR5OiBjb3BpZWQgMTYgYnl0 ZXMgb2YgaW5pdGlhbGl6ZWQgbWVtb3J5IGludG8gdGhpcywgaXQgaXMgbm93IGluaXRpYWxpemVk CisrICAgIHNpbWQuYXNzdW1lX2luaXQoKQorIH0KKyAKKysvLy8gU2FmZXR5IGludmFyaWFudDog cHRyIG11c3QgYmUgdmFsaWQgZm9yIGFuIGFsaWduZWQtZm9yLXUxNng4IHJlYWQgb2YgMTYgYnl0 ZXMKKyAjW2FsbG93KGRlYWRfY29kZSldCisgI1tpbmxpbmUoYWx3YXlzKV0KKyBwdWIgdW5zYWZl IGZuIGxvYWQ4X2FsaWduZWQocHRyOiAqY29uc3QgdTE2KSAtPiB1MTZ4OCB7CisgICAgICoocHRy IGFzICpjb25zdCB1MTZ4OCkKKyB9CisgCisrLy8vIFNhZmV0eSBpbnZhcmlhbnQ6IHB0ciBtdXN0 IGJlIHZhbGlkIGZvciBhbiB1bmFsaWduZWQgc3RvcmUgb2YgMTYgYnl0ZXMKKyAjW2lubGluZShh bHdheXMpXQorIHB1YiB1bnNhZmUgZm4gc3RvcmU4X3VuYWxpZ25lZChwdHI6ICptdXQgdTE2LCBz OiB1MTZ4OCkgeworICAgICA6OmNvcmU6OnB0cjo6Y29weV9ub25vdmVybGFwcGluZygmcyBhcyAq Y29uc3QgdTE2eDggYXMgKmNvbnN0IHU4LCBwdHIgYXMgKm11dCB1OCwgMTYpOworIH0KKyAKKysv Ly8gU2FmZXR5IGludmFyaWFudDogcHRyIG11c3QgYmUgdmFsaWQgZm9yIGFuIGFsaWduZWQtZm9y LXUxNng4IHN0b3JlIG9mIDE2IGJ5dGVzCisgI1thbGxvdyhkZWFkX2NvZGUpXQorICNbaW5saW5l KGFsd2F5cyldCisgcHViIHVuc2FmZSBmbiBzdG9yZThfYWxpZ25lZChwdHI6ICptdXQgdTE2LCBz OiB1MTZ4OCkgeworICAgICAqKHB0ciBhcyAqbXV0IHUxNng4KSA9IHM7CisgfQorIAorIGNmZ19p ZiEgeworICAgICBpZiAjW2NmZyhhbGwodGFyZ2V0X2ZlYXR1cmUgPSAic3NlMiIsIHRhcmdldF9h cmNoID0gIng4Nl82NCIpKV0geworQEAgLTk1LDIzNCArMTE0LDI0MSBAQCBjZmdfaWYhIHsKKyBw dWIgZm4gc2ltZF9ieXRlX3N3YXAoczogdTE2eDgpIC0+IHUxNng4IHsKKyAgICAgbGV0IGxlZnQg PSBzIDw8IDg7CisgICAgIGxldCByaWdodCA9IHMgPj4gODsKKyAgICAgbGVmdCB8IHJpZ2h0Cisg fQorIAorICNbaW5saW5lKGFsd2F5cyldCisgcHViIGZuIHRvX3UxNl9sYW5lcyhzOiB1OHgxNikg LT4gdTE2eDggeworLSAgICBzLmludG9fYml0cygpCisrICAgIHUxNng4Ojpmcm9tX25lX2J5dGVz KHMpCisgfQorIAorIGNmZ19pZiEgeworICAgICBpZiAjW2NmZyh0YXJnZXRfZmVhdHVyZSA9ICJz c2UyIildIHsKKyAKKyAgICAgICAgIC8vIEV4cG9zZSBsb3ctbGV2ZWwgbWFzayBpbnN0ZWFkIG9m IGhpZ2hlci1sZXZlbCBjb25jbHVzaW9uLAorICAgICAgICAgLy8gYmVjYXVzZSB0aGUgbm9uLUFT Q0lJIGNhc2Ugd291bGQgcGVyZm9ybSBsZXNzIHdlbGwgb3RoZXJ3aXNlLgorKyAgICAgICAgLy8g U2FmZXR5LXVzYWJsZSBpbnZhcmlhbnQ6IFRoaXMgcmV0dXJuZWQgdmFsdWUgaXMgd2hldGhlciBl YWNoIGhpZ2ggYml0IGlzIHNldAorICAgICAgICAgI1tpbmxpbmUoYWx3YXlzKV0KKyAgICAgICAg IHB1YiBmbiBtYXNrX2FzY2lpKHM6IHU4eDE2KSAtPiBpMzIgeworICAgICAgICAgICAgIHVuc2Fm ZSB7CistICAgICAgICAgICAgICAgIF9tbV9tb3ZlbWFza19lcGk4KHMuaW50b19iaXRzKCkpCisr ICAgICAgICAgICAgICAgIF9tbV9tb3ZlbWFza19lcGk4KHMuaW50bygpKQorICAgICAgICAgICAg IH0KKyAgICAgICAgIH0KKyAKKyAgICAgfSBlbHNlIHsKKyAKKyAgICAgfQorIH0KKyAKKyBjZmdf aWYhIHsKKyAgICAgaWYgI1tjZmcodGFyZ2V0X2ZlYXR1cmUgPSAic3NlMiIpXSB7CisgICAgICAg ICAjW2lubGluZShhbHdheXMpXQorICAgICAgICAgcHViIGZuIHNpbWRfaXNfYXNjaWkoczogdTh4 MTYpIC0+IGJvb2wgeworICAgICAgICAgICAgIHVuc2FmZSB7CistICAgICAgICAgICAgICAgIF9t bV9tb3ZlbWFza19lcGk4KHMuaW50b19iaXRzKCkpID09IDAKKysgICAgICAgICAgICAgICAgLy8g U2FmZXR5OiBXZSBoYXZlIGNmZygpZCB0aGUgY29ycmVjdCBwbGF0Zm9ybQorKyAgICAgICAgICAg ICAgICBfbW1fbW92ZW1hc2tfZXBpOChzLmludG8oKSkgPT0gMAorICAgICAgICAgICAgIH0KKyAg ICAgICAgIH0KKyAgICAgfSBlbHNlIGlmICNbY2ZnKHRhcmdldF9hcmNoID0gImFhcmNoNjQiKV17 CisgICAgICAgICAjW2lubGluZShhbHdheXMpXQorICAgICAgICAgcHViIGZuIHNpbWRfaXNfYXNj aWkoczogdTh4MTYpIC0+IGJvb2wgeworICAgICAgICAgICAgIHVuc2FmZSB7CistICAgICAgICAg ICAgICAgIHZtYXh2cV91OChzLmludG9fYml0cygpKSA8IDB4ODAKKysgICAgICAgICAgICAgICAg Ly8gU2FmZXR5OiBXZSBoYXZlIGNmZygpZCB0aGUgY29ycmVjdCBwbGF0Zm9ybQorKyAgICAgICAg ICAgICAgICB2bWF4dnFfdTgocy5pbnRvKCkpIDwgMHg4MAorICAgICAgICAgICAgIH0KKyAgICAg ICAgIH0KKyAgICAgfSBlbHNlIHsKKyAgICAgICAgICNbaW5saW5lKGFsd2F5cyldCisgICAgICAg ICBwdWIgZm4gc2ltZF9pc19hc2NpaShzOiB1OHgxNikgLT4gYm9vbCB7CisgICAgICAgICAgICAg Ly8gVGhpcyBvcHRpbWl6ZXMgYmV0dGVyIG9uIEFSTSB0aGFuCisgICAgICAgICAgICAgLy8gdGhl IGx0IGZvcm11bGF0aW9uLgorICAgICAgICAgICAgIGxldCBoaWdoZXN0X2FzY2lpID0gdTh4MTY6 OnNwbGF0KDB4N0YpOworLSAgICAgICAgICAgICFzLmd0KGhpZ2hlc3RfYXNjaWkpLmFueSgpCisr ICAgICAgICAgICAgIWFueV9tYXNrOHgxNihzLnNpbWRfZ3QoaGlnaGVzdF9hc2NpaSkpCisgICAg ICAgICB9CisgICAgIH0KKyB9CisgCisgY2ZnX2lmISB7CisgICAgIGlmICNbY2ZnKHRhcmdldF9m ZWF0dXJlID0gInNzZTIiKV0geworICAgICAgICAgI1tpbmxpbmUoYWx3YXlzKV0KKyAgICAgICAg IHB1YiBmbiBzaW1kX2lzX3N0cl9sYXRpbjEoczogdTh4MTYpIC0+IGJvb2wgeworICAgICAgICAg ICAgIGlmIHNpbWRfaXNfYXNjaWkocykgeworICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsK KyAgICAgICAgICAgICB9CisgICAgICAgICAgICAgbGV0IGFib3ZlX3N0cl9sYXRpbjEgPSB1OHgx Njo6c3BsYXQoMHhDNCk7CistICAgICAgICAgICAgcy5sdChhYm92ZV9zdHJfbGF0aW4xKS5hbGwo KQorKyAgICAgICAgICAgIHMuc2ltZF9sdChhYm92ZV9zdHJfbGF0aW4xKS5hbGwoKQorICAgICAg ICAgfQorICAgICB9IGVsc2UgaWYgI1tjZmcodGFyZ2V0X2FyY2ggPSAiYWFyY2g2NCIpXXsKKyAg ICAgICAgICNbaW5saW5lKGFsd2F5cyldCisgICAgICAgICBwdWIgZm4gc2ltZF9pc19zdHJfbGF0 aW4xKHM6IHU4eDE2KSAtPiBib29sIHsKKyAgICAgICAgICAgICB1bnNhZmUgeworLSAgICAgICAg ICAgICAgICB2bWF4dnFfdTgocy5pbnRvX2JpdHMoKSkgPCAweEM0CisrICAgICAgICAgICAgICAg IC8vIFNhZmV0eTogV2UgaGF2ZSBjZmcoKWQgdGhlIGNvcnJlY3QgcGxhdGZvcm0KKysgICAgICAg ICAgICAgICAgdm1heHZxX3U4KHMuaW50bygpKSA8IDB4QzQKKyAgICAgICAgICAgICB9CisgICAg ICAgICB9CisgICAgIH0gZWxzZSB7CisgICAgICAgICAjW2lubGluZShhbHdheXMpXQorICAgICAg ICAgcHViIGZuIHNpbWRfaXNfc3RyX2xhdGluMShzOiB1OHgxNikgLT4gYm9vbCB7CisgICAgICAg ICAgICAgbGV0IGFib3ZlX3N0cl9sYXRpbjEgPSB1OHgxNjo6c3BsYXQoMHhDNCk7CistICAgICAg ICAgICAgcy5sdChhYm92ZV9zdHJfbGF0aW4xKS5hbGwoKQorKyAgICAgICAgICAgIGFsbF9tYXNr OHgxNihzLnNpbWRfbHQoYWJvdmVfc3RyX2xhdGluMSkpCisgICAgICAgICB9CisgICAgIH0KKyB9 CisgCisgY2ZnX2lmISB7CisgICAgIGlmICNbY2ZnKHRhcmdldF9hcmNoID0gImFhcmNoNjQiKV17 CisgICAgICAgICAjW2lubGluZShhbHdheXMpXQorICAgICAgICAgcHViIGZuIHNpbWRfaXNfYmFz aWNfbGF0aW4oczogdTE2eDgpIC0+IGJvb2wgeworICAgICAgICAgICAgIHVuc2FmZSB7CistICAg ICAgICAgICAgICAgIHZtYXh2cV91MTYocy5pbnRvX2JpdHMoKSkgPCAweDgwCisrICAgICAgICAg ICAgICAgIC8vIFNhZmV0eTogV2UgaGF2ZSBjZmcoKWQgdGhlIGNvcnJlY3QgcGxhdGZvcm0KKysg ICAgICAgICAgICAgICAgdm1heHZxX3UxNihzLmludG8oKSkgPCAweDgwCisgICAgICAgICAgICAg fQorICAgICAgICAgfQorIAorICAgICAgICAgI1tpbmxpbmUoYWx3YXlzKV0KKyAgICAgICAgIHB1 YiBmbiBzaW1kX2lzX2xhdGluMShzOiB1MTZ4OCkgLT4gYm9vbCB7CisgICAgICAgICAgICAgdW5z YWZlIHsKKy0gICAgICAgICAgICAgICAgdm1heHZxX3UxNihzLmludG9fYml0cygpKSA8IDB4MTAw CisrICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogV2UgaGF2ZSBjZmcoKWQgdGhlIGNvcnJlY3Qg cGxhdGZvcm0KKysgICAgICAgICAgICAgICAgdm1heHZxX3UxNihzLmludG8oKSkgPCAweDEwMAor ICAgICAgICAgICAgIH0KKyAgICAgICAgIH0KKyAgICAgfSBlbHNlIHsKKyAgICAgICAgICNbaW5s aW5lKGFsd2F5cyldCisgICAgICAgICBwdWIgZm4gc2ltZF9pc19iYXNpY19sYXRpbihzOiB1MTZ4 OCkgLT4gYm9vbCB7CisgICAgICAgICAgICAgbGV0IGFib3ZlX2FzY2lpID0gdTE2eDg6OnNwbGF0 KDB4ODApOworLSAgICAgICAgICAgIHMubHQoYWJvdmVfYXNjaWkpLmFsbCgpCisrICAgICAgICAg ICAgYWxsX21hc2sxNng4KHMuc2ltZF9sdChhYm92ZV9hc2NpaSkpCisgICAgICAgICB9CisgCisg ICAgICAgICAjW2lubGluZShhbHdheXMpXQorICAgICAgICAgcHViIGZuIHNpbWRfaXNfbGF0aW4x KHM6IHUxNng4KSAtPiBib29sIHsKKyAgICAgICAgICAgICAvLyBGb3Igc29tZSByZWFzb24sIG9u IFNTRTIgdGhpcyBmb3JtdWxhdGlvbgorICAgICAgICAgICAgIC8vIHNlZW1zIGZhc3RlciBpbiB0 aGlzIGNhc2Ugd2hpbGUgdGhlIGFib3ZlCisgICAgICAgICAgICAgLy8gZnVuY3Rpb24gaXMgYmV0 dGVyIHRoZSBvdGhlciB3YXkgcm91bmQuLi4KKyAgICAgICAgICAgICBsZXQgaGlnaGVzdF9sYXRp bjEgPSB1MTZ4ODo6c3BsYXQoMHhGRik7CistICAgICAgICAgICAgIXMuZ3QoaGlnaGVzdF9sYXRp bjEpLmFueSgpCisrICAgICAgICAgICAgIWFueV9tYXNrMTZ4OChzLnNpbWRfZ3QoaGlnaGVzdF9s YXRpbjEpKQorICAgICAgICAgfQorICAgICB9CisgfQorIAorICNbaW5saW5lKGFsd2F5cyldCisg cHViIGZuIGNvbnRhaW5zX3N1cnJvZ2F0ZXMoczogdTE2eDgpIC0+IGJvb2wgeworICAgICBsZXQg bWFzayA9IHUxNng4OjpzcGxhdCgweEY4MDApOworICAgICBsZXQgc3Vycm9nYXRlX2JpdHMgPSB1 MTZ4ODo6c3BsYXQoMHhEODAwKTsKKy0gICAgKHMgJiBtYXNrKS5lcShzdXJyb2dhdGVfYml0cyku YW55KCkKKysgICAgYW55X21hc2sxNng4KChzICYgbWFzaykuc2ltZF9lcShzdXJyb2dhdGVfYml0 cykpCisgfQorIAorIGNmZ19pZiEgeworICAgICBpZiAjW2NmZyh0YXJnZXRfYXJjaCA9ICJhYXJj aDY0IildeworICAgICAgICAgbWFjcm9fcnVsZXMhIGFhcmNoNjRfcmV0dXJuX2ZhbHNlX2lmX2Jl bG93X2hlYnJldyB7CisgICAgICAgICAgICAgKCRzOmlkZW50KSA9PiAoeworICAgICAgICAgICAg ICAgICB1bnNhZmUgeworLSAgICAgICAgICAgICAgICAgICAgaWYgdm1heHZxX3UxNigkcy5pbnRv X2JpdHMoKSkgPCAweDA1OTAgeworKyAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBXZSBo YXZlIGNmZygpZCB0aGUgY29ycmVjdCBwbGF0Zm9ybQorKyAgICAgICAgICAgICAgICAgICAgaWYg dm1heHZxX3UxNigkcy5pbnRvKCkpIDwgMHgwNTkwIHsKKyAgICAgICAgICAgICAgICAgICAgICAg ICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg IH0KKyAgICAgICAgICAgICB9KQorICAgICAgICAgfQorIAorICAgICAgICAgbWFjcm9fcnVsZXMh IG5vbl9hYXJjaDY0X3JldHVybl9mYWxzZV9pZl9hbGwgeworICAgICAgICAgICAgICgkczppZGVu dCkgPT4gKCkKKyAgICAgICAgIH0KKyAgICAgfSBlbHNlIHsKKyAgICAgICAgIG1hY3JvX3J1bGVz ISBhYXJjaDY0X3JldHVybl9mYWxzZV9pZl9iZWxvd19oZWJyZXcgeworICAgICAgICAgICAgICgk czppZGVudCkgPT4gKCkKKyAgICAgICAgIH0KKyAKKyAgICAgICAgIG1hY3JvX3J1bGVzISBub25f YWFyY2g2NF9yZXR1cm5fZmFsc2VfaWZfYWxsIHsKKyAgICAgICAgICAgICAoJHM6aWRlbnQpID0+ ICh7CistICAgICAgICAgICAgICAgIGlmICRzLmFsbCgpIHsKKysgICAgICAgICAgICAgICAgaWYg YWxsX21hc2sxNng4KCRzKSB7CisgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Cisg ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICB9KQorICAgICAgICAgfQorICAgICB9Cisg fQorIAorIG1hY3JvX3J1bGVzISBpbl9yYW5nZTE2eDggeworICAgICAoJHM6aWRlbnQsICRzdGFy dDpleHByLCAkZW5kOmV4cHIpID0+IHt7CisgICAgICAgICAvLyBTSU1EIHN1YiBpcyB3cmFwcGlu ZworLSAgICAgICAgKCRzIC0gdTE2eDg6OnNwbGF0KCRzdGFydCkpLmx0KHUxNng4OjpzcGxhdCgk ZW5kIC0gJHN0YXJ0KSkKKysgICAgICAgICgkcyAtIHUxNng4OjpzcGxhdCgkc3RhcnQpKS5zaW1k X2x0KHUxNng4OjpzcGxhdCgkZW5kIC0gJHN0YXJ0KSkKKyAgICAgfX07CisgfQorIAorICNbaW5s aW5lKGFsd2F5cyldCisgcHViIGZuIGlzX3UxNng4X2JpZGkoczogdTE2eDgpIC0+IGJvb2wgewor ICAgICAvLyBXZSB0cnkgdG8gZmlyc3QgcXVpY2tseSByZWZ1dGUgdGhlIFJUTG5lc3Mgb2YgdGhl IHZlY3Rvci4gSWYgdGhhdAorICAgICAvLyBmYWlscywgd2UgZG8gdGhlIHJlYWwgUlRMIGNoZWNr LCBzbyBpbiB0aGF0IGNhc2Ugd2UgZW5kIHVwIHdhc3RpbmcKKyAgICAgLy8gdGhlIHdvcmsgZm9y IHRoZSB1cC1mcm9udCBxdWljayBjaGVja3MuIEV2ZW4gdGhlIHF1aWNrLWNoZWNrIGlzCisgICAg IC8vIHR3by1mb2xkIGluIG9yZGVyIHRvIHJldHVybiBgZmFsc2VgIEFTQVAgaWYgZXZlcnl0aGlu ZyBpcyBiZWxvdworICAgICAvLyBIZWJyZXcuCisgCisgICAgIGFhcmNoNjRfcmV0dXJuX2ZhbHNl X2lmX2JlbG93X2hlYnJldyEocyk7CisgCistICAgIGxldCBiZWxvd19oZWJyZXcgPSBzLmx0KHUx Nng4OjpzcGxhdCgweDA1OTApKTsKKysgICAgbGV0IGJlbG93X2hlYnJldyA9IHMuc2ltZF9sdCh1 MTZ4ODo6c3BsYXQoMHgwNTkwKSk7CisgCisgICAgIG5vbl9hYXJjaDY0X3JldHVybl9mYWxzZV9p Zl9hbGwhKGJlbG93X2hlYnJldyk7CisgCistICAgIGlmIChiZWxvd19oZWJyZXcgfCBpbl9yYW5n ZTE2eDghKHMsIDB4MDkwMCwgMHgyMDBGKSB8IGluX3JhbmdlMTZ4OCEocywgMHgyMDY4LCAweEQ4 MDIpKS5hbGwoKSB7CisrICAgIGlmIGFsbF9tYXNrMTZ4OCgKKysgICAgICAgIGJlbG93X2hlYnJl dyB8IGluX3JhbmdlMTZ4OCEocywgMHgwOTAwLCAweDIwMEYpIHwgaW5fcmFuZ2UxNng4IShzLCAw eDIwNjgsIDB4RDgwMiksCisrICAgICkgeworICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICB9 CisgCisgICAgIC8vIFF1aWNrIHJlZnV0YXRpb24gZmFpbGVkLiBMZXQncyBkbyB0aGUgZnVsbCBj aGVjay4KKyAKKy0gICAgKGluX3JhbmdlMTZ4OCEocywgMHgwNTkwLCAweDA5MDApCistICAgICAg ICB8IGluX3JhbmdlMTZ4OCEocywgMHhGQjFELCAweEZFMDApCistICAgICAgICB8IGluX3Jhbmdl MTZ4OCEocywgMHhGRTcwLCAweEZFRkYpCistICAgICAgICB8IGluX3JhbmdlMTZ4OCEocywgMHhE ODAyLCAweEQ4MDQpCistICAgICAgICB8IGluX3JhbmdlMTZ4OCEocywgMHhEODNBLCAweEQ4M0Mp CistICAgICAgICB8IHMuZXEodTE2eDg6OnNwbGF0KDB4MjAwRikpCistICAgICAgICB8IHMuZXEo dTE2eDg6OnNwbGF0KDB4MjAyQikpCistICAgICAgICB8IHMuZXEodTE2eDg6OnNwbGF0KDB4MjAy RSkpCistICAgICAgICB8IHMuZXEodTE2eDg6OnNwbGF0KDB4MjA2NykpKQorLSAgICAuYW55KCkK KysgICAgYW55X21hc2sxNng4KAorKyAgICAgICAgKGluX3JhbmdlMTZ4OCEocywgMHgwNTkwLCAw eDA5MDApCisrICAgICAgICAgICAgfCBpbl9yYW5nZTE2eDghKHMsIDB4RkIxRCwgMHhGRTAwKQor KyAgICAgICAgICAgIHwgaW5fcmFuZ2UxNng4IShzLCAweEZFNzAsIDB4RkVGRikKKysgICAgICAg ICAgICB8IGluX3JhbmdlMTZ4OCEocywgMHhEODAyLCAweEQ4MDQpCisrICAgICAgICAgICAgfCBp bl9yYW5nZTE2eDghKHMsIDB4RDgzQSwgMHhEODNDKQorKyAgICAgICAgICAgIHwgcy5zaW1kX2Vx KHUxNng4OjpzcGxhdCgweDIwMEYpKQorKyAgICAgICAgICAgIHwgcy5zaW1kX2VxKHUxNng4Ojpz cGxhdCgweDIwMkIpKQorKyAgICAgICAgICAgIHwgcy5zaW1kX2VxKHUxNng4OjpzcGxhdCgweDIw MkUpKQorKyAgICAgICAgICAgIHwgcy5zaW1kX2VxKHUxNng4OjpzcGxhdCgweDIwNjcpKSksCisr ICAgICkKKyB9CisgCisgI1tpbmxpbmUoYWx3YXlzKV0KKyBwdWIgZm4gc2ltZF91bnBhY2soczog dTh4MTYpIC0+ICh1MTZ4OCwgdTE2eDgpIHsKKy0gICAgdW5zYWZlIHsKKy0gICAgICAgIGxldCBm aXJzdDogdTh4MTYgPSBzaHVmZmxlISgKKy0gICAgICAgICAgICBzLAorLSAgICAgICAgICAgIHU4 eDE2OjpzcGxhdCgwKSwKKy0gICAgICAgICAgICBbMCwgMTYsIDEsIDE3LCAyLCAxOCwgMywgMTks IDQsIDIwLCA1LCAyMSwgNiwgMjIsIDcsIDIzXQorLSAgICAgICAgKTsKKy0gICAgICAgIGxldCBz ZWNvbmQ6IHU4eDE2ID0gc2h1ZmZsZSEoCistICAgICAgICAgICAgcywKKy0gICAgICAgICAgICB1 OHgxNjo6c3BsYXQoMCksCistICAgICAgICAgICAgWzgsIDI0LCA5LCAyNSwgMTAsIDI2LCAxMSwg MjcsIDEyLCAyOCwgMTMsIDI5LCAxNCwgMzAsIDE1LCAzMV0KKy0gICAgICAgICk7CistICAgICAg ICAoZmlyc3QuaW50b19iaXRzKCksIHNlY29uZC5pbnRvX2JpdHMoKSkKKy0gICAgfQorKyAgICBs ZXQgZmlyc3Q6IHU4eDE2ID0gc2ltZF9zd2l6emxlISgKKysgICAgICAgIHMsCisrICAgICAgICB1 OHgxNjo6c3BsYXQoMCksCisrICAgICAgICBbMCwgMTYsIDEsIDE3LCAyLCAxOCwgMywgMTksIDQs IDIwLCA1LCAyMSwgNiwgMjIsIDcsIDIzXQorKyAgICApOworKyAgICBsZXQgc2Vjb25kOiB1OHgx NiA9IHNpbWRfc3dpenpsZSEoCisrICAgICAgICBzLAorKyAgICAgICAgdTh4MTY6OnNwbGF0KDAp LAorKyAgICAgICAgWzgsIDI0LCA5LCAyNSwgMTAsIDI2LCAxMSwgMjcsIDEyLCAyOCwgMTMsIDI5 LCAxNCwgMzAsIDE1LCAzMV0KKysgICAgKTsKKysgICAgKHUxNng4Ojpmcm9tX25lX2J5dGVzKGZp cnN0KSwgdTE2eDg6OmZyb21fbmVfYnl0ZXMoc2Vjb25kKSkKKyB9CisgCisgY2ZnX2lmISB7Cisg ICAgIGlmICNbY2ZnKHRhcmdldF9mZWF0dXJlID0gInNzZTIiKV0geworICAgICAgICAgI1tpbmxp bmUoYWx3YXlzKV0KKyAgICAgICAgIHB1YiBmbiBzaW1kX3BhY2soYTogdTE2eDgsIGI6IHUxNng4 KSAtPiB1OHgxNiB7CisgICAgICAgICAgICAgdW5zYWZlIHsKKy0gICAgICAgICAgICAgICAgX21t X3BhY2t1c19lcGkxNihhLmludG9fYml0cygpLCBiLmludG9fYml0cygpKS5pbnRvX2JpdHMoKQor KyAgICAgICAgICAgICAgICAvLyBTYWZldHk6IFdlIGhhdmUgY2ZnKClkIHRoZSBjb3JyZWN0IHBs YXRmb3JtCisrICAgICAgICAgICAgICAgIF9tbV9wYWNrdXNfZXBpMTYoYS5pbnRvKCksIGIuaW50 bygpKS5pbnRvKCkKKyAgICAgICAgICAgICB9CisgICAgICAgICB9CisgICAgIH0gZWxzZSB7Cisg ICAgICAgICAjW2lubGluZShhbHdheXMpXQorICAgICAgICAgcHViIGZuIHNpbWRfcGFjayhhOiB1 MTZ4OCwgYjogdTE2eDgpIC0+IHU4eDE2IHsKKy0gICAgICAgICAgICB1bnNhZmUgeworLSAgICAg ICAgICAgICAgICBsZXQgZmlyc3Q6IHU4eDE2ID0gYS5pbnRvX2JpdHMoKTsKKy0gICAgICAgICAg ICAgICAgbGV0IHNlY29uZDogdTh4MTYgPSBiLmludG9fYml0cygpOworLSAgICAgICAgICAgICAg ICBzaHVmZmxlISgKKy0gICAgICAgICAgICAgICAgICAgIGZpcnN0LAorLSAgICAgICAgICAgICAg ICAgICAgc2Vjb25kLAorLSAgICAgICAgICAgICAgICAgICAgWzAsIDIsIDQsIDYsIDgsIDEwLCAx MiwgMTQsIDE2LCAxOCwgMjAsIDIyLCAyNCwgMjYsIDI4LCAzMF0KKy0gICAgICAgICAgICAgICAg KQorLSAgICAgICAgICAgIH0KKysgICAgICAgICAgICBsZXQgZmlyc3Q6IHU4eDE2ID0gYS50b19u ZV9ieXRlcygpOworKyAgICAgICAgICAgIGxldCBzZWNvbmQ6IHU4eDE2ID0gYi50b19uZV9ieXRl cygpOworKyAgICAgICAgICAgIHNpbWRfc3dpenpsZSEoCisrICAgICAgICAgICAgICAgIGZpcnN0 LAorKyAgICAgICAgICAgICAgICBzZWNvbmQsCisrICAgICAgICAgICAgICAgIFswLCAyLCA0LCA2 LCA4LCAxMCwgMTIsIDE0LCAxNiwgMTgsIDIwLCAyMiwgMjQsIDI2LCAyOCwgMzBdCisrICAgICAg ICAgICAgKQorICAgICAgICAgfQorICAgICB9CisgfQorIAorICNbY2ZnKHRlc3QpXQorIG1vZCB0 ZXN0cyB7CisgICAgIHVzZSBzdXBlcjo6KjsKKyAgICAgdXNlIGFsbG9jOjp2ZWM6OlZlYzsKK2Rp ZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy9zaW5nbGVfYnl0ZS5y cyBiL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3NpbmdsZV9ieXRlLnJzCistLS0g YS90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy9zaW5nbGVfYnl0ZS5ycworKysrIGIv dGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvc2luZ2xlX2J5dGUucnMKK0BAIC00OCwx NiArNDgsMTkgQEAgaW1wbCBTaW5nbGVCeXRlRGVjb2RlciB7CisgICAgICAgICAgICAgICAgIENv cHlBc2NpaVJlc3VsdDo6R29PbigobXV0IG5vbl9hc2NpaSwgbXV0IGhhbmRsZSkpID0+ICdtaWRk bGU6IGxvb3AgeworICAgICAgICAgICAgICAgICAgICAgLy8gU3RhcnQgbm9uLWJvaWxlcnBsYXRl CisgICAgICAgICAgICAgICAgICAgICAvLworICAgICAgICAgICAgICAgICAgICAgLy8gU2luY2Ug dGhlIG5vbi1BU0NJSW5lc3Mgb2YgYG5vbl9hc2NpaWAgaXMgaGlkZGVuIGZyb20KKyAgICAgICAg ICAgICAgICAgICAgIC8vIHRoZSBvcHRpbWl6ZXIsIGl0IGNhbid0IGZpZ3VyZSBvdXQgdGhhdCBp dCdzIE9LIHRvCisgICAgICAgICAgICAgICAgICAgICAvLyBzdGF0aWNhbGx5IG9taXQgdGhlIGJv dW5kIGNoZWNrIHdoZW4gYWNjZXNzaW5nCisgICAgICAgICAgICAgICAgICAgICAvLyBgW3UxNjsg MTI4XWAgd2l0aCBhbiBpbmRleAorICAgICAgICAgICAgICAgICAgICAgLy8gYG5vbl9hc2NpaSBh cyB1c2l6ZSAtIDB4ODB1c2l6ZWAuCisrICAgICAgICAgICAgICAgICAgICAvLworKyAgICAgICAg ICAgICAgICAgICAgLy8gU2FmZXR5OiBgbm9uX2FzY2lpYCBpcyBhIHU4IGJ5dGUgPj0weDgwLCBm cm9tIHRoZSBpbnZhcmlhbnRzCisrICAgICAgICAgICAgICAgICAgICAvLyBvbiBVdGY4RGVzdGlu YXRpb246OmNvcHlfYXNjaWlfZnJvbV9jaGVja19zcGFjZV9ibXAoKQorICAgICAgICAgICAgICAg ICAgICAgbGV0IG1hcHBlZCA9CisgICAgICAgICAgICAgICAgICAgICAgICAgdW5zYWZlIHsgKihz ZWxmLnRhYmxlLmdldF91bmNoZWNrZWQobm9uX2FzY2lpIGFzIHVzaXplIC0gMHg4MHVzaXplKSkg fTsKKyAgICAgICAgICAgICAgICAgICAgIC8vIGxldCBtYXBwZWQgPSBzZWxmLnRhYmxlW25vbl9h c2NpaSBhcyB1c2l6ZSAtIDB4ODB1c2l6ZV07CisgICAgICAgICAgICAgICAgICAgICBpZiBtYXBw ZWQgPT0gMHUxNiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICgKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgRGVjb2RlclJlc3VsdDo6TWFsZm9ybWVkKDEsIDApLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2UuY29uc3VtZWQoKSwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgaGFuZGxlLndyaXR0ZW4oKSwKK0BAIC0xNDYsODIgKzE0OSwxMDMg QEAgaW1wbCBTaW5nbGVCeXRlRGVjb2RlciB7CisgICAgICAgICBkc3Q6ICZtdXQgW3UxNl0sCisg ICAgICAgICBfbGFzdDogYm9vbCwKKyAgICAgKSAtPiAoRGVjb2RlclJlc3VsdCwgdXNpemUsIHVz aXplKSB7CisgICAgICAgICBsZXQgKHBlbmRpbmcsIGxlbmd0aCkgPSBpZiBkc3QubGVuKCkgPCBz cmMubGVuKCkgeworICAgICAgICAgICAgIChEZWNvZGVyUmVzdWx0OjpPdXRwdXRGdWxsLCBkc3Qu bGVuKCkpCisgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgIChEZWNvZGVyUmVzdWx0OjpJ bnB1dEVtcHR5LCBzcmMubGVuKCkpCisgICAgICAgICB9OworKyAgICAgICAgLy8gU2FmZXR5IGlu dmFyaWFudDogY29udmVydGVkIDw9IGxlbmd0aC4gUXVpdGUgb2Z0ZW4gd2UgaGF2ZSBgY29udmVy dGVkIDwgbGVuZ3RoYAorKyAgICAgICAgLy8gd2hpY2ggd2lsbCBiZSBzZXBhcmF0ZWx5IG1hcmtl ZC4KKyAgICAgICAgIGxldCBtdXQgY29udmVydGVkID0gMHVzaXplOworICAgICAgICAgJ291dGVy bW9zdDogbG9vcCB7CisgICAgICAgICAgICAgbWF0Y2ggdW5zYWZlIHsKKysgICAgICAgICAgICAg ICAgLy8gU2FmZXR5OiBsZW5ndGggaXMgdGhlIG1pbmltdW0gbGVuZ3RoLCBgc3JjL2RzdCArIHhg IHdpbGwgYWx3YXlzIGJlIHZhbGlkIGZvciByZWFkcy93cml0ZXMgb2YgYGxlbiAtIHhgCisgICAg ICAgICAgICAgICAgIGFzY2lpX3RvX2Jhc2ljX2xhdGluKAorICAgICAgICAgICAgICAgICAgICAg c3JjLmFzX3B0cigpLmFkZChjb252ZXJ0ZWQpLAorICAgICAgICAgICAgICAgICAgICAgZHN0LmFz X211dF9wdHIoKS5hZGQoY29udmVydGVkKSwKKyAgICAgICAgICAgICAgICAgICAgIGxlbmd0aCAt IGNvbnZlcnRlZCwKKyAgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgIH0geworICAgICAg ICAgICAgICAgICBOb25lID0+IHsKKyAgICAgICAgICAgICAgICAgICAgIHJldHVybiAocGVuZGlu ZywgbGVuZ3RoLCBsZW5ndGgpOworICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg IFNvbWUoKG11dCBub25fYXNjaWksIGNvbnN1bWVkKSkgPT4geworKyAgICAgICAgICAgICAgICAg ICAgLy8gU2FmZXR5IGludmFyaWFudDogYGNvbnZlcnRlZCA8PSBsZW5ndGhgIHVwaGVsZCwgc2lu Y2UgdGhpcyBjYW4gb25seSBjb25zdW1lCisrICAgICAgICAgICAgICAgICAgICAvLyB1cCB0byBg bGVuZ3RoIC0gY29udmVydGVkYCBieXRlcy4KKysgICAgICAgICAgICAgICAgICAgIC8vCisrICAg ICAgICAgICAgICAgICAgICAvLyBGdXJ0aGVybW9yZSwgaW4gdGhpcyBjb250ZXh0LAorKyAgICAg ICAgICAgICAgICAgICAgLy8gd2UgY2FuIGFzc3VtZSBgY29udmVydGVkIDwgbGVuZ3RoYCBzaW5j ZSB0aGlzIGJyYW5jaCBpcyBvbmx5IGV2ZXIgaGl0IHdoZW4KKysgICAgICAgICAgICAgICAgICAg IC8vIGFzY2lpX3RvX2Jhc2ljX2xhdGluIGZhaWxzIHRvIGNvbnN1bWUgdGhlIGVudGlyZSBzbGlj ZQorICAgICAgICAgICAgICAgICAgICAgY29udmVydGVkICs9IGNvbnN1bWVkOworICAgICAgICAg ICAgICAgICAgICAgJ21pZGRsZTogbG9vcCB7CisgICAgICAgICAgICAgICAgICAgICAgICAgLy8g YGNvbnZlcnRlZGAgZG9lc24ndCBjb3VudCB0aGUgcmVhZGluZyBvZiBgbm9uX2FzY2lpYCB5ZXQu CisgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2luY2UgdGhlIG5vbi1BU0NJSW5lc3Mgb2Yg YG5vbl9hc2NpaWAgaXMgaGlkZGVuIGZyb20KKyAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0 aGUgb3B0aW1pemVyLCBpdCBjYW4ndCBmaWd1cmUgb3V0IHRoYXQgaXQncyBPSyB0bworICAgICAg ICAgICAgICAgICAgICAgICAgIC8vIHN0YXRpY2FsbHkgb21pdCB0aGUgYm91bmQgY2hlY2sgd2hl biBhY2Nlc3NpbmcKKyAgICAgICAgICAgICAgICAgICAgICAgICAvLyBgW3UxNjsgMTI4XWAgd2l0 aCBhbiBpbmRleAorICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGBub25fYXNjaWkgYXMgdXNp emUgLSAweDgwdXNpemVgLgorKyAgICAgICAgICAgICAgICAgICAgICAgIC8vCisrICAgICAgICAg ICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBXZSBjYW4gcmVseSBvbiBgbm9uX2FzY2lpYCBiZWlu ZyBiZXR3ZWVuIGAweDgwYCBhbmQgYDB4RkZgIGR1ZSB0bworKyAgICAgICAgICAgICAgICAgICAg ICAgIC8vIHRoZSBpbnZhcmlhbnRzIG9mIGBhc2NpaV90b19iYXNpY19sYXRpbigpYCwgYW5kIG91 ciB0YWJsZSBoYXMgZW5vdWdoIHNwYWNlIGZvciB0aGF0LgorICAgICAgICAgICAgICAgICAgICAg ICAgIGxldCBtYXBwZWQgPQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNhZmUgeyAq KHNlbGYudGFibGUuZ2V0X3VuY2hlY2tlZChub25fYXNjaWkgYXMgdXNpemUgLSAweDgwdXNpemUp KSB9OworICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGxldCBtYXBwZWQgPSBzZWxmLnRhYmxl W25vbl9hc2NpaSBhcyB1c2l6ZSAtIDB4ODB1c2l6ZV07CisgICAgICAgICAgICAgICAgICAgICAg ICAgaWYgbWFwcGVkID09IDB1MTYgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1 cm4gKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGVjb2RlclJlc3VsdDo6TWFs Zm9ybWVkKDEsIDApLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udmVydGVk ICsgMSwgLy8gKzEgYGZvciBub25fYXNjaWlgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBjb252ZXJ0ZWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CisgICAgICAg ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2FmZSB7Cist ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoZSBib3VuZCBjaGVjayBoYXMgYWxyZWFk eSBiZWVuIHBlcmZvcm1lZAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6 IEFzIG1lbnRpb25lZCBhYm92ZSwgYGNvbnZlcnRlZCA8IGxlbmd0aGAKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKihkc3QuZ2V0X3VuY2hlY2tlZF9tdXQoY29udmVydGVkKSkgPSBtYXBw ZWQ7CisgICAgICAgICAgICAgICAgICAgICAgICAgfQorKyAgICAgICAgICAgICAgICAgICAgICAg IC8vIFNhZmV0eTogYGNvbnZlcnRlZCA8PSBsZW5ndGhgIHVwaGVsZCwgc2luY2UgYGNvbnZlcnRl ZCA8IGxlbmd0aGAgYmVmb3JlIHRoaXMKKyAgICAgICAgICAgICAgICAgICAgICAgICBjb252ZXJ0 ZWQgKz0gMTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAvLyBOZXh0LCBoYW5kbGUgQVNDSUkg cHVuY3R1YXRpb24gYW5kIG5vbi1BU0NJSSB3aXRob3V0CisgICAgICAgICAgICAgICAgICAgICAg ICAgLy8gZ29pbmcgYmFjayB0byBBU0NJSSBhY2NlbGVyYXRpb24uIE5vbi1BU0NJSSBzY3JpcHRz CisgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdXNlIEFTQ0lJIHB1bmN0dWF0aW9uLCBzbyB0 aGlzIGF2b2lkIGdvaW5nIHRvCisgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYWNjZWxlcmF0 aW9uIGp1c3QgZm9yIHB1bmN0dWF0aW9uL3NwYWNlIGFuZCB0aGVuCisgICAgICAgICAgICAgICAg ICAgICAgICAgLy8gZmFpbGluZy4gVGhpcyBpcyBhIHNpZ25pZmljYW50IGJvb3N0IHRvIG5vbi1B U0NJSQorICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNjcmlwdHMuCisgICAgICAgICAgICAg ICAgICAgICAgICAgLy8gVE9ETzogU3BsaXQgb3V0IExhdGluIGNvbnZlcnRlcnMgd2l0aG91dCB0 aGlzIHBhcnQKKyAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGlzIHN0dWZmIG1ha2VzIExh dGluIHNjcmlwdC1jb252ZXJzaW9uIHNsb3dlci4KKyAgICAgICAgICAgICAgICAgICAgICAgICBp ZiBjb252ZXJ0ZWQgPT0gbGVuZ3RoIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0 dXJuIChwZW5kaW5nLCBsZW5ndGgsIGxlbmd0aCk7CisgICAgICAgICAgICAgICAgICAgICAgICAg fQorKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogV2UgYXJlIGJhY2sgdG8gYGNv bnZlcnRlZCA8IGxlbmd0aGAgYmVjYXVzZSBvZiB0aGUgPT0gYWJvdmUKKysgICAgICAgICAgICAg ICAgICAgICAgICAvLyBhbmQgY2FuIHBlcmZvcm0gdGhpcyBjaGVjay4KKyAgICAgICAgICAgICAg ICAgICAgICAgICBsZXQgbXV0IGIgPSB1bnNhZmUgeyAqKHNyYy5nZXRfdW5jaGVja2VkKGNvbnZl cnRlZCkpIH07CisrICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBgY29udmVydGVk IDwgbGVuZ3RoYCBpcyB1cGhlbGQgZm9yIHRoaXMgbG9vcAorICAgICAgICAgICAgICAgICAgICAg ICAgICdpbm5lcm1vc3Q6IGxvb3AgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBi ID4gMTI3IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbl9hc2NpaSA9IGI7 CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZSAnbWlkZGxlOworICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg IC8vIFRlc3Rpbmcgb24gSGFzd2VsbCBzYXlzIHRoYXQgd2Ugc2hvdWxkIHdyaXRlIHRoZQorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBieXRlIHVuY29uZGl0aW9uYWxseSBpbnN0ZWFk IG9mIHRyeWluZyB0byB1bnJlYWQgaXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8g dG8gbWFrZSBpdCBwYXJ0IG9mIHRoZSBuZXh0IFNJTUQgc3RyaWRlLgorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB1bnNhZmUgeworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Ly8gU2FmZXR5OiBgY29udmVydGVkIDwgbGVuZ3RoYCBpcyB0cnVlIGZvciB0aGlzIGxvb3AKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICooZHN0LmdldF91bmNoZWNrZWRfbXV0KGNv bnZlcnRlZCkpID0gdTE2Ojpmcm9tKGIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogV2UgYXJlIG5vdyBhdCBg Y29udmVydGVkIDw9IGxlbmd0aGAuIFdlIHNob3VsZCAqbm90KiBgY29udGludWVgCisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgIC8vIHRoZSBsb29wIHdpdGhvdXQgcmV2ZXJpZnlpbmcKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udmVydGVkICs9IDE7CisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGlmIGIgPCA2MCB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAvLyBXZSd2ZSBnb3QgcHVuY3R1YXRpb24KKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGlmIGNvbnZlcnRlZCA9PSBsZW5ndGggeworICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHJldHVybiAocGVuZGluZywgbGVuZ3RoLCBsZW5ndGgpOworICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfQorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgLy8gU2FmZXR5OiB3ZSdyZSBiYWNrIHRvIGBjb252ZXJ0ZWQgPD0gbGVuZ3RoYCBiZWNhdXNl IG9mIHRoZSA9PSBhYm92ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYiA9IHVu c2FmZSB7ICooc3JjLmdldF91bmNoZWNrZWQoY29udmVydGVkKSkgfTsKKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogVGhlIGxvb3AgY29udGludWVzIGFzIGBjb252 ZXJ0ZWQgPCBsZW5ndGhgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51 ZSAnaW5uZXJtb3N0OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIC8vIFdlJ3ZlIGdvdCBtYXJrdXAgb3IgQVNDSUkgdGV4dAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZSAnb3V0ZXJtb3N0OworICAgICAgICAg ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg ICAgfQorICAgICAgICAgICAgIH0KK0BAIC0yMjksMTYgKzI1MywxOCBAQCBpbXBsIFNpbmdsZUJ5 dGVEZWNvZGVyIHsKKyAgICAgfQorIAorICAgICBwdWIgZm4gbGF0aW4xX2J5dGVfY29tcGF0aWJs ZV91cF90bygmc2VsZiwgYnVmZmVyOiAmW3U4XSkgLT4gdXNpemUgeworICAgICAgICAgbGV0IG11 dCBieXRlcyA9IGJ1ZmZlcjsKKyAgICAgICAgIGxldCBtdXQgdG90YWwgPSAwOworICAgICAgICAg bG9vcCB7CisgICAgICAgICAgICAgaWYgbGV0IFNvbWUoKG5vbl9hc2NpaSwgb2Zmc2V0KSkgPSB2 YWxpZGF0ZV9hc2NpaShieXRlcykgeworICAgICAgICAgICAgICAgICB0b3RhbCArPSBvZmZzZXQ7 CisrICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogV2UgY2FuIHJlbHkgb24gYG5vbl9hc2NpaWAg YmVpbmcgYmV0d2VlbiBgMHg4MGAgYW5kIGAweEZGYCBkdWUgdG8KKysgICAgICAgICAgICAgICAg Ly8gdGhlIGludmFyaWFudHMgb2YgYGFzY2lpX3RvX2Jhc2ljX2xhdGluKClgLCBhbmQgb3VyIHRh YmxlIGhhcyBlbm91Z2ggc3BhY2UgZm9yIHRoYXQuCisgICAgICAgICAgICAgICAgIGxldCBtYXBw ZWQgPSB1bnNhZmUgeyAqKHNlbGYudGFibGUuZ2V0X3VuY2hlY2tlZChub25fYXNjaWkgYXMgdXNp emUgLSAweDgwdXNpemUpKSB9OworICAgICAgICAgICAgICAgICBpZiBtYXBwZWQgIT0gdTE2Ojpm cm9tKG5vbl9hc2NpaSkgeworICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRvdGFsOworICAg ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgIHRvdGFsICs9IDE7CisgICAgICAgICAg ICAgICAgIGJ5dGVzID0gJmJ5dGVzW29mZnNldCArIDEuLl07CisgICAgICAgICAgICAgfSBlbHNl IHsKKyAgICAgICAgICAgICAgICAgcmV0dXJuIHRvdGFsOworQEAgLTM3OSw2NCArNDA1LDg5IEBA IGltcGwgU2luZ2xlQnl0ZUVuY29kZXIgeworICAgICAgICAgZHN0OiAmbXV0IFt1OF0sCisgICAg ICAgICBfbGFzdDogYm9vbCwKKyAgICAgKSAtPiAoRW5jb2RlclJlc3VsdCwgdXNpemUsIHVzaXpl KSB7CisgICAgICAgICBsZXQgKHBlbmRpbmcsIGxlbmd0aCkgPSBpZiBkc3QubGVuKCkgPCBzcmMu bGVuKCkgeworICAgICAgICAgICAgIChFbmNvZGVyUmVzdWx0OjpPdXRwdXRGdWxsLCBkc3QubGVu KCkpCisgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgIChFbmNvZGVyUmVzdWx0OjpJbnB1 dEVtcHR5LCBzcmMubGVuKCkpCisgICAgICAgICB9OworKyAgICAgICAgLy8gU2FmZXR5IGludmFy aWFudDogY29udmVydGVkIDw9IGxlbmd0aC4gUXVpdGUgb2Z0ZW4gd2UgaGF2ZSBgY29udmVydGVk IDwgbGVuZ3RoYAorKyAgICAgICAgLy8gd2hpY2ggd2lsbCBiZSBzZXBhcmF0ZWx5IG1hcmtlZC4K KyAgICAgICAgIGxldCBtdXQgY29udmVydGVkID0gMHVzaXplOworICAgICAgICAgJ291dGVybW9z dDogbG9vcCB7CisgICAgICAgICAgICAgbWF0Y2ggdW5zYWZlIHsKKysgICAgICAgICAgICAgICAg Ly8gU2FmZXR5OiBsZW5ndGggaXMgdGhlIG1pbmltdW0gbGVuZ3RoLCBgc3JjL2RzdCArIHhgIHdp bGwgYWx3YXlzIGJlIHZhbGlkIGZvciByZWFkcy93cml0ZXMgb2YgYGxlbiAtIHhgCisgICAgICAg ICAgICAgICAgIGJhc2ljX2xhdGluX3RvX2FzY2lpKAorICAgICAgICAgICAgICAgICAgICAgc3Jj LmFzX3B0cigpLmFkZChjb252ZXJ0ZWQpLAorICAgICAgICAgICAgICAgICAgICAgZHN0LmFzX211 dF9wdHIoKS5hZGQoY29udmVydGVkKSwKKyAgICAgICAgICAgICAgICAgICAgIGxlbmd0aCAtIGNv bnZlcnRlZCwKKyAgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgIH0geworICAgICAgICAg ICAgICAgICBOb25lID0+IHsKKyAgICAgICAgICAgICAgICAgICAgIHJldHVybiAocGVuZGluZywg bGVuZ3RoLCBsZW5ndGgpOworICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgIFNv bWUoKG11dCBub25fYXNjaWksIGNvbnN1bWVkKSkgPT4geworKyAgICAgICAgICAgICAgICAgICAg Ly8gU2FmZXR5IGludmFyaWFudDogYGNvbnZlcnRlZCA8PSBsZW5ndGhgIHVwaGVsZCwgc2luY2Ug dGhpcyBjYW4gb25seSBjb25zdW1lCisrICAgICAgICAgICAgICAgICAgICAvLyB1cCB0byBgbGVu Z3RoIC0gY29udmVydGVkYCBieXRlcy4KKysgICAgICAgICAgICAgICAgICAgIC8vCisrICAgICAg ICAgICAgICAgICAgICAvLyBGdXJ0aGVybW9yZSwgaW4gdGhpcyBjb250ZXh0LAorKyAgICAgICAg ICAgICAgICAgICAgLy8gd2UgY2FuIGFzc3VtZSBgY29udmVydGVkIDwgbGVuZ3RoYCBzaW5jZSB0 aGlzIGJyYW5jaCBpcyBvbmx5IGV2ZXIgaGl0IHdoZW4KKysgICAgICAgICAgICAgICAgICAgIC8v IGFzY2lpX3RvX2Jhc2ljX2xhdGluIGZhaWxzIHRvIGNvbnN1bWUgdGhlIGVudGlyZSBzbGljZQor ICAgICAgICAgICAgICAgICAgICAgY29udmVydGVkICs9IGNvbnN1bWVkOworICAgICAgICAgICAg ICAgICAgICAgJ21pZGRsZTogbG9vcCB7CisgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYGNv bnZlcnRlZGAgZG9lc24ndCBjb3VudCB0aGUgcmVhZGluZyBvZiBgbm9uX2FzY2lpYCB5ZXQuCisg ICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2ggc2VsZi5lbmNvZGVfdTE2KG5vbl9hc2NpaSkg eworICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTb21lKGJ5dGUpID0+IHsKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2FmZSB7CisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgLy8gU2FmZXR5OiB3ZSdyZSBhbGxvd2VkIHRoaXMgYWNjZXNzIHNpbmNl IGBjb252ZXJ0ZWQgPCBsZW5ndGhgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKihkc3QuZ2V0X3VuY2hlY2tlZF9tdXQoY29udmVydGVkKSkgPSBieXRlOworICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgY29udmVydGVkICs9IDE7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBg Y29udmVydGVkIDw9IGxlbmd0aGAgbm93CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTm9uZSA9PiB7CisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAvLyBBdCB0aGlzIHBvaW50LCB3ZSBuZWVkIHRvIGtub3cgaWYgd2UK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGhhdmUgYSBzdXJyb2dhdGUuCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgaGlnaF9iaXRzID0gbm9uX2FzY2lp ICYgMHhGQzAwdTE2OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgaGlnaF9i aXRzID09IDB4RDgwMHUxNiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Ly8gaGlnaCBzdXJyb2dhdGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp ZiBjb252ZXJ0ZWQgKyAxID09IGxlbmd0aCB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIC8vIEVuZCBvZiBidWZmZXIuIFRoaXMgc3Vycm9nYXRlIGlzIHVucGFpcmVk LgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRW5jb2RlclJlc3VsdDo6 VW5tYXBwYWJsZSgnXHV7RkZGRH0nKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGNvbnZlcnRlZCArIDEsIC8vICsxIGBmb3Igbm9uX2FzY2lpYAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udmVydGVkLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOworICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0KKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAvLyBTYWZldHk6IGNvbnZlcmVkIDwgbGVuZ3RoIGZyb20gb3V0c2lkZSB0aGUgbWF0Y2gsIGFu ZCBgY29udmVydGVkICsgMSAhPSBsZW5ndGhgLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC8vIFNvIGBjb252ZXJ0ZWQgKyAxIDwgbGVuZ3RoYCBhcyB3ZWxsLiBXZSdyZSBp biBib3VuZHMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgc2Vjb25k ID0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdTMyOjpmcm9tKHVu c2FmZSB7ICpzcmMuZ2V0X3VuY2hlY2tlZChjb252ZXJ0ZWQgKyAxKSB9KTsKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBzZWNvbmQgJiAweEZDMDB1MzIgIT0gMHhEQzAw dTMyIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICgK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVuY29kZXJSZXN1 bHQ6OlVubWFwcGFibGUoJ1x1e0ZGRkR9JyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBjb252ZXJ0ZWQgKyAxLCAvLyArMSBgZm9yIG5vbl9hc2NpaWAKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnZlcnRlZCwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgLy8gVGhlIG5leHQgY29kZSB1bml0IGlzIGEgbG93IHN1cnJvZ2F0ZS4KKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgYXN0cmFsOiBjaGFyID0gdW5zYWZlIHsK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBXZSBj YW4gcmVseSBvbiBub25fYXNjaWkgYmVpbmcgMHhEODAwLTB4REJGRiBzaW5jZSB0aGUgaGlnaCBi aXRzIGFyZSAweEQ4MDAKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Ly8gVGhlbiwgKG5vbl9hc2NpaSA8PCAxMCAtIDB4RDgwMCA8PCAxMCkgYmVjb21lcyBiZXR3ZWVu ICgwIHRvIDB4M0ZGKSA8PCAxMCwgd2hpY2ggaXMgYmV0d2VlbgorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAvLyAweDQwMCB0byAweGZmYzAwLiBBZGRpbmcgdGhlIDB4 MTAwMDAgZ2l2ZXMgYSByYW5nZSBvZiAweDEwNDAwIHRvIDB4MTBmYzAwLiBTdWJ0cmFjdGluZyB0 aGUgMHhEQzAwCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGdp dmVzIDB4MjgwMCB0byAweDEwMjAwMAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAvLyBUaGUgc2Vjb25kIHRlcm0gaXMgYmV0d2VlbiAweERDMDAgYW5kIDB4REZGRiBm cm9tIHRoZSBjaGVjayBhYm92ZS4gVGhpcyBnaXZlcyBhIG1heGltdW0KKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcG9zc2libGUgcmFuZ2Ugb2YgKDB4MTA0MDAg KyAweERDMDApIHRvICgweDEwMjAwMCArIDB4REZGRikgd2hpY2ggaXMgMHgxRTAwMCB0byAweDEw ZmZmZi4KKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhpcyBp cyBpbiByYW5nZS4KKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8K KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRnJvbSBhIFVuaWNv ZGUgcHJpbmNpcGxlcyBwZXJzcGVjdGl2ZSB0aGlzIGNhbiBhbHNvIGJlIHZlcmlmaWVkIGFzIHdl IGhhdmUgY2hlY2tlZCB0aGF0IGBub25fYXNjaWlgIGlzIGEgaGlnaCBzdXJyb2dhdGUKKysgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gKDB4RDgwMC4uPTB4REJGRiks IGFuZCB0aGF0IGBzZWNvbmRgIGlzIGEgbG93IHN1cnJvZ2F0ZSAoYDB4REMwMC4uPTB4REZGRmAp LCBhbmQgd2UgYXJlIGFwcGx5aW5nIHJldmVyc2Ugb2YgdGhlIFVUQzE2IHRyYW5zZm9ybWF0aW9u CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFsZ29yaXRobSA8 aHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvVVRGLTE2I0NvZGVfcG9pbnRzX2Zyb21fVSsw MTAwMDBfdG9fVSsxMEZGRkY+LCBieSBhcHBseWluZyB0aGUgaGlnaCBzdXJyb2dhdGUgLSAweEQ4 MDAgdG8gdGhlCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGhp Z2ggdGVuIGJpdHMsIGFuZCB0aGUgbG93IHN1cnJvZ2F0ZSAtIDB4RGMwMCB0byB0aGUgbG93IHRl biBiaXRzLCBhbmQgdGhlbiBhZGRpbmcgMHgxMDAwMAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICA6OmNvcmU6OmNoYXI6OmZyb21fdTMyX3VuY2hlY2tlZCgKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh1MzI6OmZyb20obm9uX2Fz Y2lpKSA8PCAxMCkgKyBzZWNvbmQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAtICgoKDB4RDgwMHUzMiA8PCAxMCkgLSAweDFfMDAwMHUzMikgKyAweERD MDB1MzIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICByZXR1cm4gKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBFbmNvZGVyUmVzdWx0OjpVbm1hcHBhYmxlKGFzdHJhbCksCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnZlcnRlZCArIDIsIC8vICsyIGBmb3Ig bm9uX2FzY2lpYCBhbmQgYHNlY29uZGAKK0BAIC00NTEsNTIgKzUwMiw2MyBAQCBpbXBsIFNpbmds ZUJ5dGVFbmNvZGVyIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y29udmVydGVkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICByZXR1cm4gKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVu Y29kZXJSZXN1bHQ6OnVubWFwcGFibGVfZnJvbV9ibXAobm9uX2FzY2lpKSwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBjb252ZXJ0ZWQgKyAxLCAvLyArMSBgZm9yIG5vbl9h c2NpaWAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb252ZXJ0ZWQsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOworKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgLy8gU2FmZXR5OiBUaGlzIGJyYW5jaCBkaXZlcmdlcywgc28gbm8gbmVlZCB0 byB1cGhvbGQgaW52YXJpYW50cyBvbiBgY29udmVydGVkYAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAg ICAgICAgIC8vIE5leHQsIGhhbmRsZSBBU0NJSSBwdW5jdHVhdGlvbiBhbmQgbm9uLUFTQ0lJIHdp dGhvdXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAvLyBnb2luZyBiYWNrIHRvIEFTQ0lJIGFj Y2VsZXJhdGlvbi4gTm9uLUFTQ0lJIHNjcmlwdHMKKyAgICAgICAgICAgICAgICAgICAgICAgICAv LyB1c2UgQVNDSUkgcHVuY3R1YXRpb24sIHNvIHRoaXMgYXZvaWQgZ29pbmcgdG8KKyAgICAgICAg ICAgICAgICAgICAgICAgICAvLyBhY2NlbGVyYXRpb24ganVzdCBmb3IgcHVuY3R1YXRpb24vc3Bh Y2UgYW5kIHRoZW4KKyAgICAgICAgICAgICAgICAgICAgICAgICAvLyBmYWlsaW5nLiBUaGlzIGlz IGEgc2lnbmlmaWNhbnQgYm9vc3QgdG8gbm9uLUFTQ0lJCisgICAgICAgICAgICAgICAgICAgICAg ICAgLy8gc2NyaXB0cy4KKyAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUT0RPOiBTcGxpdCBv dXQgTGF0aW4gY29udmVydGVycyB3aXRob3V0IHRoaXMgcGFydAorICAgICAgICAgICAgICAgICAg ICAgICAgIC8vIHRoaXMgc3R1ZmYgbWFrZXMgTGF0aW4gc2NyaXB0LWNvbnZlcnNpb24gc2xvd2Vy LgorICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGNvbnZlcnRlZCA9PSBsZW5ndGggeworICAg ICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKHBlbmRpbmcsIGxlbmd0aCwgbGVuZ3Ro KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICB9CisrICAgICAgICAgICAgICAgICAgICAgICAg Ly8gU2FmZXR5OiB3ZSdyZSBiYWNrIHRvIGBjb252ZXJ0ZWQgPCBsZW5ndGhgIGR1ZSB0byB0aGUg PT0gYWJvdmUgYW5kIGNhbiBwZXJmb3JtCisrICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhl IHVuY2hlY2tlZCByZWFkCisgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCB1bml0ID0g dW5zYWZlIHsgKihzcmMuZ2V0X3VuY2hlY2tlZChjb252ZXJ0ZWQpKSB9OworICAgICAgICAgICAg ICAgICAgICAgICAgICdpbm5lcm1vc3Q6IGxvb3AgeworKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAvLyBTYWZldHk6IFRoaXMgbG9vcCBhbHdheXMgYmVnaW5zIHdpdGggYGNvbnZlcnRlZCA8 IGxlbmd0aGAsIHNlZQorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGUgaW52YXJp YW50IG91dHNpZGUgYW5kIHRoZSBjb21tZW50IG9uIHRoZSBjb250aW51ZSBiZWxvdworICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBpZiB1bml0ID4gMTI3IHsKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIG5vbl9hc2NpaSA9IHVuaXQ7CisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBjb250aW51ZSAnbWlkZGxlOworICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRlc3Rpbmcgb24gSGFzd2VsbCBz YXlzIHRoYXQgd2Ugc2hvdWxkIHdyaXRlIHRoZQorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAvLyBieXRlIHVuY29uZGl0aW9uYWxseSBpbnN0ZWFkIG9mIHRyeWluZyB0byB1bnJlYWQgaXQK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdG8gbWFrZSBpdCBwYXJ0IG9mIHRoZSBu ZXh0IFNJTUQgc3RyaWRlLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNhZmUgewor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBDYW4gcmVseSBvbiBj b252ZXJ0ZWQgPCBsZW5ndGgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICooZHN0 LmdldF91bmNoZWNrZWRfbXV0KGNvbnZlcnRlZCkpID0gdW5pdCBhcyB1ODsKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb252ZXJ0 ZWQgKz0gMTsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYGNvbnZlcnRlZCA8PSBs ZW5ndGhgIGhlcmUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgdW5pdCA8IDYwIHsK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFdlJ3ZlIGdvdCBwdW5jdHVhdGlv bgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgY29udmVydGVkID09IGxlbmd0 aCB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChwZW5kaW5n LCBsZW5ndGgsIGxlbmd0aCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Cisr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IGBjb252ZXJ0ZWQgPCBs ZW5ndGhgIGR1ZSB0byB0aGUgPT0gYWJvdmUuIFRoZSByZWFkIGlzIHNhZmUuCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB1bml0ID0gdW5zYWZlIHsgKihzcmMuZ2V0X3VuY2hlY2tl ZChjb252ZXJ0ZWQpKSB9OworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2Fm ZXR5OiBUaGlzIG9ubHkgaGFwcGVucyBpZiBgY29udmVydGVkIDwgbGVuZ3RoYCwgbWFpbnRhaW5p bmcgaXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlICdpbm5lcm1v c3Q7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgLy8gV2UndmUgZ290IG1hcmt1cCBvciBBU0NJSSB0ZXh0CisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGNvbnRpbnVlICdvdXRlcm1vc3Q7CisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC8vIFNhZmV0eTogQWxsIG90aGVyIHJvdXRlcyB0byBoZXJlIGRpdmVyZ2Ugc28g dGhlIGNvbnRpbnVlIGlzIHRoZSBvbmx5CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8v IHdheSB0byBydW4gdGhlIGlubmVybW9zdCBsb29wLgorICAgICAgICAgICAgICAgICAgICAgICAg IH0KKyAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgfQorICAgICAgICAg ICAgIH0KKyAgICAgICAgIH0KKyAgICAgfQorIH0KKyAKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0 eS9ydXN0L2VuY29kaW5nX3JzL3NyYy94X3VzZXJfZGVmaW5lZC5ycyBiL3RoaXJkX3BhcnR5L3J1 c3QvZW5jb2RpbmdfcnMvc3JjL3hfdXNlcl9kZWZpbmVkLnJzCistLS0gYS90aGlyZF9wYXJ0eS9y dXN0L2VuY29kaW5nX3JzL3NyYy94X3VzZXJfZGVmaW5lZC5ycworKysrIGIvdGhpcmRfcGFydHkv cnVzdC9lbmNvZGluZ19ycy9zcmMveF91c2VyX2RlZmluZWQucnMKK0BAIC05LDIyICs5LDIzIEBA CisgCisgdXNlIHN1cGVyOjoqOworIHVzZSBjcmF0ZTo6aGFuZGxlczo6KjsKKyB1c2UgY3JhdGU6 OnZhcmlhbnQ6Oio7CisgCisgY2ZnX2lmISB7CisgICAgIGlmICNbY2ZnKGZlYXR1cmUgPSAic2lt ZC1hY2NlbCIpXSB7CisgICAgICAgICB1c2Ugc2ltZF9mdW5jczo6KjsKKy0gICAgICAgIHVzZSBw YWNrZWRfc2ltZDo6dTE2eDg7CisrICAgICAgICB1c2UgY29yZTo6c2ltZDo6dTE2eDg7CisrICAg ICAgICB1c2UgY29yZTo6c2ltZDo6Y21wOjpTaW1kUGFydGlhbE9yZDsKKyAKKyAgICAgICAgICNb aW5saW5lKGFsd2F5cyldCisgICAgICAgICBmbiBzaGlmdF91cHBlcih1bnBhY2tlZDogdTE2eDgp IC0+IHUxNng4IHsKKyAgICAgICAgICAgICBsZXQgaGlnaGVzdF9hc2NpaSA9IHUxNng4OjpzcGxh dCgweDdGKTsKKy0gICAgICAgICAgICB1bnBhY2tlZCArIHVucGFja2VkLmd0KGhpZ2hlc3RfYXNj aWkpLnNlbGVjdCh1MTZ4ODo6c3BsYXQoMHhGNzAwKSwgdTE2eDg6OnNwbGF0KDApKSAgICAgICAg fQorKyAgICAgICAgICAgIHVucGFja2VkICsgdW5wYWNrZWQuc2ltZF9ndChoaWdoZXN0X2FzY2lp KS5zZWxlY3QodTE2eDg6OnNwbGF0KDB4RjcwMCksIHUxNng4OjpzcGxhdCgwKSkgICAgICAgIH0K KyAgICAgfSBlbHNlIHsKKyAgICAgfQorIH0KKyAKKyBwdWIgc3RydWN0IFVzZXJEZWZpbmVkRGVj b2RlcjsKKyAKKyBpbXBsIFVzZXJEZWZpbmVkRGVjb2RlciB7CisgICAgIHB1YiBmbiBuZXcoKSAt PiBWYXJpYW50RGVjb2RlciB7CitAQCAtMTExLDIwICsxMTIsMjUgQEAgaW1wbCBVc2VyRGVmaW5l ZERlY29kZXIgeworICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAoRGVjb2RlclJlc3Vs dDo6SW5wdXRFbXB0eSwgc3JjLmxlbigpKQorICAgICAgICAgfTsKKyAgICAgICAgIC8vIE5vdCBi b3RoZXJpbmcgd2l0aCBhbGlnbm1lbnQKKyAgICAgICAgIGxldCB0YWlsX3N0YXJ0ID0gbGVuZ3Ro ICYgITB4RjsKKyAgICAgICAgIGxldCBzaW1kX2l0ZXJhdGlvbnMgPSBsZW5ndGggPj4gNDsKKyAg ICAgICAgIGxldCBzcmNfcHRyID0gc3JjLmFzX3B0cigpOworICAgICAgICAgbGV0IGRzdF9wdHIg PSBkc3QuYXNfbXV0X3B0cigpOworKyAgICAgICAgLy8gU2FmZXR5OiBUaGlzIGlzIGBmb3IgaSBp biAwLi5sZW5ndGggLyAxNmAKKyAgICAgICAgIGZvciBpIGluIDAuLnNpbWRfaXRlcmF0aW9ucyB7 CisrICAgICAgICAgICAgLy8gU2FmZXR5OiBUaGlzIGlzIGluIGJvdW5kczogbGVuZ3RoIGlzIHRo ZSBtaW51bXVtIHZhbGlkIGxlbmd0aCBmb3IgYm90aCBzcmMvZHN0CisrICAgICAgICAgICAgLy8g YW5kIGkgcmFuZ2VzIHRvIGxlbmd0aC8xNiwgc28gbXVsdGlwbHlpbmcgYnkgMTYgd2lsbCBhbHdh eXMgYmUgYDwgbGVuZ3RoYCBhbmQgY2FuIGRvCisrICAgICAgICAgICAgLy8gYSAxNiBieXRlIHJl YWQKKyAgICAgICAgICAgICBsZXQgaW5wdXQgPSB1bnNhZmUgeyBsb2FkMTZfdW5hbGlnbmVkKHNy Y19wdHIuYWRkKGkgKiAxNikpIH07CisgICAgICAgICAgICAgbGV0IChmaXJzdCwgc2Vjb25kKSA9 IHNpbWRfdW5wYWNrKGlucHV0KTsKKyAgICAgICAgICAgICB1bnNhZmUgeworKyAgICAgICAgICAg ICAgICAvLyBTYWZldHk6IHNhbWUgYXMgYWJvdmUsIGJ1dCB0aGlzIGlzIHR3byBjb25zZWN1dGl2 ZSA4LWJ5dGUgcmVhZHMKKyAgICAgICAgICAgICAgICAgc3RvcmU4X3VuYWxpZ25lZChkc3RfcHRy LmFkZChpICogMTYpLCBzaGlmdF91cHBlcihmaXJzdCkpOworICAgICAgICAgICAgICAgICBzdG9y ZThfdW5hbGlnbmVkKGRzdF9wdHIuYWRkKChpICogMTYpICsgOCksIHNoaWZ0X3VwcGVyKHNlY29u ZCkpOworICAgICAgICAgICAgIH0KKyAgICAgICAgIH0KKyAgICAgICAgIGxldCBzcmNfdGFpbCA9 ICZzcmNbdGFpbF9zdGFydC4ubGVuZ3RoXTsKKyAgICAgICAgIGxldCBkc3RfdGFpbCA9ICZtdXQg ZHN0W3RhaWxfc3RhcnQuLmxlbmd0aF07CisgICAgICAgICBzcmNfdGFpbAorICAgICAgICAgICAg IC5pdGVyKCkKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kLy5hcHB2 ZXlvci55bWwgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kLy5hcHB2ZXlvci55bWwKK2Rl bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2lt ZC8uYXBwdmV5b3IueW1sCisrKysgL2Rldi9udWxsCitAQCAtMSw1OSArMCwwIEBACistbWF0cml4 OgorLSAgYWxsb3dfZmFpbHVyZXM6CistICAgICMgRklYTUU6IGh0dHBzOi8vZ2l0aHViLmNvbS9y dXN0LWxhbmctbnVyc2VyeS9wYWNrZWRfc2ltZC9pc3N1ZXMvNzIKKy0gICAgLSBUQVJHRVQ6IGk2 ODYtcGMtd2luZG93cy1tc3ZjCistICAgIC0gVEFSR0VUOiBpNjg2LXBjLXdpbmRvd3MtZ251Cist ICAgIC0gVEFSR0VUOiB4ODZfNjQtcGMtd2luZG93cy1nbnUKKy0gIGZhc3RfZmluaXNoOiB0cnVl CistCistZW52aXJvbm1lbnQ6CistICBtYXRyaXg6CistICAgIC0gVEFSR0VUOiB4ODZfNjQtcGMt d2luZG93cy1tc3ZjCistICAgICAgTVNZU1RFTTogTUlOR1c2NAorLSAgICAgIE5PVkVSSUZZOiAi MSIKKy0gICAgLSBUQVJHRVQ6IHg4Nl82NC1wYy13aW5kb3dzLW1zdmMKKy0gICAgICBNU1lTVEVN OiBNSU5HVzY0CistICAgICAgUlVTVEZMQUdTOiAiLUMgdGFyZ2V0LWZlYXR1cmU9K3NzZTQuMiIK Ky0gICAgICBOT1ZFUklGWTogIjEiCistICAgIC0gVEFSR0VUOiB4ODZfNjQtcGMtd2luZG93cy1t c3ZjCistICAgICAgTVNZU1RFTTogTUlOR1c2NAorLSAgICAgIFJVU1RGTEFHUzogIi1DIHRhcmdl dC1mZWF0dXJlPSthdngiCistICAgICAgTk9WRVJJRlk6ICIxIgorLSAgICAtIFRBUkdFVDogeDg2 XzY0LXBjLXdpbmRvd3MtbXN2YworLSAgICAgIE1TWVNURU06IE1JTkdXNjQKKy0gICAgICBSVVNU RkxBR1M6ICItQyB0YXJnZXQtZmVhdHVyZT0rYXZ4MiIKKy0gICAgICBOT1ZFUklGWTogIjEiCist CistICAgIC0gVEFSR0VUOiBpNjg2LXBjLXdpbmRvd3MtbXN2YworLSAgICAgIE1TWVNURU06IE1J TkdXMzIKKy0gICAgICBOT1ZFUklGWTogIjEiCistICAgIC0gVEFSR0VUOiBpNjg2LXBjLXdpbmRv d3MtbXN2YworLSAgICAgIE1TWVNURU06IE1JTkdXMzIKKy0gICAgICBSVVNURkxBR1M6ICItQyB0 YXJnZXQtZmVhdHVyZT0rc3NlNC4yIgorLSAgICAgIE5PVkVSSUZZOiAiMSIKKy0gICAgLSBUQVJH RVQ6IGk2ODYtcGMtd2luZG93cy1tc3ZjCistICAgICAgTVNZU1RFTTogTUlOR1czMgorLSAgICAg IFJVU1RGTEFHUzogIi1DIHRhcmdldC1mZWF0dXJlPSthdngiCistICAgICAgTk9WRVJJRlk6ICIx IgorLSAgICAtIFRBUkdFVDogaTY4Ni1wYy13aW5kb3dzLW1zdmMKKy0gICAgICBNU1lTVEVNOiBN SU5HVzMyCistICAgICAgUlVTVEZMQUdTOiAiLUMgdGFyZ2V0LWZlYXR1cmU9K2F2eDIiCistICAg ICAgTk9WRVJJRlk6ICIxIgorLQorLSAgICAtIFRBUkdFVDogeDg2XzY0LXBjLXdpbmRvd3MtZ251 CistICAgICAgTVNZU1RFTTogTUlOR1c2NAorLQorLSAgICAtIFRBUkdFVDogaTY4Ni1wYy13aW5k b3dzLWdudQorLSAgICAgIE1TWVNURU06IE1JTkdXMzIKKy0gICAgLSBUQVJHRVQ6IHg4Nl82NC1w Yy13aW5kb3dzLWdudQorLSAgICAgIE1TWVNURU06IE1JTkdXNjQKKy1pbnN0YWxsOgorLSAgLSBw czogaWYgKGxzIC1yIC4gLWZpICIqLnJzIiB8IHNscyAiYHQiKSB7IHRocm93ICJGb3VuZCB0YWIg Y2hhcmFjdGVyIiB9CistICAtIHBzOiBTdGFydC1GaWxlRG93bmxvYWQgImh0dHBzOi8vc3RhdGlj LnJ1c3QtbGFuZy5vcmcvZGlzdC9ydXN0LW5pZ2h0bHktJHtlbnY6VEFSR0VUfS5leGUiIC1GaWxl TmFtZSAicnVzdC1pbnN0YWxsLmV4ZSIKKy0gIC0gcHM6IC5ccnVzdC1pbnN0YWxsLmV4ZSAvVkVS WVNJTEVOVCAvTk9SRVNUQVJUIC9ESVI9IkM6XHJ1c3QiIHwgT3V0LU51bGwKKy0gIC0gcHM6ICRl bnY6UEFUSD0iJGVudjpQQVRIO0M6XHJ1c3RcYmluIgorLSAgLSBzZXQgUEFUSD1jOlxtc3lzNjRc JU1TWVNURU0lXGJpbjtjOlxtc3lzNjRcdXNyXGJpbjslUEFUSCUKKy0gIC0gcnVzdGMgLXZWCist ICAtIGNhcmdvIC12VgorLWJ1aWxkOiBmYWxzZQorLXRlc3Rfc2NyaXB0OiBiYXNoIC1jICJjaS9y dW4uc2giCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC8uY2FyZ28t Y2hlY2tzdW0uanNvbiBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvLmNhcmdvLWNoZWNr c3VtLmpzb24KK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVz dC9wYWNrZWRfc2ltZC8uY2FyZ28tY2hlY2tzdW0uanNvbgorKysrIC9kZXYvbnVsbAorQEAgLTEs MSArMCwwIEBACisteyJmaWxlcyI6eyIuYXBwdmV5b3IueW1sIjoiZjFlZDAxODUwZTBkNzI1Zjk0 OThmNTJhMWE2M2RkZjQwNzAyYWQ2ZTBiZjViMmQ3YzRjMDRkNzZlOTY3OTRhMyIsIi5naXRodWIv d29ya2Zsb3dzL2JlbmNobWFya3MueW1sIjoiZDA0OWYwMTZkYzUzODMwYTNmY2M3MzU4MzNlY2Ex NjhkZjJlNDkxZjMzYjZiNDRjZTdlNGQ1ZDFkZDQ1Mzg1NCIsIi5naXRodWIvd29ya2Zsb3dzL2Np LnltbCI6IjE3MGEyMDc0YWRkNTdkZGM4Zjg4Yjc4MDE0OWU0OTMwMTYyYzZlZTQ3MThhZGQ0MzY5 ZGNhOGUzZmQ2YzAyMmEiLCIuZ2l0aHViL3dvcmtmbG93cy9kb2NzLnltbCI6Ijg2ZjdlYjY1MmM5 MDA2MjRlNGRlYjc2MzIwY2Q5MjE3NWRiMWZhNzI5NWE3NmYyOGYzMDMzNmZmMGZhZDE2MDQiLCIu Z2l0aHViL3dvcmtmbG93cy9ydW4tY2ktc2NyaXB0LnltbCI6ImQ4NDdiZTI5M2Y5ZWMxNzAzOGU0 NTA2NTJiMWViN2JkYzIwYjgwNWMxOGM1ZGJhYjM0ZDFkOWZmN2E5Yzg5NDAiLCIudHJhdmlzLnlt bCI6IjMwYTYxYTVlYzUzMzU1ZmMxZjM1ODVlMTY5MDI4MDMwOGMyYjc5NjE3MDFhYmMxMWU4Mzg5 YjIzNWI2NDcxNzgiLCJDYXJnby50b21sIjoiMDIxNTFjNDE1ZjI2N2E2YWViODY1MTE1ODQ3Mjc0 NGQ3MWUxZDlkYTg4ODNkZDIwYmUyNTczMWE0MmU1MjBmNCIsIkxJQ0VOU0UtQVBBQ0hFIjoiYTYw ZWVhODE3NTE0NTMxNjY4ZDdlMDA3NjU3MzE0NDlmZTE0ZDA1OWQzMjQ5ZTBiYzkzYjM2ZGU0NWY3 NTlmMiIsIkxJQ0VOU0UtTUlUIjoiNjQ4NWI4ZWQzMTBkM2YwMzQwYmYxYWQxZjQ3NjQ1MDY5Y2U0 MDY5ZGNjNmJiNDZjN2Q1YzZmYWY0MWRlMWZkYiIsIlJFQURNRS5tZCI6ImM0YWM3MDI3YTlhYjdk Nzg1OGFhODk1N2Q3NDU0ZGJmY2RiYjgxZTYwNWI2YTE3MWYwNTMxMGNjM2NhZDM3NjIiLCJib3Jz LnRvbWwiOiJkZWU4ODFkYzY5YjliNzgzNGU0ZWJhNWQ5NWMzZWQ1YTQxNmQ0NjI4ODE1YTE2N2Q2 YTIyZDRjYjRmYjA2NGI4IiwiYnVpbGQucnMiOiIwMTllZDI5YzQzOTg5NzgyZDhlZWMzYTk2MTY1 NGNmYzE3MmQ3YTc4OThkYTRlY2E4ZjY1NDcwMGFmN2UxOTg4IiwiY2kvYWxsLnNoIjoiMmFlNmIy NDQ1YjRkYjgzODMzZTQwYjM3ZWZkMDAxNmM2Yjk4NzllZTk4OGI5YjNlZjk0ZGI1NDM5YTNlMTYw NiIsImNpL2FuZHJvaWQtaW5zdGFsbC1uZGsuc2giOiJiZGNmOTNiYTkwNDNhYzExODRlMmM1MDRh M2Q0MGM0N2M2YzE2MDFkODgyZTBmMGEyN2E4ZWI1NmZiYWJjYjVmIiwiY2kvYW5kcm9pZC1pbnN0 YWxsLXNkay5zaCI6IjM0OTA0MzIwMjJjNWM4ZjVhMTE1YzA4NGY3YTlhY2ExNjI2Zjk2YzBjODdm ZmI2MjAxOTIyOGM0MzQ2YjQ3ZTQiLCJjaS9hbmRyb2lkLXN5c2ltYWdlLnNoIjoiZWJmNGU1ZGFh MWYwZmUxYjIwOTJiNzlmMGYzZjE2MWM0YzQyNzVjYjc0NGU1MjM1MmM0ZDgxYWI0NTFlNGM1YSIs ImNpL2JlbmNobWFyay5zaCI6ImI2MWQxOWVmNmI5MGRlYmE4ZmI3OWRlZTc0YzhiMDYyZDk0ODQ0 Njc2MjkzZGEzNDZkYTg3YmI3OGE5YTQ5YTQiLCJjaS9kZXBsb3lfYW5kX3J1bl9vbl9pb3Nfc2lt dWxhdG9yLnJzIjoiZWM4ZWNmODJkOTIwNzI2NzZhYTQ3ZjBkMWEzZDAyMWI2MGE3YWUzNTMxMTUz ZWYxMmQyZmY0NTQxZmMyOTRkYyIsImNpL2RvY2tlci9hYXJjaDY0LWxpbnV4LWFuZHJvaWQvRG9j a2VyZmlsZSI6ImFjZTJlN2QzM2M4N2JjMGY2ZDM5NjJhNGEzNDA4YzA0NTU3NjQ2ZjdmNTFhYjk5 Y2ZiZjU3NDkwNjc5NmIwMTYiLCJjaS9kb2NrZXIvYWFyY2g2NC11bmtub3duLWxpbnV4LWdudS9E b2NrZXJmaWxlIjoiZGE4OGMwZDUwZjE2ZGMwODQ0OGM3ZmRmMWZhNWVkMmNiZTU3NmFjZjllN2Rk ODViNWI4MTg2MjFiMmE4YzcwMiIsImNpL2RvY2tlci9hcm0tdW5rbm93bi1saW51eC1nbnVlYWJp L0RvY2tlcmZpbGUiOiJiYjVmOGFlODkwNzA3YzEyODY1MjI5MGZmYzU0NDQ0NzY0M2JmMTIwMzdk ZGQ3M2M2YWQ2OTg5Zjg0OGNiMzgwIiwiY2kvZG9ja2VyL2FybS11bmtub3duLWxpbnV4LWdudWVh YmloZi9Eb2NrZXJmaWxlIjoiMWFmYWVmY2JjMDViNzQwODU5YWNkNGUwNjdiYzkyNDM5YmU2YmNi ZThmMmU5Njc4NDc0ZmI0MzRiY2QzOThkOSIsImNpL2RvY2tlci9hcm12Ny1saW51eC1hbmRyb2lk ZWFiaS9Eb2NrZXJmaWxlIjoiMzcwZTU1ZDMzMzBhNDEzYTNjY2Y2NzdiM2FmYjNlMGVmOTAxOGE1 ZmFiMjYzZmFhOTdhZThhYzAxN2ZjMjI4NiIsImNpL2RvY2tlci9hcm12Ny11bmtub3duLWxpbnV4 LWdudWVhYmloZi9Eb2NrZXJmaWxlIjoiODI4MmVhNzA3YTk0MTA5YmVlZDQ3YTU3NTc0NzU1ZTJk NTg0MDE3MzU5MDRhMDNmODVmYjY0YzU3OGM1M2I0ZiIsImNpL2RvY2tlci9pNTg2LXVua25vd24t bGludXgtZ251L0RvY2tlcmZpbGUiOiI0OTc5MjkyMjI2OWYzNzFiZDI5ZGE0NzI3ZTkwODUxMDFi MjdiZTY3YTZiOTc3NTVkMDE5NmM2MzMxN2Y3YWJiIiwiY2kvZG9ja2VyL2k2ODYtdW5rbm93bi1s aW51eC1nbnUvRG9ja2VyZmlsZSI6IjQ5NzkyOTIyMjY5ZjM3MWJkMjlkYTQ3MjdlOTA4NTEwMWIy N2JlNjdhNmI5Nzc1NWQwMTk2YzYzMzE3ZjdhYmIiLCJjaS9kb2NrZXIvbWlwcy11bmtub3duLWxp bnV4LWdudS9Eb2NrZXJmaWxlIjoiYjJlYmMyNTc5NzYxMmM0ZjgzOTVmZTlkNDA3NzI1MTU2MDQ0 OTU1YmZiY2Y0NDIwMzZiN2Y1NWI0M2E1ZjlkYSIsImNpL2RvY2tlci9taXBzNjQtdW5rbm93bi1s aW51eC1nbnVhYmk2NC9Eb2NrZXJmaWxlIjoiYjBjMTY5MmFjNjViYzU2ZGQzMDQ5NGIxOTkzZDhl OTI5YzQ4Y2M5YzRiOTIwMjliN2M3NTkyYWY2ZDRmOTIyMCIsImNpL2RvY2tlci9taXBzNjRlbC11 bmtub3duLWxpbnV4LWdudWFiaTY0L0RvY2tlcmZpbGUiOiI0ZTkyNDljMTc5MzAwMTM4MTQxZDBi MmI3NDAxYjExODk3ZjY0YWVkNjlmNTQxZjA3OGMxZGI0NTk0ZGYyODI3IiwiY2kvZG9ja2VyL21p cHNlbC11bmtub3duLWxpbnV4LW11c2wvRG9ja2VyZmlsZSI6IjMxNjRjNTJiMGRjYmIwMWFmYTc4 MjkyYjE1YjVjNDM1MDNjY2YwNDkxY2Y2ZWI4MDFlYzJiZjIyYWUyNzRlNTIiLCJjaS9kb2NrZXIv cG93ZXJwYy11bmtub3duLWxpbnV4LWdudS9Eb2NrZXJmaWxlIjoiYWU4Mjc0MzA5OTI4NjIwYTVk ZDIzMmE0NjI2NGUwNTM5OWJiNzQ2Mjg4ZWJlZTM4NDNhNzFjNDE2MjIwOGNjMyIsImNpL2RvY2tl ci9wb3dlcnBjNjQtdW5rbm93bi1saW51eC1nbnUvRG9ja2VyZmlsZSI6ImJhNWZiYzRiZjNiYjkx Y2Q1MGI0MDcyNDhkYTMxMjI1NjgxZWZjOGYyYmU3NjE4ZjRhMGFiMTIxOWIzODk1MDgiLCJjaS9k b2NrZXIvcG93ZXJwYzY0bGUtdW5rbm93bi1saW51eC1nbnUvRG9ja2VyZmlsZSI6IjUzZjk3Zjhi OWI1YWNhNzUzNGI5YmY5ZWE0OGYzNTE3NTA1MmNkMmE1NjBhMTA3ZTAxYWQyNzA3MzFjMDMyZmMi LCJjaS9kb2NrZXIvczM5MHgtdW5rbm93bi1saW51eC1nbnUvRG9ja2VyZmlsZSI6Ijg5ZjU0MjFj ZjA2ZDgxN2FlOTQwOTI5ODdlOTE0NDcyZWYzODRhZDJkMWZmZjI3MzViZTNkODc4NmJhMTEyMTQi LCJjaS9kb2NrZXIvc3BhcmM2NC11bmtub3duLWxpbnV4LWdudS9Eb2NrZXJmaWxlIjoiODNlYmEx OTU3NjQ4NmY5ZDEwZDdjMDM3ZDY2OWQ3MmIzMWE2NTU2NWE0NzlmMzBiMjJhYWIzNmFhYTJmZjhk YyIsImNpL2RvY2tlci90aHVtYnY3bmVvbi1saW51eC1hbmRyb2lkZWFiaS9Eb2NrZXJmaWxlIjoi YzJkZWNkNTU5MWJkN2EwOTM3ODkwMWJlZjYyOWNkOTQ0YWNmMDUyZWI1NWU0ZjM1Yjc5ZWI5Y2I0 ZDYyMjQ2YSIsImNpL2RvY2tlci90aHVtYnY3bmVvbi11bmtub3duLWxpbnV4LWdudWVhYmloZi9E b2NrZXJmaWxlIjoiNTE5NTVhOGJmM2M0ZDQ0MGY0NzM4MmFmNmY1NDI2ZWJmZjk0YWIwMWEwNGRh MzYxNzViYWJkYTlhMDU3NzQwZiIsImNpL2RvY2tlci93YXNtMzItdW5rbm93bi11bmtub3duL0Rv Y2tlcmZpbGUiOiJiOTgyYjQyMWM3MGRiNDc2OTAwZGY1YjYwZTE5ZWY4ODE1ZTZjN2RhZTIyNjg3 MjI1MDAyNzgwY2FiN2IwYTc2IiwiY2kvZG9ja2VyL3g4Nl82NC1saW51eC1hbmRyb2lkL0RvY2tl cmZpbGUiOiJhMTdlYmRiMTg2Y2UyZGQ2YjYyMTAwYjVhNDM5ZTA1YTFhYjlhZGFiMTEzZTI1MDg4 NDNlMTIxYWFlYTUyOTkyIiwiY2kvZG9ja2VyL3g4Nl82NC11bmtub3duLWxpbnV4LWdudS1lbXVs YXRlZC9Eb2NrZXJmaWxlIjoiNDRiNjIwM2Q5MjkwYmZkYzUzZDgxMjE5ZjA5MzdlMTExMDg0N2Ey M2RkOTgyZWM4YzRkZTM4ODM1NGYwMTUzNiIsImNpL2RvY2tlci94ODZfNjQtdW5rbm93bi1saW51 eC1nbnUvRG9ja2VyZmlsZSI6IjdmNGUzY2E1ZmEyODhlYTcwZWRiNGQxZjc1MzA5NzA4Y2QzMGIx OTJlMmU0NDQ0ZTYxYzRkNWIzYjU4Zjg5Y2YiLCJjaS9kb3guc2giOiI0MzRlOTYxMWM1MmUzODkz MTJkMmIwMzU2NGFkZjA5NDI5ZjEwY2M3NmZlNjZhODY0NGFkYjEwNDkwM2I4N2I3IiwiY2kvbGlu dXgtczM5MHguc2giOiJkNmI3MzJkNzc5NWI0YmExMzEzMjZhZmY4OTNiY2E2MjI4YTdkMmViMGU5 NDAyZjEzNTcwNTQxM2RiYmUwZGNlIiwiY2kvbGludXgtc3BhcmM2NC5zaCI6ImM5Mjk2NjgzOGIx YWI3YWQzYjdhMzQ0ODMzZWU3MjZhYmE2YjY0N2NmNTk1MmU1NmYwYWQxYmE0MjBiMTMzMjUiLCJj aS9sbGQtc2hpbS5ycyI6IjNkN2Y3MWVjMjNhNDllMmI2N2Y2OTRhMDE2ODc4NmY5YTk1NGRkYTE1 ZjVhMTM4ODE1ZDk2NjY0M2ZkM2ZjYzMiLCJjaS9tYXhfbGluZV93aWR0aC5zaCI6IjBhMTUxOGJi YTRjOWVjYWE1NTY5NGNiMmU5OTMwZDBlMTljMjY1YmFhYmY3MzE0M2YxN2Y5Y2YyODVhYWE1YmIi LCJjaS9ydW4tZG9ja2VyLnNoIjoiOTJlMDM2MzkwYWQ5YjBkMTZmMTA5NTc5ZGYxYjVjZWQyZTcy ZTlhZmVhNDBjN2QwMTE0MDBlYmQzYTJhOTBkZSIsImNpL3J1bi5zaCI6IjlhZmFiYzk2MWUwZWU4 M2I4NzIwMWYzZmQ1NTRjMTllNWIwYzM2ZjNhOTVkMDEzNTk1ZTI3NmM5ODgyZGQwYTQiLCJjaS9y dW5fZXhhbXBsZXMuc2giOiJkMWEyM2M2YzM1Mzc0YTA2NzhiYTUxMTRiOWI4ZmVmZDhiZTBhNzll Nzc0ODcyYThiZjA4OThkMWJhY2ExOGQwIiwiY2kvcnVudGVzdC1hbmRyb2lkLnJzIjoiMTQ1YThl OTc5OWE1MjIzOTc1MDYxZmU3ZTU4NmFkZTU2NjllZTQ4NzdhN2Q3YTRjZjZiNGFiNDhlOGUzNmM3 YyIsImNpL3NldHVwX2JlbmNobWFya3Muc2giOiJmYWUzOTYwMDIzZjZmM2QxMzg4Y2QyYWQyMmZk YmFiNGIwNzVmMWYyOWRkNDI5MmQ3OTk0YTIwNzgzYmViNmNmIiwiY2kvdGVzdC1ydW5uZXItbGlu dXgiOiJjOGFhNjAyNWNmZjUzMDZmNGYzMWQwYzYxZGM1ZjlkNGRkNWExZDE4OWFiNjEzZWY4ZDRj MzY3YzY5NGQ5Y2NkIiwiY29udHJpYnV0aW5nLm1kIjoiMmQyNjI5MzEwYWQ0ZDQ2NGM0ODJiZGJi NTgxOWYwZDZjZTIyM2M1NzZhZWVmMmNkY2U2YTFmNjg1NzA4NWVhNSIsInBlcmYtZ3VpZGUvLmdp dGlnbm9yZSI6ImZlODJjN2RhNTUxMDc5ZDgzMmNmNzQyMDBiMGIzNTliNGRmOTgyOGNiNGEwNDE2 ZmE3Mzg0ZjA3YTJhZTZhMTMiLCJwZXJmLWd1aWRlL2Jvb2sudG9tbCI6IjExNWE5ODI4NDEyNmM2 YjE4MDE3OGI0NDcxMzMxNGNjNDk0ZjA4YTcxNjYyZWUyY2UxNWNmNjdmMTdhNTEwNjQiLCJwZXJm LWd1aWRlL3NyYy9TVU1NQVJZLm1kIjoiM2UwM2JmZmM5OTFmZGMyMDUwZjNkNTE4NDJkNzJkOWQy MWVhNmFiYWI1NmEzYmFmM2IyZDU5NzNhNzhiODllMSIsInBlcmYtZ3VpZGUvc3JjL2FzY2lpLmNz cyI6IjI5YWZiMDg4MzNiMmZlMjI1MGYwNDEyZTFmYTExNjFhMjQzMmEwODIwYTE0OTUzYzg3MTI0 NDA3NDE3Yzc0MWEiLCJwZXJmLWd1aWRlL3NyYy9ib3VuZF9jaGVja3MubWQiOiI1ZTQ5OTFmZjU4 YTE4M2VmMGNkOWZkYzFmZWI0Y2QxMmQwODNiNDRiZGY4NzM5M2JiYjA5Mjc4MDhlZjNjZTdkIiwi cGVyZi1ndWlkZS9zcmMvZmxvYXQtbWF0aC9hcHByb3gubWQiOiI4YzA5MDMyZmEyZDc5NWEwYzVk YjE3NzU4MjZjODUwZDI4ZWIyNjI3ODQ2ZDA5NjVjNjBlZTcyZGU2MzczNWFkIiwicGVyZi1ndWlk ZS9zcmMvZmxvYXQtbWF0aC9mbWEubWQiOiIzMTEwNzZiYTRiNzQxZDYwNGE4MmU3NGI4M2E4ZDdl OGMzMThmY2JkN2Y2NGM0MzkyZDFjZjVhZjk1YzYwMjQzIiwicGVyZi1ndWlkZS9zcmMvZmxvYXQt bWF0aC9mcC5tZCI6IjA0MTUzZTc3NWFiNmU0ZjBkNzgzN2JjYzUxNTIzMGQzMjdiMDRlZGZhMzRj ODRjZTljOWUxMGViYWVlZjJiZTgiLCJwZXJmLWd1aWRlL3NyYy9mbG9hdC1tYXRoL3N2bWwubWQi OiIwNzk4ODczYjhlZWRhZWRhNWZlZDYyZGM5MTY0NWI1N2MyMDc3NWEwMmQzY2Q3NGQ4YmQwNjk1 OGYxNTE2NTA2IiwicGVyZi1ndWlkZS9zcmMvaW50cm9kdWN0aW9uLm1kIjoiOWY1YTE5ZTllNjc1 MWYyNWQyZGFhZDM5ODkxYTBjYzYwMDk3NDUyN2VjNGM4MzA1ODQzZjk2MTg5MTA2NzFiZCIsInBl cmYtZ3VpZGUvc3JjL3Byb2YvbGludXgubWQiOiI0NDc3MzFlYjVkZTdkNjkxNjY3MjhmZGJjNWVj YjBjMGM5ZGI2NzhlYTQ5M2I0NWE1OTJkNjdkZDAwMjE4NGMwIiwicGVyZi1ndWlkZS9zcmMvcHJv Zi9tY2EubWQiOiJmNTZkNTRmM2QyMGU3YWE0ZDMyMDUyMTg2ZTgyMzdiMDNkNjU5NzFlYjVkMTEy ODAyYjQ0MjU3MGZmMTFkMzQ0IiwicGVyZi1ndWlkZS9zcmMvcHJvZi9wcm9maWxpbmcubWQiOiI4 YTY1MGMwZmQ2ZWRlMDk2NDc4OWJiNjU3NzU1N2VlZWYxZDgyMjZhODk2Nzg4NjAyY2U2MTUyOGUy NjBlNDNjIiwicGVyZi1ndWlkZS9zcmMvdGFyZ2V0LWZlYXR1cmUvYXR0cmlidXRlLm1kIjoiNjE1 Zjg4ZGNhMGE3MDdiNmM0MTZmYTYwNTQzNWRkNmUxZmI1MzYxY2M2Mzk0MjljYmY2OGNkODc2MjRi ZDc4YiIsInBlcmYtZ3VpZGUvc3JjL3RhcmdldC1mZWF0dXJlL2ZlYXR1cmVzLm1kIjoiMTcwNzc3 NjBmZjI0YzAwNmI2MDZkZDIxODg5YzUzZDg3MjI4ZjQzMTFmM2JhM2E1NzRmOWFmZGVhY2Q4NjE2 NSIsInBlcmYtZ3VpZGUvc3JjL3RhcmdldC1mZWF0dXJlL2lubGluaW5nLm1kIjoiN2VkMWQ3MDY4 ZDgxNzNhMDBkODRjMTZjZmU1ODcxY2Q2OGI5ZjA0ZjhkMGNjYTJkMDFlYmM4NDk1N2ViZjJmNiIs InBlcmYtZ3VpZGUvc3JjL3RhcmdldC1mZWF0dXJlL3ByYWN0aWNlLm1kIjoiYzRiMzcxODQyZTAw ODZkZjE3ODQ4OGZlYzk3ZjIwZGVmOGYwYzYyZWU1ODhiY2QyNWZkOTQ4YjliMWZhMjI3ZSIsInBl cmYtZ3VpZGUvc3JjL3RhcmdldC1mZWF0dXJlL3J1bnRpbWUubWQiOiI4MzU0MjVmNWVlNTk3ZmIz ZTUxZDM2ZTcyNWE4MWViZWUyOWY0NTYxMjMxZDE5NTYzY2Q0ZGE4MWRiYjFjZmNiIiwicGVyZi1n dWlkZS9zcmMvdGFyZ2V0LWZlYXR1cmUvcnVzdGZsYWdzLm1kIjoiMDExOTdhY2Y2ZjBhZGVjOGRi MzJiODU5MTgxMWY2OWNlY2I2NTU1YTJiMDVkYzVkNWVjMjdkMGUzZjdiMDY1ZSIsInBlcmYtZ3Vp ZGUvc3JjL3ZlcnQtaG9yLW9wcy5tZCI6ImM2MjExYzBlZTkxZTYwNTUyZWM1OTJkODlkOWQ5NTdl ZWRjMjFkZWUzY2JkODllMWFkNjc2NWVhMDZhMjc0NzEiLCJydXN0Zm10LnRvbWwiOiJkOTlhNDNm M2Y4ZWY5ZTQyNWNmMDFjMzMzZmJhOWYwMDUxZjg4OGY1ZDg3YWI0ZThmNjNjMmY3ZDBmZTY2MjBm Iiwic3JjL2FwaS5ycyI6ImJiMTc5NWU5NjU3YTgyOThkMzdkMjM0OWI0NTQ0M2YwOGU5ZTQ1NTM5 OWFkNGI3MjcwMTg2MDA3Mjg0NzhjMTAiLCJzcmMvYXBpL2JpdF9tYW5pcC5ycyI6IjI3ZjMwOTdm YzBhMTFlM2M0MTA3MDQ5ZDk3NzllNjgwZGNkNjc0MDdhMDY2NzA0MDA4YTZiOWM0ZmQ1MjllMDUi LCJzcmMvYXBpL2JpdG1hc2sucnMiOiIwNThlYmMzOGEyZTAzNjNmMDdhNDQxZDNlOWE0Nzc1YWFl YzU3Y2NiMTcwYTBlNWQ1ZWZhNWRjNDc0M2FiMDdiIiwic3JjL2FwaS9jYXN0LnJzIjoiMDNiOTRh M2QzMTZhYzdiN2JlNzA2ODgxMDA0NDkxMWU5NjVlODg5YTBhY2U3YmFlNzYyNzQ5Y2E3NGE5Mjc0 NyIsInNyYy9hcGkvY2FzdC9tYWNyb3MucnMiOiJiMGExNGQwYzgzYWQyZWJiN2EyNzUxODBmNmQ5 ZTNmMmJjMzEyYmE1N2E3ZDNkNmMzOWZhZDRlMGYyMGY5NDA4Iiwic3JjL2FwaS9jYXN0L3YxMjgu cnMiOiJlZGQwOTk0ZWZhYzQzNzlkZmYyNmUxNzg0MjNhNTJkYmIzZmZlYjM4YjFmYzk3Y2FlOTc1 ZDc0NGMwMGI0ZmI2Iiwic3JjL2FwaS9jYXN0L3YxNi5ycyI6Ijk2YmQ5OGMyZDIxYjA2NjNhYmU2 YzBhYjMzMDA1YjFmYTY5M2YzZGI3ZWU2Nzk1MzUxMzkxMzQzODYzNDg0ZGEiLCJzcmMvYXBpL2Nh c3QvdjI1Ni5ycyI6IjhjMzFmZTkxZjVlNzhlZjczN2RmYmE2OTc5Y2MxMjQwMjEwY2IwOTRhODlk Mjg0ZmU0NTliZjhhOTkxY2EyNGIiLCJzcmMvYXBpL2Nhc3QvdjMyLnJzIjoiYTk5YTc5ZGQ4NGQy YTVlNmFkZjlkYjk4NzA1Njc1OTE1YmQwM2ZkMTI4N2Q0ODljN2ZlMzhlODRkN2U0YTA4NiIsInNy Yy9hcGkvY2FzdC92NTEyLnJzIjoiYzBkZDUyNmY0MWVkN2I4YTcxYzM3NDNkOTEyNjc1NTRlYzBh MGM3NTgzNGNjYzJlM2VjYjBlZjMwMDRhZjY0MiIsInNyYy9hcGkvY2FzdC92NjQucnMiOiI2NTcy ZmRiYTJhMTI0MWE2Y2Q2NjZkM2YwY2NlMzMwNmNkMmNiN2U1ZTIzNjE3MmU1OWQ1ZDQzNTFjOGE4 OGFmIiwic3JjL2FwaS9jbXAucnMiOiIzNTdjM2EyYTA5YzZkNDYxMWMzMmRkN2ZhOTViZTJmYWU5 MzNkNTEzZTIyOTAyNmVjOWI0NDQ1MWE3N2I4ODRlIiwic3JjL2FwaS9jbXAvZXEucnMiOiI2MGY3 MGYzNTViYWU0Y2I1YjE3ZGI1MzIwNGNhY2MzODkwZjcwNjcwNjExYzE3ZGY2MzhkNGMwNGY3Y2M4 MDc1Iiwic3JjL2FwaS9jbXAvb3JkLnJzIjoiNTg5ZjcyMzQ3NjFjMjk0ZmE1ZGY4ZjUyNWJjNGFj ZDVhNDdjZGI2MDIyMDdkNTI0YTBkNGUxOTgwNGNkOTY5NSIsInNyYy9hcGkvY21wL3BhcnRpYWxf ZXEucnMiOiI5MDJjY2I4YWEwMWZkNTczOGIzMGJhMGI3MTI2NjljMjFkNDgwMTk1ODkwN2UwM2Jh ZDIzNDMyYzdkYmEwMTk4Iiwic3JjL2FwaS9jbXAvcGFydGlhbF9vcmQucnMiOiI5ZGIwYzM3ZDc0 MzRjZGZjNjJkOGQ2NjkxMmU5NzJmYTNkOGMxMTVhYjJhZjA1MWE2ZjQ1ZTQxNGJkM2U0ZjFjIiwi c3JjL2FwaS9jbXAvdmVydGljYWwucnMiOiJkZTNkNjJmMzhlYmE4MTcyOTlhYTE2ZjFlMTkzOTk1 NGM5YTQ0N2UzMTY1MDkzOTc0NjVjMjgzMDg1MmJhMDUzIiwic3JjL2FwaS9kZWZhdWx0LnJzIjoi NjdiZjIxYzEzNDEyN2QxMmE3MDI4YzhiODhhNTdmMGNlZWU4Y2NiZDc0OTc2ZGE4Y2E3NGViOWYx NmExNzRkNSIsInNyYy9hcGkvZm10LnJzIjoiNjdmYjgwNGJiODZiNmNkNzdjZjhjZDQ5MmI1NzMz Y2U0MzcwNzFiNjZmZTMyOTcyNzhiOGE2NTUyYzMyNWRkYSIsInNyYy9hcGkvZm10L2JpbmFyeS5y cyI6IjAyYjJiMjg3Zjc0MDRmOGE5ODM4MTNjZjcwYzg3MTA4YzhkYTM4MzU1NzhiNjNhYjMwMzEx Njg4NWY2MDk0MTMiLCJzcmMvYXBpL2ZtdC9kZWJ1Zy5ycyI6IjU2ZTFjM2JkYzA5Mjc0NzM0NGZm ZmFhZmZmOWRhNzE2M2VlNzgyNzg1N2Y2ZmI3Y2IxYzk5MjNlY2E0ZjZmYTAiLCJzcmMvYXBpL2Zt dC9sb3dlcl9oZXgucnMiOiI1NThmZDU5MmY3ZjQ4NTcxMmZiMDUxNTA5Y2VjYzcxNzRhMjFlNmJm NjJlNWNlNjQ3NjZlNzVhZmM5N2JiOGUxIiwic3JjL2FwaS9mbXQvb2N0YWwucnMiOiIzYjJlNzA4 NzdhNGYzNjhjNzcwNGY4ZTI1NDIzNmMwMTRjMzY1Yzc0ZDkzMzcxYzFmZWI1ZjAzMGU2YzY2NDIy Iiwic3JjL2FwaS9mbXQvdXBwZXJfaGV4LnJzIjoiMmE0NDJmNjY2YmM4MGUyMmQ0MWY5MDNmODgx MjM4ZmUxMTRkZDQ5MzQ0YzNlZDY5ODQ5MjUwZTg1M2NhZmM1ZCIsInNyYy9hcGkvZnJvbS5ycyI6 IjJlNTk5ZDgzMjljYjA1ZWFmMDYyMjRjYzQ0MTM1NWM0YjdiNTEyNTRmYzE5MjU2NjE5MzMzYmU4 YzE0OWQ0NDQiLCJzcmMvYXBpL2Zyb20vZnJvbV9hcnJheS5ycyI6IjVkMmNjNzAwNTY4Mzc2YmY2 ZWUxZmU1ZTQwNmRhM2JjMmQ0ODhmZjE1NTY0NGJmNzNkMDZhMTM0OWI3M2ZjNTMiLCJzcmMvYXBp L2Zyb20vZnJvbV92ZWN0b3IucnMiOiI5NzY0MzcxYWE5ZTYwMDVhYWNlNzRkZWExNGY1OWU1NjEx YTA5NWI3Y2Y0MjcwNzk0MDkyNDc0OTI4MmM1MmYwIiwic3JjL2FwaS9oYXNoLnJzIjoiNTA3NmVj ZTg3OTY5NTkyYzg3NjQ4NmY1YjFlYThhZmZiZWFlYzM3OWQxYTE0YTMwODU5ZTBhYTU1OTIwMTlk ZSIsInNyYy9hcGkvaW50b19iaXRzLnJzIjoiOGY4MDExNjI3MjUwZTIzZTY2YjVjMGNhNjQxYWZi MDc5ZDgyMzI2NzRiYjEzNTQxNDBiNTM2YmRiZWE2M2U1NSIsInNyYy9hcGkvaW50b19iaXRzL2Fy Y2hfc3BlY2lmaWMucnMiOiJlNzQ0NTAyMWYzOTA4MzI2YmZlZTc1ODgzNWU1ZmM1YWQ1NmFhMWJh YTc3ZmMxYzU4YWJlNDM1MGM2NmM2NzBhIiwic3JjL2FwaS9pbnRvX2JpdHMvbWFjcm9zLnJzIjoi YmI0ZmU5OWJlMmFmNmEyMWQ4MDVlZmFiNDRjOGU0ZTYxYTdiMmFkYjQyYTY1NTA0YTBjZjI2ZDEz ZWZkYWRjZCIsInNyYy9hcGkvaW50b19iaXRzL3YxMjgucnMiOiIxNDVhNDQ5MjJiMDlhNWNhNWI2 MmQ4OGE0NjFkMzI3ZDM5OWE5OTdhMTVkYjRiMTFkN2IxN2U1NTRhOWZhNGMwIiwic3JjL2FwaS9p bnRvX2JpdHMvdjE2LnJzIjoiZjRmNGY2MWJhODhhYTUxYjE1OGVjNTZjYTNkY2UyMzQzNDlhZWEw ZGFmMmIzMDI5YTE0YWI1MTI1ZDFlNDFlNSIsInNyYy9hcGkvaW50b19iaXRzL3YyNTYucnMiOiI4 Y2VhOWM1ZDk4MDlmMTEzMjNjYjdjZGM1M2I4M2RmNTkzZmQxN2NhZjkyNjI1MWU0MTJhZTk3Nzdi ZWQ1NDdmIiwic3JjL2FwaS9pbnRvX2JpdHMvdjMyLnJzIjoiOTA1YmE2ODNkMzQyZmEzMmY0MjAy YjgwYmI0NjUzMDgwN2JkMGE1YjU4OGY2YzJlOGM5ZjQ3NTIyM2M0Nzc3NSIsInNyYy9hcGkvaW50 b19iaXRzL3Y1MTIucnMiOiJlMjVhZmExZmJmMDg4YTVkNThlN2Q3NWQxOTdiNmNkNGM1NjYzN2Vh Mjg1NDJiYTE4ZTQ2YTQ1MWYyOWQwNGU3Iiwic3JjL2FwaS9pbnRvX2JpdHMvdjY0LnJzIjoiZDYy MzgwMjJjY2ZmN2I5MmU1NWIzZjYwMTdmYzI2OWFjYjZmMzYzMzBhNmQ3ZThmYjM4OTg1M2EwZjFi NjQ3OCIsInNyYy9hcGkvbWF0aC5ycyI6IjhiMmEyZmM2NTE5MTdhODUwNTM5Zjk5M2FhMGI5ZTVi ZjRkYTY3YjExNjg1Mjg1YjhkZThjZGNhMzExNzE5ZWMiLCJzcmMvYXBpL21hdGgvZmxvYXQucnMi OiI2MWQyNzk0ZDY4MjYyYTEwOTBhZTQ3M2JkMzA3OTNiNWY2NWNmNzMyZjMyYTY2OTRhM2FmMmNl NWQ5MjI1NjE2Iiwic3JjL2FwaS9tYXRoL2Zsb2F0L2Ficy5ycyI6IjViNmIyNzAxZTJlMTExMzVi N2NlNThhMDUwNTJlYTgxMjBlMTBlNDcwMmM5NWQwNDZiOWQyMWI4MjdiMjZiZjgiLCJzcmMvYXBp L21hdGgvZmxvYXQvY29uc3RzLnJzIjoiNjMwMmM5MjYxZGE0MjkxZDE0NGQ1YmI1MzQ5M2NkZDA3 MzQ5OGZlYjQwOTU1ZmI2ODYwZWEzYzRkMDZjOTc4YSIsInNyYy9hcGkvbWF0aC9mbG9hdC9jb3Mu cnMiOiI0YzJkZDcxNzM3MjhlZjE4OTMxNGYxNTc2Yzk0ODZlMDNiZTIxYjdkYTk4ODQzYjJmOTAx MTI4MmE3OTc5ZTMxIiwic3JjL2FwaS9tYXRoL2Zsb2F0L2V4cC5ycyI6IjdjNmQ1ZjFlMzA0ZjQ5 OGEwMWNmYTIzYjkyMzgwYzgxNWQ3ZGEwYWQ5NGVhZTM0ODM3ODNiYzM3N2QyODdlZWYiLCJzcmMv YXBpL21hdGgvZmxvYXQvbG4ucnMiOiI1NGM3NTgzZjNkZjc5M2IzOWZmNTc1MzRmYWRlMjdiNDFi Yjk5MjQzOWU1ZGMxNzgyNTJmNWNhMzE5MGEzZTU0Iiwic3JjL2FwaS9tYXRoL2Zsb2F0L211bF9h ZGQucnMiOiI2MmNhYzc3NjYwZDIwMTU5Mjc2ZDRjOWVmMDY2ZWI5MGM4MWNiZGRiODA4ZThlMTU3 MTgyYzYwNzYyNWFkMmViIiwic3JjL2FwaS9tYXRoL2Zsb2F0L211bF9hZGRlLnJzIjoiYmFlMDU2 ZWU5ZjNhNzBkZjM5ZWMzYzNiMmY2NDM3YzY1MzAzODg4YTdiODQzZWYxYTViY2YxZjVhY2EwZTYw MiIsInNyYy9hcGkvbWF0aC9mbG9hdC9wb3dmLnJzIjoiOWRkYjkzODk4NGIzNmQzOWQ4MmE4MmY4 NjJmODBkZjhmN2ZiMDEzZjFkMjIyZDQ1Njk4ZDQxZDg4NDcyZjU2OCIsInNyYy9hcGkvbWF0aC9m bG9hdC9yZWNwcmUucnMiOiI1ODkyMjU3OTRmZjFkYmYzMTE1OGRmZjY2MGU2ZDQ1MDllY2M4YmVm YmI1N2M2MzM5MDBkZWE1YWMwYjg0MGQ2Iiwic3JjL2FwaS9tYXRoL2Zsb2F0L3JzcXJ0ZS5ycyI6 ImEzMmFiZGNjMzE4ZDdjY2M4NDQ4MjMxZjU0ZDc1Yjg4NGI3Y2JlYjAzYTdkNTk1NzEzYWI2MjQz MDM2ZjRkYmYiLCJzcmMvYXBpL21hdGgvZmxvYXQvc2luLnJzIjoiY2JkMzYyMmI3ZGY3NGYxOTY5 MTc0MzAwMWM4Y2Y3NDdhMjAxZjg5NzdhZDkwNTQyZmVlOTE1ZjM3ZGNkMWU0OSIsInNyYy9hcGkv bWF0aC9mbG9hdC9zcXJ0LnJzIjoiMGM2NmQ1ZDYzZmIwOGU0ZDk5YzZiODJhODgyOGU0MTE3M2Fm ZjFhYzlmYTFhMjc2NGExMWZhYzIxN2NjZjJhYyIsInNyYy9hcGkvbWF0aC9mbG9hdC9zcXJ0ZS5y cyI6IjczMWUxYzlmMzIxYjY2MmFjY2RkMjdkYWNiM2FhYzJlODA0M2I3YWVjYjJmMjE2MWRkZTcz M2JkOWYwMjUzNjIiLCJzcmMvYXBpL21pbmltYWwucnMiOiIxZjIyYmNjNTI4NTU1NDQ0ZTc2ZGU1 NjllYzBhZTIwMjliOWFlOWQwNDgwNWVmZWFmYTkzMzY5YzgwOTgwMzZiIiwic3JjL2FwaS9taW5p bWFsL2l1Zi5ycyI6IjgxOWNmZjI2ZDNlMTk2ZjgwNzY0NWJjYzFkNzllYjI3ZDlmMTc1ZWRiODk5 MTBmMjI3NGQ1MmExZTkxM2NkMTEiLCJzcmMvYXBpL21pbmltYWwvbWFzay5ycyI6IjBjYWUxMGFl MWZjNjVmNTA3MGU2ODZjMGM3OWJmYmEyN2I4NmIzM2Q2YzM5OTM2N2JkNDg0OGZiMzY3ZGNlYzQi LCJzcmMvYXBpL21pbmltYWwvcHRyLnJzIjoiZjc0ZDdhNDkyNWQ3MjA5ZmFlYmMyNmVhODMxNTI1 OWNiMmMwOGVjNjU3ODlhNzA4NjllNTk1NjQ5YTliYzM5YSIsInNyYy9hcGkvb3BzLnJzIjoiM2Uy NzNiMjc3YTBmMzAxOWQ0MmMzYzU5Y2E5NGE1YWZkNDg4NWQ1YWU2ZDIxODJlNTA4OWJiZWVjOWRl NDJlZSIsInNyYy9hcGkvb3BzL3NjYWxhcl9hcml0aG1ldGljLnJzIjoiZDJkNWFkODk3YTU5ZGQw Nzg3NTQ0ZjkyN2UwZTdjYTQwNzJjM2U1OGIwZjRhMjMyNDA4MzMxMmIwZDVhMjFkNyIsInNyYy9h cGkvb3BzL3NjYWxhcl9iaXR3aXNlLnJzIjoiNDgyMjA0ZTQ1OWNhNmJlNzk1NjhlMWM5ZjcwYWRi ZTJkMjE1MTQxMmRkZjEyMmZiMjE2MWJlOGViYjUxYzQwYyIsInNyYy9hcGkvb3BzL3NjYWxhcl9t YXNrX2JpdHdpc2UucnMiOiJjMjUwZjUyMDQyZTM3YjIyZDU3MjU2YzgwZDQ2MDQxMDRjZmQyZmJl MmEyZTEyN2M2NzYyNjcyNzBjYTVkMzUwIiwic3JjL2FwaS9vcHMvc2NhbGFyX3NoaWZ0cy5ycyI6 ImM0NzczZDQzNWMzZjlkYTQ0NTQzMjdlNmZiYjJiNWI0MWExYzBlYmIxY2NhNzM3MmU2OWRjN2Ez NDRhMWI2ZTQiLCJzcmMvYXBpL29wcy92ZWN0b3JfYXJpdGhtZXRpYy5ycyI6ImRkY2ExNWQwOWRk ZWVmNTAyYzJlZDY2MTE3YTYyMzAwY2E2NWQ4N2U5NTllOGI2MjJkNzY3YmRmMWMzMDc5MTAiLCJz cmMvYXBpL29wcy92ZWN0b3JfYml0d2lzZS5ycyI6ImIzOTY4ZjcwMDViNjQ5ZWRjYzIyYTU0ZTIz NzliMTRkNWVlMTkwNDVmMmU3ODQwMjk4MDU3ODFhZTA0M2I1ZWUiLCJzcmMvYXBpL29wcy92ZWN0 b3JfZmxvYXRfbWluX21heC5ycyI6Ijc2YmY4Y2I2MDdlMmM0NDI5MjNjMWRhMTA2MWE2YjgwZDc0 MmQ2MDc0MDgwMzNjMmEzNzYxMTYxMTE0Y2YyYTAiLCJzcmMvYXBpL29wcy92ZWN0b3JfaW50X21p bl9tYXgucnMiOiJhMzc4Nzg5YzZmZjliMzJhNTFmYmQwYTk3ZmZkMzZlZDEwMmNkMWZlNmEwNjdk MmIwMjAxN2MxZGYzNDJkZWY2Iiwic3JjL2FwaS9vcHMvdmVjdG9yX21hc2tfYml0d2lzZS5ycyI6 IjUwNTJkMTg1MTdkNzY1NDE1ZDQwMzI3ZTZlOGU1NWEzMTJkYWFjYTBhNWUyYWVjOTU5YmZhNTRi MTY3NWY5YzgiLCJzcmMvYXBpL29wcy92ZWN0b3JfbmVnLnJzIjoiNWM2MmY2YjAyMjE5ODNjZGJk MjNjZDBhM2FmMzY3MmU2YmExMjU1ZjBkZmU4YjE5YWFlNmZiZDY1MDNlMjMxYiIsInNyYy9hcGkv b3BzL3ZlY3Rvcl9yb3RhdGVzLnJzIjoiNmMzZjc2MWQ5ZDU1MWY2MzY1YThhOTU1MzljZWFjZTRi MWEwMmUwYjEyZDE0NGYzNGVkNjhkYjk0ZTg4Y2ZmNCIsInNyYy9hcGkvb3BzL3ZlY3Rvcl9zaGlm dHMucnMiOiJlNTEwYmUxNDEyN2MwZmZkNThhMjU3M2EzOTcwMWRhMzU1N2Q2NmJlZGVjMDk4Mzdh YzhiYmQ0NGQ1NzlkYTAwIiwic3JjL2FwaS9wdHIucnMiOiI4YTc5MzI1MWJlZDYxMzBkY2ZiMmYx NTE5Y2VhYTE4Yjc1MWJiYjE1ODc1OTI4ZDBmYjZkZWI1YTVlMDc1MjNhIiwic3JjL2FwaS9wdHIv Z2F0aGVyX3NjYXR0ZXIucnMiOiIzZDYxNGY5ZDViNGNhMjAxYTlmN2U0NmFmNDQwNWUxZDJjMjhl Y2VlMTYyMDI5N2MyM2I1MmUzN2I5MmNjMGVhIiwic3JjL2FwaS9yZWR1Y3Rpb25zLnJzIjoiYWU1 YmFjYTgxMzUyZWNkNDQ1MjZkNmMzMGMwYTFmZWVkYTQ3NWVjNzNkZGQzYzNlYzZiMTRlOTQ0ZTU0 NDhlZSIsInNyYy9hcGkvcmVkdWN0aW9ucy9iaXR3aXNlLnJzIjoiOGJmOTEwYWUyMjYxODhiZDE1 ZmM3ZTEyNWYwNThjZDI1NjZiNjE4NmZjZDBjZDhmZDAyMGYzNTJjMzljZTEzOSIsInNyYy9hcGkv cmVkdWN0aW9ucy9mbG9hdF9hcml0aG1ldGljLnJzIjoiNDdhNTY3OTg5NmRiMmNiYjU2YzMxMzcy ZmU0MjE0M2RhMDE1YjZiZWFlN2RiNWQyZjNhMDMwOWRkZjQyN2FlMSIsInNyYy9hcGkvcmVkdWN0 aW9ucy9pbnRlZ2VyX2FyaXRobWV0aWMucnMiOiJjMmRmM2NmNzQ5M2NjYTQxNzRmMmM2NWFlYTQy MmEzZDIwZDhhMjNhZjAzZjhkNTdjZWY3MmMxOWZlZThmMjBkIiwic3JjL2FwaS9yZWR1Y3Rpb25z L21hc2sucnMiOiJkYjgzMzI3YTk1MGUzM2EzMTdmMzdmZDMzY2E0ZTIwYzM0N2ZiNDE1OTc1ZWMw MjRmM2UyM2RhODUwOTQyNWFmIiwic3JjL2FwaS9yZWR1Y3Rpb25zL21pbl9tYXgucnMiOiI2YWY4 YzlhYTQ1YzY5OTYxYjFiNmZjMjA1Mzk1ZjQ3NjdkNDQyMTg2OWZiMTA1ZmIzZDU2M2M1NjA1ZmMx M2NkIiwic3JjL2FwaS9zZWxlY3QucnMiOiI2YjA3ZTdlODAyNmRmNTYxZjczMDcyMjFhODk2ZjBm YmIyNzI1MzZmNDFiOTEwOTA0MGFjMDk0YzI0YzY5MzMxIiwic3JjL2FwaS9zaHVmZmxlLnJzIjoi YmU3ZmFmZjliNTk2NTQ5MjZkZjEyODk3YjJmOThhNGJhYTdkNmFjZjJhZjFhYWY5M2QzODhiYTZl OTZmODNlYyIsInNyYy9hcGkvc2h1ZmZsZTFfZHluLnJzIjoiYmZlYTVhOTE5MDViMzE0NDRlOWVm N2NhNmVkZGI3YTk2MDZiN2UyMmQzZjcxYmI4NDJlYjI3OTVhMDM0NjYyMCIsInNyYy9hcGkvc2xp Y2UucnMiOiJlZTg3NDg0ZThhZjMyOTU0N2I5YTVkNGYyYTY5ZThiZWQ2ZWExMGJiZDk2MjcwZDcw NjA4Mzg0M2Q0ZWVhMmFjIiwic3JjL2FwaS9zbGljZS9mcm9tX3NsaWNlLnJzIjoiMzczNTM2MzAw MDczNzEwNGE4ZmM1ZjM5NGFkOGMzMWVjMTRlODg1OTUyYmQ1NzY0N2RkMmE4NDAwMWFlZTBhNiIs InNyYy9hcGkvc2xpY2Uvd3JpdGVfdG9fc2xpY2UucnMiOiI3OWQwOWM2NGQwMDcyNDc4M2M3N2M0 MmU0NTgzZWVlYzk3YjE4ZGI5NGNmMmFlMTQ2YjU2NGMzZjg1Y2ZlZmQ2Iiwic3JjL2FwaS9zd2Fw X2J5dGVzLnJzIjoiMDViNDI2MmVhYWRlMmY2M2U2Y2QzYjc4MGMxOWEwM2FlY2QyNDU5ZDRjYzQz NjAwNTFmYzA4ODg4NzE3OWE2ZSIsInNyYy9jb2RlZ2VuLnJzIjoiZGI0ZjIzMmZiOWY1NzI4ZGIz MTBiODdkYzhjNDczM2JlNDhhZmFjYWIxMDUzNzk4YzA2MTA2YmVmOWE0MmIwNSIsInNyYy9jb2Rl Z2VuL2JpdF9tYW5pcC5ycyI6IjUyNWVhNmZmN2FkMWUwNDNiNmY2MTM2OTkyMTY2ZjE4MDNlZDU1 NjNiN2Y2ZmMyOTJjMWM0MDI1N2QyMGUyNjQiLCJzcmMvY29kZWdlbi9sbHZtLnJzIjoiMTJlNzQ4 YjQ5MjhjM2JlNmNjMTJiNDE2NWMzMDQxYTNkMGVmY2NmNjE5NTMzOGVjZDNkODhiOGZkYjBiYmNj NyIsInNyYy9jb2RlZ2VuL21hdGgucnMiOiJkZmNmMDJhZDM0ZTJmZGZlMjJjM2YxY2MyODIyMDAx Y2M4OTVlNjUwMzFiNGQwNmU1ODVlNTA0NzgzOWZlYmI3Iiwic3JjL2NvZGVnZW4vbWF0aC9mbG9h dC5ycyI6IjJjMWNiY2UxNTViYzUyN2NlMzRkNDcyYzBmZWY2YmMzZGFkYjc5Y2Q3YTM1N2RkN2Fh NWIxZWJlYjFkNzdhMTMiLCJzcmMvY29kZWdlbi9tYXRoL2Zsb2F0L2Ficy5ycyI6ImQ1YWFhZGNm NTQwYmRiOWI0MjY0ZGNhNjQ3MWEyNTVmZDdiZjUwOWU3NjNiZWYwMjM5YzAxNDRhNjg0NjZmZWEi LCJzcmMvY29kZWdlbi9tYXRoL2Zsb2F0L2Nvcy5ycyI6IjE3ZjI4ZDI5MDBjODUyZGNhMjIxZmE5 YzkyYTljZDVmZTdmZDJkZjhkNDI3YmJjNjAyMTZjNzQ5YjJiZTAxM2QiLCJzcmMvY29kZWdlbi9t YXRoL2Zsb2F0L2Nvc19waS5ycyI6ImRiYWY5ZjQ0M2Y5ODQ2YTQ5MWQ0ZWM1MjIxMGE3YjU4MzVk ZDU5M2IwMzM2NmUzMTM1YjA1YzM3ZDcwZjlkNmMiLCJzcmMvY29kZWdlbi9tYXRoL2Zsb2F0L2V4 cC5ycyI6ImQzMDAwNThhNGJjYzdhZTc5NzZmMjE2ZjgxOTAyY2Q3M2E5ZTYwM2FkNjM4ODBkZmYz YmJjODY2YzI3YTlmMzciLCJzcmMvY29kZWdlbi9tYXRoL2Zsb2F0L2xuLnJzIjoiYzg1MWUyMTFl NDNmODI1NjA5M2JhNzViMDNhZTBjMzA3Yzk5NjJlZTY2ZDk0ZjA5YjRkZDgwMDY4MTkwY2JkZiIs InNyYy9jb2RlZ2VuL21hdGgvZmxvYXQvbWFjcm9zLnJzIjoiZmM5OTI0ODY5ZWQ4NWU0Nzk1OTgz YWYyMjhjYWNmMjMxNThmNGYzNTkxOWFkY2UxNmM5MjBhZDRhM2YwYTAwOSIsInNyYy9jb2RlZ2Vu L21hdGgvZmxvYXQvbXVsX2FkZC5ycyI6IjA0MWE1YjY5ZDU5OTFkOTNlZjc5NTM1MWIxNzU2MGMx MGZhZjgwYjc4ZmQyNmFkN2RmNDJhMjM5YjMyY2Y5ZGUiLCJzcmMvY29kZWdlbi9tYXRoL2Zsb2F0 L211bF9hZGRlLnJzIjoiZDcxZDVmMGYzMzMzYjYyYTc0MzliODIzY2I3YWRmNTM0MGVhMTU1NWNl ODIwZmI0YTNmNGNiOTIyZjczZjVmNSIsInNyYy9jb2RlZ2VuL21hdGgvZmxvYXQvcG93Zi5ycyI6 Ijk3NDJjMzg3N2YxYTU1MDljYTVjOTQ5MmE0MDg4NGI2NTc5YmE2ZGQxMWMyNmI3MTEyZTYzZjcw NjY2YjM5NWQiLCJzcmMvY29kZWdlbi9tYXRoL2Zsb2F0L3Npbi5ycyI6IjBlOTg2OGQzNTUzMTU2 NjUwOWYzYTAxZDg1ZDUyNTMwNDVlYjRhZmE4NTI1ZDg0MDdkY2MxZjVmMzNjNTYwMzYiLCJzcmMv Y29kZWdlbi9tYXRoL2Zsb2F0L3Npbl9jb3NfcGkucnMiOiI4ZTZiNjE0MmQ3ZGQyNDBjZGIzNjY2 OTcyMmU4MmFiOTgxMGEyMjYxZTg2ZTY1OWY3ZDk3YTk0MmFkOGIxMjU4Iiwic3JjL2NvZGVnZW4v bWF0aC9mbG9hdC9zaW5fcGkucnMiOiJiYjZkMzlkYjhmOTIxZTAzYTMwMWZjNTIwNmFjMWE2MWE5 N2RlZjhhMmNiODNiODdjY2YxODlmM2ZjNDhkNTQ4Iiwic3JjL2NvZGVnZW4vbWF0aC9mbG9hdC9z cXJ0LnJzIjoiZTZlYmIwYzVmNDI4ZWZhZDFmNjcyYjlhOGZlNGU1ODUzNGRiZjFlYTVhOGZlMDky Y2U1Y2U3NmI1MmZlODljYiIsInNyYy9jb2RlZ2VuL21hdGgvZmxvYXQvc3FydGUucnMiOiIyM2Fj ZmFlYTM4ZDBlMDgxYTZkOTAyMWMxMDk0ZTgxM2QwY2ZkMTJjNThjMWVjYTk2NjJhYWRlNWU2MjVk NTFjIiwic3JjL2NvZGVnZW4vcG9pbnRlcl9zaXplZF9pbnQucnMiOiI2Y2ExM2MyMTRiNmNmN2Uw OTI5ZGJlMThlOTZhMTZmYzBiYjdkODc5OTYwOGRmMjljNGM4MTE1NDkwZjk5ZTAxIiwic3JjL2Nv ZGVnZW4vcmVkdWN0aW9ucy5ycyI6IjhlYjE4ZWJhYzc2OTg1ZDJhYTMwMjYyYTJlZGQ4Y2IwMDQy MzBiNTExYTc2NWQ2NTc1MjVmNjc3YTU4NWMxMmMiLCJzcmMvY29kZWdlbi9yZWR1Y3Rpb25zL21h c2sucnMiOiJlNjdmMzVhMWY0ZDE1NmE0ODk0YTJkNmVhNWE5MzViNGQ4OThjZjcwZWVmYjI3MTVm NWMxY2MxNjVlNzc2YzExIiwic3JjL2NvZGVnZW4vcmVkdWN0aW9ucy9tYXNrL2FhcmNoNjQucnMi OiI4NGIxMDFjMTdjYWQxZWRlNGViNmQzOGNhZGEwYWM3ZGEyMzlkYmE4Y2VhM2JhZGQzODI5Yjk2 N2U1NTg0MzFmIiwic3JjL2NvZGVnZW4vcmVkdWN0aW9ucy9tYXNrL2FybS5ycyI6ImFhYTA3MTI5 YmQwNzhhZTdlNjc3Y2Y4YjhlNjdlYzlmMzA1MzY2MDZhMGM3ZWQxYmFhYTE4ZmQxNzkzYmIyMTgi LCJzcmMvY29kZWdlbi9yZWR1Y3Rpb25zL21hc2svZmFsbGJhY2sucnMiOiIzZWI5MzE5ZDJjN2Nm MTkyMTZiNjA3Yjg0NTk2MTJjNGUwMjdiNjQzY2YxMWIwMzY5MzdkMzY4OTZiZjc2Nzg2Iiwic3Jj L2NvZGVnZW4vcmVkdWN0aW9ucy9tYXNrL2ZhbGxiYWNrX2ltcGwucnMiOiI3NjU0N2YzOTZlNTVl ZjQwMzMyN2M3N2MzMTRjZjhkYjhjN2E1YzliOTgxOWJmYjkyNWFiZWFjZjEzMDI0OWU1Iiwic3Jj L2NvZGVnZW4vcmVkdWN0aW9ucy9tYXNrL3g4Ni5ycyI6IjM2ZGNkOGFmNGFiOTk3MzBhMDc4ZWQx MTNkMzk1NWY3NGViMWEyODc2ZTJlNmQ5ZjIyNGUwZmY0NjJjMjE2ZDEiLCJzcmMvY29kZWdlbi9y ZWR1Y3Rpb25zL21hc2sveDg2L2F2eC5ycyI6IjNhNDA4NjhiMzhjODZlMzVhZWZiOTZkNzU3OGRl NjMyMmVmZTg5ZDgxMzVlMDM2NjM1OWI1NGRkZDA2Zjg2MWEiLCJzcmMvY29kZWdlbi9yZWR1Y3Rp b25zL21hc2sveDg2L2F2eDIucnMiOiI2NzdhZWQzZjA1NjI4NTI4NWRhYTNhZGZmOGJjNjVlNzM5 NjMwYjQ0MjRkZWZhNmQ5NjY1ZTE2MGYwMjc1MDdlIiwic3JjL2NvZGVnZW4vcmVkdWN0aW9ucy9t YXNrL3g4Ni9zc2UucnMiOiI4NTIyZjZlZDAzZjZjMzJkZDU3N2Q0Mjk4ZGY0NzdjMDhhZWFhYTM4 NTYzNzA2ZjI5MDk2ZTE5MTFlZDczMWYyIiwic3JjL2NvZGVnZW4vcmVkdWN0aW9ucy9tYXNrL3g4 Ni9zc2UyLnJzIjoiNTRlYzU2ZTQ5YjBjNjg0MWVjY2I3MTllNGYzMTBkNjVmZTc2N2MwNDEzNmIy ZWMyMGJkOGI5ZDdkOTg5N2I5ZSIsInNyYy9jb2RlZ2VuL3NodWZmbGUucnMiOiIxZWMyOTMwZjRl MWFjYzQzYWMzMGI1MThhZjI5OGQ0NjZhNzllOWU3NTczNGE1MWMzODBiNzgxMGVmZDFhMjdmIiwi c3JjL2NvZGVnZW4vc2h1ZmZsZTFfZHluLnJzIjoiM2YxM2NhMTU5NzM3ODc1OGQwNTEwNmJmNWZm MzcxNWVlZTUzMWYzY2I2ZDg4ZjQ4YjkxODJiZDZjOTM4NmI1MSIsInNyYy9jb2RlZ2VuL3N3YXBf Ynl0ZXMucnMiOiJjNjdjODZlOTFjYTNmYzc3NTM5ZTBlZmNlYTA4MWEzYzYyNTQ4Y2NjZjUwMzk2 M2FlNDA4ZjJlODZmNGU2YTIxIiwic3JjL2NvZGVnZW4vdjEyOC5ycyI6Ijk0MjI2YjMxZWM0MDNk MThkOWQyZmUwNjcxM2YxNDdjOWM3OWU5YjVmOTEwNTA4OTA4ODI2NjMxM2Y4NDMxODUiLCJzcmMv Y29kZWdlbi92MTYucnMiOiJkZGVjNGZmYjY2YjZmN2FhZmZiOWExNzgwYzVkZGJhODI1NTdhYmQ3 NGY0NTA3M2QzMzUwNDdlMDRjZjc0OTI0Iiwic3JjL2NvZGVnZW4vdjI1Ni5ycyI6IjZiNjM5MTdm MDQ0NDExOGQ2YjE1OTViZmYyMDQ1ZTU5Yjk3YzRkMjQwMTJiZDU3NWY2OWYxZjBlZmM1YTAyNDEi LCJzcmMvY29kZWdlbi92MzIucnMiOiIzNDc3YjNjNTU0MGFlZDg2ZTYxZTJmNTgwN2RkMzFkYjk0 NzQxM2NlYzkxODFjNTg3ZDkzZWQ2ZWM3NGYwZWJhIiwic3JjL2NvZGVnZW4vdjUxMi5ycyI6IjU4 NTRmOTlkM2FhYmM0Y2Q0MmIyOGEyMGQ5Y2U0NDc3NTZkYzJiYTAyNGE0MDlhNjliNmE4YWUxZjE4 NDJmYzUiLCJzcmMvY29kZWdlbi92NjQucnMiOiJlOWU4OWNhZWJmZTYzZDEwYzBjYmNhNjFlNGRm ZGJhM2I3ZTAyZWUwOTg5MTcwZjgwYmVlZDIzMjM3ZGRkOTUwIiwic3JjL2NvZGVnZW4vdlB0ci5y cyI6ImYwNzUzYjQwNWNkYzg2NWJkZjhlODJjNjUwNWYyOTllYTFmOTYxMzYyMzllYmJhZjdmOWNl OTNkMzEwNzY0YjgiLCJzcmMvY29kZWdlbi92U2l6ZS5ycyI6ImM4OWY1ZmRlYjI4YWM0YzgyNzJl ZDE4MTZmY2UwM2Q5ZDk1MzA4Y2MzMmJiMjUzM2JkOGIyMGNkNWFjMTAyYWMiLCJzcmMvbGliLnJz IjoiMDUwNDhjNmE4NWVjNjVjZjkwMmQ5ZGQ4Zjc1N2EzZjc2MzkyYjcwM2E2Nzk0ZWE3MWYwZDQx NTAwYTg5Zjc4ZiIsInNyYy9tYXNrcy5ycyI6IjcwZmMwYWJlNGMyOTA3Y2UyYTQ5MWM1NzRlMWNm YjlmMzQyMzM4NWRhMmUxYTkyM2E0OGM5YzEzZjhiYTZlZDgiLCJzcmMvc2VhbGVkLnJzIjoiYWU3 ZmRlYWY1ZDg0Y2Q3NzEwZWQ3MzBjYTcyY2E3ZWFiYTkzZGY2Y2IwYWNiMTgzZTVjMGE3MzI3YWNm MTk3ZiIsInNyYy90ZXN0aW5nLnJzIjoiODk2NjY5YzA4ZDhjODAxNDQ4YTRkMmZhZGM5ZDYzM2Vk YTBmYmU4NzlkMjI5OTk3ZTJhMTgyZTMxMjc4ZTQ2OSIsInNyYy90ZXN0aW5nL21hY3Jvcy5ycyI6 IjQwM2JiYzVlY2I3Yzc4NmZlMzYxNTZkZjMwMmQwYzA3YTgxMjI0MDhkYmIxNWY3NDc0ZDc2ODIy MjRiYTExMDYiLCJzcmMvdGVzdGluZy91dGlscy5ycyI6IjQxOTEyYTkyMjY2ZGZlODg0NjQ3ZmMw MzVlNDI0MmZkNzQ2MTAwZGY4ZTgzOTgwOGFlMDM5N2FmMzc1OWEzYzgiLCJzcmMvdjEyOC5ycyI6 IjE2Y2Y5YThlNzE1NmI4OTllZTliOWNkM2YyZGJhOWQxM2VjNjMyODliZWE4YzNlZTlhZTJlNDNh ZDk1MTAyODgiLCJzcmMvdjE2LnJzIjoiY2I2NDY1Y2YxZTAwYmY1MzAxODNhZjE4MTliOWZlM2Q3 ZWVjOTc4Zjg3NjVkNWU4NWQ5YjU4YTM5YTRiNDA0NSIsInNyYy92MjU2LnJzIjoiZmUyMzUwMTdk YTE4YzdmM2MzNjE4MzFjNjBlMzE3M2FkMzA0ZDhlYTFlOTVkNjRlYmViYzc5ZGEyZDcwODUxMSIs InNyYy92MzIucnMiOiIxNDVkMzQ3ODU1YmFjNTliMmRlNjUwOGY5ZTU5NDY1NGU2YzMzMDQyM2Fm OWVkYzBlMmFjOGY0ZDFhYmRmNDVlIiwic3JjL3Y1MTIucnMiOiJmMzcyZjI3N2YzZTYyZWI1Yzk0 NWJiMWM0NjAzMzNmZGIxN2I2OTc0ZmNjODc2NjMzNzg4ZmY1M2JkZWQ5NTk5Iiwic3JjL3Y2NC5y cyI6IjBiODA3OTg4MWI3MTU3NWUzNDE0YmUwYjdmOGY3ZWFiYTY1MjgxYmE2NzMyZjJiMmY2MWY3 M2U5NWI2ZjQ4ZjciLCJzcmMvdlB0ci5ycyI6IjhiM2U0MzNkNDg3MTgwYmI0MzA0ZmY3MTI0NWVj YWQ5MGYwMDEwZjQzZTEzOWE3MjAyN2I2NzJhYmU1OGZhY2MiLCJzcmMvdlNpemUucnMiOiJlZGE1 YWEwMjA3MDZjYmY5NGQxNWJhZGE0MWEwYzJhMzVmYzhmM2YzN2NiN2MyY2Q2ZjM0ZDIwMTM5OWE0 OTVlIiwidGVzdHMvZW5kaWFubmVzcy5ycyI6IjUxNDdmODZkMjI0YzRjNTQwYjc3MjAzM2RhMmY5 OTRjYWQ5YmM5YzAzNWYzOGVjMjFlMjNiYzRlNTVmOGE3NTkifSwicGFja2FnZSI6bnVsbH0KK1wg Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3Qv cGFja2VkX3NpbWQvLmdpdGh1Yi93b3JrZmxvd3MvYmVuY2htYXJrcy55bWwgYi90aGlyZF9wYXJ0 eS9ydXN0L3BhY2tlZF9zaW1kLy5naXRodWIvd29ya2Zsb3dzL2JlbmNobWFya3MueW1sCitkZWxl dGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQv LmdpdGh1Yi93b3JrZmxvd3MvYmVuY2htYXJrcy55bWwKKysrKyAvZGV2L251bGwKK0BAIC0xLDMx ICswLDAgQEAKKy1uYW1lOiBiZW5jaG1hcmtzCistCistb246CistICBwdXNoOgorLSAgICBicmFu Y2hlczoKKy0gICAgICAtIG1hc3RlcgorLSAgcHVsbF9yZXF1ZXN0OgorLSAgd29ya2Zsb3dfZGlz cGF0Y2g6CistCistam9iczoKKy0gIHg4Nl82NC11bmtub3duLWxpbnV4LWdudToKKy0gICAgdXNl czogLi8uZ2l0aHViL3dvcmtmbG93cy9ydW4tY2ktc2NyaXB0LnltbAorLSAgICB3aXRoOgorLSAg ICAgIHRhcmdldDogeDg2XzY0LXVua25vd24tbGludXgtZ251CistICAgICAgc2V0dXBfc2NyaXB0 OiBjaS9zZXR1cF9iZW5jaG1hcmtzLnNoCistICAgICAgc2NyaXB0OiBjaS9iZW5jaG1hcmsuc2gK Ky0gICAgICBub3J1bjogMQorLSAgICAgIHZlcmlmeTogMQorLSAgICAgICMgRklYTUU6IGZpZ3Vy ZSBvdXQgaG93IHRvIGFkZCBkb3dubG9hZGVkIGlzcGMgdG8gUEFUSAorLSAgICAgICMgZmVhdHVy ZXM6IGlzcGMKKy0gIHg4Nl82NC1hcHBsZS1kYXJ3aW46CistICAgIHVzZXM6IC4vLmdpdGh1Yi93 b3JrZmxvd3MvcnVuLWNpLXNjcmlwdC55bWwKKy0gICAgd2l0aDoKKy0gICAgICB0YXJnZXQ6IHg4 Nl82NC1hcHBsZS1kYXJ3aW4KKy0gICAgICBydW5uZXI6IG1hY29zLWxhdGVzdAorLSAgICAgIHNl dHVwX3NjcmlwdDogY2kvc2V0dXBfYmVuY2htYXJrcy5zaAorLSAgICAgIHNjcmlwdDogY2kvYmVu Y2htYXJrLnNoCistICAgICAgbm9ydW46IDEKKy0gICAgICB2ZXJpZnk6IDEKKy0gICAgICAjIEZJ WE1FOiBmaWd1cmUgb3V0IGhvdyB0byBhZGQgZG93bmxvYWRlZCBpc3BjIHRvIFBBVEgKKy0gICAg ICAjIGZlYXR1cmVzOiBpc3BjCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRf c2ltZC8uZ2l0aHViL3dvcmtmbG93cy9jaS55bWwgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9z aW1kLy5naXRodWIvd29ya2Zsb3dzL2NpLnltbAorZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cist LS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kLy5naXRodWIvd29ya2Zsb3dzL2NpLnlt bAorKysrIC9kZXYvbnVsbAorQEAgLTEsMjE4ICswLDAgQEAKKy1uYW1lOiBjaQorLQorLSMgdHJp Z2dlciBmb3IgYWxsIFBScyBhbmQgY2hhbmdlcyB0byBtYXN0ZXIKKy1vbjoKKy0gIHB1c2g6Cist ICAgIGJyYW5jaGVzOgorLSAgICAgIC0gbWFzdGVyCistICBwdWxsX3JlcXVlc3Q6CistCistam9i czoKKy0gIHJ1c3RmbXQ6CistICAgIHVzZXM6IC4vLmdpdGh1Yi93b3JrZmxvd3MvcnVuLWNpLXNj cmlwdC55bWwKKy0gICAgd2l0aDoKKy0gICAgICBzY3JpcHQ6IGNpL2FsbC5zaCBjaGVja19mbXQg fHwgdHJ1ZQorLSAgeDg2XzY0LXVua25vd24tbGludXgtYW5kcm9pZDoKKy0gICAgdXNlczogLi8u Z2l0aHViL3dvcmtmbG93cy9ydW4tY2ktc2NyaXB0LnltbAorLSAgICBzdHJhdGVneToKKy0gICAg ICBmYWlsLWZhc3Q6IHRydWUKKy0gICAgd2l0aDoKKy0gICAgICB0YXJnZXQ6IHg4Nl82NC1saW51 eC1hbmRyb2lkCistICBhcm12Ny1saW51eC1hbmRyb2lkZWFiaToKKy0gICAgdXNlczogLi8uZ2l0 aHViL3dvcmtmbG93cy9ydW4tY2ktc2NyaXB0LnltbAorLSAgICBzdHJhdGVneToKKy0gICAgICBm YWlsLWZhc3Q6IHRydWUKKy0gICAgd2l0aDoKKy0gICAgICB0YXJnZXQ6IGFybXY3LWxpbnV4LWFu ZHJvaWRlYWJpCistICBhYXJjaDY0LXVua25vd24tbGludXgtYW5kcm9pZC1ORU9OOgorLSAgICB1 c2VzOiAuLy5naXRodWIvd29ya2Zsb3dzL3J1bi1jaS1zY3JpcHQueW1sCistICAgIHN0cmF0ZWd5 OgorLSAgICAgIGZhaWwtZmFzdDogdHJ1ZQorLSAgICB3aXRoOgorLSAgICAgIHRhcmdldDogYWFy Y2g2NC1saW51eC1hbmRyb2lkCistICAgICAgcnVzdGZsYWdzOiAtQ3RhcmdldC1mZWF0dXJlPStu ZW9uCistICB0aHVtYnY3bmVvbi1saW51eC1hbmRyb2lkZWFiaToKKy0gICAgdXNlczogLi8uZ2l0 aHViL3dvcmtmbG93cy9ydW4tY2ktc2NyaXB0LnltbAorLSAgICBzdHJhdGVneToKKy0gICAgICBm YWlsLWZhc3Q6IGZhbHNlCistICAgIHdpdGg6CistICAgICAgdGFyZ2V0OiB0aHVtYnY3bmVvbi1s aW51eC1hbmRyb2lkZWFiaQorLSAgaTU4Ni11bmtub3duLWxpbnV4LWdudToKKy0gICAgdXNlczog Li8uZ2l0aHViL3dvcmtmbG93cy9ydW4tY2ktc2NyaXB0LnltbAorLSAgICBzdHJhdGVneToKKy0g ICAgICBmYWlsLWZhc3Q6IGZhbHNlCistICAgIHdpdGg6CistICAgICAgdGFyZ2V0OiBpNTg2LXVu a25vd24tbGludXgtZ251CistICAgICAgcnVzdGZsYWdzOiAtQ3JlbG9jYXRpb24tbW9kZWw9c3Rh dGljCistICBpNTg2LXVua25vd24tbGludXgtZ251LVNTRToKKy0gICAgdXNlczogLi8uZ2l0aHVi L3dvcmtmbG93cy9ydW4tY2ktc2NyaXB0LnltbAorLSAgICBzdHJhdGVneToKKy0gICAgICBmYWls LWZhc3Q6IGZhbHNlCistICAgIHdpdGg6CistICAgICAgdGFyZ2V0OiBpNTg2LXVua25vd24tbGlu dXgtZ251CistICAgICAgcnVzdGZsYWdzOiAtQ3JlbG9jYXRpb24tbW9kZWw9c3RhdGljIC1DdGFy Z2V0LWZlYXR1cmU9K3NzZQorLSAgaTU4Ni11bmtub3duLWxpbnV4LWdudS1TU0UyOgorLSAgICB1 c2VzOiAuLy5naXRodWIvd29ya2Zsb3dzL3J1bi1jaS1zY3JpcHQueW1sCistICAgIHN0cmF0ZWd5 OgorLSAgICAgIGZhaWwtZmFzdDogZmFsc2UKKy0gICAgd2l0aDoKKy0gICAgICB0YXJnZXQ6IGk1 ODYtdW5rbm93bi1saW51eC1nbnUKKy0gICAgICBydXN0ZmxhZ3M6IC1DcmVsb2NhdGlvbi1tb2Rl bD1zdGF0aWMgLUN0YXJnZXQtZmVhdHVyZT0rc3NlMgorLSAgaTY4Ni11bmtub3duLWxpbnV4LWdu dToKKy0gICAgdXNlczogLi8uZ2l0aHViL3dvcmtmbG93cy9ydW4tY2ktc2NyaXB0LnltbAorLSAg ICBzdHJhdGVneToKKy0gICAgICBmYWlsLWZhc3Q6IGZhbHNlCistICAgIHdpdGg6CistICAgICAg dGFyZ2V0OiBpNjg2LXVua25vd24tbGludXgtZ251CistICAgICAgcnVzdGZsYWdzOiAtQ3JlbG9j YXRpb24tbW9kZWw9c3RhdGljCistICBpNjg2LXVua25vd24tbGludXgtZ251LVNTRTRfMjoKKy0g ICAgdXNlczogLi8uZ2l0aHViL3dvcmtmbG93cy9ydW4tY2ktc2NyaXB0LnltbAorLSAgICBzdHJh dGVneToKKy0gICAgICBmYWlsLWZhc3Q6IGZhbHNlCistICAgIHdpdGg6CistICAgICAgdGFyZ2V0 OiBpNjg2LXVua25vd24tbGludXgtZ251CistICAgICAgcnVzdGZsYWdzOiAtQ3JlbG9jYXRpb24t bW9kZWw9c3RhdGljIC1DdGFyZ2V0LWZlYXR1cmU9K3NzZTQuMgorLSAgaTY4Ni11bmtub3duLWxp bnV4LWdudS1BVlgyOgorLSAgICB1c2VzOiAuLy5naXRodWIvd29ya2Zsb3dzL3J1bi1jaS1zY3Jp cHQueW1sCistICAgIHN0cmF0ZWd5OgorLSAgICAgIGZhaWwtZmFzdDogZmFsc2UKKy0gICAgd2l0 aDoKKy0gICAgICB0YXJnZXQ6IGk2ODYtdW5rbm93bi1saW51eC1nbnUKKy0gICAgICBydXN0Zmxh Z3M6IC1DcmVsb2NhdGlvbi1tb2RlbD1zdGF0aWMgLUN0YXJnZXQtZmVhdHVyZT0rYXZ4MgorLSAg eDg2XzY0LXVua25vd24tbGludXgtZ251OgorLSAgICB1c2VzOiAuLy5naXRodWIvd29ya2Zsb3dz L3J1bi1jaS1zY3JpcHQueW1sCistICAgIHN0cmF0ZWd5OgorLSAgICAgIGZhaWwtZmFzdDogdHJ1 ZQorLSAgICB3aXRoOgorLSAgICAgIHRhcmdldDogeDg2XzY0LXVua25vd24tbGludXgtZ251Cist ICB4ODZfNjQtdW5rbm93bi1saW51eC1nbnUtU1NFNF8yOgorLSAgICB1c2VzOiAuLy5naXRodWIv d29ya2Zsb3dzL3J1bi1jaS1zY3JpcHQueW1sCistICAgIHN0cmF0ZWd5OgorLSAgICAgIGZhaWwt ZmFzdDogdHJ1ZQorLSAgICB3aXRoOgorLSAgICAgIHRhcmdldDogeDg2XzY0LXVua25vd24tbGlu dXgtZ251CistICAgICAgcnVzdGZsYWdzOiAtQ3RhcmdldC1mZWF0dXJlPStzc2U0LjIKKy0gIHg4 Nl82NC11bmtub3duLWxpbnV4LWdudS1BVlgyOgorLSAgICB1c2VzOiAuLy5naXRodWIvd29ya2Zs b3dzL3J1bi1jaS1zY3JpcHQueW1sCistICAgIHN0cmF0ZWd5OgorLSAgICAgIGZhaWwtZmFzdDog dHJ1ZQorLSAgICB3aXRoOgorLSAgICAgIHRhcmdldDogeDg2XzY0LXVua25vd24tbGludXgtZ251 CistICAgICAgcnVzdGZsYWdzOiAtQ3RhcmdldC1mZWF0dXJlPSthdngyCistICBhcm0tdW5rbm93 bi1saW51eC1nbnVlYWJpaGY6CistICAgIHVzZXM6IC4vLmdpdGh1Yi93b3JrZmxvd3MvcnVuLWNp LXNjcmlwdC55bWwKKy0gICAgc3RyYXRlZ3k6CistICAgICAgZmFpbC1mYXN0OiB0cnVlCistICAg IHdpdGg6CistICAgICAgdGFyZ2V0OiBhcm0tdW5rbm93bi1saW51eC1nbnVlYWJpaGYKKy0gIGFy bXY3LXVua25vd24tbGludXgtZ251ZWFiaWhmOgorLSAgICB1c2VzOiAuLy5naXRodWIvd29ya2Zs b3dzL3J1bi1jaS1zY3JpcHQueW1sCistICAgIHN0cmF0ZWd5OgorLSAgICAgIGZhaWwtZmFzdDog dHJ1ZQorLSAgICB3aXRoOgorLSAgICAgIHRhcmdldDogYXJtdjctdW5rbm93bi1saW51eC1nbnVl YWJpaGYKKy0gIGFybXY3LXVua25vd24tbGludXgtZ251ZWFiaWhmLU5FT046CistICAgIHVzZXM6 IC4vLmdpdGh1Yi93b3JrZmxvd3MvcnVuLWNpLXNjcmlwdC55bWwKKy0gICAgc3RyYXRlZ3k6Cist ICAgICAgZmFpbC1mYXN0OiB0cnVlCistICAgIHdpdGg6CistICAgICAgdGFyZ2V0OiBhcm12Ny11 bmtub3duLWxpbnV4LWdudWVhYmloZgorLSAgICAgIHJ1c3RmbGFnczogLUN0YXJnZXQtZmVhdHVy ZT0rbmVvbgorLSAgdGh1bWJ2N25lb24tdW5rbm93bi1saW51eC1nbnVlYWJpaGY6CistICAgIHVz ZXM6IC4vLmdpdGh1Yi93b3JrZmxvd3MvcnVuLWNpLXNjcmlwdC55bWwKKy0gICAgc3RyYXRlZ3k6 CistICAgICAgZmFpbC1mYXN0OiBmYWxzZQorLSAgICB3aXRoOgorLSAgICAgIHRhcmdldDogdGh1 bWJ2N25lb24tdW5rbm93bi1saW51eC1nbnVlYWJpaGYKKy0gIGFhcmNoNjQtdW5rbm93bi1saW51 eC1nbnUtTkVPTjoKKy0gICAgdXNlczogLi8uZ2l0aHViL3dvcmtmbG93cy9ydW4tY2ktc2NyaXB0 LnltbAorLSAgICBzdHJhdGVneToKKy0gICAgICBmYWlsLWZhc3Q6IHRydWUKKy0gICAgd2l0aDoK Ky0gICAgICB0YXJnZXQ6IGFhcmNoNjQtdW5rbm93bi1saW51eC1nbnUKKy0gICAgICBydXN0Zmxh Z3M6IC1DdGFyZ2V0LWZlYXR1cmU9K25lb24KKy0gIHBvd2VycGMtdW5rbm93bi1saW51eC1nbnU6 CistICAgIHVzZXM6IC4vLmdpdGh1Yi93b3JrZmxvd3MvcnVuLWNpLXNjcmlwdC55bWwKKy0gICAg c3RyYXRlZ3k6CistICAgICAgZmFpbC1mYXN0OiBmYWxzZQorLSAgICB3aXRoOgorLSAgICAgIHRh cmdldDogcG93ZXJwYy11bmtub3duLWxpbnV4LWdudQorLSAgcG93ZXJwYzY0LXVua25vd24tbGlu dXgtZ251OgorLSAgICB1c2VzOiAuLy5naXRodWIvd29ya2Zsb3dzL3J1bi1jaS1zY3JpcHQueW1s CistICAgIHN0cmF0ZWd5OgorLSAgICAgIGZhaWwtZmFzdDogZmFsc2UKKy0gICAgd2l0aDoKKy0g ICAgICB0YXJnZXQ6IHBvd2VycGM2NC11bmtub3duLWxpbnV4LWdudQorLSAgcG93ZXJwYzY0bGUt dW5rbm93bi1saW51eC1nbnU6CistICAgIHVzZXM6IC4vLmdpdGh1Yi93b3JrZmxvd3MvcnVuLWNp LXNjcmlwdC55bWwKKy0gICAgc3RyYXRlZ3k6CistICAgICAgZmFpbC1mYXN0OiB0cnVlCistICAg IHdpdGg6CistICAgICAgdGFyZ2V0OiBwb3dlcnBjNjRsZS11bmtub3duLWxpbnV4LWdudQorLSAg cG93ZXJwYzY0bGUtdW5rbm93bi1saW51eC1nbnUtQUxUSVZFQzoKKy0gICAgdXNlczogLi8uZ2l0 aHViL3dvcmtmbG93cy9ydW4tY2ktc2NyaXB0LnltbAorLSAgICBzdHJhdGVneToKKy0gICAgICBm YWlsLWZhc3Q6IHRydWUKKy0gICAgd2l0aDoKKy0gICAgICB0YXJnZXQ6IHBvd2VycGM2NGxlLXVu a25vd24tbGludXgtZ251CistICAgICAgcnVzdGZsYWdzOiAtQ3RhcmdldC1mZWF0dXJlPSthbHRp dmVjCistICBwb3dlcnBjNjRsZS11bmtub3duLWxpbnV4LWdudS1WU1g6CistICAgIHVzZXM6IC4v LmdpdGh1Yi93b3JrZmxvd3MvcnVuLWNpLXNjcmlwdC55bWwKKy0gICAgc3RyYXRlZ3k6CistICAg ICAgZmFpbC1mYXN0OiB0cnVlCistICAgIHdpdGg6CistICAgICAgdGFyZ2V0OiBwb3dlcnBjNjRs ZS11bmtub3duLWxpbnV4LWdudQorLSAgICAgIHJ1c3RmbGFnczogLUN0YXJnZXQtZmVhdHVyZT0r dnN4CistICBzMzkweC11bmtub3duLWxpbnV4LWdudToKKy0gICAgdXNlczogLi8uZ2l0aHViL3dv cmtmbG93cy9ydW4tY2ktc2NyaXB0LnltbAorLSAgICBzdHJhdGVneToKKy0gICAgICBmYWlsLWZh c3Q6IGZhbHNlCistICAgIHdpdGg6CistICAgICAgdGFyZ2V0OiBzMzkweC11bmtub3duLWxpbnV4 LWdudQorLSAgc3BhcmM2NC11bmtub3duLWxpbnV4LWdudToKKy0gICAgdXNlczogLi8uZ2l0aHVi L3dvcmtmbG93cy9ydW4tY2ktc2NyaXB0LnltbAorLSAgICBzdHJhdGVneToKKy0gICAgICBmYWls LWZhc3Q6IGZhbHNlCistICAgIHdpdGg6CistICAgICAgdGFyZ2V0OiBzcGFyYzY0LXVua25vd24t bGludXgtZ251CistICB3YXNtMzItdW5rbm93bi11bmtub3duOgorLSAgICB1c2VzOiAuLy5naXRo dWIvd29ya2Zsb3dzL3J1bi1jaS1zY3JpcHQueW1sCistICAgIHN0cmF0ZWd5OgorLSAgICAgIGZh aWwtZmFzdDogZmFsc2UKKy0gICAgd2l0aDoKKy0gICAgICB0YXJnZXQ6IHdhc20zMi11bmtub3du LXVua25vd24KKy0gIHg4Nl82NC1hcHBsZS1kYXJ3aW4tU1NFNF8yOgorLSAgICB1c2VzOiAuLy5n aXRodWIvd29ya2Zsb3dzL3J1bi1jaS1zY3JpcHQueW1sCistICAgIHN0cmF0ZWd5OgorLSAgICAg IGZhaWwtZmFzdDogdHJ1ZQorLSAgICB3aXRoOgorLSAgICAgIHJ1bm5lcjogbWFjb3MtbGF0ZXN0 CistICAgICAgc2NyaXB0OiBjaS9ydW4uc2gKKy0gICAgICB0YXJnZXQ6IHg4Nl82NC1hcHBsZS1k YXJ3aW4KKy0gICAgICBydXN0ZmxhZ3M6IC1DdGFyZ2V0LWZlYXR1cmU9K3NzZTQuMgorLSAgeDg2 XzY0LWFwcGxlLWRhcndpbi1BVlg6CistICAgIHVzZXM6IC4vLmdpdGh1Yi93b3JrZmxvd3MvcnVu LWNpLXNjcmlwdC55bWwKKy0gICAgc3RyYXRlZ3k6CistICAgICAgZmFpbC1mYXN0OiB0cnVlCist ICAgIHdpdGg6CistICAgICAgcnVubmVyOiBtYWNvcy1sYXRlc3QKKy0gICAgICBzY3JpcHQ6IGNp L3J1bi5zaAorLSAgICAgIHRhcmdldDogeDg2XzY0LWFwcGxlLWRhcndpbgorLSAgICAgIHJ1c3Rm bGFnczogLUN0YXJnZXQtZmVhdHVyZT0rYXZ4CistICB4ODZfNjQtYXBwbGUtaW9zOgorLSAgICB1 c2VzOiAuLy5naXRodWIvd29ya2Zsb3dzL3J1bi1jaS1zY3JpcHQueW1sCistICAgIHN0cmF0ZWd5 OgorLSAgICAgIGZhaWwtZmFzdDogdHJ1ZQorLSAgICB3aXRoOgorLSAgICAgIHJ1bm5lcjogbWFj b3MtbGF0ZXN0CistICAgICAgc2NyaXB0OiBjaS9ydW4uc2gKKy0gICAgICB0YXJnZXQ6IHg4Nl82 NC1hcHBsZS1pb3MKKy0gIGFhcmNoNjQtYXBwbGUtaW9zOgorLSAgICB1c2VzOiAuLy5naXRodWIv d29ya2Zsb3dzL3J1bi1jaS1zY3JpcHQueW1sCistICAgIHN0cmF0ZWd5OgorLSAgICAgIGZhaWwt ZmFzdDogdHJ1ZQorLSAgICB3aXRoOgorLSAgICAgIHJ1bm5lcjogbWFjb3MtbGF0ZXN0CistICAg ICAgc2NyaXB0OiBjaS9ydW4uc2gKKy0gICAgICB0YXJnZXQ6IGFhcmNoNjQtYXBwbGUtaW9zCist ICAgICAgcnVzdGZsYWdzOiAtQ3RhcmdldC1mZWF0dXJlPStuZW9uCitkaWZmIC0tZ2l0IGEvdGhp cmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC8uZ2l0aHViL3dvcmtmbG93cy9kb2NzLnltbCBiL3Ro aXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvLmdpdGh1Yi93b3JrZmxvd3MvZG9jcy55bWwKK2Rl bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2lt ZC8uZ2l0aHViL3dvcmtmbG93cy9kb2NzLnltbAorKysrIC9kZXYvbnVsbAorQEAgLTEsMTMgKzAs MCBAQAorLW5hbWU6IGRvY3MKKy0KKy1vbjoKKy0gIHB1c2g6CistICAgIGJyYW5jaGVzOgorLSAg ICAgIC0gbWFzdGVyCistCistam9iczoKKy0gIGRvY3M6CistICAgIHVzZXM6IC4vLmdpdGh1Yi93 b3JrZmxvd3MvcnVuLWNpLXNjcmlwdC55bWwKKy0gICAgd2l0aDoKKy0gICAgICBzZXR1cF9zY3Jp cHQ6IGNhcmdvIGluc3RhbGwgbWRib29rCistICAgICAgc2NyaXB0OiBjaS9kb3guc2gKK2RpZmYg LS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kLy5naXRodWIvd29ya2Zsb3dzL3J1 bi1jaS1zY3JpcHQueW1sIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC8uZ2l0aHViL3dv cmtmbG93cy9ydW4tY2ktc2NyaXB0LnltbAorZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0g YS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kLy5naXRodWIvd29ya2Zsb3dzL3J1bi1jaS1z Y3JpcHQueW1sCisrKysgL2Rldi9udWxsCitAQCAtMSw4NiArMCwwIEBACistbmFtZTogcnVuLWNp LXNjcmlwdAorLQorLW9uOgorLSAgd29ya2Zsb3dfY2FsbDoKKy0gICAgaW5wdXRzOgorLSAgICAg IHJ1bm5lcjoKKy0gICAgICAgIHJlcXVpcmVkOiBmYWxzZQorLSAgICAgICAgdHlwZTogc3RyaW5n CistICAgICAgICBkZWZhdWx0OiB1YnVudHUtbGF0ZXN0CistICAgICAgdGFyZ2V0OgorLSAgICAg ICAgcmVxdWlyZWQ6IGZhbHNlCistICAgICAgICB0eXBlOiBzdHJpbmcKKy0gICAgICAgIGRlZmF1 bHQ6ICcnCistICAgICAgcnVzdGZsYWdzOgorLSAgICAgICAgcmVxdWlyZWQ6IGZhbHNlCistICAg ICAgICB0eXBlOiBzdHJpbmcKKy0gICAgICAgIGRlZmF1bHQ6ICcnCistICAgICAgc2NyaXB0Ogor LSAgICAgICAgcmVxdWlyZWQ6IGZhbHNlCistICAgICAgICB0eXBlOiBzdHJpbmcKKy0gICAgICAg IGRlZmF1bHQ6IGNpL3J1bi1kb2NrZXIuc2gKKy0gICAgICBzZXR1cF9zY3JpcHQ6CistICAgICAg ICByZXF1aXJlZDogZmFsc2UKKy0gICAgICAgIHR5cGU6IHN0cmluZworLSAgICAgIG5vcnVuOgor LSAgICAgICAgcmVxdWlyZWQ6IGZhbHNlCistICAgICAgICB0eXBlOiBzdHJpbmcKKy0gICAgICAg IGRlZmF1bHQ6ICcnCistICAgICAgdmVyaWZ5OgorLSAgICAgICAgcmVxdWlyZWQ6IGZhbHNlCist ICAgICAgICB0eXBlOiBzdHJpbmcKKy0gICAgICAgIGRlZmF1bHQ6ICcnCistICAgICAgZmVhdHVy ZXM6CistICAgICAgICByZXF1aXJlZDogZmFsc2UKKy0gICAgICAgIHR5cGU6IHN0cmluZworLSAg ICAgICAgZGVmYXVsdDogJycKKy0KKy1qb2JzOgorLSAgcnVuLWNpLXNjcmlwdDoKKy0gICAgcnVu cy1vbjogJHt7IGlucHV0cy5ydW5uZXIgfX0KKy0gICAgc3RlcHM6CistICAgICAgLSBuYW1lOiBD aGVja291dAorLSAgICAgICAgdXNlczogYWN0aW9ucy9jaGVja291dEB2MgorLSAgICAgIC0gbmFt ZTogSW5pdCBSdXN0dXAgQ2FjaGUKKy0gICAgICAgIHVzZXM6IGFjdGlvbnMvY2FjaGVAdjIKKy0g ICAgICAgIHdpdGg6CistICAgICAgICAgIHBhdGg6IHwKKy0gICAgICAgICAgICB+Ly5ydXN0dXAv dG9vbGNoYWlucworLSAgICAgICAgICBrZXk6ICR7eyBydW5uZXIub3MgfX0tY2FyZ28tJHt7IGhh c2hGaWxlcygnKiovcnVzdC10b29sY2hhaW4nKSB9fQorLSAgICAgIC0gbmFtZTogSW5zdGFsbCBU b29sY2hhaW4KKy0gICAgICAgIHVzZXM6IGR0b2xuYXkvcnVzdC10b29sY2hhaW5AbmlnaHRseQor LSAgICAgICAgd2l0aDoKKy0gICAgICAgICAgIyBGSVhNRTogY2hhbmdlIHRvIG5pZ2h0bHkgb25j ZSBodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL3BhY2tlZF9zaW1kL3B1bGwvMzUwIGlzIG1l cmdlZAorLSAgICAgICAgICAjIG5lZWRzIHRvIGJlIGtlcHQgaW4gc3luYyB3aXRoIHRoZSB0b29s Y2hhaW4gZmlsZXMKKy0gICAgICAgICAgdGFyZ2V0czogJHt7IGlucHV0cy50YXJnZXQgfX0KKy0g ICAgICAgICAgY29tcG9uZW50czogcnVzdGZtdAorLSAgICAgIC0gbmFtZTogR2VuZXJhdGUgTG9j a2ZpbGUKKy0gICAgICAgIHJ1bjogY2FyZ28gZ2VuZXJhdGUtbG9ja2ZpbGUKKy0gICAgICAtIG5h bWU6IEluaXQgQ2FyZ28gQ2FjaGUKKy0gICAgICAgIHVzZXM6IGFjdGlvbnMvY2FjaGVAdjIKKy0g ICAgICAgIHdpdGg6CistICAgICAgICAgIHBhdGg6IHwKKy0gICAgICAgICAgICB+Ly5jYXJnby9i aW4vCistICAgICAgICAgICAgfi8uY2FyZ28vcmVnaXN0cnkvaW5kZXgvCistICAgICAgICAgICAg fi8uY2FyZ28vcmVnaXN0cnkvY2FjaGUvCistICAgICAgICAgICAgfi8uY2FyZ28vZ2l0L2RiLwor LSAgICAgICAgICAgIHRhcmdldC8KKy0gICAgICAgICAga2V5OiAke3sgcnVubmVyLm9zIH19LWNh cmdvLSR7eyBoYXNoRmlsZXMoJyoqL0NhcmdvLmxvY2snKSB9fQorLSAgICAgIC0gbmFtZTogU2V0 dXAKKy0gICAgICAgIGlmOiAke3sgaW5wdXRzLnNldHVwX3NjcmlwdCAhPSAnJyB9fQorLSAgICAg ICAgcnVuOiAke3sgaW5wdXRzLnNldHVwX3NjcmlwdCB9fQorLSAgICAgICAgZW52OgorLSAgICAg ICAgICBUQVJHRVQ6ICR7eyBpbnB1dHMudGFyZ2V0IH19CistICAgICAgICAgIFJVU1RGTEFHUzog JHt7IGlucHV0cy5ydXN0ZmxhZ3MgfX0KKy0gICAgICAgICAgTk9SVU46ICR7eyBpbnB1dHMubm9y dW4gfX0KKy0gICAgICAgICAgVkVSSUZZOiAke3sgaW5wdXRzLnZlcmlmeSB9fQorLSAgICAgICAg ICBGRUFUVVJFUzogJHt7IGlucHV0cy5mZWF0dXJlcyB9fQorLSAgICAgIC0gbmFtZTogUnVuIENJ IFNjcmlwdAorLSAgICAgICAgdGltZW91dC1taW51dGVzOiAzMAorLSAgICAgICAgcnVuOiAke3sg aW5wdXRzLnNjcmlwdCB9fQorLSAgICAgICAgZW52OgorLSAgICAgICAgICBUQVJHRVQ6ICR7eyBp bnB1dHMudGFyZ2V0IH19CistICAgICAgICAgIFJVU1RGTEFHUzogJHt7IGlucHV0cy5ydXN0Zmxh Z3MgfX0KKy0gICAgICAgICAgTk9SVU46ICR7eyBpbnB1dHMubm9ydW4gfX0KKy0gICAgICAgICAg VkVSSUZZOiAke3sgaW5wdXRzLnZlcmlmeSB9fQorLSAgICAgICAgICBGRUFUVVJFUzogJHt7IGlu cHV0cy5mZWF0dXJlcyB9fQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3Np bWQvLnRyYXZpcy55bWwgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kLy50cmF2aXMueW1s CitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2Vk X3NpbWQvLnRyYXZpcy55bWwKKysrKyAvZGV2L251bGwKK0BAIC0xLDIxMiArMCwwIEBACistbGFu Z3VhZ2U6IHJ1c3QKKy1ydXN0OiBuaWdodGx5Cistb3M6IGxpbnV4CistZGlzdDogZm9jYWwKKy0K Ky1zdGFnZXM6CistICAtIHRvb2xzCistICAtIGJ1aWxkLXRlc3QtdmVyaWZ5ICMgUGFzc2VzIGZ1 bGwgdGVzdCBzdWl0ZSwgcGVybWl0IG5vIHJlZ3Jlc3Npb25zICh1bmxlc3MgaXQncyBydXN0dXAg Oi8pCistICAtIDMyYml0LXRpZXIxCistICAtIDY0Yml0LXRpZXIyCistICAtIDMyYml0LXRpZXIy CistCistam9iczoKKy0gIGZhc3RfZmluaXNoOiB0cnVlCistICBpbmNsdWRlOgorLSAgICAjIEFu ZHJvaWQ6CistICAgIC0gZW52OiBUQVJHRVQ9eDg2XzY0LWxpbnV4LWFuZHJvaWQKKy0gICAgICBu YW1lOiAieDg2XzY0LXVua25vd24tbGludXgtYW5kcm9pZCArIFNTRTIiCistICAgICAgc3RhZ2U6 IGJ1aWxkLXRlc3QtdmVyaWZ5CistICAgIC0gZW52OiBUQVJHRVQ9YXJtLWxpbnV4LWFuZHJvaWRl YWJpCistICAgICAgbmFtZTogImFybS1saW51eC1hbmRyb2lkZWFiaSIKKy0gICAgICBzdGFnZTog YnVpbGQtdGVzdC12ZXJpZnkKKy0gICAgLSBuYW1lOiAiYWFyY2g2NC11bmtub3duLWxpbnV4LWFu ZHJvaWQgKyBORU9OIgorLSAgICAgIGVudjogVEFSR0VUPWFhcmNoNjQtbGludXgtYW5kcm9pZCBS VVNURkxBR1M9Ii1DIHRhcmdldC1mZWF0dXJlPStuZW9uIgorLSAgICAgIHN0YWdlOiBidWlsZC10 ZXN0LXZlcmlmeQorLSAgICAtIGVudjogVEFSR0VUPSJ0aHVtYnY3bmVvbi1saW51eC1hbmRyb2lk ZWFiaSIKKy0gICAgICBuYW1lOiAidGh1bWJ2N25lb24tbGludXgtYW5kcm9pZGVhYmkiCistICAg ICAgc3RhZ2U6IDMyYml0LXRpZXIyCistICAgICMgTGludXg6CistICAgIC0gZW52OiBUQVJHRVQ9 aTU4Ni11bmtub3duLWxpbnV4LWdudQorLSAgICAgIG5hbWU6ICJpNTg2LXVua25vd24tbGludXgt Z251IgorLSAgICAgIHN0YWdlOiAzMmJpdC10aWVyMgorLSAgICAtIGVudjogVEFSR0VUPWk1ODYt dW5rbm93bi1saW51eC1nbnUgUlVTVEZMQUdTPSItQyB0YXJnZXQtZmVhdHVyZT0rc3NlIgorLSAg ICAgIG5hbWU6ICJpNTg2LXVua25vd24tbGludXgtZ251ICsgU1NFIgorLSAgICAgIHN0YWdlOiAz MmJpdC10aWVyMgorLSAgICAtIGVudjogVEFSR0VUPWk1ODYtdW5rbm93bi1saW51eC1nbnUgUlVT VEZMQUdTPSItQyB0YXJnZXQtZmVhdHVyZT0rc3NlMiIKKy0gICAgICBuYW1lOiAiaTU4Ni11bmtu b3duLWxpbnV4LWdudSArIFNTRTIiCistICAgICAgc3RhZ2U6IDMyYml0LXRpZXIyCistICAgIC0g ZW52OiBUQVJHRVQ9aTY4Ni11bmtub3duLWxpbnV4LWdudQorLSAgICAgIG5hbWU6ICJpNjg2LXVu a25vd24tbGludXgtZ251ICsgU1NFMiIKKy0gICAgICBzdGFnZTogMzJiaXQtdGllcjEKKy0gICAg LSBlbnY6IFRBUkdFVD1pNjg2LXVua25vd24tbGludXgtZ251IFJVU1RGTEFHUz0iLUMgdGFyZ2V0 LWZlYXR1cmU9K3NzZTQuMiIKKy0gICAgICBuYW1lOiAiaTY4Ni11bmtub3duLWxpbnV4LWdudSAr IFNTRTQuMiIKKy0gICAgICBzdGFnZTogMzJiaXQtdGllcjEKKy0gICAgLSBlbnY6IFRBUkdFVD1p Njg2LXVua25vd24tbGludXgtZ251IFJVU1RGTEFHUz0iLUMgdGFyZ2V0LWZlYXR1cmU9K2F2eDIi CistICAgICAgbmFtZTogImk2ODYtdW5rbm93bi1saW51eC1nbnUgKyBBVlgyIgorLSAgICAgIHN0 YWdlOiAzMmJpdC10aWVyMQorLSAgICAtIGVudjogVEFSR0VUPXg4Nl82NC11bmtub3duLWxpbnV4 LWdudSBSVVNURkxBR1M9Ii1DIHRhcmdldC1mZWF0dXJlPStzc2U0LjIiCistICAgICAgbmFtZTog Ing4Nl82NC11bmtub3duLWxpbnV4LWdudSArIFNTRTQuMiIKKy0gICAgICBzdGFnZTogYnVpbGQt dGVzdC12ZXJpZnkKKy0gICAgLSBlbnY6IFRBUkdFVD14ODZfNjQtdW5rbm93bi1saW51eC1nbnUg UlVTVEZMQUdTPSItQyB0YXJnZXQtZmVhdHVyZT0rYXZ4MiIKKy0gICAgICBuYW1lOiAieDg2XzY0 LXVua25vd24tbGludXgtZ251ICsgQVZYMiIKKy0gICAgICBzdGFnZTogYnVpbGQtdGVzdC12ZXJp ZnkKKy0gICAgLSBlbnY6IFRBUkdFVD1hcm0tdW5rbm93bi1saW51eC1nbnVlYWJpaGYKKy0gICAg ICBuYW1lOiAiYXJtLXVua25vd24tbGludXgtZ251ZWFiaWhmIgorLSAgICAgIHN0YWdlOiBidWls ZC10ZXN0LXZlcmlmeQorLSAgICAtIGVudjogVEFSR0VUPWFybXY3LXVua25vd24tbGludXgtZ251 ZWFiaWhmCistICAgICAgbmFtZTogImFybXY3LXVua25vd24tbGludXgtZ251ZWFiaWhmIgorLSAg ICAgIHN0YWdlOiBidWlsZC10ZXN0LXZlcmlmeQorLSAgICAtIGVudjogVEFSR0VUPWFybXY3LXVu a25vd24tbGludXgtZ251ZWFiaWhmIFJVU1RGTEFHUz0iLUMgdGFyZ2V0LWZlYXR1cmU9K25lb24i CistICAgICAgbmFtZTogImFybXY3LXVua25vd24tbGludXgtZ251ZWFiaWhmICsgTkVPTiIKKy0g ICAgICBzdGFnZTogYnVpbGQtdGVzdC12ZXJpZnkKKy0gICAgLSBlbnY6IFRBUkdFVD0idGh1bWJ2 N25lb24tdW5rbm93bi1saW51eC1nbnVlYWJpaGYiCistICAgICAgbmFtZTogInRodW1idjduZW9u LXVua25vd24tbGludXgtZ251ZWFiaWhmIgorLSAgICAgIHN0YWdlOiAzMmJpdC10aWVyMgorLSAg ICAtIG5hbWU6ICJhYXJjaDY0LXVua25vd24tbGludXgtZ251ICsgTkVPTiIKKy0gICAgICBlbnY6 IFRBUkdFVD1hYXJjaDY0LXVua25vd24tbGludXgtZ251IFJVU1RGTEFHUz0iLUMgdGFyZ2V0LWZl YXR1cmU9K25lb24iCistICAgICAgc3RhZ2U6IGJ1aWxkLXRlc3QtdmVyaWZ5CistICAgIC0gZW52 OiBUQVJHRVQ9bWlwcy11bmtub3duLWxpbnV4LWdudQorLSAgICAgIG5hbWU6ICJtaXBzLXVua25v d24tbGludXgtZ251IgorLSAgICAgIHN0YWdlOiAzMmJpdC10aWVyMgorLSAgICAtIGVudjogVEFS R0VUPW1pcHNlbC11bmtub3duLWxpbnV4LW11c2wKKy0gICAgICBuYW1lOiAibWlwc2VsLXVua25v d24tbGludXgtbXVzbCIKKy0gICAgICBzdGFnZTogMzJiaXQtdGllcjIKKy0gICAgLSBlbnY6IFRB UkdFVD1taXBzNjQtdW5rbm93bi1saW51eC1nbnVhYmk2NAorLSAgICAgIG5hbWU6ICJtaXBzNjQt dW5rbm93bi1saW51eC1nbnVhYmk2NCIKKy0gICAgICBzdGFnZTogNjRiaXQtdGllcjIKKy0gICAg LSBlbnY6IFRBUkdFVD1taXBzNjRlbC11bmtub3duLWxpbnV4LWdudWFiaTY0CistICAgICAgbmFt ZTogIm1pcHM2NGVsLXVua25vd24tbGludXgtZ251YWJpNjQiCistICAgICAgc3RhZ2U6IDY0Yml0 LXRpZXIyCistICAgICAgIyBGSVhNRTogaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy1udXJz ZXJ5L3BhY2tlZF9zaW1kL2lzc3Vlcy8xOAorLSAgICAgICMgZW52OiBUQVJHRVQ9bWlwczY0ZWwt dW5rbm93bi1saW51eC1nbnVhYmk2NCBSVVNURkxBR1M9Ii1DIHRhcmdldC1mZWF0dXJlPSttc2Eg LUMgdGFyZ2V0LWNwdT1taXBzNjRyNiIKKy0gICAgLSBlbnY6IFRBUkdFVD1wb3dlcnBjLXVua25v d24tbGludXgtZ251CistICAgICAgbmFtZTogInBvd2VycGMtdW5rbm93bi1saW51eC1nbnUiCist ICAgICAgc3RhZ2U6IDMyYml0LXRpZXIyCistICAgIC0gZW52OiBUQVJHRVQ9cG93ZXJwYzY0LXVu a25vd24tbGludXgtZ251CistICAgICAgbmFtZTogInBvd2VycGM2NC11bmtub3duLWxpbnV4LWdu dSIKKy0gICAgICBzdGFnZTogNjRiaXQtdGllcjIKKy0gICAgLSBuYW1lOiAicG93ZXJwYzY0bGUt dW5rbm93bi1saW51eC1nbnUiCistICAgICAgZW52OiBUQVJHRVQ9cG93ZXJwYzY0bGUtdW5rbm93 bi1saW51eC1nbnUKKy0gICAgICBzdGFnZTogYnVpbGQtdGVzdC12ZXJpZnkKKy0gICAgLSBuYW1l OiAicG93ZXJwYzY0bGUtdW5rbm93bi1saW51eC1nbnUgKyBBTFRJVkVDIgorLSAgICAgIGVudjog VEFSR0VUPXBvd2VycGM2NGxlLXVua25vd24tbGludXgtZ251IFJVU1RGTEFHUz0iLUMgdGFyZ2V0 LWZlYXR1cmU9K2FsdGl2ZWMiCistICAgICAgc3RhZ2U6IGJ1aWxkLXRlc3QtdmVyaWZ5CistICAg IC0gbmFtZTogInBvd2VycGM2NGxlLXVua25vd24tbGludXgtZ251ICsgVlNYIgorLSAgICAgIGVu djogVEFSR0VUPXBvd2VycGM2NGxlLXVua25vd24tbGludXgtZ251IFJVU1RGTEFHUz0iLUMgdGFy Z2V0LWZlYXR1cmU9K3ZzeCIKKy0gICAgICBzdGFnZTogYnVpbGQtdGVzdC12ZXJpZnkKKy0gICAg LSBuYW1lOiAiczM5MHgtdW5rbm93bi1saW51eC1nbnUiCistICAgICAgZW52OiBUQVJHRVQ9czM5 MHgtdW5rbm93bi1saW51eC1nbnUKKy0gICAgICBzdGFnZTogNjRiaXQtdGllcjIKKy0gICAgLSBl bnY6IFRBUkdFVD1zcGFyYzY0LXVua25vd24tbGludXgtZ251CistICAgICAgbmFtZTogInNwYXJj NjQtdW5rbm93bi1saW51eC1nbnUiCistICAgICAgc3RhZ2U6IDY0Yml0LXRpZXIyCistICAgICMg V2ViQXNzZW1ibHk6CistICAgIC0gZW52OiBUQVJHRVQ9d2FzbTMyLXVua25vd24tdW5rbm93bgor LSAgICAgIG5hbWU6ICJ3YXNtMzItdW5rbm93bi11bmtub3duIgorLSAgICAgIHN0YWdlOiAzMmJp dC10aWVyMgorLSAgICAjIE1hY09TWDoKKy0gICAgLSBvczogb3N4CistICAgICAgZW52OiBUQVJH RVQ9eDg2XzY0LWFwcGxlLWRhcndpbiBSVVNURkxBR1M9Ii1DIHRhcmdldC1mZWF0dXJlPStzc2U0 LjIiCistICAgICAgbmFtZTogIng4Nl82NC1hcHBsZS1kYXJ3aW4gKyBTU0U0LjIiCistICAgICAg aW5zdGFsbDogdHJ1ZQorLSAgICAgIHNjcmlwdDogY2kvcnVuLnNoCistICAgICAgb3N4X2ltYWdl OiB4Y29kZTEwCistICAgICAgc3RhZ2U6IGJ1aWxkLXRlc3QtdmVyaWZ5CistICAgICAgIyBUcmF2 aXMtQ0kgT1NYIGJ1aWxkIGJvdHMgZG8gbm90IHN1cHBvcnQgQVZYMjoKKy0gICAgLSBvczogb3N4 CistICAgICAgZW52OiBUQVJHRVQ9eDg2XzY0LWFwcGxlLWRhcndpbiBSVVNURkxBR1M9Ii1DIHRh cmdldC1mZWF0dXJlPSthdngiCistICAgICAgbmFtZTogIng4Nl82NC1hcHBsZS1kYXJ3aW4gKyBB VlgiCistICAgICAgaW5zdGFsbDogdHJ1ZQorLSAgICAgIHNjcmlwdDogY2kvcnVuLnNoCistICAg ICAgb3N4X2ltYWdlOiB4Y29kZTEwCistICAgICAgc3RhZ2U6IGJ1aWxkLXRlc3QtdmVyaWZ5Cist ICAgICMgKkJTRHM6CistICAgICMtIGVudjogVEFSR0VUPWk2ODYtdW5rbm93bi1mcmVlYnNkIE5P UlVOPTEKKy0gICAgIyAgc2NyaXB0OiBjaS9ydW4uc2gKKy0gICAgIy0gZW52OiBUQVJHRVQ9eDg2 XzY0LXVua25vd24tZnJlZWJzZCBOT1JVTj0xCistICAgICMgIHNjcmlwdDogY2kvcnVuLnNoCist ICAgICMtIGVudjogVEFSR0VUPXg4Nl82NC11bmtub3duLW5ldGJzZCBOT1JVTj0xCistICAgICMg IHNjcmlwdDogY2kvcnVuLnNoCistICAgICMgU29sYXJpczoKKy0gICAgIy0gZW52OiBUQVJHRVQ9 eDg2XzY0LXN1bi1zb2xhcmlzIE5PUlVOPTEKKy0gICAgIyAgc2NyaXB0OiBjaS9ydW4uc2gKKy0g ICAgIyBpT1M6CistICAgIC0gb3M6IG9zeAorLSAgICAgIGVudjogVEFSR0VUPXg4Nl82NC1hcHBs ZS1pb3MKKy0gICAgICBuYW1lOiAieDg2XzY0LWFwcGxlLWlvcyArIFNTRTIiCistICAgICAgc2Ny aXB0OiBjaS9ydW4uc2gKKy0gICAgICBvc3hfaW1hZ2U6IHhjb2RlOS40CistICAgICAgc3RhZ2U6 IDY0Yml0LXRpZXIyCistICAgIC0gbmFtZTogImFhcmNoNjQtYXBwbGUtaW9zICsgTkVPTiIKKy0g ICAgICBlbnY6IFRBUkdFVD1hYXJjaDY0LWFwcGxlLWlvcyBSVVNURkxBR1M9Ii1DIHRhcmdldC1m ZWF0dXJlPStuZW9uIgorLSAgICAgIG9zOiBvc3gKKy0gICAgICBvc3hfaW1hZ2U6IHhjb2RlOS40 CistICAgICAgc2NyaXB0OiBjaS9ydW4uc2gKKy0gICAgICBzdGFnZTogNjRiaXQtdGllcjIKKy0g ICAgIyBCRU5DSE1BUktTOgorLSAgICAtIG5hbWU6ICJCZW5jaG1hcmtzIC0geDg2XzY0LXVua25v d24tbGludXgtZ251IgorLSAgICAgIGluc3RhbGw6IFRBUkdFVD14ODZfNjQtdW5rbm93bi1saW51 eC1nbnUgLi9jaS9zZXR1cF9iZW5jaG1hcmtzLnNoCistICAgICAgIyBGSVhNRTogVXNlIGBjb3Jl X2FyY2gsc2xlZWYtc3lzYCBmZWF0dXJlcyBvbmNlIHRoZXkgd29ya3MgYWdhaW4KKy0gICAgICBz Y3JpcHQ6IFBBVEg9JChwd2QpOiRQQVRIIE5PUlVOPTEgVkVSSUZZPTEgRkVBVFVSRVM9aXNwYyBj aS9iZW5jaG1hcmsuc2gKKy0gICAgICBzdGFnZTogdG9vbHMKKy0gICAgLSBuYW1lOiAiQmVuY2ht YXJrcyAtIHg4Nl82NC1hcHBsZS1kYXJ3aW4iCistICAgICAgaW5zdGFsbDogVEFSR0VUPXg4Nl82 NC1hcHBsZS1kYXJ3aW4gLi9jaS9zZXR1cF9iZW5jaG1hcmtzLnNoCistICAgICAgIyBGSVhNRTog VXNlIGBjb3JlX2FyY2gsc2xlZWYtc3lzYCBmZWF0dXJlcyBvbmNlIHRoZXkgd29ya3MgYWdhaW4K Ky0gICAgICBzY3JpcHQ6IFBBVEg9JChwd2QpOiRQQVRIIE5PUlVOPTEgVkVSSUZZPTEgRkVBVFVS RVM9aXNwYyBjaS9iZW5jaG1hcmsuc2gKKy0gICAgICBvczogb3N4CistICAgICAgb3N4X2ltYWdl OiB4Y29kZTkuNAorLSAgICAgIHN0YWdlOiB0b29scworLSAgICAjIFRPT0xTOgorLSAgICAtIG5h bWU6ICJEb2N1bWVudGF0aW9uIgorLSAgICAgIGJlZm9yZV9pbnN0YWxsOgorLSAgICAgICAgLSBz dWRvIGFkZC1hcHQtcmVwb3NpdG9yeSAteSBwcGE6ZGVhZHNuYWtlcy9wcGEKKy0gICAgICAgIC0g c3VkbyBhcHQtZ2V0IHVwZGF0ZSAteQorLSAgICAgICAgLSBzdWRvIGFwdC1nZXQgaW5zdGFsbCAt eSBweXRob24zLjkKKy0gICAgICBpbnN0YWxsOgorLSAgICAgICAgLSBjYXJnbyBpbnN0YWxsIG1k Ym9vaworLSAgICAgIHNjcmlwdDogY2kvZG94LnNoCistICAgICAgc3RhZ2U6IHRvb2xzCistICAg IC0gbmFtZTogInJ1c3RmbXQiCistICAgICAgaW5zdGFsbDogdHJ1ZQorLSAgICAgIHNjcmlwdDog fAorLSAgICAgICAgcnVzdHVwIHRvb2xjaGFpbiBpbnN0YWxsIG5pZ2h0bHkgLWMgcnVzdGZtdCAt LWFsbG93LWRvd25ncmFkZQorLSAgICAgICAgY2kvYWxsLnNoIGNoZWNrX2ZtdCB8fCB0cnVlCist ICAgICAgc3RhZ2U6IHRvb2xzCistCistICBhbGxvd19mYWlsdXJlczoKKy0gICAgIyBGSVhNRTog SVNQQyBjYW5ub3QgYmUgZm91bmQ/CistICAgIC0gbmFtZTogIkJlbmNobWFya3MgLSB4ODZfNjQt YXBwbGUtZGFyd2luIgorLSAgICAjIEZJWE1FOiBpNjg2IGZhaWxzIGluIGlubGluaW5nLCBhcHBh cmVudGx5CistICAgIC0gc3RhZ2U6IDMyYml0LXRpZXIxCistICAgICMtIGVudjogVEFSR0VUPWk2 ODYtdW5rbm93bi1mcmVlYnNkIE5PUlVOPTEKKy0gICAgIy0gZW52OiBUQVJHRVQ9eDg2XzY0LXVu a25vd24tZnJlZWJzZCBOT1JVTj0xCistICAgICMtIGVudjogVEFSR0VUPXg4Nl82NC11bmtub3du LW5ldGJzZCBOT1JVTj0xCistICAgICMtIGVudjogVEFSR0VUPXg4Nl82NC1zdW4tc29sYXJpcyBO T1JVTj0xCistCistICAgICMgRklYTUU6IFRCRAorLSAgICAtIHN0YWdlOiA2NGJpdC10aWVyMgor LSAgICAtIHN0YWdlOiAzMmJpdC10aWVyMgorLQorLSAgICAjIEZJWE1FOiBpT1MKKy0gICAgIyBo dHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nLW51cnNlcnkvcGFja2VkX3NpbWQvaXNzdWVzLzI2 CistICAgIC0gZW52OiBUQVJHRVQ9eDg2XzY0LWFwcGxlLWlvcworLSAgICAjIElzIHRoaXMgcmVs YXRlZCB0byB0aGUgYWJvdmU/IE15c3RlcmlvdXMgdGVzdCBmYWlsdXJlCistICAgIC0gbmFtZTog ImFhcmNoNjQtYXBwbGUtaW9zICsgTkVPTiIKKy0KKy1pbnN0YWxsOiB0cmF2aXNfcmV0cnkgcnVz dHVwIHRhcmdldCBhZGQgJFRBUkdFVAorLWJlZm9yZV9zY3JpcHQ6IGNhcmdvIGdlbmVyYXRlLWxv Y2tmaWxlCistc2NyaXB0OiB0cmF2aXNfd2FpdCA1MCBjaS9ydW4tZG9ja2VyLnNoCistYWZ0ZXJf c2NyaXB0OiBzbGVlcCA1CistCistZW52OgorLSAgZ2xvYmFsOgorLSAgICBzZWN1cmU6ICJsUEh2 N3M2K0F4UVlOYUZuY3ljVkZRdCsrWTFhc1FtTWhPaWtRVTF6dGxQOENLNytobjJtOThjZy9ldU9K eXpJT2IyaUozWlg0Y0daa3p3NGxjNTlNUUJCeWIxR3REYmF6UW9VT3pWRGJWZmU5QkREMmY4SlZv SUZoMUNNZmpQS1E3R2cvckpxV2x3clVsU2Q1R054UEN1dEtqWTdxWmhKdVI2U1FiSmpsV2FHTjJW ZDRmVkN6S1h6OGZIUlhnTUVaUytkK0NSNE5zcmtiODNKM1o0czVrU2RKbWhZeEo2MUFXanV6SlZ3 VWg0bDMvSEVZbFNMNVhYcHVoNVIyaTdXMTZoMVBsTmRhVFVna1psaTFsSHpPOCs2UThMelg5K1hp TElFVlg5bHczQTJOZElLR3o4RS8rN1FzNW9ZT2t3WWhqUk9zRFF4SUs3eGtTTTMwYlF1Tjdjd01C eWJBVkl5T1BKa3FYUTFkUXlwODNLU2RzT2o3Sk15RERSdmNFRExJNmVoUmxtNUVjZEg3WXJSZXVi b044MWlVbzBTYTdWc3VVbWdqNWhqRVJDdDlyMzBmOWFXdWl0QUJhaTd2S1J0amdsZzdTcDVDckVW UEE0UFFzNlBxS0NDUm9nb2dnYlhKL1o1RHl3L1JaYVhQZU5SOStxSUtOMVZqbTlHZXcxc1JOMkpL LzMrdlhUS3R5SlhIL3VCeGdKdDRqUWxidVNoT0p1RitCU2ZURjg4c01lNjdhLzM1N1NTT0liNEpr YUN5ZDBmbERDV1lFODU3NmthSFBsVlZNVDJwZVhlZTBMZVJYbTFlMTNuRzNOYTB0M0xTL29ySkxQ SE9TaE5RR29EajdxQVA1YUVLZ2dSeWE4OTZKR3d0dmxhQkhIVG1TUWg2NUc3Y3lORXJabz0iCist YnJhbmNoZXM6CistICBvbmx5OgorLSAgICAtIHN0YWdpbmcgIyBib3JzIHIrCistICAgIC0gdHJ5 aW5nICAjIGJvcnMgdHJ5CistICAgIC0gbWFzdGVyCistbm90aWZpY2F0aW9uczoKKy0gIGVtYWls OgorLSAgICBvbl9zdWNjZXNzOiBuZXZlcgorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3Qv cGFja2VkX3NpbWQvQ2FyZ28udG9tbCBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvQ2Fy Z28udG9tbAorZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0 L3BhY2tlZF9zaW1kL0NhcmdvLnRvbWwKKysrKyAvZGV2L251bGwKK0BAIC0xLDgwICswLDAgQEAK Ky0jIFRISVMgRklMRSBJUyBBVVRPTUFUSUNBTExZIEdFTkVSQVRFRCBCWSBDQVJHTworLSMKKy0j IFdoZW4gdXBsb2FkaW5nIGNyYXRlcyB0byB0aGUgcmVnaXN0cnkgQ2FyZ28gd2lsbCBhdXRvbWF0 aWNhbGx5CistIyAibm9ybWFsaXplIiBDYXJnby50b21sIGZpbGVzIGZvciBtYXhpbWFsIGNvbXBh dGliaWxpdHkKKy0jIHdpdGggYWxsIHZlcnNpb25zIG9mIENhcmdvIGFuZCBhbHNvIHJld3JpdGUg YHBhdGhgIGRlcGVuZGVuY2llcworLSMgdG8gcmVnaXN0cnkgKGUuZy4sIGNyYXRlcy5pbykgZGVw ZW5kZW5jaWVzLgorLSMKKy0jIElmIHlvdSBhcmUgcmVhZGluZyB0aGlzIGZpbGUgYmUgYXdhcmUg dGhhdCB0aGUgb3JpZ2luYWwgQ2FyZ28udG9tbAorLSMgd2lsbCBsaWtlbHkgbG9vayB2ZXJ5IGRp ZmZlcmVudCAoYW5kIG11Y2ggbW9yZSByZWFzb25hYmxlKS4KKy0jIFNlZSBDYXJnby50b21sLm9y aWcgZm9yIHRoZSBvcmlnaW5hbCBjb250ZW50cy4KKy0KKy1bcGFja2FnZV0KKy1lZGl0aW9uID0g IjIwMTgiCistbmFtZSA9ICJwYWNrZWRfc2ltZCIKKy12ZXJzaW9uID0gIjAuMy45IgorLWJ1aWxk ID0gImJ1aWxkLnJzIgorLWRlc2NyaXB0aW9uID0gIlBvcnRhYmxlIFBhY2tlZCBTSU1EIHZlY3Rv cnMiCistaG9tZXBhZ2UgPSAiaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9wYWNrZWRfc2lt ZCIKKy1kb2N1bWVudGF0aW9uID0gImh0dHBzOi8vZG9jcy5ycy9jcmF0ZS9wYWNrZWRfc2ltZC8i CistcmVhZG1lID0gIlJFQURNRS5tZCIKKy1rZXl3b3JkcyA9IFsKKy0gICAgInNpbWQiLAorLSAg ICAidmVjdG9yIiwKKy0gICAgInBvcnRhYmlsaXR5IiwKKy1dCistY2F0ZWdvcmllcyA9IFsKKy0g ICAgImhhcmR3YXJlLXN1cHBvcnQiLAorLSAgICAiY29uY3VycmVuY3kiLAorLSAgICAibm8tc3Rk IiwKKy0gICAgImRhdGEtc3RydWN0dXJlcyIsCistXQorLWxpY2Vuc2UgPSAiTUlUIE9SIEFwYWNo ZS0yLjAiCistcmVwb3NpdG9yeSA9ICJodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL3BhY2tl ZF9zaW1kIgorLQorLVtwYWNrYWdlLm1ldGFkYXRhLmRvY3MucnNdCistZmVhdHVyZXMgPSBbImlu dG9fYml0cyJdCistcnVzdGRvYy1hcmdzID0gWworLSAgICAiLS1jZmciLAorLSAgICAiZG9jX2Nm ZyIsCistXQorLQorLVtkZXBlbmRlbmNpZXNdCistY2ZnLWlmID0gIjEuMC4wIgorLQorLVtkZXBl bmRlbmNpZXMuY29yZV9hcmNoXQorLXZlcnNpb24gPSAiMC4xLjUiCistb3B0aW9uYWwgPSB0cnVl CistCistW2RlcGVuZGVuY2llcy5udW0tdHJhaXRzXQorLXZlcnNpb24gPSAiMC4yLjE0IgorLWRl ZmF1bHQtZmVhdHVyZXMgPSBmYWxzZQorLQorLVtkZXYtZGVwZW5kZW5jaWVzXQorLXBhc3RlID0g Il4xIgorLQorLVtkZXYtZGVwZW5kZW5jaWVzLmFycmF5dmVjXQorLXZlcnNpb24gPSAiXjAuNSIK Ky1kZWZhdWx0LWZlYXR1cmVzID0gZmFsc2UKKy0KKy1bZmVhdHVyZXNdCistZGVmYXVsdCA9IFtd CistaW50b19iaXRzID0gW10KKy1saWJjb3JlX25lb24gPSBbXQorLQorLVt0YXJnZXQuImNmZyh0 YXJnZXRfYXJjaCA9IFwieDg2XzY0XCIpIi5kZXBlbmRlbmNpZXMuc2xlZWYtc3lzXQorLXZlcnNp b24gPSAiMC4xLjIiCistb3B0aW9uYWwgPSB0cnVlCistCistW3RhcmdldC53YXNtMzItdW5rbm93 bi11bmtub3duLmRldi1kZXBlbmRlbmNpZXNdCistd2FzbS1iaW5kZ2VuID0gIj0wLjIuODciCist d2FzbS1iaW5kZ2VuLXRlc3QgPSAiPTAuMy4zNyIKKy0KKy1bYmFkZ2VzLmlzLWl0LW1haW50YWlu ZWQtaXNzdWUtcmVzb2x1dGlvbl0KKy1yZXBvc2l0b3J5ID0gInJ1c3QtbGFuZy9wYWNrZWRfc2lt ZCIKKy0KKy1bYmFkZ2VzLmlzLWl0LW1haW50YWluZWQtb3Blbi1pc3N1ZXNdCistcmVwb3NpdG9y eSA9ICJydXN0LWxhbmcvcGFja2VkX3NpbWQiCistCistW2JhZGdlcy5tYWludGVuYW5jZV0KKy1z dGF0dXMgPSAiZXhwZXJpbWVudGFsIgorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFj a2VkX3NpbWQvTElDRU5TRS1BUEFDSEUgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL0xJ Q0VOU0UtQVBBQ0hFCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5 L3J1c3QvcGFja2VkX3NpbWQvTElDRU5TRS1BUEFDSEUKKysrKyAvZGV2L251bGwKK0BAIC0xLDIw MSArMCwwIEBACistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQXBhY2hlIExpY2Vuc2UK Ky0gICAgICAgICAgICAgICAgICAgICAgICBWZXJzaW9uIDIuMCwgSmFudWFyeSAyMDA0CistICAg ICAgICAgICAgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzLworLQorLVRF Uk1TIEFORCBDT05ESVRJT05TIEZPUiBVU0UsIFJFUFJPRFVDVElPTiwgQU5EIERJU1RSSUJVVElP TgorLQorLTEuIERlZmluaXRpb25zLgorLQorLSAgICJMaWNlbnNlIiBzaGFsbCBtZWFuIHRoZSB0 ZXJtcyBhbmQgY29uZGl0aW9ucyBmb3IgdXNlLCByZXByb2R1Y3Rpb24sCistICAgYW5kIGRpc3Ry aWJ1dGlvbiBhcyBkZWZpbmVkIGJ5IFNlY3Rpb25zIDEgdGhyb3VnaCA5IG9mIHRoaXMgZG9jdW1l bnQuCistCistICAgIkxpY2Vuc29yIiBzaGFsbCBtZWFuIHRoZSBjb3B5cmlnaHQgb3duZXIgb3Ig ZW50aXR5IGF1dGhvcml6ZWQgYnkKKy0gICB0aGUgY29weXJpZ2h0IG93bmVyIHRoYXQgaXMgZ3Jh bnRpbmcgdGhlIExpY2Vuc2UuCistCistICAgIkxlZ2FsIEVudGl0eSIgc2hhbGwgbWVhbiB0aGUg dW5pb24gb2YgdGhlIGFjdGluZyBlbnRpdHkgYW5kIGFsbAorLSAgIG90aGVyIGVudGl0aWVzIHRo YXQgY29udHJvbCwgYXJlIGNvbnRyb2xsZWQgYnksIG9yIGFyZSB1bmRlciBjb21tb24KKy0gICBj b250cm9sIHdpdGggdGhhdCBlbnRpdHkuIEZvciB0aGUgcHVycG9zZXMgb2YgdGhpcyBkZWZpbml0 aW9uLAorLSAgICJjb250cm9sIiBtZWFucyAoaSkgdGhlIHBvd2VyLCBkaXJlY3Qgb3IgaW5kaXJl Y3QsIHRvIGNhdXNlIHRoZQorLSAgIGRpcmVjdGlvbiBvciBtYW5hZ2VtZW50IG9mIHN1Y2ggZW50 aXR5LCB3aGV0aGVyIGJ5IGNvbnRyYWN0IG9yCistICAgb3RoZXJ3aXNlLCBvciAoaWkpIG93bmVy c2hpcCBvZiBmaWZ0eSBwZXJjZW50ICg1MCUpIG9yIG1vcmUgb2YgdGhlCistICAgb3V0c3RhbmRp bmcgc2hhcmVzLCBvciAoaWlpKSBiZW5lZmljaWFsIG93bmVyc2hpcCBvZiBzdWNoIGVudGl0eS4K Ky0KKy0gICAiWW91IiAob3IgIllvdXIiKSBzaGFsbCBtZWFuIGFuIGluZGl2aWR1YWwgb3IgTGVn YWwgRW50aXR5CistICAgZXhlcmNpc2luZyBwZXJtaXNzaW9ucyBncmFudGVkIGJ5IHRoaXMgTGlj ZW5zZS4KKy0KKy0gICAiU291cmNlIiBmb3JtIHNoYWxsIG1lYW4gdGhlIHByZWZlcnJlZCBmb3Jt IGZvciBtYWtpbmcgbW9kaWZpY2F0aW9ucywKKy0gICBpbmNsdWRpbmcgYnV0IG5vdCBsaW1pdGVk IHRvIHNvZnR3YXJlIHNvdXJjZSBjb2RlLCBkb2N1bWVudGF0aW9uCistICAgc291cmNlLCBhbmQg Y29uZmlndXJhdGlvbiBmaWxlcy4KKy0KKy0gICAiT2JqZWN0IiBmb3JtIHNoYWxsIG1lYW4gYW55 IGZvcm0gcmVzdWx0aW5nIGZyb20gbWVjaGFuaWNhbAorLSAgIHRyYW5zZm9ybWF0aW9uIG9yIHRy YW5zbGF0aW9uIG9mIGEgU291cmNlIGZvcm0sIGluY2x1ZGluZyBidXQKKy0gICBub3QgbGltaXRl ZCB0byBjb21waWxlZCBvYmplY3QgY29kZSwgZ2VuZXJhdGVkIGRvY3VtZW50YXRpb24sCistICAg YW5kIGNvbnZlcnNpb25zIHRvIG90aGVyIG1lZGlhIHR5cGVzLgorLQorLSAgICJXb3JrIiBzaGFs bCBtZWFuIHRoZSB3b3JrIG9mIGF1dGhvcnNoaXAsIHdoZXRoZXIgaW4gU291cmNlIG9yCistICAg T2JqZWN0IGZvcm0sIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSBMaWNlbnNlLCBhcyBpbmRpY2F0 ZWQgYnkgYQorLSAgIGNvcHlyaWdodCBub3RpY2UgdGhhdCBpcyBpbmNsdWRlZCBpbiBvciBhdHRh Y2hlZCB0byB0aGUgd29yaworLSAgIChhbiBleGFtcGxlIGlzIHByb3ZpZGVkIGluIHRoZSBBcHBl bmRpeCBiZWxvdykuCistCistICAgIkRlcml2YXRpdmUgV29ya3MiIHNoYWxsIG1lYW4gYW55IHdv cmssIHdoZXRoZXIgaW4gU291cmNlIG9yIE9iamVjdAorLSAgIGZvcm0sIHRoYXQgaXMgYmFzZWQg b24gKG9yIGRlcml2ZWQgZnJvbSkgdGhlIFdvcmsgYW5kIGZvciB3aGljaCB0aGUKKy0gICBlZGl0 b3JpYWwgcmV2aXNpb25zLCBhbm5vdGF0aW9ucywgZWxhYm9yYXRpb25zLCBvciBvdGhlciBtb2Rp ZmljYXRpb25zCistICAgcmVwcmVzZW50LCBhcyBhIHdob2xlLCBhbiBvcmlnaW5hbCB3b3JrIG9m IGF1dGhvcnNoaXAuIEZvciB0aGUgcHVycG9zZXMKKy0gICBvZiB0aGlzIExpY2Vuc2UsIERlcml2 YXRpdmUgV29ya3Mgc2hhbGwgbm90IGluY2x1ZGUgd29ya3MgdGhhdCByZW1haW4KKy0gICBzZXBh cmFibGUgZnJvbSwgb3IgbWVyZWx5IGxpbmsgKG9yIGJpbmQgYnkgbmFtZSkgdG8gdGhlIGludGVy ZmFjZXMgb2YsCistICAgdGhlIFdvcmsgYW5kIERlcml2YXRpdmUgV29ya3MgdGhlcmVvZi4KKy0K Ky0gICAiQ29udHJpYnV0aW9uIiBzaGFsbCBtZWFuIGFueSB3b3JrIG9mIGF1dGhvcnNoaXAsIGlu Y2x1ZGluZworLSAgIHRoZSBvcmlnaW5hbCB2ZXJzaW9uIG9mIHRoZSBXb3JrIGFuZCBhbnkgbW9k aWZpY2F0aW9ucyBvciBhZGRpdGlvbnMKKy0gICB0byB0aGF0IFdvcmsgb3IgRGVyaXZhdGl2ZSBX b3JrcyB0aGVyZW9mLCB0aGF0IGlzIGludGVudGlvbmFsbHkKKy0gICBzdWJtaXR0ZWQgdG8gTGlj ZW5zb3IgZm9yIGluY2x1c2lvbiBpbiB0aGUgV29yayBieSB0aGUgY29weXJpZ2h0IG93bmVyCist ICAgb3IgYnkgYW4gaW5kaXZpZHVhbCBvciBMZWdhbCBFbnRpdHkgYXV0aG9yaXplZCB0byBzdWJt aXQgb24gYmVoYWxmIG9mCistICAgdGhlIGNvcHlyaWdodCBvd25lci4gRm9yIHRoZSBwdXJwb3Nl cyBvZiB0aGlzIGRlZmluaXRpb24sICJzdWJtaXR0ZWQiCistICAgbWVhbnMgYW55IGZvcm0gb2Yg ZWxlY3Ryb25pYywgdmVyYmFsLCBvciB3cml0dGVuIGNvbW11bmljYXRpb24gc2VudAorLSAgIHRv IHRoZSBMaWNlbnNvciBvciBpdHMgcmVwcmVzZW50YXRpdmVzLCBpbmNsdWRpbmcgYnV0IG5vdCBs aW1pdGVkIHRvCistICAgY29tbXVuaWNhdGlvbiBvbiBlbGVjdHJvbmljIG1haWxpbmcgbGlzdHMs IHNvdXJjZSBjb2RlIGNvbnRyb2wgc3lzdGVtcywKKy0gICBhbmQgaXNzdWUgdHJhY2tpbmcgc3lz dGVtcyB0aGF0IGFyZSBtYW5hZ2VkIGJ5LCBvciBvbiBiZWhhbGYgb2YsIHRoZQorLSAgIExpY2Vu c29yIGZvciB0aGUgcHVycG9zZSBvZiBkaXNjdXNzaW5nIGFuZCBpbXByb3ZpbmcgdGhlIFdvcmss IGJ1dAorLSAgIGV4Y2x1ZGluZyBjb21tdW5pY2F0aW9uIHRoYXQgaXMgY29uc3BpY3VvdXNseSBt YXJrZWQgb3Igb3RoZXJ3aXNlCistICAgZGVzaWduYXRlZCBpbiB3cml0aW5nIGJ5IHRoZSBjb3B5 cmlnaHQgb3duZXIgYXMgIk5vdCBhIENvbnRyaWJ1dGlvbi4iCistCistICAgIkNvbnRyaWJ1dG9y IiBzaGFsbCBtZWFuIExpY2Vuc29yIGFuZCBhbnkgaW5kaXZpZHVhbCBvciBMZWdhbCBFbnRpdHkK Ky0gICBvbiBiZWhhbGYgb2Ygd2hvbSBhIENvbnRyaWJ1dGlvbiBoYXMgYmVlbiByZWNlaXZlZCBi eSBMaWNlbnNvciBhbmQKKy0gICBzdWJzZXF1ZW50bHkgaW5jb3Jwb3JhdGVkIHdpdGhpbiB0aGUg V29yay4KKy0KKy0yLiBHcmFudCBvZiBDb3B5cmlnaHQgTGljZW5zZS4gU3ViamVjdCB0byB0aGUg dGVybXMgYW5kIGNvbmRpdGlvbnMgb2YKKy0gICB0aGlzIExpY2Vuc2UsIGVhY2ggQ29udHJpYnV0 b3IgaGVyZWJ5IGdyYW50cyB0byBZb3UgYSBwZXJwZXR1YWwsCistICAgd29ybGR3aWRlLCBub24t ZXhjbHVzaXZlLCBuby1jaGFyZ2UsIHJveWFsdHktZnJlZSwgaXJyZXZvY2FibGUKKy0gICBjb3B5 cmlnaHQgbGljZW5zZSB0byByZXByb2R1Y2UsIHByZXBhcmUgRGVyaXZhdGl2ZSBXb3JrcyBvZiwK Ky0gICBwdWJsaWNseSBkaXNwbGF5LCBwdWJsaWNseSBwZXJmb3JtLCBzdWJsaWNlbnNlLCBhbmQg ZGlzdHJpYnV0ZSB0aGUKKy0gICBXb3JrIGFuZCBzdWNoIERlcml2YXRpdmUgV29ya3MgaW4gU291 cmNlIG9yIE9iamVjdCBmb3JtLgorLQorLTMuIEdyYW50IG9mIFBhdGVudCBMaWNlbnNlLiBTdWJq ZWN0IHRvIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZgorLSAgIHRoaXMgTGljZW5zZSwgZWFj aCBDb250cmlidXRvciBoZXJlYnkgZ3JhbnRzIHRvIFlvdSBhIHBlcnBldHVhbCwKKy0gICB3b3Js ZHdpZGUsIG5vbi1leGNsdXNpdmUsIG5vLWNoYXJnZSwgcm95YWx0eS1mcmVlLCBpcnJldm9jYWJs ZQorLSAgIChleGNlcHQgYXMgc3RhdGVkIGluIHRoaXMgc2VjdGlvbikgcGF0ZW50IGxpY2Vuc2Ug dG8gbWFrZSwgaGF2ZSBtYWRlLAorLSAgIHVzZSwgb2ZmZXIgdG8gc2VsbCwgc2VsbCwgaW1wb3J0 LCBhbmQgb3RoZXJ3aXNlIHRyYW5zZmVyIHRoZSBXb3JrLAorLSAgIHdoZXJlIHN1Y2ggbGljZW5z ZSBhcHBsaWVzIG9ubHkgdG8gdGhvc2UgcGF0ZW50IGNsYWltcyBsaWNlbnNhYmxlCistICAgYnkg c3VjaCBDb250cmlidXRvciB0aGF0IGFyZSBuZWNlc3NhcmlseSBpbmZyaW5nZWQgYnkgdGhlaXIK Ky0gICBDb250cmlidXRpb24ocykgYWxvbmUgb3IgYnkgY29tYmluYXRpb24gb2YgdGhlaXIgQ29u dHJpYnV0aW9uKHMpCistICAgd2l0aCB0aGUgV29yayB0byB3aGljaCBzdWNoIENvbnRyaWJ1dGlv bihzKSB3YXMgc3VibWl0dGVkLiBJZiBZb3UKKy0gICBpbnN0aXR1dGUgcGF0ZW50IGxpdGlnYXRp b24gYWdhaW5zdCBhbnkgZW50aXR5IChpbmNsdWRpbmcgYQorLSAgIGNyb3NzLWNsYWltIG9yIGNv dW50ZXJjbGFpbSBpbiBhIGxhd3N1aXQpIGFsbGVnaW5nIHRoYXQgdGhlIFdvcmsKKy0gICBvciBh IENvbnRyaWJ1dGlvbiBpbmNvcnBvcmF0ZWQgd2l0aGluIHRoZSBXb3JrIGNvbnN0aXR1dGVzIGRp cmVjdAorLSAgIG9yIGNvbnRyaWJ1dG9yeSBwYXRlbnQgaW5mcmluZ2VtZW50LCB0aGVuIGFueSBw YXRlbnQgbGljZW5zZXMKKy0gICBncmFudGVkIHRvIFlvdSB1bmRlciB0aGlzIExpY2Vuc2UgZm9y IHRoYXQgV29yayBzaGFsbCB0ZXJtaW5hdGUKKy0gICBhcyBvZiB0aGUgZGF0ZSBzdWNoIGxpdGln YXRpb24gaXMgZmlsZWQuCistCistNC4gUmVkaXN0cmlidXRpb24uIFlvdSBtYXkgcmVwcm9kdWNl IGFuZCBkaXN0cmlidXRlIGNvcGllcyBvZiB0aGUKKy0gICBXb3JrIG9yIERlcml2YXRpdmUgV29y a3MgdGhlcmVvZiBpbiBhbnkgbWVkaXVtLCB3aXRoIG9yIHdpdGhvdXQKKy0gICBtb2RpZmljYXRp b25zLCBhbmQgaW4gU291cmNlIG9yIE9iamVjdCBmb3JtLCBwcm92aWRlZCB0aGF0IFlvdQorLSAg IG1lZXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorLQorLSAgIChhKSBZb3UgbXVzdCBnaXZl IGFueSBvdGhlciByZWNpcGllbnRzIG9mIHRoZSBXb3JrIG9yCistICAgICAgIERlcml2YXRpdmUg V29ya3MgYSBjb3B5IG9mIHRoaXMgTGljZW5zZTsgYW5kCistCistICAgKGIpIFlvdSBtdXN0IGNh dXNlIGFueSBtb2RpZmllZCBmaWxlcyB0byBjYXJyeSBwcm9taW5lbnQgbm90aWNlcworLSAgICAg ICBzdGF0aW5nIHRoYXQgWW91IGNoYW5nZWQgdGhlIGZpbGVzOyBhbmQKKy0KKy0gICAoYykgWW91 IG11c3QgcmV0YWluLCBpbiB0aGUgU291cmNlIGZvcm0gb2YgYW55IERlcml2YXRpdmUgV29ya3MK Ky0gICAgICAgdGhhdCBZb3UgZGlzdHJpYnV0ZSwgYWxsIGNvcHlyaWdodCwgcGF0ZW50LCB0cmFk ZW1hcmssIGFuZAorLSAgICAgICBhdHRyaWJ1dGlvbiBub3RpY2VzIGZyb20gdGhlIFNvdXJjZSBm b3JtIG9mIHRoZSBXb3JrLAorLSAgICAgICBleGNsdWRpbmcgdGhvc2Ugbm90aWNlcyB0aGF0IGRv IG5vdCBwZXJ0YWluIHRvIGFueSBwYXJ0IG9mCistICAgICAgIHRoZSBEZXJpdmF0aXZlIFdvcmtz OyBhbmQKKy0KKy0gICAoZCkgSWYgdGhlIFdvcmsgaW5jbHVkZXMgYSAiTk9USUNFIiB0ZXh0IGZp bGUgYXMgcGFydCBvZiBpdHMKKy0gICAgICAgZGlzdHJpYnV0aW9uLCB0aGVuIGFueSBEZXJpdmF0 aXZlIFdvcmtzIHRoYXQgWW91IGRpc3RyaWJ1dGUgbXVzdAorLSAgICAgICBpbmNsdWRlIGEgcmVh ZGFibGUgY29weSBvZiB0aGUgYXR0cmlidXRpb24gbm90aWNlcyBjb250YWluZWQKKy0gICAgICAg d2l0aGluIHN1Y2ggTk9USUNFIGZpbGUsIGV4Y2x1ZGluZyB0aG9zZSBub3RpY2VzIHRoYXQgZG8g bm90CistICAgICAgIHBlcnRhaW4gdG8gYW55IHBhcnQgb2YgdGhlIERlcml2YXRpdmUgV29ya3Ms IGluIGF0IGxlYXN0IG9uZQorLSAgICAgICBvZiB0aGUgZm9sbG93aW5nIHBsYWNlczogd2l0aGlu IGEgTk9USUNFIHRleHQgZmlsZSBkaXN0cmlidXRlZAorLSAgICAgICBhcyBwYXJ0IG9mIHRoZSBE ZXJpdmF0aXZlIFdvcmtzOyB3aXRoaW4gdGhlIFNvdXJjZSBmb3JtIG9yCistICAgICAgIGRvY3Vt ZW50YXRpb24sIGlmIHByb3ZpZGVkIGFsb25nIHdpdGggdGhlIERlcml2YXRpdmUgV29ya3M7IG9y LAorLSAgICAgICB3aXRoaW4gYSBkaXNwbGF5IGdlbmVyYXRlZCBieSB0aGUgRGVyaXZhdGl2ZSBX b3JrcywgaWYgYW5kCistICAgICAgIHdoZXJldmVyIHN1Y2ggdGhpcmQtcGFydHkgbm90aWNlcyBu b3JtYWxseSBhcHBlYXIuIFRoZSBjb250ZW50cworLSAgICAgICBvZiB0aGUgTk9USUNFIGZpbGUg YXJlIGZvciBpbmZvcm1hdGlvbmFsIHB1cnBvc2VzIG9ubHkgYW5kCistICAgICAgIGRvIG5vdCBt b2RpZnkgdGhlIExpY2Vuc2UuIFlvdSBtYXkgYWRkIFlvdXIgb3duIGF0dHJpYnV0aW9uCistICAg ICAgIG5vdGljZXMgd2l0aGluIERlcml2YXRpdmUgV29ya3MgdGhhdCBZb3UgZGlzdHJpYnV0ZSwg YWxvbmdzaWRlCistICAgICAgIG9yIGFzIGFuIGFkZGVuZHVtIHRvIHRoZSBOT1RJQ0UgdGV4dCBm cm9tIHRoZSBXb3JrLCBwcm92aWRlZAorLSAgICAgICB0aGF0IHN1Y2ggYWRkaXRpb25hbCBhdHRy aWJ1dGlvbiBub3RpY2VzIGNhbm5vdCBiZSBjb25zdHJ1ZWQKKy0gICAgICAgYXMgbW9kaWZ5aW5n IHRoZSBMaWNlbnNlLgorLQorLSAgIFlvdSBtYXkgYWRkIFlvdXIgb3duIGNvcHlyaWdodCBzdGF0 ZW1lbnQgdG8gWW91ciBtb2RpZmljYXRpb25zIGFuZAorLSAgIG1heSBwcm92aWRlIGFkZGl0aW9u YWwgb3IgZGlmZmVyZW50IGxpY2Vuc2UgdGVybXMgYW5kIGNvbmRpdGlvbnMKKy0gICBmb3IgdXNl LCByZXByb2R1Y3Rpb24sIG9yIGRpc3RyaWJ1dGlvbiBvZiBZb3VyIG1vZGlmaWNhdGlvbnMsIG9y CistICAgZm9yIGFueSBzdWNoIERlcml2YXRpdmUgV29ya3MgYXMgYSB3aG9sZSwgcHJvdmlkZWQg WW91ciB1c2UsCistICAgcmVwcm9kdWN0aW9uLCBhbmQgZGlzdHJpYnV0aW9uIG9mIHRoZSBXb3Jr IG90aGVyd2lzZSBjb21wbGllcyB3aXRoCistICAgdGhlIGNvbmRpdGlvbnMgc3RhdGVkIGluIHRo aXMgTGljZW5zZS4KKy0KKy01LiBTdWJtaXNzaW9uIG9mIENvbnRyaWJ1dGlvbnMuIFVubGVzcyBZ b3UgZXhwbGljaXRseSBzdGF0ZSBvdGhlcndpc2UsCistICAgYW55IENvbnRyaWJ1dGlvbiBpbnRl bnRpb25hbGx5IHN1Ym1pdHRlZCBmb3IgaW5jbHVzaW9uIGluIHRoZSBXb3JrCistICAgYnkgWW91 IHRvIHRoZSBMaWNlbnNvciBzaGFsbCBiZSB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMg b2YKKy0gICB0aGlzIExpY2Vuc2UsIHdpdGhvdXQgYW55IGFkZGl0aW9uYWwgdGVybXMgb3IgY29u ZGl0aW9ucy4KKy0gICBOb3R3aXRoc3RhbmRpbmcgdGhlIGFib3ZlLCBub3RoaW5nIGhlcmVpbiBz aGFsbCBzdXBlcnNlZGUgb3IgbW9kaWZ5CistICAgdGhlIHRlcm1zIG9mIGFueSBzZXBhcmF0ZSBs aWNlbnNlIGFncmVlbWVudCB5b3UgbWF5IGhhdmUgZXhlY3V0ZWQKKy0gICB3aXRoIExpY2Vuc29y IHJlZ2FyZGluZyBzdWNoIENvbnRyaWJ1dGlvbnMuCistCistNi4gVHJhZGVtYXJrcy4gVGhpcyBM aWNlbnNlIGRvZXMgbm90IGdyYW50IHBlcm1pc3Npb24gdG8gdXNlIHRoZSB0cmFkZQorLSAgIG5h bWVzLCB0cmFkZW1hcmtzLCBzZXJ2aWNlIG1hcmtzLCBvciBwcm9kdWN0IG5hbWVzIG9mIHRoZSBM aWNlbnNvciwKKy0gICBleGNlcHQgYXMgcmVxdWlyZWQgZm9yIHJlYXNvbmFibGUgYW5kIGN1c3Rv bWFyeSB1c2UgaW4gZGVzY3JpYmluZyB0aGUKKy0gICBvcmlnaW4gb2YgdGhlIFdvcmsgYW5kIHJl cHJvZHVjaW5nIHRoZSBjb250ZW50IG9mIHRoZSBOT1RJQ0UgZmlsZS4KKy0KKy03LiBEaXNjbGFp bWVyIG9mIFdhcnJhbnR5LiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IKKy0g ICBhZ3JlZWQgdG8gaW4gd3JpdGluZywgTGljZW5zb3IgcHJvdmlkZXMgdGhlIFdvcmsgKGFuZCBl YWNoCistICAgQ29udHJpYnV0b3IgcHJvdmlkZXMgaXRzIENvbnRyaWJ1dGlvbnMpIG9uIGFuICJB UyBJUyIgQkFTSVMsCistICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5Z IEtJTkQsIGVpdGhlciBleHByZXNzIG9yCistICAgaW1wbGllZCwgaW5jbHVkaW5nLCB3aXRob3V0 IGxpbWl0YXRpb24sIGFueSB3YXJyYW50aWVzIG9yIGNvbmRpdGlvbnMKKy0gICBvZiBUSVRMRSwg Tk9OLUlORlJJTkdFTUVOVCwgTUVSQ0hBTlRBQklMSVRZLCBvciBGSVRORVNTIEZPUiBBCistICAg UEFSVElDVUxBUiBQVVJQT1NFLiBZb3UgYXJlIHNvbGVseSByZXNwb25zaWJsZSBmb3IgZGV0ZXJt aW5pbmcgdGhlCistICAgYXBwcm9wcmlhdGVuZXNzIG9mIHVzaW5nIG9yIHJlZGlzdHJpYnV0aW5n IHRoZSBXb3JrIGFuZCBhc3N1bWUgYW55CistICAgcmlza3MgYXNzb2NpYXRlZCB3aXRoIFlvdXIg ZXhlcmNpc2Ugb2YgcGVybWlzc2lvbnMgdW5kZXIgdGhpcyBMaWNlbnNlLgorLQorLTguIExpbWl0 YXRpb24gb2YgTGlhYmlsaXR5LiBJbiBubyBldmVudCBhbmQgdW5kZXIgbm8gbGVnYWwgdGhlb3J5 LAorLSAgIHdoZXRoZXIgaW4gdG9ydCAoaW5jbHVkaW5nIG5lZ2xpZ2VuY2UpLCBjb250cmFjdCwg b3Igb3RoZXJ3aXNlLAorLSAgIHVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyAoc3Vj aCBhcyBkZWxpYmVyYXRlIGFuZCBncm9zc2x5CistICAgbmVnbGlnZW50IGFjdHMpIG9yIGFncmVl ZCB0byBpbiB3cml0aW5nLCBzaGFsbCBhbnkgQ29udHJpYnV0b3IgYmUKKy0gICBsaWFibGUgdG8g WW91IGZvciBkYW1hZ2VzLCBpbmNsdWRpbmcgYW55IGRpcmVjdCwgaW5kaXJlY3QsIHNwZWNpYWws CistICAgaW5jaWRlbnRhbCwgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9mIGFueSBjaGFyYWN0 ZXIgYXJpc2luZyBhcyBhCistICAgcmVzdWx0IG9mIHRoaXMgTGljZW5zZSBvciBvdXQgb2YgdGhl IHVzZSBvciBpbmFiaWxpdHkgdG8gdXNlIHRoZQorLSAgIFdvcmsgKGluY2x1ZGluZyBidXQgbm90 IGxpbWl0ZWQgdG8gZGFtYWdlcyBmb3IgbG9zcyBvZiBnb29kd2lsbCwKKy0gICB3b3JrIHN0b3Bw YWdlLCBjb21wdXRlciBmYWlsdXJlIG9yIG1hbGZ1bmN0aW9uLCBvciBhbnkgYW5kIGFsbAorLSAg IG90aGVyIGNvbW1lcmNpYWwgZGFtYWdlcyBvciBsb3NzZXMpLCBldmVuIGlmIHN1Y2ggQ29udHJp YnV0b3IKKy0gICBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiBzdWNoIGRh bWFnZXMuCistCistOS4gQWNjZXB0aW5nIFdhcnJhbnR5IG9yIEFkZGl0aW9uYWwgTGlhYmlsaXR5 LiBXaGlsZSByZWRpc3RyaWJ1dGluZworLSAgIHRoZSBXb3JrIG9yIERlcml2YXRpdmUgV29ya3Mg dGhlcmVvZiwgWW91IG1heSBjaG9vc2UgdG8gb2ZmZXIsCistICAgYW5kIGNoYXJnZSBhIGZlZSBm b3IsIGFjY2VwdGFuY2Ugb2Ygc3VwcG9ydCwgd2FycmFudHksIGluZGVtbml0eSwKKy0gICBvciBv dGhlciBsaWFiaWxpdHkgb2JsaWdhdGlvbnMgYW5kL29yIHJpZ2h0cyBjb25zaXN0ZW50IHdpdGgg dGhpcworLSAgIExpY2Vuc2UuIEhvd2V2ZXIsIGluIGFjY2VwdGluZyBzdWNoIG9ibGlnYXRpb25z LCBZb3UgbWF5IGFjdCBvbmx5CistICAgb24gWW91ciBvd24gYmVoYWxmIGFuZCBvbiBZb3VyIHNv bGUgcmVzcG9uc2liaWxpdHksIG5vdCBvbiBiZWhhbGYKKy0gICBvZiBhbnkgb3RoZXIgQ29udHJp YnV0b3IsIGFuZCBvbmx5IGlmIFlvdSBhZ3JlZSB0byBpbmRlbW5pZnksCistICAgZGVmZW5kLCBh bmQgaG9sZCBlYWNoIENvbnRyaWJ1dG9yIGhhcm1sZXNzIGZvciBhbnkgbGlhYmlsaXR5CistICAg aW5jdXJyZWQgYnksIG9yIGNsYWltcyBhc3NlcnRlZCBhZ2FpbnN0LCBzdWNoIENvbnRyaWJ1dG9y IGJ5IHJlYXNvbgorLSAgIG9mIHlvdXIgYWNjZXB0aW5nIGFueSBzdWNoIHdhcnJhbnR5IG9yIGFk ZGl0aW9uYWwgbGlhYmlsaXR5LgorLQorLUVORCBPRiBURVJNUyBBTkQgQ09ORElUSU9OUworLQor LUFQUEVORElYOiBIb3cgdG8gYXBwbHkgdGhlIEFwYWNoZSBMaWNlbnNlIHRvIHlvdXIgd29yay4K Ky0KKy0gICBUbyBhcHBseSB0aGUgQXBhY2hlIExpY2Vuc2UgdG8geW91ciB3b3JrLCBhdHRhY2gg dGhlIGZvbGxvd2luZworLSAgIGJvaWxlcnBsYXRlIG5vdGljZSwgd2l0aCB0aGUgZmllbGRzIGVu Y2xvc2VkIGJ5IGJyYWNrZXRzICJbXSIKKy0gICByZXBsYWNlZCB3aXRoIHlvdXIgb3duIGlkZW50 aWZ5aW5nIGluZm9ybWF0aW9uLiAoRG9uJ3QgaW5jbHVkZQorLSAgIHRoZSBicmFja2V0cyEpICBU aGUgdGV4dCBzaG91bGQgYmUgZW5jbG9zZWQgaW4gdGhlIGFwcHJvcHJpYXRlCistICAgY29tbWVu dCBzeW50YXggZm9yIHRoZSBmaWxlIGZvcm1hdC4gV2UgYWxzbyByZWNvbW1lbmQgdGhhdCBhCist ICAgZmlsZSBvciBjbGFzcyBuYW1lIGFuZCBkZXNjcmlwdGlvbiBvZiBwdXJwb3NlIGJlIGluY2x1 ZGVkIG9uIHRoZQorLSAgIHNhbWUgInByaW50ZWQgcGFnZSIgYXMgdGhlIGNvcHlyaWdodCBub3Rp Y2UgZm9yIGVhc2llcgorLSAgIGlkZW50aWZpY2F0aW9uIHdpdGhpbiB0aGlyZC1wYXJ0eSBhcmNo aXZlcy4KKy0KKy1Db3B5cmlnaHQgW3l5eXldIFtuYW1lIG9mIGNvcHlyaWdodCBvd25lcl0KKy0K Ky1MaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxp Y2Vuc2UiKTsKKy15b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNl IHdpdGggdGhlIExpY2Vuc2UuCistWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNl IGF0CistCistCWh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorLQor LVVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGlu Zywgc29mdHdhcmUKKy1kaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRl ZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorLVdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05T IE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorLVNlZSB0aGUgTGljZW5z ZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKy1s aW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9y dXN0L3BhY2tlZF9zaW1kL0xJQ0VOU0UtTUlUIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2lt ZC9MSUNFTlNFLU1JVAorZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0 eS9ydXN0L3BhY2tlZF9zaW1kL0xJQ0VOU0UtTUlUCisrKysgL2Rldi9udWxsCitAQCAtMSwyNSAr MCwwIEBACistQ29weXJpZ2h0IChjKSAyMDE0IFRoZSBSdXN0IFByb2plY3QgRGV2ZWxvcGVycwor LQorLVBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkK Ky1wZXJzb24gb2J0YWluaW5nIGEgY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVk CistZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLCB0byBkZWFsIGluIHRoZQor LVNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0CistbGltaXRh dGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwKKy1wdWJsaXNoLCBk aXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YKKy10aGUgU29mdHdh cmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZQorLWlzIGZ1cm5p c2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nCistY29uZGl0aW9uczoKKy0K Ky1UaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZQor LXNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMK Ky1vZiB0aGUgU29mdHdhcmUuCistCistVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIs IFdJVEhPVVQgV0FSUkFOVFkgT0YKKy1BTlkgS0lORCwgRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNM VURJTkcgQlVUIE5PVCBMSU1JVEVECistVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM SVRZLCBGSVRORVNTIEZPUiBBCistUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1F TlQuIElOIE5PIEVWRU5UCistU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMg QkUgTElBQkxFIEZPUiBBTlkKKy1DTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdI RVRIRVIgSU4gQU4gQUNUSU9OCistT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklT SU5HIEZST00sIE9VVCBPRiBPUgorLUlOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1Ig VEhFIFVTRSBPUiBPVEhFUgorLURFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KK2RpZmYgLS1naXQg YS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL1JFQURNRS5tZCBiL3RoaXJkX3BhcnR5L3J1 c3QvcGFja2VkX3NpbWQvUkVBRE1FLm1kCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBh L3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvUkVBRE1FLm1kCisrKysgL2Rldi9udWxsCitA QCAtMSwxNDQgKzAsMCBAQAorLSMgYFNpbWQ8W1Q7IE5dPmAKKy0KKy0jIyBJbXBsZW1lbnRhdGlv biBvZiBbUnVzdCBSRkMgIzIzNjY6IGBzdGQ6OnNpbWRgXVtyZmMyMzY2XQorLQorLVshW0xhdGVz dCBWZXJzaW9uXV1bY3JhdGVzLmlvXSBbIVtkb2NzXV1bbWFzdGVyX2RvY3NdCistCistKipXQVJO SU5HKio6IHRoaXMgY3JhdGUgb25seSBzdXBwb3J0cyB0aGUgbW9zdCByZWNlbnQgbmlnaHRseSBS dXN0IHRvb2xjaGFpbgorLWFuZCB3aWxsIGJlIHN1cGVyc2VkZWQgYnkgW2AjIVtmZWF0dXJlKHBv cnRhYmxlX3NpbWQpXWBdKGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvcG9ydGFibGUtc2lt ZCkuCistCistIyMgRG9jdW1lbnRhdGlvbgorLQorLSogW0FQSSBkb2NzIChgbWFzdGVyYCBicmFu Y2gpXVttYXN0ZXJfZG9jc10KKy0qIFtQZXJmb3JtYW5jZSBndWlkZV1bcGVyZl9ndWlkZV0KKy0q IFtBUEkgZG9jcyAoYGRvY3MucnNgKV1bZG9jcy5yc10KKy0qIFtSRkMyMzY2IGBzdGQ6OnNpbWRg XVtyZmMyMzY2XTogLSBjb250YWlucyBtb3RpdmF0aW9uLCBkZXNpZ24gcmF0aW9uYWxlLAorLSAg ZGlzY3Vzc2lvbiwgZXRjLgorLQorLSMjIEV4YW1wbGVzCistCistTW9zdCBvZiB0aGUgZXhhbXBs ZXMgY29tZSB3aXRoIGJvdGggYSBzY2FsYXIgYW5kIGEgdmVjdG9yaXplZCBpbXBsZW1lbnRhdGlv bi4KKy0KKy0qIFtgYW9iZW5jaGBdKGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmctbnVyc2Vy eS9wYWNrZWRfc2ltZC90cmVlL21hc3Rlci9leGFtcGxlcy9hb2JlbmNoKQorLSogW2BmYW5ua3Vj aF9yZWR1eGBdKGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmctbnVyc2VyeS9wYWNrZWRfc2lt ZC90cmVlL21hc3Rlci9leGFtcGxlcy9mYW5ua3VjaF9yZWR1eCkKKy0qIFtgbWF0cml4IGludmVy c2VgXShodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nLW51cnNlcnkvcGFja2VkX3NpbWQvdHJl ZS9tYXN0ZXIvZXhhbXBsZXMvbWF0cml4X2ludmVyc2UpCistKiBbYG1hbmRlbGJyb3RgXShodHRw czovL2dpdGh1Yi5jb20vcnVzdC1sYW5nLW51cnNlcnkvcGFja2VkX3NpbWQvdHJlZS9tYXN0ZXIv ZXhhbXBsZXMvbWFuZGVsYnJvdCkKKy0qIFtgbi1ib2R5YF0oaHR0cHM6Ly9naXRodWIuY29tL3J1 c3QtbGFuZy1udXJzZXJ5L3BhY2tlZF9zaW1kL3RyZWUvbWFzdGVyL2V4YW1wbGVzL25ib2R5KQor LSogW2BvcHRpb25zX3ByaWNpbmdgXShodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nLW51cnNl cnkvcGFja2VkX3NpbWQvdHJlZS9tYXN0ZXIvZXhhbXBsZXMvb3B0aW9uc19wcmljaW5nKQorLSog W2BzcGVjdHJhbF9ub3JtYF0oaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy1udXJzZXJ5L3Bh Y2tlZF9zaW1kL3RyZWUvbWFzdGVyL2V4YW1wbGVzL3NwZWN0cmFsX25vcm0pCistKiBbYHRyaWFu Z2xlIHRyYW5zZm9ybWBdKGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmctbnVyc2VyeS9wYWNr ZWRfc2ltZC90cmVlL21hc3Rlci9leGFtcGxlcy90cmlhbmdsZV94Zm9ybSkKKy0qIFtgc3RlbmNp bGBdKGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmctbnVyc2VyeS9wYWNrZWRfc2ltZC90cmVl L21hc3Rlci9leGFtcGxlcy9zdGVuY2lsKQorLSogW2B2ZWN0b3IgZG90IHByb2R1Y3RgXShodHRw czovL2dpdGh1Yi5jb20vcnVzdC1sYW5nLW51cnNlcnkvcGFja2VkX3NpbWQvdHJlZS9tYXN0ZXIv ZXhhbXBsZXMvZG90X3Byb2R1Y3QpCistCistIyMgQ2FyZ28gZmVhdHVyZXMKKy0KKy0qIGBpbnRv X2JpdHNgIChkZWZhdWx0OiBkaXNhYmxlZCk6IGVuYWJsZXMgYEZyb21CaXRzYC9gSW50b0JpdHNg IHRyYWl0CistICBpbXBsZW1lbnRhdGlvbnMgZm9yIHRoZSB2ZWN0b3IgdHlwZXMuIFRoZXNlIGFs bG93IHJlaW50ZXJwcmV0aW5nIHRoZSBiaXRzIG9mIGEKKy0gIHZlY3RvciB0eXBlIGFzIHRob3Nl IG9mIGFub3RoZXIgdmVjdG9yIHR5cGUgc2FmZWx5IGJ5IGp1c3QgdXNpbmcgdGhlCistICBgLmlu dG9fYml0cygpYCBtZXRob2QuCistCistIyMgUGVyZm9ybWFuY2UKKy0KKy1UaGUgZm9sbG93aW5n IFtJU1BDXSBleGFtcGxlcyBhcmUgYWxzbyBwYXJ0IG9mIGBwYWNrZWRfc2ltZGAncworLVtgZXhh bXBsZXMvYF0oaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy1udXJzZXJ5L3BhY2tlZF9zaW1k L3RyZWUvbWFzdGVyL2V4YW1wbGVzLykKKy1kaXJlY3RvcnksIHdoZXJlIGBwYWNrZWRfc2ltZGAr W2ByYXlvbmBdW3JheW9uXSBhcmUgdXNlZCB0byBlbXVsYXRlIFtJU1BDXSdzCistU2luZ2xlLVBy b2dyYW0tTXVsdGlwbGUtRGF0YSAoU1BNRCkgcHJvZ3JhbW1pbmcgbW9kZWwuIFRoZSBwZXJmb3Jt YW5jZSByZXN1bHRzCistb24gZGlmZmVyZW50IGhhcmR3YXJlIGlzIHNob3duIGluIHRoZSBgcmVh ZG1lLm1kYCBvZiBlYWNoIGV4YW1wbGUuIFRoZSBmb2xsb3dpbmcKKy10YWJsZSBzdW1tYXJpemVz IHRoZSBwZXJmb3JtYW5jZSByYW5nZXMsIHdoZXJlIGArYCBtZWFucyBzcGVlZC11cCBhbmQgYC1g Cistc2xvd2Rvd246CistCistKiBgYW9iZW5jaGA6IGBbLTEuMDJ4LCArMS41M3hdYCwKKy0qIGBz dGVuY2lsYDogYFsrMS4wNngsICsxLjcyeF1gLAorLSogYG1hbmRlbGJyb3RgOiBgWy0xLjc0eCwg KzEuMnhdYCwKKy0qIGBvcHRpb25zX3ByaWNpbmdgOgorLSAgICogYGJsYWNrX3NjaG9sZXNgOiBg KzEuMHhgCistICAgKiBgYmlub21pYWxfcHV0YDogYCsxLjR4YAorLQorLSBXaGlsZSBTUE1EIGlz IG5vdCB0aGUgaW50ZW5kZWQgdXNlIGNhc2UgZm9yIGBwYWNrZWRfc2ltZGAsIGl0IGlzIHBvc3Np YmxlIHRvCistIGNvbWJpbmUgdGhlIGxpYnJhcnkgd2l0aCBbYHJheW9uYF1bcmF5b25dIHRvIHBv b3JseSBlbXVsYXRlIFtJU1BDXSdzIFNQTUQgcHJvZ3JhbW1pbmcKKy0gbW9kZWwgaW4gUnVzdC4g V3JpdGluZyBwZXJmb3JtYW50IGNvZGUgaXMgbm90IGFzIHN0cmFpZ2h0Zm9yd2FyZCBhcyB3aXRo CistIFtJU1BDXSwgYnV0IHdpdGggc29tZSBjYXJlIChlLmcuIHNlZSB0aGUgW1BlcmZvcm1hbmNl IEd1aWRlXVtwZXJmX2d1aWRlXSkgb25lCistIGNhbiBlYXNpbHkgbWF0Y2ggYW5kIG9mdGVuIG91 dC1wZXJmb3JtIFtJU1BDXSdzICJkZWZhdWx0IHBlcmZvcm1hbmNlIi4KKy0KKy0jIyBQbGF0Zm9y bSBzdXBwb3J0CistCistVGhlIGZvbGxvd2luZyB0YWJsZSBkZXNjcmliZXMgdGhlIHN1cHBvcnRl ZCBwbGF0Zm9ybXM6IGBidWlsZGAgc2hvd3Mgd2hldGhlcgorLXRoZSBsaWJyYXJ5IGNvbXBpbGVz IHdpdGhvdXQgaXNzdWVzIGZvciBhIGdpdmVuIHRhcmdldCwgd2hpbGUgYHJ1bmAgc2hvd3MKKy13 aGV0aGVyIHRoZSB0ZXN0IHN1aXRlIHBhc3NlcyBmb3IgYSBnaXZlbiB0YXJnZXQuCistCistfCAq KkxpbnV4KiogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgKipidWlsZCoqIHwgKipydW4q KiB8CistfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0t LXwtLS0tLS0tLS18CistfCBgaTU4Ni11bmtub3duLWxpbnV4LWdudWAgICAgICAgICAgICAgIHwg 4pyTICAgICAgICAgfCDinJcgICAgICAgfAorLXwgYGk2ODYtdW5rbm93bi1saW51eC1nbnVgICAg ICAgICAgICAgICB8IOKckyAgICAgICAgIHwg4pyXICAgICAgIHwKKy18IGB4ODZfNjQtdW5rbm93 bi1saW51eC1nbnVgICAgICAgICAgICAgfCDinJMgICAgICAgICB8IOKckyAgICAgICB8CistfCBg YXJtLXVua25vd24tbGludXgtZ251ZWFiaWhmYCAgICAgICAgIHwg4pyTICAgICAgICAgfCDinJMg ICAgICAgfAorLXwgYGFybXY3LXVua25vd24tbGludXgtZ251ZWFiaWAgICAgICAgICB8IOKckyAg ICAgICAgIHwg4pyTICAgICAgIHwKKy18IGBhYXJjaDY0LXVua25vd24tbGludXgtZ251YCAgICAg ICAgICAgfCDinJMgICAgICAgICB8IOKckyAgICAgICB8CistfCBgcG93ZXJwYy11bmtub3duLWxp bnV4LWdudWAgICAgICAgICAgIHwg4pyTICAgICAgICAgfCDinJcgICAgICAgfAorLXwgYHBvd2Vy cGM2NC11bmtub3duLWxpbnV4LWdudWAgICAgICAgICB8IOKckyAgICAgICAgIHwg4pyXICAgICAg IHwKKy18IGBwb3dlcnBjNjRsZS11bmtub3duLWxpbnV4LWdudWAgICAgICAgfCDinJMgICAgICAg ICB8IOKckyAgICAgICB8CistfCBgczM5MHgtdW5rbm93bi1saW51eC1nbnVgICAgICAgICAgICAg IHwg4pyTICAgICAgICAgfCDinJcgICAgICAgfAorLXwgYHNwYXJjNjQtdW5rbm93bi1saW51eC1n bnVgICAgICAgICAgICB8IOKckyAgICAgICAgIHwg4pyXICAgICAgIHwKKy18IGB0aHVtYnY3bmVv bi11bmtub3duLWxpbnV4LWdudWVhYmloZmAgfCDinJMgICAgICAgICB8IOKckyAgICAgICB8Cist fCAqKk1hY09TWCoqICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgKipidWlsZCoqIHwgKipy dW4qKiB8CistfCBgeDg2XzY0LWFwcGxlLWRhcndpbmAgICAgICAgICAgICAgICAgIHwg4pyTICAg ICAgICAgfCDinJMgICAgICAgfAorLXwgKipBbmRyb2lkKiogICAgICAgICAgICAgICAgICAgICAg ICAgICB8ICoqYnVpbGQqKiB8ICoqcnVuKiogfAorLXwgYHg4Nl82NC1saW51eC1hbmRyb2lkYCAg ICAgICAgICAgICAgICB8IOKckyAgICAgICAgIHwg4pyTICAgICAgIHwKKy18IGBhcm12Ny1saW51 eC1hbmRyb2lkZWFiaWAgICAgICAgICAgICAgfCDinJMgICAgICAgICB8IOKclyAgICAgICB8Cist fCBgYWFyY2g2NC1saW51eC1hbmRyb2lkYCAgICAgICAgICAgICAgIHwg4pyTICAgICAgICAgfCDi nJcgICAgICAgfAorLXwgYHRodW1idjduZW9uLWxpbnV4LWFuZHJvaWRlYWJpYCAgICAgICB8IOKc kyAgICAgICAgIHwg4pyXICAgICAgIHwKKy18ICoqaU9TKiogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfCAqKmJ1aWxkKiogfCAqKnJ1bioqIHwKKy18IGB4ODZfNjQtYXBwbGUtaW9zYCAg ICAgICAgICAgICAgICAgICAgfCDinJcgICAgICAgICB8IOKclyAgICAgICB8CistfCBgYWFyY2g2 NC1hcHBsZS1pb3NgICAgICAgICAgICAgICAgICAgIHwg4pyXICAgICAgICAgfCDinJcgICAgICAg fAorLQorLQorLSMjIE1hY2hpbmUgY29kZSB2ZXJpZmljYXRpb24KKy0KKy1UaGUKKy1bYHZlcmlm eS9gXShodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nLW51cnNlcnkvcGFja2VkX3NpbWQvdHJl ZS9tYXN0ZXIvdmVyaWZ5KQorLWNyYXRlIHRlc3RzIGRpc2Fzc2VtYmxlcyB0aGUgcG9ydGFibGUg cGFja2VkIHZlY3RvciBBUElzIGF0IHJ1bi10aW1lIGFuZAorLWNvbXBhcmVzIHRoZSBnZW5lcmF0 ZWQgbWFjaGluZSBjb2RlIGFnYWluc3QgdGhlIGRlc2lyZWQgb25lIHRvIG1ha2Ugc3VyZSB0aGF0 CistdGhpcyBjcmF0ZSByZW1haW5zIGVmZmljaWVudC4KKy0KKy0jIyBMaWNlbnNlCistCistVGhp cyBwcm9qZWN0IGlzIGxpY2Vuc2VkIHVuZGVyIGVpdGhlciBvZgorLQorLSogW0FwYWNoZSBMaWNl bnNlLCBWZXJzaW9uIDIuMF0oaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0Ut Mi4wKQorLSAgKFtMSUNFTlNFLUFQQUNIRV0oTElDRU5TRS1BUEFDSEUpKQorLQorLSogW01JVCBM aWNlbnNlXShodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUKQorLSAgKFtMSUNFTlNF LU1JVF0oTElDRU5TRS1NSVQpKQorLQorLWF0IHlvdXIgb3B0aW9uLgorLQorLSMjIENvbnRyaWJ1 dGluZworLQorLVdlIHdlbGNvbWUgYWxsIHBlb3BsZSB3aG8gd2FudCB0byBjb250cmlidXRlLgor LVBsZWFzZSBzZWUgdGhlIFtjb250cmlidXRpbmcgaW5zdHJ1Y3Rpb25zXSBmb3IgbW9yZSBpbmZv cm1hdGlvbi4KKy0KKy1Db250cmlidXRpb25zIGluIGFueSBmb3JtIChpc3N1ZXMsIHB1bGwgcmVx dWVzdHMsIGV0Yy4pIHRvIHRoaXMgcHJvamVjdAorLW11c3QgYWRoZXJlIHRvIFJ1c3QncyBbQ29k ZSBvZiBDb25kdWN0XS4KKy0KKy1Vbmxlc3MgeW91IGV4cGxpY2l0bHkgc3RhdGUgb3RoZXJ3aXNl LCBhbnkgY29udHJpYnV0aW9uIGludGVudGlvbmFsbHkgc3VibWl0dGVkCistZm9yIGluY2x1c2lv biBpbiBgcGFja2VkX3NpbWRgIGJ5IHlvdSwgYXMgZGVmaW5lZCBpbiB0aGUgQXBhY2hlLTIuMCBs aWNlbnNlLCBzaGFsbCBiZQorLWR1YWwgbGljZW5zZWQgYXMgYWJvdmUsIHdpdGhvdXQgYW55IGFk ZGl0aW9uYWwgdGVybXMgb3IgY29uZGl0aW9ucy4KKy0KKy1bdHJhdmlzXTogaHR0cHM6Ly90cmF2 aXMtY2kuY29tL3J1c3QtbGFuZy9wYWNrZWRfc2ltZAorLVtUcmF2aXMtQ0kgU3RhdHVzXTogaHR0 cHM6Ly90cmF2aXMtY2kuY29tL3J1c3QtbGFuZy9wYWNrZWRfc2ltZC5zdmc/YnJhbmNoPW1hc3Rl cgorLVthcHB2ZXlvcl06IGh0dHBzOi8vY2kuYXBwdmV5b3IuY29tL3Byb2plY3QvZ256bGJnL3Bh Y2tlZC1zaW1kCistW0FwcHZleW9yIFN0YXR1c106IGh0dHBzOi8vY2kuYXBwdmV5b3IuY29tL2Fw aS9wcm9qZWN0cy9zdGF0dXMvaGQ3djlkdnI0NDJoZ2RpeD9zdmc9dHJ1ZQorLVtMYXRlc3QgVmVy c2lvbl06IGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vY3JhdGVzL3YvcGFja2VkX3NpbWQuc3ZnCist W2NyYXRlcy5pb106IGh0dHBzOi8vY3JhdGVzLmlvL2NyYXRlcy9wYWNrZWRfc2ltZAorLVtkb2Nz XTogaHR0cHM6Ly9kb2NzLnJzL3BhY2tlZF9zaW1kL2JhZGdlLnN2ZworLVtkb2NzLnJzXTogaHR0 cHM6Ly9kb2NzLnJzL3BhY2tlZF9zaW1kCistW21hc3Rlcl9kb2NzXTogaHR0cHM6Ly9ydXN0LWxh bmctbnVyc2VyeS5naXRodWIuaW8vcGFja2VkX3NpbWQvcGFja2VkX3NpbWQvCistW3BlcmZfZ3Vp ZGVdOiBodHRwczovL3J1c3QtbGFuZy1udXJzZXJ5LmdpdGh1Yi5pby9wYWNrZWRfc2ltZC9wZXJm LWd1aWRlLworLVtyZmMyMzY2XTogaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9yZmNzL3B1 bGwvMjM2NgorLVtJU1BDXTogaHR0cHM6Ly9pc3BjLmdpdGh1Yi5pby8KKy1bcmF5b25dOiBodHRw czovL2NyYXRlcy5pby9jcmF0ZXMvcmF5b24KKy1bYm9vc3RfbGljZW5zZV06IGh0dHBzOi8vd3d3 LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQKKy1bU0xFRUZdOiBodHRwczovL3NsZWVmLm9yZy8K Ky1bc2xlZWZfc3lzXTogaHR0cHM6Ly9jcmF0ZXMuaW8vY3JhdGVzL3NsZWVmLXN5cworLVtjb250 cmlidXRpbmcgaW5zdHJ1Y3Rpb25zXTogY29udHJpYnV0aW5nLm1kCistW0NvZGUgb2YgQ29uZHVj dF06IGh0dHBzOi8vd3d3LnJ1c3QtbGFuZy5vcmcvZW4tVVMvY29uZHVjdC5odG1sCitkaWZmIC0t Z2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9ib3JzLnRvbWwgYi90aGlyZF9wYXJ0 eS9ydXN0L3BhY2tlZF9zaW1kL2JvcnMudG9tbAorZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cist LS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2JvcnMudG9tbAorKysrIC9kZXYvbnVs bAorQEAgLTEsMyArMCwwIEBACistc3RhdHVzID0gWworLSAgICAiY29udGludW91cy1pbnRlZ3Jh dGlvbi90cmF2aXMtY2kvcHVzaCIKKy1dCitcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK2Rp ZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2J1aWxkLnJzIGIvdGhpcmRf cGFydHkvcnVzdC9wYWNrZWRfc2ltZC9idWlsZC5ycworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0 CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2J1aWxkLnJzCisrKysgL2Rldi9u dWxsCitAQCAtMSw2ICswLDAgQEAKKy1mbiBtYWluKCkgeworLSAgICBsZXQgdGFyZ2V0ID0gc3Rk OjplbnY6OnZhcigiVEFSR0VUIikuZXhwZWN0KCJUQVJHRVQgZW52aXJvbm1lbnQgdmFyaWFibGUg bm90IGRlZmluZWQiKTsKKy0gICAgaWYgdGFyZ2V0LmNvbnRhaW5zKCJuZW9uIikgeworLSAgICAg ICAgcHJpbnRsbiEoImNhcmdvOnJ1c3RjLWNmZz1saWJjb3JlX25lb24iKTsKKy0gICAgfQorLX0K K2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2FsbC5zaCBiL3Ro aXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvYWxsLnNoCitkZWxldGVkIGZpbGUgbW9kZSAx MDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvYWxsLnNoCisrKysg L2Rldi9udWxsCitAQCAtMSw3MSArMCwwIEBACistIyEvdXNyL2Jpbi9lbnYgYmFzaAorLSMKKy0j IFBlcmZvcm1zIGFuIG9wZXJhdGlvbiBvbiBhbGwgdGFyZ2V0cworLQorLXNldCAtZXgKKy0KKy06 ICIkezE/VGhlIGFsbC5zaCBzY3JpcHQgcmVxdWlyZXMgb25lIGFyZ3VtZW50Ln0iCistCistb3A9 JDEKKy0KKy1jYXJnb19jbGVhbigpIHsKKy0gICAgY2FyZ28gY2xlYW4KKy19CistCistY2FyZ29f Y2hlY2tfZm10KCkgeworLSAgICBjYXJnbyBmbXQgLS1hbGwgLS0gLS1jaGVjaworLX0KKy0KKy1j YXJnb19mbXQoKSB7CistICAgIGNhcmdvIGZtdCAtLWFsbAorLX0KKy0KKy1jYXJnb19jbGlwcHko KSB7CistICAgIGNhcmdvIGNsaXBweSAtLWFsbCAtLSAtRCBjbGlwcHk6OnBlcmYKKy19CistCist Q01EPSItMSIKKy0KKy1jYXNlICRvcCBpbgorLSAgICBjbGVhbiopCistICAgICAgICBDTUQ9Y2Fy Z29fY2xlYW4KKy0gICAgICAgIDs7CistICAgIGNoZWNrX2ZtdCopCistICAgICAgICBDTUQ9Y2Fy Z29fY2hlY2tfZm10CistICAgICAgICA7OworLSAgICBmbXQqKQorLSAgICAgICAgQ01EPWNhcmdv X2ZtdAorLSAgICAgICAgOzsKKy0gICAgY2xpcHB5KQorLSAgICAgICAgQ01EPWNhcmdvX2NsaXBw eQorLSAgICAgICAgOzsKKy0gICAgKikKKy0gICAgICAgIGVjaG8gIlVua25vd24gb3BlcmF0aW9u OiBcIiR7b3B9XCIiCistICAgICAgICBleGl0IDEKKy0gICAgICAgIDs7CistZXNhYworLQorLWVj aG8gIk9wZXJhdGlvbiBpczogJHtDTUR9IgorLQorLSMgT24gc3JjLworLSRDTUQKKy0KKy0jIENo ZWNrIGV4YW1wbGVzLworLWZvciBkaXIgaW4gZXhhbXBsZXMvKi8KKy1kbworLSAgICBkaXI9JHtk aXIlKi99CistICAgICgKKy0gICAgICAgIGNkICIke2RpciUqL30iCistICAgICAgICAkQ01ECist ICAgICkKKy1kb25lCistCistKAorLSAgICBjZCB2ZXJpZnkvdmVyaWZ5CistICAgICRDTUQKKy0p CistCistKAorLSAgICBjZCBtaWNyb19iZW5jaG1hcmtzCistICAgICRDTUQKKy0pCitkaWZmIC0t Z2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9hbmRyb2lkLWluc3RhbGwtbmRr LnNoIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9hbmRyb2lkLWluc3RhbGwtbmRr LnNoCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFj a2VkX3NpbWQvY2kvYW5kcm9pZC1pbnN0YWxsLW5kay5zaAorKysrIC9kZXYvbnVsbAorQEAgLTEs MjEgKzAsMCBAQAorLSMhL3Vzci9iaW4vZW52IHNoCistIyBDb3B5cmlnaHQgMjAxNiBUaGUgUnVz dCBQcm9qZWN0IERldmVsb3BlcnMuIFNlZSB0aGUgQ09QWVJJR0hUCistIyBmaWxlIGF0IHRoZSB0 b3AtbGV2ZWwgZGlyZWN0b3J5IG9mIHRoaXMgZGlzdHJpYnV0aW9uIGFuZCBhdAorLSMgaHR0cDov L3J1c3QtbGFuZy5vcmcvQ09QWVJJR0hULgorLSMKKy0jIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFj aGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgPExJQ0VOU0UtQVBBQ0hFIG9yCistIyBodHRwOi8vd3d3 LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjA+IG9yIHRoZSBNSVQgbGljZW5zZQorLSMg PExJQ0VOU0UtTUlUIG9yIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVQ+LCBhdCB5 b3VyCistIyBvcHRpb24uIFRoaXMgZmlsZSBtYXkgbm90IGJlIGNvcGllZCwgbW9kaWZpZWQsIG9y IGRpc3RyaWJ1dGVkCistIyBleGNlcHQgYWNjb3JkaW5nIHRvIHRob3NlIHRlcm1zLgorLQorLXNl dCAtZXgKKy0KKy1BTkRST0lEX05ES19VUkw9aHR0cHM6Ly9kbC5nb29nbGUuY29tL2FuZHJvaWQv cmVwb3NpdG9yeQorLUFORFJPSURfTkRLX0FSQ0hJVkU9YW5kcm9pZC1uZGstcjI1Yi1saW51eC56 aXAKKy0KKy1jdXJsIC1mTyAiJEFORFJPSURfTkRLX1VSTC8kQU5EUk9JRF9OREtfQVJDSElWRSIK Ky11bnppcCAtcSAkQU5EUk9JRF9OREtfQVJDSElWRQorLXJtICRBTkRST0lEX05ES19BUkNISVZF CistbXYgYW5kcm9pZC1uZGstKiBuZGsKKy1ybSAtcmYgYW5kcm9pZC1uZGstKgorZGlmZiAtLWdp dCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvYW5kcm9pZC1pbnN0YWxsLXNkay5z aCBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvYW5kcm9pZC1pbnN0YWxsLXNkay5z aAorZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tl ZF9zaW1kL2NpL2FuZHJvaWQtaW5zdGFsbC1zZGsuc2gKKysrKyAvZGV2L251bGwKK0BAIC0xLDYw ICswLDAgQEAKKy0jIS91c3IvYmluL2VudiBzaAorLSMgQ29weXJpZ2h0IDIwMTYgVGhlIFJ1c3Qg UHJvamVjdCBEZXZlbG9wZXJzLiBTZWUgdGhlIENPUFlSSUdIVAorLSMgZmlsZSBhdCB0aGUgdG9w LWxldmVsIGRpcmVjdG9yeSBvZiB0aGlzIGRpc3RyaWJ1dGlvbiBhbmQgYXQKKy0jIGh0dHA6Ly9y dXN0LWxhbmcub3JnL0NPUFlSSUdIVC4KKy0jCistIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hl IExpY2Vuc2UsIFZlcnNpb24gMi4wIDxMSUNFTlNFLUFQQUNIRSBvcgorLSMgaHR0cDovL3d3dy5h cGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wPiBvciB0aGUgTUlUIGxpY2Vuc2UKKy0jIDxM SUNFTlNFLU1JVCBvciBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUPiwgYXQgeW91 cgorLSMgb3B0aW9uLiBUaGlzIGZpbGUgbWF5IG5vdCBiZSBjb3BpZWQsIG1vZGlmaWVkLCBvciBk aXN0cmlidXRlZAorLSMgZXhjZXB0IGFjY29yZGluZyB0byB0aG9zZSB0ZXJtcy4KKy0KKy1zZXQg LWV4CistCistIyBQcmVwIHRoZSBTREsgYW5kIGVtdWxhdG9yCistIworLSMgTm90ZSB0aGF0IHRo ZSB1cGRhdGUgcHJvY2VzcyByZXF1aXJlcyB0aGF0IHdlIGFjY2VwdCBhIGJ1bmNoIG9mIGxpY2Vu c2VzLCBhbmQKKy0jIHdlIGNhbid0IGp1c3QgcGlwZSBgeWVzYCBpbnRvIGl0IGZvciBzb21lIHJl YXNvbiwgc28gd2UgdGFrZSB0aGUgc2FtZSBzdHJhdGVneQorLSMgbG9jYXRlZCBpbiBodHRwczov L2dpdGh1Yi5jb20vYXBwdW5pdGUvZG9ja2VyIGJ5IGp1c3Qgd3JhcHBpbmcgaXQgaW4gYSBzY3Jp cHQKKy0jIHdoaWNoIGFwcGFyZW50bHkgbWFnaWNhbGx5IGFjY2VwdHMgdGhlIGxpY2Vuc2VzLgor LQorLW1rZGlyIHNkaworLWN1cmwgLS1yZXRyeSA1IGh0dHBzOi8vZGwuZ29vZ2xlLmNvbS9hbmRy b2lkL3JlcG9zaXRvcnkvc2RrLXRvb2xzLWxpbnV4LTM4NTkzOTcuemlwIC1PCistdW56aXAgLWQg c2RrIHNkay10b29scy1saW51eC0zODU5Mzk3LnppcAorLQorLWNhc2UgIiQxIiBpbgorLSAgYXJt IHwgYXJtdjcpCistICAgIGFiaT1hcm1lYWJpLXY3YQorLSAgICA7OworLQorLSAgYWFyY2g2NCkK Ky0gICAgYWJpPWFybTY0LXY4YQorLSAgICA7OworLQorLSAgaTY4NikKKy0gICAgYWJpPXg4Ngor LSAgICA7OworLQorLSAgeDg2XzY0KQorLSAgICBhYmk9eDg2XzY0CistICAgIDs7CistCistICAq KQorLSAgICBlY2hvICJpbnZhbGlkIGFyY2g6ICQxIgorLSAgICBleGl0IDEKKy0gICAgOzsKKy1l c2FjOworLQorLSMgLS1ub19odHRwcyBhdm9pZHMKKy0gICAgICMgamF2YXgubmV0LnNzbC5TU0xI YW5kc2hha2VFeGNlcHRpb246IHN1bi5zZWN1cml0eS52YWxpZGF0b3IuVmFsaWRhdG9yRXhjZXB0 aW9uOiBObyB0cnVzdGVkIGNlcnRpZmljYXRlIGZvdW5kCisteWVzIHwgLi9zZGsvdG9vbHMvYmlu L3Nka21hbmFnZXIgLS1saWNlbnNlcyAtLW5vX2h0dHBzCisteWVzIHwgLi9zZGsvdG9vbHMvYmlu L3Nka21hbmFnZXIgLS1ub19odHRwcyBcCistICAgICAgICAiZW11bGF0b3IiIFwKKy0gICAgICAg ICJwbGF0Zm9ybS10b29scyIgXAorLSAgICAgICAgInBsYXRmb3JtczthbmRyb2lkLTI0IiBcCist ICAgICAgICAic3lzdGVtLWltYWdlczthbmRyb2lkLTI0O2RlZmF1bHQ7JGFiaSIKKy0KKy1lY2hv ICJubyIgfAorLSAgICAuL3Nkay90b29scy9iaW4vYXZkbWFuYWdlciBjcmVhdGUgYXZkIFwKKy0g ICAgICAgIC0tbmFtZSAiJHsxfSIgXAorLSAgICAgICAgLS1wYWNrYWdlICJzeXN0ZW0taW1hZ2Vz O2FuZHJvaWQtMjQ7ZGVmYXVsdDskYWJpIgorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3Qv cGFja2VkX3NpbWQvY2kvYW5kcm9pZC1zeXNpbWFnZS5zaCBiL3RoaXJkX3BhcnR5L3J1c3QvcGFj a2VkX3NpbWQvY2kvYW5kcm9pZC1zeXNpbWFnZS5zaAorZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0 CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2FuZHJvaWQtc3lzaW1hZ2Uu c2gKKysrKyAvZGV2L251bGwKK0BAIC0xLDU2ICswLDAgQEAKKy0jIS91c3IvYmluL2VudiBiYXNo CistCistIyBDb3B5cmlnaHQgMjAxNyBUaGUgUnVzdCBQcm9qZWN0IERldmVsb3BlcnMuIFNlZSB0 aGUgQ09QWVJJR0hUCistIyBmaWxlIGF0IHRoZSB0b3AtbGV2ZWwgZGlyZWN0b3J5IG9mIHRoaXMg ZGlzdHJpYnV0aW9uIGFuZCBhdAorLSMgaHR0cDovL3J1c3QtbGFuZy5vcmcvQ09QWVJJR0hULgor LSMKKy0jIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgPExJ Q0VOU0UtQVBBQ0hFIG9yCistIyBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5T RS0yLjA+IG9yIHRoZSBNSVQgbGljZW5zZQorLSMgPExJQ0VOU0UtTUlUIG9yIGh0dHA6Ly9vcGVu c291cmNlLm9yZy9saWNlbnNlcy9NSVQ+LCBhdCB5b3VyCistIyBvcHRpb24uIFRoaXMgZmlsZSBt YXkgbm90IGJlIGNvcGllZCwgbW9kaWZpZWQsIG9yIGRpc3RyaWJ1dGVkCistIyBleGNlcHQgYWNj b3JkaW5nIHRvIHRob3NlIHRlcm1zLgorLQorLXNldCAtZXgKKy0KKy1VUkw9aHR0cHM6Ly9kbC5n b29nbGUuY29tL2FuZHJvaWQvcmVwb3NpdG9yeS9zeXMtaW1nL2FuZHJvaWQKKy0KKy1tYWluKCkg eworLSAgICBsb2NhbCBhcmNoPSIkezF9IgorLSAgICBsb2NhbCBuYW1lPSIkezJ9IgorLSAgICBs b2NhbCBkZXN0PS9zeXN0ZW0KKy0gICAgbG9jYWwgdGQKKy0gICAgdGQ9IiQobWt0ZW1wIC1kKSIK Ky0KKy0gICAgYXB0LWdldCBpbnN0YWxsIC0tbm8taW5zdGFsbC1yZWNvbW1lbmRzIGUydG9vbHMK Ky0KKy0gICAgcHVzaGQgIiR7dGR9IgorLSAgICBjdXJsIC0tcmV0cnkgNSAtTyAiJHtVUkx9LyR7 bmFtZX0iCistICAgIHVuemlwIC1xICIke25hbWV9IgorLQorLSAgICBsb2NhbCBzeXN0ZW0KKy0g ICAgc3lzdGVtPSIkKGZpbmQgLiAtbmFtZSBzeXN0ZW0uaW1nKSIKKy0gICAgbWtkaXIgLXAgJHtk ZXN0fS97YmluLGxpYixsaWI2NH0KKy0KKy0gICAgIyBFeHRyYWN0IGFuZHJvaWQgbGlua2VyIGFu ZCBsaWJyYXJpZXMgdG8gL3N5c3RlbQorLSAgICAjIFRoaXMgYWxsb3dzIGFuZHJvaWQgZXhlY3V0 YWJsZXMgdG8gYmUgcnVuIGRpcmVjdGx5IChvciB3aXRoIHFlbXUpCistICAgIGlmIFsgIiR7YXJj aH0iID0gIng4Nl82NCIgXSB8fCBbICIke2FyY2h9IiA9ICJhcm02NCIgXTsgdGhlbgorLSAgICAg ICAgZTJjcCAtcCAiJHtzeXN0ZW19Oi9iaW4vbGlua2VyNjQiICIke2Rlc3R9L2Jpbi8iCistICAg ICAgICBlMmNwIC1wICIke3N5c3RlbX06L2xpYjY0L2xpYmRsLnNvIiAiJHtkZXN0fS9saWI2NC8i CistICAgICAgICBlMmNwIC1wICIke3N5c3RlbX06L2xpYjY0L2xpYmMuc28iICIke2Rlc3R9L2xp YjY0LyIKKy0gICAgICAgIGUyY3AgLXAgIiR7c3lzdGVtfTovbGliNjQvbGlibS5zbyIgIiR7ZGVz dH0vbGliNjQvIgorLSAgICBlbHNlCistICAgICAgICBlMmNwIC1wICIke3N5c3RlbX06L2Jpbi9s aW5rZXIiICIke2Rlc3R9L2Jpbi8iCistICAgICAgICBlMmNwIC1wICIke3N5c3RlbX06L2xpYi9s aWJkbC5zbyIgIiR7ZGVzdH0vbGliLyIKKy0gICAgICAgIGUyY3AgLXAgIiR7c3lzdGVtfTovbGli L2xpYmMuc28iICIke2Rlc3R9L2xpYi8iCistICAgICAgICBlMmNwIC1wICIke3N5c3RlbX06L2xp Yi9saWJtLnNvIiAiJHtkZXN0fS9saWIvIgorLSAgICBmaQorLQorLSAgICAjIGNsZWFuIHVwCist ICAgIGFwdC1nZXQgcHVyZ2UgLS1hdXRvLXJlbW92ZSAteSBlMnRvb2xzCistCistICAgIHBvcGQK Ky0KKy0gICAgcm0gLXJmICIke3RkfSIKKy19CistCistbWFpbiAiJHtAfSIKK2RpZmYgLS1naXQg YS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2JlbmNobWFyay5zaCBiL3RoaXJkX3Bh cnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvYmVuY2htYXJrLnNoCitkZWxldGVkIGZpbGUgbW9kZSAx MDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvYmVuY2htYXJrLnNo CisrKysgL2Rldi9udWxsCitAQCAtMSwzMiArMCwwIEBACistIyEvdXNyL2Jpbi9lbnYgYmFzaAor LSMKKy0jIFJ1bnMgYWxsIGJlbmNobWFya3MuIENvbnRyb2xsZWQgYnkgdGhlIGZvbGxvd2luZyBl bnZpcm9ubWVudCB2YXJpYWJsZXM6CistIworLSMgRkVBVFVSRVM9e30gLSBjYXJnbyBmZWF0dXJl cyB0byBwYXNzIHRvIGFsbCBiZW5jaG1hcmtzIChlLmcuIGNvcmVfYXJjaCxzbGVlZi1zeXMsaXNw YykKKy0jIE5PUlVOPXsxfSAgIC0gb25seSBidWlsZHMgdGhlIGJlbmNobWFya3MKKy0KKy1zZXQg LWV4CistCistaWYgW1sgJHtOT1JVTn0gIT0gMSBdXTsgdGhlbgorLSAgICAjIE1vc3QgYmVuY2ht YXJrcyByZXF1aXJlIGh5cGVyZmluZTsgcmVxdWlyZSBpdCB1cGZyb250LgorLSAgICBoYXNoIGh5 cGVyZmluZSAyPi9kZXYvbnVsbCB8fCB7IGVjaG8gPiYyICJoeXBlcmZpbmUgaXMgbm90IGluIFBB VEguIjsgZXhpdCAxOyB9CistZmkKKy0KKy0KKy0jIElmIHRoZSBpc3BjIGJlbmNobWFyayBmZWF0 dXJlIGlzIGVuYWJsZWQsIGlzcGMgbXVzdCBiZSBpbiB0aGUgcGF0aCBvZiB0aGUKKy0jIGJlbmNo bWFya3MuIAorLWlmIGVjaG8gIiRGRUFUVVJFUyIgfCBncmVwIC1xICJpc3BjIjsgdGhlbgorLSAg ICBoYXNoIGlzcGMgMj4vZGV2L251bGwgfHwgeyBlY2hvID4mMiAiaXNwYyBpcyBub3QgaW4gUEFU SC4iOyBleGl0IDE7IH0KKy1maQorLQorLSMgQW4gZXhhbXBsZSB3aXRoIGEgYmVuY2htYXJrLnNo IGlzIGEgYmVuY2htYXJrOgorLWZvciBkaXIgaW4gZXhhbXBsZXMvKi8KKy1kbworLSAgICBkaXI9 JHtkaXIlKi99CistICAgIGNkICR7ZGlyJSovfQorLSAgICBpZiBbIC1mICJiZW5jaG1hcmsuc2gi IF07IHRoZW4KKy0gICAgICAgIC4vYmVuY2htYXJrLnNoCistICAgIGZpCistICAgIGNkIC0KKy1k b25lCistCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kZXBs b3lfYW5kX3J1bl9vbl9pb3Nfc2ltdWxhdG9yLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRf c2ltZC9jaS9kZXBsb3lfYW5kX3J1bl9vbl9pb3Nfc2ltdWxhdG9yLnJzCitkZWxldGVkIGZpbGUg bW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZGVwbG95 X2FuZF9ydW5fb25faW9zX3NpbXVsYXRvci5ycworKysrIC9kZXYvbnVsbAorQEAgLTEsMTc2ICsw LDAgQEAKKy0vLyBDb3B5cmlnaHQgMjAxNyBUaGUgUnVzdCBQcm9qZWN0IERldmVsb3BlcnMuIFNl ZSB0aGUgQ09QWVJJR0hUCistLy8gZmlsZSBhdCB0aGUgdG9wLWxldmVsIGRpcmVjdG9yeSBvZiB0 aGlzIGRpc3RyaWJ1dGlvbiBhbmQgYXQKKy0vLyBodHRwOi8vcnVzdC1sYW5nLm9yZy9DT1BZUklH SFQuCistLy8KKy0vLyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24g Mi4wIDxMSUNFTlNFLUFQQUNIRSBvcgorLS8vIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNl cy9MSUNFTlNFLTIuMD4gb3IgdGhlIE1JVCBsaWNlbnNlCistLy8gPExJQ0VOU0UtTUlUIG9yIGh0 dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVQ+LCBhdCB5b3VyCistLy8gb3B0aW9uLiBU aGlzIGZpbGUgbWF5IG5vdCBiZSBjb3BpZWQsIG1vZGlmaWVkLCBvciBkaXN0cmlidXRlZAorLS8v IGV4Y2VwdCBhY2NvcmRpbmcgdG8gdGhvc2UgdGVybXMuCistCistLy8gVGhpcyBpcyBhIHNjcmlw dCB0byBkZXBsb3kgYW5kIGV4ZWN1dGUgYSBiaW5hcnkgb24gYW4gaU9TIHNpbXVsYXRvci4KKy0v LyBUaGUgcHJpbWFyeSB1c2Ugb2YgdGhpcyBpcyB0byBiZSBhYmxlIHRvIHJ1biB1bml0IHRlc3Rz IG9uIHRoZSBzaW11bGF0b3IgYW5kCistLy8gcmV0cmlldmUgdGhlIHJlc3VsdHMuCistLy8KKy0v LyBUbyBkbyB0aGlzIHRocm91Z2ggQ2FyZ28gaW5zdGVhZCwgdXNlIERpbmdoeQorLS8vIChodHRw czovL2dpdGh1Yi5jb20vc25pcHNjby9kaW5naHkpOiBjYXJnbyBkaW5naHkgaW5zdGFsbCwgdGhl biBjYXJnbyBkaW5naHkKKy0vLyB0ZXN0LgorLQorLXVzZSBzdGQ6OmVudjsKKy11c2Ugc3RkOjpm czo6e3NlbGYsIEZpbGV9OworLXVzZSBzdGQ6OmlvOjpXcml0ZTsKKy11c2Ugc3RkOjpwYXRoOjpQ YXRoOworLXVzZSBzdGQ6OnByb2Nlc3M7CistdXNlIHN0ZDo6cHJvY2Vzczo6Q29tbWFuZDsKKy0K Ky1tYWNyb19ydWxlcyEgdCB7CistICAgICgkZTpleHByKSA9PiAobWF0Y2ggJGUgeworLSAgICAg ICAgT2soZSkgPT4gZSwKKy0gICAgICAgIEVycihlKSA9PiBwYW5pYyEoInt9IGZhaWxlZCB3aXRo OiB7fSIsIHN0cmluZ2lmeSEoJGUpLCBlKSwKKy0gICAgfSkKKy19CistCistLy8gU3RlcCBvbmU6 IFdyYXAgYXMgYW4gYXBwCistZm4gcGFja2FnZV9hc19zaW11bGF0b3JfYXBwKGNyYXRlX25hbWU6 ICZzdHIsIHRlc3RfYmluYXJ5X3BhdGg6ICZQYXRoKSB7CistICAgIHByaW50bG4hKCJQYWNrYWdp bmcgc2ltdWxhdG9yIGFwcCIpOworLSAgICBkcm9wKGZzOjpyZW1vdmVfZGlyX2FsbCgiaW9zX3Np bXVsYXRvcl9hcHAiKSk7CistICAgIHQhKGZzOjpjcmVhdGVfZGlyKCJpb3Nfc2ltdWxhdG9yX2Fw cCIpKTsKKy0gICAgdCEoZnM6OmNvcHkodGVzdF9iaW5hcnlfcGF0aCwKKy0gICAgICAgICAgICAg ICAgUGF0aDo6bmV3KCJpb3Nfc2ltdWxhdG9yX2FwcCIpLmpvaW4oY3JhdGVfbmFtZSkpKTsKKy0K Ky0gICAgbGV0IG11dCBmID0gdCEoRmlsZTo6Y3JlYXRlKCJpb3Nfc2ltdWxhdG9yX2FwcC9JbmZv LnBsaXN0IikpOworLSAgICB0IShmLndyaXRlX2FsbChmb3JtYXQhKHIjIgorLSAgICAgICAgPD94 bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKy0gICAgICAgIDwhRE9DVFlQRSBw bGlzdCBQVUJMSUMKKy0gICAgICAgICAgICAgICAgIi0vL0FwcGxlLy9EVEQgUExJU1QgMS4wLy9F TiIKKy0gICAgICAgICAgICAgICAgImh0dHA6Ly93d3cuYXBwbGUuY29tL0RURHMvUHJvcGVydHlM aXN0LTEuMC5kdGQiPgorLSAgICAgICAgPHBsaXN0IHZlcnNpb249IjEuMCI+CistICAgICAgICAg ICAgPGRpY3Q+CistICAgICAgICAgICAgICAgIDxrZXk+Q0ZCdW5kbGVFeGVjdXRhYmxlPC9rZXk+ CistICAgICAgICAgICAgICAgIDxzdHJpbmc+e308L3N0cmluZz4KKy0gICAgICAgICAgICAgICAg PGtleT5DRkJ1bmRsZUlkZW50aWZpZXI8L2tleT4KKy0gICAgICAgICAgICAgICAgPHN0cmluZz5j b20ucnVzdC51bml0dGVzdHM8L3N0cmluZz4KKy0gICAgICAgICAgICA8L2RpY3Q+CistICAgICAg ICA8L3BsaXN0PgorLSAgICAiIywgY3JhdGVfbmFtZSkuYXNfYnl0ZXMoKSkpOworLX0KKy0KKy0v LyBTdGVwIHR3bzogU3RhcnQgdGhlIGlPUyBzaW11bGF0b3IKKy1mbiBzdGFydF9zaW11bGF0b3Io KSB7CistICAgIHByaW50bG4hKCJMb29raW5nIGZvciBpT1Mgc2ltdWxhdG9yIik7CistICAgIGxl dCBvdXRwdXQgPSB0IShDb21tYW5kOjpuZXcoInhjcnVuIikuYXJnKCJzaW1jdGwiKS5hcmcoImxp c3QiKS5vdXRwdXQoKSk7CistICAgIGFzc2VydCEob3V0cHV0LnN0YXR1cy5zdWNjZXNzKCkpOwor LSAgICBsZXQgbXV0IHNpbXVsYXRvcl9leGlzdHMgPSBmYWxzZTsKKy0gICAgbGV0IG11dCBzaW11 bGF0b3JfYm9vdGVkID0gZmFsc2U7CistICAgIGxldCBtdXQgZm91bmRfcnVzdF9zaW0gPSBmYWxz ZTsKKy0gICAgbGV0IHN0ZG91dCA9IHQhKFN0cmluZzo6ZnJvbV91dGY4KG91dHB1dC5zdGRvdXQp KTsKKy0gICAgZm9yIGxpbmUgaW4gc3Rkb3V0LmxpbmVzKCkgeworLSAgICAgICAgaWYgbGluZS5j b250YWlucygicnVzdF9pb3MiKSB7CistICAgICAgICAgICAgaWYgZm91bmRfcnVzdF9zaW0gewor LSAgICAgICAgICAgICAgICBwYW5pYyEoIkR1cGxpY2F0ZSBydXN0X2lvcyBzaW11bGF0b3JzIGZv dW5kLiBQbGVhc2UgXAorLSAgICAgICAgICAgICAgICAgICAgICAgIGRvdWJsZS1jaGVjayB4Y3J1 biBzaW1jdGwgbGlzdC4iKTsKKy0gICAgICAgICAgICB9CistICAgICAgICAgICAgc2ltdWxhdG9y X2V4aXN0cyA9IHRydWU7CistICAgICAgICAgICAgc2ltdWxhdG9yX2Jvb3RlZCA9IGxpbmUuY29u dGFpbnMoIihCb290ZWQpIik7CistICAgICAgICAgICAgZm91bmRfcnVzdF9zaW0gPSB0cnVlOwor LSAgICAgICAgfQorLSAgICB9CistCistICAgIGlmIHNpbXVsYXRvcl9leGlzdHMgPT0gZmFsc2Ug eworLSAgICAgICAgcHJpbnRsbiEoIkNyZWF0aW5nIGlPUyBzaW11bGF0b3IiKTsKKy0gICAgICAg IENvbW1hbmQ6Om5ldygieGNydW4iKQorLSAgICAgICAgICAgICAgICAuYXJnKCJzaW1jdGwiKQor LSAgICAgICAgICAgICAgICAuYXJnKCJjcmVhdGUiKQorLSAgICAgICAgICAgICAgICAuYXJnKCJy dXN0X2lvcyIpCistICAgICAgICAgICAgICAgIC5hcmcoImNvbS5hcHBsZS5Db3JlU2ltdWxhdG9y LlNpbURldmljZVR5cGUuaVBob25lLVNFIikKKy0gICAgICAgICAgICAgICAgLmFyZygiY29tLmFw cGxlLkNvcmVTaW11bGF0b3IuU2ltUnVudGltZS5pT1MtMTAtMiIpCistICAgICAgICAgICAgICAg IC5jaGVja19zdGF0dXMoKTsKKy0gICAgfSBlbHNlIGlmIHNpbXVsYXRvcl9ib290ZWQgPT0gdHJ1 ZSB7CistICAgICAgICBwcmludGxuISgiU2h1dHRpbmcgZG93biBhbHJlYWR5LWJvb3RlZCBzaW11 bGF0b3IiKTsKKy0gICAgICAgIENvbW1hbmQ6Om5ldygieGNydW4iKQorLSAgICAgICAgICAgICAg ICAuYXJnKCJzaW1jdGwiKQorLSAgICAgICAgICAgICAgICAuYXJnKCJzaHV0ZG93biIpCistICAg ICAgICAgICAgICAgIC5hcmcoInJ1c3RfaW9zIikKKy0gICAgICAgICAgICAgICAgLmNoZWNrX3N0 YXR1cygpOworLSAgICB9CistCistICAgIHByaW50bG4hKCJTdGFydGluZyBpT1Mgc2ltdWxhdG9y Iik7CistICAgIC8vIFdlIGNhbid0IHVuaW5zdGFsbCB0aGUgYXBwIChpZiBwcmVzZW50KSBhcyB0 aGF0IHdpbGwgaGFuZyBpZiB0aGUKKy0gICAgLy8gc2ltdWxhdG9yIGlzbid0IGNvbXBsZXRlbHkg Ym9vdGVkOyBqdXN0IGVyYXNlIHRoZSBzaW11bGF0b3IgaW5zdGVhZC4KKy0gICAgQ29tbWFuZDo6 bmV3KCJ4Y3J1biIpLmFyZygic2ltY3RsIikuYXJnKCJlcmFzZSIpLmFyZygicnVzdF9pb3MiKS5j aGVja19zdGF0dXMoKTsKKy0gICAgQ29tbWFuZDo6bmV3KCJ4Y3J1biIpLmFyZygic2ltY3RsIiku YXJnKCJib290IikuYXJnKCJydXN0X2lvcyIpLmNoZWNrX3N0YXR1cygpOworLX0KKy0KKy0vLyBT dGVwIHRocmVlOiBJbnN0YWxsIHRoZSBhcHAKKy1mbiBpbnN0YWxsX2FwcF90b19zaW11bGF0b3Io KSB7CistICAgIHByaW50bG4hKCJJbnN0YWxsaW5nIGFwcCB0byBzaW11bGF0b3IiKTsKKy0gICAg Q29tbWFuZDo6bmV3KCJ4Y3J1biIpCistICAgICAgICAgICAgLmFyZygic2ltY3RsIikKKy0gICAg ICAgICAgICAuYXJnKCJpbnN0YWxsIikKKy0gICAgICAgICAgICAuYXJnKCJib290ZWQiKQorLSAg ICAgICAgICAgIC5hcmcoImlvc19zaW11bGF0b3JfYXBwLyIpCistICAgICAgICAgICAgLmNoZWNr X3N0YXR1cygpOworLX0KKy0KKy0vLyBTdGVwIGZvdXI6IFJ1biB0aGUgYXBwCistZm4gcnVuX2Fw cF9vbl9zaW11bGF0b3IoKSB7CistICAgIHByaW50bG4hKCJSdW5uaW5nIGFwcCIpOworLSAgICBs ZXQgb3V0cHV0ID0gdCEoQ29tbWFuZDo6bmV3KCJ4Y3J1biIpCistICAgICAgICAgICAgICAgICAg ICAuYXJnKCJzaW1jdGwiKQorLSAgICAgICAgICAgICAgICAgICAgLmFyZygibGF1bmNoIikKKy0g ICAgICAgICAgICAgICAgICAgIC5hcmcoIi0tY29uc29sZSIpCistICAgICAgICAgICAgICAgICAg ICAuYXJnKCJib290ZWQiKQorLSAgICAgICAgICAgICAgICAgICAgLmFyZygiY29tLnJ1c3QudW5p dHRlc3RzIikKKy0gICAgICAgICAgICAgICAgICAgIC5vdXRwdXQoKSk7CistCistICAgIHByaW50 bG4hKCJzdGRvdXQgLS1cbnt9XG4iLCBTdHJpbmc6OmZyb21fdXRmOF9sb3NzeSgmb3V0cHV0LnN0 ZG91dCkpOworLSAgICBwcmludGxuISgic3RkZXJyIC0tXG57fVxuIiwgU3RyaW5nOjpmcm9tX3V0 ZjhfbG9zc3koJm91dHB1dC5zdGRlcnIpKTsKKy0KKy0gICAgbGV0IHN0ZG91dCA9IFN0cmluZzo6 ZnJvbV91dGY4X2xvc3N5KCZvdXRwdXQuc3Rkb3V0KTsKKy0gICAgbGV0IGZhaWxlZCA9IHN0ZG91 dC5saW5lcygpCistICAgICAgICAuZmluZCh8bHwgbC5jb250YWlucygiRkFJTEVEIikpCistICAg ICAgICAubWFwKHxsfCBsLmNvbnRhaW5zKCJGQUlMRUQiKSkKKy0gICAgICAgIC51bndyYXBfb3Io ZmFsc2UpOworLQorLSAgICBsZXQgcGFzc2VkID0gc3Rkb3V0LmxpbmVzKCkKKy0gICAgICAgIC5m aW5kKHxsfCBsLmNvbnRhaW5zKCJ0ZXN0IHJlc3VsdDogb2siKSkKKy0gICAgICAgIC5tYXAofGx8 IGwuY29udGFpbnMoInRlc3QgcmVzdWx0OiBvayIpKQorLSAgICAgICAgLnVud3JhcF9vcihmYWxz ZSk7CistCistICAgIHByaW50bG4hKCJTaHV0dGluZyBkb3duIHNpbXVsYXRvciIpOworLSAgICBD b21tYW5kOjpuZXcoInhjcnVuIikKKy0gICAgICAgIC5hcmcoInNpbWN0bCIpCistICAgICAgICAu YXJnKCJzaHV0ZG93biIpCistICAgICAgICAuYXJnKCJydXN0X2lvcyIpCistICAgICAgICAuY2hl Y2tfc3RhdHVzKCk7CistICAgIGlmICEocGFzc2VkICYmICFmYWlsZWQpIHsKKy0gICAgICAgIHBh bmljISgidGVzdHMgZGlkbid0IHBhc3MiKTsKKy0gICAgfQorLX0KKy0KKy10cmFpdCBDaGVja1N0 YXR1cyB7CistICAgIGZuIGNoZWNrX3N0YXR1cygmbXV0IHNlbGYpOworLX0KKy0KKy1pbXBsIENo ZWNrU3RhdHVzIGZvciBDb21tYW5kIHsKKy0gICAgZm4gY2hlY2tfc3RhdHVzKCZtdXQgc2VsZikg eworLSAgICAgICAgcHJpbnRsbiEoIlx0cnVubmluZzogezo/fSIsIHNlbGYpOworLSAgICAgICAg YXNzZXJ0ISh0IShzZWxmLnN0YXR1cygpKS5zdWNjZXNzKCkpOworLSAgICB9CistfQorLQorLWZu IG1haW4oKSB7CistICAgIGxldCBhcmdzOiBWZWM8U3RyaW5nPiA9IGVudjo6YXJncygpLmNvbGxl Y3QoKTsKKy0gICAgaWYgYXJncy5sZW4oKSAhPSAyIHsKKy0gICAgICAgIHByaW50bG4hKCJVc2Fn ZToge30gPGV4ZWN1dGFibGU+IiwgYXJnc1swXSk7CistICAgICAgICBwcm9jZXNzOjpleGl0KC0x KTsKKy0gICAgfQorLQorLSAgICBsZXQgdGVzdF9iaW5hcnlfcGF0aCA9IFBhdGg6Om5ldygmYXJn c1sxXSk7CistICAgIGxldCBjcmF0ZV9uYW1lID0gdGVzdF9iaW5hcnlfcGF0aC5maWxlX25hbWUo KS51bndyYXAoKTsKKy0KKy0gICAgcGFja2FnZV9hc19zaW11bGF0b3JfYXBwKGNyYXRlX25hbWUu dG9fc3RyKCkudW53cmFwKCksIHRlc3RfYmluYXJ5X3BhdGgpOworLSAgICBzdGFydF9zaW11bGF0 b3IoKTsKKy0gICAgaW5zdGFsbF9hcHBfdG9fc2ltdWxhdG9yKCk7CistICAgIHJ1bl9hcHBfb25f c2ltdWxhdG9yKCk7CistfQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3Np bWQvY2kvZG9ja2VyL2FhcmNoNjQtbGludXgtYW5kcm9pZC9Eb2NrZXJmaWxlIGIvdGhpcmRfcGFy dHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIvYWFyY2g2NC1saW51eC1hbmRyb2lkL0RvY2tl cmZpbGUKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9w YWNrZWRfc2ltZC9jaS9kb2NrZXIvYWFyY2g2NC1saW51eC1hbmRyb2lkL0RvY2tlcmZpbGUKKysr KyAvZGV2L251bGwKK0BAIC0xLDQ3ICswLDAgQEAKKy1GUk9NIHVidW50dToxNi4wNAorLQorLVJV TiBkcGtnIC0tYWRkLWFyY2hpdGVjdHVyZSBpMzg2ICYmIFwKKy0gICAgYXB0LWdldCB1cGRhdGUg JiYgXAorLSAgICBhcHQtZ2V0IGluc3RhbGwgLXkgLS1uby1pbnN0YWxsLXJlY29tbWVuZHMgXAor LSAgZmlsZSBcCistICBtYWtlIFwKKy0gIGN1cmwgXAorLSAgY2EtY2VydGlmaWNhdGVzIFwKKy0g IHB5dGhvbiBcCistICB1bnppcCBcCistICBleHBlY3QgXAorLSAgb3Blbmpkay05LWpyZSBcCist ICBsaWJzdGRjKys2OmkzODYgXAorLSAgbGlicHVsc2UwIFwKKy0gIGdjYyBcCistICBsaWJjNi1k ZXYKKy0KKy1XT1JLRElSIC9hbmRyb2lkLworLUNPUFkgYW5kcm9pZCogL2FuZHJvaWQvCistCist RU5WIEFORFJPSURfQVJDSD1hYXJjaDY0CistRU5WIFBBVEg9JFBBVEg6L2FuZHJvaWQvbmRrLSRB TkRST0lEX0FSQ0gvYmluOi9hbmRyb2lkL3Nkay90b29sczovYW5kcm9pZC9zZGsvcGxhdGZvcm0t dG9vbHMKKy0KKy1SVU4gc2ggL2FuZHJvaWQvYW5kcm9pZC1pbnN0YWxsLW5kay5zaCAkQU5EUk9J RF9BUkNICistUlVOIHNoIC9hbmRyb2lkL2FuZHJvaWQtaW5zdGFsbC1zZGsuc2ggJEFORFJPSURf QVJDSAorLVJVTiBtdiAvcm9vdC8uYW5kcm9pZCAvdG1wCistUlVOIGNobW9kIDc3NyAtUiAvdG1w Ly5hbmRyb2lkCistUlVOIGNobW9kIDc1NSAvYW5kcm9pZC9zZGsvdG9vbHMvKiAvYW5kcm9pZC9z ZGsvZW11bGF0b3IvcWVtdS9saW51eC14ODZfNjQvKgorLQorLUVOViBQQVRIPSRQQVRIOi9ydXN0 L2JpbiBcCistICAgIENBUkdPX1RBUkdFVF9BQVJDSDY0X0xJTlVYX0FORFJPSURfTElOS0VSPWFh cmNoNjQtbGludXgtYW5kcm9pZC1nY2MgXAorLSAgICBDQVJHT19UQVJHRVRfQUFSQ0g2NF9MSU5V WF9BTkRST0lEX1JVTk5FUj0vdG1wL3J1bnRlc3QgXAorLSAgICBPQkpEVU1QPWFhcmNoNjQtbGlu dXgtYW5kcm9pZC1vYmpkdW1wIFwKKy0gICAgSE9NRT0vdG1wCistCistQUREIHJ1bnRlc3QtYW5k cm9pZC5ycyAvdG1wL3J1bnRlc3QucnMKKy1FTlRSWVBPSU5UIFsgXAorLSAgImJhc2giLCBcCist ICAiLWMiLCBcCistICAjIHNldCBTSEVMTCBzbyBhbmRyb2lkIGNhbiBkZXRlY3QgYSA2NGJpdHMg c3lzdGVtLCBzZWUKKy0gICMgaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL2EvNDE3ODkxNDQKKy0g ICJTSEVMTD0vYmluL2Rhc2ggL2FuZHJvaWQvc2RrL2VtdWxhdG9yL2VtdWxhdG9yIEBhYXJjaDY0 IC1uby13aW5kb3cgJiBcCistICAgcnVzdGMgL3RtcC9ydW50ZXN0LnJzIC1vIC90bXAvcnVudGVz dCAmJiBcCistICAgZXhlYyBcIiRAXCIiLCBcCistICAiLS0iIFwKKy1dCitkaWZmIC0tZ2l0IGEv dGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIvYWFyY2g2NC11bmtub3duLWxp bnV4LWdudS9Eb2NrZXJmaWxlIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2Nr ZXIvYWFyY2g2NC11bmtub3duLWxpbnV4LWdudS9Eb2NrZXJmaWxlCitkZWxldGVkIGZpbGUgbW9k ZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL2Fh cmNoNjQtdW5rbm93bi1saW51eC1nbnUvRG9ja2VyZmlsZQorKysrIC9kZXYvbnVsbAorQEAgLTEs MTQgKzAsMCBAQAorLUZST00gdWJ1bnR1OjE4LjA0CistUlVOIGFwdC1nZXQgdXBkYXRlICYmIGFw dC1nZXQgaW5zdGFsbCAteSAtLW5vLWluc3RhbGwtcmVjb21tZW5kcyBcCistICBnY2MgXAorLSAg Y2EtY2VydGlmaWNhdGVzIFwKKy0gIGxpYmM2LWRldiBcCistICBnY2MtYWFyY2g2NC1saW51eC1n bnUgXAorLSAgbGliYzYtZGV2LWFybTY0LWNyb3NzIFwKKy0gIHFlbXUtdXNlciBcCistICBtYWtl IFwKKy0gIGZpbGUKKy0KKy1FTlYgQ0FSR09fVEFSR0VUX0FBUkNINjRfVU5LTk9XTl9MSU5VWF9H TlVfTElOS0VSPWFhcmNoNjQtbGludXgtZ251LWdjYyBcCistICAgIENBUkdPX1RBUkdFVF9BQVJD SDY0X1VOS05PV05fTElOVVhfR05VX1JVTk5FUj0icWVtdS1hYXJjaDY0IC1MIC91c3IvYWFyY2g2 NC1saW51eC1nbnUiIFwKKy0gICAgT0JKRFVNUD1hYXJjaDY0LWxpbnV4LWdudS1vYmpkdW1wCitk aWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIvYXJtLXVu a25vd24tbGludXgtZ251ZWFiaS9Eb2NrZXJmaWxlIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRf c2ltZC9jaS9kb2NrZXIvYXJtLXVua25vd24tbGludXgtZ251ZWFiaS9Eb2NrZXJmaWxlCitkZWxl dGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQv Y2kvZG9ja2VyL2FybS11bmtub3duLWxpbnV4LWdudWVhYmkvRG9ja2VyZmlsZQorKysrIC9kZXYv bnVsbAorQEAgLTEsMTUgKzAsMCBAQAorLUZST00gdWJ1bnR1OjE4LjA0CistUlVOIGFwdC1nZXQg dXBkYXRlICYmIGFwdC1nZXQgaW5zdGFsbCAteSAtLW5vLWluc3RhbGwtcmVjb21tZW5kcyBcCist ICBnY2MgXAorLSAgY2EtY2VydGlmaWNhdGVzIFwKKy0gIGxpYmM2LWRldiBcCistICBsaWJjNi1h cm1lbC1jcm9zcyBcCistICBsaWJjNi1kZXYtYXJtZWwtY3Jvc3MgXAorLSAgYmludXRpbHMtYXJt LWxpbnV4LWdudWVhYmkgXAorLSAgZ2NjLWFybS1saW51eC1nbnVlYWJpIFwKKy0gIHFlbXUtdXNl ciBcCistICBtYWtlIFwKKy0gIGZpbGUKKy1FTlYgQ0FSR09fVEFSR0VUX0FSTV9VTktOT1dOX0xJ TlVYX0dOVUVBQklfTElOS0VSPWFybS1saW51eC1nbnVlYWJpLWdjYyBcCistICAgIENBUkdPX1RB UkdFVF9BUk1fVU5LTk9XTl9MSU5VWF9HTlVFQUJJX1JVTk5FUj0icWVtdS1hcm0gLUwgL3Vzci9h cm0tbGludXgtZ251ZWFiaSIgXAorLSAgICBPQkpEVU1QPWFybS1saW51eC1nbnVlYWJpLW9iamR1 bXAKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci9h cm0tdW5rbm93bi1saW51eC1nbnVlYWJpaGYvRG9ja2VyZmlsZSBiL3RoaXJkX3BhcnR5L3J1c3Qv cGFja2VkX3NpbWQvY2kvZG9ja2VyL2FybS11bmtub3duLWxpbnV4LWdudWVhYmloZi9Eb2NrZXJm aWxlCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFj a2VkX3NpbWQvY2kvZG9ja2VyL2FybS11bmtub3duLWxpbnV4LWdudWVhYmloZi9Eb2NrZXJmaWxl CisrKysgL2Rldi9udWxsCitAQCAtMSwxMyArMCwwIEBACistRlJPTSB1YnVudHU6MTguMDQKKy1S VU4gYXB0LWdldCB1cGRhdGUgJiYgYXB0LWdldCBpbnN0YWxsIC15IC0tbm8taW5zdGFsbC1yZWNv bW1lbmRzIFwKKy0gIGdjYyBcCistICBjYS1jZXJ0aWZpY2F0ZXMgXAorLSAgbGliYzYtZGV2IFwK Ky0gIGdjYy1hcm0tbGludXgtZ251ZWFiaWhmIFwKKy0gIGxpYmM2LWRldi1hcm1oZi1jcm9zcyBc CistICBxZW11LXVzZXIgXAorLSAgbWFrZSBcCistICBmaWxlCistRU5WIENBUkdPX1RBUkdFVF9B Uk1fVU5LTk9XTl9MSU5VWF9HTlVFQUJJSEZfTElOS0VSPWFybS1saW51eC1nbnVlYWJpaGYtZ2Nj IFwKKy0gICAgQ0FSR09fVEFSR0VUX0FSTV9VTktOT1dOX0xJTlVYX0dOVUVBQklIRl9SVU5ORVI9 InFlbXUtYXJtIC1MIC91c3IvYXJtLWxpbnV4LWdudWVhYmloZiIgXAorLSAgICBPQkpEVU1QPWFy bS1saW51eC1nbnVlYWJpaGYtb2JqZHVtcAorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3Qv cGFja2VkX3NpbWQvY2kvZG9ja2VyL2FybXY3LWxpbnV4LWFuZHJvaWRlYWJpL0RvY2tlcmZpbGUg Yi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci9hcm12Ny1saW51eC1hbmRy b2lkZWFiaS9Eb2NrZXJmaWxlCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJk X3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL2FybXY3LWxpbnV4LWFuZHJvaWRlYWJp L0RvY2tlcmZpbGUKKysrKyAvZGV2L251bGwKK0BAIC0xLDQ3ICswLDAgQEAKKy1GUk9NIHVidW50 dToxNi4wNAorLQorLVJVTiBkcGtnIC0tYWRkLWFyY2hpdGVjdHVyZSBpMzg2ICYmIFwKKy0gICAg YXB0LWdldCB1cGRhdGUgJiYgXAorLSAgICBhcHQtZ2V0IGluc3RhbGwgLXkgLS1uby1pbnN0YWxs LXJlY29tbWVuZHMgXAorLSAgZmlsZSBcCistICBtYWtlIFwKKy0gIGN1cmwgXAorLSAgY2EtY2Vy dGlmaWNhdGVzIFwKKy0gIHB5dGhvbiBcCistICB1bnppcCBcCistICBleHBlY3QgXAorLSAgb3Bl bmpkay05LWpyZSBcCistICBsaWJzdGRjKys2OmkzODYgXAorLSAgbGlicHVsc2UwIFwKKy0gIGdj YyBcCistICBsaWJjNi1kZXYKKy0KKy1XT1JLRElSIC9hbmRyb2lkLworLUNPUFkgYW5kcm9pZCog L2FuZHJvaWQvCistCistRU5WIEFORFJPSURfQVJDSD1hcm0KKy1FTlYgUEFUSD0kUEFUSDovYW5k cm9pZC9uZGstJEFORFJPSURfQVJDSC9iaW46L2FuZHJvaWQvc2RrL3Rvb2xzOi9hbmRyb2lkL3Nk ay9wbGF0Zm9ybS10b29scworLQorLVJVTiBzaCAvYW5kcm9pZC9hbmRyb2lkLWluc3RhbGwtbmRr LnNoICRBTkRST0lEX0FSQ0gKKy1SVU4gc2ggL2FuZHJvaWQvYW5kcm9pZC1pbnN0YWxsLXNkay5z aCAkQU5EUk9JRF9BUkNICistUlVOIG12IC9yb290Ly5hbmRyb2lkIC90bXAKKy1SVU4gY2htb2Qg Nzc3IC1SIC90bXAvLmFuZHJvaWQKKy1SVU4gY2htb2QgNzU1IC9hbmRyb2lkL3Nkay90b29scy8q IC9hbmRyb2lkL3Nkay9lbXVsYXRvci9xZW11L2xpbnV4LXg4Nl82NC8qCistCistRU5WIFBBVEg9 JFBBVEg6L3J1c3QvYmluIFwKKy0gICAgQ0FSR09fVEFSR0VUX0FSTV9MSU5VWF9BTkRST0lERUFC SV9MSU5LRVI9YXJtLWxpbnV4LWFuZHJvaWRlYWJpLWdjYyBcCistICAgIENBUkdPX1RBUkdFVF9B Uk1fTElOVVhfQU5EUk9JREVBQklfUlVOTkVSPS90bXAvcnVudGVzdCBcCistICAgIE9CSkRVTVA9 YXJtLWxpbnV4LWFuZHJvaWRlYWJpLW9iamR1bXAgXAorLSAgICBIT01FPS90bXAKKy0KKy1BREQg cnVudGVzdC1hbmRyb2lkLnJzIC90bXAvcnVudGVzdC5ycworLUVOVFJZUE9JTlQgWyBcCistICAi YmFzaCIsIFwKKy0gICItYyIsIFwKKy0gICMgc2V0IFNIRUxMIHNvIGFuZHJvaWQgY2FuIGRldGVj dCBhIDY0Yml0cyBzeXN0ZW0sIHNlZQorLSAgIyBodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vYS80 MTc4OTE0NAorLSAgIlNIRUxMPS9iaW4vZGFzaCAvYW5kcm9pZC9zZGsvZW11bGF0b3IvZW11bGF0 b3IgQGFybSAtbm8td2luZG93ICYgXAorLSAgIHJ1c3RjIC90bXAvcnVudGVzdC5ycyAtbyAvdG1w L3J1bnRlc3QgJiYgXAorLSAgIGV4ZWMgXCIkQFwiIiwgXAorLSAgIi0tIiBcCistXQorZGlmZiAt LWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL2FybXY3LXVua25v d24tbGludXgtZ251ZWFiaWhmL0RvY2tlcmZpbGUgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9z aW1kL2NpL2RvY2tlci9hcm12Ny11bmtub3duLWxpbnV4LWdudWVhYmloZi9Eb2NrZXJmaWxlCitk ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3Np bWQvY2kvZG9ja2VyL2FybXY3LXVua25vd24tbGludXgtZ251ZWFiaWhmL0RvY2tlcmZpbGUKKysr KyAvZGV2L251bGwKK0BAIC0xLDEzICswLDAgQEAKKy1GUk9NIHVidW50dToxOC4wNAorLVJVTiBh cHQtZ2V0IHVwZGF0ZSAmJiBhcHQtZ2V0IGluc3RhbGwgLXkgLS1uby1pbnN0YWxsLXJlY29tbWVu ZHMgXAorLSAgZ2NjIFwKKy0gIGNhLWNlcnRpZmljYXRlcyBcCistICBsaWJjNi1kZXYgXAorLSAg Z2NjLWFybS1saW51eC1nbnVlYWJpaGYgXAorLSAgbGliYzYtZGV2LWFybWhmLWNyb3NzIFwKKy0g IHFlbXUtdXNlciBcCistICBtYWtlIFwKKy0gIGZpbGUKKy1FTlYgQ0FSR09fVEFSR0VUX0FSTVY3 X1VOS05PV05fTElOVVhfR05VRUFCSUhGX0xJTktFUj1hcm0tbGludXgtZ251ZWFiaWhmLWdjYyBc CistICAgIENBUkdPX1RBUkdFVF9BUk1WN19VTktOT1dOX0xJTlVYX0dOVUVBQklIRl9SVU5ORVI9 InFlbXUtYXJtIC1MIC91c3IvYXJtLWxpbnV4LWdudWVhYmloZiIgXAorLSAgICBPQkpEVU1QPWFy bS1saW51eC1nbnVlYWJpaGYtb2JqZHVtcAorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3Qv cGFja2VkX3NpbWQvY2kvZG9ja2VyL2k1ODYtdW5rbm93bi1saW51eC1nbnUvRG9ja2VyZmlsZSBi L3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL2k1ODYtdW5rbm93bi1saW51 eC1nbnUvRG9ja2VyZmlsZQorZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9w YXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci9pNTg2LXVua25vd24tbGludXgtZ251L0Rv Y2tlcmZpbGUKKysrKyAvZGV2L251bGwKK0BAIC0xLDcgKzAsMCBAQAorLUZST00gdWJ1bnR1OjE4 LjA0CistUlVOIGFwdC1nZXQgdXBkYXRlICYmIGFwdC1nZXQgaW5zdGFsbCAteSAtLW5vLWluc3Rh bGwtcmVjb21tZW5kcyBcCistICBnY2MtbXVsdGlsaWIgXAorLSAgbGliYzYtZGV2IFwKKy0gIGZp bGUgXAorLSAgbWFrZSBcCistICBjYS1jZXJ0aWZpY2F0ZXMKK2RpZmYgLS1naXQgYS90aGlyZF9w YXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci9pNjg2LXVua25vd24tbGludXgtZ251L0Rv Y2tlcmZpbGUgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci9pNjg2LXVu a25vd24tbGludXgtZ251L0RvY2tlcmZpbGUKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0t IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIvaTY4Ni11bmtub3duLWxp bnV4LWdudS9Eb2NrZXJmaWxlCisrKysgL2Rldi9udWxsCitAQCAtMSw3ICswLDAgQEAKKy1GUk9N IHVidW50dToxOC4wNAorLVJVTiBhcHQtZ2V0IHVwZGF0ZSAmJiBhcHQtZ2V0IGluc3RhbGwgLXkg LS1uby1pbnN0YWxsLXJlY29tbWVuZHMgXAorLSAgZ2NjLW11bHRpbGliIFwKKy0gIGxpYmM2LWRl diBcCistICBmaWxlIFwKKy0gIG1ha2UgXAorLSAgY2EtY2VydGlmaWNhdGVzCitkaWZmIC0tZ2l0 IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIvbWlwcy11bmtub3duLWxp bnV4LWdudS9Eb2NrZXJmaWxlIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2Nr ZXIvbWlwcy11bmtub3duLWxpbnV4LWdudS9Eb2NrZXJmaWxlCitkZWxldGVkIGZpbGUgbW9kZSAx MDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL21pcHMt dW5rbm93bi1saW51eC1nbnUvRG9ja2VyZmlsZQorKysrIC9kZXYvbnVsbAorQEAgLTEsMTMgKzAs MCBAQAorLUZST00gdWJ1bnR1OjE4LjA0CistCistUlVOIGFwdC1nZXQgdXBkYXRlICYmIGFwdC1n ZXQgaW5zdGFsbCAteSAtLW5vLWluc3RhbGwtcmVjb21tZW5kcyBcCistICAgICAgICBnY2MgbGli YzYtZGV2IHFlbXUtdXNlciBjYS1jZXJ0aWZpY2F0ZXMgXAorLSAgICAgICAgZ2NjLW1pcHMtbGlu dXgtZ251IGxpYmM2LWRldi1taXBzLWNyb3NzIFwKKy0gICAgICAgIHFlbXUtc3lzdGVtLW1pcHMg XAorLSAgICAgICAgcWVtdS11c2VyIFwKKy0gICAgICAgIG1ha2UgXAorLSAgICAgICAgZmlsZQor LQorLUVOViBDQVJHT19UQVJHRVRfTUlQU19VTktOT1dOX0xJTlVYX0dOVV9MSU5LRVI9bWlwcy1s aW51eC1nbnUtZ2NjIFwKKy0gICAgQ0FSR09fVEFSR0VUX01JUFNfVU5LTk9XTl9MSU5VWF9HTlVf UlVOTkVSPSJxZW11LW1pcHMgLUwgL3Vzci9taXBzLWxpbnV4LWdudSIgXAorLSAgICBPQkpEVU1Q PW1pcHMtbGludXgtZ251LW9iamR1bXAKK1wgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorZGlm ZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL21pcHM2NC11 bmtub3duLWxpbnV4LWdudWFiaTY0L0RvY2tlcmZpbGUgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tl ZF9zaW1kL2NpL2RvY2tlci9taXBzNjQtdW5rbm93bi1saW51eC1nbnVhYmk2NC9Eb2NrZXJmaWxl CitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2Vk X3NpbWQvY2kvZG9ja2VyL21pcHM2NC11bmtub3duLWxpbnV4LWdudWFiaTY0L0RvY2tlcmZpbGUK KysrKyAvZGV2L251bGwKK0BAIC0xLDEwICswLDAgQEAKKy1GUk9NIHVidW50dToxOC4wNAorLQor LVJVTiBhcHQtZ2V0IHVwZGF0ZSAmJiBhcHQtZ2V0IGluc3RhbGwgLXkgLS1uby1pbnN0YWxsLXJl Y29tbWVuZHMgXAorLSAgICAgICAgZ2NjIGxpYmM2LWRldiBxZW11LXVzZXIgY2EtY2VydGlmaWNh dGVzIFwKKy0gICAgICAgIGdjYy1taXBzNjQtbGludXgtZ251YWJpNjQgbGliYzYtZGV2LW1pcHM2 NC1jcm9zcyBcCistICAgICAgICBxZW11LXN5c3RlbS1taXBzNjQgcWVtdS11c2VyCistCistRU5W IENBUkdPX1RBUkdFVF9NSVBTNjRfVU5LTk9XTl9MSU5VWF9HTlVBQkk2NF9MSU5LRVI9bWlwczY0 LWxpbnV4LWdudWFiaTY0LWdjYyBcCistICAgIENBUkdPX1RBUkdFVF9NSVBTNjRfVU5LTk9XTl9M SU5VWF9HTlVBQkk2NF9SVU5ORVI9InFlbXUtbWlwczY0IC1MIC91c3IvbWlwczY0LWxpbnV4LWdu dWFiaTY0IiBcCistICAgIE9CSkRVTVA9bWlwczY0LWxpbnV4LWdudWFiaTY0LW9iamR1bXAKK1wg Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3Qv cGFja2VkX3NpbWQvY2kvZG9ja2VyL21pcHM2NGVsLXVua25vd24tbGludXgtZ251YWJpNjQvRG9j a2VyZmlsZSBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL21pcHM2NGVs LXVua25vd24tbGludXgtZ251YWJpNjQvRG9ja2VyZmlsZQorZGVsZXRlZCBmaWxlIG1vZGUgMTAw NjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci9taXBzNjRl bC11bmtub3duLWxpbnV4LWdudWFiaTY0L0RvY2tlcmZpbGUKKysrKyAvZGV2L251bGwKK0BAIC0x LDEwICswLDAgQEAKKy1GUk9NIHVidW50dToxOC4wNAorLQorLVJVTiBhcHQtZ2V0IHVwZGF0ZSAm JiBhcHQtZ2V0IGluc3RhbGwgLXkgLS1uby1pbnN0YWxsLXJlY29tbWVuZHMgXAorLSAgICAgICAg Z2NjIGxpYmM2LWRldiBxZW11LXVzZXIgY2EtY2VydGlmaWNhdGVzIFwKKy0gICAgICAgIGdjYy1t aXBzNjRlbC1saW51eC1nbnVhYmk2NCBsaWJjNi1kZXYtbWlwczY0ZWwtY3Jvc3MgXAorLSAgICAg ICAgcWVtdS1zeXN0ZW0tbWlwczY0ZWwKKy0KKy1FTlYgQ0FSR09fVEFSR0VUX01JUFM2NEVMX1VO S05PV05fTElOVVhfR05VQUJJNjRfTElOS0VSPW1pcHM2NGVsLWxpbnV4LWdudWFiaTY0LWdjYyBc CistICAgIENBUkdPX1RBUkdFVF9NSVBTNjRFTF9VTktOT1dOX0xJTlVYX0dOVUFCSTY0X1JVTk5F Uj0icWVtdS1taXBzNjRlbCAtTCAvdXNyL21pcHM2NGVsLWxpbnV4LWdudWFiaTY0IiBcCistICAg IE9CSkRVTVA9bWlwczY0ZWwtbGludXgtZ251YWJpNjQtb2JqZHVtcAorXCBObyBuZXdsaW5lIGF0 IGVuZCBvZiBmaWxlCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9j aS9kb2NrZXIvbWlwc2VsLXVua25vd24tbGludXgtbXVzbC9Eb2NrZXJmaWxlIGIvdGhpcmRfcGFy dHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIvbWlwc2VsLXVua25vd24tbGludXgtbXVzbC9E b2NrZXJmaWxlCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1 c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL21pcHNlbC11bmtub3duLWxpbnV4LW11c2wvRG9ja2Vy ZmlsZQorKysrIC9kZXYvbnVsbAorQEAgLTEsMjUgKzAsMCBAQAorLUZST00gdWJ1bnR1OjE4LjEw CistCistUlVOIGFwdC1nZXQgdXBkYXRlICYmIFwKKy0gICAgYXB0LWdldCBpbnN0YWxsIC15IC0t bm8taW5zdGFsbC1yZWNvbW1lbmRzIFwKKy0gICAgY2EtY2VydGlmaWNhdGVzIFwKKy0gICAgZ2Nj IFwKKy0gICAgbGliYzYtZGV2IFwKKy0gICAgbWFrZSBcCistICAgIHFlbXUtdXNlciBcCistICAg IHFlbXUtc3lzdGVtLW1pcHMgXAorLSAgICBiemlwMiBcCistICAgIGN1cmwgXAorLSAgICBmaWxl CistCistUlVOIG1rZGlyIC90b29sY2hhaW4KKy0KKy0jIE5vdGUgdGhhdCB0aGlzIG9yaWdpbmFs bHkgY2FtZSBmcm9tOgorLSMgaHR0cHM6Ly9kb3dubG9hZHMub3BlbndydC5vcmcvc25hcHNob3Rz L3RydW5rL21hbHRhL2dlbmVyaWMvT3BlbldydC1Ub29sY2hhaW4tbWFsdGEtbGVfZ2NjLTUuMy4w X211c2wtMS4xLjE1LkxpbnV4LXg4Nl82NC50YXIuYnoyCistUlVOIGN1cmwgLUwgaHR0cHM6Ly9j aS1taXJyb3JzLnJ1c3QtbGFuZy5vcmcvbGliYy9PcGVuV3J0LVRvb2xjaGFpbi1tYWx0YS1sZV9n Y2MtNS4zLjBfbXVzbC0xLjEuMTUuTGludXgteDg2XzY0LnRhci5iejIgfCBcCistICAgICAgdGFy IHhqZiAtIC1DIC90b29sY2hhaW4gLS1zdHJpcC1jb21wb25lbnRzPTIKKy0KKy1FTlYgUEFUSD0k UEFUSDovcnVzdC9iaW46L3Rvb2xjaGFpbi9iaW4gXAorLSAgICBDQ19taXBzZWxfdW5rbm93bl9s aW51eF9tdXNsPW1pcHNlbC1vcGVud3J0LWxpbnV4LWdjYyBcCistICAgIENBUkdPX1RBUkdFVF9N SVBTRUxfVU5LTk9XTl9MSU5VWF9NVVNMX0xJTktFUj1taXBzZWwtb3BlbndydC1saW51eC1nY2Mg XAorLSAgICBDQVJHT19UQVJHRVRfTUlQU0VMX1VOS05PV05fTElOVVhfTVVTTF9SVU5ORVI9InFl bXUtbWlwc2VsIC1MIC90b29sY2hhaW4iCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9w YWNrZWRfc2ltZC9jaS9kb2NrZXIvcG93ZXJwYy11bmtub3duLWxpbnV4LWdudS9Eb2NrZXJmaWxl IGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIvcG93ZXJwYy11bmtub3du LWxpbnV4LWdudS9Eb2NrZXJmaWxlCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3Ro aXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL3Bvd2VycGMtdW5rbm93bi1saW51 eC1nbnUvRG9ja2VyZmlsZQorKysrIC9kZXYvbnVsbAorQEAgLTEsMTMgKzAsMCBAQAorLUZST00g dWJ1bnR1OjIyLjA0CistCistUlVOIGFwdC1nZXQgdXBkYXRlICYmIGFwdC1nZXQgaW5zdGFsbCAt eSAtLW5vLWluc3RhbGwtcmVjb21tZW5kcyBcCistICAgICAgICBnY2MgbGliYzYtZGV2IHFlbXUt dXNlciBjYS1jZXJ0aWZpY2F0ZXMgXAorLSAgICAgICAgZ2NjLXBvd2VycGMtbGludXgtZ251IGxp YmM2LWRldi1wb3dlcnBjLWNyb3NzIFwKKy0gICAgICAgIHFlbXUtc3lzdGVtLXBwYyBcCistICAg ICAgICBtYWtlIFwKKy0gICAgICAgIGZpbGUKKy0KKy1FTlYgQ0FSR09fVEFSR0VUX1BPV0VSUENf VU5LTk9XTl9MSU5VWF9HTlVfTElOS0VSPXBvd2VycGMtbGludXgtZ251LWdjYyBcCistICAgIENB UkdPX1RBUkdFVF9QT1dFUlBDX1VOS05PV05fTElOVVhfR05VX1JVTk5FUj0icWVtdS1wcGMgLWNw dSBWZ2VyIC1MIC91c3IvcG93ZXJwYy1saW51eC1nbnUiIFwKKy0gICAgQ0M9cG93ZXJwYy1saW51 eC1nbnUtZ2NjIFwKKy0gICAgT0JKRFVNUD1wb3dlcnBjLWxpbnV4LWdudS1vYmpkdW1wCitkaWZm IC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIvcG93ZXJwYzY0 LXVua25vd24tbGludXgtZ251L0RvY2tlcmZpbGUgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9z aW1kL2NpL2RvY2tlci9wb3dlcnBjNjQtdW5rbm93bi1saW51eC1nbnUvRG9ja2VyZmlsZQorZGVs ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1k L2NpL2RvY2tlci9wb3dlcnBjNjQtdW5rbm93bi1saW51eC1nbnUvRG9ja2VyZmlsZQorKysrIC9k ZXYvbnVsbAorQEAgLTEsMTcgKzAsMCBAQAorLUZST00gdWJ1bnR1OjIyLjA0CistCistUlVOIGFw dC1nZXQgdXBkYXRlICYmIGFwdC1nZXQgaW5zdGFsbCAteSAtLW5vLWluc3RhbGwtcmVjb21tZW5k cyBcCistICAgIGdjYyBcCistICAgIGNhLWNlcnRpZmljYXRlcyBcCistICAgIGxpYmM2LWRldiBc CistICAgIGdjYy1wb3dlcnBjNjQtbGludXgtZ251IFwKKy0gICAgbGliYzYtZGV2LXBwYzY0LWNy b3NzIFwKKy0gICAgcWVtdS11c2VyICBcCistICAgIHFlbXUtc3lzdGVtLXBwYyBcCistICAgIG1h a2UgXAorLSAgICBmaWxlIAorLQorLUVOViBDQVJHT19UQVJHRVRfUE9XRVJQQzY0X1VOS05PV05f TElOVVhfR05VX0xJTktFUj1wb3dlcnBjNjQtbGludXgtZ251LWdjYyBcCistICAgIENBUkdPX1RB UkdFVF9QT1dFUlBDNjRfVU5LTk9XTl9MSU5VWF9HTlVfUlVOTkVSPSJxZW11LXBwYzY0IC1MIC91 c3IvcG93ZXJwYzY0LWxpbnV4LWdudSIgXAorLSAgICBDQz1wb3dlcnBjNjQtbGludXgtZ251LWdj YyBcCistICAgIE9CSkRVTVA9cG93ZXJwYzY0LWxpbnV4LWdudS1vYmpkdW1wCitkaWZmIC0tZ2l0 IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIvcG93ZXJwYzY0bGUtdW5r bm93bi1saW51eC1nbnUvRG9ja2VyZmlsZSBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQv Y2kvZG9ja2VyL3Bvd2VycGM2NGxlLXVua25vd24tbGludXgtZ251L0RvY2tlcmZpbGUKK2RlbGV0 ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9j aS9kb2NrZXIvcG93ZXJwYzY0bGUtdW5rbm93bi1saW51eC1nbnUvRG9ja2VyZmlsZQorKysrIC9k ZXYvbnVsbAorQEAgLTEsMTEgKzAsMCBAQAorLUZST00gdWJ1bnR1OjIyLjA0CistCistUlVOIGFw dC1nZXQgdXBkYXRlICYmIGFwdC1nZXQgaW5zdGFsbCAteSAtLW5vLWluc3RhbGwtcmVjb21tZW5k cyBcCistICAgICAgICBnY2MgbGliYzYtZGV2IHFlbXUtdXNlciBjYS1jZXJ0aWZpY2F0ZXMgXAor LSAgICAgICAgZ2NjLXBvd2VycGM2NGxlLWxpbnV4LWdudSBsaWJjNi1kZXYtcHBjNjRlbC1jcm9z cyBcCistICAgICAgICBxZW11LXN5c3RlbS1wcGMgZmlsZSBtYWtlCistCistRU5WIENBUkdPX1RB UkdFVF9QT1dFUlBDNjRMRV9VTktOT1dOX0xJTlVYX0dOVV9MSU5LRVI9cG93ZXJwYzY0bGUtbGlu dXgtZ251LWdjYyBcCistICAgIENBUkdPX1RBUkdFVF9QT1dFUlBDNjRMRV9VTktOT1dOX0xJTlVY X0dOVV9SVU5ORVI9InFlbXUtcHBjNjRsZSAtTCAvdXNyL3Bvd2VycGM2NGxlLWxpbnV4LWdudSIg XAorLSAgICBDQz1wb3dlcnBjNjRsZS1saW51eC1nbnUtZ2NjIFwKKy0gICAgT0JKRFVNUD1wb3dl cnBjNjRsZS1saW51eC1nbnUtb2JqZHVtcAorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3Qv cGFja2VkX3NpbWQvY2kvZG9ja2VyL3MzOTB4LXVua25vd24tbGludXgtZ251L0RvY2tlcmZpbGUg Yi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci9zMzkweC11bmtub3duLWxp bnV4LWdudS9Eb2NrZXJmaWxlCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJk X3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL3MzOTB4LXVua25vd24tbGludXgtZ251 L0RvY2tlcmZpbGUKKysrKyAvZGV2L251bGwKK0BAIC0xLDIwICswLDAgQEAKKy1GUk9NIHVidW50 dToyMi4wNAorLQorLVJVTiBhcHQtZ2V0IHVwZGF0ZSAmJiBcCistICAgIGFwdC1nZXQgaW5zdGFs bCAteSAtLW5vLWluc3RhbGwtcmVjb21tZW5kcyBcCistICAgIGNhLWNlcnRpZmljYXRlcyBcCist ICAgIGN1cmwgXAorLSAgICBjbWFrZSBcCistICAgIGdjYyBcCistICAgIGxpYmM2LWRldiBcCist ICAgIGcrKy1zMzkweC1saW51eC1nbnUgXAorLSAgICBsaWJjNi1kZXYtczM5MHgtY3Jvc3MgXAor LSAgICBxZW11LXVzZXIgXAorLSAgICBtYWtlIFwKKy0gICAgZmlsZQorLQorLUVOViBDQVJHT19U QVJHRVRfUzM5MFhfVU5LTk9XTl9MSU5VWF9HTlVfTElOS0VSPXMzOTB4LWxpbnV4LWdudS1nY2Mg XAorLSAgICBDQVJHT19UQVJHRVRfUzM5MFhfVU5LTk9XTl9MSU5VWF9HTlVfUlVOTkVSPSJxZW11 LXMzOTB4IC1MIC91c3IvczM5MHgtbGludXgtZ251IiBcCistICAgIENDX3MzOTB4X3Vua25vd25f bGludXhfZ251PXMzOTB4LWxpbnV4LWdudS1nY2MgXAorLSAgICBDWFhfczM5MHhfdW5rbm93bl9s aW51eF9nbnU9czM5MHgtbGludXgtZ251LWcrKyBcCistICAgIE9CSkRVTVA9czM5MHgtbGludXgt Z251LW9iamR1bXAKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2Np L2RvY2tlci9zcGFyYzY0LXVua25vd24tbGludXgtZ251L0RvY2tlcmZpbGUgYi90aGlyZF9wYXJ0 eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci9zcGFyYzY0LXVua25vd24tbGludXgtZ251L0Rv Y2tlcmZpbGUKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVz dC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIvc3BhcmM2NC11bmtub3duLWxpbnV4LWdudS9Eb2NrZXJm aWxlCisrKysgL2Rldi9udWxsCitAQCAtMSwxOCArMCwwIEBACistRlJPTSBkZWJpYW46Ym9va3dv cm0KKy0KKy1SVU4gYXB0LWdldCB1cGRhdGUgJiYgYXB0LWdldCBpbnN0YWxsIC15IC0tbm8taW5z dGFsbC1yZWNvbW1lbmRzIFwKKy0gICAgICAgIGN1cmwgY2EtY2VydGlmaWNhdGVzIFwKKy0gICAg ICAgIGdjYyBsaWJjNi1kZXYgXAorLSAgICAgICAgZ2NjLXNwYXJjNjQtbGludXgtZ251IGxpYmM2 LWRldi1zcGFyYzY0LWNyb3NzIFwKKy0gICAgICAgIHFlbXUtc3lzdGVtLXNwYXJjNjQgb3BlbmJp b3Mtc3BhcmMgc2VhYmlvcyBpcHhlLXFlbXUgXAorLSAgICAgICAgcDd6aXAtZnVsbCBjcGlvCist CistQ09QWSBsaW51eC1zcGFyYzY0LnNoIC8KKy1SVU4gYmFzaCAvbGludXgtc3BhcmM2NC5zaAor LQorLUNPUFkgdGVzdC1ydW5uZXItbGludXggLworLQorLUVOViBDQVJHT19UQVJHRVRfU1BBUkM2 NF9VTktOT1dOX0xJTlVYX0dOVV9MSU5LRVI9c3BhcmM2NC1saW51eC1nbnUtZ2NjIFwKKy0gICAg Q0FSR09fVEFSR0VUX1NQQVJDNjRfVU5LTk9XTl9MSU5VWF9HTlVfUlVOTkVSPSIvdGVzdC1ydW5u ZXItbGludXggc3BhcmM2NCIgXAorLSAgICBDQ19zcGFyYzY0X3Vua25vd25fbGludXhfZ251PXNw YXJjNjQtbGludXgtZ251LWdjYyBcCistICAgIFBBVEg9JFBBVEg6L3J1c3QvYmluCitkaWZmIC0t Z2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIvdGh1bWJ2N25lb24t bGludXgtYW5kcm9pZGVhYmkvRG9ja2VyZmlsZSBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3Np bWQvY2kvZG9ja2VyL3RodW1idjduZW9uLWxpbnV4LWFuZHJvaWRlYWJpL0RvY2tlcmZpbGUKK2Rl bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2lt ZC9jaS9kb2NrZXIvdGh1bWJ2N25lb24tbGludXgtYW5kcm9pZGVhYmkvRG9ja2VyZmlsZQorKysr IC9kZXYvbnVsbAorQEAgLTEsNDcgKzAsMCBAQAorLUZST00gdWJ1bnR1OjE2LjA0CistCistUlVO IGRwa2cgLS1hZGQtYXJjaGl0ZWN0dXJlIGkzODYgJiYgXAorLSAgICBhcHQtZ2V0IHVwZGF0ZSAm JiBcCistICAgIGFwdC1nZXQgaW5zdGFsbCAteSAtLW5vLWluc3RhbGwtcmVjb21tZW5kcyBcCist ICBmaWxlIFwKKy0gIG1ha2UgXAorLSAgY3VybCBcCistICBjYS1jZXJ0aWZpY2F0ZXMgXAorLSAg cHl0aG9uIFwKKy0gIHVuemlwIFwKKy0gIGV4cGVjdCBcCistICBvcGVuamRrLTktanJlIFwKKy0g IGxpYnN0ZGMrKzY6aTM4NiBcCistICBsaWJwdWxzZTAgXAorLSAgZ2NjIFwKKy0gIGxpYmM2LWRl dgorLQorLVdPUktESVIgL2FuZHJvaWQvCistQ09QWSBhbmRyb2lkKiAvYW5kcm9pZC8KKy0KKy1F TlYgQU5EUk9JRF9BUkNIPWFybQorLUVOViBQQVRIPSRQQVRIOi9hbmRyb2lkL25kay0kQU5EUk9J RF9BUkNIL2JpbjovYW5kcm9pZC9zZGsvdG9vbHM6L2FuZHJvaWQvc2RrL3BsYXRmb3JtLXRvb2xz CistCistUlVOIHNoIC9hbmRyb2lkL2FuZHJvaWQtaW5zdGFsbC1uZGsuc2ggJEFORFJPSURfQVJD SAorLVJVTiBzaCAvYW5kcm9pZC9hbmRyb2lkLWluc3RhbGwtc2RrLnNoICRBTkRST0lEX0FSQ0gK Ky1SVU4gbXYgL3Jvb3QvLmFuZHJvaWQgL3RtcAorLVJVTiBjaG1vZCA3NzcgLVIgL3RtcC8uYW5k cm9pZAorLVJVTiBjaG1vZCA3NTUgL2FuZHJvaWQvc2RrL3Rvb2xzLyogL2FuZHJvaWQvc2RrL2Vt dWxhdG9yL3FlbXUvbGludXgteDg2XzY0LyoKKy0KKy1FTlYgUEFUSD0kUEFUSDovcnVzdC9iaW4g XAorLSAgICBDQVJHT19UQVJHRVRfVEhVTUJWN05FT05fTElOVVhfQU5EUk9JREVBQklfTElOS0VS PWFybS1saW51eC1hbmRyb2lkZWFiaS1nY2MgXAorLSAgICBDQVJHT19UQVJHRVRfVEhVTUJWN05F T05fTElOVVhfQU5EUk9JREVBQklfUlVOTkVSPS90bXAvcnVudGVzdCBcCistICAgIE9CSkRVTVA9 YXJtLWxpbnV4LWFuZHJvaWRlYWJpLW9iamR1bXAgXAorLSAgICBIT01FPS90bXAKKy0KKy1BREQg cnVudGVzdC1hbmRyb2lkLnJzIC90bXAvcnVudGVzdC5ycworLUVOVFJZUE9JTlQgWyBcCistICAi YmFzaCIsIFwKKy0gICItYyIsIFwKKy0gICMgc2V0IFNIRUxMIHNvIGFuZHJvaWQgY2FuIGRldGVj dCBhIDY0Yml0cyBzeXN0ZW0sIHNlZQorLSAgIyBodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vYS80 MTc4OTE0NAorLSAgIlNIRUxMPS9iaW4vZGFzaCAvYW5kcm9pZC9zZGsvZW11bGF0b3IvZW11bGF0 b3IgQGFybSAtbm8td2luZG93ICYgXAorLSAgIHJ1c3RjIC90bXAvcnVudGVzdC5ycyAtbyAvdG1w L3J1bnRlc3QgJiYgXAorLSAgIGV4ZWMgXCIkQFwiIiwgXAorLSAgIi0tIiBcCistXQorZGlmZiAt LWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL3RodW1idjduZW9u LXVua25vd24tbGludXgtZ251ZWFiaWhmL0RvY2tlcmZpbGUgYi90aGlyZF9wYXJ0eS9ydXN0L3Bh Y2tlZF9zaW1kL2NpL2RvY2tlci90aHVtYnY3bmVvbi11bmtub3duLWxpbnV4LWdudWVhYmloZi9E b2NrZXJmaWxlCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1 c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL3RodW1idjduZW9uLXVua25vd24tbGludXgtZ251ZWFi aWhmL0RvY2tlcmZpbGUKKysrKyAvZGV2L251bGwKK0BAIC0xLDEzICswLDAgQEAKKy1GUk9NIHVi dW50dToxOC4wNAorLVJVTiBhcHQtZ2V0IHVwZGF0ZSAmJiBhcHQtZ2V0IGluc3RhbGwgLXkgLS1u by1pbnN0YWxsLXJlY29tbWVuZHMgXAorLSAgZ2NjIFwKKy0gIGNhLWNlcnRpZmljYXRlcyBcCist ICBsaWJjNi1kZXYgXAorLSAgZ2NjLWFybS1saW51eC1nbnVlYWJpaGYgXAorLSAgbGliYzYtZGV2 LWFybWhmLWNyb3NzIFwKKy0gIHFlbXUtdXNlciBcCistICBtYWtlIFwKKy0gIGZpbGUKKy1FTlYg Q0FSR09fVEFSR0VUX1RIVU1CVjdORU9OX1VOS05PV05fTElOVVhfR05VRUFCSUhGX0xJTktFUj1h cm0tbGludXgtZ251ZWFiaWhmLWdjYyBcCistICAgIENBUkdPX1RBUkdFVF9USFVNQlY3TkVPTl9V TktOT1dOX0xJTlVYX0dOVUVBQklIRl9SVU5ORVI9InFlbXUtYXJtIC1MIC91c3IvYXJtLWxpbnV4 LWdudWVhYmloZiIgXAorLSAgICBPQkpEVU1QPWFybS1saW51eC1nbnVlYWJpaGYtb2JqZHVtcAor ZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL3dhc20z Mi11bmtub3duLXVua25vd24vRG9ja2VyZmlsZSBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3Np bWQvY2kvZG9ja2VyL3dhc20zMi11bmtub3duLXVua25vd24vRG9ja2VyZmlsZQorZGVsZXRlZCBm aWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2Rv Y2tlci93YXNtMzItdW5rbm93bi11bmtub3duL0RvY2tlcmZpbGUKKysrKyAvZGV2L251bGwKK0BA IC0xLDM5ICswLDAgQEAKKy1GUk9NIHVidW50dToyMi4wNAorLQorLVJVTiBhcHQtZ2V0IHVwZGF0 ZSAteSAmJiBhcHQtZ2V0IGluc3RhbGwgLXkgLS1uby1pbnN0YWxsLXJlY29tbWVuZHMgXAorLSAg Y2EtY2VydGlmaWNhdGVzIFwKKy0gIGNsYW5nIFwKKy0gIGNtYWtlIFwKKy0gIGN1cmwgXAorLSAg Z2l0IFwKKy0gIGxpYmM2LWRldiBcCistICBtYWtlIFwKKy0gIG5pbmphLWJ1aWxkIFwKKy0gIHB5 dGhvbi1pcy1weXRob24zIFwKKy0gIHh6LXV0aWxzCistCistIyBJbnN0YWxsIGB3YXNtMndhdGAK Ky1SVU4gZ2l0IGNsb25lIC0tcmVjdXJzaXZlIGh0dHBzOi8vZ2l0aHViLmNvbS9XZWJBc3NlbWJs eS93YWJ0CistUlVOIG1ha2UgLUMgd2FidCAtaiQobnByb2MpCistRU5WIFBBVEg9JFBBVEg6L3dh YnQvYmluCistCistIyBJbnN0YWxsIGB3YXNtLWJpbmRnZW4tdGVzdC1ydW5uZXJgCistUlVOIGN1 cmwgLUwgaHR0cHM6Ly9naXRodWIuY29tL3J1c3R3YXNtL3dhc20tYmluZGdlbi9yZWxlYXNlcy9k b3dubG9hZC8wLjIuODcvd2FzbS1iaW5kZ2VuLTAuMi44Ny14ODZfNjQtdW5rbm93bi1saW51eC1t dXNsLnRhci5neiBcCistICB8IHRhciB4emYgLQorLSMgS2VlcCBpbiBzeW5jIHdpdGggdGhlIHZl cnNpb24gb24gQ2FyZ28udG9tbC4KKy1FTlYgUEFUSD0kUEFUSDovd2FzbS1iaW5kZ2VuLTAuMi44 Ny14ODZfNjQtdW5rbm93bi1saW51eC1tdXNsCistRU5WIENBUkdPX1RBUkdFVF9XQVNNMzJfVU5L Tk9XTl9VTktOT1dOX1JVTk5FUj13YXNtLWJpbmRnZW4tdGVzdC1ydW5uZXIKKy0KKy0jIEluc3Rh bGwgYG5vZGVgCistUlVOIGN1cmwgaHR0cHM6Ly9ub2RlanMub3JnL2Rpc3QvdjE0LjE2LjAvbm9k ZS12MTQuMTYuMC1saW51eC14NjQudGFyLnh6IHwgdGFyIHhKZiAtCistRU5WIFBBVEg9JFBBVEg6 L25vZGUtdjE0LjE2LjAtbGludXgteDY0L2JpbgorLQorLSMgV2UgdXNlIGEgc2hpbSBsaW5rZXIg dGhhdCByZW1vdmVzIGAtLXN0cmlwLWRlYnVnYCB3aGVuIHBhc3NlZCB0byBMTEQuIFdoaWxlCist IyB0aGlzIHR5cGljYWxseSByZXN1bHRzIGluIGludmFsaWQgZGVidWcgaW5mb3JtYXRpb24gaW4g cmVsZWFzZSBtb2RlIGl0IGRvZXNuJ3QKKy0jIHJlc3VsdCBpbiBhbiBpbnZhbGlkIG5hbWVzIHNl Y3Rpb24gd2hpY2ggaXMgd2hhdCB3ZSdyZSBpbnRlcmVzdGVkIGluLgorLUNPUFkgbGxkLXNoaW0u cnMgLworLUVOViBDQVJHT19UQVJHRVRfV0FTTTMyX1VOS05PV05fVU5LTk9XTl9MSU5LRVI9L3Rt cC9sbGQtc2hpbQorLQorLSMgUnVzdGMgaXNuJ3QgYXZhaWxhYmxlIHVudGlsIHRoaXMgY29udGFp bmVyIHN0YXJ0cywgc28gZGVmZXIgY29tcGlsYXRpb24gb2YgdGhlCistIyBzaGltLgorLUVOVFJZ UE9JTlQgL3J1c3QvYmluL3J1c3RjIC9sbGQtc2hpbS5ycyAtbyAvdG1wL2xsZC1zaGltICYmIGV4 ZWMgYmFzaCAiJEAiCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9j aS9kb2NrZXIveDg2XzY0LWxpbnV4LWFuZHJvaWQvRG9ja2VyZmlsZSBiL3RoaXJkX3BhcnR5L3J1 c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL3g4Nl82NC1saW51eC1hbmRyb2lkL0RvY2tlcmZpbGUK K2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRf c2ltZC9jaS9kb2NrZXIveDg2XzY0LWxpbnV4LWFuZHJvaWQvRG9ja2VyZmlsZQorKysrIC9kZXYv bnVsbAorQEAgLTEsMzEgKzAsMCBAQAorLUZST00gdWJ1bnR1OjIwLjA0CistCistUlVOIGFwdC1n ZXQgdXBkYXRlICYmIFwKKy0gICAgYXB0LWdldCBpbnN0YWxsIC15IC0tbm8taW5zdGFsbC1yZWNv bW1lbmRzIFwKKy0gIGNhLWNlcnRpZmljYXRlcyBcCistICBjdXJsIFwKKy0gIGdjYyBcCistICBs aWJjLWRldiBcCistICBweXRob24gXAorLSAgdW56aXAgXAorLSAgZmlsZSBcCistICBtYWtlCist CistV09SS0RJUiAvYW5kcm9pZC8KKy1FTlYgQU5EUk9JRF9BUkNIPXg4Nl82NAorLUNPUFkgYW5k cm9pZC1pbnN0YWxsLW5kay5zaCAvYW5kcm9pZC8KKy1SVU4gc2ggL2FuZHJvaWQvYW5kcm9pZC1p bnN0YWxsLW5kay5zaAorLQorLUVOViBTVERBUkNIX0FTU0VSVF9JTlNUUl9MSU1JVD0zMAorLQor LSMgV2UgZG8gbm90IHJ1biB4ODZfNjQtbGludXgtYW5kcm9pZCB0ZXN0cyBvbiBhbiBhbmRyb2lk IGVtdWxhdG9yLgorLSMgU2VlIGNpL2FuZHJvaWQtc3lzaW1hZ2Uuc2ggZm9yIGluZm9ybWF0aW9u cyBhYm91dCBob3cgdGVzdHMgYXJlIHJ1bi4KKy1DT1BZIGFuZHJvaWQtc3lzaW1hZ2Uuc2ggL2Fu ZHJvaWQvCistUlVOIGJhc2ggL2FuZHJvaWQvYW5kcm9pZC1zeXNpbWFnZS5zaCB4ODZfNjQgeDg2 XzY0LTI0X3IwNy56aXAKKy0KKy1FTlYgUEFUSD0kUEFUSDovcnVzdC9iaW46L2FuZHJvaWQvbmRr L3Rvb2xjaGFpbnMvbGx2bS9wcmVidWlsdC9saW51eC14ODZfNjQvYmluIFwKKy0gICAgQ0FSR09f VEFSR0VUX1g4Nl82NF9MSU5VWF9BTkRST0lEX0xJTktFUj14ODZfNjQtbGludXgtYW5kcm9pZDIx LWNsYW5nIFwKKy0gICAgQ0NfeDg2XzY0X2xpbnV4X2FuZHJvaWQ9eDg2XzY0LWxpbnV4LWFuZHJv aWQyMS1jbGFuZyBcCistICAgIENYWF94ODZfNjRfbGludXhfYW5kcm9pZD14ODZfNjQtbGludXgt YW5kcm9pZDIxLWNsYW5nKysgXAorLSAgICBPQkpEVU1QPWxsdm0tb2JqZHVtcCBcCistICAgIEhP TUU9L3RtcAorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9j a2VyL3g4Nl82NC11bmtub3duLWxpbnV4LWdudS1lbXVsYXRlZC9Eb2NrZXJmaWxlIGIvdGhpcmRf cGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIveDg2XzY0LXVua25vd24tbGludXgtZ251 LWVtdWxhdGVkL0RvY2tlcmZpbGUKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhp cmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIveDg2XzY0LXVua25vd24tbGludXgt Z251LWVtdWxhdGVkL0RvY2tlcmZpbGUKKysrKyAvZGV2L251bGwKK0BAIC0xLDE2ICswLDAgQEAK Ky1GUk9NIHVidW50dToxOC4wNAorLVJVTiBhcHQtZ2V0IHVwZGF0ZSAmJiBhcHQtZ2V0IGluc3Rh bGwgLXkgLS1uby1pbnN0YWxsLXJlY29tbWVuZHMgXAorLSAgZ2NjIFwKKy0gIGxpYmM2LWRldiBc CistICBmaWxlIFwKKy0gIG1ha2UgXAorLSAgY2EtY2VydGlmaWNhdGVzIFwKKy0gIHdnZXQgXAor LSAgYnppcDIgXAorLSAgY21ha2UgXAorLSAgbGliY2xhbmctZGV2IFwKKy0gIGNsYW5nCistCist UlVOIHdnZXQgaHR0cHM6Ly9naXRodWIuY29tL2duemxiZy9pbnRlbF9zZGUvcmF3L21hc3Rlci9z ZGUtZXh0ZXJuYWwtOC4xNi4wLTIwMTgtMDEtMzAtbGluLnRhci5iejIKKy1SVU4gdGFyIC14amYg c2RlLWV4dGVybmFsLTguMTYuMC0yMDE4LTAxLTMwLWxpbi50YXIuYnoyCistRU5WIENBUkdPX1RB UkdFVF9YODZfNjRfVU5LTk9XTl9MSU5VWF9HTlVfUlVOTkVSPSIvc2RlLWV4dGVybmFsLTguMTYu MC0yMDE4LTAxLTMwLWxpbi9zZGU2NCAtLSIKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0 L3BhY2tlZF9zaW1kL2NpL2RvY2tlci94ODZfNjQtdW5rbm93bi1saW51eC1nbnUvRG9ja2VyZmls ZSBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL3g4Nl82NC11bmtub3du LWxpbnV4LWdudS9Eb2NrZXJmaWxlCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3Ro aXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL3g4Nl82NC11bmtub3duLWxpbnV4 LWdudS9Eb2NrZXJmaWxlCisrKysgL2Rldi9udWxsCitAQCAtMSwxMCArMCwwIEBACistRlJPTSB1 YnVudHU6MTguMDQKKy1SVU4gYXB0LWdldCB1cGRhdGUgJiYgYXB0LWdldCBpbnN0YWxsIC15IC0t bm8taW5zdGFsbC1yZWNvbW1lbmRzIFwKKy0gIGdjYyBcCistICBsaWJjNi1kZXYgXAorLSAgZmls ZSBcCistICBtYWtlIFwKKy0gIGNhLWNlcnRpZmljYXRlcyBcCistICBjbWFrZSBcCistICBsaWJj bGFuZy1kZXYgXAorLSAgY2xhbmcKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tl ZF9zaW1kL2NpL2RveC5zaCBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG94LnNo CitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2Vk X3NpbWQvY2kvZG94LnNoCisrKysgL2Rldi9udWxsCitAQCAtMSwyNyArMCwwIEBACistIyEvYmlu L3NoCistCistc2V0IC1leAorLQorLXJtIC1yZiB0YXJnZXQvZG9jCistbWtkaXIgLXAgdGFyZ2V0 L2RvYworLQorLSMgQnVpbGQgQVBJIGRvY3VtZW50YXRpb24KKy1jYXJnbyBkb2MgLS1mZWF0dXJl cz1pbnRvX2JpdHMKKy0KKy0jIEJ1aWxkIFBlcmZvcm1hbmNlIEd1aWRlCistIyBGSVhNRTogaHR0 cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy1udXJzZXJ5L21kQm9vay9pc3N1ZXMvNzgwCistIyBt ZGJvb2sgYnVpbGQgcGVyZi1ndWlkZSAtZCB0YXJnZXQvZG9jL3BlcmYtZ3VpZGUKKy1jZCBwZXJm LWd1aWRlCistbWRib29rIGJ1aWxkCistY2QgLQorLWNwIC1yIHBlcmYtZ3VpZGUvYm9vayB0YXJn ZXQvZG9jL3BlcmYtZ3VpZGUKKy0KKy0jIElmIHdlJ3JlIG9uIHRyYXZpcywgbm90IGEgUFIsIGFu ZCBvbiB0aGUgcmlnaHQgYnJhbmNoLCBwdWJsaXNoIQorLWlmIFsgIiRUUkFWSVNfUFVMTF9SRVFV RVNUIiA9ICJmYWxzZSIgXSAmJiBbICIkVFJBVklTX0JSQU5DSCIgPSAibWFzdGVyIiBdOyB0aGVu CistICBweXRob24zIC12VgorLSAgcGlwIC12VgorLSAgcHl0aG9uMy45IC12VgorLSAgcGlwIGlu c3RhbGwgZ2hwX2ltcG9ydCAtLXVzZXIKKy0gIGdocC1pbXBvcnQgLW4gdGFyZ2V0L2RvYworLSAg Z2l0IHB1c2ggLXFmIGh0dHBzOi8vJHtHSF9QQUdFU31AZ2l0aHViLmNvbS8ke1RSQVZJU19SRVBP X1NMVUd9LmdpdCBnaC1wYWdlcworLWZpCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9w YWNrZWRfc2ltZC9jaS9saW51eC1zMzkweC5zaCBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3Np bWQvY2kvbGludXgtczM5MHguc2gKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhp cmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9saW51eC1zMzkweC5zaAorKysrIC9kZXYvbnVs bAorQEAgLTEsMTggKzAsMCBAQAorLXNldCAtZXgKKy0KKy1ta2RpciAtbSA3NzcgL3FlbXUKKy1j ZCAvcWVtdQorLQorLWN1cmwgLUxPIGh0dHBzOi8vZ2l0aHViLmNvbS9xZW11L3FlbXUvcmF3L21h c3Rlci9wYy1iaW9zL3MzOTAtY2N3LmltZworLWN1cmwgLUxPIGh0dHA6Ly9mdHAuZGViaWFuLm9y Zy9kZWJpYW4vZGlzdHMvdGVzdGluZy9tYWluL2luc3RhbGxlci1zMzkweC8yMDE3MDgyOC9pbWFn ZXMvZ2VuZXJpYy9rZXJuZWwuZGViaWFuCistY3VybCAtTE8gaHR0cDovL2Z0cC5kZWJpYW4ub3Jn L2RlYmlhbi9kaXN0cy90ZXN0aW5nL21haW4vaW5zdGFsbGVyLXMzOTB4LzIwMTcwODI4L2ltYWdl cy9nZW5lcmljL2luaXRyZC5kZWJpYW4KKy0KKy1tdiBrZXJuZWwuZGViaWFuIGtlcm5lbAorLW12 IGluaXRyZC5kZWJpYW4gaW5pdHJkLmd6CistCistbWtkaXIgaW5pdAorLWNkIGluaXQKKy1ndW56 aXAgLWMgLi4vaW5pdHJkLmd6IHwgY3BpbyAtaWQKKy1ybSAuLi9pbml0cmQuZ3oKKy1jcCAvdXNy L3MzOTB4LWxpbnV4LWdudS9saWIvbGliZ2NjX3Muc28uMSB1c3IvbGliLworLWNobW9kIGErdyAu CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9saW51eC1zcGFy YzY0LnNoIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9saW51eC1zcGFyYzY0LnNo CitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2Vk X3NpbWQvY2kvbGludXgtc3BhcmM2NC5zaAorKysrIC9kZXYvbnVsbAorQEAgLTEsMTcgKzAsMCBA QAorLXNldCAtZXgKKy0KKy1ta2RpciAtbSA3NzcgL3FlbXUKKy1jZCAvcWVtdQorLQorLWN1cmwg LUxPIGh0dHBzOi8vY2RpbWFnZS5kZWJpYW4ub3JnL2NkaW1hZ2UvcG9ydHMvOS4wL3NwYXJjNjQv aXNvLWNkL2RlYmlhbi05LjAtc3BhcmM2NC1ORVRJTlNULTEuaXNvCistN3ogZSBkZWJpYW4tOS4w LXNwYXJjNjQtTkVUSU5TVC0xLmlzbyBib290L2luaXRyZC5negorLTd6IGUgZGViaWFuLTkuMC1z cGFyYzY0LU5FVElOU1QtMS5pc28gYm9vdC9zcGFyYzY0CistbXYgc3BhcmM2NCBrZXJuZWwKKy1y bSBkZWJpYW4tOS4wLXNwYXJjNjQtTkVUSU5TVC0xLmlzbworLQorLW1rZGlyIGluaXQKKy1jZCBp bml0CistZ3VuemlwIC1jIC4uL2luaXRyZC5neiB8IGNwaW8gLWlkCistcm0gLi4vaW5pdHJkLmd6 CistY3AgL3Vzci9zcGFyYzY0LWxpbnV4LWdudS9saWIvbGliZ2NjX3Muc28uMSB1c3IvbGliLwor LWNobW9kIGErdyAuCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9j aS9sbGQtc2hpbS5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvbGxkLXNoaW0u cnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNr ZWRfc2ltZC9jaS9sbGQtc2hpbS5ycworKysrIC9kZXYvbnVsbAorQEAgLTEsMTEgKzAsMCBAQAor LXVzZSBzdGQ6Om9zOjp1bml4OjpwcmVsdWRlOjoqOworLXVzZSBzdGQ6OnByb2Nlc3M6OkNvbW1h bmQ7CistdXNlIHN0ZDo6ZW52OworLQorLWZuIG1haW4oKSB7CistICAgIGxldCBhcmdzID0gZW52 OjphcmdzKCkKKy0gICAgICAgIC5za2lwKDEpCistICAgICAgICAuZmlsdGVyKHxzfCBzICE9ICIt LXN0cmlwLWRlYnVnIikKKy0gICAgICAgIC5jb2xsZWN0Ojo8VmVjPF8+PigpOworLSAgICBwYW5p YyEoImZhaWxlZCB0byBleGVjOiB7fSIsIENvbW1hbmQ6Om5ldygicnVzdC1sbGQiKS5hcmdzKCZh cmdzKS5leGVjKCkpOworLX0KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9z aW1kL2NpL21heF9saW5lX3dpZHRoLnNoIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9j aS9tYXhfbGluZV93aWR0aC5zaAorZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGly ZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL21heF9saW5lX3dpZHRoLnNoCisrKysgL2Rldi9u dWxsCitAQCAtMSwxNyArMCwwIEBACistIyEvdXNyL2Jpbi9lbnYgc2gKKy0KKy1zZXQgLXgKKy0K Ky1leHBvcnQgc3VjY2Vzcz10cnVlCistCistZmluZCAuIC1pbmFtZSAnKi5ycycgfCB3aGlsZSBy ZWFkIC1yIGZpbGU7IGRvCistICAgIHJlc3VsdD0kKGdyZXAgJy5cezc5XH0nICIke2ZpbGV9IiB8 IGdyZXAgLS1pbnZlcnQgJ2h0dHAnKQorLSAgICBpZiBbICIke3Jlc3VsdH0iID0gIiIgXQorLSAg ICB0aGVuCistICAgICAgICA6CistICAgIGVsc2UKKy0gICAgICAgIGVjaG8gImZpbGUgXCIke2Zp bGV9XCI6ICRyZXN1bHQiCistICAgICAgICBleGl0IDEKKy0gICAgZmkKKy1kb25lCistCitkaWZm IC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9ydW4tZG9ja2VyLnNoIGIv dGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9ydW4tZG9ja2VyLnNoCitkZWxldGVkIGZp bGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvcnVu LWRvY2tlci5zaAorKysrIC9kZXYvbnVsbAorQEAgLTEsMzggKzAsMCBAQAorLSMgU21hbGwgc2Ny aXB0IHRvIHJ1biB0ZXN0cyBmb3IgYSB0YXJnZXQgKG9yIGFsbCB0YXJnZXRzKSBpbnNpZGUgYWxs IHRoZQorLSMgcmVzcGVjdGl2ZSBkb2NrZXIgaW1hZ2VzLgorLQorLXNldCAtZXgKKy0KKy1ydW4o KSB7CistICAgIGVjaG8gIkJ1aWxkaW5nIGRvY2tlciBjb250YWluZXIgZm9yIFRBUkdFVD0ke1RB UkdFVH0gUlVTVEZMQUdTPSR7UlVTVEZMQUdTfSIKKy0gICAgZG9ja2VyIGJ1aWxkIC10IHBhY2tl ZF9zaW1kIC1mIGNpL2RvY2tlci8ke1RBUkdFVH0vRG9ja2VyZmlsZSBjaS8KKy0gICAgbWtkaXIg LXAgdGFyZ2V0CistICAgIHRhcmdldD0kKGVjaG8gIiR7VEFSR0VUfSIgfCBzZWQgJ3MvLWVtdWxh dGVkLy8nKQorLSAgICBlY2hvICJSdW5uaW5nIGRvY2tlciIKKy0gICAgZG9ja2VyIHJ1biBcCist ICAgICAgLS11c2VyIGBpZCAtdWA6YGlkIC1nYCBcCistICAgICAgLS1ybSBcCistICAgICAgLS1p bml0IFwKKy0gICAgICAtLXZvbHVtZSAkSE9NRS8uY2FyZ286L2NhcmdvIFwKKy0gICAgICAtLWVu diBDQVJHT19IT01FPS9jYXJnbyBcCistICAgICAgLS12b2x1bWUgYHJ1c3RjIC0tcHJpbnQgc3lz cm9vdGA6L3J1c3Q6cm8gXAorLSAgICAgIC0tZW52IFRBUkdFVD0kdGFyZ2V0IFwKKy0gICAgICAt LWVudiBOT1JVTiBcCistICAgICAgLS1lbnYgTk9WRVJJRlkgXAorLSAgICAgIC0tZW52IFJVU1RG TEFHUyBcCistICAgICAgLS12b2x1bWUgYHB3ZGA6L2NoZWNrb3V0OnJvIFwKKy0gICAgICAtLXZv bHVtZSBgcHdkYC90YXJnZXQ6L2NoZWNrb3V0L3RhcmdldCBcCistICAgICAgLS13b3JrZGlyIC9j aGVja291dCBcCistICAgICAgLS1wcml2aWxlZ2VkIFwKKy0gICAgICBwYWNrZWRfc2ltZCBcCist ICAgICAgYmFzaCBcCistICAgICAgLWMgJ1BBVEg9JFBBVEg6L3J1c3QvYmluIGV4ZWMgY2kvcnVu LnNoJworLX0KKy0KKy1pZiBbIC16ICIke1RBUkdFVH0iIF07IHRoZW4KKy0gIGZvciBkIGluIGBs cyBjaS9kb2NrZXIvYDsgZG8KKy0gICAgcnVuICRkCistICBkb25lCistZWxzZQorLSAgcnVuICR7 VEFSR0VUfQorLWZpCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9j aS9ydW4uc2ggYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL3J1bi5zaAorZGVsZXRl ZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2Np L3J1bi5zaAorKysrIC9kZXYvbnVsbAorQEAgLTEsOTkgKzAsMCBAQAorLSMhL3Vzci9iaW4vZW52 IGJhc2gKKy0KKy1zZXQgLWV4CistCistOiAke1RBUkdFVD8iVGhlIFRBUkdFVCBlbnZpcm9ubWVu dCB2YXJpYWJsZSBtdXN0IGJlIHNldC4ifQorLQorLSMgVGVzdHMgYXJlIGFsbCBzdXBlciBmYXN0 IGFueXdheSwgYW5kIHRoZXkgZmF1bHQgb2Z0ZW4gZW5vdWdoIG9uIHRyYXZpcyB0aGF0CistIyBo YXZpbmcgb25seSBvbmUgdGhyZWFkIGluY3JlYXNlcyBkZWJ1Z2dhYmlsaXR5IHRvIGJlIHdvcnRo IGl0LgorLSNleHBvcnQgUlVTVF9URVNUX1RIUkVBRFM9MQorLSNleHBvcnQgUlVTVF9CQUNLVFJB Q0U9ZnVsbAorLSNleHBvcnQgUlVTVF9URVNUX05PQ0FQVFVSRT0xCistCistIyBTb21lIGFwcHZl eW9yIGJ1aWxkcyBydW4gb3V0LW9mLW1lbW9yeTsgdGhpcyBhdHRlbXB0cyB0byBtaXRpZ2F0ZSB0 aGF0OgorLSMgaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy1udXJzZXJ5L3BhY2tlZF9zaW1k L2lzc3Vlcy8zOQorLSMgZXhwb3J0IFJVU1RGTEFHUz0iJHtSVVNURkxBR1N9IC1DIGNvZGVnZW4t dW5pdHM9MSIKKy0jIGV4cG9ydCBDQVJHT19CVUlMRF9KT0JTPTEKKy0KKy1leHBvcnQgQ0FSR09f U1VCQ01EPXRlc3QKKy1pZiBbWyAiJHtOT1JVTn0iID09ICIxIiBdXTsgdGhlbgorLSAgICBleHBv cnQgQ0FSR09fU1VCQ01EPWJ1aWxkCistZmkKKy0KKy1pZiBbWyAke1RBUkdFVH0gPT0gIng4Nl82 NC1hcHBsZS1pb3MiIF1dIHx8IFtbICR7VEFSR0VUfSA9PSAiaTM4Ni1hcHBsZS1pb3MiIF1dOyB0 aGVuCistICAgIGV4cG9ydCBSVVNURkxBR1M9IiR7UlVTVEZMQUdTfSAtQ2xpbmstYXJnPS1taW9z LXNpbXVsYXRvci12ZXJzaW9uLW1pbj03LjAiCistICAgIHJ1c3RjIC4vY2kvZGVwbG95X2FuZF9y dW5fb25faW9zX3NpbXVsYXRvci5ycyAtbyAkSE9NRS9ydW50ZXN0CistICAgIGV4cG9ydCBDQVJH T19UQVJHRVRfWDg2XzY0X0FQUExFX0lPU19SVU5ORVI9JEhPTUUvcnVudGVzdAorLSAgICBleHBv cnQgQ0FSR09fVEFSR0VUX0kzODZfQVBQTEVfSU9TX1JVTk5FUj0kSE9NRS9ydW50ZXN0CistZmkK Ky0KKy0jIFRoZSBzb3VyY2UgZGlyZWN0b3J5IGlzIHJlYWQtb25seS4gTmVlZCB0byBjb3B5IGlu dGVybmFsIGNyYXRlcyB0byB0aGUgdGFyZ2V0CistIyBkaXJlY3RvcnkgZm9yIHRoZWlyIENhcmdv LmxvY2sgdG8gYmUgcHJvcGVybHkgd3JpdHRlbi4KKy1ta2RpciB0YXJnZXQgfHwgdHJ1ZQorLQor LXJ1c3RjIC0tdmVyc2lvbgorLWNhcmdvIC0tdmVyc2lvbgorLWVjaG8gIlRBUkdFVD0ke1RBUkdF VH0iCistZWNobyAiSE9TVD0ke0hPU1R9IgorLWVjaG8gIlJVU1RGTEFHUz0ke1JVU1RGTEFHU30i CistZWNobyAiTk9SVU49JHtOT1JVTn0iCistZWNobyAiTk9WRVJJRlk9JHtOT1ZFUklGWX0iCist ZWNobyAiQ0FSR09fU1VCQ01EPSR7Q0FSR09fU1VCQ01EfSIKKy1lY2hvICJDQVJHT19CVUlMRF9K T0JTPSR7Q0FSR09fQlVJTERfSk9CU30iCistZWNobyAiQ0FSR09fSU5DUkVNRU5UQUw9JHtDQVJH T19JTkNSRU1FTlRBTH0iCistZWNobyAiUlVTVF9URVNUX1RIUkVBRFM9JHtSVVNUX1RFU1RfVEhS RUFEU30iCistZWNobyAiUlVTVF9CQUNLVFJBQ0U9JHtSVVNUX0JBQ0tUUkFDRX0iCistZWNobyAi UlVTVF9URVNUX05PQ0FQVFVSRT0ke1JVU1RfVEVTVF9OT0NBUFRVUkV9IgorLQorLWNhcmdvX3Rl c3QoKSB7CistICAgIGNtZD0iY2FyZ28gJHtDQVJHT19TVUJDTUR9IC0tdmVyYm9zZSAtLXRhcmdl dD0ke1RBUkdFVH0gJHtAfSIKKy0gICAgaWYgWyAiJHtOT1JVTn0iICE9ICIxIiBdCistICAgIHRo ZW4KKy0gICAgICAgIGlmIFsgIiRUQVJHRVQiICE9ICJ3YXNtMzItdW5rbm93bi11bmtub3duIiBd CistICAgICAgICB0aGVuCistICAgICAgICAgICAgY21kPSIkY21kIC0tIC0tcXVpZXQiCistICAg ICAgICBmaQorLSAgICBmaQorLSAgICBta2RpciB0YXJnZXQgfHwgdHJ1ZQorLSAgICAke2NtZH0g Mj4mMSB8IHRlZSA+IHRhcmdldC9vdXRwdXQKKy0gICAgaWYgW1sgJHtQSVBFU1RBVFVTWzBdfSAh PSAwIF1dOyB0aGVuCistICAgICAgICBjYXQgdGFyZ2V0L291dHB1dAorLSAgICAgICAgcmV0dXJu IDEKKy0gICAgZmkKKy19CistCistY2FyZ29fdGVzdF9pbXBsKCkgeworLSAgICBPUklHSU5BTF9S VVNURkxBR1M9JHtSVVNURkxBR1N9CistICAgIFJVU1RGTEFHUz0iJHtPUklHSU5BTF9SVVNURkxB R1N9IC0tY2ZnIHRlc3RfdjE2ICAtLWNmZyB0ZXN0X3YzMiAtLWNmZyB0ZXN0X3Y2NCIgY2FyZ29f dGVzdCAke0B9CistICAgIFJVU1RGTEFHUz0iJHtPUklHSU5BTF9SVVNURkxBR1N9IC0tY2ZnIHRl c3RfdjEyOCAtLWNmZyB0ZXN0X3YyNTYiIGNhcmdvX3Rlc3QgJHtAfQorLSAgICBSVVNURkxBR1M9 IiR7T1JJR0lOQUxfUlVTVEZMQUdTfSAtLWNmZyB0ZXN0X3Y1MTIiIGNhcmdvX3Rlc3QgJHtAfQor LSAgICBSVVNURkxBR1M9JHtPUklHSU5BTF9SVVNURkxBR1N9CistfQorLQorLSMgRGVidWcgcnVu OgorLWlmIFtbICIke1RBUkdFVH0iICE9ICJ3YXNtMzItdW5rbm93bi11bmtub3duIiBdXTsgdGhl bgorLSAgICMgUnVuIHdhc20zMi11bmtub3duLXVua25vd24gaW4gcmVsZWFzZSBtb2RlIG9ubHkK Ky0gICBjYXJnb190ZXN0X2ltcGwKKy1maQorLQorLWlmIFtbICIke1RBUkdFVH0iID09ICJ4ODZf NjQtdW5rbm93bi1saW51eC1nbnUiIF1dIHx8IFtbICIke1RBUkdFVH0iID09ICJ4ODZfNjQtcGMt d2luZG93cy1tc3ZjIiBdXTsgdGhlbgorLSAgICAjIHVzZSBzbGVlZiBvbiBsaW51eCBhbmQgd2lu ZG93cyB4ODZfNjQgYnVpbGRzCistICAgICMgRklYTUU6IFVzZSBgY29yZV9hcmNoLHNsZWVmLXN5 c2AgZmVhdHVyZXMgb25jZSB0aGV5IHdvcmtzIGFnYWluCistICAgIGNhcmdvX3Rlc3RfaW1wbCAt LXJlbGVhc2UgLS1mZWF0dXJlcz1pbnRvX2JpdHMKKy1lbHNlCistICAgICMgRklYTUU6IFVzZSBg Y29yZV9hcmNoYCBmZWF0dXJlIG9uY2UgaXQgd29ya3MgYWdhaW4KKy0gICAgY2FyZ29fdGVzdF9p bXBsIC0tcmVsZWFzZSAtLWZlYXR1cmVzPWludG9fYml0cworLWZpCistCistIyBWZXJpZnkgY29k ZSBnZW5lcmF0aW9uCistaWYgW1sgIiR7Tk9WRVJJRll9IiAhPSAiMSIgXV07IHRoZW4KKy0gICAg Y3AgLXIgdmVyaWZ5L3ZlcmlmeSB0YXJnZXQvdmVyaWZ5CistICAgIGV4cG9ydCBTVERTSU1EX0FT U0VSVF9JTlNUUl9MSU1JVD0zMAorLSAgICBpZiBbWyAiJHtUQVJHRVR9IiA9PSAiaTU4Ni11bmtu b3duLWxpbnV4LWdudSIgXV07IHRoZW4KKy0gICAgICAgIGV4cG9ydCBTVERTSU1EX0FTU0VSVF9J TlNUUl9MSU1JVD01MAorLSAgICBmaQorLSAgICBjYXJnb190ZXN0IC0tcmVsZWFzZSAtLW1hbmlm ZXN0LXBhdGg9dGFyZ2V0L3ZlcmlmeS9DYXJnby50b21sCistZmkKKy0KKy0jIEZJWE1FOiBGaWd1 cmUgb3V0IHdoaWNoIGV4YW1wbGVzIHRha2UgdG9vIGxvbmcgdG8gcnVuIGFuZCBpZ25vcmUgb3Ig YWRqdXN0IHRob3NlCistIy4gY2kvcnVuX2V4YW1wbGVzLnNoCitkaWZmIC0tZ2l0IGEvdGhpcmRf cGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9ydW5fZXhhbXBsZXMuc2ggYi90aGlyZF9wYXJ0eS9y dXN0L3BhY2tlZF9zaW1kL2NpL3J1bl9leGFtcGxlcy5zaAorZGVsZXRlZCBmaWxlIG1vZGUgMTAw NjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL3J1bl9leGFtcGxlcy5z aAorKysrIC9kZXYvbnVsbAorQEAgLTEsNTEgKzAsMCBAQAorLSMgUnVucyBhbGwgZXhhbXBsZXMu CistCistIyBGSVhNRTogaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy1udXJzZXJ5L3BhY2tl ZF9zaW1kL2lzc3Vlcy81NQorLSMgQWxsIGV4YW1wbGVzIGZhaWwgdG8gYnVpbGQgZm9yIGBhcm12 Ny1hcHBsZS1pb3NgLgorLWlmIFtbICR7VEFSR0VUfSA9PSAiYXJtdjctYXBwbGUtaW9zIiBdXTsg dGhlbgorLSAgICBleGl0IDAKKy1maQorLQorLSMgRklYTUU6IHRyYXZpcyBleGNlZWRzIDUwIG1p bnV0ZXMgb24gdGhlc2UgdGFyZ2V0cworLSMgU2tpcHBpbmcgdGhlIGV4YW1wbGVzIGlzIGFuIGF0 dGVtcHQgYXQgcHJldmVudGluZyB0cmF2aXMgZnJvbSB0aW1pbmctb3V0CistaWYgW1sgJHtUQVJH RVR9ID09ICJhcm0tbGludXgtYW5kcm9pZGFiaSIgXV0gfHwgW1sgJHtUQVJHRVR9ID09ICJhYXJj aDY0LWxpbnV4LWFuZHJvaWRhYmkiIF1dIFwKKy0gICAgfHwgW1sgJHtUQVJHRVR9ID09ICJzcGFy YzY0LXVua25vd24tbGludXgtZ251IiBdXTsgdGhlbgorLSAgICBleGl0IDAKKy1maQorLQorLWlm IFtbICR7VEFSR0VUfSA9PSAid2FzbTMyLXVua25vd24tdW5rbm93biIgXV07IHRoZW4KKy0gICAg ZXhpdCAwCistZmkKKy0KKy1jcCAtciBleGFtcGxlcy9hb2JlbmNoIHRhcmdldC9hb2JlbmNoCist Y2FyZ29fdGVzdCAtLW1hbmlmZXN0LXBhdGg9dGFyZ2V0L2FvYmVuY2gvQ2FyZ28udG9tbCAtLXJl bGVhc2UgLS1uby1kZWZhdWx0LWZlYXR1cmVzCistY2FyZ29fdGVzdCAtLW1hbmlmZXN0LXBhdGg9 dGFyZ2V0L2FvYmVuY2gvQ2FyZ28udG9tbCAtLXJlbGVhc2UgLS1mZWF0dXJlcz0yNTZiaXQKKy0K Ky1jcCAtciBleGFtcGxlcy9kb3RfcHJvZHVjdCB0YXJnZXQvZG90X3Byb2R1Y3QKKy1jYXJnb190 ZXN0IC0tbWFuaWZlc3QtcGF0aD10YXJnZXQvZG90X3Byb2R1Y3QvQ2FyZ28udG9tbCAtLXJlbGVh c2UKKy0KKy1jcCAtciBleGFtcGxlcy9mYW5ua3VjaF9yZWR1eCB0YXJnZXQvZmFubmt1Y2hfcmVk dXgKKy1jYXJnb190ZXN0IC0tbWFuaWZlc3QtcGF0aD10YXJnZXQvZmFubmt1Y2hfcmVkdXgvQ2Fy Z28udG9tbCAtLXJlbGVhc2UKKy0KKy0jIEZJWE1FOiBodHRwczovL2dpdGh1Yi5jb20vcnVzdC1s YW5nLW51cnNlcnkvcGFja2VkX3NpbWQvaXNzdWVzLzU2CistaWYgW1sgJHtUQVJHRVR9ICE9ICJp NTg2LXVua25vd24tbGludXgtZ251IiBdXTsgdGhlbgorLSAgICBjcCAtciBleGFtcGxlcy9tYW5k ZWxicm90IHRhcmdldC9tYW5kZWxicm90CistICAgIGNhcmdvX3Rlc3QgLS1tYW5pZmVzdC1wYXRo PXRhcmdldC9tYW5kZWxicm90L0NhcmdvLnRvbWwgLS1yZWxlYXNlCistZmkKKy0KKy1jcCAtciBl eGFtcGxlcy9tYXRyaXhfaW52ZXJzZSB0YXJnZXQvbWF0cml4X2ludmVyc2UKKy1jYXJnb190ZXN0 IC0tbWFuaWZlc3QtcGF0aD10YXJnZXQvbWF0cml4X2ludmVyc2UvQ2FyZ28udG9tbCAtLXJlbGVh c2UKKy0KKy1jcCAtciBleGFtcGxlcy9uYm9keSB0YXJnZXQvbmJvZHkKKy1jYXJnb190ZXN0IC0t bWFuaWZlc3QtcGF0aD10YXJnZXQvbmJvZHkvQ2FyZ28udG9tbCAtLXJlbGVhc2UKKy0KKy1jcCAt ciBleGFtcGxlcy9zcGVjdHJhbF9ub3JtIHRhcmdldC9zcGVjdHJhbF9ub3JtCistY2FyZ29fdGVz dCAtLW1hbmlmZXN0LXBhdGg9dGFyZ2V0L3NwZWN0cmFsX25vcm0vQ2FyZ28udG9tbCAtLXJlbGVh c2UKKy0KKy1pZiBbWyAke1RBUkdFVH0gIT0gImk1ODYtdW5rbm93bi1saW51eC1nbnUiIF1dOyB0 aGVuCistICAgIGNwIC1yIGV4YW1wbGVzL3N0ZW5jaWwgdGFyZ2V0L3N0ZW5jaWwKKy0gICAgY2Fy Z29fdGVzdCAtLW1hbmlmZXN0LXBhdGg9dGFyZ2V0L3N0ZW5jaWwvQ2FyZ28udG9tbCAtLXJlbGVh c2UKKy1maQorLQorLWNwIC1yIGV4YW1wbGVzL3RyaWFuZ2xlX3hmb3JtIHRhcmdldC90cmlhbmds ZV94Zm9ybQorLWNhcmdvX3Rlc3QgLS1tYW5pZmVzdC1wYXRoPXRhcmdldC90cmlhbmdsZV94Zm9y bS9DYXJnby50b21sIC0tcmVsZWFzZQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFj a2VkX3NpbWQvY2kvcnVudGVzdC1hbmRyb2lkLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRf c2ltZC9jaS9ydW50ZXN0LWFuZHJvaWQucnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0t IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9ydW50ZXN0LWFuZHJvaWQucnMKKysr KyAvZGV2L251bGwKK0BAIC0xLDQ1ICswLDAgQEAKKy11c2Ugc3RkOjplbnY7CistdXNlIHN0ZDo6 cHJvY2Vzczo6Q29tbWFuZDsKKy11c2Ugc3RkOjpwYXRoOjp7UGF0aCwgUGF0aEJ1Zn07CistCist Zm4gbWFpbigpIHsKKy0gICAgbGV0IGFyZ3MgPSBlbnY6OmFyZ3Nfb3MoKQorLSAgICAgICAgLnNr aXAoMSkKKy0gICAgICAgIC5maWx0ZXIofGFyZ3wgYXJnICE9ICItLXF1aWV0IikKKy0gICAgICAg IC5jb2xsZWN0Ojo8VmVjPF8+PigpOworLSAgICBhc3NlcnRfZXEhKGFyZ3MubGVuKCksIDEpOwor LSAgICBsZXQgdGVzdCA9IFBhdGhCdWY6OmZyb20oJmFyZ3NbMF0pOworLSAgICBsZXQgZHN0ID0g UGF0aDo6bmV3KCIvZGF0YS9sb2NhbC90bXAiKS5qb2luKHRlc3QuZmlsZV9uYW1lKCkudW53cmFw KCkpOworLQorLSAgICBsZXQgc3RhdHVzID0gQ29tbWFuZDo6bmV3KCJhZGIiKQorLSAgICAgICAg LmFyZygid2FpdC1mb3ItZGV2aWNlIikKKy0gICAgICAgIC5zdGF0dXMoKQorLSAgICAgICAgLmV4 cGVjdCgiZmFpbGVkIHRvIHJ1bjogYWRiIHdhaXQtZm9yLWRldmljZSIpOworLSAgICBhc3NlcnQh KHN0YXR1cy5zdWNjZXNzKCkpOworLQorLSAgICBsZXQgc3RhdHVzID0gQ29tbWFuZDo6bmV3KCJh ZGIiKQorLSAgICAgICAgLmFyZygicHVzaCIpCistICAgICAgICAuYXJnKCZ0ZXN0KQorLSAgICAg ICAgLmFyZygmZHN0KQorLSAgICAgICAgLnN0YXR1cygpCistICAgICAgICAuZXhwZWN0KCJmYWls ZWQgdG8gcnVuOiBhZGIgcHVzaHIiKTsKKy0gICAgYXNzZXJ0IShzdGF0dXMuc3VjY2VzcygpKTsK Ky0KKy0gICAgbGV0IG91dHB1dCA9IENvbW1hbmQ6Om5ldygiYWRiIikKKy0gICAgICAgIC5hcmco InNoZWxsIikKKy0gICAgICAgIC5hcmcoJmRzdCkKKy0gICAgICAgIC5vdXRwdXQoKQorLSAgICAg ICAgLmV4cGVjdCgiZmFpbGVkIHRvIHJ1bjogYWRiIHNoZWxsIik7CistICAgIGFzc2VydCEoc3Rh dHVzLnN1Y2Nlc3MoKSk7CistCistICAgIHByaW50bG4hKCJzdGF0dXM6IHt9XG5zdGRvdXQgLS0t XG57fVxuc3RkZXJyIC0tLVxue30iLAorLSAgICAgICAgICAgICBvdXRwdXQuc3RhdHVzLAorLSAg ICAgICAgICAgICBTdHJpbmc6OmZyb21fdXRmOF9sb3NzeSgmb3V0cHV0LnN0ZG91dCksCistICAg ICAgICAgICAgIFN0cmluZzo6ZnJvbV91dGY4X2xvc3N5KCZvdXRwdXQuc3RkZXJyKSk7CistCist ICAgIGxldCBzdGRvdXQgPSBTdHJpbmc6OmZyb21fdXRmOF9sb3NzeSgmb3V0cHV0LnN0ZG91dCk7 CistICAgIGxldCBtdXQgbGluZXMgPSBzdGRvdXQubGluZXMoKS5maWx0ZXIofGx8IGwuc3RhcnRz X3dpdGgoInRlc3QgcmVzdWx0IikpOworLSAgICBpZiAhbGluZXMuYWxsKHxsfCBsLmNvbnRhaW5z KCJ0ZXN0IHJlc3VsdDogb2siKSAmJiBsLmNvbnRhaW5zKCIwIGZhaWxlZCIpKSB7CistICAgICAg ICBwYW5pYyEoImZhaWxlZCB0byBmaW5kIHN1Y2Nlc3NmdWwgdGVzdCBydW4iKTsKKy0gICAgfQor LX0KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL3NldHVwX2Jl bmNobWFya3Muc2ggYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL3NldHVwX2JlbmNo bWFya3Muc2gKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVz dC9wYWNrZWRfc2ltZC9jaS9zZXR1cF9iZW5jaG1hcmtzLnNoCisrKysgL2Rldi9udWxsCitAQCAt MSw3ICswLDAgQEAKKy0jIS91c3IvYmluL2VudiBiYXNoCistCistc2V0IC1leAorLQorLSMgR2V0 IGxhdGVzdCBJU1BDIGJpbmFyeSBmb3IgdGhlIHRhcmdldCBhbmQgcHV0IGl0IGluIHRoZSBwYXRo CistZ2l0IGNsb25lIGh0dHBzOi8vZ2l0aHViLmNvbS9nbnpsYmcvaXNwYy1iaW5hcmllcworLWNw IGlzcGMtYmluYXJpZXMvaXNwYy0ke1RBUkdFVH0gaXNwYworZGlmZiAtLWdpdCBhL3RoaXJkX3Bh cnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvdGVzdC1ydW5uZXItbGludXggYi90aGlyZF9wYXJ0eS9y dXN0L3BhY2tlZF9zaW1kL2NpL3Rlc3QtcnVubmVyLWxpbnV4CitkZWxldGVkIGZpbGUgbW9kZSAx MDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvdGVzdC1ydW5uZXIt bGludXgKKysrKyAvZGV2L251bGwKK0BAIC0xLDI0ICswLDAgQEAKKy0jIS9iaW4vc2gKKy0KKy1z ZXQgLWUKKy0KKy1hcmNoPSQxCistcHJvZz0kMgorLQorLWNkIC9xZW11L2luaXQKKy1jcCAtZiAk MiBwcm9nCistZmluZCAuIHwgY3BpbyAtLWNyZWF0ZSAtLWZvcm1hdD0nbmV3YycgLS1xdWlldCB8 IGd6aXAgPiAuLi9pbml0cmQuZ3oKKy1jZCAuLgorLQorLXRpbWVvdXQgMzBzIHFlbXUtc3lzdGVt LSRhcmNoIFwKKy0gICAgICAgIC1tIDEwMjQgXAorLSAgICAgICAgLW5vZ3JhcGhpYyBcCistICAg ICAgICAta2VybmVsIGtlcm5lbCBcCistICAgICAgICAtaW5pdHJkIGluaXRyZC5neiBcCistICAg ICAgICAtYXBwZW5kIGluaXQ9L3Byb2cgPiBvdXRwdXQgfHwgdHJ1ZQorLQorLSMgcmVtb3ZlIGtl cm5lbCBtZXNzYWdlcworLXRyIC1kICdccicgPCBvdXRwdXQgfCBlZ3JlcCAtdiAnXlxbJworLQor LSMgaWYgdGhlIG91dHB1dCBjb250YWlucyBhIGZhaWx1cmUsIHJldHVybiBlcnJvcgorLSEgZ3Jl cCBGQUlMRUQgb3V0cHV0ID4gL2Rldi9udWxsCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVz dC9wYWNrZWRfc2ltZC9jb250cmlidXRpbmcubWQgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9z aW1kL2NvbnRyaWJ1dGluZy5tZAorZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGly ZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NvbnRyaWJ1dGluZy5tZAorKysrIC9kZXYvbnVsbAor QEAgLTEsNjcgKzAsMCBAQAorLSMgQ29udHJpYnV0aW5nIHRvIGBwYWNrZWRfc2ltZGAKKy0KKy1X ZWxjb21lISBJZiB5b3UgYXJlIHJlYWRpbmcgdGhpcyBkb2N1bWVudCwgaXQgbWVhbnMgeW91IGFy ZSBpbnRlcmVzdGVkIGluIGNvbnRyaWJ1dGluZworLXRvIHRoZSBgcGFja2VkX3NpbWRgIGNyYXRl LgorLQorLSMjIFJlcG9ydGluZyBpc3N1ZXMKKy0KKy1BbGwgaXNzdWVzIHdpdGggdGhpcyBjcmF0 ZSBhcmUgdHJhY2tlZCB1c2luZyBHaXRIdWIncyBbSXNzdWUgVHJhY2tlcl0uCistCistWW91IGNh biB1c2UgaXNzdWVzIHRvIGJyaW5nIGJ1Z3MgdG8gdGhlIGF0dGVudGlvbiBvZiB0aGUgbWFpbnRh aW5lcnMsIHRvIGRpc2N1c3MKKy1jZXJ0YWluIHByb2JsZW1zIGVuY291bnRlcmVkIHdpdGggdGhl IGNyYXRlLCBvciB0byByZXF1ZXN0IG5ldyBmZWF0dXJlcyAoYWx0aG91Z2gKKy1mZWF0dXJlIHJl cXVlc3RzIHNob3VsZCBiZSBsaW1pdGVkIHRvIHRoaW5ncyBtZW50aW9uZWQgaW4gdGhlIFtSRkNd KS4KKy0KKy1PbmUgdGhpbmcgdG8ga2VlcCBpbiBtaW5kIGlzIHRvIGFsd2F5cyB1c2UgdGhlICoq bGF0ZXN0KiogbmlnaHRseSB0b29sY2hhaW4gd2hlbgorLXdvcmtpbmcgb24gdGhpcyBjcmF0ZS4g RHVlIHRvIHRoZSBuYXR1cmUgb2YgdGhpcyBwcm9qZWN0LCB3ZSB1c2UgYSBsb3Qgb2YgdW5zdGFi bGUKKy1mZWF0dXJlcywgbWVhbmluZyBicmVha2FnZSBoYXBwZW5zIG9mdGVuLgorLQorLVtJc3N1 ZSBUcmFja2VyXTogaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy1udXJzZXJ5L3BhY2tlZF9z aW1kL2lzc3VlcworLVtSRkNdOiBodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL3JmY3MvcHVs bC8yMzY2CistCistIyMjIExMVk0gaXNzdWVzCistCistVGhlIFJ1c3QgY29tcGlsZXIgcmVsaWVz IG9uIFtMTFZNXShodHRwczovL2xsdm0ub3JnLykgZm9yIG1hY2hpbmUgY29kZSBnZW5lcmF0aW9u LAorLWFuZCBxdWl0ZSBhIGZldyBMTFZNIGJ1Z3MgaGF2ZSBiZWVuIGRpc2NvdmVyZWQgZHVyaW5n IHRoZSBkZXZlbG9wbWVudCBvZiB0aGlzIHByb2plY3QuCistCistSWYgeW91IGVuY291bnRlciBp c3N1ZXMgd2l0aCBpbmNvcnJlY3Qvc3Vib3B0aW1hbCBjb2RlZ2VuLCB3aGljaCB5b3UgZG8gbm90 IGVuY291bnRlcgorLXdoZW4gdXNpbmcgdGhlIFtTSU1EIHZlbmRvciBpbnRyaW5zaWNzXShodHRw czovL2RvYy5ydXN0LWxhbmcub3JnL25pZ2h0bHkvc3RkL2FyY2gvKSwKKy1pdCBpcyBsaWtlbHkg dGhlIGlzc3VlIGlzIHdpdGggTExWTSwgb3IgdGhpcyBjcmF0ZSdzIGludGVyYWN0aW9uIHdpdGgg aXQuCistCistWW91IHNob3VsZCBmaXJzdCBvcGVuIGFuIGlzc3VlICoqaW4gdGhpcyByZXBvKiog dG8gaGVscCB1cyB0cmFjayB0aGUgcHJvYmxlbSwgYW5kIHdlCistd2lsbCBoZWxwIGRldGVybWlu ZSB3aGF0IGlzIHRoZSBleGFjdCBjYXVzZSBvZiB0aGUgcHJvYmxlbS4KKy1JZiBMTFZNIGlzIGlu ZGVlZCB0aGUgY2F1c2UsIHRoZSBpc3N1ZSB3aWxsIGJlIHJlcG9ydGVkIHVwc3RyZWFtIHRvIHRo ZQorLVtMTFZNIGJ1Z3RyYWNrZXJdKGh0dHBzOi8vYnVncy5sbHZtLm9yZy8pLgorLQorLSMjIFN1 Ym1pdHRpbmcgUHVsbCBSZXF1ZXN0cworLQorLU5ldyBjb2RlIGlzIHN1Ym1pdHRlZCB0byB0aGUg Y3JhdGUgdXNpbmcgR2l0SHViJ3MgW3B1bGwgcmVxdWVzdF0gbWVjaGFuaXNtLgorLVlvdSBzaG91 bGQgZmlyc3QgZm9yayB0aGlzIHJlcG9zaXRvcnksIG1ha2UgeW91ciBjaGFuZ2VzIChwcmVmZXJh Ymx5IGluIGEgbmV3CistYnJhbmNoKSwgdGhlbiB1c2UgR2l0SHViJ3Mgd2ViIFVJIHRvIGNyZWF0 ZSBhIG5ldyBQUi4KKy0KKy1bcHVsbCByZXF1ZXN0XTogaHR0cHM6Ly9oZWxwLmdpdGh1Yi5jb20v YXJ0aWNsZXMvYWJvdXQtcHVsbC1yZXF1ZXN0cy8KKy0KKy0jIyMgRXhhbXBsZXMKKy0KKy1UaGUg YGV4YW1wbGVzYCBkaXJlY3RvcnkgY29udGFpbnMgY29kZSBzaG93Y2FzaW5nIFNJTUQgY29kZSB3 cml0dGVuIHdpdGggdGhpcyBjcmF0ZSwKKy11c3VhbGx5IGluIGNvbXBhcmlzb24gdG8gc2NhbGFy IG9yIElTUEMgY29kZS4gSWYgeW91IGhhdmUgYSBwcm9qZWN0IC8gaWRlYSB3aGljaAorLXVzZXMg U0lNRCwgd2UnZCBsb3ZlIHRvIGFkZCBpdCB0byB0aGUgZXhhbXBsZXMgbGlzdC4KKy0KKy1FdmVy eSBleGFtcGxlIHNob3VsZCBpbmNsdWRlIGEgc21hbGwgYFJFQURNRWAsIGRlc2NyaWJpbmcgdGhl IGV4YW1wbGUgY29kZSdzIHB1cnBvc2UuCistSWYgeW91ciBleGFtcGxlIGNvdWxkIHBvdGVudGlh bGx5IHdvcmsgYXMgYSBiZW5jaG1hcmssIHRoZW4gYWRkIGEgYGJlbmNobWFyay5zaGAKKy1zY3Jp cHQgdG8gYWxsb3cgcnVubmluZyB0aGUgZXhhbXBsZSBiZW5jaG1hcmsgY29kZSBpbiBDSS4gU2Vl IGFuIGV4aXN0aW5nIGV4YW1wbGUncworLVtgYmVuY2htYXJrLnNoYF0oZXhhbXBsZXMvYW9iZW5j aC9iZW5jaG1hcmsuc2gpIGZvciBhIHNhbXBsZS4KKy0KKy1Eb24ndCBmb3JnZXQgdG8gdXBkYXRl IHRoZSBjcmF0ZSdzIHRvcC1sZXZlbCBgUkVBRE1FYCB3aXRoIGEgbGluayB0byB5b3VyIGV4YW1w bGUuCistCistIyMjIFBlcmYgZ3VpZGUKKy0KKy1UaGUgb2JqZWN0aXZlIG9mIHRoZSBbcGVyZm9y bWFuY2UgZ3VpZGVdW3BlcmYtZ3VpZGVdIGlzIHRvIGJlIGEgY29tcHJlaGVuc2l2ZQorLXJlc291 cmNlIGRldGFpbGluZyB0aGUgcHJvY2VzcyBvZiBvcHRpbWl6aW5nIFJ1c3QgY29kZSB3aXRoIFNJ TUQgc3VwcG9ydC4KKy0KKy1JZiB5b3UgYmVsaWV2ZSBhIGNlcnRhaW4gc2VjdGlvbiBjb3VsZCBi ZSByZXdvcmRlZCwgb3IgaWYgeW91IGhhdmUgYW55IHRpcHMgJiB0cmlja3MKKy1yZWxhdGVkIHRv IFNJTUQgd2hpY2ggeW91J2QgbGlrZSB0byBzaGFyZSwgcGxlYXNlIG9wZW4gYSBQUi4KKy0KKy1b bWRCb29rXSBpcyB1c2VkIHRvIG1hbmFnZSB0aGUgZm9ybWF0dGluZyBvZiB0aGUgZ3VpZGUgYXMg YSBib29rLgorLQorLVtwZXJmLWd1aWRlXTogaHR0cHM6Ly9ydXN0LWxhbmctbnVyc2VyeS5naXRo dWIuaW8vcGFja2VkX3NpbWQvcGVyZi1ndWlkZS8KKy1bbWRCb29rXTogaHR0cHM6Ly9naXRodWIu Y29tL3J1c3QtbGFuZy1udXJzZXJ5L21kQm9vaworZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1 c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlkZS8uZ2l0aWdub3JlIGIvdGhpcmRfcGFydHkvcnVzdC9w YWNrZWRfc2ltZC9wZXJmLWd1aWRlLy5naXRpZ25vcmUKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0 NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9wZXJmLWd1aWRlLy5naXRpZ25v cmUKKysrKyAvZGV2L251bGwKK0BAIC0xLDEgKzAsMCBAQAorLS9ib29rCitkaWZmIC0tZ2l0IGEv dGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9wZXJmLWd1aWRlL2Jvb2sudG9tbCBiL3RoaXJk X3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlkZS9ib29rLnRvbWwKK2RlbGV0ZWQgZmls ZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9wZXJmLWd1 aWRlL2Jvb2sudG9tbAorKysrIC9kZXYvbnVsbAorQEAgLTEsMTIgKzAsMCBAQAorLVtib29rXQor LWF1dGhvcnMgPSBbIkdvbnphbG8gQnJpdG8gR2FkZXNjaGkiLCAiR2FicmllbCBNYWplcmkiXQor LW11bHRpbGluZ3VhbCA9IGZhbHNlCistc3JjID0gInNyYyIKKy10aXRsZSA9ICJSdXN0IFNJTUQg UGVyZm9ybWFuY2UgR3VpZGUiCistZGVzY3JpcHRpb24gPSAiVGhpcyBib29rIGRlc2NyaWJlcyBo b3cgdG8gd3JpdGUgcGVyZm9ybWFudCBTSU1EIGNvZGUgaW4gUnVzdC4iCistCistW2J1aWxkXQor LWNyZWF0ZS1taXNzaW5nID0gZmFsc2UKKy0KKy1bb3V0cHV0Lmh0bWxdCistYWRkaXRpb25hbC1j c3MgPSBbIi4vc3JjL2FzY2lpLmNzcyJdCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9w YWNrZWRfc2ltZC9wZXJmLWd1aWRlL3NyYy9TVU1NQVJZLm1kIGIvdGhpcmRfcGFydHkvcnVzdC9w YWNrZWRfc2ltZC9wZXJmLWd1aWRlL3NyYy9TVU1NQVJZLm1kCitkZWxldGVkIGZpbGUgbW9kZSAx MDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlkZS9zcmMv U1VNTUFSWS5tZAorKysrIC9kZXYvbnVsbAorQEAgLTEsMjEgKzAsMCBAQAorLSMgU3VtbWFyeQor LQorLVtJbnRyb2R1Y3Rpb25dKC4vaW50cm9kdWN0aW9uLm1kKQorLQorLS0gW0Zsb2F0aW5nLXBv aW50IE1hdGhdKC4vZmxvYXQtbWF0aC9mcC5tZCkKKy0gIC0gW1Nob3J0LXZlY3RvciBNYXRoIExp YnJhcnldKC4vZmxvYXQtbWF0aC9zdm1sLm1kKQorLSAgLSBbQXBwcm94aW1hdGUgZnVuY3Rpb25z XSguL2Zsb2F0LW1hdGgvYXBwcm94Lm1kKQorLSAgLSBbRnVzZWQgbXVsdGlwbHktYWNjdW11bGF0 ZV0oLi9mbG9hdC1tYXRoL2ZtYS5tZCkKKy0KKy0tIFtUYXJnZXQgZmVhdHVyZXNdKC4vdGFyZ2V0 LWZlYXR1cmUvZmVhdHVyZXMubWQpCistICAtIFtVc2luZyBgUlVTVEZMQUdTYF0oLi90YXJnZXQt ZmVhdHVyZS9ydXN0ZmxhZ3MubWQpCistICAtIFtVc2luZyB0aGUgYHRhcmdldF9mZWF0dXJlYCBh dHRyaWJ1dGVdKC4vdGFyZ2V0LWZlYXR1cmUvYXR0cmlidXRlLm1kKQorLSAgLSBbSW50ZXJhY3Rp b24gd2l0aCBpbmxpbmluZ10oLi90YXJnZXQtZmVhdHVyZS9pbmxpbmluZy5tZCkKKy0gIC0gW0Rl dGVjdGluZyBmZWF0dXJlcyBhdCBydW50aW1lXSguL3RhcmdldC1mZWF0dXJlL3J1bnRpbWUubWQp CistCistLSBbQm91bmRzIGNoZWNraW5nXSguL2JvdW5kX2NoZWNrcy5tZCkKKy0tIFtWZXJ0aWNh bCBhbmQgaG9yaXpvbnRhbCBvcGVyYXRpb25zXSguL3ZlcnQtaG9yLW9wcy5tZCkKKy0KKy0tIFtQ ZXJmb3JtYW5jZSBwcm9maWxpbmddKC4vcHJvZi9wcm9maWxpbmcubWQpCistICAtIFtQcm9maWxp bmcgb24gTGludXhdKC4vcHJvZi9saW51eC5tZCkKKy0gIC0gW1VzaW5nIG1hY2hpbmUgY29kZSBh bmFseXplcnNdKC4vcHJvZi9tY2EubWQpCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9w YWNrZWRfc2ltZC9wZXJmLWd1aWRlL3NyYy9hc2NpaS5jc3MgYi90aGlyZF9wYXJ0eS9ydXN0L3Bh Y2tlZF9zaW1kL3BlcmYtZ3VpZGUvc3JjL2FzY2lpLmNzcworZGVsZXRlZCBmaWxlIG1vZGUgMTAw NjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUvc3JjL2Fz Y2lpLmNzcworKysrIC9kZXYvbnVsbAorQEAgLTEsNCArMCwwIEBACistY29kZSB7CistICAgIC8q ICJTb3VyY2UgQ29kZSBQcm8iIGJyZWFrcyBBU0NJSSBhcnQgKi8KKy0gICAgZm9udC1mYW1pbHk6 IENvbnNvbGFzLCAiVWJ1bnR1IE1vbm8iLCBNZW5sbywgIkRlamFWdSBTYW5zIE1vbm8iLCBtb25v c3BhY2U7CistfQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvcGVy Zi1ndWlkZS9zcmMvYm91bmRfY2hlY2tzLm1kIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2lt ZC9wZXJmLWd1aWRlL3NyYy9ib3VuZF9jaGVja3MubWQKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0 NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9wZXJmLWd1aWRlL3NyYy9ib3Vu ZF9jaGVja3MubWQKKysrKyAvZGV2L251bGwKK0BAIC0xLDIyICswLDAgQEAKKy0jIEJvdW5kcyBj aGVja2luZworLQorLVJlYWRpbmcgYW5kIHdyaXRpbmcgcGFja2VkIHZlY3RvcnMgdG8vZnJvbSBz bGljZXMgaXMgY2hlY2tlZCBieSBkZWZhdWx0LgorLUluZGVwZW5kZW50bHkgb2YgdGhlIGNvbmZp Z3VyYXRpb24gb3B0aW9ucyB1c2VkLCB0aGUgc2FmZSBmdW5jdGlvbnM6CistCistKiBgU2ltZDxb VDsgTl0+Ojpmcm9tX3NsaWNlX2FsaWduZWQoJiBzWy4uXSlgCistKiBgU2ltZDxbVDsgTl0+Ojp3 cml0ZV90b19zbGljZV9hbGlnbmVkKCZtdXQgc1suLl0pYAorLQorLWFsd2F5cyBjaGVjayB0aGF0 OgorLQorLSogdGhlIHNsaWNlIGlzIGJpZyBlbm91Z2ggdG8gaG9sZCB0aGUgdmVjdG9yCistKiB0 aGUgc2xpY2UgaXMgc3VpdGFibHkgYWxpZ25lZCB0byBwZXJmb3JtIGFuIGFsaWduZWQgbG9hZC9z dG9yZSBmb3IgYSBgU2ltZDxbVDsKKy0gIE5dPmAgKHRoaXMgYWxpZ25tZW50IGlzIG9mdGVuIG11 Y2ggbGFyZ2VyIHRoYW4gdGhhdCBvZiBgVGApLgorLQorLVRoZXJlIGFyZSBgX3VuYWxpZ25lZGAg dmVyc2lvbnMgdGhhdCB1c2UgdW5hbGlnbmVkIGxvYWQgYW5kIHN0b3JlcywgYXMgd2VsbCBhcwor LWB1bnNhZmVgIGBfdW5jaGVja2VkYCB0aGF0IGRvIG5vdCBwZXJmb3JtIGFueSBjaGVja3MgaWZm IGBkZWJ1Zy1hc3NlcnRpb25zID0KKy1mYWxzZWAgLyBgZGVidWcgPSBmYWxzZWAuIFRoYXQgaXMs IHRoZSBgX3VuY2hlY2tlZGAgbWV0aG9kcyBkbyBzdGlsbCBhc3NlcnQgc2l6ZQorLWFuZCBhbGln bm1lbnQgaW4gZGVidWcgYnVpbGRzIGFuZCBjb3VsZCBhbHNvIGRvIHNvIGluIHJlbGVhc2UgYnVp bGRzIGRlcGVuZGluZworLW9uIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMuCistCistVGhlc2Ug YXNzZXJ0aW9ucyBkbyBvZnRlbiBzaWduaWZpY2FudGx5IGltcGFjdCBwZXJmb3JtYW5jZSBhbmQg eW91IHNob3VsZCBiZQorLWF3YXJlIG9mIHRoZW0uCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkv cnVzdC9wYWNrZWRfc2ltZC9wZXJmLWd1aWRlL3NyYy9mbG9hdC1tYXRoL2FwcHJveC5tZCBiL3Ro aXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlkZS9zcmMvZmxvYXQtbWF0aC9hcHBy b3gubWQKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9w YWNrZWRfc2ltZC9wZXJmLWd1aWRlL3NyYy9mbG9hdC1tYXRoL2FwcHJveC5tZAorKysrIC9kZXYv bnVsbAorQEAgLTEsOCArMCwwIEBACistIyBBcHByb3hpbWF0ZSBmdW5jdGlvbnMKKy0KKy08IS0t IFRPRE86CistCistRXhwbGFpbiB0aGF0IHRoZXkgZXhpc3RzLCB0aGF0IHRoZXkgYXJlIG9mdGVu IF9tdWNoXyBmYXN0ZXIsIGhvdyB0byB1c2UgdGhlbSwKKy10aGF0IHBlb3BsZSBzaG91bGQgY2hl Y2sgd2hldGhlciB0aGUgZXJyb3IgaXMgZ29vZCBlbm91Z2ggZm9yIHRoZWlyCistYXBwbGljYXRp b25zLiBFeHBsYWluIHRoYXQgdGhpcyBlcnJvciBpcyBjdXJyZW50bHkgdW5zdGFibGUgYW5kIG1p Z2h0IGNoYW5nZS4KKy0tLT4KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9z aW1kL3BlcmYtZ3VpZGUvc3JjL2Zsb2F0LW1hdGgvZm1hLm1kIGIvdGhpcmRfcGFydHkvcnVzdC9w YWNrZWRfc2ltZC9wZXJmLWd1aWRlL3NyYy9mbG9hdC1tYXRoL2ZtYS5tZAorZGVsZXRlZCBmaWxl IG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3Vp ZGUvc3JjL2Zsb2F0LW1hdGgvZm1hLm1kCisrKysgL2Rldi9udWxsCitAQCAtMSw2ICswLDAgQEAK Ky0jIEZ1c2VkIE11bHRpcGx5IEFkZAorLQorLTwhLS0gVE9ETzoKKy1FeHBsYWluIHRoYXQgdGhp cyBpcyBhIGNvbXBvdW5kIG9wZXJhdGlvbiwgaW5maW5pdGUgcHJlY2lzaW9uLCBkaWZmZXJlbmNl CistYmV0d2VlbiBgbXVsX2FkZGAgYW5kIGBtdWxfYWRkZWAsIHRoYXQgTExWTSBjYW5ub3QgZG8g dGhpcyBieSBpdHNlbGYsIGV0Yy4KKy0tLT4KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0 L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUvc3JjL2Zsb2F0LW1hdGgvZnAubWQgYi90aGlyZF9wYXJ0 eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUvc3JjL2Zsb2F0LW1hdGgvZnAubWQKK2RlbGV0 ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9w ZXJmLWd1aWRlL3NyYy9mbG9hdC1tYXRoL2ZwLm1kCisrKysgL2Rldi9udWxsCitAQCAtMSwzICsw LDAgQEAKKy0jIEZsb2F0aW5nLXBvaW50IG1hdGgKKy0KKy1UaGlzIGNoYXB0ZXIgY29udGFpbnMg aW5mb3JtYXRpb24gcGVydGFpbmluZyB0byB3b3JraW5nIHdpdGggZmxvYXRpbmctcG9pbnQgbnVt YmVycy4KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3Vp ZGUvc3JjL2Zsb2F0LW1hdGgvc3ZtbC5tZCBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQv cGVyZi1ndWlkZS9zcmMvZmxvYXQtbWF0aC9zdm1sLm1kCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2 NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlkZS9zcmMvZmxv YXQtbWF0aC9zdm1sLm1kCisrKysgL2Rldi9udWxsCitAQCAtMSw3ICswLDAgQEAKKy0jIFNob3J0 IFZlY3RvciBNYXRoIExpYnJhcnkKKy0KKy08IS0tIFRPRE86CistRXhwbGFpbiBob3cgaXMgc2hv cnQtdmVjdG9yIG1hdGggcGVyZm9ybWVkIGJ5IGRlZmF1bHQgKGp1c3Qgc2NhbGFyaXplZCBsaWJt IGNhbGxzKS4KKy0KKy1FeHBsYWluIGhvdyB0byBlbmFibGUgYHNsZWVmYCwgZXRjLgorLS0tPgor ZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlkZS9zcmMv aW50cm9kdWN0aW9uLm1kIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9wZXJmLWd1aWRl L3NyYy9pbnRyb2R1Y3Rpb24ubWQKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhp cmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9wZXJmLWd1aWRlL3NyYy9pbnRyb2R1Y3Rpb24ubWQK KysrKyAvZGV2L251bGwKK0BAIC0xLDI2ICswLDAgQEAKKy0jIEludHJvZHVjdGlvbgorLQorLSMj IFdoYXQgaXMgU0lNRAorLQorLTwhLS0gVE9ETzoKKy1kZXNjcmliZSB3aGF0IFNJTUQgaXMsIHdo aWNoIGFsZ29yaXRobXMgY2FuIGJlbmVmaXQgZnJvbSBpdCwKKy1naXZlIHVzYWdlIGV4YW1wbGVz CistLS0+CistCistIyMgSGlzdG9yeSBvZiBTSU1EIGluIFJ1c3QKKy0KKy08IS0tIFRPRE86Cist ZGlzY3VzcyBoaXN0b3J5IG9mIHVuc3RhYmxlIHN0ZDo6c2ltZCwKKy1zdGFiaWxpemF0aW9uIG9m IHN0ZDo6YXJjaCwgZXRjLgorLS0tPgorLQorLSMjIERpc2NvdmVyIHBhY2tlZF9zaW1kCistCist PCEtLSBUT0RPOiBkZXNjcmliZSBzY29wZSBvZiB0aGlzIHByb2plY3QgLS0+CistCistV3JpdGlu ZyBmYXN0IGFuZCBwb3J0YWJsZSBTSU1EIGFsZ29yaXRobXMgdXNpbmcgYHBhY2tlZF9zaW1kYCBp cywgdW5mb3J0dW5hdGVseSwKKy1ub3QgdHJpdmlhbC4gVGhlcmUgYXJlIG1hbnkgcGl0ZmFscyB0 aGF0IG9uZSBzaG91bGQgYmUgYXdhcmUgb2YsIGFuZCBzb21lIGlkaW9tcworLXRoYXQgaGVscCBh dm9pZCB0aG9zZSBwaXRmYWxscy4KKy0KKy1UaGlzIGJvb2sgYXR0ZW1wdHMgdG8gZG9jdW1lbnQg dGhlc2UgYmVzdCBwcmFjdGljZXMgYW5kIHByb3ZpZGVzIHByYWN0aWNhbCBleGFtcGxlcworLW9u IGhvdyB0byBhcHBseSB0aGUgdGlwcyB0byBfeW91cl8gY29kZS4KK2RpZmYgLS1naXQgYS90aGly ZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUvc3JjL3Byb2YvbGludXgubWQgYi90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUvc3JjL3Byb2YvbGludXgubWQK K2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRf c2ltZC9wZXJmLWd1aWRlL3NyYy9wcm9mL2xpbnV4Lm1kCisrKysgL2Rldi9udWxsCitAQCAtMSwx MDcgKzAsMCBAQAorLSMgUGVyZm9ybWFuY2UgcHJvZmlsaW5nIG9uIExpbnV4CistCistIyMgVXNp bmcgYHBlcmZgCistCistW3BlcmZdKGh0dHBzOi8vcGVyZi53aWtpLmtlcm5lbC5vcmcvKSBpcyB0 aGUgbW9zdCBwb3dlcmZ1bCBwZXJmb3JtYW5jZSBwcm9maWxlcgorLWZvciBMaW51eCwgZmVhdHVy aW5nIHN1cHBvcnQgZm9yIHZhcmlvdXMgaGFyZHdhcmUgUGVyZm9ybWFuY2UgTW9uaXRvcmluZyBV bml0cywKKy1hcyB3ZWxsIGFzIGludGVncmF0aW9uIHdpdGggdGhlIGtlcm5lbCdzIHBlcmZvcm1h bmNlIGV2ZW50cyBmcmFtZXdvcmsuCistCistV2Ugd2lsbCBvbmx5IGxvb2sgYXQgaG93IGNhbiB0 aGUgYHBlcmZgIGNvbW1hbmQgY2FuIGJlIHVzZWQgdG8gcHJvZmlsZSBTSU1EIGNvZGUuCistRnVs bCBzeXN0ZW0gcHJvZmlsaW5nIGlzIG91dHNpZGUgb2YgdGhlIHNjb3BlIG9mIHRoaXMgYm9vay4K Ky0KKy0jIyMgUmVjb3JkaW5nCistCistVGhlIGZpcnN0IHN0ZXAgaXMgdG8gcmVjb3JkIGEgcHJv Z3JhbSdzIGV4ZWN1dGlvbiBkdXJpbmcgYW4gYXZlcmFnZSB3b3JrbG9hZC4KKy1JdCBoZWxwcyBp ZiB5b3UgY2FuIGlzb2xhdGUgdGhlIHBhcnRzIG9mIHlvdXIgcHJvZ3JhbSB3aGljaCBoYXZlIHBl cmZvcm1hbmNlCistaXNzdWVzLCBhbmQgc2V0IHVwIGEgYmVuY2htYXJrIHdoaWNoIGNhbiBiZSBl YXNpbHkgKHJlKXJ1bi4KKy0KKy1CdWlsZCB0aGUgYmVuY2htYXJrIGJpbmFyeSBpbiByZWxlYXNl IG1vZGUsIGFmdGVyIGhhdmluZyBlbmFibGVkIGRlYnVnIGluZm86CistCistYGBgc2gKKy0kIGNh cmdvIGJ1aWxkIC0tcmVsZWFzZQorLUZpbmlzaGVkIHJlbGVhc2UgW29wdGltaXplZCArIGRlYnVn aW5mb10gdGFyZ2V0KHMpIGluIDAuMDJzCistYGBgCistCistVGhlbiB1c2UgdGhlIGBwZXJmIHJl Y29yZGAgc3ViY29tbWFuZDoKKy0KKy1gYGBzaAorLSQgcGVyZiByZWNvcmQgLS1jYWxsLWdyYXBo PWR3YXJmIC4vdGFyZ2V0L3JlbGVhc2UvbXktcHJvZ3JhbQorLVsgcGVyZiByZWNvcmQ6IFdva2Vu IHVwIDEwIHRpbWVzIHRvIHdyaXRlIGRhdGEgXQorLVsgcGVyZiByZWNvcmQ6IENhcHR1cmVkIGFu ZCB3cm90ZSAyLDM1NiBNQiBwZXJmLmRhdGEgKDI5MiBzYW1wbGVzKSBdCistYGBgCistCistSW5z dGVhZCBvZiB1c2luZyBgLS1jYWxsLWdyYXBoPWR3YXJmYCwgd2hpY2ggY2FuIGJlY29tZSBwcmV0 dHkgc2xvdywgeW91IGNhbiB1c2UKKy1gLS1jYWxsLWdyYXBoPWxicmAgaWYgeW91IGhhdmUgYSBw cm9jZXNzb3Igd2l0aCBzdXBwb3J0IGZvciBMYXN0IEJyYW5jaCBSZWNvcmQKKy0oaS5lLiBJbnRl bCBIYXN3ZWxsIGFuZCBuZXdlcikuCistCistYHBlcmZgIHdpbGwsIGJ5IGRlZmF1bHQsIHJlY29y ZCB0aGUgY291bnQgb2YgQ1BVIGN5Y2xlcyBpdCB0YWtlcyB0byBleGVjdXRlCistdmFyaW91cyBw YXJ0cyBvZiB5b3VyIHByb2dyYW0uIFlvdSBjYW4gdXNlIHRoZSBgLWVgIGNvbW1hbmQgbGluZSBv cHRpb24KKy10byBlbmFibGUgb3RoZXIgcGVyZm9ybWFuY2UgZXZlbnRzLCBzdWNoIGFzIGBjYWNo ZS1taXNzZXNgLiBVc2UgYHBlcmYgbGlzdGAKKy10byBnZXQgYSBsaXN0IG9mIGFsbCBoYXJkd2Fy ZSBjb3VudGVycyBzdXBwb3J0ZWQgYnkgeW91ciBDUFUuCistCistIyMjIFZpZXdpbmcgdGhlIHJl cG9ydAorLQorLVRoZSBuZXh0IHN0ZXAgaXMgZ2V0dGluZyBhIGJpcmQncyBleWUgdmlldyBvZiB0 aGUgcHJvZ3JhbSdzIGV4ZWN1dGlvbi4KKy1gcGVyZmAgcHJvdmlkZXMgYSBgbmN1cnNlc2AtYmFz ZWQgaW50ZXJmYWNlIHdoaWNoIHdpbGwgZ2V0IHlvdSBzdGFydGVkLgorLQorLVVzZSBgcGVyZiBy ZXBvcnRgIHRvIG9wZW4gYSB2aXN1YWxpemF0aW9uIG9mIHlvdXIgcHJvZ3JhbSdzIHBlcmZvcm1h bmNlOgorLQorLWBgYHNoCistcGVyZiByZXBvcnQgLS1oaWVyYXJjaHkgLU0gaW50ZWwKKy1gYGAK Ky0KKy1gLS1oaWVyYXJjaHlgIHdpbGwgZGlzcGxheSBhIHRyZWUtbGlrZSBzdHJ1Y3R1cmUgb2Yg d2hlcmUgeW91ciBwcm9ncmFtIHNwZW50CistbW9zdCBvZiBpdHMgdGltZS4gYC1NIGludGVsYCBl bmFibGVzIGRpc2Fzc2VtYmx5IG91dHB1dCB3aXRoIEludGVsIHN5bnRheCwgd2hpY2gKKy1pcyBz dWJqZWN0aXZlbHkgbW9yZSByZWFkYWJsZSB0aGFuIHRoZSBkZWZhdWx0IEFUJlQgc3ludGF4Lgor LQorLUhlcmUgaXMgdGhlIG91dHB1dCBmcm9tIHByb2ZpbGluZyB0aGUgYG5ib2R5YCBiZW5jaG1h cms6CistCistYGBgCistLSAxMDAsMDAlIG5ib2R5CistICAtIDk0LDE4JSBuYm9keQorLSAgICAr IDkzLDQ4JSBbLl0gbmJvZHlfbGliOjpzaW1kOjphZHZhbmNlCistICAgICsgMCw3MCUgWy5dIG5i b2R5X2xpYjo6cnVuCistICAgICsgNSwwNiUgbGliYy0yLjI4LnNvCistYGBgCistCistSWYgeW91 IG1vdmUgd2l0aCB0aGUgYXJyb3cga2V5cyB0byBhbnkgbm9kZSBpbiB0aGUgdHJlZSwgeW91IGNh biB0aGUgcHJlc3MgYGFgCistdG8gaGF2ZSBgcGVyZmAgX2Fubm90YXRlXyB0aGF0IG5vZGUuIFRo aXMgbWVhbnMgaXQgd2lsbDoKKy0KKy0tIGRpc2Fzc2VtYmxlIHRoZSBmdW5jdGlvbgorLQorLS0g YXNzb2NpYXRlIGV2ZXJ5IGluc3RydWN0aW9uIHdpdGggdGhlIHBlcmNlbnRhZ2Ugb2YgdGltZSB3 aGljaCB3YXMgc3BlbnQgZXhlY3V0aW5nIGl0CistCistLSBpbnRlcmxlYXZlcyB0aGUgZGlzYXNz ZW1ibHkgd2l0aCB0aGUgc291cmNlIGNvZGUsCistICBhc3N1bWluZyBpdCBmb3VuZCB0aGUgZGVi dWcgc3ltYm9scworLSAgKHlvdSBjYW4gdXNlIGBzYCB0byB0b2dnbGUgdGhpcyBiZWhhdmlvdXIp CistCistYHBlcmZgIHdpbGwsIGJ5IGRlZmF1bHQsIG9wZW4gdGhlIGluc3RydWN0aW9uIHdoaWNo IGl0IGlkZW50aWZpZWQgYXMgYmVpbmcgdGhlCistaG90dGVzdCBzcG90IGluIHRoZSBmdW5jdGlv bjoKKy0KKy1gYGAKKy0wLDc2ICDilIIgbW92YXBkIHhtbTIseG1tMAorLTAsMzggIOKUgiBtb3Zo bHBzIHhtbTIseG1tMAorLSAgICAgIOKUgiBhZGRwZCAgeG1tMix4bW0wCistICAgICAg4pSCIHVu cGNrbHBkIHhtbTEseG1tMgorLTEyLDUwIOKUgiBzcXJ0cGQgeG1tMCx4bW0xCistMSw1MiAg4pSC IG11bHBkICB4bW0wLHhtbTEKKy1gYGAKKy0KKy1JbiB0aGlzIGNhc2UsIGBzcXJ0cGRgIHdpbGwg YmUgaGlnaGxpZ2h0ZWQgaW4gcmVkLCBzaW5jZSB0aGF0J3MgdGhlIGluc3RydWN0aW9uCistd2hp Y2ggdGhlIENQVSBzcGVuZHMgbW9zdCBvZiBpdHMgdGltZSBleGVjdXRpbmcuCistCistIyMgVXNp bmcgVmFsZ3JpbmQKKy0KKy1WYWxncmluZCBpcyBhIHNldCBvZiB0b29scyB3aGljaCBpbml0aWFs bHkgaGVscGVkIEMvQysrIHByb2dyYW1tZXJzIGZpbmQgdW5zYWZlCistbWVtb3J5IGFjY2Vzc2Vz IGluIHRoZWlyIGNvZGUuIE5vd2FkYXlzIHRoZSBwcm9qZWN0IGFsc28gaGFzCistCistLSBhIGhl YXAgcHJvZmlsZXIgY2FsbGVkIGBtYXNzaWZgCistCistLSBhIGNhY2hlIHV0aWxpemF0aW9uIHBy b2ZpbGVyIGNhbGxlZCBgY2FjaGVncmluZGAKKy0KKy0tIGEgY2FsbC1ncmFwaCBwZXJmb3JtYW5j ZSBwcm9maWxlciBjYWxsZWQgYGNhbGxncmluZGAKKy0KKy08IS0tCistVE9ETzogZXhwbGFpbiB2 YWxncmluZCdzIGR5bmFtaWMgYmluYXJ5IHRyYW5zbGF0aW9uLCB3YXJuIGFib3V0IG1hc3NpdmUK Ky1zbG93ZG93biwgdGFsayBhYm91dCBga2NhY2hlZ3JpbmRgIGZvciBhIEdVSQorLS0tPgorZGlm ZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlkZS9zcmMvcHJv Zi9tY2EubWQgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUvc3JjL3By b2YvbWNhLm1kCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1 c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlkZS9zcmMvcHJvZi9tY2EubWQKKysrKyAvZGV2L251bGwK K0BAIC0xLDEwMCArMCwwIEBACistIyBNYWNoaW5lIGNvZGUgYW5hbHlzaXMgdG9vbHMKKy0KKy0j IyBUaGUgbWljcm9hcmNoaXRlY3R1cmUgb2YgbW9kZXJuIENQVXMKKy0KKy1XaGlsZSB5b3UgbWln aHQgaGF2ZSBoZWFyZCBvZiBJbnN0cnVjdGlvbiBTZXQgQXJjaGl0ZWN0dXJlcywgc3VjaCBhcyBg eDg2YCBvcgorLWBhcm1gIG9yIGBtaXBzYCwgdGhlIHRlcm0gX21pY3JvYXJjaGl0ZWN0dXJlXyAo YWxzbyB3cml0dGVuIGhlcmUgYXMgX8K1LWFyY2hfKSwKKy1yZWZlcnMgdG8gdGhlIGludGVybmFs IGRldGFpbHMgb2YgYW4gYWN0dWFsIGZhbWlseSBvZiBDUFVzLCBzdWNoIGFzIEludGVsJ3MKKy1f SGFzd2VsbF8gb3IgQU1EJ3MgX0phZ3Vhcl8uCistCistUmVwbGFjaW5nIHNjYWxhciBjb2RlIHdp dGggU0lNRCBjb2RlIHdpbGwgaW1wcm92ZSBwZXJmb3JtYW5jZSBvbiBhbGwgQ1BVcworLXN1cHBv cnRpbmcgdGhlIHJlcXVpcmVkIHZlY3RvciBleHRlbnNpb25zLgorLUhvd2V2ZXIsIGR1ZSB0byBt aWNyb2FyY2hpdGVjdHVyYWwgZGlmZmVyZW5jZXMsIHRoZSBhY3R1YWwgc3BlZWQtdXAgYXQKKy1y dW50aW1lIG1pZ2h0IHZhcnkuCistCistKipFeGFtcGxlKio6IGEgc2ltcGxlIGV4YW1wbGUgYXJp c2VzIHdoZW4gb3B0aW1pemluZyBmb3IgQU1EIEs4IENQVXMuCistVGhlIGFzc2VtYmx5IGdlbmVy YXRlZCBmb3IgYW4gZW1wdHkgZnVuY3Rpb24gc2hvdWxkIGxvb2sgbGlrZSB0aGlzOgorLQorLWBg YGFzbQorLW5vcAorLXJldAorLWBgYAorLQorLVRoZSBgbm9wYCBpcyB1c2VkIHRvIGFsaWduIHRo ZSBgcmV0YCBpbnN0cnVjdGlvbiBmb3IgYmV0dGVyIHBlcmZvcm1hbmNlLgorLUhvd2V2ZXIsIHRo ZSBjb21waWxlciB3aWxsIGFjdHVhbGx5IGdlbmVyYXRlZCB0aGUgZm9sbG93aW5nIGNvZGU6Cist CistYGBgYXNtCistcmVweiByZXQKKy1gYGAKKy0KKy1UaGUgYHJlcHpgIGluc3RydWN0aW9uIHdp bGwgcmVwZWF0IHRoZSBmb2xsb3dpbmcgaW5zdHJ1Y3Rpb24gdW50aWwgYSBjZXJ0YWluCistY29u ZGl0aW9uLiBPZiBjb3Vyc2UsIGluIHRoaXMgc2l0dWF0aW9uLCB0aGUgZnVuY3Rpb24gd2lsbCBz aW1wbHkgaW1tZWRpYXRlbHkKKy1yZXR1cm4sIGFuZCB0aGUgYHJldGAgaW5zdHJ1Y3Rpb24gaXMg c3RpbGwgYWxpZ25lZC4KKy1Ib3dldmVyLCBBTUQgSzgncyBicmFuY2ggcHJlZGljdG9yIHBlcmZv cm1zIGJldHRlciB3aXRoIHRoZSBsYXR0ZXIgY29kZS4KKy0KKy1Gb3IgdGhvc2UgbG9va2luZyB0 byBhYnNvbHV0ZWx5IG1heGltaXplIHBlcmZvcm1hbmNlIGZvciBhIGNlcnRhaW4gdGFyZ2V0IMK1 LWFyY2gsCisteW91IHdpbGwgaGF2ZSB0byByZWFkIHNvbWUgQ1BVIG1hbnVhbHMsIG9yIGFzayB0 aGUgY29tcGlsZXIgdG8gZG8gaXQgZm9yIHlvdQorLXdpdGggYC1DIHRhcmdldC1jcHVgLgorLQor LSMjIyBTdW1tYXJ5IG9mIENQVSBpbnRlcm5hbHMKKy0KKy1Nb2Rlcm4gcHJvY2Vzc29ycyBhcmUg YWJsZSB0byBleGVjdXRlIGluc3RydWN0aW9ucyBvdXQtb2Ytb3JkZXIgZm9yIGJldHRlciBwZXJm b3JtYW5jZSwKKy1ieSB1dGlsaXppbmcgdHJpY2tzIHN1Y2ggYXMgW2JyYW5jaCBwcmVkaWN0aW9u XSwgW2luc3RydWN0aW9uIHBpcGVsaW5pbmddLAorLW9yIFtzdXBlcnNjYWxhciBleGVjdXRpb25d LgorLQorLVticmFuY2ggcHJlZGljdGlvbl06IGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtp L0JyYW5jaF9wcmVkaWN0b3IKKy1baW5zdHJ1Y3Rpb24gcGlwZWxpbmluZ106IGh0dHBzOi8vZW4u d2lraXBlZGlhLm9yZy93aWtpL0luc3RydWN0aW9uX3BpcGVsaW5pbmcKKy1bc3VwZXJzY2FsYXIg ZXhlY3V0aW9uXTogaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvU3VwZXJzY2FsYXJfcHJv Y2Vzc29yCistCistU0lNRCBpbnN0cnVjdGlvbnMgYXJlIGFsc28gc3ViamVjdCB0byB0aGVzZSBv cHRpbWl6YXRpb25zLCBtZWFuaW5nIGl0IGNhbiBnZXQgcHJldHR5CistZGlmZmljdWx0IHRvIGRl dGVybWluZSB3aGVyZSB0aGUgc2xvd2Rvd24gaGFwcGVucy4KKy1Gb3IgZXhhbXBsZSwgaWYgdGhl IHByb2ZpbGVyIHJlcG9ydHMgYSBzdG9yZSBvcGVyYXRpb24gaXMgc2xvdywgb25lIG9mIHR3byB0 aGluZ3MKKy1jb3VsZCBiZSBoYXBwZW5pbmc6CistCistLSB0aGUgc3RvcmUgaXMgbGltaXRlZCBi eSB0aGUgQ1BVJ3MgbWVtb3J5IGJhbmR3aWR0aCwgd2hpY2ggaXMgYWN0dWFsbHkgYW4gaWRlYWwK Ky0gIHNjZW5hcmlvLCBhbGwgdGhpbmdzIGNvbnNpZGVyZWQ7CistCistLSBtZW1vcnkgYmFuZHdp ZHRoIGlzIG5vd2hlcmUgbmVhciBpdHMgcGVhaywgYnV0IHRoZSB2YWx1ZSB0byBiZSBzdG9yZWQg aXMgYXQgdGhlCistICBlbmQgb2YgYSBsb25nIGNoYWluIG9mIG9wZXJhdGlvbnMsIGFuZCB0aGlz IHN0b3JlIGlzIHdoZXJlIHRoZSBwcm9maWxlcgorLSAgZW5jb3VudGVyZWQgdGhlIHBpcGVsaW5l IHN0YWxsOworLQorLVNpbmNlIG1vc3QgcHJvZmlsZXJzIGFyZSBzaW1wbGUgdG9vbHMgd2hpY2gg ZG9uJ3QgdW5kZXJzdGFuZCB0aGUgc3VidGxldGllcyBvZgorLWluc3RydWN0aW9uIHNjaGVkdWxp bmcsIHlvdQorLQorLSMjIEFuYWx5emluZyB0aGUgbWFjaGluZSBjb2RlCistCistQ2VydGFpbiB0 b29scyBoYXZlIGtub3dsZWRnZSBvZiBpbnRlcm5hbCBDUFUgbWljcm9hcmNoaXRlY3R1cmUsIGku ZS4gdGhleSBrbm93CistCistLSBob3cgbWFueSBwaHlzaWNhbCBbcmVnaXN0ZXIgZmlsZXNdIGEg Q1BVIGFjdHVhbGx5IGhhcworLQorLS0gd2hhdCBpcyB0aGUgbGF0ZW5jeSAvIHRocm91Z2h0cHV0 IG9mIGFuIGluc3RydWN0aW9uCistCistLSB3aGF0IFvCtS1vcHNdIGFyZSBnZW5lcmF0ZWQgZm9y IGEgc2V0IG9mIGluc3RydWN0aW9ucworLQorLWFuZCBtYW55IG90aGVyIGFyY2hpdGVjdHVyYWwg ZGV0YWlscy4KKy0KKy1bcmVnaXN0ZXIgZmlsZXNdOiBodHRwczovL2VuLndpa2lwZWRpYS5vcmcv d2lraS9SZWdpc3Rlcl9maWxlCistW8K1LW9wc106IGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93 aWtpL01pY3JvLW9wZXJhdGlvbgorLQorLVRoZXNlIHRvb2xzIGFyZSB0aGVyZWZvcmUgYWJsZSB0 byBwcm92aWRlIGFjY3VyYXRlIGluZm9ybWF0aW9uIGFzIHRvIHdoeSBzb21lCistaW5zdHJ1Y3Rp b25zIGFyZSBpbmVmZmljaWVudCwgYW5kIHdoZXJlIHRoZSBib3R0bGVuZWNrIGlzLgorLQorLVRo ZSBkaXNhZHZhbnRhZ2UgaXMgdGhhdCB0aGUgb3V0cHV0IG9mIHRoZXNlIHRvb2xzIHJlcXVpcmVz IGFkdmFuY2VkIGtub3dsZWRnZQorLW9mIHRoZSB0YXJnZXQgYXJjaGl0ZWN0dXJlIHRvIHVuZGVy c3RhbmQsIGkuZS4gdGhleSAqKmNhbm5vdCoqIHBvaW50IG91dCB3aGF0CistdGhlIGNhdXNlIG9m IHRoZSBpc3N1ZSBpcyBleHBsaWNpdGx5LgorLQorLSMjIEludGVsJ3MgQXJjaGl0ZWN0dXJlIENv ZGUgQW5hbHl6ZXIgKElBQ0EpCistCistW0lBQ0FdIGlzIGEgZnJlZSB0b29sIG9mZmVyZWQgYnkg SW50ZWwgZm9yIGFuYWx5emluZyB0aGUgcGVyZm9ybWFuY2Ugb2YgdmFyaW91cworLWNvbXB1dGF0 aW9uYWwga2VybmVscy4KKy0KKy1CZWluZyBhIHByb3ByaWV0YXJ5LCBjbG9zZWQgc291cmNlIHRv b2wsIGl0IF9vbmx5XyBzdXBwb3J0cyBJbnRlbCdzIMK1LWFyY2hlcy4KKy0KKy1bSUFDQV06IGh0 dHBzOi8vc29mdHdhcmUuaW50ZWwuY29tL2VuLXVzL2FydGljbGVzL2ludGVsLWFyY2hpdGVjdHVy ZS1jb2RlLWFuYWx5emVyCistCistIyMgbGx2bS1tY2EKKy0KKy08IS0tCistVE9ETzogb25jZSBM TFZNIDcgZ2V0cyByZWxlYXNlZCwgd3JpdGUgYSBjaGFwdGVyIG9uIHVzaW5nIGxsdm0tbWNhCist d2l0aCBTSU1EIGRpc2Fzc2VtYmx5LgorLS0tPgorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1 c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlkZS9zcmMvcHJvZi9wcm9maWxpbmcubWQgYi90aGlyZF9w YXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUvc3JjL3Byb2YvcHJvZmlsaW5nLm1kCitk ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3Np bWQvcGVyZi1ndWlkZS9zcmMvcHJvZi9wcm9maWxpbmcubWQKKysrKyAvZGV2L251bGwKK0BAIC0x LDE0ICswLDAgQEAKKy0jIFBlcmZvcm1hbmNlIHByb2ZpbGluZworLQorLVdoaWxlIHRoZSByZXN0 IG9mIHRoZSBib29rIHByb3ZpZGVzIHByYWN0aWNhbCBhZHZpY2Ugb24gaG93IHRvIGltcHJvdmUg dGhlIHBlcmZvcm1hbmNlCistb2YgU0lNRCBjb2RlLCB0aGlzIGNoYXB0ZXIgaXMgZGVkaWNhdGVk IHRvIFsqKnBlcmZvcm1hbmNlIHByb2ZpbGluZyoqXVtwcm9maWxpbmddLgorLVByb2ZpbGluZyBj b25zaXN0cyBvZiByZWNvcmRpbmcgYSBwcm9ncmFtJ3MgZXhlY3V0aW9uIGluIG9yZGVyIHRvIGlk ZW50aWZ5IHByb2dyYW0KKy1ob3RzcG90cy4KKy0KKy0qKkltcG9ydGFudCoqOiBtb3N0IHByb2Zp bGVycyByZXF1aXJlIGRlYnVnIGluZm9ybWF0aW9uIGluIG9yZGVyIHRvIGFjY3VyYXRlbHkKKy1s aW5rIHRoZSBwcm9ncmFtIGhvdHNwb3RzIGJhY2sgdG8gdGhlIGNvcnJlc3BvbmRpbmcgc291cmNl IGNvZGUgbGluZXMuIFJ1c3Qgd2lsbAorLWRpc2FibGUgZGVidWcgaW5mbyBnZW5lcmF0aW9uIGJ5 IGRlZmF1bHQgZm9yIG9wdGltaXplZCBidWlsZHMsIGJ1dCB5b3UgY2FuIGNoYW5nZQorLXRoYXQg W2luIHlvdXIgYENhcmdvLnRvbWxgXVtjYXJnby1yZWZdLgorLQorLVtwcm9maWxpbmddOiBodHRw czovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9Qcm9maWxpbmdfKGNvbXB1dGVyX3Byb2dyYW1taW5n KQorLVtjYXJnby1yZWZdOiBodHRwczovL2RvYy5ydXN0LWxhbmcub3JnL2NhcmdvL3JlZmVyZW5j ZS9tYW5pZmVzdC5odG1sI3RoZS1wcm9maWxlLXNlY3Rpb25zCitkaWZmIC0tZ2l0IGEvdGhpcmRf cGFydHkvcnVzdC9wYWNrZWRfc2ltZC9wZXJmLWd1aWRlL3NyYy90YXJnZXQtZmVhdHVyZS9hdHRy aWJ1dGUubWQgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUvc3JjL3Rh cmdldC1mZWF0dXJlL2F0dHJpYnV0ZS5tZAorZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0g YS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUvc3JjL3RhcmdldC1mZWF0 dXJlL2F0dHJpYnV0ZS5tZAorKysrIC9kZXYvbnVsbAorQEAgLTEsNSArMCwwIEBACistIyBUaGUg YHRhcmdldF9mZWF0dXJlYCBhdHRyaWJ1dGUKKy0KKy08IS0tIFRPRE86CistRXhwbGFpbiB0aGUg YCNbdGFyZ2V0X2ZlYXR1cmVdYCBhdHRyaWJ1dGUKKy0tLT4KK2RpZmYgLS1naXQgYS90aGlyZF9w YXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUvc3JjL3RhcmdldC1mZWF0dXJlL2ZlYXR1 cmVzLm1kIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9wZXJmLWd1aWRlL3NyYy90YXJn ZXQtZmVhdHVyZS9mZWF0dXJlcy5tZAorZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUvc3JjL3RhcmdldC1mZWF0dXJl L2ZlYXR1cmVzLm1kCisrKysgL2Rldi9udWxsCitAQCAtMSwxMyArMCwwIEBACistIyBFbmFibGlu ZyB0YXJnZXQgZmVhdHVyZXMKKy0KKy1Ob3QgYWxsIHByb2Nlc3NvcnMgb2YgYSBjZXJ0YWluIGFy Y2hpdGVjdHVyZSB3aWxsIGhhdmUgU0lNRCBwcm9jZXNzaW5nIHVuaXRzLAorLWFuZCB1c2luZyBh IFNJTUQgaW5zdHJ1Y3Rpb24gd2hpY2ggaXMgbm90IHN1cHBvcnRlZCB3aWxsIHRyaWdnZXIgdW5k ZWZpbmVkIGJlaGF2aW9yLgorLQorLVRvIGFsbG93IGJ1aWxkaW5nIHNhZmUsIHBvcnRhYmxlIHBy b2dyYW1zLCB0aGUgUnVzdCBjb21waWxlciB3aWxsICoqbm90KiosIGJ5IGRlZmF1bHQsCistZ2Vu ZXJhdGUgYW55IHNvcnQgb2YgdmVjdG9yIGluc3RydWN0aW9ucywgdW5sZXNzIGl0IGNhbiBzdGF0 aWNhbGx5IGRldGVybWluZQorLXRoZXkgYXJlIHN1cHBvcnRlZC4gRm9yIGV4YW1wbGUsIG9uIEFN RDY0LCBTU0UyIHN1cHBvcnQgaXMgYXJjaGl0ZWN0dXJhbGx5IGd1YXJhbnRlZWQuCistVGhlIGB4 ODZfNjQtYXBwbGUtZGFyd2luYCB0YXJnZXQgZW5hYmxlcyB1cCB0byBTU1NFMy4gVGhlIGdldCBh IGRlZmludGl2ZSBsaXN0IG9mCistd2hpY2ggZmVhdHVyZXMgYXJlIGVuYWJsZWQgYnkgZGVmYXVs dCBvbiB2YXJpb3VzIHBsYXRmb3JtcywgcmVmZXIgdG8gdGhlIHRhcmdldAorLXNwZWNpZmljYXRp b25zIFtpbiB0aGUgY29tcGlsZXIncyBzb3VyY2UgY29kZV1bdGFyZ2V0c10uCistCistW3Rhcmdl dHNdOiBodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL3J1c3QvdHJlZS9tYXN0ZXIvc3JjL2xp YnJ1c3RjX3RhcmdldC9zcGVjCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRf c2ltZC9wZXJmLWd1aWRlL3NyYy90YXJnZXQtZmVhdHVyZS9pbmxpbmluZy5tZCBiL3RoaXJkX3Bh cnR5L3J1c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlkZS9zcmMvdGFyZ2V0LWZlYXR1cmUvaW5saW5p bmcubWQKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9w YWNrZWRfc2ltZC9wZXJmLWd1aWRlL3NyYy90YXJnZXQtZmVhdHVyZS9pbmxpbmluZy5tZAorKysr IC9kZXYvbnVsbAorQEAgLTEsNSArMCwwIEBACistIyBJbmxpbmluZworLQorLTwhLS0gVE9ETzoK Ky1FeHBsYWluIGhvdyB0aGUgYCNbdGFyZ2V0X2ZlYXR1cmVdYCBhdHRyaWJ1dGUgaW50ZXJhY3Rz IHdpdGggaW5saW5pbmcKKy0tLT4KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tl ZF9zaW1kL3BlcmYtZ3VpZGUvc3JjL3RhcmdldC1mZWF0dXJlL3ByYWN0aWNlLm1kIGIvdGhpcmRf cGFydHkvcnVzdC9wYWNrZWRfc2ltZC9wZXJmLWd1aWRlL3NyYy90YXJnZXQtZmVhdHVyZS9wcmFj dGljZS5tZAorZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0 L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUvc3JjL3RhcmdldC1mZWF0dXJlL3ByYWN0aWNlLm1kCisr KysgL2Rldi9udWxsCitAQCAtMSwzMSArMCwwIEBACistIyBUYXJnZXQgZmVhdHVyZXMgaW4gcHJh Y3RpY2UKKy0KKy1Vc2luZyBgUlVTVEZMQUdTYCB3aWxsIGFsbG93IHRoZSBjcmF0ZSBiZWluZyBj b21waWxlZCwgYXMgd2VsbCBhcyBhbGwgaXRzCistdHJhbnNpdGl2ZSBkZXBlbmRlbmNpZXMgdG8g dXNlIGNlcnRhaW4gdGFyZ2V0IGZlYXR1cmVzLgorLQorLUEgdGVobmlxdWUgdXNlZCB0byBhdm9p ZCB1bmRlZmluZWQgYmVoYXZpb3IgYXQgcnVudGltZSBpcyB0byBjb21waWxlIGFuZAorLXNoaXAg bXVsdGlwbGUgYmluYXJpZXMsIGVhY2ggY29tcGlsZWQgd2l0aCBhIGNlcnRhaW4gc2V0IG9mIGZl YXR1cmVzLgorLVRoaXMgbWlnaHQgbm90IGJlIGZlYXNpYmxlIGluIHNvbWUgY2FzZXMsIGFuZCBj YW4gcXVpY2tseSBnZXQgb3V0IG9mIGhhbmQKKy1hcyBtb3JlIGFuZCBtb3JlIHZlY3RvciBleHRl bnNpb25zIGFyZSBhZGRlZCB0byBhbiBhcmNoaXRlY3R1cmUuCistCistUnVzdCBjYW4gYmUgbW9y ZSBmbGV4aWJsZTogeW91IGNhbiBidWlsZCBhIHNpbmdsZSBiaW5hcnkvbGlicmFyeSB3aGljaCBh dXRvbWF0aWNhbGx5CistcGlja3MgdGhlIGJlc3Qgc3VwcG9ydGVkIHZlY3RvciBpbnN0cnVjdGlv bnMgZGVwZW5kaW5nIG9uIHRoZSBob3N0IG1hY2hpbmUuCistVGhlIHRyaWNrIGNvbnNpc3RzIG9m IG1vbm9tb3JwaGl6aW5nIHBhcnRzIG9mIHRoZSBjb2RlIGR1cmluZyBidWlsZGluZywgYW5kIHRo ZW4KKy11c2luZyBydW4tdGltZSBmZWF0dXJlIGRldGVjdGlvbiB0byBzZWxlY3QgdGhlIHJpZ2h0 IGNvZGUgcGF0aCB3aGVuIHJ1bm5pbmcuCistCistPCEtLSBUT0RPCistRXhwbGFpbiBob3cgdG8g Y3JlYXRlIGVmZmljaWVudCBmdW5jdGlvbnMgdGhhdCBkaXNwYXRjaCB0byBkaWZmZXJlbnQKKy1p bXBsZW1lbnRhdGlvbnMgYXQgcnVuLXRpbWUgd2l0aG91dCBpc3N1ZXMgKGUuZy4gdXNpbmcgYCNb aW5saW5lKGFsd2F5cyldYCBmb3IKKy10aGUgaW1wbHMsIHdyYXBwaW5nIGluIGAjW3RhcmdldF9m ZWF0dXJlXWAsIGFuZCB0aGUgd3JhcHBpbmcgdGhvc2UgaW4gYSBmdW5jdGlvbgorLXRoYXQgZG9l cyBydW4tdGltZSBmZWF0dXJlIGRldGVjdGlvbikuCistLS0+CistCistKipOT1RFKiogKHg4NiBz cGVjaWZpYyk6IGJlY2F1c2UgdGhlIEFWWCAoMjU2LWJpdCkgcmVnaXN0ZXJzIGV4dGVuZCB0aGUg ZXhpc3RpbmcKKy1TU0UgKDEyOC1iaXQpIHJlZ2lzdGVycywgbWl4aW5nIFNTRSBhbmQgQVZYIGlu c3RydWN0aW9ucyBpbiBhIHByb2dyYW0gY2FuIGNhdXNlCistcGVyZm9ybWFuY2UgaXNzdWVzLgor LQorLVRoZSBzb2x1dGlvbiBpcyB0byBjb21waWxlIGFsbCBjb2RlLCBldmVuIHRoZSBjb2RlIHdy aXR0ZW4gd2l0aCAxMjgtYml0IHZlY3RvcnMsCistd2l0aCB0aGUgQVZYIHRhcmdldCBmZWF0dXJl IGVuYWJsZWQuIFRoaXMgd2lsbCBjYXVzZSB0aGUgY29tcGlsZXIgdG8gcHJlZml4IHRoZQorLWdl bmVyYXRlZCBpbnN0cnVjdGlvbnMgd2l0aCB0aGUgW1ZFWF0gcHJlZml4LgorLQorLVtWRVhdOiBo dHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9WRVhfcHJlZml4CitkaWZmIC0tZ2l0IGEvdGhp cmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9wZXJmLWd1aWRlL3NyYy90YXJnZXQtZmVhdHVyZS9y dW50aW1lLm1kIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9wZXJmLWd1aWRlL3NyYy90 YXJnZXQtZmVhdHVyZS9ydW50aW1lLm1kCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBh L3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlkZS9zcmMvdGFyZ2V0LWZlYXR1 cmUvcnVudGltZS5tZAorKysrIC9kZXYvbnVsbAorQEAgLTEsNSArMCwwIEBACistIyBEZXRlY3Rp bmcgaG9zdCBmZWF0dXJlcyBhdCBydW50aW1lCistCistPCEtLSBUT0RPOgorLUV4cGxhaW4gY29z dCAoaG93IGl0IHdvcmtzKS4KKy0tLT4KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3Bh Y2tlZF9zaW1kL3BlcmYtZ3VpZGUvc3JjL3RhcmdldC1mZWF0dXJlL3J1c3RmbGFncy5tZCBiL3Ro aXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlkZS9zcmMvdGFyZ2V0LWZlYXR1cmUv cnVzdGZsYWdzLm1kCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5 L3J1c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlkZS9zcmMvdGFyZ2V0LWZlYXR1cmUvcnVzdGZsYWdz Lm1kCisrKysgL2Rldi9udWxsCitAQCAtMSw3NyArMCwwIEBACistIyBVc2luZyBSVVNURkxBR1MK Ky0KKy1PbmUgb2YgdGhlIGVhc2llc3Qgd2F5cyB0byBiZW5lZml0IGZyb20gU0lNRCBpcyB0byBh bGxvdyB0aGUgY29tcGlsZXIKKy10byBnZW5lcmF0ZSBjb2RlIHVzaW5nIGNlcnRhaW4gdmVjdG9y IGluc3RydWN0aW9uIGV4dGVuc2lvbnMuCistCistVGhlIGVudmlyb25tZW50IHZhcmlhYmxlIGBS VVNURkxBR1NgIGNhbiBiZSB1c2VkIHRvIHBhc3Mgb3B0aW9ucyBmb3IgY29kZQorLWdlbmVyYXRp b24gdG8gdGhlIFJ1c3QgY29tcGlsZXIuIFRoZXNlIGZsYWdzIHdpbGwgYWZmZWN0ICoqYWxsKiog Y29tcGlsZWQgY3JhdGVzLgorLQorLVRoZXJlIGFyZSB0d28gZmxhZ3Mgd2hpY2ggY2FuIGJlIHVz ZWQgdG8gZW5hYmxlIHNwZWNpZmljIHZlY3RvciBleHRlbnNpb25zOgorLQorLSMjIHRhcmdldC1m ZWF0dXJlCistCistLSBTeW50YXg6IGAtQyB0YXJnZXQtZmVhdHVyZT08ZmVhdHVyZXM+YAorLQor LS0gUHJvdmlkZXMgdGhlIGNvbXBpbGVyIHdpdGggYSBjb21tYS1zZXBhcmF0ZWQgc2V0IG9mIGlu c3RydWN0aW9uIGV4dGVuc2lvbnMKKy0gIHRvIGVuYWJsZS4KKy0KKy0gICoqRXhhbXBsZSoqOiBV c2UgYC1DIHRhcmdldC1mZWF0dXJlPStzc2UzLCthdnhgIHRvIGVuYWJsZSBnZW5lcmF0aW5nIGlu c3RydWN0aW9ucworLSAgZm9yIFtTdHJlYW1pbmcgU0lNRCBFeHRlbnNpb25zIDNdKGh0dHBzOi8v ZW4ud2lraXBlZGlhLm9yZy93aWtpL1NTRTMpIGFuZAorLSAgW0FkdmFuY2VkIFZlY3RvciBFeHRl bnNpb25zXShodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9BZHZhbmNlZF9WZWN0b3JfRXh0 ZW5zaW9ucykuCistCistLSBUbyBsaXN0IHRhcmdldCB0cmlwbGVzIGZvciBhbGwgdGFyZ2V0cyBz dXBwb3J0ZWQgYnkgUnVzdCwgdXNlOgorLQorLSAgYGBgc2gKKy0gIHJ1c3RjIC0tcHJpbnQgdGFy Z2V0LWxpc3QKKy0gIGBgYAorLQorLS0gVG8gbGlzdCBhbGwgc3VwcG9ydCB0YXJnZXQgZmVhdHVy ZXMgZm9yIGEgY2VydGFpbiB0YXJnZXQgdHJpcGxlLCB1c2U6CistCistICBgYGBzaAorLSAgcnVz dGMgLS10YXJnZXQ9JHtUUklQTEV9IC0tcHJpbnQgdGFyZ2V0LWZlYXR1cmVzCistICBgYGAKKy0K Ky0tIE5vdGUgdGhhdCBhbGwgQ1BVIGZlYXR1cmVzIGFyZSBpbmRlcGVuZGVudCwgYW5kIHdpbGwg aGF2ZSB0byBiZSBlbmFibGVkIGluZGl2aWR1YWxseS4KKy0KKy0gICoqRXhhbXBsZSoqOiBTZXR0 aW5nIGAtQyB0YXJnZXQtZmVhdHVyZT0rYXZ4MmAgd2lsbCBfbm90XyBlbmFibGUgYGZtYWAsIGV2 ZW4gdGhvdWdoCistICBhbGwgQ1BVcyB3aGljaCBzdXBwb3J0IEFWWDIgYWxzbyBzdXBwb3J0IEZN QS4gVG8gZW5hYmxlIGJvdGgsIG9uZSBoYXMgdG8gdXNlCistICBgLUMgdGFyZ2V0LWZlYXR1cmU9 K2F2eDIsK2ZtYWAKKy0KKy0tIFNvbWUgZmVhdHVyZXMgYWxzbyBkZXBlbmQgb24gb3RoZXIgZmVh dHVyZXMsIHdoaWNoIG5lZWQgdG8gYmUgZW5hYmxlZCBmb3IgdGhlCistICB0YXJnZXQgaW5zdHJ1 Y3Rpb25zIHRvIGJlIGdlbmVyYXRlZC4KKy0KKy0gICoqRXhhbXBsZSoqOiBVbmxlc3MgYHY3YCBp cyBzcGVjaWZpZWQgYXMgdGhlIHRhcmdldCBDUFUgKHNlZSBiZWxvdyksIHRvIGVuYWJsZQorLSAg TkVPTiBvbiBBUk0gaXQgaXMgbmVjZXNzYXJ5IHRvIHVzZSBgLUMgdGFyZ2V0LWZlYXR1cmU9K3Y3 LCtuZW9uYC4KKy0KKy0jIyB0YXJnZXQtY3B1CistCistLSBTeW50YXg6IGAtQyB0YXJnZXQtY3B1 PTxjcHU+YAorLQorLS0gU2V0cyB0aGUgaWRlbnRpZmllciBvZiBhIENQVSBmYW1pbHkgLyBtb2Rl bCBmb3Igd2hpY2ggdG8gYnVpbGQgYW5kIG9wdGltaXplIHRoZSBjb2RlLgorLQorLSAgKipFeGFt cGxlKio6IGBSVVNURkxBR1M9Jy1DIHRhcmdldC1jcHU9Y29ydGV4LWE3NSdgCistCistLSBUbyBs aXN0IGFsbCBzdXBwb3J0ZWQgdGFyZ2V0IENQVXMgZm9yIGEgY2VydGFpbiB0YXJnZXQgdHJpcGxl LCB1c2U6CistCistICBgYGBzaAorLSAgcnVzdGMgLS10YXJnZXQ9JHtUUklQTEV9IC0tcHJpbnQg dGFyZ2V0LWNwdXMKKy0gIGBgYAorLQorLSAgKipFeGFtcGxlKio6CistCistICBgYGBzaAorLSAg cnVzdGMgLS10YXJnZXQ9aTY4Ni1wYy13aW5kb3dzLW1zdmMgLS1wcmludCB0YXJnZXQtY3B1cwor LSAgYGBgCistCistLSBUaGUgY29tcGlsZXIgd2lsbCB0cmFuc2xhdGUgdGhpcyBpbnRvIGEgbGlz dCBvZiB0YXJnZXQgZmVhdHVyZXMuIFRoZXJlZm9yZSwKKy0gIGluZGl2aWR1YWwgZmVhdHVyZSBj aGVja3MgKGAjW2NmZyh0YXJnZXRfZmVhdHVyZSA9ICIuLi4iKV1gKSB3aWxsIHN0aWxsCistICB3 b3JrIHByb3Blcmx5LgorLQorLS0gSXQgd2lsbCBjYXVzZSB0aGUgY29kZSBnZW5lcmF0b3IgdG8g b3B0aW1pemUgdGhlIGdlbmVyYXRlZCBjb2RlIGZvciB0aGF0CistICBzcGVjaWZpYyBDUFUgbW9k ZWwuCistCistLSBVc2luZyBgbmF0aXZlYCBhcyB0aGUgQ1BVIG1vZGVsIHdpbGwgY2F1c2UgUnVz dCB0byBnZW5lcmF0ZSBhbmQgb3B0aW1pemUgY29kZQorLSAgZm9yIHRoZSBDUFUgcnVubmluZyB0 aGUgY29tcGlsZXIuIEl0IGlzIHVzZWZ1bCB3aGVuIGJ1aWxkaW5nIHByb2dyYW1zIHdoaWNoIHlv dQorLSAgcGxhbiB0byBvbmx5IHVzZSBsb2NhbGx5LiBUaGlzIHNob3VsZCBuZXZlciBiZSB1c2Vk IHdoZW4gdGhlIGdlbmVyYXRlZCBwcm9ncmFtcworLSAgYXJlIG1lYW50IHRvIGJlIHJ1biBvbiBv dGhlciBjb21wdXRlcnMsIHN1Y2ggYXMgd2hlbiBwYWNrYWdpbmcgZm9yIGRpc3RyaWJ1dGlvbgor LSAgb3IgY3Jvc3MtY29tcGlsaW5nLgorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFj a2VkX3NpbWQvcGVyZi1ndWlkZS9zcmMvdmVydC1ob3Itb3BzLm1kIGIvdGhpcmRfcGFydHkvcnVz dC9wYWNrZWRfc2ltZC9wZXJmLWd1aWRlL3NyYy92ZXJ0LWhvci1vcHMubWQKK2RlbGV0ZWQgZmls ZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9wZXJmLWd1 aWRlL3NyYy92ZXJ0LWhvci1vcHMubWQKKysrKyAvZGV2L251bGwKK0BAIC0xLDc2ICswLDAgQEAK Ky0jIFZlcnRpY2FsIGFuZCBob3Jpem9udGFsIG9wZXJhdGlvbnMKKy0KKy1JbiBTSU1EIHRlcm1p bm9sb2d5LCBlYWNoIHZlY3RvciBoYXMgYSBjZXJ0YWluICJ3aWR0aCIgKG51bWJlciBvZiBsYW5l cykuCistQSB2ZWN0b3IgcHJvY2Vzc29yIGlzIGFibGUgdG8gcGVyZm9ybSB0d28ga2luZHMgb2Yg b3BlcmF0aW9ucyBvbiBhIHZlY3RvcjoKKy0KKy0tIFZlcnRpY2FsIG9wZXJhdGlvbnM6CistICBv cGVyYXRlIG9uIHR3byB2ZWN0b3JzIG9mIHRoZSBzYW1lIHdpZHRoLCByZXN1bHQgaGFzIHNhbWUg d2lkdGgKKy0KKy0qKkV4YW1wbGUqKjogdmVydGljYWwgYWRkaXRpb24gb2YgdHdvIGBmMzJ4NGAg dmVjdG9ycworLQorLSAgICAgICUwICAgICA9PSB8IDIgfCAtMy41IHwgIDAgfCA3IHwKKy0gICAg ICAgICAgICAgICAgICArICAgICArICAgICArICAgKworLSAgICAgICUxICAgICA9PSB8IDQgfCAg MS41IHwgLTEgfCAwIHwKKy0gICAgICAgICAgICAgICAgICA9ICAgICA9ICAgICA9ICAgPQorLSAg ICAlMCArICUxICA9PSB8IDYgfCAgLTIgIHwgLTEgfCA3IHwKKy0KKy0tIEhvcml6b250YWwgb3Bl cmF0aW9uczoKKy0gIHJlZHVjZSB0aGUgZWxlbWVudHMgb2YgdHdvIHZlY3RvcnMgaW4gc29tZSB3 YXksCistICB0aGUgcmVzdWx0J3MgZWxlbWVudHMgY29tYmluZSBpbmZvcm1hdGlvbiBmcm9tIHRo ZSB0d28gb3JpZ2luYWwgb25lcworLQorLSoqRXhhbXBsZSoqOiBob3Jpem9udGFsIGFkZGl0aW9u IG9mIHR3byBgdTY0eDJgIHZlY3RvcnMKKy0KKy0gICAgICAlMCAgICAgPT0gfCAxIHwgIDMgfAor LSAgICAgICAgICAgICAgICAgIOKUlOKUgCvilIDilIDilIDilJgKKy0gICAgICAgICAgICAgICAg ICAgIOKUlOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUkAorLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICDilIIKKy0gICAgICAlMSAgICAgPT0gfCA0IHwgLTEgfCAg4pSCCistICAgICAgICAgICAg ICAgICAg4pSU4pSAK+KUgOKUgOKUmCAgICDilIIKKy0gICAgICAgICAgICAgICAgICAgIOKUlOKU gOKUgOKUgOKUkCAgIOKUggorLSAgICAgICAgICAgICAgICAgICAgICAgIOKUgiAgIOKUggorLSAg ICAgICAgICAgICAgICAgIOKUjOKUgOKUgOKUgOKUgOKUgOKUguKUgOKUgOKUgOKUmAorLSAgICAg ICAgICAgICAgICAgIOKWvCAgICAg4pa8CistICAgICUwICsgJTEgID09IHwgNCB8ICAgMyB8Cist CistIyMgUGVyZm9ybWFuY2UgY29uc2lkZXJhdGlvbiBvZiBob3Jpem9udGFsIG9wZXJhdGlvbnMK Ky0KKy1UaGUgcmVzdWx0IG9mIHZlcnRpY2FsIG9wZXJhdGlvbnMsIGxpa2UgdmVjdG9yIG5lZ2F0 aW9uOiBgLWFgLCBmb3IgYSBnaXZlbiBsYW5lLAorLWRvZXMgbm90IGRlcGVuZCBvbiB0aGUgcmVz dWx0IG9mIHRoZSBvcGVyYXRpb24gZm9yIHRoZSBvdGhlciBsYW5lcy4gVGhlIHJlc3VsdAorLW9m IGhvcml6b250YWwgb3BlcmF0aW9ucywgbGlrZSB0aGUgdmVjdG9yIGBzdW1gIHJlZHVjdGlvbjog YGEuc3VtKClgLCBkZXBlbmRzIG9uCistdGhlIHZhbHVlIG9mIGFsbCB2ZWN0b3IgbGFuZXMuCist CistSW4gdmlydHVhbGx5IGFsbCBhcmNoaXRlY3R1cmVzIHZlcnRpY2FsIG9wZXJhdGlvbnMgYXJl IGZhc3QsIHdoaWxlIGhvcml6b250YWwKKy1vcGVyYXRpb25zIGFyZSwgYnkgY29tcGFyaXNvbiwg dmVyeSBzbG93LgorLQorLUNvbnNpZGVyIHRoZSBmb2xsb3dpbmcgdHdvIGZ1bmN0aW9ucyBmb3Ig Y29tcHV0aW5nIHRoZSBzdW0gb2YgYWxsIGBmMzJgIHZhbHVlcworLWluIGEgc2xpY2U6CistCist YGBgcnVzdAorLWZuIGZhc3Rfc3VtKHg6ICZbZjMyXSkgLT4gZjMyIHsKKy0gICAgYXNzZXJ0ISh4 LmxlbigpICUgNCA9PSAwKTsKKy0gICAgbGV0IG11dCBzdW0gPSBmMzJ4NDo6c3BsYXQoMC4pOyAv LyBbMC4sIDAuLCAwLiwgMC5dCistICAgIGZvciBpIGluICgwLi54LmxlbigpKS5zdGVwX2J5KDQp IHsKKy0gICAgICAgIHN1bSArPSBmMzJ4NDo6ZnJvbV9zbGljZV91bmFsaWduZWQoJnhbaS4uXSk7 CistICAgIH0KKy0gICAgc3VtLnN1bSgpCistfQorLQorLWZuIHNsb3dfc3VtKHg6ICZbZjMyXSkg LT4gZjMyIHsKKy0gICAgYXNzZXJ0ISh4LmxlbigpICUgNCA9PSAwKTsKKy0gICAgbGV0IG11dCBz dW06IGYzMiA9IDAuOworLSAgICBmb3IgaSBpbiAoMC4ueC5sZW4oKSkuc3RlcF9ieSg0KSB7Cist ICAgICAgICBzdW0gKz0gZjMyeDQ6OmZyb21fc2xpY2VfdW5hbGlnbmVkKCZ4W2kuLl0pLnN1bSgp OworLSAgICB9CistICAgIHN1bQorLX0KKy1gYGAKKy0KKy1UaGUgaW5uZXIgbG9vcCBvdmVyIHRo ZSBzbGljZSBpcyB3aGVyZSB0aGUgYnVsayBvZiB0aGUgd29yayBhY3R1YWxseSBoYXBwZW5zLgor LVRoZXJlLCB0aGUgYGZhc3Rfc3VtYCBmdW5jdGlvbiBwZXJmb3JtIHZlcnRpY2FsIG9wZXJhdGlv bnMgaW50byBhIHZlY3RvciwgZG9pbmcKKy1hIHNpbmdsZSBob3Jpem9udGFsIHJlZHVjdGlvbiBh dCB0aGUgZW5kLCB3aGlsZSB0aGUgYHNsb3dfc3VtYCBmdW5jdGlvbiBwZXJmb3JtcworLWhvcml6 b250YWwgdmVjdG9yIG9wZXJhdGlvbnMgaW5zaWRlIG9mIHRoZSBsb29wLgorLQorLU9uIGFsbCB3 aWRlbHktdXNlZCBhcmNoaXRlY3R1cmVzLCBgZmFzdF9zdW1gIGlzIGEgbGFyZ2UgY29uc3RhbnQg ZmFjdG9yIGZhc3RlcgorLXRoYW4gYHNsb3dfc3VtYC4gWW91IGNhbiBydW4gdGhlIFtzbGljZV9z dW1dKCkgZXhhbXBsZSBhbmQgc2VlIGZvciB5b3Vyc2VsZi4gT24KKy10aGUgcGFydGljdWxhciBt YWNoaW5lIHRlc3RlZCB0aGVyZSB0aGUgYWxnb3JpdGhtIHVzaW5nIHRoZSBob3Jpem9udGFsIHZl Y3RvcgorLWFkZGl0aW9uIGlzIDIuN3ggc2xvd2VyIHRoYW4gdGhlIG9uZSB1c2luZyB2ZXJ0aWNh bCB2ZWN0b3Igb3BlcmF0aW9ucyEKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tl ZF9zaW1kL3J1c3RmbXQudG9tbCBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvcnVzdGZt dC50b21sCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3Qv cGFja2VkX3NpbWQvcnVzdGZtdC50b21sCisrKysgL2Rldi9udWxsCitAQCAtMSw1ICswLDAgQEAK Ky1tYXhfd2lkdGggPSAxMTAKKy11c2Vfc21hbGxfaGV1cmlzdGljcyA9ICJNYXgiCistd3JhcF9j b21tZW50cyA9IHRydWUKKy1lZGl0aW9uID0gIjIwMTgiCistZXJyb3Jfb25fbGluZV9vdmVyZmxv dyA9IHRydWUKK1wgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorZGlmZiAtLWdpdCBhL3RoaXJk X3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFj a2VkX3NpbWQvc3JjL2FwaS5ycworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGly ZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkucnMKKysrKyAvZGV2L251bGwKK0BAIC0x LDMwOCArMCwwIEBACistLy8hIEltcGxlbWVudHMgdGhlIFNpbWQ8W1Q7IE5dPiBBUElzCistCist I1ttYWNyb191c2VdCistbW9kIGJpdG1hc2s7CistcHViKGNyYXRlKSBtb2QgY2FzdDsKKy0jW21h Y3JvX3VzZV0KKy1tb2QgY21wOworLSNbbWFjcm9fdXNlXQorLW1vZCBkZWZhdWx0OworLSNbbWFj cm9fdXNlXQorLW1vZCBmbXQ7CistI1ttYWNyb191c2VdCistbW9kIGZyb207CistI1ttYWNyb191 c2VdCistbW9kIGhhc2g7CistI1ttYWNyb191c2VdCistbW9kIG1hdGg7CistI1ttYWNyb191c2Vd CistbW9kIG1pbmltYWw7CistI1ttYWNyb191c2VdCistbW9kIG9wczsKKy0jW21hY3JvX3VzZV0K Ky1tb2QgcHRyOworLSNbbWFjcm9fdXNlXQorLW1vZCByZWR1Y3Rpb25zOworLSNbbWFjcm9fdXNl XQorLW1vZCBzZWxlY3Q7CistI1ttYWNyb191c2VdCistbW9kIHNodWZmbGU7CistI1ttYWNyb191 c2VdCistbW9kIHNodWZmbGUxX2R5bjsKKy0jW21hY3JvX3VzZV0KKy1tb2Qgc2xpY2U7CistI1tt YWNyb191c2VdCistbW9kIHN3YXBfYnl0ZXM7CistI1ttYWNyb191c2VdCistbW9kIGJpdF9tYW5p cDsKKy0KKy0jW2NmZyhmZWF0dXJlID0gImludG9fYml0cyIpXQorLXB1YihjcmF0ZSkgbW9kIGlu dG9fYml0czsKKy0KKy1tYWNyb19ydWxlcyEgaW1wbF9pIHsKKy0gICAgKFskZWxlbV90eTppZGVu dDsgJGVsZW1fbjpleHByXTogJHR1cGxlX2lkOmlkZW50LCAkbWFza190eTppZGVudAorLSAgICAg fCAkaWVsZW1fdHk6aWRlbnQsICRpYml0bWFza190eTppZGVudCB8ICR0ZXN0X3R0OnR0IHwgJCgk ZWxlbV9pZHM6aWRlbnQpLCoKKy0gICAgIHwgRnJvbTogJCgkZnJvbV92ZWNfdHk6aWRlbnQpLCog fCAkKCNbJGRvYzptZXRhXSkqKSA9PiB7CistICAgICAgICBpbXBsX21pbmltYWxfaXVmIShbJGVs ZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkaWVsZW1fdHkgfCAkdGVzdF90dAorLSAgICAg ICAgICAgICAgICAgICAgICAgICAgfCAkKCRlbGVtX2lkcyksKiB8ICQoI1skZG9jXSkqKTsKKy0g ICAgICAgIGltcGxfb3BzX3ZlY3Rvcl9hcml0aG1ldGljIShbJGVsZW1fdHk7ICRlbGVtX25dOiAk dHVwbGVfaWQgfCAkdGVzdF90dCk7CistICAgICAgICBpbXBsX29wc19zY2FsYXJfYXJpdGhtZXRp YyEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOworLSAgICAgICAg aW1wbF9vcHNfdmVjdG9yX2JpdHdpc2UhKAorLSAgICAgICAgICAgIFskZWxlbV90eTsgJGVsZW1f bl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0IHwgKCEoMCBhcyAkZWxlbV90eSksIDApCistICAgICAg ICApOworLSAgICAgICAgaW1wbF9vcHNfc2NhbGFyX2JpdHdpc2UhKAorLSAgICAgICAgICAgIFsk ZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0IHwgKCEoMCBhcyAkZWxlbV90 eSksIDApCistICAgICAgICApOworLSAgICAgICAgaW1wbF9vcHNfdmVjdG9yX3NoaWZ0cyEoWyRl bGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOworLSAgICAgICAgaW1wbF9v cHNfc2NhbGFyX3NoaWZ0cyEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3Rf dHQpOworLSAgICAgICAgaW1wbF9vcHNfdmVjdG9yX3JvdGF0ZXMhKFskZWxlbV90eTsgJGVsZW1f bl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsKKy0gICAgICAgIGltcGxfb3BzX3ZlY3Rvcl9uZWch KFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsKKy0gICAgICAgIGlt cGxfb3BzX3ZlY3Rvcl9pbnRfbWluX21heCEoCistICAgICAgICAgICAgWyRlbGVtX3R5OyAkZWxl bV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQKKy0gICAgICAgICk7CistICAgICAgICBpbXBsX3Jl ZHVjdGlvbl9pbnRlZ2VyX2FyaXRobWV0aWMhKAorLSAgICAgICAgICAgIFskZWxlbV90eTsgJGVs ZW1fbl06ICR0dXBsZV9pZCB8ICRpZWxlbV90eSB8ICR0ZXN0X3R0CistICAgICAgICApOworLSAg ICAgICAgaW1wbF9yZWR1Y3Rpb25fbWluX21heCEoCistICAgICAgICAgICAgWyRlbGVtX3R5OyAk ZWxlbV9uXTogJHR1cGxlX2lkIHwgJGllbGVtX3R5IHwgJHRlc3RfdHQKKy0gICAgICAgICk7Cist ICAgICAgICBpbXBsX3JlZHVjdGlvbl9iaXR3aXNlISgKKy0gICAgICAgICAgICBbJGVsZW1fdHk7 ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkaWVsZW1fdHkgfCAkdGVzdF90dAorLSAgICAgICAgICAg IHwgKHx4fHsgeCBhcyAkZWxlbV90eSB9KSB8ICghKDAgYXMgJGVsZW1fdHkpLCAwKQorLSAgICAg ICAgKTsKKy0gICAgICAgIGltcGxfZm10X2RlYnVnIShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVw bGVfaWQgfCAkdGVzdF90dCk7CistICAgICAgICBpbXBsX2ZtdF9sb3dlcl9oZXghKFskZWxlbV90 eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsKKy0gICAgICAgIGltcGxfZm10X3Vw cGVyX2hleCEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOworLSAg ICAgICAgaW1wbF9mbXRfb2N0YWwhKFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0 ZXN0X3R0KTsKKy0gICAgICAgIGltcGxfZm10X2JpbmFyeSEoWyRlbGVtX3R5OyAkZWxlbV9uXTog JHR1cGxlX2lkIHwgJHRlc3RfdHQpOworLSAgICAgICAgaW1wbF9mcm9tX2FycmF5IShbJGVsZW1f dHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCB8ICgxLCAxKSk7CistICAgICAgICBp bXBsX2Zyb21fdmVjdG9ycyEoCistICAgICAgICAgICAgWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1 cGxlX2lkIHwgJHRlc3RfdHQgfCAkKCRmcm9tX3ZlY190eSksKgorLSAgICAgICAgKTsKKy0gICAg ICAgIGltcGxfZGVmYXVsdCEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3Rf dHQpOworLSAgICAgICAgaW1wbF9oYXNoIShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQg fCAkdGVzdF90dCk7CistICAgICAgICBpbXBsX3NsaWNlX2Zyb21fc2xpY2UhKFskZWxlbV90eTsg JGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsKKy0gICAgICAgIGltcGxfc2xpY2Vfd3Jp dGVfdG9fc2xpY2UhKFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsK Ky0gICAgICAgIGltcGxfc3dhcF9ieXRlcyEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lk IHwgJHRlc3RfdHQpOworLSAgICAgICAgaW1wbF9iaXRfbWFuaXAhKFskZWxlbV90eTsgJGVsZW1f bl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsKKy0gICAgICAgIGltcGxfc2h1ZmZsZTFfZHluIShb JGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCk7CistICAgICAgICBpbXBs X2NtcF9wYXJ0aWFsX2VxISgKKy0gICAgICAgICAgICBbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVw bGVfaWQgfCAkdGVzdF90dCB8ICgwLCAxKQorLSAgICAgICAgKTsKKy0gICAgICAgIGltcGxfY21w X2VxIShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCB8ICgwLCAxKSk7 CistICAgICAgICBpbXBsX2NtcF92ZXJ0aWNhbCEoCistICAgICAgICAgICAgWyRlbGVtX3R5OyAk ZWxlbV9uXTogJHR1cGxlX2lkLCAkbWFza190eSwgZmFsc2UsICgxLCAwKSB8ICR0ZXN0X3R0Cist ICAgICAgICApOworLSAgICAgICAgaW1wbF9jbXBfcGFydGlhbF9vcmQhKFskZWxlbV90eTsgJGVs ZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsKKy0gICAgICAgIGltcGxfY21wX29yZCEoWyRl bGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQgfCAoMCwgMSkpOworLSAgICAg ICAgaW1wbF9iaXRtYXNrISgkdHVwbGVfaWQgfCAkaWJpdG1hc2tfdHkgfCAoLTEsIDApIHwgJHRl c3RfdHQpOworLQorLSAgICAgICAgdGVzdF9zZWxlY3QhKCRlbGVtX3R5LCAkbWFza190eSwgJHR1 cGxlX2lkLCAoMSwgMikgfCAkdGVzdF90dCk7CistICAgICAgICB0ZXN0X2NtcF9wYXJ0aWFsX29y ZF9pbnQhKFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsKKy0gICAg ICAgIHRlc3Rfc2h1ZmZsZTFfZHluIShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAk dGVzdF90dCk7CistICAgIH0KKy19CistCistbWFjcm9fcnVsZXMhIGltcGxfdSB7CistICAgIChb JGVsZW1fdHk6aWRlbnQ7ICRlbGVtX246ZXhwcl06ICR0dXBsZV9pZDppZGVudCwgJG1hc2tfdHk6 aWRlbnQKKy0gICAgIHwgJGllbGVtX3R5OmlkZW50LCAkaWJpdG1hc2tfdHk6aWRlbnQgfCAkdGVz dF90dDp0dCB8ICQoJGVsZW1faWRzOmlkZW50KSwqCistICAgICB8IEZyb206ICQoJGZyb21fdmVj X3R5OmlkZW50KSwqIHwgJCgjWyRkb2M6bWV0YV0pKikgPT4geworLSAgICAgICAgaW1wbF9taW5p bWFsX2l1ZiEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJGllbGVtX3R5IHwgJHRl c3RfdHQKKy0gICAgICAgICAgICAgICAgICAgICAgICAgIHwgJCgkZWxlbV9pZHMpLCogfCAkKCNb JGRvY10pKik7CistICAgICAgICBpbXBsX29wc192ZWN0b3JfYXJpdGhtZXRpYyEoWyRlbGVtX3R5 OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOworLSAgICAgICAgaW1wbF9vcHNfc2Nh bGFyX2FyaXRobWV0aWMhKFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0 KTsKKy0gICAgICAgIGltcGxfb3BzX3ZlY3Rvcl9iaXR3aXNlISgKKy0gICAgICAgICAgICBbJGVs ZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCB8ICghKDAgYXMgJGVsZW1fdHkp LCAwKQorLSAgICAgICAgKTsKKy0gICAgICAgIGltcGxfb3BzX3NjYWxhcl9iaXR3aXNlISgKKy0g ICAgICAgICAgICBbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCB8ICgh KDAgYXMgJGVsZW1fdHkpLCAwKQorLSAgICAgICAgKTsKKy0gICAgICAgIGltcGxfb3BzX3ZlY3Rv cl9zaGlmdHMhKFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsKKy0g ICAgICAgIGltcGxfb3BzX3NjYWxhcl9zaGlmdHMhKFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBs ZV9pZCB8ICR0ZXN0X3R0KTsKKy0gICAgICAgIGltcGxfb3BzX3ZlY3Rvcl9yb3RhdGVzIShbJGVs ZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCk7CistICAgICAgICBpbXBsX29w c192ZWN0b3JfaW50X21pbl9tYXghKAorLSAgICAgICAgICAgIFskZWxlbV90eTsgJGVsZW1fbl06 ICR0dXBsZV9pZCB8ICR0ZXN0X3R0CistICAgICAgICApOworLSAgICAgICAgaW1wbF9yZWR1Y3Rp b25faW50ZWdlcl9hcml0aG1ldGljISgKKy0gICAgICAgICAgICBbJGVsZW1fdHk7ICRlbGVtX25d OiAkdHVwbGVfaWQgfCAkaWVsZW1fdHkgfCAkdGVzdF90dAorLSAgICAgICAgKTsKKy0gICAgICAg IGltcGxfcmVkdWN0aW9uX21pbl9tYXghKAorLSAgICAgICAgICAgIFskZWxlbV90eTsgJGVsZW1f bl06ICR0dXBsZV9pZCB8ICRpZWxlbV90eSB8ICR0ZXN0X3R0CistICAgICAgICApOworLSAgICAg ICAgaW1wbF9yZWR1Y3Rpb25fYml0d2lzZSEoCistICAgICAgICAgICAgWyRlbGVtX3R5OyAkZWxl bV9uXTogJHR1cGxlX2lkIHwgJGllbGVtX3R5IHwgJHRlc3RfdHQKKy0gICAgICAgICAgICB8ICh8 eHx7IHggYXMgJGVsZW1fdHkgfSkgfCAoISgwIGFzICRlbGVtX3R5KSwgMCkKKy0gICAgICAgICk7 CistICAgICAgICBpbXBsX2ZtdF9kZWJ1ZyEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lk IHwgJHRlc3RfdHQpOworLSAgICAgICAgaW1wbF9mbXRfbG93ZXJfaGV4IShbJGVsZW1fdHk7ICRl bGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCk7CistICAgICAgICBpbXBsX2ZtdF91cHBlcl9o ZXghKFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsKKy0gICAgICAg IGltcGxfZm10X29jdGFsIShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90 dCk7CistICAgICAgICBpbXBsX2ZtdF9iaW5hcnkhKFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBs ZV9pZCB8ICR0ZXN0X3R0KTsKKy0gICAgICAgIGltcGxfZnJvbV9hcnJheSEoWyRlbGVtX3R5OyAk ZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQgfCAoMSwgMSkpOworLSAgICAgICAgaW1wbF9m cm9tX3ZlY3RvcnMhKAorLSAgICAgICAgICAgIFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9p ZCB8ICR0ZXN0X3R0IHwgJCgkZnJvbV92ZWNfdHkpLCoKKy0gICAgICAgICk7CistICAgICAgICBp bXBsX2RlZmF1bHQhKFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsK Ky0gICAgICAgIGltcGxfaGFzaCEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRl c3RfdHQpOworLSAgICAgICAgaW1wbF9zbGljZV9mcm9tX3NsaWNlIShbJGVsZW1fdHk7ICRlbGVt X25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCk7CistICAgICAgICBpbXBsX3NsaWNlX3dyaXRlX3Rv X3NsaWNlIShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCk7CistICAg ICAgICBpbXBsX3N3YXBfYnl0ZXMhKFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0 ZXN0X3R0KTsKKy0gICAgICAgIGltcGxfYml0X21hbmlwIShbJGVsZW1fdHk7ICRlbGVtX25dOiAk dHVwbGVfaWQgfCAkdGVzdF90dCk7CistICAgICAgICBpbXBsX3NodWZmbGUxX2R5biEoWyRlbGVt X3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOworLSAgICAgICAgaW1wbF9jbXBf cGFydGlhbF9lcSEoCistICAgICAgICAgICAgWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lk IHwgJHRlc3RfdHQgfCAoMSwgMCkKKy0gICAgICAgICk7CistICAgICAgICBpbXBsX2NtcF9lcSEo WyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQgfCAoMCwgMSkpOworLSAg ICAgICAgaW1wbF9jbXBfdmVydGljYWwhKAorLSAgICAgICAgICAgIFskZWxlbV90eTsgJGVsZW1f bl06ICR0dXBsZV9pZCwgJG1hc2tfdHksIGZhbHNlLCAoMSwgMCkgfCAkdGVzdF90dAorLSAgICAg ICAgKTsKKy0gICAgICAgIGltcGxfY21wX3BhcnRpYWxfb3JkIShbJGVsZW1fdHk7ICRlbGVtX25d OiAkdHVwbGVfaWQgfCAkdGVzdF90dCk7CistICAgICAgICBpbXBsX2NtcF9vcmQhKFskZWxlbV90 eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0IHwgKDAsIDEpKTsKKy0gICAgICAgIGlt cGxfYml0bWFzayEoJHR1cGxlX2lkIHwgJGliaXRtYXNrX3R5IHwgKCRpZWxlbV90eTo6bWF4X3Zh bHVlKCksIDApIHwKKy0gICAgICAgICAgICAgICAgICAgICAgJHRlc3RfdHQpOworLQorLSAgICAg ICAgdGVzdF9zZWxlY3QhKCRlbGVtX3R5LCAkbWFza190eSwgJHR1cGxlX2lkLCAoMSwgMikgfCAk dGVzdF90dCk7CistICAgICAgICB0ZXN0X2NtcF9wYXJ0aWFsX29yZF9pbnQhKFskZWxlbV90eTsg JGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsKKy0gICAgICAgIHRlc3Rfc2h1ZmZsZTFf ZHluIShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCk7CistICAgIH0K Ky19CistCistbWFjcm9fcnVsZXMhIGltcGxfZiB7CistICAgIChbJGVsZW1fdHk6aWRlbnQ7ICRl bGVtX246ZXhwcl06ICR0dXBsZV9pZDppZGVudCwgJG1hc2tfdHk6aWRlbnQKKy0gICAgIHwgJGll bGVtX3R5OmlkZW50IHwgJHRlc3RfdHQ6dHQgfCAkKCRlbGVtX2lkczppZGVudCksKgorLSAgICAg fCBGcm9tOiAkKCRmcm9tX3ZlY190eTppZGVudCksKiB8ICQoI1skZG9jOm1ldGFdKSopID0+IHsK Ky0gICAgICAgIGltcGxfbWluaW1hbF9pdWYhKFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9p ZCB8ICRpZWxlbV90eSB8ICR0ZXN0X3R0CistICAgICAgICAgICAgICAgICAgICAgICAgICB8ICQo JGVsZW1faWRzKSwqIHwgJCgjWyRkb2NdKSopOworLSAgICAgICAgaW1wbF9vcHNfdmVjdG9yX2Fy aXRobWV0aWMhKFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsKKy0g ICAgICAgIGltcGxfb3BzX3NjYWxhcl9hcml0aG1ldGljIShbJGVsZW1fdHk7ICRlbGVtX25dOiAk dHVwbGVfaWQgfCAkdGVzdF90dCk7CistICAgICAgICBpbXBsX29wc192ZWN0b3JfbmVnIShbJGVs ZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCk7CistICAgICAgICBpbXBsX29w c192ZWN0b3JfZmxvYXRfbWluX21heCEoCistICAgICAgICAgICAgWyRlbGVtX3R5OyAkZWxlbV9u XTogJHR1cGxlX2lkIHwgJHRlc3RfdHQKKy0gICAgICAgICk7CistICAgICAgICBpbXBsX3JlZHVj dGlvbl9mbG9hdF9hcml0aG1ldGljISgKKy0gICAgICAgICAgICBbJGVsZW1fdHk7ICRlbGVtX25d OiAkdHVwbGVfaWQgfCAkdGVzdF90dCk7CistICAgICAgICBpbXBsX3JlZHVjdGlvbl9taW5fbWF4 ISgKKy0gICAgICAgICAgICBbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkaWVsZW1f dHkgfCAkdGVzdF90dAorLSAgICAgICAgKTsKKy0gICAgICAgIGltcGxfZm10X2RlYnVnIShbJGVs ZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCk7CistICAgICAgICBpbXBsX2Zy b21fYXJyYXkhKFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0IHwgKDEu LCAxLikpOworLSAgICAgICAgaW1wbF9mcm9tX3ZlY3RvcnMhKAorLSAgICAgICAgICAgIFskZWxl bV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0IHwgJCgkZnJvbV92ZWNfdHkpLCoK Ky0gICAgICAgICk7CistICAgICAgICBpbXBsX2RlZmF1bHQhKFskZWxlbV90eTsgJGVsZW1fbl06 ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsKKy0gICAgICAgIGltcGxfY21wX3BhcnRpYWxfZXEhKAor LSAgICAgICAgICAgIFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0IHwg KDEuLCAwLikKKy0gICAgICAgICk7CistICAgICAgICBpbXBsX3NsaWNlX2Zyb21fc2xpY2UhKFsk ZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsKKy0gICAgICAgIGltcGxf c2xpY2Vfd3JpdGVfdG9fc2xpY2UhKFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0 ZXN0X3R0KTsKKy0gICAgICAgIGltcGxfc2h1ZmZsZTFfZHluIShbJGVsZW1fdHk7ICRlbGVtX25d OiAkdHVwbGVfaWQgfCAkdGVzdF90dCk7CistCistICAgICAgICBpbXBsX2Zsb2F0X2NvbnN0cyEo WyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkKTsKKy0gICAgICAgIGltcGxfZmxvYXRfY2F0 ZWdvcnkhKFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCwgJG1hc2tfdHkpOworLQorLSAg ICAgICAgLy8gZmxvYXRpbmctcG9pbnQgbWF0aAorLSAgICAgICAgaW1wbF9tYXRoX2Zsb2F0X2Fi cyEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOworLSAgICAgICAg aW1wbF9tYXRoX2Zsb2F0X2NvcyEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRl c3RfdHQpOworLSAgICAgICAgaW1wbF9tYXRoX2Zsb2F0X2V4cCEoWyRlbGVtX3R5OyAkZWxlbV9u XTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOworLSAgICAgICAgaW1wbF9tYXRoX2Zsb2F0X2xuIShb JGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCk7CistICAgICAgICBpbXBs X21hdGhfZmxvYXRfbXVsX2FkZCEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRl c3RfdHQpOworLSAgICAgICAgaW1wbF9tYXRoX2Zsb2F0X211bF9hZGRlIShbJGVsZW1fdHk7ICRl bGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCk7CistICAgICAgICBpbXBsX21hdGhfZmxvYXRf cG93ZiEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOworLSAgICAg ICAgaW1wbF9tYXRoX2Zsb2F0X3JlY3ByZSEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lk IHwgJHRlc3RfdHQpOworLSAgICAgICAgaW1wbF9tYXRoX2Zsb2F0X3JzcXJ0ZSEoWyRlbGVtX3R5 OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOworLSAgICAgICAgaW1wbF9tYXRoX2Zs b2F0X3NpbiEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOworLSAg ICAgICAgaW1wbF9tYXRoX2Zsb2F0X3NxcnQhKFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9p ZCB8ICR0ZXN0X3R0KTsKKy0gICAgICAgIGltcGxfbWF0aF9mbG9hdF9zcXJ0ZSEoWyRlbGVtX3R5 OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOworLSAgICAgICAgaW1wbF9jbXBfdmVy dGljYWwhKAorLSAgICAgICAgICAgIFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCwgJG1h c2tfdHksIGZhbHNlLCAoMS4sIDAuKQorLSAgICAgICAgICAgICAgICB8ICR0ZXN0X3R0CistICAg ICAgICApOworLQorLSAgICAgICAgdGVzdF9zZWxlY3QhKCRlbGVtX3R5LCAkbWFza190eSwgJHR1 cGxlX2lkLCAoMS4sIDIuKSB8ICR0ZXN0X3R0KTsKKy0gICAgICAgIHRlc3RfcmVkdWN0aW9uX2Zs b2F0X21pbl9tYXghKAorLSAgICAgICAgICAgIFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9p ZCB8ICR0ZXN0X3R0CistICAgICAgICApOworLSAgICAgICAgdGVzdF9zaHVmZmxlMV9keW4hKFsk ZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsKKy0gICAgfQorLX0KKy0K Ky1tYWNyb19ydWxlcyEgaW1wbF9tIHsKKy0gICAgKFskZWxlbV90eTppZGVudDsgJGVsZW1fbjpl eHByXTogJHR1cGxlX2lkOmlkZW50CistICAgICB8ICRpZWxlbV90eTppZGVudCwgJGliaXRtYXNr X3R5OmlkZW50CistICAgICB8ICR0ZXN0X3R0OnR0IHwgJCgkZWxlbV9pZHM6aWRlbnQpLCogfCBG cm9tOiAkKCRmcm9tX3ZlY190eTppZGVudCksKgorLSAgICAgfCAkKCNbJGRvYzptZXRhXSkqKSA9 PiB7CistICAgICAgICBpbXBsX21pbmltYWxfbWFzayEoCistICAgICAgICAgICAgWyRlbGVtX3R5 OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJGllbGVtX3R5IHwgJHRlc3RfdHQKKy0gICAgICAgICAg ICB8ICQoJGVsZW1faWRzKSwqIHwgJCgjWyRkb2NdKSoKKy0gICAgICAgICk7CistICAgICAgICBp bXBsX29wc192ZWN0b3JfbWFza19iaXR3aXNlISgKKy0gICAgICAgICAgICBbJGVsZW1fdHk7ICRl bGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCB8ICh0cnVlLCBmYWxzZSkKKy0gICAgICAgICk7 CistICAgICAgICBpbXBsX29wc19zY2FsYXJfbWFza19iaXR3aXNlISgKKy0gICAgICAgICAgICBb JGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCB8ICh0cnVlLCBmYWxzZSkK Ky0gICAgICAgICk7CistICAgICAgICBpbXBsX3JlZHVjdGlvbl9iaXR3aXNlISgKKy0gICAgICAg ICAgICBbYm9vbDsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICRpZWxlbV90eSB8ICR0ZXN0X3R0Cist ICAgICAgICAgICAgICAgIHwgKHx4fHsgeCAhPSAwIH0pIHwgKHRydWUsIGZhbHNlKQorLSAgICAg ICAgKTsKKy0gICAgICAgIGltcGxfcmVkdWN0aW9uX21hc2shKFskZWxlbV90eTsgJGVsZW1fbl06 ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsKKy0gICAgICAgIGltcGxfZm10X2RlYnVnIShbYm9vbDsg JGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsKKy0gICAgICAgIGltcGxfZnJvbV9hcnJh eSEoCistICAgICAgICAgICAgWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3Rf dHQKKy0gICAgICAgICAgICB8IChjcmF0ZTo6JGVsZW1fdHk6Om5ldyh0cnVlKSwgdHJ1ZSkKKy0g ICAgICAgICk7CistICAgICAgICBpbXBsX2Zyb21fdmVjdG9ycyEoCistICAgICAgICAgICAgWyRl bGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQgfCAkKCRmcm9tX3ZlY190eSks KgorLSAgICAgICAgKTsKKy0gICAgICAgIGltcGxfZGVmYXVsdCEoW2Jvb2w7ICRlbGVtX25dOiAk dHVwbGVfaWQgfCAkdGVzdF90dCk7CistICAgICAgICBpbXBsX2NtcF9wYXJ0aWFsX2VxISgKKy0g ICAgICAgICAgICBbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCB8ICh0 cnVlLCBmYWxzZSkKKy0gICAgICAgICk7CistICAgICAgICBpbXBsX2NtcF9lcSEoCistICAgICAg ICAgICAgWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQgfCAodHJ1ZSwg ZmFsc2UpCistICAgICAgICApOworLSAgICAgICAgaW1wbF9jbXBfdmVydGljYWwhKAorLSAgICAg ICAgICAgIFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCwgJHR1cGxlX2lkLCB0cnVlLCAo dHJ1ZSwgZmFsc2UpCistICAgICAgICAgICAgfCAkdGVzdF90dAorLSAgICAgICAgKTsKKy0gICAg ICAgIGltcGxfc2VsZWN0IShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90 dCk7CistICAgICAgICBpbXBsX2NtcF9wYXJ0aWFsX29yZCEoWyRlbGVtX3R5OyAkZWxlbV9uXTog JHR1cGxlX2lkIHwgJHRlc3RfdHQpOworLSAgICAgICAgaW1wbF9jbXBfb3JkISgKKy0gICAgICAg ICAgICBbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCB8IChmYWxzZSwg dHJ1ZSkKKy0gICAgICAgICk7CistICAgICAgICBpbXBsX3NodWZmbGUxX2R5biEoWyRlbGVtX3R5 OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOworLSAgICAgICAgaW1wbF9iaXRtYXNr ISgkdHVwbGVfaWQgfCAkaWJpdG1hc2tfdHkgfCAodHJ1ZSwgZmFsc2UpIHwgJHRlc3RfdHQpOwor LQorLSAgICAgICAgdGVzdF9jbXBfcGFydGlhbF9vcmRfbWFzayEoWyRlbGVtX3R5OyAkZWxlbV9u XTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOworLSAgICAgICAgdGVzdF9zaHVmZmxlMV9keW5fbWFz ayEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOworLSAgICB9Cist fQorLQorLW1hY3JvX3J1bGVzISBpbXBsX2NvbnN0X3AgeworLSAgICAoWyRlbGVtX3R5OnR5OyAk ZWxlbV9uOmV4cHJdOiAkdHVwbGVfaWQ6aWRlbnQsICRtYXNrX3R5OmlkZW50LAorLSAgICAgJHVz aXplX3R5OmlkZW50LCAkaXNpemVfdHk6aWRlbnQKKy0gICAgIHwgJHRlc3RfdHQ6dHQgfCAkKCRl bGVtX2lkczppZGVudCksKgorLSAgICAgfCBGcm9tOiAkKCRmcm9tX3ZlY190eTppZGVudCksKiB8 ICQoI1skZG9jOm1ldGFdKSopID0+IHsKKy0gICAgICAgIGltcGxfbWluaW1hbF9wISgKKy0gICAg ICAgICAgICBbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQsICRtYXNrX3R5LCAkdXNpemVf dHksICRpc2l6ZV90eQorLSAgICAgICAgICAgICAgICB8IHJlZl8gfCAkdGVzdF90dCB8ICQoJGVs ZW1faWRzKSwqCistICAgICAgICAgICAgICAgIHwgKDEgYXMgJGVsZW1fdHksIDAgYXMgJGVsZW1f dHkpIHwgJCgjWyRkb2NdKSoKKy0gICAgICAgICk7CistICAgICAgICBpbXBsX3B0cl9yZWFkIShb JGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQsICRtYXNrX3R5IHwgJHRlc3RfdHQpOworLSAg ICB9CistfQorLQorLW1hY3JvX3J1bGVzISBpbXBsX211dF9wIHsKKy0gICAgKFskZWxlbV90eTp0 eTsgJGVsZW1fbjpleHByXTogJHR1cGxlX2lkOmlkZW50LCAkbWFza190eTppZGVudCwKKy0gICAg ICR1c2l6ZV90eTppZGVudCwgJGlzaXplX3R5OmlkZW50CistICAgICB8ICR0ZXN0X3R0OnR0IHwg JCgkZWxlbV9pZHM6aWRlbnQpLCoKKy0gICAgIHwgRnJvbTogJCgkZnJvbV92ZWNfdHk6aWRlbnQp LCogfCAkKCNbJGRvYzptZXRhXSkqKSA9PiB7CistICAgICAgICBpbXBsX21pbmltYWxfcCEoCist ICAgICAgICAgICAgWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkLCAkbWFza190eSwgJHVz aXplX3R5LCAkaXNpemVfdHkKKy0gICAgICAgICAgICAgICAgfCByZWZfbXV0XyB8ICR0ZXN0X3R0 IHwgJCgkZWxlbV9pZHMpLCoKKy0gICAgICAgICAgICAgICAgfCAoMSBhcyAkZWxlbV90eSwgMCBh cyAkZWxlbV90eSkgfCAkKCNbJGRvY10pKgorLSAgICAgICAgKTsKKy0gICAgICAgIGltcGxfcHRy X3JlYWQhKFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCwgJG1hc2tfdHkgfCAkdGVzdF90 dCk7CistICAgICAgICBpbXBsX3B0cl93cml0ZSEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxl X2lkLCAkbWFza190eSB8ICR0ZXN0X3R0KTsKKy0gICAgfQorLX0KK2RpZmYgLS1naXQgYS90aGly ZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvYml0X21hbmlwLnJzIGIvdGhpcmRfcGFy dHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2JpdF9tYW5pcC5ycworZGVsZXRlZCBmaWxlIG1v ZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvYml0 X21hbmlwLnJzCisrKysgL2Rldi9udWxsCitAQCAtMSwxMjkgKzAsMCBAQAorLS8vISBCaXQgbWFu aXB1bGF0aW9ucy4KKy0KKy1tYWNyb19ydWxlcyEgaW1wbF9iaXRfbWFuaXAgeworLSAgICAoWyRl bGVtX3R5OmlkZW50OyAkZWxlbV9jb3VudDpleHByXTogJGlkOmlkZW50IHwgJHRlc3RfdHQ6dHQp ID0+IHsKKy0gICAgICAgIGltcGwgJGlkIHsKKy0gICAgICAgICAgICAvLy8gUmV0dXJucyB0aGUg bnVtYmVyIG9mIG9uZXMgaW4gdGhlIGJpbmFyeSByZXByZXNlbnRhdGlvbiBvZgorLSAgICAgICAg ICAgIC8vLyB0aGUgbGFuZXMgb2YgYHNlbGZgLgorLSAgICAgICAgICAgICNbaW5saW5lXQorLSAg ICAgICAgICAgIHB1YiBmbiBjb3VudF9vbmVzKHNlbGYpIC0+IFNlbGYgeworLSAgICAgICAgICAg ICAgICBzdXBlcjo6Y29kZWdlbjo6Yml0X21hbmlwOjpCaXRNYW5pcDo6Y3Rwb3Aoc2VsZikKKy0g ICAgICAgICAgICB9CistCistICAgICAgICAgICAgLy8vIFJldHVybnMgdGhlIG51bWJlciBvZiB6 ZXJvcyBpbiB0aGUgYmluYXJ5IHJlcHJlc2VudGF0aW9uIG9mCistICAgICAgICAgICAgLy8vIHRo ZSBsYW5lcyBvZiBgc2VsZmAuCistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAg cHViIGZuIGNvdW50X3plcm9zKHNlbGYpIC0+IFNlbGYgeworLSAgICAgICAgICAgICAgICBzdXBl cjo6Y29kZWdlbjo6Yml0X21hbmlwOjpCaXRNYW5pcDo6Y3Rwb3AoIXNlbGYpCistICAgICAgICAg ICAgfQorLQorLSAgICAgICAgICAgIC8vLyBSZXR1cm5zIHRoZSBudW1iZXIgb2YgbGVhZGluZyB6 ZXJvcyBpbiB0aGUgYmluYXJ5CistICAgICAgICAgICAgLy8vIHJlcHJlc2VudGF0aW9uIG9mIHRo ZSBsYW5lcyBvZiBgc2VsZmAuCistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAg cHViIGZuIGxlYWRpbmdfemVyb3Moc2VsZikgLT4gU2VsZiB7CistICAgICAgICAgICAgICAgIHN1 cGVyOjpjb2RlZ2VuOjpiaXRfbWFuaXA6OkJpdE1hbmlwOjpjdGx6KHNlbGYpCistICAgICAgICAg ICAgfQorLQorLSAgICAgICAgICAgIC8vLyBSZXR1cm5zIHRoZSBudW1iZXIgb2YgdHJhaWxpbmcg emVyb3MgaW4gdGhlIGJpbmFyeQorLSAgICAgICAgICAgIC8vLyByZXByZXNlbnRhdGlvbiBvZiB0 aGUgbGFuZXMgb2YgYHNlbGZgLgorLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAg IHB1YiBmbiB0cmFpbGluZ196ZXJvcyhzZWxmKSAtPiBTZWxmIHsKKy0gICAgICAgICAgICAgICAg c3VwZXI6OmNvZGVnZW46OmJpdF9tYW5pcDo6Qml0TWFuaXA6OmN0dHooc2VsZikKKy0gICAgICAg ICAgICB9CistICAgICAgICB9CistCistICAgICAgICB0ZXN0X2lmISB7CistICAgICAgICAgICAg JHRlc3RfdHQ6CistICAgICAgICAgICAgcGFzdGU6Oml0ZW0hIHsKKy0gICAgICAgICAgICAgICAg I1thbGxvdyhvdmVyZmxvd2luZ19saXRlcmFscyldCistICAgICAgICAgICAgICAgIHB1YiBtb2Qg WzwkaWQgX2JpdF9tYW5pcD5dIHsKKy0gICAgICAgICAgICAgICAgICAgICMhW2FsbG93KGNvbnN0 X2l0ZW1fbXV0YXRpb24pXQorLSAgICAgICAgICAgICAgICAgICAgdXNlIHN1cGVyOjoqOworLQor LSAgICAgICAgICAgICAgICAgICAgY29uc3QgTEFORV9XSURUSDogdXNpemUgPSBtZW06OnNpemVf b2Y6OjwkZWxlbV90eT4oKSAqIDg7CistCistICAgICAgICAgICAgICAgICAgICBtYWNyb19ydWxl cyEgdGVzdF9mdW5jIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAoJHg6ZXhwciwgJGZ1bmM6 aWRlbnQpID0+IHt7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgYWN0dWFs ID0gJHg7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciBpIGluIDAuLiRpZDo6bGFu ZXMoKSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3R1YWwgPSBhY3R1YWwu cmVwbGFjZSgKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpLAorLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR4LmV4dHJhY3QoaSkuJGZ1bmMoKSBhcyAk ZWxlbV90eQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZXhw ZWN0ZWQgPSAkeC4kZnVuYygpOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRf ZXEhKGFjdHVhbCwgZXhwZWN0ZWQpOworLSAgICAgICAgICAgICAgICAgICAgICAgIH19OworLSAg ICAgICAgICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgICAgICAgICAgY29uc3QgQllURVM6 IFt1ODsgNjRdID0gWworLSAgICAgICAgICAgICAgICAgICAgICAgIDAsIDEsIDIsIDMsIDQsIDUs IDYsIDcsCistICAgICAgICAgICAgICAgICAgICAgICAgOCwgOSwgMTAsIDExLCAxMiwgMTMsIDE0 LCAxNSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAxNiwgMTcsIDE4LCAxOSwgMjAsIDIxLCAy MiwgMjMsCistICAgICAgICAgICAgICAgICAgICAgICAgMjQsIDI1LCAyNiwgMjcsIDI4LCAyOSwg MzAsIDMxLAorLSAgICAgICAgICAgICAgICAgICAgICAgIDMyLCAzMywgMzQsIDM1LCAzNiwgMzcs IDM4LCAzOSwKKy0gICAgICAgICAgICAgICAgICAgICAgICA0MCwgNDEsIDQyLCA0MywgNDQsIDQ1 LCA0NiwgNDcsCistICAgICAgICAgICAgICAgICAgICAgICAgNDgsIDQ5LCA1MCwgNTEsIDUyLCA1 MywgNTQsIDU1LAorLSAgICAgICAgICAgICAgICAgICAgICAgIDU2LCA1NywgNTgsIDU5LCA2MCwg NjEsIDYyLCA2MywKKy0gICAgICAgICAgICAgICAgICAgIF07CistCistICAgICAgICAgICAgICAg ICAgICBmbiBsb2FkX2J5dGVzKCkgLT4gJGlkIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICBs ZXQgZWxlbXM6ICZtdXQgWyRlbGVtX3R5XSA9IHVuc2FmZSB7CistICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNsaWNlOjpmcm9tX3Jhd19wYXJ0c19tdXQoCistICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBCWVRFUy5hc19tdXRfcHRyKCkgYXMgKm11dCAkZWxlbV90eSwKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpZDo6bGFuZXMoKSwKKy0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgKQorLSAgICAgICAgICAgICAgICAgICAgICAgIH07CistICAgICAgICAg ICAgICAgICAgICAgICAgJGlkOjpmcm9tX3NsaWNlX3VuYWxpZ25lZChlbGVtcykKKy0gICAgICAg ICAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRh cmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAgICNbY2Zn X2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQorLSAgICAg ICAgICAgICAgICAgICAgZm4gY291bnRfb25lcygpIHsKKy0gICAgICAgICAgICAgICAgICAgICAg ICB0ZXN0X2Z1bmMhKCRpZDo6c3BsYXQoMCksIGNvdW50X29uZXMpOworLSAgICAgICAgICAgICAg ICAgICAgICAgIHRlc3RfZnVuYyEoJGlkOjpzcGxhdCghMCksIGNvdW50X29uZXMpOworLSAgICAg ICAgICAgICAgICAgICAgICAgIHRlc3RfZnVuYyEobG9hZF9ieXRlcygpLCBjb3VudF9vbmVzKTsK Ky0gICAgICAgICAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0 dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0KKy0gICAgICAgICAgICAgICAg ICAgICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3Qp XQorLSAgICAgICAgICAgICAgICAgICAgZm4gY291bnRfemVyb3MoKSB7CistICAgICAgICAgICAg ICAgICAgICAgICAgdGVzdF9mdW5jISgkaWQ6OnNwbGF0KDApLCBjb3VudF96ZXJvcyk7CistICAg ICAgICAgICAgICAgICAgICAgICAgdGVzdF9mdW5jISgkaWQ6OnNwbGF0KCEwKSwgY291bnRfemVy b3MpOworLSAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfZnVuYyEobG9hZF9ieXRlcygpLCBj b3VudF96ZXJvcyk7CistICAgICAgICAgICAgICAgICAgICB9CistCistICAgICAgICAgICAgICAg ICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldCistICAg ICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21f YmluZGdlbl90ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAgIGZuIGxlYWRpbmdfemVyb3MoKSB7 CistICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9mdW5jISgkaWQ6OnNwbGF0KDApLCBsZWFk aW5nX3plcm9zKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X2Z1bmMhKCRpZDo6c3Bs YXQoMSksIGxlYWRpbmdfemVyb3MpOworLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNvbWUg aW1wbGVtZW50YXRpb25zIHVzZSBgcHNodWZiYCB3aGljaCBoYXMgdW5pcXVlCistICAgICAgICAg ICAgICAgICAgICAgICAgLy8gYmVoYXZpb3Igd2hlbiB0aGUgOHRoIGJpdCBpcyBzZXQuCistICAg ICAgICAgICAgICAgICAgICAgICAgdGVzdF9mdW5jISgkaWQ6OnNwbGF0KDBiMTAwMF8wMDEwKSwg bGVhZGluZ196ZXJvcyk7CistICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9mdW5jISgkaWQ6 OnNwbGF0KCEwKSwgbGVhZGluZ196ZXJvcyk7CistICAgICAgICAgICAgICAgICAgICAgICAgdGVz dF9mdW5jISgKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGlkOjpzcGxhdCgxIDw8IChM QU5FX1dJRFRIIC0gMSkpLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZWFkaW5nX3pl cm9zCistICAgICAgICAgICAgICAgICAgICAgICAgKTsKKy0gICAgICAgICAgICAgICAgICAgICAg ICB0ZXN0X2Z1bmMhKGxvYWRfYnl0ZXMoKSwgbGVhZGluZ196ZXJvcyk7CistICAgICAgICAgICAg ICAgICAgICB9CistCistICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRf YXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldCistICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRy KHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KKy0gICAgICAgICAg ICAgICAgICAgIGZuIHRyYWlsaW5nX3plcm9zKCkgeworLSAgICAgICAgICAgICAgICAgICAgICAg IHRlc3RfZnVuYyEoJGlkOjpzcGxhdCgwKSwgdHJhaWxpbmdfemVyb3MpOworLSAgICAgICAgICAg ICAgICAgICAgICAgIHRlc3RfZnVuYyEoJGlkOjpzcGxhdCgxKSwgdHJhaWxpbmdfemVyb3MpOwor LSAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfZnVuYyEoJGlkOjpzcGxhdCgwYjEwMDBfMDAx MCksIHRyYWlsaW5nX3plcm9zKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X2Z1bmMh KCRpZDo6c3BsYXQoITApLCB0cmFpbGluZ196ZXJvcyk7CistICAgICAgICAgICAgICAgICAgICAg ICAgdGVzdF9mdW5jISgKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGlkOjpzcGxhdCgx IDw8IChMQU5FX1dJRFRIIC0gMSkpLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFp bGluZ196ZXJvcworLSAgICAgICAgICAgICAgICAgICAgICAgICk7CistICAgICAgICAgICAgICAg ICAgICAgICAgdGVzdF9mdW5jIShsb2FkX2J5dGVzKCksIHRyYWlsaW5nX3plcm9zKTsKKy0gICAg ICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgIH0KKy0g ICAgICAgIH0KKy0gICAgfTsKKy19CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNr ZWRfc2ltZC9zcmMvYXBpL2JpdG1hc2sucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1k L3NyYy9hcGkvYml0bWFzay5ycworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGly ZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvYml0bWFzay5ycworKysrIC9kZXYvbnVs bAorQEAgLTEsNzkgKzAsMCBAQAorLS8vISBCaXRtYXNrIEFQSQorLQorLW1hY3JvX3J1bGVzISBp bXBsX2JpdG1hc2sgeworLSAgICAoJGlkOmlkZW50IHwgJGliaXRtYXNrX3R5OmlkZW50IHwgKCRz ZXQ6ZXhwciwgJGNsZWFyOmV4cHIpCistICAgICB8ICR0ZXN0X3R0OnR0KSA9PiB7CistICAgICAg ICBpbXBsICRpZCB7CistICAgICAgICAgICAgLy8vIENyZWF0ZXMgYSBiaXRtYXNrIHdpdGggdGhl IE1TQiBvZiBlYWNoIHZlY3RvciBsYW5lLgorLSAgICAgICAgICAgIC8vLworLSAgICAgICAgICAg IC8vLyBJZiB0aGUgdmVjdG9yIGhhcyBsZXNzIHRoYW4gOCBsYW5lcywgdGhlIGJpdHMgdGhhdCBk byBub3QKKy0gICAgICAgICAgICAvLy8gY29ycmVzcG9uZCB0byBhbnkgdmVjdG9yIGxhbmVzIGFy ZSBjbGVhcmVkLgorLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIHB1YiBmbiBi aXRtYXNrKHNlbGYpIC0+ICRpYml0bWFza190eSB7CistICAgICAgICAgICAgICAgIHVuc2FmZSB7 IGNvZGVnZW46Omxsdm06OnNpbWRfYml0bWFzayhzZWxmLjApIH0KKy0gICAgICAgICAgICB9Cist ICAgICAgICB9CistCistICAgICAgICB0ZXN0X2lmISB7CistICAgICAgICAgICAgJHRlc3RfdHQ6 CistICAgICAgICAgICAgcGFzdGU6Oml0ZW0hIHsKKy0gICAgICAgICAgICAgICAgI1tjZmcobm90 KAorLSAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0 LWxhbmctbnVyc2VyeS9wYWNrZWRfc2ltZC9pc3N1ZXMvMjEwCistICAgICAgICAgICAgICAgICAg ICB0YXJnZXRfZW5kaWFuID0gImJpZyIKKy0gICAgICAgICAgICAgICAgKSldCistICAgICAgICAg ICAgICAgIHB1YiBtb2QgWzwkaWQgX2JpdG1hc2s+XSB7CistICAgICAgICAgICAgICAgICAgICB1 c2Ugc3VwZXI6Oio7CistICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRf YXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldCistICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRy KHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KKy0gICAgICAgICAg ICAgICAgICAgIGZuIGJpdG1hc2soKSB7CistICAgICAgICAgICAgICAgICAgICAgICAgLy8gY2xl YXIgYWxsIGxhbmVzCistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHZlYyA9ICRpZDo6c3Bs YXQoJGNsZWFyIGFzIF8pOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBiaXRtYXNrOiAk aWJpdG1hc2tfdHkgPSAwOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodmVj LmJpdG1hc2soKSwgYml0bWFzayk7CistCistICAgICAgICAgICAgICAgICAgICAgICAgLy8gc2V0 IGV2ZW4gbGFuZXMKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IHZlYyA9ICRpZDo6 c3BsYXQoJGNsZWFyIGFzIF8pOworLSAgICAgICAgICAgICAgICAgICAgICAgIGZvciBpIGluIDAu LiRpZDo6bGFuZXMoKSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGkgJSAyID09 IDAgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjID0gdmVjLnJlcGxhY2Uo aSwgJHNldCBhcyBfKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAg ICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgICAgICAvLyBjcmVhdGUgYml0 bWFzayB3aXRoIGV2ZW4gbGFuZXMgc2V0OgorLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBt dXQgYml0bWFzazogJGliaXRtYXNrX3R5ID0gMDsKKy0gICAgICAgICAgICAgICAgICAgICAgICBm b3IgaSBpbiAwLi4kaWQ6OmxhbmVzKCkgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBp ZiBpICUgMiA9PSAwIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJpdG1hc2sg fD0gMSA8PCBpOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAg ICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodmVjLmJp dG1hc2soKSwgYml0bWFzayk7CistCistCistICAgICAgICAgICAgICAgICAgICAgICAgLy8gc2V0 IG9kZCBsYW5lcworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgdmVjID0gJGlkOjpz cGxhdCgkY2xlYXIgYXMgXyk7CistICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGkgaW4gMC4u JGlkOjpsYW5lcygpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgaSAlIDIgIT0g MCB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWMgPSB2ZWMucmVwbGFjZShp LCAkc2V0IGFzIF8pOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAg ICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNyZWF0ZSBiaXRt YXNrIHdpdGggb2RkIGxhbmVzIHNldDoKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0 IGJpdG1hc2s6ICRpYml0bWFza190eSA9IDA7CistICAgICAgICAgICAgICAgICAgICAgICAgZm9y IGkgaW4gMC4uJGlkOjpsYW5lcygpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYg aSAlIDIgIT0gMCB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiaXRtYXNrIHw9 IDEgPDwgaTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAg ICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHZlYy5iaXRt YXNrKCksIGJpdG1hc2spOworLQorLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNldCBhbGwg bGFuZXMKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdmVjID0gJGlkOjpzcGxhdCgkc2V0 IGFzIF8pOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgYml0bWFzazogJGliaXRt YXNrX3R5ID0gMDsKKy0gICAgICAgICAgICAgICAgICAgICAgICBmb3IgaSBpbiAwLi4kaWQ6Omxh bmVzKCkgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBiaXRtYXNrIHw9IDEgPDwgaTsK Ky0gICAgICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICAgICAgYXNz ZXJ0X2VxISh2ZWMuYml0bWFzaygpLCBiaXRtYXNrKTsKKy0gICAgICAgICAgICAgICAgICAgIH0K Ky0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgfTsK Ky19CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2Nh c3QucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvY2FzdC5ycworZGVs ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1k L3NyYy9hcGkvY2FzdC5ycworKysrIC9kZXYvbnVsbAorQEAgLTEsMTA4ICswLDAgQEAKKy0vLyEg SW1wbGVtZW50YXRpb24gb2YgYEZyb21DYXN0YCBhbmQgYEludG9DYXN0YC4KKy0jIVthbGxvdyhj bGlwcHk6Om1vZHVsZV9uYW1lX3JlcGV0aXRpb25zKV0KKy0KKy0vLy8gTnVtZXJpYyBjYXN0IGZy b20gYFRgIHRvIGBTZWxmYC4KKy0vLy8KKy0vLy8gPiBOb3RlOiBUaGlzIGlzIGEgdGVtcG9yYXJ5 IHdvcmthcm91bmQgdW50aWwgdGhlIGNvbnZlcnNpb24gdHJhaXRzCistLy8vIHNwZWNpZmllZCA+ IGluIFtSRkMyNDg0XSBhcmUgaW1wbGVtZW50ZWQuCistLy8vCistLy8vIE51bWVyaWMgY2FzdCBi ZXR3ZWVuIHZlY3RvcnMgd2l0aCB0aGUgc2FtZSBudW1iZXIgb2YgbGFuZXMsIHN1Y2ggdGhhdDoK Ky0vLy8KKy0vLy8gKiBjYXN0aW5nIGludGVnZXIgdmVjdG9ycyB3aG9zZSBsYW5lIHR5cGVzIGhh dmUgdGhlIHNhbWUgc2l6ZSAoZS5nLiBgaTMyeE5gCistLy8vIC0+IGB1MzJ4TmApIGlzIGEgKipu by1vcCoqLAorLS8vLworLS8vLyAqIGNhc3RpbmcgZnJvbSBhIGxhcmdlciBpbnRlZ2VyIHRvIGEg c21hbGxlciBpbnRlZ2VyIChlLmcuIGB1MzJ4TmAgLT4KKy0vLy8gYHU4eE5gKSB3aWxsICoqdHJ1 bmNhdGUqKiwKKy0vLy8KKy0vLy8gKiBjYXN0aW5nIGZyb20gYSBzbWFsbGVyIGludGVnZXIgdG8g YSBsYXJnZXIgaW50ZWdlciAgIChlLmcuIGB1OHhOYCAtPgorLS8vLyAgIGB1MzJ4TmApIHdpbGw6 CistLy8vICAgICogKip6ZXJvLWV4dGVuZCoqIGlmIHRoZSBzb3VyY2UgaXMgdW5zaWduZWQsIG9y CistLy8vICAgICogKipzaWduLWV4dGVuZCoqIGlmIHRoZSBzb3VyY2UgaXMgc2lnbmVkLAorLS8v LworLS8vLyAqIGNhc3RpbmcgZnJvbSBhIGZsb2F0IHRvIGFuIGludGVnZXIgd2lsbCAqKnJvdW5k IHRoZSBmbG9hdCB0b3dhcmRzIHplcm8qKiwKKy0vLy8KKy0vLy8gKiBjYXN0aW5nIGZyb20gYW4g aW50ZWdlciB0byBmbG9hdCB3aWxsIHByb2R1Y2UgdGhlIGZsb2F0aW5nIHBvaW50CistLy8vIHJl cHJlc2VudGF0aW9uIG9mIHRoZSBpbnRlZ2VyLCAqKnJvdW5kaW5nIHRvIG5lYXJlc3QsIHRpZXMg dG8gZXZlbioqLAorLS8vLworLS8vLyAqIGNhc3RpbmcgZnJvbSBhbiBgZjMyYCB0byBhbiBgZjY0 YCBpcyBwZXJmZWN0IGFuZCBsb3NzbGVzcywKKy0vLy8KKy0vLy8gKiBjYXN0aW5nIGZyb20gYW4g YGY2NGAgdG8gYW4gYGYzMmAgKipyb3VuZHMgdG8gbmVhcmVzdCwgdGllcyB0byBldmVuKiouCist Ly8vCistLy8vIFtSRkMyNDg0XTogaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9yZmNzL3B1 bGwvMjQ4NAorLXB1YiB0cmFpdCBGcm9tQ2FzdDxUPjogY3JhdGU6Om1hcmtlcjo6U2l6ZWQgewor LSAgICAvLy8gTnVtZXJpYyBjYXN0IGZyb20gYFRgIHRvIGBTZWxmYC4KKy0gICAgZm4gZnJvbV9j YXN0KF86IFQpIC0+IFNlbGY7CistfQorLQorLS8vLyBOdW1lcmljIGNhc3QgZnJvbSBgU2VsZmAg dG8gYFRgLgorLS8vLworLS8vLyA+IE5vdGU6IFRoaXMgaXMgYSB0ZW1wb3Jhcnkgd29ya2Fyb3Vu ZCB1bnRpbCB0aGUgY29udmVyc2lvbiB0cmFpdHMKKy0vLy8gc3BlY2lmaWVkID4gaW4gW1JGQzI0 ODRdIGFyZSBpbXBsZW1lbnRlZC4KKy0vLy8KKy0vLy8gTnVtZXJpYyBjYXN0IGJldHdlZW4gdmVj dG9ycyB3aXRoIHRoZSBzYW1lIG51bWJlciBvZiBsYW5lcywgc3VjaCB0aGF0OgorLS8vLworLS8v LyAqIGNhc3RpbmcgaW50ZWdlciB2ZWN0b3JzIHdob3NlIGxhbmUgdHlwZXMgaGF2ZSB0aGUgc2Ft ZSBzaXplIChlLmcuIGBpMzJ4TmAKKy0vLy8gLT4gYHUzMnhOYCkgaXMgYSAqKm5vLW9wKiosCist Ly8vCistLy8vICogY2FzdGluZyBmcm9tIGEgbGFyZ2VyIGludGVnZXIgdG8gYSBzbWFsbGVyIGlu dGVnZXIgKGUuZy4gYHUzMnhOYCAtPgorLS8vLyBgdTh4TmApIHdpbGwgKip0cnVuY2F0ZSoqLAor LS8vLworLS8vLyAqIGNhc3RpbmcgZnJvbSBhIHNtYWxsZXIgaW50ZWdlciB0byBhIGxhcmdlciBp bnRlZ2VyICAgKGUuZy4gYHU4eE5gIC0+CistLy8vICAgYHUzMnhOYCkgd2lsbDoKKy0vLy8gICAg KiAqKnplcm8tZXh0ZW5kKiogaWYgdGhlIHNvdXJjZSBpcyB1bnNpZ25lZCwgb3IKKy0vLy8gICAg KiAqKnNpZ24tZXh0ZW5kKiogaWYgdGhlIHNvdXJjZSBpcyBzaWduZWQsCistLy8vCistLy8vICog Y2FzdGluZyBmcm9tIGEgZmxvYXQgdG8gYW4gaW50ZWdlciB3aWxsICoqcm91bmQgdGhlIGZsb2F0 IHRvd2FyZHMgemVybyoqLAorLS8vLworLS8vLyAqIGNhc3RpbmcgZnJvbSBhbiBpbnRlZ2VyIHRv IGZsb2F0IHdpbGwgcHJvZHVjZSB0aGUgZmxvYXRpbmcgcG9pbnQKKy0vLy8gcmVwcmVzZW50YXRp b24gb2YgdGhlIGludGVnZXIsICoqcm91bmRpbmcgdG8gbmVhcmVzdCwgdGllcyB0byBldmVuKios CistLy8vCistLy8vICogY2FzdGluZyBmcm9tIGFuIGBmMzJgIHRvIGFuIGBmNjRgIGlzIHBlcmZl Y3QgYW5kIGxvc3NsZXNzLAorLS8vLworLS8vLyAqIGNhc3RpbmcgZnJvbSBhbiBgZjY0YCB0byBh biBgZjMyYCAqKnJvdW5kcyB0byBuZWFyZXN0LCB0aWVzIHRvIGV2ZW4qKi4KKy0vLy8KKy0vLy8g W1JGQzI0ODRdOiBodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL3JmY3MvcHVsbC8yNDg0Cist cHViIHRyYWl0IENhc3Q8VD46IGNyYXRlOjptYXJrZXI6OlNpemVkIHsKKy0gICAgLy8vIE51bWVy aWMgY2FzdCBmcm9tIGBzZWxmYCB0byBgVGAuCistICAgIGZuIGNhc3Qoc2VsZikgLT4gVDsKKy19 CistCistLy8vIGBGcm9tQ2FzdGAgaW1wbGllcyBgQ2FzdGAuCistaW1wbDxULCBVPiBDYXN0PFU+ IGZvciBUCistd2hlcmUKKy0gICAgVTogRnJvbUNhc3Q8VD4sCisteworLSAgICAjW2lubGluZV0K Ky0gICAgZm4gY2FzdChzZWxmKSAtPiBVIHsKKy0gICAgICAgIFU6OmZyb21fY2FzdChzZWxmKQor LSAgICB9CistfQorLQorLS8vLyBgRnJvbUNhc3RgIGFuZCBgQ2FzdGAgYXJlIHJlZmxleGl2ZQor LWltcGw8VD4gRnJvbUNhc3Q8VD4gZm9yIFQgeworLSAgICAjW2lubGluZV0KKy0gICAgZm4gZnJv bV9jYXN0KHQ6IFNlbGYpIC0+IFNlbGYgeworLSAgICAgICAgdAorLSAgICB9CistfQorLQorLSNb bWFjcm9fdXNlXQorLW1vZCBtYWNyb3M7CistCistbW9kIHYxNjsKKy1wdWIgdXNlIHNlbGY6OnYx Njo6KjsKKy0KKy1tb2QgdjMyOworLXB1YiB1c2Ugc2VsZjo6djMyOjoqOworLQorLW1vZCB2NjQ7 CistcHViIHVzZSBzZWxmOjp2NjQ6Oio7CistCistbW9kIHYxMjg7CistcHViIHVzZSBzZWxmOjp2 MTI4OjoqOworLQorLW1vZCB2MjU2OworLXB1YiB1c2Ugc2VsZjo6djI1Njo6KjsKKy0KKy1tb2Qg djUxMjsKKy1wdWIgdXNlIHNlbGY6OnY1MTI6Oio7CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkv cnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2Nhc3QvbWFjcm9zLnJzIGIvdGhpcmRfcGFydHkvcnVz dC9wYWNrZWRfc2ltZC9zcmMvYXBpL2Nhc3QvbWFjcm9zLnJzCitkZWxldGVkIGZpbGUgbW9kZSAx MDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9jYXN0L21h Y3Jvcy5ycworKysrIC9kZXYvbnVsbAorQEAgLTEsODIgKzAsMCBAQAorLS8vISBNYWNyb3MgaW1w bGVtZW50aW5nIGBGcm9tQ2FzdGAKKy0KKy1tYWNyb19ydWxlcyEgaW1wbF9mcm9tX2Nhc3RfIHsK Ky0gICAgKCRpZDppZGVudFskdGVzdF90dDp0dF06ICRmcm9tX3R5OmlkZW50KSA9PiB7CistICAg ICAgICBpbXBsIGNyYXRlOjphcGk6OmNhc3Q6OkZyb21DYXN0PCRmcm9tX3R5PiBmb3IgJGlkIHsK Ky0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBmbiBmcm9tX2Nhc3QoeDogJGZy b21fdHkpIC0+IFNlbGYgeworLSAgICAgICAgICAgICAgICB1c2UgY3JhdGU6Omxsdm06OnNpbWRf Y2FzdDsKKy0gICAgICAgICAgICAgICAgZGVidWdfYXNzZXJ0X2VxISgkZnJvbV90eTo6bGFuZXMo KSwgJGlkOjpsYW5lcygpKTsKKy0gICAgICAgICAgICAgICAgU2ltZCh1bnNhZmUgeyBzaW1kX2Nh c3QoeC4wKSB9KQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0KKy0gICAgICAgIHRlc3Rf aWYheworLSAgICAgICAgICAgICR0ZXN0X3R0OgorLSAgICAgICAgICAgIHBhc3RlOjppdGVtISB7 CistICAgICAgICAgICAgICAgIHB1YiBtb2QgWzwkaWQgX2Zyb21fY2FzdF8gJGZyb21fdHk+XSB7 CistICAgICAgICAgICAgICAgICAgICB1c2Ugc3VwZXI6Oio7CistICAgICAgICAgICAgICAgICAg ICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldICNbY2ZnX2F0 dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQorLSAgICAgICAg ICAgICAgICAgICAgZm4gdGVzdCgpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRf ZXEhKCRpZDo6bGFuZXMoKSwgJGZyb21fdHk6OmxhbmVzKCkpOworLSAgICAgICAgICAgICAgICAg ICAgfQorLSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAg ICB9OworLX0KKy0KKy1tYWNyb19ydWxlcyEgaW1wbF9mcm9tX2Nhc3QgeworLSAgICAoJGlkOmlk ZW50WyR0ZXN0X3R0OnR0XTogJCgkZnJvbV90eTppZGVudCksKikgPT4geworLSAgICAgICAgJCgK Ky0gICAgICAgICAgICBpbXBsX2Zyb21fY2FzdF8hKCRpZFskdGVzdF90dF06ICRmcm9tX3R5KTsK Ky0gICAgICAgICkqCistICAgIH0KKy19CistCistbWFjcm9fcnVsZXMhIGltcGxfZnJvbV9jYXN0 X21hc2tfIHsKKy0gICAgKCRpZDppZGVudFskdGVzdF90dDp0dF06ICRmcm9tX3R5OmlkZW50KSA9 PiB7CistICAgICAgICBpbXBsIGNyYXRlOjphcGk6OmNhc3Q6OkZyb21DYXN0PCRmcm9tX3R5PiBm b3IgJGlkIHsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBmbiBmcm9tX2Nh c3QoeDogJGZyb21fdHkpIC0+IFNlbGYgeworLSAgICAgICAgICAgICAgICBkZWJ1Z19hc3NlcnRf ZXEhKCRmcm9tX3R5OjpsYW5lcygpLCAkaWQ6OmxhbmVzKCkpOworLSAgICAgICAgICAgICAgICB4 Lm5lKCRmcm9tX3R5OjpkZWZhdWx0KCkpCistICAgICAgICAgICAgICAgICAgICAuc2VsZWN0KCRp ZDo6c3BsYXQodHJ1ZSksICRpZDo6c3BsYXQoZmFsc2UpKQorLSAgICAgICAgICAgIH0KKy0gICAg ICAgIH0KKy0KKy0gICAgICAgIHRlc3RfaWYheworLSAgICAgICAgICAgICR0ZXN0X3R0OgorLSAg ICAgICAgICAgIHBhc3RlOjppdGVtISB7CistICAgICAgICAgICAgICAgIHB1YiBtb2QgWzwkaWQg X2Zyb21fY2FzdF8gJGZyb21fdHk+XSB7CistICAgICAgICAgICAgICAgICAgICB1c2Ugc3VwZXI6 Oio7CistICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3 YXNtMzIiKSwgdGVzdCldICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9i aW5kZ2VuX3Rlc3QpXQorLSAgICAgICAgICAgICAgICAgICAgZm4gdGVzdCgpIHsKKy0gICAgICAg ICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKCRpZDo6bGFuZXMoKSwgJGZyb21fdHk6OmxhbmVz KCkpOworLQorLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB4ID0gJGZyb21fdHk6OmRlZmF1 bHQoKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbTogJGlkID0geC5jYXN0KCk7Cist ICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IShtLm5vbmUoKSk7CistICAgICAgICAgICAg ICAgICAgICB9CistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICB9CistICAgICAgICB9 CistICAgIH07CistfQorLQorLW1hY3JvX3J1bGVzISBpbXBsX2Zyb21fY2FzdF9tYXNrIHsKKy0g ICAgKCRpZDppZGVudFskdGVzdF90dDp0dF06ICQoJGZyb21fdHk6aWRlbnQpLCopID0+IHsKKy0g ICAgICAgICQoCistICAgICAgICAgICAgaW1wbF9mcm9tX2Nhc3RfbWFza18hKCRpZFskdGVzdF90 dF06ICRmcm9tX3R5KTsKKy0gICAgICAgICkqCistICAgIH0KKy19CistCistI1thbGxvdyh1bnVz ZWQpXQorLW1hY3JvX3J1bGVzISBpbXBsX2ludG9fY2FzdCB7CistICAgICgkaWQ6aWRlbnRbJHRl c3RfdHQ6dHRdOiAkKCRmcm9tX3R5OmlkZW50KSwqKSA9PiB7CistICAgICAgICAkKAorLSAgICAg ICAgICAgIGltcGxfZnJvbV9jYXN0XyEoJGZyb21fdHlbJHRlc3RfdHRdOiAkaWQpOworLSAgICAg ICAgKSoKKy0gICAgfQorLX0KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9z aW1kL3NyYy9hcGkvY2FzdC92MTI4LnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9z cmMvYXBpL2Nhc3QvdjEyOC5ycworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGly ZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvY2FzdC92MTI4LnJzCisrKysgL2Rldi9u dWxsCitAQCAtMSwzMDIgKzAsMCBAQAorLS8vISBgRnJvbUNhc3RgIGFuZCBgSW50b0Nhc3RgIGlt cGxlbWVudGF0aW9ucyBmb3IgcG9ydGFibGUgMTI4LWJpdCB3aWRlIHZlY3RvcnMKKy0jW3J1c3Rm bXQ6OnNraXBdCistCistdXNlIGNyYXRlOjoqOworLQorLWltcGxfZnJvbV9jYXN0IShpOHgxNlt0 ZXN0X3YxMjhdOiB1OHgxNiwgbTh4MTYsIGkxNngxNiwgdTE2eDE2LCBtMTZ4MTYsIGkzMngxNiwg dTMyeDE2LCBmMzJ4MTYsIG0zMngxNik7CistaW1wbF9mcm9tX2Nhc3QhKHU4eDE2W3Rlc3RfdjEy OF06IGk4eDE2LCBtOHgxNiwgaTE2eDE2LCB1MTZ4MTYsIG0xNngxNiwgaTMyeDE2LCB1MzJ4MTYs IGYzMngxNiwgbTMyeDE2KTsKKy1pbXBsX2Zyb21fY2FzdF9tYXNrIShtOHgxNlt0ZXN0X3YxMjhd OiBpOHgxNiwgdTh4MTYsIGkxNngxNiwgdTE2eDE2LCBtMTZ4MTYsIGkzMngxNiwgdTMyeDE2LCBm MzJ4MTYsIG0zMngxNik7CistCistaW1wbF9mcm9tX2Nhc3QhKAorLSAgICBpMTZ4OFt0ZXN0X3Yx MjhdOiBpOHg4LAorLSAgICB1OHg4LAorLSAgICBtOHg4LAorLSAgICB1MTZ4OCwKKy0gICAgbTE2 eDgsCistICAgIGkzMng4LAorLSAgICB1MzJ4OCwKKy0gICAgZjMyeDgsCistICAgIG0zMng4LAor LSAgICBpNjR4OCwKKy0gICAgdTY0eDgsCistICAgIGY2NHg4LAorLSAgICBtNjR4OCwKKy0gICAg aXNpemV4OCwKKy0gICAgdXNpemV4OCwKKy0gICAgbXNpemV4OAorLSk7CistaW1wbF9mcm9tX2Nh c3QhKAorLSAgICB1MTZ4OFt0ZXN0X3YxMjhdOiBpOHg4LAorLSAgICB1OHg4LAorLSAgICBtOHg4 LAorLSAgICBpMTZ4OCwKKy0gICAgbTE2eDgsCistICAgIGkzMng4LAorLSAgICB1MzJ4OCwKKy0g ICAgZjMyeDgsCistICAgIG0zMng4LAorLSAgICBpNjR4OCwKKy0gICAgdTY0eDgsCistICAgIGY2 NHg4LAorLSAgICBtNjR4OCwKKy0gICAgaXNpemV4OCwKKy0gICAgdXNpemV4OCwKKy0gICAgbXNp emV4OAorLSk7CistaW1wbF9mcm9tX2Nhc3RfbWFzayEoCistICAgIG0xNng4W3Rlc3RfdjEyOF06 IGk4eDgsCistICAgIHU4eDgsCistICAgIG04eDgsCistICAgIGkxNng4LAorLSAgICB1MTZ4OCwK Ky0gICAgaTMyeDgsCistICAgIHUzMng4LAorLSAgICBmMzJ4OCwKKy0gICAgbTMyeDgsCistICAg IGk2NHg4LAorLSAgICB1NjR4OCwKKy0gICAgZjY0eDgsCistICAgIG02NHg4LAorLSAgICBpc2l6 ZXg4LAorLSAgICB1c2l6ZXg4LAorLSAgICBtc2l6ZXg4CistKTsKKy0KKy1pbXBsX2Zyb21fY2Fz dCEoCistICAgIGkzMng0W3Rlc3RfdjEyOF06IGk4eDQsCistICAgIHU4eDQsCistICAgIG04eDQs CistICAgIGkxNng0LAorLSAgICB1MTZ4NCwKKy0gICAgbTE2eDQsCistICAgIHUzMng0LAorLSAg ICBmMzJ4NCwKKy0gICAgbTMyeDQsCistICAgIGk2NHg0LAorLSAgICB1NjR4NCwKKy0gICAgZjY0 eDQsCistICAgIG02NHg0LAorLSAgICBpMTI4eDQsCistICAgIHUxMjh4NCwKKy0gICAgbTEyOHg0 LAorLSAgICBpc2l6ZXg0LAorLSAgICB1c2l6ZXg0LAorLSAgICBtc2l6ZXg0CistKTsKKy1pbXBs X2Zyb21fY2FzdCEoCistICAgIHUzMng0W3Rlc3RfdjEyOF06IGk4eDQsCistICAgIHU4eDQsCist ICAgIG04eDQsCistICAgIGkxNng0LAorLSAgICB1MTZ4NCwKKy0gICAgbTE2eDQsCistICAgIGkz Mng0LAorLSAgICBmMzJ4NCwKKy0gICAgbTMyeDQsCistICAgIGk2NHg0LAorLSAgICB1NjR4NCwK Ky0gICAgZjY0eDQsCistICAgIG02NHg0LAorLSAgICBpMTI4eDQsCistICAgIHUxMjh4NCwKKy0g ICAgbTEyOHg0LAorLSAgICBpc2l6ZXg0LAorLSAgICB1c2l6ZXg0LAorLSAgICBtc2l6ZXg0Cist KTsKKy1pbXBsX2Zyb21fY2FzdCEoCistICAgIGYzMng0W3Rlc3RfdjEyOF06IGk4eDQsCistICAg IHU4eDQsCistICAgIG04eDQsCistICAgIGkxNng0LAorLSAgICB1MTZ4NCwKKy0gICAgbTE2eDQs CistICAgIGkzMng0LAorLSAgICB1MzJ4NCwKKy0gICAgbTMyeDQsCistICAgIGk2NHg0LAorLSAg ICB1NjR4NCwKKy0gICAgZjY0eDQsCistICAgIG02NHg0LAorLSAgICBpMTI4eDQsCistICAgIHUx Mjh4NCwKKy0gICAgbTEyOHg0LAorLSAgICBpc2l6ZXg0LAorLSAgICB1c2l6ZXg0LAorLSAgICBt c2l6ZXg0CistKTsKKy1pbXBsX2Zyb21fY2FzdF9tYXNrISgKKy0gICAgbTMyeDRbdGVzdF92MTI4 XTogaTh4NCwKKy0gICAgdTh4NCwKKy0gICAgbTh4NCwKKy0gICAgaTE2eDQsCistICAgIHUxNng0 LAorLSAgICBtMTZ4NCwKKy0gICAgaTMyeDQsCistICAgIHUzMng0LAorLSAgICBmMzJ4NCwKKy0g ICAgaTY0eDQsCistICAgIHU2NHg0LAorLSAgICBmNjR4NCwKKy0gICAgbTY0eDQsCistICAgIGkx Mjh4NCwKKy0gICAgdTEyOHg0LAorLSAgICBtMTI4eDQsCistICAgIGlzaXpleDQsCistICAgIHVz aXpleDQsCistICAgIG1zaXpleDQKKy0pOworLQorLWltcGxfZnJvbV9jYXN0ISgKKy0gICAgaTY0 eDJbdGVzdF92MTI4XTogaTh4MiwKKy0gICAgdTh4MiwKKy0gICAgbTh4MiwKKy0gICAgaTE2eDIs CistICAgIHUxNngyLAorLSAgICBtMTZ4MiwKKy0gICAgaTMyeDIsCistICAgIHUzMngyLAorLSAg ICBmMzJ4MiwKKy0gICAgbTMyeDIsCistICAgIHU2NHgyLAorLSAgICBmNjR4MiwKKy0gICAgbTY0 eDIsCistICAgIGkxMjh4MiwKKy0gICAgdTEyOHgyLAorLSAgICBtMTI4eDIsCistICAgIGlzaXpl eDIsCistICAgIHVzaXpleDIsCistICAgIG1zaXpleDIKKy0pOworLWltcGxfZnJvbV9jYXN0ISgK Ky0gICAgdTY0eDJbdGVzdF92MTI4XTogaTh4MiwKKy0gICAgdTh4MiwKKy0gICAgbTh4MiwKKy0g ICAgaTE2eDIsCistICAgIHUxNngyLAorLSAgICBtMTZ4MiwKKy0gICAgaTMyeDIsCistICAgIHUz MngyLAorLSAgICBmMzJ4MiwKKy0gICAgbTMyeDIsCistICAgIGk2NHgyLAorLSAgICBmNjR4MiwK Ky0gICAgbTY0eDIsCistICAgIGkxMjh4MiwKKy0gICAgdTEyOHgyLAorLSAgICBtMTI4eDIsCist ICAgIGlzaXpleDIsCistICAgIHVzaXpleDIsCistICAgIG1zaXpleDIKKy0pOworLWltcGxfZnJv bV9jYXN0ISgKKy0gICAgZjY0eDJbdGVzdF92MTI4XTogaTh4MiwKKy0gICAgdTh4MiwKKy0gICAg bTh4MiwKKy0gICAgaTE2eDIsCistICAgIHUxNngyLAorLSAgICBtMTZ4MiwKKy0gICAgaTMyeDIs CistICAgIHUzMngyLAorLSAgICBmMzJ4MiwKKy0gICAgbTMyeDIsCistICAgIGk2NHgyLAorLSAg ICB1NjR4MiwKKy0gICAgbTY0eDIsCistICAgIGkxMjh4MiwKKy0gICAgdTEyOHgyLAorLSAgICBt MTI4eDIsCistICAgIGlzaXpleDIsCistICAgIHVzaXpleDIsCistICAgIG1zaXpleDIKKy0pOwor LWltcGxfZnJvbV9jYXN0X21hc2shKAorLSAgICBtNjR4Mlt0ZXN0X3YxMjhdOiBpOHgyLAorLSAg ICB1OHgyLAorLSAgICBtOHgyLAorLSAgICBpMTZ4MiwKKy0gICAgdTE2eDIsCistICAgIG0xNngy LAorLSAgICBpMzJ4MiwKKy0gICAgdTMyeDIsCistICAgIGYzMngyLAorLSAgICBtMzJ4MiwKKy0g ICAgaTY0eDIsCistICAgIHU2NHgyLAorLSAgICBmNjR4MiwKKy0gICAgaTEyOHgyLAorLSAgICB1 MTI4eDIsCistICAgIG0xMjh4MiwKKy0gICAgaXNpemV4MiwKKy0gICAgdXNpemV4MiwKKy0gICAg bXNpemV4MgorLSk7CistCistaW1wbF9mcm9tX2Nhc3QhKAorLSAgICBpc2l6ZXgyW3Rlc3RfdjEy OF06IGk4eDIsCistICAgIHU4eDIsCistICAgIG04eDIsCistICAgIGkxNngyLAorLSAgICB1MTZ4 MiwKKy0gICAgbTE2eDIsCistICAgIGkzMngyLAorLSAgICB1MzJ4MiwKKy0gICAgZjMyeDIsCist ICAgIG0zMngyLAorLSAgICBpNjR4MiwKKy0gICAgdTY0eDIsCistICAgIGY2NHgyLAorLSAgICBt NjR4MiwKKy0gICAgaTEyOHgyLAorLSAgICB1MTI4eDIsCistICAgIG0xMjh4MiwKKy0gICAgdXNp emV4MiwKKy0gICAgbXNpemV4MgorLSk7CistaW1wbF9mcm9tX2Nhc3QhKAorLSAgICB1c2l6ZXgy W3Rlc3RfdjEyOF06IGk4eDIsCistICAgIHU4eDIsCistICAgIG04eDIsCistICAgIGkxNngyLAor LSAgICB1MTZ4MiwKKy0gICAgbTE2eDIsCistICAgIGkzMngyLAorLSAgICB1MzJ4MiwKKy0gICAg ZjMyeDIsCistICAgIG0zMngyLAorLSAgICBpNjR4MiwKKy0gICAgdTY0eDIsCistICAgIGY2NHgy LAorLSAgICBtNjR4MiwKKy0gICAgaTEyOHgyLAorLSAgICB1MTI4eDIsCistICAgIG0xMjh4MiwK Ky0gICAgaXNpemV4MiwKKy0gICAgbXNpemV4MgorLSk7CistaW1wbF9mcm9tX2Nhc3RfbWFzayEo CistICAgIG1zaXpleDJbdGVzdF92MTI4XTogaTh4MiwKKy0gICAgdTh4MiwKKy0gICAgbTh4MiwK Ky0gICAgaTE2eDIsCistICAgIHUxNngyLAorLSAgICBtMTZ4MiwKKy0gICAgaTMyeDIsCistICAg IHUzMngyLAorLSAgICBmMzJ4MiwKKy0gICAgbTMyeDIsCistICAgIGk2NHgyLAorLSAgICB1NjR4 MiwKKy0gICAgZjY0eDIsCistICAgIG02NHgyLAorLSAgICBpMTI4eDIsCistICAgIHUxMjh4MiwK Ky0gICAgbTEyOHgyLAorLSAgICBpc2l6ZXgyLAorLSAgICB1c2l6ZXgyCistKTsKKy0KKy0vLyBG SVhNRVt0ZXN0X3YxMjhdOiA2NC1iaXQgc2luZ2xlIGVsZW1lbnQgdmVjdG9ycyBpbnRvX2Nhc3Qg aW1wbHMKKy1pbXBsX2Zyb21fY2FzdCEoaTEyOHgxW3Rlc3RfdjEyOF06IHUxMjh4MSwgbTEyOHgx KTsKKy1pbXBsX2Zyb21fY2FzdCEodTEyOHgxW3Rlc3RfdjEyOF06IGkxMjh4MSwgbTEyOHgxKTsK Ky1pbXBsX2Zyb21fY2FzdCEobTEyOHgxW3Rlc3RfdjEyOF06IGkxMjh4MSwgdTEyOHgxKTsKK2Rp ZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvY2FzdC92MTYu cnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvY2FzdC92MTYucnMKK2Rl bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2lt ZC9zcmMvYXBpL2Nhc3QvdjE2LnJzCisrKysgL2Rldi9udWxsCitAQCAtMSw2OCArMCwwIEBACist Ly8hIGBGcm9tQ2FzdGAgYW5kIGBJbnRvQ2FzdGAgaW1wbGVtZW50YXRpb25zIGZvciBwb3J0YWJs ZSAxNi1iaXQgd2lkZSB2ZWN0b3JzCistI1tydXN0Zm10Ojpza2lwXQorLQorLXVzZSBjcmF0ZTo6 KjsKKy0KKy1pbXBsX2Zyb21fY2FzdCEoCistICAgIGk4eDJbdGVzdF92MTZdOiB1OHgyLAorLSAg ICBtOHgyLAorLSAgICBpMTZ4MiwKKy0gICAgdTE2eDIsCistICAgIG0xNngyLAorLSAgICBpMzJ4 MiwKKy0gICAgdTMyeDIsCistICAgIGYzMngyLAorLSAgICBtMzJ4MiwKKy0gICAgaTY0eDIsCist ICAgIHU2NHgyLAorLSAgICBmNjR4MiwKKy0gICAgbTY0eDIsCistICAgIGkxMjh4MiwKKy0gICAg dTEyOHgyLAorLSAgICBtMTI4eDIsCistICAgIGlzaXpleDIsCistICAgIHVzaXpleDIsCistICAg IG1zaXpleDIKKy0pOworLWltcGxfZnJvbV9jYXN0ISgKKy0gICAgdTh4Mlt0ZXN0X3YxNl06IGk4 eDIsCistICAgIG04eDIsCistICAgIGkxNngyLAorLSAgICB1MTZ4MiwKKy0gICAgbTE2eDIsCist ICAgIGkzMngyLAorLSAgICB1MzJ4MiwKKy0gICAgZjMyeDIsCistICAgIG0zMngyLAorLSAgICBp NjR4MiwKKy0gICAgdTY0eDIsCistICAgIGY2NHgyLAorLSAgICBtNjR4MiwKKy0gICAgaTEyOHgy LAorLSAgICB1MTI4eDIsCistICAgIG0xMjh4MiwKKy0gICAgaXNpemV4MiwKKy0gICAgdXNpemV4 MiwKKy0gICAgbXNpemV4MgorLSk7CistaW1wbF9mcm9tX2Nhc3RfbWFzayEoCistICAgIG04eDJb dGVzdF92MTZdOiBpOHgyLAorLSAgICB1OHgyLAorLSAgICBpMTZ4MiwKKy0gICAgdTE2eDIsCist ICAgIG0xNngyLAorLSAgICBpMzJ4MiwKKy0gICAgdTMyeDIsCistICAgIGYzMngyLAorLSAgICBt MzJ4MiwKKy0gICAgaTY0eDIsCistICAgIHU2NHgyLAorLSAgICBmNjR4MiwKKy0gICAgbTY0eDIs CistICAgIGkxMjh4MiwKKy0gICAgdTEyOHgyLAorLSAgICBtMTI4eDIsCistICAgIGlzaXpleDIs CistICAgIHVzaXpleDIsCistICAgIG1zaXpleDIKKy0pOworZGlmZiAtLWdpdCBhL3RoaXJkX3Bh cnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9jYXN0L3YyNTYucnMgYi90aGlyZF9wYXJ0eS9y dXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvY2FzdC92MjU2LnJzCitkZWxldGVkIGZpbGUgbW9kZSAx MDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9jYXN0L3Yy NTYucnMKKysrKyAvZGV2L251bGwKK0BAIC0xLDI5OCArMCwwIEBACistLy8hIGBGcm9tQ2FzdGAg YW5kIGBJbnRvQ2FzdGAgaW1wbGVtZW50YXRpb25zIGZvciBwb3J0YWJsZSAyNTYtYml0IHdpZGUg dmVjdG9ycworLSNbcnVzdGZtdDo6c2tpcF0KKy0KKy11c2UgY3JhdGU6Oio7CistCistaW1wbF9m cm9tX2Nhc3QhKGk4eDMyW3Rlc3RfdjI1Nl06IHU4eDMyLCBtOHgzMiwgaTE2eDMyLCB1MTZ4MzIs IG0xNngzMik7CistaW1wbF9mcm9tX2Nhc3QhKHU4eDMyW3Rlc3RfdjI1Nl06IGk4eDMyLCBtOHgz MiwgaTE2eDMyLCB1MTZ4MzIsIG0xNngzMik7CistaW1wbF9mcm9tX2Nhc3RfbWFzayEobTh4MzJb dGVzdF92MjU2XTogaTh4MzIsIHU4eDMyLCBpMTZ4MzIsIHUxNngzMiwgbTE2eDMyKTsKKy0KKy1p bXBsX2Zyb21fY2FzdCEoaTE2eDE2W3Rlc3RfdjI1Nl06IGk4eDE2LCB1OHgxNiwgbTh4MTYsIHUx NngxNiwgbTE2eDE2LCBpMzJ4MTYsIHUzMngxNiwgZjMyeDE2LCBtMzJ4MTYpOworLWltcGxfZnJv bV9jYXN0ISh1MTZ4MTZbdGVzdF92MjU2XTogaTh4MTYsIHU4eDE2LCBtOHgxNiwgaTE2eDE2LCBt MTZ4MTYsIGkzMngxNiwgdTMyeDE2LCBmMzJ4MTYsIG0zMngxNik7CistaW1wbF9mcm9tX2Nhc3Rf bWFzayEobTE2eDE2W3Rlc3RfdjI1Nl06IGk4eDE2LCB1OHgxNiwgbTh4MTYsIGkxNngxNiwgdTE2 eDE2LCBpMzJ4MTYsIHUzMngxNiwgZjMyeDE2LCBtMzJ4MTYpOworLQorLWltcGxfZnJvbV9jYXN0 ISgKKy0gICAgaTMyeDhbdGVzdF92MjU2XTogaTh4OCwKKy0gICAgdTh4OCwKKy0gICAgbTh4OCwK Ky0gICAgaTE2eDgsCistICAgIHUxNng4LAorLSAgICBtMTZ4OCwKKy0gICAgdTMyeDgsCistICAg IGYzMng4LAorLSAgICBtMzJ4OCwKKy0gICAgaTY0eDgsCistICAgIHU2NHg4LAorLSAgICBmNjR4 OCwKKy0gICAgbTY0eDgsCistICAgIGlzaXpleDgsCistICAgIHVzaXpleDgsCistICAgIG1zaXpl eDgKKy0pOworLWltcGxfZnJvbV9jYXN0ISgKKy0gICAgdTMyeDhbdGVzdF92MjU2XTogaTh4OCwK Ky0gICAgdTh4OCwKKy0gICAgbTh4OCwKKy0gICAgaTE2eDgsCistICAgIHUxNng4LAorLSAgICBt MTZ4OCwKKy0gICAgaTMyeDgsCistICAgIGYzMng4LAorLSAgICBtMzJ4OCwKKy0gICAgaTY0eDgs CistICAgIHU2NHg4LAorLSAgICBmNjR4OCwKKy0gICAgbTY0eDgsCistICAgIGlzaXpleDgsCist ICAgIHVzaXpleDgsCistICAgIG1zaXpleDgKKy0pOworLWltcGxfZnJvbV9jYXN0ISgKKy0gICAg ZjMyeDhbdGVzdF92MjU2XTogaTh4OCwKKy0gICAgdTh4OCwKKy0gICAgbTh4OCwKKy0gICAgaTE2 eDgsCistICAgIHUxNng4LAorLSAgICBtMTZ4OCwKKy0gICAgaTMyeDgsCistICAgIHUzMng4LAor LSAgICBtMzJ4OCwKKy0gICAgaTY0eDgsCistICAgIHU2NHg4LAorLSAgICBmNjR4OCwKKy0gICAg bTY0eDgsCistICAgIGlzaXpleDgsCistICAgIHVzaXpleDgsCistICAgIG1zaXpleDgKKy0pOwor LWltcGxfZnJvbV9jYXN0X21hc2shKAorLSAgICBtMzJ4OFt0ZXN0X3YyNTZdOiBpOHg4LAorLSAg ICB1OHg4LAorLSAgICBtOHg4LAorLSAgICBpMTZ4OCwKKy0gICAgdTE2eDgsCistICAgIG0xNng4 LAorLSAgICBpMzJ4OCwKKy0gICAgdTMyeDgsCistICAgIGYzMng4LAorLSAgICBpNjR4OCwKKy0g ICAgdTY0eDgsCistICAgIGY2NHg4LAorLSAgICBtNjR4OCwKKy0gICAgaXNpemV4OCwKKy0gICAg dXNpemV4OCwKKy0gICAgbXNpemV4OAorLSk7CistCistaW1wbF9mcm9tX2Nhc3QhKAorLSAgICBp NjR4NFt0ZXN0X3YyNTZdOiBpOHg0LAorLSAgICB1OHg0LAorLSAgICBtOHg0LAorLSAgICBpMTZ4 NCwKKy0gICAgdTE2eDQsCistICAgIG0xNng0LAorLSAgICBpMzJ4NCwKKy0gICAgdTMyeDQsCist ICAgIGYzMng0LAorLSAgICBtMzJ4NCwKKy0gICAgdTY0eDQsCistICAgIGY2NHg0LAorLSAgICBt NjR4NCwKKy0gICAgaTEyOHg0LAorLSAgICB1MTI4eDQsCistICAgIG0xMjh4NCwKKy0gICAgaXNp emV4NCwKKy0gICAgdXNpemV4NCwKKy0gICAgbXNpemV4NAorLSk7CistaW1wbF9mcm9tX2Nhc3Qh KAorLSAgICB1NjR4NFt0ZXN0X3YyNTZdOiBpOHg0LAorLSAgICB1OHg0LAorLSAgICBtOHg0LAor LSAgICBpMTZ4NCwKKy0gICAgdTE2eDQsCistICAgIG0xNng0LAorLSAgICBpMzJ4NCwKKy0gICAg dTMyeDQsCistICAgIGYzMng0LAorLSAgICBtMzJ4NCwKKy0gICAgaTY0eDQsCistICAgIGY2NHg0 LAorLSAgICBtNjR4NCwKKy0gICAgaTEyOHg0LAorLSAgICB1MTI4eDQsCistICAgIG0xMjh4NCwK Ky0gICAgaXNpemV4NCwKKy0gICAgdXNpemV4NCwKKy0gICAgbXNpemV4NAorLSk7CistaW1wbF9m cm9tX2Nhc3QhKAorLSAgICBmNjR4NFt0ZXN0X3YyNTZdOiBpOHg0LAorLSAgICB1OHg0LAorLSAg ICBtOHg0LAorLSAgICBpMTZ4NCwKKy0gICAgdTE2eDQsCistICAgIG0xNng0LAorLSAgICBpMzJ4 NCwKKy0gICAgdTMyeDQsCistICAgIGYzMng0LAorLSAgICBtMzJ4NCwKKy0gICAgaTY0eDQsCist ICAgIHU2NHg0LAorLSAgICBtNjR4NCwKKy0gICAgaTEyOHg0LAorLSAgICB1MTI4eDQsCistICAg IG0xMjh4NCwKKy0gICAgaXNpemV4NCwKKy0gICAgdXNpemV4NCwKKy0gICAgbXNpemV4NAorLSk7 CistaW1wbF9mcm9tX2Nhc3RfbWFzayEoCistICAgIG02NHg0W3Rlc3RfdjI1Nl06IGk4eDQsCist ICAgIHU4eDQsCistICAgIG04eDQsCistICAgIGkxNng0LAorLSAgICB1MTZ4NCwKKy0gICAgbTE2 eDQsCistICAgIGkzMng0LAorLSAgICB1MzJ4NCwKKy0gICAgZjMyeDQsCistICAgIG0zMng0LAor LSAgICBpNjR4NCwKKy0gICAgdTY0eDQsCistICAgIGY2NHg0LAorLSAgICBpMTI4eDQsCistICAg IHUxMjh4NCwKKy0gICAgbTEyOHg0LAorLSAgICBpc2l6ZXg0LAorLSAgICB1c2l6ZXg0LAorLSAg ICBtc2l6ZXg0CistKTsKKy0KKy1pbXBsX2Zyb21fY2FzdCEoCistICAgIGkxMjh4Mlt0ZXN0X3Yy NTZdOiBpOHgyLAorLSAgICB1OHgyLAorLSAgICBtOHgyLAorLSAgICBpMTZ4MiwKKy0gICAgdTE2 eDIsCistICAgIG0xNngyLAorLSAgICBpMzJ4MiwKKy0gICAgdTMyeDIsCistICAgIGYzMngyLAor LSAgICBtMzJ4MiwKKy0gICAgaTY0eDIsCistICAgIHU2NHgyLAorLSAgICBmNjR4MiwKKy0gICAg bTY0eDIsCistICAgIHUxMjh4MiwKKy0gICAgbTEyOHgyLAorLSAgICBpc2l6ZXgyLAorLSAgICB1 c2l6ZXgyLAorLSAgICBtc2l6ZXgyCistKTsKKy1pbXBsX2Zyb21fY2FzdCEoCistICAgIHUxMjh4 Mlt0ZXN0X3YyNTZdOiBpOHgyLAorLSAgICB1OHgyLAorLSAgICBtOHgyLAorLSAgICBpMTZ4MiwK Ky0gICAgdTE2eDIsCistICAgIG0xNngyLAorLSAgICBpMzJ4MiwKKy0gICAgdTMyeDIsCistICAg IGYzMngyLAorLSAgICBtMzJ4MiwKKy0gICAgaTY0eDIsCistICAgIHU2NHgyLAorLSAgICBmNjR4 MiwKKy0gICAgbTY0eDIsCistICAgIGkxMjh4MiwKKy0gICAgbTEyOHgyLAorLSAgICBpc2l6ZXgy LAorLSAgICB1c2l6ZXgyLAorLSAgICBtc2l6ZXgyCistKTsKKy1pbXBsX2Zyb21fY2FzdF9tYXNr ISgKKy0gICAgbTEyOHgyW3Rlc3RfdjI1Nl06IGk4eDIsCistICAgIHU4eDIsCistICAgIG04eDIs CistICAgIGkxNngyLAorLSAgICB1MTZ4MiwKKy0gICAgbTE2eDIsCistICAgIGkzMngyLAorLSAg ICB1MzJ4MiwKKy0gICAgZjMyeDIsCistICAgIG0zMngyLAorLSAgICBpNjR4MiwKKy0gICAgdTY0 eDIsCistICAgIG02NHgyLAorLSAgICBmNjR4MiwKKy0gICAgaTEyOHgyLAorLSAgICB1MTI4eDIs CistICAgIGlzaXpleDIsCistICAgIHVzaXpleDIsCistICAgIG1zaXpleDIKKy0pOworLQorLWlt cGxfZnJvbV9jYXN0ISgKKy0gICAgaXNpemV4NFt0ZXN0X3YyNTZdOiBpOHg0LAorLSAgICB1OHg0 LAorLSAgICBtOHg0LAorLSAgICBpMTZ4NCwKKy0gICAgdTE2eDQsCistICAgIG0xNng0LAorLSAg ICBpMzJ4NCwKKy0gICAgdTMyeDQsCistICAgIGYzMng0LAorLSAgICBtMzJ4NCwKKy0gICAgaTY0 eDQsCistICAgIHU2NHg0LAorLSAgICBmNjR4NCwKKy0gICAgbTY0eDQsCistICAgIGkxMjh4NCwK Ky0gICAgdTEyOHg0LAorLSAgICBtMTI4eDQsCistICAgIHVzaXpleDQsCistICAgIG1zaXpleDQK Ky0pOworLWltcGxfZnJvbV9jYXN0ISgKKy0gICAgdXNpemV4NFt0ZXN0X3YyNTZdOiBpOHg0LAor LSAgICB1OHg0LAorLSAgICBtOHg0LAorLSAgICBpMTZ4NCwKKy0gICAgdTE2eDQsCistICAgIG0x Nng0LAorLSAgICBpMzJ4NCwKKy0gICAgdTMyeDQsCistICAgIGYzMng0LAorLSAgICBtMzJ4NCwK Ky0gICAgaTY0eDQsCistICAgIHU2NHg0LAorLSAgICBmNjR4NCwKKy0gICAgbTY0eDQsCistICAg IGkxMjh4NCwKKy0gICAgdTEyOHg0LAorLSAgICBtMTI4eDQsCistICAgIGlzaXpleDQsCistICAg IG1zaXpleDQKKy0pOworLWltcGxfZnJvbV9jYXN0X21hc2shKAorLSAgICBtc2l6ZXg0W3Rlc3Rf djI1Nl06IGk4eDQsCistICAgIHU4eDQsCistICAgIG04eDQsCistICAgIGkxNng0LAorLSAgICB1 MTZ4NCwKKy0gICAgbTE2eDQsCistICAgIGkzMng0LAorLSAgICB1MzJ4NCwKKy0gICAgZjMyeDQs CistICAgIG0zMng0LAorLSAgICBpNjR4NCwKKy0gICAgdTY0eDQsCistICAgIGY2NHg0LAorLSAg ICBtNjR4NCwKKy0gICAgaTEyOHg0LAorLSAgICB1MTI4eDQsCistICAgIG0xMjh4NCwKKy0gICAg aXNpemV4NCwKKy0gICAgdXNpemV4NAorLSk7CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVz dC9wYWNrZWRfc2ltZC9zcmMvYXBpL2Nhc3QvdjMyLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNr ZWRfc2ltZC9zcmMvYXBpL2Nhc3QvdjMyLnJzCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0t LSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9jYXN0L3YzMi5ycworKysr IC9kZXYvbnVsbAorQEAgLTEsMTMyICswLDAgQEAKKy0vLyEgYEZyb21DYXN0YCBhbmQgYEludG9D YXN0YCBpbXBsZW1lbnRhdGlvbnMgZm9yIHBvcnRhYmxlIDMyLWJpdCB3aWRlIHZlY3RvcnMKKy0j W3J1c3RmbXQ6OnNraXBdCistCistdXNlIGNyYXRlOjoqOworLQorLWltcGxfZnJvbV9jYXN0ISgK Ky0gICAgaTh4NFt0ZXN0X3YzMl06IHU4eDQsCistICAgIG04eDQsCistICAgIGkxNng0LAorLSAg ICB1MTZ4NCwKKy0gICAgbTE2eDQsCistICAgIGkzMng0LAorLSAgICB1MzJ4NCwKKy0gICAgZjMy eDQsCistICAgIG0zMng0LAorLSAgICBpNjR4NCwKKy0gICAgdTY0eDQsCistICAgIGY2NHg0LAor LSAgICBtNjR4NCwKKy0gICAgaTEyOHg0LAorLSAgICB1MTI4eDQsCistICAgIG0xMjh4NCwKKy0g ICAgaXNpemV4NCwKKy0gICAgdXNpemV4NCwKKy0gICAgbXNpemV4NAorLSk7CistaW1wbF9mcm9t X2Nhc3QhKAorLSAgICB1OHg0W3Rlc3RfdjMyXTogaTh4NCwKKy0gICAgbTh4NCwKKy0gICAgaTE2 eDQsCistICAgIHUxNng0LAorLSAgICBtMTZ4NCwKKy0gICAgaTMyeDQsCistICAgIHUzMng0LAor LSAgICBmMzJ4NCwKKy0gICAgbTMyeDQsCistICAgIGk2NHg0LAorLSAgICB1NjR4NCwKKy0gICAg ZjY0eDQsCistICAgIG02NHg0LAorLSAgICBpMTI4eDQsCistICAgIHUxMjh4NCwKKy0gICAgbTEy OHg0LAorLSAgICBpc2l6ZXg0LAorLSAgICB1c2l6ZXg0LAorLSAgICBtc2l6ZXg0CistKTsKKy1p bXBsX2Zyb21fY2FzdF9tYXNrISgKKy0gICAgbTh4NFt0ZXN0X3YzMl06IGk4eDQsCistICAgIHU4 eDQsCistICAgIGkxNng0LAorLSAgICB1MTZ4NCwKKy0gICAgbTE2eDQsCistICAgIGkzMng0LAor LSAgICB1MzJ4NCwKKy0gICAgZjMyeDQsCistICAgIG0zMng0LAorLSAgICBpNjR4NCwKKy0gICAg dTY0eDQsCistICAgIGY2NHg0LAorLSAgICBtNjR4NCwKKy0gICAgaTEyOHg0LAorLSAgICB1MTI4 eDQsCistICAgIG0xMjh4NCwKKy0gICAgaXNpemV4NCwKKy0gICAgdXNpemV4NCwKKy0gICAgbXNp emV4NAorLSk7CistCistaW1wbF9mcm9tX2Nhc3QhKAorLSAgICBpMTZ4Mlt0ZXN0X3YzMl06IGk4 eDIsCistICAgIHU4eDIsCistICAgIG04eDIsCistICAgIHUxNngyLAorLSAgICBtMTZ4MiwKKy0g ICAgaTMyeDIsCistICAgIHUzMngyLAorLSAgICBmMzJ4MiwKKy0gICAgbTMyeDIsCistICAgIGk2 NHgyLAorLSAgICB1NjR4MiwKKy0gICAgZjY0eDIsCistICAgIG02NHgyLAorLSAgICBpMTI4eDIs CistICAgIHUxMjh4MiwKKy0gICAgbTEyOHgyLAorLSAgICBpc2l6ZXgyLAorLSAgICB1c2l6ZXgy LAorLSAgICBtc2l6ZXgyCistKTsKKy1pbXBsX2Zyb21fY2FzdCEoCistICAgIHUxNngyW3Rlc3Rf djMyXTogaTh4MiwKKy0gICAgdTh4MiwKKy0gICAgbTh4MiwKKy0gICAgaTE2eDIsCistICAgIG0x NngyLAorLSAgICBpMzJ4MiwKKy0gICAgdTMyeDIsCistICAgIGYzMngyLAorLSAgICBtMzJ4MiwK Ky0gICAgaTY0eDIsCistICAgIHU2NHgyLAorLSAgICBmNjR4MiwKKy0gICAgbTY0eDIsCistICAg IGkxMjh4MiwKKy0gICAgdTEyOHgyLAorLSAgICBtMTI4eDIsCistICAgIGlzaXpleDIsCistICAg IHVzaXpleDIsCistICAgIG1zaXpleDIKKy0pOworLWltcGxfZnJvbV9jYXN0X21hc2shKAorLSAg ICBtMTZ4Mlt0ZXN0X3YzMl06IGk4eDIsCistICAgIHU4eDIsCistICAgIG04eDIsCistICAgIGkx NngyLAorLSAgICB1MTZ4MiwKKy0gICAgaTMyeDIsCistICAgIHUzMngyLAorLSAgICBmMzJ4MiwK Ky0gICAgbTMyeDIsCistICAgIGk2NHgyLAorLSAgICB1NjR4MiwKKy0gICAgZjY0eDIsCistICAg IG02NHgyLAorLSAgICBpMTI4eDIsCistICAgIHUxMjh4MiwKKy0gICAgbTEyOHgyLAorLSAgICBp c2l6ZXgyLAorLSAgICB1c2l6ZXgyLAorLSAgICBtc2l6ZXgyCistKTsKK2RpZmYgLS1naXQgYS90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvY2FzdC92NTEyLnJzIGIvdGhpcmRf cGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2Nhc3QvdjUxMi5ycworZGVsZXRlZCBmaWxl IG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkv Y2FzdC92NTEyLnJzCisrKysgL2Rldi9udWxsCitAQCAtMSwyMDkgKzAsMCBAQAorLS8vISBgRnJv bUNhc3RgIGFuZCBgSW50b0Nhc3RgIGltcGxlbWVudGF0aW9ucyBmb3IgcG9ydGFibGUgNTEyLWJp dCB3aWRlIHZlY3RvcnMKKy0jW3J1c3RmbXQ6OnNraXBdCistCistdXNlIGNyYXRlOjoqOworLQor LWltcGxfZnJvbV9jYXN0IShpOHg2NFt0ZXN0X3Y1MTJdOiB1OHg2NCwgbTh4NjQpOworLWltcGxf ZnJvbV9jYXN0ISh1OHg2NFt0ZXN0X3Y1MTJdOiBpOHg2NCwgbTh4NjQpOworLWltcGxfZnJvbV9j YXN0X21hc2shKG04eDY0W3Rlc3RfdjUxMl06IGk4eDY0LCB1OHg2NCk7CistCistaW1wbF9mcm9t X2Nhc3QhKGkxNngzMlt0ZXN0X3Y1MTJdOiBpOHgzMiwgdTh4MzIsIG04eDMyLCB1MTZ4MzIsIG0x NngzMik7CistaW1wbF9mcm9tX2Nhc3QhKHUxNngzMlt0ZXN0X3Y1MTJdOiBpOHgzMiwgdTh4MzIs IG04eDMyLCBpMTZ4MzIsIG0xNngzMik7CistaW1wbF9mcm9tX2Nhc3RfbWFzayEobTE2eDMyW3Rl c3RfdjUxMl06IGk4eDMyLCB1OHgzMiwgbTh4MzIsIGkxNngzMiwgdTE2eDMyKTsKKy0KKy1pbXBs X2Zyb21fY2FzdCEoaTMyeDE2W3Rlc3RfdjUxMl06IGk4eDE2LCB1OHgxNiwgbTh4MTYsIGkxNngx NiwgdTE2eDE2LCBtMTZ4MTYsIHUzMngxNiwgZjMyeDE2LCBtMzJ4MTYpOworLWltcGxfZnJvbV9j YXN0ISh1MzJ4MTZbdGVzdF92NTEyXTogaTh4MTYsIHU4eDE2LCBtOHgxNiwgaTE2eDE2LCB1MTZ4 MTYsIG0xNngxNiwgaTMyeDE2LCBmMzJ4MTYsIG0zMngxNik7CistaW1wbF9mcm9tX2Nhc3QhKGYz MngxNlt0ZXN0X3Y1MTJdOiBpOHgxNiwgdTh4MTYsIG04eDE2LCBpMTZ4MTYsIHUxNngxNiwgbTE2 eDE2LCBpMzJ4MTYsIHUzMngxNiwgbTMyeDE2KTsKKy1pbXBsX2Zyb21fY2FzdF9tYXNrIShtMzJ4 MTZbdGVzdF92NTEyXTogaTh4MTYsIHU4eDE2LCBtOHgxNiwgaTE2eDE2LCB1MTZ4MTYsIG0xNngx NiwgaTMyeDE2LCB1MzJ4MTYsIGYzMngxNik7CistCistaW1wbF9mcm9tX2Nhc3QhKAorLSAgICBp NjR4OFt0ZXN0X3Y1MTJdOiBpOHg4LAorLSAgICB1OHg4LAorLSAgICBtOHg4LAorLSAgICBpMTZ4 OCwKKy0gICAgdTE2eDgsCistICAgIG0xNng4LAorLSAgICBpMzJ4OCwKKy0gICAgdTMyeDgsCist ICAgIGYzMng4LAorLSAgICBtMzJ4OCwKKy0gICAgdTY0eDgsCistICAgIGY2NHg4LAorLSAgICBt NjR4OCwKKy0gICAgaXNpemV4OCwKKy0gICAgdXNpemV4OCwKKy0gICAgbXNpemV4OAorLSk7Cist aW1wbF9mcm9tX2Nhc3QhKAorLSAgICB1NjR4OFt0ZXN0X3Y1MTJdOiBpOHg4LAorLSAgICB1OHg4 LAorLSAgICBtOHg4LAorLSAgICBpMTZ4OCwKKy0gICAgdTE2eDgsCistICAgIG0xNng4LAorLSAg ICBpMzJ4OCwKKy0gICAgdTMyeDgsCistICAgIGYzMng4LAorLSAgICBtMzJ4OCwKKy0gICAgaTY0 eDgsCistICAgIGY2NHg4LAorLSAgICBtNjR4OCwKKy0gICAgaXNpemV4OCwKKy0gICAgdXNpemV4 OCwKKy0gICAgbXNpemV4OAorLSk7CistaW1wbF9mcm9tX2Nhc3QhKAorLSAgICBmNjR4OFt0ZXN0 X3Y1MTJdOiBpOHg4LAorLSAgICB1OHg4LAorLSAgICBtOHg4LAorLSAgICBpMTZ4OCwKKy0gICAg dTE2eDgsCistICAgIG0xNng4LAorLSAgICBpMzJ4OCwKKy0gICAgdTMyeDgsCistICAgIGYzMng4 LAorLSAgICBtMzJ4OCwKKy0gICAgaTY0eDgsCistICAgIHU2NHg4LAorLSAgICBtNjR4OCwKKy0g ICAgaXNpemV4OCwKKy0gICAgdXNpemV4OCwKKy0gICAgbXNpemV4OAorLSk7CistaW1wbF9mcm9t X2Nhc3RfbWFzayEoCistICAgIG02NHg4W3Rlc3RfdjUxMl06IGk4eDgsCistICAgIHU4eDgsCist ICAgIG04eDgsCistICAgIGkxNng4LAorLSAgICB1MTZ4OCwKKy0gICAgbTE2eDgsCistICAgIGkz Mng4LAorLSAgICB1MzJ4OCwKKy0gICAgZjMyeDgsCistICAgIG0zMng4LAorLSAgICBpNjR4OCwK Ky0gICAgdTY0eDgsCistICAgIGY2NHg4LAorLSAgICBpc2l6ZXg4LAorLSAgICB1c2l6ZXg4LAor LSAgICBtc2l6ZXg4CistKTsKKy0KKy1pbXBsX2Zyb21fY2FzdCEoCistICAgIGkxMjh4NFt0ZXN0 X3Y1MTJdOiBpOHg0LAorLSAgICB1OHg0LAorLSAgICBtOHg0LAorLSAgICBpMTZ4NCwKKy0gICAg dTE2eDQsCistICAgIG0xNng0LAorLSAgICBpMzJ4NCwKKy0gICAgdTMyeDQsCistICAgIGYzMng0 LAorLSAgICBtMzJ4NCwKKy0gICAgaTY0eDQsCistICAgIHU2NHg0LAorLSAgICBmNjR4NCwKKy0g ICAgbTY0eDQsCistICAgIHUxMjh4NCwKKy0gICAgbTEyOHg0LAorLSAgICBpc2l6ZXg0LAorLSAg ICB1c2l6ZXg0LAorLSAgICBtc2l6ZXg0CistKTsKKy1pbXBsX2Zyb21fY2FzdCEoCistICAgIHUx Mjh4NFt0ZXN0X3Y1MTJdOiBpOHg0LAorLSAgICB1OHg0LAorLSAgICBtOHg0LAorLSAgICBpMTZ4 NCwKKy0gICAgdTE2eDQsCistICAgIG0xNng0LAorLSAgICBpMzJ4NCwKKy0gICAgdTMyeDQsCist ICAgIGYzMng0LAorLSAgICBtMzJ4NCwKKy0gICAgaTY0eDQsCistICAgIHU2NHg0LAorLSAgICBm NjR4NCwKKy0gICAgbTY0eDQsCistICAgIGkxMjh4NCwKKy0gICAgbTEyOHg0LAorLSAgICBpc2l6 ZXg0LAorLSAgICB1c2l6ZXg0LAorLSAgICBtc2l6ZXg0CistKTsKKy1pbXBsX2Zyb21fY2FzdF9t YXNrISgKKy0gICAgbTEyOHg0W3Rlc3RfdjUxMl06IGk4eDQsCistICAgIHU4eDQsCistICAgIG04 eDQsCistICAgIGkxNng0LAorLSAgICB1MTZ4NCwKKy0gICAgbTE2eDQsCistICAgIGkzMng0LAor LSAgICB1MzJ4NCwKKy0gICAgZjMyeDQsCistICAgIG0zMng0LAorLSAgICBpNjR4NCwKKy0gICAg dTY0eDQsCistICAgIG02NHg0LAorLSAgICBmNjR4NCwKKy0gICAgaTEyOHg0LAorLSAgICB1MTI4 eDQsCistICAgIGlzaXpleDQsCistICAgIHVzaXpleDQsCistICAgIG1zaXpleDQKKy0pOworLQor LWltcGxfZnJvbV9jYXN0ISgKKy0gICAgaXNpemV4OFt0ZXN0X3Y1MTJdOiBpOHg4LAorLSAgICB1 OHg4LAorLSAgICBtOHg4LAorLSAgICBpMTZ4OCwKKy0gICAgdTE2eDgsCistICAgIG0xNng4LAor LSAgICBpMzJ4OCwKKy0gICAgdTMyeDgsCistICAgIGYzMng4LAorLSAgICBtMzJ4OCwKKy0gICAg aTY0eDgsCistICAgIHU2NHg4LAorLSAgICBmNjR4OCwKKy0gICAgbTY0eDgsCistICAgIHVzaXpl eDgsCistICAgIG1zaXpleDgKKy0pOworLWltcGxfZnJvbV9jYXN0ISgKKy0gICAgdXNpemV4OFt0 ZXN0X3Y1MTJdOiBpOHg4LAorLSAgICB1OHg4LAorLSAgICBtOHg4LAorLSAgICBpMTZ4OCwKKy0g ICAgdTE2eDgsCistICAgIG0xNng4LAorLSAgICBpMzJ4OCwKKy0gICAgdTMyeDgsCistICAgIGYz Mng4LAorLSAgICBtMzJ4OCwKKy0gICAgaTY0eDgsCistICAgIHU2NHg4LAorLSAgICBmNjR4OCwK Ky0gICAgbTY0eDgsCistICAgIGlzaXpleDgsCistICAgIG1zaXpleDgKKy0pOworLWltcGxfZnJv bV9jYXN0X21hc2shKAorLSAgICBtc2l6ZXg4W3Rlc3RfdjUxMl06IGk4eDgsCistICAgIHU4eDgs CistICAgIG04eDgsCistICAgIGkxNng4LAorLSAgICB1MTZ4OCwKKy0gICAgbTE2eDgsCistICAg IGkzMng4LAorLSAgICB1MzJ4OCwKKy0gICAgZjMyeDgsCistICAgIG0zMng4LAorLSAgICBpNjR4 OCwKKy0gICAgdTY0eDgsCistICAgIGY2NHg4LAorLSAgICBtNjR4OCwKKy0gICAgaXNpemV4OCwK Ky0gICAgdXNpemV4OAorLSk7CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRf c2ltZC9zcmMvYXBpL2Nhc3QvdjY0LnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9z cmMvYXBpL2Nhc3QvdjY0LnJzCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJk X3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9jYXN0L3Y2NC5ycworKysrIC9kZXYvbnVs bAorQEAgLTEsMjA4ICswLDAgQEAKKy0vLyEgYEZyb21DYXN0YCBhbmQgYEludG9DYXN0YCBpbXBs ZW1lbnRhdGlvbnMgZm9yIHBvcnRhYmxlIDY0LWJpdCB3aWRlIHZlY3RvcnMKKy0jW3J1c3RmbXQ6 OnNraXBdCistCistdXNlIGNyYXRlOjoqOworLQorLWltcGxfZnJvbV9jYXN0ISgKKy0gICAgaTh4 OFt0ZXN0X3Y2NF06IHU4eDgsCistICAgIG04eDgsCistICAgIGkxNng4LAorLSAgICB1MTZ4OCwK Ky0gICAgbTE2eDgsCistICAgIGkzMng4LAorLSAgICB1MzJ4OCwKKy0gICAgZjMyeDgsCistICAg IG0zMng4LAorLSAgICBpNjR4OCwKKy0gICAgdTY0eDgsCistICAgIGY2NHg4LAorLSAgICBtNjR4 OCwKKy0gICAgaXNpemV4OCwKKy0gICAgdXNpemV4OCwKKy0gICAgbXNpemV4OAorLSk7CistaW1w bF9mcm9tX2Nhc3QhKAorLSAgICB1OHg4W3Rlc3RfdjY0XTogaTh4OCwKKy0gICAgbTh4OCwKKy0g ICAgaTE2eDgsCistICAgIHUxNng4LAorLSAgICBtMTZ4OCwKKy0gICAgaTMyeDgsCistICAgIHUz Mng4LAorLSAgICBmMzJ4OCwKKy0gICAgbTMyeDgsCistICAgIGk2NHg4LAorLSAgICB1NjR4OCwK Ky0gICAgZjY0eDgsCistICAgIG02NHg4LAorLSAgICBpc2l6ZXg4LAorLSAgICB1c2l6ZXg4LAor LSAgICBtc2l6ZXg4CistKTsKKy1pbXBsX2Zyb21fY2FzdF9tYXNrISgKKy0gICAgbTh4OFt0ZXN0 X3Y2NF06IGk4eDgsCistICAgIHU4eDgsCistICAgIGkxNng4LAorLSAgICB1MTZ4OCwKKy0gICAg bTE2eDgsCistICAgIGkzMng4LAorLSAgICB1MzJ4OCwKKy0gICAgZjMyeDgsCistICAgIG0zMng4 LAorLSAgICBpNjR4OCwKKy0gICAgdTY0eDgsCistICAgIGY2NHg4LAorLSAgICBtNjR4OCwKKy0g ICAgaXNpemV4OCwKKy0gICAgdXNpemV4OCwKKy0gICAgbXNpemV4OAorLSk7CistCistaW1wbF9m cm9tX2Nhc3QhKAorLSAgICBpMTZ4NFt0ZXN0X3Y2NF06IGk4eDQsCistICAgIHU4eDQsCistICAg IG04eDQsCistICAgIHUxNng0LAorLSAgICBtMTZ4NCwKKy0gICAgaTMyeDQsCistICAgIHUzMng0 LAorLSAgICBmMzJ4NCwKKy0gICAgbTMyeDQsCistICAgIGk2NHg0LAorLSAgICB1NjR4NCwKKy0g ICAgZjY0eDQsCistICAgIG02NHg0LAorLSAgICBpMTI4eDQsCistICAgIHUxMjh4NCwKKy0gICAg bTEyOHg0LAorLSAgICBpc2l6ZXg0LAorLSAgICB1c2l6ZXg0LAorLSAgICBtc2l6ZXg0CistKTsK Ky1pbXBsX2Zyb21fY2FzdCEoCistICAgIHUxNng0W3Rlc3RfdjY0XTogaTh4NCwKKy0gICAgdTh4 NCwKKy0gICAgbTh4NCwKKy0gICAgaTE2eDQsCistICAgIG0xNng0LAorLSAgICBpMzJ4NCwKKy0g ICAgdTMyeDQsCistICAgIGYzMng0LAorLSAgICBtMzJ4NCwKKy0gICAgaTY0eDQsCistICAgIHU2 NHg0LAorLSAgICBmNjR4NCwKKy0gICAgbTY0eDQsCistICAgIGkxMjh4NCwKKy0gICAgdTEyOHg0 LAorLSAgICBtMTI4eDQsCistICAgIGlzaXpleDQsCistICAgIHVzaXpleDQsCistICAgIG1zaXpl eDQKKy0pOworLWltcGxfZnJvbV9jYXN0X21hc2shKAorLSAgICBtMTZ4NFt0ZXN0X3Y2NF06IGk4 eDQsCistICAgIHU4eDQsCistICAgIG04eDQsCistICAgIGkxNng0LAorLSAgICB1MTZ4NCwKKy0g ICAgaTMyeDQsCistICAgIHUzMng0LAorLSAgICBmMzJ4NCwKKy0gICAgbTMyeDQsCistICAgIGk2 NHg0LAorLSAgICB1NjR4NCwKKy0gICAgZjY0eDQsCistICAgIG02NHg0LAorLSAgICBpMTI4eDQs CistICAgIHUxMjh4NCwKKy0gICAgbTEyOHg0LAorLSAgICBpc2l6ZXg0LAorLSAgICB1c2l6ZXg0 LAorLSAgICBtc2l6ZXg0CistKTsKKy0KKy1pbXBsX2Zyb21fY2FzdCEoCistICAgIGkzMngyW3Rl c3RfdjY0XTogaTh4MiwKKy0gICAgdTh4MiwKKy0gICAgbTh4MiwKKy0gICAgaTE2eDIsCistICAg IHUxNngyLAorLSAgICBtMTZ4MiwKKy0gICAgdTMyeDIsCistICAgIGYzMngyLAorLSAgICBtMzJ4 MiwKKy0gICAgaTY0eDIsCistICAgIHU2NHgyLAorLSAgICBmNjR4MiwKKy0gICAgbTY0eDIsCist ICAgIGkxMjh4MiwKKy0gICAgdTEyOHgyLAorLSAgICBtMTI4eDIsCistICAgIGlzaXpleDIsCist ICAgIHVzaXpleDIsCistICAgIG1zaXpleDIKKy0pOworLWltcGxfZnJvbV9jYXN0ISgKKy0gICAg dTMyeDJbdGVzdF92NjRdOiBpOHgyLAorLSAgICB1OHgyLAorLSAgICBtOHgyLAorLSAgICBpMTZ4 MiwKKy0gICAgdTE2eDIsCistICAgIG0xNngyLAorLSAgICBpMzJ4MiwKKy0gICAgZjMyeDIsCist ICAgIG0zMngyLAorLSAgICBpNjR4MiwKKy0gICAgdTY0eDIsCistICAgIGY2NHgyLAorLSAgICBt NjR4MiwKKy0gICAgaTEyOHgyLAorLSAgICB1MTI4eDIsCistICAgIG0xMjh4MiwKKy0gICAgaXNp emV4MiwKKy0gICAgdXNpemV4MiwKKy0gICAgbXNpemV4MgorLSk7CistaW1wbF9mcm9tX2Nhc3Qh KAorLSAgICBmMzJ4Mlt0ZXN0X3Y2NF06IGk4eDIsCistICAgIHU4eDIsCistICAgIG04eDIsCist ICAgIGkxNngyLAorLSAgICB1MTZ4MiwKKy0gICAgbTE2eDIsCistICAgIGkzMngyLAorLSAgICB1 MzJ4MiwKKy0gICAgbTMyeDIsCistICAgIGk2NHgyLAorLSAgICB1NjR4MiwKKy0gICAgZjY0eDIs CistICAgIG02NHgyLAorLSAgICBpMTI4eDIsCistICAgIHUxMjh4MiwKKy0gICAgbTEyOHgyLAor LSAgICBpc2l6ZXgyLAorLSAgICB1c2l6ZXgyLAorLSAgICBtc2l6ZXgyCistKTsKKy1pbXBsX2Zy b21fY2FzdF9tYXNrISgKKy0gICAgbTMyeDJbdGVzdF92NjRdOiBpOHgyLAorLSAgICB1OHgyLAor LSAgICBtOHgyLAorLSAgICBpMTZ4MiwKKy0gICAgdTE2eDIsCistICAgIG0xNngyLAorLSAgICBp MzJ4MiwKKy0gICAgdTMyeDIsCistICAgIGYzMngyLAorLSAgICBpNjR4MiwKKy0gICAgdTY0eDIs CistICAgIGY2NHgyLAorLSAgICBtNjR4MiwKKy0gICAgaTEyOHgyLAorLSAgICB1MTI4eDIsCist ICAgIG0xMjh4MiwKKy0gICAgaXNpemV4MiwKKy0gICAgdXNpemV4MiwKKy0gICAgbXNpemV4Mgor LSk7CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2Nt cC5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9jbXAucnMKK2RlbGV0 ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9z cmMvYXBpL2NtcC5ycworKysrIC9kZXYvbnVsbAorQEAgLTEsMTYgKzAsMCBAQAorLS8vISBJbXBs ZW1lbnQgY21wIHRyYWl0cyBmb3IgdmVjdG9yIHR5cGVzCistCistI1ttYWNyb191c2VdCistbW9k IHBhcnRpYWxfZXE7CistCistI1ttYWNyb191c2VdCistbW9kIGVxOworLQorLSNbbWFjcm9fdXNl XQorLW1vZCBwYXJ0aWFsX29yZDsKKy0KKy0jW21hY3JvX3VzZV0KKy1tb2Qgb3JkOworLQorLSNb bWFjcm9fdXNlXQorLW1vZCB2ZXJ0aWNhbDsKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0 L3BhY2tlZF9zaW1kL3NyYy9hcGkvY21wL2VxLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRf c2ltZC9zcmMvYXBpL2NtcC9lcS5ycworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvY21wL2VxLnJzCisrKysgL2Rldi9u dWxsCitAQCAtMSwyNyArMCwwIEBACistLy8hIEltcGxlbWVudHMgYEVxYCBmb3IgdmVjdG9yIHR5 cGVzLgorLQorLW1hY3JvX3J1bGVzISBpbXBsX2NtcF9lcSB7CistICAgICgKKy0gICAgICAgIFsk ZWxlbV90eTppZGVudDsgJGVsZW1fY291bnQ6ZXhwcl06CistICAgICAgICAkaWQ6aWRlbnQgfCAk dGVzdF90dDp0dCB8CistICAgICAgICAoJHRydWU6ZXhwciwgJGZhbHNlOmV4cHIpCistICAgICkg PT4geworLSAgICAgICAgaW1wbCBjcmF0ZTo6Y21wOjpFcSBmb3IgJGlkIHt9CistICAgICAgICBp bXBsIGNyYXRlOjpjbXA6OkVxIGZvciBMZXhpY29ncmFwaGljYWxseU9yZGVyZWQ8JGlkPiB7fQor LQorLSAgICAgICAgdGVzdF9pZiF7CistICAgICAgICAgICAgJHRlc3RfdHQ6CistICAgICAgICAg ICAgcGFzdGU6Oml0ZW0hIHsKKy0gICAgICAgICAgICAgICAgcHViIG1vZCBbPCRpZCBfY21wX2Vx Pl0geworLSAgICAgICAgICAgICAgICAgICAgdXNlIHN1cGVyOjoqOworLSAgICAgICAgICAgICAg ICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXSAjW2Nm Z19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KKy0gICAg ICAgICAgICAgICAgICAgIGZuIGVxKCkgeworLSAgICAgICAgICAgICAgICAgICAgICAgIGZuIGZv bzxFOiBjcmF0ZTo6Y21wOjpFcT4oXzogRSkge30KKy0gICAgICAgICAgICAgICAgICAgICAgICBs ZXQgYSA9ICRpZDo6c3BsYXQoJGZhbHNlKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBmb28o YSk7CistICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgIH0KKy0gICAgICAg ICAgICB9CistICAgICAgICB9CistICAgIH07CistfQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5 L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9jbXAvb3JkLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9w YWNrZWRfc2ltZC9zcmMvYXBpL2NtcC9vcmQucnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAor LS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2NtcC9vcmQucnMKKysr KyAvZGV2L251bGwKK0BAIC0xLDQzICswLDAgQEAKKy0vLyEgSW1wbGVtZW50cyBgT3JkYCBmb3Ig dmVjdG9yIHR5cGVzLgorLQorLW1hY3JvX3J1bGVzISBpbXBsX2NtcF9vcmQgeworLSAgICAoCist ICAgICAgICBbJGVsZW1fdHk6aWRlbnQ7ICRlbGVtX2NvdW50OmV4cHJdOgorLSAgICAgICAgJGlk OmlkZW50IHwgJHRlc3RfdHQ6dHQgfAorLSAgICAgICAgKCR0cnVlOmV4cHIsICRmYWxzZTpleHBy KQorLSAgICApID0+IHsKKy0gICAgICAgIGltcGwgJGlkIHsKKy0gICAgICAgICAgICAvLy8gUmV0 dXJucyBhIHdyYXBwZXIgdGhhdCBpbXBsZW1lbnRzIGBPcmRgLgorLSAgICAgICAgICAgICNbaW5s aW5lXQorLSAgICAgICAgICAgIHB1YiBmbiBsZXhfb3JkKCZzZWxmKSAtPiBMZXhpY29ncmFwaGlj YWxseU9yZGVyZWQ8JGlkPiB7CistICAgICAgICAgICAgICAgIExleGljb2dyYXBoaWNhbGx5T3Jk ZXJlZCgqc2VsZikKKy0gICAgICAgICAgICB9CistICAgICAgICB9CistCistICAgICAgICBpbXBs IGNyYXRlOjpjbXA6Ok9yZCBmb3IgTGV4aWNvZ3JhcGhpY2FsbHlPcmRlcmVkPCRpZD4geworLSAg ICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIGZuIGNtcCgmc2VsZiwgb3RoZXI6ICZT ZWxmKSAtPiBjcmF0ZTo6Y21wOjpPcmRlcmluZyB7CistICAgICAgICAgICAgICAgIG1hdGNoIHNl bGYucGFydGlhbF9jbXAob3RoZXIpIHsKKy0gICAgICAgICAgICAgICAgICAgIFNvbWUoeCkgPT4g eCwKKy0gICAgICAgICAgICAgICAgICAgIE5vbmUgPT4gdW5zYWZlIHsgY3JhdGU6OmhpbnQ6OnVu cmVhY2hhYmxlX3VuY2hlY2tlZCgpIH0sCistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAg ICB9CistICAgICAgICB9CistCistICAgICAgICB0ZXN0X2lmIXsKKy0gICAgICAgICAgICAkdGVz dF90dDoKKy0gICAgICAgICAgICBwYXN0ZTo6aXRlbSEgeworLSAgICAgICAgICAgICAgICBwdWIg bW9kIFs8JGlkIF9jbXBfb3JkPl0geworLSAgICAgICAgICAgICAgICAgICAgdXNlIHN1cGVyOjoq OworLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2Fz bTMyIiksIHRlc3QpXSAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmlu ZGdlbl90ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAgIGZuIGVxKCkgeworLSAgICAgICAgICAg ICAgICAgICAgICAgIGZuIGZvbzxFOiBjcmF0ZTo6Y21wOjpPcmQ+KF86IEUpIHt9CistICAgICAg ICAgICAgICAgICAgICAgICAgbGV0IGEgPSAkaWQ6OnNwbGF0KCRmYWxzZSk7CistICAgICAgICAg ICAgICAgICAgICAgICAgZm9vKGEucGFydGlhbF9sZXhfb3JkKCkpOworLSAgICAgICAgICAgICAg ICAgICAgICAgIGZvbyhhLmxleF9vcmQoKSk7CistICAgICAgICAgICAgICAgICAgICB9CistICAg ICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgIH07CistfQor ZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9jbXAvcGFy dGlhbF9lcS5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9jbXAvcGFy dGlhbF9lcS5ycworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9y dXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvY21wL3BhcnRpYWxfZXEucnMKKysrKyAvZGV2L251bGwK K0BAIC0xLDY1ICswLDAgQEAKKy0vLyEgSW1wbGVtZW50cyBgUGFydGlhbEVxYCBmb3IgdmVjdG9y IHR5cGVzLgorLQorLW1hY3JvX3J1bGVzISBpbXBsX2NtcF9wYXJ0aWFsX2VxIHsKKy0gICAgKAor LSAgICAgICAgWyRlbGVtX3R5OmlkZW50OyAkZWxlbV9jb3VudDpleHByXToKKy0gICAgICAgICRp ZDppZGVudCB8ICR0ZXN0X3R0OnR0IHwKKy0gICAgICAgICgkdHJ1ZTpleHByLCAkZmFsc2U6ZXhw cikKKy0gICAgKSA9PiB7CistICAgICAgICAvLyBGSVhNRTogaHR0cHM6Ly9naXRodWIuY29tL3J1 c3QtbGFuZy1udXJzZXJ5L3J1c3QtY2xpcHB5L2lzc3Vlcy8yODkyCistICAgICAgICAjW2FsbG93 KGNsaXBweTo6cGFydGlhbGVxX25lX2ltcGwpXQorLSAgICAgICAgaW1wbCBjcmF0ZTo6Y21wOjpQ YXJ0aWFsRXE8JGlkPiBmb3IgJGlkIHsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAg ICAgICBmbiBlcSgmc2VsZiwgb3RoZXI6ICZTZWxmKSAtPiBib29sIHsKKy0gICAgICAgICAgICAg ICAgJGlkOjplcSgqc2VsZiwgKm90aGVyKS5hbGwoKQorLSAgICAgICAgICAgIH0KKy0gICAgICAg ICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBmbiBuZSgmc2VsZiwgb3RoZXI6ICZTZWxmKSAt PiBib29sIHsKKy0gICAgICAgICAgICAgICAgJGlkOjpuZSgqc2VsZiwgKm90aGVyKS5hbnkoKQor LSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0KKy0gICAgICAgIC8vIEZJWE1FOiBodHRwczov L2dpdGh1Yi5jb20vcnVzdC1sYW5nLW51cnNlcnkvcnVzdC1jbGlwcHkvaXNzdWVzLzI4OTIKKy0g ICAgICAgICNbYWxsb3coY2xpcHB5OjpwYXJ0aWFsZXFfbmVfaW1wbCldCistICAgICAgICBpbXBs IGNyYXRlOjpjbXA6OlBhcnRpYWxFcTxMZXhpY29ncmFwaGljYWxseU9yZGVyZWQ8JGlkPj4gZm9y IExleGljb2dyYXBoaWNhbGx5T3JkZXJlZDwkaWQ+IHsKKy0gICAgICAgICAgICAjW2lubGluZV0K Ky0gICAgICAgICAgICBmbiBlcSgmc2VsZiwgb3RoZXI6ICZTZWxmKSAtPiBib29sIHsKKy0gICAg ICAgICAgICAgICAgc2VsZi4wID09IG90aGVyLjAKKy0gICAgICAgICAgICB9CistICAgICAgICAg ICAgI1tpbmxpbmVdCistICAgICAgICAgICAgZm4gbmUoJnNlbGYsIG90aGVyOiAmU2VsZikgLT4g Ym9vbCB7CistICAgICAgICAgICAgICAgIHNlbGYuMCAhPSBvdGhlci4wCistICAgICAgICAgICAg fQorLSAgICAgICAgfQorLQorLSAgICAgICAgdGVzdF9pZiEgeworLSAgICAgICAgICAgICR0ZXN0 X3R0OgorLSAgICAgICAgICAgIHBhc3RlOjppdGVtISB7CistICAgICAgICAgICAgICAgIHB1YiBt b2QgWzwkaWQgX2NtcF9QYXJ0aWFsRXE+XSB7CistICAgICAgICAgICAgICAgICAgICB1c2Ugc3Vw ZXI6Oio7CistICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9 ICJ3YXNtMzIiKSwgdGVzdCldCistICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKHRhcmdl dF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KKy0gICAgICAgICAgICAgICAg ICAgIGZuIHBhcnRpYWxfZXEoKSB7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGEgPSAk aWQ6OnNwbGF0KCRmYWxzZSk7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGIgPSAkaWQ6 OnNwbGF0KCR0cnVlKTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKGEgIT0g Yik7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0ISghKGEgPT0gYikpOworLSAgICAg ICAgICAgICAgICAgICAgICAgIGFzc2VydCEoYSA9PSBhKTsKKy0gICAgICAgICAgICAgICAgICAg ICAgICBhc3NlcnQhKCEoYSAhPSBhKSk7CistCistICAgICAgICAgICAgICAgICAgICAgICAgaWYg JGlkOjpsYW5lcygpID4gMSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBhID0g JGlkOjpzcGxhdCgkZmFsc2UpLnJlcGxhY2UoMCwgJHRydWUpOworLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICBsZXQgYiA9ICRpZDo6c3BsYXQoJHRydWUpOworLQorLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICBhc3NlcnQhKGEgIT0gYik7CistICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGFzc2VydCEoIShhID09IGIpKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNz ZXJ0IShhID09IGEpOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKCEoYSAh PSBhKSk7CistICAgICAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAg fQorLSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICB9 OworLX0KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkv Y21wL3BhcnRpYWxfb3JkLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBp L2NtcC9wYXJ0aWFsX29yZC5ycworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGly ZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvY21wL3BhcnRpYWxfb3JkLnJzCisrKysg L2Rldi9udWxsCitAQCAtMSwyMzAgKzAsMCBAQAorLS8vISBJbXBsZW1lbnRzIGBQYXJ0aWFsT3Jk YCBmb3IgdmVjdG9yIHR5cGVzLgorLS8vIQorLS8vISBUaGlzIGltcGxlbWVudHMgYSBsZXhpY29n cmFwaGljYWwgb3JkZXIuCistCistbWFjcm9fcnVsZXMhIGltcGxfY21wX3BhcnRpYWxfb3JkIHsK Ky0gICAgKFskZWxlbV90eTppZGVudDsgJGVsZW1fY291bnQ6ZXhwcl06ICRpZDppZGVudCB8ICR0 ZXN0X3R0OnR0KSA9PiB7CistICAgICAgICBpbXBsICRpZCB7CistICAgICAgICAgICAgLy8vIFJl dHVybnMgYSB3cmFwcGVyIHRoYXQgaW1wbGVtZW50cyBgUGFydGlhbE9yZGAuCistICAgICAgICAg ICAgI1tpbmxpbmVdCistICAgICAgICAgICAgcHViIGZuIHBhcnRpYWxfbGV4X29yZCgmc2VsZikg LT4gTGV4aWNvZ3JhcGhpY2FsbHlPcmRlcmVkPCRpZD4geworLSAgICAgICAgICAgICAgICBMZXhp Y29ncmFwaGljYWxseU9yZGVyZWQoKnNlbGYpCistICAgICAgICAgICAgfQorLSAgICAgICAgfQor LQorLSAgICAgICAgaW1wbCBjcmF0ZTo6Y21wOjpQYXJ0aWFsT3JkPExleGljb2dyYXBoaWNhbGx5 T3JkZXJlZDwkaWQ+PiBmb3IgTGV4aWNvZ3JhcGhpY2FsbHlPcmRlcmVkPCRpZD4geworLSAgICAg ICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIGZuIHBhcnRpYWxfY21wKCZzZWxmLCBvdGhl cjogJlNlbGYpIC0+IE9wdGlvbjxjcmF0ZTo6Y21wOjpPcmRlcmluZz4geworLSAgICAgICAgICAg ICAgICBpZiBQYXJ0aWFsRXE6OmVxKHNlbGYsIG90aGVyKSB7CistICAgICAgICAgICAgICAgICAg ICBTb21lKGNyYXRlOjpjbXA6Ok9yZGVyaW5nOjpFcXVhbCkKKy0gICAgICAgICAgICAgICAgfSBl bHNlIGlmIFBhcnRpYWxPcmQ6Omx0KHNlbGYsIG90aGVyKSB7CistICAgICAgICAgICAgICAgICAg ICBTb21lKGNyYXRlOjpjbXA6Ok9yZGVyaW5nOjpMZXNzKQorLSAgICAgICAgICAgICAgICB9IGVs c2UgaWYgUGFydGlhbE9yZDo6Z3Qoc2VsZiwgb3RoZXIpIHsKKy0gICAgICAgICAgICAgICAgICAg IFNvbWUoY3JhdGU6OmNtcDo6T3JkZXJpbmc6OkdyZWF0ZXIpCistICAgICAgICAgICAgICAgIH0g ZWxzZSB7CistICAgICAgICAgICAgICAgICAgICBOb25lCistICAgICAgICAgICAgICAgIH0KKy0g ICAgICAgICAgICB9CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgZm4gbHQo JnNlbGYsIG90aGVyOiAmU2VsZikgLT4gYm9vbCB7CistICAgICAgICAgICAgICAgIGxldCBtX2x0 ID0gc2VsZi4wLmx0KG90aGVyLjApOworLSAgICAgICAgICAgICAgICBsZXQgbV9lcSA9IHNlbGYu MC5lcShvdGhlci4wKTsKKy0gICAgICAgICAgICAgICAgZm9yIGkgaW4gMC4uJGlkOjpsYW5lcygp IHsKKy0gICAgICAgICAgICAgICAgICAgIGlmIG1fZXEuZXh0cmFjdChpKSB7CistICAgICAgICAg ICAgICAgICAgICAgICAgY29udGludWU7CistICAgICAgICAgICAgICAgICAgICB9CistICAgICAg ICAgICAgICAgICAgICByZXR1cm4gbV9sdC5leHRyYWN0KGkpOworLSAgICAgICAgICAgICAgICB9 CistICAgICAgICAgICAgICAgIGZhbHNlCistICAgICAgICAgICAgfQorLSAgICAgICAgICAgICNb aW5saW5lXQorLSAgICAgICAgICAgIGZuIGxlKCZzZWxmLCBvdGhlcjogJlNlbGYpIC0+IGJvb2wg eworLSAgICAgICAgICAgICAgICBzZWxmLmx0KG90aGVyKSB8IFBhcnRpYWxFcTo6ZXEoc2VsZiwg b3RoZXIpCistICAgICAgICAgICAgfQorLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAg ICAgIGZuIGdlKCZzZWxmLCBvdGhlcjogJlNlbGYpIC0+IGJvb2wgeworLSAgICAgICAgICAgICAg ICBzZWxmLmd0KG90aGVyKSB8IFBhcnRpYWxFcTo6ZXEoc2VsZiwgb3RoZXIpCistICAgICAgICAg ICAgfQorLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIGZuIGd0KCZzZWxmLCBv dGhlcjogJlNlbGYpIC0+IGJvb2wgeworLSAgICAgICAgICAgICAgICBsZXQgbV9ndCA9IHNlbGYu MC5ndChvdGhlci4wKTsKKy0gICAgICAgICAgICAgICAgbGV0IG1fZXEgPSBzZWxmLjAuZXEob3Ro ZXIuMCk7CistICAgICAgICAgICAgICAgIGZvciBpIGluIDAuLiRpZDo6bGFuZXMoKSB7CistICAg ICAgICAgICAgICAgICAgICBpZiBtX2VxLmV4dHJhY3QoaSkgeworLSAgICAgICAgICAgICAgICAg ICAgICAgIGNvbnRpbnVlOworLSAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAg ICAgICAgcmV0dXJuIG1fZ3QuZXh0cmFjdChpKTsKKy0gICAgICAgICAgICAgICAgfQorLSAgICAg ICAgICAgICAgICBmYWxzZQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgfTsKKy19 CistCistbWFjcm9fcnVsZXMhIHRlc3RfY21wX3BhcnRpYWxfb3JkX2ludCB7CistICAgIChbJGVs ZW1fdHk6aWRlbnQ7ICRlbGVtX2NvdW50OmV4cHJdOiAkaWQ6aWRlbnQgfCAkdGVzdF90dDp0dCkg PT4geworLSAgICAgICAgdGVzdF9pZiF7CistICAgICAgICAgICAgJHRlc3RfdHQ6CistICAgICAg ICAgICAgcGFzdGU6Oml0ZW0hIHsKKy0gICAgICAgICAgICAgICAgcHViIG1vZCBbPCRpZCBfY21w X1BhcnRpYWxPcmQ+XSB7CistICAgICAgICAgICAgICAgICAgICB1c2Ugc3VwZXI6Oio7CistICAg ICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwg dGVzdCldICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rl c3QpXQorLSAgICAgICAgICAgICAgICAgICAgZm4gcGFydGlhbF9sZXhfb3JkKCkgeworLSAgICAg ICAgICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6dGVzdGluZzo6dXRpbHM6Ont0ZXN0X2NtcH07 CistICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29uc3RhbnQgdmFsdWVzCistICAgICAgICAg ICAgICAgICAgICAgICAgbGV0IGEgPSAkaWQ6OnNwbGF0KDApOworLSAgICAgICAgICAgICAgICAg ICAgICAgIGxldCBiID0gJGlkOjpzcGxhdCgxKTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAg ICB0ZXN0X2NtcChhLnBhcnRpYWxfbGV4X29yZCgpLCBiLnBhcnRpYWxfbGV4X29yZCgpLAorLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNvbWUoY3JhdGU6OmNtcDo6T3JkZXJpbmc6 Okxlc3MpKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X2NtcChiLnBhcnRpYWxfbGV4 X29yZCgpLCBhLnBhcnRpYWxfbGV4X29yZCgpLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFNvbWUoY3JhdGU6OmNtcDo6T3JkZXJpbmc6OkdyZWF0ZXIpKTsKKy0gICAgICAgICAg ICAgICAgICAgICAgICB0ZXN0X2NtcChhLnBhcnRpYWxfbGV4X29yZCgpLCBhLnBhcnRpYWxfbGV4 X29yZCgpLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNvbWUoY3JhdGU6OmNt cDo6T3JkZXJpbmc6OkVxdWFsKSk7CistICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9jbXAo Yi5wYXJ0aWFsX2xleF9vcmQoKSwgYi5wYXJ0aWFsX2xleF9vcmQoKSwKKy0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBTb21lKGNyYXRlOjpjbXA6Ok9yZGVyaW5nOjpFcXVhbCkpOwor LQorLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIHZhcmlhYmxlIHZhbHVlczogYSA9IFswLCAx LCAyLCAzXTsgYiA9IFszLCAyLCAxLCAwXQorLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBt dXQgYSA9ICRpZDo6c3BsYXQoMCk7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBi ID0gJGlkOjpzcGxhdCgwKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBmb3IgaSBpbiAwLi4k aWQ6OmxhbmVzKCkgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhID0gYS5yZXBsYWNl KGksIGkgYXMgJGVsZW1fdHkpOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBiID0gYi5y ZXBsYWNlKGksICgkaWQ6OmxhbmVzKCkgLSBpKSBhcyAkZWxlbV90eSk7CistICAgICAgICAgICAg ICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfY21wKGEucGFydGlh bF9sZXhfb3JkKCksIGIucGFydGlhbF9sZXhfb3JkKCksCistICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgU29tZShjcmF0ZTo6Y21wOjpPcmRlcmluZzo6TGVzcykpOworLSAgICAgICAg ICAgICAgICAgICAgICAgIHRlc3RfY21wKGIucGFydGlhbF9sZXhfb3JkKCksIGEucGFydGlhbF9s ZXhfb3JkKCksCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU29tZShjcmF0ZTo6 Y21wOjpPcmRlcmluZzo6R3JlYXRlcikpOworLSAgICAgICAgICAgICAgICAgICAgICAgIHRlc3Rf Y21wKGEucGFydGlhbF9sZXhfb3JkKCksIGEucGFydGlhbF9sZXhfb3JkKCksCistICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgU29tZShjcmF0ZTo6Y21wOjpPcmRlcmluZzo6RXF1YWwp KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X2NtcChiLnBhcnRpYWxfbGV4X29yZCgp LCBiLnBhcnRpYWxfbGV4X29yZCgpLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFNvbWUoY3JhdGU6OmNtcDo6T3JkZXJpbmc6OkVxdWFsKSk7CistCistICAgICAgICAgICAgICAg ICAgICAgICAgLy8gdmFyaWFibGUgdmFsdWVzOiBhID0gWzAsIDEsIDIsIDNdOyBiID0gWzAsIDEs IDIsIDRdCistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBiID0gYTsKKy0gICAgICAg ICAgICAgICAgICAgICAgICBiID0gYi5yZXBsYWNlKAorLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAkaWQ6OmxhbmVzKCkgLSAxLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhLmV4 dHJhY3QoJGlkOjpsYW5lcygpIC0gMSkgKyAxIGFzICRlbGVtX3R5CistICAgICAgICAgICAgICAg ICAgICAgICAgKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X2NtcChhLnBhcnRpYWxf bGV4X29yZCgpLCBiLnBhcnRpYWxfbGV4X29yZCgpLAorLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFNvbWUoY3JhdGU6OmNtcDo6T3JkZXJpbmc6Okxlc3MpKTsKKy0gICAgICAgICAg ICAgICAgICAgICAgICB0ZXN0X2NtcChiLnBhcnRpYWxfbGV4X29yZCgpLCBhLnBhcnRpYWxfbGV4 X29yZCgpLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNvbWUoY3JhdGU6OmNt cDo6T3JkZXJpbmc6OkdyZWF0ZXIpKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X2Nt cChhLnBhcnRpYWxfbGV4X29yZCgpLCBhLnBhcnRpYWxfbGV4X29yZCgpLAorLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFNvbWUoY3JhdGU6OmNtcDo6T3JkZXJpbmc6OkVxdWFsKSk7 CistICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9jbXAoYi5wYXJ0aWFsX2xleF9vcmQoKSwg Yi5wYXJ0aWFsX2xleF9vcmQoKSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBT b21lKGNyYXRlOjpjbXA6Ok9yZGVyaW5nOjpFcXVhbCkpOworLQorLSAgICAgICAgICAgICAgICAg ICAgICAgIGlmICRpZDo6bGFuZXMoKSA+IDIgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAvLyB2YXJpYWJsZSB2YWx1ZXMgYSA9IFswLCAxLCAwLCAwXTsgYiA9IFswLCAxLCAyLCAzXQor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgYiA9IGE7CistICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGxldCBtdXQgYSA9ICRpZDo6c3BsYXQoMCk7CistICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGEgPSBhLnJlcGxhY2UoMSwgMSBhcyAkZWxlbV90eSk7CistICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHRlc3RfY21wKGEucGFydGlhbF9sZXhfb3JkKCksIGIucGFydGlh bF9sZXhfb3JkKCksCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNvbWUo Y3JhdGU6OmNtcDo6T3JkZXJpbmc6Okxlc3MpKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgdGVzdF9jbXAoYi5wYXJ0aWFsX2xleF9vcmQoKSwgYS5wYXJ0aWFsX2xleF9vcmQoKSwKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU29tZShjcmF0ZTo6Y21wOjpPcmRl cmluZzo6R3JlYXRlcikpOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X2NtcChh LnBhcnRpYWxfbGV4X29yZCgpLCBhLnBhcnRpYWxfbGV4X29yZCgpLAorLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBTb21lKGNyYXRlOjpjbXA6Ok9yZGVyaW5nOjpFcXVhbCkp OworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X2NtcChiLnBhcnRpYWxfbGV4X29y ZCgpLCBiLnBhcnRpYWxfbGV4X29yZCgpLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBTb21lKGNyYXRlOjpjbXA6Ok9yZGVyaW5nOjpFcXVhbCkpOworLQorLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAvLyB2YXJpYWJsZSB2YWx1ZXM6IGEgPSBbMCwgMSwgMiwgM107 IGIgPSBbMCwgMSwgMywgMl0KKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBi ID0gYTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYiA9IGIucmVwbGFjZSgKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIsIGEuZXh0cmFjdCgkaWQ6OmxhbmVzKCkgLSAx KSArIDEgYXMgJGVsZW1fdHkKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9jbXAoYS5wYXJ0aWFsX2xleF9vcmQoKSwgYi5w YXJ0aWFsX2xleF9vcmQoKSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg U29tZShjcmF0ZTo6Y21wOjpPcmRlcmluZzo6TGVzcykpOworLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICB0ZXN0X2NtcChiLnBhcnRpYWxfbGV4X29yZCgpLCBhLnBhcnRpYWxfbGV4X29yZCgp LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTb21lKGNyYXRlOjpjbXA6 Ok9yZGVyaW5nOjpHcmVhdGVyKSk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3Rf Y21wKGEucGFydGlhbF9sZXhfb3JkKCksIGEucGFydGlhbF9sZXhfb3JkKCksCistICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNvbWUoY3JhdGU6OmNtcDo6T3JkZXJpbmc6OkVx dWFsKSk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfY21wKGIucGFydGlhbF9s ZXhfb3JkKCksIGIucGFydGlhbF9sZXhfb3JkKCksCistICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFNvbWUoY3JhdGU6OmNtcDo6T3JkZXJpbmc6OkVxdWFsKSk7CistICAgICAg ICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAg ICAgICB9CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICB9OworLX0KKy0KKy1tYWNy b19ydWxlcyEgdGVzdF9jbXBfcGFydGlhbF9vcmRfbWFzayB7CistICAgIChbJGVsZW1fdHk6aWRl bnQ7ICRlbGVtX2NvdW50OmV4cHJdOiAkaWQ6aWRlbnQgfCAkdGVzdF90dDp0dCkgPT4geworLSAg ICAgICAgdGVzdF9pZiF7CistICAgICAgICAgICAgJHRlc3RfdHQ6CistICAgICAgICAgICAgcGFz dGU6Oml0ZW0hIHsKKy0gICAgICAgICAgICAgICAgcHViIG1vZCBbPCRpZCBfY21wX1BhcnRpYWxP cmQ+XSB7CistICAgICAgICAgICAgICAgICAgICB1c2Ugc3VwZXI6Oio7CistICAgICAgICAgICAg ICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldICNb Y2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQorLSAg ICAgICAgICAgICAgICAgICAgZm4gcGFydGlhbF9sZXhfb3JkKCkgeworLSAgICAgICAgICAgICAg ICAgICAgICAgIHVzZSBjcmF0ZTo6dGVzdGluZzo6dXRpbHM6Ont0ZXN0X2NtcH07CistICAgICAg ICAgICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpjbXA6Ok9yZGVyaW5nOworLQorLSAgICAgICAg ICAgICAgICAgICAgICAgIC8vIGNvbnN0YW50IHZhbHVlcworLSAgICAgICAgICAgICAgICAgICAg ICAgIGxldCBhID0gJGlkOjpzcGxhdChmYWxzZSk7CistICAgICAgICAgICAgICAgICAgICAgICAg bGV0IGIgPSAkaWQ6OnNwbGF0KHRydWUpOworLQorLSAgICAgICAgICAgICAgICAgICAgICAgIHRl c3RfY21wKGEucGFydGlhbF9sZXhfb3JkKCksIGIucGFydGlhbF9sZXhfb3JkKCksCistICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgU29tZShPcmRlcmluZzo6TGVzcykpOworLSAgICAg ICAgICAgICAgICAgICAgICAgIHRlc3RfY21wKGIucGFydGlhbF9sZXhfb3JkKCksIGEucGFydGlh bF9sZXhfb3JkKCksCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU29tZShPcmRl cmluZzo6R3JlYXRlcikpOworLSAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfY21wKGEucGFy dGlhbF9sZXhfb3JkKCksIGEucGFydGlhbF9sZXhfb3JkKCksCistICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgU29tZShPcmRlcmluZzo6RXF1YWwpKTsKKy0gICAgICAgICAgICAgICAg ICAgICAgICB0ZXN0X2NtcChiLnBhcnRpYWxfbGV4X29yZCgpLCBiLnBhcnRpYWxfbGV4X29yZCgp LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNvbWUoT3JkZXJpbmc6OkVxdWFs KSk7CistCistICAgICAgICAgICAgICAgICAgICAgICAgLy8gdmFyaWFibGUgdmFsdWVzOgorLSAg ICAgICAgICAgICAgICAgICAgICAgIC8vIGEgPSBbZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2Vd OworLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIGIgPSBbZmFsc2UsIGZhbHNlLCBmYWxzZSwg dHJ1ZV0KKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgYSA9ICRpZDo6c3BsYXQoZmFsc2Up OworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgYiA9ICRpZDo6c3BsYXQoZmFsc2Up OworLSAgICAgICAgICAgICAgICAgICAgICAgIGIgPSBiLnJlcGxhY2UoJGlkOjpsYW5lcygpIC0g MSwgdHJ1ZSk7CistICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9jbXAoYS5wYXJ0aWFsX2xl eF9vcmQoKSwgYi5wYXJ0aWFsX2xleF9vcmQoKSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBTb21lKE9yZGVyaW5nOjpMZXNzKSk7CistICAgICAgICAgICAgICAgICAgICAgICAg dGVzdF9jbXAoYi5wYXJ0aWFsX2xleF9vcmQoKSwgYS5wYXJ0aWFsX2xleF9vcmQoKSwKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTb21lKE9yZGVyaW5nOjpHcmVhdGVyKSk7Cist ICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9jbXAoYS5wYXJ0aWFsX2xleF9vcmQoKSwgYS5w YXJ0aWFsX2xleF9vcmQoKSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTb21l KE9yZGVyaW5nOjpFcXVhbCkpOworLSAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfY21wKGIu cGFydGlhbF9sZXhfb3JkKCksIGIucGFydGlhbF9sZXhfb3JkKCksCistICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgU29tZShPcmRlcmluZzo6RXF1YWwpKTsKKy0KKy0gICAgICAgICAg ICAgICAgICAgICAgICAvLyB2YXJpYWJsZSB2YWx1ZXM6CistICAgICAgICAgICAgICAgICAgICAg ICAgLy8gYSA9IFt0cnVlLCB0cnVlLCB0cnVlLCBmYWxzZV07CistICAgICAgICAgICAgICAgICAg ICAgICAgLy8gYiA9IFt0cnVlLCB0cnVlLCB0cnVlLCB0cnVlXQorLSAgICAgICAgICAgICAgICAg ICAgICAgIGxldCBtdXQgYSA9ICRpZDo6c3BsYXQodHJ1ZSk7CistICAgICAgICAgICAgICAgICAg ICAgICAgbGV0IGIgPSAkaWQ6OnNwbGF0KHRydWUpOworLSAgICAgICAgICAgICAgICAgICAgICAg IGEgPSBhLnJlcGxhY2UoJGlkOjpsYW5lcygpIC0gMSwgZmFsc2UpOworLSAgICAgICAgICAgICAg ICAgICAgICAgIHRlc3RfY21wKGEucGFydGlhbF9sZXhfb3JkKCksIGIucGFydGlhbF9sZXhfb3Jk KCksCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU29tZShPcmRlcmluZzo6TGVz cykpOworLSAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfY21wKGIucGFydGlhbF9sZXhfb3Jk KCksIGEucGFydGlhbF9sZXhfb3JkKCksCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgU29tZShPcmRlcmluZzo6R3JlYXRlcikpOworLSAgICAgICAgICAgICAgICAgICAgICAgIHRl c3RfY21wKGEucGFydGlhbF9sZXhfb3JkKCksIGEucGFydGlhbF9sZXhfb3JkKCksCistICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgU29tZShPcmRlcmluZzo6RXF1YWwpKTsKKy0gICAg ICAgICAgICAgICAgICAgICAgICB0ZXN0X2NtcChiLnBhcnRpYWxfbGV4X29yZCgpLCBiLnBhcnRp YWxfbGV4X29yZCgpLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNvbWUoT3Jk ZXJpbmc6OkVxdWFsKSk7CistCistICAgICAgICAgICAgICAgICAgICAgICAgaWYgJGlkOjpsYW5l cygpID4gMiB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHZhcmlhYmxlIHZhbHVl cworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBhID0gW2ZhbHNlLCB0cnVlLCBmYWxz ZSwgZmFsc2VdOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBiID0gW2ZhbHNlLCB0 cnVlLCB0cnVlLCB0cnVlXQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IGEg PSAkaWQ6OnNwbGF0KGZhbHNlKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11 dCBiID0gJGlkOjpzcGxhdCh0cnVlKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYSA9 IGEucmVwbGFjZSgxLCB0cnVlKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYiA9IGIu cmVwbGFjZSgwLCBmYWxzZSk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfY21w KGEucGFydGlhbF9sZXhfb3JkKCksIGIucGFydGlhbF9sZXhfb3JkKCksCistICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFNvbWUoT3JkZXJpbmc6Okxlc3MpKTsKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgdGVzdF9jbXAoYi5wYXJ0aWFsX2xleF9vcmQoKSwgYS5wYXJ0 aWFsX2xleF9vcmQoKSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU29t ZShPcmRlcmluZzo6R3JlYXRlcikpOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0 X2NtcChhLnBhcnRpYWxfbGV4X29yZCgpLCBhLnBhcnRpYWxfbGV4X29yZCgpLAorLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTb21lKE9yZGVyaW5nOjpFcXVhbCkpOworLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X2NtcChiLnBhcnRpYWxfbGV4X29yZCgpLCBi LnBhcnRpYWxfbGV4X29yZCgpLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBTb21lKE9yZGVyaW5nOjpFcXVhbCkpOworLSAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0g ICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgIH0K Ky0gICAgICAgIH0KKy0gICAgfTsKKy19CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9w YWNrZWRfc2ltZC9zcmMvYXBpL2NtcC92ZXJ0aWNhbC5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFj a2VkX3NpbWQvc3JjL2FwaS9jbXAvdmVydGljYWwucnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0 NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2NtcC92ZXJ0aWNh bC5ycworKysrIC9kZXYvbnVsbAorQEAgLTEsMTE0ICswLDAgQEAKKy0vLyEgVmVydGljYWwgKGxh bmUtd2lzZSkgdmVjdG9yIGNvbXBhcmlzb25zIHJldHVybmluZyB2ZWN0b3IgbWFza3MuCistCist bWFjcm9fcnVsZXMhIGltcGxfY21wX3ZlcnRpY2FsIHsKKy0gICAgKAorLSAgICAgICAgWyRlbGVt X3R5OmlkZW50OyAkZWxlbV9jb3VudDpleHByXToKKy0gICAgICAgICRpZDppZGVudCwKKy0gICAg ICAgICRtYXNrX3R5OmlkZW50LAorLSAgICAgICAgJGlzX21hc2s6ZXhwciwoJHRydWU6ZXhwciwg JGZhbHNlOmV4cHIpIHwgJHRlc3RfdHQ6dHQKKy0gICAgKSA9PiB7CistICAgICAgICBpbXBsICRp ZCB7CistICAgICAgICAgICAgLy8vIExhbmUtd2lzZSBlcXVhbGl0eSBjb21wYXJpc29uLgorLSAg ICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIHB1YiBmbiBlcShzZWxmLCBvdGhlcjog U2VsZikgLT4gJG1hc2tfdHkgeworLSAgICAgICAgICAgICAgICB1c2UgY3JhdGU6Omxsdm06OnNp bWRfZXE7CistICAgICAgICAgICAgICAgIFNpbWQodW5zYWZlIHsgc2ltZF9lcShzZWxmLjAsIG90 aGVyLjApIH0pCistICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgIC8vLyBMYW5lLXdpc2Ug aW5lcXVhbGl0eSBjb21wYXJpc29uLgorLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAg ICAgIHB1YiBmbiBuZShzZWxmLCBvdGhlcjogU2VsZikgLT4gJG1hc2tfdHkgeworLSAgICAgICAg ICAgICAgICB1c2UgY3JhdGU6Omxsdm06OnNpbWRfbmU7CistICAgICAgICAgICAgICAgIFNpbWQo dW5zYWZlIHsgc2ltZF9uZShzZWxmLjAsIG90aGVyLjApIH0pCistICAgICAgICAgICAgfQorLQor LSAgICAgICAgICAgIC8vLyBMYW5lLXdpc2UgbGVzcy10aGFuIGNvbXBhcmlzb24uCistICAgICAg ICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgcHViIGZuIGx0KHNlbGYsIG90aGVyOiBTZWxm KSAtPiAkbWFza190eSB7CistICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6bGx2bTo6e3NpbWRf Z3QsIHNpbWRfbHR9OworLSAgICAgICAgICAgICAgICBpZiAkaXNfbWFzayB7CistICAgICAgICAg ICAgICAgICAgICBTaW1kKHVuc2FmZSB7IHNpbWRfZ3Qoc2VsZi4wLCBvdGhlci4wKSB9KQorLSAg ICAgICAgICAgICAgICB9IGVsc2UgeworLSAgICAgICAgICAgICAgICAgICAgU2ltZCh1bnNhZmUg eyBzaW1kX2x0KHNlbGYuMCwgb3RoZXIuMCkgfSkKKy0gICAgICAgICAgICAgICAgfQorLSAgICAg ICAgICAgIH0KKy0KKy0gICAgICAgICAgICAvLy8gTGFuZS13aXNlIGxlc3MtdGhhbi1vci1lcXVh bHMgY29tcGFyaXNvbi4KKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBwdWIg Zm4gbGUoc2VsZiwgb3RoZXI6IFNlbGYpIC0+ICRtYXNrX3R5IHsKKy0gICAgICAgICAgICAgICAg dXNlIGNyYXRlOjpsbHZtOjp7c2ltZF9nZSwgc2ltZF9sZX07CistICAgICAgICAgICAgICAgIGlm ICRpc19tYXNrIHsKKy0gICAgICAgICAgICAgICAgICAgIFNpbWQodW5zYWZlIHsgc2ltZF9nZShz ZWxmLjAsIG90aGVyLjApIH0pCistICAgICAgICAgICAgICAgIH0gZWxzZSB7CistICAgICAgICAg ICAgICAgICAgICBTaW1kKHVuc2FmZSB7IHNpbWRfbGUoc2VsZi4wLCBvdGhlci4wKSB9KQorLSAg ICAgICAgICAgICAgICB9CistICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgIC8vLyBMYW5l LXdpc2UgZ3JlYXRlci10aGFuIGNvbXBhcmlzb24uCistICAgICAgICAgICAgI1tpbmxpbmVdCist ICAgICAgICAgICAgcHViIGZuIGd0KHNlbGYsIG90aGVyOiBTZWxmKSAtPiAkbWFza190eSB7Cist ICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6bGx2bTo6e3NpbWRfZ3QsIHNpbWRfbHR9OworLSAg ICAgICAgICAgICAgICBpZiAkaXNfbWFzayB7CistICAgICAgICAgICAgICAgICAgICBTaW1kKHVu c2FmZSB7IHNpbWRfbHQoc2VsZi4wLCBvdGhlci4wKSB9KQorLSAgICAgICAgICAgICAgICB9IGVs c2UgeworLSAgICAgICAgICAgICAgICAgICAgU2ltZCh1bnNhZmUgeyBzaW1kX2d0KHNlbGYuMCwg b3RoZXIuMCkgfSkKKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgIH0KKy0KKy0gICAg ICAgICAgICAvLy8gTGFuZS13aXNlIGdyZWF0ZXItdGhhbi1vci1lcXVhbHMgY29tcGFyaXNvbi4K Ky0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBwdWIgZm4gZ2Uoc2VsZiwgb3Ro ZXI6IFNlbGYpIC0+ICRtYXNrX3R5IHsKKy0gICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpsbHZt Ojp7c2ltZF9nZSwgc2ltZF9sZX07CistICAgICAgICAgICAgICAgIGlmICRpc19tYXNrIHsKKy0g ICAgICAgICAgICAgICAgICAgIFNpbWQodW5zYWZlIHsgc2ltZF9sZShzZWxmLjAsIG90aGVyLjAp IH0pCistICAgICAgICAgICAgICAgIH0gZWxzZSB7CistICAgICAgICAgICAgICAgICAgICBTaW1k KHVuc2FmZSB7IHNpbWRfZ2Uoc2VsZi4wLCBvdGhlci4wKSB9KQorLSAgICAgICAgICAgICAgICB9 CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICAgICAgdGVzdF9pZiF7CistICAgICAg ICAgICAgJHRlc3RfdHQ6CistICAgICAgICAgICAgcGFzdGU6Oml0ZW0hIHsKKy0gICAgICAgICAg ICAgICAgcHViIG1vZCBbPCRpZCBfY21wX3ZlcnRpY2FsPl0geworLSAgICAgICAgICAgICAgICAg ICAgdXNlIHN1cGVyOjoqOworLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFy Z2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXSAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndh c20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAgIGZuIGNtcCgp IHsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgYSA9ICRpZDo6c3BsYXQoJGZhbHNlKTsK Ky0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgYiA9ICRpZDo6c3BsYXQoJHRydWUpOworLQor LSAgICAgICAgICAgICAgICAgICAgICAgIGxldCByID0gYS5sdChiKTsKKy0gICAgICAgICAgICAg ICAgICAgICAgICBsZXQgZSA9ICRtYXNrX3R5OjpzcGxhdCh0cnVlKTsKKy0gICAgICAgICAgICAg ICAgICAgICAgICBhc3NlcnQhKHIgPT0gZSk7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0 IHIgPSBhLmxlKGIpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCEociA9PSBlKTsK Ky0KKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgZSA9ICRtYXNrX3R5OjpzcGxhdChmYWxz ZSk7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHIgPSBhLmd0KGIpOworLSAgICAgICAg ICAgICAgICAgICAgICAgIGFzc2VydCEociA9PSBlKTsKKy0gICAgICAgICAgICAgICAgICAgICAg ICBsZXQgciA9IGEuZ2UoYik7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IShyID09 IGUpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCByID0gYS5lcShiKTsKKy0gICAgICAg ICAgICAgICAgICAgICAgICBhc3NlcnQhKHIgPT0gZSk7CistCistICAgICAgICAgICAgICAgICAg ICAgICAgbGV0IG11dCBhID0gYTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IGIg PSBiOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgZSA9IGU7CistICAgICAgICAg ICAgICAgICAgICAgICAgZm9yIGkgaW4gMC4uJGlkOjpsYW5lcygpIHsKKy0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgaWYgaSAlIDIgPT0gMCB7CistICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBhID0gYS5yZXBsYWNlKGksICRmYWxzZSk7CistICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBiID0gYi5yZXBsYWNlKGksICR0cnVlKTsKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGUgPSBlLnJlcGxhY2UoaSwgdHJ1ZSk7CistICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0gZWxzZSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhID0g YS5yZXBsYWNlKGksICR0cnVlKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGIg PSBiLnJlcGxhY2UoaSwgJGZhbHNlKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGUgPSBlLnJlcGxhY2UoaSwgZmFsc2UpOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 CistICAgICAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgICAgIGxl dCByID0gYS5sdChiKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKHIgPT0gZSk7 CistICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAg ICB9CistICAgICAgICB9CistICAgIH07CistfQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1 c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9kZWZhdWx0LnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNr ZWRfc2ltZC9zcmMvYXBpL2RlZmF1bHQucnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0t IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2RlZmF1bHQucnMKKysrKyAv ZGV2L251bGwKK0BAIC0xLDMwICswLDAgQEAKKy0vLyEgSW1wbGVtZW50cyBgRGVmYXVsdGAgZm9y IHZlY3RvciB0eXBlcy4KKy0KKy1tYWNyb19ydWxlcyEgaW1wbF9kZWZhdWx0IHsKKy0gICAgKFsk ZWxlbV90eTppZGVudDsgJGVsZW1fY291bnQ6ZXhwcl06ICRpZDppZGVudCB8ICR0ZXN0X3R0OnR0 KSA9PiB7CistICAgICAgICBpbXBsIERlZmF1bHQgZm9yICRpZCB7CistICAgICAgICAgICAgI1tp bmxpbmVdCistICAgICAgICAgICAgZm4gZGVmYXVsdCgpIC0+IFNlbGYgeworLSAgICAgICAgICAg ICAgICBTZWxmOjpzcGxhdCgkZWxlbV90eTo6ZGVmYXVsdCgpKQorLSAgICAgICAgICAgIH0KKy0g ICAgICAgIH0KKy0KKy0gICAgICAgIHRlc3RfaWYheworLSAgICAgICAgICAgICR0ZXN0X3R0Ogor LSAgICAgICAgICAgIHBhc3RlOjppdGVtISB7CistICAgICAgICAgICAgICAgIC8vIENvbXBhcmlz b25zIHVzZSBpbnRlZ2VyIGNhc3RzIHdpdGhpbiBtYW50aXNzYV4xIHJhbmdlLgorLSAgICAgICAg ICAgICAgICAjW2FsbG93KGNsaXBweTo6ZmxvYXRfY21wKV0KKy0gICAgICAgICAgICAgICAgcHVi IG1vZCBbPCRpZCBfZGVmYXVsdD5dIHsKKy0gICAgICAgICAgICAgICAgICAgIHVzZSBzdXBlcjo6 KjsKKy0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndh c20zMiIpLCB0ZXN0KV0gI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2Jp bmRnZW5fdGVzdCldCistICAgICAgICAgICAgICAgICAgICBmbiBkZWZhdWx0KCkgeworLSAgICAg ICAgICAgICAgICAgICAgICAgIGxldCBhID0gJGlkOjpkZWZhdWx0KCk7CistICAgICAgICAgICAg ICAgICAgICAgICAgZm9yIGkgaW4gMC4uJGlkOjpsYW5lcygpIHsKKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgYXNzZXJ0X2VxIShhLmV4dHJhY3QoaSksICRlbGVtX3R5OjpkZWZhdWx0KCkp OworLSAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgIH0KKy0g ICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgfTsKKy19 CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2ZtdC5y cyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9mbXQucnMKK2RlbGV0ZWQg ZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMv YXBpL2ZtdC5ycworKysrIC9kZXYvbnVsbAorQEAgLTEsMTIgKzAsMCBAQAorLS8vISBJbXBsZW1l bnRzIGZvcm1hdHRpbmcgQVBJcworLQorLSNbbWFjcm9fdXNlXQorLW1vZCBkZWJ1ZzsKKy0jW21h Y3JvX3VzZV0KKy1tb2QgbG93ZXJfaGV4OworLSNbbWFjcm9fdXNlXQorLW1vZCB1cHBlcl9oZXg7 CistI1ttYWNyb191c2VdCistbW9kIG9jdGFsOworLSNbbWFjcm9fdXNlXQorLW1vZCBiaW5hcnk7 CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2ZtdC9i aW5hcnkucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvZm10L2JpbmFy eS5ycworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3Bh Y2tlZF9zaW1kL3NyYy9hcGkvZm10L2JpbmFyeS5ycworKysrIC9kZXYvbnVsbAorQEAgLTEsNTQg KzAsMCBAQAorLS8vISBJbXBsZW1lbnQgT2N0YWwgZm9ybWF0dGluZworLQorLW1hY3JvX3J1bGVz ISBpbXBsX2ZtdF9iaW5hcnkgeworLSAgICAoWyRlbGVtX3R5OmlkZW50OyAkZWxlbV9jb3VudDpl eHByXTogJGlkOmlkZW50IHwgJHRlc3RfdHQ6dHQpID0+IHsKKy0gICAgICAgIGltcGwgY3JhdGU6 OmZtdDo6QmluYXJ5IGZvciAkaWQgeworLSAgICAgICAgICAgICNbYWxsb3coY2xpcHB5OjptaXNz aW5nX2lubGluZV9pbl9wdWJsaWNfaXRlbXMpXQorLSAgICAgICAgICAgIGZuIGZtdCgmc2VsZiwg ZjogJm11dCBjcmF0ZTo6Zm10OjpGb3JtYXR0ZXI8J18+KSAtPiBjcmF0ZTo6Zm10OjpSZXN1bHQg eworLSAgICAgICAgICAgICAgICB3cml0ZSEoZiwgInt9KCIsIHN0cmluZ2lmeSEoJGlkKSk/Owor LSAgICAgICAgICAgICAgICBmb3IgaSBpbiAwLi4kZWxlbV9jb3VudCB7CistICAgICAgICAgICAg ICAgICAgICBpZiBpID4gMCB7CistICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGUhKGYsICIs ICIpPzsKKy0gICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgIHNlbGYu ZXh0cmFjdChpKS5mbXQoZik/OworLSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAg IHdyaXRlIShmLCAiKSIpCistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICAgICAgdGVz dF9pZiEgeworLSAgICAgICAgICAgICR0ZXN0X3R0OgorLSAgICAgICAgICAgIHBhc3RlOjppdGVt ISB7CistICAgICAgICAgICAgICAgIHB1YiBtb2QgWzwkaWQgX2ZtdF9iaW5hcnk+XSB7CistICAg ICAgICAgICAgICAgICAgICB1c2Ugc3VwZXI6Oio7CistICAgICAgICAgICAgICAgICAgICAjW2Nm Z19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldCistICAgICAgICAgICAg ICAgICAgICAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90 ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAgIGZuIGJpbmFyeSgpIHsKKy0gICAgICAgICAgICAg ICAgICAgICAgICB1c2UgYXJyYXl2ZWM6OntBcnJheVN0cmluZyxBcnJheVZlY307CistICAgICAg ICAgICAgICAgICAgICAgICAgdHlwZSBUaW55U3RyaW5nID0gQXJyYXlTdHJpbmc8W3U4OyA1MTJd PjsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICB1c2UgY3JhdGU6OmZtdDo6V3JpdGU7Cist ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHYgPSAkaWQ6OnNwbGF0KCRlbGVtX3R5OjpkZWZh dWx0KCkpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgcyA9IFRpbnlTdHJpbmc6 Om5ldygpOworLSAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRlISgmbXV0IHMsICJ7OiNifSIs IHYpLnVud3JhcCgpOworLQorLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgYmVnID0g VGlueVN0cmluZzo6bmV3KCk7CistICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGUhKCZtdXQg YmVnLCAie30oIiwgc3RyaW5naWZ5ISgkaWQpKS51bndyYXAoKTsKKy0gICAgICAgICAgICAgICAg ICAgICAgICBhc3NlcnQhKHMuc3RhcnRzX3dpdGgoYmVnLmFzX3N0cigpKSk7CistICAgICAgICAg ICAgICAgICAgICAgICAgYXNzZXJ0IShzLmVuZHNfd2l0aCgiKSIpKTsKKy0gICAgICAgICAgICAg ICAgICAgICAgICBsZXQgczogQXJyYXlWZWM8W1RpbnlTdHJpbmc7IDY0XT4KKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgPSBzLnJlcGxhY2UoYmVnLmFzX3N0cigpLCAiIikKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgLnJlcGxhY2UoIikiLCAiIikuc3BsaXQoIiwiKQorLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAubWFwKHx2fCBUaW55U3RyaW5nOjpmcm9tKHYudHJpbSgp KS51bndyYXAoKSkKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLmNvbGxlY3QoKTsKKy0g ICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHMubGVuKCksICRpZDo6bGFuZXMoKSk7 CistICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChpbmRleCwgc3MpIGluIHMuaW50b19pdGVy KCkuZW51bWVyYXRlKCkgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IGUg PSBUaW55U3RyaW5nOjpuZXcoKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGUh KCZtdXQgZSwgIns6I2J9Iiwgdi5leHRyYWN0KGluZGV4KSkudW53cmFwKCk7CistICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoc3MsIGUpOworLSAgICAgICAgICAgICAgICAg ICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgfQorLSAg ICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgfTsKKy19CitkaWZmIC0tZ2l0IGEvdGhpcmRf cGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2ZtdC9kZWJ1Zy5ycyBiL3RoaXJkX3BhcnR5 L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9mbXQvZGVidWcucnMKK2RlbGV0ZWQgZmlsZSBtb2Rl IDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2ZtdC9k ZWJ1Zy5ycworKysrIC9kZXYvbnVsbAorQEAgLTEsNjAgKzAsMCBAQAorLS8vISBJbXBsZW1lbnQg ZGVidWcgZm9ybWF0dGluZworLQorLW1hY3JvX3J1bGVzISBpbXBsX2ZtdF9kZWJ1Z190ZXN0cyB7 CistICAgIChbJGVsZW1fdHk6dHk7ICRlbGVtX2NvdW50OmV4cHJdOiAkaWQ6aWRlbnQgfCAkdGVz dF90dDp0dCkgPT4geworLSAgICAgICAgdGVzdF9pZiEgeworLSAgICAgICAgICAgICR0ZXN0X3R0 OgorLSAgICAgICAgICAgIHBhc3RlOjppdGVtISB7CistICAgICAgICAgICAgICAgIHB1YiBtb2Qg WzwkaWQgX2ZtdF9kZWJ1Zz5dIHsKKy0gICAgICAgICAgICAgICAgICAgIHVzZSBzdXBlcjo6KjsK Ky0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20z MiIpLCB0ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2gg PSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQorLSAgICAgICAgICAgICAgICAgICAgZm4g ZGVidWcoKSB7CistICAgICAgICAgICAgICAgICAgICAgICAgdXNlIGFycmF5dmVjOjp7QXJyYXlT dHJpbmcsQXJyYXlWZWN9OworLSAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgVGlueVN0cmlu ZyA9IEFycmF5U3RyaW5nPFt1ODsgNTEyXT47CistCistICAgICAgICAgICAgICAgICAgICAgICAg dXNlIGNyYXRlOjpmbXQ6OldyaXRlOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2ID0g JGlkOjpkZWZhdWx0KCk7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBzID0gVGlu eVN0cmluZzo6bmV3KCk7CistICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGUhKCZtdXQgcywg Ins6P30iLCB2KS51bndyYXAoKTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0 IGJlZyA9IFRpbnlTdHJpbmc6Om5ldygpOworLSAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRl ISgmbXV0IGJlZywgInt9KCIsIHN0cmluZ2lmeSEoJGlkKSkudW53cmFwKCk7CistICAgICAgICAg ICAgICAgICAgICAgICAgYXNzZXJ0IShzLnN0YXJ0c193aXRoKGJlZy5hc19zdHIoKSkpOworLSAg ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCEocy5lbmRzX3dpdGgoIikiKSk7CistICAgICAg ICAgICAgICAgICAgICAgICAgbGV0IHM6IEFycmF5VmVjPFtUaW55U3RyaW5nOyA2NF0+CistICAg ICAgICAgICAgICAgICAgICAgICAgICAgID0gcy5yZXBsYWNlKGJlZy5hc19zdHIoKSwgIiIpCist ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5yZXBsYWNlKCIpIiwgIiIpLnNwbGl0KCIsIikK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLm1hcCh8dnwgVGlueVN0cmluZzo6ZnJvbSh2 LnRyaW0oKSkudW53cmFwKCkpCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5jb2xsZWN0 KCk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShzLmxlbigpLCAkaWQ6Omxh bmVzKCkpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoaW5kZXgsIHNzKSBpbiBzLmlu dG9faXRlcigpLmVudW1lcmF0ZSgpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0 IG11dCBlID0gVGlueVN0cmluZzo6bmV3KCk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAg IHdyaXRlISgmbXV0IGUsICJ7Oj99Iiwgdi5leHRyYWN0KGluZGV4KSkudW53cmFwKCk7CistICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoc3MsIGUpOworLSAgICAgICAgICAg ICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAg fQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgfTsKKy19CistCistbWFjcm9fcnVs ZXMhIGltcGxfZm10X2RlYnVnIHsKKy0gICAgKFskZWxlbV90eTp0eTsgJGVsZW1fY291bnQ6ZXhw cl06ICRpZDppZGVudCB8ICR0ZXN0X3R0OnR0KSA9PiB7CistICAgICAgICBpbXBsIGNyYXRlOjpm bXQ6OkRlYnVnIGZvciAkaWQgeworLSAgICAgICAgICAgICNbYWxsb3coY2xpcHB5OjptaXNzaW5n X2lubGluZV9pbl9wdWJsaWNfaXRlbXMpXQorLSAgICAgICAgICAgIGZuIGZtdCgmc2VsZiwgZjog Jm11dCBjcmF0ZTo6Zm10OjpGb3JtYXR0ZXI8J18+KSAtPiBjcmF0ZTo6Zm10OjpSZXN1bHQgewor LSAgICAgICAgICAgICAgICB3cml0ZSEoZiwgInt9KCIsIHN0cmluZ2lmeSEoJGlkKSk/OworLSAg ICAgICAgICAgICAgICBmb3IgaSBpbiAwLi4kZWxlbV9jb3VudCB7CistICAgICAgICAgICAgICAg ICAgICBpZiBpID4gMCB7CistICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGUhKGYsICIsICIp PzsKKy0gICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgIHNlbGYuZXh0 cmFjdChpKS5mbXQoZik/OworLSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgIHdy aXRlIShmLCAiKSIpCistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICAgICAgaW1wbF9m bXRfZGVidWdfdGVzdHMhKFskZWxlbV90eTsgJGVsZW1fY291bnRdOiAkaWQgfCAkdGVzdF90dCk7 CistICAgIH07CistfQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQv c3JjL2FwaS9mbXQvbG93ZXJfaGV4LnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9z cmMvYXBpL2ZtdC9sb3dlcl9oZXgucnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEv dGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2ZtdC9sb3dlcl9oZXgucnMKKysr KyAvZGV2L251bGwKK0BAIC0xLDU0ICswLDAgQEAKKy0vLyEgSW1wbGVtZW50IGBMb3dlckhleGAg Zm9ybWF0dGluZworLQorLW1hY3JvX3J1bGVzISBpbXBsX2ZtdF9sb3dlcl9oZXggeworLSAgICAo WyRlbGVtX3R5OmlkZW50OyAkZWxlbV9jb3VudDpleHByXTogJGlkOmlkZW50IHwgJHRlc3RfdHQ6 dHQpID0+IHsKKy0gICAgICAgIGltcGwgY3JhdGU6OmZtdDo6TG93ZXJIZXggZm9yICRpZCB7Cist ICAgICAgICAgICAgI1thbGxvdyhjbGlwcHk6Om1pc3NpbmdfaW5saW5lX2luX3B1YmxpY19pdGVt cyldCistICAgICAgICAgICAgZm4gZm10KCZzZWxmLCBmOiAmbXV0IGNyYXRlOjpmbXQ6OkZvcm1h dHRlcjwnXz4pIC0+IGNyYXRlOjpmbXQ6OlJlc3VsdCB7CistICAgICAgICAgICAgICAgIHdyaXRl IShmLCAie30oIiwgc3RyaW5naWZ5ISgkaWQpKT87CistICAgICAgICAgICAgICAgIGZvciBpIGlu IDAuLiRlbGVtX2NvdW50IHsKKy0gICAgICAgICAgICAgICAgICAgIGlmIGkgPiAwIHsKKy0gICAg ICAgICAgICAgICAgICAgICAgICB3cml0ZSEoZiwgIiwgIik/OworLSAgICAgICAgICAgICAgICAg ICAgfQorLSAgICAgICAgICAgICAgICAgICAgc2VsZi5leHRyYWN0KGkpLmZtdChmKT87CistICAg ICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgd3JpdGUhKGYsICIpIikKKy0gICAgICAg ICAgICB9CistICAgICAgICB9CistICAgICAgICB0ZXN0X2lmISB7CistICAgICAgICAgICAgJHRl c3RfdHQ6CistICAgICAgICAgICAgcGFzdGU6Oml0ZW0hIHsKKy0gICAgICAgICAgICAgICAgcHVi IG1vZCBbPCRpZCBfZm10X2xvd2VyX2hleD5dIHsKKy0gICAgICAgICAgICAgICAgICAgIHVzZSBz dXBlcjo6KjsKKy0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNo ID0gIndhc20zMiIpLCB0ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIodGFy Z2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQorLSAgICAgICAgICAgICAg ICAgICAgZm4gbG93ZXJfaGV4KCkgeworLSAgICAgICAgICAgICAgICAgICAgICAgIHVzZSBhcnJh eXZlYzo6e0FycmF5U3RyaW5nLEFycmF5VmVjfTsKKy0gICAgICAgICAgICAgICAgICAgICAgICB0 eXBlIFRpbnlTdHJpbmcgPSBBcnJheVN0cmluZzxbdTg7IDUxMl0+OworLQorLSAgICAgICAgICAg ICAgICAgICAgICAgIHVzZSBjcmF0ZTo6Zm10OjpXcml0ZTsKKy0gICAgICAgICAgICAgICAgICAg ICAgICBsZXQgdiA9ICRpZDo6c3BsYXQoJGVsZW1fdHk6OmRlZmF1bHQoKSk7CistICAgICAgICAg ICAgICAgICAgICAgICAgbGV0IG11dCBzID0gVGlueVN0cmluZzo6bmV3KCk7CistICAgICAgICAg ICAgICAgICAgICAgICAgd3JpdGUhKCZtdXQgcywgIns6I3h9IiwgdikudW53cmFwKCk7CistCist ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBiZWcgPSBUaW55U3RyaW5nOjpuZXcoKTsK Ky0gICAgICAgICAgICAgICAgICAgICAgICB3cml0ZSEoJm11dCBiZWcsICJ7fSgiLCBzdHJpbmdp ZnkhKCRpZCkpLnVud3JhcCgpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCEocy5z dGFydHNfd2l0aChiZWcuYXNfc3RyKCkpKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3Nl cnQhKHMuZW5kc193aXRoKCIpIikpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBzOiBB cnJheVZlYzxbVGlueVN0cmluZzsgNjRdPgorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA9 IHMucmVwbGFjZShiZWcuYXNfc3RyKCksICIiKS5yZXBsYWNlKCIpIiwgIiIpCistICAgICAgICAg ICAgICAgICAgICAgICAgICAgIC5zcGxpdCgiLCIpCistICAgICAgICAgICAgICAgICAgICAgICAg ICAgIC5tYXAofHZ8IFRpbnlTdHJpbmc6OmZyb20odi50cmltKCkpLnVud3JhcCgpKQorLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAuY29sbGVjdCgpOworLSAgICAgICAgICAgICAgICAgICAg ICAgIGFzc2VydF9lcSEocy5sZW4oKSwgJGlkOjpsYW5lcygpKTsKKy0gICAgICAgICAgICAgICAg ICAgICAgICBmb3IgKGluZGV4LCBzcykgaW4gcy5pbnRvX2l0ZXIoKS5lbnVtZXJhdGUoKSB7Cist ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgZSA9IFRpbnlTdHJpbmc6Om5ldygp OworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB3cml0ZSEoJm11dCBlLCAiezojeH0iLCB2 LmV4dHJhY3QoaW5kZXgpKS51bndyYXAoKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3Nl cnRfZXEhKHNzLCBlKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAg ICAgICAgICB9CistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICB9CistICAgICAgICB9 CistICAgIH07CistfQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQv c3JjL2FwaS9mbXQvb2N0YWwucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9h cGkvZm10L29jdGFsLnJzCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3Bh cnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9mbXQvb2N0YWwucnMKKysrKyAvZGV2L251bGwK K0BAIC0xLDU0ICswLDAgQEAKKy0vLyEgSW1wbGVtZW50IE9jdGFsIGZvcm1hdHRpbmcKKy0KKy1t YWNyb19ydWxlcyEgaW1wbF9mbXRfb2N0YWwgeworLSAgICAoWyRlbGVtX3R5OmlkZW50OyAkZWxl bV9jb3VudDpleHByXTogJGlkOmlkZW50IHwgJHRlc3RfdHQ6dHQpID0+IHsKKy0gICAgICAgIGlt cGwgY3JhdGU6OmZtdDo6T2N0YWwgZm9yICRpZCB7CistICAgICAgICAgICAgI1thbGxvdyhjbGlw cHk6Om1pc3NpbmdfaW5saW5lX2luX3B1YmxpY19pdGVtcyldCistICAgICAgICAgICAgZm4gZm10 KCZzZWxmLCBmOiAmbXV0IGNyYXRlOjpmbXQ6OkZvcm1hdHRlcjwnXz4pIC0+IGNyYXRlOjpmbXQ6 OlJlc3VsdCB7CistICAgICAgICAgICAgICAgIHdyaXRlIShmLCAie30oIiwgc3RyaW5naWZ5ISgk aWQpKT87CistICAgICAgICAgICAgICAgIGZvciBpIGluIDAuLiRlbGVtX2NvdW50IHsKKy0gICAg ICAgICAgICAgICAgICAgIGlmIGkgPiAwIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICB3cml0 ZSEoZiwgIiwgIik/OworLSAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAg ICAgc2VsZi5leHRyYWN0KGkpLmZtdChmKT87CistICAgICAgICAgICAgICAgIH0KKy0gICAgICAg ICAgICAgICAgd3JpdGUhKGYsICIpIikKKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAg ICAgICB0ZXN0X2lmISB7CistICAgICAgICAgICAgJHRlc3RfdHQ6CistICAgICAgICAgICAgcGFz dGU6Oml0ZW0hIHsKKy0gICAgICAgICAgICAgICAgcHViIG1vZCBbPCRpZCBfZm10X29jdGFsPl0g eworLSAgICAgICAgICAgICAgICAgICAgdXNlIHN1cGVyOjoqOworLSAgICAgICAgICAgICAgICAg ICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXQorLSAgICAg ICAgICAgICAgICAgICAgI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2Jp bmRnZW5fdGVzdCldCistICAgICAgICAgICAgICAgICAgICBmbiBvY3RhbF9oZXgoKSB7CistICAg ICAgICAgICAgICAgICAgICAgICAgdXNlIGFycmF5dmVjOjp7QXJyYXlTdHJpbmcsQXJyYXlWZWN9 OworLSAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgVGlueVN0cmluZyA9IEFycmF5U3RyaW5n PFt1ODsgNTEyXT47CistCistICAgICAgICAgICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpmbXQ6 OldyaXRlOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2ID0gJGlkOjpzcGxhdCgkZWxl bV90eTo6ZGVmYXVsdCgpKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IHMgPSBU aW55U3RyaW5nOjpuZXcoKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICB3cml0ZSEoJm11dCBz LCAiezojb30iLCB2KS51bndyYXAoKTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQg bXV0IGJlZyA9IFRpbnlTdHJpbmc6Om5ldygpOworLSAgICAgICAgICAgICAgICAgICAgICAgIHdy aXRlISgmbXV0IGJlZywgInt9KCIsIHN0cmluZ2lmeSEoJGlkKSkudW53cmFwKCk7CistICAgICAg ICAgICAgICAgICAgICAgICAgYXNzZXJ0IShzLnN0YXJ0c193aXRoKGJlZy5hc19zdHIoKSkpOwor LSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCEocy5lbmRzX3dpdGgoIikiKSk7CistICAg ICAgICAgICAgICAgICAgICAgICAgbGV0IHM6IEFycmF5VmVjPFtUaW55U3RyaW5nOyA2NF0+Cist ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gcy5yZXBsYWNlKGJlZy5hc19zdHIoKSwgIiIp LnJlcGxhY2UoIikiLCAiIikKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLnNwbGl0KCIs IikKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLm1hcCh8dnwgVGlueVN0cmluZzo6ZnJv bSh2LnRyaW0oKSkudW53cmFwKCkpCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5jb2xs ZWN0KCk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShzLmxlbigpLCAkaWQ6 OmxhbmVzKCkpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoaW5kZXgsIHNzKSBpbiBz LmludG9faXRlcigpLmVudW1lcmF0ZSgpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg bGV0IG11dCBlID0gVGlueVN0cmluZzo6bmV3KCk7CistICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHdyaXRlISgmbXV0IGUsICJ7OiNvfSIsIHYuZXh0cmFjdChpbmRleCkpLnVud3JhcCgpOwor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHNzLCBlKTsKKy0gICAgICAg ICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAg ICAgIH0KKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgIH07CistfQorZGlmZiAtLWdp dCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9mbXQvdXBwZXJfaGV4LnJz IGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2ZtdC91cHBlcl9oZXgucnMK K2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRf c2ltZC9zcmMvYXBpL2ZtdC91cHBlcl9oZXgucnMKKysrKyAvZGV2L251bGwKK0BAIC0xLDU0ICsw LDAgQEAKKy0vLyEgSW1wbGVtZW50IGBVcHBlckhleGAgZm9ybWF0dGluZworLQorLW1hY3JvX3J1 bGVzISBpbXBsX2ZtdF91cHBlcl9oZXggeworLSAgICAoWyRlbGVtX3R5OmlkZW50OyAkZWxlbV9j b3VudDpleHByXTogJGlkOmlkZW50IHwgJHRlc3RfdHQ6dHQpID0+IHsKKy0gICAgICAgIGltcGwg Y3JhdGU6OmZtdDo6VXBwZXJIZXggZm9yICRpZCB7CistICAgICAgICAgICAgI1thbGxvdyhjbGlw cHk6Om1pc3NpbmdfaW5saW5lX2luX3B1YmxpY19pdGVtcyldCistICAgICAgICAgICAgZm4gZm10 KCZzZWxmLCBmOiAmbXV0IGNyYXRlOjpmbXQ6OkZvcm1hdHRlcjwnXz4pIC0+IGNyYXRlOjpmbXQ6 OlJlc3VsdCB7CistICAgICAgICAgICAgICAgIHdyaXRlIShmLCAie30oIiwgc3RyaW5naWZ5ISgk aWQpKT87CistICAgICAgICAgICAgICAgIGZvciBpIGluIDAuLiRlbGVtX2NvdW50IHsKKy0gICAg ICAgICAgICAgICAgICAgIGlmIGkgPiAwIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICB3cml0 ZSEoZiwgIiwgIik/OworLSAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAg ICAgc2VsZi5leHRyYWN0KGkpLmZtdChmKT87CistICAgICAgICAgICAgICAgIH0KKy0gICAgICAg ICAgICAgICAgd3JpdGUhKGYsICIpIikKKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAg ICAgICB0ZXN0X2lmISB7CistICAgICAgICAgICAgJHRlc3RfdHQ6CistICAgICAgICAgICAgcGFz dGU6Oml0ZW0hIHsKKy0gICAgICAgICAgICAgICAgcHViIG1vZCBbPCRpZCBfZm10X3VwcGVyX2hl eD5dIHsKKy0gICAgICAgICAgICAgICAgICAgIHVzZSBzdXBlcjo6KjsKKy0gICAgICAgICAgICAg ICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0KKy0g ICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2Fz bV9iaW5kZ2VuX3Rlc3QpXQorLSAgICAgICAgICAgICAgICAgICAgZm4gdXBwZXJfaGV4KCkgewor LSAgICAgICAgICAgICAgICAgICAgICAgIHVzZSBhcnJheXZlYzo6e0FycmF5U3RyaW5nLEFycmF5 VmVjfTsKKy0gICAgICAgICAgICAgICAgICAgICAgICB0eXBlIFRpbnlTdHJpbmcgPSBBcnJheVN0 cmluZzxbdTg7IDUxMl0+OworLQorLSAgICAgICAgICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6 Zm10OjpXcml0ZTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdiA9ICRpZDo6c3BsYXQo JGVsZW1fdHk6OmRlZmF1bHQoKSk7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBz ID0gVGlueVN0cmluZzo6bmV3KCk7CistICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGUhKCZt dXQgcywgIns6I1h9IiwgdikudW53cmFwKCk7CistCistICAgICAgICAgICAgICAgICAgICAgICAg bGV0IG11dCBiZWcgPSBUaW55U3RyaW5nOjpuZXcoKTsKKy0gICAgICAgICAgICAgICAgICAgICAg ICB3cml0ZSEoJm11dCBiZWcsICJ7fSgiLCBzdHJpbmdpZnkhKCRpZCkpLnVud3JhcCgpOworLSAg ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCEocy5zdGFydHNfd2l0aChiZWcuYXNfc3RyKCkp KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKHMuZW5kc193aXRoKCIpIikpOwor LSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBzOiBBcnJheVZlYzxbVGlueVN0cmluZzsgNjRd PgorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IHMucmVwbGFjZShiZWcuYXNfc3RyKCks ICIiKS5yZXBsYWNlKCIpIiwgIiIpCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5zcGxp dCgiLCIpCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5tYXAofHZ8IFRpbnlTdHJpbmc6 OmZyb20odi50cmltKCkpLnVud3JhcCgpKQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAu Y29sbGVjdCgpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEocy5sZW4oKSwg JGlkOjpsYW5lcygpKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGluZGV4LCBzcykg aW4gcy5pbnRvX2l0ZXIoKS5lbnVtZXJhdGUoKSB7CistICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGxldCBtdXQgZSA9IFRpbnlTdHJpbmc6Om5ldygpOworLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICB3cml0ZSEoJm11dCBlLCAiezojWH0iLCB2LmV4dHJhY3QoaW5kZXgpKS51bndyYXAo KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShzcywgZSk7CistICAg ICAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAg ICAgICAgICB9CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICB9OworLX0KK2RpZmYg LS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvZnJvbS5ycyBiL3Ro aXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9mcm9tLnJzCitkZWxldGVkIGZpbGUg bW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9m cm9tLnJzCisrKysgL2Rldi9udWxsCitAQCAtMSw3ICswLDAgQEAKKy0vLyEgSW1wbGVtZW50YXRp b25zIG9mIHRoZSBgRnJvbWAgYW5kIGBJbnRvYCB0cmFpdHMKKy0KKy0jW21hY3JvX3VzZV0KKy1t b2QgZnJvbV9hcnJheTsKKy0KKy0jW21hY3JvX3VzZV0KKy1tb2QgZnJvbV92ZWN0b3I7CitkaWZm IC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2Zyb20vZnJvbV9h cnJheS5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9mcm9tL2Zyb21f YXJyYXkucnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVz dC9wYWNrZWRfc2ltZC9zcmMvYXBpL2Zyb20vZnJvbV9hcnJheS5ycworKysrIC9kZXYvbnVsbAor QEAgLTEsMTI0ICswLDAgQEAKKy0vLyEgSW1wbGVtZW50cyBgRnJvbTxbVDsgTl0+YCBhbmQgYElu dG88W1Q7IE5dPmAgZm9yIHZlY3RvciB0eXBlcy4KKy0KKy1tYWNyb19ydWxlcyEgaW1wbF9mcm9t X2FycmF5IHsKKy0gICAgKFskZWxlbV90eTppZGVudDsgJGVsZW1fY291bnQ6ZXhwcl06ICRpZDpp ZGVudCB8ICR0ZXN0X3R0OnR0CistICAgICB8ICgkbm9uX2RlZmF1bHRfYXJyYXk6ZXhwciwgJG5v bl9kZWZhdWx0X3ZlYzpleHByKSkgPT4geworLSAgICAgICAgaW1wbCBGcm9tPFskZWxlbV90eTsg JGVsZW1fY291bnRdPiBmb3IgJGlkIHsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAg ICAgICBmbiBmcm9tKGFycmF5OiBbJGVsZW1fdHk7ICRlbGVtX2NvdW50XSkgLT4gU2VsZiB7Cist ICAgICAgICAgICAgICAgIHVuaW9uIFUgeworLSAgICAgICAgICAgICAgICAgICAgYXJyYXk6IFsk ZWxlbV90eTsgJGVsZW1fY291bnRdLAorLSAgICAgICAgICAgICAgICAgICAgdmVjOiAkaWQsCist ICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgdW5zYWZlIHsgVSB7IGFycmF5IH0u dmVjIH0KKy0gICAgICAgICAgICB9CistICAgICAgICB9CistCistICAgICAgICBpbXBsIEZyb208 JGlkPiBmb3IgWyRlbGVtX3R5OyAkZWxlbV9jb3VudF0geworLSAgICAgICAgICAgICNbaW5saW5l XQorLSAgICAgICAgICAgIGZuIGZyb20odmVjOiAkaWQpIC0+IFNlbGYgeworLSAgICAgICAgICAg ICAgICB1bmlvbiBVIHsKKy0gICAgICAgICAgICAgICAgICAgIGFycmF5OiBbJGVsZW1fdHk7ICRl bGVtX2NvdW50XSwKKy0gICAgICAgICAgICAgICAgICAgIHZlYzogJGlkLAorLSAgICAgICAgICAg ICAgICB9CistICAgICAgICAgICAgICAgIHVuc2FmZSB7IFUgeyB2ZWMgfS5hcnJheSB9CistICAg ICAgICAgICAgfQorLSAgICAgICAgfQorLQorLSAgICAgICAgLy8gRklYTUU6IGBJbnRvOjppbnRv YCBpcyBub3QgaW5saW5lLCBidXQgZHVlIHRvCistICAgICAgICAvLyB0aGUgYmxhbmtldCBpbXBs IGluIGBzdGRgLCB3aGljaCBpcyBub3QKKy0gICAgICAgIC8vIG1hcmtlZCBgZGVmYXVsdGAsIHdl IGNhbm5vdCBvdmVycmlkZSBpdCBoZXJlIHdpdGgKKy0gICAgICAgIC8vIHNwZWNpYWxpemF0aW9u LgorLSAgICAgICAgLyoKKy0gICAgICAgIGltcGwgSW50bzxbJGVsZW1fdHk7ICRlbGVtX2NvdW50 XT4gZm9yICRpZCB7CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgZm4gaW50 byhzZWxmKSAtPiBbJGVsZW1fdHk7ICRlbGVtX2NvdW50XSB7CistICAgICAgICAgICAgICAgIHVu aW9uIFUgeworLSAgICAgICAgICAgICAgICAgICAgYXJyYXk6IFskZWxlbV90eTsgJGVsZW1fY291 bnRdLAorLSAgICAgICAgICAgICAgICAgICAgdmVjOiAkaWQsCistICAgICAgICAgICAgICAgIH0K Ky0gICAgICAgICAgICAgICAgdW5zYWZlIHsgVSB7IHZlYzogc2VsZiB9LmFycmF5IH0KKy0gICAg ICAgICAgICB9CistICAgICAgICB9CistCistICAgICAgICBpbXBsIEludG88JGlkPiBmb3IgWyRl bGVtX3R5OyAkZWxlbV9jb3VudF0geworLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAg ICAgIGZuIGludG8oc2VsZikgLT4gJGlkIHsKKy0gICAgICAgICAgICAgICAgdW5pb24gVSB7Cist ICAgICAgICAgICAgICAgICAgICBhcnJheTogWyRlbGVtX3R5OyAkZWxlbV9jb3VudF0sCistICAg ICAgICAgICAgICAgICAgICB2ZWM6ICRpZCwKKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAg ICAgICAgICB1bnNhZmUgeyBVIHsgYXJyYXk6IHNlbGYgfS52ZWMgfQorLSAgICAgICAgICAgIH0K Ky0gICAgICAgIH0KKy0gICAgICAgICovCistCistICAgICAgICB0ZXN0X2lmISB7CistICAgICAg ICAgICAgJHRlc3RfdHQ6CistICAgICAgICAgICAgcGFzdGU6Oml0ZW0hIHsKKy0gICAgICAgICAg ICAgICAgLy8gQ29tcGFyaXNvbnMgdXNlIGludGVnZXIgY2FzdHMgd2l0aGluIG1hbnRpc3NhXjEg cmFuZ2UuCistICAgICAgICAgICAgICAgICNbYWxsb3coY2xpcHB5OjpmbG9hdF9jbXApXQorLSAg ICAgICAgICAgICAgICBtb2QgWzwkaWQgX2Zyb20+XSB7CistICAgICAgICAgICAgICAgICAgICB1 c2Ugc3VwZXI6Oio7CistICAgICAgICAgICAgICAgICAgICAjW3Rlc3RdCistICAgICAgICAgICAg ICAgICAgICAjW2NmZ19hdHRyKG1pcmksIGlnbm9yZSldCistICAgICAgICAgICAgICAgICAgICBm biBhcnJheSgpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdmVjOiAkaWQgPSBEZWZh dWx0OjpkZWZhdWx0KCk7CistCistICAgICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IFdv cmthcm91bmQgZm9yIGFycmF5cyB3aXRoIG1vcmUgdGhhbiAzMgorLSAgICAgICAgICAgICAgICAg ICAgICAgIC8vIGVsZW1lbnRzLgorLSAgICAgICAgICAgICAgICAgICAgICAgIC8vCistICAgICAg ICAgICAgICAgICAgICAgICAgLy8gU2FmZSBiZWNhdXNlIHdlIG5ldmVyIHRha2UgYSByZWZlcmVu Y2UgdG8gYW55CistICAgICAgICAgICAgICAgICAgICAgICAgLy8gdW5pbml0aWFsaXplZCBlbGVt ZW50LgorLSAgICAgICAgICAgICAgICAgICAgICAgIHVuaW9uIFcgeworLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICBhcnJheTogWyRlbGVtX3R5OyAkZWxlbV9jb3VudF0sCistICAgICAgICAg ICAgICAgICAgICAgICAgICAgIG90aGVyOiAoKQorLSAgICAgICAgICAgICAgICAgICAgICAgIH0K Ky0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IGFycmF5ID0gVyB7IG90aGVyOiAoKSB9 OworLSAgICAgICAgICAgICAgICAgICAgICAgIGZvciBpIGluIDAuLiRlbGVtX2NvdW50IHsKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRlZmF1bHQ6ICRlbGVtX3R5ID0gRGVmYXVs dDo6ZGVmYXVsdCgpOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBub3RlOiBhcnJh eS5vdGhlciBpcyB0aGUgYWN0aXZlIG1lbWJlciBhbmQKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgLy8gaW5pdGlhbGl6ZWQgc28gd2UgY2FuIHRha2UgYSByZWZlcmVuY2UgdG8gaXQ6Cist ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBwID0gdW5zYWZlIHsKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICZtdXQgYXJyYXkub3RoZXIgYXMgKm11dCAoKSBhcyAqbXV0 ICRlbGVtX3R5CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07CistICAgICAgICAgICAg ICAgICAgICAgICAgICAgIC8vIG5vdGU6IGRlZmF1bHQgaXMgYSB2YWxpZCBiaXQtcGF0dGVybiBm b3IKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gJGVsZW1fdHk6CistICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHVuc2FmZSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBjcmF0ZTo6cHRyOjp3cml0ZShwLndyYXBwaW5nX2FkZChpKSwgZGVmYXVsdCkKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgfTsKKy0gICAgICAgICAgICAgICAgICAgICAgICB9Cist ICAgICAgICAgICAgICAgICAgICAgICAgLy8gbm90ZTogdGhlIGFycmF5IHZhcmlhbnQgb2YgdGhl IHVuaW9uIGlzIHByb3Blcmx5CistICAgICAgICAgICAgICAgICAgICAgICAgLy8gaW5pdGlhbGl6 ZWQ6CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBhcnJheSA9IHVuc2FmZSB7Cist ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFycmF5LmFycmF5CistICAgICAgICAgICAgICAg ICAgICAgICAgfTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICBhcnJheVswXSA9ICRub25f ZGVmYXVsdF9hcnJheTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdmVjID0gdmVjLnJl cGxhY2UoMCwgJG5vbl9kZWZhdWx0X3ZlYyk7CistCistICAgICAgICAgICAgICAgICAgICAgICAg bGV0IHZlY19mcm9tX2FycmF5ID0gJGlkOjpmcm9tKGFycmF5KTsKKy0gICAgICAgICAgICAgICAg ICAgICAgICBhc3NlcnRfZXEhKHZlY19mcm9tX2FycmF5LCB2ZWMpOworLSAgICAgICAgICAgICAg ICAgICAgICAgIGxldCBhcnJheV9mcm9tX3ZlYworLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICA9IDxbJGVsZW1fdHk7ICRlbGVtX2NvdW50XT46OmZyb20odmVjKTsKKy0gICAgICAgICAgICAg ICAgICAgICAgICAvLyBGSVhNRTogV29ya2Fyb3VuZCBmb3IgYXJyYXlzIHdpdGggbW9yZSB0aGFu IDMyCistICAgICAgICAgICAgICAgICAgICAgICAgLy8gZWxlbWVudHMuCistICAgICAgICAgICAg ICAgICAgICAgICAgZm9yIGkgaW4gMC4uJGVsZW1fY291bnQgeworLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICBhc3NlcnRfZXEhKGFycmF5X2Zyb21fdmVjW2ldLCBhcnJheVtpXSk7CistICAg ICAgICAgICAgICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2 ZWNfZnJvbV9pbnRvX2FycmF5OiAkaWQgPSBhcnJheS5pbnRvKCk7CistICAgICAgICAgICAgICAg ICAgICAgICAgYXNzZXJ0X2VxISh2ZWNfZnJvbV9pbnRvX2FycmF5LCB2ZWMpOworLSAgICAgICAg ICAgICAgICAgICAgICAgIGxldCBhcnJheV9mcm9tX2ludG9fdmVjOiBbJGVsZW1fdHk7ICRlbGVt X2NvdW50XQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IHZlYy5pbnRvKCk7CistICAg ICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IFdvcmthcm91bmQgZm9yIGFycmF5cyB3aXRo IG1vcmUgdGhhbiAzMgorLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIGVsZW1lbnRzLgorLSAg ICAgICAgICAgICAgICAgICAgICAgIGZvciBpIGluIDAuLiRlbGVtX2NvdW50IHsKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShhcnJheV9mcm9tX2ludG9fdmVjW2ldLCBh cnJheVtpXSk7CistICAgICAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAg ICAgfQorLSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAg ICB9OworLX0KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9h cGkvZnJvbS9mcm9tX3ZlY3Rvci5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3Jj L2FwaS9mcm9tL2Zyb21fdmVjdG9yLnJzCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBh L3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9mcm9tL2Zyb21fdmVjdG9yLnJz CisrKysgL2Rldi9udWxsCitAQCAtMSw2NyArMCwwIEBACistLy8hIEltcGxlbWVudHMgYEZyb21g IGFuZCBgSW50b2AgZm9yIHZlY3RvciB0eXBlcy4KKy0KKy1tYWNyb19ydWxlcyEgaW1wbF9mcm9t X3ZlY3RvciB7CistICAgIChbJGVsZW1fdHk6aWRlbnQ7ICRlbGVtX2NvdW50OmV4cHJdOiAkaWQ6 aWRlbnQgfCAkdGVzdF90dDp0dAorLSAgICAgfCAkc291cmNlOmlkZW50KSA9PiB7CistICAgICAg ICBpbXBsIEZyb208JHNvdXJjZT4gZm9yICRpZCB7CistICAgICAgICAgICAgI1tpbmxpbmVdCist ICAgICAgICAgICAgZm4gZnJvbShzb3VyY2U6ICRzb3VyY2UpIC0+IFNlbGYgeworLSAgICAgICAg ICAgICAgICBmbiBzdGF0aWNfYXNzZXJ0X3NhbWVfbnVtYmVyX29mX2xhbmVzPFQsIFU+KCkKKy0g ICAgICAgICAgICAgICAgd2hlcmUKKy0gICAgICAgICAgICAgICAgICAgIFQ6IGNyYXRlOjpzZWFs ZWQ6OlNpbWQsCistICAgICAgICAgICAgICAgICAgICBVOiBjcmF0ZTo6c2VhbGVkOjpTaW1kPExh bmVzVHlwZSA9IFQ6OkxhbmVzVHlwZT4sCistICAgICAgICAgICAgICAgIHsKKy0gICAgICAgICAg ICAgICAgfQorLSAgICAgICAgICAgICAgICB1c2UgY3JhdGU6Omxsdm06OnNpbWRfY2FzdDsKKy0g ICAgICAgICAgICAgICAgc3RhdGljX2Fzc2VydF9zYW1lX251bWJlcl9vZl9sYW5lczo6PCRpZCwg JHNvdXJjZT4oKTsKKy0gICAgICAgICAgICAgICAgU2ltZCh1bnNhZmUgeyBzaW1kX2Nhc3Qoc291 cmNlLjApIH0pCistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLQorLSAgICAgICAgLy8gRklY TUU6IGBJbnRvOjppbnRvYCBpcyBub3QgaW5saW5lLCBidXQgZHVlIHRvIHRoZSBibGFua2V0IGlt cGwgaW4KKy0gICAgICAgIC8vIGBzdGRgLCB3aGljaCBpcyBub3QgbWFya2VkIGBkZWZhdWx0YCwg d2UgY2Fubm90IG92ZXJyaWRlIGl0IGhlcmUKKy0gICAgICAgIC8vIHdpdGggc3BlY2lhbGl6YXRp b24uCistCistICAgICAgICAvKgorLSAgICAgICAgICAgaW1wbCBJbnRvPCRpZD4gZm9yICRzb3Vy Y2UgeworLSAgICAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgICAgIGZuIGludG8o c2VsZikgLT4gJGlkIHsKKy0gICAgICAgICAgICAgICAgICAgdW5zYWZlIHsgc2ltZF9jYXN0KHNl bGYpIH0KKy0gICAgICAgICAgICAgICB9CistICAgICAgICAgICB9CistICAgICAgICAqLworLQor LSAgICAgICAgdGVzdF9pZiEgeworLSAgICAgICAgICAgICR0ZXN0X3R0OgorLSAgICAgICAgICAg IHBhc3RlOjppdGVtISB7CistICAgICAgICAgICAgICAgIHB1YiBtb2QgWzwkaWQgX2Zyb21fICRz b3VyY2U+XSB7CistICAgICAgICAgICAgICAgICAgICB1c2Ugc3VwZXI6Oio7CistICAgICAgICAg ICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCld CistICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIs IHdhc21fYmluZGdlbl90ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAgIGZuIGZyb20oKSB7Cist ICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISgkaWQ6OmxhbmVzKCksICRzb3VyY2U6 OmxhbmVzKCkpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBzb3VyY2U6ICRzb3VyY2Ug PSBEZWZhdWx0OjpkZWZhdWx0KCk7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHZlYzog JGlkID0gRGVmYXVsdDo6ZGVmYXVsdCgpOworLQorLSAgICAgICAgICAgICAgICAgICAgICAgIGxl dCBlID0gJGlkOjpmcm9tKHNvdXJjZSk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0 X2VxIShlLCB2ZWMpOworLQorLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBlOiAkaWQgPSBz b3VyY2UuaW50bygpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoZSwgdmVj KTsKKy0gICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAg ICAgIH0KKy0gICAgICAgIH0KKy0gICAgfTsKKy19CistCistbWFjcm9fcnVsZXMhIGltcGxfZnJv bV92ZWN0b3JzIHsKKy0gICAgKFskZWxlbV90eTppZGVudDsgJGVsZW1fY291bnQ6ZXhwcl06ICRp ZDppZGVudCB8ICR0ZXN0X3R0OnR0CistICAgICB8ICQoJHNvdXJjZTppZGVudCksKikgPT4gewor LSAgICAgICAgJCgKKy0gICAgICAgICAgICBpbXBsX2Zyb21fdmVjdG9yISgKKy0gICAgICAgICAg ICAgICAgWyRlbGVtX3R5OyAkZWxlbV9jb3VudF06ICRpZCB8ICR0ZXN0X3R0IHwgJHNvdXJjZQor LSAgICAgICAgICAgICk7CistICAgICAgICApKgorLSAgICB9CistfQorZGlmZiAtLWdpdCBhL3Ro aXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9oYXNoLnJzIGIvdGhpcmRfcGFydHkv cnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2hhc2gucnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0 NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2hhc2gucnMKKysr KyAvZGV2L251bGwKK0BAIC0xLDQ5ICswLDAgQEAKKy0vLyEgSW1wbGVtZW50cyBgSGFzaGAgZm9y IHZlY3RvciB0eXBlcy4KKy0KKy1tYWNyb19ydWxlcyEgaW1wbF9oYXNoIHsKKy0gICAgKFskZWxl bV90eTppZGVudDsgJGVsZW1fY291bnQ6ZXhwcl06ICRpZDppZGVudCB8ICR0ZXN0X3R0OnR0KSA9 PiB7CistICAgICAgICBpbXBsIGNyYXRlOjpoYXNoOjpIYXNoIGZvciAkaWQgeworLSAgICAgICAg ICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIGZuIGhhc2g8SDogY3JhdGU6Omhhc2g6Okhhc2hl cj4oJnNlbGYsIHN0YXRlOiAmbXV0IEgpIHsKKy0gICAgICAgICAgICAgICAgdW5zYWZlIHsKKy0g ICAgICAgICAgICAgICAgICAgIHVuaW9uIEEgeworLSAgICAgICAgICAgICAgICAgICAgICAgIGRh dGE6IFskZWxlbV90eTsgJGlkOjpsYW5lcygpXSwKKy0gICAgICAgICAgICAgICAgICAgICAgICB2 ZWM6ICRpZCwKKy0gICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgIEEg eyB2ZWM6ICpzZWxmIH0uZGF0YS5oYXNoKHN0YXRlKQorLSAgICAgICAgICAgICAgICB9CistICAg ICAgICAgICAgfQorLSAgICAgICAgfQorLQorLSAgICAgICAgdGVzdF9pZiEgeworLSAgICAgICAg ICAgICR0ZXN0X3R0OgorLSAgICAgICAgICAgIHBhc3RlOjppdGVtISB7CistICAgICAgICAgICAg ICAgIHB1YiBtb2QgWzwkaWQgX2hhc2g+XSB7CistICAgICAgICAgICAgICAgICAgICB1c2Ugc3Vw ZXI6Oio7CistICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9 ICJ3YXNtMzIiKSwgdGVzdCldICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2Fz bV9iaW5kZ2VuX3Rlc3QpXQorLSAgICAgICAgICAgICAgICAgICAgZm4gaGFzaCgpIHsKKy0gICAg ICAgICAgICAgICAgICAgICAgICB1c2UgY3JhdGU6Omhhc2g6OntIYXNoLCBIYXNoZXJ9OworLSAg ICAgICAgICAgICAgICAgICAgICAgICNbYWxsb3coZGVwcmVjYXRlZCldCistICAgICAgICAgICAg ICAgICAgICAgICAgdXNlIGNyYXRlOjpoYXNoOjp7U2lwSGFzaGVyMTN9OworLSAgICAgICAgICAg ICAgICAgICAgICAgIHR5cGUgQSA9IFskZWxlbV90eTsgJGlkOjpsYW5lcygpXTsKKy0gICAgICAg ICAgICAgICAgICAgICAgICBsZXQgYTogQSA9IFs0MiBhcyAkZWxlbV90eTsgJGlkOjpsYW5lcygp XTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKAorLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICBjcmF0ZTo6bWVtOjpzaXplX29mOjo8QT4oKSwKKy0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgY3JhdGU6Om1lbTo6c2l6ZV9vZjo6PCRpZD4oKQorLSAgICAgICAgICAg ICAgICAgICAgICAgICk7CistICAgICAgICAgICAgICAgICAgICAgICAgI1thbGxvdyhkZXByZWNh dGVkKV0KKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IGFfaGFzaCA9IFNpcEhhc2hl cjEzOjpuZXcoKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IHZfaGFzaCA9IGFf aGFzaC5jbG9uZSgpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGEuaGFzaCgmbXV0IGFfaGFz aCk7CistCistICAgICAgICAgICAgICAgICAgICAgICAgLy8gSW50ZWdlciB3aXRoaW4gbWFudGlz c2FeMSByYW5nZS4KKy0gICAgICAgICAgICAgICAgICAgICAgICAjW2FsbG93KGNsaXBweTo6Zmxv YXRfY21wKV0KKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdiA9ICRpZDo6c3BsYXQoNDIg YXMgJGVsZW1fdHkpOworLSAgICAgICAgICAgICAgICAgICAgICAgIHYuaGFzaCgmbXV0IHZfaGFz aCk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShhX2hhc2guZmluaXNoKCks IHZfaGFzaC5maW5pc2goKSk7CistICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAg ICAgIH0KKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgIH07CistfQorZGlmZiAtLWdp dCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9pbnRvX2JpdHMucnMgYi90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvaW50b19iaXRzLnJzCitkZWxldGVk IGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3Jj L2FwaS9pbnRvX2JpdHMucnMKKysrKyAvZGV2L251bGwKK0BAIC0xLDU5ICswLDAgQEAKKy0vLyEg SW1wbGVtZW50YXRpb24gb2YgYEZyb21CaXRzYCBhbmQgYEludG9CaXRzYC4KKy0KKy0vLy8gU2Fm ZSBsb3NzbGVzcyBiaXR3aXNlIGNvbnZlcnNpb24gZnJvbSBgVGAgdG8gYFNlbGZgLgorLSNbY2Zn X2F0dHIoZG9jX2NmZywgZG9jKGNmZyhmZWF0dXJlID0gImludG9fYml0cyIpKSldCistcHViIHRy YWl0IEZyb21CaXRzPFQ+OiBjcmF0ZTo6bWFya2VyOjpTaXplZCB7CistICAgIC8vLyBTYWZlIGxv c3NsZXNzIGJpdHdpc2UgdHJhbnNtdXRlIGZyb20gYFRgIHRvIGBTZWxmYC4KKy0gICAgZm4gZnJv bV9iaXRzKHQ6IFQpIC0+IFNlbGY7CistfQorLQorLS8vLyBTYWZlIGxvc3NsZXNzIGJpdHdpc2Ug Y29udmVyc2lvbiBmcm9tIGBTZWxmYCB0byBgVGAuCistI1tjZmdfYXR0cihkb2NfY2ZnLCBkb2Mo Y2ZnKGZlYXR1cmUgPSAiaW50b19iaXRzIikpKV0KKy1wdWIgdHJhaXQgSW50b0JpdHM8VD46IGNy YXRlOjptYXJrZXI6OlNpemVkIHsKKy0gICAgLy8vIFNhZmUgbG9zc2xlc3MgYml0d2lzZSB0cmFu c211dGUgZnJvbSBgc2VsZmAgdG8gYFRgLgorLSAgICBmbiBpbnRvX2JpdHMoc2VsZikgLT4gVDsK Ky19CistCistLy8vIGBGcm9tQml0c2AgaW1wbGllcyBgSW50b0JpdHNgLgorLWltcGw8VCwgVT4g SW50b0JpdHM8VT4gZm9yIFQKKy13aGVyZQorLSAgICBVOiBGcm9tQml0czxUPiwKKy17CistICAg ICNbaW5saW5lXQorLSAgICBmbiBpbnRvX2JpdHMoc2VsZikgLT4gVSB7CistICAgICAgICBkZWJ1 Z19hc3NlcnQhKGNyYXRlOjptZW06OnNpemVfb2Y6OjxTZWxmPigpID09IGNyYXRlOjptZW06OnNp emVfb2Y6OjxVPigpKTsKKy0gICAgICAgIFU6OmZyb21fYml0cyhzZWxmKQorLSAgICB9CistfQor LQorLS8vLyBgRnJvbUJpdHNgIGFuZCBgSW50b0JpdHNgIGFyZSByZWZsZXhpdmUKKy1pbXBsPFQ+ IEZyb21CaXRzPFQ+IGZvciBUIHsKKy0gICAgI1tpbmxpbmVdCistICAgIGZuIGZyb21fYml0cyh0 OiBTZWxmKSAtPiBTZWxmIHsKKy0gICAgICAgIHQKKy0gICAgfQorLX0KKy0KKy0jW21hY3JvX3Vz ZV0KKy1tb2QgbWFjcm9zOworLQorLW1vZCB2MTY7CistcHViIHVzZSBzZWxmOjp2MTY6Oio7Cist CistbW9kIHYzMjsKKy1wdWIgdXNlIHNlbGY6OnYzMjo6KjsKKy0KKy1tb2QgdjY0OworLXB1YiB1 c2Ugc2VsZjo6djY0OjoqOworLQorLW1vZCB2MTI4OworLXB1YiB1c2Ugc2VsZjo6djEyODo6KjsK Ky0KKy1tb2QgdjI1NjsKKy1wdWIgdXNlIHNlbGY6OnYyNTY6Oio7CistCistbW9kIHY1MTI7Cist cHViIHVzZSBzZWxmOjp2NTEyOjoqOworLQorLW1vZCBhcmNoX3NwZWNpZmljOworLXB1YiB1c2Ug c2VsZjo6YXJjaF9zcGVjaWZpYzo6KjsKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3Bh Y2tlZF9zaW1kL3NyYy9hcGkvaW50b19iaXRzL2FyY2hfc3BlY2lmaWMucnMgYi90aGlyZF9wYXJ0 eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvaW50b19iaXRzL2FyY2hfc3BlY2lmaWMucnMKK2Rl bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2lt ZC9zcmMvYXBpL2ludG9fYml0cy9hcmNoX3NwZWNpZmljLnJzCisrKysgL2Rldi9udWxsCitAQCAt MSwzNDUgKzAsMCBAQAorLS8vISBgRnJvbUJpdHNgIGFuZCBgSW50b0JpdHNgIGJldHdlZW4gcG9y dGFibGUgdmVjdG9yIHR5cGVzIGFuZCB0aGUKKy0vLyEgYXJjaGl0ZWN0dXJlLXNwZWNpZmljIHZl Y3RvciB0eXBlcy4KKy0jW3J1c3RmbXQ6OnNraXBdCistCistLy8gRklYTUU6IE1JUFMgRnJvbUJp dHMvSW50b0JpdHMKKy0KKy0jW2FsbG93KHVudXNlZCldCistdXNlIGNyYXRlOjoqOworLQorLS8v LyBUaGlzIG1hY3JvIGltcGxlbWVudHMgRnJvbUJpdHMgZm9yIHRoZSBwb3J0YWJsZSBhbmQgdGhl IGFyY2hpdGVjdHVyZQorLS8vLyBzcGVjaWZpYyB2ZWN0b3IgdHlwZXMuCistLy8vCistLy8vIFRo ZSAibGVhZiIgY2FzZSBpcyBhdCB0aGUgYm90dG9tLCBhbmQgdGhlIG1vc3QgZ2VuZXJpYyBjYXNl IGlzIGF0IHRoZSB0b3AuCistLy8vIFRoZSBnZW5lcmljIGNhc2UgaXMgc3BsaXQgaW50byBzbWFs bGVyIGNhc2VzIHJlY3Vyc2l2ZWx5LgorLW1hY3JvX3J1bGVzISBpbXBsX2FyY2ggeworLSAgICAo WyRhcmNoX2hlYWRfaTppZGVudFskYXJjaF9oZWFkX3R0OnR0XTogJCgkYXJjaF9oZWFkX3R5Omlk ZW50KSwqXSwKKy0gICAgICQoWyRhcmNoX3RhaWxfaTppZGVudFskYXJjaF90YWlsX3R0OnR0XTog JCgkYXJjaF90YWlsX3R5OmlkZW50KSwqXSksKiB8CistICAgICBmcm9tOiAkKCRmcm9tX3R5Omlk ZW50KSwqIHwgaW50bzogJCgkaW50b190eTppZGVudCksKiB8CistICAgICB0ZXN0OiAkdGVzdF90 dDp0dCkgPT4geworLSAgICAgICAgaW1wbF9hcmNoISgKKy0gICAgICAgICAgICBbJGFyY2hfaGVh ZF9pWyRhcmNoX2hlYWRfdHRdOiAkKCRhcmNoX2hlYWRfdHkpLCpdIHwKKy0gICAgICAgICAgICBm cm9tOiAkKCRmcm9tX3R5KSwqIHwKKy0gICAgICAgICAgICBpbnRvOiAkKCRpbnRvX3R5KSwqIHwK Ky0gICAgICAgICAgICB0ZXN0OiAkdGVzdF90dAorLSAgICAgICAgKTsKKy0gICAgICAgIGltcGxf YXJjaCEoCistICAgICAgICAgICAgJChbJGFyY2hfdGFpbF9pWyRhcmNoX3RhaWxfdHRdOiAkKCRh cmNoX3RhaWxfdHkpLCpdKSwqIHwKKy0gICAgICAgICAgICBmcm9tOiAkKCRmcm9tX3R5KSwqIHwK Ky0gICAgICAgICAgICBpbnRvOiAkKCRpbnRvX3R5KSwqIHwKKy0gICAgICAgICAgICB0ZXN0OiAk dGVzdF90dAorLSAgICAgICAgKTsKKy0gICAgfTsKKy0gICAgKFskYXJjaDppZGVudFskYXJjaF90 dDp0dF06ICQoJGFyY2hfdHk6aWRlbnQpLCpdIHwKKy0gICAgIGZyb206ICQoJGZyb21fdHk6aWRl bnQpLCogfCBpbnRvOiAkKCRpbnRvX3R5OmlkZW50KSwqIHwKKy0gICAgIHRlc3Q6ICR0ZXN0X3R0 OnR0KSA9PiB7CistICAgICAgICAvLyBub3RlOiBpZiB0YXJnZXQgaXMgImFybSIsICIrdjcsK25l b24iIG11c3QgYmUgZW5hYmxlZAorLSAgICAgICAgLy8gYW5kIHRoZSBzdGQgbGlicmFyeSBtdXN0 IGJlIHJlY29tcGlsZWQgd2l0aCB0aGVtCistICAgICAgICAjW2NmZyhhbnkoCistICAgICAgICAg ICAgbm90KHRhcmdldF9hcmNoID0gImFybSIpLAorLSAgICAgICAgICAgIGFsbCh0YXJnZXRfZmVh dHVyZSA9ICJ2NyIsIHRhcmdldF9mZWF0dXJlID0gIm5lb24iLAorLSAgICAgICAgICAgICAgICBh bnkoZmVhdHVyZSA9ICJjb3JlX2FyY2giLCBsaWJjb3JlX25lb24pKSkKKy0gICAgICAgICldCist ICAgICAgICAvLyBub3RlOiBpZiB0YXJnZXQgaXMgInBvd2VycGMiLCAiYWx0aXZlYyIgbXVzdCBi ZSBlbmFibGVkCistICAgICAgICAvLyBhbmQgdGhlIHN0ZCBsaWJyYXJ5IG11c3QgYmUgcmVjb21w aWxlZCB3aXRoIGl0CistICAgICAgICAjW2NmZyhhbnkoCistICAgICAgICAgICAgbm90KHRhcmdl dF9hcmNoID0gInBvd2VycGMiKSwKKy0gICAgICAgICAgICBhbGwodGFyZ2V0X2ZlYXR1cmUgPSAi YWx0aXZlYyIsIGZlYXR1cmUgPSAiY29yZV9hcmNoIiksCistICAgICAgICApKV0KKy0gICAgICAg ICNbY2ZnKHRhcmdldF9hcmNoID0gJGFyY2hfdHQpXQorLSAgICAgICAgdXNlIGNyYXRlOjphcmNo OjokYXJjaDo6eworLSAgICAgICAgICAgICQoJGFyY2hfdHkpLCoKKy0gICAgICAgIH07CistCist ICAgICAgICAjW2NmZyhhbnkoCistICAgICAgICAgICAgbm90KHRhcmdldF9hcmNoID0gImFybSIp LAorLSAgICAgICAgICAgIGFsbCh0YXJnZXRfZmVhdHVyZSA9ICJ2NyIsIHRhcmdldF9mZWF0dXJl ID0gIm5lb24iLAorLSAgICAgICAgICAgICAgICBhbnkoZmVhdHVyZSA9ICJjb3JlX2FyY2giLCBs aWJjb3JlX25lb24pKSkKKy0gICAgICAgICldCistICAgICAgICAjW2NmZyhhbnkoCistICAgICAg ICAgICAgbm90KHRhcmdldF9hcmNoID0gInBvd2VycGMiKSwKKy0gICAgICAgICAgICBhbGwodGFy Z2V0X2ZlYXR1cmUgPSAiYWx0aXZlYyIsIGZlYXR1cmUgPSAiY29yZV9hcmNoIiksCistICAgICAg ICApKV0KKy0gICAgICAgICNbY2ZnKHRhcmdldF9hcmNoID0gJGFyY2hfdHQpXQorLSAgICAgICAg aW1wbF9hcmNoISgkKCRhcmNoX3R5KSwqIHwgJCgkZnJvbV90eSksKiB8ICQoJGludG9fdHkpLCog fAorLSAgICAgICAgICAgICAgICAgICB0ZXN0OiAkdGVzdF90dCk7CistICAgIH07CistICAgICgk YXJjaF9oZWFkOmlkZW50LCAkKCRhcmNoX3RhaWw6aWRlbnQpLCogfCAkKCRmcm9tX3R5OmlkZW50 KSwqCistICAgICB8ICQoJGludG9fdHk6aWRlbnQpLCogfCB0ZXN0OiAkdGVzdF90dDp0dCkgPT4g eworLSAgICAgICAgaW1wbF9hcmNoISgkYXJjaF9oZWFkIHwgJCgkZnJvbV90eSksKiB8ICQoJGlu dG9fdHkpLCogfAorLSAgICAgICAgICAgICAgICAgICB0ZXN0OiAkdGVzdF90dCk7CistICAgICAg ICBpbXBsX2FyY2ghKCQoJGFyY2hfdGFpbCksKiB8ICQoJGZyb21fdHkpLCogfCAkKCRpbnRvX3R5 KSwqIHwKKy0gICAgICAgICAgICAgICAgICAgdGVzdDogJHRlc3RfdHQpOworLSAgICB9OworLSAg ICAoJGFyY2hfaGVhZDppZGVudCB8ICQoJGZyb21fdHk6aWRlbnQpLCogfCAkKCRpbnRvX3R5Omlk ZW50KSwqIHwKKy0gICAgIHRlc3Q6ICR0ZXN0X3R0OnR0KSA9PiB7CistICAgICAgICBpbXBsX2Zy b21fYml0cyEoJGFyY2hfaGVhZFskdGVzdF90dF06ICQoJGZyb21fdHkpLCopOworLSAgICAgICAg aW1wbF9pbnRvX2JpdHMhKCRhcmNoX2hlYWRbJHRlc3RfdHRdOiAkKCRpbnRvX3R5KSwqKTsKKy0g ICAgfTsKKy19CistCistLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy0vLyBJbXBsZW1lbnRhdGlv bnMgZm9yIHRoZSA2NC1iaXQgd2lkZSB2ZWN0b3IgdHlwZXM6CistCistLy8gRklYTUU6IDY0LWJp dCBzaW5nbGUgZWxlbWVudCB0eXBlcworLS8vIEZJWE1FOiBhcm0vYWFyY2ggZmxvYXQxNng0X3Qg bWlzc2luZworLWltcGxfYXJjaCEoCistICAgIFsKKy0gICAgICAgIGFybVsiYXJtIl06IGludDh4 OF90LAorLSAgICAgICAgdWludDh4OF90LAorLSAgICAgICAgcG9seTh4OF90LAorLSAgICAgICAg aW50MTZ4NF90LAorLSAgICAgICAgdWludDE2eDRfdCwKKy0gICAgICAgIHBvbHkxNng0X3QsCist ICAgICAgICBpbnQzMngyX3QsCistICAgICAgICB1aW50MzJ4Ml90LAorLSAgICAgICAgZmxvYXQz MngyX3QsCistICAgICAgICBpbnQ2NHgxX3QsCistICAgICAgICB1aW50NjR4MV90CistICAgIF0s CistICAgIFsKKy0gICAgICAgIGFhcmNoNjRbImFhcmNoNjQiXTogaW50OHg4X3QsCistICAgICAg ICB1aW50OHg4X3QsCistICAgICAgICBwb2x5OHg4X3QsCistICAgICAgICBpbnQxNng0X3QsCist ICAgICAgICB1aW50MTZ4NF90LAorLSAgICAgICAgcG9seTE2eDRfdCwKKy0gICAgICAgIGludDMy eDJfdCwKKy0gICAgICAgIHVpbnQzMngyX3QsCistICAgICAgICBmbG9hdDMyeDJfdCwKKy0gICAg ICAgIGludDY0eDFfdCwKKy0gICAgICAgIHVpbnQ2NHgxX3QsCistICAgICAgICBmbG9hdDY0eDFf dAorLSAgICBdIHwgZnJvbTogaTh4OCwKKy0gICAgdTh4OCwKKy0gICAgbTh4OCwKKy0gICAgaTE2 eDQsCistICAgIHUxNng0LAorLSAgICBtMTZ4NCwKKy0gICAgaTMyeDIsCistICAgIHUzMngyLAor LSAgICBmMzJ4MiwKKy0gICAgbTMyeDIgfCBpbnRvOiBpOHg4LAorLSAgICB1OHg4LAorLSAgICBp MTZ4NCwKKy0gICAgdTE2eDQsCistICAgIGkzMngyLAorLSAgICB1MzJ4MiwKKy0gICAgZjMyeDIg fCB0ZXN0OiB0ZXN0X3Y2NAorLSk7CistCistLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy0vLyBJ bXBsZW1lbnRhdGlvbnMgZm9yIHRoZSAxMjgtYml0IHdpZGUgdmVjdG9yIHR5cGVzOgorLQorLS8v IEZJWE1FOiBhcm0vYWFyY2ggZmxvYXQxNng4X3QgbWlzc2luZworLS8vIEZJWE1FOiBwcGMgdmVj dG9yX3BpeGVsIG1pc3NpbmcKKy0vLyBGSVhNRTogcHBjNjQgdmVjdG9yX0Zsb2F0MTYgbWlzc2lu ZworLS8vIEZJWE1FOiBwcGM2NCB2ZWN0b3Jfc2lnbmVkX2xvbmdfbG9uZyBtaXNzaW5nCistLy8g RklYTUU6IHBwYzY0IHZlY3Rvcl91bnNpZ25lZF9sb25nX2xvbmcgbWlzc2luZworLS8vIEZJWE1F OiBwcGM2NCB2ZWN0b3JfYm9vbF9sb25nX2xvbmcgbWlzc2luZworLS8vIEZJWE1FOiBwcGM2NCB2 ZWN0b3Jfc2lnbmVkX19faW50MTI4IG1pc3NpbmcKKy0vLyBGSVhNRTogcHBjNjQgdmVjdG9yX3Vu c2lnbmVkX19faW50MTI4IG1pc3NpbmcKKy1pbXBsX2FyY2ghKAorLSAgICBbeDg2WyJ4ODYiXTog X19tMTI4LCBfX20xMjhpLCBfX20xMjhkXSwKKy0gICAgW3g4Nl82NFsieDg2XzY0Il06IF9fbTEy OCwgX19tMTI4aSwgX19tMTI4ZF0sCistICAgIFsKKy0gICAgICAgIGFybVsiYXJtIl06IGludDh4 MTZfdCwKKy0gICAgICAgIHVpbnQ4eDE2X3QsCistICAgICAgICBwb2x5OHgxNl90LAorLSAgICAg ICAgaW50MTZ4OF90LAorLSAgICAgICAgdWludDE2eDhfdCwKKy0gICAgICAgIHBvbHkxNng4X3Qs CistICAgICAgICBpbnQzMng0X3QsCistICAgICAgICB1aW50MzJ4NF90LAorLSAgICAgICAgZmxv YXQzMng0X3QsCistICAgICAgICBpbnQ2NHgyX3QsCistICAgICAgICB1aW50NjR4Ml90CistICAg IF0sCistICAgIFsKKy0gICAgICAgIGFhcmNoNjRbImFhcmNoNjQiXTogaW50OHgxNl90LAorLSAg ICAgICAgdWludDh4MTZfdCwKKy0gICAgICAgIHBvbHk4eDE2X3QsCistICAgICAgICBpbnQxNng4 X3QsCistICAgICAgICB1aW50MTZ4OF90LAorLSAgICAgICAgcG9seTE2eDhfdCwKKy0gICAgICAg IGludDMyeDRfdCwKKy0gICAgICAgIHVpbnQzMng0X3QsCistICAgICAgICBmbG9hdDMyeDRfdCwK Ky0gICAgICAgIGludDY0eDJfdCwKKy0gICAgICAgIHVpbnQ2NHgyX3QsCistICAgICAgICBmbG9h dDY0eDJfdAorLSAgICBdLAorLSAgICBbCistICAgICAgICBwb3dlcnBjWyJwb3dlcnBjIl06IHZl Y3Rvcl9zaWduZWRfY2hhciwKKy0gICAgICAgIHZlY3Rvcl91bnNpZ25lZF9jaGFyLAorLSAgICAg ICAgdmVjdG9yX3NpZ25lZF9zaG9ydCwKKy0gICAgICAgIHZlY3Rvcl91bnNpZ25lZF9zaG9ydCwK Ky0gICAgICAgIHZlY3Rvcl9zaWduZWRfaW50LAorLSAgICAgICAgdmVjdG9yX3Vuc2lnbmVkX2lu dCwKKy0gICAgICAgIHZlY3Rvcl9mbG9hdAorLSAgICBdLAorLSAgICBbCistICAgICAgICBwb3dl cnBjNjRbInBvd2VycGM2NCJdOiB2ZWN0b3Jfc2lnbmVkX2NoYXIsCistICAgICAgICB2ZWN0b3Jf dW5zaWduZWRfY2hhciwKKy0gICAgICAgIHZlY3Rvcl9zaWduZWRfc2hvcnQsCistICAgICAgICB2 ZWN0b3JfdW5zaWduZWRfc2hvcnQsCistICAgICAgICB2ZWN0b3Jfc2lnbmVkX2ludCwKKy0gICAg ICAgIHZlY3Rvcl91bnNpZ25lZF9pbnQsCistICAgICAgICB2ZWN0b3JfZmxvYXQsCistICAgICAg ICB2ZWN0b3Jfc2lnbmVkX2xvbmcsCistICAgICAgICB2ZWN0b3JfdW5zaWduZWRfbG9uZywKKy0g ICAgICAgIHZlY3Rvcl9kb3VibGUKKy0gICAgXSB8IGZyb206IGk4eDE2LAorLSAgICB1OHgxNiwK Ky0gICAgbTh4MTYsCistICAgIGkxNng4LAorLSAgICB1MTZ4OCwKKy0gICAgbTE2eDgsCistICAg IGkzMng0LAorLSAgICB1MzJ4NCwKKy0gICAgZjMyeDQsCistICAgIG0zMng0LAorLSAgICBpNjR4 MiwKKy0gICAgdTY0eDIsCistICAgIGY2NHgyLAorLSAgICBtNjR4MiwKKy0gICAgaTEyOHgxLAor LSAgICB1MTI4eDEsCistICAgIG0xMjh4MSB8IGludG86IGk4eDE2LAorLSAgICB1OHgxNiwKKy0g ICAgaTE2eDgsCistICAgIHUxNng4LAorLSAgICBpMzJ4NCwKKy0gICAgdTMyeDQsCistICAgIGYz Mng0LAorLSAgICBpNjR4MiwKKy0gICAgdTY0eDIsCistICAgIGY2NHgyLAorLSAgICBpMTI4eDEs CistICAgIHUxMjh4MSB8IHRlc3Q6IHRlc3RfdjEyOAorLSk7CistCistaW1wbF9hcmNoISgKKy0g ICAgW3Bvd2VycGNbInBvd2VycGMiXTogdmVjdG9yX2Jvb2xfY2hhcl0sCistICAgIFtwb3dlcnBj NjRbInBvd2VycGM2NCJdOiB2ZWN0b3JfYm9vbF9jaGFyXSB8IGZyb206IG04eDE2LAorLSAgICBt MTZ4OCwKKy0gICAgbTMyeDQsCistICAgIG02NHgyLAorLSAgICBtMTI4eDEgfCBpbnRvOiBpOHgx NiwKKy0gICAgdTh4MTYsCistICAgIGkxNng4LAorLSAgICB1MTZ4OCwKKy0gICAgaTMyeDQsCist ICAgIHUzMng0LAorLSAgICBmMzJ4NCwKKy0gICAgaTY0eDIsCistICAgIHU2NHgyLAorLSAgICBm NjR4MiwKKy0gICAgaTEyOHgxLAorLSAgICB1MTI4eDEsCistICAgIC8vIE1hc2tzOgorLSAgICBt OHgxNiB8IHRlc3Q6IHRlc3RfdjEyOAorLSk7CistCistaW1wbF9hcmNoISgKKy0gICAgW3Bvd2Vy cGNbInBvd2VycGMiXTogdmVjdG9yX2Jvb2xfc2hvcnRdLAorLSAgICBbcG93ZXJwYzY0WyJwb3dl cnBjNjQiXTogdmVjdG9yX2Jvb2xfc2hvcnRdIHwgZnJvbTogbTE2eDgsCistICAgIG0zMng0LAor LSAgICBtNjR4MiwKKy0gICAgbTEyOHgxIHwgaW50bzogaTh4MTYsCistICAgIHU4eDE2LAorLSAg ICBpMTZ4OCwKKy0gICAgdTE2eDgsCistICAgIGkzMng0LAorLSAgICB1MzJ4NCwKKy0gICAgZjMy eDQsCistICAgIGk2NHgyLAorLSAgICB1NjR4MiwKKy0gICAgZjY0eDIsCistICAgIGkxMjh4MSwK Ky0gICAgdTEyOHgxLAorLSAgICAvLyBNYXNrczoKKy0gICAgbTh4MTYsCistICAgIG0xNng4IHwg dGVzdDogdGVzdF92MTI4CistKTsKKy0KKy1pbXBsX2FyY2ghKAorLSAgICBbcG93ZXJwY1sicG93 ZXJwYyJdOiB2ZWN0b3JfYm9vbF9pbnRdLAorLSAgICBbcG93ZXJwYzY0WyJwb3dlcnBjNjQiXTog dmVjdG9yX2Jvb2xfaW50XSB8IGZyb206IG0zMng0LAorLSAgICBtNjR4MiwKKy0gICAgbTEyOHgx IHwgaW50bzogaTh4MTYsCistICAgIHU4eDE2LAorLSAgICBpMTZ4OCwKKy0gICAgdTE2eDgsCist ICAgIGkzMng0LAorLSAgICB1MzJ4NCwKKy0gICAgZjMyeDQsCistICAgIGk2NHgyLAorLSAgICB1 NjR4MiwKKy0gICAgZjY0eDIsCistICAgIGkxMjh4MSwKKy0gICAgdTEyOHgxLAorLSAgICAvLyBN YXNrczoKKy0gICAgbTh4MTYsCistICAgIG0xNng4LAorLSAgICBtMzJ4NCB8IHRlc3Q6IHRlc3Rf djEyOAorLSk7CistCistaW1wbF9hcmNoISgKKy0gICAgW3Bvd2VycGM2NFsicG93ZXJwYzY0Il06 IHZlY3Rvcl9ib29sX2xvbmddIHwgZnJvbTogbTY0eDIsCistICAgIG0xMjh4MSB8IGludG86IGk4 eDE2LAorLSAgICB1OHgxNiwKKy0gICAgaTE2eDgsCistICAgIHUxNng4LAorLSAgICBpMzJ4NCwK Ky0gICAgdTMyeDQsCistICAgIGYzMng0LAorLSAgICBpNjR4MiwKKy0gICAgdTY0eDIsCistICAg IGY2NHgyLAorLSAgICBpMTI4eDEsCistICAgIHUxMjh4MSwKKy0gICAgLy8gTWFza3M6CistICAg IG04eDE2LAorLSAgICBtMTZ4OCwKKy0gICAgbTMyeDQsCistICAgIG02NHgyIHwgdGVzdDogdGVz dF92MTI4CistKTsKKy0KKy0vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLS8vIEltcGxlbWVudGF0 aW9ucyBmb3IgdGhlIDI1Ni1iaXQgd2lkZSB2ZWN0b3IgdHlwZXMKKy0KKy1pbXBsX2FyY2ghKAor LSAgICBbeDg2WyJ4ODYiXTogX19tMjU2LCBfX20yNTZpLCBfX20yNTZkXSwKKy0gICAgW3g4Nl82 NFsieDg2XzY0Il06IF9fbTI1NiwgX19tMjU2aSwgX19tMjU2ZF0gfCBmcm9tOiBpOHgzMiwKKy0g ICAgdTh4MzIsCistICAgIG04eDMyLAorLSAgICBpMTZ4MTYsCistICAgIHUxNngxNiwKKy0gICAg bTE2eDE2LAorLSAgICBpMzJ4OCwKKy0gICAgdTMyeDgsCistICAgIGYzMng4LAorLSAgICBtMzJ4 OCwKKy0gICAgaTY0eDQsCistICAgIHU2NHg0LAorLSAgICBmNjR4NCwKKy0gICAgbTY0eDQsCist ICAgIGkxMjh4MiwKKy0gICAgdTEyOHgyLAorLSAgICBtMTI4eDIgfCBpbnRvOiBpOHgzMiwKKy0g ICAgdTh4MzIsCistICAgIGkxNngxNiwKKy0gICAgdTE2eDE2LAorLSAgICBpMzJ4OCwKKy0gICAg dTMyeDgsCistICAgIGYzMng4LAorLSAgICBpNjR4NCwKKy0gICAgdTY0eDQsCistICAgIGY2NHg0 LAorLSAgICBpMTI4eDIsCistICAgIHUxMjh4MiB8IHRlc3Q6IHRlc3RfdjI1NgorLSk7CistCist Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy0vLyBGSVhNRTogSW1wbGVtZW50YXRpb25zIGZvciB0 aGUgNTEyLWJpdCB3aWRlIHZlY3RvciB0eXBlcworZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1 c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9pbnRvX2JpdHMvbWFjcm9zLnJzIGIvdGhpcmRfcGFydHkv cnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2ludG9fYml0cy9tYWNyb3MucnMKK2RlbGV0ZWQgZmls ZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBp L2ludG9fYml0cy9tYWNyb3MucnMKKysrKyAvZGV2L251bGwKK0BAIC0xLDc0ICswLDAgQEAKKy0v LyEgTWFjcm9zIGltcGxlbWVudGluZyBgRnJvbUJpdHNgCistCistbWFjcm9fcnVsZXMhIGltcGxf ZnJvbV9iaXRzXyB7CistICAgICgkaWQ6aWRlbnRbJHRlc3RfdHQ6dHRdOiAkZnJvbV90eTppZGVu dCkgPT4geworLSAgICAgICAgaW1wbCBjcmF0ZTo6YXBpOjppbnRvX2JpdHM6OkZyb21CaXRzPCRm cm9tX3R5PiBmb3IgJGlkIHsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBm biBmcm9tX2JpdHMoeDogJGZyb21fdHkpIC0+IFNlbGYgeworLSAgICAgICAgICAgICAgICB1bnNh ZmUgeyBjcmF0ZTo6bWVtOjp0cmFuc211dGUoeCkgfQorLSAgICAgICAgICAgIH0KKy0gICAgICAg IH0KKy0KKy0gICAgICAgIHRlc3RfaWYhIHsKKy0gICAgICAgICAgICAkdGVzdF90dDoKKy0gICAg ICAgICAgICBwYXN0ZTo6aXRlbSEgeworLSAgICAgICAgICAgICAgICBwdWIgbW9kIFs8JGlkIF9m cm9tX2JpdHNfICRmcm9tX3R5Pl0geworLSAgICAgICAgICAgICAgICAgICAgdXNlIHN1cGVyOjoq OworLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2Fz bTMyIiksIHRlc3QpXQorLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cih0YXJnZXRfYXJj aCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCistICAgICAgICAgICAgICAgICAgICBm biB0ZXN0KCkgeworLSAgICAgICAgICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6eworLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICBwdHI6OntyZWFkX3VuYWxpZ25lZH0sCistICAgICAgICAg ICAgICAgICAgICAgICAgICAgIG1lbTo6e3NpemVfb2YsIHplcm9lZH0KKy0gICAgICAgICAgICAg ICAgICAgICAgICB9OworLSAgICAgICAgICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6SW50b0Jp dHM7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShzaXplX29mOjo8JGlkPigp LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV9vZjo6PCRmcm9tX3R5 PigpKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIGlzIHNhZmUgYmVjYXVzZSB3 ZSBuZXZlciBjcmVhdGUgYSByZWZlcmVuY2UgdG8KKy0gICAgICAgICAgICAgICAgICAgICAgICAv LyB1bmluaXRpYWxpemVkIG1lbW9yeToKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgYTog JGZyb21fdHkgPSB1bnNhZmUgeyB6ZXJvZWQoKSB9OworLQorLSAgICAgICAgICAgICAgICAgICAg ICAgIGxldCBiXzA6ICRpZCA9IGNyYXRlOjpGcm9tQml0czo6ZnJvbV9iaXRzKGEpOworLSAgICAg ICAgICAgICAgICAgICAgICAgIGxldCBiXzE6ICRpZCA9IGEuaW50b19iaXRzKCk7CistCistICAg ICAgICAgICAgICAgICAgICAgICAgLy8gQ2hlY2sgdGhhdCB0aGVzZSBhcmUgYnl0ZS13aXNlIGVx dWFsLCB0aGF0IGlzLAorLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoYXQgdGhlIGJpdCBw YXR0ZXJucyBhcmUgaWRlbnRpY2FsOgorLSAgICAgICAgICAgICAgICAgICAgICAgIGZvciBpIGlu IDAuLnNpemVfb2Y6OjwkaWQ+KCkgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBU aGlzIGlzIHNhZmUgYmVjYXVzZSB3ZSBvbmx5IHJlYWQgaW5pdGlhbGl6ZWQKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgLy8gbWVtb3J5IGluIGJvdW5kcy4gQWxzbywgdGFraW5nIGEgcmVm ZXJlbmNlIHRvCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGBiX2lgIGlzIG9rIGJl Y2F1c2UgdGhlIGZpZWxkcyBhcmUgaW5pdGlhbGl6ZWQuCistICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHVuc2FmZSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgYl8w X3Y6IHU4ID0gcmVhZF91bmFsaWduZWQoCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKCZiXzAgYXMgKmNvbnN0ICRpZCBhcyAqY29uc3QgdTgpCistICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIC53cmFwcGluZ19hZGQoaSkKKy0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBs ZXQgYl8xX3Y6IHU4ID0gcmVhZF91bmFsaWduZWQoCistICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKCZiXzEgYXMgKmNvbnN0ICRpZCBhcyAqY29uc3QgdTgpCistICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC53cmFwcGluZ19hZGQoaSkKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBhc3NlcnRfZXEhKGJfMF92LCBiXzFfdik7CistICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH0KKy0gICAgICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICB9 CistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgIH07 CistfQorLQorLW1hY3JvX3J1bGVzISBpbXBsX2Zyb21fYml0cyB7CistICAgICgkaWQ6aWRlbnRb JHRlc3RfdHQ6dHRdOiAkKCRmcm9tX3R5OmlkZW50KSwqKSA9PiB7CistICAgICAgICAkKAorLSAg ICAgICAgICAgIGltcGxfZnJvbV9iaXRzXyEoJGlkWyR0ZXN0X3R0XTogJGZyb21fdHkpOworLSAg ICAgICAgKSoKKy0gICAgfQorLX0KKy0KKy0jW2FsbG93KHVudXNlZCldCistbWFjcm9fcnVsZXMh IGltcGxfaW50b19iaXRzIHsKKy0gICAgKCRpZDppZGVudFskdGVzdF90dDp0dF06ICQoJGZyb21f dHk6aWRlbnQpLCopID0+IHsKKy0gICAgICAgICQoCistICAgICAgICAgICAgaW1wbF9mcm9tX2Jp dHNfISgkZnJvbV90eVskdGVzdF90dF06ICRpZCk7CistICAgICAgICApKgorLSAgICB9CistfQor ZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9pbnRvX2Jp dHMvdjEyOC5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9pbnRvX2Jp dHMvdjEyOC5ycworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9y dXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvaW50b19iaXRzL3YxMjgucnMKKysrKyAvZGV2L251bGwK K0BAIC0xLDIzMiArMCwwIEBACistLy8hIGBGcm9tQml0c2AgYW5kIGBJbnRvQml0c2AgaW1wbGVt ZW50YXRpb25zIGZvciBwb3J0YWJsZSAxMjgtYml0IHdpZGUgdmVjdG9ycworLSNbcnVzdGZtdDo6 c2tpcF0KKy0KKy0jW2FsbG93KHVudXNlZCldICAvLyB3YXNtX2JpbmRnZW5fdGVzdAorLXVzZSBj cmF0ZTo6KjsKKy0KKy1pbXBsX2Zyb21fYml0cyEoCistICAgIGk4eDE2W3Rlc3RfdjEyOF06IHU4 eDE2LAorLSAgICBtOHgxNiwKKy0gICAgaTE2eDgsCistICAgIHUxNng4LAorLSAgICBtMTZ4OCwK Ky0gICAgaTMyeDQsCistICAgIHUzMng0LAorLSAgICBmMzJ4NCwKKy0gICAgbTMyeDQsCistICAg IGk2NHgyLAorLSAgICB1NjR4MiwKKy0gICAgZjY0eDIsCistICAgIG02NHgyLAorLSAgICBpMTI4 eDEsCistICAgIHUxMjh4MSwKKy0gICAgbTEyOHgxCistKTsKKy1pbXBsX2Zyb21fYml0cyEoCist ICAgIHU4eDE2W3Rlc3RfdjEyOF06IGk4eDE2LAorLSAgICBtOHgxNiwKKy0gICAgaTE2eDgsCist ICAgIHUxNng4LAorLSAgICBtMTZ4OCwKKy0gICAgaTMyeDQsCistICAgIHUzMng0LAorLSAgICBm MzJ4NCwKKy0gICAgbTMyeDQsCistICAgIGk2NHgyLAorLSAgICB1NjR4MiwKKy0gICAgZjY0eDIs CistICAgIG02NHgyLAorLSAgICBpMTI4eDEsCistICAgIHUxMjh4MSwKKy0gICAgbTEyOHgxCist KTsKKy1pbXBsX2Zyb21fYml0cyEobTh4MTZbdGVzdF92MTI4XTogbTE2eDgsIG0zMng0LCBtNjR4 MiwgbTEyOHgxKTsKKy0KKy1pbXBsX2Zyb21fYml0cyEoCistICAgIGkxNng4W3Rlc3RfdjEyOF06 IGk4eDE2LAorLSAgICB1OHgxNiwKKy0gICAgbTh4MTYsCistICAgIHUxNng4LAorLSAgICBtMTZ4 OCwKKy0gICAgaTMyeDQsCistICAgIHUzMng0LAorLSAgICBmMzJ4NCwKKy0gICAgbTMyeDQsCist ICAgIGk2NHgyLAorLSAgICB1NjR4MiwKKy0gICAgZjY0eDIsCistICAgIG02NHgyLAorLSAgICBp MTI4eDEsCistICAgIHUxMjh4MSwKKy0gICAgbTEyOHgxCistKTsKKy1pbXBsX2Zyb21fYml0cyEo CistICAgIHUxNng4W3Rlc3RfdjEyOF06IGk4eDE2LAorLSAgICB1OHgxNiwKKy0gICAgbTh4MTYs CistICAgIGkxNng4LAorLSAgICBtMTZ4OCwKKy0gICAgaTMyeDQsCistICAgIHUzMng0LAorLSAg ICBmMzJ4NCwKKy0gICAgbTMyeDQsCistICAgIGk2NHgyLAorLSAgICB1NjR4MiwKKy0gICAgZjY0 eDIsCistICAgIG02NHgyLAorLSAgICBpMTI4eDEsCistICAgIHUxMjh4MSwKKy0gICAgbTEyOHgx CistKTsKKy1pbXBsX2Zyb21fYml0cyEobTE2eDhbdGVzdF92MTI4XTogbTMyeDQsIG02NHgyLCBt MTI4eDEpOworLQorLWltcGxfZnJvbV9iaXRzISgKKy0gICAgaTMyeDRbdGVzdF92MTI4XTogaTh4 MTYsCistICAgIHU4eDE2LAorLSAgICBtOHgxNiwKKy0gICAgaTE2eDgsCistICAgIHUxNng4LAor LSAgICBtMTZ4OCwKKy0gICAgdTMyeDQsCistICAgIGYzMng0LAorLSAgICBtMzJ4NCwKKy0gICAg aTY0eDIsCistICAgIHU2NHgyLAorLSAgICBmNjR4MiwKKy0gICAgbTY0eDIsCistICAgIGkxMjh4 MSwKKy0gICAgdTEyOHgxLAorLSAgICBtMTI4eDEKKy0pOworLWltcGxfZnJvbV9iaXRzISgKKy0g ICAgdTMyeDRbdGVzdF92MTI4XTogaTh4MTYsCistICAgIHU4eDE2LAorLSAgICBtOHgxNiwKKy0g ICAgaTE2eDgsCistICAgIHUxNng4LAorLSAgICBtMTZ4OCwKKy0gICAgaTMyeDQsCistICAgIGYz Mng0LAorLSAgICBtMzJ4NCwKKy0gICAgaTY0eDIsCistICAgIHU2NHgyLAorLSAgICBmNjR4MiwK Ky0gICAgbTY0eDIsCistICAgIGkxMjh4MSwKKy0gICAgdTEyOHgxLAorLSAgICBtMTI4eDEKKy0p OworLWltcGxfZnJvbV9iaXRzISgKKy0gICAgZjMyeDRbdGVzdF92MTI4XTogaTh4MTYsCistICAg IHU4eDE2LAorLSAgICBtOHgxNiwKKy0gICAgaTE2eDgsCistICAgIHUxNng4LAorLSAgICBtMTZ4 OCwKKy0gICAgaTMyeDQsCistICAgIHUzMng0LAorLSAgICBtMzJ4NCwKKy0gICAgaTY0eDIsCist ICAgIHU2NHgyLAorLSAgICBmNjR4MiwKKy0gICAgbTY0eDIsCistICAgIGkxMjh4MSwKKy0gICAg dTEyOHgxLAorLSAgICBtMTI4eDEKKy0pOworLWltcGxfZnJvbV9iaXRzIShtMzJ4NFt0ZXN0X3Yx MjhdOiBtNjR4MiwgbTEyOHgxKTsKKy0KKy1pbXBsX2Zyb21fYml0cyEoCistICAgIGk2NHgyW3Rl c3RfdjEyOF06IGk4eDE2LAorLSAgICB1OHgxNiwKKy0gICAgbTh4MTYsCistICAgIGkxNng4LAor LSAgICB1MTZ4OCwKKy0gICAgbTE2eDgsCistICAgIGkzMng0LAorLSAgICB1MzJ4NCwKKy0gICAg ZjMyeDQsCistICAgIG0zMng0LAorLSAgICB1NjR4MiwKKy0gICAgZjY0eDIsCistICAgIG02NHgy LAorLSAgICBpMTI4eDEsCistICAgIHUxMjh4MSwKKy0gICAgbTEyOHgxCistKTsKKy1pbXBsX2Zy b21fYml0cyEoCistICAgIHU2NHgyW3Rlc3RfdjEyOF06IGk4eDE2LAorLSAgICB1OHgxNiwKKy0g ICAgbTh4MTYsCistICAgIGkxNng4LAorLSAgICB1MTZ4OCwKKy0gICAgbTE2eDgsCistICAgIGkz Mng0LAorLSAgICB1MzJ4NCwKKy0gICAgZjMyeDQsCistICAgIG0zMng0LAorLSAgICBpNjR4MiwK Ky0gICAgZjY0eDIsCistICAgIG02NHgyLAorLSAgICBpMTI4eDEsCistICAgIHUxMjh4MSwKKy0g ICAgbTEyOHgxCistKTsKKy1pbXBsX2Zyb21fYml0cyEoCistICAgIGY2NHgyW3Rlc3RfdjEyOF06 IGk4eDE2LAorLSAgICB1OHgxNiwKKy0gICAgbTh4MTYsCistICAgIGkxNng4LAorLSAgICB1MTZ4 OCwKKy0gICAgbTE2eDgsCistICAgIGkzMng0LAorLSAgICB1MzJ4NCwKKy0gICAgZjMyeDQsCist ICAgIG0zMng0LAorLSAgICBpNjR4MiwKKy0gICAgdTY0eDIsCistICAgIG02NHgyLAorLSAgICBp MTI4eDEsCistICAgIHUxMjh4MSwKKy0gICAgbTEyOHgxCistKTsKKy1pbXBsX2Zyb21fYml0cyEo bTY0eDJbdGVzdF92MTI4XTogbTEyOHgxKTsKKy0KKy1pbXBsX2Zyb21fYml0cyEoCistICAgIGkx Mjh4MVt0ZXN0X3YxMjhdOiBpOHgxNiwKKy0gICAgdTh4MTYsCistICAgIG04eDE2LAorLSAgICBp MTZ4OCwKKy0gICAgdTE2eDgsCistICAgIG0xNng4LAorLSAgICBpMzJ4NCwKKy0gICAgdTMyeDQs CistICAgIGYzMng0LAorLSAgICBtMzJ4NCwKKy0gICAgaTY0eDIsCistICAgIHU2NHgyLAorLSAg ICBmNjR4MiwKKy0gICAgbTY0eDIsCistICAgIHUxMjh4MSwKKy0gICAgbTEyOHgxCistKTsKKy1p bXBsX2Zyb21fYml0cyEoCistICAgIHUxMjh4MVt0ZXN0X3YxMjhdOiBpOHgxNiwKKy0gICAgdTh4 MTYsCistICAgIG04eDE2LAorLSAgICBpMTZ4OCwKKy0gICAgdTE2eDgsCistICAgIG0xNng4LAor LSAgICBpMzJ4NCwKKy0gICAgdTMyeDQsCistICAgIGYzMng0LAorLSAgICBtMzJ4NCwKKy0gICAg aTY0eDIsCistICAgIHU2NHgyLAorLSAgICBmNjR4MiwKKy0gICAgbTY0eDIsCistICAgIGkxMjh4 MSwKKy0gICAgbTEyOHgxCistKTsKKy0vLyBub3RlOiBtMTI4eDEgY2Fubm90IGJlIGNvbnN0cnVj dGVkIGZyb20gYWxsIHRoZSBvdGhlciBtYXNrcyBiaXQgcGF0dGVybnMgaW4KKy0vLyBoZXJlCitk aWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2ludG9fYml0 cy92MTYucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvaW50b19iaXRz L3YxNi5ycworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0 L3BhY2tlZF9zaW1kL3NyYy9hcGkvaW50b19iaXRzL3YxNi5ycworKysrIC9kZXYvbnVsbAorQEAg LTEsOSArMCwwIEBACistLy8hIGBGcm9tQml0c2AgYW5kIGBJbnRvQml0c2AgaW1wbGVtZW50YXRp b25zIGZvciBwb3J0YWJsZSAxNi1iaXQgd2lkZSB2ZWN0b3JzCistI1tydXN0Zm10Ojpza2lwXQor LQorLSNbYWxsb3codW51c2VkKV0gIC8vIHdhc21fYmluZGdlbl90ZXN0CistdXNlIGNyYXRlOjoq OworLQorLWltcGxfZnJvbV9iaXRzIShpOHgyW3Rlc3RfdjE2XTogdTh4MiwgbTh4Mik7CistaW1w bF9mcm9tX2JpdHMhKHU4eDJbdGVzdF92MTZdOiBpOHgyLCBtOHgyKTsKKy0vLyBub3RlOiBtOHgy IGNhbm5vdCBiZSBjb25zdHJ1Y3RlZCBmcm9tIGFsbCBpOHgyIG9yIHU4eDIgYml0IHBhdHRlcm5z CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2ludG9f Yml0cy92MjU2LnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2ludG9f Yml0cy92MjU2LnJzCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5 L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9pbnRvX2JpdHMvdjI1Ni5ycworKysrIC9kZXYvbnVs bAorQEAgLTEsMjMyICswLDAgQEAKKy0vLyEgYEZyb21CaXRzYCBhbmQgYEludG9CaXRzYCBpbXBs ZW1lbnRhdGlvbnMgZm9yIHBvcnRhYmxlIDI1Ni1iaXQgd2lkZSB2ZWN0b3JzCistI1tydXN0Zm10 Ojpza2lwXQorLQorLSNbYWxsb3codW51c2VkKV0gIC8vIHdhc21fYmluZGdlbl90ZXN0CistdXNl IGNyYXRlOjoqOworLQorLWltcGxfZnJvbV9iaXRzISgKKy0gICAgaTh4MzJbdGVzdF92MjU2XTog dTh4MzIsCistICAgIG04eDMyLAorLSAgICBpMTZ4MTYsCistICAgIHUxNngxNiwKKy0gICAgbTE2 eDE2LAorLSAgICBpMzJ4OCwKKy0gICAgdTMyeDgsCistICAgIGYzMng4LAorLSAgICBtMzJ4OCwK Ky0gICAgaTY0eDQsCistICAgIHU2NHg0LAorLSAgICBmNjR4NCwKKy0gICAgbTY0eDQsCistICAg IGkxMjh4MiwKKy0gICAgdTEyOHgyLAorLSAgICBtMTI4eDIKKy0pOworLWltcGxfZnJvbV9iaXRz ISgKKy0gICAgdTh4MzJbdGVzdF92MjU2XTogaTh4MzIsCistICAgIG04eDMyLAorLSAgICBpMTZ4 MTYsCistICAgIHUxNngxNiwKKy0gICAgbTE2eDE2LAorLSAgICBpMzJ4OCwKKy0gICAgdTMyeDgs CistICAgIGYzMng4LAorLSAgICBtMzJ4OCwKKy0gICAgaTY0eDQsCistICAgIHU2NHg0LAorLSAg ICBmNjR4NCwKKy0gICAgbTY0eDQsCistICAgIGkxMjh4MiwKKy0gICAgdTEyOHgyLAorLSAgICBt MTI4eDIKKy0pOworLWltcGxfZnJvbV9iaXRzIShtOHgzMlt0ZXN0X3YyNTZdOiBtMTZ4MTYsIG0z Mng4LCBtNjR4NCwgbTEyOHgyKTsKKy0KKy1pbXBsX2Zyb21fYml0cyEoCistICAgIGkxNngxNlt0 ZXN0X3YyNTZdOiBpOHgzMiwKKy0gICAgdTh4MzIsCistICAgIG04eDMyLAorLSAgICB1MTZ4MTYs CistICAgIG0xNngxNiwKKy0gICAgaTMyeDgsCistICAgIHUzMng4LAorLSAgICBmMzJ4OCwKKy0g ICAgbTMyeDgsCistICAgIGk2NHg0LAorLSAgICB1NjR4NCwKKy0gICAgZjY0eDQsCistICAgIG02 NHg0LAorLSAgICBpMTI4eDIsCistICAgIHUxMjh4MiwKKy0gICAgbTEyOHgyCistKTsKKy1pbXBs X2Zyb21fYml0cyEoCistICAgIHUxNngxNlt0ZXN0X3YyNTZdOiBpOHgzMiwKKy0gICAgdTh4MzIs CistICAgIG04eDMyLAorLSAgICBpMTZ4MTYsCistICAgIG0xNngxNiwKKy0gICAgaTMyeDgsCist ICAgIHUzMng4LAorLSAgICBmMzJ4OCwKKy0gICAgbTMyeDgsCistICAgIGk2NHg0LAorLSAgICB1 NjR4NCwKKy0gICAgZjY0eDQsCistICAgIG02NHg0LAorLSAgICBpMTI4eDIsCistICAgIHUxMjh4 MiwKKy0gICAgbTEyOHgyCistKTsKKy1pbXBsX2Zyb21fYml0cyEobTE2eDE2W3Rlc3RfdjI1Nl06 IG0zMng4LCBtNjR4NCwgbTEyOHgyKTsKKy0KKy1pbXBsX2Zyb21fYml0cyEoCistICAgIGkzMng4 W3Rlc3RfdjI1Nl06IGk4eDMyLAorLSAgICB1OHgzMiwKKy0gICAgbTh4MzIsCistICAgIGkxNngx NiwKKy0gICAgdTE2eDE2LAorLSAgICBtMTZ4MTYsCistICAgIHUzMng4LAorLSAgICBmMzJ4OCwK Ky0gICAgbTMyeDgsCistICAgIGk2NHg0LAorLSAgICB1NjR4NCwKKy0gICAgZjY0eDQsCistICAg IG02NHg0LAorLSAgICBpMTI4eDIsCistICAgIHUxMjh4MiwKKy0gICAgbTEyOHgyCistKTsKKy1p bXBsX2Zyb21fYml0cyEoCistICAgIHUzMng4W3Rlc3RfdjI1Nl06IGk4eDMyLAorLSAgICB1OHgz MiwKKy0gICAgbTh4MzIsCistICAgIGkxNngxNiwKKy0gICAgdTE2eDE2LAorLSAgICBtMTZ4MTYs CistICAgIGkzMng4LAorLSAgICBmMzJ4OCwKKy0gICAgbTMyeDgsCistICAgIGk2NHg0LAorLSAg ICB1NjR4NCwKKy0gICAgZjY0eDQsCistICAgIG02NHg0LAorLSAgICBpMTI4eDIsCistICAgIHUx Mjh4MiwKKy0gICAgbTEyOHgyCistKTsKKy1pbXBsX2Zyb21fYml0cyEoCistICAgIGYzMng4W3Rl c3RfdjI1Nl06IGk4eDMyLAorLSAgICB1OHgzMiwKKy0gICAgbTh4MzIsCistICAgIGkxNngxNiwK Ky0gICAgdTE2eDE2LAorLSAgICBtMTZ4MTYsCistICAgIGkzMng4LAorLSAgICB1MzJ4OCwKKy0g ICAgbTMyeDgsCistICAgIGk2NHg0LAorLSAgICB1NjR4NCwKKy0gICAgZjY0eDQsCistICAgIG02 NHg0LAorLSAgICBpMTI4eDIsCistICAgIHUxMjh4MiwKKy0gICAgbTEyOHgyCistKTsKKy1pbXBs X2Zyb21fYml0cyEobTMyeDhbdGVzdF92MjU2XTogbTY0eDQsIG0xMjh4Mik7CistCistaW1wbF9m cm9tX2JpdHMhKAorLSAgICBpNjR4NFt0ZXN0X3YyNTZdOiBpOHgzMiwKKy0gICAgdTh4MzIsCist ICAgIG04eDMyLAorLSAgICBpMTZ4MTYsCistICAgIHUxNngxNiwKKy0gICAgbTE2eDE2LAorLSAg ICBpMzJ4OCwKKy0gICAgdTMyeDgsCistICAgIGYzMng4LAorLSAgICBtMzJ4OCwKKy0gICAgdTY0 eDQsCistICAgIGY2NHg0LAorLSAgICBtNjR4NCwKKy0gICAgaTEyOHgyLAorLSAgICB1MTI4eDIs CistICAgIG0xMjh4MgorLSk7CistaW1wbF9mcm9tX2JpdHMhKAorLSAgICB1NjR4NFt0ZXN0X3Yy NTZdOiBpOHgzMiwKKy0gICAgdTh4MzIsCistICAgIG04eDMyLAorLSAgICBpMTZ4MTYsCistICAg IHUxNngxNiwKKy0gICAgbTE2eDE2LAorLSAgICBpMzJ4OCwKKy0gICAgdTMyeDgsCistICAgIGYz Mng4LAorLSAgICBtMzJ4OCwKKy0gICAgaTY0eDQsCistICAgIGY2NHg0LAorLSAgICBtNjR4NCwK Ky0gICAgaTEyOHgyLAorLSAgICB1MTI4eDIsCistICAgIG0xMjh4MgorLSk7CistaW1wbF9mcm9t X2JpdHMhKAorLSAgICBmNjR4NFt0ZXN0X3YyNTZdOiBpOHgzMiwKKy0gICAgdTh4MzIsCistICAg IG04eDMyLAorLSAgICBpMTZ4MTYsCistICAgIHUxNngxNiwKKy0gICAgbTE2eDE2LAorLSAgICBp MzJ4OCwKKy0gICAgdTMyeDgsCistICAgIGYzMng4LAorLSAgICBtMzJ4OCwKKy0gICAgaTY0eDQs CistICAgIHU2NHg0LAorLSAgICBtNjR4NCwKKy0gICAgaTEyOHgyLAorLSAgICB1MTI4eDIsCist ICAgIG0xMjh4MgorLSk7CistaW1wbF9mcm9tX2JpdHMhKG02NHg0W3Rlc3RfdjI1Nl06IG0xMjh4 Mik7CistCistaW1wbF9mcm9tX2JpdHMhKAorLSAgICBpMTI4eDJbdGVzdF92MjU2XTogaTh4MzIs CistICAgIHU4eDMyLAorLSAgICBtOHgzMiwKKy0gICAgaTE2eDE2LAorLSAgICB1MTZ4MTYsCist ICAgIG0xNngxNiwKKy0gICAgaTMyeDgsCistICAgIHUzMng4LAorLSAgICBmMzJ4OCwKKy0gICAg bTMyeDgsCistICAgIGk2NHg0LAorLSAgICB1NjR4NCwKKy0gICAgZjY0eDQsCistICAgIG02NHg0 LAorLSAgICB1MTI4eDIsCistICAgIG0xMjh4MgorLSk7CistaW1wbF9mcm9tX2JpdHMhKAorLSAg ICB1MTI4eDJbdGVzdF92MjU2XTogaTh4MzIsCistICAgIHU4eDMyLAorLSAgICBtOHgzMiwKKy0g ICAgaTE2eDE2LAorLSAgICB1MTZ4MTYsCistICAgIG0xNngxNiwKKy0gICAgaTMyeDgsCistICAg IHUzMng4LAorLSAgICBmMzJ4OCwKKy0gICAgbTMyeDgsCistICAgIGk2NHg0LAorLSAgICB1NjR4 NCwKKy0gICAgZjY0eDQsCistICAgIG02NHg0LAorLSAgICBpMTI4eDIsCistICAgIG0xMjh4Mgor LSk7CistLy8gbm90ZTogbTEyOHgyIGNhbm5vdCBiZSBjb25zdHJ1Y3RlZCBmcm9tIGFsbCB0aGUg b3RoZXIgbWFza3MgYml0IHBhdHRlcm5zIGluCistLy8gaGVyZQorZGlmZiAtLWdpdCBhL3RoaXJk X3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9pbnRvX2JpdHMvdjMyLnJzIGIvdGhpcmRf cGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2ludG9fYml0cy92MzIucnMKK2RlbGV0ZWQg ZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMv YXBpL2ludG9fYml0cy92MzIucnMKKysrKyAvZGV2L251bGwKK0BAIC0xLDEzICswLDAgQEAKKy0v LyEgYEZyb21CaXRzYCBhbmQgYEludG9CaXRzYCBpbXBsZW1lbnRhdGlvbnMgZm9yIHBvcnRhYmxl IDMyLWJpdCB3aWRlIHZlY3RvcnMKKy0jW3J1c3RmbXQ6OnNraXBdCistCistI1thbGxvdyh1bnVz ZWQpXSAgLy8gd2FzbV9iaW5kZ2VuX3Rlc3QKKy11c2UgY3JhdGU6Oio7CistCistaW1wbF9mcm9t X2JpdHMhKGk4eDRbdGVzdF92MzJdOiB1OHg0LCBtOHg0LCBpMTZ4MiwgdTE2eDIsIG0xNngyKTsK Ky1pbXBsX2Zyb21fYml0cyEodTh4NFt0ZXN0X3YzMl06IGk4eDQsIG04eDQsIGkxNngyLCB1MTZ4 MiwgbTE2eDIpOworLWltcGxfZnJvbV9iaXRzIShtOHg0W3Rlc3RfdjMyXTogbTE2eDIpOworLQor LWltcGxfZnJvbV9iaXRzIShpMTZ4Mlt0ZXN0X3YzMl06IGk4eDQsIHU4eDQsIG04eDQsIHUxNngy LCBtMTZ4Mik7CistaW1wbF9mcm9tX2JpdHMhKHUxNngyW3Rlc3RfdjMyXTogaTh4NCwgdTh4NCwg bTh4NCwgaTE2eDIsIG0xNngyKTsKKy0vLyBub3RlOiBtMTZ4MiBjYW5ub3QgYmUgY29uc3RydWN0 ZWQgZnJvbSBhbGwgbTh4NCBiaXQgcGF0dGVybnMKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9y dXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvaW50b19iaXRzL3Y1MTIucnMgYi90aGlyZF9wYXJ0eS9y dXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvaW50b19iaXRzL3Y1MTIucnMKK2RlbGV0ZWQgZmlsZSBt b2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2lu dG9fYml0cy92NTEyLnJzCisrKysgL2Rldi9udWxsCitAQCAtMSwyMzIgKzAsMCBAQAorLS8vISBg RnJvbUJpdHNgIGFuZCBgSW50b0JpdHNgIGltcGxlbWVudGF0aW9ucyBmb3IgcG9ydGFibGUgNTEy LWJpdCB3aWRlIHZlY3RvcnMKKy0jW3J1c3RmbXQ6OnNraXBdCistCistI1thbGxvdyh1bnVzZWQp XSAgLy8gd2FzbV9iaW5kZ2VuX3Rlc3QKKy11c2UgY3JhdGU6Oio7CistCistaW1wbF9mcm9tX2Jp dHMhKAorLSAgICBpOHg2NFt0ZXN0X3Y1MTJdOiB1OHg2NCwKKy0gICAgbTh4NjQsCistICAgIGkx NngzMiwKKy0gICAgdTE2eDMyLAorLSAgICBtMTZ4MzIsCistICAgIGkzMngxNiwKKy0gICAgdTMy eDE2LAorLSAgICBmMzJ4MTYsCistICAgIG0zMngxNiwKKy0gICAgaTY0eDgsCistICAgIHU2NHg4 LAorLSAgICBmNjR4OCwKKy0gICAgbTY0eDgsCistICAgIGkxMjh4NCwKKy0gICAgdTEyOHg0LAor LSAgICBtMTI4eDQKKy0pOworLWltcGxfZnJvbV9iaXRzISgKKy0gICAgdTh4NjRbdGVzdF92NTEy XTogaTh4NjQsCistICAgIG04eDY0LAorLSAgICBpMTZ4MzIsCistICAgIHUxNngzMiwKKy0gICAg bTE2eDMyLAorLSAgICBpMzJ4MTYsCistICAgIHUzMngxNiwKKy0gICAgZjMyeDE2LAorLSAgICBt MzJ4MTYsCistICAgIGk2NHg4LAorLSAgICB1NjR4OCwKKy0gICAgZjY0eDgsCistICAgIG02NHg4 LAorLSAgICBpMTI4eDQsCistICAgIHUxMjh4NCwKKy0gICAgbTEyOHg0CistKTsKKy1pbXBsX2Zy b21fYml0cyEobTh4NjRbdGVzdF92NTEyXTogbTE2eDMyLCBtMzJ4MTYsIG02NHg4LCBtMTI4eDQp OworLQorLWltcGxfZnJvbV9iaXRzISgKKy0gICAgaTE2eDMyW3Rlc3RfdjUxMl06IGk4eDY0LAor LSAgICB1OHg2NCwKKy0gICAgbTh4NjQsCistICAgIHUxNngzMiwKKy0gICAgbTE2eDMyLAorLSAg ICBpMzJ4MTYsCistICAgIHUzMngxNiwKKy0gICAgZjMyeDE2LAorLSAgICBtMzJ4MTYsCistICAg IGk2NHg4LAorLSAgICB1NjR4OCwKKy0gICAgZjY0eDgsCistICAgIG02NHg4LAorLSAgICBpMTI4 eDQsCistICAgIHUxMjh4NCwKKy0gICAgbTEyOHg0CistKTsKKy1pbXBsX2Zyb21fYml0cyEoCist ICAgIHUxNngzMlt0ZXN0X3Y1MTJdOiBpOHg2NCwKKy0gICAgdTh4NjQsCistICAgIG04eDY0LAor LSAgICBpMTZ4MzIsCistICAgIG0xNngzMiwKKy0gICAgaTMyeDE2LAorLSAgICB1MzJ4MTYsCist ICAgIGYzMngxNiwKKy0gICAgbTMyeDE2LAorLSAgICBpNjR4OCwKKy0gICAgdTY0eDgsCistICAg IGY2NHg4LAorLSAgICBtNjR4OCwKKy0gICAgaTEyOHg0LAorLSAgICB1MTI4eDQsCistICAgIG0x Mjh4NAorLSk7CistaW1wbF9mcm9tX2JpdHMhKG0xNngzMlt0ZXN0X3Y1MTJdOiBtMzJ4MTYsIG02 NHg4LCBtMTI4eDQpOworLQorLWltcGxfZnJvbV9iaXRzISgKKy0gICAgaTMyeDE2W3Rlc3RfdjUx Ml06IGk4eDY0LAorLSAgICB1OHg2NCwKKy0gICAgbTh4NjQsCistICAgIGkxNngzMiwKKy0gICAg dTE2eDMyLAorLSAgICBtMTZ4MzIsCistICAgIHUzMngxNiwKKy0gICAgZjMyeDE2LAorLSAgICBt MzJ4MTYsCistICAgIGk2NHg4LAorLSAgICB1NjR4OCwKKy0gICAgZjY0eDgsCistICAgIG02NHg4 LAorLSAgICBpMTI4eDQsCistICAgIHUxMjh4NCwKKy0gICAgbTEyOHg0CistKTsKKy1pbXBsX2Zy b21fYml0cyEoCistICAgIHUzMngxNlt0ZXN0X3Y1MTJdOiBpOHg2NCwKKy0gICAgdTh4NjQsCist ICAgIG04eDY0LAorLSAgICBpMTZ4MzIsCistICAgIHUxNngzMiwKKy0gICAgbTE2eDMyLAorLSAg ICBpMzJ4MTYsCistICAgIGYzMngxNiwKKy0gICAgbTMyeDE2LAorLSAgICBpNjR4OCwKKy0gICAg dTY0eDgsCistICAgIGY2NHg4LAorLSAgICBtNjR4OCwKKy0gICAgaTEyOHg0LAorLSAgICB1MTI4 eDQsCistICAgIG0xMjh4NAorLSk7CistaW1wbF9mcm9tX2JpdHMhKAorLSAgICBmMzJ4MTZbdGVz dF92NTEyXTogaTh4NjQsCistICAgIHU4eDY0LAorLSAgICBtOHg2NCwKKy0gICAgaTE2eDMyLAor LSAgICB1MTZ4MzIsCistICAgIG0xNngzMiwKKy0gICAgaTMyeDE2LAorLSAgICB1MzJ4MTYsCist ICAgIG0zMngxNiwKKy0gICAgaTY0eDgsCistICAgIHU2NHg4LAorLSAgICBmNjR4OCwKKy0gICAg bTY0eDgsCistICAgIGkxMjh4NCwKKy0gICAgdTEyOHg0LAorLSAgICBtMTI4eDQKKy0pOworLWlt cGxfZnJvbV9iaXRzIShtMzJ4MTZbdGVzdF92NTEyXTogbTY0eDgsIG0xMjh4NCk7CistCistaW1w bF9mcm9tX2JpdHMhKAorLSAgICBpNjR4OFt0ZXN0X3Y1MTJdOiBpOHg2NCwKKy0gICAgdTh4NjQs CistICAgIG04eDY0LAorLSAgICBpMTZ4MzIsCistICAgIHUxNngzMiwKKy0gICAgbTE2eDMyLAor LSAgICBpMzJ4MTYsCistICAgIHUzMngxNiwKKy0gICAgZjMyeDE2LAorLSAgICBtMzJ4MTYsCist ICAgIHU2NHg4LAorLSAgICBmNjR4OCwKKy0gICAgbTY0eDgsCistICAgIGkxMjh4NCwKKy0gICAg dTEyOHg0LAorLSAgICBtMTI4eDQKKy0pOworLWltcGxfZnJvbV9iaXRzISgKKy0gICAgdTY0eDhb dGVzdF92NTEyXTogaTh4NjQsCistICAgIHU4eDY0LAorLSAgICBtOHg2NCwKKy0gICAgaTE2eDMy LAorLSAgICB1MTZ4MzIsCistICAgIG0xNngzMiwKKy0gICAgaTMyeDE2LAorLSAgICB1MzJ4MTYs CistICAgIGYzMngxNiwKKy0gICAgbTMyeDE2LAorLSAgICBpNjR4OCwKKy0gICAgZjY0eDgsCist ICAgIG02NHg4LAorLSAgICBpMTI4eDQsCistICAgIHUxMjh4NCwKKy0gICAgbTEyOHg0CistKTsK Ky1pbXBsX2Zyb21fYml0cyEoCistICAgIGY2NHg4W3Rlc3RfdjUxMl06IGk4eDY0LAorLSAgICB1 OHg2NCwKKy0gICAgbTh4NjQsCistICAgIGkxNngzMiwKKy0gICAgdTE2eDMyLAorLSAgICBtMTZ4 MzIsCistICAgIGkzMngxNiwKKy0gICAgdTMyeDE2LAorLSAgICBmMzJ4MTYsCistICAgIG0zMngx NiwKKy0gICAgaTY0eDgsCistICAgIHU2NHg4LAorLSAgICBtNjR4OCwKKy0gICAgaTEyOHg0LAor LSAgICB1MTI4eDQsCistICAgIG0xMjh4NAorLSk7CistaW1wbF9mcm9tX2JpdHMhKG02NHg4W3Rl c3RfdjUxMl06IG0xMjh4NCk7CistCistaW1wbF9mcm9tX2JpdHMhKAorLSAgICBpMTI4eDRbdGVz dF92NTEyXTogaTh4NjQsCistICAgIHU4eDY0LAorLSAgICBtOHg2NCwKKy0gICAgaTE2eDMyLAor LSAgICB1MTZ4MzIsCistICAgIG0xNngzMiwKKy0gICAgaTMyeDE2LAorLSAgICB1MzJ4MTYsCist ICAgIGYzMngxNiwKKy0gICAgbTMyeDE2LAorLSAgICBpNjR4OCwKKy0gICAgdTY0eDgsCistICAg IGY2NHg4LAorLSAgICBtNjR4OCwKKy0gICAgdTEyOHg0LAorLSAgICBtMTI4eDQKKy0pOworLWlt cGxfZnJvbV9iaXRzISgKKy0gICAgdTEyOHg0W3Rlc3RfdjUxMl06IGk4eDY0LAorLSAgICB1OHg2 NCwKKy0gICAgbTh4NjQsCistICAgIGkxNngzMiwKKy0gICAgdTE2eDMyLAorLSAgICBtMTZ4MzIs CistICAgIGkzMngxNiwKKy0gICAgdTMyeDE2LAorLSAgICBmMzJ4MTYsCistICAgIG0zMngxNiwK Ky0gICAgaTY0eDgsCistICAgIHU2NHg4LAorLSAgICBmNjR4OCwKKy0gICAgbTY0eDgsCistICAg IGkxMjh4NCwKKy0gICAgbTEyOHg0CistKTsKKy0vLyBub3RlOiBtMTI4eDQgY2Fubm90IGJlIGNv bnN0cnVjdGVkIGZyb20gYWxsIHRoZSBvdGhlciBtYXNrcyBiaXQgcGF0dGVybnMgaW4KKy0vLyBo ZXJlCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2lu dG9fYml0cy92NjQucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvaW50 b19iaXRzL3Y2NC5ycworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0 eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvaW50b19iaXRzL3Y2NC5ycworKysrIC9kZXYvbnVs bAorQEAgLTEsMTggKzAsMCBAQAorLS8vISBgRnJvbUJpdHNgIGFuZCBgSW50b0JpdHNgIGltcGxl bWVudGF0aW9ucyBmb3IgcG9ydGFibGUgNjQtYml0IHdpZGUgdmVjdG9ycworLSNbcnVzdGZtdDo6 c2tpcF0KKy0KKy0jW2FsbG93KHVudXNlZCldICAvLyB3YXNtX2JpbmRnZW5fdGVzdAorLXVzZSBj cmF0ZTo6KjsKKy0KKy1pbXBsX2Zyb21fYml0cyEoaTh4OFt0ZXN0X3Y2NF06IHU4eDgsIG04eDgs IGkxNng0LCB1MTZ4NCwgbTE2eDQsIGkzMngyLCB1MzJ4MiwgZjMyeDIsIG0zMngyKTsKKy1pbXBs X2Zyb21fYml0cyEodTh4OFt0ZXN0X3Y2NF06IGk4eDgsIG04eDgsIGkxNng0LCB1MTZ4NCwgbTE2 eDQsIGkzMngyLCB1MzJ4MiwgZjMyeDIsIG0zMngyKTsKKy1pbXBsX2Zyb21fYml0cyEobTh4OFt0 ZXN0X3Y2NF06IG0xNng0LCBtMzJ4Mik7CistCistaW1wbF9mcm9tX2JpdHMhKGkxNng0W3Rlc3Rf djY0XTogaTh4OCwgdTh4OCwgbTh4OCwgdTE2eDQsIG0xNng0LCBpMzJ4MiwgdTMyeDIsIGYzMngy LCBtMzJ4Mik7CistaW1wbF9mcm9tX2JpdHMhKHUxNng0W3Rlc3RfdjY0XTogaTh4OCwgdTh4OCwg bTh4OCwgaTE2eDQsIG0xNng0LCBpMzJ4MiwgdTMyeDIsIGYzMngyLCBtMzJ4Mik7CistaW1wbF9m cm9tX2JpdHMhKG0xNng0W3Rlc3RfdjY0XTogbTMyeDIpOworLQorLWltcGxfZnJvbV9iaXRzIShp MzJ4Mlt0ZXN0X3Y2NF06IGk4eDgsIHU4eDgsIG04eDgsIGkxNng0LCB1MTZ4NCwgbTE2eDQsIHUz MngyLCBmMzJ4MiwgbTMyeDIpOworLWltcGxfZnJvbV9iaXRzISh1MzJ4Mlt0ZXN0X3Y2NF06IGk4 eDgsIHU4eDgsIG04eDgsIGkxNng0LCB1MTZ4NCwgbTE2eDQsIGkzMngyLCBmMzJ4MiwgbTMyeDIp OworLWltcGxfZnJvbV9iaXRzIShmMzJ4Mlt0ZXN0X3Y2NF06IGk4eDgsIHU4eDgsIG04eDgsIGkx Nng0LCB1MTZ4NCwgbTE2eDQsIGkzMngyLCB1MzJ4MiwgbTMyeDIpOworLS8vIG5vdGU6IG0zMngy IGNhbm5vdCBiZSBjb25zdHJ1Y3RlZCBmcm9tIGFsbCBtMTZ4NCBvciBtOHg4IGJpdCBwYXR0ZXJu cworZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9tYXRo LnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL21hdGgucnMKK2RlbGV0 ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9z cmMvYXBpL21hdGgucnMKKysrKyAvZGV2L251bGwKK0BAIC0xLDQgKzAsMCBAQAorLS8vISBJbXBs ZW1lbnRzIHZlcnRpY2FsIG1hdGggb3BlcmF0aW9ucworLQorLSNbbWFjcm9fdXNlXQorLW1vZCBm bG9hdDsKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkv bWF0aC9mbG9hdC5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9tYXRo L2Zsb2F0LnJzCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1 c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9tYXRoL2Zsb2F0LnJzCisrKysgL2Rldi9udWxsCitAQCAt MSw2MSArMCwwIEBACistLy8hIEltcGxlbWVudHMgdmVydGljYWwgZmxvYXRpbmctcG9pbnQgbWF0 aCBvcGVyYXRpb25zLgorLQorLSNbbWFjcm9fdXNlXQorLW1vZCBhYnM7CistCistI1ttYWNyb191 c2VdCistbW9kIGNvbnN0czsKKy0KKy0jW21hY3JvX3VzZV0KKy1tb2QgY29zOworLQorLSNbbWFj cm9fdXNlXQorLW1vZCBleHA7CistCistI1ttYWNyb191c2VdCistbW9kIHBvd2Y7CistCistI1tt YWNyb191c2VdCistbW9kIGxuOworLQorLSNbbWFjcm9fdXNlXQorLW1vZCBtdWxfYWRkOworLQor LSNbbWFjcm9fdXNlXQorLW1vZCBtdWxfYWRkZTsKKy0KKy0jW21hY3JvX3VzZV0KKy1tb2QgcmVj cHJlOworLQorLSNbbWFjcm9fdXNlXQorLW1vZCByc3FydGU7CistCistI1ttYWNyb191c2VdCist bW9kIHNpbjsKKy0KKy0jW21hY3JvX3VzZV0KKy1tb2Qgc3FydDsKKy0KKy0jW21hY3JvX3VzZV0K Ky1tb2Qgc3FydGU7CistCistbWFjcm9fcnVsZXMhIGltcGxfZmxvYXRfY2F0ZWdvcnkgeworLSAg ICAoWyRlbGVtX3R5OmlkZW50OyAkZWxlbV9jb3VudDpleHByXTogJGlkOmlkZW50LCAkbWFza190 eTppZGVudCkgPT4geworLSAgICAgICAgaW1wbCAkaWQgeworLSAgICAgICAgICAgICNbaW5saW5l XQorLSAgICAgICAgICAgIHB1YiBmbiBpc19uYW4oc2VsZikgLT4gJG1hc2tfdHkgeworLSAgICAg ICAgICAgICAgICBzZWxmLm5lKHNlbGYpCistICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAg ICNbaW5saW5lXQorLSAgICAgICAgICAgIHB1YiBmbiBpc19pbmZpbml0ZShzZWxmKSAtPiAkbWFz a190eSB7CistICAgICAgICAgICAgICAgIHNlbGYuZXEoU2VsZjo6SU5GSU5JVFkpIHwgc2VsZi5l cShTZWxmOjpORUdfSU5GSU5JVFkpCistICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgICNb aW5saW5lXQorLSAgICAgICAgICAgIHB1YiBmbiBpc19maW5pdGUoc2VsZikgLT4gJG1hc2tfdHkg eworLSAgICAgICAgICAgICAgICAhKHNlbGYuaXNfbmFuKCkgfCBzZWxmLmlzX2luZmluaXRlKCkp CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICB9OworLX0KK2RpZmYgLS1naXQgYS90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvbWF0aC9mbG9hdC9hYnMucnMgYi90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvbWF0aC9mbG9hdC9hYnMucnMKK2Rl bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2lt ZC9zcmMvYXBpL21hdGgvZmxvYXQvYWJzLnJzCisrKysgL2Rldi9udWxsCitAQCAtMSwzMSArMCww IEBACistLy8hIEltcGxlbWVudHMgdmVydGljYWwgKGxhbmUtd2lzZSkgZmxvYXRpbmctcG9pbnQg YGFic2AuCistCistbWFjcm9fcnVsZXMhIGltcGxfbWF0aF9mbG9hdF9hYnMgeworLSAgICAoWyRl bGVtX3R5OmlkZW50OyAkZWxlbV9jb3VudDpleHByXTogJGlkOmlkZW50IHwgJHRlc3RfdHQ6dHQp ID0+IHsKKy0gICAgICAgIGltcGwgJGlkIHsKKy0gICAgICAgICAgICAvLy8gQWJzb2x1dGUgdmFs dWUuCistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgcHViIGZuIGFicyhzZWxm KSAtPiBTZWxmIHsKKy0gICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpjb2RlZ2VuOjptYXRoOjpm bG9hdDo6YWJzOjpBYnM7CistICAgICAgICAgICAgICAgIEFiczo6YWJzKHNlbGYpCistICAgICAg ICAgICAgfQorLSAgICAgICAgfQorLQorLSAgICAgICAgdGVzdF9pZiF7CistICAgICAgICAgICAg JHRlc3RfdHQ6CistICAgICAgICAgICAgcGFzdGU6Oml0ZW0hIHsKKy0gICAgICAgICAgICAgICAg cHViIG1vZCBbPCRpZCBfbWF0aF9hYnM+XSB7CistICAgICAgICAgICAgICAgICAgICB1c2Ugc3Vw ZXI6Oio7CistICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9 ICJ3YXNtMzIiKSwgdGVzdCldICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2Fz bV9iaW5kZ2VuX3Rlc3QpXQorLSAgICAgICAgICAgICAgICAgICAgZm4gYWJzKCkgeworLSAgICAg ICAgICAgICAgICAgICAgICAgIGxldCBvID0gJGlkOjpzcGxhdCgxIGFzICRlbGVtX3R5KTsKKy0g ICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG8sIG8uYWJzKCkpOworLQorLSAgICAg ICAgICAgICAgICAgICAgICAgIGxldCBtbyA9ICRpZDo6c3BsYXQoLTEgYXMgJGVsZW1fdHkpOwor LSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEobywgbW8uYWJzKCkpOworLSAgICAg ICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgfQorLSAg ICAgICAgfQorLSAgICB9OworLX0KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tl ZF9zaW1kL3NyYy9hcGkvbWF0aC9mbG9hdC9jb25zdHMucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3Bh Y2tlZF9zaW1kL3NyYy9hcGkvbWF0aC9mbG9hdC9jb25zdHMucnMKK2RlbGV0ZWQgZmlsZSBtb2Rl IDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL21hdGgv ZmxvYXQvY29uc3RzLnJzCisrKysgL2Rldi9udWxsCitAQCAtMSw3NCArMCwwIEBACistbWFjcm9f cnVsZXMhIGltcGxfZmxvYXRfY29uc3RzIHsKKy0gICAgKFskZWxlbV90eTppZGVudDsgJGVsZW1f Y291bnQ6ZXhwcl06ICRpZDppZGVudCkgPT4geworLSAgICAgICAgaW1wbCAkaWQgeworLSAgICAg ICAgICAgIC8vLyBNYWNoaW5lIGVwc2lsb24gdmFsdWUuCistICAgICAgICAgICAgcHViIGNvbnN0 IEVQU0lMT046ICRpZCA9ICRpZDo6c3BsYXQoY29yZTo6JGVsZW1fdHk6OkVQU0lMT04pOworLQor LSAgICAgICAgICAgIC8vLyBTbWFsbGVzdCBmaW5pdGUgdmFsdWUuCistICAgICAgICAgICAgcHVi IGNvbnN0IE1JTjogJGlkID0gJGlkOjpzcGxhdChjb3JlOjokZWxlbV90eTo6TUlOKTsKKy0KKy0g ICAgICAgICAgICAvLy8gU21hbGxlc3QgcG9zaXRpdmUgbm9ybWFsIHZhbHVlLgorLSAgICAgICAg ICAgIHB1YiBjb25zdCBNSU5fUE9TSVRJVkU6ICRpZCA9ICRpZDo6c3BsYXQoY29yZTo6JGVsZW1f dHk6Ok1JTl9QT1NJVElWRSk7CistCistICAgICAgICAgICAgLy8vIExhcmdlc3QgZmluaXRlIHZh bHVlLgorLSAgICAgICAgICAgIHB1YiBjb25zdCBNQVg6ICRpZCA9ICRpZDo6c3BsYXQoY29yZTo6 JGVsZW1fdHk6Ok1BWCk7CistCistICAgICAgICAgICAgLy8vIE5vdCBhIE51bWJlciAoTmFOKS4K Ky0gICAgICAgICAgICBwdWIgY29uc3QgTkFOOiAkaWQgPSAkaWQ6OnNwbGF0KGNvcmU6OiRlbGVt X3R5OjpOQU4pOworLQorLSAgICAgICAgICAgIC8vLyBJbmZpbml0eSAo4oieKS4KKy0gICAgICAg ICAgICBwdWIgY29uc3QgSU5GSU5JVFk6ICRpZCA9ICRpZDo6c3BsYXQoY29yZTo6JGVsZW1fdHk6 OklORklOSVRZKTsKKy0KKy0gICAgICAgICAgICAvLy8gTmVnYXRpdmUgaW5maW5pdHkgKC3iiJ4p LgorLSAgICAgICAgICAgIHB1YiBjb25zdCBORUdfSU5GSU5JVFk6ICRpZCA9ICRpZDo6c3BsYXQo Y29yZTo6JGVsZW1fdHk6Ok5FR19JTkZJTklUWSk7CistCistICAgICAgICAgICAgLy8vIEFyY2hp bWVkZXMnIGNvbnN0YW50ICjPgCkKKy0gICAgICAgICAgICBwdWIgY29uc3QgUEk6ICRpZCA9ICRp ZDo6c3BsYXQoY29yZTo6JGVsZW1fdHk6OmNvbnN0czo6UEkpOworLQorLSAgICAgICAgICAgIC8v LyDPgC8yCistICAgICAgICAgICAgcHViIGNvbnN0IEZSQUNfUElfMjogJGlkID0gJGlkOjpzcGxh dChjb3JlOjokZWxlbV90eTo6Y29uc3RzOjpGUkFDX1BJXzIpOworLQorLSAgICAgICAgICAgIC8v LyDPgC8zCistICAgICAgICAgICAgcHViIGNvbnN0IEZSQUNfUElfMzogJGlkID0gJGlkOjpzcGxh dChjb3JlOjokZWxlbV90eTo6Y29uc3RzOjpGUkFDX1BJXzMpOworLQorLSAgICAgICAgICAgIC8v LyDPgC80CistICAgICAgICAgICAgcHViIGNvbnN0IEZSQUNfUElfNDogJGlkID0gJGlkOjpzcGxh dChjb3JlOjokZWxlbV90eTo6Y29uc3RzOjpGUkFDX1BJXzQpOworLQorLSAgICAgICAgICAgIC8v LyDPgC82CistICAgICAgICAgICAgcHViIGNvbnN0IEZSQUNfUElfNjogJGlkID0gJGlkOjpzcGxh dChjb3JlOjokZWxlbV90eTo6Y29uc3RzOjpGUkFDX1BJXzYpOworLQorLSAgICAgICAgICAgIC8v LyDPgC84CistICAgICAgICAgICAgcHViIGNvbnN0IEZSQUNfUElfODogJGlkID0gJGlkOjpzcGxh dChjb3JlOjokZWxlbV90eTo6Y29uc3RzOjpGUkFDX1BJXzgpOworLQorLSAgICAgICAgICAgIC8v LyAxL8+ACistICAgICAgICAgICAgcHViIGNvbnN0IEZSQUNfMV9QSTogJGlkID0gJGlkOjpzcGxh dChjb3JlOjokZWxlbV90eTo6Y29uc3RzOjpGUkFDXzFfUEkpOworLQorLSAgICAgICAgICAgIC8v LyAyL8+ACistICAgICAgICAgICAgcHViIGNvbnN0IEZSQUNfMl9QSTogJGlkID0gJGlkOjpzcGxh dChjb3JlOjokZWxlbV90eTo6Y29uc3RzOjpGUkFDXzJfUEkpOworLQorLSAgICAgICAgICAgIC8v LyAyL3NxcnQoz4ApCistICAgICAgICAgICAgcHViIGNvbnN0IEZSQUNfMl9TUVJUX1BJOiAkaWQg PSAkaWQ6OnNwbGF0KGNvcmU6OiRlbGVtX3R5Ojpjb25zdHM6OkZSQUNfMl9TUVJUX1BJKTsKKy0K Ky0gICAgICAgICAgICAvLy8gc3FydCgyKQorLSAgICAgICAgICAgIHB1YiBjb25zdCBTUVJUXzI6 ICRpZCA9ICRpZDo6c3BsYXQoY29yZTo6JGVsZW1fdHk6OmNvbnN0czo6U1FSVF8yKTsKKy0KKy0g ICAgICAgICAgICAvLy8gMS9zcXJ0KDIpCistICAgICAgICAgICAgcHViIGNvbnN0IEZSQUNfMV9T UVJUXzI6ICRpZCA9ICRpZDo6c3BsYXQoY29yZTo6JGVsZW1fdHk6OmNvbnN0czo6RlJBQ18xX1NR UlRfMik7CistCistICAgICAgICAgICAgLy8vIEV1bGVyJ3MgbnVtYmVyIChlKQorLSAgICAgICAg ICAgIHB1YiBjb25zdCBFOiAkaWQgPSAkaWQ6OnNwbGF0KGNvcmU6OiRlbGVtX3R5Ojpjb25zdHM6 OkUpOworLQorLSAgICAgICAgICAgIC8vLyBsb2c8c3ViPjI8L3N1Yj4oZSkKKy0gICAgICAgICAg ICBwdWIgY29uc3QgTE9HMl9FOiAkaWQgPSAkaWQ6OnNwbGF0KGNvcmU6OiRlbGVtX3R5Ojpjb25z dHM6OkxPRzJfRSk7CistCistICAgICAgICAgICAgLy8vIGxvZzxzdWI+MTA8L3N1Yj4oZSkKKy0g ICAgICAgICAgICBwdWIgY29uc3QgTE9HMTBfRTogJGlkID0gJGlkOjpzcGxhdChjb3JlOjokZWxl bV90eTo6Y29uc3RzOjpMT0cxMF9FKTsKKy0KKy0gICAgICAgICAgICAvLy8gbG4oMikKKy0gICAg ICAgICAgICBwdWIgY29uc3QgTE5fMjogJGlkID0gJGlkOjpzcGxhdChjb3JlOjokZWxlbV90eTo6 Y29uc3RzOjpMTl8yKTsKKy0KKy0gICAgICAgICAgICAvLy8gbG4oMTApCistICAgICAgICAgICAg cHViIGNvbnN0IExOXzEwOiAkaWQgPSAkaWQ6OnNwbGF0KGNvcmU6OiRlbGVtX3R5Ojpjb25zdHM6 OkxOXzEwKTsKKy0gICAgICAgIH0KKy0gICAgfTsKKy19CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFy dHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL21hdGgvZmxvYXQvY29zLnJzIGIvdGhpcmRfcGFy dHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL21hdGgvZmxvYXQvY29zLnJzCitkZWxldGVkIGZp bGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2Fw aS9tYXRoL2Zsb2F0L2Nvcy5ycworKysrIC9kZXYvbnVsbAorQEAgLTEsNDQgKzAsMCBAQAorLS8v ISBJbXBsZW1lbnRzIHZlcnRpY2FsIChsYW5lLXdpc2UpIGZsb2F0aW5nLXBvaW50IGBjb3NgLgor LQorLW1hY3JvX3J1bGVzISBpbXBsX21hdGhfZmxvYXRfY29zIHsKKy0gICAgKFskZWxlbV90eTpp ZGVudDsgJGVsZW1fY291bnQ6ZXhwcl06ICRpZDppZGVudCB8ICR0ZXN0X3R0OnR0KSA9PiB7Cist ICAgICAgICBpbXBsICRpZCB7CistICAgICAgICAgICAgLy8vIENvc2luZS4KKy0gICAgICAgICAg ICAjW2lubGluZV0KKy0gICAgICAgICAgICBwdWIgZm4gY29zKHNlbGYpIC0+IFNlbGYgeworLSAg ICAgICAgICAgICAgICB1c2UgY3JhdGU6OmNvZGVnZW46Om1hdGg6OmZsb2F0Ojpjb3M6OkNvczsK Ky0gICAgICAgICAgICAgICAgQ29zOjpjb3Moc2VsZikKKy0gICAgICAgICAgICB9CistCistICAg ICAgICAgICAgLy8vIENvc2luZSBvZiBgc2VsZiAqIFBJYC4KKy0gICAgICAgICAgICAjW2lubGlu ZV0KKy0gICAgICAgICAgICBwdWIgZm4gY29zX3BpKHNlbGYpIC0+IFNlbGYgeworLSAgICAgICAg ICAgICAgICB1c2UgY3JhdGU6OmNvZGVnZW46Om1hdGg6OmZsb2F0Ojpjb3NfcGk6OkNvc1BpOwor LSAgICAgICAgICAgICAgICBDb3NQaTo6Y29zX3BpKHNlbGYpCistICAgICAgICAgICAgfQorLSAg ICAgICAgfQorLQorLSAgICAgICAgdGVzdF9pZiF7CistICAgICAgICAgICAgJHRlc3RfdHQ6Cist ICAgICAgICAgICAgcGFzdGU6Oml0ZW0hIHsKKy0gICAgICAgICAgICAgICAgcHViIG1vZCBbPCRp ZCBfbWF0aF9jb3M+XSB7CistICAgICAgICAgICAgICAgICAgICB1c2Ugc3VwZXI6Oio7CistICAg ICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwg dGVzdCldICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rl c3QpXQorLSAgICAgICAgICAgICAgICAgICAgZm4gY29zKCkgeworLSAgICAgICAgICAgICAgICAg ICAgICAgIHVzZSBjcmF0ZTo6JGVsZW1fdHk6OmNvbnN0czo6UEk7CistICAgICAgICAgICAgICAg ICAgICAgICAgbGV0IHogPSAkaWQ6OnNwbGF0KDAgYXMgJGVsZW1fdHkpOworLSAgICAgICAgICAg ICAgICAgICAgICAgIGxldCBvID0gJGlkOjpzcGxhdCgxIGFzICRlbGVtX3R5KTsKKy0gICAgICAg ICAgICAgICAgICAgICAgICBsZXQgcCA9ICRpZDo6c3BsYXQoUEkgYXMgJGVsZW1fdHkpOworLSAg ICAgICAgICAgICAgICAgICAgICAgIGxldCBwaCA9ICRpZDo6c3BsYXQoUEkgYXMgJGVsZW1fdHkg LyAyLik7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHpfciA9ICRpZDo6c3BsYXQoKFBJ IGFzICRlbGVtX3R5IC8gMi4pLmNvcygpKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQg b19yID0gJGlkOjpzcGxhdCgoUEkgYXMgJGVsZW1fdHkpLmNvcygpKTsKKy0KKy0gICAgICAgICAg ICAgICAgICAgICAgICBhc3NlcnRfZXEhKG8sIHouY29zKCkpOworLSAgICAgICAgICAgICAgICAg ICAgICAgIGFzc2VydF9lcSEoel9yLCBwaC5jb3MoKSk7CistICAgICAgICAgICAgICAgICAgICAg ICAgYXNzZXJ0X2VxIShvX3IsIHAuY29zKCkpOworLSAgICAgICAgICAgICAgICAgICAgfQorLSAg ICAgICAgICAgICAgICB9CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICB9OworLX0K K2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvbWF0aC9m bG9hdC9leHAucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvbWF0aC9m bG9hdC9leHAucnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkv cnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL21hdGgvZmxvYXQvZXhwLnJzCisrKysgL2Rldi9udWxs CitAQCAtMSwzMyArMCwwIEBACistLy8hIEltcGxlbWVudHMgdmVydGljYWwgKGxhbmUtd2lzZSkg ZmxvYXRpbmctcG9pbnQgYGV4cGAuCistCistbWFjcm9fcnVsZXMhIGltcGxfbWF0aF9mbG9hdF9l eHAgeworLSAgICAoWyRlbGVtX3R5OmlkZW50OyAkZWxlbV9jb3VudDpleHByXTogJGlkOmlkZW50 IHwgJHRlc3RfdHQ6dHQpID0+IHsKKy0gICAgICAgIGltcGwgJGlkIHsKKy0gICAgICAgICAgICAv Ly8gUmV0dXJucyB0aGUgZXhwb25lbnRpYWwgZnVuY3Rpb24gb2YgYHNlbGZgOiBgZV4oc2VsZilg LgorLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIHB1YiBmbiBleHAoc2VsZikg LT4gU2VsZiB7CistICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6Y29kZWdlbjo6bWF0aDo6Zmxv YXQ6OmV4cDo6RXhwOworLSAgICAgICAgICAgICAgICBFeHA6OmV4cChzZWxmKQorLSAgICAgICAg ICAgIH0KKy0gICAgICAgIH0KKy0KKy0gICAgICAgIHRlc3RfaWYheworLSAgICAgICAgICAgICR0 ZXN0X3R0OgorLSAgICAgICAgICAgIHBhc3RlOjppdGVtISB7CistICAgICAgICAgICAgICAgIHB1 YiBtb2QgWzwkaWQgX21hdGhfZXhwPl0geworLSAgICAgICAgICAgICAgICAgICAgdXNlIHN1cGVy OjoqOworLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAi d2FzbTMyIiksIHRlc3QpXSAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21f YmluZGdlbl90ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAgIGZuIGV4cCgpIHsKKy0gICAgICAg ICAgICAgICAgICAgICAgICBsZXQgeiA9ICRpZDo6c3BsYXQoMCBhcyAkZWxlbV90eSk7CistICAg ICAgICAgICAgICAgICAgICAgICAgbGV0IG8gPSAkaWQ6OnNwbGF0KDEgYXMgJGVsZW1fdHkpOwor LSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEobywgei5leHAoKSk7CistCistICAg ICAgICAgICAgICAgICAgICAgICAgbGV0IGUgPSAkaWQ6OnNwbGF0KGNyYXRlOjpmNjQ6OmNvbnN0 czo6RSBhcyAkZWxlbV90eSk7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRvbCA9ICRp ZDo6c3BsYXQoMi40ZS00IGFzICRlbGVtX3R5KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBh c3NlcnQhKChlIC0gby5leHAoKSkuYWJzKCkubGUodG9sKS5hbGwoKSk7CistICAgICAgICAgICAg ICAgICAgICB9CistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICB9CistICAgICAgICB9 CistICAgIH07CistfQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQv c3JjL2FwaS9tYXRoL2Zsb2F0L2xuLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9z cmMvYXBpL21hdGgvZmxvYXQvbG4ucnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEv dGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL21hdGgvZmxvYXQvbG4ucnMKKysr KyAvZGV2L251bGwKK0BAIC0xLDMzICswLDAgQEAKKy0vLyEgSW1wbGVtZW50cyB2ZXJ0aWNhbCAo bGFuZS13aXNlKSBmbG9hdGluZy1wb2ludCBgbG5gLgorLQorLW1hY3JvX3J1bGVzISBpbXBsX21h dGhfZmxvYXRfbG4geworLSAgICAoWyRlbGVtX3R5OmlkZW50OyAkZWxlbV9jb3VudDpleHByXTog JGlkOmlkZW50IHwgJHRlc3RfdHQ6dHQpID0+IHsKKy0gICAgICAgIGltcGwgJGlkIHsKKy0gICAg ICAgICAgICAvLy8gUmV0dXJucyB0aGUgbmF0dXJhbCBsb2dhcml0aG0gb2YgYHNlbGZgLgorLSAg ICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIHB1YiBmbiBsbihzZWxmKSAtPiBTZWxm IHsKKy0gICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpjb2RlZ2VuOjptYXRoOjpmbG9hdDo6bG46 OkxuOworLSAgICAgICAgICAgICAgICBMbjo6bG4oc2VsZikKKy0gICAgICAgICAgICB9CistICAg ICAgICB9CistCistICAgICAgICB0ZXN0X2lmIXsKKy0gICAgICAgICAgICAkdGVzdF90dDoKKy0g ICAgICAgICAgICBwYXN0ZTo6aXRlbSEgeworLSAgICAgICAgICAgICAgICBwdWIgbW9kIFs8JGlk IF9tYXRoX2xuPl0geworLSAgICAgICAgICAgICAgICAgICAgdXNlIHN1cGVyOjoqOworLSAgICAg ICAgICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRl c3QpXSAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0 KV0KKy0gICAgICAgICAgICAgICAgICAgIGZuIGxuKCkgeworLSAgICAgICAgICAgICAgICAgICAg ICAgIGxldCB6ID0gJGlkOjpzcGxhdCgwIGFzICRlbGVtX3R5KTsKKy0gICAgICAgICAgICAgICAg ICAgICAgICBsZXQgbyA9ICRpZDo6c3BsYXQoMSBhcyAkZWxlbV90eSk7CistICAgICAgICAgICAg ICAgICAgICAgICAgYXNzZXJ0X2VxISh6LCBvLmxuKCkpOworLQorLSAgICAgICAgICAgICAgICAg ICAgICAgIGxldCBlID0gJGlkOjpzcGxhdChjcmF0ZTo6ZjY0Ojpjb25zdHM6OkUgYXMgJGVsZW1f dHkpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0b2wgPSAkaWQ6OnNwbGF0KDIuNGUt NCBhcyAkZWxlbV90eSk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0ISgobyAtIGUu bG4oKSkuYWJzKCkubGUodG9sKS5hbGwoKSk7CistICAgICAgICAgICAgICAgICAgICB9CistICAg ICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgIH07CistfQor ZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9tYXRoL2Zs b2F0L211bF9hZGQucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvbWF0 aC9mbG9hdC9tdWxfYWRkLnJzCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJk X3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9tYXRoL2Zsb2F0L211bF9hZGQucnMKKysr KyAvZGV2L251bGwKK0BAIC0xLDQ0ICswLDAgQEAKKy0vLyEgSW1wbGVtZW50cyB2ZXJ0aWNhbCAo bGFuZS13aXNlKSBmbG9hdGluZy1wb2ludCBgbXVsX2FkZGAuCistCistbWFjcm9fcnVsZXMhIGlt cGxfbWF0aF9mbG9hdF9tdWxfYWRkIHsKKy0gICAgKFskZWxlbV90eTppZGVudDsgJGVsZW1fY291 bnQ6ZXhwcl06ICRpZDppZGVudCB8ICR0ZXN0X3R0OnR0KSA9PiB7CistICAgICAgICBpbXBsICRp ZCB7CistICAgICAgICAgICAgLy8vIEZ1c2VkIG11bHRpcGx5IGFkZDogYHNlbGYgKiB5ICsgemAK Ky0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBwdWIgZm4gbXVsX2FkZChzZWxm LCB5OiBTZWxmLCB6OiBTZWxmKSAtPiBTZWxmIHsKKy0gICAgICAgICAgICAgICAgdXNlIGNyYXRl Ojpjb2RlZ2VuOjptYXRoOjpmbG9hdDo6bXVsX2FkZDo6TXVsQWRkOworLSAgICAgICAgICAgICAg ICBNdWxBZGQ6Om11bF9hZGQoc2VsZiwgeSwgeikKKy0gICAgICAgICAgICB9CistICAgICAgICB9 CistCistICAgICAgICB0ZXN0X2lmIXsKKy0gICAgICAgICAgICAkdGVzdF90dDoKKy0gICAgICAg ICAgICBwYXN0ZTo6aXRlbSEgeworLSAgICAgICAgICAgICAgICBwdWIgbW9kIFs8JGlkIF9tYXRo X211bF9hZGQ+XSB7CistICAgICAgICAgICAgICAgICAgICB1c2Ugc3VwZXI6Oio7CistICAgICAg ICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVz dCldICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3Qp XQorLSAgICAgICAgICAgICAgICAgICAgZm4gbXVsX2FkZCgpIHsKKy0gICAgICAgICAgICAgICAg ICAgICAgICBsZXQgeiA9ICRpZDo6c3BsYXQoMCBhcyAkZWxlbV90eSk7CistICAgICAgICAgICAg ICAgICAgICAgICAgbGV0IG8gPSAkaWQ6OnNwbGF0KDEgYXMgJGVsZW1fdHkpOworLSAgICAgICAg ICAgICAgICAgICAgICAgIGxldCB0ID0gJGlkOjpzcGxhdCgyIGFzICRlbGVtX3R5KTsKKy0gICAg ICAgICAgICAgICAgICAgICAgICBsZXQgdDMgPSAkaWQ6OnNwbGF0KDMgYXMgJGVsZW1fdHkpOwor LSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBmID0gJGlkOjpzcGxhdCg0IGFzICRlbGVtX3R5 KTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHosIHoubXVsX2FkZCh6 LCB6KSk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvLCBvLm11bF9hZGQo bywgeikpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEobywgby5tdWxfYWRk KHosIG8pKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG8sIHoubXVsX2Fk ZChvLCBvKSk7CistCistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0LCBvLm11 bF9hZGQobywgbykpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodCwgby5t dWxfYWRkKHQsIHopKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQsIHQu bXVsX2FkZChvLCB6KSk7CistCistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShm LCB0Lm11bF9hZGQodCwgeikpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEo ZiwgdC5tdWxfYWRkKG8sIHQpKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEh KHQzLCB0Lm11bF9hZGQobywgbykpOworLSAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAg ICAgICAgICB9CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICB9OworLX0KK2RpZmYg LS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvbWF0aC9mbG9hdC9t dWxfYWRkZS5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9tYXRoL2Zs b2F0L211bF9hZGRlLnJzCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3Bh cnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9tYXRoL2Zsb2F0L211bF9hZGRlLnJzCisrKysg L2Rldi9udWxsCitAQCAtMSw0OCArMCwwIEBACistLy8hIEltcGxlbWVudHMgdmVydGljYWwgKGxh bmUtd2lzZSkgZmxvYXRpbmctcG9pbnQgYG11bF9hZGRlYC4KKy0KKy1tYWNyb19ydWxlcyEgaW1w bF9tYXRoX2Zsb2F0X211bF9hZGRlIHsKKy0gICAgKFskZWxlbV90eTppZGVudDsgJGVsZW1fY291 bnQ6ZXhwcl06ICRpZDppZGVudCB8ICR0ZXN0X3R0OnR0KSA9PiB7CistICAgICAgICBpbXBsICRp ZCB7CistICAgICAgICAgICAgLy8vIEZ1c2VkIG11bHRpcGx5IGFkZCBlc3RpbWF0ZTogfj0gYHNl bGYgKiB5ICsgemAKKy0gICAgICAgICAgICAvLy8KKy0gICAgICAgICAgICAvLy8gV2hpbGUgZnVz ZWQgbXVsdGlwbHktYWRkIChgZm1hYCkgaGFzIGluZmluaXRlIHByZWNpc2lvbiwKKy0gICAgICAg ICAgICAvLy8gYG11bF9hZGRlYCBoYXMgX2F0IHdvcnN0XyB0aGUgc2FtZSBwcmVjaXNpb24gb2Yg YSBtdWx0aXBseSBmb2xsb3dlZCBieSBhbiBhZGQuCistICAgICAgICAgICAgLy8vIFRoaXMgbWln aHQgYmUgbW9yZSBlZmZpY2llbnQgb24gYXJjaGl0ZWN0dXJlcyB0aGF0IGRvIG5vdCBoYXZlIGFu IGBmbWFgIGluc3RydWN0aW9uLgorLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAg IHB1YiBmbiBtdWxfYWRkZShzZWxmLCB5OiBTZWxmLCB6OiBTZWxmKSAtPiBTZWxmIHsKKy0gICAg ICAgICAgICAgICAgdXNlIGNyYXRlOjpjb2RlZ2VuOjptYXRoOjpmbG9hdDo6bXVsX2FkZGU6Ok11 bEFkZEU7CistICAgICAgICAgICAgICAgIE11bEFkZEU6Om11bF9hZGRlKHNlbGYsIHksIHopCist ICAgICAgICAgICAgfQorLSAgICAgICAgfQorLQorLSAgICAgICAgdGVzdF9pZiF7CistICAgICAg ICAgICAgJHRlc3RfdHQ6CistICAgICAgICAgICAgcGFzdGU6Oml0ZW0hIHsKKy0gICAgICAgICAg ICAgICAgcHViIG1vZCBbPCRpZCBfbWF0aF9tdWxfYWRkZT5dIHsKKy0gICAgICAgICAgICAgICAg ICAgIHVzZSBzdXBlcjo6KjsKKy0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRh cmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0gI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3 YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCistICAgICAgICAgICAgICAgICAgICBmbiBtdWxf YWRkZSgpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgeiA9ICRpZDo6c3BsYXQoMCBh cyAkZWxlbV90eSk7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG8gPSAkaWQ6OnNwbGF0 KDEgYXMgJGVsZW1fdHkpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ID0gJGlkOjpz cGxhdCgyIGFzICRlbGVtX3R5KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdDMgPSAk aWQ6OnNwbGF0KDMgYXMgJGVsZW1fdHkpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBm ID0gJGlkOjpzcGxhdCg0IGFzICRlbGVtX3R5KTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAg ICBhc3NlcnRfZXEhKHosIHoubXVsX2FkZGUoeiwgeikpOworLSAgICAgICAgICAgICAgICAgICAg ICAgIGFzc2VydF9lcSEobywgby5tdWxfYWRkZShvLCB6KSk7CistICAgICAgICAgICAgICAgICAg ICAgICAgYXNzZXJ0X2VxIShvLCBvLm11bF9hZGRlKHosIG8pKTsKKy0gICAgICAgICAgICAgICAg ICAgICAgICBhc3NlcnRfZXEhKG8sIHoubXVsX2FkZGUobywgbykpOworLQorLSAgICAgICAgICAg ICAgICAgICAgICAgIGFzc2VydF9lcSEodCwgby5tdWxfYWRkZShvLCBvKSk7CistICAgICAgICAg ICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0LCBvLm11bF9hZGRlKHQsIHopKTsKKy0gICAgICAg ICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQsIHQubXVsX2FkZGUobywgeikpOworLQorLSAg ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoZiwgdC5tdWxfYWRkZSh0LCB6KSk7Cist ICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShmLCB0Lm11bF9hZGRlKG8sIHQpKTsK Ky0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQzLCB0Lm11bF9hZGRlKG8sIG8p KTsKKy0gICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAg ICAgIH0KKy0gICAgICAgIH0KKy0gICAgfTsKKy19CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkv cnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL21hdGgvZmxvYXQvcG93Zi5ycyBiL3RoaXJkX3BhcnR5 L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9tYXRoL2Zsb2F0L3Bvd2YucnMKK2RlbGV0ZWQgZmls ZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBp L21hdGgvZmxvYXQvcG93Zi5ycworKysrIC9kZXYvbnVsbAorQEAgLTEsMzYgKzAsMCBAQAorLS8v ISBJbXBsZW1lbnRzIHZlcnRpY2FsIChsYW5lLXdpc2UpIGZsb2F0aW5nLXBvaW50IGBwb3dmYC4K Ky0KKy1tYWNyb19ydWxlcyEgaW1wbF9tYXRoX2Zsb2F0X3Bvd2YgeworLSAgICAoWyRlbGVtX3R5 OmlkZW50OyAkZWxlbV9jb3VudDpleHByXTogJGlkOmlkZW50IHwgJHRlc3RfdHQ6dHQpID0+IHsK Ky0gICAgICAgIGltcGwgJGlkIHsKKy0gICAgICAgICAgICAvLy8gUmFpc2VzIGBzZWxmYCBudW1i ZXIgdG8gdGhlIGZsb2F0aW5nIHBvaW50IHBvd2VyIG9mIGB4YC4KKy0gICAgICAgICAgICAjW2lu bGluZV0KKy0gICAgICAgICAgICBwdWIgZm4gcG93ZihzZWxmLCB4OiBTZWxmKSAtPiBTZWxmIHsK Ky0gICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpjb2RlZ2VuOjptYXRoOjpmbG9hdDo6cG93Zjo6 UG93ZjsKKy0gICAgICAgICAgICAgICAgUG93Zjo6cG93ZihzZWxmLCB4KQorLSAgICAgICAgICAg IH0KKy0gICAgICAgIH0KKy0KKy0gICAgICAgIHRlc3RfaWYheworLSAgICAgICAgICAgICR0ZXN0 X3R0OgorLSAgICAgICAgICAgIHBhc3RlOjppdGVtISB7CistICAgICAgICAgICAgICAgIHB1YiBt b2QgWzwkaWQgX21hdGhfcG93Zj5dIHsKKy0gICAgICAgICAgICAgICAgICAgIHVzZSBzdXBlcjo6 KjsKKy0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndh c20zMiIpLCB0ZXN0KV0gI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2Jp bmRnZW5fdGVzdCldCistICAgICAgICAgICAgICAgICAgICBmbiBwb3dmKCkgeworLSAgICAgICAg ICAgICAgICAgICAgICAgIGxldCB6ID0gJGlkOjpzcGxhdCgwIGFzICRlbGVtX3R5KTsKKy0gICAg ICAgICAgICAgICAgICAgICAgICBsZXQgbyA9ICRpZDo6c3BsYXQoMSBhcyAkZWxlbV90eSk7Cist ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHQgPSAkaWQ6OnNwbGF0KDIgYXMgJGVsZW1fdHkp OworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEobywgby5wb3dmKHopKTsKKy0g ICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG8sIHQucG93Zih6KSk7CistICAgICAg ICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvLCBvLnBvd2YobykpOworLSAgICAgICAgICAg ICAgICAgICAgICAgIGFzc2VydF9lcSEodCwgdC5wb3dmKG8pKTsKKy0KKy0gICAgICAgICAgICAg ICAgICAgICAgICBsZXQgZiA9ICRpZDo6c3BsYXQoNCBhcyAkZWxlbV90eSk7CistICAgICAgICAg ICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShmLCB0LnBvd2YodCkpOworLSAgICAgICAgICAgICAg ICAgICAgfQorLSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgfQorLSAgICAgICAgfQor LSAgICB9OworLX0KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3Ny Yy9hcGkvbWF0aC9mbG9hdC9yZWNwcmUucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1k L3NyYy9hcGkvbWF0aC9mbG9hdC9yZWNwcmUucnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAor LS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL21hdGgvZmxvYXQvcmVj cHJlLnJzCisrKysgL2Rldi9udWxsCitAQCAtMSwzNiArMCwwIEBACistLy8hIEltcGxlbWVudHMg dmVydGljYWwgKGxhbmUtd2lzZSkgZmxvYXRpbmctcG9pbnQgYHJlY3ByZWAuCistCistbWFjcm9f cnVsZXMhIGltcGxfbWF0aF9mbG9hdF9yZWNwcmUgeworLSAgICAoWyRlbGVtX3R5OmlkZW50OyAk ZWxlbV9jb3VudDpleHByXTogJGlkOmlkZW50IHwgJHRlc3RfdHQ6dHQpID0+IHsKKy0gICAgICAg IGltcGwgJGlkIHsKKy0gICAgICAgICAgICAvLy8gUmVjaXByb2NhbCBlc3RpbWF0ZTogYH49IDEu IC8gc2VsZmAuCistICAgICAgICAgICAgLy8vCistICAgICAgICAgICAgLy8vIEZJWE1FOiBUaGUg cHJlY2lzaW9uIG9mIHRoZSBlc3RpbWF0ZSBpcyBjdXJyZW50bHkgdW5zcGVjaWZpZWQuCistICAg ICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgcHViIGZuIHJlY3ByZShzZWxmKSAtPiBT ZWxmIHsKKy0gICAgICAgICAgICAgICAgJGlkOjpzcGxhdCgxLikgLyBzZWxmCistICAgICAgICAg ICAgfQorLSAgICAgICAgfQorLQorLSAgICAgICAgdGVzdF9pZiF7CistICAgICAgICAgICAgJHRl c3RfdHQ6CistICAgICAgICAgICAgcGFzdGU6Oml0ZW0hIHsKKy0gICAgICAgICAgICAgICAgcHVi IG1vZCBbPCRpZCBfbWF0aF9yZWNwcmU+XSB7CistICAgICAgICAgICAgICAgICAgICB1c2Ugc3Vw ZXI6Oio7CistICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9 ICJ3YXNtMzIiKSwgdGVzdCldICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2Fz bV9iaW5kZ2VuX3Rlc3QpXQorLSAgICAgICAgICAgICAgICAgICAgZm4gcmVjcHJlKCkgeworLSAg ICAgICAgICAgICAgICAgICAgICAgIGxldCB0b2wgPSAkaWQ6OnNwbGF0KDIuNGUtNCBhcyAkZWxl bV90eSk7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG8gPSAkaWQ6OnNwbGF0KDEgYXMg JGVsZW1fdHkpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBlcnJvciA9IChvIC0gby5y ZWNwcmUoKSkuYWJzKCk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IShlcnJvci5s ZSh0b2wpLmFsbCgpKTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdCA9ICRpZDo6 c3BsYXQoMiBhcyAkZWxlbV90eSk7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGUgPSAw LjU7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGVycm9yID0gKGUgLSB0LnJlY3ByZSgp KS5hYnMoKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKGVycm9yLmxlKHRvbCku YWxsKCkpOworLSAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICB9CistICAg ICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICB9OworLX0KK2RpZmYgLS1naXQgYS90aGlyZF9w YXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvbWF0aC9mbG9hdC9yc3FydGUucnMgYi90aGly ZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvbWF0aC9mbG9hdC9yc3FydGUucnMKK2Rl bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2lt ZC9zcmMvYXBpL21hdGgvZmxvYXQvcnNxcnRlLnJzCisrKysgL2Rldi9udWxsCitAQCAtMSw0MCAr MCwwIEBACistLy8hIEltcGxlbWVudHMgdmVydGljYWwgKGxhbmUtd2lzZSkgZmxvYXRpbmctcG9p bnQgYHJzcXJ0ZWAuCistCistbWFjcm9fcnVsZXMhIGltcGxfbWF0aF9mbG9hdF9yc3FydGUgewor LSAgICAoWyRlbGVtX3R5OmlkZW50OyAkZWxlbV9jb3VudDpleHByXTogJGlkOmlkZW50IHwgJHRl c3RfdHQ6dHQpID0+IHsKKy0gICAgICAgIGltcGwgJGlkIHsKKy0gICAgICAgICAgICAvLy8gUmVj aXByb2NhbCBzcXVhcmUtcm9vdCBlc3RpbWF0ZTogYH49IDEuIC8gc2VsZi5zcXJ0KClgLgorLSAg ICAgICAgICAgIC8vLworLSAgICAgICAgICAgIC8vLyBGSVhNRTogVGhlIHByZWNpc2lvbiBvZiB0 aGUgZXN0aW1hdGUgaXMgY3VycmVudGx5IHVuc3BlY2lmaWVkLgorLSAgICAgICAgICAgICNbaW5s aW5lXQorLSAgICAgICAgICAgIHB1YiBmbiByc3FydGUoc2VsZikgLT4gU2VsZiB7CistICAgICAg ICAgICAgICAgIHVuc2FmZSB7CistICAgICAgICAgICAgICAgICAgICB1c2UgY3JhdGU6Omxsdm06 OnNpbWRfZnNxcnQ7CistICAgICAgICAgICAgICAgICAgICAkaWQ6OnNwbGF0KDEuKSAvIFNpbWQo c2ltZF9mc3FydChzZWxmLjApKQorLSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgfQor LSAgICAgICAgfQorLQorLSAgICAgICAgdGVzdF9pZiF7CistICAgICAgICAgICAgJHRlc3RfdHQ6 CistICAgICAgICAgICAgcGFzdGU6Oml0ZW0hIHsKKy0gICAgICAgICAgICAgICAgcHViIG1vZCBb PCRpZCBfbWF0aF9yc3FydGU+XSB7CistICAgICAgICAgICAgICAgICAgICB1c2Ugc3VwZXI6Oio7 CistICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNt MzIiKSwgdGVzdCldICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5k Z2VuX3Rlc3QpXQorLSAgICAgICAgICAgICAgICAgICAgZm4gcnNxcnRlKCkgeworLSAgICAgICAg ICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6JGVsZW1fdHk6OmNvbnN0czo6U1FSVF8yOworLSAg ICAgICAgICAgICAgICAgICAgICAgIGxldCB0b2wgPSAkaWQ6OnNwbGF0KDIuNGUtNCBhcyAkZWxl bV90eSk7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG8gPSAkaWQ6OnNwbGF0KDEgYXMg JGVsZW1fdHkpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBlcnJvciA9IChvIC0gby5y c3FydGUoKSkuYWJzKCk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IShlcnJvci5s ZSh0b2wpLmFsbCgpKTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdCA9ICRpZDo6 c3BsYXQoMiBhcyAkZWxlbV90eSk7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGUgPSAx LiAvIFNRUlRfMjsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgZXJyb3IgPSAoZSAtIHQu cnNxcnRlKCkpLmFicygpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCEoZXJyb3Iu bGUodG9sKS5hbGwoKSk7CistICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAg IH0KKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgIH07CistfQorZGlmZiAtLWdpdCBh L3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9tYXRoL2Zsb2F0L3Npbi5ycyBi L3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9tYXRoL2Zsb2F0L3Npbi5ycwor ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9z aW1kL3NyYy9hcGkvbWF0aC9mbG9hdC9zaW4ucnMKKysrKyAvZGV2L251bGwKK0BAIC0xLDUwICsw LDAgQEAKKy0vLyEgSW1wbGVtZW50cyB2ZXJ0aWNhbCAobGFuZS13aXNlKSBmbG9hdGluZy1wb2lu dCBgc2luYC4KKy0KKy1tYWNyb19ydWxlcyEgaW1wbF9tYXRoX2Zsb2F0X3NpbiB7CistICAgIChb JGVsZW1fdHk6aWRlbnQ7ICRlbGVtX2NvdW50OmV4cHJdOiAkaWQ6aWRlbnQgfCAkdGVzdF90dDp0 dCkgPT4geworLSAgICAgICAgaW1wbCAkaWQgeworLSAgICAgICAgICAgIC8vLyBTaW5lLgorLSAg ICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIHB1YiBmbiBzaW4oc2VsZikgLT4gU2Vs ZiB7CistICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6Y29kZWdlbjo6bWF0aDo6ZmxvYXQ6OnNp bjo6U2luOworLSAgICAgICAgICAgICAgICBTaW46OnNpbihzZWxmKQorLSAgICAgICAgICAgIH0K Ky0KKy0gICAgICAgICAgICAvLy8gU2luZSBvZiBgc2VsZiAqIFBJYC4KKy0gICAgICAgICAgICAj W2lubGluZV0KKy0gICAgICAgICAgICBwdWIgZm4gc2luX3BpKHNlbGYpIC0+IFNlbGYgeworLSAg ICAgICAgICAgICAgICB1c2UgY3JhdGU6OmNvZGVnZW46Om1hdGg6OmZsb2F0OjpzaW5fcGk6OlNp blBpOworLSAgICAgICAgICAgICAgICBTaW5QaTo6c2luX3BpKHNlbGYpCistICAgICAgICAgICAg fQorLQorLSAgICAgICAgICAgIC8vLyBTaW5lIGFuZCBjb3NpbmUgb2YgYHNlbGYgKiBQSWAuCist ICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgcHViIGZuIHNpbl9jb3NfcGkoc2Vs ZikgLT4gKFNlbGYsIFNlbGYpIHsKKy0gICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpjb2RlZ2Vu OjptYXRoOjpmbG9hdDo6c2luX2Nvc19waTo6U2luQ29zUGk7CistICAgICAgICAgICAgICAgIFNp bkNvc1BpOjpzaW5fY29zX3BpKHNlbGYpCistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLQor LSAgICAgICAgdGVzdF9pZiF7CistICAgICAgICAgICAgJHRlc3RfdHQ6CistICAgICAgICAgICAg cGFzdGU6Oml0ZW0hIHsKKy0gICAgICAgICAgICAgICAgcHViIG1vZCBbPCRpZCBfbWF0aF9zaW4+ XSB7CistICAgICAgICAgICAgICAgICAgICB1c2Ugc3VwZXI6Oio7CistICAgICAgICAgICAgICAg ICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldICNbY2Zn X2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQorLSAgICAg ICAgICAgICAgICAgICAgZm4gc2luKCkgeworLSAgICAgICAgICAgICAgICAgICAgICAgIHVzZSBj cmF0ZTo6JGVsZW1fdHk6OmNvbnN0czo6UEk7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0 IHogPSAkaWQ6OnNwbGF0KDAgYXMgJGVsZW1fdHkpOworLSAgICAgICAgICAgICAgICAgICAgICAg IGxldCBwID0gJGlkOjpzcGxhdChQSSBhcyAkZWxlbV90eSk7CistICAgICAgICAgICAgICAgICAg ICAgICAgbGV0IHBoID0gJGlkOjpzcGxhdChQSSBhcyAkZWxlbV90eSAvIDIuKTsKKy0gICAgICAg ICAgICAgICAgICAgICAgICBsZXQgb19yID0gJGlkOjpzcGxhdCgoUEkgYXMgJGVsZW1fdHkgLyAy Likuc2luKCkpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB6X3IgPSAkaWQ6OnNwbGF0 KChQSSBhcyAkZWxlbV90eSkuc2luKCkpOworLQorLSAgICAgICAgICAgICAgICAgICAgICAgIGFz c2VydF9lcSEoeiwgei5zaW4oKSk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2Vx IShvX3IsIHBoLnNpbigpKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHpf ciwgcC5zaW4oKSk7CistICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgIH0K Ky0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgIH07CistfQorZGlmZiAtLWdpdCBhL3Ro aXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9tYXRoL2Zsb2F0L3NxcnQucnMgYi90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvbWF0aC9mbG9hdC9zcXJ0LnJzCitk ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3Np bWQvc3JjL2FwaS9tYXRoL2Zsb2F0L3NxcnQucnMKKysrKyAvZGV2L251bGwKK0BAIC0xLDM1ICsw LDAgQEAKKy0vLyEgSW1wbGVtZW50cyB2ZXJ0aWNhbCAobGFuZS13aXNlKSBmbG9hdGluZy1wb2lu dCBgc3FydGAuCistCistbWFjcm9fcnVsZXMhIGltcGxfbWF0aF9mbG9hdF9zcXJ0IHsKKy0gICAg KFskZWxlbV90eTppZGVudDsgJGVsZW1fY291bnQ6ZXhwcl06ICRpZDppZGVudCB8ICR0ZXN0X3R0 OnR0KSA9PiB7CistICAgICAgICBpbXBsICRpZCB7CistICAgICAgICAgICAgI1tpbmxpbmVdCist ICAgICAgICAgICAgcHViIGZuIHNxcnQoc2VsZikgLT4gU2VsZiB7CistICAgICAgICAgICAgICAg IHVzZSBjcmF0ZTo6Y29kZWdlbjo6bWF0aDo6ZmxvYXQ6OnNxcnQ6OlNxcnQ7CistICAgICAgICAg ICAgICAgIFNxcnQ6OnNxcnQoc2VsZikKKy0gICAgICAgICAgICB9CistICAgICAgICB9CistCist ICAgICAgICB0ZXN0X2lmIXsKKy0gICAgICAgICAgICAkdGVzdF90dDoKKy0gICAgICAgICAgICBw YXN0ZTo6aXRlbSEgeworLSAgICAgICAgICAgICAgICBwdWIgbW9kIFs8JGlkIF9tYXRoX3NxcnQ+ XSB7CistICAgICAgICAgICAgICAgICAgICB1c2Ugc3VwZXI6Oio7CistICAgICAgICAgICAgICAg ICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldICNbY2Zn X2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQorLSAgICAg ICAgICAgICAgICAgICAgZm4gc3FydCgpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICB1c2Ug Y3JhdGU6OiRlbGVtX3R5Ojpjb25zdHM6OlNRUlRfMjsKKy0gICAgICAgICAgICAgICAgICAgICAg ICBsZXQgeiA9ICRpZDo6c3BsYXQoMCBhcyAkZWxlbV90eSk7CistICAgICAgICAgICAgICAgICAg ICAgICAgbGV0IG8gPSAkaWQ6OnNwbGF0KDEgYXMgJGVsZW1fdHkpOworLSAgICAgICAgICAgICAg ICAgICAgICAgIGFzc2VydF9lcSEoeiwgei5zcXJ0KCkpOworLSAgICAgICAgICAgICAgICAgICAg ICAgIGFzc2VydF9lcSEobywgby5zcXJ0KCkpOworLQorLSAgICAgICAgICAgICAgICAgICAgICAg IGxldCB0ID0gJGlkOjpzcGxhdCgyIGFzICRlbGVtX3R5KTsKKy0gICAgICAgICAgICAgICAgICAg ICAgICBsZXQgZSA9ICRpZDo6c3BsYXQoU1FSVF8yKTsKKy0gICAgICAgICAgICAgICAgICAgICAg ICBhc3NlcnRfZXEhKGUsIHQuc3FydCgpKTsKKy0KKy0gICAgICAgICAgICAgICAgICAgIH0KKy0g ICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgfTsKKy19 CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL21hdGgv ZmxvYXQvc3FydGUucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvbWF0 aC9mbG9hdC9zcXJ0ZS5ycworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9w YXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvbWF0aC9mbG9hdC9zcXJ0ZS5ycworKysrIC9k ZXYvbnVsbAorQEAgLTEsNDQgKzAsMCBAQAorLS8vISBJbXBsZW1lbnRzIHZlcnRpY2FsIChsYW5l LXdpc2UpIGZsb2F0aW5nLXBvaW50IGBzcXJ0ZWAuCistCistbWFjcm9fcnVsZXMhIGltcGxfbWF0 aF9mbG9hdF9zcXJ0ZSB7CistICAgIChbJGVsZW1fdHk6aWRlbnQ7ICRlbGVtX2NvdW50OmV4cHJd OiAkaWQ6aWRlbnQgfCAkdGVzdF90dDp0dCkgPT4geworLSAgICAgICAgaW1wbCAkaWQgeworLSAg ICAgICAgICAgIC8vLyBTcXVhcmUtcm9vdCBlc3RpbWF0ZS4KKy0gICAgICAgICAgICAvLy8KKy0g ICAgICAgICAgICAvLy8gRklYTUU6IFRoZSBwcmVjaXNpb24gb2YgdGhlIGVzdGltYXRlIGlzIGN1 cnJlbnRseSB1bnNwZWNpZmllZC4KKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAg ICBwdWIgZm4gc3FydGUoc2VsZikgLT4gU2VsZiB7CistICAgICAgICAgICAgICAgIHVzZSBjcmF0 ZTo6Y29kZWdlbjo6bWF0aDo6ZmxvYXQ6OnNxcnRlOjpTcXJ0ZTsKKy0gICAgICAgICAgICAgICAg U3FydGU6OnNxcnRlKHNlbGYpCistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLQorLSAgICAg ICAgdGVzdF9pZiF7CistICAgICAgICAgICAgJHRlc3RfdHQ6CistICAgICAgICAgICAgcGFzdGU6 Oml0ZW0hIHsKKy0gICAgICAgICAgICAgICAgcHViIG1vZCBbPCRpZCBfbWF0aF9zcXJ0ZT5dIHsK Ky0gICAgICAgICAgICAgICAgICAgIHVzZSBzdXBlcjo6KjsKKy0gICAgICAgICAgICAgICAgICAg ICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0gI1tjZmdfYXR0 cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCistICAgICAgICAg ICAgICAgICAgICBmbiBzcXJ0ZSgpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICB1c2UgY3Jh dGU6OiRlbGVtX3R5Ojpjb25zdHM6OlNRUlRfMjsKKy0gICAgICAgICAgICAgICAgICAgICAgICBs ZXQgdG9sID0gJGlkOjpzcGxhdCgyLjRlLTQgYXMgJGVsZW1fdHkpOworLQorLSAgICAgICAgICAg ICAgICAgICAgICAgIGxldCB6ID0gJGlkOjpzcGxhdCgwIGFzICRlbGVtX3R5KTsKKy0gICAgICAg ICAgICAgICAgICAgICAgICBsZXQgZXJyb3IgPSAoeiAtIHouc3FydGUoKSkuYWJzKCk7CistICAg ICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IShlcnJvci5sZSh0b2wpLmFsbCgpKTsKKy0KKy0g ICAgICAgICAgICAgICAgICAgICAgICBsZXQgbyA9ICRpZDo6c3BsYXQoMSBhcyAkZWxlbV90eSk7 CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGVycm9yID0gKG8gLSBvLnNxcnRlKCkpLmFi cygpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCEoZXJyb3IubGUodG9sKS5hbGwo KSk7CistCistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHQgPSAkaWQ6OnNwbGF0KDIgYXMg JGVsZW1fdHkpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBlID0gJGlkOjpzcGxhdChT UVJUXzIgYXMgJGVsZW1fdHkpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBlcnJvciA9 IChlIC0gdC5zcXJ0ZSgpKS5hYnMoKTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3Nl cnQhKGVycm9yLmxlKHRvbCkuYWxsKCkpOworLSAgICAgICAgICAgICAgICAgICAgfQorLSAgICAg ICAgICAgICAgICB9CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICB9OworLX0KK2Rp ZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvbWluaW1hbC5y cyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9taW5pbWFsLnJzCitkZWxl dGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQv c3JjL2FwaS9taW5pbWFsLnJzCisrKysgL2Rldi9udWxsCitAQCAtMSw2ICswLDAgQEAKKy0jW21h Y3JvX3VzZV0KKy1tb2QgaXVmOworLSNbbWFjcm9fdXNlXQorLW1vZCBtYXNrOworLSNbbWFjcm9f dXNlXQorLW1vZCBwdHI7CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2lt ZC9zcmMvYXBpL21pbmltYWwvaXVmLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9z cmMvYXBpL21pbmltYWwvaXVmLnJzCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3Ro aXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9taW5pbWFsL2l1Zi5ycworKysrIC9k ZXYvbnVsbAorQEAgLTEsMTY5ICswLDAgQEAKKy0vLyEgTWluaW1hbCBBUEkgb2Ygc2lnbmVkIGlu dGVnZXIsIHVuc2lnbmVkIGludGVnZXIsIGFuZCBmbG9hdGluZy1wb2ludAorLS8vISB2ZWN0b3Jz LgorLQorLW1hY3JvX3J1bGVzISBpbXBsX21pbmltYWxfaXVmIHsKKy0gICAgKFskZWxlbV90eTpp ZGVudDsgJGVsZW1fY291bnQ6ZXhwcl06ICRpZDppZGVudCB8ICRpZWxlbV90eTppZGVudCB8Cist ICAgICAkdGVzdF90dDp0dCB8ICQoJGVsZW1fbmFtZTppZGVudCksKyB8ICQoI1skZG9jOm1ldGFd KSopID0+IHsKKy0KKy0gICAgICAgICQoI1skZG9jXSkqCistICAgICAgICBwdWIgdHlwZSAkaWQg PSBTaW1kPFskZWxlbV90eTsgJGVsZW1fY291bnRdPjsKKy0KKy0gICAgICAgIGltcGwgc2VhbGVk OjpTaW1kIGZvciAkaWQgeworLSAgICAgICAgICAgIHR5cGUgRWxlbWVudCA9ICRlbGVtX3R5Owor LSAgICAgICAgICAgIGNvbnN0IExBTkVTOiB1c2l6ZSA9ICRlbGVtX2NvdW50OworLSAgICAgICAg ICAgIHR5cGUgTGFuZXNUeXBlID0gW3UzMjsgJGVsZW1fY291bnRdOworLSAgICAgICAgfQorLQor LSAgICAgICAgaW1wbCAkaWQgeworLSAgICAgICAgICAgIC8vLyBDcmVhdGVzIGEgbmV3IGluc3Rh bmNlIHdpdGggZWFjaCB2ZWN0b3IgZWxlbWVudHMgaW5pdGlhbGl6ZWQKKy0gICAgICAgICAgICAv Ly8gd2l0aCB0aGUgcHJvdmlkZWQgdmFsdWVzLgorLSAgICAgICAgICAgICNbaW5saW5lXQorLSAg ICAgICAgICAgICNbYWxsb3coY2xpcHB5Ojp0b29fbWFueV9hcmd1bWVudHMpXQorLSAgICAgICAg ICAgIHB1YiBjb25zdCBmbiBuZXcoJCgkZWxlbV9uYW1lOiAkZWxlbV90eSksKikgLT4gU2VsZiB7 CistICAgICAgICAgICAgICAgIFNpbWQoY29kZWdlbjo6JGlkKCQoJGVsZW1fbmFtZSBhcyAkaWVs ZW1fdHkpLCopKQorLSAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICAvLy8gUmV0dXJucyB0 aGUgbnVtYmVyIG9mIHZlY3RvciBsYW5lcy4KKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAg ICAgICAgICBwdWIgY29uc3QgZm4gbGFuZXMoKSAtPiB1c2l6ZSB7CistICAgICAgICAgICAgICAg ICRlbGVtX2NvdW50CistICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgIC8vLyBDb25zdHJ1 Y3RzIGEgbmV3IGluc3RhbmNlIHdpdGggZWFjaCBlbGVtZW50IGluaXRpYWxpemVkIHRvCistICAg ICAgICAgICAgLy8vIGB2YWx1ZWAuCistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAg ICAgcHViIGNvbnN0IGZuIHNwbGF0KHZhbHVlOiAkZWxlbV90eSkgLT4gU2VsZiB7CistICAgICAg ICAgICAgICAgIFNpbWQoY29kZWdlbjo6JGlkKCQoeworLSAgICAgICAgICAgICAgICAgICAgI1th bGxvdyhub25fY2FtZWxfY2FzZV90eXBlcywgZGVhZF9jb2RlKV0KKy0gICAgICAgICAgICAgICAg ICAgIHN0cnVjdCAkZWxlbV9uYW1lOworLSAgICAgICAgICAgICAgICAgICAgdmFsdWUgYXMgJGll bGVtX3R5CistICAgICAgICAgICAgICAgIH0pLCopKQorLSAgICAgICAgICAgIH0KKy0KKy0gICAg ICAgICAgICAvLy8gRXh0cmFjdHMgdGhlIHZhbHVlIGF0IGBpbmRleGAuCistICAgICAgICAgICAg Ly8vCistICAgICAgICAgICAgLy8vICMgUGFuaWNzCistICAgICAgICAgICAgLy8vCistICAgICAg ICAgICAgLy8vIElmIGBpbmRleCA+PSBTZWxmOjpsYW5lcygpYC4KKy0gICAgICAgICAgICAjW2lu bGluZV0KKy0gICAgICAgICAgICBwdWIgZm4gZXh0cmFjdChzZWxmLCBpbmRleDogdXNpemUpIC0+ ICRlbGVtX3R5IHsKKy0gICAgICAgICAgICAgICAgYXNzZXJ0IShpbmRleCA8ICRlbGVtX2NvdW50 KTsKKy0gICAgICAgICAgICAgICAgdW5zYWZlIHsgc2VsZi5leHRyYWN0X3VuY2hlY2tlZChpbmRl eCkgfQorLSAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICAvLy8gRXh0cmFjdHMgdGhlIHZh bHVlIGF0IGBpbmRleGAuCistICAgICAgICAgICAgLy8vCistICAgICAgICAgICAgLy8vICMgU2Fm ZXR5CistICAgICAgICAgICAgLy8vCistICAgICAgICAgICAgLy8vIElmIGBpbmRleCA+PSBTZWxm OjpsYW5lcygpYCB0aGUgYmVoYXZpb3IgaXMgdW5kZWZpbmVkLgorLSAgICAgICAgICAgICNbaW5s aW5lXQorLSAgICAgICAgICAgIHB1YiB1bnNhZmUgZm4gZXh0cmFjdF91bmNoZWNrZWQoc2VsZiwg aW5kZXg6IHVzaXplKSAtPiAkZWxlbV90eSB7CistICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6 bGx2bTo6c2ltZF9leHRyYWN0OworLSAgICAgICAgICAgICAgICBsZXQgZTogJGllbGVtX3R5ID0g c2ltZF9leHRyYWN0KHNlbGYuMCwgaW5kZXggYXMgdTMyKTsKKy0gICAgICAgICAgICAgICAgZSBh cyAkZWxlbV90eQorLSAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICAvLy8gUmV0dXJucyBh IG5ldyB2ZWN0b3Igd2hlcmUgdGhlIHZhbHVlIGF0IGBpbmRleGAgaXMgcmVwbGFjZWQgYnkgYG5l d192YWx1ZWAuCistICAgICAgICAgICAgLy8vCistICAgICAgICAgICAgLy8vICMgUGFuaWNzCist ICAgICAgICAgICAgLy8vCistICAgICAgICAgICAgLy8vIElmIGBpbmRleCA+PSBTZWxmOjpsYW5l cygpYC4KKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICAjW211c3RfdXNlID0g InJlcGxhY2UgZG9lcyBub3QgbW9kaWZ5IHRoZSBvcmlnaW5hbCB2YWx1ZSAtIFwKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgIGl0IHJldHVybnMgYSBuZXcgdmVjdG9yIHdpdGggdGhlIHZhbHVl IGF0IGBpbmRleGAgXAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwbGFjZWQgYnkgYG5l d192YWx1ZWBkIgorLSAgICAgICAgICAgIF0KKy0gICAgICAgICAgICBwdWIgZm4gcmVwbGFjZShz ZWxmLCBpbmRleDogdXNpemUsIG5ld192YWx1ZTogJGVsZW1fdHkpIC0+IFNlbGYgeworLSAgICAg ICAgICAgICAgICBhc3NlcnQhKGluZGV4IDwgJGVsZW1fY291bnQpOworLSAgICAgICAgICAgICAg ICB1bnNhZmUgeyBzZWxmLnJlcGxhY2VfdW5jaGVja2VkKGluZGV4LCBuZXdfdmFsdWUpIH0KKy0g ICAgICAgICAgICB9CistCistICAgICAgICAgICAgLy8vIFJldHVybnMgYSBuZXcgdmVjdG9yIHdo ZXJlIHRoZSB2YWx1ZSBhdCBgaW5kZXhgIGlzIHJlcGxhY2VkIGJ5IGBuZXdfdmFsdWVgLgorLSAg ICAgICAgICAgIC8vLworLSAgICAgICAgICAgIC8vLyAjIFNhZmV0eQorLSAgICAgICAgICAgIC8v LworLSAgICAgICAgICAgIC8vLyBJZiBgaW5kZXggPj0gU2VsZjo6bGFuZXMoKWAgdGhlIGJlaGF2 aW9yIGlzIHVuZGVmaW5lZC4KKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICAj W211c3RfdXNlID0gInJlcGxhY2VfdW5jaGVja2VkIGRvZXMgbm90IG1vZGlmeSB0aGUgb3JpZ2lu YWwgdmFsdWUgLSBcCistICAgICAgICAgICAgICAgICAgICAgICAgICBpdCByZXR1cm5zIGEgbmV3 IHZlY3RvciB3aXRoIHRoZSB2YWx1ZSBhdCBgaW5kZXhgIFwKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgIHJlcGxhY2VkIGJ5IGBuZXdfdmFsdWVgZCIKKy0gICAgICAgICAgICBdCistICAgICAg ICAgICAgcHViIHVuc2FmZSBmbiByZXBsYWNlX3VuY2hlY2tlZCgKKy0gICAgICAgICAgICAgICAg c2VsZiwKKy0gICAgICAgICAgICAgICAgaW5kZXg6IHVzaXplLAorLSAgICAgICAgICAgICAgICBu ZXdfdmFsdWU6ICRlbGVtX3R5LAorLSAgICAgICAgICAgICkgLT4gU2VsZiB7CistICAgICAgICAg ICAgICAgIHVzZSBjcmF0ZTo6bGx2bTo6c2ltZF9pbnNlcnQ7CistICAgICAgICAgICAgICAgIFNp bWQoc2ltZF9pbnNlcnQoc2VsZi4wLCBpbmRleCBhcyB1MzIsIG5ld192YWx1ZSBhcyAkaWVsZW1f dHkpKQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0KKy0gICAgICAgIHRlc3RfaWYhewor LSAgICAgICAgICAgICR0ZXN0X3R0OgorLSAgICAgICAgICAgIHBhc3RlOjppdGVtISB7CistICAg ICAgICAgICAgICAgIC8vIENvbXBhcmlzb25zIHVzZSBpbnRlZ2VyIGNhc3RzIHdpdGhpbiBtYW50 aXNzYV4xIHJhbmdlLgorLSAgICAgICAgICAgICAgICAjW2FsbG93KGNsaXBweTo6ZmxvYXRfY21w KV0KKy0gICAgICAgICAgICAgICAgcHViIG1vZCBbPCRpZCBfbWluaW1hbD5dIHsKKy0gICAgICAg ICAgICAgICAgICAgIHVzZSBzdXBlcjo6KjsKKy0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0 dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0KKy0gICAgICAgICAgICAgICAg ICAgICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3Qp XQorLSAgICAgICAgICAgICAgICAgICAgZm4gbWluaW1hbCgpIHsKKy0gICAgICAgICAgICAgICAg ICAgICAgICAvLyBsYW5lczoKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKCRl bGVtX2NvdW50LCAkaWQ6OmxhbmVzKCkpOworLQorLSAgICAgICAgICAgICAgICAgICAgICAgIC8v IHNwbGF0IGFuZCBleHRyYWN0IC8gZXh0cmFjdF91bmNoZWNrZWQ6CistICAgICAgICAgICAgICAg ICAgICAgICAgY29uc3QgVkFMOiAkZWxlbV90eSA9IDcgYXMgJGVsZW1fdHk7CistICAgICAgICAg ICAgICAgICAgICAgICAgY29uc3QgVkVDOiAkaWQgPSAkaWQ6OnNwbGF0KFZBTCk7CistICAgICAg ICAgICAgICAgICAgICAgICAgZm9yIGkgaW4gMC4uJGlkOjpsYW5lcygpIHsKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShWQUwsIFZFQy5leHRyYWN0KGkpKTsKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISgKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFZBTCwgdW5zYWZlIHsgVkVDLmV4dHJhY3RfdW5jaGVja2VkKGkpIH0KKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICB9 CistCistICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmVwbGFjZSAvIHJlcGxhY2VfdW5jaGVj a2VkCistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld192ZWMgPSBWRUMucmVwbGFjZSgw LCA0MiBhcyAkZWxlbV90eSk7CistICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGkgaW4gMC4u JGlkOjpsYW5lcygpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgaSA9PSAwIHsK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoNDIgYXMgJGVsZW1f dHksIG5ld192ZWMuZXh0cmFjdChpKSk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0g ZWxzZSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKFZBTCwg bmV3X3ZlYy5leHRyYWN0KGkpKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorLSAg ICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbmV3 X3ZlYyA9IHVuc2FmZSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZFQy5yZXBsYWNl X3VuY2hlY2tlZCgwLCA0MiBhcyAkZWxlbV90eSkKKy0gICAgICAgICAgICAgICAgICAgICAgICB9 OworLSAgICAgICAgICAgICAgICAgICAgICAgIGZvciBpIGluIDAuLiRpZDo6bGFuZXMoKSB7Cist ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGkgPT0gMCB7CistICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKDQyIGFzICRlbGVtX3R5LCBuZXdfdmVjLmV4dHJh Y3QoaSkpOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShWQUwsIG5ld192ZWMuZXh0cmFjdChp KSk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAg ICAgICB9CistICAgICAgICAgICAgICAgICAgICB9CistCistICAgICAgICAgICAgICAgICAgICAv LyBGSVhNRTogd2FzbS1iaW5kZ2VuLXRlc3QgZG9lcyBub3Qgc3VwcG9ydCAjW3Nob3VsZF9wYW5p Y10KKy0gICAgICAgICAgICAgICAgICAgIC8vICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0g Indhc20zMiIpLCB0ZXN0KV0gI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNt X2JpbmRnZW5fdGVzdCldCistICAgICAgICAgICAgICAgICAgICAjW2NmZyhub3QodGFyZ2V0X2Fy Y2ggPSAid2FzbTMyIikpXQorLSAgICAgICAgICAgICAgICAgICAgI1t0ZXN0XQorLSAgICAgICAg ICAgICAgICAgICAgI1tzaG91bGRfcGFuaWNdCistICAgICAgICAgICAgICAgICAgICBmbiBleHRy YWN0X3BhbmljX29vYigpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBWQUw6ICRl bGVtX3R5ID0gNyBhcyAkZWxlbV90eTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBW RUM6ICRpZCA9ICRpZDo6c3BsYXQoVkFMKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQg XyA9IFZFQy5leHRyYWN0KCRpZDo6bGFuZXMoKSk7CistICAgICAgICAgICAgICAgICAgICB9Cist ICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogd2FzbS1iaW5kZ2VuLXRlc3QgZG9lcyBub3Qg c3VwcG9ydCAjW3Nob3VsZF9wYW5pY10KKy0gICAgICAgICAgICAgICAgICAgIC8vICNbY2ZnX2F0 dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0gI1tjZmdfYXR0cih0YXJnZXRf YXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCistICAgICAgICAgICAgICAgICAg ICAjW2NmZyhub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIikpXQorLSAgICAgICAgICAgICAgICAg ICAgI1t0ZXN0XQorLSAgICAgICAgICAgICAgICAgICAgI1tzaG91bGRfcGFuaWNdCistICAgICAg ICAgICAgICAgICAgICBmbiByZXBsYWNlX3BhbmljX29vYigpIHsKKy0gICAgICAgICAgICAgICAg ICAgICAgICBjb25zdCBWQUw6ICRlbGVtX3R5ID0gNyBhcyAkZWxlbV90eTsKKy0gICAgICAgICAg ICAgICAgICAgICAgICBjb25zdCBWRUM6ICRpZCA9ICRpZDo6c3BsYXQoVkFMKTsKKy0gICAgICAg ICAgICAgICAgICAgICAgICBsZXQgXyA9IFZFQy5yZXBsYWNlKCRpZDo6bGFuZXMoKSwgNDIgYXMg JGVsZW1fdHkpOworLSAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICB9Cist ICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICB9CistfQorZGlmZiAtLWdpdCBhL3RoaXJk X3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9taW5pbWFsL21hc2sucnMgYi90aGlyZF9w YXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvbWluaW1hbC9tYXNrLnJzCitkZWxldGVkIGZp bGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2Fw aS9taW5pbWFsL21hc2sucnMKKysrKyAvZGV2L251bGwKK0BAIC0xLDE3NiArMCwwIEBACistLy8h IE1pbmltYWwgQVBJIG9mIG1hc2sgdmVjdG9ycy4KKy0KKy1tYWNyb19ydWxlcyEgaW1wbF9taW5p bWFsX21hc2sgeworLSAgICAoWyRlbGVtX3R5OmlkZW50OyAkZWxlbV9jb3VudDpleHByXTogJGlk OmlkZW50IHwgJGllbGVtX3R5OmlkZW50CistICAgIHwgJHRlc3RfdHQ6dHQgfCAkKCRlbGVtX25h bWU6aWRlbnQpLCsgfCAkKCNbJGRvYzptZXRhXSkqKSA9PiB7CistICAgICAgICAkKCNbJGRvY10p KgorLSAgICAgICAgcHViIHR5cGUgJGlkID0gU2ltZDxbJGVsZW1fdHk7ICRlbGVtX2NvdW50XT47 CistCistICAgICAgICBpbXBsIHNlYWxlZDo6U2ltZCBmb3IgJGlkIHsKKy0gICAgICAgICAgICB0 eXBlIEVsZW1lbnQgPSAkZWxlbV90eTsKKy0gICAgICAgICAgICBjb25zdCBMQU5FUzogdXNpemUg PSAkZWxlbV9jb3VudDsKKy0gICAgICAgICAgICB0eXBlIExhbmVzVHlwZSA9IFt1MzI7ICRlbGVt X2NvdW50XTsKKy0gICAgICAgIH0KKy0KKy0gICAgICAgIGltcGwgJGlkIHsKKy0gICAgICAgICAg ICAvLy8gQ3JlYXRlcyBhIG5ldyBpbnN0YW5jZSB3aXRoIGVhY2ggdmVjdG9yIGVsZW1lbnRzIGlu aXRpYWxpemVkCistICAgICAgICAgICAgLy8vIHdpdGggdGhlIHByb3ZpZGVkIHZhbHVlcy4KKy0g ICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICAjW2FsbG93KGNsaXBweTo6dG9vX21h bnlfYXJndW1lbnRzKV0KKy0gICAgICAgICAgICBwdWIgY29uc3QgZm4gbmV3KCQoJGVsZW1fbmFt ZTogYm9vbCksKikgLT4gU2VsZiB7CistICAgICAgICAgICAgICAgIFNpbWQoY29kZWdlbjo6JGlk KCQoU2VsZjo6Ym9vbF90b19pbnRlcm5hbCgkZWxlbV9uYW1lKSksKikpCistICAgICAgICAgICAg fQorLQorLSAgICAgICAgICAgIC8vLyBDb252ZXJ0cyBhIGJvb2xlYW4gdHlwZSBpbnRvIHRoZSB0 eXBlIG9mIHRoZSB2ZWN0b3IgbGFuZXMuCistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAg ICAgICAgI1thbGxvdyhjbGlwcHk6OmluZGV4aW5nX3NsaWNpbmcpXQorLSAgICAgICAgICAgIGNv bnN0IGZuIGJvb2xfdG9faW50ZXJuYWwoeDogYm9vbCkgLT4gJGllbGVtX3R5IHsKKy0gICAgICAg ICAgICAgICAgWzAgYXMgJGllbGVtX3R5LCAhKDAgYXMgJGllbGVtX3R5KV1beCBhcyB1c2l6ZV0K Ky0gICAgICAgICAgICB9CistCistICAgICAgICAgICAgLy8vIFJldHVybnMgdGhlIG51bWJlciBv ZiB2ZWN0b3IgbGFuZXMuCistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgcHVi IGNvbnN0IGZuIGxhbmVzKCkgLT4gdXNpemUgeworLSAgICAgICAgICAgICAgICAkZWxlbV9jb3Vu dAorLSAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICAvLy8gQ29uc3RydWN0cyBhIG5ldyBp bnN0YW5jZSB3aXRoIGVhY2ggZWxlbWVudCBpbml0aWFsaXplZCB0bworLSAgICAgICAgICAgIC8v LyBgdmFsdWVgLgorLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIHB1YiBjb25z dCBmbiBzcGxhdCh2YWx1ZTogYm9vbCkgLT4gU2VsZiB7CistICAgICAgICAgICAgICAgIFNpbWQo Y29kZWdlbjo6JGlkKCQoeworLSAgICAgICAgICAgICAgICAgICAgI1thbGxvdyhub25fY2FtZWxf Y2FzZV90eXBlcywgZGVhZF9jb2RlKV0KKy0gICAgICAgICAgICAgICAgICAgIHN0cnVjdCAkZWxl bV9uYW1lOworLSAgICAgICAgICAgICAgICAgICAgU2VsZjo6Ym9vbF90b19pbnRlcm5hbCh2YWx1 ZSkKKy0gICAgICAgICAgICAgICAgfSksKikpCistICAgICAgICAgICAgfQorLQorLSAgICAgICAg ICAgIC8vLyBFeHRyYWN0cyB0aGUgdmFsdWUgYXQgYGluZGV4YC4KKy0gICAgICAgICAgICAvLy8K Ky0gICAgICAgICAgICAvLy8gIyBQYW5pY3MKKy0gICAgICAgICAgICAvLy8KKy0gICAgICAgICAg ICAvLy8gSWYgYGluZGV4ID49IFNlbGY6OmxhbmVzKClgLgorLSAgICAgICAgICAgICNbaW5saW5l XQorLSAgICAgICAgICAgIHB1YiBmbiBleHRyYWN0KHNlbGYsIGluZGV4OiB1c2l6ZSkgLT4gYm9v bCB7CistICAgICAgICAgICAgICAgIGFzc2VydCEoaW5kZXggPCAkZWxlbV9jb3VudCk7CistICAg ICAgICAgICAgICAgIHVuc2FmZSB7IHNlbGYuZXh0cmFjdF91bmNoZWNrZWQoaW5kZXgpIH0KKy0g ICAgICAgICAgICB9CistCistICAgICAgICAgICAgLy8vIEV4dHJhY3RzIHRoZSB2YWx1ZSBhdCBg aW5kZXhgLgorLSAgICAgICAgICAgIC8vLworLSAgICAgICAgICAgIC8vLyAjIFNhZmV0eQorLSAg ICAgICAgICAgIC8vLworLSAgICAgICAgICAgIC8vLyBJZiBgaW5kZXggPj0gU2VsZjo6bGFuZXMo KWAgdGhlIGJlaGF2aW9yIGlzIHVuZGVmaW5lZC4KKy0gICAgICAgICAgICAjW2lubGluZV0KKy0g ICAgICAgICAgICBwdWIgdW5zYWZlIGZuIGV4dHJhY3RfdW5jaGVja2VkKHNlbGYsIGluZGV4OiB1 c2l6ZSkgLT4gYm9vbCB7CistICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6bGx2bTo6c2ltZF9l eHRyYWN0OworLSAgICAgICAgICAgICAgICBsZXQgeDogJGllbGVtX3R5ID0gc2ltZF9leHRyYWN0 KHNlbGYuMCwgaW5kZXggYXMgdTMyKTsKKy0gICAgICAgICAgICAgICAgeCAhPSAwCistICAgICAg ICAgICAgfQorLQorLSAgICAgICAgICAgIC8vLyBSZXR1cm5zIGEgbmV3IHZlY3RvciB3aGVyZSB0 aGUgdmFsdWUgYXQgYGluZGV4YCBpcyByZXBsYWNlZCBieQorLSAgICAgICAgICAgIC8vLyBgbmV3 X3ZhbHVlYC4KKy0gICAgICAgICAgICAvLy8KKy0gICAgICAgICAgICAvLy8gIyBQYW5pY3MKKy0g ICAgICAgICAgICAvLy8KKy0gICAgICAgICAgICAvLy8gSWYgYGluZGV4ID49IFNlbGY6OmxhbmVz KClgLgorLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgICNbbXVzdF91c2UgPSAi cmVwbGFjZSBkb2VzIG5vdCBtb2RpZnkgdGhlIG9yaWdpbmFsIHZhbHVlIC0gXAorLSAgICAgICAg ICAgICAgICAgICAgICAgICAgaXQgcmV0dXJucyBhIG5ldyB2ZWN0b3Igd2l0aCB0aGUgdmFsdWUg YXQgYGluZGV4YCBcCistICAgICAgICAgICAgICAgICAgICAgICAgICByZXBsYWNlZCBieSBgbmV3 X3ZhbHVlYGQiCistICAgICAgICAgICAgXQorLSAgICAgICAgICAgIHB1YiBmbiByZXBsYWNlKHNl bGYsIGluZGV4OiB1c2l6ZSwgbmV3X3ZhbHVlOiBib29sKSAtPiBTZWxmIHsKKy0gICAgICAgICAg ICAgICAgYXNzZXJ0IShpbmRleCA8ICRlbGVtX2NvdW50KTsKKy0gICAgICAgICAgICAgICAgdW5z YWZlIHsgc2VsZi5yZXBsYWNlX3VuY2hlY2tlZChpbmRleCwgbmV3X3ZhbHVlKSB9CistICAgICAg ICAgICAgfQorLQorLSAgICAgICAgICAgIC8vLyBSZXR1cm5zIGEgbmV3IHZlY3RvciB3aGVyZSB0 aGUgdmFsdWUgYXQgYGluZGV4YCBpcyByZXBsYWNlZCBieQorLSAgICAgICAgICAgIC8vLyBgbmV3 X3ZhbHVlYC4KKy0gICAgICAgICAgICAvLy8KKy0gICAgICAgICAgICAvLy8gIyBTYWZldHkKKy0g ICAgICAgICAgICAvLy8KKy0gICAgICAgICAgICAvLy8gSWYgYGluZGV4ID49IFNlbGY6OmxhbmVz KClgIHRoZSBiZWhhdmlvciBpcyB1bmRlZmluZWQuCistICAgICAgICAgICAgI1tpbmxpbmVdCist ICAgICAgICAgICAgI1ttdXN0X3VzZSA9ICJyZXBsYWNlX3VuY2hlY2tlZCBkb2VzIG5vdCBtb2Rp ZnkgdGhlIG9yaWdpbmFsIHZhbHVlIC0gXAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgaXQg cmV0dXJucyBhIG5ldyB2ZWN0b3Igd2l0aCB0aGUgdmFsdWUgYXQgYGluZGV4YCBcCistICAgICAg ICAgICAgICAgICAgICAgICAgICByZXBsYWNlZCBieSBgbmV3X3ZhbHVlYGQiCistICAgICAgICAg ICAgXQorLSAgICAgICAgICAgIHB1YiB1bnNhZmUgZm4gcmVwbGFjZV91bmNoZWNrZWQoCistICAg ICAgICAgICAgICAgIHNlbGYsCistICAgICAgICAgICAgICAgIGluZGV4OiB1c2l6ZSwKKy0gICAg ICAgICAgICAgICAgbmV3X3ZhbHVlOiBib29sLAorLSAgICAgICAgICAgICkgLT4gU2VsZiB7Cist ICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6bGx2bTo6c2ltZF9pbnNlcnQ7CistICAgICAgICAg ICAgICAgIFNpbWQoc2ltZF9pbnNlcnQoc2VsZi4wLCBpbmRleCBhcyB1MzIsCistICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgU2VsZjo6Ym9vbF90b19pbnRlcm5hbChuZXdfdmFsdWUp KSkKKy0gICAgICAgICAgICB9CistICAgICAgICB9CistCistICAgICAgICB0ZXN0X2lmIXsKKy0g ICAgICAgICAgICAkdGVzdF90dDoKKy0gICAgICAgICAgICBwYXN0ZTo6aXRlbSEgeworLSAgICAg ICAgICAgICAgICBwdWIgbW9kIFs8JGlkIF9taW5pbWFsPl0geworLSAgICAgICAgICAgICAgICAg ICAgdXNlIHN1cGVyOjoqOworLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFy Z2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXQorLSAgICAgICAgICAgICAgICAgICAgI1tjZmdf YXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCistICAgICAg ICAgICAgICAgICAgICBmbiBtaW5pbWFsKCkgeworLSAgICAgICAgICAgICAgICAgICAgICAgIC8v IFRPRE86IHRlc3QgbmV3CistCistICAgICAgICAgICAgICAgICAgICAgICAgLy8gbGFuZXM6Cist ICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISgkZWxlbV9jb3VudCwgJGlkOjpsYW5l cygpKTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICAvLyBzcGxhdCBhbmQgZXh0cmFjdCAv IGV4dHJhY3RfdW5jaGVja2VkOgorLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2ZWMgPSAk aWQ6OnNwbGF0KHRydWUpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGZvciBpIGluIDAuLiRp ZDo6bGFuZXMoKSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodHJ1 ZSwgdmVjLmV4dHJhY3QoaSkpOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRf ZXEhKHRydWUsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zYWZl IHsgdmVjLmV4dHJhY3RfdW5jaGVja2VkKGkpIH0KKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICB9CistCistICAgICAgICAgICAgICAgICAg ICAgICAgLy8gcmVwbGFjZSAvIHJlcGxhY2VfdW5jaGVja2VkCistICAgICAgICAgICAgICAgICAg ICAgICAgbGV0IG5ld192ZWMgPSB2ZWMucmVwbGFjZSgwLCBmYWxzZSk7CistICAgICAgICAgICAg ICAgICAgICAgICAgZm9yIGkgaW4gMC4uJGlkOjpsYW5lcygpIHsKKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgaWYgaSA9PSAwIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGFzc2VydF9lcSEoZmFsc2UsIG5ld192ZWMuZXh0cmFjdChpKSk7CistICAgICAgICAgICAgICAg ICAgICAgICAgICAgIH0gZWxzZSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBh c3NlcnRfZXEhKHRydWUsIG5ld192ZWMuZXh0cmFjdChpKSk7CistICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAg ICAgICAgICAgbGV0IG5ld192ZWMgPSB1bnNhZmUgeworLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICB2ZWMucmVwbGFjZV91bmNoZWNrZWQoMCwgZmFsc2UpCistICAgICAgICAgICAgICAgICAg ICAgICAgfTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBmb3IgaSBpbiAwLi4kaWQ6OmxhbmVz KCkgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBpID09IDAgeworLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShmYWxzZSwgbmV3X3ZlYy5leHRyYWN0 KGkpKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodHJ1ZSwgbmV3X3ZlYy5leHRyYWN0KGkp KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAg ICAgIH0KKy0gICAgICAgICAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICAgICAgICAgIC8v IEZJWE1FOiB3YXNtLWJpbmRnZW4tdGVzdCBkb2VzIG5vdCBzdXBwb3J0ICNbc2hvdWxkX3Bhbmlj XQorLSAgICAgICAgICAgICAgICAgICAgLy8gI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAi d2FzbTMyIiksIHRlc3QpXQorLSAgICAgICAgICAgICAgICAgICAgLy8gI1tjZmdfYXR0cih0YXJn ZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCistICAgICAgICAgICAgICAg ICAgICAjW2NmZyhub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIikpXQorLSAgICAgICAgICAgICAg ICAgICAgI1t0ZXN0XQorLSAgICAgICAgICAgICAgICAgICAgI1tzaG91bGRfcGFuaWNdCistICAg ICAgICAgICAgICAgICAgICBmbiBleHRyYWN0X3BhbmljX29vYigpIHsKKy0gICAgICAgICAgICAg ICAgICAgICAgICBsZXQgdmVjID0gJGlkOjpzcGxhdChmYWxzZSk7CistICAgICAgICAgICAgICAg ICAgICAgICAgbGV0IF8gPSB2ZWMuZXh0cmFjdCgkaWQ6OmxhbmVzKCkpOworLSAgICAgICAgICAg ICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IHdhc20tYmluZGdlbi10 ZXN0IGRvZXMgbm90IHN1cHBvcnQgI1tzaG91bGRfcGFuaWNdCistICAgICAgICAgICAgICAgICAg ICAvLyAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldCistICAg ICAgICAgICAgICAgICAgICAvLyAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdh c21fYmluZGdlbl90ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAgICNbY2ZnKG5vdCh0YXJnZXRf YXJjaCA9ICJ3YXNtMzIiKSldCistICAgICAgICAgICAgICAgICAgICAjW3Rlc3RdCistICAgICAg ICAgICAgICAgICAgICAjW3Nob3VsZF9wYW5pY10KKy0gICAgICAgICAgICAgICAgICAgIGZuIHJl cGxhY2VfcGFuaWNfb29iKCkgeworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2ZWMgPSAk aWQ6OnNwbGF0KGZhbHNlKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgXyA9IHZlYy5y ZXBsYWNlKCRpZDo6bGFuZXMoKSwgdHJ1ZSk7CistICAgICAgICAgICAgICAgICAgICB9CistICAg ICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgIH0KKy19Citk aWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL21pbmltYWwv cHRyLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL21pbmltYWwvcHRy LnJzCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFj a2VkX3NpbWQvc3JjL2FwaS9taW5pbWFsL3B0ci5ycworKysrIC9kZXYvbnVsbAorQEAgLTEsMTM3 MyArMCwwIEBACistLy8hIE1pbmltYWwgQVBJIG9mIHBvaW50ZXIgdmVjdG9ycy4KKy0KKy1tYWNy b19ydWxlcyEgaW1wbF9taW5pbWFsX3AgeworLSAgICAoWyRlbGVtX3R5OnR5OyAkZWxlbV9jb3Vu dDpleHByXTogJGlkOmlkZW50LCAkbWFza190eTppZGVudCwKKy0gICAgICR1c2l6ZV90eTppZGVu dCwgJGlzaXplX3R5OmlkZW50IHwgJHJlZjppZGVudCB8ICR0ZXN0X3R0OnR0CistICAgICB8ICQo JGVsZW1fbmFtZTppZGVudCksKyB8ICgkdHJ1ZTpleHByLCAkZmFsc2U6ZXhwcikgfAorLSAgICAg JCgjWyRkb2M6bWV0YV0pKikgPT4geworLQorLSAgICAgICAgJCgjWyRkb2NdKSoKKy0gICAgICAg IHB1YiB0eXBlICRpZDxUPiA9IFNpbWQ8WyRlbGVtX3R5OyAkZWxlbV9jb3VudF0+OworLQorLSAg ICAgICAgaW1wbDxUPiBzZWFsZWQ6OlNpbWQgZm9yICRpZDxUPiB7CistICAgICAgICAgICAgdHlw ZSBFbGVtZW50ID0gJGVsZW1fdHk7CistICAgICAgICAgICAgY29uc3QgTEFORVM6IHVzaXplID0g JGVsZW1fY291bnQ7CistICAgICAgICAgICAgdHlwZSBMYW5lc1R5cGUgPSBbdTMyOyAkZWxlbV9j b3VudF07CistICAgICAgICB9CistCistICAgICAgICBpbXBsPFQ+ICRpZDxUPiB7CistICAgICAg ICAgICAgLy8vIENyZWF0ZXMgYSBuZXcgaW5zdGFuY2Ugd2l0aCBlYWNoIHZlY3RvciBlbGVtZW50 cyBpbml0aWFsaXplZAorLSAgICAgICAgICAgIC8vLyB3aXRoIHRoZSBwcm92aWRlZCB2YWx1ZXMu CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgI1thbGxvdyhjbGlwcHk6OnRv b19tYW55X2FyZ3VtZW50cyldCistICAgICAgICAgICAgcHViIGNvbnN0IGZuIG5ldygkKCRlbGVt X25hbWU6ICRlbGVtX3R5KSwqKSAtPiBTZWxmIHsKKy0gICAgICAgICAgICAgICAgU2ltZChjb2Rl Z2VuOjokaWQoJCgkZWxlbV9uYW1lKSwqKSkKKy0gICAgICAgICAgICB9CistCistICAgICAgICAg ICAgLy8vIFJldHVybnMgdGhlIG51bWJlciBvZiB2ZWN0b3IgbGFuZXMuCistICAgICAgICAgICAg I1tpbmxpbmVdCistICAgICAgICAgICAgcHViIGNvbnN0IGZuIGxhbmVzKCkgLT4gdXNpemUgewor LSAgICAgICAgICAgICAgICAkZWxlbV9jb3VudAorLSAgICAgICAgICAgIH0KKy0KKy0gICAgICAg ICAgICAvLy8gQ29uc3RydWN0cyBhIG5ldyBpbnN0YW5jZSB3aXRoIGVhY2ggZWxlbWVudCBpbml0 aWFsaXplZCB0bworLSAgICAgICAgICAgIC8vLyBgdmFsdWVgLgorLSAgICAgICAgICAgICNbaW5s aW5lXQorLSAgICAgICAgICAgIHB1YiBjb25zdCBmbiBzcGxhdCh2YWx1ZTogJGVsZW1fdHkpIC0+ IFNlbGYgeworLSAgICAgICAgICAgICAgICBTaW1kKGNvZGVnZW46OiRpZCgkKHsKKy0gICAgICAg ICAgICAgICAgICAgICNbYWxsb3cobm9uX2NhbWVsX2Nhc2VfdHlwZXMsIGRlYWRfY29kZSldCist ICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgJGVsZW1fbmFtZTsKKy0gICAgICAgICAgICAgICAg ICAgIHZhbHVlCistICAgICAgICAgICAgICAgIH0pLCopKQorLSAgICAgICAgICAgIH0KKy0KKy0g ICAgICAgICAgICAvLy8gQ29uc3RydWN0cyBhIG5ldyBpbnN0YW5jZSB3aXRoIGVhY2ggZWxlbWVu dCBpbml0aWFsaXplZCB0bworLSAgICAgICAgICAgIC8vLyBgbnVsbGAuCistICAgICAgICAgICAg I1tpbmxpbmVdCistICAgICAgICAgICAgcHViIGNvbnN0IGZuIG51bGwoKSAtPiBTZWxmIHsKKy0g ICAgICAgICAgICAgICAgU2VsZjo6c3BsYXQoY3JhdGU6OnB0cjo6bnVsbF9tdXQoKSBhcyAkZWxl bV90eSkKKy0gICAgICAgICAgICB9CistCistICAgICAgICAgICAgLy8vIFJldHVybnMgYSBtYXNr IHRoYXQgc2VsZWN0cyB0aG9zZSBsYW5lcyB0aGF0IGNvbnRhaW4gYG51bGxgCistICAgICAgICAg ICAgLy8vIHBvaW50ZXJzLgorLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIHB1 YiBmbiBpc19udWxsKHNlbGYpIC0+ICRtYXNrX3R5IHsKKy0gICAgICAgICAgICAgICAgc2VsZi5l cShTZWxmOjpudWxsKCkpCistICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgIC8vLyBFeHRy YWN0cyB0aGUgdmFsdWUgYXQgYGluZGV4YC4KKy0gICAgICAgICAgICAvLy8KKy0gICAgICAgICAg ICAvLy8gIyBQYW5pY3MKKy0gICAgICAgICAgICAvLy8KKy0gICAgICAgICAgICAvLy8gSWYgYGlu ZGV4ID49IFNlbGY6OmxhbmVzKClgLgorLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAg ICAgIHB1YiBmbiBleHRyYWN0KHNlbGYsIGluZGV4OiB1c2l6ZSkgLT4gJGVsZW1fdHkgeworLSAg ICAgICAgICAgICAgICBhc3NlcnQhKGluZGV4IDwgJGVsZW1fY291bnQpOworLSAgICAgICAgICAg ICAgICB1bnNhZmUgeyBzZWxmLmV4dHJhY3RfdW5jaGVja2VkKGluZGV4KSB9CistICAgICAgICAg ICAgfQorLQorLSAgICAgICAgICAgIC8vLyBFeHRyYWN0cyB0aGUgdmFsdWUgYXQgYGluZGV4YC4K Ky0gICAgICAgICAgICAvLy8KKy0gICAgICAgICAgICAvLy8gIyBTYWZldHkKKy0gICAgICAgICAg ICAvLy8KKy0gICAgICAgICAgICAvLy8gSWYgYGluZGV4ID49IFNlbGY6OmxhbmVzKClgIHRoZSBi ZWhhdmlvciBpcyB1bmRlZmluZWQuCistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAg ICAgcHViIHVuc2FmZSBmbiBleHRyYWN0X3VuY2hlY2tlZChzZWxmLCBpbmRleDogdXNpemUpIC0+ ICRlbGVtX3R5IHsKKy0gICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpsbHZtOjpzaW1kX2V4dHJh Y3Q7CistICAgICAgICAgICAgICAgIHNpbWRfZXh0cmFjdChzZWxmLjAsIGluZGV4IGFzIHUzMikK Ky0gICAgICAgICAgICB9CistCistICAgICAgICAgICAgLy8vIFJldHVybnMgYSBuZXcgdmVjdG9y IHdoZXJlIHRoZSB2YWx1ZSBhdCBgaW5kZXhgIGlzIHJlcGxhY2VkIGJ5CistICAgICAgICAgICAg Ly8vIGBuZXdfdmFsdWVgLgorLSAgICAgICAgICAgIC8vLworLSAgICAgICAgICAgIC8vLyAjIFBh bmljcworLSAgICAgICAgICAgIC8vLworLSAgICAgICAgICAgIC8vLyBJZiBgaW5kZXggPj0gU2Vs Zjo6bGFuZXMoKWAuCistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgI1ttdXN0 X3VzZSA9ICJyZXBsYWNlIGRvZXMgbm90IG1vZGlmeSB0aGUgb3JpZ2luYWwgdmFsdWUgLSBcCist ICAgICAgICAgICAgICAgICAgICAgICAgICBpdCByZXR1cm5zIGEgbmV3IHZlY3RvciB3aXRoIHRo ZSB2YWx1ZSBhdCBgaW5kZXhgIFwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxhY2Vk IGJ5IGBuZXdfdmFsdWVgZCIKKy0gICAgICAgICAgICBdCistICAgICAgICAgICAgI1thbGxvdyhj bGlwcHk6Om5vdF91bnNhZmVfcHRyX2FyZ19kZXJlZildCistICAgICAgICAgICAgcHViIGZuIHJl cGxhY2Uoc2VsZiwgaW5kZXg6IHVzaXplLCBuZXdfdmFsdWU6ICRlbGVtX3R5KSAtPiBTZWxmIHsK Ky0gICAgICAgICAgICAgICAgYXNzZXJ0IShpbmRleCA8ICRlbGVtX2NvdW50KTsKKy0gICAgICAg ICAgICAgICAgdW5zYWZlIHsgc2VsZi5yZXBsYWNlX3VuY2hlY2tlZChpbmRleCwgbmV3X3ZhbHVl KSB9CistICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgIC8vLyBSZXR1cm5zIGEgbmV3IHZl Y3RvciB3aGVyZSB0aGUgdmFsdWUgYXQgYGluZGV4YCBpcyByZXBsYWNlZCBieSBgbmV3X3ZhbHVl YC4KKy0gICAgICAgICAgICAvLy8KKy0gICAgICAgICAgICAvLy8gIyBTYWZldHkKKy0gICAgICAg ICAgICAvLy8KKy0gICAgICAgICAgICAvLy8gSWYgYGluZGV4ID49IFNlbGY6OmxhbmVzKClgIHRo ZSBiZWhhdmlvciBpcyB1bmRlZmluZWQuCistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAg ICAgICAgI1ttdXN0X3VzZSA9ICJyZXBsYWNlX3VuY2hlY2tlZCBkb2VzIG5vdCBtb2RpZnkgdGhl IG9yaWdpbmFsIHZhbHVlIC0gXAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgaXQgcmV0dXJu cyBhIG5ldyB2ZWN0b3Igd2l0aCB0aGUgdmFsdWUgYXQgYGluZGV4YCBcCistICAgICAgICAgICAg ICAgICAgICAgICAgICByZXBsYWNlZCBieSBgbmV3X3ZhbHVlYGQiCistICAgICAgICAgICAgXQor LSAgICAgICAgICAgIHB1YiB1bnNhZmUgZm4gcmVwbGFjZV91bmNoZWNrZWQoCistICAgICAgICAg ICAgICAgIHNlbGYsCistICAgICAgICAgICAgICAgIGluZGV4OiB1c2l6ZSwKKy0gICAgICAgICAg ICAgICAgbmV3X3ZhbHVlOiAkZWxlbV90eSwKKy0gICAgICAgICAgICApIC0+IFNlbGYgeworLSAg ICAgICAgICAgICAgICB1c2UgY3JhdGU6Omxsdm06OnNpbWRfaW5zZXJ0OworLSAgICAgICAgICAg ICAgICBTaW1kKHNpbWRfaW5zZXJ0KHNlbGYuMCwgaW5kZXggYXMgdTMyLCBuZXdfdmFsdWUpKQor LSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0KKy0KKy0gICAgICAgIHRlc3RfaWYheworLSAg ICAgICAgICAgICR0ZXN0X3R0OgorLSAgICAgICAgICAgIHBhc3RlOjppdGVtISB7CistICAgICAg ICAgICAgICAgIHB1YiBtb2QgWzwkaWQgX21pbmltYWw+XSB7CistICAgICAgICAgICAgICAgICAg ICB1c2Ugc3VwZXI6Oio7CistICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJn ZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldCistICAgICAgICAgICAgICAgICAgICAjW2NmZ19h dHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KKy0gICAgICAg ICAgICAgICAgICAgIGZuIG1pbmltYWwoKSB7CistICAgICAgICAgICAgICAgICAgICAgICAgLy8g bGFuZXM6CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISgkZWxlbV9jb3VudCwg JGlkOjo8aTMyPjo6bGFuZXMoKSk7CistCistICAgICAgICAgICAgICAgICAgICAgICAgLy8gc3Bs YXQgYW5kIGV4dHJhY3QgLyBleHRyYWN0X3VuY2hlY2tlZDoKKy0gICAgICAgICAgICAgICAgICAg ICAgICBsZXQgVkFMNzogPCRpZDxpMzI+IGFzIHNlYWxlZDo6U2ltZD46OkVsZW1lbnQKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgPSAkcmVmISg3KTsKKy0gICAgICAgICAgICAgICAgICAg ICAgICBsZXQgVkFMNDI6IDwkaWQ8aTMyPiBhcyBzZWFsZWQ6OlNpbWQ+OjpFbGVtZW50CistICAg ICAgICAgICAgICAgICAgICAgICAgICAgID0gJHJlZiEoNDIpOworLSAgICAgICAgICAgICAgICAg ICAgICAgIGxldCBWRUM6ICRpZDxpMzI+ID0gJGlkOjpzcGxhdChWQUw3KTsKKy0gICAgICAgICAg ICAgICAgICAgICAgICBmb3IgaSBpbiAwLi4kaWQ6OjxpMzI+OjpsYW5lcygpIHsKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShWQUw3LCBWRUMuZXh0cmFjdChpKSk7Cist ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoCistICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBWQUw3LCB1bnNhZmUgeyBWRUMuZXh0cmFjdF91bmNoZWNrZWQoaSkg fQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICApOworLSAgICAgICAgICAgICAgICAgICAg ICAgIH0KKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICAvLyByZXBsYWNlIC8gcmVwbGFjZV91 bmNoZWNrZWQKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbmV3X3ZlYyA9IFZFQy5yZXBs YWNlKDAsIFZBTDQyKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBmb3IgaSBpbiAwLi4kaWQ6 OjxpMzI+OjpsYW5lcygpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgaSA9PSAw IHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoVkFMNDIsIG5l d192ZWMuZXh0cmFjdChpKSk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7 CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKFZBTDcsIG5ld192 ZWMuZXh0cmFjdChpKSk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAg ICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld192ZWMg PSB1bnNhZmUgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBWRUMucmVwbGFjZV91bmNo ZWNrZWQoMCwgVkFMNDIpCistICAgICAgICAgICAgICAgICAgICAgICAgfTsKKy0gICAgICAgICAg ICAgICAgICAgICAgICBmb3IgaSBpbiAwLi4kaWQ6OjxpMzI+OjpsYW5lcygpIHsKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgaWYgaSA9PSAwIHsKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGFzc2VydF9lcSEoVkFMNDIsIG5ld192ZWMuZXh0cmFjdChpKSk7CistICAgICAg ICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CistICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBhc3NlcnRfZXEhKFZBTDcsIG5ld192ZWMuZXh0cmFjdChpKSk7CistICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgICAgICB9CistCistICAg ICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBuID0gJGlkOjo8aTMyPjo6bnVsbCgpOworLSAg ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoCistICAgICAgICAgICAgICAgICAgICAg ICAgICAgIG4sCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpZDo6PGkzMj46OnNwbGF0 KHVuc2FmZSB7IGNyYXRlOjptZW06Onplcm9lZCgpIH0pCistICAgICAgICAgICAgICAgICAgICAg ICAgKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKG4uaXNfbnVsbCgpLmFsbCgp KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBuID0gbi5yZXBsYWNlKAorLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAwLCB1bnNhZmUgeyBjcmF0ZTo6bWVtOjp0cmFuc211dGUoMV9pc2l6 ZSkgfQorLSAgICAgICAgICAgICAgICAgICAgICAgICk7CistICAgICAgICAgICAgICAgICAgICAg ICAgYXNzZXJ0ISghbi5pc19udWxsKCkuYWxsKCkpOworLSAgICAgICAgICAgICAgICAgICAgICAg IGlmICRpZDo6PGkzMj46OmxhbmVzKCkgPiAxIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgYXNzZXJ0IShuLmlzX251bGwoKS5hbnkoKSk7CistICAgICAgICAgICAgICAgICAgICAgICAg fSBlbHNlIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0ISghbi5pc19udWxs KCkuYW55KCkpOworLSAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAg ICAgIH0KKy0KKy0gICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiB3YXNtLWJpbmRnZW4tdGVz dCBkb2VzIG5vdCBzdXBwb3J0ICNbc2hvdWxkX3BhbmljXQorLSAgICAgICAgICAgICAgICAgICAg Ly8gI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXQorLSAgICAg ICAgICAgICAgICAgICAgLy8gI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNt X2JpbmRnZW5fdGVzdCldCistICAgICAgICAgICAgICAgICAgICAjW2NmZyhub3QodGFyZ2V0X2Fy Y2ggPSAid2FzbTMyIikpXQorLSAgICAgICAgICAgICAgICAgICAgI1t0ZXN0XQorLSAgICAgICAg ICAgICAgICAgICAgI1tzaG91bGRfcGFuaWNdCistICAgICAgICAgICAgICAgICAgICBmbiBleHRy YWN0X3BhbmljX29vYigpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgVkFMOiA8JGlk PGkzMj4gYXMgc2VhbGVkOjpTaW1kPjo6RWxlbWVudAorLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICA9ICRyZWYhKDcpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBWRUM6ICRpZDxp MzI+ID0gJGlkOjpzcGxhdChWQUwpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBfID0g VkVDLmV4dHJhY3QoJGlkOjo8aTMyPjo6bGFuZXMoKSk7CistICAgICAgICAgICAgICAgICAgICB9 CistCistICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogd2FzbS1iaW5kZ2VuLXRlc3QgZG9l cyBub3Qgc3VwcG9ydCAjW3Nob3VsZF9wYW5pY10KKy0gICAgICAgICAgICAgICAgICAgIC8vICNb Y2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0KKy0gICAgICAgICAg ICAgICAgICAgIC8vICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5k Z2VuX3Rlc3QpXQorLSAgICAgICAgICAgICAgICAgICAgI1tjZmcobm90KHRhcmdldF9hcmNoID0g Indhc20zMiIpKV0KKy0gICAgICAgICAgICAgICAgICAgICNbdGVzdF0KKy0gICAgICAgICAgICAg ICAgICAgICNbc2hvdWxkX3BhbmljXQorLSAgICAgICAgICAgICAgICAgICAgZm4gcmVwbGFjZV9w YW5pY19vb2IoKSB7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IFZBTDogPCRpZDxpMzI+ IGFzIHNlYWxlZDo6U2ltZD46OkVsZW1lbnQKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg PSAkcmVmISg3KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgVkFMNDI6IDwkaWQ8aTMy PiBhcyBzZWFsZWQ6OlNpbWQ+OjpFbGVtZW50CistICAgICAgICAgICAgICAgICAgICAgICAgICAg ID0gJHJlZiEoNDIpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBWRUM6ICRpZDxpMzI+ ID0gJGlkOjpzcGxhdChWQUwpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBfID0gVkVD LnJlcGxhY2UoJGlkOjo8aTMyPjo6bGFuZXMoKSwgVkFMNDIpOworLSAgICAgICAgICAgICAgICAg ICAgfQorLSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLQor LSAgICAgICAgaW1wbDxUPiBjcmF0ZTo6Zm10OjpEZWJ1ZyBmb3IgJGlkPFQ+IHsKKy0gICAgICAg ICAgICAjW2FsbG93KGNsaXBweTo6bWlzc2luZ19pbmxpbmVfaW5fcHVibGljX2l0ZW1zKV0KKy0g ICAgICAgICAgICBmbiBmbXQoJnNlbGYsIGY6ICZtdXQgY3JhdGU6OmZtdDo6Rm9ybWF0dGVyPCdf PikKKy0gICAgICAgICAgICAgICAgICAgLT4gY3JhdGU6OmZtdDo6UmVzdWx0IHsKKy0gICAgICAg ICAgICAgICAgd3JpdGUhKAorLSAgICAgICAgICAgICAgICAgICAgZiwKKy0gICAgICAgICAgICAg ICAgICAgICJ7fTx7fT4oIiwKKy0gICAgICAgICAgICAgICAgICAgIHN0cmluZ2lmeSEoJGlkKSwK Ky0gICAgICAgICAgICAgICAgICAgIGNyYXRlOjppbnRyaW5zaWNzOjp0eXBlX25hbWU6OjxUPigp CistICAgICAgICAgICAgICAgICk/OworLSAgICAgICAgICAgICAgICBmb3IgaSBpbiAwLi4kZWxl bV9jb3VudCB7CistICAgICAgICAgICAgICAgICAgICBpZiBpID4gMCB7CistICAgICAgICAgICAg ICAgICAgICAgICAgd3JpdGUhKGYsICIsICIpPzsKKy0gICAgICAgICAgICAgICAgICAgIH0KKy0g ICAgICAgICAgICAgICAgICAgIHNlbGYuZXh0cmFjdChpKS5mbXQoZik/OworLSAgICAgICAgICAg ICAgICB9CistICAgICAgICAgICAgICAgIHdyaXRlIShmLCAiKSIpCistICAgICAgICAgICAgfQor LSAgICAgICAgfQorLQorLSAgICAgICAgIHRlc3RfaWYheworLSAgICAgICAgICAgICR0ZXN0X3R0 OgorLSAgICAgICAgICAgIHBhc3RlOjppdGVtISB7CistICAgICAgICAgICAgICAgIHB1YiBtb2Qg WzwkaWQgX2ZtdF9kZWJ1Zz5dIHsKKy0gICAgICAgICAgICAgICAgICAgIHVzZSBzdXBlcjo6KjsK Ky0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20z MiIpLCB0ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2gg PSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQorLSAgICAgICAgICAgICAgICAgICAgZm4g ZGVidWcoKSB7CistICAgICAgICAgICAgICAgICAgICAgICAgdXNlIGFycmF5dmVjOjp7QXJyYXlT dHJpbmcsQXJyYXlWZWN9OworLSAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgVGlueVN0cmlu ZyA9IEFycmF5U3RyaW5nPFt1ODsgNTEyXT47CistCistICAgICAgICAgICAgICAgICAgICAgICAg dXNlIGNyYXRlOjpmbXQ6OldyaXRlOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2ID0g JGlkOjo8aTMyPjo6ZGVmYXVsdCgpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQg cyA9IFRpbnlTdHJpbmc6Om5ldygpOworLSAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRlISgm bXV0IHMsICJ7Oj99IiwgdikudW53cmFwKCk7CistCistICAgICAgICAgICAgICAgICAgICAgICAg bGV0IG11dCBiZWcgPSBUaW55U3RyaW5nOjpuZXcoKTsKKy0gICAgICAgICAgICAgICAgICAgICAg ICB3cml0ZSEoJm11dCBiZWcsICJ7fTxpMzI+KCIsIHN0cmluZ2lmeSEoJGlkKSkudW53cmFwKCk7 CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0ISgKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgcy5zdGFydHNfd2l0aChiZWcuYXNfc3RyKCkpLAorLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAicyA9IHt9IChzaG91bGQgc3RhcnQgd2l0aCA9IHt9KSIsIHMsIGJlZworLSAg ICAgICAgICAgICAgICAgICAgICAgICk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0 IShzLmVuZHNfd2l0aCgiKSIpKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgczogQXJy YXlWZWM8W1RpbnlTdHJpbmc7IDY0XT4KKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBz LnJlcGxhY2UoYmVnLmFzX3N0cigpLCAiIikKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg LnJlcGxhY2UoIikiLCAiIikuc3BsaXQoIiwiKQorLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAubWFwKHx2fCBUaW55U3RyaW5nOjpmcm9tKHYudHJpbSgpKS51bndyYXAoKSkKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgLmNvbGxlY3QoKTsKKy0gICAgICAgICAgICAgICAgICAgICAg ICBhc3NlcnRfZXEhKHMubGVuKCksICRpZDo6PGkzMj46OmxhbmVzKCkpOworLSAgICAgICAgICAg ICAgICAgICAgICAgIGZvciAoaW5kZXgsIHNzKSBpbiBzLmludG9faXRlcigpLmVudW1lcmF0ZSgp IHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBlID0gVGlueVN0cmluZzo6 bmV3KCk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRlISgmbXV0IGUsICJ7Oj99 Iiwgdi5leHRyYWN0KGluZGV4KSkudW53cmFwKCk7CistICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGFzc2VydF9lcSEoc3MsIGUpOworLSAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAg ICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgIH0KKy0g ICAgICAgICB9CistCistICAgICAgICBpbXBsPFQ+IERlZmF1bHQgZm9yICRpZDxUPiB7CistICAg ICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgZm4gZGVmYXVsdCgpIC0+IFNlbGYgewor LSAgICAgICAgICAgICAgICAvLyBGSVhNRTogcHRycyBkbyBub3QgaW1wbGVtZW50IGRlZmF1bHQK Ky0gICAgICAgICAgICAgICAgU2VsZjo6bnVsbCgpCistICAgICAgICAgICAgfQorLSAgICAgICAg fQorLQorLSAgICAgICAgdGVzdF9pZiF7CistICAgICAgICAgICAgJHRlc3RfdHQ6CistICAgICAg ICAgICAgcGFzdGU6Oml0ZW0hIHsKKy0gICAgICAgICAgICAgICAgcHViIG1vZCBbPCRpZCBfZGVm YXVsdD5dIHsKKy0gICAgICAgICAgICAgICAgICAgIHVzZSBzdXBlcjo6KjsKKy0gICAgICAgICAg ICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0K Ky0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwg d2FzbV9iaW5kZ2VuX3Rlc3QpXQorLSAgICAgICAgICAgICAgICAgICAgZm4gZGVmYXVsdCgpIHsK Ky0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgYSA9ICRpZDo6PGkzMj46OmRlZmF1bHQoKTsK Ky0gICAgICAgICAgICAgICAgICAgICAgICBmb3IgaSBpbiAwLi4kaWQ6OjxpMzI+OjpsYW5lcygp IHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISgKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGEuZXh0cmFjdChpKSwgdW5zYWZlIHsgY3JhdGU6Om1lbTo6 emVyb2VkKCkgfQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICApOworLSAgICAgICAgICAg ICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAg fQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0KKy0gICAgICAgIGltcGw8VD4gJGlkPFQ+ IHsKKy0gICAgICAgICAgICAvLy8gTGFuZS13aXNlIGVxdWFsaXR5IGNvbXBhcmlzb24uCistICAg ICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgcHViIGZuIGVxKHNlbGYsIG90aGVyOiBT ZWxmKSAtPiAkbWFza190eSB7CistICAgICAgICAgICAgICAgIHVuc2FmZSB7CistICAgICAgICAg ICAgICAgICAgICB1c2UgY3JhdGU6Omxsdm06OnNpbWRfZXE7CistICAgICAgICAgICAgICAgICAg ICBsZXQgYTogJHVzaXplX3R5ID0gY3JhdGU6Om1lbTo6dHJhbnNtdXRlKHNlbGYpOworLSAgICAg ICAgICAgICAgICAgICAgbGV0IGI6ICR1c2l6ZV90eSA9IGNyYXRlOjptZW06OnRyYW5zbXV0ZShv dGhlcik7CistICAgICAgICAgICAgICAgICAgICBTaW1kKHNpbWRfZXEoYS4wLCBiLjApKQorLSAg ICAgICAgICAgICAgICB9CistICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgIC8vLyBMYW5l LXdpc2UgaW5lcXVhbGl0eSBjb21wYXJpc29uLgorLSAgICAgICAgICAgICNbaW5saW5lXQorLSAg ICAgICAgICAgIHB1YiBmbiBuZShzZWxmLCBvdGhlcjogU2VsZikgLT4gJG1hc2tfdHkgeworLSAg ICAgICAgICAgICAgICB1bnNhZmUgeworLSAgICAgICAgICAgICAgICAgICAgdXNlIGNyYXRlOjps bHZtOjpzaW1kX25lOworLSAgICAgICAgICAgICAgICAgICAgbGV0IGE6ICR1c2l6ZV90eSA9IGNy YXRlOjptZW06OnRyYW5zbXV0ZShzZWxmKTsKKy0gICAgICAgICAgICAgICAgICAgIGxldCBiOiAk dXNpemVfdHkgPSBjcmF0ZTo6bWVtOjp0cmFuc211dGUob3RoZXIpOworLSAgICAgICAgICAgICAg ICAgICAgU2ltZChzaW1kX25lKGEuMCwgYi4wKSkKKy0gICAgICAgICAgICAgICAgfQorLSAgICAg ICAgICAgIH0KKy0KKy0gICAgICAgICAgICAvLy8gTGFuZS13aXNlIGxlc3MtdGhhbiBjb21wYXJp c29uLgorLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIHB1YiBmbiBsdChzZWxm LCBvdGhlcjogU2VsZikgLT4gJG1hc2tfdHkgeworLSAgICAgICAgICAgICAgICB1bnNhZmUgewor LSAgICAgICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpsbHZtOjpzaW1kX2x0OworLSAgICAgICAg ICAgICAgICAgICAgbGV0IGE6ICR1c2l6ZV90eSA9IGNyYXRlOjptZW06OnRyYW5zbXV0ZShzZWxm KTsKKy0gICAgICAgICAgICAgICAgICAgIGxldCBiOiAkdXNpemVfdHkgPSBjcmF0ZTo6bWVtOjp0 cmFuc211dGUob3RoZXIpOworLSAgICAgICAgICAgICAgICAgICAgU2ltZChzaW1kX2x0KGEuMCwg Yi4wKSkKKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAg ICAvLy8gTGFuZS13aXNlIGxlc3MtdGhhbi1vci1lcXVhbHMgY29tcGFyaXNvbi4KKy0gICAgICAg ICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBwdWIgZm4gbGUoc2VsZiwgb3RoZXI6IFNlbGYp IC0+ICRtYXNrX3R5IHsKKy0gICAgICAgICAgICAgICAgdW5zYWZlIHsKKy0gICAgICAgICAgICAg ICAgICAgIHVzZSBjcmF0ZTo6bGx2bTo6c2ltZF9sZTsKKy0gICAgICAgICAgICAgICAgICAgIGxl dCBhOiAkdXNpemVfdHkgPSBjcmF0ZTo6bWVtOjp0cmFuc211dGUoc2VsZik7CistICAgICAgICAg ICAgICAgICAgICBsZXQgYjogJHVzaXplX3R5ID0gY3JhdGU6Om1lbTo6dHJhbnNtdXRlKG90aGVy KTsKKy0gICAgICAgICAgICAgICAgICAgIFNpbWQoc2ltZF9sZShhLjAsIGIuMCkpCistICAgICAg ICAgICAgICAgIH0KKy0gICAgICAgICAgICB9CistCistICAgICAgICAgICAgLy8vIExhbmUtd2lz ZSBncmVhdGVyLXRoYW4gY29tcGFyaXNvbi4KKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAg ICAgICAgICBwdWIgZm4gZ3Qoc2VsZiwgb3RoZXI6IFNlbGYpIC0+ICRtYXNrX3R5IHsKKy0gICAg ICAgICAgICAgICAgdW5zYWZlIHsKKy0gICAgICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6bGx2 bTo6c2ltZF9ndDsKKy0gICAgICAgICAgICAgICAgICAgIGxldCBhOiAkdXNpemVfdHkgPSBjcmF0 ZTo6bWVtOjp0cmFuc211dGUoc2VsZik7CistICAgICAgICAgICAgICAgICAgICBsZXQgYjogJHVz aXplX3R5ID0gY3JhdGU6Om1lbTo6dHJhbnNtdXRlKG90aGVyKTsKKy0gICAgICAgICAgICAgICAg ICAgIFNpbWQoc2ltZF9ndChhLjAsIGIuMCkpCistICAgICAgICAgICAgICAgIH0KKy0gICAgICAg ICAgICB9CistCistICAgICAgICAgICAgLy8vIExhbmUtd2lzZSBncmVhdGVyLXRoYW4tb3ItZXF1 YWxzIGNvbXBhcmlzb24uCistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgcHVi IGZuIGdlKHNlbGYsIG90aGVyOiBTZWxmKSAtPiAkbWFza190eSB7CistICAgICAgICAgICAgICAg IHVuc2FmZSB7CistICAgICAgICAgICAgICAgICAgICB1c2UgY3JhdGU6Omxsdm06OnNpbWRfZ2U7 CistICAgICAgICAgICAgICAgICAgICBsZXQgYTogJHVzaXplX3R5ID0gY3JhdGU6Om1lbTo6dHJh bnNtdXRlKHNlbGYpOworLSAgICAgICAgICAgICAgICAgICAgbGV0IGI6ICR1c2l6ZV90eSA9IGNy YXRlOjptZW06OnRyYW5zbXV0ZShvdGhlcik7CistICAgICAgICAgICAgICAgICAgICBTaW1kKHNp bWRfZ2UoYS4wLCBiLjApKQorLSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgfQorLSAg ICAgICAgfQorLQorLSAgICAgICAgdGVzdF9pZiF7CistICAgICAgICAgICAgJHRlc3RfdHQ6Cist ICAgICAgICAgICAgcGFzdGU6Oml0ZW0hIHsKKy0gICAgICAgICAgICAgICAgcHViIG1vZCBbPCRp ZCBfY21wX3ZlcnRpY2FsPl0geworLSAgICAgICAgICAgICAgICAgICAgdXNlIHN1cGVyOjoqOwor LSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMy IiksIHRlc3QpXQorLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9 ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCistICAgICAgICAgICAgICAgICAgICBmbiBj bXAoKSB7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGEgPSAkaWQ6OjxpMzI+OjpudWxs KCk7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGIgPSAkaWQ6OjxpMzI+OjpzcGxhdCh1 bnNhZmUgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmF0ZTo6bWVtOjp0cmFuc211 dGUoMV9pc2l6ZSkKKy0gICAgICAgICAgICAgICAgICAgICAgICB9KTsKKy0KKy0gICAgICAgICAg ICAgICAgICAgICAgICBsZXQgciA9IGEubHQoYik7CistICAgICAgICAgICAgICAgICAgICAgICAg bGV0IGUgPSAkbWFza190eTo6c3BsYXQodHJ1ZSk7CistICAgICAgICAgICAgICAgICAgICAgICAg YXNzZXJ0IShyID09IGUpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCByID0gYS5sZShi KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKHIgPT0gZSk7CistCistICAgICAg ICAgICAgICAgICAgICAgICAgbGV0IGUgPSAkbWFza190eTo6c3BsYXQoZmFsc2UpOworLSAgICAg ICAgICAgICAgICAgICAgICAgIGxldCByID0gYS5ndChiKTsKKy0gICAgICAgICAgICAgICAgICAg ICAgICBhc3NlcnQhKHIgPT0gZSk7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHIgPSBh LmdlKGIpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCEociA9PSBlKTsKKy0gICAg ICAgICAgICAgICAgICAgICAgICBsZXQgciA9IGEuZXEoYik7CistICAgICAgICAgICAgICAgICAg ICAgICAgYXNzZXJ0IShyID09IGUpOworLQorLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBt dXQgYSA9IGE7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBiID0gYjsKKy0gICAg ICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IGUgPSBlOworLSAgICAgICAgICAgICAgICAgICAg ICAgIGZvciBpIGluIDAuLiRpZDo6PGkzMj46OmxhbmVzKCkgeworLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICBpZiBpICUgMiA9PSAwIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGEgPSBhLnJlcGxhY2UoCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg aSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNhZmUgeyBjcmF0ZTo6 bWVtOjp0cmFuc211dGUoMF9pc2l6ZSkgfQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGIgPSBiLnJlcGxhY2UoCist ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaSwKKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB1bnNhZmUgeyBjcmF0ZTo6bWVtOjp0cmFuc211dGUoMV9pc2l6 ZSkgfQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKKy0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGUgPSBlLnJlcGxhY2UoaSwgdHJ1ZSk7CistICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0gZWxzZSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBhID0gYS5yZXBsYWNlKAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGks CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zYWZlIHsgY3JhdGU6Om1l bTo6dHJhbnNtdXRlKDFfaXNpemUpIH0KKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiID0gYi5yZXBsYWNlKAorLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGksCistICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgdW5zYWZlIHsgY3JhdGU6Om1lbTo6dHJhbnNtdXRlKDBfaXNpemUp IH0KKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CistICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBlID0gZS5yZXBsYWNlKGksIGZhbHNlKTsKKy0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAg ICAgICAgICAgICAgICBsZXQgciA9IGEubHQoYik7CistICAgICAgICAgICAgICAgICAgICAgICAg YXNzZXJ0IShyID09IGUpOworLSAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAg ICB9CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLQorLSAgICAgICAgI1thbGxvdyhjbGlw cHk6OnBhcnRpYWxlcV9uZV9pbXBsKV0KKy0gICAgICAgIGltcGw8VD4gY3JhdGU6OmNtcDo6UGFy dGlhbEVxPCRpZDxUPj4gZm9yICRpZDxUPiB7CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAg ICAgICAgICAgZm4gZXEoJnNlbGYsIG90aGVyOiAmU2VsZikgLT4gYm9vbCB7CistICAgICAgICAg ICAgICAgICRpZDo6PFQ+OjplcSgqc2VsZiwgKm90aGVyKS5hbGwoKQorLSAgICAgICAgICAgIH0K Ky0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBmbiBuZSgmc2VsZiwgb3RoZXI6 ICZTZWxmKSAtPiBib29sIHsKKy0gICAgICAgICAgICAgICAgJGlkOjo8VD46Om5lKCpzZWxmLCAq b3RoZXIpLmFueSgpCistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLQorLSAgICAgICAgLy8g RklYTUU6IGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmctbnVyc2VyeS9ydXN0LWNsaXBweS9p c3N1ZXMvMjg5MgorLSAgICAgICAgI1thbGxvdyhjbGlwcHk6OnBhcnRpYWxlcV9uZV9pbXBsKV0K Ky0gICAgICAgIGltcGw8VD4gY3JhdGU6OmNtcDo6UGFydGlhbEVxPExleGljb2dyYXBoaWNhbGx5 T3JkZXJlZDwkaWQ8VD4+PgorLSAgICAgICAgICAgIGZvciBMZXhpY29ncmFwaGljYWxseU9yZGVy ZWQ8JGlkPFQ+PgorLSAgICAgICAgeworLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAg ICAgIGZuIGVxKCZzZWxmLCBvdGhlcjogJlNlbGYpIC0+IGJvb2wgeworLSAgICAgICAgICAgICAg ICBzZWxmLjAgPT0gb3RoZXIuMAorLSAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAjW2lubGlu ZV0KKy0gICAgICAgICAgICBmbiBuZSgmc2VsZiwgb3RoZXI6ICZTZWxmKSAtPiBib29sIHsKKy0g ICAgICAgICAgICAgICAgc2VsZi4wICE9IG90aGVyLjAKKy0gICAgICAgICAgICB9CistICAgICAg ICB9CistCistICAgICAgICB0ZXN0X2lmIXsKKy0gICAgICAgICAgICAkdGVzdF90dDoKKy0gICAg ICAgICAgICBwYXN0ZTo6aXRlbSEgeworLSAgICAgICAgICAgICAgICBwdWIgbW9kIFs8JGlkIF9j bXBfUGFydGlhbEVxPl0geworLSAgICAgICAgICAgICAgICAgICAgdXNlIHN1cGVyOjoqOworLSAg ICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiks IHRlc3QpXQorLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3 YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCistICAgICAgICAgICAgICAgICAgICBmbiBwYXJ0 aWFsX2VxKCkgeworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBhID0gJGlkOjo8aTMyPjo6 bnVsbCgpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBiID0gJGlkOjo8aTMyPjo6c3Bs YXQodW5zYWZlIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JhdGU6Om1lbTo6dHJh bnNtdXRlKDFfaXNpemUpCistICAgICAgICAgICAgICAgICAgICAgICAgfSk7CistCistICAgICAg ICAgICAgICAgICAgICAgICAgYXNzZXJ0IShhICE9IGIpOworLSAgICAgICAgICAgICAgICAgICAg ICAgIGFzc2VydCEoIShhID09IGIpKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQh KGEgPT0gYSk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0ISghKGEgIT0gYSkpOwor LQorLSAgICAgICAgICAgICAgICAgICAgICAgIGlmICRpZDo6PGkzMj46OmxhbmVzKCkgPiAxIHsK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGEgPSAkaWQ6OjxpMzI+OjpudWxsKCku cmVwbGFjZSgwLCB1bnNhZmUgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3Jh dGU6Om1lbTo6dHJhbnNtdXRlKDFfaXNpemUpCistICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0pOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgYiA9ICRpZDo6PGkzMj46OnNw bGF0KHVuc2FmZSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmF0ZTo6bWVt Ojp0cmFuc211dGUoMV9pc2l6ZSkKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7Cist CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCEoYSAhPSBiKTsKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0ISghKGEgPT0gYikpOworLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICBhc3NlcnQhKGEgPT0gYSk7CistICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGFzc2VydCEoIShhICE9IGEpKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICB9CistICAg ICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICB9Cist ICAgICAgICB9CistCistICAgICAgICBpbXBsPFQ+IGNyYXRlOjpjbXA6OkVxIGZvciAkaWQ8VD4g e30KKy0gICAgICAgIGltcGw8VD4gY3JhdGU6OmNtcDo6RXEgZm9yIExleGljb2dyYXBoaWNhbGx5 T3JkZXJlZDwkaWQ8VD4+IHt9CistCistICAgICAgICB0ZXN0X2lmIXsKKy0gICAgICAgICAgICAk dGVzdF90dDoKKy0gICAgICAgICAgICBwYXN0ZTo6aXRlbSEgeworLSAgICAgICAgICAgICAgICBw dWIgbW9kIFs8JGlkIF9jbXBfZXE+XSB7CistICAgICAgICAgICAgICAgICAgICB1c2Ugc3VwZXI6 Oio7CistICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3 YXNtMzIiKSwgdGVzdCldCistICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKHRhcmdldF9h cmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAg IGZuIGVxKCkgeworLSAgICAgICAgICAgICAgICAgICAgICAgIGZuIGZvbzxFOiBjcmF0ZTo6Y21w OjpFcT4oXzogRSkge30KKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgYSA9ICRpZDo6PGkz Mj46Om51bGwoKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBmb28oYSk7CistICAgICAgICAg ICAgICAgICAgICB9CistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICB9CistICAgICAg ICB9CistCistICAgICAgICBpbXBsPFQ+IEZyb208WyRlbGVtX3R5OyAkZWxlbV9jb3VudF0+IGZv ciAkaWQ8VD4geworLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIGZuIGZyb20o YXJyYXk6IFskZWxlbV90eTsgJGVsZW1fY291bnRdKSAtPiBTZWxmIHsKKy0gICAgICAgICAgICAg ICAgdW5zYWZlIHsKKy0gICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiB1bm5lY2Vzc2FyeSB6 ZXJvaW5nOyBiZXR0ZXIgdGhhbiBVQi4KKy0gICAgICAgICAgICAgICAgICAgIGxldCBtdXQgdTog U2VsZiA9IGNyYXRlOjptZW06Onplcm9lZCgpOworLSAgICAgICAgICAgICAgICAgICAgY3JhdGU6 OnB0cjo6Y29weV9ub25vdmVybGFwcGluZygKKy0gICAgICAgICAgICAgICAgICAgICAgICAmYXJy YXkgYXMgKmNvbnN0IFskZWxlbV90eTsgJGVsZW1fY291bnRdIGFzICpjb25zdCB1OCwKKy0gICAg ICAgICAgICAgICAgICAgICAgICAmbXV0IHUgYXMgKm11dCBTZWxmIGFzICptdXQgdTgsCistICAg ICAgICAgICAgICAgICAgICAgICAgY3JhdGU6Om1lbTo6c2l6ZV9vZjo6PFNlbGY+KCkKKy0gICAg ICAgICAgICAgICAgICAgICk7CistICAgICAgICAgICAgICAgICAgICB1CistICAgICAgICAgICAg ICAgIH0KKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgICAgICBpbXBsPFQ+IEludG88 WyRlbGVtX3R5OyAkZWxlbV9jb3VudF0+IGZvciAkaWQ8VD4geworLSAgICAgICAgICAgICNbaW5s aW5lXQorLSAgICAgICAgICAgIGZuIGludG8oc2VsZikgLT4gWyRlbGVtX3R5OyAkZWxlbV9jb3Vu dF0geworLSAgICAgICAgICAgICAgICB1bnNhZmUgeworLSAgICAgICAgICAgICAgICAgICAgLy8g RklYTUU6IHVubmVjZXNzYXJ5IHplcm9pbmc7IGJldHRlciB0aGFuIFVCLgorLSAgICAgICAgICAg ICAgICAgICAgbGV0IG11dCB1OiBbJGVsZW1fdHk7ICRlbGVtX2NvdW50XSA9IGNyYXRlOjptZW06 Onplcm9lZCgpOworLSAgICAgICAgICAgICAgICAgICAgY3JhdGU6OnB0cjo6Y29weV9ub25vdmVy bGFwcGluZygKKy0gICAgICAgICAgICAgICAgICAgICAgICAmc2VsZiBhcyAqY29uc3QgJGlkPFQ+ IGFzICpjb25zdCB1OCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAmbXV0IHUgYXMgKm11dCBb JGVsZW1fdHk7ICRlbGVtX2NvdW50XSBhcyAqbXV0IHU4LAorLSAgICAgICAgICAgICAgICAgICAg ICAgIGNyYXRlOjptZW06OnNpemVfb2Y6OjxTZWxmPigpCistICAgICAgICAgICAgICAgICAgICAp OworLSAgICAgICAgICAgICAgICAgICAgdQorLSAgICAgICAgICAgICAgICB9CistICAgICAgICAg ICAgfQorLSAgICAgICAgfQorLQorLSAgICAgICAgdGVzdF9pZiF7CistICAgICAgICAgICAgJHRl c3RfdHQ6CistICAgICAgICAgICAgcGFzdGU6Oml0ZW0hIHsKKy0gICAgICAgICAgICAgICAgcHVi IG1vZCBbPCRpZCBfZnJvbT5dIHsKKy0gICAgICAgICAgICAgICAgICAgIHVzZSBzdXBlcjo6KjsK Ky0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20z MiIpLCB0ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2gg PSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQorLSAgICAgICAgICAgICAgICAgICAgZm4g YXJyYXkoKSB7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHZhbHVlcyA9IFsxX2kzMjsg JGVsZW1fY291bnRdOworLQorLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgdmVjOiAk aWQ8aTMyPiA9IERlZmF1bHQ6OmRlZmF1bHQoKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBs ZXQgbXV0IGFycmF5ID0gWworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaWQ6OjxpMzI+ OjpudWxsKCkuZXh0cmFjdCgwKTsgJGVsZW1fY291bnQKKy0gICAgICAgICAgICAgICAgICAgICAg ICBdOworLQorLSAgICAgICAgICAgICAgICAgICAgICAgIGZvciBpIGluIDAuLiRlbGVtX2NvdW50 IHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHB0ciA9ICZ2YWx1ZXNbaV0gYXMg KmNvbnN0IGkzMiBhcyAqbXV0IGkzMjsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVj ID0gdmVjLnJlcGxhY2UoaSwgcHRyKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJy YXlbaV0gPSBwdHI7CistICAgICAgICAgICAgICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAg ICAgICAgICAgICAgIC8vIEZJWE1FOiB0aGVyZSBpcyBubyBpbXBsIG9mIEZyb208JGlkPFQ+PiBm b3IgWyRlbGVtX3R5OyBOXQorLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIGxldCBhMCA9IEZy b206OmZyb20odmVjKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAvLyBhc3NlcnRfZXEhKGEw LCBhcnJheSk7CistICAgICAgICAgICAgICAgICAgICAgICAgI1thbGxvdyh1bnVzZWRfYXNzaWdu bWVudHMpXQorLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgYTEgPSBhcnJheTsKKy0g ICAgICAgICAgICAgICAgICAgICAgICBhMSA9IHZlYy5pbnRvKCk7CistICAgICAgICAgICAgICAg ICAgICAgICAgYXNzZXJ0X2VxIShhMSwgYXJyYXkpOworLQorLSAgICAgICAgICAgICAgICAgICAg ICAgIGxldCB2MDogJGlkPGkzMj4gPSBGcm9tOjpmcm9tKGFycmF5KTsKKy0gICAgICAgICAgICAg ICAgICAgICAgICBhc3NlcnRfZXEhKHYwLCB2ZWMpOworLSAgICAgICAgICAgICAgICAgICAgICAg IGxldCB2MTogJGlkPGkzMj4gPSBhcnJheS5pbnRvKCk7CistICAgICAgICAgICAgICAgICAgICAg ICAgYXNzZXJ0X2VxISh2MSwgdmVjKTsKKy0gICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAg ICAgICAgICAgfQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0KKy0gICAgICAgIGltcGw8 VD4gJGlkPFQ+IHsKKy0gICAgICAgICAgICAvLy8gSW5zdGFudGlhdGVzIGEgbmV3IHZlY3RvciB3 aXRoIHRoZSB2YWx1ZXMgb2YgdGhlIGBzbGljZWAuCistICAgICAgICAgICAgLy8vCistICAgICAg ICAgICAgLy8vICMgUGFuaWNzCistICAgICAgICAgICAgLy8vCistICAgICAgICAgICAgLy8vIElm IGBzbGljZS5sZW4oKSA8IFNlbGY6OmxhbmVzKClgIG9yIGAmc2xpY2VbMF1gIGlzIG5vdCBhbGln bmVkCistICAgICAgICAgICAgLy8vIHRvIGFuIGBhbGlnbl9vZjo6PFNlbGY+KClgIGJvdW5kYXJ5 LgorLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIHB1YiBmbiBmcm9tX3NsaWNl X2FsaWduZWQoc2xpY2U6ICZbJGVsZW1fdHldKSAtPiBTZWxmIHsKKy0gICAgICAgICAgICAgICAg dW5zYWZlIHsKKy0gICAgICAgICAgICAgICAgICAgIGFzc2VydCEoc2xpY2UubGVuKCkgPj0gJGVs ZW1fY291bnQpOworLSAgICAgICAgICAgICAgICAgICAgbGV0IHRhcmdldF9wdHIgPSBzbGljZS5h c19wdHIoKTsKKy0gICAgICAgICAgICAgICAgICAgIGFzc2VydCEoCistICAgICAgICAgICAgICAg ICAgICAgICAgdGFyZ2V0X3B0ci5hbGlnbl9vZmZzZXQoY3JhdGU6Om1lbTo6YWxpZ25fb2Y6OjxT ZWxmPigpKQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PSAwCistICAgICAgICAgICAg ICAgICAgICApOworLSAgICAgICAgICAgICAgICAgICAgU2VsZjo6ZnJvbV9zbGljZV9hbGlnbmVk X3VuY2hlY2tlZChzbGljZSkKKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgIH0KKy0K Ky0gICAgICAgICAgICAvLy8gSW5zdGFudGlhdGVzIGEgbmV3IHZlY3RvciB3aXRoIHRoZSB2YWx1 ZXMgb2YgdGhlIGBzbGljZWAuCistICAgICAgICAgICAgLy8vCistICAgICAgICAgICAgLy8vICMg UGFuaWNzCistICAgICAgICAgICAgLy8vCistICAgICAgICAgICAgLy8vIElmIGBzbGljZS5sZW4o KSA8IFNlbGY6OmxhbmVzKClgLgorLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAg IHB1YiBmbiBmcm9tX3NsaWNlX3VuYWxpZ25lZChzbGljZTogJlskZWxlbV90eV0pIC0+IFNlbGYg eworLSAgICAgICAgICAgICAgICB1bnNhZmUgeworLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0 IShzbGljZS5sZW4oKSA+PSAkZWxlbV9jb3VudCk7CistICAgICAgICAgICAgICAgICAgICBTZWxm Ojpmcm9tX3NsaWNlX3VuYWxpZ25lZF91bmNoZWNrZWQoc2xpY2UpCistICAgICAgICAgICAgICAg IH0KKy0gICAgICAgICAgICB9CistCistICAgICAgICAgICAgLy8vIEluc3RhbnRpYXRlcyBhIG5l dyB2ZWN0b3Igd2l0aCB0aGUgdmFsdWVzIG9mIHRoZSBgc2xpY2VgLgorLSAgICAgICAgICAgIC8v LworLSAgICAgICAgICAgIC8vLyAjIFNhZmV0eQorLSAgICAgICAgICAgIC8vLworLSAgICAgICAg ICAgIC8vLyBJZiBgc2xpY2UubGVuKCkgPCBTZWxmOjpsYW5lcygpYCBvciBgJnNsaWNlWzBdYCBp cyBub3QgYWxpZ25lZAorLSAgICAgICAgICAgIC8vLyB0byBhbiBgYWxpZ25fb2Y6OjxTZWxmPigp YCBib3VuZGFyeSwgdGhlIGJlaGF2aW9yIGlzIHVuZGVmaW5lZC4KKy0gICAgICAgICAgICAjW2lu bGluZV0KKy0gICAgICAgICAgICBwdWIgdW5zYWZlIGZuIGZyb21fc2xpY2VfYWxpZ25lZF91bmNo ZWNrZWQoc2xpY2U6ICZbJGVsZW1fdHldKQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAtPiBTZWxmIHsKKy0gICAgICAgICAgICAgICAgI1th bGxvdyhjbGlwcHk6OmNhc3RfcHRyX2FsaWdubWVudCldCistICAgICAgICAgICAgICAgICooc2xp Y2UuYXNfcHRyKCkuY2FzdCgpKQorLSAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICAvLy8g SW5zdGFudGlhdGVzIGEgbmV3IHZlY3RvciB3aXRoIHRoZSB2YWx1ZXMgb2YgdGhlIGBzbGljZWAu CistICAgICAgICAgICAgLy8vCistICAgICAgICAgICAgLy8vICMgU2FmZXR5CistICAgICAgICAg ICAgLy8vCistICAgICAgICAgICAgLy8vIElmIGBzbGljZS5sZW4oKSA8IFNlbGY6OmxhbmVzKClg IHRoZSBiZWhhdmlvciBpcyB1bmRlZmluZWQuCistICAgICAgICAgICAgI1tpbmxpbmVdCistICAg ICAgICAgICAgcHViIHVuc2FmZSBmbiBmcm9tX3NsaWNlX3VuYWxpZ25lZF91bmNoZWNrZWQoCist ICAgICAgICAgICAgICAgIHNsaWNlOiAmWyRlbGVtX3R5XSwKKy0gICAgICAgICAgICApIC0+IFNl bGYgeworLSAgICAgICAgICAgICAgICB1c2UgY3JhdGU6Om1lbTo6c2l6ZV9vZjsKKy0gICAgICAg ICAgICAgICAgbGV0IHRhcmdldF9wdHIgPSBzbGljZS5hc19wdHIoKS5jYXN0KCk7CistICAgICAg ICAgICAgICAgIGxldCBtdXQgeCA9IFNlbGY6OnNwbGF0KGNyYXRlOjpwdHI6Om51bGxfbXV0KCkg YXMgJGVsZW1fdHkpOworLSAgICAgICAgICAgICAgICBsZXQgc2VsZl9wdHIgPSAmbXV0IHggYXMg Km11dCBTZWxmIGFzICptdXQgdTg7CistICAgICAgICAgICAgICAgIGNyYXRlOjpwdHI6OmNvcHlf bm9ub3ZlcmxhcHBpbmcoCistICAgICAgICAgICAgICAgICAgICB0YXJnZXRfcHRyLAorLSAgICAg ICAgICAgICAgICAgICAgc2VsZl9wdHIsCistICAgICAgICAgICAgICAgICAgICBzaXplX29mOjo8 U2VsZj4oKSwKKy0gICAgICAgICAgICAgICAgKTsKKy0gICAgICAgICAgICAgICAgeAorLSAgICAg ICAgICAgIH0KKy0gICAgICAgIH0KKy0KKy0gICAgICAgIHRlc3RfaWYheworLSAgICAgICAgICAg ICR0ZXN0X3R0OgorLSAgICAgICAgICAgIHBhc3RlOjppdGVtISB7CistICAgICAgICAgICAgICAg IHB1YiBtb2QgWzwkaWQgX3NsaWNlX2Zyb21fc2xpY2U+XSB7CistICAgICAgICAgICAgICAgICAg ICB1c2Ugc3VwZXI6Oio7CistICAgICAgICAgICAgICAgICAgICB1c2UgY3JhdGU6Oml0ZXI6Okl0 ZXJhdG9yOworLQorLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2Fy Y2ggPSAid2FzbTMyIiksIHRlc3QpXQorLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cih0 YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCistICAgICAgICAgICAg ICAgICAgICBmbiBmcm9tX3NsaWNlX3VuYWxpZ25lZCgpIHsKKy0gICAgICAgICAgICAgICAgICAg ICAgICBsZXQgKG51bGwsIG5vbl9udWxsKSA9IHB0cl92YWxzISgkaWQ8aTMyPik7CistCistICAg ICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCB1bmFsaWduZWQgPSBbCistICAgICAgICAgICAg ICAgICAgICAgICAgICAgIG5vbl9udWxsOyAkaWQ6OjxpMzI+OjpsYW5lcygpICsgMQorLSAgICAg ICAgICAgICAgICAgICAgICAgIF07CistICAgICAgICAgICAgICAgICAgICAgICAgdW5hbGlnbmVk WzBdID0gbnVsbDsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdmVjID0gJGlkOjo8aTMy Pjo6ZnJvbV9zbGljZV91bmFsaWduZWQoCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICZ1 bmFsaWduZWRbMS4uXQorLSAgICAgICAgICAgICAgICAgICAgICAgICk7CistICAgICAgICAgICAg ICAgICAgICAgICAgZm9yIChpbmRleCwgJmIpIGluIHVuYWxpZ25lZC5pdGVyKCkuZW51bWVyYXRl KCkgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBpbmRleCA9PSAwIHsKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoYiwgbnVsbCk7CistICAgICAg ICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CistICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBhc3NlcnRfZXEhKGIsIG5vbl9udWxsKTsKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGFzc2VydF9lcSEoYiwgdmVjLmV4dHJhY3QoaW5kZXggLSAxKSk7CistICAgICAg ICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgICAgICB9CistICAg ICAgICAgICAgICAgICAgICB9CistCistICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogd2Fz bS1iaW5kZ2VuLXRlc3QgZG9lcyBub3Qgc3VwcG9ydCAjW3Nob3VsZF9wYW5pY10KKy0gICAgICAg ICAgICAgICAgICAgIC8vICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0 ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAgIC8vICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAi d2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQorLSAgICAgICAgICAgICAgICAgICAgI1tjZmco bm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpKV0KKy0gICAgICAgICAgICAgICAgICAgICNbdGVz dF0KKy0gICAgICAgICAgICAgICAgICAgICNbc2hvdWxkX3BhbmljXQorLSAgICAgICAgICAgICAg ICAgICAgZm4gZnJvbV9zbGljZV91bmFsaWduZWRfZmFpbCgpIHsKKy0gICAgICAgICAgICAgICAg ICAgICAgICBsZXQgKF9udWxsLCBub25fbnVsbCkgPSBwdHJfdmFscyEoJGlkPGkzMj4pOworLSAg ICAgICAgICAgICAgICAgICAgICAgIGxldCB1bmFsaWduZWQgPSBbbm9uX251bGw7ICRpZDo6PGkz Mj46OmxhbmVzKCkgKyAxXTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGUgc2xpY2Ug aXMgbm90IGxhcmdlIGVub3VnaCA9PiBwYW5pYworLSAgICAgICAgICAgICAgICAgICAgICAgIGxl dCBfdmVjID0gJGlkOjo8aTMyPjo6ZnJvbV9zbGljZV91bmFsaWduZWQoCistICAgICAgICAgICAg ICAgICAgICAgICAgICAgICZ1bmFsaWduZWRbMi4uXQorLSAgICAgICAgICAgICAgICAgICAgICAg ICk7CistICAgICAgICAgICAgICAgICAgICB9CistCistICAgICAgICAgICAgICAgICAgICB1bmlv biBBIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICBkYXRhOiBbPCRpZDxpMzI+IGFzIHNlYWxl ZDo6U2ltZD46OkVsZW1lbnQ7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIgKiAk aWQ6OjxpMzI+OjpsYW5lcygpXSwKKy0gICAgICAgICAgICAgICAgICAgICAgICBfdmVjOiAkaWQ8 aTMyPiwKKy0gICAgICAgICAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICAgICAgICAgICNb Y2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0KKy0gICAgICAgICAg ICAgICAgICAgICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2Vu X3Rlc3QpXQorLSAgICAgICAgICAgICAgICAgICAgZm4gZnJvbV9zbGljZV9hbGlnbmVkKCkgewor LSAgICAgICAgICAgICAgICAgICAgICAgIGxldCAobnVsbCwgbm9uX251bGwpID0gcHRyX3ZhbHMh KCRpZDxpMzI+KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IGFsaWduZWQgPSBB IHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YTogW251bGw7IDIgKiAkaWQ6Ojxp MzI+OjpsYW5lcygpXSwKKy0gICAgICAgICAgICAgICAgICAgICAgICB9OworLSAgICAgICAgICAg ICAgICAgICAgICAgIGZvciBpIGluCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpZDo6 PGkzMj46OmxhbmVzKCkuLigyICogJGlkOjo8aTMyPjo6bGFuZXMoKSkgeworLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICB1bnNhZmUgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgYWxpZ25lZC5kYXRhW2ldID0gbm9uX251bGw7CistICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH0KKy0gICAgICAgICAgICAgICAgICAgICAgICB9CistCistICAgICAgICAgICAgICAgICAg ICAgICAgbGV0IHZlYyA9IHVuc2FmZSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICRp ZDo6PGkzMj46OmZyb21fc2xpY2VfYWxpZ25lZCgKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICZhbGlnbmVkLmRhdGFbJGlkOjo8aTMyPjo6bGFuZXMoKS4uXQorLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICApCistICAgICAgICAgICAgICAgICAgICAgICAgfTsKKy0gICAgICAg ICAgICAgICAgICAgICAgICBmb3IgKGluZGV4LCAmYikgaW4gdW5zYWZlIHsKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgYWxpZ25lZC5kYXRhLml0ZXIoKS5lbnVtZXJhdGUoKQorLSAgICAg ICAgICAgICAgICAgICAgICAgIH0geworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBp bmRleCA8ICRpZDo6PGkzMj46OmxhbmVzKCkgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgYXNzZXJ0X2VxIShiLCBudWxsKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg fSBlbHNlIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoYiwg bm9uX251bGwpOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISgK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiLCB2ZWMuZXh0cmFjdChpbmRl eCAtICRpZDo6PGkzMj46OmxhbmVzKCkpCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICApOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAg ICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgICAgICAgICAg Ly8gRklYTUU6IHdhc20tYmluZGdlbi10ZXN0IGRvZXMgbm90IHN1cHBvcnQgI1tzaG91bGRfcGFu aWNdCistICAgICAgICAgICAgICAgICAgICAvLyAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9 ICJ3YXNtMzIiKSwgdGVzdCldCistICAgICAgICAgICAgICAgICAgICAvLyAjW2NmZ19hdHRyKHRh cmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KKy0gICAgICAgICAgICAg ICAgICAgICNbY2ZnKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSldCistICAgICAgICAgICAg ICAgICAgICAjW3Rlc3RdCistICAgICAgICAgICAgICAgICAgICAjW3Nob3VsZF9wYW5pY10KKy0g ICAgICAgICAgICAgICAgICAgIGZuIGZyb21fc2xpY2VfYWxpZ25lZF9mYWlsX2xhbmVzKCkgewor LSAgICAgICAgICAgICAgICAgICAgICAgIGxldCAoX251bGwsIG5vbl9udWxsKSA9IHB0cl92YWxz ISgkaWQ8aTMyPik7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGFsaWduZWQgPSBBIHsK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YTogW25vbl9udWxsOyAyICogJGlkOjo8 aTMyPjo6bGFuZXMoKV0sCistICAgICAgICAgICAgICAgICAgICAgICAgfTsKKy0gICAgICAgICAg ICAgICAgICAgICAgICAvLyB0aGUgc2xpY2UgaXMgbm90IGxhcmdlIGVub3VnaCA9PiBwYW5pYwor LSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBfdmVjID0gdW5zYWZlIHsKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgJGlkOjo8aTMyPjo6ZnJvbV9zbGljZV9hbGlnbmVkKAorLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgJmFsaWduZWQuZGF0YVsyICogJGlkOjo8aTMyPjo6 bGFuZXMoKS4uXQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICApCistICAgICAgICAgICAg ICAgICAgICAgICAgfTsKKy0gICAgICAgICAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICAg ICAgICAgIC8vIEZJWE1FOiB3YXNtLWJpbmRnZW4tdGVzdCBkb2VzIG5vdCBzdXBwb3J0ICNbc2hv dWxkX3BhbmljXQorLSAgICAgICAgICAgICAgICAgICAgLy8gI1tjZmdfYXR0cihub3QodGFyZ2V0 X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXQorLSAgICAgICAgICAgICAgICAgICAgLy8gI1tjZmdf YXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCistICAgICAg ICAgICAgICAgICAgICAjW2NmZyhub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIikpXQorLSAgICAg ICAgICAgICAgICAgICAgI1t0ZXN0XQorLSAgICAgICAgICAgICAgICAgICAgI1tzaG91bGRfcGFu aWNdCistICAgICAgICAgICAgICAgICAgICBmbiBmcm9tX3NsaWNlX2FsaWduZWRfZmFpbF9hbGln bigpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICB1bnNhZmUgeworLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICBsZXQgKG51bGwsIF9ub25fbnVsbCkgPSBwdHJfdmFscyEoJGlkPGkzMj4p OworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgYWxpZ25lZCA9IEEgeworLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YTogW251bGw7IDIgKiAkaWQ6OjxpMzI+Ojps YW5lcygpXSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfTsKKy0KKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgLy8gZ2V0IGEgcG9pbnRlciB0byB0aGUgZnJvbnQgb2YgZGF0YQor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgcHRyID0gYWxpZ25lZC5kYXRhLmFzX3B0 cigpOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBvZmZzZXQgcG9pbnRlciBieSBv bmUgZWxlbWVudAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgcHRyID0gcHRyLndy YXBwaW5nX2FkZCgxKTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgcHRyLmFs aWduX29mZnNldCgKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyYXRlOjptZW06 OmFsaWduX29mOjo8JGlkPGkzMj4+KCkKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKSA9 PSAwIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoZSBwb2ludGVyIGlz IHByb3Blcmx5IGFsaWduZWQsIHNvCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAv LyBmcm9tX3NsaWNlX2FsaWduZWQgd29uJ3QgZmFpbCBoZXJlIChlLmcuIHRoaXMKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNhbiBoYXBwZW4gZm9yIGkxMjh4MSkuIFNvIHdl IHBhbmljIHRvIG1ha2UKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoZSAi c2hvdWxkX2ZhaWwiIHRlc3QgcGFzczoKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHBhbmljISgib2siKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorLQorLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAvLyBjcmVhdGUgYSBzbGljZSAtIHRoaXMgaXMgc2FmZSwg YmVjYXVzZSB0aGUKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZWxlbWVudHMgb2Yg dGhlIHNsaWNlIGV4aXN0LCBhcmUgcHJvcGVybHkKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgLy8gaW5pdGlhbGl6ZWQsIGFuZCBwcm9wZXJseSBhbGlnbmVkOgorLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICBsZXQgcyA9IHNsaWNlOjpmcm9tX3Jhd19wYXJ0cygKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHB0ciwgJGlkOjo8aTMyPjo6bGFuZXMoKQorLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICApOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0 aGlzIHNob3VsZCBhbHdheXMgcGFuaWMgYmVjYXVzZSB0aGUgc2xpY2UKKy0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgLy8gYWxpZ25tZW50IGRvZXMgbm90IG1hdGNoIHRoZSBhbGlnbm1lbnQK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmVxdWlyZW1lbnRzIGZvciB0aGUgdmVj dG9yIHR5cGU6CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBfdmVjID0gJGlkOjo8 aTMyPjo6ZnJvbV9zbGljZV9hbGlnbmVkKHMpOworLSAgICAgICAgICAgICAgICAgICAgICAgIH0K Ky0gICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAg IH0KKy0gICAgICAgIH0KKy0KKy0gICAgICAgIGltcGw8VD4gJGlkPFQ+IHsKKy0gICAgICAgICAg ICAvLy8gV3JpdGVzIHRoZSB2YWx1ZXMgb2YgdGhlIHZlY3RvciB0byB0aGUgYHNsaWNlYC4KKy0g ICAgICAgICAgICAvLy8KKy0gICAgICAgICAgICAvLy8gIyBQYW5pY3MKKy0gICAgICAgICAgICAv Ly8KKy0gICAgICAgICAgICAvLy8gSWYgYHNsaWNlLmxlbigpIDwgU2VsZjo6bGFuZXMoKWAgb3Ig YCZzbGljZVswXWAgaXMgbm90CistICAgICAgICAgICAgLy8vIGFsaWduZWQgdG8gYW4gYGFsaWdu X29mOjo8U2VsZj4oKWAgYm91bmRhcnkuCistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAg ICAgICAgcHViIGZuIHdyaXRlX3RvX3NsaWNlX2FsaWduZWQoc2VsZiwgc2xpY2U6ICZtdXQgWyRl bGVtX3R5XSkgeworLSAgICAgICAgICAgICAgICB1bnNhZmUgeworLSAgICAgICAgICAgICAgICAg ICAgYXNzZXJ0IShzbGljZS5sZW4oKSA+PSAkZWxlbV9jb3VudCk7CistICAgICAgICAgICAgICAg ICAgICBsZXQgdGFyZ2V0X3B0ciA9IHNsaWNlLmFzX211dF9wdHIoKTsKKy0gICAgICAgICAgICAg ICAgICAgIGFzc2VydCEoCistICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0X3B0ci5hbGln bl9vZmZzZXQoY3JhdGU6Om1lbTo6YWxpZ25fb2Y6OjxTZWxmPigpKQorLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICA9PSAwCistICAgICAgICAgICAgICAgICAgICApOworLSAgICAgICAgICAg ICAgICAgICAgc2VsZi53cml0ZV90b19zbGljZV9hbGlnbmVkX3VuY2hlY2tlZChzbGljZSk7Cist ICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICB9CistCistICAgICAgICAgICAgLy8vIFdy aXRlcyB0aGUgdmFsdWVzIG9mIHRoZSB2ZWN0b3IgdG8gdGhlIGBzbGljZWAuCistICAgICAgICAg ICAgLy8vCistICAgICAgICAgICAgLy8vICMgUGFuaWNzCistICAgICAgICAgICAgLy8vCistICAg ICAgICAgICAgLy8vIElmIGBzbGljZS5sZW4oKSA8IFNlbGY6OmxhbmVzKClgLgorLSAgICAgICAg ICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIHB1YiBmbiB3cml0ZV90b19zbGljZV91bmFsaWdu ZWQoc2VsZiwgc2xpY2U6ICZtdXQgWyRlbGVtX3R5XSkgeworLSAgICAgICAgICAgICAgICB1bnNh ZmUgeworLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IShzbGljZS5sZW4oKSA+PSAkZWxlbV9j b3VudCk7CistICAgICAgICAgICAgICAgICAgICBzZWxmLndyaXRlX3RvX3NsaWNlX3VuYWxpZ25l ZF91bmNoZWNrZWQoc2xpY2UpOworLSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgfQor LQorLSAgICAgICAgICAgIC8vLyBXcml0ZXMgdGhlIHZhbHVlcyBvZiB0aGUgdmVjdG9yIHRvIHRo ZSBgc2xpY2VgLgorLSAgICAgICAgICAgIC8vLworLSAgICAgICAgICAgIC8vLyAjIFNhZmV0eQor LSAgICAgICAgICAgIC8vLworLSAgICAgICAgICAgIC8vLyBJZiBgc2xpY2UubGVuKCkgPCBTZWxm OjpsYW5lcygpYCBvciBgJnNsaWNlWzBdYCBpcyBub3QKKy0gICAgICAgICAgICAvLy8gYWxpZ25l ZCB0byBhbiBgYWxpZ25fb2Y6OjxTZWxmPigpYCBib3VuZGFyeSwgdGhlIGJlaGF2aW9yIGlzCist ICAgICAgICAgICAgLy8vIHVuZGVmaW5lZC4KKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAg ICAgICAgICBwdWIgdW5zYWZlIGZuIHdyaXRlX3RvX3NsaWNlX2FsaWduZWRfdW5jaGVja2VkKAor LSAgICAgICAgICAgICAgICBzZWxmLCBzbGljZTogJm11dCBbJGVsZW1fdHldLAorLSAgICAgICAg ICAgICkgeworLSAgICAgICAgICAgICAgICAjW2FsbG93KGNsaXBweTo6Y2FzdF9wdHJfYWxpZ25t ZW50KV0KKy0gICAgICAgICAgICAgICAgKihzbGljZS5hc19tdXRfcHRyKCkuY2FzdCgpKSA9IHNl bGY7CistICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgIC8vLyBXcml0ZXMgdGhlIHZhbHVl cyBvZiB0aGUgdmVjdG9yIHRvIHRoZSBgc2xpY2VgLgorLSAgICAgICAgICAgIC8vLworLSAgICAg ICAgICAgIC8vLyAjIFNhZmV0eQorLSAgICAgICAgICAgIC8vLworLSAgICAgICAgICAgIC8vLyBJ ZiBgc2xpY2UubGVuKCkgPCBTZWxmOjpsYW5lcygpYCB0aGUgYmVoYXZpb3IgaXMgdW5kZWZpbmVk LgorLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIHB1YiB1bnNhZmUgZm4gd3Jp dGVfdG9fc2xpY2VfdW5hbGlnbmVkX3VuY2hlY2tlZCgKKy0gICAgICAgICAgICAgICAgc2VsZiwg c2xpY2U6ICZtdXQgWyRlbGVtX3R5XSwKKy0gICAgICAgICAgICApIHsKKy0gICAgICAgICAgICAg ICAgbGV0IHRhcmdldF9wdHIgPSBzbGljZS5hc19tdXRfcHRyKCkuY2FzdCgpOworLSAgICAgICAg ICAgICAgICBsZXQgc2VsZl9wdHIgPSAmc2VsZiBhcyAqY29uc3QgU2VsZiBhcyAqY29uc3QgdTg7 CistICAgICAgICAgICAgICAgIGNyYXRlOjpwdHI6OmNvcHlfbm9ub3ZlcmxhcHBpbmcoCistICAg ICAgICAgICAgICAgICAgICBzZWxmX3B0ciwKKy0gICAgICAgICAgICAgICAgICAgIHRhcmdldF9w dHIsCistICAgICAgICAgICAgICAgICAgICBjcmF0ZTo6bWVtOjpzaXplX29mOjo8U2VsZj4oKSwK Ky0gICAgICAgICAgICAgICAgKTsKKy0gICAgICAgICAgICB9CistICAgICAgICB9CistCistICAg ICAgICB0ZXN0X2lmIXsKKy0gICAgICAgICAgICAkdGVzdF90dDoKKy0gICAgICAgICAgICBwYXN0 ZTo6aXRlbSEgeworLSAgICAgICAgICAgICAgICBwdWIgbW9kIFs8JGlkIF9zbGljZV93cml0ZV90 b19zbGljZT5dIHsKKy0gICAgICAgICAgICAgICAgICAgIHVzZSBzdXBlcjo6KjsKKy0gICAgICAg ICAgICAgICAgICAgIHVzZSBjcmF0ZTo6aXRlcjo6SXRlcmF0b3I7CistCistICAgICAgICAgICAg ICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldCist ICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdh c21fYmluZGdlbl90ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAgIGZuIHdyaXRlX3RvX3NsaWNl X3VuYWxpZ25lZCgpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgKG51bGwsIG5vbl9u dWxsKSA9IHB0cl92YWxzISgkaWQ8aTMyPik7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0 IG11dCB1bmFsaWduZWQgPSBbbnVsbDsgJGlkOjo8aTMyPjo6bGFuZXMoKSArIDFdOworLSAgICAg ICAgICAgICAgICAgICAgICAgIGxldCB2ZWMgPSAkaWQ6OjxpMzI+OjpzcGxhdChub25fbnVsbCk7 CistICAgICAgICAgICAgICAgICAgICAgICAgdmVjLndyaXRlX3RvX3NsaWNlX3VuYWxpZ25lZCgm bXV0IHVuYWxpZ25lZFsxLi5dKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGluZGV4 LCAmYikgaW4gdW5hbGlnbmVkLml0ZXIoKS5lbnVtZXJhdGUoKSB7CistICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGlmIGluZGV4ID09IDAgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgYXNzZXJ0X2VxIShiLCBudWxsKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg fSBlbHNlIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoYiwg bm9uX251bGwpOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShi LCB2ZWMuZXh0cmFjdChpbmRleCAtIDEpKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg fQorLSAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgIH0KKy0K Ky0gICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiB3YXNtLWJpbmRnZW4tdGVzdCBkb2VzIG5v dCBzdXBwb3J0ICNbc2hvdWxkX3BhbmljXQorLSAgICAgICAgICAgICAgICAgICAgLy8gI1tjZmdf YXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXQorLSAgICAgICAgICAgICAg ICAgICAgLy8gI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5f dGVzdCldCistICAgICAgICAgICAgICAgICAgICAjW2NmZyhub3QodGFyZ2V0X2FyY2ggPSAid2Fz bTMyIikpXQorLSAgICAgICAgICAgICAgICAgICAgI1t0ZXN0XQorLSAgICAgICAgICAgICAgICAg ICAgI1tzaG91bGRfcGFuaWNdCistICAgICAgICAgICAgICAgICAgICBmbiB3cml0ZV90b19zbGlj ZV91bmFsaWduZWRfZmFpbCgpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgKG51bGws IG5vbl9udWxsKSA9IHB0cl92YWxzISgkaWQ8aTMyPik7CistICAgICAgICAgICAgICAgICAgICAg ICAgbGV0IG11dCB1bmFsaWduZWQgPSBbbnVsbDsgJGlkOjo8aTMyPjo6bGFuZXMoKSArIDFdOwor LSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2ZWMgPSAkaWQ6OjxpMzI+OjpzcGxhdChub25f bnVsbCk7CistICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhlIHNsaWNlIGlzIG5vdCBsYXJn ZSBlbm91Z2ggPT4gcGFuaWMKKy0gICAgICAgICAgICAgICAgICAgICAgICB2ZWMud3JpdGVfdG9f c2xpY2VfdW5hbGlnbmVkKCZtdXQgdW5hbGlnbmVkWzIuLl0pOworLSAgICAgICAgICAgICAgICAg ICAgfQorLQorLSAgICAgICAgICAgICAgICAgICAgdW5pb24gQSB7CistICAgICAgICAgICAgICAg ICAgICAgICAgZGF0YTogWzwkaWQ8aTMyPiBhcyBzZWFsZWQ6OlNpbWQ+OjpFbGVtZW50OworLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyICogJGlkOjo8aTMyPjo6bGFuZXMoKV0sCist ICAgICAgICAgICAgICAgICAgICAgICAgX3ZlYzogJGlkPGkzMj4sCistICAgICAgICAgICAgICAg ICAgICB9CistCistICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJj aCA9ICJ3YXNtMzIiKSwgdGVzdCldCistICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKHRh cmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KKy0gICAgICAgICAgICAg ICAgICAgIGZuIHdyaXRlX3RvX3NsaWNlX2FsaWduZWQoKSB7CistICAgICAgICAgICAgICAgICAg ICAgICAgbGV0IChudWxsLCBub25fbnVsbCkgPSBwdHJfdmFscyEoJGlkPGkzMj4pOworLSAgICAg ICAgICAgICAgICAgICAgICAgIGxldCBtdXQgYWxpZ25lZCA9IEEgeworLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICBkYXRhOiBbbnVsbDsgMiAqICRpZDo6PGkzMj46OmxhbmVzKCldLAorLSAg ICAgICAgICAgICAgICAgICAgICAgIH07CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHZl YyA9ICRpZDo6PGkzMj46OnNwbGF0KG5vbl9udWxsKTsKKy0gICAgICAgICAgICAgICAgICAgICAg ICB1bnNhZmUgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWMud3JpdGVfdG9fc2xp Y2VfYWxpZ25lZCgKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZtdXQgYWxpZ25l ZC5kYXRhWyRpZDo6PGkzMj46OmxhbmVzKCkuLl0KKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgKQorLSAgICAgICAgICAgICAgICAgICAgICAgIH07CistICAgICAgICAgICAgICAgICAgICAg ICAgZm9yIChpbmRleCwgJmIpIGluCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2Fm ZSB7IGFsaWduZWQuZGF0YS5pdGVyKCkuZW51bWVyYXRlKCkgfSB7CistICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGlmIGluZGV4IDwgJGlkOjo8aTMyPjo6bGFuZXMoKSB7CistICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGIsIG51bGwpOworLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9IGVsc2UgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgYXNzZXJ0X2VxIShiLCBub25fbnVsbCk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBhc3NlcnRfZXEhKAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGIs IHZlYy5leHRyYWN0KGluZGV4IC0gJGlkOjo8aTMyPjo6bGFuZXMoKSkKKy0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0g ICAgICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICB9CistCistICAg ICAgICAgICAgICAgICAgICAvLyBGSVhNRTogd2FzbS1iaW5kZ2VuLXRlc3QgZG9lcyBub3Qgc3Vw cG9ydCAjW3Nob3VsZF9wYW5pY10KKy0gICAgICAgICAgICAgICAgICAgIC8vICNbY2ZnX2F0dHIo bm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAg IC8vICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3Qp XQorLSAgICAgICAgICAgICAgICAgICAgI1tjZmcobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIp KV0KKy0gICAgICAgICAgICAgICAgICAgICNbdGVzdF0KKy0gICAgICAgICAgICAgICAgICAgICNb c2hvdWxkX3BhbmljXQorLSAgICAgICAgICAgICAgICAgICAgZm4gd3JpdGVfdG9fc2xpY2VfYWxp Z25lZF9mYWlsX2xhbmVzKCkgeworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCAobnVsbCwg bm9uX251bGwpID0gcHRyX3ZhbHMhKCRpZDxpMzI+KTsKKy0gICAgICAgICAgICAgICAgICAgICAg ICBsZXQgbXV0IGFsaWduZWQgPSBBIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0 YTogW251bGw7IDIgKiAkaWQ6OjxpMzI+OjpsYW5lcygpXSwKKy0gICAgICAgICAgICAgICAgICAg ICAgICB9OworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2ZWMgPSAkaWQ6OjxpMzI+Ojpz cGxhdChub25fbnVsbCk7CistICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhlIHNsaWNlIGlz IG5vdCBsYXJnZSBlbm91Z2ggPT4gcGFuaWMKKy0gICAgICAgICAgICAgICAgICAgICAgICB1bnNh ZmUgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWMud3JpdGVfdG9fc2xpY2VfYWxp Z25lZCgKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZtdXQgYWxpZ25lZC5kYXRh WzIgKiAkaWQ6OjxpMzI+OjpsYW5lcygpLi5dCistICAgICAgICAgICAgICAgICAgICAgICAgICAg ICkKKy0gICAgICAgICAgICAgICAgICAgICAgICB9OworLSAgICAgICAgICAgICAgICAgICAgfQor LQorLSAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IHdhc20tYmluZGdlbi10ZXN0IGRvZXMg bm90IHN1cHBvcnQgI1tzaG91bGRfcGFuaWNdCistICAgICAgICAgICAgICAgICAgICAvLyAjW2Nm Z19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldCistICAgICAgICAgICAg ICAgICAgICAvLyAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdl bl90ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAgICNbY2ZnKG5vdCh0YXJnZXRfYXJjaCA9ICJ3 YXNtMzIiKSldCistICAgICAgICAgICAgICAgICAgICAjW3Rlc3RdCistICAgICAgICAgICAgICAg ICAgICAjW3Nob3VsZF9wYW5pY10KKy0gICAgICAgICAgICAgICAgICAgIGZuIHdyaXRlX3RvX3Ns aWNlX2FsaWduZWRfZmFpbF9hbGlnbigpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQg KG51bGwsIG5vbl9udWxsKSA9IHB0cl92YWxzISgkaWQ8aTMyPik7CistICAgICAgICAgICAgICAg ICAgICAgICAgdW5zYWZlIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBh bGlnbmVkID0gQSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhOiBbbnVs bDsgMiAqICRpZDo6PGkzMj46OmxhbmVzKCldLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICB9OworLQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBnZXQgYSBwb2ludGVyIHRv IHRoZSBmcm9udCBvZiBkYXRhCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBwdHIg PSBhbGlnbmVkLmRhdGEuYXNfbXV0X3B0cigpOworLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAvLyBvZmZzZXQgcG9pbnRlciBieSBvbmUgZWxlbWVudAorLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICBsZXQgcHRyID0gcHRyLndyYXBwaW5nX2FkZCgxKTsKKy0KKy0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgaWYgcHRyLmFsaWduX29mZnNldCgKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGNyYXRlOjptZW06OmFsaWduX29mOjo8JGlkPGkzMj4+KCkKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgKSA9PSAwIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIC8vIHRoZSBwb2ludGVyIGlzIHByb3Blcmx5IGFsaWduZWQsIHNvCistICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAvLyB3cml0ZV90b19zbGljZV9hbGlnbmVkIHdvbid0IGZh aWwgaGVyZSAoZS5nLgorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhpcyBj YW4gaGFwcGVuIGZvciBpMTI4eDEpLiBTbyB3ZSBwYW5pYyB0bworLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgLy8gbWFrZSB0aGUgInNob3VsZF9mYWlsIiB0ZXN0IHBhc3M6CistICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYW5pYyEoIm9rIik7CistICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY3Jl YXRlIGEgc2xpY2UgLSB0aGlzIGlzIHNhZmUsIGJlY2F1c2UgdGhlCistICAgICAgICAgICAgICAg ICAgICAgICAgICAgIC8vIGVsZW1lbnRzIG9mIHRoZSBzbGljZSBleGlzdCwgYXJlIHByb3Blcmx5 CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGluaXRpYWxpemVkLCBhbmQgcHJvcGVy bHkgYWxpZ25lZDoKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHMgPSBzbGljZTo6 ZnJvbV9yYXdfcGFydHNfbXV0KAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHRy LCAkaWQ6OjxpMzI+OjpsYW5lcygpCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7Cist ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoaXMgc2hvdWxkIGFsd2F5cyBwYW5pYyBi ZWNhdXNlIHRoZSBzbGljZQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBhbGlnbm1l bnQgZG9lcyBub3QgbWF0Y2ggdGhlIGFsaWdubWVudAorLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAvLyByZXF1aXJlbWVudHMgZm9yIHRoZSB2ZWN0b3IgdHlwZToKKy0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgbGV0IHZlYyA9ICRpZDo6PGkzMj46OnNwbGF0KG5vbl9udWxsKTsKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjLndyaXRlX3RvX3NsaWNlX2FsaWduZWQocyk7 CistICAgICAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgfQorLSAg ICAgICAgICAgICAgICB9CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLQorLSAgICAgICAg aW1wbDxUPiBjcmF0ZTo6aGFzaDo6SGFzaCBmb3IgJGlkPFQ+IHsKKy0gICAgICAgICAgICAjW2lu bGluZV0KKy0gICAgICAgICAgICBmbiBoYXNoPEg6IGNyYXRlOjpoYXNoOjpIYXNoZXI+KCZzZWxm LCBzdGF0ZTogJm11dCBIKSB7CistICAgICAgICAgICAgICAgIGxldCBzOiAkdXNpemVfdHkgPSB1 bnNhZmUgeyBjcmF0ZTo6bWVtOjp0cmFuc211dGUoKnNlbGYpIH07CistICAgICAgICAgICAgICAg IHMuaGFzaChzdGF0ZSkKKy0gICAgICAgICAgICB9CistICAgICAgICB9CistCistICAgICAgICB0 ZXN0X2lmISB7CistICAgICAgICAgICAgJHRlc3RfdHQ6CistICAgICAgICAgICAgcGFzdGU6Oml0 ZW0hIHsKKy0gICAgICAgICAgICAgICAgcHViIG1vZCBbPCRpZCBfaGFzaD5dIHsKKy0gICAgICAg ICAgICAgICAgICAgIHVzZSBzdXBlcjo6KjsKKy0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0 dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0KKy0gICAgICAgICAgICAgICAg ICAgICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3Qp XQorLSAgICAgICAgICAgICAgICAgICAgZm4gaGFzaCgpIHsKKy0gICAgICAgICAgICAgICAgICAg ICAgICB1c2UgY3JhdGU6Omhhc2g6OntIYXNoLCBIYXNoZXJ9OworLSAgICAgICAgICAgICAgICAg ICAgICAgICNbYWxsb3coZGVwcmVjYXRlZCldCistICAgICAgICAgICAgICAgICAgICAgICAgdXNl IGNyYXRlOjpoYXNoOjp7U2lwSGFzaGVyMTN9OworLQorLSAgICAgICAgICAgICAgICAgICAgICAg IGxldCB2YWx1ZXMgPSBbMV9pMzI7ICRlbGVtX2NvdW50XTsKKy0KKy0gICAgICAgICAgICAgICAg ICAgICAgICBsZXQgbXV0IHZlYzogJGlkPGkzMj4gPSBEZWZhdWx0OjpkZWZhdWx0KCk7CistICAg ICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBhcnJheSA9IFsKKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgJGlkOjo8aTMyPjo6bnVsbCgpLmV4dHJhY3QoMCk7CistICAgICAgICAgICAg ICAgICAgICAgICAgICAgICRlbGVtX2NvdW50CistICAgICAgICAgICAgICAgICAgICAgICAgXTsK Ky0KKy0gICAgICAgICAgICAgICAgICAgICAgICBmb3IgaSBpbiAwLi4kZWxlbV9jb3VudCB7Cist ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBwdHIgPSAmdmFsdWVzW2ldIGFzICpjb25z dCBpMzIgYXMgKm11dCBpMzI7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlYyA9IHZl Yy5yZXBsYWNlKGksIHB0cik7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFycmF5W2ld ID0gcHRyOworLSAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICAgICAg ICAgICAgICAjW2FsbG93KGRlcHJlY2F0ZWQpXQorLSAgICAgICAgICAgICAgICAgICAgICAgIGxl dCBtdXQgYV9oYXNoID0gU2lwSGFzaGVyMTM6Om5ldygpOworLSAgICAgICAgICAgICAgICAgICAg ICAgIGxldCBtdXQgdl9oYXNoID0gYV9oYXNoLmNsb25lKCk7CistICAgICAgICAgICAgICAgICAg ICAgICAgYXJyYXkuaGFzaCgmbXV0IGFfaGFzaCk7CistICAgICAgICAgICAgICAgICAgICAgICAg dmVjLmhhc2goJm11dCB2X2hhc2gpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9l cSEoYV9oYXNoLmZpbmlzaCgpLCB2X2hhc2guZmluaXNoKCkpOworLSAgICAgICAgICAgICAgICAg ICAgfQorLSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLQor LSAgICAgICAgaW1wbDxUPiAkaWQ8VD4geworLSAgICAgICAgICAgIC8vLyBDYWxjdWxhdGVzIHRo ZSBvZmZzZXQgZnJvbSBhIHBvaW50ZXIuCistICAgICAgICAgICAgLy8vCistICAgICAgICAgICAg Ly8vIGBjb3VudGAgaXMgaW4gdW5pdHMgb2YgYFRgOyBlLmcuIGEgY291bnQgb2YgYDNgIHJlcHJl c2VudHMgYQorLSAgICAgICAgICAgIC8vLyBwb2ludGVyIG9mZnNldCBvZiBgMyAqIHNpemVfb2Y6 OjxUPigpYCBieXRlcy4KKy0gICAgICAgICAgICAvLy8KKy0gICAgICAgICAgICAvLy8gIyBTYWZl dHkKKy0gICAgICAgICAgICAvLy8KKy0gICAgICAgICAgICAvLy8gSWYgYW55IG9mIHRoZSBmb2xs b3dpbmcgY29uZGl0aW9ucyBhcmUgdmlvbGF0ZWQsIHRoZSByZXN1bHQgaXMKKy0gICAgICAgICAg ICAvLy8gVW5kZWZpbmVkIEJlaGF2aW9yOgorLSAgICAgICAgICAgIC8vLworLSAgICAgICAgICAg IC8vLyAqIEJvdGggdGhlIHN0YXJ0aW5nIGFuZCByZXN1bHRpbmcgcG9pbnRlciBtdXN0IGJlIGVp dGhlciBpbgorLSAgICAgICAgICAgIC8vLyBib3VuZHMgb3Igb25lIGJ5dGUgcGFzdCB0aGUgZW5k IG9mIGFuIGFsbG9jYXRlZCBvYmplY3QuCistICAgICAgICAgICAgLy8vCistICAgICAgICAgICAg Ly8vICogVGhlIGNvbXB1dGVkIG9mZnNldCwgaW4gYnl0ZXMsIGNhbm5vdCBvdmVyZmxvdyBhbiBg aXNpemVgLgorLSAgICAgICAgICAgIC8vLworLSAgICAgICAgICAgIC8vLyAqIFRoZSBvZmZzZXQg YmVpbmcgaW4gYm91bmRzIGNhbm5vdCByZWx5IG9uICJ3cmFwcGluZyBhcm91bmQiCistICAgICAg ICAgICAgLy8vIHRoZSBhZGRyZXNzIHNwYWNlLiBUaGF0IGlzLCB0aGUgaW5maW5pdGUtcHJlY2lz aW9uIHN1bSwgaW4gYnl0ZXMKKy0gICAgICAgICAgICAvLy8gbXVzdCBmaXQgaW4gYSBgdXNpemVg LgorLSAgICAgICAgICAgIC8vLworLSAgICAgICAgICAgIC8vLyBUaGUgY29tcGlsZXIgYW5kIHN0 YW5kYXJkIGxpYnJhcnkgZ2VuZXJhbGx5IHRyaWVzIHRvIGVuc3VyZQorLSAgICAgICAgICAgIC8v LyBhbGxvY2F0aW9ucyBuZXZlciByZWFjaCBhIHNpemUgd2hlcmUgYW4gb2Zmc2V0IGlzIGEgY29u Y2Vybi4gRm9yCistICAgICAgICAgICAgLy8vIGluc3RhbmNlLCBgVmVjYCBhbmQgYEJveGAgZW5z dXJlIHRoZXkgbmV2ZXIgYWxsb2NhdGUgbW9yZSB0aGFuCistICAgICAgICAgICAgLy8vIGBpc2l6 ZTo6TUFYYCBieXRlcywgc28gYHZlYy5hc19wdHIoKS5vZmZzZXQodmVjLmxlbigpIGFzIGlzaXpl KWAKKy0gICAgICAgICAgICAvLy8gaXMgYWx3YXlzIHNhZmUuCistICAgICAgICAgICAgLy8vCist ICAgICAgICAgICAgLy8vIE1vc3QgcGxhdGZvcm1zIGZ1bmRhbWVudGFsbHkgY2FuJ3QgZXZlbiBj b25zdHJ1Y3Qgc3VjaCBhbgorLSAgICAgICAgICAgIC8vLyBhbGxvY2F0aW9uLiBGb3IgaW5zdGFu Y2UsIG5vIGtub3duIDY0LWJpdCBwbGF0Zm9ybSBjYW4gZXZlcgorLSAgICAgICAgICAgIC8vLyBz ZXJ2ZSBhIHJlcXVlc3QgZm9yIDI2MyBieXRlcyBkdWUgdG8gcGFnZS10YWJsZSBsaW1pdGF0aW9u cyBvcgorLSAgICAgICAgICAgIC8vLyBzcGxpdHRpbmcgdGhlIGFkZHJlc3Mgc3BhY2UuIEhvd2V2 ZXIsIHNvbWUgMzItYml0IGFuZCAxNi1iaXQKKy0gICAgICAgICAgICAvLy8gcGxhdGZvcm1zIG1h eSBzdWNjZXNzZnVsbHkgc2VydmUgYSByZXF1ZXN0IGZvciBtb3JlIHRoYW4KKy0gICAgICAgICAg ICAvLy8gYGlzaXplOjpNQVhgIGJ5dGVzIHdpdGggdGhpbmdzIGxpa2UgUGh5c2ljYWwgQWRkcmVz cyBFeHRlbnNpb24uCistICAgICAgICAgICAgLy8vIEFzIHN1Y2gsIG1lbW9yeSBhY3F1aXJlZCBk aXJlY3RseSBmcm9tIGFsbG9jYXRvcnMgb3IgbWVtb3J5CistICAgICAgICAgICAgLy8vIG1hcHBl ZCBmaWxlcyBtYXkgYmUgdG9vIGxhcmdlIHRvIGhhbmRsZSB3aXRoIHRoaXMgZnVuY3Rpb24uCist ICAgICAgICAgICAgLy8vCistICAgICAgICAgICAgLy8vIENvbnNpZGVyIHVzaW5nIGB3cmFwcGlu Z19vZmZzZXRgIGluc3RlYWQgaWYgdGhlc2UgY29uc3RyYWludHMKKy0gICAgICAgICAgICAvLy8g YXJlIGRpZmZpY3VsdCB0byBzYXRpc2Z5LiBUaGUgb25seSBhZHZhbnRhZ2Ugb2YgdGhpcyBtZXRo b2QgaXMKKy0gICAgICAgICAgICAvLy8gdGhhdCBpdCBlbmFibGVzIG1vcmUgYWdncmVzc2l2ZSBj b21waWxlciBvcHRpbWl6YXRpb25zLgorLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAg ICAgIHB1YiB1bnNhZmUgZm4gb2Zmc2V0KHNlbGYsIGNvdW50OiAkaXNpemVfdHkpIC0+IFNlbGYg eworLSAgICAgICAgICAgICAgICAvLyBGSVhNRTogc2hvdWxkIHVzZSBMTFZNJ3MgYGFkZCBuc3cg bnV3YAorLSAgICAgICAgICAgICAgICBzZWxmLndyYXBwaW5nX29mZnNldChjb3VudCkKKy0gICAg ICAgICAgICB9CistCistICAgICAgICAgICAgLy8vIENhbGN1bGF0ZXMgdGhlIG9mZnNldCBmcm9t IGEgcG9pbnRlciB1c2luZyB3cmFwcGluZyBhcml0aG1ldGljLgorLSAgICAgICAgICAgIC8vLwor LSAgICAgICAgICAgIC8vLyBgY291bnRgIGlzIGluIHVuaXRzIG9mIGBUYDsgZS5nLiBhIGNvdW50 IG9mIGAzYCByZXByZXNlbnRzIGEKKy0gICAgICAgICAgICAvLy8gcG9pbnRlciBvZmZzZXQgb2Yg YDMgKiBzaXplX29mOjo8VD4oKWAgYnl0ZXMuCistICAgICAgICAgICAgLy8vCistICAgICAgICAg ICAgLy8vICMgU2FmZXR5CistICAgICAgICAgICAgLy8vCistICAgICAgICAgICAgLy8vIFRoZSBy ZXN1bHRpbmcgcG9pbnRlciBkb2VzIG5vdCBuZWVkIHRvIGJlIGluIGJvdW5kcywgYnV0IGl0IGlz CistICAgICAgICAgICAgLy8vIHBvdGVudGlhbGx5IGhhemFyZG91cyB0byBkZXJlZmVyZW5jZSAo d2hpY2ggcmVxdWlyZXMgdW5zYWZlKS4KKy0gICAgICAgICAgICAvLy8KKy0gICAgICAgICAgICAv Ly8gQWx3YXlzIHVzZSBgLm9mZnNldChjb3VudClgIGluc3RlYWQgd2hlbiBwb3NzaWJsZSwgYmVj YXVzZQorLSAgICAgICAgICAgIC8vLyBvZmZzZXQgYWxsb3dzIHRoZSBjb21waWxlciB0byBvcHRp bWl6ZSBiZXR0ZXIuCistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgcHViIGZu IHdyYXBwaW5nX29mZnNldChzZWxmLCBjb3VudDogJGlzaXplX3R5KSAtPiBTZWxmIHsKKy0gICAg ICAgICAgICAgICAgdW5zYWZlIHsKKy0gICAgICAgICAgICAgICAgICAgIGxldCB4OiAkaXNpemVf dHkgPSBjcmF0ZTo6bWVtOjp0cmFuc211dGUoc2VsZik7CistICAgICAgICAgICAgICAgICAgICAv LyBub3RlOiB7KywqfSBjdXJyZW50bHkgcGVyZm9ybXMgYSBgd3JhcHBpbmdfe2FkZCwgbXVsfWAK Ky0gICAgICAgICAgICAgICAgICAgIGNyYXRlOjptZW06OnRyYW5zbXV0ZSgKKy0gICAgICAgICAg ICAgICAgICAgICAgICB4ICsgKGNvdW50ICogY3JhdGU6Om1lbTo6c2l6ZV9vZjo6PFQ+KCkgYXMg aXNpemUpCistICAgICAgICAgICAgICAgICAgICApCistICAgICAgICAgICAgICAgIH0KKy0gICAg ICAgICAgICB9CistCistICAgICAgICAgICAgLy8vIENhbGN1bGF0ZXMgdGhlIGRpc3RhbmNlIGJl dHdlZW4gdHdvIHBvaW50ZXJzLgorLSAgICAgICAgICAgIC8vLworLSAgICAgICAgICAgIC8vLyBU aGUgcmV0dXJuZWQgdmFsdWUgaXMgaW4gdW5pdHMgb2YgYFRgOiB0aGUgZGlzdGFuY2UgaW4gYnl0 ZXMgaXMKKy0gICAgICAgICAgICAvLy8gZGl2aWRlZCBieSBgbWVtOjpzaXplX29mOjo8VD4oKWAu CistICAgICAgICAgICAgLy8vCistICAgICAgICAgICAgLy8vIFRoaXMgZnVuY3Rpb24gaXMgdGhl IGludmVyc2Ugb2Ygb2Zmc2V0LgorLSAgICAgICAgICAgIC8vLworLSAgICAgICAgICAgIC8vLyAj IFNhZmV0eQorLSAgICAgICAgICAgIC8vLworLSAgICAgICAgICAgIC8vLyBJZiBhbnkgb2YgdGhl IGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSB2aW9sYXRlZCwgdGhlIHJlc3VsdCBpcworLSAgICAg ICAgICAgIC8vLyBVbmRlZmluZWQgQmVoYXZpb3I6CistICAgICAgICAgICAgLy8vCistICAgICAg ICAgICAgLy8vICogQm90aCB0aGUgc3RhcnRpbmcgYW5kIG90aGVyIHBvaW50ZXIgbXVzdCBiZSBl aXRoZXIgaW4gYm91bmRzCistICAgICAgICAgICAgLy8vIG9yIG9uZSBieXRlIHBhc3QgdGhlIGVu ZCBvZiB0aGUgc2FtZSBhbGxvY2F0ZWQgb2JqZWN0LgorLSAgICAgICAgICAgIC8vLworLSAgICAg ICAgICAgIC8vLyAqIFRoZSBkaXN0YW5jZSBiZXR3ZWVuIHRoZSBwb2ludGVycywgaW4gYnl0ZXMs IGNhbm5vdCBvdmVyZmxvdworLSAgICAgICAgICAgIC8vLyBhbiBgaXNpemVgLgorLSAgICAgICAg ICAgIC8vLworLSAgICAgICAgICAgIC8vLyAqIFRoZSBkaXN0YW5jZSBiZXR3ZWVuIHRoZSBwb2lu dGVycywgaW4gYnl0ZXMsIG11c3QgYmUgYW4gZXhhY3QKKy0gICAgICAgICAgICAvLy8gbXVsdGlw bGUgb2YgdGhlIHNpemUgb2YgYFRgLgorLSAgICAgICAgICAgIC8vLworLSAgICAgICAgICAgIC8v LyAqIFRoZSBkaXN0YW5jZSBiZWluZyBpbiBib3VuZHMgY2Fubm90IHJlbHkgb24gIndyYXBwaW5n IGFyb3VuZCIKKy0gICAgICAgICAgICAvLy8gdGhlIGFkZHJlc3Mgc3BhY2UuCistICAgICAgICAg ICAgLy8vCistICAgICAgICAgICAgLy8vIFRoZSBjb21waWxlciBhbmQgc3RhbmRhcmQgbGlicmFy eSBnZW5lcmFsbHkgdHJ5IHRvIGVuc3VyZQorLSAgICAgICAgICAgIC8vLyBhbGxvY2F0aW9ucyBu ZXZlciByZWFjaCBhIHNpemUgd2hlcmUgYW4gb2Zmc2V0IGlzIGEgY29uY2Vybi4gRm9yCistICAg ICAgICAgICAgLy8vIGluc3RhbmNlLCBgVmVjYCBhbmQgYEJveGAgZW5zdXJlIHRoZXkgbmV2ZXIg YWxsb2NhdGUgbW9yZSB0aGFuCistICAgICAgICAgICAgLy8vIGBpc2l6ZTo6TUFYYCBieXRlcywg c28gYHB0cl9pbnRvX3ZlYy5vZmZzZXRfZnJvbSh2ZWMuYXNfcHRyKCkpYAorLSAgICAgICAgICAg IC8vLyBpcyBhbHdheXMgc2FmZS4KKy0gICAgICAgICAgICAvLy8KKy0gICAgICAgICAgICAvLy8g TW9zdCBwbGF0Zm9ybXMgZnVuZGFtZW50YWxseSBjYW4ndCBldmVuIGNvbnN0cnVjdCBzdWNoIGFu CistICAgICAgICAgICAgLy8vIGFsbG9jYXRpb24uIEZvciBpbnN0YW5jZSwgbm8ga25vd24gNjQt Yml0IHBsYXRmb3JtIGNhbiBldmVyCistICAgICAgICAgICAgLy8vIHNlcnZlIGEgcmVxdWVzdCBm b3IgMjYzIGJ5dGVzIGR1ZSB0byBwYWdlLXRhYmxlIGxpbWl0YXRpb25zIG9yCistICAgICAgICAg ICAgLy8vIHNwbGl0dGluZyB0aGUgYWRkcmVzcyBzcGFjZS4gSG93ZXZlciwgc29tZSAzMi1iaXQg YW5kIDE2LWJpdAorLSAgICAgICAgICAgIC8vLyBwbGF0Zm9ybXMgbWF5IHN1Y2Nlc3NmdWxseSBz ZXJ2ZSBhIHJlcXVlc3QgZm9yIG1vcmUgdGhhbgorLSAgICAgICAgICAgIC8vLyBgaXNpemU6Ok1B WGAgYnl0ZXMgd2l0aCB0aGluZ3MgbGlrZSBQaHlzaWNhbCBBZGRyZXNzIEV4dGVuc2lvbi4KKy0g ICAgICAgICAgICAvLy8gQXMgc3VjaCwgbWVtb3J5IGFjcXVpcmVkIGRpcmVjdGx5IGZyb20gYWxs b2NhdG9ycyBvciBtZW1vcnkKKy0gICAgICAgICAgICAvLy8gbWFwcGVkIGZpbGVzIG1heSBiZSB0 b28gbGFyZ2UgdG8gaGFuZGxlIHdpdGggdGhpcyBmdW5jdGlvbi4KKy0gICAgICAgICAgICAvLy8K Ky0gICAgICAgICAgICAvLy8gQ29uc2lkZXIgdXNpbmcgYHdyYXBwaW5nX29mZnNldF9mcm9tYCBp bnN0ZWFkIGlmIHRoZXNlIGNvbnN0cmFpbnRzCistICAgICAgICAgICAgLy8vIGFyZSBkaWZmaWN1 bHQgdG8gc2F0aXNmeS4gVGhlIG9ubHkgYWR2YW50YWdlIG9mIHRoaXMgbWV0aG9kIGlzCistICAg ICAgICAgICAgLy8vIHRoYXQgaXQgZW5hYmxlcyBtb3JlIGFnZ3Jlc3NpdmUgY29tcGlsZXIgb3B0 aW1pemF0aW9ucy4KKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBwdWIgdW5z YWZlIGZuIG9mZnNldF9mcm9tKHNlbGYsIG9yaWdpbjogU2VsZikgLT4gJGlzaXplX3R5IHsKKy0g ICAgICAgICAgICAgICAgLy8gRklYTUU6IHNob3VsZCB1c2UgTExWTSdzIGBzdWIgbnN3IG51d2Au CistICAgICAgICAgICAgICAgIHNlbGYud3JhcHBpbmdfb2Zmc2V0X2Zyb20ob3JpZ2luKQorLSAg ICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICAvLy8gQ2FsY3VsYXRlcyB0aGUgZGlzdGFuY2Ug YmV0d2VlbiB0d28gcG9pbnRlcnMuCistICAgICAgICAgICAgLy8vCistICAgICAgICAgICAgLy8v IFRoZSByZXR1cm5lZCB2YWx1ZSBpcyBpbiB1bml0cyBvZiBgVGA6IHRoZSBkaXN0YW5jZSBpbiBi eXRlcyBpcworLSAgICAgICAgICAgIC8vLyBkaXZpZGVkIGJ5IGBtZW06OnNpemVfb2Y6OjxUPigp YC4KKy0gICAgICAgICAgICAvLy8KKy0gICAgICAgICAgICAvLy8gSWYgdGhlIGFkZHJlc3MgZGlm ZmVyZW50IGJldHdlZW4gdGhlIHR3byBwb2ludGVycyBpcyBub3QgYQorLSAgICAgICAgICAgIC8v LyBtdWx0aXBsZSBvZiBgbWVtOjpzaXplX29mOjo8VD4oKWAgdGhlbiB0aGUgcmVzdWx0IG9mIHRo ZQorLSAgICAgICAgICAgIC8vLyBkaXZpc2lvbiBpcyByb3VuZGVkIHRvd2FyZHMgemVyby4KKy0g ICAgICAgICAgICAvLy8KKy0gICAgICAgICAgICAvLy8gVGhvdWdoIHRoaXMgbWV0aG9kIGlzIHNh ZmUgZm9yIGFueSB0d28gcG9pbnRlcnMsIG5vdGUgdGhhdCBpdHMKKy0gICAgICAgICAgICAvLy8g cmVzdWx0IHdpbGwgYmUgbW9zdGx5IHVzZWxlc3MgaWYgdGhlIHR3byBwb2ludGVycyBhcmVuJ3Qg aW50bworLSAgICAgICAgICAgIC8vLyB0aGUgc2FtZSBhbGxvY2F0ZWQgb2JqZWN0LCBmb3IgZXhh bXBsZSBpZiB0aGV5IHBvaW50IHRvIHR3bworLSAgICAgICAgICAgIC8vLyBkaWZmZXJlbnQgbG9j YWwgdmFyaWFibGVzLgorLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIHB1YiBm biB3cmFwcGluZ19vZmZzZXRfZnJvbShzZWxmLCBvcmlnaW46IFNlbGYpIC0+ICRpc2l6ZV90eSB7 CistICAgICAgICAgICAgICAgIGxldCB4OiAkaXNpemVfdHkgPSB1bnNhZmUgeyBjcmF0ZTo6bWVt Ojp0cmFuc211dGUoc2VsZikgfTsKKy0gICAgICAgICAgICAgICAgbGV0IHk6ICRpc2l6ZV90eSA9 IHVuc2FmZSB7IGNyYXRlOjptZW06OnRyYW5zbXV0ZShvcmlnaW4pIH07CistICAgICAgICAgICAg ICAgIC8vIG5vdGU6IHstLC99IGN1cnJlbnRseSBwZXJmb3JtIHdyYXBwaW5nX3tzdWIsIGRpdn0K Ky0gICAgICAgICAgICAgICAgKHkgLSB4KSAvIChjcmF0ZTo6bWVtOjpzaXplX29mOjo8VD4oKSBh cyBpc2l6ZSkKKy0gICAgICAgICAgICB9CistCistICAgICAgICAgICAgLy8vIENhbGN1bGF0ZXMg dGhlIG9mZnNldCBmcm9tIGEgcG9pbnRlciAoY29udmVuaWVuY2UgZm9yCistICAgICAgICAgICAg Ly8vIGAub2Zmc2V0KGNvdW50IGFzIGlzaXplKWApLgorLSAgICAgICAgICAgIC8vLworLSAgICAg ICAgICAgIC8vLyBgY291bnRgIGlzIGluIHVuaXRzIG9mIGBUYDsgZS5nLiBhIGNvdW50IG9mIDMg cmVwcmVzZW50cyBhCistICAgICAgICAgICAgLy8vIHBvaW50ZXIgb2Zmc2V0IG9mIGAzICogc2l6 ZV9vZjo6PFQ+KClgIGJ5dGVzLgorLSAgICAgICAgICAgIC8vLworLSAgICAgICAgICAgIC8vLyAj IFNhZmV0eQorLSAgICAgICAgICAgIC8vLworLSAgICAgICAgICAgIC8vLyBJZiBhbnkgb2YgdGhl IGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSB2aW9sYXRlZCwgdGhlIHJlc3VsdCBpcworLSAgICAg ICAgICAgIC8vLyBVbmRlZmluZWQgQmVoYXZpb3I6CistICAgICAgICAgICAgLy8vCistICAgICAg ICAgICAgLy8vICogQm90aCB0aGUgc3RhcnRpbmcgYW5kIHJlc3VsdGluZyBwb2ludGVyIG11c3Qg YmUgZWl0aGVyIGluCistICAgICAgICAgICAgLy8vIGJvdW5kcyBvciBvbmUgYnl0ZSBwYXN0IHRo ZSBlbmQgb2YgYW4gYWxsb2NhdGVkIG9iamVjdC4KKy0gICAgICAgICAgICAvLy8KKy0gICAgICAg ICAgICAvLy8gKiBUaGUgY29tcHV0ZWQgb2Zmc2V0LCBpbiBieXRlcywgY2Fubm90IG92ZXJmbG93 IGFuIGBpc2l6ZWAuCistICAgICAgICAgICAgLy8vCistICAgICAgICAgICAgLy8vICogVGhlIG9m ZnNldCBiZWluZyBpbiBib3VuZHMgY2Fubm90IHJlbHkgb24gIndyYXBwaW5nIGFyb3VuZCIKKy0g ICAgICAgICAgICAvLy8gdGhlIGFkZHJlc3Mgc3BhY2UuIFRoYXQgaXMsIHRoZSBpbmZpbml0ZS1w cmVjaXNpb24gc3VtIG11c3QgZml0CistICAgICAgICAgICAgLy8vIGluIGEgYHVzaXplYC4KKy0g ICAgICAgICAgICAvLy8KKy0gICAgICAgICAgICAvLy8gVGhlIGNvbXBpbGVyIGFuZCBzdGFuZGFy ZCBsaWJyYXJ5IGdlbmVyYWxseSB0cmllcyB0byBlbnN1cmUKKy0gICAgICAgICAgICAvLy8gYWxs b2NhdGlvbnMgbmV2ZXIgcmVhY2ggYSBzaXplIHdoZXJlIGFuIG9mZnNldCBpcyBhIGNvbmNlcm4u IEZvcgorLSAgICAgICAgICAgIC8vLyBpbnN0YW5jZSwgYFZlY2AgYW5kIGBCb3hgIGVuc3VyZSB0 aGV5IG5ldmVyIGFsbG9jYXRlIG1vcmUgdGhhbgorLSAgICAgICAgICAgIC8vLyBgaXNpemU6Ok1B WGAgYnl0ZXMsIHNvIGB2ZWMuYXNfcHRyKCkuYWRkKHZlYy5sZW4oKSlgIGlzIGFsd2F5cworLSAg ICAgICAgICAgIC8vLyBzYWZlLgorLSAgICAgICAgICAgIC8vLworLSAgICAgICAgICAgIC8vLyBN b3N0IHBsYXRmb3JtcyBmdW5kYW1lbnRhbGx5IGNhbid0IGV2ZW4gY29uc3RydWN0IHN1Y2ggYW4K Ky0gICAgICAgICAgICAvLy8gYWxsb2NhdGlvbi4gRm9yIGluc3RhbmNlLCBubyBrbm93biA2NC1i aXQgcGxhdGZvcm0gY2FuIGV2ZXIKKy0gICAgICAgICAgICAvLy8gc2VydmUgYSByZXF1ZXN0IGZv ciAyNjMgYnl0ZXMgZHVlIHRvIHBhZ2UtdGFibGUgbGltaXRhdGlvbnMgb3IKKy0gICAgICAgICAg ICAvLy8gc3BsaXR0aW5nIHRoZSBhZGRyZXNzIHNwYWNlLiBIb3dldmVyLCBzb21lIDMyLWJpdCBh bmQgMTYtYml0CistICAgICAgICAgICAgLy8vIHBsYXRmb3JtcyBtYXkgc3VjY2Vzc2Z1bGx5IHNl cnZlIGEgcmVxdWVzdCBmb3IgbW9yZSB0aGFuCistICAgICAgICAgICAgLy8vIGBpc2l6ZTo6TUFY YCBieXRlcyB3aXRoIHRoaW5ncyBsaWtlIFBoeXNpY2FsIEFkZHJlc3MgRXh0ZW5zaW9uLgorLSAg ICAgICAgICAgIC8vLyBBcyBzdWNoLCBtZW1vcnkgYWNxdWlyZWQgZGlyZWN0bHkgZnJvbSBhbGxv Y2F0b3JzIG9yIG1lbW9yeQorLSAgICAgICAgICAgIC8vLyBtYXBwZWQgZmlsZXMgbWF5IGJlIHRv byBsYXJnZSB0byBoYW5kbGUgd2l0aCB0aGlzIGZ1bmN0aW9uLgorLSAgICAgICAgICAgIC8vLwor LSAgICAgICAgICAgIC8vLyBDb25zaWRlciB1c2luZyBgd3JhcHBpbmdfb2Zmc2V0YCBpbnN0ZWFk IGlmIHRoZXNlIGNvbnN0cmFpbnRzCistICAgICAgICAgICAgLy8vIGFyZSBkaWZmaWN1bHQgdG8g c2F0aXNmeS4gVGhlIG9ubHkgYWR2YW50YWdlIG9mIHRoaXMgbWV0aG9kIGlzCistICAgICAgICAg ICAgLy8vIHRoYXQgaXQgZW5hYmxlcyBtb3JlIGFnZ3Jlc3NpdmUgY29tcGlsZXIgb3B0aW1pemF0 aW9ucy4KKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICAjW2FsbG93KGNsaXBw eTo6c2hvdWxkX2ltcGxlbWVudF90cmFpdCldCistICAgICAgICAgICAgcHViIHVuc2FmZSBmbiBh ZGQoc2VsZiwgY291bnQ6ICR1c2l6ZV90eSkgLT4gU2VsZiB7CistICAgICAgICAgICAgICAgIHNl bGYub2Zmc2V0KGNvdW50LmNhc3QoKSkKKy0gICAgICAgICAgICB9CistCistICAgICAgICAgICAg Ly8vIENhbGN1bGF0ZXMgdGhlIG9mZnNldCBmcm9tIGEgcG9pbnRlciAoY29udmVuaWVuY2UgZm9y CistICAgICAgICAgICAgLy8vIGAub2Zmc2V0KChjb3VudCBhcyBpc2l6ZSkud3JhcHBpbmdfbmVn KCkpYCkuCistICAgICAgICAgICAgLy8vCistICAgICAgICAgICAgLy8vIGBjb3VudGAgaXMgaW4g dW5pdHMgb2YgVDsgZS5nLiBhIGBjb3VudGAgb2YgMyByZXByZXNlbnRzIGEKKy0gICAgICAgICAg ICAvLy8gcG9pbnRlciBvZmZzZXQgb2YgYDMgKiBzaXplX29mOjo8VD4oKWAgYnl0ZXMuCistICAg ICAgICAgICAgLy8vCistICAgICAgICAgICAgLy8vICMgU2FmZXR5CistICAgICAgICAgICAgLy8v CistICAgICAgICAgICAgLy8vIElmIGFueSBvZiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl IHZpb2xhdGVkLCB0aGUgcmVzdWx0IGlzCistICAgICAgICAgICAgLy8vIFVuZGVmaW5lZCBCZWhh dmlvcjoKKy0gICAgICAgICAgICAvLy8KKy0gICAgICAgICAgICAvLy8gKiBCb3RoIHRoZSBzdGFy dGluZyBhbmQgcmVzdWx0aW5nIHBvaW50ZXIgbXVzdCBiZSBlaXRoZXIgaW4KKy0gICAgICAgICAg ICAvLy8gYm91bmRzIG9yIG9uZSBieXRlIHBhc3QgdGhlIGVuZCBvZiBhbiBhbGxvY2F0ZWQgb2Jq ZWN0LgorLSAgICAgICAgICAgIC8vLworLSAgICAgICAgICAgIC8vLyAqIFRoZSBjb21wdXRlZCBv ZmZzZXQgY2Fubm90IGV4Y2VlZCBgaXNpemU6Ok1BWGAgKipieXRlcyoqLgorLSAgICAgICAgICAg IC8vLworLSAgICAgICAgICAgIC8vLyAqIFRoZSBvZmZzZXQgYmVpbmcgaW4gYm91bmRzIGNhbm5v dCByZWx5IG9uICJ3cmFwcGluZyBhcm91bmQiCistICAgICAgICAgICAgLy8vIHRoZSBhZGRyZXNz IHNwYWNlLiBUaGF0IGlzLCB0aGUgaW5maW5pdGUtcHJlY2lzaW9uIHN1bSBtdXN0IGZpdAorLSAg ICAgICAgICAgIC8vLyBpbiBhIHVzaXplLgorLSAgICAgICAgICAgIC8vLworLSAgICAgICAgICAg IC8vLyBUaGUgY29tcGlsZXIgYW5kIHN0YW5kYXJkIGxpYnJhcnkgZ2VuZXJhbGx5IHRyaWVzIHRv IGVuc3VyZQorLSAgICAgICAgICAgIC8vLyBhbGxvY2F0aW9ucyBuZXZlciByZWFjaCBhIHNpemUg d2hlcmUgYW4gb2Zmc2V0IGlzIGEgY29uY2Vybi4gRm9yCistICAgICAgICAgICAgLy8vIGluc3Rh bmNlLCBgVmVjYCBhbmQgYEJveGAgZW5zdXJlIHRoZXkgbmV2ZXIgYWxsb2NhdGUgbW9yZSB0aGFu CistICAgICAgICAgICAgLy8vIGBpc2l6ZTo6TUFYYCBieXRlcywgc28KKy0gICAgICAgICAgICAv Ly8gYHZlYy5hc19wdHIoKS5hZGQodmVjLmxlbigpKS5zdWIodmVjLmxlbigpKWAgaXMgYWx3YXlz IHNhZmUuCistICAgICAgICAgICAgLy8vCistICAgICAgICAgICAgLy8vIE1vc3QgcGxhdGZvcm1z IGZ1bmRhbWVudGFsbHkgY2FuJ3QgZXZlbiBjb25zdHJ1Y3Qgc3VjaCBhbgorLSAgICAgICAgICAg IC8vLyBhbGxvY2F0aW9uLiBGb3IgaW5zdGFuY2UsIG5vIGtub3duIDY0LWJpdCBwbGF0Zm9ybSBj YW4gZXZlcgorLSAgICAgICAgICAgIC8vLyBzZXJ2ZSBhIHJlcXVlc3QgZm9yIDI8c3VwPjYzPC9z dXA+IGJ5dGVzIGR1ZSB0byBwYWdlLXRhYmxlCistICAgICAgICAgICAgLy8vIGxpbWl0YXRpb25z IG9yIHNwbGl0dGluZyB0aGUgYWRkcmVzcyBzcGFjZS4gSG93ZXZlciwgc29tZSAzMi1iaXQKKy0g ICAgICAgICAgICAvLy8gYW5kIDE2LWJpdCBwbGF0Zm9ybXMgbWF5IHN1Y2Nlc3NmdWxseSBzZXJ2 ZSBhIHJlcXVlc3QgZm9yIG1vcmUKKy0gICAgICAgICAgICAvLy8gdGhhbiBgaXNpemU6Ok1BWGAg Ynl0ZXMgd2l0aCB0aGluZ3MgbGlrZSBQaHlzaWNhbCBBZGRyZXNzCistICAgICAgICAgICAgLy8v IEV4dGVuc2lvbi4gQXMgc3VjaCwgbWVtb3J5IGFjcXVpcmVkIGRpcmVjdGx5IGZyb20gYWxsb2Nh dG9ycyBvcgorLSAgICAgICAgICAgIC8vLyBtZW1vcnkgbWFwcGVkIGZpbGVzICptYXkqIGJlIHRv byBsYXJnZSB0byBoYW5kbGUgd2l0aCB0aGlzCistICAgICAgICAgICAgLy8vIGZ1bmN0aW9uLgor LSAgICAgICAgICAgIC8vLworLSAgICAgICAgICAgIC8vLyBDb25zaWRlciB1c2luZyBgd3JhcHBp bmdfb2Zmc2V0YCBpbnN0ZWFkIGlmIHRoZXNlIGNvbnN0cmFpbnRzCistICAgICAgICAgICAgLy8v IGFyZSBkaWZmaWN1bHQgdG8gc2F0aXNmeS4gVGhlIG9ubHkgYWR2YW50YWdlIG9mIHRoaXMgbWV0 aG9kIGlzCistICAgICAgICAgICAgLy8vIHRoYXQgaXQgZW5hYmxlcyBtb3JlIGFnZ3Jlc3NpdmUg Y29tcGlsZXIgb3B0aW1pemF0aW9ucy4KKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAg ICAgICAjW2FsbG93KGNsaXBweTo6c2hvdWxkX2ltcGxlbWVudF90cmFpdCldCistICAgICAgICAg ICAgcHViIHVuc2FmZSBmbiBzdWIoc2VsZiwgY291bnQ6ICR1c2l6ZV90eSkgLT4gU2VsZiB7Cist ICAgICAgICAgICAgICAgIGxldCB4OiAkaXNpemVfdHkgPSBjb3VudC5jYXN0KCk7CistICAgICAg ICAgICAgICAgIC8vIG5vdGU6IC0gaXMgY3VycmVudGx5IHdyYXBwaW5nX25lZworLSAgICAgICAg ICAgICAgICBzZWxmLm9mZnNldCgteCkKKy0gICAgICAgICAgICB9CistCistICAgICAgICAgICAg Ly8vIENhbGN1bGF0ZXMgdGhlIG9mZnNldCBmcm9tIGEgcG9pbnRlciB1c2luZyB3cmFwcGluZyBh cml0aG1ldGljLgorLSAgICAgICAgICAgIC8vLyAoY29udmVuaWVuY2UgZm9yIGAud3JhcHBpbmdf b2Zmc2V0KGNvdW50IGFzIGlzaXplKWApCistICAgICAgICAgICAgLy8vCistICAgICAgICAgICAg Ly8vIGBjb3VudGAgaXMgaW4gdW5pdHMgb2YgVDsgZS5nLiBhIGBjb3VudGAgb2YgMyByZXByZXNl bnRzIGEKKy0gICAgICAgICAgICAvLy8gcG9pbnRlciBvZmZzZXQgb2YgYDMgKiBzaXplX29mOjo8 VD4oKWAgYnl0ZXMuCistICAgICAgICAgICAgLy8vCistICAgICAgICAgICAgLy8vICMgU2FmZXR5 CistICAgICAgICAgICAgLy8vCistICAgICAgICAgICAgLy8vIFRoZSByZXN1bHRpbmcgcG9pbnRl ciBkb2VzIG5vdCBuZWVkIHRvIGJlIGluIGJvdW5kcywgYnV0IGl0IGlzCistICAgICAgICAgICAg Ly8vIHBvdGVudGlhbGx5IGhhemFyZG91cyB0byBkZXJlZmVyZW5jZSAod2hpY2ggcmVxdWlyZXMg YHVuc2FmZWApLgorLSAgICAgICAgICAgIC8vLworLSAgICAgICAgICAgIC8vLyBBbHdheXMgdXNl IGAuYWRkKGNvdW50KWAgaW5zdGVhZCB3aGVuIHBvc3NpYmxlLCBiZWNhdXNlIGBhZGRgCistICAg ICAgICAgICAgLy8vIGFsbG93cyB0aGUgY29tcGlsZXIgdG8gb3B0aW1pemUgYmV0dGVyLgorLSAg ICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIHB1YiBmbiB3cmFwcGluZ19hZGQoc2Vs ZiwgY291bnQ6ICR1c2l6ZV90eSkgLT4gU2VsZiB7CistICAgICAgICAgICAgICAgIHNlbGYud3Jh cHBpbmdfb2Zmc2V0KGNvdW50LmNhc3QoKSkKKy0gICAgICAgICAgICB9CistCistICAgICAgICAg ICAgLy8vIENhbGN1bGF0ZXMgdGhlIG9mZnNldCBmcm9tIGEgcG9pbnRlciB1c2luZyB3cmFwcGlu ZyBhcml0aG1ldGljLgorLSAgICAgICAgICAgIC8vLyAoY29udmVuaWVuY2UgZm9yIGAud3JhcHBp bmdfb2Zmc2V0KChjb3VudCBhcworLSAgICAgICAgICAgIC8vLyBpc2l6ZSkud3JhcHBpbmdfc3Vi KCkpYCkKKy0gICAgICAgICAgICAvLy8KKy0gICAgICAgICAgICAvLy8gYGNvdW50YCBpcyBpbiB1 bml0cyBvZiBUOyBlLmcuIGEgYGNvdW50YCBvZiAzIHJlcHJlc2VudHMgYQorLSAgICAgICAgICAg IC8vLyBwb2ludGVyIG9mZnNldCBvZiBgMyAqIHNpemVfb2Y6OjxUPigpYCBieXRlcy4KKy0gICAg ICAgICAgICAvLy8KKy0gICAgICAgICAgICAvLy8gIyBTYWZldHkKKy0gICAgICAgICAgICAvLy8K Ky0gICAgICAgICAgICAvLy8gVGhlIHJlc3VsdGluZyBwb2ludGVyIGRvZXMgbm90IG5lZWQgdG8g YmUgaW4gYm91bmRzLCBidXQgaXQgaXMKKy0gICAgICAgICAgICAvLy8gcG90ZW50aWFsbHkgaGF6 YXJkb3VzIHRvIGRlcmVmZXJlbmNlICh3aGljaCByZXF1aXJlcyBgdW5zYWZlYCkuCistICAgICAg ICAgICAgLy8vCistICAgICAgICAgICAgLy8vIEFsd2F5cyB1c2UgYC5zdWIoY291bnQpYCBpbnN0 ZWFkIHdoZW4gcG9zc2libGUsIGJlY2F1c2UgYHN1YmAKKy0gICAgICAgICAgICAvLy8gYWxsb3dz IHRoZSBjb21waWxlciB0byBvcHRpbWl6ZSBiZXR0ZXIuCistICAgICAgICAgICAgI1tpbmxpbmVd CistICAgICAgICAgICAgcHViIGZuIHdyYXBwaW5nX3N1YihzZWxmLCBjb3VudDogJHVzaXplX3R5 KSAtPiBTZWxmIHsKKy0gICAgICAgICAgICAgICAgbGV0IHg6ICRpc2l6ZV90eSA9IGNvdW50LmNh c3QoKTsKKy0gICAgICAgICAgICAgICAgc2VsZi53cmFwcGluZ19vZmZzZXQoLTEgKiB4KQorLSAg ICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0KKy0gICAgICAgIGltcGw8VD4gJGlkPFQ+IHsKKy0g ICAgICAgICAgICAvLy8gU2h1ZmZsZSB2ZWN0b3IgZWxlbWVudHMgYWNjb3JkaW5nIHRvIGBpbmRp Y2VzYC4KKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBwdWIgZm4gc2h1ZmZs ZTFfZHluPEk+KHNlbGYsIGluZGljZXM6IEkpIC0+IFNlbGYKKy0gICAgICAgICAgICAgICAgd2hl cmUKKy0gICAgICAgICAgICAgICAgU2VsZjogY29kZWdlbjo6c2h1ZmZsZTFfZHluOjpTaHVmZmxl MUR5bjxJbmRpY2VzID0gST4sCistICAgICAgICAgICAgeworLSAgICAgICAgICAgICAgICBjb2Rl Z2VuOjpzaHVmZmxlMV9keW46OlNodWZmbGUxRHluOjpzaHVmZmxlMV9keW4oc2VsZiwgaW5kaWNl cykKKy0gICAgICAgICAgICB9CistICAgICAgICB9CistCistICAgICAgICB0ZXN0X2lmISB7Cist ICAgICAgICAgICAgICAgICR0ZXN0X3R0OgorLSAgICAgICAgICAgIHBhc3RlOjppdGVtISB7Cist ICAgICAgICAgICAgICAgIHB1YiBtb2QgWzwkaWQgX3NodWZmbGUxX2R5bj5dIHsKKy0gICAgICAg ICAgICAgICAgICAgIHVzZSBzdXBlcjo6KjsKKy0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0 dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0KKy0gICAgICAgICAgICAgICAg ICAgICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3Qp XQorLSAgICAgICAgICAgICAgICAgICAgZm4gc2h1ZmZsZTFfZHluKCkgeworLSAgICAgICAgICAg ICAgICAgICAgICAgIGxldCAobnVsbCwgbm9uX251bGwpID0gcHRyX3ZhbHMhKCRpZDxpMzI+KTsK Ky0KKy0gICAgICAgICAgICAgICAgICAgICAgICAvLyBhbHRlcm5hdGluZyA9IFtub25fbnVsbCwg bnVsbCwgbm9uX251bGwsIG51bGwsIC4uLl0KKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQg bXV0IGFsdGVybmF0aW5nID0gJGlkOjo8aTMyPjo6c3BsYXQobnVsbCk7CistICAgICAgICAgICAg ICAgICAgICAgICAgZm9yIGkgaW4gMC4uJGlkOjo8aTMyPjo6bGFuZXMoKSB7CistICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGlmIGkgJSAyID09IDAgeworLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgYWx0ZXJuYXRpbmcgPSBhbHRlcm5hdGluZy5yZXBsYWNlKGksIG5vbl9udWxs KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAg ICAgIH0KKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICB0eXBlIEluZGljZXMgPSA8JGlkPGkz Mj4KKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXMgY29kZWdlbjo6c2h1ZmZsZTFfZHlu OjpTaHVmZmxlMUR5bj46OkluZGljZXM7CistICAgICAgICAgICAgICAgICAgICAgICAgLy8gZXZl biA9IFswLCAwLCAyLCAyLCA0LCA0LCAuLl0KKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQg ZXZlbiA9IHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCB2ID0gSW5kaWNl czo6c3BsYXQoMCk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciBpIGluIDAuLiRp ZDo6PGkzMj46OmxhbmVzKCkgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYg aSAlIDIgPT0gMCB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdiA9IHYu cmVwbGFjZShpLCAoaSBhcyB1OCkuaW50bygpKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH0gZWxzZSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ID0gdi5y ZXBsYWNlKGksIChpIGFzIHU4IC0gMSkuaW50bygpKTsKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICB2CistICAgICAgICAgICAgICAgICAgICAgICAgfTsKKy0gICAgICAg ICAgICAgICAgICAgICAgICAvLyBvZGQgPSBbMSwgMSwgMywgMywgNSwgNSwgLi4uXQorLSAgICAg ICAgICAgICAgICAgICAgICAgIGxldCBvZGQgPSB7CistICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGxldCBtdXQgdiA9IEluZGljZXM6OnNwbGF0KDApOworLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICBmb3IgaSBpbiAwLi4kaWQ6OjxpMzI+OjpsYW5lcygpIHsKKy0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGlmIGkgJSAyICE9IDAgeworLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHYgPSB2LnJlcGxhY2UoaSwgKGkgYXMgdTgpLmludG8oKSk7CistICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHYgPSB2LnJlcGxhY2UoaSwgKGkgYXMgdTggKyAxKS5pbnRvKCkp OworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYKKy0gICAgICAgICAg ICAgICAgICAgICAgICB9OworLQorLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEo CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsdGVybmF0aW5nLnNodWZmbGUxX2R5bihl dmVuKSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGlkOjo8aTMyPjo6c3BsYXQobm9u X251bGwpCistICAgICAgICAgICAgICAgICAgICAgICAgKTsKKy0gICAgICAgICAgICAgICAgICAg ICAgICBpZiAkaWQ6OjxpMzI+OjpsYW5lcygpID4gMSB7CistICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGFzc2VydF9lcSEoCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHRl cm5hdGluZy5zaHVmZmxlMV9keW4ob2RkKSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICRpZDo6PGkzMj46OnNwbGF0KG51bGwpCistICAgICAgICAgICAgICAgICAgICAgICAgICAg ICk7CistICAgICAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgfQor LSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICB9Owor LX0KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvb3Bz LnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL29wcy5ycworZGVsZXRl ZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3Ny Yy9hcGkvb3BzLnJzCisrKysgL2Rldi9udWxsCitAQCAtMSwzMiArMCwwIEBACistLy8hIEltcGxl bWVudGF0aW9uIG9mIHRoZSBgb3BzYCB0cmFpdHMKKy0jW21hY3JvX3VzZV0KKy1tb2QgdmVjdG9y X21hc2tfYml0d2lzZTsKKy0jW21hY3JvX3VzZV0KKy1tb2Qgc2NhbGFyX21hc2tfYml0d2lzZTsK Ky0KKy0jW21hY3JvX3VzZV0KKy1tb2QgdmVjdG9yX2FyaXRobWV0aWM7CistI1ttYWNyb191c2Vd CistbW9kIHNjYWxhcl9hcml0aG1ldGljOworLQorLSNbbWFjcm9fdXNlXQorLW1vZCB2ZWN0b3Jf Yml0d2lzZTsKKy0jW21hY3JvX3VzZV0KKy1tb2Qgc2NhbGFyX2JpdHdpc2U7CistCistI1ttYWNy b191c2VdCistbW9kIHZlY3Rvcl9zaGlmdHM7CistI1ttYWNyb191c2VdCistbW9kIHNjYWxhcl9z aGlmdHM7CistCistI1ttYWNyb191c2VdCistbW9kIHZlY3Rvcl9yb3RhdGVzOworLQorLSNbbWFj cm9fdXNlXQorLW1vZCB2ZWN0b3JfbmVnOworLQorLSNbbWFjcm9fdXNlXQorLW1vZCB2ZWN0b3Jf aW50X21pbl9tYXg7CistCistI1ttYWNyb191c2VdCistbW9kIHZlY3Rvcl9mbG9hdF9taW5fbWF4 OworZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9vcHMv c2NhbGFyX2FyaXRobWV0aWMucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9h cGkvb3BzL3NjYWxhcl9hcml0aG1ldGljLnJzCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0t LSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9vcHMvc2NhbGFyX2FyaXRo bWV0aWMucnMKKysrKyAvZGV2L251bGwKK0BAIC0xLDIwMyArMCwwIEBACistLy8hIFZlcnRpY2Fs IChsYW5lLXdpc2UpIHZlY3Rvci1zY2FsYXIgLyBzY2FsYXItdmVjdG9yIGFyaXRobWV0aWMgb3Bl cmF0aW9ucy4KKy0KKy1tYWNyb19ydWxlcyEgaW1wbF9vcHNfc2NhbGFyX2FyaXRobWV0aWMgewor LSAgICAoWyRlbGVtX3R5OmlkZW50OyAkZWxlbV9jb3VudDpleHByXTogJGlkOmlkZW50IHwgJHRl c3RfdHQ6dHQpID0+IHsKKy0gICAgICAgIGltcGwgY3JhdGU6Om9wczo6QWRkPCRlbGVtX3R5PiBm b3IgJGlkIHsKKy0gICAgICAgICAgICB0eXBlIE91dHB1dCA9IFNlbGY7CistICAgICAgICAgICAg I1tpbmxpbmVdCistICAgICAgICAgICAgZm4gYWRkKHNlbGYsIG90aGVyOiAkZWxlbV90eSkgLT4g U2VsZiB7CistICAgICAgICAgICAgICAgIHNlbGYgKyAkaWQ6OnNwbGF0KG90aGVyKQorLSAgICAg ICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgICAgIGltcGwgY3JhdGU6Om9wczo6QWRkPCRpZD4g Zm9yICRlbGVtX3R5IHsKKy0gICAgICAgICAgICB0eXBlIE91dHB1dCA9ICRpZDsKKy0gICAgICAg ICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBmbiBhZGQoc2VsZiwgb3RoZXI6ICRpZCkgLT4g JGlkIHsKKy0gICAgICAgICAgICAgICAgJGlkOjpzcGxhdChzZWxmKSArIG90aGVyCistICAgICAg ICAgICAgfQorLSAgICAgICAgfQorLQorLSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpTdWI8JGVs ZW1fdHk+IGZvciAkaWQgeworLSAgICAgICAgICAgIHR5cGUgT3V0cHV0ID0gU2VsZjsKKy0gICAg ICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBmbiBzdWIoc2VsZiwgb3RoZXI6ICRlbGVt X3R5KSAtPiBTZWxmIHsKKy0gICAgICAgICAgICAgICAgc2VsZiAtICRpZDo6c3BsYXQob3RoZXIp CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpT dWI8JGlkPiBmb3IgJGVsZW1fdHkgeworLSAgICAgICAgICAgIHR5cGUgT3V0cHV0ID0gJGlkOwor LSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIGZuIHN1YihzZWxmLCBvdGhlcjog JGlkKSAtPiAkaWQgeworLSAgICAgICAgICAgICAgICAkaWQ6OnNwbGF0KHNlbGYpIC0gb3RoZXIK Ky0gICAgICAgICAgICB9CistICAgICAgICB9CistCistICAgICAgICBpbXBsIGNyYXRlOjpvcHM6 Ok11bDwkZWxlbV90eT4gZm9yICRpZCB7CistICAgICAgICAgICAgdHlwZSBPdXRwdXQgPSBTZWxm OworLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIGZuIG11bChzZWxmLCBvdGhl cjogJGVsZW1fdHkpIC0+IFNlbGYgeworLSAgICAgICAgICAgICAgICBzZWxmICogJGlkOjpzcGxh dChvdGhlcikKKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgICAgICBpbXBsIGNyYXRl OjpvcHM6Ok11bDwkaWQ+IGZvciAkZWxlbV90eSB7CistICAgICAgICAgICAgdHlwZSBPdXRwdXQg PSAkaWQ7CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgZm4gbXVsKHNlbGYs IG90aGVyOiAkaWQpIC0+ICRpZCB7CistICAgICAgICAgICAgICAgICRpZDo6c3BsYXQoc2VsZikg KiBvdGhlcgorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0KKy0gICAgICAgIGltcGwgY3Jh dGU6Om9wczo6RGl2PCRlbGVtX3R5PiBmb3IgJGlkIHsKKy0gICAgICAgICAgICB0eXBlIE91dHB1 dCA9IFNlbGY7CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgZm4gZGl2KHNl bGYsIG90aGVyOiAkZWxlbV90eSkgLT4gU2VsZiB7CistICAgICAgICAgICAgICAgIHNlbGYgLyAk aWQ6OnNwbGF0KG90aGVyKQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgICAgIGlt cGwgY3JhdGU6Om9wczo6RGl2PCRpZD4gZm9yICRlbGVtX3R5IHsKKy0gICAgICAgICAgICB0eXBl IE91dHB1dCA9ICRpZDsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBmbiBk aXYoc2VsZiwgb3RoZXI6ICRpZCkgLT4gJGlkIHsKKy0gICAgICAgICAgICAgICAgJGlkOjpzcGxh dChzZWxmKSAvIG90aGVyCistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLQorLSAgICAgICAg aW1wbCBjcmF0ZTo6b3BzOjpSZW08JGVsZW1fdHk+IGZvciAkaWQgeworLSAgICAgICAgICAgIHR5 cGUgT3V0cHV0ID0gU2VsZjsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBm biByZW0oc2VsZiwgb3RoZXI6ICRlbGVtX3R5KSAtPiBTZWxmIHsKKy0gICAgICAgICAgICAgICAg c2VsZiAlICRpZDo6c3BsYXQob3RoZXIpCistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAg ICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpSZW08JGlkPiBmb3IgJGVsZW1fdHkgeworLSAgICAgICAg ICAgIHR5cGUgT3V0cHV0ID0gJGlkOworLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAg ICAgIGZuIHJlbShzZWxmLCBvdGhlcjogJGlkKSAtPiAkaWQgeworLSAgICAgICAgICAgICAgICAk aWQ6OnNwbGF0KHNlbGYpICUgb3RoZXIKKy0gICAgICAgICAgICB9CistICAgICAgICB9CistCist ICAgICAgICBpbXBsIGNyYXRlOjpvcHM6OkFkZEFzc2lnbjwkZWxlbV90eT4gZm9yICRpZCB7Cist ICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgZm4gYWRkX2Fzc2lnbigmbXV0IHNl bGYsIG90aGVyOiAkZWxlbV90eSkgeworLSAgICAgICAgICAgICAgICAqc2VsZiA9ICpzZWxmICsg b3RoZXI7CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLQorLSAgICAgICAgaW1wbCBjcmF0 ZTo6b3BzOjpTdWJBc3NpZ248JGVsZW1fdHk+IGZvciAkaWQgeworLSAgICAgICAgICAgICNbaW5s aW5lXQorLSAgICAgICAgICAgIGZuIHN1Yl9hc3NpZ24oJm11dCBzZWxmLCBvdGhlcjogJGVsZW1f dHkpIHsKKy0gICAgICAgICAgICAgICAgKnNlbGYgPSAqc2VsZiAtIG90aGVyOworLSAgICAgICAg ICAgIH0KKy0gICAgICAgIH0KKy0KKy0gICAgICAgIGltcGwgY3JhdGU6Om9wczo6TXVsQXNzaWdu PCRlbGVtX3R5PiBmb3IgJGlkIHsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAg ICBmbiBtdWxfYXNzaWduKCZtdXQgc2VsZiwgb3RoZXI6ICRlbGVtX3R5KSB7CistICAgICAgICAg ICAgICAgICpzZWxmID0gKnNlbGYgKiBvdGhlcjsKKy0gICAgICAgICAgICB9CistICAgICAgICB9 CistCistICAgICAgICBpbXBsIGNyYXRlOjpvcHM6OkRpdkFzc2lnbjwkZWxlbV90eT4gZm9yICRp ZCB7CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgZm4gZGl2X2Fzc2lnbigm bXV0IHNlbGYsIG90aGVyOiAkZWxlbV90eSkgeworLSAgICAgICAgICAgICAgICAqc2VsZiA9ICpz ZWxmIC8gb3RoZXI7CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLQorLSAgICAgICAgaW1w bCBjcmF0ZTo6b3BzOjpSZW1Bc3NpZ248JGVsZW1fdHk+IGZvciAkaWQgeworLSAgICAgICAgICAg ICNbaW5saW5lXQorLSAgICAgICAgICAgIGZuIHJlbV9hc3NpZ24oJm11dCBzZWxmLCBvdGhlcjog JGVsZW1fdHkpIHsKKy0gICAgICAgICAgICAgICAgKnNlbGYgPSAqc2VsZiAlIG90aGVyOworLSAg ICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0KKy0gICAgICAgIHRlc3RfaWYheworLSAgICAgICAg ICAgICR0ZXN0X3R0OgorLSAgICAgICAgICAgIHBhc3RlOjppdGVtISB7CistICAgICAgICAgICAg ICAgIHB1YiBtb2QgWzwkaWQgX29wc19zY2FsYXJfYXJpdGg+XSB7CistICAgICAgICAgICAgICAg ICAgICB1c2Ugc3VwZXI6Oio7CistICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0 YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAi d2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQorLSAgICAgICAgICAgICAgICAgICAgZm4gb3Bz X3NjYWxhcl9hcml0aG1ldGljKCkgeworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB6aSA9 IDAgYXMgJGVsZW1fdHk7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG9pID0gMSBhcyAk ZWxlbV90eTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGkgPSAyIGFzICRlbGVtX3R5 OworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBmaSA9IDQgYXMgJGVsZW1fdHk7CistICAg ICAgICAgICAgICAgICAgICAgICAgbGV0IHogPSAkaWQ6OnNwbGF0KHppKTsKKy0gICAgICAgICAg ICAgICAgICAgICAgICBsZXQgbyA9ICRpZDo6c3BsYXQob2kpOworLSAgICAgICAgICAgICAgICAg ICAgICAgIGxldCB0ID0gJGlkOjpzcGxhdCh0aSk7CistICAgICAgICAgICAgICAgICAgICAgICAg bGV0IGYgPSAkaWQ6OnNwbGF0KGZpKTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICAvLyBh ZGQKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHppICsgeiwgeik7CistICAg ICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh6ICsgemksIHopOworLSAgICAgICAgICAg ICAgICAgICAgICAgIGFzc2VydF9lcSEob2kgKyB6LCBvKTsKKy0gICAgICAgICAgICAgICAgICAg ICAgICBhc3NlcnRfZXEhKG8gKyB6aSwgbyk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNz ZXJ0X2VxISh0aSArIHosIHQpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEo dCArIHppLCB0KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHRpICsgdCwg Zik7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0ICsgdGksIGYpOworLSAg ICAgICAgICAgICAgICAgICAgICAgIC8vIHN1YgorLSAgICAgICAgICAgICAgICAgICAgICAgIGFz c2VydF9lcSEoemkgLSB6LCB6KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEh KHogLSB6aSwgeik7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvaSAtIHos IG8pOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEobyAtIHppLCBvKTsKKy0g ICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHRpIC0geiwgdCk7CistICAgICAgICAg ICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0IC0gemksIHQpOworLSAgICAgICAgICAgICAgICAg ICAgICAgIGFzc2VydF9lcSEoZmkgLSB0LCB0KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBh c3NlcnRfZXEhKGYgLSB0aSwgdCk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2Vx IShmIC0gbyAtIG8sIHQpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoZiAt IG9pIC0gb2ksIHQpOworLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIG11bAorLSAgICAgICAg ICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoemkgKiB6LCB6KTsKKy0gICAgICAgICAgICAgICAg ICAgICAgICBhc3NlcnRfZXEhKHogKiB6aSwgeik7CistICAgICAgICAgICAgICAgICAgICAgICAg YXNzZXJ0X2VxISh6aSAqIG8sIHopOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9l cSEoeiAqIG9pLCB6KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHppICog dCwgeik7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh6ICogdGksIHopOwor LSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEob2kgKiB0LCB0KTsKKy0gICAgICAg ICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG8gKiB0aSwgdCk7CistICAgICAgICAgICAgICAg ICAgICAgICAgYXNzZXJ0X2VxISh0aSAqIHQsIGYpOworLSAgICAgICAgICAgICAgICAgICAgICAg IGFzc2VydF9lcSEodCAqIHRpLCBmKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAvLyBkaXYK Ky0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHppIC8gbywgeik7CistICAgICAg ICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh6IC8gb2ksIHopOworLSAgICAgICAgICAgICAg ICAgICAgICAgIGFzc2VydF9lcSEodGkgLyBvLCB0KTsKKy0gICAgICAgICAgICAgICAgICAgICAg ICBhc3NlcnRfZXEhKHQgLyBvaSwgdCk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0 X2VxIShmaSAvIG8sIGYpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoZiAv IG9pLCBmKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHRpIC8gdCwgbyk7 CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0IC8gdGksIG8pOworLSAgICAg ICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoZmkgLyB0LCB0KTsKKy0gICAgICAgICAgICAg ICAgICAgICAgICBhc3NlcnRfZXEhKGYgLyB0aSwgdCk7CistICAgICAgICAgICAgICAgICAgICAg ICAgLy8gcmVtCistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvaSAlIG8sIHop OworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEobyAlIG9pLCB6KTsKKy0gICAg ICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGZpICUgdCwgeik7CistICAgICAgICAgICAg ICAgICAgICAgICAgYXNzZXJ0X2VxIShmICUgdGksIHopOworLQorLSAgICAgICAgICAgICAgICAg ICAgICAgIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCB2ID0gejsKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh2LCB6KTsKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgdiArPSBvaTsgLy8gYWRkX2Fzc2lnbgorLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICBhc3NlcnRfZXEhKHYsIG8pOworLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICB2IC09IG9pOyAvLyBzdWJfYXNzaWduCistICAgICAgICAgICAgICAgICAgICAgICAgICAg IGFzc2VydF9lcSEodiwgeik7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYgPSB0Owor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ICo9IG9pOyAvLyBtdWxfYXNzaWduCistICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodiwgdCk7CistICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHYgKj0gdGk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFz c2VydF9lcSEodiwgZik7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYgLz0gb2k7IC8v IGRpdl9hc3NpZ24KKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh2LCBm KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdiAvPSB0aTsKKy0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh2LCB0KTsKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgdiAlPSB0aTsgLy8gcmVtX2Fzc2lnbgorLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICBhc3NlcnRfZXEhKHYsIHopOworLSAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAg ICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgIH0KKy0gICAg ICAgIH0KKy0gICAgfTsKKy19CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRf c2ltZC9zcmMvYXBpL29wcy9zY2FsYXJfYml0d2lzZS5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFj a2VkX3NpbWQvc3JjL2FwaS9vcHMvc2NhbGFyX2JpdHdpc2UucnMKK2RlbGV0ZWQgZmlsZSBtb2Rl IDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL29wcy9z Y2FsYXJfYml0d2lzZS5ycworKysrIC9kZXYvbnVsbAorQEAgLTEsMTYyICswLDAgQEAKKy0vLyEg VmVydGljYWwgKGxhbmUtd2lzZSkgdmVjdG9yLXNjYWxhciAvIHNjYWxhci12ZWN0b3IgYml0d2lz ZSBvcGVyYXRpb25zLgorLQorLW1hY3JvX3J1bGVzISBpbXBsX29wc19zY2FsYXJfYml0d2lzZSB7 CistICAgICgKKy0gICAgICAgIFskZWxlbV90eTppZGVudDsgJGVsZW1fY291bnQ6ZXhwcl06Cist ICAgICAgICAkaWQ6aWRlbnQgfCAkdGVzdF90dDp0dCB8CistICAgICAgICAoJHRydWU6ZXhwciwg JGZhbHNlOmV4cHIpCistICAgICkgPT4geworLSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpCaXRY b3I8JGVsZW1fdHk+IGZvciAkaWQgeworLSAgICAgICAgICAgIHR5cGUgT3V0cHV0ID0gU2VsZjsK Ky0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBmbiBiaXR4b3Ioc2VsZiwgb3Ro ZXI6ICRlbGVtX3R5KSAtPiBTZWxmIHsKKy0gICAgICAgICAgICAgICAgc2VsZiBeICRpZDo6c3Bs YXQob3RoZXIpCistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICAgICAgaW1wbCBjcmF0 ZTo6b3BzOjpCaXRYb3I8JGlkPiBmb3IgJGVsZW1fdHkgeworLSAgICAgICAgICAgIHR5cGUgT3V0 cHV0ID0gJGlkOworLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIGZuIGJpdHhv cihzZWxmLCBvdGhlcjogJGlkKSAtPiAkaWQgeworLSAgICAgICAgICAgICAgICAkaWQ6OnNwbGF0 KHNlbGYpIF4gb3RoZXIKKy0gICAgICAgICAgICB9CistICAgICAgICB9CistCistICAgICAgICBp bXBsIGNyYXRlOjpvcHM6OkJpdEFuZDwkZWxlbV90eT4gZm9yICRpZCB7CistICAgICAgICAgICAg dHlwZSBPdXRwdXQgPSBTZWxmOworLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAg IGZuIGJpdGFuZChzZWxmLCBvdGhlcjogJGVsZW1fdHkpIC0+IFNlbGYgeworLSAgICAgICAgICAg ICAgICBzZWxmICYgJGlkOjpzcGxhdChvdGhlcikKKy0gICAgICAgICAgICB9CistICAgICAgICB9 CistICAgICAgICBpbXBsIGNyYXRlOjpvcHM6OkJpdEFuZDwkaWQ+IGZvciAkZWxlbV90eSB7Cist ICAgICAgICAgICAgdHlwZSBPdXRwdXQgPSAkaWQ7CistICAgICAgICAgICAgI1tpbmxpbmVdCist ICAgICAgICAgICAgZm4gYml0YW5kKHNlbGYsIG90aGVyOiAkaWQpIC0+ICRpZCB7CistICAgICAg ICAgICAgICAgICRpZDo6c3BsYXQoc2VsZikgJiBvdGhlcgorLSAgICAgICAgICAgIH0KKy0gICAg ICAgIH0KKy0KKy0gICAgICAgIGltcGwgY3JhdGU6Om9wczo6Qml0T3I8JGVsZW1fdHk+IGZvciAk aWQgeworLSAgICAgICAgICAgIHR5cGUgT3V0cHV0ID0gU2VsZjsKKy0gICAgICAgICAgICAjW2lu bGluZV0KKy0gICAgICAgICAgICBmbiBiaXRvcihzZWxmLCBvdGhlcjogJGVsZW1fdHkpIC0+IFNl bGYgeworLSAgICAgICAgICAgICAgICBzZWxmIHwgJGlkOjpzcGxhdChvdGhlcikKKy0gICAgICAg ICAgICB9CistICAgICAgICB9CistICAgICAgICBpbXBsIGNyYXRlOjpvcHM6OkJpdE9yPCRpZD4g Zm9yICRlbGVtX3R5IHsKKy0gICAgICAgICAgICB0eXBlIE91dHB1dCA9ICRpZDsKKy0gICAgICAg ICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBmbiBiaXRvcihzZWxmLCBvdGhlcjogJGlkKSAt PiAkaWQgeworLSAgICAgICAgICAgICAgICAkaWQ6OnNwbGF0KHNlbGYpIHwgb3RoZXIKKy0gICAg ICAgICAgICB9CistICAgICAgICB9CistCistICAgICAgICBpbXBsIGNyYXRlOjpvcHM6OkJpdEFu ZEFzc2lnbjwkZWxlbV90eT4gZm9yICRpZCB7CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAg ICAgICAgICAgZm4gYml0YW5kX2Fzc2lnbigmbXV0IHNlbGYsIG90aGVyOiAkZWxlbV90eSkgewor LSAgICAgICAgICAgICAgICAqc2VsZiA9ICpzZWxmICYgb3RoZXI7CistICAgICAgICAgICAgfQor LSAgICAgICAgfQorLSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpCaXRPckFzc2lnbjwkZWxlbV90 eT4gZm9yICRpZCB7CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgZm4gYml0 b3JfYXNzaWduKCZtdXQgc2VsZiwgb3RoZXI6ICRlbGVtX3R5KSB7CistICAgICAgICAgICAgICAg ICpzZWxmID0gKnNlbGYgfCBvdGhlcjsKKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAg ICAgICBpbXBsIGNyYXRlOjpvcHM6OkJpdFhvckFzc2lnbjwkZWxlbV90eT4gZm9yICRpZCB7Cist ICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgZm4gYml0eG9yX2Fzc2lnbigmbXV0 IHNlbGYsIG90aGVyOiAkZWxlbV90eSkgeworLSAgICAgICAgICAgICAgICAqc2VsZiA9ICpzZWxm IF4gb3RoZXI7CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLQorLSAgICAgICAgdGVzdF9p ZiF7CistICAgICAgICAgICAgJHRlc3RfdHQ6CistICAgICAgICAgICAgcGFzdGU6Oml0ZW0hIHsK Ky0gICAgICAgICAgICAgICAgcHViIG1vZCBbPCRpZCBfb3BzX3NjYWxhcl9iaXR3aXNlPl0gewor LSAgICAgICAgICAgICAgICAgICAgdXNlIHN1cGVyOjoqOworLQorLSAgICAgICAgICAgICAgICAg ICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXSAjW2NmZ19h dHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KKy0gICAgICAg ICAgICAgICAgICAgIGZuIG9wc19zY2FsYXJfYml0d2lzZSgpIHsKKy0gICAgICAgICAgICAgICAg ICAgICAgICBsZXQgemkgPSAwIGFzICRlbGVtX3R5OworLSAgICAgICAgICAgICAgICAgICAgICAg IGxldCBvaSA9IDEgYXMgJGVsZW1fdHk7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRp ID0gMiBhcyAkZWxlbV90eTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgeiA9ICRpZDo6 c3BsYXQoemkpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBvID0gJGlkOjpzcGxhdChv aSk7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHQgPSAkaWQ6OnNwbGF0KHRpKTsKKy0K Ky0gICAgICAgICAgICAgICAgICAgICAgICAvLyBCaXRBbmQ6CistICAgICAgICAgICAgICAgICAg ICAgICAgYXNzZXJ0X2VxIShvaSAmIG8sIG8pOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFz c2VydF9lcSEobyAmIG9pLCBvKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEh KG9pICYgeiwgeik7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvICYgemks IHopOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoemkgJiBvLCB6KTsKKy0g ICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHogJiBvaSwgeik7CistICAgICAgICAg ICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh6aSAmIHosIHopOworLSAgICAgICAgICAgICAgICAg ICAgICAgIGFzc2VydF9lcSEoeiAmIHppLCB6KTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAg ICBhc3NlcnRfZXEhKHRpICYgdCwgdCk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0 X2VxISh0ICYgdGksIHQpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodGkg JiBvLCB6KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQgJiBvaSwgeik7 CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvaSAmIHQsIHopOworLSAgICAg ICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEobyAmIHRpLCB6KTsKKy0KKy0gICAgICAgICAg ICAgICAgICAgICAgICAvLyBCaXRPcjoKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRf ZXEhKG9pIHwgbywgbyk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvIHwg b2ksIG8pOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEob2kgfCB6LCBvKTsK Ky0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG8gfCB6aSwgbyk7CistICAgICAg ICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh6aSB8IG8sIG8pOworLSAgICAgICAgICAgICAg ICAgICAgICAgIGFzc2VydF9lcSEoeiB8IG9pLCBvKTsKKy0gICAgICAgICAgICAgICAgICAgICAg ICBhc3NlcnRfZXEhKHppIHwgeiwgeik7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0 X2VxISh6IHwgemksIHopOworLQorLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEo dGkgfCB0LCB0KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQgfCB0aSwg dCk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh6aSB8IHQsIHQpOworLSAg ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoeiB8IHRpLCB0KTsKKy0gICAgICAgICAg ICAgICAgICAgICAgICBhc3NlcnRfZXEhKHRpIHwgeiwgdCk7CistICAgICAgICAgICAgICAgICAg ICAgICAgYXNzZXJ0X2VxISh0IHwgemksIHQpOworLQorLSAgICAgICAgICAgICAgICAgICAgICAg IC8vIEJpdFhPUjoKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG9pIF4gbywg eik7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvIF4gb2ksIHopOworLSAg ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoemkgXiB6LCB6KTsKKy0gICAgICAgICAg ICAgICAgICAgICAgICBhc3NlcnRfZXEhKHogXiB6aSwgeik7CistICAgICAgICAgICAgICAgICAg ICAgICAgYXNzZXJ0X2VxISh6aSBeIG8sIG8pOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFz c2VydF9lcSEoeiBeIG9pLCBvKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEh KG9pIF4geiwgbyk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvIF4gemks IG8pOworLQorLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodGkgXiB0LCB6KTsK Ky0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQgXiB0aSwgeik7CistICAgICAg ICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0aSBeIHosIHQpOworLSAgICAgICAgICAgICAg ICAgICAgICAgIGFzc2VydF9lcSEodCBeIHppLCB0KTsKKy0gICAgICAgICAgICAgICAgICAgICAg ICBhc3NlcnRfZXEhKHppIF4gdCwgdCk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0 X2VxISh6IF4gdGksIHQpOworLQorLSAgICAgICAgICAgICAgICAgICAgICAgIHsKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgLy8gQW5kQXNzaWduOgorLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICBsZXQgbXV0IHYgPSBvOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ICY9 IHRpOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHYsIHopOworLSAg ICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgICAgICB7CistICAg ICAgICAgICAgICAgICAgICAgICAgICAgIC8vIE9yQXNzaWduOgorLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICBsZXQgbXV0IHYgPSB6OworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2 IHw9IG9pOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHYsIG8pOwor LSAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgICAgICB7Cist ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFhPUkFzc2lnbjoKKy0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgbGV0IG11dCB2ID0gejsKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgdiBePSBvaTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh2LCBv KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICB9Cist ICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgIH07Cist fQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9vcHMv c2NhbGFyX21hc2tfYml0d2lzZS5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3Jj L2FwaS9vcHMvc2NhbGFyX21hc2tfYml0d2lzZS5ycworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0 CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvb3BzL3NjYWxhcl9t YXNrX2JpdHdpc2UucnMKKysrKyAvZGV2L251bGwKK0BAIC0xLDE0MCArMCwwIEBACistLy8hIFZl cnRpY2FsIChsYW5lLXdpc2UpIHZlY3Rvci12ZWN0b3IgYml0d2lzZSBvcGVyYXRpb25zLgorLQor LW1hY3JvX3J1bGVzISBpbXBsX29wc19zY2FsYXJfbWFza19iaXR3aXNlIHsKKy0gICAgKAorLSAg ICAgICAgWyRlbGVtX3R5OmlkZW50OyAkZWxlbV9jb3VudDpleHByXToKKy0gICAgICAgICRpZDpp ZGVudCB8ICR0ZXN0X3R0OnR0IHwKKy0gICAgICAgICgkdHJ1ZTpleHByLCAkZmFsc2U6ZXhwcikK Ky0gICAgKSA9PiB7CistICAgICAgICBpbXBsIGNyYXRlOjpvcHM6OkJpdFhvcjxib29sPiBmb3Ig JGlkIHsKKy0gICAgICAgICAgICB0eXBlIE91dHB1dCA9IFNlbGY7CistICAgICAgICAgICAgI1tp bmxpbmVdCistICAgICAgICAgICAgZm4gYml0eG9yKHNlbGYsIG90aGVyOiBib29sKSAtPiBTZWxm IHsKKy0gICAgICAgICAgICAgICAgc2VsZiBeICRpZDo6c3BsYXQob3RoZXIpCistICAgICAgICAg ICAgfQorLSAgICAgICAgfQorLSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpCaXRYb3I8JGlkPiBm b3IgYm9vbCB7CistICAgICAgICAgICAgdHlwZSBPdXRwdXQgPSAkaWQ7CistICAgICAgICAgICAg I1tpbmxpbmVdCistICAgICAgICAgICAgZm4gYml0eG9yKHNlbGYsIG90aGVyOiAkaWQpIC0+ICRp ZCB7CistICAgICAgICAgICAgICAgICRpZDo6c3BsYXQoc2VsZikgXiBvdGhlcgorLSAgICAgICAg ICAgIH0KKy0gICAgICAgIH0KKy0KKy0gICAgICAgIGltcGwgY3JhdGU6Om9wczo6Qml0QW5kPGJv b2w+IGZvciAkaWQgeworLSAgICAgICAgICAgIHR5cGUgT3V0cHV0ID0gU2VsZjsKKy0gICAgICAg ICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBmbiBiaXRhbmQoc2VsZiwgb3RoZXI6IGJvb2wp IC0+IFNlbGYgeworLSAgICAgICAgICAgICAgICBzZWxmICYgJGlkOjpzcGxhdChvdGhlcikKKy0g ICAgICAgICAgICB9CistICAgICAgICB9CistICAgICAgICBpbXBsIGNyYXRlOjpvcHM6OkJpdEFu ZDwkaWQ+IGZvciBib29sIHsKKy0gICAgICAgICAgICB0eXBlIE91dHB1dCA9ICRpZDsKKy0gICAg ICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBmbiBiaXRhbmQoc2VsZiwgb3RoZXI6ICRp ZCkgLT4gJGlkIHsKKy0gICAgICAgICAgICAgICAgJGlkOjpzcGxhdChzZWxmKSAmIG90aGVyCist ICAgICAgICAgICAgfQorLSAgICAgICAgfQorLQorLSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpC aXRPcjxib29sPiBmb3IgJGlkIHsKKy0gICAgICAgICAgICB0eXBlIE91dHB1dCA9IFNlbGY7Cist ICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgZm4gYml0b3Ioc2VsZiwgb3RoZXI6 IGJvb2wpIC0+IFNlbGYgeworLSAgICAgICAgICAgICAgICBzZWxmIHwgJGlkOjpzcGxhdChvdGhl cikKKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgICAgICBpbXBsIGNyYXRlOjpvcHM6 OkJpdE9yPCRpZD4gZm9yIGJvb2wgeworLSAgICAgICAgICAgIHR5cGUgT3V0cHV0ID0gJGlkOwor LSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIGZuIGJpdG9yKHNlbGYsIG90aGVy OiAkaWQpIC0+ICRpZCB7CistICAgICAgICAgICAgICAgICRpZDo6c3BsYXQoc2VsZikgfCBvdGhl cgorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0KKy0gICAgICAgIGltcGwgY3JhdGU6Om9w czo6Qml0QW5kQXNzaWduPGJvb2w+IGZvciAkaWQgeworLSAgICAgICAgICAgICNbaW5saW5lXQor LSAgICAgICAgICAgIGZuIGJpdGFuZF9hc3NpZ24oJm11dCBzZWxmLCBvdGhlcjogYm9vbCkgewor LSAgICAgICAgICAgICAgICAqc2VsZiA9ICpzZWxmICYgb3RoZXI7CistICAgICAgICAgICAgfQor LSAgICAgICAgfQorLSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpCaXRPckFzc2lnbjxib29sPiBm b3IgJGlkIHsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBmbiBiaXRvcl9h c3NpZ24oJm11dCBzZWxmLCBvdGhlcjogYm9vbCkgeworLSAgICAgICAgICAgICAgICAqc2VsZiA9 ICpzZWxmIHwgb3RoZXI7CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICAgICAgaW1w bCBjcmF0ZTo6b3BzOjpCaXRYb3JBc3NpZ248Ym9vbD4gZm9yICRpZCB7CistICAgICAgICAgICAg I1tpbmxpbmVdCistICAgICAgICAgICAgZm4gYml0eG9yX2Fzc2lnbigmbXV0IHNlbGYsIG90aGVy OiBib29sKSB7CistICAgICAgICAgICAgICAgICpzZWxmID0gKnNlbGYgXiBvdGhlcjsKKy0gICAg ICAgICAgICB9CistICAgICAgICB9CistCistICAgICAgICB0ZXN0X2lmIXsKKy0gICAgICAgICAg ICAkdGVzdF90dDoKKy0gICAgICAgICAgICBwYXN0ZTo6aXRlbSEgeworLSAgICAgICAgICAgICAg ICBwdWIgbW9kIFs8JGlkIF9vcHNfc2NhbGFyX21hc2tfYml0d2lzZT5dIHsKKy0gICAgICAgICAg ICAgICAgICAgIHVzZSBzdXBlcjo6KjsKKy0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIo bm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0gI1tjZmdfYXR0cih0YXJnZXRfYXJj aCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCistICAgICAgICAgICAgICAgICAgICBm biBvcHNfc2NhbGFyX21hc2tfYml0d2lzZSgpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICBs ZXQgdGkgPSB0cnVlOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBmaSA9IGZhbHNlOwor LSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ID0gJGlkOjpzcGxhdCh0aSk7CistICAgICAg ICAgICAgICAgICAgICAgICAgbGV0IGYgPSAkaWQ6OnNwbGF0KGZpKTsKKy0gICAgICAgICAgICAg ICAgICAgICAgICBhc3NlcnQhKHQgIT0gZik7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNz ZXJ0ISghKHQgPT0gZikpOworLQorLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIEJpdEFuZDoK Ky0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHRpICYgZiwgZik7CistICAgICAg ICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0ICYgZmksIGYpOworLSAgICAgICAgICAgICAg ICAgICAgICAgIGFzc2VydF9lcSEoZmkgJiB0LCBmKTsKKy0gICAgICAgICAgICAgICAgICAgICAg ICBhc3NlcnRfZXEhKGYgJiB0aSwgZik7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0 X2VxISh0aSAmIHQsIHQpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodCAm IHRpLCB0KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGZpICYgZiwgZik7 CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShmICYgZmksIGYpOworLQorLSAg ICAgICAgICAgICAgICAgICAgICAgIC8vIEJpdE9yOgorLSAgICAgICAgICAgICAgICAgICAgICAg IGFzc2VydF9lcSEodGkgfCBmLCB0KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRf ZXEhKHQgfCBmaSwgdCk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShmaSB8 IHQsIHQpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoZiB8IHRpLCB0KTsK Ky0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHRpIHwgdCwgdCk7CistICAgICAg ICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0IHwgdGksIHQpOworLSAgICAgICAgICAgICAg ICAgICAgICAgIGFzc2VydF9lcSEoZmkgfCBmLCBmKTsKKy0gICAgICAgICAgICAgICAgICAgICAg ICBhc3NlcnRfZXEhKGYgfCBmaSwgZik7CistCistICAgICAgICAgICAgICAgICAgICAgICAgLy8g Qml0WE9SOgorLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodGkgXiBmLCB0KTsK Ky0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQgXiBmaSwgdCk7CistICAgICAg ICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShmaSBeIHQsIHQpOworLSAgICAgICAgICAgICAg ICAgICAgICAgIGFzc2VydF9lcSEoZiBeIHRpLCB0KTsKKy0gICAgICAgICAgICAgICAgICAgICAg ICBhc3NlcnRfZXEhKHRpIF4gdCwgZik7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0 X2VxISh0IF4gdGksIGYpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoZmkg XiBmLCBmKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGYgXiBmaSwgZik7 CistCistICAgICAgICAgICAgICAgICAgICAgICAgeworLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAvLyBBbmRBc3NpZ246CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQg diA9IGY7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYgJj0gdGk7CistICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodiwgZik7CistICAgICAgICAgICAgICAgICAg ICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgICAgIHsKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgLy8gT3JBc3NpZ246CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBt dXQgdiA9IGY7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYgfD0gdGk7CistICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodiwgdCk7CistICAgICAgICAgICAgICAg ICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgICAgIHsKKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgLy8gWE9SQXNzaWduOgorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBs ZXQgbXV0IHYgPSBmOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2IF49IHRpOworLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHYsIHQpOworLSAgICAgICAgICAg ICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAg fQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgfTsKKy19CitkaWZmIC0tZ2l0IGEv dGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL29wcy9zY2FsYXJfc2hpZnRzLnJz IGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL29wcy9zY2FsYXJfc2hpZnRz LnJzCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFj a2VkX3NpbWQvc3JjL2FwaS9vcHMvc2NhbGFyX3NoaWZ0cy5ycworKysrIC9kZXYvbnVsbAorQEAg LTEsMTA2ICswLDAgQEAKKy0vLyEgVmVydGljYWwgKGxhbmUtd2lzZSkgdmVjdG9yLXNjYWxhciBz aGlmdHMgb3BlcmF0aW9ucy4KKy0KKy1tYWNyb19ydWxlcyEgaW1wbF9vcHNfc2NhbGFyX3NoaWZ0 cyB7CistICAgIChbJGVsZW1fdHk6aWRlbnQ7ICRlbGVtX2NvdW50OmV4cHJdOiAkaWQ6aWRlbnQg fCAkdGVzdF90dDp0dCkgPT4geworLSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpTaGw8dTMyPiBm b3IgJGlkIHsKKy0gICAgICAgICAgICB0eXBlIE91dHB1dCA9IFNlbGY7CistICAgICAgICAgICAg I1tpbmxpbmVdCistICAgICAgICAgICAgZm4gc2hsKHNlbGYsIG90aGVyOiB1MzIpIC0+IFNlbGYg eworLSAgICAgICAgICAgICAgICBzZWxmIDw8ICRpZDo6c3BsYXQob3RoZXIgYXMgJGVsZW1fdHkp CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpT aHI8dTMyPiBmb3IgJGlkIHsKKy0gICAgICAgICAgICB0eXBlIE91dHB1dCA9IFNlbGY7CistICAg ICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgZm4gc2hyKHNlbGYsIG90aGVyOiB1MzIp IC0+IFNlbGYgeworLSAgICAgICAgICAgICAgICBzZWxmID4+ICRpZDo6c3BsYXQob3RoZXIgYXMg JGVsZW1fdHkpCistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLQorLSAgICAgICAgaW1wbCBj cmF0ZTo6b3BzOjpTaGxBc3NpZ248dTMyPiBmb3IgJGlkIHsKKy0gICAgICAgICAgICAjW2lubGlu ZV0KKy0gICAgICAgICAgICBmbiBzaGxfYXNzaWduKCZtdXQgc2VsZiwgb3RoZXI6IHUzMikgewor LSAgICAgICAgICAgICAgICAqc2VsZiA9ICpzZWxmIDw8IG90aGVyOworLSAgICAgICAgICAgIH0K Ky0gICAgICAgIH0KKy0gICAgICAgIGltcGwgY3JhdGU6Om9wczo6U2hyQXNzaWduPHUzMj4gZm9y ICRpZCB7CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgZm4gc2hyX2Fzc2ln bigmbXV0IHNlbGYsIG90aGVyOiB1MzIpIHsKKy0gICAgICAgICAgICAgICAgKnNlbGYgPSAqc2Vs ZiA+PiBvdGhlcjsKKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgICAgICB0ZXN0X2lm IXsKKy0gICAgICAgICAgICAkdGVzdF90dDoKKy0gICAgICAgICAgICBwYXN0ZTo6aXRlbSEgewor LSAgICAgICAgICAgICAgICBwdWIgbW9kIFs8JGlkIF9vcHNfc2NhbGFyX3NoaWZ0cz5dIHsKKy0g ICAgICAgICAgICAgICAgICAgIHVzZSBzdXBlcjo6KjsKKy0gICAgICAgICAgICAgICAgICAgICNb Y2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0gI1tjZmdfYXR0cih0 YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCistICAgICAgICAgICAg ICAgICAgICAjW2NmZ19hdHRyKGFueSh0YXJnZXRfYXJjaCA9ICJzMzkweCIsIHRhcmdldF9hcmNo ID0gInNwYXJjNjQiKSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxsb3codW5y ZWFjaGFibGVfY29kZSwgdW51c2VkX3ZhcmlhYmxlcykKKy0gICAgICAgICAgICAgICAgICAgICld CistICAgICAgICAgICAgICAgICAgICAjW2NmZyhub3QodGFyZ2V0X2FyY2ggPSAiYWFyY2g2NCIp KV0KKy0gICAgICAgICAgICAgICAgICAgIC8vfl4gRklYTUU6IGh0dHBzOi8vZ2l0aHViLmNvbS9y dXN0LWxhbmcvcGFja2VkX3NpbWQvaXNzdWVzLzMxNworLSAgICAgICAgICAgICAgICAgICAgZm4g b3BzX3NjYWxhcl9zaGlmdHMoKSB7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHogPSAk aWQ6OnNwbGF0KDAgYXMgJGVsZW1fdHkpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBv ID0gJGlkOjpzcGxhdCgxIGFzICRlbGVtX3R5KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBs ZXQgdCA9ICRpZDo6c3BsYXQoMiBhcyAkZWxlbV90eSk7CistICAgICAgICAgICAgICAgICAgICAg ICAgbGV0IGYgPSAkaWQ6OnNwbGF0KDQgYXMgJGVsZW1fdHkpOworLQorLSAgICAgICAgICAgICAg ICAgICAgICAgIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHppID0gMCBhcyB1 MzI7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBvaSA9IDEgYXMgdTMyOworLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGkgPSAyIGFzIHUzMjsKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgbGV0IG1heGkKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgID0gKG1lbTo6c2l6ZV9vZjo6PCRlbGVtX3R5PigpICogOCAtIDEpIGFzIHUzMjsKKy0KKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gc2hyCistICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGFzc2VydF9lcSEoeiA+PiB6aSwgeik7CistICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGFzc2VydF9lcSEoeiA+PiBvaSwgeik7CistICAgICAgICAgICAgICAgICAgICAgICAgICAg IGFzc2VydF9lcSEoeiA+PiB0aSwgeik7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFz c2VydF9lcSEoeiA+PiB0aSwgeik7CistCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICNb Y2ZnKGFueSh0YXJnZXRfYXJjaCA9ICJzMzkweCIsIHRhcmdldF9hcmNoID0gInNwYXJjNjQiKSld IHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBodHRwczovL2dp dGh1Yi5jb20vcnVzdC1sYW5nLW51cnNlcnkvcGFja2VkX3NpbWQvaXNzdWVzLzEzCistICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CistICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH0KKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvID4+ IHppLCBvKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0ID4+IHpp LCB0KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShmID4+IHppLCBm KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShmID4+IG1heGksIHop OworLQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG8gPj4gb2ksIHop OworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQgPj4gb2ksIG8pOwor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQgPj4gdGksIHopOworLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGYgPj4gb2ksIHQpOworLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGYgPj4gdGksIG8pOworLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGYgPj4gbWF4aSwgeik7CistCistICAgICAg ICAgICAgICAgICAgICAgICAgICAgIC8vIHNobAorLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICBhc3NlcnRfZXEhKHogPDwgemksIHopOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBh c3NlcnRfZXEhKG8gPDwgemksIG8pOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3Nl cnRfZXEhKHQgPDwgemksIHQpOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRf ZXEhKGYgPDwgemksIGYpOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEh KGYgPDwgbWF4aSwgeik7CistCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9l cSEobyA8PCBvaSwgdCk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEo byA8PCB0aSwgZik7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodCA8 PCBvaSwgZik7CistCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgIC8vIHNocl9hc3Np Z24KKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgdiA9IG87CistICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ID4+PSBvaTsKKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodiwgeik7CistICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAgLy8gc2hsX2Fzc2lnbgor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCB2ID0gbzsKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHYgPDw9IG9pOworLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgYXNzZXJ0X2VxISh2LCB0KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgfQorLSAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgIH0K Ky0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgfTsK Ky19CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL29w cy92ZWN0b3JfYXJpdGhtZXRpYy5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3Jj L2FwaS9vcHMvdmVjdG9yX2FyaXRobWV0aWMucnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAor LS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL29wcy92ZWN0b3JfYXJp dGhtZXRpYy5ycworKysrIC9kZXYvbnVsbAorQEAgLTEsMTQ4ICswLDAgQEAKKy0vLyEgVmVydGlj YWwgKGxhbmUtd2lzZSkgdmVjdG9yLXZlY3RvciBhcml0aG1ldGljIG9wZXJhdGlvbnMuCistCist bWFjcm9fcnVsZXMhIGltcGxfb3BzX3ZlY3Rvcl9hcml0aG1ldGljIHsKKy0gICAgKFskZWxlbV90 eTppZGVudDsgJGVsZW1fY291bnQ6ZXhwcl06ICRpZDppZGVudCB8ICR0ZXN0X3R0OnR0KSA9PiB7 CistICAgICAgICBpbXBsIGNyYXRlOjpvcHM6OkFkZCBmb3IgJGlkIHsKKy0gICAgICAgICAgICB0 eXBlIE91dHB1dCA9IFNlbGY7CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAg Zm4gYWRkKHNlbGYsIG90aGVyOiBTZWxmKSAtPiBTZWxmIHsKKy0gICAgICAgICAgICAgICAgdXNl IGNyYXRlOjpsbHZtOjpzaW1kX2FkZDsKKy0gICAgICAgICAgICAgICAgdW5zYWZlIHsgU2ltZChz aW1kX2FkZChzZWxmLjAsIG90aGVyLjApKSB9CistICAgICAgICAgICAgfQorLSAgICAgICAgfQor LQorLSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpTdWIgZm9yICRpZCB7CistICAgICAgICAgICAg dHlwZSBPdXRwdXQgPSBTZWxmOworLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAg IGZuIHN1YihzZWxmLCBvdGhlcjogU2VsZikgLT4gU2VsZiB7CistICAgICAgICAgICAgICAgIHVz ZSBjcmF0ZTo6bGx2bTo6c2ltZF9zdWI7CistICAgICAgICAgICAgICAgIHVuc2FmZSB7IFNpbWQo c2ltZF9zdWIoc2VsZi4wLCBvdGhlci4wKSkgfQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0K Ky0KKy0gICAgICAgIGltcGwgY3JhdGU6Om9wczo6TXVsIGZvciAkaWQgeworLSAgICAgICAgICAg IHR5cGUgT3V0cHV0ID0gU2VsZjsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAg ICBmbiBtdWwoc2VsZiwgb3RoZXI6IFNlbGYpIC0+IFNlbGYgeworLSAgICAgICAgICAgICAgICB1 c2UgY3JhdGU6Omxsdm06OnNpbWRfbXVsOworLSAgICAgICAgICAgICAgICB1bnNhZmUgeyBTaW1k KHNpbWRfbXVsKHNlbGYuMCwgb3RoZXIuMCkpIH0KKy0gICAgICAgICAgICB9CistICAgICAgICB9 CistCistICAgICAgICBpbXBsIGNyYXRlOjpvcHM6OkRpdiBmb3IgJGlkIHsKKy0gICAgICAgICAg ICB0eXBlIE91dHB1dCA9IFNlbGY7CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAg ICAgZm4gZGl2KHNlbGYsIG90aGVyOiBTZWxmKSAtPiBTZWxmIHsKKy0gICAgICAgICAgICAgICAg dXNlIGNyYXRlOjpsbHZtOjpzaW1kX2RpdjsKKy0gICAgICAgICAgICAgICAgdW5zYWZlIHsgU2lt ZChzaW1kX2RpdihzZWxmLjAsIG90aGVyLjApKSB9CistICAgICAgICAgICAgfQorLSAgICAgICAg fQorLQorLSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpSZW0gZm9yICRpZCB7CistICAgICAgICAg ICAgdHlwZSBPdXRwdXQgPSBTZWxmOworLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAg ICAgIGZuIHJlbShzZWxmLCBvdGhlcjogU2VsZikgLT4gU2VsZiB7CistICAgICAgICAgICAgICAg IHVzZSBjcmF0ZTo6bGx2bTo6c2ltZF9yZW07CistICAgICAgICAgICAgICAgIHVuc2FmZSB7IFNp bWQoc2ltZF9yZW0oc2VsZi4wLCBvdGhlci4wKSkgfQorLSAgICAgICAgICAgIH0KKy0gICAgICAg IH0KKy0KKy0gICAgICAgIGltcGwgY3JhdGU6Om9wczo6QWRkQXNzaWduIGZvciAkaWQgeworLSAg ICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIGZuIGFkZF9hc3NpZ24oJm11dCBzZWxm LCBvdGhlcjogU2VsZikgeworLSAgICAgICAgICAgICAgICAqc2VsZiA9ICpzZWxmICsgb3RoZXI7 CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLQorLSAgICAgICAgaW1wbCBjcmF0ZTo6b3Bz OjpTdWJBc3NpZ24gZm9yICRpZCB7CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAg ICAgZm4gc3ViX2Fzc2lnbigmbXV0IHNlbGYsIG90aGVyOiBTZWxmKSB7CistICAgICAgICAgICAg ICAgICpzZWxmID0gKnNlbGYgLSBvdGhlcjsKKy0gICAgICAgICAgICB9CistICAgICAgICB9Cist CistICAgICAgICBpbXBsIGNyYXRlOjpvcHM6Ok11bEFzc2lnbiBmb3IgJGlkIHsKKy0gICAgICAg ICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBmbiBtdWxfYXNzaWduKCZtdXQgc2VsZiwgb3Ro ZXI6IFNlbGYpIHsKKy0gICAgICAgICAgICAgICAgKnNlbGYgPSAqc2VsZiAqIG90aGVyOworLSAg ICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0KKy0gICAgICAgIGltcGwgY3JhdGU6Om9wczo6RGl2 QXNzaWduIGZvciAkaWQgeworLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIGZu IGRpdl9hc3NpZ24oJm11dCBzZWxmLCBvdGhlcjogU2VsZikgeworLSAgICAgICAgICAgICAgICAq c2VsZiA9ICpzZWxmIC8gb3RoZXI7CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLQorLSAg ICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpSZW1Bc3NpZ24gZm9yICRpZCB7CistICAgICAgICAgICAg I1tpbmxpbmVdCistICAgICAgICAgICAgZm4gcmVtX2Fzc2lnbigmbXV0IHNlbGYsIG90aGVyOiBT ZWxmKSB7CistICAgICAgICAgICAgICAgICpzZWxmID0gKnNlbGYgJSBvdGhlcjsKKy0gICAgICAg ICAgICB9CistICAgICAgICB9CistCistICAgICAgICB0ZXN0X2lmIXsKKy0gICAgICAgICAgICAk dGVzdF90dDoKKy0gICAgICAgICAgICBwYXN0ZTo6aXRlbSEgeworLSAgICAgICAgICAgICAgIHB1 YiBtb2QgWzwkaWQgX29wc192ZWN0b3JfYXJpdGg+XSB7CistICAgICAgICAgICAgICAgICAgICB1 c2Ugc3VwZXI6Oio7CistICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRf YXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMy Iiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQorLSAgICAgICAgICAgICAgICAgICAgZm4gb3BzX3ZlY3Rv cl9hcml0aG1ldGljKCkgeworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB6ID0gJGlkOjpz cGxhdCgwIGFzICRlbGVtX3R5KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbyA9ICRp ZDo6c3BsYXQoMSBhcyAkZWxlbV90eSk7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHQg PSAkaWQ6OnNwbGF0KDIgYXMgJGVsZW1fdHkpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxl dCBmID0gJGlkOjpzcGxhdCg0IGFzICRlbGVtX3R5KTsKKy0KKy0gICAgICAgICAgICAgICAgICAg ICAgICAvLyBhZGQKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHogKyB6LCB6 KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG8gKyB6LCBvKTsKKy0gICAg ICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQgKyB6LCB0KTsKKy0gICAgICAgICAgICAg ICAgICAgICAgICBhc3NlcnRfZXEhKHQgKyB0LCBmKTsKKy0gICAgICAgICAgICAgICAgICAgICAg ICAvLyBzdWIKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHogLSB6LCB6KTsK Ky0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG8gLSB6LCBvKTsKKy0gICAgICAg ICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQgLSB6LCB0KTsKKy0gICAgICAgICAgICAgICAg ICAgICAgICBhc3NlcnRfZXEhKGYgLSB0LCB0KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBh c3NlcnRfZXEhKGYgLSBvIC0gbywgdCk7CistICAgICAgICAgICAgICAgICAgICAgICAgLy8gbXVs CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh6ICogeiwgeik7CistICAgICAg ICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh6ICogbywgeik7CistICAgICAgICAgICAgICAg ICAgICAgICAgYXNzZXJ0X2VxISh6ICogdCwgeik7CistICAgICAgICAgICAgICAgICAgICAgICAg YXNzZXJ0X2VxIShvICogdCwgdCk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2Vx ISh0ICogdCwgZik7CistICAgICAgICAgICAgICAgICAgICAgICAgLy8gZGl2CistICAgICAgICAg ICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh6IC8gbywgeik7CistICAgICAgICAgICAgICAgICAg ICAgICAgYXNzZXJ0X2VxISh0IC8gbywgdCk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNz ZXJ0X2VxIShmIC8gbywgZik7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0 IC8gdCwgbyk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShmIC8gdCwgdCk7 CistICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmVtCistICAgICAgICAgICAgICAgICAgICAg ICAgYXNzZXJ0X2VxIShvICUgbywgeik7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0 X2VxIShmICUgdCwgeik7CistCistICAgICAgICAgICAgICAgICAgICAgICAgeworLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IHYgPSB6OworLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICBhc3NlcnRfZXEhKHYsIHopOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2 ICs9IG87IC8vIGFkZF9hc3NpZ24KKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0 X2VxISh2LCBvKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdiAtPSBvOyAvLyBzdWJf YXNzaWduCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodiwgeik7Cist ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYgPSB0OworLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICB2ICo9IG87IC8vIG11bF9hc3NpZ24KKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgYXNzZXJ0X2VxISh2LCB0KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdiAqPSB0 OworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHYsIGYpOworLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICB2IC89IG87IC8vIGRpdl9hc3NpZ24KKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh2LCBmKTsKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgdiAvPSB0OworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEh KHYsIHQpOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ICU9IHQ7IC8vIHJlbV9hc3Np Z24KKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh2LCB6KTsKKy0gICAg ICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAg ICAgICAgIH0KKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgIH07CistfQorZGlmZiAt LWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9vcHMvdmVjdG9yX2Jp dHdpc2UucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvb3BzL3ZlY3Rv cl9iaXR3aXNlLnJzCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5 L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9vcHMvdmVjdG9yX2JpdHdpc2UucnMKKysrKyAvZGV2 L251bGwKK0BAIC0xLDEyOSArMCwwIEBACistLy8hIFZlcnRpY2FsIChsYW5lLXdpc2UpIHZlY3Rv ci12ZWN0b3IgYml0d2lzZSBvcGVyYXRpb25zLgorLQorLW1hY3JvX3J1bGVzISBpbXBsX29wc192 ZWN0b3JfYml0d2lzZSB7CistICAgICgKKy0gICAgICAgIFskZWxlbV90eTppZGVudDsgJGVsZW1f Y291bnQ6ZXhwcl06CistICAgICAgICAkaWQ6aWRlbnQgfCAkdGVzdF90dDp0dCB8CistICAgICAg ICAoJHRydWU6ZXhwciwgJGZhbHNlOmV4cHIpCistICAgICkgPT4geworLSAgICAgICAgaW1wbCBj cmF0ZTo6b3BzOjpOb3QgZm9yICRpZCB7CistICAgICAgICAgICAgdHlwZSBPdXRwdXQgPSBTZWxm OworLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIGZuIG5vdChzZWxmKSAtPiBT ZWxmIHsKKy0gICAgICAgICAgICAgICAgU2VsZjo6c3BsYXQoJHRydWUpIF4gc2VsZgorLSAgICAg ICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgICAgIGltcGwgY3JhdGU6Om9wczo6Qml0WG9yIGZv ciAkaWQgeworLSAgICAgICAgICAgIHR5cGUgT3V0cHV0ID0gU2VsZjsKKy0gICAgICAgICAgICAj W2lubGluZV0KKy0gICAgICAgICAgICBmbiBiaXR4b3Ioc2VsZiwgb3RoZXI6IFNlbGYpIC0+IFNl bGYgeworLSAgICAgICAgICAgICAgICB1c2UgY3JhdGU6Omxsdm06OnNpbWRfeG9yOworLSAgICAg ICAgICAgICAgICB1bnNhZmUgeyBTaW1kKHNpbWRfeG9yKHNlbGYuMCwgb3RoZXIuMCkpIH0KKy0g ICAgICAgICAgICB9CistICAgICAgICB9CistICAgICAgICBpbXBsIGNyYXRlOjpvcHM6OkJpdEFu ZCBmb3IgJGlkIHsKKy0gICAgICAgICAgICB0eXBlIE91dHB1dCA9IFNlbGY7CistICAgICAgICAg ICAgI1tpbmxpbmVdCistICAgICAgICAgICAgZm4gYml0YW5kKHNlbGYsIG90aGVyOiBTZWxmKSAt PiBTZWxmIHsKKy0gICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpsbHZtOjpzaW1kX2FuZDsKKy0g ICAgICAgICAgICAgICAgdW5zYWZlIHsgU2ltZChzaW1kX2FuZChzZWxmLjAsIG90aGVyLjApKSB9 CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpC aXRPciBmb3IgJGlkIHsKKy0gICAgICAgICAgICB0eXBlIE91dHB1dCA9IFNlbGY7CistICAgICAg ICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgZm4gYml0b3Ioc2VsZiwgb3RoZXI6IFNlbGYp IC0+IFNlbGYgeworLSAgICAgICAgICAgICAgICB1c2UgY3JhdGU6Omxsdm06OnNpbWRfb3I7Cist ICAgICAgICAgICAgICAgIHVuc2FmZSB7IFNpbWQoc2ltZF9vcihzZWxmLjAsIG90aGVyLjApKSB9 CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpC aXRBbmRBc3NpZ24gZm9yICRpZCB7CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAg ICAgZm4gYml0YW5kX2Fzc2lnbigmbXV0IHNlbGYsIG90aGVyOiBTZWxmKSB7CistICAgICAgICAg ICAgICAgICpzZWxmID0gKnNlbGYgJiBvdGhlcjsKKy0gICAgICAgICAgICB9CistICAgICAgICB9 CistICAgICAgICBpbXBsIGNyYXRlOjpvcHM6OkJpdE9yQXNzaWduIGZvciAkaWQgeworLSAgICAg ICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIGZuIGJpdG9yX2Fzc2lnbigmbXV0IHNlbGYs IG90aGVyOiBTZWxmKSB7CistICAgICAgICAgICAgICAgICpzZWxmID0gKnNlbGYgfCBvdGhlcjsK Ky0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgICAgICBpbXBsIGNyYXRlOjpvcHM6OkJp dFhvckFzc2lnbiBmb3IgJGlkIHsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAg ICBmbiBiaXR4b3JfYXNzaWduKCZtdXQgc2VsZiwgb3RoZXI6IFNlbGYpIHsKKy0gICAgICAgICAg ICAgICAgKnNlbGYgPSAqc2VsZiBeIG90aGVyOworLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0K Ky0KKy0gICAgICAgIHRlc3RfaWYheworLSAgICAgICAgICAgICR0ZXN0X3R0OgorLSAgICAgICAg ICAgIHBhc3RlOjppdGVtISB7CistICAgICAgICAgICAgICAgIHB1YiBtb2QgWzwkaWQgX29wc192 ZWN0b3JfYml0d2lzZT5dIHsKKy0gICAgICAgICAgICAgICAgICAgIHVzZSBzdXBlcjo6KjsKKy0g ICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIp LCB0ZXN0KV0gI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5f dGVzdCldCistICAgICAgICAgICAgICAgICAgICBmbiBvcHNfdmVjdG9yX2JpdHdpc2UoKSB7Cist CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHogPSAkaWQ6OnNwbGF0KDAgYXMgJGVsZW1f dHkpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBvID0gJGlkOjpzcGxhdCgxIGFzICRl bGVtX3R5KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdCA9ICRpZDo6c3BsYXQoMiBh cyAkZWxlbV90eSk7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG0gPSAkaWQ6OnNwbGF0 KCF6LmV4dHJhY3QoMCkpOworLQorLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIE5vdDoKKy0g ICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKCF6LCBtKTsKKy0gICAgICAgICAgICAg ICAgICAgICAgICBhc3NlcnRfZXEhKCFtLCB6KTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAg ICAvLyBCaXRBbmQ6CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvICYgbywg byk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvICYgeiwgeik7CistICAg ICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh6ICYgbywgeik7CistICAgICAgICAgICAg ICAgICAgICAgICAgYXNzZXJ0X2VxISh6ICYgeiwgeik7CistCistICAgICAgICAgICAgICAgICAg ICAgICAgYXNzZXJ0X2VxISh0ICYgdCwgdCk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNz ZXJ0X2VxISh0ICYgbywgeik7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShv ICYgdCwgeik7CistCistICAgICAgICAgICAgICAgICAgICAgICAgLy8gQml0T3I6CistICAgICAg ICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvIHwgbywgbyk7CistICAgICAgICAgICAgICAg ICAgICAgICAgYXNzZXJ0X2VxIShvIHwgeiwgbyk7CistICAgICAgICAgICAgICAgICAgICAgICAg YXNzZXJ0X2VxISh6IHwgbywgbyk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2Vx ISh6IHwgeiwgeik7CistCistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0IHwg dCwgdCk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh6IHwgdCwgdCk7Cist ICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0IHwgeiwgdCk7CistCistICAgICAg ICAgICAgICAgICAgICAgICAgLy8gQml0WE9SOgorLSAgICAgICAgICAgICAgICAgICAgICAgIGFz c2VydF9lcSEobyBeIG8sIHopOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEo eiBeIHosIHopOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoeiBeIG8sIG8p OworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEobyBeIHosIG8pOworLQorLSAg ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodCBeIHQsIHopOworLSAgICAgICAgICAg ICAgICAgICAgICAgIGFzc2VydF9lcSEodCBeIHosIHQpOworLSAgICAgICAgICAgICAgICAgICAg ICAgIGFzc2VydF9lcSEoeiBeIHQsIHQpOworLQorLSAgICAgICAgICAgICAgICAgICAgICAgIHsK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQW5kQXNzaWduOgorLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICBsZXQgbXV0IHYgPSBvOworLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICB2ICY9IHQ7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodiwg eik7CistICAgICAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgICAg IHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gT3JBc3NpZ246CistICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGxldCBtdXQgdiA9IHo7CistICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHYgfD0gbzsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh2 LCBvKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICAg ICAgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBYT1JBc3NpZ246CistICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgdiA9IHo7CistICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHYgXj0gbzsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2Vx ISh2LCBvKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAg ICB9CistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAg IH07CistfQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2Fw aS9vcHMvdmVjdG9yX2Zsb2F0X21pbl9tYXgucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9z aW1kL3NyYy9hcGkvb3BzL3ZlY3Rvcl9mbG9hdF9taW5fbWF4LnJzCitkZWxldGVkIGZpbGUgbW9k ZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9vcHMv dmVjdG9yX2Zsb2F0X21pbl9tYXgucnMKKysrKyAvZGV2L251bGwKK0BAIC0xLDc0ICswLDAgQEAK Ky0vLyEgVmVydGljYWwgKGxhbmUtd2lzZSkgdmVjdG9yIGBtaW5gIGFuZCBgbWF4YCBmb3IgZmxv YXRpbmctcG9pbnQgdmVjdG9ycy4KKy0KKy1tYWNyb19ydWxlcyEgaW1wbF9vcHNfdmVjdG9yX2Zs b2F0X21pbl9tYXggeworLSAgICAoWyRlbGVtX3R5OmlkZW50OyAkZWxlbV9jb3VudDpleHByXTog JGlkOmlkZW50IHwgJHRlc3RfdHQ6dHQpID0+IHsKKy0gICAgICAgIGltcGwgJGlkIHsKKy0gICAg ICAgICAgICAvLy8gTWluaW11bSBvZiB0d28gdmVjdG9ycy4KKy0gICAgICAgICAgICAvLy8KKy0g ICAgICAgICAgICAvLy8gUmV0dXJucyBhIG5ldyB2ZWN0b3IgY29udGFpbmluZyB0aGUgbWluaW11 bSB2YWx1ZSBvZiBlYWNoIG9mCistICAgICAgICAgICAgLy8vIHRoZSBpbnB1dCB2ZWN0b3IgbGFu ZXMuCistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgcHViIGZuIG1pbihzZWxm LCB4OiBTZWxmKSAtPiBTZWxmIHsKKy0gICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpsbHZtOjpz aW1kX2ZtaW47CistICAgICAgICAgICAgICAgIHVuc2FmZSB7IFNpbWQoc2ltZF9mbWluKHNlbGYu MCwgeC4wKSkgfQorLSAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICAvLy8gTWF4aW11bSBv ZiB0d28gdmVjdG9ycy4KKy0gICAgICAgICAgICAvLy8KKy0gICAgICAgICAgICAvLy8gUmV0dXJu cyBhIG5ldyB2ZWN0b3IgY29udGFpbmluZyB0aGUgbWF4aW11bSB2YWx1ZSBvZiBlYWNoIG9mCist ICAgICAgICAgICAgLy8vIHRoZSBpbnB1dCB2ZWN0b3IgbGFuZXMuCistICAgICAgICAgICAgI1tp bmxpbmVdCistICAgICAgICAgICAgcHViIGZuIG1heChzZWxmLCB4OiBTZWxmKSAtPiBTZWxmIHsK Ky0gICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpsbHZtOjpzaW1kX2ZtYXg7CistICAgICAgICAg ICAgICAgIHVuc2FmZSB7IFNpbWQoc2ltZF9mbWF4KHNlbGYuMCwgeC4wKSkgfQorLSAgICAgICAg ICAgIH0KKy0gICAgICAgIH0KKy0gICAgICAgIHRlc3RfaWYheworLSAgICAgICAgICAgICR0ZXN0 X3R0OgorLSAgICAgICAgICAgIHBhc3RlOjppdGVtISB7CistICAgICAgICAgICAgICAgICNbY2Zn KG5vdChhbnkoCistICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogaHR0cHM6Ly9naXRodWIu Y29tL3J1c3QtbGFuZy1udXJzZXJ5L3BhY2tlZF9zaW1kL2lzc3Vlcy8yMjMKKy0gICAgICAgICAg ICAgICAgICAgIGFsbCh0YXJnZXRfYXJjaCA9ICJtaXBzIiwgdGFyZ2V0X2VuZGlhbiA9ICJiaWci KSwKKy0gICAgICAgICAgICAgICAgICAgIHRhcmdldF9hcmNoID0gIm1pcHM2NCIsCistICAgICAg ICAgICAgICAgICkpKV0KKy0gICAgICAgICAgICAgICAgcHViIG1vZCBbPCRpZCBfb3BzX3ZlY3Rv cl9taW5fbWF4Pl0geworLSAgICAgICAgICAgICAgICAgICAgdXNlIHN1cGVyOjoqOworLSAgICAg ICAgICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRl c3QpXSAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0 KV0KKy0gICAgICAgICAgICAgICAgICAgIGZuIG1pbl9tYXgoKSB7CistICAgICAgICAgICAgICAg ICAgICAgICAgbGV0IG4gPSBjcmF0ZTo6JGVsZW1fdHk6Ok5BTjsKKy0gICAgICAgICAgICAgICAg ICAgICAgICBsZXQgbyA9ICRpZDo6c3BsYXQoMS4gYXMgJGVsZW1fdHkpOworLSAgICAgICAgICAg ICAgICAgICAgICAgIGxldCB0ID0gJGlkOjpzcGxhdCgyLiBhcyAkZWxlbV90eSk7CistCistICAg ICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBtID0gbzsgLy8gWzEuLCAyLiwgMS4sIDIuLCAu Li5dCistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBvbiA9IG87CistICAgICAgICAg ICAgICAgICAgICAgICAgZm9yIGkgaW4gMC4uJGlkOjpsYW5lcygpIHsKKy0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgaWYgaSAlIDIgPT0gMCB7CistICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBtID0gbS5yZXBsYWNlKGksIDIuIGFzICRlbGVtX3R5KTsKKy0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIG9uID0gb24ucmVwbGFjZShpLCBuKTsKKy0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0KKy0gICAgICAg ICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG8ubWluKHQpLCBvKTsKKy0gICAgICAgICAgICAg ICAgICAgICAgICBhc3NlcnRfZXEhKHQubWluKG8pLCBvKTsKKy0gICAgICAgICAgICAgICAgICAg ICAgICBhc3NlcnRfZXEhKG0ubWluKG8pLCBvKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBh c3NlcnRfZXEhKG8ubWluKG0pLCBvKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRf ZXEhKG0ubWluKHQpLCBtKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQu bWluKG0pLCBtKTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG8ubWF4 KHQpLCB0KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQubWF4KG8pLCB0 KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG0ubWF4KG8pLCBtKTsKKy0g ICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG8ubWF4KG0pLCBtKTsKKy0gICAgICAg ICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG0ubWF4KHQpLCB0KTsKKy0gICAgICAgICAgICAg ICAgICAgICAgICBhc3NlcnRfZXEhKHQubWF4KG0pLCB0KTsKKy0KKy0gICAgICAgICAgICAgICAg ICAgICAgICBhc3NlcnRfZXEhKG9uLm1pbihvKSwgbyk7CistICAgICAgICAgICAgICAgICAgICAg ICAgYXNzZXJ0X2VxIShvLm1pbihvbiksIG8pOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFz c2VydF9lcSEob24ubWF4KG8pLCBvKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRf ZXEhKG8ubWF4KG9uKSwgbyk7CistICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAg ICAgIH0KKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgIH07CistfQorZGlmZiAtLWdp dCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9vcHMvdmVjdG9yX2ludF9t aW5fbWF4LnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL29wcy92ZWN0 b3JfaW50X21pbl9tYXgucnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRf cGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL29wcy92ZWN0b3JfaW50X21pbl9tYXgucnMK KysrKyAvZGV2L251bGwKK0BAIC0xLDU3ICswLDAgQEAKKy0vLyEgVmVydGljYWwgKGxhbmUtd2lz ZSkgdmVjdG9yIGBtaW5gIGFuZCBgbWF4YCBmb3IgaW50ZWdlciB2ZWN0b3JzLgorLQorLW1hY3Jv X3J1bGVzISBpbXBsX29wc192ZWN0b3JfaW50X21pbl9tYXggeworLSAgICAoWyRlbGVtX3R5Omlk ZW50OyAkZWxlbV9jb3VudDpleHByXTogJGlkOmlkZW50IHwgJHRlc3RfdHQ6dHQpID0+IHsKKy0g ICAgICAgIGltcGwgJGlkIHsKKy0gICAgICAgICAgICAvLy8gTWluaW11bSBvZiB0d28gdmVjdG9y cy4KKy0gICAgICAgICAgICAvLy8KKy0gICAgICAgICAgICAvLy8gUmV0dXJucyBhIG5ldyB2ZWN0 b3IgY29udGFpbmluZyB0aGUgbWluaW11bSB2YWx1ZSBvZiBlYWNoIG9mCistICAgICAgICAgICAg Ly8vIHRoZSBpbnB1dCB2ZWN0b3IgbGFuZXMuCistICAgICAgICAgICAgI1tpbmxpbmVdCistICAg ICAgICAgICAgcHViIGZuIG1pbihzZWxmLCB4OiBTZWxmKSAtPiBTZWxmIHsKKy0gICAgICAgICAg ICAgICAgc2VsZi5sdCh4KS5zZWxlY3Qoc2VsZiwgeCkKKy0gICAgICAgICAgICB9CistCistICAg ICAgICAgICAgLy8vIE1heGltdW0gb2YgdHdvIHZlY3RvcnMuCistICAgICAgICAgICAgLy8vCist ICAgICAgICAgICAgLy8vIFJldHVybnMgYSBuZXcgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIG1heGlt dW0gdmFsdWUgb2YgZWFjaCBvZgorLSAgICAgICAgICAgIC8vLyB0aGUgaW5wdXQgdmVjdG9yIGxh bmVzLgorLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIHB1YiBmbiBtYXgoc2Vs ZiwgeDogU2VsZikgLT4gU2VsZiB7CistICAgICAgICAgICAgICAgIHNlbGYuZ3QoeCkuc2VsZWN0 KHNlbGYsIHgpCistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICAgICAgdGVzdF9pZiF7 JHRlc3RfdHQ6CistICAgICAgICBwYXN0ZTo6aXRlbSEgeworLSAgICAgICAgICAgIHB1YiBtb2Qg WzwkaWQgX29wc192ZWN0b3JfbWluX21heD5dIHsKKy0gICAgICAgICAgICAgICAgdXNlIHN1cGVy OjoqOworLSAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNt MzIiKSwgdGVzdCldICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5k Z2VuX3Rlc3QpXQorLSAgICAgICAgICAgICAgICBmbiBtaW5fbWF4KCkgeworLSAgICAgICAgICAg ICAgICAgICAgbGV0IG8gPSAkaWQ6OnNwbGF0KDEgYXMgJGVsZW1fdHkpOworLSAgICAgICAgICAg ICAgICAgICAgbGV0IHQgPSAkaWQ6OnNwbGF0KDIgYXMgJGVsZW1fdHkpOworLQorLSAgICAgICAg ICAgICAgICAgICAgbGV0IG11dCBtID0gbzsKKy0gICAgICAgICAgICAgICAgICAgIGZvciBpIGlu IDAuLiRpZDo6bGFuZXMoKSB7CistICAgICAgICAgICAgICAgICAgICAgICAgaWYgaSAlIDIgPT0g MCB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIG0gPSBtLnJlcGxhY2UoaSwgMiBhcyAk ZWxlbV90eSk7CistICAgICAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAg ICAgfQorLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvLm1pbih0KSwgbyk7CistICAg ICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQubWluKG8pLCBvKTsKKy0gICAgICAgICAgICAg ICAgICAgIGFzc2VydF9lcSEobS5taW4obyksIG8pOworLSAgICAgICAgICAgICAgICAgICAgYXNz ZXJ0X2VxIShvLm1pbihtKSwgbyk7CistICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG0u bWluKHQpLCBtKTsKKy0gICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodC5taW4obSksIG0p OworLQorLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvLm1heCh0KSwgdCk7CistICAg ICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQubWF4KG8pLCB0KTsKKy0gICAgICAgICAgICAg ICAgICAgIGFzc2VydF9lcSEobS5tYXgobyksIG0pOworLSAgICAgICAgICAgICAgICAgICAgYXNz ZXJ0X2VxIShvLm1heChtKSwgbSk7CistICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG0u bWF4KHQpLCB0KTsKKy0gICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodC5tYXgobSksIHQp OworLSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICAg ICAgfQorLSAgICB9OworLX0KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9z aW1kL3NyYy9hcGkvb3BzL3ZlY3Rvcl9tYXNrX2JpdHdpc2UucnMgYi90aGlyZF9wYXJ0eS9ydXN0 L3BhY2tlZF9zaW1kL3NyYy9hcGkvb3BzL3ZlY3Rvcl9tYXNrX2JpdHdpc2UucnMKK2RlbGV0ZWQg ZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMv YXBpL29wcy92ZWN0b3JfbWFza19iaXR3aXNlLnJzCisrKysgL2Rldi9udWxsCitAQCAtMSwxMTYg KzAsMCBAQAorLS8vISBWZXJ0aWNhbCAobGFuZS13aXNlKSB2ZWN0b3ItdmVjdG9yIGJpdHdpc2Ug b3BlcmF0aW9ucy4KKy0KKy1tYWNyb19ydWxlcyEgaW1wbF9vcHNfdmVjdG9yX21hc2tfYml0d2lz ZSB7CistICAgICgKKy0gICAgICAgIFskZWxlbV90eTppZGVudDsgJGVsZW1fY291bnQ6ZXhwcl06 CistICAgICAgICAkaWQ6aWRlbnQgfCAkdGVzdF90dDp0dCB8CistICAgICAgICAoJHRydWU6ZXhw ciwgJGZhbHNlOmV4cHIpCistICAgICkgPT4geworLSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpO b3QgZm9yICRpZCB7CistICAgICAgICAgICAgdHlwZSBPdXRwdXQgPSBTZWxmOworLSAgICAgICAg ICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIGZuIG5vdChzZWxmKSAtPiBTZWxmIHsKKy0gICAg ICAgICAgICAgICAgU2VsZjo6c3BsYXQoJHRydWUpIF4gc2VsZgorLSAgICAgICAgICAgIH0KKy0g ICAgICAgIH0KKy0gICAgICAgIGltcGwgY3JhdGU6Om9wczo6Qml0WG9yIGZvciAkaWQgeworLSAg ICAgICAgICAgIHR5cGUgT3V0cHV0ID0gU2VsZjsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0g ICAgICAgICAgICBmbiBiaXR4b3Ioc2VsZiwgb3RoZXI6IFNlbGYpIC0+IFNlbGYgeworLSAgICAg ICAgICAgICAgICB1c2UgY3JhdGU6Omxsdm06OnNpbWRfeG9yOworLSAgICAgICAgICAgICAgICB1 bnNhZmUgeyBTaW1kKHNpbWRfeG9yKHNlbGYuMCwgb3RoZXIuMCkpIH0KKy0gICAgICAgICAgICB9 CistICAgICAgICB9CistICAgICAgICBpbXBsIGNyYXRlOjpvcHM6OkJpdEFuZCBmb3IgJGlkIHsK Ky0gICAgICAgICAgICB0eXBlIE91dHB1dCA9IFNlbGY7CistICAgICAgICAgICAgI1tpbmxpbmVd CistICAgICAgICAgICAgZm4gYml0YW5kKHNlbGYsIG90aGVyOiBTZWxmKSAtPiBTZWxmIHsKKy0g ICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpsbHZtOjpzaW1kX2FuZDsKKy0gICAgICAgICAgICAg ICAgdW5zYWZlIHsgU2ltZChzaW1kX2FuZChzZWxmLjAsIG90aGVyLjApKSB9CistICAgICAgICAg ICAgfQorLSAgICAgICAgfQorLSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpCaXRPciBmb3IgJGlk IHsKKy0gICAgICAgICAgICB0eXBlIE91dHB1dCA9IFNlbGY7CistICAgICAgICAgICAgI1tpbmxp bmVdCistICAgICAgICAgICAgZm4gYml0b3Ioc2VsZiwgb3RoZXI6IFNlbGYpIC0+IFNlbGYgewor LSAgICAgICAgICAgICAgICB1c2UgY3JhdGU6Omxsdm06OnNpbWRfb3I7CistICAgICAgICAgICAg ICAgIHVuc2FmZSB7IFNpbWQoc2ltZF9vcihzZWxmLjAsIG90aGVyLjApKSB9CistICAgICAgICAg ICAgfQorLSAgICAgICAgfQorLSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpCaXRBbmRBc3NpZ24g Zm9yICRpZCB7CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgZm4gYml0YW5k X2Fzc2lnbigmbXV0IHNlbGYsIG90aGVyOiBTZWxmKSB7CistICAgICAgICAgICAgICAgICpzZWxm ID0gKnNlbGYgJiBvdGhlcjsKKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgICAgICBp bXBsIGNyYXRlOjpvcHM6OkJpdE9yQXNzaWduIGZvciAkaWQgeworLSAgICAgICAgICAgICNbaW5s aW5lXQorLSAgICAgICAgICAgIGZuIGJpdG9yX2Fzc2lnbigmbXV0IHNlbGYsIG90aGVyOiBTZWxm KSB7CistICAgICAgICAgICAgICAgICpzZWxmID0gKnNlbGYgfCBvdGhlcjsKKy0gICAgICAgICAg ICB9CistICAgICAgICB9CistICAgICAgICBpbXBsIGNyYXRlOjpvcHM6OkJpdFhvckFzc2lnbiBm b3IgJGlkIHsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBmbiBiaXR4b3Jf YXNzaWduKCZtdXQgc2VsZiwgb3RoZXI6IFNlbGYpIHsKKy0gICAgICAgICAgICAgICAgKnNlbGYg PSAqc2VsZiBeIG90aGVyOworLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0KKy0gICAgICAg IHRlc3RfaWYheworLSAgICAgICAgICAgICR0ZXN0X3R0OgorLSAgICAgICAgICAgIHBhc3RlOjpp dGVtISB7CistICAgICAgICAgICAgICAgIHB1YiBtb2QgWzwkaWQgX29wc192ZWN0b3JfbWFza19i aXR3aXNlPl0geworLSAgICAgICAgICAgICAgICAgICAgdXNlIHN1cGVyOjoqOworLSAgICAgICAg ICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3Qp XSAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0K Ky0gICAgICAgICAgICAgICAgICAgIGZuIG9wc192ZWN0b3JfbWFza19iaXR3aXNlKCkgeworLSAg ICAgICAgICAgICAgICAgICAgICAgIGxldCB0ID0gJGlkOjpzcGxhdCh0cnVlKTsKKy0gICAgICAg ICAgICAgICAgICAgICAgICBsZXQgZiA9ICRpZDo6c3BsYXQoZmFsc2UpOworLSAgICAgICAgICAg ICAgICAgICAgICAgIGFzc2VydCEodCAhPSBmKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBh c3NlcnQhKCEodCA9PSBmKSk7CistCistICAgICAgICAgICAgICAgICAgICAgICAgLy8gTm90Ogor LSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoIXQsIGYpOworLSAgICAgICAgICAg ICAgICAgICAgICAgIGFzc2VydF9lcSEodCwgIWYpOworLQorLSAgICAgICAgICAgICAgICAgICAg ICAgIC8vIEJpdEFuZDoKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQgJiBm LCBmKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGYgJiB0LCBmKTsKKy0g ICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQgJiB0LCB0KTsKKy0gICAgICAgICAg ICAgICAgICAgICAgICBhc3NlcnRfZXEhKGYgJiBmLCBmKTsKKy0KKy0gICAgICAgICAgICAgICAg ICAgICAgICAvLyBCaXRPcjoKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQg fCBmLCB0KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGYgfCB0LCB0KTsK Ky0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQgfCB0LCB0KTsKKy0gICAgICAg ICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGYgfCBmLCBmKTsKKy0KKy0gICAgICAgICAgICAg ICAgICAgICAgICAvLyBCaXRYT1I6CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2Vx ISh0IF4gZiwgdCk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShmIF4gdCwg dCk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0IF4gdCwgZik7CistICAg ICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShmIF4gZiwgZik7CistCistICAgICAgICAg ICAgICAgICAgICAgICAgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBBbmRBc3Np Z246CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgdiA9IGY7CistICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHYgJj0gdDsKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgYXNzZXJ0X2VxISh2LCBmKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICB9CistICAgICAg ICAgICAgICAgICAgICAgICAgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBPckFz c2lnbjoKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCB2ID0gZjsKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgdiB8PSB0OworLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICBhc3NlcnRfZXEhKHYsIHQpOworLSAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAg ICAgICAgICAgICAgICAgICAgICB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFhP UkFzc2lnbjoKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCB2ID0gZjsKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgdiBePSB0OworLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICBhc3NlcnRfZXEhKHYsIHQpOworLSAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0g ICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgIH0K Ky0gICAgICAgIH0KKy0gICAgfTsKKy19CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9w YWNrZWRfc2ltZC9zcmMvYXBpL29wcy92ZWN0b3JfbmVnLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9w YWNrZWRfc2ltZC9zcmMvYXBpL29wcy92ZWN0b3JfbmVnLnJzCitkZWxldGVkIGZpbGUgbW9kZSAx MDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9vcHMvdmVj dG9yX25lZy5ycworKysrIC9kZXYvbnVsbAorQEAgLTEsNDMgKzAsMCBAQAorLS8vISBWZXJ0aWNh bCAobGFuZS13aXNlKSB2ZWN0b3IgYE5lZ2AuCistCistbWFjcm9fcnVsZXMhIGltcGxfb3BzX3Zl Y3Rvcl9uZWcgeworLSAgICAoWyRlbGVtX3R5OmlkZW50OyAkZWxlbV9jb3VudDpleHByXTogJGlk OmlkZW50IHwgJHRlc3RfdHQ6dHQpID0+IHsKKy0gICAgICAgIGltcGwgY3JhdGU6Om9wczo6TmVn IGZvciAkaWQgeworLSAgICAgICAgICAgIHR5cGUgT3V0cHV0ID0gU2VsZjsKKy0gICAgICAgICAg ICAjW2lubGluZV0KKy0gICAgICAgICAgICBmbiBuZWcoc2VsZikgLT4gU2VsZiB7CistICAgICAg ICAgICAgICAgIFNlbGY6OnNwbGF0KC0xIGFzICRlbGVtX3R5KSAqIHNlbGYKKy0gICAgICAgICAg ICB9CistICAgICAgICB9CistICAgICAgICB0ZXN0X2lmIXsKKy0gICAgICAgICAgICAkdGVzdF90 dDoKKy0gICAgICAgICAgICBwYXN0ZTo6aXRlbSEgeworLSAgICAgICAgICAgICAgICBwdWIgbW9k IFs8JGlkIF9vcHNfdmVjdG9yX25lZz5dIHsKKy0gICAgICAgICAgICAgICAgICAgIHVzZSBzdXBl cjo6KjsKKy0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0g Indhc20zMiIpLCB0ZXN0KV0gI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNt X2JpbmRnZW5fdGVzdCldCistICAgICAgICAgICAgICAgICAgICBmbiBuZWcoKSB7CistICAgICAg ICAgICAgICAgICAgICAgICAgbGV0IHogPSAkaWQ6OnNwbGF0KDAgYXMgJGVsZW1fdHkpOworLSAg ICAgICAgICAgICAgICAgICAgICAgIGxldCBvID0gJGlkOjpzcGxhdCgxIGFzICRlbGVtX3R5KTsK Ky0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdCA9ICRpZDo6c3BsYXQoMiBhcyAkZWxlbV90 eSk7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGYgPSAkaWQ6OnNwbGF0KDQgYXMgJGVs ZW1fdHkpOworLQorLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBueiA9ICRpZDo6c3BsYXQo LSgwIGFzICRlbGVtX3R5KSk7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5vID0gJGlk OjpzcGxhdCgtKDEgYXMgJGVsZW1fdHkpKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQg bnQgPSAkaWQ6OnNwbGF0KC0oMiBhcyAkZWxlbV90eSkpOworLSAgICAgICAgICAgICAgICAgICAg ICAgIGxldCBuZiA9ICRpZDo6c3BsYXQoLSg0IGFzICRlbGVtX3R5KSk7CistCistICAgICAgICAg ICAgICAgICAgICAgICAgYXNzZXJ0X2VxISgteiwgbnopOworLSAgICAgICAgICAgICAgICAgICAg ICAgIGFzc2VydF9lcSEoLW8sIG5vKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRf ZXEhKC10LCBudCk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISgtZiwgbmYp OworLQorLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoeiwgLW56KTsKKy0gICAg ICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG8sIC1ubyk7CistICAgICAgICAgICAgICAg ICAgICAgICAgYXNzZXJ0X2VxISh0LCAtbnQpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFz c2VydF9lcSEoZiwgLW5mKTsKKy0gICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAg ICAgfQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgfTsKKy19CitkaWZmIC0tZ2l0 IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL29wcy92ZWN0b3Jfcm90YXRl cy5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9vcHMvdmVjdG9yX3Jv dGF0ZXMucnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVz dC9wYWNrZWRfc2ltZC9zcmMvYXBpL29wcy92ZWN0b3Jfcm90YXRlcy5ycworKysrIC9kZXYvbnVs bAorQEAgLTEsOTIgKzAsMCBAQAorLS8vISBWZXJ0aWNhbCAobGFuZS13aXNlKSB2ZWN0b3Igcm90 YXRlcyBvcGVyYXRpb25zLgorLSMhW2FsbG93KHVudXNlZCldCistCistbWFjcm9fcnVsZXMhIGlt cGxfb3BzX3ZlY3Rvcl9yb3RhdGVzIHsKKy0gICAgKFskZWxlbV90eTppZGVudDsgJGVsZW1fY291 bnQ6ZXhwcl06ICRpZDppZGVudCB8ICR0ZXN0X3R0OnR0KSA9PiB7CistICAgICAgICBpbXBsICRp ZCB7CistICAgICAgICAgICAgLy8vIFNoaWZ0cyB0aGUgYml0cyBvZiBlYWNoIGxhbmUgdG8gdGhl IGxlZnQgYnkgdGhlIHNwZWNpZmllZAorLSAgICAgICAgICAgIC8vLyBhbW91bnQgaW4gdGhlIGNv cnJlc3BvbmRpbmcgbGFuZSBvZiBgbmAsIHdyYXBwaW5nIHRoZQorLSAgICAgICAgICAgIC8vLyB0 cnVuY2F0ZWQgYml0cyB0byB0aGUgZW5kIG9mIHRoZSByZXN1bHRpbmcgaW50ZWdlci4KKy0gICAg ICAgICAgICAvLy8KKy0gICAgICAgICAgICAvLy8gTm90ZTogdGhpcyBpcyBuZWl0aGVyIHRoZSBz YW1lIG9wZXJhdGlvbiBhcyBgPDxgIG5vciBlcXVpdmFsZW50CistICAgICAgICAgICAgLy8vIHRv IGBzbGljZTo6cm90YXRlX2xlZnRgLgorLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAg ICAgIHB1YiBmbiByb3RhdGVfbGVmdChzZWxmLCBuOiAkaWQpIC0+ICRpZCB7CistICAgICAgICAg ICAgICAgIGNvbnN0IExBTkVfV0lEVEg6ICRlbGVtX3R5ID0KKy0gICAgICAgICAgICAgICAgICAg IGNyYXRlOjptZW06OnNpemVfb2Y6OjwkZWxlbV90eT4oKSBhcyAkZWxlbV90eSAqIDg7CistICAg ICAgICAgICAgICAgIC8vIFByb3RlY3QgYWdhaW5zdCB1bmRlZmluZWQgYmVoYXZpb3IgZm9yIG92 ZXItbG9uZyBiaXQgc2hpZnRzCistICAgICAgICAgICAgICAgIGxldCBuID0gbiAlIExBTkVfV0lE VEg7CistICAgICAgICAgICAgICAgIChzZWxmIDw8IG4pIHwgKHNlbGYgPj4gKChMQU5FX1dJRFRI IC0gbikgJSBMQU5FX1dJRFRIKSkKKy0gICAgICAgICAgICB9CistCistICAgICAgICAgICAgLy8v IFNoaWZ0cyB0aGUgYml0cyBvZiBlYWNoIGxhbmUgdG8gdGhlIHJpZ2h0IGJ5IHRoZSBzcGVjaWZp ZWQKKy0gICAgICAgICAgICAvLy8gYW1vdW50IGluIHRoZSBjb3JyZXNwb25kaW5nIGxhbmUgb2Yg YG5gLCB3cmFwcGluZyB0aGUKKy0gICAgICAgICAgICAvLy8gdHJ1bmNhdGVkIGJpdHMgdG8gdGhl IGJlZ2lubmluZyBvZiB0aGUgcmVzdWx0aW5nIGludGVnZXIuCistICAgICAgICAgICAgLy8vCist ICAgICAgICAgICAgLy8vIE5vdGU6IHRoaXMgaXMgbmVpdGhlciB0aGUgc2FtZSBvcGVyYXRpb24g YXMgYD4+YCBub3IgZXF1aXZhbGVudAorLSAgICAgICAgICAgIC8vLyB0byBgc2xpY2U6OnJvdGF0 ZV9yaWdodGAuCistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgcHViIGZuIHJv dGF0ZV9yaWdodChzZWxmLCBuOiAkaWQpIC0+ICRpZCB7CistICAgICAgICAgICAgICAgIGNvbnN0 IExBTkVfV0lEVEg6ICRlbGVtX3R5ID0KKy0gICAgICAgICAgICAgICAgICAgIGNyYXRlOjptZW06 OnNpemVfb2Y6OjwkZWxlbV90eT4oKSBhcyAkZWxlbV90eSAqIDg7CistICAgICAgICAgICAgICAg IC8vIFByb3RlY3QgYWdhaW5zdCB1bmRlZmluZWQgYmVoYXZpb3IgZm9yIG92ZXItbG9uZyBiaXQg c2hpZnRzCistICAgICAgICAgICAgICAgIGxldCBuID0gbiAlIExBTkVfV0lEVEg7CistICAgICAg ICAgICAgICAgIChzZWxmID4+IG4pIHwgKHNlbGYgPDwgKChMQU5FX1dJRFRIIC0gbikgJSBMQU5F X1dJRFRIKSkKKy0gICAgICAgICAgICB9CistICAgICAgICB9CistCistICAgICAgICB0ZXN0X2lm IXsKKy0gICAgICAgICAgICAkdGVzdF90dDoKKy0gICAgICAgICAgICBwYXN0ZTo6aXRlbSEgewor LSAgICAgICAgICAgICAgICAvLyBGSVhNRToKKy0gICAgICAgICAgICAgICAgLy8gaHR0cHM6Ly9n aXRodWIuY29tL3J1c3QtbGFuZy1udXJzZXJ5L3BhY2tlZF9zaW1kL2lzc3Vlcy83NQorLSAgICAg ICAgICAgICAgICAjW2NmZyhub3QoYW55KAorLSAgICAgICAgICAgICAgICAgICAgdGFyZ2V0X2Fy Y2ggPSAiczM5MHgiLAorLSAgICAgICAgICAgICAgICAgICAgdGFyZ2V0X2FyY2ggPSAic3BhcmM2 NCIsCistICAgICAgICAgICAgICAgICkpKV0KKy0gICAgICAgICAgICAgICAgcHViIG1vZCBbPCRp ZCBfb3BzX3ZlY3Rvcl9yb3RhdGU+XSB7CistICAgICAgICAgICAgICAgICAgICB1c2Ugc3VwZXI6 Oio7CistICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3 YXNtMzIiKSwgdGVzdCldICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9i aW5kZ2VuX3Rlc3QpXQorLSAgICAgICAgICAgICAgICAgICAgI1tjZmcobm90KHRhcmdldF9hcmNo ID0gImFhcmNoNjQiKSldCistICAgICAgICAgICAgICAgICAgICAvL35eIEZJWE1FOiBodHRwczov L2dpdGh1Yi5jb20vcnVzdC1sYW5nL3BhY2tlZF9zaW1kL2lzc3Vlcy8zMTcKKy0gICAgICAgICAg ICAgICAgICAgIGZuIHJvdGF0ZV9vcHMoKSB7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0 IHogPSAkaWQ6OnNwbGF0KDAgYXMgJGVsZW1fdHkpOworLSAgICAgICAgICAgICAgICAgICAgICAg IGxldCBvID0gJGlkOjpzcGxhdCgxIGFzICRlbGVtX3R5KTsKKy0gICAgICAgICAgICAgICAgICAg ICAgICBsZXQgdCA9ICRpZDo6c3BsYXQoMiBhcyAkZWxlbV90eSk7CistICAgICAgICAgICAgICAg ICAgICAgICAgbGV0IGYgPSAkaWQ6OnNwbGF0KDQgYXMgJGVsZW1fdHkpOworLQorLSAgICAgICAg ICAgICAgICAgICAgICAgIGxldCBtYXggPSAkaWQ6OnNwbGF0KAorLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAobWVtOjpzaXplX29mOjo8JGVsZW1fdHk+KCkgKiA4IC0gMSkgYXMgJGVsZW1f dHkpOworLQorLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJvdGF0ZV9yaWdodAorLSAgICAg ICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoei5yb3RhdGVfcmlnaHQoeiksIHopOworLSAg ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoei5yb3RhdGVfcmlnaHQobyksIHopOwor LSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoei5yb3RhdGVfcmlnaHQodCksIHop OworLQorLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoby5yb3RhdGVfcmlnaHQo eiksIG8pOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodC5yb3RhdGVfcmln aHQoeiksIHQpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoZi5yb3RhdGVf cmlnaHQoeiksIGYpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoZi5yb3Rh dGVfcmlnaHQobWF4KSwgZiA8PCAxKTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3Nl cnRfZXEhKG8ucm90YXRlX3JpZ2h0KG8pLCBvIDw8IG1heCk7CistICAgICAgICAgICAgICAgICAg ICAgICAgYXNzZXJ0X2VxISh0LnJvdGF0ZV9yaWdodChvKSwgbyk7CistICAgICAgICAgICAgICAg ICAgICAgICAgYXNzZXJ0X2VxISh0LnJvdGF0ZV9yaWdodCh0KSwgbyA8PCBtYXgpOworLSAgICAg ICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoZi5yb3RhdGVfcmlnaHQobyksIHQpOworLSAg ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoZi5yb3RhdGVfcmlnaHQodCksIG8pOwor LQorLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJvdGF0ZV9sZWZ0CistICAgICAgICAgICAg ICAgICAgICAgICAgYXNzZXJ0X2VxISh6LnJvdGF0ZV9sZWZ0KHopLCB6KTsKKy0gICAgICAgICAg ICAgICAgICAgICAgICBhc3NlcnRfZXEhKG8ucm90YXRlX2xlZnQoeiksIG8pOworLSAgICAgICAg ICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodC5yb3RhdGVfbGVmdCh6KSwgdCk7CistICAgICAg ICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShmLnJvdGF0ZV9sZWZ0KHopLCBmKTsKKy0gICAg ICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGYucm90YXRlX2xlZnQobWF4KSwgdCk7Cist CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvLnJvdGF0ZV9sZWZ0KG8pLCB0 KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG8ucm90YXRlX2xlZnQodCks IGYpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodC5yb3RhdGVfbGVmdChv KSwgZik7CistICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgIH0KKy0gICAg ICAgICAgICB9CistICAgICAgICB9CistICAgIH07CistfQorZGlmZiAtLWdpdCBhL3RoaXJkX3Bh cnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9vcHMvdmVjdG9yX3NoaWZ0cy5ycyBiL3RoaXJk X3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9vcHMvdmVjdG9yX3NoaWZ0cy5ycworZGVs ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1k L3NyYy9hcGkvb3BzL3ZlY3Rvcl9zaGlmdHMucnMKKysrKyAvZGV2L251bGwKK0BAIC0xLDEwNiAr MCwwIEBACistLy8hIFZlcnRpY2FsIChsYW5lLXdpc2UpIHZlY3Rvci12ZWN0b3Igc2hpZnRzIG9w ZXJhdGlvbnMuCistCistbWFjcm9fcnVsZXMhIGltcGxfb3BzX3ZlY3Rvcl9zaGlmdHMgeworLSAg ICAoWyRlbGVtX3R5OmlkZW50OyAkZWxlbV9jb3VudDpleHByXTogJGlkOmlkZW50IHwgJHRlc3Rf dHQ6dHQpID0+IHsKKy0gICAgICAgIGltcGwgY3JhdGU6Om9wczo6U2hsPCRpZD4gZm9yICRpZCB7 CistICAgICAgICAgICAgdHlwZSBPdXRwdXQgPSBTZWxmOworLSAgICAgICAgICAgICNbaW5saW5l XQorLSAgICAgICAgICAgIGZuIHNobChzZWxmLCBvdGhlcjogU2VsZikgLT4gU2VsZiB7CistICAg ICAgICAgICAgICAgIHVzZSBjcmF0ZTo6bGx2bTo6c2ltZF9zaGw7CistICAgICAgICAgICAgICAg IHVuc2FmZSB7IFNpbWQoc2ltZF9zaGwoc2VsZi4wLCBvdGhlci4wKSkgfQorLSAgICAgICAgICAg IH0KKy0gICAgICAgIH0KKy0gICAgICAgIGltcGwgY3JhdGU6Om9wczo6U2hyPCRpZD4gZm9yICRp ZCB7CistICAgICAgICAgICAgdHlwZSBPdXRwdXQgPSBTZWxmOworLSAgICAgICAgICAgICNbaW5s aW5lXQorLSAgICAgICAgICAgIGZuIHNocihzZWxmLCBvdGhlcjogU2VsZikgLT4gU2VsZiB7Cist ICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6bGx2bTo6c2ltZF9zaHI7CistICAgICAgICAgICAg ICAgIHVuc2FmZSB7IFNpbWQoc2ltZF9zaHIoc2VsZi4wLCBvdGhlci4wKSkgfQorLSAgICAgICAg ICAgIH0KKy0gICAgICAgIH0KKy0gICAgICAgIGltcGwgY3JhdGU6Om9wczo6U2hsQXNzaWduPCRp ZD4gZm9yICRpZCB7CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgZm4gc2hs X2Fzc2lnbigmbXV0IHNlbGYsIG90aGVyOiBTZWxmKSB7CistICAgICAgICAgICAgICAgICpzZWxm ID0gKnNlbGYgPDwgb3RoZXI7CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICAgICAg aW1wbCBjcmF0ZTo6b3BzOjpTaHJBc3NpZ248JGlkPiBmb3IgJGlkIHsKKy0gICAgICAgICAgICAj W2lubGluZV0KKy0gICAgICAgICAgICBmbiBzaHJfYXNzaWduKCZtdXQgc2VsZiwgb3RoZXI6IFNl bGYpIHsKKy0gICAgICAgICAgICAgICAgKnNlbGYgPSAqc2VsZiA+PiBvdGhlcjsKKy0gICAgICAg ICAgICB9CistICAgICAgICB9CistICAgICAgICB0ZXN0X2lmIXsKKy0gICAgICAgICAgICAkdGVz dF90dDoKKy0gICAgICAgICAgICBwYXN0ZTo6aXRlbSEgeworLSAgICAgICAgICAgICAgICBwdWIg bW9kIFs8JGlkIF9vcHNfdmVjdG9yX3NoaWZ0cz5dIHsKKy0gICAgICAgICAgICAgICAgICAgIHVz ZSBzdXBlcjo6KjsKKy0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9h cmNoID0gIndhc20zMiIpLCB0ZXN0KV0gI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIi LCB3YXNtX2JpbmRnZW5fdGVzdCldCistICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKGFu eSh0YXJnZXRfYXJjaCA9ICJzMzkweCIsIHRhcmdldF9hcmNoID0gInNwYXJjNjQiKSwKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxsb3codW5yZWFjaGFibGVfY29kZSwgdW51c2Vk X3ZhcmlhYmxlcykKKy0gICAgICAgICAgICAgICAgICAgICldCistICAgICAgICAgICAgICAgICAg ICAjW2NmZyhub3QodGFyZ2V0X2FyY2ggPSAiYWFyY2g2NCIpKV0KKy0gICAgICAgICAgICAgICAg ICAgIC8vfl4gRklYTUU6IGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvcGFja2VkX3NpbWQv aXNzdWVzLzMxNworLSAgICAgICAgICAgICAgICAgICAgZm4gb3BzX3ZlY3Rvcl9zaGlmdHMoKSB7 CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHogPSAkaWQ6OnNwbGF0KDAgYXMgJGVsZW1f dHkpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBvID0gJGlkOjpzcGxhdCgxIGFzICRl bGVtX3R5KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdCA9ICRpZDo6c3BsYXQoMiBh cyAkZWxlbV90eSk7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGYgPSAkaWQ6OnNwbGF0 KDQgYXMgJGVsZW1fdHkpOworLQorLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtYXggPSRp ZDo6c3BsYXQoCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtZW06OnNpemVfb2Y6Ojwk ZWxlbV90eT4oKSAqIDggLSAxKSBhcyAkZWxlbV90eQorLSAgICAgICAgICAgICAgICAgICAgICAg ICk7CistCistICAgICAgICAgICAgICAgICAgICAgICAgLy8gc2hyCistICAgICAgICAgICAgICAg ICAgICAgICAgYXNzZXJ0X2VxISh6ID4+IHosIHopOworLSAgICAgICAgICAgICAgICAgICAgICAg IGFzc2VydF9lcSEoeiA+PiBvLCB6KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRf ZXEhKHogPj4gdCwgeik7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh6ID4+ IHQsIHopOworLQorLSAgICAgICAgICAgICAgICAgICAgICAgICNbY2ZnKGFueSh0YXJnZXRfYXJj aCA9ICJzMzkweCIsIHRhcmdldF9hcmNoID0gInNwYXJjNjQiKSldIHsKKy0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgLy8gRklYTUU6IHJ1c3QgcHJvZHVjZXMgYmFkIGNvZGVnZW4gZm9yIHNo aWZ0czoKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29t L3J1c3QtbGFuZy1udXJzZXJ5L3BhY2tlZF9zaW1kL2lzc3Vlcy8xMworLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICByZXR1cm47CistICAgICAgICAgICAgICAgICAgICAgICAgfQorLQorLSAg ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEobyA+PiB6LCBvKTsKKy0gICAgICAgICAg ICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQgPj4geiwgdCk7CistICAgICAgICAgICAgICAgICAg ICAgICAgYXNzZXJ0X2VxIShmID4+IHosIGYpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFz c2VydF9lcSEoZiA+PiBtYXgsIHopOworLQorLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2Vy dF9lcSEobyA+PiBvLCB6KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQg Pj4gbywgbyk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0ID4+IHQsIHop OworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoZiA+PiBvLCB0KTsKKy0gICAg ICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGYgPj4gdCwgbyk7CistICAgICAgICAgICAg ICAgICAgICAgICAgYXNzZXJ0X2VxIShmID4+IG1heCwgeik7CistCistICAgICAgICAgICAgICAg ICAgICAgICAgLy8gc2hsCistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh6IDw8 IHosIHopOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEobyA8PCB6LCBvKTsK Ky0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQgPDwgeiwgdCk7CistICAgICAg ICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShmIDw8IHosIGYpOworLSAgICAgICAgICAgICAg ICAgICAgICAgIGFzc2VydF9lcSEoZiA8PCBtYXgsIHopOworLQorLSAgICAgICAgICAgICAgICAg ICAgICAgIGFzc2VydF9lcSEobyA8PCBvLCB0KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBh c3NlcnRfZXEhKG8gPDwgdCwgZik7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2Vx ISh0IDw8IG8sIGYpOworLQorLSAgICAgICAgICAgICAgICAgICAgICAgIHsKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgLy8gc2hyX2Fzc2lnbgorLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICBsZXQgbXV0IHYgPSBvOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ID4+PSBv OworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHYsIHopOworLSAgICAg ICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgICAgICB7CistICAgICAg ICAgICAgICAgICAgICAgICAgICAgIC8vIHNobF9hc3NpZ24KKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgbGV0IG11dCB2ID0gbzsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdiA8 PD0gbzsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh2LCB0KTsKKy0g ICAgICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICB9CistICAgICAg ICAgICAgICAgIH0KKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgIH07CistfQorZGlm ZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9wdHIucnMgYi90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvcHRyLnJzCitkZWxldGVkIGZpbGUg bW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9w dHIucnMKKysrKyAvZGV2L251bGwKK0BAIC0xLDQgKzAsMCBAQAorLS8vISBWZWN0b3Igb2YgcG9p bnRlcnMKKy0KKy0jW21hY3JvX3VzZV0KKy1tb2QgZ2F0aGVyX3NjYXR0ZXI7CitkaWZmIC0tZ2l0 IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL3B0ci9nYXRoZXJfc2NhdHRl ci5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9wdHIvZ2F0aGVyX3Nj YXR0ZXIucnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVz dC9wYWNrZWRfc2ltZC9zcmMvYXBpL3B0ci9nYXRoZXJfc2NhdHRlci5ycworKysrIC9kZXYvbnVs bAorQEAgLTEsMjE2ICswLDAgQEAKKy0vLyEgSW1wbGVtZW50cyBtYXNrZWQgZ2F0aGVyIGFuZCBz Y2F0dGVycyBmb3IgdmVjdG9ycyBvZiBwb2ludGVycworLQorLW1hY3JvX3J1bGVzISBpbXBsX3B0 cl9yZWFkIHsKKy0gICAgKFskZWxlbV90eTp0eTsgJGVsZW1fY291bnQ6ZXhwcl06ICRpZDppZGVu dCwgJG1hc2tfdHk6aWRlbnQKKy0gICAgIHwgJHRlc3RfdHQ6dHQpID0+IHsKKy0gICAgICAgIGlt cGw8VD4gJGlkPFQ+CistICAgICAgICB3aGVyZQorLSAgICAgICAgICAgIFtUOyAkZWxlbV9jb3Vu dF06IHNlYWxlZDo6U2ltZEFycmF5LAorLSAgICAgICAgeworLSAgICAgICAgICAgIC8vLyBSZWFk cyBzZWxlY3RlZCB2ZWN0b3IgZWxlbWVudHMgZnJvbSBtZW1vcnkuCistICAgICAgICAgICAgLy8v CistICAgICAgICAgICAgLy8vIEluc3RhbnRpYXRlcyBhIG5ldyB2ZWN0b3IgYnkgcmVhZGluZyB0 aGUgdmFsdWVzIGZyb20gYHNlbGZgIGZvcgorLSAgICAgICAgICAgIC8vLyB0aG9zZSBsYW5lcyB3 aG9zZSBgbWFza2AgaXMgYHRydWVgLCBhbmQgdXNpbmcgdGhlIGVsZW1lbnRzIG9mCistICAgICAg ICAgICAgLy8vIGB2YWx1ZWAgb3RoZXJ3aXNlLgorLSAgICAgICAgICAgIC8vLworLSAgICAgICAg ICAgIC8vLyBObyBtZW1vcnkgaXMgYWNjZXNzZWQgZm9yIHRob3NlIGxhbmVzIG9mIGBzZWxmYCB3 aG9zZSBgbWFza2AgaXMKKy0gICAgICAgICAgICAvLy8gYGZhbHNlYC4KKy0gICAgICAgICAgICAv Ly8KKy0gICAgICAgICAgICAvLy8gIyBTYWZldHkKKy0gICAgICAgICAgICAvLy8KKy0gICAgICAg ICAgICAvLy8gVGhpcyBtZXRob2QgaXMgdW5zYWZlIGJlY2F1c2UgaXQgZGVyZWZlcmVuY2VzIHJh dyBwb2ludGVycy4gVGhlCistICAgICAgICAgICAgLy8vIHBvaW50ZXJzIG11c3QgYmUgYWxpZ25l ZCB0byBgbWVtOjphbGlnbl9vZjo6PFQ+KClgLgorLSAgICAgICAgICAgICNbaW5saW5lXQorLSAg ICAgICAgICAgIHB1YiB1bnNhZmUgZm4gcmVhZDxNPigKKy0gICAgICAgICAgICAgICAgc2VsZiwK Ky0gICAgICAgICAgICAgICAgbWFzazogU2ltZDxbTTsgJGVsZW1fY291bnRdPiwKKy0gICAgICAg ICAgICAgICAgdmFsdWU6IFNpbWQ8W1Q7ICRlbGVtX2NvdW50XT4sCistICAgICAgICAgICAgKSAt PiBTaW1kPFtUOyAkZWxlbV9jb3VudF0+CistICAgICAgICAgICAgd2hlcmUKKy0gICAgICAgICAg ICAgICAgTTogc2VhbGVkOjpNYXNrLAorLSAgICAgICAgICAgICAgICBbTTsgJGVsZW1fY291bnRd OiBzZWFsZWQ6OlNpbWRBcnJheSwKKy0gICAgICAgICAgICB7CistICAgICAgICAgICAgICAgIHVz ZSBjcmF0ZTo6bGx2bTo6c2ltZF9nYXRoZXI7CistICAgICAgICAgICAgICAgIFNpbWQoc2ltZF9n YXRoZXIodmFsdWUuMCwgc2VsZi4wLCBtYXNrLjApKQorLSAgICAgICAgICAgIH0KKy0gICAgICAg IH0KKy0KKy0gICAgICAgIHRlc3RfaWYhIHsKKy0gICAgICAgICAgICAkdGVzdF90dDoKKy0gICAg ICAgICAgICBwYXN0ZTo6aXRlbSEgeworLSAgICAgICAgICAgICAgICBtb2QgWzwkaWQgX3JlYWQ+ XSB7CistICAgICAgICAgICAgICAgICAgICB1c2Ugc3VwZXI6Oio7CistICAgICAgICAgICAgICAg ICAgICAjW3Rlc3RdCistICAgICAgICAgICAgICAgICAgICBmbiByZWFkKCkgeworLSAgICAgICAg ICAgICAgICAgICAgICAgIGxldCBtdXQgdiA9IFswX2kzMjsgJGVsZW1fY291bnRdOworLSAgICAg ICAgICAgICAgICAgICAgICAgIGZvciBpIGluIDAuLiRlbGVtX2NvdW50IHsKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgdltpXSA9IGkgYXMgaTMyOworLSAgICAgICAgICAgICAgICAgICAg ICAgIH0KKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IHB0ciA9ICRpZDo6PGkz Mj46Om51bGwoKTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICBmb3IgaSBpbiAwLi4kZWxl bV9jb3VudCB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB0ciA9IHB0ci5yZXBsYWNl KGksCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmdltpXSBhcyAqY29uc3QgaTMy IGFzICptdXQgaTMyCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CistICAgICAgICAg ICAgICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFsbCBtYXNr IGVsZW1lbnRzIGFyZSB0cnVlOgorLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtYXNrID0g JG1hc2tfdHk6OnNwbGF0KHRydWUpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZWYg PSBTaW1kOjo8W2kzMjsgJGVsZW1fY291bnRdPjo6c3BsYXQoNDJfaTMyKTsKKy0gICAgICAgICAg ICAgICAgICAgICAgICBsZXQgcjogU2ltZDxbaTMyOyAkZWxlbV9jb3VudF0+ID0gdW5zYWZlIHsK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHRyLnJlYWQobWFzaywgZGVmKQorLSAgICAg ICAgICAgICAgICAgICAgICAgIH07CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2Vx ISgKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgciwKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgU2ltZDo6PFtpMzI7ICRlbGVtX2NvdW50XT46OmZyb21fc2xpY2VfdW5hbGlnbmVk KAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnYKKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgKQorLSAgICAgICAgICAgICAgICAgICAgICAgICk7CistCistICAgICAgICAg ICAgICAgICAgICAgICAgbGV0IG11dCBtYXNrID0gbWFzazsKKy0gICAgICAgICAgICAgICAgICAg ICAgICBmb3IgaSBpbiAwLi4kZWxlbV9jb3VudCB7CistICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGlmIGkgJSAyICE9IDAgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFz ayA9IG1hc2sucmVwbGFjZShpLCBmYWxzZSk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0KKy0gICAgICAgICAgICAgICAgICAgICAgICB9CistCistICAgICAgICAgICAgICAgICAgICAg ICAgLy8gZXZlbiBtYXNrIGVsZW1lbnRzIGFyZSB0cnVlLCBvZGQgb25lcyBhcmUgZmFsc2U6Cist ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHI6IFNpbWQ8W2kzMjsgJGVsZW1fY291bnRdPiA9 IHVuc2FmZSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB0ci5yZWFkKG1hc2ssIGRl ZikKKy0gICAgICAgICAgICAgICAgICAgICAgICB9OworLSAgICAgICAgICAgICAgICAgICAgICAg IGxldCBtdXQgZSA9IHY7CistICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGkgaW4gMC4uJGVs ZW1fY291bnQgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBpICUgMiAhPSAwIHsK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVbaV0gPSA0MjsKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAg ICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKAorLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICByLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBTaW1kOjo8W2kzMjsgJGVsZW1fY291 bnRdPjo6ZnJvbV9zbGljZV91bmFsaWduZWQoCistICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAmZQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICApCistICAgICAgICAgICAgICAg ICAgICAgICAgKTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICAvLyBhbGwgbWFzayBlbGVt ZW50cyBhcmUgZmFsc2U6CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG1hc2sgPSAkbWFz a190eTo6c3BsYXQoZmFsc2UpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZWYgPSBT aW1kOjo8W2kzMjsgJGVsZW1fY291bnRdPjo6c3BsYXQoNDJfaTMyKTsKKy0gICAgICAgICAgICAg ICAgICAgICAgICBsZXQgcjogU2ltZDxbaTMyOyAkZWxlbV9jb3VudF0+ID0gdW5zYWZlIHsKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgcHRyLnJlYWQobWFzaywgZGVmKSB9CistICAgICAg ICAgICAgICAgICAgICAgICAgOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEo ciwgZGVmKTsKKy0gICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgfQorLSAg ICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgfTsKKy19CistCistbWFjcm9fcnVsZXMhIGlt cGxfcHRyX3dyaXRlIHsKKy0gICAgKFskZWxlbV90eTp0eTsgJGVsZW1fY291bnQ6ZXhwcl06ICRp ZDppZGVudCwgJG1hc2tfdHk6aWRlbnQKKy0gICAgIHwgJHRlc3RfdHQ6dHQpID0+IHsKKy0gICAg ICAgIGltcGw8VD4gJGlkPFQ+CistICAgICAgICB3aGVyZQorLSAgICAgICAgICAgIFtUOyAkZWxl bV9jb3VudF06IHNlYWxlZDo6U2ltZEFycmF5LAorLSAgICAgICAgeworLSAgICAgICAgICAgIC8v LyBXcml0ZXMgc2VsZWN0ZWQgdmVjdG9yIGVsZW1lbnRzIHRvIG1lbW9yeS4KKy0gICAgICAgICAg ICAvLy8KKy0gICAgICAgICAgICAvLy8gV3JpdGVzIHRoZSBsYW5lcyBvZiBgdmFsdWVzYCBmb3Ig d2hpY2ggdGhlIG1hc2sgaXMgYHRydWVgIHRvCistICAgICAgICAgICAgLy8vIHRoZWlyIGNvcnJl c3BvbmRpbmcgbWVtb3J5IGFkZHJlc3NlcyBpbiBgc2VsZmAuCistICAgICAgICAgICAgLy8vCist ICAgICAgICAgICAgLy8vIE5vIG1lbW9yeSBpcyBhY2Nlc3NlZCBmb3IgdGhvc2UgbGFuZXMgb2Yg YHNlbGZgIHdob3NlIGBtYXNrYCBpcworLSAgICAgICAgICAgIC8vLyBgZmFsc2VgLgorLSAgICAg ICAgICAgIC8vLworLSAgICAgICAgICAgIC8vLyBPdmVybGFwcGluZyBtZW1vcnkgYWRkcmVzc2Vz IG9mIGBzZWxmYCBhcmUgd3JpdHRlbiB0byBpbiBvcmRlcgorLSAgICAgICAgICAgIC8vLyBmcm9t IHRoZSBsZXN0LXNpZ25pZmljYW50IHRvIHRoZSBtb3N0LXNpZ25pZmljYW50IGVsZW1lbnQuCist ICAgICAgICAgICAgLy8vCistICAgICAgICAgICAgLy8vICMgU2FmZXR5CistICAgICAgICAgICAg Ly8vCistICAgICAgICAgICAgLy8vIFRoaXMgbWV0aG9kIGlzIHVuc2FmZSBiZWNhdXNlIGl0IGRl cmVmZXJlbmNlcyByYXcgcG9pbnRlcnMuIFRoZQorLSAgICAgICAgICAgIC8vLyBwb2ludGVycyBt dXN0IGJlIGFsaWduZWQgdG8gYG1lbTo6YWxpZ25fb2Y6OjxUPigpYC4KKy0gICAgICAgICAgICAj W2lubGluZV0KKy0gICAgICAgICAgICBwdWIgdW5zYWZlIGZuIHdyaXRlPE0+KHNlbGYsIG1hc2s6 IFNpbWQ8W007ICRlbGVtX2NvdW50XT4sIHZhbHVlOiBTaW1kPFtUOyAkZWxlbV9jb3VudF0+KQor LSAgICAgICAgICAgIHdoZXJlCistICAgICAgICAgICAgICAgIE06IHNlYWxlZDo6TWFzaywKKy0g ICAgICAgICAgICAgICAgW007ICRlbGVtX2NvdW50XTogc2VhbGVkOjpTaW1kQXJyYXksCistICAg ICAgICAgICAgeworLSAgICAgICAgICAgICAgICB1c2UgY3JhdGU6Omxsdm06OnNpbWRfc2NhdHRl cjsKKy0gICAgICAgICAgICAgICAgc2ltZF9zY2F0dGVyKHZhbHVlLjAsIHNlbGYuMCwgbWFzay4w KQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0KKy0gICAgICAgIHRlc3RfaWYhIHsKKy0g ICAgICAgICAgICAkdGVzdF90dDoKKy0gICAgICAgICAgICBwYXN0ZTo6aXRlbSEgeworLSAgICAg ICAgICAgICAgICBtb2QgWzwkaWQgX3dyaXRlPl0geworLSAgICAgICAgICAgICAgICAgICAgdXNl IHN1cGVyOjoqOworLSAgICAgICAgICAgICAgICAgICAgI1t0ZXN0XQorLSAgICAgICAgICAgICAg ICAgICAgZm4gd3JpdGUoKSB7CistICAgICAgICAgICAgICAgICAgICAgICAgLy8gZm9ydHlfdHdv ID0gWzQyLCA0MiwgNDIsIC4uLl0KKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgZm9ydHlf dHdvCistICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gU2ltZDo6PFtpMzI7ICRlbGVtX2Nv dW50XT46OnNwbGF0KDQyX2kzMik7CistCistICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhp cyB0ZXN0IHdpbGwgd3JpdGUgdG8gdGhpcyBhcnJheQorLSAgICAgICAgICAgICAgICAgICAgICAg IGxldCBtdXQgYXJyID0gWzBfaTMyOyAkZWxlbV9jb3VudF07CistICAgICAgICAgICAgICAgICAg ICAgICAgZm9yIGkgaW4gMC4uJGVsZW1fY291bnQgeworLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICBhcnJbaV0gPSBpIGFzIGkzMjsKKy0gICAgICAgICAgICAgICAgICAgICAgICB9CistICAg ICAgICAgICAgICAgICAgICAgICAgLy8gYXJyID0gWzAsIDEsIDIsIC4uLl0KKy0KKy0gICAgICAg ICAgICAgICAgICAgICAgICBsZXQgbXV0IHB0ciA9ICRpZDo6PGkzMj46Om51bGwoKTsKKy0gICAg ICAgICAgICAgICAgICAgICAgICBmb3IgaSBpbiAwLi4kZWxlbV9jb3VudCB7CistICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHB0ciA9IHB0ci5yZXBsYWNlKGksIHVuc2FmZSB7CistICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBhcnIuYXNfcHRyKCkuYWRkKGkpIGFzICptdXQgaTMy CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pOworLSAgICAgICAgICAgICAgICAgICAg ICAgIH0KKy0gICAgICAgICAgICAgICAgICAgICAgICAvLyBwdHIgPSBbJmFyclswXSwgJmFyclsx XSwgLi4uXQorLQorLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdyaXRlIGBmb3J0eV90d29g IHRvIGFsbCBlbGVtZW50cyBvZiBgdmAKKy0gICAgICAgICAgICAgICAgICAgICAgICB7CistICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBiYWNrdXAgPSBhcnI7CistICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHVuc2FmZSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBwdHIud3JpdGUoJG1hc2tfdHk6OnNwbGF0KHRydWUpLCBmb3J0eV90d28pCistICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH07CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2Vy dF9lcSEoYXJyLCBbNDJfaTMyOyAkZWxlbV9jb3VudF0pOworLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICBhcnIgPSBiYWNrdXA7ICAvLyBhcnIgPSBbMCwgMSwgMiwgLi4uXQorLSAgICAgICAg ICAgICAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICAvLyB3cml0ZSA0 MiB0byBldmVuIGVsZW1lbnRzIG9mIGFycjoKKy0gICAgICAgICAgICAgICAgICAgICAgICB7Cist ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNldCBvZGQgZWxlbWVudHMgb2YgdGhlIG1h c2sgdG8gZmFsc2UKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBtYXNrID0g JG1hc2tfdHk6OnNwbGF0KHRydWUpOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3Ig aSBpbiAwLi4kZWxlbV9jb3VudCB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp ZiBpICUgMiAhPSAwIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXNr ID0gbWFzay5yZXBsYWNlKGksIGZhbHNlKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH0KKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAvLyBtYXNrID0gW3RydWUsIGZhbHNlLCB0cnVlLCBmYWxzZSwgLi4uXQorLQor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBleHBlY3RlZCByZXN1bHQgciA9IFs0Miwg MSwgNDIsIDMsIDQyLCA1LCAuLi5dCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBt dXQgciA9IGFycjsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGkgaW4gMC4uJGVs ZW1fY291bnQgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgaSAlIDIgPT0g MCB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcltpXSA9IDQyOworLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9CistCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBiYWNrdXAgPSBhcnI7 CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2FmZSB7IHB0ci53cml0ZShtYXNrLCBm b3J0eV90d28pIH07CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoYXJy LCByKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJyID0gYmFja3VwOyAgLy8gYXJy ID0gWzAsIDEsIDIsIDMsIC4uLl0KKy0gICAgICAgICAgICAgICAgICAgICAgICB9CistCistICAg ICAgICAgICAgICAgICAgICAgICAgLy8gd3JpdGUgNDIgdG8gbm8gZWxlbWVudHMgb2YgYXJyCist ICAgICAgICAgICAgICAgICAgICAgICAgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBs ZXQgYmFja3VwID0gYXJyOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNhZmUgewor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHRyLndyaXRlKCRtYXNrX3R5OjpzcGxh dChmYWxzZSksIGZvcnR5X3R3bykKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfTsKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShhcnIsIGJhY2t1cCk7CistICAg ICAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAg ICAgICAgICB9CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICB9OworLX0KK2RpZmYg LS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvcmVkdWN0aW9ucy5y cyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9yZWR1Y3Rpb25zLnJzCitk ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3Np bWQvc3JjL2FwaS9yZWR1Y3Rpb25zLnJzCisrKysgL2Rldi9udWxsCitAQCAtMSwxMiArMCwwIEBA CistLy8hIFJlZHVjdGlvbnMKKy0KKy0jW21hY3JvX3VzZV0KKy1tb2QgZmxvYXRfYXJpdGhtZXRp YzsKKy0jW21hY3JvX3VzZV0KKy1tb2QgaW50ZWdlcl9hcml0aG1ldGljOworLSNbbWFjcm9fdXNl XQorLW1vZCBiaXR3aXNlOworLSNbbWFjcm9fdXNlXQorLW1vZCBtYXNrOworLSNbbWFjcm9fdXNl XQorLW1vZCBtaW5fbWF4OworZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3Np bWQvc3JjL2FwaS9yZWR1Y3Rpb25zL2JpdHdpc2UucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tl ZF9zaW1kL3NyYy9hcGkvcmVkdWN0aW9ucy9iaXR3aXNlLnJzCitkZWxldGVkIGZpbGUgbW9kZSAx MDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9yZWR1Y3Rp b25zL2JpdHdpc2UucnMKKysrKyAvZGV2L251bGwKK0BAIC0xLDE1MSArMCwwIEBACistLy8hIElt cGxlbWVudHMgcG9ydGFibGUgaG9yaXpvbnRhbCBiaXR3aXNlIHZlY3RvciByZWR1Y3Rpb25zLgor LSMhW2FsbG93KHVudXNlZCldCistCistbWFjcm9fcnVsZXMhIGltcGxfcmVkdWN0aW9uX2JpdHdp c2UgeworLSAgICAoCistICAgICAgICBbJGVsZW1fdHk6aWRlbnQ7ICRlbGVtX2NvdW50OmV4cHJd OgorLSAgICAgICAgJGlkOmlkZW50IHwgJGllbGVtX3R5OmlkZW50IHwgJHRlc3RfdHQ6dHQgfAor LSAgICAgICAgKCRjb252ZXJ0OmV4cHIpIHwKKy0gICAgICAgICgkdHJ1ZTpleHByLCAkZmFsc2U6 ZXhwcikKKy0gICAgKSA9PiB7CistICAgICAgICBpbXBsICRpZCB7CistICAgICAgICAgICAgLy8v IExhbmUtd2lzZSBiaXR3aXNlIGBhbmRgIG9mIHRoZSB2ZWN0b3IgZWxlbWVudHMuCistICAgICAg ICAgICAgLy8vCistICAgICAgICAgICAgLy8vIE5vdGU6IGlmIHRoZSB2ZWN0b3IgaGFzIG9uZSBs YW5lLCB0aGUgZmlyc3QgZWxlbWVudCBvZiB0aGUKKy0gICAgICAgICAgICAvLy8gdmVjdG9yIGlz IHJldHVybmVkLgorLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIHB1YiBmbiBh bmQoc2VsZikgLT4gJGVsZW1fdHkgeworLSAgICAgICAgICAgICAgICAjW2NmZyhub3QodGFyZ2V0 X2FyY2ggPSAiYWFyY2g2NCIpKV0KKy0gICAgICAgICAgICAgICAgeworLSAgICAgICAgICAgICAg ICAgICAgdXNlIGNyYXRlOjpsbHZtOjpzaW1kX3JlZHVjZV9hbmQ7CistICAgICAgICAgICAgICAg ICAgICBsZXQgcjogJGllbGVtX3R5ID0gdW5zYWZlIHsgc2ltZF9yZWR1Y2VfYW5kKHNlbGYuMCkg fTsKKy0gICAgICAgICAgICAgICAgICAgICRjb252ZXJ0KHIpCistICAgICAgICAgICAgICAgIH0K Ky0gICAgICAgICAgICAgICAgI1tjZmcodGFyZ2V0X2FyY2ggPSAiYWFyY2g2NCIpXQorLSAgICAg ICAgICAgICAgICB7CistICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogYnJva2VuIG9uIGFh cmNoNjQKKy0gICAgICAgICAgICAgICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxh bmctbnVyc2VyeS9wYWNrZWRfc2ltZC9pc3N1ZXMvMTUKKy0gICAgICAgICAgICAgICAgICAgIGxl dCBtdXQgeCA9IHNlbGYuZXh0cmFjdCgwKSBhcyAkZWxlbV90eTsKKy0gICAgICAgICAgICAgICAg ICAgIGZvciBpIGluIDEuLiRpZDo6bGFuZXMoKSB7CistICAgICAgICAgICAgICAgICAgICAgICAg eCAmPSBzZWxmLmV4dHJhY3QoaSkgYXMgJGVsZW1fdHk7CistICAgICAgICAgICAgICAgICAgICB9 CistICAgICAgICAgICAgICAgICAgICB4CistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAg ICB9CistCistICAgICAgICAgICAgLy8vIExhbmUtd2lzZSBiaXR3aXNlIGBvcmAgb2YgdGhlIHZl Y3RvciBlbGVtZW50cy4KKy0gICAgICAgICAgICAvLy8KKy0gICAgICAgICAgICAvLy8gTm90ZTog aWYgdGhlIHZlY3RvciBoYXMgb25lIGxhbmUsIHRoZSBmaXJzdCBlbGVtZW50IG9mIHRoZQorLSAg ICAgICAgICAgIC8vLyB2ZWN0b3IgaXMgcmV0dXJuZWQuCistICAgICAgICAgICAgI1tpbmxpbmVd CistICAgICAgICAgICAgcHViIGZuIG9yKHNlbGYpIC0+ICRlbGVtX3R5IHsKKy0gICAgICAgICAg ICAgICAgI1tjZmcobm90KHRhcmdldF9hcmNoID0gImFhcmNoNjQiKSldCistICAgICAgICAgICAg ICAgIHsKKy0gICAgICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6bGx2bTo6c2ltZF9yZWR1Y2Vf b3I7CistICAgICAgICAgICAgICAgICAgICBsZXQgcjogJGllbGVtX3R5ID0gdW5zYWZlIHsgc2lt ZF9yZWR1Y2Vfb3Ioc2VsZi4wKSB9OworLSAgICAgICAgICAgICAgICAgICAgJGNvbnZlcnQocikK Ky0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAjW2NmZyh0YXJnZXRfYXJjaCA9 ICJhYXJjaDY0IildCistICAgICAgICAgICAgICAgIHsKKy0gICAgICAgICAgICAgICAgICAgIC8v IEZJWE1FOiBicm9rZW4gb24gYWFyY2g2NAorLSAgICAgICAgICAgICAgICAgICAgLy8gaHR0cHM6 Ly9naXRodWIuY29tL3J1c3QtbGFuZy1udXJzZXJ5L3BhY2tlZF9zaW1kL2lzc3Vlcy8xNQorLSAg ICAgICAgICAgICAgICAgICAgbGV0IG11dCB4ID0gc2VsZi5leHRyYWN0KDApIGFzICRlbGVtX3R5 OworLSAgICAgICAgICAgICAgICAgICAgZm9yIGkgaW4gMS4uJGlkOjpsYW5lcygpIHsKKy0gICAg ICAgICAgICAgICAgICAgICAgICB4IHw9IHNlbGYuZXh0cmFjdChpKSBhcyAkZWxlbV90eTsKKy0g ICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgIHgKKy0gICAgICAgICAg ICAgICAgfQorLSAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICAvLy8gTGFuZS13aXNlIGJp dHdpc2UgYHhvcmAgb2YgdGhlIHZlY3RvciBlbGVtZW50cy4KKy0gICAgICAgICAgICAvLy8KKy0g ICAgICAgICAgICAvLy8gTm90ZTogaWYgdGhlIHZlY3RvciBoYXMgb25lIGxhbmUsIHRoZSBmaXJz dCBlbGVtZW50IG9mIHRoZQorLSAgICAgICAgICAgIC8vLyB2ZWN0b3IgaXMgcmV0dXJuZWQuCist ICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgcHViIGZuIHhvcihzZWxmKSAtPiAk ZWxlbV90eSB7CistICAgICAgICAgICAgICAgICNbY2ZnKG5vdCh0YXJnZXRfYXJjaCA9ICJhYXJj aDY0IikpXQorLSAgICAgICAgICAgICAgICB7CistICAgICAgICAgICAgICAgICAgICB1c2UgY3Jh dGU6Omxsdm06OnNpbWRfcmVkdWNlX3hvcjsKKy0gICAgICAgICAgICAgICAgICAgIGxldCByOiAk aWVsZW1fdHkgPSB1bnNhZmUgeyBzaW1kX3JlZHVjZV94b3Ioc2VsZi4wKSB9OworLSAgICAgICAg ICAgICAgICAgICAgJGNvbnZlcnQocikKKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAg ICAgICAjW2NmZyh0YXJnZXRfYXJjaCA9ICJhYXJjaDY0IildCistICAgICAgICAgICAgICAgIHsK Ky0gICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBicm9rZW4gb24gYWFyY2g2NAorLSAgICAg ICAgICAgICAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy1udXJzZXJ5L3Bh Y2tlZF9zaW1kL2lzc3Vlcy8xNQorLSAgICAgICAgICAgICAgICAgICAgbGV0IG11dCB4ID0gc2Vs Zi5leHRyYWN0KDApIGFzICRlbGVtX3R5OworLSAgICAgICAgICAgICAgICAgICAgZm9yIGkgaW4g MS4uJGlkOjpsYW5lcygpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICB4IF49IHNlbGYuZXh0 cmFjdChpKSBhcyAkZWxlbV90eTsKKy0gICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAg ICAgICAgICAgIHgKKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgIH0KKy0gICAgICAg IH0KKy0KKy0gICAgICAgIHRlc3RfaWYheworLSAgICAgICAgICAgICR0ZXN0X3R0OgorLSAgICAg ICAgICAgIHBhc3RlOjppdGVtISB7CistICAgICAgICAgICAgICAgIHB1YiBtb2QgWzwkaWQgX3Jl ZHVjdGlvbl9iaXR3aXNlPl0geworLSAgICAgICAgICAgICAgICAgICAgdXNlIHN1cGVyOjoqOwor LQorLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2Fz bTMyIiksIHRlc3QpXSAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmlu ZGdlbl90ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAgIGZuIGFuZCgpIHsKKy0gICAgICAgICAg ICAgICAgICAgICAgICBsZXQgdiA9ICRpZDo6c3BsYXQoJGZhbHNlKTsKKy0gICAgICAgICAgICAg ICAgICAgICAgICBhc3NlcnRfZXEhKHYuYW5kKCksICRmYWxzZSk7CistICAgICAgICAgICAgICAg ICAgICAgICAgbGV0IHYgPSAkaWQ6OnNwbGF0KCR0cnVlKTsKKy0gICAgICAgICAgICAgICAgICAg ICAgICBhc3NlcnRfZXEhKHYuYW5kKCksICR0cnVlKTsKKy0gICAgICAgICAgICAgICAgICAgICAg ICBsZXQgdiA9ICRpZDo6c3BsYXQoJGZhbHNlKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBs ZXQgdiA9IHYucmVwbGFjZSgwLCAkdHJ1ZSk7CistICAgICAgICAgICAgICAgICAgICAgICAgaWYg JGlkOjpsYW5lcygpID4gMSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9l cSEodi5hbmQoKSwgJGZhbHNlKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Ugewor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHYuYW5kKCksICR0cnVlKTsK Ky0gICAgICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0 IHYgPSAkaWQ6OnNwbGF0KCR0cnVlKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdiA9 IHYucmVwbGFjZSgwLCAkZmFsc2UpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9l cSEodi5hbmQoKSwgJGZhbHNlKTsKKy0KKy0gICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAg ICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0 KV0gI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCld CistICAgICAgICAgICAgICAgICAgICBmbiBvcigpIHsKKy0gICAgICAgICAgICAgICAgICAgICAg ICBsZXQgdiA9ICRpZDo6c3BsYXQoJGZhbHNlKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBh c3NlcnRfZXEhKHYub3IoKSwgJGZhbHNlKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQg diA9ICRpZDo6c3BsYXQoJHRydWUpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9l cSEodi5vcigpLCAkdHJ1ZSk7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHYgPSAkaWQ6 OnNwbGF0KCRmYWxzZSk7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHYgPSB2LnJlcGxh Y2UoMCwgJHRydWUpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodi5vcigp LCAkdHJ1ZSk7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHYgPSAkaWQ6OnNwbGF0KCR0 cnVlKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdiA9IHYucmVwbGFjZSgwLCAkZmFs c2UpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGlmICRpZDo6bGFuZXMoKSA+IDEgeworLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHYub3IoKSwgJHRydWUpOworLSAg ICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CistICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGFzc2VydF9lcSEodi5vcigpLCAkZmFsc2UpOworLSAgICAgICAgICAgICAgICAgICAgICAg IH0KKy0gICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0 dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0gI1tjZmdfYXR0cih0YXJnZXRf YXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCistICAgICAgICAgICAgICAgICAg ICBmbiB4b3IoKSB7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHYgPSAkaWQ6OnNwbGF0 KCRmYWxzZSk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh2LnhvcigpLCAk ZmFsc2UpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2ID0gJGlkOjpzcGxhdCgkdHJ1 ZSk7CistICAgICAgICAgICAgICAgICAgICAgICAgaWYgJGlkOjpsYW5lcygpID4gMSB7CistICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodi54b3IoKSwgJGZhbHNlKTsKKy0g ICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICBhc3NlcnRfZXEhKHYueG9yKCksICR0cnVlKTsKKy0gICAgICAgICAgICAgICAgICAgICAg ICB9CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHYgPSAkaWQ6OnNwbGF0KCRmYWxzZSk7 CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHYgPSB2LnJlcGxhY2UoMCwgJHRydWUpOwor LSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodi54b3IoKSwgJHRydWUpOworLSAg ICAgICAgICAgICAgICAgICAgICAgIGxldCB2ID0gJGlkOjpzcGxhdCgkdHJ1ZSk7CistICAgICAg ICAgICAgICAgICAgICAgICAgbGV0IHYgPSB2LnJlcGxhY2UoMCwgJGZhbHNlKTsKKy0gICAgICAg ICAgICAgICAgICAgICAgICBpZiAkaWQ6OmxhbmVzKCkgPiAxIHsKKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgYXNzZXJ0X2VxISh2LnhvcigpLCAkdHJ1ZSk7CistICAgICAgICAgICAgICAg ICAgICAgICAgfSBlbHNlIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2Vx ISh2LnhvcigpLCAkZmFsc2UpOworLSAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAg ICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgIH0KKy0gICAg ICAgIH0KKy0gICAgfTsKKy19CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRf c2ltZC9zcmMvYXBpL3JlZHVjdGlvbnMvZmxvYXRfYXJpdGhtZXRpYy5ycyBiL3RoaXJkX3BhcnR5 L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9yZWR1Y3Rpb25zL2Zsb2F0X2FyaXRobWV0aWMucnMK K2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRf c2ltZC9zcmMvYXBpL3JlZHVjdGlvbnMvZmxvYXRfYXJpdGhtZXRpYy5ycworKysrIC9kZXYvbnVs bAorQEAgLTEsMzEzICswLDAgQEAKKy0vLyEgSW1wbGVtZW50cyBwb3J0YWJsZSBob3Jpem9udGFs IGZsb2F0IHZlY3RvciBhcml0aG1ldGljIHJlZHVjdGlvbnMuCistCistbWFjcm9fcnVsZXMhIGlt cGxfcmVkdWN0aW9uX2Zsb2F0X2FyaXRobWV0aWMgeworLSAgICAoWyRlbGVtX3R5OmlkZW50OyAk ZWxlbV9jb3VudDpleHByXTogJGlkOmlkZW50IHwgJHRlc3RfdHQ6dHQpID0+IHsKKy0gICAgICAg IGltcGwgJGlkIHsKKy0gICAgICAgICAgICAvLy8gSG9yaXpvbnRhbCBzdW0gb2YgdGhlIHZlY3Rv ciBlbGVtZW50cy4KKy0gICAgICAgICAgICAvLy8KKy0gICAgICAgICAgICAvLy8gVGhlIGludHJp bnNpYyBwZXJmb3JtcyBhIHRyZWUtcmVkdWN0aW9uIG9mIHRoZSB2ZWN0b3IgZWxlbWVudHMuCist ICAgICAgICAgICAgLy8vIFRoYXQgaXMsIGZvciBhbiA4IGVsZW1lbnQgdmVjdG9yOgorLSAgICAg ICAgICAgIC8vLworLSAgICAgICAgICAgIC8vLyA+ICgoeDAgKyB4MSkgKyAoeDIgKyB4MykpICsg KCh4NCArIHg1KSArICh4NiArIHg3KSkKKy0gICAgICAgICAgICAvLy8KKy0gICAgICAgICAgICAv Ly8gSWYgb25lIG9mIHRoZSB2ZWN0b3IgZWxlbWVudCBpcyBgTmFOYCB0aGUgcmVkdWN0aW9uIHJl dHVybnMKKy0gICAgICAgICAgICAvLy8gYE5hTmAuIFRoZSByZXN1bHRpbmcgYE5hTmAgaXMgbm90 IHJlcXVpcmVkIHRvIGJlIGVxdWFsIHRvIGFueQorLSAgICAgICAgICAgIC8vLyBvZiB0aGUgYE5h TmBzIGluIHRoZSB2ZWN0b3IuCistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAg cHViIGZuIHN1bShzZWxmKSAtPiAkZWxlbV90eSB7CistICAgICAgICAgICAgICAgICNbY2ZnKG5v dCh0YXJnZXRfYXJjaCA9ICJhYXJjaDY0IikpXQorLSAgICAgICAgICAgICAgICB7CistICAgICAg ICAgICAgICAgICAgICB1c2UgY3JhdGU6Omxsdm06OnNpbWRfcmVkdWNlX2FkZF9vcmRlcmVkOwor LSAgICAgICAgICAgICAgICAgICAgdW5zYWZlIHsgc2ltZF9yZWR1Y2VfYWRkX29yZGVyZWQoc2Vs Zi4wLCAwIGFzICRlbGVtX3R5KSB9CistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAg ICAgI1tjZmcodGFyZ2V0X2FyY2ggPSAiYWFyY2g2NCIpXQorLSAgICAgICAgICAgICAgICB7Cist ICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogYnJva2VuIG9uIEFBcmNoNjQKKy0gICAgICAg ICAgICAgICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmctbnVyc2VyeS9wYWNr ZWRfc2ltZC9pc3N1ZXMvMTUKKy0gICAgICAgICAgICAgICAgICAgIGxldCBtdXQgeCA9IHNlbGYu ZXh0cmFjdCgwKSBhcyAkZWxlbV90eTsKKy0gICAgICAgICAgICAgICAgICAgIGZvciBpIGluIDEu LiRpZDo6bGFuZXMoKSB7CistICAgICAgICAgICAgICAgICAgICAgICAgeCArPSBzZWxmLmV4dHJh Y3QoaSkgYXMgJGVsZW1fdHk7CistICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAg ICAgICAgICB4CistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICB9CistCistICAgICAg ICAgICAgLy8vIEhvcml6b250YWwgcHJvZHVjdCBvZiB0aGUgdmVjdG9yIGVsZW1lbnRzLgorLSAg ICAgICAgICAgIC8vLworLSAgICAgICAgICAgIC8vLyBUaGUgaW50cmluc2ljIHBlcmZvcm1zIGEg dHJlZS1yZWR1Y3Rpb24gb2YgdGhlIHZlY3RvciBlbGVtZW50cy4KKy0gICAgICAgICAgICAvLy8g VGhhdCBpcywgZm9yIGFuIDggZWxlbWVudCB2ZWN0b3I6CistICAgICAgICAgICAgLy8vCistICAg ICAgICAgICAgLy8vID4gKCh4MCAqIHgxKSAqICh4MiAqIHgzKSkgKiAoKHg0ICogeDUpICogKHg2 ICogeDcpKQorLSAgICAgICAgICAgIC8vLworLSAgICAgICAgICAgIC8vLyBJZiBvbmUgb2YgdGhl IHZlY3RvciBlbGVtZW50IGlzIGBOYU5gIHRoZSByZWR1Y3Rpb24gcmV0dXJucworLSAgICAgICAg ICAgIC8vLyBgTmFOYC4gVGhlIHJlc3VsdGluZyBgTmFOYCBpcyBub3QgcmVxdWlyZWQgdG8gYmUg ZXF1YWwgdG8gYW55CistICAgICAgICAgICAgLy8vIG9mIHRoZSBgTmFOYHMgaW4gdGhlIHZlY3Rv ci4KKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBwdWIgZm4gcHJvZHVjdChz ZWxmKSAtPiAkZWxlbV90eSB7CistICAgICAgICAgICAgICAgICNbY2ZnKG5vdCh0YXJnZXRfYXJj aCA9ICJhYXJjaDY0IikpXQorLSAgICAgICAgICAgICAgICB7CistICAgICAgICAgICAgICAgICAg ICB1c2UgY3JhdGU6Omxsdm06OnNpbWRfcmVkdWNlX211bF9vcmRlcmVkOworLSAgICAgICAgICAg ICAgICAgICAgdW5zYWZlIHsgc2ltZF9yZWR1Y2VfbXVsX29yZGVyZWQoc2VsZi4wLCAxIGFzICRl bGVtX3R5KSB9CistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgI1tjZmcodGFy Z2V0X2FyY2ggPSAiYWFyY2g2NCIpXQorLSAgICAgICAgICAgICAgICB7CistICAgICAgICAgICAg ICAgICAgICAvLyBGSVhNRTogYnJva2VuIG9uIEFBcmNoNjQKKy0gICAgICAgICAgICAgICAgICAg IC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmctbnVyc2VyeS9wYWNrZWRfc2ltZC9pc3N1 ZXMvMTUKKy0gICAgICAgICAgICAgICAgICAgIGxldCBtdXQgeCA9IHNlbGYuZXh0cmFjdCgwKSBh cyAkZWxlbV90eTsKKy0gICAgICAgICAgICAgICAgICAgIGZvciBpIGluIDEuLiRpZDo6bGFuZXMo KSB7CistICAgICAgICAgICAgICAgICAgICAgICAgeCAqPSBzZWxmLmV4dHJhY3QoaSkgYXMgJGVs ZW1fdHk7CistICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICB4Cist ICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICB9CistICAgICAgICB9CistCistICAgICAg ICBpbXBsIGNyYXRlOjppdGVyOjpTdW0gZm9yICRpZCB7CistICAgICAgICAgICAgI1tpbmxpbmVd CistICAgICAgICAgICAgZm4gc3VtPEk6IEl0ZXJhdG9yPEl0ZW0gPSAkaWQ+PihpdGVyOiBJKSAt PiAkaWQgeworLSAgICAgICAgICAgICAgICBpdGVyLmZvbGQoJGlkOjpzcGxhdCgwLiksIGNyYXRl OjpvcHM6OkFkZDo6YWRkKQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0KKy0gICAgICAg IGltcGwgY3JhdGU6Oml0ZXI6OlByb2R1Y3QgZm9yICRpZCB7CistICAgICAgICAgICAgI1tpbmxp bmVdCistICAgICAgICAgICAgZm4gcHJvZHVjdDxJOiBJdGVyYXRvcjxJdGVtID0gJGlkPj4oaXRl cjogSSkgLT4gJGlkIHsKKy0gICAgICAgICAgICAgICAgaXRlci5mb2xkKCRpZDo6c3BsYXQoMS4p LCBjcmF0ZTo6b3BzOjpNdWw6Om11bCkKKy0gICAgICAgICAgICB9CistICAgICAgICB9CistCist ICAgICAgICBpbXBsPCdhPiBjcmF0ZTo6aXRlcjo6U3VtPCYnYSAkaWQ+IGZvciAkaWQgeworLSAg ICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIGZuIHN1bTxJOiBJdGVyYXRvcjxJdGVt ID0gJidhICRpZD4+KGl0ZXI6IEkpIC0+ICRpZCB7CistICAgICAgICAgICAgICAgIGl0ZXIuZm9s ZCgkaWQ6OnNwbGF0KDAuKSwgfGEsIGJ8IGNyYXRlOjpvcHM6OkFkZDo6YWRkKGEsICpiKSkKKy0g ICAgICAgICAgICB9CistICAgICAgICB9CistCistICAgICAgICBpbXBsPCdhPiBjcmF0ZTo6aXRl cjo6UHJvZHVjdDwmJ2EgJGlkPiBmb3IgJGlkIHsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0g ICAgICAgICAgICBmbiBwcm9kdWN0PEk6IEl0ZXJhdG9yPEl0ZW0gPSAmJ2EgJGlkPj4oaXRlcjog SSkgLT4gJGlkIHsKKy0gICAgICAgICAgICAgICAgaXRlci5mb2xkKCRpZDo6c3BsYXQoMS4pLCB8 YSwgYnwgY3JhdGU6Om9wczo6TXVsOjptdWwoYSwgKmIpKQorLSAgICAgICAgICAgIH0KKy0gICAg ICAgIH0KKy0KKy0gICAgICAgIHRlc3RfaWYhIHsKKy0gICAgICAgICAgICAkdGVzdF90dDoKKy0g ICAgICAgICAgICBwYXN0ZTo6aXRlbSEgeworLSAgICAgICAgICAgICAgICAvLyBDb21wYXJpc29u cyB1c2UgaW50ZWdlciBjYXN0cyB3aXRoaW4gbWFudGlzc2FeMSByYW5nZS4KKy0gICAgICAgICAg ICAgICAgI1thbGxvdyhjbGlwcHk6OmZsb2F0X2NtcCldCistICAgICAgICAgICAgICAgIHB1YiBt b2QgWzwkaWQgX3JlZHVjdGlvbl9mbG9hdF9hcml0aD5dIHsKKy0gICAgICAgICAgICAgICAgICAg IHVzZSBzdXBlcjo6KjsKKy0gICAgICAgICAgICAgICAgICAgIGZuIGFsdGVybmF0aW5nKHg6IHVz aXplKSAtPiAkaWQgeworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgdiA9ICRpZDo6 c3BsYXQoMSBhcyAkZWxlbV90eSk7CistICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGkgaW4g MC4uJGlkOjpsYW5lcygpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgaSAlIHgg PT0gMCB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ID0gdi5yZXBsYWNlKGks IDIgYXMgJGVsZW1fdHkpOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CistICAgICAg ICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgICAgIHYKKy0gICAgICAg ICAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRh cmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAgICNbY2Zn X2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQorLSAgICAg ICAgICAgICAgICAgICAgZm4gc3VtKCkgeworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2 ID0gJGlkOjpzcGxhdCgwIGFzICRlbGVtX3R5KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBh c3NlcnRfZXEhKHYuc3VtKCksIDAgYXMgJGVsZW1fdHkpOworLSAgICAgICAgICAgICAgICAgICAg ICAgIGxldCB2ID0gJGlkOjpzcGxhdCgxIGFzICRlbGVtX3R5KTsKKy0gICAgICAgICAgICAgICAg ICAgICAgICBhc3NlcnRfZXEhKHYuc3VtKCksICRpZDo6bGFuZXMoKSBhcyAkZWxlbV90eSk7Cist ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHYgPSBhbHRlcm5hdGluZygyKTsKKy0gICAgICAg ICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKAorLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICB2LnN1bSgpLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAoJGlkOjpsYW5lcygpIC8g MiArICRpZDo6bGFuZXMoKSkgYXMgJGVsZW1fdHkKKy0gICAgICAgICAgICAgICAgICAgICAgICAp OworLSAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0 cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXQorLSAgICAgICAgICAgICAgICAg ICAgI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCld CistICAgICAgICAgICAgICAgICAgICBmbiBwcm9kdWN0KCkgeworLSAgICAgICAgICAgICAgICAg ICAgICAgIGxldCB2ID0gJGlkOjpzcGxhdCgwIGFzICRlbGVtX3R5KTsKKy0gICAgICAgICAgICAg ICAgICAgICAgICBhc3NlcnRfZXEhKHYucHJvZHVjdCgpLCAwIGFzICRlbGVtX3R5KTsKKy0gICAg ICAgICAgICAgICAgICAgICAgICBsZXQgdiA9ICRpZDo6c3BsYXQoMSBhcyAkZWxlbV90eSk7Cist ICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh2LnByb2R1Y3QoKSwgMSBhcyAkZWxl bV90eSk7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGYgPSBtYXRjaCAkaWQ6OmxhbmVz KCkgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA2NCA9PiAxNiwKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgMzIgPT4gOCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg MTYgPT4gNCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgXyA9PiAyLAorLSAgICAgICAg ICAgICAgICAgICAgICAgIH07CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHYgPSBhbHRl cm5hdGluZyhmKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKAorLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICB2LnByb2R1Y3QoKSwKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgKDJfdXNpemUucG93KCgkaWQ6OmxhbmVzKCkgLyBmKSBhcyB1MzIpCistICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBhcyAkZWxlbV90eSkKKy0gICAgICAgICAgICAgICAgICAg ICAgICApOworLSAgICAgICAgICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgICAgICAgICAg I1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXQorLSAgICAgICAg ICAgICAgICAgICAgI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRn ZW5fdGVzdCldCistICAgICAgICAgICAgICAgICAgICAjW2FsbG93KHVucmVhY2hhYmxlX2NvZGUp XQorLSAgICAgICAgICAgICAgICAgICAgZm4gc3VtX25hbigpIHsKKy0gICAgICAgICAgICAgICAg ICAgICAgICAvLyBGSVhNRTogaHR0cHM6Ly9idWdzLmxsdm0ub3JnL3Nob3dfYnVnLmNnaT9pZD0z NjczMgorLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0 LWxhbmctbnVyc2VyeS9wYWNrZWRfc2ltZC9pc3N1ZXMvNgorLSAgICAgICAgICAgICAgICAgICAg ICAgIHJldHVybjsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbjAgPSBjcmF0ZTo6 JGVsZW1fdHk6Ok5BTjsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdjAgPSAkaWQ6OnNw bGF0KC0zLjApOworLSAgICAgICAgICAgICAgICAgICAgICAgIGZvciBpIGluIDAuLiRpZDo6bGFu ZXMoKSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgdiA9IHYwLnJlcGxh Y2UoaSwgbjApOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBJZiB0aGUgdmVjdG9y IGNvbnRhaW5zIGEgTmFOIHRoZSByZXN1bHQgaXMgTmFOOgorLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICBhc3NlcnQhKAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdi5zdW0o KS5pc19uYW4oKSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJuYW4gYXQge30g PT4ge30gfCB7Oj99IiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGksCistICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2LnN1bSgpLAorLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgdgorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICApOworLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICBmb3IgaiBpbiAwLi5pIHsKKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHYgPSB2LnJlcGxhY2UoaiwgbjApOworLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgYXNzZXJ0ISh2LnN1bSgpLmlzX25hbigpKTsKKy0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAg ICAgICAgICAgICAgICBsZXQgdiA9ICRpZDo6c3BsYXQobjApOworLSAgICAgICAgICAgICAgICAg ICAgICAgIGFzc2VydCEodi5zdW0oKS5pc19uYW4oKSwgImFsbCBuYW5zIHwgezo/fSIsIHYpOwor LSAgICAgICAgICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0 cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXQorLSAgICAgICAgICAgICAgICAg ICAgI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCld CistICAgICAgICAgICAgICAgICAgICAjW2FsbG93KHVucmVhY2hhYmxlX2NvZGUpXQorLSAgICAg ICAgICAgICAgICAgICAgZm4gcHJvZHVjdF9uYW4oKSB7CistICAgICAgICAgICAgICAgICAgICAg ICAgLy8gRklYTUU6IGh0dHBzOi8vYnVncy5sbHZtLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzY3MzIK Ky0gICAgICAgICAgICAgICAgICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5n LW51cnNlcnkvcGFja2VkX3NpbWQvaXNzdWVzLzYKKy0gICAgICAgICAgICAgICAgICAgICAgICBy ZXR1cm47CistCistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG4wID0gY3JhdGU6OiRlbGVt X3R5OjpOQU47CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHYwID0gJGlkOjpzcGxhdCgt My4wKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBmb3IgaSBpbiAwLi4kaWQ6OmxhbmVzKCkg eworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IHYgPSB2MC5yZXBsYWNlKGks IG4wKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWYgdGhlIHZlY3RvciBjb250 YWlucyBhIE5hTiB0aGUgcmVzdWx0IGlzIE5hTjoKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgYXNzZXJ0ISgKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYucHJvZHVjdCgp LmlzX25hbigpLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm5hbiBhdCB7fSA9 PiB7fSB8IHs6P30iLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaSwKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYucHJvZHVjdCgpLAorLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgdgorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICApOworLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgaiBpbiAwLi5pIHsKKy0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHYgPSB2LnJlcGxhY2UoaiwgbjApOworLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgYXNzZXJ0ISh2LnByb2R1Y3QoKS5pc19uYW4oKSk7CistICAgICAg ICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgICAgICB9CistICAg ICAgICAgICAgICAgICAgICAgICAgbGV0IHYgPSAkaWQ6OnNwbGF0KG4wKTsKKy0gICAgICAgICAg ICAgICAgICAgICAgICBhc3NlcnQhKHYucHJvZHVjdCgpLmlzX25hbigpLCAiYWxsIG5hbnMgfCB7 Oj99Iiwgdik7CistICAgICAgICAgICAgICAgICAgICB9CistCistICAgICAgICAgICAgICAgICAg ICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldCistICAgICAg ICAgICAgICAgICAgICAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmlu ZGdlbl90ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAgICNbYWxsb3codW51c2VkLCBkZWFkX2Nv ZGUpXQorLSAgICAgICAgICAgICAgICAgICAgZm4gc3VtX3JvdW5kb2ZmKCkgeworLSAgICAgICAg ICAgICAgICAgICAgICAgIC8vIFBlcmZvcm1zIGEgdHJlZS1yZWR1Y3Rpb24KKy0gICAgICAgICAg ICAgICAgICAgICAgICBmbiB0cmVlX3JlZHVjZV9zdW0oYTogJlskZWxlbV90eV0pIC0+ICRlbGVt X3R5IHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0ISghYS5pc19lbXB0eSgp KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgYS5sZW4oKSA9PSAxIHsKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFbMF0KKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgfSBlbHNlIGlmIGEubGVuKCkgPT0gMiB7CistICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBhWzBdICsgYVsxXQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Ug eworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG1pZCA9IGEubGVuKCkgLyAy OworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IChsZWZ0LCByaWdodCkgPSBh LnNwbGl0X2F0KG1pZCk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmVlX3Jl ZHVjZV9zdW0obGVmdCkgKyB0cmVlX3JlZHVjZV9zdW0ocmlnaHQpCistICAgICAgICAgICAgICAg ICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgICAgICB9CistCistICAgICAgICAg ICAgICAgICAgICAgICAgbGV0IG11dCBzdGFydCA9IGNyYXRlOjokZWxlbV90eTo6RVBTSUxPTjsK Ky0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IHNjYWxhcl9yZWR1Y3Rpb24gPSAwLiBh cyAkZWxlbV90eTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IHYgPSAkaWQ6 OnNwbGF0KDAuIGFzICRlbGVtX3R5KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBmb3IgaSBp biAwLi4kaWQ6OmxhbmVzKCkgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgYyA9 IGlmIGkgJSAyID09IDAgeyAxZTMgfSBlbHNlIHsgLTEuIH07CistICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHN0YXJ0ICo9IDo6Y29yZTo6JGVsZW1fdHk6OmNvbnN0czo6UEkgKiBjOworLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzY2FsYXJfcmVkdWN0aW9uICs9IHN0YXJ0OworLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICB2ID0gdi5yZXBsYWNlKGksIHN0YXJ0KTsKKy0gICAg ICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHNpbWRf cmVkdWN0aW9uID0gdi5zdW0oKTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0 IGEgPSBbMC4gYXMgJGVsZW1fdHk7ICRpZDo6bGFuZXMoKV07CistICAgICAgICAgICAgICAgICAg ICAgICAgdi53cml0ZV90b19zbGljZV91bmFsaWduZWQoJm11dCBhKTsKKy0gICAgICAgICAgICAg ICAgICAgICAgICBsZXQgdHJlZV9yZWR1Y3Rpb24gPSB0cmVlX3JlZHVjZV9zdW0oJmEpOworLQor LSAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRvbGVyYXRlIDEgVUxQIGRpZmZlcmVuY2U6Cist ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHJlZF9iaXRzID0gc2ltZF9yZWR1Y3Rpb24udG9f Yml0cygpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0cmVlX2JpdHMgPSB0cmVlX3Jl ZHVjdGlvbi50b19iaXRzKCk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0ISgKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgcmVkX2JpdHMgPiB0cmVlX2JpdHMgeworLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVkX2JpdHMgLSB0cmVlX2JpdHMKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHRyZWVfYml0cyAtIHJlZF9iaXRzCistICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH0gPCAyLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAidmVjdG9yOiB7Oj99IHwg c2ltZF9yZWR1Y3Rpb246IHs6P30gfCBcCistdHJlZV9yZWR1Y3Rpb246IHt9IHwgc2NhbGFyX3Jl ZHVjdGlvbjoge30iLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2LAorLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzaW1kX3JlZHVjdGlvbiwKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgdHJlZV9yZWR1Y3Rpb24sCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNj YWxhcl9yZWR1Y3Rpb24KKy0gICAgICAgICAgICAgICAgICAgICAgICApOworLSAgICAgICAgICAg ICAgICAgICAgfQorLQorLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0 X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXQorLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0 cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCistICAgICAgICAg ICAgICAgICAgICAjW2FsbG93KHVudXNlZCwgZGVhZF9jb2RlKV0KKy0gICAgICAgICAgICAgICAg ICAgIGZuIHByb2R1Y3Rfcm91bmRvZmYoKSB7CistICAgICAgICAgICAgICAgICAgICAgICAgdXNl IDo6Y29yZTo6Y29udmVydDo6VHJ5SW50bzsKKy0gICAgICAgICAgICAgICAgICAgICAgICAvLyBQ ZXJmb3JtcyBhIHRyZWUtcmVkdWN0aW9uCistICAgICAgICAgICAgICAgICAgICAgICAgZm4gdHJl ZV9yZWR1Y2VfcHJvZHVjdChhOiAmWyRlbGVtX3R5XSkgLT4gJGVsZW1fdHkgeworLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKCFhLmlzX2VtcHR5KCkpOworLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICBpZiBhLmxlbigpID09IDEgeworLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgYVswXQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYg YS5sZW4oKSA9PSAyIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFbMF0gKiBh WzFdCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CistICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBsZXQgbWlkID0gYS5sZW4oKSAvIDI7CistICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBsZXQgKGxlZnQsIHJpZ2h0KSA9IGEuc3BsaXRfYXQobWlkKTsK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyZWVfcmVkdWNlX3Byb2R1Y3QobGVm dCkKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIHRyZWVfcmVkdWNlX3By b2R1Y3QocmlnaHQpCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAg ICAgICAgICAgICAgICB9CistCistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBzdGFy dCA9IGNyYXRlOjokZWxlbV90eTo6RVBTSUxPTjsKKy0gICAgICAgICAgICAgICAgICAgICAgICBs ZXQgbXV0IHNjYWxhcl9yZWR1Y3Rpb24gPSAxLiBhcyAkZWxlbV90eTsKKy0KKy0gICAgICAgICAg ICAgICAgICAgICAgICBsZXQgbXV0IHYgPSAkaWQ6OnNwbGF0KDAuIGFzICRlbGVtX3R5KTsKKy0g ICAgICAgICAgICAgICAgICAgICAgICBmb3IgaSBpbiAwLi4kaWQ6OmxhbmVzKCkgeworLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICBsZXQgYyA9IGlmIGkgJSAyID09IDAgeyAxZTMgfSBlbHNl IHsgLTEuIH07CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0ICo9IDo6Y29yZTo6 JGVsZW1fdHk6OmNvbnN0czo6UEkgKiBjOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBz Y2FsYXJfcmVkdWN0aW9uICo9IHN0YXJ0OworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2 ID0gdi5yZXBsYWNlKGksIHN0YXJ0KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICB9CistICAg ICAgICAgICAgICAgICAgICAgICAgbGV0IHNpbWRfcmVkdWN0aW9uID0gdi5wcm9kdWN0KCk7Cist CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBhID0gWzAuIGFzICRlbGVtX3R5OyAk aWQ6OmxhbmVzKCldOworLSAgICAgICAgICAgICAgICAgICAgICAgIHYud3JpdGVfdG9fc2xpY2Vf dW5hbGlnbmVkKCZtdXQgYSk7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRyZWVfcmVk dWN0aW9uID0gdHJlZV9yZWR1Y2VfcHJvZHVjdCgmYSk7CistCistICAgICAgICAgICAgICAgICAg ICAgICAgLy8gRklYTUU6IFRvbyBpbXByZWNpc2UsIGV2ZW4gb25seSBmb3IgcHJvZHVjdChmMzJ4 OCkuCistICAgICAgICAgICAgICAgICAgICAgICAgLy8gRmlndXJlIG91dCBob3cgdG8gbmFycm93 IHRoaXMgZG93bi4KKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdWxwX2xpbWl0ID0gJGlk OjpsYW5lcygpIC8gMjsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgcmVkX2JpdHMgPSBz aW1kX3JlZHVjdGlvbi50b19iaXRzKCk7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRy ZWVfYml0cyA9IHRyZWVfcmVkdWN0aW9uLnRvX2JpdHMoKTsKKy0gICAgICAgICAgICAgICAgICAg ICAgICBhc3NlcnQhKAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiByZWRfYml0cyA+ IHRyZWVfYml0cyB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWRfYml0cyAt IHRyZWVfYml0cworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJlZV9iaXRzIC0gcmVkX2JpdHMKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgfSA8IHVscF9saW1pdC50cnlfaW50bygpLnVud3JhcCgpLAor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAidmVjdG9yOiB7Oj99IHwgc2ltZF9yZWR1Y3Rp b246IHs6P30gfCBcCistdHJlZV9yZWR1Y3Rpb246IHt9IHwgc2NhbGFyX3JlZHVjdGlvbjoge30i LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2LAorLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzaW1kX3JlZHVjdGlvbiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJl ZV9yZWR1Y3Rpb24sCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjYWxhcl9yZWR1Y3Rp b24KKy0gICAgICAgICAgICAgICAgICAgICAgICApOworLSAgICAgICAgICAgICAgICAgICAgfQor LSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICB9Owor LX0KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvcmVk dWN0aW9ucy9pbnRlZ2VyX2FyaXRobWV0aWMucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9z aW1kL3NyYy9hcGkvcmVkdWN0aW9ucy9pbnRlZ2VyX2FyaXRobWV0aWMucnMKK2RlbGV0ZWQgZmls ZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBp L3JlZHVjdGlvbnMvaW50ZWdlcl9hcml0aG1ldGljLnJzCisrKysgL2Rldi9udWxsCitAQCAtMSwx OTMgKzAsMCBAQAorLS8vISBJbXBsZW1lbnRzIHBvcnRhYmxlIGhvcml6b250YWwgaW50ZWdlciB2 ZWN0b3IgYXJpdGhtZXRpYyByZWR1Y3Rpb25zLgorLQorLW1hY3JvX3J1bGVzISBpbXBsX3JlZHVj dGlvbl9pbnRlZ2VyX2FyaXRobWV0aWMgeworLSAgICAoWyRlbGVtX3R5OmlkZW50OyAkZWxlbV9j b3VudDpleHByXTogJGlkOmlkZW50IHwgJGllbGVtX3R5OmlkZW50CistICAgICB8ICR0ZXN0X3R0 OnR0KSA9PiB7CistICAgICAgICBpbXBsICRpZCB7CistICAgICAgICAgICAgLy8vIEhvcml6b250 YWwgd3JhcHBpbmcgc3VtIG9mIHRoZSB2ZWN0b3IgZWxlbWVudHMuCistICAgICAgICAgICAgLy8v CistICAgICAgICAgICAgLy8vIFRoZSBpbnRyaW5zaWMgcGVyZm9ybXMgYSB0cmVlLXJlZHVjdGlv biBvZiB0aGUgdmVjdG9yIGVsZW1lbnRzLgorLSAgICAgICAgICAgIC8vLyBUaGF0IGlzLCBmb3Ig YW4gOCBlbGVtZW50IHZlY3RvcjoKKy0gICAgICAgICAgICAvLy8KKy0gICAgICAgICAgICAvLy8g PiAoKHgwICsgeDEpICsgKHgyICsgeDMpKSArICgoeDQgKyB4NSkgKyAoeDYgKyB4NykpCistICAg ICAgICAgICAgLy8vCistICAgICAgICAgICAgLy8vIElmIGFuIG9wZXJhdGlvbiBvdmVyZmxvd3Mg aXQgcmV0dXJucyB0aGUgbWF0aGVtYXRpY2FsIHJlc3VsdAorLSAgICAgICAgICAgIC8vLyBtb2R1 bG8gYDJebmAgd2hlcmUgYG5gIGlzIHRoZSBudW1iZXIgb2YgdGltZXMgaXQgb3ZlcmZsb3dzLgor LSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIHB1YiBmbiB3cmFwcGluZ19zdW0o c2VsZikgLT4gJGVsZW1fdHkgeworLSAgICAgICAgICAgICAgICAjW2NmZyhub3QodGFyZ2V0X2Fy Y2ggPSAiYWFyY2g2NCIpKV0KKy0gICAgICAgICAgICAgICAgeworLSAgICAgICAgICAgICAgICAg ICAgdXNlIGNyYXRlOjpsbHZtOjpzaW1kX3JlZHVjZV9hZGRfb3JkZXJlZDsKKy0gICAgICAgICAg ICAgICAgICAgIGxldCB2OiAkaWVsZW1fdHkgPSB1bnNhZmUgeyBzaW1kX3JlZHVjZV9hZGRfb3Jk ZXJlZChzZWxmLjAsIDAgYXMgJGllbGVtX3R5KSB9OworLSAgICAgICAgICAgICAgICAgICAgdiBh cyAkZWxlbV90eQorLSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICNbY2ZnKHRh cmdldF9hcmNoID0gImFhcmNoNjQiKV0KKy0gICAgICAgICAgICAgICAgeworLSAgICAgICAgICAg ICAgICAgICAgLy8gRklYTUU6IGJyb2tlbiBvbiBBQXJjaDY0CistICAgICAgICAgICAgICAgICAg ICAvLyBodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nLW51cnNlcnkvcGFja2VkX3NpbWQvaXNz dWVzLzE1CistICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IHggPSBzZWxmLmV4dHJhY3QoMCkg YXMgJGVsZW1fdHk7CistICAgICAgICAgICAgICAgICAgICBmb3IgaSBpbiAxLi4kaWQ6OmxhbmVz KCkgeworLSAgICAgICAgICAgICAgICAgICAgICAgIHggPSB4LndyYXBwaW5nX2FkZChzZWxmLmV4 dHJhY3QoaSkgYXMgJGVsZW1fdHkpOworLSAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAg ICAgICAgICAgICAgeAorLSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgfQorLQorLSAg ICAgICAgICAgIC8vLyBIb3Jpem9udGFsIHdyYXBwaW5nIHByb2R1Y3Qgb2YgdGhlIHZlY3RvciBl bGVtZW50cy4KKy0gICAgICAgICAgICAvLy8KKy0gICAgICAgICAgICAvLy8gVGhlIGludHJpbnNp YyBwZXJmb3JtcyBhIHRyZWUtcmVkdWN0aW9uIG9mIHRoZSB2ZWN0b3IgZWxlbWVudHMuCistICAg ICAgICAgICAgLy8vIFRoYXQgaXMsIGZvciBhbiA4IGVsZW1lbnQgdmVjdG9yOgorLSAgICAgICAg ICAgIC8vLworLSAgICAgICAgICAgIC8vLyA+ICgoeDAgKiB4MSkgKiAoeDIgKiB4MykpICogKCh4 NCAqIHg1KSAqICh4NiAqIHg3KSkKKy0gICAgICAgICAgICAvLy8KKy0gICAgICAgICAgICAvLy8g SWYgYW4gb3BlcmF0aW9uIG92ZXJmbG93cyBpdCByZXR1cm5zIHRoZSBtYXRoZW1hdGljYWwgcmVz dWx0CistICAgICAgICAgICAgLy8vIG1vZHVsbyBgMl5uYCB3aGVyZSBgbmAgaXMgdGhlIG51bWJl ciBvZiB0aW1lcyBpdCBvdmVyZmxvd3MuCistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAg ICAgICAgcHViIGZuIHdyYXBwaW5nX3Byb2R1Y3Qoc2VsZikgLT4gJGVsZW1fdHkgeworLSAgICAg ICAgICAgICAgICAjW2NmZyhub3QodGFyZ2V0X2FyY2ggPSAiYWFyY2g2NCIpKV0KKy0gICAgICAg ICAgICAgICAgeworLSAgICAgICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpsbHZtOjpzaW1kX3Jl ZHVjZV9tdWxfb3JkZXJlZDsKKy0gICAgICAgICAgICAgICAgICAgIGxldCB2OiAkaWVsZW1fdHkg PSB1bnNhZmUgeyBzaW1kX3JlZHVjZV9tdWxfb3JkZXJlZChzZWxmLjAsIDEgYXMgJGllbGVtX3R5 KSB9OworLSAgICAgICAgICAgICAgICAgICAgdiBhcyAkZWxlbV90eQorLSAgICAgICAgICAgICAg ICB9CistICAgICAgICAgICAgICAgICNbY2ZnKHRhcmdldF9hcmNoID0gImFhcmNoNjQiKV0KKy0g ICAgICAgICAgICAgICAgeworLSAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IGJyb2tlbiBv biBBQXJjaDY0CistICAgICAgICAgICAgICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vcnVz dC1sYW5nLW51cnNlcnkvcGFja2VkX3NpbWQvaXNzdWVzLzE1CistICAgICAgICAgICAgICAgICAg ICBsZXQgbXV0IHggPSBzZWxmLmV4dHJhY3QoMCkgYXMgJGVsZW1fdHk7CistICAgICAgICAgICAg ICAgICAgICBmb3IgaSBpbiAxLi4kaWQ6OmxhbmVzKCkgeworLSAgICAgICAgICAgICAgICAgICAg ICAgIHggPSB4LndyYXBwaW5nX211bChzZWxmLmV4dHJhY3QoaSkgYXMgJGVsZW1fdHkpOworLSAg ICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgeAorLSAgICAgICAgICAg ICAgICB9CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLQorLSAgICAgICAgaW1wbCBjcmF0 ZTo6aXRlcjo6U3VtIGZvciAkaWQgeworLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAg ICAgIGZuIHN1bTxJOiBJdGVyYXRvcjxJdGVtID0gJGlkPj4oaXRlcjogSSkgLT4gJGlkIHsKKy0g ICAgICAgICAgICAgICAgaXRlci5mb2xkKCRpZDo6c3BsYXQoMCksIGNyYXRlOjpvcHM6OkFkZDo6 YWRkKQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0KKy0gICAgICAgIGltcGwgY3JhdGU6 Oml0ZXI6OlByb2R1Y3QgZm9yICRpZCB7CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAg ICAgICAgZm4gcHJvZHVjdDxJOiBJdGVyYXRvcjxJdGVtID0gJGlkPj4oaXRlcjogSSkgLT4gJGlk IHsKKy0gICAgICAgICAgICAgICAgaXRlci5mb2xkKCRpZDo6c3BsYXQoMSksIGNyYXRlOjpvcHM6 Ok11bDo6bXVsKQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0KKy0gICAgICAgIGltcGw8 J2E+IGNyYXRlOjppdGVyOjpTdW08JidhICRpZD4gZm9yICRpZCB7CistICAgICAgICAgICAgI1tp bmxpbmVdCistICAgICAgICAgICAgZm4gc3VtPEk6IEl0ZXJhdG9yPEl0ZW0gPSAmJ2EgJGlkPj4o aXRlcjogSSkgLT4gJGlkIHsKKy0gICAgICAgICAgICAgICAgaXRlci5mb2xkKCRpZDo6c3BsYXQo MCksIHxhLCBifCBjcmF0ZTo6b3BzOjpBZGQ6OmFkZChhLCAqYikpCistICAgICAgICAgICAgfQor LSAgICAgICAgfQorLQorLSAgICAgICAgaW1wbDwnYT4gY3JhdGU6Oml0ZXI6OlByb2R1Y3Q8Jidh ICRpZD4gZm9yICRpZCB7CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgZm4g cHJvZHVjdDxJOiBJdGVyYXRvcjxJdGVtID0gJidhICRpZD4+KGl0ZXI6IEkpIC0+ICRpZCB7Cist ICAgICAgICAgICAgICAgIGl0ZXIuZm9sZCgkaWQ6OnNwbGF0KDEpLCB8YSwgYnwgY3JhdGU6Om9w czo6TXVsOjptdWwoYSwgKmIpKQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0KKy0gICAg ICAgIHRlc3RfaWYhIHsKKy0gICAgICAgICAgICAkdGVzdF90dDoKKy0gICAgICAgICAgICBwYXN0 ZTo6aXRlbSEgeworLSAgICAgICAgICAgICAgICBwdWIgbW9kIFs8JGlkIF9yZWR1Y3Rpb25faW50 X2FyaXRoPl0geworLSAgICAgICAgICAgICAgICAgICAgdXNlIHN1cGVyOjoqOworLQorLSAgICAg ICAgICAgICAgICAgICAgZm4gYWx0ZXJuYXRpbmcoeDogdXNpemUpIC0+ICRpZCB7CistICAgICAg ICAgICAgICAgICAgICAgICAgbGV0IG11dCB2ID0gJGlkOjpzcGxhdCgxIGFzICRlbGVtX3R5KTsK Ky0gICAgICAgICAgICAgICAgICAgICAgICBmb3IgaSBpbiAwLi4kaWQ6OmxhbmVzKCkgeworLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBpICUgeCA9PSAwIHsKKy0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHYgPSB2LnJlcGxhY2UoaSwgMiBhcyAkZWxlbV90eSk7CistICAg ICAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgICAgICB9Cist ICAgICAgICAgICAgICAgICAgICAgICAgdgorLSAgICAgICAgICAgICAgICAgICAgfQorLQorLSAg ICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiks IHRlc3QpXQorLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3 YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCistICAgICAgICAgICAgICAgICAgICBmbiB3cmFw cGluZ19zdW0oKSB7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHYgPSAkaWQ6OnNwbGF0 KDAgYXMgJGVsZW1fdHkpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodi53 cmFwcGluZ19zdW0oKSwgMCBhcyAkZWxlbV90eSk7CistICAgICAgICAgICAgICAgICAgICAgICAg bGV0IHYgPSAkaWQ6OnNwbGF0KDEgYXMgJGVsZW1fdHkpOworLSAgICAgICAgICAgICAgICAgICAg ICAgIGFzc2VydF9lcSEodi53cmFwcGluZ19zdW0oKSwgJGlkOjpsYW5lcygpIGFzICRlbGVtX3R5 KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdiA9IGFsdGVybmF0aW5nKDIpOworLSAg ICAgICAgICAgICAgICAgICAgICAgIGlmICRpZDo6bGFuZXMoKSA+IDEgeworLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKAorLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdi53cmFwcGluZ19zdW0oKSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICgkaWQ6OmxhbmVzKCkgLyAyICsgJGlkOjpsYW5lcygpKSBhcyAkZWxlbV90eQorLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICApOworLSAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7 CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoCistICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB2LndyYXBwaW5nX3N1bSgpLAorLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgMiBhcyAkZWxlbV90eQorLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICApOworLSAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgIH0K Ky0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20z MiIpLCB0ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2gg PSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQorLSAgICAgICAgICAgICAgICAgICAgZm4g d3JhcHBpbmdfc3VtX292ZXJmbG93KCkgeworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBz dGFydCA9ICRlbGVtX3R5OjptYXhfdmFsdWUoKQorLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAtICgkaWQ6OmxhbmVzKCkgYXMgJGVsZW1fdHkgLyAyKTsKKy0KKy0gICAgICAgICAgICAgICAg ICAgICAgICBsZXQgdiA9ICRpZDo6c3BsYXQoc3RhcnQgYXMgJGVsZW1fdHkpOworLSAgICAgICAg ICAgICAgICAgICAgICAgIGxldCB2d3JhcHBpbmdfc3VtID0gdi53cmFwcGluZ19zdW0oKTsKKy0K Ky0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IHdyYXBwaW5nX3N1bSA9IHN0YXJ0Owor LSAgICAgICAgICAgICAgICAgICAgICAgIGZvciBfIGluIDEuLiRpZDo6bGFuZXMoKSB7CistICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHdyYXBwaW5nX3N1bSA9IHdyYXBwaW5nX3N1bS53cmFw cGluZ19hZGQoc3RhcnQpOworLSAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAg ICAgICAgICAgICAgICBhc3NlcnRfZXEhKHdyYXBwaW5nX3N1bSwgdndyYXBwaW5nX3N1bSwgInYg PSB7Oj99Iiwgdik7CistICAgICAgICAgICAgICAgICAgICB9CistCistICAgICAgICAgICAgICAg ICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldCistICAg ICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21f YmluZGdlbl90ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAgIGZuIHdyYXBwaW5nX3Byb2R1Y3Qo KSB7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHYgPSAkaWQ6OnNwbGF0KDAgYXMgJGVs ZW1fdHkpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodi53cmFwcGluZ19w cm9kdWN0KCksIDAgYXMgJGVsZW1fdHkpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2 ID0gJGlkOjpzcGxhdCgxIGFzICRlbGVtX3R5KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBh c3NlcnRfZXEhKHYud3JhcHBpbmdfcHJvZHVjdCgpLCAxIGFzICRlbGVtX3R5KTsKKy0gICAgICAg ICAgICAgICAgICAgICAgICBsZXQgZiA9IG1hdGNoICRpZDo6bGFuZXMoKSB7CistICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDY0ID0+IDE2LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAzMiA9PiA4LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAxNiA9PiA0LAorLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICBfID0+IDIsCistICAgICAgICAgICAgICAgICAgICAgICAg fTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdiA9IGFsdGVybmF0aW5nKGYpOworLSAg ICAgICAgICAgICAgICAgICAgICAgIGlmICRpZDo6bGFuZXMoKSA+IDEgeworLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKAorLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdi53cmFwcGluZ19wcm9kdWN0KCksCistICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAoMl91c2l6ZS5wb3coKCRpZDo6bGFuZXMoKSAvIGYpIGFzIHUzMikKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBhcyAkZWxlbV90eSkKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKAorLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgdi53cmFwcGluZ19wcm9kdWN0KCksCistICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAyIGFzICRlbGVtX3R5CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7Cist ICAgICAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgfQorLQorLSAg ICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiks IHRlc3QpXQorLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3 YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCistICAgICAgICAgICAgICAgICAgICBmbiB3cmFw cGluZ19wcm9kdWN0X292ZXJmbG93KCkgeworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBz dGFydCA9ICRlbGVtX3R5OjptYXhfdmFsdWUoKQorLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAtICgkaWQ6OmxhbmVzKCkgYXMgJGVsZW1fdHkgLyAyKTsKKy0KKy0gICAgICAgICAgICAgICAg ICAgICAgICBsZXQgdiA9ICRpZDo6c3BsYXQoc3RhcnQgYXMgJGVsZW1fdHkpOworLSAgICAgICAg ICAgICAgICAgICAgICAgIGxldCB2bXVsID0gdi53cmFwcGluZ19wcm9kdWN0KCk7CistCistICAg ICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBtdWwgPSBzdGFydDsKKy0gICAgICAgICAgICAg ICAgICAgICAgICBmb3IgXyBpbiAxLi4kaWQ6OmxhbmVzKCkgeworLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICBtdWwgPSBtdWwud3JhcHBpbmdfbXVsKHN0YXJ0KTsKKy0gICAgICAgICAgICAg ICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShtdWwsIHZt dWwsICJ2ID0gezo/fSIsIHYpOworLSAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAg ICAgICB9CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICB9OworLX0KK2RpZmYgLS1n aXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvcmVkdWN0aW9ucy9tYXNr LnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL3JlZHVjdGlvbnMvbWFz ay5ycworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3Bh Y2tlZF9zaW1kL3NyYy9hcGkvcmVkdWN0aW9ucy9tYXNrLnJzCisrKysgL2Rldi9udWxsCitAQCAt MSw4OSArMCwwIEBACistLy8hIEltcGxlbWVudHMgcG9ydGFibGUgaG9yaXpvbnRhbCBtYXNrIHJl ZHVjdGlvbnMuCistCistbWFjcm9fcnVsZXMhIGltcGxfcmVkdWN0aW9uX21hc2sgeworLSAgICAo WyRlbGVtX3R5OmlkZW50OyAkZWxlbV9jb3VudDpleHByXTogJGlkOmlkZW50IHwgJHRlc3RfdHQ6 dHQpID0+IHsKKy0gICAgICAgIGltcGwgJGlkIHsKKy0gICAgICAgICAgICAvLy8gQXJlIGBhbGxg IHZlY3RvciBsYW5lcyBgdHJ1ZWA/CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAg ICAgcHViIGZuIGFsbChzZWxmKSAtPiBib29sIHsKKy0gICAgICAgICAgICAgICAgdW5zYWZlIHsg Y3JhdGU6OmNvZGVnZW46OnJlZHVjdGlvbnM6Om1hc2s6OkFsbDo6YWxsKHNlbGYpIH0KKy0gICAg ICAgICAgICB9CistICAgICAgICAgICAgLy8vIElzIGBhbnlgIHZlY3RvciBsYW5lIGB0cnVlYD8K Ky0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBwdWIgZm4gYW55KHNlbGYpIC0+ IGJvb2wgeworLSAgICAgICAgICAgICAgICB1bnNhZmUgeyBjcmF0ZTo6Y29kZWdlbjo6cmVkdWN0 aW9uczo6bWFzazo6QW55Ojphbnkoc2VsZikgfQorLSAgICAgICAgICAgIH0KKy0gICAgICAgICAg ICAvLy8gQXJlIGBhbGxgIHZlY3RvciBsYW5lcyBgZmFsc2VgPworLSAgICAgICAgICAgICNbaW5s aW5lXQorLSAgICAgICAgICAgIHB1YiBmbiBub25lKHNlbGYpIC0+IGJvb2wgeworLSAgICAgICAg ICAgICAgICAhc2VsZi5hbnkoKQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0KKy0gICAg ICAgIHRlc3RfaWYhIHsKKy0gICAgICAgICAgICAkdGVzdF90dDoKKy0gICAgICAgICAgICBwYXN0 ZTo6aXRlbSEgeworLSAgICAgICAgICAgICAgICBwdWIgbW9kIFs8JGlkIF9yZWR1Y3Rpb24+XSB7 CistICAgICAgICAgICAgICAgICAgICB1c2Ugc3VwZXI6Oio7CistICAgICAgICAgICAgICAgICAg ICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldCistICAgICAg ICAgICAgICAgICAgICAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmlu ZGdlbl90ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAgIGZuIGFsbCgpIHsKKy0gICAgICAgICAg ICAgICAgICAgICAgICBsZXQgYSA9ICRpZDo6c3BsYXQodHJ1ZSk7CistICAgICAgICAgICAgICAg ICAgICAgICAgYXNzZXJ0IShhLmFsbCgpKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQg YSA9ICRpZDo6c3BsYXQoZmFsc2UpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCEo IWEuYWxsKCkpOworLQorLSAgICAgICAgICAgICAgICAgICAgICAgIGlmICRpZDo6bGFuZXMoKSA+ IDEgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgaSBpbiAwLi4kaWQ6OmxhbmVz KCkgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBhID0gJGlkOjpz cGxhdCh0cnVlKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGEgPSBhLnJlcGxh Y2UoaSwgZmFsc2UpOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0ISgh YS5hbGwoKSk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IGEgPSAk aWQ6OnNwbGF0KGZhbHNlKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGEgPSBh LnJlcGxhY2UoaSwgdHJ1ZSk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3Nl cnQhKCFhLmFsbCgpKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAg ICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAg ICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0KKy0g ICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2Fz bV9iaW5kZ2VuX3Rlc3QpXQorLSAgICAgICAgICAgICAgICAgICAgZm4gYW55KCkgeworLSAgICAg ICAgICAgICAgICAgICAgICAgIGxldCBhID0gJGlkOjpzcGxhdCh0cnVlKTsKKy0gICAgICAgICAg ICAgICAgICAgICAgICBhc3NlcnQhKGEuYW55KCkpOworLSAgICAgICAgICAgICAgICAgICAgICAg IGxldCBhID0gJGlkOjpzcGxhdChmYWxzZSk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNz ZXJ0ISghYS5hbnkoKSk7CistCistICAgICAgICAgICAgICAgICAgICAgICAgaWYgJGlkOjpsYW5l cygpID4gMSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciBpIGluIDAuLiRpZDo6 bGFuZXMoKSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IGEgPSAk aWQ6OnNwbGF0KHRydWUpOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYSA9IGEu cmVwbGFjZShpLCBmYWxzZSk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3Nl cnQhKGEuYW55KCkpOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBh ID0gJGlkOjpzcGxhdChmYWxzZSk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBh ID0gYS5yZXBsYWNlKGksIHRydWUpOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg YXNzZXJ0IShhLmFueSgpKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorLSAgICAg ICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAg ICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0K Ky0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwg d2FzbV9iaW5kZ2VuX3Rlc3QpXQorLSAgICAgICAgICAgICAgICAgICAgZm4gbm9uZSgpIHsKKy0g ICAgICAgICAgICAgICAgICAgICAgICBsZXQgYSA9ICRpZDo6c3BsYXQodHJ1ZSk7CistICAgICAg ICAgICAgICAgICAgICAgICAgYXNzZXJ0ISghYS5ub25lKCkpOworLSAgICAgICAgICAgICAgICAg ICAgICAgIGxldCBhID0gJGlkOjpzcGxhdChmYWxzZSk7CistICAgICAgICAgICAgICAgICAgICAg ICAgYXNzZXJ0IShhLm5vbmUoKSk7CistCistICAgICAgICAgICAgICAgICAgICAgICAgaWYgJGlk OjpsYW5lcygpID4gMSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciBpIGluIDAu LiRpZDo6bGFuZXMoKSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0 IGEgPSAkaWQ6OnNwbGF0KHRydWUpOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg YSA9IGEucmVwbGFjZShpLCBmYWxzZSk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBhc3NlcnQhKCFhLm5vbmUoKSk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBs ZXQgbXV0IGEgPSAkaWQ6OnNwbGF0KGZhbHNlKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGEgPSBhLnJlcGxhY2UoaSwgdHJ1ZSk7CistICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBhc3NlcnQhKCFhLm5vbmUoKSk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0KKy0gICAgICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICB9Cist ICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgIH07Cist fQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9yZWR1 Y3Rpb25zL21pbl9tYXgucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkv cmVkdWN0aW9ucy9taW5fbWF4LnJzCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3Ro aXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9yZWR1Y3Rpb25zL21pbl9tYXgucnMK KysrKyAvZGV2L251bGwKK0BAIC0xLDM2MCArMCwwIEBACistLy8hIEltcGxlbWVudHMgcG9ydGFi bGUgaG9yaXpvbnRhbCB2ZWN0b3IgbWluL21heCByZWR1Y3Rpb25zLgorLQorLW1hY3JvX3J1bGVz ISBpbXBsX3JlZHVjdGlvbl9taW5fbWF4IHsKKy0gICAgKFskZWxlbV90eTppZGVudDsgJGVsZW1f Y291bnQ6ZXhwcl06ICRpZDppZGVudAorLSAgICAgfCAkaWVsZW1fdHk6aWRlbnQgfCAkdGVzdF90 dDp0dCkgPT4geworLSAgICAgICAgaW1wbCAkaWQgeworLSAgICAgICAgICAgIC8vLyBMYXJnZXN0 IHZlY3RvciBlbGVtZW50IHZhbHVlLgorLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAg ICAgIHB1YiBmbiBtYXhfZWxlbWVudChzZWxmKSAtPiAkZWxlbV90eSB7CistICAgICAgICAgICAg ICAgICNbY2ZnKG5vdChhbnkoCistICAgICAgICAgICAgICAgICAgICB0YXJnZXRfYXJjaCA9ICJh YXJjaDY0IiwKKy0gICAgICAgICAgICAgICAgICAgIHRhcmdldF9hcmNoID0gImFybSIsCistICAg ICAgICAgICAgICAgICAgICB0YXJnZXRfYXJjaCA9ICJwb3dlcnBjNjQiLAorLSAgICAgICAgICAg ICAgICAgICAgdGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwKKy0gICAgICAgICAgICAgICAgKSkpXQor LSAgICAgICAgICAgICAgICB7CistICAgICAgICAgICAgICAgICAgICB1c2UgY3JhdGU6Omxsdm06 OnNpbWRfcmVkdWNlX21heDsKKy0gICAgICAgICAgICAgICAgICAgIGxldCB2OiAkaWVsZW1fdHkg PSB1bnNhZmUgeyBzaW1kX3JlZHVjZV9tYXgoc2VsZi4wKSB9OworLSAgICAgICAgICAgICAgICAg ICAgdiBhcyAkZWxlbV90eQorLSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICNb Y2ZnKGFueSgKKy0gICAgICAgICAgICAgICAgICAgIHRhcmdldF9hcmNoID0gImFhcmNoNjQiLAor LSAgICAgICAgICAgICAgICAgICAgdGFyZ2V0X2FyY2ggPSAiYXJtIiwKKy0gICAgICAgICAgICAg ICAgICAgIHRhcmdldF9hcmNoID0gInBvd2VycGM2NCIsCistICAgICAgICAgICAgICAgICAgICB0 YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLAorLSAgICAgICAgICAgICAgICApKV0KKy0gICAgICAgICAg ICAgICAgeworLSAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IGJyb2tlbiBvbiBBQXJjaDY0 CistICAgICAgICAgICAgICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nLW51 cnNlcnkvcGFja2VkX3NpbWQvaXNzdWVzLzE1CistICAgICAgICAgICAgICAgICAgICAvLyBGSVhN RTogYnJva2VuIG9uIFdBU00zMgorLSAgICAgICAgICAgICAgICAgICAgLy8gaHR0cHM6Ly9naXRo dWIuY29tL3J1c3QtbGFuZy1udXJzZXJ5L3BhY2tlZF9zaW1kL2lzc3Vlcy85MQorLSAgICAgICAg ICAgICAgICAgICAgbGV0IG11dCB4ID0gc2VsZi5leHRyYWN0KDApOworLSAgICAgICAgICAgICAg ICAgICAgZm9yIGkgaW4gMS4uJGlkOjpsYW5lcygpIHsKKy0gICAgICAgICAgICAgICAgICAgICAg ICB4ID0geC5tYXgoc2VsZi5leHRyYWN0KGkpKTsKKy0gICAgICAgICAgICAgICAgICAgIH0KKy0g ICAgICAgICAgICAgICAgICAgIHgKKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgIH0K Ky0KKy0gICAgICAgICAgICAvLy8gU21hbGxlc3QgdmVjdG9yIGVsZW1lbnQgdmFsdWUuCistICAg ICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgcHViIGZuIG1pbl9lbGVtZW50KHNlbGYp IC0+ICRlbGVtX3R5IHsKKy0gICAgICAgICAgICAgICAgI1tjZmcobm90KGFueSgKKy0gICAgICAg ICAgICAgICAgICAgIHRhcmdldF9hcmNoID0gImFhcmNoNjQiLAorLSAgICAgICAgICAgICAgICAg ICAgdGFyZ2V0X2FyY2ggPSAiYXJtIiwKKy0gICAgICAgICAgICAgICAgICAgIGFsbCh0YXJnZXRf YXJjaCA9ICJ4ODYiLCBub3QodGFyZ2V0X2ZlYXR1cmUgPSAic3NlMiIpKSwKKy0gICAgICAgICAg ICAgICAgICAgIHRhcmdldF9hcmNoID0gInBvd2VycGM2NCIsCistICAgICAgICAgICAgICAgICAg ICB0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLAorLSAgICAgICAgICAgICAgICApLCkpXQorLSAgICAg ICAgICAgICAgICB7CistICAgICAgICAgICAgICAgICAgICB1c2UgY3JhdGU6Omxsdm06OnNpbWRf cmVkdWNlX21pbjsKKy0gICAgICAgICAgICAgICAgICAgIGxldCB2OiAkaWVsZW1fdHkgPSB1bnNh ZmUgeyBzaW1kX3JlZHVjZV9taW4oc2VsZi4wKSB9OworLSAgICAgICAgICAgICAgICAgICAgdiBh cyAkZWxlbV90eQorLSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICNbY2ZnKGFu eSgKKy0gICAgICAgICAgICAgICAgICAgIHRhcmdldF9hcmNoID0gImFhcmNoNjQiLAorLSAgICAg ICAgICAgICAgICAgICAgdGFyZ2V0X2FyY2ggPSAiYXJtIiwKKy0gICAgICAgICAgICAgICAgICAg IGFsbCh0YXJnZXRfYXJjaCA9ICJ4ODYiLCBub3QodGFyZ2V0X2ZlYXR1cmUgPSAic3NlMiIpKSwK Ky0gICAgICAgICAgICAgICAgICAgIHRhcmdldF9hcmNoID0gInBvd2VycGM2NCIsCistICAgICAg ICAgICAgICAgICAgICB0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLAorLSAgICAgICAgICAgICAgICAp KV0KKy0gICAgICAgICAgICAgICAgeworLSAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IGJy b2tlbiBvbiBBQXJjaDY0CistICAgICAgICAgICAgICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5j b20vcnVzdC1sYW5nLW51cnNlcnkvcGFja2VkX3NpbWQvaXNzdWVzLzE1CistICAgICAgICAgICAg ICAgICAgICAvLyBGSVhNRTogYnJva2VuIG9uIGk1ODYtdW5rbm93bi1saW51eC1nbnUKKy0gICAg ICAgICAgICAgICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmctbnVyc2VyeS9w YWNrZWRfc2ltZC9pc3N1ZXMvMjIKKy0gICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBicm9r ZW4gb24gV0FTTTMyCistICAgICAgICAgICAgICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20v cnVzdC1sYW5nLW51cnNlcnkvcGFja2VkX3NpbWQvaXNzdWVzLzkxCistICAgICAgICAgICAgICAg ICAgICBsZXQgbXV0IHggPSBzZWxmLmV4dHJhY3QoMCk7CistICAgICAgICAgICAgICAgICAgICBm b3IgaSBpbiAxLi4kaWQ6OmxhbmVzKCkgeworLSAgICAgICAgICAgICAgICAgICAgICAgIHggPSB4 Lm1pbihzZWxmLmV4dHJhY3QoaSkpOworLSAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAg ICAgICAgICAgICAgeAorLSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgfQorLSAgICAg ICAgfQorLSAgICAgICAgdGVzdF9pZiEgeyR0ZXN0X3R0OgorLSAgICAgICAgcGFzdGU6Oml0ZW0h IHsKKy0gICAgICAgICAgICAvLyBDb21wYXJpc29ucyB1c2UgaW50ZWdlciBjYXN0cyB3aXRoaW4g bWFudGlzc2FeMSByYW5nZS4KKy0gICAgICAgICAgICAjW2FsbG93KGNsaXBweTo6ZmxvYXRfY21w KV0KKy0gICAgICAgICAgICBwdWIgbW9kIFs8JGlkIF9yZWR1Y3Rpb25fbWluX21heD5dIHsKKy0g ICAgICAgICAgICAgICAgdXNlIHN1cGVyOjoqOworLSAgICAgICAgICAgICAgICAjW2NmZ19hdHRy KG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldCistICAgICAgICAgICAgICAgICNb Y2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQorLSAg ICAgICAgICAgICAgICBwdWIgZm4gbWF4X2VsZW1lbnQoKSB7CistICAgICAgICAgICAgICAgICAg ICBsZXQgdiA9ICRpZDo6c3BsYXQoMCBhcyAkZWxlbV90eSk7CistICAgICAgICAgICAgICAgICAg ICBhc3NlcnRfZXEhKHYubWF4X2VsZW1lbnQoKSwgMCBhcyAkZWxlbV90eSk7CistICAgICAgICAg ICAgICAgICAgICBpZiAkaWQ6OmxhbmVzKCkgPiAxIHsKKy0gICAgICAgICAgICAgICAgICAgICAg ICBsZXQgdiA9IHYucmVwbGFjZSgxLCAxIGFzICRlbGVtX3R5KTsKKy0gICAgICAgICAgICAgICAg ICAgICAgICBhc3NlcnRfZXEhKHYubWF4X2VsZW1lbnQoKSwgMSBhcyAkZWxlbV90eSk7CistICAg ICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICBsZXQgdiA9IHYucmVwbGFj ZSgwLCAyIGFzICRlbGVtX3R5KTsKKy0gICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodi5t YXhfZWxlbWVudCgpLCAyIGFzICRlbGVtX3R5KTsKKy0gICAgICAgICAgICAgICAgfQorLQorLSAg ICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVz dCldCistICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwg d2FzbV9iaW5kZ2VuX3Rlc3QpXQorLSAgICAgICAgICAgICAgICBwdWIgZm4gbWluX2VsZW1lbnQo KSB7CistICAgICAgICAgICAgICAgICAgICBsZXQgdiA9ICRpZDo6c3BsYXQoMCBhcyAkZWxlbV90 eSk7CistICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHYubWluX2VsZW1lbnQoKSwgMCBh cyAkZWxlbV90eSk7CistICAgICAgICAgICAgICAgICAgICBpZiAkaWQ6OmxhbmVzKCkgPiAxIHsK Ky0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdiA9IHYucmVwbGFjZSgxLCAxIGFzICRlbGVt X3R5KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHYubWluX2VsZW1lbnQo KSwgMCBhcyAkZWxlbV90eSk7CistICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAg ICAgICAgICBsZXQgdiA9ICRpZDo6c3BsYXQoMSBhcyAkZWxlbV90eSk7CistICAgICAgICAgICAg ICAgICAgICBsZXQgdiA9IHYucmVwbGFjZSgwLCAyIGFzICRlbGVtX3R5KTsKKy0gICAgICAgICAg ICAgICAgICAgIGlmICRpZDo6bGFuZXMoKSA+IDEgeworLSAgICAgICAgICAgICAgICAgICAgICAg IGFzc2VydF9lcSEodi5taW5fZWxlbWVudCgpLCAxIGFzICRlbGVtX3R5KTsKKy0gICAgICAgICAg ICAgICAgICAgIH0gZWxzZSB7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh2 Lm1pbl9lbGVtZW50KCksIDIgYXMgJGVsZW1fdHkpOworLSAgICAgICAgICAgICAgICAgICAgfQor LSAgICAgICAgICAgICAgICAgICAgaWYgJGlkOjpsYW5lcygpID4gMSB7CistICAgICAgICAgICAg ICAgICAgICAgICAgbGV0IHYgPSAkaWQ6OnNwbGF0KDIgYXMgJGVsZW1fdHkpOworLSAgICAgICAg ICAgICAgICAgICAgICAgIGxldCB2ID0gdi5yZXBsYWNlKDEsIDEgYXMgJGVsZW1fdHkpOworLSAg ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodi5taW5fZWxlbWVudCgpLCAxIGFzICRl bGVtX3R5KTsKKy0gICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgfQorLSAg ICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgfTsKKy19CistCistbWFj cm9fcnVsZXMhIHRlc3RfcmVkdWN0aW9uX2Zsb2F0X21pbl9tYXggeworLSAgICAoWyRlbGVtX3R5 OmlkZW50OyAkZWxlbV9jb3VudDpleHByXTogJGlkOmlkZW50IHwgJHRlc3RfdHQ6dHQpID0+IHsK Ky0gICAgICAgIHRlc3RfaWYhIHsKKy0gICAgICAgICAgICAkdGVzdF90dDoKKy0gICAgICAgICAg ICBwYXN0ZTo6aXRlbSEgeworLSAgICAgICAgICAgICAgICAvLyBDb21wYXJpc29ucyB1c2UgaW50 ZWdlciBjYXN0cyB3aXRoaW4gbWFudGlzc2FeMSByYW5nZS4KKy0gICAgICAgICAgICAgICAgI1th bGxvdyhjbGlwcHk6OmZsb2F0X2NtcCldCistICAgICAgICAgICAgICAgIHB1YiBtb2QgWzwkaWQg X3JlZHVjdGlvbl9taW5fbWF4X25hbj5dIHsKKy0gICAgICAgICAgICAgICAgICAgIHVzZSBzdXBl cjo6KjsKKy0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0g Indhc20zMiIpLCB0ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIodGFyZ2V0 X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQorLSAgICAgICAgICAgICAgICAg ICAgZm4gbWluX2VsZW1lbnRfdGVzdCgpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQg biA9IGNyYXRlOjokZWxlbV90eTo6TkFOOworLQorLSAgICAgICAgICAgICAgICAgICAgICAgIGFz c2VydF9lcSEobi5taW4oLTMuKSwgLTMuKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3Nl cnRfZXEhKCgtMy4gYXMgJGVsZW1fdHkpLm1pbihuKSwgLTMuKTsKKy0KKy0gICAgICAgICAgICAg ICAgICAgICAgICBsZXQgdjAgPSAkaWQ6OnNwbGF0KC0zLik7CistCistICAgICAgICAgICAgICAg ICAgICAgICAgbGV0IHRhcmdldF93aXRoX2Jyb2tlbl9sYXN0X2xhbmVfbmFuID0gIWNmZyEoYW55 KAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRfYXJjaCA9ICJhcm0iLCB0YXJn ZXRfYXJjaCA9ICJhYXJjaDY0IiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxsKHRh cmdldF9hcmNoID0gIng4NiIsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub3Qo dGFyZ2V0X2ZlYXR1cmUgPSAic3NlMiIpCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICks CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldF9hcmNoID0gInBvd2VycGM2NCIs CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldF9hcmNoID0gIndhc20zMiIsCist ICAgICAgICAgICAgICAgICAgICAgICAgKSk7CistCistICAgICAgICAgICAgICAgICAgICAgICAg Ly8gVGhlIHZlY3RvciBpcyBpbml0aWFsaXplZCB0byBgLTMuYHM6IFstMywgLTMsIC0zLCAtM10K Ky0gICAgICAgICAgICAgICAgICAgICAgICBmb3IgaSBpbiAwLi4kaWQ6OmxhbmVzKCkgeworLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBXZSByZXBsYWNlIHRoZSBpLXRoIGVsZW1lbnQg b2YgdGhlIHZlY3RvciB3aXRoCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGBOYU5g OiBbLTMsIC0zLCAtMywgTmFOXQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0 IHYgPSB2MC5yZXBsYWNlKGksIG4pOworLQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAv LyBJZiB0aGUgTmFOIGlzIGluIHRoZSBsYXN0IHBsYWNlLCB0aGUgTExWTQorLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAvLyBpbXBsZW1lbnRhdGlvbiBvZiB0aGVzZSBtZXRob2RzIGlzIGJy b2tlbiBvbiBzb21lCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRhcmdldHM6Cist ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGkgPT0gJGlkOjpsYW5lcygpIC0gMSAmJgor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0X3dpdGhfYnJva2VuX2xhc3Rf bGFuZV9uYW4geworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9l cSEodi5taW5fZWxlbWVudCgpLCAtMy4sCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAiW0FdOiBuYW4gYXQge30gPT4ge30gfCB7Oj99IiwKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGksIHYubWluX2VsZW1lbnQoKSwgdik7 CistCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBJZiB3ZSByZXBsYWNlIGFs bCB0aGUgZWxlbWVudHMgaW4gdGhlIHZlY3RvcgorLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgLy8gdXAtdG8gdGhlIGBpLXRoYCBsYW5lIHdpdGggYE5hTmBzLCB0aGUgcmVzdWx0Cist ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBpcyBzdGlsbCBhbHdheXMgYC0zLmAg dW5sZXNzIGFsbCBlbGVtZW50cyBvZgorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Ly8gdGhlIHZlY3RvciBhcmUgYE5hTmBzOgorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgZm9yIGogaW4gMC4uaSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg diA9IHYucmVwbGFjZShqLCBuKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBpZiBqID09IGktMSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGFzc2VydCEodi5taW5fZWxlbWVudCgpLmlzX25hbigpLAorLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIltCXTogbmFuIGF0IHt9ID0+IHt9IHwgezo/fSIsCist ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpLCB2Lm1pbl9lbGVt ZW50KCksIHYpOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7 CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodi5t aW5fZWxlbWVudCgpLCAtMy4sCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAiW0JdOiBuYW4gYXQge30gPT4ge30gfCB7Oj99IiwKKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGksIHYubWluX2VsZW1lbnQoKSwgdik7CistICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gV2Ug YXJlIGRvbmUgaGVyZSwgc2luY2Ugd2Ugd2VyZSBpbiB0aGUgbGFzdAorLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgLy8gbGFuZSB3aGljaCBpcyB0aGUgbGFzdCBpdGVyYXRpb24gb2Yg dGhlIGxvb3AuCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaworLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9CistCistICAgICAgICAgICAgICAgICAgICAgICAgICAg IC8vIFdlIGFyZSBub3QgaW4gdGhlIGxhc3QgbGFuZSwgYW5kIHRoZXJlIGlzIG9ubHkKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgLy8gb25lIGBOYU5gIGluIHRoZSB2ZWN0b3IuCistCist ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIElmIHRoZSB2ZWN0b3IgaGFzIG9uZSBsYW5l LCB0aGUgcmVzdWx0IGlzIGBOYU5gOgorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAk aWQ6OmxhbmVzKCkgPT0gMSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3Nl cnQhKHYubWluX2VsZW1lbnQoKS5pc19uYW4oKSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIltDXTogYWxsIG5hbnMgfCB2PXs6P30gfCBtaW49e30gfCBcCistaXNf bmFuOiB7fSIsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYsIHYu bWluX2VsZW1lbnQoKSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg di5taW5fZWxlbWVudCgpLmlzX25hbigpCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICApOworLQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQW5kIHdlIGFyZSBk b25lLCBzaW5jZSB0aGUgdmVjdG9yIG9ubHkgaGFzCistICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAvLyBvbmUgbGFuZSBhbnl3YXlzLgorLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgYnJlYWs7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0KKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgLy8gVGhlIHZlY3RvciBoYXMgbW9yZSB0aGFuIG9uZSBsYW5l LCBzaW5jZSB0aGVyZSBpcworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBvbmx5IG9u ZSBgTmFOYCBpbiB0aGUgdmVjdG9yLCB0aGUgcmVzdWx0IGlzCistICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC8vIGFsd2F5cyBgLTNgLgorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBh c3NlcnRfZXEhKHYubWluX2VsZW1lbnQoKSwgLTMuLAorLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICJbRF06IG5hbiBhdCB7fSA9PiB7fSB8IHs6P30iLAorLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGksIHYubWluX2VsZW1lbnQoKSwgdik7Cist CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIElmIHdlIHJlcGxhY2UgYWxsIHRoZSBl bGVtZW50cyBpbiB0aGUgdmVjdG9yCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHVw LXRvIHRoZSBgaS10aGAgbGFuZSB3aXRoIGBOYU5gcywgdGhlIHJlc3VsdCBpcworLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAvLyBzdGlsbCBhbHdheXMgYC0zLmAgdW5sZXNzIGFsbCBlbGVt ZW50cyBvZiB0aGUKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdmVjdG9yIGFyZSBg TmFOYHM6CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciBqIGluIDAuLmkgeworLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdiA9IHYucmVwbGFjZShqLCBuKTsKKy0KKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGkgPT0gJGlkOjpsYW5lcygpIC0gMSAm JiBqID09IGkgLSAxIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBB bGwgZWxlbWVudHMgb2YgdGhlIHZlY3RvciBhcmUgYE5hTmBzLAorLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIC8vIHRoZXJlZm9yZSB0aGUgcmVzdWx0IGlzIE5hTiBhcyB3ZWxs LgorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vCistICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgLy8gTm90ZTogdGhlICNsYW5lcyBvZiB0aGUgdmVjdG9y IGlzID4gMSwgc28KKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAiaSAt IDEiIGRvZXMgbm90IG92ZXJmbG93LgorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGFzc2VydCEodi5taW5fZWxlbWVudCgpLmlzX25hbigpLAorLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIltFXTogYWxsIG5hbnMgfCB2PXs6P30gfCBtaW49 e30gfCBcCistaXNfbmFuOiB7fSIsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB2LCB2Lm1pbl9lbGVtZW50KCksCistICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB2Lm1pbl9lbGVtZW50KCkuaXNfbmFuKCkpOworLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAvLyBUaGVyZSBhcmUgbm9uLWBOYU5gIGVsZW1lbnRzIGluIHRoZQorLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHZlY3RvciwgdGhlcmVmb3JlIHRo ZSByZXN1bHQgaXMgYC0zLmA6CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg YXNzZXJ0X2VxISh2Lm1pbl9lbGVtZW50KCksIC0zLiwKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICJbRl06IG5hbiBhdCB7fSA9PiB7fSB8IHs6P30iLAor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaSwgdi5taW5f ZWxlbWVudCgpLCB2KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0K Ky0gICAgICAgICAgICAgICAgICAgICAgICAvLyBJZiB0aGUgdmVjdG9yIGNvbnRhaW5zIGFsbCBO YU5zIHRoZSByZXN1bHQgaXMgTmFOOgorLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCEo JGlkOjpzcGxhdChuKS5taW5fZWxlbWVudCgpLmlzX25hbigpLAorLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgImFsbCBuYW5zIHwgdj17Oj99IHwgbWluPXt9IHwgaXNfbmFuOiB7fSIs CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaWQ6OnNwbGF0KG4pLCAkaWQ6OnNw bGF0KG4pLm1pbl9lbGVtZW50KCksCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAk aWQ6OnNwbGF0KG4pLm1pbl9lbGVtZW50KCkuaXNfbmFuKCkpOworLSAgICAgICAgICAgICAgICAg ICAgfQorLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAi d2FzbTMyIiksIHRlc3QpXQorLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cih0YXJnZXRf YXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCistICAgICAgICAgICAgICAgICAg ICBmbiBtYXhfZWxlbWVudF90ZXN0KCkgeworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBu ID0gY3JhdGU6OiRlbGVtX3R5OjpOQU47CistCistICAgICAgICAgICAgICAgICAgICAgICAgYXNz ZXJ0X2VxIShuLm1heCgtMy4pLCAtMy4pOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2Vy dF9lcSEoKC0zLiBhcyAkZWxlbV90eSkubWF4KG4pLCAtMy4pOworLQorLSAgICAgICAgICAgICAg ICAgICAgICAgIGxldCB2MCA9ICRpZDo6c3BsYXQoLTMuKTsKKy0KKy0gICAgICAgICAgICAgICAg ICAgICAgICBsZXQgdGFyZ2V0X3dpdGhfYnJva2VuX2xhc3RfbGFuZV9uYW4gPSAhY2ZnIShhbnko CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldF9hcmNoID0gImFybSIsIHRhcmdl dF9hcmNoID0gImFhcmNoNjQiLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRf YXJjaCA9ICJwb3dlcnBjNjQiLCB0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLAorLSAgICAgICAgICAg ICAgICAgICAgICAgICkpOworLQorLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoZSB2ZWN0 b3IgaXMgaW5pdGlhbGl6ZWQgdG8gYC0zLmBzOiBbLTMsIC0zLCAtMywgLTNdCistICAgICAgICAg ICAgICAgICAgICAgICAgZm9yIGkgaW4gMC4uJGlkOjpsYW5lcygpIHsKKy0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgLy8gV2UgcmVwbGFjZSB0aGUgaS10aCBlbGVtZW50IG9mIHRoZSB2ZWN0 b3Igd2l0aAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBgTmFOYDogWy0zLCAtMywg LTMsIE5hTl0KKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCB2ID0gdjAucmVw bGFjZShpLCBuKTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWYgdGhlIE5h TiBpcyBpbiB0aGUgbGFzdCBwbGFjZSwgdGhlIExMVk0KKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgLy8gaW1wbGVtZW50YXRpb24gb2YgdGhlc2UgbWV0aG9kcyBpcyBicm9rZW4gb24gc29t ZQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0YXJnZXRzOgorLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICBpZiBpID09ICRpZDo6bGFuZXMoKSAtIDEgJiYKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB0YXJnZXRfd2l0aF9icm9rZW5fbGFzdF9sYW5lX25hbiB7Cist ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHYubWF4X2VsZW1lbnQo KSwgLTMuLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiW0FdOiBu YW4gYXQge30gPT4ge30gfCB7Oj99IiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgaSwgdi5tYXhfZWxlbWVudCgpLCB2KTsKKy0KKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIC8vIElmIHdlIHJlcGxhY2UgYWxsIHRoZSBlbGVtZW50cyBpbiB0aGUgdmVj dG9yCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB1cC10byB0aGUgYGktdGhg IGxhbmUgd2l0aCBgTmFOYHMsIHRoZSByZXN1bHQKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIC8vIGlzIHN0aWxsIGFsd2F5cyBgLTMuYCB1bmxlc3MgYWxsIGVsZW1lbnRzIG9mCist ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGUgdmVjdG9yIGFyZSBgTmFOYHM6 CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgaiBpbiAwLi5pIHsKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ID0gdi5yZXBsYWNlKGosIG4pOworLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGogPT0gaS0xIHsKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0ISh2Lm1pbl9lbGVtZW50KCku aXNfbmFuKCksCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJbQl06 IG5hbiBhdCB7fSA9PiB7fSB8IHs6P30iLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBpLCB2Lm1pbl9lbGVtZW50KCksIHYpOworLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0gZWxzZSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGFzc2VydF9lcSEodi5tYXhfZWxlbWVudCgpLCAtMy4sCistICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiW0JdOiBuYW4gYXQge30gPT4ge30gfCB7 Oj99IiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGksIHYu bWF4X2VsZW1lbnQoKSwgdik7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgLy8gV2UgYXJlIGRvbmUgaGVyZSwgc2luY2Ugd2Ugd2VyZSBpbiB0 aGUgbGFzdAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbGFuZSB3aGljaCBp cyB0aGUgbGFzdCBpdGVyYXRpb24gb2YgdGhlIGxvb3AuCistICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBicmVhaworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CistCistICAg ICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFdlIGFyZSBub3QgaW4gdGhlIGxhc3QgbGFuZSwg YW5kIHRoZXJlIGlzIG9ubHkKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gb25lIGBO YU5gIGluIHRoZSB2ZWN0b3IuCistCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIElm IHRoZSB2ZWN0b3IgaGFzIG9uZSBsYW5lLCB0aGUgcmVzdWx0IGlzIGBOYU5gOgorLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICBpZiAkaWQ6OmxhbmVzKCkgPT0gMSB7CistICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKHYubWF4X2VsZW1lbnQoKS5pc19uYW4oKSwKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIltDXTogYWxsIG5hbnMgfCB2 PXs6P30gfCBtaW49e30gfCBcCistaXNfbmFuOiB7fSIsCistICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHYsIHYubWF4X2VsZW1lbnQoKSwKKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdi5tYXhfZWxlbWVudCgpLmlzX25hbigpKTsKKy0KKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEFuZCB3ZSBhcmUgZG9uZSwgc2luY2Ug dGhlIHZlY3RvciBvbmx5IGhhcworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8g b25lIGxhbmUgYW55d2F5cy4KKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFr OworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CistCistICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC8vIFRoZSB2ZWN0b3IgaGFzIG1vcmUgdGhhbiBvbmUgbGFuZSwgc2luY2UgdGhl cmUgaXMKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gb25seSBvbmUgYE5hTmAgaW4g dGhlIHZlY3RvciwgdGhlIHJlc3VsdCBpcworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAv LyBhbHdheXMgYC0zYC4KKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh2 Lm1heF9lbGVtZW50KCksIC0zLiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAiW0RdOiBuYW4gYXQge30gPT4ge30gfCB7Oj99IiwKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBpLCB2Lm1heF9lbGVtZW50KCksIHYpOworLQorLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAvLyBJZiB3ZSByZXBsYWNlIGFsbCB0aGUgZWxlbWVudHMgaW4g dGhlIHZlY3RvcgorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB1cC10byB0aGUgYGkt dGhgIGxhbmUgd2l0aCBgTmFOYHMsIHRoZSByZXN1bHQgaXMKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgLy8gc3RpbGwgYWx3YXlzIGAtMy5gIHVubGVzcyBhbGwgZWxlbWVudHMgb2YgdGhl CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHZlY3RvciBhcmUgYE5hTmBzOgorLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgaiBpbiAwLi5pIHsKKy0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHYgPSB2LnJlcGxhY2Uoaiwgbik7CistCistICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBpZiBpID09ICRpZDo6bGFuZXMoKSAtIDEgJiYgaiA9PSBpIC0g MSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQWxsIGVsZW1lbnRz IG9mIHRoZSB2ZWN0b3IgYXJlIGBOYU5gcywKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAvLyB0aGVyZWZvcmUgdGhlIHJlc3VsdCBpcyBOYU4gYXMgd2VsbC4KKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLworLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIC8vIE5vdGU6IHRoZSAjbGFuZXMgb2YgdGhlIHZlY3RvciBpcyA+IDEsIHNv CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gImkgLSAxIiBkb2VzIG5v dCBvdmVyZmxvdy4KKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQh KHYubWF4X2VsZW1lbnQoKS5pc19uYW4oKSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICJbRV06IGFsbCBuYW5zIHwgdj17Oj99IHwgbWF4PXt9IHwgXAorLWlz X25hbjoge30iLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg diwgdi5tYXhfZWxlbWVudCgpLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgdi5tYXhfZWxlbWVudCgpLmlzX25hbigpKTsKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIH0gZWxzZSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgLy8gVGhlcmUgYXJlIG5vbi1gTmFOYCBlbGVtZW50cyBpbiB0aGUKKy0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAvLyB2ZWN0b3IsIHRoZXJlZm9yZSB0aGUgcmVzdWx0IGlz IGAtMy5gOgorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEo di5tYXhfZWxlbWVudCgpLCAtMy4sCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAiW0ZdOiBuYW4gYXQge30gPT4ge30gfCB7Oj99IiwKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGksIHYubWF4X2VsZW1lbnQoKSwg dik7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAg ICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgICAgICB9CistCistICAgICAgICAg ICAgICAgICAgICAgICAgLy8gSWYgdGhlIHZlY3RvciBjb250YWlucyBhbGwgTmFOcyB0aGUgcmVz dWx0IGlzIE5hTjoKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKCRpZDo6c3BsYXQo bikubWF4X2VsZW1lbnQoKS5pc19uYW4oKSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICJhbGwgbmFucyB8IHY9ezo/fSB8IG1heD17fSB8IGlzX25hbjoge30iLAorLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgJGlkOjpzcGxhdChuKSwgJGlkOjpzcGxhdChuKS5tYXhf ZWxlbWVudCgpLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGlkOjpzcGxhdChu KS5tYXhfZWxlbWVudCgpLmlzX25hbigpKTsKKy0gICAgICAgICAgICAgICAgICAgIH0KKy0gICAg ICAgICAgICAgICAgfQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgfTsKKy19Citk aWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL3NlbGVjdC5y cyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9zZWxlY3QucnMKK2RlbGV0 ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9z cmMvYXBpL3NlbGVjdC5ycworKysrIC9kZXYvbnVsbAorQEAgLTEsNzMgKzAsMCBAQAorLS8vISBJ bXBsZW1lbnRzIG1hc2sncyBgc2VsZWN0YC4KKy0KKy0vLy8gSW1wbGVtZW50cyBtYXNrIHNlbGVj dCBtZXRob2QKKy1tYWNyb19ydWxlcyEgaW1wbF9zZWxlY3QgeworLSAgICAoWyRlbGVtX3R5Omlk ZW50OyAkZWxlbV9jb3VudDpleHByXTogJGlkOmlkZW50IHwgJHRlc3RfdHQ6dHQpID0+IHsKKy0g ICAgICAgIGltcGwgJGlkIHsKKy0gICAgICAgICAgICAvLy8gU2VsZWN0cyBlbGVtZW50cyBvZiBg YWAgYW5kIGBiYCB1c2luZyBtYXNrLgorLSAgICAgICAgICAgIC8vLworLSAgICAgICAgICAgIC8v LyBUaGUgbGFuZXMgb2YgdGhlIHJlc3VsdCBmb3Igd2hpY2ggdGhlIG1hc2sgaXMgYHRydWVgIGNv bnRhaW4KKy0gICAgICAgICAgICAvLy8gdGhlIHZhbHVlcyBvZiBgYWAuIFRoZSByZW1haW5pbmcg bGFuZXMgY29udGFpbiB0aGUgdmFsdWVzIG9mCistICAgICAgICAgICAgLy8vIGBiYC4KKy0gICAg ICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBwdWIgZm4gc2VsZWN0PFQ+KHNlbGYsIGE6 IFNpbWQ8VD4sIGI6IFNpbWQ8VD4pIC0+IFNpbWQ8VD4KKy0gICAgICAgICAgICB3aGVyZQorLSAg ICAgICAgICAgICAgICBUOiBzZWFsZWQ6OlNpbWRBcnJheTxOVCA9IDxbJGVsZW1fdHk7ICRlbGVt X2NvdW50XSBhcyBzZWFsZWQ6OlNpbWRBcnJheT46Ok5UPiwKKy0gICAgICAgICAgICB7CistICAg ICAgICAgICAgICAgIHVzZSBjcmF0ZTo6bGx2bTo6c2ltZF9zZWxlY3Q7CistICAgICAgICAgICAg ICAgIFNpbWQodW5zYWZlIHsgc2ltZF9zZWxlY3Qoc2VsZi4wLCBhLjAsIGIuMCkgfSkKKy0gICAg ICAgICAgICB9CistICAgICAgICB9CistCistICAgICAgICB0ZXN0X3NlbGVjdCEoYm9vbCwgJGlk LCAkaWQsIChmYWxzZSwgdHJ1ZSkgfCAkdGVzdF90dCk7CistICAgIH07CistfQorLQorLW1hY3Jv X3J1bGVzISB0ZXN0X3NlbGVjdCB7CistICAgICgKKy0gICAgICAgICRlbGVtX3R5OmlkZW50LAor LSAgICAgICAgJG1hc2tfdHk6aWRlbnQsCistICAgICAgICAkdmVjX3R5OmlkZW50LCgkc21hbGw6 ZXhwciwgJGxhcmdlOmV4cHIpIHwKKy0gICAgICAgICR0ZXN0X3R0OnR0CistICAgICkgPT4gewor LSAgICAgICAgdGVzdF9pZiEgeworLSAgICAgICAgICAgICR0ZXN0X3R0OgorLSAgICAgICAgICAg IHBhc3RlOjppdGVtISB7CistICAgICAgICAgICAgICAgIHB1YiBtb2QgWzwkdmVjX3R5IF9zZWxl Y3Q+XSB7CistICAgICAgICAgICAgICAgICAgICB1c2Ugc3VwZXI6Oio7CistCistICAgICAgICAg ICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCld ICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQor LSAgICAgICAgICAgICAgICAgICAgZm4gc2VsZWN0KCkgeworLSAgICAgICAgICAgICAgICAgICAg ICAgIGxldCBvID0gJHNtYWxsIGFzICRlbGVtX3R5OworLSAgICAgICAgICAgICAgICAgICAgICAg IGxldCB0ID0gJGxhcmdlIGFzICRlbGVtX3R5OworLQorLSAgICAgICAgICAgICAgICAgICAgICAg IGxldCBhID0gJHZlY190eTo6c3BsYXQobyk7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0 IGIgPSAkdmVjX3R5OjpzcGxhdCh0KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbSA9 IGEubHQoYik7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShtLnNlbGVjdChh LCBiKSwgYSk7CistCistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG0gPSBiLmx0KGEpOwor LSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEobS5zZWxlY3QoYiwgYSksIGEpOwor LQorLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgYyA9IGE7CistICAgICAgICAgICAg ICAgICAgICAgICAgbGV0IG11dCBkID0gYjsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQg bXV0IG1fZSA9ICRtYXNrX3R5OjpzcGxhdChmYWxzZSk7CistICAgICAgICAgICAgICAgICAgICAg ICAgZm9yIGkgaW4gMC4uJHZlY190eTo6bGFuZXMoKSB7CistICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGlmIGkgJSAyID09IDAgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg bGV0IGNfdG1wID0gYy5leHRyYWN0KGkpOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgYyA9IGMucmVwbGFjZShpLCBkLmV4dHJhY3QoaSkpOworLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZCA9IGQucmVwbGFjZShpLCBjX3RtcCk7CistICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0gZWxzZSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2Ug PSBtX2UucmVwbGFjZShpLCB0cnVlKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQor LSAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICBs ZXQgbSA9IGMubHQoZCk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShtX2Us IG0pOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEobS5zZWxlY3QoYywgZCks IGEpOworLSAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICB9CistICAgICAg ICAgICAgfQorLSAgICAgICAgfQorLSAgICB9OworLX0KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0 eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvc2h1ZmZsZS5ycyBiL3RoaXJkX3BhcnR5L3J1c3Qv cGFja2VkX3NpbWQvc3JjL2FwaS9zaHVmZmxlLnJzCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK Ky0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9zaHVmZmxlLnJzCisr KysgL2Rldi9udWxsCitAQCAtMSwxODQgKzAsMCBAQAorLS8vISBJbXBsZW1lbnRzIHBvcnRhYmxl IHZlY3RvciBzaHVmZmxlcyB3aXRoIGltbWVkaWF0ZSBpbmRpY2VzLgorLQorLS8vIEZJWE1FOiBj b21wcmVoZW5zaXZlIHRlc3RzCistLy8gaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy1udXJz ZXJ5L3BhY2tlZF9zaW1kL2lzc3Vlcy8yMAorLQorLS8vLyBTaHVmZmxlcyB2ZWN0b3IgZWxlbWVu dHMuCistLy8vCistLy8vIFRoaXMgbWFjcm8gcmV0dXJucyBhIG5ldyB2ZWN0b3IgdGhhdCBjb250 YWlucyBhIHNodWZmbGUgb2YgdGhlIGVsZW1lbnRzIGluCistLy8vIG9uZSAoYHNodWZmbGUhKHZl YywgW2luZGljZXMuLi5dKWApIG9yIHR3byAoYHNodWZmbGUhKHZlYzAsIHZlYzEsCistLy8vIFtp bmRpY2VzLi4uXSlgKSBpbnB1dCB2ZWN0b3JzLgorLS8vLworLS8vLyBUaGUgdHlwZSBvZiBgdmVj MGAgYW5kIGB2ZWMxYCBtdXN0IGJlIGVxdWFsLCBhbmQgdGhlIGVsZW1lbnQgdHlwZSBvZiB0aGUK Ky0vLy8gcmVzdWx0aW5nIHZlY3RvciBpcyB0aGUgZWxlbWVudCB0eXBlIG9mIHRoZSBpbnB1dCB2 ZWN0b3IuCistLy8vCistLy8vIFRoZSBudW1iZXIgb2YgYGluZGljZXNgIG11c3QgYmUgYSBwb3dl ci1vZi10d28gaW4gcmFuZ2UgYFswLCA2NClgLCBzaW5jZQorLS8vLyBjdXJyZW50bHksIHRoZSBs YXJnZXN0IHZlY3RvciBzdXBwb3J0ZWQgYnkgdGhlIGxpYnJhcnkgaGFzIDY0IGxhbmVzLiBUaGUK Ky0vLy8gbGVuZ3RoIG9mIHRoZSByZXN1bHRpbmcgdmVjdG9yIGVxdWFscyB0aGUgbnVtYmVyIG9m IGluZGljZXMgcHJvdmlkZWQuCistLy8vCistLy8vIFRoZSBpbmRpY2VzIG11c3QgYmUgaW4gcmFu Z2UgYFswLCBNICogTilgIHdoZXJlIGBNYCBpcyB0aGUgbnVtYmVyIG9mIGlucHV0CistLy8vIHZl Y3RvcnMgKGAxYCBvciBgMmApIGFuZCBgTmAgaXMgdGhlIG51bWJlciBvZiBsYW5lcyBvZiB0aGUg aW5wdXQgdmVjdG9ycy4KKy0vLy8gVGhlIGluZGljZXMgYGlgIGluIHJhbmdlIGBbMCwgTilgIHJl ZmVyIHRvIHRoZSBgaWAtdGggZWxlbWVudCBvZiBgdmVjMGAsCistLy8vIHdoaWxlIHRoZSBpbmRp Y2VzIGluIHJhbmdlIGBbTiwgMipOKWAgcmVmZXIgdG8gdGhlIGBpIC0gTmAtdGggZWxlbWVudCBv ZgorLS8vLyBgdmVjMWAuCistLy8vCistLy8vICMgRXhhbXBsZXMKKy0vLy8KKy0vLy8gU2h1ZmZs aW5nIGVsZW1lbnRzIG9mIHR3byB2ZWN0b3JzOgorLS8vLworLS8vLyBgYGAKKy0vLy8gIyB1c2Ug cGFja2VkX3NpbWQ6Oio7CistLy8vICMgZm4gbWFpbigpIHsKKy0vLy8gLy8gU2h1ZmZsZSBhbGxv d3MgcmVvcmRlcmluZyB0aGUgZWxlbWVudHM6CistLy8vIGxldCB4ID0gaTMyeDQ6Om5ldygxLCAy LCAzLCA0KTsKKy0vLy8gbGV0IHkgPSBpMzJ4NDo6bmV3KDUsIDYsIDcsIDgpOworLS8vLyBsZXQg ciA9IHNodWZmbGUhKHgsIHksIFs0LCAwLCA1LCAxXSk7CistLy8vIGFzc2VydF9lcSEociwgaTMy eDQ6Om5ldyg1LCAxLCA2LCAyKSk7CistLy8vCistLy8vIC8vIFRoZSByZXN1bHRpbmcgdmVjdG9y IGNhbiBhbHMgYmUgc21hbGxlciB0aGFuIHRoZSBpbnB1dDoKKy0vLy8gbGV0IHIgPSBzaHVmZmxl ISh4LCB5LCBbMSwgNl0pOworLS8vLyBhc3NlcnRfZXEhKHIsIGkzMngyOjpuZXcoMiwgNykpOwor LS8vLworLS8vLyAvLyBPciBsYXJnZXI6CistLy8vIGxldCByID0gc2h1ZmZsZSEoeCwgeSwgWzEs IDMsIDQsIDIsIDEsIDcsIDIsIDJdKTsKKy0vLy8gYXNzZXJ0X2VxIShyLCBpMzJ4ODo6bmV3KDIs IDQsIDUsIDMsIDIsIDgsIDMsIDMpKTsKKy0vLy8gLy8gQXQgbW9zdCAyICogdGhlIG51bWJlciBv ZiBsYW5lcyBpbiB0aGUgaW5wdXQgdmVjdG9yLgorLS8vLyAjIH0KKy0vLy8gYGBgCistLy8vCist Ly8vIFNodWZmbGluZyBlbGVtZW50cyBvZiBvbmUgdmVjdG9yOgorLS8vLworLS8vLyBgYGAKKy0v Ly8gIyB1c2UgcGFja2VkX3NpbWQ6Oio7CistLy8vICMgZm4gbWFpbigpIHsKKy0vLy8gLy8gU2h1 ZmZsZSBhbGxvd3MgcmVvcmRlcmluZyB0aGUgZWxlbWVudHMgb2YgYSB2ZWN0b3I6CistLy8vIGxl dCB4ID0gaTMyeDQ6Om5ldygxLCAyLCAzLCA0KTsKKy0vLy8gbGV0IHIgPSBzaHVmZmxlISh4LCBb MiwgMSwgMywgMF0pOworLS8vLyBhc3NlcnRfZXEhKHIsIGkzMng0OjpuZXcoMywgMiwgNCwgMSkp OworLS8vLworLS8vLyAvLyBUaGUgcmVzdWx0aW5nIHZlY3RvciBjYW4gYmUgc21hbGxlciB0aGFu IHRoZSBpbnB1dDoKKy0vLy8gbGV0IHIgPSBzaHVmZmxlISh4LCBbMSwgM10pOworLS8vLyBhc3Nl cnRfZXEhKHIsIGkzMngyOjpuZXcoMiwgNCkpOworLS8vLworLS8vLyAvLyBFcXVhbDoKKy0vLy8g bGV0IHIgPSBzaHVmZmxlISh4LCBbMSwgMywgMiwgMF0pOworLS8vLyBhc3NlcnRfZXEhKHIsIGkz Mng0OjpuZXcoMiwgNCwgMywgMSkpOworLS8vLworLS8vLyAvLyBPciBsYXJnZXI6CistLy8vIGxl dCByID0gc2h1ZmZsZSEoeCwgWzEsIDMsIDIsIDIsIDEsIDMsIDIsIDJdKTsKKy0vLy8gYXNzZXJ0 X2VxIShyLCBpMzJ4ODo6bmV3KDIsIDQsIDMsIDMsIDIsIDQsIDMsIDMpKTsKKy0vLy8gLy8gQXQg bW9zdCAyICogdGhlIG51bWJlciBvZiBsYW5lcyBpbiB0aGUgaW5wdXQgdmVjdG9yLgorLS8vLyAj IH0KKy0vLy8gYGBgCistI1ttYWNyb19leHBvcnRdCistbWFjcm9fcnVsZXMhIHNodWZmbGUgewor LSAgICAoJHZlYzA6ZXhwciwgJHZlYzE6ZXhwciwgWyRsMDpleHByLCAkbDE6ZXhwcl0pID0+IHt7 CistICAgICAgICAjW2FsbG93KHVudXNlZF91bnNhZmUpXQorLSAgICAgICAgdW5zYWZlIHsKKy0g ICAgICAgICAgICAkY3JhdGU6OlNpbWQoJGNyYXRlOjpfX3NodWZmbGVfdmVjdG9yMjo6PHtbJGww LCAkbDFdfSwgXywgXz4oCistICAgICAgICAgICAgICAgICR2ZWMwLjAsCistICAgICAgICAgICAg ICAgICR2ZWMxLjAsCistICAgICAgICAgICAgKSkKKy0gICAgICAgIH0KKy0gICAgfX07CistICAg ICgkdmVjMDpleHByLCAkdmVjMTpleHByLCBbJGwwOmV4cHIsICRsMTpleHByLCAkbDI6ZXhwciwg JGwzOmV4cHJdKSA9PiB7eworLSAgICAgICAgI1thbGxvdyh1bnVzZWRfdW5zYWZlKV0KKy0gICAg ICAgIHVuc2FmZSB7CistICAgICAgICAgICAgJGNyYXRlOjpTaW1kKCRjcmF0ZTo6X19zaHVmZmxl X3ZlY3RvcjQ6Ojx7WyRsMCwgJGwxLCAkbDIsICRsM119LCBfLCBfPigKKy0gICAgICAgICAgICAg ICAgJHZlYzAuMCwKKy0gICAgICAgICAgICAgICAgJHZlYzEuMCwKKy0gICAgICAgICAgICApKQor LSAgICAgICAgfQorLSAgICB9fTsKKy0gICAgKCR2ZWMwOmV4cHIsICR2ZWMxOmV4cHIsCistICAg ICBbJGwwOmV4cHIsICRsMTpleHByLCAkbDI6ZXhwciwgJGwzOmV4cHIsCistICAgICAgJGw0OmV4 cHIsICRsNTpleHByLCAkbDY6ZXhwciwgJGw3OmV4cHJdKSA9PiB7eworLSAgICAgICAgI1thbGxv dyh1bnVzZWRfdW5zYWZlKV0KKy0gICAgICAgIHVuc2FmZSB7CistICAgICAgICAgICAgJGNyYXRl OjpTaW1kKCRjcmF0ZTo6X19zaHVmZmxlX3ZlY3Rvcjg6Ojx7WyRsMCwgJGwxLCAkbDIsICRsMywg JGw0LCAkbDUsICRsNiwgJGw3XX0sIF8sIF8+KAorLSAgICAgICAgICAgICAgICAkdmVjMC4wLAor LSAgICAgICAgICAgICAgICAkdmVjMS4wLAorLSAgICAgICAgICAgICkpCistICAgICAgICB9Cist ICAgIH19OworLSAgICAoJHZlYzA6ZXhwciwgJHZlYzE6ZXhwciwKKy0gICAgIFskbDA6ZXhwciwg JGwxOmV4cHIsICRsMjpleHByLCAkbDM6ZXhwciwKKy0gICAgICAkbDQ6ZXhwciwgJGw1OmV4cHIs ICRsNjpleHByLCAkbDc6ZXhwciwKKy0gICAgICAkbDg6ZXhwciwgJGw5OmV4cHIsICRsMTA6ZXhw ciwgJGwxMTpleHByLAorLSAgICAgICRsMTI6ZXhwciwgJGwxMzpleHByLCAkbDE0OmV4cHIsICRs MTU6ZXhwcl0pID0+IHt7CistICAgICAgICAjW2FsbG93KHVudXNlZF91bnNhZmUpXQorLSAgICAg ICAgdW5zYWZlIHsKKy0gICAgICAgICAgICAkY3JhdGU6OlNpbWQoJGNyYXRlOjpfX3NodWZmbGVf dmVjdG9yMTY6Ojx7CistICAgICAgICAgICAgICAgIFsKKy0gICAgICAgICAgICAgICAgICAgICRs MCwgJGwxLCAkbDIsICRsMywgJGw0LCAkbDUsICRsNiwgJGw3LCAkbDgsICRsOSwgJGwxMCwKKy0g ICAgICAgICAgICAgICAgICAgICRsMTEsICRsMTIsICRsMTMsICRsMTQsICRsMTUsCistICAgICAg ICAgICAgICAgIF0KKy0gICAgICAgICAgICB9LCBfLCBfPigKKy0gICAgICAgICAgICAgICAgJHZl YzAuMCwKKy0gICAgICAgICAgICAgICAgJHZlYzEuMCwKKy0gICAgICAgICAgICApKQorLSAgICAg ICAgfQorLSAgICB9fTsKKy0gICAgKCR2ZWMwOmV4cHIsICR2ZWMxOmV4cHIsCistICAgICBbJGww OmV4cHIsICRsMTpleHByLCAkbDI6ZXhwciwgJGwzOmV4cHIsCistICAgICAgJGw0OmV4cHIsICRs NTpleHByLCAkbDY6ZXhwciwgJGw3OmV4cHIsCistICAgICAgJGw4OmV4cHIsICRsOTpleHByLCAk bDEwOmV4cHIsICRsMTE6ZXhwciwKKy0gICAgICAkbDEyOmV4cHIsICRsMTM6ZXhwciwgJGwxNDpl eHByLCAkbDE1OmV4cHIsCistICAgICAgJGwxNjpleHByLCAkbDE3OmV4cHIsICRsMTg6ZXhwciwg JGwxOTpleHByLAorLSAgICAgICRsMjA6ZXhwciwgJGwyMTpleHByLCAkbDIyOmV4cHIsICRsMjM6 ZXhwciwKKy0gICAgICAkbDI0OmV4cHIsICRsMjU6ZXhwciwgJGwyNjpleHByLCAkbDI3OmV4cHIs CistICAgICAgJGwyODpleHByLCAkbDI5OmV4cHIsICRsMzA6ZXhwciwgJGwzMTpleHByXSkgPT4g e3sKKy0gICAgICAgICNbYWxsb3codW51c2VkX3Vuc2FmZSldCistICAgICAgICB1bnNhZmUgewor LSAgICAgICAgICAgICRjcmF0ZTo6U2ltZCgkY3JhdGU6Ol9fc2h1ZmZsZV92ZWN0b3IzMjo6PHsK Ky0gICAgICAgICAgICAgICAgWworLSAgICAgICAgICAgICAgICAgICAgJGwwLCAkbDEsICRsMiwg JGwzLCAkbDQsICRsNSwgJGw2LCAkbDcsICRsOCwgJGw5LCAkbDEwLAorLSAgICAgICAgICAgICAg ICAgICAgJGwxMSwgJGwxMiwgJGwxMywgJGwxNCwgJGwxNSwgJGwxNiwgJGwxNywgJGwxOCwgJGwx OSwKKy0gICAgICAgICAgICAgICAgICAgICRsMjAsICRsMjEsICRsMjIsICRsMjMsICRsMjQsICRs MjUsICRsMjYsICRsMjcsICRsMjgsCistICAgICAgICAgICAgICAgICAgICAkbDI5LCAkbDMwLCAk bDMxLAorLSAgICAgICAgICAgICAgICBdCistICAgICAgICAgICAgfSwgXywgXz4oCistICAgICAg ICAgICAgICAgICR2ZWMwLjAsCistICAgICAgICAgICAgICAgICR2ZWMxLjAsCistICAgICAgICAg ICAgKSkKKy0gICAgICAgIH0KKy0gICAgfX07CistICAgICgkdmVjMDpleHByLCAkdmVjMTpleHBy LAorLSAgICAgWyRsMDpleHByLCAkbDE6ZXhwciwgJGwyOmV4cHIsICRsMzpleHByLAorLSAgICAg ICRsNDpleHByLCAkbDU6ZXhwciwgJGw2OmV4cHIsICRsNzpleHByLAorLSAgICAgICRsODpleHBy LCAkbDk6ZXhwciwgJGwxMDpleHByLCAkbDExOmV4cHIsCistICAgICAgJGwxMjpleHByLCAkbDEz OmV4cHIsICRsMTQ6ZXhwciwgJGwxNTpleHByLAorLSAgICAgICRsMTY6ZXhwciwgJGwxNzpleHBy LCAkbDE4OmV4cHIsICRsMTk6ZXhwciwKKy0gICAgICAkbDIwOmV4cHIsICRsMjE6ZXhwciwgJGwy MjpleHByLCAkbDIzOmV4cHIsCistICAgICAgJGwyNDpleHByLCAkbDI1OmV4cHIsICRsMjY6ZXhw ciwgJGwyNzpleHByLAorLSAgICAgICRsMjg6ZXhwciwgJGwyOTpleHByLCAkbDMwOmV4cHIsICRs MzE6ZXhwciwKKy0gICAgICAkbDMyOmV4cHIsICRsMzM6ZXhwciwgJGwzNDpleHByLCAkbDM1OmV4 cHIsCistICAgICAgJGwzNjpleHByLCAkbDM3OmV4cHIsICRsMzg6ZXhwciwgJGwzOTpleHByLAor LSAgICAgICRsNDA6ZXhwciwgJGw0MTpleHByLCAkbDQyOmV4cHIsICRsNDM6ZXhwciwKKy0gICAg ICAkbDQ0OmV4cHIsICRsNDU6ZXhwciwgJGw0NjpleHByLCAkbDQ3OmV4cHIsCistICAgICAgJGw0 ODpleHByLCAkbDQ5OmV4cHIsICRsNTA6ZXhwciwgJGw1MTpleHByLAorLSAgICAgICRsNTI6ZXhw ciwgJGw1MzpleHByLCAkbDU0OmV4cHIsICRsNTU6ZXhwciwKKy0gICAgICAkbDU2OmV4cHIsICRs NTc6ZXhwciwgJGw1ODpleHByLCAkbDU5OmV4cHIsCistICAgICAgJGw2MDpleHByLCAkbDYxOmV4 cHIsICRsNjI6ZXhwciwgJGw2MzpleHByXSkgPT4ge3sKKy0gICAgICAgICNbYWxsb3codW51c2Vk X3Vuc2FmZSldCistICAgICAgICB1bnNhZmUgeworLSAgICAgICAgICAgICRjcmF0ZTo6U2ltZCgk Y3JhdGU6Ol9fc2h1ZmZsZV92ZWN0b3I2NDo6PHtbCistICAgICAgICAgICAgICAgICRsMCwgJGwx LCAkbDIsICRsMywgJGw0LCAkbDUsICRsNiwgJGw3LCAkbDgsICRsOSwgJGwxMCwKKy0gICAgICAg ICAgICAgICAgJGwxMSwgJGwxMiwgJGwxMywgJGwxNCwgJGwxNSwgJGwxNiwgJGwxNywgJGwxOCwg JGwxOSwKKy0gICAgICAgICAgICAgICAgJGwyMCwgJGwyMSwgJGwyMiwgJGwyMywgJGwyNCwgJGwy NSwgJGwyNiwgJGwyNywgJGwyOCwKKy0gICAgICAgICAgICAgICAgJGwyOSwgJGwzMCwgJGwzMSwg JGwzMiwgJGwzMywgJGwzNCwgJGwzNSwgJGwzNiwgJGwzNywKKy0gICAgICAgICAgICAgICAgJGwz OCwgJGwzOSwgJGw0MCwgJGw0MSwgJGw0MiwgJGw0MywgJGw0NCwgJGw0NSwgJGw0NiwKKy0gICAg ICAgICAgICAgICAgJGw0NywgJGw0OCwgJGw0OSwgJGw1MCwgJGw1MSwgJGw1MiwgJGw1MywgJGw1 NCwgJGw1NSwKKy0gICAgICAgICAgICAgICAgJGw1NiwgJGw1NywgJGw1OCwgJGw1OSwgJGw2MCwg JGw2MSwgJGw2MiwgJGw2MywKKy0gICAgICAgICAgICBdfSwgXywgXz4oCistICAgICAgICAgICAg ICAgICR2ZWMwLjAsCistICAgICAgICAgICAgICAgICR2ZWMxLjAsCistICAgICAgICAgICAgKSkK Ky0gICAgICAgIH0KKy0gICAgIH19OworLSAgICAoJHZlYzpleHByLCBbJCgkbDpleHByKSwqXSkg PT4geworLSAgICAgICAgbWF0Y2ggJHZlYyB7CistICAgICAgICAgICAgdiA9PiBzaHVmZmxlISh2 LCB2LCBbJCgkbCksKl0pCistICAgICAgICB9CistICAgIH07CistfQorZGlmZiAtLWdpdCBhL3Ro aXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9zaHVmZmxlMV9keW4ucnMgYi90aGly ZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvc2h1ZmZsZTFfZHluLnJzCitkZWxldGVk IGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3Jj L2FwaS9zaHVmZmxlMV9keW4ucnMKKysrKyAvZGV2L251bGwKK0BAIC0xLDE1OSArMCwwIEBACist Ly8hIFNodWZmbGUgdmVjdG9yIGVsZW1lbnRzIGFjY29yZGluZyB0byBhIGR5bmFtaWMgdmVjdG9y IG9mIGluZGljZXMuCistCistbWFjcm9fcnVsZXMhIGltcGxfc2h1ZmZsZTFfZHluIHsKKy0gICAg KFskZWxlbV90eTppZGVudDsgJGVsZW1fY291bnQ6ZXhwcl06ICRpZDppZGVudCB8ICR0ZXN0X3R0 OnR0KSA9PiB7CistICAgICAgICBpbXBsICRpZCB7CistICAgICAgICAgICAgLy8vIFNodWZmbGUg dmVjdG9yIGVsZW1lbnRzIGFjY29yZGluZyB0byBgaW5kaWNlc2AuCistICAgICAgICAgICAgI1tp bmxpbmVdCistICAgICAgICAgICAgcHViIGZuIHNodWZmbGUxX2R5bjxJPihzZWxmLCBpbmRpY2Vz OiBJKSAtPiBTZWxmCistICAgICAgICAgICAgd2hlcmUKKy0gICAgICAgICAgICAgICAgU2VsZjog Y29kZWdlbjo6c2h1ZmZsZTFfZHluOjpTaHVmZmxlMUR5bjxJbmRpY2VzID0gST4sCistICAgICAg ICAgICAgeworLSAgICAgICAgICAgICAgICBjb2RlZ2VuOjpzaHVmZmxlMV9keW46OlNodWZmbGUx RHluOjpzaHVmZmxlMV9keW4oc2VsZiwgaW5kaWNlcykKKy0gICAgICAgICAgICB9CistICAgICAg ICB9CistICAgIH07CistfQorLQorLW1hY3JvX3J1bGVzISB0ZXN0X3NodWZmbGUxX2R5biB7Cist ICAgIChbJGVsZW1fdHk6aWRlbnQ7ICRlbGVtX2NvdW50OmV4cHJdOiAkaWQ6aWRlbnQgfCAkdGVz dF90dDp0dCkgPT4geworLSAgICAgICAgdGVzdF9pZiEgeworLSAgICAgICAgICAgICR0ZXN0X3R0 OgorLSAgICAgICAgICAgIHBhc3RlOjppdGVtISB7CistICAgICAgICAgICAgICAgIHB1YiBtb2Qg WzwkaWQgX3NodWZmbGUxX2R5bj5dIHsKKy0gICAgICAgICAgICAgICAgICAgIHVzZSBzdXBlcjo6 KjsKKy0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndh c20zMiIpLCB0ZXN0KV0gI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2Jp bmRnZW5fdGVzdCldCistICAgICAgICAgICAgICAgICAgICBmbiBzaHVmZmxlMV9keW4oKSB7Cist ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGluY3JlYXNpbmcgPSB7CistICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGxldCBtdXQgdiA9ICRpZDo6c3BsYXQoMCBhcyAkZWxlbV90eSk7Cist ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciBpIGluIDAuLiRpZDo6bGFuZXMoKSB7Cist ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ID0gdi5yZXBsYWNlKGksIGkgYXMgJGVs ZW1fdHkpOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHYKKy0gICAgICAgICAgICAgICAgICAgICAgICB9OworLSAgICAgICAgICAg ICAgICAgICAgICAgIGxldCBkZWNyZWFzaW5nID0geworLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICBsZXQgbXV0IHYgPSAkaWQ6OnNwbGF0KDAgYXMgJGVsZW1fdHkpOworLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICBmb3IgaSBpbiAwLi4kaWQ6OmxhbmVzKCkgeworLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgdiA9IHYucmVwbGFjZSgKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBpLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICgkaWQ6OmxhbmVzKCkgLSAxIC0gaSkgYXMgJGVsZW1fdHkKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgdgorLSAgICAgICAgICAgICAgICAgICAgICAgIH07CistCist ICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSBJbmRpY2VzID0gPAorLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAkaWQgYXMgY29kZWdlbjo6c2h1ZmZsZTFfZHluOjpTaHVmZmxlMUR5bgor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICA+OjpJbmRpY2VzOworLSAgICAgICAgICAgICAg ICAgICAgICAgIGxldCBpbmNyZWFzaW5nX2lkczogSW5kaWNlcyA9IGluY3JlYXNpbmcuY2FzdCgp OworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZWNyZWFzaW5nX2lkczogSW5kaWNlcyA9 IGRlY3JlYXNpbmcuY2FzdCgpOworLQorLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9l cSEoCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluY3JlYXNpbmcuc2h1ZmZsZTFfZHlu KGluY3JlYXNpbmdfaWRzKSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5jcmVhc2lu ZywKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIihpLGkpPT5pIgorLSAgICAgICAgICAg ICAgICAgICAgICAgICk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISgKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVjcmVhc2luZy5zaHVmZmxlMV9keW4oaW5jcmVh c2luZ19pZHMpLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWNyZWFzaW5nLAorLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAiKGQsaSk9PmQiCistICAgICAgICAgICAgICAgICAg ICAgICAgKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKAorLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICBpbmNyZWFzaW5nLnNodWZmbGUxX2R5bihkZWNyZWFzaW5nX2lk cyksCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlY3JlYXNpbmcsCistICAgICAgICAg ICAgICAgICAgICAgICAgICAgICIoaSxkKT0+ZCIKKy0gICAgICAgICAgICAgICAgICAgICAgICAp OworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoCistICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGRlY3JlYXNpbmcuc2h1ZmZsZTFfZHluKGRlY3JlYXNpbmdfaWRzKSwKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5jcmVhc2luZywKKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgIihkLGQpPT5pIgorLSAgICAgICAgICAgICAgICAgICAgICAgICk7CistCist ICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGkgaW4gMC4uJGlkOjpsYW5lcygpIHsKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHZfaWRzOiBJbmRpY2VzCistICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICA9ICRpZDo6c3BsYXQoaSBhcyAkZWxlbV90eSkuY2FzdCgpOwor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGluY3JlYXNpbmcuc2h1ZmZs ZTFfZHluKHZfaWRzKSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAk aWQ6OnNwbGF0KGluY3JlYXNpbmcuZXh0cmFjdChpKSkKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShkZWNyZWFz aW5nLnNodWZmbGUxX2R5bih2X2lkcyksCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgJGlkOjpzcGxhdChkZWNyZWFzaW5nLmV4dHJhY3QoaSkpCistICAgICAgICAgICAg ICAgICAgICAgICAgICAgICk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9l cSEoCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaWQ6OnNwbGF0KGkgYXMgJGVs ZW1fdHkpCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnNodWZmbGUxX2R5 bihpbmNyZWFzaW5nX2lkcyksCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaWQ6 OnNwbGF0KGkgYXMgJGVsZW1fdHkpCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7Cist ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoCistICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAkaWQ6OnNwbGF0KGkgYXMgJGVsZW1fdHkpCistICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgLnNodWZmbGUxX2R5bihkZWNyZWFzaW5nX2lkcyksCist ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaWQ6OnNwbGF0KGkgYXMgJGVsZW1fdHkp CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CistICAgICAgICAgICAgICAgICAgICAg ICAgfQorLSAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICB9CistICAgICAg ICAgICAgfQorLSAgICAgICAgfQorLSAgICB9OworLX0KKy0KKy1tYWNyb19ydWxlcyEgdGVzdF9z aHVmZmxlMV9keW5fbWFzayB7CistICAgIChbJGVsZW1fdHk6aWRlbnQ7ICRlbGVtX2NvdW50OmV4 cHJdOiAkaWQ6aWRlbnQgfCAkdGVzdF90dDp0dCkgPT4geworLSAgICAgICAgdGVzdF9pZiEgewor LSAgICAgICAgICAgICR0ZXN0X3R0OgorLSAgICAgICAgICAgIHBhc3RlOjppdGVtISB7CistICAg ICAgICAgICAgICAgIHB1YiBtb2QgWzwkaWQgX3NodWZmbGUxX2R5bj5dIHsKKy0gICAgICAgICAg ICAgICAgICAgIHVzZSBzdXBlcjo6KjsKKy0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIo bm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0gI1tjZmdfYXR0cih0YXJnZXRfYXJj aCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCistICAgICAgICAgICAgICAgICAgICBm biBzaHVmZmxlMV9keW4oKSB7CistICAgICAgICAgICAgICAgICAgICAgICAgLy8gYWx0ZXJuYXRp bmcgPSBbdHJ1ZSwgZmFsc2UsIHRydWUsIGZhbHNlLCAuLi5dCistICAgICAgICAgICAgICAgICAg ICAgICAgbGV0IG11dCBhbHRlcm5hdGluZyA9ICRpZDo6c3BsYXQoZmFsc2UpOworLSAgICAgICAg ICAgICAgICAgICAgICAgIGZvciBpIGluIDAuLiRpZDo6bGFuZXMoKSB7CistICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGlmIGkgJSAyID09IDAgeworLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgYWx0ZXJuYXRpbmcgPSBhbHRlcm5hdGluZy5yZXBsYWNlKGksIHRydWUpOworLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICAgICAgfQor LQorLSAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgSW5kaWNlcyA9IDwKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgJGlkIGFzIGNvZGVnZW46OnNodWZmbGUxX2R5bjo6U2h1ZmZsZTFE eW4KKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPjo6SW5kaWNlczsKKy0gICAgICAgICAg ICAgICAgICAgICAgICAvLyBldmVuID0gWzAsIDAsIDIsIDIsIDQsIDQsIC4uXQorLSAgICAgICAg ICAgICAgICAgICAgICAgIGxldCBldmVuID0geworLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICBsZXQgbXV0IHYgPSBJbmRpY2VzOjpzcGxhdCgwKTsKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgZm9yIGkgaW4gMC4uJGlkOjpsYW5lcygpIHsKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGlmIGkgJSAyID09IDAgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHYgPSB2LnJlcGxhY2UoaSwgKGkgYXMgdTgpLmludG8oKSk7CistICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHYgPSB2LnJlcGxhY2UoaSwgKGkgYXMgdTggLSAxKS5pbnRvKCkpOworLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICB9CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYKKy0gICAgICAgICAgICAgICAgICAg ICAgICB9OworLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIG9kZCA9IFsxLCAxLCAzLCAzLCA1 LCA1LCAuLi5dCistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG9kZCA9IHsKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCB2ID0gSW5kaWNlczo6c3BsYXQoMCk7CistICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGZvciBpIGluIDAuLiRpZDo6bGFuZXMoKSB7CistICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBpICUgMiAhPSAwIHsKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB2ID0gdi5yZXBsYWNlKGksIChpIGFzIHU4KS5pbnRv KCkpOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ID0gdi5yZXBsYWNlKGksIChpIGFzIHU4ICsg MSkuaW50bygpKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2Cist ICAgICAgICAgICAgICAgICAgICAgICAgfTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICBh c3NlcnRfZXEhKAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHRlcm5hdGluZy5zaHVm ZmxlMV9keW4oZXZlbiksCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpZDo6c3BsYXQo dHJ1ZSkKKy0gICAgICAgICAgICAgICAgICAgICAgICApOworLSAgICAgICAgICAgICAgICAgICAg ICAgIGlmICRpZDo6bGFuZXMoKSA+IDEgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBh c3NlcnRfZXEhKAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0ZXJuYXRpbmcu c2h1ZmZsZTFfZHluKG9kZCksCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaWQ6 OnNwbGF0KGZhbHNlKQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICApOworLSAgICAgICAg ICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAg ICAgfQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgfTsKKy19CitkaWZmIC0tZ2l0 IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL3NsaWNlLnJzIGIvdGhpcmRf cGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL3NsaWNlLnJzCitkZWxldGVkIGZpbGUgbW9k ZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9zbGlj ZS5ycworKysrIC9kZXYvbnVsbAorQEAgLTEsNyArMCwwIEBACistLy8hIFNsaWNlIGZyb20vdG8g bWV0aG9kcworLQorLSNbbWFjcm9fdXNlXQorLW1vZCBmcm9tX3NsaWNlOworLQorLSNbbWFjcm9f dXNlXQorLW1vZCB3cml0ZV90b19zbGljZTsKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0 L3BhY2tlZF9zaW1kL3NyYy9hcGkvc2xpY2UvZnJvbV9zbGljZS5ycyBiL3RoaXJkX3BhcnR5L3J1 c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9zbGljZS9mcm9tX3NsaWNlLnJzCitkZWxldGVkIGZpbGUg bW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9z bGljZS9mcm9tX3NsaWNlLnJzCisrKysgL2Rldi9udWxsCitAQCAtMSwyMDIgKzAsMCBAQAorLS8v ISBJbXBsZW1lbnRzIG1ldGhvZHMgdG8gcmVhZCBhIHZlY3RvciB0eXBlIGZyb20gYSBzbGljZS4K Ky0KKy1tYWNyb19ydWxlcyEgaW1wbF9zbGljZV9mcm9tX3NsaWNlIHsKKy0gICAgKFskZWxlbV90 eTppZGVudDsgJGVsZW1fY291bnQ6ZXhwcl06ICRpZDppZGVudCB8ICR0ZXN0X3R0OnR0KSA9PiB7 CistICAgICAgICBpbXBsICRpZCB7CistICAgICAgICAgICAgLy8vIEluc3RhbnRpYXRlcyBhIG5l dyB2ZWN0b3Igd2l0aCB0aGUgdmFsdWVzIG9mIHRoZSBgc2xpY2VgLgorLSAgICAgICAgICAgIC8v LworLSAgICAgICAgICAgIC8vLyAjIFBhbmljcworLSAgICAgICAgICAgIC8vLworLSAgICAgICAg ICAgIC8vLyBJZiBgc2xpY2UubGVuKCkgPCBTZWxmOjpsYW5lcygpYCBvciBgJnNsaWNlWzBdYCBp cyBub3QgYWxpZ25lZAorLSAgICAgICAgICAgIC8vLyB0byBhbiBgYWxpZ25fb2Y6OjxTZWxmPigp YCBib3VuZGFyeS4KKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBwdWIgZm4g ZnJvbV9zbGljZV9hbGlnbmVkKHNsaWNlOiAmWyRlbGVtX3R5XSkgLT4gU2VsZiB7CistICAgICAg ICAgICAgICAgIHVuc2FmZSB7CistICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKHNsaWNlLmxl bigpID49ICRlbGVtX2NvdW50KTsKKy0gICAgICAgICAgICAgICAgICAgIGxldCB0YXJnZXRfcHRy ID0gc2xpY2UuYXNfcHRyKCk7CistICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHRhcmdl dF9wdHIuYWxpZ25fb2Zmc2V0KGNyYXRlOjptZW06OmFsaWduX29mOjo8U2VsZj4oKSksIDApOwor LSAgICAgICAgICAgICAgICAgICAgU2VsZjo6ZnJvbV9zbGljZV9hbGlnbmVkX3VuY2hlY2tlZChz bGljZSkKKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAg ICAvLy8gSW5zdGFudGlhdGVzIGEgbmV3IHZlY3RvciB3aXRoIHRoZSB2YWx1ZXMgb2YgdGhlIGBz bGljZWAuCistICAgICAgICAgICAgLy8vCistICAgICAgICAgICAgLy8vICMgUGFuaWNzCistICAg ICAgICAgICAgLy8vCistICAgICAgICAgICAgLy8vIElmIGBzbGljZS5sZW4oKSA8IFNlbGY6Omxh bmVzKClgLgorLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIHB1YiBmbiBmcm9t X3NsaWNlX3VuYWxpZ25lZChzbGljZTogJlskZWxlbV90eV0pIC0+IFNlbGYgeworLSAgICAgICAg ICAgICAgICB1bnNhZmUgeworLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IShzbGljZS5sZW4o KSA+PSAkZWxlbV9jb3VudCk7CistICAgICAgICAgICAgICAgICAgICBTZWxmOjpmcm9tX3NsaWNl X3VuYWxpZ25lZF91bmNoZWNrZWQoc2xpY2UpCistICAgICAgICAgICAgICAgIH0KKy0gICAgICAg ICAgICB9CistCistICAgICAgICAgICAgLy8vIEluc3RhbnRpYXRlcyBhIG5ldyB2ZWN0b3Igd2l0 aCB0aGUgdmFsdWVzIG9mIHRoZSBgc2xpY2VgLgorLSAgICAgICAgICAgIC8vLworLSAgICAgICAg ICAgIC8vLyAjIFNhZmV0eQorLSAgICAgICAgICAgIC8vLworLSAgICAgICAgICAgIC8vLyBJZiBg c2xpY2UubGVuKCkgPCBTZWxmOjpsYW5lcygpYCBvciBgJnNsaWNlWzBdYCBpcyBub3QgYWxpZ25l ZAorLSAgICAgICAgICAgIC8vLyB0byBhbiBgYWxpZ25fb2Y6OjxTZWxmPigpYCBib3VuZGFyeSwg dGhlIGJlaGF2aW9yIGlzIHVuZGVmaW5lZC4KKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAg ICAgICAgICBwdWIgdW5zYWZlIGZuIGZyb21fc2xpY2VfYWxpZ25lZF91bmNoZWNrZWQoc2xpY2U6 ICZbJGVsZW1fdHldKSAtPiBTZWxmIHsKKy0gICAgICAgICAgICAgICAgZGVidWdfYXNzZXJ0IShz bGljZS5sZW4oKSA+PSAkZWxlbV9jb3VudCk7CistICAgICAgICAgICAgICAgIGxldCB0YXJnZXRf cHRyID0gc2xpY2UuYXNfcHRyKCk7CistICAgICAgICAgICAgICAgIGRlYnVnX2Fzc2VydF9lcSEo dGFyZ2V0X3B0ci5hbGlnbl9vZmZzZXQoY3JhdGU6Om1lbTo6YWxpZ25fb2Y6OjxTZWxmPigpKSwg MCk7CistCistICAgICAgICAgICAgICAgICNbYWxsb3coY2xpcHB5OjpjYXN0X3B0cl9hbGlnbm1l bnQpXQorLSAgICAgICAgICAgICAgICAqKHRhcmdldF9wdHIgYXMgKmNvbnN0IFNlbGYpCistICAg ICAgICAgICAgfQorLQorLSAgICAgICAgICAgIC8vLyBJbnN0YW50aWF0ZXMgYSBuZXcgdmVjdG9y IHdpdGggdGhlIHZhbHVlcyBvZiB0aGUgYHNsaWNlYC4KKy0gICAgICAgICAgICAvLy8KKy0gICAg ICAgICAgICAvLy8gIyBTYWZldHkKKy0gICAgICAgICAgICAvLy8KKy0gICAgICAgICAgICAvLy8g SWYgYHNsaWNlLmxlbigpIDwgU2VsZjo6bGFuZXMoKWAgdGhlIGJlaGF2aW9yIGlzIHVuZGVmaW5l ZC4KKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBwdWIgdW5zYWZlIGZuIGZy b21fc2xpY2VfdW5hbGlnbmVkX3VuY2hlY2tlZChzbGljZTogJlskZWxlbV90eV0pIC0+IFNlbGYg eworLSAgICAgICAgICAgICAgICB1c2UgY3JhdGU6Om1lbTo6c2l6ZV9vZjsKKy0gICAgICAgICAg ICAgICAgZGVidWdfYXNzZXJ0IShzbGljZS5sZW4oKSA+PSAkZWxlbV9jb3VudCk7CistICAgICAg ICAgICAgICAgIGxldCB0YXJnZXRfcHRyID0gc2xpY2UuYXNfcHRyKCkuY2FzdCgpOworLSAgICAg ICAgICAgICAgICBsZXQgbXV0IHggPSBTZWxmOjpzcGxhdCgwIGFzICRlbGVtX3R5KTsKKy0gICAg ICAgICAgICAgICAgbGV0IHNlbGZfcHRyID0gJm11dCB4IGFzICptdXQgU2VsZiBhcyAqbXV0IHU4 OworLSAgICAgICAgICAgICAgICBjcmF0ZTo6cHRyOjpjb3B5X25vbm92ZXJsYXBwaW5nKHRhcmdl dF9wdHIsIHNlbGZfcHRyLCBzaXplX29mOjo8U2VsZj4oKSk7CistICAgICAgICAgICAgICAgIHgK Ky0gICAgICAgICAgICB9CistICAgICAgICB9CistCistICAgICAgICB0ZXN0X2lmISB7CistICAg ICAgICAgICAgJHRlc3RfdHQ6CistICAgICAgICAgICAgcGFzdGU6Oml0ZW0hIHsKKy0gICAgICAg ICAgICAgICAgLy8gQ29tcGFyaXNvbnMgdXNlIGludGVnZXIgY2FzdHMgd2l0aGluIG1hbnRpc3Nh XjEgcmFuZ2UuCistICAgICAgICAgICAgICAgICNbYWxsb3coY2xpcHB5OjpmbG9hdF9jbXApXQor LSAgICAgICAgICAgICAgICBwdWIgbW9kIFs8JGlkIF9zbGljZV9mcm9tX3NsaWNlPl0geworLSAg ICAgICAgICAgICAgICAgICAgdXNlIHN1cGVyOjoqOworLSAgICAgICAgICAgICAgICAgICAgdXNl IGNyYXRlOjppdGVyOjpJdGVyYXRvcjsKKy0KKy0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0 dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0KKy0gICAgICAgICAgICAgICAg ICAgICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3Qp XQorLSAgICAgICAgICAgICAgICAgICAgZm4gZnJvbV9zbGljZV91bmFsaWduZWQoKSB7CistICAg ICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCB1bmFsaWduZWQgPSBbNDIgYXMgJGVsZW1fdHk7 ICRpZDo6bGFuZXMoKSArIDFdOworLSAgICAgICAgICAgICAgICAgICAgICAgIHVuYWxpZ25lZFsw XSA9IDAgYXMgJGVsZW1fdHk7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHZlYyA9ICRp ZDo6ZnJvbV9zbGljZV91bmFsaWduZWQoJnVuYWxpZ25lZFsxLi5dKTsKKy0gICAgICAgICAgICAg ICAgICAgICAgICBmb3IgKGluZGV4LCAmYikgaW4gdW5hbGlnbmVkLml0ZXIoKS5lbnVtZXJhdGUo KSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGluZGV4ID09IDAgeworLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShiLCAwIGFzICRlbGVtX3R5KTsK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoYiwgNDIgYXMgJGVsZW1fdHkpOworLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShiLCB2ZWMuZXh0cmFjdChpbmRleCAt IDEpKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAg ICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICAgICAgICAg IC8vIEZJWE1FOiB3YXNtLWJpbmRnZW4tdGVzdCBkb2VzIG5vdCBzdXBwb3J0ICNbc2hvdWxkX3Bh bmljXQorLSAgICAgICAgICAgICAgICAgICAgLy8gI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2gg PSAid2FzbTMyIiksIHRlc3QpXQorLSAgICAgICAgICAgICAgICAgICAgLy8gI1tjZmdfYXR0cih0 YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCistICAgICAgICAgICAg ICAgICAgICAjW2NmZyhub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIikpXQorLSAgICAgICAgICAg ICAgICAgICAgI1t0ZXN0XQorLSAgICAgICAgICAgICAgICAgICAgI1tzaG91bGRfcGFuaWNdCist ICAgICAgICAgICAgICAgICAgICBmbiBmcm9tX3NsaWNlX3VuYWxpZ25lZF9mYWlsKCkgeworLSAg ICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgdW5hbGlnbmVkID0gWzQyIGFzICRlbGVtX3R5 OyAkaWQ6OmxhbmVzKCkgKyAxXTsKKy0gICAgICAgICAgICAgICAgICAgICAgICB1bmFsaWduZWRb MF0gPSAwIGFzICRlbGVtX3R5OworLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoZSBzbGlj ZSBpcyBub3QgbGFyZ2UgZW5vdWdoID0+IHBhbmljCistICAgICAgICAgICAgICAgICAgICAgICAg bGV0IF92ZWMgPSAkaWQ6OmZyb21fc2xpY2VfdW5hbGlnbmVkKCZ1bmFsaWduZWRbMi4uXSk7Cist ICAgICAgICAgICAgICAgICAgICB9CistCistICAgICAgICAgICAgICAgICAgICB1bmlvbiBBIHsK Ky0gICAgICAgICAgICAgICAgICAgICAgICBkYXRhOiBbJGVsZW1fdHk7IDIgKiAkaWQ6OmxhbmVz KCldLAorLSAgICAgICAgICAgICAgICAgICAgICAgIF92ZWM6ICRpZCwKKy0gICAgICAgICAgICAg ICAgICAgIH0KKy0KKy0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9h cmNoID0gIndhc20zMiIpLCB0ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIo dGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQorLSAgICAgICAgICAg ICAgICAgICAgZm4gZnJvbV9zbGljZV9hbGlnbmVkKCkgeworLSAgICAgICAgICAgICAgICAgICAg ICAgIGxldCBtdXQgYWxpZ25lZCA9IEEgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBk YXRhOiBbMCBhcyAkZWxlbV90eTsgMiAqICRpZDo6bGFuZXMoKV0sCistICAgICAgICAgICAgICAg ICAgICAgICAgfTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBmb3IgaSBpbiAkaWQ6OmxhbmVz KCkuLigyICogJGlkOjpsYW5lcygpKSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVu c2FmZSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGlnbmVkLmRhdGFbaV0g PSA0MiBhcyAkZWxlbV90eTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorLSAgICAg ICAgICAgICAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdmVj ID0gdW5zYWZlIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGlkOjpmcm9tX3NsaWNl X2FsaWduZWQoCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmYWxpZ25lZC5kYXRh WyRpZDo6bGFuZXMoKS4uXQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICApCistICAgICAg ICAgICAgICAgICAgICAgICAgfTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGluZGV4 LCAmYikgaW4KKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zYWZlIHsgYWxpZ25lZC5k YXRhLml0ZXIoKS5lbnVtZXJhdGUoKSB9IHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg aWYgaW5kZXggPCAkaWQ6OmxhbmVzKCkgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgYXNzZXJ0X2VxIShiLCAwIGFzICRlbGVtX3R5KTsKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgfSBlbHNlIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9l cSEoYiwgNDIgYXMgJGVsZW1fdHkpOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg YXNzZXJ0X2VxISgKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiLCB2ZWMu ZXh0cmFjdChpbmRleCAtICRpZDo6bGFuZXMoKSkKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAg ICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICB9CistCistICAgICAgICAgICAgICAg ICAgICAvLyBGSVhNRTogd2FzbS1iaW5kZ2VuLXRlc3QgZG9lcyBub3Qgc3VwcG9ydCAjW3Nob3Vs ZF9wYW5pY10KKy0gICAgICAgICAgICAgICAgICAgIC8vICNbY2ZnX2F0dHIobm90KHRhcmdldF9h cmNoID0gIndhc20zMiIpLCB0ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAgIC8vICNbY2ZnX2F0 dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQorLSAgICAgICAg ICAgICAgICAgICAgI1tjZmcobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpKV0KKy0gICAgICAg ICAgICAgICAgICAgICNbdGVzdF0KKy0gICAgICAgICAgICAgICAgICAgICNbc2hvdWxkX3Bhbmlj XQorLSAgICAgICAgICAgICAgICAgICAgZm4gZnJvbV9zbGljZV9hbGlnbmVkX2ZhaWxfbGFuZXMo KSB7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGFsaWduZWQgPSBBIHsKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgZGF0YTogWzAgYXMgJGVsZW1fdHk7IDIgKiAkaWQ6OmxhbmVz KCldLAorLSAgICAgICAgICAgICAgICAgICAgICAgIH07CistICAgICAgICAgICAgICAgICAgICAg ICAgbGV0IF92ZWMgPSB1bnNhZmUgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaWQ6 OmZyb21fc2xpY2VfYWxpZ25lZCgKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZh bGlnbmVkLmRhdGFbMiAqICRpZDo6bGFuZXMoKS4uXQorLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICApCistICAgICAgICAgICAgICAgICAgICAgICAgfTsKKy0gICAgICAgICAgICAgICAgICAg IH0KKy0KKy0gICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiB3YXNtLWJpbmRnZW4tdGVzdCBk b2VzIG5vdCBzdXBwb3J0ICNbc2hvdWxkX3BhbmljXQorLSAgICAgICAgICAgICAgICAgICAgLy8g I1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXQorLSAgICAgICAg ICAgICAgICAgICAgLy8gI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2Jp bmRnZW5fdGVzdCldCistICAgICAgICAgICAgICAgICAgICAjW2NmZyhub3QodGFyZ2V0X2FyY2gg PSAid2FzbTMyIikpXQorLSAgICAgICAgICAgICAgICAgICAgI1t0ZXN0XQorLSAgICAgICAgICAg ICAgICAgICAgI1tzaG91bGRfcGFuaWNdCistICAgICAgICAgICAgICAgICAgICBmbiBmcm9tX3Ns aWNlX2FsaWduZWRfZmFpbF9hbGlnbigpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICB1bnNh ZmUgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgYWxpZ25lZCA9IEEgeworLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YTogWzAgYXMgJGVsZW1fdHk7IDIgKiAk aWQ6OmxhbmVzKCldLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9OworLQorLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAvLyBnZXQgYSBwb2ludGVyIHRvIHRoZSBmcm9udCBvZiBk YXRhCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBwdHI6ICpjb25zdCAkZWxlbV90 eSA9IGFsaWduZWQuZGF0YS5hc19wdHIoKQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgYXMgKmNvbnN0ICRlbGVtX3R5OworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBv ZmZzZXQgcG9pbnRlciBieSBvbmUgZWxlbWVudAorLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICBsZXQgcHRyID0gcHRyLndyYXBwaW5nX2FkZCgxKTsKKy0KKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgaWYgcHRyLmFsaWduX29mZnNldCgKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGNyYXRlOjptZW06OmFsaWduX29mOjo8JGlkPigpCistICAgICAgICAgICAgICAgICAg ICAgICAgICAgICkgPT0gMCB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0 aGUgcG9pbnRlciBpcyBwcm9wZXJseSBhbGlnbmVkLCBzbworLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgLy8gZnJvbV9zbGljZV9hbGlnbmVkIHdvbid0IGZhaWwgaGVyZSAoZS5nLiB0 aGlzCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBjYW4gaGFwcGVuIGZvciBp MTI4eDEpLiBTbyB3ZSBwYW5pYyB0byBtYWtlCistICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAvLyB0aGUgInNob3VsZF9mYWlsIiB0ZXN0IHBhc3M6CistICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBwYW5pYyEoIm9rIik7CistICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0KKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY3JlYXRlIGEgc2xpY2UgLSB0 aGlzIGlzIHNhZmUsIGJlY2F1c2UgdGhlCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8v IGVsZW1lbnRzIG9mIHRoZSBzbGljZSBleGlzdCwgYXJlIHByb3Blcmx5CistICAgICAgICAgICAg ICAgICAgICAgICAgICAgIC8vIGluaXRpYWxpemVkLCBhbmQgcHJvcGVybHkgYWxpZ25lZDoKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHM6ICZbJGVsZW1fdHldID0gc2xpY2U6OmZy b21fcmF3X3BhcnRzKAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHRyLCAkaWQ6 OmxhbmVzKCkKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKKy0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgLy8gdGhpcyBzaG91bGQgYWx3YXlzIHBhbmljIGJlY2F1c2UgdGhlIHNs aWNlCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFsaWdubWVudCBkb2VzIG5vdCBt YXRjaCB0aGUgYWxpZ25tZW50CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJlcXVp cmVtZW50cyBmb3IgdGhlIHZlY3RvciB0eXBlOgorLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICBsZXQgX3ZlYyA9ICRpZDo6ZnJvbV9zbGljZV9hbGlnbmVkKHMpOworLSAgICAgICAgICAgICAg ICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgfQor LSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgfTsKKy19CitkaWZmIC0tZ2l0IGEvdGhp cmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL3NsaWNlL3dyaXRlX3RvX3NsaWNlLnJz IGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL3NsaWNlL3dyaXRlX3RvX3Ns aWNlLnJzCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3Qv cGFja2VkX3NpbWQvc3JjL2FwaS9zbGljZS93cml0ZV90b19zbGljZS5ycworKysrIC9kZXYvbnVs bAorQEAgLTEsMTk2ICswLDAgQEAKKy0vLyEgSW1wbGVtZW50cyBtZXRob2RzIHRvIHdyaXRlIGEg dmVjdG9yIHR5cGUgdG8gYSBzbGljZS4KKy0KKy1tYWNyb19ydWxlcyEgaW1wbF9zbGljZV93cml0 ZV90b19zbGljZSB7CistICAgIChbJGVsZW1fdHk6aWRlbnQ7ICRlbGVtX2NvdW50OmV4cHJdOiAk aWQ6aWRlbnQgfCAkdGVzdF90dDp0dCkgPT4geworLSAgICAgICAgaW1wbCAkaWQgeworLSAgICAg ICAgICAgIC8vLyBXcml0ZXMgdGhlIHZhbHVlcyBvZiB0aGUgdmVjdG9yIHRvIHRoZSBgc2xpY2Vg LgorLSAgICAgICAgICAgIC8vLworLSAgICAgICAgICAgIC8vLyAjIFBhbmljcworLSAgICAgICAg ICAgIC8vLworLSAgICAgICAgICAgIC8vLyBJZiBgc2xpY2UubGVuKCkgPCBTZWxmOjpsYW5lcygp YCBvciBgJnNsaWNlWzBdYCBpcyBub3QKKy0gICAgICAgICAgICAvLy8gYWxpZ25lZCB0byBhbiBg YWxpZ25fb2Y6OjxTZWxmPigpYCBib3VuZGFyeS4KKy0gICAgICAgICAgICAjW2lubGluZV0KKy0g ICAgICAgICAgICBwdWIgZm4gd3JpdGVfdG9fc2xpY2VfYWxpZ25lZChzZWxmLCBzbGljZTogJm11 dCBbJGVsZW1fdHldKSB7CistICAgICAgICAgICAgICAgIHVuc2FmZSB7CistICAgICAgICAgICAg ICAgICAgICBhc3NlcnQhKHNsaWNlLmxlbigpID49ICRlbGVtX2NvdW50KTsKKy0gICAgICAgICAg ICAgICAgICAgIGxldCB0YXJnZXRfcHRyID0gc2xpY2UuYXNfbXV0X3B0cigpOworLSAgICAgICAg ICAgICAgICAgICAgYXNzZXJ0X2VxISh0YXJnZXRfcHRyLmFsaWduX29mZnNldChjcmF0ZTo6bWVt OjphbGlnbl9vZjo6PFNlbGY+KCkpLCAwKTsKKy0gICAgICAgICAgICAgICAgICAgIHNlbGYud3Jp dGVfdG9fc2xpY2VfYWxpZ25lZF91bmNoZWNrZWQoc2xpY2UpOworLSAgICAgICAgICAgICAgICB9 CistICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgIC8vLyBXcml0ZXMgdGhlIHZhbHVlcyBv ZiB0aGUgdmVjdG9yIHRvIHRoZSBgc2xpY2VgLgorLSAgICAgICAgICAgIC8vLworLSAgICAgICAg ICAgIC8vLyAjIFBhbmljcworLSAgICAgICAgICAgIC8vLworLSAgICAgICAgICAgIC8vLyBJZiBg c2xpY2UubGVuKCkgPCBTZWxmOjpsYW5lcygpYC4KKy0gICAgICAgICAgICAjW2lubGluZV0KKy0g ICAgICAgICAgICBwdWIgZm4gd3JpdGVfdG9fc2xpY2VfdW5hbGlnbmVkKHNlbGYsIHNsaWNlOiAm bXV0IFskZWxlbV90eV0pIHsKKy0gICAgICAgICAgICAgICAgdW5zYWZlIHsKKy0gICAgICAgICAg ICAgICAgICAgIGFzc2VydCEoc2xpY2UubGVuKCkgPj0gJGVsZW1fY291bnQpOworLSAgICAgICAg ICAgICAgICAgICAgc2VsZi53cml0ZV90b19zbGljZV91bmFsaWduZWRfdW5jaGVja2VkKHNsaWNl KTsKKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICAv Ly8gV3JpdGVzIHRoZSB2YWx1ZXMgb2YgdGhlIHZlY3RvciB0byB0aGUgYHNsaWNlYC4KKy0gICAg ICAgICAgICAvLy8KKy0gICAgICAgICAgICAvLy8gIyBTYWZldHkKKy0gICAgICAgICAgICAvLy8K Ky0gICAgICAgICAgICAvLy8gSWYgYHNsaWNlLmxlbigpIDwgU2VsZjo6bGFuZXMoKWAgb3IgYCZz bGljZVswXWAgaXMgbm90CistICAgICAgICAgICAgLy8vIGFsaWduZWQgdG8gYW4gYGFsaWduX29m Ojo8U2VsZj4oKWAgYm91bmRhcnksIHRoZSBiZWhhdmlvciBpcworLSAgICAgICAgICAgIC8vLyB1 bmRlZmluZWQuCistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgcHViIHVuc2Fm ZSBmbiB3cml0ZV90b19zbGljZV9hbGlnbmVkX3VuY2hlY2tlZChzZWxmLCBzbGljZTogJm11dCBb JGVsZW1fdHldKSB7CistICAgICAgICAgICAgICAgIGRlYnVnX2Fzc2VydCEoc2xpY2UubGVuKCkg Pj0gJGVsZW1fY291bnQpOworLSAgICAgICAgICAgICAgICBsZXQgdGFyZ2V0X3B0ciA9IHNsaWNl LmFzX211dF9wdHIoKTsKKy0gICAgICAgICAgICAgICAgZGVidWdfYXNzZXJ0X2VxISh0YXJnZXRf cHRyLmFsaWduX29mZnNldChjcmF0ZTo6bWVtOjphbGlnbl9vZjo6PFNlbGY+KCkpLCAwKTsKKy0K Ky0gICAgICAgICAgICAgICAgI1thbGxvdyhjbGlwcHk6OmNhc3RfcHRyX2FsaWdubWVudCldCist ICAgICAgICAgICAgICAgICNbYWxsb3coY2xpcHB5OjpjYXN0X3B0cl9hbGlnbm1lbnQpXQorLSAg ICAgICAgICAgICAgICAjW2FsbG93KGNsaXBweTo6Y2FzdF9wdHJfYWxpZ25tZW50KV0KKy0gICAg ICAgICAgICAgICAgI1thbGxvdyhjbGlwcHk6OmNhc3RfcHRyX2FsaWdubWVudCldCistICAgICAg ICAgICAgICAgICoodGFyZ2V0X3B0ciBhcyAqbXV0IFNlbGYpID0gc2VsZjsKKy0gICAgICAgICAg ICB9CistCistICAgICAgICAgICAgLy8vIFdyaXRlcyB0aGUgdmFsdWVzIG9mIHRoZSB2ZWN0b3Ig dG8gdGhlIGBzbGljZWAuCistICAgICAgICAgICAgLy8vCistICAgICAgICAgICAgLy8vICMgU2Fm ZXR5CistICAgICAgICAgICAgLy8vCistICAgICAgICAgICAgLy8vIElmIGBzbGljZS5sZW4oKSA8 IFNlbGY6OmxhbmVzKClgIHRoZSBiZWhhdmlvciBpcyB1bmRlZmluZWQuCistICAgICAgICAgICAg I1tpbmxpbmVdCistICAgICAgICAgICAgcHViIHVuc2FmZSBmbiB3cml0ZV90b19zbGljZV91bmFs aWduZWRfdW5jaGVja2VkKHNlbGYsIHNsaWNlOiAmbXV0IFskZWxlbV90eV0pIHsKKy0gICAgICAg ICAgICAgICAgZGVidWdfYXNzZXJ0IShzbGljZS5sZW4oKSA+PSAkZWxlbV9jb3VudCk7CistICAg ICAgICAgICAgICAgIGxldCB0YXJnZXRfcHRyID0gc2xpY2UuYXNfbXV0X3B0cigpLmNhc3QoKTsK Ky0gICAgICAgICAgICAgICAgbGV0IHNlbGZfcHRyID0gJnNlbGYgYXMgKmNvbnN0IFNlbGYgYXMg KmNvbnN0IHU4OworLSAgICAgICAgICAgICAgICBjcmF0ZTo6cHRyOjpjb3B5X25vbm92ZXJsYXBw aW5nKHNlbGZfcHRyLCB0YXJnZXRfcHRyLCBjcmF0ZTo6bWVtOjpzaXplX29mOjo8U2VsZj4oKSk7 CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLQorLSAgICAgICAgdGVzdF9pZiEgeworLSAg ICAgICAgICAgICR0ZXN0X3R0OgorLSAgICAgICAgICAgIHBhc3RlOjppdGVtISB7CistICAgICAg ICAgICAgICAgIC8vIENvbXBhcmlzb25zIHVzZSBpbnRlZ2VyIGNhc3RzIHdpdGhpbiBtYW50aXNz YV4xIHJhbmdlLgorLSAgICAgICAgICAgICAgICAjW2FsbG93KGNsaXBweTo6ZmxvYXRfY21wKV0K Ky0gICAgICAgICAgICAgICAgcHViIG1vZCBbPCRpZCBfc2xpY2Vfd3JpdGVfdG9fc2xpY2U+XSB7 CistICAgICAgICAgICAgICAgICAgICB1c2Ugc3VwZXI6Oio7CistICAgICAgICAgICAgICAgICAg ICB1c2UgY3JhdGU6Oml0ZXI6Okl0ZXJhdG9yOworLQorLSAgICAgICAgICAgICAgICAgICAgI1tj ZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXQorLSAgICAgICAgICAg ICAgICAgICAgI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5f dGVzdCldCistICAgICAgICAgICAgICAgICAgICBmbiB3cml0ZV90b19zbGljZV91bmFsaWduZWQo KSB7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCB1bmFsaWduZWQgPSBbMCBhcyAk ZWxlbV90eTsgJGlkOjpsYW5lcygpICsgMV07CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0 IHZlYyA9ICRpZDo6c3BsYXQoNDIgYXMgJGVsZW1fdHkpOworLSAgICAgICAgICAgICAgICAgICAg ICAgIHZlYy53cml0ZV90b19zbGljZV91bmFsaWduZWQoJm11dCB1bmFsaWduZWRbMS4uXSk7Cist ICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChpbmRleCwgJmIpIGluIHVuYWxpZ25lZC5pdGVy KCkuZW51bWVyYXRlKCkgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBpbmRleCA9 PSAwIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoYiwgMCBh cyAkZWxlbV90eSk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CistICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGIsIDQyIGFzICRlbGVtX3R5 KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoYiwgdmVjLmV4 dHJhY3QoaW5kZXggLSAxKSk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAg ICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICB9CistCistICAgICAg ICAgICAgICAgICAgICAvLyBGSVhNRTogd2FzbS1iaW5kZ2VuLXRlc3QgZG9lcyBub3Qgc3VwcG9y dCAjW3Nob3VsZF9wYW5pY10KKy0gICAgICAgICAgICAgICAgICAgIC8vICNbY2ZnX2F0dHIobm90 KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAgIC8v ICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQor LSAgICAgICAgICAgICAgICAgICAgI1tjZmcobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpKV0K Ky0gICAgICAgICAgICAgICAgICAgICNbdGVzdF0KKy0gICAgICAgICAgICAgICAgICAgICNbc2hv dWxkX3BhbmljXQorLSAgICAgICAgICAgICAgICAgICAgZm4gd3JpdGVfdG9fc2xpY2VfdW5hbGln bmVkX2ZhaWwoKSB7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCB1bmFsaWduZWQg PSBbMCBhcyAkZWxlbV90eTsgJGlkOjpsYW5lcygpICsgMV07CistICAgICAgICAgICAgICAgICAg ICAgICAgbGV0IHZlYyA9ICRpZDo6c3BsYXQoNDIgYXMgJGVsZW1fdHkpOworLSAgICAgICAgICAg ICAgICAgICAgICAgIHZlYy53cml0ZV90b19zbGljZV91bmFsaWduZWQoJm11dCB1bmFsaWduZWRb Mi4uXSk7CistICAgICAgICAgICAgICAgICAgICB9CistCistICAgICAgICAgICAgICAgICAgICB1 bmlvbiBBIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICBkYXRhOiBbJGVsZW1fdHk7IDIgKiAk aWQ6OmxhbmVzKCldLAorLSAgICAgICAgICAgICAgICAgICAgICAgIF92ZWM6ICRpZCwKKy0gICAg ICAgICAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90 KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAgICNb Y2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQorLSAg ICAgICAgICAgICAgICAgICAgZm4gd3JpdGVfdG9fc2xpY2VfYWxpZ25lZCgpIHsKKy0gICAgICAg ICAgICAgICAgICAgICAgICBsZXQgbXV0IGFsaWduZWQgPSBBIHsKKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgZGF0YTogWzAgYXMgJGVsZW1fdHk7IDIgKiAkaWQ6OmxhbmVzKCldLAorLSAg ICAgICAgICAgICAgICAgICAgICAgIH07CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHZl YyA9ICRpZDo6c3BsYXQoNDIgYXMgJGVsZW1fdHkpOworLSAgICAgICAgICAgICAgICAgICAgICAg IHVuc2FmZSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlYy53cml0ZV90b19zbGlj ZV9hbGlnbmVkKAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm11dCBhbGlnbmVk LmRhdGFbJGlkOjpsYW5lcygpLi5dCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7Cist ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoaWR4LCAmYikgaW4gYWxpZ25lZC5kYXRh Lml0ZXIoKS5lbnVtZXJhdGUoKSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp ZiBpZHggPCAkaWQ6OmxhbmVzKCkgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGFzc2VydF9lcSEoYiwgMCBhcyAkZWxlbV90eSk7CistICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9IGVsc2UgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGFzc2VydF9lcSEoYiwgNDIgYXMgJGVsZW1fdHkpOworLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGFzc2VydF9lcSEoCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGIsIHZlYy5leHRyYWN0KGlkeCAtICRpZDo6bGFuZXMoKSkKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICApOworLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAg ICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgICAgICAg ICAgLy8gRklYTUU6IHdhc20tYmluZGdlbi10ZXN0IGRvZXMgbm90IHN1cHBvcnQgI1tzaG91bGRf cGFuaWNdCistICAgICAgICAgICAgICAgICAgICAvLyAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJj aCA9ICJ3YXNtMzIiKSwgdGVzdCldCistICAgICAgICAgICAgICAgICAgICAvLyAjW2NmZ19hdHRy KHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KKy0gICAgICAgICAg ICAgICAgICAgICNbY2ZnKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSldCistICAgICAgICAg ICAgICAgICAgICAjW3Rlc3RdCistICAgICAgICAgICAgICAgICAgICAjW3Nob3VsZF9wYW5pY10K Ky0gICAgICAgICAgICAgICAgICAgIGZuIHdyaXRlX3RvX3NsaWNlX2FsaWduZWRfZmFpbF9sYW5l cygpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IGFsaWduZWQgPSBBIHsKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YTogWzAgYXMgJGVsZW1fdHk7IDIgKiAkaWQ6 OmxhbmVzKCldLAorLSAgICAgICAgICAgICAgICAgICAgICAgIH07CistICAgICAgICAgICAgICAg ICAgICAgICAgbGV0IHZlYyA9ICRpZDo6c3BsYXQoNDIgYXMgJGVsZW1fdHkpOworLSAgICAgICAg ICAgICAgICAgICAgICAgIHVuc2FmZSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZl Yy53cml0ZV90b19zbGljZV9hbGlnbmVkKAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgJm11dCBhbGlnbmVkLmRhdGFbMiAqICRpZDo6bGFuZXMoKS4uXQorLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICApCistICAgICAgICAgICAgICAgICAgICAgICAgfTsKKy0gICAgICAgICAg ICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiB3YXNtLWJpbmRn ZW4tdGVzdCBkb2VzIG5vdCBzdXBwb3J0ICNbc2hvdWxkX3BhbmljXQorLSAgICAgICAgICAgICAg ICAgICAgLy8gI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXQor LSAgICAgICAgICAgICAgICAgICAgLy8gI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIi LCB3YXNtX2JpbmRnZW5fdGVzdCldCistICAgICAgICAgICAgICAgICAgICAjW2NmZyhub3QodGFy Z2V0X2FyY2ggPSAid2FzbTMyIikpXQorLSAgICAgICAgICAgICAgICAgICAgI1t0ZXN0XQorLSAg ICAgICAgICAgICAgICAgICAgI1tzaG91bGRfcGFuaWNdCistICAgICAgICAgICAgICAgICAgICBm biB3cml0ZV90b19zbGljZV9hbGlnbmVkX2ZhaWxfYWxpZ24oKSB7CistICAgICAgICAgICAgICAg ICAgICAgICAgdW5zYWZlIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBh bGlnbmVkID0gQSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhOiBbMCBh cyAkZWxlbV90eTsgMiAqICRpZDo6bGFuZXMoKV0sCistICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH07CistCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGdldCBhIHBvaW50ZXIg dG8gdGhlIGZyb250IG9mIGRhdGEKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHB0 cjogKm11dCAkZWxlbV90eQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBhbGln bmVkLmRhdGEuYXNfbXV0X3B0cigpIGFzICptdXQgJGVsZW1fdHk7CistICAgICAgICAgICAgICAg ICAgICAgICAgICAgIC8vIG9mZnNldCBwb2ludGVyIGJ5IG9uZSBlbGVtZW50CistICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGxldCBwdHIgPSBwdHIud3JhcHBpbmdfYWRkKDEpOworLQorLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBwdHIuYWxpZ25fb2Zmc2V0KGNyYXRlOjptZW06 OmFsaWduX29mOjo8JGlkPigpKQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT0g MCB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGUgcG9pbnRlciBpcyBw cm9wZXJseSBhbGlnbmVkLCBzbworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8g d3JpdGVfdG9fc2xpY2VfYWxpZ25lZCB3b24ndCBmYWlsIGhlcmUgKGUuZy4KKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIC8vIHRoaXMgY2FuIGhhcHBlbiBmb3IgaTEyOHgxKS4gU28g d2UgcGFuaWMgdG8KKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG1ha2UgdGhl ICJzaG91bGRfZmFpbCIgdGVzdCBwYXNzOgorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgcGFuaWMhKCJvayIpOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CistCistICAg ICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNyZWF0ZSBhIHNsaWNlIC0gdGhpcyBpcyBzYWZl LCBiZWNhdXNlIHRoZQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBlbGVtZW50cyBv ZiB0aGUgc2xpY2UgZXhpc3QsIGFyZSBwcm9wZXJseQorLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAvLyBpbml0aWFsaXplZCwgYW5kIHByb3Blcmx5IGFsaWduZWQ6CistICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGxldCBzOiAmbXV0IFskZWxlbV90eV0KKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgID0gc2xpY2U6OmZyb21fcmF3X3BhcnRzX211dChwdHIsICRpZDo6bGFu ZXMoKSk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoaXMgc2hvdWxkIGFsd2F5 cyBwYW5pYyBiZWNhdXNlIHRoZSBzbGljZQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAv LyBhbGlnbm1lbnQgZG9lcyBub3QgbWF0Y2ggdGhlIGFsaWdubWVudAorLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAvLyByZXF1aXJlbWVudHMgZm9yIHRoZSB2ZWN0b3IgdHlwZToKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHZlYyA9ICRpZDo6c3BsYXQoNDIgYXMgJGVsZW1f dHkpOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWMud3JpdGVfdG9fc2xpY2VfYWxp Z25lZChzKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAg ICB9CistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAg IH07CistfQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2Fw aS9zd2FwX2J5dGVzLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL3N3 YXBfYnl0ZXMucnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkv cnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL3N3YXBfYnl0ZXMucnMKKysrKyAvZGV2L251bGwKK0BA IC0xLDE5MiArMCwwIEBACistLy8hIEhvcml6b250YWwgc3dhcCBieXRlcworLQorLW1hY3JvX3J1 bGVzISBpbXBsX3N3YXBfYnl0ZXMgeworLSAgICAoWyRlbGVtX3R5OmlkZW50OyAkZWxlbV9jb3Vu dDpleHByXTogJGlkOmlkZW50IHwgJHRlc3RfdHQ6dHQpID0+IHsKKy0gICAgICAgIGltcGwgJGlk IHsKKy0gICAgICAgICAgICAvLy8gUmV2ZXJzZXMgdGhlIGJ5dGUgb3JkZXIgb2YgdGhlIHZlY3Rv ci4KKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBwdWIgZm4gc3dhcF9ieXRl cyhzZWxmKSAtPiBTZWxmIHsKKy0gICAgICAgICAgICAgICAgc3VwZXI6OmNvZGVnZW46OnN3YXBf Ynl0ZXM6OlN3YXBCeXRlczo6c3dhcF9ieXRlcyhzZWxmKQorLSAgICAgICAgICAgIH0KKy0KKy0g ICAgICAgICAgICAvLy8gQ29udmVydHMgc2VsZiB0byBsaXR0bGUgZW5kaWFuIGZyb20gdGhlIHRh cmdldCdzIGVuZGlhbm5lc3MuCistICAgICAgICAgICAgLy8vCistICAgICAgICAgICAgLy8vIE9u IGxpdHRsZSBlbmRpYW4gdGhpcyBpcyBhIG5vLW9wLiBPbiBiaWcgZW5kaWFuIHRoZSBieXRlcyBh cmUKKy0gICAgICAgICAgICAvLy8gc3dhcHBlZC4KKy0gICAgICAgICAgICAjW2lubGluZV0KKy0g ICAgICAgICAgICBwdWIgZm4gdG9fbGUoc2VsZikgLT4gU2VsZiB7CistICAgICAgICAgICAgICAg ICNbY2ZnKHRhcmdldF9lbmRpYW4gPSAibGl0dGxlIildCistICAgICAgICAgICAgICAgIHsKKy0g ICAgICAgICAgICAgICAgICAgIHNlbGYKKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAg ICAgICAjW2NmZyhub3QodGFyZ2V0X2VuZGlhbiA9ICJsaXR0bGUiKSldCistICAgICAgICAgICAg ICAgIHsKKy0gICAgICAgICAgICAgICAgICAgIHNlbGYuc3dhcF9ieXRlcygpCistICAgICAgICAg ICAgICAgIH0KKy0gICAgICAgICAgICB9CistCistICAgICAgICAgICAgLy8vIENvbnZlcnRzIHNl bGYgdG8gYmlnIGVuZGlhbiBmcm9tIHRoZSB0YXJnZXQncyBlbmRpYW5uZXNzLgorLSAgICAgICAg ICAgIC8vLworLSAgICAgICAgICAgIC8vLyBPbiBiaWcgZW5kaWFuIHRoaXMgaXMgYSBuby1vcC4g T24gbGl0dGxlIGVuZGlhbiB0aGUgYnl0ZXMgYXJlCistICAgICAgICAgICAgLy8vIHN3YXBwZWQu CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgcHViIGZuIHRvX2JlKHNlbGYp IC0+IFNlbGYgeworLSAgICAgICAgICAgICAgICAjW2NmZyh0YXJnZXRfZW5kaWFuID0gImJpZyIp XQorLSAgICAgICAgICAgICAgICB7CistICAgICAgICAgICAgICAgICAgICBzZWxmCistICAgICAg ICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgI1tjZmcobm90KHRhcmdldF9lbmRpYW4gPSAi YmlnIikpXQorLSAgICAgICAgICAgICAgICB7CistICAgICAgICAgICAgICAgICAgICBzZWxmLnN3 YXBfYnl0ZXMoKQorLSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgfQorLQorLSAgICAg ICAgICAgIC8vLyBDb252ZXJ0cyBhIHZlY3RvciBmcm9tIGxpdHRsZSBlbmRpYW4gdG8gdGhlIHRh cmdldCdzIGVuZGlhbm5lc3MuCistICAgICAgICAgICAgLy8vCistICAgICAgICAgICAgLy8vIE9u IGxpdHRsZSBlbmRpYW4gdGhpcyBpcyBhIG5vLW9wLiBPbiBiaWcgZW5kaWFuIHRoZSBieXRlcyBh cmUKKy0gICAgICAgICAgICAvLy8gc3dhcHBlZC4KKy0gICAgICAgICAgICAjW2lubGluZV0KKy0g ICAgICAgICAgICBwdWIgZm4gZnJvbV9sZSh4OiBTZWxmKSAtPiBTZWxmIHsKKy0gICAgICAgICAg ICAgICAgI1tjZmcodGFyZ2V0X2VuZGlhbiA9ICJsaXR0bGUiKV0KKy0gICAgICAgICAgICAgICAg eworLSAgICAgICAgICAgICAgICAgICAgeAorLSAgICAgICAgICAgICAgICB9CistICAgICAgICAg ICAgICAgICNbY2ZnKG5vdCh0YXJnZXRfZW5kaWFuID0gImxpdHRsZSIpKV0KKy0gICAgICAgICAg ICAgICAgeworLSAgICAgICAgICAgICAgICAgICAgeC5zd2FwX2J5dGVzKCkKKy0gICAgICAgICAg ICAgICAgfQorLSAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICAvLy8gQ29udmVydHMgYSB2 ZWN0b3IgZnJvbSBiaWcgZW5kaWFuIHRvIHRoZSB0YXJnZXQncyBlbmRpYW5uZXNzLgorLSAgICAg ICAgICAgIC8vLworLSAgICAgICAgICAgIC8vLyBPbiBiaWcgZW5kaWFuIHRoaXMgaXMgYSBuby1v cC4gT24gbGl0dGxlIGVuZGlhbiB0aGUgYnl0ZXMgYXJlCistICAgICAgICAgICAgLy8vIHN3YXBw ZWQuCistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgcHViIGZuIGZyb21fYmUo eDogU2VsZikgLT4gU2VsZiB7CistICAgICAgICAgICAgICAgICNbY2ZnKHRhcmdldF9lbmRpYW4g PSAiYmlnIildCistICAgICAgICAgICAgICAgIHsKKy0gICAgICAgICAgICAgICAgICAgIHgKKy0g ICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAjW2NmZyhub3QodGFyZ2V0X2VuZGlh biA9ICJiaWciKSldCistICAgICAgICAgICAgICAgIHsKKy0gICAgICAgICAgICAgICAgICAgIHgu c3dhcF9ieXRlcygpCistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICB9CistICAgICAg ICB9CistCistICAgICAgICB0ZXN0X2lmISB7CistICAgICAgICAgICAgJHRlc3RfdHQ6CistICAg ICAgICAgICAgcGFzdGU6Oml0ZW0hIHsKKy0gICAgICAgICAgICAgICAgcHViIG1vZCBbPCRpZCBf c3dhcF9ieXRlcz5dIHsKKy0gICAgICAgICAgICAgICAgICAgIHVzZSBzdXBlcjo6KjsKKy0KKy0g ICAgICAgICAgICAgICAgICAgIGNvbnN0IEJZVEVTOiBbdTg7IDY0XSA9IFsKKy0gICAgICAgICAg ICAgICAgICAgICAgICAwLCAxLCAyLCAzLCA0LCA1LCA2LCA3LAorLSAgICAgICAgICAgICAgICAg ICAgICAgIDgsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsCistICAgICAgICAgICAgICAgICAg ICAgICAgMTYsIDE3LCAxOCwgMTksIDIwLCAyMSwgMjIsIDIzLAorLSAgICAgICAgICAgICAgICAg ICAgICAgIDI0LCAyNSwgMjYsIDI3LCAyOCwgMjksIDMwLCAzMSwKKy0gICAgICAgICAgICAgICAg ICAgICAgICAzMiwgMzMsIDM0LCAzNSwgMzYsIDM3LCAzOCwgMzksCistICAgICAgICAgICAgICAg ICAgICAgICAgNDAsIDQxLCA0MiwgNDMsIDQ0LCA0NSwgNDYsIDQ3LAorLSAgICAgICAgICAgICAg ICAgICAgICAgIDQ4LCA0OSwgNTAsIDUxLCA1MiwgNTMsIDU0LCA1NSwKKy0gICAgICAgICAgICAg ICAgICAgICAgICA1NiwgNTcsIDU4LCA1OSwgNjAsIDYxLCA2MiwgNjMsCistICAgICAgICAgICAg ICAgICAgICBdOworLQorLSAgICAgICAgICAgICAgICAgICAgbWFjcm9fcnVsZXMhIHN3YXAgewor LSAgICAgICAgICAgICAgICAgICAgICAgICgkZnVuYzogaWRlbnQpID0+IHt7CistICAgICAgICAg ICAgICAgICAgICAgICAgICAgIC8vIGNhdGNoIHBvc3NpYmxlIGZ1dHVyZSA+NTEyIHZlY3RvcnMK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IShtZW06OnNpemVfb2Y6OjwkaWQ+ KCkgPD0gNjQpOworLQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IGFjdHVh bCA9IEJZVEVTOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZWxlbXM6ICZtdXQg WyRlbGVtX3R5XSA9IHVuc2FmZSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz bGljZTo6ZnJvbV9yYXdfcGFydHNfbXV0KAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGFjdHVhbC5hc19tdXRfcHRyKCkgYXMgKm11dCAkZWxlbV90eSwKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAkaWQ6OmxhbmVzKCksCistICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICApCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07CistCist ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2ZWMgPSAkaWQ6OmZyb21fc2xpY2VfdW5h bGlnbmVkKGVsZW1zKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGlkOjokZnVuYyh2 ZWMpLndyaXRlX3RvX3NsaWNlX3VuYWxpZ25lZChlbGVtcyk7CistCistICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGFjdHVhbAorLSAgICAgICAgICAgICAgICAgICAgICAgIH19OworLSAgICAg ICAgICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgICAgICAgICAgbWFjcm9fcnVsZXMhIHRl c3Rfc3dhcCB7CistICAgICAgICAgICAgICAgICAgICAgICAgKCRmdW5jOiBpZGVudCkgPT4ge3sK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGFjdHVhbCA9IHN3YXAhKCRmdW5jKTsK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGV4cGVjdGVkID0KKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIEJZVEVTLml0ZXIoKS5yZXYoKQorLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgLnNraXAoNjQgLSBjcmF0ZTo6bWVtOjpzaXplX29mOjo8JGlkPigp KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IShhY3R1YWwuaXRlcigpLnpp cChleHBlY3RlZCkKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuYWxsKHwo eCwgeSl8IHggPT0geSkpOworLSAgICAgICAgICAgICAgICAgICAgICAgIH19OworLSAgICAgICAg ICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgICAgICAgICAgbWFjcm9fcnVsZXMhIHRlc3Rf bm9fc3dhcCB7CistICAgICAgICAgICAgICAgICAgICAgICAgKCRmdW5jOiBpZGVudCkgPT4ge3sK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGFjdHVhbCA9IHN3YXAhKCRmdW5jKTsK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGV4cGVjdGVkID0gQllURVMuaXRlcigp CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAudGFrZShtZW06OnNpemVfb2Y6Ojwk aWQ+KCkpOworLQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKGFjdHVhbC5p dGVyKCkuemlwKGV4cGVjdGVkKQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IC5hbGwofCh4LCB5KXwgeCA9PSB5KSk7CistICAgICAgICAgICAgICAgICAgICAgICAgfX07Cist ICAgICAgICAgICAgICAgICAgICB9CistCistICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRy KG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldICNbY2ZnX2F0dHIodGFyZ2V0X2Fy Y2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQorLSAgICAgICAgICAgICAgICAgICAg Zm4gc3dhcF9ieXRlcygpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X3N3YXAhKHN3 YXBfYnl0ZXMpOworLSAgICAgICAgICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgICAgICAg ICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXSAjW2NmZ19h dHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KKy0gICAgICAg ICAgICAgICAgICAgIGZuIHRvX2xlKCkgeworLSAgICAgICAgICAgICAgICAgICAgICAgICNbY2Zn KHRhcmdldF9lbmRpYW4gPSAibGl0dGxlIildCistICAgICAgICAgICAgICAgICAgICAgICAgewor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X25vX3N3YXAhKHRvX2xlKTsKKy0gICAg ICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICAgICAgI1tjZmcobm90 KHRhcmdldF9lbmRpYW4gPSAibGl0dGxlIikpXQorLSAgICAgICAgICAgICAgICAgICAgICAgIHsK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9zd2FwISh0b19sZSk7CistICAgICAg ICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgfQorLQorLSAgICAgICAg ICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3Qp XSAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0K Ky0gICAgICAgICAgICAgICAgICAgIGZuIHRvX2JlKCkgeworLSAgICAgICAgICAgICAgICAgICAg ICAgICNbY2ZnKHRhcmdldF9lbmRpYW4gPSAiYmlnIildCistICAgICAgICAgICAgICAgICAgICAg ICAgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X25vX3N3YXAhKHRvX2JlKTsK Ky0gICAgICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICAgICAgI1tj Zmcobm90KHRhcmdldF9lbmRpYW4gPSAiYmlnIikpXQorLSAgICAgICAgICAgICAgICAgICAgICAg IHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9zd2FwISh0b19iZSk7CistICAg ICAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgfQorLQorLSAgICAg ICAgICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRl c3QpXSAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0 KV0KKy0gICAgICAgICAgICAgICAgICAgIGZuIGZyb21fbGUoKSB7CistICAgICAgICAgICAgICAg ICAgICAgICAgI1tjZmcodGFyZ2V0X2VuZGlhbiA9ICJsaXR0bGUiKV0KKy0gICAgICAgICAgICAg ICAgICAgICAgICB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3Rfbm9fc3dhcCEo ZnJvbV9sZSk7CistICAgICAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAg ICAgICAgICNbY2ZnKG5vdCh0YXJnZXRfZW5kaWFuID0gImxpdHRsZSIpKV0KKy0gICAgICAgICAg ICAgICAgICAgICAgICB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3Rfc3dhcCEo ZnJvbV9sZSk7CistICAgICAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAg ICAgfQorLQorLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2gg PSAid2FzbTMyIiksIHRlc3QpXSAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdh c21fYmluZGdlbl90ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAgIGZuIGZyb21fYmUoKSB7Cist ICAgICAgICAgICAgICAgICAgICAgICAgI1tjZmcodGFyZ2V0X2VuZGlhbiA9ICJiaWciKV0KKy0g ICAgICAgICAgICAgICAgICAgICAgICB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRl c3Rfbm9fc3dhcCEoZnJvbV9iZSk7CistICAgICAgICAgICAgICAgICAgICAgICAgfQorLSAgICAg ICAgICAgICAgICAgICAgICAgICNbY2ZnKG5vdCh0YXJnZXRfZW5kaWFuID0gImJpZyIpKV0KKy0g ICAgICAgICAgICAgICAgICAgICAgICB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRl c3Rfc3dhcCEoZnJvbV9iZSk7CistICAgICAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAg ICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgfQorLSAgICAg ICAgfQorLSAgICB9OworLX0KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9z aW1kL3NyYy9jb2RlZ2VuLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29k ZWdlbi5ycworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0 L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuLnJzCisrKysgL2Rldi9udWxsCitAQCAtMSw2MiArMCww IEBACistLy8hIENvZGUtZ2VuZXJhdGlvbiB1dGlsaXRpZXMKKy0KKy1wdWIoY3JhdGUpIG1vZCBi aXRfbWFuaXA7CistcHViKGNyYXRlKSBtb2QgbGx2bTsKKy1wdWIoY3JhdGUpIG1vZCBtYXRoOwor LXB1YihjcmF0ZSkgbW9kIHJlZHVjdGlvbnM7CistcHViKGNyYXRlKSBtb2Qgc2h1ZmZsZTsKKy1w dWIoY3JhdGUpIG1vZCBzaHVmZmxlMV9keW47CistcHViKGNyYXRlKSBtb2Qgc3dhcF9ieXRlczsK Ky0KKy1tYWNyb19ydWxlcyEgaW1wbF9zaW1kX2FycmF5IHsKKy0gICAgKFskZWxlbV90eTppZGVu dDsgJGVsZW1fY291bnQ6ZXhwcl06CistICAgICAkdHVwbGVfaWQ6aWRlbnQgfCAkKCRlbGVtX3R5 czppZGVudCksKikgPT4geworLSAgICAgICAgI1tkZXJpdmUoQ29weSwgQ2xvbmUpXQorLSAgICAg ICAgI1tyZXByKHNpbWQpXQorLSAgICAgICAgcHViIHN0cnVjdCAkdHVwbGVfaWQoJChwdWIoY3Jh dGUpICRlbGVtX3R5cyksKik7CistICAgICAgICAvL15eXl5eXl4gbGVha2VkIHRocm91Z2ggU2lt ZEFycmF5CistCistICAgICAgICBpbXBsIGNyYXRlOjpzZWFsZWQ6OlNlYWwgZm9yIFskZWxlbV90 eTsgJGVsZW1fY291bnRdIHt9CistCistICAgICAgICBpbXBsIGNyYXRlOjpzZWFsZWQ6OlNpbWRB cnJheSBmb3IgWyRlbGVtX3R5OyAkZWxlbV9jb3VudF0geworLSAgICAgICAgICAgIHR5cGUgVHVw bGUgPSAkdHVwbGVfaWQ7CistICAgICAgICAgICAgdHlwZSBUID0gJGVsZW1fdHk7CistICAgICAg ICAgICAgY29uc3QgTjogdXNpemUgPSAkZWxlbV9jb3VudDsKKy0gICAgICAgICAgICB0eXBlIE5U ID0gW3UzMjsgJGVsZW1fY291bnRdOworLSAgICAgICAgfQorLQorLSAgICAgICAgaW1wbCBjcmF0 ZTo6c2VhbGVkOjpTZWFsIGZvciAkdHVwbGVfaWQge30KKy0gICAgICAgIGltcGwgY3JhdGU6OnNl YWxlZDo6U2ltZCBmb3IgJHR1cGxlX2lkIHsKKy0gICAgICAgICAgICB0eXBlIEVsZW1lbnQgPSAk ZWxlbV90eTsKKy0gICAgICAgICAgICBjb25zdCBMQU5FUzogdXNpemUgPSAkZWxlbV9jb3VudDsK Ky0gICAgICAgICAgICB0eXBlIExhbmVzVHlwZSA9IFt1MzI7ICRlbGVtX2NvdW50XTsKKy0gICAg ICAgIH0KKy0KKy0gICAgfQorLX0KKy0KKy1wdWIoY3JhdGUpIG1vZCBwb2ludGVyX3NpemVkX2lu dDsKKy0KKy1wdWIoY3JhdGUpIG1vZCB2MTY7CistcHViKGNyYXRlKSB1c2Ugc2VsZjo6djE2Ojoq OworLQorLXB1YihjcmF0ZSkgbW9kIHYzMjsKKy1wdWIoY3JhdGUpIHVzZSBzZWxmOjp2MzI6Oio7 CistCistcHViKGNyYXRlKSBtb2QgdjY0OworLXB1YihjcmF0ZSkgdXNlIHNlbGY6OnY2NDo6KjsK Ky0KKy1wdWIoY3JhdGUpIG1vZCB2MTI4OworLXB1YihjcmF0ZSkgdXNlIHNlbGY6OnYxMjg6Oio7 CistCistcHViKGNyYXRlKSBtb2QgdjI1NjsKKy1wdWIoY3JhdGUpIHVzZSBzZWxmOjp2MjU2Ojoq OworLQorLXB1YihjcmF0ZSkgbW9kIHY1MTI7CistcHViKGNyYXRlKSB1c2Ugc2VsZjo6djUxMjo6 KjsKKy0KKy1wdWIoY3JhdGUpIG1vZCB2U2l6ZTsKKy1wdWIoY3JhdGUpIHVzZSBzZWxmOjp2U2l6 ZTo6KjsKKy0KKy1wdWIoY3JhdGUpIG1vZCB2UHRyOworLXB1YihjcmF0ZSkgdXNlIHNlbGY6OnZQ dHI6Oio7CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29k ZWdlbi9iaXRfbWFuaXAucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2Rl Z2VuL2JpdF9tYW5pcC5ycworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9w YXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL2JpdF9tYW5pcC5ycworKysrIC9kZXYv bnVsbAorQEAgLTEsMzQ3ICswLDAgQEAKKy0vLyEgTExWTSBiaXQgbWFuaXB1bGF0aW9uIGludHJp bnNpY3MuCistI1tydXN0Zm10Ojpza2lwXQorLQorLXB1YihjcmF0ZSkgdXNlIGNyYXRlOjoqOwor LQorLSNbYWxsb3coaW1wcm9wZXJfY3R5cGVzLCBkZWFkX2NvZGUpXQorLWV4dGVybiAiQyIgewor LSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0bHoudjJpOCJdCistICAgIGZuIGN0bHpfdTh4Mih4 OiB1OHgyLCBpc196ZXJvX3VuZGVmOiBib29sKSAtPiB1OHgyOworLSAgICAjW2xpbmtfbmFtZSA9 ICJsbHZtLmN0bHoudjRpOCJdCistICAgIGZuIGN0bHpfdTh4NCh4OiB1OHg0LCBpc196ZXJvX3Vu ZGVmOiBib29sKSAtPiB1OHg0OworLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0bHoudjhpOCJd CistICAgIGZuIGN0bHpfdTh4OCh4OiB1OHg4LCBpc196ZXJvX3VuZGVmOiBib29sKSAtPiB1OHg4 OworLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0bHoudjE2aTgiXQorLSAgICBmbiBjdGx6X3U4 eDE2KHg6IHU4eDE2LCBpc196ZXJvX3VuZGVmOiBib29sKSAtPiB1OHgxNjsKKy0gICAgI1tsaW5r X25hbWUgPSAibGx2bS5jdGx6LnYzMmk4Il0KKy0gICAgZm4gY3Rsel91OHgzMih4OiB1OHgzMiwg aXNfemVyb191bmRlZjogYm9vbCkgLT4gdTh4MzI7CistICAgICNbbGlua19uYW1lID0gImxsdm0u Y3Rsei52NjRpOCJdCistICAgIGZuIGN0bHpfdTh4NjQoeDogdTh4NjQsIGlzX3plcm9fdW5kZWY6 IGJvb2wpIC0+IHU4eDY0OworLQorLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0bHoudjJpMTYi XQorLSAgICBmbiBjdGx6X3UxNngyKHg6IHUxNngyLCBpc196ZXJvX3VuZGVmOiBib29sKSAtPiB1 MTZ4MjsKKy0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5jdGx6LnY0aTE2Il0KKy0gICAgZm4gY3Rs el91MTZ4NCh4OiB1MTZ4NCwgaXNfemVyb191bmRlZjogYm9vbCkgLT4gdTE2eDQ7CistICAgICNb bGlua19uYW1lID0gImxsdm0uY3Rsei52OGkxNiJdCistICAgIGZuIGN0bHpfdTE2eDgoeDogdTE2 eDgsIGlzX3plcm9fdW5kZWY6IGJvb2wpIC0+IHUxNng4OworLSAgICAjW2xpbmtfbmFtZSA9ICJs bHZtLmN0bHoudjE2aTE2Il0KKy0gICAgZm4gY3Rsel91MTZ4MTYoeDogdTE2eDE2LCBpc196ZXJv X3VuZGVmOiBib29sKSAtPiB1MTZ4MTY7CistICAgICNbbGlua19uYW1lID0gImxsdm0uY3Rsei52 MzJpMTYiXQorLSAgICBmbiBjdGx6X3UxNngzMih4OiB1MTZ4MzIsIGlzX3plcm9fdW5kZWY6IGJv b2wpIC0+IHUxNngzMjsKKy0KKy0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5jdGx6LnYyaTMyIl0K Ky0gICAgZm4gY3Rsel91MzJ4Mih4OiB1MzJ4MiwgaXNfemVyb191bmRlZjogYm9vbCkgLT4gdTMy eDI7CistICAgICNbbGlua19uYW1lID0gImxsdm0uY3Rsei52NGkzMiJdCistICAgIGZuIGN0bHpf dTMyeDQoeDogdTMyeDQsIGlzX3plcm9fdW5kZWY6IGJvb2wpIC0+IHUzMng0OworLSAgICAjW2xp bmtfbmFtZSA9ICJsbHZtLmN0bHoudjhpMzIiXQorLSAgICBmbiBjdGx6X3UzMng4KHg6IHUzMng4 LCBpc196ZXJvX3VuZGVmOiBib29sKSAtPiB1MzJ4ODsKKy0gICAgI1tsaW5rX25hbWUgPSAibGx2 bS5jdGx6LnYxNmkzMiJdCistICAgIGZuIGN0bHpfdTMyeDE2KHg6IHUzMngxNiwgaXNfemVyb191 bmRlZjogYm9vbCkgLT4gdTMyeDE2OworLQorLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0bHou djJpNjQiXQorLSAgICBmbiBjdGx6X3U2NHgyKHg6IHU2NHgyLCBpc196ZXJvX3VuZGVmOiBib29s KSAtPiB1NjR4MjsKKy0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5jdGx6LnY0aTY0Il0KKy0gICAg Zm4gY3Rsel91NjR4NCh4OiB1NjR4NCwgaXNfemVyb191bmRlZjogYm9vbCkgLT4gdTY0eDQ7Cist ICAgICNbbGlua19uYW1lID0gImxsdm0uY3Rsei52OGk2NCJdCistICAgIGZuIGN0bHpfdTY0eDgo eDogdTY0eDgsIGlzX3plcm9fdW5kZWY6IGJvb2wpIC0+IHU2NHg4OworLQorLSAgICAjW2xpbmtf bmFtZSA9ICJsbHZtLmN0bHoudjFpMTI4Il0KKy0gICAgZm4gY3Rsel91MTI4eDEoeDogdTEyOHgx LCBpc196ZXJvX3VuZGVmOiBib29sKSAtPiB1MTI4eDE7CistICAgICNbbGlua19uYW1lID0gImxs dm0uY3Rsei52MmkxMjgiXQorLSAgICBmbiBjdGx6X3UxMjh4Mih4OiB1MTI4eDIsIGlzX3plcm9f dW5kZWY6IGJvb2wpIC0+IHUxMjh4MjsKKy0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5jdGx6LnY0 aTEyOCJdCistICAgIGZuIGN0bHpfdTEyOHg0KHg6IHUxMjh4NCwgaXNfemVyb191bmRlZjogYm9v bCkgLT4gdTEyOHg0OworLQorLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0dHoudjJpOCJdCist ICAgIGZuIGN0dHpfdTh4Mih4OiB1OHgyLCBpc196ZXJvX3VuZGVmOiBib29sKSAtPiB1OHgyOwor LSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0dHoudjRpOCJdCistICAgIGZuIGN0dHpfdTh4NCh4 OiB1OHg0LCBpc196ZXJvX3VuZGVmOiBib29sKSAtPiB1OHg0OworLSAgICAjW2xpbmtfbmFtZSA9 ICJsbHZtLmN0dHoudjhpOCJdCistICAgIGZuIGN0dHpfdTh4OCh4OiB1OHg4LCBpc196ZXJvX3Vu ZGVmOiBib29sKSAtPiB1OHg4OworLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0dHoudjE2aTgi XQorLSAgICBmbiBjdHR6X3U4eDE2KHg6IHU4eDE2LCBpc196ZXJvX3VuZGVmOiBib29sKSAtPiB1 OHgxNjsKKy0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5jdHR6LnYzMmk4Il0KKy0gICAgZm4gY3R0 el91OHgzMih4OiB1OHgzMiwgaXNfemVyb191bmRlZjogYm9vbCkgLT4gdTh4MzI7CistICAgICNb bGlua19uYW1lID0gImxsdm0uY3R0ei52NjRpOCJdCistICAgIGZuIGN0dHpfdTh4NjQoeDogdTh4 NjQsIGlzX3plcm9fdW5kZWY6IGJvb2wpIC0+IHU4eDY0OworLQorLSAgICAjW2xpbmtfbmFtZSA9 ICJsbHZtLmN0dHoudjJpMTYiXQorLSAgICBmbiBjdHR6X3UxNngyKHg6IHUxNngyLCBpc196ZXJv X3VuZGVmOiBib29sKSAtPiB1MTZ4MjsKKy0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5jdHR6LnY0 aTE2Il0KKy0gICAgZm4gY3R0el91MTZ4NCh4OiB1MTZ4NCwgaXNfemVyb191bmRlZjogYm9vbCkg LT4gdTE2eDQ7CistICAgICNbbGlua19uYW1lID0gImxsdm0uY3R0ei52OGkxNiJdCistICAgIGZu IGN0dHpfdTE2eDgoeDogdTE2eDgsIGlzX3plcm9fdW5kZWY6IGJvb2wpIC0+IHUxNng4OworLSAg ICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0dHoudjE2aTE2Il0KKy0gICAgZm4gY3R0el91MTZ4MTYo eDogdTE2eDE2LCBpc196ZXJvX3VuZGVmOiBib29sKSAtPiB1MTZ4MTY7CistICAgICNbbGlua19u YW1lID0gImxsdm0uY3R0ei52MzJpMTYiXQorLSAgICBmbiBjdHR6X3UxNngzMih4OiB1MTZ4MzIs IGlzX3plcm9fdW5kZWY6IGJvb2wpIC0+IHUxNngzMjsKKy0KKy0gICAgI1tsaW5rX25hbWUgPSAi bGx2bS5jdHR6LnYyaTMyIl0KKy0gICAgZm4gY3R0el91MzJ4Mih4OiB1MzJ4MiwgaXNfemVyb191 bmRlZjogYm9vbCkgLT4gdTMyeDI7CistICAgICNbbGlua19uYW1lID0gImxsdm0uY3R0ei52NGkz MiJdCistICAgIGZuIGN0dHpfdTMyeDQoeDogdTMyeDQsIGlzX3plcm9fdW5kZWY6IGJvb2wpIC0+ IHUzMng0OworLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0dHoudjhpMzIiXQorLSAgICBmbiBj dHR6X3UzMng4KHg6IHUzMng4LCBpc196ZXJvX3VuZGVmOiBib29sKSAtPiB1MzJ4ODsKKy0gICAg I1tsaW5rX25hbWUgPSAibGx2bS5jdHR6LnYxNmkzMiJdCistICAgIGZuIGN0dHpfdTMyeDE2KHg6 IHUzMngxNiwgaXNfemVyb191bmRlZjogYm9vbCkgLT4gdTMyeDE2OworLQorLSAgICAjW2xpbmtf bmFtZSA9ICJsbHZtLmN0dHoudjJpNjQiXQorLSAgICBmbiBjdHR6X3U2NHgyKHg6IHU2NHgyLCBp c196ZXJvX3VuZGVmOiBib29sKSAtPiB1NjR4MjsKKy0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5j dHR6LnY0aTY0Il0KKy0gICAgZm4gY3R0el91NjR4NCh4OiB1NjR4NCwgaXNfemVyb191bmRlZjog Ym9vbCkgLT4gdTY0eDQ7CistICAgICNbbGlua19uYW1lID0gImxsdm0uY3R0ei52OGk2NCJdCist ICAgIGZuIGN0dHpfdTY0eDgoeDogdTY0eDgsIGlzX3plcm9fdW5kZWY6IGJvb2wpIC0+IHU2NHg4 OworLQorLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0dHoudjFpMTI4Il0KKy0gICAgZm4gY3R0 el91MTI4eDEoeDogdTEyOHgxLCBpc196ZXJvX3VuZGVmOiBib29sKSAtPiB1MTI4eDE7CistICAg ICNbbGlua19uYW1lID0gImxsdm0uY3R0ei52MmkxMjgiXQorLSAgICBmbiBjdHR6X3UxMjh4Mih4 OiB1MTI4eDIsIGlzX3plcm9fdW5kZWY6IGJvb2wpIC0+IHUxMjh4MjsKKy0gICAgI1tsaW5rX25h bWUgPSAibGx2bS5jdHR6LnY0aTEyOCJdCistICAgIGZuIGN0dHpfdTEyOHg0KHg6IHUxMjh4NCwg aXNfemVyb191bmRlZjogYm9vbCkgLT4gdTEyOHg0OworLQorLSAgICAjW2xpbmtfbmFtZSA9ICJs bHZtLmN0cG9wLnYyaTgiXQorLSAgICBmbiBjdHBvcF91OHgyKHg6IHU4eDIpIC0+IHU4eDI7Cist ICAgICNbbGlua19uYW1lID0gImxsdm0uY3Rwb3AudjRpOCJdCistICAgIGZuIGN0cG9wX3U4eDQo eDogdTh4NCkgLT4gdTh4NDsKKy0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5jdHBvcC52OGk4Il0K Ky0gICAgZm4gY3Rwb3BfdTh4OCh4OiB1OHg4KSAtPiB1OHg4OworLSAgICAjW2xpbmtfbmFtZSA9 ICJsbHZtLmN0cG9wLnYxNmk4Il0KKy0gICAgZm4gY3Rwb3BfdTh4MTYoeDogdTh4MTYpIC0+IHU4 eDE2OworLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0cG9wLnYzMmk4Il0KKy0gICAgZm4gY3Rw b3BfdTh4MzIoeDogdTh4MzIpIC0+IHU4eDMyOworLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0 cG9wLnY2NGk4Il0KKy0gICAgZm4gY3Rwb3BfdTh4NjQoeDogdTh4NjQpIC0+IHU4eDY0OworLQor LSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0cG9wLnYyaTE2Il0KKy0gICAgZm4gY3Rwb3BfdTE2 eDIoeDogdTE2eDIpIC0+IHUxNngyOworLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0cG9wLnY0 aTE2Il0KKy0gICAgZm4gY3Rwb3BfdTE2eDQoeDogdTE2eDQpIC0+IHUxNng0OworLSAgICAjW2xp bmtfbmFtZSA9ICJsbHZtLmN0cG9wLnY4aTE2Il0KKy0gICAgZm4gY3Rwb3BfdTE2eDgoeDogdTE2 eDgpIC0+IHUxNng4OworLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0cG9wLnYxNmkxNiJdCist ICAgIGZuIGN0cG9wX3UxNngxNih4OiB1MTZ4MTYpIC0+IHUxNngxNjsKKy0gICAgI1tsaW5rX25h bWUgPSAibGx2bS5jdHBvcC52MzJpMTYiXQorLSAgICBmbiBjdHBvcF91MTZ4MzIoeDogdTE2eDMy KSAtPiB1MTZ4MzI7CistCistICAgICNbbGlua19uYW1lID0gImxsdm0uY3Rwb3AudjJpMzIiXQor LSAgICBmbiBjdHBvcF91MzJ4Mih4OiB1MzJ4MikgLT4gdTMyeDI7CistICAgICNbbGlua19uYW1l ID0gImxsdm0uY3Rwb3AudjRpMzIiXQorLSAgICBmbiBjdHBvcF91MzJ4NCh4OiB1MzJ4NCkgLT4g dTMyeDQ7CistICAgICNbbGlua19uYW1lID0gImxsdm0uY3Rwb3AudjhpMzIiXQorLSAgICBmbiBj dHBvcF91MzJ4OCh4OiB1MzJ4OCkgLT4gdTMyeDg7CistICAgICNbbGlua19uYW1lID0gImxsdm0u Y3Rwb3AudjE2aTMyIl0KKy0gICAgZm4gY3Rwb3BfdTMyeDE2KHg6IHUzMngxNikgLT4gdTMyeDE2 OworLQorLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0cG9wLnYyaTY0Il0KKy0gICAgZm4gY3Rw b3BfdTY0eDIoeDogdTY0eDIpIC0+IHU2NHgyOworLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0 cG9wLnY0aTY0Il0KKy0gICAgZm4gY3Rwb3BfdTY0eDQoeDogdTY0eDQpIC0+IHU2NHg0OworLSAg ICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0cG9wLnY4aTY0Il0KKy0gICAgZm4gY3Rwb3BfdTY0eDgo eDogdTY0eDgpIC0+IHU2NHg4OworLQorLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0cG9wLnYx aTEyOCJdCistICAgIGZuIGN0cG9wX3UxMjh4MSh4OiB1MTI4eDEpIC0+IHUxMjh4MTsKKy0gICAg I1tsaW5rX25hbWUgPSAibGx2bS5jdHBvcC52MmkxMjgiXQorLSAgICBmbiBjdHBvcF91MTI4eDIo eDogdTEyOHgyKSAtPiB1MTI4eDI7CistICAgICNbbGlua19uYW1lID0gImxsdm0uY3Rwb3AudjRp MTI4Il0KKy0gICAgZm4gY3Rwb3BfdTEyOHg0KHg6IHUxMjh4NCkgLT4gdTEyOHg0OworLX0KKy0K Ky1wdWIoY3JhdGUpIHRyYWl0IEJpdE1hbmlwIHsKKy0gICAgZm4gY3Rwb3Aoc2VsZikgLT4gU2Vs ZjsKKy0gICAgZm4gY3RseihzZWxmKSAtPiBTZWxmOworLSAgICBmbiBjdHR6KHNlbGYpIC0+IFNl bGY7CistfQorLQorLW1hY3JvX3J1bGVzISBpbXBsX2JpdF9tYW5pcCB7CistICAgIChpbm5lcjog JHR5OmlkZW50LCAkc2NhbGFyOnR5LCAkdXR5OmlkZW50LAorLSAgICAgJGN0cG9wOmlkZW50LCAk Y3RsejppZGVudCwgJGN0dHo6aWRlbnQpID0+IHsKKy0gICAgICAgIC8vIEZJWE1FOiBzZXZlcmFs IExMVk0gaW50cmluc2ljcyBicmVhayBvbiBzMzkweCBodHRwczovL2dpdGh1Yi5jb20vcnVzdC1s YW5nLW51cnNlcnkvcGFja2VkX3NpbWQvaXNzdWVzLzE5MgorLSAgICAgICAgI1tjZmcodGFyZ2V0 X2FyY2ggPSAiczM5MHgiKV0KKy0gICAgICAgIGltcGxfYml0X21hbmlwISB7IHNjYWxhcjogJHR5 LCAkc2NhbGFyIH0KKy0gICAgICAgICNbY2ZnKG5vdCh0YXJnZXRfYXJjaCA9ICJzMzkweCIpKV0K Ky0gICAgICAgIGltcGwgQml0TWFuaXAgZm9yICR0eSB7CistICAgICAgICAgICAgI1tpbmxpbmVd CistICAgICAgICAgICAgZm4gY3Rwb3Aoc2VsZikgLT4gU2VsZiB7CistICAgICAgICAgICAgICAg IGxldCB5OiAkdXR5ID0gc2VsZi5jYXN0KCk7CistICAgICAgICAgICAgICAgIHVuc2FmZSB7ICRj dHBvcCh5KS5jYXN0KCkgfQorLSAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICAjW2lubGlu ZV0KKy0gICAgICAgICAgICBmbiBjdGx6KHNlbGYpIC0+IFNlbGYgeworLSAgICAgICAgICAgICAg ICBsZXQgeTogJHV0eSA9IHNlbGYuY2FzdCgpOworLSAgICAgICAgICAgICAgICAvLyB0aGUgY3R4 eCBpbnRyaW5zaWNzIG5lZWQgY29tcGlsZS10aW1lIGNvbnN0YW50CistICAgICAgICAgICAgICAg IC8vIGBpc196ZXJvX3VuZGVmYAorLSAgICAgICAgICAgICAgICB1bnNhZmUgeyAkY3Rseih5LCBm YWxzZSkuY2FzdCgpIH0KKy0gICAgICAgICAgICB9CistCistICAgICAgICAgICAgI1tpbmxpbmVd CistICAgICAgICAgICAgZm4gY3R0eihzZWxmKSAtPiBTZWxmIHsKKy0gICAgICAgICAgICAgICAg bGV0IHk6ICR1dHkgPSBzZWxmLmNhc3QoKTsKKy0gICAgICAgICAgICAgICAgdW5zYWZlIHsgJGN0 dHooeSwgZmFsc2UpLmNhc3QoKSB9CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICB9 OworLSAgICAoc2l6ZWRfaW5uZXI6ICR0eTppZGVudCwgJHNjYWxhcjp0eSwgJHV0eTppZGVudCkg PT4geworLSAgICAgICAgI1tjZmcodGFyZ2V0X2FyY2ggPSAiczM5MHgiKV0KKy0gICAgICAgIGlt cGxfYml0X21hbmlwISB7IHNjYWxhcjogJHR5LCAkc2NhbGFyIH0KKy0gICAgICAgICNbY2ZnKG5v dCh0YXJnZXRfYXJjaCA9ICJzMzkweCIpKV0KKy0gICAgICAgIGltcGwgQml0TWFuaXAgZm9yICR0 eSB7CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgZm4gY3Rwb3Aoc2VsZikg LT4gU2VsZiB7CistICAgICAgICAgICAgICAgIGxldCB5OiAkdXR5ID0gc2VsZi5jYXN0KCk7Cist ICAgICAgICAgICAgICAgICR1dHk6OmN0cG9wKHkpLmNhc3QoKQorLSAgICAgICAgICAgIH0KKy0K Ky0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBmbiBjdGx6KHNlbGYpIC0+IFNl bGYgeworLSAgICAgICAgICAgICAgICBsZXQgeTogJHV0eSA9IHNlbGYuY2FzdCgpOworLSAgICAg ICAgICAgICAgICAkdXR5OjpjdGx6KHkpLmNhc3QoKQorLSAgICAgICAgICAgIH0KKy0KKy0gICAg ICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBmbiBjdHR6KHNlbGYpIC0+IFNlbGYgewor LSAgICAgICAgICAgICAgICBsZXQgeTogJHV0eSA9IHNlbGYuY2FzdCgpOworLSAgICAgICAgICAg ICAgICAkdXR5OjpjdHR6KHkpLmNhc3QoKQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0g ICAgfTsKKy0gICAgKHNjYWxhcjogJHR5OmlkZW50LCAkc2NhbGFyOnR5KSA9PiB7CistICAgICAg ICBpbXBsIEJpdE1hbmlwIGZvciAkdHkgeworLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAg ICAgICAgIGZuIGN0cG9wKHNlbGYpIC0+IFNlbGYgeworLSAgICAgICAgICAgICAgICBsZXQgbXV0 IG9uZXMgPSBzZWxmOworLSAgICAgICAgICAgICAgICBmb3IgaSBpbiAwLi5TZWxmOjpsYW5lcygp IHsKKy0gICAgICAgICAgICAgICAgICAgIG9uZXMgPSBvbmVzLnJlcGxhY2UoaSwgc2VsZi5leHRy YWN0KGkpLmNvdW50X29uZXMoKSBhcyAkc2NhbGFyKTsKKy0gICAgICAgICAgICAgICAgfQorLSAg ICAgICAgICAgICAgICBvbmVzCistICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgICNbaW5s aW5lXQorLSAgICAgICAgICAgIGZuIGN0bHooc2VsZikgLT4gU2VsZiB7CistICAgICAgICAgICAg ICAgIGxldCBtdXQgbHogPSBzZWxmOworLSAgICAgICAgICAgICAgICBmb3IgaSBpbiAwLi5TZWxm OjpsYW5lcygpIHsKKy0gICAgICAgICAgICAgICAgICAgIGx6ID0gbHoucmVwbGFjZShpLCBzZWxm LmV4dHJhY3QoaSkubGVhZGluZ196ZXJvcygpIGFzICRzY2FsYXIpOworLSAgICAgICAgICAgICAg ICB9CistICAgICAgICAgICAgICAgIGx6CistICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAg ICNbaW5saW5lXQorLSAgICAgICAgICAgIGZuIGN0dHooc2VsZikgLT4gU2VsZiB7CistICAgICAg ICAgICAgICAgIGxldCBtdXQgdHogPSBzZWxmOworLSAgICAgICAgICAgICAgICBmb3IgaSBpbiAw Li5TZWxmOjpsYW5lcygpIHsKKy0gICAgICAgICAgICAgICAgICAgIHR6ID0gdHoucmVwbGFjZShp LCBzZWxmLmV4dHJhY3QoaSkudHJhaWxpbmdfemVyb3MoKSBhcyAkc2NhbGFyKTsKKy0gICAgICAg ICAgICAgICAgfQorLSAgICAgICAgICAgICAgICB0egorLSAgICAgICAgICAgIH0KKy0gICAgICAg IH0KKy0gICAgfTsKKy0gICAgKCR1dHk6aWRlbnQsICR1c2NhbGFyOnR5LCAkaXR5OmlkZW50LCAk aXNjYWxhcjp0eSwKKy0gICAgICRjdHBvcDppZGVudCwgJGN0bHo6aWRlbnQsICRjdHR6OmlkZW50 KSA9PiB7CistICAgICAgICBpbXBsX2JpdF9tYW5pcCEgeyBpbm5lcjogJHV0eSwgJHVzY2FsYXIs ICR1dHksICRjdHBvcCwgJGN0bHosICRjdHR6IH0KKy0gICAgICAgIGltcGxfYml0X21hbmlwISB7 IGlubmVyOiAkaXR5LCAkaXNjYWxhciwgJHV0eSwgJGN0cG9wLCAkY3RseiwgJGN0dHogfQorLSAg ICB9OworLSAgICAoc2l6ZWQ6ICR1c2l6ZTppZGVudCwgJHVzY2FsYXI6dHksICRpc2l6ZTppZGVu dCwKKy0gICAgICRpc2NhbGFyOnR5LCAkdHk6aWRlbnQpID0+IHsKKy0gICAgICAgIGltcGxfYml0 X21hbmlwISB7IHNpemVkX2lubmVyOiAkdXNpemUsICR1c2NhbGFyLCAkdHkgfQorLSAgICAgICAg aW1wbF9iaXRfbWFuaXAhIHsgc2l6ZWRfaW5uZXI6ICRpc2l6ZSwgJGlzY2FsYXIsICR0eSB9Cist ICAgIH07CistfQorLQorLWltcGxfYml0X21hbmlwISB7IHU4eDIgICAsICAgdTgsIGk4eDIsIGk4 LCAgIGN0cG9wX3U4eDIsICAgY3Rsel91OHgyLCAgIGN0dHpfdTh4MiAgIH0KKy1pbXBsX2JpdF9t YW5pcCEgeyB1OHg0ICAgLCAgIHU4LCBpOHg0LCBpOCwgICBjdHBvcF91OHg0LCAgIGN0bHpfdTh4 NCwgICBjdHR6X3U4eDQgICB9CistI1tjZmcobm90KHRhcmdldF9hcmNoID0gImFhcmNoNjQiKSld IC8vIHNlZSBiZWxvdworLWltcGxfYml0X21hbmlwISB7IHU4eDggICAsICAgdTgsIGk4eDgsIGk4 LCAgIGN0cG9wX3U4eDgsICAgY3Rsel91OHg4LCAgIGN0dHpfdTh4OCAgIH0KKy1pbXBsX2JpdF9t YW5pcCEgeyB1OHgxNiAgLCAgdTgsIGk4eDE2LCBpOCwgIGN0cG9wX3U4eDE2LCAgY3Rsel91OHgx NiwgIGN0dHpfdTh4MTYgIH0KKy1pbXBsX2JpdF9tYW5pcCEgeyB1OHgzMiAgLCAgdTgsIGk4eDMy LCBpOCwgIGN0cG9wX3U4eDMyLCAgY3Rsel91OHgzMiwgIGN0dHpfdTh4MzIgIH0KKy1pbXBsX2Jp dF9tYW5pcCEgeyB1OHg2NCAgLCAgdTgsIGk4eDY0LCBpOCwgIGN0cG9wX3U4eDY0LCAgY3Rsel91 OHg2NCwgIGN0dHpfdTh4NjQgIH0KKy1pbXBsX2JpdF9tYW5pcCEgeyB1MTZ4MiAgLCAgdTE2LCBp MTZ4MiwgaTE2LCAgY3Rwb3BfdTE2eDIsICBjdGx6X3UxNngyLCAgY3R0el91MTZ4MiAgfQorLWlt cGxfYml0X21hbmlwISB7IHUxNng0ICAsICB1MTYsIGkxNng0LCBpMTYsICBjdHBvcF91MTZ4NCwg IGN0bHpfdTE2eDQsICBjdHR6X3UxNng0ICB9CistaW1wbF9iaXRfbWFuaXAhIHsgdTE2eDggICwg IHUxNiwgaTE2eDgsIGkxNiwgIGN0cG9wX3UxNng4LCAgY3Rsel91MTZ4OCwgIGN0dHpfdTE2eDgg IH0KKy1pbXBsX2JpdF9tYW5pcCEgeyB1MTZ4MTYgLCB1MTYsIGkxNngxNiwgaTE2LCBjdHBvcF91 MTZ4MTYsIGN0bHpfdTE2eDE2LCBjdHR6X3UxNngxNiB9CistaW1wbF9iaXRfbWFuaXAhIHsgdTE2 eDMyICwgdTE2LCBpMTZ4MzIsIGkxNiwgY3Rwb3BfdTE2eDMyLCBjdGx6X3UxNngzMiwgY3R0el91 MTZ4MzIgfQorLWltcGxfYml0X21hbmlwISB7IHUzMngyICAsICB1MzIsIGkzMngyLCBpMzIsICBj dHBvcF91MzJ4MiwgIGN0bHpfdTMyeDIsICBjdHR6X3UzMngyICB9CistaW1wbF9iaXRfbWFuaXAh IHsgdTMyeDQgICwgIHUzMiwgaTMyeDQsIGkzMiwgIGN0cG9wX3UzMng0LCAgY3Rsel91MzJ4NCwg IGN0dHpfdTMyeDQgIH0KKy1pbXBsX2JpdF9tYW5pcCEgeyB1MzJ4OCAgLCAgdTMyLCBpMzJ4OCwg aTMyLCAgY3Rwb3BfdTMyeDgsICBjdGx6X3UzMng4LCAgY3R0el91MzJ4OCAgfQorLWltcGxfYml0 X21hbmlwISB7IHUzMngxNiAsIHUzMiwgaTMyeDE2LCBpMzIsIGN0cG9wX3UzMngxNiwgY3Rsel91 MzJ4MTYsIGN0dHpfdTMyeDE2IH0KKy1pbXBsX2JpdF9tYW5pcCEgeyB1NjR4MiAgLCAgdTY0LCBp NjR4MiwgaTY0LCAgY3Rwb3BfdTY0eDIsICBjdGx6X3U2NHgyLCAgY3R0el91NjR4MiAgfQorLWlt cGxfYml0X21hbmlwISB7IHU2NHg0ICAsICB1NjQsIGk2NHg0LCBpNjQsICBjdHBvcF91NjR4NCwg IGN0bHpfdTY0eDQsICBjdHR6X3U2NHg0ICB9CistaW1wbF9iaXRfbWFuaXAhIHsgdTY0eDggICwg IHU2NCwgaTY0eDgsIGk2NCwgIGN0cG9wX3U2NHg4LCAgY3Rsel91NjR4OCwgIGN0dHpfdTY0eDgg IH0KKy1pbXBsX2JpdF9tYW5pcCEgeyB1MTI4eDEgLCB1MTI4LCBpMTI4eDEsIGkxMjgsIGN0cG9w X3UxMjh4MSwgY3Rsel91MTI4eDEsIGN0dHpfdTEyOHgxIH0KKy1pbXBsX2JpdF9tYW5pcCEgeyB1 MTI4eDIgLCB1MTI4LCBpMTI4eDIsIGkxMjgsIGN0cG9wX3UxMjh4MiwgY3Rsel91MTI4eDIsIGN0 dHpfdTEyOHgyIH0KKy1pbXBsX2JpdF9tYW5pcCEgeyB1MTI4eDQgLCB1MTI4LCBpMTI4eDQsIGkx MjgsIGN0cG9wX3UxMjh4NCwgY3Rsel91MTI4eDQsIGN0dHpfdTEyOHg0IH0KKy0KKy0jW2NmZyh0 YXJnZXRfYXJjaCA9ICJhYXJjaDY0IildCistaW1wbCBCaXRNYW5pcCBmb3IgdTh4OCB7CistICAg ICNbaW5saW5lXQorLSAgICBmbiBjdHBvcChzZWxmKSAtPiBTZWxmIHsKKy0gICAgICAgIGxldCB5 OiB1OHg4ID0gc2VsZi5jYXN0KCk7CistICAgICAgICB1bnNhZmUgeyBjdHBvcF91OHg4KHkpLmNh c3QoKSB9CistICAgIH0KKy0KKy0gICAgI1tpbmxpbmVdCistICAgIGZuIGN0bHooc2VsZikgLT4g U2VsZiB7CistICAgICAgICBsZXQgeTogdTh4OCA9IHNlbGYuY2FzdCgpOworLSAgICAgICAgdW5z YWZlIHsgY3Rsel91OHg4KHksIGZhbHNlKS5jYXN0KCkgfQorLSAgICB9CistCistICAgICNbaW5s aW5lXQorLSAgICBmbiBjdHR6KHNlbGYpIC0+IFNlbGYgeworLSAgICAgICAgLy8gRklYTUU6IExM Vk0gY3R0ei52OGk4IGJyb2tlbiBvbiBhYXJjaDY0IGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxh bmctbnVyc2VyeS9wYWNrZWRfc2ltZC9pc3N1ZXMvMTkxCistICAgICAgICAvLyBPUFRJTUlaRTog YWRhcHQgdGhlIGFsZ29yaXRobSB1c2VkIGZvciB2OGkxNi9ldGMgdG8gUnVzdCdzIGFhcmNoNjQK Ky0gICAgICAgIC8vIGludHJpbnNpY3MKKy0gICAgICAgIGxldCBtdXQgdHogPSBzZWxmOworLSAg ICAgICAgZm9yIGkgaW4gMC4uU2VsZjo6bGFuZXMoKSB7CistICAgICAgICAgICAgdHogPSB0ei5y ZXBsYWNlKGksIHNlbGYuZXh0cmFjdChpKS50cmFpbGluZ196ZXJvcygpIGFzIHU4KTsKKy0gICAg ICAgIH0KKy0gICAgICAgIHR6CistICAgIH0KKy19CistI1tjZmcodGFyZ2V0X2FyY2ggPSAiYWFy Y2g2NCIpXQorLWltcGwgQml0TWFuaXAgZm9yIGk4eDggeworLSAgICAjW2lubGluZV0KKy0gICAg Zm4gY3Rwb3Aoc2VsZikgLT4gU2VsZiB7CistICAgICAgICBsZXQgeTogdTh4OCA9IHNlbGYuY2Fz dCgpOworLSAgICAgICAgdW5zYWZlIHsgY3Rwb3BfdTh4OCh5KS5jYXN0KCkgfQorLSAgICB9Cist CistICAgICNbaW5saW5lXQorLSAgICBmbiBjdGx6KHNlbGYpIC0+IFNlbGYgeworLSAgICAgICAg bGV0IHk6IHU4eDggPSBzZWxmLmNhc3QoKTsKKy0gICAgICAgIHVuc2FmZSB7IGN0bHpfdTh4OCh5 LCBmYWxzZSkuY2FzdCgpIH0KKy0gICAgfQorLQorLSAgICAjW2lubGluZV0KKy0gICAgZm4gY3R0 eihzZWxmKSAtPiBTZWxmIHsKKy0gICAgICAgIC8vIEZJWE1FOiBMTFZNIGN0dHoudjhpOCBicm9r ZW4gb24gYWFyY2g2NCBodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nLW51cnNlcnkvcGFja2Vk X3NpbWQvaXNzdWVzLzE5MQorLSAgICAgICAgLy8gT1BUSU1JWkU6IGFkYXB0IHRoZSBhbGdvcml0 aG0gdXNlZCBmb3IgdjhpMTYvZXRjIHRvIFJ1c3QncyBhYXJjaDY0CistICAgICAgICAvLyBpbnRy aW5zaWNzCistICAgICAgICBsZXQgbXV0IHR6ID0gc2VsZjsKKy0gICAgICAgIGZvciBpIGluIDAu LlNlbGY6OmxhbmVzKCkgeworLSAgICAgICAgICAgIHR6ID0gdHoucmVwbGFjZShpLCBzZWxmLmV4 dHJhY3QoaSkudHJhaWxpbmdfemVyb3MoKSBhcyBpOCk7CistICAgICAgICB9CistICAgICAgICB0 egorLSAgICB9CistfQorLQorLWNmZ19pZiEgeworLSAgICBpZiAjW2NmZyh0YXJnZXRfcG9pbnRl cl93aWR0aCA9ICI4IildIHsKKy0gICAgICAgIGltcGxfYml0X21hbmlwISB7IHNpemVkOiB1c2l6 ZXgyLCB1c2l6ZSwgaXNpemV4MiwgaXNpemUsIHU4eDIgfQorLSAgICAgICAgaW1wbF9iaXRfbWFu aXAhIHsgc2l6ZWQ6IHVzaXpleDQsIHVzaXplLCBpc2l6ZXg0LCBpc2l6ZSwgdTh4NCB9CistICAg ICAgICBpbXBsX2JpdF9tYW5pcCEgeyBzaXplZDogdXNpemV4OCwgdXNpemUsIGlzaXpleDgsIGlz aXplLCB1OHg4IH0KKy0gICAgfSBlbHNlIGlmICNbY2ZnKHRhcmdldF9wb2ludGVyX3dpZHRoID0g IjE2IildIHsKKy0gICAgICAgIGltcGxfYml0X21hbmlwISB7IHNpemVkOiB1c2l6ZXgyLCB1c2l6 ZSwgaXNpemV4MiwgaXNpemUsIHUxNngyIH0KKy0gICAgICAgIGltcGxfYml0X21hbmlwISB7IHNp emVkOiB1c2l6ZXg0LCB1c2l6ZSwgaXNpemV4NCwgaXNpemUsIHUxNng0IH0KKy0gICAgICAgIGlt cGxfYml0X21hbmlwISB7IHNpemVkOiB1c2l6ZXg4LCB1c2l6ZSwgaXNpemV4OCwgaXNpemUsIHUx Nng4IH0KKy0gICAgfSBlbHNlIGlmICNbY2ZnKHRhcmdldF9wb2ludGVyX3dpZHRoID0gIjMyIild IHsKKy0gICAgICAgIGltcGxfYml0X21hbmlwISB7IHNpemVkOiB1c2l6ZXgyLCB1c2l6ZSwgaXNp emV4MiwgaXNpemUsIHUzMngyIH0KKy0gICAgICAgIGltcGxfYml0X21hbmlwISB7IHNpemVkOiB1 c2l6ZXg0LCB1c2l6ZSwgaXNpemV4NCwgaXNpemUsIHUzMng0IH0KKy0gICAgICAgIGltcGxfYml0 X21hbmlwISB7IHNpemVkOiB1c2l6ZXg4LCB1c2l6ZSwgaXNpemV4OCwgaXNpemUsIHUzMng4IH0K Ky0gICAgfSBlbHNlIGlmICNbY2ZnKHRhcmdldF9wb2ludGVyX3dpZHRoID0gIjY0IildIHsKKy0g ICAgICAgIGltcGxfYml0X21hbmlwISB7IHNpemVkOiB1c2l6ZXgyLCB1c2l6ZSwgaXNpemV4Miwg aXNpemUsIHU2NHgyIH0KKy0gICAgICAgIGltcGxfYml0X21hbmlwISB7IHNpemVkOiB1c2l6ZXg0 LCB1c2l6ZSwgaXNpemV4NCwgaXNpemUsIHU2NHg0IH0KKy0gICAgICAgIGltcGxfYml0X21hbmlw ISB7IHNpemVkOiB1c2l6ZXg4LCB1c2l6ZSwgaXNpemV4OCwgaXNpemUsIHU2NHg4IH0KKy0gICAg fSBlbHNlIHsKKy0gICAgICAgIGNvbXBpbGVfZXJyb3IhKCJ1bnN1cHBvcnRlZCB0YXJnZXRfcG9p bnRlcl93aWR0aCIpOworLSAgICB9CistfQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3Qv cGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vbGx2bS5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2Vk X3NpbWQvc3JjL2NvZGVnZW4vbGx2bS5ycworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0g YS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL2xsdm0ucnMKKysrKyAv ZGV2L251bGwKK0BAIC0xLDEyMiArMCwwIEBACistLy8hIExMVk0ncyBwbGF0Zm9ybSBpbnRyaW5z aWNzCistIyFbYWxsb3coZGVhZF9jb2RlKV0KKy0KKy11c2UgY3JhdGU6OnNlYWxlZDo6U2h1ZmZs ZTsKKy0jW2FsbG93KHVudXNlZF9pbXBvcnRzKV0gLy8gRklYTUU6IHNwdXJpb3VzIHdhcm5pbmc/ CistdXNlIGNyYXRlOjpzZWFsZWQ6OlNpbWQ7CistCistZXh0ZXJuICJwbGF0Zm9ybS1pbnRyaW5z aWMiIHsKKy0gICAgZm4gc2ltZF9zaHVmZmxlPFQsIEksIFU+KHg6IFQsIHk6IFQsIGlkeDogSSkg LT4gVTsKKy19CistCistI1thbGxvdyhjbGlwcHk6Om1pc3Npbmdfc2FmZXR5X2RvYyldCistI1tp bmxpbmVdCistcHViIHVuc2FmZSBmbiBfX3NodWZmbGVfdmVjdG9yMjxjb25zdCBJRFg6IFt1MzI7 IDJdLCBULCBVPih4OiBULCB5OiBUKSAtPiBVCistd2hlcmUKKy0gICAgVDogU2ltZCwKKy0gICAg PFQgYXMgU2ltZD46OkVsZW1lbnQ6IFNodWZmbGU8W3UzMjsgMl0sIE91dHB1dCA9IFU+LAorLXsK Ky0gICAgc2ltZF9zaHVmZmxlKHgsIHksIElEWCkKKy19CistCistI1thbGxvdyhjbGlwcHk6Om1p c3Npbmdfc2FmZXR5X2RvYyldCistI1tpbmxpbmVdCistcHViIHVuc2FmZSBmbiBfX3NodWZmbGVf dmVjdG9yNDxjb25zdCBJRFg6IFt1MzI7IDRdLCBULCBVPih4OiBULCB5OiBUKSAtPiBVCistd2hl cmUKKy0gICAgVDogU2ltZCwKKy0gICAgPFQgYXMgU2ltZD46OkVsZW1lbnQ6IFNodWZmbGU8W3Uz MjsgNF0sIE91dHB1dCA9IFU+LAorLXsKKy0gICAgc2ltZF9zaHVmZmxlKHgsIHksIElEWCkKKy19 CistCistI1thbGxvdyhjbGlwcHk6Om1pc3Npbmdfc2FmZXR5X2RvYyldCistI1tpbmxpbmVdCist cHViIHVuc2FmZSBmbiBfX3NodWZmbGVfdmVjdG9yODxjb25zdCBJRFg6IFt1MzI7IDhdLCBULCBV Pih4OiBULCB5OiBUKSAtPiBVCistd2hlcmUKKy0gICAgVDogU2ltZCwKKy0gICAgPFQgYXMgU2lt ZD46OkVsZW1lbnQ6IFNodWZmbGU8W3UzMjsgOF0sIE91dHB1dCA9IFU+LAorLXsKKy0gICAgc2lt ZF9zaHVmZmxlKHgsIHksIElEWCkKKy19CistCistI1thbGxvdyhjbGlwcHk6Om1pc3Npbmdfc2Fm ZXR5X2RvYyldCistI1tpbmxpbmVdCistcHViIHVuc2FmZSBmbiBfX3NodWZmbGVfdmVjdG9yMTY8 Y29uc3QgSURYOiBbdTMyOyAxNl0sIFQsIFU+KHg6IFQsIHk6IFQpIC0+IFUKKy13aGVyZQorLSAg ICBUOiBTaW1kLAorLSAgICA8VCBhcyBTaW1kPjo6RWxlbWVudDogU2h1ZmZsZTxbdTMyOyAxNl0s IE91dHB1dCA9IFU+LAorLXsKKy0gICAgc2ltZF9zaHVmZmxlKHgsIHksIElEWCkKKy19CistCist I1thbGxvdyhjbGlwcHk6Om1pc3Npbmdfc2FmZXR5X2RvYyldCistI1tpbmxpbmVdCistcHViIHVu c2FmZSBmbiBfX3NodWZmbGVfdmVjdG9yMzI8Y29uc3QgSURYOiBbdTMyOyAzMl0sIFQsIFU+KHg6 IFQsIHk6IFQpIC0+IFUKKy13aGVyZQorLSAgICBUOiBTaW1kLAorLSAgICA8VCBhcyBTaW1kPjo6 RWxlbWVudDogU2h1ZmZsZTxbdTMyOyAzMl0sIE91dHB1dCA9IFU+LAorLXsKKy0gICAgc2ltZF9z aHVmZmxlKHgsIHksIElEWCkKKy19CistCistI1thbGxvdyhjbGlwcHk6Om1pc3Npbmdfc2FmZXR5 X2RvYyldCistI1tpbmxpbmVdCistcHViIHVuc2FmZSBmbiBfX3NodWZmbGVfdmVjdG9yNjQ8Y29u c3QgSURYOiBbdTMyOyA2NF0sIFQsIFU+KHg6IFQsIHk6IFQpIC0+IFUKKy13aGVyZQorLSAgICBU OiBTaW1kLAorLSAgICA8VCBhcyBTaW1kPjo6RWxlbWVudDogU2h1ZmZsZTxbdTMyOyA2NF0sIE91 dHB1dCA9IFU+LAorLXsKKy0gICAgc2ltZF9zaHVmZmxlKHgsIHksIElEWCkKKy19CistCistZXh0 ZXJuICJwbGF0Zm9ybS1pbnRyaW5zaWMiIHsKKy0gICAgcHViKGNyYXRlKSBmbiBzaW1kX2VxPFQs IFU+KHg6IFQsIHk6IFQpIC0+IFU7CistICAgIHB1YihjcmF0ZSkgZm4gc2ltZF9uZTxULCBVPih4 OiBULCB5OiBUKSAtPiBVOworLSAgICBwdWIoY3JhdGUpIGZuIHNpbWRfbHQ8VCwgVT4oeDogVCwg eTogVCkgLT4gVTsKKy0gICAgcHViKGNyYXRlKSBmbiBzaW1kX2xlPFQsIFU+KHg6IFQsIHk6IFQp IC0+IFU7CistICAgIHB1YihjcmF0ZSkgZm4gc2ltZF9ndDxULCBVPih4OiBULCB5OiBUKSAtPiBV OworLSAgICBwdWIoY3JhdGUpIGZuIHNpbWRfZ2U8VCwgVT4oeDogVCwgeTogVCkgLT4gVTsKKy0K Ky0gICAgcHViKGNyYXRlKSBmbiBzaW1kX2luc2VydDxULCBVPih4OiBULCBpZHg6IHUzMiwgdmFs OiBVKSAtPiBUOworLSAgICBwdWIoY3JhdGUpIGZuIHNpbWRfZXh0cmFjdDxULCBVPih4OiBULCBp ZHg6IHUzMikgLT4gVTsKKy0KKy0gICAgcHViKGNyYXRlKSBmbiBzaW1kX2Nhc3Q8VCwgVT4oeDog VCkgLT4gVTsKKy0KKy0gICAgcHViKGNyYXRlKSBmbiBzaW1kX2FkZDxUPih4OiBULCB5OiBUKSAt PiBUOworLSAgICBwdWIoY3JhdGUpIGZuIHNpbWRfc3ViPFQ+KHg6IFQsIHk6IFQpIC0+IFQ7Cist ICAgIHB1YihjcmF0ZSkgZm4gc2ltZF9tdWw8VD4oeDogVCwgeTogVCkgLT4gVDsKKy0gICAgcHVi KGNyYXRlKSBmbiBzaW1kX2RpdjxUPih4OiBULCB5OiBUKSAtPiBUOworLSAgICBwdWIoY3JhdGUp IGZuIHNpbWRfcmVtPFQ+KHg6IFQsIHk6IFQpIC0+IFQ7CistICAgIHB1YihjcmF0ZSkgZm4gc2lt ZF9zaGw8VD4oeDogVCwgeTogVCkgLT4gVDsKKy0gICAgcHViKGNyYXRlKSBmbiBzaW1kX3NocjxU Pih4OiBULCB5OiBUKSAtPiBUOworLSAgICBwdWIoY3JhdGUpIGZuIHNpbWRfYW5kPFQ+KHg6IFQs IHk6IFQpIC0+IFQ7CistICAgIHB1YihjcmF0ZSkgZm4gc2ltZF9vcjxUPih4OiBULCB5OiBUKSAt PiBUOworLSAgICBwdWIoY3JhdGUpIGZuIHNpbWRfeG9yPFQ+KHg6IFQsIHk6IFQpIC0+IFQ7Cist CistICAgIHB1YihjcmF0ZSkgZm4gc2ltZF9yZWR1Y2VfYWRkX3Vub3JkZXJlZDxULCBVPih4OiBU KSAtPiBVOworLSAgICBwdWIoY3JhdGUpIGZuIHNpbWRfcmVkdWNlX211bF91bm9yZGVyZWQ8VCwg VT4oeDogVCkgLT4gVTsKKy0gICAgcHViKGNyYXRlKSBmbiBzaW1kX3JlZHVjZV9hZGRfb3JkZXJl ZDxULCBVPih4OiBULCBhY2M6IFUpIC0+IFU7CistICAgIHB1YihjcmF0ZSkgZm4gc2ltZF9yZWR1 Y2VfbXVsX29yZGVyZWQ8VCwgVT4oeDogVCwgYWNjOiBVKSAtPiBVOworLSAgICBwdWIoY3JhdGUp IGZuIHNpbWRfcmVkdWNlX21pbjxULCBVPih4OiBUKSAtPiBVOworLSAgICBwdWIoY3JhdGUpIGZu IHNpbWRfcmVkdWNlX21heDxULCBVPih4OiBUKSAtPiBVOworLSAgICBwdWIoY3JhdGUpIGZuIHNp bWRfcmVkdWNlX21pbl9uYW5sZXNzPFQsIFU+KHg6IFQpIC0+IFU7CistICAgIHB1YihjcmF0ZSkg Zm4gc2ltZF9yZWR1Y2VfbWF4X25hbmxlc3M8VCwgVT4oeDogVCkgLT4gVTsKKy0gICAgcHViKGNy YXRlKSBmbiBzaW1kX3JlZHVjZV9hbmQ8VCwgVT4oeDogVCkgLT4gVTsKKy0gICAgcHViKGNyYXRl KSBmbiBzaW1kX3JlZHVjZV9vcjxULCBVPih4OiBUKSAtPiBVOworLSAgICBwdWIoY3JhdGUpIGZu IHNpbWRfcmVkdWNlX3hvcjxULCBVPih4OiBUKSAtPiBVOworLSAgICBwdWIoY3JhdGUpIGZuIHNp bWRfcmVkdWNlX2FsbDxUPih4OiBUKSAtPiBib29sOworLSAgICBwdWIoY3JhdGUpIGZuIHNpbWRf cmVkdWNlX2FueTxUPih4OiBUKSAtPiBib29sOworLQorLSAgICBwdWIoY3JhdGUpIGZuIHNpbWRf c2VsZWN0PE0sIFQ+KG06IE0sIGE6IFQsIGI6IFQpIC0+IFQ7CistCistICAgIHB1YihjcmF0ZSkg Zm4gc2ltZF9mbWluPFQ+KGE6IFQsIGI6IFQpIC0+IFQ7CistICAgIHB1YihjcmF0ZSkgZm4gc2lt ZF9mbWF4PFQ+KGE6IFQsIGI6IFQpIC0+IFQ7CistCistICAgIHB1YihjcmF0ZSkgZm4gc2ltZF9m c3FydDxUPihhOiBUKSAtPiBUOworLSAgICBwdWIoY3JhdGUpIGZuIHNpbWRfZm1hPFQ+KGE6IFQs IGI6IFQsIGM6IFQpIC0+IFQ7CistCistICAgIHB1YihjcmF0ZSkgZm4gc2ltZF9nYXRoZXI8VCwg UCwgTT4odmFsdWU6IFQsIHBvaW50ZXJzOiBQLCBtYXNrOiBNKSAtPiBUOworLSAgICBwdWIoY3Jh dGUpIGZuIHNpbWRfc2NhdHRlcjxULCBQLCBNPih2YWx1ZTogVCwgcG9pbnRlcnM6IFAsIG1hc2s6 IE0pOworLQorLSAgICBwdWIoY3JhdGUpIGZuIHNpbWRfYml0bWFzazxULCBVPih2YWx1ZTogVCkg LT4gVTsKKy19CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMv Y29kZWdlbi9tYXRoLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdl bi9tYXRoLnJzCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1 c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vbWF0aC5ycworKysrIC9kZXYvbnVsbAorQEAgLTEs MyArMCwwIEBACistLy8hIFZlcnRpY2FsIG1hdGggb3BlcmF0aW9ucworLQorLXB1YihjcmF0ZSkg bW9kIGZsb2F0OworZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3Jj L2NvZGVnZW4vbWF0aC9mbG9hdC5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3Jj L2NvZGVnZW4vbWF0aC9mbG9hdC5ycworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL21hdGgvZmxvYXQucnMKKysr KyAvZGV2L251bGwKK0BAIC0xLDE4ICswLDAgQEAKKy0vLyEgVmVydGljYWwgZmxvYXRpbmctcG9p bnQgbWF0aCBvcGVyYXRpb25zLgorLSMhW2FsbG93KGNsaXBweTo6dXNlbGVzc190cmFuc211dGUp XQorLQorLSNbbWFjcm9fdXNlXQorLXB1YihjcmF0ZSkgbW9kIG1hY3JvczsKKy1wdWIoY3JhdGUp IG1vZCBhYnM7CistcHViKGNyYXRlKSBtb2QgY29zOworLXB1YihjcmF0ZSkgbW9kIGNvc19waTsK Ky1wdWIoY3JhdGUpIG1vZCBleHA7CistcHViKGNyYXRlKSBtb2QgbG47CistcHViKGNyYXRlKSBt b2QgbXVsX2FkZDsKKy1wdWIoY3JhdGUpIG1vZCBtdWxfYWRkZTsKKy1wdWIoY3JhdGUpIG1vZCBw b3dmOworLXB1YihjcmF0ZSkgbW9kIHNpbjsKKy1wdWIoY3JhdGUpIG1vZCBzaW5fY29zX3BpOwor LXB1YihjcmF0ZSkgbW9kIHNpbl9waTsKKy1wdWIoY3JhdGUpIG1vZCBzcXJ0OworLXB1YihjcmF0 ZSkgbW9kIHNxcnRlOworZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQv c3JjL2NvZGVnZW4vbWF0aC9mbG9hdC9hYnMucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9z aW1kL3NyYy9jb2RlZ2VuL21hdGgvZmxvYXQvYWJzLnJzCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2 NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vbWF0aC9m bG9hdC9hYnMucnMKKysrKyAvZGV2L251bGwKK0BAIC0xLDEwMyArMCwwIEBACistLy8hIFZlcnRp Y2FsIGZsb2F0aW5nLXBvaW50IGBmYWJzYAorLSMhW2FsbG93KHVudXNlZCldCistCistLy8gRklY TUUgNjQtYml0IDEgZWxlbSB2ZWN0b3JzIGZhYnMKKy0KKy11c2UgY3JhdGU6Oio7CistCistcHVi KGNyYXRlKSB0cmFpdCBBYnMgeworLSAgICBmbiBhYnMoc2VsZikgLT4gU2VsZjsKKy19CistCist I1thbGxvdyhpbXByb3Blcl9jdHlwZXMpXQorLWV4dGVybiAiQyIgeworLSAgICAjW2xpbmtfbmFt ZSA9ICJsbHZtLmZhYnMudjJmMzIiXQorLSAgICBmbiBmYWJzX3YyZjMyKHg6IGYzMngyKSAtPiBm MzJ4MjsKKy0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5mYWJzLnY0ZjMyIl0KKy0gICAgZm4gZmFi c192NGYzMih4OiBmMzJ4NCkgLT4gZjMyeDQ7CistICAgICNbbGlua19uYW1lID0gImxsdm0uZmFi cy52OGYzMiJdCistICAgIGZuIGZhYnNfdjhmMzIoeDogZjMyeDgpIC0+IGYzMng4OworLSAgICAj W2xpbmtfbmFtZSA9ICJsbHZtLmZhYnMudjE2ZjMyIl0KKy0gICAgZm4gZmFic192MTZmMzIoeDog ZjMyeDE2KSAtPiBmMzJ4MTY7CistICAgIC8qIEZJWE1FIDY0LWJpdCBmYWJzZ2xlIGVsZW0gdmVj dG9ycworLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmZhYnMudjFmNjQiXQorLSAgICBmbiBmYWJz X3YxZjY0KHg6IGY2NHgxKSAtPiBmNjR4MTsKKy0gICAgICovCistICAgICNbbGlua19uYW1lID0g Imxsdm0uZmFicy52MmY2NCJdCistICAgIGZuIGZhYnNfdjJmNjQoeDogZjY0eDIpIC0+IGY2NHgy OworLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmZhYnMudjRmNjQiXQorLSAgICBmbiBmYWJzX3Y0 ZjY0KHg6IGY2NHg0KSAtPiBmNjR4NDsKKy0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5mYWJzLnY4 ZjY0Il0KKy0gICAgZm4gZmFic192OGY2NCh4OiBmNjR4OCkgLT4gZjY0eDg7CistCistICAgICNb bGlua19uYW1lID0gImxsdm0uZmFicy5mMzIiXQorLSAgICBmbiBmYWJzX2YzMih4OiBmMzIpIC0+ IGYzMjsKKy0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5mYWJzLmY2NCJdCistICAgIGZuIGZhYnNf ZjY0KHg6IGY2NCkgLT4gZjY0OworLX0KKy0KKy1nZW5fdW5hcnlfaW1wbF90YWJsZSEoQWJzLCBh YnMpOworLQorLWNmZ19pZiEgeworLSAgICBpZiAjW2NmZyh0YXJnZXRfYXJjaCA9ICJzMzkweCIp XSB7CistICAgICAgICAvLyBGSVhNRTogaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy1udXJz ZXJ5L3BhY2tlZF9zaW1kL2lzc3Vlcy8xNAorLSAgICAgICAgaW1wbF91bmFyeSEoZjMyeDJbZjMy OyAyXTogZmFic19mMzIpOworLSAgICAgICAgaW1wbF91bmFyeSEoZjMyeDRbZjMyOyA0XTogZmFi c19mMzIpOworLSAgICAgICAgaW1wbF91bmFyeSEoZjMyeDhbZjMyOyA4XTogZmFic19mMzIpOwor LSAgICAgICAgaW1wbF91bmFyeSEoZjMyeDE2W2YzMjsgMTZdOiBmYWJzX2YzMik7CistCistICAg ICAgICBpbXBsX3VuYXJ5IShmNjR4MltmNjQ7IDJdOiBmYWJzX2Y2NCk7CistICAgICAgICBpbXBs X3VuYXJ5IShmNjR4NFtmNjQ7IDRdOiBmYWJzX2Y2NCk7CistICAgICAgICBpbXBsX3VuYXJ5IShm NjR4OFtmNjQ7IDhdOiBmYWJzX2Y2NCk7CistICAgIH0gZWxzZSBpZiAjW2NmZyhhbGwodGFyZ2V0 X2FyY2ggPSAieDg2XzY0IiwgZmVhdHVyZSA9ICJzbGVlZi1zeXMiKSldIHsKKy0gICAgICAgIHVz ZSBzbGVlZl9zeXM6Oio7CistICAgICAgICBjZmdfaWYhIHsKKy0gICAgICAgICAgICBpZiAjW2Nm Zyh0YXJnZXRfZmVhdHVyZSA9ICJhdngyIildIHsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFy eSEoZjMyeDJbdCA9PiBmMzJ4NF06IFNsZWVmX2ZhYnNmNF9hdngyMTI4KTsKKy0gICAgICAgICAg ICAgICAgaW1wbF91bmFyeSEoZjMyeDE2W2ggPT4gZjMyeDhdOiBTbGVlZl9mYWJzZjhfYXZ4Mik7 CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg4W2ggPT4gZjY0eDRdOiBTbGVlZl9m YWJzZDRfYXZ4Mik7CistCistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng0OiBTbGVl Zl9mYWJzZjRfYXZ4MjEyOCk7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng4OiBT bGVlZl9mYWJzZjhfYXZ4Mik7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHgyOiBT bGVlZl9mYWJzZDJfYXZ4MjEyOCk7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg0 OiBTbGVlZl9mYWJzZDRfYXZ4Mik7CistICAgICAgICAgICAgfSBlbHNlIGlmICNbY2ZnKHRhcmdl dF9mZWF0dXJlID0gImF2eCIpXSB7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMngy W3QgPT4gZjMyeDRdOiBTbGVlZl9mYWJzZjRfc3NlNCk7CistICAgICAgICAgICAgICAgIGltcGxf dW5hcnkhKGYzMngxNltoID0+IGYzMng4XTogU2xlZWZfZmFic2Y4X2F2eCk7CistICAgICAgICAg ICAgICAgIGltcGxfdW5hcnkhKGY2NHg4W2ggPT4gZjY0eDRdOiBTbGVlZl9mYWJzZDRfYXZ4KTsK Ky0KKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDQ6IFNsZWVmX2ZhYnNmNF9zc2U0 KTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDg6IFNsZWVmX2ZhYnNmOF9hdngp OworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4MjogU2xlZWZfZmFic2QyX3NzZTQp OworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4NDogU2xlZWZfZmFic2Q0X2F2eCk7 CistICAgICAgICAgICAgfSBlbHNlIGlmICNbY2ZnKHRhcmdldF9mZWF0dXJlID0gInNzZTQuMiIp XSB7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMngyW3QgPT4gZjMyeDRdOiBTbGVl Zl9mYWJzZjRfc3NlNCk7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMngxNltxID0+ IGYzMng0XTogU2xlZWZfZmFic2Y0X3NzZTQpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5 IShmNjR4OFtxID0+IGY2NHgyXTogU2xlZWZfZmFic2QyX3NzZTQpOworLQorLSAgICAgICAgICAg ICAgICBpbXBsX3VuYXJ5IShmMzJ4NDogU2xlZWZfZmFic2Y0X3NzZTQpOworLSAgICAgICAgICAg ICAgICBpbXBsX3VuYXJ5IShmMzJ4OFtoID0+IGYzMng0XTogU2xlZWZfZmFic2Y0X3NzZTQpOwor LSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4MjogU2xlZWZfZmFic2QyX3NzZTQpOwor LSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4NFtoID0+IGY2NHgyXTogU2xlZWZfZmFi c2QyX3NzZTQpOworLSAgICAgICAgICAgIH0gZWxzZSB7CistICAgICAgICAgICAgICAgIGltcGxf dW5hcnkhKGYzMngyW2YzMjsgMl06IGZhYnNfZjMyKTsKKy0gICAgICAgICAgICAgICAgaW1wbF91 bmFyeSEoZjMyeDE2OiBmYWJzX3YxNmYzMik7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkh KGY2NHg4OiBmYWJzX3Y4ZjY0KTsKKy0KKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMy eDQ6IGZhYnNfdjRmMzIpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4ODogZmFi c192OGYzMik7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHgyOiBmYWJzX3YyZjY0 KTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDQ6IGZhYnNfdjRmNjQpOworLSAg ICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgfSBlbHNlIHsKKy0gICAgICAgIGltcGxfdW5h cnkhKGYzMngyW2YzMjsgMl06IGZhYnNfZjMyKTsKKy0gICAgICAgIGltcGxfdW5hcnkhKGYzMng0 OiBmYWJzX3Y0ZjMyKTsKKy0gICAgICAgIGltcGxfdW5hcnkhKGYzMng4OiBmYWJzX3Y4ZjMyKTsK Ky0gICAgICAgIGltcGxfdW5hcnkhKGYzMngxNjogZmFic192MTZmMzIpOworLQorLSAgICAgICAg aW1wbF91bmFyeSEoZjY0eDI6IGZhYnNfdjJmNjQpOworLSAgICAgICAgaW1wbF91bmFyeSEoZjY0 eDQ6IGZhYnNfdjRmNjQpOworLSAgICAgICAgaW1wbF91bmFyeSEoZjY0eDg6IGZhYnNfdjhmNjQp OworLSAgICB9CistfQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQv c3JjL2NvZGVnZW4vbWF0aC9mbG9hdC9jb3MucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9z aW1kL3NyYy9jb2RlZ2VuL21hdGgvZmxvYXQvY29zLnJzCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2 NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vbWF0aC9m bG9hdC9jb3MucnMKKysrKyAvZGV2L251bGwKK0BAIC0xLDEwMyArMCwwIEBACistLy8hIFZlcnRp Y2FsIGZsb2F0aW5nLXBvaW50IGBjb3NgCistIyFbYWxsb3codW51c2VkKV0KKy0KKy0vLyBGSVhN RSA2NC1iaXQgMSBlbGVtIHZlY3RvciBjb3MKKy0KKy11c2UgY3JhdGU6Oio7CistCistcHViKGNy YXRlKSB0cmFpdCBDb3MgeworLSAgICBmbiBjb3Moc2VsZikgLT4gU2VsZjsKKy19CistCistI1th bGxvdyhpbXByb3Blcl9jdHlwZXMpXQorLWV4dGVybiAiQyIgeworLSAgICAjW2xpbmtfbmFtZSA9 ICJsbHZtLmNvcy52MmYzMiJdCistICAgIGZuIGNvc192MmYzMih4OiBmMzJ4MikgLT4gZjMyeDI7 CistICAgICNbbGlua19uYW1lID0gImxsdm0uY29zLnY0ZjMyIl0KKy0gICAgZm4gY29zX3Y0ZjMy KHg6IGYzMng0KSAtPiBmMzJ4NDsKKy0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5jb3MudjhmMzIi XQorLSAgICBmbiBjb3NfdjhmMzIoeDogZjMyeDgpIC0+IGYzMng4OworLSAgICAjW2xpbmtfbmFt ZSA9ICJsbHZtLmNvcy52MTZmMzIiXQorLSAgICBmbiBjb3NfdjE2ZjMyKHg6IGYzMngxNikgLT4g ZjMyeDE2OworLSAgICAvKiBGSVhNRSA2NC1iaXQgY29zZ2xlIGVsZW0gdmVjdG9ycworLSAgICAj W2xpbmtfbmFtZSA9ICJsbHZtLmNvcy52MWY2NCJdCistICAgIGZuIGNvc192MWY2NCh4OiBmNjR4 MSkgLT4gZjY0eDE7CistICAgICAqLworLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmNvcy52MmY2 NCJdCistICAgIGZuIGNvc192MmY2NCh4OiBmNjR4MikgLT4gZjY0eDI7CistICAgICNbbGlua19u YW1lID0gImxsdm0uY29zLnY0ZjY0Il0KKy0gICAgZm4gY29zX3Y0ZjY0KHg6IGY2NHg0KSAtPiBm NjR4NDsKKy0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5jb3MudjhmNjQiXQorLSAgICBmbiBjb3Nf djhmNjQoeDogZjY0eDgpIC0+IGY2NHg4OworLQorLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmNv cy5mMzIiXQorLSAgICBmbiBjb3NfZjMyKHg6IGYzMikgLT4gZjMyOworLSAgICAjW2xpbmtfbmFt ZSA9ICJsbHZtLmNvcy5mNjQiXQorLSAgICBmbiBjb3NfZjY0KHg6IGY2NCkgLT4gZjY0OworLX0K Ky0KKy1nZW5fdW5hcnlfaW1wbF90YWJsZSEoQ29zLCBjb3MpOworLQorLWNmZ19pZiEgeworLSAg ICBpZiAjW2NmZyh0YXJnZXRfYXJjaCA9ICJzMzkweCIpXSB7CistICAgICAgICAvLyBGSVhNRTog aHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy1udXJzZXJ5L3BhY2tlZF9zaW1kL2lzc3Vlcy8x NAorLSAgICAgICAgaW1wbF91bmFyeSEoZjMyeDJbZjMyOyAyXTogY29zX2YzMik7CistICAgICAg ICBpbXBsX3VuYXJ5IShmMzJ4NFtmMzI7IDRdOiBjb3NfZjMyKTsKKy0gICAgICAgIGltcGxfdW5h cnkhKGYzMng4W2YzMjsgOF06IGNvc19mMzIpOworLSAgICAgICAgaW1wbF91bmFyeSEoZjMyeDE2 W2YzMjsgMTZdOiBjb3NfZjMyKTsKKy0KKy0gICAgICAgIGltcGxfdW5hcnkhKGY2NHgyW2Y2NDsg Ml06IGNvc19mNjQpOworLSAgICAgICAgaW1wbF91bmFyeSEoZjY0eDRbZjY0OyA0XTogY29zX2Y2 NCk7CistICAgICAgICBpbXBsX3VuYXJ5IShmNjR4OFtmNjQ7IDhdOiBjb3NfZjY0KTsKKy0gICAg fSBlbHNlIGlmICNbY2ZnKGFsbCh0YXJnZXRfYXJjaCA9ICJ4ODZfNjQiLCBmZWF0dXJlID0gInNs ZWVmLXN5cyIpKV0geworLSAgICAgICAgdXNlIHNsZWVmX3N5czo6KjsKKy0gICAgICAgIGNmZ19p ZiEgeworLSAgICAgICAgICAgIGlmICNbY2ZnKHRhcmdldF9mZWF0dXJlID0gImF2eDIiKV0gewor LSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4Mlt0ID0+IGYzMng0XTogU2xlZWZfY29z ZjRfdTEwYXZ4MjEyOCk7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMngxNltoID0+ IGYzMng4XTogU2xlZWZfY29zZjhfdTEwYXZ4Mik7CistICAgICAgICAgICAgICAgIGltcGxfdW5h cnkhKGY2NHg4W2ggPT4gZjY0eDRdOiBTbGVlZl9jb3NkNF91MTBhdngyKTsKKy0KKy0gICAgICAg ICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDQ6IFNsZWVmX2Nvc2Y0X3UxMGF2eDIxMjgpOworLSAg ICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4ODogU2xlZWZfY29zZjhfdTEwYXZ4Mik7Cist ICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHgyOiBTbGVlZl9jb3NkMl91MTBhdngyMTI4 KTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDQ6IFNsZWVmX2Nvc2Q0X3UxMGF2 eDIpOworLSAgICAgICAgICAgIH0gZWxzZSBpZiAjW2NmZyh0YXJnZXRfZmVhdHVyZSA9ICJhdngi KV0geworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4Mlt0ID0+IGYzMng0XTogU2xl ZWZfY29zZjRfdTEwc3NlNCk7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMngxNlto ID0+IGYzMng4XTogU2xlZWZfY29zZjhfdTEwYXZ4KTsKKy0gICAgICAgICAgICAgICAgaW1wbF91 bmFyeSEoZjY0eDhbaCA9PiBmNjR4NF06IFNsZWVmX2Nvc2Q0X3UxMGF2eCk7CistCistICAgICAg ICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng0OiBTbGVlZl9jb3NmNF91MTBzc2U0KTsKKy0gICAg ICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDg6IFNsZWVmX2Nvc2Y4X3UxMGF2eCk7CistICAg ICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHgyOiBTbGVlZl9jb3NkMl91MTBzc2U0KTsKKy0g ICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDQ6IFNsZWVmX2Nvc2Q0X3UxMGF2eCk7Cist ICAgICAgICAgICAgfSBlbHNlIGlmICNbY2ZnKHRhcmdldF9mZWF0dXJlID0gInNzZTQuMiIpXSB7 CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMngyW3QgPT4gZjMyeDRdOiBTbGVlZl9j b3NmNF91MTBzc2U0KTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDE2W3EgPT4g ZjMyeDRdOiBTbGVlZl9jb3NmNF91MTBzc2U0KTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFy eSEoZjY0eDhbcSA9PiBmNjR4Ml06IFNsZWVmX2Nvc2QyX3UxMHNzZTQpOworLQorLSAgICAgICAg ICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4NDogU2xlZWZfY29zZjRfdTEwc3NlNCk7CistICAgICAg ICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng4W2ggPT4gZjMyeDRdOiBTbGVlZl9jb3NmNF91MTBz c2U0KTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDI6IFNsZWVmX2Nvc2QyX3Ux MHNzZTQpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4NFtoID0+IGY2NHgyXTog U2xlZWZfY29zZDJfdTEwc3NlNCk7CistICAgICAgICAgICAgfSBlbHNlIHsKKy0gICAgICAgICAg ICAgICAgaW1wbF91bmFyeSEoZjMyeDJbZjMyOyAyXTogY29zX2YzMik7CistICAgICAgICAgICAg ICAgIGltcGxfdW5hcnkhKGYzMngxNjogY29zX3YxNmYzMik7CistICAgICAgICAgICAgICAgIGlt cGxfdW5hcnkhKGY2NHg4OiBjb3NfdjhmNjQpOworLQorLSAgICAgICAgICAgICAgICBpbXBsX3Vu YXJ5IShmMzJ4NDogY29zX3Y0ZjMyKTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMy eDg6IGNvc192OGYzMik7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHgyOiBjb3Nf djJmNjQpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4NDogY29zX3Y0ZjY0KTsK Ky0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgIH0gZWxzZSB7CistICAgICAgICBpbXBs X3VuYXJ5IShmMzJ4MltmMzI7IDJdOiBjb3NfZjMyKTsKKy0gICAgICAgIGltcGxfdW5hcnkhKGYz Mng0OiBjb3NfdjRmMzIpOworLSAgICAgICAgaW1wbF91bmFyeSEoZjMyeDg6IGNvc192OGYzMik7 CistICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4MTY6IGNvc192MTZmMzIpOworLQorLSAgICAgICAg aW1wbF91bmFyeSEoZjY0eDI6IGNvc192MmY2NCk7CistICAgICAgICBpbXBsX3VuYXJ5IShmNjR4 NDogY29zX3Y0ZjY0KTsKKy0gICAgICAgIGltcGxfdW5hcnkhKGY2NHg4OiBjb3NfdjhmNjQpOwor LSAgICB9CistfQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3Jj L2NvZGVnZW4vbWF0aC9mbG9hdC9jb3NfcGkucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9z aW1kL3NyYy9jb2RlZ2VuL21hdGgvZmxvYXQvY29zX3BpLnJzCitkZWxldGVkIGZpbGUgbW9kZSAx MDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vbWF0 aC9mbG9hdC9jb3NfcGkucnMKKysrKyAvZGV2L251bGwKK0BAIC0xLDg3ICswLDAgQEAKKy0vLyEg VmVydGljYWwgZmxvYXRpbmctcG9pbnQgYGNvc2AKKy0jIVthbGxvdyh1bnVzZWQpXQorLQorLS8v IEZJWE1FIDY0LWJpdCAxIGVsZW0gdmVjdG9ycyBjb3NfcGkKKy0KKy11c2UgY3JhdGU6Oio7Cist CistcHViKGNyYXRlKSB0cmFpdCBDb3NQaSB7CistICAgIGZuIGNvc19waShzZWxmKSAtPiBTZWxm OworLX0KKy0KKy1nZW5fdW5hcnlfaW1wbF90YWJsZSEoQ29zUGksIGNvc19waSk7CistCistbWFj cm9fcnVsZXMhIGltcGxfZGVmIHsKKy0gICAgKCR2aWQ6aWRlbnQsICRQSTpwYXRoKSA9PiB7Cist ICAgICAgICBpbXBsIENvc1BpIGZvciAkdmlkIHsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0g ICAgICAgICAgICBmbiBjb3NfcGkoc2VsZikgLT4gU2VsZiB7CistICAgICAgICAgICAgICAgIChz ZWxmICogU2VsZjo6c3BsYXQoJFBJKSkuY29zKCkKKy0gICAgICAgICAgICB9CistICAgICAgICB9 CistICAgIH07CistfQorLW1hY3JvX3J1bGVzISBpbXBsX2RlZjMyIHsKKy0gICAgKCR2aWQ6aWRl bnQpID0+IHsKKy0gICAgICAgIGltcGxfZGVmISgkdmlkLCBjcmF0ZTo6ZjMyOjpjb25zdHM6OlBJ KTsKKy0gICAgfTsKKy19CistbWFjcm9fcnVsZXMhIGltcGxfZGVmNjQgeworLSAgICAoJHZpZDpp ZGVudCkgPT4geworLSAgICAgICAgaW1wbF9kZWYhKCR2aWQsIGNyYXRlOjpmNjQ6OmNvbnN0czo6 UEkpOworLSAgICB9OworLX0KKy0KKy1jZmdfaWYhIHsKKy0gICAgaWYgI1tjZmcoYWxsKHRhcmdl dF9hcmNoID0gIng4Nl82NCIsIGZlYXR1cmUgPSAic2xlZWYtc3lzIikpXSB7CistICAgICAgICB1 c2Ugc2xlZWZfc3lzOjoqOworLSAgICAgICAgY2ZnX2lmISB7CistICAgICAgICAgICAgaWYgI1tj ZmcodGFyZ2V0X2ZlYXR1cmUgPSAiYXZ4MiIpXSB7CistICAgICAgICAgICAgICAgIGltcGxfdW5h cnkhKGYzMngyW3QgPT4gZjMyeDRdOiBTbGVlZl9jb3NwaWY0X3UwNWF2eDIxMjgpOworLSAgICAg ICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4MTZbaCA9PiBmMzJ4OF06IFNsZWVmX2Nvc3BpZjhf dTA1YXZ4Mik7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg4W2ggPT4gZjY0eDRd OiBTbGVlZl9jb3NwaWQ0X3UwNWF2eDIpOworLQorLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5 IShmMzJ4NDogU2xlZWZfY29zcGlmNF91MDVhdngyMTI4KTsKKy0gICAgICAgICAgICAgICAgaW1w bF91bmFyeSEoZjMyeDg6IFNsZWVmX2Nvc3BpZjhfdTA1YXZ4Mik7CistICAgICAgICAgICAgICAg IGltcGxfdW5hcnkhKGY2NHgyOiBTbGVlZl9jb3NwaWQyX3UwNWF2eDIxMjgpOworLSAgICAgICAg ICAgICAgICBpbXBsX3VuYXJ5IShmNjR4NDogU2xlZWZfY29zcGlkNF91MDVhdngyKTsKKy0gICAg ICAgICAgICB9IGVsc2UgaWYgI1tjZmcodGFyZ2V0X2ZlYXR1cmUgPSAiYXZ4IildIHsKKy0gICAg ICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDJbdCA9PiBmMzJ4NF06IFNsZWVmX2Nvc3BpZjRf dTA1c3NlNCk7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMngxNltoID0+IGYzMng4 XTogU2xlZWZfY29zcGlmOF91MDVhdngpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShm NjR4OFtoID0+IGY2NHg0XTogU2xlZWZfY29zcGlkNF91MDVhdngpOworLQorLSAgICAgICAgICAg ICAgICBpbXBsX3VuYXJ5IShmMzJ4NDogU2xlZWZfY29zcGlmNF91MDVzc2U0KTsKKy0gICAgICAg ICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDg6IFNsZWVmX2Nvc3BpZjhfdTA1YXZ4KTsKKy0gICAg ICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDI6IFNsZWVmX2Nvc3BpZDJfdTA1c3NlNCk7Cist ICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg0OiBTbGVlZl9jb3NwaWQ0X3UwNWF2eCk7 CistICAgICAgICAgICAgfSBlbHNlIGlmICNbY2ZnKHRhcmdldF9mZWF0dXJlID0gInNzZTQuMiIp XSB7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMngyW3QgPT4gZjMyeDRdOiBTbGVl Zl9jb3NwaWY0X3UwNXNzZTQpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4MTZb cSA9PiBmMzJ4NF06IFNsZWVmX2Nvc3BpZjRfdTA1c3NlNCk7CistICAgICAgICAgICAgICAgIGlt cGxfdW5hcnkhKGY2NHg4W3EgPT4gZjY0eDJdOiBTbGVlZl9jb3NwaWQyX3UwNXNzZTQpOworLQor LSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4NDogU2xlZWZfY29zcGlmNF91MDVzc2U0 KTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDhbaCA9PiBmMzJ4NF06IFNsZWVm X2Nvc3BpZjRfdTA1c3NlNCk7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHgyOiBT bGVlZl9jb3NwaWQyX3UwNXNzZTQpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4 NFtoID0+IGY2NHgyXTogU2xlZWZfY29zcGlkMl91MDVzc2U0KTsKKy0gICAgICAgICAgICB9IGVs c2UgeworLSAgICAgICAgICAgICAgICBpbXBsX2RlZjMyIShmMzJ4Mik7CistICAgICAgICAgICAg ICAgIGltcGxfZGVmMzIhKGYzMng0KTsKKy0gICAgICAgICAgICAgICAgaW1wbF9kZWYzMiEoZjMy eDgpOworLSAgICAgICAgICAgICAgICBpbXBsX2RlZjMyIShmMzJ4MTYpOworLQorLSAgICAgICAg ICAgICAgICBpbXBsX2RlZjY0IShmNjR4Mik7CistICAgICAgICAgICAgICAgIGltcGxfZGVmNjQh KGY2NHg0KTsKKy0gICAgICAgICAgICAgICAgaW1wbF9kZWY2NCEoZjY0eDgpOworLSAgICAgICAg ICAgIH0KKy0gICAgICAgIH0KKy0gICAgfSBlbHNlIHsKKy0gICAgICAgIGltcGxfZGVmMzIhKGYz MngyKTsKKy0gICAgICAgIGltcGxfZGVmMzIhKGYzMng0KTsKKy0gICAgICAgIGltcGxfZGVmMzIh KGYzMng4KTsKKy0gICAgICAgIGltcGxfZGVmMzIhKGYzMngxNik7CistCistICAgICAgICBpbXBs X2RlZjY0IShmNjR4Mik7CistICAgICAgICBpbXBsX2RlZjY0IShmNjR4NCk7CistICAgICAgICBp bXBsX2RlZjY0IShmNjR4OCk7CistICAgIH0KKy19CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkv cnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9tYXRoL2Zsb2F0L2V4cC5ycyBiL3RoaXJkX3Bh cnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vbWF0aC9mbG9hdC9leHAucnMKK2RlbGV0 ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9z cmMvY29kZWdlbi9tYXRoL2Zsb2F0L2V4cC5ycworKysrIC9kZXYvbnVsbAorQEAgLTEsMTEyICsw LDAgQEAKKy0vLyEgVmVydGljYWwgZmxvYXRpbmctcG9pbnQgYGV4cGAKKy0jIVthbGxvdyh1bnVz ZWQpXQorLQorLS8vIEZJWE1FIDY0LWJpdCBleHBnbGUgZWxlbSB2ZWN0b3JzIG1pc2V4cGcKKy0K Ky11c2UgY3JhdGU6Oio7CistCistcHViKGNyYXRlKSB0cmFpdCBFeHAgeworLSAgICBmbiBleHAo c2VsZikgLT4gU2VsZjsKKy19CistCistI1thbGxvdyhpbXByb3Blcl9jdHlwZXMpXQorLWV4dGVy biAiQyIgeworLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmV4cC52MmYzMiJdCistICAgIGZuIGV4 cF92MmYzMih4OiBmMzJ4MikgLT4gZjMyeDI7CistICAgICNbbGlua19uYW1lID0gImxsdm0uZXhw LnY0ZjMyIl0KKy0gICAgZm4gZXhwX3Y0ZjMyKHg6IGYzMng0KSAtPiBmMzJ4NDsKKy0gICAgI1ts aW5rX25hbWUgPSAibGx2bS5leHAudjhmMzIiXQorLSAgICBmbiBleHBfdjhmMzIoeDogZjMyeDgp IC0+IGYzMng4OworLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmV4cC52MTZmMzIiXQorLSAgICBm biBleHBfdjE2ZjMyKHg6IGYzMngxNikgLT4gZjMyeDE2OworLSAgICAvKiBGSVhNRSA2NC1iaXQg ZXhwZ2xlIGVsZW0gdmVjdG9ycworLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmV4cC52MWY2NCJd CistICAgIGZuIGV4cF92MWY2NCh4OiBmNjR4MSkgLT4gZjY0eDE7CistICAgICAqLworLSAgICAj W2xpbmtfbmFtZSA9ICJsbHZtLmV4cC52MmY2NCJdCistICAgIGZuIGV4cF92MmY2NCh4OiBmNjR4 MikgLT4gZjY0eDI7CistICAgICNbbGlua19uYW1lID0gImxsdm0uZXhwLnY0ZjY0Il0KKy0gICAg Zm4gZXhwX3Y0ZjY0KHg6IGY2NHg0KSAtPiBmNjR4NDsKKy0gICAgI1tsaW5rX25hbWUgPSAibGx2 bS5leHAudjhmNjQiXQorLSAgICBmbiBleHBfdjhmNjQoeDogZjY0eDgpIC0+IGY2NHg4OworLQor LSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmV4cC5mMzIiXQorLSAgICBmbiBleHBfZjMyKHg6IGYz MikgLT4gZjMyOworLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmV4cC5mNjQiXQorLSAgICBmbiBl eHBfZjY0KHg6IGY2NCkgLT4gZjY0OworLX0KKy0KKy1nZW5fdW5hcnlfaW1wbF90YWJsZSEoRXhw LCBleHApOworLQorLWNmZ19pZiEgeworLSAgICBpZiAjW2NmZyh0YXJnZXRfYXJjaCA9ICJzMzkw eCIpXSB7CistICAgICAgICAvLyBGSVhNRTogaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy1u dXJzZXJ5L3BhY2tlZF9zaW1kL2lzc3Vlcy8xNAorLSAgICAgICAgaW1wbF91bmFyeSEoZjMyeDJb ZjMyOyAyXTogZXhwX2YzMik7CistICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4NFtmMzI7IDRdOiBl eHBfZjMyKTsKKy0gICAgICAgIGltcGxfdW5hcnkhKGYzMng4W2YzMjsgOF06IGV4cF9mMzIpOwor LSAgICAgICAgaW1wbF91bmFyeSEoZjMyeDE2W2YzMjsgMTZdOiBleHBfZjMyKTsKKy0KKy0gICAg ICAgIGltcGxfdW5hcnkhKGY2NHgyW2Y2NDsgMl06IGV4cF9mNjQpOworLSAgICAgICAgaW1wbF91 bmFyeSEoZjY0eDRbZjY0OyA0XTogZXhwX2Y2NCk7CistICAgICAgICBpbXBsX3VuYXJ5IShmNjR4 OFtmNjQ7IDhdOiBleHBfZjY0KTsKKy0gICAgfSBlbHNlIGlmICNbY2ZnKGFsbCh0YXJnZXRfYXJj aCA9ICJ4ODZfNjQiLCBmZWF0dXJlID0gInNsZWVmLXN5cyIpKV0geworLSAgICAgICAgdXNlIHNs ZWVmX3N5czo6KjsKKy0gICAgICAgIGNmZ19pZiEgeworLSAgICAgICAgICAgIGlmICNbY2ZnKHRh cmdldF9mZWF0dXJlID0gImF2eDIiKV0geworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShm MzJ4Mlt0ID0+IGYzMng0XTogU2xlZWZfZXhwZjRfdTEwYXZ4MjEyOCk7CistICAgICAgICAgICAg ICAgIGltcGxfdW5hcnkhKGYzMngxNltoID0+IGYzMng4XTogU2xlZWZfZXhwZjhfdTEwYXZ4Mik7 CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg4W2ggPT4gZjY0eDRdOiBTbGVlZl9l eHBkNF91MTBhdngyKTsKKy0KKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDQ6IFNs ZWVmX2V4cGY0X3UxMGF2eDIxMjgpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4 ODogU2xlZWZfZXhwZjhfdTEwYXZ4Mik7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2 NHgyOiBTbGVlZl9leHBkMl91MTBhdngyMTI4KTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFy eSEoZjY0eDQ6IFNsZWVmX2V4cGQ0X3UxMGF2eDIpOworLSAgICAgICAgICAgIH0gZWxzZSBpZiAj W2NmZyh0YXJnZXRfZmVhdHVyZSA9ICJhdngiKV0geworLSAgICAgICAgICAgICAgICBpbXBsX3Vu YXJ5IShmMzJ4Mlt0ID0+IGYzMng0XTogU2xlZWZfZXhwZjRfdTEwc3NlNCk7CistICAgICAgICAg ICAgICAgIGltcGxfdW5hcnkhKGYzMngxNltoID0+IGYzMng4XTogU2xlZWZfZXhwZjhfdTEwYXZ4 KTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDhbaCA9PiBmNjR4NF06IFNsZWVm X2V4cGQ0X3UxMGF2eCk7CistCistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng0OiBT bGVlZl9leHBmNF91MTBzc2U0KTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDg6 IFNsZWVmX2V4cGY4X3UxMGF2eCk7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHgy OiBTbGVlZl9leHBkMl91MTBzc2U0KTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0 eDQ6IFNsZWVmX2V4cGQ0X3UxMGF2eCk7CistICAgICAgICAgICAgfSBlbHNlIGlmICNbY2ZnKHRh cmdldF9mZWF0dXJlID0gInNzZTQuMiIpXSB7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkh KGYzMngyW3QgPT4gZjMyeDRdOiBTbGVlZl9leHBmNF91MTBzc2U0KTsKKy0gICAgICAgICAgICAg ICAgaW1wbF91bmFyeSEoZjMyeDE2W3EgPT4gZjMyeDRdOiBTbGVlZl9leHBmNF91MTBzc2U0KTsK Ky0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDhbcSA9PiBmNjR4Ml06IFNsZWVmX2V4 cGQyX3UxMHNzZTQpOworLQorLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4NDogU2xl ZWZfZXhwZjRfdTEwc3NlNCk7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng4W2gg PT4gZjMyeDRdOiBTbGVlZl9leHBmNF91MTBzc2U0KTsKKy0gICAgICAgICAgICAgICAgaW1wbF91 bmFyeSEoZjY0eDI6IFNsZWVmX2V4cGQyX3UxMHNzZTQpOworLSAgICAgICAgICAgICAgICBpbXBs X3VuYXJ5IShmNjR4NFtoID0+IGY2NHgyXTogU2xlZWZfZXhwZDJfdTEwc3NlNCk7CistICAgICAg ICAgICAgfSBlbHNlIGlmICNbY2ZnKHRhcmdldF9mZWF0dXJlID0gInNzZTIiKV0geworLSAgICAg ICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4Mlt0ID0+IGYzMng0XTogU2xlZWZfZXhwZjRfdTEw c3NlMik7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMngxNltxID0+IGYzMng0XTog U2xlZWZfZXhwZjRfdTEwc3NlMik7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg4 W3EgPT4gZjY0eDJdOiBTbGVlZl9leHBkMl91MTBzc2UyKTsKKy0KKy0gICAgICAgICAgICAgICAg aW1wbF91bmFyeSEoZjMyeDQ6IFNsZWVmX2V4cGY0X3UxMHNzZTIpOworLSAgICAgICAgICAgICAg ICBpbXBsX3VuYXJ5IShmMzJ4OFtoID0+IGYzMng0XTogU2xlZWZfZXhwZjRfdTEwc3NlMik7Cist ICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHgyOiBTbGVlZl9leHBkMl91MTBzc2UyKTsK Ky0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDRbaCA9PiBmNjR4Ml06IFNsZWVmX2V4 cGQyX3UxMHNzZTIpOworLSAgICAgICAgICAgIH0gZWxzZSB7CistICAgICAgICAgICAgICAgIGlt cGxfdW5hcnkhKGYzMngyW2YzMjsgMl06IGV4cF9mMzIpOworLSAgICAgICAgICAgICAgICBpbXBs X3VuYXJ5IShmMzJ4MTY6IGV4cF92MTZmMzIpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5 IShmNjR4ODogZXhwX3Y4ZjY0KTsKKy0KKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMy eDQ6IGV4cF92NGYzMik7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng4OiBleHBf djhmMzIpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4MjogZXhwX3YyZjY0KTsK Ky0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDQ6IGV4cF92NGY2NCk7CistICAgICAg ICAgICAgfQorLSAgICAgICAgfQorLSAgICB9IGVsc2UgeworLSAgICAgICAgaW1wbF91bmFyeSEo ZjMyeDJbZjMyOyAyXTogZXhwX2YzMik7CistICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4NDogZXhw X3Y0ZjMyKTsKKy0gICAgICAgIGltcGxfdW5hcnkhKGYzMng4OiBleHBfdjhmMzIpOworLSAgICAg ICAgaW1wbF91bmFyeSEoZjMyeDE2OiBleHBfdjE2ZjMyKTsKKy0KKy0gICAgICAgIGltcGxfdW5h cnkhKGY2NHgyOiBleHBfdjJmNjQpOworLSAgICAgICAgaW1wbF91bmFyeSEoZjY0eDQ6IGV4cF92 NGY2NCk7CistICAgICAgICBpbXBsX3VuYXJ5IShmNjR4ODogZXhwX3Y4ZjY0KTsKKy0gICAgfQor LX0KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2Vu L21hdGgvZmxvYXQvbG4ucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2Rl Z2VuL21hdGgvZmxvYXQvbG4ucnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhp cmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9tYXRoL2Zsb2F0L2xuLnJzCisr KysgL2Rldi9udWxsCitAQCAtMSwxMTIgKzAsMCBAQAorLS8vISBWZXJ0aWNhbCBmbG9hdGluZy1w b2ludCBgbG5gCistIyFbYWxsb3codW51c2VkKV0KKy0KKy0vLyBGSVhNRSA2NC1iaXQgbG5nbGUg ZWxlbSB2ZWN0b3JzIG1pc2xuZworLQorLXVzZSBjcmF0ZTo6KjsKKy0KKy1wdWIoY3JhdGUpIHRy YWl0IExuIHsKKy0gICAgZm4gbG4oc2VsZikgLT4gU2VsZjsKKy19CistCistI1thbGxvdyhpbXBy b3Blcl9jdHlwZXMpXQorLWV4dGVybiAiQyIgeworLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmxv Zy52MmYzMiJdCistICAgIGZuIGxuX3YyZjMyKHg6IGYzMngyKSAtPiBmMzJ4MjsKKy0gICAgI1ts aW5rX25hbWUgPSAibGx2bS5sb2cudjRmMzIiXQorLSAgICBmbiBsbl92NGYzMih4OiBmMzJ4NCkg LT4gZjMyeDQ7CistICAgICNbbGlua19uYW1lID0gImxsdm0ubG9nLnY4ZjMyIl0KKy0gICAgZm4g bG5fdjhmMzIoeDogZjMyeDgpIC0+IGYzMng4OworLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmxv Zy52MTZmMzIiXQorLSAgICBmbiBsbl92MTZmMzIoeDogZjMyeDE2KSAtPiBmMzJ4MTY7CistICAg IC8qIEZJWE1FIDY0LWJpdCBsbmdsZSBlbGVtIHZlY3RvcnMKKy0gICAgI1tsaW5rX25hbWUgPSAi bGx2bS5sb2cudjFmNjQiXQorLSAgICBmbiBsbl92MWY2NCh4OiBmNjR4MSkgLT4gZjY0eDE7Cist ICAgICAqLworLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmxvZy52MmY2NCJdCistICAgIGZuIGxu X3YyZjY0KHg6IGY2NHgyKSAtPiBmNjR4MjsKKy0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5sb2cu djRmNjQiXQorLSAgICBmbiBsbl92NGY2NCh4OiBmNjR4NCkgLT4gZjY0eDQ7CistICAgICNbbGlu a19uYW1lID0gImxsdm0ubG9nLnY4ZjY0Il0KKy0gICAgZm4gbG5fdjhmNjQoeDogZjY0eDgpIC0+ IGY2NHg4OworLQorLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmxvZy5mMzIiXQorLSAgICBmbiBs bl9mMzIoeDogZjMyKSAtPiBmMzI7CistICAgICNbbGlua19uYW1lID0gImxsdm0ubG9nLmY2NCJd CistICAgIGZuIGxuX2Y2NCh4OiBmNjQpIC0+IGY2NDsKKy19CistCistZ2VuX3VuYXJ5X2ltcGxf dGFibGUhKExuLCBsbik7CistCistY2ZnX2lmISB7CistICAgIGlmICNbY2ZnKHRhcmdldF9hcmNo ID0gInMzOTB4IildIHsKKy0gICAgICAgIC8vIEZJWE1FOiBodHRwczovL2dpdGh1Yi5jb20vcnVz dC1sYW5nLW51cnNlcnkvcGFja2VkX3NpbWQvaXNzdWVzLzE0CistICAgICAgICBpbXBsX3VuYXJ5 IShmMzJ4MltmMzI7IDJdOiBsbl9mMzIpOworLSAgICAgICAgaW1wbF91bmFyeSEoZjMyeDRbZjMy OyA0XTogbG5fZjMyKTsKKy0gICAgICAgIGltcGxfdW5hcnkhKGYzMng4W2YzMjsgOF06IGxuX2Yz Mik7CistICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4MTZbZjMyOyAxNl06IGxuX2YzMik7CistCist ICAgICAgICBpbXBsX3VuYXJ5IShmNjR4MltmNjQ7IDJdOiBsbl9mNjQpOworLSAgICAgICAgaW1w bF91bmFyeSEoZjY0eDRbZjY0OyA0XTogbG5fZjY0KTsKKy0gICAgICAgIGltcGxfdW5hcnkhKGY2 NHg4W2Y2NDsgOF06IGxuX2Y2NCk7CistICAgIH0gZWxzZSBpZiAjW2NmZyhhbGwodGFyZ2V0X2Fy Y2ggPSAieDg2XzY0IiwgZmVhdHVyZSA9ICJzbGVlZi1zeXMiKSldIHsKKy0gICAgICAgIHVzZSBz bGVlZl9zeXM6Oio7CistICAgICAgICBjZmdfaWYhIHsKKy0gICAgICAgICAgICBpZiAjW2NmZyh0 YXJnZXRfZmVhdHVyZSA9ICJhdngyIildIHsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEo ZjMyeDJbdCA9PiBmMzJ4NF06IFNsZWVmX2xvZ2Y0X3UxMGF2eDIxMjgpOworLSAgICAgICAgICAg ICAgICBpbXBsX3VuYXJ5IShmMzJ4MTZbaCA9PiBmMzJ4OF06IFNsZWVmX2xvZ2Y4X3UxMGF2eDIp OworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4OFtoID0+IGY2NHg0XTogU2xlZWZf bG9nZDRfdTEwYXZ4Mik7CistCistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng0OiBT bGVlZl9sb2dmNF91MTBhdngyMTI4KTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMy eDg6IFNsZWVmX2xvZ2Y4X3UxMGF2eDIpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShm NjR4MjogU2xlZWZfbG9nZDJfdTEwYXZ4MjEyOCk7CistICAgICAgICAgICAgICAgIGltcGxfdW5h cnkhKGY2NHg0OiBTbGVlZl9sb2dkNF91MTBhdngyKTsKKy0gICAgICAgICAgICB9IGVsc2UgaWYg I1tjZmcodGFyZ2V0X2ZlYXR1cmUgPSAiYXZ4IildIHsKKy0gICAgICAgICAgICAgICAgaW1wbF91 bmFyeSEoZjMyeDJbdCA9PiBmMzJ4NF06IFNsZWVmX2xvZ2Y0X3UxMHNzZTQpOworLSAgICAgICAg ICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4MTZbaCA9PiBmMzJ4OF06IFNsZWVmX2xvZ2Y4X3UxMGF2 eCk7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg4W2ggPT4gZjY0eDRdOiBTbGVl Zl9sb2dkNF91MTBhdngpOworLQorLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4NDog U2xlZWZfbG9nZjRfdTEwc3NlNCk7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng4 OiBTbGVlZl9sb2dmOF91MTBhdngpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4 MjogU2xlZWZfbG9nZDJfdTEwc3NlNCk7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2 NHg0OiBTbGVlZl9sb2dkNF91MTBhdngpOworLSAgICAgICAgICAgIH0gZWxzZSBpZiAjW2NmZyh0 YXJnZXRfZmVhdHVyZSA9ICJzc2U0LjIiKV0geworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5 IShmMzJ4Mlt0ID0+IGYzMng0XTogU2xlZWZfbG9nZjRfdTEwc3NlNCk7CistICAgICAgICAgICAg ICAgIGltcGxfdW5hcnkhKGYzMngxNltxID0+IGYzMng0XTogU2xlZWZfbG9nZjRfdTEwc3NlNCk7 CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg4W3EgPT4gZjY0eDJdOiBTbGVlZl9s b2dkMl91MTBzc2U0KTsKKy0KKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDQ6IFNs ZWVmX2xvZ2Y0X3UxMHNzZTQpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4OFto ID0+IGYzMng0XTogU2xlZWZfbG9nZjRfdTEwc3NlNCk7CistICAgICAgICAgICAgICAgIGltcGxf dW5hcnkhKGY2NHgyOiBTbGVlZl9sb2dkMl91MTBzc2U0KTsKKy0gICAgICAgICAgICAgICAgaW1w bF91bmFyeSEoZjY0eDRbaCA9PiBmNjR4Ml06IFNsZWVmX2xvZ2QyX3UxMHNzZTQpOworLSAgICAg ICAgICAgIH0gZWxzZSBpZiAjW2NmZyh0YXJnZXRfZmVhdHVyZSA9ICJzc2UyIildIHsKKy0gICAg ICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDJbdCA9PiBmMzJ4NF06IFNsZWVmX2xvZ2Y0X3Ux MHNzZTIpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4MTZbcSA9PiBmMzJ4NF06 IFNsZWVmX2xvZ2Y0X3UxMHNzZTIpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4 OFtxID0+IGY2NHgyXTogU2xlZWZfbG9nZDJfdTEwc3NlMik7CistCistICAgICAgICAgICAgICAg IGltcGxfdW5hcnkhKGYzMng0OiBTbGVlZl9sb2dmNF91MTBzc2UyKTsKKy0gICAgICAgICAgICAg ICAgaW1wbF91bmFyeSEoZjMyeDhbaCA9PiBmMzJ4NF06IFNsZWVmX2xvZ2Y0X3UxMHNzZTIpOwor LSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4MjogU2xlZWZfbG9nZDJfdTEwc3NlMik7 CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg0W2ggPT4gZjY0eDJdOiBTbGVlZl9s b2dkMl91MTBzc2UyKTsKKy0gICAgICAgICAgICB9IGVsc2UgeworLSAgICAgICAgICAgICAgICBp bXBsX3VuYXJ5IShmMzJ4MltmMzI7IDJdOiBsbl9mMzIpOworLSAgICAgICAgICAgICAgICBpbXBs X3VuYXJ5IShmMzJ4MTY6IGxuX3YxNmYzMik7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkh KGY2NHg4OiBsbl92OGY2NCk7CistCistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng0 OiBsbl92NGYzMik7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng4OiBsbl92OGYz Mik7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHgyOiBsbl92MmY2NCk7CistICAg ICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg0OiBsbl92NGY2NCk7CistICAgICAgICAgICAg fQorLSAgICAgICAgfQorLSAgICB9IGVsc2UgeworLSAgICAgICAgaW1wbF91bmFyeSEoZjMyeDJb ZjMyOyAyXTogbG5fZjMyKTsKKy0gICAgICAgIGltcGxfdW5hcnkhKGYzMng0OiBsbl92NGYzMik7 CistICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4ODogbG5fdjhmMzIpOworLSAgICAgICAgaW1wbF91 bmFyeSEoZjMyeDE2OiBsbl92MTZmMzIpOworLQorLSAgICAgICAgaW1wbF91bmFyeSEoZjY0eDI6 IGxuX3YyZjY0KTsKKy0gICAgICAgIGltcGxfdW5hcnkhKGY2NHg0OiBsbl92NGY2NCk7CistICAg ICAgICBpbXBsX3VuYXJ5IShmNjR4ODogbG5fdjhmNjQpOworLSAgICB9CistfQorZGlmZiAtLWdp dCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vbWF0aC9mbG9hdC9t YWNyb3MucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL21hdGgv ZmxvYXQvbWFjcm9zLnJzCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3Bh cnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vbWF0aC9mbG9hdC9tYWNyb3MucnMKKysr KyAvZGV2L251bGwKK0BAIC0xLDQ3MCArMCwwIEBACistLy8hIFV0aWxpdHkgbWFjcm9zCistIyFb YWxsb3codW51c2VkKV0KKy0KKy1tYWNyb19ydWxlcyEgaW1wbF91bmFyeV8geworLSAgICAvLyBp bXBsZW1lbnRhdGlvbiBtYXBwaW5nIDE6MQorLSAgICAodmVjIHwgJHRyYWl0X2lkOmlkZW50LCAk dHJhaXRfbWV0aG9kOmlkZW50LCAkdmVjX2lkOmlkZW50LAorLSAgICAgJGZ1bjppZGVudCkgPT4g eworLSAgICAgICAgaW1wbCAkdHJhaXRfaWQgZm9yICR2ZWNfaWQgeworLSAgICAgICAgICAgICNb aW5saW5lXQorLSAgICAgICAgICAgIGZuICR0cmFpdF9tZXRob2Qoc2VsZikgLT4gU2VsZiB7Cist ICAgICAgICAgICAgICAgIHVuc2FmZSB7CistICAgICAgICAgICAgICAgICAgICB1c2UgY3JhdGU6 Om1lbTo6dHJhbnNtdXRlOworLSAgICAgICAgICAgICAgICAgICAgdHJhbnNtdXRlKCRmdW4odHJh bnNtdXRlKHNlbGYpKSkKKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgIH0KKy0gICAg ICAgIH0KKy0gICAgfTsKKy0gICAgLy8gaW1wbGVtZW50YXRpb24gbWFwcGluZyAxOjEgZm9yIHdo ZW4gYCRmdW5gIGlzIGEgZ2VuZXJpYyBmdW5jdGlvbgorLSAgICAvLyBsaWtlIHNvbWUgb2YgdGhl IGZwIG1hdGggcnVzdGMgaW50cmluc2ljcyAoZS5nLiBgZm4gZnVuPFQ+KHg6IFQpIC0+IFRgKS4K Ky0gICAgKGdlbiB8ICR0cmFpdF9pZDppZGVudCwgJHRyYWl0X21ldGhvZDppZGVudCwgJHZlY19p ZDppZGVudCwKKy0gICAgICRmdW46aWRlbnQpID0+IHsKKy0gICAgICAgIGltcGwgJHRyYWl0X2lk IGZvciAkdmVjX2lkIHsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBmbiAk dHJhaXRfbWV0aG9kKHNlbGYpIC0+IFNlbGYgeworLSAgICAgICAgICAgICAgICB1bnNhZmUgewor LSAgICAgICAgICAgICAgICAgICAgdXNlIGNyYXRlOjptZW06OnRyYW5zbXV0ZTsKKy0gICAgICAg ICAgICAgICAgICAgIHRyYW5zbXV0ZSgkZnVuKHNlbGYuMCkpCistICAgICAgICAgICAgICAgIH0K Ky0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgIH07CistICAgIChzY2FsYXIgfCAkdHJh aXRfaWQ6aWRlbnQsICR0cmFpdF9tZXRob2Q6aWRlbnQsCistICAgICAkdmVjX2lkOmlkZW50LCBb JHNpZDppZGVudDsgJHNjb3VudDpleHByXSwgJGZ1bjppZGVudCkgPT4geworLSAgICAgICAgaW1w bCAkdHJhaXRfaWQgZm9yICR2ZWNfaWQgeworLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAg ICAgICAgIGZuICR0cmFpdF9tZXRob2Qoc2VsZikgLT4gU2VsZiB7CistICAgICAgICAgICAgICAg IHVuc2FmZSB7CistICAgICAgICAgICAgICAgICAgICB1bmlvbiBVIHsKKy0gICAgICAgICAgICAg ICAgICAgICAgICB2ZWM6ICR2ZWNfaWQsCistICAgICAgICAgICAgICAgICAgICAgICAgc2NhbGFy czogWyRzaWQ7ICRzY291bnRdLAorLSAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAg ICAgICAgICAgbGV0IG11dCBzY2FsYXJzID0gVSB7IHZlYzogc2VsZiB9LnNjYWxhcnM7CistICAg ICAgICAgICAgICAgICAgICBmb3IgaSBpbiAmbXV0IHNjYWxhcnMgeworLSAgICAgICAgICAgICAg ICAgICAgICAgICppID0gJGZ1bigqaSk7CistICAgICAgICAgICAgICAgICAgICB9CistICAgICAg ICAgICAgICAgICAgICBVIHsgc2NhbGFycyB9LnZlYworLSAgICAgICAgICAgICAgICB9CistICAg ICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICB9OworLSAgICAvLyBpbXBsZW1lbnRhdGlvbiBj YWxsaW5nIGZ1biB0d2ljZSBvbiBlYWNoIG9mIHRoZSB2ZWN0b3IgaGFsdmVzOgorLSAgICAoaGFs dmVzIHwgJHRyYWl0X2lkOmlkZW50LCAkdHJhaXRfbWV0aG9kOmlkZW50LCAkdmVjX2lkOmlkZW50 LAorLSAgICAgJHZlY2hfaWQ6aWRlbnQsICRmdW46aWRlbnQpID0+IHsKKy0gICAgICAgIGltcGwg JHRyYWl0X2lkIGZvciAkdmVjX2lkIHsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAg ICAgICBmbiAkdHJhaXRfbWV0aG9kKHNlbGYpIC0+IFNlbGYgeworLSAgICAgICAgICAgICAgICB1 bnNhZmUgeworLSAgICAgICAgICAgICAgICAgICAgdXNlIGNyYXRlOjptZW06OnRyYW5zbXV0ZTsK Ky0gICAgICAgICAgICAgICAgICAgIHVuaW9uIFUgeworLSAgICAgICAgICAgICAgICAgICAgICAg IHZlYzogJHZlY19pZCwKKy0gICAgICAgICAgICAgICAgICAgICAgICBoYWx2ZXM6IFskdmVjaF9p ZDsgMl0sCistICAgICAgICAgICAgICAgICAgICB9CistCistICAgICAgICAgICAgICAgICAgICBs ZXQgbXV0IGhhbHZlcyA9IFUgeyB2ZWM6IHNlbGYgfS5oYWx2ZXM7CistCistICAgICAgICAgICAg ICAgICAgICAqaGFsdmVzLmdldF91bmNoZWNrZWRfbXV0KDApID0gdHJhbnNtdXRlKCRmdW4odHJh bnNtdXRlKCpoYWx2ZXMuZ2V0X3VuY2hlY2tlZCgwKSkpKTsKKy0gICAgICAgICAgICAgICAgICAg ICpoYWx2ZXMuZ2V0X3VuY2hlY2tlZF9tdXQoMSkgPSB0cmFuc211dGUoJGZ1bih0cmFuc211dGUo KmhhbHZlcy5nZXRfdW5jaGVja2VkKDEpKSkpOworLQorLSAgICAgICAgICAgICAgICAgICAgVSB7 IGhhbHZlcyB9LnZlYworLSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgfQorLSAgICAg ICAgfQorLSAgICB9OworLSAgICAvLyBpbXBsZW1lbnRhdGlvbiBjYWxsaW5nIGZ1biBmb3VyIHRp bWVzIG9uIGVhY2ggb2YgdGhlIHZlY3RvciBxdWFydGVyczoKKy0gICAgKHF1YXJ0ZXIgfCAkdHJh aXRfaWQ6aWRlbnQsICR0cmFpdF9tZXRob2Q6aWRlbnQsICR2ZWNfaWQ6aWRlbnQsCistICAgICAk dmVjcV9pZDppZGVudCwgJGZ1bjppZGVudCkgPT4geworLSAgICAgICAgaW1wbCAkdHJhaXRfaWQg Zm9yICR2ZWNfaWQgeworLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIGZuICR0 cmFpdF9tZXRob2Qoc2VsZikgLT4gU2VsZiB7CistICAgICAgICAgICAgICAgIHVuc2FmZSB7Cist ICAgICAgICAgICAgICAgICAgICB1c2UgY3JhdGU6Om1lbTo6dHJhbnNtdXRlOworLSAgICAgICAg ICAgICAgICAgICAgdW5pb24gVSB7CistICAgICAgICAgICAgICAgICAgICAgICAgdmVjOiAkdmVj X2lkLAorLSAgICAgICAgICAgICAgICAgICAgICAgIHF1YXJ0ZXJzOiBbJHZlY3FfaWQ7IDRdLAor LSAgICAgICAgICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBx dWFydGVycyA9IFUgeyB2ZWM6IHNlbGYgfS5xdWFydGVyczsKKy0KKy0gICAgICAgICAgICAgICAg ICAgICpxdWFydGVycy5nZXRfdW5jaGVja2VkX211dCgwKSA9IHRyYW5zbXV0ZSgkZnVuKHRyYW5z bXV0ZSgqcXVhcnRlcnMuZ2V0X3VuY2hlY2tlZCgwKSkpKTsKKy0gICAgICAgICAgICAgICAgICAg ICpxdWFydGVycy5nZXRfdW5jaGVja2VkX211dCgxKSA9IHRyYW5zbXV0ZSgkZnVuKHRyYW5zbXV0 ZSgqcXVhcnRlcnMuZ2V0X3VuY2hlY2tlZCgxKSkpKTsKKy0gICAgICAgICAgICAgICAgICAgICpx dWFydGVycy5nZXRfdW5jaGVja2VkX211dCgyKSA9IHRyYW5zbXV0ZSgkZnVuKHRyYW5zbXV0ZSgq cXVhcnRlcnMuZ2V0X3VuY2hlY2tlZCgyKSkpKTsKKy0gICAgICAgICAgICAgICAgICAgICpxdWFy dGVycy5nZXRfdW5jaGVja2VkX211dCgzKSA9IHRyYW5zbXV0ZSgkZnVuKHRyYW5zbXV0ZSgqcXVh cnRlcnMuZ2V0X3VuY2hlY2tlZCgzKSkpKTsKKy0KKy0gICAgICAgICAgICAgICAgICAgIFUgeyBx dWFydGVycyB9LnZlYworLSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgfQorLSAgICAg ICAgfQorLSAgICB9OworLSAgICAvLyBpbXBsZW1lbnRhdGlvbiBjYWxsaW5nIGZ1biBvbmNlIG9u IGEgdmVjdG9yIHR3aWNlIGFzIGxhcmdlOgorLSAgICAodHdpY2UgfCAkdHJhaXRfaWQ6aWRlbnQs ICR0cmFpdF9tZXRob2Q6aWRlbnQsICR2ZWNfaWQ6aWRlbnQsCistICAgICAkdmVjdF9pZDppZGVu dCwgJGZ1bjppZGVudCkgPT4geworLSAgICAgICAgaW1wbCAkdHJhaXRfaWQgZm9yICR2ZWNfaWQg eworLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIGZuICR0cmFpdF9tZXRob2Qo c2VsZikgLT4gU2VsZiB7CistICAgICAgICAgICAgICAgIHVuc2FmZSB7CistICAgICAgICAgICAg ICAgICAgICB1c2UgY3JhdGU6Om1lbTo6e3RyYW5zbXV0ZSwgdW5pbml0aWFsaXplZH07CistCist ICAgICAgICAgICAgICAgICAgICB1bmlvbiBVIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICB2 ZWM6IFskdmVjX2lkOyAyXSwKKy0gICAgICAgICAgICAgICAgICAgICAgICB0d2ljZTogJHZlY3Rf aWQsCistICAgICAgICAgICAgICAgICAgICB9CistCistICAgICAgICAgICAgICAgICAgICBsZXQg dHdpY2UgPSBVIHsgdmVjOiBbc2VsZiwgdW5pbml0aWFsaXplZCgpXSB9LnR3aWNlOworLSAgICAg ICAgICAgICAgICAgICAgbGV0IHR3aWNlID0gdHJhbnNtdXRlKCRmdW4odHJhbnNtdXRlKHR3aWNl KSkpOworLQorLSAgICAgICAgICAgICAgICAgICAgKihVIHsgdHdpY2UgfS52ZWMuZ2V0X3VuY2hl Y2tlZCgwKSkKKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0K Ky0gICAgfTsKKy19CistCistbWFjcm9fcnVsZXMhIGdlbl91bmFyeV9pbXBsX3RhYmxlIHsKKy0g ICAgKCR0cmFpdF9pZDppZGVudCwgJHRyYWl0X21ldGhvZDppZGVudCkgPT4geworLSAgICAgICAg bWFjcm9fcnVsZXMhIGltcGxfdW5hcnkgeworLSAgICAgICAgICAgICgkdmlkOmlkZW50OiAkZnVu OmlkZW50KSA9PiB7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnlfISh2ZWMgfCAkdHJhaXRf aWQsICR0cmFpdF9tZXRob2QsICR2aWQsICRmdW4pOworLSAgICAgICAgICAgIH07CistICAgICAg ICAgICAgKCR2aWQ6aWRlbnRbZ106ICRmdW46aWRlbnQpID0+IHsKKy0gICAgICAgICAgICAgICAg aW1wbF91bmFyeV8hKGdlbiB8ICR0cmFpdF9pZCwgJHRyYWl0X21ldGhvZCwgJHZpZCwgJGZ1bik7 CistICAgICAgICAgICAgfTsKKy0gICAgICAgICAgICAoJHZpZDppZGVudFskc2lkOmlkZW50OyAk c2M6ZXhwcl06ICRmdW46aWRlbnQpID0+IHsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeV8h KHNjYWxhciB8ICR0cmFpdF9pZCwgJHRyYWl0X21ldGhvZCwgJHZpZCwgWyRzaWQ7ICRzY10sICRm dW4pOworLSAgICAgICAgICAgIH07CistICAgICAgICAgICAgKCR2aWQ6aWRlbnRbc106ICRmdW46 aWRlbnQpID0+IHsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeV8hKHNjYWxhciB8ICR0cmFp dF9pZCwgJHRyYWl0X21ldGhvZCwgJHZpZCwgJGZ1bik7CistICAgICAgICAgICAgfTsKKy0gICAg ICAgICAgICAoJHZpZDppZGVudFtoID0+ICR2aWRfaDppZGVudF06ICRmdW46aWRlbnQpID0+IHsK Ky0gICAgICAgICAgICAgICAgaW1wbF91bmFyeV8hKGhhbHZlcyB8ICR0cmFpdF9pZCwgJHRyYWl0 X21ldGhvZCwgJHZpZCwgJHZpZF9oLCAkZnVuKTsKKy0gICAgICAgICAgICB9OworLSAgICAgICAg ICAgICgkdmlkOmlkZW50W3EgPT4gJHZpZF9xOmlkZW50XTogJGZ1bjppZGVudCkgPT4geworLSAg ICAgICAgICAgICAgICBpbXBsX3VuYXJ5XyEocXVhcnRlciB8ICR0cmFpdF9pZCwgJHRyYWl0X21l dGhvZCwgJHZpZCwgJHZpZF9xLCAkZnVuKTsKKy0gICAgICAgICAgICB9OworLSAgICAgICAgICAg ICgkdmlkOmlkZW50W3QgPT4gJHZpZF90OmlkZW50XTogJGZ1bjppZGVudCkgPT4geworLSAgICAg ICAgICAgICAgICBpbXBsX3VuYXJ5XyEodHdpY2UgfCAkdHJhaXRfaWQsICR0cmFpdF9tZXRob2Qs ICR2aWQsICR2aWRfdCwgJGZ1bik7CistICAgICAgICAgICAgfTsKKy0gICAgICAgIH0KKy0gICAg fTsKKy19CistCistbWFjcm9fcnVsZXMhIGltcGxfdGVydGlhcnlfIHsKKy0gICAgLy8gaW1wbGVt ZW50YXRpb24gbWFwcGluZyAxOjEKKy0gICAgKHZlYyB8ICR0cmFpdF9pZDppZGVudCwgJHRyYWl0 X21ldGhvZDppZGVudCwgJHZlY19pZDppZGVudCwKKy0gICAgICRmdW46aWRlbnQpID0+IHsKKy0g ICAgICAgIGltcGwgJHRyYWl0X2lkIGZvciAkdmVjX2lkIHsKKy0gICAgICAgICAgICAjW2lubGlu ZV0KKy0gICAgICAgICAgICBmbiAkdHJhaXRfbWV0aG9kKHNlbGYsIHk6IFNlbGYsIHo6IFNlbGYp IC0+IFNlbGYgeworLSAgICAgICAgICAgICAgICB1bnNhZmUgeworLSAgICAgICAgICAgICAgICAg ICAgdXNlIGNyYXRlOjptZW06OnRyYW5zbXV0ZTsKKy0gICAgICAgICAgICAgICAgICAgIHRyYW5z bXV0ZSgkZnVuKHRyYW5zbXV0ZShzZWxmKSwgdHJhbnNtdXRlKHkpLCB0cmFuc211dGUoeikpKQor LSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICB9Owor LSAgICAoc2NhbGFyIHwgJHRyYWl0X2lkOmlkZW50LCAkdHJhaXRfbWV0aG9kOmlkZW50LAorLSAg ICAgJHZlY19pZDppZGVudCwgWyRzaWQ6aWRlbnQ7ICRzY291bnQ6ZXhwcl0sICRmdW46aWRlbnQp ID0+IHsKKy0gICAgICAgIGltcGwgJHRyYWl0X2lkIGZvciAkdmVjX2lkIHsKKy0gICAgICAgICAg ICAjW2lubGluZV0KKy0gICAgICAgICAgICBmbiAkdHJhaXRfbWV0aG9kKHNlbGYsIHk6IFNlbGYs IHo6IFNlbGYpIC0+IFNlbGYgeworLSAgICAgICAgICAgICAgICB1bnNhZmUgeworLSAgICAgICAg ICAgICAgICAgICAgdW5pb24gVSB7CistICAgICAgICAgICAgICAgICAgICAgICAgdmVjOiAkdmVj X2lkLAorLSAgICAgICAgICAgICAgICAgICAgICAgIHNjYWxhcnM6IFskc2lkOyAkc2NvdW50XSwK Ky0gICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgIGxldCBtdXQgeCA9 IFUgeyB2ZWM6IHNlbGYgfS5zY2FsYXJzOworLSAgICAgICAgICAgICAgICAgICAgbGV0IHkgPSBV IHsgdmVjOiB5IH0uc2NhbGFyczsKKy0gICAgICAgICAgICAgICAgICAgIGxldCB6ID0gVSB7IHZl YzogeiB9LnNjYWxhcnM7CistICAgICAgICAgICAgICAgICAgICBmb3IgKHgsICh5LCB6KSkgaW4g KCZtdXQgc2NhbGFycykuemlwKCZ5KS56aXAoJnopIHsKKy0gICAgICAgICAgICAgICAgICAgICAg ICAqaSA9ICRmdW4oKmksICp5LCAqeik7CistICAgICAgICAgICAgICAgICAgICB9CistICAgICAg ICAgICAgICAgICAgICBVIHsgdmVjOiB4IH0udmVjCistICAgICAgICAgICAgICAgIH0KKy0gICAg ICAgICAgICB9CistICAgICAgICB9CistICAgIH07CistICAgIC8vIGltcGxlbWVudGF0aW9uIGNh bGxpbmcgZnVuIHR3aWNlIG9uIGVhY2ggb2YgdGhlIHZlY3RvciBoYWx2ZXM6CistICAgIChoYWx2 ZXMgfCAkdHJhaXRfaWQ6aWRlbnQsICR0cmFpdF9tZXRob2Q6aWRlbnQsICR2ZWNfaWQ6aWRlbnQs CistICAgICAkdmVjaF9pZDppZGVudCwgJGZ1bjppZGVudCkgPT4geworLSAgICAgICAgaW1wbCAk dHJhaXRfaWQgZm9yICR2ZWNfaWQgeworLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAg ICAgIGZuICR0cmFpdF9tZXRob2Qoc2VsZiwgeTogU2VsZiwgejogU2VsZikgLT4gU2VsZiB7Cist ICAgICAgICAgICAgICAgIHVuc2FmZSB7CistICAgICAgICAgICAgICAgICAgICB1c2UgY3JhdGU6 Om1lbTo6dHJhbnNtdXRlOworLSAgICAgICAgICAgICAgICAgICAgdW5pb24gVSB7CistICAgICAg ICAgICAgICAgICAgICAgICAgdmVjOiAkdmVjX2lkLAorLSAgICAgICAgICAgICAgICAgICAgICAg IGhhbHZlczogWyR2ZWNoX2lkOyAyXSwKKy0gICAgICAgICAgICAgICAgICAgIH0KKy0KKy0gICAg ICAgICAgICAgICAgICAgIGxldCBtdXQgeF9oYWx2ZXMgPSBVIHsgdmVjOiBzZWxmIH0uaGFsdmVz OworLSAgICAgICAgICAgICAgICAgICAgbGV0IHlfaGFsdmVzID0gVSB7IHZlYzogeSB9LmhhbHZl czsKKy0gICAgICAgICAgICAgICAgICAgIGxldCB6X2hhbHZlcyA9IFUgeyB2ZWM6IHogfS5oYWx2 ZXM7CistCistICAgICAgICAgICAgICAgICAgICAqeF9oYWx2ZXMuZ2V0X3VuY2hlY2tlZF9tdXQo MCkgPSB0cmFuc211dGUoJGZ1bigKKy0gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc211dGUo KnhfaGFsdmVzLmdldF91bmNoZWNrZWQoMCkpLAorLSAgICAgICAgICAgICAgICAgICAgICAgIHRy YW5zbXV0ZSgqeV9oYWx2ZXMuZ2V0X3VuY2hlY2tlZCgwKSksCistICAgICAgICAgICAgICAgICAg ICAgICAgdHJhbnNtdXRlKCp6X2hhbHZlcy5nZXRfdW5jaGVja2VkKDApKSwKKy0gICAgICAgICAg ICAgICAgICAgICkpOworLSAgICAgICAgICAgICAgICAgICAgKnhfaGFsdmVzLmdldF91bmNoZWNr ZWRfbXV0KDEpID0gdHJhbnNtdXRlKCRmdW4oCistICAgICAgICAgICAgICAgICAgICAgICAgdHJh bnNtdXRlKCp4X2hhbHZlcy5nZXRfdW5jaGVja2VkKDEpKSwKKy0gICAgICAgICAgICAgICAgICAg ICAgICB0cmFuc211dGUoKnlfaGFsdmVzLmdldF91bmNoZWNrZWQoMSkpLAorLSAgICAgICAgICAg ICAgICAgICAgICAgIHRyYW5zbXV0ZSgqel9oYWx2ZXMuZ2V0X3VuY2hlY2tlZCgxKSksCistICAg ICAgICAgICAgICAgICAgICApKTsKKy0KKy0gICAgICAgICAgICAgICAgICAgIFUgeyBoYWx2ZXM6 IHhfaGFsdmVzIH0udmVjCistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICB9CistICAg ICAgICB9CistICAgIH07CistICAgIC8vIGltcGxlbWVudGF0aW9uIGNhbGxpbmcgZnVuIGZvdXIg dGltZXMgb24gZWFjaCBvZiB0aGUgdmVjdG9yIHF1YXJ0ZXJzOgorLSAgICAocXVhcnRlciB8ICR0 cmFpdF9pZDppZGVudCwgJHRyYWl0X21ldGhvZDppZGVudCwgJHZlY19pZDppZGVudCwKKy0gICAg ICR2ZWNxX2lkOmlkZW50LCAkZnVuOmlkZW50KSA9PiB7CistICAgICAgICBpbXBsICR0cmFpdF9p ZCBmb3IgJHZlY19pZCB7CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgZm4g JHRyYWl0X21ldGhvZChzZWxmLCB5OiBTZWxmLCB6OiBTZWxmKSAtPiBTZWxmIHsKKy0gICAgICAg ICAgICAgICAgdW5zYWZlIHsKKy0gICAgICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6bWVtOjp0 cmFuc211dGU7CistICAgICAgICAgICAgICAgICAgICB1bmlvbiBVIHsKKy0gICAgICAgICAgICAg ICAgICAgICAgICB2ZWM6ICR2ZWNfaWQsCistICAgICAgICAgICAgICAgICAgICAgICAgcXVhcnRl cnM6IFskdmVjcV9pZDsgNF0sCistICAgICAgICAgICAgICAgICAgICB9CistCistICAgICAgICAg ICAgICAgICAgICBsZXQgbXV0IHhfcXVhcnRlcnMgPSBVIHsgdmVjOiBzZWxmIH0ucXVhcnRlcnM7 CistICAgICAgICAgICAgICAgICAgICBsZXQgeV9xdWFydGVycyA9IFUgeyB2ZWM6IHkgfS5xdWFy dGVyczsKKy0gICAgICAgICAgICAgICAgICAgIGxldCB6X3F1YXJ0ZXJzID0gVSB7IHZlYzogeiB9 LnF1YXJ0ZXJzOworLQorLSAgICAgICAgICAgICAgICAgICAgKnhfcXVhcnRlcnMuZ2V0X3VuY2hl Y2tlZF9tdXQoMCkgPSB0cmFuc211dGUoJGZ1bigKKy0gICAgICAgICAgICAgICAgICAgICAgICB0 cmFuc211dGUoKnhfcXVhcnRlcnMuZ2V0X3VuY2hlY2tlZCgwKSksCistICAgICAgICAgICAgICAg ICAgICAgICAgdHJhbnNtdXRlKCp5X3F1YXJ0ZXJzLmdldF91bmNoZWNrZWQoMCkpLAorLSAgICAg ICAgICAgICAgICAgICAgICAgIHRyYW5zbXV0ZSgqel9xdWFydGVycy5nZXRfdW5jaGVja2VkKDAp KSwKKy0gICAgICAgICAgICAgICAgICAgICkpOworLQorLSAgICAgICAgICAgICAgICAgICAgKnhf cXVhcnRlcnMuZ2V0X3VuY2hlY2tlZF9tdXQoMSkgPSB0cmFuc211dGUoJGZ1bigKKy0gICAgICAg ICAgICAgICAgICAgICAgICB0cmFuc211dGUoKnhfcXVhcnRlcnMuZ2V0X3VuY2hlY2tlZCgxKSks CistICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNtdXRlKCp5X3F1YXJ0ZXJzLmdldF91bmNo ZWNrZWQoMSkpLAorLSAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zbXV0ZSgqel9xdWFydGVy cy5nZXRfdW5jaGVja2VkKDEpKSwKKy0gICAgICAgICAgICAgICAgICAgICkpOworLQorLSAgICAg ICAgICAgICAgICAgICAgKnhfcXVhcnRlcnMuZ2V0X3VuY2hlY2tlZF9tdXQoMikgPSB0cmFuc211 dGUoJGZ1bigKKy0gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc211dGUoKnhfcXVhcnRlcnMu Z2V0X3VuY2hlY2tlZCgyKSksCistICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNtdXRlKCp5 X3F1YXJ0ZXJzLmdldF91bmNoZWNrZWQoMikpLAorLSAgICAgICAgICAgICAgICAgICAgICAgIHRy YW5zbXV0ZSgqel9xdWFydGVycy5nZXRfdW5jaGVja2VkKDIpKSwKKy0gICAgICAgICAgICAgICAg ICAgICkpOworLQorLSAgICAgICAgICAgICAgICAgICAgKnhfcXVhcnRlcnMuZ2V0X3VuY2hlY2tl ZF9tdXQoMykgPSB0cmFuc211dGUoJGZ1bigKKy0gICAgICAgICAgICAgICAgICAgICAgICB0cmFu c211dGUoKnhfcXVhcnRlcnMuZ2V0X3VuY2hlY2tlZCgzKSksCistICAgICAgICAgICAgICAgICAg ICAgICAgdHJhbnNtdXRlKCp5X3F1YXJ0ZXJzLmdldF91bmNoZWNrZWQoMykpLAorLSAgICAgICAg ICAgICAgICAgICAgICAgIHRyYW5zbXV0ZSgqel9xdWFydGVycy5nZXRfdW5jaGVja2VkKDMpKSwK Ky0gICAgICAgICAgICAgICAgICAgICkpOworLQorLSAgICAgICAgICAgICAgICAgICAgVSB7IHF1 YXJ0ZXJzOiB4X3F1YXJ0ZXJzIH0udmVjCistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAg ICB9CistICAgICAgICB9CistICAgIH07CistICAgIC8vIGltcGxlbWVudGF0aW9uIGNhbGxpbmcg ZnVuIG9uY2Ugb24gYSB2ZWN0b3IgdHdpY2UgYXMgbGFyZ2U6CistICAgICh0d2ljZSB8ICR0cmFp dF9pZDppZGVudCwgJHRyYWl0X21ldGhvZDppZGVudCwgJHZlY19pZDppZGVudCwKKy0gICAgICR2 ZWN0X2lkOmlkZW50LCAkZnVuOmlkZW50KSA9PiB7CistICAgICAgICBpbXBsICR0cmFpdF9pZCBm b3IgJHZlY19pZCB7CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgZm4gJHRy YWl0X21ldGhvZChzZWxmLCB5OiBTZWxmLCB6OiBTZWxmKSAtPiBTZWxmIHsKKy0gICAgICAgICAg ICAgICAgdW5zYWZlIHsKKy0gICAgICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6bWVtOjp7dHJh bnNtdXRlLCB1bmluaXRpYWxpemVkfTsKKy0KKy0gICAgICAgICAgICAgICAgICAgIHVuaW9uIFUg eworLSAgICAgICAgICAgICAgICAgICAgICAgIHZlYzogWyR2ZWNfaWQ7IDJdLAorLSAgICAgICAg ICAgICAgICAgICAgICAgIHR3aWNlOiAkdmVjdF9pZCwKKy0gICAgICAgICAgICAgICAgICAgIH0K Ky0KKy0gICAgICAgICAgICAgICAgICAgIGxldCB4X3R3aWNlID0gVSB7IHZlYzogW3NlbGYsIHVu aW5pdGlhbGl6ZWQoKV0gfS50d2ljZTsKKy0gICAgICAgICAgICAgICAgICAgIGxldCB5X3R3aWNl ID0gVSB7IHZlYzogW3ksIHVuaW5pdGlhbGl6ZWQoKV0gfS50d2ljZTsKKy0gICAgICAgICAgICAg ICAgICAgIGxldCB6X3R3aWNlID0gVSB7IHZlYzogW3osIHVuaW5pdGlhbGl6ZWQoKV0gfS50d2lj ZTsKKy0gICAgICAgICAgICAgICAgICAgIGxldCB0d2ljZTogJHZlY3RfaWQgPQorLSAgICAgICAg ICAgICAgICAgICAgICAgIHRyYW5zbXV0ZSgkZnVuKHRyYW5zbXV0ZSh4X3R3aWNlKSwgdHJhbnNt dXRlKHlfdHdpY2UpLCB0cmFuc211dGUoel90d2ljZSkpKTsKKy0KKy0gICAgICAgICAgICAgICAg ICAgICooVSB7IHR3aWNlIH0udmVjLmdldF91bmNoZWNrZWQoMCkpCistICAgICAgICAgICAgICAg IH0KKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgIH07CistfQorLQorLW1hY3JvX3J1 bGVzISBnZW5fdGVydGlhcnlfaW1wbF90YWJsZSB7CistICAgICgkdHJhaXRfaWQ6aWRlbnQsICR0 cmFpdF9tZXRob2Q6aWRlbnQpID0+IHsKKy0gICAgICAgIG1hY3JvX3J1bGVzISBpbXBsX3RlcnRp YXJ5IHsKKy0gICAgICAgICAgICAoJHZpZDppZGVudDogJGZ1bjppZGVudCkgPT4geworLSAgICAg ICAgICAgICAgICBpbXBsX3RlcnRpYXJ5XyEodmVjIHwgJHRyYWl0X2lkLCAkdHJhaXRfbWV0aG9k LCAkdmlkLCAkZnVuKTsKKy0gICAgICAgICAgICB9OworLSAgICAgICAgICAgICgkdmlkOmlkZW50 WyRzaWQ6aWRlbnQ7ICRzYzpleHByXTogJGZ1bjppZGVudCkgPT4geworLSAgICAgICAgICAgICAg ICBpbXBsX3RlcnRpYXJ5XyEoc2NhbGFyIHwgJHRyYWl0X2lkLCAkdHJhaXRfbWV0aG9kLCAkdmlk LCBbJHNpZDsgJHNjXSwgJGZ1bik7CistICAgICAgICAgICAgfTsKKy0gICAgICAgICAgICAoJHZp ZDppZGVudFtzXTogJGZ1bjppZGVudCkgPT4geworLSAgICAgICAgICAgICAgICBpbXBsX3RlcnRp YXJ5XyEoc2NhbGFyIHwgJHRyYWl0X2lkLCAkdHJhaXRfbWV0aG9kLCAkdmlkLCAkZnVuKTsKKy0g ICAgICAgICAgICB9OworLSAgICAgICAgICAgICgkdmlkOmlkZW50W2ggPT4gJHZpZF9oOmlkZW50 XTogJGZ1bjppZGVudCkgPT4geworLSAgICAgICAgICAgICAgICBpbXBsX3RlcnRpYXJ5XyEoaGFs dmVzIHwgJHRyYWl0X2lkLCAkdHJhaXRfbWV0aG9kLCAkdmlkLCAkdmlkX2gsICRmdW4pOworLSAg ICAgICAgICAgIH07CistICAgICAgICAgICAgKCR2aWQ6aWRlbnRbcSA9PiAkdmlkX3E6aWRlbnRd OiAkZnVuOmlkZW50KSA9PiB7CistICAgICAgICAgICAgICAgIGltcGxfdGVydGlhcnlfIShxdWFy dGVyIHwgJHRyYWl0X2lkLCAkdHJhaXRfbWV0aG9kLCAkdmlkLCAkdmlkX3EsICRmdW4pOworLSAg ICAgICAgICAgIH07CistICAgICAgICAgICAgKCR2aWQ6aWRlbnRbdCA9PiAkdmlkX3Q6aWRlbnRd OiAkZnVuOmlkZW50KSA9PiB7CistICAgICAgICAgICAgICAgIGltcGxfdGVydGlhcnlfISh0d2lj ZSB8ICR0cmFpdF9pZCwgJHRyYWl0X21ldGhvZCwgJHZpZCwgJHZpZF90LCAkZnVuKTsKKy0gICAg ICAgICAgICB9OworLSAgICAgICAgfQorLSAgICB9OworLX0KKy0KKy1tYWNyb19ydWxlcyEgaW1w bF9iaW5hcnlfIHsKKy0gICAgLy8gaW1wbGVtZW50YXRpb24gbWFwcGluZyAxOjEKKy0gICAgKHZl YyB8ICR0cmFpdF9pZDppZGVudCwgJHRyYWl0X21ldGhvZDppZGVudCwgJHZlY19pZDppZGVudCwK Ky0gICAgICRmdW46aWRlbnQpID0+IHsKKy0gICAgICAgIGltcGwgJHRyYWl0X2lkIGZvciAkdmVj X2lkIHsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBmbiAkdHJhaXRfbWV0 aG9kKHNlbGYsIHk6IFNlbGYpIC0+IFNlbGYgeworLSAgICAgICAgICAgICAgICB1bnNhZmUgewor LSAgICAgICAgICAgICAgICAgICAgdXNlIGNyYXRlOjptZW06OnRyYW5zbXV0ZTsKKy0gICAgICAg ICAgICAgICAgICAgIHRyYW5zbXV0ZSgkZnVuKHRyYW5zbXV0ZShzZWxmKSwgdHJhbnNtdXRlKHkp KSkKKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAg fTsKKy0gICAgKHNjYWxhciB8ICR0cmFpdF9pZDppZGVudCwgJHRyYWl0X21ldGhvZDppZGVudCwK Ky0gICAgICR2ZWNfaWQ6aWRlbnQsIFskc2lkOmlkZW50OyAkc2NvdW50OmV4cHJdLCAkZnVuOmlk ZW50KSA9PiB7CistICAgICAgICBpbXBsICR0cmFpdF9pZCBmb3IgJHZlY19pZCB7CistICAgICAg ICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgZm4gJHRyYWl0X21ldGhvZChzZWxmLCB5OiBT ZWxmKSAtPiBTZWxmIHsKKy0gICAgICAgICAgICAgICAgdW5zYWZlIHsKKy0gICAgICAgICAgICAg ICAgICAgIHVuaW9uIFUgeworLSAgICAgICAgICAgICAgICAgICAgICAgIHZlYzogJHZlY19pZCwK Ky0gICAgICAgICAgICAgICAgICAgICAgICBzY2FsYXJzOiBbJHNpZDsgJHNjb3VudF0sCistICAg ICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IHggPSBVIHsg dmVjOiBzZWxmIH0uc2NhbGFyczsKKy0gICAgICAgICAgICAgICAgICAgIGxldCB5ID0gVSB7IHZl YzogeSB9LnNjYWxhcnM7CistICAgICAgICAgICAgICAgICAgICBmb3IgKHgsIHkpIGluIHguaXRl cl9tdXQoKS56aXAoJnkpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAqeCA9ICRmdW4oKngs ICp5KTsKKy0gICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgIFUgeyBz Y2FsYXJzOiB4IH0udmVjCistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICB9CistICAg ICAgICB9CistICAgIH07CistICAgIC8vIGltcGxlbWVudGF0aW9uIGNhbGxpbmcgZnVuIHR3aWNl IG9uIGVhY2ggb2YgdGhlIHZlY3RvciBoYWx2ZXM6CistICAgIChoYWx2ZXMgfCAkdHJhaXRfaWQ6 aWRlbnQsICR0cmFpdF9tZXRob2Q6aWRlbnQsICR2ZWNfaWQ6aWRlbnQsCistICAgICAkdmVjaF9p ZDppZGVudCwgJGZ1bjppZGVudCkgPT4geworLSAgICAgICAgaW1wbCAkdHJhaXRfaWQgZm9yICR2 ZWNfaWQgeworLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIGZuICR0cmFpdF9t ZXRob2Qoc2VsZiwgeTogU2VsZikgLT4gU2VsZiB7CistICAgICAgICAgICAgICAgIHVuc2FmZSB7 CistICAgICAgICAgICAgICAgICAgICB1c2UgY3JhdGU6Om1lbTo6dHJhbnNtdXRlOworLSAgICAg ICAgICAgICAgICAgICAgdW5pb24gVSB7CistICAgICAgICAgICAgICAgICAgICAgICAgdmVjOiAk dmVjX2lkLAorLSAgICAgICAgICAgICAgICAgICAgICAgIGhhbHZlczogWyR2ZWNoX2lkOyAyXSwK Ky0gICAgICAgICAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICAgICAgICAgIGxldCBtdXQg eF9oYWx2ZXMgPSBVIHsgdmVjOiBzZWxmIH0uaGFsdmVzOworLSAgICAgICAgICAgICAgICAgICAg bGV0IHlfaGFsdmVzID0gVSB7IHZlYzogeSB9LmhhbHZlczsKKy0KKy0gICAgICAgICAgICAgICAg ICAgICp4X2hhbHZlcy5nZXRfdW5jaGVja2VkX211dCgwKSA9IHRyYW5zbXV0ZSgkZnVuKAorLSAg ICAgICAgICAgICAgICAgICAgICAgIHRyYW5zbXV0ZSgqeF9oYWx2ZXMuZ2V0X3VuY2hlY2tlZCgw KSksCistICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNtdXRlKCp5X2hhbHZlcy5nZXRfdW5j aGVja2VkKDApKSwKKy0gICAgICAgICAgICAgICAgICAgICkpOworLSAgICAgICAgICAgICAgICAg ICAgKnhfaGFsdmVzLmdldF91bmNoZWNrZWRfbXV0KDEpID0gdHJhbnNtdXRlKCRmdW4oCistICAg ICAgICAgICAgICAgICAgICAgICAgdHJhbnNtdXRlKCp4X2hhbHZlcy5nZXRfdW5jaGVja2VkKDEp KSwKKy0gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc211dGUoKnlfaGFsdmVzLmdldF91bmNo ZWNrZWQoMSkpLAorLSAgICAgICAgICAgICAgICAgICAgKSk7CistCistICAgICAgICAgICAgICAg ICAgICBVIHsgaGFsdmVzOiB4X2hhbHZlcyB9LnZlYworLSAgICAgICAgICAgICAgICB9CistICAg ICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICB9OworLSAgICAvLyBpbXBsZW1lbnRhdGlvbiBj YWxsaW5nIGZ1biBmb3VyIHRpbWVzIG9uIGVhY2ggb2YgdGhlIHZlY3RvciBxdWFydGVyczoKKy0g ICAgKHF1YXJ0ZXIgfCAkdHJhaXRfaWQ6aWRlbnQsICR0cmFpdF9tZXRob2Q6aWRlbnQsICR2ZWNf aWQ6aWRlbnQsCistICAgICAkdmVjcV9pZDppZGVudCwgJGZ1bjppZGVudCkgPT4geworLSAgICAg ICAgaW1wbCAkdHJhaXRfaWQgZm9yICR2ZWNfaWQgeworLSAgICAgICAgICAgICNbaW5saW5lXQor LSAgICAgICAgICAgIGZuICR0cmFpdF9tZXRob2Qoc2VsZiwgeTogU2VsZikgLT4gU2VsZiB7Cist ICAgICAgICAgICAgICAgIHVuc2FmZSB7CistICAgICAgICAgICAgICAgICAgICB1c2UgY3JhdGU6 Om1lbTo6dHJhbnNtdXRlOworLSAgICAgICAgICAgICAgICAgICAgdW5pb24gVSB7CistICAgICAg ICAgICAgICAgICAgICAgICAgdmVjOiAkdmVjX2lkLAorLSAgICAgICAgICAgICAgICAgICAgICAg IHF1YXJ0ZXJzOiBbJHZlY3FfaWQ7IDRdLAorLSAgICAgICAgICAgICAgICAgICAgfQorLQorLSAg ICAgICAgICAgICAgICAgICAgbGV0IG11dCB4X3F1YXJ0ZXJzID0gVSB7IHZlYzogc2VsZiB9LnF1 YXJ0ZXJzOworLSAgICAgICAgICAgICAgICAgICAgbGV0IHlfcXVhcnRlcnMgPSBVIHsgdmVjOiB5 IH0ucXVhcnRlcnM7CistCistICAgICAgICAgICAgICAgICAgICAqeF9xdWFydGVycy5nZXRfdW5j aGVja2VkX211dCgwKSA9IHRyYW5zbXV0ZSgkZnVuKAorLSAgICAgICAgICAgICAgICAgICAgICAg IHRyYW5zbXV0ZSgqeF9xdWFydGVycy5nZXRfdW5jaGVja2VkKDApKSwKKy0gICAgICAgICAgICAg ICAgICAgICAgICB0cmFuc211dGUoKnlfcXVhcnRlcnMuZ2V0X3VuY2hlY2tlZCgwKSksCistICAg ICAgICAgICAgICAgICAgICApKTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICp4X3F1YXJ0ZXJz LmdldF91bmNoZWNrZWRfbXV0KDEpID0gdHJhbnNtdXRlKCRmdW4oCistICAgICAgICAgICAgICAg ICAgICAgICAgdHJhbnNtdXRlKCp4X3F1YXJ0ZXJzLmdldF91bmNoZWNrZWQoMSkpLAorLSAgICAg ICAgICAgICAgICAgICAgICAgIHRyYW5zbXV0ZSgqeV9xdWFydGVycy5nZXRfdW5jaGVja2VkKDEp KSwKKy0gICAgICAgICAgICAgICAgICAgICkpOworLQorLSAgICAgICAgICAgICAgICAgICAgKnhf cXVhcnRlcnMuZ2V0X3VuY2hlY2tlZF9tdXQoMikgPSB0cmFuc211dGUoJGZ1bigKKy0gICAgICAg ICAgICAgICAgICAgICAgICB0cmFuc211dGUoKnhfcXVhcnRlcnMuZ2V0X3VuY2hlY2tlZCgyKSks CistICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNtdXRlKCp5X3F1YXJ0ZXJzLmdldF91bmNo ZWNrZWQoMikpLAorLSAgICAgICAgICAgICAgICAgICAgKSk7CistCistICAgICAgICAgICAgICAg ICAgICAqeF9xdWFydGVycy5nZXRfdW5jaGVja2VkX211dCgzKSA9IHRyYW5zbXV0ZSgkZnVuKAor LSAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zbXV0ZSgqeF9xdWFydGVycy5nZXRfdW5jaGVj a2VkKDMpKSwKKy0gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc211dGUoKnlfcXVhcnRlcnMu Z2V0X3VuY2hlY2tlZCgzKSksCistICAgICAgICAgICAgICAgICAgICApKTsKKy0KKy0gICAgICAg ICAgICAgICAgICAgIFUgeyBxdWFydGVyczogeF9xdWFydGVycyB9LnZlYworLSAgICAgICAgICAg ICAgICB9CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICB9OworLSAgICAvLyBpbXBs ZW1lbnRhdGlvbiBjYWxsaW5nIGZ1biBvbmNlIG9uIGEgdmVjdG9yIHR3aWNlIGFzIGxhcmdlOgor LSAgICAodHdpY2UgfCAkdHJhaXRfaWQ6aWRlbnQsICR0cmFpdF9tZXRob2Q6aWRlbnQsICR2ZWNf aWQ6aWRlbnQsCistICAgICAkdmVjdF9pZDppZGVudCwgJGZ1bjppZGVudCkgPT4geworLSAgICAg ICAgaW1wbCAkdHJhaXRfaWQgZm9yICR2ZWNfaWQgeworLSAgICAgICAgICAgICNbaW5saW5lXQor LSAgICAgICAgICAgIGZuICR0cmFpdF9tZXRob2Qoc2VsZiwgeTogU2VsZikgLT4gU2VsZiB7Cist ICAgICAgICAgICAgICAgIHVuc2FmZSB7CistICAgICAgICAgICAgICAgICAgICB1c2UgY3JhdGU6 Om1lbTo6e3RyYW5zbXV0ZSwgdW5pbml0aWFsaXplZH07CistCistICAgICAgICAgICAgICAgICAg ICB1bmlvbiBVIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICB2ZWM6IFskdmVjX2lkOyAyXSwK Ky0gICAgICAgICAgICAgICAgICAgICAgICB0d2ljZTogJHZlY3RfaWQsCistICAgICAgICAgICAg ICAgICAgICB9CistCistICAgICAgICAgICAgICAgICAgICBsZXQgeF90d2ljZSA9IFUgeyB2ZWM6 IFtzZWxmLCB1bmluaXRpYWxpemVkKCldIH0udHdpY2U7CistICAgICAgICAgICAgICAgICAgICBs ZXQgeV90d2ljZSA9IFUgeyB2ZWM6IFt5LCB1bmluaXRpYWxpemVkKCldIH0udHdpY2U7CistICAg ICAgICAgICAgICAgICAgICBsZXQgdHdpY2U6ICR2ZWN0X2lkID0gdHJhbnNtdXRlKCRmdW4odHJh bnNtdXRlKHhfdHdpY2UpLCB0cmFuc211dGUoeV90d2ljZSkpKTsKKy0KKy0gICAgICAgICAgICAg ICAgICAgICooVSB7IHR3aWNlIH0udmVjLmdldF91bmNoZWNrZWQoMCkpCistICAgICAgICAgICAg ICAgIH0KKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgIH07CistfQorLQorLW1hY3Jv X3J1bGVzISBnZW5fYmluYXJ5X2ltcGxfdGFibGUgeworLSAgICAoJHRyYWl0X2lkOmlkZW50LCAk dHJhaXRfbWV0aG9kOmlkZW50KSA9PiB7CistICAgICAgICBtYWNyb19ydWxlcyEgaW1wbF9iaW5h cnkgeworLSAgICAgICAgICAgICgkdmlkOmlkZW50OiAkZnVuOmlkZW50KSA9PiB7CistICAgICAg ICAgICAgICAgIGltcGxfYmluYXJ5XyEodmVjIHwgJHRyYWl0X2lkLCAkdHJhaXRfbWV0aG9kLCAk dmlkLCAkZnVuKTsKKy0gICAgICAgICAgICB9OworLSAgICAgICAgICAgICgkdmlkOmlkZW50WyRz aWQ6aWRlbnQ7ICRzYzpleHByXTogJGZ1bjppZGVudCkgPT4geworLSAgICAgICAgICAgICAgICBp bXBsX2JpbmFyeV8hKHNjYWxhciB8ICR0cmFpdF9pZCwgJHRyYWl0X21ldGhvZCwgJHZpZCwgWyRz aWQ7ICRzY10sICRmdW4pOworLSAgICAgICAgICAgIH07CistICAgICAgICAgICAgKCR2aWQ6aWRl bnRbc106ICRmdW46aWRlbnQpID0+IHsKKy0gICAgICAgICAgICAgICAgaW1wbF9iaW5hcnlfIShz Y2FsYXIgfCAkdHJhaXRfaWQsICR0cmFpdF9tZXRob2QsICR2aWQsICRmdW4pOworLSAgICAgICAg ICAgIH07CistICAgICAgICAgICAgKCR2aWQ6aWRlbnRbaCA9PiAkdmlkX2g6aWRlbnRdOiAkZnVu OmlkZW50KSA9PiB7CistICAgICAgICAgICAgICAgIGltcGxfYmluYXJ5XyEoaGFsdmVzIHwgJHRy YWl0X2lkLCAkdHJhaXRfbWV0aG9kLCAkdmlkLCAkdmlkX2gsICRmdW4pOworLSAgICAgICAgICAg IH07CistICAgICAgICAgICAgKCR2aWQ6aWRlbnRbcSA9PiAkdmlkX3E6aWRlbnRdOiAkZnVuOmlk ZW50KSA9PiB7CistICAgICAgICAgICAgICAgIGltcGxfYmluYXJ5XyEocXVhcnRlciB8ICR0cmFp dF9pZCwgJHRyYWl0X21ldGhvZCwgJHZpZCwgJHZpZF9xLCAkZnVuKTsKKy0gICAgICAgICAgICB9 OworLSAgICAgICAgICAgICgkdmlkOmlkZW50W3QgPT4gJHZpZF90OmlkZW50XTogJGZ1bjppZGVu dCkgPT4geworLSAgICAgICAgICAgICAgICBpbXBsX2JpbmFyeV8hKHR3aWNlIHwgJHRyYWl0X2lk LCAkdHJhaXRfbWV0aG9kLCAkdmlkLCAkdmlkX3QsICRmdW4pOworLSAgICAgICAgICAgIH07Cist ICAgICAgICB9CistICAgIH07CistfQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFj a2VkX3NpbWQvc3JjL2NvZGVnZW4vbWF0aC9mbG9hdC9tdWxfYWRkLnJzIGIvdGhpcmRfcGFydHkv cnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9tYXRoL2Zsb2F0L211bF9hZGQucnMKK2RlbGV0 ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9z cmMvY29kZWdlbi9tYXRoL2Zsb2F0L211bF9hZGQucnMKKysrKyAvZGV2L251bGwKK0BAIC0xLDEw OSArMCwwIEBACistLy8hIFZlcnRpY2FsIGZsb2F0aW5nLXBvaW50IGBtdWxfYWRkYAorLSMhW2Fs bG93KHVudXNlZCldCistdXNlIGNyYXRlOjoqOworLQorLS8vIEZJWE1FOiA2NC1iaXQgMSBlbGVt ZW50IG11bF9hZGQKKy0KKy1wdWIoY3JhdGUpIHRyYWl0IE11bEFkZCB7CistICAgIGZuIG11bF9h ZGQoc2VsZiwgeTogU2VsZiwgejogU2VsZikgLT4gU2VsZjsKKy19CistCistI1tjZmcobm90KHRh cmdldF9hcmNoID0gInMzOTB4IikpXQorLSNbYWxsb3coaW1wcm9wZXJfY3R5cGVzKV0KKy1leHRl cm4gIkMiIHsKKy0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5mbWEudjJmMzIiXQorLSAgICBmbiBm bWFfdjJmMzIoeDogZjMyeDIsIHk6IGYzMngyLCB6OiBmMzJ4MikgLT4gZjMyeDI7CistICAgICNb bGlua19uYW1lID0gImxsdm0uZm1hLnY0ZjMyIl0KKy0gICAgZm4gZm1hX3Y0ZjMyKHg6IGYzMng0 LCB5OiBmMzJ4NCwgejogZjMyeDQpIC0+IGYzMng0OworLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZt LmZtYS52OGYzMiJdCistICAgIGZuIGZtYV92OGYzMih4OiBmMzJ4OCwgeTogZjMyeDgsIHo6IGYz Mng4KSAtPiBmMzJ4ODsKKy0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5mbWEudjE2ZjMyIl0KKy0g ICAgZm4gZm1hX3YxNmYzMih4OiBmMzJ4MTYsIHk6IGYzMngxNiwgejogZjMyeDE2KSAtPiBmMzJ4 MTY7CistICAgIC8qIEZJWE1FIDY0LWJpdCBzaW5nbGUgZWxlbSB2ZWN0b3JzCistICAgICNbbGlu a19uYW1lID0gImxsdm0uZm1hLnYxZjY0Il0KKy0gICAgZm4gZm1hX3YxZjY0KHg6IGY2NHgxLCB5 OiBmNjR4MSwgejogZjY0eDEpIC0+IGY2NHgxOworLSAgICAqLworLSAgICAjW2xpbmtfbmFtZSA9 ICJsbHZtLmZtYS52MmY2NCJdCistICAgIGZuIGZtYV92MmY2NCh4OiBmNjR4MiwgeTogZjY0eDIs IHo6IGY2NHgyKSAtPiBmNjR4MjsKKy0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5mbWEudjRmNjQi XQorLSAgICBmbiBmbWFfdjRmNjQoeDogZjY0eDQsIHk6IGY2NHg0LCB6OiBmNjR4NCkgLT4gZjY0 eDQ7CistICAgICNbbGlua19uYW1lID0gImxsdm0uZm1hLnY4ZjY0Il0KKy0gICAgZm4gZm1hX3Y4 ZjY0KHg6IGY2NHg4LCB5OiBmNjR4OCwgejogZjY0eDgpIC0+IGY2NHg4OworLX0KKy0KKy1nZW5f dGVydGlhcnlfaW1wbF90YWJsZSEoTXVsQWRkLCBtdWxfYWRkKTsKKy0KKy1jZmdfaWYhIHsKKy0g ICAgaWYgI1tjZmcodGFyZ2V0X2FyY2ggPSAiczM5MHgiKV0geworLSAgICAgICAgLy8gRklYTUU6 IGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmctbnVyc2VyeS9wYWNrZWRfc2ltZC9pc3N1ZXMv MTQKKy0gICAgICAgIG1hY3JvX3J1bGVzISBpbXBsX2Jyb2tlbiB7CistICAgICAgICAgICAgKCRp ZDppZGVudCkgPT4geworLSAgICAgICAgICAgICAgICBpbXBsIE11bEFkZCBmb3IgJGlkIHsKKy0g ICAgICAgICAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgICAgICAgICAgZm4gbXVs X2FkZChzZWxmLCB5OiBTZWxmLCB6OiBTZWxmKSAtPiBTZWxmIHsKKy0gICAgICAgICAgICAgICAg ICAgICAgICBzZWxmICogeSArIHoKKy0gICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAg ICAgICAgfQorLSAgICAgICAgICAgIH07CistICAgICAgICB9CistCistICAgICAgICBpbXBsX2Jy b2tlbiEoZjMyeDIpOworLSAgICAgICAgaW1wbF9icm9rZW4hKGYzMng0KTsKKy0gICAgICAgIGlt cGxfYnJva2VuIShmMzJ4OCk7CistICAgICAgICBpbXBsX2Jyb2tlbiEoZjMyeDE2KTsKKy0KKy0g ICAgICAgIGltcGxfYnJva2VuIShmNjR4Mik7CistICAgICAgICBpbXBsX2Jyb2tlbiEoZjY0eDQp OworLSAgICAgICAgaW1wbF9icm9rZW4hKGY2NHg4KTsKKy0gICAgfSBlbHNlIGlmICNbY2ZnKGFs bCh0YXJnZXRfYXJjaCA9ICJ4ODZfNjQiLCBmZWF0dXJlID0gInNsZWVmLXN5cyIpKV0geworLSAg ICAgICAgdXNlIHNsZWVmX3N5czo6KjsKKy0gICAgICAgIGNmZ19pZiEgeworLSAgICAgICAgICAg IGlmICNbY2ZnKHRhcmdldF9mZWF0dXJlID0gImF2eDIiKV0geworLSAgICAgICAgICAgICAgICBp bXBsX3RlcnRpYXJ5IShmMzJ4Mlt0ID0+IGYzMng0XTogU2xlZWZfZm1hZjRfYXZ4MjEyOCk7Cist ICAgICAgICAgICAgICAgIGltcGxfdGVydGlhcnkhKGYzMngxNltoID0+IGYzMng4XTogU2xlZWZf Zm1hZjhfYXZ4Mik7CistICAgICAgICAgICAgICAgIGltcGxfdGVydGlhcnkhKGY2NHg4W2ggPT4g ZjY0eDRdOiBTbGVlZl9mbWFkNF9hdngyKTsKKy0KKy0gICAgICAgICAgICAgICAgaW1wbF90ZXJ0 aWFyeSEoZjMyeDQ6IFNsZWVmX2ZtYWY0X2F2eDIxMjgpOworLSAgICAgICAgICAgICAgICBpbXBs X3RlcnRpYXJ5IShmMzJ4ODogU2xlZWZfZm1hZjhfYXZ4Mik7CistICAgICAgICAgICAgICAgIGlt cGxfdGVydGlhcnkhKGY2NHgyOiBTbGVlZl9mbWFkMl9hdngyMTI4KTsKKy0gICAgICAgICAgICAg ICAgaW1wbF90ZXJ0aWFyeSEoZjY0eDQ6IFNsZWVmX2ZtYWQ0X2F2eDIpOworLSAgICAgICAgICAg IH0gZWxzZSBpZiAjW2NmZyh0YXJnZXRfZmVhdHVyZSA9ICJhdngiKV0geworLSAgICAgICAgICAg ICAgICBpbXBsX3RlcnRpYXJ5IShmMzJ4Mlt0ID0+IGYzMng0XTogU2xlZWZfZm1hZjRfc3NlNCk7 CistICAgICAgICAgICAgICAgIGltcGxfdGVydGlhcnkhKGYzMngxNltoID0+IGYzMng4XTogU2xl ZWZfZm1hZjhfYXZ4KTsKKy0gICAgICAgICAgICAgICAgaW1wbF90ZXJ0aWFyeSEoZjY0eDhbaCA9 PiBmNjR4NF06IFNsZWVmX2ZtYWQ0X2F2eCk7CistCistICAgICAgICAgICAgICAgIGltcGxfdGVy dGlhcnkhKGYzMng0OiBTbGVlZl9mbWFmNF9zc2U0KTsKKy0gICAgICAgICAgICAgICAgaW1wbF90 ZXJ0aWFyeSEoZjMyeDg6IFNsZWVmX2ZtYWY4X2F2eCk7CistICAgICAgICAgICAgICAgIGltcGxf dGVydGlhcnkhKGY2NHgyOiBTbGVlZl9mbWFkMl9zc2U0KTsKKy0gICAgICAgICAgICAgICAgaW1w bF90ZXJ0aWFyeSEoZjY0eDQ6IFNsZWVmX2ZtYWQ0X2F2eCk7CistICAgICAgICAgICAgfSBlbHNl IGlmICNbY2ZnKHRhcmdldF9mZWF0dXJlID0gInNzZTQuMiIpXSB7CistICAgICAgICAgICAgICAg IGltcGxfdGVydGlhcnkhKGYzMngyW3QgPT4gZjMyeDRdOiBTbGVlZl9mbWFmNF9zc2U0KTsKKy0g ICAgICAgICAgICAgICAgaW1wbF90ZXJ0aWFyeSEoZjMyeDE2W3EgPT4gZjMyeDRdOiBTbGVlZl9m bWFmNF9zc2U0KTsKKy0gICAgICAgICAgICAgICAgaW1wbF90ZXJ0aWFyeSEoZjY0eDhbcSA9PiBm NjR4Ml06IFNsZWVmX2ZtYWQyX3NzZTQpOworLQorLSAgICAgICAgICAgICAgICBpbXBsX3RlcnRp YXJ5IShmMzJ4NDogU2xlZWZfZm1hZjRfc3NlNCk7CistICAgICAgICAgICAgICAgIGltcGxfdGVy dGlhcnkhKGYzMng4W2ggPT4gZjMyeDRdOiBTbGVlZl9mbWFmNF9zc2U0KTsKKy0gICAgICAgICAg ICAgICAgaW1wbF90ZXJ0aWFyeSEoZjY0eDI6IFNsZWVmX2ZtYWQyX3NzZTQpOworLSAgICAgICAg ICAgICAgICBpbXBsX3RlcnRpYXJ5IShmNjR4NFtoID0+IGY2NHgyXTogU2xlZWZfZm1hZDJfc3Nl NCk7CistICAgICAgICAgICAgfSBlbHNlIHsKKy0gICAgICAgICAgICAgICAgaW1wbF90ZXJ0aWFy eSEoZjMyeDI6IGZtYV92MmYzMik7CistICAgICAgICAgICAgICAgIGltcGxfdGVydGlhcnkhKGYz MngxNjogZm1hX3YxNmYzMik7CistICAgICAgICAgICAgICAgIGltcGxfdGVydGlhcnkhKGY2NHg4 OiBmbWFfdjhmNjQpOworLQorLSAgICAgICAgICAgICAgICBpbXBsX3RlcnRpYXJ5IShmMzJ4NDog Zm1hX3Y0ZjMyKTsKKy0gICAgICAgICAgICAgICAgaW1wbF90ZXJ0aWFyeSEoZjMyeDg6IGZtYV92 OGYzMik7CistICAgICAgICAgICAgICAgIGltcGxfdGVydGlhcnkhKGY2NHgyOiBmbWFfdjJmNjQp OworLSAgICAgICAgICAgICAgICBpbXBsX3RlcnRpYXJ5IShmNjR4NDogZm1hX3Y0ZjY0KTsKKy0g ICAgICAgICAgICB9CistICAgICAgICB9CistICAgIH0gZWxzZSB7CistICAgICAgICBpbXBsX3Rl cnRpYXJ5IShmMzJ4MjogZm1hX3YyZjMyKTsKKy0gICAgICAgIGltcGxfdGVydGlhcnkhKGYzMng0 OiBmbWFfdjRmMzIpOworLSAgICAgICAgaW1wbF90ZXJ0aWFyeSEoZjMyeDg6IGZtYV92OGYzMik7 CistICAgICAgICBpbXBsX3RlcnRpYXJ5IShmMzJ4MTY6IGZtYV92MTZmMzIpOworLSAgICAgICAg Ly8gaW1wbF90ZXJ0aWFyeSEoZjY0eDE6IGZtYV92MWY2NCk7IC8vIEZJWE1FIDY0LWJpdCBmbWFn bGUgZWxlbSB2ZWN0b3JzCistICAgICAgICBpbXBsX3RlcnRpYXJ5IShmNjR4MjogZm1hX3YyZjY0 KTsKKy0gICAgICAgIGltcGxfdGVydGlhcnkhKGY2NHg0OiBmbWFfdjRmNjQpOworLSAgICAgICAg aW1wbF90ZXJ0aWFyeSEoZjY0eDg6IGZtYV92OGY2NCk7CistICAgIH0KKy19CitkaWZmIC0tZ2l0 IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9tYXRoL2Zsb2F0L211 bF9hZGRlLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9tYXRo L2Zsb2F0L211bF9hZGRlLnJzCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJk X3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vbWF0aC9mbG9hdC9tdWxfYWRkZS5y cworKysrIC9kZXYvbnVsbAorQEAgLTEsNjAgKzAsMCBAQAorLS8vISBBcHByb3hpbWF0aW9uIGZv ciBmbG9hdGluZy1wb2ludCBgbXVsX2FkZGAKKy11c2UgY3JhdGU6Oio7CistCistLy8gRklYTUU6 IDY0LWJpdCAxIGVsZW1lbnQgbXVsX2FkZGUKKy0KKy1wdWIoY3JhdGUpIHRyYWl0IE11bEFkZEUg eworLSAgICBmbiBtdWxfYWRkZShzZWxmLCB5OiBTZWxmLCB6OiBTZWxmKSAtPiBTZWxmOworLX0K Ky0KKy0jW2NmZyhub3QodGFyZ2V0X2FyY2ggPSAiczM5MHgiKSldCistI1thbGxvdyhpbXByb3Bl cl9jdHlwZXMpXQorLWV4dGVybiAiQyIgeworLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmZtdWxh ZGQudjJmMzIiXQorLSAgICBmbiBmbXVsYWRkX3YyZjMyKHg6IGYzMngyLCB5OiBmMzJ4Miwgejog ZjMyeDIpIC0+IGYzMngyOworLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmZtdWxhZGQudjRmMzIi XQorLSAgICBmbiBmbXVsYWRkX3Y0ZjMyKHg6IGYzMng0LCB5OiBmMzJ4NCwgejogZjMyeDQpIC0+ IGYzMng0OworLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmZtdWxhZGQudjhmMzIiXQorLSAgICBm biBmbXVsYWRkX3Y4ZjMyKHg6IGYzMng4LCB5OiBmMzJ4OCwgejogZjMyeDgpIC0+IGYzMng4Owor LSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmZtdWxhZGQudjE2ZjMyIl0KKy0gICAgZm4gZm11bGFk ZF92MTZmMzIoeDogZjMyeDE2LCB5OiBmMzJ4MTYsIHo6IGYzMngxNikgLT4gZjMyeDE2OworLSAg ICAvKiBGSVhNRSA2NC1iaXQgc2luZ2xlIGVsZW0gdmVjdG9ycworLSAgICAjW2xpbmtfbmFtZSA9 ICJsbHZtLmZtdWxhZGQudjFmNjQiXQorLSAgICBmbiBmbXVsYWRkX3YxZjY0KHg6IGY2NHgxLCB5 OiBmNjR4MSwgejogZjY0eDEpIC0+IGY2NHgxOworLSAgICAqLworLSAgICAjW2xpbmtfbmFtZSA9 ICJsbHZtLmZtdWxhZGQudjJmNjQiXQorLSAgICBmbiBmbXVsYWRkX3YyZjY0KHg6IGY2NHgyLCB5 OiBmNjR4MiwgejogZjY0eDIpIC0+IGY2NHgyOworLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmZt dWxhZGQudjRmNjQiXQorLSAgICBmbiBmbXVsYWRkX3Y0ZjY0KHg6IGY2NHg0LCB5OiBmNjR4NCwg ejogZjY0eDQpIC0+IGY2NHg0OworLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmZtdWxhZGQudjhm NjQiXQorLSAgICBmbiBmbXVsYWRkX3Y4ZjY0KHg6IGY2NHg4LCB5OiBmNjR4OCwgejogZjY0eDgp IC0+IGY2NHg4OworLX0KKy0KKy1tYWNyb19ydWxlcyEgaW1wbF9tdWxfYWRkZSB7CistICAgICgk aWQ6aWRlbnQgOiAkZm46aWRlbnQpID0+IHsKKy0gICAgICAgIGltcGwgTXVsQWRkRSBmb3IgJGlk IHsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBmbiBtdWxfYWRkZShzZWxm LCB5OiBTZWxmLCB6OiBTZWxmKSAtPiBTZWxmIHsKKy0gICAgICAgICAgICAgICAgI1tjZmcobm90 KHRhcmdldF9hcmNoID0gInMzOTB4IikpXQorLSAgICAgICAgICAgICAgICB7CistICAgICAgICAg ICAgICAgICAgICB1c2UgY3JhdGU6Om1lbTo6dHJhbnNtdXRlOworLSAgICAgICAgICAgICAgICAg ICAgdW5zYWZlIHsgdHJhbnNtdXRlKCRmbih0cmFuc211dGUoc2VsZiksIHRyYW5zbXV0ZSh5KSwg dHJhbnNtdXRlKHopKSkgfQorLSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICNb Y2ZnKHRhcmdldF9hcmNoID0gInMzOTB4IildCistICAgICAgICAgICAgICAgIHsKKy0gICAgICAg ICAgICAgICAgICAgIC8vIEZJWE1FOiBodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nLW51cnNl cnkvcGFja2VkX3NpbWQvaXNzdWVzLzE0CistICAgICAgICAgICAgICAgICAgICBzZWxmICogeSAr IHoKKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAg fTsKKy19CistCistaW1wbF9tdWxfYWRkZSEoZjMyeDI6IGZtdWxhZGRfdjJmMzIpOworLWltcGxf bXVsX2FkZGUhKGYzMng0OiBmbXVsYWRkX3Y0ZjMyKTsKKy1pbXBsX211bF9hZGRlIShmMzJ4ODog Zm11bGFkZF92OGYzMik7CistaW1wbF9tdWxfYWRkZSEoZjMyeDE2OiBmbXVsYWRkX3YxNmYzMik7 CistLy8gaW1wbF9tdWxfYWRkZSEoZjY0eDE6IGZtYV92MWY2NCk7IC8vIEZJWE1FIDY0LWJpdCBm bWFnbGUgZWxlbSB2ZWN0b3JzCistaW1wbF9tdWxfYWRkZSEoZjY0eDI6IGZtdWxhZGRfdjJmNjQp OworLWltcGxfbXVsX2FkZGUhKGY2NHg0OiBmbXVsYWRkX3Y0ZjY0KTsKKy1pbXBsX211bF9hZGRl IShmNjR4ODogZm11bGFkZF92OGY2NCk7CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9w YWNrZWRfc2ltZC9zcmMvY29kZWdlbi9tYXRoL2Zsb2F0L3Bvd2YucnMgYi90aGlyZF9wYXJ0eS9y dXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL21hdGgvZmxvYXQvcG93Zi5ycworZGVsZXRlZCBm aWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9j b2RlZ2VuL21hdGgvZmxvYXQvcG93Zi5ycworKysrIC9kZXYvbnVsbAorQEAgLTEsMTEyICswLDAg QEAKKy0vLyEgVmVydGljYWwgZmxvYXRpbmctcG9pbnQgYHBvd2ZgCistIyFbYWxsb3codW51c2Vk KV0KKy0KKy0vLyBGSVhNRSA2NC1iaXQgcG93ZmdsZSBlbGVtIHZlY3RvcnMgbWlzcG93ZmcKKy0K Ky11c2UgY3JhdGU6Oio7CistCistcHViKGNyYXRlKSB0cmFpdCBQb3dmIHsKKy0gICAgZm4gcG93 ZihzZWxmLCB4OiBTZWxmKSAtPiBTZWxmOworLX0KKy0KKy0jW2FsbG93KGltcHJvcGVyX2N0eXBl cyldCistZXh0ZXJuICJDIiB7CistICAgICNbbGlua19uYW1lID0gImxsdm0ucG93LnYyZjMyIl0K Ky0gICAgZm4gcG93Zl92MmYzMih4OiBmMzJ4MiwgeTogZjMyeDIpIC0+IGYzMngyOworLSAgICAj W2xpbmtfbmFtZSA9ICJsbHZtLnBvdy52NGYzMiJdCistICAgIGZuIHBvd2ZfdjRmMzIoeDogZjMy eDQsIHk6IGYzMng0KSAtPiBmMzJ4NDsKKy0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5wb3cudjhm MzIiXQorLSAgICBmbiBwb3dmX3Y4ZjMyKHg6IGYzMng4LCB5OiBmMzJ4OCkgLT4gZjMyeDg7Cist ICAgICNbbGlua19uYW1lID0gImxsdm0ucG93LnYxNmYzMiJdCistICAgIGZuIHBvd2ZfdjE2ZjMy KHg6IGYzMngxNiwgeTogZjMyeDE2KSAtPiBmMzJ4MTY7CistICAgIC8qIEZJWE1FIDY0LWJpdCBw b3dmZ2xlIGVsZW0gdmVjdG9ycworLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLnBvdy52MWY2NCJd CistICAgIGZuIHBvd2ZfdjFmNjQoeDogZjY0eDEsIHk6IGY2NHgxKSAtPiBmNjR4MTsKKy0gICAg ICovCistICAgICNbbGlua19uYW1lID0gImxsdm0ucG93LnYyZjY0Il0KKy0gICAgZm4gcG93Zl92 MmY2NCh4OiBmNjR4MiwgeTogZjY0eDIpIC0+IGY2NHgyOworLSAgICAjW2xpbmtfbmFtZSA9ICJs bHZtLnBvdy52NGY2NCJdCistICAgIGZuIHBvd2ZfdjRmNjQoeDogZjY0eDQsIHk6IGY2NHg0KSAt PiBmNjR4NDsKKy0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5wb3cudjhmNjQiXQorLSAgICBmbiBw b3dmX3Y4ZjY0KHg6IGY2NHg4LCB5OiBmNjR4OCkgLT4gZjY0eDg7CistCistICAgICNbbGlua19u YW1lID0gImxsdm0ucG93LmYzMiJdCistICAgIGZuIHBvd2ZfZjMyKHg6IGYzMiwgeTogZjMyKSAt PiBmMzI7CistICAgICNbbGlua19uYW1lID0gImxsdm0ucG93LmY2NCJdCistICAgIGZuIHBvd2Zf ZjY0KHg6IGY2NCwgeTogZjY0KSAtPiBmNjQ7CistfQorLQorLWdlbl9iaW5hcnlfaW1wbF90YWJs ZSEoUG93ZiwgcG93Zik7CistCistY2ZnX2lmISB7CistICAgIGlmICNbY2ZnKHRhcmdldF9hcmNo ID0gInMzOTB4IildIHsKKy0gICAgICAgIC8vIEZJWE1FOiBodHRwczovL2dpdGh1Yi5jb20vcnVz dC1sYW5nLW51cnNlcnkvcGFja2VkX3NpbWQvaXNzdWVzLzE0CistICAgICAgICBpbXBsX2JpbmFy eSEoZjMyeDJbZjMyOyAyXTogcG93Zl9mMzIpOworLSAgICAgICAgaW1wbF9iaW5hcnkhKGYzMng0 W2YzMjsgNF06IHBvd2ZfZjMyKTsKKy0gICAgICAgIGltcGxfYmluYXJ5IShmMzJ4OFtmMzI7IDhd OiBwb3dmX2YzMik7CistICAgICAgICBpbXBsX2JpbmFyeSEoZjMyeDE2W2YzMjsgMTZdOiBwb3dm X2YzMik7CistCistICAgICAgICBpbXBsX2JpbmFyeSEoZjY0eDJbZjY0OyAyXTogcG93Zl9mNjQp OworLSAgICAgICAgaW1wbF9iaW5hcnkhKGY2NHg0W2Y2NDsgNF06IHBvd2ZfZjY0KTsKKy0gICAg ICAgIGltcGxfYmluYXJ5IShmNjR4OFtmNjQ7IDhdOiBwb3dmX2Y2NCk7CistICAgIH0gZWxzZSBp ZiAjW2NmZyhhbGwodGFyZ2V0X2FyY2ggPSAieDg2XzY0IiwgZmVhdHVyZSA9ICJzbGVlZi1zeXMi KSldIHsKKy0gICAgICAgIHVzZSBzbGVlZl9zeXM6Oio7CistICAgICAgICBjZmdfaWYhIHsKKy0g ICAgICAgICAgICBpZiAjW2NmZyh0YXJnZXRfZmVhdHVyZSA9ICJhdngyIildIHsKKy0gICAgICAg ICAgICAgICAgaW1wbF9iaW5hcnkhKGYzMngyW3QgPT4gZjMyeDRdOiBTbGVlZl9wb3dmNF91MTBh dngyMTI4KTsKKy0gICAgICAgICAgICAgICAgaW1wbF9iaW5hcnkhKGYzMngxNltoID0+IGYzMng4 XTogU2xlZWZfcG93ZjhfdTEwYXZ4Mik7CistICAgICAgICAgICAgICAgIGltcGxfYmluYXJ5IShm NjR4OFtoID0+IGY2NHg0XTogU2xlZWZfcG93ZDRfdTEwYXZ4Mik7CistCistICAgICAgICAgICAg ICAgIGltcGxfYmluYXJ5IShmMzJ4NDogU2xlZWZfcG93ZjRfdTEwYXZ4MjEyOCk7CistICAgICAg ICAgICAgICAgIGltcGxfYmluYXJ5IShmMzJ4ODogU2xlZWZfcG93ZjhfdTEwYXZ4Mik7CistICAg ICAgICAgICAgICAgIGltcGxfYmluYXJ5IShmNjR4MjogU2xlZWZfcG93ZDJfdTEwYXZ4MjEyOCk7 CistICAgICAgICAgICAgICAgIGltcGxfYmluYXJ5IShmNjR4NDogU2xlZWZfcG93ZDRfdTEwYXZ4 Mik7CistICAgICAgICAgICAgfSBlbHNlIGlmICNbY2ZnKHRhcmdldF9mZWF0dXJlID0gImF2eCIp XSB7CistICAgICAgICAgICAgICAgIGltcGxfYmluYXJ5IShmMzJ4Mlt0ID0+IGYzMng0XTogU2xl ZWZfcG93ZjRfdTEwc3NlNCk7CistICAgICAgICAgICAgICAgIGltcGxfYmluYXJ5IShmMzJ4MTZb aCA9PiBmMzJ4OF06IFNsZWVmX3Bvd2Y4X3UxMGF2eCk7CistICAgICAgICAgICAgICAgIGltcGxf YmluYXJ5IShmNjR4OFtoID0+IGY2NHg0XTogU2xlZWZfcG93ZDRfdTEwYXZ4KTsKKy0KKy0gICAg ICAgICAgICAgICAgaW1wbF9iaW5hcnkhKGYzMng0OiBTbGVlZl9wb3dmNF91MTBzc2U0KTsKKy0g ICAgICAgICAgICAgICAgaW1wbF9iaW5hcnkhKGYzMng4OiBTbGVlZl9wb3dmOF91MTBhdngpOwor LSAgICAgICAgICAgICAgICBpbXBsX2JpbmFyeSEoZjY0eDI6IFNsZWVmX3Bvd2QyX3UxMHNzZTQp OworLSAgICAgICAgICAgICAgICBpbXBsX2JpbmFyeSEoZjY0eDQ6IFNsZWVmX3Bvd2Q0X3UxMGF2 eCk7CistICAgICAgICAgICAgfSBlbHNlIGlmICNbY2ZnKHRhcmdldF9mZWF0dXJlID0gInNzZTQu MiIpXSB7CistICAgICAgICAgICAgICAgIGltcGxfYmluYXJ5IShmMzJ4Mlt0ID0+IGYzMng0XTog U2xlZWZfcG93ZjRfdTEwc3NlNCk7CistICAgICAgICAgICAgICAgIGltcGxfYmluYXJ5IShmMzJ4 MTZbcSA9PiBmMzJ4NF06IFNsZWVmX3Bvd2Y0X3UxMHNzZTQpOworLSAgICAgICAgICAgICAgICBp bXBsX2JpbmFyeSEoZjY0eDhbcSA9PiBmNjR4Ml06IFNsZWVmX3Bvd2QyX3UxMHNzZTQpOworLQor LSAgICAgICAgICAgICAgICBpbXBsX2JpbmFyeSEoZjMyeDQ6IFNsZWVmX3Bvd2Y0X3UxMHNzZTQp OworLSAgICAgICAgICAgICAgICBpbXBsX2JpbmFyeSEoZjMyeDhbaCA9PiBmMzJ4NF06IFNsZWVm X3Bvd2Y0X3UxMHNzZTQpOworLSAgICAgICAgICAgICAgICBpbXBsX2JpbmFyeSEoZjY0eDI6IFNs ZWVmX3Bvd2QyX3UxMHNzZTQpOworLSAgICAgICAgICAgICAgICBpbXBsX2JpbmFyeSEoZjY0eDRb aCA9PiBmNjR4Ml06IFNsZWVmX3Bvd2QyX3UxMHNzZTQpOworLSAgICAgICAgICAgIH0gZWxzZSBp ZiAjW2NmZyh0YXJnZXRfZmVhdHVyZSA9ICJzc2UyIildIHsKKy0gICAgICAgICAgICAgICAgaW1w bF9iaW5hcnkhKGYzMngyW3QgPT4gZjMyeDRdOiBTbGVlZl9wb3dmNF91MTBzc2UyKTsKKy0gICAg ICAgICAgICAgICAgaW1wbF9iaW5hcnkhKGYzMngxNltxID0+IGYzMng0XTogU2xlZWZfcG93ZjRf dTEwc3NlMik7CistICAgICAgICAgICAgICAgIGltcGxfYmluYXJ5IShmNjR4OFtxID0+IGY2NHgy XTogU2xlZWZfcG93ZDJfdTEwc3NlMik7CistCistICAgICAgICAgICAgICAgIGltcGxfYmluYXJ5 IShmMzJ4NDogU2xlZWZfcG93ZjRfdTEwc3NlMik7CistICAgICAgICAgICAgICAgIGltcGxfYmlu YXJ5IShmMzJ4OFtoID0+IGYzMng0XTogU2xlZWZfcG93ZjRfdTEwc3NlMik7CistICAgICAgICAg ICAgICAgIGltcGxfYmluYXJ5IShmNjR4MjogU2xlZWZfcG93ZDJfdTEwc3NlMik7CistICAgICAg ICAgICAgICAgIGltcGxfYmluYXJ5IShmNjR4NFtoID0+IGY2NHgyXTogU2xlZWZfcG93ZDJfdTEw c3NlMik7CistICAgICAgICAgICAgfSBlbHNlIHsKKy0gICAgICAgICAgICAgICAgaW1wbF9iaW5h cnkhKGYzMngyW2YzMjsgMl06IHBvd2ZfZjMyKTsKKy0gICAgICAgICAgICAgICAgaW1wbF9iaW5h cnkhKGYzMng0OiBwb3dmX3Y0ZjMyKTsKKy0gICAgICAgICAgICAgICAgaW1wbF9iaW5hcnkhKGYz Mng4OiBwb3dmX3Y4ZjMyKTsKKy0gICAgICAgICAgICAgICAgaW1wbF9iaW5hcnkhKGYzMngxNjog cG93Zl92MTZmMzIpOworLQorLSAgICAgICAgICAgICAgICBpbXBsX2JpbmFyeSEoZjY0eDI6IHBv d2ZfdjJmNjQpOworLSAgICAgICAgICAgICAgICBpbXBsX2JpbmFyeSEoZjY0eDQ6IHBvd2ZfdjRm NjQpOworLSAgICAgICAgICAgICAgICBpbXBsX2JpbmFyeSEoZjY0eDg6IHBvd2ZfdjhmNjQpOwor LSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgfSBlbHNlIHsKKy0gICAgICAgIGltcGxf YmluYXJ5IShmMzJ4MltmMzI7IDJdOiBwb3dmX2YzMik7CistICAgICAgICBpbXBsX2JpbmFyeSEo ZjMyeDQ6IHBvd2ZfdjRmMzIpOworLSAgICAgICAgaW1wbF9iaW5hcnkhKGYzMng4OiBwb3dmX3Y4 ZjMyKTsKKy0gICAgICAgIGltcGxfYmluYXJ5IShmMzJ4MTY6IHBvd2ZfdjE2ZjMyKTsKKy0KKy0g ICAgICAgIGltcGxfYmluYXJ5IShmNjR4MjogcG93Zl92MmY2NCk7CistICAgICAgICBpbXBsX2Jp bmFyeSEoZjY0eDQ6IHBvd2ZfdjRmNjQpOworLSAgICAgICAgaW1wbF9iaW5hcnkhKGY2NHg4OiBw b3dmX3Y4ZjY0KTsKKy0gICAgfQorLX0KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3Bh Y2tlZF9zaW1kL3NyYy9jb2RlZ2VuL21hdGgvZmxvYXQvc2luLnJzIGIvdGhpcmRfcGFydHkvcnVz dC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9tYXRoL2Zsb2F0L3Npbi5ycworZGVsZXRlZCBmaWxl IG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2Rl Z2VuL21hdGgvZmxvYXQvc2luLnJzCisrKysgL2Rldi9udWxsCitAQCAtMSwxMDMgKzAsMCBAQAor LS8vISBWZXJ0aWNhbCBmbG9hdGluZy1wb2ludCBgc2luYAorLSMhW2FsbG93KHVudXNlZCldCist CistLy8gRklYTUUgNjQtYml0IDEgZWxlbSB2ZWN0b3JzIHNpbgorLQorLXVzZSBjcmF0ZTo6KjsK Ky0KKy1wdWIoY3JhdGUpIHRyYWl0IFNpbiB7CistICAgIGZuIHNpbihzZWxmKSAtPiBTZWxmOwor LX0KKy0KKy0jW2FsbG93KGltcHJvcGVyX2N0eXBlcyldCistZXh0ZXJuICJDIiB7CistICAgICNb bGlua19uYW1lID0gImxsdm0uc2luLnYyZjMyIl0KKy0gICAgZm4gc2luX3YyZjMyKHg6IGYzMngy KSAtPiBmMzJ4MjsKKy0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5zaW4udjRmMzIiXQorLSAgICBm biBzaW5fdjRmMzIoeDogZjMyeDQpIC0+IGYzMng0OworLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZt LnNpbi52OGYzMiJdCistICAgIGZuIHNpbl92OGYzMih4OiBmMzJ4OCkgLT4gZjMyeDg7CistICAg ICNbbGlua19uYW1lID0gImxsdm0uc2luLnYxNmYzMiJdCistICAgIGZuIHNpbl92MTZmMzIoeDog ZjMyeDE2KSAtPiBmMzJ4MTY7CistICAgIC8qIEZJWE1FIDY0LWJpdCBzaW5nbGUgZWxlbSB2ZWN0 b3JzCistICAgICNbbGlua19uYW1lID0gImxsdm0uc2luLnYxZjY0Il0KKy0gICAgZm4gc2luX3Yx ZjY0KHg6IGY2NHgxKSAtPiBmNjR4MTsKKy0gICAgICovCistICAgICNbbGlua19uYW1lID0gImxs dm0uc2luLnYyZjY0Il0KKy0gICAgZm4gc2luX3YyZjY0KHg6IGY2NHgyKSAtPiBmNjR4MjsKKy0g ICAgI1tsaW5rX25hbWUgPSAibGx2bS5zaW4udjRmNjQiXQorLSAgICBmbiBzaW5fdjRmNjQoeDog ZjY0eDQpIC0+IGY2NHg0OworLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLnNpbi52OGY2NCJdCist ICAgIGZuIHNpbl92OGY2NCh4OiBmNjR4OCkgLT4gZjY0eDg7CistCistICAgICNbbGlua19uYW1l ID0gImxsdm0uc2luLmYzMiJdCistICAgIGZuIHNpbl9mMzIoeDogZjMyKSAtPiBmMzI7CistICAg ICNbbGlua19uYW1lID0gImxsdm0uc2luLmY2NCJdCistICAgIGZuIHNpbl9mNjQoeDogZjY0KSAt PiBmNjQ7CistfQorLQorLWdlbl91bmFyeV9pbXBsX3RhYmxlIShTaW4sIHNpbik7CistCistY2Zn X2lmISB7CistICAgIGlmICNbY2ZnKHRhcmdldF9hcmNoID0gInMzOTB4IildIHsKKy0gICAgICAg IC8vIEZJWE1FOiBodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nLW51cnNlcnkvcGFja2VkX3Np bWQvaXNzdWVzLzE0CistICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4MltmMzI7IDJdOiBzaW5fZjMy KTsKKy0gICAgICAgIGltcGxfdW5hcnkhKGYzMng0W2YzMjsgNF06IHNpbl9mMzIpOworLSAgICAg ICAgaW1wbF91bmFyeSEoZjMyeDhbZjMyOyA4XTogc2luX2YzMik7CistICAgICAgICBpbXBsX3Vu YXJ5IShmMzJ4MTZbZjMyOyAxNl06IHNpbl9mMzIpOworLQorLSAgICAgICAgaW1wbF91bmFyeSEo ZjY0eDJbZjY0OyAyXTogc2luX2Y2NCk7CistICAgICAgICBpbXBsX3VuYXJ5IShmNjR4NFtmNjQ7 IDRdOiBzaW5fZjY0KTsKKy0gICAgICAgIGltcGxfdW5hcnkhKGY2NHg4W2Y2NDsgOF06IHNpbl9m NjQpOworLSAgICB9IGVsc2UgaWYgI1tjZmcoYWxsKHRhcmdldF9hcmNoID0gIng4Nl82NCIsIGZl YXR1cmUgPSAic2xlZWYtc3lzIikpXSB7CistICAgICAgICB1c2Ugc2xlZWZfc3lzOjoqOworLSAg ICAgICAgY2ZnX2lmISB7CistICAgICAgICAgICAgaWYgI1tjZmcodGFyZ2V0X2ZlYXR1cmUgPSAi YXZ4MiIpXSB7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMngyW3QgPT4gZjMyeDRd OiBTbGVlZl9zaW5mNF91MTBhdngyMTI4KTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEo ZjMyeDE2W2ggPT4gZjMyeDhdOiBTbGVlZl9zaW5mOF91MTBhdngyKTsKKy0gICAgICAgICAgICAg ICAgaW1wbF91bmFyeSEoZjY0eDhbaCA9PiBmNjR4NF06IFNsZWVmX3NpbmQ0X3UxMGF2eDIpOwor LQorLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4NDogU2xlZWZfc2luZjRfdTEwYXZ4 MjEyOCk7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng4OiBTbGVlZl9zaW5mOF91 MTBhdngyKTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDI6IFNsZWVmX3NpbmQy X3UxMGF2eDIxMjgpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4NDogU2xlZWZf c2luZDRfdTEwYXZ4Mik7CistICAgICAgICAgICAgfSBlbHNlIGlmICNbY2ZnKHRhcmdldF9mZWF0 dXJlID0gImF2eCIpXSB7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMngyW3QgPT4g ZjMyeDRdOiBTbGVlZl9zaW5mNF91MTBzc2U0KTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFy eSEoZjMyeDE2W2ggPT4gZjMyeDhdOiBTbGVlZl9zaW5mOF91MTBhdngpOworLSAgICAgICAgICAg ICAgICBpbXBsX3VuYXJ5IShmNjR4OFtoID0+IGY2NHg0XTogU2xlZWZfc2luZDRfdTEwYXZ4KTsK Ky0KKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDQ6IFNsZWVmX3NpbmY0X3UxMHNz ZTQpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4ODogU2xlZWZfc2luZjhfdTEw YXZ4KTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDI6IFNsZWVmX3NpbmQyX3Ux MHNzZTQpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4NDogU2xlZWZfc2luZDRf dTEwYXZ4KTsKKy0gICAgICAgICAgICB9IGVsc2UgaWYgI1tjZmcodGFyZ2V0X2ZlYXR1cmUgPSAi c3NlNC4yIildIHsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDJbdCA9PiBmMzJ4 NF06IFNsZWVmX3NpbmY0X3UxMHNzZTQpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShm MzJ4MTZbcSA9PiBmMzJ4NF06IFNsZWVmX3NpbmY0X3UxMHNzZTQpOworLSAgICAgICAgICAgICAg ICBpbXBsX3VuYXJ5IShmNjR4OFtxID0+IGY2NHgyXTogU2xlZWZfc2luZDJfdTEwc3NlNCk7Cist CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng0OiBTbGVlZl9zaW5mNF91MTBzc2U0 KTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDhbaCA9PiBmMzJ4NF06IFNsZWVm X3NpbmY0X3UxMHNzZTQpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4MjogU2xl ZWZfc2luZDJfdTEwc3NlNCk7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg0W2gg PT4gZjY0eDJdOiBTbGVlZl9zaW5kMl91MTBzc2U0KTsKKy0gICAgICAgICAgICB9IGVsc2Ugewor LSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4MltmMzI7IDJdOiBzaW5fZjMyKTsKKy0g ICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDE2OiBzaW5fdjE2ZjMyKTsKKy0gICAgICAg ICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDg6IHNpbl92OGY2NCk7CistCistICAgICAgICAgICAg ICAgIGltcGxfdW5hcnkhKGYzMng0OiBzaW5fdjRmMzIpOworLSAgICAgICAgICAgICAgICBpbXBs X3VuYXJ5IShmMzJ4ODogc2luX3Y4ZjMyKTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEo ZjY0eDI6IHNpbl92MmY2NCk7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg0OiBz aW5fdjRmNjQpOworLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgfSBlbHNlIHsKKy0g ICAgICAgIGltcGxfdW5hcnkhKGYzMngyW2YzMjsgMl06IHNpbl9mMzIpOworLSAgICAgICAgaW1w bF91bmFyeSEoZjMyeDQ6IHNpbl92NGYzMik7CistICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4ODog c2luX3Y4ZjMyKTsKKy0gICAgICAgIGltcGxfdW5hcnkhKGYzMngxNjogc2luX3YxNmYzMik7Cist CistICAgICAgICBpbXBsX3VuYXJ5IShmNjR4Mjogc2luX3YyZjY0KTsKKy0gICAgICAgIGltcGxf dW5hcnkhKGY2NHg0OiBzaW5fdjRmNjQpOworLSAgICAgICAgaW1wbF91bmFyeSEoZjY0eDg6IHNp bl92OGY2NCk7CistICAgIH0KKy19CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNr ZWRfc2ltZC9zcmMvY29kZWdlbi9tYXRoL2Zsb2F0L3Npbl9jb3NfcGkucnMgYi90aGlyZF9wYXJ0 eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL21hdGgvZmxvYXQvc2luX2Nvc19waS5ycwor ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9z aW1kL3NyYy9jb2RlZ2VuL21hdGgvZmxvYXQvc2luX2Nvc19waS5ycworKysrIC9kZXYvbnVsbAor QEAgLTEsMTg4ICswLDAgQEAKKy0vLyEgVmVydGljYWwgZmxvYXRpbmctcG9pbnQgYHNpbl9jb3Ng CistIyFbYWxsb3codW51c2VkKV0KKy0KKy0vLyBGSVhNRSA2NC1iaXQgMSBlbGVtIHZlY3RvcnMg c2luX2NvcworLQorLXVzZSBjcmF0ZTo6KjsKKy0KKy1wdWIoY3JhdGUpIHRyYWl0IFNpbkNvc1Bp OiBTaXplZCB7CistICAgIHR5cGUgT3V0cHV0OworLSAgICBmbiBzaW5fY29zX3BpKHNlbGYpIC0+ IFNlbGY6Ok91dHB1dDsKKy19CistCistbWFjcm9fcnVsZXMhIGltcGxfZGVmIHsKKy0gICAgKCR2 aWQ6aWRlbnQsICRQSTpwYXRoKSA9PiB7CistICAgICAgICBpbXBsIFNpbkNvc1BpIGZvciAkdmlk IHsKKy0gICAgICAgICAgICB0eXBlIE91dHB1dCA9IChTZWxmLCBTZWxmKTsKKy0gICAgICAgICAg ICAjW2lubGluZV0KKy0gICAgICAgICAgICBmbiBzaW5fY29zX3BpKHNlbGYpIC0+IFNlbGY6Ok91 dHB1dCB7CistICAgICAgICAgICAgICAgIGxldCB2ID0gc2VsZiAqIFNlbGY6OnNwbGF0KCRQSSk7 CistICAgICAgICAgICAgICAgICh2LnNpbigpLCB2LmNvcygpKQorLSAgICAgICAgICAgIH0KKy0g ICAgICAgIH0KKy0gICAgfTsKKy19CistCistbWFjcm9fcnVsZXMhIGltcGxfZGVmMzIgeworLSAg ICAoJHZpZDppZGVudCkgPT4geworLSAgICAgICAgaW1wbF9kZWYhKCR2aWQsIGNyYXRlOjpmMzI6 OmNvbnN0czo6UEkpOworLSAgICB9OworLX0KKy1tYWNyb19ydWxlcyEgaW1wbF9kZWY2NCB7Cist ICAgICgkdmlkOmlkZW50KSA9PiB7CistICAgICAgICBpbXBsX2RlZiEoJHZpZCwgY3JhdGU6OmY2 NDo6Y29uc3RzOjpQSSk7CistICAgIH07CistfQorLQorLW1hY3JvX3J1bGVzISBpbXBsX3VuYXJ5 X3QgeworLSAgICAoJHZpZDppZGVudDogJGZ1bjppZGVudCkgPT4geworLSAgICAgICAgaW1wbCBT aW5Db3NQaSBmb3IgJHZpZCB7CistICAgICAgICAgICAgdHlwZSBPdXRwdXQgPSAoU2VsZiwgU2Vs Zik7CistICAgICAgICAgICAgZm4gc2luX2Nvc19waShzZWxmKSAtPiBTZWxmOjpPdXRwdXQgewor LSAgICAgICAgICAgICAgICB1bnNhZmUgeworLSAgICAgICAgICAgICAgICAgICAgdXNlIGNyYXRl OjptZW06OnRyYW5zbXV0ZTsKKy0gICAgICAgICAgICAgICAgICAgIHRyYW5zbXV0ZSgkZnVuKHRy YW5zbXV0ZShzZWxmKSkpCistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICB9CistICAg ICAgICB9CistICAgIH07CistICAgICgkdmlkOmlkZW50W3QgPT4gJHZpZF90OmlkZW50XTogJGZ1 bjppZGVudCkgPT4geworLSAgICAgICAgaW1wbCBTaW5Db3NQaSBmb3IgJHZpZCB7CistICAgICAg ICAgICAgdHlwZSBPdXRwdXQgPSAoU2VsZiwgU2VsZik7CistICAgICAgICAgICAgZm4gc2luX2Nv c19waShzZWxmKSAtPiBTZWxmOjpPdXRwdXQgeworLSAgICAgICAgICAgICAgICB1bnNhZmUgewor LSAgICAgICAgICAgICAgICAgICAgdXNlIGNyYXRlOjptZW06Ont0cmFuc211dGUsIHVuaW5pdGlh bGl6ZWR9OworLQorLSAgICAgICAgICAgICAgICAgICAgdW5pb24gVSB7CistICAgICAgICAgICAg ICAgICAgICAgICAgdmVjOiBbJHZpZDsgMl0sCistICAgICAgICAgICAgICAgICAgICAgICAgdHdp Y2U6ICR2aWRfdCwKKy0gICAgICAgICAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICAgICAg ICAgIGxldCB0d2ljZSA9IFUgeyB2ZWM6IFtzZWxmLCB1bmluaXRpYWxpemVkKCldIH0udHdpY2U7 CistICAgICAgICAgICAgICAgICAgICBsZXQgdHdpY2UgPSB0cmFuc211dGUoJGZ1bih0cmFuc211 dGUodHdpY2UpKSk7CistCistICAgICAgICAgICAgICAgICAgICB1bmlvbiBSIHsKKy0gICAgICAg ICAgICAgICAgICAgICAgICB0d2ljZTogKCR2aWRfdCwgJHZpZF90KSwKKy0gICAgICAgICAgICAg ICAgICAgICAgICB2ZWNzOiAoWyR2aWQ7IDJdLCBbJHZpZDsgMl0pLAorLSAgICAgICAgICAgICAg ICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgbGV0IHIgPSBSIHsgdHdpY2UgfS52ZWNzOwor LSAgICAgICAgICAgICAgICAgICAgKCpyLjAuZ2V0X3VuY2hlY2tlZCgwKSwgKnIuMC5nZXRfdW5j aGVja2VkKDEpKQorLSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgfQorLSAgICAgICAg fQorLSAgICB9OworLSAgICAoJHZpZDppZGVudFtoID0+ICR2aWRfaDppZGVudF06ICRmdW46aWRl bnQpID0+IHsKKy0gICAgICAgIGltcGwgU2luQ29zUGkgZm9yICR2aWQgeworLSAgICAgICAgICAg IHR5cGUgT3V0cHV0ID0gKFNlbGYsIFNlbGYpOworLSAgICAgICAgICAgIGZuIHNpbl9jb3NfcGko c2VsZikgLT4gU2VsZjo6T3V0cHV0IHsKKy0gICAgICAgICAgICAgICAgdW5zYWZlIHsKKy0gICAg ICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6bWVtOjp0cmFuc211dGU7CistCistICAgICAgICAg ICAgICAgICAgICB1bmlvbiBVIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICB2ZWM6ICR2aWQs CistICAgICAgICAgICAgICAgICAgICAgICAgaGFsdmVzOiBbJHZpZF9oOyAyXSwKKy0gICAgICAg ICAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICAgICAgICAgIGxldCBoYWx2ZXMgPSBVIHsg dmVjOiBzZWxmIH0uaGFsdmVzOworLQorLSAgICAgICAgICAgICAgICAgICAgbGV0IHJlc18wOiAo JHZpZF9oLCAkdmlkX2gpID0gdHJhbnNtdXRlKCRmdW4odHJhbnNtdXRlKCpoYWx2ZXMuZ2V0X3Vu Y2hlY2tlZCgwKSkpKTsKKy0gICAgICAgICAgICAgICAgICAgIGxldCByZXNfMTogKCR2aWRfaCwg JHZpZF9oKSA9IHRyYW5zbXV0ZSgkZnVuKHRyYW5zbXV0ZSgqaGFsdmVzLmdldF91bmNoZWNrZWQo MSkpKSk7CistCistICAgICAgICAgICAgICAgICAgICB1bmlvbiBSIHsKKy0gICAgICAgICAgICAg ICAgICAgICAgICByZXN1bHQ6ICgkdmlkLCAkdmlkKSwKKy0gICAgICAgICAgICAgICAgICAgICAg ICBoYWx2ZXM6IChbJHZpZF9oOyAyXSwgWyR2aWRfaDsgMl0pLAorLSAgICAgICAgICAgICAgICAg ICAgfQorLSAgICAgICAgICAgICAgICAgICAgUiB7IGhhbHZlczogKFtyZXNfMC4wLCByZXNfMS4w XSwgW3Jlc18wLjEsIHJlc18xLjFdKSB9LnJlc3VsdAorLSAgICAgICAgICAgICAgICB9CistICAg ICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICB9OworLSAgICAoJHZpZDppZGVudFtxID0+ICR2 aWRfcTppZGVudF06ICRmdW46aWRlbnQpID0+IHsKKy0gICAgICAgIGltcGwgU2luQ29zUGkgZm9y ICR2aWQgeworLSAgICAgICAgICAgIHR5cGUgT3V0cHV0ID0gKFNlbGYsIFNlbGYpOworLSAgICAg ICAgICAgIGZuIHNpbl9jb3NfcGkoc2VsZikgLT4gU2VsZjo6T3V0cHV0IHsKKy0gICAgICAgICAg ICAgICAgdW5zYWZlIHsKKy0gICAgICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6bWVtOjp0cmFu c211dGU7CistCistICAgICAgICAgICAgICAgICAgICB1bmlvbiBVIHsKKy0gICAgICAgICAgICAg ICAgICAgICAgICB2ZWM6ICR2aWQsCistICAgICAgICAgICAgICAgICAgICAgICAgcXVhcnRlcnM6 IFskdmlkX3E7IDRdLAorLSAgICAgICAgICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgICAg ICAgICAgbGV0IHF1YXJ0ZXJzID0gVSB7IHZlYzogc2VsZiB9LnF1YXJ0ZXJzOworLQorLSAgICAg ICAgICAgICAgICAgICAgbGV0IHJlc18wOiAoJHZpZF9xLCAkdmlkX3EpID0gdHJhbnNtdXRlKCRm dW4odHJhbnNtdXRlKCpxdWFydGVycy5nZXRfdW5jaGVja2VkKDApKSkpOworLSAgICAgICAgICAg ICAgICAgICAgbGV0IHJlc18xOiAoJHZpZF9xLCAkdmlkX3EpID0gdHJhbnNtdXRlKCRmdW4odHJh bnNtdXRlKCpxdWFydGVycy5nZXRfdW5jaGVja2VkKDEpKSkpOworLSAgICAgICAgICAgICAgICAg ICAgbGV0IHJlc18yOiAoJHZpZF9xLCAkdmlkX3EpID0gdHJhbnNtdXRlKCRmdW4odHJhbnNtdXRl KCpxdWFydGVycy5nZXRfdW5jaGVja2VkKDIpKSkpOworLSAgICAgICAgICAgICAgICAgICAgbGV0 IHJlc18zOiAoJHZpZF9xLCAkdmlkX3EpID0gdHJhbnNtdXRlKCRmdW4odHJhbnNtdXRlKCpxdWFy dGVycy5nZXRfdW5jaGVja2VkKDMpKSkpOworLQorLSAgICAgICAgICAgICAgICAgICAgdW5pb24g UiB7CistICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0OiAoJHZpZCwgJHZpZCksCistICAg ICAgICAgICAgICAgICAgICAgICAgcXVhcnRlcnM6IChbJHZpZF9xOyA0XSwgWyR2aWRfcTsgNF0p LAorLSAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgUiB7CistICAg ICAgICAgICAgICAgICAgICAgICAgcXVhcnRlcnM6ICgKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgW3Jlc18wLjAsIHJlc18xLjAsIHJlc18yLjAsIHJlc18zLjBdLAorLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICBbcmVzXzAuMSwgcmVzXzEuMSwgcmVzXzIuMSwgcmVzXzMuMV0sCist ICAgICAgICAgICAgICAgICAgICAgICAgKSwKKy0gICAgICAgICAgICAgICAgICAgIH0KKy0gICAg ICAgICAgICAgICAgICAgIC5yZXN1bHQKKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAg IH0KKy0gICAgICAgIH0KKy0gICAgfTsKKy19CistCistY2ZnX2lmISB7CistICAgIGlmICNbY2Zn KGFsbCh0YXJnZXRfYXJjaCA9ICJ4ODZfNjQiLCBmZWF0dXJlID0gInNsZWVmLXN5cyIpKV0gewor LSAgICAgICAgdXNlIHNsZWVmX3N5czo6KjsKKy0gICAgICAgIGNmZ19pZiEgeworLSAgICAgICAg ICAgIGlmICNbY2ZnKHRhcmdldF9mZWF0dXJlID0gImF2eDIiKV0geworLSAgICAgICAgICAgICAg ICBpbXBsX3VuYXJ5X3QhKGYzMngyW3QgPT4gZjMyeDRdOiBTbGVlZl9zaW5jb3NwaWY0X3UwNWF2 eDIxMjgpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5X3QhKGYzMngxNltoID0+IGYzMng4 XTogU2xlZWZfc2luY29zcGlmOF91MDVhdngyKTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFy eV90IShmNjR4OFtoID0+IGY2NHg0XTogU2xlZWZfc2luY29zcGlkNF91MDVhdngyKTsKKy0KKy0g ICAgICAgICAgICAgICAgaW1wbF91bmFyeV90IShmMzJ4NDogU2xlZWZfc2luY29zcGlmNF91MDVh dngyMTI4KTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeV90IShmMzJ4ODogU2xlZWZfc2lu Y29zcGlmOF91MDVhdngyKTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeV90IShmNjR4Mjog U2xlZWZfc2luY29zcGlkMl91MDVhdngyMTI4KTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFy eV90IShmNjR4NDogU2xlZWZfc2luY29zcGlkNF91MDVhdngyKTsKKy0gICAgICAgICAgICB9IGVs c2UgaWYgI1tjZmcodGFyZ2V0X2ZlYXR1cmUgPSAiYXZ4IildIHsKKy0gICAgICAgICAgICAgICAg aW1wbF91bmFyeV90IShmMzJ4Mlt0ID0+IGYzMng0XTogU2xlZWZfc2luY29zcGlmNF91MDVzc2U0 KTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeV90IShmMzJ4MTZbaCA9PiBmMzJ4OF06IFNs ZWVmX3NpbmNvc3BpZjhfdTA1YXZ4KTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeV90IShm NjR4OFtoID0+IGY2NHg0XTogU2xlZWZfc2luY29zcGlkNF91MDVhdngpOworLQorLSAgICAgICAg ICAgICAgICBpbXBsX3VuYXJ5X3QhKGYzMng0OiBTbGVlZl9zaW5jb3NwaWY0X3UwNXNzZTQpOwor LSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5X3QhKGYzMng4OiBTbGVlZl9zaW5jb3NwaWY4X3Uw NWF2eCk7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnlfdCEoZjY0eDI6IFNsZWVmX3NpbmNv c3BpZDJfdTA1c3NlNCk7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnlfdCEoZjY0eDQ6IFNs ZWVmX3NpbmNvc3BpZDRfdTA1YXZ4KTsKKy0gICAgICAgICAgICB9IGVsc2UgaWYgI1tjZmcodGFy Z2V0X2ZlYXR1cmUgPSAic3NlNC4yIildIHsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeV90 IShmMzJ4Mlt0ID0+IGYzMng0XTogU2xlZWZfc2luY29zcGlmNF91MDVzc2U0KTsKKy0gICAgICAg ICAgICAgICAgaW1wbF91bmFyeV90IShmMzJ4MTZbcSA9PiBmMzJ4NF06IFNsZWVmX3NpbmNvc3Bp ZjRfdTA1c3NlNCk7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnlfdCEoZjY0eDhbcSA9PiBm NjR4Ml06IFNsZWVmX3NpbmNvc3BpZDJfdTA1c3NlNCk7CistCistICAgICAgICAgICAgICAgIGlt cGxfdW5hcnlfdCEoZjMyeDQ6IFNsZWVmX3NpbmNvc3BpZjRfdTA1c3NlNCk7CistICAgICAgICAg ICAgICAgIGltcGxfdW5hcnlfdCEoZjMyeDhbaCA9PiBmMzJ4NF06IFNsZWVmX3NpbmNvc3BpZjRf dTA1c3NlNCk7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnlfdCEoZjY0eDI6IFNsZWVmX3Np bmNvc3BpZDJfdTA1c3NlNCk7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnlfdCEoZjY0eDRb aCA9PiBmNjR4Ml06IFNsZWVmX3NpbmNvc3BpZDJfdTA1c3NlNCk7CistICAgICAgICAgICAgfSBl bHNlIHsKKy0gICAgICAgICAgICAgICAgaW1wbF9kZWYzMiEoZjMyeDIpOworLSAgICAgICAgICAg ICAgICBpbXBsX2RlZjMyIShmMzJ4NCk7CistICAgICAgICAgICAgICAgIGltcGxfZGVmMzIhKGYz Mng4KTsKKy0gICAgICAgICAgICAgICAgaW1wbF9kZWYzMiEoZjMyeDE2KTsKKy0KKy0gICAgICAg ICAgICAgICAgaW1wbF9kZWY2NCEoZjY0eDIpOworLSAgICAgICAgICAgICAgICBpbXBsX2RlZjY0 IShmNjR4NCk7CistICAgICAgICAgICAgICAgIGltcGxfZGVmNjQhKGY2NHg4KTsKKy0gICAgICAg ICAgICB9CistICAgICAgICB9CistICAgIH0gZWxzZSB7CistICAgICAgICBpbXBsX2RlZjMyIShm MzJ4Mik7CistICAgICAgICBpbXBsX2RlZjMyIShmMzJ4NCk7CistICAgICAgICBpbXBsX2RlZjMy IShmMzJ4OCk7CistICAgICAgICBpbXBsX2RlZjMyIShmMzJ4MTYpOworLQorLSAgICAgICAgaW1w bF9kZWY2NCEoZjY0eDIpOworLSAgICAgICAgaW1wbF9kZWY2NCEoZjY0eDQpOworLSAgICAgICAg aW1wbF9kZWY2NCEoZjY0eDgpOworLSAgICB9CistfQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5 L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vbWF0aC9mbG9hdC9zaW5fcGkucnMgYi90aGly ZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL21hdGgvZmxvYXQvc2luX3BpLnJz CitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2Vk X3NpbWQvc3JjL2NvZGVnZW4vbWF0aC9mbG9hdC9zaW5fcGkucnMKKysrKyAvZGV2L251bGwKK0BA IC0xLDg3ICswLDAgQEAKKy0vLyEgVmVydGljYWwgZmxvYXRpbmctcG9pbnQgYHNpbl9waWAKKy0j IVthbGxvdyh1bnVzZWQpXQorLQorLS8vIEZJWE1FIDY0LWJpdCAxIGVsZW0gdmVjdG9ycyBzaW5f cGkKKy0KKy11c2UgY3JhdGU6Oio7CistCistcHViKGNyYXRlKSB0cmFpdCBTaW5QaSB7CistICAg IGZuIHNpbl9waShzZWxmKSAtPiBTZWxmOworLX0KKy0KKy1nZW5fdW5hcnlfaW1wbF90YWJsZSEo U2luUGksIHNpbl9waSk7CistCistbWFjcm9fcnVsZXMhIGltcGxfZGVmIHsKKy0gICAgKCR2aWQ6 aWRlbnQsICRQSTpwYXRoKSA9PiB7CistICAgICAgICBpbXBsIFNpblBpIGZvciAkdmlkIHsKKy0g ICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBmbiBzaW5fcGkoc2VsZikgLT4gU2Vs ZiB7CistICAgICAgICAgICAgICAgIChzZWxmICogU2VsZjo6c3BsYXQoJFBJKSkuc2luKCkKKy0g ICAgICAgICAgICB9CistICAgICAgICB9CistICAgIH07CistfQorLW1hY3JvX3J1bGVzISBpbXBs X2RlZjMyIHsKKy0gICAgKCR2aWQ6aWRlbnQpID0+IHsKKy0gICAgICAgIGltcGxfZGVmISgkdmlk LCBjcmF0ZTo6ZjMyOjpjb25zdHM6OlBJKTsKKy0gICAgfTsKKy19CistbWFjcm9fcnVsZXMhIGlt cGxfZGVmNjQgeworLSAgICAoJHZpZDppZGVudCkgPT4geworLSAgICAgICAgaW1wbF9kZWYhKCR2 aWQsIGNyYXRlOjpmNjQ6OmNvbnN0czo6UEkpOworLSAgICB9OworLX0KKy0KKy1jZmdfaWYhIHsK Ky0gICAgaWYgI1tjZmcoYWxsKHRhcmdldF9hcmNoID0gIng4Nl82NCIsIGZlYXR1cmUgPSAic2xl ZWYtc3lzIikpXSB7CistICAgICAgICB1c2Ugc2xlZWZfc3lzOjoqOworLSAgICAgICAgY2ZnX2lm ISB7CistICAgICAgICAgICAgaWYgI1tjZmcodGFyZ2V0X2ZlYXR1cmUgPSAiYXZ4MiIpXSB7Cist ICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMngyW3QgPT4gZjMyeDRdOiBTbGVlZl9zaW5w aWY0X3UwNWF2eDIxMjgpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4MTZbaCA9 PiBmMzJ4OF06IFNsZWVmX3NpbnBpZjhfdTA1YXZ4Mik7CistICAgICAgICAgICAgICAgIGltcGxf dW5hcnkhKGY2NHg4W2ggPT4gZjY0eDRdOiBTbGVlZl9zaW5waWQ0X3UwNWF2eDIpOworLQorLSAg ICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4NDogU2xlZWZfc2lucGlmNF91MDVhdngyMTI4 KTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDg6IFNsZWVmX3NpbnBpZjhfdTA1 YXZ4Mik7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHgyOiBTbGVlZl9zaW5waWQy X3UwNWF2eDIxMjgpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4NDogU2xlZWZf c2lucGlkNF91MDVhdngyKTsKKy0gICAgICAgICAgICB9IGVsc2UgaWYgI1tjZmcodGFyZ2V0X2Zl YXR1cmUgPSAiYXZ4IildIHsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDJbdCA9 PiBmMzJ4NF06IFNsZWVmX3NpbnBpZjRfdTA1c3NlNCk7CistICAgICAgICAgICAgICAgIGltcGxf dW5hcnkhKGYzMngxNltoID0+IGYzMng4XTogU2xlZWZfc2lucGlmOF91MDVhdngpOworLSAgICAg ICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4OFtoID0+IGY2NHg0XTogU2xlZWZfc2lucGlkNF91 MDVhdngpOworLQorLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4NDogU2xlZWZfc2lu cGlmNF91MDVzc2U0KTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDg6IFNsZWVm X3NpbnBpZjhfdTA1YXZ4KTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDI6IFNs ZWVmX3NpbnBpZDJfdTA1c3NlNCk7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg0 OiBTbGVlZl9zaW5waWQ0X3UwNWF2eCk7CistICAgICAgICAgICAgfSBlbHNlIGlmICNbY2ZnKHRh cmdldF9mZWF0dXJlID0gInNzZTQuMiIpXSB7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkh KGYzMngyW3QgPT4gZjMyeDRdOiBTbGVlZl9zaW5waWY0X3UwNXNzZTQpOworLSAgICAgICAgICAg ICAgICBpbXBsX3VuYXJ5IShmMzJ4MTZbcSA9PiBmMzJ4NF06IFNsZWVmX3NpbnBpZjRfdTA1c3Nl NCk7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg4W3EgPT4gZjY0eDJdOiBTbGVl Zl9zaW5waWQyX3UwNXNzZTQpOworLQorLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4 NDogU2xlZWZfc2lucGlmNF91MDVzc2U0KTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEo ZjMyeDhbaCA9PiBmMzJ4NF06IFNsZWVmX3NpbnBpZjRfdTA1c3NlNCk7CistICAgICAgICAgICAg ICAgIGltcGxfdW5hcnkhKGY2NHgyOiBTbGVlZl9zaW5waWQyX3UwNXNzZTQpOworLSAgICAgICAg ICAgICAgICBpbXBsX3VuYXJ5IShmNjR4NFtoID0+IGY2NHgyXTogU2xlZWZfc2lucGlkMl91MDVz c2U0KTsKKy0gICAgICAgICAgICB9IGVsc2UgeworLSAgICAgICAgICAgICAgICBpbXBsX2RlZjMy IShmMzJ4Mik7CistICAgICAgICAgICAgICAgIGltcGxfZGVmMzIhKGYzMng0KTsKKy0gICAgICAg ICAgICAgICAgaW1wbF9kZWYzMiEoZjMyeDgpOworLSAgICAgICAgICAgICAgICBpbXBsX2RlZjMy IShmMzJ4MTYpOworLQorLSAgICAgICAgICAgICAgICBpbXBsX2RlZjY0IShmNjR4Mik7CistICAg ICAgICAgICAgICAgIGltcGxfZGVmNjQhKGY2NHg0KTsKKy0gICAgICAgICAgICAgICAgaW1wbF9k ZWY2NCEoZjY0eDgpOworLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgfSBlbHNlIHsK Ky0gICAgICAgIGltcGxfZGVmMzIhKGYzMngyKTsKKy0gICAgICAgIGltcGxfZGVmMzIhKGYzMng0 KTsKKy0gICAgICAgIGltcGxfZGVmMzIhKGYzMng4KTsKKy0gICAgICAgIGltcGxfZGVmMzIhKGYz MngxNik7CistCistICAgICAgICBpbXBsX2RlZjY0IShmNjR4Mik7CistICAgICAgICBpbXBsX2Rl ZjY0IShmNjR4NCk7CistICAgICAgICBpbXBsX2RlZjY0IShmNjR4OCk7CistICAgIH0KKy19Citk aWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9tYXRo L2Zsb2F0L3NxcnQucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2Vu L21hdGgvZmxvYXQvc3FydC5ycworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGly ZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL21hdGgvZmxvYXQvc3FydC5ycwor KysrIC9kZXYvbnVsbAorQEAgLTEsMTAzICswLDAgQEAKKy0vLyEgVmVydGljYWwgZmxvYXRpbmct cG9pbnQgYHNxcnRgCistIyFbYWxsb3codW51c2VkKV0KKy0KKy0vLyBGSVhNRSA2NC1iaXQgMSBl bGVtIHZlY3RvcnMgc3FydAorLQorLXVzZSBjcmF0ZTo6KjsKKy0KKy1wdWIoY3JhdGUpIHRyYWl0 IFNxcnQgeworLSAgICBmbiBzcXJ0KHNlbGYpIC0+IFNlbGY7CistfQorLQorLSNbYWxsb3coaW1w cm9wZXJfY3R5cGVzKV0KKy1leHRlcm4gIkMiIHsKKy0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5z cXJ0LnYyZjMyIl0KKy0gICAgZm4gc3FydF92MmYzMih4OiBmMzJ4MikgLT4gZjMyeDI7CistICAg ICNbbGlua19uYW1lID0gImxsdm0uc3FydC52NGYzMiJdCistICAgIGZuIHNxcnRfdjRmMzIoeDog ZjMyeDQpIC0+IGYzMng0OworLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLnNxcnQudjhmMzIiXQor LSAgICBmbiBzcXJ0X3Y4ZjMyKHg6IGYzMng4KSAtPiBmMzJ4ODsKKy0gICAgI1tsaW5rX25hbWUg PSAibGx2bS5zcXJ0LnYxNmYzMiJdCistICAgIGZuIHNxcnRfdjE2ZjMyKHg6IGYzMngxNikgLT4g ZjMyeDE2OworLSAgICAvKiBGSVhNRSA2NC1iaXQgc3FydGdsZSBlbGVtIHZlY3RvcnMKKy0gICAg I1tsaW5rX25hbWUgPSAibGx2bS5zcXJ0LnYxZjY0Il0KKy0gICAgZm4gc3FydF92MWY2NCh4OiBm NjR4MSkgLT4gZjY0eDE7CistICAgICAqLworLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLnNxcnQu djJmNjQiXQorLSAgICBmbiBzcXJ0X3YyZjY0KHg6IGY2NHgyKSAtPiBmNjR4MjsKKy0gICAgI1ts aW5rX25hbWUgPSAibGx2bS5zcXJ0LnY0ZjY0Il0KKy0gICAgZm4gc3FydF92NGY2NCh4OiBmNjR4 NCkgLT4gZjY0eDQ7CistICAgICNbbGlua19uYW1lID0gImxsdm0uc3FydC52OGY2NCJdCistICAg IGZuIHNxcnRfdjhmNjQoeDogZjY0eDgpIC0+IGY2NHg4OworLQorLSAgICAjW2xpbmtfbmFtZSA9 ICJsbHZtLnNxcnQuZjMyIl0KKy0gICAgZm4gc3FydF9mMzIoeDogZjMyKSAtPiBmMzI7CistICAg ICNbbGlua19uYW1lID0gImxsdm0uc3FydC5mNjQiXQorLSAgICBmbiBzcXJ0X2Y2NCh4OiBmNjQp IC0+IGY2NDsKKy19CistCistZ2VuX3VuYXJ5X2ltcGxfdGFibGUhKFNxcnQsIHNxcnQpOworLQor LWNmZ19pZiEgeworLSAgICBpZiAjW2NmZyh0YXJnZXRfYXJjaCA9ICJzMzkweCIpXSB7CistICAg ICAgICAvLyBGSVhNRTogaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy1udXJzZXJ5L3BhY2tl ZF9zaW1kL2lzc3Vlcy8xNAorLSAgICAgICAgaW1wbF91bmFyeSEoZjMyeDJbZjMyOyAyXTogc3Fy dF9mMzIpOworLSAgICAgICAgaW1wbF91bmFyeSEoZjMyeDRbZjMyOyA0XTogc3FydF9mMzIpOwor LSAgICAgICAgaW1wbF91bmFyeSEoZjMyeDhbZjMyOyA4XTogc3FydF9mMzIpOworLSAgICAgICAg aW1wbF91bmFyeSEoZjMyeDE2W2YzMjsgMTZdOiBzcXJ0X2YzMik7CistCistICAgICAgICBpbXBs X3VuYXJ5IShmNjR4MltmNjQ7IDJdOiBzcXJ0X2Y2NCk7CistICAgICAgICBpbXBsX3VuYXJ5IShm NjR4NFtmNjQ7IDRdOiBzcXJ0X2Y2NCk7CistICAgICAgICBpbXBsX3VuYXJ5IShmNjR4OFtmNjQ7 IDhdOiBzcXJ0X2Y2NCk7CistICAgIH0gZWxzZSBpZiAjW2NmZyhhbGwodGFyZ2V0X2FyY2ggPSAi eDg2XzY0IiwgZmVhdHVyZSA9ICJzbGVlZi1zeXMiKSldIHsKKy0gICAgICAgIHVzZSBzbGVlZl9z eXM6Oio7CistICAgICAgICBjZmdfaWYhIHsKKy0gICAgICAgICAgICBpZiAjW2NmZyh0YXJnZXRf ZmVhdHVyZSA9ICJhdngyIildIHsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDJb dCA9PiBmMzJ4NF06IFNsZWVmX3NxcnRmNF9hdngyMTI4KTsKKy0gICAgICAgICAgICAgICAgaW1w bF91bmFyeSEoZjMyeDE2W2ggPT4gZjMyeDhdOiBTbGVlZl9zcXJ0ZjhfYXZ4Mik7CistICAgICAg ICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg4W2ggPT4gZjY0eDRdOiBTbGVlZl9zcXJ0ZDRfYXZ4 Mik7CistCistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng0OiBTbGVlZl9zcXJ0ZjRf YXZ4MjEyOCk7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng4OiBTbGVlZl9zcXJ0 ZjhfYXZ4Mik7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHgyOiBTbGVlZl9zcXJ0 ZDJfYXZ4MjEyOCk7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg0OiBTbGVlZl9z cXJ0ZDRfYXZ4Mik7CistICAgICAgICAgICAgfSBlbHNlIGlmICNbY2ZnKHRhcmdldF9mZWF0dXJl ID0gImF2eCIpXSB7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMngyW3QgPT4gZjMy eDRdOiBTbGVlZl9zcXJ0ZjRfc3NlNCk7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYz MngxNltoID0+IGYzMng4XTogU2xlZWZfc3FydGY4X2F2eCk7CistICAgICAgICAgICAgICAgIGlt cGxfdW5hcnkhKGY2NHg4W2ggPT4gZjY0eDRdOiBTbGVlZl9zcXJ0ZDRfYXZ4KTsKKy0KKy0gICAg ICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDQ6IFNsZWVmX3NxcnRmNF9zc2U0KTsKKy0gICAg ICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDg6IFNsZWVmX3NxcnRmOF9hdngpOworLSAgICAg ICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4MjogU2xlZWZfc3FydGQyX3NzZTQpOworLSAgICAg ICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4NDogU2xlZWZfc3FydGQ0X2F2eCk7CistICAgICAg ICAgICAgfSBlbHNlIGlmICNbY2ZnKHRhcmdldF9mZWF0dXJlID0gInNzZTQuMiIpXSB7CistICAg ICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMngyW3QgPT4gZjMyeDRdOiBTbGVlZl9zcXJ0ZjRf c3NlNCk7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMngxNltxID0+IGYzMng0XTog U2xlZWZfc3FydGY0X3NzZTQpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4OFtx ID0+IGY2NHgyXTogU2xlZWZfc3FydGQyX3NzZTQpOworLQorLSAgICAgICAgICAgICAgICBpbXBs X3VuYXJ5IShmMzJ4NDogU2xlZWZfc3FydGY0X3NzZTQpOworLSAgICAgICAgICAgICAgICBpbXBs X3VuYXJ5IShmMzJ4OFtoID0+IGYzMng0XTogU2xlZWZfc3FydGY0X3NzZTQpOworLSAgICAgICAg ICAgICAgICBpbXBsX3VuYXJ5IShmNjR4MjogU2xlZWZfc3FydGQyX3NzZTQpOworLSAgICAgICAg ICAgICAgICBpbXBsX3VuYXJ5IShmNjR4NFtoID0+IGY2NHgyXTogU2xlZWZfc3FydGQyX3NzZTQp OworLSAgICAgICAgICAgIH0gZWxzZSB7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYz MngyW2YzMjsgMl06IHNxcnRfZjMyKTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMy eDE2OiBzcXJ0X3YxNmYzMik7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg4OiBz cXJ0X3Y4ZjY0KTsKKy0KKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDQ6IHNxcnRf djRmMzIpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4ODogc3FydF92OGYzMik7 CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHgyOiBzcXJ0X3YyZjY0KTsKKy0gICAg ICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDQ6IHNxcnRfdjRmNjQpOworLSAgICAgICAgICAg IH0KKy0gICAgICAgIH0KKy0gICAgfSBlbHNlIHsKKy0gICAgICAgIGltcGxfdW5hcnkhKGYzMngy W2YzMjsgMl06IHNxcnRfZjMyKTsKKy0gICAgICAgIGltcGxfdW5hcnkhKGYzMng0OiBzcXJ0X3Y0 ZjMyKTsKKy0gICAgICAgIGltcGxfdW5hcnkhKGYzMng4OiBzcXJ0X3Y4ZjMyKTsKKy0gICAgICAg IGltcGxfdW5hcnkhKGYzMngxNjogc3FydF92MTZmMzIpOworLQorLSAgICAgICAgaW1wbF91bmFy eSEoZjY0eDI6IHNxcnRfdjJmNjQpOworLSAgICAgICAgaW1wbF91bmFyeSEoZjY0eDQ6IHNxcnRf djRmNjQpOworLSAgICAgICAgaW1wbF91bmFyeSEoZjY0eDg6IHNxcnRfdjhmNjQpOworLSAgICB9 CistfQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVn ZW4vbWF0aC9mbG9hdC9zcXJ0ZS5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3Jj L2NvZGVnZW4vbWF0aC9mbG9hdC9zcXJ0ZS5ycworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cist LS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL21hdGgvZmxvYXQv c3FydGUucnMKKysrKyAvZGV2L251bGwKK0BAIC0xLDY3ICswLDAgQEAKKy0vLyEgVmVydGljYWwg ZmxvYXRpbmctcG9pbnQgYHNxcnRgCistIyFbYWxsb3codW51c2VkKV0KKy0KKy0vLyBGSVhNRSA2 NC1iaXQgMSBlbGVtIHZlY3RvcnMgc3FydGUKKy0KKy11c2UgY3JhdGU6Omxsdm06OnNpbWRfZnNx cnQ7CistdXNlIGNyYXRlOjoqOworLQorLXB1YihjcmF0ZSkgdHJhaXQgU3FydGUgeworLSAgICBm biBzcXJ0ZShzZWxmKSAtPiBTZWxmOworLX0KKy0KKy1nZW5fdW5hcnlfaW1wbF90YWJsZSEoU3Fy dGUsIHNxcnRlKTsKKy0KKy1jZmdfaWYhIHsKKy0gICAgaWYgI1tjZmcoYWxsKHRhcmdldF9hcmNo ID0gIng4Nl82NCIsIGZlYXR1cmUgPSAic2xlZWYtc3lzIikpXSB7CistICAgICAgICB1c2Ugc2xl ZWZfc3lzOjoqOworLSAgICAgICAgY2ZnX2lmISB7CistICAgICAgICAgICAgaWYgI1tjZmcodGFy Z2V0X2ZlYXR1cmUgPSAiYXZ4MiIpXSB7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYz MngyW3QgPT4gZjMyeDRdOiBTbGVlZl9zcXJ0ZjRfdTM1YXZ4MjEyOCk7CistICAgICAgICAgICAg ICAgIGltcGxfdW5hcnkhKGYzMngxNltoID0+IGYzMng4XTogU2xlZWZfc3FydGY4X3UzNWF2eDIp OworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4OFtoID0+IGY2NHg0XTogU2xlZWZf c3FydGQ0X3UzNWF2eDIpOworLQorLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4NDog U2xlZWZfc3FydGY0X3UzNWF2eDIxMjgpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShm MzJ4ODogU2xlZWZfc3FydGY4X3UzNWF2eDIpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5 IShmNjR4MjogU2xlZWZfc3FydGQyX3UzNWF2eDIxMjgpOworLSAgICAgICAgICAgICAgICBpbXBs X3VuYXJ5IShmNjR4NDogU2xlZWZfc3FydGQ0X3UzNWF2eDIpOworLSAgICAgICAgICAgIH0gZWxz ZSBpZiAjW2NmZyh0YXJnZXRfZmVhdHVyZSA9ICJhdngiKV0geworLSAgICAgICAgICAgICAgICBp bXBsX3VuYXJ5IShmMzJ4Mlt0ID0+IGYzMng0XTogU2xlZWZfc3FydGY0X3UzNXNzZTQpOworLSAg ICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4MTZbaCA9PiBmMzJ4OF06IFNsZWVmX3NxcnRm OF91MzVhdngpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4OFtoID0+IGY2NHg0 XTogU2xlZWZfc3FydGQ0X3UzNWF2eCk7CistCistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkh KGYzMng0OiBTbGVlZl9zcXJ0ZjRfdTM1c3NlNCk7CistICAgICAgICAgICAgICAgIGltcGxfdW5h cnkhKGYzMng4OiBTbGVlZl9zcXJ0ZjhfdTM1YXZ4KTsKKy0gICAgICAgICAgICAgICAgaW1wbF91 bmFyeSEoZjY0eDI6IFNsZWVmX3NxcnRkMl91MzVzc2U0KTsKKy0gICAgICAgICAgICAgICAgaW1w bF91bmFyeSEoZjY0eDQ6IFNsZWVmX3NxcnRkNF91MzVhdngpOworLSAgICAgICAgICAgIH0gZWxz ZSBpZiAjW2NmZyh0YXJnZXRfZmVhdHVyZSA9ICJzc2U0LjIiKV0geworLSAgICAgICAgICAgICAg ICBpbXBsX3VuYXJ5IShmMzJ4Mlt0ID0+IGYzMng0XTogU2xlZWZfc3FydGY0X3UzNXNzZTQpOwor LSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4MTZbcSA9PiBmMzJ4NF06IFNsZWVmX3Nx cnRmNF91MzVzc2U0KTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDhbcSA9PiBm NjR4Ml06IFNsZWVmX3NxcnRkMl91MzVzc2U0KTsKKy0KKy0gICAgICAgICAgICAgICAgaW1wbF91 bmFyeSEoZjMyeDQ6IFNsZWVmX3NxcnRmNF91MzVzc2U0KTsKKy0gICAgICAgICAgICAgICAgaW1w bF91bmFyeSEoZjMyeDhbaCA9PiBmMzJ4NF06IFNsZWVmX3NxcnRmNF91MzVzc2U0KTsKKy0gICAg ICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDI6IFNsZWVmX3NxcnRkMl91MzVzc2U0KTsKKy0g ICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDRbaCA9PiBmNjR4Ml06IFNsZWVmX3NxcnRk Ml91MzVzc2U0KTsKKy0gICAgICAgICAgICB9IGVsc2UgeworLSAgICAgICAgICAgICAgICBpbXBs X3VuYXJ5IShmMzJ4MltnXTogc2ltZF9mc3FydCk7CistICAgICAgICAgICAgICAgIGltcGxfdW5h cnkhKGYzMngxNltnXTogc2ltZF9mc3FydCk7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkh KGY2NHg4W2ddOiBzaW1kX2ZzcXJ0KTsKKy0KKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEo ZjMyeDRbZ106IHNpbWRfZnNxcnQpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4 OFtnXTogc2ltZF9mc3FydCk7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHgyW2dd OiBzaW1kX2ZzcXJ0KTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDRbZ106IHNp bWRfZnNxcnQpOworLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgfSBlbHNlIHsKKy0g ICAgICAgIGltcGxfdW5hcnkhKGYzMngyW2ddOiBzaW1kX2ZzcXJ0KTsKKy0gICAgICAgIGltcGxf dW5hcnkhKGYzMng0W2ddOiBzaW1kX2ZzcXJ0KTsKKy0gICAgICAgIGltcGxfdW5hcnkhKGYzMng4 W2ddOiBzaW1kX2ZzcXJ0KTsKKy0gICAgICAgIGltcGxfdW5hcnkhKGYzMngxNltnXTogc2ltZF9m c3FydCk7CistCistICAgICAgICBpbXBsX3VuYXJ5IShmNjR4MltnXTogc2ltZF9mc3FydCk7Cist ICAgICAgICBpbXBsX3VuYXJ5IShmNjR4NFtnXTogc2ltZF9mc3FydCk7CistICAgICAgICBpbXBs X3VuYXJ5IShmNjR4OFtnXTogc2ltZF9mc3FydCk7CistICAgIH0KKy19CitkaWZmIC0tZ2l0IGEv dGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9wb2ludGVyX3NpemVkX2lu dC5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vcG9pbnRlcl9z aXplZF9pbnQucnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkv cnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9wb2ludGVyX3NpemVkX2ludC5ycworKysrIC9k ZXYvbnVsbAorQEAgLTEsMjggKzAsMCBAQAorLS8vISBQcm92aWRlcyBgaXNpemVgIGFuZCBgdXNp emVgCistCistdXNlIGNmZ19pZjo6Y2ZnX2lmOworLQorLWNmZ19pZiEgeworLSAgICBpZiAjW2Nm Zyh0YXJnZXRfcG9pbnRlcl93aWR0aCA9ICI4IildIHsKKy0gICAgICAgIHB1YihjcmF0ZSkgdHlw ZSBpc2l6ZV8gPSBpODsKKy0gICAgICAgIHB1YihjcmF0ZSkgdHlwZSB1c2l6ZV8gPSB1ODsKKy0g ICAgfSBlbHNlIGlmICNbY2ZnKHRhcmdldF9wb2ludGVyX3dpZHRoID0gIjE2IildIHsKKy0gICAg ICAgIHB1YihjcmF0ZSkgdHlwZSBpc2l6ZV8gPSBpMTY7CistICAgICAgICBwdWIoY3JhdGUpIHR5 cGUgdXNpemVfID0gdTE2OworLSAgICB9IGVsc2UgaWYgI1tjZmcodGFyZ2V0X3BvaW50ZXJfd2lk dGggPSAiMzIiKV0geworLSAgICAgICAgcHViKGNyYXRlKSB0eXBlIGlzaXplXyA9IGkzMjsKKy0g ICAgICAgIHB1YihjcmF0ZSkgdHlwZSB1c2l6ZV8gPSB1MzI7CistCistICAgIH0gZWxzZSBpZiAj W2NmZyh0YXJnZXRfcG9pbnRlcl93aWR0aCA9ICI2NCIpXSB7CistICAgICAgICBwdWIoY3JhdGUp IHR5cGUgaXNpemVfID0gaTY0OworLSAgICAgICAgcHViKGNyYXRlKSB0eXBlIHVzaXplXyA9IHU2 NDsKKy0gICAgfSBlbHNlIGlmICNbY2ZnKHRhcmdldF9wb2ludGVyX3dpZHRoID0gIjY0IildIHsK Ky0gICAgICAgIHB1YihjcmF0ZSkgdHlwZSBpc2l6ZV8gPSBpNjQ7CistICAgICAgICBwdWIoY3Jh dGUpIHR5cGUgdXNpemVfID0gdTY0OworLSAgICB9IGVsc2UgaWYgI1tjZmcodGFyZ2V0X3BvaW50 ZXJfd2lkdGggPSAiMTI4IildIHsKKy0gICAgICAgIHB1YihjcmF0ZSkgdHlwZSBpc2l6ZV8gPSBp MTI4OworLSAgICAgICAgcHViKGNyYXRlKSB0eXBlIHVzaXplXyA9IHUxMjg7CistICAgIH0gZWxz ZSB7CistICAgICAgICBjb21waWxlX2Vycm9yISgidW5zdXBwb3J0ZWQgdGFyZ2V0X3BvaW50ZXJf d2lkdGgiKTsKKy0gICAgfQorLX0KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tl ZF9zaW1kL3NyYy9jb2RlZ2VuL3JlZHVjdGlvbnMucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tl ZF9zaW1kL3NyYy9jb2RlZ2VuL3JlZHVjdGlvbnMucnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0 NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9yZWR1Y3Rp b25zLnJzCisrKysgL2Rldi9udWxsCitAQCAtMSwxICswLDAgQEAKKy1wdWIoY3JhdGUpIG1vZCBt YXNrOworZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVn ZW4vcmVkdWN0aW9ucy9tYXNrLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMv Y29kZWdlbi9yZWR1Y3Rpb25zL21hc2sucnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0t IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9yZWR1Y3Rpb25zL21h c2sucnMKKysrKyAvZGV2L251bGwKK0BAIC0xLDY5ICswLDAgQEAKKy0vLyEgQ29kZSBnZW5lcmF0 aW9uIHdvcmthcm91bmQgZm9yIGBhbGwoKWAgbWFzayBob3Jpem9udGFsIHJlZHVjdGlvbi4KKy0v LyEKKy0vLyEgV29ya3MgYXJvdW5kIFtMTFZNIGJ1ZyAzNjcwMl0uCistLy8hCistLy8hIFtMTFZN IGJ1ZyAzNjcwMl06IGh0dHBzOi8vYnVncy5sbHZtLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzY3MDIK Ky0jIVthbGxvdyh1bnVzZWRfbWFjcm9zKV0KKy0KKy11c2UgY3JhdGU6Oio7CistCistcHViKGNy YXRlKSB0cmFpdCBBbGw6IGNyYXRlOjptYXJrZXI6OlNpemVkIHsKKy0gICAgdW5zYWZlIGZuIGFs bChzZWxmKSAtPiBib29sOworLX0KKy0KKy1wdWIoY3JhdGUpIHRyYWl0IEFueTogY3JhdGU6Om1h cmtlcjo6U2l6ZWQgeworLSAgICB1bnNhZmUgZm4gYW55KHNlbGYpIC0+IGJvb2w7CistfQorLQor LSNbbWFjcm9fdXNlXQorLW1vZCBmYWxsYmFja19pbXBsOworLQorLWNmZ19pZiEgeworLSAgICBp ZiAjW2NmZyhhbnkodGFyZ2V0X2FyY2ggPSAieDg2IiwgdGFyZ2V0X2FyY2ggPSAieDg2XzY0Iikp XSB7CistICAgICAgICAjW21hY3JvX3VzZV0KKy0gICAgICAgIG1vZCB4ODY7CistICAgIH0gZWxz ZSBpZiAjW2NmZyhhbGwodGFyZ2V0X2FyY2ggPSAiYXJtIiwgdGFyZ2V0X2ZlYXR1cmUgPSAidjci LAorLSAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldF9mZWF0dXJlID0gIm5lb24iLAorLSAg ICAgICAgICAgICAgICAgICAgICAgIGFueShmZWF0dXJlID0gImNvcmVfYXJjaCIsIGxpYmNvcmVf bmVvbikpKV0geworLSAgICAgICAgI1ttYWNyb191c2VdCistICAgICAgICBtb2QgYXJtOworLSAg ICB9IGVsc2UgaWYgI1tjZmcoYWxsKHRhcmdldF9hcmNoID0gImFhcmNoNjQiLCB0YXJnZXRfZmVh dHVyZSA9ICJuZW9uIikpXSB7CistICAgICAgICAjW21hY3JvX3VzZV0KKy0gICAgICAgIG1vZCBh YXJjaDY0OworLSAgICB9IGVsc2UgeworLSAgICAgICAgI1ttYWNyb191c2VdCistICAgICAgICBt b2QgZmFsbGJhY2s7CistICAgIH0KKy19CistCistaW1wbF9tYXNrX3JlZHVjdGlvbnMhKG04eDIp OworLWltcGxfbWFza19yZWR1Y3Rpb25zIShtOHg0KTsKKy1pbXBsX21hc2tfcmVkdWN0aW9ucyEo bTh4OCk7CistaW1wbF9tYXNrX3JlZHVjdGlvbnMhKG04eDE2KTsKKy1pbXBsX21hc2tfcmVkdWN0 aW9ucyEobTh4MzIpOworLWltcGxfbWFza19yZWR1Y3Rpb25zIShtOHg2NCk7CistCistaW1wbF9t YXNrX3JlZHVjdGlvbnMhKG0xNngyKTsKKy1pbXBsX21hc2tfcmVkdWN0aW9ucyEobTE2eDQpOwor LWltcGxfbWFza19yZWR1Y3Rpb25zIShtMTZ4OCk7CistaW1wbF9tYXNrX3JlZHVjdGlvbnMhKG0x NngxNik7CistaW1wbF9tYXNrX3JlZHVjdGlvbnMhKG0xNngzMik7CistCistaW1wbF9tYXNrX3Jl ZHVjdGlvbnMhKG0zMngyKTsKKy1pbXBsX21hc2tfcmVkdWN0aW9ucyEobTMyeDQpOworLWltcGxf bWFza19yZWR1Y3Rpb25zIShtMzJ4OCk7CistaW1wbF9tYXNrX3JlZHVjdGlvbnMhKG0zMngxNik7 CistCistLy8gRklYTUU6IDY0LWJpdCBzaW5nbGUgZWxlbWVudCB2ZWN0b3IKKy0vLyBpbXBsX21h c2tfcmVkdWN0aW9ucyEobTY0eDEpOworLWltcGxfbWFza19yZWR1Y3Rpb25zIShtNjR4Mik7Cist aW1wbF9tYXNrX3JlZHVjdGlvbnMhKG02NHg0KTsKKy1pbXBsX21hc2tfcmVkdWN0aW9ucyEobTY0 eDgpOworLQorLWltcGxfbWFza19yZWR1Y3Rpb25zIShtMTI4eDEpOworLWltcGxfbWFza19yZWR1 Y3Rpb25zIShtMTI4eDIpOworLWltcGxfbWFza19yZWR1Y3Rpb25zIShtMTI4eDQpOworLQorLWlt cGxfbWFza19yZWR1Y3Rpb25zIShtc2l6ZXgyKTsKKy1pbXBsX21hc2tfcmVkdWN0aW9ucyEobXNp emV4NCk7CistaW1wbF9tYXNrX3JlZHVjdGlvbnMhKG1zaXpleDgpOworZGlmZiAtLWdpdCBhL3Ro aXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vcmVkdWN0aW9ucy9tYXNrL2Fh cmNoNjQucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3JlZHVj dGlvbnMvbWFzay9hYXJjaDY0LnJzCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3Ro aXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vcmVkdWN0aW9ucy9tYXNrL2Fh cmNoNjQucnMKKysrKyAvZGV2L251bGwKK0BAIC0xLDgxICswLDAgQEAKKy0vLyEgTWFzayByZWR1 Y3Rpb25zIGltcGxlbWVudGF0aW9uIGZvciBgYWFyY2g2NGAgdGFyZ2V0cworLQorLS8vLyAxMjgt Yml0IHdpZGUgdmVjdG9ycworLW1hY3JvX3J1bGVzISBhYXJjaDY0XzEyOF9uZW9uX2ltcGwgewor LSAgICAoJGlkOmlkZW50LCAkdm1pbjppZGVudCwgJHZtYXg6aWRlbnQpID0+IHsKKy0gICAgICAg IGltcGwgQWxsIGZvciAkaWQgeworLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAg ICNbdGFyZ2V0X2ZlYXR1cmUoZW5hYmxlID0gIm5lb24iKV0KKy0gICAgICAgICAgICB1bnNhZmUg Zm4gYWxsKHNlbGYpIC0+IGJvb2wgeworLSAgICAgICAgICAgICAgICB1c2UgY3JhdGU6OmFyY2g6 OmFhcmNoNjQ6OiR2bWluOworLSAgICAgICAgICAgICAgICAkdm1pbihjcmF0ZTo6bWVtOjp0cmFu c211dGUoc2VsZikpICE9IDAKKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgICAgICBp bXBsIEFueSBmb3IgJGlkIHsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICAj W3RhcmdldF9mZWF0dXJlKGVuYWJsZSA9ICJuZW9uIildCistICAgICAgICAgICAgdW5zYWZlIGZu IGFueShzZWxmKSAtPiBib29sIHsKKy0gICAgICAgICAgICAgICAgdXNlIGNyYXRlOjphcmNoOjph YXJjaDY0Ojokdm1heDsKKy0gICAgICAgICAgICAgICAgJHZtYXgoY3JhdGU6Om1lbTo6dHJhbnNt dXRlKHNlbGYpKSAhPSAwCistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICB9OworLX0K Ky0KKy0vLy8gNjQtYml0IHdpZGUgdmVjdG9ycworLW1hY3JvX3J1bGVzISBhYXJjaDY0XzY0X25l b25faW1wbCB7CistICAgICgkaWQ6aWRlbnQsICR2ZWMxMjg6aWRlbnQpID0+IHsKKy0gICAgICAg IGltcGwgQWxsIGZvciAkaWQgeworLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAg ICNbdGFyZ2V0X2ZlYXR1cmUoZW5hYmxlID0gIm5lb24iKV0KKy0gICAgICAgICAgICB1bnNhZmUg Zm4gYWxsKHNlbGYpIC0+IGJvb2wgeworLSAgICAgICAgICAgICAgICAvLyBEdXBsaWNhdGVzIHRo ZSA2NC1iaXQgdmVjdG9yIGludG8gYSAxMjgtYml0IG9uZSBhbmQKKy0gICAgICAgICAgICAgICAg Ly8gY2FsbHMgYWxsIG9uIHRoYXQuCistICAgICAgICAgICAgICAgIHVuaW9uIFUgeworLSAgICAg ICAgICAgICAgICAgICAgaGFsdmVzOiAoJGlkLCAkaWQpLAorLSAgICAgICAgICAgICAgICAgICAg dmVjOiAkdmVjMTI4LAorLSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgIFUgeyBo YWx2ZXM6IChzZWxmLCBzZWxmKSB9LnZlYy5hbGwoKQorLSAgICAgICAgICAgIH0KKy0gICAgICAg IH0KKy0gICAgICAgIGltcGwgQW55IGZvciAkaWQgeworLSAgICAgICAgICAgICNbaW5saW5lXQor LSAgICAgICAgICAgICNbdGFyZ2V0X2ZlYXR1cmUoZW5hYmxlID0gIm5lb24iKV0KKy0gICAgICAg ICAgICB1bnNhZmUgZm4gYW55KHNlbGYpIC0+IGJvb2wgeworLSAgICAgICAgICAgICAgICB1bmlv biBVIHsKKy0gICAgICAgICAgICAgICAgICAgIGhhbHZlczogKCRpZCwgJGlkKSwKKy0gICAgICAg ICAgICAgICAgICAgIHZlYzogJHZlYzEyOCwKKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAg ICAgICAgICBVIHsgaGFsdmVzOiAoc2VsZiwgc2VsZikgfS52ZWMuYW55KCkKKy0gICAgICAgICAg ICB9CistICAgICAgICB9CistICAgIH07CistfQorLQorLS8vLyBNYXNrIHJlZHVjdGlvbiBpbXBs ZW1lbnRhdGlvbiBmb3IgYGFhcmNoNjRgIHRhcmdldHMKKy1tYWNyb19ydWxlcyEgaW1wbF9tYXNr X3JlZHVjdGlvbnMgeworLSAgICAvLyA2NC1iaXQgd2lkZSBtYXNrcworLSAgICAobTh4OCkgPT4g eworLSAgICAgICAgYWFyY2g2NF82NF9uZW9uX2ltcGwhKG04eDgsIG04eDE2KTsKKy0gICAgfTsK Ky0gICAgKG0xNng0KSA9PiB7CistICAgICAgICBhYXJjaDY0XzY0X25lb25faW1wbCEobTE2eDQs IG0xNng4KTsKKy0gICAgfTsKKy0gICAgKG0zMngyKSA9PiB7CistICAgICAgICBhYXJjaDY0XzY0 X25lb25faW1wbCEobTMyeDIsIG0zMng0KTsKKy0gICAgfTsKKy0gICAgLy8gMTI4LWJpdCB3aWRl IG1hc2tzCistICAgIChtOHgxNikgPT4geworLSAgICAgICAgYWFyY2g2NF8xMjhfbmVvbl9pbXBs IShtOHgxNiwgdm1pbnZxX3U4LCB2bWF4dnFfdTgpOworLSAgICB9OworLSAgICAobTE2eDgpID0+ IHsKKy0gICAgICAgIGFhcmNoNjRfMTI4X25lb25faW1wbCEobTE2eDgsIHZtaW52cV91MTYsIHZt YXh2cV91MTYpOworLSAgICB9OworLSAgICAobTMyeDQpID0+IHsKKy0gICAgICAgIGFhcmNoNjRf MTI4X25lb25faW1wbCEobTMyeDQsIHZtaW52cV91MzIsIHZtYXh2cV91MzIpOworLSAgICB9Owor LSAgICAvLyBGYWxsYmFjayB0byBMTFZNJ3MgZGVmYXVsdCBjb2RlLWdlbmVyYXRpb246CistICAg ICgkaWQ6aWRlbnQpID0+IHsKKy0gICAgICAgIGZhbGxiYWNrX2ltcGwhKCRpZCk7CistICAgIH07 CistfQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVn ZW4vcmVkdWN0aW9ucy9tYXNrL2FybS5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQv c3JjL2NvZGVnZW4vcmVkdWN0aW9ucy9tYXNrL2FybS5ycworZGVsZXRlZCBmaWxlIG1vZGUgMTAw NjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3JlZHVj dGlvbnMvbWFzay9hcm0ucnMKKysrKyAvZGV2L251bGwKK0BAIC0xLDU2ICswLDAgQEAKKy0vLyEg TWFzayByZWR1Y3Rpb25zIGltcGxlbWVudGF0aW9uIGZvciBgYXJtYCB0YXJnZXRzCistCistLy8v IEltcGxlbWVudGF0aW9uIGZvciBBUk0gKyB2NyArIE5FT04gZm9yIDY0LWJpdCBvciAxMjgtYml0 IHdpZGUgdmVjdG9ycyB3aXRoCistLy8vIG1vcmUgdGhhbiB0d28gZWxlbWVudHMuCistbWFjcm9f cnVsZXMhIGFybV8xMjhfdjdfbmVvbl9pbXBsIHsKKy0gICAgKCRpZDppZGVudCwgJGhhbGY6aWRl bnQsICR2cG1pbjppZGVudCwgJHZwbWF4OmlkZW50KSA9PiB7CistICAgICAgICBpbXBsIEFsbCBm b3IgJGlkIHsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICAjW3RhcmdldF9m ZWF0dXJlKGVuYWJsZSA9ICJ2NyxuZW9uIildCistICAgICAgICAgICAgdW5zYWZlIGZuIGFsbChz ZWxmKSAtPiBib29sIHsKKy0gICAgICAgICAgICAgICAgdXNlIGNyYXRlOjphcmNoOjphcm06OiR2 cG1pbjsKKy0gICAgICAgICAgICAgICAgdXNlIGNyYXRlOjptZW06OnRyYW5zbXV0ZTsKKy0gICAg ICAgICAgICAgICAgdW5pb24gVSB7CistICAgICAgICAgICAgICAgICAgICBoYWx2ZXM6ICgkaGFs ZiwgJGhhbGYpLAorLSAgICAgICAgICAgICAgICAgICAgdmVjOiAkaWQsCistICAgICAgICAgICAg ICAgIH0KKy0gICAgICAgICAgICAgICAgbGV0IGhhbHZlcyA9IFUgeyB2ZWM6IHNlbGYgfS5oYWx2 ZXM7CistICAgICAgICAgICAgICAgIGxldCBoOiAkaGFsZiA9IHRyYW5zbXV0ZSgkdnBtaW4odHJh bnNtdXRlKGhhbHZlcy4wKSwgdHJhbnNtdXRlKGhhbHZlcy4xKSkpOworLSAgICAgICAgICAgICAg ICBoLmFsbCgpCistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICAgICAgaW1wbCBBbnkg Zm9yICRpZCB7CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgI1t0YXJnZXRf ZmVhdHVyZShlbmFibGUgPSAidjcsbmVvbiIpXQorLSAgICAgICAgICAgIHVuc2FmZSBmbiBhbnko c2VsZikgLT4gYm9vbCB7CistICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6YXJjaDo6YXJtOjok dnBtYXg7CistICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6bWVtOjp0cmFuc211dGU7CistICAg ICAgICAgICAgICAgIHVuaW9uIFUgeworLSAgICAgICAgICAgICAgICAgICAgaGFsdmVzOiAoJGhh bGYsICRoYWxmKSwKKy0gICAgICAgICAgICAgICAgICAgIHZlYzogJGlkLAorLSAgICAgICAgICAg ICAgICB9CistICAgICAgICAgICAgICAgIGxldCBoYWx2ZXMgPSBVIHsgdmVjOiBzZWxmIH0uaGFs dmVzOworLSAgICAgICAgICAgICAgICBsZXQgaDogJGhhbGYgPSB0cmFuc211dGUoJHZwbWF4KHRy YW5zbXV0ZShoYWx2ZXMuMCksIHRyYW5zbXV0ZShoYWx2ZXMuMSkpKTsKKy0gICAgICAgICAgICAg ICAgaC5hbnkoKQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgfTsKKy19CistCist Ly8vIE1hc2sgcmVkdWN0aW9uIGltcGxlbWVudGF0aW9uIGZvciBgYXJtYCB0YXJnZXRzCistbWFj cm9fcnVsZXMhIGltcGxfbWFza19yZWR1Y3Rpb25zIHsKKy0gICAgLy8gMTI4LWJpdCB3aWRlIG1h c2tzCistICAgIChtOHgxNikgPT4geworLSAgICAgICAgYXJtXzEyOF92N19uZW9uX2ltcGwhKG04 eDE2LCBtOHg4LCB2cG1pbl91OCwgdnBtYXhfdTgpOworLSAgICB9OworLSAgICAobTE2eDgpID0+ IHsKKy0gICAgICAgIGFybV8xMjhfdjdfbmVvbl9pbXBsIShtMTZ4OCwgbTE2eDQsIHZwbWluX3Ux NiwgdnBtYXhfdTE2KTsKKy0gICAgfTsKKy0gICAgKG0zMng0KSA9PiB7CistICAgICAgICBhcm1f MTI4X3Y3X25lb25faW1wbCEobTMyeDQsIG0zMngyLCB2cG1pbl91MzIsIHZwbWF4X3UzMik7Cist ICAgIH07CistICAgIC8vIEZhbGxiYWNrIHRvIExMVk0ncyBkZWZhdWx0IGNvZGUtZ2VuZXJhdGlv bjoKKy0gICAgKCRpZDppZGVudCkgPT4geworLSAgICAgICAgZmFsbGJhY2tfaW1wbCEoJGlkKTsK Ky0gICAgfTsKKy19CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9z cmMvY29kZWdlbi9yZWR1Y3Rpb25zL21hc2svZmFsbGJhY2sucnMgYi90aGlyZF9wYXJ0eS9ydXN0 L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3JlZHVjdGlvbnMvbWFzay9mYWxsYmFjay5ycworZGVs ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1k L3NyYy9jb2RlZ2VuL3JlZHVjdGlvbnMvbWFzay9mYWxsYmFjay5ycworKysrIC9kZXYvbnVsbAor QEAgLTEsOCArMCwwIEBACistLy8hIERlZmF1bHQgbWFzayByZWR1Y3Rpb24gaW1wbGVtZW50YXRp b25zLgorLQorLS8vLyBEZWZhdWx0IG1hc2sgcmVkdWN0aW9uIGltcGxlbWVudGF0aW9uCistbWFj cm9fcnVsZXMhIGltcGxfbWFza19yZWR1Y3Rpb25zIHsKKy0gICAgKCRpZDppZGVudCkgPT4gewor LSAgICAgICAgZmFsbGJhY2tfaW1wbCEoJGlkKTsKKy0gICAgfTsKKy19CitkaWZmIC0tZ2l0IGEv dGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9yZWR1Y3Rpb25zL21hc2sv ZmFsbGJhY2tfaW1wbC5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVn ZW4vcmVkdWN0aW9ucy9tYXNrL2ZhbGxiYWNrX2ltcGwucnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEw MDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9yZWR1 Y3Rpb25zL21hc2svZmFsbGJhY2tfaW1wbC5ycworKysrIC9kZXYvbnVsbAorQEAgLTEsMjM3ICsw LDAgQEAKKy0vLyEgRGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBvZiBhIG1hc2sgcmVkdWN0aW9uIGZv ciBhbnkgdGFyZ2V0LgorLQorLW1hY3JvX3J1bGVzISBmYWxsYmFja190b19vdGhlcl9pbXBsIHsK Ky0gICAgKCRpZDppZGVudCwgJG90aGVyOmlkZW50KSA9PiB7CistICAgICAgICBpbXBsIEFsbCBm b3IgJGlkIHsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICB1bnNhZmUgZm4g YWxsKHNlbGYpIC0+IGJvb2wgeworLSAgICAgICAgICAgICAgICBsZXQgbTogJG90aGVyID0gY3Jh dGU6Om1lbTo6dHJhbnNtdXRlKHNlbGYpOworLSAgICAgICAgICAgICAgICBtLmFsbCgpCistICAg ICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICAgICAgaW1wbCBBbnkgZm9yICRpZCB7CistICAg ICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgdW5zYWZlIGZuIGFueShzZWxmKSAtPiBi b29sIHsKKy0gICAgICAgICAgICAgICAgbGV0IG06ICRvdGhlciA9IGNyYXRlOjptZW06OnRyYW5z bXV0ZShzZWxmKTsKKy0gICAgICAgICAgICAgICAgbS5hbnkoKQorLSAgICAgICAgICAgIH0KKy0g ICAgICAgIH0KKy0gICAgfTsKKy19CistCistLy8vIEZhbGxiYWNrIGltcGxlbWVudGF0aW9uLgor LW1hY3JvX3J1bGVzISBmYWxsYmFja19pbXBsIHsKKy0gICAgLy8gMTYtYml0IHdpZGUgbWFza3M6 CistICAgIChtOHgyKSA9PiB7CistICAgICAgICBpbXBsIEFsbCBmb3IgbTh4MiB7CistICAgICAg ICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgdW5zYWZlIGZuIGFsbChzZWxmKSAtPiBib29s IHsKKy0gICAgICAgICAgICAgICAgbGV0IGk6IHUxNiA9IGNyYXRlOjptZW06OnRyYW5zbXV0ZShz ZWxmKTsKKy0gICAgICAgICAgICAgICAgaSA9PSB1MTY6Om1heF92YWx1ZSgpCistICAgICAgICAg ICAgfQorLSAgICAgICAgfQorLSAgICAgICAgaW1wbCBBbnkgZm9yIG04eDIgeworLSAgICAgICAg ICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIHVuc2FmZSBmbiBhbnkoc2VsZikgLT4gYm9vbCB7 CistICAgICAgICAgICAgICAgIGxldCBpOiB1MTYgPSBjcmF0ZTo6bWVtOjp0cmFuc211dGUoc2Vs Zik7CistICAgICAgICAgICAgICAgIGkgIT0gMAorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0K Ky0gICAgfTsKKy0gICAgLy8gMzItYml0IHdpZGUgbWFza3MKKy0gICAgKG04eDQpID0+IHsKKy0g ICAgICAgIGltcGwgQWxsIGZvciBtOHg0IHsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAg ICAgICAgICB1bnNhZmUgZm4gYWxsKHNlbGYpIC0+IGJvb2wgeworLSAgICAgICAgICAgICAgICBs ZXQgaTogdTMyID0gY3JhdGU6Om1lbTo6dHJhbnNtdXRlKHNlbGYpOworLSAgICAgICAgICAgICAg ICBpID09IHUzMjo6bWF4X3ZhbHVlKCkKKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAg ICAgICBpbXBsIEFueSBmb3IgbTh4NCB7CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAg ICAgICAgdW5zYWZlIGZuIGFueShzZWxmKSAtPiBib29sIHsKKy0gICAgICAgICAgICAgICAgbGV0 IGk6IHUzMiA9IGNyYXRlOjptZW06OnRyYW5zbXV0ZShzZWxmKTsKKy0gICAgICAgICAgICAgICAg aSAhPSAwCistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICB9OworLSAgICAobTE2eDIp ID0+IHsKKy0gICAgICAgIGZhbGxiYWNrX3RvX290aGVyX2ltcGwhKG0xNngyLCBtOHg0KTsKKy0g ICAgfTsKKy0gICAgLy8gNjQtYml0IHdpZGUgbWFza3M6CistICAgIChtOHg4KSA9PiB7CistICAg ICAgICBpbXBsIEFsbCBmb3IgbTh4OCB7CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAg ICAgICAgdW5zYWZlIGZuIGFsbChzZWxmKSAtPiBib29sIHsKKy0gICAgICAgICAgICAgICAgbGV0 IGk6IHU2NCA9IGNyYXRlOjptZW06OnRyYW5zbXV0ZShzZWxmKTsKKy0gICAgICAgICAgICAgICAg aSA9PSB1NjQ6Om1heF92YWx1ZSgpCistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICAg ICAgaW1wbCBBbnkgZm9yIG04eDggeworLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAg ICAgIHVuc2FmZSBmbiBhbnkoc2VsZikgLT4gYm9vbCB7CistICAgICAgICAgICAgICAgIGxldCBp OiB1NjQgPSBjcmF0ZTo6bWVtOjp0cmFuc211dGUoc2VsZik7CistICAgICAgICAgICAgICAgIGkg IT0gMAorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgfTsKKy0gICAgKG0xNng0KSA9 PiB7CistICAgICAgICBmYWxsYmFja190b19vdGhlcl9pbXBsIShtMTZ4NCwgbTh4OCk7CistICAg IH07CistICAgIChtMzJ4MikgPT4geworLSAgICAgICAgZmFsbGJhY2tfdG9fb3RoZXJfaW1wbCEo bTMyeDIsIG0xNng0KTsKKy0gICAgfTsKKy0gICAgLy8gRklYTUU6IDY0eDEgbWF4aworLSAgICAv LyAxMjgtYml0IHdpZGUgbWFza3M6CistICAgIChtOHgxNikgPT4geworLSAgICAgICAgaW1wbCBB bGwgZm9yIG04eDE2IHsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICB1bnNh ZmUgZm4gYWxsKHNlbGYpIC0+IGJvb2wgeworLSAgICAgICAgICAgICAgICBsZXQgaTogdTEyOCA9 IGNyYXRlOjptZW06OnRyYW5zbXV0ZShzZWxmKTsKKy0gICAgICAgICAgICAgICAgaSA9PSB1MTI4 OjptYXhfdmFsdWUoKQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgICAgIGltcGwg QW55IGZvciBtOHgxNiB7CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgdW5z YWZlIGZuIGFueShzZWxmKSAtPiBib29sIHsKKy0gICAgICAgICAgICAgICAgbGV0IGk6IHUxMjgg PSBjcmF0ZTo6bWVtOjp0cmFuc211dGUoc2VsZik7CistICAgICAgICAgICAgICAgIGkgIT0gMAor LSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgfTsKKy0gICAgKG0xNng4KSA9PiB7Cist ICAgICAgICBmYWxsYmFja190b19vdGhlcl9pbXBsIShtMTZ4OCwgbTh4MTYpOworLSAgICB9Owor LSAgICAobTMyeDQpID0+IHsKKy0gICAgICAgIGZhbGxiYWNrX3RvX290aGVyX2ltcGwhKG0zMng0 LCBtMTZ4OCk7CistICAgIH07CistICAgIChtNjR4MikgPT4geworLSAgICAgICAgZmFsbGJhY2tf dG9fb3RoZXJfaW1wbCEobTY0eDIsIG0zMng0KTsKKy0gICAgfTsKKy0gICAgKG0xMjh4MSkgPT4g eworLSAgICAgICAgZmFsbGJhY2tfdG9fb3RoZXJfaW1wbCEobTEyOHgxLCBtNjR4Mik7CistICAg IH07CistICAgIC8vIDI1Ni1iaXQgd2lkZSBtYXNrcworLSAgICAobTh4MzIpID0+IHsKKy0gICAg ICAgIGltcGwgQWxsIGZvciBtOHgzMiB7CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAg ICAgICAgdW5zYWZlIGZuIGFsbChzZWxmKSAtPiBib29sIHsKKy0gICAgICAgICAgICAgICAgbGV0 IGk6IFt1MTI4OyAyXSA9IGNyYXRlOjptZW06OnRyYW5zbXV0ZShzZWxmKTsKKy0gICAgICAgICAg ICAgICAgbGV0IG86IFt1MTI4OyAyXSA9IFt1MTI4OjptYXhfdmFsdWUoKTsgMl07CistICAgICAg ICAgICAgICAgIGkgPT0gbworLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgICAgIGlt cGwgQW55IGZvciBtOHgzMiB7CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAg dW5zYWZlIGZuIGFueShzZWxmKSAtPiBib29sIHsKKy0gICAgICAgICAgICAgICAgbGV0IGk6IFt1 MTI4OyAyXSA9IGNyYXRlOjptZW06OnRyYW5zbXV0ZShzZWxmKTsKKy0gICAgICAgICAgICAgICAg bGV0IG86IFt1MTI4OyAyXSA9IFswOyAyXTsKKy0gICAgICAgICAgICAgICAgaSAhPSBvCistICAg ICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICB9OworLSAgICAobTE2eDE2KSA9PiB7CistICAg ICAgICBmYWxsYmFja190b19vdGhlcl9pbXBsIShtMTZ4MTYsIG04eDMyKTsKKy0gICAgfTsKKy0g ICAgKG0zMng4KSA9PiB7CistICAgICAgICBmYWxsYmFja190b19vdGhlcl9pbXBsIShtMzJ4OCwg bTE2eDE2KTsKKy0gICAgfTsKKy0gICAgKG02NHg0KSA9PiB7CistICAgICAgICBmYWxsYmFja190 b19vdGhlcl9pbXBsIShtNjR4NCwgbTMyeDgpOworLSAgICB9OworLSAgICAobTEyOHgyKSA9PiB7 CistICAgICAgICBmYWxsYmFja190b19vdGhlcl9pbXBsIShtMTI4eDIsIG02NHg0KTsKKy0gICAg fTsKKy0gICAgLy8gNTEyLWJpdCB3aWRlIG1hc2tzCistICAgIChtOHg2NCkgPT4geworLSAgICAg ICAgaW1wbCBBbGwgZm9yIG04eDY0IHsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAg ICAgICB1bnNhZmUgZm4gYWxsKHNlbGYpIC0+IGJvb2wgeworLSAgICAgICAgICAgICAgICBsZXQg aTogW3UxMjg7IDRdID0gY3JhdGU6Om1lbTo6dHJhbnNtdXRlKHNlbGYpOworLSAgICAgICAgICAg ICAgICBsZXQgbzogW3UxMjg7IDRdID0gW3UxMjg6Om1heF92YWx1ZSgpOyA0XTsKKy0gICAgICAg ICAgICAgICAgaSA9PSBvCistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICAgICAgaW1w bCBBbnkgZm9yIG04eDY0IHsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICB1 bnNhZmUgZm4gYW55KHNlbGYpIC0+IGJvb2wgeworLSAgICAgICAgICAgICAgICBsZXQgaTogW3Ux Mjg7IDRdID0gY3JhdGU6Om1lbTo6dHJhbnNtdXRlKHNlbGYpOworLSAgICAgICAgICAgICAgICBs ZXQgbzogW3UxMjg7IDRdID0gWzA7IDRdOworLSAgICAgICAgICAgICAgICBpICE9IG8KKy0gICAg ICAgICAgICB9CistICAgICAgICB9CistICAgIH07CistICAgIChtMTZ4MzIpID0+IHsKKy0gICAg ICAgIGZhbGxiYWNrX3RvX290aGVyX2ltcGwhKG0xNngzMiwgbTh4NjQpOworLSAgICB9OworLSAg ICAobTMyeDE2KSA9PiB7CistICAgICAgICBmYWxsYmFja190b19vdGhlcl9pbXBsIShtMzJ4MTYs IG0xNngzMik7CistICAgIH07CistICAgIChtNjR4OCkgPT4geworLSAgICAgICAgZmFsbGJhY2tf dG9fb3RoZXJfaW1wbCEobTY0eDgsIG0zMngxNik7CistICAgIH07CistICAgIChtMTI4eDQpID0+ IHsKKy0gICAgICAgIGZhbGxiYWNrX3RvX290aGVyX2ltcGwhKG0xMjh4NCwgbTY0eDgpOworLSAg ICB9OworLSAgICAvLyBNYXNrcyB3aXRoIHBvaW50ZXItc2l6ZWQgZWxlbWVudHM2NAorLSAgICAo bXNpemV4MikgPT4geworLSAgICAgICAgY2ZnX2lmISB7CistICAgICAgICAgICAgaWYgI1tjZmco dGFyZ2V0X3BvaW50ZXJfd2lkdGggPSAiNjQiKV0geworLSAgICAgICAgICAgICAgICBmYWxsYmFj a190b19vdGhlcl9pbXBsIShtc2l6ZXgyLCBtNjR4Mik7CistICAgICAgICAgICAgfSBlbHNlIGlm ICNbY2ZnKHRhcmdldF9wb2ludGVyX3dpZHRoID0gIjMyIildIHsKKy0gICAgICAgICAgICAgICAg ZmFsbGJhY2tfdG9fb3RoZXJfaW1wbCEobXNpemV4MiwgbTMyeDIpOworLSAgICAgICAgICAgIH0g ZWxzZSB7CistICAgICAgICAgICAgICAgIGNvbXBpbGVfZXJyb3IhKCJ1bnN1cHBvcnRlZCB0YXJn ZXRfcG9pbnRlcl93aWR0aCIpOworLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgfTsK Ky0gICAgKG1zaXpleDQpID0+IHsKKy0gICAgICAgIGNmZ19pZiEgeworLSAgICAgICAgICAgIGlm ICNbY2ZnKHRhcmdldF9wb2ludGVyX3dpZHRoID0gIjY0IildIHsKKy0gICAgICAgICAgICAgICAg ZmFsbGJhY2tfdG9fb3RoZXJfaW1wbCEobXNpemV4NCwgbTY0eDQpOworLSAgICAgICAgICAgIH0g ZWxzZSBpZiAjW2NmZyh0YXJnZXRfcG9pbnRlcl93aWR0aCA9ICIzMiIpXSB7CistICAgICAgICAg ICAgICAgIGZhbGxiYWNrX3RvX290aGVyX2ltcGwhKG1zaXpleDQsIG0zMng0KTsKKy0gICAgICAg ICAgICB9IGVsc2UgeworLSAgICAgICAgICAgICAgICBjb21waWxlX2Vycm9yISgidW5zdXBwb3J0 ZWQgdGFyZ2V0X3BvaW50ZXJfd2lkdGgiKTsKKy0gICAgICAgICAgICB9CistICAgICAgICB9Cist ICAgIH07CistICAgIChtc2l6ZXg4KSA9PiB7CistICAgICAgICBjZmdfaWYhIHsKKy0gICAgICAg ICAgICBpZiAjW2NmZyh0YXJnZXRfcG9pbnRlcl93aWR0aCA9ICI2NCIpXSB7CistICAgICAgICAg ICAgICAgIGZhbGxiYWNrX3RvX290aGVyX2ltcGwhKG1zaXpleDgsIG02NHg4KTsKKy0gICAgICAg ICAgICB9IGVsc2UgaWYgI1tjZmcodGFyZ2V0X3BvaW50ZXJfd2lkdGggPSAiMzIiKV0geworLSAg ICAgICAgICAgICAgICBmYWxsYmFja190b19vdGhlcl9pbXBsIShtc2l6ZXg4LCBtMzJ4OCk7Cist ICAgICAgICAgICAgfSBlbHNlIHsKKy0gICAgICAgICAgICAgICAgY29tcGlsZV9lcnJvciEoInVu c3VwcG9ydGVkIHRhcmdldF9wb2ludGVyX3dpZHRoIik7CistICAgICAgICAgICAgfQorLSAgICAg ICAgfQorLSAgICB9OworLX0KKy0KKy1tYWNyb19ydWxlcyEgcmVjdXJzZV9oYWxmIHsKKy0gICAg KCR2aWQ6aWRlbnQsICR2aWRfaDppZGVudCkgPT4geworLSAgICAgICAgaW1wbCBBbGwgZm9yICR2 aWQgeworLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIHVuc2FmZSBmbiBhbGwo c2VsZikgLT4gYm9vbCB7CistICAgICAgICAgICAgICAgIHVuaW9uIFUgeworLSAgICAgICAgICAg ICAgICAgICAgaGFsdmVzOiAoJHZpZF9oLCAkdmlkX2gpLAorLSAgICAgICAgICAgICAgICAgICAg dmVjOiAkdmlkLAorLSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgIGxldCBoYWx2 ZXMgPSBVIHsgdmVjOiBzZWxmIH0uaGFsdmVzOworLSAgICAgICAgICAgICAgICBoYWx2ZXMuMC5h bGwoKSAmJiBoYWx2ZXMuMS5hbGwoKQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAg ICAgIGltcGwgQW55IGZvciAkdmlkIHsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAg ICAgICB1bnNhZmUgZm4gYW55KHNlbGYpIC0+IGJvb2wgeworLSAgICAgICAgICAgICAgICB1bmlv biBVIHsKKy0gICAgICAgICAgICAgICAgICAgIGhhbHZlczogKCR2aWRfaCwgJHZpZF9oKSwKKy0g ICAgICAgICAgICAgICAgICAgIHZlYzogJHZpZCwKKy0gICAgICAgICAgICAgICAgfQorLSAgICAg ICAgICAgICAgICBsZXQgaGFsdmVzID0gVSB7IHZlYzogc2VsZiB9LmhhbHZlczsKKy0gICAgICAg ICAgICAgICAgaGFsdmVzLjAuYW55KCkgfHwgaGFsdmVzLjEuYW55KCkKKy0gICAgICAgICAgICB9 CistICAgICAgICB9CistICAgIH07CistfQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3Qv cGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vcmVkdWN0aW9ucy9tYXNrL3g4Ni5ycyBiL3RoaXJkX3Bh cnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vcmVkdWN0aW9ucy9tYXNrL3g4Ni5ycwor ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9z aW1kL3NyYy9jb2RlZ2VuL3JlZHVjdGlvbnMvbWFzay94ODYucnMKKysrKyAvZGV2L251bGwKK0BA IC0xLDIxNiArMCwwIEBACistLy8hIE1hc2sgcmVkdWN0aW9ucyBpbXBsZW1lbnRhdGlvbiBmb3Ig YHg4NmAgYW5kIGB4ODZfNjRgIHRhcmdldHMKKy0KKy0jW2NmZyh0YXJnZXRfZmVhdHVyZSA9ICJz c2UiKV0KKy0jW21hY3JvX3VzZV0KKy1tb2Qgc3NlOworLQorLSNbY2ZnKHRhcmdldF9mZWF0dXJl ID0gInNzZTIiKV0KKy0jW21hY3JvX3VzZV0KKy1tb2Qgc3NlMjsKKy0KKy0jW2NmZyh0YXJnZXRf ZmVhdHVyZSA9ICJhdngiKV0KKy0jW21hY3JvX3VzZV0KKy1tb2QgYXZ4OworLQorLSNbY2ZnKHRh cmdldF9mZWF0dXJlID0gImF2eDIiKV0KKy0jW21hY3JvX3VzZV0KKy1tb2QgYXZ4MjsKKy0KKy0v Ly8geDg2IDY0LWJpdCBtOHg4IGltcGxlbWVudGF0aW9uCistbWFjcm9fcnVsZXMhIHg4Nl9tOHg4 X2ltcGwgeworLSAgICAoJGlkOmlkZW50KSA9PiB7CistICAgICAgICBmYWxsYmFja19pbXBsISgk aWQpOworLSAgICB9OworLX0KKy0KKy0vLy8geDg2IDEyOC1iaXQgbTh4MTYgaW1wbGVtZW50YXRp b24KKy1tYWNyb19ydWxlcyEgeDg2X204eDE2X2ltcGwgeworLSAgICAoJGlkOmlkZW50KSA9PiB7 CistICAgICAgICBjZmdfaWYhIHsKKy0gICAgICAgICAgICBpZiAjW2NmZyh0YXJnZXRfZmVhdHVy ZSA9ICJzc2UyIildIHsKKy0gICAgICAgICAgICAgICAgeDg2X204eDE2X3NzZTJfaW1wbCEoJGlk KTsKKy0gICAgICAgICAgICB9IGVsc2UgeworLSAgICAgICAgICAgICAgICBmYWxsYmFja19pbXBs ISgkaWQpOworLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgfTsKKy19CistCistLy8v IHg4NiAxMjgtYml0IG0zMng0IGltcGxlbWVudGF0aW9uCistbWFjcm9fcnVsZXMhIHg4Nl9tMzJ4 NF9pbXBsIHsKKy0gICAgKCRpZDppZGVudCkgPT4geworLSAgICAgICAgY2ZnX2lmISB7CistICAg ICAgICAgICAgaWYgI1tjZmcodGFyZ2V0X2ZlYXR1cmUgPSAic3NlIildIHsKKy0gICAgICAgICAg ICAgICAgeDg2X20zMng0X3NzZV9pbXBsISgkaWQpOworLSAgICAgICAgICAgIH0gZWxzZSB7Cist ICAgICAgICAgICAgICAgIGZhbGxiYWNrX2ltcGwhKCRpZCk7CistICAgICAgICAgICAgfQorLSAg ICAgICAgfQorLSAgICB9OworLX0KKy0KKy0vLy8geDg2IDEyOC1iaXQgbTY0eDIgaW1wbGVtZW50 YXRpb24KKy1tYWNyb19ydWxlcyEgeDg2X202NHgyX2ltcGwgeworLSAgICAoJGlkOmlkZW50KSA9 PiB7CistICAgICAgICBjZmdfaWYhIHsKKy0gICAgICAgICAgICBpZiAjW2NmZyh0YXJnZXRfZmVh dHVyZSA9ICJzc2UyIildIHsKKy0gICAgICAgICAgICAgICAgeDg2X202NHgyX3NzZTJfaW1wbCEo JGlkKTsKKy0gICAgICAgICAgICB9IGVsc2UgaWYgI1tjZmcodGFyZ2V0X2ZlYXR1cmUgPSAic3Nl IildIHsKKy0gICAgICAgICAgICAgICAgeDg2X20zMng0X3NzZV9pbXBsISgkaWQpOworLSAgICAg ICAgICAgIH0gZWxzZSB7CistICAgICAgICAgICAgICAgIGZhbGxiYWNrX2ltcGwhKCRpZCk7Cist ICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICB9OworLX0KKy0KKy0vLy8geDg2IDI1Ni1i aXQgbTh4MzIgaW1wbGVtZW50YXRpb24KKy1tYWNyb19ydWxlcyEgeDg2X204eDMyX2ltcGwgewor LSAgICAoJGlkOmlkZW50LCAkaGFsZl9pZDppZGVudCkgPT4geworLSAgICAgICAgY2ZnX2lmISB7 CistICAgICAgICAgICAgaWYgI1tjZmcodGFyZ2V0X2ZlYXR1cmUgPSAiYXZ4MiIpXSB7CistICAg ICAgICAgICAgICAgIHg4Nl9tOHgzMl9hdngyX2ltcGwhKCRpZCk7CistICAgICAgICAgICAgfSBl bHNlIGlmICNbY2ZnKHRhcmdldF9mZWF0dXJlID0gImF2eCIpXSB7CistICAgICAgICAgICAgICAg IHg4Nl9tOHgzMl9hdnhfaW1wbCEoJGlkKTsKKy0gICAgICAgICAgICB9IGVsc2UgaWYgI1tjZmco dGFyZ2V0X2ZlYXR1cmUgPSAic3NlMiIpXSB7CistICAgICAgICAgICAgICAgIHJlY3Vyc2VfaGFs ZiEoJGlkLCAkaGFsZl9pZCk7CistICAgICAgICAgICAgfSBlbHNlIHsKKy0gICAgICAgICAgICAg ICAgZmFsbGJhY2tfaW1wbCEoJGlkKTsKKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAg IH07CistfQorLQorLS8vLyB4ODYgMjU2LWJpdCBtMzJ4OCBpbXBsZW1lbnRhdGlvbgorLW1hY3Jv X3J1bGVzISB4ODZfbTMyeDhfaW1wbCB7CistICAgICgkaWQ6aWRlbnQsICRoYWxmX2lkOmlkZW50 KSA9PiB7CistICAgICAgICBjZmdfaWYhIHsKKy0gICAgICAgICAgICBpZiAjW2NmZyh0YXJnZXRf ZmVhdHVyZSA9ICJhdngiKV0geworLSAgICAgICAgICAgICAgICB4ODZfbTMyeDhfYXZ4X2ltcGwh KCRpZCk7CistICAgICAgICAgICAgfSBlbHNlIGlmICNbY2ZnKHRhcmdldF9mZWF0dXJlID0gInNz ZSIpXSB7CistICAgICAgICAgICAgICAgIHJlY3Vyc2VfaGFsZiEoJGlkLCAkaGFsZl9pZCk7Cist ICAgICAgICAgICAgfSBlbHNlIHsKKy0gICAgICAgICAgICAgICAgZmFsbGJhY2tfaW1wbCEoJGlk KTsKKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgIH07CistfQorLQorLS8vLyB4ODYg MjU2LWJpdCBtNjR4NCBpbXBsZW1lbnRhdGlvbgorLW1hY3JvX3J1bGVzISB4ODZfbTY0eDRfaW1w bCB7CistICAgICgkaWQ6aWRlbnQsICRoYWxmX2lkOmlkZW50KSA9PiB7CistICAgICAgICBjZmdf aWYhIHsKKy0gICAgICAgICAgICBpZiAjW2NmZyh0YXJnZXRfZmVhdHVyZSA9ICJhdngiKV0gewor LSAgICAgICAgICAgICAgICB4ODZfbTY0eDRfYXZ4X2ltcGwhKCRpZCk7CistICAgICAgICAgICAg fSBlbHNlIGlmICNbY2ZnKHRhcmdldF9mZWF0dXJlID0gInNzZSIpXSB7CistICAgICAgICAgICAg ICAgIHJlY3Vyc2VfaGFsZiEoJGlkLCAkaGFsZl9pZCk7CistICAgICAgICAgICAgfSBlbHNlIHsK Ky0gICAgICAgICAgICAgICAgZmFsbGJhY2tfaW1wbCEoJGlkKTsKKy0gICAgICAgICAgICB9Cist ICAgICAgICB9CistICAgIH07CistfQorLQorLS8vLyBGYWxsYmFjayBpbXBsZW1lbnRhdGlvbi4K Ky1tYWNyb19ydWxlcyEgeDg2X2ludHJfaW1wbCB7CistICAgICgkaWQ6aWRlbnQpID0+IHsKKy0g ICAgICAgIGltcGwgQWxsIGZvciAkaWQgeworLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAg ICAgICAgIHVuc2FmZSBmbiBhbGwoc2VsZikgLT4gYm9vbCB7CistICAgICAgICAgICAgICAgIHVz ZSBjcmF0ZTo6bGx2bTo6c2ltZF9yZWR1Y2VfYWxsOworLSAgICAgICAgICAgICAgICBzaW1kX3Jl ZHVjZV9hbGwoc2VsZi4wKQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgICAgIGlt cGwgQW55IGZvciAkaWQgeworLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIHVu c2FmZSBmbiBhbnkoc2VsZikgLT4gYm9vbCB7CistICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6 bGx2bTo6c2ltZF9yZWR1Y2VfYW55OworLSAgICAgICAgICAgICAgICBzaW1kX3JlZHVjZV9hbnko c2VsZi4wKQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgfTsKKy19CistCistLy8v IE1hc2sgcmVkdWN0aW9uIGltcGxlbWVudGF0aW9uIGZvciBgeDg2YCBhbmQgYHg4Nl82NGAgdGFy Z2V0cworLW1hY3JvX3J1bGVzISBpbXBsX21hc2tfcmVkdWN0aW9ucyB7CistICAgIC8vIDY0LWJp dCB3aWRlIG1hc2tzCistICAgIChtOHg4KSA9PiB7CistICAgICAgICB4ODZfbTh4OF9pbXBsISht OHg4KTsKKy0gICAgfTsKKy0gICAgKG0xNng0KSA9PiB7CistICAgICAgICB4ODZfbTh4OF9pbXBs IShtMTZ4NCk7CistICAgIH07CistICAgIChtMzJ4MikgPT4geworLSAgICAgICAgeDg2X204eDhf aW1wbCEobTMyeDIpOworLSAgICB9OworLSAgICAvLyAxMjgtYml0IHdpZGUgbWFza3MKKy0gICAg KG04eDE2KSA9PiB7CistICAgICAgICB4ODZfbTh4MTZfaW1wbCEobTh4MTYpOworLSAgICB9Owor LSAgICAobTE2eDgpID0+IHsKKy0gICAgICAgIHg4Nl9tOHgxNl9pbXBsIShtMTZ4OCk7CistICAg IH07CistICAgIChtMzJ4NCkgPT4geworLSAgICAgICAgeDg2X20zMng0X2ltcGwhKG0zMng0KTsK Ky0gICAgfTsKKy0gICAgKG02NHgyKSA9PiB7CistICAgICAgICB4ODZfbTY0eDJfaW1wbCEobTY0 eDIpOworLSAgICB9OworLSAgICAobTEyOHgxKSA9PiB7CistICAgICAgICB4ODZfaW50cl9pbXBs IShtMTI4eDEpOworLSAgICB9OworLSAgICAvLyAyNTYtYml0IHdpZGUgbWFza3M6CistICAgICht OHgzMikgPT4geworLSAgICAgICAgeDg2X204eDMyX2ltcGwhKG04eDMyLCBtOHgxNik7CistICAg IH07CistICAgIChtMTZ4MTYpID0+IHsKKy0gICAgICAgIHg4Nl9tOHgzMl9pbXBsIShtMTZ4MTYs IG0xNng4KTsKKy0gICAgfTsKKy0gICAgKG0zMng4KSA9PiB7CistICAgICAgICB4ODZfbTMyeDhf aW1wbCEobTMyeDgsIG0zMng0KTsKKy0gICAgfTsKKy0gICAgKG02NHg0KSA9PiB7CistICAgICAg ICB4ODZfbTY0eDRfaW1wbCEobTY0eDQsIG02NHgyKTsKKy0gICAgfTsKKy0gICAgKG0xMjh4Mikg PT4geworLSAgICAgICAgeDg2X2ludHJfaW1wbCEobTEyOHgyKTsKKy0gICAgfTsKKy0gICAgKG1z aXpleDIpID0+IHsKKy0gICAgICAgIGNmZ19pZiEgeworLSAgICAgICAgICAgIGlmICNbY2ZnKHRh cmdldF9wb2ludGVyX3dpZHRoID0gIjY0IildIHsKKy0gICAgICAgICAgICAgICAgZmFsbGJhY2tf dG9fb3RoZXJfaW1wbCEobXNpemV4MiwgbTY0eDIpOworLSAgICAgICAgICAgIH0gZWxzZSBpZiAj W2NmZyh0YXJnZXRfcG9pbnRlcl93aWR0aCA9ICIzMiIpXSB7CistICAgICAgICAgICAgICAgIGZh bGxiYWNrX3RvX290aGVyX2ltcGwhKG1zaXpleDIsIG0zMngyKTsKKy0gICAgICAgICAgICB9IGVs c2UgeworLSAgICAgICAgICAgICAgICBjb21waWxlX2Vycm9yISgidW5zdXBwb3J0ZWQgdGFyZ2V0 X3BvaW50ZXJfd2lkdGgiKTsKKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgIH07Cist ICAgIChtc2l6ZXg0KSA9PiB7CistICAgICAgICBjZmdfaWYhIHsKKy0gICAgICAgICAgICBpZiAj W2NmZyh0YXJnZXRfcG9pbnRlcl93aWR0aCA9ICI2NCIpXSB7CistICAgICAgICAgICAgICAgIGZh bGxiYWNrX3RvX290aGVyX2ltcGwhKG1zaXpleDQsIG02NHg0KTsKKy0gICAgICAgICAgICB9IGVs c2UgaWYgI1tjZmcodGFyZ2V0X3BvaW50ZXJfd2lkdGggPSAiMzIiKV0geworLSAgICAgICAgICAg ICAgICBmYWxsYmFja190b19vdGhlcl9pbXBsIShtc2l6ZXg0LCBtMzJ4NCk7CistICAgICAgICAg ICAgfSBlbHNlIHsKKy0gICAgICAgICAgICAgICAgY29tcGlsZV9lcnJvciEoInVuc3VwcG9ydGVk IHRhcmdldF9wb2ludGVyX3dpZHRoIik7CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAg ICB9OworLSAgICAobXNpemV4OCkgPT4geworLSAgICAgICAgY2ZnX2lmISB7CistICAgICAgICAg ICAgaWYgI1tjZmcodGFyZ2V0X3BvaW50ZXJfd2lkdGggPSAiNjQiKV0geworLSAgICAgICAgICAg ICAgICBmYWxsYmFja190b19vdGhlcl9pbXBsIShtc2l6ZXg4LCBtNjR4OCk7CistICAgICAgICAg ICAgfSBlbHNlIGlmICNbY2ZnKHRhcmdldF9wb2ludGVyX3dpZHRoID0gIjMyIildIHsKKy0gICAg ICAgICAgICAgICAgZmFsbGJhY2tfdG9fb3RoZXJfaW1wbCEobXNpemV4OCwgbTMyeDgpOworLSAg ICAgICAgICAgIH0gZWxzZSB7CistICAgICAgICAgICAgICAgIGNvbXBpbGVfZXJyb3IhKCJ1bnN1 cHBvcnRlZCB0YXJnZXRfcG9pbnRlcl93aWR0aCIpOworLSAgICAgICAgICAgIH0KKy0gICAgICAg IH0KKy0gICAgfTsKKy0KKy0gICAgLy8gRmFsbGJhY2sgdG8gTExWTSdzIGRlZmF1bHQgY29kZS1n ZW5lcmF0aW9uOgorLSAgICAoJGlkOmlkZW50KSA9PiB7CistICAgICAgICBmYWxsYmFja19pbXBs ISgkaWQpOworLSAgICB9OworLX0KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tl ZF9zaW1kL3NyYy9jb2RlZ2VuL3JlZHVjdGlvbnMvbWFzay94ODYvYXZ4LnJzIGIvdGhpcmRfcGFy dHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9yZWR1Y3Rpb25zL21hc2sveDg2L2F2eC5y cworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tl ZF9zaW1kL3NyYy9jb2RlZ2VuL3JlZHVjdGlvbnMvbWFzay94ODYvYXZ4LnJzCisrKysgL2Rldi9u dWxsCitAQCAtMSw5NSArMCwwIEBACistLy8hIE1hc2sgcmVkdWN0aW9ucyBpbXBsZW1lbnRhdGlv biBmb3IgYHg4NmAgYW5kIGB4ODZfNjRgIHRhcmdldHMgd2l0aCBgQVZYYAorLQorLS8vLyBgeDg2 YC9geDg2XzY0YCAyNTYtYml0IGBBVlhgIGltcGxlbWVudGF0aW9uCistLy8vIEZJWE1FOiBpdCBt aWdodCBiZSBmYXN0ZXIgaGVyZSB0byBkbyB0d28gYF9tbV9tb3ZtYXNrX2VwaThgCistI1tjZmco dGFyZ2V0X2ZlYXR1cmUgPSAiYXZ4IildCistbWFjcm9fcnVsZXMhIHg4Nl9tOHgzMl9hdnhfaW1w bCB7CistICAgICgkaWQ6aWRlbnQpID0+IHsKKy0gICAgICAgIGltcGwgQWxsIGZvciAkaWQgewor LSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgICNbdGFyZ2V0X2ZlYXR1cmUoZW5h YmxlID0gImF2eCIpXQorLSAgICAgICAgICAgIHVuc2FmZSBmbiBhbGwoc2VsZikgLT4gYm9vbCB7 CistICAgICAgICAgICAgICAgICNbY2ZnKHRhcmdldF9hcmNoID0gIng4NiIpXQorLSAgICAgICAg ICAgICAgICB1c2UgY3JhdGU6OmFyY2g6Ong4Njo6X21tMjU2X3Rlc3RjX3NpMjU2OworLSAgICAg ICAgICAgICAgICAjW2NmZyh0YXJnZXRfYXJjaCA9ICJ4ODZfNjQiKV0KKy0gICAgICAgICAgICAg ICAgdXNlIGNyYXRlOjphcmNoOjp4ODZfNjQ6Ol9tbTI1Nl90ZXN0Y19zaTI1NjsKKy0gICAgICAg ICAgICAgICAgX21tMjU2X3Rlc3RjX3NpMjU2KGNyYXRlOjptZW06OnRyYW5zbXV0ZShzZWxmKSwg Y3JhdGU6Om1lbTo6dHJhbnNtdXRlKCRpZDo6c3BsYXQodHJ1ZSkpKSAhPSAwCistICAgICAgICAg ICAgfQorLSAgICAgICAgfQorLSAgICAgICAgaW1wbCBBbnkgZm9yICRpZCB7CistICAgICAgICAg ICAgI1tpbmxpbmVdCistICAgICAgICAgICAgI1t0YXJnZXRfZmVhdHVyZShlbmFibGUgPSAiYXZ4 IildCistICAgICAgICAgICAgdW5zYWZlIGZuIGFueShzZWxmKSAtPiBib29sIHsKKy0gICAgICAg ICAgICAgICAgI1tjZmcodGFyZ2V0X2FyY2ggPSAieDg2IildCistICAgICAgICAgICAgICAgIHVz ZSBjcmF0ZTo6YXJjaDo6eDg2OjpfbW0yNTZfdGVzdHpfc2kyNTY7CistICAgICAgICAgICAgICAg ICNbY2ZnKHRhcmdldF9hcmNoID0gIng4Nl82NCIpXQorLSAgICAgICAgICAgICAgICB1c2UgY3Jh dGU6OmFyY2g6Ong4Nl82NDo6X21tMjU2X3Rlc3R6X3NpMjU2OworLSAgICAgICAgICAgICAgICBf bW0yNTZfdGVzdHpfc2kyNTYoY3JhdGU6Om1lbTo6dHJhbnNtdXRlKHNlbGYpLCBjcmF0ZTo6bWVt Ojp0cmFuc211dGUoc2VsZikpID09IDAKKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAg IH07CistfQorLQorLS8vLyBgeDg2YC9geDg2XzY0YCAyNTYtYml0IG0zMng4IGBBVlhgIGltcGxl bWVudGF0aW9uCistbWFjcm9fcnVsZXMhIHg4Nl9tMzJ4OF9hdnhfaW1wbCB7CistICAgICgkaWQ6 aWRlbnQpID0+IHsKKy0gICAgICAgIGltcGwgQWxsIGZvciAkaWQgeworLSAgICAgICAgICAgICNb aW5saW5lXQorLSAgICAgICAgICAgICNbdGFyZ2V0X2ZlYXR1cmUoZW5hYmxlID0gInNzZSIpXQor LSAgICAgICAgICAgIHVuc2FmZSBmbiBhbGwoc2VsZikgLT4gYm9vbCB7CistICAgICAgICAgICAg ICAgICNbY2ZnKHRhcmdldF9hcmNoID0gIng4NiIpXQorLSAgICAgICAgICAgICAgICB1c2UgY3Jh dGU6OmFyY2g6Ong4Njo6X21tMjU2X21vdmVtYXNrX3BzOworLSAgICAgICAgICAgICAgICAjW2Nm Zyh0YXJnZXRfYXJjaCA9ICJ4ODZfNjQiKV0KKy0gICAgICAgICAgICAgICAgdXNlIGNyYXRlOjph cmNoOjp4ODZfNjQ6Ol9tbTI1Nl9tb3ZlbWFza19wczsKKy0gICAgICAgICAgICAgICAgLy8gX21t MjU2X21vdmVtYXNrX3BzKGEpIGNyZWF0ZXMgYSA4Yml0IG1hc2sgY29udGFpbmluZyB0aGUKKy0g ICAgICAgICAgICAgICAgLy8gbW9zdCBzaWduaWZpY2FudCBiaXQgb2YgZWFjaCBsYW5lIG9mIGBh YC4gSWYgYWxsIGJpdHMgYXJlCistICAgICAgICAgICAgICAgIC8vIHNldCwgdGhlbiBhbGwgOCBs YW5lcyBvZiB0aGUgbWFzayBhcmUgdHJ1ZS4KKy0gICAgICAgICAgICAgICAgX21tMjU2X21vdmVt YXNrX3BzKGNyYXRlOjptZW06OnRyYW5zbXV0ZShzZWxmKSkgPT0gMGJfMTExMV8xMTExX2kzMgor LSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgICAgIGltcGwgQW55IGZvciAkaWQgewor LSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgICNbdGFyZ2V0X2ZlYXR1cmUoZW5h YmxlID0gInNzZSIpXQorLSAgICAgICAgICAgIHVuc2FmZSBmbiBhbnkoc2VsZikgLT4gYm9vbCB7 CistICAgICAgICAgICAgICAgICNbY2ZnKHRhcmdldF9hcmNoID0gIng4NiIpXQorLSAgICAgICAg ICAgICAgICB1c2UgY3JhdGU6OmFyY2g6Ong4Njo6X21tMjU2X21vdmVtYXNrX3BzOworLSAgICAg ICAgICAgICAgICAjW2NmZyh0YXJnZXRfYXJjaCA9ICJ4ODZfNjQiKV0KKy0gICAgICAgICAgICAg ICAgdXNlIGNyYXRlOjphcmNoOjp4ODZfNjQ6Ol9tbTI1Nl9tb3ZlbWFza19wczsKKy0KKy0gICAg ICAgICAgICAgICAgX21tMjU2X21vdmVtYXNrX3BzKGNyYXRlOjptZW06OnRyYW5zbXV0ZShzZWxm KSkgIT0gMAorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgfTsKKy19CistCistLy8v IGB4ODZgL2B4ODZfNjRgIDI1Ni1iaXQgbTY0eDQgYEFWWGAgaW1wbGVtZW50YXRpb24KKy1tYWNy b19ydWxlcyEgeDg2X202NHg0X2F2eF9pbXBsIHsKKy0gICAgKCRpZDppZGVudCkgPT4geworLSAg ICAgICAgaW1wbCBBbGwgZm9yICRpZCB7CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAg ICAgICAgI1t0YXJnZXRfZmVhdHVyZShlbmFibGUgPSAic3NlIildCistICAgICAgICAgICAgdW5z YWZlIGZuIGFsbChzZWxmKSAtPiBib29sIHsKKy0gICAgICAgICAgICAgICAgI1tjZmcodGFyZ2V0 X2FyY2ggPSAieDg2IildCistICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6YXJjaDo6eDg2Ojpf bW0yNTZfbW92ZW1hc2tfcGQ7CistICAgICAgICAgICAgICAgICNbY2ZnKHRhcmdldF9hcmNoID0g Ing4Nl82NCIpXQorLSAgICAgICAgICAgICAgICB1c2UgY3JhdGU6OmFyY2g6Ong4Nl82NDo6X21t MjU2X21vdmVtYXNrX3BkOworLSAgICAgICAgICAgICAgICAvLyBfbW0yNTZfbW92ZW1hc2tfcGQo YSkgY3JlYXRlcyBhIDRiaXQgbWFzayBjb250YWluaW5nIHRoZQorLSAgICAgICAgICAgICAgICAv LyBtb3N0IHNpZ25pZmljYW50IGJpdCBvZiBlYWNoIGxhbmUgb2YgYGFgLiBJZiBhbGwgYml0cyBh cmUKKy0gICAgICAgICAgICAgICAgLy8gc2V0LCB0aGVuIGFsbCA0IGxhbmVzIG9mIHRoZSBtYXNr IGFyZSB0cnVlLgorLSAgICAgICAgICAgICAgICBfbW0yNTZfbW92ZW1hc2tfcGQoY3JhdGU6Om1l bTo6dHJhbnNtdXRlKHNlbGYpKSA9PSAwYl8xMTExX2kzMgorLSAgICAgICAgICAgIH0KKy0gICAg ICAgIH0KKy0gICAgICAgIGltcGwgQW55IGZvciAkaWQgeworLSAgICAgICAgICAgICNbaW5saW5l XQorLSAgICAgICAgICAgICNbdGFyZ2V0X2ZlYXR1cmUoZW5hYmxlID0gInNzZSIpXQorLSAgICAg ICAgICAgIHVuc2FmZSBmbiBhbnkoc2VsZikgLT4gYm9vbCB7CistICAgICAgICAgICAgICAgICNb Y2ZnKHRhcmdldF9hcmNoID0gIng4NiIpXQorLSAgICAgICAgICAgICAgICB1c2UgY3JhdGU6OmFy Y2g6Ong4Njo6X21tMjU2X21vdmVtYXNrX3BkOworLSAgICAgICAgICAgICAgICAjW2NmZyh0YXJn ZXRfYXJjaCA9ICJ4ODZfNjQiKV0KKy0gICAgICAgICAgICAgICAgdXNlIGNyYXRlOjphcmNoOjp4 ODZfNjQ6Ol9tbTI1Nl9tb3ZlbWFza19wZDsKKy0KKy0gICAgICAgICAgICAgICAgX21tMjU2X21v dmVtYXNrX3BkKGNyYXRlOjptZW06OnRyYW5zbXV0ZShzZWxmKSkgIT0gMAorLSAgICAgICAgICAg IH0KKy0gICAgICAgIH0KKy0gICAgfTsKKy19CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVz dC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9yZWR1Y3Rpb25zL21hc2sveDg2L2F2eDIucnMgYi90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3JlZHVjdGlvbnMvbWFzay94 ODYvYXZ4Mi5ycworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9y dXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3JlZHVjdGlvbnMvbWFzay94ODYvYXZ4Mi5ycwor KysrIC9kZXYvbnVsbAorQEAgLTEsMzUgKzAsMCBAQAorLS8vISBNYXNrIHJlZHVjdGlvbnMgaW1w bGVtZW50YXRpb24gZm9yIGB4ODZgIGFuZCBgeDg2XzY0YCB0YXJnZXRzIHdpdGggYEFWWDJgLgor LSMhW2FsbG93KHVudXNlZCldCistCistLy8vIHg4Ni94ODZfNjQgMjU2LWJpdCBtOHgzMiBBVlgy IGltcGxlbWVudGF0aW9uCistbWFjcm9fcnVsZXMhIHg4Nl9tOHgzMl9hdngyX2ltcGwgeworLSAg ICAoJGlkOmlkZW50KSA9PiB7CistICAgICAgICBpbXBsIEFsbCBmb3IgJGlkIHsKKy0gICAgICAg ICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICAjW3RhcmdldF9mZWF0dXJlKGVuYWJsZSA9ICJz c2UyIildCistICAgICAgICAgICAgdW5zYWZlIGZuIGFsbChzZWxmKSAtPiBib29sIHsKKy0gICAg ICAgICAgICAgICAgI1tjZmcodGFyZ2V0X2FyY2ggPSAieDg2IildCistICAgICAgICAgICAgICAg IHVzZSBjcmF0ZTo6YXJjaDo6eDg2OjpfbW0yNTZfbW92ZW1hc2tfZXBpODsKKy0gICAgICAgICAg ICAgICAgI1tjZmcodGFyZ2V0X2FyY2ggPSAieDg2XzY0IildCistICAgICAgICAgICAgICAgIHVz ZSBjcmF0ZTo6YXJjaDo6eDg2XzY0OjpfbW0yNTZfbW92ZW1hc2tfZXBpODsKKy0gICAgICAgICAg ICAgICAgLy8gX21tMjU2X21vdmVtYXNrX2VwaTgoYSkgY3JlYXRlcyBhIDMyYml0IG1hc2sgY29u dGFpbmluZyB0aGUKKy0gICAgICAgICAgICAgICAgLy8gbW9zdCBzaWduaWZpY2FudCBiaXQgb2Yg ZWFjaCBieXRlIG9mIGBhYC4gSWYgYWxsCistICAgICAgICAgICAgICAgIC8vIGJpdHMgYXJlIHNl dCwgdGhlbiBhbGwgMzIgbGFuZXMgb2YgdGhlIG1hc2sgYXJlCistICAgICAgICAgICAgICAgIC8v IHRydWUuCistICAgICAgICAgICAgICAgIF9tbTI1Nl9tb3ZlbWFza19lcGk4KGNyYXRlOjptZW06 OnRyYW5zbXV0ZShzZWxmKSkgPT0gLTFfaTMyCistICAgICAgICAgICAgfQorLSAgICAgICAgfQor LSAgICAgICAgaW1wbCBBbnkgZm9yICRpZCB7CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAg ICAgICAgICAgI1t0YXJnZXRfZmVhdHVyZShlbmFibGUgPSAic3NlMiIpXQorLSAgICAgICAgICAg IHVuc2FmZSBmbiBhbnkoc2VsZikgLT4gYm9vbCB7CistICAgICAgICAgICAgICAgICNbY2ZnKHRh cmdldF9hcmNoID0gIng4NiIpXQorLSAgICAgICAgICAgICAgICB1c2UgY3JhdGU6OmFyY2g6Ong4 Njo6X21tMjU2X21vdmVtYXNrX2VwaTg7CistICAgICAgICAgICAgICAgICNbY2ZnKHRhcmdldF9h cmNoID0gIng4Nl82NCIpXQorLSAgICAgICAgICAgICAgICB1c2UgY3JhdGU6OmFyY2g6Ong4Nl82 NDo6X21tMjU2X21vdmVtYXNrX2VwaTg7CistCistICAgICAgICAgICAgICAgIF9tbTI1Nl9tb3Zl bWFza19lcGk4KGNyYXRlOjptZW06OnRyYW5zbXV0ZShzZWxmKSkgIT0gMAorLSAgICAgICAgICAg IH0KKy0gICAgICAgIH0KKy0gICAgfTsKKy19CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVz dC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9yZWR1Y3Rpb25zL21hc2sveDg2L3NzZS5ycyBiL3Ro aXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vcmVkdWN0aW9ucy9tYXNrL3g4 Ni9zc2UucnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVz dC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9yZWR1Y3Rpb25zL21hc2sveDg2L3NzZS5ycworKysr IC9kZXYvbnVsbAorQEAgLTEsMzUgKzAsMCBAQAorLS8vISBNYXNrIHJlZHVjdGlvbnMgaW1wbGVt ZW50YXRpb24gZm9yIGB4ODZgIGFuZCBgeDg2XzY0YCB0YXJnZXRzIHdpdGggYFNTRWAuCistIyFb YWxsb3codW51c2VkKV0KKy0KKy0vLy8gYHg4NmAvYHg4Nl82NGAgMTI4LWJpdCBgbTMyeDRgIGBT U0VgIGltcGxlbWVudGF0aW9uCistbWFjcm9fcnVsZXMhIHg4Nl9tMzJ4NF9zc2VfaW1wbCB7Cist ICAgICgkaWQ6aWRlbnQpID0+IHsKKy0gICAgICAgIGltcGwgQWxsIGZvciAkaWQgeworLSAgICAg ICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgICNbdGFyZ2V0X2ZlYXR1cmUoZW5hYmxlID0g InNzZSIpXQorLSAgICAgICAgICAgIHVuc2FmZSBmbiBhbGwoc2VsZikgLT4gYm9vbCB7CistICAg ICAgICAgICAgICAgICNbY2ZnKHRhcmdldF9hcmNoID0gIng4NiIpXQorLSAgICAgICAgICAgICAg ICB1c2UgY3JhdGU6OmFyY2g6Ong4Njo6X21tX21vdmVtYXNrX3BzOworLSAgICAgICAgICAgICAg ICAjW2NmZyh0YXJnZXRfYXJjaCA9ICJ4ODZfNjQiKV0KKy0gICAgICAgICAgICAgICAgdXNlIGNy YXRlOjphcmNoOjp4ODZfNjQ6Ol9tbV9tb3ZlbWFza19wczsKKy0gICAgICAgICAgICAgICAgLy8g X21tX21vdmVtYXNrX3BzKGEpIGNyZWF0ZXMgYSA0Yml0IG1hc2sgY29udGFpbmluZyB0aGUKKy0g ICAgICAgICAgICAgICAgLy8gbW9zdCBzaWduaWZpY2FudCBiaXQgb2YgZWFjaCBsYW5lIG9mIGBh YC4gSWYgYWxsCistICAgICAgICAgICAgICAgIC8vIGJpdHMgYXJlIHNldCwgdGhlbiBhbGwgNCBs YW5lcyBvZiB0aGUgbWFzayBhcmUKKy0gICAgICAgICAgICAgICAgLy8gdHJ1ZS4KKy0gICAgICAg ICAgICAgICAgX21tX21vdmVtYXNrX3BzKGNyYXRlOjptZW06OnRyYW5zbXV0ZShzZWxmKSkgPT0g MGJfMTExMV9pMzIKKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgICAgICBpbXBsIEFu eSBmb3IgJGlkIHsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICAjW3Rhcmdl dF9mZWF0dXJlKGVuYWJsZSA9ICJzc2UiKV0KKy0gICAgICAgICAgICB1bnNhZmUgZm4gYW55KHNl bGYpIC0+IGJvb2wgeworLSAgICAgICAgICAgICAgICAjW2NmZyh0YXJnZXRfYXJjaCA9ICJ4ODYi KV0KKy0gICAgICAgICAgICAgICAgdXNlIGNyYXRlOjphcmNoOjp4ODY6Ol9tbV9tb3ZlbWFza19w czsKKy0gICAgICAgICAgICAgICAgI1tjZmcodGFyZ2V0X2FyY2ggPSAieDg2XzY0IildCistICAg ICAgICAgICAgICAgIHVzZSBjcmF0ZTo6YXJjaDo6eDg2XzY0OjpfbW1fbW92ZW1hc2tfcHM7Cist CistICAgICAgICAgICAgICAgIF9tbV9tb3ZlbWFza19wcyhjcmF0ZTo6bWVtOjp0cmFuc211dGUo c2VsZikpICE9IDAKKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgIH07CistfQorZGlm ZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vcmVkdWN0 aW9ucy9tYXNrL3g4Ni9zc2UyLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMv Y29kZWdlbi9yZWR1Y3Rpb25zL21hc2sveDg2L3NzZTIucnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEw MDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9yZWR1 Y3Rpb25zL21hc2sveDg2L3NzZTIucnMKKysrKyAvZGV2L251bGwKK0BAIC0xLDY4ICswLDAgQEAK Ky0vLyEgTWFzayByZWR1Y3Rpb25zIGltcGxlbWVudGF0aW9uIGZvciBgeDg2YCBhbmQgYHg4Nl82 NGAgdGFyZ2V0cyB3aXRoIGBTU0UyYC4KKy0jIVthbGxvdyh1bnVzZWQpXQorLQorLS8vLyBgeDg2 YC9geDg2XzY0YCAxMjgtYml0IG02NHgyIGBTU0UyYCBpbXBsZW1lbnRhdGlvbgorLW1hY3JvX3J1 bGVzISB4ODZfbTY0eDJfc3NlMl9pbXBsIHsKKy0gICAgKCRpZDppZGVudCkgPT4geworLSAgICAg ICAgaW1wbCBBbGwgZm9yICRpZCB7CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAg ICAgI1t0YXJnZXRfZmVhdHVyZShlbmFibGUgPSAic3NlIildCistICAgICAgICAgICAgdW5zYWZl IGZuIGFsbChzZWxmKSAtPiBib29sIHsKKy0gICAgICAgICAgICAgICAgI1tjZmcodGFyZ2V0X2Fy Y2ggPSAieDg2IildCistICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6YXJjaDo6eDg2OjpfbW1f bW92ZW1hc2tfcGQ7CistICAgICAgICAgICAgICAgICNbY2ZnKHRhcmdldF9hcmNoID0gIng4Nl82 NCIpXQorLSAgICAgICAgICAgICAgICB1c2UgY3JhdGU6OmFyY2g6Ong4Nl82NDo6X21tX21vdmVt YXNrX3BkOworLSAgICAgICAgICAgICAgICAvLyBfbW1fbW92ZW1hc2tfcGQoYSkgY3JlYXRlcyBh IDJiaXQgbWFzayBjb250YWluaW5nIHRoZQorLSAgICAgICAgICAgICAgICAvLyBtb3N0IHNpZ25p ZmljYW50IGJpdCBvZiBlYWNoIGxhbmUgb2YgYGFgLiBJZiBhbGwKKy0gICAgICAgICAgICAgICAg Ly8gYml0cyBhcmUgc2V0LCB0aGVuIGFsbCAyIGxhbmVzIG9mIHRoZSBtYXNrIGFyZQorLSAgICAg ICAgICAgICAgICAvLyB0cnVlLgorLSAgICAgICAgICAgICAgICBfbW1fbW92ZW1hc2tfcGQoY3Jh dGU6Om1lbTo6dHJhbnNtdXRlKHNlbGYpKSA9PSAwYl8xMV9pMzIKKy0gICAgICAgICAgICB9Cist ICAgICAgICB9CistICAgICAgICBpbXBsIEFueSBmb3IgJGlkIHsKKy0gICAgICAgICAgICAjW2lu bGluZV0KKy0gICAgICAgICAgICAjW3RhcmdldF9mZWF0dXJlKGVuYWJsZSA9ICJzc2UiKV0KKy0g ICAgICAgICAgICB1bnNhZmUgZm4gYW55KHNlbGYpIC0+IGJvb2wgeworLSAgICAgICAgICAgICAg ICAjW2NmZyh0YXJnZXRfYXJjaCA9ICJ4ODYiKV0KKy0gICAgICAgICAgICAgICAgdXNlIGNyYXRl OjphcmNoOjp4ODY6Ol9tbV9tb3ZlbWFza19wZDsKKy0gICAgICAgICAgICAgICAgI1tjZmcodGFy Z2V0X2FyY2ggPSAieDg2XzY0IildCistICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6YXJjaDo6 eDg2XzY0OjpfbW1fbW92ZW1hc2tfcGQ7CistCistICAgICAgICAgICAgICAgIF9tbV9tb3ZlbWFz a19wZChjcmF0ZTo6bWVtOjp0cmFuc211dGUoc2VsZikpICE9IDAKKy0gICAgICAgICAgICB9Cist ICAgICAgICB9CistICAgIH07CistfQorLQorLS8vLyBgeDg2YC9geDg2XzY0YCAxMjgtYml0IG04 eDE2IGBTU0UyYCBpbXBsZW1lbnRhdGlvbgorLW1hY3JvX3J1bGVzISB4ODZfbTh4MTZfc3NlMl9p bXBsIHsKKy0gICAgKCRpZDppZGVudCkgPT4geworLSAgICAgICAgaW1wbCBBbGwgZm9yICRpZCB7 CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgI1t0YXJnZXRfZmVhdHVyZShl bmFibGUgPSAic3NlMiIpXQorLSAgICAgICAgICAgIHVuc2FmZSBmbiBhbGwoc2VsZikgLT4gYm9v bCB7CistICAgICAgICAgICAgICAgICNbY2ZnKHRhcmdldF9hcmNoID0gIng4NiIpXQorLSAgICAg ICAgICAgICAgICB1c2UgY3JhdGU6OmFyY2g6Ong4Njo6X21tX21vdmVtYXNrX2VwaTg7CistICAg ICAgICAgICAgICAgICNbY2ZnKHRhcmdldF9hcmNoID0gIng4Nl82NCIpXQorLSAgICAgICAgICAg ICAgICB1c2UgY3JhdGU6OmFyY2g6Ong4Nl82NDo6X21tX21vdmVtYXNrX2VwaTg7CistICAgICAg ICAgICAgICAgIC8vIF9tbV9tb3ZlbWFza19lcGk4KGEpIGNyZWF0ZXMgYSAxNmJpdCBtYXNrIGNv bnRhaW5pbmcgdGhlCistICAgICAgICAgICAgICAgIC8vIG1vc3Qgc2lnbmlmaWNhbnQgYml0IG9m IGVhY2ggYnl0ZSBvZiBgYWAuIElmIGFsbAorLSAgICAgICAgICAgICAgICAvLyBiaXRzIGFyZSBz ZXQsIHRoZW4gYWxsIDE2IGxhbmVzIG9mIHRoZSBtYXNrIGFyZQorLSAgICAgICAgICAgICAgICAv LyB0cnVlLgorLSAgICAgICAgICAgICAgICBfbW1fbW92ZW1hc2tfZXBpOChjcmF0ZTo6bWVtOjp0 cmFuc211dGUoc2VsZikpID09IGkzMjo6ZnJvbSh1MTY6Om1heF92YWx1ZSgpKQorLSAgICAgICAg ICAgIH0KKy0gICAgICAgIH0KKy0gICAgICAgIGltcGwgQW55IGZvciAkaWQgeworLSAgICAgICAg ICAgICNbaW5saW5lXQorLSAgICAgICAgICAgICNbdGFyZ2V0X2ZlYXR1cmUoZW5hYmxlID0gInNz ZTIiKV0KKy0gICAgICAgICAgICB1bnNhZmUgZm4gYW55KHNlbGYpIC0+IGJvb2wgeworLSAgICAg ICAgICAgICAgICAjW2NmZyh0YXJnZXRfYXJjaCA9ICJ4ODYiKV0KKy0gICAgICAgICAgICAgICAg dXNlIGNyYXRlOjphcmNoOjp4ODY6Ol9tbV9tb3ZlbWFza19lcGk4OworLSAgICAgICAgICAgICAg ICAjW2NmZyh0YXJnZXRfYXJjaCA9ICJ4ODZfNjQiKV0KKy0gICAgICAgICAgICAgICAgdXNlIGNy YXRlOjphcmNoOjp4ODZfNjQ6Ol9tbV9tb3ZlbWFza19lcGk4OworLQorLSAgICAgICAgICAgICAg ICBfbW1fbW92ZW1hc2tfZXBpOChjcmF0ZTo6bWVtOjp0cmFuc211dGUoc2VsZikpICE9IDAKKy0g ICAgICAgICAgICB9CistICAgICAgICB9CistICAgIH07CistfQorZGlmZiAtLWdpdCBhL3RoaXJk X3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vc2h1ZmZsZS5ycyBiL3RoaXJkX3Bh cnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vc2h1ZmZsZS5ycworZGVsZXRlZCBmaWxl IG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2Rl Z2VuL3NodWZmbGUucnMKKysrKyAvZGV2L251bGwKK0BAIC0xLDE1MCArMCwwIEBACistLy8hIElt cGxlbWVudGF0aW9ucyBvZiB0aGUgYFNodWZmbGVSZXN1bHRgIHRyYWl0IGZvciB0aGUgZGlmZmVy ZW50IG51bWJlcnMgb2YKKy0vLyEgbGFuZXMgYW5kIHZlY3RvciBlbGVtZW50IHR5cGVzLgorLQor LXVzZSBjcmF0ZTo6bWFza3M6Oio7CistdXNlIGNyYXRlOjpzZWFsZWQ6OntTZWFsLCBTaHVmZmxl fTsKKy0KKy1tYWNyb19ydWxlcyEgaW1wbF9zaHVmZmxlIHsKKy0gICAgKCRhcnJheTp0eSwgJGJh c2U6dHksICRvdXQ6dHkpID0+IHsKKy0gICAgICAgIGltcGwgU2VhbDwkYXJyYXk+IGZvciAkYmFz ZSB7fQorLSAgICAgICAgaW1wbCBTaHVmZmxlPCRhcnJheT4gZm9yICRiYXNlIHsKKy0gICAgICAg ICAgICB0eXBlIE91dHB1dCA9ICRvdXQ7CistICAgICAgICB9CistICAgIH07CistfQorLQorLWlt cGxfc2h1ZmZsZSEgeyBbdTMyOyAyXSwgaTgsIGNyYXRlOjpjb2RlZ2VuOjppOHgyIH0KKy1pbXBs X3NodWZmbGUhIHsgW3UzMjsgNF0sIGk4LCBjcmF0ZTo6Y29kZWdlbjo6aTh4NCB9CistaW1wbF9z aHVmZmxlISB7IFt1MzI7IDhdLCBpOCwgY3JhdGU6OmNvZGVnZW46Omk4eDggfQorLWltcGxfc2h1 ZmZsZSEgeyBbdTMyOyAxNl0sIGk4LCBjcmF0ZTo6Y29kZWdlbjo6aTh4MTYgfQorLWltcGxfc2h1 ZmZsZSEgeyBbdTMyOyAzMl0sIGk4LCBjcmF0ZTo6Y29kZWdlbjo6aTh4MzIgfQorLWltcGxfc2h1 ZmZsZSEgeyBbdTMyOyA2NF0sIGk4LCBjcmF0ZTo6Y29kZWdlbjo6aTh4NjQgfQorLQorLWltcGxf c2h1ZmZsZSEgeyBbdTMyOyAyXSwgdTgsIGNyYXRlOjpjb2RlZ2VuOjp1OHgyIH0KKy1pbXBsX3No dWZmbGUhIHsgW3UzMjsgNF0sIHU4LCBjcmF0ZTo6Y29kZWdlbjo6dTh4NCB9CistaW1wbF9zaHVm ZmxlISB7IFt1MzI7IDhdLCB1OCwgY3JhdGU6OmNvZGVnZW46OnU4eDggfQorLWltcGxfc2h1ZmZs ZSEgeyBbdTMyOyAxNl0sIHU4LCBjcmF0ZTo6Y29kZWdlbjo6dTh4MTYgfQorLWltcGxfc2h1ZmZs ZSEgeyBbdTMyOyAzMl0sIHU4LCBjcmF0ZTo6Y29kZWdlbjo6dTh4MzIgfQorLWltcGxfc2h1ZmZs ZSEgeyBbdTMyOyA2NF0sIHU4LCBjcmF0ZTo6Y29kZWdlbjo6dTh4NjQgfQorLQorLWltcGxfc2h1 ZmZsZSEgeyBbdTMyOyAyXSwgbTgsIGNyYXRlOjpjb2RlZ2VuOjptOHgyIH0KKy1pbXBsX3NodWZm bGUhIHsgW3UzMjsgNF0sIG04LCBjcmF0ZTo6Y29kZWdlbjo6bTh4NCB9CistaW1wbF9zaHVmZmxl ISB7IFt1MzI7IDhdLCBtOCwgY3JhdGU6OmNvZGVnZW46Om04eDggfQorLWltcGxfc2h1ZmZsZSEg eyBbdTMyOyAxNl0sIG04LCBjcmF0ZTo6Y29kZWdlbjo6bTh4MTYgfQorLWltcGxfc2h1ZmZsZSEg eyBbdTMyOyAzMl0sIG04LCBjcmF0ZTo6Y29kZWdlbjo6bTh4MzIgfQorLWltcGxfc2h1ZmZsZSEg eyBbdTMyOyA2NF0sIG04LCBjcmF0ZTo6Y29kZWdlbjo6bTh4NjQgfQorLQorLWltcGxfc2h1ZmZs ZSEgeyBbdTMyOyAyXSwgaTE2LCBjcmF0ZTo6Y29kZWdlbjo6aTE2eDIgfQorLWltcGxfc2h1ZmZs ZSEgeyBbdTMyOyA0XSwgaTE2LCBjcmF0ZTo6Y29kZWdlbjo6aTE2eDQgfQorLWltcGxfc2h1ZmZs ZSEgeyBbdTMyOyA4XSwgaTE2LCBjcmF0ZTo6Y29kZWdlbjo6aTE2eDggfQorLWltcGxfc2h1ZmZs ZSEgeyBbdTMyOyAxNl0sIGkxNiwgY3JhdGU6OmNvZGVnZW46OmkxNngxNiB9CistaW1wbF9zaHVm ZmxlISB7IFt1MzI7IDMyXSwgaTE2LCBjcmF0ZTo6Y29kZWdlbjo6aTE2eDMyIH0KKy0KKy1pbXBs X3NodWZmbGUhIHsgW3UzMjsgMl0sIHUxNiwgY3JhdGU6OmNvZGVnZW46OnUxNngyIH0KKy1pbXBs X3NodWZmbGUhIHsgW3UzMjsgNF0sIHUxNiwgY3JhdGU6OmNvZGVnZW46OnUxNng0IH0KKy1pbXBs X3NodWZmbGUhIHsgW3UzMjsgOF0sIHUxNiwgY3JhdGU6OmNvZGVnZW46OnUxNng4IH0KKy1pbXBs X3NodWZmbGUhIHsgW3UzMjsgMTZdLCB1MTYsIGNyYXRlOjpjb2RlZ2VuOjp1MTZ4MTYgfQorLWlt cGxfc2h1ZmZsZSEgeyBbdTMyOyAzMl0sIHUxNiwgY3JhdGU6OmNvZGVnZW46OnUxNngzMiB9Cist CistaW1wbF9zaHVmZmxlISB7IFt1MzI7IDJdLCBtMTYsIGNyYXRlOjpjb2RlZ2VuOjptMTZ4MiB9 CistaW1wbF9zaHVmZmxlISB7IFt1MzI7IDRdLCBtMTYsIGNyYXRlOjpjb2RlZ2VuOjptMTZ4NCB9 CistaW1wbF9zaHVmZmxlISB7IFt1MzI7IDhdLCBtMTYsIGNyYXRlOjpjb2RlZ2VuOjptMTZ4OCB9 CistaW1wbF9zaHVmZmxlISB7IFt1MzI7IDE2XSwgbTE2LCBjcmF0ZTo6Y29kZWdlbjo6bTE2eDE2 IH0KKy0KKy1pbXBsX3NodWZmbGUhIHsgW3UzMjsgMl0sIGkzMiwgY3JhdGU6OmNvZGVnZW46Omkz MngyIH0KKy1pbXBsX3NodWZmbGUhIHsgW3UzMjsgNF0sIGkzMiwgY3JhdGU6OmNvZGVnZW46Omkz Mng0IH0KKy1pbXBsX3NodWZmbGUhIHsgW3UzMjsgOF0sIGkzMiwgY3JhdGU6OmNvZGVnZW46Omkz Mng4IH0KKy1pbXBsX3NodWZmbGUhIHsgW3UzMjsgMTZdLCBpMzIsIGNyYXRlOjpjb2RlZ2VuOjpp MzJ4MTYgfQorLQorLWltcGxfc2h1ZmZsZSEgeyBbdTMyOyAyXSwgdTMyLCBjcmF0ZTo6Y29kZWdl bjo6dTMyeDIgfQorLWltcGxfc2h1ZmZsZSEgeyBbdTMyOyA0XSwgdTMyLCBjcmF0ZTo6Y29kZWdl bjo6dTMyeDQgfQorLWltcGxfc2h1ZmZsZSEgeyBbdTMyOyA4XSwgdTMyLCBjcmF0ZTo6Y29kZWdl bjo6dTMyeDggfQorLWltcGxfc2h1ZmZsZSEgeyBbdTMyOyAxNl0sIHUzMiwgY3JhdGU6OmNvZGVn ZW46OnUzMngxNiB9CistCistaW1wbF9zaHVmZmxlISB7IFt1MzI7IDJdLCBmMzIsIGNyYXRlOjpj b2RlZ2VuOjpmMzJ4MiB9CistaW1wbF9zaHVmZmxlISB7IFt1MzI7IDRdLCBmMzIsIGNyYXRlOjpj b2RlZ2VuOjpmMzJ4NCB9CistaW1wbF9zaHVmZmxlISB7IFt1MzI7IDhdLCBmMzIsIGNyYXRlOjpj b2RlZ2VuOjpmMzJ4OCB9CistaW1wbF9zaHVmZmxlISB7IFt1MzI7IDE2XSwgZjMyLCBjcmF0ZTo6 Y29kZWdlbjo6ZjMyeDE2IH0KKy0KKy1pbXBsX3NodWZmbGUhIHsgW3UzMjsgMl0sIG0zMiwgY3Jh dGU6OmNvZGVnZW46Om0zMngyIH0KKy1pbXBsX3NodWZmbGUhIHsgW3UzMjsgNF0sIG0zMiwgY3Jh dGU6OmNvZGVnZW46Om0zMng0IH0KKy1pbXBsX3NodWZmbGUhIHsgW3UzMjsgOF0sIG0zMiwgY3Jh dGU6OmNvZGVnZW46Om0zMng4IH0KKy1pbXBsX3NodWZmbGUhIHsgW3UzMjsgMTZdLCBtMzIsIGNy YXRlOjpjb2RlZ2VuOjptMzJ4MTYgfQorLQorLS8qIEZJWE1FOiA2NC1iaXQgc2luZ2xlIGVsZW1l bnQgdmVjdG9yCistaW1wbF9zaHVmZmxlISB7IFt1MzI7IDFdLCBpNjQsIGNyYXRlOjpjb2RlZ2Vu OjppNjR4MSB9CistKi8KKy1pbXBsX3NodWZmbGUhIHsgW3UzMjsgMl0sIGk2NCwgY3JhdGU6OmNv ZGVnZW46Omk2NHgyIH0KKy1pbXBsX3NodWZmbGUhIHsgW3UzMjsgNF0sIGk2NCwgY3JhdGU6OmNv ZGVnZW46Omk2NHg0IH0KKy1pbXBsX3NodWZmbGUhIHsgW3UzMjsgOF0sIGk2NCwgY3JhdGU6OmNv ZGVnZW46Omk2NHg4IH0KKy0KKy0vKiBGSVhNRTogNjQtYml0IHNpbmdsZSBlbGVtZW50IHZlY3Rv cgorLWltcGxfc2h1ZmZsZSEgeyBbdTMyOyAxXSwgaTY0LCBjcmF0ZTo6Y29kZWdlbjo6aTY0eDEg fQorLSovCistaW1wbF9zaHVmZmxlISB7IFt1MzI7IDJdLCB1NjQsIGNyYXRlOjpjb2RlZ2VuOjp1 NjR4MiB9CistaW1wbF9zaHVmZmxlISB7IFt1MzI7IDRdLCB1NjQsIGNyYXRlOjpjb2RlZ2VuOjp1 NjR4NCB9CistaW1wbF9zaHVmZmxlISB7IFt1MzI7IDhdLCB1NjQsIGNyYXRlOjpjb2RlZ2VuOjp1 NjR4OCB9CistCistLyogRklYTUU6IDY0LWJpdCBzaW5nbGUgZWxlbWVudCB2ZWN0b3IKKy1pbXBs X3NodWZmbGUhIHsgW3UzMjsgMV0sIGk2NCwgY3JhdGU6OmNvZGVnZW46Omk2NHgxIH0KKy0qLwor LWltcGxfc2h1ZmZsZSEgeyBbdTMyOyAyXSwgZjY0LCBjcmF0ZTo6Y29kZWdlbjo6ZjY0eDIgfQor LWltcGxfc2h1ZmZsZSEgeyBbdTMyOyA0XSwgZjY0LCBjcmF0ZTo6Y29kZWdlbjo6ZjY0eDQgfQor LWltcGxfc2h1ZmZsZSEgeyBbdTMyOyA4XSwgZjY0LCBjcmF0ZTo6Y29kZWdlbjo6ZjY0eDggfQor LQorLS8qIEZJWE1FOiA2NC1iaXQgc2luZ2xlIGVsZW1lbnQgdmVjdG9yCistaW1wbF9zaHVmZmxl ISB7IFt1MzI7IDFdLCBpNjQsIGNyYXRlOjpjb2RlZ2VuOjppNjR4MSB9CistKi8KKy1pbXBsX3No dWZmbGUhIHsgW3UzMjsgMl0sIG02NCwgY3JhdGU6OmNvZGVnZW46Om02NHgyIH0KKy1pbXBsX3No dWZmbGUhIHsgW3UzMjsgNF0sIG02NCwgY3JhdGU6OmNvZGVnZW46Om02NHg0IH0KKy1pbXBsX3No dWZmbGUhIHsgW3UzMjsgOF0sIG02NCwgY3JhdGU6OmNvZGVnZW46Om02NHg4IH0KKy0KKy1pbXBs X3NodWZmbGUhIHsgW3UzMjsgMl0sIGlzaXplLCBjcmF0ZTo6Y29kZWdlbjo6aXNpemV4MiB9Cist aW1wbF9zaHVmZmxlISB7IFt1MzI7IDRdLCBpc2l6ZSwgY3JhdGU6OmNvZGVnZW46OmlzaXpleDQg fQorLWltcGxfc2h1ZmZsZSEgeyBbdTMyOyA4XSwgaXNpemUsIGNyYXRlOjpjb2RlZ2VuOjppc2l6 ZXg4IH0KKy0KKy1pbXBsX3NodWZmbGUhIHsgW3UzMjsgMl0sIHVzaXplLCBjcmF0ZTo6Y29kZWdl bjo6dXNpemV4MiB9CistaW1wbF9zaHVmZmxlISB7IFt1MzI7IDRdLCB1c2l6ZSwgY3JhdGU6OmNv ZGVnZW46OnVzaXpleDQgfQorLWltcGxfc2h1ZmZsZSEgeyBbdTMyOyA4XSwgdXNpemUsIGNyYXRl Ojpjb2RlZ2VuOjp1c2l6ZXg4IH0KKy0KKy1pbXBsX3NodWZmbGUhIHsgW3UzMjsgMl0sIG1zaXpl LCBjcmF0ZTo6Y29kZWdlbjo6bXNpemV4MiB9CistaW1wbF9zaHVmZmxlISB7IFt1MzI7IDRdLCBt c2l6ZSwgY3JhdGU6OmNvZGVnZW46Om1zaXpleDQgfQorLWltcGxfc2h1ZmZsZSEgeyBbdTMyOyA4 XSwgbXNpemUsIGNyYXRlOjpjb2RlZ2VuOjptc2l6ZXg4IH0KKy0KKy1pbXBsPFQ+IFNlYWw8W3Uz MjsgMl0+IGZvciAqY29uc3QgVCB7fQorLWltcGw8VD4gU2h1ZmZsZTxbdTMyOyAyXT4gZm9yICpj b25zdCBUIHsKKy0gICAgdHlwZSBPdXRwdXQgPSBjcmF0ZTo6Y29kZWdlbjo6Y3B0cngyPFQ+Owor LX0KKy1pbXBsPFQ+IFNlYWw8W3UzMjsgNF0+IGZvciAqY29uc3QgVCB7fQorLWltcGw8VD4gU2h1 ZmZsZTxbdTMyOyA0XT4gZm9yICpjb25zdCBUIHsKKy0gICAgdHlwZSBPdXRwdXQgPSBjcmF0ZTo6 Y29kZWdlbjo6Y3B0cng0PFQ+OworLX0KKy1pbXBsPFQ+IFNlYWw8W3UzMjsgOF0+IGZvciAqY29u c3QgVCB7fQorLWltcGw8VD4gU2h1ZmZsZTxbdTMyOyA4XT4gZm9yICpjb25zdCBUIHsKKy0gICAg dHlwZSBPdXRwdXQgPSBjcmF0ZTo6Y29kZWdlbjo6Y3B0cng4PFQ+OworLX0KKy0KKy1pbXBsPFQ+ IFNlYWw8W3UzMjsgMl0+IGZvciAqbXV0IFQge30KKy1pbXBsPFQ+IFNodWZmbGU8W3UzMjsgMl0+ IGZvciAqbXV0IFQgeworLSAgICB0eXBlIE91dHB1dCA9IGNyYXRlOjpjb2RlZ2VuOjptcHRyeDI8 VD47CistfQorLWltcGw8VD4gU2VhbDxbdTMyOyA0XT4gZm9yICptdXQgVCB7fQorLWltcGw8VD4g U2h1ZmZsZTxbdTMyOyA0XT4gZm9yICptdXQgVCB7CistICAgIHR5cGUgT3V0cHV0ID0gY3JhdGU6 OmNvZGVnZW46Om1wdHJ4NDxUPjsKKy19CistaW1wbDxUPiBTZWFsPFt1MzI7IDhdPiBmb3IgKm11 dCBUIHt9CistaW1wbDxUPiBTaHVmZmxlPFt1MzI7IDhdPiBmb3IgKm11dCBUIHsKKy0gICAgdHlw ZSBPdXRwdXQgPSBjcmF0ZTo6Y29kZWdlbjo6bXB0cng4PFQ+OworLX0KKy0KKy1pbXBsX3NodWZm bGUhIHsgW3UzMjsgMV0sIGkxMjgsIGNyYXRlOjpjb2RlZ2VuOjppMTI4eDEgfQorLWltcGxfc2h1 ZmZsZSEgeyBbdTMyOyAyXSwgaTEyOCwgY3JhdGU6OmNvZGVnZW46OmkxMjh4MiB9CistaW1wbF9z aHVmZmxlISB7IFt1MzI7IDRdLCBpMTI4LCBjcmF0ZTo6Y29kZWdlbjo6aTEyOHg0IH0KKy0KKy1p bXBsX3NodWZmbGUhIHsgW3UzMjsgMV0sIHUxMjgsIGNyYXRlOjpjb2RlZ2VuOjp1MTI4eDEgfQor LWltcGxfc2h1ZmZsZSEgeyBbdTMyOyAyXSwgdTEyOCwgY3JhdGU6OmNvZGVnZW46OnUxMjh4MiB9 CistaW1wbF9zaHVmZmxlISB7IFt1MzI7IDRdLCB1MTI4LCBjcmF0ZTo6Y29kZWdlbjo6dTEyOHg0 IH0KKy0KKy1pbXBsX3NodWZmbGUhIHsgW3UzMjsgMV0sIG0xMjgsIGNyYXRlOjpjb2RlZ2VuOjpt MTI4eDEgfQorLWltcGxfc2h1ZmZsZSEgeyBbdTMyOyAyXSwgbTEyOCwgY3JhdGU6OmNvZGVnZW46 Om0xMjh4MiB9CistaW1wbF9zaHVmZmxlISB7IFt1MzI7IDRdLCBtMTI4LCBjcmF0ZTo6Y29kZWdl bjo6bTEyOHg0IH0KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3Ny Yy9jb2RlZ2VuL3NodWZmbGUxX2R5bi5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQv c3JjL2NvZGVnZW4vc2h1ZmZsZTFfZHluLnJzCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0t LSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vc2h1ZmZsZTFfZHlu LnJzCisrKysgL2Rldi9udWxsCitAQCAtMSw0MDggKzAsMCBAQAorLS8vISBTaHVmZmxlIHZlY3Rv ciBsYW5lcyB3aXRoIHJ1bi10aW1lIGluZGljZXMuCistCistdXNlIGNyYXRlOjoqOworLQorLXB1 YiB0cmFpdCBTaHVmZmxlMUR5biB7CistICAgIHR5cGUgSW5kaWNlczsKKy0gICAgZm4gc2h1ZmZs ZTFfZHluKHNlbGYsIF86IFNlbGY6OkluZGljZXMpIC0+IFNlbGY7CistfQorLQorLS8vIEZhbGxi YWNrIGltcGxlbWVudGF0aW9uCistbWFjcm9fcnVsZXMhIGltcGxfZmFsbGJhY2sgeworLSAgICAo JGlkOmlkZW50KSA9PiB7CistICAgICAgICBpbXBsIFNodWZmbGUxRHluIGZvciAkaWQgeworLSAg ICAgICAgICAgIHR5cGUgSW5kaWNlcyA9IFNlbGY7CistICAgICAgICAgICAgI1tpbmxpbmVdCist ICAgICAgICAgICAgZm4gc2h1ZmZsZTFfZHluKHNlbGYsIGluZGljZXM6IFNlbGY6OkluZGljZXMp IC0+IFNlbGYgeworLSAgICAgICAgICAgICAgICBsZXQgbXV0IHJlc3VsdCA9IFNlbGY6OnNwbGF0 KDApOworLSAgICAgICAgICAgICAgICBmb3IgaSBpbiAwLi4kaWQ6OmxhbmVzKCkgeworLSAgICAg ICAgICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0LnJlcGxhY2UoaSwgc2VsZi5leHRyYWN0KGlu ZGljZXMuZXh0cmFjdChpKSBhcyB1c2l6ZSkpOworLSAgICAgICAgICAgICAgICB9CistICAgICAg ICAgICAgICAgIHJlc3VsdAorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgfTsKKy19 CistCistbWFjcm9fcnVsZXMhIGltcGxfc2h1ZmZsZTFfZHluIHsKKy0gICAgKHU4eDgpID0+IHsK Ky0gICAgICAgIGNmZ19pZiEgeworLSAgICAgICAgICAgIGlmICNbY2ZnKGFsbCgKKy0gICAgICAg ICAgICAgICAgYW55KAorLSAgICAgICAgICAgICAgICAgICAgYWxsKHRhcmdldF9hcmNoID0gImFh cmNoNjQiLCB0YXJnZXRfZmVhdHVyZSA9ICJuZW9uIiksCistICAgICAgICAgICAgICAgICAgICBh bGwodGFyZ2V0X2FyY2ggPSAiZG9lc25vdGV4aXN0IiwgdGFyZ2V0X2ZlYXR1cmUgPSAidjciLAor LSAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldF9mZWF0dXJlID0gIm5lb24iKQorLSAgICAg ICAgICAgICAgICApLAorLSAgICAgICAgICAgICAgICBhbnkoZmVhdHVyZSA9ICJjb3JlX2FyY2gi LCBsaWJjb3JlX25lb24pCistICAgICAgICAgICAgKQorLSAgICAgICAgICAgICldIHsKKy0gICAg ICAgICAgICAgICAgaW1wbCBTaHVmZmxlMUR5biBmb3IgdTh4OCB7CistICAgICAgICAgICAgICAg ICAgICB0eXBlIEluZGljZXMgPSBTZWxmOworLSAgICAgICAgICAgICAgICAgICAgI1tpbmxpbmVd CistICAgICAgICAgICAgICAgICAgICBmbiBzaHVmZmxlMV9keW4oc2VsZiwgaW5kaWNlczogU2Vs Zjo6SW5kaWNlcykgLT4gU2VsZiB7CistICAgICAgICAgICAgICAgICAgICAgICAgI1tjZmcodGFy Z2V0X2FyY2ggPSAiYWFyY2g2NCIpXQorLSAgICAgICAgICAgICAgICAgICAgICAgIHVzZSBjcmF0 ZTo6YXJjaDo6YWFyY2g2NDo6dnRibDFfdTg7CistICAgICAgICAgICAgICAgICAgICAgICAgI1tj ZmcodGFyZ2V0X2FyY2ggPSAiZG9lc25vdGV4aXN0IildCistICAgICAgICAgICAgICAgICAgICAg ICAgdXNlIGNyYXRlOjphcmNoOjphcm06OnZ0YmwxX3U4OworLQorLSAgICAgICAgICAgICAgICAg ICAgICAgIC8vIFRoaXMgaXMgc2FmZSBiZWNhdXNlIHRoZSBiaW5hcnkgaXMgY29tcGlsZWQgd2l0 aAorLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIG5lb24gZW5hYmxlZCBhdCBjb21waWxlLXRp bWUgYW5kIGNhbiB0aGVyZWZvcmUgb25seQorLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJ1 biBvbiBDUFVzIHRoYXQgaGF2ZSBpdCBlbmFibGVkLgorLSAgICAgICAgICAgICAgICAgICAgICAg IHVuc2FmZSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNpbWQobWVtOjp0cmFuc211 dGUoCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2dGJsMV91OChtZW06OnRyYW5z bXV0ZShzZWxmLjApLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj cmF0ZTo6bWVtOjp0cmFuc211dGUoaW5kaWNlcy4wKSkKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgKSkKKy0gICAgICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAg ICB9CistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICB9IGVsc2UgeworLSAgICAgICAg ICAgICAgICBpbXBsX2ZhbGxiYWNrISh1OHg4KTsKKy0gICAgICAgICAgICB9CistICAgICAgICB9 CistICAgIH07CistICAgICh1OHgxNikgPT4geworLSAgICAgICAgY2ZnX2lmISB7CistICAgICAg ICAgICAgaWYgI1tjZmcoYWxsKGFueSh0YXJnZXRfYXJjaCA9ICJ4ODYiLCB0YXJnZXRfYXJjaCA9 ICJ4ODZfNjQiKSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0X2ZlYXR1cmUgPSAi c3NzZTMiKSldIHsKKy0gICAgICAgICAgICAgICAgaW1wbCBTaHVmZmxlMUR5biBmb3IgdTh4MTYg eworLSAgICAgICAgICAgICAgICAgICAgdHlwZSBJbmRpY2VzID0gU2VsZjsKKy0gICAgICAgICAg ICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgICAgICAgICAgZm4gc2h1ZmZsZTFfZHlu KHNlbGYsIGluZGljZXM6IFNlbGY6OkluZGljZXMpIC0+IFNlbGYgeworLSAgICAgICAgICAgICAg ICAgICAgICAgICNbY2ZnKHRhcmdldF9hcmNoID0gIng4NiIpXQorLSAgICAgICAgICAgICAgICAg ICAgICAgIHVzZSBjcmF0ZTo6YXJjaDo6eDg2OjpfbW1fc2h1ZmZsZV9lcGk4OworLSAgICAgICAg ICAgICAgICAgICAgICAgICNbY2ZnKHRhcmdldF9hcmNoID0gIng4Nl82NCIpXQorLSAgICAgICAg ICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6YXJjaDo6eDg2XzY0OjpfbW1fc2h1ZmZsZV9lcGk4 OworLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgaXMgc2FmZSBiZWNhdXNlIHRoZSBi aW5hcnkgaXMgY29tcGlsZWQgd2l0aAorLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNzc2Uz IGVuYWJsZWQgYXQgY29tcGlsZS10aW1lIGFuZCBjYW4gdGhlcmVmb3JlIG9ubHkKKy0gICAgICAg ICAgICAgICAgICAgICAgICAvLyBydW4gb24gQ1BVcyB0aGF0IGhhdmUgaXQgZW5hYmxlZC4KKy0g ICAgICAgICAgICAgICAgICAgICAgICB1bnNhZmUgeworLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICBTaW1kKG1lbTo6dHJhbnNtdXRlKAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgX21tX3NodWZmbGVfZXBpOChtZW06OnRyYW5zbXV0ZShzZWxmLjApLAorLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyYXRlOjptZW06OnRyYW5zbXV0 ZShpbmRpY2VzKSkKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKSkKKy0gICAgICAgICAg ICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAg IH0KKy0gICAgICAgICAgICB9IGVsc2UgaWYgI1tjZmcoYWxsKHRhcmdldF9hcmNoID0gImFhcmNo NjQiLCB0YXJnZXRfZmVhdHVyZSA9ICJuZW9uIiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGFueShmZWF0dXJlID0gImNvcmVfYXJjaCIsIGxpYmNvcmVfbmVvbikpKV0geworLSAg ICAgICAgICAgICAgICBpbXBsIFNodWZmbGUxRHluIGZvciB1OHgxNiB7CistICAgICAgICAgICAg ICAgICAgICB0eXBlIEluZGljZXMgPSBTZWxmOworLSAgICAgICAgICAgICAgICAgICAgI1tpbmxp bmVdCistICAgICAgICAgICAgICAgICAgICBmbiBzaHVmZmxlMV9keW4oc2VsZiwgaW5kaWNlczog U2VsZjo6SW5kaWNlcykgLT4gU2VsZiB7CistICAgICAgICAgICAgICAgICAgICAgICAgdXNlIGNy YXRlOjphcmNoOjphYXJjaDY0Ojp2cXRibDFxX3U4OworLQorLSAgICAgICAgICAgICAgICAgICAg ICAgIC8vIFRoaXMgaXMgc2FmZSBiZWNhdXNlIHRoZSBiaW5hcnkgaXMgY29tcGlsZWQgd2l0aAor LSAgICAgICAgICAgICAgICAgICAgICAgIC8vIG5lb24gZW5hYmxlZCBhdCBjb21waWxlLXRpbWUg YW5kIGNhbiB0aGVyZWZvcmUgb25seQorLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJ1biBv biBDUFVzIHRoYXQgaGF2ZSBpdCBlbmFibGVkLgorLSAgICAgICAgICAgICAgICAgICAgICAgIHVu c2FmZSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNpbWQobWVtOjp0cmFuc211dGUo CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2cXRibDFxX3U4KG1lbTo6dHJhbnNt dXRlKHNlbGYuMCksCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y3JhdGU6Om1lbTo6dHJhbnNtdXRlKGluZGljZXMuMCkpCistICAgICAgICAgICAgICAgICAgICAg ICAgICAgICkpCistICAgICAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAg ICAgfQorLSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgfSBlbHNlIGlmICNbY2ZnKGFs bCh0YXJnZXRfYXJjaCA9ICJkb2Vzbm90ZXhpc3QiLCB0YXJnZXRfZmVhdHVyZSA9ICJ2NyIsCist ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRfZmVhdHVyZSA9ICJuZW9uIiwK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFueShmZWF0dXJlID0gImNvcmVfYXJj aCIsIGxpYmNvcmVfbmVvbikpKV0geworLSAgICAgICAgICAgICAgICBpbXBsIFNodWZmbGUxRHlu IGZvciB1OHgxNiB7CistICAgICAgICAgICAgICAgICAgICB0eXBlIEluZGljZXMgPSBTZWxmOwor LSAgICAgICAgICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgICAgICAgICBmbiBz aHVmZmxlMV9keW4oc2VsZiwgaW5kaWNlczogU2VsZjo6SW5kaWNlcykgLT4gU2VsZiB7CistICAg ICAgICAgICAgICAgICAgICAgICAgdXNlIGNyYXRlOjphcmNoOjphcm06OnZ0YmwyX3U4OworLQor LSAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgaXMgc2FmZSBiZWNhdXNlIHRoZSBiaW5h cnkgaXMgY29tcGlsZWQgd2l0aAorLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIG5lb24gZW5h YmxlZCBhdCBjb21waWxlLXRpbWUgYW5kIGNhbiB0aGVyZWZvcmUgb25seQorLSAgICAgICAgICAg ICAgICAgICAgICAgIC8vIHJ1biBvbiBDUFVzIHRoYXQgaGF2ZSBpdCBlbmFibGVkLgorLSAgICAg ICAgICAgICAgICAgICAgICAgIHVuc2FmZSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAg IHVuaW9uIFUgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgajogdTh4MTYsCist ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzOiAodTh4OCwgdTh4OCksCistICAgICAg ICAgICAgICAgICAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg bGV0IChpMCwgaTEpID0gVSB7IGo6IHkgfS5zOworLQorLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICBsZXQgcjAgPSB2dGJsMl91OCgKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IG1lbTo6dHJhbnNtdXRlKHgpLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3Jh dGU6Om1lbTo6dHJhbnNtdXRlKGkwKQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICApOwor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgcjEgPSB2dGJsMl91OCgKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIG1lbTo6dHJhbnNtdXRlKHgpLAorLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgY3JhdGU6Om1lbTo6dHJhbnNtdXRlKGkxKQorLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICApOworLQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBs ZXQgciA9IFUgeyBzOiAocjAsIHIxKSB9Lmo7CistCistICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFNpbWQobWVtOjp0cmFuc211dGUocikpCistICAgICAgICAgICAgICAgICAgICAgICAgfQor LSAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAg fSBlbHNlIHsKKy0gICAgICAgICAgICAgICAgaW1wbF9mYWxsYmFjayEodTh4MTYpOworLSAgICAg ICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgfTsKKy0gICAgKHUxNng4KSA9PiB7CistICAgICAg ICBpbXBsIFNodWZmbGUxRHluIGZvciB1MTZ4OCB7CistICAgICAgICAgICAgdHlwZSBJbmRpY2Vz ID0gU2VsZjsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBmbiBzaHVmZmxl MV9keW4oc2VsZiwgaW5kaWNlczogU2VsZjo6SW5kaWNlcykgLT4gU2VsZiB7CistICAgICAgICAg ICAgICAgIGxldCBpbmRpY2VzOiB1OHg4ID0gKGluZGljZXMgKiAyKS5jYXN0KCk7CistICAgICAg ICAgICAgICAgIGxldCBpbmRpY2VzOiB1OHgxNiA9IHNodWZmbGUhKGluZGljZXMsIFswLCAwLCAx LCAxLCAyLCAyLCAzLCAzLCA0LCA0LCA1LCA1LCA2LCA2LCA3LCA3XSk7CistICAgICAgICAgICAg ICAgIGxldCB2ID0gdTh4MTY6Om5ldygwLCAxLCAwLCAxLCAwLCAxLCAwLCAxLCAwLCAxLCAwLCAx LCAwLCAxLCAwLCAxKTsKKy0gICAgICAgICAgICAgICAgbGV0IGluZGljZXMgPSBpbmRpY2VzICsg djsKKy0gICAgICAgICAgICAgICAgdW5zYWZlIHsKKy0gICAgICAgICAgICAgICAgICAgIGxldCBz OiB1OHgxNiA9IGNyYXRlOjptZW06OnRyYW5zbXV0ZShzZWxmKTsKKy0gICAgICAgICAgICAgICAg ICAgIGNyYXRlOjptZW06OnRyYW5zbXV0ZShzLnNodWZmbGUxX2R5bihpbmRpY2VzKSkKKy0gICAg ICAgICAgICAgICAgfQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgfTsKKy0gICAg KHUzMng0KSA9PiB7CistICAgICAgICBjZmdfaWYhIHsKKy0gICAgICAgICAgICBpZiAjW2NmZyhh bGwoYW55KHRhcmdldF9hcmNoID0gIng4NiIsIHRhcmdldF9hcmNoID0gIng4Nl82NCIpLAorLSAg ICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRfZmVhdHVyZSA9ICJhdngiKSldIHsKKy0gICAg ICAgICAgICAgICAgaW1wbCBTaHVmZmxlMUR5biBmb3IgdTMyeDQgeworLSAgICAgICAgICAgICAg ICAgICAgdHlwZSBJbmRpY2VzID0gU2VsZjsKKy0gICAgICAgICAgICAgICAgICAgICNbaW5saW5l XQorLSAgICAgICAgICAgICAgICAgICAgZm4gc2h1ZmZsZTFfZHluKHNlbGYsIGluZGljZXM6IFNl bGY6OkluZGljZXMpIC0+IFNlbGYgeworLSAgICAgICAgICAgICAgICAgICAgICAgICNbY2ZnKHRh cmdldF9hcmNoID0gIng4NiIpXQorLSAgICAgICAgICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6 YXJjaDo6eDg2Ojp7X21tX3Blcm11dGV2YXJfcHN9OworLSAgICAgICAgICAgICAgICAgICAgICAg ICNbY2ZnKHRhcmdldF9hcmNoID0gIng4Nl82NCIpXQorLSAgICAgICAgICAgICAgICAgICAgICAg IHVzZSBjcmF0ZTo6YXJjaDo6eDg2XzY0Ojp7X21tX3Blcm11dGV2YXJfcHN9OworLQorLSAgICAg ICAgICAgICAgICAgICAgICAgIHVuc2FmZSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNyYXRlOjptZW06OnRyYW5zbXV0ZSgKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IF9tbV9wZXJtdXRldmFyX3BzKAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNyYXRlOjptZW06OnRyYW5zbXV0ZShzZWxmLjApLAorLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGNyYXRlOjptZW06OnRyYW5zbXV0ZShpbmRpY2VzLjApCistICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICApCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICkK Ky0gICAgICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICB9CistICAg ICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICB9IGVsc2UgeworLSAgICAgICAgICAgICAgICBp bXBsIFNodWZmbGUxRHluIGZvciB1MzJ4NCB7CistICAgICAgICAgICAgICAgICAgICB0eXBlIElu ZGljZXMgPSBTZWxmOworLSAgICAgICAgICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAg ICAgICAgICAgICBmbiBzaHVmZmxlMV9keW4oc2VsZiwgaW5kaWNlczogU2VsZjo6SW5kaWNlcykg LT4gU2VsZiB7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGluZGljZXM6IHU4eDQgPSAo aW5kaWNlcyAqIDQpLmNhc3QoKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgaW5kaWNl czogdTh4MTYgPSBzaHVmZmxlISgKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kaWNl cywKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgWzAsIDAsIDAsIDAsIDEsIDEsIDEsIDEs IDIsIDIsIDIsIDIsIDMsIDMsIDMsIDNdCistICAgICAgICAgICAgICAgICAgICAgICAgKTsKKy0g ICAgICAgICAgICAgICAgICAgICAgICBsZXQgdiA9IHU4eDE2OjpuZXcoCistICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDAsIDEsIDIsIDMsIDAsIDEsIDIsIDMsIDAsIDEsIDIsIDMsIDAsIDEs IDIsIDMKKy0gICAgICAgICAgICAgICAgICAgICAgICApOworLSAgICAgICAgICAgICAgICAgICAg ICAgIGxldCBpbmRpY2VzID0gaW5kaWNlcyArIHY7CistICAgICAgICAgICAgICAgICAgICAgICAg dW5zYWZlIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHM6IHU4eDE2ID1jcmF0 ZTo6bWVtOjp0cmFuc211dGUoc2VsZik7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgY3Jh dGU6Om1lbTo6dHJhbnNtdXRlKHMuc2h1ZmZsZTFfZHluKGluZGljZXMpKQorLSAgICAgICAgICAg ICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAg fQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgfTsKKy0gICAgKHU2NHgyKSA9PiB7 CistICAgICAgICBjZmdfaWYhIHsKKy0gICAgICAgICAgICBpZiAjW2NmZyhhbGwoYW55KHRhcmdl dF9hcmNoID0gIng4NiIsIHRhcmdldF9hcmNoID0gIng4Nl82NCIpLAorLSAgICAgICAgICAgICAg ICAgICAgICAgICB0YXJnZXRfZmVhdHVyZSA9ICJhdngiKSldIHsKKy0gICAgICAgICAgICAgICAg aW1wbCBTaHVmZmxlMUR5biBmb3IgdTY0eDIgeworLSAgICAgICAgICAgICAgICAgICAgdHlwZSBJ bmRpY2VzID0gU2VsZjsKKy0gICAgICAgICAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAg ICAgICAgICAgICAgZm4gc2h1ZmZsZTFfZHluKHNlbGYsIGluZGljZXM6IFNlbGY6OkluZGljZXMp IC0+IFNlbGYgeworLSAgICAgICAgICAgICAgICAgICAgICAgICNbY2ZnKHRhcmdldF9hcmNoID0g Ing4NiIpXQorLSAgICAgICAgICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6YXJjaDo6eDg2Ojp7 X21tX3Blcm11dGV2YXJfcGR9OworLSAgICAgICAgICAgICAgICAgICAgICAgICNbY2ZnKHRhcmdl dF9hcmNoID0gIng4Nl82NCIpXQorLSAgICAgICAgICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6 YXJjaDo6eDg2XzY0Ojp7X21tX3Blcm11dGV2YXJfcGR9OworLSAgICAgICAgICAgICAgICAgICAg ICAgIC8vIF9tbV9wZXJtdXRldmFyX3BkIHVzZXMgdGhlIF9zZWNvbmRfIGJpdCBvZiBlYWNoCist ICAgICAgICAgICAgICAgICAgICAgICAgLy8gZWxlbWVudCB0byBwZXJmb3JtIHRoZSBzZWxlY3Rp b24sIHRoYXQgaXM6IDBiMDAgPT4gMCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAvLyAwYjEw ID0+IDE6CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGluZGljZXMgPSBpbmRpY2VzIDw8 IDE7CistICAgICAgICAgICAgICAgICAgICAgICAgdW5zYWZlIHsKKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgY3JhdGU6Om1lbTo6dHJhbnNtdXRlKAorLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgX21tX3Blcm11dGV2YXJfcGQoCistICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgY3JhdGU6Om1lbTo6dHJhbnNtdXRlKHNlbGYpLAorLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGNyYXRlOjptZW06OnRyYW5zbXV0ZShpbmRpY2VzKQorLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQorLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICApCistICAgICAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAg fQorLSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgfSBlbHNlIHsKKy0gICAgICAgICAg ICAgICAgaW1wbCBTaHVmZmxlMUR5biBmb3IgdTY0eDIgeworLSAgICAgICAgICAgICAgICAgICAg dHlwZSBJbmRpY2VzID0gU2VsZjsKKy0gICAgICAgICAgICAgICAgICAgICNbaW5saW5lXQorLSAg ICAgICAgICAgICAgICAgICAgZm4gc2h1ZmZsZTFfZHluKHNlbGYsIGluZGljZXM6IFNlbGY6Oklu ZGljZXMpIC0+IFNlbGYgeworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBpbmRpY2VzOiB1 OHgyID0gKGluZGljZXMgKiA4KS5jYXN0KCk7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0 IGluZGljZXM6IHU4eDE2ID0gc2h1ZmZsZSEoCistICAgICAgICAgICAgICAgICAgICAgICAgICAg IGluZGljZXMsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIFswLCAwLCAwLCAwLCAwLCAw LCAwLCAwLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxXQorLSAgICAgICAgICAgICAgICAgICAgICAg ICk7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHYgPSB1OHgxNjo6bmV3KAorLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAwLCAxLCAyLCAzLCA0LCA1LCA2LCA3LCAwLCAxLCAyLCAz LCA0LCA1LCA2LCA3CistICAgICAgICAgICAgICAgICAgICAgICAgKTsKKy0gICAgICAgICAgICAg ICAgICAgICAgICBsZXQgaW5kaWNlcyA9IGluZGljZXMgKyB2OworLSAgICAgICAgICAgICAgICAg ICAgICAgIHVuc2FmZSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBzOiB1OHgx NiA9Y3JhdGU6Om1lbTo6dHJhbnNtdXRlKHNlbGYpOworLSAgICAgICAgICAgICAgICAgICAgICAg ICAgIGNyYXRlOjptZW06OnRyYW5zbXV0ZShzLnNodWZmbGUxX2R5bihpbmRpY2VzKSkKKy0gICAg ICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAg ICAgICAgIH0KKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgIH07CistICAgICh1MTI4 eDEpID0+IHsKKy0gICAgICAgIGltcGwgU2h1ZmZsZTFEeW4gZm9yIHUxMjh4MSB7CistICAgICAg ICAgICAgdHlwZSBJbmRpY2VzID0gU2VsZjsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAg ICAgICAgICBmbiBzaHVmZmxlMV9keW4oc2VsZiwgX2luZGljZXM6IFNlbGY6OkluZGljZXMpIC0+ IFNlbGYgeworLSAgICAgICAgICAgICAgICBzZWxmCistICAgICAgICAgICAgfQorLSAgICAgICAg fQorLSAgICB9OworLSAgICAoJGlkOmlkZW50KSA9PiB7CistICAgICAgICBpbXBsX2ZhbGxiYWNr ISgkaWQpOworLSAgICB9OworLX0KKy0KKy1pbXBsX3NodWZmbGUxX2R5biEodTh4Mik7CistaW1w bF9zaHVmZmxlMV9keW4hKHU4eDQpOworLWltcGxfc2h1ZmZsZTFfZHluISh1OHg4KTsKKy1pbXBs X3NodWZmbGUxX2R5biEodTh4MTYpOworLWltcGxfc2h1ZmZsZTFfZHluISh1OHgzMik7CistaW1w bF9zaHVmZmxlMV9keW4hKHU4eDY0KTsKKy0KKy1pbXBsX3NodWZmbGUxX2R5biEodTE2eDIpOwor LWltcGxfc2h1ZmZsZTFfZHluISh1MTZ4NCk7CistaW1wbF9zaHVmZmxlMV9keW4hKHUxNng4KTsK Ky1pbXBsX3NodWZmbGUxX2R5biEodTE2eDE2KTsKKy1pbXBsX3NodWZmbGUxX2R5biEodTE2eDMy KTsKKy0KKy1pbXBsX3NodWZmbGUxX2R5biEodTMyeDIpOworLWltcGxfc2h1ZmZsZTFfZHluISh1 MzJ4NCk7CistaW1wbF9zaHVmZmxlMV9keW4hKHUzMng4KTsKKy1pbXBsX3NodWZmbGUxX2R5biEo dTMyeDE2KTsKKy0KKy1pbXBsX3NodWZmbGUxX2R5biEodTY0eDIpOworLWltcGxfc2h1ZmZsZTFf ZHluISh1NjR4NCk7CistaW1wbF9zaHVmZmxlMV9keW4hKHU2NHg4KTsKKy0KKy1pbXBsX3NodWZm bGUxX2R5biEodXNpemV4Mik7CistaW1wbF9zaHVmZmxlMV9keW4hKHVzaXpleDQpOworLWltcGxf c2h1ZmZsZTFfZHluISh1c2l6ZXg4KTsKKy0KKy1pbXBsX3NodWZmbGUxX2R5biEodTEyOHgxKTsK Ky1pbXBsX3NodWZmbGUxX2R5biEodTEyOHgyKTsKKy1pbXBsX3NodWZmbGUxX2R5biEodTEyOHg0 KTsKKy0KKy0vLyBJbXBsZW1lbnRhdGlvbiBmb3Igbm9uLXVuc2lnbmVkIHZlY3RvciB0eXBlcwor LW1hY3JvX3J1bGVzISBpbXBsX3NodWZmbGUxX2R5bl9ub25fdSB7CistICAgICgkaWQ6aWRlbnQs ICR1aWQ6aWRlbnQpID0+IHsKKy0gICAgICAgIGltcGwgU2h1ZmZsZTFEeW4gZm9yICRpZCB7Cist ICAgICAgICAgICAgdHlwZSBJbmRpY2VzID0gJHVpZDsKKy0gICAgICAgICAgICAjW2lubGluZV0K Ky0gICAgICAgICAgICBmbiBzaHVmZmxlMV9keW4oc2VsZiwgaW5kaWNlczogU2VsZjo6SW5kaWNl cykgLT4gU2VsZiB7CistICAgICAgICAgICAgICAgIHVuc2FmZSB7CistICAgICAgICAgICAgICAg ICAgICBsZXQgdTogJHVpZCA9IGNyYXRlOjptZW06OnRyYW5zbXV0ZShzZWxmKTsKKy0gICAgICAg ICAgICAgICAgICAgIGNyYXRlOjptZW06OnRyYW5zbXV0ZSh1LnNodWZmbGUxX2R5bihpbmRpY2Vz KSkKKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAg fTsKKy19CistCistaW1wbF9zaHVmZmxlMV9keW5fbm9uX3UhKGk4eDIsIHU4eDIpOworLWltcGxf c2h1ZmZsZTFfZHluX25vbl91IShpOHg0LCB1OHg0KTsKKy1pbXBsX3NodWZmbGUxX2R5bl9ub25f dSEoaTh4OCwgdTh4OCk7CistaW1wbF9zaHVmZmxlMV9keW5fbm9uX3UhKGk4eDE2LCB1OHgxNik7 CistaW1wbF9zaHVmZmxlMV9keW5fbm9uX3UhKGk4eDMyLCB1OHgzMik7CistaW1wbF9zaHVmZmxl MV9keW5fbm9uX3UhKGk4eDY0LCB1OHg2NCk7CistCistaW1wbF9zaHVmZmxlMV9keW5fbm9uX3Uh KGkxNngyLCB1MTZ4Mik7CistaW1wbF9zaHVmZmxlMV9keW5fbm9uX3UhKGkxNng0LCB1MTZ4NCk7 CistaW1wbF9zaHVmZmxlMV9keW5fbm9uX3UhKGkxNng4LCB1MTZ4OCk7CistaW1wbF9zaHVmZmxl MV9keW5fbm9uX3UhKGkxNngxNiwgdTE2eDE2KTsKKy1pbXBsX3NodWZmbGUxX2R5bl9ub25fdSEo aTE2eDMyLCB1MTZ4MzIpOworLQorLWltcGxfc2h1ZmZsZTFfZHluX25vbl91IShpMzJ4MiwgdTMy eDIpOworLWltcGxfc2h1ZmZsZTFfZHluX25vbl91IShpMzJ4NCwgdTMyeDQpOworLWltcGxfc2h1 ZmZsZTFfZHluX25vbl91IShpMzJ4OCwgdTMyeDgpOworLWltcGxfc2h1ZmZsZTFfZHluX25vbl91 IShpMzJ4MTYsIHUzMngxNik7CistCistaW1wbF9zaHVmZmxlMV9keW5fbm9uX3UhKGk2NHgyLCB1 NjR4Mik7CistaW1wbF9zaHVmZmxlMV9keW5fbm9uX3UhKGk2NHg0LCB1NjR4NCk7CistaW1wbF9z aHVmZmxlMV9keW5fbm9uX3UhKGk2NHg4LCB1NjR4OCk7CistCistaW1wbF9zaHVmZmxlMV9keW5f bm9uX3UhKGlzaXpleDIsIHVzaXpleDIpOworLWltcGxfc2h1ZmZsZTFfZHluX25vbl91IShpc2l6 ZXg0LCB1c2l6ZXg0KTsKKy1pbXBsX3NodWZmbGUxX2R5bl9ub25fdSEoaXNpemV4OCwgdXNpemV4 OCk7CistCistaW1wbF9zaHVmZmxlMV9keW5fbm9uX3UhKGkxMjh4MSwgdTEyOHgxKTsKKy1pbXBs X3NodWZmbGUxX2R5bl9ub25fdSEoaTEyOHgyLCB1MTI4eDIpOworLWltcGxfc2h1ZmZsZTFfZHlu X25vbl91IShpMTI4eDQsIHUxMjh4NCk7CistCistaW1wbF9zaHVmZmxlMV9keW5fbm9uX3UhKG04 eDIsIHU4eDIpOworLWltcGxfc2h1ZmZsZTFfZHluX25vbl91IShtOHg0LCB1OHg0KTsKKy1pbXBs X3NodWZmbGUxX2R5bl9ub25fdSEobTh4OCwgdTh4OCk7CistaW1wbF9zaHVmZmxlMV9keW5fbm9u X3UhKG04eDE2LCB1OHgxNik7CistaW1wbF9zaHVmZmxlMV9keW5fbm9uX3UhKG04eDMyLCB1OHgz Mik7CistaW1wbF9zaHVmZmxlMV9keW5fbm9uX3UhKG04eDY0LCB1OHg2NCk7CistCistaW1wbF9z aHVmZmxlMV9keW5fbm9uX3UhKG0xNngyLCB1MTZ4Mik7CistaW1wbF9zaHVmZmxlMV9keW5fbm9u X3UhKG0xNng0LCB1MTZ4NCk7CistaW1wbF9zaHVmZmxlMV9keW5fbm9uX3UhKG0xNng4LCB1MTZ4 OCk7CistaW1wbF9zaHVmZmxlMV9keW5fbm9uX3UhKG0xNngxNiwgdTE2eDE2KTsKKy1pbXBsX3No dWZmbGUxX2R5bl9ub25fdSEobTE2eDMyLCB1MTZ4MzIpOworLQorLWltcGxfc2h1ZmZsZTFfZHlu X25vbl91IShtMzJ4MiwgdTMyeDIpOworLWltcGxfc2h1ZmZsZTFfZHluX25vbl91IShtMzJ4NCwg dTMyeDQpOworLWltcGxfc2h1ZmZsZTFfZHluX25vbl91IShtMzJ4OCwgdTMyeDgpOworLWltcGxf c2h1ZmZsZTFfZHluX25vbl91IShtMzJ4MTYsIHUzMngxNik7CistCistaW1wbF9zaHVmZmxlMV9k eW5fbm9uX3UhKG02NHgyLCB1NjR4Mik7CistaW1wbF9zaHVmZmxlMV9keW5fbm9uX3UhKG02NHg0 LCB1NjR4NCk7CistaW1wbF9zaHVmZmxlMV9keW5fbm9uX3UhKG02NHg4LCB1NjR4OCk7CistCist aW1wbF9zaHVmZmxlMV9keW5fbm9uX3UhKG1zaXpleDIsIHVzaXpleDIpOworLWltcGxfc2h1ZmZs ZTFfZHluX25vbl91IShtc2l6ZXg0LCB1c2l6ZXg0KTsKKy1pbXBsX3NodWZmbGUxX2R5bl9ub25f dSEobXNpemV4OCwgdXNpemV4OCk7CistCistaW1wbF9zaHVmZmxlMV9keW5fbm9uX3UhKG0xMjh4 MSwgdTEyOHgxKTsKKy1pbXBsX3NodWZmbGUxX2R5bl9ub25fdSEobTEyOHgyLCB1MTI4eDIpOwor LWltcGxfc2h1ZmZsZTFfZHluX25vbl91IShtMTI4eDQsIHUxMjh4NCk7CistCistaW1wbF9zaHVm ZmxlMV9keW5fbm9uX3UhKGYzMngyLCB1MzJ4Mik7CistaW1wbF9zaHVmZmxlMV9keW5fbm9uX3Uh KGYzMng0LCB1MzJ4NCk7CistaW1wbF9zaHVmZmxlMV9keW5fbm9uX3UhKGYzMng4LCB1MzJ4OCk7 CistaW1wbF9zaHVmZmxlMV9keW5fbm9uX3UhKGYzMngxNiwgdTMyeDE2KTsKKy0KKy1pbXBsX3No dWZmbGUxX2R5bl9ub25fdSEoZjY0eDIsIHU2NHgyKTsKKy1pbXBsX3NodWZmbGUxX2R5bl9ub25f dSEoZjY0eDQsIHU2NHg0KTsKKy1pbXBsX3NodWZmbGUxX2R5bl9ub25fdSEoZjY0eDgsIHU2NHg4 KTsKKy0KKy0vLyBJbXBsZW1lbnRhdGlvbiBmb3Igbm9uLXVuc2lnbmVkIHZlY3RvciB0eXBlcwor LW1hY3JvX3J1bGVzISBpbXBsX3NodWZmbGUxX2R5bl9wdHIgeworLSAgICAoJGlkOmlkZW50LCAk dWlkOmlkZW50KSA9PiB7CistICAgICAgICBpbXBsPFQ+IFNodWZmbGUxRHluIGZvciAkaWQ8VD4g eworLSAgICAgICAgICAgIHR5cGUgSW5kaWNlcyA9ICR1aWQ7CistICAgICAgICAgICAgI1tpbmxp bmVdCistICAgICAgICAgICAgZm4gc2h1ZmZsZTFfZHluKHNlbGYsIGluZGljZXM6IFNlbGY6Oklu ZGljZXMpIC0+IFNlbGYgeworLSAgICAgICAgICAgICAgICB1bnNhZmUgeworLSAgICAgICAgICAg ICAgICAgICAgbGV0IHU6ICR1aWQgPSBjcmF0ZTo6bWVtOjp0cmFuc211dGUoc2VsZik7CistICAg ICAgICAgICAgICAgICAgICBjcmF0ZTo6bWVtOjp0cmFuc211dGUodS5zaHVmZmxlMV9keW4oaW5k aWNlcykpCistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICB9CistICAgICAgICB9Cist ICAgIH07CistfQorLQorLWltcGxfc2h1ZmZsZTFfZHluX3B0ciEoY3B0cngyLCB1c2l6ZXgyKTsK Ky1pbXBsX3NodWZmbGUxX2R5bl9wdHIhKGNwdHJ4NCwgdXNpemV4NCk7CistaW1wbF9zaHVmZmxl MV9keW5fcHRyIShjcHRyeDgsIHVzaXpleDgpOworLQorLWltcGxfc2h1ZmZsZTFfZHluX3B0ciEo bXB0cngyLCB1c2l6ZXgyKTsKKy1pbXBsX3NodWZmbGUxX2R5bl9wdHIhKG1wdHJ4NCwgdXNpemV4 NCk7CistaW1wbF9zaHVmZmxlMV9keW5fcHRyIShtcHRyeDgsIHVzaXpleDgpOworZGlmZiAtLWdp dCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vc3dhcF9ieXRlcy5y cyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vc3dhcF9ieXRlcy5y cworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tl ZF9zaW1kL3NyYy9jb2RlZ2VuL3N3YXBfYnl0ZXMucnMKKysrKyAvZGV2L251bGwKK0BAIC0xLDE0 OSArMCwwIEBACistLy8hIEhvcml6b250YWwgc3dhcCBieXRlcyByZWR1Y3Rpb25zLgorLQorLS8v IEZJWE1FOiBpbnZlc3RpZ2F0ZSB1c2luZyBgbGx2bS5ic3dhcGAKKy0vLyBodHRwczovL2dpdGh1 Yi5jb20vcnVzdC1sYW5nLW51cnNlcnkvcGFja2VkX3NpbWQvaXNzdWVzLzE5CistCistdXNlIGNy YXRlOjoqOworLQorLXB1YihjcmF0ZSkgdHJhaXQgU3dhcEJ5dGVzIHsKKy0gICAgZm4gc3dhcF9i eXRlcyhzZWxmKSAtPiBTZWxmOworLX0KKy0KKy1tYWNyb19ydWxlcyEgaW1wbF9zd2FwX2J5dGVz IHsKKy0gICAgKHYxNjogJCgkaWQ6aWRlbnQsKSspID0+IHsKKy0gICAgICAgICQoCistICAgICAg ICAgICAgaW1wbCBTd2FwQnl0ZXMgZm9yICRpZCB7CistICAgICAgICAgICAgICAgICNbaW5saW5l XQorLSAgICAgICAgICAgICAgICBmbiBzd2FwX2J5dGVzKHNlbGYpIC0+IFNlbGYgeworLSAgICAg ICAgICAgICAgICAgICAgc2h1ZmZsZSEoc2VsZiwgWzEsIDBdKQorLSAgICAgICAgICAgICAgICB9 CistICAgICAgICAgICAgfQorLSAgICAgICAgKSsKKy0gICAgfTsKKy0gICAgKHYzMjogJCgkaWQ6 aWRlbnQsKSspID0+IHsKKy0gICAgICAgICQoCistICAgICAgICAgICAgaW1wbCBTd2FwQnl0ZXMg Zm9yICRpZCB7CistICAgICAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgICAgICAj W2FsbG93KGNsaXBweTo6dXNlbGVzc190cmFuc211dGUpXQorLSAgICAgICAgICAgICAgICBmbiBz d2FwX2J5dGVzKHNlbGYpIC0+IFNlbGYgeworLSAgICAgICAgICAgICAgICAgICAgdW5zYWZlIHsK Ky0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgYnl0ZXM6IHU4eDQgPSBjcmF0ZTo6bWVtOjp0 cmFuc211dGUoc2VsZik7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHJlc3VsdDogdTh4 NCA9IHNodWZmbGUhKGJ5dGVzLCBbMywgMiwgMSwgMF0pOworLSAgICAgICAgICAgICAgICAgICAg ICAgIGNyYXRlOjptZW06OnRyYW5zbXV0ZShyZXN1bHQpCistICAgICAgICAgICAgICAgICAgICB9 CistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICB9CistICAgICAgICApKworLSAgICB9 OworLSAgICAodjY0OiAkKCRpZDppZGVudCwpKykgPT4geworLSAgICAgICAgJCgKKy0gICAgICAg ICAgICBpbXBsIFN3YXBCeXRlcyBmb3IgJGlkIHsKKy0gICAgICAgICAgICAgICAgI1tpbmxpbmVd CistICAgICAgICAgICAgICAgICNbYWxsb3coY2xpcHB5Ojp1c2VsZXNzX3RyYW5zbXV0ZSldCist ICAgICAgICAgICAgICAgIGZuIHN3YXBfYnl0ZXMoc2VsZikgLT4gU2VsZiB7CistICAgICAgICAg ICAgICAgICAgICB1bnNhZmUgeworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBieXRlczog dTh4OCA9IGNyYXRlOjptZW06OnRyYW5zbXV0ZShzZWxmKTsKKy0gICAgICAgICAgICAgICAgICAg ICAgICBsZXQgcmVzdWx0OiB1OHg4ID0gc2h1ZmZsZSEoCistICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGJ5dGVzLCBbNywgNiwgNSwgNCwgMywgMiwgMSwgMF0KKy0gICAgICAgICAgICAgICAg ICAgICAgICApOworLSAgICAgICAgICAgICAgICAgICAgICAgIGNyYXRlOjptZW06OnRyYW5zbXV0 ZShyZXN1bHQpCistICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgIH0KKy0g ICAgICAgICAgICB9CistICAgICAgICApKworLSAgICB9OworLSAgICAodjEyODogJCgkaWQ6aWRl bnQsKSspID0+IHsKKy0gICAgICAgICQoCistICAgICAgICAgICAgaW1wbCBTd2FwQnl0ZXMgZm9y ICRpZCB7CistICAgICAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgICAgICAjW2Fs bG93KGNsaXBweTo6dXNlbGVzc190cmFuc211dGUpXQorLSAgICAgICAgICAgICAgICBmbiBzd2Fw X2J5dGVzKHNlbGYpIC0+IFNlbGYgeworLSAgICAgICAgICAgICAgICAgICAgdW5zYWZlIHsKKy0g ICAgICAgICAgICAgICAgICAgICAgICBsZXQgYnl0ZXM6IHU4eDE2ID0gY3JhdGU6Om1lbTo6dHJh bnNtdXRlKHNlbGYpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCByZXN1bHQ6IHU4eDE2 ID0gc2h1ZmZsZSEoYnl0ZXMsIFsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgMTUsIDE0 LCAxMywgMTIsIDExLCAxMCwgOSwgOCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgNywg NiwgNSwgNCwgMywgMiwgMSwgMAorLSAgICAgICAgICAgICAgICAgICAgICAgIF0pOworLSAgICAg ICAgICAgICAgICAgICAgICAgIGNyYXRlOjptZW06OnRyYW5zbXV0ZShyZXN1bHQpCistICAgICAg ICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICB9CistICAg ICAgICApKworLSAgICB9OworLSAgICAodjI1NjogJCgkaWQ6aWRlbnQsKSspID0+IHsKKy0gICAg ICAgICQoCistICAgICAgICAgICAgaW1wbCBTd2FwQnl0ZXMgZm9yICRpZCB7CistICAgICAgICAg ICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgICAgICAjW2FsbG93KGNsaXBweTo6dXNlbGVz c190cmFuc211dGUpXQorLSAgICAgICAgICAgICAgICBmbiBzd2FwX2J5dGVzKHNlbGYpIC0+IFNl bGYgeworLSAgICAgICAgICAgICAgICAgICAgdW5zYWZlIHsKKy0gICAgICAgICAgICAgICAgICAg ICAgICBsZXQgYnl0ZXM6IHU4eDMyID0gY3JhdGU6Om1lbTo6dHJhbnNtdXRlKHNlbGYpOworLSAg ICAgICAgICAgICAgICAgICAgICAgIGxldCByZXN1bHQ6IHU4eDMyID0gc2h1ZmZsZSEoYnl0ZXMs IFsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgMzEsIDMwLCAyOSwgMjgsIDI3LCAyNiwg MjUsIDI0LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAyMywgMjIsIDIxLCAyMCwgMTks IDE4LCAxNywgMTYsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE1LCAxNCwgMTMsIDEy LCAxMSwgMTAsIDksICA4LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA3LCAgNiwgIDUs ICA0LCAgMywgIDIsICAxLCAgMAorLSAgICAgICAgICAgICAgICAgICAgICAgIF0pOworLSAgICAg ICAgICAgICAgICAgICAgICAgIGNyYXRlOjptZW06OnRyYW5zbXV0ZShyZXN1bHQpCistICAgICAg ICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICB9CistICAg ICAgICApKworLSAgICB9OworLSAgICAodjUxMjogJCgkaWQ6aWRlbnQsKSspID0+IHsKKy0gICAg ICAgICQoCistICAgICAgICAgICAgaW1wbCBTd2FwQnl0ZXMgZm9yICRpZCB7CistICAgICAgICAg ICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgICAgICAjW2FsbG93KGNsaXBweTo6dXNlbGVz c190cmFuc211dGUpXQorLSAgICAgICAgICAgICAgICBmbiBzd2FwX2J5dGVzKHNlbGYpIC0+IFNl bGYgeworLSAgICAgICAgICAgICAgICAgICAgdW5zYWZlIHsKKy0gICAgICAgICAgICAgICAgICAg ICAgICBsZXQgYnl0ZXM6IHU4eDY0ID0gY3JhdGU6Om1lbTo6dHJhbnNtdXRlKHNlbGYpOworLSAg ICAgICAgICAgICAgICAgICAgICAgIGxldCByZXN1bHQ6IHU4eDY0ID0gc2h1ZmZsZSEoYnl0ZXMs IFsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgNjMsIDYyLCA2MSwgNjAsIDU5LCA1OCwg NTcsIDU2LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA1NSwgNTQsIDUzLCA1MiwgNTEs IDUwLCA0OSwgNDgsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQ3LCA0NiwgNDUsIDQ0 LCA0MywgNDIsIDQxLCA0MCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgMzksIDM4LCAz NywgMzYsIDM1LCAzNCwgMzMsIDMyLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAzMSwg MzAsIDI5LCAyOCwgMjcsIDI2LCAyNSwgMjQsCistICAgICAgICAgICAgICAgICAgICAgICAgICAg IDIzLCAyMiwgMjEsIDIwLCAxOSwgMTgsIDE3LCAxNiwKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgIDgsCistICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDcsICA2LCAgNSwgIDQsICAzLCAgMiwgIDEsICAwCistICAgICAgICAgICAgICAg ICAgICAgICAgXSk7CistICAgICAgICAgICAgICAgICAgICAgICAgY3JhdGU6Om1lbTo6dHJhbnNt dXRlKHJlc3VsdCkKKy0gICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgfQor LSAgICAgICAgICAgIH0KKy0gICAgICAgICkrCistICAgIH07CistfQorLQorLWltcGxfc3dhcF9i eXRlcyEodjE2OiB1OHgyLCBpOHgyLCk7CistaW1wbF9zd2FwX2J5dGVzISh2MzI6IHU4eDQsIGk4 eDQsIHUxNngyLCBpMTZ4MiwpOworLS8vIEZJWE1FOiA2NC1iaXQgc2luZ2xlIGVsZW1lbnQgdmVj dG9yCistaW1wbF9zd2FwX2J5dGVzISh2NjQ6IHU4eDgsIGk4eDgsIHUxNng0LCBpMTZ4NCwgdTMy eDIsIGkzMngyIC8qIHU2NHgxLCBpNjR4MSwgKi8sKTsKKy0KKy1pbXBsX3N3YXBfYnl0ZXMhKHYx Mjg6IHU4eDE2LCBpOHgxNiwgdTE2eDgsIGkxNng4LCB1MzJ4NCwgaTMyeDQsIHU2NHgyLCBpNjR4 MiwgdTEyOHgxLCBpMTI4eDEsKTsKKy1pbXBsX3N3YXBfYnl0ZXMhKHYyNTY6IHU4eDMyLCBpOHgz MiwgdTE2eDE2LCBpMTZ4MTYsIHUzMng4LCBpMzJ4OCwgdTY0eDQsIGk2NHg0LCB1MTI4eDIsIGkx Mjh4MiwpOworLQorLWltcGxfc3dhcF9ieXRlcyEodjUxMjogdTh4NjQsIGk4eDY0LCB1MTZ4MzIs IGkxNngzMiwgdTMyeDE2LCBpMzJ4MTYsIHU2NHg4LCBpNjR4OCwgdTEyOHg0LCBpMTI4eDQsKTsK Ky0KKy1jZmdfaWYhIHsKKy0gICAgaWYgI1tjZmcodGFyZ2V0X3BvaW50ZXJfd2lkdGggPSAiOCIp XSB7CistICAgICAgICBpbXBsX3N3YXBfYnl0ZXMhKHYxNjogaXNpemV4MiwgdXNpemV4MiwpOwor LSAgICAgICAgaW1wbF9zd2FwX2J5dGVzISh2MzI6IGlzaXpleDQsIHVzaXpleDQsKTsKKy0gICAg ICAgIGltcGxfc3dhcF9ieXRlcyEodjY0OiBpc2l6ZXg4LCB1c2l6ZXg4LCk7CistICAgIH0gZWxz ZSBpZiAjW2NmZyh0YXJnZXRfcG9pbnRlcl93aWR0aCA9ICIxNiIpXSB7CistICAgICAgICBpbXBs X3N3YXBfYnl0ZXMhKHYzMjogaXNpemV4MiwgdXNpemV4MiwpOworLSAgICAgICAgaW1wbF9zd2Fw X2J5dGVzISh2NjQ6IGlzaXpleDQsIHVzaXpleDQsKTsKKy0gICAgICAgIGltcGxfc3dhcF9ieXRl cyEodjEyODogaXNpemV4OCwgdXNpemV4OCwpOworLSAgICB9IGVsc2UgaWYgI1tjZmcodGFyZ2V0 X3BvaW50ZXJfd2lkdGggPSAiMzIiKV0geworLSAgICAgICAgaW1wbF9zd2FwX2J5dGVzISh2NjQ6 IGlzaXpleDIsIHVzaXpleDIsKTsKKy0gICAgICAgIGltcGxfc3dhcF9ieXRlcyEodjEyODogaXNp emV4NCwgdXNpemV4NCwpOworLSAgICAgICAgaW1wbF9zd2FwX2J5dGVzISh2MjU2OiBpc2l6ZXg4 LCB1c2l6ZXg4LCk7CistICAgIH0gZWxzZSBpZiAjW2NmZyh0YXJnZXRfcG9pbnRlcl93aWR0aCA9 ICI2NCIpXSB7CistICAgICAgICBpbXBsX3N3YXBfYnl0ZXMhKHYxMjg6IGlzaXpleDIsIHVzaXpl eDIsKTsKKy0gICAgICAgIGltcGxfc3dhcF9ieXRlcyEodjI1NjogaXNpemV4NCwgdXNpemV4NCwp OworLSAgICAgICAgaW1wbF9zd2FwX2J5dGVzISh2NTEyOiBpc2l6ZXg4LCB1c2l6ZXg4LCk7Cist ICAgIH0gZWxzZSB7CistICAgICAgICBjb21waWxlX2Vycm9yISgidW5zdXBwb3J0ZWQgdGFyZ2V0 X3BvaW50ZXJfd2lkdGgiKTsKKy0gICAgfQorLX0KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9y dXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3YxMjgucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3Bh Y2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3YxMjgucnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAor LS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi92MTI4LnJzCisr KysgL2Rldi9udWxsCitAQCAtMSw0NiArMCwwIEBACistLy8hIEludGVybmFsIDEyOC1iaXQgd2lk ZSB2ZWN0b3IgdHlwZXMKKy0KKy11c2UgY3JhdGU6Om1hc2tzOjoqOworLQorLSNbcnVzdGZtdDo6 c2tpcF0KKy1pbXBsX3NpbWRfYXJyYXkhKAorLSAgICBbaTg7IDE2XTogaTh4MTYgfAorLSAgICBp OCwgaTgsIGk4LCBpOCwKKy0gICAgaTgsIGk4LCBpOCwgaTgsCistICAgIGk4LCBpOCwgaTgsIGk4 LAorLSAgICBpOCwgaTgsIGk4LCBpOAorLSk7CistI1tydXN0Zm10Ojpza2lwXQorLWltcGxfc2lt ZF9hcnJheSEoCistICAgIFt1ODsgMTZdOiB1OHgxNiB8CistICAgIHU4LCB1OCwgdTgsIHU4LAor LSAgICB1OCwgdTgsIHU4LCB1OCwKKy0gICAgdTgsIHU4LCB1OCwgdTgsCistICAgIHU4LCB1OCwg dTgsIHU4CistKTsKKy0jW3J1c3RmbXQ6OnNraXBdCistaW1wbF9zaW1kX2FycmF5ISgKKy0gICAg W204OyAxNl06IG04eDE2IHwKKy0gICAgaTgsIGk4LCBpOCwgaTgsCistICAgIGk4LCBpOCwgaTgs IGk4LAorLSAgICBpOCwgaTgsIGk4LCBpOCwKKy0gICAgaTgsIGk4LCBpOCwgaTgKKy0pOworLQor LWltcGxfc2ltZF9hcnJheSEoW2kxNjsgOF06IGkxNng4IHwgaTE2LCBpMTYsIGkxNiwgaTE2LCBp MTYsIGkxNiwgaTE2LCBpMTYpOworLWltcGxfc2ltZF9hcnJheSEoW3UxNjsgOF06IHUxNng4IHwg dTE2LCB1MTYsIHUxNiwgdTE2LCB1MTYsIHUxNiwgdTE2LCB1MTYpOworLWltcGxfc2ltZF9hcnJh eSEoW20xNjsgOF06IG0xNng4IHwgaTE2LCBpMTYsIGkxNiwgaTE2LCBpMTYsIGkxNiwgaTE2LCBp MTYpOworLQorLWltcGxfc2ltZF9hcnJheSEoW2kzMjsgNF06IGkzMng0IHwgaTMyLCBpMzIsIGkz MiwgaTMyKTsKKy1pbXBsX3NpbWRfYXJyYXkhKFt1MzI7IDRdOiB1MzJ4NCB8IHUzMiwgdTMyLCB1 MzIsIHUzMik7CistaW1wbF9zaW1kX2FycmF5IShbZjMyOyA0XTogZjMyeDQgfCBmMzIsIGYzMiwg ZjMyLCBmMzIpOworLWltcGxfc2ltZF9hcnJheSEoW20zMjsgNF06IG0zMng0IHwgaTMyLCBpMzIs IGkzMiwgaTMyKTsKKy0KKy1pbXBsX3NpbWRfYXJyYXkhKFtpNjQ7IDJdOiBpNjR4MiB8IGk2NCwg aTY0KTsKKy1pbXBsX3NpbWRfYXJyYXkhKFt1NjQ7IDJdOiB1NjR4MiB8IHU2NCwgdTY0KTsKKy1p bXBsX3NpbWRfYXJyYXkhKFtmNjQ7IDJdOiBmNjR4MiB8IGY2NCwgZjY0KTsKKy1pbXBsX3NpbWRf YXJyYXkhKFttNjQ7IDJdOiBtNjR4MiB8IGk2NCwgaTY0KTsKKy0KKy1pbXBsX3NpbWRfYXJyYXkh KFtpMTI4OyAxXTogaTEyOHgxIHwgaTEyOCk7CistaW1wbF9zaW1kX2FycmF5IShbdTEyODsgMV06 IHUxMjh4MSB8IHUxMjgpOworLWltcGxfc2ltZF9hcnJheSEoW20xMjg7IDFdOiBtMTI4eDEgfCBp MTI4KTsKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2Rl Z2VuL3YxNi5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vdjE2 LnJzCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFj a2VkX3NpbWQvc3JjL2NvZGVnZW4vdjE2LnJzCisrKysgL2Rldi9udWxsCitAQCAtMSw3ICswLDAg QEAKKy0vLyEgSW50ZXJuYWwgMTYtYml0IHdpZGUgdmVjdG9yIHR5cGVzCistCistdXNlIGNyYXRl OjptYXNrczo6KjsKKy0KKy1pbXBsX3NpbWRfYXJyYXkhKFtpODsgMl06IGk4eDIgfCBpOCwgaTgp OworLWltcGxfc2ltZF9hcnJheSEoW3U4OyAyXTogdTh4MiB8IHU4LCB1OCk7CistaW1wbF9zaW1k X2FycmF5IShbbTg7IDJdOiBtOHgyIHwgaTgsIGk4KTsKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0 eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3YyNTYucnMgYi90aGlyZF9wYXJ0eS9ydXN0 L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3YyNTYucnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0 NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi92MjU2LnJz CisrKysgL2Rldi9udWxsCitAQCAtMSw3OCArMCwwIEBACistLy8hIEludGVybmFsIDI1Ni1iaXQg d2lkZSB2ZWN0b3IgdHlwZXMKKy0KKy11c2UgY3JhdGU6Om1hc2tzOjoqOworLQorLSNbcnVzdGZt dDo6c2tpcF0KKy1pbXBsX3NpbWRfYXJyYXkhKAorLSAgICBbaTg7IDMyXTogaTh4MzIgfAorLSAg ICBpOCwgaTgsIGk4LCBpOCwKKy0gICAgaTgsIGk4LCBpOCwgaTgsCistICAgIGk4LCBpOCwgaTgs IGk4LAorLSAgICBpOCwgaTgsIGk4LCBpOCwKKy0gICAgaTgsIGk4LCBpOCwgaTgsCistICAgIGk4 LCBpOCwgaTgsIGk4LAorLSAgICBpOCwgaTgsIGk4LCBpOCwKKy0gICAgaTgsIGk4LCBpOCwgaTgK Ky0pOworLSNbcnVzdGZtdDo6c2tpcF0KKy1pbXBsX3NpbWRfYXJyYXkhKAorLSAgICBbdTg7IDMy XTogdTh4MzIgfAorLSAgICB1OCwgdTgsIHU4LCB1OCwKKy0gICAgdTgsIHU4LCB1OCwgdTgsCist ICAgIHU4LCB1OCwgdTgsIHU4LAorLSAgICB1OCwgdTgsIHU4LCB1OCwKKy0gICAgdTgsIHU4LCB1 OCwgdTgsCistICAgIHU4LCB1OCwgdTgsIHU4LAorLSAgICB1OCwgdTgsIHU4LCB1OCwKKy0gICAg dTgsIHU4LCB1OCwgdTgKKy0pOworLSNbcnVzdGZtdDo6c2tpcF0KKy1pbXBsX3NpbWRfYXJyYXkh KAorLSAgICBbbTg7IDMyXTogbTh4MzIgfAorLSAgICBpOCwgaTgsIGk4LCBpOCwKKy0gICAgaTgs IGk4LCBpOCwgaTgsCistICAgIGk4LCBpOCwgaTgsIGk4LAorLSAgICBpOCwgaTgsIGk4LCBpOCwK Ky0gICAgaTgsIGk4LCBpOCwgaTgsCistICAgIGk4LCBpOCwgaTgsIGk4LAorLSAgICBpOCwgaTgs IGk4LCBpOCwKKy0gICAgaTgsIGk4LCBpOCwgaTgKKy0pOworLSNbcnVzdGZtdDo6c2tpcF0KKy1p bXBsX3NpbWRfYXJyYXkhKAorLSAgICBbaTE2OyAxNl06IGkxNngxNiB8CistICAgIGkxNiwgaTE2 LCBpMTYsIGkxNiwKKy0gICAgaTE2LCBpMTYsIGkxNiwgaTE2LAorLSAgICBpMTYsIGkxNiwgaTE2 LCBpMTYsCistICAgIGkxNiwgaTE2LCBpMTYsIGkxNgorLSk7CistI1tydXN0Zm10Ojpza2lwXQor LWltcGxfc2ltZF9hcnJheSEoCistICAgIFt1MTY7IDE2XTogdTE2eDE2IHwKKy0gICAgdTE2LCB1 MTYsIHUxNiwgdTE2LAorLSAgICB1MTYsIHUxNiwgdTE2LCB1MTYsCistICAgIHUxNiwgdTE2LCB1 MTYsIHUxNiwKKy0gICAgdTE2LCB1MTYsIHUxNiwgdTE2CistKTsKKy0jW3J1c3RmbXQ6OnNraXBd CistaW1wbF9zaW1kX2FycmF5ISgKKy0gICAgW20xNjsgMTZdOiBtMTZ4MTYgfAorLSAgICBpMTYs IGkxNiwgaTE2LCBpMTYsCistICAgIGkxNiwgaTE2LCBpMTYsIGkxNiwKKy0gICAgaTE2LCBpMTYs IGkxNiwgaTE2LAorLSAgICBpMTYsIGkxNiwgaTE2LCBpMTYKKy0pOworLQorLWltcGxfc2ltZF9h cnJheSEoW2kzMjsgOF06IGkzMng4IHwgaTMyLCBpMzIsIGkzMiwgaTMyLCBpMzIsIGkzMiwgaTMy LCBpMzIpOworLWltcGxfc2ltZF9hcnJheSEoW3UzMjsgOF06IHUzMng4IHwgdTMyLCB1MzIsIHUz MiwgdTMyLCB1MzIsIHUzMiwgdTMyLCB1MzIpOworLWltcGxfc2ltZF9hcnJheSEoW2YzMjsgOF06 IGYzMng4IHwgZjMyLCBmMzIsIGYzMiwgZjMyLCBmMzIsIGYzMiwgZjMyLCBmMzIpOworLWltcGxf c2ltZF9hcnJheSEoW20zMjsgOF06IG0zMng4IHwgaTMyLCBpMzIsIGkzMiwgaTMyLCBpMzIsIGkz MiwgaTMyLCBpMzIpOworLQorLWltcGxfc2ltZF9hcnJheSEoW2k2NDsgNF06IGk2NHg0IHwgaTY0 LCBpNjQsIGk2NCwgaTY0KTsKKy1pbXBsX3NpbWRfYXJyYXkhKFt1NjQ7IDRdOiB1NjR4NCB8IHU2 NCwgdTY0LCB1NjQsIHU2NCk7CistaW1wbF9zaW1kX2FycmF5IShbZjY0OyA0XTogZjY0eDQgfCBm NjQsIGY2NCwgZjY0LCBmNjQpOworLWltcGxfc2ltZF9hcnJheSEoW202NDsgNF06IG02NHg0IHwg aTY0LCBpNjQsIGk2NCwgaTY0KTsKKy0KKy1pbXBsX3NpbWRfYXJyYXkhKFtpMTI4OyAyXTogaTEy OHgyIHwgaTEyOCwgaTEyOCk7CistaW1wbF9zaW1kX2FycmF5IShbdTEyODsgMl06IHUxMjh4MiB8 IHUxMjgsIHUxMjgpOworLWltcGxfc2ltZF9hcnJheSEoW20xMjg7IDJdOiBtMTI4eDIgfCBpMTI4 LCBpMTI4KTsKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9j b2RlZ2VuL3YzMi5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4v djMyLnJzCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3Qv cGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vdjMyLnJzCisrKysgL2Rldi9udWxsCitAQCAtMSwxMSAr MCwwIEBACistLy8hIEludGVybmFsIDMyLWJpdCB3aWRlIHZlY3RvciB0eXBlcworLQorLXVzZSBj cmF0ZTo6bWFza3M6Oio7CistCistaW1wbF9zaW1kX2FycmF5IShbaTg7IDRdOiBpOHg0IHwgaTgs IGk4LCBpOCwgaTgpOworLWltcGxfc2ltZF9hcnJheSEoW3U4OyA0XTogdTh4NCB8IHU4LCB1OCwg dTgsIHU4KTsKKy1pbXBsX3NpbWRfYXJyYXkhKFttODsgNF06IG04eDQgfCBpOCwgaTgsIGk4LCBp OCk7CistCistaW1wbF9zaW1kX2FycmF5IShbaTE2OyAyXTogaTE2eDIgfCBpMTYsIGkxNik7Cist aW1wbF9zaW1kX2FycmF5IShbdTE2OyAyXTogdTE2eDIgfCB1MTYsIHUxNik7CistaW1wbF9zaW1k X2FycmF5IShbbTE2OyAyXTogbTE2eDIgfCBpMTYsIGkxNik7CitkaWZmIC0tZ2l0IGEvdGhpcmRf cGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi92NTEyLnJzIGIvdGhpcmRfcGFydHkv cnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi92NTEyLnJzCitkZWxldGVkIGZpbGUgbW9kZSAx MDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vdjUx Mi5ycworKysrIC9kZXYvbnVsbAorQEAgLTEsMTQ1ICswLDAgQEAKKy0vLyEgSW50ZXJuYWwgNTEy LWJpdCB3aWRlIHZlY3RvciB0eXBlcworLQorLXVzZSBjcmF0ZTo6bWFza3M6Oio7CistCistI1ty dXN0Zm10Ojpza2lwXQorLWltcGxfc2ltZF9hcnJheSEoCistICAgIFtpODsgNjRdOiBpOHg2NCB8 CistICAgIGk4LCBpOCwgaTgsIGk4LAorLSAgICBpOCwgaTgsIGk4LCBpOCwKKy0gICAgaTgsIGk4 LCBpOCwgaTgsCistICAgIGk4LCBpOCwgaTgsIGk4LAorLSAgICBpOCwgaTgsIGk4LCBpOCwKKy0g ICAgaTgsIGk4LCBpOCwgaTgsCistICAgIGk4LCBpOCwgaTgsIGk4LAorLSAgICBpOCwgaTgsIGk4 LCBpOCwKKy0KKy0gICAgaTgsIGk4LCBpOCwgaTgsCistICAgIGk4LCBpOCwgaTgsIGk4LAorLSAg ICBpOCwgaTgsIGk4LCBpOCwKKy0gICAgaTgsIGk4LCBpOCwgaTgsCistICAgIGk4LCBpOCwgaTgs IGk4LAorLSAgICBpOCwgaTgsIGk4LCBpOCwKKy0gICAgaTgsIGk4LCBpOCwgaTgsCistICAgIGk4 LCBpOCwgaTgsIGk4CistKTsKKy0jW3J1c3RmbXQ6OnNraXBdCistaW1wbF9zaW1kX2FycmF5ISgK Ky0gICAgW3U4OyA2NF06IHU4eDY0IHwKKy0gICAgdTgsIHU4LCB1OCwgdTgsCistICAgIHU4LCB1 OCwgdTgsIHU4LAorLSAgICB1OCwgdTgsIHU4LCB1OCwKKy0gICAgdTgsIHU4LCB1OCwgdTgsCist ICAgIHU4LCB1OCwgdTgsIHU4LAorLSAgICB1OCwgdTgsIHU4LCB1OCwKKy0gICAgdTgsIHU4LCB1 OCwgdTgsCistICAgIHU4LCB1OCwgdTgsIHU4LAorLQorLSAgICB1OCwgdTgsIHU4LCB1OCwKKy0g ICAgdTgsIHU4LCB1OCwgdTgsCistICAgIHU4LCB1OCwgdTgsIHU4LAorLSAgICB1OCwgdTgsIHU4 LCB1OCwKKy0gICAgdTgsIHU4LCB1OCwgdTgsCistICAgIHU4LCB1OCwgdTgsIHU4LAorLSAgICB1 OCwgdTgsIHU4LCB1OCwKKy0gICAgdTgsIHU4LCB1OCwgdTgKKy0pOworLSNbcnVzdGZtdDo6c2tp cF0KKy1pbXBsX3NpbWRfYXJyYXkhKAorLSAgICBbbTg7IDY0XTogbTh4NjQgfAorLSAgICBpOCwg aTgsIGk4LCBpOCwKKy0gICAgaTgsIGk4LCBpOCwgaTgsCistICAgIGk4LCBpOCwgaTgsIGk4LAor LSAgICBpOCwgaTgsIGk4LCBpOCwKKy0gICAgaTgsIGk4LCBpOCwgaTgsCistICAgIGk4LCBpOCwg aTgsIGk4LAorLSAgICBpOCwgaTgsIGk4LCBpOCwKKy0gICAgaTgsIGk4LCBpOCwgaTgsCistCist ICAgIGk4LCBpOCwgaTgsIGk4LAorLSAgICBpOCwgaTgsIGk4LCBpOCwKKy0gICAgaTgsIGk4LCBp OCwgaTgsCistICAgIGk4LCBpOCwgaTgsIGk4LAorLSAgICBpOCwgaTgsIGk4LCBpOCwKKy0gICAg aTgsIGk4LCBpOCwgaTgsCistICAgIGk4LCBpOCwgaTgsIGk4LAorLSAgICBpOCwgaTgsIGk4LCBp OAorLSk7CistI1tydXN0Zm10Ojpza2lwXQorLWltcGxfc2ltZF9hcnJheSEoCistICAgIFtpMTY7 IDMyXTogaTE2eDMyIHwKKy0gICAgaTE2LCBpMTYsIGkxNiwgaTE2LAorLSAgICBpMTYsIGkxNiwg aTE2LCBpMTYsCistICAgIGkxNiwgaTE2LCBpMTYsIGkxNiwKKy0gICAgaTE2LCBpMTYsIGkxNiwg aTE2LAorLSAgICBpMTYsIGkxNiwgaTE2LCBpMTYsCistICAgIGkxNiwgaTE2LCBpMTYsIGkxNiwK Ky0gICAgaTE2LCBpMTYsIGkxNiwgaTE2LAorLSAgICBpMTYsIGkxNiwgaTE2LCBpMTYKKy0pOwor LSNbcnVzdGZtdDo6c2tpcF0KKy1pbXBsX3NpbWRfYXJyYXkhKAorLSAgICBbdTE2OyAzMl06IHUx NngzMiB8CistICAgIHUxNiwgdTE2LCB1MTYsIHUxNiwKKy0gICAgdTE2LCB1MTYsIHUxNiwgdTE2 LAorLSAgICB1MTYsIHUxNiwgdTE2LCB1MTYsCistICAgIHUxNiwgdTE2LCB1MTYsIHUxNiwKKy0g ICAgdTE2LCB1MTYsIHUxNiwgdTE2LAorLSAgICB1MTYsIHUxNiwgdTE2LCB1MTYsCistICAgIHUx NiwgdTE2LCB1MTYsIHUxNiwKKy0gICAgdTE2LCB1MTYsIHUxNiwgdTE2CistKTsKKy0jW3J1c3Rm bXQ6OnNraXBdCistaW1wbF9zaW1kX2FycmF5ISgKKy0gICAgW20xNjsgMzJdOiBtMTZ4MzIgfAor LSAgICBpMTYsIGkxNiwgaTE2LCBpMTYsCistICAgIGkxNiwgaTE2LCBpMTYsIGkxNiwKKy0gICAg aTE2LCBpMTYsIGkxNiwgaTE2LAorLSAgICBpMTYsIGkxNiwgaTE2LCBpMTYsCistICAgIGkxNiwg aTE2LCBpMTYsIGkxNiwKKy0gICAgaTE2LCBpMTYsIGkxNiwgaTE2LAorLSAgICBpMTYsIGkxNiwg aTE2LCBpMTYsCistICAgIGkxNiwgaTE2LCBpMTYsIGkxNgorLSk7CistCistI1tydXN0Zm10Ojpz a2lwXQorLWltcGxfc2ltZF9hcnJheSEoCistICAgIFtpMzI7IDE2XTogaTMyeDE2IHwKKy0gICAg aTMyLCBpMzIsIGkzMiwgaTMyLAorLSAgICBpMzIsIGkzMiwgaTMyLCBpMzIsCistICAgIGkzMiwg aTMyLCBpMzIsIGkzMiwKKy0gICAgaTMyLCBpMzIsIGkzMiwgaTMyCistKTsKKy0jW3J1c3RmbXQ6 OnNraXBdCistaW1wbF9zaW1kX2FycmF5ISgKKy0gICAgW3UzMjsgMTZdOiB1MzJ4MTYgfAorLSAg ICB1MzIsIHUzMiwgdTMyLCB1MzIsCistICAgIHUzMiwgdTMyLCB1MzIsIHUzMiwKKy0gICAgdTMy LCB1MzIsIHUzMiwgdTMyLAorLSAgICB1MzIsIHUzMiwgdTMyLCB1MzIKKy0pOworLSNbcnVzdGZt dDo6c2tpcF0KKy1pbXBsX3NpbWRfYXJyYXkhKAorLSAgICBbZjMyOyAxNl06IGYzMngxNiB8Cist ICAgIGYzMiwgZjMyLCBmMzIsIGYzMiwKKy0gICAgZjMyLCBmMzIsIGYzMiwgZjMyLAorLSAgICBm MzIsIGYzMiwgZjMyLCBmMzIsCistICAgIGYzMiwgZjMyLCBmMzIsIGYzMgorLSk7CistI1tydXN0 Zm10Ojpza2lwXQorLWltcGxfc2ltZF9hcnJheSEoCistICAgIFttMzI7IDE2XTogbTMyeDE2IHwK Ky0gICAgaTMyLCBpMzIsIGkzMiwgaTMyLAorLSAgICBpMzIsIGkzMiwgaTMyLCBpMzIsCistICAg IGkzMiwgaTMyLCBpMzIsIGkzMiwKKy0gICAgaTMyLCBpMzIsIGkzMiwgaTMyCistKTsKKy0KKy1p bXBsX3NpbWRfYXJyYXkhKFtpNjQ7IDhdOiBpNjR4OCB8IGk2NCwgaTY0LCBpNjQsIGk2NCwgaTY0 LCBpNjQsIGk2NCwgaTY0KTsKKy1pbXBsX3NpbWRfYXJyYXkhKFt1NjQ7IDhdOiB1NjR4OCB8IHU2 NCwgdTY0LCB1NjQsIHU2NCwgdTY0LCB1NjQsIHU2NCwgdTY0KTsKKy1pbXBsX3NpbWRfYXJyYXkh KFtmNjQ7IDhdOiBmNjR4OCB8IGY2NCwgZjY0LCBmNjQsIGY2NCwgZjY0LCBmNjQsIGY2NCwgZjY0 KTsKKy1pbXBsX3NpbWRfYXJyYXkhKFttNjQ7IDhdOiBtNjR4OCB8IGk2NCwgaTY0LCBpNjQsIGk2 NCwgaTY0LCBpNjQsIGk2NCwgaTY0KTsKKy0KKy1pbXBsX3NpbWRfYXJyYXkhKFtpMTI4OyA0XTog aTEyOHg0IHwgaTEyOCwgaTEyOCwgaTEyOCwgaTEyOCk7CistaW1wbF9zaW1kX2FycmF5IShbdTEy ODsgNF06IHUxMjh4NCB8IHUxMjgsIHUxMjgsIHUxMjgsIHUxMjgpOworLWltcGxfc2ltZF9hcnJh eSEoW20xMjg7IDRdOiBtMTI4eDQgfCBpMTI4LCBpMTI4LCBpMTI4LCBpMTI4KTsKK2RpZmYgLS1n aXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3Y2NC5ycyBiL3Ro aXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vdjY0LnJzCitkZWxldGVkIGZp bGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2Nv ZGVnZW4vdjY0LnJzCisrKysgL2Rldi9udWxsCitAQCAtMSwyMSArMCwwIEBACistLy8hIEludGVy bmFsIDY0LWJpdCB3aWRlIHZlY3RvciB0eXBlcworLQorLXVzZSBjcmF0ZTo6bWFza3M6Oio7Cist CistaW1wbF9zaW1kX2FycmF5IShbaTg7IDhdOiBpOHg4IHwgaTgsIGk4LCBpOCwgaTgsIGk4LCBp OCwgaTgsIGk4KTsKKy1pbXBsX3NpbWRfYXJyYXkhKFt1ODsgOF06IHU4eDggfCB1OCwgdTgsIHU4 LCB1OCwgdTgsIHU4LCB1OCwgdTgpOworLWltcGxfc2ltZF9hcnJheSEoW204OyA4XTogbTh4OCB8 IGk4LCBpOCwgaTgsIGk4LCBpOCwgaTgsIGk4LCBpOCk7CistCistaW1wbF9zaW1kX2FycmF5IShb aTE2OyA0XTogaTE2eDQgfCBpMTYsIGkxNiwgaTE2LCBpMTYpOworLWltcGxfc2ltZF9hcnJheSEo W3UxNjsgNF06IHUxNng0IHwgdTE2LCB1MTYsIHUxNiwgdTE2KTsKKy1pbXBsX3NpbWRfYXJyYXkh KFttMTY7IDRdOiBtMTZ4NCB8IGkxNiwgaTE2LCBpMTYsIGkxNik7CistCistaW1wbF9zaW1kX2Fy cmF5IShbaTMyOyAyXTogaTMyeDIgfCBpMzIsIGkzMik7CistaW1wbF9zaW1kX2FycmF5IShbdTMy OyAyXTogdTMyeDIgfCB1MzIsIHUzMik7CistaW1wbF9zaW1kX2FycmF5IShbZjMyOyAyXTogZjMy eDIgfCBmMzIsIGYzMik7CistaW1wbF9zaW1kX2FycmF5IShbbTMyOyAyXTogbTMyeDIgfCBpMzIs IGkzMik7CistCistaW1wbF9zaW1kX2FycmF5IShbaTY0OyAxXTogaTY0eDEgfCBpNjQpOworLWlt cGxfc2ltZF9hcnJheSEoW3U2NDsgMV06IHU2NHgxIHwgdTY0KTsKKy1pbXBsX3NpbWRfYXJyYXkh KFtmNjQ7IDFdOiBmNjR4MSB8IGY2NCk7CistaW1wbF9zaW1kX2FycmF5IShbbTY0OyAxXTogbTY0 eDEgfCBpNjQpOworZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3Jj L2NvZGVnZW4vdlB0ci5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVn ZW4vdlB0ci5ycworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9y dXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3ZQdHIucnMKKysrKyAvZGV2L251bGwKK0BAIC0x LDM1ICswLDAgQEAKKy0vLyEgUG9pbnRlciB2ZWN0b3IgdHlwZXMKKy0KKy1tYWNyb19ydWxlcyEg aW1wbF9zaW1kX3B0ciB7CistICAgIChbJHB0cl90eTp0eTsgJGVsZW1fY291bnQ6ZXhwcl06ICR0 dXBsZV9pZDppZGVudCB8ICR0eTppZGVudAorLSAgICAgfCAkKCR0eXM6dHkpLCopID0+IHsKKy0g ICAgICAgICNbZGVyaXZlKENvcHksIENsb25lKV0KKy0gICAgICAgICNbcmVwcihzaW1kKV0KKy0g ICAgICAgIHB1YiBzdHJ1Y3QgJHR1cGxlX2lkPCR0eT4oJChwdWIoY3JhdGUpICR0eXMpLCopOwor LSAgICAgICAgLy9eXl5eXl5eIGxlYWtlZCB0aHJvdWdoIFNpbWRBcnJheQorLQorLSAgICAgICAg aW1wbDwkdHk+IGNyYXRlOjpzZWFsZWQ6OlNlYWwgZm9yIFskcHRyX3R5OyAkZWxlbV9jb3VudF0g e30KKy0gICAgICAgIGltcGw8JHR5PiBjcmF0ZTo6c2VhbGVkOjpTaW1kQXJyYXkgZm9yIFskcHRy X3R5OyAkZWxlbV9jb3VudF0geworLSAgICAgICAgICAgIHR5cGUgVHVwbGUgPSAkdHVwbGVfaWQ8 JHB0cl90eT47CistICAgICAgICAgICAgdHlwZSBUID0gJHB0cl90eTsKKy0gICAgICAgICAgICBj b25zdCBOOiB1c2l6ZSA9ICRlbGVtX2NvdW50OworLSAgICAgICAgICAgIHR5cGUgTlQgPSBbdTMy OyAkZWxlbV9jb3VudF07CistICAgICAgICB9CistCistICAgICAgICBpbXBsPCR0eT4gY3JhdGU6 OnNlYWxlZDo6U2VhbCBmb3IgJHR1cGxlX2lkPCRwdHJfdHk+IHt9CistICAgICAgICBpbXBsPCR0 eT4gY3JhdGU6OnNlYWxlZDo6U2ltZCBmb3IgJHR1cGxlX2lkPCRwdHJfdHk+IHsKKy0gICAgICAg ICAgICB0eXBlIEVsZW1lbnQgPSAkcHRyX3R5OworLSAgICAgICAgICAgIGNvbnN0IExBTkVTOiB1 c2l6ZSA9ICRlbGVtX2NvdW50OworLSAgICAgICAgICAgIHR5cGUgTGFuZXNUeXBlID0gW3UzMjsg JGVsZW1fY291bnRdOworLSAgICAgICAgfQorLQorLSAgICB9CistfQorLQorLWltcGxfc2ltZF9w dHIhKFsqY29uc3QgVDsgMl06IGNwdHJ4MiB8IFQgfCBULCBUKTsKKy1pbXBsX3NpbWRfcHRyIShb KmNvbnN0IFQ7IDRdOiBjcHRyeDQgfCBUIHwgVCwgVCwgVCwgVCk7CistaW1wbF9zaW1kX3B0ciEo Wypjb25zdCBUOyA4XTogY3B0cng4IHwgVCB8IFQsIFQsIFQsIFQsIFQsIFQsIFQsIFQpOworLQor LWltcGxfc2ltZF9wdHIhKFsqbXV0IFQ7IDJdOiBtcHRyeDIgfCBUIHwgVCwgVCk7CistaW1wbF9z aW1kX3B0ciEoWyptdXQgVDsgNF06IG1wdHJ4NCB8IFQgfCBULCBULCBULCBUKTsKKy1pbXBsX3Np bWRfcHRyIShbKm11dCBUOyA4XTogbXB0cng4IHwgVCB8IFQsIFQsIFQsIFQsIFQsIFQsIFQsIFQp OworZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4v dlNpemUucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3ZTaXpl LnJzCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFj a2VkX3NpbWQvc3JjL2NvZGVnZW4vdlNpemUucnMKKysrKyAvZGV2L251bGwKK0BAIC0xLDE2ICsw LDAgQEAKKy0vLyEgVmVjdG9yIHR5cGVzIHdpdGggcG9pbnRlci1zaXplZCBlbGVtZW50cworLQor LXVzZSBjcmF0ZTo6Y29kZWdlbjo6cG9pbnRlcl9zaXplZF9pbnQ6Ontpc2l6ZV8sIHVzaXplX307 CistdXNlIGNyYXRlOjptYXNrczo6KjsKKy0KKy1pbXBsX3NpbWRfYXJyYXkhKFtpc2l6ZTsgMl06 IGlzaXpleDIgfCBpc2l6ZV8sIGlzaXplXyk7CistaW1wbF9zaW1kX2FycmF5IShbdXNpemU7IDJd OiB1c2l6ZXgyIHwgdXNpemVfLCB1c2l6ZV8pOworLWltcGxfc2ltZF9hcnJheSEoW21zaXplOyAy XTogbXNpemV4MiB8IGlzaXplXywgaXNpemVfKTsKKy0KKy1pbXBsX3NpbWRfYXJyYXkhKFtpc2l6 ZTsgNF06IGlzaXpleDQgfCBpc2l6ZV8sIGlzaXplXywgaXNpemVfLCBpc2l6ZV8pOworLWltcGxf c2ltZF9hcnJheSEoW3VzaXplOyA0XTogdXNpemV4NCB8IHVzaXplXywgdXNpemVfLCB1c2l6ZV8s IHVzaXplXyk7CistaW1wbF9zaW1kX2FycmF5IShbbXNpemU7IDRdOiBtc2l6ZXg0IHwgaXNpemVf LCBpc2l6ZV8sIGlzaXplXywgaXNpemVfKTsKKy0KKy1pbXBsX3NpbWRfYXJyYXkhKFtpc2l6ZTsg OF06IGlzaXpleDggfCBpc2l6ZV8sIGlzaXplXywgaXNpemVfLCBpc2l6ZV8sIGlzaXplXywgaXNp emVfLCBpc2l6ZV8sIGlzaXplXyk7CistaW1wbF9zaW1kX2FycmF5IShbdXNpemU7IDhdOiB1c2l6 ZXg4IHwgdXNpemVfLCB1c2l6ZV8sIHVzaXplXywgdXNpemVfLCB1c2l6ZV8sIHVzaXplXywgdXNp emVfLCB1c2l6ZV8pOworLWltcGxfc2ltZF9hcnJheSEoW21zaXplOyA4XTogbXNpemV4OCB8IGlz aXplXywgaXNpemVfLCBpc2l6ZV8sIGlzaXplXywgaXNpemVfLCBpc2l6ZV8sIGlzaXplXywgaXNp emVfKTsKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9saWIu cnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9saWIucnMKK2RlbGV0ZWQgZmls ZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvbGli LnJzCisrKysgL2Rldi9udWxsCitAQCAtMSwzNDggKzAsMCBAQAorLS8vISAjIFBvcnRhYmxlIHBh Y2tlZCBTSU1EIHZlY3RvcnMKKy0vLyEKKy0vLyEgVGhpcyBjcmF0ZSBpcyBwcm9wb3NlZCBmb3Ig c3RhYmlsaXphdGlvbiBhcyBgc3RkOjpwYWNrZWRfc2ltZGAgaW4gW1JGQzIzNjY6CistLy8hIGBz dGQ6OnNpbWRgXShodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL3JmY3MvcHVsbC8yMzY2KSAu CistLy8hCistLy8hIFRoZSBleGFtcGxlcyBhdmFpbGFibGUgaW4gdGhlCistLy8hIFtgZXhhbXBs ZXMvYF0oaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy1udXJzZXJ5L3BhY2tlZF9zaW1kL3Ry ZWUvbWFzdGVyL2V4YW1wbGVzKQorLS8vISBzdWItZGlyZWN0b3J5IG9mIHRoZSBjcmF0ZSBzaG93 Y2FzZSBob3cgdG8gdXNlIHRoZSBsaWJyYXJ5IGluIHByYWN0aWNlLgorLS8vIQorLS8vISAjIyBU YWJsZSBvZiBjb250ZW50cworLS8vIQorLS8vISAtIFtJbnRyb2R1Y3Rpb25dKCNpbnRyb2R1Y3Rp b24pCistLy8hIC0gW1ZlY3RvciB0eXBlc10oI3ZlY3Rvci10eXBlcykKKy0vLyEgLSBbQ29uZGl0 aW9uYWwgb3BlcmF0aW9uc10oI2NvbmRpdGlvbmFsLW9wZXJhdGlvbnMpCistLy8hIC0gW0NvbnZl cnNpb25zXSgjY29udmVyc2lvbnMpCistLy8hIC0gW0hhcmR3YXJlIEZlYXR1cmVzXSgjaGFyZHdh cmUtZmVhdHVyZXMpCistLy8hIC0gW1BlcmZvcm1hbmNlIGd1aWRlXShodHRwczovL3J1c3QtbGFu Zy1udXJzZXJ5LmdpdGh1Yi5pby9wYWNrZWRfc2ltZC9wZXJmLWd1aWRlLykKKy0vLyEKKy0vLyEg IyMgSW50cm9kdWN0aW9uCistLy8hCistLy8hIFRoaXMgY3JhdGUgZXhwb3J0cyBbYFNpbWQ8W1Q7 IE5dPmBdW2BTaW1kYF06IGEgcGFja2VkIHZlY3RvciBvZiBgTmAKKy0vLyEgZWxlbWVudHMgb2Yg dHlwZSBgVGAgYXMgd2VsbCBhcyBtYW55IHR5cGUgYWxpYXNlcyBmb3IgdGhpcyB0eXBlOiBmb3IK Ky0vLyEgZXhhbXBsZSwgW2BmMzJ4NGBdLCB3aGljaCBpcyBqdXN0IGFuIGFsaWFzIGZvciBgU2lt ZDxbZjMyOyA0XT5gLgorLS8vIQorLS8vISBUaGUgb3BlcmF0aW9ucyBvbiBwYWNrZWQgdmVjdG9y cyBhcmUsIGJ5IGRlZmF1bHQsICJ2ZXJ0aWNhbCIsIHRoYXQgaXMsIHRoZXkKKy0vLyEgYXJlIGFw cGxpZWQgdG8gZWFjaCB2ZWN0b3IgbGFuZSBpbiBpc29sYXRpb24gb2YgdGhlIG90aGVyczoKKy0v LyEKKy0vLyEgYGBgCistLy8hICMgdXNlIHBhY2tlZF9zaW1kOjoqOworLS8vISBsZXQgYSA9IGkz Mng0OjpuZXcoMSwgMiwgMywgNCk7CistLy8hIGxldCBiID0gaTMyeDQ6Om5ldyg1LCA2LCA3LCA4 KTsKKy0vLyEgYXNzZXJ0X2VxIShhICsgYiwgaTMyeDQ6Om5ldyg2LCA4LCAxMCwgMTIpKTsKKy0v LyEgYGBgCistLy8hCistLy8hIE1hbnkgImhvcml6b250YWwiIG9wZXJhdGlvbnMgYXJlIGFsc28g cHJvdmlkZWQ6CistLy8hCistLy8hIGBgYAorLS8vISAjIHVzZSBwYWNrZWRfc2ltZDo6KjsKKy0v LyEgIyBsZXQgYSA9IGkzMng0OjpuZXcoMSwgMiwgMywgNCk7CistLy8hIGFzc2VydF9lcSEoYS53 cmFwcGluZ19zdW0oKSwgMTApOworLS8vISBgYGAKKy0vLyEKKy0vLyEgSW4gdmlydHVhbGx5IGFs bCBhcmNoaXRlY3R1cmVzIHZlcnRpY2FsIG9wZXJhdGlvbnMgYXJlIGZhc3QsIHdoaWxlCistLy8h IGhvcml6b250YWwgb3BlcmF0aW9ucyBhcmUsIGJ5IGNvbXBhcmlzb24sIG11Y2ggc2xvd2VyLiBU aGF0IGlzLCB0aGUKKy0vLyEgbW9zdCBwb3J0YWJseS1lZmZpY2llbnQgd2F5IG9mIHBlcmZvcm1p bmcgYSByZWR1Y3Rpb24gb3ZlciBhIHNsaWNlCistLy8hIGlzIHRvIGNvbGxlY3QgdGhlIHJlc3Vs dHMgaW50byBhIHZlY3RvciB1c2luZyB2ZXJ0aWNhbCBvcGVyYXRpb25zLAorLS8vISBhbmQgcGVy Zm9ybWluZyBhIHNpbmdsZSBob3Jpem9udGFsIG9wZXJhdGlvbiBhdCB0aGUgZW5kOgorLS8vIQor LS8vISBgYGAKKy0vLyEgIyB1c2UgcGFja2VkX3NpbWQ6Oio7CistLy8hIGZuIHJlZHVjZSh4OiAm W2kzMl0pIC0+IGkzMiB7CistLy8hICAgICBhc3NlcnRfZXEhKHgubGVuKCkgJSA0LCAwKTsKKy0v LyEgICAgIGxldCBtdXQgc3VtID0gaTMyeDQ6OnNwbGF0KDApOyAvLyBbMCwgMCwgMCwgMF0KKy0v LyEgICAgIGZvciBpIGluICgwLi54LmxlbigpKS5zdGVwX2J5KDQpIHsKKy0vLyEgICAgICAgICBz dW0gKz0gaTMyeDQ6OmZyb21fc2xpY2VfdW5hbGlnbmVkKCZ4W2kuLl0pOworLS8vISAgICAgfQor LS8vISAgICAgc3VtLndyYXBwaW5nX3N1bSgpCistLy8hIH0KKy0vLyEKKy0vLyEgbGV0IHggPSBb MCwgMSwgMiwgMywgNCwgNSwgNiwgN107CistLy8hIGFzc2VydF9lcSEocmVkdWNlKCZ4KSwgMjgp OworLS8vISBgYGAKKy0vLyEKKy0vLyEgIyMgVmVjdG9yIHR5cGVzCistLy8hCistLy8hIFRoZSB2 ZWN0b3IgdHlwZSBhbGlhc2VzIGFyZSBuYW1lZCBhY2NvcmRpbmcgdG8gdGhlIGZvbGxvd2luZyBz Y2hlbWU6CistLy8hCistLy8hID4gYHtlbGVtZW50X3R5cGV9eHtudW1iZXJfb2ZfbGFuZXN9ID09 IFNpbWQ8W2VsZW1lbnRfdHlwZTsKKy0vLyEgbnVtYmVyX29mX2xhbmVzXT5gCistLy8hCistLy8h IHdoZXJlIHRoZSBmb2xsb3dpbmcgZWxlbWVudCB0eXBlcyBhcmUgc3VwcG9ydGVkOgorLS8vIQor LS8vISAqIGBpe2VsZW1lbnRfd2lkdGh9YDogc2lnbmVkIGludGVnZXIKKy0vLyEgKiBgdXtlbGVt ZW50X3dpZHRofWA6IHVuc2lnbmVkIGludGVnZXIKKy0vLyEgKiBgZntlbGVtZW50X3dpZHRofWA6 IGZsb2F0CistLy8hICogYG17ZWxlbWVudF93aWR0aH1gOiBtYXNrIChzZWUgYmVsb3cpCistLy8h ICogYCp7Y29uc3QsbXV0fSBUYDogYGNvbnN0YCBhbmQgYG11dGAgcG9pbnRlcnMKKy0vLyEKKy0v LyEgIyMgQmFzaWMgb3BlcmF0aW9ucworLS8vIQorLS8vISBgYGAKKy0vLyEgIyB1c2UgcGFja2Vk X3NpbWQ6Oio7CistLy8hIC8vIFNldHMgYWxsIGVsZW1lbnRzIHRvIGAwYDoKKy0vLyEgbGV0IGEg PSBpMzJ4NDo6c3BsYXQoMCk7CistLy8hCistLy8hIC8vIFJlYWRzIGEgdmVjdG9yIGZyb20gYSBz bGljZToKKy0vLyEgbGV0IG11dCBhcnIgPSBbMCwgMCwgMCwgMSwgMiwgMywgNCwgNV07CistLy8h IGxldCBiID0gaTMyeDQ6OmZyb21fc2xpY2VfdW5hbGlnbmVkKCZhcnIpOworLS8vIQorLS8vISAv LyBSZWFkcyB0aGUgNC10aCBlbGVtZW50IG9mIGEgdmVjdG9yOgorLS8vISBhc3NlcnRfZXEhKGIu ZXh0cmFjdCgzKSwgMSk7CistLy8hCistLy8hIC8vIFJldHVybnMgYSBuZXcgdmVjdG9yIHdoZXJl IHRoZSA0LXRoIGVsZW1lbnQgaXMgcmVwbGFjZWQgd2l0aCBgMWA6CistLy8hIGxldCBhID0gYS5y ZXBsYWNlKDMsIDEpOworLS8vISBhc3NlcnRfZXEhKGEsIGIpOworLS8vIQorLS8vISAvLyBXcml0 ZXMgYSB2ZWN0b3IgdG8gYSBzbGljZToKKy0vLyEgbGV0IGEgPSBhLnJlcGxhY2UoMiwgMSk7Cist Ly8hIGEud3JpdGVfdG9fc2xpY2VfdW5hbGlnbmVkKCZtdXQgYXJyWzQuLl0pOworLS8vISBhc3Nl cnRfZXEhKGFyciwgWzAsIDAsIDAsIDEsIDAsIDAsIDEsIDFdKTsKKy0vLyEgYGBgCistLy8hCist Ly8hICMjIENvbmRpdGlvbmFsIG9wZXJhdGlvbnMKKy0vLyEKKy0vLyEgT25lIG9mdGVuIG5lZWRz IHRvIHBlcmZvcm0gYW4gb3BlcmF0aW9uIG9uIHNvbWUgbGFuZXMgb2YgdGhlIHZlY3Rvci4gVmVj dG9yCistLy8hIG1hc2tzLCBsaWtlIGBtMzJ4NGAsIGFsbG93IHNlbGVjdGluZyBvbiB3aGljaCB2 ZWN0b3IgbGFuZXMgYW4gb3BlcmF0aW9uIGlzCistLy8hIHRvIGJlIHBlcmZvcm1lZDoKKy0vLyEK Ky0vLyEgYGBgCistLy8hICMgdXNlIHBhY2tlZF9zaW1kOjoqOworLS8vISBsZXQgYSA9IGkzMng0 OjpuZXcoMSwgMSwgMiwgMik7CistLy8hCistLy8hIC8vIEFkZCBgMWAgdG8gdGhlIGZpcnN0IHR3 byBsYW5lcyBvZiB0aGUgdmVjdG9yLgorLS8vISBsZXQgbSA9IG0xNng0OjpuZXcodHJ1ZSwgdHJ1 ZSwgZmFsc2UsIGZhbHNlKTsKKy0vLyEgbGV0IGEgPSBtLnNlbGVjdChhICsgMSwgYSk7CistLy8h IGFzc2VydF9lcSEoYSwgaTMyeDQ6OnNwbGF0KDIpKTsKKy0vLyEgYGBgCistLy8hCistLy8hIFRo ZSBlbGVtZW50cyBvZiBhIHZlY3RvciBtYXNrIGFyZSBlaXRoZXIgYHRydWVgIG9yIGBmYWxzZWAu IEhlcmUgYHRydWVgCistLy8hIG1lYW5zIHRoYXQgYSBsYW5lIGlzICJzZWxlY3RlZCIsIHdoaWxl IGBmYWxzZWAgbWVhbnMgdGhhdCBhIGxhbmUgaXMgbm90CistLy8hIHNlbGVjdGVkLgorLS8vIQor LS8vISBBbGwgdmVjdG9yIG1hc2tzIGltcGxlbWVudCBhIGBtYXNrLnNlbGVjdChhOiBULCBiOiBU KSAtPiBUYCBtZXRob2QgdGhhdAorLS8vISB3b3JrcyBvbiBhbGwgdmVjdG9ycyB0aGF0IGhhdmUg dGhlIHNhbWUgbnVtYmVyIG9mIGxhbmVzIGFzIHRoZSBtYXNrLiBUaGUKKy0vLyEgcmVzdWx0aW5n IHZlY3RvciBjb250YWlucyB0aGUgZWxlbWVudHMgb2YgYGFgIGZvciB0aG9zZSBsYW5lcyBmb3Ig d2hpY2ggdGhlCistLy8hIG1hc2sgaXMgYHRydWVgLCBhbmQgdGhlIGVsZW1lbnRzIG9mIGBiYCBv dGhlcndpc2UuCistLy8hCistLy8hIFRoZSBleGFtcGxlIGNvbnN0cnVjdHMgYSBtYXNrIHdpdGgg dGhlIGZpcnN0IHR3byBsYW5lcyBzZXQgdG8gYHRydWVgIGFuZAorLS8vISB0aGUgbGFzdCB0d28g bGFuZXMgc2V0IHRvIGBmYWxzZWAuIFRoaXMgc2VsZWN0cyB0aGUgZmlyc3QgdHdvIGxhbmVzIG9m IGBhICsKKy0vLyEgMWAgYW5kIHRoZSBsYXN0IHR3byBsYW5lcyBvZiBgYWAsIHByb2R1Y2luZyBh IHZlY3RvciB3aGVyZSB0aGUgZmlyc3QgdHdvCistLy8hIGxhbmVzIGhhdmUgYmVlbiBpbmNyZW1l bnRlZCBieSBgMWAuCistLy8hCistLy8hID4gbm90ZTogbWFzayBgc2VsZWN0YCBjYW4gYmUgdXNl ZCBvbiB2ZWN0b3IgdHlwZXMgdGhhdCBoYXZlIHRoZSBzYW1lIG51bWJlcgorLS8vISA+IG9mIGxh bmVzIGFzIHRoZSBtYXNrLiBUaGUgZXhhbXBsZSBzaG93cyB0aGlzIGJ5IHVzaW5nIFtgbTE2eDRg XSBpbnN0ZWFkCistLy8hID4gb2YgW2BtMzJ4NGBdLiBJdCBpcyBfdHlwaWNhbGx5XyBtb3JlIHBl cmZvcm1hbnQgdG8gdXNlIGEgbWFzayBlbGVtZW50CistLy8hID4gd2lkdGggZXF1YWwgdG8gdGhl IGVsZW1lbnQgd2lkdGggb2YgdGhlIHZlY3RvcnMgYmVpbmcgb3BlcmF0ZWQgdXBvbi4KKy0vLyEg PiBUaGlzIGlzLCBob3dldmVyLCBub3QgdHJ1ZSBmb3IgNTEyLWJpdCB3aWRlIHZlY3RvcnMgd2hl biB0YXJnZXRpbmcKKy0vLyEgPiBBVlgtNTEyLCB3aGVyZSB0aGUgbW9zdCBlZmZpY2llbnQgbWFz a3MgdXNlIG9ubHkgMS1iaXQgcGVyIGVsZW1lbnQuCistLy8hCistLy8hIEFsbCB2ZXJ0aWNhbCBj b21wYXJpc29uIG9wZXJhdGlvbnMgcmV0dXJucyBtYXNrczoKKy0vLyEKKy0vLyEgYGBgCistLy8h ICMgdXNlIHBhY2tlZF9zaW1kOjoqOworLS8vISBsZXQgYSA9IGkzMng0OjpuZXcoMSwgMSwgMywg Myk7CistLy8hIGxldCBiID0gaTMyeDQ6Om5ldygyLCAyLCAwLCAwKTsKKy0vLyEKKy0vLyEgLy8g Z2U6ID49IChHcmVhdGVyIEVlcXVhbDsgc2VlIGFsc28gbHQsIGxlLCBndCwgZXEsIG5lKS4KKy0v LyEgbGV0IG0gPSBhLmdlKGkzMng0OjpzcGxhdCgyKSk7CistLy8hCistLy8hIGlmIG0uYW55KCkg eworLS8vISAgICAgLy8gYWxsIC8gYW55IC8gbm9uZSBhbGxvdyBjb2hlcmVudCBjb250cm9sIGZs b3cKKy0vLyEgICAgIGxldCBkID0gbS5zZWxlY3QoYSwgYik7CistLy8hICAgICBhc3NlcnRfZXEh KGQsIGkzMng0OjpuZXcoMiwgMiwgMywgMykpOworLS8vISB9CistLy8hIGBgYAorLS8vIQorLS8v ISAjIyBDb252ZXJzaW9ucworLS8vIQorLS8vISAqICoqbG9zc2xlc3Mgd2lkZW5pbmcgY29udmVy c2lvbnMqKjogW2BGcm9tYF0vW2BJbnRvYF0gYXJlIGltcGxlbWVudGVkIGZvcgorLS8vISAgIHZl Y3RvcnMgd2l0aCB0aGUgc2FtZSBudW1iZXIgb2YgbGFuZXMgd2hlbiB0aGUgY29udmVyc2lvbiBp cyB2YWx1ZQorLS8vISBwcmVzZXJ2aW5nICAgKHNhbWUgYXMgaW4gYHN0ZGApLgorLS8vIQorLS8v ISAqICoqc2FmZSBiaXR3aXNlIGNvbnZlcnNpb25zKio6IFRoZSBjYXJnbyBmZWF0dXJlIGBpbnRv X2JpdHNgIHByb3ZpZGVzIHRoZQorLS8vISAgIGBJbnRvQml0cy9Gcm9tQml0c2AgdHJhaXRzIChg eC5pbnRvX2JpdHMoKWApLiBUaGVzZSBwZXJmb3JtIHNhZmUgYml0d2lzZQorLS8vISAgIGB0cmFu c211dGVgcyB3aGVuIGFsbCBiaXQgcGF0dGVybnMgb2YgdGhlIHNvdXJjZSB0eXBlIGFyZSB2YWxp ZCBiaXQKKy0vLyEgICBwYXR0ZXJucyBvZiB0aGUgdGFyZ2V0IHR5cGUgYW5kIGFyZSBhbHNvIGlt cGxlbWVudGVkIGZvciB0aGUKKy0vLyEgICBhcmNoaXRlY3R1cmUtc3BlY2lmaWMgdmVjdG9yIHR5 cGVzIG9mIGBzdGQ6OmFyY2hgLiBGb3IgZXhhbXBsZSwgYGxldCB4OgorLS8vISAgIHU4eDggPSBt OHg4OjpzcGxhdCh0cnVlKS5pbnRvX2JpdHMoKTtgIGlzIHByb3ZpZGVkIGJlY2F1c2UgYWxsIGBt OHg4YCBiaXQKKy0vLyEgICBwYXR0ZXJucyBhcmUgdmFsaWQgYHU4eDhgIGJpdCBwYXR0ZXJucy4g SG93ZXZlciwgdGhlIG9wcG9zaXRlIGlzIG5vdAorLS8vISB0cnVlLCAgIG5vdCBhbGwgYHU4eDhg IGJpdCBwYXR0ZXJucyBhcmUgdmFsaWQgYG04eDhgIGJpdC1wYXR0ZXJucywgc28gdGhpcworLS8v ISAgIG9wZXJhdGlvbiBjYW5ub3QgYmUgcGVyZm9ybWVkIHNhZmVseSB1c2luZyBgeC5pbnRvX2Jp dHMoKWA7IG9uZSBuZWVkcyB0bworLS8vISAgIHVzZSBgdW5zYWZlIHsgY3JhdGU6Om1lbTo6dHJh bnNtdXRlKHgpIH1gIGZvciB0aGF0LCBtYWtpbmcgc3VyZSB0aGF0IHRoZQorLS8vISAgIHZhbHVl IGluIHRoZSBgdTh4OGAgaXMgYSB2YWxpZCBiaXQtcGF0dGVybiBvZiBgbTh4OGAuCistLy8hCist Ly8hICogKipudW1lcmljIGNhc3RzKiogKGBhc2ApOiBhcmUgcGVyZm9ybWVkIHVzaW5nIFtgRnJv bUNhc3RgXS9bYENhc3RgXQorLS8vISAoYHguY2FzdCgpYCksIGp1c3QgbGlrZSBgYXNgOgorLS8v IQorLS8vISAgICogY2FzdGluZyBpbnRlZ2VyIHZlY3RvcnMgd2hvc2UgbGFuZSB0eXBlcyBoYXZl IHRoZSBzYW1lIHNpemUgKGUuZy4KKy0vLyEgYGkzMnhOYCAgICAgLT4gYHUzMnhOYCkgaXMgYSAq Km5vLW9wKiosCistLy8hCistLy8hICAgKiBjYXN0aW5nIGZyb20gYSBsYXJnZXIgaW50ZWdlciB0 byBhIHNtYWxsZXIgaW50ZWdlciAoZS5nLiBgdTMyeE5gIC0+CistLy8hIGB1OHhOYCkgICAgIHdp bGwgKip0cnVuY2F0ZSoqLAorLS8vIQorLS8vISAgICogY2FzdGluZyBmcm9tIGEgc21hbGxlciBp bnRlZ2VyIHRvIGEgbGFyZ2VyIGludGVnZXIgICAgIChlLmcuIGB1OHhOYCAtPgorLS8vISAgICAg YHUzMnhOYCkgd2lsbDoKKy0vLyEgICAgICAgICogKip6ZXJvLWV4dGVuZCoqIGlmIHRoZSBzb3Vy Y2UgaXMgdW5zaWduZWQsIG9yCistLy8hICAgICAgICAqICoqc2lnbi1leHRlbmQqKiBpZiB0aGUg c291cmNlIGlzIHNpZ25lZCwKKy0vLyEKKy0vLyEgICAqIGNhc3RpbmcgZnJvbSBhIGZsb2F0IHRv IGFuIGludGVnZXIgd2lsbCAqKnJvdW5kIHRoZSBmbG9hdCB0b3dhcmRzCistLy8hIHplcm8qKiwK Ky0vLyEKKy0vLyEgICAqIGNhc3RpbmcgZnJvbSBhbiBpbnRlZ2VyIHRvIGZsb2F0IHdpbGwgcHJv ZHVjZSB0aGUgZmxvYXRpbmcgcG9pbnQKKy0vLyEgICAgIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBp bnRlZ2VyLCAqKnJvdW5kaW5nIHRvIG5lYXJlc3QsIHRpZXMgdG8gZXZlbioqLAorLS8vIQorLS8v ISAgICogY2FzdGluZyBmcm9tIGFuIGBmMzJgIHRvIGFuIGBmNjRgIGlzIHBlcmZlY3QgYW5kIGxv c3NsZXNzLAorLS8vIQorLS8vISAgICogY2FzdGluZyBmcm9tIGFuIGBmNjRgIHRvIGFuIGBmMzJg ICoqcm91bmRzIHRvIG5lYXJlc3QsIHRpZXMgdG8gZXZlbioqLgorLS8vIQorLS8vISAgIE51bWVy aWMgY2FzdHMgYXJlIG5vdCB2ZXJ5ICJwcmVjaXNlIjogc29tZXRpbWVzIGxvc3N5LCBzb21ldGlt ZXMgdmFsdWUKKy0vLyEgICBwcmVzZXJ2aW5nLCBldGMuCistLy8hCistLy8hICMjIEhhcmR3YXJl IEZlYXR1cmVzCistLy8hCistLy8hIFRoaXMgY3JhdGUgY2FuIHVzZSBkaWZmZXJlbnQgaGFyZHdh cmUgZmVhdHVyZXMgYmFzZWQgb24geW91ciBjb25maWd1cmVkCistLy8hIGBSVVNURkxBR1NgLiBG b3IgZXhhbXBsZSwgd2l0aCBubyBjb25maWd1cmVkIGBSVVNURkxBR1NgLCBgdTY0eDhgIG9uCist Ly8hIHg4Nl82NCB3aWxsIHVzZSBTU0UyIG9wZXJhdGlvbnMgbGlrZSBgUENNUEVRRGAuIElmIHlv dSBjb25maWd1cmUKKy0vLyEgYFJVU1RGTEFHUz0nLUMgdGFyZ2V0LWZlYXR1cmU9K2F2eDIsK2F2 eCdgIG9uIHN1cHBvcnRlZCB4ODZfNjQgaGFyZHdhcmUKKy0vLyEgdGhlIHNhbWUgYHU2NHg4YCBt YXkgdXNlIHdpZGVyIEFWWDIgb3BlcmF0aW9ucyBsaWtlIGBWUENNUEVRUWAuIEl0IGlzCistLy8h IGltcG9ydGFudCBmb3IgcGVyZm9ybWFuY2UgYW5kIGZvciBoYXJkd2FyZSBzdXBwb3J0IHJlcXVp cmVtZW50cyB0aGF0CistLy8hIHlvdSBjaG9vc2UgYW4gYXBwcm9wcmlhdGUgc2V0IG9mIGB0YXJn ZXQtZmVhdHVyZWAgYW5kIGB0YXJnZXQtY3B1YAorLS8vISBvcHRpb25zIGR1cmluZyBidWlsZHMu IEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgdGhlIFtQZXJmb3JtYW5jZQorLS8vISBndWlkZV0o aHR0cHM6Ly9ydXN0LWxhbmctbnVyc2VyeS5naXRodWIuaW8vcGFja2VkX3NpbWQvcGVyZi1ndWlk ZS8pCistCistIyFbZmVhdHVyZSgKKy0gICAgYWR0X2NvbnN0X3BhcmFtcywKKy0gICAgcmVwcl9z aW1kLAorLSAgICBydXN0Y19hdHRycywKKy0gICAgcGxhdGZvcm1faW50cmluc2ljcywKKy0gICAg c3Rkc2ltZCwKKy0gICAgYXJtX3RhcmdldF9mZWF0dXJlLAorLSAgICBsaW5rX2xsdm1faW50cmlu c2ljcywKKy0gICAgY29yZV9pbnRyaW5zaWNzLAorLSAgICBzdG10X2V4cHJfYXR0cmlidXRlcywK Ky0gICAgY3VzdG9tX2lubmVyX2F0dHJpYnV0ZXMsCistKV0KKy0jIVthbGxvdyhub25fY2FtZWxf Y2FzZV90eXBlcywgbm9uX3NuYWtlX2Nhc2UsCistICAgICAgICAvLyBGSVhNRTogdGhlc2UgdHlw ZXMgYXJlIHVuc291bmQgaW4gQyBGRkkgYWxyZWFkeQorLSAgICAgICAgLy8gU2VlIGh0dHBzOi8v Z2l0aHViLmNvbS9ydXN0LWxhbmcvcnVzdC9pc3N1ZXMvNTMzNDYKKy0gICAgICAgIGltcHJvcGVy X2N0eXBlc19kZWZpbml0aW9ucywKKy0gICAgICAgIGluY29tcGxldGVfZmVhdHVyZXMsCistICAg ICAgICBjbGlwcHk6OmNhc3RfcG9zc2libGVfdHJ1bmNhdGlvbiwKKy0gICAgICAgIGNsaXBweTo6 Y2FzdF9sb3NzbGVzcywKKy0gICAgICAgIGNsaXBweTo6Y2FzdF9wb3NzaWJsZV93cmFwLAorLSAg ICAgICAgY2xpcHB5OjpjYXN0X3ByZWNpc2lvbl9sb3NzLAorLSAgICAgICAgLy8gVE9ETzogbWFu dWFsbHkgYWRkIHRoZSBgI1ttdXN0X3VzZV1gIGF0dHJpYnV0ZSB3aGVyZSBhcHByb3ByaWF0ZQor LSAgICAgICAgY2xpcHB5OjptdXN0X3VzZV9jYW5kaWRhdGUsCistICAgICAgICAvLyBUaGlzIGxp bnQgaXMgY3VycmVudGx5IGJyb2tlbiBmb3IgZ2VuZXJpYyBjb2RlCistICAgICAgICAvLyBTZWUg aHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9ydXN0LWNsaXBweS9pc3N1ZXMvMzQxMAorLSAg ICAgICAgY2xpcHB5Ojp1c2Vfc2VsZiwKKy0gICAgICAgIGNsaXBweTo6d3Jvbmdfc2VsZl9jb252 ZW50aW9uLAorLSAgICAgICAgY2xpcHB5Ojpmcm9tX292ZXJfaW50bywKKy0pXQorLSMhW2NmZ19h dHRyKHRlc3QsIGZlYXR1cmUoaGFzaG1hcF9pbnRlcm5hbHMpKV0KKy0jIVtjZmdfYXR0cihkb2Nf Y2ZnLCBmZWF0dXJlKGRvY19jZmcpKV0KKy0jIVtkZW55KHJ1c3RfMjAxOF9pZGlvbXMsIGNsaXBw eTo6bWlzc2luZ19pbmxpbmVfaW5fcHVibGljX2l0ZW1zKV0KKy0jIVtub19zdGRdCistCistdXNl IGNmZ19pZjo6Y2ZnX2lmOworLQorLWNmZ19pZiEgeworLSAgICBpZiAjW2NmZyhmZWF0dXJlID0g ImNvcmVfYXJjaCIpXSB7CistICAgICAgICAjW2FsbG93KHVudXNlZF9pbXBvcnRzKV0KKy0gICAg ICAgIHVzZSBjb3JlX2FyY2ggYXMgYXJjaDsKKy0gICAgfSBlbHNlIHsKKy0gICAgICAgICNbYWxs b3codW51c2VkX2ltcG9ydHMpXQorLSAgICAgICAgdXNlIGNvcmU6OmFyY2g7CistICAgIH0KKy19 CistCistI1tjZmcoYWxsKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHRlc3QpKV0KKy11c2Ugd2Fz bV9iaW5kZ2VuX3Rlc3Q6Oio7CistCistI1thbGxvdyh1bnVzZWRfaW1wb3J0cyldCistdXNlIGNv cmU6OnsKKy0gICAgLyogYXJjaCAoaGFuZGxlZCBhYm92ZSksICovIGNtcCwgZjMyLCBmNjQsIGZt dCwgaGFzaCwgaGludCwgaTEyOCwgaTE2LCBpMzIsIGk2NCwgaTgsIGludHJpbnNpY3MsCistICAg IGlzaXplLCBpdGVyLCBtYXJrZXIsIG1lbSwgb3BzLCBwdHIsIHNsaWNlLCB1MTI4LCB1MTYsIHUz MiwgdTY0LCB1OCwgdXNpemUsCistfTsKKy0KKy0jW21hY3JvX3VzZV0KKy1tb2QgdGVzdGluZzsK Ky0jW21hY3JvX3VzZV0KKy1tb2QgYXBpOworLW1vZCBjb2RlZ2VuOworLW1vZCBzZWFsZWQ7Cist CistcHViIHVzZSBjcmF0ZTo6c2VhbGVkOjp7TWFzaywgU2h1ZmZsZSwgU2ltZCBhcyBTaW1kVmVj dG9yLCBTaW1kQXJyYXl9OworLQorLS8vLyBQYWNrZWQgU0lNRCB2ZWN0b3IgdHlwZS4KKy0vLy8K Ky0vLy8gIyBFeGFtcGxlcworLS8vLworLS8vLyBgYGAKKy0vLy8gIyB1c2UgcGFja2VkX3NpbWQ6 OlNpbWQ7CistLy8vIGxldCB2ID0gU2ltZDo6PFtpMzI7IDRdPjo6bmV3KDAsIDEsIDIsIDMpOwor LS8vLyBhc3NlcnRfZXEhKHYuZXh0cmFjdCgyKSwgMik7CistLy8vIGBgYAorLSNbcmVwcih0cmFu c3BhcmVudCldCistI1tkZXJpdmUoQ29weSwgQ2xvbmUpXQorLXB1YiBzdHJ1Y3QgU2ltZDxBOiBz ZWFsZWQ6OlNpbWRBcnJheT4oCistICAgIC8vIEZJWE1FOiB0aGlzIHR5cGUgc2hvdWxkIGJlIHBy aXZhdGUsCistICAgIC8vIGJ1dCBpdCBjdXJyZW50bHkgbXVzdCBiZSBwdWJsaWMgZm9yIHRoZQor LSAgICAvLyBgc2h1ZmZsZSFgIG1hY3JvIHRvIHdvcms6IGl0IG5lZWRzIHRvCistICAgIC8vIGFj Y2VzcyB0aGUgaW50ZXJuYWwgYHJlcHIoc2ltZClgIHR5cGUKKy0gICAgLy8gdG8gY2FsbCB0aGUg c2h1ZmZsZSBpbnRyaW5zaWNzLgorLSAgICAjW2RvYyhoaWRkZW4pXSBwdWIgPEEgYXMgc2VhbGVk OjpTaW1kQXJyYXk+OjpUdXBsZSwKKy0pOworLQorLWltcGw8QTogc2VhbGVkOjpTaW1kQXJyYXk+ IHNlYWxlZDo6U2VhbCBmb3IgU2ltZDxBPiB7fQorLQorLS8vLyBXcmFwcGVyIG92ZXIgYFRgIGlt cGxlbWVudGluZyBhIGxleGljb3JhcGhpY2FsIG9yZGVyIHZpYSB0aGUgYFBhcnRpYWxPcmRgCist Ly8vIGFuZC9vciBgT3JkYCB0cmFpdHMuCistI1tyZXByKHRyYW5zcGFyZW50KV0KKy0jW2Rlcml2 ZShDb3B5LCBDbG9uZSwgRGVidWcpXQorLSNbYWxsb3coY2xpcHB5OjptaXNzaW5nX2lubGluZV9p bl9wdWJsaWNfaXRlbXMpXQorLXB1YiBzdHJ1Y3QgTGV4aWNvZ3JhcGhpY2FsbHlPcmRlcmVkPFQ+ KFQpOworLQorLW1vZCBtYXNrczsKKy1wdWIgdXNlIHNlbGY6Om1hc2tzOjoqOworLQorLW1vZCB2 MTY7CistcHViIHVzZSBzZWxmOjp2MTY6Oio7CistCistbW9kIHYzMjsKKy1wdWIgdXNlIHNlbGY6 OnYzMjo6KjsKKy0KKy1tb2QgdjY0OworLXB1YiB1c2Ugc2VsZjo6djY0OjoqOworLQorLW1vZCB2 MTI4OworLXB1YiB1c2Ugc2VsZjo6djEyODo6KjsKKy0KKy1tb2QgdjI1NjsKKy1wdWIgdXNlIHNl bGY6OnYyNTY6Oio7CistCistbW9kIHY1MTI7CistcHViIHVzZSBzZWxmOjp2NTEyOjoqOworLQor LW1vZCB2U2l6ZTsKKy1wdWIgdXNlIHNlbGY6OnZTaXplOjoqOworLQorLW1vZCB2UHRyOworLXB1 YiB1c2Ugc2VsZjo6dlB0cjo6KjsKKy0KKy1wdWIgdXNlIHNlbGY6OmFwaTo6Y2FzdDo6KjsKKy0K Ky0jW2NmZyhmZWF0dXJlID0gImludG9fYml0cyIpXQorLXB1YiB1c2Ugc2VsZjo6YXBpOjppbnRv X2JpdHM6Oio7CistCistLy8gUmUtZXhwb3J0IHRoZSBzaHVmZmxlIGludHJpbnNpY3MgcmVxdWly ZWQgYnkgdGhlIGBzaHVmZmxlIWAgbWFjcm8uCistI1tkb2MoaGlkZGVuKV0KKy1wdWIgdXNlIHNl bGY6OmNvZGVnZW46Omxsdm06OnsKKy0gICAgX19zaHVmZmxlX3ZlY3RvcjE2LCBfX3NodWZmbGVf dmVjdG9yMiwgX19zaHVmZmxlX3ZlY3RvcjMyLCBfX3NodWZmbGVfdmVjdG9yNCwgX19zaHVmZmxl X3ZlY3RvcjY0LAorLSAgICBfX3NodWZmbGVfdmVjdG9yOCwKKy19OworLQorLXB1YihjcmF0ZSkg bW9kIGxsdm0geworLSAgICBwdWIoY3JhdGUpIHVzZSBjcmF0ZTo6Y29kZWdlbjo6bGx2bTo6KjsK Ky19CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvbWFza3Mu cnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9tYXNrcy5ycworZGVsZXRlZCBm aWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9t YXNrcy5ycworKysrIC9kZXYvbnVsbAorQEAgLTEsMTI2ICswLDAgQEAKKy0vLyEgTWFzayB0eXBl cworLQorLW1hY3JvX3J1bGVzISBpbXBsX21hc2tfdHkgeworLSAgICAoJGlkOmlkZW50IDogJGVs ZW1fdHk6aWRlbnQgfCAjWyRkb2M6bWV0YV0pID0+IHsKKy0gICAgICAgICNbJGRvY10KKy0gICAg ICAgICNbZGVyaXZlKENvcHksIENsb25lKV0KKy0gICAgICAgIHB1YiBzdHJ1Y3QgJGlkKCRlbGVt X3R5KTsKKy0KKy0gICAgICAgIGltcGwgY3JhdGU6OnNlYWxlZDo6U2VhbCBmb3IgJGlkIHt9Cist ICAgICAgICBpbXBsIGNyYXRlOjpzZWFsZWQ6Ok1hc2sgZm9yICRpZCB7CistICAgICAgICAgICAg I1tpbmxpbmVdCistICAgICAgICAgICAgZm4gdGVzdCgmc2VsZikgLT4gYm9vbCB7CistICAgICAg ICAgICAgICAgICRpZDo6dGVzdChzZWxmKQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0K Ky0gICAgICAgIGltcGwgJGlkIHsKKy0gICAgICAgICAgICAvLy8gSW5zdGFudGlhdGUgYSBtYXNr IHdpdGggYHZhbHVlYAorLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIHB1YiBm biBuZXcoeDogYm9vbCkgLT4gU2VsZiB7CistICAgICAgICAgICAgICAgIGlmIHggeworLSAgICAg ICAgICAgICAgICAgICAgJGlkKCEwKQorLSAgICAgICAgICAgICAgICB9IGVsc2UgeworLSAgICAg ICAgICAgICAgICAgICAgJGlkKDApCistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICB9 CistICAgICAgICAgICAgLy8vIFRlc3QgaWYgdGhlIG1hc2sgaXMgc2V0CistICAgICAgICAgICAg I1tpbmxpbmVdCistICAgICAgICAgICAgcHViIGZuIHRlc3QoJnNlbGYpIC0+IGJvb2wgeworLSAg ICAgICAgICAgICAgICBzZWxmLjAgIT0gMAorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0K Ky0gICAgICAgIGltcGwgRGVmYXVsdCBmb3IgJGlkIHsKKy0gICAgICAgICAgICAjW2lubGluZV0K Ky0gICAgICAgICAgICBmbiBkZWZhdWx0KCkgLT4gU2VsZiB7CistICAgICAgICAgICAgICAgICRp ZCgwKQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0KKy0gICAgICAgICNbYWxsb3coY2xp cHB5OjpwYXJ0aWFsZXFfbmVfaW1wbCldCistICAgICAgICBpbXBsIFBhcnRpYWxFcTwkaWQ+IGZv ciAkaWQgeworLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIGZuIGVxKCZzZWxm LCBvdGhlcjogJlNlbGYpIC0+IGJvb2wgeworLSAgICAgICAgICAgICAgICBzZWxmLjAgPT0gb3Ro ZXIuMAorLSAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAg ICBmbiBuZSgmc2VsZiwgb3RoZXI6ICZTZWxmKSAtPiBib29sIHsKKy0gICAgICAgICAgICAgICAg c2VsZi4wICE9IG90aGVyLjAKKy0gICAgICAgICAgICB9CistICAgICAgICB9CistCistICAgICAg ICBpbXBsIEVxIGZvciAkaWQge30KKy0KKy0gICAgICAgIGltcGwgUGFydGlhbE9yZDwkaWQ+IGZv ciAkaWQgeworLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIGZuIHBhcnRpYWxf Y21wKCZzZWxmLCBvdGhlcjogJlNlbGYpIC0+IE9wdGlvbjxjcmF0ZTo6Y21wOjpPcmRlcmluZz4g eworLSAgICAgICAgICAgICAgICB1c2UgY3JhdGU6OmNtcDo6T3JkZXJpbmc7CistICAgICAgICAg ICAgICAgIGlmIHNlbGYgPT0gb3RoZXIgeworLSAgICAgICAgICAgICAgICAgICAgU29tZShPcmRl cmluZzo6RXF1YWwpCistICAgICAgICAgICAgICAgIH0gZWxzZSBpZiBzZWxmLjAgPiBvdGhlci4w IHsKKy0gICAgICAgICAgICAgICAgICAgIC8vIE5vdGU6CistICAgICAgICAgICAgICAgICAgICAv LyAgKiBmYWxzZSA9IDBfaQorLSAgICAgICAgICAgICAgICAgICAgLy8gICogdHJ1ZSA9PSAhMF9p ID09IC0xX2kKKy0gICAgICAgICAgICAgICAgICAgIFNvbWUoT3JkZXJpbmc6Okxlc3MpCistICAg ICAgICAgICAgICAgIH0gZWxzZSB7CistICAgICAgICAgICAgICAgICAgICBTb21lKE9yZGVyaW5n OjpHcmVhdGVyKQorLSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgfQorLQorLSAgICAg ICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIGZuIGx0KCZzZWxmLCBvdGhlcjogJlNlbGYp IC0+IGJvb2wgeworLSAgICAgICAgICAgICAgICBzZWxmLjAgPiBvdGhlci4wCistICAgICAgICAg ICAgfQorLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIGZuIGd0KCZzZWxmLCBv dGhlcjogJlNlbGYpIC0+IGJvb2wgeworLSAgICAgICAgICAgICAgICBzZWxmLjAgPCBvdGhlci4w CistICAgICAgICAgICAgfQorLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIGZu IGxlKCZzZWxmLCBvdGhlcjogJlNlbGYpIC0+IGJvb2wgeworLSAgICAgICAgICAgICAgICBzZWxm LjAgPj0gb3RoZXIuMAorLSAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAjW2lubGluZV0KKy0g ICAgICAgICAgICBmbiBnZSgmc2VsZiwgb3RoZXI6ICZTZWxmKSAtPiBib29sIHsKKy0gICAgICAg ICAgICAgICAgc2VsZi4wIDw9IG90aGVyLjAKKy0gICAgICAgICAgICB9CistICAgICAgICB9Cist CistICAgICAgICBpbXBsIE9yZCBmb3IgJGlkIHsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0g ICAgICAgICAgICBmbiBjbXAoJnNlbGYsIG90aGVyOiAmU2VsZikgLT4gY3JhdGU6OmNtcDo6T3Jk ZXJpbmcgeworLSAgICAgICAgICAgICAgICBtYXRjaCBzZWxmLnBhcnRpYWxfY21wKG90aGVyKSB7 CistICAgICAgICAgICAgICAgICAgICBTb21lKHgpID0+IHgsCistICAgICAgICAgICAgICAgICAg ICBOb25lID0+IHVuc2FmZSB7IGNyYXRlOjpoaW50Ojp1bnJlYWNoYWJsZV91bmNoZWNrZWQoKSB9 LAorLSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLQorLSAg ICAgICAgaW1wbCBjcmF0ZTo6aGFzaDo6SGFzaCBmb3IgJGlkIHsKKy0gICAgICAgICAgICAjW2lu bGluZV0KKy0gICAgICAgICAgICBmbiBoYXNoPEg6IGNyYXRlOjpoYXNoOjpIYXNoZXI+KCZzZWxm LCBzdGF0ZTogJm11dCBIKSB7CistICAgICAgICAgICAgICAgIChzZWxmLjAgIT0gMCkuaGFzaChz dGF0ZSk7CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLQorLSAgICAgICAgaW1wbCBjcmF0 ZTo6Zm10OjpEZWJ1ZyBmb3IgJGlkIHsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAg ICAgICBmbiBmbXQoJnNlbGYsIGZtdHRlcjogJm11dCBjcmF0ZTo6Zm10OjpGb3JtYXR0ZXI8J18+ KSAtPiBSZXN1bHQ8KCksIGNyYXRlOjpmbXQ6OkVycm9yPiB7CistICAgICAgICAgICAgICAgIHdy aXRlIShmbXR0ZXIsICJ7fSh7fSkiLCBzdHJpbmdpZnkhKCRpZCksIHNlbGYuMCAhPSAwKQorLSAg ICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgfTsKKy19CistCistaW1wbF9tYXNrX3R5ISht ODogaTggfCAvLy8gOC1iaXQgd2lkZSBtYXNrLgorLSk7CistaW1wbF9tYXNrX3R5IShtMTY6IGkx NiB8IC8vLyAxNi1iaXQgd2lkZSBtYXNrLgorLSk7CistaW1wbF9tYXNrX3R5IShtMzI6IGkzMiB8 IC8vLyAzMi1iaXQgd2lkZSBtYXNrLgorLSk7CistaW1wbF9tYXNrX3R5IShtNjQ6IGk2NCB8IC8v LyA2NC1iaXQgd2lkZSBtYXNrLgorLSk7CistaW1wbF9tYXNrX3R5IShtMTI4OiBpMTI4IHwgLy8v IDEyOC1iaXQgd2lkZSBtYXNrLgorLSk7CistaW1wbF9tYXNrX3R5IShtc2l6ZTogaXNpemUgfCAv Ly8gaXNpemUtd2lkZSBtYXNrLgorLSk7CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9w YWNrZWRfc2ltZC9zcmMvc2VhbGVkLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9z cmMvc2VhbGVkLnJzCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5 L3J1c3QvcGFja2VkX3NpbWQvc3JjL3NlYWxlZC5ycworKysrIC9kZXYvbnVsbAorQEAgLTEsNDIg KzAsMCBAQAorLS8vISBTZWFsZWQgdHJhaXRzCistCistLy8vIEEgc2VhbGVkIHRyYWl0LCB0aGlz IGlzIGxvZ2ljYWxseSBwcml2YXRlIHRvIHRoZSBjcmF0ZQorLS8vLyBhbmQgd2lsbCBwcmV2ZW50 IGltcGxlbWVudGF0aW9ucyBmcm9tIG91dHNpZGUgdGhlIGNyYXRlCistcHViIHRyYWl0IFNlYWw8 VCA9ICgpPiB7fQorLQorLS8vLyBUcmFpdCBpbXBsZW1lbnRlZCBieSBhcnJheXMgdGhhdCBjYW4g YmUgU0lNRCB0eXBlcy4KKy1wdWIgdHJhaXQgU2ltZEFycmF5OiBTZWFsIHsKKy0gICAgLy8vIFRo ZSB0eXBlIG9mIHRoZSAjW3JlcHIoc2ltZCldIHR5cGUuCistICAgIHR5cGUgVHVwbGU6IENvcHkg KyBDbG9uZTsKKy0gICAgLy8vIFRoZSBlbGVtZW50IHR5cGUgb2YgdGhlIHZlY3Rvci4KKy0gICAg dHlwZSBUOworLSAgICAvLy8gVGhlIG51bWJlciBvZiBlbGVtZW50cyBpbiB0aGUgYXJyYXkuCist ICAgIGNvbnN0IE46IHVzaXplOworLSAgICAvLy8gVGhlIHR5cGU6IGBbdTMyOyBTZWxmOjpOXWAu CistICAgIHR5cGUgTlQ7CistfQorLQorLS8vLyBUaGlzIHRyYWl0cyBpcyB1c2VkIHRvIGNvbnN0 cmFpbnQgdGhlIGFyZ3VtZW50cworLS8vLyBhbmQgcmVzdWx0IHR5cGUgb2YgdGhlIHBvcnRhYmxl IHNodWZmbGVzLgorLSNbZG9jKGhpZGRlbildCistcHViIHRyYWl0IFNodWZmbGU8TGFuZXM+OiBT ZWFsPExhbmVzPiB7CistICAgIC8vIExhbmVzIGlzIGEgYFt1MzI7IE5dYCB3aGVyZSBgTmAgaXMg dGhlIG51bWJlciBvZiB2ZWN0b3IgbGFuZXMKKy0KKy0gICAgLy8vIFRoZSByZXN1bHQgdHlwZSBv ZiB0aGUgc2h1ZmZsZS4KKy0gICAgdHlwZSBPdXRwdXQ7CistfQorLQorLS8vLyBUaGlzIHRyYWl0 IGlzIGltcGxlbWVudGVkIGJ5IGFsbCBTSU1EIHZlY3RvciB0eXBlcy4KKy1wdWIgdHJhaXQgU2lt ZDogU2VhbCB7CistICAgIC8vLyBFbGVtZW50IHR5cGUgb2YgdGhlIFNJTUQgdmVjdG9yCistICAg IHR5cGUgRWxlbWVudDsKKy0gICAgLy8vIFRoZSBudW1iZXIgb2YgZWxlbWVudHMgaW4gdGhlIFNJ TUQgdmVjdG9yLgorLSAgICBjb25zdCBMQU5FUzogdXNpemU7CistICAgIC8vLyBUaGUgdHlwZTog YFt1MzI7IFNlbGY6Ok5dYC4KKy0gICAgdHlwZSBMYW5lc1R5cGU7CistfQorLQorLS8vLyBUaGlz IHRyYWl0IGlzIGltcGxlbWVudGVkIGJ5IGFsbCBtYXNrIHR5cGVzCistcHViIHRyYWl0IE1hc2s6 IFNlYWwgeworLSAgICBmbiB0ZXN0KCZzZWxmKSAtPiBib29sOworLX0KK2RpZmYgLS1naXQgYS90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy90ZXN0aW5nLnJzIGIvdGhpcmRfcGFydHkv cnVzdC9wYWNrZWRfc2ltZC9zcmMvdGVzdGluZy5ycworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0 CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy90ZXN0aW5nLnJzCisrKysg L2Rldi9udWxsCitAQCAtMSw4ICswLDAgQEAKKy0vLyEgVGVzdGluZyBtYWNyb3MgYW5kIG90aGVy IHV0aWxpdGllcy4KKy0KKy0jW21hY3JvX3VzZV0KKy1tb2QgbWFjcm9zOworLQorLSNbY2ZnKHRl c3QpXQorLSNbbWFjcm9fdXNlXQorLXB1YihjcmF0ZSkgbW9kIHV0aWxzOworZGlmZiAtLWdpdCBh L3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL3Rlc3RpbmcvbWFjcm9zLnJzIGIvdGhp cmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvdGVzdGluZy9tYWNyb3MucnMKK2RlbGV0ZWQg ZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMv dGVzdGluZy9tYWNyb3MucnMKKysrKyAvZGV2L251bGwKK0BAIC0xLDQ0ICswLDAgQEAKKy0vLyEg VGVzdGluZyBtYWNyb3MKKy0KKy1tYWNyb19ydWxlcyEgdGVzdF9pZiB7CistICAgICgkY2ZnX3R0 OnR0OiAkaXQ6aXRlbSkgPT4geworLSAgICAgICAgI1tjZmcoYW55KAorLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRlc3QgZXZl cnl0aGluZyBpZjoKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAvLworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIC8vICogdGVzdHMgYXJlIGVuYWJsZWQsCistICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8g KiBubyBmZWF0dXJlcyBhYm91dCBleGNsdXNpdmVseSB0ZXN0aW5nCistICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICBzcGVjaWZp YyB2ZWN0b3IgY2xhc3NlcyBhcmUgZW5hYmxlZAorLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsbCh0ZXN0LCBub3QoYW55KAorLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB0ZXN0X3YxNiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF92MzIsCistICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfdjY0LAorLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB0ZXN0X3YxMjgsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfdjI1NiwKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF92NTEyLAor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB0ZXN0X25vbmUsICAvLyBkaXNhYmxlcyBhbGwgdGVzdHMKKy0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApKSksCistICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Ly8gVGVzdCBpZjoKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAvLworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIC8vICogdGVzdHMgYXJlIGVuYWJsZWQKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAq IGEgcGFydGljdWxhciBjZmcgdG9rZW4gdHJlZSByZXR1cm5zIHRydWUKKy0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGwodGVzdCwg JGNmZ190dCksCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICApKV0KKy0gICAgICAgICRpdAorLSAgICB9OworLX0KKy0KKy0jW2NmZyh0ZXN0 KV0KKy0jW2FsbG93KHVudXNlZCldCistbWFjcm9fcnVsZXMhIHJlZl8geworLSAgICAoJGFueXRo aW5nOnR0KSA9PiB7CistICAgICAgICAmJGFueXRoaW5nCistICAgIH07CistfQorLQorLSNbY2Zn KHRlc3QpXQorLSNbYWxsb3codW51c2VkKV0KKy1tYWNyb19ydWxlcyEgcmVmX211dF8geworLSAg ICAoJGFueXRoaW5nOnR0KSA9PiB7CistICAgICAgICAmbXV0ICRhbnl0aGluZworLSAgICB9Owor LX0KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy90ZXN0aW5n L3V0aWxzLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvdGVzdGluZy91dGls cy5ycworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3Bh Y2tlZF9zaW1kL3NyYy90ZXN0aW5nL3V0aWxzLnJzCisrKysgL2Rldi9udWxsCitAQCAtMSwxMzAg KzAsMCBAQAorLS8vISBUZXN0aW5nIHV0aWxpdGllcworLQorLSMhW2FsbG93KGRlYWRfY29kZSld CistLy8gRklYTUU6IE9yIGRvbid0LiBCdXQgaXQncyB0cnVlIHRoaXMgaXMgYSBwcm9ibGVtYXRp YyBjb21wYXJpc29uLgorLSMhW2FsbG93KGNsaXBweTo6bmVnX2NtcF9vcF9vbl9wYXJ0aWFsX29y ZCldCistCistdXNlIGNyYXRlOjp7Y21wOjpQYXJ0aWFsT3JkLCBmbXQ6OkRlYnVnLCBMZXhpY29n cmFwaGljYWxseU9yZGVyZWR9OworLQorLS8vLyBUZXN0cyBQYXJ0aWFsT3JkIGZvciBgYWAgYW5k IGBiYCB3aGVyZSBgYSA8IGJgIGlzIHRydWUuCistcHViIGZuIHRlc3RfbHQ8VD4oYTogTGV4aWNv Z3JhcGhpY2FsbHlPcmRlcmVkPFQ+LCBiOiBMZXhpY29ncmFwaGljYWxseU9yZGVyZWQ8VD4pCist d2hlcmUKKy0gICAgTGV4aWNvZ3JhcGhpY2FsbHlPcmRlcmVkPFQ+OiBEZWJ1ZyArIFBhcnRpYWxP cmQsCisteworLSAgICBhc3NlcnQhKGEgPCBiLCAiezo/fSwgezo/fSIsIGEsIGIpOworLSAgICBh c3NlcnQhKGIgPiBhLCAiezo/fSwgezo/fSIsIGEsIGIpOworLQorLSAgICBhc3NlcnQhKCEoYSA9 PSBiKSwgIns6P30sIHs6P30iLCBhLCBiKTsKKy0gICAgYXNzZXJ0X25lIShhLCBiLCAiezo/fSwg ezo/fSIsIGEsIGIpOworLQorLSAgICBhc3NlcnQhKGEgPD0gYiwgIns6P30sIHs6P30iLCBhLCBi KTsKKy0gICAgYXNzZXJ0IShiID49IGEsICJ7Oj99LCB7Oj99IiwgYSwgYik7CistCistICAgIC8v IFRoZSBlbGVnYW5jZSBvZiB0aGUgbWF0aGVtYXRpY2FsIGV4cHJlc3Npb24gb2YgaXJyZWZsZXhp dml0eSBpcyBtb3JlCistICAgIC8vIHRoYW4gY2xpcHB5IGNhbiBoYW5kbGUuCistICAgICNbYWxs b3coY2xpcHB5OjplcV9vcCldCistICAgIHsKKy0gICAgICAgIC8vIElycmVmbGV4aXZpdHkKKy0g ICAgICAgIGFzc2VydCEoIShhIDwgYSksICJ7Oj99LCB7Oj99IiwgYSwgYik7CistICAgICAgICBh c3NlcnQhKCEoYiA8IGIpLCAiezo/fSwgezo/fSIsIGEsIGIpOworLSAgICAgICAgYXNzZXJ0ISgh KGEgPiBhKSwgIns6P30sIHs6P30iLCBhLCBiKTsKKy0gICAgICAgIGFzc2VydCEoIShiID4gYiks ICJ7Oj99LCB7Oj99IiwgYSwgYik7CistCistICAgICAgICBhc3NlcnQhKGEgPD0gYSwgIns6P30s IHs6P30iLCBhLCBiKTsKKy0gICAgICAgIGFzc2VydCEoYiA8PSBiLCAiezo/fSwgezo/fSIsIGEs IGIpOworLSAgICB9CistfQorLQorLS8vLyBUZXN0cyBQYXJ0aWFsT3JkIGZvciBgYWAgYW5kIGBi YCB3aGVyZSBgYSA8PSBiYCBpcyB0cnVlLgorLXB1YiBmbiB0ZXN0X2xlPFQ+KGE6IExleGljb2dy YXBoaWNhbGx5T3JkZXJlZDxUPiwgYjogTGV4aWNvZ3JhcGhpY2FsbHlPcmRlcmVkPFQ+KQorLXdo ZXJlCistICAgIExleGljb2dyYXBoaWNhbGx5T3JkZXJlZDxUPjogRGVidWcgKyBQYXJ0aWFsT3Jk LAorLXsKKy0gICAgYXNzZXJ0IShhIDw9IGIsICJ7Oj99LCB7Oj99IiwgYSwgYik7CistICAgIGFz c2VydCEoYiA+PSBhLCAiezo/fSwgezo/fSIsIGEsIGIpOworLQorLSAgICBhc3NlcnQhKGEgPD0g YiwgIns6P30sIHs6P30iLCBhLCBiKTsKKy0gICAgYXNzZXJ0IShiID49IGEsICJ7Oj99LCB7Oj99 IiwgYSwgYik7CistCistICAgIGlmIGEgPT0gYiB7CistICAgICAgICBhc3NlcnQhKCEoYSA8IGIp LCAiezo/fSwgezo/fSIsIGEsIGIpOworLSAgICAgICAgYXNzZXJ0ISghKGIgPiBhKSwgIns6P30s IHs6P30iLCBhLCBiKTsKKy0KKy0gICAgICAgIGFzc2VydCEoIShhICE9IGIpLCAiezo/fSwgezo/ fSIsIGEsIGIpOworLSAgICB9IGVsc2UgeworLSAgICAgICAgYXNzZXJ0X25lIShhLCBiLCAiezo/ fSwgezo/fSIsIGEsIGIpOworLSAgICAgICAgdGVzdF9sdChhLCBiKTsKKy0gICAgfQorLX0KKy0K Ky0vLy8gVGVzdCBQYXJ0aWFsT3JkOjpwYXJ0aWFsX2NtcCBmb3IgYGFgIGFuZCBgYmAgcmV0dXJu aW5nIGBPcmRlcmluZ2AKKy1wdWIgZm4gdGVzdF9jbXA8VD4oCistICAgIGE6IExleGljb2dyYXBo aWNhbGx5T3JkZXJlZDxUPiwKKy0gICAgYjogTGV4aWNvZ3JhcGhpY2FsbHlPcmRlcmVkPFQ+LAor LSAgICBvOiBPcHRpb248Y3JhdGU6OmNtcDo6T3JkZXJpbmc+LAorLSkgd2hlcmUKKy0gICAgTGV4 aWNvZ3JhcGhpY2FsbHlPcmRlcmVkPFQ+OiBQYXJ0aWFsT3JkICsgRGVidWcsCistICAgIFQ6IERl YnVnICsgY3JhdGU6OnNlYWxlZDo6U2ltZCArIENvcHkgKyBDbG9uZSwKKy0gICAgPFQgYXMgY3Jh dGU6OnNlYWxlZDo6U2ltZD46OkVsZW1lbnQ6IERlZmF1bHQgKyBDb3B5ICsgQ2xvbmUgKyBQYXJ0 aWFsT3JkLAorLXsKKy0gICAgYXNzZXJ0IShUOjpMQU5FUyA8PSA2NCwgImFycmF5IGxlbmd0aCBp biB0aGVzZSB0d28gYXJyYXlzIG5lZWRzIHVwZGF0aW5nIik7CistICAgIGxldCBtdXQgYXJyX2E6 IFtUOjpFbGVtZW50OyA2NF0gPSBbRGVmYXVsdDo6ZGVmYXVsdCgpOyA2NF07CistICAgIGxldCBt dXQgYXJyX2I6IFtUOjpFbGVtZW50OyA2NF0gPSBbRGVmYXVsdDo6ZGVmYXVsdCgpOyA2NF07Cist CistICAgIHVuc2FmZSB7IGNyYXRlOjpwdHI6OndyaXRlX3VuYWxpZ25lZChhcnJfYS5hc19tdXRf cHRyKCkgYXMgKm11dCBMZXhpY29ncmFwaGljYWxseU9yZGVyZWQ8VD4sIGEpIH0KKy0gICAgdW5z YWZlIHsgY3JhdGU6OnB0cjo6d3JpdGVfdW5hbGlnbmVkKGFycl9iLmFzX211dF9wdHIoKSBhcyAq bXV0IExleGljb2dyYXBoaWNhbGx5T3JkZXJlZDxUPiwgYikgfQorLSAgICBsZXQgZXhwZWN0ZWQg PSBhcnJfYVswLi5UOjpMQU5FU10ucGFydGlhbF9jbXAoJmFycl9iWzAuLlQ6OkxBTkVTXSk7Cist ICAgIGxldCByZXN1bHQgPSBhLnBhcnRpYWxfY21wKCZiKTsKKy0gICAgYXNzZXJ0X2VxIShleHBl Y3RlZCwgcmVzdWx0LCAiezo/fSwgezo/fSIsIGEsIGIpOworLSAgICBhc3NlcnRfZXEhKG8sIHJl c3VsdCwgIns6P30sIHs6P30iLCBhLCBiKTsKKy0gICAgbWF0Y2ggbyB7CistICAgICAgICBTb21l KGNyYXRlOjpjbXA6Ok9yZGVyaW5nOjpMZXNzKSA9PiB7CistICAgICAgICAgICAgdGVzdF9sdChh LCBiKTsKKy0gICAgICAgICAgICB0ZXN0X2xlKGEsIGIpOworLSAgICAgICAgfQorLSAgICAgICAg U29tZShjcmF0ZTo6Y21wOjpPcmRlcmluZzo6R3JlYXRlcikgPT4geworLSAgICAgICAgICAgIHRl c3RfbHQoYiwgYSk7CistICAgICAgICAgICAgdGVzdF9sZShiLCBhKTsKKy0gICAgICAgIH0KKy0g ICAgICAgIFNvbWUoY3JhdGU6OmNtcDo6T3JkZXJpbmc6OkVxdWFsKSA9PiB7CistICAgICAgICAg ICAgYXNzZXJ0IShhID09IGIsICJ7Oj99LCB7Oj99IiwgYSwgYik7CistICAgICAgICAgICAgYXNz ZXJ0ISghKGEgIT0gYiksICJ7Oj99LCB7Oj99IiwgYSwgYik7CistICAgICAgICAgICAgYXNzZXJ0 ISghKGEgPCBiKSwgIns6P30sIHs6P30iLCBhLCBiKTsKKy0gICAgICAgICAgICBhc3NlcnQhKCEo YiA8IGEpLCAiezo/fSwgezo/fSIsIGEsIGIpOworLSAgICAgICAgICAgIGFzc2VydCEoIShhID4g YiksICJ7Oj99LCB7Oj99IiwgYSwgYik7CistICAgICAgICAgICAgYXNzZXJ0ISghKGIgPiBhKSwg Ins6P30sIHs6P30iLCBhLCBiKTsKKy0KKy0gICAgICAgICAgICB0ZXN0X2xlKGEsIGIpOworLSAg ICAgICAgICAgIHRlc3RfbGUoYiwgYSk7CistICAgICAgICB9CistICAgICAgICBOb25lID0+IHsK Ky0gICAgICAgICAgICBhc3NlcnQhKCEoYSA9PSBiKSwgIns6P30sIHs6P30iLCBhLCBiKTsKKy0g ICAgICAgICAgICBhc3NlcnQhKCEoYSAhPSBiKSwgIns6P30sIHs6P30iLCBhLCBiKTsKKy0gICAg ICAgICAgICBhc3NlcnQhKCEoYSA8IGIpLCAiezo/fSwgezo/fSIsIGEsIGIpOworLSAgICAgICAg ICAgIGFzc2VydCEoIShhID4gYiksICJ7Oj99LCB7Oj99IiwgYSwgYik7CistICAgICAgICAgICAg YXNzZXJ0ISghKGIgPCBhKSwgIns6P30sIHs6P30iLCBhLCBiKTsKKy0gICAgICAgICAgICBhc3Nl cnQhKCEoYiA+IGEpLCAiezo/fSwgezo/fSIsIGEsIGIpOworLSAgICAgICAgICAgIGFzc2VydCEo IShhIDw9IGIpLCAiezo/fSwgezo/fSIsIGEsIGIpOworLSAgICAgICAgICAgIGFzc2VydCEoIShi IDw9IGEpLCAiezo/fSwgezo/fSIsIGEsIGIpOworLSAgICAgICAgICAgIGFzc2VydCEoIShhID49 IGIpLCAiezo/fSwgezo/fSIsIGEsIGIpOworLSAgICAgICAgICAgIGFzc2VydCEoIShiID49IGEp LCAiezo/fSwgezo/fSIsIGEsIGIpOworLSAgICAgICAgfQorLSAgICB9CistfQorLQorLS8vIFJl dHVybnMgYSB0dXBsZSBjb250YWluaW5nIHR3byBkaXN0aW5jdCBwb2ludGVyIHZhbHVlcyBvZiB0 aGUgc2FtZSB0eXBlIGFzCistLy8gdGhlIGVsZW1lbnQgdHlwZSBvZiB0aGUgU2ltZCB2ZWN0b3Ig YCRpZGAuCistI1thbGxvdyh1bnVzZWQpXQorLW1hY3JvX3J1bGVzISBwdHJfdmFscyB7CistICAg ICgkaWQ6dHkpID0+IHsKKy0gICAgICAgIC8vIGV4cGFuZHMgdG8gYW4gZXhwcmVzc2lvbgorLSAg ICAgICAgI1thbGxvdyh1bnVzZWRfdW5zYWZlKV0KKy0gICAgICAgIHVuc2FmZSB7CistICAgICAg ICAgICAgLy8gYWxsIGJpdHMgY2xlYXJlZAorLSAgICAgICAgICAgIGxldCBjbGVhcjogPCRpZCBh cyBzZWFsZWQ6OlNpbWQ+OjpFbGVtZW50ID0gY3JhdGU6Om1lbTo6emVyb2VkKCk7CistICAgICAg ICAgICAgLy8gYWxsIGJpdHMgc2V0CistICAgICAgICAgICAgbGV0IHNldDogPCRpZCBhcyBzZWFs ZWQ6OlNpbWQ+OjpFbGVtZW50ID0gY3JhdGU6Om1lbTo6dHJhbnNtdXRlKC0xX2lzaXplKTsKKy0g ICAgICAgICAgICAoY2xlYXIsIHNldCkKKy0gICAgICAgIH0KKy0gICAgfTsKKy19CitkaWZmIC0t Z2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvdjEyOC5ycyBiL3RoaXJkX3Bh cnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL3YxMjgucnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0 NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvdjEyOC5ycworKysrIC9k ZXYvbnVsbAorQEAgLTEsODAgKzAsMCBAQAorLS8vISAxMjgtYml0IHdpZGUgdmVjdG9yIHR5cGVz CistI1tydXN0Zm10Ojpza2lwXQorLQorLXVzZSBjcmF0ZTo6KjsKKy0KKy1pbXBsX2khKFtpODsg MTZdOiBpOHgxNiwgbTh4MTYgfCBpOCwgdTE2IHwgdGVzdF92MTI4IHwKKy0gICAgICAgIHgwLCB4 MSwgeDIsIHgzLCB4NCwgeDUsIHg2LCB4NywgeDgsIHg5LCB4MTAsIHgxMSwgeDEyLCB4MTMsIHgx NCwgeDE1IHwKKy0gICAgICAgIEZyb206IHwKKy0gICAgICAgIC8vLyBBIDEyOC1iaXQgdmVjdG9y IHdpdGggMTYgYGk4YCBsYW5lcy4KKy0pOworLWltcGxfdSEoW3U4OyAxNl06IHU4eDE2LCBtOHgx NiB8IHU4LCB1MTYgfCB0ZXN0X3YxMjggfAorLSAgICAgICAgeDAsIHgxLCB4MiwgeDMsIHg0LCB4 NSwgeDYsIHg3LCB4OCwgeDksIHgxMCwgeDExLCB4MTIsIHgxMywgeDE0LCB4MTUgfAorLSAgICAg ICAgRnJvbTogfAorLSAgICAgICAgLy8vIEEgMTI4LWJpdCB2ZWN0b3Igd2l0aCAxNiBgdThgIGxh bmVzLgorLSk7CistaW1wbF9tIShbbTg7IDE2XTogbTh4MTYgfCBpOCwgdTE2IHwgdGVzdF92MTI4 IHwKKy0gICAgICAgIHgwLCB4MSwgeDIsIHgzLCB4NCwgeDUsIHg2LCB4NywgeDgsIHg5LCB4MTAs IHgxMSwgeDEyLCB4MTMsIHgxNCwgeDE1IHwKKy0gICAgICAgIEZyb206IG0xNngxNiB8CistICAg ICAgICAvLy8gQSAxMjgtYml0IHZlY3RvciBtYXNrIHdpdGggMTYgYG04YCBsYW5lcy4KKy0pOwor LQorLWltcGxfaSEoW2kxNjsgOF06IGkxNng4LCBtMTZ4OCB8IGkxNiwgdTggfCB0ZXN0X3YxMjgg fCB4MCwgeDEsIHgyLCB4MywgeDQsIHg1LCB4NiwgeDcgfAorLSAgICAgICAgRnJvbTogaTh4OCwg dTh4OCB8CistICAgICAgICAvLy8gQSAxMjgtYml0IHZlY3RvciB3aXRoIDggYGkxNmAgbGFuZXMu CistKTsKKy1pbXBsX3UhKFt1MTY7IDhdOiB1MTZ4OCwgbTE2eDggfCB1MTYsIHU4IHwgdGVzdF92 MTI4IHwgeDAsIHgxLCB4MiwgeDMsIHg0LCB4NSwgeDYsIHg3IHwKKy0gICAgICAgIEZyb206IHU4 eDggfAorLSAgICAgICAgLy8vIEEgMTI4LWJpdCB2ZWN0b3Igd2l0aCA4IGB1MTZgIGxhbmVzLgor LSk7CistaW1wbF9tIShbbTE2OyA4XTogbTE2eDggfCBpMTYsIHU4IHwgdGVzdF92MTI4IHwgeDAs IHgxLCB4MiwgeDMsIHg0LCB4NSwgeDYsIHg3IHwKKy0gICAgICAgIEZyb206IG04eDgsIG0zMng4 IHwKKy0gICAgICAgIC8vLyBBIDEyOC1iaXQgdmVjdG9yIG1hc2sgd2l0aCA4IGBtMTZgIGxhbmVz LgorLSk7CistCistaW1wbF9pIShbaTMyOyA0XTogaTMyeDQsIG0zMng0IHwgaTMyLCB1OCB8IHRl c3RfdjEyOCB8IHgwLCB4MSwgeDIsIHgzIHwKKy0gICAgICAgIEZyb206IGk4eDQsIHU4eDQsIGkx Nng0LCB1MTZ4NCAgfAorLSAgICAgICAgLy8vIEEgMTI4LWJpdCB2ZWN0b3Igd2l0aCA0IGBpMzJg IGxhbmVzLgorLSk7CistaW1wbF91IShbdTMyOyA0XTogdTMyeDQsIG0zMng0IHwgdTMyLCB1OCB8 IHRlc3RfdjEyOCB8IHgwLCB4MSwgeDIsIHgzIHwKKy0gICAgICAgIEZyb206IHU4eDQsIHUxNng0 IHwKKy0gICAgICAgIC8vLyBBIDEyOC1iaXQgdmVjdG9yIHdpdGggNCBgdTMyYCBsYW5lcy4KKy0p OworLWltcGxfZiEoW2YzMjsgNF06IGYzMng0LCBtMzJ4NCB8IGYzMiB8IHRlc3RfdjEyOCB8IHgw LCB4MSwgeDIsIHgzIHwKKy0gICAgICAgIEZyb206IGk4eDQsIHU4eDQsIGkxNng0LCB1MTZ4NCB8 CistICAgICAgICAvLy8gQSAxMjgtYml0IHZlY3RvciB3aXRoIDQgYGYzMmAgbGFuZXMuCistKTsK Ky1pbXBsX20hKFttMzI7IDRdOiBtMzJ4NCB8IGkzMiwgdTggfCB0ZXN0X3YxMjggfCB4MCwgeDEs IHgyLCB4MyB8CistICAgICAgICBGcm9tOiBtOHg0LCBtMTZ4NCwgbTY0eDQgfAorLSAgICAgICAg Ly8vIEEgMTI4LWJpdCB2ZWN0b3IgbWFzayB3aXRoIDQgYG0zMmAgbGFuZXMuCistKTsKKy0KKy1p bXBsX2khKFtpNjQ7IDJdOiBpNjR4MiwgbTY0eDIgfCBpNjQsIHU4IHwgdGVzdF92MTI4IHwgeDAs IHgxIHwKKy0gICAgICAgIEZyb206IGk4eDIsIHU4eDIsIGkxNngyLCB1MTZ4MiwgaTMyeDIsIHUz MngyIHwKKy0gICAgICAgIC8vLyBBIDEyOC1iaXQgdmVjdG9yIHdpdGggMiBgaTY0YCBsYW5lcy4K Ky0pOworLWltcGxfdSEoW3U2NDsgMl06IHU2NHgyLCBtNjR4MiB8IHU2NCwgdTggfCB0ZXN0X3Yx MjggfCB4MCwgeDEgfAorLSAgICAgICAgRnJvbTogdTh4MiwgdTE2eDIsIHUzMngyIHwKKy0gICAg ICAgIC8vLyBBIDEyOC1iaXQgdmVjdG9yIHdpdGggMiBgdTY0YCBsYW5lcy4KKy0pOworLWltcGxf ZiEoW2Y2NDsgMl06IGY2NHgyLCBtNjR4MiB8IGY2NCB8IHRlc3RfdjEyOCB8IHgwLCB4MSB8Cist ICAgICAgICBGcm9tOiBpOHgyLCB1OHgyLCBpMTZ4MiwgdTE2eDIsIGkzMngyLCB1MzJ4MiwgZjMy eDIgfAorLSAgICAgICAgLy8vIEEgMTI4LWJpdCB2ZWN0b3Igd2l0aCAyIGBmNjRgIGxhbmVzLgor LSk7CistaW1wbF9tIShbbTY0OyAyXTogbTY0eDIgfCBpNjQsIHU4IHwgdGVzdF92MTI4IHwgeDAs IHgxIHwKKy0gICAgICAgIEZyb206IG04eDIsIG0xNngyLCBtMzJ4MiwgbTEyOHgyIHwKKy0gICAg ICAgIC8vLyBBIDEyOC1iaXQgdmVjdG9yIG1hc2sgd2l0aCAyIGBtNjRgIGxhbmVzLgorLSk7Cist CistaW1wbF9pIShbaTEyODsgMV06IGkxMjh4MSwgbTEyOHgxIHwgaTEyOCwgdTggfCB0ZXN0X3Yx MjggfCB4MCB8CistICAgICAgICBGcm9tOiAvKmk4eDEsIHU4eDEsIGkxNngxLCB1MTZ4MSwgaTMy eDEsIHUzMngxLCBpNjR4MSwgdTY0eDEgKi8gfCAvLyBGSVhNRTogdW5hcnkgc21hbGwgdmVjdG9y IHR5cGVzCistICAgICAgICAvLy8gQSAxMjgtYml0IHZlY3RvciB3aXRoIDEgYGkxMjhgIGxhbmUu CistKTsKKy1pbXBsX3UhKFt1MTI4OyAxXTogdTEyOHgxLCBtMTI4eDEgfCB1MTI4LCB1OCB8IHRl c3RfdjEyOCB8IHgwIHwKKy0gICAgICAgIEZyb206IC8qdTh4MSwgdTE2eDEsIHUzMngxLCB1NjR4 MSAqLyB8IC8vIEZJWE1FOiB1bmFyeSBzbWFsbCB2ZWN0b3IgdHlwZXMKKy0gICAgICAgIC8vLyBB IDEyOC1iaXQgdmVjdG9yIHdpdGggMSBgdTEyOGAgbGFuZS4KKy0pOworLWltcGxfbSEoW20xMjg7 IDFdOiBtMTI4eDEgfCBpMTI4LCB1OCB8IHRlc3RfdjEyOCB8IHgwIHwKKy0gICAgICAgIEZyb206 IC8qbTh4MSwgbTE2eDEsIG0zMngxLCBtNjR4MSAqLyB8IC8vIEZJWE1FOiB1bmFyeSBzbWFsbCB2 ZWN0b3IgdHlwZXMKKy0gICAgICAgIC8vLyBBIDEyOC1iaXQgdmVjdG9yIG1hc2sgd2l0aCAxIGBt MTI4YCBsYW5lLgorLSk7CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2lt ZC9zcmMvdjE2LnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvdjE2LnJzCitk ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3Np bWQvc3JjL3YxNi5ycworKysrIC9kZXYvbnVsbAorQEAgLTEsMTYgKzAsMCBAQAorLS8vISAxNi1i aXQgd2lkZSB2ZWN0b3IgdHlwZXMKKy0KKy11c2UgY3JhdGU6Oio7CistCistaW1wbF9pIShbaTg7 IDJdOiBpOHgyLCBtOHgyIHwgaTgsIHU4IHwgdGVzdF92MTYgfCB4MCwgeDEgfAorLSAgICAgICAg RnJvbTogfAorLSAgICAgICAgLy8vIEEgMTYtYml0IHZlY3RvciB3aXRoIDIgYGk4YCBsYW5lcy4K Ky0pOworLWltcGxfdSEoW3U4OyAyXTogdTh4MiwgbTh4MiB8IHU4LCB1OCB8IHRlc3RfdjE2IHwg eDAsIHgxIHwKKy0gICAgICAgIEZyb206IHwKKy0gICAgICAgIC8vLyBBIDE2LWJpdCB2ZWN0b3Ig d2l0aCAyIGB1OGAgbGFuZXMuCistKTsKKy1pbXBsX20hKFttODsgMl06IG04eDIgfCBpOCwgdTgg fCB0ZXN0X3YxNiB8IHgwLCB4MSB8CistICAgICAgICBGcm9tOiBtMTZ4MiwgbTMyeDIsIG02NHgy LCBtMTI4eDIgfAorLSAgICAgICAgLy8vIEEgMTYtYml0IHZlY3RvciBtYXNrIHdpdGggMiBgbThg IGxhbmVzLgorLSk7CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9z cmMvdjI1Ni5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL3YyNTYucnMKK2Rl bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2lt ZC9zcmMvdjI1Ni5ycworKysrIC9kZXYvbnVsbAorQEAgLTEsODYgKzAsMCBAQAorLS8vISAyNTYt Yml0IHdpZGUgdmVjdG9yIHR5cGVzCistI1tydXN0Zm10Ojpza2lwXQorLQorLXVzZSBjcmF0ZTo6 KjsKKy0KKy1pbXBsX2khKFtpODsgMzJdOiBpOHgzMiwgbTh4MzIgfCBpOCwgdTMyIHwgdGVzdF92 MjU2IHwKKy0gICAgICAgIHgwLCB4MSwgeDIsIHgzLCB4NCwgeDUsIHg2LCB4NywgeDgsIHg5LCB4 MTAsIHgxMSwgeDEyLCB4MTMsIHgxNCwgeDE1LAorLSAgICAgICAgeDE2LCB4MTcsIHgxOCwgeDE5 LCB4MjAsIHgyMSwgeDIyLCB4MjMsIHgyNCwgeDI1LCB4MjYsIHgyNywgeDI4LCB4MjksIHgzMCwg eDMxIHwKKy0gICAgICAgIEZyb206IHwKKy0gICAgICAgIC8vLyBBIDI1Ni1iaXQgdmVjdG9yIHdp dGggMzIgYGk4YCBsYW5lcy4KKy0pOworLWltcGxfdSEoW3U4OyAzMl06IHU4eDMyLCBtOHgzMiB8 IHU4LCB1MzIgfCB0ZXN0X3YyNTYgfAorLSAgICAgICAgeDAsIHgxLCB4MiwgeDMsIHg0LCB4NSwg eDYsIHg3LCB4OCwgeDksIHgxMCwgeDExLCB4MTIsIHgxMywgeDE0LCB4MTUsCistICAgICAgICB4 MTYsIHgxNywgeDE4LCB4MTksIHgyMCwgeDIxLCB4MjIsIHgyMywgeDI0LCB4MjUsIHgyNiwgeDI3 LCB4MjgsIHgyOSwgeDMwLCB4MzEgfAorLSAgICAgICAgRnJvbTogfAorLSAgICAgICAgLy8vIEEg MjU2LWJpdCB2ZWN0b3Igd2l0aCAzMiBgdThgIGxhbmVzLgorLSk7CistaW1wbF9tIShbbTg7IDMy XTogbTh4MzIgfCBpOCwgdTMyIHwgdGVzdF92MjU2IHwKKy0gICAgICAgIHgwLCB4MSwgeDIsIHgz LCB4NCwgeDUsIHg2LCB4NywgeDgsIHg5LCB4MTAsIHgxMSwgeDEyLCB4MTMsIHgxNCwgeDE1LAor LSAgICAgICAgeDE2LCB4MTcsIHgxOCwgeDE5LCB4MjAsIHgyMSwgeDIyLCB4MjMsIHgyNCwgeDI1 LCB4MjYsIHgyNywgeDI4LCB4MjksIHgzMCwgeDMxIHwKKy0gICAgICAgIEZyb206ICB8CistICAg ICAgICAvLy8gQSAyNTYtYml0IHZlY3RvciBtYXNrIHdpdGggMzIgYG04YCBsYW5lcy4KKy0pOwor LQorLWltcGxfaSEoW2kxNjsgMTZdOiBpMTZ4MTYsIG0xNngxNiB8IGkxNiwgdTE2IHwgdGVzdF92 MjU2IHwKKy0gICAgICAgIHgwLCB4MSwgeDIsIHgzLCB4NCwgeDUsIHg2LCB4NywgeDgsIHg5LCB4 MTAsIHgxMSwgeDEyLCB4MTMsIHgxNCwgeDE1IHwKKy0gICAgICAgIEZyb206IGk4eDE2LCB1OHgx NiB8CistICAgICAgICAvLy8gQSAyNTYtYml0IHZlY3RvciB3aXRoIDE2IGBpMTZgIGxhbmVzLgor LSk7CistaW1wbF91IShbdTE2OyAxNl06IHUxNngxNiwgbTE2eDE2IHwgdTE2LCB1MTYgfCB0ZXN0 X3YyNTYgfAorLSAgICAgICAgeDAsIHgxLCB4MiwgeDMsIHg0LCB4NSwgeDYsIHg3LCB4OCwgeDks IHgxMCwgeDExLCB4MTIsIHgxMywgeDE0LCB4MTUgfAorLSAgICAgICAgRnJvbTogdTh4MTYgfAor LSAgICAgICAgLy8vIEEgMjU2LWJpdCB2ZWN0b3Igd2l0aCAxNiBgdTE2YCBsYW5lcy4KKy0pOwor LWltcGxfbSEoW20xNjsgMTZdOiBtMTZ4MTYgfCBpMTYsIHUxNiB8IHRlc3RfdjI1NiB8CistICAg ICAgICB4MCwgeDEsIHgyLCB4MywgeDQsIHg1LCB4NiwgeDcsIHg4LCB4OSwgeDEwLCB4MTEsIHgx MiwgeDEzLCB4MTQsIHgxNSB8CistICAgICAgICBGcm9tOiBtOHgxNiB8CistICAgICAgICAvLy8g QSAyNTYtYml0IHZlY3RvciBtYXNrIHdpdGggMTYgYG0xNmAgbGFuZXMuCistKTsKKy0KKy1pbXBs X2khKFtpMzI7IDhdOiBpMzJ4OCwgbTMyeDggfCBpMzIsIHU4IHwgdGVzdF92MjU2IHwgeDAsIHgx LCB4MiwgeDMsIHg0LCB4NSwgeDYsIHg3ICB8CistICAgICAgICBGcm9tOiBpOHg4LCB1OHg4LCBp MTZ4OCwgdTE2eDggfAorLSAgICAgICAgLy8vIEEgMjU2LWJpdCB2ZWN0b3Igd2l0aCA4IGBpMzJg IGxhbmVzLgorLSk7CistaW1wbF91IShbdTMyOyA4XTogdTMyeDgsIG0zMng4IHwgdTMyLCB1OCB8 IHRlc3RfdjI1NiB8IHgwLCB4MSwgeDIsIHgzLCB4NCwgeDUsIHg2LCB4NyB8CistICAgICAgICBG cm9tOiB1OHg4LCB1MTZ4OCB8CistICAgICAgICAvLy8gQSAyNTYtYml0IHZlY3RvciB3aXRoIDgg YHUzMmAgbGFuZXMuCistKTsKKy1pbXBsX2YhKFtmMzI7IDhdOiBmMzJ4OCwgbTMyeDggfCBmMzIg fCB0ZXN0X3YyNTYgfCB4MCwgeDEsIHgyLCB4MywgeDQsIHg1LCB4NiwgeDcgfAorLSAgICAgICAg RnJvbTogaTh4OCwgdTh4OCwgaTE2eDgsIHUxNng4IHwKKy0gICAgICAgIC8vLyBBIDI1Ni1iaXQg dmVjdG9yIHdpdGggOCBgZjMyYCBsYW5lcy4KKy0pOworLWltcGxfbSEoW20zMjsgOF06IG0zMng4 IHwgaTMyLCB1OCB8IHRlc3RfdjI1NiB8IHgwLCB4MSwgeDIsIHgzLCB4NCwgeDUsIHg2LCB4NyB8 CistICAgICAgICBGcm9tOiBtOHg4LCBtMTZ4OCB8CistICAgICAgICAvLy8gQSAyNTYtYml0IHZl Y3RvciBtYXNrIHdpdGggOCBgbTMyYCBsYW5lcy4KKy0pOworLQorLWltcGxfaSEoW2k2NDsgNF06 IGk2NHg0LCBtNjR4NCB8IGk2NCwgdTggfCB0ZXN0X3YyNTYgfCB4MCwgeDEsIHgyLCB4MyB8Cist ICAgICAgICBGcm9tOiBpOHg0LCB1OHg0LCBpMTZ4NCwgdTE2eDQsIGkzMng0LCB1MzJ4NCB8Cist ICAgICAgICAvLy8gQSAyNTYtYml0IHZlY3RvciB3aXRoIDQgYGk2NGAgbGFuZXMuCistKTsKKy1p bXBsX3UhKFt1NjQ7IDRdOiB1NjR4NCwgbTY0eDQgfCB1NjQsIHU4IHwgdGVzdF92MjU2IHwgeDAs IHgxLCB4MiwgeDMgfAorLSAgICAgICAgRnJvbTogdTh4NCwgdTE2eDQsIHUzMng0IHwKKy0gICAg ICAgIC8vLyBBIDI1Ni1iaXQgdmVjdG9yIHdpdGggNCBgdTY0YCBsYW5lcy4KKy0pOworLWltcGxf ZiEoW2Y2NDsgNF06IGY2NHg0LCBtNjR4NCB8IGY2NCB8IHRlc3RfdjI1NiB8IHgwLCB4MSwgeDIs IHgzIHwKKy0gICAgICAgIEZyb206IGk4eDQsIHU4eDQsIGkxNng0LCB1MTZ4NCwgaTMyeDQsIHUz Mng0LCBmMzJ4NCB8CistICAgICAgICAvLy8gQSAyNTYtYml0IHZlY3RvciB3aXRoIDQgYGY2NGAg bGFuZXMuCistKTsKKy1pbXBsX20hKFttNjQ7IDRdOiBtNjR4NCB8IGk2NCwgdTggfCB0ZXN0X3Yy NTYgfCB4MCwgeDEsIHgyLCB4MyB8CistICAgICAgICBGcm9tOiBtOHg0LCBtMTZ4NCwgbTMyeDQg fAorLSAgICAgICAgLy8vIEEgMjU2LWJpdCB2ZWN0b3IgbWFzayB3aXRoIDQgYG02NGAgbGFuZXMu CistKTsKKy0KKy1pbXBsX2khKFtpMTI4OyAyXTogaTEyOHgyLCBtMTI4eDIgfCBpMTI4LCB1OCB8 IHRlc3RfdjI1NiB8IHgwLCB4MSB8CistICAgICAgICBGcm9tOiBpOHgyLCB1OHgyLCBpMTZ4Miwg dTE2eDIsIGkzMngyLCB1MzJ4MiwgaTY0eDIsIHU2NHgyIHwKKy0gICAgICAgIC8vLyBBIDI1Ni1i aXQgdmVjdG9yIHdpdGggMiBgaTEyOGAgbGFuZXMuCistKTsKKy1pbXBsX3UhKFt1MTI4OyAyXTog dTEyOHgyLCBtMTI4eDIgfCB1MTI4LCB1OCB8IHRlc3RfdjI1NiB8IHgwLCB4MSB8CistICAgICAg ICBGcm9tOiB1OHgyLCB1MTZ4MiwgdTMyeDIsIHU2NHgyIHwKKy0gICAgICAgIC8vLyBBIDI1Ni1i aXQgdmVjdG9yIHdpdGggMiBgdTEyOGAgbGFuZXMuCistKTsKKy1pbXBsX20hKFttMTI4OyAyXTog bTEyOHgyIHwgaTEyOCwgdTggfCB0ZXN0X3YyNTYgfCB4MCwgeDEgfAorLSAgICAgICAgRnJvbTog bTh4MiwgbTE2eDIsIG0zMngyLCBtNjR4MiB8CistICAgICAgICAvLy8gQSAyNTYtYml0IHZlY3Rv ciBtYXNrIHdpdGggMiBgbTEyOGAgbGFuZXMuCistKTsKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0 eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy92MzIucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9z aW1kL3NyYy92MzIucnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFy dHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvdjMyLnJzCisrKysgL2Rldi9udWxsCitAQCAtMSwyOSAr MCwwIEBACistLy8hIDMyLWJpdCB3aWRlIHZlY3RvciB0eXBlcworLQorLXVzZSBjcmF0ZTo6KjsK Ky0KKy1pbXBsX2khKFtpODsgNF06IGk4eDQsIG04eDQgfCBpOCwgdTggfCB0ZXN0X3YzMiB8IHgw LCB4MSwgeDIsIHgzIHwKKy0gICAgICAgIEZyb206IHwKKy0gICAgICAgIC8vLyBBIDMyLWJpdCB2 ZWN0b3Igd2l0aCA0IGBpOGAgbGFuZXMuCistKTsKKy1pbXBsX3UhKFt1ODsgNF06IHU4eDQsIG04 eDQgfCB1OCwgdTggfCB0ZXN0X3YzMiB8IHgwLCB4MSwgeDIsIHgzIHwKKy0gICAgICAgIEZyb206 IHwKKy0gICAgICAgIC8vLyBBIDMyLWJpdCB2ZWN0b3Igd2l0aCA0IGB1OGAgbGFuZXMuCistKTsK Ky1pbXBsX20hKFttODsgNF06IG04eDQgfCBpOCwgdTggfCB0ZXN0X3YzMiB8IHgwLCB4MSwgeDIs IHgzIHwKKy0gICAgICAgIEZyb206IG0xNng0LCBtMzJ4NCwgbTY0eDQgfAorLSAgICAgICAgLy8v IEEgMzItYml0IHZlY3RvciBtYXNrIHdpdGggNCBgbThgIGxhbmVzLgorLSk7CistCistaW1wbF9p IShbaTE2OyAyXTogaTE2eDIsIG0xNngyIHwgaTE2LCB1OCB8IHRlc3RfdjMyIHwgeDAsIHgxIHwK Ky0gICAgICAgIEZyb206IGk4eDIsIHU4eDIgfAorLSAgICAgICAgLy8vIEEgMzItYml0IHZlY3Rv ciB3aXRoIDIgYGkxNmAgbGFuZXMuCistKTsKKy1pbXBsX3UhKFt1MTY7IDJdOiB1MTZ4MiwgbTE2 eDIgfCB1MTYsIHU4IHwgdGVzdF92MzIgfCB4MCwgeDEgfAorLSAgICAgICAgRnJvbTogdTh4MiB8 CistICAgICAgICAvLy8gQSAzMi1iaXQgdmVjdG9yIHdpdGggMiBgdTE2YCBsYW5lcy4KKy0pOwor LWltcGxfbSEoW20xNjsgMl06IG0xNngyIHwgaTE2LCB1OCB8IHRlc3RfdjMyIHwgeDAsIHgxIHwK Ky0gICAgICAgIEZyb206IG04eDIsIG0zMngyLCBtNjR4MiwgbTEyOHgyIHwKKy0gICAgICAgIC8v LyBBIDMyLWJpdCB2ZWN0b3IgbWFzayB3aXRoIDIgYG0xNmAgbGFuZXMuCistKTsKK2RpZmYgLS1n aXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy92NTEyLnJzIGIvdGhpcmRfcGFy dHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvdjUxMi5ycworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0 CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy92NTEyLnJzCisrKysgL2Rl di9udWxsCitAQCAtMSw5OSArMCwwIEBACistLy8hIDUxMi1iaXQgd2lkZSB2ZWN0b3IgdHlwZXMK Ky0jW3J1c3RmbXQ6OnNraXBdCistCistdXNlIGNyYXRlOjoqOworLQorLWltcGxfaSEoW2k4OyA2 NF06IGk4eDY0LCBtOHg2NCB8IGk4LCB1NjQgfCB0ZXN0X3Y1MTIgfAorLSAgICAgICAgeDAsIHgx LCB4MiwgeDMsIHg0LCB4NSwgeDYsIHg3LCB4OCwgeDksIHgxMCwgeDExLCB4MTIsIHgxMywgeDE0 LCB4MTUsCistICAgICAgICB4MTYsIHgxNywgeDE4LCB4MTksIHgyMCwgeDIxLCB4MjIsIHgyMywg eDI0LCB4MjUsIHgyNiwgeDI3LCB4MjgsIHgyOSwgeDMwLCB4MzEsCistICAgICAgICB4MzIsIHgz MywgeDM0LCB4MzUsIHgzNiwgeDM3LCB4MzgsIHgzOSwgeDQwLCB4NDEsIHg0MiwgeDQzLCB4NDQs IHg0NSwgeDQ2LCB4NDcsCistICAgICAgICB4NDgsIHg0OSwgeDUwLCB4NTEsIHg1MiwgeDUzLCB4 NTQsIHg1NSwgeDU2LCB4NTcsIHg1OCwgeDU5LCB4NjAsIHg2MSwgeDYyLCB4NjMgfAorLSAgICAg ICAgRnJvbTogfAorLSAgICAgICAgLy8vIEEgNTEyLWJpdCB2ZWN0b3Igd2l0aCA2NCBgaThgIGxh bmVzLgorLSk7CistaW1wbF91IShbdTg7IDY0XTogdTh4NjQsIG04eDY0IHwgdTgsIHU2NCB8IHRl c3RfdjUxMiB8CistICAgICAgICB4MCwgeDEsIHgyLCB4MywgeDQsIHg1LCB4NiwgeDcsIHg4LCB4 OSwgeDEwLCB4MTEsIHgxMiwgeDEzLCB4MTQsIHgxNSwKKy0gICAgICAgIHgxNiwgeDE3LCB4MTgs IHgxOSwgeDIwLCB4MjEsIHgyMiwgeDIzLCB4MjQsIHgyNSwgeDI2LCB4MjcsIHgyOCwgeDI5LCB4 MzAsIHgzMSwKKy0gICAgICAgIHgzMiwgeDMzLCB4MzQsIHgzNSwgeDM2LCB4MzcsIHgzOCwgeDM5 LCB4NDAsIHg0MSwgeDQyLCB4NDMsIHg0NCwgeDQ1LCB4NDYsIHg0NywKKy0gICAgICAgIHg0OCwg eDQ5LCB4NTAsIHg1MSwgeDUyLCB4NTMsIHg1NCwgeDU1LCB4NTYsIHg1NywgeDU4LCB4NTksIHg2 MCwgeDYxLCB4NjIsIHg2MyB8CistICAgICAgICBGcm9tOiB8CistICAgICAgICAvLy8gQSA1MTIt Yml0IHZlY3RvciB3aXRoIDY0IGB1OGAgbGFuZXMuCistKTsKKy1pbXBsX20hKFttODsgNjRdOiBt OHg2NCB8IGk4LCB1NjQgfCB0ZXN0X3Y1MTIgfAorLSAgICAgICAgeDAsIHgxLCB4MiwgeDMsIHg0 LCB4NSwgeDYsIHg3LCB4OCwgeDksIHgxMCwgeDExLCB4MTIsIHgxMywgeDE0LCB4MTUsCistICAg ICAgICB4MTYsIHgxNywgeDE4LCB4MTksIHgyMCwgeDIxLCB4MjIsIHgyMywgeDI0LCB4MjUsIHgy NiwgeDI3LCB4MjgsIHgyOSwgeDMwLCB4MzEsCistICAgICAgICB4MzIsIHgzMywgeDM0LCB4MzUs IHgzNiwgeDM3LCB4MzgsIHgzOSwgeDQwLCB4NDEsIHg0MiwgeDQzLCB4NDQsIHg0NSwgeDQ2LCB4 NDcsCistICAgICAgICB4NDgsIHg0OSwgeDUwLCB4NTEsIHg1MiwgeDUzLCB4NTQsIHg1NSwgeDU2 LCB4NTcsIHg1OCwgeDU5LCB4NjAsIHg2MSwgeDYyLCB4NjMgfAorLSAgICAgICAgRnJvbTogIHwK Ky0gICAgICAgIC8vLyBBIDUxMi1iaXQgdmVjdG9yIG1hc2sgd2l0aCA2NCBgbThgIGxhbmVzLgor LSk7CistCistaW1wbF9pIShbaTE2OyAzMl06IGkxNngzMiwgbTE2eDMyIHwgaTE2LCB1MzIgfCB0 ZXN0X3Y1MTIgfAorLSAgICAgICAgeDAsIHgxLCB4MiwgeDMsIHg0LCB4NSwgeDYsIHg3LCB4OCwg eDksIHgxMCwgeDExLCB4MTIsIHgxMywgeDE0LCB4MTUsCistICAgICAgICB4MTYsIHgxNywgeDE4 LCB4MTksIHgyMCwgeDIxLCB4MjIsIHgyMywgeDI0LCB4MjUsIHgyNiwgeDI3LCB4MjgsIHgyOSwg eDMwLCB4MzEgfAorLSAgICAgICAgRnJvbTogaTh4MzIsIHU4eDMyIHwKKy0gICAgICAgIC8vLyBB IDUxMi1iaXQgdmVjdG9yIHdpdGggMzIgYGkxNmAgbGFuZXMuCistKTsKKy1pbXBsX3UhKFt1MTY7 IDMyXTogdTE2eDMyLCBtMTZ4MzIgfCB1MTYsIHUzMiB8IHRlc3RfdjUxMiB8CistICAgICAgICB4 MCwgeDEsIHgyLCB4MywgeDQsIHg1LCB4NiwgeDcsIHg4LCB4OSwgeDEwLCB4MTEsIHgxMiwgeDEz LCB4MTQsIHgxNSwKKy0gICAgICAgIHgxNiwgeDE3LCB4MTgsIHgxOSwgeDIwLCB4MjEsIHgyMiwg eDIzLCB4MjQsIHgyNSwgeDI2LCB4MjcsIHgyOCwgeDI5LCB4MzAsIHgzMSB8CistICAgICAgICBG cm9tOiB1OHgzMiB8CistICAgICAgICAvLy8gQSA1MTItYml0IHZlY3RvciB3aXRoIDMyIGB1MTZg IGxhbmVzLgorLSk7CistaW1wbF9tIShbbTE2OyAzMl06IG0xNngzMiB8IGkxNiwgdTMyIHwgdGVz dF92NTEyIHwKKy0gICAgICAgIHgwLCB4MSwgeDIsIHgzLCB4NCwgeDUsIHg2LCB4NywgeDgsIHg5 LCB4MTAsIHgxMSwgeDEyLCB4MTMsIHgxNCwgeDE1LAorLSAgICAgICAgeDE2LCB4MTcsIHgxOCwg eDE5LCB4MjAsIHgyMSwgeDIyLCB4MjMsIHgyNCwgeDI1LCB4MjYsIHgyNywgeDI4LCB4MjksIHgz MCwgeDMxIHwKKy0gICAgICAgIEZyb206IG04eDMyIHwKKy0gICAgICAgIC8vLyBBIDUxMi1iaXQg dmVjdG9yIG1hc2sgd2l0aCAzMiBgbTE2YCBsYW5lcy4KKy0pOworLQorLWltcGxfaSEoW2kzMjsg MTZdOiBpMzJ4MTYsIG0zMngxNiB8IGkzMiwgdTE2IHwgdGVzdF92NTEyIHwKKy0gICAgICAgIHgw LCB4MSwgeDIsIHgzLCB4NCwgeDUsIHg2LCB4NywgeDgsIHg5LCB4MTAsIHgxMSwgeDEyLCB4MTMs IHgxNCwgeDE1IHwKKy0gICAgICAgIEZyb206IGk4eDE2LCB1OHgxNiwgaTE2eDE2LCB1MTZ4MTYg fAorLSAgICAgICAgLy8vIEEgNTEyLWJpdCB2ZWN0b3Igd2l0aCAxNiBgaTMyYCBsYW5lcy4KKy0p OworLWltcGxfdSEoW3UzMjsgMTZdOiB1MzJ4MTYsIG0zMngxNiB8IHUzMiwgdTE2IHwgdGVzdF92 NTEyIHwKKy0gICAgICAgIHgwLCB4MSwgeDIsIHgzLCB4NCwgeDUsIHg2LCB4NywgeDgsIHg5LCB4 MTAsIHgxMSwgeDEyLCB4MTMsIHgxNCwgeDE1IHwKKy0gICAgICAgIEZyb206IHU4eDE2LCB1MTZ4 MTYgfAorLSAgICAgICAgLy8vIEEgNTEyLWJpdCB2ZWN0b3Igd2l0aCAxNiBgdTMyYCBsYW5lcy4K Ky0pOworLWltcGxfZiEoW2YzMjsgMTZdOiBmMzJ4MTYsIG0zMngxNiB8IGYzMiB8IHRlc3RfdjUx MiB8CistICAgICAgICB4MCwgeDEsIHgyLCB4MywgeDQsIHg1LCB4NiwgeDcsIHg4LCB4OSwgeDEw LCB4MTEsIHgxMiwgeDEzLCB4MTQsIHgxNSB8CistICAgICAgICBGcm9tOiBpOHgxNiwgdTh4MTYs IGkxNngxNiwgdTE2eDE2IHwKKy0gICAgICAgIC8vLyBBIDUxMi1iaXQgdmVjdG9yIHdpdGggMTYg YGYzMmAgbGFuZXMuCistKTsKKy1pbXBsX20hKFttMzI7IDE2XTogbTMyeDE2IHwgaTMyLCB1MTYg fCB0ZXN0X3Y1MTIgfAorLSAgICAgICAgeDAsIHgxLCB4MiwgeDMsIHg0LCB4NSwgeDYsIHg3LCB4 OCwgeDksIHgxMCwgeDExLCB4MTIsIHgxMywgeDE0LCB4MTUgfAorLSAgICAgICAgRnJvbTogbTh4 MTYsIG0xNngxNiB8CistICAgICAgICAvLy8gQSA1MTItYml0IHZlY3RvciBtYXNrIHdpdGggMTYg YG0zMmAgbGFuZXMuCistKTsKKy0KKy1pbXBsX2khKFtpNjQ7IDhdOiBpNjR4OCwgbTY0eDggfCBp NjQsIHU4IHwgdGVzdF92NTEyIHwgeDAsIHgxLCB4MiwgeDMsIHg0LCB4NSwgeDYsIHg3IHwKKy0g ICAgICAgIEZyb206IGk4eDgsIHU4eDgsIGkxNng4LCB1MTZ4OCwgaTMyeDgsIHUzMng4IHwKKy0g ICAgICAgIC8vLyBBIDUxMi1iaXQgdmVjdG9yIHdpdGggOCBgaTY0YCBsYW5lcy4KKy0pOworLWlt cGxfdSEoW3U2NDsgOF06IHU2NHg4LCBtNjR4OCB8IHU2NCwgdTggfCB0ZXN0X3Y1MTIgfCB4MCwg eDEsIHgyLCB4MywgeDQsIHg1LCB4NiwgeDcgfAorLSAgICAgICAgRnJvbTogdTh4OCwgdTE2eDgs IHUzMng4IHwKKy0gICAgICAgIC8vLyBBIDUxMi1iaXQgdmVjdG9yIHdpdGggOCBgdTY0YCBsYW5l cy4KKy0pOworLWltcGxfZiEoW2Y2NDsgOF06IGY2NHg4LCBtNjR4OCB8IGY2NCB8IHRlc3RfdjUx MiB8IHgwLCB4MSwgeDIsIHgzLCB4NCwgeDUsIHg2LCB4NyB8CistICAgICAgICBGcm9tOiBpOHg4 LCB1OHg4LCBpMTZ4OCwgdTE2eDgsIGkzMng4LCB1MzJ4OCwgZjMyeDggfAorLSAgICAgICAgLy8v IEEgNTEyLWJpdCB2ZWN0b3Igd2l0aCA4IGBmNjRgIGxhbmVzLgorLSk7CistaW1wbF9tIShbbTY0 OyA4XTogbTY0eDggfCBpNjQsIHU4IHwgdGVzdF92NTEyIHwgeDAsIHgxLCB4MiwgeDMsIHg0LCB4 NSwgeDYsIHg3IHwKKy0gICAgICAgIEZyb206IG04eDgsIG0xNng4LCBtMzJ4OCB8CistICAgICAg ICAvLy8gQSA1MTItYml0IHZlY3RvciBtYXNrIHdpdGggOCBgbTY0YCBsYW5lcy4KKy0pOworLQor LWltcGxfaSEoW2kxMjg7IDRdOiBpMTI4eDQsIG0xMjh4NCB8IGkxMjgsIHU4IHwgdGVzdF92NTEy IHwgeDAsIHgxLCB4MiwgeDMgfAorLSAgICAgICAgRnJvbTogaTh4NCwgdTh4NCwgaTE2eDQsIHUx Nng0LCBpMzJ4NCwgdTMyeDQsIGk2NHg0LCB1NjR4NCB8CistICAgICAgICAvLy8gQSA1MTItYml0 IHZlY3RvciB3aXRoIDQgYGkxMjhgIGxhbmVzLgorLSk7CistaW1wbF91IShbdTEyODsgNF06IHUx Mjh4NCwgbTEyOHg0IHwgdTEyOCwgdTggfCB0ZXN0X3Y1MTIgfCB4MCwgeDEsIHgyLCB4MyB8Cist ICAgICAgICBGcm9tOiB1OHg0LCB1MTZ4NCwgdTMyeDQsIHU2NHg0IHwKKy0gICAgICAgIC8vLyBB IDUxMi1iaXQgdmVjdG9yIHdpdGggNCBgdTEyOGAgbGFuZXMuCistKTsKKy1pbXBsX20hKFttMTI4 OyA0XTogbTEyOHg0IHwgaTEyOCwgdTggfCB0ZXN0X3Y1MTIgfCB4MCwgeDEsIHgyLCB4MyB8Cist ICAgICAgICBGcm9tOiBtOHg0LCBtMTZ4NCwgbTMyeDQsIG02NHg0IHwKKy0gICAgICAgIC8vLyBB IDUxMi1iaXQgdmVjdG9yIG1hc2sgd2l0aCA0IGBtMTI4YCBsYW5lcy4KKy0pOworZGlmZiAtLWdp dCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL3Y2NC5ycyBiL3RoaXJkX3BhcnR5 L3J1c3QvcGFja2VkX3NpbWQvc3JjL3Y2NC5ycworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cist LS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy92NjQucnMKKysrKyAvZGV2L251 bGwKK0BAIC0xLDY2ICswLDAgQEAKKy0vLyEgNjQtYml0IHdpZGUgdmVjdG9yIHR5cGVzCistI1ty dXN0Zm10Ojpza2lwXQorLQorLXVzZSBzdXBlcjo6KjsKKy0KKy1pbXBsX2khKFtpODsgOF06IGk4 eDgsIG04eDggfCBpOCwgdTggfCB0ZXN0X3Y2NCB8IHgwLCB4MSwgeDIsIHgzLCB4NCwgeDUsIHg2 LCB4NyB8CistICAgICAgICBGcm9tOiB8CistICAgICAgICAvLy8gQSA2NC1iaXQgdmVjdG9yIHdp dGggOCBgaThgIGxhbmVzLgorLSk7CistaW1wbF91IShbdTg7IDhdOiB1OHg4LCBtOHg4IHwgdTgs IHU4IHwgdGVzdF92NjQgfCB4MCwgeDEsIHgyLCB4MywgeDQsIHg1LCB4NiwgeDcgfAorLSAgICAg ICAgRnJvbTogfAorLSAgICAgICAgLy8vIEEgNjQtYml0IHZlY3RvciB3aXRoIDggYHU4YCBsYW5l cy4KKy0pOworLWltcGxfbSEoW204OyA4XTogbTh4OCB8IGk4LCB1OCB8IHRlc3RfdjY0IHwgeDAs IHgxLCB4MiwgeDMsIHg0LCB4NSwgeDYsIHg3IHwKKy0gICAgICAgIEZyb206IG0xNng4LCBtMzJ4 OCB8CistICAgICAgICAvLy8gQSA2NC1iaXQgdmVjdG9yIG1hc2sgd2l0aCA4IGBtOGAgbGFuZXMu CistKTsKKy0KKy1pbXBsX2khKFtpMTY7IDRdOiBpMTZ4NCwgbTE2eDQgfCBpMTYsIHU4IHwgdGVz dF92NjQgfCB4MCwgeDEsIHgyLCB4MyB8CistICAgICAgICBGcm9tOiBpOHg0LCB1OHg0IHwKKy0g ICAgICAgIC8vLyBBIDY0LWJpdCB2ZWN0b3Igd2l0aCA0IGBpMTZgIGxhbmVzLgorLSk7CistaW1w bF91IShbdTE2OyA0XTogdTE2eDQsIG0xNng0IHwgdTE2LCB1OCB8IHRlc3RfdjY0IHwgeDAsIHgx LCB4MiwgeDMgfAorLSAgICAgICAgRnJvbTogdTh4NCB8CistICAgICAgICAvLy8gQSA2NC1iaXQg dmVjdG9yIHdpdGggNCBgdTE2YCBsYW5lcy4KKy0pOworLWltcGxfbSEoW20xNjsgNF06IG0xNng0 IHwgaTE2LCB1OCB8IHRlc3RfdjY0IHwgeDAsIHgxLCB4MiwgeDMgfAorLSAgICAgICAgRnJvbTog bTh4NCwgbTMyeDQsIG02NHg0IHwKKy0gICAgICAgIC8vLyBBIDY0LWJpdCB2ZWN0b3IgbWFzayB3 aXRoIDQgYG0xNmAgbGFuZXMuCistKTsKKy0KKy1pbXBsX2khKFtpMzI7IDJdOiBpMzJ4MiwgbTMy eDIgfCBpMzIsIHU4IHwgdGVzdF92NjQgfCB4MCwgeDEgfAorLSAgICAgICAgRnJvbTogaTh4Miwg dTh4MiwgaTE2eDIsIHUxNngyIHwKKy0gICAgICAgIC8vLyBBIDY0LWJpdCB2ZWN0b3Igd2l0aCAy IGBpMzJgIGxhbmVzLgorLSk7CistaW1wbF91IShbdTMyOyAyXTogdTMyeDIsIG0zMngyIHwgdTMy LCB1OCB8IHRlc3RfdjY0IHwgeDAsIHgxIHwKKy0gICAgICAgIEZyb206IHU4eDIsIHUxNngyIHwK Ky0gICAgICAgIC8vLyBBIDY0LWJpdCB2ZWN0b3Igd2l0aCAyIGB1MzJgIGxhbmVzLgorLSk7Cist aW1wbF9tIShbbTMyOyAyXTogbTMyeDIgfCBpMzIsIHU4IHwgdGVzdF92NjQgfCB4MCwgeDEgfAor LSAgICAgICAgRnJvbTogbTh4MiwgbTE2eDIsIG02NHgyLCBtMTI4eDIgfAorLSAgICAgICAgLy8v IEEgNjQtYml0IHZlY3RvciBtYXNrIHdpdGggMiBgbTMyYCBsYW5lcy4KKy0pOworLWltcGxfZiEo W2YzMjsgMl06IGYzMngyLCBtMzJ4MiB8IGYzMiB8IHRlc3RfdjY0IHwgeDAsIHgxIHwKKy0gICAg ICAgIEZyb206IGk4eDIsIHU4eDIsIGkxNngyLCB1MTZ4MiB8CistICAgICAgICAvLy8gQSA2NC1i aXQgdmVjdG9yIHdpdGggMiBgZjMyYCBsYW5lcy4KKy0pOworLQorLS8qCistaW1wbF9pIShbaTY0 OyAxXTogaTY0eDEsIG02NHgxIHwgaTY0LCB1OCB8IHRlc3RfdjY0IHwgeDAgfAorLSAgICAgICAg RnJvbTogLyppOHgxLCB1OHgxLCBpMTZ4MSwgdTE2eDEsIGkzMngxLCB1MzJ4MSovIHwgIC8vIEZJ WE1FOiBwcmltaXRpdmUgdG8gdmVjdG9yIGNvbnZlcnNpb24KKy0gICAgICAgIC8vLyBBIDY0LWJp dCB2ZWN0b3Igd2l0aCAxIGBpNjRgIGxhbmVzLgorLSk7CistaW1wbF91IShbdTY0OyAxXTogdTY0 eDEsIG02NHgxIHwgdTY0LCB1OCB8IHRlc3RfdjY0IHwgeDAgfAorLSAgICAgICAgRnJvbTogLyp1 OHgxLCB1MTZ4MSwgdTMyeDEqLyB8IC8vIEZJWE1FOiBwcmltaXRpdmUgdG8gdmVjdG9yIGNvbnZl cnNpb24KKy0gICAgICAgIC8vLyBBIDY0LWJpdCB2ZWN0b3Igd2l0aCAxIGB1NjRgIGxhbmVzLgor LSk7CistaW1wbF9tIShbbTY0OyAxXTogbTY0eDEgfCBpNjQsIHU4IHwgdGVzdF92NjQgfCB4MCB8 CistICAgICAgICBGcm9tOiAvKm04eDEsIG0xNngxLCBtMzJ4MSwgKi8gbTEyOHgxIHwgLy8gRklY TUU6IHVuYXJ5IHNtYWxsIHZlY3RvciB0eXBlcworLSAgICAgICAgLy8vIEEgNjQtYml0IHZlY3Rv ciBtYXNrIHdpdGggMSBgbTY0YCBsYW5lcy4KKy0pOworLWltcGxfZiEoW2Y2NDsgMV06IGY2NHgx LCBtNjR4MSB8IGY2NCB8IHRlc3RfdjY0IHwgeDAgfAorLSAgICAgICAgRnJvbTogLyppOHgxLCB1 OHgxLCBpMTZ4MSwgdTE2eDEsIGkzMngxLCB1MzJ4MSwgZjMyeDEqLyB8IC8vIEZJWE1FOiB1bmFy eSBzbWFsbCB2ZWN0b3IgdHlwZXMKKy0gICAgICAgIC8vLyBBIDY0LWJpdCB2ZWN0b3Igd2l0aCAx IGBmNjRgIGxhbmVzLgorLSk7CistKi8KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3Bh Y2tlZF9zaW1kL3NyYy92UHRyLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMv dlB0ci5ycworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0 L3BhY2tlZF9zaW1kL3NyYy92UHRyLnJzCisrKysgL2Rldi9udWxsCitAQCAtMSwzNCArMCwwIEBA CistLy8hIFZlY3RvcnMgb2YgcG9pbnRlcnMKKy0jW3J1c3RmbXQ6OnNraXBdCistCistdXNlIGNy YXRlOjoqOworLQorLWltcGxfY29uc3RfcCEoCistICAgIFsqY29uc3QgVDsgMl06IGNwdHJ4Miwg bXNpemV4MiwgdXNpemV4MiwgaXNpemV4MiB8IHRlc3RfdjEyOCB8IHgwLCB4MSB8IEZyb206IHwK Ky0gICAgLy8vIEEgdmVjdG9yIHdpdGggMiBgKmNvbnN0IFRgIGxhbmVzCistKTsKKy0KKy1pbXBs X211dF9wISgKKy0gICAgWyptdXQgVDsgMl06IG1wdHJ4MiwgbXNpemV4MiwgdXNpemV4MiwgaXNp emV4MiB8IHRlc3RfdjEyOCB8IHgwLCB4MSB8IEZyb206IHwKKy0gICAgLy8vIEEgdmVjdG9yIHdp dGggMiBgKm11dCBUYCBsYW5lcworLSk7CistCistaW1wbF9jb25zdF9wISgKKy0gICAgWypjb25z dCBUOyA0XTogY3B0cng0LCBtc2l6ZXg0LCB1c2l6ZXg0LCBpc2l6ZXg0IHwgdGVzdF92MjU2IHwg eDAsIHgxLCB4MiwgeDMgfCBGcm9tOiB8CistICAgIC8vLyBBIHZlY3RvciB3aXRoIDQgYCpjb25z dCBUYCBsYW5lcworLSk7CistCistaW1wbF9tdXRfcCEoCistICAgIFsqbXV0IFQ7IDRdOiBtcHRy eDQsIG1zaXpleDQsIHVzaXpleDQsIGlzaXpleDQgfCB0ZXN0X3YyNTYgfCB4MCwgeDEsIHgyLCB4 MyB8IEZyb206IHwKKy0gICAgLy8vIEEgdmVjdG9yIHdpdGggNCBgKm11dCBUYCBsYW5lcworLSk7 CistCistaW1wbF9jb25zdF9wISgKKy0gICAgWypjb25zdCBUOyA4XTogY3B0cng4LCBtc2l6ZXg4 LCB1c2l6ZXg4LCBpc2l6ZXg4IHwgdGVzdF92NTEyIHwgeDAsIHgxLCB4MiwgeDMsIHg0LCB4NSwg eDYsIHg3IHwgRnJvbTogfAorLSAgICAvLy8gQSB2ZWN0b3Igd2l0aCA4IGAqY29uc3QgVGAgbGFu ZXMKKy0pOworLQorLWltcGxfbXV0X3AhKAorLSAgICBbKm11dCBUOyA4XTogbXB0cng4LCBtc2l6 ZXg4LCB1c2l6ZXg4LCBpc2l6ZXg4IHwgdGVzdF92NTEyIHwgeDAsIHgxLCB4MiwgeDMsIHg0LCB4 NSwgeDYsIHg3IHwgRnJvbTogfAorLSAgICAvLy8gQSB2ZWN0b3Igd2l0aCA4IGAqbXV0IFRgIGxh bmVzCistKTsKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy92 U2l6ZS5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL3ZTaXplLnJzCitkZWxl dGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQv c3JjL3ZTaXplLnJzCisrKysgL2Rldi9udWxsCitAQCAtMSw1MyArMCwwIEBACistLy8hIFZlY3Rv cnMgd2l0aCBwb2ludGVyLXNpemVkIGVsZW1lbnRzCistCistdXNlIGNyYXRlOjpjb2RlZ2VuOjpw b2ludGVyX3NpemVkX2ludDo6e2lzaXplXywgdXNpemVffTsKKy11c2UgY3JhdGU6Oio7CistCist aW1wbF9pIShbaXNpemU7IDJdOiBpc2l6ZXgyLCBtc2l6ZXgyIHwgaXNpemVfLCB1OCB8IHRlc3Rf djEyOCB8CistICAgICAgICB4MCwgeDF8CistICAgICAgICBGcm9tOiB8CistICAgICAgICAvLy8g QSB2ZWN0b3Igd2l0aCAyIGBpc2l6ZWAgbGFuZXMuCistKTsKKy0KKy1pbXBsX3UhKFt1c2l6ZTsg Ml06IHVzaXpleDIsIG1zaXpleDIgfCB1c2l6ZV8sIHU4IHwgdGVzdF92MTI4IHwKKy0gICAgICAg IHgwLCB4MXwKKy0gICAgICAgIEZyb206IHwKKy0gICAgICAgIC8vLyBBIHZlY3RvciB3aXRoIDIg YHVzaXplYCBsYW5lcy4KKy0pOworLWltcGxfbSEoW21zaXplOyAyXTogbXNpemV4MiB8IGlzaXpl XywgdTggfCB0ZXN0X3YxMjggfAorLSAgICAgICAgeDAsIHgxIHwKKy0gICAgICAgIEZyb206IHwK Ky0gICAgICAgIC8vLyBBIHZlY3RvciBtYXNrIHdpdGggMiBgbXNpemVgIGxhbmVzLgorLSk7Cist CistaW1wbF9pIShbaXNpemU7IDRdOiBpc2l6ZXg0LCBtc2l6ZXg0IHwgaXNpemVfLCB1OCB8IHRl c3RfdjI1NiB8CistICAgICAgICB4MCwgeDEsIHgyLCB4MyB8CistICAgICAgICBGcm9tOiB8Cist ICAgICAgICAvLy8gQSB2ZWN0b3Igd2l0aCA0IGBpc2l6ZWAgbGFuZXMuCistKTsKKy1pbXBsX3Uh KFt1c2l6ZTsgNF06IHVzaXpleDQsIG1zaXpleDQgfCB1c2l6ZV8sIHU4IHwgdGVzdF92MjU2IHwK Ky0gICAgICAgIHgwLCB4MSwgeDIsIHgzfAorLSAgICAgICAgRnJvbTogfAorLSAgICAgICAgLy8v IEEgdmVjdG9yIHdpdGggNCBgdXNpemVgIGxhbmVzLgorLSk7CistaW1wbF9tIShbbXNpemU7IDRd OiBtc2l6ZXg0IHwgaXNpemVfLCB1OCB8IHRlc3RfdjI1NiB8CistICAgICAgICB4MCwgeDEsIHgy LCB4MyB8CistICAgICAgICBGcm9tOiB8CistICAgICAgICAvLy8gQSB2ZWN0b3IgbWFzayB3aXRo IDQgYG1zaXplYCBsYW5lcy4KKy0pOworLQorLWltcGxfaSEoW2lzaXplOyA4XTogaXNpemV4OCwg bXNpemV4OCB8IGlzaXplXywgdTggfCB0ZXN0X3Y1MTIgfAorLSAgICAgICAgeDAsIHgxLCB4Miwg eDMsIHg0LCB4NSwgeDYsIHg3IHwKKy0gICAgICAgIEZyb206IHwKKy0gICAgICAgIC8vLyBBIHZl Y3RvciB3aXRoIDggYGlzaXplYCBsYW5lcy4KKy0pOworLWltcGxfdSEoW3VzaXplOyA4XTogdXNp emV4OCwgbXNpemV4OCB8IHVzaXplXywgdTggfCB0ZXN0X3Y1MTIgfAorLSAgICAgICAgeDAsIHgx LCB4MiwgeDMsIHg0LCB4NSwgeDYsIHg3IHwKKy0gICAgICAgIEZyb206IHwKKy0gICAgICAgIC8v LyBBIHZlY3RvciB3aXRoIDggYHVzaXplYCBsYW5lcy4KKy0pOworLWltcGxfbSEoW21zaXplOyA4 XTogbXNpemV4OCB8IGlzaXplXywgdTggfCB0ZXN0X3Y1MTIgfAorLSAgICAgICAgeDAsIHgxLCB4 MiwgeDMsIHg0LCB4NSwgeDYsIHg3IHwKKy0gICAgICAgIEZyb206IHwKKy0gICAgICAgIC8vLyBB IHZlY3RvciBtYXNrIHdpdGggOCBgbXNpemVgIGxhbmVzLgorLSk7CitkaWZmIC0tZ2l0IGEvdGhp cmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC90ZXN0cy9lbmRpYW5uZXNzLnJzIGIvdGhpcmRfcGFy dHkvcnVzdC9wYWNrZWRfc2ltZC90ZXN0cy9lbmRpYW5uZXNzLnJzCitkZWxldGVkIGZpbGUgbW9k ZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvdGVzdHMvZW5kaWFu bmVzcy5ycworKysrIC9kZXYvbnVsbAorQEAgLTEsMjY4ICswLDAgQEAKKy0jW2NmZyh0YXJnZXRf YXJjaCA9ICJ3YXNtMzIiKV0KKy11c2Ugd2FzbV9iaW5kZ2VuX3Rlc3Q6Oio7CistCistdXNlIHBh Y2tlZF9zaW1kOjoqOworLXVzZSBzdGQ6OnttZW0sIHNsaWNlfTsKKy0KKy0jW2NmZ19hdHRyKG5v dCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldCistI1tjZmdfYXR0cih0YXJnZXRfYXJj aCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCistZm4gZW5kaWFuX2luZGV4aW5nKCkg eworLSAgICBsZXQgdiA9IGkzMng0OjpuZXcoMCwgMSwgMiwgMyk7CistICAgIGFzc2VydF9lcSEo di5leHRyYWN0KDApLCAwKTsKKy0gICAgYXNzZXJ0X2VxISh2LmV4dHJhY3QoMSksIDEpOworLSAg ICBhc3NlcnRfZXEhKHYuZXh0cmFjdCgyKSwgMik7CistICAgIGFzc2VydF9lcSEodi5leHRyYWN0 KDMpLCAzKTsKKy19CistCistI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiks IHRlc3QpXQorLSNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2Vu X3Rlc3QpXQorLWZuIGVuZGlhbl9iaXRjYXN0cygpIHsKKy0gICAgI1tydXN0Zm10Ojpza2lwXQor LSAgICBsZXQgeCA9IGk4eDE2OjpuZXcoCistICAgICAgICAwLCAxLCAyLCAzLCA0LCA1LCA2LCA3 LAorLSAgICAgICAgOCwgOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwKKy0gICAgKTsKKy0gICAg bGV0IHQ6IGkxNng4ID0gdW5zYWZlIHsgbWVtOjp0cmFuc211dGUoeCkgfTsKKy0gICAgbGV0IGU6 IGkxNng4ID0gaWYgY2ZnISh0YXJnZXRfZW5kaWFuID0gImxpdHRsZSIpIHsKKy0gICAgICAgIGkx Nng4OjpuZXcoMjU2LCA3NzAsIDEyODQsIDE3OTgsIDIzMTIsIDI4MjYsIDMzNDAsIDM4NTQpCist ICAgIH0gZWxzZSB7CistICAgICAgICBpMTZ4ODo6bmV3KDEsIDUxNSwgMTAyOSwgMTU0MywgMjA1 NywgMjU3MSwgMzA4NSwgMzU5OSkKKy0gICAgfTsKKy0gICAgYXNzZXJ0X2VxISh0LCBlKTsKKy19 CistCistI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXQorLSNb Y2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQorLWZu IGVuZGlhbl9jYXN0cygpIHsKKy0gICAgI1tydXN0Zm10Ojpza2lwXQorLSAgICBsZXQgeCA9IGk4 eDE2OjpuZXcoCistICAgICAgICAwLCAxLCAyLCAzLCA0LCA1LCA2LCA3LAorLSAgICAgICAgOCwg OSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwKKy0gICAgKTsKKy0gICAgbGV0IHQ6IGkxNngxNiA9 IHguaW50bygpOyAvLyBzaW1kX2Nhc3QKKy0gICAgI1tydXN0Zm10Ojpza2lwXQorLSAgICBsZXQg ZSA9IGkxNngxNjo6bmV3KAorLSAgICAgICAgMCwgMSwgMiwgMywgNCwgNSwgNiwgNywKKy0gICAg ICAgIDgsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsCistICAgICk7CistICAgIGFzc2VydF9l cSEodCwgZSk7CistfQorLQorLSNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIp LCB0ZXN0KV0KKy0jW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdl bl90ZXN0KV0KKy1mbiBlbmRpYW5fbG9hZF9hbmRfc3RvcmVzKCkgeworLSAgICAjW3J1c3RmbXQ6 OnNraXBdCistICAgIGxldCB4ID0gaTh4MTY6Om5ldygKKy0gICAgICAgIDAsIDEsIDIsIDMsIDQs IDUsIDYsIDcsCistICAgICAgICA4LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LAorLSAgICAp OworLSAgICBsZXQgbXV0IHk6IFtpMTY7IDhdID0gWzA7IDhdOworLSAgICB4LndyaXRlX3RvX3Ns aWNlX3VuYWxpZ25lZCh1bnNhZmUgeyBzbGljZTo6ZnJvbV9yYXdfcGFydHNfbXV0KCZtdXQgeSBh cyAqbXV0IF8gYXMgKm11dCBpOCwgMTYpIH0pOworLQorLSAgICBsZXQgZTogW2kxNjsgOF0gPSBp ZiBjZmchKHRhcmdldF9lbmRpYW4gPSAibGl0dGxlIikgeworLSAgICAgICAgWzI1NiwgNzcwLCAx Mjg0LCAxNzk4LCAyMzEyLCAyODI2LCAzMzQwLCAzODU0XQorLSAgICB9IGVsc2UgeworLSAgICAg ICAgWzEsIDUxNSwgMTAyOSwgMTU0MywgMjA1NywgMjU3MSwgMzA4NSwgMzU5OV0KKy0gICAgfTsK Ky0gICAgYXNzZXJ0X2VxISh5LCBlKTsKKy0KKy0gICAgbGV0IHogPSBpOHgxNjo6ZnJvbV9zbGlj ZV91bmFsaWduZWQodW5zYWZlIHsgc2xpY2U6OmZyb21fcmF3X3BhcnRzKCZ5IGFzICpjb25zdCBf IGFzICpjb25zdCBpOCwgMTYpIH0pOworLSAgICBhc3NlcnRfZXEhKHosIHgpOworLX0KKy0KKy0j W2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldCistI1tjZmdfYXR0 cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCistZm4gZW5kaWFu X2FycmF5X3VuaW9uKCkgeworLSAgICB1bmlvbiBBIHsKKy0gICAgICAgIGRhdGE6IFtmMzI7IDRd LAorLSAgICAgICAgdmVjOiBmMzJ4NCwKKy0gICAgfQorLSAgICBsZXQgeDogW2YzMjsgNF0gPSB1 bnNhZmUgeyBBIHsgdmVjOiBmMzJ4NDo6bmV3KDAuLCAxLiwgMi4sIDMuKSB9LmRhdGEgfTsKKy0g ICAgLy8gQXMgYWxsIG9mIHRoZXNlIGFyZSBpbnRlZ2VyIHZhbHVlcyB3aXRoaW4gdGhlIG1hbnRp c3NhXjEgcmFuZ2UsIGl0CistICAgIC8vIHdvdWxkIGJlIHZlcnkgdW51c3VhbCBmb3IgdGhlbSB0 byBhY3R1YWxseSBmYWlsIHRvIGNvbXBhcmUuCistICAgICNbYWxsb3coY2xpcHB5OjpmbG9hdF9j bXApXQorLSAgICB7CistICAgICAgICBhc3NlcnRfZXEhKHhbMF0sIDBfZjMyKTsKKy0gICAgICAg IGFzc2VydF9lcSEoeFsxXSwgMV9mMzIpOworLSAgICAgICAgYXNzZXJ0X2VxISh4WzJdLCAyX2Yz Mik7CistICAgICAgICBhc3NlcnRfZXEhKHhbM10sIDNfZjMyKTsKKy0gICAgfQorLSAgICBsZXQg eTogZjMyeDQgPSB1bnNhZmUgeyBBIHsgZGF0YTogWzMuLCAyLiwgMS4sIDAuXSB9LnZlYyB9Owor LSAgICBhc3NlcnRfZXEhKHksIGYzMng0OjpuZXcoMy4sIDIuLCAxLiwgMC4pKTsKKy0KKy0gICAg dW5pb24gQiB7CistICAgICAgICBkYXRhOiBbaTg7IDE2XSwKKy0gICAgICAgIHZlYzogaTh4MTYs CistICAgIH0KKy0gICAgI1tydXN0Zm10Ojpza2lwXQorLSAgICBsZXQgeCA9IGk4eDE2OjpuZXco CistICAgICAgICAwLCAxLCAyLCAzLCA0LCA1LCA2LCA3LAorLSAgICAgICAgOCwgOSwgMTAsIDEx LCAxMiwgMTMsIDE0LCAxNSwKKy0gICAgKTsKKy0gICAgbGV0IHg6IFtpODsgMTZdID0gdW5zYWZl IHsgQiB7IHZlYzogeCB9LmRhdGEgfTsKKy0KKy0gICAgZm9yIChpLCB2KSBpbiB4Lml0ZXIoKS5l bnVtZXJhdGUoKSB7CistICAgICAgICBhc3NlcnRfZXEhKGkgYXMgaTgsICp2KTsKKy0gICAgfQor LQorLSAgICAjW3J1c3RmbXQ6OnNraXBdCistICAgIGxldCB5ID0gWworLSAgICAgICAgMTUsIDE0 LCAxMywgMTIsIDExLCAxOSwgOSwgOCwKKy0gICAgICAgIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDAK Ky0gICAgXTsKKy0gICAgI1tydXN0Zm10Ojpza2lwXQorLSAgICBsZXQgZSA9IGk4eDE2OjpuZXco CistICAgICAgICAxNSwgMTQsIDEzLCAxMiwgMTEsIDE5LCA5LCA4LAorLSAgICAgICAgNywgNiwg NSwgNCwgMywgMiwgMSwgMAorLSAgICApOworLSAgICBsZXQgeiA9IHVuc2FmZSB7IEIgeyBkYXRh OiB5IH0udmVjIH07CistICAgIGFzc2VydF9lcSEoeiwgZSk7CistCistICAgIHVuaW9uIEMgewor LSAgICAgICAgZGF0YTogW2kxNjsgOF0sCistICAgICAgICB2ZWM6IGk4eDE2LAorLSAgICB9Cist ICAgICNbcnVzdGZtdDo6c2tpcF0KKy0gICAgbGV0IHggPSBpOHgxNjo6bmV3KAorLSAgICAgICAg MCwgMSwgMiwgMywgNCwgNSwgNiwgNywKKy0gICAgICAgIDgsIDksIDEwLCAxMSwgMTIsIDEzLCAx NCwgMTUsCistICAgICk7CistICAgIGxldCB4OiBbaTE2OyA4XSA9IHVuc2FmZSB7IEMgeyB2ZWM6 IHggfS5kYXRhIH07CistCistICAgIGxldCBlOiBbaTE2OyA4XSA9IGlmIGNmZyEodGFyZ2V0X2Vu ZGlhbiA9ICJsaXR0bGUiKSB7CistICAgICAgICBbMjU2LCA3NzAsIDEyODQsIDE3OTgsIDIzMTIs IDI4MjYsIDMzNDAsIDM4NTRdCistICAgIH0gZWxzZSB7CistICAgICAgICBbMSwgNTE1LCAxMDI5 LCAxNTQzLCAyMDU3LCAyNTcxLCAzMDg1LCAzNTk5XQorLSAgICB9OworLSAgICBhc3NlcnRfZXEh KHgsIGUpOworLX0KKy0KKy0jW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwg dGVzdCldCistI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5f dGVzdCldCistZm4gZW5kaWFuX3R1cGxlX2FjY2VzcygpIHsKKy0gICAgdHlwZSBGMzJ4NFQgPSAo ZjMyLCBmMzIsIGYzMiwgZjMyKTsKKy0gICAgdW5pb24gQSB7CistICAgICAgICBkYXRhOiBGMzJ4 NFQsCistICAgICAgICB2ZWM6IGYzMng0LAorLSAgICB9CistICAgIGxldCB4OiBGMzJ4NFQgPSB1 bnNhZmUgeyBBIHsgdmVjOiBmMzJ4NDo6bmV3KDAuLCAxLiwgMi4sIDMuKSB9LmRhdGEgfTsKKy0g ICAgLy8gQXMgYWxsIG9mIHRoZXNlIGFyZSBpbnRlZ2VyIHZhbHVlcyB3aXRoaW4gdGhlIG1hbnRp c3NhXjEgcmFuZ2UsIGl0CistICAgIC8vIHdvdWxkIGJlIHZlcnkgdW51c3VhbCBmb3IgdGhlbSB0 byBhY3R1YWxseSBmYWlsIHRvIGNvbXBhcmUuCistICAgICNbYWxsb3coY2xpcHB5OjpmbG9hdF9j bXApXQorLSAgICB7CistICAgICAgICBhc3NlcnRfZXEhKHguMCwgMF9mMzIpOworLSAgICAgICAg YXNzZXJ0X2VxISh4LjEsIDFfZjMyKTsKKy0gICAgICAgIGFzc2VydF9lcSEoeC4yLCAyX2YzMik7 CistICAgICAgICBhc3NlcnRfZXEhKHguMywgM19mMzIpOworLSAgICB9CistICAgIGxldCB5OiBm MzJ4NCA9IHVuc2FmZSB7IEEgeyBkYXRhOiAoMy4sIDIuLCAxLiwgMC4pIH0udmVjIH07CistICAg IGFzc2VydF9lcSEoeSwgZjMyeDQ6Om5ldygzLiwgMi4sIDEuLCAwLikpOworLQorLSAgICAjW3J1 c3RmbXQ6OnNraXBdCistICAgIHR5cGUgSTh4MTZUID0gKGk4LCBpOCwgaTgsIGk4LCBpOCwgaTgs IGk4LCBpOCwgaTgsIGk4LCBpOCwgaTgsIGk4LCBpOCwgaTgsIGk4KTsKKy0gICAgdW5pb24gQiB7 CistICAgICAgICBkYXRhOiBJOHgxNlQsCistICAgICAgICB2ZWM6IGk4eDE2LAorLSAgICB9Cist CistICAgICNbcnVzdGZtdDo6c2tpcF0KKy0gICAgbGV0IHggPSBpOHgxNjo6bmV3KAorLSAgICAg ICAgMCwgMSwgMiwgMywgNCwgNSwgNiwgNywKKy0gICAgICAgIDgsIDksIDEwLCAxMSwgMTIsIDEz LCAxNCwgMTUsCistICAgICk7CistICAgIGxldCB4OiBJOHgxNlQgPSB1bnNhZmUgeyBCIHsgdmVj OiB4IH0uZGF0YSB9OworLQorLSAgICBhc3NlcnRfZXEhKHguMCwgMCk7CistICAgIGFzc2VydF9l cSEoeC4xLCAxKTsKKy0gICAgYXNzZXJ0X2VxISh4LjIsIDIpOworLSAgICBhc3NlcnRfZXEhKHgu MywgMyk7CistICAgIGFzc2VydF9lcSEoeC40LCA0KTsKKy0gICAgYXNzZXJ0X2VxISh4LjUsIDUp OworLSAgICBhc3NlcnRfZXEhKHguNiwgNik7CistICAgIGFzc2VydF9lcSEoeC43LCA3KTsKKy0g ICAgYXNzZXJ0X2VxISh4LjgsIDgpOworLSAgICBhc3NlcnRfZXEhKHguOSwgOSk7CistICAgIGFz c2VydF9lcSEoeC4xMCwgMTApOworLSAgICBhc3NlcnRfZXEhKHguMTEsIDExKTsKKy0gICAgYXNz ZXJ0X2VxISh4LjEyLCAxMik7CistICAgIGFzc2VydF9lcSEoeC4xMywgMTMpOworLSAgICBhc3Nl cnRfZXEhKHguMTQsIDE0KTsKKy0gICAgYXNzZXJ0X2VxISh4LjE1LCAxNSk7CistCistICAgICNb cnVzdGZtdDo6c2tpcF0KKy0gICAgbGV0IHkgPSAoCistICAgICAgICAxNSwgMTQsIDEzLCAxMiwg MTEsIDEwLCA5LCA4LAorLSAgICAgICAgNywgNiwgNSwgNCwgMywgMiwgMSwgMAorLSAgICApOwor LSAgICBsZXQgejogaTh4MTYgPSB1bnNhZmUgeyBCIHsgZGF0YTogeSB9LnZlYyB9OworLSAgICAj W3J1c3RmbXQ6OnNraXBdCistICAgIGxldCBlID0gaTh4MTY6Om5ldygKKy0gICAgICAgIDE1LCAx NCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsCistICAgICAgICA3LCA2LCA1LCA0LCAzLCAyLCAxLCAw CistICAgICk7CistICAgIGFzc2VydF9lcSEoZSwgeik7CistCistICAgICNbcnVzdGZtdDo6c2tp cF0KKy0gICAgdHlwZSBJMTZ4OFQgPSAoaTE2LCBpMTYsIGkxNiwgaTE2LCBpMTYsIGkxNiwgaTE2 LCBpMTYpOworLSAgICB1bmlvbiBDIHsKKy0gICAgICAgIGRhdGE6IEkxNng4VCwKKy0gICAgICAg IHZlYzogaTh4MTYsCistICAgIH0KKy0KKy0gICAgI1tydXN0Zm10Ojpza2lwXQorLSAgICBsZXQg eCA9IGk4eDE2OjpuZXcoCistICAgICAgICAwLCAxLCAyLCAzLCA0LCA1LCA2LCA3LAorLSAgICAg ICAgOCwgOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwKKy0gICAgKTsKKy0gICAgbGV0IHg6IEkx Nng4VCA9IHVuc2FmZSB7IEMgeyB2ZWM6IHggfS5kYXRhIH07CistCistICAgIGxldCBlOiBbaTE2 OyA4XSA9IGlmIGNmZyEodGFyZ2V0X2VuZGlhbiA9ICJsaXR0bGUiKSB7CistICAgICAgICBbMjU2 LCA3NzAsIDEyODQsIDE3OTgsIDIzMTIsIDI4MjYsIDMzNDAsIDM4NTRdCistICAgIH0gZWxzZSB7 CistICAgICAgICBbMSwgNTE1LCAxMDI5LCAxNTQzLCAyMDU3LCAyNTcxLCAzMDg1LCAzNTk5XQor LSAgICB9OworLSAgICBhc3NlcnRfZXEhKHguMCwgZVswXSk7CistICAgIGFzc2VydF9lcSEoeC4x LCBlWzFdKTsKKy0gICAgYXNzZXJ0X2VxISh4LjIsIGVbMl0pOworLSAgICBhc3NlcnRfZXEhKHgu MywgZVszXSk7CistICAgIGFzc2VydF9lcSEoeC40LCBlWzRdKTsKKy0gICAgYXNzZXJ0X2VxISh4 LjUsIGVbNV0pOworLSAgICBhc3NlcnRfZXEhKHguNiwgZVs2XSk7CistICAgIGFzc2VydF9lcSEo eC43LCBlWzddKTsKKy0KKy0gICAgI1tydXN0Zm10Ojpza2lwXQorLSAgICAjW3JlcHIoQyldCist ICAgICNbZGVyaXZlKENvcHkgLENsb25lKV0KKy0gICAgcHViIHN0cnVjdCBUdXAocHViIGk4LCBw dWIgaTgsIHB1YiBpMTYsIHB1YiBpOCwgcHViIGk4LCBwdWIgaTE2LAorLSAgICAgICAgICAgICAg ICAgICBwdWIgaTgsIHB1YiBpOCwgcHViIGkxNiwgcHViIGk4LCBwdWIgaTgsIHB1YiBpMTYpOwor LQorLSAgICB1bmlvbiBEIHsKKy0gICAgICAgIGRhdGE6IFR1cCwKKy0gICAgICAgIHZlYzogaTh4 MTYsCistICAgIH0KKy0KKy0gICAgI1tydXN0Zm10Ojpza2lwXQorLSAgICBsZXQgeCA9IGk4eDE2 OjpuZXcoCistICAgICAgICAwLCAxLCAyLCAzLCA0LCA1LCA2LCA3LAorLSAgICAgICAgOCwgOSwg MTAsIDExLCAxMiwgMTMsIDE0LCAxNSwKKy0gICAgKTsKKy0gICAgbGV0IHg6IFR1cCA9IHVuc2Fm ZSB7IEQgeyB2ZWM6IHggfS5kYXRhIH07CistCistICAgIGxldCBlOiBbaTE2OyAxMl0gPSBpZiBj ZmchKHRhcmdldF9lbmRpYW4gPSAibGl0dGxlIikgeworLSAgICAgICAgWzAsIDEsIDc3MCwgNCwg NSwgMTc5OCwgOCwgOSwgMjgyNiwgMTIsIDEzLCAzODU0XQorLSAgICB9IGVsc2UgeworLSAgICAg ICAgWzAsIDEsIDUxNSwgNCwgNSwgMTU0MywgOCwgOSwgMjU3MSwgMTIsIDEzLCAzNTk5XQorLSAg ICB9OworLSAgICBhc3NlcnRfZXEhKHguMCBhcyBpMTYsIGVbMF0pOworLSAgICBhc3NlcnRfZXEh KHguMSBhcyBpMTYsIGVbMV0pOworLSAgICBhc3NlcnRfZXEhKHguMiBhcyBpMTYsIGVbMl0pOwor LSAgICBhc3NlcnRfZXEhKHguMyBhcyBpMTYsIGVbM10pOworLSAgICBhc3NlcnRfZXEhKHguNCBh cyBpMTYsIGVbNF0pOworLSAgICBhc3NlcnRfZXEhKHguNSBhcyBpMTYsIGVbNV0pOworLSAgICBh c3NlcnRfZXEhKHguNiBhcyBpMTYsIGVbNl0pOworLSAgICBhc3NlcnRfZXEhKHguNyBhcyBpMTYs IGVbN10pOworLSAgICBhc3NlcnRfZXEhKHguOCBhcyBpMTYsIGVbOF0pOworLSAgICBhc3NlcnRf ZXEhKHguOSBhcyBpMTYsIGVbOV0pOworLSAgICBhc3NlcnRfZXEhKHguMTAgYXMgaTE2LCBlWzEw XSk7CistICAgIGFzc2VydF9lcSEoeC4xMSBhcyBpMTYsIGVbMTFdKTsKKy19CitkaWZmIC0tZ2l0 IGEvdGhpcmRfcGFydHkvcnVzdC92ZXJzaW9uX2NoZWNrLy5jYXJnby1jaGVja3N1bS5qc29uIGIv dGhpcmRfcGFydHkvcnVzdC92ZXJzaW9uX2NoZWNrLy5jYXJnby1jaGVja3N1bS5qc29uCituZXcg ZmlsZSBtb2RlIDEwMDY0NAorLS0tIC9kZXYvbnVsbAorKysrIGIvdGhpcmRfcGFydHkvcnVzdC92 ZXJzaW9uX2NoZWNrLy5jYXJnby1jaGVja3N1bS5qc29uCitAQCAtMCwwICsxLDEgQEAKKyt7ImZp bGVzIjp7IkNhcmdvLnRvbWwiOiJmMjVkODgwNDQ5MTRjYjM0NjZkZjQzYmMzOWExOTllMTU4OWRk YTFhYWQzMjI2YzljN2U3YWM0ZDJmODc1MWQwIiwiTElDRU5TRS1BUEFDSEUiOiJhNjBlZWE4MTc1 MTQ1MzE2NjhkN2UwMDc2NTczMTQ0OWZlMTRkMDU5ZDMyNDllMGJjOTNiMzZkZTQ1Zjc1OWYyIiwi TElDRU5TRS1NSVQiOiJiN2U2NTBmM2ZjZTVjNTMyNDlkMWNkYzYwOGI1NGRmMTU2YTk3ZWRkNjM2 Y2Y5ZDIzNDk4ZDBjZmU3YWVjNjNlIiwiUkVBRE1FLm1kIjoiYWMyYTBhMzYwODEyNDM2YmQ1Nzk4 ZjVmZTJhZmZlN2Q2ZWQ5ZWI3ZjE1ZDZlNGQ3MzkzMWU5NWI0Mzc1NjBmMiIsInNyYy9jaGFubmVs LnJzIjoiZDI0NDNkNTAzZDRjYzQ2OWExNzFhNTFhMjZlY2EzZWMwZDJhNThiNWY3Mzc1YTg0NTQy YzM2ZjE0MjE3NjZhOCIsInNyYy9kYXRlLnJzIjoiMDk1ODBhMGEyMDA4ZmFkMmNjYmM0M2ZiNDJh ODhmNDIyMjFiOThiMDE2OTI3MDIwMjJhMjk2ZGM5Yzg2YmYzNyIsInNyYy9saWIucnMiOiI3NjBm MGQyOTU2N2VjYWE2MTI4NzA4OGNmMjNjZjc0YjNjMGVmYmJjZDMwNzdjZWE1ZmI3Yzg4MzU5ZTk2 YzdlIiwic3JjL3ZlcnNpb24ucnMiOiJkYmExOGEyNTk4M2VjNmUzN2I5NTJmNGNkYzUyMTljOWU1 YWJiYTJjM2E3NmNlZjg3NDY1ZTFmYmE2ZjhhYzg5In0sInBhY2thZ2UiOiI0OTg3NGI1MTY3YjY1 ZDcxOTNiOGFiYTE1NjdmNWM3ZDkzZDAwMWNhZmMzNDYwMGNlZTAwM2VkYTc4N2U0ODNmIn0KK1wg Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3Qv dmVyc2lvbl9jaGVjay9DYXJnby50b21sIGIvdGhpcmRfcGFydHkvcnVzdC92ZXJzaW9uX2NoZWNr L0NhcmdvLnRvbWwKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CistLS0gL2Rldi9udWxsCisrKysgYi90 aGlyZF9wYXJ0eS9ydXN0L3ZlcnNpb25fY2hlY2svQ2FyZ28udG9tbAorQEAgLTAsMCArMSwyNCBA QAorKyMgVEhJUyBGSUxFIElTIEFVVE9NQVRJQ0FMTFkgR0VORVJBVEVEIEJZIENBUkdPCisrIwor KyMgV2hlbiB1cGxvYWRpbmcgY3JhdGVzIHRvIHRoZSByZWdpc3RyeSBDYXJnbyB3aWxsIGF1dG9t YXRpY2FsbHkKKysjICJub3JtYWxpemUiIENhcmdvLnRvbWwgZmlsZXMgZm9yIG1heGltYWwgY29t cGF0aWJpbGl0eQorKyMgd2l0aCBhbGwgdmVyc2lvbnMgb2YgQ2FyZ28gYW5kIGFsc28gcmV3cml0 ZSBgcGF0aGAgZGVwZW5kZW5jaWVzCisrIyB0byByZWdpc3RyeSAoZS5nLiwgY3JhdGVzLmlvKSBk ZXBlbmRlbmNpZXMuCisrIworKyMgSWYgeW91IGFyZSByZWFkaW5nIHRoaXMgZmlsZSBiZSBhd2Fy ZSB0aGF0IHRoZSBvcmlnaW5hbCBDYXJnby50b21sCisrIyB3aWxsIGxpa2VseSBsb29rIHZlcnkg ZGlmZmVyZW50IChhbmQgbXVjaCBtb3JlIHJlYXNvbmFibGUpLgorKyMgU2VlIENhcmdvLnRvbWwu b3JpZyBmb3IgdGhlIG9yaWdpbmFsIGNvbnRlbnRzLgorKworK1twYWNrYWdlXQorK25hbWUgPSAi dmVyc2lvbl9jaGVjayIKKyt2ZXJzaW9uID0gIjAuOS40IgorK2F1dGhvcnMgPSBbIlNlcmdpbyBC ZW5pdGV6IDxzYkBzZXJnaW8uYno+Il0KKytleGNsdWRlID0gWyJzdGF0aWMiXQorK2Rlc2NyaXB0 aW9uID0gIlRpbnkgY3JhdGUgdG8gY2hlY2sgdGhlIHZlcnNpb24gb2YgdGhlIGluc3RhbGxlZC9y dW5uaW5nIHJ1c3RjLiIKKytkb2N1bWVudGF0aW9uID0gImh0dHBzOi8vZG9jcy5ycy92ZXJzaW9u X2NoZWNrLyIKKytyZWFkbWUgPSAiUkVBRE1FLm1kIgorK2tleXdvcmRzID0gWyJ2ZXJzaW9uIiwg InJ1c3RjIiwgIm1pbmltdW0iLCAiY2hlY2siXQorK2xpY2Vuc2UgPSAiTUlUL0FwYWNoZS0yLjAi CisrcmVwb3NpdG9yeSA9ICJodHRwczovL2dpdGh1Yi5jb20vU2VyZ2lvQmVuaXRlei92ZXJzaW9u X2NoZWNrIgorKworK1tkZXBlbmRlbmNpZXNdCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVz dC92ZXJzaW9uX2NoZWNrL0xJQ0VOU0UtQVBBQ0hFIGIvdGhpcmRfcGFydHkvcnVzdC92ZXJzaW9u X2NoZWNrL0xJQ0VOU0UtQVBBQ0hFCituZXcgZmlsZSBtb2RlIDEwMDY0NAorLS0tIC9kZXYvbnVs bAorKysrIGIvdGhpcmRfcGFydHkvcnVzdC92ZXJzaW9uX2NoZWNrL0xJQ0VOU0UtQVBBQ0hFCitA QCAtMCwwICsxLDIwMSBAQAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFwYWNoZSBM aWNlbnNlCisrICAgICAgICAgICAgICAgICAgICAgICAgVmVyc2lvbiAyLjAsIEphbnVhcnkgMjAw NAorKyAgICAgICAgICAgICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy8K KysKKytURVJNUyBBTkQgQ09ORElUSU9OUyBGT1IgVVNFLCBSRVBST0RVQ1RJT04sIEFORCBESVNU UklCVVRJT04KKysKKysxLiBEZWZpbml0aW9ucy4KKysKKysgICAiTGljZW5zZSIgc2hhbGwgbWVh biB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgZm9yIHVzZSwgcmVwcm9kdWN0aW9uLAorKyAgIGFu ZCBkaXN0cmlidXRpb24gYXMgZGVmaW5lZCBieSBTZWN0aW9ucyAxIHRocm91Z2ggOSBvZiB0aGlz IGRvY3VtZW50LgorKworKyAgICJMaWNlbnNvciIgc2hhbGwgbWVhbiB0aGUgY29weXJpZ2h0IG93 bmVyIG9yIGVudGl0eSBhdXRob3JpemVkIGJ5CisrICAgdGhlIGNvcHlyaWdodCBvd25lciB0aGF0 IGlzIGdyYW50aW5nIHRoZSBMaWNlbnNlLgorKworKyAgICJMZWdhbCBFbnRpdHkiIHNoYWxsIG1l YW4gdGhlIHVuaW9uIG9mIHRoZSBhY3RpbmcgZW50aXR5IGFuZCBhbGwKKysgICBvdGhlciBlbnRp dGllcyB0aGF0IGNvbnRyb2wsIGFyZSBjb250cm9sbGVkIGJ5LCBvciBhcmUgdW5kZXIgY29tbW9u CisrICAgY29udHJvbCB3aXRoIHRoYXQgZW50aXR5LiBGb3IgdGhlIHB1cnBvc2VzIG9mIHRoaXMg ZGVmaW5pdGlvbiwKKysgICAiY29udHJvbCIgbWVhbnMgKGkpIHRoZSBwb3dlciwgZGlyZWN0IG9y IGluZGlyZWN0LCB0byBjYXVzZSB0aGUKKysgICBkaXJlY3Rpb24gb3IgbWFuYWdlbWVudCBvZiBz dWNoIGVudGl0eSwgd2hldGhlciBieSBjb250cmFjdCBvcgorKyAgIG90aGVyd2lzZSwgb3IgKGlp KSBvd25lcnNoaXAgb2YgZmlmdHkgcGVyY2VudCAoNTAlKSBvciBtb3JlIG9mIHRoZQorKyAgIG91 dHN0YW5kaW5nIHNoYXJlcywgb3IgKGlpaSkgYmVuZWZpY2lhbCBvd25lcnNoaXAgb2Ygc3VjaCBl bnRpdHkuCisrCisrICAgIllvdSIgKG9yICJZb3VyIikgc2hhbGwgbWVhbiBhbiBpbmRpdmlkdWFs IG9yIExlZ2FsIEVudGl0eQorKyAgIGV4ZXJjaXNpbmcgcGVybWlzc2lvbnMgZ3JhbnRlZCBieSB0 aGlzIExpY2Vuc2UuCisrCisrICAgIlNvdXJjZSIgZm9ybSBzaGFsbCBtZWFuIHRoZSBwcmVmZXJy ZWQgZm9ybSBmb3IgbWFraW5nIG1vZGlmaWNhdGlvbnMsCisrICAgaW5jbHVkaW5nIGJ1dCBub3Qg bGltaXRlZCB0byBzb2Z0d2FyZSBzb3VyY2UgY29kZSwgZG9jdW1lbnRhdGlvbgorKyAgIHNvdXJj ZSwgYW5kIGNvbmZpZ3VyYXRpb24gZmlsZXMuCisrCisrICAgIk9iamVjdCIgZm9ybSBzaGFsbCBt ZWFuIGFueSBmb3JtIHJlc3VsdGluZyBmcm9tIG1lY2hhbmljYWwKKysgICB0cmFuc2Zvcm1hdGlv biBvciB0cmFuc2xhdGlvbiBvZiBhIFNvdXJjZSBmb3JtLCBpbmNsdWRpbmcgYnV0CisrICAgbm90 IGxpbWl0ZWQgdG8gY29tcGlsZWQgb2JqZWN0IGNvZGUsIGdlbmVyYXRlZCBkb2N1bWVudGF0aW9u LAorKyAgIGFuZCBjb252ZXJzaW9ucyB0byBvdGhlciBtZWRpYSB0eXBlcy4KKysKKysgICAiV29y ayIgc2hhbGwgbWVhbiB0aGUgd29yayBvZiBhdXRob3JzaGlwLCB3aGV0aGVyIGluIFNvdXJjZSBv cgorKyAgIE9iamVjdCBmb3JtLCBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgTGljZW5zZSwgYXMg aW5kaWNhdGVkIGJ5IGEKKysgICBjb3B5cmlnaHQgbm90aWNlIHRoYXQgaXMgaW5jbHVkZWQgaW4g b3IgYXR0YWNoZWQgdG8gdGhlIHdvcmsKKysgICAoYW4gZXhhbXBsZSBpcyBwcm92aWRlZCBpbiB0 aGUgQXBwZW5kaXggYmVsb3cpLgorKworKyAgICJEZXJpdmF0aXZlIFdvcmtzIiBzaGFsbCBtZWFu IGFueSB3b3JrLCB3aGV0aGVyIGluIFNvdXJjZSBvciBPYmplY3QKKysgICBmb3JtLCB0aGF0IGlz IGJhc2VkIG9uIChvciBkZXJpdmVkIGZyb20pIHRoZSBXb3JrIGFuZCBmb3Igd2hpY2ggdGhlCisr ICAgZWRpdG9yaWFsIHJldmlzaW9ucywgYW5ub3RhdGlvbnMsIGVsYWJvcmF0aW9ucywgb3Igb3Ro ZXIgbW9kaWZpY2F0aW9ucworKyAgIHJlcHJlc2VudCwgYXMgYSB3aG9sZSwgYW4gb3JpZ2luYWwg d29yayBvZiBhdXRob3JzaGlwLiBGb3IgdGhlIHB1cnBvc2VzCisrICAgb2YgdGhpcyBMaWNlbnNl LCBEZXJpdmF0aXZlIFdvcmtzIHNoYWxsIG5vdCBpbmNsdWRlIHdvcmtzIHRoYXQgcmVtYWluCisr ICAgc2VwYXJhYmxlIGZyb20sIG9yIG1lcmVseSBsaW5rIChvciBiaW5kIGJ5IG5hbWUpIHRvIHRo ZSBpbnRlcmZhY2VzIG9mLAorKyAgIHRoZSBXb3JrIGFuZCBEZXJpdmF0aXZlIFdvcmtzIHRoZXJl b2YuCisrCisrICAgIkNvbnRyaWJ1dGlvbiIgc2hhbGwgbWVhbiBhbnkgd29yayBvZiBhdXRob3Jz aGlwLCBpbmNsdWRpbmcKKysgICB0aGUgb3JpZ2luYWwgdmVyc2lvbiBvZiB0aGUgV29yayBhbmQg YW55IG1vZGlmaWNhdGlvbnMgb3IgYWRkaXRpb25zCisrICAgdG8gdGhhdCBXb3JrIG9yIERlcml2 YXRpdmUgV29ya3MgdGhlcmVvZiwgdGhhdCBpcyBpbnRlbnRpb25hbGx5CisrICAgc3VibWl0dGVk IHRvIExpY2Vuc29yIGZvciBpbmNsdXNpb24gaW4gdGhlIFdvcmsgYnkgdGhlIGNvcHlyaWdodCBv d25lcgorKyAgIG9yIGJ5IGFuIGluZGl2aWR1YWwgb3IgTGVnYWwgRW50aXR5IGF1dGhvcml6ZWQg dG8gc3VibWl0IG9uIGJlaGFsZiBvZgorKyAgIHRoZSBjb3B5cmlnaHQgb3duZXIuIEZvciB0aGUg cHVycG9zZXMgb2YgdGhpcyBkZWZpbml0aW9uLCAic3VibWl0dGVkIgorKyAgIG1lYW5zIGFueSBm b3JtIG9mIGVsZWN0cm9uaWMsIHZlcmJhbCwgb3Igd3JpdHRlbiBjb21tdW5pY2F0aW9uIHNlbnQK KysgICB0byB0aGUgTGljZW5zb3Igb3IgaXRzIHJlcHJlc2VudGF0aXZlcywgaW5jbHVkaW5nIGJ1 dCBub3QgbGltaXRlZCB0bworKyAgIGNvbW11bmljYXRpb24gb24gZWxlY3Ryb25pYyBtYWlsaW5n IGxpc3RzLCBzb3VyY2UgY29kZSBjb250cm9sIHN5c3RlbXMsCisrICAgYW5kIGlzc3VlIHRyYWNr aW5nIHN5c3RlbXMgdGhhdCBhcmUgbWFuYWdlZCBieSwgb3Igb24gYmVoYWxmIG9mLCB0aGUKKysg ICBMaWNlbnNvciBmb3IgdGhlIHB1cnBvc2Ugb2YgZGlzY3Vzc2luZyBhbmQgaW1wcm92aW5nIHRo ZSBXb3JrLCBidXQKKysgICBleGNsdWRpbmcgY29tbXVuaWNhdGlvbiB0aGF0IGlzIGNvbnNwaWN1 b3VzbHkgbWFya2VkIG9yIG90aGVyd2lzZQorKyAgIGRlc2lnbmF0ZWQgaW4gd3JpdGluZyBieSB0 aGUgY29weXJpZ2h0IG93bmVyIGFzICJOb3QgYSBDb250cmlidXRpb24uIgorKworKyAgICJDb250 cmlidXRvciIgc2hhbGwgbWVhbiBMaWNlbnNvciBhbmQgYW55IGluZGl2aWR1YWwgb3IgTGVnYWwg RW50aXR5CisrICAgb24gYmVoYWxmIG9mIHdob20gYSBDb250cmlidXRpb24gaGFzIGJlZW4gcmVj ZWl2ZWQgYnkgTGljZW5zb3IgYW5kCisrICAgc3Vic2VxdWVudGx5IGluY29ycG9yYXRlZCB3aXRo aW4gdGhlIFdvcmsuCisrCisrMi4gR3JhbnQgb2YgQ29weXJpZ2h0IExpY2Vuc2UuIFN1YmplY3Qg dG8gdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mCisrICAgdGhpcyBMaWNlbnNlLCBlYWNoIENv bnRyaWJ1dG9yIGhlcmVieSBncmFudHMgdG8gWW91IGEgcGVycGV0dWFsLAorKyAgIHdvcmxkd2lk ZSwgbm9uLWV4Y2x1c2l2ZSwgbm8tY2hhcmdlLCByb3lhbHR5LWZyZWUsIGlycmV2b2NhYmxlCisr ICAgY29weXJpZ2h0IGxpY2Vuc2UgdG8gcmVwcm9kdWNlLCBwcmVwYXJlIERlcml2YXRpdmUgV29y a3Mgb2YsCisrICAgcHVibGljbHkgZGlzcGxheSwgcHVibGljbHkgcGVyZm9ybSwgc3VibGljZW5z ZSwgYW5kIGRpc3RyaWJ1dGUgdGhlCisrICAgV29yayBhbmQgc3VjaCBEZXJpdmF0aXZlIFdvcmtz IGluIFNvdXJjZSBvciBPYmplY3QgZm9ybS4KKysKKyszLiBHcmFudCBvZiBQYXRlbnQgTGljZW5z ZS4gU3ViamVjdCB0byB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YKKysgICB0aGlzIExpY2Vu c2UsIGVhY2ggQ29udHJpYnV0b3IgaGVyZWJ5IGdyYW50cyB0byBZb3UgYSBwZXJwZXR1YWwsCisr ICAgd29ybGR3aWRlLCBub24tZXhjbHVzaXZlLCBuby1jaGFyZ2UsIHJveWFsdHktZnJlZSwgaXJy ZXZvY2FibGUKKysgICAoZXhjZXB0IGFzIHN0YXRlZCBpbiB0aGlzIHNlY3Rpb24pIHBhdGVudCBs aWNlbnNlIHRvIG1ha2UsIGhhdmUgbWFkZSwKKysgICB1c2UsIG9mZmVyIHRvIHNlbGwsIHNlbGws IGltcG9ydCwgYW5kIG90aGVyd2lzZSB0cmFuc2ZlciB0aGUgV29yaywKKysgICB3aGVyZSBzdWNo IGxpY2Vuc2UgYXBwbGllcyBvbmx5IHRvIHRob3NlIHBhdGVudCBjbGFpbXMgbGljZW5zYWJsZQor KyAgIGJ5IHN1Y2ggQ29udHJpYnV0b3IgdGhhdCBhcmUgbmVjZXNzYXJpbHkgaW5mcmluZ2VkIGJ5 IHRoZWlyCisrICAgQ29udHJpYnV0aW9uKHMpIGFsb25lIG9yIGJ5IGNvbWJpbmF0aW9uIG9mIHRo ZWlyIENvbnRyaWJ1dGlvbihzKQorKyAgIHdpdGggdGhlIFdvcmsgdG8gd2hpY2ggc3VjaCBDb250 cmlidXRpb24ocykgd2FzIHN1Ym1pdHRlZC4gSWYgWW91CisrICAgaW5zdGl0dXRlIHBhdGVudCBs aXRpZ2F0aW9uIGFnYWluc3QgYW55IGVudGl0eSAoaW5jbHVkaW5nIGEKKysgICBjcm9zcy1jbGFp bSBvciBjb3VudGVyY2xhaW0gaW4gYSBsYXdzdWl0KSBhbGxlZ2luZyB0aGF0IHRoZSBXb3JrCisr ICAgb3IgYSBDb250cmlidXRpb24gaW5jb3Jwb3JhdGVkIHdpdGhpbiB0aGUgV29yayBjb25zdGl0 dXRlcyBkaXJlY3QKKysgICBvciBjb250cmlidXRvcnkgcGF0ZW50IGluZnJpbmdlbWVudCwgdGhl biBhbnkgcGF0ZW50IGxpY2Vuc2VzCisrICAgZ3JhbnRlZCB0byBZb3UgdW5kZXIgdGhpcyBMaWNl bnNlIGZvciB0aGF0IFdvcmsgc2hhbGwgdGVybWluYXRlCisrICAgYXMgb2YgdGhlIGRhdGUgc3Vj aCBsaXRpZ2F0aW9uIGlzIGZpbGVkLgorKworKzQuIFJlZGlzdHJpYnV0aW9uLiBZb3UgbWF5IHJl cHJvZHVjZSBhbmQgZGlzdHJpYnV0ZSBjb3BpZXMgb2YgdGhlCisrICAgV29yayBvciBEZXJpdmF0 aXZlIFdvcmtzIHRoZXJlb2YgaW4gYW55IG1lZGl1bSwgd2l0aCBvciB3aXRob3V0CisrICAgbW9k aWZpY2F0aW9ucywgYW5kIGluIFNvdXJjZSBvciBPYmplY3QgZm9ybSwgcHJvdmlkZWQgdGhhdCBZ b3UKKysgICBtZWV0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKysKKysgICAoYSkgWW91IG11 c3QgZ2l2ZSBhbnkgb3RoZXIgcmVjaXBpZW50cyBvZiB0aGUgV29yayBvcgorKyAgICAgICBEZXJp dmF0aXZlIFdvcmtzIGEgY29weSBvZiB0aGlzIExpY2Vuc2U7IGFuZAorKworKyAgIChiKSBZb3Ug bXVzdCBjYXVzZSBhbnkgbW9kaWZpZWQgZmlsZXMgdG8gY2FycnkgcHJvbWluZW50IG5vdGljZXMK KysgICAgICAgc3RhdGluZyB0aGF0IFlvdSBjaGFuZ2VkIHRoZSBmaWxlczsgYW5kCisrCisrICAg KGMpIFlvdSBtdXN0IHJldGFpbiwgaW4gdGhlIFNvdXJjZSBmb3JtIG9mIGFueSBEZXJpdmF0aXZl IFdvcmtzCisrICAgICAgIHRoYXQgWW91IGRpc3RyaWJ1dGUsIGFsbCBjb3B5cmlnaHQsIHBhdGVu dCwgdHJhZGVtYXJrLCBhbmQKKysgICAgICAgYXR0cmlidXRpb24gbm90aWNlcyBmcm9tIHRoZSBT b3VyY2UgZm9ybSBvZiB0aGUgV29yaywKKysgICAgICAgZXhjbHVkaW5nIHRob3NlIG5vdGljZXMg dGhhdCBkbyBub3QgcGVydGFpbiB0byBhbnkgcGFydCBvZgorKyAgICAgICB0aGUgRGVyaXZhdGl2 ZSBXb3JrczsgYW5kCisrCisrICAgKGQpIElmIHRoZSBXb3JrIGluY2x1ZGVzIGEgIk5PVElDRSIg dGV4dCBmaWxlIGFzIHBhcnQgb2YgaXRzCisrICAgICAgIGRpc3RyaWJ1dGlvbiwgdGhlbiBhbnkg RGVyaXZhdGl2ZSBXb3JrcyB0aGF0IFlvdSBkaXN0cmlidXRlIG11c3QKKysgICAgICAgaW5jbHVk ZSBhIHJlYWRhYmxlIGNvcHkgb2YgdGhlIGF0dHJpYnV0aW9uIG5vdGljZXMgY29udGFpbmVkCisr ICAgICAgIHdpdGhpbiBzdWNoIE5PVElDRSBmaWxlLCBleGNsdWRpbmcgdGhvc2Ugbm90aWNlcyB0 aGF0IGRvIG5vdAorKyAgICAgICBwZXJ0YWluIHRvIGFueSBwYXJ0IG9mIHRoZSBEZXJpdmF0aXZl IFdvcmtzLCBpbiBhdCBsZWFzdCBvbmUKKysgICAgICAgb2YgdGhlIGZvbGxvd2luZyBwbGFjZXM6 IHdpdGhpbiBhIE5PVElDRSB0ZXh0IGZpbGUgZGlzdHJpYnV0ZWQKKysgICAgICAgYXMgcGFydCBv ZiB0aGUgRGVyaXZhdGl2ZSBXb3Jrczsgd2l0aGluIHRoZSBTb3VyY2UgZm9ybSBvcgorKyAgICAg ICBkb2N1bWVudGF0aW9uLCBpZiBwcm92aWRlZCBhbG9uZyB3aXRoIHRoZSBEZXJpdmF0aXZlIFdv cmtzOyBvciwKKysgICAgICAgd2l0aGluIGEgZGlzcGxheSBnZW5lcmF0ZWQgYnkgdGhlIERlcml2 YXRpdmUgV29ya3MsIGlmIGFuZAorKyAgICAgICB3aGVyZXZlciBzdWNoIHRoaXJkLXBhcnR5IG5v dGljZXMgbm9ybWFsbHkgYXBwZWFyLiBUaGUgY29udGVudHMKKysgICAgICAgb2YgdGhlIE5PVElD RSBmaWxlIGFyZSBmb3IgaW5mb3JtYXRpb25hbCBwdXJwb3NlcyBvbmx5IGFuZAorKyAgICAgICBk byBub3QgbW9kaWZ5IHRoZSBMaWNlbnNlLiBZb3UgbWF5IGFkZCBZb3VyIG93biBhdHRyaWJ1dGlv bgorKyAgICAgICBub3RpY2VzIHdpdGhpbiBEZXJpdmF0aXZlIFdvcmtzIHRoYXQgWW91IGRpc3Ry aWJ1dGUsIGFsb25nc2lkZQorKyAgICAgICBvciBhcyBhbiBhZGRlbmR1bSB0byB0aGUgTk9USUNF IHRleHQgZnJvbSB0aGUgV29yaywgcHJvdmlkZWQKKysgICAgICAgdGhhdCBzdWNoIGFkZGl0aW9u YWwgYXR0cmlidXRpb24gbm90aWNlcyBjYW5ub3QgYmUgY29uc3RydWVkCisrICAgICAgIGFzIG1v ZGlmeWluZyB0aGUgTGljZW5zZS4KKysKKysgICBZb3UgbWF5IGFkZCBZb3VyIG93biBjb3B5cmln aHQgc3RhdGVtZW50IHRvIFlvdXIgbW9kaWZpY2F0aW9ucyBhbmQKKysgICBtYXkgcHJvdmlkZSBh ZGRpdGlvbmFsIG9yIGRpZmZlcmVudCBsaWNlbnNlIHRlcm1zIGFuZCBjb25kaXRpb25zCisrICAg Zm9yIHVzZSwgcmVwcm9kdWN0aW9uLCBvciBkaXN0cmlidXRpb24gb2YgWW91ciBtb2RpZmljYXRp b25zLCBvcgorKyAgIGZvciBhbnkgc3VjaCBEZXJpdmF0aXZlIFdvcmtzIGFzIGEgd2hvbGUsIHBy b3ZpZGVkIFlvdXIgdXNlLAorKyAgIHJlcHJvZHVjdGlvbiwgYW5kIGRpc3RyaWJ1dGlvbiBvZiB0 aGUgV29yayBvdGhlcndpc2UgY29tcGxpZXMgd2l0aAorKyAgIHRoZSBjb25kaXRpb25zIHN0YXRl ZCBpbiB0aGlzIExpY2Vuc2UuCisrCisrNS4gU3VibWlzc2lvbiBvZiBDb250cmlidXRpb25zLiBV bmxlc3MgWW91IGV4cGxpY2l0bHkgc3RhdGUgb3RoZXJ3aXNlLAorKyAgIGFueSBDb250cmlidXRp b24gaW50ZW50aW9uYWxseSBzdWJtaXR0ZWQgZm9yIGluY2x1c2lvbiBpbiB0aGUgV29yaworKyAg IGJ5IFlvdSB0byB0aGUgTGljZW5zb3Igc2hhbGwgYmUgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25k aXRpb25zIG9mCisrICAgdGhpcyBMaWNlbnNlLCB3aXRob3V0IGFueSBhZGRpdGlvbmFsIHRlcm1z IG9yIGNvbmRpdGlvbnMuCisrICAgTm90d2l0aHN0YW5kaW5nIHRoZSBhYm92ZSwgbm90aGluZyBo ZXJlaW4gc2hhbGwgc3VwZXJzZWRlIG9yIG1vZGlmeQorKyAgIHRoZSB0ZXJtcyBvZiBhbnkgc2Vw YXJhdGUgbGljZW5zZSBhZ3JlZW1lbnQgeW91IG1heSBoYXZlIGV4ZWN1dGVkCisrICAgd2l0aCBM aWNlbnNvciByZWdhcmRpbmcgc3VjaCBDb250cmlidXRpb25zLgorKworKzYuIFRyYWRlbWFya3Mu IFRoaXMgTGljZW5zZSBkb2VzIG5vdCBncmFudCBwZXJtaXNzaW9uIHRvIHVzZSB0aGUgdHJhZGUK KysgICBuYW1lcywgdHJhZGVtYXJrcywgc2VydmljZSBtYXJrcywgb3IgcHJvZHVjdCBuYW1lcyBv ZiB0aGUgTGljZW5zb3IsCisrICAgZXhjZXB0IGFzIHJlcXVpcmVkIGZvciByZWFzb25hYmxlIGFu ZCBjdXN0b21hcnkgdXNlIGluIGRlc2NyaWJpbmcgdGhlCisrICAgb3JpZ2luIG9mIHRoZSBXb3Jr IGFuZCByZXByb2R1Y2luZyB0aGUgY29udGVudCBvZiB0aGUgTk9USUNFIGZpbGUuCisrCisrNy4g RGlzY2xhaW1lciBvZiBXYXJyYW50eS4gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3 IG9yCisrICAgYWdyZWVkIHRvIGluIHdyaXRpbmcsIExpY2Vuc29yIHByb3ZpZGVzIHRoZSBXb3Jr IChhbmQgZWFjaAorKyAgIENvbnRyaWJ1dG9yIHByb3ZpZGVzIGl0cyBDb250cmlidXRpb25zKSBv biBhbiAiQVMgSVMiIEJBU0lTLAorKyAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05T IE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvcgorKyAgIGltcGxpZWQsIGluY2x1ZGluZywg d2l0aG91dCBsaW1pdGF0aW9uLCBhbnkgd2FycmFudGllcyBvciBjb25kaXRpb25zCisrICAgb2Yg VElUTEUsIE5PTi1JTkZSSU5HRU1FTlQsIE1FUkNIQU5UQUJJTElUWSwgb3IgRklUTkVTUyBGT1Ig QQorKyAgIFBBUlRJQ1VMQVIgUFVSUE9TRS4gWW91IGFyZSBzb2xlbHkgcmVzcG9uc2libGUgZm9y IGRldGVybWluaW5nIHRoZQorKyAgIGFwcHJvcHJpYXRlbmVzcyBvZiB1c2luZyBvciByZWRpc3Ry aWJ1dGluZyB0aGUgV29yayBhbmQgYXNzdW1lIGFueQorKyAgIHJpc2tzIGFzc29jaWF0ZWQgd2l0 aCBZb3VyIGV4ZXJjaXNlIG9mIHBlcm1pc3Npb25zIHVuZGVyIHRoaXMgTGljZW5zZS4KKysKKys4 LiBMaW1pdGF0aW9uIG9mIExpYWJpbGl0eS4gSW4gbm8gZXZlbnQgYW5kIHVuZGVyIG5vIGxlZ2Fs IHRoZW9yeSwKKysgICB3aGV0aGVyIGluIHRvcnQgKGluY2x1ZGluZyBuZWdsaWdlbmNlKSwgY29u dHJhY3QsIG9yIG90aGVyd2lzZSwKKysgICB1bmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBs YXcgKHN1Y2ggYXMgZGVsaWJlcmF0ZSBhbmQgZ3Jvc3NseQorKyAgIG5lZ2xpZ2VudCBhY3RzKSBv ciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc2hhbGwgYW55IENvbnRyaWJ1dG9yIGJlCisrICAgbGlh YmxlIHRvIFlvdSBmb3IgZGFtYWdlcywgaW5jbHVkaW5nIGFueSBkaXJlY3QsIGluZGlyZWN0LCBz cGVjaWFsLAorKyAgIGluY2lkZW50YWwsIG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvZiBhbnkg Y2hhcmFjdGVyIGFyaXNpbmcgYXMgYQorKyAgIHJlc3VsdCBvZiB0aGlzIExpY2Vuc2Ugb3Igb3V0 IG9mIHRoZSB1c2Ugb3IgaW5hYmlsaXR5IHRvIHVzZSB0aGUKKysgICBXb3JrIChpbmNsdWRpbmcg YnV0IG5vdCBsaW1pdGVkIHRvIGRhbWFnZXMgZm9yIGxvc3Mgb2YgZ29vZHdpbGwsCisrICAgd29y ayBzdG9wcGFnZSwgY29tcHV0ZXIgZmFpbHVyZSBvciBtYWxmdW5jdGlvbiwgb3IgYW55IGFuZCBh bGwKKysgICBvdGhlciBjb21tZXJjaWFsIGRhbWFnZXMgb3IgbG9zc2VzKSwgZXZlbiBpZiBzdWNo IENvbnRyaWJ1dG9yCisrICAgaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2Yg c3VjaCBkYW1hZ2VzLgorKworKzkuIEFjY2VwdGluZyBXYXJyYW50eSBvciBBZGRpdGlvbmFsIExp YWJpbGl0eS4gV2hpbGUgcmVkaXN0cmlidXRpbmcKKysgICB0aGUgV29yayBvciBEZXJpdmF0aXZl IFdvcmtzIHRoZXJlb2YsIFlvdSBtYXkgY2hvb3NlIHRvIG9mZmVyLAorKyAgIGFuZCBjaGFyZ2Ug YSBmZWUgZm9yLCBhY2NlcHRhbmNlIG9mIHN1cHBvcnQsIHdhcnJhbnR5LCBpbmRlbW5pdHksCisr ICAgb3Igb3RoZXIgbGlhYmlsaXR5IG9ibGlnYXRpb25zIGFuZC9vciByaWdodHMgY29uc2lzdGVu dCB3aXRoIHRoaXMKKysgICBMaWNlbnNlLiBIb3dldmVyLCBpbiBhY2NlcHRpbmcgc3VjaCBvYmxp Z2F0aW9ucywgWW91IG1heSBhY3Qgb25seQorKyAgIG9uIFlvdXIgb3duIGJlaGFsZiBhbmQgb24g WW91ciBzb2xlIHJlc3BvbnNpYmlsaXR5LCBub3Qgb24gYmVoYWxmCisrICAgb2YgYW55IG90aGVy IENvbnRyaWJ1dG9yLCBhbmQgb25seSBpZiBZb3UgYWdyZWUgdG8gaW5kZW1uaWZ5LAorKyAgIGRl ZmVuZCwgYW5kIGhvbGQgZWFjaCBDb250cmlidXRvciBoYXJtbGVzcyBmb3IgYW55IGxpYWJpbGl0 eQorKyAgIGluY3VycmVkIGJ5LCBvciBjbGFpbXMgYXNzZXJ0ZWQgYWdhaW5zdCwgc3VjaCBDb250 cmlidXRvciBieSByZWFzb24KKysgICBvZiB5b3VyIGFjY2VwdGluZyBhbnkgc3VjaCB3YXJyYW50 eSBvciBhZGRpdGlvbmFsIGxpYWJpbGl0eS4KKysKKytFTkQgT0YgVEVSTVMgQU5EIENPTkRJVElP TlMKKysKKytBUFBFTkRJWDogSG93IHRvIGFwcGx5IHRoZSBBcGFjaGUgTGljZW5zZSB0byB5b3Vy IHdvcmsuCisrCisrICAgVG8gYXBwbHkgdGhlIEFwYWNoZSBMaWNlbnNlIHRvIHlvdXIgd29yaywg YXR0YWNoIHRoZSBmb2xsb3dpbmcKKysgICBib2lsZXJwbGF0ZSBub3RpY2UsIHdpdGggdGhlIGZp ZWxkcyBlbmNsb3NlZCBieSBicmFja2V0cyAiW10iCisrICAgcmVwbGFjZWQgd2l0aCB5b3VyIG93 biBpZGVudGlmeWluZyBpbmZvcm1hdGlvbi4gKERvbid0IGluY2x1ZGUKKysgICB0aGUgYnJhY2tl dHMhKSAgVGhlIHRleHQgc2hvdWxkIGJlIGVuY2xvc2VkIGluIHRoZSBhcHByb3ByaWF0ZQorKyAg IGNvbW1lbnQgc3ludGF4IGZvciB0aGUgZmlsZSBmb3JtYXQuIFdlIGFsc28gcmVjb21tZW5kIHRo YXQgYQorKyAgIGZpbGUgb3IgY2xhc3MgbmFtZSBhbmQgZGVzY3JpcHRpb24gb2YgcHVycG9zZSBi ZSBpbmNsdWRlZCBvbiB0aGUKKysgICBzYW1lICJwcmludGVkIHBhZ2UiIGFzIHRoZSBjb3B5cmln aHQgbm90aWNlIGZvciBlYXNpZXIKKysgICBpZGVudGlmaWNhdGlvbiB3aXRoaW4gdGhpcmQtcGFy dHkgYXJjaGl2ZXMuCisrCisrQ29weXJpZ2h0IFt5eXl5XSBbbmFtZSBvZiBjb3B5cmlnaHQgb3du ZXJdCisrCisrTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAo dGhlICJMaWNlbnNlIik7CisreW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29t cGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorK1lvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUg TGljZW5zZSBhdAorKworKwlodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0y LjAKKysKKytVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGlu IHdyaXRpbmcsIHNvZnR3YXJlCisrZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlz dHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKytXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09O RElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKytTZWUgdGhl IExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMg YW5kCisrbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCitkaWZmIC0tZ2l0IGEvdGhpcmRf cGFydHkvcnVzdC92ZXJzaW9uX2NoZWNrL0xJQ0VOU0UtTUlUIGIvdGhpcmRfcGFydHkvcnVzdC92 ZXJzaW9uX2NoZWNrL0xJQ0VOU0UtTUlUCituZXcgZmlsZSBtb2RlIDEwMDY0NAorLS0tIC9kZXYv bnVsbAorKysrIGIvdGhpcmRfcGFydHkvcnVzdC92ZXJzaW9uX2NoZWNrL0xJQ0VOU0UtTUlUCitA QCAtMCwwICsxLDE5IEBACisrVGhlIE1JVCBMaWNlbnNlIChNSVQpCisrQ29weXJpZ2h0IChjKSAy MDE3LTIwMTggU2VyZ2lvIEJlbml0ZXoKKysKKytQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVk LCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5IG9mCisrdGhp cyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3 YXJlIiksIHRvIGRlYWwgaW4KKyt0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5j bHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvCisrdXNlLCBjb3B5LCBtb2Rp ZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBj b3BpZXMgb2YKKyt0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRo ZSBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sCisrc3ViamVjdCB0byB0aGUgZm9sbG93 aW5nIGNvbmRpdGlvbnM6CisrCisrVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMg cGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsCisrY29waWVzIG9yIHN1 YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKysKKytUSEUgU09GVFdBUkUgSVMg UFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBP UgorK0lNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMg T0YgTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTCisrRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFO RCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SCisrQ09Q WVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIg TElBQklMSVRZLCBXSEVUSEVSCisrSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9U SEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KKytDT05ORUNUSU9OIFdJVEggVEhF IFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgor ZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvdmVyc2lvbl9jaGVjay9SRUFETUUubWQgYi90 aGlyZF9wYXJ0eS9ydXN0L3ZlcnNpb25fY2hlY2svUkVBRE1FLm1kCituZXcgZmlsZSBtb2RlIDEw MDY0NAorLS0tIC9kZXYvbnVsbAorKysrIGIvdGhpcmRfcGFydHkvcnVzdC92ZXJzaW9uX2NoZWNr L1JFQURNRS5tZAorQEAgLTAsMCArMSw4MCBAQAorKyMgdmVyc2lvblxfY2hlY2sKKysKKytbIVtC dWlsZCBTdGF0dXNdKGh0dHBzOi8vZ2l0aHViLmNvbS9TZXJnaW9CZW5pdGV6L3ZlcnNpb25fY2hl Y2svd29ya2Zsb3dzL0NJL2JhZGdlLnN2ZyldKGh0dHBzOi8vZ2l0aHViLmNvbS9TZXJnaW9CZW5p dGV6L3ZlcnNpb25fY2hlY2svYWN0aW9ucykKKytbIVtDdXJyZW50IENyYXRlcy5pbyBWZXJzaW9u XShodHRwczovL2ltZy5zaGllbGRzLmlvL2NyYXRlcy92L3ZlcnNpb25fY2hlY2suc3ZnKV0oaHR0 cHM6Ly9jcmF0ZXMuaW8vY3JhdGVzL3ZlcnNpb25fY2hlY2spCisrWyFbcnVzdGRvY3Mgb24gZG9j cy5yc10oaHR0cHM6Ly9kb2NzLnJzL3ZlcnNpb25fY2hlY2svYmFkZ2Uuc3ZnKV0oaHR0cHM6Ly9k b2NzLnJzL3ZlcnNpb25fY2hlY2spCisrCisrVGhpcyB0aW55IGNyYXRlIGNoZWNrcyB0aGF0IHRo ZSBydW5uaW5nIG9yIGluc3RhbGxlZCBgcnVzdGNgIG1lZXRzIHNvbWUgdmVyc2lvbgorK3JlcXVp cmVtZW50cy4gVGhlIHZlcnNpb24gaXMgcXVlcmllZCBieSBjYWxsaW5nIHRoZSBSdXN0IGNvbXBp bGVyIHdpdGgKKytgLS12ZXJzaW9uYC4gVGhlIHBhdGggdG8gdGhlIGNvbXBpbGVyIGlzIGRldGVy bWluZWQgZmlyc3QgdmlhIHRoZSBgUlVTVENgCisrZW52aXJvbm1lbnQgdmFyaWFibGUuIElmIGl0 IGlzIG5vdCBzZXQsIHRoZW4gYHJ1c3RjYCBpcyB1c2VkLiBJZiB0aGF0IGZhaWxzLCBubworK2Rl dGVybWluYXRpb24gaXMgbWFkZSwgYW5kIGNhbGxzIHJldHVybiBgTm9uZWAuCisrCisrIyMgVXNh Z2UKKysKKytBZGQgdG8geW91ciBgQ2FyZ28udG9tbGAgZmlsZSwgdHlwaWNhbGx5IGFzIGEgYnVp bGQgZGVwZW5kZW5jeToKKysKKytgYGB0b21sCisrW2J1aWxkLWRlcGVuZGVuY2llc10KKyt2ZXJz aW9uX2NoZWNrID0gIjAuOSIKKytgYGAKKysKKytgdmVyc2lvbl9jaGVja2AgaXMgY29tcGF0aWJs ZSBhbmQgY29tcGlsZXMgd2l0aCBSdXN0IDEuMC4wIGFuZCBiZXlvbmQuCisrCisrIyMgRXhhbXBs ZXMKKysKKytTZXQgYSBgY2ZnYCBmbGFnIGluIGBidWlsZC5yc2AgaWYgdGhlIHJ1bm5pbmcgY29t cGlsZXIgd2FzIGRldGVybWluZWQgdG8gYmUKKythdCBsZWFzdCB2ZXJzaW9uIGAxLjEzLjBgOgor KworK2BgYHJ1c3QKKytleHRlcm4gY3JhdGUgdmVyc2lvbl9jaGVjayBhcyBydXN0YzsKKysKKytp ZiBydXN0Yzo6aXNfbWluX3ZlcnNpb24oIjEuMTMuMCIpLnVud3JhcF9vcihmYWxzZSkgeworKyAg ICBwcmludGxuISgiY2FyZ286cnVzdGMtY2ZnPXF1ZXN0aW9uX21hcmtfb3BlcmF0b3IiKTsKKyt9 CisrYGBgCisrCisrQ2hlY2sgdGhhdCB0aGUgcnVubmluZyBjb21waWxlciB3YXMgcmVsZWFzZWQg b24gb3IgYWZ0ZXIgYDIwMTgtMTItMThgOgorKworK2BgYHJ1c3QKKytleHRlcm4gY3JhdGUgdmVy c2lvbl9jaGVjayBhcyBydXN0YzsKKysKKyttYXRjaCBydXN0Yzo6aXNfbWluX2RhdGUoIjIwMTgt MTItMTgiKSB7CisrICAgIFNvbWUodHJ1ZSkgPT4gIlllcCEgSXQncyByZWNlbnQhIiwKKysgICAg U29tZShmYWxzZSkgPT4gIk5vLCBpdCdzIG9sZGVyLiIsCisrICAgIE5vbmUgPT4gIkNvdWxkbid0 IGRldGVybWluZSB0aGUgcnVzdGMgdmVyc2lvbi4iCisrfTsKKytgYGAKKysKKytDaGVjayB0aGF0 IHRoZSBydW5uaW5nIGNvbXBpbGVyIHN1cHBvcnRzIGZlYXR1cmUgZmxhZ3M6CisrCisrYGBgcnVz dAorK2V4dGVybiBjcmF0ZSB2ZXJzaW9uX2NoZWNrIGFzIHJ1c3RjOworKworK21hdGNoIHJ1c3Rj Ojppc19mZWF0dXJlX2ZsYWdnYWJsZSgpIHsKKysgICAgU29tZSh0cnVlKSA9PiAiWWVzISBJdCdz IGEgZGV2IG9yIG5pZ2h0bHkgcmVsZWFzZSEiLAorKyAgICBTb21lKGZhbHNlKSA9PiAiTm8sIGl0 J3Mgc3RhYmxlIG9yIGJldGEuIiwKKysgICAgTm9uZSA9PiAiQ291bGRuJ3QgZGV0ZXJtaW5lIHRo ZSBydXN0YyB2ZXJzaW9uLiIKKyt9OworK2BgYAorKworK1NlZSB0aGUgW3J1c3Rkb2NzXShodHRw czovL2RvY3MucnMvdmVyc2lvbl9jaGVjaykgZm9yIG1vcmUgZXhhbXBsZXMgYW5kIGNvbXBsZXRl CisrZG9jdW1lbnRhdGlvbi4KKysKKysjIyBBbHRlcm5hdGl2ZXMKKysKKytUaGlzIGNyYXRlIGlz IGRlYWQgc2ltcGxlIHdpdGggbm8gZGVwZW5kZW5jaWVzLiBJZiB5b3UgbmVlZCBzb21ldGhpbmcg bW9yZSBhbmQKKytkb24ndCBjYXJlIGFib3V0IHBhbmlja2luZyBpZiB0aGUgdmVyc2lvbiBjYW5u b3QgYmUgb2J0YWluZWQsIG9yIGlmIHlvdSBkb24ndAorK21pbmQgYWRkaW5nIGRlcGVuZGVuY2ll cywgc2VlIFtydXN0Y192ZXJzaW9uXS4gSWYgeW91J2QgaW5zdGVhZCBwcmVmZXIgYSBmZWF0dXJl CisrZGV0ZWN0aW9uIGxpYnJhcnkgdGhhdCB3b3JrcyBieSBkeW5hbWljYWxseSBpbnZva2luZyBg cnVzdGNgIHdpdGggYQorK3JlcHJlc2VudGF0aXZlIGNvZGUgc2FtcGxlLCBzZWUgW2F1dG9jZmdd LgorKworK1tydXN0Y192ZXJzaW9uXTogaHR0cHM6Ly9jcmF0ZXMuaW8vY3JhdGVzL3J1c3RjX3Zl cnNpb24KKytbYXV0b2NmZ106IGh0dHBzOi8vY3JhdGVzLmlvL2NyYXRlcy9hdXRvY2ZnCisrCisr IyMgTGljZW5zZQorKworK2B2ZXJzaW9uX2NoZWNrYCBpcyBsaWNlbnNlZCB1bmRlciBlaXRoZXIg b2YgdGhlIGZvbGxvd2luZywgYXQgeW91ciBvcHRpb246CisrCisrICogQXBhY2hlIExpY2Vuc2Us IFZlcnNpb24gMi4wLCAoW0xJQ0VOU0UtQVBBQ0hFXShMSUNFTlNFLUFQQUNIRSkgb3IgaHR0cDov L3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wKQorKyAqIE1JVCBMaWNlbnNlIChb TElDRU5TRS1NSVRdKExJQ0VOU0UtTUlUKSBvciBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5z ZXMvTUlUKQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvdmVyc2lvbl9jaGVjay9zcmMv Y2hhbm5lbC5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvdmVyc2lvbl9jaGVjay9zcmMvY2hhbm5lbC5y cworbmV3IGZpbGUgbW9kZSAxMDA2NDQKKy0tLSAvZGV2L251bGwKKysrKyBiL3RoaXJkX3BhcnR5 L3J1c3QvdmVyc2lvbl9jaGVjay9zcmMvY2hhbm5lbC5ycworQEAgLTAsMCArMSwxOTMgQEAKKyt1 c2Ugc3RkOjpmbXQ7CisrCisrI1tkZXJpdmUoRGVidWcsIFBhcnRpYWxFcSwgRXEsIENvcHksIENs b25lKV0KKytlbnVtIEtpbmQgeworKyAgICBEZXYsCisrICAgIE5pZ2h0bHksCisrICAgIEJldGEs CisrICAgIFN0YWJsZSwKKyt9CisrCisrLy8vIFJlbGVhc2UgY2hhbm5lbDogImRldiIsICJuaWdo dGx5IiwgImJldGEiLCBvciAic3RhYmxlIi4KKysjW2Rlcml2ZShEZWJ1ZywgUGFydGlhbEVxLCBF cSwgQ29weSwgQ2xvbmUpXQorK3B1YiBzdHJ1Y3QgQ2hhbm5lbChLaW5kKTsKKysKKytpbXBsIENo YW5uZWwgeworKyAgICAvLy8gUmVhZHMgdGhlIHJlbGVhc2UgY2hhbm5lbCBvZiB0aGUgcnVubmlu ZyBjb21waWxlci4gSWYgaXQgY2Fubm90IGJlCisrICAgIC8vLyBkZXRlcm1pbmVkIChzZWUgdGhl IFt0b3AtbGV2ZWwgZG9jdW1lbnRhdGlvbl0oY3JhdGUpKSwgcmV0dXJucyBgTm9uZWAuCisrICAg IC8vLworKyAgICAvLy8gIyBFeGFtcGxlCisrICAgIC8vLworKyAgICAvLy8gYGBgcnVzdAorKyAg ICAvLy8gdXNlIHZlcnNpb25fY2hlY2s6OkNoYW5uZWw7CisrICAgIC8vLworKyAgICAvLy8gbWF0 Y2ggQ2hhbm5lbDo6cmVhZCgpIHsKKysgICAgLy8vICAgICBTb21lKGMpID0+IGZvcm1hdCEoIlRo ZSBjaGFubmVsIGlzOiB7fSIsIGMpLAorKyAgICAvLy8gICAgIE5vbmUgPT4gZm9ybWF0ISgiRmFp bGVkIHRvIHJlYWQgdGhlIHJlbGVhc2UgY2hhbm5lbC4iKQorKyAgICAvLy8gfTsKKysgICAgLy8v IGBgYAorKyAgICBwdWIgZm4gcmVhZCgpIC0+IE9wdGlvbjxDaGFubmVsPiB7CisrICAgICAgICA6 OmdldF92ZXJzaW9uX2FuZF9kYXRlKCkKKysgICAgICAgICAgICAuYW5kX3RoZW4ofCh2ZXJzaW9u LCBfKXwgdmVyc2lvbikKKysgICAgICAgICAgICAuYW5kX3RoZW4ofHZlcnNpb258IENoYW5uZWw6 OnBhcnNlKCZ2ZXJzaW9uKSkKKysgICAgfQorKworKyAgICAvLy8gUGFyc2UgYSBSdXN0IHJlbGVh c2UgY2hhbm5lbCBmcm9tIGEgUnVzdCByZWxlYXNlIHZlcnNpb24gc3RyaW5nIChvZiB0aGUKKysg ICAgLy8vIGZvcm0gYG1ham9yWy5taW5vclsucGF0Y2hbLWNoYW5uZWxdXV1gKS4gUmV0dXJucyBg Tm9uZWAgaWYgYHZlcnNpb25gIGlzCisrICAgIC8vLyBub3QgYSB2YWxpZCBSdXN0IHZlcnNpb24g c3RyaW5nLgorKyAgICAvLy8KKysgICAgLy8vICMgRXhhbXBsZQorKyAgICAvLy8KKysgICAgLy8v IGBgYHJ1c3QKKysgICAgLy8vIHVzZSB2ZXJzaW9uX2NoZWNrOjpDaGFubmVsOworKyAgICAvLy8K KysgICAgLy8vIGxldCBkZXYgPSBDaGFubmVsOjpwYXJzZSgiMS4zLjAtZGV2IikudW53cmFwKCk7 CisrICAgIC8vLyBhc3NlcnQhKGRldi5pc19kZXYoKSk7CisrICAgIC8vLworKyAgICAvLy8gbGV0 IG5pZ2h0bHkgPSBDaGFubmVsOjpwYXJzZSgiMS40Mi4yLW5pZ2h0bHkiKS51bndyYXAoKTsKKysg ICAgLy8vIGFzc2VydCEobmlnaHRseS5pc19uaWdodGx5KCkpOworKyAgICAvLy8KKysgICAgLy8v IGxldCBiZXRhID0gQ2hhbm5lbDo6cGFyc2UoIjEuMzIuMC1iZXRhIikudW53cmFwKCk7CisrICAg IC8vLyBhc3NlcnQhKGJldGEuaXNfYmV0YSgpKTsKKysgICAgLy8vCisrICAgIC8vLyBsZXQgc3Rh YmxlID0gQ2hhbm5lbDo6cGFyc2UoIjEuNC4wIikudW53cmFwKCk7CisrICAgIC8vLyBhc3NlcnQh KHN0YWJsZS5pc19zdGFibGUoKSk7CisrICAgIC8vLyBgYGAKKysgICAgcHViIGZuIHBhcnNlKHZl cnNpb246ICZzdHIpIC0+IE9wdGlvbjxDaGFubmVsPiB7CisrICAgICAgICBsZXQgdmVyc2lvbiA9 IHZlcnNpb24udHJpbSgpOworKyAgICAgICAgaWYgdmVyc2lvbi5jb250YWlucygiLWRldiIpIHx8 IHZlcnNpb24gPT0gImRldiIgeworKyAgICAgICAgICAgIFNvbWUoQ2hhbm5lbChLaW5kOjpEZXYp KQorKyAgICAgICAgfSBlbHNlIGlmIHZlcnNpb24uY29udGFpbnMoIi1uaWdodGx5IikgfHwgdmVy c2lvbiA9PSAibmlnaHRseSIgeworKyAgICAgICAgICAgIFNvbWUoQ2hhbm5lbChLaW5kOjpOaWdo dGx5KSkKKysgICAgICAgIH0gZWxzZSBpZiB2ZXJzaW9uLmNvbnRhaW5zKCItYmV0YSIpIHx8IHZl cnNpb24gPT0gImJldGEiIHsKKysgICAgICAgICAgICBTb21lKENoYW5uZWwoS2luZDo6QmV0YSkp CisrICAgICAgICB9IGVsc2UgaWYgIXZlcnNpb24uY29udGFpbnMoIi0iKSB7CisrICAgICAgICAg ICAgU29tZShDaGFubmVsKEtpbmQ6OlN0YWJsZSkpCisrICAgICAgICB9IGVsc2UgeworKyAgICAg ICAgICAgIE5vbmUKKysgICAgICAgIH0KKysgICAgfQorKworKyAgICAvLy8gUmV0dXJucyB0aGUg bmFtZSBvZiB0aGUgcmVsZWFzZSBjaGFubmVsLgorKyAgICBmbiBhc19zdHIoJnNlbGYpIC0+ICYn c3RhdGljIHN0ciB7CisrICAgICAgICBtYXRjaCBzZWxmLjAgeworKyAgICAgICAgICAgIEtpbmQ6 OkRldiA9PiAiZGV2IiwKKysgICAgICAgICAgICBLaW5kOjpCZXRhID0+ICJiZXRhIiwKKysgICAg ICAgICAgICBLaW5kOjpOaWdodGx5ID0+ICJuaWdodGx5IiwKKysgICAgICAgICAgICBLaW5kOjpT dGFibGUgPT4gInN0YWJsZSIsCisrICAgICAgICB9CisrICAgIH0KKysKKysgICAgLy8vIFJldHVy bnMgYHRydWVgIGlmIHRoaXMgY2hhbm5lbCBzdXBwb3J0cyBmZWF0dXJlIGZsYWdzLiBJbiBvdGhl ciB3b3JkcywKKysgICAgLy8vIHJldHVybnMgYHRydWVgIGlmIHRoZSBjaGFubmVsIGlzIGVpdGhl ciBgZGV2YCBvciBgbmlnaHRseWAuCisrICAgIC8vLworKyAgICAvLy8gIyBFeGFtcGxlCisrICAg IC8vLworKyAgICAvLy8gYGBgcnVzdAorKyAgICAvLy8gdXNlIHZlcnNpb25fY2hlY2s6OkNoYW5u ZWw7CisrICAgIC8vLworKyAgICAvLy8gbGV0IGRldiA9IENoYW5uZWw6OnBhcnNlKCIxLjMuMC1k ZXYiKS51bndyYXAoKTsKKysgICAgLy8vIGFzc2VydCEoZGV2LnN1cHBvcnRzX2ZlYXR1cmVzKCkp OworKyAgICAvLy8KKysgICAgLy8vIGxldCBuaWdodGx5ID0gQ2hhbm5lbDo6cGFyc2UoIjEuNDIu Mi1uaWdodGx5IikudW53cmFwKCk7CisrICAgIC8vLyBhc3NlcnQhKG5pZ2h0bHkuc3VwcG9ydHNf ZmVhdHVyZXMoKSk7CisrICAgIC8vLworKyAgICAvLy8gbGV0IGJldGEgPSBDaGFubmVsOjpwYXJz ZSgiMS4zMi4wLWJldGEiKS51bndyYXAoKTsKKysgICAgLy8vIGFzc2VydCEoIWJldGEuc3VwcG9y dHNfZmVhdHVyZXMoKSk7CisrICAgIC8vLworKyAgICAvLy8gbGV0IHN0YWJsZSA9IENoYW5uZWw6 OnBhcnNlKCIxLjQuMCIpLnVud3JhcCgpOworKyAgICAvLy8gYXNzZXJ0ISghc3RhYmxlLnN1cHBv cnRzX2ZlYXR1cmVzKCkpOworKyAgICAvLy8gYGBgCisrICAgIHB1YiBmbiBzdXBwb3J0c19mZWF0 dXJlcygmc2VsZikgLT4gYm9vbCB7CisrICAgICAgICBtYXRjaCBzZWxmLjAgeworKyAgICAgICAg ICAgIEtpbmQ6OkRldiB8IEtpbmQ6Ok5pZ2h0bHkgPT4gdHJ1ZSwKKysgICAgICAgICAgICBLaW5k OjpCZXRhIHwgS2luZDo6U3RhYmxlID0+IGZhbHNlCisrICAgICAgICB9CisrICAgIH0KKysKKysg ICAgLy8vIFJldHVybnMgYHRydWVgIGlmIHRoaXMgY2hhbm5lbCBpcyBgZGV2YCBhbmQgYGZhbHNl YCBvdGhlcndpc2UuCisrICAgIC8vLworKyAgICAvLy8gIyBFeGFtcGxlCisrICAgIC8vLworKyAg ICAvLy8gYGBgcnVzdAorKyAgICAvLy8gdXNlIHZlcnNpb25fY2hlY2s6OkNoYW5uZWw7CisrICAg IC8vLworKyAgICAvLy8gbGV0IGRldiA9IENoYW5uZWw6OnBhcnNlKCIxLjMuMC1kZXYiKS51bndy YXAoKTsKKysgICAgLy8vIGFzc2VydCEoZGV2LmlzX2RldigpKTsKKysgICAgLy8vCisrICAgIC8v LyBsZXQgc3RhYmxlID0gQ2hhbm5lbDo6cGFyc2UoIjEuMC4wIikudW53cmFwKCk7CisrICAgIC8v LyBhc3NlcnQhKCFzdGFibGUuaXNfZGV2KCkpOworKyAgICAvLy8gYGBgCisrICAgIHB1YiBmbiBp c19kZXYoJnNlbGYpIC0+IGJvb2wgeworKyAgICAgICAgbWF0Y2ggc2VsZi4wIHsKKysgICAgICAg ICAgICBLaW5kOjpEZXYgPT4gdHJ1ZSwKKysgICAgICAgICAgICBfID0+IGZhbHNlCisrICAgICAg ICB9CisrICAgIH0KKysKKysgICAgLy8vIFJldHVybnMgYHRydWVgIGlmIHRoaXMgY2hhbm5lbCBp cyBgbmlnaHRseWAgYW5kIGBmYWxzZWAgb3RoZXJ3aXNlLgorKyAgICAvLy8KKysgICAgLy8vICMg RXhhbXBsZQorKyAgICAvLy8KKysgICAgLy8vIGBgYHJ1c3QKKysgICAgLy8vIHVzZSB2ZXJzaW9u X2NoZWNrOjpDaGFubmVsOworKyAgICAvLy8KKysgICAgLy8vIGxldCBuaWdodGx5ID0gQ2hhbm5l bDo6cGFyc2UoIjEuMy4wLW5pZ2h0bHkiKS51bndyYXAoKTsKKysgICAgLy8vIGFzc2VydCEobmln aHRseS5pc19uaWdodGx5KCkpOworKyAgICAvLy8KKysgICAgLy8vIGxldCBzdGFibGUgPSBDaGFu bmVsOjpwYXJzZSgiMS4wLjAiKS51bndyYXAoKTsKKysgICAgLy8vIGFzc2VydCEoIXN0YWJsZS5p c19uaWdodGx5KCkpOworKyAgICAvLy8gYGBgCisrICAgIHB1YiBmbiBpc19uaWdodGx5KCZzZWxm KSAtPiBib29sIHsKKysgICAgICAgIG1hdGNoIHNlbGYuMCB7CisrICAgICAgICAgICAgS2luZDo6 TmlnaHRseSA9PiB0cnVlLAorKyAgICAgICAgICAgIF8gPT4gZmFsc2UKKysgICAgICAgIH0KKysg ICAgfQorKworKyAgICAvLy8gUmV0dXJucyBgdHJ1ZWAgaWYgdGhpcyBjaGFubmVsIGlzIGBiZXRh YCBhbmQgYGZhbHNlYCBvdGhlcndpc2UuCisrICAgIC8vLworKyAgICAvLy8gIyBFeGFtcGxlCisr ICAgIC8vLworKyAgICAvLy8gYGBgcnVzdAorKyAgICAvLy8gdXNlIHZlcnNpb25fY2hlY2s6OkNo YW5uZWw7CisrICAgIC8vLworKyAgICAvLy8gbGV0IGJldGEgPSBDaGFubmVsOjpwYXJzZSgiMS4z LjAtYmV0YSIpLnVud3JhcCgpOworKyAgICAvLy8gYXNzZXJ0IShiZXRhLmlzX2JldGEoKSk7Cisr ICAgIC8vLworKyAgICAvLy8gbGV0IHN0YWJsZSA9IENoYW5uZWw6OnBhcnNlKCIxLjAuMCIpLnVu d3JhcCgpOworKyAgICAvLy8gYXNzZXJ0ISghc3RhYmxlLmlzX2JldGEoKSk7CisrICAgIC8vLyBg YGAKKysgICAgcHViIGZuIGlzX2JldGEoJnNlbGYpIC0+IGJvb2wgeworKyAgICAgICAgbWF0Y2gg c2VsZi4wIHsKKysgICAgICAgICAgICBLaW5kOjpCZXRhID0+IHRydWUsCisrICAgICAgICAgICAg XyA9PiBmYWxzZQorKyAgICAgICAgfQorKyAgICB9CisrCisrICAgIC8vLyBSZXR1cm5zIGB0cnVl YCBpZiB0aGlzIGNoYW5uZWwgaXMgYHN0YWJsZWAgYW5kIGBmYWxzZWAgb3RoZXJ3aXNlLgorKyAg ICAvLy8KKysgICAgLy8vICMgRXhhbXBsZQorKyAgICAvLy8KKysgICAgLy8vIGBgYHJ1c3QKKysg ICAgLy8vIHVzZSB2ZXJzaW9uX2NoZWNrOjpDaGFubmVsOworKyAgICAvLy8KKysgICAgLy8vIGxl dCBzdGFibGUgPSBDaGFubmVsOjpwYXJzZSgiMS4wLjAiKS51bndyYXAoKTsKKysgICAgLy8vIGFz c2VydCEoc3RhYmxlLmlzX3N0YWJsZSgpKTsKKysgICAgLy8vCisrICAgIC8vLyBsZXQgYmV0YSA9 IENoYW5uZWw6OnBhcnNlKCIxLjMuMC1iZXRhIikudW53cmFwKCk7CisrICAgIC8vLyBhc3NlcnQh KCFiZXRhLmlzX3N0YWJsZSgpKTsKKysgICAgLy8vIGBgYAorKyAgICBwdWIgZm4gaXNfc3RhYmxl KCZzZWxmKSAtPiBib29sIHsKKysgICAgICAgIG1hdGNoIHNlbGYuMCB7CisrICAgICAgICAgICAg S2luZDo6U3RhYmxlID0+IHRydWUsCisrICAgICAgICAgICAgXyA9PiBmYWxzZQorKyAgICAgICAg fQorKyAgICB9CisrfQorKworK2ltcGwgZm10OjpEaXNwbGF5IGZvciBDaGFubmVsIHsKKysgICAg Zm4gZm10KCZzZWxmLCBmOiAmbXV0IGZtdDo6Rm9ybWF0dGVyKSAtPiBmbXQ6OlJlc3VsdCB7Cisr ICAgICAgICB3cml0ZSEoZiwgInt9Iiwgc2VsZi5hc19zdHIoKSkKKysgICAgfQorK30KK2RpZmYg LS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3ZlcnNpb25fY2hlY2svc3JjL2RhdGUucnMgYi90aGly ZF9wYXJ0eS9ydXN0L3ZlcnNpb25fY2hlY2svc3JjL2RhdGUucnMKK25ldyBmaWxlIG1vZGUgMTAw NjQ0CistLS0gL2Rldi9udWxsCisrKysgYi90aGlyZF9wYXJ0eS9ydXN0L3ZlcnNpb25fY2hlY2sv c3JjL2RhdGUucnMKK0BAIC0wLDAgKzEsMjAzIEBACisrdXNlIHN0ZDo6Zm10OworKworKy8vLyBS ZWxlYXNlIGRhdGUgaW5jbHVkaW5nIHllYXIsIG1vbnRoLCBhbmQgZGF5LgorKy8vIEludGVybmFs IHN0b3JhZ2UgaXM6IHlbMzEuLjldIHwgbVs4Li41XSB8IGRbNS4uLjBdLgorKyNbZGVyaXZlKERl YnVnLCBQYXJ0aWFsRXEsIEVxLCBDb3B5LCBDbG9uZSwgUGFydGlhbE9yZCwgT3JkKV0KKytwdWIg c3RydWN0IERhdGUodTMyKTsKKysKKytpbXBsIERhdGUgeworKyAgICAvLy8gUmVhZHMgdGhlIHJl bGVhc2UgZGF0ZSBvZiB0aGUgcnVubmluZyBjb21waWxlci4gSWYgaXQgY2Fubm90IGJlCisrICAg IC8vLyBkZXRlcm1pbmVkIChzZWUgdGhlIFt0b3AtbGV2ZWwgZG9jdW1lbnRhdGlvbl0oY3JhdGUp KSwgcmV0dXJucyBgTm9uZWAuCisrICAgIC8vLworKyAgICAvLy8gIyBFeGFtcGxlCisrICAgIC8v LworKyAgICAvLy8gYGBgcnVzdAorKyAgICAvLy8gdXNlIHZlcnNpb25fY2hlY2s6OkRhdGU7Cisr ICAgIC8vLworKyAgICAvLy8gbWF0Y2ggRGF0ZTo6cmVhZCgpIHsKKysgICAgLy8vICAgICBTb21l KGQpID0+IGZvcm1hdCEoIlRoZSByZWxlYXNlIGRhdGUgaXM6IHt9IiwgZCksCisrICAgIC8vLyAg ICAgTm9uZSA9PiBmb3JtYXQhKCJGYWlsZWQgdG8gcmVhZCB0aGUgcmVsZWFzZSBkYXRlLiIpCisr ICAgIC8vLyB9OworKyAgICAvLy8gYGBgCisrICAgIHB1YiBmbiByZWFkKCkgLT4gT3B0aW9uPERh dGU+IHsKKysgICAgICAgIDo6Z2V0X3ZlcnNpb25fYW5kX2RhdGUoKQorKyAgICAgICAgICAgIC5h bmRfdGhlbih8KF8sIGRhdGUpfCBkYXRlKQorKyAgICAgICAgICAgIC5hbmRfdGhlbih8ZGF0ZXwg RGF0ZTo6cGFyc2UoJmRhdGUpKQorKyAgICB9CisrCisrICAgIC8vLyBQYXJzZSBhIHJlbGVhc2Ug ZGF0ZSBvZiB0aGUgZm9ybSBgJVktJW0tJWRgLiBSZXR1cm5zIGBOb25lYCBpZiBgZGF0ZWAgaXMK KysgICAgLy8vIG5vdCBpbiBgJVktJW0tJWRgIGZvcm1hdC4KKysgICAgLy8vCisrICAgIC8vLyAj IEV4YW1wbGUKKysgICAgLy8vCisrICAgIC8vLyBgYGBydXN0CisrICAgIC8vLyB1c2UgdmVyc2lv bl9jaGVjazo6RGF0ZTsKKysgICAgLy8vCisrICAgIC8vLyBsZXQgZGF0ZSA9IERhdGU6OnBhcnNl KCIyMDE2LTA0LTIwIikudW53cmFwKCk7CisrICAgIC8vLworKyAgICAvLy8gYXNzZXJ0IShkYXRl LmF0X2xlYXN0KCIyMDE2LTAxLTEwIikpOworKyAgICAvLy8gYXNzZXJ0IShkYXRlLmF0X21vc3Qo IjIwMTYtMDQtMjAiKSk7CisrICAgIC8vLyBhc3NlcnQhKGRhdGUuZXhhY3RseSgiMjAxNi0wNC0y MCIpKTsKKysgICAgLy8vCisrICAgIC8vLyBhc3NlcnQhKERhdGU6OnBhcnNlKCIyMDIxLTEyLTMx IikudW53cmFwKCkuZXhhY3RseSgiMjAyMS0xMi0zMSIpKTsKKysgICAgLy8vCisrICAgIC8vLyBh c3NlcnQhKERhdGU6OnBhcnNlKCJNYXJjaCAxMywgMjAxOCIpLmlzX25vbmUoKSk7CisrICAgIC8v LyBhc3NlcnQhKERhdGU6OnBhcnNlKCIxLTItMy00LTUiKS5pc19ub25lKCkpOworKyAgICAvLy8g YXNzZXJ0IShEYXRlOjpwYXJzZSgiMjAyMC0zMDAtMjMxMjAiKS5pc19ub25lKCkpOworKyAgICAv Ly8gYXNzZXJ0IShEYXRlOjpwYXJzZSgiMjAyMC0xMi0xMiAxIikuaXNfbm9uZSgpKTsKKysgICAg Ly8vIGFzc2VydCEoRGF0ZTo6cGFyc2UoIjIwMjAtMTAiKS5pc19ub25lKCkpOworKyAgICAvLy8g YXNzZXJ0IShEYXRlOjpwYXJzZSgiMjAyMCIpLmlzX25vbmUoKSk7CisrICAgIC8vLyBgYGAKKysg ICAgcHViIGZuIHBhcnNlKGRhdGU6ICZzdHIpIC0+IE9wdGlvbjxEYXRlPiB7CisrICAgICAgICBs ZXQgbXV0IHltZCA9IFswdTE2OyAzXTsKKysgICAgICAgIGZvciAoaSwgc3BsaXQpIGluIGRhdGUu c3BsaXQoJy0nKS5tYXAofHN8IHMucGFyc2U6Ojx1MTY+KCkpLmVudW1lcmF0ZSgpIHsKKysgICAg ICAgICAgICB5bWRbaV0gPSBtYXRjaCAoaSwgc3BsaXQpIHsKKysgICAgICAgICAgICAgICAgKDMs IF8pIHwgKF8sIEVycihfKSkgPT4gcmV0dXJuIE5vbmUsCisrICAgICAgICAgICAgICAgIChfLCBP ayh2KSkgPT4gdiwKKysgICAgICAgICAgICB9OworKyAgICAgICAgfQorKworKyAgICAgICAgbGV0 ICh5ZWFyLCBtb250aCwgZGF5KSA9ICh5bWRbMF0sIHltZFsxXSwgeW1kWzJdKTsKKysgICAgICAg IGlmIHllYXIgPT0gMCB8fCBtb250aCA9PSAwIHx8IG1vbnRoID4gMTIgfHwgZGF5ID09IDAgfHwg ZGF5ID4gMzEgeworKyAgICAgICAgICAgIHJldHVybiBOb25lOworKyAgICAgICAgfQorKworKyAg ICAgICAgU29tZShEYXRlOjpmcm9tX3ltZCh5ZWFyLCBtb250aCBhcyB1OCwgZGF5IGFzIHU4KSkK KysgICAgfQorKworKyAgICAvLy8gQ3JlYXRlcyBhIGBEYXRlYCBmcm9tIGAoeWVhciwgbW9udGgs IGRheSlgIGRhdGUgY29tcG9uZW50cy4KKysgICAgLy8vCisrICAgIC8vLyBEb2VzIG5vdCBjaGVj ayB0aGUgdmFsaWRpdHkgb2YgYHllYXJgLCBgbW9udGhgLCBvciBgZGF5YCwgYnV0IGB5ZWFyYCBp cworKyAgICAvLy8gdHJ1bmNhdGVkIHRvIDIzIGJpdHMgKCUgOCwzODgsNjA4KSwgYG1vbnRoYCB0 byA0IGJpdHMgKCUgMTYpLCBhbmQgYGRheWAKKysgICAgLy8vIHRvIDUgYml0cyAoJSAzMikuCisr ICAgIC8vLworKyAgICAvLy8gIyBFeGFtcGxlCisrICAgIC8vLworKyAgICAvLy8gYGBgcnVzdAor KyAgICAvLy8gdXNlIHZlcnNpb25fY2hlY2s6OkRhdGU7CisrICAgIC8vLworKyAgICAvLy8gYXNz ZXJ0IShEYXRlOjpmcm9tX3ltZCgyMDIxLCA3LCAzMCkuZXhhY3RseSgiMjAyMS0wNy0zMCIpKTsK KysgICAgLy8vIGFzc2VydCEoRGF0ZTo6ZnJvbV95bWQoMjAxMCwgMywgMjMpLmV4YWN0bHkoIjIw MTAtMDMtMjMiKSk7CisrICAgIC8vLyBhc3NlcnQhKERhdGU6OmZyb21feW1kKDIwOTAsIDEsIDMx KS5leGFjdGx5KCIyMDkwLTAxLTMxIikpOworKyAgICAvLy8KKysgICAgLy8vIC8vIFRydW5jYXRp b246IDMzICUgMzIgPT0gMHgyMSAmIDB4MUYgPT0gMS4KKysgICAgLy8vIGFzc2VydCEoRGF0ZTo6 ZnJvbV95bWQoMjA5MCwgMSwgMzMpLmV4YWN0bHkoIjIwOTAtMDEtMDEiKSk7CisrICAgIC8vLyBg YGAKKysgICAgcHViIGZuIGZyb21feW1kKHllYXI6IHUxNiwgbW9udGg6IHU4LCBkYXk6IHU4KSAt PiBEYXRlIHsKKysgICAgICAgIGxldCB5ZWFyID0gKHllYXIgYXMgdTMyKSA8PCA5OworKyAgICAg ICAgbGV0IG1vbnRoID0gKChtb250aCBhcyB1MzIpICYgMHhGKSA8PCA1OworKyAgICAgICAgbGV0 IGRheSA9IChkYXkgYXMgdTMyKSAmIDB4MUY7CisrICAgICAgICBEYXRlKHllYXIgfCBtb250aCB8 IGRheSkKKysgICAgfQorKworKyAgICAvLy8gUmV0dXJuIHRoZSBvcmlnaW5hbCAoWVlZWSwgTU0s IEREKS4KKysgICAgZm4gdG9feW1kKCZzZWxmKSAtPiAodTE2LCB1OCwgdTgpIHsKKysgICAgICAg IGxldCB5ID0gc2VsZi4wID4+IDk7CisrICAgICAgICBsZXQgbSA9IChzZWxmLjAgPj4gNSkgJiAw eEY7CisrICAgICAgICBsZXQgZCA9IHNlbGYuMCAmIDB4MUY7CisrICAgICAgICAoeSBhcyB1MTYs IG0gYXMgdTgsIGQgYXMgdTgpCisrICAgIH0KKysKKysgICAgLy8vIFJldHVybnMgYHRydWVgIGlm IGBzZWxmYCBvY2N1cnMgb24gb3IgYWZ0ZXIgYGRhdGVgLgorKyAgICAvLy8KKysgICAgLy8vIElm IGBkYXRlYCBvY2N1cnMgYmVmb3JlIGBzZWxmYCwgb3IgaWYgYGRhdGVgIGlzIG5vdCBpbiBgJVkt JW0tJWRgCisrICAgIC8vLyBmb3JtYXQsIHJldHVybnMgYGZhbHNlYC4KKysgICAgLy8vCisrICAg IC8vLyAjIEV4YW1wbGUKKysgICAgLy8vCisrICAgIC8vLyBgYGBydXN0CisrICAgIC8vLyB1c2Ug dmVyc2lvbl9jaGVjazo6RGF0ZTsKKysgICAgLy8vCisrICAgIC8vLyBsZXQgZGF0ZSA9IERhdGU6 OnBhcnNlKCIyMDIwLTAxLTAxIikudW53cmFwKCk7CisrICAgIC8vLworKyAgICAvLy8gYXNzZXJ0 IShkYXRlLmF0X2xlYXN0KCIyMDE5LTEyLTMxIikpOworKyAgICAvLy8gYXNzZXJ0IShkYXRlLmF0 X2xlYXN0KCIyMDIwLTAxLTAxIikpOworKyAgICAvLy8gYXNzZXJ0IShkYXRlLmF0X2xlYXN0KCIy MDE0LTA0LTMxIikpOworKyAgICAvLy8KKysgICAgLy8vIGFzc2VydCEoIWRhdGUuYXRfbGVhc3Qo IjIwMjAtMDEtMDIiKSk7CisrICAgIC8vLyBhc3NlcnQhKCFkYXRlLmF0X2xlYXN0KCIyMDI0LTA4 LTE4IikpOworKyAgICAvLy8gYGBgCisrICAgIHB1YiBmbiBhdF9sZWFzdCgmc2VsZiwgZGF0ZTog JnN0cikgLT4gYm9vbCB7CisrICAgICAgICBEYXRlOjpwYXJzZShkYXRlKQorKyAgICAgICAgICAg IC5tYXAofGRhdGV8IHNlbGYgPj0gJmRhdGUpCisrICAgICAgICAgICAgLnVud3JhcF9vcihmYWxz ZSkKKysgICAgfQorKworKyAgICAvLy8gUmV0dXJucyBgdHJ1ZWAgaWYgYHNlbGZgIG9jY3VycyBv biBvciBiZWZvcmUgYGRhdGVgLgorKyAgICAvLy8KKysgICAgLy8vIElmIGBkYXRlYCBvY2N1cnMg YWZ0ZXIgYHNlbGZgLCBvciBpZiBgZGF0ZWAgaXMgbm90IGluIGAlWS0lbS0lZGAKKysgICAgLy8v IGZvcm1hdCwgcmV0dXJucyBgZmFsc2VgLgorKyAgICAvLy8KKysgICAgLy8vICMgRXhhbXBsZQor KyAgICAvLy8KKysgICAgLy8vIGBgYHJ1c3QKKysgICAgLy8vIHVzZSB2ZXJzaW9uX2NoZWNrOjpE YXRlOworKyAgICAvLy8KKysgICAgLy8vIGxldCBkYXRlID0gRGF0ZTo6cGFyc2UoIjIwMjAtMDEt MDEiKS51bndyYXAoKTsKKysgICAgLy8vCisrICAgIC8vLyBhc3NlcnQhKGRhdGUuYXRfbW9zdCgi MjAyMC0wMS0wMSIpKTsKKysgICAgLy8vIGFzc2VydCEoZGF0ZS5hdF9tb3N0KCIyMDIwLTAxLTAy IikpOworKyAgICAvLy8gYXNzZXJ0IShkYXRlLmF0X21vc3QoIjIwMjQtMDgtMTgiKSk7CisrICAg IC8vLworKyAgICAvLy8gYXNzZXJ0ISghZGF0ZS5hdF9tb3N0KCIyMDE5LTEyLTMxIikpOworKyAg ICAvLy8gYXNzZXJ0ISghZGF0ZS5hdF9tb3N0KCIyMDE0LTA0LTMxIikpOworKyAgICAvLy8gYGBg CisrICAgIHB1YiBmbiBhdF9tb3N0KCZzZWxmLCBkYXRlOiAmc3RyKSAtPiBib29sIHsKKysgICAg ICAgIERhdGU6OnBhcnNlKGRhdGUpCisrICAgICAgICAgICAgLm1hcCh8ZGF0ZXwgc2VsZiA8PSAm ZGF0ZSkKKysgICAgICAgICAgICAudW53cmFwX29yKGZhbHNlKQorKyAgICB9CisrCisrICAgIC8v LyBSZXR1cm5zIGB0cnVlYCBpZiBgc2VsZmAgb2NjdXJzIGV4YWN0bHkgb24gYGRhdGVgLgorKyAg ICAvLy8KKysgICAgLy8vIElmIGBkYXRlYCBpcyBub3QgZXhhY3RseSBgc2VsZmAsIG9yIGlmIGBk YXRlYCBpcyBub3QgaW4gYCVZLSVtLSVkYAorKyAgICAvLy8gZm9ybWF0LCByZXR1cm5zIGBmYWxz ZWAuCisrICAgIC8vLworKyAgICAvLy8gIyBFeGFtcGxlCisrICAgIC8vLworKyAgICAvLy8gYGBg cnVzdAorKyAgICAvLy8gdXNlIHZlcnNpb25fY2hlY2s6OkRhdGU7CisrICAgIC8vLworKyAgICAv Ly8gbGV0IGRhdGUgPSBEYXRlOjpwYXJzZSgiMjAyMC0wMS0wMSIpLnVud3JhcCgpOworKyAgICAv Ly8KKysgICAgLy8vIGFzc2VydCEoZGF0ZS5leGFjdGx5KCIyMDIwLTAxLTAxIikpOworKyAgICAv Ly8KKysgICAgLy8vIGFzc2VydCEoIWRhdGUuZXhhY3RseSgiMjAxOS0xMi0zMSIpKTsKKysgICAg Ly8vIGFzc2VydCEoIWRhdGUuZXhhY3RseSgiMjAxNC0wNC0zMSIpKTsKKysgICAgLy8vIGFzc2Vy dCEoIWRhdGUuZXhhY3RseSgiMjAyMC0wMS0wMiIpKTsKKysgICAgLy8vIGFzc2VydCEoIWRhdGUu ZXhhY3RseSgiMjAyNC0wOC0xOCIpKTsKKysgICAgLy8vIGBgYAorKyAgICBwdWIgZm4gZXhhY3Rs eSgmc2VsZiwgZGF0ZTogJnN0cikgLT4gYm9vbCB7CisrICAgICAgICBEYXRlOjpwYXJzZShkYXRl KQorKyAgICAgICAgICAgIC5tYXAofGRhdGV8IHNlbGYgPT0gJmRhdGUpCisrICAgICAgICAgICAg LnVud3JhcF9vcihmYWxzZSkKKysgICAgfQorK30KKysKKytpbXBsIGZtdDo6RGlzcGxheSBmb3Ig RGF0ZSB7CisrICAgIGZuIGZtdCgmc2VsZiwgZjogJm11dCBmbXQ6OkZvcm1hdHRlcikgLT4gZm10 OjpSZXN1bHQgeworKyAgICAgICAgbGV0ICh5LCBtLCBkKSA9IHNlbGYudG9feW1kKCk7CisrICAg ICAgICB3cml0ZSEoZiwgInt9LXs6MDJ9LXs6MDJ9IiwgeSwgbSwgZCkKKysgICAgfQorK30KKysK KysjW2NmZyh0ZXN0KV0KKyttb2QgdGVzdHMgeworKyAgICB1c2Ugc3VwZXI6OkRhdGU7CisrCisr ICAgIG1hY3JvX3J1bGVzISByZWZsZXhpdmVfZGlzcGxheSB7CisrICAgICAgICAoJHN0cmluZzpl eHByKSA9PiAoCisrICAgICAgICAgICAgYXNzZXJ0X2VxIShEYXRlOjpwYXJzZSgkc3RyaW5nKS51 bndyYXAoKS50b19zdHJpbmcoKSwgJHN0cmluZyk7CisrICAgICAgICApCisrICAgIH0KKysKKysg ICAgI1t0ZXN0XQorKyAgICBmbiBkaXNwbGF5KCkgeworKyAgICAgICAgcmVmbGV4aXZlX2Rpc3Bs YXkhKCIyMDE5LTA1LTA4Iik7CisrICAgICAgICByZWZsZXhpdmVfZGlzcGxheSEoIjIwMDAtMDEt MDEiKTsKKysgICAgICAgIHJlZmxleGl2ZV9kaXNwbGF5ISgiMjAwMC0xMi0zMSIpOworKyAgICAg ICAgcmVmbGV4aXZlX2Rpc3BsYXkhKCIyMDkwLTEyLTMxIik7CisrICAgICAgICByZWZsZXhpdmVf ZGlzcGxheSEoIjE5OTktMDItMTkiKTsKKysgICAgICAgIHJlZmxleGl2ZV9kaXNwbGF5ISgiOTk5 OS0xMi0zMSIpOworKyAgICB9CisrfQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvdmVy c2lvbl9jaGVjay9zcmMvbGliLnJzIGIvdGhpcmRfcGFydHkvcnVzdC92ZXJzaW9uX2NoZWNrL3Ny Yy9saWIucnMKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CistLS0gL2Rldi9udWxsCisrKysgYi90aGly ZF9wYXJ0eS9ydXN0L3ZlcnNpb25fY2hlY2svc3JjL2xpYi5ycworQEAgLTAsMCArMSw0OTMgQEAK KysvLyEgVGhpcyB0aW55IGNyYXRlIGNoZWNrcyB0aGF0IHRoZSBydW5uaW5nIG9yIGluc3RhbGxl ZCBgcnVzdGNgIG1lZXRzIHNvbWUKKysvLyEgdmVyc2lvbiByZXF1aXJlbWVudHMuIFRoZSB2ZXJz aW9uIGlzIHF1ZXJpZWQgYnkgY2FsbGluZyB0aGUgUnVzdCBjb21waWxlcgorKy8vISB3aXRoIGAt LXZlcnNpb25gLiBUaGUgcGF0aCB0byB0aGUgY29tcGlsZXIgaXMgZGV0ZXJtaW5lZCBmaXJzdCB2 aWEgdGhlCisrLy8hIGBSVVNUQ2AgZW52aXJvbm1lbnQgdmFyaWFibGUuIElmIGl0IGlzIG5vdCBz ZXQsIHRoZW4gYHJ1c3RjYCBpcyB1c2VkLiBJZgorKy8vISB0aGF0IGZhaWxzLCBubyBkZXRlcm1p bmF0aW9uIGlzIG1hZGUsIGFuZCBjYWxscyByZXR1cm4gYE5vbmVgLgorKy8vIQorKy8vISAjIEV4 YW1wbGVzCisrLy8hCisrLy8hICogU2V0IGEgYGNmZ2AgZmxhZyBpbiBgYnVpbGQucnNgIGlmIHRo ZSBydW5uaW5nIGNvbXBpbGVyIHdhcyBkZXRlcm1pbmVkIHRvCisrLy8hICAgYmUgYXQgbGVhc3Qg dmVyc2lvbiBgMS4xMy4wYDoKKysvLyEKKysvLyEgICBgYGBydXN0CisrLy8hICAgZXh0ZXJuIGNy YXRlIHZlcnNpb25fY2hlY2sgYXMgcnVzdGM7CisrLy8hCisrLy8hICAgaWYgcnVzdGM6OmlzX21p bl92ZXJzaW9uKCIxLjEzLjAiKS51bndyYXBfb3IoZmFsc2UpIHsKKysvLyEgICAgICAgcHJpbnRs biEoImNhcmdvOnJ1c3RjLWNmZz1xdWVzdGlvbl9tYXJrX29wZXJhdG9yIik7CisrLy8hICAgfQor Ky8vISAgIGBgYAorKy8vIQorKy8vISAgIFNlZSBbYGlzX21heF92ZXJzaW9uYF0gb3IgW2Bpc19l eGFjdF92ZXJzaW9uYF0gdG8gY2hlY2sgaWYgdGhlIGNvbXBpbGVyCisrLy8hICAgaXMgX2F0IG1v c3RfIG9yIF9leGFjdGx5XyBhIGNlcnRhaW4gdmVyc2lvbi4KKysvLyEKKysvLyEgKiBDaGVjayB0 aGF0IHRoZSBydW5uaW5nIGNvbXBpbGVyIHdhcyByZWxlYXNlZCBvbiBvciBhZnRlciBgMjAxOC0x Mi0xOGA6CisrLy8hCisrLy8hICAgYGBgcnVzdAorKy8vISAgIGV4dGVybiBjcmF0ZSB2ZXJzaW9u X2NoZWNrIGFzIHJ1c3RjOworKy8vIQorKy8vISAgIG1hdGNoIHJ1c3RjOjppc19taW5fZGF0ZSgi MjAxOC0xMi0xOCIpIHsKKysvLyEgICAgICAgU29tZSh0cnVlKSA9PiAiWWVwISBJdCdzIHJlY2Vu dCEiLAorKy8vISAgICAgICBTb21lKGZhbHNlKSA9PiAiTm8sIGl0J3Mgb2xkZXIuIiwKKysvLyEg ICAgICAgTm9uZSA9PiAiQ291bGRuJ3QgZGV0ZXJtaW5lIHRoZSBydXN0YyB2ZXJzaW9uLiIKKysv LyEgICB9OworKy8vISAgIGBgYAorKy8vIQorKy8vISAgIFNlZSBbYGlzX21heF9kYXRlYF0gb3Ig W2Bpc19leGFjdF9kYXRlYF0gdG8gY2hlY2sgaWYgdGhlIGNvbXBpbGVyIHdhcworKy8vISAgIHJl bGVhc2VkIF9wcmlvciB0b18gb3IgX2V4YWN0bHkgb25fIGEgY2VydGFpbiBkYXRlLgorKy8vIQor Ky8vISAqIENoZWNrIHRoYXQgdGhlIHJ1bm5pbmcgY29tcGlsZXIgc3VwcG9ydHMgZmVhdHVyZSBm bGFnczoKKysvLyEKKysvLyEgICBgYGBydXN0CisrLy8hICAgZXh0ZXJuIGNyYXRlIHZlcnNpb25f Y2hlY2sgYXMgcnVzdGM7CisrLy8hCisrLy8hICAgbWF0Y2ggcnVzdGM6OmlzX2ZlYXR1cmVfZmxh Z2dhYmxlKCkgeworKy8vISAgICAgICBTb21lKHRydWUpID0+ICJZZXMhIEl0J3MgYSBkZXYgb3Ig bmlnaHRseSByZWxlYXNlISIsCisrLy8hICAgICAgIFNvbWUoZmFsc2UpID0+ICJObywgaXQncyBz dGFibGUgb3IgYmV0YS4iLAorKy8vISAgICAgICBOb25lID0+ICJDb3VsZG4ndCBkZXRlcm1pbmUg dGhlIHJ1c3RjIHZlcnNpb24uIgorKy8vISAgIH07CisrLy8hICAgYGBgCisrLy8hCisrLy8hICog Q2hlY2sgdGhhdCB0aGUgcnVubmluZyBjb21waWxlciBzdXBwb3J0cyBhIHNwZWNpZmljIGZlYXR1 cmU6CisrLy8hCisrLy8hICAgYGBgcnVzdAorKy8vISAgIGV4dGVybiBjcmF0ZSB2ZXJzaW9uX2No ZWNrIGFzIHJ1c3RjOworKy8vIQorKy8vISAgIGlmIGxldCBTb21lKHRydWUpID0gcnVzdGM6OnN1 cHBvcnRzX2ZlYXR1cmUoImRvY19jZmciKSB7CisrLy8hICAgICAgcHJpbnRsbiEoImNhcmdvOnJ1 c3RjLWNmZz1oYXNfZG9jX2NmZyIpOworKy8vISAgIH0KKysvLyEgICBgYGAKKysvLyEKKysvLyEg KiBDaGVjayB0aGF0IHRoZSBydW5uaW5nIGNvbXBpbGVyIGlzIG9uIHRoZSBzdGFibGUgY2hhbm5l bDoKKysvLyEKKysvLyEgICBgYGBydXN0CisrLy8hICAgZXh0ZXJuIGNyYXRlIHZlcnNpb25fY2hl Y2sgYXMgcnVzdGM7CisrLy8hCisrLy8hICAgbWF0Y2ggcnVzdGM6OkNoYW5uZWw6OnJlYWQoKSB7 CisrLy8hICAgICAgIFNvbWUoYykgaWYgYy5pc19zdGFibGUoKSA9PiBmb3JtYXQhKCJZZXMhIEl0 J3Mgc3RhYmxlLiIpLAorKy8vISAgICAgICBTb21lKGMpID0+IGZvcm1hdCEoIk5vLCB0aGUgY2hh bm5lbCB7fSBpcyBub3Qgc3RhYmxlLiIsIGMpLAorKy8vISAgICAgICBOb25lID0+IGZvcm1hdCEo IkNvdWxkbid0IGRldGVybWluZSB0aGUgcnVzdGMgdmVyc2lvbi4iKQorKy8vISAgIH07CisrLy8h ICAgYGBgCisrLy8hCisrLy8hIFRvIGludGVyYWN0IHdpdGggdGhlIHZlcnNpb24sIHJlbGVhc2Ug ZGF0ZSwgYW5kIHJlbGVhc2UgY2hhbm5lbCBhcyBzdHJ1Y3RzLAorKy8vISB1c2UgW2BWZXJzaW9u YF0sIFtgRGF0ZWBdLCBhbmQgW2BDaGFubmVsYF0sIHJlc3BlY3RpdmVseS4gVGhlIFtgdHJpcGxl KClgXQorKy8vISBmdW5jdGlvbiByZXR1cm5zIGFsbCB0aHJlZSB2YWx1ZXMgZWZmaWNpZW50bHku CisrLy8hCisrLy8hICMgQWx0ZXJuYXRpdmVzCisrLy8hCisrLy8hIFRoaXMgY3JhdGUgaXMgZGVh ZCBzaW1wbGUgd2l0aCBubyBkZXBlbmRlbmNpZXMuIElmIHlvdSBuZWVkIHNvbWV0aGluZyBtb3Jl CisrLy8hIGFuZCBkb24ndCBjYXJlIGFib3V0IHBhbmlja2luZyBpZiB0aGUgdmVyc2lvbiBjYW5u b3QgYmUgb2J0YWluZWQsIG9yIGlmIHlvdQorKy8vISBkb24ndCBtaW5kIGFkZGluZyBkZXBlbmRl bmNpZXMsIHNlZQorKy8vISBbcnVzdGNfdmVyc2lvbl0oaHR0cHM6Ly9jcmF0ZXMuaW8vY3JhdGVz L3J1c3RjX3ZlcnNpb24pLgorKworKyMhW2FsbG93KGRlcHJlY2F0ZWQpXQorKworK21vZCB2ZXJz aW9uOworK21vZCBjaGFubmVsOworK21vZCBkYXRlOworKworK3VzZSBzdGQ6OmVudjsKKyt1c2Ug c3RkOjpwcm9jZXNzOjpDb21tYW5kOworKworKyNbZG9jKGlubGluZSldIHB1YiB1c2UgdmVyc2lv bjo6KjsKKysjW2RvYyhpbmxpbmUpXSBwdWIgdXNlIGNoYW5uZWw6Oio7CisrI1tkb2MoaW5saW5l KV0gcHViIHVzZSBkYXRlOjoqOworKworKy8vLyBQYXJzZXMgKHZlcnNpb24sIGRhdGUpIGFzIGF2 YWlsYWJsZSBmcm9tIHJ1c3RjIHZlcnNpb24gc3RyaW5nLgorK2ZuIHZlcnNpb25fYW5kX2RhdGVf ZnJvbV9ydXN0Y192ZXJzaW9uKHM6ICZzdHIpIC0+IChPcHRpb248U3RyaW5nPiwgT3B0aW9uPFN0 cmluZz4pIHsKKysgICAgbGV0IGxhc3RfbGluZSA9IHMubGluZXMoKS5sYXN0KCkudW53cmFwX29y KHMpOworKyAgICBsZXQgbXV0IGNvbXBvbmVudHMgPSBsYXN0X2xpbmUudHJpbSgpLnNwbGl0KCIg Iik7CisrICAgIGxldCB2ZXJzaW9uID0gY29tcG9uZW50cy5udGgoMSk7CisrICAgIGxldCBkYXRl ID0gY29tcG9uZW50cy5maWx0ZXIofGN8IGMuZW5kc193aXRoKCcpJykpLm5leHQoKQorKyAgICAg ICAgLm1hcCh8c3wgcy50cmltX3JpZ2h0KCkudHJpbV9yaWdodF9tYXRjaGVzKCIpIikudHJpbV9s ZWZ0KCkudHJpbV9sZWZ0X21hdGNoZXMoJygnKSk7CisrICAgICh2ZXJzaW9uLm1hcCh8c3wgcy50 b19zdHJpbmcoKSksIGRhdGUubWFwKHxzfCBzLnRvX3N0cmluZygpKSkKKyt9CisrCisrLy8vIFBh cnNlcyAodmVyc2lvbiwgZGF0ZSkgYXMgYXZhaWxhYmxlIGZyb20gcnVzdGMgdmVyYm9zZSB2ZXJz aW9uIG91dHB1dC4KKytmbiB2ZXJzaW9uX2FuZF9kYXRlX2Zyb21fcnVzdGNfdmVyYm9zZV92ZXJz aW9uKHM6ICZzdHIpIC0+IChPcHRpb248U3RyaW5nPiwgT3B0aW9uPFN0cmluZz4pIHsKKysgICAg bGV0IChtdXQgdmVyc2lvbiwgbXV0IGRhdGUpID0gKE5vbmUsIE5vbmUpOworKyAgICBmb3IgbGlu ZSBpbiBzLmxpbmVzKCkgeworKyAgICAgICAgbGV0IHNwbGl0ID0gfHM6ICZzdHJ8IHMuc3BsaXRu KDIsICI6IikubnRoKDEpLm1hcCh8c3wgcy50cmltKCkudG9fc3RyaW5nKCkpOworKyAgICAgICAg bWF0Y2ggbGluZS50cmltKCkuc3BsaXQoIiAiKS5udGgoMCkgeworKyAgICAgICAgICAgIFNvbWUo InJ1c3RjIikgPT4geworKyAgICAgICAgICAgICAgICBsZXQgKHYsIGQpID0gdmVyc2lvbl9hbmRf ZGF0ZV9mcm9tX3J1c3RjX3ZlcnNpb24obGluZSk7CisrICAgICAgICAgICAgICAgIHZlcnNpb24g PSB2ZXJzaW9uLm9yKHYpOworKyAgICAgICAgICAgICAgICBkYXRlID0gZGF0ZS5vcihkKTsKKysg ICAgICAgICAgICB9LAorKyAgICAgICAgICAgIFNvbWUoInJlbGVhc2U6IikgPT4gdmVyc2lvbiA9 IHNwbGl0KGxpbmUpLAorKyAgICAgICAgICAgIFNvbWUoImNvbW1pdC1kYXRlOiIpIGlmIGxpbmUu ZW5kc193aXRoKCJ1bmtub3duIikgPT4gZGF0ZSA9IE5vbmUsCisrICAgICAgICAgICAgU29tZSgi Y29tbWl0LWRhdGU6IikgPT4gZGF0ZSA9IHNwbGl0KGxpbmUpLAorKyAgICAgICAgICAgIF8gPT4g Y29udGludWUKKysgICAgICAgIH0KKysgICAgfQorKworKyAgICAodmVyc2lvbiwgZGF0ZSkKKyt9 CisrCisrLy8vIFJldHVybnMgKHZlcnNpb24sIGRhdGUpIGFzIGF2YWlsYWJsZSBmcm9tIGBydXN0 YyAtLXZlcnNpb25gLgorK2ZuIGdldF92ZXJzaW9uX2FuZF9kYXRlKCkgLT4gT3B0aW9uPChPcHRp b248U3RyaW5nPiwgT3B0aW9uPFN0cmluZz4pPiB7CisrICAgIGxldCBydXN0YyA9IGVudjo6dmFy KCJSVVNUQyIpLnVud3JhcF9vcl9lbHNlKHxffCAicnVzdGMiLnRvX3N0cmluZygpKTsKKysgICAg Q29tbWFuZDo6bmV3KHJ1c3RjKS5hcmcoIi0tdmVyYm9zZSIpLmFyZygiLS12ZXJzaW9uIikub3V0 cHV0KCkub2soKQorKyAgICAgICAgLmFuZF90aGVuKHxvdXRwdXR8IFN0cmluZzo6ZnJvbV91dGY4 KG91dHB1dC5zdGRvdXQpLm9rKCkpCisrICAgICAgICAubWFwKHxzfCB2ZXJzaW9uX2FuZF9kYXRl X2Zyb21fcnVzdGNfdmVyYm9zZV92ZXJzaW9uKCZzKSkKKyt9CisrCisrLy8vIFJlYWRzIHRoZSB0 cmlwbGUgb2YgW2BWZXJzaW9uYF0sIFtgQ2hhbm5lbGBdLCBhbmQgW2BEYXRlYF0gb2YgdGhlIGlu c3RhbGxlZAorKy8vLyBvciBydW5uaW5nIGBydXN0Y2AuCisrLy8vCisrLy8vIElmIGFueSBhdHRy aWJ1dGUgY2Fubm90IGJlIGRldGVybWluZWQgKHNlZSB0aGUgW3RvcC1sZXZlbAorKy8vLyBkb2N1 bWVudGF0aW9uXShjcmF0ZSkpLCByZXR1cm5zIGBOb25lYC4KKysvLy8KKysvLy8gVG8gb2J0YWlu IG9ubHkgb25lIG9mIHRocmVlIGF0dHJpYnV0ZXMsIHVzZSBbYFZlcnNpb246OnJlYWQoKWBdLAor Ky8vLyBbYENoYW5uZWw6OnJlYWQoKWBdLCBvciBbYERhdGU6OnJlYWQoKWBdLgorK3B1YiBmbiB0 cmlwbGUoKSAtPiBPcHRpb248KFZlcnNpb24sIENoYW5uZWwsIERhdGUpPiB7CisrICAgIGxldCAo dmVyc2lvbl9zdHIsIGRhdGVfc3RyKSA9IG1hdGNoIGdldF92ZXJzaW9uX2FuZF9kYXRlKCkgewor KyAgICAgICAgU29tZSgoU29tZSh2ZXJzaW9uKSwgU29tZShkYXRlKSkpID0+ICh2ZXJzaW9uLCBk YXRlKSwKKysgICAgICAgIF8gPT4gcmV0dXJuIE5vbmUKKysgICAgfTsKKysKKysgICAgLy8gQ2Fu J3QgdXNlIGA/YCBvciBgdHJ5IWAgZm9yIGBPcHRpb25gIGluIDEuMC4wLgorKyAgICBtYXRjaCBW ZXJzaW9uOjpwYXJzZSgmdmVyc2lvbl9zdHIpIHsKKysgICAgICAgIFNvbWUodmVyc2lvbikgPT4g bWF0Y2ggQ2hhbm5lbDo6cGFyc2UoJnZlcnNpb25fc3RyKSB7CisrICAgICAgICAgICAgU29tZShj aGFubmVsKSA9PiBtYXRjaCBEYXRlOjpwYXJzZSgmZGF0ZV9zdHIpIHsKKysgICAgICAgICAgICAg ICAgU29tZShkYXRlKSA9PiBTb21lKCh2ZXJzaW9uLCBjaGFubmVsLCBkYXRlKSksCisrICAgICAg ICAgICAgICAgIF8gPT4gTm9uZSwKKysgICAgICAgICAgICB9LAorKyAgICAgICAgICAgIF8gPT4g Tm9uZSwKKysgICAgICAgIH0sCisrICAgICAgICBfID0+IE5vbmUKKysgICAgfQorK30KKysKKysv Ly8gQ2hlY2tzIHRoYXQgdGhlIHJ1bm5pbmcgb3IgaW5zdGFsbGVkIGBydXN0Y2Agd2FzIHJlbGVh c2VkICoqb24gb3IgYWZ0ZXIqKgorKy8vLyBzb21lIGRhdGUuCisrLy8vCisrLy8vIFRoZSBmb3Jt YXQgb2YgYG1pbl9kYXRlYCBtdXN0IGJlIFlZWVktTU0tREQuIEZvciBpbnN0YW5jZTogYDIwMTYt MTItMjBgIG9yCisrLy8vIGAyMDE3LTAxLTA5YC4KKysvLy8KKysvLy8gSWYgdGhlIGRhdGUgY2Fu bm90IGJlIHJldHJpZXZlZCBvciBwYXJzZWQsIG9yIGlmIGBtaW5fZGF0ZWAgY291bGQgbm90IGJl CisrLy8vIHBhcnNlZCwgcmV0dXJucyBgTm9uZWAuIE90aGVyd2lzZSByZXR1cm5zIGB0cnVlYCBp ZiB0aGUgaW5zdGFsbGVkIGBydXN0Y2AKKysvLy8gd2FzIHJlbGVhc2Ugb24gb3IgYWZ0ZXIgYG1p bl9kYXRlYCBhbmQgYGZhbHNlYCBvdGhlcndpc2UuCisrcHViIGZuIGlzX21pbl9kYXRlKG1pbl9k YXRlOiAmc3RyKSAtPiBPcHRpb248Ym9vbD4geworKyAgICBtYXRjaCAoRGF0ZTo6cmVhZCgpLCBE YXRlOjpwYXJzZShtaW5fZGF0ZSkpIHsKKysgICAgICAgIChTb21lKHJ1c3RjX2RhdGUpLCBTb21l KG1pbl9kYXRlKSkgPT4gU29tZShydXN0Y19kYXRlID49IG1pbl9kYXRlKSwKKysgICAgICAgIF8g PT4gTm9uZQorKyAgICB9CisrfQorKworKy8vLyBDaGVja3MgdGhhdCB0aGUgcnVubmluZyBvciBp bnN0YWxsZWQgYHJ1c3RjYCB3YXMgcmVsZWFzZWQgKipvbiBvciBiZWZvcmUqKgorKy8vLyBzb21l IGRhdGUuCisrLy8vCisrLy8vIFRoZSBmb3JtYXQgb2YgYG1heF9kYXRlYCBtdXN0IGJlIFlZWVkt TU0tREQuIEZvciBpbnN0YW5jZTogYDIwMTYtMTItMjBgIG9yCisrLy8vIGAyMDE3LTAxLTA5YC4K KysvLy8KKysvLy8gSWYgdGhlIGRhdGUgY2Fubm90IGJlIHJldHJpZXZlZCBvciBwYXJzZWQsIG9y IGlmIGBtYXhfZGF0ZWAgY291bGQgbm90IGJlCisrLy8vIHBhcnNlZCwgcmV0dXJucyBgTm9uZWAu IE90aGVyd2lzZSByZXR1cm5zIGB0cnVlYCBpZiB0aGUgaW5zdGFsbGVkIGBydXN0Y2AKKysvLy8g d2FzIHJlbGVhc2Ugb24gb3IgYmVmb3JlIGBtYXhfZGF0ZWAgYW5kIGBmYWxzZWAgb3RoZXJ3aXNl LgorK3B1YiBmbiBpc19tYXhfZGF0ZShtYXhfZGF0ZTogJnN0cikgLT4gT3B0aW9uPGJvb2w+IHsK KysgICAgbWF0Y2ggKERhdGU6OnJlYWQoKSwgRGF0ZTo6cGFyc2UobWF4X2RhdGUpKSB7CisrICAg ICAgICAoU29tZShydXN0Y19kYXRlKSwgU29tZShtYXhfZGF0ZSkpID0+IFNvbWUocnVzdGNfZGF0 ZSA8PSBtYXhfZGF0ZSksCisrICAgICAgICBfID0+IE5vbmUKKysgICAgfQorK30KKysKKysvLy8g Q2hlY2tzIHRoYXQgdGhlIHJ1bm5pbmcgb3IgaW5zdGFsbGVkIGBydXN0Y2Agd2FzIHJlbGVhc2Vk ICoqZXhhY3RseSoqIG9uCisrLy8vIHNvbWUgZGF0ZS4KKysvLy8KKysvLy8gVGhlIGZvcm1hdCBv ZiBgZGF0ZWAgbXVzdCBiZSBZWVlZLU1NLURELiBGb3IgaW5zdGFuY2U6IGAyMDE2LTEyLTIwYCBv cgorKy8vLyBgMjAxNy0wMS0wOWAuCisrLy8vCisrLy8vIElmIHRoZSBkYXRlIGNhbm5vdCBiZSBy ZXRyaWV2ZWQgb3IgcGFyc2VkLCBvciBpZiBgZGF0ZWAgY291bGQgbm90IGJlIHBhcnNlZCwKKysv Ly8gcmV0dXJucyBgTm9uZWAuIE90aGVyd2lzZSByZXR1cm5zIGB0cnVlYCBpZiB0aGUgaW5zdGFs bGVkIGBydXN0Y2Agd2FzCisrLy8vIHJlbGVhc2Ugb24gYGRhdGVgIGFuZCBgZmFsc2VgIG90aGVy d2lzZS4KKytwdWIgZm4gaXNfZXhhY3RfZGF0ZShkYXRlOiAmc3RyKSAtPiBPcHRpb248Ym9vbD4g eworKyAgICBtYXRjaCAoRGF0ZTo6cmVhZCgpLCBEYXRlOjpwYXJzZShkYXRlKSkgeworKyAgICAg ICAgKFNvbWUocnVzdGNfZGF0ZSksIFNvbWUoZGF0ZSkpID0+IFNvbWUocnVzdGNfZGF0ZSA9PSBk YXRlKSwKKysgICAgICAgIF8gPT4gTm9uZQorKyAgICB9CisrfQorKworKy8vLyBDaGVja3MgdGhh dCB0aGUgcnVubmluZyBvciBpbnN0YWxsZWQgYHJ1c3RjYCBpcyAqKmF0IGxlYXN0Kiogc29tZSBt aW5pbXVtCisrLy8vIHZlcnNpb24uCisrLy8vCisrLy8vIFRoZSBmb3JtYXQgb2YgYG1pbl92ZXJz aW9uYCBpcyBhIHNlbWFudGljIHZlcnNpb246IGAxLjMuMGAsIGAxLjE1LjAtYmV0YWAsCisrLy8v IGAxLjE0LjBgLCBgMS4xNi4wLW5pZ2h0bHlgLCBldGMuCisrLy8vCisrLy8vIElmIHRoZSB2ZXJz aW9uIGNhbm5vdCBiZSByZXRyaWV2ZWQgb3IgcGFyc2VkLCBvciBpZiBgbWluX3ZlcnNpb25gIGNv dWxkIG5vdAorKy8vLyBiZSBwYXJzZWQsIHJldHVybnMgYE5vbmVgLiBPdGhlcndpc2UgcmV0dXJu cyBgdHJ1ZWAgaWYgdGhlIGluc3RhbGxlZCBgcnVzdGNgCisrLy8vIGlzIGF0IGxlYXN0IGBtaW5f dmVyc2lvbmAgYW5kIGBmYWxzZWAgb3RoZXJ3aXNlLgorK3B1YiBmbiBpc19taW5fdmVyc2lvbiht aW5fdmVyc2lvbjogJnN0cikgLT4gT3B0aW9uPGJvb2w+IHsKKysgICAgbWF0Y2ggKFZlcnNpb246 OnJlYWQoKSwgVmVyc2lvbjo6cGFyc2UobWluX3ZlcnNpb24pKSB7CisrICAgICAgICAoU29tZShy dXN0Y192ZXIpLCBTb21lKG1pbl92ZXIpKSA9PiBTb21lKHJ1c3RjX3ZlciA+PSBtaW5fdmVyKSwK KysgICAgICAgIF8gPT4gTm9uZQorKyAgICB9CisrfQorKworKy8vLyBDaGVja3MgdGhhdCB0aGUg cnVubmluZyBvciBpbnN0YWxsZWQgYHJ1c3RjYCBpcyAqKmF0IG1vc3QqKiBzb21lIG1heGltdW0K KysvLy8gdmVyc2lvbi4KKysvLy8KKysvLy8gVGhlIGZvcm1hdCBvZiBgbWF4X3ZlcnNpb25gIGlz IGEgc2VtYW50aWMgdmVyc2lvbjogYDEuMy4wYCwgYDEuMTUuMC1iZXRhYCwKKysvLy8gYDEuMTQu MGAsIGAxLjE2LjAtbmlnaHRseWAsIGV0Yy4KKysvLy8KKysvLy8gSWYgdGhlIHZlcnNpb24gY2Fu bm90IGJlIHJldHJpZXZlZCBvciBwYXJzZWQsIG9yIGlmIGBtYXhfdmVyc2lvbmAgY291bGQgbm90 CisrLy8vIGJlIHBhcnNlZCwgcmV0dXJucyBgTm9uZWAuIE90aGVyd2lzZSByZXR1cm5zIGB0cnVl YCBpZiB0aGUgaW5zdGFsbGVkIGBydXN0Y2AKKysvLy8gaXMgYXQgbW9zdCBgbWF4X3ZlcnNpb25g IGFuZCBgZmFsc2VgIG90aGVyd2lzZS4KKytwdWIgZm4gaXNfbWF4X3ZlcnNpb24obWF4X3ZlcnNp b246ICZzdHIpIC0+IE9wdGlvbjxib29sPiB7CisrICAgIG1hdGNoIChWZXJzaW9uOjpyZWFkKCks IFZlcnNpb246OnBhcnNlKG1heF92ZXJzaW9uKSkgeworKyAgICAgICAgKFNvbWUocnVzdGNfdmVy KSwgU29tZShtYXhfdmVyKSkgPT4gU29tZShydXN0Y192ZXIgPD0gbWF4X3ZlciksCisrICAgICAg ICBfID0+IE5vbmUKKysgICAgfQorK30KKysKKysvLy8gQ2hlY2tzIHRoYXQgdGhlIHJ1bm5pbmcg b3IgaW5zdGFsbGVkIGBydXN0Y2AgaXMgKipleGFjdGx5Kiogc29tZSB2ZXJzaW9uLgorKy8vLwor Ky8vLyBUaGUgZm9ybWF0IG9mIGB2ZXJzaW9uYCBpcyBhIHNlbWFudGljIHZlcnNpb246IGAxLjMu MGAsIGAxLjE1LjAtYmV0YWAsCisrLy8vIGAxLjE0LjBgLCBgMS4xNi4wLW5pZ2h0bHlgLCBldGMu CisrLy8vCisrLy8vIElmIHRoZSB2ZXJzaW9uIGNhbm5vdCBiZSByZXRyaWV2ZWQgb3IgcGFyc2Vk LCBvciBpZiBgdmVyc2lvbmAgY291bGQgbm90IGJlCisrLy8vIHBhcnNlZCwgcmV0dXJucyBgTm9u ZWAuIE90aGVyd2lzZSByZXR1cm5zIGB0cnVlYCBpZiB0aGUgaW5zdGFsbGVkIGBydXN0Y2AgaXMK KysvLy8gZXhhY3RseSBgdmVyc2lvbmAgYW5kIGBmYWxzZWAgb3RoZXJ3aXNlLgorK3B1YiBmbiBp c19leGFjdF92ZXJzaW9uKHZlcnNpb246ICZzdHIpIC0+IE9wdGlvbjxib29sPiB7CisrICAgIG1h dGNoIChWZXJzaW9uOjpyZWFkKCksIFZlcnNpb246OnBhcnNlKHZlcnNpb24pKSB7CisrICAgICAg ICAoU29tZShydXN0Y192ZXIpLCBTb21lKHZlcnNpb24pKSA9PiBTb21lKHJ1c3RjX3ZlciA9PSB2 ZXJzaW9uKSwKKysgICAgICAgIF8gPT4gTm9uZQorKyAgICB9CisrfQorKworKy8vLyBDaGVja3Mg d2hldGhlciB0aGUgcnVubmluZyBvciBpbnN0YWxsZWQgYHJ1c3RjYCBzdXBwb3J0cyBmZWF0dXJl IGZsYWdzLgorKy8vLworKy8vLyBJbiBvdGhlciB3b3JkcywgaWYgdGhlIGNoYW5uZWwgaXMgZWl0 aGVyICJuaWdodGx5IiBvciAiZGV2Ii4KKysvLy8KKysvLy8gTm90ZSB0aGF0IHN1cHBvcnQgZm9y IHNwZWNpZmljIGBydXN0Y2AgZmVhdHVyZXMgY2FuIGJlIGVuYWJsZWQgb3IgZGlzYWJsZWQKKysv Ly8gdmlhIHRoZSBgYWxsb3ctZmVhdHVyZXNgIGNvbXBpbGVyIGZsYWcsIHdoaWNoIHRoaXMgZnVu Y3Rpb24gX2RvZXMgbm90XworKy8vLyBjaGVjay4gVGhhdCBpcywgdGhpcyBmdW5jdGlvbiBfZG9l cyBub3RfIGNoZWNrIHdoZXRoZXIgYSBfc3BlY2lmaWNfIGZlYXR1cmUKKysvLy8gaXMgc3VwcG9y dGVkLCBidXQgaW5zdGVhZCB3aGV0aGVyIGZlYXR1cmVzIGFyZSBzdXBwb3J0ZWQgYXQgYWxsLiBU byBjaGVjaworKy8vLyBmb3Igc3VwcG9ydCBmb3IgYSBzcGVjaWZpYyBmZWF0dXJlLCB1c2UgW2Bz dXBwb3J0c19mZWF0dXJlKClgXS4KKysvLy8KKysvLy8gSWYgdGhlIHZlcnNpb24gY291bGQgbm90 IGJlIGRldGVybWluZWQsIHJldHVybnMgYE5vbmVgLiBPdGhlcndpc2UgcmV0dXJucworKy8vLyBg dHJ1ZWAgaWYgdGhlIHJ1bm5pbmcgdmVyc2lvbiBzdXBwb3J0cyBmZWF0dXJlIGZsYWdzIGFuZCBg ZmFsc2VgIG90aGVyd2lzZS4KKytwdWIgZm4gaXNfZmVhdHVyZV9mbGFnZ2FibGUoKSAtPiBPcHRp b248Ym9vbD4geworKyAgICBDaGFubmVsOjpyZWFkKCkubWFwKHxjfCBjLnN1cHBvcnRzX2ZlYXR1 cmVzKCkpCisrfQorKworKy8vLyBDaGVja3Mgd2hldGhlciB0aGUgcnVubmluZyBvciBpbnN0YWxs ZWQgYHJ1c3RjYCBzdXBwb3J0cyBgZmVhdHVyZWAuCisrLy8vCisrLy8vIFJldHVybnMgX3RydWVf IF9pZmZfIFtgaXNfZmVhdHVyZV9mbGFnZ2FibGUoKWBdIHJldHVybnMgYHRydWVgIF9hbmRfIHRo ZQorKy8vLyBmZWF0dXJlIGlzIG5vdCBkaXNhYmxlZCB2aWEgZXhjbHVzaW9uIGluIGBhbGxvdy1m ZWF0dXJlc2AgdmlhIGBSVVNURkxBR1NgIG9yCisrLy8vIGBDQVJHT19FTkNPREVEX1JVU1RGTEFH U2AuIElmIHRoZSB2ZXJzaW9uIGNvdWxkIG5vdCBiZSBkZXRlcm1pbmVkLCByZXR1cm5zCisrLy8v IGBOb25lYC4KKysvLy8KKysvLy8gIyBFeGFtcGxlCisrLy8vCisrLy8vIGBgYHJ1c3QKKysvLy8g dXNlIHZlcnNpb25fY2hlY2sgYXMgcnVzdGM7CisrLy8vCisrLy8vIGlmIGxldCBTb21lKHRydWUp ID0gcnVzdGM6OnN1cHBvcnRzX2ZlYXR1cmUoImRvY19jZmciKSB7CisrLy8vICAgIHByaW50bG4h KCJjYXJnbzpydXN0Yy1jZmc9aGFzX2RvY19jZmciKTsKKysvLy8gfQorKy8vLyBgYGAKKytwdWIg Zm4gc3VwcG9ydHNfZmVhdHVyZShmZWF0dXJlOiAmc3RyKSAtPiBPcHRpb248Ym9vbD4geworKyAg ICBtYXRjaCBpc19mZWF0dXJlX2ZsYWdnYWJsZSgpIHsKKysgICAgICAgIFNvbWUodHJ1ZSkgPT4g eyAvKiBjb250aW51ZSAqLyB9CisrICAgICAgICBTb21lKGZhbHNlKSA9PiByZXR1cm4gU29tZShm YWxzZSksCisrICAgICAgICBOb25lID0+IHJldHVybiBOb25lLAorKyAgICB9CisrCisrICAgIGxl dCBlbnZfZmxhZ3MgPSBlbnY6OnZhcl9vcygiQ0FSR09fRU5DT0RFRF9SVVNURkxBR1MiKQorKyAg ICAgICAgLm1hcCh8ZmxhZ3N8IChmbGFncywgJ1x4MWYnKSkKKysgICAgICAgIC5vcl9lbHNlKHx8 IGVudjo6dmFyX29zKCJSVVNURkxBR1MiKS5tYXAofGZsYWdzfCAoZmxhZ3MsICcgJykpKTsKKysK KysgICAgaWYgbGV0IFNvbWUoKGZsYWdzLCBkZWxpbSkpID0gZW52X2ZsYWdzIHsKKysgICAgICAg IGNvbnN0IEFMTE9XX0ZFQVRVUkVTOiAmJ3N0YXRpYyBzdHIgPSAiYWxsb3ctZmVhdHVyZXM9IjsK KysKKysgICAgICAgIGxldCBydXN0ZmxhZ3MgPSBmbGFncy50b19zdHJpbmdfbG9zc3koKTsKKysg ICAgICAgIGxldCBhbGxvd19mZWF0dXJlcyA9IHJ1c3RmbGFncy5zcGxpdChkZWxpbSkKKysgICAg ICAgICAgICAubWFwKHxmbGFnfCBmbGFnLnRyaW1fbGVmdF9tYXRjaGVzKCItWiIpLnRyaW0oKSkK KysgICAgICAgICAgICAuZmlsdGVyKHxmbGFnfCBmbGFnLnN0YXJ0c193aXRoKEFMTE9XX0ZFQVRV UkVTKSkKKysgICAgICAgICAgICAubWFwKHxmbGFnfCAmZmxhZ1tBTExPV19GRUFUVVJFUy5sZW4o KS4uXSk7CisrCisrICAgICAgICBpZiBsZXQgU29tZShhbGxvd19mZWF0dXJlcykgPSBhbGxvd19m ZWF0dXJlcy5sYXN0KCkgeworKyAgICAgICAgICAgIHJldHVybiBTb21lKGFsbG93X2ZlYXR1cmVz LnNwbGl0KCcsJykuYW55KHxmfCBmLnRyaW0oKSA9PSBmZWF0dXJlKSk7CisrICAgICAgICB9Cisr ICAgIH0KKysKKysgICAgLy8gSWYgdGhlcmUgYXJlIG5vIGBSVVNURkxBR1NgIG9yIGBDQVJHT19F TkNPREVEX1JVU1RGTEFHU2Agb3IgdGhleSBkb24ndAorKyAgICAvLyBjb250YWluIGFuIGBhbGxv dy1mZWF0dXJlc2AgZmxhZywgYXNzdW1lIGNvbXBpbGVyIGFsbG93cyBhbGwgZmVhdHVyZXMuCisr ICAgIFNvbWUodHJ1ZSkKKyt9CisrCisrI1tjZmcodGVzdCldCisrbW9kIHRlc3RzIHsKKysgICAg dXNlIHN0ZDo6e2VudiwgZnN9OworKworKyAgICB1c2Ugc3VwZXI6OnZlcnNpb25fYW5kX2RhdGVf ZnJvbV9ydXN0Y192ZXJzaW9uOworKyAgICB1c2Ugc3VwZXI6OnZlcnNpb25fYW5kX2RhdGVfZnJv bV9ydXN0Y192ZXJib3NlX3ZlcnNpb247CisrCisrICAgIG1hY3JvX3J1bGVzISBjaGVja19wYXJz ZSB7CisrICAgICAgICAoQCAkZjpleHByLCAkczpleHByID0+ICR2OmV4cHIsICRkOmV4cHIpID0+ ICh7CisrICAgICAgICAgICAgaWYgbGV0IChTb21lKHYpLCBkKSA9ICRmKCYkcykgeworKyAgICAg ICAgICAgICAgICBsZXQgZV9kOiBPcHRpb248JnN0cj4gPSAkZC5pbnRvKCk7CisrICAgICAgICAg ICAgICAgIGFzc2VydF9lcSEoKHYsIGQpLCAoJHYudG9fc3RyaW5nKCksIGVfZC5tYXAofHN8IHMu aW50bygpKSkpOworKyAgICAgICAgICAgIH0gZWxzZSB7CisrICAgICAgICAgICAgICAgIHBhbmlj ISgiezo/fSBkaWRuJ3QgcGFyc2UgZm9yIHZlcnNpb24gdGVzdGluZy4iLCAkcyk7CisrICAgICAg ICAgICAgfQorKyAgICAgICAgfSk7CisrICAgICAgICAoJGY6ZXhwciwgJHM6ZXhwciA9PiAkdjpl eHByLCAkZDpleHByKSA9PiAoeworKyAgICAgICAgICAgIGxldCB3YXJuID0gIndhcm5pbmc6IGlu dmFsaWQgbG9nZ2luZyBzcGVjICd3YXJuaW5nJywgaWdub3JpbmcgaXQiOworKyAgICAgICAgICAg IGxldCB3YXJuMiA9ICJ3YXJuaW5nOiBzb3JyeSwgc29tZXRoaW5nIHdlbnQgd3JvbmcgOihzYWQp IjsKKysgICAgICAgICAgICBjaGVja19wYXJzZSEoQCAkZiwgJHMgPT4gJHYsICRkKTsKKysgICAg ICAgICAgICBjaGVja19wYXJzZSEoQCAkZiwgJmZvcm1hdCEoInt9XG57fSIsIHdhcm4sICRzKSA9 PiAkdiwgJGQpOworKyAgICAgICAgICAgIGNoZWNrX3BhcnNlIShAICRmLCAmZm9ybWF0ISgie31c bnt9Iiwgd2FybjIsICRzKSA9PiAkdiwgJGQpOworKyAgICAgICAgICAgIGNoZWNrX3BhcnNlIShA ICRmLCAmZm9ybWF0ISgie31cbnt9XG57fSIsIHdhcm4sIHdhcm4yLCAkcykgPT4gJHYsICRkKTsK KysgICAgICAgICAgICBjaGVja19wYXJzZSEoQCAkZiwgJmZvcm1hdCEoInt9XG57fVxue30iLCB3 YXJuMiwgd2FybiwgJHMpID0+ICR2LCAkZCk7CisrICAgICAgICB9KQorKyAgICB9CisrCisrICAg IG1hY3JvX3J1bGVzISBjaGVja190ZXJzZV9wYXJzZSB7CisrICAgICAgICAoJCgkczpleHByID0+ ICR2OmV4cHIsICRkOmV4cHIsKSspID0+IHskKAorKyAgICAgICAgICAgIGNoZWNrX3BhcnNlISh2 ZXJzaW9uX2FuZF9kYXRlX2Zyb21fcnVzdGNfdmVyc2lvbiwgJHMgPT4gJHYsICRkKTsKKysgICAg ICAgICkrfQorKyAgICB9CisrCisrICAgIG1hY3JvX3J1bGVzISBjaGVja192ZXJib3NlX3BhcnNl IHsKKysgICAgICAgICgkKCRzOmV4cHIgPT4gJHY6ZXhwciwgJGQ6ZXhwciwpKykgPT4geyQoCisr ICAgICAgICAgICAgY2hlY2tfcGFyc2UhKHZlcnNpb25fYW5kX2RhdGVfZnJvbV9ydXN0Y192ZXJi b3NlX3ZlcnNpb24sICRzID0+ICR2LCAkZCk7CisrICAgICAgICApK30KKysgICAgfQorKworKyAg ICAjW3Rlc3RdCisrICAgIGZuIHRlc3RfdmVyc2lvbl9wYXJzZSgpIHsKKysgICAgICAgIGNoZWNr X3RlcnNlX3BhcnNlISB7CisrICAgICAgICAgICAgInJ1c3RjIDEuMTguMCIgPT4gIjEuMTguMCIs IE5vbmUsCisrICAgICAgICAgICAgInJ1c3RjIDEuOC4wIiA9PiAiMS44LjAiLCBOb25lLAorKyAg ICAgICAgICAgICJydXN0YyAxLjIwLjAtbmlnaHRseSIgPT4gIjEuMjAuMC1uaWdodGx5IiwgTm9u ZSwKKysgICAgICAgICAgICAicnVzdGMgMS4yMCIgPT4gIjEuMjAiLCBOb25lLAorKyAgICAgICAg ICAgICJydXN0YyAxLjMiID0+ICIxLjMiLCBOb25lLAorKyAgICAgICAgICAgICJydXN0YyAxIiA9 PiAiMSIsIE5vbmUsCisrICAgICAgICAgICAgInJ1c3RjIDEuNS4xLWJldGEiID0+ICIxLjUuMS1i ZXRhIiwgTm9uZSwKKysgICAgICAgICAgICAicnVzdGMgMS4yMC4wICgyMDE3LTA3LTA5KSIgPT4g IjEuMjAuMCIsIFNvbWUoIjIwMTctMDctMDkiKSwKKysgICAgICAgICAgICAicnVzdGMgMS4yMC4w LWRldiAoMjAxNy0wNy0wOSkiID0+ICIxLjIwLjAtZGV2IiwgU29tZSgiMjAxNy0wNy0wOSIpLAor KyAgICAgICAgICAgICJydXN0YyAxLjIwLjAtbmlnaHRseSAoZDg0NjkzYjkzIDIwMTctMDctMDkp IiA9PiAiMS4yMC4wLW5pZ2h0bHkiLCBTb21lKCIyMDE3LTA3LTA5IiksCisrICAgICAgICAgICAg InJ1c3RjIDEuMjAuMCAoZDg0NjkzYjkzIDIwMTctMDctMDkpIiA9PiAiMS4yMC4wIiwgU29tZSgi MjAxNy0wNy0wOSIpLAorKyAgICAgICAgICAgICJydXN0YyAxLjMwLjAtbmlnaHRseSAoM2JjMmNh N2U0IDIwMTgtMDktMjApIiA9PiAiMS4zMC4wLW5pZ2h0bHkiLCBTb21lKCIyMDE4LTA5LTIwIiks CisrICAgICAgICB9OworKyAgICB9CisrCisrICAgICNbdGVzdF0KKysgICAgZm4gdGVzdF92ZXJi b3NlX3ZlcnNpb25fcGFyc2UoKSB7CisrICAgICAgICBjaGVja192ZXJib3NlX3BhcnNlISB7Cisr ICAgICAgICAgICAgInJ1c3RjIDEuMC4wIChhNTlkZTM3ZTkgMjAxNS0wNS0xMykgKGJ1aWx0IDIw MTUtMDUtMTQpXG5cCisrICAgICAgICAgICAgICAgIGJpbmFyeTogcnVzdGNcblwKKysgICAgICAg ICAgICAgICAgY29tbWl0LWhhc2g6IGE1OWRlMzdlOTkwNjAxNjJhMjY3NGUzZmY0NTQwOWFjNzM1 OTVjMGVcblwKKysgICAgICAgICAgICAgICAgY29tbWl0LWRhdGU6IDIwMTUtMDUtMTNcblwKKysg ICAgICAgICAgICAgICAgYnVpbGQtZGF0ZTogMjAxNS0wNS0xNFxuXAorKyAgICAgICAgICAgICAg ICBob3N0OiB4ODZfNjQtdW5rbm93bi1saW51eC1nbnVcblwKKysgICAgICAgICAgICAgICAgcmVs ZWFzZTogMS4wLjAiID0+ICIxLjAuMCIsIFNvbWUoIjIwMTUtMDUtMTMiKSwKKysKKysgICAgICAg ICAgICAicnVzdGMgMS4wLjAgKGE1OWRlMzdlOSAyMDE1LTA1LTEzKSAoYnVpbHQgMjAxNS0wNS0x NClcblwKKysgICAgICAgICAgICAgICAgY29tbWl0LWhhc2g6IGE1OWRlMzdlOTkwNjAxNjJhMjY3 NGUzZmY0NTQwOWFjNzM1OTVjMGVcblwKKysgICAgICAgICAgICAgICAgY29tbWl0LWRhdGU6IDIw MTUtMDUtMTNcblwKKysgICAgICAgICAgICAgICAgYnVpbGQtZGF0ZTogMjAxNS0wNS0xNFxuXAor KyAgICAgICAgICAgICAgICBob3N0OiB4ODZfNjQtdW5rbm93bi1saW51eC1nbnVcblwKKysgICAg ICAgICAgICAgICAgcmVsZWFzZTogMS4wLjAiID0+ICIxLjAuMCIsIFNvbWUoIjIwMTUtMDUtMTMi KSwKKysKKysgICAgICAgICAgICAicnVzdGMgMS41MC4wIChjYjc1YWQ1ZGIgMjAyMS0wMi0xMClc blwKKysgICAgICAgICAgICAgICAgYmluYXJ5OiBydXN0Y1xuXAorKyAgICAgICAgICAgICAgICBj b21taXQtaGFzaDogY2I3NWFkNWRiMDI3ODNlOGIwMjIyZmVlMzYzYzVmNjNmN2UyY2Y1YlxuXAor KyAgICAgICAgICAgICAgICBjb21taXQtZGF0ZTogMjAyMS0wMi0xMFxuXAorKyAgICAgICAgICAg ICAgICBob3N0OiB4ODZfNjQtdW5rbm93bi1saW51eC1nbnVcblwKKysgICAgICAgICAgICAgICAg cmVsZWFzZTogMS41MC4wIiA9PiAiMS41MC4wIiwgU29tZSgiMjAyMS0wMi0xMCIpLAorKworKyAg ICAgICAgICAgICJydXN0YyAxLjUyLjAtbmlnaHRseSAoMjM0NzgxYWZlIDIwMjEtMDMtMDcpXG5c CisrICAgICAgICAgICAgICAgIGJpbmFyeTogcnVzdGNcblwKKysgICAgICAgICAgICAgICAgY29t bWl0LWhhc2g6IDIzNDc4MWFmZTMzZDNmMzM5YjAwMmY4NWY5NDgwNDZkODQ3NmNmYzlcblwKKysg ICAgICAgICAgICAgICAgY29tbWl0LWRhdGU6IDIwMjEtMDMtMDdcblwKKysgICAgICAgICAgICAg ICAgaG9zdDogeDg2XzY0LXVua25vd24tbGludXgtZ251XG5cCisrICAgICAgICAgICAgICAgIHJl bGVhc2U6IDEuNTIuMC1uaWdodGx5XG5cCisrICAgICAgICAgICAgICAgIExMVk0gdmVyc2lvbjog MTIuMC4wIiA9PiAiMS41Mi4wLW5pZ2h0bHkiLCBTb21lKCIyMDIxLTAzLTA3IiksCisrCisrICAg ICAgICAgICAgInJ1c3RjIDEuNDEuMVxuXAorKyAgICAgICAgICAgICAgICBiaW5hcnk6IHJ1c3Rj XG5cCisrICAgICAgICAgICAgICAgIGNvbW1pdC1oYXNoOiB1bmtub3duXG5cCisrICAgICAgICAg ICAgICAgIGNvbW1pdC1kYXRlOiB1bmtub3duXG5cCisrICAgICAgICAgICAgICAgIGhvc3Q6IHg4 Nl82NC11bmtub3duLWxpbnV4LWdudVxuXAorKyAgICAgICAgICAgICAgICByZWxlYXNlOiAxLjQx LjFcblwKKysgICAgICAgICAgICAgICAgTExWTSB2ZXJzaW9uOiA3LjAiID0+ICIxLjQxLjEiLCBO b25lLAorKworKyAgICAgICAgICAgICJydXN0YyAxLjQ5LjBcblwKKysgICAgICAgICAgICAgICAg YmluYXJ5OiBydXN0Y1xuXAorKyAgICAgICAgICAgICAgICBjb21taXQtaGFzaDogdW5rbm93blxu XAorKyAgICAgICAgICAgICAgICBjb21taXQtZGF0ZTogdW5rbm93blxuXAorKyAgICAgICAgICAg ICAgICBob3N0OiB4ODZfNjQtdW5rbm93bi1saW51eC1nbnVcblwKKysgICAgICAgICAgICAgICAg cmVsZWFzZTogMS40OS4wIiA9PiAiMS40OS4wIiwgTm9uZSwKKysKKysgICAgICAgICAgICAicnVz dGMgMS41MC4wIChGZWRvcmEgMS41MC4wLTEuZmMzMylcblwKKysgICAgICAgICAgICAgICAgYmlu YXJ5OiBydXN0Y1xuXAorKyAgICAgICAgICAgICAgICBjb21taXQtaGFzaDogdW5rbm93blxuXAor KyAgICAgICAgICAgICAgICBjb21taXQtZGF0ZTogdW5rbm93blxuXAorKyAgICAgICAgICAgICAg ICBob3N0OiB4ODZfNjQtdW5rbm93bi1saW51eC1nbnVcblwKKysgICAgICAgICAgICAgICAgcmVs ZWFzZTogMS41MC4wIiA9PiAiMS41MC4wIiwgTm9uZSwKKysgICAgICAgIH07CisrICAgIH0KKysK KysgICAgZm4gcmVhZF9zdGF0aWModmVyYm9zZTogYm9vbCwgY2hhbm5lbDogJnN0ciwgbWlub3I6 IHVzaXplKSAtPiBTdHJpbmcgeworKyAgICAgICAgdXNlIHN0ZDo6ZnM6OkZpbGU7CisrICAgICAg ICB1c2Ugc3RkOjpwYXRoOjpQYXRoOworKyAgICAgICAgdXNlIHN0ZDo6aW86OntCdWZSZWFkZXIs IFJlYWR9OworKworKyAgICAgICAgbGV0IHN1YmRpciA9IGlmIHZlcmJvc2UgeyAidmVyYm9zZSIg fSBlbHNlIHsgInRlcnNlIiB9OworKyAgICAgICAgbGV0IHBhdGggPSBQYXRoOjpuZXcoU1RBVElD X1BBVEgpCisrICAgICAgICAgICAgLmpvaW4oY2hhbm5lbCkKKysgICAgICAgICAgICAuam9pbihz dWJkaXIpCisrICAgICAgICAgICAgLmpvaW4oZm9ybWF0ISgicnVzdGMtMS57fS4wIiwgbWlub3Ip KTsKKysKKysgICAgICAgIGxldCBmaWxlID0gRmlsZTo6b3BlbihwYXRoKS51bndyYXAoKTsKKysg ICAgICAgIGxldCBtdXQgYnVmX3JlYWRlciA9IEJ1ZlJlYWRlcjo6bmV3KGZpbGUpOworKyAgICAg ICAgbGV0IG11dCBjb250ZW50cyA9IFN0cmluZzo6bmV3KCk7CisrICAgICAgICBidWZfcmVhZGVy LnJlYWRfdG9fc3RyaW5nKCZtdXQgY29udGVudHMpLnVud3JhcCgpOworKyAgICAgICAgY29udGVu dHMKKysgICAgfQorKworKyAgICBzdGF0aWMgU1RBVElDX1BBVEg6ICYnc3RhdGljIHN0ciA9IGNv bmNhdCEoZW52ISgiQ0FSR09fTUFOSUZFU1RfRElSIiksICIvc3RhdGljIik7CisrCisrICAgIHN0 YXRpYyBEQVRFUzogWyYnc3RhdGljIHN0cjsgNTFdID0gWworKyAgICAgICAgIjIwMTUtMDUtMTMi LCAiMjAxNS0wNi0xOSIsICIyMDE1LTA4LTAzIiwgIjIwMTUtMDktMTUiLCAiMjAxNS0xMC0yNyIs CisrICAgICAgICAiMjAxNS0xMi0wNCIsICIyMDE2LTAxLTE5IiwgIjIwMTYtMDItMjkiLCAiMjAx Ni0wNC0xMSIsICIyMDE2LTA1LTE4IiwKKysgICAgICAgICIyMDE2LTA3LTAzIiwgIjIwMTYtMDgt MTUiLCAiMjAxNi0wOS0yMyIsICIyMDE2LTExLTA3IiwgIjIwMTYtMTItMTYiLAorKyAgICAgICAg IjIwMTctMDEtMTkiLCAiMjAxNy0wMy0xMCIsICIyMDE3LTA0LTI0IiwgIjIwMTctMDYtMDYiLCAi MjAxNy0wNy0xNyIsCisrICAgICAgICAiMjAxNy0wOC0yNyIsICIyMDE3LTEwLTA5IiwgIjIwMTct MTEtMjAiLCAiMjAxOC0wMS0wMSIsICIyMDE4LTAyLTEyIiwKKysgICAgICAgICIyMDE4LTAzLTI1 IiwgIjIwMTgtMDUtMDciLCAiMjAxOC0wNi0xOSIsICIyMDE4LTA3LTMwIiwgIjIwMTgtMDktMTEi LAorKyAgICAgICAgIjIwMTgtMTAtMjQiLCAiMjAxOC0xMi0wNCIsICIyMDE5LTAxLTE2IiwgIjIw MTktMDItMjgiLCAiMjAxOS0wNC0xMCIsCisrICAgICAgICAiMjAxOS0wNS0yMCIsICIyMDE5LTA3 LTAzIiwgIjIwMTktMDgtMTMiLCAiMjAxOS0wOS0yMyIsICIyMDE5LTExLTA0IiwKKysgICAgICAg ICIyMDE5LTEyLTE2IiwgIjIwMjAtMDEtMjciLCAiMjAyMC0wMy0wOSIsICIyMDIwLTA0LTIwIiwg IjIwMjAtMDYtMDEiLAorKyAgICAgICAgIjIwMjAtMDctMTMiLCAiMjAyMC0wOC0yNCIsICIyMDIw LTEwLTA3IiwgIjIwMjAtMTEtMTYiLCAiMjAyMC0xMi0yOSIsCisrICAgICAgICAiMjAyMS0wMi0x MCIsCisrICAgIF07CisrCisrICAgICNbdGVzdF0KKysgICAgZm4gdGVzdF9zdGFibGVfY29tcGF0 aWJpbGl0eSgpIHsKKysgICAgICAgIGlmIGVudjo6dmFyX29zKCJGT1JDRV9TVEFUSUMiKS5pc19u b25lKCkgJiYgZnM6Om1ldGFkYXRhKFNUQVRJQ19QQVRIKS5pc19lcnIoKSB7CisrICAgICAgICAg ICAgLy8gV2UgZXhjbHVkZSBgL3N0YXRpY2Agd2hlbiB3ZSBwYWNrYWdlIGB2ZXJzaW9uX2NoZWNr YCwgc28gZG9uJ3QKKysgICAgICAgICAgICAvLyBydW4gaWYgc3RhdGljIGZpbGVzIGFyZW4ndCBw cmVzZW50IHVubGVzcyB3ZSBrbm93IHRoZXkgc2hvdWxkIGJlLgorKyAgICAgICAgICAgIHJldHVy bjsKKysgICAgICAgIH0KKysKKysgICAgICAgIC8vIEVuc3VyZSB3ZSBjYW4gcGFyc2UgYWxsIG91 dHB1dCBmcm9tIGFsbCBMaW51eCBzdGFibGUgcmVsZWFzZXMuCisrICAgICAgICBmb3IgdiBpbiAw Li5EQVRFUy5sZW4oKSB7CisrICAgICAgICAgICAgbGV0ICh2ZXJzaW9uLCBkYXRlKSA9ICgmZm9y bWF0ISgiMS57fS4wIiwgdiksIFNvbWUoREFURVNbdl0pKTsKKysgICAgICAgICAgICBjaGVja190 ZXJzZV9wYXJzZSEocmVhZF9zdGF0aWMoZmFsc2UsICJzdGFibGUiLCB2KSA9PiB2ZXJzaW9uLCBk YXRlLCk7CisrICAgICAgICAgICAgY2hlY2tfdmVyYm9zZV9wYXJzZSEocmVhZF9zdGF0aWModHJ1 ZSwgInN0YWJsZSIsIHYpID0+IHZlcnNpb24sIGRhdGUsKTsKKysgICAgICAgIH0KKysgICAgfQor KworKyAgICAjW3Rlc3RdCisrICAgIGZuIHRlc3RfcGFyc2VfY3VycmVudCgpIHsKKysgICAgICAg IGxldCAodmVyc2lvbiwgY2hhbm5lbCkgPSAoOjpWZXJzaW9uOjpyZWFkKCksIDo6Q2hhbm5lbDo6 cmVhZCgpKTsKKysgICAgICAgIGFzc2VydCEodmVyc2lvbi5pc19zb21lKCkpOworKyAgICAgICAg YXNzZXJ0IShjaGFubmVsLmlzX3NvbWUoKSk7CisrCisrICAgICAgICBpZiBsZXQgT2soa25vd25f Y2hhbm5lbCkgPSBlbnY6OnZhcigiS05PV05fQ0hBTk5FTCIpIHsKKysgICAgICAgICAgICBhc3Nl cnRfZXEhKGNoYW5uZWwsIDo6Q2hhbm5lbDo6cGFyc2UoJmtub3duX2NoYW5uZWwpKTsKKysgICAg ICAgIH0KKysgICAgfQorK30KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3ZlcnNpb25f Y2hlY2svc3JjL3ZlcnNpb24ucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3ZlcnNpb25fY2hlY2svc3Jj L3ZlcnNpb24ucnMKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CistLS0gL2Rldi9udWxsCisrKysgYi90 aGlyZF9wYXJ0eS9ydXN0L3ZlcnNpb25fY2hlY2svc3JjL3ZlcnNpb24ucnMKK0BAIC0wLDAgKzEs MzE2IEBACisrdXNlIHN0ZDo6Zm10OworKworKy8vLyBWZXJzaW9uIG51bWJlcjogYG1ham9yLm1p bm9yLnBhdGNoYCwgaWdub3JpbmcgcmVsZWFzZSBjaGFubmVsLgorKyNbZGVyaXZlKFBhcnRpYWxF cSwgRXEsIENvcHksIENsb25lLCBQYXJ0aWFsT3JkLCBPcmQpXQorK3B1YiBzdHJ1Y3QgVmVyc2lv bih1NjQpOworKworK2ltcGwgVmVyc2lvbiB7CisrICAgIC8vLyBSZWFkcyB0aGUgdmVyc2lvbiBv ZiB0aGUgcnVubmluZyBjb21waWxlci4gSWYgaXQgY2Fubm90IGJlIGRldGVybWluZWQKKysgICAg Ly8vIChzZWUgdGhlIFt0b3AtbGV2ZWwgZG9jdW1lbnRhdGlvbl0oY3JhdGUpKSwgcmV0dXJucyBg Tm9uZWAuCisrICAgIC8vLworKyAgICAvLy8gIyBFeGFtcGxlCisrICAgIC8vLworKyAgICAvLy8g YGBgcnVzdAorKyAgICAvLy8gdXNlIHZlcnNpb25fY2hlY2s6OlZlcnNpb247CisrICAgIC8vLwor KyAgICAvLy8gbWF0Y2ggVmVyc2lvbjo6cmVhZCgpIHsKKysgICAgLy8vICAgICBTb21lKGQpID0+ IGZvcm1hdCEoIlZlcnNpb24gaXM6IHt9IiwgZCksCisrICAgIC8vLyAgICAgTm9uZSA9PiBmb3Jt YXQhKCJGYWlsZWQgdG8gcmVhZCB0aGUgdmVyc2lvbi4iKQorKyAgICAvLy8gfTsKKysgICAgLy8v IGBgYAorKyAgICBwdWIgZm4gcmVhZCgpIC0+IE9wdGlvbjxWZXJzaW9uPiB7CisrICAgICAgICA6 OmdldF92ZXJzaW9uX2FuZF9kYXRlKCkKKysgICAgICAgICAgICAuYW5kX3RoZW4ofCh2ZXJzaW9u LCBfKXwgdmVyc2lvbikKKysgICAgICAgICAgICAuYW5kX3RoZW4ofHZlcnNpb258IFZlcnNpb246 OnBhcnNlKCZ2ZXJzaW9uKSkKKysgICAgfQorKworKworKyAgICAvLy8gUGFyc2UgYSBSdXN0IHJl bGVhc2UgdmVyc2lvbiAob2YgdGhlIGZvcm0KKysgICAgLy8vIGBtYWpvclsubWlub3JbLnBhdGNo Wy1jaGFubmVsXV1dYCksIGlnbm9yaW5nIHRoZSByZWxlYXNlIGNoYW5uZWwsIGlmCisrICAgIC8v LyBhbnkuIFJldHVybnMgYE5vbmVgIGlmIGB2ZXJzaW9uYCBpcyBub3QgYSB2YWxpZCBSdXN0IHZl cnNpb24gc3RyaW5nLgorKyAgICAvLy8KKysgICAgLy8vICMgRXhhbXBsZQorKyAgICAvLy8KKysg ICAgLy8vIGBgYHJ1c3QKKysgICAgLy8vIHVzZSB2ZXJzaW9uX2NoZWNrOjpWZXJzaW9uOworKyAg ICAvLy8KKysgICAgLy8vIGxldCB2ZXJzaW9uID0gVmVyc2lvbjo6cGFyc2UoIjEuMTguMCIpLnVu d3JhcCgpOworKyAgICAvLy8gYXNzZXJ0ISh2ZXJzaW9uLmV4YWN0bHkoIjEuMTguMCIpKTsKKysg ICAgLy8vCisrICAgIC8vLyBsZXQgdmVyc2lvbiA9IFZlcnNpb246OnBhcnNlKCIxLjIwLjAtbmln aHRseSIpLnVud3JhcCgpOworKyAgICAvLy8gYXNzZXJ0ISh2ZXJzaW9uLmV4YWN0bHkoIjEuMjAu MCIpKTsKKysgICAgLy8vIGFzc2VydCEodmVyc2lvbi5leGFjdGx5KCIxLjIwLjAtYmV0YSIpKTsK KysgICAgLy8vCisrICAgIC8vLyBsZXQgdmVyc2lvbiA9IFZlcnNpb246OnBhcnNlKCIxLjMiKS51 bndyYXAoKTsKKysgICAgLy8vIGFzc2VydCEodmVyc2lvbi5leGFjdGx5KCIxLjMuMCIpKTsKKysg ICAgLy8vCisrICAgIC8vLyBsZXQgdmVyc2lvbiA9IFZlcnNpb246OnBhcnNlKCIxIikudW53cmFw KCk7CisrICAgIC8vLyBhc3NlcnQhKHZlcnNpb24uZXhhY3RseSgiMS4wLjAiKSk7CisrICAgIC8v LworKyAgICAvLy8gYXNzZXJ0IShWZXJzaW9uOjpwYXJzZSgib25lLnR3by50aHJlZSIpLmlzX25v bmUoKSk7CisrICAgIC8vLyBhc3NlcnQhKFZlcnNpb246OnBhcnNlKCIxLjY1NTM2LjIiKS5pc19u b25lKCkpOworKyAgICAvLy8gYXNzZXJ0IShWZXJzaW9uOjpwYXJzZSgiMS4gMiIpLmlzX25vbmUo KSk7CisrICAgIC8vLyBhc3NlcnQhKFZlcnNpb246OnBhcnNlKCIiKS5pc19ub25lKCkpOworKyAg ICAvLy8gYXNzZXJ0IShWZXJzaW9uOjpwYXJzZSgiMS4iKS5pc19ub25lKCkpOworKyAgICAvLy8g YXNzZXJ0IShWZXJzaW9uOjpwYXJzZSgiMS4yLjMuNCIpLmlzX25vbmUoKSk7CisrICAgIC8vLyBg YGAKKysgICAgcHViIGZuIHBhcnNlKHZlcnNpb246ICZzdHIpIC0+IE9wdGlvbjxWZXJzaW9uPiB7 CisrICAgICAgICBsZXQgc3BsaXRzID0gdmVyc2lvbi5zcGxpdCgnLScpCisrICAgICAgICAgICAg Lm50aCgwKQorKyAgICAgICAgICAgIC51bndyYXBfb3IoIiIpCisrICAgICAgICAgICAgLnNwbGl0 KCcuJykKKysgICAgICAgICAgICAubWFwKHxzfCBzLnBhcnNlOjo8dTE2PigpKTsKKysKKysgICAg ICAgIGxldCBtdXQgbW1wID0gWzB1MTY7IDNdOworKyAgICAgICAgZm9yIChpLCBzcGxpdCkgaW4g c3BsaXRzLmVudW1lcmF0ZSgpIHsKKysgICAgICAgICAgICBtbXBbaV0gPSBtYXRjaCAoaSwgc3Bs aXQpIHsKKysgICAgICAgICAgICAgICAgKDMsIF8pIHwgKF8sIEVycihfKSkgPT4gcmV0dXJuIE5v bmUsCisrICAgICAgICAgICAgICAgIChfLCBPayh2KSkgPT4gdiwKKysgICAgICAgICAgICB9Owor KyAgICAgICAgfQorKworKyAgICAgICAgbGV0IChtYWosIG1pbiwgcGF0Y2gpID0gKG1tcFswXSwg bW1wWzFdLCBtbXBbMl0pOworKyAgICAgICAgU29tZShWZXJzaW9uOjpmcm9tX21tcChtYWosIG1p biwgcGF0Y2gpKQorKyAgICB9CisrCisrICAgIC8vLyBDcmVhdGVzIGEgYFZlcnNpb25gIGZyb20g YChtYWpvciwgbWlub3IsIHBhdGNoKWAgdmVyc2lvbiBjb21wb25lbnRzLgorKyAgICAvLy8KKysg ICAgLy8vICMgRXhhbXBsZQorKyAgICAvLy8KKysgICAgLy8vIGBgYHJ1c3QKKysgICAgLy8vIHVz ZSB2ZXJzaW9uX2NoZWNrOjpWZXJzaW9uOworKyAgICAvLy8KKysgICAgLy8vIGFzc2VydCEoVmVy c2lvbjo6ZnJvbV9tbXAoMSwgMzUsIDApLmV4YWN0bHkoIjEuMzUuMCIpKTsKKysgICAgLy8vIGFz c2VydCEoVmVyc2lvbjo6ZnJvbV9tbXAoMSwgMzMsIDApLmV4YWN0bHkoIjEuMzMuMCIpKTsKKysg ICAgLy8vIGFzc2VydCEoVmVyc2lvbjo6ZnJvbV9tbXAoMSwgMzUsIDEpLmV4YWN0bHkoIjEuMzUu MSIpKTsKKysgICAgLy8vIGFzc2VydCEoVmVyc2lvbjo6ZnJvbV9tbXAoMSwgMTMsIDIpLmV4YWN0 bHkoIjEuMTMuMiIpKTsKKysgICAgLy8vIGBgYAorKyAgICBwdWIgZm4gZnJvbV9tbXAobWFqb3I6 IHUxNiwgbWlub3I6IHUxNiwgcGF0Y2g6IHUxNikgLT4gVmVyc2lvbiB7CisrICAgICAgICBWZXJz aW9uKCgobWFqb3IgYXMgdTY0KSA8PCAzMikgfCAoKG1pbm9yIGFzIHU2NCkgPDwgMTYpIHwgcGF0 Y2ggYXMgdTY0KQorKyAgICB9CisrCisrICAgIC8vLyBSZXR1cm5zIHRoZSBgKG1ham9yLCBtaW5v ciwgcGF0Y2gpYCB2ZXJzaW9uIGNvbXBvbmVudHMgb2YgYHNlbGZgLgorKyAgICAvLy8KKysgICAg Ly8vICMgRXhhbXBsZQorKyAgICAvLy8KKysgICAgLy8vIGBgYHJ1c3QKKysgICAgLy8vIHVzZSB2 ZXJzaW9uX2NoZWNrOjpWZXJzaW9uOworKyAgICAvLy8KKysgICAgLy8vIGFzc2VydF9lcSEoVmVy c2lvbjo6cGFyc2UoIjEuMzUuMCIpLnVud3JhcCgpLnRvX21tcCgpLCAoMSwgMzUsIDApKTsKKysg ICAgLy8vIGFzc2VydF9lcSEoVmVyc2lvbjo6cGFyc2UoIjEuMzMuMCIpLnVud3JhcCgpLnRvX21t cCgpLCAoMSwgMzMsIDApKTsKKysgICAgLy8vIGFzc2VydF9lcSEoVmVyc2lvbjo6cGFyc2UoIjEu MzUuMSIpLnVud3JhcCgpLnRvX21tcCgpLCAoMSwgMzUsIDEpKTsKKysgICAgLy8vIGFzc2VydF9l cSEoVmVyc2lvbjo6cGFyc2UoIjEuMTMuMiIpLnVud3JhcCgpLnRvX21tcCgpLCAoMSwgMTMsIDIp KTsKKysgICAgLy8vIGBgYAorKyAgICBwdWIgZm4gdG9fbW1wKCZzZWxmKSAtPiAodTE2LCB1MTYs IHUxNikgeworKyAgICAgICAgbGV0IG1ham9yID0gc2VsZi4wID4+IDMyOworKyAgICAgICAgbGV0 IG1pbm9yID0gc2VsZi4wID4+IDE2OworKyAgICAgICAgbGV0IHBhdGNoID0gc2VsZi4wOworKyAg ICAgICAgKG1ham9yIGFzIHUxNiwgbWlub3IgYXMgdTE2LCBwYXRjaCBhcyB1MTYpCisrICAgIH0K KysKKysgICAgLy8vIFJldHVybnMgYHRydWVgIGlmIGBzZWxmYCBpcyBncmVhdGVyIHRoYW4gb3Ig ZXF1YWwgdG8gYHZlcnNpb25gLgorKyAgICAvLy8KKysgICAgLy8vIElmIGB2ZXJzaW9uYCBpcyBn cmVhdGVyIHRoYW4gYHNlbGZgLCBvciBpZiBgdmVyc2lvbmAgaXMgbm90IGEgdmFsaWQgUnVzdAor KyAgICAvLy8gdmVyc2lvbiBzdHJpbmcsIHJldHVybnMgYGZhbHNlYC4KKysgICAgLy8vCisrICAg IC8vLyAjIEV4YW1wbGUKKysgICAgLy8vCisrICAgIC8vLyBgYGBydXN0CisrICAgIC8vLyB1c2Ug dmVyc2lvbl9jaGVjazo6VmVyc2lvbjsKKysgICAgLy8vCisrICAgIC8vLyBsZXQgdmVyc2lvbiA9 IFZlcnNpb246OnBhcnNlKCIxLjM1LjAiKS51bndyYXAoKTsKKysgICAgLy8vCisrICAgIC8vLyBh c3NlcnQhKHZlcnNpb24uYXRfbGVhc3QoIjEuMzMuMCIpKTsKKysgICAgLy8vIGFzc2VydCEodmVy c2lvbi5hdF9sZWFzdCgiMS4zNS4wIikpOworKyAgICAvLy8gYXNzZXJ0ISh2ZXJzaW9uLmF0X2xl YXN0KCIxLjEzLjIiKSk7CisrICAgIC8vLworKyAgICAvLy8gYXNzZXJ0ISghdmVyc2lvbi5hdF9s ZWFzdCgiMS4zNS4xIikpOworKyAgICAvLy8gYXNzZXJ0ISghdmVyc2lvbi5hdF9sZWFzdCgiMS41 NS4wIikpOworKyAgICAvLy8KKysgICAgLy8vIGxldCB2ZXJzaW9uID0gVmVyc2lvbjo6cGFyc2Uo IjEuMTIuNSIpLnVud3JhcCgpOworKyAgICAvLy8KKysgICAgLy8vIGFzc2VydCEodmVyc2lvbi5h dF9sZWFzdCgiMS4xMi4wIikpOworKyAgICAvLy8gYXNzZXJ0ISghdmVyc2lvbi5hdF9sZWFzdCgi MS4zNS4wIikpOworKyAgICAvLy8gYGBgCisrICAgIHB1YiBmbiBhdF9sZWFzdCgmc2VsZiwgdmVy c2lvbjogJnN0cikgLT4gYm9vbCB7CisrICAgICAgICBWZXJzaW9uOjpwYXJzZSh2ZXJzaW9uKQor KyAgICAgICAgICAgIC5tYXAofHZlcnNpb258IHNlbGYgPj0gJnZlcnNpb24pCisrICAgICAgICAg ICAgLnVud3JhcF9vcihmYWxzZSkKKysgICAgfQorKworKyAgICAvLy8gUmV0dXJucyBgdHJ1ZWAg aWYgYHNlbGZgIGlzIGxlc3MgdGhhbiBvciBlcXVhbCB0byBgdmVyc2lvbmAuCisrICAgIC8vLwor KyAgICAvLy8gSWYgYHZlcnNpb25gIGlzIGxlc3MgdGhhbiBgc2VsZmAsIG9yIGlmIGB2ZXJzaW9u YCBpcyBub3QgYSB2YWxpZCBSdXN0CisrICAgIC8vLyB2ZXJzaW9uIHN0cmluZywgcmV0dXJucyBg ZmFsc2VgLgorKyAgICAvLy8KKysgICAgLy8vICMgRXhhbXBsZQorKyAgICAvLy8KKysgICAgLy8v IGBgYHJ1c3QKKysgICAgLy8vIHVzZSB2ZXJzaW9uX2NoZWNrOjpWZXJzaW9uOworKyAgICAvLy8K KysgICAgLy8vIGxldCB2ZXJzaW9uID0gVmVyc2lvbjo6cGFyc2UoIjEuMzUuMCIpLnVud3JhcCgp OworKyAgICAvLy8KKysgICAgLy8vIGFzc2VydCEodmVyc2lvbi5hdF9tb3N0KCIxLjM1LjEiKSk7 CisrICAgIC8vLyBhc3NlcnQhKHZlcnNpb24uYXRfbW9zdCgiMS41NS4wIikpOworKyAgICAvLy8g YXNzZXJ0ISh2ZXJzaW9uLmF0X21vc3QoIjEuMzUuMCIpKTsKKysgICAgLy8vCisrICAgIC8vLyBh c3NlcnQhKCF2ZXJzaW9uLmF0X21vc3QoIjEuMzMuMCIpKTsKKysgICAgLy8vIGFzc2VydCEoIXZl cnNpb24uYXRfbW9zdCgiMS4xMy4yIikpOworKyAgICAvLy8gYGBgCisrICAgIHB1YiBmbiBhdF9t b3N0KCZzZWxmLCB2ZXJzaW9uOiAmc3RyKSAtPiBib29sIHsKKysgICAgICAgIFZlcnNpb246OnBh cnNlKHZlcnNpb24pCisrICAgICAgICAgICAgLm1hcCh8dmVyc2lvbnwgc2VsZiA8PSAmdmVyc2lv bikKKysgICAgICAgICAgICAudW53cmFwX29yKGZhbHNlKQorKyAgICB9CisrCisrICAgIC8vLyBS ZXR1cm5zIGB0cnVlYCBpZiBgc2VsZmAgaXMgZXhhY3RseSBlcXVhbCB0byBgdmVyc2lvbmAuCisr ICAgIC8vLworKyAgICAvLy8gSWYgYHZlcnNpb25gIGlzIG5vdCBlcXVhbCB0byBgc2VsZmAsIG9y IGlmIGB2ZXJzaW9uYCBpcyBub3QgYSB2YWxpZCBSdXN0CisrICAgIC8vLyB2ZXJzaW9uIHN0cmlu ZywgcmV0dXJucyBgZmFsc2VgLgorKyAgICAvLy8KKysgICAgLy8vICMgRXhhbXBsZQorKyAgICAv Ly8KKysgICAgLy8vIGBgYHJ1c3QKKysgICAgLy8vIHVzZSB2ZXJzaW9uX2NoZWNrOjpWZXJzaW9u OworKyAgICAvLy8KKysgICAgLy8vIGxldCB2ZXJzaW9uID0gVmVyc2lvbjo6cGFyc2UoIjEuMzUu MCIpLnVud3JhcCgpOworKyAgICAvLy8KKysgICAgLy8vIGFzc2VydCEodmVyc2lvbi5leGFjdGx5 KCIxLjM1LjAiKSk7CisrICAgIC8vLworKyAgICAvLy8gYXNzZXJ0ISghdmVyc2lvbi5leGFjdGx5 KCIxLjMzLjAiKSk7CisrICAgIC8vLyBhc3NlcnQhKCF2ZXJzaW9uLmV4YWN0bHkoIjEuMzUuMSIp KTsKKysgICAgLy8vIGFzc2VydCEoIXZlcnNpb24uZXhhY3RseSgiMS4xMy4yIikpOworKyAgICAv Ly8gYGBgCisrICAgIHB1YiBmbiBleGFjdGx5KCZzZWxmLCB2ZXJzaW9uOiAmc3RyKSAtPiBib29s IHsKKysgICAgICAgIFZlcnNpb246OnBhcnNlKHZlcnNpb24pCisrICAgICAgICAgICAgLm1hcCh8 dmVyc2lvbnwgc2VsZiA9PSAmdmVyc2lvbikKKysgICAgICAgICAgICAudW53cmFwX29yKGZhbHNl KQorKyAgICB9CisrfQorKworK2ltcGwgZm10OjpEaXNwbGF5IGZvciBWZXJzaW9uIHsKKysgICAg Zm4gZm10KCZzZWxmLCBmOiAmbXV0IGZtdDo6Rm9ybWF0dGVyKSAtPiBmbXQ6OlJlc3VsdCB7Cisr ICAgICAgICBsZXQgKG1ham9yLCBtaW5vciwgcGF0Y2gpID0gc2VsZi50b19tbXAoKTsKKysgICAg ICAgIHdyaXRlIShmLCAie30ue30ue30iLCBtYWpvciwgbWlub3IsIHBhdGNoKQorKyAgICB9Cisr fQorKworK2ltcGwgZm10OjpEZWJ1ZyBmb3IgVmVyc2lvbiB7CisrICAgIGZuIGZtdCgmc2VsZiwg ZjogJm11dCBmbXQ6OkZvcm1hdHRlcikgLT4gZm10OjpSZXN1bHQgeworKyAgICAgICAgLy8gV2Ug ZG9uJ3QgdXNlIGBkZWJ1Z18qYCBiZWNhdXNlIGl0J3Mgbm90IGF2YWlsYWJsZSBpbiBgMS4wLjBg LgorKyAgICAgICAgd3JpdGUhKGYsICJWZXJzaW9uKHs6P30sIHs6P30pIiwgc2VsZi4wLCBzZWxm LnRvX21tcCgpKQorKyAgICB9CisrfQorKworKyNbY2ZnKHRlc3QpXQorK21vZCB0ZXN0cyB7Cisr ICAgIHVzZSBzdXBlcjo6VmVyc2lvbjsKKysKKysgICAgbWFjcm9fcnVsZXMhIGFzc2VydF90b19t bXAgeworKyAgICAgICAgLy8gV2UgZG9uJ3QgdXNlIGAuaW50bzo6PE9wdGlvbjxfPj5gIGJlY2F1 c2UgaXQncyBub3QgYXZhaWxhYmxlIGluIDEuMC4KKysgICAgICAgIC8vIFdlIGRvbid0IHVzZSB0 aGUgbWVzc2FnZSBwYXJ0IG9mIGBhc3NlcnQhYCBmb3IgdGhlIHNhbWUgcmVhc29uLgorKyAgICAg ICAgKCRzOmV4cHIsIE5vbmUpID0+ICgKKysgICAgICAgICAgICBhc3NlcnRfZXEhKFZlcnNpb246 OnBhcnNlKCRzKSwgTm9uZSk7CisrICAgICAgICApOworKyAgICAgICAgKCRzOmV4cHIsICRtbXA6 ZXhwcikgPT4gKAorKyAgICAgICAgICAgIGFzc2VydF9lcSEoVmVyc2lvbjo6cGFyc2UoJHMpLm1h cCh8dnwgdi50b19tbXAoKSksIFNvbWUoJG1tcCkpOworKyAgICAgICAgKQorKyAgICB9CisrCisr ICAgIG1hY3JvX3J1bGVzISBhc3NlcnRfZnJvbV9tbXAgeworKyAgICAgICAgKCgkeDpleHByLCAk eTpleHByLCAkejpleHByKSA9PiAkczpleHByKSA9PiB7CisrICAgICAgICAgICAgYXNzZXJ0X2Vx IShTb21lKFZlcnNpb246OmZyb21fbW1wKCR4LCAkeSwgJHopKSwgVmVyc2lvbjo6cGFyc2UoJHMp KTsKKysgICAgICAgIH07CisrICAgIH0KKysKKysgICAgI1t0ZXN0XQorKyAgICBmbiB0ZXN0X3N0 cl90b19tbXAoKSB7CisrICAgICAgICBhc3NlcnRfdG9fbW1wISgiMSIsICgxLCAwLCAwKSk7Cisr ICAgICAgICBhc3NlcnRfdG9fbW1wISgiMS4yIiwgKDEsIDIsIDApKTsKKysgICAgICAgIGFzc2Vy dF90b19tbXAhKCIxLjE4LjAiLCAoMSwgMTgsIDApKTsKKysgICAgICAgIGFzc2VydF90b19tbXAh KCIzLjE5LjAiLCAoMywgMTksIDApKTsKKysgICAgICAgIGFzc2VydF90b19tbXAhKCIxLjE5LjAt bmlnaHRseSIsICgxLCAxOSwgMCkpOworKyAgICAgICAgYXNzZXJ0X3RvX21tcCEoIjEuMTIuMjM0 OSIsICgxLCAxMiwgMjM0OSkpOworKyAgICAgICAgYXNzZXJ0X3RvX21tcCEoIjAuMTIiLCAoMCwg MTIsIDApKTsKKysgICAgICAgIGFzc2VydF90b19tbXAhKCIxLjEyLjUiLCAoMSwgMTIsIDUpKTsK KysgICAgICAgIGFzc2VydF90b19tbXAhKCIxLjEyIiwgKDEsIDEyLCAwKSk7CisrICAgICAgICBh c3NlcnRfdG9fbW1wISgiMSIsICgxLCAwLCAwKSk7CisrICAgICAgICBhc3NlcnRfdG9fbW1wISgi MS40LjQtbmlnaHRseSAoZDg0NjkzYjkzIDIwMTctMDctMDkpKSIsICgxLCA0LCA0KSk7CisrICAg ICAgICBhc3NlcnRfdG9fbW1wISgiMS41ODg3OS40NDc4LWRldiIsICgxLCA1ODg3OSwgNDQ3OCkp OworKyAgICAgICAgYXNzZXJ0X3RvX21tcCEoIjEuNTg4NzkuNDQ3OC1kZXYgKGQ4NDY5M2I5MyAy MDE3LTA3LTA5KSkiLCAoMSwgNTg4NzksIDQ0NzgpKTsKKysgICAgfQorKworKyAgICAjW3Rlc3Rd CisrICAgIGZuIHRlc3RfbWFsZm9ybWVkKCkgeworKyAgICAgICAgYXNzZXJ0X3RvX21tcCEoIjEu NjU1MzYuMiIsIE5vbmUpOworKyAgICAgICAgYXNzZXJ0X3RvX21tcCEoIi0xLjIuMyIsIE5vbmUp OworKyAgICAgICAgYXNzZXJ0X3RvX21tcCEoIjEuIDIiLCBOb25lKTsKKysgICAgICAgIGFzc2Vy dF90b19tbXAhKCIiLCBOb25lKTsKKysgICAgICAgIGFzc2VydF90b19tbXAhKCIgIiwgTm9uZSk7 CisrICAgICAgICBhc3NlcnRfdG9fbW1wISgiLiIsIE5vbmUpOworKyAgICAgICAgYXNzZXJ0X3Rv X21tcCEoIm9uZSIsIE5vbmUpOworKyAgICAgICAgYXNzZXJ0X3RvX21tcCEoIjEuIiwgTm9uZSk7 CisrICAgICAgICBhc3NlcnRfdG9fbW1wISgiMS4yLjMuNC41LjYiLCBOb25lKTsKKysgICAgfQor KworKyAgICAjW3Rlc3RdCisrICAgIGZuIHRlc3RfZnJvbV9tbXAoKSB7CisrICAgICAgICBhc3Nl cnRfZnJvbV9tbXAhKCgxLCAxOCwgMCkgPT4gIjEuMTguMCIpOworKyAgICAgICAgYXNzZXJ0X2Zy b21fbW1wISgoMywgMTksIDApID0+ICIzLjE5LjAiKTsKKysgICAgICAgIGFzc2VydF9mcm9tX21t cCEoKDEsIDE5LCAwKSA9PiAiMS4xOS4wIik7CisrICAgICAgICBhc3NlcnRfZnJvbV9tbXAhKCgx LCAxMiwgMjM0OSkgPT4gIjEuMTIuMjM0OSIpOworKyAgICAgICAgYXNzZXJ0X2Zyb21fbW1wISgo MCwgMTIsIDApID0+ICIwLjEyIik7CisrICAgICAgICBhc3NlcnRfZnJvbV9tbXAhKCgxLCAxMiwg NSkgPT4gIjEuMTIuNSIpOworKyAgICAgICAgYXNzZXJ0X2Zyb21fbW1wISgoMSwgMTIsIDApID0+ ICIxLjEyIik7CisrICAgICAgICBhc3NlcnRfZnJvbV9tbXAhKCgxLCAwLCAwKSA9PiAiMSIpOwor KyAgICAgICAgYXNzZXJ0X2Zyb21fbW1wISgoMSwgNCwgNCkgPT4gIjEuNC40Iik7CisrICAgICAg ICBhc3NlcnRfZnJvbV9tbXAhKCgxLCA1ODg3OSwgNDQ3OCkgPT4gIjEuNTg4NzkuNDQ3OCIpOwor KyAgICB9CisrCisrICAgICNbdGVzdF0KKysgICAgZm4gdGVzdF9jb21wYXJpc29ucygpIHsKKysg ICAgICAgIGxldCB2ZXJzaW9uID0gVmVyc2lvbjo6cGFyc2UoIjEuMTguMCIpLnVud3JhcCgpOwor KyAgICAgICAgYXNzZXJ0ISh2ZXJzaW9uLmV4YWN0bHkoIjEuMTguMCIpKTsKKysgICAgICAgIGFz c2VydCEodmVyc2lvbi5hdF9sZWFzdCgiMS4xMi4wIikpOworKyAgICAgICAgYXNzZXJ0ISh2ZXJz aW9uLmF0X2xlYXN0KCIxLjEyIikpOworKyAgICAgICAgYXNzZXJ0ISh2ZXJzaW9uLmF0X2xlYXN0 KCIxIikpOworKyAgICAgICAgYXNzZXJ0ISh2ZXJzaW9uLmF0X21vc3QoIjEuMTguMSIpKTsKKysg ICAgICAgIGFzc2VydCEoIXZlcnNpb24uZXhhY3RseSgiMS4xOS4wIikpOworKyAgICAgICAgYXNz ZXJ0ISghdmVyc2lvbi5leGFjdGx5KCIxLjE4LjEiKSk7CisrCisrICAgICAgICBsZXQgdmVyc2lv biA9IFZlcnNpb246OnBhcnNlKCIxLjIwLjAtbmlnaHRseSIpLnVud3JhcCgpOworKyAgICAgICAg YXNzZXJ0ISh2ZXJzaW9uLmV4YWN0bHkoIjEuMjAuMC1iZXRhIikpOworKyAgICAgICAgYXNzZXJ0 ISh2ZXJzaW9uLmV4YWN0bHkoIjEuMjAuMC1uaWdodGx5IikpOworKyAgICAgICAgYXNzZXJ0ISh2 ZXJzaW9uLmV4YWN0bHkoIjEuMjAuMCIpKTsKKysgICAgICAgIGFzc2VydCEoIXZlcnNpb24uZXhh Y3RseSgiMS4xOSIpKTsKKysKKysgICAgICAgIGxldCB2ZXJzaW9uID0gVmVyc2lvbjo6cGFyc2Uo IjEuMyIpLnVud3JhcCgpOworKyAgICAgICAgYXNzZXJ0ISh2ZXJzaW9uLmV4YWN0bHkoIjEuMy4w IikpOworKyAgICAgICAgYXNzZXJ0ISh2ZXJzaW9uLmV4YWN0bHkoIjEuMy4wLXN0YWJsZSIpKTsK KysgICAgICAgIGFzc2VydCEodmVyc2lvbi5leGFjdGx5KCIxLjMiKSk7CisrICAgICAgICBhc3Nl cnQhKCF2ZXJzaW9uLmV4YWN0bHkoIjEuNS4wLXN0YWJsZSIpKTsKKysKKysgICAgICAgIGxldCB2 ZXJzaW9uID0gVmVyc2lvbjo6cGFyc2UoIjEiKS51bndyYXAoKTsKKysgICAgICAgIGFzc2VydCEo dmVyc2lvbi5leGFjdGx5KCIxLjAuMCIpKTsKKysgICAgICAgIGFzc2VydCEodmVyc2lvbi5leGFj dGx5KCIxLjAiKSk7CisrICAgICAgICBhc3NlcnQhKHZlcnNpb24uZXhhY3RseSgiMSIpKTsKKysK KysgICAgICAgIGFzc2VydCEoVmVyc2lvbjo6cGFyc2UoIm9uZS50d28udGhyZWUiKS5pc19ub25l KCkpOworKyAgICB9CisrCisrICAgIG1hY3JvX3J1bGVzISByZWZsZXhpdmVfZGlzcGxheSB7Cisr ICAgICAgICAoJHM6ZXhwcikgPT4gKAorKyAgICAgICAgICAgIGFzc2VydF9lcSEoVmVyc2lvbjo6 cGFyc2UoJHMpLnVud3JhcCgpLnRvX3N0cmluZygpLCAkcyk7CisrICAgICAgICApCisrICAgIH0K KysKKysgICAgI1t0ZXN0XQorKyAgICBmbiBkaXNwbGF5KCkgeworKyAgICAgICAgcmVmbGV4aXZl X2Rpc3BsYXkhKCIxLjAuMCIpOworKyAgICAgICAgcmVmbGV4aXZlX2Rpc3BsYXkhKCIxLjIuMyIp OworKyAgICAgICAgcmVmbGV4aXZlX2Rpc3BsYXkhKCIxLjEyLjE0MzgiKTsKKysgICAgICAgIHJl ZmxleGl2ZV9kaXNwbGF5ISgiMS40NC4wIik7CisrICAgICAgICByZWZsZXhpdmVfZGlzcGxheSEo IjIuNDQuMCIpOworKyAgICAgICAgcmVmbGV4aXZlX2Rpc3BsYXkhKCIyMzQ1OS4yODkyMy4zNDgz Iik7CisrICAgIH0KKyt9CgpkaWZmIC0tZ2l0IGEvc2VhbW9ua2V5LTIuNTMuMjQtbW96aWxsYS0y MDMzMjc5LnBhdGNoIGIvc2VhbW9ua2V5LTIuNTMuMjQtbW96aWxsYS0yMDMzMjc5LnBhdGNoCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU3OTczNzQKLS0tIC9kZXYvbnVsbAor KysgYi9zZWFtb25rZXktMi41My4yNC1tb3ppbGxhLTIwMzMyNzkucGF0Y2gKQEAgLTAsMCArMSwx OTcgQEAKKyMgSEcgY2hhbmdlc2V0IHBhdGNoCisjIFVzZXIgSGVucmkgU2l2b25lbiA8aHNpdm9u ZW5AaHNpdm9uZW4uZmk+CisjIERhdGUgMTc3Njc1NTM2MCAwCisjIE5vZGUgSUQgZWMxZGQwNWZk NTc4NTk4NWI3YmQ5NjM2NDA1Njg4ZDFkNjFhOTVkOQorIyBQYXJlbnQgIDc1NzdjNDcyYzNmMThj YTQ5N2FiOTJiMTVkZjdhMDFlNzE5NGZmZDYKK0J1ZyAyMDMzMjc5IC0gTWFrZSAtLWVuYWJsZS1y dXN0LXNpbWQgd29yayB3aXRoIFJ1c3QgMS45NS4gcj1maXJlZm94LWJ1aWxkLXN5c3RlbS1yZXZp ZXdlcnMsc3VwcGx5LWNoYWluLXJldmlld2VycyxhaG9jaGhlaWRlbgorCitEaWZmZXJlbnRpYWwg UmV2aXNpb246IGh0dHBzOi8vcGhhYnJpY2F0b3Iuc2VydmljZXMubW96aWxsYS5jb20vRDI5NTI4 NworCitkaWZmIC0tZ2l0IGEvLmNhcmdvL2NvbmZpZy5pbiBiLy5jYXJnby9jb25maWcuaW4KKy0t LSBhLy5jYXJnby9jb25maWcuaW4KKysrKyBiLy5jYXJnby9jb25maWcuaW4KK0BAIC03LDEwICs3 LDE1IEBAIGdpdCA9ICJodHRwczovL2dpdGh1Yi5jb20vc2Vydm8vc2VyZGUiCisgYnJhbmNoID0g ImRlc2VyaWFsaXplX2Zyb21fZW51bXM4IgorIHJlcGxhY2Utd2l0aCA9ICJ2ZW5kb3JlZC1zb3Vy Y2VzIgorIAorIFtzb3VyY2UuImdpdCtodHRwczovL2dpdGh1Yi5jb20vaHNpdm9uZW4vYW55X2Fs bF93b3JrYXJvdW5kP3Jldj03ZmIxYjcwMzRjOWYxNzJhYWRlMjFlZTFjODU1NGU4ZDhhNDhhZjgw Il0KKyBnaXQgPSAiaHR0cHM6Ly9naXRodWIuY29tL2hzaXZvbmVuL2FueV9hbGxfd29ya2Fyb3Vu ZCIKKyByZXYgPSAiN2ZiMWI3MDM0YzlmMTcyYWFkZTIxZWUxYzg1NTRlOGQ4YTQ4YWY4MCIKKyBy ZXBsYWNlLXdpdGggPSAidmVuZG9yZWQtc291cmNlcyIKKyAKKytbc291cmNlLiJnaXQraHR0cHM6 Ly9naXRodWIuY29tL2hzaXZvbmVuL2VuY29kaW5nX3JzP3Jldj0xMjM2ZDFiYzQyM2U2YmEzNWEw NjQ4NWY3NGE2MzA0ZGIyZDcwM2I1Il0KKytnaXQgPSAiaHR0cHM6Ly9naXRodWIuY29tL2hzaXZv bmVuL2VuY29kaW5nX3JzIgorK3JldiA9ICIxMjM2ZDFiYzQyM2U2YmEzNWEwNjQ4NWY3NGE2MzA0 ZGIyZDcwM2I1IgorK3JlcGxhY2Utd2l0aCA9ICJ2ZW5kb3JlZC1zb3VyY2VzIgorKworIFtzb3Vy Y2UudmVuZG9yZWQtc291cmNlc10KKyBkaXJlY3RvcnkgPSAnQHRvcF9zcmNkaXJAL3RoaXJkX3Bh cnR5L3J1c3QnCitkaWZmIC0tZ2l0IGEvQ2FyZ28ubG9jayBiL0NhcmdvLmxvY2sKKy0tLSBhL0Nh cmdvLmxvY2sKKysrKyBiL0NhcmdvLmxvY2sKK0BAIC02MTUsMjEgKzYxNSwyMSBAQCBkZXBlbmRl bmNpZXMgPSBbCisgICJlbmNvZGluZ19ycyIsCisgICJuc2Vycm9yIiwKKyAgIm5zc3RyaW5nIiwK KyBdCisgCisgW1twYWNrYWdlXV0KKyBuYW1lID0gImVuY29kaW5nX3JzIgorIHZlcnNpb24gPSAi MC44LjM1IgorLXNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5n L2NyYXRlcy5pby1pbmRleCIKKy1jaGVja3N1bSA9ICI3NTAzMGYzYzRmNDVkYWZkNzU4NmRkNjc4 MDk2NWE4YzdlOGUyODVhNWVjYjg2NzEzZTYzYTc5YzViMjc2NmYzIgorK3NvdXJjZSA9ICJnaXQr aHR0cHM6Ly9naXRodWIuY29tL2hzaXZvbmVuL2VuY29kaW5nX3JzP3Jldj0xMjM2ZDFiYzQyM2U2 YmEzNWEwNjQ4NWY3NGE2MzA0ZGIyZDcwM2I1IzEyMzZkMWJjNDIzZTZiYTM1YTA2NDg1Zjc0YTYz MDRkYjJkNzAzYjUiCisgZGVwZW5kZW5jaWVzID0gWworICAiYW55X2FsbF93b3JrYXJvdW5kIiwK KyAgImNmZy1pZiAxLjAuMCIsCisrICJydXN0dmVyc2lvbiIsCisgXQorIAorIFtbcGFja2FnZV1d CisgbmFtZSA9ICJlbnZfbG9nZ2VyIgorIHZlcnNpb24gPSAiMC41LjEzIgorIHNvdXJjZSA9ICJy ZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKKyBj aGVja3N1bSA9ICIxNWIwYTRkMmUzOWY4NDIwMjEwYmU4YjI3ZWVkYTI4MDI5NzI5ZTJmZDQyOTEw MTk0NTUwMTZjMzQ4MjQwYzM4IgorIGRlcGVuZGVuY2llcyA9IFsKK2RpZmYgLS1naXQgYS9DYXJn by50b21sIGIvQ2FyZ28udG9tbAorLS0tIGEvQ2FyZ28udG9tbAorKysrIGIvQ2FyZ28udG9tbAor QEAgLTQ5LDggKzQ5LDEwIEBAIHJwYXRoID0gZmFsc2UKKyBkZWJ1Zy1hc3NlcnRpb25zID0gZmFs c2UKKyBwYW5pYyA9ICJhYm9ydCIKKyBjb2RlZ2VuLXVuaXRzID0gMQorIAorIFtwYXRjaC5jcmF0 ZXMtaW9dCisgbGlidWRldi1zeXMgPSB7IHBhdGggPSAiZG9tL3dlYmF1dGhuL2xpYnVkZXYtc3lz IiB9Cisgc2VyZGVfZGVyaXZlID0geyBnaXQgPSAiaHR0cHM6Ly9naXRodWIuY29tL3NlcnZvL3Nl cmRlIiwgYnJhbmNoID0gImRlc2VyaWFsaXplX2Zyb21fZW51bXM4IiB9CisgYW55X2FsbF93b3Jr YXJvdW5kID0geyBnaXQgPSAiaHR0cHM6Ly9naXRodWIuY29tL2hzaXZvbmVuL2FueV9hbGxfd29y a2Fyb3VuZCIsIHJldiA9ICI3ZmIxYjcwMzRjOWYxNzJhYWRlMjFlZTFjODU1NGU4ZDhhNDhhZjgw IiB9CisrIyBNYWtlIC0tZW5hYmxlLXJ1c3Qtc2ltZCBjb21wYXRpYmxlIHdpdGggUnVzdCAxLjk1 CisrZW5jb2RpbmdfcnMgPSB7IGdpdCA9ICJodHRwczovL2dpdGh1Yi5jb20vaHNpdm9uZW4vZW5j b2RpbmdfcnMiLCByZXYgPSAiMTIzNmQxYmM0MjNlNmJhMzVhMDY0ODVmNzRhNjMwNGRiMmQ3MDNi NSIgfQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvQ2FyZ28udG9t bCBiL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvQ2FyZ28udG9tbAorLS0tIGEvdGhpcmRf cGFydHkvcnVzdC9lbmNvZGluZ19ycy9DYXJnby50b21sCisrKysgYi90aGlyZF9wYXJ0eS9ydXN0 L2VuY29kaW5nX3JzL0NhcmdvLnRvbWwKK0BAIC0xMSwxNiArMTEsMTcgQEAKKyAKKyBbcGFja2Fn ZV0KKyBlZGl0aW9uID0gIjIwMTgiCisgcnVzdC12ZXJzaW9uID0gIjEuMzYiCisgbmFtZSA9ICJl bmNvZGluZ19ycyIKKyB2ZXJzaW9uID0gIjAuOC4zNSIKKyBhdXRob3JzID0gWyJIZW5yaSBTaXZv bmVuIDxoc2l2b25lbkBoc2l2b25lbi5maT4iXQorIGJ1aWxkID0gZmFsc2UKKythdXRvbGliID0g ZmFsc2UKKyBhdXRvYmlucyA9IGZhbHNlCisgYXV0b2V4YW1wbGVzID0gZmFsc2UKKyBhdXRvdGVz dHMgPSBmYWxzZQorIGF1dG9iZW5jaGVzID0gZmFsc2UKKyBkZXNjcmlwdGlvbiA9ICJBIEdlY2tv LW9yaWVudGVkIGltcGxlbWVudGF0aW9uIG9mIHRoZSBFbmNvZGluZyBTdGFuZGFyZCIKKyBob21l cGFnZSA9ICJodHRwczovL2RvY3MucnMvZW5jb2RpbmdfcnMvIgorIGRvY3VtZW50YXRpb24gPSAi aHR0cHM6Ly9kb2NzLnJzL2VuY29kaW5nX3JzLyIKKyByZWFkbWUgPSAiUkVBRE1FLm1kIgorQEAg LTM0LDQzICszNSwxNiBAQCBjYXRlZ29yaWVzID0gWworICAgICAidGV4dC1wcm9jZXNzaW5nIiwK KyAgICAgImVuY29kaW5nIiwKKyAgICAgIndlYi1wcm9ncmFtbWluZyIsCisgICAgICJpbnRlcm5h dGlvbmFsaXphdGlvbiIsCisgXQorIGxpY2Vuc2UgPSAiKEFwYWNoZS0yLjAgT1IgTUlUKSBBTkQg QlNELTMtQ2xhdXNlIgorIHJlcG9zaXRvcnkgPSAiaHR0cHM6Ly9naXRodWIuY29tL2hzaXZvbmVu L2VuY29kaW5nX3JzIgorIAorLVtwcm9maWxlLnJlbGVhc2VdCistbHRvID0gdHJ1ZQorLQorLVts aWJdCistbmFtZSA9ICJlbmNvZGluZ19ycyIKKy1wYXRoID0gInNyYy9saWIucnMiCistCistW2Rl cGVuZGVuY2llcy5hbnlfYWxsX3dvcmthcm91bmRdCistdmVyc2lvbiA9ICIwLjEuMCIKKy1vcHRp b25hbCA9IHRydWUKKy0KKy1bZGVwZW5kZW5jaWVzLmNmZy1pZl0KKy12ZXJzaW9uID0gIjEuMCIK Ky0KKy1bZGVwZW5kZW5jaWVzLnNlcmRlXQorLXZlcnNpb24gPSAiMS4wIgorLW9wdGlvbmFsID0g dHJ1ZQorLQorLVtkZXYtZGVwZW5kZW5jaWVzLmJpbmNvZGVdCistdmVyc2lvbiA9ICIxLjAiCist CistW2Rldi1kZXBlbmRlbmNpZXMuc2VyZGVfZGVyaXZlXQorLXZlcnNpb24gPSAiMS4wIgorLQor LVtkZXYtZGVwZW5kZW5jaWVzLnNlcmRlX2pzb25dCistdmVyc2lvbiA9ICIxLjAiCistCisgW2Zl YXR1cmVzXQorIGFsbG9jID0gW10KKyBkZWZhdWx0ID0gWyJhbGxvYyJdCisgZmFzdC1iaWc1LWhh bnppLWVuY29kZSA9IFtdCisgZmFzdC1nYi1oYW56aS1lbmNvZGUgPSBbXQorIGZhc3QtaGFuZ3Vs LWVuY29kZSA9IFtdCisgZmFzdC1oYW5qYS1lbmNvZGUgPSBbXQorIGZhc3Qta2FuamktZW5jb2Rl ID0gW10KK0BAIC03OSw5ICs1MywzOSBAQCBmYXN0LWxlZ2FjeS1lbmNvZGUgPSBbCisgICAgICJm YXN0LWhhbmphLWVuY29kZSIsCisgICAgICJmYXN0LWthbmppLWVuY29kZSIsCisgICAgICJmYXN0 LWdiLWhhbnppLWVuY29kZSIsCisgICAgICJmYXN0LWJpZzUtaGFuemktZW5jb2RlIiwKKyBdCisg bGVzcy1zbG93LWJpZzUtaGFuemktZW5jb2RlID0gW10KKyBsZXNzLXNsb3ctZ2ItaGFuemktZW5j b2RlID0gW10KKyBsZXNzLXNsb3cta2FuamktZW5jb2RlID0gW10KKy1zaW1kLWFjY2VsID0gWyJh bnlfYWxsX3dvcmthcm91bmQiXQorK3NpbWQtYWNjZWwgPSBbCisrICAgICJhbnlfYWxsX3dvcmth cm91bmQiLAorKyAgICAicnVzdHZlcnNpb24iLAorK10KKysKKytbbGliXQorK25hbWUgPSAiZW5j b2RpbmdfcnMiCisrcGF0aCA9ICJzcmMvbGliLnJzIgorKworK1tkZXBlbmRlbmNpZXNdCisrY2Zn LWlmID0gIjEuMCIKKysKKytbZGVwZW5kZW5jaWVzLmFueV9hbGxfd29ya2Fyb3VuZF0KKyt2ZXJz aW9uID0gIjAuMS4wIgorK29wdGlvbmFsID0gdHJ1ZQorKworK1tkZXBlbmRlbmNpZXMucnVzdHZl cnNpb25dCisrdmVyc2lvbiA9ICIxLjAuMTkiCisrb3B0aW9uYWwgPSB0cnVlCisrCisrW2RlcGVu ZGVuY2llcy5zZXJkZV0KKyt2ZXJzaW9uID0gIjEuMCIKKytvcHRpb25hbCA9IHRydWUKKysKKytb ZGV2LWRlcGVuZGVuY2llc10KKytiaW5jb2RlID0gIjEuMCIKKytzZXJkZV9kZXJpdmUgPSAiMS4w IgorK3NlcmRlX2pzb24gPSAiMS4wIgorKworK1twcm9maWxlLnJlbGVhc2VdCisrbHRvID0gdHJ1 ZQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3hfdXNlcl9k ZWZpbmVkLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMveF91c2VyX2RlZmlu ZWQucnMKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3hfdXNlcl9kZWZp bmVkLnJzCisrKysgYi90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy94X3VzZXJfZGVm aW5lZC5ycworQEAgLTExLDE2ICsxMSwxOCBAQCB1c2Ugc3VwZXI6Oio7CisgdXNlIGNyYXRlOjpo YW5kbGVzOjoqOworIHVzZSBjcmF0ZTo6dmFyaWFudDo6KjsKKyAKKyBjZmdfaWYhIHsKKyAgICAg aWYgI1tjZmcoZmVhdHVyZSA9ICJzaW1kLWFjY2VsIildIHsKKyAgICAgICAgIHVzZSBzaW1kX2Z1 bmNzOjoqOworICAgICAgICAgdXNlIGNvcmU6OnNpbWQ6OnUxNng4OworICAgICAgICAgdXNlIGNv cmU6OnNpbWQ6OmNtcDo6U2ltZFBhcnRpYWxPcmQ7CisrICAgICAgICAjW3J1c3R2ZXJzaW9uOjpz aW5jZSgxLjk1KV0KKysgICAgICAgIHVzZSBjb3JlOjpzaW1kOjpTZWxlY3Q7CisgCisgICAgICAg ICAjW2lubGluZShhbHdheXMpXQorICAgICAgICAgZm4gc2hpZnRfdXBwZXIodW5wYWNrZWQ6IHUx Nng4KSAtPiB1MTZ4OCB7CisgICAgICAgICAgICAgbGV0IGhpZ2hlc3RfYXNjaWkgPSB1MTZ4ODo6 c3BsYXQoMHg3Rik7CisgICAgICAgICAgICAgdW5wYWNrZWQgKyB1bnBhY2tlZC5zaW1kX2d0KGhp Z2hlc3RfYXNjaWkpLnNlbGVjdCh1MTZ4ODo6c3BsYXQoMHhGNzAwKSwgdTE2eDg6OnNwbGF0KDAp KSAgICAgICAgfQorICAgICB9IGVsc2UgeworICAgICB9CisgfQoKZGlmZiAtLWdpdCBhL3NlYW1v bmtleS0yLjUzLjI0LXJ1c3RfdTJmaGlkLnBhdGNoIGIvc2VhbW9ua2V5LTIuNTMuMjQtcnVzdF91 MmZoaWQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzQzNDRjYQot LS0gL2Rldi9udWxsCisrKyBiL3NlYW1vbmtleS0yLjUzLjI0LXJ1c3RfdTJmaGlkLnBhdGNoCkBA IC0wLDAgKzEsMjUgQEAKKyMgSEcgY2hhbmdlc2V0IHBhdGNoCisjIFVzZXIgRnJhbmstUmFpbmVy IEdyYWhsIDxmcmdyYWhsQGdteC5uZXQ+CisjIERhdGUgMTc4NTEwODExOSAtNzIwMAorIyBQYXJl bnQgIGQ2YzBmZjdiMGMwNWEwY2JjYjBhNzQ5YTg2MTA4MWRjODQ4NTM5YmQKK05vIEJ1ZyAtIEZp eCB1MmZoaWQgZm9yIGxhdGVyIHJ1c3QgdmVyc2lvbnMuIHI9bWUgYT1tZQorCitkaWZmIC0tZ2l0 IGEvZG9tL3dlYmF1dGhuL3UyZi1oaWQtcnMvc3JjL3dpbmRvd3Mvd2luYXBpLnJzIGIvZG9tL3dl YmF1dGhuL3UyZi1oaWQtcnMvc3JjL3dpbmRvd3Mvd2luYXBpLnJzCistLS0gYS9kb20vd2ViYXV0 aG4vdTJmLWhpZC1ycy9zcmMvd2luZG93cy93aW5hcGkucnMKKysrKyBiL2RvbS93ZWJhdXRobi91 MmYtaGlkLXJzL3NyYy93aW5kb3dzL3dpbmFwaS5ycworQEAgLTEsMTIgKzEsMTUgQEAKKyAvKiBU aGlzIFNvdXJjZSBDb2RlIEZvcm0gaXMgc3ViamVjdCB0byB0aGUgdGVybXMgb2YgdGhlIE1vemls bGEgUHVibGljCisgICogTGljZW5zZSwgdi4gMi4wLiBJZiBhIGNvcHkgb2YgdGhlIE1QTCB3YXMg bm90IGRpc3RyaWJ1dGVkIHdpdGggdGhpcworICAqIGZpbGUsIFlvdSBjYW4gb2J0YWluIG9uZSBh dCBodHRwOi8vbW96aWxsYS5vcmcvTVBMLzIuMC8uICovCisgCisrLy8gWWVzIGl0IGlzIGJhZCBi dXQgd2UgZG9uJ3QgdXNlIHdlYmF1dGhuIGN1cnJlbnRseSBhbnl3YXkuCisrIyFbd2FybihkZXJl Zl9udWxscHRyKV0KKysKKyB1c2Ugc3RkOjppbzsKKyB1c2Ugc3RkOjptZW07CisgdXNlIHN0ZDo6 cHRyOworIHVzZSBzdGQ6OnNsaWNlOworIAorIHVzZSBzdGQ6OmZmaTo6T3NTdHJpbmc7CisgdXNl IHN0ZDo6b3M6OndpbmRvd3M6OmZmaTo6T3NTdHJpbmdFeHQ7CisgCgpkaWZmIC0tZ2l0IGEvc2Vh bW9ua2V5LTIuNTMuMjQtcnVzdF92ZXJzaW9uLnBhdGNoIGIvc2VhbW9ua2V5LTIuNTMuMjQtcnVz dF92ZXJzaW9uLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI5YThh OTMKLS0tIC9kZXYvbnVsbAorKysgYi9zZWFtb25rZXktMi41My4yNC1ydXN0X3ZlcnNpb24ucGF0 Y2gKQEAgLTAsMCArMSwyMjc2IEBACisjIEhHIGNoYW5nZXNldCBwYXRjaAorIyBVc2VyIEZyYW5r LVJhaW5lciBHcmFobCA8ZnJncmFobEBnbXgubmV0PgorIyBEYXRlIDE3ODUxMDgwMzIgLTcyMDAK KyMgUGFyZW50ICA5ZGZmZDc4NjExZDA4MDM0YWRhYmE3MDJkMjA4ZWE4OTc5YmQ3YzQwCitObyBC dWcgLSBBZGQgcnVzdCB2ZXJzaW9uIGNyYXRlLiByPW1lIGE9bWUKKworZGlmZiAtLWdpdCBhL0Nh cmdvLmxvY2sgYi9DYXJnby5sb2NrCistLS0gYS9DYXJnby5sb2NrCisrKysgYi9DYXJnby5sb2Nr CitAQCAtMTcxNCwxNiArMTcxNCwyMiBAQCBuYW1lID0gInJ1c3RjX3ZlcnNpb24iCisgdmVyc2lv biA9ICIwLjIuMSIKKyBzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3Qt bGFuZy9jcmF0ZXMuaW8taW5kZXgiCisgY2hlY2tzdW0gPSAiYjk3NDNhNzY3MGQ4OGQ1ZDUyOTUw NDA4ZWNkYjdjNzFkODk4NjI1MWFiNjA0ZDQ2ODlkZDJjYTI1YzliY2E2OSIKKyBkZXBlbmRlbmNp ZXMgPSBbCisgICJzZW12ZXIiLAorIF0KKyAKKyBbW3BhY2thZ2VdXQorK25hbWUgPSAicnVzdHZl cnNpb24iCisrdmVyc2lvbiA9ICIxLjAuMjMiCisrc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8v Z2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgorK2NoZWNrc3VtID0gImNmNTQ3 MTVhNTczYjk5YWM4MGRmMGJjMjA2ZGEwMjJiY2Q0NDJjOTc0OTUyYzdiOTcyMDA2OTM3MDg1MmUy MWYiCisrCisrW1twYWNrYWdlXV0KKyBuYW1lID0gInNhbWUtZmlsZSIKKyB2ZXJzaW9uID0gIjEu MC4yIgorIHNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2Ny YXRlcy5pby1pbmRleCIKKyBjaGVja3N1bSA9ICJjZmI2ZWRlZDBiMDZhMGI1MTJjOGRkYmNmMDQw ODkxMzhjOWI0MzYyYzJmNjk2ZjNjM2Q3NjAzOWQ2OGYzNjM3IgorIGRlcGVuZGVuY2llcyA9IFsK KyAgIndpbmFwaSAwLjMuNyIsCisgXQorIAorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3Qv ZW5jb2RpbmdfcnMvLmNhcmdvLWNoZWNrc3VtLmpzb24gYi90aGlyZF9wYXJ0eS9ydXN0L2VuY29k aW5nX3JzLy5jYXJnby1jaGVja3N1bS5qc29uCistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L2VuY29k aW5nX3JzLy5jYXJnby1jaGVja3N1bS5qc29uCisrKysgYi90aGlyZF9wYXJ0eS9ydXN0L2VuY29k aW5nX3JzLy5jYXJnby1jaGVja3N1bS5qc29uCitAQCAtMSwxICsxLDEgQEAKKy17ImZpbGVzIjp7 IkNPTlRSSUJVVElORy5tZCI6ImNhMTkwMWYzZTg1MzJmYjRjZWM4OTRmZDM2NjRmMGVhYTg5OGMw YzRiOTYxZDFiOTkyZDFlZDU0ZWFjZjM2MmEiLCJDT1BZUklHSFQiOiIxMTc4OWY0NWJiMTgwODQx Y2QzNjJhNWVlZTY3ODljNjhkZGI1NzNhMTExMDVlMzA3NjhjMzA4YTZhZGQwMTkwIiwiQ2FyZ28u dG9tbCI6ImQ3NDA1ZDJiY2Y5OWNmOTcyOTA3NTQ3M2M0NWY2Nzc2MzBmNGMxOTQ3YzhiYTk3NTdk YjYwN2YyMDI1YTdkYTIiLCJJZGVhcy5tZCI6ImI3NDUyODkzZjUwMDE2Mzg2OGQ4ZGU1MmMwOWFk ZGFmOTFlMTYzMjQ1NGVkMDJlODkyYzQ2N2VkN2VjMzlkYmQiLCJMSUNFTlNFLUFQQUNIRSI6ImNm Yzc3NDliOTZmNjNiZDMxYzNjNDJiNWM0NzFiZjc1NjgxNDA1M2U4NDdjMTBmM2ViMDAzNDE3YmM1 MjNkMzAiLCJMSUNFTlNFLU1JVCI6IjNmYTRjYTgzZGNjOTIzNzgzOWIxYmRlYjJlNmQxNmJkZmI1 ZWMwYzVjZTQyYjI0Njk0ZDhiYmYwZGNiZWY3MmMiLCJMSUNFTlNFLVdIQVRXRyI6IjgzODExODM4 OGZlNWMyZTdmMWRiYmFlZWQxM2UxYzdmM2ViZjg4YmU5MTMxOWM3YzFkNzdjMThlOTg3ZDFhNTAi LCJSRUFETUUubWQiOiI5ODI2MTM3ZWQ0Mjk3YmUzYjIwMTliNzRhOGY2MTExYTc5NmZmNTA3YmRl NDFkZjJmMjA3MTI1Mzk3MDRiOWU5IiwiY2kvbWlyaS5zaCI6IjQzY2I4ZDgyZjQ5ZTNiZmUyZDIy NzRiNmNjZDZmMDcxNGE0MTg4Y2NlZjBjZWNjMDQwODI5ODgzY2ZkYmVlMjUiLCJkb2MvQmlnNS50 eHQiOiJmNzNhMmVkYzVjYjZjMmQxNDBiYTZlMDdmNDU0MmUxYzRhMjM0OTUwMzc4YWNkZTFkZjkz NDgwZjBjYTBiZTBiIiwiZG9jL0VVQy1KUC50eHQiOiJlZTI4MThiOTA3ZDAxMzdmNDBhOWFiOWZk NTI1ZmM3MDBhNDRkYmRkZGI2Y2YwYzE1N2E2NTY1NjZiYWU0YmYxIiwiZG9jL0VVQy1LUi50eHQi OiI3MWQ5ZTJjY2YzYjEyNGU4YmRmYjQzM2M4Y2YyNzczZmQ4NzgwNzcwMzhkMGNlYzNjNzIzN2E1 MGY0YTc4YTMwIiwiZG9jL0dCSy50eHQiOiI4MjI5ZTU5MDc2ZDhiZGRiMDE4NjVjZGNmNmFmZGEz NTMzMjM4ZDdjMjNkOTdmOTg4MjBmOWUzYjJkMTM1MDVkIiwiZG9jL0lCTTg2Ni50eHQiOiJhNWE0 MzNlODA0ZDBmODNhZjc4NTAxNTE3OWZiYzFkOWIwZWFmMWY3OTYwZWZjZDA0MDkzZTEzNmI1MWZi ZDBlIiwiZG9jL0lTTy0yMDIyLUpQLnR4dCI6ImFmODY2ODRmNWE4ZjBlMjg2OGQ3YjJjMjkyODYw MTQwYzNkMmU1NTI3NTMwY2EwOTFmMWIyODE5OGU4ZTJmZTYiLCJkb2MvSVNPLTg4NTktMTAudHh0 IjoiNmQzOTQ5YWQ3YzgxY2ExNzY4OTUxMDFlZDgxYTFkYjdkZjEwNjBkNjRlMjYyODgwYjk0YmQz MWJiMzQ0YWI0ZCIsImRvYy9JU08tODg1OS0xMy50eHQiOiIzOTUxZGQ4OWNmOTNmNzcyOTE0ODA5 MTY4M2NmODUxMWY0NTI5Mzg4YjdkYzhkY2QwZDYyZWFlZDU1YmU5M2ZhIiwiZG9jL0lTTy04ODU5 LTE0LnR4dCI6IjNkMzMwNzg0YTAzNzRmZDI1NWEzOGI0Nzk0OTY3NWNjNzE2OGM4MDA1MzA1MzRi MGEwMWNhYzZlZGM2MjNhZGMiLCJkb2MvSVNPLTg4NTktMTUudHh0IjoiMjRiMTA4NGFhYjUxMjdh ODVhYWI5OTE1M2Y4NmUyNDY5NGQwYTM2MTVmNTNiNWNlMjM2ODNmOTdjZjY2YzQ3YSIsImRvYy9J U08tODg1OS0xNi50eHQiOiJjZTAyNzI1NTliOTJiYTc2ZDdhN2U0NzZmNjQyNGFlNGE1Y2M3MmU3 NWIxODM2MTFiMDgzOTJlNDRhZGQ0ZDI1IiwiZG9jL0lTTy04ODU5LTIudHh0IjoiMThjZWZmODhj MTNkMWI1YmE0NTVhMzkxOWIxZTNkZTQ4OTA0NWM0YzNkMmRkN2U4NTI3YzEyNWM3NWQ1NGFhZCIs ImRvYy9JU08tODg1OS0zLnR4dCI6IjIxNzk4NDA0YzY4ZjRmNWRiNTkyMjMzNjJmMjQ5OTlkYTk2 OTY4YzA2Mjg0MjczMjFmY2NjZTdkMjg0OWExMzAiLCJkb2MvSVNPLTg4NTktNC50eHQiOiJkMjdm NjUyMGM2YzViZmJjYzE5MTc2YjcxZDA4MWNkYjNiY2NkZTE2MjJiYjNlNDIwZDU2ODBlODEyNjMy ZDUzIiwiZG9jL0lTTy04ODU5LTUudHh0IjoiYTEwZWM4ZDZlYTdhNzhhZDE1ZGE3Mjc1ZjZjYjFh MzM2NTExODUyN2UyOGY5YWY2ZDBkNTgzMDUwMTMwM2YzYSIsImRvYy9JU08tODg1OS02LnR4dCI6 ImNjZGE4YTJlZmM5NjExNTMzNmJkZDc3Nzc2NjM3Yjk3MTI0MjVlNDRmYmNmNzQ1MzUzYjkwNTdm YmVmMTQ0ZTciLCJkb2MvSVNPLTg4NTktNy50eHQiOiIxNzkwMGZhMWYyN2E0NDU5NThmMGE3N2Q3 ZDkwNTZiZTM3NWE2YmQ3ZWU0NDkyYWE2ODBjN2MxNTAwYmFiODVlIiwiZG9jL0lTTy04ODU5LTgt SS50eHQiOiI4MzU3NTU1NjQ2ZDU0MjY1YTliOWZmYTNlNjhiMDhkMTMyMzEyZjE1NjFjNjAxMDhm ZjliOGIxMTY3YjZlY2YyIiwiZG9jL0lTTy04ODU5LTgudHh0IjoiNzJjZDZmM2FmYjdiNGE5YzE2 YTY2YTM2MjQ3MzMxNTc3MGI3NzU1ZDcyYzg2Yzg3MGU1MmZjM2ViYTg2YzhhZiIsImRvYy9LT0k4 LVIudHh0IjoiODM5Y2YxOWEzOGRhOTk0NDg4MDA0ZWQ3ODE0YjFmNjE1MTY0MDE1NmE5YTJhZjAy YmYyZWZjYTc0NWZiNTk2NiIsImRvYy9LT0k4LVUudHh0IjoiMGNjNzY2MjRlZDFmMDI0MTgzZTIy OThiN2UwMTk5NTdkYTJjNzBjOGNhMDZlMGZjNGU2ZjM1M2Y1MGE1MDU0ZiIsImRvYy9TaGlmdF9K SVMudHh0IjoiMzRjNDkxNDE4MThjYjlkZGJjZjU5Y2M4NThmNzhhNzliZThhZDE0OGQ1NjNmMjY0 MTUxMDhhZTFmMTQ4NDQzZiIsImRvYy9VVEYtMTZCRS50eHQiOiJlMmUyODBkOGFjYmFhNmQyYTZi MzU2OWQ2MGUxNzUwMGEyODVmMmJhYTBkZjMzNjNkZDg1NTM3Y2Q1YTFlZjhmIiwiZG9jL1VURi0x NkxFLnR4dCI6IjcwYmRjMTcwZTNmYzUyOThiYTY4ZjEwMTI1ZmI1ZWViOGIwNzcwMzZjYzk2YmI0 NDE2YzRkZTM5NmY2ZDc2YzEiLCJkb2MvVVRGLTgudHh0IjoiZWE3YmFlNzQyZTYxMzAxMGNlZDAw MmNmNGI2MDFhNzM3ZDIyMDNmYWQ2NWUxMTU2MTE0NTFiYzQ0MjhmNTQ4YSIsImRvYy9nYjE4MDMw LnR4dCI6IjY3YTAxNjY1Yzc1NTA1MzMwYjBmZTViOGQ4OGQ1ODczZDhjZTU1NWExNDVjNzdkY2Ew NGE0NjdmYTI2ODA3NDQiLCJkb2MvbWFjaW50b3NoLnR4dCI6IjU3NDkxZTUzODY2NzExYjQ2NzJk OWI5ZmYzNTM4MGI5ZGFjOWUwZDhlM2Q2YzIwYmRkNjE0MDYwMzY4N2MwMjMiLCJkb2MvcmVwbGFj ZW1lbnQudHh0IjoiNGI2YzNiYmQ3OTk5ZDlkNDEwOGEyODE1OTRiZDAyZDEzNjA3ZTMzNGE5NTQ2 NWFmZmY4YzJjMDhkMzk1ZjBlNCIsImRvYy93aW5kb3dzLTEyNTAudHh0IjoiNjEyOTZiYjZhMjFj ZGFiNjAyMzAwZDMyZWNmYmE0MzRjYjgyZGU1YWMzYmM4OGQ1ODcxMGQyZjEyNWUyOGQzOSIsImRv Yy93aW5kb3dzLTEyNTEudHh0IjoiN2RlZWExYzYxZGVhMTQ4NWM4ZmYwMmRiMmM3ZDU3OGRiN2E5 YWFiNjNhYjFjZmQwMmVjMDRiNTE1ODY0Njg5ZSIsImRvYy93aW5kb3dzLTEyNTIudHh0IjoiOTMz ZWYzYmRkZGZjZTVlZTEzMmI5ZjFhMWFhOGI0NzQyM2QyNTg3YmJlNDc1YjE5MDI4ZDBhNmQzOGUx ODBiNiIsImRvYy93aW5kb3dzLTEyNTMudHh0IjoiMWEzODc0OGI4OGU5OTA3MWE1YzdiM2Q1NDU2 ZWFkNGNhZWRlYWJhYjUwZDUwZDY1OGJlMTA1YmMxMTM3MTRkZSIsImRvYy93aW5kb3dzLTEyNTQu dHh0IjoiZjgzNzJmODZjNmY4ZDY0MjU2M2NkNmRkYzAyNTI2MDU1MzI5MmEzOTQyM2RmMTY4M2E5 ODY3MGJkN2JmMmI0NyIsImRvYy93aW5kb3dzLTEyNTUudHh0IjoiNGU1ODUyNDk0NzMwMDU0ZTJk YTI1OGE3NGUxYjlkNzgwYWJiY2RkOGNlMjJlYmMyMThjYTJlZmU5ZTkwNDkzZCIsImRvYy93aW5k b3dzLTEyNTYudHh0IjoiYzA4NzljNTE3MmFiZWRlYWQzMDJhNDA2ZThmNjBkOWNkOTU5ODY5NGEw ZmZhNGZkMjg4ZmZlNGZlZjdiOGVhMSIsImRvYy93aW5kb3dzLTEyNTcudHh0IjoiYzI4YTBjOWY5 NjRmY2IyYjQ2ZDIxZjUzN2M0MDI0NDY1MDFhMjgwMDY3MDQ4MWQ2YWJmOWZkOWU5MDE4ZDUyMyIs ImRvYy93aW5kb3dzLTEyNTgudHh0IjoiNTAxOWFlNGQ2MTgwNWM3OWFhY2JmMTdjOTM3OTMzNDJk YmIwOThkNjVhMTgzNzc4M2JjM2UyYzZkNmEyMzYwMiIsImRvYy93aW5kb3dzLTg3NC50eHQiOiI0 ZWYwZTQ1MDFjNWZlYmE4YjE3YWVlMTgxODYwMmVkNDRiMzZjYTg0NzVkYjc3MWNlMmZjMTZkMzky Y2FiZWNjIiwiZG9jL3gtbWFjLWN5cmlsbGljLnR4dCI6IjU4YmUxNTRkOGE4ODhjYTNkNDg0Yjgz YjQ0Zjc0OTgyM2VmMzM5YWIyN2YxNGQ5MGNhOWE4NTZmNTA1MGE4YmQiLCJkb2MveC11c2VyLWRl ZmluZWQudHh0IjoiZjljZDA3YzQzMjFiZjVjZmIwYmU0YmRkZGQyNTEwNzI5OTliMDRhNmNmN2E2 ZjViYzYzNzA5YTg0ZTJjMWZmYyIsImdlbmVyYXRlLWVuY29kaW5nLWRhdGEucHkiOiI2ZjM0YTg0 NTc4NWY1MzQyNWFjY2YzMDc1OWVkYzU2Njg3M2ZjYjBjMjE4ODY0OGUwN2IwOWM4OThmMzlkZGRi IiwicnVzdGZtdC50b21sIjoiODVjMWEzYjQzODJmZDg5ZTk5MWNiYjgxYjcwZmI1Mjc4MDQ3MmVk YzA2NGM5NjM5NDNjZGFhYTU2ZTBhMjAzMCIsInNyYy9hc2NpaS5ycyI6IjU4OGUzOGIwMWU2NjZk NWU3NDYyNjE3ZWE3ZTkwYTEwOGQ2MDhkZWM5ZTAxNmYzZDI3M2FjMDc0NGFmMmUwNWQiLCJzcmMv YmlnNS5ycyI6ImVjNmUyOTEzMDExYTM4ZTlhM2U4MjVhMTczMWYxMzlhN2NhMWQ1YjI2NGZlZmFl NTFhM2NjMWE2OGE1N2NlZjkiLCJzcmMvZGF0YS5ycyI6ImI5M2YzNDAyNWZlNWM2YTg1YjRiOWYw MDM3YmY1ODk2MTM1MmJmMTljODNmOTFiMDliMzVlYjg0OTU2MjVlZWMiLCJzcmMvZXVjX2pwLnJz IjoiMzIwNDdmNWI1NDAxODhjNGNiMTljMDcxNjVmODQ2Yjk3ODZhMDlmMThlMzE1ZWQzZTliZGEx MjkzZGFlNTJhYSIsInNyYy9ldWNfa3IucnMiOiI5YjI1YWZjNzJkOTM3ODcwMGVlY2ZhYzU4ZDU1 YWQxYzU5NDZkNmNkMGNjZGUyYzI5YzA4MjAwZWYyZGU2YmI5Iiwic3JjL2diMTgwMzAucnMiOiI4 OWNkNmFlMjI0N2FkZDNmMzQ3MWE2OTliYzEyMTEzYTlhZTJmNmI5MWE1MjIzYWJiZjE1YjY4YTEz NTM3ZGNkIiwic3JjL2diMTgwMzBfMjAyMi5ycyI6IjNjMmUwNjQ5MmM1ZTAwZmNkMzk1MTVlNGFm NGM1NjBkOGNlZTVjMzFlN2E3ZTM4OGRiNjgyYmM5ZWUzM2VlMzIiLCJzcmMvaGFuZGxlcy5ycyI6 ImIwOGNlZjFmNTc4NWJiNmE0ODIyZjJlODQ0YzZkZjFiMDQ2YjczN2I3YTA3NWU0NTkzZWFhOGM0 MjA4ZTlmZTIiLCJzcmMvaXNvXzIwMjJfanAucnMiOiI5YmI0ODVlODI1NzRmNGI3ZDRiMjM2NGYw ZmYyNzZhY2I2YTBiYzExMTc1ODQyMGEzYjBlYzVlMDRjMTk2NjUyIiwic3JjL2xpYi5ycyI6ImM0 ZDlmYTFjNDMxMDVlMjMxMDEyMmYxYjkxOTcxMjUwMzJlNjA3ZmU2Zjc5YmMyMjc2OWIzNDBkZTc2 ZTI0MzAiLCJzcmMvbWFjcm9zLnJzIjoiMjAwOTk3Zjg4NzBkZThiZmQ4Y2RjNDc1ZTkyMTE1ZGY0 MjEwOGMwZGY2NjFlNDlkM2QxY2JjMzIwNTZlMWQ5OSIsInNyYy9tZW0ucnMiOiI5NDg1NzExMzdk M2IxNTFkZjhkYjRmYjJjNzMzZTc0YWU1OTVkMDU1Y2RmMGFkODNhYmNhYjkzNDFkNmFkYWJlIiwi c3JjL3JlcGxhY2VtZW50LnJzIjoiNzY2MGIzNGE1M2Y4YzFjYTJiZGZhMGU1MWU4NDNlYzI4MzI2 OTUwOTUyYWQ4YmM5NjU2OWZlYjkzYWM2MjMwOCIsInNyYy9zaGlmdF9qaXMucnMiOiI2OTUxYWU2 N2UzNmIxYTEyZmEzYTMwNzM0OTU3ZjQ0NGQ4YjFiNGFlMGUyYmRlNTIwNjBiMjliZDBmMTZkOWQ5 Iiwic3JjL3NpbWRfZnVuY3MucnMiOiIwNWM2ZTc3YWY3NGJmZTczY2QzOWE3NTIwNjdjMTE0MjVk NmI0NmU1ZGE0MTk5MTBmNTRiZjc1YTVjMDJhOTg0Iiwic3JjL3NpbmdsZV9ieXRlLnJzIjoiM2Fk ODcxMTZmYjMzOTQzNGE0YjU4ZThmMmIxNTQ4NWYyYjY2YjlmNzgxNGQ3MDhmMTYxOTRlZDA4ZjZk NmNjZiIsInNyYy90ZXN0X2RhdGEvYmlnNV9pbi50eHQiOiJhNWFlMjkwNzg2NjEwYzdmYWNkYmIx ZDA2YmU2ODE1ZThiYjgxZDY4ZGZhNzM4MGVkYzdkZGI2YjhjN2U0MTJlIiwic3JjL3Rlc3RfZGF0 YS9iaWc1X2luX3JlZi50eHQiOiI1MjczM2Q5OTcwZmI4OTg3ZjAxNGZhMGVhYzI3OTIyNTAxMjNj ZjU4M2IzNjNiZWIyY2U3YjNjNTVlM2RjNTU1Iiwic3JjL3Rlc3RfZGF0YS9iaWc1X291dC50eHQi OiI1NzQyMGNhNDFhNjY5Yzk0OTczOGM4NGNhYjYyMDAyMDk1OTU3MmQyZWU5N2I0ZTA1OTQwNWJm ZTI2YTc5YjZkIiwic3JjL3Rlc3RfZGF0YS9iaWc1X291dF9yZWYudHh0IjoiMDBlNWY2N2MyMjJk ZDVjZDNiYjE3MzkyNzY5MTBiOGYwMDMyZjQ1NGNiYTdjZjdjM2VhYTI1NWE1NjQxODhkMCIsInNy Yy90ZXN0X2RhdGEvZXVjX2tyX2luLnR4dCI6IjIxNTM0ZWM4N2U4MmQ3ODVkMTI4Zjk4MDkwMmQx M2ZhYjZkOWRlYTE1YzY5YTk5MWY0MDlkOWIwYWZkMWM4NTIiLCJzcmMvdGVzdF9kYXRhL2V1Y19r cl9pbl9yZWYudHh0IjoiYjMwMDllNmE5NDk2N2RmMWYxMTM1YzY2ZjAwNTYxMGJlYmFkNjY2NmQ2 MzRhZWM3MmQyYWQ3N2MzMjExYmRhMyIsInNyYy90ZXN0X2RhdGEvZXVjX2tyX291dC50eHQiOiIy MDIwNWIwYjViZTRmNTc5MjcxMTkzYjViZmJjNTQ5YTYxYTlmZDUyMTdjMzNlZWNmYTYxNzg0YTNm ZmUyZTlkIiwic3JjL3Rlc3RfZGF0YS9ldWNfa3Jfb3V0X3JlZi50eHQiOiJiNWY1NjYyMzdmOGQ0 ZWY0ZDAzYWQyNjEzNWNhOTdkZmQ3Mzk4NjA4YTgyMTY1YmQ0ODUzYjUxMzRhYjIyY2I1Iiwic3Jj L3Rlc3RfZGF0YS9nYjE4MDMwX2luLnR4dCI6IjBkZDFmYmYwMzYwOTMwZGFhZmRjZTdlNjc2MTg1 MjAwNWE4ZjkyZjc5MTAxODBkZjE5YTA3MGI2YzNjNTlkZWUiLCJzcmMvdGVzdF9kYXRhL2diMTgw MzBfaW5fcmVmLnR4dCI6ImYzZWFlYTExMTU4NTcwNTRjZjMwZjhiYTE4MjE5ZTcyMzc3ZjJhNGFm ZDg0OGNjZjIyMzc3MGQ3NWFhNDI1MWQiLCJzcmMvdGVzdF9kYXRhL2diMTgwMzBfb3V0LnR4dCI6 IjcxODRmZTk1OTI2MDk1OTdkNTVjMjczMzYwNmI0YzRiMWExOGI3OWIyNDUzM2UxYTE2YTE0ZmY5 MmU3ZDJiNTUiLCJzcmMvdGVzdF9kYXRhL2diMTgwMzBfb3V0X3JlZi50eHQiOiIyM2JiODUwZGRj NjlhYWYxYmRmZWFiZTA1YTEyZDkzZjYxNGU1NTYwZGFjODc5ZDVmMDI5MjllZTRhN2MwNmM1Iiwi c3JjL3Rlc3RfZGF0YS9pc29fMjAyMl9qcF9pbi50eHQiOiI5OGZiODIzNTMwYTMwYTc2ZWIwYmE3 YWI2YWM3OTY5NTllODg2OWMxZWMxNDNmMDE4YTE5NjQ1ODFhZTgxM2FhIiwic3JjL3Rlc3RfZGF0 YS9pc29fMjAyMl9qcF9pbl9yZWYudHh0IjoiZGY4MjE2NmQyZTAxYmI0NDYyMTFkN2U0NmYzM2I0 N2Q5M2FjMWJhZmVhZTJlZDg4MGVlOTNjNDA5NmQxMTIxMCIsInNyYy90ZXN0X2RhdGEvaXNvXzIw MjJfanBfb3V0LnR4dCI6ImJlZjhlYjQ4MDRlZDA4NDNiOWRmZmRkMWQxNjg3Mzg2MzVjYzc3Zjhk MDkyOWJlYjI1MzJiNjg2MzE4ZGRhZTYiLCJzcmMvdGVzdF9kYXRhL2lzb18yMDIyX2pwX291dF9y ZWYudHh0IjoiYjIyMWIzNmIyYmNlNDlkNDliNjIwZGM4YmE4MGQ3N2JhYzc0ZTg2NjBhODZhMTE2 MjhlNzliNjdmMWQ5ODk2NCIsInNyYy90ZXN0X2RhdGEvamlzMDIwOF9pbi50eHQiOiIzYzFhN2Fh YWRhMDBkNmZmZjQxZTYwYmQ3NTg5ZDdhZTk0YWZhZjU2Mjc1OWIxMTY5NThiMWQ4NDcxMWQxN2I2 Iiwic3JjL3Rlc3RfZGF0YS9qaXMwMjA4X2luX3JlZi50eHQiOiJkZjgyMTY2ZDJlMDFiYjQ0NjIx MWQ3ZTQ2ZjMzYjQ3ZDkzYWMxYmFmZWFlMmVkODgwZWU5M2M0MDk2ZDExMjEwIiwic3JjL3Rlc3Rf ZGF0YS9qaXMwMjA4X291dC50eHQiOiJhNjE4OGI2N2ViMDBiYTk4MGNiODMwNTYxODZjODliY2Rk ZGMxYjAyMTBhZjlhZmE3OGVkMWM5YjdhMDk4OTUwIiwic3JjL3Rlc3RfZGF0YS9qaXMwMjA4X291 dF9yZWYudHh0IjoiZTc1YTk4NmZlNWU3OGU2NGJmOGZhZmQ3MzkyYWU5NmVlMGNiMGE0YjJlN2Vm MmZlNzIyYjNjYWFjZjNlMmY3MCIsInNyYy90ZXN0X2RhdGEvamlzMDIxMl9pbi50eHQiOiI5ZWRh NzY2MDAyNjQ2YTI3MzEwNDU3YzY2MTgzMjQyOWJlZmY5MDg5ZDI3MDMzNTU4MTJjNGNhYzMwZDgw MGI1Iiwic3JjL3Rlc3RfZGF0YS9qaXMwMjEyX2luX3JlZi50eHQiOiJmY2Y3NGM1OGQyY2JlOWIz ZjNkYjRmYTllZmYyNmUwOWY1ZTk2NDQwOTdjNzg2MTRjMDMxNzdlOTM4OTg4ZDAzIiwic3JjL3Rl c3RfZGF0YS9zaGlmdF9qaXNfaW4udHh0IjoiZTY1ZGY3NDZiZTkwMzU5ZTcwNDIyODY4NTIyYTdh YTNlOGVkMjBlMGQ0YzBjZjk5OTVkOWRlMjQ4YmY5MzM4OCIsInNyYy90ZXN0X2RhdGEvc2hpZnRf amlzX2luX3JlZi50eHQiOiIxM2IxNWFlZDY0ZTllN2NiMzVlNmE3NDBiNjc0MTNmMGMyODVmZGE5 NDRmNDgxNGQ0NWE3NjE5ZWEzMzhmYjVlIiwic3JjL3Rlc3RfZGF0YS9zaGlmdF9qaXNfb3V0LnR4 dCI6IjE5MmQwYTRhOGNlNWQwZjkwNGM1Y2IyODNkZmI5NzQ1NzdlZTY2N2NmMWU3MTk1NWE2ZGQ2 YWVjZTJiMzU0ZWYiLCJzcmMvdGVzdF9kYXRhL3NoaWZ0X2ppc19vdXRfcmVmLnR4dCI6ImNiNmQ1 MGIwYzExYmFkMWQxZjFmY2MwMmQ3Nzk2NzJhOGI5YTI1MDljYmJhZmRjNjM5MmFjZWI0OWM4YjQy NjgiLCJzcmMvdGVzdF9sYWJlbHNfbmFtZXMucnMiOiIyM2EyZTExYjAyYjNiOGQxNWZiNTYxM2E2 MjVlM2VkYjJjNjFlNzBlM2M1ODFhYmZkNjM4NzE5YTQwODgyMDBkIiwic3JjL3Rlc3RpbmcucnMi OiJmNTllNjcxZTk1YTk4YTU2ZjZiNTczZThjNmJlNGQ3MWU2NzBiZjUyZjdlMjBlYjE2MDVkOTkw YWFmYTE4OTRlIiwic3JjL3V0Zl8xNi5ycyI6ImMwNzFhMTQ3ZmFkMzhkNzUwYzJjMjQ3ZTE0MWI3 NmI5MjlhNDgwMDdiOTlmMjZiMjkyMmI5Y2FlY2RhZjJmMjUiLCJzcmMvdXRmXzgucnMiOiI3Yjdk ODg3YjM0N2YxYWVmYTAzMjQ2YjAyOGEzNmE3Mjc1OGE0Y2U3NmMyOGYzYjQ1YzE5NDY3ODUxYWE3 ODM5Iiwic3JjL3ZhcmlhbnQucnMiOiIxZmFiNTM2MzU4OGExNTU0YTcxNjlkZTg3MzFlYTljZGVk N2FjNjNlYTM1Y2FhYmRkMWMyN2E4ZGRlNjhjMjdiIiwic3JjL3hfdXNlcl9kZWZpbmVkLnJzIjoi OTQ1NmNhNDYxNjhlZjg2Yzk4Mzk5YTI1MzZmNTc3ZWY3YmUzY2RkZTkwYzBjNTEzOTJkOGFjNDg1 MTlkM2ZhZSJ9LCJwYWNrYWdlIjoiNzUwMzBmM2M0ZjQ1ZGFmZDc1ODZkZDY3ODA5NjVhOGM3ZThl Mjg1YTVlY2I4NjcxM2U2M2E3OWM1YjI3NjZmMyJ9CitcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZp bGUKKyt7ImZpbGVzIjp7IkNPTlRSSUJVVElORy5tZCI6ImNhMTkwMWYzZTg1MzJmYjRjZWM4OTRm ZDM2NjRmMGVhYTg5OGMwYzRiOTYxZDFiOTkyZDFlZDU0ZWFjZjM2MmEiLCJDT1BZUklHSFQiOiIx MTc4OWY0NWJiMTgwODQxY2QzNjJhNWVlZTY3ODljNjhkZGI1NzNhMTExMDVlMzA3NjhjMzA4YTZh ZGQwMTkwIiwiQ2FyZ28udG9tbCI6ImJmZWMwNmJjNjI5MzJiNjI5ZmFhNTc4ZDVmZWZiYzRkYzhk ZGJkNmM4MDdlNTQyZjZhNjc2ZGMyODNlMmY3MTYiLCJJZGVhcy5tZCI6ImI3NDUyODkzZjUwMDE2 Mzg2OGQ4ZGU1MmMwOWFkZGFmOTFlMTYzMjQ1NGVkMDJlODkyYzQ2N2VkN2VjMzlkYmQiLCJMSUNF TlNFLUFQQUNIRSI6ImNmYzc3NDliOTZmNjNiZDMxYzNjNDJiNWM0NzFiZjc1NjgxNDA1M2U4NDdj MTBmM2ViMDAzNDE3YmM1MjNkMzAiLCJMSUNFTlNFLU1JVCI6IjNmYTRjYTgzZGNjOTIzNzgzOWIx YmRlYjJlNmQxNmJkZmI1ZWMwYzVjZTQyYjI0Njk0ZDhiYmYwZGNiZWY3MmMiLCJMSUNFTlNFLVdI QVRXRyI6IjgzODExODM4OGZlNWMyZTdmMWRiYmFlZWQxM2UxYzdmM2ViZjg4YmU5MTMxOWM3YzFk NzdjMThlOTg3ZDFhNTAiLCJSRUFETUUubWQiOiI5ODI2MTM3ZWQ0Mjk3YmUzYjIwMTliNzRhOGY2 MTExYTc5NmZmNTA3YmRlNDFkZjJmMjA3MTI1Mzk3MDRiOWU5IiwiY2kvbWlyaS5zaCI6IjQzY2I4 ZDgyZjQ5ZTNiZmUyZDIyNzRiNmNjZDZmMDcxNGE0MTg4Y2NlZjBjZWNjMDQwODI5ODgzY2ZkYmVl MjUiLCJkb2MvQmlnNS50eHQiOiJmNzNhMmVkYzVjYjZjMmQxNDBiYTZlMDdmNDU0MmUxYzRhMjM0 OTUwMzc4YWNkZTFkZjkzNDgwZjBjYTBiZTBiIiwiZG9jL0VVQy1KUC50eHQiOiJlZTI4MThiOTA3 ZDAxMzdmNDBhOWFiOWZkNTI1ZmM3MDBhNDRkYmRkZGI2Y2YwYzE1N2E2NTY1NjZiYWU0YmYxIiwi ZG9jL0VVQy1LUi50eHQiOiI3MWQ5ZTJjY2YzYjEyNGU4YmRmYjQzM2M4Y2YyNzczZmQ4NzgwNzcw MzhkMGNlYzNjNzIzN2E1MGY0YTc4YTMwIiwiZG9jL0dCSy50eHQiOiI4MjI5ZTU5MDc2ZDhiZGRi MDE4NjVjZGNmNmFmZGEzNTMzMjM4ZDdjMjNkOTdmOTg4MjBmOWUzYjJkMTM1MDVkIiwiZG9jL0lC TTg2Ni50eHQiOiJhNWE0MzNlODA0ZDBmODNhZjc4NTAxNTE3OWZiYzFkOWIwZWFmMWY3OTYwZWZj ZDA0MDkzZTEzNmI1MWZiZDBlIiwiZG9jL0lTTy0yMDIyLUpQLnR4dCI6ImFmODY2ODRmNWE4ZjBl Mjg2OGQ3YjJjMjkyODYwMTQwYzNkMmU1NTI3NTMwY2EwOTFmMWIyODE5OGU4ZTJmZTYiLCJkb2Mv SVNPLTg4NTktMTAudHh0IjoiNmQzOTQ5YWQ3YzgxY2ExNzY4OTUxMDFlZDgxYTFkYjdkZjEwNjBk NjRlMjYyODgwYjk0YmQzMWJiMzQ0YWI0ZCIsImRvYy9JU08tODg1OS0xMy50eHQiOiIzOTUxZGQ4 OWNmOTNmNzcyOTE0ODA5MTY4M2NmODUxMWY0NTI5Mzg4YjdkYzhkY2QwZDYyZWFlZDU1YmU5M2Zh IiwiZG9jL0lTTy04ODU5LTE0LnR4dCI6IjNkMzMwNzg0YTAzNzRmZDI1NWEzOGI0Nzk0OTY3NWNj NzE2OGM4MDA1MzA1MzRiMGEwMWNhYzZlZGM2MjNhZGMiLCJkb2MvSVNPLTg4NTktMTUudHh0Ijoi MjRiMTA4NGFhYjUxMjdhODVhYWI5OTE1M2Y4NmUyNDY5NGQwYTM2MTVmNTNiNWNlMjM2ODNmOTdj ZjY2YzQ3YSIsImRvYy9JU08tODg1OS0xNi50eHQiOiJjZTAyNzI1NTliOTJiYTc2ZDdhN2U0NzZm NjQyNGFlNGE1Y2M3MmU3NWIxODM2MTFiMDgzOTJlNDRhZGQ0ZDI1IiwiZG9jL0lTTy04ODU5LTIu dHh0IjoiMThjZWZmODhjMTNkMWI1YmE0NTVhMzkxOWIxZTNkZTQ4OTA0NWM0YzNkMmRkN2U4NTI3 YzEyNWM3NWQ1NGFhZCIsImRvYy9JU08tODg1OS0zLnR4dCI6IjIxNzk4NDA0YzY4ZjRmNWRiNTky MjMzNjJmMjQ5OTlkYTk2OTY4YzA2Mjg0MjczMjFmY2NjZTdkMjg0OWExMzAiLCJkb2MvSVNPLTg4 NTktNC50eHQiOiJkMjdmNjUyMGM2YzViZmJjYzE5MTc2YjcxZDA4MWNkYjNiY2NkZTE2MjJiYjNl NDIwZDU2ODBlODEyNjMyZDUzIiwiZG9jL0lTTy04ODU5LTUudHh0IjoiYTEwZWM4ZDZlYTdhNzhh ZDE1ZGE3Mjc1ZjZjYjFhMzM2NTExODUyN2UyOGY5YWY2ZDBkNTgzMDUwMTMwM2YzYSIsImRvYy9J U08tODg1OS02LnR4dCI6ImNjZGE4YTJlZmM5NjExNTMzNmJkZDc3Nzc2NjM3Yjk3MTI0MjVlNDRm YmNmNzQ1MzUzYjkwNTdmYmVmMTQ0ZTciLCJkb2MvSVNPLTg4NTktNy50eHQiOiIxNzkwMGZhMWYy N2E0NDU5NThmMGE3N2Q3ZDkwNTZiZTM3NWE2YmQ3ZWU0NDkyYWE2ODBjN2MxNTAwYmFiODVlIiwi ZG9jL0lTTy04ODU5LTgtSS50eHQiOiI4MzU3NTU1NjQ2ZDU0MjY1YTliOWZmYTNlNjhiMDhkMTMy MzEyZjE1NjFjNjAxMDhmZjliOGIxMTY3YjZlY2YyIiwiZG9jL0lTTy04ODU5LTgudHh0IjoiNzJj ZDZmM2FmYjdiNGE5YzE2YTY2YTM2MjQ3MzMxNTc3MGI3NzU1ZDcyYzg2Yzg3MGU1MmZjM2ViYTg2 YzhhZiIsImRvYy9LT0k4LVIudHh0IjoiODM5Y2YxOWEzOGRhOTk0NDg4MDA0ZWQ3ODE0YjFmNjE1 MTY0MDE1NmE5YTJhZjAyYmYyZWZjYTc0NWZiNTk2NiIsImRvYy9LT0k4LVUudHh0IjoiMGNjNzY2 MjRlZDFmMDI0MTgzZTIyOThiN2UwMTk5NTdkYTJjNzBjOGNhMDZlMGZjNGU2ZjM1M2Y1MGE1MDU0 ZiIsImRvYy9TaGlmdF9KSVMudHh0IjoiMzRjNDkxNDE4MThjYjlkZGJjZjU5Y2M4NThmNzhhNzli ZThhZDE0OGQ1NjNmMjY0MTUxMDhhZTFmMTQ4NDQzZiIsImRvYy9VVEYtMTZCRS50eHQiOiJlMmUy ODBkOGFjYmFhNmQyYTZiMzU2OWQ2MGUxNzUwMGEyODVmMmJhYTBkZjMzNjNkZDg1NTM3Y2Q1YTFl ZjhmIiwiZG9jL1VURi0xNkxFLnR4dCI6IjcwYmRjMTcwZTNmYzUyOThiYTY4ZjEwMTI1ZmI1ZWVi OGIwNzcwMzZjYzk2YmI0NDE2YzRkZTM5NmY2ZDc2YzEiLCJkb2MvVVRGLTgudHh0IjoiZWE3YmFl NzQyZTYxMzAxMGNlZDAwMmNmNGI2MDFhNzM3ZDIyMDNmYWQ2NWUxMTU2MTE0NTFiYzQ0MjhmNTQ4 YSIsImRvYy9nYjE4MDMwLnR4dCI6IjY3YTAxNjY1Yzc1NTA1MzMwYjBmZTViOGQ4OGQ1ODczZDhj ZTU1NWExNDVjNzdkY2EwNGE0NjdmYTI2ODA3NDQiLCJkb2MvbWFjaW50b3NoLnR4dCI6IjU3NDkx ZTUzODY2NzExYjQ2NzJkOWI5ZmYzNTM4MGI5ZGFjOWUwZDhlM2Q2YzIwYmRkNjE0MDYwMzY4N2Mw MjMiLCJkb2MvcmVwbGFjZW1lbnQudHh0IjoiNGI2YzNiYmQ3OTk5ZDlkNDEwOGEyODE1OTRiZDAy ZDEzNjA3ZTMzNGE5NTQ2NWFmZmY4YzJjMDhkMzk1ZjBlNCIsImRvYy93aW5kb3dzLTEyNTAudHh0 IjoiNjEyOTZiYjZhMjFjZGFiNjAyMzAwZDMyZWNmYmE0MzRjYjgyZGU1YWMzYmM4OGQ1ODcxMGQy ZjEyNWUyOGQzOSIsImRvYy93aW5kb3dzLTEyNTEudHh0IjoiN2RlZWExYzYxZGVhMTQ4NWM4ZmYw MmRiMmM3ZDU3OGRiN2E5YWFiNjNhYjFjZmQwMmVjMDRiNTE1ODY0Njg5ZSIsImRvYy93aW5kb3dz LTEyNTIudHh0IjoiOTMzZWYzYmRkZGZjZTVlZTEzMmI5ZjFhMWFhOGI0NzQyM2QyNTg3YmJlNDc1 YjE5MDI4ZDBhNmQzOGUxODBiNiIsImRvYy93aW5kb3dzLTEyNTMudHh0IjoiMWEzODc0OGI4OGU5 OTA3MWE1YzdiM2Q1NDU2ZWFkNGNhZWRlYWJhYjUwZDUwZDY1OGJlMTA1YmMxMTM3MTRkZSIsImRv Yy93aW5kb3dzLTEyNTQudHh0IjoiZjgzNzJmODZjNmY4ZDY0MjU2M2NkNmRkYzAyNTI2MDU1MzI5 MmEzOTQyM2RmMTY4M2E5ODY3MGJkN2JmMmI0NyIsImRvYy93aW5kb3dzLTEyNTUudHh0IjoiNGU1 ODUyNDk0NzMwMDU0ZTJkYTI1OGE3NGUxYjlkNzgwYWJiY2RkOGNlMjJlYmMyMThjYTJlZmU5ZTkw NDkzZCIsImRvYy93aW5kb3dzLTEyNTYudHh0IjoiYzA4NzljNTE3MmFiZWRlYWQzMDJhNDA2ZThm NjBkOWNkOTU5ODY5NGEwZmZhNGZkMjg4ZmZlNGZlZjdiOGVhMSIsImRvYy93aW5kb3dzLTEyNTcu dHh0IjoiYzI4YTBjOWY5NjRmY2IyYjQ2ZDIxZjUzN2M0MDI0NDY1MDFhMjgwMDY3MDQ4MWQ2YWJm OWZkOWU5MDE4ZDUyMyIsImRvYy93aW5kb3dzLTEyNTgudHh0IjoiNTAxOWFlNGQ2MTgwNWM3OWFh Y2JmMTdjOTM3OTMzNDJkYmIwOThkNjVhMTgzNzc4M2JjM2UyYzZkNmEyMzYwMiIsImRvYy93aW5k b3dzLTg3NC50eHQiOiI0ZWYwZTQ1MDFjNWZlYmE4YjE3YWVlMTgxODYwMmVkNDRiMzZjYTg0NzVk Yjc3MWNlMmZjMTZkMzkyY2FiZWNjIiwiZG9jL3gtbWFjLWN5cmlsbGljLnR4dCI6IjU4YmUxNTRk OGE4ODhjYTNkNDg0YjgzYjQ0Zjc0OTgyM2VmMzM5YWIyN2YxNGQ5MGNhOWE4NTZmNTA1MGE4YmQi LCJkb2MveC11c2VyLWRlZmluZWQudHh0IjoiZjljZDA3YzQzMjFiZjVjZmIwYmU0YmRkZGQyNTEw NzI5OTliMDRhNmNmN2E2ZjViYzYzNzA5YTg0ZTJjMWZmYyIsImdlbmVyYXRlLWVuY29kaW5nLWRh dGEucHkiOiI2ZjM0YTg0NTc4NWY1MzQyNWFjY2YzMDc1OWVkYzU2Njg3M2ZjYjBjMjE4ODY0OGUw N2IwOWM4OThmMzlkZGRiIiwicnVzdGZtdC50b21sIjoiODVjMWEzYjQzODJmZDg5ZTk5MWNiYjgx YjcwZmI1Mjc4MDQ3MmVkYzA2NGM5NjM5NDNjZGFhYTU2ZTBhMjAzMCIsInNyYy9hc2NpaS5ycyI6 IjU4OGUzOGIwMWU2NjZkNWU3NDYyNjE3ZWE3ZTkwYTEwOGQ2MDhkZWM5ZTAxNmYzZDI3M2FjMDc0 NGFmMmUwNWQiLCJzcmMvYmlnNS5ycyI6ImVjNmUyOTEzMDExYTM4ZTlhM2U4MjVhMTczMWYxMzlh N2NhMWQ1YjI2NGZlZmFlNTFhM2NjMWE2OGE1N2NlZjkiLCJzcmMvZGF0YS5ycyI6ImI5M2YzNDAy NWZlNWM2YTg1YjRiOWYwMDM3YmY1ODk2MTM1MmJmMTljODNmOTFiMDliMzVlYjg0OTU2MjVlZWMi LCJzcmMvZXVjX2pwLnJzIjoiMzIwNDdmNWI1NDAxODhjNGNiMTljMDcxNjVmODQ2Yjk3ODZhMDlm MThlMzE1ZWQzZTliZGExMjkzZGFlNTJhYSIsInNyYy9ldWNfa3IucnMiOiI5YjI1YWZjNzJkOTM3 ODcwMGVlY2ZhYzU4ZDU1YWQxYzU5NDZkNmNkMGNjZGUyYzI5YzA4MjAwZWYyZGU2YmI5Iiwic3Jj L2diMTgwMzAucnMiOiI4OWNkNmFlMjI0N2FkZDNmMzQ3MWE2OTliYzEyMTEzYTlhZTJmNmI5MWE1 MjIzYWJiZjE1YjY4YTEzNTM3ZGNkIiwic3JjL2diMTgwMzBfMjAyMi5ycyI6IjNjMmUwNjQ5MmM1 ZTAwZmNkMzk1MTVlNGFmNGM1NjBkOGNlZTVjMzFlN2E3ZTM4OGRiNjgyYmM5ZWUzM2VlMzIiLCJz cmMvaGFuZGxlcy5ycyI6ImIwOGNlZjFmNTc4NWJiNmE0ODIyZjJlODQ0YzZkZjFiMDQ2YjczN2I3 YTA3NWU0NTkzZWFhOGM0MjA4ZTlmZTIiLCJzcmMvaXNvXzIwMjJfanAucnMiOiI5YmI0ODVlODI1 NzRmNGI3ZDRiMjM2NGYwZmYyNzZhY2I2YTBiYzExMTc1ODQyMGEzYjBlYzVlMDRjMTk2NjUyIiwi c3JjL2xpYi5ycyI6ImM0ZDlmYTFjNDMxMDVlMjMxMDEyMmYxYjkxOTcxMjUwMzJlNjA3ZmU2Zjc5 YmMyMjc2OWIzNDBkZTc2ZTI0MzAiLCJzcmMvbWFjcm9zLnJzIjoiMjAwOTk3Zjg4NzBkZThiZmQ4 Y2RjNDc1ZTkyMTE1ZGY0MjEwOGMwZGY2NjFlNDlkM2QxY2JjMzIwNTZlMWQ5OSIsInNyYy9tZW0u cnMiOiI5NDg1NzExMzdkM2IxNTFkZjhkYjRmYjJjNzMzZTc0YWU1OTVkMDU1Y2RmMGFkODNhYmNh YjkzNDFkNmFkYWJlIiwic3JjL3JlcGxhY2VtZW50LnJzIjoiNzY2MGIzNGE1M2Y4YzFjYTJiZGZh MGU1MWU4NDNlYzI4MzI2OTUwOTUyYWQ4YmM5NjU2OWZlYjkzYWM2MjMwOCIsInNyYy9zaGlmdF9q aXMucnMiOiI2OTUxYWU2N2UzNmIxYTEyZmEzYTMwNzM0OTU3ZjQ0NGQ4YjFiNGFlMGUyYmRlNTIw NjBiMjliZDBmMTZkOWQ5Iiwic3JjL3NpbWRfZnVuY3MucnMiOiIwNWM2ZTc3YWY3NGJmZTczY2Qz OWE3NTIwNjdjMTE0MjVkNmI0NmU1ZGE0MTk5MTBmNTRiZjc1YTVjMDJhOTg0Iiwic3JjL3Npbmds ZV9ieXRlLnJzIjoiM2FkODcxMTZmYjMzOTQzNGE0YjU4ZThmMmIxNTQ4NWYyYjY2YjlmNzgxNGQ3 MDhmMTYxOTRlZDA4ZjZkNmNjZiIsInNyYy90ZXN0X2RhdGEvYmlnNV9pbi50eHQiOiJhNWFlMjkw Nzg2NjEwYzdmYWNkYmIxZDA2YmU2ODE1ZThiYjgxZDY4ZGZhNzM4MGVkYzdkZGI2YjhjN2U0MTJl Iiwic3JjL3Rlc3RfZGF0YS9iaWc1X2luX3JlZi50eHQiOiI1MjczM2Q5OTcwZmI4OTg3ZjAxNGZh MGVhYzI3OTIyNTAxMjNjZjU4M2IzNjNiZWIyY2U3YjNjNTVlM2RjNTU1Iiwic3JjL3Rlc3RfZGF0 YS9iaWc1X291dC50eHQiOiI1NzQyMGNhNDFhNjY5Yzk0OTczOGM4NGNhYjYyMDAyMDk1OTU3MmQy ZWU5N2I0ZTA1OTQwNWJmZTI2YTc5YjZkIiwic3JjL3Rlc3RfZGF0YS9iaWc1X291dF9yZWYudHh0 IjoiMDBlNWY2N2MyMjJkZDVjZDNiYjE3MzkyNzY5MTBiOGYwMDMyZjQ1NGNiYTdjZjdjM2VhYTI1 NWE1NjQxODhkMCIsInNyYy90ZXN0X2RhdGEvZXVjX2tyX2luLnR4dCI6IjIxNTM0ZWM4N2U4MmQ3 ODVkMTI4Zjk4MDkwMmQxM2ZhYjZkOWRlYTE1YzY5YTk5MWY0MDlkOWIwYWZkMWM4NTIiLCJzcmMv dGVzdF9kYXRhL2V1Y19rcl9pbl9yZWYudHh0IjoiYjMwMDllNmE5NDk2N2RmMWYxMTM1YzY2ZjAw NTYxMGJlYmFkNjY2NmQ2MzRhZWM3MmQyYWQ3N2MzMjExYmRhMyIsInNyYy90ZXN0X2RhdGEvZXVj X2tyX291dC50eHQiOiIyMDIwNWIwYjViZTRmNTc5MjcxMTkzYjViZmJjNTQ5YTYxYTlmZDUyMTdj MzNlZWNmYTYxNzg0YTNmZmUyZTlkIiwic3JjL3Rlc3RfZGF0YS9ldWNfa3Jfb3V0X3JlZi50eHQi OiJiNWY1NjYyMzdmOGQ0ZWY0ZDAzYWQyNjEzNWNhOTdkZmQ3Mzk4NjA4YTgyMTY1YmQ0ODUzYjUx MzRhYjIyY2I1Iiwic3JjL3Rlc3RfZGF0YS9nYjE4MDMwX2luLnR4dCI6IjBkZDFmYmYwMzYwOTMw ZGFhZmRjZTdlNjc2MTg1MjAwNWE4ZjkyZjc5MTAxODBkZjE5YTA3MGI2YzNjNTlkZWUiLCJzcmMv dGVzdF9kYXRhL2diMTgwMzBfaW5fcmVmLnR4dCI6ImYzZWFlYTExMTU4NTcwNTRjZjMwZjhiYTE4 MjE5ZTcyMzc3ZjJhNGFmZDg0OGNjZjIyMzc3MGQ3NWFhNDI1MWQiLCJzcmMvdGVzdF9kYXRhL2di MTgwMzBfb3V0LnR4dCI6IjcxODRmZTk1OTI2MDk1OTdkNTVjMjczMzYwNmI0YzRiMWExOGI3OWIy NDUzM2UxYTE2YTE0ZmY5MmU3ZDJiNTUiLCJzcmMvdGVzdF9kYXRhL2diMTgwMzBfb3V0X3JlZi50 eHQiOiIyM2JiODUwZGRjNjlhYWYxYmRmZWFiZTA1YTEyZDkzZjYxNGU1NTYwZGFjODc5ZDVmMDI5 MjllZTRhN2MwNmM1Iiwic3JjL3Rlc3RfZGF0YS9pc29fMjAyMl9qcF9pbi50eHQiOiI5OGZiODIz NTMwYTMwYTc2ZWIwYmE3YWI2YWM3OTY5NTllODg2OWMxZWMxNDNmMDE4YTE5NjQ1ODFhZTgxM2Fh Iiwic3JjL3Rlc3RfZGF0YS9pc29fMjAyMl9qcF9pbl9yZWYudHh0IjoiZGY4MjE2NmQyZTAxYmI0 NDYyMTFkN2U0NmYzM2I0N2Q5M2FjMWJhZmVhZTJlZDg4MGVlOTNjNDA5NmQxMTIxMCIsInNyYy90 ZXN0X2RhdGEvaXNvXzIwMjJfanBfb3V0LnR4dCI6ImJlZjhlYjQ4MDRlZDA4NDNiOWRmZmRkMWQx Njg3Mzg2MzVjYzc3ZjhkMDkyOWJlYjI1MzJiNjg2MzE4ZGRhZTYiLCJzcmMvdGVzdF9kYXRhL2lz b18yMDIyX2pwX291dF9yZWYudHh0IjoiYjIyMWIzNmIyYmNlNDlkNDliNjIwZGM4YmE4MGQ3N2Jh Yzc0ZTg2NjBhODZhMTE2MjhlNzliNjdmMWQ5ODk2NCIsInNyYy90ZXN0X2RhdGEvamlzMDIwOF9p bi50eHQiOiIzYzFhN2FhYWRhMDBkNmZmZjQxZTYwYmQ3NTg5ZDdhZTk0YWZhZjU2Mjc1OWIxMTY5 NThiMWQ4NDcxMWQxN2I2Iiwic3JjL3Rlc3RfZGF0YS9qaXMwMjA4X2luX3JlZi50eHQiOiJkZjgy MTY2ZDJlMDFiYjQ0NjIxMWQ3ZTQ2ZjMzYjQ3ZDkzYWMxYmFmZWFlMmVkODgwZWU5M2M0MDk2ZDEx MjEwIiwic3JjL3Rlc3RfZGF0YS9qaXMwMjA4X291dC50eHQiOiJhNjE4OGI2N2ViMDBiYTk4MGNi ODMwNTYxODZjODliY2RkZGMxYjAyMTBhZjlhZmE3OGVkMWM5YjdhMDk4OTUwIiwic3JjL3Rlc3Rf ZGF0YS9qaXMwMjA4X291dF9yZWYudHh0IjoiZTc1YTk4NmZlNWU3OGU2NGJmOGZhZmQ3MzkyYWU5 NmVlMGNiMGE0YjJlN2VmMmZlNzIyYjNjYWFjZjNlMmY3MCIsInNyYy90ZXN0X2RhdGEvamlzMDIx Ml9pbi50eHQiOiI5ZWRhNzY2MDAyNjQ2YTI3MzEwNDU3YzY2MTgzMjQyOWJlZmY5MDg5ZDI3MDMz NTU4MTJjNGNhYzMwZDgwMGI1Iiwic3JjL3Rlc3RfZGF0YS9qaXMwMjEyX2luX3JlZi50eHQiOiJm Y2Y3NGM1OGQyY2JlOWIzZjNkYjRmYTllZmYyNmUwOWY1ZTk2NDQwOTdjNzg2MTRjMDMxNzdlOTM4 OTg4ZDAzIiwic3JjL3Rlc3RfZGF0YS9zaGlmdF9qaXNfaW4udHh0IjoiZTY1ZGY3NDZiZTkwMzU5 ZTcwNDIyODY4NTIyYTdhYTNlOGVkMjBlMGQ0YzBjZjk5OTVkOWRlMjQ4YmY5MzM4OCIsInNyYy90 ZXN0X2RhdGEvc2hpZnRfamlzX2luX3JlZi50eHQiOiIxM2IxNWFlZDY0ZTllN2NiMzVlNmE3NDBi Njc0MTNmMGMyODVmZGE5NDRmNDgxNGQ0NWE3NjE5ZWEzMzhmYjVlIiwic3JjL3Rlc3RfZGF0YS9z aGlmdF9qaXNfb3V0LnR4dCI6IjE5MmQwYTRhOGNlNWQwZjkwNGM1Y2IyODNkZmI5NzQ1NzdlZTY2 N2NmMWU3MTk1NWE2ZGQ2YWVjZTJiMzU0ZWYiLCJzcmMvdGVzdF9kYXRhL3NoaWZ0X2ppc19vdXRf cmVmLnR4dCI6ImNiNmQ1MGIwYzExYmFkMWQxZjFmY2MwMmQ3Nzk2NzJhOGI5YTI1MDljYmJhZmRj NjM5MmFjZWI0OWM4YjQyNjgiLCJzcmMvdGVzdF9sYWJlbHNfbmFtZXMucnMiOiIyM2EyZTExYjAy YjNiOGQxNWZiNTYxM2E2MjVlM2VkYjJjNjFlNzBlM2M1ODFhYmZkNjM4NzE5YTQwODgyMDBkIiwi c3JjL3Rlc3RpbmcucnMiOiJmNTllNjcxZTk1YTk4YTU2ZjZiNTczZThjNmJlNGQ3MWU2NzBiZjUy ZjdlMjBlYjE2MDVkOTkwYWFmYTE4OTRlIiwic3JjL3V0Zl8xNi5ycyI6ImMwNzFhMTQ3ZmFkMzhk NzUwYzJjMjQ3ZTE0MWI3NmI5MjlhNDgwMDdiOTlmMjZiMjkyMmI5Y2FlY2RhZjJmMjUiLCJzcmMv dXRmXzgucnMiOiI3YjdkODg3YjM0N2YxYWVmYTAzMjQ2YjAyOGEzNmE3Mjc1OGE0Y2U3NmMyOGYz YjQ1YzE5NDY3ODUxYWE3ODM5Iiwic3JjL3ZhcmlhbnQucnMiOiIxZmFiNTM2MzU4OGExNTU0YTcx NjlkZTg3MzFlYTljZGVkN2FjNjNlYTM1Y2FhYmRkMWMyN2E4ZGRlNjhjMjdiIiwic3JjL3hfdXNl cl9kZWZpbmVkLnJzIjoiZDczMzY2MGM3Nzc1YWZhODAwN2NmYzgwYzA5MDU3ZDg3NWQ2NjEzYWFm OThjN2RjOTQyZTQ3ZmI5MzMwNmZlYiJ9LCJwYWNrYWdlIjpudWxsfQorXCBObyBuZXdsaW5lIGF0 IGVuZCBvZiBmaWxlCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9D YXJnby50b21sIGIvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9DYXJnby50b21sCistLS0g YS90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL0NhcmdvLnRvbWwKKysrKyBiL3RoaXJkX3Bh cnR5L3J1c3QvZW5jb2RpbmdfcnMvQ2FyZ28udG9tbAorQEAgLTEwLDIyICsxMCwxNiBAQAorICMg U2VlIENhcmdvLnRvbWwub3JpZyBmb3IgdGhlIG9yaWdpbmFsIGNvbnRlbnRzLgorIAorIFtwYWNr YWdlXQorIGVkaXRpb24gPSAiMjAxOCIKKyBydXN0LXZlcnNpb24gPSAiMS4zNiIKKyBuYW1lID0g ImVuY29kaW5nX3JzIgorIHZlcnNpb24gPSAiMC44LjM1IgorIGF1dGhvcnMgPSBbIkhlbnJpIFNp dm9uZW4gPGhzaXZvbmVuQGhzaXZvbmVuLmZpPiJdCistYnVpbGQgPSBmYWxzZQorLWF1dG9saWIg PSBmYWxzZQorLWF1dG9iaW5zID0gZmFsc2UKKy1hdXRvZXhhbXBsZXMgPSBmYWxzZQorLWF1dG90 ZXN0cyA9IGZhbHNlCistYXV0b2JlbmNoZXMgPSBmYWxzZQorIGRlc2NyaXB0aW9uID0gIkEgR2Vj a28tb3JpZW50ZWQgaW1wbGVtZW50YXRpb24gb2YgdGhlIEVuY29kaW5nIFN0YW5kYXJkIgorIGhv bWVwYWdlID0gImh0dHBzOi8vZG9jcy5ycy9lbmNvZGluZ19ycy8iCisgZG9jdW1lbnRhdGlvbiA9 ICJodHRwczovL2RvY3MucnMvZW5jb2RpbmdfcnMvIgorIHJlYWRtZSA9ICJSRUFETUUubWQiCisg a2V5d29yZHMgPSBbCisgICAgICJlbmNvZGluZyIsCisgICAgICJ3ZWIiLAorICAgICAidW5pY29k ZSIsCitAQCAtMzUsMTYgKzI5LDM5IEBAIGNhdGVnb3JpZXMgPSBbCisgICAgICJ0ZXh0LXByb2Nl c3NpbmciLAorICAgICAiZW5jb2RpbmciLAorICAgICAid2ViLXByb2dyYW1taW5nIiwKKyAgICAg ImludGVybmF0aW9uYWxpemF0aW9uIiwKKyBdCisgbGljZW5zZSA9ICIoQXBhY2hlLTIuMCBPUiBN SVQpIEFORCBCU0QtMy1DbGF1c2UiCisgcmVwb3NpdG9yeSA9ICJodHRwczovL2dpdGh1Yi5jb20v aHNpdm9uZW4vZW5jb2RpbmdfcnMiCisgCisrW3Byb2ZpbGUucmVsZWFzZV0KKytsdG8gPSB0cnVl CisrCisrW2RlcGVuZGVuY2llc10KKytjZmctaWYgPSAiMS4wIgorKworK1tkZXBlbmRlbmNpZXMu YW55X2FsbF93b3JrYXJvdW5kXQorK3ZlcnNpb24gPSAiMC4xLjAiCisrb3B0aW9uYWwgPSB0cnVl CisrCisrW2RlcGVuZGVuY2llcy5ydXN0dmVyc2lvbl0KKyt2ZXJzaW9uID0gIjEuMC4xOSIKKytv cHRpb25hbCA9IHRydWUKKysKKytbZGVwZW5kZW5jaWVzLnNlcmRlXQorK3ZlcnNpb24gPSAiMS4w IgorK29wdGlvbmFsID0gdHJ1ZQorKworK1tkZXYtZGVwZW5kZW5jaWVzXQorK2JpbmNvZGUgPSAi MS4wIgorK3NlcmRlX2Rlcml2ZSA9ICIxLjAiCisrc2VyZGVfanNvbiA9ICIxLjAiCisrCisgW2Zl YXR1cmVzXQorIGFsbG9jID0gW10KKyBkZWZhdWx0ID0gWyJhbGxvYyJdCisgZmFzdC1iaWc1LWhh bnppLWVuY29kZSA9IFtdCisgZmFzdC1nYi1oYW56aS1lbmNvZGUgPSBbXQorIGZhc3QtaGFuZ3Vs LWVuY29kZSA9IFtdCisgZmFzdC1oYW5qYS1lbmNvZGUgPSBbXQorIGZhc3Qta2FuamktZW5jb2Rl ID0gW10KK0BAIC01NywzNSArNzQsOCBAQCBmYXN0LWxlZ2FjeS1lbmNvZGUgPSBbCisgXQorIGxl c3Mtc2xvdy1iaWc1LWhhbnppLWVuY29kZSA9IFtdCisgbGVzcy1zbG93LWdiLWhhbnppLWVuY29k ZSA9IFtdCisgbGVzcy1zbG93LWthbmppLWVuY29kZSA9IFtdCisgc2ltZC1hY2NlbCA9IFsKKyAg ICAgImFueV9hbGxfd29ya2Fyb3VuZCIsCisgICAgICJydXN0dmVyc2lvbiIsCisgXQorLQorLVts aWJdCistbmFtZSA9ICJlbmNvZGluZ19ycyIKKy1wYXRoID0gInNyYy9saWIucnMiCistCistW2Rl cGVuZGVuY2llc10KKy1jZmctaWYgPSAiMS4wIgorLQorLVtkZXBlbmRlbmNpZXMuYW55X2FsbF93 b3JrYXJvdW5kXQorLXZlcnNpb24gPSAiMC4xLjAiCistb3B0aW9uYWwgPSB0cnVlCistCistW2Rl cGVuZGVuY2llcy5ydXN0dmVyc2lvbl0KKy12ZXJzaW9uID0gIjEuMC4xOSIKKy1vcHRpb25hbCA9 IHRydWUKKy0KKy1bZGVwZW5kZW5jaWVzLnNlcmRlXQorLXZlcnNpb24gPSAiMS4wIgorLW9wdGlv bmFsID0gdHJ1ZQorLQorLVtkZXYtZGVwZW5kZW5jaWVzXQorLWJpbmNvZGUgPSAiMS4wIgorLXNl cmRlX2Rlcml2ZSA9ICIxLjAiCistc2VyZGVfanNvbiA9ICIxLjAiCistCistW3Byb2ZpbGUucmVs ZWFzZV0KKy1sdG8gPSB0cnVlCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9ydXN0dmVy c2lvbi8uY2FyZ28tY2hlY2tzdW0uanNvbiBiL3RoaXJkX3BhcnR5L3J1c3QvcnVzdHZlcnNpb24v LmNhcmdvLWNoZWNrc3VtLmpzb24KK25ldyBmaWxlIG1vZGUgMTAwNjQ0CistLS0gL2Rldi9udWxs CisrKysgYi90aGlyZF9wYXJ0eS9ydXN0L3J1c3R2ZXJzaW9uLy5jYXJnby1jaGVja3N1bS5qc29u CitAQCAtMCwwICsxLDEgQEAKKyt7ImZpbGVzIjp7IkNhcmdvLnRvbWwiOiJmYzIxMWNjZDY0ZDNh ZDU5YTA3MTVjMWE2ZjhjYmZiYmQ4MzA0NWY2NDQxOTQzOTQ1OTVkMTY2NDZlZWU5OTQ3IiwiTElD RU5TRS1BUEFDSEUiOiI2MmM3YTFlMzVmNTY0MDY4OTZkN2FhN2NhNTJkMGNjMGQyNzJhYzAyMmI1 ZDI3OTZlN2Q2OTA1ZGI4YTM2MzZhIiwiTElDRU5TRS1NSVQiOiIyM2YxOGUwM2RjNDlkZjkxNjIy ZmUyYTc2MTc2NDk3NDA0ZTQ2Y2VkOGE3MTVkOWQyYjY3YTc0NDY1NzFjY2EzIiwiUkVBRE1FLm1k IjoiOTEzZDA0ZDE1ODg0MzU2Njk5MTg0NWNjOWQ3NmUyNDYxMGJmMzFmNWE5OWU1NTExNTAyM2Nj YzBiMTZmZjFlNyIsImJ1aWxkL2J1aWxkLnJzIjoiNDQzOGIxMDhkNWIxOThjYTQzZWYwYTc4NTA5 ZGE4OTg2MTAyMDY3NGFiZDA1MTY2YWRkZDFjMzA1OGFmYmZhNiIsImJ1aWxkL3J1c3RjLnJzIjoi ZmFmNjcwMzNlYzgzMWQ5Njg0MDZmNWE2NmM0NzVkZjMzN2Y3MjIxZTlkMWFiMzQ3N2ZlZDNhNjI5 ZTFlYzViYyIsInNyYy9hdHRyLnJzIjoiOTMwMWNkNGFmZjVhOTY0OGMwNTdkNWQ4ZGU5ZWI2Njky MWYwYzNhNzE1YzUxYWRhNDQ1OTU3NmJkNDljOGIxOSIsInNyYy9ib3VuZC5ycyI6IjEzYzM1MzAy YmQ1ZDk2ZWJlNTQ1MDk0NzdlNzM2YThiNzIwZTE4Y2IyNDc0ZTU4MDU0ODBjNDUxN2EyMGU1YjAi LCJzcmMvY29uc3Rmbi5ycyI6IjYxM2I4ZjUzYjIxY2MwNmI0ZjYxOWZjZTkwMDA5OTNkM2U3ODcz YjY1MDcwMWNhMDFjZWYxZTUzYmVkNWI0MGEiLCJzcmMvZGF0ZS5ycyI6ImY3OWM1NWRkY2QxOGUx MjQ2MTBjZDVjOTg2N2IxZWJhYWUxZmVlYjZkZmMzN2UyYjdmOTRlMzEzN2FhODgzYjYiLCJzcmMv ZXJyb3IucnMiOiJjYjM3MTAyZjAzZWJiYWNhMzEzZDgwZjk3MTRmZTA4ZGZlZjkyZmU5NTY3ODll ZTg3ZDkzZWI2MTIxNzA1ZjRmIiwic3JjL2V4cGFuZC5ycyI6IjljOTM1MjVhOGM0YTBlNjIwMzY5 ZWQyNTZhMWVlNDBhMGI0OGY5ODRlMGZhZDhkYjhjMGUyOTk4YmM4ZWNiMjMiLCJzcmMvZXhwci5y cyI6IjhlOGNhNzZmNGY1ODM4NDM2ZDlkNzI3M2Y0OTljNjk4YmI0MWY2YzE1YmMwN2QzMmVjNWMx Y2I4YmQzZGQ3MzEiLCJzcmMvaXRlci5ycyI6IjhkNGI4MTdiOWFiYzRlODE3MTA1YjY3M2UxNWYy OWVmOWJiODI4NGEwMTBjZTAxYWMyZDgzMzg3ZmUxMzY5NDciLCJzcmMvbGliLnJzIjoiNzdjNzMy NDkzNTUwYjdlN2E0NmFlMmQyNWU4OWMzNjNhODUxYmEyNWE5ZTlhODlmMWFhZDY3YmFkNGFmYmIw NCIsInNyYy9yZWxlYXNlLnJzIjoiZTA3NTVlZDE4ODliNGM2ZjBmYWFhNWFkZWU1ZjYwZjI3Zjk5 MjZiZWNmZjg3NWRiYjQxYjZhNjVhZTc1NjU5MSIsInNyYy90aW1lLnJzIjoiNmZjZjNhMWVkMjM4 YTk3YmQ3YTM5YjE4N2M4OGJkY2VmMDI0Njg3ODQyNGUwNmFhN2ViNzc5Zjg0MTUyOWIzNCIsInNy Yy90b2tlbi5ycyI6IjgyNGNlNzY1ZjY5MmRiNzNhZmEwMmQzZWJiMDI4MWM3NTA3NDgwMzVlZmM5 OGZhNTQ3YmUyOWQzMDcyNjY1Y2UiLCJzcmMvdmVyc2lvbi5ycyI6ImFmZGIwNDhiYmE5NWJiYjg4 NTk0NWViYTU1MjdiNmJmMGVjYTAxMDU2NDJiZmMzMDRjMmY4MmE4YjdkNTU2ZGYiLCJ0ZXN0cy9j b21waWxldGVzdC5ycyI6IjRlMzgxYWE4Y2EzZWFiYjdhYzE0ZDFlMGMzNzAwYjMyMjNlNDc2NDA1 NDdhNjk4OGNmYTEzYWQ2ODI1NWY2MGYiLCJ0ZXN0cy90ZXN0X2NvbnN0LnJzIjoiY2IxZTAxNDc5 YmQ1NzliMWI3NzMxMmE5MDYzYWI0NTZmZTQ0YWJhZDIyNDNlODE4NzNjMmJmN2VmNWYyMDVlYiIs InRlc3RzL3Rlc3RfZXZhbC5ycyI6IjZmMGVlM2Y0OWM5YTBkMGMzNzRhNGQwZTlhOWRjZTc1M2Nk OWZjMmNhNzcyNWUwMDBhNDM1ZGJkNWY0YTljZTMiLCJ0ZXN0cy90ZXN0X3BhcnNlLnJzIjoiZjQ1 MGUwYTdmMjM5MTU2MTQ4NGFiYjFiODUxMTI0YjU3NDc3NTViNzZmOTQ1ZTEyMTM3MGFkYzcxMGYy MDk5ZCIsInRlc3RzL3VpL2JhZC1ib3VuZC5ycyI6IjI1YmRlMjc4ZmNhYWJmNjI4Njg0MTcxNDhh NWU1ZjIwMDZiZjU4OWQ3ZWJkN2JmNjAwNGZiOGQ3OGU0NzU5NGYiLCJ0ZXN0cy91aS9iYWQtYm91 bmQuc3RkZXJyIjoiMjNiNGNhMGFhMWE3ZGY3NWI1ZmIzNGU1NTNhMzFmYWE2YTNjY2MwMjllY2Q3 ZDY4YjA1Njg5N2MyYzljZmY5ZiIsInRlc3RzL3VpL2JhZC1kYXRlLnJzIjoiNmUyMzcxNGRhZThi NjM0NmZlZmU1MGRhY2Q0YWJiYTMyNjUyNDhiYmFkZmRkNjBjNzM5MTM4YWE4YTAwMzdiYSIsInRl c3RzL3VpL2JhZC1kYXRlLnN0ZGVyciI6ImY0YWVjNzJjYTkxYmE3NDNjYWRjZGFmNWE4NzRjNzAx OTQ5YWRkNWVmY2U0OTBhYWYyYmYxMjQ4ZWY1Nzg3NjgiLCJ0ZXN0cy91aS9iYWQtbm90LnJzIjoi ZjAwM2RmOGJkMjQ1ZTlkZDhlZGMzYTZkOTQwNzhlZTUxNjJmYWM3YTk4ZGI4ODEyNzFmMGY1YjZk Yjk4ZDQ1ZCIsInRlc3RzL3VpL2JhZC1ub3Quc3RkZXJyIjoiMWFlYmIzMTIxZDA2N2Q0MzJhMzJk ZDk1ZmYzODBjZWFjMTVhMDUzMWMzNGY5MGNlZTk1MDU4MjU1ODg0MWM1NiIsInRlc3RzL3VpL2Jh ZC12ZXJzaW9uLnJzIjoiZjRlYTJjZDAzOGU2YzYzZGViOWMyZTNjZWZmY2U5M2RiZjE3OWQ5Y2Ux OGMxNmQ4OGYzYjZjZDcxMzhhOGM4ZSIsInRlc3RzL3VpL2JhZC12ZXJzaW9uLnN0ZGVyciI6ImU5 NDIxNTg2ZDU5Y2I5MTM1MTIzYmQ5NzcxMDY1NTAxNGY5NWNjNWY1NWIwZjk2MTFlMWQyZThjZTll MjlhNWQiLCJ0ZXN0cy91aS9jb25zdC1ub3QtZm4ucnMiOiIxMGJiZTM4ZjBkODkzOTFmZmYwNjk4 NzU2ZTRjZmQ0ZTcyYTQxMDkwMzYwMzkzYTBjOTUxYjY3ZGYxNGQxYzM1IiwidGVzdHMvdWkvY29u c3Qtbm90LWZuLnN0ZGVyciI6IjExODA2NjJmZDNiOGM0NDI2ZDQ2OTIzOTE4YTJlNThkZDliNjI1 OWYxYTM2NDQ2OWFlMTNkNWZjM2Q2OWNlNmMifSwicGFja2FnZSI6ImNmNTQ3MTVhNTczYjk5YWM4 MGRmMGJjMjA2ZGEwMjJiY2Q0NDJjOTc0OTUyYzdiOTcyMDA2OTM3MDg1MmUyMWYifQorXCBObyBu ZXdsaW5lIGF0IGVuZCBvZiBmaWxlCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9ydXN0 dmVyc2lvbi9DYXJnby50b21sIGIvdGhpcmRfcGFydHkvcnVzdC9ydXN0dmVyc2lvbi9DYXJnby50 b21sCituZXcgZmlsZSBtb2RlIDEwMDY0NAorLS0tIC9kZXYvbnVsbAorKysrIGIvdGhpcmRfcGFy dHkvcnVzdC9ydXN0dmVyc2lvbi9DYXJnby50b21sCitAQCAtMCwwICsxLDY5IEBACisrIyBUSElT IEZJTEUgSVMgQVVUT01BVElDQUxMWSBHRU5FUkFURUQgQlkgQ0FSR08KKysjCisrIyBXaGVuIHVw bG9hZGluZyBjcmF0ZXMgdG8gdGhlIHJlZ2lzdHJ5IENhcmdvIHdpbGwgYXV0b21hdGljYWxseQor KyMgIm5vcm1hbGl6ZSIgQ2FyZ28udG9tbCBmaWxlcyBmb3IgbWF4aW1hbCBjb21wYXRpYmlsaXR5 CisrIyB3aXRoIGFsbCB2ZXJzaW9ucyBvZiBDYXJnbyBhbmQgYWxzbyByZXdyaXRlIGBwYXRoYCBk ZXBlbmRlbmNpZXMKKysjIHRvIHJlZ2lzdHJ5IChlLmcuLCBjcmF0ZXMuaW8pIGRlcGVuZGVuY2ll cy4KKysjCisrIyBJZiB5b3UgYXJlIHJlYWRpbmcgdGhpcyBmaWxlIGJlIGF3YXJlIHRoYXQgdGhl IG9yaWdpbmFsIENhcmdvLnRvbWwKKysjIHdpbGwgbGlrZWx5IGxvb2sgdmVyeSBkaWZmZXJlbnQg KGFuZCBtdWNoIG1vcmUgcmVhc29uYWJsZSkuCisrIyBTZWUgQ2FyZ28udG9tbC5vcmlnIGZvciB0 aGUgb3JpZ2luYWwgY29udGVudHMuCisrCisrW3BhY2thZ2VdCisrZWRpdGlvbiA9ICIyMDE4Igor K3J1c3QtdmVyc2lvbiA9ICIxLjMxIgorK25hbWUgPSAicnVzdHZlcnNpb24iCisrdmVyc2lvbiA9 ICIxLjAuMjMiCisrYXV0aG9ycyA9IFsiRGF2aWQgVG9sbmF5IDxkdG9sbmF5QGdtYWlsLmNvbT4i XQorK2J1aWxkID0gImJ1aWxkL2J1aWxkLnJzIgorK2F1dG9saWIgPSBmYWxzZQorK2F1dG9iaW5z ID0gZmFsc2UKKythdXRvZXhhbXBsZXMgPSBmYWxzZQorK2F1dG90ZXN0cyA9IGZhbHNlCisrYXV0 b2JlbmNoZXMgPSBmYWxzZQorK2Rlc2NyaXB0aW9uID0gIkNvbmRpdGlvbmFsIGNvbXBpbGF0aW9u IGFjY29yZGluZyB0byBydXN0YyBjb21waWxlciB2ZXJzaW9uIgorK2RvY3VtZW50YXRpb24gPSAi aHR0cHM6Ly9kb2NzLnJzL3J1c3R2ZXJzaW9uIgorK3JlYWRtZSA9ICJSRUFETUUubWQiCisrY2F0 ZWdvcmllcyA9IFsKKysgICAgImRldmVsb3BtZW50LXRvb2xzOjpidWlsZC11dGlscyIsCisrICAg ICJuby1zdGQiLAorKyAgICAibm8tc3RkOjpuby1hbGxvYyIsCisrXQorK2xpY2Vuc2UgPSAiTUlU IE9SIEFwYWNoZS0yLjAiCisrcmVwb3NpdG9yeSA9ICJodHRwczovL2dpdGh1Yi5jb20vZHRvbG5h eS9ydXN0dmVyc2lvbiIKKysKKytbcGFja2FnZS5tZXRhZGF0YS5kb2NzLnJzXQorK3RhcmdldHMg PSBbIng4Nl82NC11bmtub3duLWxpbnV4LWdudSJdCisrcnVzdGRvYy1hcmdzID0gWworKyAgICAi LS1nZW5lcmF0ZS1saW5rLXRvLWRlZmluaXRpb24iLAorKyAgICAiLS1nZW5lcmF0ZS1tYWNyby1l eHBhbnNpb24iLAorKyAgICAiLS1leHRlcm4taHRtbC1yb290LXVybD1jb3JlPWh0dHBzOi8vZG9j LnJ1c3QtbGFuZy5vcmciLAorKyAgICAiLS1leHRlcm4taHRtbC1yb290LXVybD1hbGxvYz1odHRw czovL2RvYy5ydXN0LWxhbmcub3JnIiwKKysgICAgIi0tZXh0ZXJuLWh0bWwtcm9vdC11cmw9c3Rk PWh0dHBzOi8vZG9jLnJ1c3QtbGFuZy5vcmciLAorKyAgICAiLS1leHRlcm4taHRtbC1yb290LXVy bD1wcm9jX21hY3JvPWh0dHBzOi8vZG9jLnJ1c3QtbGFuZy5vcmciLAorK10KKysKKytbbGliXQor K25hbWUgPSAicnVzdHZlcnNpb24iCisrcGF0aCA9ICJzcmMvbGliLnJzIgorK3Byb2MtbWFjcm8g PSB0cnVlCisrCisrW1t0ZXN0XV0KKytuYW1lID0gImNvbXBpbGV0ZXN0IgorK3BhdGggPSAidGVz dHMvY29tcGlsZXRlc3QucnMiCisrCisrW1t0ZXN0XV0KKytuYW1lID0gInRlc3RfY29uc3QiCisr cGF0aCA9ICJ0ZXN0cy90ZXN0X2NvbnN0LnJzIgorKworK1tbdGVzdF1dCisrbmFtZSA9ICJ0ZXN0 X2V2YWwiCisrcGF0aCA9ICJ0ZXN0cy90ZXN0X2V2YWwucnMiCisrCisrW1t0ZXN0XV0KKytuYW1l ID0gInRlc3RfcGFyc2UiCisrcGF0aCA9ICJ0ZXN0cy90ZXN0X3BhcnNlLnJzIgorKworK1tkZXYt ZGVwZW5kZW5jaWVzLnRyeWJ1aWxkXQorK3ZlcnNpb24gPSAiMS4wLjQ5IgorK2ZlYXR1cmVzID0g WyJkaWZmIl0KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3J1c3R2ZXJzaW9uL0xJQ0VO U0UtQVBBQ0hFIGIvdGhpcmRfcGFydHkvcnVzdC9ydXN0dmVyc2lvbi9MSUNFTlNFLUFQQUNIRQor bmV3IGZpbGUgbW9kZSAxMDA2NDQKKy0tLSAvZGV2L251bGwKKysrKyBiL3RoaXJkX3BhcnR5L3J1 c3QvcnVzdHZlcnNpb24vTElDRU5TRS1BUEFDSEUKK0BAIC0wLDAgKzEsMTc2IEBACisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgQXBhY2hlIExpY2Vuc2UKKysgICAgICAgICAgICAgICAg ICAgICAgICBWZXJzaW9uIDIuMCwgSmFudWFyeSAyMDA0CisrICAgICAgICAgICAgICAgICAgICAg aHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzLworKworK1RFUk1TIEFORCBDT05ESVRJT05T IEZPUiBVU0UsIFJFUFJPRFVDVElPTiwgQU5EIERJU1RSSUJVVElPTgorKworKzEuIERlZmluaXRp b25zLgorKworKyAgICJMaWNlbnNlIiBzaGFsbCBtZWFuIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9u cyBmb3IgdXNlLCByZXByb2R1Y3Rpb24sCisrICAgYW5kIGRpc3RyaWJ1dGlvbiBhcyBkZWZpbmVk IGJ5IFNlY3Rpb25zIDEgdGhyb3VnaCA5IG9mIHRoaXMgZG9jdW1lbnQuCisrCisrICAgIkxpY2Vu c29yIiBzaGFsbCBtZWFuIHRoZSBjb3B5cmlnaHQgb3duZXIgb3IgZW50aXR5IGF1dGhvcml6ZWQg YnkKKysgICB0aGUgY29weXJpZ2h0IG93bmVyIHRoYXQgaXMgZ3JhbnRpbmcgdGhlIExpY2Vuc2Uu CisrCisrICAgIkxlZ2FsIEVudGl0eSIgc2hhbGwgbWVhbiB0aGUgdW5pb24gb2YgdGhlIGFjdGlu ZyBlbnRpdHkgYW5kIGFsbAorKyAgIG90aGVyIGVudGl0aWVzIHRoYXQgY29udHJvbCwgYXJlIGNv bnRyb2xsZWQgYnksIG9yIGFyZSB1bmRlciBjb21tb24KKysgICBjb250cm9sIHdpdGggdGhhdCBl bnRpdHkuIEZvciB0aGUgcHVycG9zZXMgb2YgdGhpcyBkZWZpbml0aW9uLAorKyAgICJjb250cm9s IiBtZWFucyAoaSkgdGhlIHBvd2VyLCBkaXJlY3Qgb3IgaW5kaXJlY3QsIHRvIGNhdXNlIHRoZQor KyAgIGRpcmVjdGlvbiBvciBtYW5hZ2VtZW50IG9mIHN1Y2ggZW50aXR5LCB3aGV0aGVyIGJ5IGNv bnRyYWN0IG9yCisrICAgb3RoZXJ3aXNlLCBvciAoaWkpIG93bmVyc2hpcCBvZiBmaWZ0eSBwZXJj ZW50ICg1MCUpIG9yIG1vcmUgb2YgdGhlCisrICAgb3V0c3RhbmRpbmcgc2hhcmVzLCBvciAoaWlp KSBiZW5lZmljaWFsIG93bmVyc2hpcCBvZiBzdWNoIGVudGl0eS4KKysKKysgICAiWW91IiAob3Ig IllvdXIiKSBzaGFsbCBtZWFuIGFuIGluZGl2aWR1YWwgb3IgTGVnYWwgRW50aXR5CisrICAgZXhl cmNpc2luZyBwZXJtaXNzaW9ucyBncmFudGVkIGJ5IHRoaXMgTGljZW5zZS4KKysKKysgICAiU291 cmNlIiBmb3JtIHNoYWxsIG1lYW4gdGhlIHByZWZlcnJlZCBmb3JtIGZvciBtYWtpbmcgbW9kaWZp Y2F0aW9ucywKKysgICBpbmNsdWRpbmcgYnV0IG5vdCBsaW1pdGVkIHRvIHNvZnR3YXJlIHNvdXJj ZSBjb2RlLCBkb2N1bWVudGF0aW9uCisrICAgc291cmNlLCBhbmQgY29uZmlndXJhdGlvbiBmaWxl cy4KKysKKysgICAiT2JqZWN0IiBmb3JtIHNoYWxsIG1lYW4gYW55IGZvcm0gcmVzdWx0aW5nIGZy b20gbWVjaGFuaWNhbAorKyAgIHRyYW5zZm9ybWF0aW9uIG9yIHRyYW5zbGF0aW9uIG9mIGEgU291 cmNlIGZvcm0sIGluY2x1ZGluZyBidXQKKysgICBub3QgbGltaXRlZCB0byBjb21waWxlZCBvYmpl Y3QgY29kZSwgZ2VuZXJhdGVkIGRvY3VtZW50YXRpb24sCisrICAgYW5kIGNvbnZlcnNpb25zIHRv IG90aGVyIG1lZGlhIHR5cGVzLgorKworKyAgICJXb3JrIiBzaGFsbCBtZWFuIHRoZSB3b3JrIG9m IGF1dGhvcnNoaXAsIHdoZXRoZXIgaW4gU291cmNlIG9yCisrICAgT2JqZWN0IGZvcm0sIG1hZGUg YXZhaWxhYmxlIHVuZGVyIHRoZSBMaWNlbnNlLCBhcyBpbmRpY2F0ZWQgYnkgYQorKyAgIGNvcHly aWdodCBub3RpY2UgdGhhdCBpcyBpbmNsdWRlZCBpbiBvciBhdHRhY2hlZCB0byB0aGUgd29yawor KyAgIChhbiBleGFtcGxlIGlzIHByb3ZpZGVkIGluIHRoZSBBcHBlbmRpeCBiZWxvdykuCisrCisr ICAgIkRlcml2YXRpdmUgV29ya3MiIHNoYWxsIG1lYW4gYW55IHdvcmssIHdoZXRoZXIgaW4gU291 cmNlIG9yIE9iamVjdAorKyAgIGZvcm0sIHRoYXQgaXMgYmFzZWQgb24gKG9yIGRlcml2ZWQgZnJv bSkgdGhlIFdvcmsgYW5kIGZvciB3aGljaCB0aGUKKysgICBlZGl0b3JpYWwgcmV2aXNpb25zLCBh bm5vdGF0aW9ucywgZWxhYm9yYXRpb25zLCBvciBvdGhlciBtb2RpZmljYXRpb25zCisrICAgcmVw cmVzZW50LCBhcyBhIHdob2xlLCBhbiBvcmlnaW5hbCB3b3JrIG9mIGF1dGhvcnNoaXAuIEZvciB0 aGUgcHVycG9zZXMKKysgICBvZiB0aGlzIExpY2Vuc2UsIERlcml2YXRpdmUgV29ya3Mgc2hhbGwg bm90IGluY2x1ZGUgd29ya3MgdGhhdCByZW1haW4KKysgICBzZXBhcmFibGUgZnJvbSwgb3IgbWVy ZWx5IGxpbmsgKG9yIGJpbmQgYnkgbmFtZSkgdG8gdGhlIGludGVyZmFjZXMgb2YsCisrICAgdGhl IFdvcmsgYW5kIERlcml2YXRpdmUgV29ya3MgdGhlcmVvZi4KKysKKysgICAiQ29udHJpYnV0aW9u IiBzaGFsbCBtZWFuIGFueSB3b3JrIG9mIGF1dGhvcnNoaXAsIGluY2x1ZGluZworKyAgIHRoZSBv cmlnaW5hbCB2ZXJzaW9uIG9mIHRoZSBXb3JrIGFuZCBhbnkgbW9kaWZpY2F0aW9ucyBvciBhZGRp dGlvbnMKKysgICB0byB0aGF0IFdvcmsgb3IgRGVyaXZhdGl2ZSBXb3JrcyB0aGVyZW9mLCB0aGF0 IGlzIGludGVudGlvbmFsbHkKKysgICBzdWJtaXR0ZWQgdG8gTGljZW5zb3IgZm9yIGluY2x1c2lv biBpbiB0aGUgV29yayBieSB0aGUgY29weXJpZ2h0IG93bmVyCisrICAgb3IgYnkgYW4gaW5kaXZp ZHVhbCBvciBMZWdhbCBFbnRpdHkgYXV0aG9yaXplZCB0byBzdWJtaXQgb24gYmVoYWxmIG9mCisr ICAgdGhlIGNvcHlyaWdodCBvd25lci4gRm9yIHRoZSBwdXJwb3NlcyBvZiB0aGlzIGRlZmluaXRp b24sICJzdWJtaXR0ZWQiCisrICAgbWVhbnMgYW55IGZvcm0gb2YgZWxlY3Ryb25pYywgdmVyYmFs LCBvciB3cml0dGVuIGNvbW11bmljYXRpb24gc2VudAorKyAgIHRvIHRoZSBMaWNlbnNvciBvciBp dHMgcmVwcmVzZW50YXRpdmVzLCBpbmNsdWRpbmcgYnV0IG5vdCBsaW1pdGVkIHRvCisrICAgY29t bXVuaWNhdGlvbiBvbiBlbGVjdHJvbmljIG1haWxpbmcgbGlzdHMsIHNvdXJjZSBjb2RlIGNvbnRy b2wgc3lzdGVtcywKKysgICBhbmQgaXNzdWUgdHJhY2tpbmcgc3lzdGVtcyB0aGF0IGFyZSBtYW5h Z2VkIGJ5LCBvciBvbiBiZWhhbGYgb2YsIHRoZQorKyAgIExpY2Vuc29yIGZvciB0aGUgcHVycG9z ZSBvZiBkaXNjdXNzaW5nIGFuZCBpbXByb3ZpbmcgdGhlIFdvcmssIGJ1dAorKyAgIGV4Y2x1ZGlu ZyBjb21tdW5pY2F0aW9uIHRoYXQgaXMgY29uc3BpY3VvdXNseSBtYXJrZWQgb3Igb3RoZXJ3aXNl CisrICAgZGVzaWduYXRlZCBpbiB3cml0aW5nIGJ5IHRoZSBjb3B5cmlnaHQgb3duZXIgYXMgIk5v dCBhIENvbnRyaWJ1dGlvbi4iCisrCisrICAgIkNvbnRyaWJ1dG9yIiBzaGFsbCBtZWFuIExpY2Vu c29yIGFuZCBhbnkgaW5kaXZpZHVhbCBvciBMZWdhbCBFbnRpdHkKKysgICBvbiBiZWhhbGYgb2Yg d2hvbSBhIENvbnRyaWJ1dGlvbiBoYXMgYmVlbiByZWNlaXZlZCBieSBMaWNlbnNvciBhbmQKKysg ICBzdWJzZXF1ZW50bHkgaW5jb3Jwb3JhdGVkIHdpdGhpbiB0aGUgV29yay4KKysKKysyLiBHcmFu dCBvZiBDb3B5cmlnaHQgTGljZW5zZS4gU3ViamVjdCB0byB0aGUgdGVybXMgYW5kIGNvbmRpdGlv bnMgb2YKKysgICB0aGlzIExpY2Vuc2UsIGVhY2ggQ29udHJpYnV0b3IgaGVyZWJ5IGdyYW50cyB0 byBZb3UgYSBwZXJwZXR1YWwsCisrICAgd29ybGR3aWRlLCBub24tZXhjbHVzaXZlLCBuby1jaGFy Z2UsIHJveWFsdHktZnJlZSwgaXJyZXZvY2FibGUKKysgICBjb3B5cmlnaHQgbGljZW5zZSB0byBy ZXByb2R1Y2UsIHByZXBhcmUgRGVyaXZhdGl2ZSBXb3JrcyBvZiwKKysgICBwdWJsaWNseSBkaXNw bGF5LCBwdWJsaWNseSBwZXJmb3JtLCBzdWJsaWNlbnNlLCBhbmQgZGlzdHJpYnV0ZSB0aGUKKysg ICBXb3JrIGFuZCBzdWNoIERlcml2YXRpdmUgV29ya3MgaW4gU291cmNlIG9yIE9iamVjdCBmb3Jt LgorKworKzMuIEdyYW50IG9mIFBhdGVudCBMaWNlbnNlLiBTdWJqZWN0IHRvIHRoZSB0ZXJtcyBh bmQgY29uZGl0aW9ucyBvZgorKyAgIHRoaXMgTGljZW5zZSwgZWFjaCBDb250cmlidXRvciBoZXJl YnkgZ3JhbnRzIHRvIFlvdSBhIHBlcnBldHVhbCwKKysgICB3b3JsZHdpZGUsIG5vbi1leGNsdXNp dmUsIG5vLWNoYXJnZSwgcm95YWx0eS1mcmVlLCBpcnJldm9jYWJsZQorKyAgIChleGNlcHQgYXMg c3RhdGVkIGluIHRoaXMgc2VjdGlvbikgcGF0ZW50IGxpY2Vuc2UgdG8gbWFrZSwgaGF2ZSBtYWRl LAorKyAgIHVzZSwgb2ZmZXIgdG8gc2VsbCwgc2VsbCwgaW1wb3J0LCBhbmQgb3RoZXJ3aXNlIHRy YW5zZmVyIHRoZSBXb3JrLAorKyAgIHdoZXJlIHN1Y2ggbGljZW5zZSBhcHBsaWVzIG9ubHkgdG8g dGhvc2UgcGF0ZW50IGNsYWltcyBsaWNlbnNhYmxlCisrICAgYnkgc3VjaCBDb250cmlidXRvciB0 aGF0IGFyZSBuZWNlc3NhcmlseSBpbmZyaW5nZWQgYnkgdGhlaXIKKysgICBDb250cmlidXRpb24o cykgYWxvbmUgb3IgYnkgY29tYmluYXRpb24gb2YgdGhlaXIgQ29udHJpYnV0aW9uKHMpCisrICAg d2l0aCB0aGUgV29yayB0byB3aGljaCBzdWNoIENvbnRyaWJ1dGlvbihzKSB3YXMgc3VibWl0dGVk LiBJZiBZb3UKKysgICBpbnN0aXR1dGUgcGF0ZW50IGxpdGlnYXRpb24gYWdhaW5zdCBhbnkgZW50 aXR5IChpbmNsdWRpbmcgYQorKyAgIGNyb3NzLWNsYWltIG9yIGNvdW50ZXJjbGFpbSBpbiBhIGxh d3N1aXQpIGFsbGVnaW5nIHRoYXQgdGhlIFdvcmsKKysgICBvciBhIENvbnRyaWJ1dGlvbiBpbmNv cnBvcmF0ZWQgd2l0aGluIHRoZSBXb3JrIGNvbnN0aXR1dGVzIGRpcmVjdAorKyAgIG9yIGNvbnRy aWJ1dG9yeSBwYXRlbnQgaW5mcmluZ2VtZW50LCB0aGVuIGFueSBwYXRlbnQgbGljZW5zZXMKKysg ICBncmFudGVkIHRvIFlvdSB1bmRlciB0aGlzIExpY2Vuc2UgZm9yIHRoYXQgV29yayBzaGFsbCB0 ZXJtaW5hdGUKKysgICBhcyBvZiB0aGUgZGF0ZSBzdWNoIGxpdGlnYXRpb24gaXMgZmlsZWQuCisr CisrNC4gUmVkaXN0cmlidXRpb24uIFlvdSBtYXkgcmVwcm9kdWNlIGFuZCBkaXN0cmlidXRlIGNv cGllcyBvZiB0aGUKKysgICBXb3JrIG9yIERlcml2YXRpdmUgV29ya3MgdGhlcmVvZiBpbiBhbnkg bWVkaXVtLCB3aXRoIG9yIHdpdGhvdXQKKysgICBtb2RpZmljYXRpb25zLCBhbmQgaW4gU291cmNl IG9yIE9iamVjdCBmb3JtLCBwcm92aWRlZCB0aGF0IFlvdQorKyAgIG1lZXQgdGhlIGZvbGxvd2lu ZyBjb25kaXRpb25zOgorKworKyAgIChhKSBZb3UgbXVzdCBnaXZlIGFueSBvdGhlciByZWNpcGll bnRzIG9mIHRoZSBXb3JrIG9yCisrICAgICAgIERlcml2YXRpdmUgV29ya3MgYSBjb3B5IG9mIHRo aXMgTGljZW5zZTsgYW5kCisrCisrICAgKGIpIFlvdSBtdXN0IGNhdXNlIGFueSBtb2RpZmllZCBm aWxlcyB0byBjYXJyeSBwcm9taW5lbnQgbm90aWNlcworKyAgICAgICBzdGF0aW5nIHRoYXQgWW91 IGNoYW5nZWQgdGhlIGZpbGVzOyBhbmQKKysKKysgICAoYykgWW91IG11c3QgcmV0YWluLCBpbiB0 aGUgU291cmNlIGZvcm0gb2YgYW55IERlcml2YXRpdmUgV29ya3MKKysgICAgICAgdGhhdCBZb3Ug ZGlzdHJpYnV0ZSwgYWxsIGNvcHlyaWdodCwgcGF0ZW50LCB0cmFkZW1hcmssIGFuZAorKyAgICAg ICBhdHRyaWJ1dGlvbiBub3RpY2VzIGZyb20gdGhlIFNvdXJjZSBmb3JtIG9mIHRoZSBXb3JrLAor KyAgICAgICBleGNsdWRpbmcgdGhvc2Ugbm90aWNlcyB0aGF0IGRvIG5vdCBwZXJ0YWluIHRvIGFu eSBwYXJ0IG9mCisrICAgICAgIHRoZSBEZXJpdmF0aXZlIFdvcmtzOyBhbmQKKysKKysgICAoZCkg SWYgdGhlIFdvcmsgaW5jbHVkZXMgYSAiTk9USUNFIiB0ZXh0IGZpbGUgYXMgcGFydCBvZiBpdHMK KysgICAgICAgZGlzdHJpYnV0aW9uLCB0aGVuIGFueSBEZXJpdmF0aXZlIFdvcmtzIHRoYXQgWW91 IGRpc3RyaWJ1dGUgbXVzdAorKyAgICAgICBpbmNsdWRlIGEgcmVhZGFibGUgY29weSBvZiB0aGUg YXR0cmlidXRpb24gbm90aWNlcyBjb250YWluZWQKKysgICAgICAgd2l0aGluIHN1Y2ggTk9USUNF IGZpbGUsIGV4Y2x1ZGluZyB0aG9zZSBub3RpY2VzIHRoYXQgZG8gbm90CisrICAgICAgIHBlcnRh aW4gdG8gYW55IHBhcnQgb2YgdGhlIERlcml2YXRpdmUgV29ya3MsIGluIGF0IGxlYXN0IG9uZQor KyAgICAgICBvZiB0aGUgZm9sbG93aW5nIHBsYWNlczogd2l0aGluIGEgTk9USUNFIHRleHQgZmls ZSBkaXN0cmlidXRlZAorKyAgICAgICBhcyBwYXJ0IG9mIHRoZSBEZXJpdmF0aXZlIFdvcmtzOyB3 aXRoaW4gdGhlIFNvdXJjZSBmb3JtIG9yCisrICAgICAgIGRvY3VtZW50YXRpb24sIGlmIHByb3Zp ZGVkIGFsb25nIHdpdGggdGhlIERlcml2YXRpdmUgV29ya3M7IG9yLAorKyAgICAgICB3aXRoaW4g YSBkaXNwbGF5IGdlbmVyYXRlZCBieSB0aGUgRGVyaXZhdGl2ZSBXb3JrcywgaWYgYW5kCisrICAg ICAgIHdoZXJldmVyIHN1Y2ggdGhpcmQtcGFydHkgbm90aWNlcyBub3JtYWxseSBhcHBlYXIuIFRo ZSBjb250ZW50cworKyAgICAgICBvZiB0aGUgTk9USUNFIGZpbGUgYXJlIGZvciBpbmZvcm1hdGlv bmFsIHB1cnBvc2VzIG9ubHkgYW5kCisrICAgICAgIGRvIG5vdCBtb2RpZnkgdGhlIExpY2Vuc2Uu IFlvdSBtYXkgYWRkIFlvdXIgb3duIGF0dHJpYnV0aW9uCisrICAgICAgIG5vdGljZXMgd2l0aGlu IERlcml2YXRpdmUgV29ya3MgdGhhdCBZb3UgZGlzdHJpYnV0ZSwgYWxvbmdzaWRlCisrICAgICAg IG9yIGFzIGFuIGFkZGVuZHVtIHRvIHRoZSBOT1RJQ0UgdGV4dCBmcm9tIHRoZSBXb3JrLCBwcm92 aWRlZAorKyAgICAgICB0aGF0IHN1Y2ggYWRkaXRpb25hbCBhdHRyaWJ1dGlvbiBub3RpY2VzIGNh bm5vdCBiZSBjb25zdHJ1ZWQKKysgICAgICAgYXMgbW9kaWZ5aW5nIHRoZSBMaWNlbnNlLgorKwor KyAgIFlvdSBtYXkgYWRkIFlvdXIgb3duIGNvcHlyaWdodCBzdGF0ZW1lbnQgdG8gWW91ciBtb2Rp ZmljYXRpb25zIGFuZAorKyAgIG1heSBwcm92aWRlIGFkZGl0aW9uYWwgb3IgZGlmZmVyZW50IGxp Y2Vuc2UgdGVybXMgYW5kIGNvbmRpdGlvbnMKKysgICBmb3IgdXNlLCByZXByb2R1Y3Rpb24sIG9y IGRpc3RyaWJ1dGlvbiBvZiBZb3VyIG1vZGlmaWNhdGlvbnMsIG9yCisrICAgZm9yIGFueSBzdWNo IERlcml2YXRpdmUgV29ya3MgYXMgYSB3aG9sZSwgcHJvdmlkZWQgWW91ciB1c2UsCisrICAgcmVw cm9kdWN0aW9uLCBhbmQgZGlzdHJpYnV0aW9uIG9mIHRoZSBXb3JrIG90aGVyd2lzZSBjb21wbGll cyB3aXRoCisrICAgdGhlIGNvbmRpdGlvbnMgc3RhdGVkIGluIHRoaXMgTGljZW5zZS4KKysKKys1 LiBTdWJtaXNzaW9uIG9mIENvbnRyaWJ1dGlvbnMuIFVubGVzcyBZb3UgZXhwbGljaXRseSBzdGF0 ZSBvdGhlcndpc2UsCisrICAgYW55IENvbnRyaWJ1dGlvbiBpbnRlbnRpb25hbGx5IHN1Ym1pdHRl ZCBmb3IgaW5jbHVzaW9uIGluIHRoZSBXb3JrCisrICAgYnkgWW91IHRvIHRoZSBMaWNlbnNvciBz aGFsbCBiZSB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YKKysgICB0aGlzIExpY2Vu c2UsIHdpdGhvdXQgYW55IGFkZGl0aW9uYWwgdGVybXMgb3IgY29uZGl0aW9ucy4KKysgICBOb3R3 aXRoc3RhbmRpbmcgdGhlIGFib3ZlLCBub3RoaW5nIGhlcmVpbiBzaGFsbCBzdXBlcnNlZGUgb3Ig bW9kaWZ5CisrICAgdGhlIHRlcm1zIG9mIGFueSBzZXBhcmF0ZSBsaWNlbnNlIGFncmVlbWVudCB5 b3UgbWF5IGhhdmUgZXhlY3V0ZWQKKysgICB3aXRoIExpY2Vuc29yIHJlZ2FyZGluZyBzdWNoIENv bnRyaWJ1dGlvbnMuCisrCisrNi4gVHJhZGVtYXJrcy4gVGhpcyBMaWNlbnNlIGRvZXMgbm90IGdy YW50IHBlcm1pc3Npb24gdG8gdXNlIHRoZSB0cmFkZQorKyAgIG5hbWVzLCB0cmFkZW1hcmtzLCBz ZXJ2aWNlIG1hcmtzLCBvciBwcm9kdWN0IG5hbWVzIG9mIHRoZSBMaWNlbnNvciwKKysgICBleGNl cHQgYXMgcmVxdWlyZWQgZm9yIHJlYXNvbmFibGUgYW5kIGN1c3RvbWFyeSB1c2UgaW4gZGVzY3Jp YmluZyB0aGUKKysgICBvcmlnaW4gb2YgdGhlIFdvcmsgYW5kIHJlcHJvZHVjaW5nIHRoZSBjb250 ZW50IG9mIHRoZSBOT1RJQ0UgZmlsZS4KKysKKys3LiBEaXNjbGFpbWVyIG9mIFdhcnJhbnR5LiBV bmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IKKysgICBhZ3JlZWQgdG8gaW4gd3Jp dGluZywgTGljZW5zb3IgcHJvdmlkZXMgdGhlIFdvcmsgKGFuZCBlYWNoCisrICAgQ29udHJpYnV0 b3IgcHJvdmlkZXMgaXRzIENvbnRyaWJ1dGlvbnMpIG9uIGFuICJBUyBJUyIgQkFTSVMsCisrICAg V0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHBy ZXNzIG9yCisrICAgaW1wbGllZCwgaW5jbHVkaW5nLCB3aXRob3V0IGxpbWl0YXRpb24sIGFueSB3 YXJyYW50aWVzIG9yIGNvbmRpdGlvbnMKKysgICBvZiBUSVRMRSwgTk9OLUlORlJJTkdFTUVOVCwg TUVSQ0hBTlRBQklMSVRZLCBvciBGSVRORVNTIEZPUiBBCisrICAgUEFSVElDVUxBUiBQVVJQT1NF LiBZb3UgYXJlIHNvbGVseSByZXNwb25zaWJsZSBmb3IgZGV0ZXJtaW5pbmcgdGhlCisrICAgYXBw cm9wcmlhdGVuZXNzIG9mIHVzaW5nIG9yIHJlZGlzdHJpYnV0aW5nIHRoZSBXb3JrIGFuZCBhc3N1 bWUgYW55CisrICAgcmlza3MgYXNzb2NpYXRlZCB3aXRoIFlvdXIgZXhlcmNpc2Ugb2YgcGVybWlz c2lvbnMgdW5kZXIgdGhpcyBMaWNlbnNlLgorKworKzguIExpbWl0YXRpb24gb2YgTGlhYmlsaXR5 LiBJbiBubyBldmVudCBhbmQgdW5kZXIgbm8gbGVnYWwgdGhlb3J5LAorKyAgIHdoZXRoZXIgaW4g dG9ydCAoaW5jbHVkaW5nIG5lZ2xpZ2VuY2UpLCBjb250cmFjdCwgb3Igb3RoZXJ3aXNlLAorKyAg IHVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyAoc3VjaCBhcyBkZWxpYmVyYXRlIGFu ZCBncm9zc2x5CisrICAgbmVnbGlnZW50IGFjdHMpIG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBz aGFsbCBhbnkgQ29udHJpYnV0b3IgYmUKKysgICBsaWFibGUgdG8gWW91IGZvciBkYW1hZ2VzLCBp bmNsdWRpbmcgYW55IGRpcmVjdCwgaW5kaXJlY3QsIHNwZWNpYWwsCisrICAgaW5jaWRlbnRhbCwg b3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9mIGFueSBjaGFyYWN0ZXIgYXJpc2luZyBhcyBhCisr ICAgcmVzdWx0IG9mIHRoaXMgTGljZW5zZSBvciBvdXQgb2YgdGhlIHVzZSBvciBpbmFiaWxpdHkg dG8gdXNlIHRoZQorKyAgIFdvcmsgKGluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8gZGFtYWdl cyBmb3IgbG9zcyBvZiBnb29kd2lsbCwKKysgICB3b3JrIHN0b3BwYWdlLCBjb21wdXRlciBmYWls dXJlIG9yIG1hbGZ1bmN0aW9uLCBvciBhbnkgYW5kIGFsbAorKyAgIG90aGVyIGNvbW1lcmNpYWwg ZGFtYWdlcyBvciBsb3NzZXMpLCBldmVuIGlmIHN1Y2ggQ29udHJpYnV0b3IKKysgICBoYXMgYmVl biBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiBzdWNoIGRhbWFnZXMuCisrCisrOS4gQWNj ZXB0aW5nIFdhcnJhbnR5IG9yIEFkZGl0aW9uYWwgTGlhYmlsaXR5LiBXaGlsZSByZWRpc3RyaWJ1 dGluZworKyAgIHRoZSBXb3JrIG9yIERlcml2YXRpdmUgV29ya3MgdGhlcmVvZiwgWW91IG1heSBj aG9vc2UgdG8gb2ZmZXIsCisrICAgYW5kIGNoYXJnZSBhIGZlZSBmb3IsIGFjY2VwdGFuY2Ugb2Yg c3VwcG9ydCwgd2FycmFudHksIGluZGVtbml0eSwKKysgICBvciBvdGhlciBsaWFiaWxpdHkgb2Js aWdhdGlvbnMgYW5kL29yIHJpZ2h0cyBjb25zaXN0ZW50IHdpdGggdGhpcworKyAgIExpY2Vuc2Uu IEhvd2V2ZXIsIGluIGFjY2VwdGluZyBzdWNoIG9ibGlnYXRpb25zLCBZb3UgbWF5IGFjdCBvbmx5 CisrICAgb24gWW91ciBvd24gYmVoYWxmIGFuZCBvbiBZb3VyIHNvbGUgcmVzcG9uc2liaWxpdHks IG5vdCBvbiBiZWhhbGYKKysgICBvZiBhbnkgb3RoZXIgQ29udHJpYnV0b3IsIGFuZCBvbmx5IGlm IFlvdSBhZ3JlZSB0byBpbmRlbW5pZnksCisrICAgZGVmZW5kLCBhbmQgaG9sZCBlYWNoIENvbnRy aWJ1dG9yIGhhcm1sZXNzIGZvciBhbnkgbGlhYmlsaXR5CisrICAgaW5jdXJyZWQgYnksIG9yIGNs YWltcyBhc3NlcnRlZCBhZ2FpbnN0LCBzdWNoIENvbnRyaWJ1dG9yIGJ5IHJlYXNvbgorKyAgIG9m IHlvdXIgYWNjZXB0aW5nIGFueSBzdWNoIHdhcnJhbnR5IG9yIGFkZGl0aW9uYWwgbGlhYmlsaXR5 LgorKworK0VORCBPRiBURVJNUyBBTkQgQ09ORElUSU9OUworZGlmZiAtLWdpdCBhL3RoaXJkX3Bh cnR5L3J1c3QvcnVzdHZlcnNpb24vTElDRU5TRS1NSVQgYi90aGlyZF9wYXJ0eS9ydXN0L3J1c3R2 ZXJzaW9uL0xJQ0VOU0UtTUlUCituZXcgZmlsZSBtb2RlIDEwMDY0NAorLS0tIC9kZXYvbnVsbAor KysrIGIvdGhpcmRfcGFydHkvcnVzdC9ydXN0dmVyc2lvbi9MSUNFTlNFLU1JVAorQEAgLTAsMCAr MSwyMyBAQAorK1Blcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0 byBhbnkKKytwZXJzb24gb2J0YWluaW5nIGEgY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3Nv Y2lhdGVkCisrZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLCB0byBkZWFsIGlu IHRoZQorK1NvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0Cisr bGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwKKytwdWJs aXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YKKyt0aGUg U29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZQorK2lz IGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nCisrY29uZGl0aW9u czoKKysKKytUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5v dGljZQorK3NoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9y dGlvbnMKKytvZiB0aGUgU29mdHdhcmUuCisrCisrVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJB UyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YKKytBTlkgS0lORCwgRVhQUkVTUyBPUiBJTVBMSUVE LCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVECisrVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hB TlRBQklMSVRZLCBGSVRORVNTIEZPUiBBCisrUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZS SU5HRU1FTlQuIElOIE5PIEVWRU5UCisrU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhP TERFUlMgQkUgTElBQkxFIEZPUiBBTlkKKytDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJ VFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OCisrT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNF LCBBUklTSU5HIEZST00sIE9VVCBPRiBPUgorK0lOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdB UkUgT1IgVEhFIFVTRSBPUiBPVEhFUgorK0RFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KK2RpZmYg LS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3J1c3R2ZXJzaW9uL1JFQURNRS5tZCBiL3RoaXJkX3Bh cnR5L3J1c3QvcnVzdHZlcnNpb24vUkVBRE1FLm1kCituZXcgZmlsZSBtb2RlIDEwMDY0NAorLS0t IC9kZXYvbnVsbAorKysrIGIvdGhpcmRfcGFydHkvcnVzdC9ydXN0dmVyc2lvbi9SRUFETUUubWQK K0BAIC0wLDAgKzEsMTY3IEBACisrQ29tcGlsZXIgdmVyc2lvbiBjZmcKKys9PT09PT09PT09PT09 PT09PT09PQorKworK1s8aW1nIGFsdD0iZ2l0aHViIiBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMu aW8vYmFkZ2UvZ2l0aHViLWR0b2xuYXkvcnVzdHZlcnNpb24tOGRhMGNiP3N0eWxlPWZvci10aGUt YmFkZ2UmbGFiZWxDb2xvcj01NTU1NTUmbG9nbz1naXRodWIiIGhlaWdodD0iMjAiPl0oaHR0cHM6 Ly9naXRodWIuY29tL2R0b2xuYXkvcnVzdHZlcnNpb24pCisrWzxpbWcgYWx0PSJjcmF0ZXMuaW8i IHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9jcmF0ZXMvdi9ydXN0dmVyc2lvbi5zdmc/c3R5 bGU9Zm9yLXRoZS1iYWRnZSZjb2xvcj1mYzhkNjImbG9nbz1ydXN0IiBoZWlnaHQ9IjIwIj5dKGh0 dHBzOi8vY3JhdGVzLmlvL2NyYXRlcy9ydXN0dmVyc2lvbikKKytbPGltZyBhbHQ9ImRvY3MucnMi IHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9kb2NzLnJzLXJ1c3R2ZXJzaW9uLTY2 YzJhNT9zdHlsZT1mb3ItdGhlLWJhZGdlJmxhYmVsQ29sb3I9NTU1NTU1JmxvZ289ZG9jcy5ycyIg aGVpZ2h0PSIyMCI+XShodHRwczovL2RvY3MucnMvcnVzdHZlcnNpb24pCisrWzxpbWcgYWx0PSJi dWlsZCBzdGF0dXMiIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9naXRodWIvYWN0aW9ucy93 b3JrZmxvdy9zdGF0dXMvZHRvbG5heS9ydXN0dmVyc2lvbi9jaS55bWw/YnJhbmNoPW1hc3RlciZz dHlsZT1mb3ItdGhlLWJhZGdlIiBoZWlnaHQ9IjIwIj5dKGh0dHBzOi8vZ2l0aHViLmNvbS9kdG9s bmF5L3J1c3R2ZXJzaW9uL2FjdGlvbnM/cXVlcnk9YnJhbmNoJTNBbWFzdGVyKQorKworK1RoaXMg Y3JhdGUgcHJvdmlkZXMgbWFjcm9zIGZvciBjb25kaXRpb25hbCBjb21waWxhdGlvbiBhY2NvcmRp bmcgdG8gcnVzdGMKKytjb21waWxlciB2ZXJzaW9uLCBhbmFsb2dvdXMgdG8gW2AjW2NmZyguLi4p XWBdW2NmZ10gYW5kCisrW2AjW2NmZ19hdHRyKC4uLildYF1bY2ZnX2F0dHJdLgorKworK1tjZmdd OiBodHRwczovL2RvYy5ydXN0LWxhbmcub3JnL3JlZmVyZW5jZS9jb25kaXRpb25hbC1jb21waWxh dGlvbi5odG1sI3RoZS1jZmctYXR0cmlidXRlCisrW2NmZ19hdHRyXTogaHR0cHM6Ly9kb2MucnVz dC1sYW5nLm9yZy9yZWZlcmVuY2UvY29uZGl0aW9uYWwtY29tcGlsYXRpb24uaHRtbCN0aGUtY2Zn X2F0dHItYXR0cmlidXRlCisrCisrYGBgdG9tbAorK1tkZXBlbmRlbmNpZXNdCisrcnVzdHZlcnNp b24gPSAiMS4wIgorK2BgYAorKworKzxicj4KKysKKysjIyBTZWxlY3RvcnMKKysKKystIDxiPmAj W3J1c3R2ZXJzaW9uOjpzdGFibGVdYDwvYj4KKysgIOKAlDxicj4KKysgIFRydWUgb24gYW55IHN0 YWJsZSBjb21waWxlci4KKysKKystIDxiPmAjW3J1c3R2ZXJzaW9uOjpzdGFibGUoMS4zNCldYDwv Yj4KKysgIOKAlDxicj4KKysgIFRydWUgb24gZXhhY3RseSB0aGUgc3BlY2lmaWVkIHN0YWJsZSBj b21waWxlci4KKysKKystIDxiPmAjW3J1c3R2ZXJzaW9uOjpiZXRhXWA8L2I+CisrICDigJQ8YnI+ CisrICBUcnVlIG9uIGFueSBiZXRhIGNvbXBpbGVyLgorKworKy0gPGI+YCNbcnVzdHZlcnNpb246 Om5pZ2h0bHldYDwvYj4KKysgIOKAlDxicj4KKysgIFRydWUgb24gYW55IG5pZ2h0bHkgY29tcGls ZXIgb3IgZGV2IGJ1aWxkLgorKworKy0gPGI+YCNbcnVzdHZlcnNpb246Om5pZ2h0bHkoMjAyNS0w MS0wMSldYDwvYj4KKysgIOKAlDxicj4KKysgIFRydWUgb24gZXhhY3RseSBvbmUgbmlnaHRseS4K KysKKystIDxiPmAjW3J1c3R2ZXJzaW9uOjpzaW5jZSgxLjM0KV1gPC9iPgorKyAg4oCUPGJyPgor KyAgVHJ1ZSBvbiB0aGF0IHN0YWJsZSByZWxlYXNlIGFuZCBhbnkgbGF0ZXIgY29tcGlsZXIsIGlu Y2x1ZGluZyBiZXRhIGFuZAorKyAgbmlnaHRseS4KKysKKystIDxiPmAjW3J1c3R2ZXJzaW9uOjpz aW5jZSgyMDI1LTAxLTAxKV1gPC9iPgorKyAg4oCUPGJyPgorKyAgVHJ1ZSBvbiB0aGF0IG5pZ2h0 bHkgYW5kIGFsbCBuZXdlciBvbmVzLgorKworKy0gPGI+YCNbcnVzdHZlcnNpb246OmJlZm9yZShg PC9iPjxpPnZlcnNpb24gb3IgZGF0ZTwvaT48Yj5gKV1gPC9iPgorKyAg4oCUPGJyPgorKyAgTmVn YXRpdmUgb2YgKiNbcnVzdHZlcnNpb246OnNpbmNlKC4uLildKi4KKysKKystIDxiPmAjW3J1c3R2 ZXJzaW9uOjpub3QoYDwvYj48aT5zZWxlY3RvcjwvaT48Yj5gKV1gPC9iPgorKyAg4oCUPGJyPgor KyAgTmVnYXRpdmUgb2YgYW55IHNlbGVjdG9yOyBmb3IgZXhhbXBsZSAqI1tydXN0dmVyc2lvbjo6 bm90KG5pZ2h0bHkpXSouCisrCisrLSA8Yj5gI1tydXN0dmVyc2lvbjo6YW55KGA8L2I+PGk+c2Vs ZWN0b3JzLi4uPC9pPjxiPmApXWA8L2I+CisrICDigJQ8YnI+CisrICBUcnVlIGlmIGFueSBvZiB0 aGUgY29tbWEtc2VwYXJhdGVkIHNlbGVjdG9ycyBpcyB0cnVlOyBmb3IgZXhhbXBsZQorKyAgKiNb cnVzdHZlcnNpb246OmFueShzdGFibGUsIGJldGEpXSouCisrCisrLSA8Yj5gI1tydXN0dmVyc2lv bjo6YWxsKGA8L2I+PGk+c2VsZWN0b3JzLi4uPC9pPjxiPmApXWA8L2I+CisrICDigJQ8YnI+Cisr ICBUcnVlIGlmIGFsbCBvZiB0aGUgY29tbWEtc2VwYXJhdGVkIHNlbGVjdG9ycyBhcmUgdHJ1ZTsg Zm9yIGV4YW1wbGUKKysgICojW3J1c3R2ZXJzaW9uOjphbGwoc2luY2UoMS4zMSksIGJlZm9yZSgx LjM0KSldKi4KKysKKystIDxiPmAjW3J1c3R2ZXJzaW9uOjphdHRyKGA8L2I+PGk+c2VsZWN0b3I8 L2k+PGI+YCwgYDwvYj48aT5hdHRyaWJ1dGU8L2k+PGI+YCldYDwvYj4KKysgIOKAlDxicj4KKysg IEZvciBjb25kaXRpb25hbCBpbmNsdXNpb24gb2YgYXR0cmlidXRlczsgYW5hbG9nb3VzIHRvIGBj ZmdfYXR0cmAuCisrCisrLSA8Yj5gcnVzdHZlcnNpb246OmNmZyEoYDwvYj48aT5zZWxlY3Rvcjwv aT48Yj5gKWA8L2I+CisrICDigJQ8YnI+CisrICBBbiBleHByZXNzaW9uIGZvcm0gb2YgYW55IG9m IHRoZSBhYm92ZSBhdHRyaWJ1dGVzOyBmb3IgZXhhbXBsZQorKyAgKmlmIHJ1c3R2ZXJzaW9uOjpj ZmchKGFueShzdGFibGUsIGJldGEpKSB7IC4uLiB9Ki4KKysKKys8YnI+CisrCisrIyMgVXNlIGNh c2VzCisrCisrUHJvdmlkaW5nIGFkZGl0aW9uYWwgdHJhaXQgaW1wbHMgYXMgdHlwZXMgYXJlIHN0 YWJpbGl6ZWQgaW4gdGhlIHN0YW5kYXJkIGxpYnJhcnkKKyt3aXRob3V0IGJyZWFraW5nIGNvbXBh dGliaWxpdHkgd2l0aCBvbGRlciBjb21waWxlcnM7IGluIHRoaXMgY2FzZSBQaW5cPFBcPgorK3N0 YWJpbGl6ZWQgaW4gW1J1c3QgMS4zM11bcGluXToKKysKKytbcGluXTogaHR0cHM6Ly9ibG9nLnJ1 c3QtbGFuZy5vcmcvMjAxOS8wMi8yOC9SdXN0LTEuMzMuMC5odG1sI3Bpbm5pbmcKKysKKytgYGBy dXN0CisrI1tydXN0dmVyc2lvbjo6c2luY2UoMS4zMyldCisrdXNlIHN0ZDo6cGluOjpQaW47Cisr CisrI1tydXN0dmVyc2lvbjo6c2luY2UoMS4zMyldCisraW1wbDxQOiBNeVRyYWl0PiBNeVRyYWl0 IGZvciBQaW48UD4geworKyAgICAvKiAuLi4gKi8KKyt9CisrYGBgCisrCisrU2ltaWxhciBidXQg Zm9yIGxhbmd1YWdlIGZlYXR1cmVzOyB0aGUgYWJpbGl0eSB0byBjb250cm9sIGFsaWdubWVudCBn cmVhdGVyIHRoYW4KKysxIG9mIHBhY2tlZCBzdHJ1Y3RzIHdhcyBzdGFiaWxpemVkIGluIFtSdXN0 IDEuMzNdW3BhY2tlZF0uCisrCisrW3BhY2tlZF06IGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxh bmcvcnVzdC9ibG9iL21hc3Rlci9SRUxFQVNFUy5tZCN2ZXJzaW9uLTEzMzAtMjAxOS0wMi0yOAor KworK2BgYHJ1c3QKKysjW3J1c3R2ZXJzaW9uOjphdHRyKGJlZm9yZSgxLjMzKSwgcmVwcihwYWNr ZWQpKV0KKysjW3J1c3R2ZXJzaW9uOjphdHRyKHNpbmNlKDEuMzMpLCByZXByKHBhY2tlZCgyKSkp XQorK3N0cnVjdCBTaXgoaTE2LCBpMzIpOworKworK2ZuIG1haW4oKSB7CisrICAgIHByaW50bG4h KCJ7fSIsIHN0ZDo6bWVtOjphbGlnbl9vZjo6PFNpeD4oKSk7CisrfQorK2BgYAorKworK0F1Z21l bnRpbmcgY29kZSB3aXRoIGBjb25zdGAgYXMgY29uc3QgaW1wbHMgYXJlIHN0YWJpbGl6ZWQgaW4g dGhlIHN0YW5kYXJkCisrbGlicmFyeS4gVGhpcyB1c2Ugb2YgYGNvbnN0YCBhcyBhbiBhdHRyaWJ1 dGUgaXMgcmVjb2duaXplZCBhcyBhIHNwZWNpYWwgY2FzZSBieQorK3RoZSBydXN0dmVyc2lvbjo6 YXR0ciBtYWNyby4KKysKKytgYGBydXN0CisrdXNlIHN0ZDo6dGltZTo6RHVyYXRpb247CisrCisr I1tydXN0dmVyc2lvbjo6YXR0cihzaW5jZSgxLjMyKSwgY29uc3QpXQorK2ZuIGR1cmF0aW9uX2Fz X2RheXMoZHVyOiBEdXJhdGlvbikgLT4gdTY0IHsKKysgICAgZHVyLmFzX3NlY3MoKSAvIDYwIC8g NjAgLyAyNAorK30KKytgYGAKKysKKytFbWl0dGluZyBDYXJnbyBjZmcgZGlyZWN0aXZlcyBmcm9t IGEgYnVpbGQgc2NyaXB0LiBOb3RlIHRoYXQgdGhpcyByZXF1aXJlcworK2xpc3RpbmcgYHJ1c3R2 ZXJzaW9uYCB1bmRlciBgW2J1aWxkLWRlcGVuZGVuY2llc11gIGluIENhcmdvLnRvbWwsIG5vdAor K2BbZGVwZW5kZW5jaWVzXWAuCisrCisrYGBgcnVzdAorKy8vIGJ1aWxkLnJzCisrCisrZm4gbWFp bigpIHsKKysgICAgaWYgcnVzdHZlcnNpb246OmNmZyEoc2luY2UoMS4zNikpIHsKKysgICAgICAg IHByaW50bG4hKCJjYXJnbzpydXN0Yy1jZmc9bm9fc3RkIik7CisrICAgIH0KKyt9CisrYGBgCisr CisrYGBgcnVzdAorKy8vIHNyYy9saWIucnMKKysKKysjIVtjZmdfYXR0cihub19zdGQsIG5vX3N0 ZCldCisrCisrI1tjZmcobm9fc3RkKV0KKytleHRlcm4gY3JhdGUgYWxsb2M7CisrYGBgCisrCisr PGJyPgorKworKyMjIyMgTGljZW5zZQorKworKzxzdXA+CisrTGljZW5zZWQgdW5kZXIgZWl0aGVy IG9mIDxhIGhyZWY9IkxJQ0VOU0UtQVBBQ0hFIj5BcGFjaGUgTGljZW5zZSwgVmVyc2lvbgorKzIu MDwvYT4gb3IgPGEgaHJlZj0iTElDRU5TRS1NSVQiPk1JVCBsaWNlbnNlPC9hPiBhdCB5b3VyIG9w dGlvbi4KKys8L3N1cD4KKysKKys8YnI+CisrCisrPHN1Yj4KKytVbmxlc3MgeW91IGV4cGxpY2l0 bHkgc3RhdGUgb3RoZXJ3aXNlLCBhbnkgY29udHJpYnV0aW9uIGludGVudGlvbmFsbHkgc3VibWl0 dGVkCisrZm9yIGluY2x1c2lvbiBpbiB0aGlzIGNyYXRlIGJ5IHlvdSwgYXMgZGVmaW5lZCBpbiB0 aGUgQXBhY2hlLTIuMCBsaWNlbnNlLCBzaGFsbAorK2JlIGR1YWwgbGljZW5zZWQgYXMgYWJvdmUs IHdpdGhvdXQgYW55IGFkZGl0aW9uYWwgdGVybXMgb3IgY29uZGl0aW9ucy4KKys8L3N1Yj4KK2Rp ZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3J1c3R2ZXJzaW9uL2J1aWxkL2J1aWxkLnJzIGIv dGhpcmRfcGFydHkvcnVzdC9ydXN0dmVyc2lvbi9idWlsZC9idWlsZC5ycworbmV3IGZpbGUgbW9k ZSAxMDA2NDQKKy0tLSAvZGV2L251bGwKKysrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcnVzdHZlcnNp b24vYnVpbGQvYnVpbGQucnMKK0BAIC0wLDAgKzEsMTE5IEBACisrIyFbYWxsb3coCisrICAgIGNs aXBweTo6ZWxpZGFibGVfbGlmZXRpbWVfbmFtZXMsCisrICAgIGNsaXBweTo6ZW51bV9nbG9iX3Vz ZSwKKysgICAgY2xpcHB5OjptdXN0X3VzZV9jYW5kaWRhdGUsCisrICAgIGNsaXBweTo6c2luZ2xl X21hdGNoX2Vsc2UKKyspXQorKworK21vZCBydXN0YzsKKysKKyt1c2Ugc3RkOjplbnY7CisrdXNl IHN0ZDo6ZmZpOjpPc1N0cmluZzsKKyt1c2Ugc3RkOjpmbXQ6OntzZWxmLCBEZWJ1ZywgRGlzcGxh eX07CisrdXNlIHN0ZDo6ZnM7CisrdXNlIHN0ZDo6aXRlcjsKKyt1c2Ugc3RkOjpwYXRoOjpQYXRo OworK3VzZSBzdGQ6OnByb2Nlc3M6OntzZWxmLCBDb21tYW5kfTsKKysKKytmbiBtYWluKCkgewor KyAgICBwcmludGxuISgiY2FyZ286cmVydW4taWYtY2hhbmdlZD1idWlsZC9idWlsZC5ycyIpOwor KworKyAgICBsZXQgcnVzdGMgPSBlbnY6OnZhcl9vcygiUlVTVEMiKS51bndyYXBfb3JfZWxzZSh8 fCBPc1N0cmluZzo6ZnJvbSgicnVzdGMiKSk7CisrICAgIGxldCBydXN0Y193cmFwcGVyID0gZW52 Ojp2YXJfb3MoIlJVU1RDX1dSQVBQRVIiKS5maWx0ZXIofHdyYXBwZXJ8ICF3cmFwcGVyLmlzX2Vt cHR5KCkpOworKyAgICBsZXQgd3JhcHBlZF9ydXN0YyA9IHJ1c3RjX3dyYXBwZXIuaXRlcigpLmNo YWluKGl0ZXI6Om9uY2UoJnJ1c3RjKSk7CisrCisrICAgIGxldCBtdXQgaXNfY2xpcHB5X2RyaXZl ciA9IGZhbHNlOworKyAgICBsZXQgbXV0IGlzX21pcmFpID0gZmFsc2U7CisrICAgIGxldCB2ZXJz aW9uID0gbG9vcCB7CisrICAgICAgICBsZXQgbXV0IGNvbW1hbmQ7CisrICAgICAgICBpZiBpc19t aXJhaSB7CisrICAgICAgICAgICAgY29tbWFuZCA9IENvbW1hbmQ6Om5ldygmcnVzdGMpOworKyAg ICAgICAgfSBlbHNlIHsKKysgICAgICAgICAgICBsZXQgbXV0IHdyYXBwZWRfcnVzdGMgPSB3cmFw cGVkX3J1c3RjLmNsb25lKCk7CisrICAgICAgICAgICAgY29tbWFuZCA9IENvbW1hbmQ6Om5ldyh3 cmFwcGVkX3J1c3RjLm5leHQoKS51bndyYXAoKSk7CisrICAgICAgICAgICAgY29tbWFuZC5hcmdz KHdyYXBwZWRfcnVzdGMpOworKyAgICAgICAgfQorKyAgICAgICAgaWYgaXNfY2xpcHB5X2RyaXZl ciB7CisrICAgICAgICAgICAgY29tbWFuZC5hcmcoIi0tcnVzdGMiKTsKKysgICAgICAgIH0KKysg ICAgICAgIGNvbW1hbmQuYXJnKCItLXZlcnNpb24iKTsKKysKKysgICAgICAgIC8vIEFsbG93IHdy YXBwZXIgc2NyaXB0cyBvciBhbHRlcm5hdGUgY29tcGlsZXJzIHRvIHRlbGwgdGhhdCB0aGlzIGlz CisrICAgICAgICAvLyBgcnVzdHZlcnNpb25gIHJ1bm5pbmcgLS12ZXJzaW9uLCBzbyB0aGF0IHRo ZXkgY2FuIHN0aWNrIHRvIHJ1c3RjJ3MKKysgICAgICAgIC8vIHZlcnNpb24gZm9ybWF0LiBodHRw czovL2dpdGh1Yi5jb20vZHRvbG5heS9ydXN0dmVyc2lvbi9pc3N1ZXMvNjcKKysgICAgICAgIGNv bW1hbmQuZW52KCJSVVNUVkVSU0lPTiIsICIxIik7CisrCisrICAgICAgICBsZXQgb3V0cHV0ID0g bWF0Y2ggY29tbWFuZC5vdXRwdXQoKSB7CisrICAgICAgICAgICAgT2sob3V0cHV0KSA9PiBvdXRw dXQsCisrICAgICAgICAgICAgRXJyKGUpID0+IHsKKysgICAgICAgICAgICAgICAgbGV0IHJ1c3Rj ID0gcnVzdGMudG9fc3RyaW5nX2xvc3N5KCk7CisrICAgICAgICAgICAgICAgIGVwcmludGxuISgi RXJyb3I6IGZhaWxlZCB0byBydW4gYHt9IC0tdmVyc2lvbmA6IHt9IiwgcnVzdGMsIGUpOworKyAg ICAgICAgICAgICAgICBwcm9jZXNzOjpleGl0KDEpOworKyAgICAgICAgICAgIH0KKysgICAgICAg IH07CisrCisrICAgICAgICBsZXQgc3RyaW5nID0gbWF0Y2ggU3RyaW5nOjpmcm9tX3V0Zjgob3V0 cHV0LnN0ZG91dCkgeworKyAgICAgICAgICAgIE9rKHN0cmluZykgPT4gc3RyaW5nLAorKyAgICAg ICAgICAgIEVycihlKSA9PiB7CisrICAgICAgICAgICAgICAgIGxldCBydXN0YyA9IHJ1c3RjLnRv X3N0cmluZ19sb3NzeSgpOworKyAgICAgICAgICAgICAgICBlcHJpbnRsbiEoCisrICAgICAgICAg ICAgICAgICAgICAiRXJyb3I6IGZhaWxlZCB0byBwYXJzZSBvdXRwdXQgb2YgYHt9IC0tdmVyc2lv bmA6IHt9IiwKKysgICAgICAgICAgICAgICAgICAgIHJ1c3RjLCBlLAorKyAgICAgICAgICAgICAg ICApOworKyAgICAgICAgICAgICAgICBwcm9jZXNzOjpleGl0KDEpOworKyAgICAgICAgICAgIH0K KysgICAgICAgIH07CisrCisrICAgICAgICBicmVhayBtYXRjaCBydXN0Yzo6cGFyc2UoJnN0cmlu ZykgeworKyAgICAgICAgICAgIHJ1c3RjOjpQYXJzZVJlc3VsdDo6U3VjY2Vzcyh2ZXJzaW9uKSA9 PiB2ZXJzaW9uLAorKyAgICAgICAgICAgIHJ1c3RjOjpQYXJzZVJlc3VsdDo6T29wc0NsaXBweSBp ZiAhaXNfY2xpcHB5X2RyaXZlciA9PiB7CisrICAgICAgICAgICAgICAgIGlzX2NsaXBweV9kcml2 ZXIgPSB0cnVlOworKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKysgICAgICAgICAgICB9Cisr ICAgICAgICAgICAgcnVzdGM6OlBhcnNlUmVzdWx0OjpPb3BzTWlyYWkgaWYgIWlzX21pcmFpICYm IHJ1c3RjX3dyYXBwZXIuaXNfc29tZSgpID0+IHsKKysgICAgICAgICAgICAgICAgaXNfbWlyYWkg PSB0cnVlOworKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKysgICAgICAgICAgICB9CisrICAg ICAgICAgICAgcnVzdGM6OlBhcnNlUmVzdWx0OjpVbnJlY29nbml6ZWQKKysgICAgICAgICAgICB8 IHJ1c3RjOjpQYXJzZVJlc3VsdDo6T29wc0NsaXBweQorKyAgICAgICAgICAgIHwgcnVzdGM6OlBh cnNlUmVzdWx0OjpPb3BzTWlyYWkgPT4geworKyAgICAgICAgICAgICAgICBlcHJpbnRsbiEoCisr ICAgICAgICAgICAgICAgICAgICAiRXJyb3I6IHVuZXhwZWN0ZWQgb3V0cHV0IGZyb20gYHJ1c3Rj IC0tdmVyc2lvbmA6IHs6P31cblxuXAorKyAgICAgICAgICAgICAgICAgICAgUGxlYXNlIGZpbGUg YW4gaXNzdWUgaW4gaHR0cHM6Ly9naXRodWIuY29tL2R0b2xuYXkvcnVzdHZlcnNpb24iLAorKyAg ICAgICAgICAgICAgICAgICAgc3RyaW5nCisrICAgICAgICAgICAgICAgICk7CisrICAgICAgICAg ICAgICAgIHByb2Nlc3M6OmV4aXQoMSk7CisrICAgICAgICAgICAgfQorKyAgICAgICAgfTsKKysg ICAgfTsKKysKKysgICAgaWYgdmVyc2lvbi5taW5vciA8IDM4IHsKKysgICAgICAgIC8vIFByaW9y IHRvIDEuMzgsIGEgI1twcm9jX21hY3JvXSBpcyBub3QgYWxsb3dlZCB0byBiZSBuYW1lZCBgY2Zn YC4KKysgICAgICAgIHByaW50bG4hKCJjYXJnbzpydXN0Yy1jZmc9Y2ZnX21hY3JvX25vdF9hbGxv d2VkIik7CisrICAgIH0KKysKKysgICAgaWYgdmVyc2lvbi5taW5vciA+PSA4MCB7CisrICAgICAg ICBwcmludGxuISgiY2FyZ286cnVzdGMtY2hlY2stY2ZnPWNmZyhjZmdfbWFjcm9fbm90X2FsbG93 ZWQpIik7CisrICAgICAgICBwcmludGxuISgiY2FyZ286cnVzdGMtY2hlY2stY2ZnPWNmZyhob3N0 X29zLCB2YWx1ZXMoXCJ3aW5kb3dzXCIpKSIpOworKyAgICB9CisrCisrICAgIGxldCB2ZXJzaW9u ID0gZm9ybWF0ISgiezojfVxuIiwgUmVuZGVyKCZ2ZXJzaW9uKSk7CisrICAgIGxldCBvdXRfZGly ID0gZW52Ojp2YXJfb3MoIk9VVF9ESVIiKS5leHBlY3QoIk9VVF9ESVIgbm90IHNldCIpOworKyAg ICBsZXQgb3V0X2ZpbGUgPSBQYXRoOjpuZXcoJm91dF9kaXIpLmpvaW4oInZlcnNpb24uZXhwciIp OworKyAgICBmczo6d3JpdGUob3V0X2ZpbGUsIHZlcnNpb24pLmV4cGVjdCgiZmFpbGVkIHRvIHdy aXRlIHZlcnNpb24uZXhwciIpOworKworKyAgICBsZXQgaG9zdCA9IGVudjo6dmFyX29zKCJIT1NU IikuZXhwZWN0KCJIT1NUIG5vdCBzZXQiKTsKKysgICAgaWYgbGV0IFNvbWUoIndpbmRvd3MiKSA9 IGhvc3QudG9fc3RyKCkudW53cmFwKCkuc3BsaXQoJy0nKS5udGgoMikgeworKyAgICAgICAgcHJp bnRsbiEoImNhcmdvOnJ1c3RjLWNmZz1ob3N0X29zPVwid2luZG93c1wiIik7CisrICAgIH0KKyt9 CisrCisrLy8gU2hpbSBWZXJzaW9uJ3Mgezo/fSBmb3JtYXQgaW50byBhIHt9IGZvcm1hdCwgYmVj YXVzZSB7Oj99IGlzIHVudXNhYmxlIGluCisrLy8gZm9ybWF0IHN0cmluZ3Mgd2hlbiBidWlsZGlu ZyB3aXRoIGAtWmZtdC1kZWJ1Zz1ub25lYC4KKytzdHJ1Y3QgUmVuZGVyPCdhPigmJ2EgcnVzdGM6 OlZlcnNpb24pOworKworK2ltcGw8J2E+IERpc3BsYXkgZm9yIFJlbmRlcjwnYT4geworKyAgICBm biBmbXQoJnNlbGYsIGZvcm1hdHRlcjogJm11dCBmbXQ6OkZvcm1hdHRlcikgLT4gZm10OjpSZXN1 bHQgeworKyAgICAgICAgRGVidWc6OmZtdChzZWxmLjAsIGZvcm1hdHRlcikKKysgICAgfQorK30K K2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3J1c3R2ZXJzaW9uL2J1aWxkL3J1c3RjLnJz IGIvdGhpcmRfcGFydHkvcnVzdC9ydXN0dmVyc2lvbi9idWlsZC9ydXN0Yy5ycworbmV3IGZpbGUg bW9kZSAxMDA2NDQKKy0tLSAvZGV2L251bGwKKysrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcnVzdHZl cnNpb24vYnVpbGQvcnVzdGMucnMKK0BAIC0wLDAgKzEsMTI2IEBACisrdXNlIHNlbGY6OkNoYW5u ZWw6Oio7CisrdXNlIHN0ZDo6Zm10Ojp7c2VsZiwgRGVidWd9OworKworK3B1YiBlbnVtIFBhcnNl UmVzdWx0IHsKKysgICAgU3VjY2VzcyhWZXJzaW9uKSwKKysgICAgT29wc0NsaXBweSwKKysgICAg T29wc01pcmFpLAorKyAgICBVbnJlY29nbml6ZWQsCisrfQorKworKyNbY2ZnX2F0dHIodGVzdCwg ZGVyaXZlKFBhcnRpYWxFcSkpXQorK3B1YiBzdHJ1Y3QgVmVyc2lvbiB7CisrICAgIHB1YiBtaW5v cjogdTE2LAorKyAgICBwdWIgcGF0Y2g6IHUxNiwKKysgICAgcHViIGNoYW5uZWw6IENoYW5uZWws CisrfQorKworKyNbY2ZnX2F0dHIodGVzdCwgZGVyaXZlKFBhcnRpYWxFcSkpXQorK3B1YiBlbnVt IENoYW5uZWwgeworKyAgICBTdGFibGUsCisrICAgIEJldGEsCisrICAgIE5pZ2h0bHkoRGF0ZSks CisrICAgIERldiwKKyt9CisrCisrI1tjZmdfYXR0cih0ZXN0LCBkZXJpdmUoUGFydGlhbEVxKSld CisrcHViIHN0cnVjdCBEYXRlIHsKKysgICAgcHViIHllYXI6IHUxNiwKKysgICAgcHViIG1vbnRo OiB1OCwKKysgICAgcHViIGRheTogdTgsCisrfQorKworK3B1YiBmbiBwYXJzZShzdHJpbmc6ICZz dHIpIC0+IFBhcnNlUmVzdWx0IHsKKysgICAgbGV0IGxhc3RfbGluZSA9IHN0cmluZy5saW5lcygp Lmxhc3QoKS51bndyYXBfb3Ioc3RyaW5nKTsKKysgICAgbGV0IG11dCB3b3JkcyA9IGxhc3RfbGlu ZS50cmltKCkuc3BsaXQoJyAnKTsKKysKKysgICAgbWF0Y2ggd29yZHMubmV4dCgpIHsKKysgICAg ICAgIFNvbWUoInJ1c3RjIikgPT4ge30KKysgICAgICAgIFNvbWUod29yZCkgaWYgd29yZC5zdGFy dHNfd2l0aCgiY2xpcHB5IikgPT4gcmV0dXJuIFBhcnNlUmVzdWx0OjpPb3BzQ2xpcHB5LAorKyAg ICAgICAgU29tZSgibWlyYWkiKSA9PiByZXR1cm4gUGFyc2VSZXN1bHQ6Ok9vcHNNaXJhaSwKKysg ICAgICAgIFNvbWUoXykgfCBOb25lID0+IHJldHVybiBQYXJzZVJlc3VsdDo6VW5yZWNvZ25pemVk LAorKyAgICB9CisrCisrICAgIHBhcnNlX3dvcmRzKCZtdXQgd29yZHMpLm1hcF9vcihQYXJzZVJl c3VsdDo6VW5yZWNvZ25pemVkLCBQYXJzZVJlc3VsdDo6U3VjY2VzcykKKyt9CisrCisrZm4gcGFy c2Vfd29yZHMod29yZHM6ICZtdXQgZHluIEl0ZXJhdG9yPEl0ZW0gPSAmc3RyPikgLT4gT3B0aW9u PFZlcnNpb24+IHsKKysgICAgbGV0IG11dCB2ZXJzaW9uX2NoYW5uZWwgPSB3b3Jkcy5uZXh0KCk/ LnNwbGl0KCctJyk7CisrICAgIGxldCB2ZXJzaW9uID0gdmVyc2lvbl9jaGFubmVsLm5leHQoKT87 CisrICAgIGxldCBjaGFubmVsID0gdmVyc2lvbl9jaGFubmVsLm5leHQoKTsKKysKKysgICAgbGV0 IG11dCBkaWdpdHMgPSB2ZXJzaW9uLnNwbGl0KCcuJyk7CisrICAgIGxldCBtYWpvciA9IGRpZ2l0 cy5uZXh0KCk/OworKyAgICBpZiBtYWpvciAhPSAiMSIgeworKyAgICAgICAgcmV0dXJuIE5vbmU7 CisrICAgIH0KKysgICAgbGV0IG1pbm9yID0gZGlnaXRzLm5leHQoKT8ucGFyc2UoKS5vaygpPzsK KysgICAgbGV0IHBhdGNoID0gZGlnaXRzLm5leHQoKS51bndyYXBfb3IoIjAiKS5wYXJzZSgpLm9r KCk/OworKworKyAgICBsZXQgY2hhbm5lbCA9IG1hdGNoIGNoYW5uZWwgeworKyAgICAgICAgTm9u ZSA9PiBTdGFibGUsCisrICAgICAgICBTb21lKCJkZXYiKSA9PiBEZXYsCisrICAgICAgICBTb21l KGNoYW5uZWwpIGlmIGNoYW5uZWwuc3RhcnRzX3dpdGgoImJldGEiKSA9PiBCZXRhLAorKyAgICAg ICAgU29tZSgibmlnaHRseSIpID0+IG1hdGNoIHdvcmRzLm5leHQoKSB7CisrICAgICAgICAgICAg U29tZShoYXNoKSBpZiBoYXNoLnN0YXJ0c193aXRoKCcoJykgPT4gbWF0Y2ggd29yZHMubmV4dCgp IHsKKysgICAgICAgICAgICAgICAgTm9uZSBpZiBoYXNoLmVuZHNfd2l0aCgnKScpID0+IERldiwK KysgICAgICAgICAgICAgICAgU29tZShkYXRlKSBpZiBkYXRlLmVuZHNfd2l0aCgnKScpID0+IHsK KysgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgZGF0ZSA9IGRhdGVbLi5kYXRlLmxlbigpIC0g MV0uc3BsaXQoJy0nKTsKKysgICAgICAgICAgICAgICAgICAgIGxldCB5ZWFyID0gZGF0ZS5uZXh0 KCk/LnBhcnNlKCkub2soKT87CisrICAgICAgICAgICAgICAgICAgICBsZXQgbW9udGggPSBkYXRl Lm5leHQoKT8ucGFyc2UoKS5vaygpPzsKKysgICAgICAgICAgICAgICAgICAgIGxldCBkYXkgPSBk YXRlLm5leHQoKT8ucGFyc2UoKS5vaygpPzsKKysgICAgICAgICAgICAgICAgICAgIG1hdGNoIGRh dGUubmV4dCgpIHsKKysgICAgICAgICAgICAgICAgICAgICAgICBOb25lID0+IE5pZ2h0bHkoRGF0 ZSB7IHllYXIsIG1vbnRoLCBkYXkgfSksCisrICAgICAgICAgICAgICAgICAgICAgICAgU29tZShf KSA9PiByZXR1cm4gTm9uZSwKKysgICAgICAgICAgICAgICAgICAgIH0KKysgICAgICAgICAgICAg ICAgfQorKyAgICAgICAgICAgICAgICBOb25lIHwgU29tZShfKSA9PiByZXR1cm4gTm9uZSwKKysg ICAgICAgICAgICB9LAorKyAgICAgICAgICAgIFNvbWUoXykgPT4gcmV0dXJuIE5vbmUsCisrICAg ICAgICAgICAgTm9uZSA9PiBEZXYsCisrICAgICAgICB9LAorKyAgICAgICAgU29tZShfKSA9PiBy ZXR1cm4gTm9uZSwKKysgICAgfTsKKysKKysgICAgU29tZShWZXJzaW9uIHsKKysgICAgICAgIG1p bm9yLAorKyAgICAgICAgcGF0Y2gsCisrICAgICAgICBjaGFubmVsLAorKyAgICB9KQorK30KKysK KytpbXBsIERlYnVnIGZvciBWZXJzaW9uIHsKKysgICAgZm4gZm10KCZzZWxmLCBmb3JtYXR0ZXI6 ICZtdXQgZm10OjpGb3JtYXR0ZXIpIC0+IGZtdDo6UmVzdWx0IHsKKysgICAgICAgIGZvcm1hdHRl cgorKyAgICAgICAgICAgIC5kZWJ1Z19zdHJ1Y3QoImNyYXRlOjp2ZXJzaW9uOjpWZXJzaW9uIikK KysgICAgICAgICAgICAuZmllbGQoIm1pbm9yIiwgJnNlbGYubWlub3IpCisrICAgICAgICAgICAg LmZpZWxkKCJwYXRjaCIsICZzZWxmLnBhdGNoKQorKyAgICAgICAgICAgIC5maWVsZCgiY2hhbm5l bCIsICZzZWxmLmNoYW5uZWwpCisrICAgICAgICAgICAgLmZpbmlzaCgpCisrICAgIH0KKyt9Cisr CisraW1wbCBEZWJ1ZyBmb3IgQ2hhbm5lbCB7CisrICAgIGZuIGZtdCgmc2VsZiwgZm9ybWF0dGVy OiAmbXV0IGZtdDo6Rm9ybWF0dGVyKSAtPiBmbXQ6OlJlc3VsdCB7CisrICAgICAgICBtYXRjaCBz ZWxmIHsKKysgICAgICAgICAgICBDaGFubmVsOjpTdGFibGUgPT4gZm9ybWF0dGVyLndyaXRlX3N0 cigiY3JhdGU6OnZlcnNpb246OkNoYW5uZWw6OlN0YWJsZSIpLAorKyAgICAgICAgICAgIENoYW5u ZWw6OkJldGEgPT4gZm9ybWF0dGVyLndyaXRlX3N0cigiY3JhdGU6OnZlcnNpb246OkNoYW5uZWw6 OkJldGEiKSwKKysgICAgICAgICAgICBDaGFubmVsOjpOaWdodGx5KGRhdGUpID0+IGZvcm1hdHRl cgorKyAgICAgICAgICAgICAgICAuZGVidWdfdHVwbGUoImNyYXRlOjp2ZXJzaW9uOjpDaGFubmVs OjpOaWdodGx5IikKKysgICAgICAgICAgICAgICAgLmZpZWxkKGRhdGUpCisrICAgICAgICAgICAg ICAgIC5maW5pc2goKSwKKysgICAgICAgICAgICBDaGFubmVsOjpEZXYgPT4gZm9ybWF0dGVyLndy aXRlX3N0cigiY3JhdGU6OnZlcnNpb246OkNoYW5uZWw6OkRldiIpLAorKyAgICAgICAgfQorKyAg ICB9CisrfQorKworK2ltcGwgRGVidWcgZm9yIERhdGUgeworKyAgICBmbiBmbXQoJnNlbGYsIGZv cm1hdHRlcjogJm11dCBmbXQ6OkZvcm1hdHRlcikgLT4gZm10OjpSZXN1bHQgeworKyAgICAgICAg Zm9ybWF0dGVyCisrICAgICAgICAgICAgLmRlYnVnX3N0cnVjdCgiY3JhdGU6OmRhdGU6OkRhdGUi KQorKyAgICAgICAgICAgIC5maWVsZCgieWVhciIsICZzZWxmLnllYXIpCisrICAgICAgICAgICAg LmZpZWxkKCJtb250aCIsICZzZWxmLm1vbnRoKQorKyAgICAgICAgICAgIC5maWVsZCgiZGF5Iiwg JnNlbGYuZGF5KQorKyAgICAgICAgICAgIC5maW5pc2goKQorKyAgICB9CisrfQorZGlmZiAtLWdp dCBhL3RoaXJkX3BhcnR5L3J1c3QvcnVzdHZlcnNpb24vc3JjL2F0dHIucnMgYi90aGlyZF9wYXJ0 eS9ydXN0L3J1c3R2ZXJzaW9uL3NyYy9hdHRyLnJzCituZXcgZmlsZSBtb2RlIDEwMDY0NAorLS0t IC9kZXYvbnVsbAorKysrIGIvdGhpcmRfcGFydHkvcnVzdC9ydXN0dmVyc2lvbi9zcmMvYXR0ci5y cworQEAgLTAsMCArMSwzNSBAQAorK3VzZSBjcmF0ZTo6ZXJyb3I6OntFcnJvciwgUmVzdWx0fTsK Kyt1c2UgY3JhdGU6OmV4cHI6OntzZWxmLCBFeHByfTsKKyt1c2UgY3JhdGU6OntpdGVyLCB0b2tl bn07CisrdXNlIHByb2NfbWFjcm86OntTcGFuLCBUb2tlblN0cmVhbX07CisrCisrcHViIHN0cnVj dCBBcmdzIHsKKysgICAgcHViIGNvbmRpdGlvbjogRXhwciwKKysgICAgcHViIHRoZW46IFRoZW4s CisrfQorKworK3B1YiBlbnVtIFRoZW4geworKyAgICBDb25zdChTcGFuKSwKKysgICAgQXR0cmli dXRlKFRva2VuU3RyZWFtKSwKKyt9CisrCisrcHViIGZuIHBhcnNlKGlucHV0OiBUb2tlblN0cmVh bSkgLT4gUmVzdWx0PEFyZ3M+IHsKKysgICAgbGV0IHJlZiBtdXQgaW5wdXQgPSBpdGVyOjpuZXco aW5wdXQpOworKyAgICBsZXQgY29uZGl0aW9uID0gZXhwcjo6cGFyc2UoaW5wdXQpPzsKKysKKysg ICAgdG9rZW46OnBhcnNlX3B1bmN0KGlucHV0LCAnLCcpPzsKKysgICAgaWYgaW5wdXQucGVlaygp LmlzX25vbmUoKSB7CisrICAgICAgICByZXR1cm4gRXJyKEVycm9yOjpuZXcoU3Bhbjo6Y2FsbF9z aXRlKCksICJleHBlY3RlZCBvbmUgb3IgbW9yZSBhdHRycyIpKTsKKysgICAgfQorKworKyAgICBs ZXQgY29uc3Rfc3BhbiA9IHRva2VuOjpwYXJzZV9vcHRpb25hbF9rZXl3b3JkKGlucHV0LCAiY29u c3QiKTsKKysgICAgbGV0IHRoZW4gPSBpZiBsZXQgU29tZShjb25zdF9zcGFuKSA9IGNvbnN0X3Nw YW4geworKyAgICAgICAgdG9rZW46OnBhcnNlX29wdGlvbmFsX3B1bmN0KGlucHV0LCAnLCcpOwor KyAgICAgICAgdG9rZW46OnBhcnNlX2VuZChpbnB1dCk/OworKyAgICAgICAgVGhlbjo6Q29uc3Qo Y29uc3Rfc3BhbikKKysgICAgfSBlbHNlIHsKKysgICAgICAgIFRoZW46OkF0dHJpYnV0ZShpbnB1 dC5jb2xsZWN0KCkpCisrICAgIH07CisrCisrICAgIE9rKEFyZ3MgeyBjb25kaXRpb24sIHRoZW4g fSkKKyt9CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9ydXN0dmVyc2lvbi9zcmMvYm91 bmQucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3J1c3R2ZXJzaW9uL3NyYy9ib3VuZC5ycworbmV3IGZp bGUgbW9kZSAxMDA2NDQKKy0tLSAvZGV2L251bGwKKysrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcnVz dHZlcnNpb24vc3JjL2JvdW5kLnJzCitAQCAtMCwwICsxLDYzIEBACisrdXNlIGNyYXRlOjpkYXRl Ojp7c2VsZiwgRGF0ZX07CisrdXNlIGNyYXRlOjplcnJvcjo6e0Vycm9yLCBSZXN1bHR9OworK3Vz ZSBjcmF0ZTo6aXRlcjo6SXRlcjsKKyt1c2UgY3JhdGU6OnJlbGVhc2U6OntzZWxmLCBSZWxlYXNl fTsKKyt1c2UgY3JhdGU6OnRpbWU7CisrdXNlIGNyYXRlOjp2ZXJzaW9uOjp7Q2hhbm5lbDo6Kiwg VmVyc2lvbn07CisrdXNlIHByb2NfbWFjcm86OntHcm91cCwgVG9rZW5UcmVlfTsKKyt1c2Ugc3Rk OjpjbXA6Ok9yZGVyaW5nOworKworK3B1YiBlbnVtIEJvdW5kIHsKKysgICAgTmlnaHRseShEYXRl KSwKKysgICAgU3RhYmxlKFJlbGVhc2UpLAorK30KKysKKytwdWIgZm4gcGFyc2UocGFyZW46IEdy b3VwLCBpdGVyOiBJdGVyKSAtPiBSZXN1bHQ8Qm91bmQ+IHsKKysgICAgaWYgbGV0IFNvbWUoVG9r ZW5UcmVlOjpMaXRlcmFsKGxpdGVyYWwpKSA9IGl0ZXIucGVlaygpIHsKKysgICAgICAgIGxldCBy ZXByID0gbGl0ZXJhbC50b19zdHJpbmcoKTsKKysgICAgICAgIGlmIHJlcHIuc3RhcnRzX3dpdGgo fGNoOiBjaGFyfCBjaC5pc19hc2NpaV9kaWdpdCgpKSB7CisrICAgICAgICAgICAgaWYgcmVwci5j b250YWlucygnLicpIHsKKysgICAgICAgICAgICAgICAgcmV0dXJuIHJlbGVhc2U6OnBhcnNlKHBh cmVuLCBpdGVyKS5tYXAoQm91bmQ6OlN0YWJsZSk7CisrICAgICAgICAgICAgfSBlbHNlIHsKKysg ICAgICAgICAgICAgICAgcmV0dXJuIGRhdGU6OnBhcnNlKHBhcmVuLCBpdGVyKS5tYXAoQm91bmQ6 Ok5pZ2h0bHkpOworKyAgICAgICAgICAgIH0KKysgICAgICAgIH0KKysgICAgfQorKyAgICBsZXQg bXNnID0gZm9ybWF0ISgKKysgICAgICAgICJleHBlY3RlZCBydXN0YyByZWxlYXNlIG51bWJlciBs aWtlIDEuODUsIG9yIG5pZ2h0bHkgZGF0ZSBsaWtlIHt9IiwKKysgICAgICAgIHRpbWU6OnRvZGF5 KCksCisrICAgICk7CisrICAgIEVycihFcnJvcjo6Z3JvdXAocGFyZW4sIG1zZykpCisrfQorKwor K2ltcGwgUGFydGlhbEVxPEJvdW5kPiBmb3IgVmVyc2lvbiB7CisrICAgIGZuIGVxKCZzZWxmLCBy aHM6ICZCb3VuZCkgLT4gYm9vbCB7CisrICAgICAgICBtYXRjaCByaHMgeworKyAgICAgICAgICAg IEJvdW5kOjpOaWdodGx5KGRhdGUpID0+IG1hdGNoIHNlbGYuY2hhbm5lbCB7CisrICAgICAgICAg ICAgICAgIFN0YWJsZSB8IEJldGEgfCBEZXYgPT4gZmFsc2UsCisrICAgICAgICAgICAgICAgIE5p Z2h0bHkobmlnaHRseSkgPT4gbmlnaHRseSA9PSAqZGF0ZSwKKysgICAgICAgICAgICB9LAorKyAg ICAgICAgICAgIEJvdW5kOjpTdGFibGUocmVsZWFzZSkgPT4geworKyAgICAgICAgICAgICAgICBz ZWxmLm1pbm9yID09IHJlbGVhc2UubWlub3IKKysgICAgICAgICAgICAgICAgICAgICYmIHJlbGVh c2UucGF0Y2gubWFwX29yKHRydWUsIHxwYXRjaHwgc2VsZi5wYXRjaCA9PSBwYXRjaCkKKysgICAg ICAgICAgICB9CisrICAgICAgICB9CisrICAgIH0KKyt9CisrCisraW1wbCBQYXJ0aWFsT3JkPEJv dW5kPiBmb3IgVmVyc2lvbiB7CisrICAgIGZuIHBhcnRpYWxfY21wKCZzZWxmLCByaHM6ICZCb3Vu ZCkgLT4gT3B0aW9uPE9yZGVyaW5nPiB7CisrICAgICAgICBtYXRjaCByaHMgeworKyAgICAgICAg ICAgIEJvdW5kOjpOaWdodGx5KGRhdGUpID0+IG1hdGNoIHNlbGYuY2hhbm5lbCB7CisrICAgICAg ICAgICAgICAgIFN0YWJsZSB8IEJldGEgPT4gU29tZShPcmRlcmluZzo6TGVzcyksCisrICAgICAg ICAgICAgICAgIE5pZ2h0bHkobmlnaHRseSkgPT4gU29tZShuaWdodGx5LmNtcChkYXRlKSksCisr ICAgICAgICAgICAgICAgIERldiA9PiBTb21lKE9yZGVyaW5nOjpHcmVhdGVyKSwKKysgICAgICAg ICAgICB9LAorKyAgICAgICAgICAgIEJvdW5kOjpTdGFibGUocmVsZWFzZSkgPT4geworKyAgICAg ICAgICAgICAgICBsZXQgdmVyc2lvbiA9IChzZWxmLm1pbm9yLCBzZWxmLnBhdGNoKTsKKysgICAg ICAgICAgICAgICAgbGV0IGJvdW5kID0gKHJlbGVhc2UubWlub3IsIHJlbGVhc2UucGF0Y2gudW53 cmFwX29yKDApKTsKKysgICAgICAgICAgICAgICAgU29tZSh2ZXJzaW9uLmNtcCgmYm91bmQpKQor KyAgICAgICAgICAgIH0KKysgICAgICAgIH0KKysgICAgfQorK30KK2RpZmYgLS1naXQgYS90aGly ZF9wYXJ0eS9ydXN0L3J1c3R2ZXJzaW9uL3NyYy9jb25zdGZuLnJzIGIvdGhpcmRfcGFydHkvcnVz dC9ydXN0dmVyc2lvbi9zcmMvY29uc3Rmbi5ycworbmV3IGZpbGUgbW9kZSAxMDA2NDQKKy0tLSAv ZGV2L251bGwKKysrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcnVzdHZlcnNpb24vc3JjL2NvbnN0Zm4u cnMKK0BAIC0wLDAgKzEsNTggQEAKKyt1c2UgY3JhdGU6OmVycm9yOjp7RXJyb3IsIFJlc3VsdH07 CisrdXNlIHByb2NfbWFjcm86OntJZGVudCwgU3BhbiwgVG9rZW5TdHJlYW0sIFRva2VuVHJlZX07 CisrdXNlIHN0ZDo6aXRlcjsKKysKKysjW2Rlcml2ZShQYXJ0aWFsT3JkLCBQYXJ0aWFsRXEpXQor K2VudW0gUXVhbGlmaWVycyB7CisrICAgIE5vbmUsCisrICAgIEFzeW5jLAorKyAgICBVbnNhZmUs CisrICAgIEV4dGVybiwKKysgICAgQWJpLAorK30KKysKKytpbXBsIFF1YWxpZmllcnMgeworKyAg ICBmbiBmcm9tX2lkZW50KGlkZW50OiAmSWRlbnQpIC0+IFNlbGYgeworKyAgICAgICAgbWF0Y2gg aWRlbnQudG9fc3RyaW5nKCkuYXNfc3RyKCkgeworKyAgICAgICAgICAgICJhc3luYyIgPT4gUXVh bGlmaWVyczo6QXN5bmMsCisrICAgICAgICAgICAgInVuc2FmZSIgPT4gUXVhbGlmaWVyczo6VW5z YWZlLAorKyAgICAgICAgICAgICJleHRlcm4iID0+IFF1YWxpZmllcnM6OkV4dGVybiwKKysgICAg ICAgICAgICBfID0+IFF1YWxpZmllcnM6Ok5vbmUsCisrICAgICAgICB9CisrICAgIH0KKyt9Cisr CisrcHViKGNyYXRlKSBmbiBpbnNlcnRfY29uc3QoaW5wdXQ6IFRva2VuU3RyZWFtLCBjb25zdF9z cGFuOiBTcGFuKSAtPiBSZXN1bHQ8VG9rZW5TdHJlYW0+IHsKKysgICAgbGV0IHJlZiBtdXQgaW5w dXQgPSBjcmF0ZTo6aXRlcjo6bmV3KGlucHV0KTsKKysgICAgbGV0IG11dCBvdXQgPSBUb2tlblN0 cmVhbTo6bmV3KCk7CisrICAgIGxldCBtdXQgcXVhbGlmaWVycyA9IFF1YWxpZmllcnM6Ok5vbmU7 CisrICAgIGxldCBtdXQgcGVuZGluZyA9IFZlYzo6bmV3KCk7CisrCisrICAgIHdoaWxlIGxldCBT b21lKHRva2VuKSA9IGlucHV0Lm5leHQoKSB7CisrICAgICAgICBtYXRjaCB0b2tlbiB7CisrICAg ICAgICAgICAgVG9rZW5UcmVlOjpJZGVudChyZWYgaWRlbnQpIGlmIGlkZW50LnRvX3N0cmluZygp ID09ICJmbiIgPT4geworKyAgICAgICAgICAgICAgICBsZXQgY29uc3RfaWRlbnQgPSBJZGVudDo6 bmV3KCJjb25zdCIsIGNvbnN0X3NwYW4pOworKyAgICAgICAgICAgICAgICBvdXQuZXh0ZW5kKGl0 ZXI6Om9uY2UoVG9rZW5UcmVlOjpJZGVudChjb25zdF9pZGVudCkpKTsKKysgICAgICAgICAgICAg ICAgb3V0LmV4dGVuZChwZW5kaW5nKTsKKysgICAgICAgICAgICAgICAgb3V0LmV4dGVuZChpdGVy OjpvbmNlKHRva2VuKSk7CisrICAgICAgICAgICAgICAgIG91dC5leHRlbmQoaW5wdXQpOworKyAg ICAgICAgICAgICAgICByZXR1cm4gT2sob3V0KTsKKysgICAgICAgICAgICB9CisrICAgICAgICAg ICAgVG9rZW5UcmVlOjpJZGVudChyZWYgaWRlbnQpIGlmIFF1YWxpZmllcnM6OmZyb21faWRlbnQo aWRlbnQpID4gcXVhbGlmaWVycyA9PiB7CisrICAgICAgICAgICAgICAgIHF1YWxpZmllcnMgPSBR dWFsaWZpZXJzOjpmcm9tX2lkZW50KGlkZW50KTsKKysgICAgICAgICAgICAgICAgcGVuZGluZy5w dXNoKHRva2VuKTsKKysgICAgICAgICAgICB9CisrICAgICAgICAgICAgVG9rZW5UcmVlOjpMaXRl cmFsKF8pIGlmIHF1YWxpZmllcnMgPT0gUXVhbGlmaWVyczo6RXh0ZXJuID0+IHsKKysgICAgICAg ICAgICAgICAgcXVhbGlmaWVycyA9IFF1YWxpZmllcnM6OkFiaTsKKysgICAgICAgICAgICAgICAg cGVuZGluZy5wdXNoKHRva2VuKTsKKysgICAgICAgICAgICB9CisrICAgICAgICAgICAgXyA9PiB7 CisrICAgICAgICAgICAgICAgIHF1YWxpZmllcnMgPSBRdWFsaWZpZXJzOjpOb25lOworKyAgICAg ICAgICAgICAgICBvdXQuZXh0ZW5kKHBlbmRpbmcuZHJhaW4oLi4pKTsKKysgICAgICAgICAgICAg ICAgb3V0LmV4dGVuZChpdGVyOjpvbmNlKHRva2VuKSk7CisrICAgICAgICAgICAgfQorKyAgICAg ICAgfQorKyAgICB9CisrCisrICAgIEVycihFcnJvcjo6bmV3KGNvbnN0X3NwYW4sICJvbmx5IGFs bG93ZWQgb24gYSBmbiBpdGVtIikpCisrfQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3Qv cnVzdHZlcnNpb24vc3JjL2RhdGUucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3J1c3R2ZXJzaW9uL3Ny Yy9kYXRlLnJzCituZXcgZmlsZSBtb2RlIDEwMDY0NAorLS0tIC9kZXYvbnVsbAorKysrIGIvdGhp cmRfcGFydHkvcnVzdC9ydXN0dmVyc2lvbi9zcmMvZGF0ZS5ycworQEAgLTAsMCArMSw1MCBAQAor K3VzZSBjcmF0ZTo6ZXJyb3I6OntFcnJvciwgUmVzdWx0fTsKKyt1c2UgY3JhdGU6Oml0ZXI6Okl0 ZXI7CisrdXNlIGNyYXRlOjp7dGltZSwgdG9rZW59OworK3VzZSBwcm9jX21hY3JvOjpHcm91cDsK Kyt1c2Ugc3RkOjpmbXQ6OntzZWxmLCBEaXNwbGF5fTsKKysKKysjW2Rlcml2ZShDb3B5LCBDbG9u ZSwgRGVidWcsIFBhcnRpYWxFcSwgRXEsIFBhcnRpYWxPcmQsIE9yZCldCisrcHViIHN0cnVjdCBE YXRlIHsKKysgICAgcHViIHllYXI6IHUxNiwKKysgICAgcHViIG1vbnRoOiB1OCwKKysgICAgcHVi IGRheTogdTgsCisrfQorKworK2ltcGwgRGlzcGxheSBmb3IgRGF0ZSB7CisrICAgIGZuIGZtdCgm c2VsZiwgZm9ybWF0dGVyOiAmbXV0IGZtdDo6Rm9ybWF0dGVyKSAtPiBmbXQ6OlJlc3VsdCB7Cisr ICAgICAgICB3cml0ZSEoCisrICAgICAgICAgICAgZm9ybWF0dGVyLAorKyAgICAgICAgICAgICJ7 OjA0fS17OjAyfS17OjAyfSIsCisrICAgICAgICAgICAgc2VsZi55ZWFyLCBzZWxmLm1vbnRoLCBz ZWxmLmRheSwKKysgICAgICAgICkKKysgICAgfQorK30KKysKKytwdWIgZm4gcGFyc2UocGFyZW46 IEdyb3VwLCBpdGVyOiBJdGVyKSAtPiBSZXN1bHQ8RGF0ZT4geworKyAgICB0cnlfcGFyc2UoaXRl cikubWFwX2Vycih8KCl8IHsKKysgICAgICAgIGxldCBtc2cgPSBmb3JtYXQhKCJleHBlY3RlZCBu aWdodGx5IGRhdGUsIGxpa2Uge30iLCB0aW1lOjp0b2RheSgpKTsKKysgICAgICAgIEVycm9yOjpn cm91cChwYXJlbiwgbXNnKQorKyAgICB9KQorK30KKysKKytmbiB0cnlfcGFyc2UoaXRlcjogSXRl cikgLT4gUmVzdWx0PERhdGUsICgpPiB7CisrICAgIGxldCB5ZWFyID0gdG9rZW46OnBhcnNlX2xp dGVyYWwoaXRlcikubWFwX2Vycihkcm9wKT87CisrICAgIHRva2VuOjpwYXJzZV9wdW5jdChpdGVy LCAnLScpLm1hcF9lcnIoZHJvcCk/OworKyAgICBsZXQgbW9udGggPSB0b2tlbjo6cGFyc2VfbGl0 ZXJhbChpdGVyKS5tYXBfZXJyKGRyb3ApPzsKKysgICAgdG9rZW46OnBhcnNlX3B1bmN0KGl0ZXIs ICctJykubWFwX2Vycihkcm9wKT87CisrICAgIGxldCBkYXkgPSB0b2tlbjo6cGFyc2VfbGl0ZXJh bChpdGVyKS5tYXBfZXJyKGRyb3ApPzsKKysKKysgICAgbGV0IHllYXIgPSB5ZWFyLnRvX3N0cmlu ZygpLnBhcnNlOjo8dTY0PigpLm1hcF9lcnIoZHJvcCk/OworKyAgICBsZXQgbW9udGggPSBtb250 aC50b19zdHJpbmcoKS5wYXJzZTo6PHU2ND4oKS5tYXBfZXJyKGRyb3ApPzsKKysgICAgbGV0IGRh eSA9IGRheS50b19zdHJpbmcoKS5wYXJzZTo6PHU2ND4oKS5tYXBfZXJyKGRyb3ApPzsKKysgICAg aWYgeWVhciA+PSAzMDAwIHx8IG1vbnRoID4gMTIgfHwgZGF5ID4gMzEgeworKyAgICAgICAgcmV0 dXJuIEVycigoKSk7CisrICAgIH0KKysKKysgICAgT2soRGF0ZSB7CisrICAgICAgICB5ZWFyOiB5 ZWFyIGFzIHUxNiwKKysgICAgICAgIG1vbnRoOiBtb250aCBhcyB1OCwKKysgICAgICAgIGRheTog ZGF5IGFzIHU4LAorKyAgICB9KQorK30KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3J1 c3R2ZXJzaW9uL3NyYy9lcnJvci5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcnVzdHZlcnNpb24vc3Jj L2Vycm9yLnJzCituZXcgZmlsZSBtb2RlIDEwMDY0NAorLS0tIC9kZXYvbnVsbAorKysrIGIvdGhp cmRfcGFydHkvcnVzdC9ydXN0dmVyc2lvbi9zcmMvZXJyb3IucnMKK0BAIC0wLDAgKzEsNTYgQEAK Kyt1c2UgcHJvY19tYWNybzo6e0RlbGltaXRlciwgR3JvdXAsIElkZW50LCBMaXRlcmFsLCBQdW5j dCwgU3BhY2luZywgU3BhbiwgVG9rZW5TdHJlYW0sIFRva2VuVHJlZX07CisrdXNlIHN0ZDo6Zm10 OjpEaXNwbGF5OworK3VzZSBzdGQ6Oml0ZXI6OkZyb21JdGVyYXRvcjsKKysKKytwdWIgdHlwZSBS ZXN1bHQ8VCwgRSA9IEVycm9yPiA9IHN0ZDo6cmVzdWx0OjpSZXN1bHQ8VCwgRT47CisrCisrcHVi IHN0cnVjdCBFcnJvciB7CisrICAgIGJlZ2luOiBTcGFuLAorKyAgICBlbmQ6IFNwYW4sCisrICAg IG1zZzogU3RyaW5nLAorK30KKysKKytpbXBsIEVycm9yIHsKKysgICAgcHViIGZuIG5ldyhzcGFu OiBTcGFuLCBtc2c6IGltcGwgRGlzcGxheSkgLT4gU2VsZiB7CisrICAgICAgICBTZWxmOjpuZXcy KHNwYW4sIHNwYW4sIG1zZykKKysgICAgfQorKworKyAgICBwdWIgZm4gbmV3MihiZWdpbjogU3Bh biwgZW5kOiBTcGFuLCBtc2c6IGltcGwgRGlzcGxheSkgLT4gU2VsZiB7CisrICAgICAgICBFcnJv ciB7CisrICAgICAgICAgICAgYmVnaW4sCisrICAgICAgICAgICAgZW5kLAorKyAgICAgICAgICAg IG1zZzogbXNnLnRvX3N0cmluZygpLAorKyAgICAgICAgfQorKyAgICB9CisrCisrICAgIHB1YiBm biBncm91cChncm91cDogR3JvdXAsIG1zZzogaW1wbCBEaXNwbGF5KSAtPiBTZWxmIHsKKysgICAg ICAgIGxldCBtdXQgaXRlciA9IGdyb3VwLnN0cmVhbSgpLmludG9faXRlcigpOworKyAgICAgICAg bGV0IGRlbGltaXRlciA9IGdyb3VwLnNwYW4oKTsKKysgICAgICAgIGxldCBiZWdpbiA9IGl0ZXIu bmV4dCgpLm1hcF9vcihkZWxpbWl0ZXIsIHx0fCB0LnNwYW4oKSk7CisrICAgICAgICBsZXQgZW5k ID0gaXRlci5sYXN0KCkubWFwX29yKGJlZ2luLCB8dHwgdC5zcGFuKCkpOworKyAgICAgICAgU2Vs Zjo6bmV3MihiZWdpbiwgZW5kLCBtc2cpCisrICAgIH0KKysKKysgICAgcHViIGZuIGludG9fY29t cGlsZV9lcnJvcihzZWxmKSAtPiBUb2tlblN0cmVhbSB7CisrICAgICAgICAvLyBjb21waWxlX2Vy cm9yISB7ICRtc2cgfQorKyAgICAgICAgVG9rZW5TdHJlYW06OmZyb21faXRlcih2ZWMhWworKyAg ICAgICAgICAgIFRva2VuVHJlZTo6SWRlbnQoSWRlbnQ6Om5ldygiY29tcGlsZV9lcnJvciIsIHNl bGYuYmVnaW4pKSwKKysgICAgICAgICAgICBUb2tlblRyZWU6OlB1bmN0KHsKKysgICAgICAgICAg ICAgICAgbGV0IG11dCBwdW5jdCA9IFB1bmN0OjpuZXcoJyEnLCBTcGFjaW5nOjpBbG9uZSk7Cisr ICAgICAgICAgICAgICAgIHB1bmN0LnNldF9zcGFuKHNlbGYuYmVnaW4pOworKyAgICAgICAgICAg ICAgICBwdW5jdAorKyAgICAgICAgICAgIH0pLAorKyAgICAgICAgICAgIFRva2VuVHJlZTo6R3Jv dXAoeworKyAgICAgICAgICAgICAgICBsZXQgbXV0IGdyb3VwID0gR3JvdXA6Om5ldyhEZWxpbWl0 ZXI6OkJyYWNlLCB7CisrICAgICAgICAgICAgICAgICAgICBUb2tlblN0cmVhbTo6ZnJvbV9pdGVy KHZlYyFbVG9rZW5UcmVlOjpMaXRlcmFsKHsKKysgICAgICAgICAgICAgICAgICAgICAgICBsZXQg bXV0IHN0cmluZyA9IExpdGVyYWw6OnN0cmluZygmc2VsZi5tc2cpOworKyAgICAgICAgICAgICAg ICAgICAgICAgIHN0cmluZy5zZXRfc3BhbihzZWxmLmVuZCk7CisrICAgICAgICAgICAgICAgICAg ICAgICAgc3RyaW5nCisrICAgICAgICAgICAgICAgICAgICB9KV0pCisrICAgICAgICAgICAgICAg IH0pOworKyAgICAgICAgICAgICAgICBncm91cC5zZXRfc3BhbihzZWxmLmVuZCk7CisrICAgICAg ICAgICAgICAgIGdyb3VwCisrICAgICAgICAgICAgfSksCisrICAgICAgICBdKQorKyAgICB9Cisr fQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcnVzdHZlcnNpb24vc3JjL2V4cGFuZC5y cyBiL3RoaXJkX3BhcnR5L3J1c3QvcnVzdHZlcnNpb24vc3JjL2V4cGFuZC5ycworbmV3IGZpbGUg bW9kZSAxMDA2NDQKKy0tLSAvZGV2L251bGwKKysrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcnVzdHZl cnNpb24vc3JjL2V4cGFuZC5ycworQEAgLTAsMCArMSwxMDAgQEAKKyt1c2UgY3JhdGU6OmF0dHI6 OntzZWxmLCBUaGVufTsKKyt1c2UgY3JhdGU6OmVycm9yOjp7RXJyb3IsIFJlc3VsdH07CisrdXNl IGNyYXRlOjp7Y29uc3RmbiwgZXhwciwgaXRlciwgdG9rZW59OworK3VzZSBwcm9jX21hY3JvOjp7 RGVsaW1pdGVyLCBHcm91cCwgSWRlbnQsIFB1bmN0LCBTcGFjaW5nLCBTcGFuLCBUb2tlblN0cmVh bSwgVG9rZW5UcmVlfTsKKyt1c2Ugc3RkOjppdGVyOjpGcm9tSXRlcmF0b3I7CisrCisrcHViIGZu IGNmZyhpbnRyb2R1Y2VyOiAmc3RyLCBhcmdzOiBUb2tlblN0cmVhbSwgaW5wdXQ6IFRva2VuU3Ry ZWFtKSAtPiBUb2tlblN0cmVhbSB7CisrICAgIHRyeV9jZmcoaW50cm9kdWNlciwgYXJncywgaW5w dXQpLnVud3JhcF9vcl9lbHNlKEVycm9yOjppbnRvX2NvbXBpbGVfZXJyb3IpCisrfQorKworK2Zu IHRyeV9jZmcoaW50cm9kdWNlcjogJnN0ciwgYXJnczogVG9rZW5TdHJlYW0sIGlucHV0OiBUb2tl blN0cmVhbSkgLT4gUmVzdWx0PFRva2VuU3RyZWFtPiB7CisrICAgIGxldCBpbnRyb2R1Y2VyID0g SWRlbnQ6Om5ldyhpbnRyb2R1Y2VyLCBTcGFuOjpjYWxsX3NpdGUoKSk7CisrCisrICAgIGxldCBt dXQgZnVsbF9hcmdzID0gVG9rZW5TdHJlYW06OmZyb20oVG9rZW5UcmVlOjpJZGVudChpbnRyb2R1 Y2VyKSk7CisrICAgIGlmICFhcmdzLmlzX2VtcHR5KCkgeworKyAgICAgICAgZnVsbF9hcmdzLmV4 dGVuZChzdGQ6Oml0ZXI6Om9uY2UoVG9rZW5UcmVlOjpHcm91cChHcm91cDo6bmV3KAorKyAgICAg ICAgICAgIERlbGltaXRlcjo6UGFyZW50aGVzaXMsCisrICAgICAgICAgICAgYXJncywKKysgICAg ICAgICkpKSk7CisrICAgIH0KKysKKysgICAgbGV0IHJlZiBtdXQgZnVsbF9hcmdzID0gaXRlcjo6 bmV3KGZ1bGxfYXJncyk7CisrICAgIGxldCBleHByID0gZXhwcjo6cGFyc2UoZnVsbF9hcmdzKT87 CisrICAgIHRva2VuOjpwYXJzZV9lbmQoZnVsbF9hcmdzKT87CisrCisrICAgIGlmIGV4cHIuZXZh bChjcmF0ZTo6UlVTVFZFUlNJT04pIHsKKysgICAgICAgIE9rKGFsbG93X2luY29tcGF0aWJsZV9t c3J2KGlucHV0KSkKKysgICAgfSBlbHNlIHsKKysgICAgICAgIE9rKFRva2VuU3RyZWFtOjpuZXco KSkKKysgICAgfQorK30KKysKKytwdWIgZm4gdHJ5X2F0dHIoYXJnczogYXR0cjo6QXJncywgaW5w dXQ6IFRva2VuU3RyZWFtKSAtPiBSZXN1bHQ8VG9rZW5TdHJlYW0+IHsKKysgICAgaWYgIWFyZ3Mu Y29uZGl0aW9uLmV2YWwoY3JhdGU6OlJVU1RWRVJTSU9OKSB7CisrICAgICAgICByZXR1cm4gT2so aW5wdXQpOworKyAgICB9CisrCisrICAgIGxldCBvdXRwdXQgPSBtYXRjaCBhcmdzLnRoZW4gewor KyAgICAgICAgVGhlbjo6Q29uc3QoY29uc3RfdG9rZW4pID0+IGNvbnN0Zm46Omluc2VydF9jb25z dChpbnB1dCwgY29uc3RfdG9rZW4pPywKKysgICAgICAgIFRoZW46OkF0dHJpYnV0ZSh0aGVuKSA9 PiB7CisrICAgICAgICAgICAgVG9rZW5TdHJlYW06OmZyb21faXRlcigKKysgICAgICAgICAgICAg ICAgLy8gI1tjZmdfYXR0cihhbGwoKSwgI3RoZW4pXQorKyAgICAgICAgICAgICAgICB2ZWMhWwor KyAgICAgICAgICAgICAgICAgICAgVG9rZW5UcmVlOjpQdW5jdChQdW5jdDo6bmV3KCcjJywgU3Bh Y2luZzo6QWxvbmUpKSwKKysgICAgICAgICAgICAgICAgICAgIFRva2VuVHJlZTo6R3JvdXAoR3Jv dXA6Om5ldygKKysgICAgICAgICAgICAgICAgICAgICAgICBEZWxpbWl0ZXI6OkJyYWNrZXQsCisr ICAgICAgICAgICAgICAgICAgICAgICAgVG9rZW5TdHJlYW06OmZyb21faXRlcih2ZWMhWworKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICBUb2tlblRyZWU6OklkZW50KElkZW50OjpuZXcoImNm Z19hdHRyIiwgU3Bhbjo6Y2FsbF9zaXRlKCkpKSwKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgVG9rZW5UcmVlOjpHcm91cChHcm91cDo6bmV3KAorKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgRGVsaW1pdGVyOjpQYXJlbnRoZXNpcywKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFRva2VuU3RyZWFtOjpmcm9tX2l0ZXIoCisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgdmVjIVsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgVG9rZW5UcmVlOjpJZGVudChJZGVudDo6bmV3KCJhbGwiLCBTcGFuOjpjYWxsX3NpdGUo KSkpLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUb2tlblRyZWU6 Okdyb3VwKEdyb3VwOjpuZXcoCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBEZWxpbWl0ZXI6OlBhcmVudGhlc2lzLAorKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgVG9rZW5TdHJlYW06Om5ldygpLAorKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICApKSwKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgVG9rZW5UcmVlOjpQdW5jdChQdW5jdDo6bmV3KCcsJywgU3BhY2luZzo6 QWxvbmUpKSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdCisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmludG9faXRlcigpCisrICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgLmNoYWluKHRoZW4pLAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSksCisrICAg ICAgICAgICAgICAgICAgICAgICAgXSksCisrICAgICAgICAgICAgICAgICAgICApKSwKKysgICAg ICAgICAgICAgICAgXQorKyAgICAgICAgICAgICAgICAuaW50b19pdGVyKCkKKysgICAgICAgICAg ICAgICAgLmNoYWluKGlucHV0KSwKKysgICAgICAgICAgICApCisrICAgICAgICB9CisrICAgIH07 CisrCisrICAgIE9rKGFsbG93X2luY29tcGF0aWJsZV9tc3J2KG91dHB1dCkpCisrfQorKworK2Zu IGFsbG93X2luY29tcGF0aWJsZV9tc3J2KGlucHV0OiBUb2tlblN0cmVhbSkgLT4gVG9rZW5TdHJl YW0geworKyAgICBUb2tlblN0cmVhbTo6ZnJvbV9pdGVyKAorKyAgICAgICAgLy8gI1thbGxvdyhj bGlwcHk6OmluY29tcGF0aWJsZV9tc3J2KV0KKysgICAgICAgIHZlYyFbCisrICAgICAgICAgICAg VG9rZW5UcmVlOjpQdW5jdChQdW5jdDo6bmV3KCcjJywgU3BhY2luZzo6QWxvbmUpKSwKKysgICAg ICAgICAgICBUb2tlblRyZWU6Okdyb3VwKEdyb3VwOjpuZXcoCisrICAgICAgICAgICAgICAgIERl bGltaXRlcjo6QnJhY2tldCwKKysgICAgICAgICAgICAgICAgVG9rZW5TdHJlYW06OmZyb21faXRl cih2ZWMhWworKyAgICAgICAgICAgICAgICAgICAgVG9rZW5UcmVlOjpJZGVudChJZGVudDo6bmV3 KCJhbGxvdyIsIFNwYW46OmNhbGxfc2l0ZSgpKSksCisrICAgICAgICAgICAgICAgICAgICBUb2tl blRyZWU6Okdyb3VwKEdyb3VwOjpuZXcoCisrICAgICAgICAgICAgICAgICAgICAgICAgRGVsaW1p dGVyOjpQYXJlbnRoZXNpcywKKysgICAgICAgICAgICAgICAgICAgICAgICBUb2tlblN0cmVhbTo6 ZnJvbV9pdGVyKHZlYyFbCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRva2VuVHJlZTo6 SWRlbnQoSWRlbnQ6Om5ldygiY2xpcHB5IiwgU3Bhbjo6Y2FsbF9zaXRlKCkpKSwKKysgICAgICAg ICAgICAgICAgICAgICAgICAgICAgVG9rZW5UcmVlOjpQdW5jdChQdW5jdDo6bmV3KCc6JywgU3Bh Y2luZzo6Sm9pbnQpKSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgVG9rZW5UcmVlOjpQ dW5jdChQdW5jdDo6bmV3KCc6JywgU3BhY2luZzo6QWxvbmUpKSwKKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgVG9rZW5UcmVlOjpJZGVudChJZGVudDo6bmV3KCJpbmNvbXBhdGlibGVfbXNy diIsIFNwYW46OmNhbGxfc2l0ZSgpKSksCisrICAgICAgICAgICAgICAgICAgICAgICAgXSksCisr ICAgICAgICAgICAgICAgICAgICApKSwKKysgICAgICAgICAgICAgICAgXSksCisrICAgICAgICAg ICAgKSksCisrICAgICAgICBdCisrICAgICAgICAuaW50b19pdGVyKCkKKysgICAgICAgIC5jaGFp bihpbnB1dCksCisrICAgICkKKyt9CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9ydXN0 dmVyc2lvbi9zcmMvZXhwci5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcnVzdHZlcnNpb24vc3JjL2V4 cHIucnMKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CistLS0gL2Rldi9udWxsCisrKysgYi90aGlyZF9w YXJ0eS9ydXN0L3J1c3R2ZXJzaW9uL3NyYy9leHByLnJzCitAQCAtMCwwICsxLDE2MyBAQAorK3Vz ZSBjcmF0ZTo6Ym91bmQ6OntzZWxmLCBCb3VuZH07CisrdXNlIGNyYXRlOjpkYXRlOjp7c2VsZiwg RGF0ZX07CisrdXNlIGNyYXRlOjplcnJvcjo6e0Vycm9yLCBSZXN1bHR9OworK3VzZSBjcmF0ZTo6 aXRlcjo6e3NlbGYsIEl0ZXJ9OworK3VzZSBjcmF0ZTo6cmVsZWFzZTo6e3NlbGYsIFJlbGVhc2V9 OworK3VzZSBjcmF0ZTo6dG9rZW47CisrdXNlIGNyYXRlOjp2ZXJzaW9uOjp7Q2hhbm5lbCwgVmVy c2lvbn07CisrdXNlIHByb2NfbWFjcm86OntJZGVudCwgU3BhbiwgVG9rZW5UcmVlfTsKKysKKytw dWIgZW51bSBFeHByIHsKKysgICAgU3RhYmxlLAorKyAgICBCZXRhLAorKyAgICBOaWdodGx5LAor KyAgICBEYXRlKERhdGUpLAorKyAgICBTaW5jZShCb3VuZCksCisrICAgIEJlZm9yZShCb3VuZCks CisrICAgIFJlbGVhc2UoUmVsZWFzZSksCisrICAgIE5vdChCb3g8RXhwcj4pLAorKyAgICBBbnko VmVjPEV4cHI+KSwKKysgICAgQWxsKFZlYzxFeHByPiksCisrfQorKworK2ltcGwgRXhwciB7Cisr ICAgIHB1YiBmbiBldmFsKCZzZWxmLCBydXN0YzogVmVyc2lvbikgLT4gYm9vbCB7CisrICAgICAg ICB1c2Ugc2VsZjo6RXhwcjo6KjsKKysKKysgICAgICAgIG1hdGNoIHNlbGYgeworKyAgICAgICAg ICAgIFN0YWJsZSA9PiBydXN0Yy5jaGFubmVsID09IENoYW5uZWw6OlN0YWJsZSwKKysgICAgICAg ICAgICBCZXRhID0+IHJ1c3RjLmNoYW5uZWwgPT0gQ2hhbm5lbDo6QmV0YSwKKysgICAgICAgICAg ICBOaWdodGx5ID0+IG1hdGNoIHJ1c3RjLmNoYW5uZWwgeworKyAgICAgICAgICAgICAgICBDaGFu bmVsOjpOaWdodGx5KF8pIHwgQ2hhbm5lbDo6RGV2ID0+IHRydWUsCisrICAgICAgICAgICAgICAg IENoYW5uZWw6OlN0YWJsZSB8IENoYW5uZWw6OkJldGEgPT4gZmFsc2UsCisrICAgICAgICAgICAg fSwKKysgICAgICAgICAgICBEYXRlKGRhdGUpID0+IG1hdGNoIHJ1c3RjLmNoYW5uZWwgeworKyAg ICAgICAgICAgICAgICBDaGFubmVsOjpOaWdodGx5KHJ1c3RjKSA9PiBydXN0YyA9PSAqZGF0ZSwK KysgICAgICAgICAgICAgICAgQ2hhbm5lbDo6U3RhYmxlIHwgQ2hhbm5lbDo6QmV0YSB8IENoYW5u ZWw6OkRldiA9PiBmYWxzZSwKKysgICAgICAgICAgICB9LAorKyAgICAgICAgICAgIFNpbmNlKGJv dW5kKSA9PiBydXN0YyA+PSAqYm91bmQsCisrICAgICAgICAgICAgQmVmb3JlKGJvdW5kKSA9PiBy dXN0YyA8ICpib3VuZCwKKysgICAgICAgICAgICBSZWxlYXNlKHJlbGVhc2UpID0+IHsKKysgICAg ICAgICAgICAgICAgcnVzdGMuY2hhbm5lbCA9PSBDaGFubmVsOjpTdGFibGUKKysgICAgICAgICAg ICAgICAgICAgICYmIHJ1c3RjLm1pbm9yID09IHJlbGVhc2UubWlub3IKKysgICAgICAgICAgICAg ICAgICAgICYmIHJlbGVhc2UucGF0Y2gubWFwX29yKHRydWUsIHxwYXRjaHwgcnVzdGMucGF0Y2gg PT0gcGF0Y2gpCisrICAgICAgICAgICAgfQorKyAgICAgICAgICAgIE5vdChleHByKSA9PiAhZXhw ci5ldmFsKHJ1c3RjKSwKKysgICAgICAgICAgICBBbnkoZXhwcnMpID0+IGV4cHJzLml0ZXIoKS5h bnkofGV8IGUuZXZhbChydXN0YykpLAorKyAgICAgICAgICAgIEFsbChleHBycykgPT4gZXhwcnMu aXRlcigpLmFsbCh8ZXwgZS5ldmFsKHJ1c3RjKSksCisrICAgICAgICB9CisrICAgIH0KKyt9Cisr CisrcHViIGZuIHBhcnNlKGl0ZXI6IEl0ZXIpIC0+IFJlc3VsdDxFeHByPiB7CisrICAgIG1hdGNo ICZpdGVyLm5leHQoKSB7CisrICAgICAgICBTb21lKFRva2VuVHJlZTo6SWRlbnQoaSkpIGlmIGku dG9fc3RyaW5nKCkgPT0gInN0YWJsZSIgPT4gcGFyc2Vfc3RhYmxlKGl0ZXIpLAorKyAgICAgICAg U29tZShUb2tlblRyZWU6OklkZW50KGkpKSBpZiBpLnRvX3N0cmluZygpID09ICJiZXRhIiA9PiBP ayhFeHByOjpCZXRhKSwKKysgICAgICAgIFNvbWUoVG9rZW5UcmVlOjpJZGVudChpKSkgaWYgaS50 b19zdHJpbmcoKSA9PSAibmlnaHRseSIgPT4gcGFyc2VfbmlnaHRseShpdGVyKSwKKysgICAgICAg IFNvbWUoVG9rZW5UcmVlOjpJZGVudChpKSkgaWYgaS50b19zdHJpbmcoKSA9PSAic2luY2UiID0+ IHBhcnNlX3NpbmNlKGksIGl0ZXIpLAorKyAgICAgICAgU29tZShUb2tlblRyZWU6OklkZW50KGkp KSBpZiBpLnRvX3N0cmluZygpID09ICJiZWZvcmUiID0+IHBhcnNlX2JlZm9yZShpLCBpdGVyKSwK KysgICAgICAgIFNvbWUoVG9rZW5UcmVlOjpJZGVudChpKSkgaWYgaS50b19zdHJpbmcoKSA9PSAi bm90IiA9PiBwYXJzZV9ub3QoaSwgaXRlciksCisrICAgICAgICBTb21lKFRva2VuVHJlZTo6SWRl bnQoaSkpIGlmIGkudG9fc3RyaW5nKCkgPT0gImFueSIgPT4gcGFyc2VfYW55KGksIGl0ZXIpLAor KyAgICAgICAgU29tZShUb2tlblRyZWU6OklkZW50KGkpKSBpZiBpLnRvX3N0cmluZygpID09ICJh bGwiID0+IHBhcnNlX2FsbChpLCBpdGVyKSwKKysgICAgICAgIHVuZXhwZWN0ZWQgPT4geworKyAg ICAgICAgICAgIGxldCBzcGFuID0gdW5leHBlY3RlZAorKyAgICAgICAgICAgICAgICAuYXNfcmVm KCkKKysgICAgICAgICAgICAgICAgLm1hcF9vcl9lbHNlKFNwYW46OmNhbGxfc2l0ZSwgVG9rZW5U cmVlOjpzcGFuKTsKKysgICAgICAgICAgICBFcnIoRXJyb3I6Om5ldyhzcGFuLCAiZXhwZWN0ZWQg b25lIG9mIGBzdGFibGVgLCBgYmV0YWAsIGBuaWdodGx5YCwgYHNpbmNlYCwgYGJlZm9yZWAsIGBu b3RgLCBgYW55YCwgYGFsbGAiKSkKKysgICAgICAgIH0KKysgICAgfQorK30KKysKKytmbiBwYXJz ZV9uaWdodGx5KGl0ZXI6IEl0ZXIpIC0+IFJlc3VsdDxFeHByPiB7CisrICAgIGxldCBwYXJlbiA9 IG1hdGNoIHRva2VuOjpwYXJzZV9vcHRpb25hbF9wYXJlbihpdGVyKSB7CisrICAgICAgICBTb21l KGdyb3VwKSA9PiBncm91cCwKKysgICAgICAgIE5vbmUgPT4gcmV0dXJuIE9rKEV4cHI6Ok5pZ2h0 bHkpLAorKyAgICB9OworKworKyAgICBsZXQgcmVmIG11dCBpbm5lciA9IGl0ZXI6Om5ldyhwYXJl bi5zdHJlYW0oKSk7CisrICAgIGxldCBkYXRlID0gZGF0ZTo6cGFyc2UocGFyZW4sIGlubmVyKT87 CisrICAgIHRva2VuOjpwYXJzZV9vcHRpb25hbF9wdW5jdChpbm5lciwgJywnKTsKKysgICAgdG9r ZW46OnBhcnNlX2VuZChpbm5lcik/OworKworKyAgICBPayhFeHByOjpEYXRlKGRhdGUpKQorK30K KysKKytmbiBwYXJzZV9zdGFibGUoaXRlcjogSXRlcikgLT4gUmVzdWx0PEV4cHI+IHsKKysgICAg bGV0IHBhcmVuID0gbWF0Y2ggdG9rZW46OnBhcnNlX29wdGlvbmFsX3BhcmVuKGl0ZXIpIHsKKysg ICAgICAgIFNvbWUoZ3JvdXApID0+IGdyb3VwLAorKyAgICAgICAgTm9uZSA9PiByZXR1cm4gT2so RXhwcjo6U3RhYmxlKSwKKysgICAgfTsKKysKKysgICAgbGV0IHJlZiBtdXQgaW5uZXIgPSBpdGVy OjpuZXcocGFyZW4uc3RyZWFtKCkpOworKyAgICBsZXQgcmVsZWFzZSA9IHJlbGVhc2U6OnBhcnNl KHBhcmVuLCBpbm5lcik/OworKyAgICB0b2tlbjo6cGFyc2Vfb3B0aW9uYWxfcHVuY3QoaW5uZXIs ICcsJyk7CisrICAgIHRva2VuOjpwYXJzZV9lbmQoaW5uZXIpPzsKKysKKysgICAgT2soRXhwcjo6 UmVsZWFzZShyZWxlYXNlKSkKKyt9CisrCisrZm4gcGFyc2Vfc2luY2UoaW50cm9kdWNlcjogJklk ZW50LCBpdGVyOiBJdGVyKSAtPiBSZXN1bHQ8RXhwcj4geworKyAgICBsZXQgcGFyZW4gPSB0b2tl bjo6cGFyc2VfcGFyZW4oaW50cm9kdWNlciwgaXRlcik/OworKworKyAgICBsZXQgcmVmIG11dCBp bm5lciA9IGl0ZXI6Om5ldyhwYXJlbi5zdHJlYW0oKSk7CisrICAgIGxldCBib3VuZCA9IGJvdW5k OjpwYXJzZShwYXJlbiwgaW5uZXIpPzsKKysgICAgdG9rZW46OnBhcnNlX29wdGlvbmFsX3B1bmN0 KGlubmVyLCAnLCcpOworKyAgICB0b2tlbjo6cGFyc2VfZW5kKGlubmVyKT87CisrCisrICAgIE9r KEV4cHI6OlNpbmNlKGJvdW5kKSkKKyt9CisrCisrZm4gcGFyc2VfYmVmb3JlKGludHJvZHVjZXI6 ICZJZGVudCwgaXRlcjogSXRlcikgLT4gUmVzdWx0PEV4cHI+IHsKKysgICAgbGV0IHBhcmVuID0g dG9rZW46OnBhcnNlX3BhcmVuKGludHJvZHVjZXIsIGl0ZXIpPzsKKysKKysgICAgbGV0IHJlZiBt dXQgaW5uZXIgPSBpdGVyOjpuZXcocGFyZW4uc3RyZWFtKCkpOworKyAgICBsZXQgYm91bmQgPSBi b3VuZDo6cGFyc2UocGFyZW4sIGlubmVyKT87CisrICAgIHRva2VuOjpwYXJzZV9vcHRpb25hbF9w dW5jdChpbm5lciwgJywnKTsKKysgICAgdG9rZW46OnBhcnNlX2VuZChpbm5lcik/OworKworKyAg ICBPayhFeHByOjpCZWZvcmUoYm91bmQpKQorK30KKysKKytmbiBwYXJzZV9ub3QoaW50cm9kdWNl cjogJklkZW50LCBpdGVyOiBJdGVyKSAtPiBSZXN1bHQ8RXhwcj4geworKyAgICBsZXQgcGFyZW4g PSB0b2tlbjo6cGFyc2VfcGFyZW4oaW50cm9kdWNlciwgaXRlcik/OworKworKyAgICBsZXQgcmVm IG11dCBpbm5lciA9IGl0ZXI6Om5ldyhwYXJlbi5zdHJlYW0oKSk7CisrICAgIGxldCBleHByID0g c2VsZjo6cGFyc2UoaW5uZXIpPzsKKysgICAgdG9rZW46OnBhcnNlX29wdGlvbmFsX3B1bmN0KGlu bmVyLCAnLCcpOworKyAgICB0b2tlbjo6cGFyc2VfZW5kKGlubmVyKT87CisrCisrICAgIE9rKEV4 cHI6Ok5vdChCb3g6Om5ldyhleHByKSkpCisrfQorKworK2ZuIHBhcnNlX2FueShpbnRyb2R1Y2Vy OiAmSWRlbnQsIGl0ZXI6IEl0ZXIpIC0+IFJlc3VsdDxFeHByPiB7CisrICAgIGxldCBwYXJlbiA9 IHRva2VuOjpwYXJzZV9wYXJlbihpbnRyb2R1Y2VyLCBpdGVyKT87CisrCisrICAgIGxldCByZWYg bXV0IGlubmVyID0gaXRlcjo6bmV3KHBhcmVuLnN0cmVhbSgpKTsKKysgICAgbGV0IGV4cHJzID0g cGFyc2VfY29tbWFfc2VwYXJhdGVkKGlubmVyKT87CisrCisrICAgIE9rKEV4cHI6OkFueShleHBy cy5pbnRvX2l0ZXIoKS5jb2xsZWN0KCkpKQorK30KKysKKytmbiBwYXJzZV9hbGwoaW50cm9kdWNl cjogJklkZW50LCBpdGVyOiBJdGVyKSAtPiBSZXN1bHQ8RXhwcj4geworKyAgICBsZXQgcGFyZW4g PSB0b2tlbjo6cGFyc2VfcGFyZW4oaW50cm9kdWNlciwgaXRlcik/OworKworKyAgICBsZXQgcmVm IG11dCBpbm5lciA9IGl0ZXI6Om5ldyhwYXJlbi5zdHJlYW0oKSk7CisrICAgIGxldCBleHBycyA9 IHBhcnNlX2NvbW1hX3NlcGFyYXRlZChpbm5lcik/OworKworKyAgICBPayhFeHByOjpBbGwoZXhw cnMuaW50b19pdGVyKCkuY29sbGVjdCgpKSkKKyt9CisrCisrZm4gcGFyc2VfY29tbWFfc2VwYXJh dGVkKGl0ZXI6IEl0ZXIpIC0+IFJlc3VsdDxWZWM8RXhwcj4+IHsKKysgICAgbGV0IG11dCBleHBy cyA9IFZlYzo6bmV3KCk7CisrCisrICAgIHdoaWxlIGl0ZXIucGVlaygpLmlzX3NvbWUoKSB7Cisr ICAgICAgICBsZXQgZXhwciA9IHNlbGY6OnBhcnNlKGl0ZXIpPzsKKysgICAgICAgIGV4cHJzLnB1 c2goZXhwcik7CisrICAgICAgICBpZiBpdGVyLnBlZWsoKS5pc19ub25lKCkgeworKyAgICAgICAg ICAgIGJyZWFrOworKyAgICAgICAgfQorKyAgICAgICAgdG9rZW46OnBhcnNlX3B1bmN0KGl0ZXIs ICcsJyk/OworKyAgICB9CisrCisrICAgIE9rKGV4cHJzKQorK30KK2RpZmYgLS1naXQgYS90aGly ZF9wYXJ0eS9ydXN0L3J1c3R2ZXJzaW9uL3NyYy9pdGVyLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9y dXN0dmVyc2lvbi9zcmMvaXRlci5ycworbmV3IGZpbGUgbW9kZSAxMDA2NDQKKy0tLSAvZGV2L251 bGwKKysrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcnVzdHZlcnNpb24vc3JjL2l0ZXIucnMKK0BAIC0w LDAgKzEsNDIgQEAKKyt1c2UgcHJvY19tYWNybzo6e3Rva2VuX3N0cmVhbSwgRGVsaW1pdGVyLCBU b2tlblN0cmVhbSwgVG9rZW5UcmVlfTsKKysKKytwdWIgdHlwZSBJdGVyPCdhPiA9ICYnYSBtdXQg SXRlckltcGw7CisrCisrcHViIHN0cnVjdCBJdGVySW1wbCB7CisrICAgIHN0YWNrOiBWZWM8dG9r ZW5fc3RyZWFtOjpJbnRvSXRlcj4sCisrICAgIHBlZWtlZDogT3B0aW9uPFRva2VuVHJlZT4sCisr fQorKworK3B1YiBmbiBuZXcodG9rZW5zOiBUb2tlblN0cmVhbSkgLT4gSXRlckltcGwgeworKyAg ICBJdGVySW1wbCB7CisrICAgICAgICBzdGFjazogdmVjIVt0b2tlbnMuaW50b19pdGVyKCldLAor KyAgICAgICAgcGVla2VkOiBOb25lLAorKyAgICB9CisrfQorKworK2ltcGwgSXRlckltcGwgewor KyAgICBwdWIgZm4gcGVlaygmbXV0IHNlbGYpIC0+IE9wdGlvbjwmVG9rZW5UcmVlPiB7CisrICAg ICAgICBzZWxmLnBlZWtlZCA9IHNlbGYubmV4dCgpOworKyAgICAgICAgc2VsZi5wZWVrZWQuYXNf cmVmKCkKKysgICAgfQorK30KKysKKytpbXBsIEl0ZXJhdG9yIGZvciBJdGVySW1wbCB7CisrICAg IHR5cGUgSXRlbSA9IFRva2VuVHJlZTsKKysKKysgICAgZm4gbmV4dCgmbXV0IHNlbGYpIC0+IE9w dGlvbjxTZWxmOjpJdGVtPiB7CisrICAgICAgICBpZiBsZXQgU29tZSh0dCkgPSBzZWxmLnBlZWtl ZC50YWtlKCkgeworKyAgICAgICAgICAgIHJldHVybiBTb21lKHR0KTsKKysgICAgICAgIH0KKysg ICAgICAgIGxvb3AgeworKyAgICAgICAgICAgIGxldCB0b3AgPSBzZWxmLnN0YWNrLmxhc3RfbXV0 KCk/OworKyAgICAgICAgICAgIG1hdGNoIHRvcC5uZXh0KCkgeworKyAgICAgICAgICAgICAgICBO b25lID0+IGRyb3Aoc2VsZi5zdGFjay5wb3AoKSksCisrICAgICAgICAgICAgICAgIFNvbWUoVG9r ZW5UcmVlOjpHcm91cChyZWYgZ3JvdXApKSBpZiBncm91cC5kZWxpbWl0ZXIoKSA9PSBEZWxpbWl0 ZXI6Ok5vbmUgPT4geworKyAgICAgICAgICAgICAgICAgICAgc2VsZi5zdGFjay5wdXNoKGdyb3Vw LnN0cmVhbSgpLmludG9faXRlcigpKTsKKysgICAgICAgICAgICAgICAgfQorKyAgICAgICAgICAg ICAgICBTb21lKHR0KSA9PiByZXR1cm4gU29tZSh0dCksCisrICAgICAgICAgICAgfQorKyAgICAg ICAgfQorKyAgICB9CisrfQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcnVzdHZlcnNp b24vc3JjL2xpYi5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcnVzdHZlcnNpb24vc3JjL2xpYi5ycwor bmV3IGZpbGUgbW9kZSAxMDA2NDQKKy0tLSAvZGV2L251bGwKKysrKyBiL3RoaXJkX3BhcnR5L3J1 c3QvcnVzdHZlcnNpb24vc3JjL2xpYi5ycworQEAgLTAsMCArMSwyODEgQEAKKysvLyEgWyFbZ2l0 aHViXV0oaHR0cHM6Ly9naXRodWIuY29tL2R0b2xuYXkvcnVzdHZlcnNpb24pJmVuc3A7WyFbY3Jh dGVzLWlvXV0oaHR0cHM6Ly9jcmF0ZXMuaW8vY3JhdGVzL3J1c3R2ZXJzaW9uKSZlbnNwO1shW2Rv Y3MtcnNdXShodHRwczovL2RvY3MucnMvcnVzdHZlcnNpb24pCisrLy8hCisrLy8hIFtnaXRodWJd OiBodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL2dpdGh1Yi04ZGEwY2I/c3R5bGU9Zm9yLXRo ZS1iYWRnZSZsYWJlbENvbG9yPTU1NTU1NSZsb2dvPWdpdGh1YgorKy8vISBbY3JhdGVzLWlvXTog aHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9jcmF0ZXMuaW8tZmM4ZDYyP3N0eWxlPWZvci10 aGUtYmFkZ2UmbGFiZWxDb2xvcj01NTU1NTUmbG9nbz1ydXN0CisrLy8hIFtkb2NzLXJzXTogaHR0 cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9kb2NzLnJzLTY2YzJhNT9zdHlsZT1mb3ItdGhlLWJh ZGdlJmxhYmVsQ29sb3I9NTU1NTU1JmxvZ289ZG9jcy5ycworKy8vIQorKy8vISA8YnI+CisrLy8h CisrLy8hIFRoaXMgY3JhdGUgcHJvdmlkZXMgbWFjcm9zIGZvciBjb25kaXRpb25hbCBjb21waWxh dGlvbiBhY2NvcmRpbmcgdG8gcnVzdGMKKysvLyEgY29tcGlsZXIgdmVyc2lvbiwgYW5hbG9nb3Vz IHRvIFtgI1tjZmcoLi4uKV1gXVtjZmddIGFuZAorKy8vISBbYCNbY2ZnX2F0dHIoLi4uKV1gXVtj ZmdfYXR0cl0uCisrLy8hCisrLy8hIFtjZmddOiBodHRwczovL2RvYy5ydXN0LWxhbmcub3JnL3Jl ZmVyZW5jZS9jb25kaXRpb25hbC1jb21waWxhdGlvbi5odG1sI3RoZS1jZmctYXR0cmlidXRlCisr Ly8hIFtjZmdfYXR0cl06IGh0dHBzOi8vZG9jLnJ1c3QtbGFuZy5vcmcvcmVmZXJlbmNlL2NvbmRp dGlvbmFsLWNvbXBpbGF0aW9uLmh0bWwjdGhlLWNmZ19hdHRyLWF0dHJpYnV0ZQorKy8vIQorKy8v ISA8YnI+CisrLy8hCisrLy8hICMgU2VsZWN0b3JzCisrLy8hCisrLy8hIC0gPHAgc3R5bGU9Im1h cmdpbi1sZWZ0OjUwcHg7dGV4dC1pbmRlbnQ6LTUwcHgiPgorKy8vISAgIDxiPjxjb2RlIHN0eWxl PSJkaXNwbGF5OmlubGluZSI+I1tydXN0dmVyc2lvbjo6c3RhYmxlXTwvY29kZT48L2I+CisrLy8h ICAg4oCUPGJyPgorKy8vISAgIFRydWUgb24gYW55IHN0YWJsZSBjb21waWxlci4KKysvLyEgICA8 L3A+CisrLy8hCisrLy8hIC0gPHAgc3R5bGU9Im1hcmdpbi1sZWZ0OjUwcHg7dGV4dC1pbmRlbnQ6 LTUwcHgiPgorKy8vISAgIDxiPjxjb2RlIHN0eWxlPSJkaXNwbGF5OmlubGluZSI+I1tydXN0dmVy c2lvbjo6c3RhYmxlKDEuMzQpXTwvY29kZT48L2I+CisrLy8hICAg4oCUPGJyPgorKy8vISAgIFRy dWUgb24gZXhhY3RseSB0aGUgc3BlY2lmaWVkIHN0YWJsZSBjb21waWxlci4KKysvLyEgICA8L3A+ CisrLy8hCisrLy8hIC0gPHAgc3R5bGU9Im1hcmdpbi1sZWZ0OjUwcHg7dGV4dC1pbmRlbnQ6LTUw cHgiPgorKy8vISAgIDxiPjxjb2RlIHN0eWxlPSJkaXNwbGF5OmlubGluZSI+I1tydXN0dmVyc2lv bjo6YmV0YV08L2NvZGU+PC9iPgorKy8vISAgIOKAlDxicj4KKysvLyEgICBUcnVlIG9uIGFueSBi ZXRhIGNvbXBpbGVyLgorKy8vISAgIDwvcD4KKysvLyEKKysvLyEgLSA8cCBzdHlsZT0ibWFyZ2lu LWxlZnQ6NTBweDt0ZXh0LWluZGVudDotNTBweCI+CisrLy8hICAgPGI+PGNvZGUgc3R5bGU9ImRp c3BsYXk6aW5saW5lIj4jW3J1c3R2ZXJzaW9uOjpuaWdodGx5XTwvY29kZT48L2I+CisrLy8hICAg 4oCUPGJyPgorKy8vISAgIFRydWUgb24gYW55IG5pZ2h0bHkgY29tcGlsZXIgb3IgZGV2IGJ1aWxk LgorKy8vISAgIDwvcD4KKysvLyEKKysvLyEgLSA8cCBzdHlsZT0ibWFyZ2luLWxlZnQ6NTBweDt0 ZXh0LWluZGVudDotNTBweCI+CisrLy8hICAgPGI+PGNvZGUgc3R5bGU9ImRpc3BsYXk6aW5saW5l Ij4jW3J1c3R2ZXJzaW9uOjpuaWdodGx5KDIwMjUtMDEtMDEpXTwvY29kZT48L2I+CisrLy8hICAg 4oCUPGJyPgorKy8vISAgIFRydWUgb24gZXhhY3RseSBvbmUgbmlnaHRseS4KKysvLyEgICA8L3A+ CisrLy8hCisrLy8hIC0gPHAgc3R5bGU9Im1hcmdpbi1sZWZ0OjUwcHg7dGV4dC1pbmRlbnQ6LTUw cHgiPgorKy8vISAgIDxiPjxjb2RlIHN0eWxlPSJkaXNwbGF5OmlubGluZSI+I1tydXN0dmVyc2lv bjo6c2luY2UoMS4zNCldPC9jb2RlPjwvYj4KKysvLyEgICDigJQ8YnI+CisrLy8hICAgVHJ1ZSBv biB0aGF0IHN0YWJsZSByZWxlYXNlIGFuZCBhbnkgbGF0ZXIgY29tcGlsZXIsIGluY2x1ZGluZyBi ZXRhIGFuZAorKy8vISAgIG5pZ2h0bHkuCisrLy8hICAgPC9wPgorKy8vIQorKy8vISAtIDxwIHN0 eWxlPSJtYXJnaW4tbGVmdDo1MHB4O3RleHQtaW5kZW50Oi01MHB4Ij4KKysvLyEgICA8Yj48Y29k ZSBzdHlsZT0iZGlzcGxheTppbmxpbmUiPiNbcnVzdHZlcnNpb246OnNpbmNlKDIwMjUtMDEtMDEp XTwvY29kZT48L2I+CisrLy8hICAg4oCUPGJyPgorKy8vISAgIFRydWUgb24gdGhhdCBuaWdodGx5 IGFuZCBhbGwgbmV3ZXIgb25lcy4KKysvLyEgICA8L3A+CisrLy8hCisrLy8hIC0gPHAgc3R5bGU9 Im1hcmdpbi1sZWZ0OjUwcHg7dGV4dC1pbmRlbnQ6LTUwcHgiPgorKy8vISAgIDxiPjxjb2RlIHN0 eWxlPSJkaXNwbGF5OmlubGluZSI+I1tydXN0dmVyc2lvbjo6YmVmb3JlKDwvY29kZT48L2I+PGk+ dmVyc2lvbiBvciBkYXRlPC9pPjxiPjxjb2RlIHN0eWxlPSJkaXNwbGF5OmlubGluZSI+KV08L2Nv ZGU+PC9iPgorKy8vISAgIOKAlDxicj4KKysvLyEgICBOZWdhdGl2ZSBvZiA8aT4jW3J1c3R2ZXJz aW9uOjpzaW5jZSguLi4pXTwvaT4uCisrLy8hICAgPC9wPgorKy8vIQorKy8vISAtIDxwIHN0eWxl PSJtYXJnaW4tbGVmdDo1MHB4O3RleHQtaW5kZW50Oi01MHB4Ij4KKysvLyEgICA8Yj48Y29kZSBz dHlsZT0iZGlzcGxheTppbmxpbmUiPiNbcnVzdHZlcnNpb246Om5vdCg8L2NvZGU+PC9iPjxpPnNl bGVjdG9yPC9pPjxiPjxjb2RlIHN0eWxlPSJkaXNwbGF5OmlubGluZSI+KV08L2NvZGU+PC9iPgor Ky8vISAgIOKAlDxicj4KKysvLyEgICBOZWdhdGl2ZSBvZiBhbnkgc2VsZWN0b3I7IGZvciBleGFt cGxlIDxpPiNbcnVzdHZlcnNpb246Om5vdChuaWdodGx5KV08L2k+LgorKy8vISAgIDwvcD4KKysv LyEKKysvLyEgLSA8cCBzdHlsZT0ibWFyZ2luLWxlZnQ6NTBweDt0ZXh0LWluZGVudDotNTBweCI+ CisrLy8hICAgPGI+PGNvZGUgc3R5bGU9ImRpc3BsYXk6aW5saW5lIj4jW3J1c3R2ZXJzaW9uOjph bnkoPC9jb2RlPjwvYj48aT5zZWxlY3RvcnMuLi48L2k+PGI+PGNvZGUgc3R5bGU9ImRpc3BsYXk6 aW5saW5lIj4pXTwvY29kZT48L2I+CisrLy8hICAg4oCUPGJyPgorKy8vISAgIFRydWUgaWYgYW55 IG9mIHRoZSBjb21tYS1zZXBhcmF0ZWQgc2VsZWN0b3JzIGlzIHRydWU7IGZvciBleGFtcGxlCisr Ly8hICAgPGk+I1tydXN0dmVyc2lvbjo6YW55KHN0YWJsZSwgYmV0YSldPC9pPi4KKysvLyEgICA8 L3A+CisrLy8hCisrLy8hIC0gPHAgc3R5bGU9Im1hcmdpbi1sZWZ0OjUwcHg7dGV4dC1pbmRlbnQ6 LTUwcHgiPgorKy8vISAgIDxiPjxjb2RlIHN0eWxlPSJkaXNwbGF5OmlubGluZSI+I1tydXN0dmVy c2lvbjo6YWxsKDwvY29kZT48L2I+PGk+c2VsZWN0b3JzLi4uPC9pPjxiPjxjb2RlIHN0eWxlPSJk aXNwbGF5OmlubGluZSI+KV08L2NvZGU+PC9iPgorKy8vISAgIOKAlDxicj4KKysvLyEgICBUcnVl IGlmIGFsbCBvZiB0aGUgY29tbWEtc2VwYXJhdGVkIHNlbGVjdG9ycyBhcmUgdHJ1ZTsgZm9yIGV4 YW1wbGUKKysvLyEgICA8aT4jW3J1c3R2ZXJzaW9uOjphbGwoc2luY2UoMS4zMSksIGJlZm9yZSgx LjM0KSldPC9pPi4KKysvLyEgICA8L3A+CisrLy8hCisrLy8hIC0gPHAgc3R5bGU9Im1hcmdpbi1s ZWZ0OjUwcHg7dGV4dC1pbmRlbnQ6LTUwcHgiPgorKy8vISAgIDxiPjxjb2RlIHN0eWxlPSJkaXNw bGF5OmlubGluZSI+I1tydXN0dmVyc2lvbjo6YXR0cig8L2NvZGU+PC9iPjxpPnNlbGVjdG9yPC9p PjxiPjxjb2RlIHN0eWxlPSJkaXNwbGF5OmlubGluZSI+LCA8L2NvZGU+PC9iPjxpPmF0dHJpYnV0 ZTwvaT48Yj48Y29kZSBzdHlsZT0iZGlzcGxheTppbmxpbmUiPildPC9jb2RlPjwvYj4KKysvLyEg ICDigJQ8YnI+CisrLy8hICAgRm9yIGNvbmRpdGlvbmFsIGluY2x1c2lvbiBvZiBhdHRyaWJ1dGVz OyBhbmFsb2dvdXMgdG8KKysvLyEgICA8Y29kZSBzdHlsZT0iZGlzcGxheTppbmxpbmUiPmNmZ19h dHRyPC9jb2RlPi4KKysvLyEgICA8L3A+CisrLy8hCisrLy8hIC0gPHAgc3R5bGU9Im1hcmdpbi1s ZWZ0OjUwcHg7dGV4dC1pbmRlbnQ6LTUwcHgiPgorKy8vISAgIDxiPjxjb2RlIHN0eWxlPSJkaXNw bGF5OmlubGluZSI+cnVzdHZlcnNpb246OmNmZyEoPC9jb2RlPjwvYj48aT5zZWxlY3RvcjwvaT48 Yj48Y29kZSBzdHlsZT0iZGlzcGxheTppbmxpbmUiPik8L2NvZGU+PC9iPgorKy8vISAgIOKAlDxi cj4KKysvLyEgICBBbiBleHByZXNzaW9uIGZvcm0gb2YgYW55IG9mIHRoZSBhYm92ZSBhdHRyaWJ1 dGVzOyBmb3IgZXhhbXBsZQorKy8vISAgIDxpPmlmIHJ1c3R2ZXJzaW9uOjpjZmchKGFueShzdGFi bGUsIGJldGEpKSB7IC4uLiB9PC9pPi4KKysvLyEgICA8L3A+CisrLy8hCisrLy8hIDxicj4KKysv LyEKKysvLyEgIyBVc2UgY2FzZXMKKysvLyEKKysvLyEgUHJvdmlkaW5nIGFkZGl0aW9uYWwgdHJh aXQgaW1wbHMgYXMgdHlwZXMgYXJlIHN0YWJpbGl6ZWQgaW4gdGhlIHN0YW5kYXJkIGxpYnJhcnkK KysvLyEgd2l0aG91dCBicmVha2luZyBjb21wYXRpYmlsaXR5IHdpdGggb2xkZXIgY29tcGlsZXJz OyBpbiB0aGlzIGNhc2UgUGluXDxQXD4KKysvLyEgc3RhYmlsaXplZCBpbiBbUnVzdCAxLjMzXVtw aW5dOgorKy8vIQorKy8vISBbcGluXTogaHR0cHM6Ly9ibG9nLnJ1c3QtbGFuZy5vcmcvMjAxOS8w Mi8yOC9SdXN0LTEuMzMuMC5odG1sI3Bpbm5pbmcKKysvLyEKKysvLyEgYGBgCisrLy8hICMgdHJh aXQgTXlUcmFpdCB7fQorKy8vISAjCisrLy8hICNbcnVzdHZlcnNpb246OnNpbmNlKDEuMzMpXQor Ky8vISB1c2Ugc3RkOjpwaW46OlBpbjsKKysvLyEKKysvLyEgI1tydXN0dmVyc2lvbjo6c2luY2Uo MS4zMyldCisrLy8hIGltcGw8UDogTXlUcmFpdD4gTXlUcmFpdCBmb3IgUGluPFA+IHsKKysvLyEg ICAgIC8qIC4uLiAqLworKy8vISB9CisrLy8hIGBgYAorKy8vIQorKy8vISBTaW1pbGFyIGJ1dCBm b3IgbGFuZ3VhZ2UgZmVhdHVyZXM7IHRoZSBhYmlsaXR5IHRvIGNvbnRyb2wgYWxpZ25tZW50IGdy ZWF0ZXIgdGhhbgorKy8vISAxIG9mIHBhY2tlZCBzdHJ1Y3RzIHdhcyBzdGFiaWxpemVkIGluIFtS dXN0IDEuMzNdW3BhY2tlZF0uCisrLy8hCisrLy8hIFtwYWNrZWRdOiBodHRwczovL2dpdGh1Yi5j b20vcnVzdC1sYW5nL3J1c3QvYmxvYi9tYXN0ZXIvUkVMRUFTRVMubWQjdmVyc2lvbi0xMzMwLTIw MTktMDItMjgKKysvLyEKKysvLyEgYGBgCisrLy8hICNbcnVzdHZlcnNpb246OmF0dHIoYmVmb3Jl KDEuMzMpLCByZXByKHBhY2tlZCkpXQorKy8vISAjW3J1c3R2ZXJzaW9uOjphdHRyKHNpbmNlKDEu MzMpLCByZXByKHBhY2tlZCgyKSkpXQorKy8vISBzdHJ1Y3QgU2l4KGkxNiwgaTMyKTsKKysvLyEK KysvLyEgZm4gbWFpbigpIHsKKysvLyEgICAgIHByaW50bG4hKCJ7fSIsIHN0ZDo6bWVtOjphbGln bl9vZjo6PFNpeD4oKSk7CisrLy8hIH0KKysvLyEgYGBgCisrLy8hCisrLy8hIEF1Z21lbnRpbmcg Y29kZSB3aXRoIGBjb25zdGAgYXMgY29uc3QgaW1wbHMgYXJlIHN0YWJpbGl6ZWQgaW4gdGhlIHN0 YW5kYXJkCisrLy8hIGxpYnJhcnkuIFRoaXMgdXNlIG9mIGBjb25zdGAgYXMgYW4gYXR0cmlidXRl IGlzIHJlY29nbml6ZWQgYXMgYSBzcGVjaWFsIGNhc2UKKysvLyEgYnkgdGhlIHJ1c3R2ZXJzaW9u OjphdHRyIG1hY3JvLgorKy8vIQorKy8vISBgYGAKKysvLyEgdXNlIHN0ZDo6dGltZTo6RHVyYXRp b247CisrLy8hCisrLy8hICNbcnVzdHZlcnNpb246OmF0dHIoc2luY2UoMS4zMiksIGNvbnN0KV0K KysvLyEgZm4gZHVyYXRpb25fYXNfZGF5cyhkdXI6IER1cmF0aW9uKSAtPiB1NjQgeworKy8vISAg ICAgZHVyLmFzX3NlY3MoKSAvIDYwIC8gNjAgLyAyNAorKy8vISB9CisrLy8hIGBgYAorKy8vIQor Ky8vISBFbWl0dGluZyBDYXJnbyBjZmcgZGlyZWN0aXZlcyBmcm9tIGEgYnVpbGQgc2NyaXB0LiBO b3RlIHRoYXQgdGhpcyByZXF1aXJlcworKy8vISBsaXN0aW5nIGBydXN0dmVyc2lvbmAgdW5kZXIg YFtidWlsZC1kZXBlbmRlbmNpZXNdYCBpbiBDYXJnby50b21sLCBub3QKKysvLyEgYFtkZXBlbmRl bmNpZXNdYC4KKysvLyEKKysvLyEgYGBgCisrLy8hIC8vIGJ1aWxkLnJzCisrLy8hCisrLy8hIGZu IG1haW4oKSB7CisrLy8hICAgICBpZiBydXN0dmVyc2lvbjo6Y2ZnIShzaW5jZSgxLjM2KSkgewor Ky8vISAgICAgICAgIHByaW50bG4hKCJjYXJnbzpydXN0Yy1jZmc9bm9fc3RkIik7CisrLy8hICAg ICB9CisrLy8hIH0KKysvLyEgYGBgCisrLy8hCisrLy8hIGBgYAorKy8vISAvLyBzcmMvbGliLnJz CisrLy8hCisrLy8hICMhW2NmZ19hdHRyKG5vX3N0ZCwgbm9fc3RkKV0KKysvLyEKKysvLyEgI1tj Zmcobm9fc3RkKV0KKysvLyEgZXh0ZXJuIGNyYXRlIGFsbG9jOworKy8vISBgYGAKKysvLyEKKysv LyEgPGJyPgorKworKyMhW2RvYyhodG1sX3Jvb3RfdXJsID0gImh0dHBzOi8vZG9jcy5ycy9ydXN0 dmVyc2lvbi8xLjAuMjMiKV0KKysjIVthbGxvdygKKysgICAgY2xpcHB5OjpjYXN0X2xvc3NsZXNz LAorKyAgICBjbGlwcHk6OmNhc3RfcG9zc2libGVfdHJ1bmNhdGlvbiwKKysgICAgY2xpcHB5Ojpk ZXJpdmVfcGFydGlhbF9lcV93aXRob3V0X2VxLAorKyAgICBjbGlwcHk6OmRvY19tYXJrZG93biwK KysgICAgY2xpcHB5OjplbnVtX2dsb2JfdXNlLAorKyAgICAvLyBodHRwczovL2dpdGh1Yi5jb20v cnVzdC1sYW5nL3J1c3QtY2xpcHB5L2lzc3Vlcy84NTM5CisrICAgIGNsaXBweTo6aXRlcl93aXRo X2RyYWluLAorKyAgICBjbGlwcHk6Om1vZHVsZV9uYW1lX3JlcGV0aXRpb25zLAorKyAgICBjbGlw cHk6Om11c3RfdXNlX2NhbmRpZGF0ZSwKKysgICAgY2xpcHB5OjpuZWVkbGVzc19kb2N0ZXN0X21h aW4sCisrICAgIGNsaXBweTo6bmVlZGxlc3NfcGFzc19ieV92YWx1ZSwKKysgICAgY2xpcHB5Ojpy ZWR1bmRhbnRfZWxzZSwKKysgICAgY2xpcHB5Ojp0b3BsZXZlbF9yZWZfYXJnLAorKyAgICBjbGlw cHk6OnVucmVhZGFibGVfbGl0ZXJhbAorKyldCisrCisrZXh0ZXJuIGNyYXRlIHByb2NfbWFjcm87 CisrCisrbW9kIGF0dHI7CisrbW9kIGJvdW5kOworK21vZCBjb25zdGZuOworK21vZCBkYXRlOwor K21vZCBlcnJvcjsKKyttb2QgZXhwYW5kOworK21vZCBleHByOworK21vZCBpdGVyOworK21vZCBy ZWxlYXNlOworK21vZCB0aW1lOworK21vZCB0b2tlbjsKKyttb2QgdmVyc2lvbjsKKysKKyt1c2Ug Y3JhdGU6OmVycm9yOjpFcnJvcjsKKyt1c2UgY3JhdGU6OnZlcnNpb246OlZlcnNpb247CisrdXNl IHByb2NfbWFjcm86OlRva2VuU3RyZWFtOworKworKyNbY2ZnKG5vdChob3N0X29zID0gIndpbmRv d3MiKSldCisrY29uc3QgUlVTVFZFUlNJT046IFZlcnNpb24gPSBpbmNsdWRlIShjb25jYXQhKGVu diEoIk9VVF9ESVIiKSwgIi92ZXJzaW9uLmV4cHIiKSk7CisrCisrI1tjZmcoaG9zdF9vcyA9ICJ3 aW5kb3dzIildCisrY29uc3QgUlVTVFZFUlNJT046IFZlcnNpb24gPSBpbmNsdWRlIShjb25jYXQh KGVudiEoIk9VVF9ESVIiKSwgIlxcdmVyc2lvbi5leHByIikpOworKworKyNbcHJvY19tYWNyb19h dHRyaWJ1dGVdCisrcHViIGZuIHN0YWJsZShhcmdzOiBUb2tlblN0cmVhbSwgaW5wdXQ6IFRva2Vu U3RyZWFtKSAtPiBUb2tlblN0cmVhbSB7CisrICAgIGV4cGFuZDo6Y2ZnKCJzdGFibGUiLCBhcmdz LCBpbnB1dCkKKyt9CisrCisrI1twcm9jX21hY3JvX2F0dHJpYnV0ZV0KKytwdWIgZm4gYmV0YShh cmdzOiBUb2tlblN0cmVhbSwgaW5wdXQ6IFRva2VuU3RyZWFtKSAtPiBUb2tlblN0cmVhbSB7Cisr ICAgIGV4cGFuZDo6Y2ZnKCJiZXRhIiwgYXJncywgaW5wdXQpCisrfQorKworKyNbcHJvY19tYWNy b19hdHRyaWJ1dGVdCisrcHViIGZuIG5pZ2h0bHkoYXJnczogVG9rZW5TdHJlYW0sIGlucHV0OiBU b2tlblN0cmVhbSkgLT4gVG9rZW5TdHJlYW0geworKyAgICBleHBhbmQ6OmNmZygibmlnaHRseSIs IGFyZ3MsIGlucHV0KQorK30KKysKKysjW3Byb2NfbWFjcm9fYXR0cmlidXRlXQorK3B1YiBmbiBz aW5jZShhcmdzOiBUb2tlblN0cmVhbSwgaW5wdXQ6IFRva2VuU3RyZWFtKSAtPiBUb2tlblN0cmVh bSB7CisrICAgIGV4cGFuZDo6Y2ZnKCJzaW5jZSIsIGFyZ3MsIGlucHV0KQorK30KKysKKysjW3By b2NfbWFjcm9fYXR0cmlidXRlXQorK3B1YiBmbiBiZWZvcmUoYXJnczogVG9rZW5TdHJlYW0sIGlu cHV0OiBUb2tlblN0cmVhbSkgLT4gVG9rZW5TdHJlYW0geworKyAgICBleHBhbmQ6OmNmZygiYmVm b3JlIiwgYXJncywgaW5wdXQpCisrfQorKworKyNbcHJvY19tYWNyb19hdHRyaWJ1dGVdCisrcHVi IGZuIG5vdChhcmdzOiBUb2tlblN0cmVhbSwgaW5wdXQ6IFRva2VuU3RyZWFtKSAtPiBUb2tlblN0 cmVhbSB7CisrICAgIGV4cGFuZDo6Y2ZnKCJub3QiLCBhcmdzLCBpbnB1dCkKKyt9CisrCisrI1tw cm9jX21hY3JvX2F0dHJpYnV0ZV0KKytwdWIgZm4gYW55KGFyZ3M6IFRva2VuU3RyZWFtLCBpbnB1 dDogVG9rZW5TdHJlYW0pIC0+IFRva2VuU3RyZWFtIHsKKysgICAgZXhwYW5kOjpjZmcoImFueSIs IGFyZ3MsIGlucHV0KQorK30KKysKKysjW3Byb2NfbWFjcm9fYXR0cmlidXRlXQorK3B1YiBmbiBh bGwoYXJnczogVG9rZW5TdHJlYW0sIGlucHV0OiBUb2tlblN0cmVhbSkgLT4gVG9rZW5TdHJlYW0g eworKyAgICBleHBhbmQ6OmNmZygiYWxsIiwgYXJncywgaW5wdXQpCisrfQorKworKyNbcHJvY19t YWNyb19hdHRyaWJ1dGVdCisrcHViIGZuIGF0dHIoYXJnczogVG9rZW5TdHJlYW0sIGlucHV0OiBU b2tlblN0cmVhbSkgLT4gVG9rZW5TdHJlYW0geworKyAgICBhdHRyOjpwYXJzZShhcmdzKQorKyAg ICAgICAgLmFuZF90aGVuKHxhcmdzfCBleHBhbmQ6OnRyeV9hdHRyKGFyZ3MsIGlucHV0KSkKKysg ICAgICAgIC51bndyYXBfb3JfZWxzZShFcnJvcjo6aW50b19jb21waWxlX2Vycm9yKQorK30KKysK KysjW2NmZyhub3QoY2ZnX21hY3JvX25vdF9hbGxvd2VkKSldCisrI1twcm9jX21hY3JvXQorK3B1 YiBmbiBjZmcoaW5wdXQ6IFRva2VuU3RyZWFtKSAtPiBUb2tlblN0cmVhbSB7CisrICAgIHVzZSBw cm9jX21hY3JvOjp7SWRlbnQsIFNwYW4sIFRva2VuVHJlZX07CisrICAgICh8fCB7CisrICAgICAg ICBsZXQgcmVmIG11dCBhcmdzID0gaXRlcjo6bmV3KGlucHV0KTsKKysgICAgICAgIGxldCBleHBy ID0gZXhwcjo6cGFyc2UoYXJncyk/OworKyAgICAgICAgdG9rZW46OnBhcnNlX2VuZChhcmdzKT87 CisrICAgICAgICBsZXQgYm9vbGVhbiA9IGV4cHIuZXZhbChSVVNUVkVSU0lPTik7CisrICAgICAg ICBsZXQgaWRlbnQgPSBJZGVudDo6bmV3KCZib29sZWFuLnRvX3N0cmluZygpLCBTcGFuOjpjYWxs X3NpdGUoKSk7CisrICAgICAgICBPayhUb2tlblN0cmVhbTo6ZnJvbShUb2tlblRyZWU6OklkZW50 KGlkZW50KSkpCisrICAgIH0pKCkKKysgICAgLnVud3JhcF9vcl9lbHNlKEVycm9yOjppbnRvX2Nv bXBpbGVfZXJyb3IpCisrfQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcnVzdHZlcnNp b24vc3JjL3JlbGVhc2UucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3J1c3R2ZXJzaW9uL3NyYy9yZWxl YXNlLnJzCituZXcgZmlsZSBtb2RlIDEwMDY0NAorLS0tIC9kZXYvbnVsbAorKysrIGIvdGhpcmRf cGFydHkvcnVzdC9ydXN0dmVyc2lvbi9zcmMvcmVsZWFzZS5ycworQEAgLTAsMCArMSwzNCBAQAor K3VzZSBjcmF0ZTo6ZXJyb3I6OntFcnJvciwgUmVzdWx0fTsKKyt1c2UgY3JhdGU6Oml0ZXI6Okl0 ZXI7CisrdXNlIGNyYXRlOjp0b2tlbjsKKyt1c2UgcHJvY19tYWNybzo6R3JvdXA7CisrCisrI1tk ZXJpdmUoQ29weSwgQ2xvbmUsIERlYnVnLCBQYXJ0aWFsRXEsIEVxLCBQYXJ0aWFsT3JkLCBPcmQp XQorK3B1YiBzdHJ1Y3QgUmVsZWFzZSB7CisrICAgIHB1YiBtaW5vcjogdTE2LAorKyAgICBwdWIg cGF0Y2g6IE9wdGlvbjx1MTY+LAorK30KKysKKytwdWIgZm4gcGFyc2UocGFyZW46IEdyb3VwLCBp dGVyOiBJdGVyKSAtPiBSZXN1bHQ8UmVsZWFzZT4geworKyAgICB0cnlfcGFyc2UoaXRlcikubWFw X2Vycih8KCl8IEVycm9yOjpncm91cChwYXJlbiwgImV4cGVjdGVkIHJ1c3RjIHJlbGVhc2UgbnVt YmVyLCBsaWtlIDEuMzEiKSkKKyt9CisrCisrZm4gdHJ5X3BhcnNlKGl0ZXI6IEl0ZXIpIC0+IFJl c3VsdDxSZWxlYXNlLCAoKT4geworKyAgICBsZXQgbWFqb3JfbWlub3IgPSB0b2tlbjo6cGFyc2Vf bGl0ZXJhbChpdGVyKS5tYXBfZXJyKGRyb3ApPzsKKysgICAgbGV0IHN0cmluZyA9IG1ham9yX21p bm9yLnRvX3N0cmluZygpOworKworKyAgICBpZiAhc3RyaW5nLnN0YXJ0c193aXRoKCIxLiIpIHsK KysgICAgICAgIHJldHVybiBFcnIoKCkpOworKyAgICB9CisrCisrICAgIGxldCBtaW5vcjogdTE2 ID0gc3RyaW5nWzIuLl0ucGFyc2UoKS5tYXBfZXJyKGRyb3ApPzsKKysKKysgICAgbGV0IHBhdGNo ID0gaWYgdG9rZW46OnBhcnNlX29wdGlvbmFsX3B1bmN0KGl0ZXIsICcuJykuaXNfc29tZSgpIHsK KysgICAgICAgIGxldCBpbnQgPSB0b2tlbjo6cGFyc2VfbGl0ZXJhbChpdGVyKS5tYXBfZXJyKGRy b3ApPzsKKysgICAgICAgIFNvbWUoaW50LnRvX3N0cmluZygpLnBhcnNlKCkubWFwX2Vycihkcm9w KT8pCisrICAgIH0gZWxzZSB7CisrICAgICAgICBOb25lCisrICAgIH07CisrCisrICAgIE9rKFJl bGVhc2UgeyBtaW5vciwgcGF0Y2ggfSkKKyt9CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVz dC9ydXN0dmVyc2lvbi9zcmMvdGltZS5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcnVzdHZlcnNpb24v c3JjL3RpbWUucnMKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CistLS0gL2Rldi9udWxsCisrKysgYi90 aGlyZF9wYXJ0eS9ydXN0L3J1c3R2ZXJzaW9uL3NyYy90aW1lLnJzCitAQCAtMCwwICsxLDUxIEBA CisrdXNlIGNyYXRlOjpkYXRlOjpEYXRlOworK3VzZSBzdGQ6OmVudjsKKyt1c2Ugc3RkOjp0aW1l Ojp7U3lzdGVtVGltZSwgVU5JWF9FUE9DSH07CisrCisrLy8gVGltZXN0YW1wIG9mIDIwMTYtMDMt MDEgMDA6MDA6MDAgaW4gVVRDLgorK2NvbnN0IEJBU0U6IHU2NCA9IDE0NTY3OTA0MDA7CisrY29u c3QgQkFTRV9ZRUFSOiB1MTYgPSAyMDE2OworK2NvbnN0IEJBU0VfTU9OVEg6IHU4ID0gMzsKKysK KysvLyBEYXlzIGJldHdlZW4gbGVhcCBkYXlzLgorK2NvbnN0IENZQ0xFOiB1NjQgPSAzNjUgKiA0 ICsgMTsKKysKKytjb25zdCBEQVlTX0JZX01PTlRIOiBbdTg7IDEyXSA9IFszMSwgMjgsIDMxLCAz MCwgMzEsIDMwLCAzMSwgMzEsIDMwLCAzMSwgMzAsIDMxXTsKKysKKytwdWIgZm4gdG9kYXkoKSAt PiBEYXRlIHsKKysgICAgbGV0IGRlZmF1bHQgPSBEYXRlIHsKKysgICAgICAgIHllYXI6IDIwMjUs CisrICAgICAgICBtb250aDogMiwKKysgICAgICAgIGRheTogMjUsCisrICAgIH07CisrICAgIHRy eV90b2RheSgpLnVud3JhcF9vcihkZWZhdWx0KQorK30KKysKKytmbiB0cnlfdG9kYXkoKSAtPiBP cHRpb248RGF0ZT4geworKyAgICBpZiBsZXQgU29tZShwa2dfbmFtZSkgPSBlbnY6OnZhcl9vcygi Q0FSR09fUEtHX05BTUUiKSB7CisrICAgICAgICBpZiBwa2dfbmFtZS50b19zdHIoKSA9PSBTb21l KCJydXN0dmVyc2lvbi10ZXN0cyIpIHsKKysgICAgICAgICAgICByZXR1cm4gTm9uZTsgLy8gU3Rh YmxlIGRhdGUgZm9yIHVpIHRlc3RpbmcuCisrICAgICAgICB9CisrICAgIH0KKysKKysgICAgbGV0 IG5vdyA9IFN5c3RlbVRpbWU6Om5vdygpOworKyAgICBsZXQgc2luY2VfZXBvY2ggPSBub3cuZHVy YXRpb25fc2luY2UoVU5JWF9FUE9DSCkub2soKT87CisrICAgIGxldCBzZWNzID0gc2luY2VfZXBv Y2guYXNfc2VjcygpOworKworKyAgICBsZXQgYXBwcm94X2RheXMgPSBzZWNzLmNoZWNrZWRfc3Vi KEJBU0UpPyAvIDYwIC8gNjAgLyAyNDsKKysgICAgbGV0IGN5Y2xlID0gYXBwcm94X2RheXMgLyBD WUNMRTsKKysgICAgbGV0IG11dCByZW0gPSBhcHByb3hfZGF5cyAlIENZQ0xFOworKworKyAgICBs ZXQgbXV0IHllYXIgPSBCQVNFX1lFQVIgKyBjeWNsZSBhcyB1MTYgKiA0OworKyAgICBsZXQgbXV0 IG1vbnRoID0gQkFTRV9NT05USDsKKysgICAgbG9vcCB7CisrICAgICAgICBsZXQgZGF5c19pbl9t b250aCA9IERBWVNfQllfTU9OVEhbbW9udGggYXMgdXNpemUgLSAxXTsKKysgICAgICAgIGlmIHJl bSA8IGRheXNfaW5fbW9udGggYXMgdTY0IHsKKysgICAgICAgICAgICBsZXQgZGF5ID0gcmVtIGFz IHU4ICsgMTsKKysgICAgICAgICAgICByZXR1cm4gU29tZShEYXRlIHsgeWVhciwgbW9udGgsIGRh eSB9KTsKKysgICAgICAgIH0KKysgICAgICAgIHJlbSAtPSBkYXlzX2luX21vbnRoIGFzIHU2NDsK KysgICAgICAgIHllYXIgKz0gKG1vbnRoID09IDEyKSBhcyB1MTY7CisrICAgICAgICBtb250aCA9 IG1vbnRoICUgMTIgKyAxOworKyAgICB9CisrfQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1 c3QvcnVzdHZlcnNpb24vc3JjL3Rva2VuLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9ydXN0dmVyc2lv bi9zcmMvdG9rZW4ucnMKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CistLS0gL2Rldi9udWxsCisrKysg Yi90aGlyZF9wYXJ0eS9ydXN0L3J1c3R2ZXJzaW9uL3NyYy90b2tlbi5ycworQEAgLTAsMCArMSw3 OCBAQAorK3VzZSBjcmF0ZTo6ZXJyb3I6OntFcnJvciwgUmVzdWx0fTsKKyt1c2UgY3JhdGU6Oml0 ZXI6Okl0ZXI7CisrdXNlIHByb2NfbWFjcm86OntEZWxpbWl0ZXIsIEdyb3VwLCBJZGVudCwgTGl0 ZXJhbCwgU3BhbiwgVG9rZW5UcmVlfTsKKysKKytwdWIgZm4gcGFyc2VfcHVuY3QoaXRlcjogSXRl ciwgY2g6IGNoYXIpIC0+IFJlc3VsdDwoKT4geworKyAgICBtYXRjaCBpdGVyLm5leHQoKSB7Cisr ICAgICAgICBTb21lKFRva2VuVHJlZTo6UHVuY3QocmVmIHB1bmN0KSkgaWYgcHVuY3QuYXNfY2hh cigpID09IGNoID0+IE9rKCgpKSwKKysgICAgICAgIHVuZXhwZWN0ZWQgPT4geworKyAgICAgICAg ICAgIGxldCBzcGFuID0gdW5leHBlY3RlZAorKyAgICAgICAgICAgICAgICAuYXNfcmVmKCkKKysg ICAgICAgICAgICAgICAgLm1hcF9vcl9lbHNlKFNwYW46OmNhbGxfc2l0ZSwgVG9rZW5UcmVlOjpz cGFuKTsKKysgICAgICAgICAgICBFcnIoRXJyb3I6Om5ldyhzcGFuLCBmb3JtYXQhKCJleHBlY3Rl ZCBge31gIiwgY2gpKSkKKysgICAgICAgIH0KKysgICAgfQorK30KKysKKytwdWIgZm4gcGFyc2Vf b3B0aW9uYWxfcHVuY3QoaXRlcjogSXRlciwgY2g6IGNoYXIpIC0+IE9wdGlvbjwoKT4geworKyAg ICBtYXRjaCBpdGVyLnBlZWsoKSB7CisrICAgICAgICBTb21lKFRva2VuVHJlZTo6UHVuY3QocHVu Y3QpKSBpZiBwdW5jdC5hc19jaGFyKCkgPT0gY2ggPT4gaXRlci5uZXh0KCkubWFwKGRyb3ApLAor KyAgICAgICAgXyA9PiBOb25lLAorKyAgICB9CisrfQorKworK3B1YiBmbiBwYXJzZV9vcHRpb25h bF9rZXl3b3JkKGl0ZXI6IEl0ZXIsIGtleXdvcmQ6ICZzdHIpIC0+IE9wdGlvbjxTcGFuPiB7Cisr ICAgIG1hdGNoIGl0ZXIucGVlaygpIHsKKysgICAgICAgIFNvbWUoVG9rZW5UcmVlOjpJZGVudChp ZGVudCkpIGlmIGlkZW50LnRvX3N0cmluZygpID09IGtleXdvcmQgPT4geworKyAgICAgICAgICAg IFNvbWUoaXRlci5uZXh0KCkudW53cmFwKCkuc3BhbigpKQorKyAgICAgICAgfQorKyAgICAgICAg XyA9PiBOb25lLAorKyAgICB9CisrfQorKworK3B1YiBmbiBwYXJzZV9saXRlcmFsKGl0ZXI6IEl0 ZXIpIC0+IFJlc3VsdDxMaXRlcmFsPiB7CisrICAgIG1hdGNoIGl0ZXIubmV4dCgpIHsKKysgICAg ICAgIFNvbWUoVG9rZW5UcmVlOjpMaXRlcmFsKGxpdGVyYWwpKSA9PiBPayhsaXRlcmFsKSwKKysg ICAgICAgIHVuZXhwZWN0ZWQgPT4geworKyAgICAgICAgICAgIGxldCBzcGFuID0gdW5leHBlY3Rl ZAorKyAgICAgICAgICAgICAgICAuYXNfcmVmKCkKKysgICAgICAgICAgICAgICAgLm1hcF9vcl9l bHNlKFNwYW46OmNhbGxfc2l0ZSwgVG9rZW5UcmVlOjpzcGFuKTsKKysgICAgICAgICAgICBFcnIo RXJyb3I6Om5ldyhzcGFuLCAiZXhwZWN0ZWQgbGl0ZXJhbCIpKQorKyAgICAgICAgfQorKyAgICB9 CisrfQorKworK3B1YiBmbiBwYXJzZV9wYXJlbihpbnRyb2R1Y2VyOiAmSWRlbnQsIGl0ZXI6IEl0 ZXIpIC0+IFJlc3VsdDxHcm91cD4geworKyAgICBtYXRjaCBpdGVyLnBlZWsoKSB7CisrICAgICAg ICBTb21lKFRva2VuVHJlZTo6R3JvdXAoZ3JvdXApKSBpZiBncm91cC5kZWxpbWl0ZXIoKSA9PSBE ZWxpbWl0ZXI6OlBhcmVudGhlc2lzID0+IHsKKysgICAgICAgICAgICBtYXRjaCBpdGVyLm5leHQo KSB7CisrICAgICAgICAgICAgICAgIFNvbWUoVG9rZW5UcmVlOjpHcm91cChncm91cCkpID0+IE9r KGdyb3VwKSwKKysgICAgICAgICAgICAgICAgXyA9PiB1bnJlYWNoYWJsZSEoKSwKKysgICAgICAg ICAgICB9CisrICAgICAgICB9CisrICAgICAgICBTb21lKHVuZXhwZWN0ZWQpID0+IEVycihFcnJv cjo6bmV3KHVuZXhwZWN0ZWQuc3BhbigpLCAiZXhwZWN0ZWQgYChgIikpLAorKyAgICAgICAgTm9u ZSA9PiBFcnIoRXJyb3I6Om5ldygKKysgICAgICAgICAgICBpbnRyb2R1Y2VyLnNwYW4oKSwKKysg ICAgICAgICAgICBmb3JtYXQhKCJleHBlY3RlZCBgKGAgYWZ0ZXIgYHt9YCIsIGludHJvZHVjZXIp LAorKyAgICAgICAgKSksCisrICAgIH0KKyt9CisrCisrcHViIGZuIHBhcnNlX29wdGlvbmFsX3Bh cmVuKGl0ZXI6IEl0ZXIpIC0+IE9wdGlvbjxHcm91cD4geworKyAgICBtYXRjaCBpdGVyLnBlZWso KSB7CisrICAgICAgICBTb21lKFRva2VuVHJlZTo6R3JvdXAoZ3JvdXApKSBpZiBncm91cC5kZWxp bWl0ZXIoKSA9PSBEZWxpbWl0ZXI6OlBhcmVudGhlc2lzID0+IHsKKysgICAgICAgICAgICBtYXRj aCBpdGVyLm5leHQoKSB7CisrICAgICAgICAgICAgICAgIFNvbWUoVG9rZW5UcmVlOjpHcm91cChn cm91cCkpID0+IFNvbWUoZ3JvdXApLAorKyAgICAgICAgICAgICAgICBfID0+IHVucmVhY2hhYmxl ISgpLAorKyAgICAgICAgICAgIH0KKysgICAgICAgIH0KKysgICAgICAgIF8gPT4gTm9uZSwKKysg ICAgfQorK30KKysKKytwdWIgZm4gcGFyc2VfZW5kKGl0ZXI6IEl0ZXIpIC0+IFJlc3VsdDwoKT4g eworKyAgICBtYXRjaCBpdGVyLm5leHQoKSB7CisrICAgICAgICBOb25lID0+IE9rKCgpKSwKKysg ICAgICAgIFNvbWUodW5leHBlY3RlZCkgPT4gRXJyKEVycm9yOjpuZXcodW5leHBlY3RlZC5zcGFu KCksICJ1bmV4cGVjdGVkIHRva2VuIikpLAorKyAgICB9CisrfQorZGlmZiAtLWdpdCBhL3RoaXJk X3BhcnR5L3J1c3QvcnVzdHZlcnNpb24vc3JjL3ZlcnNpb24ucnMgYi90aGlyZF9wYXJ0eS9ydXN0 L3J1c3R2ZXJzaW9uL3NyYy92ZXJzaW9uLnJzCituZXcgZmlsZSBtb2RlIDEwMDY0NAorLS0tIC9k ZXYvbnVsbAorKysrIGIvdGhpcmRfcGFydHkvcnVzdC9ydXN0dmVyc2lvbi9zcmMvdmVyc2lvbi5y cworQEAgLTAsMCArMSwxOCBAQAorKyMhW2FsbG93KGRlYWRfY29kZSldCisrCisrdXNlIGNyYXRl OjpkYXRlOjpEYXRlOworKworKyNbZGVyaXZlKENvcHksIENsb25lLCBEZWJ1ZywgUGFydGlhbEVx KV0KKytwdWIgc3RydWN0IFZlcnNpb24geworKyAgICBwdWIgbWlub3I6IHUxNiwKKysgICAgcHVi IHBhdGNoOiB1MTYsCisrICAgIHB1YiBjaGFubmVsOiBDaGFubmVsLAorK30KKysKKysjW2Rlcml2 ZShDb3B5LCBDbG9uZSwgRGVidWcsIFBhcnRpYWxFcSldCisrcHViIGVudW0gQ2hhbm5lbCB7Cisr ICAgIFN0YWJsZSwKKysgICAgQmV0YSwKKysgICAgTmlnaHRseShEYXRlKSwKKysgICAgRGV2LAor K30KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3J1c3R2ZXJzaW9uL3Rlc3RzL2NvbXBp bGV0ZXN0LnJzIGIvdGhpcmRfcGFydHkvcnVzdC9ydXN0dmVyc2lvbi90ZXN0cy9jb21waWxldGVz dC5ycworbmV3IGZpbGUgbW9kZSAxMDA2NDQKKy0tLSAvZGV2L251bGwKKysrKyBiL3RoaXJkX3Bh cnR5L3J1c3QvcnVzdHZlcnNpb24vdGVzdHMvY29tcGlsZXRlc3QucnMKK0BAIC0wLDAgKzEsNyBA QAorKyNbcnVzdHZlcnNpb246OmF0dHIobm90KG5pZ2h0bHkpLCBpZ25vcmUgPSAicmVxdWlyZXMg bmlnaHRseSIpXQorKyNbY2ZnX2F0dHIobWlyaSwgaWdub3JlID0gImluY29tcGF0aWJsZSB3aXRo IG1pcmkiKV0KKysjW3Rlc3RdCisrZm4gdWkoKSB7CisrICAgIGxldCB0ID0gdHJ5YnVpbGQ6OlRl c3RDYXNlczo6bmV3KCk7CisrICAgIHQuY29tcGlsZV9mYWlsKCJ0ZXN0cy91aS8qLnJzIik7Cisr fQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcnVzdHZlcnNpb24vdGVzdHMvdGVzdF9j b25zdC5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcnVzdHZlcnNpb24vdGVzdHMvdGVzdF9jb25zdC5y cworbmV3IGZpbGUgbW9kZSAxMDA2NDQKKy0tLSAvZGV2L251bGwKKysrKyBiL3RoaXJkX3BhcnR5 L3J1c3QvcnVzdHZlcnNpb24vdGVzdHMvdGVzdF9jb25zdC5ycworQEAgLTAsMCArMSw0MiBAQAor KyMhW2FsbG93KAorKyAgICBjbGlwcHk6OnNlbWljb2xvbl9pZl9ub3RoaW5nX3JldHVybmVkLCAv LyBodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL3J1c3QtY2xpcHB5L2lzc3Vlcy83MzI0Cisr ICAgIGNsaXBweTo6dXNlZF91bmRlcnNjb3JlX2l0ZW1zLAorKyldCisrCisrI1tydXN0dmVyc2lv bjo6YXR0cihhbGwoKSwgY29uc3QpXQorK2ZuIF9iYXNpYygpIHt9CisrY29uc3QgX0JBU0lDOiAo KSA9IF9iYXNpYygpOworKworKyNbcnVzdHZlcnNpb246OmF0dHIoYWxsKCksIGNvbnN0KV0KKyt1 bnNhZmUgZm4gX3Vuc2FmZSgpIHt9CisrY29uc3QgX1VOU0FGRTogKCkgPSB1bnNhZmUgeyBfdW5z YWZlKCkgfTsKKysKKyttYWNyb19ydWxlcyEgaXRlbSB7CisrICAgICgkaTppdGVtKSA9PiB7Cisr ICAgICAgICAjW3J1c3R2ZXJzaW9uOjphdHRyKGFsbCgpLCBjb25zdCldCisrICAgICAgICAkaQor KyAgICB9OworK30KKysKKytpdGVtISB7Zm4gX2l0ZW0oKSB7fX0KKytjb25zdCBfSVRFTTogKCkg PSBfaXRlbSgpOworKworK21hY3JvX3J1bGVzISBpZGVudCB7CisrICAgICgkZm46aWRlbnQpID0+ IHsKKysgICAgICAgICNbcnVzdHZlcnNpb246OmF0dHIoYWxsKCksIGNvbnN0KV0KKysgICAgICAg ICRmbiBfaWRlbnQoKSB7fQorKyAgICB9OworK30KKysKKytpZGVudCEge2ZufQorK2NvbnN0IF9J REVOVDogKCkgPSBfaWRlbnQoKTsKKysKKysjW3J1c3R2ZXJzaW9uOjphdHRyKGFsbCgpLCBjb25z dCldCisrLy8vIGRvYworK2ZuIF9kb2NfYmVsb3coKSB7fQorK2NvbnN0IF9ET0NfQkVMT1c6ICgp ID0gX2RvY19iZWxvdygpOworKworKy8vLyBkb2MKKysjW3J1c3R2ZXJzaW9uOjphdHRyKGFsbCgp LCBjb25zdCldCisrZm4gX2RvY19hYm92ZSgpIHt9CisrY29uc3QgX0RPQ19BQk9WRTogKCkgPSBf ZG9jX2Fib3ZlKCk7CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9ydXN0dmVyc2lvbi90 ZXN0cy90ZXN0X2V2YWwucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3J1c3R2ZXJzaW9uL3Rlc3RzL3Rl c3RfZXZhbC5ycworbmV3IGZpbGUgbW9kZSAxMDA2NDQKKy0tLSAvZGV2L251bGwKKysrKyBiL3Ro aXJkX3BhcnR5L3J1c3QvcnVzdHZlcnNpb24vdGVzdHMvdGVzdF9ldmFsLnJzCitAQCAtMCwwICsx LDIwIEBACisrI1tydXN0dmVyc2lvbjo6YW55KAorKyAgICBzdGFibGUsCisrICAgIHN0YWJsZSgx LjM0KSwKKysgICAgc3RhYmxlKDEuMzQuMCksCisrICAgIGJldGEsCisrICAgIG5pZ2h0bHksCisr ICAgIG5pZ2h0bHkoMjAyMC0wMi0yNSksCisrICAgIHNpbmNlKDEuMzQpLAorKyAgICBzaW5jZSgy MDIwLTAyLTI1KSwKKysgICAgYmVmb3JlKDEuMzQpLAorKyAgICBiZWZvcmUoMjAyMC0wMi0yNSks CisrICAgIG5vdChuaWdodGx5KSwKKysgICAgYWxsKHN0YWJsZSwgYmV0YSwgbmlnaHRseSksCisr KV0KKytmbiBzdWNjZXNzKCkge30KKysKKysjW3Rlc3RdCisrZm4gdGVzdCgpIHsKKysgICAgc3Vj Y2VzcygpOworK30KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3J1c3R2ZXJzaW9uL3Rl c3RzL3Rlc3RfcGFyc2UucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3J1c3R2ZXJzaW9uL3Rlc3RzL3Rl c3RfcGFyc2UucnMKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CistLS0gL2Rldi9udWxsCisrKysgYi90 aGlyZF9wYXJ0eS9ydXN0L3J1c3R2ZXJzaW9uL3Rlc3RzL3Rlc3RfcGFyc2UucnMKK0BAIC0wLDAg KzEsMTAzIEBACisrIyFbYWxsb3coCisrICAgIGNsaXBweTo6ZGVyaXZlX3BhcnRpYWxfZXFfd2l0 aG91dF9lcSwKKysgICAgY2xpcHB5OjplbnVtX2dsb2JfdXNlLAorKyAgICBjbGlwcHk6Om11c3Rf dXNlX2NhbmRpZGF0ZQorKyldCisrCisraW5jbHVkZSEoIi4uL2J1aWxkL3J1c3RjLnJzIik7Cisr CisrI1t0ZXN0XQorK2ZuIHRlc3RfcGFyc2UoKSB7CisrICAgIGxldCBjYXNlcyA9ICZbCisrICAg ICAgICAoCisrICAgICAgICAgICAgInJ1c3RjIDEuMC4wIChhNTlkZTM3ZTkgMjAxNS0wNS0xMykg KGJ1aWx0IDIwMTUtMDUtMTQpIiwKKysgICAgICAgICAgICBWZXJzaW9uIHsKKysgICAgICAgICAg ICAgICAgbWlub3I6IDAsCisrICAgICAgICAgICAgICAgIHBhdGNoOiAwLAorKyAgICAgICAgICAg ICAgICBjaGFubmVsOiBTdGFibGUsCisrICAgICAgICAgICAgfSwKKysgICAgICAgICksCisrICAg ICAgICAoCisrICAgICAgICAgICAgInJ1c3RjIDEuMTguMCIsCisrICAgICAgICAgICAgVmVyc2lv biB7CisrICAgICAgICAgICAgICAgIG1pbm9yOiAxOCwKKysgICAgICAgICAgICAgICAgcGF0Y2g6 IDAsCisrICAgICAgICAgICAgICAgIGNoYW5uZWw6IFN0YWJsZSwKKysgICAgICAgICAgICB9LAor KyAgICAgICAgKSwKKysgICAgICAgICgKKysgICAgICAgICAgICAicnVzdGMgMS4yNC4xIChkM2Fl OWE5ZTAgMjAxOC0wMi0yNykiLAorKyAgICAgICAgICAgIFZlcnNpb24geworKyAgICAgICAgICAg ICAgICBtaW5vcjogMjQsCisrICAgICAgICAgICAgICAgIHBhdGNoOiAxLAorKyAgICAgICAgICAg ICAgICBjaGFubmVsOiBTdGFibGUsCisrICAgICAgICAgICAgfSwKKysgICAgICAgICksCisrICAg ICAgICAoCisrICAgICAgICAgICAgInJ1c3RjIDEuMzUuMC1iZXRhLjMgKGMxMzExNGRjOCAyMDE5 LTA0LTI3KSIsCisrICAgICAgICAgICAgVmVyc2lvbiB7CisrICAgICAgICAgICAgICAgIG1pbm9y OiAzNSwKKysgICAgICAgICAgICAgICAgcGF0Y2g6IDAsCisrICAgICAgICAgICAgICAgIGNoYW5u ZWw6IEJldGEsCisrICAgICAgICAgICAgfSwKKysgICAgICAgICksCisrICAgICAgICAoCisrICAg ICAgICAgICAgInJ1c3RjIDEuMzYuMC1uaWdodGx5ICg5MzhkNGZmZTEgMjAxOS0wNC0yNykiLAor KyAgICAgICAgICAgIFZlcnNpb24geworKyAgICAgICAgICAgICAgICBtaW5vcjogMzYsCisrICAg ICAgICAgICAgICAgIHBhdGNoOiAwLAorKyAgICAgICAgICAgICAgICBjaGFubmVsOiBOaWdodGx5 KERhdGUgeworKyAgICAgICAgICAgICAgICAgICAgeWVhcjogMjAxOSwKKysgICAgICAgICAgICAg ICAgICAgIG1vbnRoOiA0LAorKyAgICAgICAgICAgICAgICAgICAgZGF5OiAyNywKKysgICAgICAg ICAgICAgICAgfSksCisrICAgICAgICAgICAgfSwKKysgICAgICAgICksCisrICAgICAgICAoCisr ICAgICAgICAgICAgInJ1c3RjIDEuMzYuMC1kZXYiLAorKyAgICAgICAgICAgIFZlcnNpb24gewor KyAgICAgICAgICAgICAgICBtaW5vcjogMzYsCisrICAgICAgICAgICAgICAgIHBhdGNoOiAwLAor KyAgICAgICAgICAgICAgICBjaGFubmVsOiBEZXYsCisrICAgICAgICAgICAgfSwKKysgICAgICAg ICksCisrICAgICAgICAoCisrICAgICAgICAgICAgInJ1c3RjIDEuMzYuMC1uaWdodGx5IiwKKysg ICAgICAgICAgICBWZXJzaW9uIHsKKysgICAgICAgICAgICAgICAgbWlub3I6IDM2LAorKyAgICAg ICAgICAgICAgICBwYXRjaDogMCwKKysgICAgICAgICAgICAgICAgY2hhbm5lbDogRGV2LAorKyAg ICAgICAgICAgIH0sCisrICAgICAgICApLAorKyAgICAgICAgKAorKyAgICAgICAgICAgICJ3YXJu aW5nOiBpbnZhbGlkIGxvZ2dpbmcgc3BlYyAnd2FybmluZycsIGlnbm9yaW5nIGl0CisrICAgICAg ICAgICAgIHJ1c3RjIDEuMzAuMC1uaWdodGx5ICgzYmMyY2E3ZTQgMjAxOC0wOS0yMCkiLAorKyAg ICAgICAgICAgIFZlcnNpb24geworKyAgICAgICAgICAgICAgICBtaW5vcjogMzAsCisrICAgICAg ICAgICAgICAgIHBhdGNoOiAwLAorKyAgICAgICAgICAgICAgICBjaGFubmVsOiBOaWdodGx5KERh dGUgeworKyAgICAgICAgICAgICAgICAgICAgeWVhcjogMjAxOCwKKysgICAgICAgICAgICAgICAg ICAgIG1vbnRoOiA5LAorKyAgICAgICAgICAgICAgICAgICAgZGF5OiAyMCwKKysgICAgICAgICAg ICAgICAgfSksCisrICAgICAgICAgICAgfSwKKysgICAgICAgICksCisrICAgICAgICAoCisrICAg ICAgICAgICAgInJ1c3RjIDEuNTIuMS1uaWdodGx5IChnZW50b28pIiwKKysgICAgICAgICAgICBW ZXJzaW9uIHsKKysgICAgICAgICAgICAgICAgbWlub3I6IDUyLAorKyAgICAgICAgICAgICAgICBw YXRjaDogMSwKKysgICAgICAgICAgICAgICAgY2hhbm5lbDogRGV2LAorKyAgICAgICAgICAgIH0s CisrICAgICAgICApLAorKyAgICBdOworKworKyAgICBmb3IgKHN0cmluZywgZXhwZWN0ZWQpIGlu IGNhc2VzIHsKKysgICAgICAgIG1hdGNoIHBhcnNlKHN0cmluZykgeworKyAgICAgICAgICAgIFBh cnNlUmVzdWx0OjpTdWNjZXNzKHZlcnNpb24pID0+IGFzc2VydF9lcSEodmVyc2lvbiwgKmV4cGVj dGVkKSwKKysgICAgICAgICAgICBQYXJzZVJlc3VsdDo6T29wc0NsaXBweSB8IFBhcnNlUmVzdWx0 OjpPb3BzTWlyYWkgfCBQYXJzZVJlc3VsdDo6VW5yZWNvZ25pemVkID0+IHsKKysgICAgICAgICAg ICAgICAgcGFuaWMhKCJ1bnJlY29nbml6ZWQ6IHs6P30iLCBzdHJpbmcpOworKyAgICAgICAgICAg IH0KKysgICAgICAgIH0KKysgICAgfQorK30KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0 L3J1c3R2ZXJzaW9uL3Rlc3RzL3VpL2JhZC1ib3VuZC5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcnVz dHZlcnNpb24vdGVzdHMvdWkvYmFkLWJvdW5kLnJzCituZXcgZmlsZSBtb2RlIDEwMDY0NAorLS0t IC9kZXYvbnVsbAorKysrIGIvdGhpcmRfcGFydHkvcnVzdC9ydXN0dmVyc2lvbi90ZXN0cy91aS9i YWQtYm91bmQucnMKK0BAIC0wLDAgKzEsNyBAQAorKyNbcnVzdHZlcnNpb246OnNpbmNlKHN0YWJs ZSldCisrc3RydWN0IFM7CisrCisrI1tydXN0dmVyc2lvbjo6YW55KHNpbmNlKHN0YWJsZSkpXQor K3N0cnVjdCBTOworKworK2ZuIG1haW4oKSB7fQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1 c3QvcnVzdHZlcnNpb24vdGVzdHMvdWkvYmFkLWJvdW5kLnN0ZGVyciBiL3RoaXJkX3BhcnR5L3J1 c3QvcnVzdHZlcnNpb24vdGVzdHMvdWkvYmFkLWJvdW5kLnN0ZGVycgorbmV3IGZpbGUgbW9kZSAx MDA2NDQKKy0tLSAvZGV2L251bGwKKysrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcnVzdHZlcnNpb24v dGVzdHMvdWkvYmFkLWJvdW5kLnN0ZGVycgorQEAgLTAsMCArMSwxMSBAQAorK2Vycm9yOiBleHBl Y3RlZCBydXN0YyByZWxlYXNlIG51bWJlciBsaWtlIDEuODUsIG9yIG5pZ2h0bHkgZGF0ZSBsaWtl IDIwMjUtMDItMjUKKysgLS0+IHRlc3RzL3VpL2JhZC1ib3VuZC5yczoxOjIyCisrICB8CisrMSB8 ICNbcnVzdHZlcnNpb246OnNpbmNlKHN0YWJsZSldCisrICB8ICAgICAgICAgICAgICAgICAgICAg IF5eXl5eXgorKworK2Vycm9yOiBleHBlY3RlZCBydXN0YyByZWxlYXNlIG51bWJlciBsaWtlIDEu ODUsIG9yIG5pZ2h0bHkgZGF0ZSBsaWtlIDIwMjUtMDItMjUKKysgLS0+IHRlc3RzL3VpL2JhZC1i b3VuZC5yczo0OjI2CisrICB8CisrNCB8ICNbcnVzdHZlcnNpb246OmFueShzaW5jZShzdGFibGUp KV0KKysgIHwgICAgICAgICAgICAgICAgICAgICAgICAgIF5eXl5eXgorZGlmZiAtLWdpdCBhL3Ro aXJkX3BhcnR5L3J1c3QvcnVzdHZlcnNpb24vdGVzdHMvdWkvYmFkLWRhdGUucnMgYi90aGlyZF9w YXJ0eS9ydXN0L3J1c3R2ZXJzaW9uL3Rlc3RzL3VpL2JhZC1kYXRlLnJzCituZXcgZmlsZSBtb2Rl IDEwMDY0NAorLS0tIC9kZXYvbnVsbAorKysrIGIvdGhpcmRfcGFydHkvcnVzdC9ydXN0dmVyc2lv bi90ZXN0cy91aS9iYWQtZGF0ZS5ycworQEAgLTAsMCArMSw3IEBACisrI1tydXN0dmVyc2lvbjo6 bmlnaHRseShzdGFibGUpXQorK3N0cnVjdCBTOworKworKyNbcnVzdHZlcnNpb246OmFueShuaWdo dGx5KHN0YWJsZSkpXQorK3N0cnVjdCBTOworKworK2ZuIG1haW4oKSB7fQorZGlmZiAtLWdpdCBh L3RoaXJkX3BhcnR5L3J1c3QvcnVzdHZlcnNpb24vdGVzdHMvdWkvYmFkLWRhdGUuc3RkZXJyIGIv dGhpcmRfcGFydHkvcnVzdC9ydXN0dmVyc2lvbi90ZXN0cy91aS9iYWQtZGF0ZS5zdGRlcnIKK25l dyBmaWxlIG1vZGUgMTAwNjQ0CistLS0gL2Rldi9udWxsCisrKysgYi90aGlyZF9wYXJ0eS9ydXN0 L3J1c3R2ZXJzaW9uL3Rlc3RzL3VpL2JhZC1kYXRlLnN0ZGVycgorQEAgLTAsMCArMSwxMSBAQAor K2Vycm9yOiBleHBlY3RlZCBuaWdodGx5IGRhdGUsIGxpa2UgMjAyNS0wMi0yNQorKyAtLT4gdGVz dHMvdWkvYmFkLWRhdGUucnM6MToyNAorKyAgfAorKzEgfCAjW3J1c3R2ZXJzaW9uOjpuaWdodGx5 KHN0YWJsZSldCisrICB8ICAgICAgICAgICAgICAgICAgICAgICAgXl5eXl5eCisrCisrZXJyb3I6 IGV4cGVjdGVkIG5pZ2h0bHkgZGF0ZSwgbGlrZSAyMDI1LTAyLTI1CisrIC0tPiB0ZXN0cy91aS9i YWQtZGF0ZS5yczo0OjI4CisrICB8CisrNCB8ICNbcnVzdHZlcnNpb246OmFueShuaWdodGx5KHN0 YWJsZSkpXQorKyAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICBeXl5eXl4KK2RpZmYgLS1n aXQgYS90aGlyZF9wYXJ0eS9ydXN0L3J1c3R2ZXJzaW9uL3Rlc3RzL3VpL2JhZC1ub3QucnMgYi90 aGlyZF9wYXJ0eS9ydXN0L3J1c3R2ZXJzaW9uL3Rlc3RzL3VpL2JhZC1ub3QucnMKK25ldyBmaWxl IG1vZGUgMTAwNjQ0CistLS0gL2Rldi9udWxsCisrKysgYi90aGlyZF9wYXJ0eS9ydXN0L3J1c3R2 ZXJzaW9uL3Rlc3RzL3VpL2JhZC1ub3QucnMKK0BAIC0wLDAgKzEsNyBAQAorKyNbcnVzdHZlcnNp b246OmFueShub3QpXQorK3N0cnVjdCBTOworKworKyNbcnVzdHZlcnNpb246OmFueShub3QsIG5v dCldCisrc3RydWN0IFM7CisrCisrZm4gbWFpbigpIHt9CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFy dHkvcnVzdC9ydXN0dmVyc2lvbi90ZXN0cy91aS9iYWQtbm90LnN0ZGVyciBiL3RoaXJkX3BhcnR5 L3J1c3QvcnVzdHZlcnNpb24vdGVzdHMvdWkvYmFkLW5vdC5zdGRlcnIKK25ldyBmaWxlIG1vZGUg MTAwNjQ0CistLS0gL2Rldi9udWxsCisrKysgYi90aGlyZF9wYXJ0eS9ydXN0L3J1c3R2ZXJzaW9u L3Rlc3RzL3VpL2JhZC1ub3Quc3RkZXJyCitAQCAtMCwwICsxLDExIEBACisrZXJyb3I6IGV4cGVj dGVkIGAoYCBhZnRlciBgbm90YAorKyAtLT4gdGVzdHMvdWkvYmFkLW5vdC5yczoxOjIwCisrICB8 CisrMSB8ICNbcnVzdHZlcnNpb246OmFueShub3QpXQorKyAgfCAgICAgICAgICAgICAgICAgICAg Xl5eCisrCisrZXJyb3I6IGV4cGVjdGVkIGAoYAorKyAtLT4gdGVzdHMvdWkvYmFkLW5vdC5yczo0 OjIzCisrICB8CisrNCB8ICNbcnVzdHZlcnNpb246OmFueShub3QsIG5vdCldCisrICB8ICAgICAg ICAgICAgICAgICAgICAgICBeCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9ydXN0dmVy c2lvbi90ZXN0cy91aS9iYWQtdmVyc2lvbi5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcnVzdHZlcnNp b24vdGVzdHMvdWkvYmFkLXZlcnNpb24ucnMKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CistLS0gL2Rl di9udWxsCisrKysgYi90aGlyZF9wYXJ0eS9ydXN0L3J1c3R2ZXJzaW9uL3Rlc3RzL3VpL2JhZC12 ZXJzaW9uLnJzCitAQCAtMCwwICsxLDcgQEAKKysjW3J1c3R2ZXJzaW9uOjpzdGFibGUobmlnaHRs eSldCisrc3RydWN0IFM7CisrCisrI1tydXN0dmVyc2lvbjo6YW55KHN0YWJsZShuaWdodGx5KSld Cisrc3RydWN0IFM7CisrCisrZm4gbWFpbigpIHt9CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkv cnVzdC9ydXN0dmVyc2lvbi90ZXN0cy91aS9iYWQtdmVyc2lvbi5zdGRlcnIgYi90aGlyZF9wYXJ0 eS9ydXN0L3J1c3R2ZXJzaW9uL3Rlc3RzL3VpL2JhZC12ZXJzaW9uLnN0ZGVycgorbmV3IGZpbGUg bW9kZSAxMDA2NDQKKy0tLSAvZGV2L251bGwKKysrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcnVzdHZl cnNpb24vdGVzdHMvdWkvYmFkLXZlcnNpb24uc3RkZXJyCitAQCAtMCwwICsxLDExIEBACisrZXJy b3I6IGV4cGVjdGVkIHJ1c3RjIHJlbGVhc2UgbnVtYmVyLCBsaWtlIDEuMzEKKysgLS0+IHRlc3Rz L3VpL2JhZC12ZXJzaW9uLnJzOjE6MjMKKysgIHwKKysxIHwgI1tydXN0dmVyc2lvbjo6c3RhYmxl KG5pZ2h0bHkpXQorKyAgfCAgICAgICAgICAgICAgICAgICAgICAgXl5eXl5eXgorKworK2Vycm9y OiBleHBlY3RlZCBydXN0YyByZWxlYXNlIG51bWJlciwgbGlrZSAxLjMxCisrIC0tPiB0ZXN0cy91 aS9iYWQtdmVyc2lvbi5yczo0OjI3CisrICB8CisrNCB8ICNbcnVzdHZlcnNpb246OmFueShzdGFi bGUobmlnaHRseSkpXQorKyAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgIF5eXl5eXl4KK2Rp ZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3J1c3R2ZXJzaW9uL3Rlc3RzL3VpL2NvbnN0LW5v dC1mbi5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcnVzdHZlcnNpb24vdGVzdHMvdWkvY29uc3Qtbm90 LWZuLnJzCituZXcgZmlsZSBtb2RlIDEwMDY0NAorLS0tIC9kZXYvbnVsbAorKysrIGIvdGhpcmRf cGFydHkvcnVzdC9ydXN0dmVyc2lvbi90ZXN0cy91aS9jb25zdC1ub3QtZm4ucnMKK0BAIC0wLDAg KzEsNCBAQAorKyNbcnVzdHZlcnNpb246OmF0dHIoYWxsKCksIGNvbnN0KV0KKytwdWIgc3RydWN0 IFM7CisrCisrZm4gbWFpbigpIHt9CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9ydXN0 dmVyc2lvbi90ZXN0cy91aS9jb25zdC1ub3QtZm4uc3RkZXJyIGIvdGhpcmRfcGFydHkvcnVzdC9y dXN0dmVyc2lvbi90ZXN0cy91aS9jb25zdC1ub3QtZm4uc3RkZXJyCituZXcgZmlsZSBtb2RlIDEw MDY0NAorLS0tIC9kZXYvbnVsbAorKysrIGIvdGhpcmRfcGFydHkvcnVzdC9ydXN0dmVyc2lvbi90 ZXN0cy91aS9jb25zdC1ub3QtZm4uc3RkZXJyCitAQCAtMCwwICsxLDUgQEAKKytlcnJvcjogb25s eSBhbGxvd2VkIG9uIGEgZm4gaXRlbQorKyAtLT4gdGVzdHMvdWkvY29uc3Qtbm90LWZuLnJzOjE6 MjgKKysgIHwKKysxIHwgI1tydXN0dmVyc2lvbjo6YXR0cihhbGwoKSwgY29uc3QpXQorKyAgfCAg ICAgICAgICAgICAgICAgICAgICAgICAgICBeXl5eXgoKZGlmZiAtLWdpdCBhL3NlYW1vbmtleS5z cGVjIGIvc2VhbW9ua2V5LnNwZWMKaW5kZXggMjEzMzMwMi4uN2VlNDY5ZiAxMDA2NDQKLS0tIGEv c2VhbW9ua2V5LnNwZWMKKysrIGIvc2VhbW9ua2V5LnNwZWMKQEAgLTE4LDcgKzE4LDcgQEAKIAog JWdsb2JhbCBuc3ByX3ZlcnNpb24JNC4zNS4wCiAlZ2xvYmFsIG5zc192ZXJzaW9uCTMuMTEyLjAK LSVnbG9iYWwgbGlidnB4X3ZlcnNpb24JMS41LjAKKyVnbG9iYWwgbGlidnB4X3ZlcnNpb24JMS4x MC4wCiAlZ2xvYmFsIHdlYnBfdmVyc2lvbgkxLjAuMgogJWdsb2JhbCBpY3VfdmVyc2lvbgk2My4x CiAlZ2xvYmFsIGZmaV92ZXJzaW9uCTMuMC45CkBAIC0zNCw4ICszNCw4IEBACiAKIE5hbWU6ICAg ICAgICAgICBzZWFtb25rZXkKIFN1bW1hcnk6ICAgICAgICBXZWIgYnJvd3NlciwgZS1tYWlsLCBu ZXdzLCBJUkMgY2xpZW50LCBIVE1MIGVkaXRvcgotVmVyc2lvbjogICAgICAgIDIuNTMuMjMKLVJl bGVhc2U6ICAgICAgICAyJXs/ZGlzdH0KK1ZlcnNpb246ICAgICAgICAyLjUzLjI0CitSZWxlYXNl OiAgICAgICAgMSV7P2Rpc3R9CiBVUkw6ICAgICAgICAgICAgaHR0cDovL3d3dy5zZWFtb25rZXkt cHJvamVjdC5vcmcKIExpY2Vuc2U6ICAgICAgICBNUEwtMi4wCiAKQEAgLTU1LDcgKzU1LDYgQEAg UGF0Y2gzOgkJc2VhbW9ua2V5LTIuNTMuMTctbW96aWxsYS0xNTE2ODAzLnBhdGNoCiBQYXRjaDQ6 CQlzZWFtb25rZXktMi41My4xOC1tb3ppbGxhLTE4NjI2MDEucGF0Y2gKIFBhdGNoNToJCWZpcmVm b3gtMzUtcmhiei0xMTczMTU2LnBhdGNoCiBQYXRjaDc6CQlmaXJlZm94LTUxLW1vemlsbGEtMTAw NTY0MC5wYXRjaAotUGF0Y2g4OgkJc2VhbW9ua2V5LTIuNTMuMjItbW96aWxsYS0xODgyMjA5LnBh dGNoCiBQYXRjaDk6CQlzZWFtb25rZXktMi41My4xLW1vemlsbGEtcmV2ZXJ0LTEzMzIxMzkucGF0 Y2gKIFBhdGNoMTE6CXNlYW1vbmtleS0yLjUzLjE2LW1vemlsbGEtMTQzNDQ3OC5wYXRjaAogUGF0 Y2gxMzoJc2VhbW9ua2V5LTIuNTMuMTAtbW96aWxsYS0xNDYwMjk1LnBhdGNoCkBAIC04NCw2ICs4 MywxMiBAQCBQYXRjaDM5OglzZWFtb25rZXktMi41My44LjEtZGF0ZWZvcm1hdC5wYXRjaAogUGF0 Y2g0MDoJc2VhbW9ua2V5LTIuNTMuMTAtc2xvd3NjcmlwdC5wYXRjaAogUGF0Y2g0MjoJc2VhbW9u a2V5LTIuNTMuMTAtcG9zdG1lc3NhZ2UtZXZlbnQucGF0Y2gKIAorUGF0Y2g1MDoJc2VhbW9ua2V5 LTIuNTMuMjQtbW96aWxsYS0xODgyMjA5LnBhdGNoCitQYXRjaDUxOglzZWFtb25rZXktMi41My4y NC1tb3ppbGxhLTE4NjYxOTEucGF0Y2gKK1BhdGNoNTI6CXNlYW1vbmtleS0yLjUzLjI0LW1vemls bGEtMjAzMzI3OS5wYXRjaAorUGF0Y2g1MzoJc2VhbW9ua2V5LTIuNTMuMjQtcnVzdF92ZXJzaW9u LnBhdGNoCitQYXRjaDU0OglzZWFtb25rZXktMi41My4yNC1ydXN0X3UyZmhpZC5wYXRjaAorCiBQ YXRjaDYwOglzZWFtb25rZXktMi41My4xMS11YS11cGRhdGUucGF0Y2gKIFBhdGNoNjE6CXNlYW1v bmtleS0yLjUzLjEzLXVhLXVwZGF0ZS1wcmVsb2FkLnBhdGNoCiBQYXRjaDYyOglzZWFtb25rZXkt Mi41My4yMi1jb21wYXQtdmVyc2lvbi5wYXRjaApAQCAtMTgyLDcgKzE4Nyw2IEBAIGNwICV7U09V UkNFM30gR05VbWFrZWZpbGUKICV7P3dpdGhfc3lzdGVtX2ljdTolcGF0Y2ggNCAtcDEgLWIgLjE4 NjI2MDF9CiAlcGF0Y2ggNSAtcDIgLWIgLjExNzMxNTYKICVwYXRjaCA3IC1wMSAtYiAuMTAwNTY0 MAotJXBhdGNoIDggLXAxIC1iIC4xODgyMjA5CiAlez93aXRoX3N5c3RlbV9saWJ2cHg6JXBhdGNo IDkgLXAxIC1iIC4xMzMyMTM5fQogJXBhdGNoIDExIC1wMSAtYiAuMTQzNDQ3OAogJXBhdGNoIDEz IC1wMSAtYiAuMTQ2MDI5NQpAQCAtMjEyLDYgKzIxNiwxMiBAQCBjcCAle1NPVVJDRTN9IEdOVW1h a2VmaWxlCiAlcGF0Y2ggNDAgLXAwIC1iIC5zbG93c2NyaXB0CiAlcGF0Y2ggNDIgLXAxIC1iIC5w b3N0bWVzc2FnZS1ldmVudAogCislcGF0Y2ggNTAgLXAxCislcGF0Y2ggNTEgLXAxCislcGF0Y2gg NTIgLXAxCislcGF0Y2ggNTMgLXAxCislcGF0Y2ggNTQgLXAxCisKICVwYXRjaCA2MCAtcDEgLWIg LnVhLXVwZGF0ZQogJXBhdGNoIDYxIC1wMSAtYiAudWEtdXBkYXRlLXByZWxvYWQKICVwYXRjaCA2 MiAtcDEgLWIgLmNvbXBhdC12ZXJzaW9uCkBAIC0zMzcsNyArMzQ3LDcgQEAgcHJlZigiY2FsZW5k YXIudXNlcmFnZW50LmV4dHJhIiwgIiIsIGxvY2tlZCk7CiAKIC8qIENvbXBsZXRlbHkgbWltaWMg dG8gRmlyZWZveCBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIHRoaXMgV29ybGQgbm93YWRheXMuLi4g ICovCiBwcmVmKCJnZW5lcmFsLnVzZXJhZ2VudC5jb21wYXRNb2RlLnN0cmljdC1maXJlZm94Iiwg dHJ1ZSk7Ci1wcmVmKCJnZW5lcmFsLnVzZXJhZ2VudC5jb21wYXRNb2RlLnZlcnNpb24iLCAiMTI4 LjAiKTsKK3ByZWYoImdlbmVyYWwudXNlcmFnZW50LmNvbXBhdE1vZGUudmVyc2lvbiIsICIxNDAu MCIpOwogCiBwcmVmKCJuZXR3b3JrLmh0dHAuc2VuZE9yaWdpbkhlYWRlciIsIDEpOwogCkBAIC00 OTksNiArNTA5LDE1IEBAIG1rZGlyIC1wICRSUE1fQlVJTERfUk9PVCV7X2xpYmRpcn0vbW96aWxs YS9leHRlbnNpb25zLyV7c2VhbW9ua2V5X2FwcF9pZH0KIAogCiAlY2hhbmdlbG9nCisqIFRodSBK dWwgMzAgMjAyNiBEbWl0cnkgQnV0c2tveSA8RG1pdHJ5QEJ1dHNrb3kubmFtZT4gMi41My4yNC0x CistIHVwZGF0ZSB0byAyLjUzLjI0CisKKyogV2VkIEFwciAxNSAyMDI2IE5pY29sYXMgQ2hhdXZl dCA8a3dpemFydEBnbWFpbC5jb20+IC0gMi41My4yMy00CistIFJlYnVpbHQgZm9yIHZtYWYtMy4x LjAKKworKiBUaHUgTWFyIDE5IDIwMjYgTmljb2xhcyBDaGF1dmV0IDxrd2l6YXJ0QGdtYWlsLmNv bT4gLSAyLjUzLjIzLTMKKy0gUmVidWlsdCBmb3IgbGlidnB4LTEuMTYuMAorCiAqIFNhdCBKYW4g MTcgMjAyNiBGZWRvcmEgUmVsZWFzZSBFbmdpbmVlcmluZyA8cmVsZW5nQGZlZG9yYXByb2plY3Qu b3JnPiAtIDIuNTMuMjMtMgogLSBSZWJ1aWx0IGZvciBodHRwczovL2ZlZG9yYXByb2plY3Qub3Jn L3dpa2kvRmVkb3JhXzQ0X01hc3NfUmVidWlsZAogCgpkaWZmIC0tZ2l0IGEvc291cmNlcyBiL3Nv dXJjZXMKaW5kZXggYWNmZDJkNi4uOGZkMTc1YSAxMDA2NDQKLS0tIGEvc291cmNlcworKysgYi9z b3VyY2VzCkBAIC0xLDIgKzEsMiBAQAotU0hBNTEyIChzZWFtb25rZXktMi41My4yMy5zb3VyY2Uu dGFyLnh6KSA9IDU5MzUyNjYwZGFkNTNmZDRlMGQ5ODEwZDQyZGUwNTExNTM1NWE4NTc0NzZiYTk0 Njg4OTljZWZhZDE1YjI3OTk5ZTFmMjc5YWE0NTc3NTNlOWFkYjVkNjVkY2JiMzIxYzgwMDdjNDY3 YWMzMDlhZTMwOTY0YzI5MjYwOGZjMmI2Ci1TSEE1MTIgKHNlYW1vbmtleS0yLjUzLjIzLnNvdXJj ZS1sMTBuLnRhci54eikgPSAyN2ZhZTJmZjUzZTEzY2E0MjM3OGI4NWQxYzM0ZDNlYzVjNjE3NTNj NDAwOTYyZWRmNzMwOWE5MzI4ZDA2N2JiNmU3Y2I1OWFiZDI4NmIyZmY4N2Q0MzU0ZDJhNTg5MGJh NWNkNDMxMDEwNWM0YjE1YTQ5YzdiMzkyZDY5M2Q0MQorU0hBNTEyIChzZWFtb25rZXktMi41My4y NC5zb3VyY2UudGFyLnh6KSA9IGRhZDBjNWZlZjYxOTlhMjdhZjViYzk4YmE3M2U5YmY2ZjY0MDQw ZGEwMTBmNTViNDY4ZDJlZjU2ODU3NjA4OTM0NmIyMjgwZjFmNzQ3MzBlY2JiZGI4YzhmZjgxOTdm YTBmYmUzZjcyZjEyMzhkMDQ4OGZhMDhmNmZlOGMwOGJiCitTSEE1MTIgKHNlYW1vbmtleS0yLjUz LjI0LnNvdXJjZS1sMTBuLnRhci54eikgPSBhYTFjZGIxMzllZTgyNDFmMWJkMzhiMWRkY2ZlY2Ex ODA5ODczZGNmYjBhMzhhNDNlMmU0NjY3Njk1MzAyN2VjOWNkOGU3NDM1NGFiMjNjNmFiY2JiNTNm ZmFmNjBhZjc2NWU2MTZmOWRkZTc0MWZkZTI4MjQzMGJmNmJkZmQ0YQo=