From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 From: Guinevere Larsen To: git-commits@fedoraproject.org Subject: [rpms/gdb] gdb-17.2-rebase-f44: remove gdb-6.5-BEA-testsuite.patch Date: Sun, 28 Jun 2026 00:01:30 GMT Message-ID: <178260489037.1.13241800188605076732.rpms-gdb-ce2a1b8ca476@fedoraproject.org> List-ID: X-Git-Repo: rpms/gdb X-Git-Branch: gdb-17.2-rebase-f44 X-Git-Rev: ce2a1b8ca476995b98fbaf5a02cd42c52618f0ab ICAgICAgICAgICAgQSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KCiAgICAgICAgICAgIFJl cG8gICA6IHJwbXMvZ2RiCiAgICAgICAgICAgIEJyYW5jaCA6IGdkYi0xNy4yLXJlYmFzZS1mNDQK ICAgICAgICAgICAgQ29tbWl0IDogY2UyYTFiOGNhNDc2OTk1Yjk4ZmJhZjVhMDJjZDQyYzUyNjE4 ZjBhYgogICAgICAgICAgICBBdXRob3IgOiBHdWluZXZlcmUgTGFyc2VuIDxibGFyc2VuQHJlZGhh dC5jb20+CiAgICAgICAgICAgIERhdGUgICA6IDIwMjQtMDEtMjVUMTk6Mjc6MzArMDE6MDAKICAg ICAgICAgICAgU3RhdHMgIDogKzQ4Ly05ODggaW4gNSBmaWxlKHMpCiAgICAgICAgICAgIFVSTCAg ICA6IGh0dHBzOi8vc3JjLmZlZG9yYXByb2plY3Qub3JnL3JwbXMvZ2RiL2MvY2UyYTFiOGNhNDc2 OTk1Yjk4ZmJhZjVhMDJjZDQyYzUyNjE4ZjBhYj9icmFuY2g9Z2RiLTE3LjItcmViYXNlLWY0NAoK ICAgICAgICAgICAgTG9nOgogICAgICAgICAgICByZW1vdmUgZ2RiLTYuNS1CRUEtdGVzdHN1aXRl LnBhdGNoCgpBIHNpbWlsYXIgdmVyc2lvbiB3YXMgYWNjZXB0ZWQgdXBzdHJlYW0gYW5kIHdpbGwg bWFrZSBpdHMgd2F5IGJhY2sgaGVyZQp3aXRoIHRoZSBuZXh0IHJlYmFzZS4KCi0tLQpkaWZmIC0t Z2l0IGEvX2dkYi5zcGVjLlBhdGNoLmluY2x1ZGUgYi9fZ2RiLnNwZWMuUGF0Y2guaW5jbHVkZQpp bmRleCA5YmQ0YWQ2Li5jYjllOWQ4IDEwMDY0NAotLS0gYS9fZ2RiLnNwZWMuUGF0Y2guaW5jbHVk ZQorKysgYi9fZ2RiLnNwZWMuUGF0Y2guaW5jbHVkZQpAQCAtMTAsMTQ4ICsxMCwxNDQgQEAgUGF0 Y2gwMDI6IGdkYi02LjMtZ3N0YWNrLTIwMDUwNDExLnBhdGNoCiAjPXB1c2gramFuOiBJdCBzaG91 bGQgYmUgcmVwbGFjZWQgYnkgSW5maW5pdHkgcHJvamVjdC4KIFBhdGNoMDAzOiBnZGItNi41LWJ6 MTg1MzM3LXJlc29sdmUtdGxzLXdpdGhvdXQtZGVidWdpbmZvLXYyLnBhdGNoCiAKLSMgSW1wcm92 ZWQgdGVzdHN1aXRlIHJlc3VsdHMgYnkgdGhlIHRlc3RzdWl0ZSBwcm92aWRlZCBieSB0aGUgY291 cnRlc3kgb2YgQkVBLgotIz1mZWRvcmF0ZXN0OiBGb3IgdXBzdHJlYW0gaXQgc2hvdWxkIGJlIHJl d3JpdHRlbiBhcyBhIGRlamFnbnUgdGVzdCwgdGhlIHRlc3Qgb2Ygbm8gIj8/IiB3YXMgdXNlZnVs LgotUGF0Y2gwMDQ6IGdkYi02LjUtQkVBLXRlc3RzdWl0ZS5wYXRjaAotCiAjIFRlc3Qgc2lkZWVm ZmVjdHMgb2Ygc2tpcHBpbmcgcHBjIC5zbyBsaWJzIHRyYW1wb2xpbmVzIChCWiAyMTgzNzkpLgog Iz1mZWRvcmF0ZXN0Ci1QYXRjaDAwNTogZ2RiLTYuNS1iejIxODM3OS1wcGMtc29saWItdHJhbXBv bGluZS10ZXN0LnBhdGNoCitQYXRjaDAwNDogZ2RiLTYuNS1iejIxODM3OS1wcGMtc29saWItdHJh bXBvbGluZS10ZXN0LnBhdGNoCiAKICMgQWxsb3cgcnVubmluZyBgL3Vzci9iaW4vZ2NvcmUnIHdp dGggcHJvdmlkZWQgYnV0IGluYWNjZXNzaWJsZSB0dHkgKEJaIDIyOTUxNykuCiAjPWZlZG9yYXRl c3QKLVBhdGNoMDA2OiBnZGItNi42LWJ6MjI5NTE3LWdjb3JlLXdpdGhvdXQtdGVybWluYWwucGF0 Y2gKK1BhdGNoMDA1OiBnZGItNi42LWJ6MjI5NTE3LWdjb3JlLXdpdGhvdXQtdGVybWluYWwucGF0 Y2gKIAogIyBBdm9pZCB0b28gbG9uZyB0aW1lb3V0cyBvbiBmYWlsaW5nIGNhc2VzIG9mICJhbm5v dGExLmV4cCBhbm5vdGEzLmV4cCIuCiAjPWZlZG9yYXRlc3QKLVBhdGNoMDA3OiBnZGItNi42LXRl c3RzdWl0ZS10aW1lb3V0cy5wYXRjaAorUGF0Y2gwMDY6IGdkYi02LjYtdGVzdHN1aXRlLXRpbWVv dXRzLnBhdGNoCiAKICMgU3VwcG9ydCBmb3Igc3RlcHBpbmcgb3ZlciBQUEMgYXRvbWljIGluc3Ry dWN0aW9uIHNlcXVlbmNlcyAoQlogMjM3NTcyKS4KICM9ZmVkb3JhdGVzdAotUGF0Y2gwMDg6IGdk Yi02LjYtYnoyMzc1NzItcHBjLWF0b21pYy1zZXF1ZW5jZS10ZXN0LnBhdGNoCitQYXRjaDAwNzog Z2RiLTYuNi1iejIzNzU3Mi1wcGMtYXRvbWljLXNlcXVlbmNlLXRlc3QucGF0Y2gKIAogIyBUZXN0 IGtlcm5lbCBWRFNPIGRlY29kaW5nIHdoaWxlIGF0dGFjaGluZyB0byBhbiBpMzg2IHByb2Nlc3Mu CiAjPWZlZG9yYXRlc3QKLVBhdGNoMDA5OiBnZGItNi4zLWF0dGFjaC1zZWUtdmRzby10ZXN0LnBh dGNoCitQYXRjaDAwODogZ2RiLTYuMy1hdHRhY2gtc2VlLXZkc28tdGVzdC5wYXRjaAogCiAjIFRl c3QgbGVmdG92ZXIgem9tYmllIHByb2Nlc3MgKEJaIDI0Mzg0NSkuCiAjPWZlZG9yYXRlc3QKLVBh dGNoMDEwOiBnZGItNi41LWJ6MjQzODQ1LXN0YWxlLXRlc3Rpbmctem9tYmllLXRlc3QucGF0Y2gK K1BhdGNoMDA5OiBnZGItNi41LWJ6MjQzODQ1LXN0YWxlLXRlc3Rpbmctem9tYmllLXRlc3QucGF0 Y2gKIAogIyBOZXcgbG9jYXRpbmcgb2YgdGhlIG1hdGNoaW5nIGJpbmFyaWVzIGZyb20gdGhlIHB1 cmUgY29yZSBmaWxlIChidWlsZC1pZCkuCiAjPXB1c2gramFuCi1QYXRjaDAxMTogZ2RiLTYuNi1i dWlsZGlkLWxvY2F0ZS5wYXRjaAorUGF0Y2gwMTA6IGdkYi02LjYtYnVpbGRpZC1sb2NhdGUucGF0 Y2gKIAogIyBGaXggbG9hZGluZyBvZiBjb3JlIGZpbGVzIHdpdGhvdXQgYnVpbGQtaWRzIGJ1dCB3 aXRoIGJ1aWxkLWlkcyBpbiBleGVjdXRhYmxlcy4KICMgTG9hZCBzdHJpY3RseSBidWlsZC1pZC1j aGVja2VkIGNvcmUgZmlsZXMgb25seSBpZiBubyBleGVjdXRhYmxlIGlzIHNwZWNpZmllZAogIyAo SmFuIEtyYXRvY2h2aWwsIFJIIEJaIDEzMzk4NjIpLgogIz1wdXNoK2phbgotUGF0Y2gwMTI6IGdk Yi02LjYtYnVpbGRpZC1sb2NhdGUtc29saWItbWlzc2luZy1pZHMucGF0Y2gKK1BhdGNoMDExOiBn ZGItNi42LWJ1aWxkaWQtbG9jYXRlLXNvbGliLW1pc3NpbmctaWRzLnBhdGNoCiAKICM9cHVzaCtq YW4KLVBhdGNoMDEzOiBnZGItNi42LWJ1aWxkaWQtbG9jYXRlLXJwbS5wYXRjaAorUGF0Y2gwMTI6 IGdkYi02LjYtYnVpbGRpZC1sb2NhdGUtcnBtLnBhdGNoCiAKICMgVGVzdCBQUEMgaGlkaW5nIG9m IGNhbGwtdm9sYXRpbGUgcGFyYW1ldGVyIHJlZ2lzdGVyLgogIz1mZWRvcmF0ZXN0Ci1QYXRjaDAx NDogZ2RiLTYuNy1wcGMtY2xvYmJlcmVkLXJlZ2lzdGVycy1PMi10ZXN0LnBhdGNoCitQYXRjaDAx MzogZ2RiLTYuNy1wcGMtY2xvYmJlcmVkLXJlZ2lzdGVycy1PMi10ZXN0LnBhdGNoCiAKICMgVGVz dCBnY29yZSBtZW1vcnkgYW5kIHRpbWUgcmVxdWlyZW1lbnRzIGZvciBsYXJnZSBpbmZlcmlvcnMu CiAjPWZlZG9yYXRlc3QKLVBhdGNoMDE1OiBnZGItNi41LWdjb3JlLWJ1ZmZlci1saW1pdC10ZXN0 LnBhdGNoCitQYXRjaDAxNDogZ2RiLTYuNS1nY29yZS1idWZmZXItbGltaXQtdGVzdC5wYXRjaAog CiAjIFRlc3QgR0NPUkUgZm9yIHNobWlkIDAgc2hhcmVkIG1lbW9yeSBtYXBwaW5ncy4KICM9ZmVk b3JhdGVzdDogQnV0IGl0IGlzIGJyb2tlbiBhbnl3YXksIHNvbWV0aW1lcyB0aGUgY2FzZSBiZWlu ZyB0ZXN0ZWQgaXMgbm90IHJlcHJvZHVjaWJsZS4KLVBhdGNoMDE2OiBnZGItNi4zLW1hcHBpbmct emVyby1pbm9kZS10ZXN0LnBhdGNoCitQYXRjaDAxNTogZ2RiLTYuMy1tYXBwaW5nLXplcm8taW5v ZGUtdGVzdC5wYXRjaAogCiAjIFRlc3QgYSBjcmFzaCBvbiBsaWJyYXJpZXMgbWlzc2luZyB0aGUg LnRleHQgc2VjdGlvbi4KICM9ZmVkb3JhdGVzdAotUGF0Y2gwMTc6IGdkYi02LjUtc2VjdGlvbi1u dW0tZml4dXAtdGVzdC5wYXRjaAorUGF0Y2gwMTY6IGdkYi02LjUtc2VjdGlvbi1udW0tZml4dXAt dGVzdC5wYXRjaAogCiAjIEZpeCByZXNvbHZpbmcgb2YgdmFyaWFibGVzIGF0IGxvY2F0aW9ucyBs aXN0cyBpbiBwcmVsaW5rZWQgbGlicyAoQlogNDY2OTAxKS4KICM9ZmVkb3JhdGVzdAotUGF0Y2gw MTg6IGdkYi02LjgtYno0NjY5MDEtYmFja3RyYWNlLWZ1bGwtcHJlbGlua2VkLnBhdGNoCitQYXRj aDAxNzogZ2RiLTYuOC1iejQ2NjkwMS1iYWNrdHJhY2UtZnVsbC1wcmVsaW5rZWQucGF0Y2gKIAog IyBOZXcgdGVzdCBmb3Igc3RlcC1yZXN1bWUgYnJlYWtwb2ludCBwbGFjZWQgaW4gbXVsdGlwbGUg dGhyZWFkcyBhdCBvbmNlLgogIz1mZWRvcmF0ZXN0Ci1QYXRjaDAxOTogZ2RiLXNpbXVsdGFuZW91 cy1zdGVwLXJlc3VtZS1icmVha3BvaW50LXRlc3QucGF0Y2gKK1BhdGNoMDE4OiBnZGItc2ltdWx0 YW5lb3VzLXN0ZXAtcmVzdW1lLWJyZWFrcG9pbnQtdGVzdC5wYXRjaAogCiAjIEZpeCBHTlUvTGlu dXggY29yZSBvcGVuOiBDYW4ndCByZWFkIHBhdGhuYW1lIGZvciBsb2FkIG1hcDogSW5wdXQvb3V0 cHV0IGVycm9yLgogIyBGaXggcmVncmVzc2lvbiBvZiB1bmRpc3BsYXllZCBtaXNzaW5nIHNoYXJl ZCBsaWJyYXJpZXMgY2F1c2VkIGJ5IGEgZml4IGZvci4KICM9ZmVkb3JhdGVzdDogSXQgc2hvdWxk IGJlIGluIGdsaWJjOiBsaWJjLWFscGhhOiA8MjAwOTEwMDQxNjE3MDYuR0EyNzQ1MEAuKj4KLVBh dGNoMDIwOiBnZGItY29yZS1vcGVuLXZkc28td2FybmluZy5wYXRjaAorUGF0Y2gwMTk6IGdkYi1j b3JlLW9wZW4tdmRzby13YXJuaW5nLnBhdGNoCiAKICMgRml4IGZvbGxvdy1leGVjIGZvciBDKysg cHJvZ3JhbXMgKGJ1Z3JlcG9ydGVkIGJ5IE1hcnRpbiBTdHJhbnNreSkuCiAjPWZlZG9yYXRlc3QK LVBhdGNoMDIxOiBnZGItYXJjaGVyLW5leHQtb3Zlci10aHJvdy1jeHgtZXhlYy5wYXRjaAorUGF0 Y2gwMjA6IGdkYi1hcmNoZXItbmV4dC1vdmVyLXRocm93LWN4eC1leGVjLnBhdGNoCiAKICMgV29y a2Fyb3VuZCBsaWJycG0gQlogNjQzMDMxIGR1ZSB0byBpdHMgdW5leHBlY3RlZCBleGl0KCkgY2Fs bHMgKEJaIDY0Mjg3OSkuCiAjPXB1c2gramFuCi1QYXRjaDAyMjogZ2RiLTYuNi1idWlsZGlkLWxv Y2F0ZS1ycG0tbGlicnBtLXdvcmthcm91bmQucGF0Y2gKK1BhdGNoMDIxOiBnZGItNi42LWJ1aWxk aWQtbG9jYXRlLXJwbS1saWJycG0td29ya2Fyb3VuZC5wYXRjaAogCiAjIFtkZWxheWVkLXN5bWZp bGVdIFRlc3QgYSBiYWNrdHJhY2UgcmVncmVzc2lvbiBvbiBDRklzIHdpdGhvdXQgRElFIChCWiA2 MTQ2MDQpLgogIz1mZWRvcmF0ZXN0Ci1QYXRjaDAyMzogZ2RiLXRlc3QtYnQtY2ZpLXdpdGhvdXQt ZGllLnBhdGNoCitQYXRjaDAyMjogZ2RiLXRlc3QtYnQtY2ZpLXdpdGhvdXQtZGllLnBhdGNoCiAK ICMgVmVyaWZ5IEdEQiBQeXRob24gYnVpbHQtaW4gZnVuY3Rpb24gZ2RiLnNvbGliX2FkZHJlc3Mg ZXhpc3RzIChCWiAjIDYzNDEwOCkuCiAjPWZlZG9yYXRlc3QKLVBhdGNoMDI0OiBnZGItYno2MzQx MDgtc29saWJfYWRkcmVzcy5wYXRjaAorUGF0Y2gwMjM6IGdkYi1iejYzNDEwOC1zb2xpYl9hZGRy ZXNzLnBhdGNoCiAKICMgW2FyY2hlci10cm9tZXktZGVsYXllZC1zeW1maWxlXSBOZXcgdGVzdCBn ZGIuZHdhcmYyL2R3Mi1hcmFuZ2VzLmV4cC4KICM9ZmVkb3JhdGVzdAotUGF0Y2gwMjU6IGdkYi10 ZXN0LWR3Mi1hcmFuZ2VzLnBhdGNoCitQYXRjaDAyNDogZ2RiLXRlc3QtZHcyLWFyYW5nZXMucGF0 Y2gKIAogIyBXb3JrYXJvdW5kIFBSIGxpYmMvMTQxNjYgZm9yIGluZmVyaW9yIGNhbGxzIG9mIHN0 cnN0ci4KICM9ZmVkb3JhdGVzdDogQ29tcGF0aWJpbGl0eSB3aXRoIFJIRUxzICh1bmNoZWNrZWQg d2hpY2ggb25lcykuCi1QYXRjaDAyNjogZ2RiLWdsaWJjLXN0cnN0ci13b3JrYXJvdW5kLnBhdGNo CitQYXRjaDAyNTogZ2RiLWdsaWJjLXN0cnN0ci13b3JrYXJvdW5kLnBhdGNoCiAKICMgVGVzdGNh c2UgZm9yIGBTZXR0aW5nIHNvbGliLWFic29sdXRlLXByZWZpeCBicmVha3MgdkRTTycgKEJaIDgx ODM0MykuCiAjPWZlZG9yYXRlc3QKLVBhdGNoMDI3OiBnZGItcmhiei04MTgzNDMtc2V0LXNvbGli LWFic29sdXRlLXByZWZpeC10ZXN0Y2FzZS5wYXRjaAorUGF0Y2gwMjY6IGdkYi1yaGJ6LTgxODM0 My1zZXQtc29saWItYWJzb2x1dGUtcHJlZml4LXRlc3RjYXNlLnBhdGNoCiAKICMgSW1wb3J0IHJl Z3Jlc3Npb24gdGVzdCBmb3IgYGdkYi9maW5kdmFyLmM6NDE3OiBpbnRlcm5hbC1lcnJvcjoKICMg cmVhZF92YXJfdmFsdWU6IEFzc2VydGlvbiBgZnJhbWUnIGZhaWxlZC4nIChSSCBCWiA5NDc1NjQp IGZyb20gUkhFTCA2LjUuCiAjPWZlZG9yYXRlc3QKLVBhdGNoMDI4OiBnZGItcmhiejk0NzU2NC1m aW5kdmFyLWFzc2VydGlvbi1mcmFtZS1mYWlsZWQtdGVzdGNhc2UucGF0Y2gKK1BhdGNoMDI3OiBn ZGItcmhiejk0NzU2NC1maW5kdmFyLWFzc2VydGlvbi1mcmFtZS1mYWlsZWQtdGVzdGNhc2UucGF0 Y2gKIAogIyBGaXggJ21lbW9yeSBsZWFrIGluIGluZnB5X3JlYWRfbWVtb3J5KCknIChSSCBCWiAx MDA3NjE0KQogIz1mZWRvcmF0ZXN0Ci1QYXRjaDAyOTogZ2RiLXJoYnoxMDA3NjE0LW1lbWxlYWst aW5mcHlfcmVhZF9tZW1vcnktdGVzdC5wYXRjaAorUGF0Y2gwMjg6IGdkYi1yaGJ6MTAwNzYxNC1t ZW1sZWFrLWluZnB5X3JlYWRfbWVtb3J5LXRlc3QucGF0Y2gKIAogIyBGaXggJ2dkYiBnaXZlcyBo aWdobHkgbWlzbGVhZGluZyBlcnJvciB3aGVuIGRlYnVnaW5mbyBwa2cgaXMgcHJlc2VudCwKICMg YnV0IG5vdCBjb3JyZXNwb25kaW5nIGJpbmFyeSBwa2cnIChSSCBCWiA5ODExNTQpLgogIz1wdXNo K2phbgotUGF0Y2gwMzA6IGdkYi02LjYtYnVpbGRpZC1sb2NhdGUtbWlzbGVhZGluZy13YXJuaW5n LW1pc3NpbmctZGVidWdpbmZvLXJoYno5ODExNTQucGF0Y2gKK1BhdGNoMDI5OiBnZGItNi42LWJ1 aWxkaWQtbG9jYXRlLW1pc2xlYWRpbmctd2FybmluZy1taXNzaW5nLWRlYnVnaW5mby1yaGJ6OTgx MTU0LnBhdGNoCiAKICMgVGVzdGNhc2UgZm9yICdbU0FQXSBSZWN1cnNpdmUgZGxvcGVuIGNhdXNl cyBTQVAgSEFOQSBpbnN0YWxsZXIgdG8KICMgY3Jhc2guJyAoUkggQlogMTE1NjE5MikuCiAjPWZl ZG9yYXRlc3QKLVBhdGNoMDMxOiBnZGItcmhiejExNTYxOTItcmVjdXJzaXZlLWRsb3Blbi10ZXN0 LnBhdGNoCitQYXRjaDAzMDogZ2RiLXJoYnoxMTU2MTkyLXJlY3Vyc2l2ZS1kbG9wZW4tdGVzdC5w YXRjaAogCiAjIEZpeCAnYGNhdGNoIHN5c2NhbGwnIGRvZXNuJ3Qgd29yayBmb3IgcGFyZW50IGFm dGVyIGBmb3JrJyBpcyBjYWxsZWQnCiAjIChQaGlsaXBwZSBXYXJvcXVpZXJzLCBSSCBCWiAxMTQ5 MjA1KS4KICM9ZmVkb3JhdGVzdAotUGF0Y2gwMzI6IGdkYi1yaGJ6MTE0OTIwNS1jYXRjaC1zeXNj YWxsLWFmdGVyLWZvcmstdGVzdC5wYXRjaAorUGF0Y2gwMzE6IGdkYi1yaGJ6MTE0OTIwNS1jYXRj aC1zeXNjYWxsLWFmdGVyLWZvcmstdGVzdC5wYXRjaAogCiAjIEZpeCAnW3BwYzY0XSBhbmQgW3Mz OTB4XSB3cm9uZyBwcm9sb2d1ZSBza2lwIG9uIC1PMiAtZyBjb2RlJyAoSmFuCiAjIEtyYXRvY2h2 aWwsIFJIIEJaIDEwODQ0MDQpLgogIz1mZWRvcmF0ZXN0Ci1QYXRjaDAzMzogZ2RiLXJoYnoxMDg0 NDA0LXBwYzY0LXMzOTB4LXdyb25nLXByb2xvZ3VlLXNraXAtTzItZy0zb2YzLnBhdGNoCitQYXRj aDAzMjogZ2RiLXJoYnoxMDg0NDA0LXBwYzY0LXMzOTB4LXdyb25nLXByb2xvZ3VlLXNraXAtTzIt Zy0zb2YzLnBhdGNoCiAKICMgRm9yY2UgbGlibmN1cnNlc3cgb3ZlciBsaWJuY3Vyc2VzIHRvIG1h dGNoIHRoZSBpbmNsdWRlcyAoUkggQlogMTI3MDUzNCkuCiAjPXB1c2gramFuCi1QYXRjaDAzNDog Z2RiLWZlZG9yYS1saWJuY3Vyc2Vzdy5wYXRjaAorUGF0Y2gwMzM6IGdkYi1mZWRvcmEtbGlibmN1 cnNlc3cucGF0Y2gKIAogIyBbYWFyY2g2NF0gRml4IGhhcmR3YXJlIHdhdGNocG9pbnRzIChSSCBC WiAxMjYxNTY0KS4KICM9ZmVkb3JhdGVzdAotUGF0Y2gwMzU6IGdkYi1yaGJ6MTI2MTU2NC1hYXJj aDY0LWh3LXdhdGNocG9pbnQtdGVzdC5wYXRjaAorUGF0Y2gwMzQ6IGdkYi1yaGJ6MTI2MTU2NC1h YXJjaDY0LWh3LXdhdGNocG9pbnQtdGVzdC5wYXRjaAogCiAjIEFkZCBtZXNzYWdlcyBzdWdnZXN0 aW5nIG1vcmUgcmVjZW50IFJIRUwgZ2Ric2VydmVyIChSSCBCWiAxMzIxMTE0KS4KICM9ZmVkb3Jh Ci1QYXRjaDAzNjogZ2RiLWNvbnRhaW5lci1yaC1wa2cucGF0Y2gKK1BhdGNoMDM1OiBnZGItY29u dGFpbmVyLXJoLXBrZy5wYXRjaAogCiAjIFtkdHMrZWw3XSBbeDg2Kl0gQnVuZGxlIGxpbnV4X3Bl cmYuaCBmb3IgbGliaXB0IChSSCBCWiAxMjU2NTEzKS4KICM9ZmVkb3JhCi1QYXRjaDAzNzogZ2Ri LWxpbnV4X3BlcmYtYnVuZGxlLnBhdGNoCitQYXRjaDAzNjogZ2RiLWxpbnV4X3BlcmYtYnVuZGxl LnBhdGNoCiAKICMgVXBkYXRlIGdkYi1hZGQtaW5kZXguc2ggc3VjaCB0aGF0LCB3aGVuIHRoZSBH REIgZW52aXJvbm1lbnQKICMgdmFyaWFibGUgaXMgbm90IHNldCwgdGhlIHNjcmlwdCBpcyBzbWFy dGVyIHRoYW4ganVzdCBsb29raW5nIGZvcgpAQCAtMTY1LDQwICsxNjEsNDAgQEAgUGF0Y2gwMzc6 IGdkYi1saW51eF9wZXJmLWJ1bmRsZS5wYXRjaAogIyAgIGh0dHBzOi8vZmVkb3JhcHJvamVjdC5v cmcvd2lraS9DaGFuZ2VzL01pbmltYWxfR0RCX2luX2J1aWxkcm9vdAogIwogIz1mZWRvcmEKLVBh dGNoMDM4OiBnZGItYWRkLWluZGV4LnBhdGNoCitQYXRjaDAzNzogZ2RiLWFkZC1pbmRleC5wYXRj aAogCiAjIEJhY2stcG9ydCB1cHN0cmVhbSBjb21taXQgMWYwZmFiN2ZmODYgYXMgcGFydCBvZiBh IGZpeCBmb3IKICMgbm9uLWRldGVybWluaXN0aWMgZ2RiLWluZGV4IGdlbmVyYXRpb24gKFJIIEJa IDIyMzIwODYpLgotUGF0Y2gwMzk6IGdkYi1yaGJ6MjIzMjA4Ni1yZWZhY3Rvci1zZWxmdGVzdC1z dXBwb3J0LnBhdGNoCitQYXRjaDAzODogZ2RiLXJoYnoyMjMyMDg2LXJlZmFjdG9yLXNlbGZ0ZXN0 LXN1cHBvcnQucGF0Y2gKIAogIyBCYWNrLXBvcnQgdXBzdHJlYW0gY29tbWl0IGFhMTliYzFkMjU5 IGFzIHBhcnQgb2YgYSBmaXggZm9yCiAjIG5vbi1kZXRlcm1pbmlzdGljIGdkYi1pbmRleCBnZW5l cmF0aW9uIChSSCBCWiAyMjMyMDg2KS4KLVBhdGNoMDQwOiBnZGItcmhiei0yMjMyMDg2LXJlZHVj ZS1zaXplLW9mLWdkYi1pbmRleC5wYXRjaAorUGF0Y2gwMzk6IGdkYi1yaGJ6LTIyMzIwODYtcmVk dWNlLXNpemUtb2YtZ2RiLWluZGV4LnBhdGNoCiAKICMgQmFjay1wb3J0IHVwc3RyZWFtIGNvbW1p dCBhY2MxMTdiNTdmNyBhcyBwYXJ0IG9mIGEgZml4IGZvcgogIyBub24tZGV0ZXJtaW5pc3RpYyBn ZGItaW5kZXggZ2VuZXJhdGlvbiAoUkggQlogMjIzMjA4NikuCi1QYXRjaDA0MTogZ2RiLXJoYnot MjIzMjA4Ni1jcHAtaWZ5LW1hcHBlZC1zeW10YWIucGF0Y2gKK1BhdGNoMDQwOiBnZGItcmhiei0y MjMyMDg2LWNwcC1pZnktbWFwcGVkLXN5bXRhYi5wYXRjaAogCiAjIEJhY2stcG9ydCB1cHN0cmVh bSBjb21taXQgYWZmMjUwMTQ1YWYgYXMgcGFydCBvZiBhIGZpeCBmb3IKICMgbm9uLWRldGVybWlu aXN0aWMgZ2RiLWluZGV4IGdlbmVyYXRpb24gKFJIIEJaIDIyMzIwODYpLgotUGF0Y2gwNDI6IGdk Yi1yaGJ6LTIyMzIwODYtZ2VuZXJhdGUtZ2RiLWluZGV4LWNvbnNpc3RlbnRseS5wYXRjaAorUGF0 Y2gwNDE6IGdkYi1yaGJ6LTIyMzIwODYtZ2VuZXJhdGUtZ2RiLWluZGV4LWNvbnNpc3RlbnRseS5w YXRjaAogCiAjIEJhY2stcG9ydCB1cHN0cmVhbSBjb21taXQgMzY0NGY0MWRjODAgYXMgcGFydCBv ZiBhIGZpeCBmb3IKICMgbm9uLWRldGVybWluaXN0aWMgZ2RiLWluZGV4IGdlbmVyYXRpb24gKFJI IEJaIDIyMzIwODYpLgotUGF0Y2gwNDM6IGdkYi1yaGJ6LTIyMzIwODYtZ2VuZXJhdGUtZHdhcmYt NS1pbmRleC1jb25zaXN0ZW50bHkucGF0Y2gKK1BhdGNoMDQyOiBnZGItcmhiei0yMjMyMDg2LWdl bmVyYXRlLWR3YXJmLTUtaW5kZXgtY29uc2lzdGVudGx5LnBhdGNoCiAKIAotUGF0Y2gwNDQ6IGdk Yi1yaGJ6MjI1MDY1Mi1nZGJweV9naWwucGF0Y2gKK1BhdGNoMDQzOiBnZGItcmhiejIyNTA2NTIt Z2RicHlfZ2lsLnBhdGNoCiAKIAotUGF0Y2gwNDU6IGdkYi1yaGJ6MjI1MDY1Mi1hdm9pZC1QeU9T X1JlYWRsaW5lVFN0YXRlLnBhdGNoCitQYXRjaDA0NDogZ2RiLXJoYnoyMjUwNjUyLWF2b2lkLVB5 T1NfUmVhZGxpbmVUU3RhdGUucGF0Y2gKIAogIyBCYWNrcG9ydCBwb3RlbnRpYWwgZml4IGZvciBS SCBCWiAyMjU3NTYyLgotUGF0Y2gwNDY6IGdkYi1yaGJ6MjI1NzU2Mi1jcC1uYW1lc3BhY2UtbnVs bC1wdHItY2hlY2sucGF0Y2gKK1BhdGNoMDQ1OiBnZGItcmhiejIyNTc1NjItY3AtbmFtZXNwYWNl LW51bGwtcHRyLWNoZWNrLnBhdGNoCiAKIAotUGF0Y2gwNDc6IGdkYi1mdGJzLXN3YXBwZWQtY2Fs bG9jLWFyZ3MucGF0Y2gKK1BhdGNoMDQ2OiBnZGItZnRicy1zd2FwcGVkLWNhbGxvYy1hcmdzLnBh dGNoCiAKICMgQmFja3BvcnQgZ2RiOiBmaXggImxpc3QgLiIgcmVsYXRlZCBjcmFzaAotUGF0Y2gw NDg6IGdkYi1yaGJ6MjI1OTg1MC1saXN0LXBlcmlvZC1jcmFzaC1maXgucGF0Y2gKK1BhdGNoMDQ3 OiBnZGItcmhiejIyNTk4NTAtbGlzdC1wZXJpb2QtY3Jhc2gtZml4LnBhdGNoCiAKCmRpZmYgLS1n aXQgYS9fZ2RiLnNwZWMucGF0Y2guaW5jbHVkZSBiL19nZGIuc3BlYy5wYXRjaC5pbmNsdWRlCmlu ZGV4IGVmNTVkZDAuLjgyNThkYzkgMTAwNjQ0Ci0tLSBhL19nZGIuc3BlYy5wYXRjaC5pbmNsdWRl CisrKyBiL19nZGIuc3BlYy5wYXRjaC5pbmNsdWRlCkBAIC00NSw0ICs0NSwzIEBACiAlcGF0Y2gg LXAxIC1QMDQ1CiAlcGF0Y2ggLXAxIC1QMDQ2CiAlcGF0Y2ggLXAxIC1QMDQ3Ci0lcGF0Y2ggLXAx IC1QMDQ4CgpkaWZmIC0tZ2l0IGEvX3BhdGNoX29yZGVyIGIvX3BhdGNoX29yZGVyCmluZGV4IGMw NTc5ZDcuLjZiN2U5NTIgMTAwNjQ0Ci0tLSBhL19wYXRjaF9vcmRlcgorKysgYi9fcGF0Y2hfb3Jk ZXIKQEAgLTEsNyArMSw2IEBACiBnZGItNi4zLXJoLXRlc3R2ZXJzaW9uLTIwMDQxMjAyLnBhdGNo CiBnZGItNi4zLWdzdGFjay0yMDA1MDQxMS5wYXRjaAogZ2RiLTYuNS1iejE4NTMzNy1yZXNvbHZl LXRscy13aXRob3V0LWRlYnVnaW5mby12Mi5wYXRjaAotZ2RiLTYuNS1CRUEtdGVzdHN1aXRlLnBh dGNoCiBnZGItNi41LWJ6MjE4Mzc5LXBwYy1zb2xpYi10cmFtcG9saW5lLXRlc3QucGF0Y2gKIGdk Yi02LjYtYnoyMjk1MTctZ2NvcmUtd2l0aG91dC10ZXJtaW5hbC5wYXRjaAogZ2RiLTYuNi10ZXN0 c3VpdGUtdGltZW91dHMucGF0Y2gKCmRpZmYgLS1naXQgYS9nZGItNi41LUJFQS10ZXN0c3VpdGUu cGF0Y2ggYi9nZGItNi41LUJFQS10ZXN0c3VpdGUucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IGExNWNlYzIuLjAwMDAwMDAKLS0tIGEvZ2RiLTYuNS1CRUEtdGVzdHN1aXRlLnBh dGNoCisrKyAvZGV2L251bGwKQEAgLTEsOTM4ICswLDAgQEAKLUZyb20gRkVET1JBX1BBVENIRVMg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBGZWRvcmEgR0RCIHBhdGNoZXMgPGludmFs aWRAZW1haWwuY29tPgotRGF0ZTogRnJpLCAyNyBPY3QgMjAxNyAyMTowNzo1MCArMDIwMAotU3Vi amVjdDogZ2RiLTYuNS1CRUEtdGVzdHN1aXRlLnBhdGNoCi0KLTs7IEltcHJvdmVkIHRlc3RzdWl0 ZSByZXN1bHRzIGJ5IHRoZSB0ZXN0c3VpdGUgcHJvdmlkZWQgYnkgdGhlIGNvdXJ0ZXN5IG9mIEJF QS4KLTs7PWZlZG9yYXRlc3Q6IEZvciB1cHN0cmVhbSBpdCBzaG91bGQgYmUgcmV3cml0dGVuIGFz IGEgZGVqYWdudSB0ZXN0LCB0aGUgdGVzdCBvZiBubyAiPz8iIHdhcyB1c2VmdWwuCi0KLWRpZmYg LS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi50aHJlYWRzL3RocmVhZGNyYXNoLmMgYi9nZGIvdGVz dHN1aXRlL2dkYi50aHJlYWRzL3RocmVhZGNyYXNoLmMKLW5ldyBmaWxlIG1vZGUgMTAwNjQ0Ci0t LS0gL2Rldi9udWxsCi0rKysgYi9nZGIvdGVzdHN1aXRlL2dkYi50aHJlYWRzL3RocmVhZGNyYXNo LmMKLUBAIC0wLDAgKzEsMzAxIEBACi0rLyoKLSsgKiBUaGUgcG9pbnQgb2YgdGhpcyBwcm9ncmFt IGlzIHRvIGNyYXNoIGluIGEgbXVsdGktdGhyZWFkZWQgYXBwLgotKyAqIFRoZXJlIGFyZSBzZXZl biB0aHJlYWRzLCBkb2luZyB0aGUgZm9sbG93aW5nIHRoaW5nczoKLSsgKiAqIFNwaW5uaW5nCi0r ICogKiBTcGlubmluZyBpbnNpZGUgYSBzaWduYWwgaGFuZGxlcgotKyAqICogU3Bpbm5pbmcgaW5z aWRlIGEgc2lnbmFsIGhhbmRsZXIgZXhlY3V0aW5nIG9uIHRoZSBhbHRzdGFjawotKyAqICogSW4g YSBzeXNjYWxsCi0rICogKiBJbiBhIHN5c2NhbGwgaW5zaWRlIGEgc2lnbmFsIGhhbmRsZXIKLSsg KiAqIEluIGEgc3lzY2FsbCBpbnNpZGUgYSBzaWduYWwgaGFuZGxlciBleGVjdXRpbmcgb24gdGhl IGFsdHN0YWNrCi0rICogKiBGaW5hbGx5LCB0aGUgbWFpbiB0aHJlYWQgY3Jhc2hlcyBpbiBtYWlu LCB3aXRoIG5vIGZyaWxscy4KLSsgKgotKyAqIFRoZXNlIGFyZSB0aGUgdGhpbmdzIHRocmVhZHMg aW4gSlJvY2tpdCB0ZW5kIHRvIGJlIGRvaW5nLiAgSWYgZ2RiCi0rICogY2FuIGhhbmRsZSB0aG9z ZSB0aGluZ3MsIGJvdGggaW4gY29yZSBmaWxlcyBhbmQgZHVyaW5nIGxpdmUKLSsgKiBkZWJ1Z2dp bmcsIHRoYXQgd2lsbCBoZWxwIChhdCBsZWFzdCkgSlJvY2tpdCBkZXZlbG9wbWVudC4KLSsgKgot KyAqIExldCB0aGUgcHJvZ3JhbSBjcmVhdGUgYSBjb3JlIGZpbGUsIHRoZW4gbG9hZCB0aGUgY29y ZSBmaWxlIGludG8KLSsgKiBnZGIuICBJbnNpZGUgZ2RiLCB5b3Ugc2hvdWxkIGJlIGFibGUgdG8g ZG8gc29tZXRoaW5nIGxpa2UgdGhpczoKLSsgKgotKyAqIChnZGIpIHQgYSBhIGJ0Ci0rICoKLSsg KiBUaHJlYWQgNyAocHJvY2VzcyA0MzUyKToKLSsgKiAjMCAgMHgwMDFiYTdkYyBpbiBfX25hbm9z bGVlcF9ub2NhbmNlbCAoKSBmcm9tIC9saWIvdGxzL2xpYmMuc28uNgotKyAqICMxICAweDAwMWJh NWZmIGluIHNsZWVwICgpIGZyb20gL2xpYi90bHMvbGliYy5zby42Ci0rICogIzIgIDB4MDgwNDg4 YTIgaW4gbWFrZVN5c2NhbGwgKGlnbm9yZWQ9MHgwKSBhdCB0aHJlYWRjcmFzaC5jOjExOAotKyAq ICMzICAweDAwNmFhZGVjIGluIHN0YXJ0X3RocmVhZCAoKSBmcm9tIC9saWIvdGxzL2xpYnB0aHJl YWQuc28uMAotKyAqICM0ICAweDAwMWVkMTlhIGluIGNsb25lICgpIGZyb20gL2xpYi90bHMvbGli Yy5zby42Ci0rICoKLSsgKiBUaHJlYWQgNiAocHJvY2VzcyA0MzUzKToKLSsgKiAjMCAgMHgwMDFi YTdkYyBpbiBfX25hbm9zbGVlcF9ub2NhbmNlbCAoKSBmcm9tIC9saWIvdGxzL2xpYmMuc28uNgot KyAqICMxICAweDAwMWJhNWZmIGluIHNsZWVwICgpIGZyb20gL2xpYi90bHMvbGliYy5zby42Ci0r ICogIzIgIDB4MDgwNDg5OGYgaW4gc3lzY2FsbGluZ1NpZ2hhbmRsZXIgKHNpZ25vPTEwLCBpbmZv PTB4YjZiZTc2ZjAsIGNvbnRleHQ9MHhiNmJlNzc3MCkKLSsgKiAgICAgYXQgdGhyZWFkY3Jhc2gu YzoxNjgKLSsgKiAjMyAgPHNpZ25hbCBoYW5kbGVyIGNhbGxlZD4KLSsgKiAjNCAgMHgwMDZhZGY1 ZSBpbiBwdGhyZWFkX2tpbGwgKCkgZnJvbSAvbGliL3Rscy9saWJwdGhyZWFkLnNvLjAKLSsgKiAj NSAgMHgwODA0OGE1MSBpbiBtYWtlU3lzY2FsbEZyb21TaWdoYW5kbGVyIChpZ25vcmVkPTB4MCkg YXQgdGhyZWFkY3Jhc2guYzoyMDQKLSsgKiAjNiAgMHgwMDZhYWRlYyBpbiBzdGFydF90aHJlYWQg KCkgZnJvbSAvbGliL3Rscy9saWJwdGhyZWFkLnNvLjAKLSsgKiAjNyAgMHgwMDFlZDE5YSBpbiBj bG9uZSAoKSBmcm9tIC9saWIvdGxzL2xpYmMuc28uNgotKyAqCi0rICogVGhyZWFkIDUgKHByb2Nl c3MgNDM1NCk6Ci0rICogIzAgIDB4MDAxYmE3ZGMgaW4gX19uYW5vc2xlZXBfbm9jYW5jZWwgKCkg ZnJvbSAvbGliL3Rscy9saWJjLnNvLjYKLSsgKiAjMSAgMHgwMDFiYTVmZiBpbiBzbGVlcCAoKSBm cm9tIC9saWIvdGxzL2xpYmMuc28uNgotKyAqICMyICAweDA4MDQ4OTM2IGluIHN5c2NhbGxpbmdB bHRTaWdoYW5kbGVyIChzaWdubz0zLCBpbmZvPTB4OTU5Y2Q3MCwgY29udGV4dD0weDk1OWNkZjAp Ci0rICogICAgIGF0IHRocmVhZGNyYXNoLmM6MTQ0Ci0rICogIzMgIDxzaWduYWwgaGFuZGxlciBj YWxsZWQ+Ci0rICogIzQgIDB4MDA2YWRmNWUgaW4gcHRocmVhZF9raWxsICgpIGZyb20gL2xpYi90 bHMvbGlicHRocmVhZC5zby4wCi0rICogIzUgIDB4MDgwNDg5ZTIgaW4gbWFrZVN5c2NhbGxGcm9t QWx0U2lnaGFuZGxlciAoaWdub3JlZD0weDApIGF0IHRocmVhZGNyYXNoLmM6MTkwCi0rICogIzYg IDB4MDA2YWFkZWMgaW4gc3RhcnRfdGhyZWFkICgpIGZyb20gL2xpYi90bHMvbGlicHRocmVhZC5z by4wCi0rICogIzcgIDB4MDAxZWQxOWEgaW4gY2xvbmUgKCkgZnJvbSAvbGliL3Rscy9saWJjLnNv LjYKLSsgKgotKyAqIFRocmVhZCA0IChwcm9jZXNzIDQzNTUpOgotKyAqICMwICBzcGluIChpZ25v cmVkPTB4MCkgYXQgdGhyZWFkY3Jhc2guYzoyNDIKLSsgKiAjMSAgMHgwMDZhYWRlYyBpbiBzdGFy dF90aHJlYWQgKCkgZnJvbSAvbGliL3Rscy9saWJwdGhyZWFkLnNvLjAKLSsgKiAjMiAgMHgwMDFl ZDE5YSBpbiBjbG9uZSAoKSBmcm9tIC9saWIvdGxzL2xpYmMuc28uNgotKyAqCi0rICogVGhyZWFk IDMgKHByb2Nlc3MgNDM1Nik6Ci0rICogIzAgIHNwaW5uaW5nU2lnaGFuZGxlciAoc2lnbm89MTIs IGluZm89MHhiNGRlNDZmMCwgY29udGV4dD0weGI0ZGU0NzcwKSBhdCB0aHJlYWRjcmFzaC5jOjE4 MAotKyAqICMxICA8c2lnbmFsIGhhbmRsZXIgY2FsbGVkPgotKyAqICMyICAweDAwNmFkZjVlIGlu IHB0aHJlYWRfa2lsbCAoKSBmcm9tIC9saWIvdGxzL2xpYnB0aHJlYWQuc28uMAotKyAqICMzICAw eDA4MDQ4YjJmIGluIHNwaW5Gcm9tU2lnaGFuZGxlciAoaWdub3JlZD0weDApIGF0IHRocmVhZGNy YXNoLmM6MjMyCi0rICogIzQgIDB4MDA2YWFkZWMgaW4gc3RhcnRfdGhyZWFkICgpIGZyb20gL2xp Yi90bHMvbGlicHRocmVhZC5zby4wCi0rICogIzUgIDB4MDAxZWQxOWEgaW4gY2xvbmUgKCkgZnJv bSAvbGliL3Rscy9saWJjLnNvLjYKLSsgKgotKyAqIFRocmVhZCAyIChwcm9jZXNzIDQzNTcpOgot KyAqICMwICBzcGlubmluZ0FsdFNpZ2hhbmRsZXIgKHNpZ25vPTE0LCBpbmZvPTB4OTU5ZWU1MCwg Y29udGV4dD0weDk1OWVlZDApIGF0IHRocmVhZGNyYXNoLmM6MTU2Ci0rICogIzEgIDxzaWduYWwg aGFuZGxlciBjYWxsZWQ+Ci0rICogIzIgIDB4MDA2YWRmNWUgaW4gcHRocmVhZF9raWxsICgpIGZy b20gL2xpYi90bHMvbGlicHRocmVhZC5zby4wCi0rICogIzMgIDB4MDgwNDhhYzAgaW4gc3BpbkZy b21BbHRTaWdoYW5kbGVyIChpZ25vcmVkPTB4MCkgYXQgdGhyZWFkY3Jhc2guYzoyMTgKLSsgKiAj NCAgMHgwMDZhYWRlYyBpbiBzdGFydF90aHJlYWQgKCkgZnJvbSAvbGliL3Rscy9saWJwdGhyZWFk LnNvLjAKLSsgKiAjNSAgMHgwMDFlZDE5YSBpbiBjbG9uZSAoKSBmcm9tIC9saWIvdGxzL2xpYmMu c28uNgotKyAqCi0rICogVGhyZWFkIDEgKHByb2Nlc3MgNDM1MSk6Ci0rICogIzAgIDB4MDgwNDhj ZjMgaW4gbWFpbiAoYXJnYz0xLCBhcmd2PTB4YmZmZjlkNzQpIGF0IHRocmVhZGNyYXNoLmM6Mjcz Ci0rICogKGdkYikKLSsgKi8KLSsKLSsjaW5jbHVkZSA8cHRocmVhZC5oPgotKyNpbmNsdWRlIDxz aWduYWwuaD4KLSsjaW5jbHVkZSA8YXNzZXJ0Lmg+Ci0rI2luY2x1ZGUgPHVuaXN0ZC5oPgotKyNp bmNsdWRlIDxzdGRpby5oPgotKyNpbmNsdWRlIDxzdGRsaWIuaD4KLSsjaW5jbHVkZSA8c3RyaW5n Lmg+Ci0rCi0rI2RlZmluZSBTSUdTWVNDQUxMX0FMVCBTSUdRVUlUCi0rI2RlZmluZSBTSUdTWVND QUxMIFNJR1VTUjEKLSsjZGVmaW5lIFNJR1NQSU5fQUxUIFNJR0FMUk0KLSsjZGVmaW5lIFNJR1NQ SU4gU0lHVVNSMgotKwotK3R5cGVkZWYgdm9pZCAoKnNpZ2FjdGlvbl90KShpbnQsIHNpZ2luZm9f dCAqLCB2b2lkICopOwotKwotK3N0YXRpYyB2b2lkIGluc3RhbGxIYW5kbGVyKGludCBzaWdubywg c2lnYWN0aW9uX3QgaGFuZGxlciwgaW50IG9uQWx0c3RhY2spIHsKLSsgICBzdHJ1Y3Qgc2lnYWN0 aW9uIGFjdGlvbjsKLSsgICBzaWdzZXRfdCBzaWdzZXQ7Ci0rICAgaW50IHJlc3VsdDsKLSsgICBz dGFja190IGFsdHN0YWNrOwotKyAgIHN0YWNrX3Qgb2xkYWx0c3RhY2s7Ci0rCi0rICAgbWVtc2V0 KCZhY3Rpb24sIDAsIHNpemVvZihhY3Rpb24pKTsKLSsgICBtZW1zZXQoJmFsdHN0YWNrLCAwLCBz aXplb2YoYWx0c3RhY2spKTsKLSsgICBtZW1zZXQoJm9sZGFsdHN0YWNrLCAwLCBzaXplb2Yob2xk YWx0c3RhY2spKTsKLSsKLSsgICBpZiAob25BbHRzdGFjaykgewotKyAgICAgIGFsdHN0YWNrLnNz X3NwID0gbWFsbG9jKFNJR1NUS1NaKTsKLSsgICAgICBhc3NlcnQoYWx0c3RhY2suc3Nfc3AgIT0g TlVMTCk7Ci0rICAgICAgYWx0c3RhY2suc3Nfc2l6ZSA9IFNJR1NUS1NaOwotKyAgICAgIGFsdHN0 YWNrLnNzX2ZsYWdzID0gMDsKLSsgICAgICByZXN1bHQgPSBzaWdhbHRzdGFjaygmYWx0c3RhY2ss ICZvbGRhbHRzdGFjayk7Ci0rICAgICAgYXNzZXJ0KHJlc3VsdCA9PSAwKTsKLSsgICAgICBhc3Nl cnQob2xkYWx0c3RhY2suc3NfZmxhZ3MgPT0gU1NfRElTQUJMRSk7Ci0rICAgfQotKwotKyAgIHNp Z2VtcHR5c2V0KCZzaWdzZXQpOwotKwotKyAgIGFjdGlvbi5zYV9oYW5kbGVyID0gTlVMTDsKLSsg ICBhY3Rpb24uc2Ffc2lnYWN0aW9uID0gaGFuZGxlcjsKLSsgICBhY3Rpb24uc2FfbWFzayA9IHNp Z3NldDsKLSsgICBhY3Rpb24uc2FfZmxhZ3MgPSBTQV9TSUdJTkZPOwotKyAgIGlmIChvbkFsdHN0 YWNrKSB7Ci0rICAgICAgYWN0aW9uLnNhX2ZsYWdzIHw9IFNBX09OU1RBQ0s7Ci0rICAgfQotKwot KyAgIHJlc3VsdCA9IHNpZ2FjdGlvbihzaWdubywgJmFjdGlvbiwgTlVMTCk7Ci0rICAgYXNzZXJ0 KHJlc3VsdCA9PSAwKTsKLSt9Ci0rCi0rc3RhdGljIHZvaWQgaW5zdGFsbE5vcm1hbEhhbmRsZXIo aW50IHNpZ25vLCBzaWdhY3Rpb25fdCBoYW5kbGVyKSB7Ci0rICAgaW5zdGFsbEhhbmRsZXIoc2ln bm8sIGhhbmRsZXIsIDApOwotK30KLSsKLStzdGF0aWMgdm9pZCBpbnN0YWxsQWx0aGFuZGxlcihp bnQgc2lnbm8sIHNpZ2FjdGlvbl90IGhhbmRsZXIpIHsKLSsgICBpbnN0YWxsSGFuZGxlcihzaWdu bywgaGFuZGxlciwgMSk7Ci0rfQotKwotK3N0YXRpYyB2b2lkICptYWtlU3lzY2FsbCh2b2lkICpp Z25vcmVkKSB7Ci0rICAgKHZvaWQpaWdub3JlZDsKLSsKLSsgICBzbGVlcCg0Mik7Ci0rCi0rICAg ZnByaW50ZihzdGRlcnIsICIlczogcmV0dXJuaW5nXG4iLCBfX0ZVTkNUSU9OX18pOwotKyAgIHJl dHVybiBOVUxMOwotK30KLSsKLSsvKiBSZXR1cm4gdHJ1ZSBpZiB3ZSdyZSBjdXJyZW50bHkgZXhl Y3V0aW5nIG9uIHRoZSBhbHRzdGFjayAqLwotK3N0YXRpYyBpbnQgb25BbHRzdGFjayh2b2lkKSB7 Ci0rICAgc3RhY2tfdCBzdGFjazsKLSsgICBpbnQgcmVzdWx0OwotKwotKyAgIHJlc3VsdCA9IHNp Z2FsdHN0YWNrKE5VTEwsICZzdGFjayk7Ci0rICAgYXNzZXJ0KHJlc3VsdCA9PSAwKTsKLSsKLSsg ICByZXR1cm4gc3RhY2suc3NfZmxhZ3MgJiBTU19PTlNUQUNLOwotK30KLSsKLStzdGF0aWMgdm9p ZCBzeXNjYWxsaW5nQWx0U2lnaGFuZGxlcihpbnQgc2lnbm8sIHNpZ2luZm9fdCAqaW5mbywgdm9p ZCAqY29udGV4dCkgewotKyAgICh2b2lkKXNpZ25vOwotKyAgICh2b2lkKWluZm87Ci0rICAgKHZv aWQpY29udGV4dDsKLSsKLSsgICBpZiAoIW9uQWx0c3RhY2soKSkgewotKyAgICAgIHByaW50Zigi JXMoKSBub3QgcnVubmluZyBvbiBhbHRzdGFjayFcbiIsIF9fRlVOQ1RJT05fXyk7Ci0rICAgfQot KwotKyAgIHNsZWVwKDQyKTsKLSt9Ci0rCi0rc3RhdGljIHZvaWQgc3Bpbm5pbmdBbHRTaWdoYW5k bGVyKGludCBzaWdubywgc2lnaW5mb190ICppbmZvLCB2b2lkICpjb250ZXh0KSB7Ci0rICAgKHZv aWQpc2lnbm87Ci0rICAgKHZvaWQpaW5mbzsKLSsgICAodm9pZCljb250ZXh0OwotKwotKyAgIGlm ICghb25BbHRzdGFjaygpKSB7Ci0rICAgICAgcHJpbnRmKCIlcygpIG5vdCBydW5uaW5nIG9uIGFs dHN0YWNrIVxuIiwgX19GVU5DVElPTl9fKTsKLSsgICB9Ci0rCi0rICAgd2hpbGUgKDEpOwotK30K LSsKLStzdGF0aWMgdm9pZCBzeXNjYWxsaW5nU2lnaGFuZGxlcihpbnQgc2lnbm8sIHNpZ2luZm9f dCAqaW5mbywgdm9pZCAqY29udGV4dCkgewotKyAgICh2b2lkKXNpZ25vOwotKyAgICh2b2lkKWlu Zm87Ci0rICAgKHZvaWQpY29udGV4dDsKLSsKLSsgICBpZiAob25BbHRzdGFjaygpKSB7Ci0rICAg ICAgcHJpbnRmKCIlcygpIHJ1bm5pbmcgb24gYWx0c3RhY2shXG4iLCBfX0ZVTkNUSU9OX18pOwot KyAgIH0KLSsKLSsgICBzbGVlcCg0Mik7Ci0rfQotKwotK3N0YXRpYyB2b2lkIHNwaW5uaW5nU2ln aGFuZGxlcihpbnQgc2lnbm8sIHNpZ2luZm9fdCAqaW5mbywgdm9pZCAqY29udGV4dCkgewotKyAg ICh2b2lkKXNpZ25vOwotKyAgICh2b2lkKWluZm87Ci0rICAgKHZvaWQpY29udGV4dDsKLSsKLSsg ICBpZiAob25BbHRzdGFjaygpKSB7Ci0rICAgICAgcHJpbnRmKCIlcygpIHJ1bm5pbmcgb24gYWx0 c3RhY2shXG4iLCBfX0ZVTkNUSU9OX18pOwotKyAgIH0KLSsKLSsgICB3aGlsZSAoMSk7Ci0rfQot KwotK3N0YXRpYyB2b2lkICptYWtlU3lzY2FsbEZyb21BbHRTaWdoYW5kbGVyKHZvaWQgKmlnbm9y ZWQpIHsKLSsgICAodm9pZClpZ25vcmVkOwotKwotKyAgIGludCByZXN1bHQ7Ci0rCi0rICAgaW5z dGFsbEFsdGhhbmRsZXIoU0lHU1lTQ0FMTF9BTFQsIHN5c2NhbGxpbmdBbHRTaWdoYW5kbGVyKTsK LSsKLSsgICByZXN1bHQgPSBwdGhyZWFkX2tpbGwocHRocmVhZF9zZWxmKCksIFNJR1NZU0NBTExf QUxUKTsKLSsgICBhc3NlcnQocmVzdWx0ID09IDApOwotKwotKyAgIGZwcmludGYoc3RkZXJyLCAi JXM6IHJldHVybmluZ1xuIiwgX19GVU5DVElPTl9fKTsKLSsgICByZXR1cm4gTlVMTDsKLSt9Ci0r Ci0rc3RhdGljIHZvaWQgKm1ha2VTeXNjYWxsRnJvbVNpZ2hhbmRsZXIodm9pZCAqaWdub3JlZCkg ewotKyAgICh2b2lkKWlnbm9yZWQ7Ci0rCi0rICAgaW50IHJlc3VsdDsKLSsKLSsgICBpbnN0YWxs Tm9ybWFsSGFuZGxlcihTSUdTWVNDQUxMLCBzeXNjYWxsaW5nU2lnaGFuZGxlcik7Ci0rCi0rICAg cmVzdWx0ID0gcHRocmVhZF9raWxsKHB0aHJlYWRfc2VsZigpLCBTSUdTWVNDQUxMKTsKLSsgICBh c3NlcnQocmVzdWx0ID09IDApOwotKwotKyAgIGZwcmludGYoc3RkZXJyLCAiJXM6IHJldHVybmlu Z1xuIiwgX19GVU5DVElPTl9fKTsKLSsgICByZXR1cm4gTlVMTDsKLSt9Ci0rCi0rc3RhdGljIHZv aWQgKnNwaW5Gcm9tQWx0U2lnaGFuZGxlcih2b2lkICppZ25vcmVkKSB7Ci0rICAgKHZvaWQpaWdu b3JlZDsKLSsKLSsgICBpbnQgcmVzdWx0OwotKwotKyAgIGluc3RhbGxBbHRoYW5kbGVyKFNJR1NQ SU5fQUxULCBzcGlubmluZ0FsdFNpZ2hhbmRsZXIpOwotKwotKyAgIHJlc3VsdCA9IHB0aHJlYWRf a2lsbChwdGhyZWFkX3NlbGYoKSwgU0lHU1BJTl9BTFQpOwotKyAgIGFzc2VydChyZXN1bHQgPT0g MCk7Ci0rCi0rICAgZnByaW50ZihzdGRlcnIsICIlczogcmV0dXJuaW5nXG4iLCBfX0ZVTkNUSU9O X18pOwotKyAgIHJldHVybiBOVUxMOwotK30KLSsKLStzdGF0aWMgdm9pZCAqc3BpbkZyb21TaWdo YW5kbGVyKHZvaWQgKmlnbm9yZWQpIHsKLSsgICAodm9pZClpZ25vcmVkOwotKwotKyAgIGludCBy ZXN1bHQ7Ci0rCi0rICAgaW5zdGFsbE5vcm1hbEhhbmRsZXIoU0lHU1BJTiwgc3Bpbm5pbmdTaWdo YW5kbGVyKTsKLSsKLSsgICByZXN1bHQgPSBwdGhyZWFkX2tpbGwocHRocmVhZF9zZWxmKCksIFNJ R1NQSU4pOwotKyAgIGFzc2VydChyZXN1bHQgPT0gMCk7Ci0rCi0rICAgZnByaW50ZihzdGRlcnIs ICIlczogcmV0dXJuaW5nXG4iLCBfX0ZVTkNUSU9OX18pOwotKyAgIHJldHVybiBOVUxMOwotK30K LSsKLStzdGF0aWMgdm9pZCAqc3Bpbih2b2lkICppZ25vcmVkKSB7Ci0rICAgKHZvaWQpaWdub3Jl ZDsKLSsKLSsgICB3aGlsZSAoMSk7Ci0rCi0rICAgZnByaW50ZihzdGRlcnIsICIlczogcmV0dXJu aW5nXG4iLCBfX0ZVTkNUSU9OX18pOwotKyAgIHJldHVybiBOVUxMOwotK30KLSsKLStpbnQgbWFp bihpbnQgYXJnYywgY2hhciAqYXJndltdKSB7Ci0rICAgaW50IHJlc3VsdDsKLSsgICBwdGhyZWFk X3QgdGhyZWFkOwotKyAgIHZvbGF0aWxlIGludCBiYWQ7Ci0rCi0rICAgcmVzdWx0ID0gcHRocmVh ZF9jcmVhdGUoJnRocmVhZCwgTlVMTCwgbWFrZVN5c2NhbGwsIE5VTEwpOwotKyAgIGFzc2VydChy ZXN1bHQgPT0gMCk7Ci0rICAgcmVzdWx0ID0gcHRocmVhZF9jcmVhdGUoJnRocmVhZCwgTlVMTCwg bWFrZVN5c2NhbGxGcm9tU2lnaGFuZGxlciwgTlVMTCk7Ci0rICAgYXNzZXJ0KHJlc3VsdCA9PSAw KTsKLSsgICByZXN1bHQgPSBwdGhyZWFkX2NyZWF0ZSgmdGhyZWFkLCBOVUxMLCBtYWtlU3lzY2Fs bEZyb21BbHRTaWdoYW5kbGVyLCBOVUxMKTsKLSsgICBhc3NlcnQocmVzdWx0ID09IDApOwotKyAg IHJlc3VsdCA9IHB0aHJlYWRfY3JlYXRlKCZ0aHJlYWQsIE5VTEwsIHNwaW4sIE5VTEwpOwotKyAg IGFzc2VydChyZXN1bHQgPT0gMCk7Ci0rICAgcmVzdWx0ID0gcHRocmVhZF9jcmVhdGUoJnRocmVh ZCwgTlVMTCwgc3BpbkZyb21TaWdoYW5kbGVyLCBOVUxMKTsKLSsgICBhc3NlcnQocmVzdWx0ID09 IDApOwotKyAgIHJlc3VsdCA9IHB0aHJlYWRfY3JlYXRlKCZ0aHJlYWQsIE5VTEwsIHNwaW5Gcm9t QWx0U2lnaGFuZGxlciwgTlVMTCk7Ci0rICAgYXNzZXJ0KHJlc3VsdCA9PSAwKTsKLSsKLSsgICAv LyBHaXZlIHRocmVhZHMgc29tZSB0aW1lIHRvIGdldCBnb2luZwotKyAgIHNsZWVwKDMpOwotKwot KyAgIC8vIENyYXNoCi0rICAgYmFkID0gKihpbnQqKTc7Ci0rCi0rICAgLyogV29ya2Fyb3VuZDog aHR0cDovL2djYy5nbnUub3JnL2J1Z3ppbGxhL3Nob3dfYnVnLmNnaT9pZD0yOTYyOAotKyAgICAg IFNpbXVsYXRlIHVzZSB0byBlbnN1cmUgYERXX0FUX2xvY2F0aW9uJyBmb3IgdGhlbToKLSsgICAg ICByZWFkZWxmIC1hIC0tZGVidWcgdGhyZWFkY3Jhc2h8Z3JlcCAtQTUgLXcgYXJnYwotKyAgICAg IC0tPiBEV19BVF9sb2NhdGlvbiAgICA6IDIgYnl0ZSBibG9jazogNzEgMCAgICAgKERXX09QX2Jy ZWcxOiAwKQotKyAgICAgIFRoaXMgY2FzZSB2ZXJpZmllZCBvbjogZ2NjLTQuMS4xLTMwLmkzODYK LSsgICAgICBLZWVwIGl0IGxhdGUgdG8gZW5zdXJlIHBlcnNpc3RlbmN5IGluIHRoZSByZWdpc3Rl cnMuICAqLwotKyAgIGJhZCA9IChpbnQpIGFyZ2M7Ci0rICAgYmFkID0gKHVuc2lnbmVkIGxvbmcp IGFyZ3Y7Ci0rCi0rICAgcmV0dXJuIDA7Ci0rfQotZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUv Z2RiLnRocmVhZHMvdGhyZWFkY3Jhc2guZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIudGhyZWFkcy90 aHJlYWRjcmFzaC5leHAKLW5ldyBmaWxlIG1vZGUgMTAwNjQ0Ci0tLS0gL2Rldi9udWxsCi0rKysg Yi9nZGIvdGVzdHN1aXRlL2dkYi50aHJlYWRzL3RocmVhZGNyYXNoLmV4cAotQEAgLTAsMCArMSwz NyBAQAotKyMgdGhyZWFkY3Jhc2guZXhwIC0gVGhlIHBvaW50IG9mIHRoaXMgcHJvZ3JhbSBpcyB0 byBjcmFzaCBpbiBhIG11bHRpLXRocmVhZGVkIGFwcC4KLSsKLSsKLStzZXQgdGVzdGZpbGUgdGhy ZWFkY3Jhc2gKLStzZXQgc3JjZmlsZSAke3Rlc3RmaWxlfS5jCi0rc2V0IHNoZWxsZmlsZSAke3Ny Y2Rpcn0vJHtzdWJkaXJ9LyR7dGVzdGZpbGV9LnNoCi0rc2V0IGJpbmZpbGUgW3N0YW5kYXJkX291 dHB1dF9maWxlICR7dGVzdGZpbGV9XQotKwotK3NldCBHREJfYWJzICR7R0RCfQotK2lmIFtyZWdl eHAgIl5cW14vXF0iICR7R0RCX2Fic31dIHsKLSsgICAgc2V0IEdEQl9hYnMgJGVudihQV0QpLyR7 R0RCX2Fic30KLSt9Ci0rCi0raWYgW2lzdGFyZ2V0ICIqLSotbGludXgiXSB0aGVuIHsKLSsgICAg c2V0IHRhcmdldF9jZmxhZ3MgIi1EX01JVF9QT1NJWF9USFJFQURTIgotK30gZWxzZSB7Ci0rICAg IHNldCB0YXJnZXRfY2ZsYWdzICIiCi0rfQotKwotK2lmIHtbZ2RiX2NvbXBpbGVfcHRocmVhZHMg IiR7c3JjZGlyfS8ke3N1YmRpcn0vJHtzcmNmaWxlfSIgIiR7YmluZmlsZX0iIGV4ZWN1dGFibGUg e2RlYnVnfV0gIT0gIiIgfSB7Ci0rICAgIHJldHVybiAtMQotK30KLSsKLSsjICR7c2hlbGxmaWxl fSBhcmd1bWVudCBtdXN0IG5vdCBjb250YWluIGFueSBkaXJlY3Rvcmllcy4KLStzZXQgZmQgW29w ZW4gInxiYXNoICR7c2hlbGxmaWxlfSAke2JpbmZpbGV9ICRHREIgJElOVEVSTkFMX0dEQkZMQUdT ICRHREJGTEFHUyBbaG9zdF9pbmZvIGdkYl9vcHRzXSIgcl0KLSt3aGlsZSB7IFtnZXRzICRmZCBs aW5lXSA+PSAwIH0gewotKyAgICBpZiBbcmVnZXhwICIgUEFTUzogKC4qKSQiICRsaW5lIHRyYXNo IG1lc3NhZ2VdIHsKLSsJcGFzcyAkbWVzc2FnZQotKyAgICB9IGVsc2VpZiBbcmVnZXhwICIgRkFJ TDogKC4qKSQiICRsaW5lIHRyYXNoIG1lc3NhZ2VdIHsKLSsJZmFpbCAkbWVzc2FnZQotKyAgICB9 Ci0rfQotK2NhdGNoIHsKLSsgICAgY2xvc2UgJGZkCi0rfQotKwotK3JldHVybiAwCi1kaWZmIC0t Z2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIudGhyZWFkcy90aHJlYWRjcmFzaC5zaCBiL2dkYi90ZXN0 c3VpdGUvZ2RiLnRocmVhZHMvdGhyZWFkY3Jhc2guc2gKLW5ldyBmaWxlIG1vZGUgMTAwNjQ0Ci0t LS0gL2Rldi9udWxsCi0rKysgYi9nZGIvdGVzdHN1aXRlL2dkYi50aHJlYWRzL3RocmVhZGNyYXNo LnNoCi1AQCAtMCwwICsxLDMyNCBAQAotKyMhIC9iaW4vYmFzaAotKwotKyMgTk9URTogdGhyZWFk Y3Jhc2guYyAqbXVzdCogYmUgYnVpbHQgd2l0aCBkZWJ1Z2dpbmcgc3ltYm9scwotKyMKLSsjIFRo ZSBwb2ludCBvZiB0aGlzIHNoZWxsIHNjcmlwdCBpcyB0byBjcmFzaCB0cmVhZGNyYXNoLmMsIGxv YWQgdGhlCi0rIyByZXN1bHRpbmcgY29yZSBmaWxlIGludG8gZ2RiIGFuZCB2ZXJpZnkgdGhhdCBn ZGIgY2FuIGV4dHJhY3QgZW5vdWdoCi0rIyBpbmZvcm1hdGlvbiBmcm9tIHRoZSBjb3JlIGZpbGUu Ci0rIwotKyMgVGhlIHJldHVybiBjb2RlIGZyb20gdGhpcyBzY3JpcHQgaXMgdGhlIG51bWJlciBv ZiBmYWlsZWQgdGVzdHMuCi0rCi0rTE9HPWdkYnJlc3VsdC5sb2cKLSsKLStpZiBbICQjID0gMCBd IDsgdGhlbgotKyAgICBlY2hvID4mMiBTeW50YXg6ICQwIFw8bmFtZSBvZiB0aHJlYWRjcmFzaCBi aW5hcnlcPiBbXDxnZGIgYmluYXJ5XD4gXDxhcmdzLi4uXD5dCi0rICAgIGV4aXQgMQotK2ZpCi0r UlVOTUU9IiQxIgotK3NoaWZ0Ci0rR0RCPSIkeyo6LWdkYn0iCi0rCi0rCi0rcGZfcHJlZml4PSIi Ci0rZnVuY3Rpb24gcGZfcHJlZml4KCkgewotKwlwZl9wcmVmaXg9IiQqIgotK30KLSsKLStzZXRf dGVzdD0iIgotK2Z1bmN0aW9uIHNldF90ZXN0KCkgewotKwlpZiBbIC1uICIkc2V0X3Rlc3QiIF0g OyB0aGVuCi0rCQllY2hvID4mMiAiREVKQUdOVS1CQVNIIEVSUk9SOiBzZXRfdGVzdCBhbHJlYWR5 IHNldCIKLSsJCWV4aXQgMQotKwlmaQotKwlzZXRfdGVzdD0iJCoiCi0rCWlmIFsgLW4gIiRwZl9w cmVmaXgiIF0gOyB0aGVuCi0rCQlzZXRfdGVzdD0iJHBmX3ByZWZpeDogJHNldF90ZXN0IgotKwlm aQotK30KLSsKLSsjIElOVEVSTkFMCi0rZnVuY3Rpb24gcmVjb3JkX3Rlc3QgewotKwlpZiBbIC16 ICIkc2V0X3Rlc3QiIF0gOyB0aGVuCi0rCQllY2hvID4mMiAiREVKQUdOVS1CQVNIIEVSUk9SOiBz ZXRfdGVzdCBub3Qgc2V0IgotKwkJZXhpdCAxCi0rCWZpCi0rCSMgUHJvdmlkZSB0aGUgbGVhZGlu ZyB3aGl0ZXNwYWNlIGRlbGltaXRlcjoKLSsJZWNobyAiICQxOiAkc2V0X3Rlc3QiCi0rCXNldF90 ZXN0PSIiCi0rfQotKwotK2Z1bmN0aW9uIHBhc3MoKSB7Ci0rCXJlY29yZF90ZXN0IFBBU1MKLSt9 Ci0rZnVuY3Rpb24gZmFpbCgpIHsKLSsJcmVjb3JkX3Rlc3QgRkFJTAotK30KLSsKLSsKLSsjIFZl cmlmeSB0aGF0IHRoZSBnZGIgb3V0cHV0IGRvZXNuJ3QgY29udGFpbiAkMS4KLStmdW5jdGlvbiBt dXN0Tm90SGF2ZSgpIHsKLSsgICAgbG9jYWwgQkFEV09SRD0kMQotKyAgICBzZXRfdGVzdCBnZGIg b3V0cHV0IGNvbnRhaW5zICIkQkFEV09SRCIKLSsgICAgaWYgZ3JlcCAtcSAiJEJBRFdPUkQiICRM T0cgOyB0aGVuCi0rICAgICAgICBmYWlsCi0rICAgICAgICByZXR1cm4gMQotKyAgICBmaQotKyAg ICBwYXNzCi0rICAgIHJldHVybiAwCi0rfQotKwotKyMgVmVyaWZ5IHRoYXQgdGhlIGdkYiBvdXRw dXQgY29udGFpbnMgZXhhY3RseSAkMSAkMnMuCi0rZnVuY3Rpb24gbXVzdEhhdmVDb3JyZWN0QW1v dW50KCkgewotKyAgICBsb2NhbCBXQU5URUROVU1CRVI9JDEKLSsgICAgbG9jYWwgR09PRFdPUkQ9 JDIKLSsgICAgbG9jYWwgQUNUVUFMTlVNQkVSPSQoZ3JlcCAiJEdPT0RXT1JEIiAkTE9HIHwgd2Mg LWwpCi0rICAgIHNldF90ZXN0IGdkYiBvdXRwdXQgY29udGFpbmVkICRBQ1RVQUxOVU1CRVIgXCIi JEdPT0RXT1JEIlwiLCBub3QgJFdBTlRFRE5VTUJFUiBhcyBleHBlY3RlZAotKyAgICBpZiBbICRB Q1RVQUxOVU1CRVIgIT0gJFdBTlRFRE5VTUJFUiBdIDsgdGhlbgotKyAgICAgICAgZmFpbAotKyAg ICAgICAgcmV0dXJuIDEKLSsgICAgZmkKLSsgICAgcGFzcwotKyAgICByZXR1cm4gMAotK30KLSsK LSsjIFZlcmlmeSB0aGF0IHRoZSBnZGIgb3V0cHV0IGNvbnRhaW5zIHNldmVuIHRocmVhZHMKLStm dW5jdGlvbiBtdXN0SGF2ZVNldmVuVGhyZWFkcygpIHsKLSsgICAgTlRIUkVBRFM9JChlZ3JlcCAi XlRocmVhZCBbMS03XSBcKCIgJExPRyB8IHdjIC1sKQotKyAgICBzZXRfdGVzdCBnZGIgb3V0cHV0 IGNvbnRhaW5zICROVEhSRUFEUyB0aHJlYWRzLCBub3QgNyBhcyBleHBlY3RlZAotKyAgICBpZiBb ICROVEhSRUFEUyAhPSA3IF0gOyB0aGVuCi0rICAgICAgICBmYWlsCi0rICAgICAgICByZXR1cm4g MQotKyAgICBmaQotKyAgICBwYXNzCi0rICAgIHJldHVybiAwCi0rfQotKwotKyMgVmVyaWZ5IHRo YXQgdGhlIGdkYiBvdXRwdXQgaGFzIGFsbCBwYXJhbWV0ZXJzIG9uIGNvbnNlY3V0aXZlIGxpbmVz Ci0rZnVuY3Rpb24gbXVzdEhhdmVTZXF1ZW5jZSgpIHsKLSsgICAgU0VRVUVOQ0U9IiQqIgotKyAg ICBOUEFSVFM9JCMKLSsgICAgZ3JlcCAiJDEiIC1BJCgoTlBBUlRTIC0gMSkpICRMT0cgPiBtYXRj aGVzLmxvZwotKwotKyAgICB3aGlsZSBbICQjIC1ndCAxIF0gOyBkbwotKyAgICAgICAgc2hpZnQK LSsgICAgICAgICgoTlBBUlRTLS0pKQotKyAgICAgICAgZ3JlcCAiJDEiIC1BJCgoTlBBUlRTIC0g MSkpIG1hdGNoZXMubG9nID4gdGVtcC5sb2cKLSsgICAgICAgIG12IHRlbXAubG9nIG1hdGNoZXMu bG9nCi0rICAgIGRvbmUKLSsgICAgTEFTVFBBUlQ9JDEKLSsKLSsgICAgc2V0X3Rlc3QgZ2RiIG91 dHB1dCBkb2VzIG5vdCBjb250YWluIHRoZSBzZXF1ZW5jZTogJFNFUVVFTkNFCi0rICAgIGlmICEg Z3JlcCAtcSAiJExBU1RQQVJUIiBtYXRjaGVzLmxvZyA7IHRoZW4KLSsgICAgICAgIGZhaWwKLSsg ICAgICAgIHJldHVybiAxCi0rICAgIGZpCi0rICAgIHBhc3MKLSsgICAgcmV0dXJuIDAKLSt9Ci0r Ci0rIyBWZXJpZnkgdGhhdCAkTE9HIGNvbnRhaW5zIGFsbCBpbmZvcm1hdGlvbiB3ZSB3YW50Ci0r ZnVuY3Rpb24gdmVyaWZ5TG9nKCkgewotKyAgICBsb2NhbCBGQUlMVVJFUz0wCi0rCi0rICAgIG11 c3ROb3RIYXZlICc/PycgfHwgKChGQUlMVVJFUysrKSkKLSsgICAgbXVzdEhhdmVDb3JyZWN0QW1v dW50IDExIHRocmVhZGNyYXNoLmM6IHx8ICgoRkFJTFVSRVMrKykpCi0rCi0rICAgIG11c3RIYXZl U2V2ZW5UaHJlYWRzIHx8ICgoRkFJTFVSRVMrKykpCi0rICAgIG11c3RIYXZlU2VxdWVuY2Ugc2xl ZXAgIm1ha2VTeXNjYWxsIChpZ25vcmVkPSIgfHwgKChGQUlMVVJFUysrKSkKLSsKLSsgICAgbXVz dEhhdmVTZXF1ZW5jZSBzbGVlcCAic3lzY2FsbGluZ1NpZ2hhbmRsZXIgKHNpZ25vPSIgInNpZ25h bCBoYW5kbGVyIGNhbGxlZCIgMHggfHwgKChGQUlMVVJFUysrKSkKLSsgICAgbXVzdEhhdmVTZXF1 ZW5jZSBwdGhyZWFkX2tpbGwgIm1ha2VTeXNjYWxsRnJvbVNpZ2hhbmRsZXIgKGlnbm9yZWQ9IiB8 fCAoKEZBSUxVUkVTKyspKQotKwotKyAgICBtdXN0SGF2ZVNlcXVlbmNlIHNsZWVwICJzeXNjYWxs aW5nQWx0U2lnaGFuZGxlciAoc2lnbm89IiAic2lnbmFsIGhhbmRsZXIgY2FsbGVkIiAweCB8fCAo KEZBSUxVUkVTKyspKQotKyAgICBtdXN0SGF2ZVNlcXVlbmNlIHB0aHJlYWRfa2lsbCAibWFrZVN5 c2NhbGxGcm9tQWx0U2lnaGFuZGxlciAoaWdub3JlZD0iIHx8ICgoRkFJTFVSRVMrKykpCi0rCi0r ICAgIG11c3RIYXZlU2VxdWVuY2UgVGhyZWFkICJzcGluIChpZ25vcmVkPSIgfHwgKChGQUlMVVJF UysrKSkKLSsKLSsgICAgbXVzdEhhdmVTZXF1ZW5jZSAic3Bpbm5pbmdTaWdoYW5kbGVyIChzaWdu bz0iICJzaWduYWwgaGFuZGxlciBjYWxsZWQiIDB4IHx8ICgoRkFJTFVSRVMrKykpCi0rICAgIG11 c3RIYXZlU2VxdWVuY2UgcHRocmVhZF9raWxsICJzcGluRnJvbVNpZ2hhbmRsZXIgKGlnbm9yZWQ9 IiB8fCAoKEZBSUxVUkVTKyspKQotKwotKyAgICBtdXN0SGF2ZVNlcXVlbmNlICJzcGlubmluZ0Fs dFNpZ2hhbmRsZXIgKHNpZ25vPSIgInNpZ25hbCBoYW5kbGVyIGNhbGxlZCIgMHggfHwgKChGQUlM VVJFUysrKSkKLSsgICAgbXVzdEhhdmVTZXF1ZW5jZSBwdGhyZWFkX2tpbGwgInNwaW5Gcm9tQWx0 U2lnaGFuZGxlciAoaWdub3JlZD0iIHx8ICgoRkFJTFVSRVMrKykpCi0rCi0rICAgIG11c3RIYXZl U2VxdWVuY2UgVGhyZWFkICJtYWluIChhcmdjPTEsIGFyZ3Y9IiB8fCAoKEZBSUxVUkVTKyspKQot KwotKyAgICByZXR1cm4gJEZBSUxVUkVTCi0rfQotKwotKyMgUHV0IHJlc3VsdCBvZiBkZWJ1Z2dp bmcgYSBjb3JlIGZpbGUgaW4gJExPRwotK2Z1bmN0aW9uIGdldExvZ0Zyb21Db3JlKCkgewotKyAg ICAjIE1ha2Ugc3VyZSB3ZSBnZXQgYSBjb3JlIGZpbGUKLSsgICAgc2V0X3Rlc3QgTWFrZSBzdXJl IHdlIGdldCBhIGNvcmUgZmlsZQotKyAgICBpZiAhIHVsaW1pdCAtYyB1bmxpbWl0ZWQgOyB0aGVu Ci0rICAgICAgICBmYWlsCi0rICAgICAgICBleGl0IDEKLSsgICAgZmkKLSsgICAgcGFzcwotKwot KyAgICAjIFJ1biB0aGUgY3Jhc2hlcgotKyAgICAuLyQoYmFzZW5hbWUgIiRSVU5NRSIpCi0rICAg IEVYSVRDT0RFPSQ/Ci0rCi0rICAgICMgVmVyaWZ5IHRoYXQgd2UgYWN0dWFsbHkgY3Jhc2hlZAot KyAgICBzZXRfdGVzdCAkUlVOTUUgc2hvdWxkIGhhdmUgYmVlbiBraWxsZWQgYnkgYSBzaWduYWws IGdvdCBub24tc2lnbmFsIGV4aXQgY29kZSAkRVhJVENPREUKLSsgICAgaWYgWyAkRVhJVENPREUg LWx0IDEyOCBdIDsgdGhlbgotKyAgICAgICAgZmFpbAotKyAgICAgICAgZXhpdCAxCi0rICAgIGZp Ci0rICAgIHBhc3MKLSsKLSsgICAgIyBWZXJpZnkgdGhhdCB3ZSBnb3QgYSBjb3JlIGZpbGUKLSsg ICAgc2V0X3Rlc3QgJFJVTk1FIGRpZCBub3QgY3JlYXRlIGEgY29yZSBmaWxlCi0rICAgIGlmIFsg ISAtciBjb3JlKiBdIDsgdGhlbgotKyAgICAgICAgZmFpbAotKyAgICAgICAgZXhpdCAxCi0rICAg IGZpCi0rICAgIHBhc3MKLSsKLSsgICAgIyBSdW4gZ2RiCi0rICAgIGNhdCA+IGdkYnNjcmlwdC5n ZGIgPDxFT0YKLStzZXQgd2lkdGggMAotK3QgYSBhIGJ0IDEwMAotK3F1aXQKLStFT0YKLSsgICAg Y2F0IGdkYnNjcmlwdC5nZGIgL2Rldi96ZXJvIHwgJEdEQiAtbnggIi4vJChiYXNlbmFtZSAiJFJV Tk1FIikiIGNvcmUqID4gJExPRwotKyAgICBFWElUQ09ERT0kPwotKwotKyAgICBzZXRfdGVzdCBn ZGIgZXhpdGVkIHdpdGggZXJyb3IgY29kZQotKyAgICBpZiBbICRFWElUQ09ERSAhPSAwIF0gOyB0 aGVuCi0rICAgICAgICAoKEZBSUxVUkVTKyspKQotKyAgICAgICAgZWNobyA+JjIgZ2RiIGV4aXRl ZCB3aXRoIGVycm9yIGNvZGUgJEVYSVRDT0RFCi0rCWZhaWwKLSsgICAgZmkKLSsgICAgcGFzcwot K30KLSsKLSsjIFB1dCByZXN1bHQgb2YgZGVidWdnaW5nIGEgZ2NvcmUgZmlsZSBpbiAkTE9HCi0r ZnVuY3Rpb24gZ2V0TG9nRnJvbUdjb3JlKCkgewotKyAgICAjIENyZWF0ZSB0aGUgY29yZSBmaWxl Ci0rICAgIHJtIC1mIGNvcmUqCi0rICAgIGNhdCA+IGdkYnNjcmlwdC5nZGIgPDxFT0YKLStoYW5k bGUgU0lHUVVJVCBwYXNzIG5vcHJpbnQgbm9zdG9wCi0raGFuZGxlIFNJR1VTUjEgcGFzcyBub3By aW50IG5vc3RvcAotK2hhbmRsZSBTSUdVU1IyIHBhc3Mgbm9wcmludCBub3N0b3AKLStoYW5kbGUg U0lHQUxSTSBwYXNzIG5vcHJpbnQgbm9zdG9wCi0rcnVuCi0rZ2NvcmUKLStxdWl0Ci0rRU9GCi0r ICAgIGNhdCBnZGJzY3JpcHQuZ2RiIC9kZXYvemVybyB8ICRHREIgLW54ICIuLyQoYmFzZW5hbWUg IiRSVU5NRSIpIiA+IC9kZXYvbnVsbAotKyAgICBFWElUQ09ERT0kPwotKwotKyAgICBzZXRfdGVz dCBnZGIgZXhpdGVkIHdpdGggZXJyb3IgY29kZSB3aGVuIGNyZWF0aW5nIGdjb3JlIGZpbGUKLSsg ICAgaWYgWyAkRVhJVENPREUgIT0gMCBdIDsgdGhlbgotKyAgICAgICAgKChGQUlMVVJFUysrKSkK LSsgICAgICAgIGVjaG8gPiYyIGdkYiBleGl0ZWQgd2l0aCBlcnJvciBjb2RlICRFWElUQ09ERSB3 aGVuIGNyZWF0aW5nIGdjb3JlIGZpbGUKLSsJZmFpbAotKyAgICBmaQotKyAgICBwYXNzCi0rCi0r ICAgICMgVmVyaWZ5IHRoYXQgd2UgZ290IGEgY29yZSBmaWxlIGZyb20gZ2NvcmUKLSsgICAgc2V0 X3Rlc3QgZ2RiIGdjb3JlIGRpZCBub3QgY3JlYXRlIGEgY29yZSBmaWxlCi0rICAgIGlmIFsgISAt ciBjb3JlKiBdIDsgdGhlbgotKyAgICAgICAgZmFpbAotKyAgICAgICAgZXhpdCAxCi0rICAgIGZp Ci0rICAgIHBhc3MKLSsKLSsgICAgIyBSdW4gZ2RiIG9uIHRoZSBnY29yZSBmaWxlCi0rICAgIGNh dCA+IGdkYnNjcmlwdC5nZGIgPDxFT0YKLStzZXQgd2lkdGggMAotK3QgYSBhIGJ0IDEwMAotK3F1 aXQKLStFT0YKLSsgICAgY2F0IGdkYnNjcmlwdC5nZGIgL2Rldi96ZXJvIHwgJEdEQiAtbnggIi4v JChiYXNlbmFtZSAiJFJVTk1FIikiIGNvcmUqID4gJExPRwotKyAgICBFWElUQ09ERT0kPwotKwot KyAgICBzZXRfdGVzdCBnZGIgZXhpdGVkIHdpdGggZXJyb3IgY29kZSB3aGVuIGV4YW1pbmluZyBn Y29yZSBmaWxlCi0rICAgIGlmIFsgJEVYSVRDT0RFICE9IDAgXSA7IHRoZW4KLSsgICAgICAgICgo RkFJTFVSRVMrKykpCi0rICAgICAgICBlY2hvID4mMiBnZGIgZXhpdGVkIHdpdGggZXJyb3IgY29k ZSAkRVhJVENPREUgd2hlbiBleGFtaW5pbmcgZ2NvcmUgZmlsZQotKwlmYWlsCi0rICAgIGZpCi0r ICAgIHBhc3MKLSt9Ci0rCi0rIyBQdXQgcmVzdWx0IG9mIGRlYnVnZ2luZyBhIGNvcmUgZmlsZSBp biAkTE9HCi0rZnVuY3Rpb24gZ2V0TG9nRnJvbUxpdmVQcm9jZXNzKCkgewotKyAgICAjIFJ1biBn ZGIKLSsgICAgY2F0ID4gZ2Ric2NyaXB0LmdkYiA8PEVPRgotK2hhbmRsZSBTSUdRVUlUIHBhc3Mg bm9wcmludCBub3N0b3AKLStoYW5kbGUgU0lHVVNSMSBwYXNzIG5vcHJpbnQgbm9zdG9wCi0raGFu ZGxlIFNJR1VTUjIgcGFzcyBub3ByaW50IG5vc3RvcAotK2hhbmRsZSBTSUdBTFJNIHBhc3Mgbm9w cmludCBub3N0b3AKLStzZXQgd2lkdGggMAotK3J1bgotK3QgYSBhIGJ0IDEwMAotK3F1aXQKLStF T0YKLSsgICAgY2F0IGdkYnNjcmlwdC5nZGIgL2Rldi96ZXJvIHwgJEdEQiAtbnggIi4vJChiYXNl bmFtZSAiJFJVTk1FIikiID4gJExPRwotKyAgICBFWElUQ09ERT0kPwotKwotKyAgICBzZXRfdGVz dCBnZGIgZXhpdGVkIHdpdGggZXJyb3IgY29kZQotKyAgICBpZiBbICRFWElUQ09ERSAhPSAwIF0g OyB0aGVuCi0rICAgICAgICAoKEZBSUxVUkVTKyspKQotKyAgICAgICAgZWNobyA+JjIgZ2RiIGV4 aXRlZCB3aXRoIGVycm9yIGNvZGUgJEVYSVRDT0RFCi0rCWZhaWwKLSsgICAgZmkKLSsgICAgcGFz cwotK30KLSsKLSsjIyMjIyMjIE1haW4gcHJvZ3JhbSBmb2xsb3dzICMjIyMjIyMjIyMjIyMjIyMj IyMjIwotKwotKyMgTWFrZSBzdXJlIHdlIGRvbid0IGNsb2JiZXIgYW55Ym9keSBlbHNlJ3MgKGNv cmUpIGZpbGUocykKLStXT1JLRElSPS90bXAvJFBQSUQKLStta2RpciAtcCAkV09SS0RJUgotK2Nw ICIkUlVOTUUiICRXT1JLRElSCi0rY2QgJFdPUktESVIKLSsKLSsjIENvdW50IHByb2JsZW1zCi0r RkFJTFVSRVM9MAotKwotK2VjaG8gPT09IFRlc3RpbmcgZ2RiIHZzIGNvcmUgZmlsZS4uLgotK3Bm X3ByZWZpeCBjb3JlIGZpbGUKLStnZXRMb2dGcm9tQ29yZQotK3ZlcmlmeUxvZwotKygoRkFJTFVS RVMrPSQ/KSkKLStwZl9wcmVmaXgKLStlY2hvID09PSBDb3JlIGZpbGUgdGVzdHMgZG9uZS4KLSsK LStlY2hvCi0rCi0rZWNobyA9PT0gVGVzdGluZyBnZGIgdnMgZ2NvcmUgZmlsZS4uLgotK3BmX3By ZWZpeCBnY29yZSBmaWxlCi0rZ2V0TG9nRnJvbUdjb3JlCi0rdmVyaWZ5TG9nCi0rKChGQUlMVVJF Uys9JD8pKQotK3BmX3ByZWZpeAotK2VjaG8gPT09IEdjb3JlIGZpbGUgdGVzdHMgZG9uZS4KLSsK LStlY2hvCi0rCi0rZWNobyA9PT0gVGVzdGluZyBnZGIgdnMgbGl2ZSBwcm9jZXNzLi4uCi0rcGZf cHJlZml4IGxpdmUgcHJvY2VzcwotK2dldExvZ0Zyb21MaXZlUHJvY2VzcwotK3ZlcmlmeUxvZwot KygoRkFJTFVSRVMrPSQ/KSkKLStwZl9wcmVmaXgKLStlY2hvID09PSBMaXZlIHByb2Nlc3MgdGVz dHMgZG9uZS4KLSsKLSsjIEV4ZWN1dGl2ZSBzdW1tYXJ5Ci0rZWNobwotK2lmIFsgJEZBSUxVUkVT ID09IDAgXSA7IHRoZW4KLSsgICAgZWNobyBBbGwgdGVzdHMgcGFzc2VkIQotK2Vsc2UKLSsgICAg ZWNobyAkRkFJTFVSRVMgdGVzdHMgZmFpbGVkIQotKyAgICBlY2hvCi0rICAgIGVjaG8gTWFrZSBz dXJlIHRoZSB0aHJlYWRjcmFzaCBiaW5hcnkgY29udGFpbnMgZGVidWdnaW5nIGluZm9ybWF0aW9u IFwoYnVpbGQgd2l0aCBcImdjYyAtZ1wiXCkuCi0rZmkKLSsKLSsjIENsZWFuIHVwCi0rY2QgLwot K3JtIC1yZiAkV09SS0RJUgotKwotK2V4aXQgJEZBSUxVUkVTCi1kaWZmIC0tZ2l0IGEvZ2RiL3Rl c3RzdWl0ZS9nZGIudGhyZWFkcy90aHJlYWRjcmFzaC5zaC1vcmlnIGIvZ2RiL3Rlc3RzdWl0ZS9n ZGIudGhyZWFkcy90aHJlYWRjcmFzaC5zaC1vcmlnCi1uZXcgZmlsZSBtb2RlIDEwMDY0NAotLS0t IC9kZXYvbnVsbAotKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIudGhyZWFkcy90aHJlYWRjcmFzaC5z aC1vcmlnCi1AQCAtMCwwICsxLDI0OCBAQAotKyMhIC9iaW4vYmFzaAotKwotKyMgTk9URTogdGhy ZWFkY3Jhc2guYyAqbXVzdCogYmUgYnVpbHQgd2l0aCBkZWJ1Z2dpbmcgc3ltYm9scwotKyMKLSsj IFRoZSBwb2ludCBvZiB0aGlzIHNoZWxsIHNjcmlwdCBpcyB0byBjcmFzaCB0cmVhZGNyYXNoLmMs IGxvYWQgdGhlCi0rIyByZXN1bHRpbmcgY29yZSBmaWxlIGludG8gZ2RiIGFuZCB2ZXJpZnkgdGhh dCBnZGIgY2FuIGV4dHJhY3QgZW5vdWdoCi0rIyBpbmZvcm1hdGlvbiBmcm9tIHRoZSBjb3JlIGZp bGUuCi0rIwotKyMgVGhlIHJldHVybiBjb2RlIGZyb20gdGhpcyBzY3JpcHQgaXMgdGhlIG51bWJl ciBvZiBmYWlsZWQgdGVzdHMuCi0rCi0rTE9HPWdkYnJlc3VsdC5sb2cKLSsKLStpZiBbICQjICE9 IDEgXSA7IHRoZW4KLSsgICAgZWNobyA+IC9kZXYvc3RkZXJyIFN5bnRheDogJDAgXDxuYW1lIG9m IHRocmVhZGNyYXNoIGJpbmFyeVw+Ci0rICAgIGV4aXQgMQotK2ZpCi0rUlVOTUU9IiQxIgotKwot KyMgVmVyaWZ5IHRoYXQgdGhlIGdkYiBvdXRwdXQgZG9lc24ndCBjb250YWluICQxLgotK2Z1bmN0 aW9uIG11c3ROb3RIYXZlKCkgewotKyAgICBsb2NhbCBCQURXT1JEPSQxCi0rICAgIGlmIGdyZXAg LXEgIiRCQURXT1JEIiAkTE9HIDsgdGhlbgotKyAgICAgICAgZWNobyA+PiAvZGV2L3N0ZGVyciBX QVJOSU5HOiBnZGIgb3V0cHV0IGNvbnRhaW5zICIkQkFEV09SRCIKLSsgICAgICAgIHJldHVybiAx Ci0rICAgIGZpCi0rICAgIHJldHVybiAwCi0rfQotKwotKyMgVmVyaWZ5IHRoYXQgdGhlIGdkYiBv dXRwdXQgY29udGFpbnMgZXhhY3RseSAkMSAkMnMuCi0rZnVuY3Rpb24gbXVzdEhhdmVDb3JyZWN0 QW1vdW50KCkgewotKyAgICBsb2NhbCBXQU5URUROVU1CRVI9JDEKLSsgICAgbG9jYWwgR09PRFdP UkQ9JDIKLSsgICAgbG9jYWwgQUNUVUFMTlVNQkVSPSQoZ3JlcCAiJEdPT0RXT1JEIiAkTE9HIHwg d2MgLWwpCi0rICAgIGlmIFsgJEFDVFVBTE5VTUJFUiAhPSAkV0FOVEVETlVNQkVSIF0gOyB0aGVu Ci0rICAgICAgICBlY2hvID4+IC9kZXYvc3RkZXJyIFdBUk5JTkc6IGdkYiBvdXRwdXQgY29udGFp bmVkICRBQ1RVQUxOVU1CRVIgXCIiJEdPT0RXT1JEIlwiLCBub3QgJFdBTlRFRE5VTUJFUiBhcyBl eHBlY3RlZAotKyAgICAgICAgcmV0dXJuIDEKLSsgICAgZmkKLSsgICAgcmV0dXJuIDAKLSt9Ci0r Ci0rIyBWZXJpZnkgdGhhdCB0aGUgZ2RiIG91dHB1dCBjb250YWlucyBzZXZlbiB0aHJlYWRzCi0r ZnVuY3Rpb24gbXVzdEhhdmVTZXZlblRocmVhZHMoKSB7Ci0rICAgIE5USFJFQURTPSQoZWdyZXAg Il5UaHJlYWQgWzEtN10gXCgiICRMT0cgfCB3YyAtbCkKLSsgICAgaWYgWyAkTlRIUkVBRFMgIT0g NyBdIDsgdGhlbgotKyAgICAgICAgZWNobyA+PiAvZGV2L3N0ZGVyciBXQVJOSU5HOiBnZGIgb3V0 cHV0IGNvbnRhaW5zICROVEhSRUFEUyB0aHJlYWRzLCBub3QgNyBhcyBleHBlY3RlZAotKyAgICAg ICAgcmV0dXJuIDEKLSsgICAgZmkKLSsgICAgcmV0dXJuIDAKLSt9Ci0rCi0rIyBWZXJpZnkgdGhh dCB0aGUgZ2RiIG91dHB1dCBoYXMgYWxsIHBhcmFtZXRlcnMgb24gY29uc2VjdXRpdmUgbGluZXMK LStmdW5jdGlvbiBtdXN0SGF2ZVNlcXVlbmNlKCkgewotKyAgICBTRVFVRU5DRT0iJCoiCi0rICAg IE5QQVJUUz0kIwotKyAgICBncmVwICIkMSIgLUEkKChOUEFSVFMgLSAxKSkgJExPRyA+IG1hdGNo ZXMubG9nCi0rCi0rICAgIHdoaWxlIFsgJCMgLWd0IDEgXSA7IGRvCi0rICAgICAgICBzaGlmdAot KyAgICAgICAgKChOUEFSVFMtLSkpCi0rICAgICAgICBncmVwICIkMSIgLUEkKChOUEFSVFMgLSAx KSkgbWF0Y2hlcy5sb2cgPiB0ZW1wLmxvZwotKyAgICAgICAgbXYgdGVtcC5sb2cgbWF0Y2hlcy5s b2cKLSsgICAgZG9uZQotKyAgICBMQVNUUEFSVD0kMQotKwotKyAgICBpZiAhIGdyZXAgLXEgIiRM QVNUUEFSVCIgbWF0Y2hlcy5sb2cgOyB0aGVuCi0rICAgICAgICBlY2hvID4+IC9kZXYvc3RkZXJy IFdBUk5JTkc6IGdkYiBvdXRwdXQgZG9lcyBub3QgY29udGFpbiB0aGUgc2VxdWVuY2U6ICRTRVFV RU5DRQotKyAgICAgICAgcmV0dXJuIDEKLSsgICAgZmkKLSsgICAgcmV0dXJuIDAKLSt9Ci0rCi0r IyBWZXJpZnkgdGhhdCAkTE9HIGNvbnRhaW5zIGFsbCBpbmZvcm1hdGlvbiB3ZSB3YW50Ci0rZnVu Y3Rpb24gdmVyaWZ5TG9nKCkgewotKyAgICBsb2NhbCBGQUlMVVJFUz0wCi0rCi0rICAgIG11c3RO b3RIYXZlICc/PycgfHwgKChGQUlMVVJFUysrKSkKLSsgICAgbXVzdEhhdmVDb3JyZWN0QW1vdW50 IDEyIHRocmVhZGNyYXNoLmM6IHx8ICgoRkFJTFVSRVMrKykpCi0rCi0rICAgIG11c3RIYXZlU2V2 ZW5UaHJlYWRzIHx8ICgoRkFJTFVSRVMrKykpCi0rICAgIG11c3RIYXZlU2VxdWVuY2Ugc2xlZXAg Im1ha2VTeXNjYWxsIChpZ25vcmVkPSIgfHwgKChGQUlMVVJFUysrKSkKLSsKLSsgICAgbXVzdEhh dmVTZXF1ZW5jZSBzbGVlcCAic3lzY2FsbGluZ1NpZ2hhbmRsZXIgKHNpZ25vPSIgInNpZ25hbCBo YW5kbGVyIGNhbGxlZCIgMHggfHwgKChGQUlMVVJFUysrKSkKLSsgICAgbXVzdEhhdmVTZXF1ZW5j ZSBwdGhyZWFkX2tpbGwgIm1ha2VTeXNjYWxsRnJvbVNpZ2hhbmRsZXIgKGlnbm9yZWQ9IiB8fCAo KEZBSUxVUkVTKyspKQotKwotKyAgICBtdXN0SGF2ZVNlcXVlbmNlIHNsZWVwICJzeXNjYWxsaW5n QWx0U2lnaGFuZGxlciAoc2lnbm89IiAic2lnbmFsIGhhbmRsZXIgY2FsbGVkIiAweCB8fCAoKEZB SUxVUkVTKyspKQotKyAgICBtdXN0SGF2ZVNlcXVlbmNlIHB0aHJlYWRfa2lsbCAibWFrZVN5c2Nh bGxGcm9tQWx0U2lnaGFuZGxlciAoaWdub3JlZD0iIHx8ICgoRkFJTFVSRVMrKykpCi0rCi0rICAg IG11c3RIYXZlU2VxdWVuY2UgVGhyZWFkICJzcGluIChpZ25vcmVkPSIgfHwgKChGQUlMVVJFUysr KSkKLSsKLSsgICAgbXVzdEhhdmVTZXF1ZW5jZSAic3Bpbm5pbmdTaWdoYW5kbGVyIChzaWdubz0i ICJzaWduYWwgaGFuZGxlciBjYWxsZWQiIDB4IHx8ICgoRkFJTFVSRVMrKykpCi0rICAgIG11c3RI YXZlU2VxdWVuY2UgcHRocmVhZF9raWxsICJzcGluRnJvbVNpZ2hhbmRsZXIgKGlnbm9yZWQ9IiB8 fCAoKEZBSUxVUkVTKyspKQotKwotKyAgICBtdXN0SGF2ZVNlcXVlbmNlICJzcGlubmluZ0FsdFNp Z2hhbmRsZXIgKHNpZ25vPSIgInNpZ25hbCBoYW5kbGVyIGNhbGxlZCIgMHggfHwgKChGQUlMVVJF UysrKSkKLSsgICAgbXVzdEhhdmVTZXF1ZW5jZSBwdGhyZWFkX2tpbGwgInNwaW5Gcm9tQWx0U2ln aGFuZGxlciAoaWdub3JlZD0iIHx8ICgoRkFJTFVSRVMrKykpCi0rCi0rICAgIG11c3RIYXZlU2Vx dWVuY2UgVGhyZWFkICJtYWluIChhcmdjPTEsIGFyZ3Y9IiB8fCAoKEZBSUxVUkVTKyspKQotKwot KyAgICByZXR1cm4gJEZBSUxVUkVTCi0rfQotKwotKyMgUHV0IHJlc3VsdCBvZiBkZWJ1Z2dpbmcg YSBjb3JlIGZpbGUgaW4gJExPRwotK2Z1bmN0aW9uIGdldExvZ0Zyb21Db3JlKCkgewotKyAgICAj IE1ha2Ugc3VyZSB3ZSBnZXQgYSBjb3JlIGZpbGUKLSsgICAgdWxpbWl0IC1jIHVubGltaXRlZCB8 fCBleGl0IDEKLSsKLSsgICAgIyBSdW4gdGhlIGNyYXNoZXIKLSsgICAgLi8kKGJhc2VuYW1lICIk UlVOTUUiKQotKyAgICBFWElUQ09ERT0kPwotKwotKyAgICAjIFZlcmlmeSB0aGF0IHdlIGFjdHVh bGx5IGNyYXNoZWQKLSsgICAgaWYgWyAkRVhJVENPREUgLWx0IDEyOCBdIDsgdGhlbgotKyAgICAg ICAgZWNobyA+PiAvZGV2L3N0ZGVyciBFUlJPUjogJFJVTk1FIHNob3VsZCBoYXZlIGJlZW4ga2ls bGVkIGJ5IGEgc2lnbmFsLCBnb3Qgbm9uLXNpZ25hbCBleGl0IGNvZGUgJEVYSVRDT0RFCi0rICAg ICAgICBleGl0IDEKLSsgICAgZmkKLSsKLSsgICAgIyBWZXJpZnkgdGhhdCB3ZSBnb3QgYSBjb3Jl IGZpbGUKLSsgICAgaWYgWyAhIC1yIGNvcmUqIF0gOyB0aGVuCi0rICAgICAgICBlY2hvID4+IC9k ZXYvc3RkZXJyIEVSUk9SOiAkUlVOTUUgZGlkIG5vdCBjcmVhdGUgYSBjb3JlIGZpbGUKLSsgICAg ICAgIGV4aXQgMQotKyAgICBmaQotKwotKyAgICAjIFJ1biBnZGIKLSsgICAgY2F0ID4gZ2Ric2Ny aXB0LmdkYiA8PEVPRgotK3NldCB3aWR0aCAwCi0rdCBhIGEgYnQgMTAwCi0rcXVpdAotK0VPRgot KyAgICBjYXQgZ2Ric2NyaXB0LmdkYiAvZGV2L3plcm8gfCBnZGIgLW54ICIuLyQoYmFzZW5hbWUg IiRSVU5NRSIpIiBjb3JlKiA+ICRMT0cKLSsgICAgRVhJVENPREU9JD8KLSsKLSsgICAgaWYgWyAk RVhJVENPREUgIT0gMCBdIDsgdGhlbgotKyAgICAgICAgKChGQUlMVVJFUysrKSkKLSsgICAgICAg IGVjaG8gPj4gL2Rldi9zdGRlcnIgV0FSTklORzogZ2RiIGV4aXRlZCB3aXRoIGVycm9yIGNvZGUg JEVYSVRDT0RFCi0rICAgIGZpCi0rfQotKwotKyMgUHV0IHJlc3VsdCBvZiBkZWJ1Z2dpbmcgYSBn Y29yZSBmaWxlIGluICRMT0cKLStmdW5jdGlvbiBnZXRMb2dGcm9tR2NvcmUoKSB7Ci0rICAgICMg Q3JlYXRlIHRoZSBjb3JlIGZpbGUKLSsgICAgcm0gLWYgY29yZSoKLSsgICAgY2F0ID4gZ2Ric2Ny aXB0LmdkYiA8PEVPRgotK2hhbmRsZSBTSUdRVUlUIHBhc3Mgbm9wcmludCBub3N0b3AKLStoYW5k bGUgU0lHVVNSMSBwYXNzIG5vcHJpbnQgbm9zdG9wCi0raGFuZGxlIFNJR1VTUjIgcGFzcyBub3By aW50IG5vc3RvcAotK2hhbmRsZSBTSUdBTFJNIHBhc3Mgbm9wcmludCBub3N0b3AKLStydW4KLStn Y29yZQotK3F1aXQKLStFT0YKLSsgICAgY2F0IGdkYnNjcmlwdC5nZGIgL2Rldi96ZXJvIHwgZ2Ri IC1ueCAiLi8kKGJhc2VuYW1lICIkUlVOTUUiKSIgPiAvZGV2L251bGwKLSsgICAgRVhJVENPREU9 JD8KLSsKLSsgICAgaWYgWyAkRVhJVENPREUgIT0gMCBdIDsgdGhlbgotKyAgICAgICAgKChGQUlM VVJFUysrKSkKLSsgICAgICAgIGVjaG8gPj4gL2Rldi9zdGRlcnIgV0FSTklORzogZ2RiIGV4aXRl ZCB3aXRoIGVycm9yIGNvZGUgJEVYSVRDT0RFIHdoZW4gY3JlYXRpbmcgZ2NvcmUgZmlsZQotKyAg ICBmaQotKwotKyAgICAjIFZlcmlmeSB0aGF0IHdlIGdvdCBhIGNvcmUgZmlsZSBmcm9tIGdjb3Jl Ci0rICAgIGlmIFsgISAtciBjb3JlKiBdIDsgdGhlbgotKyAgICAgICAgZWNobyA+PiAvZGV2L3N0 ZGVyciBFUlJPUjogZ2RiIGdjb3JlIGRpZCBub3QgY3JlYXRlIGEgY29yZSBmaWxlCi0rICAgICAg ICBleGl0IDEKLSsgICAgZmkKLSsKLSsgICAgIyBSdW4gZ2RiIG9uIHRoZSBnY29yZSBmaWxlCi0r ICAgIGNhdCA+IGdkYnNjcmlwdC5nZGIgPDxFT0YKLStzZXQgd2lkdGggMAotK3QgYSBhIGJ0IDEw MAotK3F1aXQKLStFT0YKLSsgICAgY2F0IGdkYnNjcmlwdC5nZGIgL2Rldi96ZXJvIHwgZ2RiIC1u eCAiLi8kKGJhc2VuYW1lICIkUlVOTUUiKSIgY29yZSogPiAkTE9HCi0rICAgIEVYSVRDT0RFPSQ/ Ci0rCi0rICAgIGlmIFsgJEVYSVRDT0RFICE9IDAgXSA7IHRoZW4KLSsgICAgICAgICgoRkFJTFVS RVMrKykpCi0rICAgICAgICBlY2hvID4+IC9kZXYvc3RkZXJyIFdBUk5JTkc6IGdkYiBleGl0ZWQg d2l0aCBlcnJvciBjb2RlICRFWElUQ09ERSB3aGVuIGV4YW1pbmluZyBnY29yZSBmaWxlCi0rICAg IGZpCi0rfQotKwotKyMgUHV0IHJlc3VsdCBvZiBkZWJ1Z2dpbmcgYSBjb3JlIGZpbGUgaW4gJExP RwotK2Z1bmN0aW9uIGdldExvZ0Zyb21MaXZlUHJvY2VzcygpIHsKLSsgICAgIyBSdW4gZ2RiCi0r ICAgIGNhdCA+IGdkYnNjcmlwdC5nZGIgPDxFT0YKLStoYW5kbGUgU0lHUVVJVCBwYXNzIG5vcHJp bnQgbm9zdG9wCi0raGFuZGxlIFNJR1VTUjEgcGFzcyBub3ByaW50IG5vc3RvcAotK2hhbmRsZSBT SUdVU1IyIHBhc3Mgbm9wcmludCBub3N0b3AKLStoYW5kbGUgU0lHQUxSTSBwYXNzIG5vcHJpbnQg bm9zdG9wCi0rc2V0IHdpZHRoIDAKLStydW4KLSt0IGEgYSBidCAxMDAKLStxdWl0Ci0rRU9GCi0r ICAgIGNhdCBnZGJzY3JpcHQuZ2RiIC9kZXYvemVybyB8IGdkYiAtbnggIi4vJChiYXNlbmFtZSAi JFJVTk1FIikiID4gJExPRwotKyAgICBFWElUQ09ERT0kPwotKwotKyAgICBpZiBbICRFWElUQ09E RSAhPSAwIF0gOyB0aGVuCi0rICAgICAgICAoKEZBSUxVUkVTKyspKQotKyAgICAgICAgZWNobyA+ PiAvZGV2L3N0ZGVyciBXQVJOSU5HOiBnZGIgZXhpdGVkIHdpdGggZXJyb3IgY29kZSAkRVhJVENP REUKLSsgICAgZmkKLSt9Ci0rCi0rIyMjIyMjIyBNYWluIHByb2dyYW0gZm9sbG93cyAjIyMjIyMj IyMjIyMjIyMjIyMjIyMKLSsKLSsjIE1ha2Ugc3VyZSB3ZSBkb24ndCBjbG9iYmVyIGFueWJvZHkg ZWxzZSdzIChjb3JlKSBmaWxlKHMpCi0rV09SS0RJUj0vdG1wLyRQUElECi0rbWtkaXIgLXAgJFdP UktESVIKLStjcCAiJFJVTk1FIiAkV09SS0RJUgotK2NkICRXT1JLRElSCi0rCi0rIyBDb3VudCBw cm9ibGVtcwotK0ZBSUxVUkVTPTAKLSsKLStlY2hvID09PSBUZXN0aW5nIGdkYiB2cyBjb3JlIGZp bGUuLi4KLStnZXRMb2dGcm9tQ29yZQotK3ZlcmlmeUxvZwotKygoRkFJTFVSRVMrPSQ/KSkKLStl Y2hvID09PSBDb3JlIGZpbGUgdGVzdHMgZG9uZS4KLSsKLStlY2hvCi0rCi0rZWNobyA9PT0gVGVz dGluZyBnZGIgdnMgZ2NvcmUgZmlsZS4uLgotK2dldExvZ0Zyb21HY29yZQotK3ZlcmlmeUxvZwot KygoRkFJTFVSRVMrPSQ/KSkKLStlY2hvID09PSBHY29yZSBmaWxlIHRlc3RzIGRvbmUuCi0rCi0r ZWNobwotKwotK2VjaG8gPT09IFRlc3RpbmcgZ2RiIHZzIGxpdmUgcHJvY2Vzcy4uLgotK2dldExv Z0Zyb21MaXZlUHJvY2VzcwotK3ZlcmlmeUxvZwotKygoRkFJTFVSRVMrPSQ/KSkKLStlY2hvID09 PSBMaXZlIHByb2Nlc3MgdGVzdHMgZG9uZS4KLSsKLSsjIEV4ZWN1dGl2ZSBzdW1tYXJ5Ci0rZWNo bwotK2lmIFsgJEZBSUxVUkVTID09IDAgXSA7IHRoZW4KLSsgICAgZWNobyBBbGwgdGVzdHMgcGFz c2VkIQotK2Vsc2UKLSsgICAgZWNobyAkRkFJTFVSRVMgdGVzdHMgZmFpbGVkIQotKyAgICBlY2hv Ci0rICAgIGVjaG8gTWFrZSBzdXJlIHRoZSB0aHJlYWRjcmFzaCBiaW5hcnkgY29udGFpbnMgZGVi dWdnaW5nIGluZm9ybWF0aW9uIFwoYnVpbGQgd2l0aCBcImdjYyAtZ1wiXCkuCi0rZmkKLSsKLSsj IENsZWFuIHVwCi0rY2QgLwotK3JtIC1yZiAkV09SS0RJUgotKwotK2V4aXQgJEZBSUxVUkVTCgpk aWZmIC0tZ2l0IGEvZ2RiLnNwZWMgYi9nZGIuc3BlYwppbmRleCBiMGRjMjJiLi45MWI2MjdiIDEw MDY0NAotLS0gYS9nZGIuc3BlYworKysgYi9nZGIuc3BlYwpAQCAtMTI1MCw2ICsxMjUwLDEwIEBA IGZpCiAlZW5kaWYKIAogJWNoYW5nZWxvZworKiBUaHUgSmFuIDI1IDIwMjQgR3VpbmV2ZXJlIExh cnNlbiA8YmxhcnNlbkByZWRoYXQuY29tPgorLSBSZW1vdmUgZ2RiLTYuNS1CRUEtdGVzdHN1aXRl LnBhdGNoLCBhcyBpdCB3YXMgdXBzdHJlYW1lZCBhbmQKKyAgd2lsbCBtYWtlIGl0cyB3YXkgYmFj ayB3aXRoIHRoZSBuZXh0IHJlYmFzZS4KKwogKiBUaHUgSmFuIDI1IDIwMjQgR3VpbmV2ZXJlIExh cnNlbiA8YmxhcnNlbkByZWRoYXQuY29tPiAtIDE0LjEtNwogLSBCYWNrcG9ydCAiZ2RiOiBmaXgg bGlzdCAuIHJlbGF0ZWQgY3Jhc2giCiAK