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=-1.0 required=5.0 tests=ALL_TRUSTED autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 24676 invoked from network); 24 Jul 2021 11:13:44 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 24 Jul 2021 11:13:44 -0000 Content-Type: multipart/mixed; boundary="===============1494076479975101625==" MIME-Version: 1.0 Subject: =?utf8?q?Re=3A_=5BPR_PATCH=5D_=5BUpdated=5D_tbb=3A_update_to_2021=2E3=2E0?= To: ml@inbox.vuxu.org From: Logarithmus Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Sat, 24 Jul 2021 13:13:43 +0200 List-Id: Message-ID: <20210724111343.tymw-jQcahUCr0cbKL7QTMEz-BlQWl3KOzWGIkK8m9s@z> GitHub notification mails are now in MIME to allow UTF8. --===============1494076479975101625== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgTG9nYXJpdGhtdXMgYWdhaW5zdCBt YXN0ZXIgb24gdGhlIHZvaWQtcGFja2FnZXMgcmVwb3NpdG9yeQoKaHR0cHM6Ly9naXRodWIuY29t L0xvZ2FyaXRobXVzL3ZvaWQtcGFja2FnZXMgdGJiLTIwMjEKaHR0cHM6Ly9naXRodWIuY29tL3Zv aWQtbGludXgvdm9pZC1wYWNrYWdlcy9wdWxsLzMyMTY2Cgp0YmI6IHVwZGF0ZSB0byAyMDIxLjMu MApGb2xsb3ctdXAgb2YgaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9pZC1wYWNrYWdl cy9wdWxsLzI3NzQ2LCBAdGh5cG9uICYgQG9sYWZtZXJzbWFubiBtaWdodCBiZSBpbnRlcmVzdGVk Lg0KKipUT0RPKiogZml4IHJldmVyc2UgZGVwZW5kZW5jaWVzOg0KLSBbIF0gT3BlblN1YmRpdjog dXBkYXRlIHRvIDMuNC40Lg0KLSBbIF0gUHJ1c2FTbGljZXI6IHVwZGF0ZSB0byAyLjMuMy4NCi0g WyBdIGxlbmRlcjogdXBkYXRlIHRvIDIuOTMuMS4NCi0gWyBdIGVtYnJlZTogdXBkYXRlIHRvIDMu MTMuMC4NCi0gWyBdIG9wZW5pbWFnZWlvOiB1cGRhdGUgdG8gMi4yLjE2LjAuDQotIFsgXSBvcGVu aW1hZ2VkZW5vaXNlOiB1cGRhdGUgdG8gMS40LjEuDQotIFsgXSBvcGVudmRiOiB1cGRhdGUgdG8g OC4xLjAuDQotIFsgXSBwYXJhdmlldzogdXBkYXRlIHRvIDUuOS4xLg0KLSBbIF0gb2NjdDogcmV2 YnVtcCBkdWUgdG8gdGJiIHVwZGF0ZQ0KDQojIyMjIEhhdmUgdGhlIHJlc3VsdHMgb2YgdGhlIHBy b3Bvc2VkIGNoYW5nZXMgYmVlbiB0ZXN0ZWQ/DQotIFt4XSBJIHVzZSB0aGUgcGFja2FnZXMgYWZm ZWN0ZWQgYnkgdGhlIHByb3Bvc2VkIGNoYW5nZXMgb24gYSByZWd1bGFyIGJhc2lzIGFuZCBjb25m aXJtIHRoaXMgUFIgd29ya3MgZm9yIG1lDQoKCkEgcGF0Y2ggZmlsZSBmcm9tIGh0dHBzOi8vZ2l0 aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvcHVsbC8zMjE2Ni5wYXRjaCBpcyBhdHRh Y2hlZA== --===============1494076479975101625== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-tbb-2021-32166.patch" RnJvbSA1Mzg4NDY2ZmZjMzkzMzdhZjY2YWQ4ZGJiNjM4OTFmYmQzYTU3YzJlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBcnR1ciBTaW5pbGEgPGZyZWVzb2Z0d2FyZUBsb2dhcml0aG11 cy5kZXY+CkRhdGU6IFNhdCwgMTcgSnVsIDIwMjEgMjM6NTc6NTIgKzAzMDAKU3ViamVjdDogW1BB VENIIDAxLzExXSBod2xvYzogYWRkIGxpYnBjaWFjY2Vzcy1kZXZlbCBtYWtlIGRlcGVuZGVuY3kK Ci0tLQogc3JjcGtncy9od2xvYy90ZW1wbGF0ZSB8IDggKysrKystLS0KIDEgZmlsZSBjaGFuZ2Vk LCA1IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9o d2xvYy90ZW1wbGF0ZSBiL3NyY3BrZ3MvaHdsb2MvdGVtcGxhdGUKaW5kZXggODE4ZGIyNjljZWJi Li42ZWVjNjYyZDBkNmUgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvaHdsb2MvdGVtcGxhdGUKKysrIGIv c3JjcGtncy9od2xvYy90ZW1wbGF0ZQpAQCAtMSwxMCArMSwxMiBAQAogIyBUZW1wbGF0ZSBmaWxl IGZvciAnaHdsb2MnCiBwa2duYW1lPWh3bG9jCiB2ZXJzaW9uPTIuNS4wCi1yZXZpc2lvbj0xCity ZXZpc2lvbj0yCiBidWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCiBob3N0bWFrZWRlcGVuZHM9InBr Zy1jb25maWciCi1tYWtlZGVwZW5kcz0iY2Fpcm8tZGV2ZWwgbmN1cnNlcy1kZXZlbCBsaWJ4bWwy LWRldmVsIGV1ZGV2LWxpYnVkZXYtZGV2ZWwiCittYWtlZGVwZW5kcz0iY2Fpcm8tZGV2ZWwgbmN1 cnNlcy1kZXZlbCBsaWJ4bWwyLWRldmVsIGxpYnBjaWFjY2Vzcy1kZXZlbCBldWRldi1saWJ1ZGV2 LWRldmVsIgorY2hlY2tkZXBlbmRzPSJ0YXIiCittYWtlX2NoZWNrX2FyZ3M9IlZFUkJPU0U9MSIK IHNob3J0X2Rlc2M9IlBvcnRhYmxlIGFic3RyYWN0aW9uIG9mIGhpZXJhcmNoaWNhbCBoYXJkd2Fy ZSBhcmNoaXRlY3R1cmVzIgogbWFpbnRhaW5lcj0iTGVhaCBOZXVraXJjaGVuIDxsZWFoQHZ1eHUu b3JnPiIKIGxpY2Vuc2U9IkJTRC0zLUNsYXVzZSIKQEAgLTMxLDcgKzMzLDcgQEAgbGliaHdsb2Nf cGFja2FnZSgpIHsKIAogbGliaHdsb2MtZGV2ZWxfcGFja2FnZSgpIHsKIAlzaG9ydF9kZXNjKz0i IC0gZGV2ZWxvcG1lbnQgZmlsZXMiCi0JZGVwZW5kcz0ibGliaHdsb2M+PSR7dmVyc2lvbn1fJHty ZXZpc2lvbn0iCisJZGVwZW5kcz0iJHttYWtlZGVwZW5kc30gbGliaHdsb2M+PSR7dmVyc2lvbn1f JHtyZXZpc2lvbn0iCiAJcGtnX2luc3RhbGwoKSB7CiAJCXZtb3ZlIHVzci9pbmNsdWRlCiAJCXZt b3ZlIHVzci9zaGFyZS9tYW4vbWFuMwoKRnJvbSBmN2I3MGRiZWZmMzFlMzkxNjk0ZjI3M2Q2MzU4 MWQ2NDZjZjEwODU4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBcnR1ciBTaW5pbGEg PGZyZWVzb2Z0d2FyZUBsb2dhcml0aG11cy5kZXY+CkRhdGU6IE1vbiwgNSBKdWwgMjAyMSAwMjo1 MDoyNiArMDMwMApTdWJqZWN0OiBbUEFUQ0ggMDIvMTFdIHRiYjogdXBkYXRlIHRvIDIwMjEuMy4w LgoKLS0tCiBjb21tb24vc2hsaWJzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAg NiArLQogc3JjcGtncy90YmIvcGF0Y2hlcy8wMC1od2xvYy0yLjUucGF0Y2ggICAgICAgfCAzNjcg KysrKysrKysrKysrKysrKysrKwogc3JjcGtncy90YmIvcGF0Y2hlcy8wMS1od2xvYy1wa2djb25m aWcucGF0Y2ggfCAgNTIgKysrCiBzcmNwa2dzL3RiYi9wYXRjaGVzL2hvc3RuYW1lLXVzYWdlLnBh dGNoICAgICB8ICAxMSAtCiBzcmNwa2dzL3RiYi9wYXRjaGVzL211c2wucGF0Y2ggICAgICAgICAg ICAgICB8ICAgNCArLQogc3JjcGtncy90YmIvdGVtcGxhdGUgICAgICAgICAgICAgICAgICAgICAg ICAgfCAgNjMgKy0tLQogNiBmaWxlcyBjaGFuZ2VkLCA0MzMgaW5zZXJ0aW9ucygrKSwgNzAgZGVs ZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy90YmIvcGF0Y2hlcy8wMC1od2xv Yy0yLjUucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3RiYi9wYXRjaGVzLzAxLWh3 bG9jLXBrZ2NvbmZpZy5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvdGJiL3BhdGNo ZXMvaG9zdG5hbWUtdXNhZ2UucGF0Y2gKCmRpZmYgLS1naXQgYS9jb21tb24vc2hsaWJzIGIvY29t bW9uL3NobGlicwppbmRleCBhN2FmYmYyYTU2ZjcuLjZiN2NhNWZiYzI0OSAxMDA2NDQKLS0tIGEv Y29tbW9uL3NobGlicworKysgYi9jb21tb24vc2hsaWJzCkBAIC0yMzc2LDEyICsyMzc2LDEwIEBA IGxpYmFudGh5LXVuaWNvZGUuc28uMCBsaWJhbnRoeS11bmljb2RlLTEuMC4wLjIwMjAxMTA5XzEK IGxpYmFudGh5ZGljLXVuaWNvZGUuc28uMCBsaWJhbnRoeS11bmljb2RlLTEuMC4wLjIwMjAxMTA5 XzEKIGxpYmFudGh5aW5wdXQtdW5pY29kZS5zby4wIGxpYmFudGh5LXVuaWNvZGUtMS4wLjAuMjAy MDExMDlfMQogbGliYW50aHlnb2JqZWN0LTEuMC5zby41IGlidXMtYW50aHktMS41LjZfMQotbGli dGJibWFsbG9jX3Byb3h5X2RlYnVnLnNvLjIgdGJiLTQuM18xCiBsaWJ0YmJtYWxsb2NfcHJveHku c28uMiB0YmItNC4zXzEKIGxpYnRiYm1hbGxvYy5zby4yIHRiYi00LjNfMQotbGlidGJiX2RlYnVn LnNvLjIgdGJiLTQuM18xCi1saWJ0YmIuc28uMiB0YmItNC4zXzEKLWxpYnRiYm1hbGxvY19kZWJ1 Zy5zby4yIHRiYi00LjNfMQorbGlidGJiLnNvLjEyIHRiYi0yMDIxLjMuMF8xCitsaWJ0YmJiaW5k XzJfNS5zby4zIHRiYi0yMDIxLjMuMF8xCiBsaWJlbWJyZWUuc28uMiBlbWJyZWUtMi41LjFfMQog bGliZ3RraW1hZ2V2aWV3LnNvLjAgZ3RraW1hZ2V2aWV3LTEuNi40XzEKIGxpYmdvb2NhbnZhcy0y LjAuc28uOSBnb29jYW52YXMtMi4wLjRfMQpkaWZmIC0tZ2l0IGEvc3JjcGtncy90YmIvcGF0Y2hl cy8wMC1od2xvYy0yLjUucGF0Y2ggYi9zcmNwa2dzL3RiYi9wYXRjaGVzLzAwLWh3bG9jLTIuNS5w YXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjljNGM5Mjg1Yzcx ZAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvdGJiL3BhdGNoZXMvMDAtaHdsb2MtMi41LnBh dGNoCkBAIC0wLDAgKzEsMzY3IEBACitBZGp1c3RlZCBieSBBcnR1ciBTaW5pbGEgPGZyZWVzb2Z0 d2FyZUBsb2dhcml0aG11cy5kZXY+CisKK0Zyb20gZTk2ZGJmNGI0OGU2ODlhYjgxMGIwNDI4ZDA4 NThhNmFiYzJjODNiZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEl2YW4gS29jaGlu IDxpdi5rb2NoaW5AZ21haWwuY29tPgorRGF0ZTogVGh1LCAxIEp1bCAyMDIxIDE1OjA3OjM5ICsw MzAwCitTdWJqZWN0OiBbUEFUQ0hdIFVwZ3JhZGUgZnJvbSBIV0xPQyAyLjQgdG8gSFdMT0MgMi41 ICgjNDQ4KQorCisqIFVwZ3JhZGUgZnJvbSBIV0xPQyAyLjQgdG8gSFdMT0MgMi41CisqIEludHJv ZHVjZSB0YmJiaW5kXzJfNSBsaWJyYXJ5CisqIFJlbW92ZSB0YmJiaW5kXzJfNCBsaWJyYXJ5Cisq IFVzZSB0aGUgSFdMT0NfVE9QT0xPR1lfRkxBR19SRVNUUklDVF9UT19DUFVCSU5ESU5HIHRvcG9s b2d5IGZsYWcgKGludHJvZHVjZXMgYXMgYSBwYXJ0IG9mIEhXTE9DIDIuNSkgdG8gcmVzdHJpY3Qg dG9wb2xvZ3kgZGlzY292ZXJpbmcgdG8gcHJvY2VzcyBiaW5kaW5nCisqIEZpeCB0ZXN0aW5nIG9u IExpbnV4CisqIEFwcGx5IHJldmlldyBjb21tZW50cworKiBJbXByb3ZlIHdvcmRpbmc6IHZhcmlh YmxlIC0+IHN1YnN0cmluZworKiBVc2UgcmlnaHQgdGJiYmluZCB2ZXJzaW9uIGZvciBpbmNvbXBh dGlibGUgaHdsb2NzIHRlc3QKKyogUmV3b3JrIG9wdGlvbiBzZW1hbnRpYworKiBVcGRhdGUgUkVB RE1FLm1kIGZvciBDTWFrZQorKiBSZXdvcmsgcmVhZG1lCisqIFVwZGF0ZSBjbWFrZS9SRUFETUUu bWQKKworU2lnbmVkLW9mZi1ieTogS29jaGluLCBJdmFuIDxrb2NoaW4uaXZhbkBpbnRlbC5jb20+ CisKK0NvLWF1dGhvcmVkLWJ5OiBBbGVrc2VpIEZlZG90b3YgPGFsZWtzZWkuZmVkb3RvdkBpbnRl bC5jb20+CistLS0KKyBDTWFrZUxpc3RzLnR4dCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAz ICsrLQorIGNtYWtlL1JFQURNRS5tZCAgICAgICAgICAgICAgICAgICAgICAgIHwgMTEgKysrKyst LS0KKyBjbWFrZS9od2xvY19kZXRlY3Rpb24uY21ha2UgICAgICAgICAgICB8ICA5ICsrKystLS0K KyBzcmMvdGJiL2dvdmVybm9yLmNwcCAgICAgICAgICAgICAgICAgICB8ICA0ICstLQorIHNyYy90 YmJiaW5kL0NNYWtlTGlzdHMudHh0ICAgICAgICAgICAgIHwgIDIgKy0KKyBzcmMvdGJiYmluZC90 YmJfYmluZC5jcHAgICAgICAgICAgICAgICB8IDIzICsrKysrKysrKysrLS0tLS0KKyB0ZXN0L0NN YWtlTGlzdHMudHh0ICAgICAgICAgICAgICAgICAgICB8IDMwICsrKysrKysrKystLS0tLS0tLS0t LQorIHRlc3QvY29tbW9uL2NvbW1vbl9hcmVuYV9jb25zdHJhaW50cy5oIHwgMzcgKysrKysrKysr KysrKysrKysrKysrKy0tLS0KKyA4IGZpbGVzIGNoYW5nZWQsIDgyIGluc2VydGlvbnMoKyksIDM3 IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvQ01ha2VMaXN0cy50eHQgYi9DTWFrZUxpc3Rz LnR4dAoraW5kZXggMzRhMjNkNDAwLi4zMDE4OTlhY2EgMTAwNjQ0CistLS0gYS9DTWFrZUxpc3Rz LnR4dAorKysrIGIvQ01ha2VMaXN0cy50eHQKK0BAIC0xMDAsNiArMTAwLDcgQEAgb3B0aW9uKFRC Ql9OT19BUFBDT05UQUlORVIgIkFwcGx5IC9BUFBDT05UQUlORVI6Tk8gKGZvciB0ZXN0aW5nIGJp bmFyaWVzIGZvciBXaW4KKyBvcHRpb24oVEJCNFBZX0JVSUxEICJFbmFibGUgdGJiNHB5IGJ1aWxk IiBPRkYpCisgb3B0aW9uKFRCQl9DUEYgIkVuYWJsZSBwcmV2aWV3IGZlYXR1cmVzIG9mIHRoZSBs aWJyYXJ5IiBPRkYpCisgb3B0aW9uKFRCQl9GSU5EX1BBQ0tBR0UgIkVuYWJsZSBzZWFyY2ggZm9y IGV4dGVybmFsIG9uZVRCQiB1c2luZyBmaW5kX3BhY2thZ2UgaW5zdGVhZCBvZiBidWlsZCBmcm9t IHNvdXJjZXMiIE9GRikKKytvcHRpb24oVEJCX0RJU0FCTEVfSFdMT0NfQVVUT01BVElDX1NFQVJD SCAiRGlzYWJsZSBIV0xPQyBhdXRvbWF0aWMgc2VhcmNoIGJ5IHBrZy1jb25maWcgdG9vbCIgT0ZG KQorIAorIGlmIChOT1QgREVGSU5FRCBCVUlMRF9TSEFSRURfTElCUykKKyAgICAgc2V0KEJVSUxE X1NIQVJFRF9MSUJTIE9OKQorQEAgLTE5NSw3ICsxOTYsNyBAQCBlbHNlKCkKKyAgICAgICAgIGFk ZF9zdWJkaXJlY3Rvcnkoc3JjL3RiYm1hbGxvYykKKyAgICAgICAgIGFkZF9zdWJkaXJlY3Rvcnko c3JjL3RiYm1hbGxvY19wcm94eSkKKyAgICAgICAgIGlmIChBUFBMRSkKKy0gICAgICAgICAgICBt ZXNzYWdlKFNUQVRVUyAiVEJCQmluZCBidWlsZCB0YXJnZXQgaXMgZGlzYWJsZWQgZHVlIHRvIHVu c3VwcG9ydGVkIGVudmlyb25tZW50IikKKysgICAgICAgICAgICBtZXNzYWdlKFNUQVRVUyAiVEJC QmluZCBidWlsZCB0YXJnZXRzIGFyZSBkaXNhYmxlZCBkdWUgdG8gdW5zdXBwb3J0ZWQgZW52aXJv bm1lbnQiKQorICAgICAgICAgZWxzZSgpCisgICAgICAgICAgICAgYWRkX3N1YmRpcmVjdG9yeShz cmMvdGJiYmluZCkKKyAgICAgICAgIGVuZGlmKCkKK2RpZmYgLS1naXQgYS9jbWFrZS9SRUFETUUu bWQgYi9jbWFrZS9SRUFETUUubWQKK2luZGV4IDM2ZmMzMDNmOS4uYjU4YzJmZjZhIDEwMDY0NAor LS0tIGEvY21ha2UvUkVBRE1FLm1kCisrKysgYi9jbWFrZS9SRUFETUUubWQKK0BAIC0xMyw2ICsx Myw3IEBAIFRCQjRQWV9CVUlMRDpCT09MIC0gRW5hYmxlICBJbnRlbChSKSBvbmVBUEkgVGhyZWFk aW5nIEJ1aWxkaW5nIEJsb2NrcyAob25lVEJCKSBQCisgVEJCX0NQRjpCT09MIC0gRW5hYmxlIHBy ZXZpZXcgZmVhdHVyZXMgb2YgdGhlIGxpYnJhcnkgKE9GRiBieSBkZWZhdWx0KQorIFRCQl9JTlNU QUxMX1ZBUlM6Qk9PTCAtIEVuYWJsZSBhdXRvLWdlbmVyYXRlZCB2YXJzIGluc3RhbGxhdGlvbihw YWNrYWdlcyBnZW5lcmF0ZWQgYnkgYGNwYWNrYCBhbmQgYG1ha2UgaW5zdGFsbGAgd2lsbCBhbHNv IGluY2x1ZGUgdGhlIHZhcnMgc2NyaXB0KShPRkYgYnkgZGVmYXVsdCkKKyBUQkJfVkFMR1JJTkRf TUVNQ0hFQ0s6Qk9PTCAtIEVuYWJsZSBzY2FuIGZvciBtZW1vcnkgbGVha3MgdXNpbmcgVmFsZ3Jp bmQgKE9GRiBieSBkZWZhdWx0KQorK1RCQl9ESVNBQkxFX0hXTE9DX0FVVE9NQVRJQ19TRUFSQ0gg LSBEaXNhYmxlIEhXTE9DIGF1dG9tYXRpYyBzZWFyY2ggYnkgcGtnLWNvbmZpZyB0b29sIChPRkYg YnkgZGVmYXVsdCkKKyBgYGAKKyAKKyAjIyBDb25maWd1cmUsIGJ1aWxkIGFuZCB0ZXN0CitAQCAt NDIsOSArNDMsOSBAQCBTb21lIHVzZWZ1bCBvcHRpb25zOgorIAorICMjIyMgVEJCQmluZCBsaWJy YXJ5IGNvbmZpZ3VyYXRpb24KKyAKKy1UaGUgVEJCYmluZCBsaWJyYXJ5IGhhcyB0d28gdmVyc2lv bnM6IGB0YmJiaW5kYCBhbmQgYHRiYmJpbmRfMl8wYC4gRWFjaCBvZiB0aGVzZSB2ZXJzaW9ucyBp cyBsaW5rZWQgd2l0aCBjb3JyZXNwb25kaW5nIEhXTE9DIGxpYnJhcnkgdmVyc2lvbjogYHRiYmJp bmRgIGxpbmtzIHdpdGggSFdMT0MgMS4xMS54ICwgYHRiYmJpbmRfMl8wYCBsaW5rcyB3aXRoIEhX TE9DIDIueC4KKytUaGUgVEJCYmluZCBsaWJyYXJ5IGhhcyB0aHJlZSB2ZXJzaW9uczogYHRiYmJp bmRgLCBgdGJiYmluZF8yXzBgIGFuZCBgdGJiYmluZF8yXzVgLiBFYWNoIG9mIHRoZXNlIHZlcnNp b25zIGlzIGxpbmtlZCB3aXRoIGNvcnJlc3BvbmRpbmcgSFdMT0MgbGlicmFyeSB2ZXJzaW9uOiBg dGJiYmluZGAgbGlua3Mgd2l0aCBIV0xPQyAxLjExLnggLCBgdGJiYmluZF8yXzBgIGxpbmtzIHdp dGggSFdMT0MgMi4xLTIuNCwgYHRiYmJpbmRfMl81YCBsaW5rcyB3aXRoIEhXTE9DIDIuNSBhbmQg bGF0ZXIuCisgCistVG8gZW5hYmxlIHRoZSBUQkJCaW5kIGxpYnJhcnkgYnVpbGQgb3Igc3BlY2lh bCB0ZXN0cyB0aGF0IHBlcmZvcm1lZCBpbnNpZGUgdGhlIEhXTE9DIGVudmlyb25tZW50LCBwbGVh c2Ugc3BlY2lmeSB0aGUgZm9sbG93aW5nIENNYWtlIHZhcmlhYmxlczoKKytUaGUgc2VhcmNoIGZv ciBhIHN1aXRhYmxlIHZlcnNpb24gb2YgdGhlIEhXTE9DIGxpYnJhcnkgaXMgZW5hYmxlZCBieSBk ZWZhdWx0LCBidXQgaWYgeW91IHdhbnQgdG8gdXNlIGEgc3BlY2lmaWMgdmVyc2lvbiBvZiB0aGUg bGlicmFyeSwgeW91IGNhbiBzcGVjaWZ5IHRoZSBwYXRoIHRvIGl0IG1hbnVhbGx5IHVzaW5nIHRo ZSBmb2xsb3dpbmcgQ01ha2UgdmFyaWFibGVzOgorIAorICAtIGBDTUFLRV9IV0xPQ188SFdMT0Nf VkVSPl9MSUJSQVJZX1BBVEhgIC0gcGF0aCB0byB0aGUgY29ycmVzcG9uZGluZyBIV0xPQyB2ZXJz aW9uIHNoYXJlZCBsaWJyYXJ5IG9uIExpbnV4IG9yIHBhdGggdG8gYC5saWJgIGZpbGUgb24gV2lu ZG93cy4KKyAgLSBgQ01BS0VfSFdMT0NfPEhXTE9DX1ZFUj5fSU5DTFVERV9QQVRIYCAtIHBhdGgg dG8gdGhlIGNvcnJlc3BvbmRpbmcgSFdMT0MgdmVyc2lvbiBpbmNsdWRlcyBkaXJlY3RvcnkuCitA QCAtNTIsNyArNTMsMTEgQEAgVG8gZW5hYmxlIHRoZSBUQkJCaW5kIGxpYnJhcnkgYnVpbGQgb3Ig c3BlY2lhbCB0ZXN0cyB0aGF0IHBlcmZvcm1lZCBpbnNpZGUgdGhlIEgKKyBXaW5kb3dzIHJlcXVp cmVzIG9uZSBhZGRpdGlvbmFsIHZhcmlhYmxlIGZvciBjb3JyZWN0IFRCQkJpbmQgbGlicmFyeSBi dWlsZGluZzoKKyAgLSBgQ01BS0VfSFdMT0NfPEhXTE9DX1ZFUj5fRExMX1BBVEhgIC0gcGF0aCB0 byB0aGUgY29ycmVzcG9uZGluZyBIV0xPQyB2ZXJzaW9uIGAuZGxsYCBmaWxlLgorIAorLWBIV0xP Q19WRVJgIHZhcmlhYmxlIHVzZWQgYWJvdmUgY2FuIGJlIHJlcGxhY2VkIHdpdGggb25lIG9mIHRo ZSB0d28gdmFsdWVzOiBgMV8xMWAgZm9yIHRoZSBgdGJiYmluZGAgbGlicmFyeSBjb25maWd1cmF0 aW9uIGFuZCBgMmAgZm9yIHRoZSBgdGJiYmluZF8yXzBgIGxpYnJhcnkgY29uZmlndXJhdGlvbi4K KytgSFdMT0NfVkVSYCBzdWJzdHJpbmcgdXNlZCBhYm92ZSBjYW4gYmUgcmVwbGFjZWQgd2l0aCBv bmUgb2YgdGhlIHRocmVlIHZhbHVlczogYDFfMTFgIGZvciB0aGUgYHRiYmJpbmRgIGxpYnJhcnkg Y29uZmlndXJhdGlvbiwgYDJgIGZvciB0aGUgYHRiYmJpbmRfMl8wYCwgYW5kIGAyXzVgIGZvciB0 aGUgYHRiYmJpbmRfMl81YCBsaWJyYXJ5IGNvbmZpZ3VyYXRpb24uCisrCisrSWYgeW91IHNwZWNp ZnkgdmFyaWFibGVzIGZvciBzZXZlcmFsIFRCQkJpbmQgdmVyc2lvbnMsIHRoZW4gYnVpbGRpbmcg cHJvY2VzcyBmb3IgYWxsIG9mIHRoZXNlIHZlcnNpb25zIHdpbGwgYmUgcGVyZm9ybWVkIGR1cmlu ZyBzaW5nbGUgYnVpbGQgc2Vzc2lvbi4KKysKKytTcGVjaWZ5IHRoZSBgVEJCX0RJU0FCTEVfSFdM T0NfQVVUT01BVElDX1NFQVJDSGAgdG8gZGlzYWJsZSBIV0xPQyBsaWJyYXJpZXMgYXV0b21hdGlj IHNlYXJjaC4KKyAKKyAjIyMgQnVpbGQKKyAKK2RpZmYgLS1naXQgYS9jbWFrZS9od2xvY19kZXRl Y3Rpb24uY21ha2UgYi9jbWFrZS9od2xvY19kZXRlY3Rpb24uY21ha2UKK2luZGV4IGUxZWVjYTVm YS4uZGU3ZjNjMDQ3IDEwMDY0NAorLS0tIGEvY21ha2UvaHdsb2NfZGV0ZWN0aW9uLmNtYWtlCisr KysgYi9jbWFrZS9od2xvY19kZXRlY3Rpb24uY21ha2UKK0BAIC0xMiw3ICsxMiw3IEBACisgIyBT ZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlz c2lvbnMgYW5kCisgIyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAKKy1saXN0KEFQ UEVORCBIV0xPQ19SRVFVSVJFRF9WRVJTSU9OUyAxXzExIDIgMl80KQorK2xpc3QoQVBQRU5EIEhX TE9DX1JFUVVJUkVEX1ZFUlNJT05TIDFfMTEgMiAyXzUpCisgCisgZm9yZWFjaChod2xvY192ZXJz aW9uICR7SFdMT0NfUkVRVUlSRURfVkVSU0lPTlN9KQorICAgICBpZiAoTk9UIFdJTjMyKQorQEAg LTU1LDEwICs1NiwxMCBAQCBpZiAoTk9UIEhXTE9DX1RBUkdFVF9FWFBMSUNJVExZX0RFRklORUQg QU5ECisgICAgICAgICBpZiAoSFdMT0NfRk9VTkQpCisgICAgICAgICAgICAgaWYgKEhXTE9DX1ZF UlNJT04gVkVSU0lPTl9MRVNTIDIpCisgICAgICAgICAgICAgICAgIHNldChUQkJCSU5EX0xJQlJB UllfTkFNRSB0YmJiaW5kKQorLSAgICAgICAgICAgIGVsc2VpZihIV0xPQ19WRVJTSU9OIFZFUlNJ T05fTEVTUyAyLjQpCisrICAgICAgICAgICAgZWxzZWlmKEhXTE9DX1ZFUlNJT04gVkVSU0lPTl9M RVNTIDIuNSkKKyAgICAgICAgICAgICAgICAgc2V0KFRCQkJJTkRfTElCUkFSWV9OQU1FIHRiYmJp bmRfMl8wKQorICAgICAgICAgICAgIGVsc2UoKQorLSAgICAgICAgICAgICAgICBzZXQoVEJCQklO RF9MSUJSQVJZX05BTUUgdGJiYmluZF8yXzQpCisrICAgICAgICAgICAgICAgIHNldChUQkJCSU5E X0xJQlJBUllfTkFNRSB0YmJiaW5kXzJfNSkKKyAgICAgICAgICAgICBlbmRpZigpCisgICAgICAg ICBlbmRpZigpCisgICAgIGVuZGlmKCkKK2RpZmYgLS1naXQgYS9zcmMvdGJiL2dvdmVybm9yLmNw cCBiL3NyYy90YmIvZ292ZXJub3IuY3BwCitpbmRleCBiZjRlNDAyZDEuLmI4NDJlMDc1ZiAxMDA2 NDQKKy0tLSBhL3NyYy90YmIvZ292ZXJub3IuY3BwCisrKysgYi9zcmMvdGJiL2dvdmVybm9yLmNw cAorQEAgLTM2Miw3ICszNjIsNyBAQCBzdGF0aWMgY29uc3QgdW5zaWduZWQgTGlua1RhYmxlU2l6 ZSA9IHNpemVvZihUYmJCaW5kTGlua1RhYmxlKSAvIHNpemVvZihkeW5hbWljXworIAorICNkZWZp bmUgVEJCQklORF9OQU1FIExJQlJBUllfUFJFRklYICJ0YmJiaW5kIiBERUJVR19TVUZGSVggTElC UkFSWV9FWFRFTlNJT04KKyAjZGVmaW5lIFRCQkJJTkRfMl8wX05BTUUgTElCUkFSWV9QUkVGSVgg InRiYmJpbmRfMl8wIiBERUJVR19TVUZGSVggTElCUkFSWV9FWFRFTlNJT04KKy0jZGVmaW5lIFRC QkJJTkRfMl80X05BTUUgTElCUkFSWV9QUkVGSVggInRiYmJpbmRfMl80IiBERUJVR19TVUZGSVgg TElCUkFSWV9FWFRFTlNJT04KKysjZGVmaW5lIFRCQkJJTkRfMl81X05BTUUgTElCUkFSWV9QUkVG SVggInRiYmJpbmRfMl81IiBERUJVR19TVUZGSVggTElCUkFSWV9FWFRFTlNJT04KKyAjZW5kaWYg LyogX1dJTjMyIHx8IF9XSU42NCB8fCBfX2xpbnV4X18gKi8KKyAKKyAvLyBSZXByZXNlbnRhdGlv biBvZiBzeXN0ZW0gaGFyZHdhcmUgdG9wb2xvZ3kgaW5mb3JtYXRpb24gb24gdGhlIFRCQiBzaWRl LgorQEAgLTM4OSw3ICszODksNyBAQCBjb25zdCBjaGFyKiBsb2FkX3RiYmJpbmRfc2hhcmVkX29i amVjdCgpIHsKKyAgICAgR2V0TmF0aXZlU3lzdGVtSW5mbygmc2kpOworICAgICBpZiAoc2kuZHdO dW1iZXJPZlByb2Nlc3NvcnMgPiAzMikgcmV0dXJuIG51bGxwdHI7CisgI2VuZGlmIC8qIF9XSU4z MiAmJiAhX1dJTjY0ICovCistICAgIGZvciAoY29uc3QgYXV0byYgdGJiYmluZF92ZXJzaW9uIDog e1RCQkJJTkRfMl80X05BTUUsIFRCQkJJTkRfMl8wX05BTUUsIFRCQkJJTkRfTkFNRX0pIHsKKysg ICAgZm9yIChjb25zdCBhdXRvJiB0YmJiaW5kX3ZlcnNpb24gOiB7VEJCQklORF8yXzVfTkFNRSwg VEJCQklORF8yXzBfTkFNRSwgVEJCQklORF9OQU1FfSkgeworICAgICAgICAgaWYgKGR5bmFtaWNf bGluayh0YmJiaW5kX3ZlcnNpb24sIFRiYkJpbmRMaW5rVGFibGUsIExpbmtUYWJsZVNpemUpKSB7 CisgICAgICAgICAgICAgcmV0dXJuIHRiYmJpbmRfdmVyc2lvbjsKKyAgICAgICAgIH0KK2RpZmYg LS1naXQgYS9zcmMvdGJiYmluZC9DTWFrZUxpc3RzLnR4dCBiL3NyYy90YmJiaW5kL0NNYWtlTGlz dHMudHh0CitpbmRleCAwMjk4OTM3NTEuLmU1Y2RiZjhiYiAxMDA2NDQKKy0tLSBhL3NyYy90YmJi aW5kL0NNYWtlTGlzdHMudHh0CisrKysgYi9zcmMvdGJiYmluZC9DTWFrZUxpc3RzLnR4dAorQEAg LTk5LDcgKzk5LDcgQEAgaWYgKE5PVCBERUZJTkVEIEhXTE9DX1RBUkdFVF9FWFBMSUNJVExZX0RF RklORUQgQU5EIERFRklORUQgSFdMT0NfTElCUkFSSUVTKQorIGVsc2UoKQorICAgICB0YmJiaW5k X2J1aWxkKHRiYmJpbmQgICAgIEhXTE9DOjpod2xvY18xXzExKQorICAgICB0YmJiaW5kX2J1aWxk KHRiYmJpbmRfMl8wIEhXTE9DOjpod2xvY18yICAgKQorLSAgICB0YmJiaW5kX2J1aWxkKHRiYmJp bmRfMl80IEhXTE9DOjpod2xvY18yXzQgKQorKyAgICB0YmJiaW5kX2J1aWxkKHRiYmJpbmRfMl81 IEhXTE9DOjpod2xvY18yXzUgKQorIGVuZGlmKCkKKyAKKyAKK2RpZmYgLS1naXQgYS9zcmMvdGJi YmluZC90YmJfYmluZC5jcHAgYi9zcmMvdGJiYmluZC90YmJfYmluZC5jcHAKK2luZGV4IDk3YmUz MDhjNy4uODhjOTU2YWNiIDEwMDY0NAorLS0tIGEvc3JjL3RiYmJpbmQvdGJiX2JpbmQuY3BwCisr KysgYi9zcmMvdGJiYmluZC90YmJfYmluZC5jcHAKK0BAIC0zNCw3ICszNCw4IEBACisgI3ByYWdt YSBHQ0MgZGlhZ25vc3RpYyBwb3AKKyAjZW5kaWYKKyAKKy0jZGVmaW5lIF9fSFdMT0NfSFlCUklE X0NQVVNfSU5URVJGQUNFU19QUkVTRU5UIChIV0xPQ19BUElfVkVSU0lPTiA+PSAweDIwNDAwKQor KyNkZWZpbmUgX19UQkJCSU5EX0hXTE9DX0hZQlJJRF9DUFVTX0lOVEVSRkFDRVNfUFJFU0VOVCAo SFdMT0NfQVBJX1ZFUlNJT04gPj0gMHgyMDQwMCkKKysjZGVmaW5lIF9fVEJCQklORF9IV0xPQ19U T1BPTE9HWV9GTEFHX1JFU1RSSUNUX1RPX0NQVUJJTkRJTkdfUFJFU0VOVCAoSFdMT0NfQVBJX1ZF UlNJT04gPj0gMHgyMDUwMCkKKyAKKyAvLyBNb3N0IG9mIGh3bG9jIGNhbGxzIHJldHVybnMgbmVn YXRpdmUgZXhpdCBjb2RlIG9uIGVycm9yLgorIC8vIFRoaXMgbWFjcm8gdHJhY2tzIGVycm9yIGNv ZGVzIHRoYXQgYXJlIHJldHVybmVkIGZyb20gdGhlIGh3bG9jIGludGVyZmFjZXMuCitAQCAtODUs NiArODYsMTYgQEAgY2xhc3MgcGxhdGZvcm1fdG9wb2xvZ3kgeworICAgICAgICAgLy8gUGFyc2Ug dG9wb2xvZ3kKKyAgICAgICAgIGlmICggaHdsb2NfdG9wb2xvZ3lfaW5pdCggJnRvcG9sb2d5ICkg PT0gMCApIHsKKyAgICAgICAgICAgICBpbml0aWFsaXphdGlvbl9zdGF0ZSA9IHRvcG9sb2d5X2Fs bG9jYXRlZDsKKysjaWYgX19UQkJCSU5EX0hXTE9DX1RPUE9MT0dZX0ZMQUdfUkVTVFJJQ1RfVE9f Q1BVQklORElOR19QUkVTRU5UCisrICAgICAgICAgICAgaWYgKCBncm91cHNfbnVtID09IDEgJiYK KysgICAgICAgICAgICAgICAgIGh3bG9jX3RvcG9sb2d5X3NldF9mbGFncyh0b3BvbG9neSwKKysg ICAgICAgICAgICAgICAgICAgICBIV0xPQ19UT1BPTE9HWV9GTEFHX0lTX1RISVNTWVNURU0gfAor KyAgICAgICAgICAgICAgICAgICAgIEhXTE9DX1RPUE9MT0dZX0ZMQUdfUkVTVFJJQ1RfVE9fQ1BV QklORElORworKyAgICAgICAgICAgICAgICAgKSAhPSAwCisrICAgICAgICAgICAgKSB7CisrICAg ICAgICAgICAgICAgIHJldHVybjsKKysgICAgICAgICAgICB9CisrI2VuZGlmCisgICAgICAgICAg ICAgaWYgKCBod2xvY190b3BvbG9neV9sb2FkKCB0b3BvbG9neSApID09IDAgKSB7CisgICAgICAg ICAgICAgICAgIGluaXRpYWxpemF0aW9uX3N0YXRlID0gdG9wb2xvZ3lfbG9hZGVkOworICAgICAg ICAgICAgIH0KK0BAIC0xMzUsNyArMTQ2LDcgQEAgY2xhc3MgcGxhdGZvcm1fdG9wb2xvZ3kgewor ICAgICAgICAgICAgIG51bWFfaW5kZXhlc19saXN0LnJlc2l6ZShudW1hX25vZGVzX2NvdW50KTsK KyAgICAgICAgICAgICBod2xvY19vYmpfdCBub2RlX2J1ZmZlcjsKKyAgICAgICAgICAgICBod2xv Y19iaXRtYXBfZm9yZWFjaF9iZWdpbihpLCBwcm9jZXNzX25vZGVfYWZmaW5pdHlfbWFzaykgewor LSAgICAgICAgICAgICAgICBub2RlX2J1ZmZlciA9IGh3bG9jX2dldF9vYmpfYnlfdHlwZSh0b3Bv bG9neSwgSFdMT0NfT0JKX05VTUFOT0RFLCBpKTsKKysgICAgICAgICAgICAgICAgbm9kZV9idWZm ZXIgPSBod2xvY19nZXRfbnVtYW5vZGVfb2JqX2J5X29zX2luZGV4KHRvcG9sb2d5LCBpKTsKKyAg ICAgICAgICAgICAgICAgbnVtYV9pbmRleGVzX2xpc3RbY291bnRlcl0gPSBzdGF0aWNfY2FzdDxp bnQ+KG5vZGVfYnVmZmVyLT5sb2dpY2FsX2luZGV4KTsKKyAKKyAgICAgICAgICAgICAgICAgaWYg KCBudW1hX2luZGV4ZXNfbGlzdFtjb3VudGVyXSA+IG1heF9udW1hX2luZGV4ICkgeworQEAgLTE1 MCw3ICsxNjEsNyBAQCBjbGFzcyBwbGF0Zm9ybV90b3BvbG9neSB7CisgICAgICAgICAgICAgbnVt YV9hZmZpbml0eV9tYXNrc19saXN0LnJlc2l6ZShtYXhfbnVtYV9pbmRleCArIDEpOworICAgICAg ICAgICAgIGludCBpbmRleCA9IDA7CisgICAgICAgICAgICAgaHdsb2NfYml0bWFwX2ZvcmVhY2hf YmVnaW4oaSwgcHJvY2Vzc19ub2RlX2FmZmluaXR5X21hc2spIHsKKy0gICAgICAgICAgICAgICAg bm9kZV9idWZmZXIgPSBod2xvY19nZXRfb2JqX2J5X3R5cGUodG9wb2xvZ3ksIEhXTE9DX09CSl9O VU1BTk9ERSwgaSk7CisrICAgICAgICAgICAgICAgIG5vZGVfYnVmZmVyID0gaHdsb2NfZ2V0X251 bWFub2RlX29ial9ieV9vc19pbmRleCh0b3BvbG9neSwgaSk7CisgICAgICAgICAgICAgICAgIGlu ZGV4ID0gc3RhdGljX2Nhc3Q8aW50Pihub2RlX2J1ZmZlci0+bG9naWNhbF9pbmRleCk7CisgCisg ICAgICAgICAgICAgICAgIGh3bG9jX2NwdXNldF90JiBjdXJyZW50X21hc2sgPSBudW1hX2FmZmlu aXR5X21hc2tzX2xpc3RbaW5kZXhdOworQEAgLTE2OCw3ICsxNzksNyBAQCBjbGFzcyBwbGF0Zm9y bV90b3BvbG9neSB7CisgICAgICAgICAgICAgY29yZV90eXBlc19pbmRleGVzX2xpc3QucHVzaF9i YWNrKC0xKTsKKyAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICB9CistI2lmIF9fSFdMT0Nf SFlCUklEX0NQVVNfSU5URVJGQUNFU19QUkVTRU5UCisrI2lmIF9fVEJCQklORF9IV0xPQ19IWUJS SURfQ1BVU19JTlRFUkZBQ0VTX1BSRVNFTlQKKyAgICAgICAgIF9fVEJCX0FTU0VSVChod2xvY19n ZXRfYXBpX3ZlcnNpb24oKSA+PSAweDIwNDAwLCAiSHlicmlkIENQVXMgc3VwcG9ydCBpbnRlcmZh Y2VzIHJlcXVpcmVkIEhXTE9DID49IDIuNCIpOworICAgICAgICAgLy8gUGFyc2luZyB0aGUgaHli cmlkIENQVSB0b3BvbG9neQorICAgICAgICAgaW50IGNvcmVfdHlwZXNfbnVtYmVyID0gaHdsb2Nf Y3B1a2luZHNfZ2V0X25yKHRvcG9sb2d5LCAwKTsKK0BAIC0xOTYsOSArMjA3LDkgQEAgY2xhc3Mg cGxhdGZvcm1fdG9wb2xvZ3kgeworICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgfQor ICAgICAgICAgfQorLSNlbHNlIC8qIV9fSFdMT0NfSFlCUklEX0NQVVNfSU5URVJGQUNFU19QUkVT RU5UKi8KKysjZWxzZSAvKiFfX1RCQkJJTkRfSFdMT0NfSFlCUklEX0NQVVNfSU5URVJGQUNFU19Q UkVTRU5UKi8KKyAgICAgICAgIGJvb2wgY29yZV90eXBlc19wYXJzaW5nX2Jyb2tlbnt0cnVlfTsK Ky0jZW5kaWYgLypfX0hXTE9DX0hZQlJJRF9DUFVTX0lOVEVSRkFDRVNfUFJFU0VOVCovCisrI2Vu ZGlmIC8qX19UQkJCSU5EX0hXTE9DX0hZQlJJRF9DUFVTX0lOVEVSRkFDRVNfUFJFU0VOVCovCisg CisgICAgICAgICBpZiAoY29yZV90eXBlc19wYXJzaW5nX2Jyb2tlbikgeworICAgICAgICAgICAg IGZvciAoYXV0byYgY29yZV90eXBlX21hc2sgOiBjb3JlX3R5cGVzX2FmZmluaXR5X21hc2tzX2xp c3QpIHsKK2RpZmYgLS1naXQgYS90ZXN0L0NNYWtlTGlzdHMudHh0IGIvdGVzdC9DTWFrZUxpc3Rz LnR4dAoraW5kZXggYmRhZTllMmIxLi5jMmI5ZDZkYmEgMTAwNjQ0CistLS0gYS90ZXN0L0NNYWtl TGlzdHMudHh0CisrKysgYi90ZXN0L0NNYWtlTGlzdHMudHh0CitAQCAtMjc1LDkgKzI3NSw5IEBA IGZ1bmN0aW9uKHRiYl9hZGRfdGJiYmluZF90ZXN0KQorICAgICAgICAgRkFJTF9SRUdVTEFSX0VY UFJFU1NJT04gIlN0YXR1czouKkZBSUxVUkUiCisgICAgICkKKyAKKy0gICAgaWYgKFRBUkdFVCBI V0xPQzo6aHdsb2NfMl80IEFORCBOT1QgSFdMT0NfMl80X1RFU1RTX1NUQVRVU19TSE9XTikKKy0g ICAgICAgIG1lc3NhZ2UoU1RBVFVTICJIV0xPQyAyLjQgZGVwZW5kZW50IHRlc3RzIHdlcmUgZW5h YmxlZC4iKQorLSAgICAgICAgc2V0KEhXTE9DXzJfNF9URVNUU19TVEFUVVNfU0hPV04gVFJVRSBQ QVJFTlRfU0NPUEUpCisrICAgIGlmIChUQVJHRVQgSFdMT0M6Omh3bG9jXzJfNSBBTkQgTk9UIEhX TE9DXzJfNV9URVNUU19TVEFUVVNfU0hPV04pCisrICAgICAgICBtZXNzYWdlKFNUQVRVUyAiSFdM T0MgMi41IGRlcGVuZGVudCB0ZXN0cyB3ZXJlIGVuYWJsZWQuIikKKysgICAgICAgIHNldChIV0xP Q18yXzVfVEVTVFNfU1RBVFVTX1NIT1dOIFRSVUUgUEFSRU5UX1NDT1BFKQorICAgICBlbmRpZigp CisgCisgICAgIGlmIChUQVJHRVQgSFdMT0M6Omh3bG9jXzIgQU5EIE5PVCBIV0xPQ18yX1RFU1RT X1NUQVRVU19TSE9XTikKK0BAIC0yOTEsMjIgKzI5MSwyMiBAQCBmdW5jdGlvbih0YmJfYWRkX3Ri YmJpbmRfdGVzdCkKKyAgICAgZW5kaWYoKQorIAorICAgICBsaXN0KEFQUEVORCBIV0xPQ19URVNU X0NBU0VTCistICAgICAgICBod2xvY18yXzQKKysgICAgICAgIGh3bG9jXzJfNQorICAgICAgICAg aHdsb2NfMgorICAgICAgICAgaHdsb2NfMV8xMQorLSAgICAgICAgaHdsb2NfMl80X2h3bG9jXzIK Ky0gICAgICAgIGh3bG9jXzJfNF9od2xvY18xXzExCisrICAgICAgICBod2xvY18yXzVfaHdsb2Nf MgorKyAgICAgICAgaHdsb2NfMl81X2h3bG9jXzFfMTEKKyAgICAgICAgIGh3bG9jXzJfaHdsb2Nf MV8xMQorLSAgICAgICAgaHdsb2NfMl80X2h3bG9jXzJfaHdsb2NfMV8xMQorKyAgICAgICAgaHds b2NfMl81X2h3bG9jXzJfaHdsb2NfMV8xMQorICAgICApCisgCistICAgIGxpc3QoQVBQRU5EIEhX TE9DX1RFU1RfQ0FTRV8wX1ZBUlMgdGJiYmluZF8yXzQgImh3bG9jXzJfNCIpCisrICAgIGxpc3Qo QVBQRU5EIEhXTE9DX1RFU1RfQ0FTRV8wX1ZBUlMgdGJiYmluZF8yXzUgImh3bG9jXzJfNSIpCisg ICAgIGxpc3QoQVBQRU5EIEhXTE9DX1RFU1RfQ0FTRV8xX1ZBUlMgdGJiYmluZF8yICAgImh3bG9j XzIiKQorICAgICBsaXN0KEFQUEVORCBIV0xPQ19URVNUX0NBU0VfMl9WQVJTIHRiYmJpbmQgICAg ICJod2xvY18xXzExIikKKy0gICAgbGlzdChBUFBFTkQgSFdMT0NfVEVTVF9DQVNFXzNfVkFSUyB0 YmJiaW5kXzJfNCAiaHdsb2NfMl80LGh3bG9jXzIiKQorLSAgICBsaXN0KEFQUEVORCBIV0xPQ19U RVNUX0NBU0VfNF9WQVJTIHRiYmJpbmRfMl80ICJod2xvY18yXzQsaHdsb2NfMV8xMSIpCisrICAg IGxpc3QoQVBQRU5EIEhXTE9DX1RFU1RfQ0FTRV8zX1ZBUlMgdGJiYmluZF8yXzUgImh3bG9jXzJf NSxod2xvY18yIikKKysgICAgbGlzdChBUFBFTkQgSFdMT0NfVEVTVF9DQVNFXzRfVkFSUyB0YmJi aW5kXzJfNSAiaHdsb2NfMl81LGh3bG9jXzFfMTEiKQorICAgICBsaXN0KEFQUEVORCBIV0xPQ19U RVNUX0NBU0VfNV9WQVJTIHRiYmJpbmRfMiAgICJod2xvY18yLGh3bG9jXzFfMTEiKQorLSAgICBs aXN0KEFQUEVORCBIV0xPQ19URVNUX0NBU0VfNl9WQVJTIHRiYmJpbmRfMl80ICJod2xvY18yXzQs aHdsb2NfMixod2xvY18xXzExIikKKysgICAgbGlzdChBUFBFTkQgSFdMT0NfVEVTVF9DQVNFXzZf VkFSUyB0YmJiaW5kXzJfNSAiaHdsb2NfMl81LGh3bG9jXzIsaHdsb2NfMV8xMSIpCisgCisgICAg IGZvcmVhY2goVEVTVF9DQVNFICR7SFdMT0NfVEVTVF9DQVNFU30pCisgICAgICAgICBsaXN0KEZJ TkQgSFdMT0NfVEVTVF9DQVNFUyAke1RFU1RfQ0FTRX0gVEVTVF9DQVNFX0lOREVYKQorQEAgLTMz MSw3ICszMzEsNyBAQCBlbmRmdW5jdGlvbigpCisgIyBDb3B5IGxpYnJhcmllcyB0byB0ZXN0IGZv bGRlciB0byBtYWtlIGl0IHZpc2libGUgZHVyaW5nIHRlc3RzIGV4ZWN1dGlvbiBpZiBleHRlcm5h bCBUQkIgaXMgdGVzdGVkLgorICMgVE9ETzogY2hlY2sgYW5kIHVwZGF0ZSBmb3IgbXVsdGktY29u ZmlnIGdlbmVyYXRvcnMuCisgaWYgKFRCQl9GT1VORCkKKy0gICAgbGlzdChBUFBFTkQgX3RiYl90 ZXN0X2NvbXBvbmVudHMgdGJiIHRiYm1hbGxvYyB0YmJtYWxsb2NfcHJveHkgdGJiYmluZCB0YmJi aW5kXzJfMCB0YmJiaW5kXzJfNCkKKysgICAgbGlzdChBUFBFTkQgX3RiYl90ZXN0X2NvbXBvbmVu dHMgdGJiIHRiYm1hbGxvYyB0YmJtYWxsb2NfcHJveHkgdGJiYmluZCB0YmJiaW5kXzJfMCB0YmJi aW5kXzJfNSkKKyAgICAgZm9yZWFjaChfY29tcG9uZW50ICR7X3RiYl90ZXN0X2NvbXBvbmVudHN9 KQorICAgICAgICAgaWYgKFRBUkdFVCBUQkI6OiR7X2NvbXBvbmVudH0pCisgICAgICAgICAgICAg Z2V0X3Byb3BlcnR5KCR7X2NvbXBvbmVudH1fbGliX2ZpbGVfbG9jYXRpb24gVEFSR0VUIFRCQjo6 JHtfY29tcG9uZW50fSBQUk9QRVJUWSBMT0NBVElPTikKK0BAIC01OTMsNiArNTkzLDYgQEAgaWYg KE5PVCAiJHtDTUFLRV9TWVNURU1fUFJPQ0VTU09SfSIgTUFUQ0hFUyAibWlwcyIpCisgICAgIHRi Yl9hZGRfdGVzdChTVUJESVIgdGJibWFsbG9jIE5BTUUgdGVzdF9tYWxsb2NfbmV3X2hhbmRsZXIg REVQRU5ERU5DSUVTIFRCQjo6dGJibWFsbG9jX3Byb3h5KQorIGVuZGlmKCkKKyAKKy11bnNldChI V0xPQ18yXzRfVEVTVFNfU1RBVFVTX1NIT1dOKQorK3Vuc2V0KEhXTE9DXzJfNV9URVNUU19TVEFU VVNfU0hPV04pCisgdW5zZXQoSFdMT0NfMl9URVNUU19TVEFUVVNfU0hPV04pCisgdW5zZXQoSFdM T0NfMV8xMV9URVNUU19TVEFUVVNfU0hPV04pCitkaWZmIC0tZ2l0IGEvdGVzdC9jb21tb24vY29t bW9uX2FyZW5hX2NvbnN0cmFpbnRzLmggYi90ZXN0L2NvbW1vbi9jb21tb25fYXJlbmFfY29uc3Ry YWludHMuaAoraW5kZXggMmEwYjFlYTk3Li41ZWZjNzEwODIgMTAwNjQ0CistLS0gYS90ZXN0L2Nv bW1vbi9jb21tb25fYXJlbmFfY29uc3RyYWludHMuaAorKysrIGIvdGVzdC9jb21tb24vY29tbW9u X2FyZW5hX2NvbnN0cmFpbnRzLmgKK0BAIC0zOCw5ICszOCwyNiBAQAorIAorICNpZiAoX1dJTjMy IHx8IF9XSU42NCkgJiYgX19UQkJfSFdMT0NfVkFMSURfRU5WSVJPTk1FTlQKKyAjaW5jbHVkZSA8 d2luZG93cy5oPgorLWludCBnZXRfcHJvY2Vzc29yc19ncm91cHNfY291bnQoKSB7IHJldHVybiBH ZXRBY3RpdmVQcm9jZXNzb3JHcm91cENvdW50KCk7IH0KKytpbnQgZ2V0X3Byb2Nlc3NvcnNfZ3Jv dXBfY291bnQoKSB7CisrICAgIFNZU1RFTV9JTkZPIHNpOworKyAgICBHZXROYXRpdmVTeXN0ZW1J bmZvKCZzaSk7CisrICAgIERXT1JEX1BUUiBwYW0sIHNhbSwgbSA9IDE7CisrICAgIEdldFByb2Nl c3NBZmZpbml0eU1hc2soIEdldEN1cnJlbnRQcm9jZXNzKCksICZwYW0sICZzYW0gKTsKKysgICAg aW50IG5wcm9jID0gMDsKKysgICAgZm9yICggc3RkOjpzaXplX3QgaSA9IDA7IGkgPCBzaXplb2Yo RFdPUkRfUFRSKSAqIENIQVJfQklUOyArK2ksIG0gPDw9IDEgKSB7CisrICAgICAgICBpZiAoIHBh bSAmIG0gKQorKyAgICAgICAgICAgICsrbnByb2M7CisrICAgIH0KKysgICAgLy8gU2V0dGluZyB1 cCBwcm9jZXNzb3IgZ3JvdXBzIGluIGNhc2UgdGhlIHByb2Nlc3MgZG9lcyBub3QgcmVzdHJpY3Qg YWZmaW5pdHkgbWFzayBhbmQgbW9yZSB0aGFuIG9uZSBwcm9jZXNzb3IgZ3JvdXAgaXMgcHJlc2Vu dAorKyAgICBpZiAoIG5wcm9jID09IChpbnQpc2kuZHdOdW1iZXJPZlByb2Nlc3NvcnMgICkgewor KyAgICAgICAgLy8gVGhlIHByb2Nlc3MgZG9lcyBub3QgaGF2ZSByZXN0cmljdGluZyBhZmZpbml0 eSBtYXNrIGFuZCBtdWx0aXBsZSBwcm9jZXNzb3IgZ3JvdXBzIGFyZSBwb3NzaWJsZQorKyAgICAg ICAgcmV0dXJuIChpbnQpR2V0QWN0aXZlUHJvY2Vzc29yR3JvdXBDb3VudCgpOworKyAgICB9IGVs c2UgeworKyAgICAgICAgcmV0dXJuIDE7CisrICAgIH0KKyt9CisgI2Vsc2UKKy1pbnQgZ2V0X3By b2Nlc3NvcnNfZ3JvdXBzX2NvdW50KCkgeyByZXR1cm4gMTsgfQorK2ludCBnZXRfcHJvY2Vzc29y c19ncm91cF9jb3VudCgpIHsgcmV0dXJuIDE7IH0KKyAjZW5kaWYKKyAKKyAvL1RPRE86IFdyaXRl IGEgdGVzdCB0aGF0IGNoZWNrcyBmb3IgbWVtb3J5IGxlYWtzIGR1cmluZyBkeW5hbWljIGxpbmsv dW5saW5rIG9mIFRCQmJpbmQuCitAQCAtNjksNiArODYsNyBAQCBpbnQgZ2V0X3Byb2Nlc3NvcnNf Z3JvdXBzX2NvdW50KCkgeyByZXR1cm4gMTsgfQorICNlbmRpZgorIAorICNkZWZpbmUgX19IV0xP Q19IWUJSSURfQ1BVU19JTlRFUkZBQ0VTX1BSRVNFTlQgKEhXTE9DX0FQSV9WRVJTSU9OID49IDB4 MjA0MDApCisrI2RlZmluZSBfX0hXTE9DX1RPUE9MT0dZX0ZMQUdfUkVTVFJJQ1RfVE9fQ1BVQklO RElOR19QUkVTRU5UIChIV0xPQ19BUElfVkVSU0lPTiA+PSAweDIwNTAwKQorIC8vIEF0IHRoaXMg bW9tZW50IHRoZSBoeWJyaWQgQ1BVcyBIV0xPQyBpbnRlcmZhY2VzIHJldHVybnMgdW5leHBlY3Rl ZCByZXN1bHRzIG9uIHNvbWUgV2luZG93cyBtYWNoaW5lcworIC8vIGluIHRoZSAzMi1iaXQgYXJj aCBtb2RlLgorICNkZWZpbmUgX19IV0xPQ19IWUJSSURfQ1BVU19JTlRFUkZBQ0VTX1ZBTElEICgh X1dJTjMyIHx8IF9XSU42NCkKK0BAIC0xNTMsOSArMTcxLDE4IEBAIGNsYXNzIHN5c3RlbV9pbmZv IHsKKyAKKyAgICAgc3lzdGVtX2luZm8oKSB7CisgICAgICAgICBod2xvY19yZXF1aXJlX2V4KGh3 bG9jX3RvcG9sb2d5X2luaXQsICZ0b3BvbG9neSk7CisrI2lmIF9fSFdMT0NfVE9QT0xPR1lfRkxB R19SRVNUUklDVF9UT19DUFVCSU5ESU5HX1BSRVNFTlQKKysgICAgICAgIGlmICggZ2V0X3Byb2Nl c3NvcnNfZ3JvdXBfY291bnQoKSA9PSAxICkgeworKyAgICAgICAgICAgIFJFUVVJUkUoCisrICAg ICAgICAgICAgICAgIGh3bG9jX3RvcG9sb2d5X3NldF9mbGFncyh0b3BvbG9neSwKKysgICAgICAg ICAgICAgICAgICAgIEhXTE9DX1RPUE9MT0dZX0ZMQUdfSVNfVEhJU1NZU1RFTSB8CisrICAgICAg ICAgICAgICAgICAgICBIV0xPQ19UT1BPTE9HWV9GTEFHX1JFU1RSSUNUX1RPX0NQVUJJTkRJTkcp ID09IDAKKysgICAgICAgICAgICApOworKyAgICAgICAgfQorKyNlbmRpZgorICAgICAgICAgaHds b2NfcmVxdWlyZV9leChod2xvY190b3BvbG9neV9sb2FkLCB0b3BvbG9neSk7CisgCistICAgICAg ICBpZiAoIGdldF9wcm9jZXNzb3JzX2dyb3Vwc19jb3VudCgpID4gMSApIHsKKysgICAgICAgIGlm ICggZ2V0X3Byb2Nlc3NvcnNfZ3JvdXBfY291bnQoKSA+IDEgKSB7CisgICAgICAgICAgICAgcHJv Y2Vzc19jcHVzZXQgPSBod2xvY19iaXRtYXBfZHVwKGh3bG9jX3RvcG9sb2d5X2dldF9jb21wbGV0 ZV9jcHVzZXQodG9wb2xvZ3kpKTsKKyAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgcHJv Y2Vzc19jcHVzZXQgPSBod2xvY19iaXRtYXBfYWxsb2MoKTsKK0BAIC00MzQsNyArNDYxLDcgQEAg c3lzdGVtX2luZm86OmFmZmluaXR5X21hc2sgZ2V0X2FyZW5hX2FmZmluaXR5KHRiYjo6dGFza19h cmVuYSYgdGEpIHsKKyAgICAgICAgICAgICAgICAgYmFycmllci53YWl0KCk7CisgICAgICAgICAg ICAgICAgIHRiYjo6c3Bpbl9tdXRleDo6c2NvcGVkX2xvY2sgbG9jayhhZmZpbml0eV9tdXRleCk7 CisgICAgICAgICAgICAgICAgIHN5c3RlbV9pbmZvOjphZmZpbml0eV9tYXNrIHRocmVhZF9hZmZp bml0eSA9IHN5c3RlbV9pbmZvOjphbGxvY2F0ZV9jdXJyZW50X2FmZmluaXR5X21hc2soKTsKKy0g ICAgICAgICAgICAgICAgaWYgKGdldF9wcm9jZXNzb3JzX2dyb3Vwc19jb3VudCgpID09IDEpIHsK KysgICAgICAgICAgICAgICAgaWYgKGdldF9wcm9jZXNzb3JzX2dyb3VwX2NvdW50KCkgPT0gMSkg eworICAgICAgICAgICAgICAgICAgICAgUkVRVUlSRV9NRVNTQUdFKGh3bG9jX2JpdG1hcF9pc2Vx dWFsKHRocmVhZF9hZmZpbml0eSwgYXJlbmFfYWZmaW5pdHkpLAorICAgICAgICAgICAgICAgICAg ICAgICAgICJUaHJlYWRzIGhhdmUgZGlmZmVyZW50IG1hc2tzIG9uIG1hY2hpbmUgd2l0aG91dCBz ZXZlcmFsIHByb2Nlc3NvcnMgZ3JvdXBzLiIpOworICAgICAgICAgICAgICAgICB9CitAQCAtNTMy LDcgKzU1OSw3IEBAIGNvbnN0cmFpbnRzX2NvbnRhaW5lciBnZW5lcmF0ZV9jb25zdHJhaW50c192 YXJpZXR5KCkgeworICAgICAgICAgfQorIAorICAgICAgICAgLy8gU29tZSBjb25zdHJhaW50cyBt YXkgY2F1c2UgdW5leHBlY3RlZCBiZWhhdmlvciwgd2hpY2ggd291bGQgYmUgZml4ZWQgbGF0ZXIu CistICAgICAgICBpZiAoZ2V0X3Byb2Nlc3NvcnNfZ3JvdXBzX2NvdW50KCkgPiAxKSB7CisrICAg ICAgICBpZiAoZ2V0X3Byb2Nlc3NvcnNfZ3JvdXBfY291bnQoKSA+IDEpIHsKKyAgICAgICAgICAg ICBmb3IoYXV0byBpdCA9IHJlc3VsdHMuYmVnaW4oKTsgaXQgIT0gcmVzdWx0cy5lbmQoKTsgKytp dCkgeworICAgICAgICAgICAgICAgICBpZiAoaXQtPm1heF90aHJlYWRzX3Blcl9jb3JlICE9IHRi Yjo6dGFza19hcmVuYTo6YXV0b21hdGljCisgICAgICAgICAgICAgICAgICAgICYmIChpdC0+bnVt YV9pZCA9PSB0YmI6OnRhc2tfYXJlbmE6OmF1dG9tYXRpYyB8fCB0YmI6OmluZm86Om51bWFfbm9k ZXMoKS5zaXplKCkgPT0gMSkKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvdGJiL3BhdGNoZXMvMDEtaHds b2MtcGtnY29uZmlnLnBhdGNoIGIvc3JjcGtncy90YmIvcGF0Y2hlcy8wMS1od2xvYy1wa2djb25m aWcucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4yNzllYmM0 Mzk3Y2QKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3RiYi9wYXRjaGVzLzAxLWh3bG9jLXBr Z2NvbmZpZy5wYXRjaApAQCAtMCwwICsxLDUyIEBACitCYXNlZCBvbiBodHRwczovL2dpdGh1Yi5j b20vb25lYXBpLXNyYy9vbmVUQkIvcHVsbC80OTgKK1R3ZWFrZWQgYSBiaXQgdG8gd29yayBvbiBg djIwMjEuMy4wYAorCitkaWZmIC0tZ2l0IGEvc3JjL3RiYmJpbmQvQ01ha2VMaXN0cy50eHQgYi9z cmMvdGJiYmluZC9DTWFrZUxpc3RzLnR4dAoraW5kZXggZTVjZGJmOGJiLi5hNDAzMzIxMGEgMTAw NjQ0CistLS0gYS9zcmMvdGJiYmluZC9DTWFrZUxpc3RzLnR4dAorKysrIGIvc3JjL3RiYmJpbmQv Q01ha2VMaXN0cy50eHQKK0BAIC0zNyw2ICszNywxMCBAQCBmdW5jdGlvbih0YmJiaW5kX2J1aWxk IFRCQkJJTkRfTkFNRSBSRVFVSVJFRF9IV0xPQ19UQVJHRVQpCisgICAgICAgICAkPElOU1RBTExf SU5URVJGQUNFOiR7Q01BS0VfSU5TVEFMTF9JTkNMVURFRElSfT4KKyAgICAgICAgICR7SFdMT0Nf SU5DTFVERV9ESVJTfSAjIHBrZy1jb25maWcgZGVmaW5lZAorICAgICApCisrCXRhcmdldF9saW5r X2RpcmVjdG9yaWVzKCR7VEJCQklORF9OQU1FfQorKwkJUFJJVkFURQorKwkJJHtIV0xPQ19MSUJS QVJZX0RJUlN9ICMgcGtnLWNvbmZpZyBkZWZpbmVkCisrCSkKKyAKKyAgICAgdGFyZ2V0X2NvbXBp bGVfb3B0aW9ucygke1RCQkJJTkRfTkFNRX0KKyAgICAgICAgIFBSSVZBVEUKK0BAIC02OSw3ICs2 OSw2IEBAIGZ1bmN0aW9uKHRiYmJpbmRfYnVpbGQgVEJCQklORF9OQU1FIFJFUVVJUkVEX0hXTE9D X1RBUkdFVCkKKyAgICAgICAgICAgICBQUklWQVRFCisgICAgICAgICAgICAgJHtUQkJfTElCX0xJ TktfRkxBR1N9CisgICAgICAgICAgICAgJHtUQkJfQ09NTU9OX0xJTktfRkxBR1N9CistICAgICAg ICAgICAgJHtIV0xPQ19MSUJSQVJZX0RJUlN9ICMgcGtnLWNvbmZpZyBkZWZpbmVkCisgICAgICAg ICApCisgICAgIGVsc2UoKQorICAgICAgICAgdGFyZ2V0X2xpbmtfbGlicmFyaWVzKCR7VEJCQklO RF9OQU1FfQorQEAgLTc2LDcgKzc2LDYgQEAgZnVuY3Rpb24odGJiYmluZF9idWlsZCBUQkJCSU5E X05BTUUgUkVRVUlSRURfSFdMT0NfVEFSR0VUKQorICAgICAgICAgICAgIFBSSVZBVEUKKyAgICAg ICAgICAgICAke1RCQl9MSUJfTElOS19GTEFHU30KKyAgICAgICAgICAgICAke1RCQl9DT01NT05f TElOS19GTEFHU30KKy0gICAgICAgICAgICAke0hXTE9DX0xJQlJBUllfRElSU30gIyBwa2ctY29u ZmlnIGRlZmluZWQKKyAgICAgICAgICkKKyAgICAgZW5kaWYoKQorIAorZGlmZiAtLWdpdCBhL3Rl c3QvQ01ha2VMaXN0cy50eHQgYi90ZXN0L0NNYWtlTGlzdHMudHh0CitpbmRleCBiNzY4NzU5ZDUu LjNlYjgzNTdlNiAxMDA2NDQKKy0tLSBhL3Rlc3QvQ01ha2VMaXN0cy50eHQKKysrKyBiL3Rlc3Qv Q01ha2VMaXN0cy50eHQKK0BAIC0yNTgsNyArMjU4LDEyIEBAIGZ1bmN0aW9uKHRiYl9hZGRfdGJi YmluZF90ZXN0KQorICAgICAgICAgKQorICAgICAgICAgc2V0X3Byb3BlcnR5KAorICAgICAgICAg ICAgIFRBUkdFVCAke190YmJiaW5kX3Rlc3RfTkFNRX0KKy0gICAgICAgICAgICBQUk9QRVJUWSBM SU5LX0xJQlJBUklFUyAke0hXTE9DX0xJQlJBUllfRElSU30gJHtIV0xPQ19MSUJSQVJJRVN9Cisr ICAgICAgICAgICAgUFJPUEVSVFkgTElOS19MSUJSQVJJRVMgJHtIV0xPQ19MSUJSQVJJRVN9Cisr ICAgICAgICAgICAgQVBQRU5ECisrICAgICAgICApCisrICAgICAgICBzZXRfcHJvcGVydHkoCisr ICAgICAgICAgICAgVEFSR0VUICR7X3RiYmJpbmRfdGVzdF9OQU1FfQorKwkJCVBST1BFUlRZIExJ TktfRElSRUNUT1JJRVMgJHtIV0xPQ19MSUJSQVJZX0RJUlN9CisgICAgICAgICAgICAgQVBQRU5E CisgICAgICAgICApCisgICAgICAgICBzZXRfcHJvcGVydHkoCmRpZmYgLS1naXQgYS9zcmNwa2dz L3RiYi9wYXRjaGVzL2hvc3RuYW1lLXVzYWdlLnBhdGNoIGIvc3JjcGtncy90YmIvcGF0Y2hlcy9o b3N0bmFtZS11c2FnZS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGFlZmVm ZjE5MmI1Li4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy90YmIvcGF0Y2hlcy9ob3N0bmFtZS11 c2FnZS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDExICswLDAgQEAKLS0tLSBhL2J1aWxkL3Zl cnNpb25faW5mb19saW51eC5zaAotKysrIGIvYnVpbGQvdmVyc2lvbl9pbmZvX2xpbnV4LnNoCi1A QCAtMjAsNyArMjAsNyBAQAotIAotICMgU2NyaXB0IHVzZWQgdG8gZ2VuZXJhdGUgdmVyc2lvbiBp bmZvIHN0cmluZwotIGVjaG8gIiNkZWZpbmUgX19UQkJfVkVSU0lPTl9TVFJJTkdTKE4pIFxcIgot LWVjaG8gJyNOIjogQlVJTERfSE9TVCciXHRcdCJgaG9zdG5hbWUgLXNgIiAoImB1bmFtZSAtbWAi KSInIiBFTkRMIFwnCi0rZWNobyAnI04iOiBCVUlMRF9IT1NUJyJcdFx0ImBob3N0bmFtZWAiICgi YHVuYW1lIC1tYCIpIiciIEVOREwgXCcKLSAjIGZpbmQgT1MgbmFtZSBpbiAqLXJlbGVhc2UgYW5k IGlzc3VlKiBmaWxlcyBieSBmaWx0ZXJpbmcgYmxhbmsgbGluZXMgYW5kIGxzYi1yZWxlYXNlIGNv bnRlbnQgb3V0Ci0gZWNobyAnI04iOiBCVUlMRF9PUyciXHRcdCJgbHNiX3JlbGVhc2UgLXNkIDI+ L2Rldi9udWxsIHwgZ3JlcCAtaWggJ1thLXpdICcgLSAvZXRjLypyZWxlYXNlIC9ldGMvaXNzdWUg Mj4vZGV2L251bGwgfCBoZWFkIC0xIHwgc2VkIC1lICdzL1siXFxcXF0vL2cnYCciIEVOREwgXCcK LSBlY2hvICcjTiI6IEJVSUxEX0tFUk5FTCciXHQiYHVuYW1lIC1zcnZgJyIgRU5ETCBcJwpkaWZm IC0tZ2l0IGEvc3JjcGtncy90YmIvcGF0Y2hlcy9tdXNsLnBhdGNoIGIvc3JjcGtncy90YmIvcGF0 Y2hlcy9tdXNsLnBhdGNoCmluZGV4IGE4ODY3ZWI1Mzc5My4uZWM4OWM2YTk1ZmM2IDEwMDY0NAot LS0gYS9zcmNwa2dzL3RiYi9wYXRjaGVzL211c2wucGF0Y2gKKysrIGIvc3JjcGtncy90YmIvcGF0 Y2hlcy9tdXNsLnBhdGNoCkBAIC0xLDUgKzEsNSBAQAotLS0tIGEvc3JjL3RiYm1hbGxvYy9wcm94 eS5jcHAJMjAxOC0xMC0xNyAxNDowNTozMS4zMTE3MjMwMTMgKzAyMDAKLSsrKyBiL3NyYy90YmJt YWxsb2MvcHJveHkuY3BwCTIwMTgtMTAtMTcgMTQ6MDY6MzIuOTcyNzI2MTk0ICswMjAwCistLS0g YS9zcmMvdGJibWFsbG9jX3Byb3h5L3Byb3h5LmNwcAkyMDE4LTEwLTE3IDE0OjA1OjMxLjMxMTcy MzAxMyArMDIwMAorKysrIGIvc3JjL3RiYm1hbGxvY19wcm94eS9wcm94eS5jcHAJMjAxOC0xMC0x NyAxNDowNjozMi45NzI3MjYxOTQgKzAyMDAKIEBAIC0yOCw2ICsyOCw3IEBACiAgLy8gb2YgYWxp Z25lZF9hbGxvYyBhcyByZXF1aXJlZCBieSBuZXcgQysrIHN0YW5kYXJkLCB0aGlzIG1ha2VzIGl0 IGhhcmQgdG8KICAvLyByZWRlZmluZSBhbGlnbmVkX2FsbG9jIGhlcmUuIEhvd2V2ZXIsIHJ1bm5p bmcgb24gc3lzdGVtcyB3aXRoIG5ldyBsaWJjCmRpZmYgLS1naXQgYS9zcmNwa2dzL3RiYi90ZW1w bGF0ZSBiL3NyY3BrZ3MvdGJiL3RlbXBsYXRlCmluZGV4IGFlZWY2ZWJkZDA2MS4uNDc2NTU4Mjlm NzQ0IDEwMDY0NAotLS0gYS9zcmNwa2dzL3RiYi90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3RiYi90 ZW1wbGF0ZQpAQCAtMSw3NiArMSwzMyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAndGJiJwogcGtn bmFtZT10YmIKLXZlcnNpb249MjAyMC5VMwordmVyc2lvbj0yMDIxLjMuMAogcmV2aXNpb249MQot IyB2ZXJzaW9uIHJld3JpdGU6IDIwMTdfVTcgKHVwc3RyZWFtKSA9PiAyMDE3LjcgKHhicHMpCi1f dmVyPSR7dmVyc2lvbi8uL199Ci13cmtzcmM9Im9uZVRCQi0ke192ZXJ9IgotYnVpbGRfc3R5bGU9 Z251LW1ha2VmaWxlCi1ob3N0bWFrZWRlcGVuZHM9ImNtYWtlIgord3Jrc3JjPSJvbmVUQkItJHt2 ZXJzaW9ufSIKK2J1aWxkX3N0eWxlPWNtYWtlCittYWtlZGVwZW5kcz0ibGliaHdsb2MtZGV2ZWwg bGliZ29tcC1kZXZlbCIKIHNob3J0X2Rlc2M9IkludGVsIFRocmVhZGluZyBCdWlsZGluZyBCbG9j a3MiCiBtYWludGFpbmVyPSJBbmRyZWEgQnJhbmNhbGVvbmkgPGFiY0Bwb21wZWwubWU+IgogbGlj ZW5zZT0iQXBhY2hlLTIuMCIKIGhvbWVwYWdlPSJodHRwczovL3d3dy50aHJlYWRpbmdidWlsZGlu Z2Jsb2Nrcy5vcmciCi1kaXN0ZmlsZXM9Imh0dHBzOi8vZ2l0aHViLmNvbS9vbmVhcGktc3JjL29u ZVRCQi9hcmNoaXZlLyR7X3Zlcn0udGFyLmd6IgotY2hlY2tzdW09MjEwM2NjNjIzOGM5MzU2NjRm ODc2ODA2MThmNjY4NGQ1NzUwMWQ0YTJmYThlYThmNmM5N2FkNmZmN2RjNzIyYQotCi1jYXNlICIk WEJQU19UQVJHRVRfTUFDSElORSIgaW4KLQl4ODZfNjQqKQotCQltYWtlX2J1aWxkX2FyZ3M9ImFy Y2g9aW50ZWw2NCIKLQkJOzsKLQlpNjg2KikKLQkJbWFrZV9idWlsZF9hcmdzPSJhcmNoPWlhMzIi Ci0JCTs7Ci0JYXJtdjdsKikKLQkJbWFrZV9idWlsZF9hcmdzPSJhcmNoPWFybXY3IgotCQk7Owot CWFhcmNoNjQqKQotCQltYWtlX2J1aWxkX2FyZ3M9ImFyY2g9YXJtNjQiCi0JCTs7Ci0JcHBjNjQq KQotCQltYWtlX2J1aWxkX2FyZ3M9ImFyY2g9cHBjNjQiCi0JCTs7Ci0JcHBjKikKLQkJbWFrZV9i dWlsZF9hcmdzPSJhcmNoPXBwYzMyIgotCQk7OwotCSopCi0JCSMgbWFrZSBzdXJlIHRvIGZhbGwg YmFjayBpbnN0ZWFkIG9mIGxldHRpbmcgaG9zdCB1bmFtZSBjb250cm9sIGl0Ci0JCW1ha2VfYnVp bGRfYXJncz0iYXJjaD1nZW5lcmljIgotCQk7OwotZXNhYwotCi1wb3N0X2V4dHJhY3QoKSB7Ci0J c2VkIC1pICdzfENQTFVTID0gZy4ufENQTFVTID0gJChDWFgpfGcnIGJ1aWxkL2xpbnV4LmdjYy5p bmMKLQlzZWQgLWkgJ3N8Q09OTFkgPSBnY2N8Q09OTFkgPSAkKENDKXxnJyBidWlsZC9saW51eC5n Y2MuaW5jCitkaXN0ZmlsZXM9Imh0dHBzOi8vZ2l0aHViLmNvbS9vbmVhcGktc3JjL29uZVRCQi9h cmNoaXZlL3Yke3ZlcnNpb259LnRhci5neiIKK2NoZWNrc3VtPThmNjE2NTYxNjAzNjk1YmJiODM4 NzE4NzVkMmM2MDUxZWEyOGY4MTg3ZGJlNTkyOTk5NjEzNjk5MDRkMWQ0OWUKIAorcHJlX3BhdGNo KCkgewogCSMgYWx0ZXJuYXRpdmUgbWlnaHQgYmU6CiAJIyBodHRwczovL2dpdC5hbHBpbmVsaW51 eC5vcmcvY2dpdC9hcG9ydHMvdHJlZS90ZXN0aW5nL2xpYnRiYi9nbGliYy1zdHJ1Y3QtbWFsbGlu Zm8ucGF0Y2gKIAlpZiBbICIkWEJQU19UQVJHRVRfTElCQyIgPSAibXVzbCIgXTsgdGhlbgogCQl2 c2VkIC1lICJzQCNkZWZpbmUgTUFMTE9DX1VOSVhMSUtFX09WRVJMT0FEX0VOQUJMRUQgX19saW51 eF9fQEAiIFwKLQkJICAtaSBzcmMvdGJibWFsbG9jL3Byb3h5LmgKKwkJICAtaSBzcmMvdGJibWFs bG9jX3Byb3h5L3Byb3h5LmgKIAlmaQogfQogCi1kb19pbnN0YWxsKCkgewotCXZta2RpciB1c3Iv bGliCi0JdmNvcHkgYnVpbGQvbGludXhfKi8qLnNvKiB1c3IvbGliCi0Jdm1rZGlyIHVzci9pbmNs dWRlL3RiYgotCXZjb3B5IGluY2x1ZGUvdGJiLyogdXNyL2luY2x1ZGUvdGJiCi0KLQljbWFrZSBc Ci0JCS1ESU5TVEFMTF9ESVI9JERFU1RESVIvdXNyL2xpYi9jbWFrZS9UQkIgXAotCQktRFNZU1RF TV9OQU1FPUxpbnV4IFwKLQkJLURMSUJfUkVMX1BBVEg9Li4vLi4gXAotCQktRElOQ19SRUxfUEFU SD0uLi8uLi8uLi9pbmNsdWRlIFwKLQkJLVAgY21ha2UvdGJiX2NvbmZpZ19pbnN0YWxsZXIuY21h a2UKLX0KLQogdGJiLWRldmVsX3BhY2thZ2UoKSB7CiAJZGVwZW5kcz0iJHtzb3VyY2Vwa2d9Pj0k e3ZlcnNpb259XyR7cmV2aXNpb259IgogCXNob3J0X2Rlc2MrPSIgLSBkZXZlbG9wbWVudCBmaWxl cyIKIAlwa2dfaW5zdGFsbCgpIHsKIAkJdm1vdmUgdXNyL2luY2x1ZGUKLQkJdm1vdmUgInVzci9s aWIvKi5zbyIKIAkJdm1vdmUgdXNyL2xpYi9jbWFrZQorCQl2bW92ZSB1c3IvbGliL3BrZ2NvbmZp ZworCQl2bW92ZSB1c3IvbGliLyouc28KIAl9CiB9CgpGcm9tIDllNzUzYWM4OWEyOGM2MzhhNmZk NTgyZDhlMjdjM2VmNDBlNTVlOTAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEFydHVy IFNpbmlsYSA8ZnJlZXNvZnR3YXJlQGxvZ2FyaXRobXVzLmRldj4KRGF0ZTogU3VuLCAxOCBKdWwg MjAyMSAxODoyOTozOCArMDMwMApTdWJqZWN0OiBbUEFUQ0ggMDMvMTFdIE9wZW5TdWJkaXY6IHVw ZGF0ZSB0byAzLjQuNC4KCi0tLQogc3JjcGtncy9PcGVuU3ViZGl2L3RlbXBsYXRlIHwgNCArKy0t CiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL3NyY3BrZ3MvT3BlblN1YmRpdi90ZW1wbGF0ZSBiL3NyY3BrZ3MvT3BlblN1YmRpdi90 ZW1wbGF0ZQppbmRleCBiN2E1ZTE2ZWZiY2YuLmRmYmYyOWNjMWE1MiAxMDA2NDQKLS0tIGEvc3Jj cGtncy9PcGVuU3ViZGl2L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvT3BlblN1YmRpdi90ZW1wbGF0 ZQpAQCAtMSw2ICsxLDYgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ09wZW5TdWJkaXYnCiBwa2du YW1lPU9wZW5TdWJkaXYKLXZlcnNpb249My40LjMKK3ZlcnNpb249My40LjQKIHJldmlzaW9uPTEK IHdya3NyYz0iT3BlblN1YmRpdi0ke3ZlcnNpb24vLy4vX30iCiBidWlsZF9zdHlsZT1jbWFrZQpA QCAtMTMsNyArMTMsNyBAQCBtYWludGFpbmVyPSJKb2huIDxtZUBqb2hubnluYXRvci5kZXY+Igog bGljZW5zZT0iQXBhY2hlLTIuMCIKIGhvbWVwYWdlPSJodHRwOi8vZ3JhcGhpY3MucGl4YXIuY29t L29wZW5zdWJkaXYvZG9jcy9pbnRyby5odG1sIgogZGlzdGZpbGVzPSJodHRwczovL2dpdGh1Yi5j b20vUGl4YXJBbmltYXRpb25TdHVkaW9zL09wZW5TdWJkaXYvYXJjaGl2ZS92JHt2ZXJzaW9uLy8u L199LnRhci5neiIKLWNoZWNrc3VtPTdiMjJlYjI3ZDYzNmFiMGMxZTAzNzIyYzdhNWE1YmQ0ZjEx NjY0ZWU2NWM5YjQ4ZjM0MWE2ZDBjZTdmMzY3NDUKK2NoZWNrc3VtPTIwZDQ5ZjgwYTJiNzc4YWQ0 ZDAxZjA5MWFkODhkOGMyZjkxY2Y2YzczNjM5NDBjNjIxMzI0MWNlNmYxMDQ4ZmIKIAogaWYgWyAi JENST1NTX0JVSUxEIiBdOyB0aGVuCiAJaG9zdG1ha2VkZXBlbmRzKz0iIE9wZW5TdWJkaXYiCgpG cm9tIDU0MzExMzQ2M2VlYzk0YmVjYWM0YTYyMzg4OWE4YTFkMjNiOGQ2MzggTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206IEFydHVyIFNpbmlsYSA8ZnJlZXNvZnR3YXJlQGxvZ2FyaXRobXVz LmRldj4KRGF0ZTogU3VuLCAxOCBKdWwgMjAyMSAxODoyOTozOCArMDMwMApTdWJqZWN0OiBbUEFU Q0ggMDQvMTFdIFBydXNhU2xpY2VyOiB1cGRhdGUgdG8gMi4zLjMuCgotLS0KIHNyY3BrZ3MvUHJ1 c2FTbGljZXIvcGF0Y2hlcy9jcm9zcy5wYXRjaCB8IDExIC0tLS0tLS0tLS0tCiBzcmNwa2dzL1By dXNhU2xpY2VyL3RlbXBsYXRlICAgICAgICAgICAgfCAgNCArKy0tCiAyIGZpbGVzIGNoYW5nZWQs IDIgaW5zZXJ0aW9ucygrKSwgMTMgZGVsZXRpb25zKC0pCiBkZWxldGUgbW9kZSAxMDA2NDQgc3Jj cGtncy9QcnVzYVNsaWNlci9wYXRjaGVzL2Nyb3NzLnBhdGNoCgpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9QcnVzYVNsaWNlci9wYXRjaGVzL2Nyb3NzLnBhdGNoIGIvc3JjcGtncy9QcnVzYVNsaWNlci9w YXRjaGVzL2Nyb3NzLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkNjRhNDUw ZDllOWYuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL1BydXNhU2xpY2VyL3BhdGNoZXMvY3Jv c3MucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxMSArMCwwIEBACi0tLS0gYS9zcmMvYXZyZHVk ZS9DTWFrZUxpc3RzLnR4dAkyMDIwLTA2LTA0IDA5OjE5OjI2LjAxNzI1MTIxNSArMDIwMAotKysr IGIvc3JjL2F2cmR1ZGUvQ01ha2VMaXN0cy50eHQJMjAyMC0wNi0wNCAwOToxOTozNi40NjgyNTA3 NzEgKzAyMDAKLUBAIC04Myw3ICs4Myw3IEBAIGFkZF9leGVjdXRhYmxlKGF2cmR1ZGUtY29uZi1n ZW4gY29uZi1nZW4KLSBhZGRfY3VzdG9tX2NvbW1hbmQoCi0gICAgIERFUEVORFMgYXZyZHVkZS1j b25mLWdlbiAke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vYXZyZHVkZS1zbGljM3IuY29uZgot ICAgICBPVVRQVVQgJHtDTUFLRV9DVVJSRU5UX0JJTkFSWV9ESVJ9L2F2cmR1ZGUtc2xpYzNyLmNv bmYuaAotLSAgICBDT01NQU5EICQ8VEFSR0VUX0ZJTEU6YXZyZHVkZS1jb25mLWdlbj4gYXZyZHVk ZS1zbGljM3IuY29uZiBhdnJkdWRlX3NsaWMzcl9jb25mICR7Q01BS0VfQ1VSUkVOVF9CSU5BUllf RElSfS9hdnJkdWRlLXNsaWMzci5jb25mLmgKLSsgICAgQ09NTUFORCBhdnJkdWRlLWNvbmYtZ2Vu IGF2cmR1ZGUtc2xpYzNyLmNvbmYgYXZyZHVkZV9zbGljM3JfY29uZiAke0NNQUtFX0NVUlJFTlRf QklOQVJZX0RJUn0vYXZyZHVkZS1zbGljM3IuY29uZi5oCi0gICAgIFdPUktJTkdfRElSRUNUT1JZ ICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfQotICkKLSAKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv UHJ1c2FTbGljZXIvdGVtcGxhdGUgYi9zcmNwa2dzL1BydXNhU2xpY2VyL3RlbXBsYXRlCmluZGV4 IGRkMGU3NmNiODAxNy4uYTkzODMyYWMwMmU0IDEwMDY0NAotLS0gYS9zcmNwa2dzL1BydXNhU2xp Y2VyL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvUHJ1c2FTbGljZXIvdGVtcGxhdGUKQEAgLTEsNiAr MSw2IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdQcnVzYVNsaWNlcicKIHBrZ25hbWU9UHJ1c2FT bGljZXIKLXZlcnNpb249Mi4zLjAKK3ZlcnNpb249Mi4zLjMKIHJldmlzaW9uPTEKIHdya3NyYz0i UHJ1c2FTbGljZXItdmVyc2lvbl8ke3ZlcnNpb259IgogYnVpbGRfc3R5bGU9Y21ha2UKQEAgLTE2 LDcgKzE2LDcgQEAgbWFpbnRhaW5lcj0iSmFzcGVyIENoYW4gPGphc3BlcmNoYW41MTVAZ21haWwu Y29tPiIKIGxpY2Vuc2U9IkdQTC0zLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93d3cu cHJ1c2EzZC5jb20vcHJ1c2FzbGljZXIvIgogZGlzdGZpbGVzPSJodHRwczovL2dpdGh1Yi5jb20v cHJ1c2EzZC9QcnVzYXNsaWNlci9hcmNoaXZlL3ZlcnNpb25fJHt2ZXJzaW9ufS50YXIuZ3oiCi1j aGVja3N1bT1jZDNiYWM1ZTI5YjU0NDFmYzQ2OTBmMjhjZDdiMTA2NGU5N2RjMDAyMDdiYmRjODhm N2JkNzgzMjMwOGQ2Y2E1CitjaGVja3N1bT1kZWRhMjA5NTA1Zjc0MGFjM2Q2ZjU5Y2IyYTk2MGY0 ZGY5MDgyNjllZTA5YmQzMGNkNGVkYjlmYzQ3MmQyOWFjCiBub2Nyb3NzPSJodHRwczovL2J1aWxk LnZvaWRsaW51eC5vcmcvYnVpbGRlcnMvYXJtdjdsX2J1aWxkZXIvYnVpbGRzLzI1MjMwL3N0ZXBz L3NoZWxsXzMvbG9ncy9zdGRpbyIKIAogU2xpYzNyUEVfcGFja2FnZSgpIHsKCkZyb20gZTJmMzhh MDlmNzY4OGZkYTZjMDZlOGJlNmQ2ZjJiYWIzNzA4NjAyMCBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogQXJ0dXIgU2luaWxhIDxmcmVlc29mdHdhcmVAbG9nYXJpdGhtdXMuZGV2PgpEYXRl OiBTdW4sIDE4IEp1bCAyMDIxIDE4OjI5OjM5ICswMzAwClN1YmplY3Q6IFtQQVRDSCAwNS8xMV0g YmxlbmRlcjogdXBkYXRlIHRvIDIuOTMuMS4KCi0tLQogc3JjcGtncy9ibGVuZGVyL3RlbXBsYXRl IHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpk aWZmIC0tZ2l0IGEvc3JjcGtncy9ibGVuZGVyL3RlbXBsYXRlIGIvc3JjcGtncy9ibGVuZGVyL3Rl bXBsYXRlCmluZGV4IGFmOTQ2YzJiNzk5OS4uODMxODMxN2M4MmJmIDEwMDY0NAotLS0gYS9zcmNw a2dzL2JsZW5kZXIvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9ibGVuZGVyL3RlbXBsYXRlCkBAIC0x LDYgKzEsNiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnYmxlbmRlcicKIHBrZ25hbWU9YmxlbmRl cgotdmVyc2lvbj0yLjkzLjAKK3ZlcnNpb249Mi45My4xCiByZXZpc2lvbj0xCiBhcmNocz0ieDg2 XzY0KiBwcGM2NCoiCiBidWlsZF9zdHlsZT0iY21ha2UiCgpGcm9tIDY1ZjZmMWQxYjQwMDk5NDhj MDVmM2JkN2I1MWU3NzQ5YzA0OWFjNTkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEFy dHVyIFNpbmlsYSA8ZnJlZXNvZnR3YXJlQGxvZ2FyaXRobXVzLmRldj4KRGF0ZTogU3VuLCAxOCBK dWwgMjAyMSAxODoyOTozOSArMDMwMApTdWJqZWN0OiBbUEFUQ0ggMDYvMTFdIGVtYnJlZTogdXBk YXRlIHRvIDMuMTMuMC4KCi0tLQogc3JjcGtncy9lbWJyZWUvdGVtcGxhdGUgfCA2ICsrKy0tLQog MSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9zcmNwa2dzL2VtYnJlZS90ZW1wbGF0ZSBiL3NyY3BrZ3MvZW1icmVlL3RlbXBsYXRlCmlu ZGV4IDU3NWI5YmNiNDAxYy4uYjZmMzc2ZDMwZWZhIDEwMDY0NAotLS0gYS9zcmNwa2dzL2VtYnJl ZS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2VtYnJlZS90ZW1wbGF0ZQpAQCAtMSw4ICsxLDggQEAK ICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2VtYnJlZScKIHBrZ25hbWU9ZW1icmVlCi12ZXJzaW9uPTIu MTcuNwotcmV2aXNpb249MgotYXJjaHM9Ing4Nl82NCIKK3ZlcnNpb249My4xMy4wCityZXZpc2lv bj0xCithcmNocz0ieDg2XzY0KiIKIGJ1aWxkX3N0eWxlPWNtYWtlCiBjb25maWd1cmVfYXJncz0i LURUQkJfUk9PVD0vdXNyIC1ERU1CUkVFX0lHTk9SRV9DTUFLRV9DWFhfRkxBR1M9T0ZGIgogaG9z dG1ha2VkZXBlbmRzPSJpc3BjIgoKRnJvbSBlYzQyMzdkMWU1YWU0OTkzZmFjZDk1NzEwYjMxMzhk MTRmYWFhYWJjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBcnR1ciBTaW5pbGEgPGZy ZWVzb2Z0d2FyZUBsb2dhcml0aG11cy5kZXY+CkRhdGU6IFNhdCwgMjQgSnVsIDIwMjEgMDM6MzQ6 NDMgKzAzMDAKU3ViamVjdDogW1BBVENIIDA3LzExXSBvcGVuaW1hZ2VpbzogdXBkYXRlIHRvIDIu Mi4xNi4wLgoKLS0tCiBzcmNwa2dzL29wZW5pbWFnZWlvL3RlbXBsYXRlIHwgNiArKystLS0KIDEg ZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvc3JjcGtncy9vcGVuaW1hZ2Vpby90ZW1wbGF0ZSBiL3NyY3BrZ3Mvb3BlbmltYWdlaW8vdGVt cGxhdGUKaW5kZXggZGU4ZTFjZDA0NDA5Li4zYmZkZDRlMGVkMWUgMTAwNjQ0Ci0tLSBhL3NyY3Br Z3Mvb3BlbmltYWdlaW8vdGVtcGxhdGUKKysrIGIvc3JjcGtncy9vcGVuaW1hZ2Vpby90ZW1wbGF0 ZQpAQCAtMSwxMSArMSwxMSBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnb3BlbmltYWdlaW8nCiBw a2duYW1lPW9wZW5pbWFnZWlvCi12ZXJzaW9uPTIuMi4xNS4xCit2ZXJzaW9uPTIuMi4xNi4wCiBy ZXZpc2lvbj0xCiB3cmtzcmM9Im9paW8tUmVsZWFzZS0ke3ZlcnNpb259IgogYnVpbGRfc3R5bGU9 Y21ha2UKIGNvbmZpZ3VyZV9hcmdzPSItRFVTRV9PUEVOR0w9MCAtRFVTRV9RVD0wIC1EVVNFX1BZ VEhPTj0wIC1ET0lJT19CVUlMRF9URVNUUz0xCi0gLURTVE9QX09OX1dBUk5JTkc9MCAtRFVTRV9T VERfUkVHRVhfRVhJVENPREU9MCIKKyAtRFNUT1BfT05fV0FSTklORz0wIC1EVVNFX1NURF9SRUdF WF9FWElUQ09ERT0wIC1EQ01BS0VfQ1hYX1NUQU5EQVJEPTE0IgogaG9zdG1ha2VkZXBlbmRzPSJw a2ctY29uZmlnIGdpdCIKIG1ha2VkZXBlbmRzPSJib29zdC1kZXZlbCBnaWZsaWItZGV2ZWwgbGli cmF3LWRldmVsIGxpYm9wZW5qcGVnLWRldmVsIGxpYndlYnAtZGV2ZWwKICBsaWJqcGVnLXR1cmJv LWRldmVsIHRpZmYtZGV2ZWwgbGlicG5nLWRldmVsIGxpYm9wZW5leHItZGV2ZWwgZnJlZXR5cGUt ZGV2ZWwKQEAgLTE3LDcgKzE3LDcgQEAgbGljZW5zZT0iQlNELTMtQ2xhdXNlIgogaG9tZXBhZ2U9 Imh0dHBzOi8vc2l0ZXMuZ29vZ2xlLmNvbS9zaXRlL29wZW5pbWFnZWlvL2hvbWUiCiBjaGFuZ2Vs b2c9Imh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9PcGVuSW1hZ2VJTy9vaWlvL3Jl bGVhc2UvQ0hBTkdFUy5tZCIKIGRpc3RmaWxlcz0iaHR0cHM6Ly9naXRodWIuY29tL09wZW5JbWFn ZUlPL29paW8vYXJjaGl2ZS9SZWxlYXNlLSR7dmVyc2lvbn0udGFyLmd6IgotY2hlY2tzdW09ZjIy MmM2YjUxYTQwYWFiYmM4MGRkZjQwNTU1MzViZTlhZjFmZmE5MDc0NTJmYTZkMWZmYTc2NzQ4NTRh YWIxNworY2hlY2tzdW09ZDFhNTlmMzJkYmJhM2JhNzFhZDJlNjJlMTA3MDM0ZDFjNTI4N2JjYTFi MDY5NjQ3NGU5MjdkNTA0Y2QwNWVmNAogIyBSdW5zIGNoZWNrcyBldmVuIGZvciBmZWF0dXJlcyB3 ZSBkaXNhYmxlZC4KIG1ha2VfY2hlY2s9bm8KIAoKRnJvbSBjZjI2Y2M4NDI4NGYwM2Y4NTIxNDMz Nzg5YTNjNWE2NmExYTg2MjZkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBcnR1ciBT aW5pbGEgPGZyZWVzb2Z0d2FyZUBsb2dhcml0aG11cy5kZXY+CkRhdGU6IFN1biwgMTggSnVsIDIw MjEgMTg6Mjk6NDAgKzAzMDAKU3ViamVjdDogW1BBVENIIDA4LzExXSBvcGVuaW1hZ2VkZW5vaXNl OiB1cGRhdGUgdG8gMS40LjEuCgotLS0KIHNyY3BrZ3Mvb3BlbmltYWdlZGVub2lzZS90ZW1wbGF0 ZSB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoK ZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvb3BlbmltYWdlZGVub2lzZS90ZW1wbGF0ZSBiL3NyY3BrZ3Mv b3BlbmltYWdlZGVub2lzZS90ZW1wbGF0ZQppbmRleCBjNzM5MTNiNGU5ZDcuLjE0MDU1YWZmMWMy NyAxMDA2NDQKLS0tIGEvc3JjcGtncy9vcGVuaW1hZ2VkZW5vaXNlL3RlbXBsYXRlCisrKyBiL3Ny Y3BrZ3Mvb3BlbmltYWdlZGVub2lzZS90ZW1wbGF0ZQpAQCAtMSw2ICsxLDYgQEAKICMgVGVtcGxh dGUgZmlsZSBmb3IgJ29wZW5pbWFnZWRlbm9pc2UnCiBwa2duYW1lPW9wZW5pbWFnZWRlbm9pc2UK LXZlcnNpb249MS40LjAKK3ZlcnNpb249MS40LjEKIHJldmlzaW9uPTEKIGFyY2hzPSJ4ODZfNjQq Igogd3Jrc3JjPW9pZG4tJHt2ZXJzaW9ufQoKRnJvbSAxOWEzYWI3YjBiZDFmYmY4ZGQ3NThkMGZh YTlhNTA2ZjM3OWQ3NDVkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBcnR1ciBTaW5p bGEgPGZyZWVzb2Z0d2FyZUBsb2dhcml0aG11cy5kZXY+CkRhdGU6IFN1biwgMTggSnVsIDIwMjEg MTg6Mjk6NDAgKzAzMDAKU3ViamVjdDogW1BBVENIIDA5LzExXSBvcGVudmRiOiB1cGRhdGUgdG8g OC4xLjAuCgotLS0KIGNvbW1vbi9zaGxpYnMgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg ICAgMiArLQogc3JjcGtncy9vcGVudmRiL3BhdGNoZXMvMDAtdGJiLTIwMjEucGF0Y2ggfCAxMzIw ICsrKysrKysrKysrKysrKysrKysrKwogc3JjcGtncy9vcGVudmRiL3RlbXBsYXRlICAgICAgICAg ICAgICAgICAgfCAgIDE2ICstCiAzIGZpbGVzIGNoYW5nZWQsIDEzMjUgaW5zZXJ0aW9ucygrKSwg MTMgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9vcGVudmRiL3BhdGNo ZXMvMDAtdGJiLTIwMjEucGF0Y2gKCmRpZmYgLS1naXQgYS9jb21tb24vc2hsaWJzIGIvY29tbW9u L3NobGlicwppbmRleCA2YjdjYTVmYmMyNDkuLjJhN2FjZGIyNTNhNyAxMDA2NDQKLS0tIGEvY29t bW9uL3NobGlicworKysgYi9jb21tb24vc2hsaWJzCkBAIC0zODgzLDcgKzM4ODMsNyBAQCBsaWJq YW5ldC5zby4xLjE2IGphbmV0LTEuMTYuMF8xCiBsaWJPcGVuSW1hZ2VEZW5vaXNlLnNvLjEgb3Bl bmltYWdlZGVub2lzZS0xLjMuMF8xCiBsaWJjYmFuZzAuc28gY2JhbmctMS42LjBfMwogbGliYmxv c2Muc28uMSBjLWJsb3NjLTEuMTcuMV8xCi1saWJvcGVudmRiLnNvLjcuMCBvcGVudmRiLTcuMC4w XzEKK2xpYm9wZW52ZGIuc28uOC4xIG9wZW52ZGItOC4xLjBfMQogbGliQWxlbWJpYy5zby4xLjcg YWxlbWJpYy0xLjcuMTNfMQogbGlibW9kc2VjdXJpdHkuc28uMyBtb2RzZWN1cml0eS0zLjAuNF8x CiBsaWJyYXZlbi5zby4wIGJ1ZGdpZS1kZXNrdG9wLTEwLjUuMV8xCmRpZmYgLS1naXQgYS9zcmNw a2dzL29wZW52ZGIvcGF0Y2hlcy8wMC10YmItMjAyMS5wYXRjaCBiL3NyY3BrZ3Mvb3BlbnZkYi9w YXRjaGVzLzAwLXRiYi0yMDIxLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwMDAwMC4uMjcxMTA0YWYzZGY5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9vcGVudmRi L3BhdGNoZXMvMDAtdGJiLTIwMjEucGF0Y2gKQEAgLTAsMCArMSwxMzIwIEBACitodHRwczovL2dp dGh1Yi5jb20vQWNhZGVteVNvZnR3YXJlRm91bmRhdGlvbi9vcGVudmRiL3B1bGwvMTAyNworU2hv dWxkIGJlIGRyb3BwZWQgYWZ0ZXIgOC4xLjEgcmVsZWFzZS4KKworZGlmZiAtLWdpdCBhL2NtYWtl L0ZpbmRUQkIuY21ha2UgYi9jbWFrZS9GaW5kVEJCLmNtYWtlCitpbmRleCBkNDE0MzZiMWMuLjA2 ZGUyYjNmMyAxMDA2NDQKKy0tLSBhL2NtYWtlL0ZpbmRUQkIuY21ha2UKKysrKyBiL2NtYWtlL0Zp bmRUQkIuY21ha2UKK0BAIC0xNjksOCArMTY5LDIyIEBAIGZpbmRfcGF0aChUYmJfSU5DTFVERV9E SVIgdGJiL3RiYl9zdGRkZWYuaAorICAgUEFUSF9TVUZGSVhFUyAke0NNQUtFX0lOU1RBTExfSU5D TFVERURJUn0gaW5jbHVkZQorICkKKyAKKy1pZihFWElTVFMgIiR7VGJiX0lOQ0xVREVfRElSfS90 YmIvdGJiX3N0ZGRlZi5oIikKKy0gIGZpbGUoU1RSSU5HUyAiJHtUYmJfSU5DTFVERV9ESVJ9L3Ri Yi90YmJfc3RkZGVmLmgiCisrc2V0KF90YmJfdmVyc2lvbl9maWxlICIke1RiYl9JTkNMVURFX0RJ Un0vdGJiL3RiYl9zdGRkZWYuaCIpCisrCisraWYoTk9UIEVYSVNUUyAke190YmJfdmVyc2lvbl9m aWxlfSkKKysgICMgRnJvbSBUQkIgMjAyMSwgdGJiX3N0ZGRlZiBpcyByZW1vdmVkIGFuZCB0aGUg ZGlyZWN0b3J5IGluY2x1ZGUvdGJiIGlzCisrICAjIHNpbXBseSBhbiBhbGlhcyBmb3IgaW5jbHVk ZS9vbmVhcGkvdGJiLiBUcnkgYW5kIGZpbmQgdGhlIHZlcnNpb24gaGVhZGVyCisrICAjIGluIG9u ZWFwaS90YmIKKysgIGZpbmRfcGF0aChUYmJfSU5DTFVERV9ESVIgb25lYXBpL3RiYi92ZXJzaW9u LmgKKysgICAgJHtfRklORF9UQkJfQURESVRJT05BTF9PUFRJT05TfQorKyAgICBQQVRIUyAke19U QkJfSU5DTFVERV9TRUFSQ0hfRElSU30KKysgICAgUEFUSF9TVUZGSVhFUyAke0NNQUtFX0lOU1RB TExfSU5DTFVERURJUn0gaW5jbHVkZQorKyAgKQorKyAgc2V0KF90YmJfdmVyc2lvbl9maWxlICIk e1RiYl9JTkNMVURFX0RJUn0vb25lYXBpL3RiYi92ZXJzaW9uLmgiKQorK2VuZGlmKCkKKysKKytp ZihFWElTVFMgJHtfdGJiX3ZlcnNpb25fZmlsZX0pCisrICBmaWxlKFNUUklOR1MgJHtfdGJiX3Zl cnNpb25fZmlsZX0KKyAgICAgX3RiYl92ZXJzaW9uX21ham9yX3N0cmluZyBSRUdFWCAiI2RlZmlu ZSBUQkJfVkVSU0lPTl9NQUpPUiAiCisgICApCisgICBzdHJpbmcoUkVHRVggUkVQTEFDRSAiI2Rl ZmluZSBUQkJfVkVSU0lPTl9NQUpPUiIgIiIKK0BAIC0xNzgsNyArMTkyLDcgQEAgaWYoRVhJU1RT ICIke1RiYl9JTkNMVURFX0RJUn0vdGJiL3RiYl9zdGRkZWYuaCIpCisgICApCisgICBzdHJpbmco U1RSSVAgIiR7X3RiYl92ZXJzaW9uX21ham9yX3N0cmluZ30iIFRiYl9WRVJTSU9OX01BSk9SKQor IAorLSAgZmlsZShTVFJJTkdTICIke1RiYl9JTkNMVURFX0RJUn0vdGJiL3RiYl9zdGRkZWYuaCIK KysgIGZpbGUoU1RSSU5HUyAke190YmJfdmVyc2lvbl9maWxlfQorICAgICAgX3RiYl92ZXJzaW9u X21pbm9yX3N0cmluZyBSRUdFWCAiI2RlZmluZSBUQkJfVkVSU0lPTl9NSU5PUiAiCisgICApCisg ICBzdHJpbmcoUkVHRVggUkVQTEFDRSAiI2RlZmluZSBUQkJfVkVSU0lPTl9NSU5PUiIgIiIKK0BA IC0xOTIsNiArMjA2LDggQEAgaWYoRVhJU1RTICIke1RiYl9JTkNMVURFX0RJUn0vdGJiL3RiYl9z dGRkZWYuaCIpCisgICBzZXQoVGJiX1ZFUlNJT04gJHtUYmJfVkVSU0lPTl9NQUpPUn0uJHtUYmJf VkVSU0lPTl9NSU5PUn0pCisgZW5kaWYoKQorIAorK3Vuc2V0KF90YmJfdmVyc2lvbl9maWxlKQor KworICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgIyAgU2VhcmNoIGZvciBUQkIgbGliIERJUgorICMgLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCitkaWZmIC0tZ2l0IGEvb3BlbnZkYi9vcGVudmRiL0NNYWtlTGlzdHMudHh0 IGIvb3BlbnZkYi9vcGVudmRiL0NNYWtlTGlzdHMudHh0CitpbmRleCA4ODU0M2RmM2EuLjkyOWZl OTRkMSAxMDA2NDQKKy0tLSBhL29wZW52ZGIvb3BlbnZkYi9DTWFrZUxpc3RzLnR4dAorKysrIGIv b3BlbnZkYi9vcGVudmRiL0NNYWtlTGlzdHMudHh0CitAQCAtNDM3LDYgKzQzNywxMCBAQCBzZXQo T1BFTlZEQl9MSUJSQVJZX1VUSUxfSU5DTFVERV9GSUxFUworICAgdXRpbC9VdGlsLmgKKyApCisg Cisrc2V0KE9QRU5WREJfTElCUkFSWV9USFJFQURfSU5DTFVERV9GSUxFUworKyAgdGhyZWFkL1Ro cmVhZGluZy5oCisrKQorKworICMgQHRvZG8gQ01ha2UgPj0gMy4xMiwgdXNlIGFuIG9iamVjdCBs aWJyYXJ5IHRvIGNvbnNvbGlkYXRlIHNoYXJlZC9zdGF0aWMKKyAjIGJ1aWxkcy4gVGhlcmUgYXJl IGxpbWl0YXRpb25zIHdpdGggZWFybGllciB2ZXJzaW9ucyBvZiBDTWFrZSB3aGVuIHVzZWQgd2l0 aAorICMgaW1wb3J0ZWQgdGFyZ2V0cy4KK0BAIC01OTIsMyArNTk2LDQgQEAgaW5zdGFsbChGSUxF UyAke09QRU5WREJfTElCUkFSWV9QT0lOVFNfSU5DTFVERV9GSUxFU30gREVTVElOQVRJT04gJHtP UEVOVkRCX0lOU1QKKyBpbnN0YWxsKEZJTEVTICR7T1BFTlZEQl9MSUJSQVJZX1RPT0xTX0lOQ0xV REVfRklMRVN9IERFU1RJTkFUSU9OICR7T1BFTlZEQl9JTlNUQUxMX0lOQ0xVREVESVJ9L3Rvb2xz KQorIGluc3RhbGwoRklMRVMgJHtPUEVOVkRCX0xJQlJBUllfVFJFRV9JTkNMVURFX0ZJTEVTfSBE RVNUSU5BVElPTiAke09QRU5WREJfSU5TVEFMTF9JTkNMVURFRElSfS90cmVlKQorIGluc3RhbGwo RklMRVMgJHtPUEVOVkRCX0xJQlJBUllfVVRJTF9JTkNMVURFX0ZJTEVTfSBERVNUSU5BVElPTiAk e09QRU5WREJfSU5TVEFMTF9JTkNMVURFRElSfS91dGlsKQorK2luc3RhbGwoRklMRVMgJHtPUEVO VkRCX0xJQlJBUllfVEhSRUFEX0lOQ0xVREVfRklMRVN9IERFU1RJTkFUSU9OICR7T1BFTlZEQl9J TlNUQUxMX0lOQ0xVREVESVJ9L3RocmVhZCkKK2RpZmYgLS1naXQgYS9vcGVudmRiL29wZW52ZGIv Y21kL29wZW52ZGJfcmVuZGVyLmNjIGIvb3BlbnZkYi9vcGVudmRiL2NtZC9vcGVudmRiX3JlbmRl ci5jYworaW5kZXggZWU1YjczN2M1Li4yYzk4MzFiYTMgMTAwNjQ0CistLS0gYS9vcGVudmRiL29w ZW52ZGIvY21kL29wZW52ZGJfcmVuZGVyLmNjCisrKysgYi9vcGVudmRiL29wZW52ZGIvY21kL29w ZW52ZGJfcmVuZGVyLmNjCitAQCAtMTksNyArMTksMTQgQEAKKyAjaW5jbHVkZSA8T3BlbkVYUi9J bWZIZWFkZXIuaD4KKyAjaW5jbHVkZSA8T3BlbkVYUi9JbWZPdXRwdXRGaWxlLmg+CisgI2luY2x1 ZGUgPE9wZW5FWFIvSW1mUGl4ZWxUeXBlLmg+CistI2luY2x1ZGUgPHRiYi90YXNrX3NjaGVkdWxl cl9pbml0Lmg+CisrCisrLy8gdGJiL3Rhc2tfc2NoZWR1bGVyX2luaXQuaCB3YXMgcmVtb3ZlZCBp biBUQkIgMjAyMS4gVGhlIGJlc3QgY29uc3RydWN0IHRvIHN3YXAKKysvLyB0byBpcyB0YmIvZ2xv YmFsX2NvbnRyb2wgKGZvciBleGVjdXRhYmxlcykuIGdsb2JhbF9jb250cm9sIHdhcyBvbmx5IG9m ZmljaWFsbHkKKysvLyBhZGRlZCBpbiBUQkIgMjAxOVU0IGJ1dCBleGlzdHMgaW4gMjAxOCBhcyBh IHByZXZpZXcgZmVhdHVyZS4gVG8gYXZvaWQgbW9yZQorKy8vIGNvbXBpbGUgdGltZSBicmFuY2hp bmcgKGFzIHdlIHN0aWxsIHN1cHBvcnQgMjAxOCksIHdlIHVzZSBpdCBpbiAyMDE4IHRvbyBieQor Ky8vIGVuYWJsaW5nIHRoZSBiZWxvdyBkZWZpbmUuCisrI2RlZmluZSBUQkJfUFJFVklFV19HTE9C QUxfQ09OVFJPTCAxCisrI2luY2x1ZGUgPHRiYi9nbG9iYWxfY29udHJvbC5oPgorICNpbmNsdWRl IDx0YmIvdGlja19jb3VudC5oPgorIAorICNpbmNsdWRlIDxhbGdvcml0aG0+CitAQCAtNjA2LDgg KzYxMywxMiBAQCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCisgICAgIH0KKyAKKyAgICAg dHJ5IHsKKy0gICAgICAgIHRiYjo6dGFza19zY2hlZHVsZXJfaW5pdCBzY2hlZHVsZXJJbml0KAor LSAgICAgICAgICAgIChvcHRzLnRocmVhZHMgPT0gMCkgPyB0YmI6OnRhc2tfc2NoZWR1bGVyX2lu aXQ6OmF1dG9tYXRpYyA6IG9wdHMudGhyZWFkcyk7CisrICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8 dGJiOjpnbG9iYWxfY29udHJvbD4gY29udHJvbDsKKysgICAgICAgIGlmIChvcHRzLnRocmVhZHMg PiAwKSB7CisrICAgICAgICAgICAgLy8gbm90ZSwgb3B0cy50aHJlYWRzID09IDAgbWVhbnMgdXNl IGFsbCB0aHJlYWRzIChkZWZhdWx0KSwgc28gZG9uJ3QKKysgICAgICAgICAgICAvLyBtYW51YWxs eSBjcmVhdGUgYSB0YmI6Omdsb2JhbF9jb250cm9sIGluIHRoaXMgY2FzZQorKyAgICAgICAgICAg IGNvbnRyb2wucmVzZXQobmV3IHRiYjo6Z2xvYmFsX2NvbnRyb2wodGJiOjpnbG9iYWxfY29udHJv bDo6bWF4X2FsbG93ZWRfcGFyYWxsZWxpc20sIG9wdHMudGhyZWFkcykpOworKyAgICAgICAgfQor IAorICAgICAgICAgb3BlbnZkYjo6aW5pdGlhbGl6ZSgpOworIAorZGlmZiAtLWdpdCBhL29wZW52 ZGIvb3BlbnZkYi9pby9RdWV1ZS5jYyBiL29wZW52ZGIvb3BlbnZkYi9pby9RdWV1ZS5jYworaW5k ZXggZWY1ZDI5NjFhLi4yMGZmMWEwYzEgMTAwNjQ0CistLS0gYS9vcGVudmRiL29wZW52ZGIvaW8v UXVldWUuY2MKKysrKyBiL29wZW52ZGIvb3BlbnZkYi9pby9RdWV1ZS5jYworQEAgLTUsMjAgKzUs MjIgQEAKKyAvLy8gQGF1dGhvciBQZXRlciBDdWNrYQorIAorICNpbmNsdWRlICJRdWV1ZS5oIgor LQorICNpbmNsdWRlICJGaWxlLmgiCisgI2luY2x1ZGUgIlN0cmVhbS5oIgorLSNpbmNsdWRlIDxv cGVudmRiL0V4Y2VwdGlvbnMuaD4KKy0jaW5jbHVkZSA8b3BlbnZkYi91dGlsL2xvZ2dpbmcuaD4K KysjaW5jbHVkZSAib3BlbnZkYi9FeGNlcHRpb25zLmgiCisrI2luY2x1ZGUgIm9wZW52ZGIvdXRp bC9sb2dnaW5nLmgiCisrCisgI2luY2x1ZGUgPHRiYi9jb25jdXJyZW50X2hhc2hfbWFwLmg+Cist I2luY2x1ZGUgPHRiYi90YXNrLmg+CistI2luY2x1ZGUgPHRiYi90YmJfdGhyZWFkLmg+IC8vIGZv ciB0YmI6OnRoaXNfdGJiX3RocmVhZDo6c2xlZXAoKQorLSNpbmNsdWRlIDx0YmIvdGlja19jb3Vu dC5oPgorKyNpbmNsdWRlIDx0YmIvdGFza19hcmVuYS5oPgorKworKyNpbmNsdWRlIDx0aHJlYWQ+ CisgI2luY2x1ZGUgPGFsZ29yaXRobT4gLy8gZm9yIHN0ZDo6bWF4KCkKKyAjaW5jbHVkZSA8YXRv bWljPgorICNpbmNsdWRlIDxpb3N0cmVhbT4KKyAjaW5jbHVkZSA8bWFwPgorICNpbmNsdWRlIDxt dXRleD4KKysjaW5jbHVkZSA8Y2hyb25vPgorKworIAorIG5hbWVzcGFjZSBvcGVudmRiIHsKKyBP UEVOVkRCX1VTRV9WRVJTSU9OX05BTUVTUEFDRQorQEAgLTI4LDE4ICszMCwxOSBAQCBuYW1lc3Bh Y2UgaW8geworIG5hbWVzcGFjZSB7CisgCisgLy8gQWJzdHJhY3QgYmFzZSBjbGFzcyBmb3IgcXVl dWFibGUgVEJCIHRhc2tzIHRoYXQgYWRkcyBhIHRhc2sgY29tcGxldGlvbiBjYWxsYmFjaworLWNs YXNzIFRhc2s6IHB1YmxpYyB0YmI6OnRhc2sKKytjbGFzcyBUYXNrCisgeworIHB1YmxpYzoKKyAg ICAgVGFzayhRdWV1ZTo6SWQgaWQpOiBtSWQoaWQpIHt9CistICAgIH5UYXNrKCkgb3ZlcnJpZGUg e30KKysgICAgdmlydHVhbCB+VGFzaygpIHt9CisgCisgICAgIFF1ZXVlOjpJZCBpZCgpIGNvbnN0 IHsgcmV0dXJuIG1JZDsgfQorIAorICAgICB2b2lkIHNldE5vdGlmaWVyKFF1ZXVlOjpOb3RpZmll ciYgbm90aWZpZXIpIHsgbU5vdGlmeSA9IG5vdGlmaWVyOyB9CisrICAgIHZpcnR1YWwgdm9pZCBl eGVjdXRlKCkgY29uc3QgPSAwOworIAorIHByb3RlY3RlZDoKKy0gICAgdm9pZCBub3RpZnkoUXVl dWU6OlN0YXR1cyBzdGF0dXMpIHsgaWYgKG1Ob3RpZnkpIG1Ob3RpZnkodGhpcy0+aWQoKSwgc3Rh dHVzKTsgfQorKyAgICB2b2lkIG5vdGlmeShRdWV1ZTo6U3RhdHVzIHN0YXR1cykgY29uc3QgeyBp ZiAobU5vdGlmeSkgbU5vdGlmeSh0aGlzLT5pZCgpLCBzdGF0dXMpOyB9CisgCisgcHJpdmF0ZToK KyAgICAgUXVldWU6OklkIG1JZDsKK0BAIC00OCw3ICs1MSw3IEBAIGNsYXNzIFRhc2s6IHB1Ymxp YyB0YmI6OnRhc2sKKyAKKyAKKyAvLyBRdWV1YWJsZSBUQkIgdGFzayB0aGF0IHdyaXRlcyBvbmUg b3IgbW9yZSBncmlkcyB0byBhIC52ZGIgZmlsZSBvciBhbiBvdXRwdXQgc3RyZWFtCistY2xhc3Mg T3V0cHV0VGFzazogcHVibGljIFRhc2sKKytjbGFzcyBPdXRwdXRUYXNrIDogcHVibGljIFRhc2sK KyB7CisgcHVibGljOgorICAgICBPdXRwdXRUYXNrKFF1ZXVlOjpJZCBpZCwgY29uc3QgR3JpZENQ dHJWZWMmIGdyaWRzLCBjb25zdCBBcmNoaXZlJiBhcmNoaXZlLAorQEAgLTU2LDEwICs1OSwxMCBA QCBjbGFzcyBPdXRwdXRUYXNrOiBwdWJsaWMgVGFzaworICAgICAgICAgOiBUYXNrKGlkKQorICAg ICAgICAgLCBtR3JpZHMoZ3JpZHMpCisgICAgICAgICAsIG1BcmNoaXZlKGFyY2hpdmUuY29weSgp KQorLSAgICAgICAgLCBtTWV0YWRhdGEobWV0YWRhdGEpCistICAgIHt9CisrICAgICAgICAsIG1N ZXRhZGF0YShtZXRhZGF0YSkge30KKysgICAgfk91dHB1dFRhc2soKSBvdmVycmlkZSB7fQorIAor LSAgICB0YmI6OnRhc2sqIGV4ZWN1dGUoKSBvdmVycmlkZQorKyAgICB2b2lkIGV4ZWN1dGUoKSBj b25zdCBvdmVycmlkZQorICAgICB7CisgICAgICAgICBRdWV1ZTo6U3RhdHVzIHN0YXR1cyA9IFF1 ZXVlOjpGQUlMRUQ7CisgICAgICAgICB0cnkgeworQEAgLTY5LDEwICs3Miw4IEBAIGNsYXNzIE91 dHB1dFRhc2s6IHB1YmxpYyBUYXNrCisgICAgICAgICAgICAgaWYgKGNvbnN0IGNoYXIqIG1zZyA9 IGUud2hhdCgpKSB7CisgICAgICAgICAgICAgICAgIE9QRU5WREJfTE9HX0VSUk9SKG1zZyk7Cisg ICAgICAgICAgICAgfQorLSAgICAgICAgfSBjYXRjaCAoLi4uKSB7CistICAgICAgICB9CisrICAg ICAgICB9IGNhdGNoICguLi4pIHt9CisgICAgICAgICB0aGlzLT5ub3RpZnkoc3RhdHVzKTsKKy0g ICAgICAgIHJldHVybiBudWxscHRyOyAvLyBubyBzdWNjZXNzb3IgdG8gdGhpcyB0YXNrCisgICAg IH0KKyAKKyBwcml2YXRlOgorQEAgLTk0LDcgKzk1LDYgQEAgc3RydWN0IFF1ZXVlOjpJbXBsCisg ICAgIC8vLyBAdG9kbyBQcm92aWRlIG1vcmUgaW5mb3JtYXRpb24gdGhhbiBqdXN0ICJzdWNjZWVk ZWQiIG9yICJmYWlsZWQiPworICAgICB1c2luZyBTdGF0dXNNYXAgPSB0YmI6OmNvbmN1cnJlbnRf aGFzaF9tYXA8UXVldWU6OklkLCBRdWV1ZTo6U3RhdHVzPjsKKyAKKy0KKyAgICAgSW1wbCgpCisg ICAgICAgICA6IG1UaW1lb3V0KFF1ZXVlOjpERUZBVUxUX1RJTUVPVVQpCisgICAgICAgICAsIG1D YXBhY2l0eShRdWV1ZTo6REVGQVVMVF9DQVBBQ0lUWSkKK0BAIC0xNTksMTIgKzE1OSwxNSBAQCBz dHJ1Y3QgUXVldWU6OkltcGwKKyAKKyAgICAgYm9vbCBjYW5FbnF1ZXVlKCkgY29uc3QgeyByZXR1 cm4gbU51bVRhc2tzIDwgSW50NjQobUNhcGFjaXR5KTsgfQorIAorLSAgICB2b2lkIGVucXVldWUo VGFzayYgdGFzaykKKysgICAgdm9pZCBlbnF1ZXVlKE91dHB1dFRhc2smIHRhc2spCisgICAgIHsK Ky0gICAgICAgIHRiYjo6dGlja19jb3VudCBzdGFydCA9IHRiYjo6dGlja19jb3VudDo6bm93KCk7 CisrICAgICAgICBhdXRvIHN0YXJ0ID0gc3RkOjpjaHJvbm86OnN0ZWFkeV9jbG9jazo6bm93KCk7 CisgICAgICAgICB3aGlsZSAoIWNhbkVucXVldWUoKSkgeworLSAgICAgICAgICAgIHRiYjo6dGhp c190YmJfdGhyZWFkOjpzbGVlcCh0YmI6OnRpY2tfY291bnQ6OmludGVydmFsX3QoMC41LypzZWMq LykpOworLSAgICAgICAgICAgIGlmICgodGJiOjp0aWNrX2NvdW50Ojpub3coKSAtIHN0YXJ0KS5z ZWNvbmRzKCkgPiBkb3VibGUobVRpbWVvdXQpKSB7CisrICAgICAgICAgICAgc3RkOjp0aGlzX3Ro cmVhZDo6c2xlZXBfZm9yKC8qMC41cyovc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyg1MDApKTsK KysgICAgICAgICAgICBhdXRvIGR1cmF0aW9uID0gc3RkOjpjaHJvbm86OmR1cmF0aW9uX2Nhc3Q8 c3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcz4oCisrICAgICAgICAgICAgICAgIHN0ZDo6Y2hyb25v OjpzdGVhZHlfY2xvY2s6Om5vdygpIC0gc3RhcnQpOworKyAgICAgICAgICAgIGNvbnN0IGRvdWJs ZSBzZWNvbmRzID0gZG91YmxlKGR1cmF0aW9uLmNvdW50KCkpIC8gMTAwMC4wOworKyAgICAgICAg ICAgIGlmIChzZWNvbmRzID4gZG91YmxlKG1UaW1lb3V0KSkgeworICAgICAgICAgICAgICAgICBP UEVOVkRCX1RIUk9XKFJ1bnRpbWVFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICJ1bmFibGUg dG8gcXVldWUgSS9PIHRhc2s7ICIgPDwgbVRpbWVvdXQgPDwgIi1zZWNvbmQgdGltZSBsaW1pdCBl eHBpcmVkIik7CisgICAgICAgICAgICAgfQorQEAgLTE3Myw3ICsxNzYsMTAgQEAgc3RydWN0IFF1 ZXVlOjpJbXBsCisgICAgICAgICAgICAgc3RkOjpwbGFjZWhvbGRlcnM6Ol8xLCBzdGQ6OnBsYWNl aG9sZGVyczo6XzIpOworICAgICAgICAgdGFzay5zZXROb3RpZmllcihub3RpZnkpOworICAgICAg ICAgdGhpcy0+c2V0U3RhdHVzKHRhc2suaWQoKSwgUXVldWU6OlBFTkRJTkcpOworLSAgICAgICAg dGJiOjp0YXNrOjplbnF1ZXVlKHRhc2spOworKworKyAgICAgICAgLy8gZ2V0IHRoZSBnbG9iYWwg dGFzayBhcmVuYQorKyAgICAgICAgdGJiOjp0YXNrX2FyZW5hIGFyZW5hKHRiYjo6dGFza19hcmVu YTo6YXR0YWNoe30pOworKyAgICAgICAgYXJlbmEuZW5xdWV1ZShbdGFzayA9IHN0ZDo6bW92ZSh0 YXNrKV0geyB0YXNrLmV4ZWN1dGUoKTsgfSk7CisgICAgICAgICArK21OdW1UYXNrczsKKyAgICAg fQorIAorQEAgLTIwNCw3ICsyMTAsNyBAQCBRdWV1ZTo6flF1ZXVlKCkKKyAgICAgLy8vIChlLmcu LCBieSBrZWVwaW5nIGEgc3RhdGljIHJlZ2lzdHJ5IG9mIHF1ZXVlcyB0aGF0IGFsc28gZGlzcGF0 Y2hlcworICAgICAvLy8gb3IgYmxvY2tzIG5vdGlmaWNhdGlvbnMpPworICAgICB3aGlsZSAobUlt cGwtPm1OdW1UYXNrcyA+IDApIHsKKy0gICAgICAgIHRiYjo6dGhpc190YmJfdGhyZWFkOjpzbGVl cCh0YmI6OnRpY2tfY291bnQ6OmludGVydmFsX3QoMC41LypzZWMqLykpOworKyAgICAgICAgc3Rk Ojp0aGlzX3RocmVhZDo6c2xlZXBfZm9yKC8qMC41cyovc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25k cyg1MDApKTsKKyAgICAgfQorIH0KKyAKK0BAIC0yOTAsMTYgKzI5Niw4IEBAIFF1ZXVlOjpJZAor IFF1ZXVlOjp3cml0ZUdyaWRWZWMoY29uc3QgR3JpZENQdHJWZWMmIGdyaWRzLCBjb25zdCBBcmNo aXZlJiBhcmNoaXZlLCBjb25zdCBNZXRhTWFwJiBtZXRhZGF0YSkKKyB7CisgICAgIGNvbnN0IFF1 ZXVlOjpJZCB0YXNrSWQgPSBtSW1wbC0+bU5leHRJZCsrOworLSAgICAvLyBGcm9tIHRoZSAiR1VJ IFRocmVhZCIgY2hhcHRlciBpbiB0aGUgVEJCIERlc2lnbiBQYXR0ZXJucyBndWlkZQorLSAgICBP dXRwdXRUYXNrKiB0YXNrID0KKy0gICAgICAgIG5ldyh0YmI6OnRhc2s6OmFsbG9jYXRlX3Jvb3Qo KSkgT3V0cHV0VGFzayh0YXNrSWQsIGdyaWRzLCBhcmNoaXZlLCBtZXRhZGF0YSk7CistICAgIHRy eSB7CistICAgICAgICBtSW1wbC0+ZW5xdWV1ZSgqdGFzayk7CistICAgIH0gY2F0Y2ggKG9wZW52 ZGI6OlJ1bnRpbWVFcnJvciYpIHsKKy0gICAgICAgIC8vIERlc3Ryb3kgdGhlIHRhc2sgaWYgaXQg Y291bGQgbm90IGJlIGVucXVldWVkLCB0aGVuIHJldGhyb3cgdGhlIGV4Y2VwdGlvbi4KKy0gICAg ICAgIHRiYjo6dGFzazo6ZGVzdHJveSgqdGFzayk7CistICAgICAgICB0aHJvdzsKKy0gICAgfQor KyAgICBPdXRwdXRUYXNrIHRhc2sodGFza0lkLCBncmlkcywgYXJjaGl2ZSwgbWV0YWRhdGEpOwor KyAgICBtSW1wbC0+ZW5xdWV1ZSh0YXNrKTsKKyAgICAgcmV0dXJuIHRhc2tJZDsKKyB9CisgCitk aWZmIC0tZ2l0IGEvb3BlbnZkYi9vcGVudmRiL21hdGgvQ29vcmQuaCBiL29wZW52ZGIvb3BlbnZk Yi9tYXRoL0Nvb3JkLmgKK2luZGV4IDUwNGI1ZTlhNC4uMmU5Y2ZlZDVkIDEwMDY0NAorLS0tIGEv b3BlbnZkYi9vcGVudmRiL21hdGgvQ29vcmQuaAorKysrIGIvb3BlbnZkYi9vcGVudmRiL21hdGgv Q29vcmQuaAorQEAgLTEzLDggKzEzLDcgQEAKKyAjaW5jbHVkZSAiTWF0aC5oIgorICNpbmNsdWRl ICJWZWMzLmgiCisgCistbmFtZXNwYWNlIHRiYiB7IGNsYXNzIHNwbGl0OyB9IC8vIGZvcndhcmQg ZGVjbGFyYXRpb24KKy0KKysjaW5jbHVkZSA8dGJiL2Jsb2NrZWRfcmFuZ2UuaD4gLy8gZm9yIHRi Yjo6c3BsaXQKKyAKKyBuYW1lc3BhY2Ugb3BlbnZkYiB7CisgT1BFTlZEQl9VU0VfVkVSU0lPTl9O QU1FU1BBQ0UKK2RpZmYgLS1naXQgYS9vcGVudmRiL29wZW52ZGIvcG9pbnRzL1BvaW50U2FtcGxl LmggYi9vcGVudmRiL29wZW52ZGIvcG9pbnRzL1BvaW50U2FtcGxlLmgKK2luZGV4IGExMjJjYzRm Yi4uMjdlYzNmYjI5IDEwMDY0NAorLS0tIGEvb3BlbnZkYi9vcGVudmRiL3BvaW50cy9Qb2ludFNh bXBsZS5oCisrKysgYi9vcGVudmRiL29wZW52ZGIvcG9pbnRzL1BvaW50U2FtcGxlLmgKK0BAIC0x MCw4ICsxMCw5IEBACisgI2lmbmRlZiBPUEVOVkRCX1BPSU5UU19QT0lOVF9TQU1QTEVfSEFTX0JF RU5fSU5DTFVERUQKKyAjZGVmaW5lIE9QRU5WREJfUE9JTlRTX1BPSU5UX1NBTVBMRV9IQVNfQkVF Tl9JTkNMVURFRAorIAorLSNpbmNsdWRlIDxvcGVudmRiL3V0aWwvTnVsbEludGVycnVwdGVyLmg+ CistI2luY2x1ZGUgPG9wZW52ZGIvdG9vbHMvSW50ZXJwb2xhdGlvbi5oPgorKyNpbmNsdWRlICJv cGVudmRiL3V0aWwvTnVsbEludGVycnVwdGVyLmgiCisrI2luY2x1ZGUgIm9wZW52ZGIvdGhyZWFk L1RocmVhZGluZy5oIgorKyNpbmNsdWRlICJvcGVudmRiL3Rvb2xzL0ludGVycG9sYXRpb24uaCIK KyAKKyAjaW5jbHVkZSAiUG9pbnREYXRhR3JpZC5oIgorICNpbmNsdWRlICJQb2ludEF0dHJpYnV0 ZS5oIgorQEAgLTE5LDcgKzIwLDYgQEAKKyAjaW5jbHVkZSA8c3N0cmVhbT4KKyAjaW5jbHVkZSA8 dHlwZV90cmFpdHM+CisgCistCisgbmFtZXNwYWNlIG9wZW52ZGIgeworIE9QRU5WREJfVVNFX1ZF UlNJT05fTkFNRVNQQUNFCisgbmFtZXNwYWNlIE9QRU5WREJfVkVSU0lPTl9OQU1FIHsKK0BAIC0y OTksNyArMjk5LDcgQEAgY2xhc3MgUG9pbnREYXRhU2FtcGxlcgorICAgICAgICAgICAgIHVzaW5n IFRhcmdldEhhbmRsZVQgPSBBdHRyaWJ1dGVXcml0ZUhhbmRsZTx0eXBlbmFtZSBTYW1wbGVyV3Jh cHBlclQ6OlZhbHVlVHlwZT47CisgCisgICAgICAgICAgICAgaWYgKHV0aWw6Ondhc0ludGVycnVw dGVkKGludGVycnVwdGVyKSkgeworLSAgICAgICAgICAgICAgICB0YmI6OnRhc2s6OnNlbGYoKS5j YW5jZWxfZ3JvdXBfZXhlY3V0aW9uKCk7CisrICAgICAgICAgICAgICAgIHRocmVhZDo6Y2FuY2Vs R3JvdXBFeGVjdXRpb24oKTsKKyAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAg IH0KKyAKK2RpZmYgLS1naXQgYS9vcGVudmRiL29wZW52ZGIvdGhyZWFkL1RocmVhZGluZy5oIGIv b3BlbnZkYi9vcGVudmRiL3RocmVhZC9UaHJlYWRpbmcuaAorbmV3IGZpbGUgbW9kZSAxMDA2NDQK K2luZGV4IDAwMDAwMDAwMC4uMGMzYjM1NmUzCistLS0gL2Rldi9udWxsCisrKysgYi9vcGVudmRi L29wZW52ZGIvdGhyZWFkL1RocmVhZGluZy5oCitAQCAtMCwwICsxLDU0IEBACisrLy8gQ29weXJp Z2h0IENvbnRyaWJ1dG9ycyB0byB0aGUgT3BlblZEQiBQcm9qZWN0CisrLy8gU1BEWC1MaWNlbnNl LUlkZW50aWZpZXI6IE1QTC0yLjAKKysvLworKy8vLyBAZmlsZSBUaHJlYWRpbmcuaAorKworKyNp Zm5kZWYgT1BFTlZEQl9USFJFQURfVEhSRUFESU5HX0hBU19CRUVOX0lOQ0xVREVECisrI2RlZmlu ZSBPUEVOVkRCX1RIUkVBRF9USFJFQURJTkdfSEFTX0JFRU5fSU5DTFVERUQKKysKKysjaW5jbHVk ZSAib3BlbnZkYi92ZXJzaW9uLmgiCisrCisrLy8vIEBub3RlIHRiYi9ibG9ja2VkX3JhbmdlLmgg aXMgdGhlIE9OTFkgaW5jbHVkZSB0aGF0IHBlcnNpc3RzIGZyb20gVEJCIDIwMjAKKysvLy8gICB0 byBUQkIgMjAyMSB0aGF0IGl0c2VsZiBpbmNsdWRlcyB0aGUgVEJCIHNwZWNpZmljIHZlcnNpb24g aGVhZGVyIGZpbGVzLgorKy8vLyAgIEluIFRCQiAyMDIwLCB0aGUgdmVyc2lvbiBoZWFkZXIgd2Fz IGNhbGxlZCB0YmIvc3RkZGVmLmguIEluIDIwMjEsIGl0J3MKKysvLy8gICBjYWxsZWQgdGJiL3Zl cnNpb24uaC4gV2UgaW5jbHVkZSB0YmIvYmxvY2tlZF9yYW5nZS5oIGhlcmUgdG8gaW5kaXJlY3Rs eQorKy8vLyAgIGFjY2VzcyB0aGUgdmVyc2lvbiBkZWZpbmVzIGluIGEgY29uc2lzdGVudCB3YXkg c28gdGhhdCBkb3duc3RyZWFtCisrLy8vICAgc29mdHdhcmUgZG9lc24ndCBuZWVkIHRvIHByb3Zp ZGUgY29tcGlsZSB0aW1lIGRlZmluZXMuCisrI2luY2x1ZGUgPHRiYi9ibG9ja2VkX3JhbmdlLmg+ CisrI2luY2x1ZGUgPHRiYi90YXNrLmg+CisrI2luY2x1ZGUgPHRiYi90YXNrX2dyb3VwLmg+Cisr CisrbmFtZXNwYWNlIG9wZW52ZGIgeworK09QRU5WREJfVVNFX1ZFUlNJT05fTkFNRVNQQUNFCisr bmFtZXNwYWNlIE9QRU5WREJfVkVSU0lPTl9OQU1FIHsKKytuYW1lc3BhY2UgdGhyZWFkIHsKKysK KytpbmxpbmUgYm9vbCBjYW5jZWxHcm91cEV4ZWN1dGlvbigpCisreworKyAgICAvLyBAbm90ZSAx MjAwMCB3YXMgdGhlIDIwMjEuMS1iZXRhMDUgcmVsZWFzZS4gVGhlIDIwMjEuMS1iZXRhMDggcmVs ZWFzZQorKyAgICAvLyAgIGludHJvZHVjZWQgY3VycmVudF9jb250ZXh0KCkuCisrI2lmIFRCQl9J TlRFUkZBQ0VfVkVSU0lPTiA+PSAxMjAwMgorKyAgICBhdXRvIGN0eCA9IHRiYjo6dGFzazo6Y3Vy cmVudF9jb250ZXh0KCk7CisrICAgIHJldHVybiBjdHggPyBjdHgtPmNhbmNlbF9ncm91cF9leGVj dXRpb24oKSA6IGZhbHNlOworKyNlbHNlCisrICAgIHJldHVybiB0YmI6OnRhc2s6OnNlbGYoKS5j YW5jZWxfZ3JvdXBfZXhlY3V0aW9uKCk7CisrI2VuZGlmCisrfQorKworK2lubGluZSBib29sIGlz R3JvdXBFeGVjdXRpb25DYW5jZWxsZWQoKQorK3sKKysgICAgLy8gQG5vdGUgMTIwMDAgd2FzIHRo ZSAyMDIxLjEtYmV0YTA1IHJlbGVhc2UuIFRoZSAyMDIxLjEtYmV0YTA4IHJlbGVhc2UKKysgICAg Ly8gICBpbnRyb2R1Y2VkIGN1cnJlbnRfY29udGV4dCgpLgorKyNpZiBUQkJfSU5URVJGQUNFX1ZF UlNJT04gPj0gMTIwMDIKKysgICAgYXV0byBjdHggPSB0YmI6OnRhc2s6OmN1cnJlbnRfY29udGV4 dCgpOworKyAgICByZXR1cm4gY3R4ID8gY3R4LT5pc19ncm91cF9leGVjdXRpb25fY2FuY2VsbGVk KCkgOiBmYWxzZTsKKysjZWxzZQorKyAgICByZXR1cm4gdGJiOjp0YXNrOjpzZWxmKCkuaXNfY2Fu Y2VsbGVkKCk7CisrI2VuZGlmCisrfQorKworK30gLy8gbmFtZXNwYWNlIHRocmVhZAorK30gLy8g bmFtZXNwYWNlIE9QRU5WREJfVkVSU0lPTl9OQU1FCisrfSAvLyBuYW1lc3BhY2Ugb3BlbnZkYgor KworKyNlbmRpZiAvLyBPUEVOVkRCX1RIUkVBRF9USFJFQURJTkdfSEFTX0JFRU5fSU5DTFVERUQK K2RpZmYgLS1naXQgYS9vcGVudmRiL29wZW52ZGIvdG9vbHMvQ29tcG9zaXRlLmggYi9vcGVudmRi L29wZW52ZGIvdG9vbHMvQ29tcG9zaXRlLmgKK2luZGV4IDZiYzE3MGJmNy4uODhmZjg2ZjlmIDEw MDY0NAorLS0tIGEvb3BlbnZkYi9vcGVudmRiL3Rvb2xzL0NvbXBvc2l0ZS5oCisrKysgYi9vcGVu dmRiL29wZW52ZGIvdG9vbHMvQ29tcG9zaXRlLmgKK0BAIC0yNCw3ICsyNCw2IEBACisgI2luY2x1 ZGUgPHRiYi9wYXJhbGxlbF9mb3IuaD4KKyAjaW5jbHVkZSA8dGJiL3BhcmFsbGVsX3JlZHVjZS5o PgorICNpbmNsdWRlIDx0YmIvdGFza19ncm91cC5oPgorLSNpbmNsdWRlIDx0YmIvdGFza19zY2hl ZHVsZXJfaW5pdC5oPgorIAorICNpbmNsdWRlIDx0eXBlX3RyYWl0cz4KKyAjaW5jbHVkZSA8ZnVu Y3Rpb25hbD4KK2RpZmYgLS1naXQgYS9vcGVudmRiL29wZW52ZGIvdG9vbHMvRGlhZ25vc3RpY3Mu aCBiL29wZW52ZGIvb3BlbnZkYi90b29scy9EaWFnbm9zdGljcy5oCitpbmRleCA2OTRkMjE1NWYu LmU1ODQ0ZTQ0OCAxMDA2NDQKKy0tLSBhL29wZW52ZGIvb3BlbnZkYi90b29scy9EaWFnbm9zdGlj cy5oCisrKysgYi9vcGVudmRiL29wZW52ZGIvdG9vbHMvRGlhZ25vc3RpY3MuaAorQEAgLTExLDE0 ICsxMSwxNyBAQAorICNpZm5kZWYgT1BFTlZEQl9UT09MU19ESUFHTk9TVElDU19IQVNfQkVFTl9J TkNMVURFRAorICNkZWZpbmUgT1BFTlZEQl9UT09MU19ESUFHTk9TVElDU19IQVNfQkVFTl9JTkNM VURFRAorIAorLSNpbmNsdWRlIDxvcGVudmRiL0dyaWQuaD4KKy0jaW5jbHVkZSA8b3BlbnZkYi9t YXRoL01hdGguaD4KKy0jaW5jbHVkZSA8b3BlbnZkYi9tYXRoL1ZlYzMuaD4KKy0jaW5jbHVkZSA8 b3BlbnZkYi9tYXRoL1N0ZW5jaWxzLmg+CistI2luY2x1ZGUgPG9wZW52ZGIvbWF0aC9PcGVyYXRv cnMuaD4KKy0jaW5jbHVkZSA8b3BlbnZkYi90cmVlL0xlYWZNYW5hZ2VyLmg+CisrI2luY2x1ZGUg Im9wZW52ZGIvR3JpZC5oIgorKyNpbmNsdWRlICJvcGVudmRiL21hdGgvTWF0aC5oIgorKyNpbmNs dWRlICJvcGVudmRiL21hdGgvVmVjMy5oIgorKyNpbmNsdWRlICJvcGVudmRiL21hdGgvU3RlbmNp bHMuaCIKKysjaW5jbHVkZSAib3BlbnZkYi9tYXRoL09wZXJhdG9ycy5oIgorKyNpbmNsdWRlICJv cGVudmRiL3RyZWUvTGVhZk1hbmFnZXIuaCIKKysjaW5jbHVkZSAib3BlbnZkYi90aHJlYWQvVGhy ZWFkaW5nLmgiCisrCisgI2luY2x1ZGUgPHRiYi9ibG9ja2VkX3JhbmdlLmg+CisgI2luY2x1ZGUg PHRiYi9wYXJhbGxlbF9yZWR1Y2UuaD4KKysKKyAjaW5jbHVkZSA8Y21hdGg+IC8vIGZvciBzdGQ6 OmlzbmFuKCksIHN0ZDo6aXNmaW5pdGUoKQorICNpbmNsdWRlIDxzZXQ+CisgI2luY2x1ZGUgPHNz dHJlYW0+CitAQCAtMjYsNyArMjksNiBAQAorICNpbmNsdWRlIDx0eXBlX3RyYWl0cz4KKyAjaW5j bHVkZSA8dmVjdG9yPgorIAorLQorIG5hbWVzcGFjZSBvcGVudmRiIHsKKyBPUEVOVkRCX1VTRV9W RVJTSU9OX05BTUVTUEFDRQorIG5hbWVzcGFjZSBPUEVOVkRCX1ZFUlNJT05fTkFNRSB7CitAQCAt MTE2MCwxMyArMTE2MiwxMyBAQCBJbmFjdGl2ZVZveGVsVmFsdWVzPFRyZWVUeXBlPjo6b3BlcmF0 b3IoKShjb25zdCB0YmI6OmJsb2NrZWRfcmFuZ2U8c2l6ZV90PiYgcmFuZworIHsKKyAgICAgdHlw ZW5hbWUgVHJlZVR5cGU6OkxlYWZOb2RlVHlwZTo6VmFsdWVPZmZDSXRlciBpdGVyOworIAorLSAg ICBmb3IgKHNpemVfdCBuID0gcmFuZ2UuYmVnaW4oKTsgbiA8IHJhbmdlLmVuZCgpICYmICF0YmI6 OnRhc2s6OnNlbGYoKS5pc19jYW5jZWxsZWQoKTsgKytuKSB7CisrICAgIGZvciAoc2l6ZV90IG4g PSByYW5nZS5iZWdpbigpOyBuIDwgcmFuZ2UuZW5kKCkgJiYgIXRocmVhZDo6aXNHcm91cEV4ZWN1 dGlvbkNhbmNlbGxlZCgpOyArK24pIHsKKyAgICAgICAgIGZvciAoaXRlciA9IG1MZWFmQXJyYXku bGVhZihuKS5jYmVnaW5WYWx1ZU9mZigpOyBpdGVyOyArK2l0ZXIpIHsKKyAgICAgICAgICAgICBt SW5hY3RpdmVWYWx1ZXMuaW5zZXJ0KGl0ZXIuZ2V0VmFsdWUoKSk7CisgICAgICAgICB9CisgCisg ICAgICAgICBpZiAobUluYWN0aXZlVmFsdWVzLnNpemUoKSA+IG1OdW1WYWx1ZXMpIHsKKy0gICAg ICAgICAgICB0YmI6OnRhc2s6OnNlbGYoKS5jYW5jZWxfZ3JvdXBfZXhlY3V0aW9uKCk7CisrICAg ICAgICAgICAgdGhyZWFkOjpjYW5jZWxHcm91cEV4ZWN1dGlvbigpOworICAgICAgICAgfQorICAg ICB9CisgfQorQEAgLTEyNTAsMTQgKzEyNTIsMTQgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVHJlZVR5 cGU+CisgaW5saW5lIHZvaWQKKyBJbmFjdGl2ZVRpbGVWYWx1ZXM8VHJlZVR5cGU+OjpvcGVyYXRv cigpKEl0ZXJSYW5nZSYgcmFuZ2UpCisgeworLSAgICBmb3IgKDsgcmFuZ2UgJiYgIXRiYjo6dGFz azo6c2VsZigpLmlzX2NhbmNlbGxlZCgpOyArK3JhbmdlKSB7CisrICAgIGZvciAoOyByYW5nZSAm JiAhdGhyZWFkOjppc0dyb3VwRXhlY3V0aW9uQ2FuY2VsbGVkKCk7ICsrcmFuZ2UpIHsKKyAgICAg ICAgIHR5cGVuYW1lIFRyZWVUeXBlOjpWYWx1ZU9mZkNJdGVyIGl0ZXIgPSByYW5nZS5pdGVyYXRv cigpOworICAgICAgICAgZm9yICg7IGl0ZXI7ICsraXRlcikgeworICAgICAgICAgICAgIG1JbmFj dGl2ZVZhbHVlcy5pbnNlcnQoaXRlci5nZXRWYWx1ZSgpKTsKKyAgICAgICAgIH0KKyAKKyAgICAg ICAgIGlmIChtSW5hY3RpdmVWYWx1ZXMuc2l6ZSgpID4gbU51bVZhbHVlcykgeworLSAgICAgICAg ICAgIHRiYjo6dGFzazo6c2VsZigpLmNhbmNlbF9ncm91cF9leGVjdXRpb24oKTsKKysgICAgICAg ICAgICB0aHJlYWQ6OmNhbmNlbEdyb3VwRXhlY3V0aW9uKCk7CisgICAgICAgICB9CisgICAgIH0K KyB9CitkaWZmIC0tZ2l0IGEvb3BlbnZkYi9vcGVudmRiL3Rvb2xzL0ZpbHRlci5oIGIvb3BlbnZk Yi9vcGVudmRiL3Rvb2xzL0ZpbHRlci5oCitpbmRleCA0MDhjNzU1NDEuLmI3MDIxMjUyMCAxMDA2 NDQKKy0tLSBhL29wZW52ZGIvb3BlbnZkYi90b29scy9GaWx0ZXIuaAorKysrIGIvb3BlbnZkYi9v cGVudmRiL3Rvb2xzL0ZpbHRlci5oCitAQCAtMTQsMjEgKzE0LDI0IEBACisgI2lmbmRlZiBPUEVO VkRCX1RPT0xTX0ZJTFRFUl9IQVNfQkVFTl9JTkNMVURFRAorICNkZWZpbmUgT1BFTlZEQl9UT09M U19GSUxURVJfSEFTX0JFRU5fSU5DTFVERUQKKyAKKy0jaW5jbHVkZSA8dGJiL3BhcmFsbGVsX2Zv ci5oPgorLSNpbmNsdWRlIDxvcGVudmRiL1R5cGVzLmg+CistI2luY2x1ZGUgPG9wZW52ZGIvbWF0 aC9NYXRoLmg+CistI2luY2x1ZGUgPG9wZW52ZGIvbWF0aC9TdGVuY2lscy5oPgorLSNpbmNsdWRl IDxvcGVudmRiL21hdGgvVHJhbnNmb3JtLmg+CistI2luY2x1ZGUgPG9wZW52ZGIvdHJlZS9Ob2Rl TWFuYWdlci5oPgorLSNpbmNsdWRlIDxvcGVudmRiL3RyZWUvTGVhZk1hbmFnZXIuaD4KKy0jaW5j bHVkZSA8b3BlbnZkYi91dGlsL051bGxJbnRlcnJ1cHRlci5oPgorLSNpbmNsdWRlIDxvcGVudmRi L3V0aWwvVXRpbC5oPgorLSNpbmNsdWRlIDxvcGVudmRiL0dyaWQuaD4KKysjaW5jbHVkZSAib3Bl bnZkYi9UeXBlcy5oIgorKyNpbmNsdWRlICJvcGVudmRiL0dyaWQuaCIKKysjaW5jbHVkZSAib3Bl bnZkYi9tYXRoL01hdGguaCIKKysjaW5jbHVkZSAib3BlbnZkYi9tYXRoL1N0ZW5jaWxzLmgiCisr I2luY2x1ZGUgIm9wZW52ZGIvbWF0aC9UcmFuc2Zvcm0uaCIKKysjaW5jbHVkZSAib3BlbnZkYi90 cmVlL05vZGVNYW5hZ2VyLmgiCisrI2luY2x1ZGUgIm9wZW52ZGIvdHJlZS9MZWFmTWFuYWdlci5o IgorKyNpbmNsdWRlICJvcGVudmRiL3V0aWwvTnVsbEludGVycnVwdGVyLmgiCisrI2luY2x1ZGUg Im9wZW52ZGIvdXRpbC9VdGlsLmgiCisrI2luY2x1ZGUgIm9wZW52ZGIvdGhyZWFkL1RocmVhZGlu Zy5oIgorICNpbmNsdWRlICJJbnRlcnBvbGF0aW9uLmgiCisrCisrI2luY2x1ZGUgPHRiYi9wYXJh bGxlbF9mb3IuaD4KKysjaW5jbHVkZSA8dGJiL2NvbmN1cnJlbnRfdmVjdG9yLmg+CisrCisgI2lu Y2x1ZGUgPGFsZ29yaXRobT4gLy8gZm9yIHN0ZDo6bWF4KCkKKyAjaW5jbHVkZSA8ZnVuY3Rpb25h bD4KKyAjaW5jbHVkZSA8dHlwZV90cmFpdHM+CistI2luY2x1ZGUgPHRiYi9jb25jdXJyZW50X3Zl Y3Rvci5oPgorIAorIG5hbWVzcGFjZSBvcGVudmRiIHsKKyBPUEVOVkRCX1VTRV9WRVJTSU9OX05B TUVTUEFDRQorQEAgLTgzMyw3ICs4MzYsNyBAQCBpbmxpbmUgYm9vbAorIEZpbHRlcjxHcmlkVCwg TWFza1QsIEludGVycnVwdFQ+Ojp3YXNJbnRlcnJ1cHRlZCgpCisgeworICAgICBpZiAodXRpbDo6 d2FzSW50ZXJydXB0ZWQobUludGVycnVwdGVyKSkgeworLSAgICAgICAgdGJiOjp0YXNrOjpzZWxm KCkuY2FuY2VsX2dyb3VwX2V4ZWN1dGlvbigpOworKyAgICAgICAgdGhyZWFkOjpjYW5jZWxHcm91 cEV4ZWN1dGlvbigpOworICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgIH0KKyAgICAgcmV0dXJu IGZhbHNlOworZGlmZiAtLWdpdCBhL29wZW52ZGIvb3BlbnZkYi90b29scy9HcmlkT3BlcmF0b3Jz LmggYi9vcGVudmRiL29wZW52ZGIvdG9vbHMvR3JpZE9wZXJhdG9ycy5oCitpbmRleCAzMTMwNWEx YWIuLjc4ZmFmZWFkOSAxMDA2NDQKKy0tLSBhL29wZW52ZGIvb3BlbnZkYi90b29scy9HcmlkT3Bl cmF0b3JzLmgKKysrKyBiL29wZW52ZGIvb3BlbnZkYi90b29scy9HcmlkT3BlcmF0b3JzLmgKK0BA IC05LDE0ICs5LDE1IEBACisgI2lmbmRlZiBPUEVOVkRCX1RPT0xTX0dSSURfT1BFUkFUT1JTX0hB U19CRUVOX0lOQ0xVREVECisgI2RlZmluZSBPUEVOVkRCX1RPT0xTX0dSSURfT1BFUkFUT1JTX0hB U19CRUVOX0lOQ0xVREVECisgCistI2luY2x1ZGUgPG9wZW52ZGIvR3JpZC5oPgorLSNpbmNsdWRl IDxvcGVudmRiL21hdGgvT3BlcmF0b3JzLmg+CistI2luY2x1ZGUgPG9wZW52ZGIvdXRpbC9OdWxs SW50ZXJydXB0ZXIuaD4KKy0jaW5jbHVkZSA8b3BlbnZkYi90cmVlL0xlYWZNYW5hZ2VyLmg+Cist I2luY2x1ZGUgPG9wZW52ZGIvdHJlZS9WYWx1ZUFjY2Vzc29yLmg+CisrI2luY2x1ZGUgIm9wZW52 ZGIvR3JpZC5oIgorKyNpbmNsdWRlICJvcGVudmRiL21hdGgvT3BlcmF0b3JzLmgiCisrI2luY2x1 ZGUgIm9wZW52ZGIvdXRpbC9OdWxsSW50ZXJydXB0ZXIuaCIKKysjaW5jbHVkZSAib3BlbnZkYi90 aHJlYWQvVGhyZWFkaW5nLmgiCisrI2luY2x1ZGUgIm9wZW52ZGIvdHJlZS9MZWFmTWFuYWdlci5o IgorKyNpbmNsdWRlICJvcGVudmRiL3RyZWUvVmFsdWVBY2Nlc3Nvci5oIgorICNpbmNsdWRlICJW YWx1ZVRyYW5zZm9ybWVyLmgiIC8vIGZvciB0b29sczo6Zm9yZWFjaCgpCistI2luY2x1ZGUgPHRi Yi9wYXJhbGxlbF9mb3IuaD4KKyAKKysjaW5jbHVkZSA8dGJiL3BhcmFsbGVsX2Zvci5oPgorIAor IG5hbWVzcGFjZSBvcGVudmRiIHsKKyBPUEVOVkRCX1VTRV9WRVJTSU9OX05BTUVTUEFDRQorQEAg LTM4Myw3ICszODQsOSBAQCBjbGFzcyBHcmlkT3BlcmF0b3IKKyAgICAgLy8vIFRCQiB0aHJlYWRz IG9ubHkhCisgICAgIHZvaWQgb3BlcmF0b3IoKShjb25zdCB0eXBlbmFtZSBMZWFmTWFuYWdlclQ6 OkxlYWZSYW5nZSYgcmFuZ2UpIGNvbnN0CisgICAgIHsKKy0gICAgICAgIGlmICh1dGlsOjp3YXNJ bnRlcnJ1cHRlZChtSW50ZXJydXB0KSkgdGJiOjp0YXNrOjpzZWxmKCkuY2FuY2VsX2dyb3VwX2V4 ZWN1dGlvbigpOworKyAgICAgICAgaWYgKHV0aWw6Ondhc0ludGVycnVwdGVkKG1JbnRlcnJ1cHQp KSB7CisrICAgICAgICAgICAgdGhyZWFkOjpjYW5jZWxHcm91cEV4ZWN1dGlvbigpOworKyAgICAg ICAgfQorIAorICAgICAgICAgZm9yICh0eXBlbmFtZSBMZWFmTWFuYWdlclQ6OkxlYWZSYW5nZTo6 SXRlcmF0b3IgbGVhZj1yYW5nZS5iZWdpbigpOyBsZWFmOyArK2xlYWYpIHsKKyAgICAgICAgICAg ICBmb3IgKHR5cGVuYW1lIE91dExlYWZUOjpWYWx1ZU9uSXRlciB2YWx1ZT1sZWFmLT5iZWdpblZh bHVlT24oKTsgdmFsdWU7ICsrdmFsdWUpIHsKK2RpZmYgLS1naXQgYS9vcGVudmRiL29wZW52ZGIv dG9vbHMvTGV2ZWxTZXRNZWFzdXJlLmggYi9vcGVudmRiL29wZW52ZGIvdG9vbHMvTGV2ZWxTZXRN ZWFzdXJlLmgKK2luZGV4IGVmZTE5MDc0ZC4uNTk5NjljZGNmIDEwMDY0NAorLS0tIGEvb3BlbnZk Yi9vcGVudmRiL3Rvb2xzL0xldmVsU2V0TWVhc3VyZS5oCisrKysgYi9vcGVudmRiL29wZW52ZGIv dG9vbHMvTGV2ZWxTZXRNZWFzdXJlLmgKK0BAIC04LDE4ICs4LDIxIEBACisgI2lmbmRlZiBPUEVO VkRCX1RPT0xTX0xFVkVMU0VUTUVBU1VSRV9IQVNfQkVFTl9JTkNMVURFRAorICNkZWZpbmUgT1BF TlZEQl9UT09MU19MRVZFTFNFVE1FQVNVUkVfSEFTX0JFRU5fSU5DTFVERUQKKyAKKy0jaW5jbHVk ZSA8b3BlbnZkYi9tYXRoL01hdGguaD4KKy0jaW5jbHVkZSA8b3BlbnZkYi9UeXBlcy5oPgorLSNp bmNsdWRlIDxvcGVudmRiL0dyaWQuaD4KKy0jaW5jbHVkZSA8b3BlbnZkYi90cmVlL0xlYWZNYW5h Z2VyLmg+CistI2luY2x1ZGUgPG9wZW52ZGIvdHJlZS9WYWx1ZUFjY2Vzc29yLmg+CistI2luY2x1 ZGUgPG9wZW52ZGIvbWF0aC9GaW5pdGVEaWZmZXJlbmNlLmg+CistI2luY2x1ZGUgPG9wZW52ZGIv bWF0aC9PcGVyYXRvcnMuaD4KKy0jaW5jbHVkZSA8b3BlbnZkYi9tYXRoL1N0ZW5jaWxzLmg+Cist I2luY2x1ZGUgPG9wZW52ZGIvdXRpbC9OdWxsSW50ZXJydXB0ZXIuaD4KKysjaW5jbHVkZSAib3Bl bnZkYi9UeXBlcy5oIgorKyNpbmNsdWRlICJvcGVudmRiL0dyaWQuaCIKKysjaW5jbHVkZSAib3Bl bnZkYi90cmVlL0xlYWZNYW5hZ2VyLmgiCisrI2luY2x1ZGUgIm9wZW52ZGIvdHJlZS9WYWx1ZUFj Y2Vzc29yLmgiCisrI2luY2x1ZGUgIm9wZW52ZGIvbWF0aC9NYXRoLmgiCisrI2luY2x1ZGUgIm9w ZW52ZGIvbWF0aC9GaW5pdGVEaWZmZXJlbmNlLmgiCisrI2luY2x1ZGUgIm9wZW52ZGIvbWF0aC9P cGVyYXRvcnMuaCIKKysjaW5jbHVkZSAib3BlbnZkYi9tYXRoL1N0ZW5jaWxzLmgiCisrI2luY2x1 ZGUgIm9wZW52ZGIvdXRpbC9OdWxsSW50ZXJydXB0ZXIuaCIKKysjaW5jbHVkZSAib3BlbnZkYi90 aHJlYWQvVGhyZWFkaW5nLmgiCisrCisgI2luY2x1ZGUgPHRiYi9wYXJhbGxlbF9mb3IuaD4KKyAj aW5jbHVkZSA8dGJiL3BhcmFsbGVsX3NvcnQuaD4KKyAjaW5jbHVkZSA8dGJiL3BhcmFsbGVsX2lu dm9rZS5oPgorKworICNpbmNsdWRlIDx0eXBlX3RyYWl0cz4KKyAKKyBuYW1lc3BhY2Ugb3BlbnZk YiB7CitAQCAtMzI5LDcgKzMzMiw3IEBAIGlubGluZSBib29sCisgTGV2ZWxTZXRNZWFzdXJlPEdy aWRULCBJbnRlcnJ1cHRUPjo6Y2hlY2tJbnRlcnJ1cHRlcigpCisgeworICAgICBpZiAodXRpbDo6 d2FzSW50ZXJydXB0ZWQobUludGVycnVwdGVyKSkgeworLSAgICAgICAgdGJiOjp0YXNrOjpzZWxm KCkuY2FuY2VsX2dyb3VwX2V4ZWN1dGlvbigpOworKyAgICAgICAgdGhyZWFkOjpjYW5jZWxHcm91 cEV4ZWN1dGlvbigpOworICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICB9CisgICAgIHJldHVy biB0cnVlOworZGlmZiAtLWdpdCBhL29wZW52ZGIvb3BlbnZkYi90b29scy9MZXZlbFNldFRyYWNr ZXIuaCBiL29wZW52ZGIvb3BlbnZkYi90b29scy9MZXZlbFNldFRyYWNrZXIuaAoraW5kZXggY2Jk YzI2N2U4Li5iZmM4MDA0ZTcgMTAwNjQ0CistLS0gYS9vcGVudmRiL29wZW52ZGIvdG9vbHMvTGV2 ZWxTZXRUcmFja2VyLmgKKysrKyBiL29wZW52ZGIvb3BlbnZkYi90b29scy9MZXZlbFNldFRyYWNr ZXIuaAorQEAgLTEyLDI0ICsxMiwyNiBAQAorICNpZm5kZWYgT1BFTlZEQl9UT09MU19MRVZFTF9T RVRfVFJBQ0tFUl9IQVNfQkVFTl9JTkNMVURFRAorICNkZWZpbmUgT1BFTlZEQl9UT09MU19MRVZF TF9TRVRfVFJBQ0tFUl9IQVNfQkVFTl9JTkNMVURFRAorIAorLSNpbmNsdWRlIDx0YmIvcGFyYWxs ZWxfZm9yLmg+CistI2luY2x1ZGUgPG9wZW52ZGIvVHlwZXMuaD4KKy0jaW5jbHVkZSA8b3BlbnZk Yi9tYXRoL01hdGguaD4KKy0jaW5jbHVkZSA8b3BlbnZkYi9tYXRoL0Zpbml0ZURpZmZlcmVuY2Uu aD4KKy0jaW5jbHVkZSA8b3BlbnZkYi9tYXRoL09wZXJhdG9ycy5oPgorLSNpbmNsdWRlIDxvcGVu dmRiL21hdGgvU3RlbmNpbHMuaD4KKy0jaW5jbHVkZSA8b3BlbnZkYi9tYXRoL1RyYW5zZm9ybS5o PgorLSNpbmNsdWRlIDxvcGVudmRiL0dyaWQuaD4KKy0jaW5jbHVkZSA8b3BlbnZkYi91dGlsL051 bGxJbnRlcnJ1cHRlci5oPgorLSNpbmNsdWRlIDxvcGVudmRiL3RyZWUvVmFsdWVBY2Nlc3Nvci5o PgorLSNpbmNsdWRlIDxvcGVudmRiL3RyZWUvTGVhZk1hbmFnZXIuaD4KKysjaW5jbHVkZSAib3Bl bnZkYi9UeXBlcy5oIgorKyNpbmNsdWRlICJvcGVudmRiL0dyaWQuaCIKKysjaW5jbHVkZSAib3Bl bnZkYi9tYXRoL01hdGguaCIKKysjaW5jbHVkZSAib3BlbnZkYi9tYXRoL0Zpbml0ZURpZmZlcmVu Y2UuaCIKKysjaW5jbHVkZSAib3BlbnZkYi9tYXRoL09wZXJhdG9ycy5oIgorKyNpbmNsdWRlICJv cGVudmRiL21hdGgvU3RlbmNpbHMuaCIKKysjaW5jbHVkZSAib3BlbnZkYi9tYXRoL1RyYW5zZm9y bS5oIgorKyNpbmNsdWRlICJvcGVudmRiL3V0aWwvTnVsbEludGVycnVwdGVyLmgiCisrI2luY2x1 ZGUgIm9wZW52ZGIvdGhyZWFkL1RocmVhZGluZy5oIgorKyNpbmNsdWRlICJvcGVudmRiL3RyZWUv VmFsdWVBY2Nlc3Nvci5oIgorKyNpbmNsdWRlICJvcGVudmRiL3RyZWUvTGVhZk1hbmFnZXIuaCIK KyAjaW5jbHVkZSAiQ2hhbmdlQmFja2dyb3VuZC5oIi8vIGZvciBjaGFuZ2VMZXZlbFNldEJhY2tn cm91bmQKKyAjaW5jbHVkZSAiTW9ycGhvbG9neS5oIi8vZm9yIGRpbGF0ZUFjdGl2ZVZhbHVlcwor ICNpbmNsdWRlICJQcnVuZS5oIi8vIGZvciBwcnVuZUxldmVsU2V0CisrCisrI2luY2x1ZGUgPHRi Yi9wYXJhbGxlbF9mb3IuaD4KKysKKyAjaW5jbHVkZSA8ZnVuY3Rpb25hbD4KKyAjaW5jbHVkZSA8 dHlwZV90cmFpdHM+CisgCistCisgbmFtZXNwYWNlIG9wZW52ZGIgeworIE9QRU5WREJfVVNFX1ZF UlNJT05fTkFNRVNQQUNFCisgbmFtZXNwYWNlIE9QRU5WREJfVkVSU0lPTl9OQU1FIHsKK0BAIC0z ODMsNyArMzg1LDcgQEAgTGV2ZWxTZXRUcmFja2VyPEdyaWRULCBJbnRlcnJ1cHRUPjo6CisgY2hl Y2tJbnRlcnJ1cHRlcigpCisgeworICAgICBpZiAodXRpbDo6d2FzSW50ZXJydXB0ZWQobUludGVy cnVwdGVyKSkgeworLSAgICAgICAgdGJiOjp0YXNrOjpzZWxmKCkuY2FuY2VsX2dyb3VwX2V4ZWN1 dGlvbigpOworKyAgICAgICAgdGhyZWFkOjpjYW5jZWxHcm91cEV4ZWN1dGlvbigpOworICAgICAg ICAgcmV0dXJuIGZhbHNlOworICAgICB9CisgICAgIHJldHVybiB0cnVlOworZGlmZiAtLWdpdCBh L29wZW52ZGIvb3BlbnZkYi90b29scy9NZXNoVG9Wb2x1bWUuaCBiL29wZW52ZGIvb3BlbnZkYi90 b29scy9NZXNoVG9Wb2x1bWUuaAoraW5kZXggNjY0M2M4ZjA1Li5kZTM0MDZlZGEgMTAwNjQ0Cist LS0gYS9vcGVudmRiL29wZW52ZGIvdG9vbHMvTWVzaFRvVm9sdW1lLmgKKysrKyBiL29wZW52ZGIv b3BlbnZkYi90b29scy9NZXNoVG9Wb2x1bWUuaAorQEAgLTE2LDEyICsxNiwxMyBAQAorICNpZm5k ZWYgT1BFTlZEQl9UT09MU19NRVNIX1RPX1ZPTFVNRV9IQVNfQkVFTl9JTkNMVURFRAorICNkZWZp bmUgT1BFTlZEQl9UT09MU19NRVNIX1RPX1ZPTFVNRV9IQVNfQkVFTl9JTkNMVURFRAorIAorLSNp bmNsdWRlIDxvcGVudmRiL1BsYXRmb3JtLmg+IC8vIGZvciBPUEVOVkRCX0hBU19DWFgxMQorLSNp bmNsdWRlIDxvcGVudmRiL1R5cGVzLmg+CistI2luY2x1ZGUgPG9wZW52ZGIvbWF0aC9GaW5pdGVE aWZmZXJlbmNlLmg+IC8vIGZvciBHb2R1bm92c05vcm1TcXJkCistI2luY2x1ZGUgPG9wZW52ZGIv bWF0aC9Qcm94aW1pdHkuaD4gLy8gZm9yIGNsb3Nlc3RQb2ludE9uVHJpYW5nbGVUb1BvaW50Cist I2luY2x1ZGUgPG9wZW52ZGIvdXRpbC9OdWxsSW50ZXJydXB0ZXIuaD4KKy0jaW5jbHVkZSA8b3Bl bnZkYi91dGlsL1V0aWwuaD4KKysjaW5jbHVkZSAib3BlbnZkYi9QbGF0Zm9ybS5oIiAvLyBmb3Ig T1BFTlZEQl9IQVNfQ1hYMTEKKysjaW5jbHVkZSAib3BlbnZkYi9UeXBlcy5oIgorKyNpbmNsdWRl ICJvcGVudmRiL21hdGgvRmluaXRlRGlmZmVyZW5jZS5oIiAvLyBmb3IgR29kdW5vdnNOb3JtU3Fy ZAorKyNpbmNsdWRlICJvcGVudmRiL21hdGgvUHJveGltaXR5LmgiIC8vIGZvciBjbG9zZXN0UG9p bnRPblRyaWFuZ2xlVG9Qb2ludAorKyNpbmNsdWRlICJvcGVudmRiL3V0aWwvTnVsbEludGVycnVw dGVyLmgiCisrI2luY2x1ZGUgIm9wZW52ZGIvdXRpbC9VdGlsLmgiCisrI2luY2x1ZGUgIm9wZW52 ZGIvdGhyZWFkL1RocmVhZGluZy5oIgorIAorICNpbmNsdWRlICJDaGFuZ2VCYWNrZ3JvdW5kLmgi CisgI2luY2x1ZGUgIlBydW5lLmgiIC8vIGZvciBwcnVuZUluYWN0aXZlIGFuZCBwcnVuZUxldmVs U2V0CitAQCAtMzMsNyArMzQsNyBAQAorICNpbmNsdWRlIDx0YmIvcGFyYWxsZWxfcmVkdWNlLmg+ CisgI2luY2x1ZGUgPHRiYi9wYXJ0aXRpb25lci5oPgorICNpbmNsdWRlIDx0YmIvdGFza19ncm91 cC5oPgorLSNpbmNsdWRlIDx0YmIvdGFza19zY2hlZHVsZXJfaW5pdC5oPgorKyNpbmNsdWRlIDx0 YmIvdGFza19hcmVuYS5oPgorIAorICNpbmNsdWRlIDxhbGdvcml0aG0+IC8vIGZvciBzdGQ6OnNv cnQoKQorICNpbmNsdWRlIDxjbWF0aD4gLy8gZm9yIHN0ZDo6aXNmaW5pdGUoKSwgc3RkOjppc25h bigpCitAQCAtMTEzMiw3ICsxMTMzLDcgQEAgaW5saW5lIHZvaWQKKyBmaWxsQXJyYXkoVmFsdWVU eXBlKiBhcnJheSwgY29uc3QgVmFsdWVUeXBlIHZhbCwgY29uc3Qgc2l6ZV90IGxlbmd0aCkKKyB7 CisgICAgIGNvbnN0IGF1dG8gZ3JhaW5TaXplID0gc3RkOjptYXg8c2l6ZV90PigKKy0gICAgICAg IGxlbmd0aCAvIHRiYjo6dGFza19zY2hlZHVsZXJfaW5pdDo6ZGVmYXVsdF9udW1fdGhyZWFkcygp LCAxMDI0KTsKKysgICAgICAgIGxlbmd0aCAvIHRiYjo6dGhpc190YXNrX2FyZW5hOjptYXhfY29u Y3VycmVuY3koKSwgMTAyNCk7CisgICAgIGNvbnN0IHRiYjo6YmxvY2tlZF9yYW5nZTxzaXplX3Q+ IHJhbmdlKDAsIGxlbmd0aCwgZ3JhaW5TaXplKTsKKyAgICAgdGJiOjpwYXJhbGxlbF9mb3IocmFu Z2UsIEZpbGxBcnJheTxWYWx1ZVR5cGU+KGFycmF5LCB2YWwpLCB0YmI6OnNpbXBsZV9wYXJ0aXRp b25lcigpKTsKKyB9CitAQCAtMTk4OSw3ICsxOTkwLDcgQEAgY2xhc3MgVm94ZWxpemVQb2x5Z29u cworICAgICAgICAgZm9yIChzaXplX3QgbiA9IHJhbmdlLmJlZ2luKCksIE4gPSByYW5nZS5lbmQo KTsgbiA8IE47ICsrbikgeworIAorICAgICAgICAgICAgIGlmICh0aGlzLT53YXNJbnRlcnJ1cHRl ZCgpKSB7CistICAgICAgICAgICAgICAgIHRiYjo6dGFzazo6c2VsZigpLmNhbmNlbF9ncm91cF9l eGVjdXRpb24oKTsKKysgICAgICAgICAgICAgICAgdGhyZWFkOjpjYW5jZWxHcm91cEV4ZWN1dGlv bigpOworICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICB9CisgCitAQCAtMjE0 Myw3ICsyMTQ0LDcgQEAgY2xhc3MgVm94ZWxpemVQb2x5Z29ucworIAorICAgICAgICAgd2hpbGUg KCFjb29yZExpc3QuZW1wdHkoKSkgeworICAgICAgICAgICAgIGlmIChpbnRlcnJ1cHRlciAmJiBp bnRlcnJ1cHRlci0+d2FzSW50ZXJydXB0ZWQoKSkgeworLSAgICAgICAgICAgICAgICB0YmI6OnRh c2s6OnNlbGYoKS5jYW5jZWxfZ3JvdXBfZXhlY3V0aW9uKCk7CisrICAgICAgICAgICAgICAgIHRo cmVhZDo6Y2FuY2VsR3JvdXBFeGVjdXRpb24oKTsKKyAgICAgICAgICAgICAgICAgYnJlYWs7Cisg ICAgICAgICAgICAgfQorICAgICAgICAgICAgIGZvciAoSW50MzIgcGFzcyA9IDA7IHBhc3MgPCAx MDQ4NTc2ICYmICFjb29yZExpc3QuZW1wdHkoKTsgKytwYXNzKSB7CitkaWZmIC0tZ2l0IGEvb3Bl bnZkYi9vcGVudmRiL3Rvb2xzL01vcnBob2xvZ3kuaCBiL29wZW52ZGIvb3BlbnZkYi90b29scy9N b3JwaG9sb2d5LmgKK2luZGV4IDczNjk4MmVmNS4uMGExZTcxMDA5IDEwMDY0NAorLS0tIGEvb3Bl bnZkYi9vcGVudmRiL3Rvb2xzL01vcnBob2xvZ3kuaAorKysrIGIvb3BlbnZkYi9vcGVudmRiL3Rv b2xzL01vcnBob2xvZ3kuaAorQEAgLTI0LDcgKzI0LDcgQEAKKyAjaW5jbHVkZSAib3BlbnZkYi90 cmVlL1ZhbHVlQWNjZXNzb3IuaCIKKyAjaW5jbHVkZSAib3BlbnZkYi90cmVlL0xlYWZNYW5hZ2Vy LmgiCisgCistI2luY2x1ZGUgPHRiYi90YXNrX3NjaGVkdWxlcl9pbml0Lmg+CisrI2luY2x1ZGUg PHRiYi90YXNrX2FyZW5hLmg+CisgI2luY2x1ZGUgPHRiYi9lbnVtZXJhYmxlX3RocmVhZF9zcGVj aWZpYy5oPgorICNpbmNsdWRlIDx0YmIvcGFyYWxsZWxfZm9yLmg+CisgCitAQCAtNzI2LDcgKzcy Niw3IEBAIHZvaWQgTW9ycGhvbG9neTxUcmVlVHlwZT46OmRpbGF0ZVZveGVscyhjb25zdCBzaXpl X3QgaXRlciwKKyAgICAgICAgIH0KKyAKKyAgICAgICAgIC8vIEBub3RlIHRoaXMgZ3JhaW4gc2l6 ZSBpcyB1c2VkIGZvciBvcHRpbWFsIHRocmVhZGluZworLSAgICAgICAgY29uc3Qgc2l6ZV90IG51 bVRocmVhZHMgPSBzaXplX3QodGJiOjp0YXNrX3NjaGVkdWxlcl9pbml0OjpkZWZhdWx0X251bV90 aHJlYWRzKCkpOworKyAgICAgICAgY29uc3Qgc2l6ZV90IG51bVRocmVhZHMgPSBzaXplX3QodGJi Ojp0aGlzX3Rhc2tfYXJlbmE6Om1heF9jb25jdXJyZW5jeSgpKTsKKyAgICAgICAgIGNvbnN0IHNp emVfdCBzdWJUcmVlU2l6ZSA9IG1hdGg6Ok1heChzaXplX3QoMSksIGFycmF5LnNpemUoKS8oMipu dW1UaHJlYWRzKSk7CisgCisgICAgICAgICAvLyBwZXJmb3JtIHJlY3Vyc2l2ZSBkaWxhdGlvbiB0 byBzdWIgdHJlZXMKK2RpZmYgLS1naXQgYS9vcGVudmRiL29wZW52ZGIvdG9vbHMvUGFydGljbGVz VG9MZXZlbFNldC5oIGIvb3BlbnZkYi9vcGVudmRiL3Rvb2xzL1BhcnRpY2xlc1RvTGV2ZWxTZXQu aAoraW5kZXggNzM5YWYyYjY5Li5mOWMxOTkxMWMgMTAwNjQ0CistLS0gYS9vcGVudmRiL29wZW52 ZGIvdG9vbHMvUGFydGljbGVzVG9MZXZlbFNldC5oCisrKysgYi9vcGVudmRiL29wZW52ZGIvdG9v bHMvUGFydGljbGVzVG9MZXZlbFNldC5oCitAQCAtNjIsMTkgKzYyLDIzIEBACisgI2lmbmRlZiBP UEVOVkRCX1RPT0xTX1BBUlRJQ0xFU19UT19MRVZFTFNFVF9IQVNfQkVFTl9JTkNMVURFRAorICNk ZWZpbmUgT1BFTlZEQl9UT09MU19QQVJUSUNMRVNfVE9fTEVWRUxTRVRfSEFTX0JFRU5fSU5DTFVE RUQKKyAKKy0jaW5jbHVkZSA8dGJiL3BhcmFsbGVsX3JlZHVjZS5oPgorLSNpbmNsdWRlIDx0YmIv YmxvY2tlZF9yYW5nZS5oPgorLSNpbmNsdWRlIDxvcGVudmRiL1R5cGVzLmg+CistI2luY2x1ZGUg PG9wZW52ZGIvR3JpZC5oPgorLSNpbmNsdWRlIDxvcGVudmRiL21hdGgvTWF0aC5oPgorLSNpbmNs dWRlIDxvcGVudmRiL21hdGgvVHJhbnNmb3JtLmg+CistI2luY2x1ZGUgPG9wZW52ZGIvdHJlZS9M ZWFmTWFuYWdlci5oPgorLSNpbmNsdWRlIDxvcGVudmRiL3V0aWwvbG9nZ2luZy5oPgorLSNpbmNs dWRlIDxvcGVudmRiL3V0aWwvTnVsbEludGVycnVwdGVyLmg+CisrI2luY2x1ZGUgIm9wZW52ZGIv VHlwZXMuaCIKKysjaW5jbHVkZSAib3BlbnZkYi9HcmlkLmgiCisrI2luY2x1ZGUgIm9wZW52ZGIv bWF0aC9NYXRoLmgiCisrI2luY2x1ZGUgIm9wZW52ZGIvbWF0aC9UcmFuc2Zvcm0uaCIKKysjaW5j bHVkZSAib3BlbnZkYi90cmVlL0xlYWZNYW5hZ2VyLmgiCisrI2luY2x1ZGUgIm9wZW52ZGIvdXRp bC9sb2dnaW5nLmgiCisrI2luY2x1ZGUgIm9wZW52ZGIvdXRpbC9OdWxsSW50ZXJydXB0ZXIuaCIK KysjaW5jbHVkZSAib3BlbnZkYi90aHJlYWQvVGhyZWFkaW5nLmgiCisrCisgI2luY2x1ZGUgIkNv bXBvc2l0ZS5oIiAvLyBmb3IgY3NnVW5pb24oKQorICNpbmNsdWRlICJQb2ludFBhcnRpdGlvbmVy LmgiCisgI2luY2x1ZGUgIlBydW5lLmgiCisgI2luY2x1ZGUgIlNpZ25lZEZsb29kRmlsbC5oIgor KworKyNpbmNsdWRlIDx0YmIvcGFyYWxsZWxfcmVkdWNlLmg+CisrI2luY2x1ZGUgPHRiYi9ibG9j a2VkX3JhbmdlLmg+CisrCisgI2luY2x1ZGUgPGZ1bmN0aW9uYWw+CisgI2luY2x1ZGUgPGlvc3Ry ZWFtPgorICNpbmNsdWRlIDx0eXBlX3RyYWl0cz4KK0BAIC03MzgsNyArNzQyLDcgQEAgc3RydWN0 IFBhcnRpY2xlc1RvTGV2ZWxTZXQ8U2RmR3JpZFQsIEF0dHJpYnV0ZVQsIEludGVycnVwdGVyVD46 OlJhc3RlcgorICAgICAgICAgZm9yIChDb29yZCBjID0gbG87IGMueCgpIDw9IGhpLngoKTsgKytj LngoKSkgeworICAgICAgICAgICAgIC8vb25seSBjaGVjayBpbnRlcnJ1cHRlciBldmVyeSAzMid0 aCBzY2FuIGluIHgKKyAgICAgICAgICAgICBpZiAoIShjb3VudCsrICYgKCgxPDw1KS0xKSkgJiYg dXRpbDo6d2FzSW50ZXJydXB0ZWQobVBhcmVudC5tSW50ZXJydXB0ZXIpKSB7CistICAgICAgICAg ICAgICAgIHRiYjo6dGFzazo6c2VsZigpLmNhbmNlbF9ncm91cF9leGVjdXRpb24oKTsKKysgICAg ICAgICAgICAgICAgdGhyZWFkOjpjYW5jZWxHcm91cEV4ZWN1dGlvbigpOworICAgICAgICAgICAg ICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgfQorICAgICAgICAgICAgIGNvbnN0IFJl YWwgeDIgPSBtYXRoOjpQb3cyKGMueCgpIC0gUFswXSk7CitAQCAtODA0LDcgKzgwOCw3IEBAIHN0 cnVjdCBQYXJ0aWNsZXNUb0xldmVsU2V0PFNkZkdyaWRULCBBdHRyaWJ1dGVULCBJbnRlcnJ1cHRl clQ+OjpSYXN0ZXIKKyAgICAgICAgIC8vIERlbnNlbHkgZmlsbCB0aGUgcmVtYWluaW5nIHJlZ2lv bnMuCisgICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIGJib3g6IHBhZGRpbmcpIHsKKyAgICAgICAg ICAgICBpZiAodXRpbDo6d2FzSW50ZXJydXB0ZWQobVBhcmVudC5tSW50ZXJydXB0ZXIpKSB7Cist ICAgICAgICAgICAgICAgIHRiYjo6dGFzazo6c2VsZigpLmNhbmNlbF9ncm91cF9leGVjdXRpb24o KTsKKysgICAgICAgICAgICAgICAgdGhyZWFkOjpjYW5jZWxHcm91cEV4ZWN1dGlvbigpOworICAg ICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgfQorICAgICAgICAgICAg IGNvbnN0IENvb3JkICZibWluID0gYmJveC5taW4oKSwgJmJtYXggPSBiYm94Lm1heCgpOworZGlm ZiAtLWdpdCBhL29wZW52ZGIvb3BlbnZkYi90b29scy9Qb2ludEFkdmVjdC5oIGIvb3BlbnZkYi9v cGVudmRiL3Rvb2xzL1BvaW50QWR2ZWN0LmgKK2luZGV4IDEyYjExNzdhZC4uZTQ4N2JmYjNlIDEw MDY0NAorLS0tIGEvb3BlbnZkYi9vcGVudmRiL3Rvb2xzL1BvaW50QWR2ZWN0LmgKKysrKyBiL29w ZW52ZGIvb3BlbnZkYi90b29scy9Qb2ludEFkdmVjdC5oCitAQCAtMTAsMTYgKzEwLDE5IEBACisg I2lmbmRlZiBPUEVOVkRCX1RPT0xTX1BPSU5UX0FEVkVDVF9IQVNfQkVFTl9JTkNMVURFRAorICNk ZWZpbmUgT1BFTlZEQl9UT09MU19QT0lOVF9BRFZFQ1RfSEFTX0JFRU5fSU5DTFVERUQKKyAKKy0j aW5jbHVkZSA8b3BlbnZkYi9vcGVudmRiLmg+CistI2luY2x1ZGUgPG9wZW52ZGIvbWF0aC9NYXRo Lmg+ICAgICAgICAgICAgIC8vIG1pbgorLSNpbmNsdWRlIDxvcGVudmRiL1R5cGVzLmg+ICAgICAg ICAgICAgICAgICAvLyBWZWMzIHR5cGVzIGFuZCB2ZXJzaW9uIG51bWJlcgorLSNpbmNsdWRlIDxv cGVudmRiL0dyaWQuaD4gICAgICAgICAgICAgICAgICAvLyBncmlkCistI2luY2x1ZGUgPG9wZW52 ZGIvdXRpbC9OdWxsSW50ZXJydXB0ZXIuaD4KKysjaW5jbHVkZSAib3BlbnZkYi9vcGVudmRiLmgi CisrI2luY2x1ZGUgIm9wZW52ZGIvVHlwZXMuaCIgICAgICAgICAgICAgICAgIC8vIFZlYzMgdHlw ZXMgYW5kIHZlcnNpb24gbnVtYmVyCisrI2luY2x1ZGUgIm9wZW52ZGIvR3JpZC5oIiAgICAgICAg ICAgICAgICAgIC8vIGdyaWQKKysjaW5jbHVkZSAib3BlbnZkYi9tYXRoL01hdGguaCIgICAgICAg ICAgICAgLy8gbWluCisrI2luY2x1ZGUgIm9wZW52ZGIvdXRpbC9OdWxsSW50ZXJydXB0ZXIuaCIK KysjaW5jbHVkZSAib3BlbnZkYi90aHJlYWQvVGhyZWFkaW5nLmgiCisgI2luY2x1ZGUgIkludGVy cG9sYXRpb24uaCIgICAgICAgICAgICAgICAgIC8vIHNhbXBsaW5nCisgI2luY2x1ZGUgIlZlbG9j aXR5RmllbGRzLmgiICAgICAgICAgICAgICAgIC8vIFZlbG9jaXR5SW50ZWdyYXRvcgorKworICNp bmNsdWRlIDx0YmIvYmxvY2tlZF9yYW5nZS5oPiAgICAgICAgICAgICAvLyB0aHJlYWRpbmcKKyAj aW5jbHVkZSA8dGJiL3BhcmFsbGVsX2Zvci5oPiAgICAgICAgICAgICAgLy8gdGhyZWFkaW5nCisg I2luY2x1ZGUgPHRiYi90YXNrLmg+ICAgICAgICAgICAgICAgICAgICAgIC8vIGZvciBjYW5jZWwK KysKKyAjaW5jbHVkZSA8dmVjdG9yPgorIAorIAorQEAgLTE2Nyw3ICsxNzAsNyBAQCBjbGFzcyBQ b2ludEFkdmVjdAorICAgICB2b2lkIG9wZXJhdG9yKCkgKGNvbnN0IHRiYjo6YmxvY2tlZF9yYW5n ZTxzaXplX3Q+ICZyYW5nZSkgY29uc3QKKyAgICAgeworICAgICAgICAgaWYgKG1JbnRlcnJ1cHRl ciAmJiBtSW50ZXJydXB0ZXItPndhc0ludGVycnVwdGVkKCkpIHsKKy0gICAgICAgICAgICB0YmI6 OnRhc2s6OnNlbGYoKS5jYW5jZWxfZ3JvdXBfZXhlY3V0aW9uKCk7CisrICAgICAgICAgICAgdGhy ZWFkOjpjYW5jZWxHcm91cEV4ZWN1dGlvbigpOworICAgICAgICAgfQorIAorICAgICAgICAgVmVs b2NpdHlGaWVsZEludGVncmF0b3IgIHZlbEZpZWxkKCptVmVsR3JpZCk7CitAQCAtMzA3LDcgKzMx MCw3IEBAIGNsYXNzIENvbnN0cmFpbmVkUG9pbnRBZHZlY3QKKyAgICAgdm9pZCBvcGVyYXRvcigp IChjb25zdCB0YmI6OmJsb2NrZWRfcmFuZ2U8c2l6ZV90PiAmcmFuZ2UpIGNvbnN0CisgICAgIHsK KyAgICAgICAgIGlmIChtSW50ZXJydXB0ZXIgJiYgbUludGVycnVwdGVyLT53YXNJbnRlcnJ1cHRl ZCgpKSB7CistICAgICAgICAgICAgdGJiOjp0YXNrOjpzZWxmKCkuY2FuY2VsX2dyb3VwX2V4ZWN1 dGlvbigpOworKyAgICAgICAgICAgIHRocmVhZDo6Y2FuY2VsR3JvdXBFeGVjdXRpb24oKTsKKyAg ICAgICAgIH0KKyAKKyAgICAgICAgIFZlbG9jaXR5SW50ZWdyYXRvclR5cGUgdmVsRmllbGQoKm1W ZWxHcmlkKTsKK2RpZmYgLS1naXQgYS9vcGVudmRiL29wZW52ZGIvdG9vbHMvUG9pbnRJbmRleEdy aWQuaCBiL29wZW52ZGIvb3BlbnZkYi90b29scy9Qb2ludEluZGV4R3JpZC5oCitpbmRleCBlOWVi Zjk2ZjcuLmIyZTM3OGE3OSAxMDA2NDQKKy0tLSBhL29wZW52ZGIvb3BlbnZkYi90b29scy9Qb2lu dEluZGV4R3JpZC5oCisrKysgYi9vcGVudmRiL29wZW52ZGIvdG9vbHMvUG9pbnRJbmRleEdyaWQu aAorQEAgLTE2LDYgKzE2LDcgQEAKKyAjaWZuZGVmIE9QRU5WREJfVE9PTFNfUE9JTlRfSU5ERVhf R1JJRF9IQVNfQkVFTl9JTkNMVURFRAorICNkZWZpbmUgT1BFTlZEQl9UT09MU19QT0lOVF9JTkRF WF9HUklEX0hBU19CRUVOX0lOQ0xVREVECisgCisrI2luY2x1ZGUgIm9wZW52ZGIvdGhyZWFkL1Ro cmVhZGluZy5oIgorICNpbmNsdWRlICJQb2ludFBhcnRpdGlvbmVyLmgiCisgCisgI2luY2x1ZGUg PG9wZW52ZGIvdmVyc2lvbi5oPgorQEAgLTM1NSw3ICszNTYsNyBAQCBzdHJ1Y3QgVmFsaWRQYXJ0 aXRpb25pbmdPcAorICAgICB2b2lkIG9wZXJhdG9yKCkoTGVhZlQgJmxlYWYsIHNpemVfdCAvKmxl YWZJbmRleCovKSBjb25zdAorICAgICB7CisgICAgICAgICBpZiAoKCptSGFzQ2hhbmdlZCkpIHsK Ky0gICAgICAgICAgICB0YmI6OnRhc2s6OnNlbGYoKS5jYW5jZWxfZ3JvdXBfZXhlY3V0aW9uKCk7 CisrICAgICAgICAgICAgdGhyZWFkOjpjYW5jZWxHcm91cEV4ZWN1dGlvbigpOworICAgICAgICAg ICAgIHJldHVybjsKKyAgICAgICAgIH0KKyAKK2RpZmYgLS1naXQgYS9vcGVudmRiL29wZW52ZGIv dG9vbHMvUG9pbnRQYXJ0aXRpb25lci5oIGIvb3BlbnZkYi9vcGVudmRiL3Rvb2xzL1BvaW50UGFy dGl0aW9uZXIuaAoraW5kZXggY2NmNTBhYjA1Li5mN2Y2ZmMxM2QgMTAwNjQ0CistLS0gYS9vcGVu dmRiL29wZW52ZGIvdG9vbHMvUG9pbnRQYXJ0aXRpb25lci5oCisrKysgYi9vcGVudmRiL29wZW52 ZGIvdG9vbHMvUG9pbnRQYXJ0aXRpb25lci5oCitAQCAtMjMsNyArMjMsNyBAQAorIAorICNpbmNs dWRlIDx0YmIvYmxvY2tlZF9yYW5nZS5oPgorICNpbmNsdWRlIDx0YmIvcGFyYWxsZWxfZm9yLmg+ CistI2luY2x1ZGUgPHRiYi90YXNrX3NjaGVkdWxlcl9pbml0Lmg+CisrI2luY2x1ZGUgPHRiYi90 YXNrX2FyZW5hLmg+CisgCisgI2luY2x1ZGUgPGFsZ29yaXRobT4KKyAjaW5jbHVkZSA8Y21hdGg+ IC8vIGZvciBzdGQ6OmlzZmluaXRlKCkKK0BAIC03NjQsNyArNzY0LDcgQEAgaW5saW5lIHZvaWQg YmluQW5kU2VnbWVudCgKKyAgICAgdXNpbmcgSW5kZXhQYWlyTGlzdE1hcCA9IHN0ZDo6bWFwPENv b3JkLCBJbmRleFBhaXJMaXN0UHRyPjsKKyAgICAgdXNpbmcgSW5kZXhQYWlyTGlzdE1hcFB0ciA9 IHN0ZDo6c2hhcmVkX3B0cjxJbmRleFBhaXJMaXN0TWFwPjsKKyAKKy0gICAgc2l6ZV90IG51bVRh c2tzID0gMSwgbnVtVGhyZWFkcyA9IHNpemVfdCh0YmI6OnRhc2tfc2NoZWR1bGVyX2luaXQ6OmRl ZmF1bHRfbnVtX3RocmVhZHMoKSk7CisrICAgIHNpemVfdCBudW1UYXNrcyA9IDEsIG51bVRocmVh ZHMgPSBzaXplX3QodGJiOjp0aGlzX3Rhc2tfYXJlbmE6Om1heF9jb25jdXJyZW5jeSgpKTsKKyAg ICAgaWYgKHBvaW50cy5zaXplKCkgPiAobnVtVGhyZWFkcyAqIDIpKSBudW1UYXNrcyA9IG51bVRo cmVhZHMgKiAyOworICAgICBlbHNlIGlmIChwb2ludHMuc2l6ZSgpID4gbnVtVGhyZWFkcykgbnVt VGFza3MgPSBudW1UaHJlYWRzOworIAorZGlmZiAtLWdpdCBhL29wZW52ZGIvb3BlbnZkYi90b29s cy9Qb2ludHNUb01hc2suaCBiL29wZW52ZGIvb3BlbnZkYi90b29scy9Qb2ludHNUb01hc2suaAor aW5kZXggNTkyYWI3YTE1Li44YTI3NmZiMDQgMTAwNjQ0CistLS0gYS9vcGVudmRiL29wZW52ZGIv dG9vbHMvUG9pbnRzVG9NYXNrLmgKKysrKyBiL29wZW52ZGIvb3BlbnZkYi90b29scy9Qb2ludHNU b01hc2suaAorQEAgLTQ2LDE0ICs0NiwxOCBAQAorICNpZm5kZWYgT1BFTlZEQl9UT09MU19QT0lO VFNUT01BU0tfSEFTX0JFRU5fSU5DTFVERUQKKyAjZGVmaW5lIE9QRU5WREJfVE9PTFNfUE9JTlRT VE9NQVNLX0hBU19CRUVOX0lOQ0xVREVECisgCisrCisrI2luY2x1ZGUgIm9wZW52ZGIvb3BlbnZk Yi5oIiAvLyBmb3IgTWFza0dyaWQKKysjaW5jbHVkZSAib3BlbnZkYi9HcmlkLmgiCisrI2luY2x1 ZGUgIm9wZW52ZGIvVHlwZXMuaCIKKysjaW5jbHVkZSAib3BlbnZkYi91dGlsL051bGxJbnRlcnJ1 cHRlci5oIgorKyNpbmNsdWRlICJvcGVudmRiL3RocmVhZC9UaHJlYWRpbmcuaCIKKysKKyAjaW5j bHVkZSA8dGJiL2VudW1lcmFibGVfdGhyZWFkX3NwZWNpZmljLmg+CisgI2luY2x1ZGUgPHRiYi9w YXJhbGxlbF9mb3IuaD4KKyAjaW5jbHVkZSA8dGJiL3BhcmFsbGVsX3JlZHVjZS5oPgorICNpbmNs dWRlIDx0YmIvYmxvY2tlZF9yYW5nZS5oPgorLSNpbmNsdWRlIDxvcGVudmRiL29wZW52ZGIuaD4g Ly8gZm9yIE1hc2tHcmlkCistI2luY2x1ZGUgPG9wZW52ZGIvR3JpZC5oPgorLSNpbmNsdWRlIDxv cGVudmRiL1R5cGVzLmg+CistI2luY2x1ZGUgPG9wZW52ZGIvdXRpbC9OdWxsSW50ZXJydXB0ZXIu aD4KKysKKyAjaW5jbHVkZSA8dmVjdG9yPgorIAorIAorQEAgLTE1MCw3ICsxNTQsNyBAQCBjbGFz cyBQb2ludHNUb01hc2sKKyAgICAgYm9vbCBpbnRlcnJ1cHQoKSBjb25zdAorICAgICB7CisgICAg ICAgICBpZiAobUludGVycnVwdGVyICYmIHV0aWw6Ondhc0ludGVycnVwdGVkKG1JbnRlcnJ1cHRl cikpIHsKKy0gICAgICAgICAgICB0YmI6OnRhc2s6OnNlbGYoKS5jYW5jZWxfZ3JvdXBfZXhlY3V0 aW9uKCk7CisrICAgICAgICAgICAgdGhyZWFkOjpjYW5jZWxHcm91cEV4ZWN1dGlvbigpOworICAg ICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgfQorICAgICAgICAgcmV0dXJuIGZhbHNl OworZGlmZiAtLWdpdCBhL29wZW52ZGIvb3BlbnZkYi90b29scy9Wb2x1bWVBZHZlY3QuaCBiL29w ZW52ZGIvb3BlbnZkYi90b29scy9Wb2x1bWVBZHZlY3QuaAoraW5kZXggZTdlZWM3NDBlLi5mMzhl YWE5YzIgMTAwNjQ0CistLS0gYS9vcGVudmRiL29wZW52ZGIvdG9vbHMvVm9sdW1lQWR2ZWN0LmgK KysrKyBiL29wZW52ZGIvb3BlbnZkYi90b29scy9Wb2x1bWVBZHZlY3QuaAorQEAgLTEzLDE1ICsx MywxOCBAQAorICNpZm5kZWYgT1BFTlZEQl9UT09MU19WT0xVTUVfQURWRUNUX0hBU19CRUVOX0lO Q0xVREVECisgI2RlZmluZSBPUEVOVkRCX1RPT0xTX1ZPTFVNRV9BRFZFQ1RfSEFTX0JFRU5fSU5D TFVERUQKKyAKKy0jaW5jbHVkZSA8dGJiL3BhcmFsbGVsX2Zvci5oPgorLSNpbmNsdWRlIDxvcGVu dmRiL1R5cGVzLmg+CistI2luY2x1ZGUgPG9wZW52ZGIvbWF0aC9NYXRoLmg+CistI2luY2x1ZGUg PG9wZW52ZGIvdXRpbC9OdWxsSW50ZXJydXB0ZXIuaD4KKysjaW5jbHVkZSAib3BlbnZkYi9UeXBl cy5oIgorKyNpbmNsdWRlICJvcGVudmRiL21hdGgvTWF0aC5oIgorKyNpbmNsdWRlICJvcGVudmRi L3V0aWwvTnVsbEludGVycnVwdGVyLmgiCisrI2luY2x1ZGUgIm9wZW52ZGIvdGhyZWFkL1RocmVh ZGluZy5oIgorICNpbmNsdWRlICJJbnRlcnBvbGF0aW9uLmgiLy8gZm9yIFNhbXBsZXIKKyAjaW5j bHVkZSAiVmVsb2NpdHlGaWVsZHMuaCIgLy8gZm9yIFZlbG9jaXR5SW50ZWdyYXRvcgorICNpbmNs dWRlICJNb3JwaG9sb2d5LmgiLy9mb3IgZGlsYXRlQWN0aXZlVmFsdWVzCisgI2luY2x1ZGUgIlBy dW5lLmgiLy8gZm9yIHBydW5lCisgI2luY2x1ZGUgIlN0YXRpc3RpY3MuaCIgLy8gZm9yIGV4dHJl bWEKKysKKysjaW5jbHVkZSA8dGJiL3BhcmFsbGVsX2Zvci5oPgorKworICNpbmNsdWRlIDxmdW5j dGlvbmFsPgorIAorIAorQEAgLTI5NCw3ICsyOTcsNyBAQCBjbGFzcyBWb2x1bWVBZHZlY3Rpb24K KyAgICAgYm9vbCBpbnRlcnJ1cHQoKSBjb25zdAorICAgICB7CisgICAgICAgICBpZiAobUludGVy cnVwdGVyICYmIHV0aWw6Ondhc0ludGVycnVwdGVkKG1JbnRlcnJ1cHRlcikpIHsKKy0gICAgICAg ICAgICB0YmI6OnRhc2s6OnNlbGYoKS5jYW5jZWxfZ3JvdXBfZXhlY3V0aW9uKCk7CisrICAgICAg ICAgICAgdGhyZWFkOjpjYW5jZWxHcm91cEV4ZWN1dGlvbigpOworICAgICAgICAgICAgIHJldHVy biB0cnVlOworICAgICAgICAgfQorICAgICAgICAgcmV0dXJuIGZhbHNlOworZGlmZiAtLWdpdCBh L29wZW52ZGIvb3BlbnZkYi90b29scy9Wb2x1bWVUb01lc2guaCBiL29wZW52ZGIvb3BlbnZkYi90 b29scy9Wb2x1bWVUb01lc2guaAoraW5kZXggYTgzNGRkM2IzLi5hNDQ2ZjgwNmEgMTAwNjQ0Cist LS0gYS9vcGVudmRiL29wZW52ZGIvdG9vbHMvVm9sdW1lVG9NZXNoLmgKKysrKyBiL29wZW52ZGIv b3BlbnZkYi90b29scy9Wb2x1bWVUb01lc2guaAorQEAgLTE4LDcgKzE4LDcgQEAKKyAjaW5jbHVk ZSA8dGJiL2Jsb2NrZWRfcmFuZ2UuaD4KKyAjaW5jbHVkZSA8dGJiL3BhcmFsbGVsX2Zvci5oPgor ICNpbmNsdWRlIDx0YmIvcGFyYWxsZWxfcmVkdWNlLmg+CistI2luY2x1ZGUgPHRiYi90YXNrX3Nj aGVkdWxlcl9pbml0Lmg+CisrI2luY2x1ZGUgPHRiYi90YXNrX2FyZW5hLmg+CisgCisgI2luY2x1 ZGUgPGNtYXRoPiAvLyBmb3Igc3RkOjppc2Zpbml0ZSgpCisgI2luY2x1ZGUgPG1hcD4KK0BAIC0z ODgsNyArMzg4LDcgQEAgaW5saW5lIHZvaWQKKyBmaWxsQXJyYXkoVmFsdWVUeXBlKiBhcnJheSwg Y29uc3QgVmFsdWVUeXBlJiB2YWwsIGNvbnN0IHNpemVfdCBsZW5ndGgpCisgeworICAgICBjb25z dCBhdXRvIGdyYWluU2l6ZSA9IHN0ZDo6bWF4PHNpemVfdD4oCistICAgICAgICBsZW5ndGggLyB0 YmI6OnRhc2tfc2NoZWR1bGVyX2luaXQ6OmRlZmF1bHRfbnVtX3RocmVhZHMoKSwgMTAyNCk7Cisr ICAgICAgICBsZW5ndGggLyB0YmI6OnRoaXNfdGFza19hcmVuYTo6bWF4X2NvbmN1cnJlbmN5KCks IDEwMjQpOworICAgICBjb25zdCB0YmI6OmJsb2NrZWRfcmFuZ2U8c2l6ZV90PiByYW5nZSgwLCBs ZW5ndGgsIGdyYWluU2l6ZSk7CisgICAgIHRiYjo6cGFyYWxsZWxfZm9yKHJhbmdlLCBGaWxsQXJy YXk8VmFsdWVUeXBlPihhcnJheSwgdmFsKSwgdGJiOjpzaW1wbGVfcGFydGl0aW9uZXIoKSk7Cisg fQorZGlmZiAtLWdpdCBhL29wZW52ZGIvb3BlbnZkYi91bml0dGVzdC9UZXN0Q29vcmQuY2MgYi9v cGVudmRiL29wZW52ZGIvdW5pdHRlc3QvVGVzdENvb3JkLmNjCitpbmRleCBiZTFjMjRjZWQuLjE0 ODY5MDA0MSAxMDA2NDQKKy0tLSBhL29wZW52ZGIvb3BlbnZkYi91bml0dGVzdC9UZXN0Q29vcmQu Y2MKKysrKyBiL29wZW52ZGIvb3BlbnZkYi91bml0dGVzdC9UZXN0Q29vcmQuY2MKK0BAIC0yLDkg KzIsOSBAQAorIC8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wCisgCisgI2luY2x1 ZGUgPG9wZW52ZGIvVHlwZXMuaD4KKysjaW5jbHVkZSA8b3BlbnZkYi9tYXRoL0Nvb3JkLmg+Cisg CisgI2luY2x1ZGUgPGd0ZXN0L2d0ZXN0Lmg+CistI2luY2x1ZGUgPHRiYi90YmJfc3RkZGVmLmg+ IC8vIGZvciB0YmI6OnNwbGl0CisgCisgI2luY2x1ZGUgPHVub3JkZXJlZF9tYXA+CisgI2luY2x1 ZGUgPHNzdHJlYW0+CitkaWZmIC0tZ2l0IGEvb3BlbnZkYi9vcGVudmRiL3VuaXR0ZXN0L1Rlc3RG aWxlLmNjIGIvb3BlbnZkYi9vcGVudmRiL3VuaXR0ZXN0L1Rlc3RGaWxlLmNjCitpbmRleCA4MDc0 MTY2ZDIuLjA1MzQ0OGYzMCAxMDA2NDQKKy0tLSBhL29wZW52ZGIvb3BlbnZkYi91bml0dGVzdC9U ZXN0RmlsZS5jYworKysrIGIvb3BlbnZkYi9vcGVudmRiL3VuaXR0ZXN0L1Rlc3RGaWxlLmNjCitA QCAtMTMsOCArMTMsMTEgQEAKKyAjaW5jbHVkZSA8b3BlbnZkYi92ZXJzaW9uLmg+CisgI2luY2x1 ZGUgPG9wZW52ZGIvb3BlbnZkYi5oPgorICNpbmNsdWRlICJ1dGlsLmgiIC8vIGZvciB1bml0dGVz dF91dGlsOjptYWtlU3BoZXJlKCkKKysKKyAjaW5jbHVkZSA8Z3Rlc3QvZ3Rlc3QuaD4KKy0jaW5j bHVkZSA8dGJiL3RiYl90aHJlYWQuaD4gLy8gZm9yIHRiYjo6dGhpc190YmJfdGhyZWFkOjpzbGVl cCgpCisrCisrI2luY2x1ZGUgPHRocmVhZD4KKysjaW5jbHVkZSA8Y2hyb25vPgorICNpbmNsdWRl IDxhbGdvcml0aG0+IC8vIGZvciBzdGQ6OnNvcnQoKQorICNpbmNsdWRlIDxjc3RkaW8+IC8vIGZv ciByZW1vdmUoKSBhbmQgcmVuYW1lKCkKKyAjaW5jbHVkZSA8ZnN0cmVhbT4KK0BAIC0yMzQ1LDEy ICsyMzQ4LDE0IEBAIFRFU1RfRihUZXN0RmlsZSwgdGVzdEFzeW5jKQorICAgICAgICAgICAgIGhl bHBlci5pbnNlcnQoaWQsIGZpbGVuYW1lKTsKKyAgICAgICAgIH0KKyAKKy0gICAgICAgIHRiYjo6 dGlja19jb3VudCBzdGFydCA9IHRiYjo6dGlja19jb3VudDo6bm93KCk7CisrICAgICAgICBhdXRv IHN0YXJ0ID0gc3RkOjpjaHJvbm86OnN0ZWFkeV9jbG9jazo6bm93KCk7CisgICAgICAgICB3aGls ZSAoIWhlbHBlci5pZHMuZW1wdHkoKSkgeworLSAgICAgICAgICAgIGlmICgodGJiOjp0aWNrX2Nv dW50Ojpub3coKSAtIHN0YXJ0KS5zZWNvbmRzKCkgPiA2MCkgYnJlYWs7IC8vIHRpbWUgb3V0IGFm dGVyIDEgbWludXRlCisrICAgICAgICAgICAgYXV0byBkdXJhdGlvbiA9IHN0ZDo6Y2hyb25vOjpk dXJhdGlvbl9jYXN0PHN0ZDo6Y2hyb25vOjpzZWNvbmRzPigKKysgICAgICAgICAgICAgICAgc3Rk OjpjaHJvbm86OnN0ZWFkeV9jbG9jazo6bm93KCkgLSBzdGFydCk7CisrICAgICAgICAgICAgaWYg KHNpemVfdChkdXJhdGlvbi5jb3VudCgpKSA+IDYwKSAgYnJlYWs7IC8vIHRpbWUgb3V0IGFmdGVy IDEgbWludXRlCisgCisgICAgICAgICAgICAgLy8gV2FpdCBvbmUgc2Vjb25kIGZvciB0YXNrcyB0 byBjb21wbGV0ZS4KKy0gICAgICAgICAgICB0YmI6OnRoaXNfdGJiX3RocmVhZDo6c2xlZXAodGJi Ojp0aWNrX2NvdW50OjppbnRlcnZhbF90KDEuMC8qc2VjKi8pKTsKKysgICAgICAgICAgICBzdGQ6 OnRoaXNfdGhyZWFkOjpzbGVlcF9mb3Ioc3RkOjpjaHJvbm86OnNlY29uZHMoMSkpOworIAorICAg ICAgICAgICAgIC8vIFBvbGwgZWFjaCB0YXNrIGluIHRoZSBwZW5kaW5nIG1hcC4KKyAgICAgICAg ICAgICBzdGQ6OnNldDxpbzo6UXVldWU6OklkPiBpZHMgPSBoZWxwZXIuaWRzOyAvLyBpdGVyYXRl IG92ZXIgYSBjb3B5CitAQCAtMjM4MCw3ICsyMzg1LDcgQEAgVEVTVF9GKFRlc3RGaWxlLCB0ZXN0 QXN5bmMpCisgICAgICAgICAgICAgaGVscGVyLmluc2VydChpZCwgZmlsZW5hbWUpOworICAgICAg ICAgfQorICAgICAgICAgd2hpbGUgKCFxdWV1ZS5lbXB0eSgpKSB7CistICAgICAgICAgICAgdGJi Ojp0aGlzX3RiYl90aHJlYWQ6OnNsZWVwKHRiYjo6dGlja19jb3VudDo6aW50ZXJ2YWxfdCgxLjAv KnNlYyovKSk7CisrICAgICAgICAgICAgc3RkOjp0aGlzX3RocmVhZDo6c2xlZXBfZm9yKHN0ZDo6 Y2hyb25vOjpzZWNvbmRzKDEpKTsKKyAgICAgICAgIH0KKyAgICAgfQorICAgICB7CitAQCAtMjQw NSw3ICsyNDEwLDcgQEAgVEVTVF9GKFRlc3RGaWxlLCB0ZXN0QXN5bmMpCisgICAgICAgICBFWFBF Q1RfVEhST1cocXVldWUud3JpdGUoZ3JpZHMsIGlvOjpTdHJlYW0oZmlsZTIpKSwgb3BlbnZkYjo6 UnVudGltZUVycm9yKTsKKyAKKyAgICAgICAgIHdoaWxlICghcXVldWUuZW1wdHkoKSkgeworLSAg ICAgICAgICAgIHRiYjo6dGhpc190YmJfdGhyZWFkOjpzbGVlcCh0YmI6OnRpY2tfY291bnQ6Omlu dGVydmFsX3QoMS4wLypzZWMqLykpOworKyAgICAgICAgICAgIHN0ZDo6dGhpc190aHJlYWQ6OnNs ZWVwX2ZvcihzdGQ6OmNocm9ubzo6c2Vjb25kcygxKSk7CisgICAgICAgICB9CisgICAgIH0KKyB9 CitkaWZmIC0tZ2l0IGEvb3BlbnZkYi9vcGVudmRiL3VuaXR0ZXN0L1Rlc3RVdGlsLmNjIGIvb3Bl bnZkYi9vcGVudmRiL3VuaXR0ZXN0L1Rlc3RVdGlsLmNjCitpbmRleCA3MGU3ZGY1ZjcuLjZiMjIw NDc3MSAxMDA2NDQKKy0tLSBhL29wZW52ZGIvb3BlbnZkYi91bml0dGVzdC9UZXN0VXRpbC5jYwor KysrIGIvb3BlbnZkYi9vcGVudmRiL3VuaXR0ZXN0L1Rlc3RVdGlsLmNjCitAQCAtOCw3ICs4LDYg QEAKKyAKKyAjaW5jbHVkZSA8Z3Rlc3QvZ3Rlc3QuaD4KKyAKKy0jaW5jbHVkZSA8dGJiL3Rhc2tf c2NoZWR1bGVyX2luaXQuaD4KKyAjaW5jbHVkZSA8dGJiL2VudW1lcmFibGVfdGhyZWFkX3NwZWNp ZmljLmg+CisgI2luY2x1ZGUgPHRiYi9wYXJhbGxlbF9mb3IuaD4KKyAjaW5jbHVkZSA8dGJiL2Js b2NrZWRfcmFuZ2UuaD4KK2RpZmYgLS1naXQgYS9vcGVudmRiL29wZW52ZGIvdW5pdHRlc3QvVGVz dFZhbHVlQWNjZXNzb3IuY2MgYi9vcGVudmRiL29wZW52ZGIvdW5pdHRlc3QvVGVzdFZhbHVlQWNj ZXNzb3IuY2MKK2luZGV4IGZkMmRkNWQ4MS4uNWMxY2JiMThiIDEwMDY0NAorLS0tIGEvb3BlbnZk Yi9vcGVudmRiL3VuaXR0ZXN0L1Rlc3RWYWx1ZUFjY2Vzc29yLmNjCisrKysgYi9vcGVudmRiL29w ZW52ZGIvdW5pdHRlc3QvVGVzdFZhbHVlQWNjZXNzb3IuY2MKK0BAIC02LDYgKzYsNyBAQAorIAor ICNpbmNsdWRlIDxndGVzdC9ndGVzdC5oPgorICNpbmNsdWRlIDx0YmIvdGFzay5oPgorKyNpbmNs dWRlIDx0YmIvdGFza19ncm91cC5oPgorIAorICNpbmNsdWRlIDx0eXBlX3RyYWl0cz4KKyAKK0BA IC0zNzgsMjIgKzM3OSwyMSBAQCBURVNUX0YoVGVzdFZhbHVlQWNjZXNzb3IsIHRlc3RNdWx0aXRo cmVhZGVkQWNjZXNzb3IpCisgICAgIC8vdXNpbmcgQWNjZXNzb3JUID0gb3BlbnZkYjo6dHJlZTo6 VmFsdWVBY2Nlc3NvcjxUcmVlNFR5cGU+OworIAorICAgICAvLyBUYXNrIHRvIHBlcmZvcm0gbXVs dGlwbGUgcmVhZHMgdGhyb3VnaCBhIHNoYXJlZCBhY2Nlc3NvcgorLSAgICBzdHJ1Y3QgUmVhZFRh c2s6IHB1YmxpYyB0YmI6OnRhc2sgeworKyAgICBzdHJ1Y3QgUmVhZFRhc2sgeworICAgICAgICAg QWNjZXNzb3JUJiBhY2M7CisgICAgICAgICBSZWFkVGFzayhBY2Nlc3NvclQmIGMpOiBhY2MoYykg e30KKy0gICAgICAgIHRiYjo6dGFzayogZXhlY3V0ZSgpCisrICAgICAgICB2b2lkIGV4ZWN1dGUo KQorICAgICAgICAgeworICAgICAgICAgICAgIGZvciAoaW50IGkgPSAtTUFYX0NPT1JEOyBpIDwg TUFYX0NPT1JEOyArK2kpIHsKKyAgICAgICAgICAgICAgICAgQVNTRVJUX0RPVUJMRVNfRVhBQ1RM WV9FUVVBTChkb3VibGUoaSksIGFjYy5nZXRWYWx1ZShvcGVudmRiOjpDb29yZChpKSkpOworICAg ICAgICAgICAgIH0KKy0gICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgIH0KKyAg ICAgfTsKKyAgICAgLy8gVGFzayB0byBwZXJmb3JtIG11bHRpcGxlIHdyaXRlcyB0aHJvdWdoIGEg c2hhcmVkIGFjY2Vzc29yCistICAgIHN0cnVjdCBXcml0ZVRhc2s6IHB1YmxpYyB0YmI6OnRhc2sg eworKyAgICBzdHJ1Y3QgV3JpdGVUYXNrIHsKKyAgICAgICAgIEFjY2Vzc29yVCYgYWNjOworICAg ICAgICAgV3JpdGVUYXNrKEFjY2Vzc29yVCYgYyk6IGFjYyhjKSB7fQorLSAgICAgICAgdGJiOjp0 YXNrKiBleGVjdXRlKCkKKysgICAgICAgIHZvaWQgZXhlY3V0ZSgpCisgICAgICAgICB7CisgICAg ICAgICAgICAgZm9yIChpbnQgaSA9IC1NQVhfQ09PUkQ7IGkgPCBNQVhfQ09PUkQ7ICsraSkgewor ICAgICAgICAgICAgICAgICBmbG9hdCBmID0gYWNjLmdldFZhbHVlKG9wZW52ZGI6OkNvb3JkKGkp KTsKK0BAIC00MDEsMjYgKzQwMSwyMCBAQCBURVNUX0YoVGVzdFZhbHVlQWNjZXNzb3IsIHRlc3RN dWx0aXRocmVhZGVkQWNjZXNzb3IpCisgICAgICAgICAgICAgICAgIGFjYy5zZXRWYWx1ZShvcGVu dmRiOjpDb29yZChpKSwgZmxvYXQoaSkpOworICAgICAgICAgICAgICAgICBBU1NFUlRfRE9VQkxF U19FWEFDVExZX0VRVUFMKGZsb2F0KGkpLCBhY2MuZ2V0VmFsdWUob3BlbnZkYjo6Q29vcmQoaSkp KTsKKyAgICAgICAgICAgICB9CistICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAg ICB9CisgICAgIH07CisgICAgIC8vIFBhcmVudCB0YXNrIHRvIHNwYXduIG11bHRpcGxlIHBhcmFs bGVsIHJlYWQgYW5kIHdyaXRlIHRhc2tzCistICAgIHN0cnVjdCBSb290VGFzazogcHVibGljIHRi Yjo6dGFzayB7CisrICAgIHN0cnVjdCBSb290VGFzayB7CisgICAgICAgICBBY2Nlc3NvclQmIGFj YzsKKyAgICAgICAgIFJvb3RUYXNrKEFjY2Vzc29yVCYgYyk6IGFjYyhjKSB7fQorLSAgICAgICAg dGJiOjp0YXNrKiBleGVjdXRlKCkKKysgICAgICAgIHZvaWQgZXhlY3V0ZSgpCisgICAgICAgICB7 CistICAgICAgICAgICAgUmVhZFRhc2sqIHJbM107IFdyaXRlVGFzayogd1szXTsKKysgICAgICAg ICAgICB0YmI6OnRhc2tfZ3JvdXAgdGFza3M7CisgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7 IGkgPCAzOyArK2kpIHsKKy0gICAgICAgICAgICAgICAgcltpXSA9IG5ldyhhbGxvY2F0ZV9jaGls ZCgpKSBSZWFkVGFzayhhY2MpOworLSAgICAgICAgICAgICAgICB3W2ldID0gbmV3KGFsbG9jYXRl X2NoaWxkKCkpIFdyaXRlVGFzayhhY2MpOworKyAgICAgICAgICAgICAgICB0YXNrcy5ydW4oWyZd IHsgUmVhZFRhc2sgcihhY2MpOyByLmV4ZWN1dGUoKTsgfSk7CisrICAgICAgICAgICAgICAgIHRh c2tzLnJ1bihbJl0geyBXcml0ZVRhc2sgdyhhY2MpOyB3LmV4ZWN1dGUoKTsgfSk7CisgICAgICAg ICAgICAgfQorLSAgICAgICAgICAgIHNldF9yZWZfY291bnQoNiAvKmNoaWxkcmVuKi8gKyAxIC8q d2FpdCovKTsKKy0gICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IDM7ICsraSkgeworLSAg ICAgICAgICAgICAgICBzcGF3bigqcltpXSk7IHNwYXduKCp3W2ldKTsKKy0gICAgICAgICAgICB9 CistICAgICAgICAgICAgd2FpdF9mb3JfYWxsKCk7CistICAgICAgICAgICAgcmV0dXJuIG51bGxw dHI7CisrICAgICAgICAgICAgdGFza3Mud2FpdCgpOworICAgICAgICAgfQorICAgICB9OworIAor QEAgLTQzMiw4ICs0MjYsOCBAQCBURVNUX0YoVGVzdFZhbHVlQWNjZXNzb3IsIHRlc3RNdWx0aXRo cmVhZGVkQWNjZXNzb3IpCisgICAgIH0KKyAKKyAgICAgLy8gUnVuIG11bHRpcGxlIHJlYWQgYW5k IHdyaXRlIHRhc2tzIGluIHBhcmFsbGVsLgorLSAgICBSb290VGFzayYgcm9vdCA9ICpuZXcodGJi Ojp0YXNrOjphbGxvY2F0ZV9yb290KCkpIFJvb3RUYXNrKGFjYyk7CistICAgIHRiYjo6dGFzazo6 c3Bhd25fcm9vdF9hbmRfd2FpdChyb290KTsKKysgICAgUm9vdFRhc2sgcm9vdChhY2MpOworKyAg ICByb290LmV4ZWN1dGUoKTsKKyAKKyAjdW5kZWYgTUFYX0NPT1JECisgfQorZGlmZiAtLWdpdCBh L29wZW52ZGJfaG91ZGluaS9vcGVudmRiX2hvdWRpbmkvU09QX09wZW5WREJfUmFzdGVyaXplX1Bv aW50cy5jYyBiL29wZW52ZGJfaG91ZGluaS9vcGVudmRiX2hvdWRpbmkvU09QX09wZW5WREJfUmFz dGVyaXplX1BvaW50cy5jYworaW5kZXggMGUxYjRkODU1Li42ZDliYjUyOGIgMTAwNjQ0CistLS0g YS9vcGVudmRiX2hvdWRpbmkvb3BlbnZkYl9ob3VkaW5pL1NPUF9PcGVuVkRCX1Jhc3Rlcml6ZV9Q b2ludHMuY2MKKysrKyBiL29wZW52ZGJfaG91ZGluaS9vcGVudmRiX2hvdWRpbmkvU09QX09wZW5W REJfUmFzdGVyaXplX1BvaW50cy5jYworQEAgLTIwLDYgKzIwLDcgQEAKKyAjaW5jbHVkZSA8b3Bl bnZkYi90b29scy9HcmlkVHJhbnNmb3JtZXIuaD4KKyAjaW5jbHVkZSA8b3BlbnZkYi90b29scy9Q b2ludEluZGV4R3JpZC5oPgorICNpbmNsdWRlIDxvcGVudmRiL3Rvb2xzL1BydW5lLmg+CisrI2lu Y2x1ZGUgPG9wZW52ZGIvdGhyZWFkL1RocmVhZGluZy5oPgorIAorICNpbmNsdWRlIDxDSC9DSF9N YW5hZ2VyLmg+CisgI2luY2x1ZGUgPENWRVgvQ1ZFWF9Db250ZXh0Lmg+CitAQCAtNzg2LDcgKzc4 Nyw3IEBAIHN0cnVjdCBDb25zdHJ1Y3RDYW5kaWRhdGVWb3hlbE1hc2sKKyAgICAgICAgIGZvciAo c2l6ZV90IG4gPSByYW5nZS5iZWdpbigpLCBOID0gcmFuZ2UuZW5kKCk7IG4gIT0gTjsgKytuKSB7 CisgCisgICAgICAgICAgICAgaWYgKHRoaXMtPndhc0ludGVycnVwdGVkKCkpIHsKKy0gICAgICAg ICAgICAgICAgdGJiOjp0YXNrOjpzZWxmKCkuY2FuY2VsX2dyb3VwX2V4ZWN1dGlvbigpOworKyAg ICAgICAgICAgICAgICBvcGVudmRiOjp0aHJlYWQ6OmNhbmNlbEdyb3VwRXhlY3V0aW9uKCk7Cisg ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgIH0KKyAKK0BAIC0yMDkyLDcgKzIw OTMsNyBAQCBzdHJ1Y3QgUmFzdGVyaXplUG9pbnRzCisgICAgICAgICBmb3IgKHNpemVfdCBuID0g cmFuZ2UuYmVnaW4oKSwgTiA9IHJhbmdlLmVuZCgpOyBuICE9IE47ICsrbikgeworIAorICAgICAg ICAgICAgIGlmICh0aGlzLT53YXNJbnRlcnJ1cHRlZCgpKSB7CistICAgICAgICAgICAgICAgIHRi Yjo6dGFzazo6c2VsZigpLmNhbmNlbF9ncm91cF9leGVjdXRpb24oKTsKKysgICAgICAgICAgICAg ICAgb3BlbnZkYjo6dGhyZWFkOjpjYW5jZWxHcm91cEV4ZWN1dGlvbigpOworICAgICAgICAgICAg ICAgICBicmVhazsKKyAgICAgICAgICAgICB9CisgCitkaWZmIC0tZ2l0IGEvb3BlbnZkYl9ob3Vk aW5pL29wZW52ZGJfaG91ZGluaS9TT1BfT3BlblZEQl9TYW1wbGVfUG9pbnRzLmNjIGIvb3BlbnZk Yl9ob3VkaW5pL29wZW52ZGJfaG91ZGluaS9TT1BfT3BlblZEQl9TYW1wbGVfUG9pbnRzLmNjCitp bmRleCA3NTdmZGM4YzYuLmRiZWU3NGIzMiAxMDA2NDQKKy0tLSBhL29wZW52ZGJfaG91ZGluaS9v cGVudmRiX2hvdWRpbmkvU09QX09wZW5WREJfU2FtcGxlX1BvaW50cy5jYworKysrIGIvb3BlbnZk Yl9ob3VkaW5pL29wZW52ZGJfaG91ZGluaS9TT1BfT3BlblZEQl9TYW1wbGVfUG9pbnRzLmNjCitA QCAtMTYsMTMgKzE2LDExIEBACisgI2luY2x1ZGUgPG9wZW52ZGJfaG91ZGluaS9TT1BfTm9kZVZE Qi5oPgorIAorICNpbmNsdWRlIDxvcGVudmRiL3Rvb2xzL0ludGVycG9sYXRpb24uaD4gIC8vIGZv ciBib3ggc2FtcGxlcgorKyNpbmNsdWRlIDxvcGVudmRiL3RocmVhZC9UaHJlYWRpbmcuaD4KKyAj aW5jbHVkZSA8b3BlbnZkYi9wb2ludHMvUG9pbnRDb3VudC5oPgorICNpbmNsdWRlIDxvcGVudmRi L3BvaW50cy9Qb2ludFNhbXBsZS5oPgorICNpbmNsdWRlIDxvcGVudmRiL3BvaW50cy9JbmRleEZp bHRlci5oPiAgIC8vIGZvciBNdWx0aUdyb3VwRmlsdGVyCisgCistI2luY2x1ZGUgPHRiYi90aWNr X2NvdW50Lmg+ICAgICAgICAgICAgICAgICAvLyBmb3IgdGltaW5nCistI2luY2x1ZGUgPHRiYi90 YXNrLmg+ICAgICAgICAgICAgICAgICAgICAgICAvLyBmb3IgY2FuY2VsCistCisgI2luY2x1ZGUg PFVUL1VUX0ludGVycnVwdC5oPgorICNpbmNsdWRlIDxHQS9HQV9QYWdlSGFuZGxlLmg+CisgI2lu Y2x1ZGUgPEdBL0dBX1BhZ2VJdGVyYXRvci5oPgorQEAgLTM4LDYgKzM2LDcgQEAKKyAjaW5jbHVk ZSA8c3RkZXhjZXB0PgorICNpbmNsdWRlIDxzdHJpbmc+CisgI2luY2x1ZGUgPHZlY3Rvcj4KKysj aW5jbHVkZSA8Y2hyb25vPgorIAorIAorIAorQEAgLTMyNyw3ICszMjYsNyBAQCBjbGFzcyBQb2lu dFNhbXBsZXIKKyAgICAgeworIAorICAgICAgICAgaWYgKG1JbnRlcnJ1cHRlci0+d2FzSW50ZXJy dXB0ZWQoKSkgeworLSAgICAgICAgICAgIHRiYjo6dGFzazo6c2VsZigpLmNhbmNlbF9ncm91cF9l eGVjdXRpb24oKTsKKysgICAgICAgICAgICBvcGVudmRiOjp0aHJlYWQ6OmNhbmNlbEdyb3VwRXhl Y3V0aW9uKCk7CisgICAgICAgICB9CisgICAgICAgICBjb25zdCBHcmlkVHlwZSYgZ3JpZCA9IFVU dmRiR3JpZENhc3Q8R3JpZFR5cGU+KG1HcmlkKTsKKyAgICAgICAgIC8vIHRhc2sgbG9jYWwgZ3Jp ZCBhY2Nlc3NvcgorQEAgLTQ4MSw3ICs0ODAsNyBAQCBTT1BfT3BlblZEQl9TYW1wbGVfUG9pbnRz OjpDYWNoZTo6Y29va1ZEQlNvcChPUF9Db250ZXh0JiBjb250ZXh0KQorICAgICAgICAgaW50IG51 bVVubmFtZWRHcmlkcyA9IDA7CisgCisgICAgICAgICAvLyBzdGFydCB0aW1lCistICAgICAgICB0 YmI6OnRpY2tfY291bnQgdGltZV9zdGFydCA9IHRiYjo6dGlja19jb3VudDo6bm93KCk7CisrICAg ICAgICBhdXRvIHRpbWVfc3RhcnQgPSBzdGQ6OmNocm9ubzo6c3RlYWR5X2Nsb2NrOjpub3coKTsK KyAgICAgICAgIFVUX0F1dG9JbnRlcnJ1cHQgcHJvZ3Jlc3MoIlNhbXBsaW5nIGZyb20gVkRCIGdy aWRzIik7CisgCisgICAgICAgICBmb3IgKGh2ZGI6OlZkYlByaW1DSXRlcmF0b3IgaXQoYkdkcCwg Z3JvdXApOyBpdDsgKytpdCkgeworQEAgLTcwNiwxNSArNzA1LDE2IEBAIFNPUF9PcGVuVkRCX1Nh bXBsZV9Qb2ludHM6OkNhY2hlOjpjb29rVkRCU29wKE9QX0NvbnRleHQmIGNvbnRleHQpCisgICAg ICAgICAgICAgfQorICAgICAgICAgfQorIAorLSAgICAgICAgLy8gdGltaW5nOiBlbmQgdGltZQor LSAgICAgICAgdGJiOjp0aWNrX2NvdW50IHRpbWVfZW5kID0gdGJiOjp0aWNrX2NvdW50Ojpub3co KTsKKy0KKyAgICAgICAgIGlmICh2ZXJib3NlKSB7CisrICAgICAgICAgICAgLy8gdGltaW5nOiBl bmQgdGltZQorKyAgICAgICAgICAgIGF1dG8gZHVyYXRpb24gPSBzdGQ6OmNocm9ubzo6ZHVyYXRp b25fY2FzdDxzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzPigKKysgICAgICAgICAgICAgICAgc3Rk OjpjaHJvbm86OnN0ZWFkeV9jbG9jazo6bm93KCkgLSB0aW1lX3N0YXJ0KTsKKysgICAgICAgICAg ICBjb25zdCBkb3VibGUgc2Vjb25kcyA9IGRvdWJsZShkdXJhdGlvbi5jb3VudCgpKSAvIDEwMDAu MDsKKyAgICAgICAgICAgICBzdGQ6OmNvdXQgPDwgIlNhbXBsaW5nICIgPDwgblBvaW50cyArIG5W REJQb2ludHMgPDwgIiBwb2ludHMgaW4gIgorICAgICAgICAgICAgICAgICAgICAgICA8PCBudW1W ZWN0b3JHcmlkcyA8PCAiIHZlY3RvciBncmlkIiA8PCAobnVtVmVjdG9yR3JpZHMgPT0gMSA/ICIi IDogInMiKQorICAgICAgICAgICAgICAgICAgICAgICA8PCAiIGFuZCAiIDw8IG51bVNjYWxhckdy aWRzIDw8ICIgc2NhbGFyIGdyaWQiCisgICAgICAgICAgICAgICAgICAgICAgICAgICA8PCAobnVt U2NhbGFyR3JpZHMgPT0gMSA/ICIiIDogInMiKQorLSAgICAgICAgICAgICAgICAgICAgICA8PCAi IHRvb2sgIiA8PCAodGltZV9lbmQgLSB0aW1lX3N0YXJ0KS5zZWNvbmRzKCkgPDwgIiBzZWNvbmRz XG4gIgorKyAgICAgICAgICAgICAgICAgICAgICA8PCAiIHRvb2sgIiA8PCBzZWNvbmRzIDw8ICIg c2Vjb25kc1xuICIKKyAgICAgICAgICAgICAgICAgICAgICAgPDwgKHRocmVhZGVkID8gInRocmVh ZGVkIiA6ICJub24tdGhyZWFkZWQiKSA8PCBzdGQ6OmVuZGw7CisgICAgICAgICB9CisgCitkaWZm IC0tZ2l0IGEvb3BlbnZkYl9tYXlhL29wZW52ZGJfbWF5YS9PcGVuVkRCUGx1Z2luLmNjIGIvb3Bl bnZkYl9tYXlhL29wZW52ZGJfbWF5YS9PcGVuVkRCUGx1Z2luLmNjCitpbmRleCAzZDU1OWY4Y2Mu LmQ2M2VkMTU5MSAxMDA2NDQKKy0tLSBhL29wZW52ZGJfbWF5YS9vcGVudmRiX21heWEvT3BlblZE QlBsdWdpbi5jYworKysrIGIvb3BlbnZkYl9tYXlhL29wZW52ZGJfbWF5YS9PcGVuVkRCUGx1Z2lu LmNjCitAQCAtNDcsMTEgKzQ3LDggQEAgc3RydWN0IE5vZGVJbmZvIHsKKyAKKyB0eXBlZGVmIHN0 ZDo6dmVjdG9yPE5vZGVJbmZvPiBOb2RlTGlzdDsKKyAKKy10eXBlZGVmIHRiYjo6bXV0ZXggTXV0 ZXg7CistdHlwZWRlZiBNdXRleDo6c2NvcGVkX2xvY2sgTG9jazsKKy0KKyAvLyBEZWNsYXJlIHRo aXMgYXQgZmlsZSBzY29wZSB0byBlbnN1cmUgdGhyZWFkLXNhZmUgaW5pdGlhbGl6YXRpb24uCist TXV0ZXggc1JlZ2lzdHJ5TXV0ZXg7Cisrc3RkOjptdXRleCBzUmVnaXN0cnlNdXRleDsKKyAKKyBO b2RlTGlzdCAqIGdOb2RlcyA9IE5VTEw7CisgCitAQCAtNzAsNyArNjcsNyBAQCBOb2RlUmVnaXN0 cnk6Ok5vZGVSZWdpc3RyeShjb25zdCBNU3RyaW5nJiB0eXBlTmFtZSwgY29uc3QgTVR5cGVJZCYg dHlwZUlkLAorICAgICBub2RlLnR5cGUgICAgICAgICAgICAgICA9IHR5cGU7CisgICAgIG5vZGUu Y2xhc3NpZmljYXRpb24gICAgID0gY2xhc3NpZmljYXRpb247CisgCistICAgIExvY2sgbG9jayhz UmVnaXN0cnlNdXRleCk7CisrICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBsb2NrKHNS ZWdpc3RyeU11dGV4KTsKKyAKKyAgICAgaWYgKCFnTm9kZXMpIHsKKyAgICAgICAgIE9QRU5WREJf U1RBUlRfVEhSRUFEU0FGRV9TVEFUSUNfV1JJVEUKK0BAIC04NSw3ICs4Miw3IEBAIE5vZGVSZWdp c3RyeTo6Tm9kZVJlZ2lzdHJ5KGNvbnN0IE1TdHJpbmcmIHR5cGVOYW1lLCBjb25zdCBNVHlwZUlk JiB0eXBlSWQsCisgdm9pZAorIE5vZGVSZWdpc3RyeTo6cmVnaXN0ZXJOb2RlcyhNRm5QbHVnaW4m IHBsdWdpbiwgTVN0YXR1cyYgc3RhdHVzKQorIHsKKy0gICAgTG9jayBsb2NrKHNSZWdpc3RyeU11 dGV4KTsKKysgICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+IGxvY2soc1JlZ2lzdHJ5TXV0 ZXgpOworIAorICAgICBpZiAoZ05vZGVzKSB7CisgICAgICAgICBmb3IgKHNpemVfdCBuID0gMCwg TiA9IGdOb2Rlcy0+c2l6ZSgpOyBuIDwgTjsgKytuKSB7CitAQCAtMTA5LDcgKzEwNiw3IEBAIE5v ZGVSZWdpc3RyeTo6cmVnaXN0ZXJOb2RlcyhNRm5QbHVnaW4mIHBsdWdpbiwgTVN0YXR1cyYgc3Rh dHVzKQorIHZvaWQKKyBOb2RlUmVnaXN0cnk6OmRlcmVnaXN0ZXJOb2RlcyhNRm5QbHVnaW4mIHBs dWdpbiwgTVN0YXR1cyYgc3RhdHVzKQorIHsKKy0gICAgTG9jayBsb2NrKHNSZWdpc3RyeU11dGV4 KTsKKysgICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+IGxvY2soc1JlZ2lzdHJ5TXV0ZXgp OworIAorICAgICBpZiAoZ05vZGVzKSB7CisgICAgICAgICBmb3IgKHNpemVfdCBuID0gMCwgTiA9 IGdOb2Rlcy0+c2l6ZSgpOyBuIDwgTjsgKytuKSB7CitkaWZmIC0tZ2l0IGEvb3BlbnZkYl9tYXlh L29wZW52ZGJfbWF5YS9PcGVuVkRCVXRpbC5oIGIvb3BlbnZkYl9tYXlhL29wZW52ZGJfbWF5YS9P cGVuVkRCVXRpbC5oCitpbmRleCBiNThiZDZmMmMuLjZhMDRiMWVhZiAxMDA2NDQKKy0tLSBhL29w ZW52ZGJfbWF5YS9vcGVudmRiX21heWEvT3BlblZEQlV0aWwuaAorKysrIGIvb3BlbnZkYl9tYXlh L29wZW52ZGJfbWF5YS9PcGVuVkRCVXRpbC5oCitAQCAtMTQsOCArMTQsNyBAQAorICNpbmNsdWRl IDxvcGVudmRiL3RyZWUvTGVhZk1hbmFnZXIuaD4KKyAjaW5jbHVkZSA8b3BlbnZkYi90b29scy9W b2x1bWVUb01lc2guaD4KKyAjaW5jbHVkZSA8b3BlbnZkYi91dGlsL0Zvcm1hdHMuaD4gLy8gcHJp bnRCeXRlcworLQorLSNpbmNsdWRlIDx0YmIvdGlja19jb3VudC5oPgorKyNpbmNsdWRlIDxvcGVu dmRiL3RocmVhZC9UaHJlYWRpbmcuaD4KKyAKKyAjaW5jbHVkZSA8bWF5YS9NM2RWaWV3Lmg+Cisg I2luY2x1ZGUgPG1heWEvTVN0cmluZy5oPgorQEAgLTQwLDYgKzM5LDcgQEAKKyAjaW5jbHVkZSA8 c3RyaW5nPgorICNpbmNsdWRlIDx0eXBlX3RyYWl0cz4KKyAjaW5jbHVkZSA8dmVjdG9yPgorKyNp bmNsdWRlIDxjaHJvbm8+CisgCisgCisgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLworQEAgLTExNiwxMSArMTE2LDE1IEBAIGluc2VydEZyYW1lTnVtYmVyKHN0ZDo6c3Ry aW5nJiBzdHIsIGNvbnN0IE1UaW1lJiB0aW1lLCBpbnQgbnVtYmVyaW5nU2NoZW1lID0gMCk7Cisg Cisgc3RydWN0IFRpbWVyCisgeworLSAgICBUaW1lcigpIDogbVN0YW1wKHRiYjo6dGlja19jb3Vu dDo6bm93KCkpIHsgfQorKyAgICBUaW1lcigpIDogbVN0YW1wKHN0ZDo6Y2hyb25vOjpzdGVhZHlf Y2xvY2s6Om5vdygpKSB7IH0KKyAKKy0gICAgdm9pZCByZXNldCgpIHsgbVN0YW1wID0gdGJiOjp0 aWNrX2NvdW50Ojpub3coKTsgfQorKyAgICB2b2lkIHJlc2V0KCkgeyBtU3RhbXAgPSBzdGQ6OmNo cm9ubzo6c3RlYWR5X2Nsb2NrOjpub3coKTsgfQorIAorLSAgICBkb3VibGUgc2Vjb25kcygpIGNv bnN0IHsgcmV0dXJuICh0YmI6OnRpY2tfY291bnQ6Om5vdygpIC0gbVN0YW1wKS5zZWNvbmRzKCk7 IH0KKysgICAgZG91YmxlIHNlY29uZHMoKSBjb25zdCB7CisrICAgICAgICBhdXRvIGR1cmF0aW9u ID0gc3RkOjpjaHJvbm86OmR1cmF0aW9uX2Nhc3Q8c3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcz4o CisrICAgICAgICAgICAgc3RkOjpjaHJvbm86OnN0ZWFkeV9jbG9jazo6bm93KCkgLSBtU3RhbXAp OworKyAgICAgICAgcmV0dXJuIGRvdWJsZShkdXJhdGlvbi5jb3VudCgpKSAvIDEwMDAuMDsKKysg ICAgfQorIAorICAgICBzdGQ6OnN0cmluZyBlbGFwc2VkVGltZSgpIGNvbnN0IHsKKyAgICAgICAg IGRvdWJsZSBzZWMgPSBzZWNvbmRzKCk7CitAQCAtMTI4LDcgKzEzMiw3IEBAIHN0cnVjdCBUaW1l cgorICAgICB9CisgCisgcHJpdmF0ZToKKy0gICAgdGJiOjp0aWNrX2NvdW50IG1TdGFtcDsKKysg ICAgIHN0ZDo6Y2hyb25vOjp0aW1lX3BvaW50PHN0ZDo6Y2hyb25vOjpzdGVhZHlfY2xvY2s+IG1T dGFtcDsKKyB9OworIAorIAorZGlmZiAtLWdpdCBhL3BlbmRpbmdjaGFuZ2VzL3RiYjIwMjEudHh0 IGIvcGVuZGluZ2NoYW5nZXMvdGJiMjAyMS50eHQKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRl eCAwMDAwMDAwMDAuLjgxMDljMjU1MgorLS0tIC9kZXYvbnVsbAorKysrIGIvcGVuZGluZ2NoYW5n ZXMvdGJiMjAyMS50eHQKK0BAIC0wLDAgKzEsNiBAQAorK0ltcHJvdmVtZW50czoKKysgIC0gTW92 ZWQgZnJvbSB0aGUgZGVwcmVjYXRlZCBUQkIgdGFzayBzY2hlZHVsZXIgdG8gVEJCIGFyZW5hcy4g VmFyaW91cyBtZXRob2RzIG5vdyByZXNwZWN0IHRoZSBUQkIgYXJlbmEgc3RhdGUgdGhleSB3ZXJl IGludm9rZWQgZnJvbS4KKysgIC0gSW50cm9kdWNlZCBhIG5ldyB0aHJlYWQvVGhyZWFkaW5nLmgg aGVhZGVyIHRvIGNvbnNvbGlkYXRlIGNhbGxzIHRvIHRoaXJkLXBhcnR5IHRocmVhZGluZyBtZXRo b2RzLgorKworK0J1aWxkOgorKyAgLSBBZGRlZCBzdXBwb3J0IGZvciBUQkIgMjAyMS4KZGlmZiAt LWdpdCBhL3NyY3BrZ3Mvb3BlbnZkYi90ZW1wbGF0ZSBiL3NyY3BrZ3Mvb3BlbnZkYi90ZW1wbGF0 ZQppbmRleCA3MmZkZTViYzYzNzUuLmQ0MjBhM2VlNWY1ZCAxMDA2NDQKLS0tIGEvc3JjcGtncy9v cGVudmRiL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3Mvb3BlbnZkYi90ZW1wbGF0ZQpAQCAtMSwyNiAr MSwxOCBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnb3BlbnZkYicKIHBrZ25hbWU9b3BlbnZkYgot dmVyc2lvbj03LjAuMAordmVyc2lvbj04LjEuMAogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9Y21h a2UKIGNvbmZpZ3VyZV9hcmdzPSItRE9QRU5WREJfQlVJTERfVkRCX1ZJRVc9MSIKIGhvc3RtYWtl ZGVwZW5kcz0icGtnLWNvbmZpZyIKLW1ha2VkZXBlbmRzPSJib29zdC1kZXZlbCB0YmItZGV2ZWwg aWxtYmFzZS1kZXZlbCBsaWJvcGVuZXhyLWRldmVsIGMtYmxvc2MtZGV2ZWwgZ2xmdy1kZXZlbCIK K21ha2VkZXBlbmRzPSJib29zdC1kZXZlbCB0YmItZGV2ZWwgaWxtYmFzZS1kZXZlbCBsaWJvcGVu ZXhyLWRldmVsIGMtYmxvc2MtZGV2ZWwKKyBnbGZ3LWRldmVsIGplbWFsbG9jLWRldmVsIgogc2hv cnRfZGVzYz0iU3BhcnNlIHZvbHVtZSBkYXRhIHN0cnVjdHVyZSBhbmQgdG9vbHMiCiBtYWludGFp bmVyPSJPcnBoYW5lZCA8b3JwaGFuQHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iTVBMLTIuMCIK IGhvbWVwYWdlPSJodHRwczovL29wZW52ZGIub3JnIgogZGlzdGZpbGVzPSJodHRwczovL2dpdGh1 Yi5jb20vQWNhZGVteVNvZnR3YXJlRm91bmRhdGlvbi9vcGVudmRiL2FyY2hpdmUvdiR7dmVyc2lv bn0udGFyLmd6IgotY2hlY2tzdW09OTdiYzhhZTM1ZWY3Y2NiZjQ5YTRlMjVjYjczZThjMmVjY2Fl NmIyMzViYWM4NmYyMTUwNzA3ZWZjZDFlOTEwZAotCi1pZiBbICIkWEJQU19UQVJHRVRfTk9fQVRP TUlDOCIgXTsgdGhlbgotCW1ha2VkZXBlbmRzKz0iIGxpYmF0b21pYy1kZXZlbCIKLWZpCi0KLXBv c3RfcGF0Y2goKSB7Ci0JWyAiJFhCUFNfVEFSR0VUX05PX0FUT01JQzgiIF0gfHwgcmV0dXJuIDAK LQl2c2VkIC1pICdzLFpMSUI6OlpMSUIsWkxJQjo6WkxJQiBhdG9taWMsJyBvcGVudmRiL0NNYWtl TGlzdHMudHh0Ci19CitjaGVja3N1bT0zZTA5ZDQ3MzMxNDI5YmU3NDA5YTNhM2MyN2ZkZDNjMjk3 Zjk2ZDMxZDIxNTNmZWJlMTk0ZTY2NGE5OWQ2MTgzCiAKIHBvc3RfaW5zdGFsbCgpIHsKIAl2bGlj ZW5zZSBMSUNFTlNFCgpGcm9tIDMwYTFlOWRiYmEzNjRhMDc3NzY1NmFlMmUyODQxN2YxMTBiMjcx ZmIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEFydHVyIFNpbmlsYSA8ZnJlZXNvZnR3 YXJlQGxvZ2FyaXRobXVzLmRldj4KRGF0ZTogU3VuLCAxOCBKdWwgMjAyMSAxODoyOTo0MCArMDMw MApTdWJqZWN0OiBbUEFUQ0ggMTAvMTFdIHBhcmF2aWV3OiB1cGRhdGUgdG8gNS45LjEuCgotLS0K IHNyY3BrZ3MvcGFyYXZpZXcvdGVtcGxhdGUgfCA0ICsrLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGlu c2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9wYXJhdmll dy90ZW1wbGF0ZSBiL3NyY3BrZ3MvcGFyYXZpZXcvdGVtcGxhdGUKaW5kZXggMjBhN2Y1NTg5Njc3 Li5lNmMzOTQxY2U5MGEgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvcGFyYXZpZXcvdGVtcGxhdGUKKysr IGIvc3JjcGtncy9wYXJhdmlldy90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUg ZmlsZSBmb3IgJ3BhcmF2aWV3JwogcGtnbmFtZT1wYXJhdmlldwotdmVyc2lvbj01LjguMQotcmV2 aXNpb249MwordmVyc2lvbj01LjkuMQorcmV2aXNpb249MQogd3Jrc3JjPVBhcmFWaWV3LXYke3Zl cnNpb259CiBidWlsZF9zdHlsZT1jbWFrZQogY29uZmlndXJlX2FyZ3M9Ii1EQ01BS0VfUFJFRklY X1BBVEg9JHtYQlBTX0NST1NTX0JBU0V9L3VzcgoKRnJvbSA3NzA0YWJlMmRhODNhZDA2YmU2MzE1 ODViNWRkMDBhZGYxYTVjYjZlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBcnR1ciBT aW5pbGEgPGZyZWVzb2Z0d2FyZUBsb2dhcml0aG11cy5kZXY+CkRhdGU6IFN1biwgMTggSnVsIDIw MjEgMTg6Mjk6MzkgKzAzMDAKU3ViamVjdDogW1BBVENIIDExLzExXSBvY2N0OiByZXZidW1wIGR1 ZSB0byB0YmIgdXBkYXRlCgotLS0KIHNyY3BrZ3Mvb2NjdC90ZW1wbGF0ZSB8IDIgKy0KIDEgZmls ZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3Ny Y3BrZ3Mvb2NjdC90ZW1wbGF0ZSBiL3NyY3BrZ3Mvb2NjdC90ZW1wbGF0ZQppbmRleCA5Mjk4ZWRj NzZlMDguLjAwNmY4OWViYjhjZSAxMDA2NDQKLS0tIGEvc3JjcGtncy9vY2N0L3RlbXBsYXRlCisr KyBiL3NyY3BrZ3Mvb2NjdC90ZW1wbGF0ZQpAQCAtMiw3ICsyLDcgQEAKIHBrZ25hbWU9b2NjdAog cmV2ZXJ0cz03LjUuMF8xCiB2ZXJzaW9uPTcuNC4wcDEKLXJldmlzaW9uPTMKK3JldmlzaW9uPTQK IF9naXR0YWc9IlYke3ZlcnNpb24vLy4vX30iCiB3cmtzcmM9b2NjdC0ke19naXR0YWd9CiBidWls ZF9zdHlsZT1jbWFrZQo= --===============1494076479975101625==--