From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-0.2 required=5.0 tests=ALL_TRUSTED, DKIM_ADSP_NXDOMAIN autolearn=no autolearn_force=no version=3.4.4 Received: (qmail 32081 invoked from network); 4 Oct 2022 12:19:30 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 4 Oct 2022 12:19:30 -0000 Content-Type: multipart/mixed; boundary="===============3450143608043496490==" MIME-Version: 1.0 Subject: =?utf8?q?Re=3A_=5BPR_PATCH=5D_=5BUpdated=5D_firefox-esr=3A_update_to_102=2E3=2E0=2E?= To: ml@inbox.vuxu.org From: Duncaen Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Tue, 04 Oct 2022 14:19:30 +0200 List-Id: Message-ID: <20221004121930.wqB_uGS9sCxNS6pBDWFav0E4zylVzFZ9nDRQhSRldzU@z> GitHub notification mails are now in MIME to allow UTF8. --===============3450143608043496490== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgRHVuY2FlbiBhZ2FpbnN0IG1hc3Rl ciBvbiB0aGUgdm9pZC1wYWNrYWdlcyByZXBvc2l0b3J5CgpodHRwczovL2dpdGh1Yi5jb20vRHVu Y2Flbi92b2lkLXBhY2thZ2VzIGZpcmVmb3gtZXNyLTEwMgpodHRwczovL2dpdGh1Yi5jb20vdm9p ZC1saW51eC92b2lkLXBhY2thZ2VzL3B1bGwvMzk2NzcKCmZpcmVmb3gtZXNyOiB1cGRhdGUgdG8g MTAyLjMuMC4KW2NpIHNraXBdDQoNCi0gW3hdIHg4Nl82NC1nbGliYw0KLSBbeF0geDg2XzY0LW11 c2wNCi0gW3hdIGk2ODYtZ2xpYmMNCi0gW3hdIGFhcmNoNjQtbXVzbA0KLSBbIF0gYXJtdjdsLWds aWJjCgpBIHBhdGNoIGZpbGUgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lk LXBhY2thZ2VzL3B1bGwvMzk2NzcucGF0Y2ggaXMgYXR0YWNoZWQ= --===============3450143608043496490== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-firefox-esr-102-39677.patch" RnJvbSBmYTI2MDE0ZGRlMmUwZTdkYWExNjIzOGIxYWFlYjE0OGY2M2MwNGM2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBvcmVvNjM5IDxvcmVvNjM5MUBnbWFpbC5jb20+CkRhdGU6IFRo dSwgOCBTZXAgMjAyMiAwMjoxMjowNiAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMS8yXSBmaXJlZm94 LWVzci1pMThuOiB1cGRhdGUgdG8gMTAyLjMuMC4KCi0tLQogc3JjcGtncy9maXJlZm94LWVzci1p MThuL3RlbXBsYXRlIHwgMTg4ICsrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLQogMSBmaWxl IGNoYW5nZWQsIDk0IGluc2VydGlvbnMoKyksIDk0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L3NyY3BrZ3MvZmlyZWZveC1lc3ItaTE4bi90ZW1wbGF0ZSBiL3NyY3BrZ3MvZmlyZWZveC1lc3It aTE4bi90ZW1wbGF0ZQppbmRleCA3NjUzMDNhOTMyMzYuLmM0ZTQzYzQ3ZGZmZCAxMDA2NDQKLS0t IGEvc3JjcGtncy9maXJlZm94LWVzci1pMThuL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZmlyZWZv eC1lc3ItaTE4bi90ZW1wbGF0ZQpAQCAtMSw2ICsxLDYgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3Ig J2ZpcmVmb3gtZXNyLWkxOG4nCiBwa2duYW1lPWZpcmVmb3gtZXNyLWkxOG4KLXZlcnNpb249OTEu MTAuMAordmVyc2lvbj0xMDIuMy4wCiByZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1tZXRhCiBzaG9y dF9kZXNjPSJGaXJlZm94IEVTUiBsYW5ndWFnZSBwYWNrcyIKQEAgLTEzNSw5NiArMTM1LDk2IEBA IF9wa2d0bXBsKCkgewogCX0KIH0KIAotY2hlY2tzdW09IjZiNDc2ODRkZTQyMTg3NDlkOTBhMDdi ODU4Y2EyOThiMDM0YTJjZGExMDY1NTk0MWU4YmE0Nzg5MWQwZDk1ZWQKLSA1NDg1MmVmOTM3Mzg3 Y2JhMzYwZmIyYmVkMzQ4YzliYzNmMTE1M2Y3MjQyYWQ1NDkxY2EwYjg1ZWU2ZWQ3NDU1Ci0gZGU2 NmUwMjYzZGQwYTJkODc1NTRmYTFkOWE0MDZkZWU1Y2IzZGYxYTc3NGRmZmI4NjM2ZTFiZTJiZDgw YmMxNAotIDFmNDgyNGFkNTFhNjYyMjg1YWMzYTBkODAyOTQ2MmEzYmYxMmIzNmViMDgzNGU2NWI5 Mjc2ZTA4NjkxMTVjMDkKLSBhMTZmYzZlMGExYmYyNTFhYjE5YjdiYmZiNjIwYjUzNDM3ZTViZjcx YjBlNzg3MWVkNDBhY2U4Yzk3ZGJmNjM1Ci0gZDkwNTdiYzcxNjA1ZjJhOTNkOTI0YmViMzc0OTcx OTViOGFkODM1MDFhYTRkMjExYWQ3MTEwNmU3YjliY2U0YQotIDM2MzE2YTdjNGNhODQ0YWMzZTgx YjJhMGJiOWVlNDk1MjAxN2MyZDI0MDRmNTI5ODQ4ZTI4MGQwNGEyMTU4OWIKLSAxNTBiYWZkMDIz OTMzNTU1NjdkNzViYjlmOTY2OTAwZTcwNTAyZmRkZGZmMjgyMmNiYmQzYmJjMWZiM2ZkNzg1Ci0g NWI2OWU3NjE2NjZiMjhlNTYwNGQ0Y2Y4YWJjNzJhY2YzYzNkNzlhYmViN2I2MjMwZTU2YWFhZTc3 NWVjMjI1YgotIGIwMDVjNjNkNWUwZDkzM2VmMWE0MTkzYjc1YTI5MWE2MTUyNGE5MzljMzQ2NWQ0 MWVkMTExNDE2MjEwZWI5N2YKLSBkNWEyZDJmYWZiZmM1MGUyM2Y1YjY4ZDMwZmNkNzM3NmQxMjdm OWY2OTdjODcyZDBkN2M4ZTE5ZWU0NTM4Y2IxCi0gMTZmODhlYzVkZTM5Zjk4MjA1N2FiY2YzNGYx N2IyMmM2OTg0NTNkZWJiNjJhNWExOGUwNDc1Nzk4ZmMxY2NhOQotIDg0ZDQ5MWY3M2JjNTNkYTQ2 MDVlZTQ1YTg2MzNmMTRlZTU2NzJiOWE2MWM0MDY4OWQ1ZTMyODk3NDRhN2NiMmQKLSA3NzgxYjZj Mjk5MjMzNjBmZDNhOTViZDJiMjUzMmViYTdmOTJiZWQyOTY0MGUwMjc2YzE2MWVhZGJlNTZhMTNm Ci0gNzk4NDkwNGVkZTM1ZGVmMzNjY2Y3M2ZkYTlhYTQ2Nzc3YzY3M2M0ZDI3ZGUzODA2ODczZDE3 Njk0ZjdmMGIxMwotIDRjNTdiNmViMWNkOTY4YmExZWI0YjQyN2JlZDY2YmFiMDRmYjQyNDI0ZDAz YWU0Yjg5MmZkMzY0OGUyNTViMmUKLSBhODBlOWUyYTYwNjJiZjY4MTA2YmExZDFiOGI3ZTJmZjYw OGNlNTJmYTU1ZDQzNTU4ZTdjMDczZWMxODcyNTE2Ci0gMmIwNDBmZjFkMDEwNTA4NzYwY2I0Y2U0 Yjc2Y2NlOWU5OGI0NjIwMjAzYzFlZjc3Zjg3YTMzNmNlZDBhZWZjNwotIDFmYTRmNWU1OWE5MzUy ZjE0YWVmZTBjZmY4ZThjNGVlZDRlYmExNmY0ZDhkYmNlYzY4NTBiY2UwMzUzMDFjMTgKLSAyZGEw YjA5YjliZjgwZjY2ZWRjNmUzZTlkNWMxYjc1ZmFlMTI5MDViNTE5M2NjNjRhNzNiYjhiZDdiZmNi YjA0Ci0gZGNlOTZjOWZjY2I4Yzg1N2Y4Y2MzNzBmN2Y1NjM1YjE0NzUxMzgxOTViMDVlOTQ0Nzgy YjA3MmJlZWJjOGQ0NAotIGU5MGRiZjg2YzE4MjNjMjA5ZGVmMTEwNTI5OTU4MzRlZDE1NTI4ZGM1 YzZkM2I1MDJlZDMxNWRkNDcxYTlkNWIKLSBmMzg2MjRjODFmMmY5ZGFjNGYwNWI5ZTlkNGQ2ZTdh NGUwMzgxYTI3OWUzYjRjNTM4MTFhZWIxZGIxM2NkMDAwCi0gMjIxYjdmNDAzMWE3YzEyMGQwY2E3 NTNkOTNjNDFjMThhYzRmOTUwMGFlNDI0Yzc5ODNlNDU5MzQ5N2RkYmJmOAotIDYwZjVjZWIyMTI4 N2E2Nzg2YTZkZDJkMTc3MzI1ZGZiY2M2Y2E3ZjlhNWRmMWI5Mjk5YTJjNWJiMDFkOWMxNzIKLSAz MDhjZTI1YTlhMGE5MDM4ZGQ5NGMyYzIyODg5YzU0ZGVmMzkzN2QzNWVhZmJjYjM0Yjc1MDI2Y2Yz ZGUzYjhmCi0gMmQzMzJhNmY1YmQ5MjAxNzcwMGExNWRhNWZlNTA2NjEyY2VhMDNiNDlmOTAzNTky ZmMxMDVmY2E5NzhjZDFkMwotIDVjZDM1NjY2ZjU0YTVhZTRlMzVhMWNhNGM2MjdjZWM4YTQ3NTk0 ZGE0MDgzYWRmNGYwNmRiZTMxYzIwYTc0NDQKLSAxYzEyNTI3NjVjYjI0ZjZhMDIwNmI2NDhkODM0 NTY2YWNhOTIyOTA3NWY3NDEzZjljN2RlZmYxOTQ5YTk5YzM3Ci0gMDAyNzcyYzQ2ZDZhNzE2MmUy YWRkNDcyNmYxMDVlNGMwZTM1NWJiYjg0Y2U5MWIwN2FiMDI5NjdjYzVmMWViNAotIDY0Y2UyYzA3 MzVjYWY5YjY3ZDJiZTAwM2IxZDY2N2JjZTVmZjYxNDY1MzE1MWM2MTdlNGQyNmUzNDkwMzNlM2EK LSA2MGJkNWYyNTMyNzAwYWU5MTM5ZDRkNTlhNTcxYjcyYjI4MDZlODA2MzBmZGRiNWY0NDQ0Yzdk NmUzNzdkMmRjCi0gMjc1MzMxN2I3NTgwZWUxYTM3NzI3NTkwNWUyNTQwODQyNjNkMGE4N2JkYTFi YjU3MjUzN2ZhNzU0ODlkOTJkYwotIDdmMWI3NGQyY2M1YTljNGM2Yzc4NjRhNjJlYWRlZjJiM2Q3 MmM1Y2MyMDEwZjVjMDNiY2UzYTlmYWUyMjg2ZGMKLSAyMjMyYzNiOWE4ZjMxMzE0NTk2NzE1MmJm MWRiYWZkNjIzMzU5M2NlYjQyMmQyYzMyNzdkMWI0Y2ZlY2I2ZjUwCi0gYzQxZTg2NmYzZmMzY2Yw ZTAwODg2ODFiNTViYjg0ODlkZTFjNTg0MGNhN2RjNTJkMWY0ZjA3N2I1MzQ1MmJkNQotIDVkNzg3 ZmQ2YTlhYTA2Y2UzMWE2ODIzYjMzOTNiYTdhZDY2Y2YzZDM3NGRkNmVhYWIzNjQ4MTAzZTgyNmEx MGIKLSA4ZDczZTAxNjU1YWY3MTE3ODU2Mzc0YmUzNjY5ZDUzMGFmOTZhNzljZGI4MjM4YmM5NTM2 ODhkNDVlOTQ1NjdjCi0gMDNmMmIxMzM3NDY3NDZjMzI4Y2I3ZTQwNTViNTY4ZDhlOTljZWE1MWM4 NDUxMzZjM2Y0NDQ2ODQwZDY4ZTMyZgotIDY5MWIwZTc2MGViZTUyNjlkZmE0YWE0ZWE4ZGQyMTM5 MjYwZmJiMGNhMzhhZjRjNTQzODU0OGI3YzdlZTg4ZjUKLSBjNjM0OTIyMzZlNzViZjk4NGExNjcx ZGU5NWRkZGM5NTRjMWI0YTFlOTJmNTIwMWM5YjMzM2ZhZWZhZTkzMDM1Ci0gZGY5YTAzNmM2N2Fl Y2IxZWE2NWY5NzA5YTExZjZjY2RmMjUzNDUxZGNiZTZiMjY3NDM3YzUxZjQyMmI5ZGYyZAotIDMy ZWM3OGE1MTQzOWIwMmYwODdjMTJjNmJlNGE5MTU5ODI2MTEzZTgzNzc0MDg1ZTgwMGMzN2I2ZDdj MTEyYWEKLSAxZTQ0ZTNkZWQ1YWEwN2Q0NGYzZmRlYThjZjY4YmIzM2ZkMjQzY2RhMTU5Mzg0ZWE4 Yjg3ZTc4M2VkNWM5YTY1Ci0gMWNhYzQ0Y2RlYzY4YjU2Yjc3YWJhMTM5YTg0MjVmNjA3YmFjMzRh ZTJlMDllMjdlY2ZmMjUyMmIxNmZlZjQ0ZAotIGFlZmI0ZmJhY2JkZmM3NDlhOGQ1ODg4ZjdhZjQ4 OTk5NDA2ZjIwNzg1MGZhZmFlOGVmMzljMDgzZTA4ZmE4MGMKLSA3NTNkYmNmZmRmNTRjZTM3ODdh OTM5NTE3YjA1OWYxMWMzMDVlZGMwMzViYzIyZjhhOWVmZWQ2MTQ1YWY2MzkxCi0gNmMzYmU1YWJh ZjM4NzgzOTBiMDc0OTcwMTMyYzRjYmE5MzVmNzE2MGYzNjVjZmE5OGEwN2U2Yjg4MjA4NGJkZAot IDBiNzc3MTk2NWYzNGM4OTBkZWEwZDIyOTBhMjgzMjEyYTFjZGMwYzhjODA0NGVjNjM0NjIyZDUy ZWI1OTVkZjkKLSAwOTEwZjk4YTg5YjcxMmE0MGFlYjQyNzYxZjI1Yzc2MzgxOGFmMDVlZGI1Yzk2 ZTJiNmNmYmEwMjNjMjhhYjczCi0gNzU4YWI2ZWExNTA3MDJlZTBkNjIwM2EwZjc1ZThiYWE1OTVj NGEwZjNkNGNiOWI4NzA3NmY3MzJhMGU0NTQ2ZgotIGQ0MjU5Mzc1ZjMyMWI5ODQyNjg4NWUwYjkw MzE5OWRjZTFmOTg4Yzc0OTYzMjk3YmJkMWEyYWE4Zjk0YjA1NDQKLSAxNjE0ZTEyODhmNmQ2Y2U0 M2E3MzQzNTg2MTQxZGY1ZTEyMWNmZjdmMWZkNzAzYWI0ZWM0MGE3ZjA3NDk4ODQzCi0gM2FlNTIx OWEzODRhODcyZmRiZGQ4Y2E1ZDk5YWQ1MzcwZTBkOGQ4N2Q5M2Y1ZTM5ZTk2YzVhMmRjMjY3MzZl MwotIDA1ODA3YjFjMTc4NDlmZmQyYTNhNjNiMWUyNjgxNWRjOTQ2M2FhM2MxMzdmNjQwMTEzNTMw ZDI2NjJkNjQxMTYKLSBlNGYzY2ZiMTFkZmFjOGVjNGNhZjI5ZjM0ZTIwYTBjMGJiNzk5NjQ5ZmQ1 YjUzNGYyMmYyMDJjMjM3NDkxZjdmCi0gODBiMmI2NDQ2NTkwYTlmYzU1ZWQ4MGE5ZTA3YjY1N2Nh ZmM1ZDUwMjk0OTg4OTc0NzQ3YzBlNjBkNDFmNTY5YgotIDFiMzJiYzEyODJkZWQ3ZjZmMGYwOTc5 Y2JjZTM0OTZlZDA3YjFmY2FkNjRlNzBiYmJjMmViNWQyYThmMzk1M2IKLSAwZjgwZTNiMGE5ZTE3 ZjM5NTYwYjdjYWQ4MjgwZTI1YzAyNzg5MzVmMTI1ZDhlNzI0YTIzODExMDJhYmZmNzgzCi0gZjI1 OWVlMjY4M2U1MjUwNTFkNmYzMTRkNGJhZTRhOThjMDQ4MmEyYTQ0M2FhYWMxMTYwYjJlMGMxMzI2 YjkzMQotIGI5YTllYWI0YzVlYTExMGNjYmNlMjBjYjg4ZTY2NTJlMmNmNGMyOGJmZDBhYTk1OTA3 MTQ4YmVmZDE5ODU0NGQKLSBhNWE2ZTliZGFhZDQyMGYyODFjZTVmZDE2ZGFiZjUzMzhkNDhjN2Nk ODUxOGMzOGIxZTEwMWI3OWI1MzBmZGI5Ci0gYTFmZTZhMmM3NjA2YjA3MjA5MzM0OTZjYWQyYmM5 NTk2OTM5MDVkYjg3YzNhMmU1MzEzZGI4MmRiZmViZGE3YwotIGQxYjIyYTQ5NWM2MzdkNTY1MmM4 NGFmZTg2NTBkODc2YjQyMDZmMmVhMGQ5Njc1MWJlYzY4NGVhNjMzMjdmOTgKLSBlMTU4N2RhYzA4 MjQ3OTgyMTY5N2Q5N2I0ZDVjYjYzYThkMWY5MTg5ZmRjMjA0ODg4NWQ5NjNhZWE5NWI4NDAwCi0g NmU0MGE1ZDVmMGNiODc5NGVkYzVmNmExZmFlNzc4ZDg5ZjZkYmQ5N2Q4YTI4ODIzNmQ3MmZhNTcx ZmZlOTFjOQotIDMzYjVkZjYyNWFlMTNlYzM1YjQxYmIzNTBlOWU2NmQ5Y2NjMDRmNGQ0ZDhjN2U0 NTAyMDM0NDczOTg4MWU2ZDgKLSBlMmYyNzE2OTFiYjFiOTg3MzU4MzE3NWZmMzAzYmJhYWYwNWE5 ZDEyMDdmYmU4ZmZmYzM0ZWM0YWJjZmMxNTQ1Ci0gMTMzODJkYWJjNjA0ZTk5NTUzYzk4YjllNDFl YjA0NmQ0Njg4YjE1ZjJlZTlkZDEyYzRmOWM4OTY3YWZhNjJkMQotIDc3MTMzYzY5OTY4MDczZmVj OTA5ZGJlOWU0NGQyZWFlYTAwMmNiMGQwZTE0MjEyNTg2NWQxYzAzYzg5ZWQ3M2QKLSBmODk5ODEy OGIwYzY1NmU3MjEyNGJhZWZmNDVjNzIwMTM5NTNmODMxNGFhNDk1OWI2ZmVmOGExYjMwMzk2NDdm Ci0gMmYyNGU1ZGIwMjVjMDMwMmZlM2I2OTZmMjgwZGNiYWI4MzcyOGFhY2NhZWZlMWZmMDgyZTE2 NTI3Njg5NjI5NgotIGQ2NTgwOTVmZDJkM2U0ZDNkZWNiOGMyY2RhYTY0ZjAyZmQ4YjY2M2JhNzEx ZmI5ZjIxMzBlZDdlZDJhOTcyOTEKLSA3YzI4YTgyZWNkZDYyMjY1M2IyNmE5ZGQwOTEzYWM3ZDdj ZWJlNzI0NmY2NDg3NGZlYTJkMWZhNGFmMzU0YzJhCi0gZjc4Njk0ZDQzODAzMmFmM2NhMWEyNjVh MDg5NDA3ZWIxMmI0MzFiZDMxNDE3NzY3MmE2NjMzOGI5YmY3MzkwZgotIGVhMmQ3NjliOTBhMDY0 MDBlYmEzZTFmNGVlYzU4MzQyZmU0NDUwZWNjZTM4YjFlNzIxOTIzYTY1YmVkMzQzMzcKLSA4ZWRm NWIwNGI2Y2I0NzdmNDgyYzE0ZWZkYmFkYTcwMjNmZjdhMGVmNTg0YTRjMzBiMjM1MGU3ODI1YTYx MmEwCi0gODUxZGI2MGEyMThjMzZiNjFlZTBhZGZjZGM0NzhiYzA1MWM5NWU0MWE0ZGJhNTRkNDM1 OTRiOGYwM2M2YjE4NwotIDZhZjcyY2FlN2Y3MmNlNjhjNjQ0ZDQ5YjZhNjIxOTQ1ZjVlOGY3OTEx OWE4NmJiNjdlZTE0NDU4NWY3MzQ5MjUKLSA3YjAxNzcxMDc4ZWM0NzViMDEwM2ZjYzQyMjJiMGI0 MGViOTJlYzY0MTgwYWFhZDAyZjI4NDZjZmRmYjNlMzE5Ci0gMGM0ZGY3OGVhZmJiZTdmZjk4ZDll ZmYwM2JiMjU4ZDFkMGY0NTkxMTAyMTQ3ZjY0M2VjMzk1NzExZjM1ZDk0MAotIGNmMjE0MzRmMjRl MjIxY2U1ODE4NGY0M2E1ODJjMTAxODdlY2ViN2E3MWRhNWQ4MTE1NmNjODcwZDc4YzFmNGMKLSA4 MzkwODhlMmYyM2Y2YzYyYzM4YzQ1ZDVmNzAxMjUxM2Q5NTAzNGFhNWU2YWIyODMwN2YxNTJkYmMx MGY5N2QzCi0gNDA1OGFlNmRkN2I1NTZiYWUyYzEzYmI2ZmEwYzVmMTYyMDdjNmZlZjRlMDgwMmQz ZDBiYWRhZTIxMDhhMGRhOAotIGQyYzQ3M2ZiOTNmMGM0ZGM2N2FlMThjMjVmZGM0MTQwNTZiZjc3 OTAzOGMwZjVkZDI1YWE2M2E5YTVjZmNkMGEKLSA2ZTMxYzc5Yjk5NTVmZDg3OTUyOGIwYTYxNDI5 NWRhNjlhYjI2YjYwODI3NTk0NmE0YTVhMjkxNzhhMmFlZDIwCi0gODUyZmU5YWIxNmQyOWY3Y2Y4 ZjQ0M2JmZDY1ZmExZDUyMmE5ZjI3ZWY4NzY2YWQ3MmEwYzIyYTY1NDUwZGMxOAotIDk0MTE4NzNi MWVhMDFhMWI4NjU2OTU3YWVkYjc5MTM3ZjRjMTg5YjljZDNlOTY2MjZjOGU1MDM1MzljZjJjNGIK LSA1ZjQzMTA2NDcyYWU2NmRjOGMwZmZjMzE3ZmFiYTA5YzIzNzBkNGYxODgzN2MzY2ZhZjA1ZWI5 YjAzZjMzYjkwCi0gMzBmM2Y1MDEzMzUzMmNlMzc5YjlkNWRkMGY3ZTgxMjA0OTA1ZThhNDNhMjdl OWQyYWMxYTI2MDU5ZTM5MzkxMwotIDI4NWY2MTVjYzg4NTJmZDc0YmQ3NjkzYTVhNDViMTA2ZjI5 M2MwYTJkODk4MzZlOWYyNTMzNmFjNjM3NmFmNjkKLSAxOTBhYzc5OTFhOGI1MDFmYWIyNjU0ZDIz YjVmNmYxZTdhNWYwY2ZlYjQwMmM4ZjVmZTM4MmQyNWMyMjIyZGM2Ci0gMmRlNzY3NmM3MTUwOGZm YmIzMzdiZGQ4Y2E2OGY5ZDJmYTFlMzBmMjNlOGJlMjgzYjkzN2M1YzRlMzBjNTlkNiIKK2NoZWNr c3VtPSI5M2RkMDMzNGQyNzU3MzFlYTRmODY3NTAwMTExZmUzODA1OGUzMzhiMzE1OTFmOGNlZTc0 MTMzYTU1ZmY0ZDQ2CisgZmEwZDBjMzg1MmUzMzgxNzFiNzYzZGQwZDQyNTQzZjcyYTBmMmEwZGEx ZTMyOWEzMTdmZDQwYWQ0ZjA0NmFiMAorIGY5MmZhMGM4NmFhZTQ5MTEyMTJkMjE5ZDAzY2VjZjIy NDNlNzgxZTE2NmRiZWJiODdlMmI5ODcyODMyNDU4ZDQKKyBkYTMwMDI3MzAzODg5YWI4MDc1NWYw ZDVjZGVjYzRjOGQzMWQ0ZmQ5YmU0MzVmYjhkYzU3OWZkNzE1NzQxMDI3CisgNzEwYWEyNjJhYWQz NTkxMjAzMzg3ZDA4YzIzYWViZmU4NjJkNjQ3MjJiZTc3ZjhmYjc2OGQ2ZWFlZjRkNmYwOQorIDE2 N2FhODllMzcwNmM1YzFlNTQ2OTRjNzZhN2Q2ZTEwYmFiZjVkYTE5NTNjZDFiZDQ5OTQ4M2ZjZjIy MDljYzQKKyAxZWJkYWYyYTY2NDVhNTczZGZmM2FkNTMwN2E3M2FkMGNkZGVmNDZiNDZlN2ViZDZi OTJhODBhMzYyYjdkNWQzCisgZGUyMDQ2NjUwMWRjYjc4ZmM1YTYxNjIxMDdlNzgzZjhkNjMxYTQ2 YzcyNmUxMTIyMmQ0Njc3OTQ1NTBmMWRjYworIDhmMTQwMjI2NjZlY2QzYjYwY2Q4ZGRhYjE2YWFk OTZlMzZlNTYwMmM5MzE0NjcyNWQzNmRlMjQ1MzY4NTRjNjUKKyA1NjMwMzk0MWEzYzhjOTU1YTA3 OTc2YzE0N2UzZjJkZjg0YTI4Mjk4NTU5OTFkYWUzYjU3OGI2ZmNlNWViYmM1CisgNmUxNjljZTFk MWViMTMyNzJjZDk3NTI0N2M3ZjI4N2NlZDFjZmQ1Nzk4MzhjMGYzMWVkN2ZhNGUwY2FiMzEwYQor IGE1OGJmNjIyNTAxYjZiOWU1ZDU1NWNhMDVmMTA3MmRhYWViNjViNGQ1MWM1OWM2ZDllMTQxOGIw OTkyM2U0ZTIKKyBlZjIxMDYxZWRiODU1ZmE1NWRlYzkxYjE2MDU5M2ZjZGJhMDczMzY1OWU5MTli MjU4MjY4ZjI0NmM0NzBkMTlkCisgMzNhZGNmYjQxZDlmYzhhMTllYTBlNzAxNzM2YTYyMzczOWMy NmU0NDRhZTNjZDA4YWI1ZjU4MWY0MGUwZTI0MgorIDI1ODUyMTY5OWQ3YjE5ZGFjMDIyZTFiMGRl ZmU0YTIzMjFlOGM2ZWEyNzdlYmMxOWFlNDU2MjIyNWEwNTI2YzEKKyA2MGI5MzQzYjU1NDVmYTRh OTQ1ZTI0YTM2Nzg2ZmJiMzJmZGM1OWViNGMzMGVhZDVlODA3OTdiM2Q3M2RlOTc3CisgZDc3ZTE1 M2Y1MGRlM2M3MGRmYjBmZDE0OTdhOGFkMjMwNjdiNTA4YzEzZmVhOGU1YzAyYWFmNTRiNmI3Mzcz MAorIGJmYjJiNDkwNDc1YzRkMGQ0OTI1NWViOWJmODY4NmIxMGJlYmEzYzAzNzkzYzRmYmE3Y2Fh NzFmZWE4MmMyMDcKKyBiOTk2N2FkMDllOTRlMjM1NmRkMDA2NjZhMzU1NGRmOWY5ZTQ3YjI2YTJh NDJmZDBjYmJkYWRkYTg4YzJlZDQ4CisgZTYyYTQwNWU0OTg2MDBkYTkzNDMwNjYyNDJlNzFlZDVj MjAwOWIzNjczOWFiYmYxZjJiMjkxZTI1NDE3MDU5ZQorIDA1OWU0OTBmODU1M2YzZmIyNjIyMDk0 YzdlN2Q5ZjJmNmU4ZjFlNmIzZDgyZWM5YWEzZjQ0NDBmYjQ1NTU5YWIKKyBmODVkNzJkNjQ2ZWYw MTJmMWNhYjA3Nzg1MDc2OTI5MDUwN2U0YTQxOGNmZjUyZTg2MWUxMjUwMzA0OGQyMmU0CisgNjBk NmIxZTAzMzVkM2E2MTRjODAwYWI0ZDNmZmU1NWQxMjFjNmRlMTI4YWFjZDNiOGEzZTAzNjMxOWY3 NTI0MgorIGRjYTU0ODRhOTQ1NjkxNjJkYmUwNGQ5YWY5NGYzZTQ2MWIzMmUyMWZjZjJlZWUwMDBm ZjE1MWRkM2I3Nzk3YzUKKyBjYjA5MmMyYTY5MDBmNzdjNjEwODY4ODc2MDg2N2UyYTAxNmM3MGFi MjdjMzllZDI4YTE0MDI0N2MxMzcwMjYwCisgYjFmZmFiMzViNWI1ZTE2MzUxMjE0OGIxZWU0ZTRl Y2YzNTk2NjRmOTE5NjMyODM4M2VlMzYzOTE5MTcxMzFkOAorIGVmOGRmZDhjYzc4YTJlZDU1Yzkw ODIyMzZiYWJmYzI5ZjkwZjA5Nzg4NjRhZWY0ZWJiNzFjNTJjOThlNzM3MDIKKyBmYzFjNjE4MzNj YWEwY2Y4ZmMyNWRjMzE0OTk4ZjdkOWEzZmIyODI2MTljZGFmNjQ0MWNhZjE3ZmM3OThkYmIyCisg NmZlODY0YzlhOGJkNWIzZjc1ZjAwYWU5MjBmYjk5NTk5NzMwOThkZjgwMWIyOTA2ODM1NTBkMjg5 MTY4NjQxNQorIDNlYzEwYjllZDlmYjZmYTlkMTEwODQyNGY2YzE4ZjkyMDlmY2IwYjNmNWQ3YWU1 MTVmYThiNzg5NWNhY2Q4ZjcKKyA5NjliYmFlYzU2Y2Y3MjdiMWY0MTEzZDlkMDUyODhkNGU2MGRm YWZhNzFhYjM3OWIyZGYwODMxNDgxMmFiNTljCisgYzc2MmM3MjhjMTgzYjg1NjFjYThkNzhlOWY1 NjVjMzAyOWQ5MGRmYzc2Y2UwNGQyNjZkZTYxNGJmZWM3ZDBhZgorIGJjMGYxZTg0OTkxMGI3OGE3 OTBiNzZmNjMwZGM4OWU4NmU4MDc5MTRlNTc0NjRhOTE2ZWFhYjA4ZmQ4NjViOWQKKyA1NWIwN2U1 ZDYxZWY2NjhjN2U1M2I3MzcyZWI5NjQ5YzYyMmVmY2UxODUxZGMxMWNmZDk2NzUwMWE3NmFmY2Mx CisgNDdmOWYwM2VlMGFmYTRiZjc3ZDFjOTE0MDU3YjZiMTdlMDRiYWUxMmZjMDU5NTVlMjZkOGIz MDA4NzJiZDRhZAorIDcwMmNmN2JlNzAzYjBjZjllOGQ2ODIzYTU3OWRiNDhhZDQ1ZGQwN2U1NjU4 MjM3YjZkY2EyZWNmMzFkNzk3YTYKKyBjZGNhYTVjOWJlZDYxNWQ0MmMzMGUzY2I5MTE1NDhlNzg1 MGY4NTY2ZGZiNzZjODNlY2E2ZTdlMmMyOWQyYmE5CisgMDlmNWFiYjhkODlmZDJlMTJlOTJhOGI0 ODk4MzE5Y2U5MzcwODQxODM0OGZmZWYzMzZkNGIwMjgwOWZhMGNkMQorIDQwMzE1NzIwZTYyMjRl M2I5N2FkNGM4MmIxYzllMjcwNWUzZTFkNTExOTY3ZGI4MTg0ZmMwNDYzNDQwMmFhNzcKKyBiMTJh YmNjNTY5OTYxZDIxOTlkNGU2YmRkODk4ZDMxZDM0M2I5M2ViZGQxYTU0NzVmMjI0MWIwNzM5MWFh ZDMzCisgMTRjYzMzMDMzN2IzM2Q0MjczMTQxNzljY2ViNTFiMTFmYTgxZDUwMzE0YjgxNjI2NGM5 MDI5ZmMwOWIzZWZjNgorIDM4MzYzYmU5MGZlMDFlZTAyYjk3ZDJlYWM5YTA0YmQzZGM3MzIwOTli Nzg1NjFlNGNjNzNiNDBjNDk4MGEzNGQKKyBiNjYyNTE0NjYxZDI1NTFhY2U0MDA2MTRjOTA4YmQ1 ZWI1MTI5ODMwNmNjZTgwMWY4OGVkOWU1YmUyYjNjN2JiCisgOWEzODY1MmJjZWM5MjViM2MwNDY5 NGNhZTVlNjA4ODMxY2M3OGY1NmVmMjJlYjNjOGJiMTY0MmQwMTE2OGQ1NQorIDZmY2JjNmJlMTMz NmE3OGE3NTJlNTFhYWE0OGIwMmU2NDMxOTY5OWFiZGM2OTY1NTE5ODg3NDI2YzQ5NmM1NDUKKyA3 YzBhZmI3ZmM2YzEyYmUzNDBkZTU2NGJiYmM3M2JlNzcxZGMxMGU4Nzk4ZjFmZWEzYjcwMWQ1ZGI0 MWMzNGZhCisgMWM1MDg0OTMzNWViMWIxZWE5YjQ0MDQ3YzI5MjUwYzFiZmU1NTMzMGNhN2U5MzAx Y2M0ODdjNWQ5ODQ0MzU1YworIDAxNDQ4NThjNjlkZmFmMzBhYjA1MzQwOWZkZDM5MTFkODYxNWJi ZmZkMWQ2ODRhNjM3MmRjYmIzOGEzOWEyY2QKKyBiZTdiMzMxOTU1ZDUyMmNkYzhmN2VlZTc0YTZl OTdiNWNkYTA5NDVmZWU1MzYwNGIxODdiMzI2MjBmZTA0ZjdiCisgYzdkMWZiYmY2MTQ2MjJlMGU1 Y2MzNDdjYWI2MTI1OWJkODZiMWUzMTc4M2Q5ZWRmMWZkMmFmYTdjNzUzNTA1ZQorIDU5MjQzZmMy ZGU2Y2U0MmU0NzcwMDU3ZDljNzRjM2NhODViYWViZjE5NzdlOWU1YjU2OGU4YmM2YWRmZmVhNmYK KyAxZGE4OWZhODI2ZTc1MDhiODRjZjJjNTM1ZDQ3OTMzNWJjODkwZjMzM2ViYWNmNDEyYzY3OTJm MjZjMjY0MWIyCisgN2MwYzU2NTUwY2RmNjYzYjk0YTZmN2JmNWM3MWRiZThhNWYwOTY4NTY0ZDIy NDBmYTU5Yjc5YmFhZmRhYmEzZgorIDMwNWUzOThhNjQ0NDNkZDNiZDUwMjUwYzUwMjUxNjNmYjFi NzMyMGYzZDEzNDQ5M2I4ZmRkYzE5MjIyNTA2YWEKKyBmMzc4NjEyMDNhNjQwYjZiNmFlMDBlNDk5 YTE0ZTcxZTU4ZmEwNjQ4M2JmMjIzYmFmMWJkYmYyYTQ5MDcxN2NiCisgNjhjMmRiM2IyMTNjYTlj NTg2ZTc4NTQ4MTcwZDVkNzYzZDE3NzU5OTkyNzcwMjhhY2M0ZGUyNmY5NGEzOTZkOAorIDJjMjhh NmRjMWY4N2ZlMTI0YjRiMTUwNGVjODBhMDZjNWY1MTM3ODkxZmM1OTk0MzJiY2RiNGEwZDVhYTZl NDEKKyBmZGQ0Mzc3OTE1ZWYyMjAyMWQ3NjEwY2I1YTlkNmM5MWU1M2FjMTZlZWU5ZDYyNjhhN2M0 YzljMzU5YTQ1YTBhCisgOTk5ZjhjMmRiMGFiZjk3NDcyMmZjOTc4ZTdmNzM0NTdlNjc0YThmY2E5 YjRjZWQwNGU5MmUxNjNmZDg1OTdkYQorIDViZjczNzgwZTFmOTUzZjM0YzIzNjdmMGMyN2NhNzE3 YmFlZjE0YWFmNjQ1YzM4NTUyOWM2YzQyYTNhMWM3NmUKKyA4NDE0NTQ4NDk2NzkzMzhhZTQwZWVl MGQ3ZGM2M2M0MzdkYWJkNjc2YWFhYWNmY2YzMGRhZjA2Yzk1OTRjNzNjCisgOGIzZTlmMWE3M2I0 NTI5MDU2N2E5MmYwNDg5OGYzMDEzYjJiZTk4NWEzM2RlMTM2MDQwZjBiZDNkOGNhMzg3NAorIGI4 MGQxODBkYWNhMmQ5MjBlODZhOTExNTY2ZmRhYTFkZDFmZDhmYjM4NzBhNzVlMGFmNGUyMDhhMDVl OTdlOWMKKyA2M2E4OGI2YjJkYjE0MDM3Zjk0M2I3YmMyOGNmZDQxYzJjYjI5NjY2ZDM0ZDRjZjZj MTkyNjZmODMyMzQzNmZkCisgMDQ0OTRhOWIxMWI2NWNlMjQ2MDQ4NTI1MWMwYmI5MDc2YmFmZWZh MGUwOTYxZjU0YTIyYjJiYWY5ZDIzN2Q1OAorIGFiOTEwYzEzMzBiM2I1ZjgyMzgzYzNmNzNjNDZm MWJjMmU3MTJmYTAwY2M2ZWM2ZTAyOGNlZGY1Y2Q1NzhiZmUKKyBlNmQ2MGIxYTBjY2QxNjIzNmYx MTg2ODI1ZWI3NTg3MDNjOTYxMWIyZWYyMGE2ZTg4YjJkNGI3MDUyNDExYmI5CisgNzQyOWE0Y2Y2 OGRhYzNkNjAyN2RhOTQyMmQyOTgyMmYxYTY4NTNiYzY2OGYyMzg0OWNhOWU1NzlhOGJiYzI5Ygor IDQxNTdhMTFlMTkzYTkzMzQ5YjkyYzFkMGE2OWFhMWYwYzhjZmYwNzA3Mjg3YjhlNzdkY2M2MWFi OTAzOGY2M2UKKyBkNTZjNTgzMjYwN2JhOTBmMmM0YTE2YjFjZmE2NTc3MmUwYjNjYjlkOWM5ODdh MjU1MzE3OWIwMzNkNDU3NWI2CisgMzc2YmVkYmIxZTUzMjc2ZGYwZGFhNjQ3NDZkYTYwMjJiZGNj YWRmMGEzZWZiMmVjNThhMjg0ZTNkODc3YjA2NQorIGFiZDM2NDA1MmEzZmFiZTA0MTI0OTIxNjVl Y2Q1NGUzOWU4NWViMDBkOTNiMGFlMWY0NTFjYTI4ZWFiNWNiYjkKKyAxNmY2ZDllMTYwZmVjZDlh ODRmYjRmMTQ4NmU1YjljMWM1MjAyNjZhMDUyZjQ5YmY2ZmExNzIxYzZhNjliNmJkCisgMzlhMjRk MjAyYzQ0MGFmOWQyOTc5NWY2NGM4MmQwM2Q4NTk1MGVmZTA5NjI4ZTQ5N2E3NjMzMDVlNjBkODA2 ZQorIDRjZWJlZDJjNTAwOTQ2ZjE3ZGY1YzU1Y2ZkNzA3ZmM0OWEwMDc2N2U2YTgwYTcyNTgwNzc4 OGMzY2YwNTlmMGEKKyAyZDdhM2QwOTliNzg0MGNhZmMxZmRlYmJiMTY4YjczNjQyY2Q0YmNmMjMx ZDU4MGJjNmJjYWRjZjNmZTJhZjBmCisgZGY2MjViZTNkZmRkMTViYzY1NGIzOWE0NzBjZDE1OTli MDM0MDVmMWUyNTg3NDEyNDg0NWMyMWRmZmViYjRhNworIGJkZDJhYTdjY2U0NzI3Y2ZjMmM0ZGEx ZGVmZmNhOTA5MmQ2NzkxZGQ2NTQxMGI3N2FhNjA0MDU0NGVhMzQ1YzAKKyBjZTI0Nzg5MTViNTU0 MTQ4OGEwMmEwNDFkNzAzODNiNTU0Y2JjNjE0NmRkYmM4ZGM1YTA2MTI3NWE2N2YzNDQ4CisgYTQz ODkyZmRiYjM0OWE2ODEzMmY0M2ZmZThhNTc0ZWNkNzUxOGZiYzExMTVhMDFkNTc2ZTE4MjVkMGUz OWJhOAorIGQwY2VlNTVhYzczMjc2YWExNzNiNmQ3NDlmODNjYmE5OTlkNjFmNjRlMTFhOWRiYTY0 OGRiNWU2YmZjNDFiNjQKKyBkYWZlMWZhODBmNjVkMGFjZjUxMGUyMjljZjczMzdiNDgzNTlmZDE1 ZjRhNGZjZmI1ZDE3MmViNmYzMmM4ZGVmCisgZmY4MTk3YWJjYjI4NWQyNTBiNDA3YjY1ZjA2ZmEy NDZlYjVhOWQ4ZWVkMTk3ODJiYWVlYWI4YmI0MWYyOGQzYworIDAwODgzMGFlMGRhN2FiOWMzMWMx NmViNjcxYzUyNDJmYjUwZWVlOTZiMmY4ZjhjMDBkOTVjMGE1MWJkMjU5NmUKKyAwMGZhZGZmYjE3 NDUxMjZkNmYwNzMzMjdlYWI1ZWYwZThiZjgyZDc5MjllZGYwY2IxZTM0YjQ5NDFhZWZjOTBhCisg YjJhMWM2NTIzMjkwZWJjODk1YzhiMjYzMzcyYzg2Y2ZlOWU5NTAxNmZjYmJkZDFiODk2NGZjNDU2 ZmYwZTg1NQorIDEwNTRlY2M5MDEzY2IzNDdiNzdlOWE4MGQ5N2ZhODk0NDRlNDRmNjY3ZDVkNzU4 YmViOGI3Y2E1ZTlkYTJiMTIKKyBjNjczNmRhYjExNjVkZWIzMzAyNGU2ZjMzZmVkZGU3OWY1NWM2 Y2JhYTRhODAzZWE0ZTQxZGVjNjhiMzMzOTliCisgNWFhMDIzOTMyOGI0NjU2ZmJlZDg0ZGJjYjRk OGNjMjRhODIzMjQ1NWM5ODg4OGMwNjRmYTYyYmI5MjdjYTc1ZgorIGFhYzI5MTU0MGE3ZGE5YmVk M2VlYjcwM2FkOTc1NjE0ZjQxYjZmNzZlMTVjZWIzYjA2NjAwMDc3M2NhOTYxYWIKKyBmY2FjMjhi MmUwMmJlZWVjY2RkYzEzMWRhMmExMmFlOTM0NGE0ODY2OWNjMzAzN2NiNmYwNDI5OTM2YWY5ODc5 CisgNjkzY2IzYjUxOTZhMDI3NmMwMzk0OTdiYzVjNmUxYzk5ZTM3Njk1OWNiMWE5ODAyZmZjOGYw OGRjOWQzMmMyYQorIGQ5NjJlMDk0ZWM0OGE4MDQyMDY3ZDUwZDJiMjJiODcwYzk0YjEyZmYzNWFm YzU4Yzg1YmYyMDAxZmU5OGRhOWIiCgpGcm9tIDAyNWJlZTRiMDQyYWZmNTU4MWY1ZmQzOTQ1ZDEw MzViMGFhZTBlZjIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IG9yZW82MzkgPG9yZW82 MzkxQGdtYWlsLmNvbT4KRGF0ZTogVGh1LCA4IFNlcCAyMDIyIDAyOjEzOjEzIC0wNzAwClN1Ympl Y3Q6IFtQQVRDSCAyLzJdIGZpcmVmb3gtZXNyOiB1cGRhdGUgdG8gMTAyLjMuMC4KCi0tLQogLi4u L2ZpcmVmb3gtZXNyL3BhdGNoZXMvZml4LWNiaW5kZ2VuLnBhdGNoICAgIHwgICAyMiArCiAuLi5u LXBhdGgucGF0Y2ggPT4gZml4LWZpcmVmb3gtZGVza3RvcC5wYXRjaH0gfCAgIDExICstCiAuLi4v ZmlyZWZveC1lc3IvcGF0Y2hlcy9maXgtaTM4Ni1mZGxpYm0ucGF0Y2ggfCAgICAyICstCiBzcmNw a2dzL2ZpcmVmb3gtZXNyL3BhdGNoZXMvZml4LXRvb2xzLnBhdGNoICAgfCAgIDEzIC0KIC4uLi9w YXRjaGVzL2ZpeC13ZWJydGMtZ2xpYmNpc21zLnBhdGNoICAgICAgICB8ICAgMjQgKy0KIHNyY3Br Z3MvZmlyZWZveC1lc3IvcGF0Y2hlcy9wcGM2NGxlLWppdC5wYXRjaCB8IDM0NDEgLS0tLS0tLS0t LS0tLS0tLS0KIHNyY3BrZ3MvZmlyZWZveC1lc3IvcGF0Y2hlcy9za2lhLXN1Y2tzMy5wYXRjaCB8 ICAgMjQgLQogc3JjcGtncy9maXJlZm94LWVzci9wYXRjaGVzL3NuZGlvLnBhdGNoICAgICAgIHwg ICA1MiAtCiBzcmNwa2dzL2ZpcmVmb3gtZXNyL3BhdGNoZXMvc3FsaXRlLXBwYy5wYXRjaCAgfCAg IDU1ICsKIHNyY3BrZ3MvZmlyZWZveC1lc3IvdGVtcGxhdGUgICAgICAgICAgICAgICAgICB8ICAy ODEgKy0KIHNyY3BrZ3MvZmlyZWZveC9wYXRjaGVzL3BwYzY0LXdlYnJ0Yy5wYXRjaCAgICB8ICAg MjIgKwogc3JjcGtncy9maXJlZm94L3RlbXBsYXRlICAgICAgICAgICAgICAgICAgICAgIHwgICAg MiArLQogMTIgZmlsZXMgY2hhbmdlZCwgMjg4IGluc2VydGlvbnMoKyksIDM2NjEgZGVsZXRpb25z KC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9maXJlZm94LWVzci9wYXRjaGVzL2ZpeC1j YmluZGdlbi5wYXRjaAogcmVuYW1lIHNyY3BrZ3MvZmlyZWZveC1lc3IvcGF0Y2hlcy97Zml4LWRl c2t0b3AtaWNvbi1wYXRoLnBhdGNoID0+IGZpeC1maXJlZm94LWRlc2t0b3AucGF0Y2h9ICg2NCUp CiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9maXJlZm94LWVzci9wYXRjaGVzL2ZpeC10b29s cy5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZmlyZWZveC1lc3IvcGF0Y2hlcy9w cGM2NGxlLWppdC5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZmlyZWZveC1lc3Iv cGF0Y2hlcy9zbmRpby5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZmlyZWZveC1l c3IvcGF0Y2hlcy9zcWxpdGUtcHBjLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9m aXJlZm94L3BhdGNoZXMvcHBjNjQtd2VicnRjLnBhdGNoCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9m aXJlZm94LWVzci9wYXRjaGVzL2ZpeC1jYmluZGdlbi5wYXRjaCBiL3NyY3BrZ3MvZmlyZWZveC1l c3IvcGF0Y2hlcy9maXgtY2JpbmRnZW4ucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMDAwLi5iYTNjZTdhZTNlOTcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2Zp cmVmb3gtZXNyL3BhdGNoZXMvZml4LWNiaW5kZ2VuLnBhdGNoCkBAIC0wLDAgKzEsMjIgQEAKK0Zp eCBlcnJvciB3aXRoIG5ldyBjYmluZGdlbjoKKworL2J1aWxkZGlyL2ZpcmVmb3gtMTAyLjEuMC9v YmoteDg2XzY0LXVua25vd24tbGludXgtZ251L2Rpc3QvaW5jbHVkZS9tb3ppbGxhL3dlYnJlbmRl ci93ZWJyZW5kZXJfZmZpX2dlbmVyYXRlZC5oOjI0OjMzOiBlcnJvcjogcmVkZWZpbml0aW9uIG9m ICdjb25zdGV4cHIgY29uc3QgdWludDY0X3QgbW96aWxsYTo6d3I6OlJPT1RfQ0xJUF9DSEFJTicK KyAgIDI0IHwgY29uc3RleHByIHN0YXRpYyBjb25zdCB1aW50NjRfdCBST09UX0NMSVBfQ0hBSU4g PSB+MDsKKyAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+ fn5+fn4KKy9idWlsZGRpci9maXJlZm94LTEwMi4xLjAvb2JqLXg4Nl82NC11bmtub3duLWxpbnV4 LWdudS9kaXN0L2luY2x1ZGUvbW96aWxsYS93ZWJyZW5kZXIvd2VicmVuZGVyX2ZmaS5oOjc2OjE2 OiBub3RlOiAnY29uc3QgdWludDY0X3QgbW96aWxsYTo6d3I6OlJPT1RfQ0xJUF9DSEFJTicgcHJl dmlvdXNseSBkZWZpbmVkIGhlcmUKKyAgIDc2IHwgY29uc3QgdWludDY0X3QgUk9PVF9DTElQX0NI QUlOID0gfjA7CisgICAgICB8ICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fgorCitkaWZm IC0tZ2l0IGEvZ2Z4L3dlYnJlbmRlcl9iaW5kaW5ncy93ZWJyZW5kZXJfZmZpLmggYi9nZngvd2Vi cmVuZGVyX2JpbmRpbmdzL3dlYnJlbmRlcl9mZmkuaAoraW5kZXggYjFkNjdiMTdhNGJkZS4uZWI3 OTk3NGJkZjQzNCAxMDA2NDQKKy0tLSBhL2dmeC93ZWJyZW5kZXJfYmluZGluZ3Mvd2VicmVuZGVy X2ZmaS5oCisrKysgYi9nZngvd2VicmVuZGVyX2JpbmRpbmdzL3dlYnJlbmRlcl9mZmkuaAorQEAg LTczLDggKzczLDYgQEAgc3RydWN0IFdyUGlwZWxpbmVJbmZvOworIHN0cnVjdCBXclBpcGVsaW5l SWRBbmRFcG9jaDsKKyB1c2luZyBXclBpcGVsaW5lSWRFcG9jaHMgPSBuc1RBcnJheTxXclBpcGVs aW5lSWRBbmRFcG9jaD47CisgCistY29uc3QgdWludDY0X3QgUk9PVF9DTElQX0NIQUlOID0gfjA7 CistCisgfSAgLy8gbmFtZXNwYWNlIHdyCisgfSAgLy8gbmFtZXNwYWNlIG1vemlsbGEKKyAKZGlm ZiAtLWdpdCBhL3NyY3BrZ3MvZmlyZWZveC1lc3IvcGF0Y2hlcy9maXgtZGVza3RvcC1pY29uLXBh dGgucGF0Y2ggYi9zcmNwa2dzL2ZpcmVmb3gtZXNyL3BhdGNoZXMvZml4LWZpcmVmb3gtZGVza3Rv cC5wYXRjaApzaW1pbGFyaXR5IGluZGV4IDY0JQpyZW5hbWUgZnJvbSBzcmNwa2dzL2ZpcmVmb3gt ZXNyL3BhdGNoZXMvZml4LWRlc2t0b3AtaWNvbi1wYXRoLnBhdGNoCnJlbmFtZSB0byBzcmNwa2dz L2ZpcmVmb3gtZXNyL3BhdGNoZXMvZml4LWZpcmVmb3gtZGVza3RvcC5wYXRjaAppbmRleCBjNDY2 NGQzZGE3Y2UuLjNmMDI3M2NiYTM2NiAxMDA2NDQKLS0tIGEvc3JjcGtncy9maXJlZm94LWVzci9w YXRjaGVzL2ZpeC1kZXNrdG9wLWljb24tcGF0aC5wYXRjaAorKysgYi9zcmNwa2dzL2ZpcmVmb3gt ZXNyL3BhdGNoZXMvZml4LWZpcmVmb3gtZGVza3RvcC5wYXRjaApAQCAtMSw2ICsxLDYgQEAKLS0t LSBhL3Rhc2tjbHVzdGVyL2RvY2tlci9maXJlZm94LXNuYXAvZmlyZWZveC5kZXNrdG9wCTIwMTkt MDEtMTggMTk6MzE6MzkuNDI4ODM5NDQyICswMTAwCi0rKysgYi90YXNrY2x1c3Rlci9kb2NrZXIv ZmlyZWZveC1zbmFwL2ZpcmVmb3guZGVza3RvcAkyMDE5LTAxLTE4IDE5OjMyOjIwLjY4OTA2MzQ1 NiArMDEwMAotQEAgLTE1NCw3ICsxNTQsNyBAQAorLS0tIGEvdGFza2NsdXN0ZXIvZG9ja2VyL2Zp cmVmb3gtc25hcC9maXJlZm94LmRlc2t0b3AKKysrKyBiL3Rhc2tjbHVzdGVyL2RvY2tlci9maXJl Zm94LXNuYXAvZmlyZWZveC5kZXNrdG9wCitAQCAtMTU0LDExICsxNTQsMTIgQEAKICBUZXJtaW5h bD1mYWxzZQogIFgtTXVsdGlwbGVBcmdzPWZhbHNlCiAgVHlwZT1BcHBsaWNhdGlvbgpAQCAtOSwz ICs5LDggQEAKICBDYXRlZ29yaWVzPUdOT01FO0dUSztOZXR3b3JrO1dlYkJyb3dzZXI7CiAgTWlt ZVR5cGU9dGV4dC9odG1sO3RleHQveG1sO2FwcGxpY2F0aW9uL3hodG1sK3htbDthcHBsaWNhdGlv bi94bWw7YXBwbGljYXRpb24vcnNzK3htbDthcHBsaWNhdGlvbi9yZGYreG1sO2ltYWdlL2dpZjtp bWFnZS9qcGVnO2ltYWdlL3BuZzt4LXNjaGVtZS1oYW5kbGVyL2h0dHA7eC1zY2hlbWUtaGFuZGxl ci9odHRwczt4LXNjaGVtZS1oYW5kbGVyL2Z0cDt4LXNjaGVtZS1oYW5kbGVyL2Nocm9tZTt2aWRl by93ZWJtO2FwcGxpY2F0aW9uL3gteHBpbnN0YWxsOwogIFN0YXJ0dXBOb3RpZnk9dHJ1ZQorIEFj dGlvbnM9TmV3V2luZG93O05ld1ByaXZhdGVXaW5kb3c7CisrU3RhcnR1cFdNQ2xhc3M9RmlyZWZv eAorIAorIFtEZXNrdG9wIEFjdGlvbiBOZXdXaW5kb3ddCisgTmFtZT1PcGVuIGEgTmV3IFdpbmRv dwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9maXJlZm94LWVzci9wYXRjaGVzL2ZpeC1pMzg2LWZkbGli bS5wYXRjaCBiL3NyY3BrZ3MvZmlyZWZveC1lc3IvcGF0Y2hlcy9maXgtaTM4Ni1mZGxpYm0ucGF0 Y2gKaW5kZXggODMxZTVlMDM2NzhkLi5kYjhkZDM5NjFjMDQgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mv ZmlyZWZveC1lc3IvcGF0Y2hlcy9maXgtaTM4Ni1mZGxpYm0ucGF0Y2gKKysrIGIvc3JjcGtncy9m aXJlZm94LWVzci9wYXRjaGVzL2ZpeC1pMzg2LWZkbGlibS5wYXRjaApAQCAtNyw3ICs3LDcgQEAK ICAgKiBBZGFwdGVkIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL2ZyZWVic2QvZnJlZWJzZC1zcmMv c2VhcmNoP3E9X19kb3VibGVfdAogICAqLwogIAotKyNpZiBkZWZpbmVkKF9fbGludXhfXykgJiYg ZGVmaW5lZChfX2kzODZfXykKKysjaWYgZGVmaW5lZChfX2xpbnV4X18pICYmIGRlZmluZWQoX19p Mzg2X18pICYmICFkZWZpbmVkKF9fY2xhbmdfXykKICsvLyByZWx5IG9uIGdsaWJjJ3MgZG91Ymxl X3QKICt0eXBlZGVmIGxvbmcgZG91YmxlIF9fZG91YmxlX3Q7CiArI2Vsc2UKZGlmZiAtLWdpdCBh L3NyY3BrZ3MvZmlyZWZveC1lc3IvcGF0Y2hlcy9maXgtdG9vbHMucGF0Y2ggYi9zcmNwa2dzL2Zp cmVmb3gtZXNyL3BhdGNoZXMvZml4LXRvb2xzLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCA5NGRlNDIzY2U1OTMuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2ZpcmVmb3gt ZXNyL3BhdGNoZXMvZml4LXRvb2xzLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTMgKzAsMCBA QAotLS0tIGEvdG9vbHMvcHJvZmlsZXIvY29yZS9wbGF0Zm9ybS1saW51eC1hbmRyb2lkLmNwcAky MDE5LTAxLTI5IDEyOjA5OjQwLjk4MDQ0ODU3OSArMDEwMAotKysrIGIvdG9vbHMvcHJvZmlsZXIv Y29yZS9wbGF0Zm9ybS1saW51eC1hbmRyb2lkLmNwcAkyMDE5LTAxLTI5IDEyOjExOjA5LjY4OTU5 MDk2NyArMDEwMAotQEAgLTQ5Nyw4ICs1MDEsMTAgQEAKLSB1Y29udGV4dF90IHNTeW5jVUNvbnRl eHQ7Ci0gCi0gdm9pZCBSZWdpc3RlcnM6OlN5bmNQb3B1bGF0ZSgpIHsKLSsjaWYgZGVmaW5lZChf X0dMSUJDX18pCi0gICBpZiAoIWdldGNvbnRleHQoJnNTeW5jVUNvbnRleHQpKSB7Ci0gICAgIFBv cHVsYXRlUmVnc0Zyb21Db250ZXh0KCp0aGlzLCAmc1N5bmNVQ29udGV4dCk7Ci0gICB9Ci0rI2Vu ZGlmCi0gfQotICNlbmRpZgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9maXJlZm94LWVzci9wYXRjaGVz L2ZpeC13ZWJydGMtZ2xpYmNpc21zLnBhdGNoIGIvc3JjcGtncy9maXJlZm94LWVzci9wYXRjaGVz L2ZpeC13ZWJydGMtZ2xpYmNpc21zLnBhdGNoCmluZGV4IDVkMTcwMjFhOTlmNC4uNGY5MDQzYjU4 ZTFlIDEwMDY0NAotLS0gYS9zcmNwa2dzL2ZpcmVmb3gtZXNyL3BhdGNoZXMvZml4LXdlYnJ0Yy1n bGliY2lzbXMucGF0Y2gKKysrIGIvc3JjcGtncy9maXJlZm94LWVzci9wYXRjaGVzL2ZpeC13ZWJy dGMtZ2xpYmNpc21zLnBhdGNoCkBAIC0xLDIwICsxLDIwIEBACi0tLS0gYS90aGlyZF9wYXJ0eS9s aWJ3ZWJydGMvd2VicnRjL3N5c3RlbV93cmFwcGVycy9zb3VyY2UvY3B1X2ZlYXR1cmVzX2xpbnV4 LmMJMjAxOS0wMS0yOSAxMToyMDo1Mi4yOTg3OTMyMjMgKzAxMDAKLSsrKyBiL3RoaXJkX3BhcnR5 L2xpYndlYnJ0Yy93ZWJydGMvc3lzdGVtX3dyYXBwZXJzL3NvdXJjZS9jcHVfZmVhdHVyZXNfbGlu dXguYwkyMDE5LTAxLTI5IDExOjIxOjQ4LjI1MDI1MDg1MCArMDEwMAotQEAgLTE0LDcgKzE0LDcg QEAKLSAjaWZuZGVmIF9fR0xJQkNfUFJFUkVRCi0gI2RlZmluZSBfX0dMSUJDX1BSRVJFUShhLCBi KSAwCistLS0gYS90aGlyZF9wYXJ0eS9saWJ3ZWJydGMvc3lzdGVtX3dyYXBwZXJzL3NvdXJjZS9j cHVfZmVhdHVyZXNfbGludXguY2MKKysrKyBiL3RoaXJkX3BhcnR5L2xpYndlYnJ0Yy9zeXN0ZW1f d3JhcHBlcnMvc291cmNlL2NwdV9mZWF0dXJlc19saW51eC5jYworQEAgLTE4LDcgKzE4LDcgQEAK KyAjZGVmaW5lIFdFQlJUQ19HTElCQ19QUkVSRVEoYSwgYikgMAogICNlbmRpZgotLSNpZiBfX0dM SUJDX1BSRVJFUSgyLCAxNikKLSsjaWYgIV9fR0xJQkNfXyB8fCBfX0dMSUJDX1BSRVJFUSgyLCAx NikKKyAKKy0jaWYgV0VCUlRDX0dMSUJDX1BSRVJFUSgyLCAxNikKKysjaWYgIV9fR0xJQkNfXyB8 fCBXRUJSVENfR0xJQkNfUFJFUkVRKDIsIDE2KQogICNpbmNsdWRlIDxzeXMvYXV4di5oPgogICNl bHNlCi0gI2luY2x1ZGUgPGZjbnRsLmg+Ci1AQCAtMzIsNyArMzIsNyBAQAorICNpbmNsdWRlIDxl cnJuby5oPgorQEAgLTQwLDcgKzQwLDcgQEAKICAgIGludCBhcmNoaXRlY3R1cmUgPSAwOwotICAg dW5zaWduZWQgbG9uZyBod2NhcCA9IDA7CisgICB1aW50NjRfdCBod2NhcCA9IDA7CiAgICBjb25z dCBjaGFyKiBwbGF0Zm9ybSA9IE5VTEw7Ci0tI2lmIF9fR0xJQkNfUFJFUkVRKDIsIDE2KQotKyNp ZiAhX19HTElCQ19fIHx8IF9fR0xJQkNfUFJFUkVRKDIsIDE2KQorLSNpZiBXRUJSVENfR0xJQkNf UFJFUkVRKDIsIDE2KQorKyNpZiAhX19HTElCQ19fIHx8IFdFQlJUQ19HTElCQ19QUkVSRVEoMiwg MTYpCiAgICBod2NhcCA9IGdldGF1eHZhbChBVF9IV0NBUCk7CiAgICBwbGF0Zm9ybSA9IChjb25z dCBjaGFyKilnZXRhdXh2YWwoQVRfUExBVEZPUk0pOwogICNlbHNlCmRpZmYgLS1naXQgYS9zcmNw a2dzL2ZpcmVmb3gtZXNyL3BhdGNoZXMvcHBjNjRsZS1qaXQucGF0Y2ggYi9zcmNwa2dzL2ZpcmVm b3gtZXNyL3BhdGNoZXMvcHBjNjRsZS1qaXQucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IGNjZWQwMDU4ZThlMS4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvZmlyZWZveC1l c3IvcGF0Y2hlcy9wcGM2NGxlLWppdC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDM0NDEgKzAs MCBAQAotZGlmZiAtLWdpdCBhL2NvbmZpZy9jaGVja19tYWNyb2Fzc2VtYmxlcl9zdHlsZS5weSBi L2NvbmZpZy9jaGVja19tYWNyb2Fzc2VtYmxlcl9zdHlsZS5weQotaW5kZXggMGQwNDBhOTM5Yi4u YjgzZTM2OTFkZCAxMDA2NDQKLS0tLSBhL2NvbmZpZy9jaGVja19tYWNyb2Fzc2VtYmxlcl9zdHls ZS5weQotKysrIGIvY29uZmlnL2NoZWNrX21hY3JvYXNzZW1ibGVyX3N0eWxlLnB5Ci1AQCAtMjQs MTcgKzI0LDE3IEBAIGZyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0Ci0gZnJv bSBfX2Z1dHVyZV9fIGltcG9ydCBwcmludF9mdW5jdGlvbgotIAotIGltcG9ydCBkaWZmbGliCi0g aW1wb3J0IG9zCi0gaW1wb3J0IHJlCi0gaW1wb3J0IHN5cwotIAotIGFyY2hpdGVjdHVyZV9pbmRl cGVuZGVudCA9IHNldChbImdlbmVyaWMiXSkKLS1hbGxfdW5zdXBwb3J0ZWRfYXJjaGl0ZWN0dXJl c19uYW1lcyA9IHNldChbIm1pcHMzMiIsICJtaXBzNjQiLCAibWlwc19zaGFyZWQiXSkKLSthbGxf dW5zdXBwb3J0ZWRfYXJjaGl0ZWN0dXJlc19uYW1lcyA9IHNldChbIm1pcHMzMiIsICJtaXBzNjQi LCAibWlwc19zaGFyZWQiLCAicHBjNjQiXSkKLSBhbGxfYXJjaGl0ZWN0dXJlX25hbWVzID0gc2V0 KFsieDg2IiwgIng2NCIsICJhcm0iLCAiYXJtNjQiXSkKLSBhbGxfc2hhcmVkX2FyY2hpdGVjdHVy ZV9uYW1lcyA9IHNldChbIng4Nl9zaGFyZWQiLCAiYXJtIiwgImFybTY0Il0pCi0gCi0gcmVCZWZv cmVBcmcgPSAiKD88PVsoLFxzXSkiCi0gcmVBcmdUeXBlID0gIig/UDx0eXBlPltcd1xzOiomXSsp IgotIHJlQXJnTmFtZSA9ICIoP1A8bmFtZT5cc1x3KykiCi0gcmVBcmdEZWZhdWx0ID0gIig/UDxk ZWZhdWx0Pig/OlxzPVteLCldKyk/KSIKLSByZUFmdGVyQXJnID0gIig/PVssKV0pIgotZGlmZiAt LWdpdCBhL2pzL21vei5jb25maWd1cmUgYi9qcy9tb3ouY29uZmlndXJlCi1pbmRleCAzYzNkMGQ0 MzU5Li5iMjE3ZDBlMTVjIDEwMDY0NAotLS0tIGEvanMvbW96LmNvbmZpZ3VyZQotKysrIGIvanMv bW96LmNvbmZpZ3VyZQotQEAgLTIxNCwyMyArMjE0LDI1IEBAIGRlZiBqaXRfY29kZWdlbihqaXRf ZW5hYmxlZCwgc2ltdWxhdG9yLCB0YXJnZXQpOgotICAgICByZXR1cm4gbmFtZXNwYWNlKCoqe3N0 cih0YXJnZXQuY3B1KTogVHJ1ZX0pCi0gCi0gCi0gc2V0X2NvbmZpZygiSlNfQ09ERUdFTl9OT05F Iiwgaml0X2NvZGVnZW4ubm9uZSkKLSBzZXRfY29uZmlnKCJKU19DT0RFR0VOX0FSTSIsIGppdF9j b2RlZ2VuLmFybSkKLSBzZXRfY29uZmlnKCJKU19DT0RFR0VOX0FSTTY0Iiwgaml0X2NvZGVnZW4u YXJtNjQpCi0gc2V0X2NvbmZpZygiSlNfQ09ERUdFTl9NSVBTMzIiLCBqaXRfY29kZWdlbi5taXBz MzIpCi0gc2V0X2NvbmZpZygiSlNfQ09ERUdFTl9NSVBTNjQiLCBqaXRfY29kZWdlbi5taXBzNjQp Ci0rc2V0X2NvbmZpZygiSlNfQ09ERUdFTl9QUEM2NCIsIGppdF9jb2RlZ2VuLnBwYzY0KQotIHNl dF9jb25maWcoIkpTX0NPREVHRU5fWDg2Iiwgaml0X2NvZGVnZW4ueDg2KQotIHNldF9jb25maWco IkpTX0NPREVHRU5fWDY0Iiwgaml0X2NvZGVnZW4ueDY0KQotIHNldF9kZWZpbmUoIkpTX0NPREVH RU5fTk9ORSIsIGppdF9jb2RlZ2VuLm5vbmUpCi0gc2V0X2RlZmluZSgiSlNfQ09ERUdFTl9BUk0i LCBqaXRfY29kZWdlbi5hcm0pCi0gc2V0X2RlZmluZSgiSlNfQ09ERUdFTl9BUk02NCIsIGppdF9j b2RlZ2VuLmFybTY0KQotIHNldF9kZWZpbmUoIkpTX0NPREVHRU5fTUlQUzMyIiwgaml0X2NvZGVn ZW4ubWlwczMyKQotIHNldF9kZWZpbmUoIkpTX0NPREVHRU5fTUlQUzY0Iiwgaml0X2NvZGVnZW4u bWlwczY0KQotK3NldF9kZWZpbmUoIkpTX0NPREVHRU5fUFBDNjQiLCBqaXRfY29kZWdlbi5wcGM2 NCkKLSBzZXRfZGVmaW5lKCJKU19DT0RFR0VOX1g4NiIsIGppdF9jb2RlZ2VuLng4NikKLSBzZXRf ZGVmaW5lKCJKU19DT0RFR0VOX1g2NCIsIGppdF9jb2RlZ2VuLng2NCkKLSAKLSAjIFByb2ZpbGlu ZwotICMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQotIG9wdGlvbigKLSAgICAgIi0tZW5hYmxlLWluc3RydW1lbnRzIiwKLSAgICAgZW52PSJN T1pfSU5TVFJVTUVOVFMiLAotZGlmZiAtLWdpdCBhL2pzL3NyYy9pcnJlZ2V4cC9SZWdFeHBOYXRp dmVNYWNyb0Fzc2VtYmxlci5jcHAgYi9qcy9zcmMvaXJyZWdleHAvUmVnRXhwTmF0aXZlTWFjcm9B c3NlbWJsZXIuY3BwCi1pbmRleCBlMGVmN2U2NGY1Li44MWQ4ZTJhMTk4IDEwMDY0NAotLS0tIGEv anMvc3JjL2lycmVnZXhwL1JlZ0V4cE5hdGl2ZU1hY3JvQXNzZW1ibGVyLmNwcAotKysrIGIvanMv c3JjL2lycmVnZXhwL1JlZ0V4cE5hdGl2ZU1hY3JvQXNzZW1ibGVyLmNwcAotQEAgLTgxMywxOCAr ODEzLDMzIEBAIHZvaWQgU01SZWdFeHBNYWNyb0Fzc2VtYmxlcjo6SnVtcE9yQmFja3RyYWNrKExh YmVsKiB0bykgewotIC8vIElmIHRoZSB0ZXN0IGZhaWxzLCBjYWxsIGFuIE9PTCBoYW5kbGVyIHRv IHRyeSBncm93aW5nIHRoZSBzdGFjay4KLSB2b2lkIFNNUmVnRXhwTWFjcm9Bc3NlbWJsZXI6OkNo ZWNrQmFja3RyYWNrU3RhY2tMaW1pdCgpIHsKLSAgIGpzOjpqaXQ6OkxhYmVsIG5vX3N0YWNrX292 ZXJmbG93OwotICAgbWFzbV8uYnJhbmNoUHRyKAotICAgICAgIEFzc2VtYmxlcjo6QmVsb3dPckVx dWFsLAotICAgICAgIEFic29sdXRlQWRkcmVzcyhpc29sYXRlKCktPnJlZ2V4cF9zdGFjaygpLT5s aW1pdF9hZGRyZXNzX2FkZHJlc3MoKSksCi0gICAgICAgYmFja3RyYWNrX3N0YWNrX3BvaW50ZXJf LCAmbm9fc3RhY2tfb3ZlcmZsb3cpOwotIAotKyNpZmRlZiBKU19DT0RFR0VOX1BQQzY0Ci0rICAv LyBMUiBvbiBQb3dlclBDIGlzbid0IGEgR1BSLCBzbyB3ZSBoYXZlIHRvIGV4cGxpY2l0bHkgc2F2 ZSBpdCBoZXJlIGJlZm9yZQotKyAgLy8gd2UgY2FsbCBvciB3ZSB3aWxsIGVuZCB1cCBlcnJvbmVv dXNseSByZXR1cm5pbmcgYWZ0ZXIgdGhlIGNhbGwgdG8gdGhlCi0rICAvLyBzdGFjayBvdmVyZmxv dyBoYW5kbGVyIHdoZW4gd2UgfGJscnwgb3V0IGFuZCBpbmV2aXRhYmx5IHVuZGVyZmxvdyB0aGUK LSsgIC8vIGlycmVnZXhwIHN0YWNrIG9uIHRoZSBuZXh0IGJhY2t0cmFjay4KLSsgIG1hc21fLnhz X21mbHIodGVtcDFfKTsKLSsgIG1hc21fLmFzX3N0ZHUodGVtcDFfLCBtYXNtXy5nZXRTdGFja1Bv aW50ZXIoKSwgLTgpOwotKyNlbmRpZgotKwotICAgbWFzbV8uY2FsbCgmc3RhY2tfb3ZlcmZsb3df bGFiZWxfKTsKLSAKLSsjaWZkZWYgSlNfQ09ERUdFTl9QUEM2NAotKyAgbWFzbV8uYXNfbGQodGVt cDFfLCBtYXNtXy5nZXRTdGFja1BvaW50ZXIoKSwgMCk7Ci0rICBtYXNtXy54c19tdGxyKHRlbXAx Xyk7Ci0rICBtYXNtXy5hc19hZGRpKG1hc21fLmdldFN0YWNrUG9pbnRlcigpLCBtYXNtXy5nZXRT dGFja1BvaW50ZXIoKSwgOCk7Ci0rI2VuZGlmCi0rCi0gICAvLyBFeGl0IHdpdGggYW4gZXhjZXB0 aW9uIGlmIHRoZSBjYWxsIGZhaWxlZAotICAgbWFzbV8uYnJhbmNoVGVzdDMyKEFzc2VtYmxlcjo6 WmVybywgdGVtcDBfLCB0ZW1wMF8sCi0gICAgICAgICAgICAgICAgICAgICAgJmV4aXRfd2l0aF9l eGNlcHRpb25fbGFiZWxfKTsKLSAKLSAgIG1hc21fLmJpbmQoJm5vX3N0YWNrX292ZXJmbG93KTsK LSB9Ci0gCi0gLy8gVGhpcyBpcyB1c2VkIHRvIHNuZWFrIGFuIE9PTSB0aHJvdWdoIHRoZSBWOCBs YXllci4KLUBAIC0xMTI3LDE2ICsxMTQyLDIwIEBAIHZvaWQgU01SZWdFeHBNYWNyb0Fzc2VtYmxl cjo6c3RhY2tPdmVyZmxvd0hhbmRsZXIoKSB7Ci0gICBMaXZlR2VuZXJhbFJlZ2lzdGVyU2V0IHZv bGF0aWxlUmVncyhHZW5lcmFsUmVnaXN0ZXJTZXQ6OlZvbGF0aWxlKCkpOwotIAotICNpZmRlZiBK U19VU0VfTElOS19SRUdJU1RFUgotICAgbWFzbV8ucHVzaFJldHVybkFkZHJlc3MoKTsKLSAjZW5k aWYKLSAKLSAgIC8vIEFkanVzdCBmb3IgdGhlIHJldHVybiBhZGRyZXNzIG9uIHRoZSBzdGFjay4K LSAgIHNpemVfdCBmcmFtZU9mZnNldCA9IHNpemVvZih2b2lkKik7Ci0rI2lmZGVmIEpTX0NPREVH RU5fUFBDNjQKLSsgIC8vIFdlIGhhdmUgYSBkb3VibGUgcmV0dXJuIGFkZHJlc3MuCi0rICBmcmFt ZU9mZnNldCArPSBzaXplb2Yodm9pZCopOwotKyNlbmRpZgotIAotICAgdm9sYXRpbGVSZWdzLnRh a2VVbmNoZWNrZWQodGVtcDBfKTsKLSAgIHZvbGF0aWxlUmVncy50YWtlVW5jaGVja2VkKHRlbXAx Xyk7Ci0gICBtYXNtXy5QdXNoUmVnc0luTWFzayh2b2xhdGlsZVJlZ3MpOwotIAotICAgdXNpbmcg Rm4gPSBib29sICgqKShSZWdFeHBTdGFjayAqIHJlZ2V4cF9zdGFjayk7Ci0gICBtYXNtXy5zZXR1 cFVuYWxpZ25lZEFCSUNhbGwodGVtcDBfKTsKLSAgIG1hc21fLnBhc3NBQklBcmcodGVtcDFfKTsK LWRpZmYgLS1naXQgYS9qcy9zcmMvaml0L0F0b21pY09wZXJhdGlvbnMuaCBiL2pzL3NyYy9qaXQv QXRvbWljT3BlcmF0aW9ucy5oCi1pbmRleCBmNGE1NzI3ZDA1Li4xMzg2MTJkNTNiIDEwMDY0NAot LS0tIGEvanMvc3JjL2ppdC9BdG9taWNPcGVyYXRpb25zLmgKLSsrKyBiL2pzL3NyYy9qaXQvQXRv bWljT3BlcmF0aW9ucy5oCi1AQCAtMzczLDE5ICszNzMsMjYgQEAgY29uc3RleHByIGlubGluZSBi b29sIEF0b21pY09wZXJhdGlvbnM6OmlzTG9ja2ZyZWVKUyhpbnQzMl90IHNpemUpIHsKLSAjICAg IGluY2x1ZGUgImppdC9zaGFyZWQvQXRvbWljT3BlcmF0aW9ucy1mZWVsaW5nLWx1Y2t5LmgiCi0g IyAgZW5kaWYKLSAjZWxpZiBkZWZpbmVkKF9fbWlwc19fKQotICMgIGlmIGRlZmluZWQoX19jbGFu Z19fKSB8fCBkZWZpbmVkKF9fR05VQ19fKQotICMgICAgaW5jbHVkZSAiaml0L21pcHMtc2hhcmVk L0F0b21pY09wZXJhdGlvbnMtbWlwcy1zaGFyZWQuaCIKLSAjICBlbHNlCi0gIyAgICBlcnJvciAi QXRvbWljT3BlcmF0aW9ucyBvbiBNSVBTIGZvciBhbiB1bmtub3duIGNvbXBpbGVyIgotICMgIGVu ZGlmCi0rI2VsaWYgZGVmaW5lZChfX3BwYzY0X18pIHx8IGRlZmluZWQoX19QUEM2NF9fKSB8fCBk ZWZpbmVkKF9fcHBjNjRsZV9fKSB8fCBcCi0rICAgICAgZGVmaW5lZChfX1BQQzY0TEVfXykKLSsj ICBpZiBkZWZpbmVkKEpTX0NPREVHRU5fUFBDNjQpCi0rLyogWFhYOiBzaG91bGQgYmUgIyAgICBp bmNsdWRlICJqaXQvc2hhcmVkL0F0b21pY09wZXJhdGlvbnMtc2hhcmVkLWppdC5oIiAqLwotKyMg ICAgaW5jbHVkZSAiaml0L3NoYXJlZC9BdG9taWNPcGVyYXRpb25zLWZlZWxpbmctbHVja3kuaCIK LSsjICBlbHNlCi0rIyAgICBpbmNsdWRlICJqaXQvc2hhcmVkL0F0b21pY09wZXJhdGlvbnMtZmVl bGluZy1sdWNreS5oIgotKyMgIGVuZGlmCi0gI2VsaWYgZGVmaW5lZChfX3BwY19fKSB8fCBkZWZp bmVkKF9fUFBDX18pIHx8IGRlZmluZWQoX19zcGFyY19fKSB8fCAgICAgXAotLSAgICBkZWZpbmVk KF9fcHBjNjRfXykgfHwgZGVmaW5lZChfX1BQQzY0X18pIHx8IGRlZmluZWQoX19wcGM2NGxlX18p IHx8IFwKLS0gICAgZGVmaW5lZChfX1BQQzY0TEVfXykgfHwgZGVmaW5lZChfX2FscGhhX18pIHx8 IGRlZmluZWQoX19ocHBhX18pIHx8ICBcCi0rICAgIGRlZmluZWQoX19hbHBoYV9fKSB8fCBkZWZp bmVkKF9faHBwYV9fKSB8fCAgXAotICAgICBkZWZpbmVkKF9fc2hfXykgfHwgZGVmaW5lZChfX3Mz OTBfXykgfHwgZGVmaW5lZChfX3MzOTB4X18pIHx8ICAgICAgIFwKLSAgICAgZGVmaW5lZChfX202 OGtfXykgfHwgZGVmaW5lZChfX3Jpc2N2KSB8fCBkZWZpbmVkKF9fd2FzaV9fKQotICMgIGluY2x1 ZGUgImppdC9zaGFyZWQvQXRvbWljT3BlcmF0aW9ucy1mZWVsaW5nLWx1Y2t5LmgiCi0gI2Vsc2UK LSAjICBlcnJvciAiTm8gQXRvbWljT3BlcmF0aW9ucyBzdXBwb3J0IHByb3ZpZGVkIGZvciB0aGlz IHBsYXRmb3JtIgotICNlbmRpZgotIAotICNlbmRpZiAgLy8gaml0X0F0b21pY09wZXJhdGlvbnNf aAotZGlmZiAtLWdpdCBhL2pzL3NyYy9qaXQvQmFzZWxpbmVCYWlsb3V0cy5jcHAgYi9qcy9zcmMv aml0L0Jhc2VsaW5lQmFpbG91dHMuY3BwCi1pbmRleCBiY2ExNDI3ZjkzLi5lYjQ5OWIzNGNmIDEw MDY0NAotLS0tIGEvanMvc3JjL2ppdC9CYXNlbGluZUJhaWxvdXRzLmNwcAotKysrIGIvanMvc3Jj L2ppdC9CYXNlbGluZUJhaWxvdXRzLmNwcAotQEAgLTQ4MSwxNiArNDgxLDIxIEBAIGNsYXNzIE1P Wl9TVEFDS19DTEFTUyBCYXNlbGluZVN0YWNrQnVpbGRlciB7Ci0gICAgIC8vICBsZXQgWCA9IFNU QUNLX1NUQVJUX0FERFIgKyBKaXRGcmFtZUxheW91dDo6U2l6ZSgpICsgUFJFVl9GUkFNRV9TSVpF Ci0gICAgIC8vICAgICAgWCArIFJlY3RpZmllckZyYW1lTGF5b3V0OjpTaXplKCkKLSAgICAgLy8g ICAgICAgICsgKChSZWN0aWZpZXJGcmFtZUxheW91dCopIFgpLT5wcmV2RnJhbWVMb2NhbFNpemUo KQotICAgICAvLyAgICAgICAgLSBCYXNlbGluZVN0dWJGcmFtZUxheW91dDo6cmV2ZXJzZU9mZnNl dE9mU2F2ZWRGcmFtZVB0cigpCi0gICAgIHNpemVfdCBleHRyYU9mZnNldCA9Ci0gICAgICAgICBS ZWN0aWZpZXJGcmFtZUxheW91dDo6U2l6ZSgpICsgcHJpb3JGcmFtZS0+cHJldkZyYW1lTG9jYWxT aXplKCkgKwotICAgICAgICAgQmFzZWxpbmVTdHViRnJhbWVMYXlvdXQ6OnJldmVyc2VPZmZzZXRP ZlNhdmVkRnJhbWVQdHIoKTsKLSAgICAgcmV0dXJuIHZpcnR1YWxQb2ludGVyQXRTdGFja09mZnNl dChwcmlvck9mZnNldCArIGV4dHJhT2Zmc2V0KTsKLSsjZWxpZiBkZWZpbmVkKEpTX0NPREVHRU5f UFBDNjQpCi0rICAgICh2b2lkKXByaW9yT2Zmc2V0OwotKy8vIFhYWC4gVGhlIGFib3ZlIGNvZGUg bWlnaHQgd29yayB0aG91Z2gKLSsjd2FybmluZyAiVE9ETyEgQmFzZWxpbmVTdGFja0J1aWxkZXI6 OmNhbGN1bGF0ZVByZXZGcmFtZVB0cigpIgotKyAgICBNT1pfQ1JBU0goKTsKLSAjZWxpZiBkZWZp bmVkKEpTX0NPREVHRU5fTk9ORSkKLSAgICAgKHZvaWQpcHJpb3JPZmZzZXQ7Ci0gICAgIE1PWl9D UkFTSCgpOwotICNlbHNlCi0gIyAgZXJyb3IgIkJhZCBhcmNoaXRlY3R1cmUhIgotICNlbmRpZgot ICAgfQotIH07Ci1kaWZmIC0tZ2l0IGEvanMvc3JjL2ppdC9CYXNlbGluZUNvZGVHZW4uY3BwIGIv anMvc3JjL2ppdC9CYXNlbGluZUNvZGVHZW4uY3BwCi1pbmRleCA3MDg5ZjVlMzAwLi5kNjcyMzZk MmM1IDEwMDY0NAotLS0tIGEvanMvc3JjL2ppdC9CYXNlbGluZUNvZGVHZW4uY3BwCi0rKysgYi9q cy9zcmMvaml0L0Jhc2VsaW5lQ29kZUdlbi5jcHAKLUBAIC01MjAsMTYgKzUyMCwxOSBAQCBib29s IEJhc2VsaW5lQ29kZUdlbjxIYW5kbGVyPjo6ZW1pdE91dE9mTGluZVBvc3RCYXJyaWVyU2xvdCgp IHsKLSAgIHJlZ3MudGFrZShCYXNlbGluZUZyYW1lUmVnKTsKLSAgIFJlZ2lzdGVyIHNjcmF0Y2gg PSByZWdzLnRha2VBbnkoKTsKLSAjaWYgZGVmaW5lZChKU19DT0RFR0VOX0FSTSkgfHwgZGVmaW5l ZChKU19DT0RFR0VOX0FSTTY0KQotICAgLy8gT24gQVJNLCBzYXZlIHRoZSBsaW5rIHJlZ2lzdGVy IGJlZm9yZSBjYWxsaW5nLiAgSXQgY29udGFpbnMgdGhlIHJldHVybgotICAgLy8gYWRkcmVzcy4g IFRoZSB8bWFzbS5yZXQoKXwgbGF0ZXIgd2lsbCBwb3AgdGhpcyBpbnRvIHxwY3wgdG8gcmV0dXJu LgotICAgbWFzbS5wdXNoKGxyKTsKLSAjZWxpZiBkZWZpbmVkKEpTX0NPREVHRU5fTUlQUzMyKSB8 fCBkZWZpbmVkKEpTX0NPREVHRU5fTUlQUzY0KQotICAgbWFzbS5wdXNoKHJhKTsKLSsjZWxpZiBk ZWZpbmVkKEpTX0NPREVHRU5fUFBDNjQpCi0rICBtYXNtLnhzX21mbHIoU2NyYXRjaFJlZ2lzdGVy KTsKLSsgIG1hc20ucHVzaChTY3JhdGNoUmVnaXN0ZXIpOwotICNlbmRpZgotICAgbWFzbS5wdXNo VmFsdWUoUjApOwotIAotICAgdXNpbmcgRm4gPSB2b2lkICgqKShKU1J1bnRpbWUgKiBydCwganM6 OmdjOjpDZWxsICogY2VsbCk7Ci0gICBtYXNtLnNldHVwVW5hbGlnbmVkQUJJQ2FsbChzY3JhdGNo KTsKLSAgIG1hc20ubW92ZVB0cihJbW1QdHIoY3gtPnJ1bnRpbWUoKSksIHNjcmF0Y2gpOwotICAg bWFzbS5wYXNzQUJJQXJnKHNjcmF0Y2gpOwotICAgbWFzbS5wYXNzQUJJQXJnKG9ialJlZyk7Ci1k aWZmIC0tZ2l0IGEvanMvc3JjL2ppdC9CYXNlbGluZUlDLmNwcCBiL2pzL3NyYy9qaXQvQmFzZWxp bmVJQy5jcHAKLWluZGV4IDk1NzIzOTRlNzYuLmRmZTc2MmU1YzggMTAwNjQ0Ci0tLS0gYS9qcy9z cmMvaml0L0Jhc2VsaW5lSUMuY3BwCi0rKysgYi9qcy9zcmMvaml0L0Jhc2VsaW5lSUMuY3BwCi1A QCAtMTI3LDE3ICsxMjcsMTggQEAgY2xhc3MgTU9aX1JBSUkgRmFsbGJhY2tJQ0NvZGVDb21waWxl ciBmaW5hbCB7Ci0gfTsKLSAKLSBBbGxvY2F0YWJsZUdlbmVyYWxSZWdpc3RlclNldCBCYXNlbGlu ZUlDQXZhaWxhYmxlR2VuZXJhbFJlZ3Moc2l6ZV90IG51bUlucHV0cykgewotICAgQWxsb2NhdGFi bGVHZW5lcmFsUmVnaXN0ZXJTZXQgcmVncyhHZW5lcmFsUmVnaXN0ZXJTZXQ6OkFsbCgpKTsKLSAj aWYgZGVmaW5lZChKU19DT0RFR0VOX0FSTSkKLSAgIE1PWl9BU1NFUlQoIXJlZ3MuaGFzKEJhc2Vs aW5lU3RhY2tSZWcpKTsKLSAgIE1PWl9BU1NFUlQoIXJlZ3MuaGFzKElDVGFpbENhbGxSZWcpKTsK LSAgIHJlZ3MudGFrZShCYXNlbGluZVNlY29uZFNjcmF0Y2hSZWcpOwotLSNlbGlmIGRlZmluZWQo SlNfQ09ERUdFTl9NSVBTMzIpIHx8IGRlZmluZWQoSlNfQ09ERUdFTl9NSVBTNjQpCi0rI2VsaWYg ZGVmaW5lZChKU19DT0RFR0VOX01JUFMzMikgfHwgZGVmaW5lZChKU19DT0RFR0VOX01JUFM2NCkg fHwgXAotKyAgICAgIGRlZmluZWQoSlNfQ09ERUdFTl9QUEM2NCkKLSAgIE1PWl9BU1NFUlQoIXJl Z3MuaGFzKEJhc2VsaW5lU3RhY2tSZWcpKTsKLSAgIE1PWl9BU1NFUlQoIXJlZ3MuaGFzKElDVGFp bENhbGxSZWcpKTsKLSAgIE1PWl9BU1NFUlQoIXJlZ3MuaGFzKEJhc2VsaW5lU2Vjb25kU2NyYXRj aFJlZykpOwotICNlbGlmIGRlZmluZWQoSlNfQ09ERUdFTl9BUk02NCkKLSAgIE1PWl9BU1NFUlQo IXJlZ3MuaGFzKFBzZXVkb1N0YWNrUG9pbnRlcikpOwotICAgTU9aX0FTU0VSVCghcmVncy5oYXMo UmVhbFN0YWNrUG9pbnRlcikpOwotICAgTU9aX0FTU0VSVCghcmVncy5oYXMoSUNUYWlsQ2FsbFJl ZykpOwotICNlbHNlCi1kaWZmIC0tZ2l0IGEvanMvc3JjL2ppdC9Db2RlR2VuZXJhdG9yLmggYi9q cy9zcmMvaml0L0NvZGVHZW5lcmF0b3IuaAotaW5kZXggNTMyMTk3OGZjMi4uYjJkOWE4ZjVhNSAx MDA2NDQKLS0tLSBhL2pzL3NyYy9qaXQvQ29kZUdlbmVyYXRvci5oCi0rKysgYi9qcy9zcmMvaml0 L0NvZGVHZW5lcmF0b3IuaAotQEAgLTIwLDE2ICsyMCwxOCBAQAotICNlbGlmIGRlZmluZWQoSlNf Q09ERUdFTl9BUk0pCi0gIyAgaW5jbHVkZSAiaml0L2FybS9Db2RlR2VuZXJhdG9yLWFybS5oIgot ICNlbGlmIGRlZmluZWQoSlNfQ09ERUdFTl9BUk02NCkKLSAjICBpbmNsdWRlICJqaXQvYXJtNjQv Q29kZUdlbmVyYXRvci1hcm02NC5oIgotICNlbGlmIGRlZmluZWQoSlNfQ09ERUdFTl9NSVBTMzIp Ci0gIyAgaW5jbHVkZSAiaml0L21pcHMzMi9Db2RlR2VuZXJhdG9yLW1pcHMzMi5oIgotICNlbGlm IGRlZmluZWQoSlNfQ09ERUdFTl9NSVBTNjQpCi0gIyAgaW5jbHVkZSAiaml0L21pcHM2NC9Db2Rl R2VuZXJhdG9yLW1pcHM2NC5oIgotKyNlbGlmIGRlZmluZWQoSlNfQ09ERUdFTl9QUEM2NCkKLSsj ICBpbmNsdWRlICJqaXQvcHBjNjQvQ29kZUdlbmVyYXRvci1wcGM2NC5oIgotICNlbGlmIGRlZmlu ZWQoSlNfQ09ERUdFTl9OT05FKQotICMgIGluY2x1ZGUgImppdC9ub25lL0NvZGVHZW5lcmF0b3It bm9uZS5oIgotICNlbHNlCi0gIyAgZXJyb3IgIlVua25vd24gYXJjaGl0ZWN0dXJlISIKLSAjZW5k aWYKLSAKLSAjaW5jbHVkZSAid2FzbS9XYXNtR0MuaCIKLSAKLWRpZmYgLS1naXQgYS9qcy9zcmMv aml0L0ZsdXNoSUNhY2hlLmggYi9qcy9zcmMvaml0L0ZsdXNoSUNhY2hlLmgKLWluZGV4IGZlNjYw ODBkZjUuLjIwNzE1NjNjMWUgMTAwNjQ0Ci0tLS0gYS9qcy9zcmMvaml0L0ZsdXNoSUNhY2hlLmgK LSsrKyBiL2pzL3NyYy9qaXQvRmx1c2hJQ2FjaGUuaAotQEAgLTE5LDE3ICsxOSwxOCBAQCBuYW1l c3BhY2Ugaml0IHsKLSAjaWYgZGVmaW5lZChKU19DT0RFR0VOX1g4NikgfHwgZGVmaW5lZChKU19D T0RFR0VOX1g2NCkKLSAKLSBpbmxpbmUgdm9pZCBGbHVzaElDYWNoZSh2b2lkKiBjb2RlLCBzaXpl X3Qgc2l6ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICBib29sIGNvZGVJc1RocmVhZExvY2Fs ID0gdHJ1ZSkgewotICAgLy8gTm8tb3AuIENvZGUgYW5kIGRhdGEgY2FjaGVzIGFyZSBjb2hlcmVu dCBvbiB4ODYgYW5kIHg2NC4KLSB9Ci0gCi0gI2VsaWYgKGRlZmluZWQoSlNfQ09ERUdFTl9BUk0p IHx8IGRlZmluZWQoSlNfQ09ERUdFTl9BUk02NCkpIHx8IFwKLS0gICAgKGRlZmluZWQoSlNfQ09E RUdFTl9NSVBTMzIpIHx8IGRlZmluZWQoSlNfQ09ERUdFTl9NSVBTNjQpKQotKyAgICAoZGVmaW5l ZChKU19DT0RFR0VOX01JUFMzMikgfHwgZGVmaW5lZChKU19DT0RFR0VOX01JUFM2NCkpIHx8IFwK LSsgICAgZGVmaW5lZChKU19DT0RFR0VOX1BQQzY0KQotIAotIGV4dGVybiB2b2lkIEZsdXNoSUNh Y2hlKHZvaWQqIGNvZGUsIHNpemVfdCBzaXplLCBib29sIGNvZGVJc1RocmVhZExvY2FsID0gdHJ1 ZSk7Ci0gCi0gI2VsaWYgZGVmaW5lZChKU19DT0RFR0VOX05PTkUpCi0gCi0gaW5saW5lIHZvaWQg Rmx1c2hJQ2FjaGUodm9pZCogY29kZSwgc2l6ZV90IHNpemUsCi0gICAgICAgICAgICAgICAgICAg ICAgICAgYm9vbCBjb2RlSXNUaHJlYWRMb2NhbCA9IHRydWUpIHsKLSAgIE1PWl9DUkFTSCgpOwot ZGlmZiAtLWdpdCBhL2pzL3NyYy9qaXQvSml0RnJhbWVzLmNwcCBiL2pzL3NyYy9qaXQvSml0RnJh bWVzLmNwcAotaW5kZXggNzdjZmU2YTljZC4uNTA3ZjE1NTFlNiAxMDA2NDQKLS0tLSBhL2pzL3Ny Yy9qaXQvSml0RnJhbWVzLmNwcAotKysrIGIvanMvc3JjL2ppdC9KaXRGcmFtZXMuY3BwCi1AQCAt MjIyMCwxNiArMjIyMCwyNCBAQCBNYWNoaW5lU3RhdGUgTWFjaGluZVN0YXRlOjpGcm9tQmFpbG91 dChSZWdpc3RlckR1bXA6OkdQUkFycmF5JiByZWdzLAotICAgICBtYWNoaW5lLnNldFJlZ2lzdGVy TG9jYXRpb24oCi0gICAgICAgICBGbG9hdFJlZ2lzdGVyKEZsb2F0UmVnaXN0ZXJzOjpFbmNvZGlu ZyhpKSwgRmxvYXRSZWdpc3RlcnM6OlNpbmdsZSksCi0gICAgICAgICAmZnByZWdzW2ldKTsKLSAg ICAgbWFjaGluZS5zZXRSZWdpc3RlckxvY2F0aW9uKAotICAgICAgICAgRmxvYXRSZWdpc3RlcihG bG9hdFJlZ2lzdGVyczo6RW5jb2RpbmcoaSksIEZsb2F0UmVnaXN0ZXJzOjpEb3VibGUpLAotICAg ICAgICAgJmZwcmVnc1tpXSk7Ci0gICAgIC8vIE5vIFNJTUQgc3VwcG9ydCBpbiBiYWlsb3V0cywg U0lNRCBpcyBpbnRlcm5hbCB0byB3YXNtCi0gICB9Ci0rI2VsaWYgZGVmaW5lZChKU19DT0RFR0VO X1BQQzY0KQotKyAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IEZsb2F0UmVnaXN0ZXJzOjpUb3Rh bFBoeXM7IGkrKykgewotKyAgICBtYWNoaW5lLnNldFJlZ2lzdGVyTG9jYXRpb24oRmxvYXRSZWdp c3RlcihpKSwgJmZwcmVnc1tpXSk7Ci0rIyAgaWZkZWYgRU5BQkxFX1dBU01fU0lNRAotKyAgICAg Ly8gTmVlZHMgYWRkaXRpb25hbCBoYW5kbGluZyBpZiBWTVggb3Igbm9uLUZQUiBWU1ggcmVncyBh cmUgaW4gcGxheS4KLSsjICAgIGVycm9yICJTSU1EIGZvciBQUEMgTllJIgotKyMgIGVuZGlmCi0r ICB9Ci0gCi0gI2VsaWYgZGVmaW5lZChKU19DT0RFR0VOX05PTkUpCi0gICBNT1pfQ1JBU0goKTsK LSAjZWxzZQotICMgIGVycm9yICJVbmtub3duIGFyY2hpdGVjdHVyZSEiCi0gI2VuZGlmCi0gICBy ZXR1cm4gbWFjaGluZTsKLSB9Ci1kaWZmIC0tZ2l0IGEvanMvc3JjL2ppdC9KaXRGcmFtZXMuaCBi L2pzL3NyYy9qaXQvSml0RnJhbWVzLmgKLWluZGV4IDQwYzY2MWQxNDYuLjdiNGVhMzE1N2QgMTAw NjQ0Ci0tLS0gYS9qcy9zcmMvaml0L0ppdEZyYW1lcy5oCi0rKysgYi9qcy9zcmMvaml0L0ppdEZy YW1lcy5oCi1AQCAtMTUyLDE2ICsxNTIsMjYgQEAgc3RydWN0IFJlc3VtZUZyb21FeGNlcHRpb24g ewotICAgc3RhdGljIGNvbnN0IHVpbnQzMl90IFJFU1VNRV9FTlRSWV9GUkFNRSA9IDA7Ci0gICBz dGF0aWMgY29uc3QgdWludDMyX3QgUkVTVU1FX0NBVENIID0gMTsKLSAgIHN0YXRpYyBjb25zdCB1 aW50MzJfdCBSRVNVTUVfRklOQUxMWSA9IDI7Ci0gICBzdGF0aWMgY29uc3QgdWludDMyX3QgUkVT VU1FX0ZPUkNFRF9SRVRVUk4gPSAzOwotICAgc3RhdGljIGNvbnN0IHVpbnQzMl90IFJFU1VNRV9C QUlMT1VUID0gNDsKLSAgIHN0YXRpYyBjb25zdCB1aW50MzJfdCBSRVNVTUVfV0FTTSA9IDU7Ci0g ICBzdGF0aWMgY29uc3QgdWludDMyX3QgUkVTVU1FX1dBU01fQ0FUQ0ggPSA2OwotIAotKyNpZiBk ZWZpbmVkKEpTX0NPREVHRU5fUFBDNjQpCi0rICAvLyBUaGlzIGdldHMgYnVpbHQgb24gdGhlIHN0 YWNrIGFzIHBhcnQgb2YgZXhjZXB0aW9uIHJldHVybnMuIEJlY2F1c2UKLSsgIC8vIGl0IGdvZXMg cmlnaHQgb24gdG9wIG9mIHRoZSBzdGFjaywgYW4gQUJJLWNvbXBsaWFudCByb3V0aW5lIGNhbiB3 cmVjawotKyAgLy8gaXQsIHNvIHdlIGltcGxlbWVudCBhIG1pbmltdW0gUG93ZXIgSVNBIGxpbmth Z2UgYXJlYSAoZm91ciBkb3VibGV3b3JkcykuCi0rICB2b2lkICpfcHBjX3NwXzsKLSsgIHZvaWQg Kl9wcGNfY3JfOwotKyAgdm9pZCAqX3BwY19scl87Ci0rICB2b2lkICpfcHBjX3RvY187Ci0rI2Vu ZGlmCi0rCi0gICB1aW50OF90KiBmcmFtZVBvaW50ZXI7Ci0gICB1aW50OF90KiBzdGFja1BvaW50 ZXI7Ci0gICB1aW50OF90KiB0YXJnZXQ7Ci0gICB1aW50MzJfdCBraW5kOwotIAotICAgLy8gVmFs dWUgdG8gcHVzaCB3aGVuIHJlc3VtaW5nIGludG8gYSB8ZmluYWxseXwgYmxvY2suCi0gICAvLyBB bHNvIHVzZWQgYnkgV2FzbSB0byBzZW5kIHRoZSBleGNlcHRpb24gb2JqZWN0IHRvIHRoZSB0aHJv dyBzdHViLgotICAgSlM6OlZhbHVlIGV4Y2VwdGlvbjsKLWRpZmYgLS1naXQgYS9qcy9zcmMvaml0 L0ppdE9wdGlvbnMuY3BwIGIvanMvc3JjL2ppdC9KaXRPcHRpb25zLmNwcAotaW5kZXggZGUxMzc3 N2ZjMy4uNzk1ZTQxYmYyMSAxMDA2NDQKLS0tLSBhL2pzL3NyYy9qaXQvSml0T3B0aW9ucy5jcHAK LSsrKyBiL2pzL3NyYy9qaXQvSml0T3B0aW9ucy5jcHAKLUBAIC0xMzIsMTcgKzEzMiwyMiBAQCBE ZWZhdWx0Sml0T3B0aW9uczo6RGVmYXVsdEppdE9wdGlvbnMoKSB7Ci0gICAvLyBXYXJwIGNvbXBp bGUgR2VuZXJhdG9yIGZ1bmN0aW9ucwotICAgU0VUX0RFRkFVTFQod2FycEdlbmVyYXRvciwgdHJ1 ZSk7Ci0gCi0gICAvLyBXaGV0aGVyIHRoZSBJb25Nb25rZXkgYW5kIEJhc2VsaW5lIEpJVHMgYXJl IGVuYWJsZWQgZm9yIFRydXN0ZWQgUHJpbmNpcGFscy4KLSAgIC8vIChJZ25vcmVkIGlmIGlvbiBv ciBiYXNlbGluZUppdCBpcyBzZXQgdG8gdHJ1ZS4pCi0gICBTRVRfREVGQVVMVChqaXRGb3JUcnVz dGVkUHJpbmNpcGFscywgZmFsc2UpOwotIAotICAgLy8gV2hldGhlciB0aGUgUmVnRXhwIEpJVCBp cyBlbmFibGVkLgotKyNpZiBkZWZpbmVkKEpTX0NPREVHRU5fUFBDNjQpCi0rICAvLyBUaGlzIG1h eSBnZW5lcmF0ZSBJU0EgMyBpbnN0cnVjdGlvbnMuIFRoZSBvdGhlciBKSVQgdGllcnMgZ2F0ZSBv biBpdCB0b28uCi0rICBTRVRfREVGQVVMVChuYXRpdmVSZWdFeHAsIE1hY3JvQXNzZW1ibGVyOjpT dXBwb3J0c0Zsb2F0aW5nUG9pbnQoKSk7Ci0rI2Vsc2UKLSAgIFNFVF9ERUZBVUxUKG5hdGl2ZVJl Z0V4cCwgdHJ1ZSk7Ci0rI2VuZGlmCi0gCi0gICAvLyBXaGV0aGVyIFdhcnAgc2hvdWxkIHVzZSBJ Q3MgaW5zdGVhZCBvZiB0cmFuc3BpbGluZyBCYXNlbGluZSBDYWNoZUlSLgotICAgU0VUX0RFRkFV TFQoZm9yY2VJbmxpbmVDYWNoZXMsIGZhbHNlKTsKLSAKLSAgIC8vIFdoZXRoZXIgYWxsIElDcyBz aG91bGQgYmUgaW5pdGlhbGl6ZWQgYXMgbWVnYW1vcnBoaWMgSUNzLgotICAgU0VUX0RFRkFVTFQo Zm9yY2VNZWdhbW9ycGhpY0lDcywgZmFsc2UpOwotIAotICAgLy8gVG9nZ2xlcyB3aGV0aGVyIGxh cmdlIHNjcmlwdHMgYXJlIHJlamVjdGVkLgotZGlmZiAtLWdpdCBhL2pzL3NyYy9qaXQvTElSLmgg Yi9qcy9zcmMvaml0L0xJUi5oCi1pbmRleCAwMjRiZDc5OGNhLi4wY2Q0M2MxMmFiIDEwMDY0NAot LS0tIGEvanMvc3JjL2ppdC9MSVIuaAotKysrIGIvanMvc3JjL2ppdC9MSVIuaAotQEAgLTE5Mzks MTYgKzE5MzksMTggQEAgQW55UmVnaXN0ZXIgTEFsbG9jYXRpb246OnRvUmVnaXN0ZXIoKSBjb25z dCB7Ci0gIyAgaW5jbHVkZSAiaml0L2FybTY0L0xJUi1hcm02NC5oIgotICNlbGlmIGRlZmluZWQo SlNfQ09ERUdFTl9NSVBTMzIpIHx8IGRlZmluZWQoSlNfQ09ERUdFTl9NSVBTNjQpCi0gIyAgaWYg ZGVmaW5lZChKU19DT0RFR0VOX01JUFMzMikKLSAjICAgIGluY2x1ZGUgImppdC9taXBzMzIvTElS LW1pcHMzMi5oIgotICMgIGVsaWYgZGVmaW5lZChKU19DT0RFR0VOX01JUFM2NCkKLSAjICAgIGlu Y2x1ZGUgImppdC9taXBzNjQvTElSLW1pcHM2NC5oIgotICMgIGVuZGlmCi0gIyAgaW5jbHVkZSAi aml0L21pcHMtc2hhcmVkL0xJUi1taXBzLXNoYXJlZC5oIgotKyNlbGlmIGRlZmluZWQoSlNfQ09E RUdFTl9QUEM2NCkKLSsjICBpbmNsdWRlICJqaXQvcHBjNjQvTElSLXBwYzY0LmgiCi0gI2VsaWYg ZGVmaW5lZChKU19DT0RFR0VOX05PTkUpCi0gIyAgaW5jbHVkZSAiaml0L25vbmUvTElSLW5vbmUu aCIKLSAjZWxzZQotICMgIGVycm9yICJVbmtub3duIGFyY2hpdGVjdHVyZSEiCi0gI2VuZGlmCi0g Ci0gI3VuZGVmIExJUl9IRUFERVIKLSAKLWRpZmYgLS1naXQgYS9qcy9zcmMvaml0L0xhYmVsLmgg Yi9qcy9zcmMvaml0L0xhYmVsLmgKLWluZGV4IGE4ZjkzZGUzNzguLjQ4MGIxOGIyNTEgMTAwNjQ0 Ci0tLS0gYS9qcy9zcmMvaml0L0xhYmVsLmgKLSsrKyBiL2pzL3NyYy9qaXQvTGFiZWwuaAotQEAg LTIxLDE3ICsyMSwxOCBAQCBzdHJ1Y3QgTGFiZWxCYXNlIHsKLSAgIHVpbnQzMl90IGJvdW5kXyA6 IDE7Ci0gCi0gICAvLyBvZmZzZXRfIDwgSU5WQUxJRF9PRkZTRVQgbWVhbnMgdGhhdCB0aGUgbGFi ZWwgaXMgZWl0aGVyIGJvdW5kIG9yIGhhcwotICAgLy8gaW5jb21pbmcgdXNlcyBhbmQgbmVlZHMg dG8gYmUgYm91bmQuCi0gICB1aW50MzJfdCBvZmZzZXRfIDogMzE7Ci0gCi0gICB2b2lkIG9wZXJh dG9yPShjb25zdCBMYWJlbEJhc2UmIGxhYmVsKSA9IGRlbGV0ZTsKLSAKLS0jaWYgZGVmaW5lZChK U19DT0RFR0VOX01JUFMzMikgfHwgZGVmaW5lZChKU19DT0RFR0VOX01JUFM2NCkKLSsjaWYgZGVm aW5lZChKU19DT0RFR0VOX01JUFMzMikgfHwgZGVmaW5lZChKU19DT0RFR0VOX01JUFM2NCkgfHwg XAotKyAgICBkZWZpbmVkKEpTX0NPREVHRU5fUFBDNjQpCi0gIHB1YmxpYzoKLSAjZW5kaWYKLSAg IHN0YXRpYyBjb25zdCB1aW50MzJfdCBJTlZBTElEX09GRlNFVCA9IDB4N2ZmZmZmZmY7ICAvLyBV SU5UMzFfTUFYLgotIAotICBwdWJsaWM6Ci0gICBMYWJlbEJhc2UoKSA6IGJvdW5kXyhmYWxzZSks IG9mZnNldF8oSU5WQUxJRF9PRkZTRVQpIHt9Ci0gCi0gICAvLyBJZiB0aGUgbGFiZWwgaXMgYm91 bmQsIGFsbCBpbmNvbWluZyBlZGdlcyBoYXZlIGJlZW4gcGF0Y2hlZCBhbmQgYW55Ci1kaWZmIC0t Z2l0IGEvanMvc3JjL2ppdC9Mb3dlcmluZy5oIGIvanMvc3JjL2ppdC9Mb3dlcmluZy5oCi1pbmRl eCA5Nzk2ODdkYTg1Li5jMDY0ZTVkOTE0IDEwMDY0NAotLS0tIGEvanMvc3JjL2ppdC9Mb3dlcmlu Zy5oCi0rKysgYi9qcy9zcmMvaml0L0xvd2VyaW5nLmgKLUBAIC0xOCwxNiArMTgsMTggQEAKLSAj ZWxpZiBkZWZpbmVkKEpTX0NPREVHRU5fQVJNKQotICMgIGluY2x1ZGUgImppdC9hcm0vTG93ZXJp bmctYXJtLmgiCi0gI2VsaWYgZGVmaW5lZChKU19DT0RFR0VOX0FSTTY0KQotICMgIGluY2x1ZGUg ImppdC9hcm02NC9Mb3dlcmluZy1hcm02NC5oIgotICNlbGlmIGRlZmluZWQoSlNfQ09ERUdFTl9N SVBTMzIpCi0gIyAgaW5jbHVkZSAiaml0L21pcHMzMi9Mb3dlcmluZy1taXBzMzIuaCIKLSAjZWxp ZiBkZWZpbmVkKEpTX0NPREVHRU5fTUlQUzY0KQotICMgIGluY2x1ZGUgImppdC9taXBzNjQvTG93 ZXJpbmctbWlwczY0LmgiCi0rI2VsaWYgZGVmaW5lZChKU19DT0RFR0VOX1BQQzY0KQotKyMgIGlu Y2x1ZGUgImppdC9wcGM2NC9Mb3dlcmluZy1wcGM2NC5oIgotICNlbGlmIGRlZmluZWQoSlNfQ09E RUdFTl9OT05FKQotICMgIGluY2x1ZGUgImppdC9ub25lL0xvd2VyaW5nLW5vbmUuaCIKLSAjZWxz ZQotICMgIGVycm9yICJVbmtub3duIGFyY2hpdGVjdHVyZSEiCi0gI2VuZGlmCi0gCi0gbmFtZXNw YWNlIGpzIHsKLSBuYW1lc3BhY2Ugaml0IHsKLWRpZmYgLS1naXQgYS9qcy9zcmMvaml0L01hY3Jv QXNzZW1ibGVyLWlubC5oIGIvanMvc3JjL2ppdC9NYWNyb0Fzc2VtYmxlci1pbmwuaAotaW5kZXgg Y2YxNmNkZjBhNy4uZmEzOWM1ZjRkMiAxMDA2NDQKLS0tLSBhL2pzL3NyYy9qaXQvTWFjcm9Bc3Nl bWJsZXItaW5sLmgKLSsrKyBiL2pzL3NyYy9qaXQvTWFjcm9Bc3NlbWJsZXItaW5sLmgKLUBAIC0z MCwxNiArMzAsMTggQEAKLSAjZWxpZiBkZWZpbmVkKEpTX0NPREVHRU5fQVJNKQotICMgIGluY2x1 ZGUgImppdC9hcm0vTWFjcm9Bc3NlbWJsZXItYXJtLWlubC5oIgotICNlbGlmIGRlZmluZWQoSlNf Q09ERUdFTl9BUk02NCkKLSAjICBpbmNsdWRlICJqaXQvYXJtNjQvTWFjcm9Bc3NlbWJsZXItYXJt NjQtaW5sLmgiCi0gI2VsaWYgZGVmaW5lZChKU19DT0RFR0VOX01JUFMzMikKLSAjICBpbmNsdWRl ICJqaXQvbWlwczMyL01hY3JvQXNzZW1ibGVyLW1pcHMzMi1pbmwuaCIKLSAjZWxpZiBkZWZpbmVk KEpTX0NPREVHRU5fTUlQUzY0KQotICMgIGluY2x1ZGUgImppdC9taXBzNjQvTWFjcm9Bc3NlbWJs ZXItbWlwczY0LWlubC5oIgotKyNlbGlmIGRlZmluZWQoSlNfQ09ERUdFTl9QUEM2NCkKLSsjICBp bmNsdWRlICJqaXQvcHBjNjQvTWFjcm9Bc3NlbWJsZXItcHBjNjQtaW5sLmgiCi0gI2VsaWYgIWRl ZmluZWQoSlNfQ09ERUdFTl9OT05FKQotICMgIGVycm9yICJVbmtub3duIGFyY2hpdGVjdHVyZSEi Ci0gI2VuZGlmCi0gCi0gI2luY2x1ZGUgIndhc20vV2FzbUJ1aWx0aW5zLmgiCi0gCi0gbmFtZXNw YWNlIGpzIHsKLSBuYW1lc3BhY2Ugaml0IHsKLWRpZmYgLS1naXQgYS9qcy9zcmMvaml0L01hY3Jv QXNzZW1ibGVyLmNwcCBiL2pzL3NyYy9qaXQvTWFjcm9Bc3NlbWJsZXIuY3BwCi1pbmRleCAyYTNh ZWVjNjA3Li5jYmU5ZDE0ZjQ2IDEwMDY0NAotLS0tIGEvanMvc3JjL2ppdC9NYWNyb0Fzc2VtYmxl ci5jcHAKLSsrKyBiL2pzL3NyYy9qaXQvTWFjcm9Bc3NlbWJsZXIuY3BwCi1AQCAtNDA0NCwxNiAr NDA0NCwxOCBAQCB2b2lkIE1hY3JvQXNzZW1ibGVyOjplbWl0UHJlQmFycmllckZhc3RQYXRoKEpT UnVudGltZSogcnQsIE1JUlR5cGUgdHlwZSwKLSAjZWxpZiBKU19DT0RFR0VOX0FSTQotICAgbWFf bHNsKHRlbXAzLCB0ZW1wMSwgdGVtcDEpOwotICNlbGlmIEpTX0NPREVHRU5fQVJNNjQKLSAgIExz bChBUk1SZWdpc3Rlcih0ZW1wMSwgNjQpLCBBUk1SZWdpc3Rlcih0ZW1wMSwgNjQpLCBBUk1SZWdp c3Rlcih0ZW1wMywgNjQpKTsKLSAjZWxpZiBKU19DT0RFR0VOX01JUFMzMgotICAgbWFfc2xsKHRl bXAxLCB0ZW1wMSwgdGVtcDMpOwotICNlbGlmIEpTX0NPREVHRU5fTUlQUzY0Ci0gICBtYV9kc2xs KHRlbXAxLCB0ZW1wMSwgdGVtcDMpOwotKyNlbGlmIEpTX0NPREVHRU5fUFBDNjQKLSsgIGFzX3Ns ZCh0ZW1wMSwgdGVtcDEsIHRlbXAzKTsKLSAjZWxpZiBKU19DT0RFR0VOX05PTkUKLSAgIE1PWl9D UkFTSCgpOwotICNlbHNlCi0gIyAgZXJyb3IgIlVua25vd24gYXJjaGl0ZWN0dXJlIgotICNlbmRp ZgotIAotICAgLy8gTm8gYmFycmllciBpcyBuZWVkZWQgaWYgdGhlIGJpdCBpcyBzZXQsIHx3b3Jk ICYgbWFzayAhPSAwfC4KLSAgIGJyYW5jaFRlc3RQdHIoQXNzZW1ibGVyOjpOb25aZXJvLCB0ZW1w MiwgdGVtcDEsIG5vQmFycmllcik7Ci1kaWZmIC0tZ2l0IGEvanMvc3JjL2ppdC9NYWNyb0Fzc2Vt Ymxlci5oIGIvanMvc3JjL2ppdC9NYWNyb0Fzc2VtYmxlci5oCi1pbmRleCBlMmQ1M2Q1Y2VmLi5j YjAxNDhiOTRlIDEwMDY0NAotLS0tIGEvanMvc3JjL2ppdC9NYWNyb0Fzc2VtYmxlci5oCi0rKysg Yi9qcy9zcmMvaml0L01hY3JvQXNzZW1ibGVyLmgKLUBAIC0yMCwxNiArMjAsMTggQEAKLSAjZWxp ZiBkZWZpbmVkKEpTX0NPREVHRU5fQVJNKQotICMgIGluY2x1ZGUgImppdC9hcm0vTWFjcm9Bc3Nl bWJsZXItYXJtLmgiCi0gI2VsaWYgZGVmaW5lZChKU19DT0RFR0VOX0FSTTY0KQotICMgIGluY2x1 ZGUgImppdC9hcm02NC9NYWNyb0Fzc2VtYmxlci1hcm02NC5oIgotICNlbGlmIGRlZmluZWQoSlNf Q09ERUdFTl9NSVBTMzIpCi0gIyAgaW5jbHVkZSAiaml0L21pcHMzMi9NYWNyb0Fzc2VtYmxlci1t aXBzMzIuaCIKLSAjZWxpZiBkZWZpbmVkKEpTX0NPREVHRU5fTUlQUzY0KQotICMgIGluY2x1ZGUg ImppdC9taXBzNjQvTWFjcm9Bc3NlbWJsZXItbWlwczY0LmgiCi0rI2VsaWYgZGVmaW5lZChKU19D T0RFR0VOX1BQQzY0KQotKyMgIGluY2x1ZGUgImppdC9wcGM2NC9NYWNyb0Fzc2VtYmxlci1wcGM2 NC5oIgotICNlbGlmIGRlZmluZWQoSlNfQ09ERUdFTl9OT05FKQotICMgIGluY2x1ZGUgImppdC9u b25lL01hY3JvQXNzZW1ibGVyLW5vbmUuaCIKLSAjZWxzZQotICMgIGVycm9yICJVbmtub3duIGFy Y2hpdGVjdHVyZSEiCi0gI2VuZGlmCi0gI2luY2x1ZGUgImppdC9BQklGdW5jdGlvbnMuaCIKLSAj aW5jbHVkZSAiaml0L0F0b21pY09wLmgiCi0gI2luY2x1ZGUgImppdC9BdXRvSml0Q29udGV4dEFs bG9jLmgiCi1AQCAtODcsMTggKzg5LDE4IEBACi0gLy8gICAvL3t7eyBjaGVja19tYWNyb2Fzc2Vt Ymxlcl9zdHlsZQotIC8vICAgaW5saW5lIHVpbnQzMl90Ci0gLy8gICBNYWNyb0Fzc2VtYmxlcjo6 ZnJhbWVQdXNoZWQoKSBjb25zdAotIC8vICAgewotIC8vICAgICAgIHJldHVybiBmcmFtZVB1c2hl ZF87Ci0gLy8gICB9Ci0gLy8gICAvLy8vfX19IGNoZWNrX21hY3JvYXNzZW1ibGVyX3N0eWxlCi0g Ci0tI2RlZmluZSBBTExfQVJDSCBtaXBzMzIsIG1pcHM2NCwgYXJtLCBhcm02NCwgeDg2LCB4NjQK LS0jZGVmaW5lIEFMTF9TSEFSRURfQVJDSCBhcm0sIGFybTY0LCB4ODZfc2hhcmVkLCBtaXBzX3No YXJlZAotKyNkZWZpbmUgQUxMX0FSQ0ggbWlwczMyLCBtaXBzNjQsIGFybSwgYXJtNjQsIHg4Niwg eDY0LCBwcGM2NAotKyNkZWZpbmUgQUxMX1NIQVJFRF9BUkNIIGFybSwgYXJtNjQsIHg4Nl9zaGFy ZWQsIG1pcHNfc2hhcmVkLCBwcGM2NAotIAotIC8vICogSG93IHRoaXMgbWFjcm8gd29ya3M6Ci0g Ly8KLSAvLyBERUZJTkVEX09OIGlzIGEgbWFjcm8gd2hpY2ggY2hlY2sgaWYsIGZvciB0aGUgY3Vy cmVudCBhcmNoaXRlY3R1cmUsIHRoZQotIC8vIG1ldGhvZCBpcyBkZWZpbmVkIG9uIHRoZSBtYWNy byBhc3NlbWJsZXIgb3Igbm90LgotIC8vCi0gLy8gRm9yIGVhY2ggYXJjaGl0ZWN0dXJlLCB3ZSBo YXZlIGEgbWFjcm8gbmFtZWQgREVGSU5FRF9PTl9hcmNoLiAgVGhpcyBtYWNybyBpcwotIC8vIGVt cHR5IGlmIHRoaXMgaXMgbm90IHRoZSBjdXJyZW50IGFyY2hpdGVjdHVyZS4gIE90aGVyd2lzZSBp dCBtdXN0IGJlIGVpdGhlcgotQEAgLTEzNCwxNiArMTM2LDE3IEBACi0gI2RlZmluZSBERUZJTkVE X09OX3g4NgotICNkZWZpbmUgREVGSU5FRF9PTl94NjQKLSAjZGVmaW5lIERFRklORURfT05feDg2 X3NoYXJlZAotICNkZWZpbmUgREVGSU5FRF9PTl9hcm0KLSAjZGVmaW5lIERFRklORURfT05fYXJt NjQKLSAjZGVmaW5lIERFRklORURfT05fbWlwczMyCi0gI2RlZmluZSBERUZJTkVEX09OX21pcHM2 NAotICNkZWZpbmUgREVGSU5FRF9PTl9taXBzX3NoYXJlZAotKyNkZWZpbmUgREVGSU5FRF9PTl9w cGM2NAotICNkZWZpbmUgREVGSU5FRF9PTl9ub25lCi0gCi0gLy8gU3BlY2lhbGl6ZSBmb3IgZWFj aCBhcmNoaXRlY3R1cmUuCi0gI2lmIGRlZmluZWQoSlNfQ09ERUdFTl9YODYpCi0gIyAgdW5kZWYg REVGSU5FRF9PTl94ODYKLSAjICBkZWZpbmUgREVGSU5FRF9PTl94ODYgZGVmaW5lCi0gIyAgdW5k ZWYgREVGSU5FRF9PTl94ODZfc2hhcmVkCi0gIyAgZGVmaW5lIERFRklORURfT05feDg2X3NoYXJl ZCBkZWZpbmUKLUBAIC0xNjMsMTYgKzE2NiwxOSBAQAotICMgIGRlZmluZSBERUZJTkVEX09OX21p cHMzMiBkZWZpbmUKLSAjICB1bmRlZiBERUZJTkVEX09OX21pcHNfc2hhcmVkCi0gIyAgZGVmaW5l IERFRklORURfT05fbWlwc19zaGFyZWQgZGVmaW5lCi0gI2VsaWYgZGVmaW5lZChKU19DT0RFR0VO X01JUFM2NCkKLSAjICB1bmRlZiBERUZJTkVEX09OX21pcHM2NAotICMgIGRlZmluZSBERUZJTkVE X09OX21pcHM2NCBkZWZpbmUKLSAjICB1bmRlZiBERUZJTkVEX09OX21pcHNfc2hhcmVkCi0gIyAg ZGVmaW5lIERFRklORURfT05fbWlwc19zaGFyZWQgZGVmaW5lCi0rI2VsaWYgZGVmaW5lZChKU19D T0RFR0VOX1BQQzY0KQotKyMgIHVuZGVmIERFRklORURfT05fcHBjNjQKLSsjICBkZWZpbmUgREVG SU5FRF9PTl9wcGM2NCBkZWZpbmUKLSAjZWxpZiBkZWZpbmVkKEpTX0NPREVHRU5fTk9ORSkKLSAj ICB1bmRlZiBERUZJTkVEX09OX25vbmUKLSAjICBkZWZpbmUgREVGSU5FRF9PTl9ub25lIGNyYXNo Ci0gI2Vsc2UKLSAjICBlcnJvciAiVW5rbm93biBhcmNoaXRlY3R1cmUhIgotICNlbmRpZgotIAot ICNkZWZpbmUgREVGSU5FRF9PTl9SRVNVTFRfY3Jhc2ggXAotQEAgLTQ3OSwzNiArNDg1LDM2IEBA IGNsYXNzIE1hY3JvQXNzZW1ibGVyIDogcHVibGljIE1hY3JvQXNzZW1ibGVyU3BlY2lmaWMgewot ICAgLy8gdGFyZ2V0cyByb2xsIHRoZWlyIG93biBzYXZlLWNvZGUgaW5zdGVhZC4KLSAgIC8vCi0g ICAvLyBOZXZlcnRoZWxlc3MsIGJlY2F1c2Ugc29tZSB0YXJnZXRzICpkbyogY2FsbCBQdXNoUmVn c0luTWFzayBmcm9tCi0gICAvLyBKaXRSdW50aW1lOjpnZW5lcmF0ZUludmFsaWRhdG9yLCB5b3Ug c2hvdWxkIGNoZWNrIGNhcmVmdWxseSBhbGwgb2YgdGhlCi0gICAvLyA6OmdlbmVyYXRlSW52YWxp ZGF0b3IgbWV0aG9kcyBpZiB5b3UgY2hhbmdlIHRoZSBQdXNoUmVnc0luTWFzayBmb3JtYXQuCi0g Ci0gICAvLyBUaGUgc2l6ZSBvZiB0aGUgYXJlYSB1c2VkIGJ5IFB1c2hSZWdzSW5NYXNrLgotICAg c2l6ZV90IFB1c2hSZWdzSW5NYXNrU2l6ZUluQnl0ZXMoTGl2ZVJlZ2lzdGVyU2V0IHNldCkKLS0g ICAgICBERUZJTkVEX09OKGFybSwgYXJtNjQsIG1pcHMzMiwgbWlwczY0LCB4ODZfc2hhcmVkKTsK LSsgICAgICBERUZJTkVEX09OKGFybSwgYXJtNjQsIG1pcHMzMiwgbWlwczY0LCB4ODZfc2hhcmVk LCBwcGM2NCk7Ci0gCi0gICB2b2lkIFB1c2hSZWdzSW5NYXNrKExpdmVSZWdpc3RlclNldCBzZXQp Ci0tICAgICAgREVGSU5FRF9PTihhcm0sIGFybTY0LCBtaXBzMzIsIG1pcHM2NCwgeDg2X3NoYXJl ZCk7Ci0rICAgICAgREVGSU5FRF9PTihhcm0sIGFybTY0LCBtaXBzMzIsIG1pcHM2NCwgeDg2X3No YXJlZCwgcHBjNjQpOwotICAgdm9pZCBQdXNoUmVnc0luTWFzayhMaXZlR2VuZXJhbFJlZ2lzdGVy U2V0IHNldCk7Ci0gCi0gICAvLyBMaWtlIFB1c2hSZWdzSW5NYXNrLCBidXQgaW5zdGVhZCBvZiBw dXNoaW5nIHRoZSByZWdpc3RlcnMsIHN0b3JlIHRoZW0gdG8KLSAgIC8vIHxkZXN0fC4gfGRlc3R8 IHNob3VsZCBwb2ludCB0byB0aGUgZW5kIG9mIHRoZSByZXNlcnZlZCBzcGFjZSwgc28gdGhlCi0g ICAvLyBmaXJzdCByZWdpc3RlciB3aWxsIGJlIHN0b3JlZCBhdCB8ZGVzdC5vZmZzZXQgLSBzaXpl b2YocmVnaXN0ZXIpfC4gIEl0IGlzCi0gICAvLyByZXF1aXJlZCB0aGF0IHxkZXN0Lm9mZnNldHwg aXMgYXQgbGVhc3QgYXMgbGFyZ2UgYXMgdGhlIHZhbHVlIGNvbXB1dGVkIGJ5Ci0gICAvLyBQdXNo UmVnc0luTWFza1NpemVJbkJ5dGVzIGZvciB0aGlzIHxzZXR8LiAgSW4gb3RoZXIgd29yZHMsIHxk ZXN0LmJhc2V8Ci0gICAvLyBtdXN0IHBvaW50IHRvIGVpdGhlciB0aGUgbG93ZXN0IGFkZHJlc3Mg aW4gdGhlIHNhdmUgYXJlYSwgb3Igc29tZSBhZGRyZXNzCi0gICAvLyBiZWxvdyB0aGF0LgotICAg dm9pZCBzdG9yZVJlZ3NJbk1hc2soTGl2ZVJlZ2lzdGVyU2V0IHNldCwgQWRkcmVzcyBkZXN0LCBS ZWdpc3RlciBzY3JhdGNoKQotLSAgICAgIERFRklORURfT04oYXJtLCBhcm02NCwgbWlwczMyLCBt aXBzNjQsIHg4Nl9zaGFyZWQpOwotKyAgICAgIERFRklORURfT04oYXJtLCBhcm02NCwgbWlwczMy LCBtaXBzNjQsIHg4Nl9zaGFyZWQsIHBwYzY0KTsKLSAKLSAgIHZvaWQgUG9wUmVnc0luTWFzayhM aXZlUmVnaXN0ZXJTZXQgc2V0KTsKLSAgIHZvaWQgUG9wUmVnc0luTWFzayhMaXZlR2VuZXJhbFJl Z2lzdGVyU2V0IHNldCk7Ci0gICB2b2lkIFBvcFJlZ3NJbk1hc2tJZ25vcmUoTGl2ZVJlZ2lzdGVy U2V0IHNldCwgTGl2ZVJlZ2lzdGVyU2V0IGlnbm9yZSkKLS0gICAgICBERUZJTkVEX09OKGFybSwg YXJtNjQsIG1pcHMzMiwgbWlwczY0LCB4ODZfc2hhcmVkKTsKLSsgICAgICBERUZJTkVEX09OKGFy bSwgYXJtNjQsIG1pcHMzMiwgbWlwczY0LCB4ODZfc2hhcmVkLCBwcGM2NCk7Ci0gCi0gICAvLyA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KLSAgIC8vIFN0YWNrIG1hbmlwdWxhdGlvbiBmdW5jdGlvbnMgLS0gc2luZ2xlIHJlZ2lz dGVycy92YWx1ZXMuCi0gCi0gICB2b2lkIFB1c2goY29uc3QgT3BlcmFuZCBvcCkgREVGSU5FRF9P Tih4ODZfc2hhcmVkKTsKLSAgIHZvaWQgUHVzaChSZWdpc3RlciByZWcpIFBFUl9TSEFSRURfQVJD SDsKLSAgIHZvaWQgUHVzaChSZWdpc3RlciByZWcxLCBSZWdpc3RlciByZWcyLCBSZWdpc3RlciBy ZWczLCBSZWdpc3RlciByZWc0KQotICAgICAgIERFRklORURfT04oYXJtNjQpOwotQEAgLTUzMSwx NyArNTM3LDE3IEBAIGNsYXNzIE1hY3JvQXNzZW1ibGVyIDogcHVibGljIE1hY3JvQXNzZW1ibGVy U3BlY2lmaWMgewotICAgaW5saW5lIENvZGVPZmZzZXQgUHVzaFdpdGhQYXRjaChJbW1Xb3JkIHdv cmQpOwotICAgaW5saW5lIENvZGVPZmZzZXQgUHVzaFdpdGhQYXRjaChJbW1QdHIgaW1tKTsKLSAK LSAgIHZvaWQgUG9wKGNvbnN0IE9wZXJhbmQgb3ApIERFRklORURfT04oeDg2X3NoYXJlZCk7Ci0g ICB2b2lkIFBvcChSZWdpc3RlciByZWcpIFBFUl9TSEFSRURfQVJDSDsKLSAgIHZvaWQgUG9wKEZs b2F0UmVnaXN0ZXIgdCkgUEVSX1NIQVJFRF9BUkNIOwotICAgdm9pZCBQb3AoY29uc3QgVmFsdWVP cGVyYW5kJiB2YWwpIFBFUl9TSEFSRURfQVJDSDsKLSAgIHZvaWQgUG9wRmxhZ3MoKSBERUZJTkVE X09OKHg4Nl9zaGFyZWQpOwotLSAgdm9pZCBQb3BTdGFja1B0cigpIERFRklORURfT04oYXJtLCBt aXBzX3NoYXJlZCwgeDg2X3NoYXJlZCk7Ci0rICB2b2lkIFBvcFN0YWNrUHRyKCkgREVGSU5FRF9P Tihhcm0sIG1pcHNfc2hhcmVkLCB4ODZfc2hhcmVkLCBwcGM2NCk7Ci0gICB2b2lkIHBvcFJvb3Rl ZChWTUZ1bmN0aW9uRGF0YTo6Um9vdFR5cGUgcm9vdFR5cGUsIFJlZ2lzdGVyIGNlbGxSZWcsCi0g ICAgICAgICAgICAgICAgICBjb25zdCBWYWx1ZU9wZXJhbmQmIHZhbHVlUmVnKTsKLSAKLSAgIC8v IE1vdmUgdGhlIHN0YWNrIHBvaW50ZXIgYmFzZWQgb24gdGhlIHJlcXVlc3RlZCBhbW91bnQuCi0g ICB2b2lkIGFkanVzdFN0YWNrKGludCBhbW91bnQpOwotICAgdm9pZCBmcmVlU3RhY2sodWludDMy X3QgYW1vdW50KTsKLSAKLSAgIC8vIFdhcm5pbmc6IFRoaXMgbWV0aG9kIGRvZXMgbm90IHVwZGF0 ZSB0aGUgZnJhbWVQdXNoZWQoKSBjb3VudGVyLgotQEAgLTU4OSwxOCArNTk1LDE4IEBAIGNsYXNz IE1hY3JvQXNzZW1ibGVyIDogcHVibGljIE1hY3JvQXNzZW1ibGVyU3BlY2lmaWMgewotIAotICAg Ly8gUHVzaCB0aGUgcmV0dXJuIGFkZHJlc3MgYW5kIG1ha2UgYSBjYWxsLiBPbiBwbGF0Zm9ybXMg d2hlcmUgdGhpcyBmdW5jdGlvbgotICAgLy8gaXMgbm90IGRlZmluZWQsIHB1c2ggdGhlIGxpbmsg cmVnaXN0ZXIgKHB1c2hSZXR1cm5BZGRyZXNzKSBhdCB0aGUgZW50cnkKLSAgIC8vIHBvaW50IG9m IHRoZSBjYWxsZWUuCi0gICB2b2lkIGNhbGxBbmRQdXNoUmV0dXJuQWRkcmVzcyhSZWdpc3RlciBy ZWcpIERFRklORURfT04oeDg2X3NoYXJlZCk7Ci0gICB2b2lkIGNhbGxBbmRQdXNoUmV0dXJuQWRk cmVzcyhMYWJlbCogbGFiZWwpIERFRklORURfT04oeDg2X3NoYXJlZCk7Ci0gCi0gICAvLyBUaGVz ZSBkbyBub3QgYWRqdXN0IGZyYW1lUHVzaGVkKCkuCi0tICB2b2lkIHB1c2hSZXR1cm5BZGRyZXNz KCkgREVGSU5FRF9PTihtaXBzX3NoYXJlZCwgYXJtLCBhcm02NCk7Ci0tICB2b2lkIHBvcFJldHVy bkFkZHJlc3MoKSBERUZJTkVEX09OKG1pcHNfc2hhcmVkLCBhcm0sIGFybTY0KTsKLSsgIHZvaWQg cHVzaFJldHVybkFkZHJlc3MoKSBERUZJTkVEX09OKG1pcHNfc2hhcmVkLCBhcm0sIGFybTY0LCBw cGM2NCk7Ci0rICB2b2lkIHBvcFJldHVybkFkZHJlc3MoKSBERUZJTkVEX09OKG1pcHNfc2hhcmVk LCBhcm0sIGFybTY0LCBwcGM2NCk7Ci0gCi0gICAvLyBVc2VmdWwgZm9yIGRlYWxpbmcgd2l0aCB0 d28tdmFsdWVkIHJldHVybnMuCi0gICB2b2lkIG1vdmVSZWdQYWlyKFJlZ2lzdGVyIHNyYzAsIFJl Z2lzdGVyIHNyYzEsIFJlZ2lzdGVyIGRzdDAsIFJlZ2lzdGVyIGRzdDEsCi0gICAgICAgICAgICAg ICAgICAgIE1vdmVPcDo6VHlwZSB0eXBlID0gTW92ZU9wOjpHRU5FUkFMKTsKLSAKLSAgcHVibGlj OgotICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09Ci0gICAvLyBQYXRjaGFibGUgbmVhci9mYXIganVtcHMuCi1AQCAtNjIx LDIwICs2MjcsMjAgQEAgY2xhc3MgTWFjcm9Bc3NlbWJsZXIgOiBwdWJsaWMgTWFjcm9Bc3NlbWJs ZXJTcGVjaWZpYyB7Ci0gCi0gICAvLyBUaGVzZSBtZXRob2RzIGFyZSBsaWtlIG1vdldpdGhQYXRj aC9QYXRjaERhdGFXaXRoVmFsdWVDaGVjayBidXQgYWxsb3cKLSAgIC8vIHVzaW5nIHBjLXJlbGF0 aXZlIGFkZHJlc3Npbmcgb24gY2VydGFpbiBwbGF0Zm9ybXMgKFJJUC1yZWxhdGl2ZSBMRUEgb24g eDY0LAotICAgLy8gQURSIGluc3RydWN0aW9uIG9uIGFybTY0KS4KLSAgIC8vCi0gICAvLyBOb3Rl OiAiTmVhciIgYXBwbGllcyB0byBBUk02NCB3aGVyZSB0aGUgdGFyZ2V0IG11c3QgYmUgd2l0aGlu IDEgTUIgKHRoaXMgaXMKLSAgIC8vIHJlbGVhc2UtYXNzZXJ0ZWQpLgotICAgQ29kZU9mZnNldCBt b3ZlTmVhckFkZHJlc3NXaXRoUGF0Y2goUmVnaXN0ZXIgZGVzdCkKLS0gICAgICBERUZJTkVEX09O KHg4NiwgeDY0LCBhcm0sIGFybTY0LCBtaXBzX3NoYXJlZCk7Ci0rICAgICAgREVGSU5FRF9PTih4 ODYsIHg2NCwgYXJtLCBhcm02NCwgbWlwc19zaGFyZWQsIHBwYzY0KTsKLSAgIHN0YXRpYyB2b2lk IHBhdGNoTmVhckFkZHJlc3NNb3ZlKENvZGVMb2NhdGlvbkxhYmVsIGxvYywKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIENvZGVMb2NhdGlvbkxhYmVsIHRhcmdldCkKLS0gICAg ICBERUZJTkVEX09OKHg4NiwgeDY0LCBhcm0sIGFybTY0LCBtaXBzX3NoYXJlZCk7Ci0rICAgICAg REVGSU5FRF9PTih4ODYsIHg2NCwgYXJtLCBhcm02NCwgbWlwc19zaGFyZWQsIHBwYzY0KTsKLSAK LSAgcHVibGljOgotICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0gICAvLyBbU01ET0NdIEpJVC10by1DKysgRnVuY3Rp b24gQ2FsbHMgKGNhbGxXaXRoQUJJKQotICAgLy8KLSAgIC8vIGNhbGxXaXRoQUJJIGlzIHVzZWQg dG8gbWFrZSBhIGNhbGwgdXNpbmcgdGhlIHN0YW5kYXJkIEMvQysrIHN5c3RlbSBBQkkuCi0gICAv LwotICAgLy8gY2FsbFdpdGhBQkkgaXMgYSBsb3cgbGV2ZWwgaW50ZXJmYWNlIGZvciBtYWtpbmcg Y2FsbHMsIGFzIHN1Y2ggZXZlcnkgY2FsbAotQEAgLTk4MywyMCArOTg5LDIxIEBAIGNsYXNzIE1h Y3JvQXNzZW1ibGVyIDogcHVibGljIE1hY3JvQXNzZW1ibGVyU3BlY2lmaWMgewotICAgaW5saW5l IHZvaWQgeG9yMzIoSW1tMzIgaW1tLCBSZWdpc3RlciBkZXN0KSBQRVJfU0hBUkVEX0FSQ0g7Ci0g ICBpbmxpbmUgdm9pZCB4b3IzMihJbW0zMiBpbW0sIGNvbnN0IEFkZHJlc3MmIGRlc3QpIFBFUl9T SEFSRURfQVJDSDsKLSAgIGlubGluZSB2b2lkIHhvcjMyKGNvbnN0IEFkZHJlc3MmIHNyYywgUmVn aXN0ZXIgZGVzdCkgUEVSX1NIQVJFRF9BUkNIOwotIAotICAgaW5saW5lIHZvaWQgeG9yUHRyKFJl Z2lzdGVyIHNyYywgUmVnaXN0ZXIgZGVzdCkgUEVSX0FSQ0g7Ci0gICBpbmxpbmUgdm9pZCB4b3JQ dHIoSW1tMzIgaW1tLCBSZWdpc3RlciBkZXN0KSBQRVJfQVJDSDsKLSAKLSAgIGlubGluZSB2b2lk IGFuZDY0KGNvbnN0IE9wZXJhbmQmIHNyYywgUmVnaXN0ZXI2NCBkZXN0KQotLSAgICAgIERFRklO RURfT04oeDY0LCBtaXBzNjQpOwotLSAgaW5saW5lIHZvaWQgb3I2NChjb25zdCBPcGVyYW5kJiBz cmMsIFJlZ2lzdGVyNjQgZGVzdCkgREVGSU5FRF9PTih4NjQsIG1pcHM2NCk7Ci0rICAgICAgREVG SU5FRF9PTih4NjQsIG1pcHM2NCwgcHBjNjQpOwotKyAgaW5saW5lIHZvaWQgb3I2NChjb25zdCBP cGVyYW5kJiBzcmMsIFJlZ2lzdGVyNjQgZGVzdCkKLSsgICAgICBERUZJTkVEX09OKHg2NCwgbWlw czY0LCBwcGM2NCk7Ci0gICBpbmxpbmUgdm9pZCB4b3I2NChjb25zdCBPcGVyYW5kJiBzcmMsIFJl Z2lzdGVyNjQgZGVzdCkKLS0gICAgICBERUZJTkVEX09OKHg2NCwgbWlwczY0KTsKLSsgICAgICBE RUZJTkVEX09OKHg2NCwgbWlwczY0LCBwcGM2NCk7Ci0gCi0gICAvLyA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLSAgIC8vIFN3 YXAgaW5zdHJ1Y3Rpb25zCi0gCi0gICAvLyBTd2FwIHRoZSB0d28gbG93ZXIgYnl0ZXMgYW5kIHNp Z24gZXh0ZW5kIHRoZSByZXN1bHQgdG8gMzItYml0LgotICAgaW5saW5lIHZvaWQgYnl0ZVN3YXAx NlNpZ25FeHRlbmQoUmVnaXN0ZXIgcmVnKSBQRVJfU0hBUkVEX0FSQ0g7Ci0gCi0gICAvLyBTd2Fw IHRoZSB0d28gbG93ZXIgYnl0ZXMgYW5kIHplcm8gZXh0ZW5kIHRoZSByZXN1bHQgdG8gMzItYml0 LgotQEAgLTEwMjAsMjcgKzEwMjcsMjcgQEAgY2xhc3MgTWFjcm9Bc3NlbWJsZXIgOiBwdWJsaWMg TWFjcm9Bc3NlbWJsZXJTcGVjaWZpYyB7Ci0gICBpbmxpbmUgdm9pZCBhZGRQdHIoUmVnaXN0ZXIg c3JjLCBSZWdpc3RlciBkZXN0KSBQRVJfQVJDSDsKLSAgIGlubGluZSB2b2lkIGFkZFB0cihSZWdp c3RlciBzcmMxLCBSZWdpc3RlciBzcmMyLCBSZWdpc3RlciBkZXN0KQotICAgICAgIERFRklORURf T04oYXJtNjQpOwotICAgaW5saW5lIHZvaWQgYWRkUHRyKEltbTMyIGltbSwgUmVnaXN0ZXIgZGVz dCkgUEVSX0FSQ0g7Ci0gICBpbmxpbmUgdm9pZCBhZGRQdHIoSW1tMzIgaW1tLCBSZWdpc3RlciBz cmMsIFJlZ2lzdGVyIGRlc3QpIERFRklORURfT04oYXJtNjQpOwotICAgaW5saW5lIHZvaWQgYWRk UHRyKEltbVdvcmQgaW1tLCBSZWdpc3RlciBkZXN0KSBQRVJfQVJDSDsKLSAgIGlubGluZSB2b2lk IGFkZFB0cihJbW1QdHIgaW1tLCBSZWdpc3RlciBkZXN0KTsKLSAgIGlubGluZSB2b2lkIGFkZFB0 cihJbW0zMiBpbW0sIGNvbnN0IEFkZHJlc3MmIGRlc3QpCi0tICAgICAgREVGSU5FRF9PTihtaXBz X3NoYXJlZCwgYXJtLCBhcm02NCwgeDg2LCB4NjQpOwotKyAgICAgIERFRklORURfT04obWlwc19z aGFyZWQsIGFybSwgYXJtNjQsIHg4NiwgeDY0LCBwcGM2NCk7Ci0gICBpbmxpbmUgdm9pZCBhZGRQ dHIoSW1tMzIgaW1tLCBjb25zdCBBYnNvbHV0ZUFkZHJlc3MmIGRlc3QpCi0gICAgICAgREVGSU5F RF9PTih4ODYsIHg2NCk7Ci0gICBpbmxpbmUgdm9pZCBhZGRQdHIoY29uc3QgQWRkcmVzcyYgc3Jj LCBSZWdpc3RlciBkZXN0KQotLSAgICAgIERFRklORURfT04obWlwc19zaGFyZWQsIGFybSwgYXJt NjQsIHg4NiwgeDY0KTsKLSsgICAgICBERUZJTkVEX09OKG1pcHNfc2hhcmVkLCBhcm0sIGFybTY0 LCB4ODYsIHg2NCwgcHBjNjQpOwotIAotICAgaW5saW5lIHZvaWQgYWRkNjQoUmVnaXN0ZXI2NCBz cmMsIFJlZ2lzdGVyNjQgZGVzdCkgUEVSX0FSQ0g7Ci0gICBpbmxpbmUgdm9pZCBhZGQ2NChJbW0z MiBpbW0sIFJlZ2lzdGVyNjQgZGVzdCkgUEVSX0FSQ0g7Ci0gICBpbmxpbmUgdm9pZCBhZGQ2NChJ bW02NCBpbW0sIFJlZ2lzdGVyNjQgZGVzdCkgUEVSX0FSQ0g7Ci0gICBpbmxpbmUgdm9pZCBhZGQ2 NChjb25zdCBPcGVyYW5kJiBzcmMsIFJlZ2lzdGVyNjQgZGVzdCkKLS0gICAgICBERUZJTkVEX09O KHg2NCwgbWlwczY0KTsKLSsgICAgICBERUZJTkVEX09OKHg2NCwgbWlwczY0LCBwcGM2NCk7Ci0g Ci0gICBpbmxpbmUgdm9pZCBhZGRGbG9hdDMyKEZsb2F0UmVnaXN0ZXIgc3JjLCBGbG9hdFJlZ2lz dGVyIGRlc3QpIFBFUl9TSEFSRURfQVJDSDsKLSAKLSAgIC8vIENvbXB1dGUgZGVzdD1TUC1pbW0g d2hlcmUgZGVzdCBpcyBhIHBvaW50ZXIgcmVnaXN0ZXJzIGFuZCBub3QgU1AuICBUaGUKLSAgIC8v IG9mZnNldCByZXR1cm5lZCBmcm9tIHN1YjMyRnJvbVN0YWNrUHRyV2l0aFBhdGNoKCkgbXVzdCBi ZSBwYXNzZWQgdG8KLSAgIC8vIHBhdGNoU3ViMzJGcm9tU3RhY2tQdHIoKS4KLSAgIGlubGluZSBD b2RlT2Zmc2V0IHN1YjMyRnJvbVN0YWNrUHRyV2l0aFBhdGNoKFJlZ2lzdGVyIGRlc3QpIFBFUl9B UkNIOwotICAgaW5saW5lIHZvaWQgcGF0Y2hTdWIzMkZyb21TdGFja1B0cihDb2RlT2Zmc2V0IG9m ZnNldCwgSW1tMzIgaW1tKSBQRVJfQVJDSDsKLUBAIC0xMDQ5LDU4ICsxMDU2LDU4IEBAIGNsYXNz IE1hY3JvQXNzZW1ibGVyIDogcHVibGljIE1hY3JvQXNzZW1ibGVyU3BlY2lmaWMgewotICAgaW5s aW5lIHZvaWQgYWRkQ29uc3RhbnREb3VibGUoZG91YmxlIGQsIEZsb2F0UmVnaXN0ZXIgZGVzdCkg REVGSU5FRF9PTih4ODYpOwotIAotICAgaW5saW5lIHZvaWQgc3ViMzIoY29uc3QgQWRkcmVzcyYg c3JjLCBSZWdpc3RlciBkZXN0KSBQRVJfU0hBUkVEX0FSQ0g7Ci0gICBpbmxpbmUgdm9pZCBzdWIz MihSZWdpc3RlciBzcmMsIFJlZ2lzdGVyIGRlc3QpIFBFUl9TSEFSRURfQVJDSDsKLSAgIGlubGlu ZSB2b2lkIHN1YjMyKEltbTMyIGltbSwgUmVnaXN0ZXIgZGVzdCkgUEVSX1NIQVJFRF9BUkNIOwot IAotICAgaW5saW5lIHZvaWQgc3ViUHRyKFJlZ2lzdGVyIHNyYywgUmVnaXN0ZXIgZGVzdCkgUEVS X0FSQ0g7Ci0gICBpbmxpbmUgdm9pZCBzdWJQdHIoUmVnaXN0ZXIgc3JjLCBjb25zdCBBZGRyZXNz JiBkZXN0KQotLSAgICAgIERFRklORURfT04obWlwc19zaGFyZWQsIGFybSwgYXJtNjQsIHg4Niwg eDY0KTsKLSsgICAgICBERUZJTkVEX09OKG1pcHNfc2hhcmVkLCBhcm0sIGFybTY0LCB4ODYsIHg2 NCwgcHBjNjQpOwotICAgaW5saW5lIHZvaWQgc3ViUHRyKEltbTMyIGltbSwgUmVnaXN0ZXIgZGVz dCkgUEVSX0FSQ0g7Ci0gICBpbmxpbmUgdm9pZCBzdWJQdHIoSW1tV29yZCBpbW0sIFJlZ2lzdGVy IGRlc3QpIERFRklORURfT04oeDY0KTsKLSAgIGlubGluZSB2b2lkIHN1YlB0cihjb25zdCBBZGRy ZXNzJiBhZGRyLCBSZWdpc3RlciBkZXN0KQotLSAgICAgIERFRklORURfT04obWlwc19zaGFyZWQs IGFybSwgYXJtNjQsIHg4NiwgeDY0KTsKLSsgICAgICBERUZJTkVEX09OKG1pcHNfc2hhcmVkLCBh cm0sIGFybTY0LCB4ODYsIHg2NCwgcHBjNjQpOwotIAotICAgaW5saW5lIHZvaWQgc3ViNjQoUmVn aXN0ZXI2NCBzcmMsIFJlZ2lzdGVyNjQgZGVzdCkgUEVSX0FSQ0g7Ci0gICBpbmxpbmUgdm9pZCBz dWI2NChJbW02NCBpbW0sIFJlZ2lzdGVyNjQgZGVzdCkgUEVSX0FSQ0g7Ci0gICBpbmxpbmUgdm9p ZCBzdWI2NChjb25zdCBPcGVyYW5kJiBzcmMsIFJlZ2lzdGVyNjQgZGVzdCkKLS0gICAgICBERUZJ TkVEX09OKHg2NCwgbWlwczY0KTsKLSsgICAgICBERUZJTkVEX09OKHg2NCwgbWlwczY0LCBwcGM2 NCk7Ci0gCi0gICBpbmxpbmUgdm9pZCBzdWJGbG9hdDMyKEZsb2F0UmVnaXN0ZXIgc3JjLCBGbG9h dFJlZ2lzdGVyIGRlc3QpIFBFUl9TSEFSRURfQVJDSDsKLSAKLSAgIGlubGluZSB2b2lkIHN1YkRv dWJsZShGbG9hdFJlZ2lzdGVyIHNyYywgRmxvYXRSZWdpc3RlciBkZXN0KSBQRVJfU0hBUkVEX0FS Q0g7Ci0gCi0gICBpbmxpbmUgdm9pZCBtdWwzMihSZWdpc3RlciByaHMsIFJlZ2lzdGVyIHNyY0Rl c3QpIFBFUl9TSEFSRURfQVJDSDsKLSAKLSAgIGlubGluZSB2b2lkIG11bDMyKFJlZ2lzdGVyIHNy YzEsIFJlZ2lzdGVyIHNyYzIsIFJlZ2lzdGVyIGRlc3QsIExhYmVsKiBvbk92ZXIpCi0gICAgICAg REVGSU5FRF9PTihhcm02NCk7Ci0gCi0gICBpbmxpbmUgdm9pZCBtdWxQdHIoUmVnaXN0ZXIgcmhz LCBSZWdpc3RlciBzcmNEZXN0KSBQRVJfQVJDSDsKLSAKLSAgIGlubGluZSB2b2lkIG11bDY0KGNv bnN0IE9wZXJhbmQmIHNyYywgY29uc3QgUmVnaXN0ZXI2NCYgZGVzdCkgREVGSU5FRF9PTih4NjQp OwotICAgaW5saW5lIHZvaWQgbXVsNjQoY29uc3QgT3BlcmFuZCYgc3JjLCBjb25zdCBSZWdpc3Rl cjY0JiBkZXN0LAotLSAgICAgICAgICAgICAgICAgICAgY29uc3QgUmVnaXN0ZXIgdGVtcCkgREVG SU5FRF9PTih4NjQsIG1pcHM2NCk7Ci0rICAgICAgICAgICAgICAgICAgICBjb25zdCBSZWdpc3Rl ciB0ZW1wKSBERUZJTkVEX09OKHg2NCwgbWlwczY0LCBwcGM2NCk7Ci0gICBpbmxpbmUgdm9pZCBt dWw2NChJbW02NCBpbW0sIGNvbnN0IFJlZ2lzdGVyNjQmIGRlc3QpIFBFUl9BUkNIOwotICAgaW5s aW5lIHZvaWQgbXVsNjQoSW1tNjQgaW1tLCBjb25zdCBSZWdpc3RlcjY0JiBkZXN0LCBjb25zdCBS ZWdpc3RlciB0ZW1wKQotLSAgICAgIERFRklORURfT04oeDg2LCB4NjQsIGFybSwgbWlwczMyLCBt aXBzNjQpOwotKyAgICAgIERFRklORURfT04oeDg2LCB4NjQsIGFybSwgbWlwczMyLCBtaXBzNjQs IHBwYzY0KTsKLSAgIGlubGluZSB2b2lkIG11bDY0KGNvbnN0IFJlZ2lzdGVyNjQmIHNyYywgY29u c3QgUmVnaXN0ZXI2NCYgZGVzdCwKLSAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFJlZ2lzdGVy IHRlbXApIFBFUl9BUkNIOwotICAgaW5saW5lIHZvaWQgbXVsNjQoY29uc3QgUmVnaXN0ZXI2NCYg c3JjMSwgY29uc3QgUmVnaXN0ZXI2NCYgc3JjMiwKLSAgICAgICAgICAgICAgICAgICAgIGNvbnN0 IFJlZ2lzdGVyNjQmIGRlc3QpIERFRklORURfT04oYXJtNjQpOwotICAgaW5saW5lIHZvaWQgbXVs NjQoSW1tNjQgc3JjMSwgY29uc3QgUmVnaXN0ZXI2NCYgc3JjMiwgY29uc3QgUmVnaXN0ZXI2NCYg ZGVzdCkKLSAgICAgICBERUZJTkVEX09OKGFybTY0KTsKLSAKLSAgIGlubGluZSB2b2lkIG11bEJ5 MyhSZWdpc3RlciBzcmMsIFJlZ2lzdGVyIGRlc3QpIFBFUl9BUkNIOwotIAotICAgaW5saW5lIHZv aWQgbXVsRmxvYXQzMihGbG9hdFJlZ2lzdGVyIHNyYywgRmxvYXRSZWdpc3RlciBkZXN0KSBQRVJf U0hBUkVEX0FSQ0g7Ci0gICBpbmxpbmUgdm9pZCBtdWxEb3VibGUoRmxvYXRSZWdpc3RlciBzcmMs IEZsb2F0UmVnaXN0ZXIgZGVzdCkgUEVSX1NIQVJFRF9BUkNIOwotIAotICAgaW5saW5lIHZvaWQg bXVsRG91YmxlUHRyKEltbVB0ciBpbW0sIFJlZ2lzdGVyIHRlbXAsIEZsb2F0UmVnaXN0ZXIgZGVz dCkKLS0gICAgICBERUZJTkVEX09OKG1pcHNfc2hhcmVkLCBhcm0sIGFybTY0LCB4ODYsIHg2NCk7 Ci0rICAgICAgREVGSU5FRF9PTihtaXBzX3NoYXJlZCwgYXJtLCBhcm02NCwgeDg2LCB4NjQsIHBw YzY0KTsKLSAKLSAgIC8vIFBlcmZvcm0gYW4gaW50ZWdlciBkaXZpc2lvbiwgcmV0dXJuaW5nIHRo ZSBpbnRlZ2VyIHBhcnQgcm91bmRlZCB0b3dhcmQKLSAgIC8vIHplcm8uIHJocyBtdXN0IG5vdCBi ZSB6ZXJvLCBhbmQgdGhlIGRpdmlzaW9uIG11c3Qgbm90IG92ZXJmbG93LgotICAgLy8KLSAgIC8v IE9uIHg4Nl9zaGFyZWQsIHNyY0Rlc3QgbXVzdCBiZSBlYXggYW5kIGVkeCB3aWxsIGJlIGNsb2Ji ZXJlZC4KLSAgIC8vIE9uIEFSTSwgdGhlIGNoaXAgbXVzdCBoYXZlIGhhcmR3YXJlIGRpdmlzaW9u IGluc3RydWN0aW9ucy4KLSAgIGlubGluZSB2b2lkIHF1b3RpZW50MzIoUmVnaXN0ZXIgcmhzLCBS ZWdpc3RlciBzcmNEZXN0LAotICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIGlzVW5zaWdu ZWQpIFBFUl9TSEFSRURfQVJDSDsKLUBAIC0xMTE3LDQxICsxMTI0LDQxIEBAIGNsYXNzIE1hY3Jv QXNzZW1ibGVyIDogcHVibGljIE1hY3JvQXNzZW1ibGVyU3BlY2lmaWMgewotICAgLy8gemVyby4g cmhzIG11c3Qgbm90IGJlIHplcm8sIGFuZCB0aGUgZGl2aXNpb24gbXVzdCBub3Qgb3ZlcmZsb3cu Ci0gICAvLwotICAgLy8gVGhpcyB2YXJpYW50IHByZXNlcnZlcyByZWdpc3RlcnMsIGFuZCBkb2Vz bid0IHJlcXVpcmUgaGFyZHdhcmUgZGl2aXNpb24KLSAgIC8vIGluc3RydWN0aW9ucyBvbiBBUk0g KHdpbGwgY2FsbCBvdXQgdG8gYSBydW50aW1lIHJvdXRpbmUpLgotICAgLy8KLSAgIC8vIHJocyBp cyBwcmVzZXJ2ZWQsIHNyZERlc3QgaXMgY2xvYmJlcmVkLgotICAgdm9pZCBmbGV4aWJsZVJlbWFp bmRlcjMyKFJlZ2lzdGVyIHJocywgUmVnaXN0ZXIgc3JjRGVzdCwgYm9vbCBpc1Vuc2lnbmVkLAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IExpdmVSZWdpc3RlclNldCYgdm9sYXRp bGVMaXZlUmVncykKLS0gICAgICBERUZJTkVEX09OKG1pcHNfc2hhcmVkLCBhcm0sIGFybTY0LCB4 ODZfc2hhcmVkKTsKLSsgICAgICBERUZJTkVEX09OKG1pcHNfc2hhcmVkLCBhcm0sIGFybTY0LCB4 ODZfc2hhcmVkLCBwcGM2NCk7Ci0gCi0gICAvLyBQZXJmb3JtIGFuIGludGVnZXIgZGl2aXNpb24s IHJldHVybmluZyB0aGUgaW50ZWdlciBwYXJ0IHJvdW5kZWQgdG93YXJkCi0gICAvLyB6ZXJvLiBy aHMgbXVzdCBub3QgYmUgemVybywgYW5kIHRoZSBkaXZpc2lvbiBtdXN0IG5vdCBvdmVyZmxvdy4K LSAgIC8vCi0gICAvLyBUaGlzIHZhcmlhbnQgcHJlc2VydmVzIHJlZ2lzdGVycywgYW5kIGRvZXNu J3QgcmVxdWlyZSBoYXJkd2FyZSBkaXZpc2lvbgotICAgLy8gaW5zdHJ1Y3Rpb25zIG9uIEFSTSAo d2lsbCBjYWxsIG91dCB0byBhIHJ1bnRpbWUgcm91dGluZSkuCi0gICAvLwotICAgLy8gcmhzIGlz IHByZXNlcnZlZCwgc3JkRGVzdCBpcyBjbG9iYmVyZWQuCi0gICB2b2lkIGZsZXhpYmxlUXVvdGll bnQzMihSZWdpc3RlciByaHMsIFJlZ2lzdGVyIHNyY0Rlc3QsIGJvb2wgaXNVbnNpZ25lZCwKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IExpdmVSZWdpc3RlclNldCYgdm9sYXRpbGVM aXZlUmVncykKLS0gICAgICBERUZJTkVEX09OKG1pcHNfc2hhcmVkLCBhcm0sIGFybTY0LCB4ODZf c2hhcmVkKTsKLSsgICAgICBERUZJTkVEX09OKG1pcHNfc2hhcmVkLCBhcm0sIGFybTY0LCB4ODZf c2hhcmVkLCBwcGM2NCk7Ci0gCi0gICAvLyBQZXJmb3JtIGFuIGludGVnZXIgZGl2aXNpb24sIHJl dHVybmluZyB0aGUgaW50ZWdlciBwYXJ0IHJvdW5kZWQgdG93YXJkCi0gICAvLyB6ZXJvLiByaHMg bXVzdCBub3QgYmUgemVybywgYW5kIHRoZSBkaXZpc2lvbiBtdXN0IG5vdCBvdmVyZmxvdy4gVGhl Ci0gICAvLyByZW1haW5kZXIgaXMgc3RvcmVkIGludG8gdGhlIHRoaXJkIGFyZ3VtZW50IHJlZ2lz dGVyIGhlcmUuCi0gICAvLwotICAgLy8gVGhpcyB2YXJpYW50IHByZXNlcnZlcyByZWdpc3RlcnMs IGFuZCBkb2Vzbid0IHJlcXVpcmUgaGFyZHdhcmUgZGl2aXNpb24KLSAgIC8vIGluc3RydWN0aW9u cyBvbiBBUk0gKHdpbGwgY2FsbCBvdXQgdG8gYSBydW50aW1lIHJvdXRpbmUpLgotICAgLy8KLSAg IC8vIHJocyBpcyBwcmVzZXJ2ZWQsIHNyZERlc3QgYW5kIHJlbU91dHB1dCBhcmUgY2xvYmJlcmVk LgotICAgdm9pZCBmbGV4aWJsZURpdk1vZDMyKFJlZ2lzdGVyIHJocywgUmVnaXN0ZXIgc3JjRGVz dCwgUmVnaXN0ZXIgcmVtT3V0cHV0LAotICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgaXNV bnNpZ25lZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBMaXZlUmVnaXN0ZXJTZXQm IHZvbGF0aWxlTGl2ZVJlZ3MpCi0tICAgICAgREVGSU5FRF9PTihtaXBzX3NoYXJlZCwgYXJtLCBh cm02NCwgeDg2X3NoYXJlZCk7Ci0rICAgICAgREVGSU5FRF9PTihtaXBzX3NoYXJlZCwgYXJtLCBh cm02NCwgeDg2X3NoYXJlZCwgcHBjNjQpOwotIAotICAgaW5saW5lIHZvaWQgZGl2RmxvYXQzMihG bG9hdFJlZ2lzdGVyIHNyYywgRmxvYXRSZWdpc3RlciBkZXN0KSBQRVJfU0hBUkVEX0FSQ0g7Ci0g ICBpbmxpbmUgdm9pZCBkaXZEb3VibGUoRmxvYXRSZWdpc3RlciBzcmMsIEZsb2F0UmVnaXN0ZXIg ZGVzdCkgUEVSX1NIQVJFRF9BUkNIOwotIAotICAgaW5saW5lIHZvaWQgaW5jNjQoQWJzb2x1dGVB ZGRyZXNzIGRlc3QpIFBFUl9BUkNIOwotIAotICAgaW5saW5lIHZvaWQgbmVnMzIoUmVnaXN0ZXIg cmVnKSBQRVJfU0hBUkVEX0FSQ0g7Ci0gICBpbmxpbmUgdm9pZCBuZWc2NChSZWdpc3RlcjY0IHJl ZykgUEVSX0FSQ0g7Ci1AQCAtMTM0MiwxNyArMTM0OSwxNyBAQCBjbGFzcyBNYWNyb0Fzc2VtYmxl ciA6IHB1YmxpYyBNYWNyb0Fzc2VtYmxlclNwZWNpZmljIHsKLSAgIC8vIHRlbXAgbWF5IGJlIGlu dmFsaWQgb25seSBpZiB0aGUgY2hpcCBoYXMgdGhlIFBPUENOVCBpbnN0cnVjdGlvbi4KLSAgIGlu bGluZSB2b2lkIHBvcGNudDY0KFJlZ2lzdGVyNjQgc3JjLCBSZWdpc3RlcjY0IGRlc3QsIFJlZ2lz dGVyIHRlbXApIFBFUl9BUkNIOwotIAotICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0gICAvLyBDb25kaXRpb24gZnVu Y3Rpb25zCi0gCi0gICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyPgotICAgaW5s aW5lIHZvaWQgY21wMzJTZXQoQ29uZGl0aW9uIGNvbmQsIFQxIGxocywgVDIgcmhzLCBSZWdpc3Rl ciBkZXN0KQotLSAgICAgIERFRklORURfT04oeDg2X3NoYXJlZCwgYXJtLCBhcm02NCwgbWlwczMy LCBtaXBzNjQpOwotKyAgICAgIERFRklORURfT04oeDg2X3NoYXJlZCwgYXJtLCBhcm02NCwgbWlw czMyLCBtaXBzNjQsIHBwYzY0KTsKLSAKLSAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5h bWUgVDI+Ci0gICBpbmxpbmUgdm9pZCBjbXBQdHJTZXQoQ29uZGl0aW9uIGNvbmQsIFQxIGxocywg VDIgcmhzLCBSZWdpc3RlciBkZXN0KSBQRVJfQVJDSDsKLSAKLSAgIC8vID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotICAgLy8g QnJhbmNoIGZ1bmN0aW9ucwotIAotICAgdGVtcGxhdGUgPGNsYXNzIEw+Ci1AQCAtMTM2NywzNCAr MTM3NCwzNCBAQCBjbGFzcyBNYWNyb0Fzc2VtYmxlciA6IHB1YmxpYyBNYWNyb0Fzc2VtYmxlclNw ZWNpZmljIHsKLSAKLSAgIGlubGluZSB2b2lkIGJyYW5jaDMyKENvbmRpdGlvbiBjb25kLCBjb25z dCBBZGRyZXNzJiBsaHMsIFJlZ2lzdGVyIHJocywKLSAgICAgICAgICAgICAgICAgICAgICAgIExh YmVsKiBsYWJlbCkgUEVSX1NIQVJFRF9BUkNIOwotICAgaW5saW5lIHZvaWQgYnJhbmNoMzIoQ29u ZGl0aW9uIGNvbmQsIGNvbnN0IEFkZHJlc3MmIGxocywgSW1tMzIgcmhzLAotICAgICAgICAgICAg ICAgICAgICAgICAgTGFiZWwqIGxhYmVsKSBQRVJfU0hBUkVEX0FSQ0g7Ci0gCi0gICBpbmxpbmUg dm9pZCBicmFuY2gzMihDb25kaXRpb24gY29uZCwgY29uc3QgQWJzb2x1dGVBZGRyZXNzJiBsaHMs IFJlZ2lzdGVyIHJocywKLSAgICAgICAgICAgICAgICAgICAgICAgIExhYmVsKiBsYWJlbCkKLS0g ICAgICBERUZJTkVEX09OKGFybSwgYXJtNjQsIG1pcHNfc2hhcmVkLCB4ODYsIHg2NCk7Ci0rICAg ICAgREVGSU5FRF9PTihhcm0sIGFybTY0LCBtaXBzX3NoYXJlZCwgeDg2LCB4NjQsIHBwYzY0KTsK LSAgIGlubGluZSB2b2lkIGJyYW5jaDMyKENvbmRpdGlvbiBjb25kLCBjb25zdCBBYnNvbHV0ZUFk ZHJlc3MmIGxocywgSW1tMzIgcmhzLAotICAgICAgICAgICAgICAgICAgICAgICAgTGFiZWwqIGxh YmVsKQotLSAgICAgIERFRklORURfT04oYXJtLCBhcm02NCwgbWlwc19zaGFyZWQsIHg4NiwgeDY0 KTsKLSsgICAgICBERUZJTkVEX09OKGFybSwgYXJtNjQsIG1pcHNfc2hhcmVkLCB4ODYsIHg2NCwg cHBjNjQpOwotIAotICAgaW5saW5lIHZvaWQgYnJhbmNoMzIoQ29uZGl0aW9uIGNvbmQsIGNvbnN0 IEJhc2VJbmRleCYgbGhzLCBSZWdpc3RlciByaHMsCi0gICAgICAgICAgICAgICAgICAgICAgICBM YWJlbCogbGFiZWwpIERFRklORURfT04oYXJtLCB4ODZfc2hhcmVkKTsKLSAgIGlubGluZSB2b2lk IGJyYW5jaDMyKENvbmRpdGlvbiBjb25kLCBjb25zdCBCYXNlSW5kZXgmIGxocywgSW1tMzIgcmhz LAotICAgICAgICAgICAgICAgICAgICAgICAgTGFiZWwqIGxhYmVsKSBQRVJfU0hBUkVEX0FSQ0g7 Ci0gCi0gICBpbmxpbmUgdm9pZCBicmFuY2gzMihDb25kaXRpb24gY29uZCwgY29uc3QgT3BlcmFu ZCYgbGhzLCBSZWdpc3RlciByaHMsCi0gICAgICAgICAgICAgICAgICAgICAgICBMYWJlbCogbGFi ZWwpIERFRklORURfT04oeDg2X3NoYXJlZCk7Ci0gICBpbmxpbmUgdm9pZCBicmFuY2gzMihDb25k aXRpb24gY29uZCwgY29uc3QgT3BlcmFuZCYgbGhzLCBJbW0zMiByaHMsCi0gICAgICAgICAgICAg ICAgICAgICAgICBMYWJlbCogbGFiZWwpIERFRklORURfT04oeDg2X3NoYXJlZCk7Ci0gCi0gICBp bmxpbmUgdm9pZCBicmFuY2gzMihDb25kaXRpb24gY29uZCwgd2FzbTo6U3ltYm9saWNBZGRyZXNz IGxocywgSW1tMzIgcmhzLAotICAgICAgICAgICAgICAgICAgICAgICAgTGFiZWwqIGxhYmVsKQot LSAgICAgIERFRklORURfT04oYXJtLCBhcm02NCwgbWlwc19zaGFyZWQsIHg4NiwgeDY0KTsKLSsg ICAgICBERUZJTkVEX09OKGFybSwgYXJtNjQsIG1pcHNfc2hhcmVkLCB4ODYsIHg2NCwgcHBjNjQp OwotIAotICAgLy8gVGhlIHN1cHBvcnRlZCBjb25kaXRpb24gYXJlIEVxdWFsLCBOb3RFcXVhbCwg TGVzc1RoYW4ob3JFcXVhbCksCi0gICAvLyBHcmVhdGVyVGhhbihvckVxdWFsKSwgQmVsb3cob3JF cXVhbCkgYW5kIEFib3ZlKG9yRXF1YWwpLiBXaGVuIGEgZmFpbCBsYWJlbAotICAgLy8gaXMgbm90 IGRlZmluZWQgaXQgd2lsbCBmYWxsIHRocm91Z2ggdG8gbmV4dCBpbnN0cnVjdGlvbiwgZWxzZSBq dW1wIHRvIHRoZQotICAgLy8gZmFpbCBsYWJlbC4KLSAgIGlubGluZSB2b2lkIGJyYW5jaDY0KENv bmRpdGlvbiBjb25kLCBSZWdpc3RlcjY0IGxocywgSW1tNjQgdmFsLAotICAgICAgICAgICAgICAg ICAgICAgICAgTGFiZWwqIHN1Y2Nlc3MsIExhYmVsKiBmYWlsID0gbnVsbHB0cikgUEVSX0FSQ0g7 Ci0gICBpbmxpbmUgdm9pZCBicmFuY2g2NChDb25kaXRpb24gY29uZCwgUmVnaXN0ZXI2NCBsaHMs IFJlZ2lzdGVyNjQgcmhzLAotQEAgLTE0MzMsMzIgKzE0NDAsMzIgQEAgY2xhc3MgTWFjcm9Bc3Nl bWJsZXIgOiBwdWJsaWMgTWFjcm9Bc3NlbWJsZXJTcGVjaWZpYyB7Ci0gCi0gICBpbmxpbmUgdm9p ZCBicmFuY2hQdHIoQ29uZGl0aW9uIGNvbmQsIGNvbnN0IEJhc2VJbmRleCYgbGhzLCBJbW1Xb3Jk IHJocywKLSAgICAgICAgICAgICAgICAgICAgICAgICBMYWJlbCogbGFiZWwpIFBFUl9TSEFSRURf QVJDSDsKLSAgIGlubGluZSB2b2lkIGJyYW5jaFB0cihDb25kaXRpb24gY29uZCwgY29uc3QgQmFz ZUluZGV4JiBsaHMsIFJlZ2lzdGVyIHJocywKLSAgICAgICAgICAgICAgICAgICAgICAgICBMYWJl bCogbGFiZWwpIFBFUl9TSEFSRURfQVJDSDsKLSAKLSAgIGlubGluZSB2b2lkIGJyYW5jaFB0cihD b25kaXRpb24gY29uZCwgY29uc3QgQWJzb2x1dGVBZGRyZXNzJiBsaHMsCi0gICAgICAgICAgICAg ICAgICAgICAgICAgUmVnaXN0ZXIgcmhzLCBMYWJlbCogbGFiZWwpCi0tICAgICAgREVGSU5FRF9P Tihhcm0sIGFybTY0LCBtaXBzX3NoYXJlZCwgeDg2LCB4NjQpOwotKyAgICAgIERFRklORURfT04o YXJtLCBhcm02NCwgbWlwc19zaGFyZWQsIHg4NiwgeDY0LCBwcGM2NCk7Ci0gICBpbmxpbmUgdm9p ZCBicmFuY2hQdHIoQ29uZGl0aW9uIGNvbmQsIGNvbnN0IEFic29sdXRlQWRkcmVzcyYgbGhzLCBJ bW1Xb3JkIHJocywKLSAgICAgICAgICAgICAgICAgICAgICAgICBMYWJlbCogbGFiZWwpCi0tICAg ICAgREVGSU5FRF9PTihhcm0sIGFybTY0LCBtaXBzX3NoYXJlZCwgeDg2LCB4NjQpOwotKyAgICAg IERFRklORURfT04oYXJtLCBhcm02NCwgbWlwc19zaGFyZWQsIHg4NiwgeDY0LCBwcGM2NCk7Ci0g Ci0gICBpbmxpbmUgdm9pZCBicmFuY2hQdHIoQ29uZGl0aW9uIGNvbmQsIHdhc206OlN5bWJvbGlj QWRkcmVzcyBsaHMsIFJlZ2lzdGVyIHJocywKLSAgICAgICAgICAgICAgICAgICAgICAgICBMYWJl bCogbGFiZWwpCi0tICAgICAgREVGSU5FRF9PTihhcm0sIGFybTY0LCBtaXBzX3NoYXJlZCwgeDg2 LCB4NjQpOwotKyAgICAgIERFRklORURfT04oYXJtLCBhcm02NCwgbWlwc19zaGFyZWQsIHg4Niwg eDY0LCBwcGM2NCk7Ci0gCi0gICAvLyBHaXZlbiBhIHBvaW50ZXIgdG8gYSBHQyBDZWxsLCByZXRy aWV2ZSB0aGUgU3RvcmVCdWZmZXIgcG9pbnRlciBmcm9tIGl0cwotICAgLy8gY2h1bmsgaGVhZGVy LCBvciBudWxscHRyIGlmIGl0IGlzIGluIHRoZSB0ZW51cmVkIGhlYXAuCi0gICB2b2lkIGxvYWRT dG9yZUJ1ZmZlcihSZWdpc3RlciBwdHIsIFJlZ2lzdGVyIGJ1ZmZlcikgUEVSX0FSQ0g7Ci0gCi0g ICB2b2lkIGJyYW5jaFB0ckluTnVyc2VyeUNodW5rKENvbmRpdGlvbiBjb25kLCBSZWdpc3RlciBw dHIsIFJlZ2lzdGVyIHRlbXAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExhYmVs KiBsYWJlbCkKLS0gICAgICBERUZJTkVEX09OKGFybSwgYXJtNjQsIG1pcHNfc2hhcmVkLCB4ODYs IHg2NCk7Ci0rICAgICAgREVGSU5FRF9PTihhcm0sIGFybTY0LCBtaXBzX3NoYXJlZCwgeDg2LCB4 NjQsIHBwYzY0KTsKLSAgIHZvaWQgYnJhbmNoUHRySW5OdXJzZXJ5Q2h1bmsoQ29uZGl0aW9uIGNv bmQsIGNvbnN0IEFkZHJlc3MmIGFkZHJlc3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFJlZ2lzdGVyIHRlbXAsIExhYmVsKiBsYWJlbCkgREVGSU5FRF9PTih4ODYpOwotICAgdm9p ZCBicmFuY2hWYWx1ZUlzTnVyc2VyeUNlbGwoQ29uZGl0aW9uIGNvbmQsIGNvbnN0IEFkZHJlc3Mm IGFkZHJlc3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWdpc3RlciB0ZW1w LCBMYWJlbCogbGFiZWwpIFBFUl9BUkNIOwotICAgdm9pZCBicmFuY2hWYWx1ZUlzTnVyc2VyeUNl bGwoQ29uZGl0aW9uIGNvbmQsIFZhbHVlT3BlcmFuZCB2YWx1ZSwKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFJlZ2lzdGVyIHRlbXAsIExhYmVsKiBsYWJlbCkgUEVSX0FSQ0g7Ci0g Ci0gICAvLyBUaGlzIGZ1bmN0aW9uIGNvbXBhcmVzIGEgVmFsdWUgKGxocykgd2hpY2ggaXMgaGF2 aW5nIGEgcHJpdmF0ZSBwb2ludGVyCi1AQCAtMTQ3MCwzNiArMTQ3NywzNiBAQCBjbGFzcyBNYWNy b0Fzc2VtYmxlciA6IHB1YmxpYyBNYWNyb0Fzc2VtYmxlclNwZWNpZmljIHsKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgIEZsb2F0UmVnaXN0ZXIgcmhzLCBMYWJlbCogbGFiZWwpIFBFUl9TSEFS RURfQVJDSDsKLSAKLSAgIC8vIFRydW5jYXRlIGEgZG91YmxlL2Zsb2F0MzIgdG8gaW50MzIgYW5k IHdoZW4gaXQgZG9lc24ndCBmaXQgYW4gaW50MzIgaXQgd2lsbAotICAgLy8ganVtcCB0byB0aGUg ZmFpbHVyZSBsYWJlbC4gVGhpcyBwYXJ0aWN1bGFyIHZhcmlhbnQgaXMgYWxsb3dlZCB0byByZXR1 cm4gdGhlCi0gICAvLyB2YWx1ZSBtb2R1bGUgMioqMzIsIHdoaWNoIGlzbid0IGltcGxlbWVudGVk IG9uIGFsbCBhcmNoaXRlY3R1cmVzLiBFLmcuIHRoZQotICAgLy8geDY0IHZhcmlhbnRzIHdpbGwg ZG8gdGhpcyBvbmx5IGluIHRoZSBpbnQ2NF90IHJhbmdlLgotICAgaW5saW5lIHZvaWQgYnJhbmNo VHJ1bmNhdGVGbG9hdDMyTWF5YmVNb2RVaW50MzIoRmxvYXRSZWdpc3RlciBzcmMsCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWdpc3RlciBkZXN0 LCBMYWJlbCogZmFpbCkKLS0gICAgICBERUZJTkVEX09OKGFybSwgYXJtNjQsIG1pcHNfc2hhcmVk LCB4ODYsIHg2NCk7Ci0rICAgICAgREVGSU5FRF9PTihhcm0sIGFybTY0LCBtaXBzX3NoYXJlZCwg eDg2LCB4NjQsIHBwYzY0KTsKLSAgIGlubGluZSB2b2lkIGJyYW5jaFRydW5jYXRlRG91YmxlTWF5 YmVNb2RVaW50MzIoRmxvYXRSZWdpc3RlciBzcmMsCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyIGRlc3QsIExhYmVsKiBmYWlsKQotLSAg ICAgIERFRklORURfT04oYXJtLCBhcm02NCwgbWlwc19zaGFyZWQsIHg4NiwgeDY0KTsKLSsgICAg ICBERUZJTkVEX09OKGFybSwgYXJtNjQsIG1pcHNfc2hhcmVkLCB4ODYsIHg2NCwgcHBjNjQpOwot IAotICAgLy8gVHJ1bmNhdGUgYSBkb3VibGUvZmxvYXQzMiB0byBpbnRwdHIgYW5kIHdoZW4gaXQg ZG9lc24ndCBmaXQganVtcCB0byB0aGUKLSAgIC8vIGZhaWx1cmUgbGFiZWwuCi0gICBpbmxpbmUg dm9pZCBicmFuY2hUcnVuY2F0ZUZsb2F0MzJUb1B0cihGbG9hdFJlZ2lzdGVyIHNyYywgUmVnaXN0 ZXIgZGVzdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExhYmVs KiBmYWlsKSBERUZJTkVEX09OKHg4NiwgeDY0KTsKLSAgIGlubGluZSB2b2lkIGJyYW5jaFRydW5j YXRlRG91YmxlVG9QdHIoRmxvYXRSZWdpc3RlciBzcmMsIFJlZ2lzdGVyIGRlc3QsCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExhYmVsKiBmYWlsKSBERUZJTkVEX09O KHg4NiwgeDY0KTsKLSAKLSAgIC8vIFRydW5jYXRlIGEgZG91YmxlL2Zsb2F0MzIgdG8gaW50MzIg YW5kIHdoZW4gaXQgZG9lc24ndCBmaXQganVtcCB0byB0aGUKLSAgIC8vIGZhaWx1cmUgbGFiZWwu Ci0gICBpbmxpbmUgdm9pZCBicmFuY2hUcnVuY2F0ZUZsb2F0MzJUb0ludDMyKEZsb2F0UmVnaXN0 ZXIgc3JjLCBSZWdpc3RlciBkZXN0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBMYWJlbCogZmFpbCkKLS0gICAgICBERUZJTkVEX09OKGFybSwgYXJtNjQsIG1p cHNfc2hhcmVkLCB4ODYsIHg2NCk7Ci0rICAgICAgREVGSU5FRF9PTihhcm0sIGFybTY0LCBtaXBz X3NoYXJlZCwgeDg2LCB4NjQsIHBwYzY0KTsKLSAgIGlubGluZSB2b2lkIGJyYW5jaFRydW5jYXRl RG91YmxlVG9JbnQzMihGbG9hdFJlZ2lzdGVyIHNyYywgUmVnaXN0ZXIgZGVzdCwKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMYWJlbCogZmFpbCkKLS0gICAgICBE RUZJTkVEX09OKGFybSwgYXJtNjQsIG1pcHNfc2hhcmVkLCB4ODYsIHg2NCk7Ci0rICAgICAgREVG SU5FRF9PTihhcm0sIGFybTY0LCBtaXBzX3NoYXJlZCwgeDg2LCB4NjQsIHBwYzY0KTsKLSAKLSAg IGlubGluZSB2b2lkIGJyYW5jaERvdWJsZShEb3VibGVDb25kaXRpb24gY29uZCwgRmxvYXRSZWdp c3RlciBsaHMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgRmxvYXRSZWdpc3RlciByaHMs IExhYmVsKiBsYWJlbCkgUEVSX1NIQVJFRF9BUkNIOwotIAotICAgaW5saW5lIHZvaWQgYnJhbmNo RG91YmxlTm90SW5JbnQ2NFJhbmdlKEFkZHJlc3Mgc3JjLCBSZWdpc3RlciB0ZW1wLAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExhYmVsKiBmYWlsKTsKLSAgIGlu bGluZSB2b2lkIGJyYW5jaERvdWJsZU5vdEluVUludDY0UmFuZ2UoQWRkcmVzcyBzcmMsIFJlZ2lz dGVyIHRlbXAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExh YmVsKiBmYWlsKTsKLUBAIC0xNTQzLDE3ICsxNTUwLDE3IEBAIGNsYXNzIE1hY3JvQXNzZW1ibGVy IDogcHVibGljIE1hY3JvQXNzZW1ibGVyU3BlY2lmaWMgewotICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEwgbGFiZWwpIFBFUl9TSEFSRURfQVJDSDsKLSAgIHRlbXBsYXRlIDxjbGFzcyBMPgot ICAgaW5saW5lIHZvaWQgYnJhbmNoVGVzdDMyKENvbmRpdGlvbiBjb25kLCBSZWdpc3RlciBsaHMs IEltbTMyIHJocywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBMIGxhYmVsKSBQRVJfU0hB UkVEX0FSQ0g7Ci0gICBpbmxpbmUgdm9pZCBicmFuY2hUZXN0MzIoQ29uZGl0aW9uIGNvbmQsIGNv bnN0IEFkZHJlc3MmIGxocywgSW1tMzIgcmhoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg IExhYmVsKiBsYWJlbCkgUEVSX1NIQVJFRF9BUkNIOwotICAgaW5saW5lIHZvaWQgYnJhbmNoVGVz dDMyKENvbmRpdGlvbiBjb25kLCBjb25zdCBBYnNvbHV0ZUFkZHJlc3MmIGxocywKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICBJbW0zMiByaHMsIExhYmVsKiBsYWJlbCkKLS0gICAgICBERUZJ TkVEX09OKGFybSwgYXJtNjQsIG1pcHNfc2hhcmVkLCB4ODYsIHg2NCk7Ci0rICAgICAgREVGSU5F RF9PTihhcm0sIGFybTY0LCBtaXBzX3NoYXJlZCwgeDg2LCB4NjQsIHBwYzY0KTsKLSAKLSAgIHRl bXBsYXRlIDxjbGFzcyBMPgotICAgaW5saW5lIHZvaWQgYnJhbmNoVGVzdFB0cihDb25kaXRpb24g Y29uZCwgUmVnaXN0ZXIgbGhzLCBSZWdpc3RlciByaHMsCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEwgbGFiZWwpIFBFUl9TSEFSRURfQVJDSDsKLSAgIGlubGluZSB2b2lkIGJyYW5jaFRl c3RQdHIoQ29uZGl0aW9uIGNvbmQsIFJlZ2lzdGVyIGxocywgSW1tMzIgcmhzLAotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBMYWJlbCogbGFiZWwpIFBFUl9TSEFSRURfQVJDSDsKLSAgIGlu bGluZSB2b2lkIGJyYW5jaFRlc3RQdHIoQ29uZGl0aW9uIGNvbmQsIGNvbnN0IEFkZHJlc3MmIGxo cywgSW1tMzIgcmhzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMYWJlbCogbGFiZWwp IFBFUl9TSEFSRURfQVJDSDsKLUBAIC0xNjg5LDE3ICsxNjk2LDE3IEBAIGNsYXNzIE1hY3JvQXNz ZW1ibGVyIDogcHVibGljIE1hY3JvQXNzZW1ibGVyU3BlY2lmaWMgewotIAotICAgLy8gUGVyZm9y bSBhIHR5cGUtdGVzdCBvbiBhIHRhZyBvZiBhIFZhbHVlICgzMmJpdHMgYm94aW5nKSwgb3IgdGhl IHRhZ2dlZAotICAgLy8gdmFsdWUgKDY0Yml0cyBib3hpbmcpLgotICAgaW5saW5lIHZvaWQgYnJh bmNoVGVzdFVuZGVmaW5lZChDb25kaXRpb24gY29uZCwgUmVnaXN0ZXIgdGFnLAotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBMYWJlbCogbGFiZWwpIFBFUl9TSEFSRURfQVJDSDsK LSAgIGlubGluZSB2b2lkIGJyYW5jaFRlc3RJbnQzMihDb25kaXRpb24gY29uZCwgUmVnaXN0ZXIg dGFnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExhYmVsKiBsYWJlbCkgUEVSX1NI QVJFRF9BUkNIOwotICAgaW5saW5lIHZvaWQgYnJhbmNoVGVzdERvdWJsZShDb25kaXRpb24gY29u ZCwgUmVnaXN0ZXIgdGFnLCBMYWJlbCogbGFiZWwpCi0tICAgICAgREVGSU5FRF9PTihhcm0sIGFy bTY0LCBtaXBzMzIsIG1pcHM2NCwgeDg2X3NoYXJlZCk7Ci0rICAgICAgREVGSU5FRF9PTihhcm0s IGFybTY0LCBtaXBzMzIsIG1pcHM2NCwgeDg2X3NoYXJlZCwgcHBjNjQpOwotICAgaW5saW5lIHZv aWQgYnJhbmNoVGVzdE51bWJlcihDb25kaXRpb24gY29uZCwgUmVnaXN0ZXIgdGFnLAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBMYWJlbCogbGFiZWwpIFBFUl9TSEFSRURfQVJDSDsK LSAgIGlubGluZSB2b2lkIGJyYW5jaFRlc3RCb29sZWFuKENvbmRpdGlvbiBjb25kLCBSZWdpc3Rl ciB0YWcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMYWJlbCogbGFiZWwpIFBF Ul9TSEFSRURfQVJDSDsKLSAgIGlubGluZSB2b2lkIGJyYW5jaFRlc3RTdHJpbmcoQ29uZGl0aW9u IGNvbmQsIFJlZ2lzdGVyIHRhZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGFi ZWwqIGxhYmVsKSBQRVJfU0hBUkVEX0FSQ0g7Ci0gICBpbmxpbmUgdm9pZCBicmFuY2hUZXN0U3lt Ym9sKENvbmRpdGlvbiBjb25kLCBSZWdpc3RlciB0YWcsCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIExhYmVsKiBsYWJlbCkgUEVSX1NIQVJFRF9BUkNIOwotQEAgLTE3MjEsMTA2ICsx NzI4LDEwNiBAQCBjbGFzcyBNYWNyb0Fzc2VtYmxlciA6IHB1YmxpYyBNYWNyb0Fzc2VtYmxlclNw ZWNpZmljIHsKLSAgIC8vIEJhc2VJbmRleCBhbmQgVmFsdWVPcGVyYW5kIHZhcmlhbnRzIGNsb2Ji ZXIgdGhlIFNjcmF0Y2hSZWcgb24geDY0LgotICAgLy8gQWxsIFZhcmlhbnRzIGNsb2JiZXIgdGhl IFNjcmF0Y2hSZWcgb24gYXJtNjQuCi0gICBpbmxpbmUgdm9pZCBicmFuY2hUZXN0VW5kZWZpbmVk KENvbmRpdGlvbiBjb25kLCBjb25zdCBBZGRyZXNzJiBhZGRyZXNzLAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBMYWJlbCogbGFiZWwpIFBFUl9TSEFSRURfQVJDSDsKLSAgIGlu bGluZSB2b2lkIGJyYW5jaFRlc3RVbmRlZmluZWQoQ29uZGl0aW9uIGNvbmQsIGNvbnN0IEJhc2VJ bmRleCYgYWRkcmVzcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGFiZWwq IGxhYmVsKSBQRVJfU0hBUkVEX0FSQ0g7Ci0gICBpbmxpbmUgdm9pZCBicmFuY2hUZXN0VW5kZWZp bmVkKENvbmRpdGlvbiBjb25kLCBjb25zdCBWYWx1ZU9wZXJhbmQmIHZhbHVlLAotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBMYWJlbCogbGFiZWwpCi0tICAgICAgREVGSU5FRF9P Tihhcm0sIGFybTY0LCBtaXBzMzIsIG1pcHM2NCwgeDg2X3NoYXJlZCk7Ci0rICAgICAgREVGSU5F RF9PTihhcm0sIGFybTY0LCBtaXBzMzIsIG1pcHM2NCwgeDg2X3NoYXJlZCwgcHBjNjQpOwotIAot ICAgaW5saW5lIHZvaWQgYnJhbmNoVGVzdEludDMyKENvbmRpdGlvbiBjb25kLCBjb25zdCBBZGRy ZXNzJiBhZGRyZXNzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExhYmVsKiBsYWJl bCkgUEVSX1NIQVJFRF9BUkNIOwotICAgaW5saW5lIHZvaWQgYnJhbmNoVGVzdEludDMyKENvbmRp dGlvbiBjb25kLCBjb25zdCBCYXNlSW5kZXgmIGFkZHJlc3MsCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgTGFiZWwqIGxhYmVsKSBQRVJfU0hBUkVEX0FSQ0g7Ci0gICBpbmxpbmUgdm9p ZCBicmFuY2hUZXN0SW50MzIoQ29uZGl0aW9uIGNvbmQsIGNvbnN0IFZhbHVlT3BlcmFuZCYgdmFs dWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGFiZWwqIGxhYmVsKQotLSAgICAg IERFRklORURfT04oYXJtLCBhcm02NCwgbWlwczMyLCBtaXBzNjQsIHg4Nl9zaGFyZWQpOwotKyAg ICAgIERFRklORURfT04oYXJtLCBhcm02NCwgbWlwczMyLCBtaXBzNjQsIHg4Nl9zaGFyZWQsIHBw YzY0KTsKLSAKLSAgIGlubGluZSB2b2lkIGJyYW5jaFRlc3REb3VibGUoQ29uZGl0aW9uIGNvbmQs IGNvbnN0IEFkZHJlc3MmIGFkZHJlc3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IExhYmVsKiBsYWJlbCkgUEVSX1NIQVJFRF9BUkNIOwotICAgaW5saW5lIHZvaWQgYnJhbmNoVGVz dERvdWJsZShDb25kaXRpb24gY29uZCwgY29uc3QgQmFzZUluZGV4JiBhZGRyZXNzLAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBMYWJlbCogbGFiZWwpIFBFUl9TSEFSRURfQVJDSDsK LSAgIGlubGluZSB2b2lkIGJyYW5jaFRlc3REb3VibGUoQ29uZGl0aW9uIGNvbmQsIGNvbnN0IFZh bHVlT3BlcmFuZCYgdmFsdWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExhYmVs KiBsYWJlbCkKLS0gICAgICBERUZJTkVEX09OKGFybSwgYXJtNjQsIG1pcHMzMiwgbWlwczY0LCB4 ODZfc2hhcmVkKTsKLSsgICAgICBERUZJTkVEX09OKGFybSwgYXJtNjQsIG1pcHMzMiwgbWlwczY0 LCB4ODZfc2hhcmVkLCBwcGM2NCk7Ci0gCi0gICBpbmxpbmUgdm9pZCBicmFuY2hUZXN0TnVtYmVy KENvbmRpdGlvbiBjb25kLCBjb25zdCBWYWx1ZU9wZXJhbmQmIHZhbHVlLAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBMYWJlbCogbGFiZWwpCi0tICAgICAgREVGSU5FRF9PTihhcm0s IGFybTY0LCBtaXBzMzIsIG1pcHM2NCwgeDg2X3NoYXJlZCk7Ci0rICAgICAgREVGSU5FRF9PTihh cm0sIGFybTY0LCBtaXBzMzIsIG1pcHM2NCwgeDg2X3NoYXJlZCwgcHBjNjQpOwotIAotICAgaW5s aW5lIHZvaWQgYnJhbmNoVGVzdEJvb2xlYW4oQ29uZGl0aW9uIGNvbmQsIGNvbnN0IEFkZHJlc3Mm IGFkZHJlc3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMYWJlbCogbGFiZWwp IFBFUl9TSEFSRURfQVJDSDsKLSAgIGlubGluZSB2b2lkIGJyYW5jaFRlc3RCb29sZWFuKENvbmRp dGlvbiBjb25kLCBjb25zdCBCYXNlSW5kZXgmIGFkZHJlc3MsCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBMYWJlbCogbGFiZWwpIFBFUl9TSEFSRURfQVJDSDsKLSAgIGlubGluZSB2 b2lkIGJyYW5jaFRlc3RCb29sZWFuKENvbmRpdGlvbiBjb25kLCBjb25zdCBWYWx1ZU9wZXJhbmQm IHZhbHVlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGFiZWwqIGxhYmVsKQot LSAgICAgIERFRklORURfT04oYXJtLCBhcm02NCwgbWlwczMyLCBtaXBzNjQsIHg4Nl9zaGFyZWQp OwotKyAgICAgIERFRklORURfT04oYXJtLCBhcm02NCwgbWlwczMyLCBtaXBzNjQsIHg4Nl9zaGFy ZWQsIHBwYzY0KTsKLSAKLSAgIGlubGluZSB2b2lkIGJyYW5jaFRlc3RTdHJpbmcoQ29uZGl0aW9u IGNvbmQsIGNvbnN0IEFkZHJlc3MmIGFkZHJlc3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIExhYmVsKiBsYWJlbCkgUEVSX1NIQVJFRF9BUkNIOwotICAgaW5saW5lIHZvaWQgYnJh bmNoVGVzdFN0cmluZyhDb25kaXRpb24gY29uZCwgY29uc3QgQmFzZUluZGV4JiBhZGRyZXNzLAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMYWJlbCogbGFiZWwpIFBFUl9TSEFSRURf QVJDSDsKLSAgIGlubGluZSB2b2lkIGJyYW5jaFRlc3RTdHJpbmcoQ29uZGl0aW9uIGNvbmQsIGNv bnN0IFZhbHVlT3BlcmFuZCYgdmFsdWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IExhYmVsKiBsYWJlbCkKLS0gICAgICBERUZJTkVEX09OKGFybSwgYXJtNjQsIG1pcHMzMiwgbWlw czY0LCB4ODZfc2hhcmVkKTsKLSsgICAgICBERUZJTkVEX09OKGFybSwgYXJtNjQsIG1pcHMzMiwg bWlwczY0LCB4ODZfc2hhcmVkLCBwcGM2NCk7Ci0gCi0gICBpbmxpbmUgdm9pZCBicmFuY2hUZXN0 U3ltYm9sKENvbmRpdGlvbiBjb25kLCBjb25zdCBBZGRyZXNzJiBhZGRyZXNzLAotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBMYWJlbCogbGFiZWwpIFBFUl9TSEFSRURfQVJDSDsKLSAg IGlubGluZSB2b2lkIGJyYW5jaFRlc3RTeW1ib2woQ29uZGl0aW9uIGNvbmQsIGNvbnN0IEJhc2VJ bmRleCYgYWRkcmVzcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGFiZWwqIGxh YmVsKSBQRVJfU0hBUkVEX0FSQ0g7Ci0gICBpbmxpbmUgdm9pZCBicmFuY2hUZXN0U3ltYm9sKENv bmRpdGlvbiBjb25kLCBjb25zdCBWYWx1ZU9wZXJhbmQmIHZhbHVlLAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBMYWJlbCogbGFiZWwpCi0tICAgICAgREVGSU5FRF9PTihhcm0sIGFy bTY0LCBtaXBzMzIsIG1pcHM2NCwgeDg2X3NoYXJlZCk7Ci0rICAgICAgREVGSU5FRF9PTihhcm0s IGFybTY0LCBtaXBzMzIsIG1pcHM2NCwgeDg2X3NoYXJlZCwgcHBjNjQpOwotIAotICAgaW5saW5l IHZvaWQgYnJhbmNoVGVzdEJpZ0ludChDb25kaXRpb24gY29uZCwgY29uc3QgQWRkcmVzcyYgYWRk cmVzcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGFiZWwqIGxhYmVsKSBQRVJf U0hBUkVEX0FSQ0g7Ci0gICBpbmxpbmUgdm9pZCBicmFuY2hUZXN0QmlnSW50KENvbmRpdGlvbiBj b25kLCBjb25zdCBCYXNlSW5kZXgmIGFkZHJlc3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIExhYmVsKiBsYWJlbCkgUEVSX1NIQVJFRF9BUkNIOwotICAgaW5saW5lIHZvaWQgYnJh bmNoVGVzdEJpZ0ludChDb25kaXRpb24gY29uZCwgY29uc3QgVmFsdWVPcGVyYW5kJiB2YWx1ZSwK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGFiZWwqIGxhYmVsKQotLSAgICAgIERF RklORURfT04oYXJtLCBhcm02NCwgbWlwczMyLCBtaXBzNjQsIHg4Nl9zaGFyZWQpOwotKyAgICAg IERFRklORURfT04oYXJtLCBhcm02NCwgbWlwczMyLCBtaXBzNjQsIHg4Nl9zaGFyZWQsIHBwYzY0 KTsKLSAKLSAgIGlubGluZSB2b2lkIGJyYW5jaFRlc3ROdWxsKENvbmRpdGlvbiBjb25kLCBjb25z dCBBZGRyZXNzJiBhZGRyZXNzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGFiZWwq IGxhYmVsKSBQRVJfU0hBUkVEX0FSQ0g7Ci0gICBpbmxpbmUgdm9pZCBicmFuY2hUZXN0TnVsbChD b25kaXRpb24gY29uZCwgY29uc3QgQmFzZUluZGV4JiBhZGRyZXNzLAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgTGFiZWwqIGxhYmVsKSBQRVJfU0hBUkVEX0FSQ0g7Ci0gICBpbmxpbmUg dm9pZCBicmFuY2hUZXN0TnVsbChDb25kaXRpb24gY29uZCwgY29uc3QgVmFsdWVPcGVyYW5kJiB2 YWx1ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExhYmVsKiBsYWJlbCkKLS0gICAg ICBERUZJTkVEX09OKGFybSwgYXJtNjQsIG1pcHMzMiwgbWlwczY0LCB4ODZfc2hhcmVkKTsKLSsg ICAgICBERUZJTkVEX09OKGFybSwgYXJtNjQsIG1pcHMzMiwgbWlwczY0LCB4ODZfc2hhcmVkLCBw cGM2NCk7Ci0gCi0gICAvLyBDbG9iYmVycyB0aGUgU2NyYXRjaFJlZyBvbiB4NjQuCi0gICBpbmxp bmUgdm9pZCBicmFuY2hUZXN0T2JqZWN0KENvbmRpdGlvbiBjb25kLCBjb25zdCBBZGRyZXNzJiBh ZGRyZXNzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMYWJlbCogbGFiZWwpIFBF Ul9TSEFSRURfQVJDSDsKLSAgIGlubGluZSB2b2lkIGJyYW5jaFRlc3RPYmplY3QoQ29uZGl0aW9u IGNvbmQsIGNvbnN0IEJhc2VJbmRleCYgYWRkcmVzcywKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgTGFiZWwqIGxhYmVsKSBQRVJfU0hBUkVEX0FSQ0g7Ci0gICBpbmxpbmUgdm9pZCBi cmFuY2hUZXN0T2JqZWN0KENvbmRpdGlvbiBjb25kLCBjb25zdCBWYWx1ZU9wZXJhbmQmIHZhbHVl LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMYWJlbCogbGFiZWwpCi0tICAgICAg REVGSU5FRF9PTihhcm0sIGFybTY0LCBtaXBzMzIsIG1pcHM2NCwgeDg2X3NoYXJlZCk7Ci0rICAg ICAgREVGSU5FRF9PTihhcm0sIGFybTY0LCBtaXBzMzIsIG1pcHM2NCwgeDg2X3NoYXJlZCwgcHBj NjQpOwotIAotICAgaW5saW5lIHZvaWQgYnJhbmNoVGVzdEdDVGhpbmcoQ29uZGl0aW9uIGNvbmQs IGNvbnN0IEFkZHJlc3MmIGFkZHJlc3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBMYWJlbCogbGFiZWwpIFBFUl9TSEFSRURfQVJDSDsKLSAgIGlubGluZSB2b2lkIGJyYW5jaFRl c3RHQ1RoaW5nKENvbmRpdGlvbiBjb25kLCBjb25zdCBCYXNlSW5kZXgmIGFkZHJlc3MsCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMYWJlbCogbGFiZWwpIFBFUl9TSEFSRURfQVJD SDsKLSAgIGlubGluZSB2b2lkIGJyYW5jaFRlc3RHQ1RoaW5nKENvbmRpdGlvbiBjb25kLCBjb25z dCBWYWx1ZU9wZXJhbmQmIHZhbHVlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg TGFiZWwqIGxhYmVsKSBQRVJfU0hBUkVEX0FSQ0g7Ci0gCi0gICBpbmxpbmUgdm9pZCBicmFuY2hU ZXN0UHJpbWl0aXZlKENvbmRpdGlvbiBjb25kLCBjb25zdCBWYWx1ZU9wZXJhbmQmIHZhbHVlLAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMYWJlbCogbGFiZWwpCi0tICAgICAg REVGSU5FRF9PTihhcm0sIGFybTY0LCBtaXBzMzIsIG1pcHM2NCwgeDg2X3NoYXJlZCk7Ci0rICAg ICAgREVGSU5FRF9PTihhcm0sIGFybTY0LCBtaXBzMzIsIG1pcHM2NCwgeDg2X3NoYXJlZCwgcHBj NjQpOwotIAotICAgaW5saW5lIHZvaWQgYnJhbmNoVGVzdE1hZ2ljKENvbmRpdGlvbiBjb25kLCBj b25zdCBBZGRyZXNzJiBhZGRyZXNzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExh YmVsKiBsYWJlbCkgUEVSX1NIQVJFRF9BUkNIOwotICAgaW5saW5lIHZvaWQgYnJhbmNoVGVzdE1h Z2ljKENvbmRpdGlvbiBjb25kLCBjb25zdCBCYXNlSW5kZXgmIGFkZHJlc3MsCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgTGFiZWwqIGxhYmVsKSBQRVJfU0hBUkVEX0FSQ0g7Ci0gICB0 ZW1wbGF0ZSA8Y2xhc3MgTD4KLSAgIGlubGluZSB2b2lkIGJyYW5jaFRlc3RNYWdpYyhDb25kaXRp b24gY29uZCwgY29uc3QgVmFsdWVPcGVyYW5kJiB2YWx1ZSwKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBMIGxhYmVsKQotLSAgICAgIERFRklORURfT04oYXJtLCBhcm02NCwgbWlwczMy LCBtaXBzNjQsIHg4Nl9zaGFyZWQpOwotKyAgICAgIERFRklORURfT04oYXJtLCBhcm02NCwgbWlw czMyLCBtaXBzNjQsIHg4Nl9zaGFyZWQsIHBwYzY0KTsKLSAKLSAgIGlubGluZSB2b2lkIGJyYW5j aFRlc3RNYWdpYyhDb25kaXRpb24gY29uZCwgY29uc3QgQWRkcmVzcyYgdmFsYWRkciwKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBKU1doeU1hZ2ljIHdoeSwgTGFiZWwqIGxhYmVsKSBQ RVJfQVJDSDsKLSAKLSAgIGlubGluZSB2b2lkIGJyYW5jaFRlc3RNYWdpY1ZhbHVlKENvbmRpdGlv biBjb25kLCBjb25zdCBWYWx1ZU9wZXJhbmQmIHZhbCwKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIEpTV2h5TWFnaWMgd2h5LCBMYWJlbCogbGFiZWwpOwotIAotICAgdm9pZCBi cmFuY2hUZXN0VmFsdWUoQ29uZGl0aW9uIGNvbmQsIGNvbnN0IFZhbHVlT3BlcmFuZCYgbGhzLAot QEAgLTE4MjgsNDIgKzE4MzUsNDIgQEAgY2xhc3MgTWFjcm9Bc3NlbWJsZXIgOiBwdWJsaWMgTWFj cm9Bc3NlbWJsZXJTcGVjaWZpYyB7Ci0gCi0gICBpbmxpbmUgdm9pZCBicmFuY2hUZXN0VmFsdWUo Q29uZGl0aW9uIGNvbmQsIGNvbnN0IEJhc2VJbmRleCYgbGhzLAotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGNvbnN0IFZhbHVlT3BlcmFuZCYgcmhzLCBMYWJlbCogbGFiZWwpIFBFUl9B UkNIOwotIAotICAgLy8gQ2hlY2tzIGlmIGdpdmVuIFZhbHVlIGlzIGV2YWx1YXRlZCB0byB0cnVl IG9yIGZhbHNlIGluIGEgY29uZGl0aW9uLgotICAgLy8gVGhlIHR5cGUgb2YgdGhlIHZhbHVlIHNo b3VsZCBtYXRjaCB0aGUgdHlwZSBvZiB0aGUgbWV0aG9kLgotICAgaW5saW5lIHZvaWQgYnJhbmNo VGVzdEludDMyVHJ1dGh5KGJvb2wgdHJ1dGh5LCBjb25zdCBWYWx1ZU9wZXJhbmQmIHZhbHVlLAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExhYmVsKiBsYWJlbCkKLS0gICAg ICBERUZJTkVEX09OKGFybSwgYXJtNjQsIG1pcHMzMiwgbWlwczY0LCB4ODZfc2hhcmVkKTsKLSsg ICAgICBERUZJTkVEX09OKGFybSwgYXJtNjQsIG1pcHMzMiwgbWlwczY0LCB4ODZfc2hhcmVkLCBw cGM2NCk7Ci0gICBpbmxpbmUgdm9pZCBicmFuY2hUZXN0RG91YmxlVHJ1dGh5KGJvb2wgdHJ1dGh5 LCBGbG9hdFJlZ2lzdGVyIHJlZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgTGFiZWwqIGxhYmVsKSBQRVJfU0hBUkVEX0FSQ0g7Ci0gICBpbmxpbmUgdm9pZCBicmFuY2hU ZXN0Qm9vbGVhblRydXRoeShib29sIHRydXRoeSwgY29uc3QgVmFsdWVPcGVyYW5kJiB2YWx1ZSwK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExhYmVsKiBsYWJlbCkgUEVS X0FSQ0g7Ci0gICBpbmxpbmUgdm9pZCBicmFuY2hUZXN0U3RyaW5nVHJ1dGh5KGJvb2wgdHJ1dGh5 LCBjb25zdCBWYWx1ZU9wZXJhbmQmIHZhbHVlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBMYWJlbCogbGFiZWwpCi0tICAgICAgREVGSU5FRF9PTihhcm0sIGFybTY0LCBt aXBzMzIsIG1pcHM2NCwgeDg2X3NoYXJlZCk7Ci0rICAgICAgREVGSU5FRF9PTihhcm0sIGFybTY0 LCBtaXBzMzIsIG1pcHM2NCwgeDg2X3NoYXJlZCwgcHBjNjQpOwotICAgaW5saW5lIHZvaWQgYnJh bmNoVGVzdEJpZ0ludFRydXRoeShib29sIHRydXRoeSwgY29uc3QgVmFsdWVPcGVyYW5kJiB2YWx1 ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGFiZWwqIGxhYmVsKQot LSAgICAgIERFRklORURfT04oYXJtLCBhcm02NCwgbWlwczMyLCBtaXBzNjQsIHg4Nl9zaGFyZWQp OwotKyAgICAgIERFRklORURfT04oYXJtLCBhcm02NCwgbWlwczMyLCBtaXBzNjQsIHg4Nl9zaGFy ZWQsIHBwYzY0KTsKLSAKLSAgIC8vIENyZWF0ZSBhbiB1bmNvbmRpdGlvbmFsIGJyYW5jaCB0byB0 aGUgYWRkcmVzcyBnaXZlbiBhcyBhcmd1bWVudC4KLSAgIGlubGluZSB2b2lkIGJyYW5jaFRvQ29t cHV0ZWRBZGRyZXNzKGNvbnN0IEJhc2VJbmRleCYgYWRkcmVzcykgUEVSX0FSQ0g7Ci0gCi0gIHBy aXZhdGU6Ci0gICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVCwgdHlwZW5hbWUgUywgdHlwZW5hbWUgTD4K LSAgIGlubGluZSB2b2lkIGJyYW5jaFB0ckltcGwoQ29uZGl0aW9uIGNvbmQsIGNvbnN0IFQmIGxo cywgY29uc3QgUyYgcmhzLCBMIGxhYmVsKQotICAgICAgIERFRklORURfT04oeDg2X3NoYXJlZCk7 Ci0gCi0gICB2b2lkIGJyYW5jaFB0ckluTnVyc2VyeUNodW5rSW1wbChDb25kaXRpb24gY29uZCwg UmVnaXN0ZXIgcHRyLCBMYWJlbCogbGFiZWwpCi0gICAgICAgREVGSU5FRF9PTih4ODYpOwotICAg dGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci0gICB2b2lkIGJyYW5jaFZhbHVlSXNOdXJzZXJ5Q2VsbElt cGwoQ29uZGl0aW9uIGNvbmQsIGNvbnN0IFQmIHZhbHVlLAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFJlZ2lzdGVyIHRlbXAsIExhYmVsKiBsYWJlbCkKLS0gICAgICBERUZJ TkVEX09OKGFybTY0LCB4NjQsIG1pcHM2NCk7Ci0rICAgICAgREVGSU5FRF9PTihhcm02NCwgeDY0 LCBtaXBzNjQsIHBwYzY0KTsKLSAKLSAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgotICAgaW5saW5l IHZvaWQgYnJhbmNoVGVzdFVuZGVmaW5lZEltcGwoQ29uZGl0aW9uIGNvbmQsIGNvbnN0IFQmIHQs IExhYmVsKiBsYWJlbCkKLSAgICAgICBERUZJTkVEX09OKGFybSwgYXJtNjQsIHg4Nl9zaGFyZWQp OwotICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci0gICBpbmxpbmUgdm9pZCBicmFuY2hUZXN0SW50 MzJJbXBsKENvbmRpdGlvbiBjb25kLCBjb25zdCBUJiB0LCBMYWJlbCogbGFiZWwpCi0gICAgICAg REVGSU5FRF9PTihhcm0sIGFybTY0LCB4ODZfc2hhcmVkKTsKLSAgIHRlbXBsYXRlIDx0eXBlbmFt ZSBUPgotQEAgLTE5MjMsMTE2ICsxOTMwLDExNiBAQCBjbGFzcyBNYWNyb0Fzc2VtYmxlciA6IHB1 YmxpYyBNYWNyb0Fzc2VtYmxlclNwZWNpZmljIHsKLSAgIGlubGluZSB2b2lkIGZhbGxpYmxlVW5i b3hTdHJpbmcoY29uc3QgVCYgc3JjLCBSZWdpc3RlciBkZXN0LCBMYWJlbCogZmFpbCk7Ci0gICB0 ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLSAgIGlubGluZSB2b2lkIGZhbGxpYmxlVW5ib3hTeW1ib2wo Y29uc3QgVCYgc3JjLCBSZWdpc3RlciBkZXN0LCBMYWJlbCogZmFpbCk7Ci0gICB0ZW1wbGF0ZSA8 dHlwZW5hbWUgVD4KLSAgIGlubGluZSB2b2lkIGZhbGxpYmxlVW5ib3hCaWdJbnQoY29uc3QgVCYg c3JjLCBSZWdpc3RlciBkZXN0LCBMYWJlbCogZmFpbCk7Ci0gCi0gICBpbmxpbmUgdm9pZCBjbXAz Mk1vdmUzMihDb25kaXRpb24gY29uZCwgUmVnaXN0ZXIgbGhzLCBSZWdpc3RlciByaHMsCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICBSZWdpc3RlciBzcmMsIFJlZ2lzdGVyIGRlc3QpCi0tICAg ICAgREVGSU5FRF9PTihhcm0sIGFybTY0LCBtaXBzX3NoYXJlZCwgeDg2X3NoYXJlZCk7Ci0rICAg ICAgREVGSU5FRF9PTihhcm0sIGFybTY0LCBtaXBzX3NoYXJlZCwgeDg2X3NoYXJlZCwgcHBjNjQp OwotIAotICAgaW5saW5lIHZvaWQgY21wMzJNb3ZlMzIoQ29uZGl0aW9uIGNvbmQsIFJlZ2lzdGVy IGxocywgY29uc3QgQWRkcmVzcyYgcmhzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVn aXN0ZXIgc3JjLCBSZWdpc3RlciBkZXN0KQotLSAgICAgIERFRklORURfT04oYXJtLCBhcm02NCwg bWlwc19zaGFyZWQsIHg4Nl9zaGFyZWQpOwotKyAgICAgIERFRklORURfT04oYXJtLCBhcm02NCwg bWlwc19zaGFyZWQsIHg4Nl9zaGFyZWQsIHBwYzY0KTsKLSAKLSAgIGlubGluZSB2b2lkIGNtcFB0 ck1vdmVQdHIoQ29uZGl0aW9uIGNvbmQsIFJlZ2lzdGVyIGxocywgUmVnaXN0ZXIgcmhzLAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBSZWdpc3RlciBzcmMsIFJlZ2lzdGVyIGRlc3QpIFBF Ul9BUkNIOwotIAotICAgaW5saW5lIHZvaWQgY21wUHRyTW92ZVB0cihDb25kaXRpb24gY29uZCwg UmVnaXN0ZXIgbGhzLCBjb25zdCBBZGRyZXNzJiByaHMsCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFJlZ2lzdGVyIHNyYywgUmVnaXN0ZXIgZGVzdCkgUEVSX0FSQ0g7Ci0gCi0gICBpbmxp bmUgdm9pZCBjbXAzMkxvYWQzMihDb25kaXRpb24gY29uZCwgUmVnaXN0ZXIgbGhzLCBjb25zdCBB ZGRyZXNzJiByaHMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBBZGRyZXNzJiBz cmMsIFJlZ2lzdGVyIGRlc3QpCi0tICAgICAgREVGSU5FRF9PTihhcm0sIGFybTY0LCBtaXBzX3No YXJlZCwgeDg2X3NoYXJlZCk7Ci0rICAgICAgREVGSU5FRF9PTihhcm0sIGFybTY0LCBtaXBzX3No YXJlZCwgeDg2X3NoYXJlZCwgcHBjNjQpOwotIAotICAgaW5saW5lIHZvaWQgY21wMzJMb2FkMzIo Q29uZGl0aW9uIGNvbmQsIFJlZ2lzdGVyIGxocywgUmVnaXN0ZXIgcmhzLAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgY29uc3QgQWRkcmVzcyYgc3JjLCBSZWdpc3RlciBkZXN0KQotLSAgICAg IERFRklORURfT04oYXJtLCBhcm02NCwgbWlwc19zaGFyZWQsIHg4Nl9zaGFyZWQpOwotKyAgICAg IERFRklORURfT04oYXJtLCBhcm02NCwgbWlwc19zaGFyZWQsIHg4Nl9zaGFyZWQsIHBwYzY0KTsK LSAKLSAgIGlubGluZSB2b2lkIGNtcDMyTG9hZFB0cihDb25kaXRpb24gY29uZCwgY29uc3QgQWRk cmVzcyYgbGhzLCBJbW0zMiByaHMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg QWRkcmVzcyYgc3JjLCBSZWdpc3RlciBkZXN0KQotLSAgICAgIERFRklORURfT04oYXJtLCBhcm02 NCwgbWlwc19zaGFyZWQsIHg4NiwgeDY0KTsKLSsgICAgICBERUZJTkVEX09OKGFybSwgYXJtNjQs IG1pcHNfc2hhcmVkLCB4ODYsIHg2NCwgcHBjNjQpOwotIAotICAgaW5saW5lIHZvaWQgY21wMzJN b3ZlUHRyKENvbmRpdGlvbiBjb25kLCBSZWdpc3RlciBsaHMsIEltbTMyIHJocywKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICBSZWdpc3RlciBzcmMsIFJlZ2lzdGVyIGRlc3QpCi0tICAgICAg REVGSU5FRF9PTihhcm0sIGFybTY0LCBtaXBzX3NoYXJlZCwgeDg2LCB4NjQpOwotKyAgICAgIERF RklORURfT04oYXJtLCBhcm02NCwgbWlwc19zaGFyZWQsIHg4NiwgeDY0LCBwcGM2NCk7Ci0gCi0g ICBpbmxpbmUgdm9pZCB0ZXN0MzJMb2FkUHRyKENvbmRpdGlvbiBjb25kLCBjb25zdCBBZGRyZXNz JiBhZGRyLCBJbW0zMiBtYXNrLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBB ZGRyZXNzJiBzcmMsIFJlZ2lzdGVyIGRlc3QpCi0tICAgICAgREVGSU5FRF9PTihhcm0sIGFybTY0 LCBtaXBzX3NoYXJlZCwgeDg2LCB4NjQpOwotKyAgICAgIERFRklORURfT04oYXJtLCBhcm02NCwg bWlwc19zaGFyZWQsIHg4NiwgeDY0LCBwcGM2NCk7Ci0gCi0gICBpbmxpbmUgdm9pZCB0ZXN0MzJN b3ZlUHRyKENvbmRpdGlvbiBjb25kLCBjb25zdCBBZGRyZXNzJiBhZGRyLCBJbW0zMiBtYXNrLAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWdpc3RlciBzcmMsIFJlZ2lzdGVyIGRlc3Qp Ci0tICAgICAgREVGSU5FRF9PTihhcm0sIGFybTY0LCBtaXBzX3NoYXJlZCwgeDg2LCB4NjQpOwot KyAgICAgIERFRklORURfT04oYXJtLCBhcm02NCwgbWlwc19zaGFyZWQsIHg4NiwgeDY0LCBwcGM2 NCk7Ci0gCi0gICAvLyBDb25kaXRpb25hbCBtb3ZlIGZvciBTcGVjdHJlIG1pdGlnYXRpb25zLgot ICAgaW5saW5lIHZvaWQgc3BlY3RyZU1vdmVQdHIoQ29uZGl0aW9uIGNvbmQsIFJlZ2lzdGVyIHNy YywgUmVnaXN0ZXIgZGVzdCkKLS0gICAgICBERUZJTkVEX09OKGFybSwgYXJtNjQsIG1pcHNfc2hh cmVkLCB4ODYsIHg2NCk7Ci0rICAgICAgREVGSU5FRF9PTihhcm0sIGFybTY0LCBtaXBzX3NoYXJl ZCwgeDg2LCB4NjQsIHBwYzY0KTsKLSAKLSAgIC8vIFplcm9lcyBkZXN0IGlmIHRoZSBjb25kaXRp b24gaXMgdHJ1ZS4KLSAgIGlubGluZSB2b2lkIHNwZWN0cmVaZXJvUmVnaXN0ZXIoQ29uZGl0aW9u IGNvbmQsIFJlZ2lzdGVyIHNjcmF0Y2gsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFJlZ2lzdGVyIGRlc3QpCi0tICAgICAgREVGSU5FRF9PTihhcm0sIGFybTY0LCBtaXBzX3No YXJlZCwgeDg2X3NoYXJlZCk7Ci0rICAgICAgREVGSU5FRF9PTihhcm0sIGFybTY0LCBtaXBzX3No YXJlZCwgeDg2X3NoYXJlZCwgcHBjNjQpOwotIAotICAgLy8gUGVyZm9ybXMgYSBib3VuZHMgY2hl Y2sgYW5kIHplcm9lcyB0aGUgaW5kZXggcmVnaXN0ZXIgaWYgb3V0LW9mLWJvdW5kcwotICAgLy8g KHRvIG1pdGlnYXRlIFNwZWN0cmUpLgotICBwcml2YXRlOgotICAgaW5saW5lIHZvaWQgc3BlY3Ry ZUJvdW5kc0NoZWNrMzIoUmVnaXN0ZXIgaW5kZXgsIGNvbnN0IE9wZXJhbmQmIGxlbmd0aCwKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyIG1heWJlU2NyYXRjaCwg TGFiZWwqIGZhaWx1cmUpCi0gICAgICAgREVGSU5FRF9PTih4ODYpOwotIAotICBwdWJsaWM6Ci0g ICBpbmxpbmUgdm9pZCBzcGVjdHJlQm91bmRzQ2hlY2szMihSZWdpc3RlciBpbmRleCwgUmVnaXN0 ZXIgbGVuZ3RoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIg bWF5YmVTY3JhdGNoLCBMYWJlbCogZmFpbHVyZSkKLS0gICAgICBERUZJTkVEX09OKGFybSwgYXJt NjQsIG1pcHNfc2hhcmVkLCB4ODYsIHg2NCk7Ci0rICAgICAgREVGSU5FRF9PTihhcm0sIGFybTY0 LCBtaXBzX3NoYXJlZCwgeDg2LCB4NjQsIHBwYzY0KTsKLSAgIGlubGluZSB2b2lkIHNwZWN0cmVC b3VuZHNDaGVjazMyKFJlZ2lzdGVyIGluZGV4LCBjb25zdCBBZGRyZXNzJiBsZW5ndGgsCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWdpc3RlciBtYXliZVNjcmF0Y2gsIExh YmVsKiBmYWlsdXJlKQotLSAgICAgIERFRklORURfT04oYXJtLCBhcm02NCwgbWlwc19zaGFyZWQs IHg4NiwgeDY0KTsKLSsgICAgICBERUZJTkVEX09OKGFybSwgYXJtNjQsIG1pcHNfc2hhcmVkLCB4 ODYsIHg2NCwgcHBjNjQpOwotIAotICAgaW5saW5lIHZvaWQgc3BlY3RyZUJvdW5kc0NoZWNrUHRy KFJlZ2lzdGVyIGluZGV4LCBSZWdpc3RlciBsZW5ndGgsCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUmVnaXN0ZXIgbWF5YmVTY3JhdGNoLCBMYWJlbCogZmFpbHVyZSkKLS0g ICAgICBERUZJTkVEX09OKGFybSwgYXJtNjQsIG1pcHNfc2hhcmVkLCB4ODYsIHg2NCk7Ci0rICAg ICAgREVGSU5FRF9PTihhcm0sIGFybTY0LCBtaXBzX3NoYXJlZCwgeDg2LCB4NjQsIHBwYzY0KTsK LSAgIGlubGluZSB2b2lkIHNwZWN0cmVCb3VuZHNDaGVja1B0cihSZWdpc3RlciBpbmRleCwgY29u c3QgQWRkcmVzcyYgbGVuZ3RoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFJlZ2lzdGVyIG1heWJlU2NyYXRjaCwgTGFiZWwqIGZhaWx1cmUpCi0tICAgICAgREVGSU5FRF9P Tihhcm0sIGFybTY0LCBtaXBzX3NoYXJlZCwgeDg2LCB4NjQpOwotKyAgICAgIERFRklORURfT04o YXJtLCBhcm02NCwgbWlwc19zaGFyZWQsIHg4NiwgeDY0LCBwcGM2NCk7Ci0gCi0gICAvLyA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KLSAgIC8vIENhbm9uaWNhbGl6YXRpb24gcHJpbWl0aXZlcy4KLSAgIGlubGlu ZSB2b2lkIGNhbm9uaWNhbGl6ZURvdWJsZShGbG9hdFJlZ2lzdGVyIHJlZyk7Ci0gICBpbmxpbmUg dm9pZCBjYW5vbmljYWxpemVEb3VibGVJZkRldGVybWluaXN0aWMoRmxvYXRSZWdpc3RlciByZWcp OwotIAotICAgaW5saW5lIHZvaWQgY2Fub25pY2FsaXplRmxvYXQoRmxvYXRSZWdpc3RlciByZWcp OwotICAgaW5saW5lIHZvaWQgY2Fub25pY2FsaXplRmxvYXRJZkRldGVybWluaXN0aWMoRmxvYXRS ZWdpc3RlciByZWcpOwotIAotICBwdWJsaWM6Ci0gICAvLyA9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLSAgIC8v IE1lbW9yeSBhY2Nlc3MgcHJpbWl0aXZlcy4KLSAgIGlubGluZSB2b2lkIHN0b3JlVW5jYW5vbmlj YWxpemVkRG91YmxlKEZsb2F0UmVnaXN0ZXIgc3JjLCBjb25zdCBBZGRyZXNzJiBkZXN0KQotLSAg ICAgIERFRklORURfT04oeDg2X3NoYXJlZCwgYXJtLCBhcm02NCwgbWlwczMyLCBtaXBzNjQpOwot KyAgICAgIERFRklORURfT04oeDg2X3NoYXJlZCwgYXJtLCBhcm02NCwgbWlwczMyLCBtaXBzNjQs IHBwYzY0KTsKLSAgIGlubGluZSB2b2lkIHN0b3JlVW5jYW5vbmljYWxpemVkRG91YmxlKEZsb2F0 UmVnaXN0ZXIgc3JjLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y29uc3QgQmFzZUluZGV4JiBkZXN0KQotLSAgICAgIERFRklORURfT04oeDg2X3NoYXJlZCwgYXJt LCBhcm02NCwgbWlwczMyLCBtaXBzNjQpOwotKyAgICAgIERFRklORURfT04oeDg2X3NoYXJlZCwg YXJtLCBhcm02NCwgbWlwczMyLCBtaXBzNjQsIHBwYzY0KTsKLSAgIGlubGluZSB2b2lkIHN0b3Jl VW5jYW5vbmljYWxpemVkRG91YmxlKEZsb2F0UmVnaXN0ZXIgc3JjLCBjb25zdCBPcGVyYW5kJiBk ZXN0KQotICAgICAgIERFRklORURfT04oeDg2X3NoYXJlZCk7Ci0gCi0gICB0ZW1wbGF0ZSA8Y2xh c3MgVD4KLSAgIGlubGluZSB2b2lkIHN0b3JlRG91YmxlKEZsb2F0UmVnaXN0ZXIgc3JjLCBjb25z dCBUJiBkZXN0KTsKLSAKLSAgIHRlbXBsYXRlIDxjbGFzcyBUPgotICAgaW5saW5lIHZvaWQgYm94 RG91YmxlKEZsb2F0UmVnaXN0ZXIgc3JjLCBjb25zdCBUJiBkZXN0KTsKLSAKLSAgIHVzaW5nIE1h Y3JvQXNzZW1ibGVyU3BlY2lmaWM6OmJveERvdWJsZTsKLSAKLSAgIGlubGluZSB2b2lkIHN0b3Jl VW5jYW5vbmljYWxpemVkRmxvYXQzMihGbG9hdFJlZ2lzdGVyIHNyYywKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBBZGRyZXNzJiBkZXN0KQotLSAgICAg IERFRklORURfT04oeDg2X3NoYXJlZCwgYXJtLCBhcm02NCwgbWlwczMyLCBtaXBzNjQpOwotKyAg ICAgIERFRklORURfT04oeDg2X3NoYXJlZCwgYXJtLCBhcm02NCwgbWlwczMyLCBtaXBzNjQsIHBw YzY0KTsKLSAgIGlubGluZSB2b2lkIHN0b3JlVW5jYW5vbmljYWxpemVkRmxvYXQzMihGbG9hdFJl Z2lzdGVyIHNyYywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj b25zdCBCYXNlSW5kZXgmIGRlc3QpCi0tICAgICAgREVGSU5FRF9PTih4ODZfc2hhcmVkLCBhcm0s IGFybTY0LCBtaXBzMzIsIG1pcHM2NCk7Ci0rICAgICAgREVGSU5FRF9PTih4ODZfc2hhcmVkLCBh cm0sIGFybTY0LCBtaXBzMzIsIG1pcHM2NCwgcHBjNjQpOwotICAgaW5saW5lIHZvaWQgc3RvcmVV bmNhbm9uaWNhbGl6ZWRGbG9hdDMyKEZsb2F0UmVnaXN0ZXIgc3JjLAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IE9wZXJhbmQmIGRlc3QpCi0gICAgICAg REVGSU5FRF9PTih4ODZfc2hhcmVkKTsKLSAKLSAgIHRlbXBsYXRlIDxjbGFzcyBUPgotICAgaW5s aW5lIHZvaWQgc3RvcmVGbG9hdDMyKEZsb2F0UmVnaXN0ZXIgc3JjLCBjb25zdCBUJiBkZXN0KTsK LSAKLSAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgotQEAgLTM0NzAsMjAgKzM0NzcsMjAgQEAgY2xh c3MgTWFjcm9Bc3NlbWJsZXIgOiBwdWJsaWMgTWFjcm9Bc3NlbWJsZXJTcGVjaWZpYyB7Ci0gICAg ICAgREVGSU5FRF9PTih4ODYsIHg2NCk7Ci0gCi0gIHB1YmxpYzoKLSAgIC8vID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQotICAgLy8gQ29udmVydCBmbG9hdGluZyBwb2ludC4KLSAKLSAgIC8vIHRlbXAgcmVxdWly ZWQgb24geDg2IGFuZCB4NjQ7IG11c3QgYmUgdW5kZWZpbmVkIG9uIG1pcHM2NC4KLSAgIHZvaWQg Y29udmVydFVJbnQ2NFRvRmxvYXQzMihSZWdpc3RlcjY0IHNyYywgRmxvYXRSZWdpc3RlciBkZXN0 LCBSZWdpc3RlciB0ZW1wKQotLSAgICAgIERFRklORURfT04oYXJtNjQsIG1pcHM2NCwgeDY0LCB4 ODYpOwotKyAgICAgIERFRklORURfT04oYXJtNjQsIG1pcHM2NCwgeDY0LCB4ODYsIHBwYzY0KTsK LSAKLSAgIHZvaWQgY29udmVydEludDY0VG9GbG9hdDMyKFJlZ2lzdGVyNjQgc3JjLCBGbG9hdFJl Z2lzdGVyIGRlc3QpCi0tICAgICAgREVGSU5FRF9PTihhcm02NCwgbWlwczY0LCB4NjQsIHg4Nik7 Ci0rICAgICAgREVGSU5FRF9PTihhcm02NCwgbWlwczY0LCB4NjQsIHg4NiwgcHBjNjQpOwotIAot ICAgYm9vbCBjb252ZXJ0VUludDY0VG9Eb3VibGVOZWVkc1RlbXAoKSBQRVJfQVJDSDsKLSAKLSAg IC8vIHRlbXAgcmVxdWlyZWQgd2hlbiBjb252ZXJ0VUludDY0VG9Eb3VibGVOZWVkc1RlbXAoKSBy ZXR1cm5zIHRydWUuCi0gICB2b2lkIGNvbnZlcnRVSW50NjRUb0RvdWJsZShSZWdpc3RlcjY0IHNy YywgRmxvYXRSZWdpc3RlciBkZXN0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVn aXN0ZXIgdGVtcCkgUEVSX0FSQ0g7Ci0gCi0gICB2b2lkIGNvbnZlcnRJbnQ2NFRvRG91YmxlKFJl Z2lzdGVyNjQgc3JjLCBGbG9hdFJlZ2lzdGVyIGRlc3QpIFBFUl9BUkNIOwotQEAgLTM1MTQsMjkg KzM1MjEsMjkgQEAgY2xhc3MgTWFjcm9Bc3NlbWJsZXIgOiBwdWJsaWMgTWFjcm9Bc3NlbWJsZXJT cGVjaWZpYyB7Ci0gICAvLwotICAgLy8gT24gMzItYml0IHN5c3RlbXMgZm9yIGJvdGggd2FzbSBh bmQgYXNtLmpzLCBhbmQgb24gNjQtYml0IHN5c3RlbXMgZm9yCi0gICAvLyBhc20uanMsIGhlYXAg bGVuZ3RocyBhcmUgbGltaXRlZCB0byAyR0IuICBPbiA2NC1iaXQgc3lzdGVtcyBmb3Igd2FzbSwK LSAgIC8vIDMyLWJpdCBoZWFwIGxlbmd0aHMgYXJlIGxpbWl0ZWQgdG8gNEdCLCBhbmQgNjQtYml0 IGhlYXAgbGVuZ3RocyB3aWxsIGJlCi0gICAvLyBsaW1pdGVkIHRvIHNvbWV0aGluZyBtdWNoIGxh cmdlci4KLSAKLSAgIHZvaWQgd2FzbUJvdW5kc0NoZWNrMzIoQ29uZGl0aW9uIGNvbmQsIFJlZ2lz dGVyIGluZGV4LAotICAgICAgICAgICAgICAgICAgICAgICAgICBSZWdpc3RlciBib3VuZHNDaGVj a0xpbWl0LCBMYWJlbCogbGFiZWwpCi0tICAgICAgREVGSU5FRF9PTihhcm0sIGFybTY0LCBtaXBz MzIsIG1pcHM2NCwgeDg2X3NoYXJlZCk7Ci0rICAgICAgREVGSU5FRF9PTihhcm0sIGFybTY0LCBt aXBzMzIsIG1pcHM2NCwgeDg2X3NoYXJlZCwgcHBjNjQpOwotIAotICAgdm9pZCB3YXNtQm91bmRz Q2hlY2szMihDb25kaXRpb24gY29uZCwgUmVnaXN0ZXIgaW5kZXgsCi0gICAgICAgICAgICAgICAg ICAgICAgICAgIEFkZHJlc3MgYm91bmRzQ2hlY2tMaW1pdCwgTGFiZWwqIGxhYmVsKQotLSAgICAg IERFRklORURfT04oYXJtLCBhcm02NCwgbWlwczMyLCBtaXBzNjQsIHg4Nl9zaGFyZWQpOwotKyAg ICAgIERFRklORURfT04oYXJtLCBhcm02NCwgbWlwczMyLCBtaXBzNjQsIHg4Nl9zaGFyZWQsIHBw YzY0KTsKLSAKLSAgIHZvaWQgd2FzbUJvdW5kc0NoZWNrNjQoQ29uZGl0aW9uIGNvbmQsIFJlZ2lz dGVyNjQgaW5kZXgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyNjQgYm91bmRz Q2hlY2tMaW1pdCwgTGFiZWwqIGxhYmVsKQotLSAgICAgIERFRklORURfT04oYXJtNjQsIG1pcHM2 NCwgeDY0KTsKLSsgICAgICBERUZJTkVEX09OKGFybTY0LCBtaXBzNjQsIHg2NCwgcHBjNjQpOwot IAotICAgdm9pZCB3YXNtQm91bmRzQ2hlY2s2NChDb25kaXRpb24gY29uZCwgUmVnaXN0ZXI2NCBp bmRleCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgQWRkcmVzcyBib3VuZHNDaGVja0xpbWl0 LCBMYWJlbCogbGFiZWwpCi0tICAgICAgREVGSU5FRF9PTihhcm02NCwgbWlwczY0LCB4NjQpOwot KyAgICAgIERFRklORURfT04oYXJtNjQsIG1pcHM2NCwgeDY0LCBwcGM2NCk7Ci0gCi0gICAvLyBF YWNoIHdhc20gbG9hZC9zdG9yZSBpbnN0cnVjdGlvbiBhcHBlbmRzIGl0cyBvd24gd2FzbTo6VHJh cDo6T3V0T2ZCb3VuZHMuCi0gICB2b2lkIHdhc21Mb2FkKGNvbnN0IHdhc206Ok1lbW9yeUFjY2Vz c0Rlc2MmIGFjY2VzcywgT3BlcmFuZCBzcmNBZGRyLAotICAgICAgICAgICAgICAgICBBbnlSZWdp c3RlciBvdXQpIERFRklORURfT04oeDg2LCB4NjQpOwotICAgdm9pZCB3YXNtTG9hZEk2NChjb25z dCB3YXNtOjpNZW1vcnlBY2Nlc3NEZXNjJiBhY2Nlc3MsIE9wZXJhbmQgc3JjQWRkciwKLSAgICAg ICAgICAgICAgICAgICAgUmVnaXN0ZXI2NCBvdXQpIERFRklORURfT04oeDg2LCB4NjQpOwotICAg dm9pZCB3YXNtU3RvcmUoY29uc3Qgd2FzbTo6TWVtb3J5QWNjZXNzRGVzYyYgYWNjZXNzLCBBbnlS ZWdpc3RlciB2YWx1ZSwKLSAgICAgICAgICAgICAgICAgIE9wZXJhbmQgZHN0QWRkcikgREVGSU5F RF9PTih4ODYsIHg2NCk7Ci1AQCAtMzU0NiwyNiArMzU1MywyNiBAQCBjbGFzcyBNYWNyb0Fzc2Vt YmxlciA6IHB1YmxpYyBNYWNyb0Fzc2VtYmxlclNwZWNpZmljIHsKLSAgIC8vIEZvciBhbGwgdGhl IEFSTS9NSVBTIHdhc21Mb2FkIGFuZCB3YXNtU3RvcmUgZnVuY3Rpb25zIGJlbG93LCBgcHRyYAot ICAgLy8gTVVTVCBlcXVhbCBgcHRyU2NyYXRjaGAsIGFuZCB0aGF0IHJlZ2lzdGVyIHdpbGwgYmUg dXBkYXRlZCBiYXNlZCBvbgotICAgLy8gY29uZGl0aW9ucyBsaXN0ZWQgYmVsb3cgKHdoZXJlIGl0 IGlzIG9ubHkgbWVudGlvbmVkIGFzIGBwdHJgKS4KLSAKLSAgIC8vIGBwdHJgIHdpbGwgYmUgdXBk YXRlZCBpZiBhY2Nlc3Mub2Zmc2V0KCkgIT0gMCBvciBhY2Nlc3MudHlwZSgpID09Ci0gICAvLyBT Y2FsYXI6OkludDY0LgotICAgdm9pZCB3YXNtTG9hZChjb25zdCB3YXNtOjpNZW1vcnlBY2Nlc3NE ZXNjJiBhY2Nlc3MsIFJlZ2lzdGVyIG1lbW9yeUJhc2UsCi0gICAgICAgICAgICAgICAgIFJlZ2lz dGVyIHB0ciwgUmVnaXN0ZXIgcHRyU2NyYXRjaCwgQW55UmVnaXN0ZXIgb3V0cHV0KQotLSAgICAg IERFRklORURfT04oYXJtLCBtaXBzX3NoYXJlZCk7Ci0rICAgICAgREVGSU5FRF9PTihhcm0sIG1p cHNfc2hhcmVkLCBwcGM2NCk7Ci0gICB2b2lkIHdhc21Mb2FkSTY0KGNvbnN0IHdhc206Ok1lbW9y eUFjY2Vzc0Rlc2MmIGFjY2VzcywgUmVnaXN0ZXIgbWVtb3J5QmFzZSwKLSAgICAgICAgICAgICAg ICAgICAgUmVnaXN0ZXIgcHRyLCBSZWdpc3RlciBwdHJTY3JhdGNoLCBSZWdpc3RlcjY0IG91dHB1 dCkKLS0gICAgICBERUZJTkVEX09OKGFybSwgbWlwczMyLCBtaXBzNjQpOwotKyAgICAgIERFRklO RURfT04oYXJtLCBtaXBzMzIsIG1pcHM2NCwgcHBjNjQpOwotICAgdm9pZCB3YXNtU3RvcmUoY29u c3Qgd2FzbTo6TWVtb3J5QWNjZXNzRGVzYyYgYWNjZXNzLCBBbnlSZWdpc3RlciB2YWx1ZSwKLSAg ICAgICAgICAgICAgICAgIFJlZ2lzdGVyIG1lbW9yeUJhc2UsIFJlZ2lzdGVyIHB0ciwgUmVnaXN0 ZXIgcHRyU2NyYXRjaCkKLS0gICAgICBERUZJTkVEX09OKGFybSwgbWlwc19zaGFyZWQpOwotKyAg ICAgIERFRklORURfT04oYXJtLCBtaXBzX3NoYXJlZCwgcHBjNjQpOwotICAgdm9pZCB3YXNtU3Rv cmVJNjQoY29uc3Qgd2FzbTo6TWVtb3J5QWNjZXNzRGVzYyYgYWNjZXNzLCBSZWdpc3RlcjY0IHZh bHVlLAotICAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgbWVtb3J5QmFzZSwgUmVnaXN0ZXIg cHRyLCBSZWdpc3RlciBwdHJTY3JhdGNoKQotLSAgICAgIERFRklORURfT04oYXJtLCBtaXBzMzIs IG1pcHM2NCk7Ci0rICAgICAgREVGSU5FRF9PTihhcm0sIG1pcHMzMiwgbWlwczY0LCBwcGM2NCk7 Ci0gCi0gICAvLyBUaGVzZSBhY2NlcHQgZ2VuZXJhbCBtZW1vcnlCYXNlICsgcHRyICsgb2Zmc2V0 IChpbiBgYWNjZXNzYCk7IHRoZSBvZmZzZXQgaXMKLSAgIC8vIGFsd2F5cyBzbWFsbGVyIHRoYW4g dGhlIGd1YXJkIHJlZ2lvbi4gIFRoZXkgd2lsbCBpbnNlcnQgYW4gYWRkaXRpb25hbCBhZGQKLSAg IC8vIGlmIHRoZSBvZmZzZXQgaXMgbm9uemVybywgYW5kIG9mIGNvdXJzZSB0aGF0IGFkZCBtYXkg cmVxdWlyZSBhIHRlbXBvcmFyeQotICAgLy8gcmVnaXN0ZXIgZm9yIHRoZSBvZmZzZXQgaWYgdGhl IG9mZnNldCBpcyBsYXJnZSwgYW5kIGluc3RydWN0aW9ucyB0byBzZXQgaXQKLSAgIC8vIHVwLgot ICAgdm9pZCB3YXNtTG9hZChjb25zdCB3YXNtOjpNZW1vcnlBY2Nlc3NEZXNjJiBhY2Nlc3MsIFJl Z2lzdGVyIG1lbW9yeUJhc2UsCi0gICAgICAgICAgICAgICAgIFJlZ2lzdGVyIHB0ciwgQW55UmVn aXN0ZXIgb3V0cHV0KSBERUZJTkVEX09OKGFybTY0KTsKLUBAIC0zNTc1LDEwMCArMzU4MiwxMDAg QEAgY2xhc3MgTWFjcm9Bc3NlbWJsZXIgOiBwdWJsaWMgTWFjcm9Bc3NlbWJsZXJTcGVjaWZpYyB7 Ci0gICAgICAgICAgICAgICAgICBSZWdpc3RlciBtZW1vcnlCYXNlLCBSZWdpc3RlciBwdHIpIERF RklORURfT04oYXJtNjQpOwotICAgdm9pZCB3YXNtU3RvcmVJNjQoY29uc3Qgd2FzbTo6TWVtb3J5 QWNjZXNzRGVzYyYgYWNjZXNzLCBSZWdpc3RlcjY0IHZhbHVlLAotICAgICAgICAgICAgICAgICAg ICAgUmVnaXN0ZXIgbWVtb3J5QmFzZSwgUmVnaXN0ZXIgcHRyKSBERUZJTkVEX09OKGFybTY0KTsK LSAKLSAgIC8vIGBwdHJgIHdpbGwgYWx3YXlzIGJlIHVwZGF0ZWQuCi0gICB2b2lkIHdhc21VbmFs aWduZWRMb2FkKGNvbnN0IHdhc206Ok1lbW9yeUFjY2Vzc0Rlc2MmIGFjY2VzcywKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgbWVtb3J5QmFzZSwgUmVnaXN0ZXIgcHRyLCBSZWdp c3RlciBwdHJTY3JhdGNoLAotICAgICAgICAgICAgICAgICAgICAgICAgICBSZWdpc3RlciBvdXRw dXQsIFJlZ2lzdGVyIHRtcCkKLS0gICAgICBERUZJTkVEX09OKG1pcHMzMiwgbWlwczY0KTsKLSsg ICAgICBERUZJTkVEX09OKG1pcHMzMiwgbWlwczY0LCBwcGM2NCk7Ci0gCi0gICAvLyBNSVBTOiBg cHRyYCB3aWxsIGFsd2F5cyBiZSB1cGRhdGVkLgotICAgdm9pZCB3YXNtVW5hbGlnbmVkTG9hZEZQ KGNvbnN0IHdhc206Ok1lbW9yeUFjY2Vzc0Rlc2MmIGFjY2VzcywKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICBSZWdpc3RlciBtZW1vcnlCYXNlLCBSZWdpc3RlciBwdHIsCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgcHRyU2NyYXRjaCwgRmxvYXRSZWdpc3RlciBvdXRw dXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgdG1wMSwgUmVnaXN0ZXIg dG1wMiwgUmVnaXN0ZXIgdG1wMykKLS0gICAgICBERUZJTkVEX09OKG1pcHMzMiwgbWlwczY0KTsK LSsgICAgICBERUZJTkVEX09OKG1pcHMzMiwgbWlwczY0LCBwcGM2NCk7Ci0gCi0gICAvLyBgcHRy YCB3aWxsIGFsd2F5cyBiZSB1cGRhdGVkLgotICAgdm9pZCB3YXNtVW5hbGlnbmVkTG9hZEk2NChj b25zdCB3YXNtOjpNZW1vcnlBY2Nlc3NEZXNjJiBhY2Nlc3MsCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFJlZ2lzdGVyIG1lbW9yeUJhc2UsIFJlZ2lzdGVyIHB0ciwKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgcHRyU2NyYXRjaCwgUmVnaXN0ZXI2NCBvdXRwdXQs Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyIHRtcCkgREVGSU5FRF9PTiht aXBzMzIsIG1pcHM2NCk7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyIHRt cCkgREVGSU5FRF9PTihtaXBzMzIsIG1pcHM2NCwgcHBjNjQpOwotIAotICAgLy8gTUlQUzogYHB0 cmAgd2lsbCBhbHdheXMgYmUgdXBkYXRlZC4KLSAgIHZvaWQgd2FzbVVuYWxpZ25lZFN0b3JlKGNv bnN0IHdhc206Ok1lbW9yeUFjY2Vzc0Rlc2MmIGFjY2VzcywgUmVnaXN0ZXIgdmFsdWUsCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICBSZWdpc3RlciBtZW1vcnlCYXNlLCBSZWdpc3RlciBwdHIs Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBSZWdpc3RlciBwdHJTY3JhdGNoLCBSZWdpc3Rl ciB0bXApCi0tICAgICAgREVGSU5FRF9PTihtaXBzMzIsIG1pcHM2NCk7Ci0rICAgICAgREVGSU5F RF9PTihtaXBzMzIsIG1pcHM2NCwgcHBjNjQpOwotIAotICAgLy8gYHB0cmAgd2lsbCBhbHdheXMg YmUgdXBkYXRlZC4KLSAgIHZvaWQgd2FzbVVuYWxpZ25lZFN0b3JlRlAoY29uc3Qgd2FzbTo6TWVt b3J5QWNjZXNzRGVzYyYgYWNjZXNzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGbG9h dFJlZ2lzdGVyIGZsb2F0VmFsdWUsIFJlZ2lzdGVyIG1lbW9yeUJhc2UsCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFJlZ2lzdGVyIHB0ciwgUmVnaXN0ZXIgcHRyU2NyYXRjaCwgUmVnaXN0 ZXIgdG1wKQotLSAgICAgIERFRklORURfT04obWlwczMyLCBtaXBzNjQpOwotKyAgICAgIERFRklO RURfT04obWlwczMyLCBtaXBzNjQsIHBwYzY0KTsKLSAKLSAgIC8vIGBwdHJgIHdpbGwgYWx3YXlz IGJlIHVwZGF0ZWQuCi0gICB2b2lkIHdhc21VbmFsaWduZWRTdG9yZUk2NChjb25zdCB3YXNtOjpN ZW1vcnlBY2Nlc3NEZXNjJiBhY2Nlc3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBS ZWdpc3RlcjY0IHZhbHVlLCBSZWdpc3RlciBtZW1vcnlCYXNlLAotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgUmVnaXN0ZXIgcHRyLCBSZWdpc3RlciBwdHJTY3JhdGNoLCBSZWdpc3RlciB0 bXApCi0tICAgICAgREVGSU5FRF9PTihtaXBzMzIsIG1pcHM2NCk7Ci0rICAgICAgREVGSU5FRF9P TihtaXBzMzIsIG1pcHM2NCwgcHBjNjQpOwotIAotICAgLy8gd2FzbSBzcGVjaWZpYyBtZXRob2Rz LCB1c2VkIGluIGJvdGggdGhlIHdhc20gYmFzZWxpbmUgY29tcGlsZXIgYW5kIGlvbi4KLSAKLSAg IC8vIFRoZSB0cnVuY2F0ZS10by1pbnQzMiBtZXRob2RzIGRvIG5vdCBiaW5kIHRoZSByZWpvaW4g bGFiZWw7IGNsaWVudHMgbXVzdAotICAgLy8gZG8gc28gaWYgb29sV2FzbVRydW5jYXRlQ2hlY2tG NjRUb0kzMigpIGNhbiBqdW1wIHRvIGl0LgotICAgdm9pZCB3YXNtVHJ1bmNhdGVEb3VibGVUb1VJ bnQzMihGbG9hdFJlZ2lzdGVyIGlucHV0LCBSZWdpc3RlciBvdXRwdXQsCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGJvb2wgaXNTYXR1cmF0aW5nLCBMYWJlbCogb29sRW50cnkp IFBFUl9BUkNIOwotICAgdm9pZCB3YXNtVHJ1bmNhdGVEb3VibGVUb0ludDMyKEZsb2F0UmVnaXN0 ZXIgaW5wdXQsIFJlZ2lzdGVyIG91dHB1dCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBib29sIGlzU2F0dXJhdGluZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBMYWJlbCogb29sRW50cnkpIFBFUl9TSEFSRURfQVJDSDsKLSAgIHZvaWQgb29sV2FzbVRydW5j YXRlQ2hlY2tGNjRUb0kzMihGbG9hdFJlZ2lzdGVyIGlucHV0LCBSZWdpc3RlciBvdXRwdXQsCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVHJ1bmNGbGFncyBmbGFncywgd2Fz bTo6Qnl0ZWNvZGVPZmZzZXQgb2ZmLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIExhYmVsKiByZWpvaW4pCi0tICAgICAgREVGSU5FRF9PTihhcm0sIGFybTY0LCB4ODZfc2hh cmVkLCBtaXBzX3NoYXJlZCk7Ci0rICAgICAgREVGSU5FRF9PTihhcm0sIGFybTY0LCB4ODZfc2hh cmVkLCBtaXBzX3NoYXJlZCwgcHBjNjQpOwotIAotICAgdm9pZCB3YXNtVHJ1bmNhdGVGbG9hdDMy VG9VSW50MzIoRmxvYXRSZWdpc3RlciBpbnB1dCwgUmVnaXN0ZXIgb3V0cHV0LAotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBpc1NhdHVyYXRpbmcsIExhYmVsKiBvb2xF bnRyeSkgUEVSX0FSQ0g7Ci0gICB2b2lkIHdhc21UcnVuY2F0ZUZsb2F0MzJUb0ludDMyKEZsb2F0 UmVnaXN0ZXIgaW5wdXQsIFJlZ2lzdGVyIG91dHB1dCwKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgYm9vbCBpc1NhdHVyYXRpbmcsCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIExhYmVsKiBvb2xFbnRyeSkgUEVSX1NIQVJFRF9BUkNIOwotICAgdm9pZCBvb2xX YXNtVHJ1bmNhdGVDaGVja0YzMlRvSTMyKEZsb2F0UmVnaXN0ZXIgaW5wdXQsIFJlZ2lzdGVyIG91 dHB1dCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUcnVuY0ZsYWdzIGZs YWdzLCB3YXNtOjpCeXRlY29kZU9mZnNldCBvZmYsCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgTGFiZWwqIHJlam9pbikKLS0gICAgICBERUZJTkVEX09OKGFybSwgYXJtNjQs IHg4Nl9zaGFyZWQsIG1pcHNfc2hhcmVkKTsKLSsgICAgICBERUZJTkVEX09OKGFybSwgYXJtNjQs IHg4Nl9zaGFyZWQsIG1pcHNfc2hhcmVkLCBwcGM2NCk7Ci0gCi0gICAvLyBUaGUgdHJ1bmNhdGUt dG8taW50NjQgbWV0aG9kcyB3aWxsIGFsd2F5cyBiaW5kIHRoZSBgb29sUmVqb2luYCBsYWJlbAot ICAgLy8gYWZ0ZXIgdGhlIGxhc3QgZW1pdHRlZCBpbnN0cnVjdGlvbi4KLSAgIHZvaWQgd2FzbVRy dW5jYXRlRG91YmxlVG9JbnQ2NChGbG9hdFJlZ2lzdGVyIGlucHV0LCBSZWdpc3RlcjY0IG91dHB1 dCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIGlzU2F0dXJhdGluZywg TGFiZWwqIG9vbEVudHJ5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExhYmVs KiBvb2xSZWpvaW4sIEZsb2F0UmVnaXN0ZXIgdGVtcERvdWJsZSkKLS0gICAgICBERUZJTkVEX09O KGFybTY0LCB4ODYsIHg2NCwgbWlwczY0KTsKLSsgICAgICBERUZJTkVEX09OKGFybTY0LCB4ODYs IHg2NCwgbWlwczY0LCBwcGM2NCk7Ci0gICB2b2lkIHdhc21UcnVuY2F0ZURvdWJsZVRvVUludDY0 KEZsb2F0UmVnaXN0ZXIgaW5wdXQsIFJlZ2lzdGVyNjQgb3V0cHV0LAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBib29sIGlzU2F0dXJhdGluZywgTGFiZWwqIG9vbEVudHJ5LAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMYWJlbCogb29sUmVqb2luLCBGbG9h dFJlZ2lzdGVyIHRlbXBEb3VibGUpCi0tICAgICAgREVGSU5FRF9PTihhcm02NCwgeDg2LCB4NjQs IG1pcHM2NCk7Ci0rICAgICAgREVGSU5FRF9PTihhcm02NCwgeDg2LCB4NjQsIG1pcHM2NCwgcHBj NjQpOwotICAgdm9pZCBvb2xXYXNtVHJ1bmNhdGVDaGVja0Y2NFRvSTY0KEZsb2F0UmVnaXN0ZXIg aW5wdXQsIFJlZ2lzdGVyNjQgb3V0cHV0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFRydW5jRmxhZ3MgZmxhZ3MsIHdhc206OkJ5dGVjb2RlT2Zmc2V0IG9mZiwKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMYWJlbCogcmVqb2luKQotLSAgICAgIERF RklORURfT04oYXJtLCBhcm02NCwgeDg2X3NoYXJlZCwgbWlwc19zaGFyZWQpOwotKyAgICAgIERF RklORURfT04oYXJtLCBhcm02NCwgeDg2X3NoYXJlZCwgbWlwc19zaGFyZWQsIHBwYzY0KTsKLSAK LSAgIHZvaWQgd2FzbVRydW5jYXRlRmxvYXQzMlRvSW50NjQoRmxvYXRSZWdpc3RlciBpbnB1dCwg UmVnaXN0ZXI2NCBvdXRwdXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJv b2wgaXNTYXR1cmF0aW5nLCBMYWJlbCogb29sRW50cnksCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIExhYmVsKiBvb2xSZWpvaW4sIEZsb2F0UmVnaXN0ZXIgdGVtcERvdWJsZSkK LS0gICAgICBERUZJTkVEX09OKGFybTY0LCB4ODYsIHg2NCwgbWlwczY0KTsKLSsgICAgICBERUZJ TkVEX09OKGFybTY0LCB4ODYsIHg2NCwgbWlwczY0LCBwcGM2NCk7Ci0gICB2b2lkIHdhc21UcnVu Y2F0ZUZsb2F0MzJUb1VJbnQ2NChGbG9hdFJlZ2lzdGVyIGlucHV0LCBSZWdpc3RlcjY0IG91dHB1 dCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgaXNTYXR1cmF0aW5n LCBMYWJlbCogb29sRW50cnksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBM YWJlbCogb29sUmVqb2luLCBGbG9hdFJlZ2lzdGVyIHRlbXBEb3VibGUpCi0tICAgICAgREVGSU5F RF9PTihhcm02NCwgeDg2LCB4NjQsIG1pcHM2NCk7Ci0rICAgICAgREVGSU5FRF9PTihhcm02NCwg eDg2LCB4NjQsIG1pcHM2NCwgcHBjNjQpOwotICAgdm9pZCBvb2xXYXNtVHJ1bmNhdGVDaGVja0Yz MlRvSTY0KEZsb2F0UmVnaXN0ZXIgaW5wdXQsIFJlZ2lzdGVyNjQgb3V0cHV0LAotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRydW5jRmxhZ3MgZmxhZ3MsIHdhc206OkJ5dGVj b2RlT2Zmc2V0IG9mZiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMYWJl bCogcmVqb2luKQotLSAgICAgIERFRklORURfT04oYXJtLCBhcm02NCwgeDg2X3NoYXJlZCwgbWlw c19zaGFyZWQpOwotKyAgICAgIERFRklORURfT04oYXJtLCBhcm02NCwgeDg2X3NoYXJlZCwgbWlw c19zaGFyZWQsIHBwYzY0KTsKLSAKLSAgIC8vIFRoaXMgZnVuY3Rpb24gdGFrZXMgY2FyZSBvZiBs b2FkaW5nIHRoZSBjYWxsZWUncyBUTFMgYW5kIHBpbm5lZCByZWdzIGJ1dAotICAgLy8gaXQgaXMg dGhlIGNhbGxlcidzIHJlc3BvbnNpYmlsaXR5IHRvIHNhdmUvcmVzdG9yZSBUTFMgb3IgcGlubmVk IHJlZ3MuCi0gICBDb2RlT2Zmc2V0IHdhc21DYWxsSW1wb3J0KGNvbnN0IHdhc206OkNhbGxTaXRl RGVzYyYgZGVzYywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgd2FzbTo6Q2Fs bGVlRGVzYyYgY2FsbGVlKTsKLSAKLSAgIC8vIFdhc21UYWJsZUNhbGxJbmRleFJlZyBtdXN0IGNv bnRhaW4gdGhlIGluZGV4IG9mIHRoZSBpbmRpcmVjdCBjYWxsLgotICAgQ29kZU9mZnNldCB3YXNt Q2FsbEluZGlyZWN0KGNvbnN0IHdhc206OkNhbGxTaXRlRGVzYyYgZGVzYywKLUBAIC0zNzM1LDcy ICszNzQyLDcyIEBAIGNsYXNzIE1hY3JvQXNzZW1ibGVyIDogcHVibGljIE1hY3JvQXNzZW1ibGVy U3BlY2lmaWMgewotICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgQmFzZUluZGV4JiBtZW0s IFJlZ2lzdGVyIGV4cGVjdGVkLAotICAgICAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgcmVw bGFjZW1lbnQsIFJlZ2lzdGVyIG91dHB1dCkKLSAgICAgICBERUZJTkVEX09OKGFybSwgYXJtNjQs IHg4Nl9zaGFyZWQpOwotIAotICAgdm9pZCBjb21wYXJlRXhjaGFuZ2UoU2NhbGFyOjpUeXBlIHR5 cGUsIGNvbnN0IFN5bmNocm9uaXphdGlvbiYgc3luYywKLSAgICAgICAgICAgICAgICAgICAgICAg IGNvbnN0IEFkZHJlc3MmIG1lbSwgUmVnaXN0ZXIgZXhwZWN0ZWQsCi0gICAgICAgICAgICAgICAg ICAgICAgICBSZWdpc3RlciByZXBsYWNlbWVudCwgUmVnaXN0ZXIgdmFsdWVUZW1wLAotICAgICAg ICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgb2Zmc2V0VGVtcCwgUmVnaXN0ZXIgbWFza1RlbXAs IFJlZ2lzdGVyIG91dHB1dCkKLS0gICAgICBERUZJTkVEX09OKG1pcHNfc2hhcmVkKTsKLSsgICAg ICBERUZJTkVEX09OKG1pcHNfc2hhcmVkLCBwcGM2NCk7Ci0gCi0gICB2b2lkIGNvbXBhcmVFeGNo YW5nZShTY2FsYXI6OlR5cGUgdHlwZSwgY29uc3QgU3luY2hyb25pemF0aW9uJiBzeW5jLAotICAg ICAgICAgICAgICAgICAgICAgICAgY29uc3QgQmFzZUluZGV4JiBtZW0sIFJlZ2lzdGVyIGV4cGVj dGVkLAotICAgICAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgcmVwbGFjZW1lbnQsIFJlZ2lz dGVyIHZhbHVlVGVtcCwKLSAgICAgICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyIG9mZnNldFRl bXAsIFJlZ2lzdGVyIG1hc2tUZW1wLCBSZWdpc3RlciBvdXRwdXQpCi0tICAgICAgREVGSU5FRF9P TihtaXBzX3NoYXJlZCk7Ci0rICAgICAgREVGSU5FRF9PTihtaXBzX3NoYXJlZCwgcHBjNjQpOwot IAotICAgLy8geDg2OiBgZXhwZWN0ZWRgIGFuZCBgb3V0cHV0YCBtdXN0IGJlIGVkeDplYXg7IGBy ZXBsYWNlbWVudGAgaXMgZWN4OmVieC4KLSAgIC8vIHg2NDogYG91dHB1dGAgbXVzdCBiZSByYXgu Ci0gICAvLyBBUk06IFJlZ2lzdGVycyBtdXN0IGJlIGRpc3RpbmN0OyBgcmVwbGFjZW1lbnRgIGFu ZCBgb3V0cHV0YCBtdXN0IGJlCi0gICAvLyAoZXZlbixvZGQpIHBhaXJzLgotIAotICAgdm9pZCBj b21wYXJlRXhjaGFuZ2U2NChjb25zdCBTeW5jaHJvbml6YXRpb24mIHN5bmMsIGNvbnN0IEFkZHJl c3MmIG1lbSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXI2NCBleHBlY3RlZCwg UmVnaXN0ZXI2NCByZXBsYWNlbWVudCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgUmVnaXN0 ZXI2NCBvdXRwdXQpCi0tICAgICAgREVGSU5FRF9PTihhcm0sIGFybTY0LCB4NjQsIHg4NiwgbWlw czY0KTsKLSsgICAgICBERUZJTkVEX09OKGFybSwgYXJtNjQsIHg2NCwgeDg2LCBtaXBzNjQsIHBw YzY0KTsKLSAKLSAgIHZvaWQgY29tcGFyZUV4Y2hhbmdlNjQoY29uc3QgU3luY2hyb25pemF0aW9u JiBzeW5jLCBjb25zdCBCYXNlSW5kZXgmIG1lbSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg UmVnaXN0ZXI2NCBleHBlY3RlZCwgUmVnaXN0ZXI2NCByZXBsYWNlbWVudCwKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgUmVnaXN0ZXI2NCBvdXRwdXQpCi0tICAgICAgREVGSU5FRF9PTihhcm0s IGFybTY0LCB4NjQsIHg4NiwgbWlwczY0KTsKLSsgICAgICBERUZJTkVEX09OKGFybSwgYXJtNjQs IHg2NCwgeDg2LCBtaXBzNjQsIHBwYzY0KTsKLSAKLSAgIC8vIEV4Y2hhbmdlIHdpdGggbWVtb3J5 LiAgUmV0dXJuIHRoZSB2YWx1ZSBpbml0aWFsbHkgaW4gbWVtb3J5LgotICAgLy8gTUlQUzogYHZh bHVlVGVtcGAsIGBvZmZzZXRUZW1wYCBhbmQgYG1hc2tUZW1wYCBtdXN0IGJlIGRlZmluZWQgZm9y IDgtYml0Ci0gICAvLyBhbmQgMTYtYml0IHdpZGUgb3BlcmF0aW9ucy4KLSAKLSAgIHZvaWQgYXRv bWljRXhjaGFuZ2UoU2NhbGFyOjpUeXBlIHR5cGUsIGNvbnN0IFN5bmNocm9uaXphdGlvbiYgc3lu YywKLSAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgQWRkcmVzcyYgbWVtLCBSZWdpc3RlciB2 YWx1ZSwgUmVnaXN0ZXIgb3V0cHV0KQotICAgICAgIERFRklORURfT04oYXJtLCBhcm02NCwgeDg2 X3NoYXJlZCk7Ci0gCi0gICB2b2lkIGF0b21pY0V4Y2hhbmdlKFNjYWxhcjo6VHlwZSB0eXBlLCBj b25zdCBTeW5jaHJvbml6YXRpb24mIHN5bmMsCi0gICAgICAgICAgICAgICAgICAgICAgIGNvbnN0 IEJhc2VJbmRleCYgbWVtLCBSZWdpc3RlciB2YWx1ZSwgUmVnaXN0ZXIgb3V0cHV0KQotICAgICAg IERFRklORURfT04oYXJtLCBhcm02NCwgeDg2X3NoYXJlZCk7Ci0gCi0gICB2b2lkIGF0b21pY0V4 Y2hhbmdlKFNjYWxhcjo6VHlwZSB0eXBlLCBjb25zdCBTeW5jaHJvbml6YXRpb24mIHN5bmMsCi0g ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEFkZHJlc3MmIG1lbSwgUmVnaXN0ZXIgdmFsdWUs IFJlZ2lzdGVyIHZhbHVlVGVtcCwKLSAgICAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgb2Zm c2V0VGVtcCwgUmVnaXN0ZXIgbWFza1RlbXAsIFJlZ2lzdGVyIG91dHB1dCkKLS0gICAgICBERUZJ TkVEX09OKG1pcHNfc2hhcmVkKTsKLSsgICAgICBERUZJTkVEX09OKG1pcHNfc2hhcmVkLCBwcGM2 NCk7Ci0gCi0gICB2b2lkIGF0b21pY0V4Y2hhbmdlKFNjYWxhcjo6VHlwZSB0eXBlLCBjb25zdCBT eW5jaHJvbml6YXRpb24mIHN5bmMsCi0gICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEJhc2VJ bmRleCYgbWVtLCBSZWdpc3RlciB2YWx1ZSwgUmVnaXN0ZXIgdmFsdWVUZW1wLAotICAgICAgICAg ICAgICAgICAgICAgICBSZWdpc3RlciBvZmZzZXRUZW1wLCBSZWdpc3RlciBtYXNrVGVtcCwgUmVn aXN0ZXIgb3V0cHV0KQotLSAgICAgIERFRklORURfT04obWlwc19zaGFyZWQpOwotKyAgICAgIERF RklORURfT04obWlwc19zaGFyZWQsIHBwYzY0KTsKLSAKLSAgIC8vIHg4NjogYHZhbHVlYCBtdXN0 IGJlIGVjeDplYng7IGBvdXRwdXRgIG11c3QgYmUgZWR4OmVheC4KLSAgIC8vIEFSTTogYHZhbHVl YCBhbmQgYG91dHB1dGAgbXVzdCBiZSBkaXN0aW5jdCBhbmQgKGV2ZW4sb2RkKSBwYWlycy4KLSAg IC8vIEFSTTY0OiBgdmFsdWVgIGFuZCBgb3V0cHV0YCBtdXN0IGJlIGRpc3RpbmN0LgotIAotICAg dm9pZCBhdG9taWNFeGNoYW5nZTY0KGNvbnN0IFN5bmNocm9uaXphdGlvbiYgc3luYywgY29uc3Qg QWRkcmVzcyYgbWVtLAotICAgICAgICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyNjQgdmFsdWUs IFJlZ2lzdGVyNjQgb3V0cHV0KQotLSAgICAgIERFRklORURfT04oYXJtLCBhcm02NCwgeDY0LCB4 ODYsIG1pcHM2NCk7Ci0rICAgICAgREVGSU5FRF9PTihhcm0sIGFybTY0LCB4NjQsIHg4NiwgbWlw czY0LCBwcGM2NCk7Ci0gCi0gICB2b2lkIGF0b21pY0V4Y2hhbmdlNjQoY29uc3QgU3luY2hyb25p emF0aW9uJiBzeW5jLCBjb25zdCBCYXNlSW5kZXgmIG1lbSwKLSAgICAgICAgICAgICAgICAgICAg ICAgICBSZWdpc3RlcjY0IHZhbHVlLCBSZWdpc3RlcjY0IG91dHB1dCkKLS0gICAgICBERUZJTkVE X09OKGFybSwgYXJtNjQsIHg2NCwgeDg2LCBtaXBzNjQpOwotKyAgICAgIERFRklORURfT04oYXJt LCBhcm02NCwgeDY0LCB4ODYsIG1pcHM2NCwgcHBjNjQpOwotIAotICAgLy8gUmVhZC1tb2RpZnkt d3JpdGUgd2l0aCBtZW1vcnkuICBSZXR1cm4gdGhlIHZhbHVlIGluIG1lbW9yeSBiZWZvcmUgdGhl Ci0gICAvLyBvcGVyYXRpb24uCi0gICAvLwotICAgLy8geDg2LXNoYXJlZDoKLSAgIC8vICAgRm9y IDgtYml0IG9wZXJhdGlvbnMsIGB2YWx1ZWAgYW5kIGBvdXRwdXRgIG11c3QgaGF2ZSBhIGJ5dGUg c3VicmVnaXN0ZXIuCi0gICAvLyAgIEZvciBBZGQgYW5kIFN1YiwgYHRlbXBgIG11c3QgYmUgaW52 YWxpZC4KLSAgIC8vICAgRm9yIEFuZCwgT3IsIGFuZCBYb3IsIGBvdXRwdXRgIG11c3QgYmUgZWF4 IGFuZCBgdGVtcGAgbXVzdCBoYXZlIGEgYnl0ZQotQEAgLTM4MjYsNDQgKzM4MzMsNDQgQEAgY2xh c3MgTWFjcm9Bc3NlbWJsZXIgOiBwdWJsaWMgTWFjcm9Bc3NlbWJsZXJTcGVjaWZpYyB7Ci0gCi0g ICB2b2lkIGF0b21pY0ZldGNoT3AoU2NhbGFyOjpUeXBlIHR5cGUsIGNvbnN0IFN5bmNocm9uaXph dGlvbiYgc3luYywKLSAgICAgICAgICAgICAgICAgICAgICBBdG9taWNPcCBvcCwgSW1tMzIgdmFs dWUsIGNvbnN0IEJhc2VJbmRleCYgbWVtLAotICAgICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVy IHRlbXAsIFJlZ2lzdGVyIG91dHB1dCkgREVGSU5FRF9PTih4ODZfc2hhcmVkKTsKLSAKLSAgIHZv aWQgYXRvbWljRmV0Y2hPcChTY2FsYXI6OlR5cGUgdHlwZSwgY29uc3QgU3luY2hyb25pemF0aW9u JiBzeW5jLAotICAgICAgICAgICAgICAgICAgICAgIEF0b21pY09wIG9wLCBSZWdpc3RlciB2YWx1 ZSwgY29uc3QgQWRkcmVzcyYgbWVtLAotICAgICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyIHZh bHVlVGVtcCwgUmVnaXN0ZXIgb2Zmc2V0VGVtcCwgUmVnaXN0ZXIgbWFza1RlbXAsCi0tICAgICAg ICAgICAgICAgICAgICAgUmVnaXN0ZXIgb3V0cHV0KSBERUZJTkVEX09OKG1pcHNfc2hhcmVkKTsK LSsgICAgICAgICAgICAgICAgICAgICBSZWdpc3RlciBvdXRwdXQpIERFRklORURfT04obWlwc19z aGFyZWQsIHBwYzY0KTsKLSAKLSAgIHZvaWQgYXRvbWljRmV0Y2hPcChTY2FsYXI6OlR5cGUgdHlw ZSwgY29uc3QgU3luY2hyb25pemF0aW9uJiBzeW5jLAotICAgICAgICAgICAgICAgICAgICAgIEF0 b21pY09wIG9wLCBSZWdpc3RlciB2YWx1ZSwgY29uc3QgQmFzZUluZGV4JiBtZW0sCi0gICAgICAg ICAgICAgICAgICAgICAgUmVnaXN0ZXIgdmFsdWVUZW1wLCBSZWdpc3RlciBvZmZzZXRUZW1wLCBS ZWdpc3RlciBtYXNrVGVtcCwKLS0gICAgICAgICAgICAgICAgICAgICBSZWdpc3RlciBvdXRwdXQp IERFRklORURfT04obWlwc19zaGFyZWQpOwotKyAgICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVy IG91dHB1dCkgREVGSU5FRF9PTihtaXBzX3NoYXJlZCwgcHBjNjQpOwotIAotICAgLy8geDg2Ogot ICAgLy8gICBgdGVtcGAgbXVzdCBiZSBlY3g6ZWJ4OyBgb3V0cHV0YCBtdXN0IGJlIGVkeDplYXgu Ci0gICAvLyB4NjQ6Ci0gICAvLyAgIEZvciBBZGQgYW5kIFN1YiwgYHRlbXBgIGlzIGlnbm9yZWQu Ci0gICAvLyAgIEZvciBBbmQsIE9yLCBhbmQgWG9yLCBgb3V0cHV0YCBtdXN0IGJlIHJheC4KLSAg IC8vIEFSTToKLSAgIC8vICAgYHRlbXBgIGFuZCBgb3V0cHV0YCBtdXN0IGJlIChldmVuLG9kZCkg cGFpcnMgYW5kIGRpc3RpbmN0IGZyb20gYHZhbHVlYC4KLSAgIC8vIEFSTTY0OgotICAgLy8gICBS ZWdpc3RlcnMgYHZhbHVlYCwgYHRlbXBgLCBhbmQgYG91dHB1dGAgbXVzdCBhbGwgZGlmZmVyLgot IAotICAgdm9pZCBhdG9taWNGZXRjaE9wNjQoY29uc3QgU3luY2hyb25pemF0aW9uJiBzeW5jLCBB dG9taWNPcCBvcCwKLSAgICAgICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyNjQgdmFsdWUsIGNv bnN0IEFkZHJlc3MmIG1lbSwgUmVnaXN0ZXI2NCB0ZW1wLAotLSAgICAgICAgICAgICAgICAgICAg ICAgUmVnaXN0ZXI2NCBvdXRwdXQpIERFRklORURfT04oYXJtLCBhcm02NCwgeDY0LCBtaXBzNjQp OwotKyAgICAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXI2NCBvdXRwdXQpIERFRklORURfT04o YXJtLCBhcm02NCwgeDY0LCBtaXBzNjQsIHBwYzY0KTsKLSAKLSAgIHZvaWQgYXRvbWljRmV0Y2hP cDY0KGNvbnN0IFN5bmNocm9uaXphdGlvbiYgc3luYywgQXRvbWljT3Agb3AsCi0gICAgICAgICAg ICAgICAgICAgICAgICBjb25zdCBBZGRyZXNzJiB2YWx1ZSwgY29uc3QgQWRkcmVzcyYgbWVtLAot ICAgICAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXI2NCB0ZW1wLCBSZWdpc3RlcjY0IG91dHB1 dCkgREVGSU5FRF9PTih4ODYpOwotIAotICAgdm9pZCBhdG9taWNGZXRjaE9wNjQoY29uc3QgU3lu Y2hyb25pemF0aW9uJiBzeW5jLCBBdG9taWNPcCBvcCwKLSAgICAgICAgICAgICAgICAgICAgICAg IFJlZ2lzdGVyNjQgdmFsdWUsIGNvbnN0IEJhc2VJbmRleCYgbWVtLCBSZWdpc3RlcjY0IHRlbXAs Ci0tICAgICAgICAgICAgICAgICAgICAgICBSZWdpc3RlcjY0IG91dHB1dCkgREVGSU5FRF9PTihh cm0sIGFybTY0LCB4NjQsIG1pcHM2NCk7Ci0rICAgICAgICAgICAgICAgICAgICAgICBSZWdpc3Rl cjY0IG91dHB1dCkgREVGSU5FRF9PTihhcm0sIGFybTY0LCB4NjQsIG1pcHM2NCwgcHBjNjQpOwot IAotICAgdm9pZCBhdG9taWNGZXRjaE9wNjQoY29uc3QgU3luY2hyb25pemF0aW9uJiBzeW5jLCBB dG9taWNPcCBvcCwKLSAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEFkZHJlc3MmIHZhbHVl LCBjb25zdCBCYXNlSW5kZXgmIG1lbSwKLSAgICAgICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVy NjQgdGVtcCwgUmVnaXN0ZXI2NCBvdXRwdXQpIERFRklORURfT04oeDg2KTsKLSAKLSAgIC8vIHg2 NDoKLSAgIC8vICAgYHZhbHVlYCBjYW4gYmUgYW55IHJlZ2lzdGVyLgotICAgLy8gQVJNOgotQEAg LTM4NzEsMjQgKzM4NzgsMjQgQEAgY2xhc3MgTWFjcm9Bc3NlbWJsZXIgOiBwdWJsaWMgTWFjcm9B c3NlbWJsZXJTcGVjaWZpYyB7Ci0gICAvLyBBUk02NDoKLSAgIC8vICAgUmVnaXN0ZXJzIGB2YWx1 ZWAgYW5kIGB0ZW1wYCBtdXN0IGRpZmZlci4KLSAKLSAgIHZvaWQgYXRvbWljRWZmZWN0T3A2NChj b25zdCBTeW5jaHJvbml6YXRpb24mIHN5bmMsIEF0b21pY09wIG9wLAotICAgICAgICAgICAgICAg ICAgICAgICAgIFJlZ2lzdGVyNjQgdmFsdWUsIGNvbnN0IEFkZHJlc3MmIG1lbSkgREVGSU5FRF9P Tih4NjQpOwotIAotICAgdm9pZCBhdG9taWNFZmZlY3RPcDY0KGNvbnN0IFN5bmNocm9uaXphdGlv biYgc3luYywgQXRvbWljT3Agb3AsCi0gICAgICAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXI2 NCB2YWx1ZSwgY29uc3QgQWRkcmVzcyYgbWVtLCBSZWdpc3RlcjY0IHRlbXApCi0tICAgICAgREVG SU5FRF9PTihhcm0sIGFybTY0LCBtaXBzNjQpOwotKyAgICAgIERFRklORURfT04oYXJtLCBhcm02 NCwgbWlwczY0LCBwcGM2NCk7Ci0gCi0gICB2b2lkIGF0b21pY0VmZmVjdE9wNjQoY29uc3QgU3lu Y2hyb25pemF0aW9uJiBzeW5jLCBBdG9taWNPcCBvcCwKLSAgICAgICAgICAgICAgICAgICAgICAg ICBSZWdpc3RlcjY0IHZhbHVlLCBjb25zdCBCYXNlSW5kZXgmIG1lbSkgREVGSU5FRF9PTih4NjQp OwotIAotICAgdm9pZCBhdG9taWNFZmZlY3RPcDY0KGNvbnN0IFN5bmNocm9uaXphdGlvbiYgc3lu YywgQXRvbWljT3Agb3AsCi0gICAgICAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXI2NCB2YWx1 ZSwgY29uc3QgQmFzZUluZGV4JiBtZW0sIFJlZ2lzdGVyNjQgdGVtcCkKLS0gICAgICBERUZJTkVE X09OKGFybSwgYXJtNjQsIG1pcHM2NCk7Ci0rICAgICAgREVGSU5FRF9PTihhcm0sIGFybTY0LCBt aXBzNjQsIHBwYzY0KTsKLSAKLSAgIC8vIDY0LWJpdCBhdG9taWMgbG9hZC4gT24gNjQtYml0IHN5 c3RlbXMsIHVzZSByZWd1bGFyIGxvYWQgd2l0aAotICAgLy8gU3luY2hyb25pemF0aW9uOjpMb2Fk LCBub3QgdGhpcyBtZXRob2QuCi0gICAvLwotICAgLy8geDg2OiBgdGVtcGAgbXVzdCBiZSBlY3g6 ZWJ4OyBgb3V0cHV0YCBtdXN0IGJlIGVkeDplYXguCi0gICAvLyBBUk06IGBvdXRwdXRgIG11c3Qg YmUgKGV2ZW4sb2RkKSBwYWlyLgotIAotICAgdm9pZCBhdG9taWNMb2FkNjQoY29uc3QgU3luY2hy b25pemF0aW9uJiBzeW5jLCBjb25zdCBBZGRyZXNzJiBtZW0sCi1AQCAtMzkzMCw0MyArMzkzNyw0 MyBAQCBjbGFzcyBNYWNyb0Fzc2VtYmxlciA6IHB1YmxpYyBNYWNyb0Fzc2VtYmxlclNwZWNpZmlj IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBCYXNlSW5kZXgmIG1lbSwgUmVn aXN0ZXIgZXhwZWN0ZWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgcmVw bGFjZW1lbnQsIFJlZ2lzdGVyIG91dHB1dCkKLSAgICAgICBERUZJTkVEX09OKGFybSwgYXJtNjQs IHg4Nl9zaGFyZWQpOwotIAotICAgdm9pZCB3YXNtQ29tcGFyZUV4Y2hhbmdlKGNvbnN0IHdhc206 Ok1lbW9yeUFjY2Vzc0Rlc2MmIGFjY2VzcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBj b25zdCBBZGRyZXNzJiBtZW0sIFJlZ2lzdGVyIGV4cGVjdGVkLAotICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFJlZ2lzdGVyIHJlcGxhY2VtZW50LCBSZWdpc3RlciB2YWx1ZVRlbXAsCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgb2Zmc2V0VGVtcCwgUmVnaXN0ZXIgbWFz a1RlbXAsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgb3V0cHV0KSBERUZJ TkVEX09OKG1pcHNfc2hhcmVkKTsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWdpc3Rl ciBvdXRwdXQpIERFRklORURfT04obWlwc19zaGFyZWQsIHBwYzY0KTsKLSAKLSAgIHZvaWQgd2Fz bUNvbXBhcmVFeGNoYW5nZShjb25zdCB3YXNtOjpNZW1vcnlBY2Nlc3NEZXNjJiBhY2Nlc3MsCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgQmFzZUluZGV4JiBtZW0sIFJlZ2lzdGVy IGV4cGVjdGVkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyIHJlcGxhY2Vt ZW50LCBSZWdpc3RlciB2YWx1ZVRlbXAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVn aXN0ZXIgb2Zmc2V0VGVtcCwgUmVnaXN0ZXIgbWFza1RlbXAsCi0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgUmVnaXN0ZXIgb3V0cHV0KSBERUZJTkVEX09OKG1pcHNfc2hhcmVkKTsKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICBSZWdpc3RlciBvdXRwdXQpIERFRklORURfT04obWlwc19z aGFyZWQsIHBwYzY0KTsKLSAKLSAgIHZvaWQgd2FzbUF0b21pY0V4Y2hhbmdlKGNvbnN0IHdhc206 Ok1lbW9yeUFjY2Vzc0Rlc2MmIGFjY2VzcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv bnN0IEFkZHJlc3MmIG1lbSwgUmVnaXN0ZXIgdmFsdWUsIFJlZ2lzdGVyIG91dHB1dCkKLSAgICAg ICBERUZJTkVEX09OKGFybSwgYXJtNjQsIHg4Nl9zaGFyZWQpOwotIAotICAgdm9pZCB3YXNtQXRv bWljRXhjaGFuZ2UoY29uc3Qgd2FzbTo6TWVtb3J5QWNjZXNzRGVzYyYgYWNjZXNzLAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgY29uc3QgQmFzZUluZGV4JiBtZW0sIFJlZ2lzdGVyIHZhbHVl LCBSZWdpc3RlciBvdXRwdXQpCi0gICAgICAgREVGSU5FRF9PTihhcm0sIGFybTY0LCB4ODZfc2hh cmVkKTsKLSAKLSAgIHZvaWQgd2FzbUF0b21pY0V4Y2hhbmdlKGNvbnN0IHdhc206Ok1lbW9yeUFj Y2Vzc0Rlc2MmIGFjY2VzcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEFkZHJl c3MmIG1lbSwgUmVnaXN0ZXIgdmFsdWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBSZWdp c3RlciB2YWx1ZVRlbXAsIFJlZ2lzdGVyIG9mZnNldFRlbXAsCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICBSZWdpc3RlciBtYXNrVGVtcCwgUmVnaXN0ZXIgb3V0cHV0KQotLSAgICAgIERFRklO RURfT04obWlwc19zaGFyZWQpOwotKyAgICAgIERFRklORURfT04obWlwc19zaGFyZWQsIHBwYzY0 KTsKLSAKLSAgIHZvaWQgd2FzbUF0b21pY0V4Y2hhbmdlKGNvbnN0IHdhc206Ok1lbW9yeUFjY2Vz c0Rlc2MmIGFjY2VzcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEJhc2VJbmRl eCYgbWVtLCBSZWdpc3RlciB2YWx1ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlZ2lz dGVyIHZhbHVlVGVtcCwgUmVnaXN0ZXIgb2Zmc2V0VGVtcCwKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgIFJlZ2lzdGVyIG1hc2tUZW1wLCBSZWdpc3RlciBvdXRwdXQpCi0tICAgICAgREVGSU5F RF9PTihtaXBzX3NoYXJlZCk7Ci0rICAgICAgREVGSU5FRF9PTihtaXBzX3NoYXJlZCwgcHBjNjQp OwotIAotICAgdm9pZCB3YXNtQXRvbWljRmV0Y2hPcChjb25zdCB3YXNtOjpNZW1vcnlBY2Nlc3NE ZXNjJiBhY2Nlc3MsIEF0b21pY09wIG9wLAotICAgICAgICAgICAgICAgICAgICAgICAgICBSZWdp c3RlciB2YWx1ZSwgY29uc3QgQWRkcmVzcyYgbWVtLCBSZWdpc3RlciB0ZW1wLAotICAgICAgICAg ICAgICAgICAgICAgICAgICBSZWdpc3RlciBvdXRwdXQpIERFRklORURfT04oYXJtLCBhcm02NCwg eDg2X3NoYXJlZCk7Ci0gCi0gICB2b2lkIHdhc21BdG9taWNGZXRjaE9wKGNvbnN0IHdhc206Ok1l bW9yeUFjY2Vzc0Rlc2MmIGFjY2VzcywgQXRvbWljT3Agb3AsCi0gICAgICAgICAgICAgICAgICAg ICAgICAgIEltbTMyIHZhbHVlLCBjb25zdCBBZGRyZXNzJiBtZW0sIFJlZ2lzdGVyIHRlbXAsCi0g ICAgICAgICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyIG91dHB1dCkgREVGSU5FRF9PTih4ODZf c2hhcmVkKTsKLUBAIC0zOTc3LDIzICszOTg0LDIzIEBAIGNsYXNzIE1hY3JvQXNzZW1ibGVyIDog cHVibGljIE1hY3JvQXNzZW1ibGVyU3BlY2lmaWMgewotIAotICAgdm9pZCB3YXNtQXRvbWljRmV0 Y2hPcChjb25zdCB3YXNtOjpNZW1vcnlBY2Nlc3NEZXNjJiBhY2Nlc3MsIEF0b21pY09wIG9wLAot ICAgICAgICAgICAgICAgICAgICAgICAgICBJbW0zMiB2YWx1ZSwgY29uc3QgQmFzZUluZGV4JiBt ZW0sIFJlZ2lzdGVyIHRlbXAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyIG91 dHB1dCkgREVGSU5FRF9PTih4ODZfc2hhcmVkKTsKLSAKLSAgIHZvaWQgd2FzbUF0b21pY0ZldGNo T3AoY29uc3Qgd2FzbTo6TWVtb3J5QWNjZXNzRGVzYyYgYWNjZXNzLCBBdG9taWNPcCBvcCwKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgdmFsdWUsIGNvbnN0IEFkZHJlc3MmIG1l bSwgUmVnaXN0ZXIgdmFsdWVUZW1wLAotICAgICAgICAgICAgICAgICAgICAgICAgICBSZWdpc3Rl ciBvZmZzZXRUZW1wLCBSZWdpc3RlciBtYXNrVGVtcCwKLS0gICAgICAgICAgICAgICAgICAgICAg ICAgUmVnaXN0ZXIgb3V0cHV0KSBERUZJTkVEX09OKG1pcHNfc2hhcmVkKTsKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgUmVnaXN0ZXIgb3V0cHV0KSBERUZJTkVEX09OKG1pcHNfc2hhcmVkLCBw cGM2NCk7Ci0gCi0gICB2b2lkIHdhc21BdG9taWNGZXRjaE9wKGNvbnN0IHdhc206Ok1lbW9yeUFj Y2Vzc0Rlc2MmIGFjY2VzcywgQXRvbWljT3Agb3AsCi0gICAgICAgICAgICAgICAgICAgICAgICAg IFJlZ2lzdGVyIHZhbHVlLCBjb25zdCBCYXNlSW5kZXgmIG1lbSwKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgUmVnaXN0ZXIgdmFsdWVUZW1wLCBSZWdpc3RlciBvZmZzZXRUZW1wLAotICAgICAg ICAgICAgICAgICAgICAgICAgICBSZWdpc3RlciBtYXNrVGVtcCwgUmVnaXN0ZXIgb3V0cHV0KQot LSAgICAgIERFRklORURfT04obWlwc19zaGFyZWQpOwotKyAgICAgIERFRklORURfT04obWlwc19z aGFyZWQsIHBwYzY0KTsKLSAKLSAgIC8vIFJlYWQtbW9kaWZ5LXdyaXRlIHdpdGggbWVtb3J5LiAg UmV0dXJuIG5vIHZhbHVlLgotICAgLy8KLSAgIC8vIE1JUFM6IGB2YWx1ZVRlbXBgLCBgb2Zmc2V0 VGVtcGAgYW5kIGBtYXNrVGVtcGAgbXVzdCBiZSBkZWZpbmVkIGZvciA4LWJpdAotICAgLy8gYW5k IDE2LWJpdCB3aWRlIG9wZXJhdGlvbnMuCi0gCi0gICB2b2lkIHdhc21BdG9taWNFZmZlY3RPcChj b25zdCB3YXNtOjpNZW1vcnlBY2Nlc3NEZXNjJiBhY2Nlc3MsIEF0b21pY09wIG9wLAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgdmFsdWUsIGNvbnN0IEFkZHJlc3MmIG1lbSwg UmVnaXN0ZXIgdGVtcCkKLUBAIC00MDA5LDIyICs0MDE2LDIyIEBAIGNsYXNzIE1hY3JvQXNzZW1i bGVyIDogcHVibGljIE1hY3JvQXNzZW1ibGVyU3BlY2lmaWMgewotIAotICAgdm9pZCB3YXNtQXRv bWljRWZmZWN0T3AoY29uc3Qgd2FzbTo6TWVtb3J5QWNjZXNzRGVzYyYgYWNjZXNzLCBBdG9taWNP cCBvcCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIEltbTMyIHZhbHVlLCBjb25zdCBCYXNl SW5kZXgmIG1lbSwgUmVnaXN0ZXIgdGVtcCkKLSAgICAgICBERUZJTkVEX09OKHg4Nl9zaGFyZWQp OwotIAotICAgdm9pZCB3YXNtQXRvbWljRWZmZWN0T3AoY29uc3Qgd2FzbTo6TWVtb3J5QWNjZXNz RGVzYyYgYWNjZXNzLCBBdG9taWNPcCBvcCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIFJl Z2lzdGVyIHZhbHVlLCBjb25zdCBBZGRyZXNzJiBtZW0sCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICBSZWdpc3RlciB2YWx1ZVRlbXAsIFJlZ2lzdGVyIG9mZnNldFRlbXAsCi0tICAgICAgICAg ICAgICAgICAgICAgICAgICBSZWdpc3RlciBtYXNrVGVtcCkgREVGSU5FRF9PTihtaXBzX3NoYXJl ZCk7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICBSZWdpc3RlciBtYXNrVGVtcCkgREVGSU5F RF9PTihtaXBzX3NoYXJlZCwgcHBjNjQpOwotIAotICAgdm9pZCB3YXNtQXRvbWljRWZmZWN0T3Ao Y29uc3Qgd2FzbTo6TWVtb3J5QWNjZXNzRGVzYyYgYWNjZXNzLCBBdG9taWNPcCBvcCwKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyIHZhbHVlLCBjb25zdCBCYXNlSW5kZXgmIG1l bSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyIHZhbHVlVGVtcCwgUmVnaXN0 ZXIgb2Zmc2V0VGVtcCwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyIG1hc2tU ZW1wKSBERUZJTkVEX09OKG1pcHNfc2hhcmVkKTsKLSsgICAgICAgICAgICAgICAgICAgICAgICAg IFJlZ2lzdGVyIG1hc2tUZW1wKSBERUZJTkVEX09OKG1pcHNfc2hhcmVkLCBwcGM2NCk7Ci0gCi0g ICAvLyA2NC1iaXQgd2lkZSBvcGVyYXRpb25zLgotIAotICAgLy8gNjQtYml0IGF0b21pYyBsb2Fk LiAgT24gNjQtYml0IHN5c3RlbXMsIHVzZSByZWd1bGFyIHdhc20gbG9hZCB3aXRoCi0gICAvLyBT eW5jaHJvbml6YXRpb246OkxvYWQsIG5vdCB0aGlzIG1ldGhvZC4KLSAgIC8vCi0gICAvLyB4ODY6 IGB0ZW1wYCBtdXN0IGJlIGVjeDplYng7IGBvdXRwdXRgIG11c3QgYmUgZWR4OmVheC4KLSAgIC8v IEFSTTogYHRlbXBgIHNob3VsZCBiZSBpbnZhbGlkOyBgb3V0cHV0YCBtdXN0IGJlIChldmVuLG9k ZCkgcGFpci4KLUBAIC00MDc0LDIyICs0MDgxLDIyIEBAIGNsYXNzIE1hY3JvQXNzZW1ibGVyIDog cHVibGljIE1hY3JvQXNzZW1ibGVyU3BlY2lmaWMgewotICAgLy8gQVJNOiBSZWdpc3RlcnMgbXVz dCBiZSBkaXN0aW5jdDsgYHRlbXBgIGFuZCBgb3V0cHV0YCBtdXN0IGJlIChldmVuLG9kZCkKLSAg IC8vIHBhaXJzLgotICAgLy8gTUlQUzogUmVnaXN0ZXJzIG11c3QgYmUgZGlzdGluY3QuCi0gICAv LyBNSVBTMzI6IGB0ZW1wYCBzaG91bGQgYmUgaW52YWxpZC4KLSAKLSAgIHZvaWQgd2FzbUF0b21p Y0ZldGNoT3A2NChjb25zdCB3YXNtOjpNZW1vcnlBY2Nlc3NEZXNjJiBhY2Nlc3MsIEF0b21pY09w IG9wLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyNjQgdmFsdWUsIGNvbnN0 IEFkZHJlc3MmIG1lbSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWdpc3RlcjY0IHRl bXAsIFJlZ2lzdGVyNjQgb3V0cHV0KQotLSAgICAgIERFRklORURfT04oYXJtLCBhcm02NCwgbWlw czMyLCBtaXBzNjQsIHg2NCk7Ci0rICAgICAgREVGSU5FRF9PTihhcm0sIGFybTY0LCBtaXBzMzIs IG1pcHM2NCwgeDY0LCBwcGM2NCk7Ci0gCi0gICB2b2lkIHdhc21BdG9taWNGZXRjaE9wNjQoY29u c3Qgd2FzbTo6TWVtb3J5QWNjZXNzRGVzYyYgYWNjZXNzLCBBdG9taWNPcCBvcCwKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICBSZWdpc3RlcjY0IHZhbHVlLCBjb25zdCBCYXNlSW5kZXgmIG1l bSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWdpc3RlcjY0IHRlbXAsIFJlZ2lzdGVy NjQgb3V0cHV0KQotLSAgICAgIERFRklORURfT04oYXJtLCBhcm02NCwgbWlwczMyLCBtaXBzNjQs IHg2NCk7Ci0rICAgICAgREVGSU5FRF9PTihhcm0sIGFybTY0LCBtaXBzMzIsIG1pcHM2NCwgeDY0 LCBwcGM2NCk7Ci0gCi0gICB2b2lkIHdhc21BdG9taWNGZXRjaE9wNjQoY29uc3Qgd2FzbTo6TWVt b3J5QWNjZXNzRGVzYyYgYWNjZXNzLCBBdG9taWNPcCBvcCwKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICBjb25zdCBBZGRyZXNzJiB2YWx1ZSwgY29uc3QgQWRkcmVzcyYgbWVtLAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyNjQgdGVtcCwgUmVnaXN0ZXI2NCBvdXRwdXQp IERFRklORURfT04oeDg2KTsKLSAKLSAgIHZvaWQgd2FzbUF0b21pY0ZldGNoT3A2NChjb25zdCB3 YXNtOjpNZW1vcnlBY2Nlc3NEZXNjJiBhY2Nlc3MsIEF0b21pY09wIG9wLAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGNvbnN0IEFkZHJlc3MmIHZhbHVlLCBjb25zdCBCYXNlSW5kZXgmIG1l bSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWdpc3RlcjY0IHRlbXAsIFJlZ2lzdGVy NjQgb3V0cHV0KSBERUZJTkVEX09OKHg4Nik7Ci1AQCAtNDEzMSw0MiArNDEzOCw0MiBAQCBjbGFz cyBNYWNyb0Fzc2VtYmxlciA6IHB1YmxpYyBNYWNyb0Fzc2VtYmxlclNwZWNpZmljIHsKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgY29uc3QgQmFzZUluZGV4JiBtZW0sIFJlZ2lzdGVyIGV4cGVj dGVkLAotICAgICAgICAgICAgICAgICAgICAgICAgICBSZWdpc3RlciByZXBsYWNlbWVudCwgUmVn aXN0ZXIgdGVtcCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgQW55UmVnaXN0ZXIgb3V0cHV0 KSBERUZJTkVEX09OKGFybSwgYXJtNjQsIHg4Nl9zaGFyZWQpOwotIAotICAgdm9pZCBjb21wYXJl RXhjaGFuZ2VKUyhTY2FsYXI6OlR5cGUgYXJyYXlUeXBlLCBjb25zdCBTeW5jaHJvbml6YXRpb24m IHN5bmMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEFkZHJlc3MmIG1lbSwgUmVn aXN0ZXIgZXhwZWN0ZWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyIHJlcGxh Y2VtZW50LCBSZWdpc3RlciB2YWx1ZVRlbXAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIFJl Z2lzdGVyIG9mZnNldFRlbXAsIFJlZ2lzdGVyIG1hc2tUZW1wLCBSZWdpc3RlciB0ZW1wLAotLSAg ICAgICAgICAgICAgICAgICAgICAgICBBbnlSZWdpc3RlciBvdXRwdXQpIERFRklORURfT04obWlw c19zaGFyZWQpOwotKyAgICAgICAgICAgICAgICAgICAgICAgICBBbnlSZWdpc3RlciBvdXRwdXQp IERFRklORURfT04obWlwc19zaGFyZWQsIHBwYzY0KTsKLSAKLSAgIHZvaWQgY29tcGFyZUV4Y2hh bmdlSlMoU2NhbGFyOjpUeXBlIGFycmF5VHlwZSwgY29uc3QgU3luY2hyb25pemF0aW9uJiBzeW5j LAotICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBCYXNlSW5kZXgmIG1lbSwgUmVnaXN0 ZXIgZXhwZWN0ZWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyIHJlcGxhY2Vt ZW50LCBSZWdpc3RlciB2YWx1ZVRlbXAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIFJlZ2lz dGVyIG9mZnNldFRlbXAsIFJlZ2lzdGVyIG1hc2tUZW1wLCBSZWdpc3RlciB0ZW1wLAotLSAgICAg ICAgICAgICAgICAgICAgICAgICBBbnlSZWdpc3RlciBvdXRwdXQpIERFRklORURfT04obWlwc19z aGFyZWQpOwotKyAgICAgICAgICAgICAgICAgICAgICAgICBBbnlSZWdpc3RlciBvdXRwdXQpIERF RklORURfT04obWlwc19zaGFyZWQsIHBwYzY0KTsKLSAKLSAgIHZvaWQgYXRvbWljRXhjaGFuZ2VK UyhTY2FsYXI6OlR5cGUgYXJyYXlUeXBlLCBjb25zdCBTeW5jaHJvbml6YXRpb24mIHN5bmMsCi0g ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgQWRkcmVzcyYgbWVtLCBSZWdpc3RlciB2YWx1 ZSwgUmVnaXN0ZXIgdGVtcCwKLSAgICAgICAgICAgICAgICAgICAgICAgICBBbnlSZWdpc3RlciBv dXRwdXQpIERFRklORURfT04oYXJtLCBhcm02NCwgeDg2X3NoYXJlZCk7Ci0gCi0gICB2b2lkIGF0 b21pY0V4Y2hhbmdlSlMoU2NhbGFyOjpUeXBlIGFycmF5VHlwZSwgY29uc3QgU3luY2hyb25pemF0 aW9uJiBzeW5jLAotICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEJhc2VJbmRleCYgbWVt LCBSZWdpc3RlciB2YWx1ZSwgUmVnaXN0ZXIgdGVtcCwKLSAgICAgICAgICAgICAgICAgICAgICAg ICBBbnlSZWdpc3RlciBvdXRwdXQpIERFRklORURfT04oYXJtLCBhcm02NCwgeDg2X3NoYXJlZCk7 Ci0gCi0gICB2b2lkIGF0b21pY0V4Y2hhbmdlSlMoU2NhbGFyOjpUeXBlIGFycmF5VHlwZSwgY29u c3QgU3luY2hyb25pemF0aW9uJiBzeW5jLAotICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0 IEFkZHJlc3MmIG1lbSwgUmVnaXN0ZXIgdmFsdWUsIFJlZ2lzdGVyIHZhbHVlVGVtcCwKLSAgICAg ICAgICAgICAgICAgICAgICAgICBSZWdpc3RlciBvZmZzZXRUZW1wLCBSZWdpc3RlciBtYXNrVGVt cCwgUmVnaXN0ZXIgdGVtcCwKLS0gICAgICAgICAgICAgICAgICAgICAgICBBbnlSZWdpc3RlciBv dXRwdXQpIERFRklORURfT04obWlwc19zaGFyZWQpOwotKyAgICAgICAgICAgICAgICAgICAgICAg IEFueVJlZ2lzdGVyIG91dHB1dCkgREVGSU5FRF9PTihtaXBzX3NoYXJlZCwgcHBjNjQpOwotIAot ICAgdm9pZCBhdG9taWNFeGNoYW5nZUpTKFNjYWxhcjo6VHlwZSBhcnJheVR5cGUsIGNvbnN0IFN5 bmNocm9uaXphdGlvbiYgc3luYywKLSAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBCYXNl SW5kZXgmIG1lbSwgUmVnaXN0ZXIgdmFsdWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgUmVn aXN0ZXIgdmFsdWVUZW1wLCBSZWdpc3RlciBvZmZzZXRUZW1wLAotICAgICAgICAgICAgICAgICAg ICAgICAgIFJlZ2lzdGVyIG1hc2tUZW1wLCBSZWdpc3RlciB0ZW1wLCBBbnlSZWdpc3RlciBvdXRw dXQpCi0tICAgICAgREVGSU5FRF9PTihtaXBzX3NoYXJlZCk7Ci0rICAgICAgREVGSU5FRF9PTiht aXBzX3NoYXJlZCwgcHBjNjQpOwotIAotICAgdm9pZCBhdG9taWNGZXRjaE9wSlMoU2NhbGFyOjpU eXBlIGFycmF5VHlwZSwgY29uc3QgU3luY2hyb25pemF0aW9uJiBzeW5jLAotICAgICAgICAgICAg ICAgICAgICAgICAgQXRvbWljT3Agb3AsIFJlZ2lzdGVyIHZhbHVlLCBjb25zdCBBZGRyZXNzJiBt ZW0sCi0gICAgICAgICAgICAgICAgICAgICAgICBSZWdpc3RlciB0ZW1wMSwgUmVnaXN0ZXIgdGVt cDIsIEFueVJlZ2lzdGVyIG91dHB1dCkKLSAgICAgICBERUZJTkVEX09OKGFybSwgYXJtNjQsIHg4 Nl9zaGFyZWQpOwotIAotICAgdm9pZCBhdG9taWNGZXRjaE9wSlMoU2NhbGFyOjpUeXBlIGFycmF5 VHlwZSwgY29uc3QgU3luY2hyb25pemF0aW9uJiBzeW5jLAotICAgICAgICAgICAgICAgICAgICAg ICAgQXRvbWljT3Agb3AsIFJlZ2lzdGVyIHZhbHVlLCBjb25zdCBCYXNlSW5kZXgmIG1lbSwKLUBA IC00MTgyLDIzICs0MTg5LDIzIEBAIGNsYXNzIE1hY3JvQXNzZW1ibGVyIDogcHVibGljIE1hY3Jv QXNzZW1ibGVyU3BlY2lmaWMgewotICAgICAgICAgICAgICAgICAgICAgICAgQXRvbWljT3Agb3As IEltbTMyIHZhbHVlLCBjb25zdCBCYXNlSW5kZXgmIG1lbSwKLSAgICAgICAgICAgICAgICAgICAg ICAgIFJlZ2lzdGVyIHRlbXAxLCBSZWdpc3RlciB0ZW1wMiwgQW55UmVnaXN0ZXIgb3V0cHV0KQot ICAgICAgIERFRklORURfT04oeDg2X3NoYXJlZCk7Ci0gCi0gICB2b2lkIGF0b21pY0ZldGNoT3BK UyhTY2FsYXI6OlR5cGUgYXJyYXlUeXBlLCBjb25zdCBTeW5jaHJvbml6YXRpb24mIHN5bmMsCi0g ICAgICAgICAgICAgICAgICAgICAgICBBdG9taWNPcCBvcCwgUmVnaXN0ZXIgdmFsdWUsIGNvbnN0 IEFkZHJlc3MmIG1lbSwKLSAgICAgICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyIHZhbHVlVGVt cCwgUmVnaXN0ZXIgb2Zmc2V0VGVtcCwKLSAgICAgICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVy IG1hc2tUZW1wLCBSZWdpc3RlciB0ZW1wLCBBbnlSZWdpc3RlciBvdXRwdXQpCi0tICAgICAgREVG SU5FRF9PTihtaXBzX3NoYXJlZCk7Ci0rICAgICAgREVGSU5FRF9PTihtaXBzX3NoYXJlZCwgcHBj NjQpOwotIAotICAgdm9pZCBhdG9taWNGZXRjaE9wSlMoU2NhbGFyOjpUeXBlIGFycmF5VHlwZSwg Y29uc3QgU3luY2hyb25pemF0aW9uJiBzeW5jLAotICAgICAgICAgICAgICAgICAgICAgICAgQXRv bWljT3Agb3AsIFJlZ2lzdGVyIHZhbHVlLCBjb25zdCBCYXNlSW5kZXgmIG1lbSwKLSAgICAgICAg ICAgICAgICAgICAgICAgIFJlZ2lzdGVyIHZhbHVlVGVtcCwgUmVnaXN0ZXIgb2Zmc2V0VGVtcCwK LSAgICAgICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyIG1hc2tUZW1wLCBSZWdpc3RlciB0ZW1w LCBBbnlSZWdpc3RlciBvdXRwdXQpCi0tICAgICAgREVGSU5FRF9PTihtaXBzX3NoYXJlZCk7Ci0r ICAgICAgREVGSU5FRF9PTihtaXBzX3NoYXJlZCwgcHBjNjQpOwotIAotICAgdm9pZCBhdG9taWNF ZmZlY3RPcEpTKFNjYWxhcjo6VHlwZSBhcnJheVR5cGUsIGNvbnN0IFN5bmNocm9uaXphdGlvbiYg c3luYywKLSAgICAgICAgICAgICAgICAgICAgICAgICBBdG9taWNPcCBvcCwgUmVnaXN0ZXIgdmFs dWUsIGNvbnN0IEFkZHJlc3MmIG1lbSwKLSAgICAgICAgICAgICAgICAgICAgICAgICBSZWdpc3Rl ciB0ZW1wKSBERUZJTkVEX09OKGFybSwgYXJtNjQsIHg4Nl9zaGFyZWQpOwotIAotICAgdm9pZCBh dG9taWNFZmZlY3RPcEpTKFNjYWxhcjo6VHlwZSBhcnJheVR5cGUsIGNvbnN0IFN5bmNocm9uaXph dGlvbiYgc3luYywKLSAgICAgICAgICAgICAgICAgICAgICAgICBBdG9taWNPcCBvcCwgUmVnaXN0 ZXIgdmFsdWUsIGNvbnN0IEJhc2VJbmRleCYgbWVtLAotICAgICAgICAgICAgICAgICAgICAgICAg IFJlZ2lzdGVyIHRlbXApIERFRklORURfT04oYXJtLCBhcm02NCwgeDg2X3NoYXJlZCk7Ci1AQCAt NDIwOSwyMiArNDIxNiwyMiBAQCBjbGFzcyBNYWNyb0Fzc2VtYmxlciA6IHB1YmxpYyBNYWNyb0Fz c2VtYmxlclNwZWNpZmljIHsKLSAKLSAgIHZvaWQgYXRvbWljRWZmZWN0T3BKUyhTY2FsYXI6OlR5 cGUgYXJyYXlUeXBlLCBjb25zdCBTeW5jaHJvbml6YXRpb24mIHN5bmMsCi0gICAgICAgICAgICAg ICAgICAgICAgICAgQXRvbWljT3Agb3AsIEltbTMyIHZhbHVlLCBjb25zdCBCYXNlSW5kZXgmIG1l bSwKLSAgICAgICAgICAgICAgICAgICAgICAgICBSZWdpc3RlciB0ZW1wKSBERUZJTkVEX09OKHg4 Nl9zaGFyZWQpOwotIAotICAgdm9pZCBhdG9taWNFZmZlY3RPcEpTKFNjYWxhcjo6VHlwZSBhcnJh eVR5cGUsIGNvbnN0IFN5bmNocm9uaXphdGlvbiYgc3luYywKLSAgICAgICAgICAgICAgICAgICAg ICAgICBBdG9taWNPcCBvcCwgUmVnaXN0ZXIgdmFsdWUsIGNvbnN0IEFkZHJlc3MmIG1lbSwKLSAg ICAgICAgICAgICAgICAgICAgICAgICBSZWdpc3RlciB2YWx1ZVRlbXAsIFJlZ2lzdGVyIG9mZnNl dFRlbXAsCi0tICAgICAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgbWFza1RlbXApIERFRklO RURfT04obWlwc19zaGFyZWQpOwotKyAgICAgICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyIG1h c2tUZW1wKSBERUZJTkVEX09OKG1pcHNfc2hhcmVkLCBwcGM2NCk7Ci0gCi0gICB2b2lkIGF0b21p Y0VmZmVjdE9wSlMoU2NhbGFyOjpUeXBlIGFycmF5VHlwZSwgY29uc3QgU3luY2hyb25pemF0aW9u JiBzeW5jLAotICAgICAgICAgICAgICAgICAgICAgICAgIEF0b21pY09wIG9wLCBSZWdpc3RlciB2 YWx1ZSwgY29uc3QgQmFzZUluZGV4JiBtZW0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgUmVn aXN0ZXIgdmFsdWVUZW1wLCBSZWdpc3RlciBvZmZzZXRUZW1wLAotLSAgICAgICAgICAgICAgICAg ICAgICAgIFJlZ2lzdGVyIG1hc2tUZW1wKSBERUZJTkVEX09OKG1pcHNfc2hhcmVkKTsKLSsgICAg ICAgICAgICAgICAgICAgICAgICBSZWdpc3RlciBtYXNrVGVtcCkgREVGSU5FRF9PTihtaXBzX3No YXJlZCwgcHBjNjQpOwotIAotICAgdm9pZCBhdG9taWNJc0xvY2tGcmVlSlMoUmVnaXN0ZXIgdmFs dWUsIFJlZ2lzdGVyIG91dHB1dCk7Ci0gCi0gICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLSAgIC8vIFNw ZWN0cmUgTWl0aWdhdGlvbnMuCi0gICAvLwotICAgLy8gU3BlY3RyZSBhdHRhY2tzIGFyZSBzaWRl LWNoYW5uZWwgYXR0YWNrcyBiYXNlZCBvbiBjYWNoZSBwb2xsdXRpb24gb3IKLSAgIC8vIHNsb3ct ZXhlY3V0aW9uIG9mIHNvbWUgaW5zdHJ1Y3Rpb25zLiBXZSBoYXZlIG11bHRpcGxlIHNwZWN0cmUg bWl0aWdhdGlvbnMKLUBAIC00ODAzLDE3ICs0ODEwLDE3IEBAIGNsYXNzIE1hY3JvQXNzZW1ibGVy IDogcHVibGljIE1hY3JvQXNzZW1ibGVyU3BlY2lmaWMgewotICAgLy8gU3RhY2tQb2ludGVyIG1h bmlwdWxhdGlvbiBmdW5jdGlvbnMuCi0gICAvLyBPbiBBUk02NCwgdGhlIFN0YWNrUG9pbnRlciBp cyBpbXBsZW1lbnRlZCBhcyB0d28gc3luY2hyb25pemVkIHJlZ2lzdGVycy4KLSAgIC8vIENvZGUg c2hhcmVkIGFjcm9zcyBwbGF0Zm9ybXMgbXVzdCB1c2UgdGhlc2UgZnVuY3Rpb25zIHRvIGJlIHZh bGlkLgotICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci0gICBpbmxpbmUgdm9pZCBhZGRUb1N0YWNr UHRyKFQgdCk7Ci0gICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLSAgIGlubGluZSB2b2lkIGFkZFN0 YWNrUHRyVG8oVCB0KTsKLSAKLS0gIHZvaWQgc3ViRnJvbVN0YWNrUHRyKEltbTMyIGltbTMyKSBE RUZJTkVEX09OKG1pcHMzMiwgbWlwczY0LCBhcm0sIHg4NiwgeDY0KTsKLSsgIHZvaWQgc3ViRnJv bVN0YWNrUHRyKEltbTMyIGltbTMyKSBERUZJTkVEX09OKG1pcHMzMiwgbWlwczY0LCBhcm0sIHg4 NiwgeDY0LCBwcGM2NCk7Ci0gICB2b2lkIHN1YkZyb21TdGFja1B0cihSZWdpc3RlciByZWcpOwot IAotICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci0gICB2b2lkIHN1YlN0YWNrUHRyRnJvbShUIHQp IHsKLSAgICAgc3ViUHRyKGdldFN0YWNrUG9pbnRlcigpLCB0KTsKLSAgIH0KLSAKLSAgIHRlbXBs YXRlIDx0eXBlbmFtZSBUPgotZGlmZiAtLWdpdCBhL2pzL3NyYy9qaXQvTW92ZUVtaXR0ZXIuaCBi L2pzL3NyYy9qaXQvTW92ZUVtaXR0ZXIuaAotaW5kZXggNmM2MmMwNTYxYS4uMzBlZTRiNjFhNSAx MDA2NDQKLS0tLSBhL2pzL3NyYy9qaXQvTW92ZUVtaXR0ZXIuaAotKysrIGIvanMvc3JjL2ppdC9N b3ZlRW1pdHRlci5oCi1AQCAtMTIsMTUgKzEyLDE3IEBACi0gI2VsaWYgZGVmaW5lZChKU19DT0RF R0VOX0FSTSkKLSAjICBpbmNsdWRlICJqaXQvYXJtL01vdmVFbWl0dGVyLWFybS5oIgotICNlbGlm IGRlZmluZWQoSlNfQ09ERUdFTl9BUk02NCkKLSAjICBpbmNsdWRlICJqaXQvYXJtNjQvTW92ZUVt aXR0ZXItYXJtNjQuaCIKLSAjZWxpZiBkZWZpbmVkKEpTX0NPREVHRU5fTUlQUzMyKQotICMgIGlu Y2x1ZGUgImppdC9taXBzMzIvTW92ZUVtaXR0ZXItbWlwczMyLmgiCi0gI2VsaWYgZGVmaW5lZChK U19DT0RFR0VOX01JUFM2NCkKLSAjICBpbmNsdWRlICJqaXQvbWlwczY0L01vdmVFbWl0dGVyLW1p cHM2NC5oIgotKyNlbGlmIGRlZmluZWQoSlNfQ09ERUdFTl9QUEM2NCkKLSsjICBpbmNsdWRlICJq aXQvcHBjNjQvTW92ZUVtaXR0ZXItcHBjNjQuaCIKLSAjZWxpZiBkZWZpbmVkKEpTX0NPREVHRU5f Tk9ORSkKLSAjICBpbmNsdWRlICJqaXQvbm9uZS9Nb3ZlRW1pdHRlci1ub25lLmgiCi0gI2Vsc2UK LSAjICBlcnJvciAiVW5rbm93biBhcmNoaXRlY3R1cmUhIgotICNlbmRpZgotIAotICNlbmRpZiAv KiBqaXRfTW92ZUVtaXR0ZXJfaCAqLwotZGlmZiAtLWdpdCBhL2pzL3NyYy9qaXQvUmVnaXN0ZXJz LmggYi9qcy9zcmMvaml0L1JlZ2lzdGVycy5oCi1pbmRleCA2N2M4NjYxMDA0Li5lZjQ5ZGY4M2U1 IDEwMDY0NAotLS0tIGEvanMvc3JjL2ppdC9SZWdpc3RlcnMuaAotKysrIGIvanMvc3JjL2ppdC9S ZWdpc3RlcnMuaAotQEAgLTE1LDE2ICsxNSwxOCBAQAotICNlbGlmIGRlZmluZWQoSlNfQ09ERUdF Tl9BUk0pCi0gIyAgaW5jbHVkZSAiaml0L2FybS9BcmNoaXRlY3R1cmUtYXJtLmgiCi0gI2VsaWYg ZGVmaW5lZChKU19DT0RFR0VOX0FSTTY0KQotICMgIGluY2x1ZGUgImppdC9hcm02NC9BcmNoaXRl Y3R1cmUtYXJtNjQuaCIKLSAjZWxpZiBkZWZpbmVkKEpTX0NPREVHRU5fTUlQUzMyKQotICMgIGlu Y2x1ZGUgImppdC9taXBzMzIvQXJjaGl0ZWN0dXJlLW1pcHMzMi5oIgotICNlbGlmIGRlZmluZWQo SlNfQ09ERUdFTl9NSVBTNjQpCi0gIyAgaW5jbHVkZSAiaml0L21pcHM2NC9BcmNoaXRlY3R1cmUt bWlwczY0LmgiCi0rI2VsaWYgZGVmaW5lZChKU19DT0RFR0VOX1BQQzY0KQotKyMgIGluY2x1ZGUg ImppdC9wcGM2NC9BcmNoaXRlY3R1cmUtcHBjNjQuaCIKLSAjZWxpZiBkZWZpbmVkKEpTX0NPREVH RU5fTk9ORSkKLSAjICBpbmNsdWRlICJqaXQvbm9uZS9BcmNoaXRlY3R1cmUtbm9uZS5oIgotICNl bHNlCi0gIyAgZXJyb3IgIlVua25vd24gYXJjaGl0ZWN0dXJlISIKLSAjZW5kaWYKLSAKLSBuYW1l c3BhY2UganMgewotIG5hbWVzcGFjZSBqaXQgewotZGlmZiAtLWdpdCBhL2pzL3NyYy9qaXQvU2hh cmVkSUNIZWxwZXJzLWlubC5oIGIvanMvc3JjL2ppdC9TaGFyZWRJQ0hlbHBlcnMtaW5sLmgKLWlu ZGV4IDkwMWM4MGNkZDguLmZkNGEyN2Q4YmIgMTAwNjQ0Ci0tLS0gYS9qcy9zcmMvaml0L1NoYXJl ZElDSGVscGVycy1pbmwuaAotKysrIGIvanMvc3JjL2ppdC9TaGFyZWRJQ0hlbHBlcnMtaW5sLmgK LUBAIC0xMiwxNiArMTIsMTggQEAKLSAjZWxpZiBkZWZpbmVkKEpTX0NPREVHRU5fWDY0KQotICMg IGluY2x1ZGUgImppdC94NjQvU2hhcmVkSUNIZWxwZXJzLXg2NC1pbmwuaCIKLSAjZWxpZiBkZWZp bmVkKEpTX0NPREVHRU5fQVJNKQotICMgIGluY2x1ZGUgImppdC9hcm0vU2hhcmVkSUNIZWxwZXJz LWFybS1pbmwuaCIKLSAjZWxpZiBkZWZpbmVkKEpTX0NPREVHRU5fQVJNNjQpCi0gIyAgaW5jbHVk ZSAiaml0L2FybTY0L1NoYXJlZElDSGVscGVycy1hcm02NC1pbmwuaCIKLSAjZWxpZiBkZWZpbmVk KEpTX0NPREVHRU5fTUlQUzMyKSB8fCBkZWZpbmVkKEpTX0NPREVHRU5fTUlQUzY0KQotICMgIGlu Y2x1ZGUgImppdC9taXBzLXNoYXJlZC9TaGFyZWRJQ0hlbHBlcnMtbWlwcy1zaGFyZWQtaW5sLmgi Ci0rI2VsaWYgZGVmaW5lZChKU19DT0RFR0VOX1BQQzY0KQotKyMgIGluY2x1ZGUgImppdC9wcGM2 NC9TaGFyZWRJQ0hlbHBlcnMtcHBjNjQtaW5sLmgiCi0gI2VsaWYgZGVmaW5lZChKU19DT0RFR0VO X05PTkUpCi0gIyAgaW5jbHVkZSAiaml0L25vbmUvU2hhcmVkSUNIZWxwZXJzLW5vbmUtaW5sLmgi Ci0gI2Vsc2UKLSAjICBlcnJvciAiVW5rbm93biBhcmNoaXRlY3R1cmUhIgotICNlbmRpZgotIAot IG5hbWVzcGFjZSBqcyB7Ci0gbmFtZXNwYWNlIGppdCB7fSAgLy8gbmFtZXNwYWNlIGppdAotZGlm ZiAtLWdpdCBhL2pzL3NyYy9qaXQvU2hhcmVkSUNIZWxwZXJzLmggYi9qcy9zcmMvaml0L1NoYXJl ZElDSGVscGVycy5oCi1pbmRleCA1NjNjYWUzY2NmLi43MzdjYTFkNWE1IDEwMDY0NAotLS0tIGEv anMvc3JjL2ppdC9TaGFyZWRJQ0hlbHBlcnMuaAotKysrIGIvanMvc3JjL2ppdC9TaGFyZWRJQ0hl bHBlcnMuaAotQEAgLTEyLDE2ICsxMiwxOCBAQAotICNlbGlmIGRlZmluZWQoSlNfQ09ERUdFTl9Y NjQpCi0gIyAgaW5jbHVkZSAiaml0L3g2NC9TaGFyZWRJQ0hlbHBlcnMteDY0LmgiCi0gI2VsaWYg ZGVmaW5lZChKU19DT0RFR0VOX0FSTSkKLSAjICBpbmNsdWRlICJqaXQvYXJtL1NoYXJlZElDSGVs cGVycy1hcm0uaCIKLSAjZWxpZiBkZWZpbmVkKEpTX0NPREVHRU5fQVJNNjQpCi0gIyAgaW5jbHVk ZSAiaml0L2FybTY0L1NoYXJlZElDSGVscGVycy1hcm02NC5oIgotICNlbGlmIGRlZmluZWQoSlNf Q09ERUdFTl9NSVBTMzIpIHx8IGRlZmluZWQoSlNfQ09ERUdFTl9NSVBTNjQpCi0gIyAgaW5jbHVk ZSAiaml0L21pcHMtc2hhcmVkL1NoYXJlZElDSGVscGVycy1taXBzLXNoYXJlZC5oIgotKyNlbGlm IGRlZmluZWQoSlNfQ09ERUdFTl9QUEM2NCkKLSsjICBpbmNsdWRlICJqaXQvcHBjNjQvU2hhcmVk SUNIZWxwZXJzLXBwYzY0LmgiCi0gI2VsaWYgZGVmaW5lZChKU19DT0RFR0VOX05PTkUpCi0gIyAg aW5jbHVkZSAiaml0L25vbmUvU2hhcmVkSUNIZWxwZXJzLW5vbmUuaCIKLSAjZWxzZQotICMgIGVy cm9yICJVbmtub3duIGFyY2hpdGVjdHVyZSEiCi0gI2VuZGlmCi0gCi0gbmFtZXNwYWNlIGpzIHsK LSBuYW1lc3BhY2Ugaml0IHt9ICAvLyBuYW1lc3BhY2Ugaml0Ci1kaWZmIC0tZ2l0IGEvanMvc3Jj L2ppdC9TaGFyZWRJQ1JlZ2lzdGVycy5oIGIvanMvc3JjL2ppdC9TaGFyZWRJQ1JlZ2lzdGVycy5o Ci1pbmRleCBjODdlNWY4NDA4Li43NjIzOWQ1ZGRlIDEwMDY0NAotLS0tIGEvanMvc3JjL2ppdC9T aGFyZWRJQ1JlZ2lzdGVycy5oCi0rKysgYi9qcy9zcmMvaml0L1NoYXJlZElDUmVnaXN0ZXJzLmgK LUBAIC0xNCwxNiArMTQsMTggQEAKLSAjZWxpZiBkZWZpbmVkKEpTX0NPREVHRU5fQVJNKQotICMg IGluY2x1ZGUgImppdC9hcm0vU2hhcmVkSUNSZWdpc3RlcnMtYXJtLmgiCi0gI2VsaWYgZGVmaW5l ZChKU19DT0RFR0VOX0FSTTY0KQotICMgIGluY2x1ZGUgImppdC9hcm02NC9TaGFyZWRJQ1JlZ2lz dGVycy1hcm02NC5oIgotICNlbGlmIGRlZmluZWQoSlNfQ09ERUdFTl9NSVBTMzIpCi0gIyAgaW5j bHVkZSAiaml0L21pcHMzMi9TaGFyZWRJQ1JlZ2lzdGVycy1taXBzMzIuaCIKLSAjZWxpZiBkZWZp bmVkKEpTX0NPREVHRU5fTUlQUzY0KQotICMgIGluY2x1ZGUgImppdC9taXBzNjQvU2hhcmVkSUNS ZWdpc3RlcnMtbWlwczY0LmgiCi0rI2VsaWYgZGVmaW5lZChKU19DT0RFR0VOX1BQQzY0KQotKyMg IGluY2x1ZGUgImppdC9wcGM2NC9TaGFyZWRJQ1JlZ2lzdGVycy1wcGM2NC5oIgotICNlbGlmIGRl ZmluZWQoSlNfQ09ERUdFTl9OT05FKQotICMgIGluY2x1ZGUgImppdC9ub25lL1NoYXJlZElDUmVn aXN0ZXJzLW5vbmUuaCIKLSAjZWxzZQotICMgIGVycm9yICJVbmtub3duIGFyY2hpdGVjdHVyZSEi Ci0gI2VuZGlmCi0gCi0gbmFtZXNwYWNlIGpzIHsKLSBuYW1lc3BhY2Ugaml0IHt9ICAvLyBuYW1l c3BhY2Ugaml0Ci1kaWZmIC0tZ2l0IGEvanMvc3JjL2ppdC9tb3ouYnVpbGQgYi9qcy9zcmMvaml0 L21vei5idWlsZAotaW5kZXggZjUwZDg2ZmM0NC4uODJjZGRkMDdhZiAxMDA2NDQKLS0tLSBhL2pz L3NyYy9qaXQvbW96LmJ1aWxkCi0rKysgYi9qcy9zcmMvaml0L21vei5idWlsZAotQEAgLTIyNywx NyArMjI3LDI5IEBAIGVsaWYgQ09ORklHWyJKU19DT0RFR0VOX01JUFMzMiJdIG9yIENPTkZJR1si SlNfQ09ERUdFTl9NSVBTNjQiXToKLSAgICAgICAgICAgICAibWlwczY0L0NvZGVHZW5lcmF0b3It bWlwczY0LmNwcCIsCi0gICAgICAgICAgICAgIm1pcHM2NC9Mb3dlcmluZy1taXBzNjQuY3BwIiwK LSAgICAgICAgICAgICAibWlwczY0L01hY3JvQXNzZW1ibGVyLW1pcHM2NC5jcHAiLAotICAgICAg ICAgICAgICJtaXBzNjQvTW92ZUVtaXR0ZXItbWlwczY0LmNwcCIsCi0gICAgICAgICAgICAgIm1p cHM2NC9UcmFtcG9saW5lLW1pcHM2NC5jcHAiLAotICAgICAgICAgXQotICAgICAgICAgaWYgQ09O RklHWyJKU19TSU1VTEFUT1JfTUlQUzY0Il06Ci0gICAgICAgICAgICAgVU5JRklFRF9TT1VSQ0VT ICs9IFsibWlwczY0L1NpbXVsYXRvci1taXBzNjQuY3BwIl0KLS0KLStlbGlmIENPTkZJR1siSlNf Q09ERUdFTl9QUEM2NCJdOgotKyAgICBsaXJfaW5wdXRzICs9IFsicHBjNjQvTElSLXBwYzY0Lmgi XQotKyAgICBVTklGSUVEX1NPVVJDRVMgKz0gWwotKyAgICAgICAgInBwYzY0L0FyY2hpdGVjdHVy ZS1wcGM2NC5jcHAiLAotKyAgICAgICAgInBwYzY0L0Fzc2VtYmxlci1wcGM2NC5jcHAiLAotKyAg ICAgICAgInBwYzY0L0JhaWxvdXRzLXBwYzY0LmNwcCIsCi0rICAgICAgICAicHBjNjQvQ29kZUdl bmVyYXRvci1wcGM2NC5jcHAiLAotKyAgICAgICAgInBwYzY0L0xvd2VyaW5nLXBwYzY0LmNwcCIs Ci0rICAgICAgICAicHBjNjQvTWFjcm9Bc3NlbWJsZXItcHBjNjQuY3BwIiwKLSsgICAgICAgICJw cGM2NC9Nb3ZlRW1pdHRlci1wcGM2NC5jcHAiLAotKyAgICAgICAgInBwYzY0L1RyYW1wb2xpbmUt cHBjNjQuY3BwIiwKLSsgICAgICAgICJzaGFyZWQvQXRvbWljT3BlcmF0aW9ucy1zaGFyZWQtaml0 LmNwcCIsCi0rICAgIF0KLSAKLSAjIEdlbmVyYXRlIGppdC9NSVJPcHNHZW5lcmF0ZWQuaCBmcm9t IGppdC9NSVJPcHMueWFtbAotIEdlbmVyYXRlZEZpbGUoCi0gICAgICJNSVJPcHNHZW5lcmF0ZWQu aCIsCi0gICAgIHNjcmlwdD0iR2VuZXJhdGVNSVJGaWxlcy5weSIsCi0gICAgIGVudHJ5X3BvaW50 PSJnZW5lcmF0ZV9taXJfaGVhZGVyIiwKLSAgICAgaW5wdXRzPVsiTUlST3BzLnlhbWwiXSwKLSAp Ci1kaWZmIC0tZ2l0IGEvanMvc3JjL2ppdC9zaGFyZWQvQXNzZW1ibGVyLXNoYXJlZC5oIGIvanMv c3JjL2ppdC9zaGFyZWQvQXNzZW1ibGVyLXNoYXJlZC5oCi1pbmRleCBkZmIyYmNiNmI4Li42OWJh NzU5ZDQyIDEwMDY0NAotLS0tIGEvanMvc3JjL2ppdC9zaGFyZWQvQXNzZW1ibGVyLXNoYXJlZC5o Ci0rKysgYi9qcy9zcmMvaml0L3NoYXJlZC9Bc3NlbWJsZXItc2hhcmVkLmgKLUBAIC0yMCwyMyAr MjAsMjQgQEAKLSAjaW5jbHVkZSAiaml0L1JlZ2lzdGVycy5oIgotICNpbmNsdWRlICJqaXQvUmVn aXN0ZXJTZXRzLmgiCi0gI2luY2x1ZGUgImpzL1NjYWxhclR5cGUuaCIgIC8vIGpzOjpTY2FsYXI6 OlR5cGUKLSAjaW5jbHVkZSAidm0vSGVscGVyVGhyZWFkcy5oIgotICNpbmNsdWRlICJ2bS9OYXRp dmVPYmplY3QuaCIKLSAjaW5jbHVkZSAid2FzbS9XYXNtVHlwZXMuaCIKLSAKLSAjaWYgZGVmaW5l ZChKU19DT0RFR0VOX0FSTSkgfHwgZGVmaW5lZChKU19DT0RFR0VOX0FSTTY0KSB8fCBcCi0tICAg IGRlZmluZWQoSlNfQ09ERUdFTl9NSVBTMzIpIHx8IGRlZmluZWQoSlNfQ09ERUdFTl9NSVBTNjQp Ci0rICAgIGRlZmluZWQoSlNfQ09ERUdFTl9NSVBTMzIpIHx8IGRlZmluZWQoSlNfQ09ERUdFTl9N SVBTNjQpIHx8IFwKLSsgICAgZGVmaW5lZChKU19DT0RFR0VOX1BQQzY0KQotIC8vIFB1c2ggcmV0 dXJuIGFkZHJlc3NlcyBjYWxsZWUtc2lkZS4KLSAjICBkZWZpbmUgSlNfVVNFX0xJTktfUkVHSVNU RVIKLSAjZW5kaWYKLSAKLSAjaWYgZGVmaW5lZChKU19DT0RFR0VOX01JUFMzMikgfHwgZGVmaW5l ZChKU19DT0RFR0VOX01JUFM2NCkgfHwgXAotLSAgICBkZWZpbmVkKEpTX0NPREVHRU5fQVJNNjQp Ci0rICAgIGRlZmluZWQoSlNfQ09ERUdFTl9BUk02NCkgfHwgZGVmaW5lZChKU19DT0RFR0VOX1BQ QzY0KQotIC8vIEpTX0NPREVMQUJFTF9MSU5LTU9ERSBnaXZlcyBsYWJlbHMgYWRkaXRpb25hbCBt ZXRhZGF0YQotIC8vIGRlc2NyaWJpbmcgaG93IEJpbmQoKSBzaG91bGQgcGF0Y2ggdGhlbS4KLSAj ICBkZWZpbmUgSlNfQ09ERUxBQkVMX0xJTktNT0RFCi0gI2VuZGlmCi0gCi0gbmFtZXNwYWNlIGpz IHsKLSBuYW1lc3BhY2Ugaml0IHsKLSAKLWRpZmYgLS1naXQgYS9qcy9zcmMvaml0L3NoYXJlZC9B dG9taWNPcGVyYXRpb25zLXNoYXJlZC1qaXQuY3BwIGIvanMvc3JjL2ppdC9zaGFyZWQvQXRvbWlj T3BlcmF0aW9ucy1zaGFyZWQtaml0LmNwcAotaW5kZXggNzk0NjNmMTE4Yi4uN2M4ZWVhZjg5ZSAx MDA2NDQKLS0tLSBhL2pzL3NyYy9qaXQvc2hhcmVkL0F0b21pY09wZXJhdGlvbnMtc2hhcmVkLWpp dC5jcHAKLSsrKyBiL2pzL3NyYy9qaXQvc2hhcmVkL0F0b21pY09wZXJhdGlvbnMtc2hhcmVkLWpp dC5jcHAKLUBAIC0xMzMsMTYgKzEzMywzOCBAQCBzdGF0aWMgY29uc3RleHByIFJlZ2lzdGVyIEF0 b21pY1RlbXAgPSBlZHg7Ci0gLy8gNjQtYml0IHJlZ2lzdGVycyBmb3IgY21weGNoZzhiLiAgVmFs UmVnL1ZhbDJSZWcvVGVtcCBhcmUgbm90IHVzZWQgaW4gdGhpcwotIC8vIGNhc2UuCi0gCi0gc3Rh dGljIGNvbnN0ZXhwciBSZWdpc3RlcjY0IEF0b21pY1ZhbFJlZzY0KGVkeCwgZWF4KTsKLSBzdGF0 aWMgY29uc3RleHByIFJlZ2lzdGVyNjQgQXRvbWljVmFsMlJlZzY0KGVjeCwgZWJ4KTsKLSAKLSAv LyBBdG9taWNSZXR1cm5SZWc2NCBpcyB1bnVzZWQgb24geDg2LgotIAotKyNlbGlmIGRlZmluZWQo SlNfQ09ERUdFTl9QUEM2NCkKLSsKLSsvLyBTZWxlY3RlZCByZWdpc3RlcnMgbWF0Y2ggdGhlIGFy Z3VtZW50IHJlZ2lzdGVycywgZXhjZXB0IHRoYXQgdGhlIFB0ciBpcyBub3QKLSsvLyBpbiBJbnRB cmdSZWcwIHNvIGFzIG5vdCB0byBjb25mbGljdCB3aXRoIHRoZSByZXN1bHQgcmVnaXN0ZXIuCi0r Ci0rc3RhdGljIGNvbnN0IExpdmVSZWdpc3RlclNldCBBdG9taWNOb25Wb2xhdGlsZVJlZ3M7Ci0r Ci0rc3RhdGljIGNvbnN0ZXhwciBSZWdpc3RlciBBdG9taWNQdHJSZWcgPSBJbnRBcmdSZWc0Owot K3N0YXRpYyBjb25zdGV4cHIgUmVnaXN0ZXIgQXRvbWljUHRyMlJlZyA9IEludEFyZ1JlZzE7Ci0r c3RhdGljIGNvbnN0ZXhwciBSZWdpc3RlciBBdG9taWNWYWxSZWcgPSBJbnRBcmdSZWcxOwotK3N0 YXRpYyBjb25zdGV4cHIgUmVnaXN0ZXI2NCBBdG9taWNWYWxSZWc2NChJbnRBcmdSZWcxKTsKLStz dGF0aWMgY29uc3RleHByIFJlZ2lzdGVyIEF0b21pY1ZhbDJSZWcgPSBJbnRBcmdSZWcyOwotK3N0 YXRpYyBjb25zdGV4cHIgUmVnaXN0ZXI2NCBBdG9taWNWYWwyUmVnNjQoSW50QXJnUmVnMik7Ci0r c3RhdGljIGNvbnN0ZXhwciBSZWdpc3RlciBBdG9taWNUZW1wID0gSW50QXJnUmVnMzsKLStzdGF0 aWMgY29uc3RleHByIFJlZ2lzdGVyIEF0b21pY1RlbXAyID0gSW50QXJnUmVnNTsKLStzdGF0aWMg Y29uc3RleHByIFJlZ2lzdGVyIEF0b21pY1RlbXAzID0gSW50QXJnUmVnNjsKLStzdGF0aWMgY29u c3RleHByIFJlZ2lzdGVyNjQgQXRvbWljVGVtcDY0KEludEFyZ1JlZzMpOwotK3N0YXRpYyBjb25z dGV4cHIgUmVnaXN0ZXI2NCBBdG9taWNUZW1wNjRfMihJbnRBcmdSZWc1KTsKLStzdGF0aWMgY29u c3RleHByIFJlZ2lzdGVyNjQgQXRvbWljVGVtcDY0XzMoSW50QXJnUmVnNik7Ci0rCi0rc3RhdGlj IGNvbnN0ZXhwciBSZWdpc3RlcjY0IEF0b21pY1JldHVyblJlZzY0ID0gUmV0dXJuUmVnNjQ7Ci0r Ci0gI2Vsc2UKLSAjICBlcnJvciAiVW5zdXBwb3J0ZWQgcGxhdGZvcm0iCi0gI2VuZGlmCi0gCi0g Ly8gVGhlc2UgYXJlIHVzZWZ1bCBzaG9ydGhhbmRzIGFuZCBoaWRlIHRoZSBtZWFuaW5nbGVzcyB1 aW50L2ludCBkaXN0aW5jdGlvbi4KLSAKLSBzdGF0aWMgY29uc3RleHByIFNjYWxhcjo6VHlwZSBT SVpFOCA9IFNjYWxhcjo6VWludDg7Ci0gc3RhdGljIGNvbnN0ZXhwciBTY2FsYXI6OlR5cGUgU0la RTE2ID0gU2NhbGFyOjpVaW50MTY7Ci1AQCAtMjQ4LDMxICsyNzAsMzcgQEAgc3RhdGljIHVpbnQz Ml90IEdlblByb2xvZ3VlKE1hY3JvQXNzZW1ibGVyJiBtYXNtLCBBcmdJdGVyYXRvciogaXRlcikg ewotICAgdWludDMyX3Qgc3RhcnQgPSBtYXNtLmN1cnJlbnRPZmZzZXQoKTsKLSAgIG1hc20uUHVz aFJlZ3NJbk1hc2soQXRvbWljTm9uVm9sYXRpbGVSZWdzKTsKLSAjaWYgZGVmaW5lZChKU19DT0RF R0VOX0FSTSkgfHwgZGVmaW5lZChKU19DT0RFR0VOX0FSTTY0KQotICAgLy8gVGhlIHJldHVybiBh ZGRyZXNzIGlzIGFtb25nIHRoZSBub252b2xhdGlsZSByZWdpc3RlcnMsIGlmIHB1c2hlZCBhdCBh bGwuCi0gICBpdGVyLT5hcmdCYXNlID0gbWFzbS5mcmFtZVB1c2hlZCgpOwotICNlbGlmIGRlZmlu ZWQoSlNfQ09ERUdFTl9YODYpIHx8IGRlZmluZWQoSlNfQ09ERUdFTl9YNjQpCi0gICAvLyBUaGUg cmV0dXJuIGFkZHJlc3MgaXMgcHVzaGVkIHNlcGFyYXRlbHkuCi0gICBpdGVyLT5hcmdCYXNlID0g c2l6ZW9mKHZvaWQqKSArIG1hc20uZnJhbWVQdXNoZWQoKTsKLSsjZWxpZiBkZWZpbmVkKEpTX0NP REVHRU5fUFBDNjQpCi0rLy8gWFhYCi0rICAvLyBUaGUgcmV0dXJuIGFkZHJlc3MgaXMgaW4gTFIg KGFuIFNQUik7IGl0J3Mgbm90IChwcm9iYWJseSkgb24gdGhlIHN0YWNrLgotKyAgaXRlci0+YXJn QmFzZSA9IG1hc20uZnJhbWVQdXNoZWQoKTsKLSAjZWxzZQotICMgIGVycm9yICJVbnN1cHBvcnRl ZCBwbGF0Zm9ybSIKLSAjZW5kaWYKLSAgIHJldHVybiBzdGFydDsKLSB9Ci0gCi0gc3RhdGljIHZv aWQgR2VuRXBpbG9ndWUoTWFjcm9Bc3NlbWJsZXImIG1hc20pIHsKLSAgIG1hc20uUG9wUmVnc0lu TWFzayhBdG9taWNOb25Wb2xhdGlsZVJlZ3MpOwotICAgTU9aX0FTU0VSVChtYXNtLmZyYW1lUHVz aGVkKCkgPT0gMCk7Ci0gI2lmIGRlZmluZWQoSlNfQ09ERUdFTl9BUk02NCkKLSAgIG1hc20uUmV0 KCk7Ci0gI2VsaWYgZGVmaW5lZChKU19DT0RFR0VOX0FSTSkKLSAgIG1hc20ubW92KGxyLCBwYyk7 Ci0gI2VsaWYgZGVmaW5lZChKU19DT0RFR0VOX1g4NikgfHwgZGVmaW5lZChKU19DT0RFR0VOX1g2 NCkKLSAgIG1hc20ucmV0KCk7Ci0rI2VsaWYgZGVmaW5lZChKU19DT0RFR0VOX1BQQzY0KQotKyAg bWFzbS5hc19ibHIoKTsKLSAjZW5kaWYKLSB9Ci0gCi0gI2lmbmRlZiBKU182NEJJVAotIHN0YXRp YyB1aW50MzJfdCBHZW5Ob3AoTWFjcm9Bc3NlbWJsZXImIG1hc20pIHsKLSAgIEFyZ0l0ZXJhdG9y IGl0ZXI7Ci0gICB1aW50MzJfdCBzdGFydCA9IEdlblByb2xvZ3VlKG1hc20sICZpdGVyKTsKLSAg IEdlbkVwaWxvZ3VlKG1hc20pOwotQEAgLTQxNCwyMSArNDQyLDMxIEBAIHN0YXRpYyB1aW50MzJf dCBHZW5DbXB4Y2hnKE1hY3JvQXNzZW1ibGVyJiBtYXNtLCBTY2FsYXI6OlR5cGUgc2l6ZSwKLSAg IEFyZ0l0ZXJhdG9yIGl0ZXI7Ci0gICB1aW50MzJfdCBzdGFydCA9IEdlblByb2xvZ3VlKG1hc20s ICZpdGVyKTsKLSAgIEdlbkdwckFyZyhtYXNtLCBNSVJUeXBlOjpQb2ludGVyLCAmaXRlciwgQXRv bWljUHRyUmVnKTsKLSAKLSAgIEFkZHJlc3MgYWRkcihBdG9taWNQdHJSZWcsIDApOwotICAgc3dp dGNoIChzaXplKSB7Ci0gICAgIGNhc2UgU0laRTg6Ci0gICAgIGNhc2UgU0laRTE2OgotKyNpZiBk ZWZpbmVkKEpTX0NPREVHRU5fUFBDNjQpCi0rICAgICAgbWFzbS5jb21wYXJlRXhjaGFuZ2Uoc2l6 ZSwgc3luYywgYWRkciwgQXRvbWljVmFsUmVnLCBBdG9taWNWYWwyUmVnLAotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgIEF0b21pY1RlbXAsIEF0b21pY1RlbXAyLCBBdG9taWNUZW1wMywgUmV0 dXJuUmVnKTsKLSsgICAgICBicmVhazsKLSsjZW5kaWYKLSAgICAgY2FzZSBTSVpFMzI6Ci0gICAg ICAgR2VuR3ByQXJnKG1hc20sIE1JUlR5cGU6OkludDMyLCAmaXRlciwgQXRvbWljVmFsUmVnKTsK LSAgICAgICBHZW5HcHJBcmcobWFzbSwgTUlSVHlwZTo6SW50MzIsICZpdGVyLCBBdG9taWNWYWwy UmVnKTsKLSsjaWYgZGVmaW5lZChKU19DT0RFR0VOX1BQQzY0KQotKyAgICAgIG1hc20uY29tcGFy ZUV4Y2hhbmdlKHNpemUsIHN5bmMsIGFkZHIsIEF0b21pY1ZhbFJlZywgQXRvbWljVmFsMlJlZywK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICBJbnZhbGlkUmVnLCBJbnZhbGlkUmVnLCBJbnZh bGlkUmVnLCBSZXR1cm5SZWcpOwotKyNlbHNlCi0gICAgICAgbWFzbS5jb21wYXJlRXhjaGFuZ2Uo c2l6ZSwgc3luYywgYWRkciwgQXRvbWljVmFsUmVnLCBBdG9taWNWYWwyUmVnLAotICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFJldHVyblJlZyk7Ci0rI2VuZGlmCi0gICAgICAgYnJlYWs7Ci0g ICAgIGNhc2UgU0laRTY0OgotICAgICAgIEdlbkdwcjY0QXJnKG1hc20sICZpdGVyLCBBdG9taWNW YWxSZWc2NCk7Ci0gICAgICAgR2VuR3ByNjRBcmcobWFzbSwgJml0ZXIsIEF0b21pY1ZhbDJSZWc2 NCk7Ci0gI2lmIGRlZmluZWQoSlNfQ09ERUdFTl9YODYpCi0gICAgICAgc3RhdGljX2Fzc2VydChB dG9taWNWYWxSZWc2NCA9PSBSZWdpc3RlcjY0KGVkeCwgZWF4KSk7Ci0gICAgICAgc3RhdGljX2Fz c2VydChBdG9taWNWYWwyUmVnNjQgPT0gUmVnaXN0ZXI2NChlY3gsIGVieCkpOwotIAotQEAgLTQ1 MywxOSArNDkxLDI5IEBAIHN0YXRpYyB1aW50MzJfdCBHZW5FeGNoYW5nZShNYWNyb0Fzc2VtYmxl ciYgbWFzbSwgU2NhbGFyOjpUeXBlIHNpemUsCi0gICBBcmdJdGVyYXRvciBpdGVyOwotICAgdWlu dDMyX3Qgc3RhcnQgPSBHZW5Qcm9sb2d1ZShtYXNtLCAmaXRlcik7Ci0gICBHZW5HcHJBcmcobWFz bSwgTUlSVHlwZTo6UG9pbnRlciwgJml0ZXIsIEF0b21pY1B0clJlZyk7Ci0gCi0gICBBZGRyZXNz IGFkZHIoQXRvbWljUHRyUmVnLCAwKTsKLSAgIHN3aXRjaCAoc2l6ZSkgewotICAgICBjYXNlIFNJ WkU4OgotICAgICBjYXNlIFNJWkUxNjoKLSsjaWYgZGVmaW5lZChKU19DT0RFR0VOX1BQQzY0KQot KyAgICAgIG1hc20uYXRvbWljRXhjaGFuZ2Uoc2l6ZSwgc3luYywgYWRkciwgQXRvbWljVmFsUmVn LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgQXRvbWljVGVtcCwgQXRvbWljVGVtcDIsIEF0 b21pY1RlbXAzLCBSZXR1cm5SZWcpOwotKyAgICAgIGJyZWFrOwotKyNlbmRpZgotICAgICBjYXNl IFNJWkUzMjoKLSAgICAgICBHZW5HcHJBcmcobWFzbSwgTUlSVHlwZTo6SW50MzIsICZpdGVyLCBB dG9taWNWYWxSZWcpOwotKyNpZiBkZWZpbmVkKEpTX0NPREVHRU5fUFBDNjQpCi0rICAgICAgbWFz bS5hdG9taWNFeGNoYW5nZShzaXplLCBzeW5jLCBhZGRyLCBBdG9taWNWYWxSZWcsCi0rICAgICAg ICAgICAgICAgICAgICAgICAgICBJbnZhbGlkUmVnLCBJbnZhbGlkUmVnLCBJbnZhbGlkUmVnLCBS ZXR1cm5SZWcpOwotKyNlbHNlCi0gICAgICAgbWFzbS5hdG9taWNFeGNoYW5nZShzaXplLCBzeW5j LCBhZGRyLCBBdG9taWNWYWxSZWcsIFJldHVyblJlZyk7Ci0rI2VuZGlmCi0gICAgICAgYnJlYWs7 Ci0gICAgIGNhc2UgU0laRTY0OgotICNpZiBkZWZpbmVkKEpTXzY0QklUKQotICAgICAgIEdlbkdw cjY0QXJnKG1hc20sICZpdGVyLCBBdG9taWNWYWxSZWc2NCk7Ci0gICAgICAgbWFzbS5hdG9taWNF eGNoYW5nZTY0KHN5bmMsIGFkZHIsIEF0b21pY1ZhbFJlZzY0LCBBdG9taWNSZXR1cm5SZWc2NCk7 Ci0gICAgICAgYnJlYWs7Ci0gI2Vsc2UKLSAgICAgICBNT1pfQ1JBU0goIjY0LWJpdCBhdG9taWMg ZXhjaGFuZ2Ugbm90IGF2YWlsYWJsZSBvbiB0aGlzIHBsYXRmb3JtIik7Ci1AQCAtNDkyLDE3ICs1 NDAsMjIgQEAgc3RhdGljIHVpbnQzMl90IEdlbkZldGNoT3AoTWFjcm9Bc3NlbWJsZXImIG1hc20s IFNjYWxhcjo6VHlwZSBzaXplLCBBdG9taWNPcCBvcCwKLSAjaWYgZGVmaW5lZChKU19DT0RFR0VO X1g4NikgfHwgZGVmaW5lZChKU19DT0RFR0VOX1g2NCkKLSAgICAgICBSZWdpc3RlciB0bXAgPSBv cCA9PSBBdG9taWNGZXRjaEFkZE9wIHx8IG9wID09IEF0b21pY0ZldGNoU3ViT3AKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgPyBSZWdpc3Rlcjo6SW52YWxpZCgpCi0gICAgICAgICAgICAgICAg ICAgICAgICAgIDogQXRvbWljVGVtcDsKLSAjZWxzZQotICAgICAgIFJlZ2lzdGVyIHRtcCA9IEF0 b21pY1RlbXA7Ci0gI2VuZGlmCi0gICAgICAgR2VuR3ByQXJnKG1hc20sIE1JUlR5cGU6OkludDMy LCAmaXRlciwgQXRvbWljVmFsUmVnKTsKLSsjaWYgZGVmaW5lZChKU19DT0RFR0VOX1BQQzY0KQot KyAgICAgIG1hc20uYXRvbWljRmV0Y2hPcChzaXplLCBzeW5jLCBvcCwgQXRvbWljVmFsUmVnLCBh ZGRyLCB0bXAsIEF0b21pY1RlbXAyLAotKyAgICAgICAgICAgICAgICAgICAgICAgICBBdG9taWNU ZW1wMywgUmV0dXJuUmVnKTsKLSsjZWxzZQotICAgICAgIG1hc20uYXRvbWljRmV0Y2hPcChzaXpl LCBzeW5jLCBvcCwgQXRvbWljVmFsUmVnLCBhZGRyLCB0bXAsIFJldHVyblJlZyk7Ci0rI2VuZGlm Ci0gICAgICAgYnJlYWs7Ci0gICAgIH0KLSAgICAgY2FzZSBTSVpFNjQ6IHsKLSAjaWYgZGVmaW5l ZChKU182NEJJVCkKLSAjICBpZiBkZWZpbmVkKEpTX0NPREVHRU5fWDY0KQotICAgICAgIFJlZ2lz dGVyNjQgdG1wID0gb3AgPT0gQXRvbWljRmV0Y2hBZGRPcCB8fCBvcCA9PSBBdG9taWNGZXRjaFN1 Yk9wCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBSZWdpc3RlcjY0OjpJbnZhbGlkKCkK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IEF0b21pY1RlbXA2NDsKLUBAIC02MzYsMTYg KzY4OSwxOSBAQCBzdGF0aWMgYm9vbCBVbmFsaWduZWRBY2Nlc3Nlc0FyZU9LKCkgewotICNlbmRp ZgotICNpZiBkZWZpbmVkKEpTX0NPREVHRU5fWDg2KSB8fCBkZWZpbmVkKEpTX0NPREVHRU5fWDY0 KQotICAgcmV0dXJuIHRydWU7Ci0gI2VsaWYgZGVmaW5lZChKU19DT0RFR0VOX0FSTSkKLSAgIHJl dHVybiAhSGFzQWxpZ25tZW50RmF1bHQoKTsKLSAjZWxpZiBkZWZpbmVkKEpTX0NPREVHRU5fQVJN NjQpCi0gICAvLyBUaGlzIGlzIG5vdCBuZWNlc3NhcmlseSB0cnVlIGJ1dCBpdCdzIHRoZSBiZXN0 IGd1ZXNzIHJpZ2h0IG5vdy4KLSAgIHJldHVybiB0cnVlOwotKyNlbGlmIGRlZmluZWQoSlNfQ09E RUdFTl9QUEM2NCkKLSsgIC8vIFdlJ2Qgc3VyZSBsaWtlIHRvIGF2b2lkIGl0LCBldmVuIHRob3Vn aCBpdCB3b3Jrcy4KLSsgIHJldHVybiBmYWxzZTsKLSAjZWxzZQotICMgIGVycm9yICJVbnN1cHBv cnRlZCBwbGF0Zm9ybSIKLSAjZW5kaWYKLSB9Ci0gCi0gdm9pZCBBdG9taWNNZW1jcHlEb3duVW5z eW5jaHJvbml6ZWQodWludDhfdCogZGVzdCwgY29uc3QgdWludDhfdCogc3JjLAotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBuYnl0ZXMpIHsKLSAgIGNvbnN0IHVp bnQ4X3QqIGxpbSA9IHNyYyArIG5ieXRlczsKLWRpZmYgLS1naXQgYS9qcy9zcmMvanNhcGktdGVz dHMvdGVzdEppdEFCSWNhbGxzLmNwcCBiL2pzL3NyYy9qc2FwaS10ZXN0cy90ZXN0Sml0QUJJY2Fs bHMuY3BwCi1pbmRleCAwMmI2N2RhM2NhLi5iZDQ1Mzg5YjIxIDEwMDY0NAotLS0tIGEvanMvc3Jj L2pzYXBpLXRlc3RzL3Rlc3RKaXRBQkljYWxscy5jcHAKLSsrKyBiL2pzL3NyYy9qc2FwaS10ZXN0 cy90ZXN0Sml0QUJJY2FsbHMuY3BwCi1AQCAtNjUzLDE2ICs2NTMsMTkgQEAgY2xhc3MgSml0QUJJ Q2FsbCBmaW5hbCA6IHB1YmxpYyBKU0FQSVRlc3QsIHB1YmxpYyBEZWZpbmVDaGVja0FyZ3M8U2ln PiB7Ci0gICAgIFJlZ2lzdGVyIGJhc2UgPSByODsKLSAgICAgcmVncy50YWtlKGJhc2UpOwotICNl bGlmIGRlZmluZWQoSlNfQ09ERUdFTl9NSVBTMzIpCi0gICAgIFJlZ2lzdGVyIGJhc2UgPSB0MTsK LSAgICAgcmVncy50YWtlKGJhc2UpOwotICNlbGlmIGRlZmluZWQoSlNfQ09ERUdFTl9NSVBTNjQp Ci0gICAgIFJlZ2lzdGVyIGJhc2UgPSB0MTsKLSAgICAgcmVncy50YWtlKGJhc2UpOwotKyNlbGlm IGRlZmluZWQoSlNfQ09ERUdFTl9QUEM2NCkKLSsgICAgUmVnaXN0ZXIgYmFzZSA9IHIwOwotKyAg ICByZWdzLnRha2UoYmFzZSk7Ci0gI2Vsc2UKLSAjICBlcnJvciAiVW5rbm93biBhcmNoaXRlY3R1 cmUhIgotICNlbmRpZgotIAotICAgICBSZWdpc3RlciBzZXR1cCA9IHJlZ3MudGFrZUFueSgpOwot IAotICAgICB0aGlzLT5nZW5lcmF0ZUNhbGxzKG1hc20sIGJhc2UsIHNldHVwKTsKLSAKLWRpZmYg LS1naXQgYS9qcy9zcmMvanNhcGktdGVzdHMvdGVzdHNKaXQuY3BwIGIvanMvc3JjL2pzYXBpLXRl c3RzL3Rlc3RzSml0LmNwcAotaW5kZXggMDY5ZWVmNDNmZS4uNzA1NjA5ZGYyYyAxMDA2NDQKLS0t LSBhL2pzL3NyYy9qc2FwaS10ZXN0cy90ZXN0c0ppdC5jcHAKLSsrKyBiL2pzL3NyYy9qc2FwaS10 ZXN0cy90ZXN0c0ppdC5jcHAKLUBAIC0yMCwxNiArMjAsMjEgQEAgdm9pZCBQcmVwYXJlSml0KGpz OjpqaXQ6Ok1hY3JvQXNzZW1ibGVyJiBtYXNtKSB7Ci0gI2VuZGlmCi0gICBBbGxvY2F0YWJsZVJl Z2lzdGVyU2V0IHJlZ3MoUmVnaXN0ZXJTZXQ6OkFsbCgpKTsKLSAgIExpdmVSZWdpc3RlclNldCBz YXZlKHJlZ3MuYXNMaXZlU2V0KCkpOwotICNpZiBkZWZpbmVkKEpTX0NPREVHRU5fQVJNKQotICAg c2F2ZS5hZGQoanM6OmppdDo6ZDE1KTsKLSAjZW5kaWYKLSAjaWYgZGVmaW5lZChKU19DT0RFR0VO X01JUFMzMikgfHwgZGVmaW5lZChKU19DT0RFR0VOX01JUFM2NCkKLSAgIHNhdmUuYWRkKGpzOjpq aXQ6OnJhKTsKLSsjZWxpZiBkZWZpbmVkKEpTX0NPREVHRU5fUFBDNjQpCi0rICAvLyBYWFgKLSsg IC8vIFB1c2ggdGhlIGxpbmsgcmVnaXN0ZXIgc2VwYXJhdGVseSwgc2luY2UgaXQncyBub3QgYSBH UFIuCi0rICBtYXNtLnhzX21mbHIoU2NyYXRjaFJlZ2lzdGVyKTsKLSsgIG1hc20uYXNfc3RkdShT Y3JhdGNoUmVnaXN0ZXIsIFN0YWNrUG9pbnRlciwgLTgpOwotICNlbGlmIGRlZmluZWQoSlNfVVNF X0xJTktfUkVHSVNURVIpCi0gICBzYXZlLmFkZChqczo6aml0Ojpscik7Ci0gI2VuZGlmCi0gICBt YXNtLlB1c2hSZWdzSW5NYXNrKHNhdmUpOwotIH0KLSAKLSAvLyBHZW5lcmF0ZSB0aGUgZXhpdCBw YXRoIG9mIHRoZSBKSVQgY29kZSwgd2hpY2ggcmVzdG9yZXMgZXZlcnkgcmVnaXN0ZXIuIFRoZW4s Ci0gLy8gbWFrZSBpdCBleGVjdXRhYmxlIGFuZCBydW4gaXQuCi1AQCAtMzcsMjYgKzQyLDM1IEBA IGJvb2wgRXhlY3V0ZUppdChKU0NvbnRleHQqIGN4LCBqczo6aml0OjpNYWNyb0Fzc2VtYmxlciYg bWFzbSkgewotICAgdXNpbmcgbmFtZXNwYWNlIGpzOjpqaXQ7Ci0gICBBbGxvY2F0YWJsZVJlZ2lz dGVyU2V0IHJlZ3MoUmVnaXN0ZXJTZXQ6OkFsbCgpKTsKLSAgIExpdmVSZWdpc3RlclNldCBzYXZl KHJlZ3MuYXNMaXZlU2V0KCkpOwotICNpZiBkZWZpbmVkKEpTX0NPREVHRU5fQVJNKQotICAgc2F2 ZS5hZGQoanM6OmppdDo6ZDE1KTsKLSAjZW5kaWYKLSAjaWYgZGVmaW5lZChKU19DT0RFR0VOX01J UFMzMikgfHwgZGVmaW5lZChKU19DT0RFR0VOX01JUFM2NCkKLSAgIHNhdmUuYWRkKGpzOjpqaXQ6 OnJhKTsKLSsjZWxpZiBkZWZpbmVkKEpTX0NPREVHRU5fUFBDNjQpCi0rICAvLyBXZSBwb3AgYWZ0 ZXIgbG9hZGluZyB0aGUgcmVncy4KLSAjZWxpZiBkZWZpbmVkKEpTX1VTRV9MSU5LX1JFR0lTVEVS KQotICAgc2F2ZS5hZGQoanM6OmppdDo6bHIpOwotICNlbmRpZgotICAgbWFzbS5Qb3BSZWdzSW5N YXNrKHNhdmUpOwotICNpZiBkZWZpbmVkKEpTX0NPREVHRU5fQVJNNjQpCi0gICAvLyBSZXR1cm4g dXNpbmcgdGhlIHZhbHVlIHBvcHBlZCBpbnRvIHgzMC4KLSAgIG1hc20uYWJpcmV0KCk7Ci0gCi0g ICAvLyBSZXNldCBzdGFjayBwb2ludGVyLgotICAgbWFzbS5TZXRTdGFja1BvaW50ZXI2NChQc2V1 ZG9TdGFja1BvaW50ZXI2NCk7Ci0rI2VsaWYgZGVmaW5lZChKU19DT0RFR0VOX1BQQzY0KQotKyAg Ly8gWFhYCi0rICAvLyBQb3AgTFIgYW5kIGV4aXQuCi0rICBtYXNtLmFzX2xkKFNjcmF0Y2hSZWdp c3RlciwgU3RhY2tQb2ludGVyLCAwKTsKLSsgIG1hc20ueHNfbXRscihTY3JhdGNoUmVnaXN0ZXIp OwotKyAgbWFzbS5hc19hZGRpKFN0YWNrUG9pbnRlciwgU3RhY2tQb2ludGVyLCA4KTsKLSsgIG1h c20uYXNfYmxyKCk7Ci0gI2Vsc2UKLSAgIC8vIEV4aXQgdGhlIEpJVC1lZCBjb2RlIHVzaW5nIHRo ZSBBQkkgcmV0dXJuIHN0eWxlLgotICAgbWFzbS5hYmlyZXQoKTsKLSAjZW5kaWYKLSAKLSAgIGlm IChtYXNtLm9vbSgpKSB7Ci0gICAgIHJldHVybiBmYWxzZTsKLSAgIH0KLWRpZmYgLS1naXQgYS9q cy9zcmMvdXRpbC9Qb2lzb24uaCBiL2pzL3NyYy91dGlsL1BvaXNvbi5oCi1pbmRleCA4MzU2Y2Ex ZjAwLi41ZWViMTExY2Y4IDEwMDY0NAotLS0tIGEvanMvc3JjL3V0aWwvUG9pc29uLmgKLSsrKyBi L2pzL3NyYy91dGlsL1BvaXNvbi5oCi1AQCAtODgsMTYgKzg4LDE4IEBAIGNvbnN0IHVpbnQ4X3Qg SlNfU0NPUEVfREFUQV9UUkFJTElOR19OQU1FU19QQVRURVJOID0gMHhDQzsKLSAgKi8KLSAjaWYg ZGVmaW5lZChKU19DT0RFR0VOX1g4NikgfHwgZGVmaW5lZChKU19DT0RFR0VOX1g2NCkgfHwgXAot ICAgICBkZWZpbmVkKEpTX0NPREVHRU5fTk9ORSkKLSAjICBkZWZpbmUgSlNfU1dFUFRfQ09ERV9Q QVRURVJOIDB4RUQgIC8vIElOIGluc3RydWN0aW9uLCBjcmFzaGVzIGluIHVzZXIgbW9kZS4KLSAj ZWxpZiBkZWZpbmVkKEpTX0NPREVHRU5fQVJNKSB8fCBkZWZpbmVkKEpTX0NPREVHRU5fQVJNNjQp Ci0gIyAgZGVmaW5lIEpTX1NXRVBUX0NPREVfUEFUVEVSTiAweEEzICAvLyB1bmRlZmluZWQgaW5z dHJ1Y3Rpb24KLSAjZWxpZiBkZWZpbmVkKEpTX0NPREVHRU5fTUlQUzMyKSB8fCBkZWZpbmVkKEpT X0NPREVHRU5fTUlQUzY0KQotICMgIGRlZmluZSBKU19TV0VQVF9DT0RFX1BBVFRFUk4gMHgwMSAg Ly8gdW5kZWZpbmVkIGluc3RydWN0aW9uCi0rI2VsaWYgZGVmaW5lZChKU19DT0RFR0VOX1BQQzY0 KSB8fCBkZWZpbmVkKEpTX0NPREVHRU5fUFBDKQotKyMgIGRlZmluZSBKU19TV0VQVF9DT0RFX1BB VFRFUk4gMHgwMCAgLy8gYXJjaGl0ZWN0dXJhbGx5IGRlZmluZWQgYXMgaWxsZWdhbAotICNlbHNl Ci0gIyAgZXJyb3IgIkpTX1NXRVBUX0NPREVfUEFUVEVSTiBub3QgZGVmaW5lZCBmb3IgdGhpcyBw bGF0Zm9ybSIKLSAjZW5kaWYKLSAKLSBlbnVtIGNsYXNzIE1lbUNoZWNrS2luZCA6IHVpbnQ4X3Qg ewotICAgLy8gTWFya3MgYSByZWdpb24gYXMgcG9pc29uZWQuIE1lbW9yeSBzYW5pdGl6ZXJzIGxp a2UgQVNhbiB3aWxsIGNyYXNoIHdoZW4KLSAgIC8vIGFjY2Vzc2luZyBpdCAoYm90aCByZWFkcyBh bmQgd3JpdGVzKS4KLSAgIE1ha2VOb0FjY2VzcywKLWRpZmYgLS1naXQgYS9qcy9zcmMvd2FzbS9X YXNtQmFzZWxpbmVDb21waWxlLmNwcCBiL2pzL3NyYy93YXNtL1dhc21CYXNlbGluZUNvbXBpbGUu Y3BwCi1pbmRleCAxNTZmM2NiYmJhLi5hYjI5ZjQ0NzEzIDEwMDY0NAotLS0tIGEvanMvc3JjL3dh c20vV2FzbUJhc2VsaW5lQ29tcGlsZS5jcHAKLSsrKyBiL2pzL3NyYy93YXNtL1dhc21CYXNlbGlu ZUNvbXBpbGUuY3BwCi1AQCAtMTM4LDE2ICsxMzgsMTkgQEAKLSAjaWYgZGVmaW5lZChKU19DT0RF R0VOX01JUFMzMikKLSAjICBpbmNsdWRlICJqaXQvbWlwcy1zaGFyZWQvQXNzZW1ibGVyLW1pcHMt c2hhcmVkLmgiCi0gIyAgaW5jbHVkZSAiaml0L21pcHMzMi9Bc3NlbWJsZXItbWlwczMyLmgiCi0g I2VuZGlmCi0gI2lmIGRlZmluZWQoSlNfQ09ERUdFTl9NSVBTNjQpCi0gIyAgaW5jbHVkZSAiaml0 L21pcHMtc2hhcmVkL0Fzc2VtYmxlci1taXBzLXNoYXJlZC5oIgotICMgIGluY2x1ZGUgImppdC9t aXBzNjQvQXNzZW1ibGVyLW1pcHM2NC5oIgotICNlbmRpZgotKyNpZiBkZWZpbmVkKEpTX0NPREVH RU5fUFBDNjQpCi0rIyAgaW5jbHVkZSAiaml0L3BwYzY0L0Fzc2VtYmxlci1wcGM2NC5oIgotKyNl bmRpZgotICNpbmNsdWRlICJqcy9TY2FsYXJUeXBlLmgiICAvLyBqczo6U2NhbGFyOjpUeXBlCi0g I2luY2x1ZGUgInV0aWwvTWVtb3J5LmgiCi0gI2luY2x1ZGUgIndhc20vVHlwZWRPYmplY3QuaCIK LSAjaW5jbHVkZSAid2FzbS9XYXNtR0MuaCIKLSAjaW5jbHVkZSAid2FzbS9XYXNtR2VuZXJhdG9y LmgiCi0gI2luY2x1ZGUgIndhc20vV2FzbUluc3RhbmNlLmgiCi0gI2luY2x1ZGUgIndhc20vV2Fz bU9wSXRlci5oIgotICNpbmNsdWRlICJ3YXNtL1dhc21TaWduYWxIYW5kbGVycy5oIgotQEAgLTI4 OCwxNiArMjkxLDIzIEBAIHN0YXRpYyBjb25zdGV4cHIgUmVnaXN0ZXIgUmFiYWxkclNjcmF0Y2hJ MzIgPSBDYWxsVGVtcFJlZzI7Ci0gI2VuZGlmCi0gCi0gI2lmZGVmIFJBQkFMRFJfU0NSQVRDSF9G MzJfQUxJQVNFU19GNjQKLSAjICBpZiAhZGVmaW5lZChSQUJBTERSX1NDUkFUQ0hfRjMyKSB8fCAh ZGVmaW5lZChSQUJBTERSX1NDUkFUQ0hfRjY0KQotICMgICAgZXJyb3IgIkJhZCBjb25maWd1cmF0 aW9uIgotICMgIGVuZGlmCi0gI2VuZGlmCi0gCi0rI2lmZGVmIEpTX0NPREVHRU5fUFBDNjQKLSsj ICBkZWZpbmUgUkFCQUxEUl9TQ1JBVENIX0kzMgotKy8vIFdlIGNhbiB1c2UgYWxsIHRoZSBhcmdy ZWdzIHVwLCBhbmQgd2UgZG9uJ3Qgd2FudCB0aGUgSklUIHVzaW5nIG91ciBvd24KLSsvLyBwcml2 YXRlIHNjcmF0Y2ggcmVnaXN0ZXJzLCBzbyB0aGlzIGlzIHRoZSBiZXN0IG9wdGlvbiBvZiB3aGF0 J3MgbGVmdC4KLStzdGF0aWMgY29uc3RleHByIFJlZ2lzdGVyIFJhYmFsZHJTY3JhdGNoSTMyID0g cjE5OwotKyNlbmRpZgotKwotIHRlbXBsYXRlIDxNSVJUeXBlIHQ+Ci0gc3RydWN0IFJlZ1R5cGVP ZiB7Ci0gI2lmZGVmIEVOQUJMRV9XQVNNX1NJTUQKLSAgIHN0YXRpY19hc3NlcnQodCA9PSBNSVJU eXBlOjpGbG9hdDMyIHx8IHQgPT0gTUlSVHlwZTo6RG91YmxlIHx8Ci0gICAgICAgICAgICAgICAg ICAgICB0ID09IE1JUlR5cGU6OlNpbWQxMjgsCi0gICAgICAgICAgICAgICAgICJGbG9hdCBtYXNr IHR5cGUiKTsKLSAjZWxzZQotICAgc3RhdGljX2Fzc2VydCh0ID09IE1JUlR5cGU6OkZsb2F0MzIg fHwgdCA9PSBNSVJUeXBlOjpEb3VibGUsCi1AQCAtNTUwLDE2ICs1NjAsMTggQEAgc3RydWN0IFNw ZWNpZmljUmVncyB7fTsKLSAjZWxpZiBkZWZpbmVkKEpTX0NPREVHRU5fTUlQUzMyKQotIHN0cnVj dCBTcGVjaWZpY1JlZ3MgewotICAgUmVnSTY0IGFiaVJldHVyblJlZ0k2NDsKLSAKLSAgIFNwZWNp ZmljUmVncygpIDogYWJpUmV0dXJuUmVnSTY0KFJldHVyblJlZzY0KSB7fQotIH07Ci0gI2VsaWYg ZGVmaW5lZChKU19DT0RFR0VOX01JUFM2NCkKLSBzdHJ1Y3QgU3BlY2lmaWNSZWdzIHt9OwotKyNl bGlmIGRlZmluZWQoSlNfQ09ERUdFTl9QUEM2NCkKLStzdHJ1Y3QgU3BlY2lmaWNSZWdzIHt9Owot ICNlbHNlCi0gc3RydWN0IFNwZWNpZmljUmVncyB7Ci0gIyAgaWZuZGVmIEpTXzY0QklUCi0gICBS ZWdJNjQgYWJpUmV0dXJuUmVnSTY0OwotICMgIGVuZGlmCi0gCi0gICBTcGVjaWZpY1JlZ3MoKSB7 IE1PWl9DUkFTSCgiQmFzZUNvbXBpbGVyIHBvcnRpbmcgaW50ZXJmYWNlOiBTcGVjaWZpY1JlZ3Mi KTsgfQotIH07Ci1AQCAtNjAzOCwxNiArNjA1MCwyNSBAQCBjbGFzcyBCYXNlQ29tcGlsZXIgZmlu YWwgOiBwdWJsaWMgQmFzZUNvbXBpbGVySW50ZXJmYWNlIHsKLSAgICAgICAgIEFCSUFyZyBhcmdM b2MgPSBjYWxsLT5hYmkubmV4dChNSVJUeXBlOjpJbnQzMik7Ci0gICAgICAgICBpZiAoYXJnTG9j LmtpbmQoKSA9PSBBQklBcmc6OlN0YWNrKSB7Ci0gICAgICAgICAgIFNjcmF0Y2hJMzIgc2NyYXRj aCgqdGhpcyk7Ci0gICAgICAgICAgIGxvYWRJMzIoYXJnLCBzY3JhdGNoKTsKLSAgICAgICAgICAg bWFzbS5zdG9yZTMyKHNjcmF0Y2gsIEFkZHJlc3MobWFzbS5nZXRTdGFja1BvaW50ZXIoKSwKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJnTG9jLm9mZnNldEZyb21B cmdCYXNlKCkpKTsKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgIGxvYWRJMzIoYXJnLCBS ZWdJMzIoYXJnTG9jLmdwcigpKSk7Ci0rI2lmIEpTX0NPREVHRU5fUFBDNjQKLSsgICAgICAgICAg Ly8gSWYgdGhpcyBpcyBhIGNhbGwgdG8gY29tcGlsZWQgQysrLCB3ZSBtdXN0IGVuc3VyZSB0aGF0 IHRoZQotKyAgICAgICAgICAvLyB1cHBlciAzMiBiaXRzIGFyZSBjbGVhcjogYWRkaSBjYW4gc2ln bi1leHRlbmQsIHdoaWNoIHlpZWxkcwotKyAgICAgICAgICAvLyBkaWZmaWN1bHQtdG8tZGlhZ25v c2UgYnVncyB3aGVuIHRoZSBmdW5jdGlvbiBleHBlY3RzIGEgdWludDMyX3QKLSsgICAgICAgICAg Ly8gYnV0IHRoZSByZWdpc3RlciBpdCBnZXRzIGhhcyBhIHJlc2lkdWFsIDY0LWJpdCB2YWx1ZS4K LSsgICAgICAgICAgaWYgKGNhbGwtPnVzZXNTeXN0ZW1BYmkpIHsKLSsgICAgICAgICAgICBtYXNt LmFzX3JsZGljbChhcmdMb2MuZ3ByKCksIGFyZ0xvYy5ncHIoKSwgMCwgMzIpOwotKyAgICAgICAg ICB9Ci0rI2VuZGlmCi0gICAgICAgICB9Ci0gICAgICAgICBicmVhazsKLSAgICAgICB9Ci0gICAg ICAgY2FzZSBWYWxUeXBlOjpJNjQ6IHsKLSAgICAgICAgIEFCSUFyZyBhcmdMb2MgPSBjYWxsLT5h YmkubmV4dChNSVJUeXBlOjpJbnQ2NCk7Ci0gICAgICAgICBpZiAoYXJnTG9jLmtpbmQoKSA9PSBB QklBcmc6OlN0YWNrKSB7Ci0gICAgICAgICAgIFNjcmF0Y2hJMzIgc2NyYXRjaCgqdGhpcyk7Ci0g I2lmZGVmIEpTX1BVTkJPWDY0Ci1AQCAtNjMyNCwxNyArNjM0NSwxOCBAQCBjbGFzcyBCYXNlQ29t cGlsZXIgZmluYWwgOiBwdWJsaWMgQmFzZUNvbXBpbGVySW50ZXJmYWNlIHsKLSAKLSAgICAgLy8g Q29tcHV0ZSB0aGUgYWJzb2x1dGUgdGFibGUgYmFzZSBwb2ludGVyIGludG8gYHNjcmF0Y2hgLCBv ZmZzZXQgYnkgOAotICAgICAvLyB0byBhY2NvdW50IGZvciB0aGUgZmFjdCB0aGF0IG1hX21vdiBy ZWFkIFBDKzguCi0gICAgIG1hc20ubWFfc3ViKEltbTMyKG9mZnNldCArIDgpLCBzY3JhdGNoLCBh cm1fc2NyYXRjaCk7Ci0gCi0gICAgIC8vIEp1bXAgaW5kaXJlY3QgdmlhIHRhYmxlIGVsZW1lbnQu Ci0gICAgIG1hc20ubWFfbGRyKERUUkFkZHIoc2NyYXRjaCwgRHRyUmVnSW1tU2hpZnQoc3dpdGNo VmFsdWUsIExTTCwgMikpLCBwYywKLSAgICAgICAgICAgICAgICAgT2Zmc2V0LCBBc3NlbWJsZXI6 OkFsd2F5cyk7Ci0tI2VsaWYgZGVmaW5lZChKU19DT0RFR0VOX01JUFMzMikgfHwgZGVmaW5lZChK U19DT0RFR0VOX01JUFM2NCkKLSsjZWxpZiBkZWZpbmVkKEpTX0NPREVHRU5fTUlQUzMyKSB8fCBk ZWZpbmVkKEpTX0NPREVHRU5fTUlQUzY0KSB8fCBcCi0rICAgICAgZGVmaW5lZChKU19DT0RFR0VO X1BQQzY0KQotICAgICBTY3JhdGNoSTMyIHNjcmF0Y2goKnRoaXMpOwotICAgICBDb2RlTGFiZWwg dGFibGVDbDsKLSAKLSAgICAgbWFzbS5tYV9saShzY3JhdGNoLCAmdGFibGVDbCk7Ci0gCi0gICAg IHRhYmxlQ2wudGFyZ2V0KCktPmJpbmQodGhlVGFibGUtPm9mZnNldCgpKTsKLSAgICAgbWFzbS5h ZGRDb2RlTGFiZWwodGFibGVDbCk7Ci0gCi1AQCAtNjQ5MywxNiArNjUxNSwyMiBAQCBjbGFzcyBC YXNlQ29tcGlsZXIgZmluYWwgOiBwdWJsaWMgQmFzZUNvbXBpbGVySW50ZXJmYWNlIHsKLSAjICBl bGlmIGRlZmluZWQoSlNfQ09ERUdFTl9BUk02NCkKLSAgICAgQVJNUmVnaXN0ZXIgc2Qoc3JjRGVz dC5yZWcsIDY0KTsKLSAgICAgQVJNUmVnaXN0ZXIgcihyaHMucmVnLCA2NCk7Ci0gICAgIGlmIChp c1Vuc2lnbmVkKSB7Ci0gICAgICAgbWFzbS5VZGl2KHNkLCBzZCwgcik7Ci0gICAgIH0gZWxzZSB7 Ci0gICAgICAgbWFzbS5TZGl2KHNkLCBzZCwgcik7Ci0gICAgIH0KLSsjICBlbGlmIGRlZmluZWQo SlNfQ09ERUdFTl9QUEM2NCkKLSsgICBpZiAoaXNVbnNpZ25lZCkgewotKyAgICAgbWFzbS5hc19k aXZkdShzcmNEZXN0LnJlZywgc3JjRGVzdC5yZWcsIHJocy5yZWcpOwotKyAgIH0gZWxzZSB7Ci0r ICAgICBtYXNtLmFzX2RpdmQoc3JjRGVzdC5yZWcsIHNyY0Rlc3QucmVnLCByaHMucmVnKTsKLSsg ICB9Ci0gIyAgZWxzZQotICAgICBNT1pfQ1JBU0goIkJhc2VDb21waWxlciBwbGF0Zm9ybSBob29r OiBxdW90aWVudEk2NCIpOwotICMgIGVuZGlmCi0gICAgIG1hc20uYmluZCgmZG9uZSk7Ci0gICB9 Ci0gCi0gICB2b2lkIHJlbWFpbmRlckk2NChSZWdJNjQgcmhzLCBSZWdJNjQgc3JjRGVzdCwgUmVn STY0IHJlc2VydmVkLAotICAgICAgICAgICAgICAgICAgICAgSXNVbnNpZ25lZCBpc1Vuc2lnbmVk LCBib29sIGlzQ29uc3QsIGludDY0X3QgYykgewotQEAgLTY1NDQsMjkgKzY1NzIsNDYgQEAgY2xh c3MgQmFzZUNvbXBpbGVyIGZpbmFsIDogcHVibGljIEJhc2VDb21waWxlckludGVyZmFjZSB7Ci0g ICAgIEFSTVJlZ2lzdGVyIHQodGVtcCwgNjQpOwotICAgICBpZiAoaXNVbnNpZ25lZCkgewotICAg ICAgIG1hc20uVWRpdih0LCBzZCwgcik7Ci0gICAgIH0gZWxzZSB7Ci0gICAgICAgbWFzbS5TZGl2 KHQsIHNkLCByKTsKLSAgICAgfQotICAgICBtYXNtLk11bCh0LCB0LCByKTsKLSAgICAgbWFzbS5T dWIoc2QsIHNkLCB0KTsKLSsjICBlbGlmIGRlZmluZWQoSlNfQ09ERUdFTl9QUEM2NCkKLSsgICAg aWYgKGpzOjpqaXQ6Okhhc1BQQ0lTQTMoKSkgewotKyAgICAgIGlmIChpc1Vuc2lnbmVkKSB7Ci0r ICAgICAgICBtYXNtLmFzX21vZHVkKHNyY0Rlc3QucmVnLCBzcmNEZXN0LnJlZywgcmhzLnJlZyk7 Ci0rICAgICAgfSBlbHNlIHsKLSsgICAgICAgIG1hc20uYXNfbW9kc2Qoc3JjRGVzdC5yZWcsIHNy Y0Rlc3QucmVnLCByaHMucmVnKTsKLSsgICAgICB9Ci0rICAgIH0gZWxzZSB7Ci0rICAgICAgU2Ny YXRjaEkzMiB0ZW1wKCp0aGlzKTsKLSsgICAgICBpZiAoaXNVbnNpZ25lZCkgewotKyAgICAgICAg bWFzbS5hc19kaXZkdSh0ZW1wLCBzcmNEZXN0LnJlZywgcmhzLnJlZyk7Ci0rICAgICAgfSBlbHNl IHsKLSsgICAgICAgIG1hc20uYXNfZGl2ZCh0ZW1wLCBzcmNEZXN0LnJlZywgcmhzLnJlZyk7Ci0r ICAgICAgfQotKyAgICAgIG1hc20uYXNfbXVsbGQodGVtcCwgdGVtcCwgcmhzLnJlZyk7Ci0rICAg ICAgbWFzbS5hc19zdWJmKHNyY0Rlc3QucmVnLCB0ZW1wLCBzcmNEZXN0LnJlZyk7IC8vIFQgPSBC IC0gQQotKyAgICB9Ci0gIyAgZWxzZQotICAgICBNT1pfQ1JBU0goIkJhc2VDb21waWxlciBwbGF0 Zm9ybSBob29rOiByZW1haW5kZXJJNjQiKTsKLSAjICBlbmRpZgotICAgICBtYXNtLmJpbmQoJmRv bmUpOwotICAgfQotICNlbmRpZiAgLy8gUkFCQUxEUl9JTlRfRElWX0k2NF9DQUxMT1VUCi0gCi0g ICBSZWdJMzIgbmVlZFJvdGF0ZTY0VGVtcCgpIHsKLSAjaWYgZGVmaW5lZChKU19DT0RFR0VOX1g4 NikKLSAgICAgcmV0dXJuIG5lZWRJMzIoKTsKLSAjZWxpZiBkZWZpbmVkKEpTX0NPREVHRU5fWDY0 KSB8fCBkZWZpbmVkKEpTX0NPREVHRU5fQVJNKSB8fCAgICBcCi0gICAgIGRlZmluZWQoSlNfQ09E RUdFTl9BUk02NCkgfHwgZGVmaW5lZChKU19DT0RFR0VOX01JUFMzMikgfHwgXAotLSAgICBkZWZp bmVkKEpTX0NPREVHRU5fTUlQUzY0KQotKyAgICBkZWZpbmVkKEpTX0NPREVHRU5fTUlQUzY0KSB8 fCBkZWZpbmVkKEpTX0NPREVHRU5fUFBDNjQpCi0gICAgIHJldHVybiBSZWdJMzI6OkludmFsaWQo KTsKLSAjZWxzZQotICAgICBNT1pfQ1JBU0goIkJhc2VDb21waWxlciBwbGF0Zm9ybSBob29rOiBu ZWVkUm90YXRlNjRUZW1wIik7Ci0gI2VuZGlmCi0gICB9Ci0gCi0gICBjbGFzcyBPdXRPZkxpbmVU cnVuY2F0ZUNoZWNrRjMyT3JGNjRUb0kzMiA6IHB1YmxpYyBPdXRPZkxpbmVDb2RlIHsKLSAgICAg QW55UmVnIHNyYzsKLUBAIC02ODY5LDMwICs2OTE0LDM1IEBAIGNsYXNzIEJhc2VDb21waWxlciBm aW5hbCA6IHB1YmxpYyBCYXNlQ29tcGlsZXJJbnRlcmZhY2UgewotICAgICAgICAgUmVnSTY0IHB0 cjY0ID0gZnJvbUkzMihwdHIpOwotIAotICAgICAgICAgLy8gSW4gcHJpbmNpcGxlIHRoZXJlIG1h eSBiZSBub24temVybyBiaXRzIGluIHRoZSB1cHBlciBiaXRzIG9mIHRoZQotICAgICAgICAgLy8g cmVnaXN0ZXI7IGNsZWFyIHRoZW0uCi0gIyAgaWYgZGVmaW5lZChKU19DT0RFR0VOX1g2NCkgfHwg ZGVmaW5lZChKU19DT0RFR0VOX0FSTTY0KQotICAgICAgICAgLy8gVGhlIGNhbm9uaWNhbCB2YWx1 ZSBpcyB6ZXJvLWV4dGVuZGVkIChzZWUgY29tbWVudCBibG9jayAiNjQtYml0IEdQUnMKLSAgICAg ICAgIC8vIGNhcnJ5aW5nIDMyLWJpdCB2YWx1ZXMiIGluIE1hY3JvQXNzZW1ibGVyLmgpOyB3ZSBh bHJlYWR5IGhhdmUgdGhhdC4KLSAgICAgICAgIG1hc20uYXNzZXJ0Q2Fub25pY2FsSW50MzIocHRy KTsKLSsjICBlbGlmIGRlZmluZWQoSlNfQ09ERUdFTl9QUEM2NCkKLSsgICAgICAgIC8vIFRoZSBj YW5vbmljYWwgdmFsdWUgaXMgc2lnbi1leHRlbmRlZC4KLSsgICAgICAgIG1hc20uYXNfcmxkaWNs KHB0ciwgcHRyLCAwLCAzMik7IC8vICJjbHJsZGkiCi0gIyAgZWxzZQotICAgICAgICAgTU9aX0NS QVNIKCJQbGF0Zm9ybSBjb2RlIG5lZWRlZCBoZXJlIik7Ci0gIyAgZW5kaWYKLSAKLSAgICAgICAg IC8vIEFueSBTcGVjdHJlIG1pdGlnYXRpb24gd2lsbCBhcHBlYXIgdG8gdXBkYXRlIHRoZSBwdHI2 NCByZWdpc3Rlci4KLSAgICAgICAgIG1hc20ud2FzbUJvdW5kc0NoZWNrNjQoCi0gICAgICAgICAg ICAgQXNzZW1ibGVyOjpCZWxvdywgcHRyNjQsCi0gICAgICAgICAgICAgQWRkcmVzcyh0bHMsIG9m ZnNldG9mKFRsc0RhdGEsIGJvdW5kc0NoZWNrTGltaXQpKSwgJm9rKTsKLSAKLSAgICAgICAgIC8v IFJlc3RvcmUgdGhlIHZhbHVlIHRvIHRoZSBjYW5vbmljYWwgZm9ybSBmb3IgYSAzMi1iaXQgdmFs dWUgaW4gYQotICAgICAgICAgLy8gNjQtYml0IHJlZ2lzdGVyIGFuZC9vciB0aGUgYXBwcm9wcmlh dGUgZm9ybSBmb3IgZnVydGhlciB1c2UgaW4gdGhlCi0gICAgICAgICAvLyBpbmRleGluZyBpbnN0 cnVjdGlvbi4KLSAjICBpZiBkZWZpbmVkKEpTX0NPREVHRU5fWDY0KSB8fCBkZWZpbmVkKEpTX0NP REVHRU5fQVJNNjQpCi0gICAgICAgICAvLyBUaGUgY2Fub25pY2FsIHZhbHVlIGlzIHplcm8tZXh0 ZW5kZWQ7IHdlIGFscmVhZHkgaGF2ZSB0aGF0LgotKyMgIGVsaWYgZGVmaW5lZChKU19DT0RFR0VO X1BQQzY0KQotKyAgICAgICAgLy8gTGVhdmUgaXQgemVyby1leHRlbmRlZC4KLSAjICBlbHNlCi0g ICAgICAgICBNT1pfQ1JBU0goIlBsYXRmb3JtIGNvZGUgbmVlZGVkIGhlcmUiKTsKLSAjICBlbmRp ZgotICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBtYXNtLndhc21Cb3VuZHNDaGVjazMyKAotICAg ICAgICAgICAgIEFzc2VtYmxlcjo6QmVsb3csIHB0ciwKLSAgICAgICAgICAgICBBZGRyZXNzKHRs cywgb2Zmc2V0b2YoVGxzRGF0YSwgYm91bmRzQ2hlY2tMaW1pdCkpLCAmb2spOwotICAgICAgIH0K LUBAIC02OTAzLDE3ICs2OTUzLDE3IEBAIGNsYXNzIEJhc2VDb21waWxlciBmaW5hbCA6IHB1Ymxp YyBCYXNlQ29tcGlsZXJJbnRlcmZhY2UgewotICNlbmRpZgotICAgICAgIG1hc20ud2FzbVRyYXAo VHJhcDo6T3V0T2ZCb3VuZHMsIGJ5dGVjb2RlT2Zmc2V0KCkpOwotICAgICAgIG1hc20uYmluZCgm b2spOwotICAgICB9Ci0gICB9Ci0gCi0gI2lmIGRlZmluZWQoSlNfQ09ERUdFTl9YNjQpIHx8IGRl ZmluZWQoSlNfQ09ERUdFTl9BUk0pIHx8ICAgICAgXAotICAgICBkZWZpbmVkKEpTX0NPREVHRU5f QVJNNjQpIHx8IGRlZmluZWQoSlNfQ09ERUdFTl9NSVBTMzIpIHx8IFwKLS0gICAgZGVmaW5lZChK U19DT0RFR0VOX01JUFM2NCkKLSsgICAgZGVmaW5lZChKU19DT0RFR0VOX01JUFM2NCkgfHwgZGVm aW5lZChKU19DT0RFR0VOX1BQQzY0KQotICAgQmFzZUluZGV4IHByZXBhcmVBdG9taWNNZW1vcnlB Y2Nlc3MoTWVtb3J5QWNjZXNzRGVzYyogYWNjZXNzLAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgQWNjZXNzQ2hlY2sqIGNoZWNrLCBSZWdJMzIgdGxzLAotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVnSTMyIHB0cikgewotICAgICBNT1pfQVNT RVJUKG5lZWRUbHNGb3JBY2Nlc3MoKmNoZWNrKSA9PSB0bHMuaXNWYWxpZCgpKTsKLSAgICAgcHJl cGFyZU1lbW9yeUFjY2VzcyhhY2Nlc3MsIGNoZWNrLCB0bHMsIHB0cik7Ci0gICAgIHJldHVybiBC YXNlSW5kZXgoSGVhcFJlZywgcHRyLCBUaW1lc09uZSwgYWNjZXNzLT5vZmZzZXQoKSk7Ci0gICB9 Ci0gI2VsaWYgZGVmaW5lZChKU19DT0RFR0VOX1g4NikKLUBAIC03MDAxLDE3ICs3MDUxLDE5IEBA IGNsYXNzIEJhc2VDb21waWxlciBmaW5hbCA6IHB1YmxpYyBCYXNlQ29tcGlsZXJJbnRlcmZhY2Ug ewotICAgICBpZiAoZGVzdC50YWcgPT0gQW55UmVnOjpJNjQpIHsKLSAgICAgICBNT1pfQVNTRVJU KGRlc3QuaTY0KCkgPT0gc3BlY2lmaWNfLmFiaVJldHVyblJlZ0k2NCk7Ci0gICAgICAgbWFzbS53 YXNtTG9hZEk2NCgqYWNjZXNzLCBzcmNBZGRyLCBkZXN0Lmk2NCgpKTsKLSAgICAgfSBlbHNlIHsK LSAgICAgICAvLyBGb3IgOCBiaXQgbG9hZHMsIHRoaXMgd2lsbCBnZW5lcmF0ZSBtb3ZzYmwgb3Ig bW92emJsLCBzbwotICAgICAgIC8vIHRoZXJlJ3Mgbm8gY29uc3RyYWludCBvbiB3aGF0IHRoZSBv dXRwdXQgcmVnaXN0ZXIgbWF5IGJlLgotICAgICAgIG1hc20ud2FzbUxvYWQoKmFjY2Vzcywgc3Jj QWRkciwgZGVzdC5hbnkoKSk7Ci0gICAgIH0KLS0jZWxpZiBkZWZpbmVkKEpTX0NPREVHRU5fTUlQ UzMyKSB8fCBkZWZpbmVkKEpTX0NPREVHRU5fTUlQUzY0KQotKyNlbGlmIGRlZmluZWQoSlNfQ09E RUdFTl9NSVBTMzIpIHx8IGRlZmluZWQoSlNfQ09ERUdFTl9NSVBTNjQpIHx8IFwKLSsgICAgICBk ZWZpbmVkKEpTX0NPREVHRU5fUFBDNjQpCi0rLy8gWFhYOiBXZSBkb24ndCByZWFsbHkgbmVlZCB0 aGlzIGFueW1vcmUKLSAgICAgaWYgKElzVW5hbGlnbmVkKCphY2Nlc3MpKSB7Ci0gICAgICAgc3dp dGNoIChkZXN0LnRhZykgewotICAgICAgICAgY2FzZSBBbnlSZWc6Okk2NDoKLSAgICAgICAgICAg bWFzbS53YXNtVW5hbGlnbmVkTG9hZEk2NCgqYWNjZXNzLCBIZWFwUmVnLCBwdHIsIHB0ciwgZGVz dC5pNjQoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZW1wMSk7Ci0g ICAgICAgICAgIGJyZWFrOwotICAgICAgICAgY2FzZSBBbnlSZWc6OkYzMjoKLSAgICAgICAgICAg bWFzbS53YXNtVW5hbGlnbmVkTG9hZEZQKCphY2Nlc3MsIEhlYXBSZWcsIHB0ciwgcHRyLCBkZXN0 LmYzMigpLAotQEAgLTcxMDIsMTcgKzcxNTQsMTkgQEAgY2xhc3MgQmFzZUNvbXBpbGVyIGZpbmFs IDogcHVibGljIEJhc2VDb21waWxlckludGVyZmFjZSB7Ci0gICAgIE1PWl9BU1NFUlQodGVtcC5p c0ludmFsaWQoKSk7Ci0gICAgIGlmIChhY2Nlc3MtPnR5cGUoKSA9PSBTY2FsYXI6OkludDY0KSB7 Ci0gICAgICAgbWFzbS53YXNtU3RvcmVJNjQoKmFjY2Vzcywgc3JjLmk2NCgpLCBIZWFwUmVnLCBw dHIsIHB0cik7Ci0gICAgIH0gZWxzZSBpZiAoc3JjLnRhZyA9PSBBbnlSZWc6Okk2NCkgewotICAg ICAgIG1hc20ud2FzbVN0b3JlKCphY2Nlc3MsIEFueVJlZ2lzdGVyKHNyYy5pNjQoKS5sb3cpLCBI ZWFwUmVnLCBwdHIsIHB0cik7Ci0gICAgIH0gZWxzZSB7Ci0gICAgICAgbWFzbS53YXNtU3RvcmUo KmFjY2Vzcywgc3JjLmFueSgpLCBIZWFwUmVnLCBwdHIsIHB0cik7Ci0gICAgIH0KLS0jZWxpZiBk ZWZpbmVkKEpTX0NPREVHRU5fTUlQUzMyKSB8fCBkZWZpbmVkKEpTX0NPREVHRU5fTUlQUzY0KQot KyNlbGlmIGRlZmluZWQoSlNfQ09ERUdFTl9NSVBTMzIpIHx8IGRlZmluZWQoSlNfQ09ERUdFTl9N SVBTNjQpIHx8IFwKLSsgICAgICBkZWZpbmVkKEpTX0NPREVHRU5fUFBDNjQpCi0rLy8gWFhYOiBX ZSBkb24ndCByZWFsbHkgbmVlZCB0aGlzIGFueW1vcmUKLSAgICAgaWYgKElzVW5hbGlnbmVkKCph Y2Nlc3MpKSB7Ci0gICAgICAgc3dpdGNoIChzcmMudGFnKSB7Ci0gICAgICAgICBjYXNlIEFueVJl Zzo6STY0OgotICAgICAgICAgICBtYXNtLndhc21VbmFsaWduZWRTdG9yZUk2NCgqYWNjZXNzLCBz cmMuaTY0KCksIEhlYXBSZWcsIHB0ciwgcHRyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB0ZW1wKTsKLSAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICBjYXNlIEFueVJl Zzo6RjMyOgotICAgICAgICAgICBtYXNtLndhc21VbmFsaWduZWRTdG9yZUZQKCphY2Nlc3MsIHNy Yy5mMzIoKSwgSGVhcFJlZywgcHRyLCBwdHIsCi1AQCAtNzE2MCwxNyArNzIxNCwxOCBAQCBjbGFz cyBCYXNlQ29tcGlsZXIgZmluYWwgOiBwdWJsaWMgQmFzZUNvbXBpbGVySW50ZXJmYWNlIHsKLSAg ICAgfQotICAgICB2b2lkIG1heWJlRnJlZShCYXNlQ29tcGlsZXIqIGJjKSB7Ci0gICAgICAgZm9y IChzaXplX3QgaSA9IDA7IGkgPCBDb3VudDsgKytpKSB7Ci0gICAgICAgICBiYy0+bWF5YmVGcmVl KHRoaXMtPm9wZXJhdG9yW10oaSkpOwotICAgICAgIH0KLSAgICAgfQotICAgfTsKLSAKLS0jaWYg ZGVmaW5lZChKU19DT0RFR0VOX01JUFMzMikgfHwgZGVmaW5lZChKU19DT0RFR0VOX01JUFM2NCkK LSsjaWYgZGVmaW5lZChKU19DT0RFR0VOX01JUFMzMikgfHwgZGVmaW5lZChKU19DT0RFR0VOX01J UFM2NCkgfHwgXAotKyAgICBkZWZpbmVkKEpTX0NPREVHRU5fUFBDNjQpCi0gICB1c2luZyBBdG9t aWNSTVczMlRlbXBzID0gQXRvbWljMzJUZW1wczwzPjsKLSAjZWxzZQotICAgdXNpbmcgQXRvbWlj Uk1XMzJUZW1wcyA9IEF0b21pYzMyVGVtcHM8MT47Ci0gI2VuZGlmCi0gCi0gICB0ZW1wbGF0ZSA8 dHlwZW5hbWUgVD4KLSAgIHZvaWQgYXRvbWljUk1XMzIoY29uc3QgTWVtb3J5QWNjZXNzRGVzYyYg YWNjZXNzLCBUIHNyY0FkZHIsIEF0b21pY09wIG9wLAotICAgICAgICAgICAgICAgICAgICBSZWdJ MzIgcnYsIFJlZ0kzMiByZCwgY29uc3QgQXRvbWljUk1XMzJUZW1wcyYgdGVtcHMpIHsKLUBAIC03 MTg3LDE3ICs3MjQyLDE4IEBAIGNsYXNzIEJhc2VDb21waWxlciBmaW5hbCA6IHB1YmxpYyBCYXNl Q29tcGlsZXJJbnRlcmZhY2UgewotICAgICAgICAgfQotICAgICAgICAgbWFzbS53YXNtQXRvbWlj RmV0Y2hPcChhY2Nlc3MsIG9wLCBydiwgc3JjQWRkciwgdGVtcCwgcmQpOwotICAgICAgICAgYnJl YWs7Ci0gICAgICAgfQotICNlbmRpZgotICAgICAgIGNhc2UgU2NhbGFyOjpVaW50MTY6Ci0gICAg ICAgY2FzZSBTY2FsYXI6OkludDMyOgotICAgICAgIGNhc2UgU2NhbGFyOjpVaW50MzI6Ci0tI2lm IGRlZmluZWQoSlNfQ09ERUdFTl9NSVBTMzIpIHx8IGRlZmluZWQoSlNfQ09ERUdFTl9NSVBTNjQp Ci0rI2lmIGRlZmluZWQoSlNfQ09ERUdFTl9NSVBTMzIpIHx8IGRlZmluZWQoSlNfQ09ERUdFTl9N SVBTNjQpIHx8IFwKLSsgICAgZGVmaW5lZChKU19DT0RFR0VOX1BQQzY0KQotICAgICAgICAgbWFz bS53YXNtQXRvbWljRmV0Y2hPcChhY2Nlc3MsIG9wLCBydiwgc3JjQWRkciwgdGVtcHNbMF0sIHRl bXBzWzFdLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZW1wc1syXSwgcmQpOwot ICNlbHNlCi0gICAgICAgICBtYXNtLndhc21BdG9taWNGZXRjaE9wKGFjY2Vzcywgb3AsIHJ2LCBz cmNBZGRyLCB0ZW1wc1swXSwgcmQpOwotICNlbmRpZgotICAgICAgICAgYnJlYWs7Ci0gICAgICAg ZGVmYXVsdDogewotICAgICAgICAgTU9aX0NSQVNIKCJCYWQgdHlwZSBmb3IgYXRvbWljIG9wZXJh dGlvbiIpOwotQEAgLTcyMDgsMTcgKzcyNjQsMTggQEAgY2xhc3MgQmFzZUNvbXBpbGVyIGZpbmFs IDogcHVibGljIEJhc2VDb21waWxlckludGVyZmFjZSB7Ci0gICAvLyBPbiB4ODYsIFYgaXMgQWRk cmVzcy4gIE9uIG90aGVyIHBsYXRmb3JtcywgaXQgaXMgUmVnaXN0ZXI2NC4KLSAgIC8vIFQgaXMg QmFzZUluZGV4IG9yIEFkZHJlc3MuCi0gICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVCwgdHlwZW5hbWUg Vj4KLSAgIHZvaWQgYXRvbWljUk1XNjQoY29uc3QgTWVtb3J5QWNjZXNzRGVzYyYgYWNjZXNzLCBj b25zdCBUJiBzcmNBZGRyLAotICAgICAgICAgICAgICAgICAgICBBdG9taWNPcCBvcCwgViB2YWx1 ZSwgUmVnaXN0ZXI2NCB0ZW1wLCBSZWdpc3RlcjY0IHJkKSB7Ci0gICAgIG1hc20ud2FzbUF0b21p Y0ZldGNoT3A2NChhY2Nlc3MsIG9wLCB2YWx1ZSwgc3JjQWRkciwgdGVtcCwgcmQpOwotICAgfQot IAotLSNpZiBkZWZpbmVkKEpTX0NPREVHRU5fTUlQUzMyKSB8fCBkZWZpbmVkKEpTX0NPREVHRU5f TUlQUzY0KQotKyNpZiBkZWZpbmVkKEpTX0NPREVHRU5fTUlQUzMyKSB8fCBkZWZpbmVkKEpTX0NP REVHRU5fTUlQUzY0KSB8fCBcCi0rICAgIGRlZmluZWQoSlNfQ09ERUdFTl9QUEM2NCkKLSAgIHVz aW5nIEF0b21pY0NtcFhjaGczMlRlbXBzID0gQXRvbWljMzJUZW1wczwzPjsKLSAjZWxzZQotICAg dXNpbmcgQXRvbWljQ21wWGNoZzMyVGVtcHMgPSBBdG9taWMzMlRlbXBzPDA+OwotICNlbmRpZgot IAotICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci0gICB2b2lkIGF0b21pY0NtcFhjaGczMihjb25z dCBNZW1vcnlBY2Nlc3NEZXNjJiBhY2Nlc3MsIFQgc3JjQWRkciwKLSAgICAgICAgICAgICAgICAg ICAgICAgIFJlZ0kzMiByZXhwZWN0LCBSZWdJMzIgcm5ldywgUmVnSTMyIHJkLAotQEAgLTcyMzYs MjkgKzcyOTMsMzEgQEAgY2xhc3MgQmFzZUNvbXBpbGVyIGZpbmFsIDogcHVibGljIEJhc2VDb21w aWxlckludGVyZmFjZSB7Ci0gICAgICAgICB9Ci0gICAgICAgICBtYXNtLndhc21Db21wYXJlRXhj aGFuZ2UoYWNjZXNzLCBzcmNBZGRyLCByZXhwZWN0LCBybmV3LCByZCk7Ci0gICAgICAgICBicmVh azsKLSAgICAgICB9Ci0gI2VuZGlmCi0gICAgICAgY2FzZSBTY2FsYXI6OlVpbnQxNjoKLSAgICAg ICBjYXNlIFNjYWxhcjo6SW50MzI6Ci0gICAgICAgY2FzZSBTY2FsYXI6OlVpbnQzMjoKLS0jaWYg ZGVmaW5lZChKU19DT0RFR0VOX01JUFMzMikgfHwgZGVmaW5lZChKU19DT0RFR0VOX01JUFM2NCkK LSsjaWYgZGVmaW5lZChKU19DT0RFR0VOX01JUFMzMikgfHwgZGVmaW5lZChKU19DT0RFR0VOX01J UFM2NCkgfHwgXAotKyAgICBkZWZpbmVkKEpTX0NPREVHRU5fUFBDNjQpCi0gICAgICAgICBtYXNt Lndhc21Db21wYXJlRXhjaGFuZ2UoYWNjZXNzLCBzcmNBZGRyLCByZXhwZWN0LCBybmV3LCB0ZW1w c1swXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZW1wc1sxXSwgdGVtcHNb Ml0sIHJkKTsKLSAjZWxzZQotICAgICAgICAgbWFzbS53YXNtQ29tcGFyZUV4Y2hhbmdlKGFjY2Vz cywgc3JjQWRkciwgcmV4cGVjdCwgcm5ldywgcmQpOwotICNlbmRpZgotICAgICAgICAgYnJlYWs7 Ci0gICAgICAgZGVmYXVsdDoKLSAgICAgICAgIE1PWl9DUkFTSCgiQmFkIHR5cGUgZm9yIGF0b21p YyBvcGVyYXRpb24iKTsKLSAgICAgfQotICAgfQotIAotLSNpZiBkZWZpbmVkKEpTX0NPREVHRU5f TUlQUzMyKSB8fCBkZWZpbmVkKEpTX0NPREVHRU5fTUlQUzY0KQotKyNpZiBkZWZpbmVkKEpTX0NP REVHRU5fTUlQUzMyKSB8fCBkZWZpbmVkKEpTX0NPREVHRU5fTUlQUzY0KSB8fCBcCi0rICAgIGRl ZmluZWQoSlNfQ09ERUdFTl9QUEM2NCkKLSAgIHVzaW5nIEF0b21pY1hjaGczMlRlbXBzID0gQXRv bWljMzJUZW1wczwzPjsKLSAjZWxzZQotICAgdXNpbmcgQXRvbWljWGNoZzMyVGVtcHMgPSBBdG9t aWMzMlRlbXBzPDA+OwotICNlbmRpZgotIAotICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci0gICB2 b2lkIGF0b21pY1hjaGczMihjb25zdCBNZW1vcnlBY2Nlc3NEZXNjJiBhY2Nlc3MsIFQgc3JjQWRk ciwgUmVnSTMyIHJ2LAotICAgICAgICAgICAgICAgICAgICAgUmVnSTMyIHJkLCBjb25zdCBBdG9t aWNYY2hnMzJUZW1wcyYgdGVtcHMpIHsKLUBAIC03Mjc1LDE3ICs3MzM0LDE4IEBAIGNsYXNzIEJh c2VDb21waWxlciBmaW5hbCA6IHB1YmxpYyBCYXNlQ29tcGlsZXJJbnRlcmZhY2UgewotICAgICAg ICAgICBtYXNtLndhc21BdG9taWNFeGNoYW5nZShhY2Nlc3MsIHNyY0FkZHIsIHJ2LCByZCk7Ci0g ICAgICAgICB9Ci0gICAgICAgICBicmVhazsKLSAgICAgICB9Ci0gI2VuZGlmCi0gICAgICAgY2Fz ZSBTY2FsYXI6OlVpbnQxNjoKLSAgICAgICBjYXNlIFNjYWxhcjo6SW50MzI6Ci0gICAgICAgY2Fz ZSBTY2FsYXI6OlVpbnQzMjoKLS0jaWYgZGVmaW5lZChKU19DT0RFR0VOX01JUFMzMikgfHwgZGVm aW5lZChKU19DT0RFR0VOX01JUFM2NCkKLSsjaWYgZGVmaW5lZChKU19DT0RFR0VOX01JUFMzMikg fHwgZGVmaW5lZChKU19DT0RFR0VOX01JUFM2NCkgfHwgXAotKyAgICBkZWZpbmVkKEpTX0NPREVH RU5fUFBDNjQpCi0gICAgICAgICBtYXNtLndhc21BdG9taWNFeGNoYW5nZShhY2Nlc3MsIHNyY0Fk ZHIsIHJ2LCB0ZW1wc1swXSwgdGVtcHNbMV0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB0ZW1wc1syXSwgcmQpOwotICNlbHNlCi0gICAgICAgICBtYXNtLndhc21BdG9taWNFeGNo YW5nZShhY2Nlc3MsIHNyY0FkZHIsIHJ2LCByZCk7Ci0gI2VuZGlmCi0gICAgICAgICBicmVhazsK LSAgICAgICBkZWZhdWx0OgotICAgICAgICAgTU9aX0NSQVNIKCJCYWQgdHlwZSBmb3IgYXRvbWlj IG9wZXJhdGlvbiIpOwotQEAgLTczNDIsMTYgKzc0MDIsMTggQEAgY2xhc3MgQmFzZUNvbXBpbGVy IGZpbmFsIDogcHVibGljIEJhc2VDb21waWxlckludGVyZmFjZSB7Ci0gI2VsaWYgZGVmaW5lZChK U19DT0RFR0VOX01JUFMzMikKLSAgICAgcG9wMnhJNjQocjAsIHIxKTsKLSAgICAgKnRlbXAgPSBu ZWVkSTMyKCk7Ci0gI2VsaWYgZGVmaW5lZChKU19DT0RFR0VOX0FSTSkKLSAgICAgcG9wMnhJNjQo cjAsIHIxKTsKLSAgICAgKnRlbXAgPSBuZWVkSTMyKCk7Ci0gI2VsaWYgZGVmaW5lZChKU19DT0RF R0VOX0FSTTY0KQotICAgICBwb3AyeEk2NChyMCwgcjEpOwotKyNlbGlmIGRlZmluZWQoSlNfQ09E RUdFTl9QUEM2NCkKLSsgICAgcG9wMnhJNjQocjAsIHIxKTsKLSAjZWxzZQotICAgICBNT1pfQ1JB U0goIkJhc2VDb21waWxlciBwb3J0aW5nIGludGVyZmFjZTogcG9wMnhJNjRGb3JNdWxJNjQiKTsK LSAjZW5kaWYKLSAgIH0KLSAKLSAgIHZvaWQgcG9wMnhJNjRGb3JEaXZJNjQoUmVnSTY0KiByMCwg UmVnSTY0KiByMSwgUmVnSTY0KiByZXNlcnZlZCkgewotICNpZiBkZWZpbmVkKEpTX0NPREVHRU5f WDY0KQotICAgICAvLyByMCBtdXN0IGJlIHJheCwgYW5kIHJkeCB3aWxsIGJlIGNsb2JiZXJlZC4K LUBAIC03NTI5LDE3ICs3NTkxLDE4IEBAIGNsYXNzIEJhc2VDb21waWxlciBmaW5hbCA6IHB1Ymxp YyBCYXNlQ29tcGlsZXJJbnRlcmZhY2UgewotICAgICAgICAgcmV4cGVjdCA9IGJjLT5wb3BJMzIo KTsKLSAgICAgICB9Ci0gICAgICAgc2V0UmQoYmMtPm5lZWRJMzIoKSk7Ci0gICAgIH0KLSAgICAg flBvcEF0b21pY0NtcFhjaGczMlJlZ3MoKSB7Ci0gICAgICAgYmMtPmZyZWVJMzIocm5ldyk7Ci0g ICAgICAgYmMtPmZyZWVJMzIocmV4cGVjdCk7Ci0gICAgIH0KLS0jZWxpZiBkZWZpbmVkKEpTX0NP REVHRU5fTUlQUzMyKSB8fCBkZWZpbmVkKEpTX0NPREVHRU5fTUlQUzY0KQotKyNlbGlmIGRlZmlu ZWQoSlNfQ09ERUdFTl9NSVBTMzIpIHx8IGRlZmluZWQoSlNfQ09ERUdFTl9NSVBTNjQpIHx8IFwK LSsgICAgICBkZWZpbmVkKEpTX0NPREVHRU5fUFBDNjQpCi0gICAgIGV4cGxpY2l0IFBvcEF0b21p Y0NtcFhjaGczMlJlZ3MoQmFzZUNvbXBpbGVyKiBiYywgVmFsVHlwZSB0eXBlLAotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNjYWxhcjo6VHlwZSB2aWV3VHlwZSkKLSAgICAg ICAgIDogQmFzZShiYykgewotICAgICAgIGlmICh0eXBlID09IFZhbFR5cGU6Okk2NCkgewotICAg ICAgICAgcm5ldyA9IGJjLT5wb3BJNjRUb0kzMigpOwotICAgICAgICAgcmV4cGVjdCA9IGJjLT5w b3BJNjRUb0kzMigpOwotICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBybmV3ID0gYmMtPnBvcEkz MigpOwotQEAgLTc2MDYsMTcgKzc2NjksMTcgQEAgY2xhc3MgQmFzZUNvbXBpbGVyIGZpbmFsIDog cHVibGljIEJhc2VDb21waWxlckludGVyZmFjZSB7Ci0gICAgICAgcmV4cGVjdCA9IGJjLT5wb3BJ NjQoKTsKLSAgICAgICBzZXRSZChiYy0+bmVlZEk2NFBhaXIoKSk7Ci0gICAgIH0KLSAgICAgflBv cEF0b21pY0NtcFhjaGc2NFJlZ3MoKSB7Ci0gICAgICAgYmMtPmZyZWVJNjQocmV4cGVjdCk7Ci0g ICAgICAgYmMtPmZyZWVJNjQocm5ldyk7Ci0gICAgIH0KLSAjZWxpZiBkZWZpbmVkKEpTX0NPREVH RU5fQVJNNjQpIHx8IGRlZmluZWQoSlNfQ09ERUdFTl9NSVBTMzIpIHx8IFwKLS0gICAgZGVmaW5l ZChKU19DT0RFR0VOX01JUFM2NCkKLSsgICAgZGVmaW5lZChKU19DT0RFR0VOX01JUFM2NCkgfHwg ZGVmaW5lZChKU19DT0RFR0VOX1BQQzY0KQotICAgICBleHBsaWNpdCBQb3BBdG9taWNDbXBYY2hn NjRSZWdzKEJhc2VDb21waWxlciogYmMpIDogQmFzZShiYykgewotICAgICAgIHJuZXcgPSBiYy0+ cG9wSTY0KCk7Ci0gICAgICAgcmV4cGVjdCA9IGJjLT5wb3BJNjQoKTsKLSAgICAgICBzZXRSZChi Yy0+bmVlZEk2NCgpKTsKLSAgICAgfQotICAgICB+UG9wQXRvbWljQ21wWGNoZzY0UmVncygpIHsK LSAgICAgICBiYy0+ZnJlZUk2NChyZXhwZWN0KTsKLSAgICAgICBiYy0+ZnJlZUk2NChybmV3KTsK LUBAIC03NjU4LDE3ICs3NzIxLDE4IEBAIGNsYXNzIEJhc2VDb21waWxlciBmaW5hbCA6IHB1Ymxp YyBCYXNlQ29tcGlsZXJJbnRlcmZhY2UgewotICAgICAgIGJjLT5uZWVkSTY0KGJjLT5zcGVjaWZp Y18uZWR4X2VheCk7Ci0gICAgICAgc2V0UmQoYmMtPnNwZWNpZmljXy5lZHhfZWF4KTsKLSAgICAg fQotICAgICB+UG9wQXRvbWljTG9hZDY0UmVncygpIHsgYmMtPmZyZWVJMzIoYmMtPnNwZWNpZmlj Xy5lY3gpOyB9Ci0gIyAgZWxpZiBkZWZpbmVkKEpTX0NPREVHRU5fQVJNKQotICAgICBleHBsaWNp dCBQb3BBdG9taWNMb2FkNjRSZWdzKEJhc2VDb21waWxlciogYmMpIDogQmFzZShiYykgewotICAg ICAgIHNldFJkKGJjLT5uZWVkSTY0UGFpcigpKTsKLSAgICAgfQotLSMgIGVsaWYgZGVmaW5lZChK U19DT0RFR0VOX01JUFMzMikgfHwgZGVmaW5lZChKU19DT0RFR0VOX01JUFM2NCkKLSsjICBlbGlm IGRlZmluZWQoSlNfQ09ERUdFTl9NSVBTMzIpIHx8IGRlZmluZWQoSlNfQ09ERUdFTl9NSVBTNjQp IHx8IFwKLSsgICAgICAgIGRlZmluZWQoSlNfQ09ERUdFTl9QUEM2NCkKLSAgICAgZXhwbGljaXQg UG9wQXRvbWljTG9hZDY0UmVncyhCYXNlQ29tcGlsZXIqIGJjKSA6IEJhc2UoYmMpIHsKLSAgICAg ICBzZXRSZChiYy0+bmVlZEk2NCgpKTsKLSAgICAgfQotICMgIGVsc2UKLSAgICAgZXhwbGljaXQg UG9wQXRvbWljTG9hZDY0UmVncyhCYXNlQ29tcGlsZXIqIGJjKSA6IEJhc2UoYmMpIHsKLSAgICAg ICBNT1pfQ1JBU0goIkJhc2VDb21waWxlciBwb3J0aW5nIGludGVyZmFjZTogUG9wQXRvbWljTG9h ZDY0UmVncyIpOwotICAgICB9Ci0gIyAgZW5kaWYKLUBAIC03NzQ1LDE3ICs3ODA5LDE4IEBAIGNs YXNzIEJhc2VDb21waWxlciBmaW5hbCA6IHB1YmxpYyBCYXNlQ29tcGlsZXJJbnRlcmZhY2Ugewot ICAgICAgIHJ2ID0gdHlwZSA9PSBWYWxUeXBlOjpJNjQgPyBiYy0+cG9wSTY0VG9JMzIoKSA6IGJj LT5wb3BJMzIoKTsKLSAgICAgICB0ZW1wcy5hbGxvY2F0ZShiYyk7Ci0gICAgICAgc2V0UmQoYmMt Pm5lZWRJMzIoKSk7Ci0gICAgIH0KLSAgICAgflBvcEF0b21pY1JNVzMyUmVncygpIHsKLSAgICAg ICBiYy0+ZnJlZUkzMihydik7Ci0gICAgICAgdGVtcHMubWF5YmVGcmVlKGJjKTsKLSAgICAgfQot LSNlbGlmIGRlZmluZWQoSlNfQ09ERUdFTl9NSVBTMzIpIHx8IGRlZmluZWQoSlNfQ09ERUdFTl9N SVBTNjQpCi0rI2VsaWYgZGVmaW5lZChKU19DT0RFR0VOX01JUFMzMikgfHwgZGVmaW5lZChKU19D T0RFR0VOX01JUFM2NCkgfHwgXAotKyAgICAgIGRlZmluZWQoSlNfQ09ERUdFTl9QUEM2NCkKLSAg ICAgZXhwbGljaXQgUG9wQXRvbWljUk1XMzJSZWdzKEJhc2VDb21waWxlciogYmMsIFZhbFR5cGUg dHlwZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNjYWxhcjo6VHlwZSB2aWV3 VHlwZSwgQXRvbWljT3Agb3ApCi0gICAgICAgICA6IEJhc2UoYmMpIHsKLSAgICAgICBydiA9IHR5 cGUgPT0gVmFsVHlwZTo6STY0ID8gYmMtPnBvcEk2NFRvSTMyKCkgOiBiYy0+cG9wSTMyKCk7Ci0g ICAgICAgaWYgKFNjYWxhcjo6Ynl0ZVNpemUodmlld1R5cGUpIDwgNCkgewotICAgICAgICAgdGVt cHMuYWxsb2NhdGUoYmMpOwotICAgICAgIH0KLSAKLUBAIC03ODMzLDE3ICs3ODk4LDE3IEBAIGNs YXNzIEJhc2VDb21waWxlciBmaW5hbCA6IHB1YmxpYyBCYXNlQ29tcGlsZXJJbnRlcmZhY2Ugewot ICAgICAgIHRlbXAgPSBiYy0+bmVlZEk2NFBhaXIoKTsKLSAgICAgICBzZXRSZChiYy0+bmVlZEk2 NFBhaXIoKSk7Ci0gICAgIH0KLSAgICAgflBvcEF0b21pY1JNVzY0UmVncygpIHsKLSAgICAgICBi Yy0+ZnJlZUk2NChydik7Ci0gICAgICAgYmMtPmZyZWVJNjQodGVtcCk7Ci0gICAgIH0KLSAjZWxp ZiBkZWZpbmVkKEpTX0NPREVHRU5fQVJNNjQpIHx8IGRlZmluZWQoSlNfQ09ERUdFTl9NSVBTMzIp IHx8IFwKLS0gICAgZGVmaW5lZChKU19DT0RFR0VOX01JUFM2NCkKLSsgICAgZGVmaW5lZChKU19D T0RFR0VOX01JUFM2NCkgfHwgZGVmaW5lZChKU19DT0RFR0VOX1BQQzY0KQotICAgICBleHBsaWNp dCBQb3BBdG9taWNSTVc2NFJlZ3MoQmFzZUNvbXBpbGVyKiBiYywgQXRvbWljT3ApIDogQmFzZShi YykgewotICAgICAgIHJ2ID0gYmMtPnBvcEk2NCgpOwotICAgICAgIHRlbXAgPSBiYy0+bmVlZEk2 NCgpOwotICAgICAgIHNldFJkKGJjLT5uZWVkSTY0KCkpOwotICAgICB9Ci0gICAgIH5Qb3BBdG9t aWNSTVc2NFJlZ3MoKSB7Ci0gICAgICAgYmMtPmZyZWVJNjQocnYpOwotICAgICAgIGJjLT5mcmVl STY0KHRlbXApOwotQEAgLTc4ODgsMTcgKzc5NTMsMTggQEAgY2xhc3MgQmFzZUNvbXBpbGVyIGZp bmFsIDogcHVibGljIEJhc2VDb21waWxlckludGVyZmFjZSB7Ci0gI2VsaWYgZGVmaW5lZChKU19D T0RFR0VOX0FSTSkgfHwgZGVmaW5lZChKU19DT0RFR0VOX0FSTTY0KQotICAgICBleHBsaWNpdCBQ b3BBdG9taWNYY2hnMzJSZWdzKEJhc2VDb21waWxlciogYmMsIFZhbFR5cGUgdHlwZSwKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTY2FsYXI6OlR5cGUgdmlld1R5cGUpCi0gICAg ICAgICA6IEJhc2UoYmMpIHsKLSAgICAgICBydiA9ICh0eXBlID09IFZhbFR5cGU6Okk2NCkgPyBi Yy0+cG9wSTY0VG9JMzIoKSA6IGJjLT5wb3BJMzIoKTsKLSAgICAgICBzZXRSZChiYy0+bmVlZEkz MigpKTsKLSAgICAgfQotICAgICB+UG9wQXRvbWljWGNoZzMyUmVncygpIHsgYmMtPmZyZWVJMzIo cnYpOyB9Ci0tI2VsaWYgZGVmaW5lZChKU19DT0RFR0VOX01JUFMzMikgfHwgZGVmaW5lZChKU19D T0RFR0VOX01JUFM2NCkKLSsjZWxpZiBkZWZpbmVkKEpTX0NPREVHRU5fTUlQUzMyKSB8fCBkZWZp bmVkKEpTX0NPREVHRU5fTUlQUzY0KSB8fCBcCi0rICAgICAgZGVmaW5lZChKU19DT0RFR0VOX1BQ QzY0KQotICAgICBleHBsaWNpdCBQb3BBdG9taWNYY2hnMzJSZWdzKEJhc2VDb21waWxlciogYmMs IFZhbFR5cGUgdHlwZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTY2FsYXI6 OlR5cGUgdmlld1R5cGUpCi0gICAgICAgICA6IEJhc2UoYmMpIHsKLSAgICAgICBydiA9ICh0eXBl ID09IFZhbFR5cGU6Okk2NCkgPyBiYy0+cG9wSTY0VG9JMzIoKSA6IGJjLT5wb3BJMzIoKTsKLSAg ICAgICBpZiAoU2NhbGFyOjpieXRlU2l6ZSh2aWV3VHlwZSkgPCA0KSB7Ci0gICAgICAgICB0ZW1w cy5hbGxvY2F0ZShiYyk7Ci0gICAgICAgfQotICAgICAgIHNldFJkKGJjLT5uZWVkSTMyKCkpOwot QEAgLTc5NTQsMTcgKzgwMjAsMTggQEAgY2xhc3MgQmFzZUNvbXBpbGVyIGZpbmFsIDogcHVibGlj IEJhc2VDb21waWxlckludGVyZmFjZSB7Ci0gICAgIH5Qb3BBdG9taWNYY2hnNjRSZWdzKCkgeyBi Yy0+ZnJlZUk2NChydik7IH0KLSAjZWxpZiBkZWZpbmVkKEpTX0NPREVHRU5fQVJNKQotICAgICAv LyBCb3RoIHJ2IGFuZCByZCBtdXN0IGJlIG9kZC9ldmVuIHBhaXJzLgotICAgICBleHBsaWNpdCBQ b3BBdG9taWNYY2hnNjRSZWdzKEJhc2VDb21waWxlciogYmMpIDogQmFzZShiYykgewotICAgICAg IHJ2ID0gYmMtPnBvcEk2NFRvU3BlY2lmaWMoYmMtPm5lZWRJNjRQYWlyKCkpOwotICAgICAgIHNl dFJkKGJjLT5uZWVkSTY0UGFpcigpKTsKLSAgICAgfQotICAgICB+UG9wQXRvbWljWGNoZzY0UmVn cygpIHsgYmMtPmZyZWVJNjQocnYpOyB9Ci0tI2VsaWYgZGVmaW5lZChKU19DT0RFR0VOX01JUFMz MikgfHwgZGVmaW5lZChKU19DT0RFR0VOX01JUFM2NCkKLSsjZWxpZiBkZWZpbmVkKEpTX0NPREVH RU5fTUlQUzMyKSB8fCBkZWZpbmVkKEpTX0NPREVHRU5fTUlQUzY0KSB8fCBcCi0rICAgICAgZGVm aW5lZChKU19DT0RFR0VOX1BQQzY0KQotICAgICBleHBsaWNpdCBQb3BBdG9taWNYY2hnNjRSZWdz KEJhc2VDb21waWxlciogYmMpIDogQmFzZShiYykgewotICAgICAgIHJ2ID0gYmMtPnBvcEk2NFRv U3BlY2lmaWMoYmMtPm5lZWRJNjQoKSk7Ci0gICAgICAgc2V0UmQoYmMtPm5lZWRJNjQoKSk7Ci0g ICAgIH0KLSAgICAgflBvcEF0b21pY1hjaGc2NFJlZ3MoKSB7IGJjLT5mcmVlSTY0KHJ2KTsgfQot ICNlbHNlCi0gICAgIGV4cGxpY2l0IFBvcEF0b21pY1hjaGc2NFJlZ3MoQmFzZUNvbXBpbGVyKiBi YykgOiBCYXNlKGJjKSB7Ci0gICAgICAgTU9aX0NSQVNIKCJCYXNlQ29tcGlsZXIgcG9ydGluZyBp bnRlcmZhY2U6IHhjaGc2NCIpOwotQEAgLTg5NjgsMTYgKzkwMzUsMTggQEAgc3RhdGljIHZvaWQg Q3R6STMyKE1hY3JvQXNzZW1ibGVyJiBtYXNtLCBSZWdJMzIgcnNkKSB7Ci0gCi0gLy8gQ3VycmVu dGx5IGNvbW1vbiB0byBQb3BjbnRJMzIgYW5kIFBvcGNudEk2NAotIHN0YXRpYyBSZWdJMzIgUG9w Y250VGVtcChCYXNlQ29tcGlsZXImIGJjKSB7Ci0gI2lmIGRlZmluZWQoSlNfQ09ERUdFTl9YODYp IHx8IGRlZmluZWQoSlNfQ09ERUdFTl9YNjQpCi0gICByZXR1cm4gQXNzZW1ibGVyWDg2U2hhcmVk OjpIYXNQT1BDTlQoKSA/IFJlZ0kzMjo6SW52YWxpZCgpIDogYmMubmVlZEkzMigpOwotICNlbGlm IGRlZmluZWQoSlNfQ09ERUdFTl9BUk0pIHx8IGRlZmluZWQoSlNfQ09ERUdFTl9BUk02NCkgfHwg XAotICAgICBkZWZpbmVkKEpTX0NPREVHRU5fTUlQUzMyKSB8fCBkZWZpbmVkKEpTX0NPREVHRU5f TUlQUzY0KQotICAgcmV0dXJuIGJjLm5lZWRJMzIoKTsKLSsjZWxpZiBkZWZpbmVkKEpTX0NPREVH RU5fUFBDNjQpCi0rICByZXR1cm4gUmVnSTMyOjpJbnZhbGlkKCk7IC8vIFdlIHJvY2suCi0gI2Vs c2UKLSAgIE1PWl9DUkFTSCgiQmFzZUNvbXBpbGVyIHBsYXRmb3JtIGhvb2s6IFBvcGNudFRlbXAi KTsKLSAjZW5kaWYKLSB9Ci0gCi0gc3RhdGljIHZvaWQgUG9wY250STMyKEJhc2VDb21waWxlciYg YmMsIFJlZ0kzMiByc2QsIFJlZ0kzMiB0ZW1wKSB7Ci0gICBiYy5tYXNtLnBvcGNudDMyKHJzZCwg cnNkLCB0ZW1wKTsKLSB9Ci1AQCAtMTE5ODIsMTcgKzEyMDUxLDE3IEBAIFJlZ0kzMiBCYXNlQ29t cGlsZXI6OnBvcE1lbW9yeTMyQWNjZXNzKE1lbW9yeUFjY2Vzc0Rlc2MqIGFjY2VzcywKLSAgICAg YmNlQ2hlY2tMb2NhbChhY2Nlc3MsIGNoZWNrLCBsb2NhbCk7Ci0gICB9Ci0gCi0gICByZXR1cm4g cG9wSTMyKCk7Ci0gfQotIAotIHZvaWQgQmFzZUNvbXBpbGVyOjpwdXNoSGVhcEJhc2UoKSB7Ci0g I2lmIGRlZmluZWQoSlNfQ09ERUdFTl9YNjQpIHx8IGRlZmluZWQoSlNfQ09ERUdFTl9BUk02NCkg fHwgXAotLSAgICBkZWZpbmVkKEpTX0NPREVHRU5fTUlQUzY0KQotKyAgICBkZWZpbmVkKEpTX0NP REVHRU5fTUlQUzY0KSB8fCBkZWZpbmVkKEpTX0NPREVHRU5fUFBDNjQpCi0gICBSZWdJNjQgaGVh cEJhc2UgPSBuZWVkSTY0KCk7Ci0gICBtb3ZlSTY0KFJlZ0k2NChSZWdpc3RlcjY0KEhlYXBSZWcp KSwgaGVhcEJhc2UpOwotICAgcHVzaEk2NChoZWFwQmFzZSk7Ci0gI2VsaWYgZGVmaW5lZChKU19D T0RFR0VOX0FSTSkgfHwgZGVmaW5lZChKU19DT0RFR0VOX01JUFMzMikKLSAgIFJlZ0kzMiBoZWFw QmFzZSA9IG5lZWRJMzIoKTsKLSAgIG1vdmVJMzIoUmVnSTMyKEhlYXBSZWcpLCBoZWFwQmFzZSk7 Ci0gICBwdXNoSTMyKGhlYXBCYXNlKTsKLSAjZWxpZiBkZWZpbmVkKEpTX0NPREVHRU5fWDg2KQot QEAgLTE3MjQ0LDE3ICsxNzMxMywxOSBAQCBib29sIGpzOjp3YXNtOjpCYXNlbGluZVBsYXRmb3Jt U3VwcG9ydCgpIHsKLSAgIC8vIHRoZXkgYXJlIGRlZmluaXRlbHkgaW1wbGVtZW50ZWQgb24gdGhl IENvcnRleC1BNyBhbmQgQ29ydGV4LUExNQotICAgLy8gYW5kIG9uIGFsbCBBUk12OCBzeXN0ZW1z LgotICAgaWYgKCFIYXNJRElWKCkpIHsKLSAgICAgcmV0dXJuIGZhbHNlOwotICAgfQotICNlbmRp ZgotICNpZiBkZWZpbmVkKEpTX0NPREVHRU5fWDY0KSB8fCBkZWZpbmVkKEpTX0NPREVHRU5fWDg2 KSB8fCAgIFwKLSAgICAgZGVmaW5lZChKU19DT0RFR0VOX0FSTSkgfHwgZGVmaW5lZChKU19DT0RF R0VOX0FSTTY0KSB8fCBcCi0tICAgIGRlZmluZWQoSlNfQ09ERUdFTl9NSVBTMzIpIHx8IGRlZmlu ZWQoSlNfQ09ERUdFTl9NSVBTNjQpCi0rICAgIGRlZmluZWQoSlNfQ09ERUdFTl9NSVBTMzIpIHx8 IGRlZmluZWQoSlNfQ09ERUdFTl9NSVBTNjQpIHx8IFwKLSsgICAgZGVmaW5lZChKU19DT0RFR0VO X1BQQzY0KQotKyAgLy8gUFBDNjQgZ2F0ZXMgb24gb3RoZXIgcHJlcmVxdWlzaXRlcyBub3Qgc3Bl Y2lmaWVkIGhlcmUuCi0gICByZXR1cm4gdHJ1ZTsKLSAjZWxzZQotICAgcmV0dXJuIGZhbHNlOwot ICNlbmRpZgotIH0KLSAKLSBib29sIGpzOjp3YXNtOjpCYXNlbGluZUNvbXBpbGVGdW5jdGlvbnMo Y29uc3QgTW9kdWxlRW52aXJvbm1lbnQmIG1vZHVsZUVudiwKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgY29uc3QgQ29tcGlsZXJFbnZpcm9ubWVudCYgY29tcGlsZXJF bnYsCi1kaWZmIC0tZ2l0IGEvanMvc3JjL3dhc20vV2FzbUNvbXBpbGUuY3BwIGIvanMvc3JjL3dh c20vV2FzbUNvbXBpbGUuY3BwCi1pbmRleCAwZjQ1NmFhYWE1Li5mMDY5NGYxYjllIDEwMDY0NAot LS0tIGEvanMvc3JjL3dhc20vV2FzbUNvbXBpbGUuY3BwCi0rKysgYi9qcy9zcmMvd2FzbS9XYXNt Q29tcGlsZS5jcHAKLUBAIC00NSwxNiArNDUsMTcgQEAgdXNpbmcgbmFtZXNwYWNlIGpzOjp3YXNt OwotIHVpbnQzMl90IHdhc206Ok9ic2VydmVkQ1BVRmVhdHVyZXMoKSB7Ci0gICBlbnVtIEFyY2gg ewotICAgICBYODYgPSAweDEsCi0gICAgIFg2NCA9IDB4MiwKLSAgICAgQVJNID0gMHgzLAotICAg ICBNSVBTID0gMHg0LAotICAgICBNSVBTNjQgPSAweDUsCi0gICAgIEFSTTY0ID0gMHg2LAotKyAg ICBQUEM2NCA9IDB4NywKLSAgICAgQVJDSF9CSVRTID0gMwotICAgfTsKLSAKLSAjaWYgZGVmaW5l ZChKU19DT0RFR0VOX1g4NikKLSAgIE1PWl9BU1NFUlQodWludDMyX3Qoaml0OjpDUFVJbmZvOjpH ZXRTU0VWZXJzaW9uKCkpIDw9Ci0gICAgICAgICAgICAgIChVSU5UMzJfTUFYID4+IEFSQ0hfQklU UykpOwotICAgcmV0dXJuIFg4NiB8ICh1aW50MzJfdChqaXQ6OkNQVUluZm86OkdldFNTRVZlcnNp b24oKSkgPDwgQVJDSF9CSVRTKTsKLSAjZWxpZiBkZWZpbmVkKEpTX0NPREVHRU5fWDY0KQotQEAg LTY4LDE2ICs2OSwxOSBAQCB1aW50MzJfdCB3YXNtOjpPYnNlcnZlZENQVUZlYXR1cmVzKCkgewot ICAgTU9aX0FTU0VSVChqaXQ6OkdldEFSTTY0RmxhZ3MoKSA8PSAoVUlOVDMyX01BWCA+PiBBUkNI X0JJVFMpKTsKLSAgIHJldHVybiBBUk02NCB8IChqaXQ6OkdldEFSTTY0RmxhZ3MoKSA8PCBBUkNI X0JJVFMpOwotICNlbGlmIGRlZmluZWQoSlNfQ09ERUdFTl9NSVBTMzIpCi0gICBNT1pfQVNTRVJU KGppdDo6R2V0TUlQU0ZsYWdzKCkgPD0gKFVJTlQzMl9NQVggPj4gQVJDSF9CSVRTKSk7Ci0gICBy ZXR1cm4gTUlQUyB8IChqaXQ6OkdldE1JUFNGbGFncygpIDw8IEFSQ0hfQklUUyk7Ci0gI2VsaWYg ZGVmaW5lZChKU19DT0RFR0VOX01JUFM2NCkKLSAgIE1PWl9BU1NFUlQoaml0OjpHZXRNSVBTRmxh Z3MoKSA8PSAoVUlOVDMyX01BWCA+PiBBUkNIX0JJVFMpKTsKLSAgIHJldHVybiBNSVBTNjQgfCAo aml0OjpHZXRNSVBTRmxhZ3MoKSA8PCBBUkNIX0JJVFMpOwotKyNlbGlmIGRlZmluZWQoSlNfQ09E RUdFTl9QUEM2NCkKLSsgIE1PWl9BU1NFUlQoaml0OjpHZXRQUEM2NEZsYWdzKCkgPD0gKFVJTlQz Ml9NQVggPj4gQVJDSF9CSVRTKSk7Ci0rICByZXR1cm4gUFBDNjQgfCAoaml0OjpHZXRQUEM2NEZs YWdzKCkgPDwgQVJDSF9CSVRTKTsKLSAjZWxpZiBkZWZpbmVkKEpTX0NPREVHRU5fTk9ORSkKLSAg IHJldHVybiAwOwotICNlbHNlCi0gIyAgZXJyb3IgInVua25vd24gYXJjaGl0ZWN0dXJlIgotICNl bmRpZgotIH0KLSAKLSBGZWF0dXJlQXJncyBGZWF0dXJlQXJnczo6YnVpbGQoSlNDb250ZXh0KiBj eCwgY29uc3QgRmVhdHVyZU9wdGlvbnMmIG9wdGlvbnMpIHsKLWRpZmYgLS1naXQgYS9qcy9zcmMv d2FzbS9XYXNtRnJhbWUuaCBiL2pzL3NyYy93YXNtL1dhc21GcmFtZS5oCi1pbmRleCA4NWYyNjEy ZDE0Li45OTE5MjA1NzM5IDEwMDY0NAotLS0tIGEvanMvc3JjL3dhc20vV2FzbUZyYW1lLmgKLSsr KyBiL2pzL3NyYy93YXNtL1dhc21GcmFtZS5oCi1AQCAtNTMsMTYgKzUzLDI1IEBAIGNvbnN0ZXhw ciB1aW50cHRyX3QgRXhpdE9ySml0RW50cnlGUFRhZyA9IDB4MTsKLSAvLyBiZWZvcmUgdGhlIGZ1 bmN0aW9uIGhhcyBtYWRlIGl0cyBzdGFjayByZXNlcnZhdGlvbiwgdGhlIHN0YWNrIGFsaWdubWVu dCBpcwotIC8vIHNpemVvZihGcmFtZSkgJSBXYXNtU3RhY2tBbGlnbm1lbnQuCi0gLy8KLSAvLyBE dXJpbmcgTWFjcm9Bc3NlbWJsZXIgY29kZSBnZW5lcmF0aW9uLCB0aGUgYnl0ZXMgcHVzaGVkIGFm dGVyIHRoZSB3YXNtOjpGcmFtZQotIC8vIGFyZSBjb3VudGVkIGJ5IG1hc20uZnJhbWVQdXNoZWQu IFRodXMsIHRoZSBzdGFjayBhbGlnbm1lbnQgYXQgYW55IHBvaW50IGluCi0gLy8gdGltZSBpcyAo c2l6ZW9mKHdhc206OkZyYW1lKSArIG1hc20uZnJhbWVQdXNoZWQpICUgV2FzbVN0YWNrQWxpZ25t ZW50LgotIAotIGNsYXNzIEZyYW1lIHsKLSsjaWYgZGVmaW5lZChKU19DT0RFR0VOX1BQQzY0KQot KyAgLy8gU2luY2UgV2FzbSBjYW4gY2FsbCBkaXJlY3RseSB0byBBQkktY29tcGxpYW50IHJvdXRp bmVzLCB0aGUgRnJhbWUgbXVzdAotKyAgLy8gaGF2ZSBhbiBBQkktY29tcGxpYW50IGxpbmthZ2Ug YXJlYS4gV2UgYWxsb2NhdGUgZm91ciBkb3VibGV3b3JkcywgdGhlCi0rICAvLyBtaW5pbXVtIHNp emUuCi0rICB2b2lkICpfcHBjX3NwXzsKLSsgIHZvaWQgKl9wcGNfY3JfOwotKyAgdm9pZCAqX3Bw Y19scl87Ci0rICB2b2lkICpfcHBjX3RvY187Ci0rI2VuZGlmCi0gICAvLyBTZWUgR2VuZXJhdGVD YWxsYWJsZUVwaWxvZ3VlIGZvciB3aHkgdGhpcyBtdXN0IGJlCi0gICAvLyB0aGUgZmlyc3QgZmll bGQgb2Ygd2FzbTo6RnJhbWUgKGluIGEgZG93bndhcmQtZ3Jvd2luZyBzdGFjaykuCi0gICAvLyBJ dCdzIGVpdGhlciB0aGUgY2FsbGVyJ3MgRnJhbWUqLCBmb3Igd2FzbSBjYWxsZXJzLCBvciB0aGUg SklUIGNhbGxlciBmcmFtZQotICAgLy8gcGx1cyBhIHRhZyBvdGhlcndpc2UuCi0gICB1aW50OF90 KiBjYWxsZXJGUF87Ci0gCi0gICAvLyBUaGUgcmV0dXJuIGFkZHJlc3MgcHVzaGVkIGJ5IHRoZSBj YWxsIChpbiB0aGUgY2FzZSBvZiBBUk0vTUlQUyB0aGUgcmV0dXJuCi0gICAvLyBhZGRyZXNzIGlz IHB1c2hlZCBieSB0aGUgZmlyc3QgaW5zdHJ1Y3Rpb24gb2YgdGhlIHByb2xvZ3VlKS4KLUBAIC0x MTUsMTggKzEyNCwyMSBAQCBjbGFzcyBGcmFtZSB7Ci0gICBzdGF0aWMgdWludDhfdCogYWRkRXhp dE9ySml0RW50cnlGUFRhZyhjb25zdCBGcmFtZSogZnApIHsKLSAgICAgTU9aX0FTU0VSVCghaXNF eGl0T3JKaXRFbnRyeUZQKGZwKSk7Ci0gICAgIHJldHVybiByZWludGVycHJldF9jYXN0PHVpbnQ4 X3QqPihyZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4oZnApIHwKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIEV4aXRPckppdEVudHJ5RlBUYWcpOwotICAgfQotIH07Ci0g Ci0gc3RhdGljX2Fzc2VydCghc3RkOjppc19wb2x5bW9ycGhpY192PEZyYW1lPiwgIkZyYW1lIGRv ZXNuJ3QgbmVlZCBhIHZ0YWJsZS4iKTsKLSsjaWYgIWRlZmluZWQoSlNfQ09ERUdFTl9QUEM2NCkK LSsvLyBOb3Qgb24gUG93ZXJQQywgaXQncyBub3QuCi0gc3RhdGljX2Fzc2VydChzaXplb2YoRnJh bWUpID09IDIgKiBzaXplb2Yodm9pZCopLAotICAgICAgICAgICAgICAgIkZyYW1lIGlzIGEgdHdv IHBvaW50ZXIgc3RydWN0dXJlIik7Ci0rI2VuZGlmCi0gCi0gY2xhc3MgRnJhbWVXaXRoVGxzIDog cHVibGljIEZyYW1lIHsKLSAgIFRsc0RhdGEqIGNhbGxlZVRsc187Ci0gICBUbHNEYXRhKiBjYWxs ZXJUbHNfOwotIAotICBwdWJsaWM6Ci0gICBUbHNEYXRhKiBjYWxsZWVUbHMoKSB7IHJldHVybiBj YWxsZWVUbHNfOyB9Ci0gICBUbHNEYXRhKiBjYWxsZXJUbHMoKSB7IHJldHVybiBjYWxsZXJUbHNf OyB9Ci1kaWZmIC0tZ2l0IGEvanMvc3JjL3dhc20vV2FzbUZyYW1lSXRlci5jcHAgYi9qcy9zcmMv d2FzbS9XYXNtRnJhbWVJdGVyLmNwcAotaW5kZXggZGZmYWI1Mzk0MC4uNWRhOGQ2YzczMCAxMDA2 NDQKLS0tLSBhL2pzL3NyYy93YXNtL1dhc21GcmFtZUl0ZXIuY3BwCi0rKysgYi9qcy9zcmMvd2Fz bS9XYXNtRnJhbWVJdGVyLmNwcAotQEAgLTM1OCwxNiArMzU4LDIxIEBAIHN0YXRpYyBjb25zdCB1 bnNpZ25lZCBTZXRGUCA9IDE2OwotIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBQb3BwZWRGUCA9IDQ7 Ci0gc3RhdGljX2Fzc2VydChCZWZvcmVQdXNoUmV0QWRkciA9PSAwLCAiUmVxdWlyZWQgYnkgU3Rh cnRVbndpbmRpbmciKTsKLSBzdGF0aWNfYXNzZXJ0KFB1c2hlZEZQID4gUHVzaGVkUmV0QWRkciwg IlJlcXVpcmVkIGJ5IFN0YXJ0VW53aW5kaW5nIik7Ci0gI2VsaWYgZGVmaW5lZChKU19DT0RFR0VO X01JUFMzMikgfHwgZGVmaW5lZChKU19DT0RFR0VOX01JUFM2NCkKLSBzdGF0aWMgY29uc3QgdW5z aWduZWQgUHVzaGVkUmV0QWRkciA9IDg7Ci0gc3RhdGljIGNvbnN0IHVuc2lnbmVkIFB1c2hlZEZQ ID0gMTI7Ci0gc3RhdGljIGNvbnN0IHVuc2lnbmVkIFNldEZQID0gMTY7Ci0gc3RhdGljIGNvbnN0 IHVuc2lnbmVkIFBvcHBlZEZQID0gNDsKLSsjZWxpZiBkZWZpbmVkKEpTX0NPREVHRU5fUFBDNjQp Ci0rc3RhdGljIGNvbnN0IHVuc2lnbmVkIFB1c2hlZFJldEFkZHIgPSAxMjsKLStzdGF0aWMgY29u c3QgdW5zaWduZWQgUHVzaGVkRlAgPSAxNjsKLStzdGF0aWMgY29uc3QgdW5zaWduZWQgU2V0RlAg PSAyMDsKLStzdGF0aWMgY29uc3QgdW5zaWduZWQgUG9wcGVkRlAgPSA4OwotICNlbGlmIGRlZmlu ZWQoSlNfQ09ERUdFTl9OT05FKQotIC8vIFN5bnRoZXRpYyB2YWx1ZXMgdG8gc2F0aXNmeSBhc3Nl cnRzIGFuZCBhdm9pZCBjb21waWxlciB3YXJuaW5ncy4KLSBzdGF0aWMgY29uc3QgdW5zaWduZWQg UHVzaGVkUmV0QWRkciA9IDA7Ci0gc3RhdGljIGNvbnN0IHVuc2lnbmVkIFB1c2hlZEZQID0gMTsK LSBzdGF0aWMgY29uc3QgdW5zaWduZWQgU2V0RlAgPSAyOwotIHN0YXRpYyBjb25zdCB1bnNpZ25l ZCBQb3BwZWRGUCA9IDM7Ci0gI2Vsc2UKLSAjICBlcnJvciAiVW5rbm93biBhcmNoaXRlY3R1cmUh IgotQEAgLTQ1MywxNiArNDU4LDM4IEBAIHN0YXRpYyB2b2lkIEdlbmVyYXRlQ2FsbGFibGVQcm9s b2d1ZShNYWNyb0Fzc2VtYmxlciYgbWFzbSwgdWludDMyX3QqIGVudHJ5KSB7Ci0gICAgICAgICAg ICAgIE1lbU9wZXJhbmQoc3AsIEZyYW1lOjpjYWxsZXJGUE9mZnNldCgpKSk7Ci0gICAgIE1PWl9B U1NFUlRfSUYoIW1hc20ub29tKCksIFB1c2hlZEZQID09IG1hc20uY3VycmVudE9mZnNldCgpIC0g KmVudHJ5KTsKLSAgICAgbWFzbS5Nb3YoQVJNUmVnaXN0ZXIoRnJhbWVQb2ludGVyLCA2NCksIHNw KTsKLSAgICAgTU9aX0FTU0VSVF9JRighbWFzbS5vb20oKSwgU2V0RlAgPT0gbWFzbS5jdXJyZW50 T2Zmc2V0KCkgLSAqZW50cnkpOwotIAotICAgICAvLyBBbmQgcmVzdG9yZSB0aGUgU1AtcmVnIHNl dHRpbmcsIHBlciBjb21tZW50IGFib3ZlLgotICAgICBtYXNtLlNldFN0YWNrUG9pbnRlcjY0KHN0 YXNoZWRTUHJlZyk7Ci0gICB9Ci0rI2VsaWYgZGVmaW5lZChKU19DT0RFR0VOX1BQQzY0KQotKyAg ewotKyAgICAqZW50cnkgPSBtYXNtLmN1cnJlbnRPZmZzZXQoKTsKLSsKLSsgICAgLy8gVGhlc2Ug bXVzdCBiZSBpbiB0aGlzIHByZWNpc2Ugb3JkZXIuIEZvcnR1bmF0ZWx5IHdlIGNhbiBzdWJzdW1l IHRoZQotKyAgICAvLyBTUFIgbG9hZCBpbnRvIHRoZSBpbml0aWFsICJ2ZXJzZSIgc2luY2UgaXQg aXMgdHJlYXRlZCBhdG9taWNhbGx5LgotKyAgICAvLyBUaGUgbGlua2FnZSBhcmVhIHJlcXVpcmVk IGZvciBBQkkgY29tcGxpYW5jZSBpcyBiYWtlZCBpbnRvIHRoZSBGcmFtZS4KLSsgICAgbWFzbS54 c19tZmxyKFNjcmF0Y2hSZWdpc3Rlcik7Ci0rICAgIG1hc20uYXNfYWRkaShTdGFja1BvaW50ZXIs IFN0YWNrUG9pbnRlciwgLShzaXplb2YoRnJhbWUpKSk7Ci0rICAgIG1hc20uYXNfc3RkKFNjcmF0 Y2hSZWdpc3RlciwgU3RhY2tQb2ludGVyLCBGcmFtZTo6cmV0dXJuQWRkcmVzc09mZnNldCgpKTsK LSsgICAgTU9aX0FTU0VSVF9JRighbWFzbS5vb20oKSwgUHVzaGVkUmV0QWRkciA9PSBtYXNtLmN1 cnJlbnRPZmZzZXQoKSAtICplbnRyeSk7Ci0rICAgIG1hc20uYXNfc3RkKEZyYW1lUG9pbnRlciwg U3RhY2tQb2ludGVyLCBGcmFtZTo6Y2FsbGVyRlBPZmZzZXQoKSk7Ci0rICAgIE1PWl9BU1NFUlRf SUYoIW1hc20ub29tKCksIFB1c2hlZEZQID09IG1hc20uY3VycmVudE9mZnNldCgpIC0gKmVudHJ5 KTsKLSsgICAgbWFzbS54c19tcihGcmFtZVBvaW50ZXIsIFN0YWNrUG9pbnRlcik7Ci0rICAgIE1P Wl9BU1NFUlRfSUYoIW1hc20ub29tKCksIFNldEZQID09IG1hc20uY3VycmVudE9mZnNldCgpIC0g KmVudHJ5KTsKLSsKLSsgICAgLy8gQnVybiBub3BzIGJlY2F1c2Ugd2UgaGF2ZSB0byBtYWtlIHRo aXMgYSBtdWx0aXBsZSBvZiAxNiBhbmQgdGhlIG1mc3ByCi0rICAgIC8vIGp1c3Qgc2NyZXdlZCB1 cy4KLSsgICAgbWFzbS5hc19ub3AoKTsgLy8gMjQKLSsgICAgbWFzbS5hc19ub3AoKTsgLy8gMjgK LSsgICAgbWFzbS5hc19ub3AoKTsgLy8gMzIgLy8gdHJhcCBwb2ludAotKyAgfQotICNlbHNlCi0g ICB7Ci0gIyAgaWYgZGVmaW5lZChKU19DT0RFR0VOX0FSTSkKLSAgICAgQXV0b0ZvcmJpZFBvb2xz QW5kTm9wcyBhZnAoJm1hc20sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIG51 bWJlciBvZiBpbnN0cnVjdGlvbnMgaW4gc2NvcGUgPSAqLyAzKTsKLSAKLSAgICAgKmVudHJ5ID0g bWFzbS5jdXJyZW50T2Zmc2V0KCk7Ci0gCi1AQCAtNTI3LDE2ICs1NTQsMjggQEAgc3RhdGljIHZv aWQgR2VuZXJhdGVDYWxsYWJsZUVwaWxvZ3VlKE1hY3JvQXNzZW1ibGVyJiBtYXNtLCB1bnNpZ25l ZCBmcmFtZVB1c2hlZCwKLSAgIC8vIHVzZSBpdC4gIEhlbmNlIHdlIGhhdmUgdG8gZG8gaXQgImJ5 IGhhbmQiLgotICAgbWFzbS5Nb3YoUHNldWRvU3RhY2tQb2ludGVyNjQsIHZpeGw6OnNwKTsKLSAK LSAgIG1hc20uUmV0KEFSTVJlZ2lzdGVyKGxyLCA2NCkpOwotIAotICAgLy8gU2VlIGNvbW1lbnQg YXQgZXF1aXZhbGVudCBwbGFjZSBpbiB8R2VuZXJhdGVDYWxsYWJsZVByb2xvZ3VlfCBhYm92ZS4K LSAgIG1hc20uU2V0U3RhY2tQb2ludGVyNjQoc3Rhc2hlZFNQcmVnKTsKLSAKLSsjZWxpZiBkZWZp bmVkKEpTX0NPREVHRU5fUFBDNjQpCi0rCi0rICBtYXNtLmFzX2xkKEZyYW1lUG9pbnRlciwgU3Rh Y2tQb2ludGVyLCBGcmFtZTo6Y2FsbGVyRlBPZmZzZXQoKSk7Ci0rICBwb3BwZWRGUCA9IG1hc20u Y3VycmVudE9mZnNldCgpOwotKyAgLy8gVGhpcyBpcyBzdWJvcHRpbWFsIHNpbmNlIHdlIGdldCBz ZXJpYWxpemVkLCBidXQgaGFzIHRvIGJlIGluIHRoaXMgb3JkZXIuCi0rICBtYXNtLmFzX2xkKFNj cmF0Y2hSZWdpc3RlciwgU3RhY2tQb2ludGVyLCBGcmFtZTo6cmV0dXJuQWRkcmVzc09mZnNldCgp KTsKLSsgIG1hc20ueHNfbXRscihTY3JhdGNoUmVnaXN0ZXIpOwotKyAgKnJldCA9IG1hc20uY3Vy cmVudE9mZnNldCgpOwotKwotKyAgbWFzbS5hc19hZGRpKFN0YWNrUG9pbnRlciwgU3RhY2tQb2lu dGVyLCBzaXplb2YoRnJhbWUpKTsKLSsgIG1hc20uYXNfYmxyKCk7Ci0rCi0gI2Vsc2UKLSAgIC8v IEZvcmJpZCBwb29scyBmb3IgdGhlIHNhbWUgcmVhc29uIGFzIGRlc2NyaWJlZCBpbiBHZW5lcmF0 ZUNhbGxhYmxlUHJvbG9ndWUuCi0gIyAgaWYgZGVmaW5lZChKU19DT0RFR0VOX0FSTSkKLSAgIEF1 dG9Gb3JiaWRQb29sc0FuZE5vcHMgYWZwKCZtYXNtLCAvKiBudW1iZXIgb2YgaW5zdHJ1Y3Rpb25z IGluIHNjb3BlID0gKi8gNik7Ci0gIyAgZW5kaWYKLSAKLSAgIC8vIFRoZXJlIGlzIGFuIGltcG9y dGFudCBvcmRlcmluZyBjb25zdHJhaW50IGhlcmU6IGZwIG11c3QgYmUgcmVwb2ludGVkIHRvCi0g ICAvLyB0aGUgY2FsbGVyJ3MgZnJhbWUgYmVmb3JlIGFueSBmaWVsZCBvZiB0aGUgZnJhbWUgY3Vy cmVudGx5IHBvaW50ZWQgdG8gYnkKLUBAIC03NzMsMTYgKzgxMiwyMyBAQCB2b2lkIHdhc206Okdl bmVyYXRlSml0RW50cnlQcm9sb2d1ZShNYWNyb0Fzc2VtYmxlciYgbWFzbSwgT2Zmc2V0cyogb2Zm c2V0cykgewotICAgICBBdXRvRm9yYmlkUG9vbHNBbmROb3BzIGFmcCgmbWFzbSwKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgLyogbnVtYmVyIG9mIGluc3RydWN0aW9ucyBpbiBzY29w ZSA9ICovIDMpOwotICAgICBvZmZzZXRzLT5iZWdpbiA9IG1hc20uY3VycmVudE9mZnNldCgpOwot ICAgICBzdGF0aWNfYXNzZXJ0KEJlZm9yZVB1c2hSZXRBZGRyID09IDApOwotICAgICAvLyBTdWJ0 cmFjdCBmcm9tIFNQIGZpcnN0IGFzIFNQIG11c3QgYmUgYWxpZ25lZCBiZWZvcmUgb2Zmc2V0dGlu Zy4KLSAgICAgbWFzbS5TdWIoc3AsIHNwLCA4KTsKLSAgICAgbWFzbS5zdG9yZVB0cihsciwgQWRk cmVzcyhtYXNtLmdldFN0YWNrUG9pbnRlcigpLCAwKSk7Ci0gICAgIG1hc20uYWRqdXN0RnJhbWUo OCk7Ci0rI2VsaWYgZGVmaW5lZChKU19DT0RFR0VOX1BQQzY0KQotKyAgICBvZmZzZXRzLT5iZWdp biA9IG1hc20uY3VycmVudE9mZnNldCgpOwotKwotKyAgICAvLyBXZSBoYXZlIHRvIGJ1cm4gYSBu b3AgaGVyZSB0byBtYXRjaCB0aGUgb3RoZXIgcHJvbG9ndWUgbGVuZ3RoLgotKyAgICBtYXNtLnhz X21mbHIoU2NyYXRjaFJlZ2lzdGVyKTsKLSsgICAgbWFzbS5hc19ub3AoKTsgLy8gbWlnaHQgYXMg d2VsbCBleHBsaWNpdGx5IHdhaXQgZm9yIHRoZSBtZnNwciB0byBjb21wbGV0ZQotKyAgICBtYXNt LmFzX3N0ZHUoU2NyYXRjaFJlZ2lzdGVyLCBTdGFja1BvaW50ZXIsIC04KTsKLSAjZWxzZQotICAg ICAvLyBUaGUgeDg2L3g2NCBjYWxsIGluc3RydWN0aW9uIHB1c2hlcyB0aGUgcmV0dXJuIGFkZHJl c3MuCi0gICAgIG9mZnNldHMtPmJlZ2luID0gbWFzbS5jdXJyZW50T2Zmc2V0KCk7Ci0gI2VuZGlm Ci0gICAgIE1PWl9BU1NFUlRfSUYoIW1hc20ub29tKCksCi0gICAgICAgICAgICAgICAgICAgUHVz aGVkUmV0QWRkciA9PSBtYXNtLmN1cnJlbnRPZmZzZXQoKSAtIG9mZnNldHMtPmJlZ2luKTsKLSAK LSAgICAgLy8gU2F2ZSBqaXQgZnJhbWUgcG9pbnRlciwgc28gdW53aW5kaW5nIGZyb20gd2FzbSB0 byBqaXQgZnJhbWVzIGlzIHRyaXZpYWwuCi1kaWZmIC0tZ2l0IGEvanMvc3JjL3dhc20vV2FzbUdD LmNwcCBiL2pzL3NyYy93YXNtL1dhc21HQy5jcHAKLWluZGV4IDRlYjc3YTgxYTIuLjNmMDBjYmI2 MzIgMTAwNjQ0Ci0tLS0gYS9qcy9zcmMvd2FzbS9XYXNtR0MuY3BwCi0rKysgYi9qcy9zcmMvd2Fz bS9XYXNtR0MuY3BwCi1AQCAtMjg0LDE2ICsyODQsMzMgQEAgYm9vbCBJc1ZhbGlkU3RhY2tNYXBL ZXkoYm9vbCBkZWJ1Z0VuYWJsZWQsIGNvbnN0IHVpbnQ4X3QqIG5leHRQQykgewotICAgICAgICAg ICAoaW5zblstMV0gJiAweGZmZmZmYzFmKSA9PSAweGQ2M2YwMDAwIHx8ICAgIC8vIGJsciByZWcK LSAgICAgICAgICAgKGluc25bLTFdICYgMHhmYzAwMDAwMCkgPT0gMHg5NDAwMDAwMCB8fCAgICAv LyBibCBzaW1tMjYKLSAgICAgICAgICAgKGRlYnVnRW5hYmxlZCAmJiBpbnNuWy0xXSA9PSAweGQ1 MDMyMDFmKSk7ICAvLyBub3AKLSAKLSAjICBlbGlmIGRlZmluZWQoSlNfQ09ERUdFTl9NSVBTNjQp Ci0gICAvLyBUT0RPIChidWcgMTY5OTY5Nik6IEltcGxlbWVudCB0aGlzLiAgQXMgZm9yIHRoZSBw bGF0Zm9ybXMgYWJvdmUsIHdlIG5lZWQgdG8KLSAgIC8vIGVudW1lcmF0ZSBhbGwgY29kZSBzZXF1 ZW5jZXMgdGhhdCBjYW4gcHJlY2VkZSB0aGUgc3RhY2ttYXAgbG9jYXRpb24uCi0gICByZXR1cm4g dHJ1ZTsKLSsjICBlbGlmIGRlZmluZWQoSlNfQ09ERUdFTl9QUEM2NCkKLSsvLyBYWFg6IHdlIHNo b3VsZCBqdXN0IGJlIGFibGUgdG8gdXNlIGluc3RbMF0KLSsgIGNvbnN0IHVpbnQzMl90KiBpbnNu ID0gKGNvbnN0IHVpbnQzMl90KiluZXh0UEM7Ci0rICBqczo6aml0OjpJbnN0cnVjdGlvbiogaW5z dCA9IChqczo6aml0OjpJbnN0cnVjdGlvbiopbmV4dFBDOwotKyAgLy9mcHJpbnRmKHN0ZGVyciwg IklzVmFsaWRTdGFja01hcEtleTogMHglbHggMHglMDh4XG4iLCAodWludDY0X3QpbmV4dFBDLCBp bnNuWzBdKTsKLSsgIHJldHVybiAoKCh1aW50cHRyX3QoaW5zbikgJiAzKSA9PSAwKSAmJgotKyAg ICAgICAgICAoaW5zdFswXS5leHRyYWN0T3Bjb2RlKCkgPT0ganM6OmppdDo6UFBDX2FkZGkgfHwg IC8vIHN0YWNrIGFsbG9jYXRlCi0rICAgICAgICAgICBpbnN0WzBdLmV4dHJhY3RPcGNvZGUoKSA9 PSBqczo6aml0OjpQUENfYWRkaXMgfHwgLy8gbG9hZCBpbW1lZGlhdGUKLSsgICAgICAgICAgIGlu c3RbMF0uZXh0cmFjdE9wY29kZSgpID09IGpzOjpqaXQ6OlBQQ19jbXB3aSB8fCAvLyB0ZXN0IGFm dGVyIGJsCi0rICAgICAgICAgICBpbnN0WzBdLmV4dHJhY3RPcGNvZGUoKSA9PSBqczo6aml0OjpQ UENfY21wdyB8fCAgLy8gKGV4dHN3LCBzYW1lKQotKyAgICAgICAgICAgaW5zdFswXS5leHRyYWN0 T3Bjb2RlKCkgPT0ganM6OmppdDo6UFBDX2xmZCB8fCAgIC8vIGxvYWQgRlBSCi0rICAgICAgICAg ICBpbnN0WzBdLmV4dHJhY3RPcGNvZGUoKSA9PSBqczo6aml0OjpQUENfbGZzIHx8ICAgLy8gbG9h ZCBGUFIKLSsgICAgICAgICAgIGluc3RbMF0uZXh0cmFjdE9wY29kZSgpID09IGpzOjpqaXQ6OlBQ Q19sd3ogfHwgICAvLyBsb2FkIEdQUgotKyAgICAgICAgICAgaW5zdFswXS5leHRyYWN0T3Bjb2Rl KCkgPT0ganM6OmppdDo6UFBDX2xkIHx8ICAgIC8vIGxvYWQgR1BSCi0rICAgICAgICAgICBpbnN0 WzBdLmV4dHJhY3RPcGNvZGUoKSA9PSBqczo6aml0OjpQUENfYiB8fCAgICAgLy8gYnJhbmNoCi0r ICAgICAgICAgICBpbnN0WzBdLmVuY29kZSgpID09IGpzOjpqaXQ6OlBQQ19ub3AgfHwgICAgICAg ICAgLy8gR0VUIEJBQ0sgVE8gV09SSwotKyAgICAgICAgICAgaW5zdFswXS5lbmNvZGUoKSA9PSBq czo6aml0OjpQUENfc3RvcCkpOyAgICAgICAgIC8vIGRlc2lnbmF0ZWQgdGhyb3cKLSAjICBlbHNl Ci0gICBNT1pfQ1JBU0goIklzVmFsaWRTdGFja01hcEtleTogcmVxdWlyZXMgaW1wbGVtZW50YXRp b24gb24gdGhpcyBwbGF0Zm9ybSIpOwotICMgIGVuZGlmCi0gfQotICNlbmRpZgotIAotIH0gIC8v IG5hbWVzcGFjZSB3YXNtCi0gfSAgLy8gbmFtZXNwYWNlIGpzCi1kaWZmIC0tZ2l0IGEvanMvc3Jj L3dhc20vV2FzbVNpZ25hbEhhbmRsZXJzLmNwcCBiL2pzL3NyYy93YXNtL1dhc21TaWduYWxIYW5k bGVycy5jcHAKLWluZGV4IDRhYjJhNDQxOTIuLjFhNTEwNjFhMTIgMTAwNjQ0Ci0tLS0gYS9qcy9z cmMvd2FzbS9XYXNtU2lnbmFsSGFuZGxlcnMuY3BwCi0rKysgYi9qcy9zcmMvd2FzbS9XYXNtU2ln bmFsSGFuZGxlcnMuY3BwCi1AQCAtMTAxLDE2ICsxMDEsMTcgQEAgdXNpbmcgbW96aWxsYTo6RGVi dWdPbmx5OwotICMgIGVuZGlmCi0gIyAgaWYgZGVmaW5lZChfX21pcHNfXykKLSAjICAgIGRlZmlu ZSBFUENfc2lnKHApICgocCktPnNjX3BjKQotICMgICAgZGVmaW5lIFJGUF9zaWcocCkgKChwKS0+ c2NfcmVnc1szMF0pCi0gIyAgZW5kaWYKLSAjICBpZiBkZWZpbmVkKF9fcHBjNjRfXykgfHwgZGVm aW5lZChfX1BQQzY0X18pIHx8IGRlZmluZWQoX19wcGM2NGxlX18pIHx8IFwKLSAgICAgICBkZWZp bmVkKF9fUFBDNjRMRV9fKQotICMgICAgZGVmaW5lIFIwMV9zaWcocCkgKChwKS0+c2NfZnJhbWUu Zml4cmVnWzFdKQotKyMgICAgZGVmaW5lIFIzMV9zaWcocCkgKChwKS0+c2NfZnJhbWUuZml4cmVn WzMxXSkKLSAjICAgIGRlZmluZSBSMzJfc2lnKHApICgocCktPnNjX2ZyYW1lLnNycjApCi0gIyAg ZW5kaWYKLSAjZWxpZiBkZWZpbmVkKF9fbGludXhfXykgfHwgZGVmaW5lZChfX3N1bikKLSAjICBp ZiBkZWZpbmVkKF9fbGludXhfXykKLSAjICAgIGRlZmluZSBFSVBfc2lnKHApICgocCktPnVjX21j b250ZXh0LmdyZWdzW1JFR19FSVBdKQotICMgICAgZGVmaW5lIEVCUF9zaWcocCkgKChwKS0+dWNf bWNvbnRleHQuZ3JlZ3NbUkVHX0VCUF0pCi0gIyAgICBkZWZpbmUgRVNQX3NpZyhwKSAoKHApLT51 Y19tY29udGV4dC5ncmVnc1tSRUdfRVNQXSkKLSAjICBlbHNlCi1AQCAtMTQ3LDE2ICsxNDgsMTcg QEAgdXNpbmcgbW96aWxsYTo6RGVidWdPbmx5OwotICMgIGlmIGRlZmluZWQoX19saW51eF9fKSAm JiAoZGVmaW5lZChfX3NwYXJjX18pICYmIGRlZmluZWQoX19hcmNoNjRfXykpCi0gIyAgICBkZWZp bmUgUENfc2lnKHApICgocCktPnVjX21jb250ZXh0Lm1jX2dyZWdzW01DX1BDXSkKLSAjICAgIGRl ZmluZSBGUF9zaWcocCkgKChwKS0+dWNfbWNvbnRleHQubWNfZnApCi0gIyAgICBkZWZpbmUgU1Bf c2lnKHApICgocCktPnVjX21jb250ZXh0Lm1jX2k3KQotICMgIGVuZGlmCi0gIyAgaWYgZGVmaW5l ZChfX2xpbnV4X18pICYmIChkZWZpbmVkKF9fcHBjNjRfXykgfHwgZGVmaW5lZChfX1BQQzY0X18p IHx8IFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZWQoX19wcGM2NGxlX18p IHx8IGRlZmluZWQoX19QUEM2NExFX18pKQotICMgICAgZGVmaW5lIFIwMV9zaWcocCkgKChwKS0+ dWNfbWNvbnRleHQuZ3BfcmVnc1sxXSkKLSsjICAgIGRlZmluZSBSMzFfc2lnKHApICgocCktPnVj X21jb250ZXh0LmdwX3JlZ3NbMzFdKQotICMgICAgZGVmaW5lIFIzMl9zaWcocCkgKChwKS0+dWNf bWNvbnRleHQuZ3BfcmVnc1szMl0pCi0gIyAgZW5kaWYKLSAjZWxpZiBkZWZpbmVkKF9fTmV0QlNE X18pCi0gIyAgZGVmaW5lIEVJUF9zaWcocCkgKChwKS0+dWNfbWNvbnRleHQuX19ncmVnc1tfUkVH X0VJUF0pCi0gIyAgZGVmaW5lIEVCUF9zaWcocCkgKChwKS0+dWNfbWNvbnRleHQuX19ncmVnc1tf UkVHX0VCUF0pCi0gIyAgZGVmaW5lIEVTUF9zaWcocCkgKChwKS0+dWNfbWNvbnRleHQuX19ncmVn c1tfUkVHX0VTUF0pCi0gIyAgZGVmaW5lIFJJUF9zaWcocCkgKChwKS0+dWNfbWNvbnRleHQuX19n cmVnc1tfUkVHX1JJUF0pCi0gIyAgZGVmaW5lIFJTUF9zaWcocCkgKChwKS0+dWNfbWNvbnRleHQu X19ncmVnc1tfUkVHX1JTUF0pCi1AQCAtMTczLDE2ICsxNzUsMTcgQEAgdXNpbmcgbW96aWxsYTo6 RGVidWdPbmx5OwotICMgIGVuZGlmCi0gIyAgaWYgZGVmaW5lZChfX21pcHNfXykKLSAjICAgIGRl ZmluZSBFUENfc2lnKHApICgocCktPnVjX21jb250ZXh0Ll9fZ3JlZ3NbX1JFR19FUENdKQotICMg ICAgZGVmaW5lIFJGUF9zaWcocCkgKChwKS0+dWNfbWNvbnRleHQuX19ncmVnc1tfUkVHX1M4XSkK LSAjICBlbmRpZgotICMgIGlmIGRlZmluZWQoX19wcGM2NF9fKSB8fCBkZWZpbmVkKF9fUFBDNjRf XykgfHwgZGVmaW5lZChfX3BwYzY0bGVfXykgfHwgXAotICAgICAgIGRlZmluZWQoX19QUEM2NExF X18pCi0gIyAgICBkZWZpbmUgUjAxX3NpZyhwKSAoKHApLT51Y19tY29udGV4dC5fX2dyZWdzW19S RUdfUjFdKQotKyMgICAgZGVmaW5lIFIzMV9zaWcocCkgKChwKS0+dWNfbWNvbnRleHQuX19ncmVn c1tfUkVHX1IzMV0pCi0gIyAgICBkZWZpbmUgUjMyX3NpZyhwKSAoKHApLT51Y19tY29udGV4dC5f X2dyZWdzW19SRUdfUENdKQotICMgIGVuZGlmCi0gI2VsaWYgZGVmaW5lZChfX0RyYWdvbkZseV9f KSB8fCBkZWZpbmVkKF9fRnJlZUJTRF9fKSB8fCBcCi0gICAgIGRlZmluZWQoX19GcmVlQlNEX2tl cm5lbF9fKQotICMgIGRlZmluZSBFSVBfc2lnKHApICgocCktPnVjX21jb250ZXh0Lm1jX2VpcCkK LSAjICBkZWZpbmUgRUJQX3NpZyhwKSAoKHApLT51Y19tY29udGV4dC5tY19lYnApCi0gIyAgZGVm aW5lIEVTUF9zaWcocCkgKChwKS0+dWNfbWNvbnRleHQubWNfZXNwKQotICMgIGRlZmluZSBSSVBf c2lnKHApICgocCktPnVjX21jb250ZXh0Lm1jX3JpcCkKLUBAIC0yMDcsMTYgKzIxMCwxNyBAQCB1 c2luZyBtb3ppbGxhOjpEZWJ1Z09ubHk7Ci0gIyAgZW5kaWYKLSAjICBpZiBkZWZpbmVkKF9fRnJl ZUJTRF9fKSAmJiBkZWZpbmVkKF9fbWlwc19fKQotICMgICAgZGVmaW5lIEVQQ19zaWcocCkgKChw KS0+dWNfbWNvbnRleHQubWNfcGMpCi0gIyAgICBkZWZpbmUgUkZQX3NpZyhwKSAoKHApLT51Y19t Y29udGV4dC5tY19yZWdzWzMwXSkKLSAjICBlbmRpZgotICMgIGlmIGRlZmluZWQoX19GcmVlQlNE X18pICYmIChkZWZpbmVkKF9fcHBjNjRfXykgfHwgZGVmaW5lZChfX1BQQzY0X18pIHx8IFwKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lZChfX3BwYzY0bGVfXykgfHwgZGVm aW5lZChfX1BQQzY0TEVfXykpCi0gIyAgICBkZWZpbmUgUjAxX3NpZyhwKSAoKHApLT51Y19tY29u dGV4dC5tY19ncHJbMV0pCi0rIyAgICBkZWZpbmUgUjMxX3NpZyhwKSAoKHApLT51Y19tY29udGV4 dC5tY19ncHJbMzFdKQotICMgICAgZGVmaW5lIFIzMl9zaWcocCkgKChwKS0+dWNfbWNvbnRleHQu bWNfc3JyMCkKLSAjICBlbmRpZgotICNlbGlmIGRlZmluZWQoWFBfREFSV0lOKQotICMgIGRlZmlu ZSBFSVBfc2lnKHApICgocCktPnRocmVhZC51dHMudHMzMi5fX2VpcCkKLSAjICBkZWZpbmUgRUJQ X3NpZyhwKSAoKHApLT50aHJlYWQudXRzLnRzMzIuX19lYnApCi0gIyAgZGVmaW5lIEVTUF9zaWco cCkgKChwKS0+dGhyZWFkLnV0cy50czMyLl9fZXNwKQotICMgIGRlZmluZSBSSVBfc2lnKHApICgo cCktPnRocmVhZC5fX3JpcCkKLSAjICBkZWZpbmUgUkJQX3NpZyhwKSAoKHApLT50aHJlYWQuX19y YnApCi1AQCAtMzY3LDE3ICszNzEsMTcgQEAgc3RydWN0IG1hY29zX2FhcmNoNjRfY29udGV4dCB7 Ci0gIyAgZGVmaW5lIFBDX3NpZyhwKSBFUENfc2lnKHApCi0gIyAgZGVmaW5lIEZQX3NpZyhwKSBS RlBfc2lnKHApCi0gIyAgZGVmaW5lIFNQX3NpZyhwKSBSU1Bfc2lnKHApCi0gIyAgZGVmaW5lIExS X3NpZyhwKSBSMzFfc2lnKHApCi0gI2VsaWYgZGVmaW5lZChfX3BwYzY0X18pIHx8IGRlZmluZWQo X19QUEM2NF9fKSB8fCBkZWZpbmVkKF9fcHBjNjRsZV9fKSB8fCBcCi0gICAgIGRlZmluZWQoX19Q UEM2NExFX18pCi0gIyAgZGVmaW5lIFBDX3NpZyhwKSBSMzJfc2lnKHApCi0gIyAgZGVmaW5lIFNQ X3NpZyhwKSBSMDFfc2lnKHApCi0tIyAgZGVmaW5lIEZQX3NpZyhwKSBSMDFfc2lnKHApCi0rIyAg ZGVmaW5lIEZQX3NpZyhwKSBSMzFfc2lnKHApCi0gI2VuZGlmCi0gCi0gc3RhdGljIHZvaWQgU2V0 Q29udGV4dFBDKENPTlRFWFQqIGNvbnRleHQsIHVpbnQ4X3QqIHBjKSB7Ci0gI2lmZGVmIFBDX3Np ZwotICAgKnJlaW50ZXJwcmV0X2Nhc3Q8dWludDhfdCoqPigmUENfc2lnKGNvbnRleHQpKSA9IHBj OwotICNlbHNlCi0gICBNT1pfQ1JBU0goKTsKLSAjZW5kaWYKLWRpZmYgLS1naXQgYS9qcy9zcmMv d2FzbS9XYXNtU3R1YnMuY3BwIGIvanMvc3JjL3dhc20vV2FzbVN0dWJzLmNwcAotaW5kZXggNTlh NWNmMThiZi4uZGJjMTBjNmUyYyAxMDA2NDQKLS0tLSBhL2pzL3NyYy93YXNtL1dhc21TdHVicy5j cHAKLSsrKyBiL2pzL3NyYy93YXNtL1dhc21TdHVicy5jcHAKLUBAIC03MTksMTcgKzcxOSwxNyBA QCBzdGF0aWMgYm9vbCBHZW5lcmF0ZUludGVycEVudHJ5KE1hY3JvQXNzZW1ibGVyJiBtYXNtLCBj b25zdCBGdW5jRXhwb3J0JiBmZSwKLSAgIEFzc2VydEV4cGVjdGVkU1AobWFzbSk7Ci0gICBtYXNt LmhhbHRpbmdBbGlnbihDb2RlQWxpZ25tZW50KTsKLSAKLSAgIG9mZnNldHMtPmJlZ2luID0gbWFz bS5jdXJyZW50T2Zmc2V0KCk7Ci0gCi0gICAvLyBTYXZlIHRoZSByZXR1cm4gYWRkcmVzcyBpZiBp dCB3YXNuJ3QgYWxyZWFkeSBzYXZlZCBieSB0aGUgY2FsbCBpbnNuLgotICNpZmRlZiBKU19VU0Vf TElOS19SRUdJU1RFUgotICMgIGlmIGRlZmluZWQoSlNfQ09ERUdFTl9BUk0pIHx8IGRlZmluZWQo SlNfQ09ERUdFTl9NSVBTMzIpIHx8IFwKLS0gICAgICBkZWZpbmVkKEpTX0NPREVHRU5fTUlQUzY0 KQotKyAgICAgIGRlZmluZWQoSlNfQ09ERUdFTl9NSVBTNjQpIHx8IGRlZmluZWQoSlNfQ09ERUdF Tl9QUEM2NCkKLSAgIG1hc20ucHVzaFJldHVybkFkZHJlc3MoKTsKLSAjICBlbGlmIGRlZmluZWQo SlNfQ09ERUdFTl9BUk02NCkKLSAgIC8vIFdhc21QdXNoIHVwZGF0ZXMgZnJhbWVQdXNoZWQoKSB1 bmxpa2UgcHVzaFJldHVybkFkZHJlc3MoKSwgYnV0IHRoYXQncwotICAgLy8gY2FuY2VsbGVkIGJ5 IHRoZSBzZXRGcmFtZVB1c2hlZCgpIGJlbG93LgotICAgV2FzbVB1c2gobWFzbSwgbHIpOwotICMg IGVsc2UKLSAgIE1PWl9DUkFTSCgiSW1wbGVtZW50IHRoaXMiKTsKLSAjICBlbmRpZgotQEAgLTIx MTEsMTcgKzIxMTEsMjYgQEAgc3RhdGljIGJvb2wgR2VuZXJhdGVJbXBvcnRJbnRlcnBFeGl0KE1h Y3JvQXNzZW1ibGVyJiBtYXNtLCBjb25zdCBGdW5jSW1wb3J0JiBmaSwKLSAgICAgbWFzbS5zdG9y ZVB0cihzY3JhdGNoLAotICAgICAgICAgICAgICAgICAgIEFkZHJlc3MobWFzbS5nZXRTdGFja1Bv aW50ZXIoKSwgaS0+b2Zmc2V0RnJvbUFyZ0Jhc2UoKSkpOwotICAgfQotICAgaSsrOwotICAgTU9a X0FTU0VSVChpLmRvbmUoKSk7Ci0gCi0gICAvLyBNYWtlIHRoZSBjYWxsLCB0ZXN0IHdoZXRoZXIg aXQgc3VjY2VlZGVkLCBhbmQgZXh0cmFjdCB0aGUgcmV0dXJuIHZhbHVlLgotICAgQXNzZXJ0U3Rh Y2tBbGlnbm1lbnQobWFzbSwgQUJJU3RhY2tBbGlnbm1lbnQpOwotKyNpZmRlZiBKU19DT0RFR0VO X1BQQzY0Ci0rICAvLyBCZWNhdXNlIHRoaXMgaXMgY2FsbGluZyBhbiBBQkktY29tcGxpYW50IGZ1 bmN0aW9uLCB3ZSBoYXZlIHRvIHB1bGwgZG93bgotKyAgLy8gYSBkdW1teSBsaW5rYWdlIGFyZWEg b3IgdGhlIHZhbHVlcyBvbiB0aGUgc3RhY2sgd2lsbCBiZSBzdG9tcGVkIG9uLiBUaGUKLSsgIC8v IG1pbmltdW0gc2l6ZSBpcyBzdWZmaWNpZW50LgotKyAgbWFzbS5hc19hZGRpKG1hc20uZ2V0U3Rh Y2tQb2ludGVyKCksIG1hc20uZ2V0U3RhY2tQb2ludGVyKCksIC0zMik7Ci0rI2VuZGlmCi0gICBt YXNtLmNhbGwoU3ltYm9saWNBZGRyZXNzOjpDYWxsSW1wb3J0X0dlbmVyYWwpOwotKyNpZmRlZiBK U19DT0RFR0VOX1BQQzY0Ci0rICBtYXNtLmFzX2FkZGkobWFzbS5nZXRTdGFja1BvaW50ZXIoKSwg bWFzbS5nZXRTdGFja1BvaW50ZXIoKSwgMzIpOwotKyNlbmRpZgotICAgbWFzbS5icmFuY2hUZXN0 MzIoQXNzZW1ibGVyOjpaZXJvLCBSZXR1cm5SZWcsIFJldHVyblJlZywgdGhyb3dMYWJlbCk7Ci0g Ci0gICBSZXN1bHRUeXBlIHJlc3VsdFR5cGUgPSBSZXN1bHRUeXBlOjpWZWN0b3IoZmkuZnVuY1R5 cGUoKS5yZXN1bHRzKCkpOwotICAgVmFsVHlwZSByZWdpc3RlclJlc3VsdFR5cGU7Ci0gICBmb3Ig KEFCSVJlc3VsdEl0ZXIgaXRlcihyZXN1bHRUeXBlKTsgIWl0ZXIuZG9uZSgpOyBpdGVyLm5leHQo KSkgewotICAgICBpZiAoaXRlci5jdXIoKS5pblJlZ2lzdGVyKCkpIHsKLSAgICAgICBNT1pfQVNT RVJUKCFyZWdpc3RlclJlc3VsdFR5cGUuaXNWYWxpZCgpKTsKLSAgICAgICByZWdpc3RlclJlc3Vs dFR5cGUgPSBpdGVyLmN1cigpLnR5cGUoKTsKLUBAIC0yNjczLDE2ICsyNjgyLDIxIEBAIHN0YXRp YyBjb25zdCBMaXZlUmVnaXN0ZXJTZXQgUmVnc1RvUHJlc2VydmUoCi0gI2VsaWYgZGVmaW5lZChK U19DT0RFR0VOX1g4NikgfHwgZGVmaW5lZChKU19DT0RFR0VOX1g2NCkKLSAvLyBJdCdzIGNvcnJl Y3QgdG8gdXNlIEZsb2F0UmVnaXN0ZXJzOjpBbGxNYXNrIGV2ZW4gd2hlbiBTSU1EIGlzIG5vdCBl bmFibGVkOwotIC8vIFB1c2hSZWdzSW5NYXNrIHN0cmlwcyBvdXQgdGhlIGhpZ2ggbGFuZXMgb2Yg dGhlIFhNTSByZWdpc3RlcnMgaW4gdGhpcyBjYXNlLAotIC8vIHdoaWxlIHRoZSBzaW5nbGVzIHdp bGwgYmUgc3RyaXBwZWQgYXMgdGhleSBhcmUgYWxpYXNlZCBieSB0aGUgbGFyZ2VyIGRvdWJsZXMu Ci0gc3RhdGljIGNvbnN0IExpdmVSZWdpc3RlclNldCBSZWdzVG9QcmVzZXJ2ZSgKLSAgICAgR2Vu ZXJhbFJlZ2lzdGVyU2V0KFJlZ2lzdGVyczo6QWxsTWFzayAmCi0gICAgICAgICAgICAgICAgICAg ICAgICB+KFJlZ2lzdGVyczo6U2V0VHlwZSgxKSA8PCBSZWdpc3RlcnM6OlN0YWNrUG9pbnRlcikp LAotICAgICBGbG9hdFJlZ2lzdGVyU2V0KEZsb2F0UmVnaXN0ZXJzOjpBbGxNYXNrKSk7Ci0rI2Vs aWYgZGVmaW5lZChKU19DT0RFR0VOX1BQQzY0KQotKy8vIE5vdGUgdGhhdCB0aGlzIGluY2x1ZGVz IG5vIFNQUnMsIHNpbmNlIHRoZSBKSVQgaXMgdW5hd2FyZSBvZiB0aGVtLgotK3N0YXRpYyBjb25z dCBMaXZlUmVnaXN0ZXJTZXQgUmVnc1RvUHJlc2VydmUoCi0rICAgIEdlbmVyYWxSZWdpc3RlclNl dChSZWdpc3RlcnM6OkFsbE1hc2spLAotKyAgICBGbG9hdFJlZ2lzdGVyU2V0KEZsb2F0UmVnaXN0 ZXJzOjpBbGxNYXNrKSk7Ci0gI2Vsc2UKLSBzdGF0aWMgY29uc3QgTGl2ZVJlZ2lzdGVyU2V0IFJl Z3NUb1ByZXNlcnZlKAotICAgICBHZW5lcmFsUmVnaXN0ZXJTZXQoMCksIEZsb2F0UmVnaXN0ZXJT ZXQoRmxvYXRSZWdpc3RlcnM6OkFsbERvdWJsZU1hc2spKTsKLSAjICBpZmRlZiBFTkFCTEVfV0FT TV9TSU1ECi0gIyAgICBlcnJvciAibm8gU0lNRCBzdXBwb3J0IgotICMgIGVuZGlmCi0gI2VuZGlm Ci0gCi1kaWZmIC0tZ2l0IGEvbW9kdWxlcy9saWJwcmVmL2luaXQvU3RhdGljUHJlZkxpc3QueWFt bCBiL21vZHVsZXMvbGlicHJlZi9pbml0L1N0YXRpY1ByZWZMaXN0LnlhbWwKLWluZGV4IGQ4MTAy NWIyODIuLjQzYjc1YzZhZTAgMTAwNjQ0Ci0tLS0gYS9tb2R1bGVzL2xpYnByZWYvaW5pdC9TdGF0 aWNQcmVmTGlzdC55YW1sCi0rKysgYi9tb2R1bGVzL2xpYnByZWYvaW5pdC9TdGF0aWNQcmVmTGlz dC55YW1sCi1AQCAtNTcyOSwxNyArNTcyOSwxNyBAQAotIC0gbmFtZTogamF2YXNjcmlwdC5vcHRp b25zLmJhc2VsaW5laml0Ci0gICB0eXBlOiBib29sCi0gICB2YWx1ZTogdHJ1ZQotICAgbWlycm9y OiBhbHdheXMgICMgTG9hZFN0YXJ0dXBKU1ByZWZzCi0gICBkb19ub3RfdXNlX2RpcmVjdGx5OiB0 cnVlCi0gCi0gLSBuYW1lOiBqYXZhc2NyaXB0Lm9wdGlvbnMuaW9uCi0gICB0eXBlOiBib29sCi0t ICB2YWx1ZTogdHJ1ZQotKyAgdmFsdWU6IGZhbHNlCi0gICBtaXJyb3I6IGFsd2F5cyAgIyBMb2Fk U3RhcnR1cEpTUHJlZnMKLSAgIGRvX25vdF91c2VfZGlyZWN0bHk6IHRydWUKLSAKLSAjIFRoZSBp cnJlZ2V4cCBKSVQgZm9yIHJlZ2V4IGV2YWx1YXRpb24uCi0gLSBuYW1lOiBqYXZhc2NyaXB0Lm9w dGlvbnMubmF0aXZlX3JlZ2V4cAotICAgdHlwZTogYm9vbAotICAgdmFsdWU6IHRydWUKLSAgIG1p cnJvcjogYWx3YXlzICAjIExvYWRTdGFydHVwSlNQcmVmcwotQEAgLTU5NjgsMTcgKzU5NjgsMTcg QEAKLSAgIHZhbHVlOiA2ICogMTAyNCAqIDEwMjQKLSAjZWxzZQotICAgdmFsdWU6IDIgKiAxMDI0 ICogMTAyNAotICNlbmRpZgotICAgbWlycm9yOiBhbHdheXMKLSAKLSAtIG5hbWU6IGphdmFzY3Jp cHQub3B0aW9ucy53YXNtX29wdGltaXppbmdqaXQKLSAgIHR5cGU6IGJvb2wKLS0gIHZhbHVlOiB0 cnVlCi0rICB2YWx1ZTogZmFsc2UKLSAgIG1pcnJvcjogYWx3YXlzCi0gCi0gI2lmIGRlZmluZWQo RU5BQkxFX1dBU01fU0lNRCkKLSAtICAgbmFtZTogamF2YXNjcmlwdC5vcHRpb25zLndhc21fc2lt ZAotICAgICB0eXBlOiBib29sCi0gICAgIHZhbHVlOiB0cnVlCi0gICAgIG1pcnJvcjogYWx3YXlz Ci0gI2VuZGlmICAvLyBkZWZpbmVkKEVOQUJMRV9XQVNNX1NJTUQpCmRpZmYgLS1naXQgYS9zcmNw a2dzL2ZpcmVmb3gtZXNyL3BhdGNoZXMvc2tpYS1zdWNrczMucGF0Y2ggYi9zcmNwa2dzL2ZpcmVm b3gtZXNyL3BhdGNoZXMvc2tpYS1zdWNrczMucGF0Y2gKaW5kZXggOTA4MzExY2RiNmRiLi40YmY3 N2U2ODQ0MDUgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZmlyZWZveC1lc3IvcGF0Y2hlcy9za2lhLXN1 Y2tzMy5wYXRjaAorKysgYi9zcmNwa2dzL2ZpcmVmb3gtZXNyL3BhdGNoZXMvc2tpYS1zdWNrczMu cGF0Y2gKQEAgLTMwLDI3ICszMCwzIEBAIGRpZmYgLXIgNDZlYTg2NmNhM2FjIC1yIDZlZjIwZWVl M2Y4ZiBnZngvMmQvRHJhd1RhcmdldFNraWEuY3BwCiAgICBtQ2FudmFzLT5zYXZlTGF5ZXIoc2F2 ZVJlYyk7CiAgCiAgICBTZXRQZXJtaXRTdWJwaXhlbEFBKGFPcGFxdWUpOwotLS0tIGEvZ2Z4L2xh eWVycy9jb21wb3NpdGUvQ29tcG9zaXRhYmxlSG9zdC5jcHAKLSsrKyBiL2dmeC9sYXllcnMvY29t cG9zaXRlL0NvbXBvc2l0YWJsZUhvc3QuY3BwCi1AQCAtMTMsNiArMTMsNyBAQAotICNpbmNsdWRl ICJJbWFnZUhvc3QuaCIgIC8vIGZvciBJbWFnZUhvc3RCdWZmZXJlZCwgZXRjCi0gI2luY2x1ZGUg IkxheWVycy5oIgotICNpbmNsdWRlICJUaWxlZENvbnRlbnRIb3N0LmgiICAvLyBmb3IgVGlsZWRD b250ZW50SG9zdAotKyNpbmNsdWRlICJtb3ppbGxhL0VuZGlhblV0aWxzLmgiCi0gI2luY2x1ZGUg Im1vemlsbGEvZ2Z4L2dmeFZhcnMuaCIKLSAjaW5jbHVkZSAibW96aWxsYS9sYXllcnMvTGF5ZXJz U3VyZmFjZXMuaCIgIC8vIGZvciBTdXJmYWNlRGVzY3JpcHRvcgotICNpbmNsdWRlICJtb3ppbGxh L2xheWVycy9UZXh0dXJlSG9zdC5oIiAgICAgLy8gZm9yIFRleHR1cmVIb3N0LCBldGMKLUBAIC05 Miw5ICs5MywxMyBAQCBib29sIENvbXBvc2l0YWJsZUhvc3Q6OkFkZE1hc2tFZmZlY3QoRWZmZWN0 Q2hhaW4mIGFFZmZlY3RzLAotICAgfQotICAgTU9aX0FTU0VSVChzb3VyY2UpOwotIAotKyAgLy8g U2V0dGluZyBhbiBhbHBoYS1tYXNrIGhlcmUgYnJlYWtzIHRoZSBVUkwtYmFyIG9uIGJpZyBlbmRp YW4gKHMzOTB4KQotKyAgLy8gaWYgdGhlIHR5cGVkIFVSTCBpcyB0b28gbG9uZyBmb3IgdGhlIHRl eHRib3ggKGF1dG9tYXRpYyBzY3JvbGxpbmcgbmVlZGVkKQotKyNpZiBNT1pfTElUVExFX0VORElB TigpCi0gICBSZWZQdHI8RWZmZWN0TWFzaz4gZWZmZWN0ID0KLSAgICAgICBuZXcgRWZmZWN0TWFz ayhzb3VyY2UsIHNvdXJjZS0+R2V0U2l6ZSgpLCBhVHJhbnNmb3JtKTsKLSAgIGFFZmZlY3RzLm1T ZWNvbmRhcnlFZmZlY3RzW0VmZmVjdFR5cGVzOjpNQVNLXSA9IGVmZmVjdDsKLSsjZW5kaWYKLSAg IHJldHVybiB0cnVlOwotIH0KLSAKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZmlyZWZveC1lc3IvcGF0 Y2hlcy9zbmRpby5wYXRjaCBiL3NyY3BrZ3MvZmlyZWZveC1lc3IvcGF0Y2hlcy9zbmRpby5wYXRj aApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjg2MjhiZWE4ZDhmLi4wMDAwMDAwMDAw MDAKLS0tIGEvc3JjcGtncy9maXJlZm94LWVzci9wYXRjaGVzL3NuZGlvLnBhdGNoCisrKyAvZGV2 L251bGwKQEAgLTEsNTIgKzAsMCBAQAotLS0tIGEvb2xkLWNvbmZpZ3VyZS5pbgotKysrIGIvb2xk LWNvbmZpZ3VyZS5pbgotQEAgLTI4MTgsNiArMjgxOCwyMiBAQAotICAgICBfTk9OX0dMT0JBTF9B Q0RFRklORVM9IiRfTk9OX0dMT0JBTF9BQ0RFRklORVMgTkVDS09fQ09PS0lFUyIKLSBmaQotIAot K2RubCA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0rZG5sID0gQ2hlY2sgc25k aW8gYXZhaWxhYmlsaXR5Ci0rZG5sID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K LSsKLStNT1pfQVJHX0VOQUJMRV9CT09MKHNuZGlvLAotK1sgIC0tZW5hYmxlLXNuZGlvICAgICAg ICAgRW5hYmxlIHNuZGlvIHN1cHBvcnRdLAotKyAgIE1PWl9TTkRJTz0xLAotKyAgIE1PWl9TTkRJ Tz0pCi0rCi0raWYgdGVzdCAtbiAiJE1PWl9TTkRJTyI7IHRoZW4KLSsgICAgTU9aX1NORElPX0xJ QlM9Ii1sc25kaW8iCi0rICAgIEFDX1NVQlNUX0xJU1QoTU9aX1NORElPX0xJQlMpCi0rZmkKLSsK LStBQ19TVUJTVChNT1pfU05ESU8pCi0rCi0gZG5sID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0gZG5sID0KLSBkbmwgPSBNYWludGFpbmVy IGRlYnVnIG9wdGlvbiAobm8gLS1lbmFibGUgZXF1aXZhbGVudCkKLS0tLSBhL21lZGlhL2xpYmN1 YmViL3NyYy9tb3ouYnVpbGQKLSsrKyBiL21lZGlhL2xpYmN1YmViL3NyYy9tb3ouYnVpbGQKLUBA IC00NCwxMSArNDQsMTMgQEAKLSAgICAgXQotICAgICBERUZJTkVTWydVU0VfSkFDSyddID0gVHJ1 ZQotIAotLWlmIENPTkZJR1snT1NfQVJDSCddID09ICdPcGVuQlNEJzoKLStpZiBDT05GSUdbJ01P Wl9TTkRJTyddOgotICAgICBTT1VSQ0VTICs9IFsKLSAgICAgICAgICdjdWJlYl9zbmRpby5jJywK LSAgICAgXQotICAgICBERUZJTkVTWydVU0VfU05ESU8nXSA9IFRydWUKLSsKLStpZiBDT05GSUdb J09TX0FSQ0gnXSA9PSAnT3BlbkJTRCc6Ci0gICAgIERFRklORVNbJ0RJU0FCTEVfTElCU05ESU9f RExPUEVOJ10gPSBUcnVlCi0gCi0gaWYgQ09ORklHWydPU19UQVJHRVQnXSA9PSAnRGFyd2luJzoK LS0tLSBhL2J1aWxkL21vei5jb25maWd1cmUvb2xkLmNvbmZpZ3VyZQkyMDIwLTA2LTMwIDEyOjE3 OjA0LjA4NzYwOTA3MCArMDIwMAotKysrIGIvYnVpbGQvbW96LmNvbmZpZ3VyZS9vbGQuY29uZmln dXJlCTIwMjAtMDYtMzAgMTI6MTc6MDQuMDg3NjA5MDcwICswMjAwCi1AQCAtODgsNiArODgsNyBA QAotIEBvbGRfY29uZmlndXJlX29wdGlvbnMoCi0gICAgICItLWNhY2hlLWZpbGUiLAotICAgICAi LS1kYXRhZGlyIiwKLSsgICAgIi0tZW5hYmxlLXNuZGlvIiwKLSAgICAgIi0tZW5hYmxlLWNyYXNo cmVwb3J0ZXIiLAotICAgICAiLS1lbmFibGUtZGJ1cyIsCi0gICAgICItLWVuYWJsZS1kZWJ1Zy1q cy1tb2R1bGVzIiwKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZmlyZWZveC1lc3IvcGF0Y2hlcy9zcWxp dGUtcHBjLnBhdGNoIGIvc3JjcGtncy9maXJlZm94LWVzci9wYXRjaGVzL3NxbGl0ZS1wcGMucGF0 Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi41MWY3ZmFhNjE4ZGQK LS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2ZpcmVmb3gtZXNyL3BhdGNoZXMvc3FsaXRlLXBw Yy5wYXRjaApAQCAtMCwwICsxLDU1IEBACitGcm9tIDY3MTU3YjFhYTdkYTBhMTQ2YjdkMmQ1YWJi OTIzN2VlYTFmNDM0ZWMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBEYW5pZWwgS29s ZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KK0RhdGU6IEZyaSwgMjMgU2VwIDIwMjIgMDI6Mzg6 MjkgKzAyMDAKK1N1YmplY3Q6IFtQQVRDSF0gZml4IHNxbGl0ZTMgb24gcHBjIHdpdGggY2xhbmcK KworVGhlIF9fcHBjX18gbWFjcm8gaXMgYWx3YXlzIGRlZmluZWQgb24gY2xhbmcgYnV0IG5vdCBn Y2MsIHdoaWNoCityZXN1bHRzIGluIHNxbGl0ZSBtaXN0YWtlbmx5IHRoaW5raW5nIHRoYXQgcHBj NjRsZSB3aXRoIGNsYW5nCitpcyBiaWcgZW5kaWFuLgorCitBbHNvIGRpc2FibGUgc29tZSBpbmxp bmUgYXNzZW1ibHkgc3R1ZmYgb24gcHBjIHRoYXQgaXMgbmV2ZXIgdXNlZAord2l0aCBnY2MgYW5k IHByb2JhYmx5IHdhcyBuZXZlciB0ZXN0ZWQgd2l0aCBtb2Rlcm4gbWFjaGluZXMuCistLS0KKyB0 aGlyZF9wYXJ0eS9zcWxpdGUzL3NyYy9zcWxpdGUzLmMgfCAxMCArKysrKy0tLS0tCisgMSBmaWxl IGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBh L3RoaXJkX3BhcnR5L3NxbGl0ZTMvc3JjL3NxbGl0ZTMuYyBiL3RoaXJkX3BhcnR5L3NxbGl0ZTMv c3JjL3NxbGl0ZTMuYworaW5kZXggNGYzZGM2OC4uOTAxNzA2MiAxMDA2NDQKKy0tLSBhL3RoaXJk X3BhcnR5L3NxbGl0ZTMvc3JjL3NxbGl0ZTMuYworKysrIGIvdGhpcmRfcGFydHkvc3FsaXRlMy9z cmMvc3FsaXRlMy5jCitAQCAtMTQzMTcsOSArMTQzMTcsOSBAQCB0eXBlZGVmIElOVDE2X1RZUEUg TG9nRXN0OworICMgaWYgZGVmaW5lZChpMzg2KSAgICAgIHx8IGRlZmluZWQoX19pMzg2X18pICAg ICAgfHwgZGVmaW5lZChfTV9JWDg2KSB8fCAgICBcCisgICAgICBkZWZpbmVkKF9feDg2XzY0KSAg fHwgZGVmaW5lZChfX3g4Nl82NF9fKSAgICB8fCBkZWZpbmVkKF9NX1g2NCkgIHx8ICAgIFwKKyAg ICAgIGRlZmluZWQoX01fQU1ENjQpICB8fCBkZWZpbmVkKF9NX0FSTSkgICAgICAgIHx8IGRlZmlu ZWQoX194ODYpICAgfHwgICAgXAorLSAgICAgZGVmaW5lZChfX0FSTUVMX18pIHx8IGRlZmluZWQo X19BQVJDSDY0RUxfXykgfHwgZGVmaW5lZChfTV9BUk02NCkKKysgICAgIGRlZmluZWQoX19BUk1F TF9fKSB8fCBkZWZpbmVkKF9fQUFSQ0g2NEVMX18pIHx8IGRlZmluZWQoX01fQVJNNjQpIHx8IGRl ZmluZWQoX19MSVRUTEVfRU5ESUFOX18pCisgIyAgIGRlZmluZSBTUUxJVEVfQllURU9SREVSICAg IDEyMzQKKy0jIGVsaWYgZGVmaW5lZChzcGFyYykgICAgIHx8IGRlZmluZWQoX19wcGNfXykgfHwg XAorKyMgZWxpZiBkZWZpbmVkKHNwYXJjKSAgICAgfHwgZGVmaW5lZChfX0JJR19FTkRJQU5fXykg fHwgXAorICAgICAgICBkZWZpbmVkKF9fQVJNRUJfXykgfHwgZGVmaW5lZChfX0FBUkNINjRFQl9f KQorICMgICBkZWZpbmUgU1FMSVRFX0JZVEVPUkRFUiAgICA0MzIxCisgIyBlbHNlCitAQCAtMjA3 MTMsNyArMjA3MTMsNyBAQCBTUUxJVEVfUFJJVkFURSBjb25zdCBjaGFyICoqc3FsaXRlM0NvbXBp bGVPcHRpb25zKGludCAqcG5PcHQpOworICAgICAgIHJldHVybiB2YWw7CisgICB9CisgCistI2Vs aWYgIWRlZmluZWQoX19TVFJJQ1RfQU5TSV9fKSAmJiAoZGVmaW5lZChfX0dOVUNfXykgJiYgZGVm aW5lZChfX3BwY19fKSkKKysjZWxpZiAwCisgCisgICBfX2lubGluZV9fIHNxbGl0ZV91aW50NjQg c3FsaXRlM0h3dGltZSh2b2lkKXsKKyAgICAgICB1bnNpZ25lZCBsb25nIGxvbmcgcmV0dmFsOwor QEAgLTE5NjM4NSw5ICsxOTYzODUsOSBAQCBzdHJ1Y3QgUnRyZWVNYXRjaEFyZyB7CisgI2lmIGRl ZmluZWQoaTM4NikgICAgIHx8IGRlZmluZWQoX19pMzg2X18pICAgfHwgZGVmaW5lZChfTV9JWDg2 KSB8fCAgICBcCisgICAgIGRlZmluZWQoX194ODZfNjQpIHx8IGRlZmluZWQoX194ODZfNjRfXykg fHwgZGVmaW5lZChfTV9YNjQpICB8fCAgICBcCisgICAgIGRlZmluZWQoX01fQU1ENjQpIHx8IGRl ZmluZWQoX01fQVJNKSAgICAgfHwgZGVmaW5lZChfX3g4NikgICB8fCAgICBcCistICAgIGRlZmlu ZWQoX19hcm1fXykKKysgICAgZGVmaW5lZChfX2FybV9fKSB8fCBkZWZpbmVkKF9fTElUVExFX0VO RElBTl9fKQorICMgZGVmaW5lIFNRTElURV9CWVRFT1JERVIgICAgMTIzNAorLSNlbGlmIGRlZmlu ZWQoc3BhcmMpICAgIHx8IGRlZmluZWQoX19wcGNfXykKKysjZWxpZiBkZWZpbmVkKHNwYXJjKSAg ICB8fCBkZWZpbmVkKF9fQklHX0VORElBTl9fKQorICMgZGVmaW5lIFNRTElURV9CWVRFT1JERVIg ICAgNDMyMQorICNlbHNlCisgIyBkZWZpbmUgU1FMSVRFX0JZVEVPUkRFUiAgICAwICAgICAvKiAw IG1lYW5zICJ1bmtub3duIGF0IGNvbXBpbGUtdGltZSIgKi8KKy0tIAorMi4zNy4zCisKZGlmZiAt LWdpdCBhL3NyY3BrZ3MvZmlyZWZveC1lc3IvdGVtcGxhdGUgYi9zcmNwa2dzL2ZpcmVmb3gtZXNy L3RlbXBsYXRlCmluZGV4IDU4YzA2NTY0OWJjNC4uNTdjOTFmY2M5ODYwIDEwMDY0NAotLS0gYS9z cmNwa2dzL2ZpcmVmb3gtZXNyL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZmlyZWZveC1lc3IvdGVt cGxhdGUKQEAgLTMsNyArMyw3IEBACiAjIFRISVMgUEtHIE1VU1QgQkUgU1lOQ0hST05JWkVEIFdJ VEggInNyY3BrZ3MvZmlyZWZveC1lc3ItaTE4biIuCiAjCiBwa2duYW1lPWZpcmVmb3gtZXNyCi12 ZXJzaW9uPTkxLjEwLjAKK3ZlcnNpb249MTAyLjMuMAogcmV2aXNpb249MQogd3Jrc3JjPSJmaXJl Zm94LSR7dmVyc2lvbn0iCiBidWlsZF9oZWxwZXI9InJ1c3QiCkBAIC0xMSwyNyArMTEsMjggQEAg c2hvcnRfZGVzYz0iTW96aWxsYSBGaXJlZm94IHdlYiBicm93c2VyIC0gRXh0ZW5kZWQgU3VwcG9y dCBSZWxlYXNlIgogbWFpbnRhaW5lcj0iT3JwaGFuZWQgPG9ycGhhbkB2b2lkbGludXgub3JnPiIK IGxpY2Vuc2U9Ik1QTC0yLjAsIEdQTC0yLjAtb3ItbGF0ZXIsIExHUEwtMi4xLW9yLWxhdGVyIgog aG9tZXBhZ2U9Imh0dHBzOi8vd3d3Lm1vemlsbGEub3JnL2ZpcmVmb3gvIgotZGlzdGZpbGVzPSIk e01PWklMTEFfU0lURX0vZmlyZWZveC9yZWxlYXNlcy8ke3ZlcnNpb259ZXNyL3NvdXJjZS9maXJl Zm94LSR7dmVyc2lvbn1lc3Iuc291cmNlLnRhci54egotIGh0dHBzOi8vZ2l0aHViLmNvbS9jaG1l ZWVkYWxmL2dlY2tvLWRldi9maWxlcy83NzI5MDg2L2VzcnBwY2ppdC50YXIuZ3oiCi1jaGVja3N1 bT0iODI1YThjYjM4YmI1ZGE5ODIxZWY4N2NjNmRlNjRhZjAwN2NmMGZhZWYwN2M0ZWQwNjUxMjgz YjU2YTBlZTFiYgotIDVlOTI2YThiZTVkNmQ0OTQ5YzNiYzNlYjk4ZTIxMDM2OTJlYWEyNmE5ODky OGRiNDMyYjFkNDRiNTM1ZjcyNDEiCitkaXN0ZmlsZXM9IiR7TU9aSUxMQV9TSVRFfS9maXJlZm94 L3JlbGVhc2VzLyR7dmVyc2lvbn1lc3Ivc291cmNlL2ZpcmVmb3gtJHt2ZXJzaW9ufWVzci5zb3Vy Y2UudGFyLnh6IgorY2hlY2tzdW09MzA4ZTIzYjZkY2Y5NjRlMzQyY2Y5NWZkMGM4YTM4NjEyNzM3 MWI2MjBhNDg5YWUyNmU1MzdkNzI4MzQxYjU1YQogCiBsaWIzMmRpc2FibGVkPXllcwogCiBob3N0 bWFrZWRlcGVuZHM9ImF1dG9jb25mMjEzIHVuemlwIHppcCBwa2ctY29uZmlnIHBlcmwgcHl0aG9u MyB5YXNtIHJ1c3QgY2FyZ28KLSBsbHZtIGNsYW5nIG5vZGVqcy1sdHMgY2JpbmRnZW4gcHl0aG9u IG5hc20gd2hpY2ggdGFyIgorIGxsdm0gY2xhbmcgbGxkIG5vZGVqcyBjYmluZGdlbiBuYXNtIHdo aWNoIHRhciIKIG1ha2VkZXBlbmRzPSJuc3MtZGV2ZWwgbGlianBlZy10dXJiby1kZXZlbCBndGsr My1kZXZlbCBpY3UtZGV2ZWwKLSBwaXhtYW4tZGV2ZWwgbGliZXZlbnQtZGV2ZWwgbGlibm90aWZ5 LWRldmVsIGxpYnZweC1kZXZlbAorIHBpeG1hbi1kZXZlbCBsaWJldmVudC1kZXZlbCBsaWJub3Rp ZnktZGV2ZWwgbGlidnB4LWRldmVsIGxpYndlYnAtZGV2ZWwKICBsaWJYcmVuZGVyLWRldmVsIGxp Ylhjb21wb3NpdGUtZGV2ZWwgbGliU00tZGV2ZWwgbGliWHQtZGV2ZWwgcnVzdC1zdGQKLSBsaWJY ZGFtYWdlLWRldmVsIGZyZWV0eXBlLWRldmVsICQodm9wdF9pZiBhbHNhIGFsc2EtbGliLWRldmVs KQotICQodm9wdF9pZiBkYnVzIGRidXMtZ2xpYi1kZXZlbCkgJCh2b3B0X2lmIHB1bHNlYXVkaW8g cHVsc2VhdWRpby1kZXZlbCkKLSAkKHZvcHRfaWYgeHNjcmVlbnNhdmVyIGxpYlhTY3JuU2F2ZXIt ZGV2ZWwpCisgbGliWGRhbWFnZS1kZXZlbCBmcmVldHlwZS1kZXZlbCBsaWJhdG9taWMtZGV2ZWwK KyAkKHZvcHRfaWYgYWxzYSBhbHNhLWxpYi1kZXZlbCkgJCh2b3B0X2lmIGRidXMgZGJ1cy1nbGli LWRldmVsKQorICQodm9wdF9pZiBwdWxzZWF1ZGlvIHB1bHNlYXVkaW8tZGV2ZWwpICQodm9wdF9p ZiB4c2NyZWVuc2F2ZXIgbGliWFNjcm5TYXZlci1kZXZlbCkKICAkKHZvcHRfaWYgc25kaW8gc25k aW8tZGV2ZWwpICQodm9wdF9pZiBqYWNrIGphY2stZGV2ZWwpIgotZGVwZW5kcz0ibnNzPj0zLjY2 IG5zcHI+PTQuMzIgZGVza3RvcC1maWxlLXV0aWxzIGhpY29sb3ItaWNvbi10aGVtZSIKK2RlcGVu ZHM9Im5zcz49My43MiBuc3ByPj00LjMyIGRlc2t0b3AtZmlsZS11dGlscyBoaWNvbG9yLWljb24t dGhlbWUiCiBjb25mbGljdHM9ImZpcmVmb3g+PTAiCiAKLWJ1aWxkX29wdGlvbnM9ImFsc2EgamFj ayBkYnVzIHB1bHNlYXVkaW8geHNjcmVlbnNhdmVyIHNuZGlvIHdheWxhbmQiCi1idWlsZF9vcHRp b25zX2RlZmF1bHQ9ImFsc2EgamFjayBkYnVzIHB1bHNlYXVkaW8geHNjcmVlbnNhdmVyIHNuZGlv IHdheWxhbmQiCitidWlsZF9vcHRpb25zPSJhbHNhIGphY2sgZGJ1cyBwdWxzZWF1ZGlvIHhzY3Jl ZW5zYXZlciBzbmRpbyB3YXlsYW5kIGx0byBjbGFuZyIKK2J1aWxkX29wdGlvbnNfZGVmYXVsdD0i YWxzYSBqYWNrIGRidXMgcHVsc2VhdWRpbyB4c2NyZWVuc2F2ZXIgc25kaW8gd2F5bGFuZCBjbGFu ZyIKKworZGVzY19vcHRpb25fbHRvPSJFbmFibGUgTGluayBUaW1lIE9wdGltaXphdGlvbiIKK2Rl c2Nfb3B0aW9uX2NsYW5nPSJCdWlsZCB3aXRoIGNsYW5nIgogCiBjYXNlICRYQlBTX1RBUkdFVF9N QUNISU5FIGluCiAJYXJtdls1Nl0qKSBicm9rZW49InJlcXVpcmVkIE5FT04gZXh0ZW5zaW9ucyBh cmUgbm90IHN1cHBvcnRlZCBvbiBhcm12NiIgOzsKQEAgLTM5LDE2ICs0MCw2IEBAIGNhc2UgJFhC UFNfVEFSR0VUX01BQ0hJTkUgaW4KIAlwcGMqKSBicm9rZW49InhwdGNhbGwgYml0cm90IiA7Owog ZXNhYwogCi1pZiBbICIkWEJQU19UQVJHRVRfTk9fQVRPTUlDOCIgXTsgdGhlbgotCW1ha2VkZXBl bmRzKz0iIGxpYmF0b21pYy1kZXZlbCIKLWZpCi0KLSMgd29yayBhcm91bmQgbGFyZ2UgZGVidWcg c3ltYm9scyBvbiAzMi1iaXQgaG9zdHMKLSMgY2FyZ286d2FybmluZz1jYzFwbHVzOiBvdXQgb2Yg bWVtb3J5IGFsbG9jYXRpbmcgNjU1MzYgYnl0ZXMgYWZ0ZXIgYSB0b3RhbCBvZiAxMDEwMTI2ODQ4 IGJ5dGVzCi1pZiBbICIkWEJQU19XT1JEU0laRSIgPSAiMzIiIF07IHRoZW4KLQlub2RlYnVnPXll cwotZmkKLQogIyB3ZSBuZWVkIHRoaXMgYmVjYXVzZSBjYXJnbyB2ZXJpZmllcyBjaGVja3N1bXMg b2YgYWxsIGZpbGVzIGluIHZlbmRvcgogIyBjcmF0ZXMgd2hlbiBpdCBidWlsZHMgYW5kIGdpdmVz IHVzIG5vIHdheSB0byBvdmVycmlkZSBvciB1cGRhdGUgdGhlCiAjIGZpbGUgc2FuZWx5Li4uIHNv IGp1c3QgY2xlYXIgb3V0IHRoZSBmaWxlIGxpc3QKQEAgLTYzLDEwMSArNTQsMTc0IEBAIHBvc3Rf ZXh0cmFjdCgpIHsKIAkJOzsKIAllc2FjCiAKLQkjIHBwYzY0bGUgaml0LCBzZWUgLS1lbmFibGUt aml0IGxhdGVyCi0JbXYgLi4vanMvc3JjL2ppdC9wcGM2NCBqcy9zcmMvaml0Ci0KIAkjIE1vemls bGEgQVBJIGtleXMgKHNlZSBodHRwczovL2xvY2F0aW9uLnNlcnZpY2VzLm1vemlsbGEuY29tL2Fw aSkKIAkjIE5vdGU6IFRoaXMgaXMgZm9yIFZvaWQgTGludXggdXNlIE9OTFkuCiAJZWNobyAtbiAi Y2Q4OTQ1MDQtN2EyYS00MjYzLWFiZmYtZmY3M2VlODlmZmNhIiA+IG1vemlsbGEtYXBpLWtleQog fQogCiBwb3N0X3BhdGNoKCkgewotCV9jbGVhcl92ZW5kb3JfY2hlY2tzdW1zIG51bS10cmFpdHMK Kwk6ICMgX2NsZWFyX3ZlbmRvcl9jaGVja3N1bXMgbnVtLXRyYWl0cwogfQogCiBkb19idWlsZCgp IHsKLQljcCAiJHtGSUxFU0RJUn0vbW96Y29uZmlnIiAiJHt3cmtzcmN9Ly5tb3pjb25maWciCi0K LQljYXNlICIkWEJQU19UQVJHRVRfTUFDSElORSIgaW4KLQkqLW11c2wpCi0JCWVjaG8gImFjX2Fk ZF9vcHRpb25zIC0tZGlzYWJsZS1qZW1hbGxvYyIgPj4ubW96Y29uZmlnCi0JCWVjaG8gImFjX2Fk ZF9vcHRpb25zIC0tZGlzYWJsZS1nb2xkIiA+Pi5tb3pjb25maWcKLQkJOzsKLQllc2FjCi0KLQlj YXNlICIkWEJQU19UQVJHRVRfTUFDSElORSIgaW4KLQl4ODZfNjQqfGk2ODYqfGFybSopCi0JCWVj aG8gImFjX2FkZF9vcHRpb25zIC0tZGlzYWJsZS1lbGYtaGFjayIgPj4ubW96Y29uZmlnCi0JCTs7 Ci0JZXNhYwotCi0JIyB3ZWJydGMgY3VycmVudGx5IGZhaWxzIHRvIGJ1aWxkIG9uIDMyLWJpdCBw cGMuLi4KLQkjIGFsc28gZW5hYmxlIGppdCBvbiBwcGM2NGxlLCB3aGljaCBpcyBwYXRjaGVkIGlu IGVhcmxpZXIKLSAgICAgICAgIyBodHRwczovL3d3dy50YWxvc3BhY2UuY29tLzIwMjEvMTIvOTFl c3Itd2l0aC1iYXNlbGluZS1jb21waWxlcmJhc2VsaW5lLmh0bWwKLQljYXNlICIkWEJQU19UQVJH RVRfTUFDSElORSIgaW4KLQlwcGM2NGxlKikgZWNobyAiYWNfYWRkX29wdGlvbnMgLS1lbmFibGUt aml0IiA+Pi5tb3pjb25maWcgOzsKLQlwcGM2NCopIGVjaG8gImFjX2FkZF9vcHRpb25zIC0tZGlz YWJsZS1qaXQiID4+Lm1vemNvbmZpZyA7OwotCXBwYyopCi0JCWVjaG8gImFjX2FkZF9vcHRpb25z IC0tZGlzYWJsZS1qaXQiID4+Lm1vemNvbmZpZwotCQllY2hvICJhY19hZGRfb3B0aW9ucyAtLWRp c2FibGUtd2VicnRjIiA+Pi5tb3pjb25maWcKLQkJOzsKLQllc2FjCi0KLQlpZiBbICIkWEJQU19U QVJHRVRfTk9fQVRPTUlDOCIgXTsgdGhlbgotCQlleHBvcnQgTERGTEFHUys9IiAtbGF0b21pYyIK LQlmaQotCi0JaWYgWyAiJENST1NTX0JVSUxEIiBdOyB0aGVuCi0JCUJJTkRHRU5fSU5DTFVERV9G TEFHUz0kKCAkQ1BQIC14IGMrKyAtdiAvZGV2L251bGwgLW8gL2Rldi9udWxsIDI+JjEgfCBcCi0J CQlzZWQgLW4gJy8jaW5jbHVkZSA8Li4uPiBzZWFyY2ggc3RhcnRzIGhlcmU6LywvRW5kIG9mIHNl YXJjaCBsaXN0Li9wJyB8IFwKLQkJCXNlZCAnMSwxZDskZCcgfCBzZWQgICdzL14gLy1JLycgfCBw YXN0ZSAtcyApCi0KLQkJZXhwb3J0IEJJTkRHRU5fQ0ZMQUdTPSItLXRhcmdldD0kWEJQU19DUk9T U19UUklQTEVUIFwKLQkJCS0tc3lzcm9vdD0ke1hCUFNfQ1JPU1NfQkFTRX0gJHtCSU5ER0VOX0lO Q0xVREVfRkxBR1N9IgotCQlleHBvcnQgSE9TVF9DQz1jYwotCQlleHBvcnQgVEFSR0VUX0NDPSIk e0NDfSIKLQkJZXhwb3J0IEhPU1RfQ0ZMQUdTPSIke1hCUFNfQ0ZMQUdTfSIKLQkJZXhwb3J0IEhP U1RfQ1hYRkxBR1M9IiR7WEJQU19DWFhGTEFHU30iCi0JCWV4cG9ydCBhY19jdl9zcWxpdGVfc2Vj dXJlX2RlbGV0ZT15ZXMgXAotCQkJYWNfY3Zfc3FsaXRlX3RocmVhZHNhZmU9eWVzIFwKLQkJCWFj X2N2X3NxbGl0ZV9lbmFibGVfZnRzMz15ZXMgXAotCQkJYWNfY3Zfc3FsaXRlX2Ric3RhdF92dGFi PXllcyBcCi0JCQlhY19jdl9zcWxpdGVfZW5hYmxlX3VubG9ja19ub3RpZnk9eWVzIFwKLQkJCWFj X2N2X3Byb2dfaG9zdGN4eF93b3Jrcz0xCi0KLQkJZWNobyAiYWNfYWRkX29wdGlvbnMgLS10YXJn ZXQ9JFhCUFNfQ1JPU1NfVFJJUExFVCIgPj4ubW96Y29uZmlnCi0JCWVjaG8gImFjX2FkZF9vcHRp b25zIC0taG9zdD0kWEJQU19UUklQTEVUIiA+Pi5tb3pjb25maWcKLQllbHNlCi0JCWVjaG8gImFj X2FkZF9vcHRpb25zIC0tdGFyZ2V0PSRYQlBTX1RSSVBMRVQiID4+Lm1vemNvbmZpZwotCQllY2hv ICJhY19hZGRfb3B0aW9ucyAtLWhvc3Q9JFhCUFNfVFJJUExFVCIgPj4ubW96Y29uZmlnCisJaWYg WyAiJGJ1aWxkX29wdGlvbl9jbGFuZyIgXTsgdGhlbgorCQlleHBvcnQgQ0M9Y2xhbmcKKwkJZXhw b3J0IENYWD1jbGFuZysrCisKKwkJaWYgWyAiJENST1NTX0JVSUxEIiBdOyB0aGVuCisJCQlta2Rp ciAtcCB3cmFwcGVyCisKKwkJCWxvY2FsIGdjY192ZXJzaW9uPSQoZ2NjIC1kdW1wdmVyc2lvbikK KwkJCWxvY2FsIGNsYW5nX3ZlcnNpb249JChjbGFuZyAtZHVtcHZlcnNpb24pCisKKwkJCWNhdCA8 PC0hID4id3JhcHBlci8ke1hCUFNfVEFSR0VUX01BQ0hJTkV9LWNsYW5nIgorCQkJIyEvYmluL3No CisJCQlleGVjIGNsYW5nIFwKKwkJCQktLXRhcmdldD0iJHtYQlBTX0NST1NTX1RSSVBMRVR9IiBc CisJCQkJLS1nY2MtdG9vbGNoYWluPS91c3IgXAorCQkJCS0tc3lzcm9vdD0iJHtYQlBTX0NST1NT X0JBU0V9IiBcCisJCQkJLW5vc3RkaW5jIFwKKwkJCQktaXN5c3RlbSAiJHtYQlBTX0NST1NTX0JB U0V9L3Vzci9pbmNsdWRlIiBcCisJCQkJLWlzeXN0ZW0gIi91c3IvbGliL2NsYW5nLyR7Y2xhbmdf dmVyc2lvbn0vaW5jbHVkZSIgXAorCQkJCSJcJEAiCisJCQkhCisKKwkJCWNhdCA8PC0hID4id3Jh cHBlci8ke1hCUFNfVEFSR0VUX01BQ0hJTkV9LWNsYW5nKysiCisJCQkjIS9iaW4vc2gKKwkJCWV4 ZWMgY2xhbmcrKyBcCisJCQkJLS10YXJnZXQ9IiR7WEJQU19DUk9TU19UUklQTEVUfSIgXAorCQkJ CS0tZ2NjLXRvb2xjaGFpbj0vdXNyIFwKKwkJCQktLXN5c3Jvb3Q9IiR7WEJQU19DUk9TU19CQVNF fSIgXAorCQkJCS1ub3N0ZGluYysrIFwKKwkJCQktaXN5c3RlbSAiJHtYQlBTX0NST1NTX0JBU0V9 L3Vzci9pbmNsdWRlL2MrKy8ke2djY192ZXJzaW9uJS4qfSIgXAorCQkJCS1pc3lzdGVtICIke1hC UFNfQ1JPU1NfQkFTRX0vdXNyL2luY2x1ZGUvYysrLyR7Z2NjX3ZlcnNpb24lLip9LyR7WEJQU19D Uk9TU19UUklQTEVUfSIgXAorCQkJCS1pc3lzdGVtICIke1hCUFNfQ1JPU1NfQkFTRX0vdXNyL2lu Y2x1ZGUvYysrLyR7Z2NjX3ZlcnNpb24lLip9L2JhY2t3YXJkIiBcCisJCQkJLW5vc3RkaW5jIFwK KwkJCQktaXN5c3RlbSAiJHtYQlBTX0NST1NTX0JBU0V9L3Vzci9pbmNsdWRlIiBcCisJCQkJLWlz eXN0ZW0gIi91c3IvbGliL2NsYW5nLyR7Y2xhbmdfdmVyc2lvbn0vaW5jbHVkZSIgXAorCQkJCSJc JEAiCisJCQkhCisKKwkJCWNobW9kICt4IHdyYXBwZXIvKgorCisJCQlleHBvcnQgUEFUSD0iJHt3 cmtzcmN9L3dyYXBwZXI6JFBBVEgiCisJCQlleHBvcnQgQ0M9JHtYQlBTX1RBUkdFVF9NQUNISU5F fS1jbGFuZworCQkJZXhwb3J0IENYWD0ke1hCUFNfVEFSR0VUX01BQ0hJTkV9LWNsYW5nKysKKwkJ ZmkKKworCQlleHBvcnQgQVI9bGx2bS1hcgorCQlleHBvcnQgTk09bGx2bS1ubQorCQlleHBvcnQg SE9TVF9DQz1jbGFuZworCQlleHBvcnQgSE9TVF9DWFg9Y2xhbmcrKwogCWZpCiAKLQlta2RpciAt cCB0aGlyZF9wYXJ0eS9ydXN0L2xpYmxvYWRpbmcvLmRlcHMKLQotCWNhc2UgIiRYQlBTX1RBUkdF VF9NQUNISU5FIiBpbgotCWFybXY3KikKLQkJZXhwb3J0IENGTEFHUys9IiAtbWZwdT1uZW9uIC1X bm8tcHNhYmkiCi0JCWV4cG9ydCBDWFhGTEFHUys9IiAtbWZwdT1uZW9uIC1Xbm8tcHNhYmkiCi0J CTs7Ci0JZXNhYworCWV4cG9ydCBBUz0iJHtDQ30iCisJZXhwb3J0IENGTEFHUz0iLU8yIgorCWV4 cG9ydCBDWFhGTEFHUz0iLU8yIgorCWV4cG9ydCBIT1NUX0NGTEFHUz0iIgorCWV4cG9ydCBIT1NU X0NYWEZMQUdTPSIiCisJZXhwb3J0IExERkxBR1M9Ii1XbCwtcnBhdGg9L3Vzci9saWIvZmlyZWZv eCIKKwkjIGV4cG9ydCBMREZMQUdTKz0iLVdsLC0tdGhyZWFkcz0ke1hCUFNfTUFLRUpPQlN9Igor CisJZGlzYWJsZV9qZW1hbGxvYygpIHsKKwkJaWYgWyAiJFhCUFNfVEFSR0VUX0xJQkMiID0gIm11 c2wiIF07IHRoZW4KKwkJCWVjaG8gImFjX2FkZF9vcHRpb25zIC0tZGlzYWJsZS1qZW1hbGxvYyIK KwkJZmkKKwl9CisKKwlkaXNhYmxlX2VsZmhhY2soKSB7CisJCWNhc2UgIiRYQlBTX1RBUkdFVF9N QUNISU5FIiBpbgorCQl4ODZfNjQqfGk2ODYqfGFybSp8YWFyY2g2NCopIGVjaG8gImFjX2FkZF9v cHRpb25zIC0tZGlzYWJsZS1lbGYtaGFjayIgOzsKKwkJZXNhYworCX0KKworCWRpc2FibGVfd2Vi cnRjKCkgeworCQkjIGl0IHNlZW1zIG1vemlsbGEgaGFzIHN0YXJ0ZWQgY2F0Y2hpbmcgdXAgd2l0 aCBnb29nbGUncyB3ZWJydGMKKwkJIyBhbmQgdGhpcyBuZXdseSBpbnZvbHZlcyBpbnRyb2R1Y2lu ZyBzZXZlcmFsIG1lZ2FieXRlcyBvZiBnZW5lcmF0ZWQKKwkJIyBqc29uIGp1bmsgdGhhdCB3ZSBq dXN0IGNhbm5vdCBtYWludGFpbiBpbi10cmVlLCBhZGRpdGlvbmFsbHkgdGhleQorCQkjIGhhdmUg aW5kaWNhdGVkIHRoYXQgdGhleSB3aWxsIGJlIHJlLWdlbmVyYXRpbmcgdGhlc2UgZnJlcXVlbnRs eQorCQkjCisJCSMgaXQgaXMgdW5hY2NlcHRhYmxlIHRvIGtlZXAgYSA3TUIgcGF0Y2ggZG93bnN0 cmVhbSwgc28gZGlzYWJsZSBpdAorCQkjCisJCSMgaHR0cHM6Ly9waGFicmljYXRvci5zZXJ2aWNl cy5tb3ppbGxhLmNvbS9EMTM0NzM4CisJCSMKKwkJY2FzZSAiJFhCUFNfVEFSR0VUX01BQ0hJTkUi IGluCisJCXBwYzY0bGUqfGFybXY3bCopIGVjaG8gImFjX2FkZF9vcHRpb25zIC0tZGlzYWJsZS13 ZWJydGMiIDs7CisJCWVzYWMKKworCQkjIHRoaXJkX3BhcnR5L2xpYndlYnJ0Yy9jb21tb25fYXVk aW8vd2F2X2ZpbGUuY2M6OTM6MjogZXJyb3I6CisJCSMgI2Vycm9yICJOZWVkIHRvIGNvbnZlcnQg c2FtcGxlcyB0byBiaWctZW5kaWFuIHdoZW4gcmVhZGluZyBmcm9tIFdBViBmaWxlIgorCQlpZiBb ICIkWEJQU19UQVJHRVRfRU5ESUFOIiA9ICJiZSIgXTsgdGhlbgorCQkJZWNobyAiYWNfYWRkX29w dGlvbnMgLS1kaXNhYmxlLXdlYnJ0YyIKKwkJZmkKKwl9CisKKwljYXQgPDwtISA+Lm1vemNvbmZp ZworCWFjX2FkZF9vcHRpb25zIC0tcHJlZml4PS91c3IKKwlhY19hZGRfb3B0aW9ucyAtLWxpYmRp cj0vdXNyL2xpYgorCWFjX2FkZF9vcHRpb25zIC0taG9zdD0ke1hCUFNfVFJJUExFVH0KKwlhY19h ZGRfb3B0aW9ucyAtLXRhcmdldD0ke1hCUFNfQ1JPU1NfVFJJUExFVDotJHtYQlBTX1RSSVBMRVR9 fQorCWFjX2FkZF9vcHRpb25zIC0tZW5hYmxlLWxpbmtlcj0kKHZvcHRfaWYgY2xhbmcgbGxkIGJm ZCkKKwkkKHZvcHRfaWYgbHRvICdhY19hZGRfb3B0aW9ucyAtLWVuYWJsZS1sdG89Y3Jvc3MnKQor CSQodm9wdF9pZiBjbGFuZyAnYWNfYWRkX29wdGlvbnMgLS13aXRoLWxpYmNsYW5nLXBhdGg9L3Vz ci9saWInKQorCisJYWNfYWRkX29wdGlvbnMgLS1lbmFibGUtb2ZmaWNpYWwtYnJhbmRpbmcKKwlh Y19hZGRfb3B0aW9ucyAtLWVuYWJsZS1hcHBsaWNhdGlvbj1icm93c2VyCisJYWNfYWRkX29wdGlv bnMgLS1lbmFibGUtcmVsZWFzZQorCWFjX2FkZF9vcHRpb25zIC0tZW5hYmxlLWhhcmRlbmluZwor CWFjX2FkZF9vcHRpb25zIC0tZW5hYmxlLW9wdGltaXplPSJcJHtDRkxBR1N9IgorCWFjX2FkZF9v cHRpb25zIC0tZW5hYmxlLXBhdGgtcmVtYXBwaW5nPWMscnVzdAorCWFjX2FkZF9vcHRpb25zIC0t ZGlzYWJsZS10ZXN0cworCWFjX2FkZF9vcHRpb25zIC0tZGlzYWJsZS1jcmFzaHJlcG9ydGVyCisJ YWNfYWRkX29wdGlvbnMgLS1kaXNhYmxlLXVwZGF0ZXIKKwlhY19hZGRfb3B0aW9ucyAtLWRpc2Fi bGUtaW5zdGFsbC1zdHJpcAorCWFjX2FkZF9vcHRpb25zIC0tZGlzYWJsZS1zdHJpcAorCWFjX2Fk ZF9vcHRpb25zIC0tZGlzYWJsZS1wcm9maWxpbmcKKwkkKGRpc2FibGVfamVtYWxsb2MpCisJJChk aXNhYmxlX2VsZmhhY2spCisJJChkaXNhYmxlX3dlYnJ0YykKKworCSMgWFhYOiB3YXNpIGN1cnJl bnRseSBub3QgcmVhZHkKKwkjIGFjX2FkZF9vcHRpb25zIC0td2l0aC13YXNpLXN5c3Jvb3Q9L3Vz ci9zaGFyZS93YXNpLXN5c3Jvb3QKKwlhY19hZGRfb3B0aW9ucyAtLXdpdGhvdXQtd2FzbS1zYW5k Ym94ZWQtbGlicmFyaWVzCisKKwlhY19hZGRfb3B0aW9ucyAtLXdpdGgtbW96aWxsYS1hcGkta2V5 ZmlsZT0iJHt3cmtzcmN9L21vemlsbGEtYXBpLWtleSIKKworCWFjX2FkZF9vcHRpb25zIC0tZW5h YmxlLXN5c3RlbS1waXhtYW4KKwlhY19hZGRfb3B0aW9ucyAtLXdpdGgtc3lzdGVtLWZmaQorCWFj X2FkZF9vcHRpb25zIC0td2l0aC1zeXN0ZW0taWN1CisJYWNfYWRkX29wdGlvbnMgLS13aXRoLXN5 c3RlbS1qcGVnCisJYWNfYWRkX29wdGlvbnMgLS13aXRoLXN5c3RlbS1saWJldmVudAorCWFjX2Fk ZF9vcHRpb25zIC0td2l0aC1zeXN0ZW0tbGlidnB4CisJYWNfYWRkX29wdGlvbnMgLS13aXRoLXN5 c3RlbS1uc3ByCisJYWNfYWRkX29wdGlvbnMgLS13aXRoLXN5c3RlbS1uc3MKKwlhY19hZGRfb3B0 aW9ucyAtLXdpdGgtc3lzdGVtLXdlYnAKKwlhY19hZGRfb3B0aW9ucyAtLXdpdGgtc3lzdGVtLXps aWIKKwkjIFhYWDogdGhlIHN5c3RlbSdzIGxpYnBuZyBkb2Vzbid0IGhhdmUgQVBORyBzdXBwb3J0 CisJYWNfYWRkX29wdGlvbnMgLS13aXRob3V0LXN5c3RlbS1wbmcKKworCWFjX2FkZF9vcHRpb25z IC0td2l0aC11bnNpZ25lZC1hZGRvbi1zY29wZXM9YXBwLHN5c3RlbQorCWFjX2FkZF9vcHRpb25z IC0tYWxsb3ctYWRkb24tc2lkZWxvYWQKKworCWFjX2FkZF9vcHRpb25zICQodm9wdF9lbmFibGUg ZGJ1cykKKwlhY19hZGRfb3B0aW9ucyAkKHZvcHRfZW5hYmxlIGRidXMgbmVja28td2lmaSkKKwlh Y19hZGRfb3B0aW9ucyAtLWRpc2FibGUtYXVkaW8tYmFja2VuZHMKKwlhY19hZGRfb3B0aW9ucyAk KHZvcHRfZW5hYmxlIGFsc2EpCisJYWNfYWRkX29wdGlvbnMgJCh2b3B0X2VuYWJsZSBqYWNrKQor CWFjX2FkZF9vcHRpb25zICQodm9wdF9lbmFibGUgcHVsc2VhdWRpbykKKwlhY19hZGRfb3B0aW9u cyAkKHZvcHRfZW5hYmxlIHNuZGlvKQorCWFjX2FkZF9vcHRpb25zIC0tZW5hYmxlLWRlZmF1bHQt dG9vbGtpdD0kKHZvcHRfaWYgd2F5bGFuZCAnY2Fpcm8tZ3RrMy13YXlsYW5kJyAnY2Fpcm8tZ3Rr MycpCisKKwlNT1pfQVBQX1JFTU9USU5HTkFNRT1GaXJlZm94CisJIQogCiAJIyB3b3JrIGFyb3Vu ZCBsYXJnZSBkZWJ1ZyBzeW1ib2xzIG9uIDMyLWJpdCBob3N0cwogCWlmIFsgIiRYQlBTX1dPUkRT SVpFIiA9ICIzMiIgXTsgdGhlbgogCQllY2hvICJhY19hZGRfb3B0aW9ucyAtLWRpc2FibGUtZGVi dWctc3ltYm9scyIgPj4ubW96Y29uZmlnCiAJCWVjaG8gImFjX2FkZF9vcHRpb25zIC0tZGlzYWJs ZS1kZWJ1ZyIgPj4ubW96Y29uZmlnCiAJCWV4cG9ydCBMREZMQUdTKz0iIC1XbCwtLW5vLWtlZXAt bWVtb3J5IgotCQkjIHBhdGNoIHRoZSBydXN0IGRlYnVnIGxldmVsLCB0aGlzIGlzIGhhcmRjb2Rl ZAotCQl2c2VkIC1pICdzL2RlYnVnX2luZm8gPSAiMiIvZGVidWdfaW5mbyA9ICIwIi8nIFwKLQkJ YnVpbGQvbW96LmNvbmZpZ3VyZS90b29sY2hhaW4uY29uZmlndXJlCiAJZmkKIAotCWNhc2UgIiRY QlBTX1RBUkdFVF9NQUNISU5FIiBpbgotCWFhcmNoNjQqfGk2ODYqfHg4Nl82NCopCi0JCWVjaG8g ImFjX2FkZF9vcHRpb25zIC0tZW5hYmxlLXJ1c3Qtc2ltZCIgPj4ubW96Y29uZmlnIDs7Ci0JZXNh YwotCi0JZXhwb3J0IExERkxBR1MrPSIgLVdsLC1ycGF0aD0vdXNyL2xpYi9maXJlZm94IgotCiAJ aWYgWyAiJFNPVVJDRV9EQVRFX0VQT0NIIiBdOyB0aGVuCiAJCWV4cG9ydCBNT1pfQlVJTERfREFU RT0kKGRhdGUgLS1kYXRlICJAJFNPVVJDRV9EQVRFX0VQT0NIIiAiKyVZJW0lZCVIJU0lUyIpCiAJ ZmkKQEAgLTE2NSwyNiArMjI5LDE1IEBAIGRvX2J1aWxkKCkgewogCWV4cG9ydCBNT1pfTUFLRV9G TEFHUz0iJHttYWtlam9ic30iCiAJZXhwb3J0IE1PWl9OT1NQQU09MQogCWV4cG9ydCBNT1pCVUlM RF9TVEFURV9QQVRIPSIke3dya3NyY30vbW96YnVpbGQiCi0JZXhwb3J0IE1BQ0hfVVNFX1NZU1RF TV9QWVRIT049MQotCi0JZXhwb3J0IEFTPSRDQwotCi0JY2F0IDw8ISA+Pi5tb3pjb25maWcKLWFj X2FkZF9vcHRpb25zIC0td2l0aC1tb3ppbGxhLWFwaS1rZXlmaWxlPSIke3dya3NyY30vbW96aWxs YS1hcGkta2V5IgotYWNfYWRkX29wdGlvbnMgJCh2b3B0X2VuYWJsZSBhbHNhKQotYWNfYWRkX29w dGlvbnMgJCh2b3B0X2VuYWJsZSBqYWNrKQotYWNfYWRkX29wdGlvbnMgJCh2b3B0X2VuYWJsZSBz bmRpbykKLWFjX2FkZF9vcHRpb25zICQodm9wdF9lbmFibGUgZGJ1cykKLWFjX2FkZF9vcHRpb25z ICQodm9wdF9lbmFibGUgZGJ1cyBuZWNrby13aWZpKQotYWNfYWRkX29wdGlvbnMgJCh2b3B0X2Vu YWJsZSBwdWxzZWF1ZGlvKQotYWNfYWRkX29wdGlvbnMgLS1lbmFibGUtZGVmYXVsdC10b29sa2l0 PSQodm9wdF9pZiB3YXlsYW5kICdjYWlyby1ndGszLXdheWxhbmQnICdjYWlyby1ndGszJykKLSEK KwlleHBvcnQgTUFDSF9CVUlMRF9QWVRIT05fTkFUSVZFX1BBQ0tBR0VfU09VUkNFPXN5c3RlbQog CiAJcm0gLWYgb2xkLWNvbmZpZ3VyZQogCS4vbWFjaCBidWlsZAogfQorCiBkb19pbnN0YWxsKCkg ewotCWV4cG9ydCBNQUNIX1VTRV9TWVNURU1fUFlUSE9OPTEKKwlleHBvcnQgTUFDSF9CVUlMRF9Q WVRIT05fTkFUSVZFX1BBQ0tBR0VfU09VUkNFPXN5c3RlbQorCWV4cG9ydCBNT1pCVUlMRF9TVEFU RV9QQVRIPSIke3dya3NyY30vbW96YnVpbGQiCiAJREVTVERJUj0iJERFU1RESVIiIC4vbWFjaCBp bnN0YWxsCiAKIAl2aW5zdGFsbCAke0ZJTEVTRElSfS92ZW5kb3IuanMgNjQ0IHVzci9saWIvZmly ZWZveC9icm93c2VyL2RlZmF1bHRzL3ByZWZlcmVuY2VzCmRpZmYgLS1naXQgYS9zcmNwa2dzL2Zp cmVmb3gvcGF0Y2hlcy9wcGM2NC13ZWJydGMucGF0Y2ggYi9zcmNwa2dzL2ZpcmVmb3gvcGF0Y2hl cy9wcGM2NC13ZWJydGMucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw MDAwLi5kYWQ1OGUwNGMzYzgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2ZpcmVmb3gvcGF0 Y2hlcy9wcGM2NC13ZWJydGMucGF0Y2gKQEAgLTAsMCArMSwyMiBAQAorY29tbWl0IDIxNDk2N2U1 Y2VhNjFmZjQ5ZmIyMTgxMGU4ZDhjNzU1ZGI4NGY2ODIKK0F1dGhvcjogRGFuaWVsIEtvbGVzYSA8 ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CitEYXRlOiAgIFR1ZSBPY3QgNCAxMTo1MzowNiAyMDIyICsw MjAwCisKKyAgICBmaXggbGlid2VicnRjIG9uIHBwYzY0CisKK2RpZmYgLS1naXQgYS90aGlyZF9w YXJ0eS9saWJ3ZWJydGMvbW96LmJ1aWxkIGIvdGhpcmRfcGFydHkvbGlid2VicnRjL21vei5idWls ZAoraW5kZXggODU3OWY4Yi4uZDljYTc5ZCAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L2xpYndl YnJ0Yy9tb3ouYnVpbGQKKysrKyBiL3RoaXJkX3BhcnR5L2xpYndlYnJ0Yy9tb3ouYnVpbGQKK0BA IC01MjAsNyArNTIwLDEwIEBAIGlmIENPTkZJR1siQ1BVX0FSQ0giXSA9PSAicHBjNjQiIGFuZCBD T05GSUdbIk9TX1RBUkdFVCJdID09ICJMaW51eCI6CisgICAgICAgICAiL3RoaXJkX3BhcnR5L2xp YndlYnJ0Yy9hcGkvYXVkaW9fY29kZWNzL2lzYWMvYXVkaW9fZGVjb2Rlcl9pc2FjX2Zsb2F0X2du IiwKKyAgICAgICAgICIvdGhpcmRfcGFydHkvbGlid2VicnRjL2FwaS9hdWRpb19jb2RlY3MvaXNh Yy9hdWRpb19lbmNvZGVyX2lzYWNfZmxvYXRfZ24iLAorICAgICAgICAgIi90aGlyZF9wYXJ0eS9s aWJ3ZWJydGMvbW9kdWxlcy9hdWRpb19jb2RpbmcvaXNhY19jX2duIiwKKy0gICAgICAgICIvdGhp cmRfcGFydHkvbGlid2VicnRjL21vZHVsZXMvYXVkaW9fY29kaW5nL2lzYWNfZ24iCisrICAgICAg ICAiL3RoaXJkX3BhcnR5L2xpYndlYnJ0Yy9tb2R1bGVzL2F1ZGlvX2NvZGluZy9pc2FjX2duIiwK KysgICAgICAgICIvdGhpcmRfcGFydHkvbGlid2VicnRjL21vZHVsZXMvZGVza3RvcF9jYXB0dXJl L2Rlc2t0b3BfY2FwdHVyZV9nZW5lcmljX2duIiwKKysgICAgICAgICIvdGhpcmRfcGFydHkvbGli d2VicnRjL21vZHVsZXMvZGVza3RvcF9jYXB0dXJlL2Rlc2t0b3BfY2FwdHVyZV9nbiIsCisrICAg ICAgICAiL3RoaXJkX3BhcnR5L2xpYndlYnJ0Yy9tb2R1bGVzL2Rlc2t0b3BfY2FwdHVyZS9wcmlt aXRpdmVzX2duIgorICAgICBdCisgCisgaWYgQ09ORklHWyJDUFVfQVJDSCJdID09ICJ4ODYiIGFu ZCBDT05GSUdbIk9TX1RBUkdFVCJdID09ICJMaW51eCI6CmRpZmYgLS1naXQgYS9zcmNwa2dzL2Zp cmVmb3gvdGVtcGxhdGUgYi9zcmNwa2dzL2ZpcmVmb3gvdGVtcGxhdGUKaW5kZXggMTNjNmQ0Yzlj OWYzLi44ZDM3MzRkOWM4MDMgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZmlyZWZveC90ZW1wbGF0ZQor KysgYi9zcmNwa2dzL2ZpcmVmb3gvdGVtcGxhdGUKQEAgLTE0NSw3ICsxNDUsNyBAQCBkb19idWls ZCgpIHsKIAkJIyBodHRwczovL3BoYWJyaWNhdG9yLnNlcnZpY2VzLm1vemlsbGEuY29tL0QxMzQ3 MzgKIAkJIwogCQljYXNlICIkWEJQU19UQVJHRVRfTUFDSElORSIgaW4KLQkJcHBjNjRsZSp8YXJt djdsKikgZWNobyAiYWNfYWRkX29wdGlvbnMgLS1kaXNhYmxlLXdlYnJ0YyIgOzsKKwkJYXJtdjds KikgZWNobyAiYWNfYWRkX29wdGlvbnMgLS1kaXNhYmxlLXdlYnJ0YyIgOzsKIAkJZXNhYwogCiAJ CSMgdGhpcmRfcGFydHkvbGlid2VicnRjL2NvbW1vbl9hdWRpby93YXZfZmlsZS5jYzo5MzoyOiBl cnJvcjoK --===============3450143608043496490==--