From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-0.2 required=5.0 tests=ALL_TRUSTED, DKIM_ADSP_NXDOMAIN autolearn=no autolearn_force=no version=3.4.4 Received: (qmail 16328 invoked from network); 24 Jul 2021 10:00:32 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 24 Jul 2021 10:00:32 -0000 Content-Type: multipart/mixed; boundary="===============4315395511160169924==" MIME-Version: 1.0 Subject: =?utf8?q?=5BPR_PATCH=5D_tbb=3A_update_to_2021=2E3=2E0?= To: ml@inbox.vuxu.org From: Logarithmus Reply-to: ml@inbox.vuxu.org Message-ID: Date: Sat, 24 Jul 2021 12:00:31 +0200 List-Id: GitHub notification mails are now in MIME to allow UTF8. --===============4315395511160169924== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYSBuZXcgcHVsbCByZXF1ZXN0IGJ5IExvZ2FyaXRobXVzIGFnYWluc3QgbWFzdGVy IG9uIHRoZSB2b2lkLXBhY2thZ2VzIHJlcG9zaXRvcnkKCmh0dHBzOi8vZ2l0aHViLmNvbS9Mb2dh cml0aG11cy92b2lkLXBhY2thZ2VzIHRiYi0yMDIxCmh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxp bnV4L3ZvaWQtcGFja2FnZXMvcHVsbC8zMjE2NgoKdGJiOiB1cGRhdGUgdG8gMjAyMS4zLjAKLSBo d2xvYzogYWRkIGxpYnBjaWFjY2Vzcy1kZXZlbCBtYWtlIGRlcGVuZGVuY3kKLSB0YmI6IHVwZGF0 ZSB0byAyMDIxLjMuMC4KLSBPcGVuU3ViZGl2OiB1cGRhdGUgdG8gMy40LjQuCi0gUHJ1c2FTbGlj ZXI6IHVwZGF0ZSB0byAyLjMuMy4KLSBibGVuZGVyOiB1cGRhdGUgdG8gMi45My4xLgotIGVtYnJl ZTogdXBkYXRlIHRvIDMuMTMuMC4KLSBvcGVuaW1hZ2VpbzogdXBkYXRlIHRvIDIuMi4xNi4wLgot IG9wZW5pbWFnZWRlbm9pc2U6IHVwZGF0ZSB0byAxLjQuMS4KLSBvcGVudmRiOiB1cGRhdGUgdG8g OC4xLjAuCi0gcGFyYXZpZXc6IHVwZGF0ZSB0byA1LjkuMS4KLSBvY2N0OiByZXZidW1wIGR1ZSB0 byB0YmIgdXBkYXRlCgojIyMjIEhhdmUgdGhlIHJlc3VsdHMgb2YgdGhlIHByb3Bvc2VkIGNoYW5n ZXMgYmVlbiB0ZXN0ZWQ/Ci0gW3hdIEkgdXNlIHRoZSBwYWNrYWdlcyBhZmZlY3RlZCBieSB0aGUg cHJvcG9zZWQgY2hhbmdlcyBvbiBhIHJlZ3VsYXIgYmFzaXMgYW5kIGNvbmZpcm0gdGhpcyBQUiB3 b3JrcyBmb3IgbWUKCgpBIHBhdGNoIGZpbGUgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vdm9pZC1s aW51eC92b2lkLXBhY2thZ2VzL3B1bGwvMzIxNjYucGF0Y2ggaXMgYXR0YWNoZWQ= --===============4315395511160169924== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-tbb-2021-32166.patch" RnJvbSBiYTJmMDdiZGVmOTQzOThhYjdmYmU0NTM1MzUwMGM5YWFkMmU2ZWRmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBcnR1ciBTaW5pbGEgPGZyZWVzb2Z0d2FyZUBsb2dhcml0aG11 cy5kZXY+CkRhdGU6IFNhdCwgMTcgSnVsIDIwMjEgMjM6NTc6NTIgKzAzMDAKU3ViamVjdDogW1BB VENIIDAxLzExXSBod2xvYzogYWRkIGxpYnBjaWFjY2Vzcy1kZXZlbCBtYWtlIGRlcGVuZGVuY3kK Ci0tLQogc3JjcGtncy9od2xvYy90ZW1wbGF0ZSB8IDYgKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwg MyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvaHds b2MvdGVtcGxhdGUgYi9zcmNwa2dzL2h3bG9jL3RlbXBsYXRlCmluZGV4IDgxOGRiMjY5Y2ViYi4u Y2UwZjYxYWNkOWM3IDEwMDY0NAotLS0gYS9zcmNwa2dzL2h3bG9jL3RlbXBsYXRlCisrKyBiL3Ny Y3BrZ3MvaHdsb2MvdGVtcGxhdGUKQEAgLTEsMTAgKzEsMTAgQEAKICMgVGVtcGxhdGUgZmlsZSBm b3IgJ2h3bG9jJwogcGtnbmFtZT1od2xvYwogdmVyc2lvbj0yLjUuMAotcmV2aXNpb249MQorcmV2 aXNpb249MgogYnVpbGRfc3R5bGU9Z251LWNvbmZpZ3VyZQogaG9zdG1ha2VkZXBlbmRzPSJwa2ct Y29uZmlnIgotbWFrZWRlcGVuZHM9ImNhaXJvLWRldmVsIG5jdXJzZXMtZGV2ZWwgbGlieG1sMi1k ZXZlbCBldWRldi1saWJ1ZGV2LWRldmVsIgorbWFrZWRlcGVuZHM9ImNhaXJvLWRldmVsIG5jdXJz ZXMtZGV2ZWwgbGlieG1sMi1kZXZlbCBsaWJwY2lhY2Nlc3MtZGV2ZWwgZXVkZXYtbGlidWRldi1k ZXZlbCIKIHNob3J0X2Rlc2M9IlBvcnRhYmxlIGFic3RyYWN0aW9uIG9mIGhpZXJhcmNoaWNhbCBo YXJkd2FyZSBhcmNoaXRlY3R1cmVzIgogbWFpbnRhaW5lcj0iTGVhaCBOZXVraXJjaGVuIDxsZWFo QHZ1eHUub3JnPiIKIGxpY2Vuc2U9IkJTRC0zLUNsYXVzZSIKQEAgLTMxLDcgKzMxLDcgQEAgbGli aHdsb2NfcGFja2FnZSgpIHsKIAogbGliaHdsb2MtZGV2ZWxfcGFja2FnZSgpIHsKIAlzaG9ydF9k ZXNjKz0iIC0gZGV2ZWxvcG1lbnQgZmlsZXMiCi0JZGVwZW5kcz0ibGliaHdsb2M+PSR7dmVyc2lv bn1fJHtyZXZpc2lvbn0iCisJZGVwZW5kcz0iJHttYWtlZGVwZW5kc30gbGliaHdsb2M+PSR7dmVy c2lvbn1fJHtyZXZpc2lvbn0iCiAJcGtnX2luc3RhbGwoKSB7CiAJCXZtb3ZlIHVzci9pbmNsdWRl CiAJCXZtb3ZlIHVzci9zaGFyZS9tYW4vbWFuMwoKRnJvbSA4Zjg2MTdjY2QzYTM2NmJiZTA4ZjY5 ZDgwYTM2NWI0NDYzYWE1YzUwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBcnR1ciBT aW5pbGEgPGZyZWVzb2Z0d2FyZUBsb2dhcml0aG11cy5kZXY+CkRhdGU6IE1vbiwgNSBKdWwgMjAy MSAwMjo1MDoyNiArMDMwMApTdWJqZWN0OiBbUEFUQ0ggMDIvMTFdIHRiYjogdXBkYXRlIHRvIDIw MjEuMy4wLgoKLS0tCiBjb21tb24vc2hsaWJzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8ICAgNiArLQogc3JjcGtncy90YmIvcGF0Y2hlcy8wMC1od2xvYy0yLjUucGF0Y2ggICAgICAg fCAzNjcgKysrKysrKysrKysrKysrKysrKwogc3JjcGtncy90YmIvcGF0Y2hlcy8wMS1od2xvYy1w a2djb25maWcucGF0Y2ggfCAgNTIgKysrCiBzcmNwa2dzL3RiYi9wYXRjaGVzL2hvc3RuYW1lLXVz YWdlLnBhdGNoICAgICB8ICAxMSAtCiBzcmNwa2dzL3RiYi9wYXRjaGVzL211c2wucGF0Y2ggICAg ICAgICAgICAgICB8ICAgNCArLQogc3JjcGtncy90YmIvdGVtcGxhdGUgICAgICAgICAgICAgICAg ICAgICAgICAgfCAgNjMgKy0tLQogNiBmaWxlcyBjaGFuZ2VkLCA0MzMgaW5zZXJ0aW9ucygrKSwg NzAgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy90YmIvcGF0Y2hlcy8w MC1od2xvYy0yLjUucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3RiYi9wYXRjaGVz LzAxLWh3bG9jLXBrZ2NvbmZpZy5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvdGJi L3BhdGNoZXMvaG9zdG5hbWUtdXNhZ2UucGF0Y2gKCmRpZmYgLS1naXQgYS9jb21tb24vc2hsaWJz IGIvY29tbW9uL3NobGlicwppbmRleCBhN2FmYmYyYTU2ZjcuLjZiN2NhNWZiYzI0OSAxMDA2NDQK LS0tIGEvY29tbW9uL3NobGlicworKysgYi9jb21tb24vc2hsaWJzCkBAIC0yMzc2LDEyICsyMzc2 LDEwIEBAIGxpYmFudGh5LXVuaWNvZGUuc28uMCBsaWJhbnRoeS11bmljb2RlLTEuMC4wLjIwMjAx MTA5XzEKIGxpYmFudGh5ZGljLXVuaWNvZGUuc28uMCBsaWJhbnRoeS11bmljb2RlLTEuMC4wLjIw MjAxMTA5XzEKIGxpYmFudGh5aW5wdXQtdW5pY29kZS5zby4wIGxpYmFudGh5LXVuaWNvZGUtMS4w LjAuMjAyMDExMDlfMQogbGliYW50aHlnb2JqZWN0LTEuMC5zby41IGlidXMtYW50aHktMS41LjZf MQotbGlidGJibWFsbG9jX3Byb3h5X2RlYnVnLnNvLjIgdGJiLTQuM18xCiBsaWJ0YmJtYWxsb2Nf cHJveHkuc28uMiB0YmItNC4zXzEKIGxpYnRiYm1hbGxvYy5zby4yIHRiYi00LjNfMQotbGlidGJi X2RlYnVnLnNvLjIgdGJiLTQuM18xCi1saWJ0YmIuc28uMiB0YmItNC4zXzEKLWxpYnRiYm1hbGxv Y19kZWJ1Zy5zby4yIHRiYi00LjNfMQorbGlidGJiLnNvLjEyIHRiYi0yMDIxLjMuMF8xCitsaWJ0 YmJiaW5kXzJfNS5zby4zIHRiYi0yMDIxLjMuMF8xCiBsaWJlbWJyZWUuc28uMiBlbWJyZWUtMi41 LjFfMQogbGliZ3RraW1hZ2V2aWV3LnNvLjAgZ3RraW1hZ2V2aWV3LTEuNi40XzEKIGxpYmdvb2Nh bnZhcy0yLjAuc28uOSBnb29jYW52YXMtMi4wLjRfMQpkaWZmIC0tZ2l0IGEvc3JjcGtncy90YmIv cGF0Y2hlcy8wMC1od2xvYy0yLjUucGF0Y2ggYi9zcmNwa2dzL3RiYi9wYXRjaGVzLzAwLWh3bG9j LTIuNS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjljNGM5 Mjg1YzcxZAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvdGJiL3BhdGNoZXMvMDAtaHdsb2Mt Mi41LnBhdGNoCkBAIC0wLDAgKzEsMzY3IEBACitBZGp1c3RlZCBieSBBcnR1ciBTaW5pbGEgPGZy ZWVzb2Z0d2FyZUBsb2dhcml0aG11cy5kZXY+CisKK0Zyb20gZTk2ZGJmNGI0OGU2ODlhYjgxMGIw NDI4ZDA4NThhNmFiYzJjODNiZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEl2YW4g S29jaGluIDxpdi5rb2NoaW5AZ21haWwuY29tPgorRGF0ZTogVGh1LCAxIEp1bCAyMDIxIDE1OjA3 OjM5ICswMzAwCitTdWJqZWN0OiBbUEFUQ0hdIFVwZ3JhZGUgZnJvbSBIV0xPQyAyLjQgdG8gSFdM T0MgMi41ICgjNDQ4KQorCisqIFVwZ3JhZGUgZnJvbSBIV0xPQyAyLjQgdG8gSFdMT0MgMi41Cisq IEludHJvZHVjZSB0YmJiaW5kXzJfNSBsaWJyYXJ5CisqIFJlbW92ZSB0YmJiaW5kXzJfNCBsaWJy YXJ5CisqIFVzZSB0aGUgSFdMT0NfVE9QT0xPR1lfRkxBR19SRVNUUklDVF9UT19DUFVCSU5ESU5H IHRvcG9sb2d5IGZsYWcgKGludHJvZHVjZXMgYXMgYSBwYXJ0IG9mIEhXTE9DIDIuNSkgdG8gcmVz dHJpY3QgdG9wb2xvZ3kgZGlzY292ZXJpbmcgdG8gcHJvY2VzcyBiaW5kaW5nCisqIEZpeCB0ZXN0 aW5nIG9uIExpbnV4CisqIEFwcGx5IHJldmlldyBjb21tZW50cworKiBJbXByb3ZlIHdvcmRpbmc6 IHZhcmlhYmxlIC0+IHN1YnN0cmluZworKiBVc2UgcmlnaHQgdGJiYmluZCB2ZXJzaW9uIGZvciBp bmNvbXBhdGlibGUgaHdsb2NzIHRlc3QKKyogUmV3b3JrIG9wdGlvbiBzZW1hbnRpYworKiBVcGRh dGUgUkVBRE1FLm1kIGZvciBDTWFrZQorKiBSZXdvcmsgcmVhZG1lCisqIFVwZGF0ZSBjbWFrZS9S RUFETUUubWQKKworU2lnbmVkLW9mZi1ieTogS29jaGluLCBJdmFuIDxrb2NoaW4uaXZhbkBpbnRl bC5jb20+CisKK0NvLWF1dGhvcmVkLWJ5OiBBbGVrc2VpIEZlZG90b3YgPGFsZWtzZWkuZmVkb3Rv dkBpbnRlbC5jb20+CistLS0KKyBDTWFrZUxpc3RzLnR4dCAgICAgICAgICAgICAgICAgICAgICAg ICB8ICAzICsrLQorIGNtYWtlL1JFQURNRS5tZCAgICAgICAgICAgICAgICAgICAgICAgIHwgMTEg KysrKystLS0KKyBjbWFrZS9od2xvY19kZXRlY3Rpb24uY21ha2UgICAgICAgICAgICB8ICA5ICsr KystLS0KKyBzcmMvdGJiL2dvdmVybm9yLmNwcCAgICAgICAgICAgICAgICAgICB8ICA0ICstLQor IHNyYy90YmJiaW5kL0NNYWtlTGlzdHMudHh0ICAgICAgICAgICAgIHwgIDIgKy0KKyBzcmMvdGJi YmluZC90YmJfYmluZC5jcHAgICAgICAgICAgICAgICB8IDIzICsrKysrKysrKysrLS0tLS0KKyB0 ZXN0L0NNYWtlTGlzdHMudHh0ICAgICAgICAgICAgICAgICAgICB8IDMwICsrKysrKysrKystLS0t LS0tLS0tLQorIHRlc3QvY29tbW9uL2NvbW1vbl9hcmVuYV9jb25zdHJhaW50cy5oIHwgMzcgKysr KysrKysrKysrKysrKysrKysrKy0tLS0KKyA4IGZpbGVzIGNoYW5nZWQsIDgyIGluc2VydGlvbnMo KyksIDM3IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvQ01ha2VMaXN0cy50eHQgYi9DTWFr ZUxpc3RzLnR4dAoraW5kZXggMzRhMjNkNDAwLi4zMDE4OTlhY2EgMTAwNjQ0CistLS0gYS9DTWFr ZUxpc3RzLnR4dAorKysrIGIvQ01ha2VMaXN0cy50eHQKK0BAIC0xMDAsNiArMTAwLDcgQEAgb3B0 aW9uKFRCQl9OT19BUFBDT05UQUlORVIgIkFwcGx5IC9BUFBDT05UQUlORVI6Tk8gKGZvciB0ZXN0 aW5nIGJpbmFyaWVzIGZvciBXaW4KKyBvcHRpb24oVEJCNFBZX0JVSUxEICJFbmFibGUgdGJiNHB5 IGJ1aWxkIiBPRkYpCisgb3B0aW9uKFRCQl9DUEYgIkVuYWJsZSBwcmV2aWV3IGZlYXR1cmVzIG9m IHRoZSBsaWJyYXJ5IiBPRkYpCisgb3B0aW9uKFRCQl9GSU5EX1BBQ0tBR0UgIkVuYWJsZSBzZWFy Y2ggZm9yIGV4dGVybmFsIG9uZVRCQiB1c2luZyBmaW5kX3BhY2thZ2UgaW5zdGVhZCBvZiBidWls ZCBmcm9tIHNvdXJjZXMiIE9GRikKKytvcHRpb24oVEJCX0RJU0FCTEVfSFdMT0NfQVVUT01BVElD X1NFQVJDSCAiRGlzYWJsZSBIV0xPQyBhdXRvbWF0aWMgc2VhcmNoIGJ5IHBrZy1jb25maWcgdG9v bCIgT0ZGKQorIAorIGlmIChOT1QgREVGSU5FRCBCVUlMRF9TSEFSRURfTElCUykKKyAgICAgc2V0 KEJVSUxEX1NIQVJFRF9MSUJTIE9OKQorQEAgLTE5NSw3ICsxOTYsNyBAQCBlbHNlKCkKKyAgICAg ICAgIGFkZF9zdWJkaXJlY3Rvcnkoc3JjL3RiYm1hbGxvYykKKyAgICAgICAgIGFkZF9zdWJkaXJl Y3Rvcnkoc3JjL3RiYm1hbGxvY19wcm94eSkKKyAgICAgICAgIGlmIChBUFBMRSkKKy0gICAgICAg ICAgICBtZXNzYWdlKFNUQVRVUyAiVEJCQmluZCBidWlsZCB0YXJnZXQgaXMgZGlzYWJsZWQgZHVl IHRvIHVuc3VwcG9ydGVkIGVudmlyb25tZW50IikKKysgICAgICAgICAgICBtZXNzYWdlKFNUQVRV UyAiVEJCQmluZCBidWlsZCB0YXJnZXRzIGFyZSBkaXNhYmxlZCBkdWUgdG8gdW5zdXBwb3J0ZWQg ZW52aXJvbm1lbnQiKQorICAgICAgICAgZWxzZSgpCisgICAgICAgICAgICAgYWRkX3N1YmRpcmVj dG9yeShzcmMvdGJiYmluZCkKKyAgICAgICAgIGVuZGlmKCkKK2RpZmYgLS1naXQgYS9jbWFrZS9S RUFETUUubWQgYi9jbWFrZS9SRUFETUUubWQKK2luZGV4IDM2ZmMzMDNmOS4uYjU4YzJmZjZhIDEw MDY0NAorLS0tIGEvY21ha2UvUkVBRE1FLm1kCisrKysgYi9jbWFrZS9SRUFETUUubWQKK0BAIC0x Myw2ICsxMyw3IEBAIFRCQjRQWV9CVUlMRDpCT09MIC0gRW5hYmxlICBJbnRlbChSKSBvbmVBUEkg VGhyZWFkaW5nIEJ1aWxkaW5nIEJsb2NrcyAob25lVEJCKSBQCisgVEJCX0NQRjpCT09MIC0gRW5h YmxlIHByZXZpZXcgZmVhdHVyZXMgb2YgdGhlIGxpYnJhcnkgKE9GRiBieSBkZWZhdWx0KQorIFRC Ql9JTlNUQUxMX1ZBUlM6Qk9PTCAtIEVuYWJsZSBhdXRvLWdlbmVyYXRlZCB2YXJzIGluc3RhbGxh dGlvbihwYWNrYWdlcyBnZW5lcmF0ZWQgYnkgYGNwYWNrYCBhbmQgYG1ha2UgaW5zdGFsbGAgd2ls bCBhbHNvIGluY2x1ZGUgdGhlIHZhcnMgc2NyaXB0KShPRkYgYnkgZGVmYXVsdCkKKyBUQkJfVkFM R1JJTkRfTUVNQ0hFQ0s6Qk9PTCAtIEVuYWJsZSBzY2FuIGZvciBtZW1vcnkgbGVha3MgdXNpbmcg VmFsZ3JpbmQgKE9GRiBieSBkZWZhdWx0KQorK1RCQl9ESVNBQkxFX0hXTE9DX0FVVE9NQVRJQ19T RUFSQ0ggLSBEaXNhYmxlIEhXTE9DIGF1dG9tYXRpYyBzZWFyY2ggYnkgcGtnLWNvbmZpZyB0b29s IChPRkYgYnkgZGVmYXVsdCkKKyBgYGAKKyAKKyAjIyBDb25maWd1cmUsIGJ1aWxkIGFuZCB0ZXN0 CitAQCAtNDIsOSArNDMsOSBAQCBTb21lIHVzZWZ1bCBvcHRpb25zOgorIAorICMjIyMgVEJCQmlu ZCBsaWJyYXJ5IGNvbmZpZ3VyYXRpb24KKyAKKy1UaGUgVEJCYmluZCBsaWJyYXJ5IGhhcyB0d28g dmVyc2lvbnM6IGB0YmJiaW5kYCBhbmQgYHRiYmJpbmRfMl8wYC4gRWFjaCBvZiB0aGVzZSB2ZXJz aW9ucyBpcyBsaW5rZWQgd2l0aCBjb3JyZXNwb25kaW5nIEhXTE9DIGxpYnJhcnkgdmVyc2lvbjog YHRiYmJpbmRgIGxpbmtzIHdpdGggSFdMT0MgMS4xMS54ICwgYHRiYmJpbmRfMl8wYCBsaW5rcyB3 aXRoIEhXTE9DIDIueC4KKytUaGUgVEJCYmluZCBsaWJyYXJ5IGhhcyB0aHJlZSB2ZXJzaW9uczog YHRiYmJpbmRgLCBgdGJiYmluZF8yXzBgIGFuZCBgdGJiYmluZF8yXzVgLiBFYWNoIG9mIHRoZXNl IHZlcnNpb25zIGlzIGxpbmtlZCB3aXRoIGNvcnJlc3BvbmRpbmcgSFdMT0MgbGlicmFyeSB2ZXJz aW9uOiBgdGJiYmluZGAgbGlua3Mgd2l0aCBIV0xPQyAxLjExLnggLCBgdGJiYmluZF8yXzBgIGxp bmtzIHdpdGggSFdMT0MgMi4xLTIuNCwgYHRiYmJpbmRfMl81YCBsaW5rcyB3aXRoIEhXTE9DIDIu NSBhbmQgbGF0ZXIuCisgCistVG8gZW5hYmxlIHRoZSBUQkJCaW5kIGxpYnJhcnkgYnVpbGQgb3Ig c3BlY2lhbCB0ZXN0cyB0aGF0IHBlcmZvcm1lZCBpbnNpZGUgdGhlIEhXTE9DIGVudmlyb25tZW50 LCBwbGVhc2Ugc3BlY2lmeSB0aGUgZm9sbG93aW5nIENNYWtlIHZhcmlhYmxlczoKKytUaGUgc2Vh cmNoIGZvciBhIHN1aXRhYmxlIHZlcnNpb24gb2YgdGhlIEhXTE9DIGxpYnJhcnkgaXMgZW5hYmxl ZCBieSBkZWZhdWx0LCBidXQgaWYgeW91IHdhbnQgdG8gdXNlIGEgc3BlY2lmaWMgdmVyc2lvbiBv ZiB0aGUgbGlicmFyeSwgeW91IGNhbiBzcGVjaWZ5IHRoZSBwYXRoIHRvIGl0IG1hbnVhbGx5IHVz aW5nIHRoZSBmb2xsb3dpbmcgQ01ha2UgdmFyaWFibGVzOgorIAorICAtIGBDTUFLRV9IV0xPQ188 SFdMT0NfVkVSPl9MSUJSQVJZX1BBVEhgIC0gcGF0aCB0byB0aGUgY29ycmVzcG9uZGluZyBIV0xP QyB2ZXJzaW9uIHNoYXJlZCBsaWJyYXJ5IG9uIExpbnV4IG9yIHBhdGggdG8gYC5saWJgIGZpbGUg b24gV2luZG93cy4KKyAgLSBgQ01BS0VfSFdMT0NfPEhXTE9DX1ZFUj5fSU5DTFVERV9QQVRIYCAt IHBhdGggdG8gdGhlIGNvcnJlc3BvbmRpbmcgSFdMT0MgdmVyc2lvbiBpbmNsdWRlcyBkaXJlY3Rv cnkuCitAQCAtNTIsNyArNTMsMTEgQEAgVG8gZW5hYmxlIHRoZSBUQkJCaW5kIGxpYnJhcnkgYnVp bGQgb3Igc3BlY2lhbCB0ZXN0cyB0aGF0IHBlcmZvcm1lZCBpbnNpZGUgdGhlIEgKKyBXaW5kb3dz IHJlcXVpcmVzIG9uZSBhZGRpdGlvbmFsIHZhcmlhYmxlIGZvciBjb3JyZWN0IFRCQkJpbmQgbGli cmFyeSBidWlsZGluZzoKKyAgLSBgQ01BS0VfSFdMT0NfPEhXTE9DX1ZFUj5fRExMX1BBVEhgIC0g cGF0aCB0byB0aGUgY29ycmVzcG9uZGluZyBIV0xPQyB2ZXJzaW9uIGAuZGxsYCBmaWxlLgorIAor LWBIV0xPQ19WRVJgIHZhcmlhYmxlIHVzZWQgYWJvdmUgY2FuIGJlIHJlcGxhY2VkIHdpdGggb25l IG9mIHRoZSB0d28gdmFsdWVzOiBgMV8xMWAgZm9yIHRoZSBgdGJiYmluZGAgbGlicmFyeSBjb25m aWd1cmF0aW9uIGFuZCBgMmAgZm9yIHRoZSBgdGJiYmluZF8yXzBgIGxpYnJhcnkgY29uZmlndXJh dGlvbi4KKytgSFdMT0NfVkVSYCBzdWJzdHJpbmcgdXNlZCBhYm92ZSBjYW4gYmUgcmVwbGFjZWQg d2l0aCBvbmUgb2YgdGhlIHRocmVlIHZhbHVlczogYDFfMTFgIGZvciB0aGUgYHRiYmJpbmRgIGxp YnJhcnkgY29uZmlndXJhdGlvbiwgYDJgIGZvciB0aGUgYHRiYmJpbmRfMl8wYCwgYW5kIGAyXzVg IGZvciB0aGUgYHRiYmJpbmRfMl81YCBsaWJyYXJ5IGNvbmZpZ3VyYXRpb24uCisrCisrSWYgeW91 IHNwZWNpZnkgdmFyaWFibGVzIGZvciBzZXZlcmFsIFRCQkJpbmQgdmVyc2lvbnMsIHRoZW4gYnVp bGRpbmcgcHJvY2VzcyBmb3IgYWxsIG9mIHRoZXNlIHZlcnNpb25zIHdpbGwgYmUgcGVyZm9ybWVk IGR1cmluZyBzaW5nbGUgYnVpbGQgc2Vzc2lvbi4KKysKKytTcGVjaWZ5IHRoZSBgVEJCX0RJU0FC TEVfSFdMT0NfQVVUT01BVElDX1NFQVJDSGAgdG8gZGlzYWJsZSBIV0xPQyBsaWJyYXJpZXMgYXV0 b21hdGljIHNlYXJjaC4KKyAKKyAjIyMgQnVpbGQKKyAKK2RpZmYgLS1naXQgYS9jbWFrZS9od2xv Y19kZXRlY3Rpb24uY21ha2UgYi9jbWFrZS9od2xvY19kZXRlY3Rpb24uY21ha2UKK2luZGV4IGUx ZWVjYTVmYS4uZGU3ZjNjMDQ3IDEwMDY0NAorLS0tIGEvY21ha2UvaHdsb2NfZGV0ZWN0aW9uLmNt YWtlCisrKysgYi9jbWFrZS9od2xvY19kZXRlY3Rpb24uY21ha2UKK0BAIC0xMiw3ICsxMiw3IEBA CisgIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcg cGVybWlzc2lvbnMgYW5kCisgIyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAKKy1s aXN0KEFQUEVORCBIV0xPQ19SRVFVSVJFRF9WRVJTSU9OUyAxXzExIDIgMl80KQorK2xpc3QoQVBQ RU5EIEhXTE9DX1JFUVVJUkVEX1ZFUlNJT05TIDFfMTEgMiAyXzUpCisgCisgZm9yZWFjaChod2xv Y192ZXJzaW9uICR7SFdMT0NfUkVRVUlSRURfVkVSU0lPTlN9KQorICAgICBpZiAoTk9UIFdJTjMy KQorQEAgLTU1LDEwICs1NiwxMCBAQCBpZiAoTk9UIEhXTE9DX1RBUkdFVF9FWFBMSUNJVExZX0RF RklORUQgQU5ECisgICAgICAgICBpZiAoSFdMT0NfRk9VTkQpCisgICAgICAgICAgICAgaWYgKEhX TE9DX1ZFUlNJT04gVkVSU0lPTl9MRVNTIDIpCisgICAgICAgICAgICAgICAgIHNldChUQkJCSU5E X0xJQlJBUllfTkFNRSB0YmJiaW5kKQorLSAgICAgICAgICAgIGVsc2VpZihIV0xPQ19WRVJTSU9O IFZFUlNJT05fTEVTUyAyLjQpCisrICAgICAgICAgICAgZWxzZWlmKEhXTE9DX1ZFUlNJT04gVkVS U0lPTl9MRVNTIDIuNSkKKyAgICAgICAgICAgICAgICAgc2V0KFRCQkJJTkRfTElCUkFSWV9OQU1F IHRiYmJpbmRfMl8wKQorICAgICAgICAgICAgIGVsc2UoKQorLSAgICAgICAgICAgICAgICBzZXQo VEJCQklORF9MSUJSQVJZX05BTUUgdGJiYmluZF8yXzQpCisrICAgICAgICAgICAgICAgIHNldChU QkJCSU5EX0xJQlJBUllfTkFNRSB0YmJiaW5kXzJfNSkKKyAgICAgICAgICAgICBlbmRpZigpCisg ICAgICAgICBlbmRpZigpCisgICAgIGVuZGlmKCkKK2RpZmYgLS1naXQgYS9zcmMvdGJiL2dvdmVy bm9yLmNwcCBiL3NyYy90YmIvZ292ZXJub3IuY3BwCitpbmRleCBiZjRlNDAyZDEuLmI4NDJlMDc1 ZiAxMDA2NDQKKy0tLSBhL3NyYy90YmIvZ292ZXJub3IuY3BwCisrKysgYi9zcmMvdGJiL2dvdmVy bm9yLmNwcAorQEAgLTM2Miw3ICszNjIsNyBAQCBzdGF0aWMgY29uc3QgdW5zaWduZWQgTGlua1Rh YmxlU2l6ZSA9IHNpemVvZihUYmJCaW5kTGlua1RhYmxlKSAvIHNpemVvZihkeW5hbWljXworIAor ICNkZWZpbmUgVEJCQklORF9OQU1FIExJQlJBUllfUFJFRklYICJ0YmJiaW5kIiBERUJVR19TVUZG SVggTElCUkFSWV9FWFRFTlNJT04KKyAjZGVmaW5lIFRCQkJJTkRfMl8wX05BTUUgTElCUkFSWV9Q UkVGSVggInRiYmJpbmRfMl8wIiBERUJVR19TVUZGSVggTElCUkFSWV9FWFRFTlNJT04KKy0jZGVm aW5lIFRCQkJJTkRfMl80X05BTUUgTElCUkFSWV9QUkVGSVggInRiYmJpbmRfMl80IiBERUJVR19T VUZGSVggTElCUkFSWV9FWFRFTlNJT04KKysjZGVmaW5lIFRCQkJJTkRfMl81X05BTUUgTElCUkFS WV9QUkVGSVggInRiYmJpbmRfMl81IiBERUJVR19TVUZGSVggTElCUkFSWV9FWFRFTlNJT04KKyAj ZW5kaWYgLyogX1dJTjMyIHx8IF9XSU42NCB8fCBfX2xpbnV4X18gKi8KKyAKKyAvLyBSZXByZXNl bnRhdGlvbiBvZiBzeXN0ZW0gaGFyZHdhcmUgdG9wb2xvZ3kgaW5mb3JtYXRpb24gb24gdGhlIFRC QiBzaWRlLgorQEAgLTM4OSw3ICszODksNyBAQCBjb25zdCBjaGFyKiBsb2FkX3RiYmJpbmRfc2hh cmVkX29iamVjdCgpIHsKKyAgICAgR2V0TmF0aXZlU3lzdGVtSW5mbygmc2kpOworICAgICBpZiAo c2kuZHdOdW1iZXJPZlByb2Nlc3NvcnMgPiAzMikgcmV0dXJuIG51bGxwdHI7CisgI2VuZGlmIC8q IF9XSU4zMiAmJiAhX1dJTjY0ICovCistICAgIGZvciAoY29uc3QgYXV0byYgdGJiYmluZF92ZXJz aW9uIDoge1RCQkJJTkRfMl80X05BTUUsIFRCQkJJTkRfMl8wX05BTUUsIFRCQkJJTkRfTkFNRX0p IHsKKysgICAgZm9yIChjb25zdCBhdXRvJiB0YmJiaW5kX3ZlcnNpb24gOiB7VEJCQklORF8yXzVf TkFNRSwgVEJCQklORF8yXzBfTkFNRSwgVEJCQklORF9OQU1FfSkgeworICAgICAgICAgaWYgKGR5 bmFtaWNfbGluayh0YmJiaW5kX3ZlcnNpb24sIFRiYkJpbmRMaW5rVGFibGUsIExpbmtUYWJsZVNp emUpKSB7CisgICAgICAgICAgICAgcmV0dXJuIHRiYmJpbmRfdmVyc2lvbjsKKyAgICAgICAgIH0K K2RpZmYgLS1naXQgYS9zcmMvdGJiYmluZC9DTWFrZUxpc3RzLnR4dCBiL3NyYy90YmJiaW5kL0NN YWtlTGlzdHMudHh0CitpbmRleCAwMjk4OTM3NTEuLmU1Y2RiZjhiYiAxMDA2NDQKKy0tLSBhL3Ny Yy90YmJiaW5kL0NNYWtlTGlzdHMudHh0CisrKysgYi9zcmMvdGJiYmluZC9DTWFrZUxpc3RzLnR4 dAorQEAgLTk5LDcgKzk5LDcgQEAgaWYgKE5PVCBERUZJTkVEIEhXTE9DX1RBUkdFVF9FWFBMSUNJ VExZX0RFRklORUQgQU5EIERFRklORUQgSFdMT0NfTElCUkFSSUVTKQorIGVsc2UoKQorICAgICB0 YmJiaW5kX2J1aWxkKHRiYmJpbmQgICAgIEhXTE9DOjpod2xvY18xXzExKQorICAgICB0YmJiaW5k X2J1aWxkKHRiYmJpbmRfMl8wIEhXTE9DOjpod2xvY18yICAgKQorLSAgICB0YmJiaW5kX2J1aWxk KHRiYmJpbmRfMl80IEhXTE9DOjpod2xvY18yXzQgKQorKyAgICB0YmJiaW5kX2J1aWxkKHRiYmJp bmRfMl81IEhXTE9DOjpod2xvY18yXzUgKQorIGVuZGlmKCkKKyAKKyAKK2RpZmYgLS1naXQgYS9z cmMvdGJiYmluZC90YmJfYmluZC5jcHAgYi9zcmMvdGJiYmluZC90YmJfYmluZC5jcHAKK2luZGV4 IDk3YmUzMDhjNy4uODhjOTU2YWNiIDEwMDY0NAorLS0tIGEvc3JjL3RiYmJpbmQvdGJiX2JpbmQu Y3BwCisrKysgYi9zcmMvdGJiYmluZC90YmJfYmluZC5jcHAKK0BAIC0zNCw3ICszNCw4IEBACisg I3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwb3AKKyAjZW5kaWYKKyAKKy0jZGVmaW5lIF9fSFdMT0Nf SFlCUklEX0NQVVNfSU5URVJGQUNFU19QUkVTRU5UIChIV0xPQ19BUElfVkVSU0lPTiA+PSAweDIw NDAwKQorKyNkZWZpbmUgX19UQkJCSU5EX0hXTE9DX0hZQlJJRF9DUFVTX0lOVEVSRkFDRVNfUFJF U0VOVCAoSFdMT0NfQVBJX1ZFUlNJT04gPj0gMHgyMDQwMCkKKysjZGVmaW5lIF9fVEJCQklORF9I V0xPQ19UT1BPTE9HWV9GTEFHX1JFU1RSSUNUX1RPX0NQVUJJTkRJTkdfUFJFU0VOVCAoSFdMT0Nf QVBJX1ZFUlNJT04gPj0gMHgyMDUwMCkKKyAKKyAvLyBNb3N0IG9mIGh3bG9jIGNhbGxzIHJldHVy bnMgbmVnYXRpdmUgZXhpdCBjb2RlIG9uIGVycm9yLgorIC8vIFRoaXMgbWFjcm8gdHJhY2tzIGVy cm9yIGNvZGVzIHRoYXQgYXJlIHJldHVybmVkIGZyb20gdGhlIGh3bG9jIGludGVyZmFjZXMuCitA QCAtODUsNiArODYsMTYgQEAgY2xhc3MgcGxhdGZvcm1fdG9wb2xvZ3kgeworICAgICAgICAgLy8g UGFyc2UgdG9wb2xvZ3kKKyAgICAgICAgIGlmICggaHdsb2NfdG9wb2xvZ3lfaW5pdCggJnRvcG9s b2d5ICkgPT0gMCApIHsKKyAgICAgICAgICAgICBpbml0aWFsaXphdGlvbl9zdGF0ZSA9IHRvcG9s b2d5X2FsbG9jYXRlZDsKKysjaWYgX19UQkJCSU5EX0hXTE9DX1RPUE9MT0dZX0ZMQUdfUkVTVFJJ Q1RfVE9fQ1BVQklORElOR19QUkVTRU5UCisrICAgICAgICAgICAgaWYgKCBncm91cHNfbnVtID09 IDEgJiYKKysgICAgICAgICAgICAgICAgIGh3bG9jX3RvcG9sb2d5X3NldF9mbGFncyh0b3BvbG9n eSwKKysgICAgICAgICAgICAgICAgICAgICBIV0xPQ19UT1BPTE9HWV9GTEFHX0lTX1RISVNTWVNU RU0gfAorKyAgICAgICAgICAgICAgICAgICAgIEhXTE9DX1RPUE9MT0dZX0ZMQUdfUkVTVFJJQ1Rf VE9fQ1BVQklORElORworKyAgICAgICAgICAgICAgICAgKSAhPSAwCisrICAgICAgICAgICAgKSB7 CisrICAgICAgICAgICAgICAgIHJldHVybjsKKysgICAgICAgICAgICB9CisrI2VuZGlmCisgICAg ICAgICAgICAgaWYgKCBod2xvY190b3BvbG9neV9sb2FkKCB0b3BvbG9neSApID09IDAgKSB7Cisg ICAgICAgICAgICAgICAgIGluaXRpYWxpemF0aW9uX3N0YXRlID0gdG9wb2xvZ3lfbG9hZGVkOwor ICAgICAgICAgICAgIH0KK0BAIC0xMzUsNyArMTQ2LDcgQEAgY2xhc3MgcGxhdGZvcm1fdG9wb2xv Z3kgeworICAgICAgICAgICAgIG51bWFfaW5kZXhlc19saXN0LnJlc2l6ZShudW1hX25vZGVzX2Nv dW50KTsKKyAgICAgICAgICAgICBod2xvY19vYmpfdCBub2RlX2J1ZmZlcjsKKyAgICAgICAgICAg ICBod2xvY19iaXRtYXBfZm9yZWFjaF9iZWdpbihpLCBwcm9jZXNzX25vZGVfYWZmaW5pdHlfbWFz aykgeworLSAgICAgICAgICAgICAgICBub2RlX2J1ZmZlciA9IGh3bG9jX2dldF9vYmpfYnlfdHlw ZSh0b3BvbG9neSwgSFdMT0NfT0JKX05VTUFOT0RFLCBpKTsKKysgICAgICAgICAgICAgICAgbm9k ZV9idWZmZXIgPSBod2xvY19nZXRfbnVtYW5vZGVfb2JqX2J5X29zX2luZGV4KHRvcG9sb2d5LCBp KTsKKyAgICAgICAgICAgICAgICAgbnVtYV9pbmRleGVzX2xpc3RbY291bnRlcl0gPSBzdGF0aWNf Y2FzdDxpbnQ+KG5vZGVfYnVmZmVyLT5sb2dpY2FsX2luZGV4KTsKKyAKKyAgICAgICAgICAgICAg ICAgaWYgKCBudW1hX2luZGV4ZXNfbGlzdFtjb3VudGVyXSA+IG1heF9udW1hX2luZGV4ICkgewor QEAgLTE1MCw3ICsxNjEsNyBAQCBjbGFzcyBwbGF0Zm9ybV90b3BvbG9neSB7CisgICAgICAgICAg ICAgbnVtYV9hZmZpbml0eV9tYXNrc19saXN0LnJlc2l6ZShtYXhfbnVtYV9pbmRleCArIDEpOwor ICAgICAgICAgICAgIGludCBpbmRleCA9IDA7CisgICAgICAgICAgICAgaHdsb2NfYml0bWFwX2Zv cmVhY2hfYmVnaW4oaSwgcHJvY2Vzc19ub2RlX2FmZmluaXR5X21hc2spIHsKKy0gICAgICAgICAg ICAgICAgbm9kZV9idWZmZXIgPSBod2xvY19nZXRfb2JqX2J5X3R5cGUodG9wb2xvZ3ksIEhXTE9D X09CSl9OVU1BTk9ERSwgaSk7CisrICAgICAgICAgICAgICAgIG5vZGVfYnVmZmVyID0gaHdsb2Nf Z2V0X251bWFub2RlX29ial9ieV9vc19pbmRleCh0b3BvbG9neSwgaSk7CisgICAgICAgICAgICAg ICAgIGluZGV4ID0gc3RhdGljX2Nhc3Q8aW50Pihub2RlX2J1ZmZlci0+bG9naWNhbF9pbmRleCk7 CisgCisgICAgICAgICAgICAgICAgIGh3bG9jX2NwdXNldF90JiBjdXJyZW50X21hc2sgPSBudW1h X2FmZmluaXR5X21hc2tzX2xpc3RbaW5kZXhdOworQEAgLTE2OCw3ICsxNzksNyBAQCBjbGFzcyBw bGF0Zm9ybV90b3BvbG9neSB7CisgICAgICAgICAgICAgY29yZV90eXBlc19pbmRleGVzX2xpc3Qu cHVzaF9iYWNrKC0xKTsKKyAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICB9CistI2lmIF9f SFdMT0NfSFlCUklEX0NQVVNfSU5URVJGQUNFU19QUkVTRU5UCisrI2lmIF9fVEJCQklORF9IV0xP Q19IWUJSSURfQ1BVU19JTlRFUkZBQ0VTX1BSRVNFTlQKKyAgICAgICAgIF9fVEJCX0FTU0VSVCho d2xvY19nZXRfYXBpX3ZlcnNpb24oKSA+PSAweDIwNDAwLCAiSHlicmlkIENQVXMgc3VwcG9ydCBp bnRlcmZhY2VzIHJlcXVpcmVkIEhXTE9DID49IDIuNCIpOworICAgICAgICAgLy8gUGFyc2luZyB0 aGUgaHlicmlkIENQVSB0b3BvbG9neQorICAgICAgICAgaW50IGNvcmVfdHlwZXNfbnVtYmVyID0g aHdsb2NfY3B1a2luZHNfZ2V0X25yKHRvcG9sb2d5LCAwKTsKK0BAIC0xOTYsOSArMjA3LDkgQEAg Y2xhc3MgcGxhdGZvcm1fdG9wb2xvZ3kgeworICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg ICAgfQorICAgICAgICAgfQorLSNlbHNlIC8qIV9fSFdMT0NfSFlCUklEX0NQVVNfSU5URVJGQUNF U19QUkVTRU5UKi8KKysjZWxzZSAvKiFfX1RCQkJJTkRfSFdMT0NfSFlCUklEX0NQVVNfSU5URVJG QUNFU19QUkVTRU5UKi8KKyAgICAgICAgIGJvb2wgY29yZV90eXBlc19wYXJzaW5nX2Jyb2tlbnt0 cnVlfTsKKy0jZW5kaWYgLypfX0hXTE9DX0hZQlJJRF9DUFVTX0lOVEVSRkFDRVNfUFJFU0VOVCov CisrI2VuZGlmIC8qX19UQkJCSU5EX0hXTE9DX0hZQlJJRF9DUFVTX0lOVEVSRkFDRVNfUFJFU0VO VCovCisgCisgICAgICAgICBpZiAoY29yZV90eXBlc19wYXJzaW5nX2Jyb2tlbikgeworICAgICAg ICAgICAgIGZvciAoYXV0byYgY29yZV90eXBlX21hc2sgOiBjb3JlX3R5cGVzX2FmZmluaXR5X21h c2tzX2xpc3QpIHsKK2RpZmYgLS1naXQgYS90ZXN0L0NNYWtlTGlzdHMudHh0IGIvdGVzdC9DTWFr ZUxpc3RzLnR4dAoraW5kZXggYmRhZTllMmIxLi5jMmI5ZDZkYmEgMTAwNjQ0CistLS0gYS90ZXN0 L0NNYWtlTGlzdHMudHh0CisrKysgYi90ZXN0L0NNYWtlTGlzdHMudHh0CitAQCAtMjc1LDkgKzI3 NSw5IEBAIGZ1bmN0aW9uKHRiYl9hZGRfdGJiYmluZF90ZXN0KQorICAgICAgICAgRkFJTF9SRUdV TEFSX0VYUFJFU1NJT04gIlN0YXR1czouKkZBSUxVUkUiCisgICAgICkKKyAKKy0gICAgaWYgKFRB UkdFVCBIV0xPQzo6aHdsb2NfMl80IEFORCBOT1QgSFdMT0NfMl80X1RFU1RTX1NUQVRVU19TSE9X TikKKy0gICAgICAgIG1lc3NhZ2UoU1RBVFVTICJIV0xPQyAyLjQgZGVwZW5kZW50IHRlc3RzIHdl cmUgZW5hYmxlZC4iKQorLSAgICAgICAgc2V0KEhXTE9DXzJfNF9URVNUU19TVEFUVVNfU0hPV04g VFJVRSBQQVJFTlRfU0NPUEUpCisrICAgIGlmIChUQVJHRVQgSFdMT0M6Omh3bG9jXzJfNSBBTkQg Tk9UIEhXTE9DXzJfNV9URVNUU19TVEFUVVNfU0hPV04pCisrICAgICAgICBtZXNzYWdlKFNUQVRV UyAiSFdMT0MgMi41IGRlcGVuZGVudCB0ZXN0cyB3ZXJlIGVuYWJsZWQuIikKKysgICAgICAgIHNl dChIV0xPQ18yXzVfVEVTVFNfU1RBVFVTX1NIT1dOIFRSVUUgUEFSRU5UX1NDT1BFKQorICAgICBl bmRpZigpCisgCisgICAgIGlmIChUQVJHRVQgSFdMT0M6Omh3bG9jXzIgQU5EIE5PVCBIV0xPQ18y X1RFU1RTX1NUQVRVU19TSE9XTikKK0BAIC0yOTEsMjIgKzI5MSwyMiBAQCBmdW5jdGlvbih0YmJf YWRkX3RiYmJpbmRfdGVzdCkKKyAgICAgZW5kaWYoKQorIAorICAgICBsaXN0KEFQUEVORCBIV0xP Q19URVNUX0NBU0VTCistICAgICAgICBod2xvY18yXzQKKysgICAgICAgIGh3bG9jXzJfNQorICAg ICAgICAgaHdsb2NfMgorICAgICAgICAgaHdsb2NfMV8xMQorLSAgICAgICAgaHdsb2NfMl80X2h3 bG9jXzIKKy0gICAgICAgIGh3bG9jXzJfNF9od2xvY18xXzExCisrICAgICAgICBod2xvY18yXzVf aHdsb2NfMgorKyAgICAgICAgaHdsb2NfMl81X2h3bG9jXzFfMTEKKyAgICAgICAgIGh3bG9jXzJf aHdsb2NfMV8xMQorLSAgICAgICAgaHdsb2NfMl80X2h3bG9jXzJfaHdsb2NfMV8xMQorKyAgICAg ICAgaHdsb2NfMl81X2h3bG9jXzJfaHdsb2NfMV8xMQorICAgICApCisgCistICAgIGxpc3QoQVBQ RU5EIEhXTE9DX1RFU1RfQ0FTRV8wX1ZBUlMgdGJiYmluZF8yXzQgImh3bG9jXzJfNCIpCisrICAg IGxpc3QoQVBQRU5EIEhXTE9DX1RFU1RfQ0FTRV8wX1ZBUlMgdGJiYmluZF8yXzUgImh3bG9jXzJf NSIpCisgICAgIGxpc3QoQVBQRU5EIEhXTE9DX1RFU1RfQ0FTRV8xX1ZBUlMgdGJiYmluZF8yICAg Imh3bG9jXzIiKQorICAgICBsaXN0KEFQUEVORCBIV0xPQ19URVNUX0NBU0VfMl9WQVJTIHRiYmJp bmQgICAgICJod2xvY18xXzExIikKKy0gICAgbGlzdChBUFBFTkQgSFdMT0NfVEVTVF9DQVNFXzNf VkFSUyB0YmJiaW5kXzJfNCAiaHdsb2NfMl80LGh3bG9jXzIiKQorLSAgICBsaXN0KEFQUEVORCBI V0xPQ19URVNUX0NBU0VfNF9WQVJTIHRiYmJpbmRfMl80ICJod2xvY18yXzQsaHdsb2NfMV8xMSIp CisrICAgIGxpc3QoQVBQRU5EIEhXTE9DX1RFU1RfQ0FTRV8zX1ZBUlMgdGJiYmluZF8yXzUgImh3 bG9jXzJfNSxod2xvY18yIikKKysgICAgbGlzdChBUFBFTkQgSFdMT0NfVEVTVF9DQVNFXzRfVkFS UyB0YmJiaW5kXzJfNSAiaHdsb2NfMl81LGh3bG9jXzFfMTEiKQorICAgICBsaXN0KEFQUEVORCBI V0xPQ19URVNUX0NBU0VfNV9WQVJTIHRiYmJpbmRfMiAgICJod2xvY18yLGh3bG9jXzFfMTEiKQor LSAgICBsaXN0KEFQUEVORCBIV0xPQ19URVNUX0NBU0VfNl9WQVJTIHRiYmJpbmRfMl80ICJod2xv Y18yXzQsaHdsb2NfMixod2xvY18xXzExIikKKysgICAgbGlzdChBUFBFTkQgSFdMT0NfVEVTVF9D QVNFXzZfVkFSUyB0YmJiaW5kXzJfNSAiaHdsb2NfMl81LGh3bG9jXzIsaHdsb2NfMV8xMSIpCisg CisgICAgIGZvcmVhY2goVEVTVF9DQVNFICR7SFdMT0NfVEVTVF9DQVNFU30pCisgICAgICAgICBs aXN0KEZJTkQgSFdMT0NfVEVTVF9DQVNFUyAke1RFU1RfQ0FTRX0gVEVTVF9DQVNFX0lOREVYKQor QEAgLTMzMSw3ICszMzEsNyBAQCBlbmRmdW5jdGlvbigpCisgIyBDb3B5IGxpYnJhcmllcyB0byB0 ZXN0IGZvbGRlciB0byBtYWtlIGl0IHZpc2libGUgZHVyaW5nIHRlc3RzIGV4ZWN1dGlvbiBpZiBl eHRlcm5hbCBUQkIgaXMgdGVzdGVkLgorICMgVE9ETzogY2hlY2sgYW5kIHVwZGF0ZSBmb3IgbXVs dGktY29uZmlnIGdlbmVyYXRvcnMuCisgaWYgKFRCQl9GT1VORCkKKy0gICAgbGlzdChBUFBFTkQg X3RiYl90ZXN0X2NvbXBvbmVudHMgdGJiIHRiYm1hbGxvYyB0YmJtYWxsb2NfcHJveHkgdGJiYmlu ZCB0YmJiaW5kXzJfMCB0YmJiaW5kXzJfNCkKKysgICAgbGlzdChBUFBFTkQgX3RiYl90ZXN0X2Nv bXBvbmVudHMgdGJiIHRiYm1hbGxvYyB0YmJtYWxsb2NfcHJveHkgdGJiYmluZCB0YmJiaW5kXzJf MCB0YmJiaW5kXzJfNSkKKyAgICAgZm9yZWFjaChfY29tcG9uZW50ICR7X3RiYl90ZXN0X2NvbXBv bmVudHN9KQorICAgICAgICAgaWYgKFRBUkdFVCBUQkI6OiR7X2NvbXBvbmVudH0pCisgICAgICAg ICAgICAgZ2V0X3Byb3BlcnR5KCR7X2NvbXBvbmVudH1fbGliX2ZpbGVfbG9jYXRpb24gVEFSR0VU IFRCQjo6JHtfY29tcG9uZW50fSBQUk9QRVJUWSBMT0NBVElPTikKK0BAIC01OTMsNiArNTkzLDYg QEAgaWYgKE5PVCAiJHtDTUFLRV9TWVNURU1fUFJPQ0VTU09SfSIgTUFUQ0hFUyAibWlwcyIpCisg ICAgIHRiYl9hZGRfdGVzdChTVUJESVIgdGJibWFsbG9jIE5BTUUgdGVzdF9tYWxsb2NfbmV3X2hh bmRsZXIgREVQRU5ERU5DSUVTIFRCQjo6dGJibWFsbG9jX3Byb3h5KQorIGVuZGlmKCkKKyAKKy11 bnNldChIV0xPQ18yXzRfVEVTVFNfU1RBVFVTX1NIT1dOKQorK3Vuc2V0KEhXTE9DXzJfNV9URVNU U19TVEFUVVNfU0hPV04pCisgdW5zZXQoSFdMT0NfMl9URVNUU19TVEFUVVNfU0hPV04pCisgdW5z ZXQoSFdMT0NfMV8xMV9URVNUU19TVEFUVVNfU0hPV04pCitkaWZmIC0tZ2l0IGEvdGVzdC9jb21t b24vY29tbW9uX2FyZW5hX2NvbnN0cmFpbnRzLmggYi90ZXN0L2NvbW1vbi9jb21tb25fYXJlbmFf Y29uc3RyYWludHMuaAoraW5kZXggMmEwYjFlYTk3Li41ZWZjNzEwODIgMTAwNjQ0CistLS0gYS90 ZXN0L2NvbW1vbi9jb21tb25fYXJlbmFfY29uc3RyYWludHMuaAorKysrIGIvdGVzdC9jb21tb24v Y29tbW9uX2FyZW5hX2NvbnN0cmFpbnRzLmgKK0BAIC0zOCw5ICszOCwyNiBAQAorIAorICNpZiAo X1dJTjMyIHx8IF9XSU42NCkgJiYgX19UQkJfSFdMT0NfVkFMSURfRU5WSVJPTk1FTlQKKyAjaW5j bHVkZSA8d2luZG93cy5oPgorLWludCBnZXRfcHJvY2Vzc29yc19ncm91cHNfY291bnQoKSB7IHJl dHVybiBHZXRBY3RpdmVQcm9jZXNzb3JHcm91cENvdW50KCk7IH0KKytpbnQgZ2V0X3Byb2Nlc3Nv cnNfZ3JvdXBfY291bnQoKSB7CisrICAgIFNZU1RFTV9JTkZPIHNpOworKyAgICBHZXROYXRpdmVT eXN0ZW1JbmZvKCZzaSk7CisrICAgIERXT1JEX1BUUiBwYW0sIHNhbSwgbSA9IDE7CisrICAgIEdl dFByb2Nlc3NBZmZpbml0eU1hc2soIEdldEN1cnJlbnRQcm9jZXNzKCksICZwYW0sICZzYW0gKTsK KysgICAgaW50IG5wcm9jID0gMDsKKysgICAgZm9yICggc3RkOjpzaXplX3QgaSA9IDA7IGkgPCBz aXplb2YoRFdPUkRfUFRSKSAqIENIQVJfQklUOyArK2ksIG0gPDw9IDEgKSB7CisrICAgICAgICBp ZiAoIHBhbSAmIG0gKQorKyAgICAgICAgICAgICsrbnByb2M7CisrICAgIH0KKysgICAgLy8gU2V0 dGluZyB1cCBwcm9jZXNzb3IgZ3JvdXBzIGluIGNhc2UgdGhlIHByb2Nlc3MgZG9lcyBub3QgcmVz dHJpY3QgYWZmaW5pdHkgbWFzayBhbmQgbW9yZSB0aGFuIG9uZSBwcm9jZXNzb3IgZ3JvdXAgaXMg cHJlc2VudAorKyAgICBpZiAoIG5wcm9jID09IChpbnQpc2kuZHdOdW1iZXJPZlByb2Nlc3NvcnMg ICkgeworKyAgICAgICAgLy8gVGhlIHByb2Nlc3MgZG9lcyBub3QgaGF2ZSByZXN0cmljdGluZyBh ZmZpbml0eSBtYXNrIGFuZCBtdWx0aXBsZSBwcm9jZXNzb3IgZ3JvdXBzIGFyZSBwb3NzaWJsZQor KyAgICAgICAgcmV0dXJuIChpbnQpR2V0QWN0aXZlUHJvY2Vzc29yR3JvdXBDb3VudCgpOworKyAg ICB9IGVsc2UgeworKyAgICAgICAgcmV0dXJuIDE7CisrICAgIH0KKyt9CisgI2Vsc2UKKy1pbnQg Z2V0X3Byb2Nlc3NvcnNfZ3JvdXBzX2NvdW50KCkgeyByZXR1cm4gMTsgfQorK2ludCBnZXRfcHJv Y2Vzc29yc19ncm91cF9jb3VudCgpIHsgcmV0dXJuIDE7IH0KKyAjZW5kaWYKKyAKKyAvL1RPRE86 IFdyaXRlIGEgdGVzdCB0aGF0IGNoZWNrcyBmb3IgbWVtb3J5IGxlYWtzIGR1cmluZyBkeW5hbWlj IGxpbmsvdW5saW5rIG9mIFRCQmJpbmQuCitAQCAtNjksNiArODYsNyBAQCBpbnQgZ2V0X3Byb2Nl c3NvcnNfZ3JvdXBzX2NvdW50KCkgeyByZXR1cm4gMTsgfQorICNlbmRpZgorIAorICNkZWZpbmUg X19IV0xPQ19IWUJSSURfQ1BVU19JTlRFUkZBQ0VTX1BSRVNFTlQgKEhXTE9DX0FQSV9WRVJTSU9O ID49IDB4MjA0MDApCisrI2RlZmluZSBfX0hXTE9DX1RPUE9MT0dZX0ZMQUdfUkVTVFJJQ1RfVE9f Q1BVQklORElOR19QUkVTRU5UIChIV0xPQ19BUElfVkVSU0lPTiA+PSAweDIwNTAwKQorIC8vIEF0 IHRoaXMgbW9tZW50IHRoZSBoeWJyaWQgQ1BVcyBIV0xPQyBpbnRlcmZhY2VzIHJldHVybnMgdW5l eHBlY3RlZCByZXN1bHRzIG9uIHNvbWUgV2luZG93cyBtYWNoaW5lcworIC8vIGluIHRoZSAzMi1i aXQgYXJjaCBtb2RlLgorICNkZWZpbmUgX19IV0xPQ19IWUJSSURfQ1BVU19JTlRFUkZBQ0VTX1ZB TElEICghX1dJTjMyIHx8IF9XSU42NCkKK0BAIC0xNTMsOSArMTcxLDE4IEBAIGNsYXNzIHN5c3Rl bV9pbmZvIHsKKyAKKyAgICAgc3lzdGVtX2luZm8oKSB7CisgICAgICAgICBod2xvY19yZXF1aXJl X2V4KGh3bG9jX3RvcG9sb2d5X2luaXQsICZ0b3BvbG9neSk7CisrI2lmIF9fSFdMT0NfVE9QT0xP R1lfRkxBR19SRVNUUklDVF9UT19DUFVCSU5ESU5HX1BSRVNFTlQKKysgICAgICAgIGlmICggZ2V0 X3Byb2Nlc3NvcnNfZ3JvdXBfY291bnQoKSA9PSAxICkgeworKyAgICAgICAgICAgIFJFUVVJUkUo CisrICAgICAgICAgICAgICAgIGh3bG9jX3RvcG9sb2d5X3NldF9mbGFncyh0b3BvbG9neSwKKysg ICAgICAgICAgICAgICAgICAgIEhXTE9DX1RPUE9MT0dZX0ZMQUdfSVNfVEhJU1NZU1RFTSB8Cisr ICAgICAgICAgICAgICAgICAgICBIV0xPQ19UT1BPTE9HWV9GTEFHX1JFU1RSSUNUX1RPX0NQVUJJ TkRJTkcpID09IDAKKysgICAgICAgICAgICApOworKyAgICAgICAgfQorKyNlbmRpZgorICAgICAg ICAgaHdsb2NfcmVxdWlyZV9leChod2xvY190b3BvbG9neV9sb2FkLCB0b3BvbG9neSk7CisgCist ICAgICAgICBpZiAoIGdldF9wcm9jZXNzb3JzX2dyb3Vwc19jb3VudCgpID4gMSApIHsKKysgICAg ICAgIGlmICggZ2V0X3Byb2Nlc3NvcnNfZ3JvdXBfY291bnQoKSA+IDEgKSB7CisgICAgICAgICAg ICAgcHJvY2Vzc19jcHVzZXQgPSBod2xvY19iaXRtYXBfZHVwKGh3bG9jX3RvcG9sb2d5X2dldF9j b21wbGV0ZV9jcHVzZXQodG9wb2xvZ3kpKTsKKyAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAg ICAgcHJvY2Vzc19jcHVzZXQgPSBod2xvY19iaXRtYXBfYWxsb2MoKTsKK0BAIC00MzQsNyArNDYx LDcgQEAgc3lzdGVtX2luZm86OmFmZmluaXR5X21hc2sgZ2V0X2FyZW5hX2FmZmluaXR5KHRiYjo6 dGFza19hcmVuYSYgdGEpIHsKKyAgICAgICAgICAgICAgICAgYmFycmllci53YWl0KCk7CisgICAg ICAgICAgICAgICAgIHRiYjo6c3Bpbl9tdXRleDo6c2NvcGVkX2xvY2sgbG9jayhhZmZpbml0eV9t dXRleCk7CisgICAgICAgICAgICAgICAgIHN5c3RlbV9pbmZvOjphZmZpbml0eV9tYXNrIHRocmVh ZF9hZmZpbml0eSA9IHN5c3RlbV9pbmZvOjphbGxvY2F0ZV9jdXJyZW50X2FmZmluaXR5X21hc2so KTsKKy0gICAgICAgICAgICAgICAgaWYgKGdldF9wcm9jZXNzb3JzX2dyb3Vwc19jb3VudCgpID09 IDEpIHsKKysgICAgICAgICAgICAgICAgaWYgKGdldF9wcm9jZXNzb3JzX2dyb3VwX2NvdW50KCkg PT0gMSkgeworICAgICAgICAgICAgICAgICAgICAgUkVRVUlSRV9NRVNTQUdFKGh3bG9jX2JpdG1h cF9pc2VxdWFsKHRocmVhZF9hZmZpbml0eSwgYXJlbmFfYWZmaW5pdHkpLAorICAgICAgICAgICAg ICAgICAgICAgICAgICJUaHJlYWRzIGhhdmUgZGlmZmVyZW50IG1hc2tzIG9uIG1hY2hpbmUgd2l0 aG91dCBzZXZlcmFsIHByb2Nlc3NvcnMgZ3JvdXBzLiIpOworICAgICAgICAgICAgICAgICB9CitA QCAtNTMyLDcgKzU1OSw3IEBAIGNvbnN0cmFpbnRzX2NvbnRhaW5lciBnZW5lcmF0ZV9jb25zdHJh aW50c192YXJpZXR5KCkgeworICAgICAgICAgfQorIAorICAgICAgICAgLy8gU29tZSBjb25zdHJh aW50cyBtYXkgY2F1c2UgdW5leHBlY3RlZCBiZWhhdmlvciwgd2hpY2ggd291bGQgYmUgZml4ZWQg bGF0ZXIuCistICAgICAgICBpZiAoZ2V0X3Byb2Nlc3NvcnNfZ3JvdXBzX2NvdW50KCkgPiAxKSB7 CisrICAgICAgICBpZiAoZ2V0X3Byb2Nlc3NvcnNfZ3JvdXBfY291bnQoKSA+IDEpIHsKKyAgICAg ICAgICAgICBmb3IoYXV0byBpdCA9IHJlc3VsdHMuYmVnaW4oKTsgaXQgIT0gcmVzdWx0cy5lbmQo KTsgKytpdCkgeworICAgICAgICAgICAgICAgICBpZiAoaXQtPm1heF90aHJlYWRzX3Blcl9jb3Jl ICE9IHRiYjo6dGFza19hcmVuYTo6YXV0b21hdGljCisgICAgICAgICAgICAgICAgICAgICYmIChp dC0+bnVtYV9pZCA9PSB0YmI6OnRhc2tfYXJlbmE6OmF1dG9tYXRpYyB8fCB0YmI6OmluZm86Om51 bWFfbm9kZXMoKS5zaXplKCkgPT0gMSkKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvdGJiL3BhdGNoZXMv MDEtaHdsb2MtcGtnY29uZmlnLnBhdGNoIGIvc3JjcGtncy90YmIvcGF0Y2hlcy8wMS1od2xvYy1w a2djb25maWcucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4y NzllYmM0Mzk3Y2QKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3RiYi9wYXRjaGVzLzAxLWh3 bG9jLXBrZ2NvbmZpZy5wYXRjaApAQCAtMCwwICsxLDUyIEBACitCYXNlZCBvbiBodHRwczovL2dp dGh1Yi5jb20vb25lYXBpLXNyYy9vbmVUQkIvcHVsbC80OTgKK1R3ZWFrZWQgYSBiaXQgdG8gd29y ayBvbiBgdjIwMjEuMy4wYAorCitkaWZmIC0tZ2l0IGEvc3JjL3RiYmJpbmQvQ01ha2VMaXN0cy50 eHQgYi9zcmMvdGJiYmluZC9DTWFrZUxpc3RzLnR4dAoraW5kZXggZTVjZGJmOGJiLi5hNDAzMzIx MGEgMTAwNjQ0CistLS0gYS9zcmMvdGJiYmluZC9DTWFrZUxpc3RzLnR4dAorKysrIGIvc3JjL3Ri YmJpbmQvQ01ha2VMaXN0cy50eHQKK0BAIC0zNyw2ICszNywxMCBAQCBmdW5jdGlvbih0YmJiaW5k X2J1aWxkIFRCQkJJTkRfTkFNRSBSRVFVSVJFRF9IV0xPQ19UQVJHRVQpCisgICAgICAgICAkPElO U1RBTExfSU5URVJGQUNFOiR7Q01BS0VfSU5TVEFMTF9JTkNMVURFRElSfT4KKyAgICAgICAgICR7 SFdMT0NfSU5DTFVERV9ESVJTfSAjIHBrZy1jb25maWcgZGVmaW5lZAorICAgICApCisrCXRhcmdl dF9saW5rX2RpcmVjdG9yaWVzKCR7VEJCQklORF9OQU1FfQorKwkJUFJJVkFURQorKwkJJHtIV0xP Q19MSUJSQVJZX0RJUlN9ICMgcGtnLWNvbmZpZyBkZWZpbmVkCisrCSkKKyAKKyAgICAgdGFyZ2V0 X2NvbXBpbGVfb3B0aW9ucygke1RCQkJJTkRfTkFNRX0KKyAgICAgICAgIFBSSVZBVEUKK0BAIC02 OSw3ICs2OSw2IEBAIGZ1bmN0aW9uKHRiYmJpbmRfYnVpbGQgVEJCQklORF9OQU1FIFJFUVVJUkVE X0hXTE9DX1RBUkdFVCkKKyAgICAgICAgICAgICBQUklWQVRFCisgICAgICAgICAgICAgJHtUQkJf TElCX0xJTktfRkxBR1N9CisgICAgICAgICAgICAgJHtUQkJfQ09NTU9OX0xJTktfRkxBR1N9Cist ICAgICAgICAgICAgJHtIV0xPQ19MSUJSQVJZX0RJUlN9ICMgcGtnLWNvbmZpZyBkZWZpbmVkCisg ICAgICAgICApCisgICAgIGVsc2UoKQorICAgICAgICAgdGFyZ2V0X2xpbmtfbGlicmFyaWVzKCR7 VEJCQklORF9OQU1FfQorQEAgLTc2LDcgKzc2LDYgQEAgZnVuY3Rpb24odGJiYmluZF9idWlsZCBU QkJCSU5EX05BTUUgUkVRVUlSRURfSFdMT0NfVEFSR0VUKQorICAgICAgICAgICAgIFBSSVZBVEUK KyAgICAgICAgICAgICAke1RCQl9MSUJfTElOS19GTEFHU30KKyAgICAgICAgICAgICAke1RCQl9D T01NT05fTElOS19GTEFHU30KKy0gICAgICAgICAgICAke0hXTE9DX0xJQlJBUllfRElSU30gIyBw a2ctY29uZmlnIGRlZmluZWQKKyAgICAgICAgICkKKyAgICAgZW5kaWYoKQorIAorZGlmZiAtLWdp dCBhL3Rlc3QvQ01ha2VMaXN0cy50eHQgYi90ZXN0L0NNYWtlTGlzdHMudHh0CitpbmRleCBiNzY4 NzU5ZDUuLjNlYjgzNTdlNiAxMDA2NDQKKy0tLSBhL3Rlc3QvQ01ha2VMaXN0cy50eHQKKysrKyBi L3Rlc3QvQ01ha2VMaXN0cy50eHQKK0BAIC0yNTgsNyArMjU4LDEyIEBAIGZ1bmN0aW9uKHRiYl9h ZGRfdGJiYmluZF90ZXN0KQorICAgICAgICAgKQorICAgICAgICAgc2V0X3Byb3BlcnR5KAorICAg ICAgICAgICAgIFRBUkdFVCAke190YmJiaW5kX3Rlc3RfTkFNRX0KKy0gICAgICAgICAgICBQUk9Q RVJUWSBMSU5LX0xJQlJBUklFUyAke0hXTE9DX0xJQlJBUllfRElSU30gJHtIV0xPQ19MSUJSQVJJ RVN9CisrICAgICAgICAgICAgUFJPUEVSVFkgTElOS19MSUJSQVJJRVMgJHtIV0xPQ19MSUJSQVJJ RVN9CisrICAgICAgICAgICAgQVBQRU5ECisrICAgICAgICApCisrICAgICAgICBzZXRfcHJvcGVy dHkoCisrICAgICAgICAgICAgVEFSR0VUICR7X3RiYmJpbmRfdGVzdF9OQU1FfQorKwkJCVBST1BF UlRZIExJTktfRElSRUNUT1JJRVMgJHtIV0xPQ19MSUJSQVJZX0RJUlN9CisgICAgICAgICAgICAg QVBQRU5ECisgICAgICAgICApCisgICAgICAgICBzZXRfcHJvcGVydHkoCmRpZmYgLS1naXQgYS9z cmNwa2dzL3RiYi9wYXRjaGVzL2hvc3RuYW1lLXVzYWdlLnBhdGNoIGIvc3JjcGtncy90YmIvcGF0 Y2hlcy9ob3N0bmFtZS11c2FnZS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg NGFlZmVmZjE5MmI1Li4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy90YmIvcGF0Y2hlcy9ob3N0 bmFtZS11c2FnZS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDExICswLDAgQEAKLS0tLSBhL2J1 aWxkL3ZlcnNpb25faW5mb19saW51eC5zaAotKysrIGIvYnVpbGQvdmVyc2lvbl9pbmZvX2xpbnV4 LnNoCi1AQCAtMjAsNyArMjAsNyBAQAotIAotICMgU2NyaXB0IHVzZWQgdG8gZ2VuZXJhdGUgdmVy c2lvbiBpbmZvIHN0cmluZwotIGVjaG8gIiNkZWZpbmUgX19UQkJfVkVSU0lPTl9TVFJJTkdTKE4p IFxcIgotLWVjaG8gJyNOIjogQlVJTERfSE9TVCciXHRcdCJgaG9zdG5hbWUgLXNgIiAoImB1bmFt ZSAtbWAiKSInIiBFTkRMIFwnCi0rZWNobyAnI04iOiBCVUlMRF9IT1NUJyJcdFx0ImBob3N0bmFt ZWAiICgiYHVuYW1lIC1tYCIpIiciIEVOREwgXCcKLSAjIGZpbmQgT1MgbmFtZSBpbiAqLXJlbGVh c2UgYW5kIGlzc3VlKiBmaWxlcyBieSBmaWx0ZXJpbmcgYmxhbmsgbGluZXMgYW5kIGxzYi1yZWxl YXNlIGNvbnRlbnQgb3V0Ci0gZWNobyAnI04iOiBCVUlMRF9PUyciXHRcdCJgbHNiX3JlbGVhc2Ug LXNkIDI+L2Rldi9udWxsIHwgZ3JlcCAtaWggJ1thLXpdICcgLSAvZXRjLypyZWxlYXNlIC9ldGMv aXNzdWUgMj4vZGV2L251bGwgfCBoZWFkIC0xIHwgc2VkIC1lICdzL1siXFxcXF0vL2cnYCciIEVO REwgXCcKLSBlY2hvICcjTiI6IEJVSUxEX0tFUk5FTCciXHQiYHVuYW1lIC1zcnZgJyIgRU5ETCBc JwpkaWZmIC0tZ2l0IGEvc3JjcGtncy90YmIvcGF0Y2hlcy9tdXNsLnBhdGNoIGIvc3JjcGtncy90 YmIvcGF0Y2hlcy9tdXNsLnBhdGNoCmluZGV4IGE4ODY3ZWI1Mzc5My4uZWM4OWM2YTk1ZmM2IDEw MDY0NAotLS0gYS9zcmNwa2dzL3RiYi9wYXRjaGVzL211c2wucGF0Y2gKKysrIGIvc3JjcGtncy90 YmIvcGF0Y2hlcy9tdXNsLnBhdGNoCkBAIC0xLDUgKzEsNSBAQAotLS0tIGEvc3JjL3RiYm1hbGxv Yy9wcm94eS5jcHAJMjAxOC0xMC0xNyAxNDowNTozMS4zMTE3MjMwMTMgKzAyMDAKLSsrKyBiL3Ny Yy90YmJtYWxsb2MvcHJveHkuY3BwCTIwMTgtMTAtMTcgMTQ6MDY6MzIuOTcyNzI2MTk0ICswMjAw CistLS0gYS9zcmMvdGJibWFsbG9jX3Byb3h5L3Byb3h5LmNwcAkyMDE4LTEwLTE3IDE0OjA1OjMx LjMxMTcyMzAxMyArMDIwMAorKysrIGIvc3JjL3RiYm1hbGxvY19wcm94eS9wcm94eS5jcHAJMjAx OC0xMC0xNyAxNDowNjozMi45NzI3MjYxOTQgKzAyMDAKIEBAIC0yOCw2ICsyOCw3IEBACiAgLy8g b2YgYWxpZ25lZF9hbGxvYyBhcyByZXF1aXJlZCBieSBuZXcgQysrIHN0YW5kYXJkLCB0aGlzIG1h a2VzIGl0IGhhcmQgdG8KICAvLyByZWRlZmluZSBhbGlnbmVkX2FsbG9jIGhlcmUuIEhvd2V2ZXIs IHJ1bm5pbmcgb24gc3lzdGVtcyB3aXRoIG5ldyBsaWJjCmRpZmYgLS1naXQgYS9zcmNwa2dzL3Ri Yi90ZW1wbGF0ZSBiL3NyY3BrZ3MvdGJiL3RlbXBsYXRlCmluZGV4IGFlZWY2ZWJkZDA2MS4uNDc2 NTU4MjlmNzQ0IDEwMDY0NAotLS0gYS9zcmNwa2dzL3RiYi90ZW1wbGF0ZQorKysgYi9zcmNwa2dz L3RiYi90ZW1wbGF0ZQpAQCAtMSw3NiArMSwzMyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAndGJi JwogcGtnbmFtZT10YmIKLXZlcnNpb249MjAyMC5VMwordmVyc2lvbj0yMDIxLjMuMAogcmV2aXNp b249MQotIyB2ZXJzaW9uIHJld3JpdGU6IDIwMTdfVTcgKHVwc3RyZWFtKSA9PiAyMDE3LjcgKHhi cHMpCi1fdmVyPSR7dmVyc2lvbi8uL199Ci13cmtzcmM9Im9uZVRCQi0ke192ZXJ9IgotYnVpbGRf c3R5bGU9Z251LW1ha2VmaWxlCi1ob3N0bWFrZWRlcGVuZHM9ImNtYWtlIgord3Jrc3JjPSJvbmVU QkItJHt2ZXJzaW9ufSIKK2J1aWxkX3N0eWxlPWNtYWtlCittYWtlZGVwZW5kcz0ibGliaHdsb2Mt ZGV2ZWwgbGliZ29tcC1kZXZlbCIKIHNob3J0X2Rlc2M9IkludGVsIFRocmVhZGluZyBCdWlsZGlu ZyBCbG9ja3MiCiBtYWludGFpbmVyPSJBbmRyZWEgQnJhbmNhbGVvbmkgPGFiY0Bwb21wZWwubWU+ IgogbGljZW5zZT0iQXBhY2hlLTIuMCIKIGhvbWVwYWdlPSJodHRwczovL3d3dy50aHJlYWRpbmdi dWlsZGluZ2Jsb2Nrcy5vcmciCi1kaXN0ZmlsZXM9Imh0dHBzOi8vZ2l0aHViLmNvbS9vbmVhcGkt c3JjL29uZVRCQi9hcmNoaXZlLyR7X3Zlcn0udGFyLmd6IgotY2hlY2tzdW09MjEwM2NjNjIzOGM5 MzU2NjRmODc2ODA2MThmNjY4NGQ1NzUwMWQ0YTJmYThlYThmNmM5N2FkNmZmN2RjNzIyYQotCi1j YXNlICIkWEJQU19UQVJHRVRfTUFDSElORSIgaW4KLQl4ODZfNjQqKQotCQltYWtlX2J1aWxkX2Fy Z3M9ImFyY2g9aW50ZWw2NCIKLQkJOzsKLQlpNjg2KikKLQkJbWFrZV9idWlsZF9hcmdzPSJhcmNo PWlhMzIiCi0JCTs7Ci0JYXJtdjdsKikKLQkJbWFrZV9idWlsZF9hcmdzPSJhcmNoPWFybXY3Igot CQk7OwotCWFhcmNoNjQqKQotCQltYWtlX2J1aWxkX2FyZ3M9ImFyY2g9YXJtNjQiCi0JCTs7Ci0J cHBjNjQqKQotCQltYWtlX2J1aWxkX2FyZ3M9ImFyY2g9cHBjNjQiCi0JCTs7Ci0JcHBjKikKLQkJ bWFrZV9idWlsZF9hcmdzPSJhcmNoPXBwYzMyIgotCQk7OwotCSopCi0JCSMgbWFrZSBzdXJlIHRv IGZhbGwgYmFjayBpbnN0ZWFkIG9mIGxldHRpbmcgaG9zdCB1bmFtZSBjb250cm9sIGl0Ci0JCW1h a2VfYnVpbGRfYXJncz0iYXJjaD1nZW5lcmljIgotCQk7OwotZXNhYwotCi1wb3N0X2V4dHJhY3Qo KSB7Ci0Jc2VkIC1pICdzfENQTFVTID0gZy4ufENQTFVTID0gJChDWFgpfGcnIGJ1aWxkL2xpbnV4 LmdjYy5pbmMKLQlzZWQgLWkgJ3N8Q09OTFkgPSBnY2N8Q09OTFkgPSAkKENDKXxnJyBidWlsZC9s aW51eC5nY2MuaW5jCitkaXN0ZmlsZXM9Imh0dHBzOi8vZ2l0aHViLmNvbS9vbmVhcGktc3JjL29u ZVRCQi9hcmNoaXZlL3Yke3ZlcnNpb259LnRhci5neiIKK2NoZWNrc3VtPThmNjE2NTYxNjAzNjk1 YmJiODM4NzE4NzVkMmM2MDUxZWEyOGY4MTg3ZGJlNTkyOTk5NjEzNjk5MDRkMWQ0OWUKIAorcHJl X3BhdGNoKCkgewogCSMgYWx0ZXJuYXRpdmUgbWlnaHQgYmU6CiAJIyBodHRwczovL2dpdC5hbHBp bmVsaW51eC5vcmcvY2dpdC9hcG9ydHMvdHJlZS90ZXN0aW5nL2xpYnRiYi9nbGliYy1zdHJ1Y3Qt bWFsbGluZm8ucGF0Y2gKIAlpZiBbICIkWEJQU19UQVJHRVRfTElCQyIgPSAibXVzbCIgXTsgdGhl bgogCQl2c2VkIC1lICJzQCNkZWZpbmUgTUFMTE9DX1VOSVhMSUtFX09WRVJMT0FEX0VOQUJMRUQg X19saW51eF9fQEAiIFwKLQkJICAtaSBzcmMvdGJibWFsbG9jL3Byb3h5LmgKKwkJICAtaSBzcmMv dGJibWFsbG9jX3Byb3h5L3Byb3h5LmgKIAlmaQogfQogCi1kb19pbnN0YWxsKCkgewotCXZta2Rp ciB1c3IvbGliCi0JdmNvcHkgYnVpbGQvbGludXhfKi8qLnNvKiB1c3IvbGliCi0Jdm1rZGlyIHVz ci9pbmNsdWRlL3RiYgotCXZjb3B5IGluY2x1ZGUvdGJiLyogdXNyL2luY2x1ZGUvdGJiCi0KLQlj bWFrZSBcCi0JCS1ESU5TVEFMTF9ESVI9JERFU1RESVIvdXNyL2xpYi9jbWFrZS9UQkIgXAotCQkt RFNZU1RFTV9OQU1FPUxpbnV4IFwKLQkJLURMSUJfUkVMX1BBVEg9Li4vLi4gXAotCQktRElOQ19S RUxfUEFUSD0uLi8uLi8uLi9pbmNsdWRlIFwKLQkJLVAgY21ha2UvdGJiX2NvbmZpZ19pbnN0YWxs ZXIuY21ha2UKLX0KLQogdGJiLWRldmVsX3BhY2thZ2UoKSB7CiAJZGVwZW5kcz0iJHtzb3VyY2Vw a2d9Pj0ke3ZlcnNpb259XyR7cmV2aXNpb259IgogCXNob3J0X2Rlc2MrPSIgLSBkZXZlbG9wbWVu dCBmaWxlcyIKIAlwa2dfaW5zdGFsbCgpIHsKIAkJdm1vdmUgdXNyL2luY2x1ZGUKLQkJdm1vdmUg InVzci9saWIvKi5zbyIKIAkJdm1vdmUgdXNyL2xpYi9jbWFrZQorCQl2bW92ZSB1c3IvbGliL3Br Z2NvbmZpZworCQl2bW92ZSB1c3IvbGliLyouc28KIAl9CiB9CgpGcm9tIGJkMDk0NmQ3YjQxNzlk MzZhN2RlYzhkMjIzNjk5MTk1Yjc3MDY0NzAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206 IEFydHVyIFNpbmlsYSA8ZnJlZXNvZnR3YXJlQGxvZ2FyaXRobXVzLmRldj4KRGF0ZTogU3VuLCAx OCBKdWwgMjAyMSAxODoyOTozOCArMDMwMApTdWJqZWN0OiBbUEFUQ0ggMDMvMTFdIE9wZW5TdWJk aXY6IHVwZGF0ZSB0byAzLjQuNC4KCi0tLQogc3JjcGtncy9PcGVuU3ViZGl2L3RlbXBsYXRlIHwg NCArKy0tCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL3NyY3BrZ3MvT3BlblN1YmRpdi90ZW1wbGF0ZSBiL3NyY3BrZ3MvT3BlblN1 YmRpdi90ZW1wbGF0ZQppbmRleCBiN2E1ZTE2ZWZiY2YuLmRmYmYyOWNjMWE1MiAxMDA2NDQKLS0t IGEvc3JjcGtncy9PcGVuU3ViZGl2L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvT3BlblN1YmRpdi90 ZW1wbGF0ZQpAQCAtMSw2ICsxLDYgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ09wZW5TdWJkaXYn CiBwa2duYW1lPU9wZW5TdWJkaXYKLXZlcnNpb249My40LjMKK3ZlcnNpb249My40LjQKIHJldmlz aW9uPTEKIHdya3NyYz0iT3BlblN1YmRpdi0ke3ZlcnNpb24vLy4vX30iCiBidWlsZF9zdHlsZT1j bWFrZQpAQCAtMTMsNyArMTMsNyBAQCBtYWludGFpbmVyPSJKb2huIDxtZUBqb2hubnluYXRvci5k ZXY+IgogbGljZW5zZT0iQXBhY2hlLTIuMCIKIGhvbWVwYWdlPSJodHRwOi8vZ3JhcGhpY3MucGl4 YXIuY29tL29wZW5zdWJkaXYvZG9jcy9pbnRyby5odG1sIgogZGlzdGZpbGVzPSJodHRwczovL2dp dGh1Yi5jb20vUGl4YXJBbmltYXRpb25TdHVkaW9zL09wZW5TdWJkaXYvYXJjaGl2ZS92JHt2ZXJz aW9uLy8uL199LnRhci5neiIKLWNoZWNrc3VtPTdiMjJlYjI3ZDYzNmFiMGMxZTAzNzIyYzdhNWE1 YmQ0ZjExNjY0ZWU2NWM5YjQ4ZjM0MWE2ZDBjZTdmMzY3NDUKK2NoZWNrc3VtPTIwZDQ5ZjgwYTJi Nzc4YWQ0ZDAxZjA5MWFkODhkOGMyZjkxY2Y2YzczNjM5NDBjNjIxMzI0MWNlNmYxMDQ4ZmIKIAog aWYgWyAiJENST1NTX0JVSUxEIiBdOyB0aGVuCiAJaG9zdG1ha2VkZXBlbmRzKz0iIE9wZW5TdWJk aXYiCgpGcm9tIGIwZGMzYzgzZjZmYzM2N2QwN2I2ODZjYzRkODM2ZTBjZTZlODdiMmIgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IEFydHVyIFNpbmlsYSA8ZnJlZXNvZnR3YXJlQGxvZ2Fy aXRobXVzLmRldj4KRGF0ZTogU3VuLCAxOCBKdWwgMjAyMSAxODoyOTozOCArMDMwMApTdWJqZWN0 OiBbUEFUQ0ggMDQvMTFdIFBydXNhU2xpY2VyOiB1cGRhdGUgdG8gMi4zLjMuCgotLS0KIHNyY3Br Z3MvUHJ1c2FTbGljZXIvcGF0Y2hlcy9jcm9zcy5wYXRjaCB8IDExIC0tLS0tLS0tLS0tCiBzcmNw a2dzL1BydXNhU2xpY2VyL3RlbXBsYXRlICAgICAgICAgICAgfCAgNCArKy0tCiAyIGZpbGVzIGNo YW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMTMgZGVsZXRpb25zKC0pCiBkZWxldGUgbW9kZSAxMDA2 NDQgc3JjcGtncy9QcnVzYVNsaWNlci9wYXRjaGVzL2Nyb3NzLnBhdGNoCgpkaWZmIC0tZ2l0IGEv c3JjcGtncy9QcnVzYVNsaWNlci9wYXRjaGVzL2Nyb3NzLnBhdGNoIGIvc3JjcGtncy9QcnVzYVNs aWNlci9wYXRjaGVzL2Nyb3NzLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBk NjRhNDUwZDllOWYuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL1BydXNhU2xpY2VyL3BhdGNo ZXMvY3Jvc3MucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxMSArMCwwIEBACi0tLS0gYS9zcmMv YXZyZHVkZS9DTWFrZUxpc3RzLnR4dAkyMDIwLTA2LTA0IDA5OjE5OjI2LjAxNzI1MTIxNSArMDIw MAotKysrIGIvc3JjL2F2cmR1ZGUvQ01ha2VMaXN0cy50eHQJMjAyMC0wNi0wNCAwOToxOTozNi40 NjgyNTA3NzEgKzAyMDAKLUBAIC04Myw3ICs4Myw3IEBAIGFkZF9leGVjdXRhYmxlKGF2cmR1ZGUt Y29uZi1nZW4gY29uZi1nZW4KLSBhZGRfY3VzdG9tX2NvbW1hbmQoCi0gICAgIERFUEVORFMgYXZy ZHVkZS1jb25mLWdlbiAke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vYXZyZHVkZS1zbGljM3Iu Y29uZgotICAgICBPVVRQVVQgJHtDTUFLRV9DVVJSRU5UX0JJTkFSWV9ESVJ9L2F2cmR1ZGUtc2xp YzNyLmNvbmYuaAotLSAgICBDT01NQU5EICQ8VEFSR0VUX0ZJTEU6YXZyZHVkZS1jb25mLWdlbj4g YXZyZHVkZS1zbGljM3IuY29uZiBhdnJkdWRlX3NsaWMzcl9jb25mICR7Q01BS0VfQ1VSUkVOVF9C SU5BUllfRElSfS9hdnJkdWRlLXNsaWMzci5jb25mLmgKLSsgICAgQ09NTUFORCBhdnJkdWRlLWNv bmYtZ2VuIGF2cmR1ZGUtc2xpYzNyLmNvbmYgYXZyZHVkZV9zbGljM3JfY29uZiAke0NNQUtFX0NV UlJFTlRfQklOQVJZX0RJUn0vYXZyZHVkZS1zbGljM3IuY29uZi5oCi0gICAgIFdPUktJTkdfRElS RUNUT1JZICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfQotICkKLSAKZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MvUHJ1c2FTbGljZXIvdGVtcGxhdGUgYi9zcmNwa2dzL1BydXNhU2xpY2VyL3RlbXBsYXRl CmluZGV4IGRkMGU3NmNiODAxNy4uYTkzODMyYWMwMmU0IDEwMDY0NAotLS0gYS9zcmNwa2dzL1By dXNhU2xpY2VyL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvUHJ1c2FTbGljZXIvdGVtcGxhdGUKQEAg LTEsNiArMSw2IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdQcnVzYVNsaWNlcicKIHBrZ25hbWU9 UHJ1c2FTbGljZXIKLXZlcnNpb249Mi4zLjAKK3ZlcnNpb249Mi4zLjMKIHJldmlzaW9uPTEKIHdy a3NyYz0iUHJ1c2FTbGljZXItdmVyc2lvbl8ke3ZlcnNpb259IgogYnVpbGRfc3R5bGU9Y21ha2UK QEAgLTE2LDcgKzE2LDcgQEAgbWFpbnRhaW5lcj0iSmFzcGVyIENoYW4gPGphc3BlcmNoYW41MTVA Z21haWwuY29tPiIKIGxpY2Vuc2U9IkdQTC0zLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6 Ly93d3cucHJ1c2EzZC5jb20vcHJ1c2FzbGljZXIvIgogZGlzdGZpbGVzPSJodHRwczovL2dpdGh1 Yi5jb20vcHJ1c2EzZC9QcnVzYXNsaWNlci9hcmNoaXZlL3ZlcnNpb25fJHt2ZXJzaW9ufS50YXIu Z3oiCi1jaGVja3N1bT1jZDNiYWM1ZTI5YjU0NDFmYzQ2OTBmMjhjZDdiMTA2NGU5N2RjMDAyMDdi YmRjODhmN2JkNzgzMjMwOGQ2Y2E1CitjaGVja3N1bT1kZWRhMjA5NTA1Zjc0MGFjM2Q2ZjU5Y2Iy YTk2MGY0ZGY5MDgyNjllZTA5YmQzMGNkNGVkYjlmYzQ3MmQyOWFjCiBub2Nyb3NzPSJodHRwczov L2J1aWxkLnZvaWRsaW51eC5vcmcvYnVpbGRlcnMvYXJtdjdsX2J1aWxkZXIvYnVpbGRzLzI1MjMw L3N0ZXBzL3NoZWxsXzMvbG9ncy9zdGRpbyIKIAogU2xpYzNyUEVfcGFja2FnZSgpIHsKCkZyb20g YjNlNGZkMjQ1MWE5ZTc3NzczYTE5MjQ4Y2JkNTAwZjEyZTI4MmMxZCBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogQXJ0dXIgU2luaWxhIDxmcmVlc29mdHdhcmVAbG9nYXJpdGhtdXMuZGV2 PgpEYXRlOiBTdW4sIDE4IEp1bCAyMDIxIDE4OjI5OjM5ICswMzAwClN1YmplY3Q6IFtQQVRDSCAw NS8xMV0gYmxlbmRlcjogdXBkYXRlIHRvIDIuOTMuMS4KCi0tLQogc3JjcGtncy9ibGVuZGVyL3Rl bXBsYXRlIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9u KC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9ibGVuZGVyL3RlbXBsYXRlIGIvc3JjcGtncy9ibGVu ZGVyL3RlbXBsYXRlCmluZGV4IGFmOTQ2YzJiNzk5OS4uODMxODMxN2M4MmJmIDEwMDY0NAotLS0g YS9zcmNwa2dzL2JsZW5kZXIvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9ibGVuZGVyL3RlbXBsYXRl CkBAIC0xLDYgKzEsNiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnYmxlbmRlcicKIHBrZ25hbWU9 YmxlbmRlcgotdmVyc2lvbj0yLjkzLjAKK3ZlcnNpb249Mi45My4xCiByZXZpc2lvbj0xCiBhcmNo cz0ieDg2XzY0KiBwcGM2NCoiCiBidWlsZF9zdHlsZT0iY21ha2UiCgpGcm9tIDIwODIyZTA2YWZl ODdmYzEwM2IyNWQ3Y2RlOWQ3Y2Y4YzlhNWM1ODYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206IEFydHVyIFNpbmlsYSA8ZnJlZXNvZnR3YXJlQGxvZ2FyaXRobXVzLmRldj4KRGF0ZTogU3Vu LCAxOCBKdWwgMjAyMSAxODoyOTozOSArMDMwMApTdWJqZWN0OiBbUEFUQ0ggMDYvMTFdIGVtYnJl ZTogdXBkYXRlIHRvIDMuMTMuMC4KCi0tLQogc3JjcGtncy9lbWJyZWUvdGVtcGxhdGUgfCA2ICsr Ky0tLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9zcmNwa2dzL2VtYnJlZS90ZW1wbGF0ZSBiL3NyY3BrZ3MvZW1icmVlL3RlbXBs YXRlCmluZGV4IDU3NWI5YmNiNDAxYy4uYjZmMzc2ZDMwZWZhIDEwMDY0NAotLS0gYS9zcmNwa2dz L2VtYnJlZS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2VtYnJlZS90ZW1wbGF0ZQpAQCAtMSw4ICsx LDggQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2VtYnJlZScKIHBrZ25hbWU9ZW1icmVlCi12ZXJz aW9uPTIuMTcuNwotcmV2aXNpb249MgotYXJjaHM9Ing4Nl82NCIKK3ZlcnNpb249My4xMy4wCity ZXZpc2lvbj0xCithcmNocz0ieDg2XzY0KiIKIGJ1aWxkX3N0eWxlPWNtYWtlCiBjb25maWd1cmVf YXJncz0iLURUQkJfUk9PVD0vdXNyIC1ERU1CUkVFX0lHTk9SRV9DTUFLRV9DWFhfRkxBR1M9T0ZG IgogaG9zdG1ha2VkZXBlbmRzPSJpc3BjIgoKRnJvbSBkNjM1MDQ0ZjMzMjU0ZDFjZmI1YzQzMDA1 YmM2ZmFlMmJlODJmN2M4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBcnR1ciBTaW5p bGEgPGZyZWVzb2Z0d2FyZUBsb2dhcml0aG11cy5kZXY+CkRhdGU6IFNhdCwgMjQgSnVsIDIwMjEg MDM6MzQ6NDMgKzAzMDAKU3ViamVjdDogW1BBVENIIDA3LzExXSBvcGVuaW1hZ2VpbzogdXBkYXRl IHRvIDIuMi4xNi4wLgoKLS0tCiBzcmNwa2dzL29wZW5pbWFnZWlvL3RlbXBsYXRlIHwgNiArKyst LS0KIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvc3JjcGtncy9vcGVuaW1hZ2Vpby90ZW1wbGF0ZSBiL3NyY3BrZ3Mvb3BlbmltYWdl aW8vdGVtcGxhdGUKaW5kZXggZGU4ZTFjZDA0NDA5Li4zYmZkZDRlMGVkMWUgMTAwNjQ0Ci0tLSBh L3NyY3BrZ3Mvb3BlbmltYWdlaW8vdGVtcGxhdGUKKysrIGIvc3JjcGtncy9vcGVuaW1hZ2Vpby90 ZW1wbGF0ZQpAQCAtMSwxMSArMSwxMSBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnb3BlbmltYWdl aW8nCiBwa2duYW1lPW9wZW5pbWFnZWlvCi12ZXJzaW9uPTIuMi4xNS4xCit2ZXJzaW9uPTIuMi4x Ni4wCiByZXZpc2lvbj0xCiB3cmtzcmM9Im9paW8tUmVsZWFzZS0ke3ZlcnNpb259IgogYnVpbGRf c3R5bGU9Y21ha2UKIGNvbmZpZ3VyZV9hcmdzPSItRFVTRV9PUEVOR0w9MCAtRFVTRV9RVD0wIC1E VVNFX1BZVEhPTj0wIC1ET0lJT19CVUlMRF9URVNUUz0xCi0gLURTVE9QX09OX1dBUk5JTkc9MCAt RFVTRV9TVERfUkVHRVhfRVhJVENPREU9MCIKKyAtRFNUT1BfT05fV0FSTklORz0wIC1EVVNFX1NU RF9SRUdFWF9FWElUQ09ERT0wIC1EQ01BS0VfQ1hYX1NUQU5EQVJEPTE0IgogaG9zdG1ha2VkZXBl bmRzPSJwa2ctY29uZmlnIGdpdCIKIG1ha2VkZXBlbmRzPSJib29zdC1kZXZlbCBnaWZsaWItZGV2 ZWwgbGlicmF3LWRldmVsIGxpYm9wZW5qcGVnLWRldmVsIGxpYndlYnAtZGV2ZWwKICBsaWJqcGVn LXR1cmJvLWRldmVsIHRpZmYtZGV2ZWwgbGlicG5nLWRldmVsIGxpYm9wZW5leHItZGV2ZWwgZnJl ZXR5cGUtZGV2ZWwKQEAgLTE3LDcgKzE3LDcgQEAgbGljZW5zZT0iQlNELTMtQ2xhdXNlIgogaG9t ZXBhZ2U9Imh0dHBzOi8vc2l0ZXMuZ29vZ2xlLmNvbS9zaXRlL29wZW5pbWFnZWlvL2hvbWUiCiBj aGFuZ2Vsb2c9Imh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9PcGVuSW1hZ2VJTy9v aWlvL3JlbGVhc2UvQ0hBTkdFUy5tZCIKIGRpc3RmaWxlcz0iaHR0cHM6Ly9naXRodWIuY29tL09w ZW5JbWFnZUlPL29paW8vYXJjaGl2ZS9SZWxlYXNlLSR7dmVyc2lvbn0udGFyLmd6IgotY2hlY2tz dW09ZjIyMmM2YjUxYTQwYWFiYmM4MGRkZjQwNTU1MzViZTlhZjFmZmE5MDc0NTJmYTZkMWZmYTc2 NzQ4NTRhYWIxNworY2hlY2tzdW09ZDFhNTlmMzJkYmJhM2JhNzFhZDJlNjJlMTA3MDM0ZDFjNTI4 N2JjYTFiMDY5NjQ3NGU5MjdkNTA0Y2QwNWVmNAogIyBSdW5zIGNoZWNrcyBldmVuIGZvciBmZWF0 dXJlcyB3ZSBkaXNhYmxlZC4KIG1ha2VfY2hlY2s9bm8KIAoKRnJvbSA3YWQ2MDgxYzI3YTc2NmZh NzcxMTJiNTM4ODhkMTExYTY3ZTBkMzBiIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBB cnR1ciBTaW5pbGEgPGZyZWVzb2Z0d2FyZUBsb2dhcml0aG11cy5kZXY+CkRhdGU6IFN1biwgMTgg SnVsIDIwMjEgMTg6Mjk6NDAgKzAzMDAKU3ViamVjdDogW1BBVENIIDA4LzExXSBvcGVuaW1hZ2Vk ZW5vaXNlOiB1cGRhdGUgdG8gMS40LjEuCgotLS0KIHNyY3BrZ3Mvb3BlbmltYWdlZGVub2lzZS90 ZW1wbGF0ZSB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlv bigtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvb3BlbmltYWdlZGVub2lzZS90ZW1wbGF0ZSBiL3Ny Y3BrZ3Mvb3BlbmltYWdlZGVub2lzZS90ZW1wbGF0ZQppbmRleCBjNzM5MTNiNGU5ZDcuLjE0MDU1 YWZmMWMyNyAxMDA2NDQKLS0tIGEvc3JjcGtncy9vcGVuaW1hZ2VkZW5vaXNlL3RlbXBsYXRlCisr KyBiL3NyY3BrZ3Mvb3BlbmltYWdlZGVub2lzZS90ZW1wbGF0ZQpAQCAtMSw2ICsxLDYgQEAKICMg VGVtcGxhdGUgZmlsZSBmb3IgJ29wZW5pbWFnZWRlbm9pc2UnCiBwa2duYW1lPW9wZW5pbWFnZWRl bm9pc2UKLXZlcnNpb249MS40LjAKK3ZlcnNpb249MS40LjEKIHJldmlzaW9uPTEKIGFyY2hzPSJ4 ODZfNjQqIgogd3Jrc3JjPW9pZG4tJHt2ZXJzaW9ufQoKRnJvbSA0OTE1MTc4ZWM1NTM3MGFlMDNi ZDRlMGYzNmZjNDVjYjhhYzI5NmMyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBcnR1 ciBTaW5pbGEgPGZyZWVzb2Z0d2FyZUBsb2dhcml0aG11cy5kZXY+CkRhdGU6IFN1biwgMTggSnVs IDIwMjEgMTg6Mjk6NDAgKzAzMDAKU3ViamVjdDogW1BBVENIIDA5LzExXSBvcGVudmRiOiB1cGRh dGUgdG8gOC4xLjAuCgotLS0KIGNvbW1vbi9zaGxpYnMgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHwgICAgMiArLQogc3JjcGtncy9vcGVudmRiL3BhdGNoZXMvMDAtdGJiLTIwMjEucGF0Y2gg fCAxMzIwICsrKysrKysrKysrKysrKysrKysrKwogc3JjcGtncy9vcGVudmRiL3RlbXBsYXRlICAg ICAgICAgICAgICAgICAgfCAgIDE2ICstCiAzIGZpbGVzIGNoYW5nZWQsIDEzMjUgaW5zZXJ0aW9u cygrKSwgMTMgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9vcGVudmRi L3BhdGNoZXMvMDAtdGJiLTIwMjEucGF0Y2gKCmRpZmYgLS1naXQgYS9jb21tb24vc2hsaWJzIGIv Y29tbW9uL3NobGlicwppbmRleCA2YjdjYTVmYmMyNDkuLjJhN2FjZGIyNTNhNyAxMDA2NDQKLS0t IGEvY29tbW9uL3NobGlicworKysgYi9jb21tb24vc2hsaWJzCkBAIC0zODgzLDcgKzM4ODMsNyBA QCBsaWJqYW5ldC5zby4xLjE2IGphbmV0LTEuMTYuMF8xCiBsaWJPcGVuSW1hZ2VEZW5vaXNlLnNv LjEgb3BlbmltYWdlZGVub2lzZS0xLjMuMF8xCiBsaWJjYmFuZzAuc28gY2JhbmctMS42LjBfMwog bGliYmxvc2Muc28uMSBjLWJsb3NjLTEuMTcuMV8xCi1saWJvcGVudmRiLnNvLjcuMCBvcGVudmRi LTcuMC4wXzEKK2xpYm9wZW52ZGIuc28uOC4xIG9wZW52ZGItOC4xLjBfMQogbGliQWxlbWJpYy5z by4xLjcgYWxlbWJpYy0xLjcuMTNfMQogbGlibW9kc2VjdXJpdHkuc28uMyBtb2RzZWN1cml0eS0z LjAuNF8xCiBsaWJyYXZlbi5zby4wIGJ1ZGdpZS1kZXNrdG9wLTEwLjUuMV8xCmRpZmYgLS1naXQg YS9zcmNwa2dzL29wZW52ZGIvcGF0Y2hlcy8wMC10YmItMjAyMS5wYXRjaCBiL3NyY3BrZ3Mvb3Bl bnZkYi9wYXRjaGVzLzAwLXRiYi0yMDIxLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMDAwMC4uMjcxMTA0YWYzZGY5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9v cGVudmRiL3BhdGNoZXMvMDAtdGJiLTIwMjEucGF0Y2gKQEAgLTAsMCArMSwxMzIwIEBACitodHRw czovL2dpdGh1Yi5jb20vQWNhZGVteVNvZnR3YXJlRm91bmRhdGlvbi9vcGVudmRiL3B1bGwvMTAy NworU2hvdWxkIGJlIGRyb3BwZWQgYWZ0ZXIgOC4xLjEgcmVsZWFzZS4KKworZGlmZiAtLWdpdCBh L2NtYWtlL0ZpbmRUQkIuY21ha2UgYi9jbWFrZS9GaW5kVEJCLmNtYWtlCitpbmRleCBkNDE0MzZi MWMuLjA2ZGUyYjNmMyAxMDA2NDQKKy0tLSBhL2NtYWtlL0ZpbmRUQkIuY21ha2UKKysrKyBiL2Nt YWtlL0ZpbmRUQkIuY21ha2UKK0BAIC0xNjksOCArMTY5LDIyIEBAIGZpbmRfcGF0aChUYmJfSU5D TFVERV9ESVIgdGJiL3RiYl9zdGRkZWYuaAorICAgUEFUSF9TVUZGSVhFUyAke0NNQUtFX0lOU1RB TExfSU5DTFVERURJUn0gaW5jbHVkZQorICkKKyAKKy1pZihFWElTVFMgIiR7VGJiX0lOQ0xVREVf RElSfS90YmIvdGJiX3N0ZGRlZi5oIikKKy0gIGZpbGUoU1RSSU5HUyAiJHtUYmJfSU5DTFVERV9E SVJ9L3RiYi90YmJfc3RkZGVmLmgiCisrc2V0KF90YmJfdmVyc2lvbl9maWxlICIke1RiYl9JTkNM VURFX0RJUn0vdGJiL3RiYl9zdGRkZWYuaCIpCisrCisraWYoTk9UIEVYSVNUUyAke190YmJfdmVy c2lvbl9maWxlfSkKKysgICMgRnJvbSBUQkIgMjAyMSwgdGJiX3N0ZGRlZiBpcyByZW1vdmVkIGFu ZCB0aGUgZGlyZWN0b3J5IGluY2x1ZGUvdGJiIGlzCisrICAjIHNpbXBseSBhbiBhbGlhcyBmb3Ig aW5jbHVkZS9vbmVhcGkvdGJiLiBUcnkgYW5kIGZpbmQgdGhlIHZlcnNpb24gaGVhZGVyCisrICAj IGluIG9uZWFwaS90YmIKKysgIGZpbmRfcGF0aChUYmJfSU5DTFVERV9ESVIgb25lYXBpL3RiYi92 ZXJzaW9uLmgKKysgICAgJHtfRklORF9UQkJfQURESVRJT05BTF9PUFRJT05TfQorKyAgICBQQVRI UyAke19UQkJfSU5DTFVERV9TRUFSQ0hfRElSU30KKysgICAgUEFUSF9TVUZGSVhFUyAke0NNQUtF X0lOU1RBTExfSU5DTFVERURJUn0gaW5jbHVkZQorKyAgKQorKyAgc2V0KF90YmJfdmVyc2lvbl9m aWxlICIke1RiYl9JTkNMVURFX0RJUn0vb25lYXBpL3RiYi92ZXJzaW9uLmgiKQorK2VuZGlmKCkK KysKKytpZihFWElTVFMgJHtfdGJiX3ZlcnNpb25fZmlsZX0pCisrICBmaWxlKFNUUklOR1MgJHtf dGJiX3ZlcnNpb25fZmlsZX0KKyAgICAgX3RiYl92ZXJzaW9uX21ham9yX3N0cmluZyBSRUdFWCAi I2RlZmluZSBUQkJfVkVSU0lPTl9NQUpPUiAiCisgICApCisgICBzdHJpbmcoUkVHRVggUkVQTEFD RSAiI2RlZmluZSBUQkJfVkVSU0lPTl9NQUpPUiIgIiIKK0BAIC0xNzgsNyArMTkyLDcgQEAgaWYo RVhJU1RTICIke1RiYl9JTkNMVURFX0RJUn0vdGJiL3RiYl9zdGRkZWYuaCIpCisgICApCisgICBz dHJpbmcoU1RSSVAgIiR7X3RiYl92ZXJzaW9uX21ham9yX3N0cmluZ30iIFRiYl9WRVJTSU9OX01B Sk9SKQorIAorLSAgZmlsZShTVFJJTkdTICIke1RiYl9JTkNMVURFX0RJUn0vdGJiL3RiYl9zdGRk ZWYuaCIKKysgIGZpbGUoU1RSSU5HUyAke190YmJfdmVyc2lvbl9maWxlfQorICAgICAgX3RiYl92 ZXJzaW9uX21pbm9yX3N0cmluZyBSRUdFWCAiI2RlZmluZSBUQkJfVkVSU0lPTl9NSU5PUiAiCisg ICApCisgICBzdHJpbmcoUkVHRVggUkVQTEFDRSAiI2RlZmluZSBUQkJfVkVSU0lPTl9NSU5PUiIg IiIKK0BAIC0xOTIsNiArMjA2LDggQEAgaWYoRVhJU1RTICIke1RiYl9JTkNMVURFX0RJUn0vdGJi L3RiYl9zdGRkZWYuaCIpCisgICBzZXQoVGJiX1ZFUlNJT04gJHtUYmJfVkVSU0lPTl9NQUpPUn0u JHtUYmJfVkVSU0lPTl9NSU5PUn0pCisgZW5kaWYoKQorIAorK3Vuc2V0KF90YmJfdmVyc2lvbl9m aWxlKQorKworICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgIyAgU2VhcmNoIGZvciBUQkIgbGliIERJUgor ICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCitkaWZmIC0tZ2l0IGEvb3BlbnZkYi9vcGVudmRiL0NNYWtlTGlz dHMudHh0IGIvb3BlbnZkYi9vcGVudmRiL0NNYWtlTGlzdHMudHh0CitpbmRleCA4ODU0M2RmM2Eu LjkyOWZlOTRkMSAxMDA2NDQKKy0tLSBhL29wZW52ZGIvb3BlbnZkYi9DTWFrZUxpc3RzLnR4dAor KysrIGIvb3BlbnZkYi9vcGVudmRiL0NNYWtlTGlzdHMudHh0CitAQCAtNDM3LDYgKzQzNywxMCBA QCBzZXQoT1BFTlZEQl9MSUJSQVJZX1VUSUxfSU5DTFVERV9GSUxFUworICAgdXRpbC9VdGlsLmgK KyApCisgCisrc2V0KE9QRU5WREJfTElCUkFSWV9USFJFQURfSU5DTFVERV9GSUxFUworKyAgdGhy ZWFkL1RocmVhZGluZy5oCisrKQorKworICMgQHRvZG8gQ01ha2UgPj0gMy4xMiwgdXNlIGFuIG9i amVjdCBsaWJyYXJ5IHRvIGNvbnNvbGlkYXRlIHNoYXJlZC9zdGF0aWMKKyAjIGJ1aWxkcy4gVGhl cmUgYXJlIGxpbWl0YXRpb25zIHdpdGggZWFybGllciB2ZXJzaW9ucyBvZiBDTWFrZSB3aGVuIHVz ZWQgd2l0aAorICMgaW1wb3J0ZWQgdGFyZ2V0cy4KK0BAIC01OTIsMyArNTk2LDQgQEAgaW5zdGFs bChGSUxFUyAke09QRU5WREJfTElCUkFSWV9QT0lOVFNfSU5DTFVERV9GSUxFU30gREVTVElOQVRJ T04gJHtPUEVOVkRCX0lOU1QKKyBpbnN0YWxsKEZJTEVTICR7T1BFTlZEQl9MSUJSQVJZX1RPT0xT X0lOQ0xVREVfRklMRVN9IERFU1RJTkFUSU9OICR7T1BFTlZEQl9JTlNUQUxMX0lOQ0xVREVESVJ9 L3Rvb2xzKQorIGluc3RhbGwoRklMRVMgJHtPUEVOVkRCX0xJQlJBUllfVFJFRV9JTkNMVURFX0ZJ TEVTfSBERVNUSU5BVElPTiAke09QRU5WREJfSU5TVEFMTF9JTkNMVURFRElSfS90cmVlKQorIGlu c3RhbGwoRklMRVMgJHtPUEVOVkRCX0xJQlJBUllfVVRJTF9JTkNMVURFX0ZJTEVTfSBERVNUSU5B VElPTiAke09QRU5WREJfSU5TVEFMTF9JTkNMVURFRElSfS91dGlsKQorK2luc3RhbGwoRklMRVMg JHtPUEVOVkRCX0xJQlJBUllfVEhSRUFEX0lOQ0xVREVfRklMRVN9IERFU1RJTkFUSU9OICR7T1BF TlZEQl9JTlNUQUxMX0lOQ0xVREVESVJ9L3RocmVhZCkKK2RpZmYgLS1naXQgYS9vcGVudmRiL29w ZW52ZGIvY21kL29wZW52ZGJfcmVuZGVyLmNjIGIvb3BlbnZkYi9vcGVudmRiL2NtZC9vcGVudmRi X3JlbmRlci5jYworaW5kZXggZWU1YjczN2M1Li4yYzk4MzFiYTMgMTAwNjQ0CistLS0gYS9vcGVu dmRiL29wZW52ZGIvY21kL29wZW52ZGJfcmVuZGVyLmNjCisrKysgYi9vcGVudmRiL29wZW52ZGIv Y21kL29wZW52ZGJfcmVuZGVyLmNjCitAQCAtMTksNyArMTksMTQgQEAKKyAjaW5jbHVkZSA8T3Bl bkVYUi9JbWZIZWFkZXIuaD4KKyAjaW5jbHVkZSA8T3BlbkVYUi9JbWZPdXRwdXRGaWxlLmg+Cisg I2luY2x1ZGUgPE9wZW5FWFIvSW1mUGl4ZWxUeXBlLmg+CistI2luY2x1ZGUgPHRiYi90YXNrX3Nj aGVkdWxlcl9pbml0Lmg+CisrCisrLy8gdGJiL3Rhc2tfc2NoZWR1bGVyX2luaXQuaCB3YXMgcmVt b3ZlZCBpbiBUQkIgMjAyMS4gVGhlIGJlc3QgY29uc3RydWN0IHRvIHN3YXAKKysvLyB0byBpcyB0 YmIvZ2xvYmFsX2NvbnRyb2wgKGZvciBleGVjdXRhYmxlcykuIGdsb2JhbF9jb250cm9sIHdhcyBv bmx5IG9mZmljaWFsbHkKKysvLyBhZGRlZCBpbiBUQkIgMjAxOVU0IGJ1dCBleGlzdHMgaW4gMjAx OCBhcyBhIHByZXZpZXcgZmVhdHVyZS4gVG8gYXZvaWQgbW9yZQorKy8vIGNvbXBpbGUgdGltZSBi cmFuY2hpbmcgKGFzIHdlIHN0aWxsIHN1cHBvcnQgMjAxOCksIHdlIHVzZSBpdCBpbiAyMDE4IHRv byBieQorKy8vIGVuYWJsaW5nIHRoZSBiZWxvdyBkZWZpbmUuCisrI2RlZmluZSBUQkJfUFJFVklF V19HTE9CQUxfQ09OVFJPTCAxCisrI2luY2x1ZGUgPHRiYi9nbG9iYWxfY29udHJvbC5oPgorICNp bmNsdWRlIDx0YmIvdGlja19jb3VudC5oPgorIAorICNpbmNsdWRlIDxhbGdvcml0aG0+CitAQCAt NjA2LDggKzYxMywxMiBAQCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCisgICAgIH0KKyAK KyAgICAgdHJ5IHsKKy0gICAgICAgIHRiYjo6dGFza19zY2hlZHVsZXJfaW5pdCBzY2hlZHVsZXJJ bml0KAorLSAgICAgICAgICAgIChvcHRzLnRocmVhZHMgPT0gMCkgPyB0YmI6OnRhc2tfc2NoZWR1 bGVyX2luaXQ6OmF1dG9tYXRpYyA6IG9wdHMudGhyZWFkcyk7CisrICAgICAgICBzdGQ6OnVuaXF1 ZV9wdHI8dGJiOjpnbG9iYWxfY29udHJvbD4gY29udHJvbDsKKysgICAgICAgIGlmIChvcHRzLnRo cmVhZHMgPiAwKSB7CisrICAgICAgICAgICAgLy8gbm90ZSwgb3B0cy50aHJlYWRzID09IDAgbWVh bnMgdXNlIGFsbCB0aHJlYWRzIChkZWZhdWx0KSwgc28gZG9uJ3QKKysgICAgICAgICAgICAvLyBt YW51YWxseSBjcmVhdGUgYSB0YmI6Omdsb2JhbF9jb250cm9sIGluIHRoaXMgY2FzZQorKyAgICAg ICAgICAgIGNvbnRyb2wucmVzZXQobmV3IHRiYjo6Z2xvYmFsX2NvbnRyb2wodGJiOjpnbG9iYWxf Y29udHJvbDo6bWF4X2FsbG93ZWRfcGFyYWxsZWxpc20sIG9wdHMudGhyZWFkcykpOworKyAgICAg ICAgfQorIAorICAgICAgICAgb3BlbnZkYjo6aW5pdGlhbGl6ZSgpOworIAorZGlmZiAtLWdpdCBh L29wZW52ZGIvb3BlbnZkYi9pby9RdWV1ZS5jYyBiL29wZW52ZGIvb3BlbnZkYi9pby9RdWV1ZS5j YworaW5kZXggZWY1ZDI5NjFhLi4yMGZmMWEwYzEgMTAwNjQ0CistLS0gYS9vcGVudmRiL29wZW52 ZGIvaW8vUXVldWUuY2MKKysrKyBiL29wZW52ZGIvb3BlbnZkYi9pby9RdWV1ZS5jYworQEAgLTUs MjAgKzUsMjIgQEAKKyAvLy8gQGF1dGhvciBQZXRlciBDdWNrYQorIAorICNpbmNsdWRlICJRdWV1 ZS5oIgorLQorICNpbmNsdWRlICJGaWxlLmgiCisgI2luY2x1ZGUgIlN0cmVhbS5oIgorLSNpbmNs dWRlIDxvcGVudmRiL0V4Y2VwdGlvbnMuaD4KKy0jaW5jbHVkZSA8b3BlbnZkYi91dGlsL2xvZ2dp bmcuaD4KKysjaW5jbHVkZSAib3BlbnZkYi9FeGNlcHRpb25zLmgiCisrI2luY2x1ZGUgIm9wZW52 ZGIvdXRpbC9sb2dnaW5nLmgiCisrCisgI2luY2x1ZGUgPHRiYi9jb25jdXJyZW50X2hhc2hfbWFw Lmg+CistI2luY2x1ZGUgPHRiYi90YXNrLmg+CistI2luY2x1ZGUgPHRiYi90YmJfdGhyZWFkLmg+ IC8vIGZvciB0YmI6OnRoaXNfdGJiX3RocmVhZDo6c2xlZXAoKQorLSNpbmNsdWRlIDx0YmIvdGlj a19jb3VudC5oPgorKyNpbmNsdWRlIDx0YmIvdGFza19hcmVuYS5oPgorKworKyNpbmNsdWRlIDx0 aHJlYWQ+CisgI2luY2x1ZGUgPGFsZ29yaXRobT4gLy8gZm9yIHN0ZDo6bWF4KCkKKyAjaW5jbHVk ZSA8YXRvbWljPgorICNpbmNsdWRlIDxpb3N0cmVhbT4KKyAjaW5jbHVkZSA8bWFwPgorICNpbmNs dWRlIDxtdXRleD4KKysjaW5jbHVkZSA8Y2hyb25vPgorKworIAorIG5hbWVzcGFjZSBvcGVudmRi IHsKKyBPUEVOVkRCX1VTRV9WRVJTSU9OX05BTUVTUEFDRQorQEAgLTI4LDE4ICszMCwxOSBAQCBu YW1lc3BhY2UgaW8geworIG5hbWVzcGFjZSB7CisgCisgLy8gQWJzdHJhY3QgYmFzZSBjbGFzcyBm b3IgcXVldWFibGUgVEJCIHRhc2tzIHRoYXQgYWRkcyBhIHRhc2sgY29tcGxldGlvbiBjYWxsYmFj aworLWNsYXNzIFRhc2s6IHB1YmxpYyB0YmI6OnRhc2sKKytjbGFzcyBUYXNrCisgeworIHB1Ymxp YzoKKyAgICAgVGFzayhRdWV1ZTo6SWQgaWQpOiBtSWQoaWQpIHt9CistICAgIH5UYXNrKCkgb3Zl cnJpZGUge30KKysgICAgdmlydHVhbCB+VGFzaygpIHt9CisgCisgICAgIFF1ZXVlOjpJZCBpZCgp IGNvbnN0IHsgcmV0dXJuIG1JZDsgfQorIAorICAgICB2b2lkIHNldE5vdGlmaWVyKFF1ZXVlOjpO b3RpZmllciYgbm90aWZpZXIpIHsgbU5vdGlmeSA9IG5vdGlmaWVyOyB9CisrICAgIHZpcnR1YWwg dm9pZCBleGVjdXRlKCkgY29uc3QgPSAwOworIAorIHByb3RlY3RlZDoKKy0gICAgdm9pZCBub3Rp ZnkoUXVldWU6OlN0YXR1cyBzdGF0dXMpIHsgaWYgKG1Ob3RpZnkpIG1Ob3RpZnkodGhpcy0+aWQo KSwgc3RhdHVzKTsgfQorKyAgICB2b2lkIG5vdGlmeShRdWV1ZTo6U3RhdHVzIHN0YXR1cykgY29u c3QgeyBpZiAobU5vdGlmeSkgbU5vdGlmeSh0aGlzLT5pZCgpLCBzdGF0dXMpOyB9CisgCisgcHJp dmF0ZToKKyAgICAgUXVldWU6OklkIG1JZDsKK0BAIC00OCw3ICs1MSw3IEBAIGNsYXNzIFRhc2s6 IHB1YmxpYyB0YmI6OnRhc2sKKyAKKyAKKyAvLyBRdWV1YWJsZSBUQkIgdGFzayB0aGF0IHdyaXRl cyBvbmUgb3IgbW9yZSBncmlkcyB0byBhIC52ZGIgZmlsZSBvciBhbiBvdXRwdXQgc3RyZWFtCist Y2xhc3MgT3V0cHV0VGFzazogcHVibGljIFRhc2sKKytjbGFzcyBPdXRwdXRUYXNrIDogcHVibGlj IFRhc2sKKyB7CisgcHVibGljOgorICAgICBPdXRwdXRUYXNrKFF1ZXVlOjpJZCBpZCwgY29uc3Qg R3JpZENQdHJWZWMmIGdyaWRzLCBjb25zdCBBcmNoaXZlJiBhcmNoaXZlLAorQEAgLTU2LDEwICs1 OSwxMCBAQCBjbGFzcyBPdXRwdXRUYXNrOiBwdWJsaWMgVGFzaworICAgICAgICAgOiBUYXNrKGlk KQorICAgICAgICAgLCBtR3JpZHMoZ3JpZHMpCisgICAgICAgICAsIG1BcmNoaXZlKGFyY2hpdmUu Y29weSgpKQorLSAgICAgICAgLCBtTWV0YWRhdGEobWV0YWRhdGEpCistICAgIHt9CisrICAgICAg ICAsIG1NZXRhZGF0YShtZXRhZGF0YSkge30KKysgICAgfk91dHB1dFRhc2soKSBvdmVycmlkZSB7 fQorIAorLSAgICB0YmI6OnRhc2sqIGV4ZWN1dGUoKSBvdmVycmlkZQorKyAgICB2b2lkIGV4ZWN1 dGUoKSBjb25zdCBvdmVycmlkZQorICAgICB7CisgICAgICAgICBRdWV1ZTo6U3RhdHVzIHN0YXR1 cyA9IFF1ZXVlOjpGQUlMRUQ7CisgICAgICAgICB0cnkgeworQEAgLTY5LDEwICs3Miw4IEBAIGNs YXNzIE91dHB1dFRhc2s6IHB1YmxpYyBUYXNrCisgICAgICAgICAgICAgaWYgKGNvbnN0IGNoYXIq IG1zZyA9IGUud2hhdCgpKSB7CisgICAgICAgICAgICAgICAgIE9QRU5WREJfTE9HX0VSUk9SKG1z Zyk7CisgICAgICAgICAgICAgfQorLSAgICAgICAgfSBjYXRjaCAoLi4uKSB7CistICAgICAgICB9 CisrICAgICAgICB9IGNhdGNoICguLi4pIHt9CisgICAgICAgICB0aGlzLT5ub3RpZnkoc3RhdHVz KTsKKy0gICAgICAgIHJldHVybiBudWxscHRyOyAvLyBubyBzdWNjZXNzb3IgdG8gdGhpcyB0YXNr CisgICAgIH0KKyAKKyBwcml2YXRlOgorQEAgLTk0LDcgKzk1LDYgQEAgc3RydWN0IFF1ZXVlOjpJ bXBsCisgICAgIC8vLyBAdG9kbyBQcm92aWRlIG1vcmUgaW5mb3JtYXRpb24gdGhhbiBqdXN0ICJz dWNjZWVkZWQiIG9yICJmYWlsZWQiPworICAgICB1c2luZyBTdGF0dXNNYXAgPSB0YmI6OmNvbmN1 cnJlbnRfaGFzaF9tYXA8UXVldWU6OklkLCBRdWV1ZTo6U3RhdHVzPjsKKyAKKy0KKyAgICAgSW1w bCgpCisgICAgICAgICA6IG1UaW1lb3V0KFF1ZXVlOjpERUZBVUxUX1RJTUVPVVQpCisgICAgICAg ICAsIG1DYXBhY2l0eShRdWV1ZTo6REVGQVVMVF9DQVBBQ0lUWSkKK0BAIC0xNTksMTIgKzE1OSwx NSBAQCBzdHJ1Y3QgUXVldWU6OkltcGwKKyAKKyAgICAgYm9vbCBjYW5FbnF1ZXVlKCkgY29uc3Qg eyByZXR1cm4gbU51bVRhc2tzIDwgSW50NjQobUNhcGFjaXR5KTsgfQorIAorLSAgICB2b2lkIGVu cXVldWUoVGFzayYgdGFzaykKKysgICAgdm9pZCBlbnF1ZXVlKE91dHB1dFRhc2smIHRhc2spCisg ICAgIHsKKy0gICAgICAgIHRiYjo6dGlja19jb3VudCBzdGFydCA9IHRiYjo6dGlja19jb3VudDo6 bm93KCk7CisrICAgICAgICBhdXRvIHN0YXJ0ID0gc3RkOjpjaHJvbm86OnN0ZWFkeV9jbG9jazo6 bm93KCk7CisgICAgICAgICB3aGlsZSAoIWNhbkVucXVldWUoKSkgeworLSAgICAgICAgICAgIHRi Yjo6dGhpc190YmJfdGhyZWFkOjpzbGVlcCh0YmI6OnRpY2tfY291bnQ6OmludGVydmFsX3QoMC41 LypzZWMqLykpOworLSAgICAgICAgICAgIGlmICgodGJiOjp0aWNrX2NvdW50Ojpub3coKSAtIHN0 YXJ0KS5zZWNvbmRzKCkgPiBkb3VibGUobVRpbWVvdXQpKSB7CisrICAgICAgICAgICAgc3RkOjp0 aGlzX3RocmVhZDo6c2xlZXBfZm9yKC8qMC41cyovc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyg1 MDApKTsKKysgICAgICAgICAgICBhdXRvIGR1cmF0aW9uID0gc3RkOjpjaHJvbm86OmR1cmF0aW9u X2Nhc3Q8c3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcz4oCisrICAgICAgICAgICAgICAgIHN0ZDo6 Y2hyb25vOjpzdGVhZHlfY2xvY2s6Om5vdygpIC0gc3RhcnQpOworKyAgICAgICAgICAgIGNvbnN0 IGRvdWJsZSBzZWNvbmRzID0gZG91YmxlKGR1cmF0aW9uLmNvdW50KCkpIC8gMTAwMC4wOworKyAg ICAgICAgICAgIGlmIChzZWNvbmRzID4gZG91YmxlKG1UaW1lb3V0KSkgeworICAgICAgICAgICAg ICAgICBPUEVOVkRCX1RIUk9XKFJ1bnRpbWVFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICJ1 bmFibGUgdG8gcXVldWUgSS9PIHRhc2s7ICIgPDwgbVRpbWVvdXQgPDwgIi1zZWNvbmQgdGltZSBs aW1pdCBleHBpcmVkIik7CisgICAgICAgICAgICAgfQorQEAgLTE3Myw3ICsxNzYsMTAgQEAgc3Ry dWN0IFF1ZXVlOjpJbXBsCisgICAgICAgICAgICAgc3RkOjpwbGFjZWhvbGRlcnM6Ol8xLCBzdGQ6 OnBsYWNlaG9sZGVyczo6XzIpOworICAgICAgICAgdGFzay5zZXROb3RpZmllcihub3RpZnkpOwor ICAgICAgICAgdGhpcy0+c2V0U3RhdHVzKHRhc2suaWQoKSwgUXVldWU6OlBFTkRJTkcpOworLSAg ICAgICAgdGJiOjp0YXNrOjplbnF1ZXVlKHRhc2spOworKworKyAgICAgICAgLy8gZ2V0IHRoZSBn bG9iYWwgdGFzayBhcmVuYQorKyAgICAgICAgdGJiOjp0YXNrX2FyZW5hIGFyZW5hKHRiYjo6dGFz a19hcmVuYTo6YXR0YWNoe30pOworKyAgICAgICAgYXJlbmEuZW5xdWV1ZShbdGFzayA9IHN0ZDo6 bW92ZSh0YXNrKV0geyB0YXNrLmV4ZWN1dGUoKTsgfSk7CisgICAgICAgICArK21OdW1UYXNrczsK KyAgICAgfQorIAorQEAgLTIwNCw3ICsyMTAsNyBAQCBRdWV1ZTo6flF1ZXVlKCkKKyAgICAgLy8v IChlLmcuLCBieSBrZWVwaW5nIGEgc3RhdGljIHJlZ2lzdHJ5IG9mIHF1ZXVlcyB0aGF0IGFsc28g ZGlzcGF0Y2hlcworICAgICAvLy8gb3IgYmxvY2tzIG5vdGlmaWNhdGlvbnMpPworICAgICB3aGls ZSAobUltcGwtPm1OdW1UYXNrcyA+IDApIHsKKy0gICAgICAgIHRiYjo6dGhpc190YmJfdGhyZWFk OjpzbGVlcCh0YmI6OnRpY2tfY291bnQ6OmludGVydmFsX3QoMC41LypzZWMqLykpOworKyAgICAg ICAgc3RkOjp0aGlzX3RocmVhZDo6c2xlZXBfZm9yKC8qMC41cyovc3RkOjpjaHJvbm86Om1pbGxp c2Vjb25kcyg1MDApKTsKKyAgICAgfQorIH0KKyAKK0BAIC0yOTAsMTYgKzI5Niw4IEBAIFF1ZXVl OjpJZAorIFF1ZXVlOjp3cml0ZUdyaWRWZWMoY29uc3QgR3JpZENQdHJWZWMmIGdyaWRzLCBjb25z dCBBcmNoaXZlJiBhcmNoaXZlLCBjb25zdCBNZXRhTWFwJiBtZXRhZGF0YSkKKyB7CisgICAgIGNv bnN0IFF1ZXVlOjpJZCB0YXNrSWQgPSBtSW1wbC0+bU5leHRJZCsrOworLSAgICAvLyBGcm9tIHRo ZSAiR1VJIFRocmVhZCIgY2hhcHRlciBpbiB0aGUgVEJCIERlc2lnbiBQYXR0ZXJucyBndWlkZQor LSAgICBPdXRwdXRUYXNrKiB0YXNrID0KKy0gICAgICAgIG5ldyh0YmI6OnRhc2s6OmFsbG9jYXRl X3Jvb3QoKSkgT3V0cHV0VGFzayh0YXNrSWQsIGdyaWRzLCBhcmNoaXZlLCBtZXRhZGF0YSk7Cist ICAgIHRyeSB7CistICAgICAgICBtSW1wbC0+ZW5xdWV1ZSgqdGFzayk7CistICAgIH0gY2F0Y2gg KG9wZW52ZGI6OlJ1bnRpbWVFcnJvciYpIHsKKy0gICAgICAgIC8vIERlc3Ryb3kgdGhlIHRhc2sg aWYgaXQgY291bGQgbm90IGJlIGVucXVldWVkLCB0aGVuIHJldGhyb3cgdGhlIGV4Y2VwdGlvbi4K Ky0gICAgICAgIHRiYjo6dGFzazo6ZGVzdHJveSgqdGFzayk7CistICAgICAgICB0aHJvdzsKKy0g ICAgfQorKyAgICBPdXRwdXRUYXNrIHRhc2sodGFza0lkLCBncmlkcywgYXJjaGl2ZSwgbWV0YWRh dGEpOworKyAgICBtSW1wbC0+ZW5xdWV1ZSh0YXNrKTsKKyAgICAgcmV0dXJuIHRhc2tJZDsKKyB9 CisgCitkaWZmIC0tZ2l0IGEvb3BlbnZkYi9vcGVudmRiL21hdGgvQ29vcmQuaCBiL29wZW52ZGIv b3BlbnZkYi9tYXRoL0Nvb3JkLmgKK2luZGV4IDUwNGI1ZTlhNC4uMmU5Y2ZlZDVkIDEwMDY0NAor LS0tIGEvb3BlbnZkYi9vcGVudmRiL21hdGgvQ29vcmQuaAorKysrIGIvb3BlbnZkYi9vcGVudmRi L21hdGgvQ29vcmQuaAorQEAgLTEzLDggKzEzLDcgQEAKKyAjaW5jbHVkZSAiTWF0aC5oIgorICNp bmNsdWRlICJWZWMzLmgiCisgCistbmFtZXNwYWNlIHRiYiB7IGNsYXNzIHNwbGl0OyB9IC8vIGZv cndhcmQgZGVjbGFyYXRpb24KKy0KKysjaW5jbHVkZSA8dGJiL2Jsb2NrZWRfcmFuZ2UuaD4gLy8g Zm9yIHRiYjo6c3BsaXQKKyAKKyBuYW1lc3BhY2Ugb3BlbnZkYiB7CisgT1BFTlZEQl9VU0VfVkVS U0lPTl9OQU1FU1BBQ0UKK2RpZmYgLS1naXQgYS9vcGVudmRiL29wZW52ZGIvcG9pbnRzL1BvaW50 U2FtcGxlLmggYi9vcGVudmRiL29wZW52ZGIvcG9pbnRzL1BvaW50U2FtcGxlLmgKK2luZGV4IGEx MjJjYzRmYi4uMjdlYzNmYjI5IDEwMDY0NAorLS0tIGEvb3BlbnZkYi9vcGVudmRiL3BvaW50cy9Q b2ludFNhbXBsZS5oCisrKysgYi9vcGVudmRiL29wZW52ZGIvcG9pbnRzL1BvaW50U2FtcGxlLmgK K0BAIC0xMCw4ICsxMCw5IEBACisgI2lmbmRlZiBPUEVOVkRCX1BPSU5UU19QT0lOVF9TQU1QTEVf SEFTX0JFRU5fSU5DTFVERUQKKyAjZGVmaW5lIE9QRU5WREJfUE9JTlRTX1BPSU5UX1NBTVBMRV9I QVNfQkVFTl9JTkNMVURFRAorIAorLSNpbmNsdWRlIDxvcGVudmRiL3V0aWwvTnVsbEludGVycnVw dGVyLmg+CistI2luY2x1ZGUgPG9wZW52ZGIvdG9vbHMvSW50ZXJwb2xhdGlvbi5oPgorKyNpbmNs dWRlICJvcGVudmRiL3V0aWwvTnVsbEludGVycnVwdGVyLmgiCisrI2luY2x1ZGUgIm9wZW52ZGIv dGhyZWFkL1RocmVhZGluZy5oIgorKyNpbmNsdWRlICJvcGVudmRiL3Rvb2xzL0ludGVycG9sYXRp b24uaCIKKyAKKyAjaW5jbHVkZSAiUG9pbnREYXRhR3JpZC5oIgorICNpbmNsdWRlICJQb2ludEF0 dHJpYnV0ZS5oIgorQEAgLTE5LDcgKzIwLDYgQEAKKyAjaW5jbHVkZSA8c3N0cmVhbT4KKyAjaW5j bHVkZSA8dHlwZV90cmFpdHM+CisgCistCisgbmFtZXNwYWNlIG9wZW52ZGIgeworIE9QRU5WREJf VVNFX1ZFUlNJT05fTkFNRVNQQUNFCisgbmFtZXNwYWNlIE9QRU5WREJfVkVSU0lPTl9OQU1FIHsK K0BAIC0yOTksNyArMjk5LDcgQEAgY2xhc3MgUG9pbnREYXRhU2FtcGxlcgorICAgICAgICAgICAg IHVzaW5nIFRhcmdldEhhbmRsZVQgPSBBdHRyaWJ1dGVXcml0ZUhhbmRsZTx0eXBlbmFtZSBTYW1w bGVyV3JhcHBlclQ6OlZhbHVlVHlwZT47CisgCisgICAgICAgICAgICAgaWYgKHV0aWw6Ondhc0lu dGVycnVwdGVkKGludGVycnVwdGVyKSkgeworLSAgICAgICAgICAgICAgICB0YmI6OnRhc2s6OnNl bGYoKS5jYW5jZWxfZ3JvdXBfZXhlY3V0aW9uKCk7CisrICAgICAgICAgICAgICAgIHRocmVhZDo6 Y2FuY2VsR3JvdXBFeGVjdXRpb24oKTsKKyAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAg ICAgICAgIH0KKyAKK2RpZmYgLS1naXQgYS9vcGVudmRiL29wZW52ZGIvdGhyZWFkL1RocmVhZGlu Zy5oIGIvb3BlbnZkYi9vcGVudmRiL3RocmVhZC9UaHJlYWRpbmcuaAorbmV3IGZpbGUgbW9kZSAx MDA2NDQKK2luZGV4IDAwMDAwMDAwMC4uMGMzYjM1NmUzCistLS0gL2Rldi9udWxsCisrKysgYi9v cGVudmRiL29wZW52ZGIvdGhyZWFkL1RocmVhZGluZy5oCitAQCAtMCwwICsxLDU0IEBACisrLy8g Q29weXJpZ2h0IENvbnRyaWJ1dG9ycyB0byB0aGUgT3BlblZEQiBQcm9qZWN0CisrLy8gU1BEWC1M aWNlbnNlLUlkZW50aWZpZXI6IE1QTC0yLjAKKysvLworKy8vLyBAZmlsZSBUaHJlYWRpbmcuaAor KworKyNpZm5kZWYgT1BFTlZEQl9USFJFQURfVEhSRUFESU5HX0hBU19CRUVOX0lOQ0xVREVECisr I2RlZmluZSBPUEVOVkRCX1RIUkVBRF9USFJFQURJTkdfSEFTX0JFRU5fSU5DTFVERUQKKysKKysj aW5jbHVkZSAib3BlbnZkYi92ZXJzaW9uLmgiCisrCisrLy8vIEBub3RlIHRiYi9ibG9ja2VkX3Jh bmdlLmggaXMgdGhlIE9OTFkgaW5jbHVkZSB0aGF0IHBlcnNpc3RzIGZyb20gVEJCIDIwMjAKKysv Ly8gICB0byBUQkIgMjAyMSB0aGF0IGl0c2VsZiBpbmNsdWRlcyB0aGUgVEJCIHNwZWNpZmljIHZl cnNpb24gaGVhZGVyIGZpbGVzLgorKy8vLyAgIEluIFRCQiAyMDIwLCB0aGUgdmVyc2lvbiBoZWFk ZXIgd2FzIGNhbGxlZCB0YmIvc3RkZGVmLmguIEluIDIwMjEsIGl0J3MKKysvLy8gICBjYWxsZWQg dGJiL3ZlcnNpb24uaC4gV2UgaW5jbHVkZSB0YmIvYmxvY2tlZF9yYW5nZS5oIGhlcmUgdG8gaW5k aXJlY3RseQorKy8vLyAgIGFjY2VzcyB0aGUgdmVyc2lvbiBkZWZpbmVzIGluIGEgY29uc2lzdGVu dCB3YXkgc28gdGhhdCBkb3duc3RyZWFtCisrLy8vICAgc29mdHdhcmUgZG9lc24ndCBuZWVkIHRv IHByb3ZpZGUgY29tcGlsZSB0aW1lIGRlZmluZXMuCisrI2luY2x1ZGUgPHRiYi9ibG9ja2VkX3Jh bmdlLmg+CisrI2luY2x1ZGUgPHRiYi90YXNrLmg+CisrI2luY2x1ZGUgPHRiYi90YXNrX2dyb3Vw Lmg+CisrCisrbmFtZXNwYWNlIG9wZW52ZGIgeworK09QRU5WREJfVVNFX1ZFUlNJT05fTkFNRVNQ QUNFCisrbmFtZXNwYWNlIE9QRU5WREJfVkVSU0lPTl9OQU1FIHsKKytuYW1lc3BhY2UgdGhyZWFk IHsKKysKKytpbmxpbmUgYm9vbCBjYW5jZWxHcm91cEV4ZWN1dGlvbigpCisreworKyAgICAvLyBA bm90ZSAxMjAwMCB3YXMgdGhlIDIwMjEuMS1iZXRhMDUgcmVsZWFzZS4gVGhlIDIwMjEuMS1iZXRh MDggcmVsZWFzZQorKyAgICAvLyAgIGludHJvZHVjZWQgY3VycmVudF9jb250ZXh0KCkuCisrI2lm IFRCQl9JTlRFUkZBQ0VfVkVSU0lPTiA+PSAxMjAwMgorKyAgICBhdXRvIGN0eCA9IHRiYjo6dGFz azo6Y3VycmVudF9jb250ZXh0KCk7CisrICAgIHJldHVybiBjdHggPyBjdHgtPmNhbmNlbF9ncm91 cF9leGVjdXRpb24oKSA6IGZhbHNlOworKyNlbHNlCisrICAgIHJldHVybiB0YmI6OnRhc2s6OnNl bGYoKS5jYW5jZWxfZ3JvdXBfZXhlY3V0aW9uKCk7CisrI2VuZGlmCisrfQorKworK2lubGluZSBi b29sIGlzR3JvdXBFeGVjdXRpb25DYW5jZWxsZWQoKQorK3sKKysgICAgLy8gQG5vdGUgMTIwMDAg d2FzIHRoZSAyMDIxLjEtYmV0YTA1IHJlbGVhc2UuIFRoZSAyMDIxLjEtYmV0YTA4IHJlbGVhc2UK KysgICAgLy8gICBpbnRyb2R1Y2VkIGN1cnJlbnRfY29udGV4dCgpLgorKyNpZiBUQkJfSU5URVJG QUNFX1ZFUlNJT04gPj0gMTIwMDIKKysgICAgYXV0byBjdHggPSB0YmI6OnRhc2s6OmN1cnJlbnRf Y29udGV4dCgpOworKyAgICByZXR1cm4gY3R4ID8gY3R4LT5pc19ncm91cF9leGVjdXRpb25fY2Fu Y2VsbGVkKCkgOiBmYWxzZTsKKysjZWxzZQorKyAgICByZXR1cm4gdGJiOjp0YXNrOjpzZWxmKCku aXNfY2FuY2VsbGVkKCk7CisrI2VuZGlmCisrfQorKworK30gLy8gbmFtZXNwYWNlIHRocmVhZAor K30gLy8gbmFtZXNwYWNlIE9QRU5WREJfVkVSU0lPTl9OQU1FCisrfSAvLyBuYW1lc3BhY2Ugb3Bl bnZkYgorKworKyNlbmRpZiAvLyBPUEVOVkRCX1RIUkVBRF9USFJFQURJTkdfSEFTX0JFRU5fSU5D TFVERUQKK2RpZmYgLS1naXQgYS9vcGVudmRiL29wZW52ZGIvdG9vbHMvQ29tcG9zaXRlLmggYi9v cGVudmRiL29wZW52ZGIvdG9vbHMvQ29tcG9zaXRlLmgKK2luZGV4IDZiYzE3MGJmNy4uODhmZjg2 ZjlmIDEwMDY0NAorLS0tIGEvb3BlbnZkYi9vcGVudmRiL3Rvb2xzL0NvbXBvc2l0ZS5oCisrKysg Yi9vcGVudmRiL29wZW52ZGIvdG9vbHMvQ29tcG9zaXRlLmgKK0BAIC0yNCw3ICsyNCw2IEBACisg I2luY2x1ZGUgPHRiYi9wYXJhbGxlbF9mb3IuaD4KKyAjaW5jbHVkZSA8dGJiL3BhcmFsbGVsX3Jl ZHVjZS5oPgorICNpbmNsdWRlIDx0YmIvdGFza19ncm91cC5oPgorLSNpbmNsdWRlIDx0YmIvdGFz a19zY2hlZHVsZXJfaW5pdC5oPgorIAorICNpbmNsdWRlIDx0eXBlX3RyYWl0cz4KKyAjaW5jbHVk ZSA8ZnVuY3Rpb25hbD4KK2RpZmYgLS1naXQgYS9vcGVudmRiL29wZW52ZGIvdG9vbHMvRGlhZ25v c3RpY3MuaCBiL29wZW52ZGIvb3BlbnZkYi90b29scy9EaWFnbm9zdGljcy5oCitpbmRleCA2OTRk MjE1NWYuLmU1ODQ0ZTQ0OCAxMDA2NDQKKy0tLSBhL29wZW52ZGIvb3BlbnZkYi90b29scy9EaWFn bm9zdGljcy5oCisrKysgYi9vcGVudmRiL29wZW52ZGIvdG9vbHMvRGlhZ25vc3RpY3MuaAorQEAg LTExLDE0ICsxMSwxNyBAQAorICNpZm5kZWYgT1BFTlZEQl9UT09MU19ESUFHTk9TVElDU19IQVNf QkVFTl9JTkNMVURFRAorICNkZWZpbmUgT1BFTlZEQl9UT09MU19ESUFHTk9TVElDU19IQVNfQkVF Tl9JTkNMVURFRAorIAorLSNpbmNsdWRlIDxvcGVudmRiL0dyaWQuaD4KKy0jaW5jbHVkZSA8b3Bl bnZkYi9tYXRoL01hdGguaD4KKy0jaW5jbHVkZSA8b3BlbnZkYi9tYXRoL1ZlYzMuaD4KKy0jaW5j bHVkZSA8b3BlbnZkYi9tYXRoL1N0ZW5jaWxzLmg+CistI2luY2x1ZGUgPG9wZW52ZGIvbWF0aC9P cGVyYXRvcnMuaD4KKy0jaW5jbHVkZSA8b3BlbnZkYi90cmVlL0xlYWZNYW5hZ2VyLmg+CisrI2lu Y2x1ZGUgIm9wZW52ZGIvR3JpZC5oIgorKyNpbmNsdWRlICJvcGVudmRiL21hdGgvTWF0aC5oIgor KyNpbmNsdWRlICJvcGVudmRiL21hdGgvVmVjMy5oIgorKyNpbmNsdWRlICJvcGVudmRiL21hdGgv U3RlbmNpbHMuaCIKKysjaW5jbHVkZSAib3BlbnZkYi9tYXRoL09wZXJhdG9ycy5oIgorKyNpbmNs dWRlICJvcGVudmRiL3RyZWUvTGVhZk1hbmFnZXIuaCIKKysjaW5jbHVkZSAib3BlbnZkYi90aHJl YWQvVGhyZWFkaW5nLmgiCisrCisgI2luY2x1ZGUgPHRiYi9ibG9ja2VkX3JhbmdlLmg+CisgI2lu Y2x1ZGUgPHRiYi9wYXJhbGxlbF9yZWR1Y2UuaD4KKysKKyAjaW5jbHVkZSA8Y21hdGg+IC8vIGZv ciBzdGQ6OmlzbmFuKCksIHN0ZDo6aXNmaW5pdGUoKQorICNpbmNsdWRlIDxzZXQ+CisgI2luY2x1 ZGUgPHNzdHJlYW0+CitAQCAtMjYsNyArMjksNiBAQAorICNpbmNsdWRlIDx0eXBlX3RyYWl0cz4K KyAjaW5jbHVkZSA8dmVjdG9yPgorIAorLQorIG5hbWVzcGFjZSBvcGVudmRiIHsKKyBPUEVOVkRC X1VTRV9WRVJTSU9OX05BTUVTUEFDRQorIG5hbWVzcGFjZSBPUEVOVkRCX1ZFUlNJT05fTkFNRSB7 CitAQCAtMTE2MCwxMyArMTE2MiwxMyBAQCBJbmFjdGl2ZVZveGVsVmFsdWVzPFRyZWVUeXBlPjo6 b3BlcmF0b3IoKShjb25zdCB0YmI6OmJsb2NrZWRfcmFuZ2U8c2l6ZV90PiYgcmFuZworIHsKKyAg ICAgdHlwZW5hbWUgVHJlZVR5cGU6OkxlYWZOb2RlVHlwZTo6VmFsdWVPZmZDSXRlciBpdGVyOwor IAorLSAgICBmb3IgKHNpemVfdCBuID0gcmFuZ2UuYmVnaW4oKTsgbiA8IHJhbmdlLmVuZCgpICYm ICF0YmI6OnRhc2s6OnNlbGYoKS5pc19jYW5jZWxsZWQoKTsgKytuKSB7CisrICAgIGZvciAoc2l6 ZV90IG4gPSByYW5nZS5iZWdpbigpOyBuIDwgcmFuZ2UuZW5kKCkgJiYgIXRocmVhZDo6aXNHcm91 cEV4ZWN1dGlvbkNhbmNlbGxlZCgpOyArK24pIHsKKyAgICAgICAgIGZvciAoaXRlciA9IG1MZWFm QXJyYXkubGVhZihuKS5jYmVnaW5WYWx1ZU9mZigpOyBpdGVyOyArK2l0ZXIpIHsKKyAgICAgICAg ICAgICBtSW5hY3RpdmVWYWx1ZXMuaW5zZXJ0KGl0ZXIuZ2V0VmFsdWUoKSk7CisgICAgICAgICB9 CisgCisgICAgICAgICBpZiAobUluYWN0aXZlVmFsdWVzLnNpemUoKSA+IG1OdW1WYWx1ZXMpIHsK Ky0gICAgICAgICAgICB0YmI6OnRhc2s6OnNlbGYoKS5jYW5jZWxfZ3JvdXBfZXhlY3V0aW9uKCk7 CisrICAgICAgICAgICAgdGhyZWFkOjpjYW5jZWxHcm91cEV4ZWN1dGlvbigpOworICAgICAgICAg fQorICAgICB9CisgfQorQEAgLTEyNTAsMTQgKzEyNTIsMTQgQEAgdGVtcGxhdGU8dHlwZW5hbWUg VHJlZVR5cGU+CisgaW5saW5lIHZvaWQKKyBJbmFjdGl2ZVRpbGVWYWx1ZXM8VHJlZVR5cGU+Ojpv cGVyYXRvcigpKEl0ZXJSYW5nZSYgcmFuZ2UpCisgeworLSAgICBmb3IgKDsgcmFuZ2UgJiYgIXRi Yjo6dGFzazo6c2VsZigpLmlzX2NhbmNlbGxlZCgpOyArK3JhbmdlKSB7CisrICAgIGZvciAoOyBy YW5nZSAmJiAhdGhyZWFkOjppc0dyb3VwRXhlY3V0aW9uQ2FuY2VsbGVkKCk7ICsrcmFuZ2UpIHsK KyAgICAgICAgIHR5cGVuYW1lIFRyZWVUeXBlOjpWYWx1ZU9mZkNJdGVyIGl0ZXIgPSByYW5nZS5p dGVyYXRvcigpOworICAgICAgICAgZm9yICg7IGl0ZXI7ICsraXRlcikgeworICAgICAgICAgICAg IG1JbmFjdGl2ZVZhbHVlcy5pbnNlcnQoaXRlci5nZXRWYWx1ZSgpKTsKKyAgICAgICAgIH0KKyAK KyAgICAgICAgIGlmIChtSW5hY3RpdmVWYWx1ZXMuc2l6ZSgpID4gbU51bVZhbHVlcykgeworLSAg ICAgICAgICAgIHRiYjo6dGFzazo6c2VsZigpLmNhbmNlbF9ncm91cF9leGVjdXRpb24oKTsKKysg ICAgICAgICAgICB0aHJlYWQ6OmNhbmNlbEdyb3VwRXhlY3V0aW9uKCk7CisgICAgICAgICB9Cisg ICAgIH0KKyB9CitkaWZmIC0tZ2l0IGEvb3BlbnZkYi9vcGVudmRiL3Rvb2xzL0ZpbHRlci5oIGIv b3BlbnZkYi9vcGVudmRiL3Rvb2xzL0ZpbHRlci5oCitpbmRleCA0MDhjNzU1NDEuLmI3MDIxMjUy MCAxMDA2NDQKKy0tLSBhL29wZW52ZGIvb3BlbnZkYi90b29scy9GaWx0ZXIuaAorKysrIGIvb3Bl bnZkYi9vcGVudmRiL3Rvb2xzL0ZpbHRlci5oCitAQCAtMTQsMjEgKzE0LDI0IEBACisgI2lmbmRl ZiBPUEVOVkRCX1RPT0xTX0ZJTFRFUl9IQVNfQkVFTl9JTkNMVURFRAorICNkZWZpbmUgT1BFTlZE Ql9UT09MU19GSUxURVJfSEFTX0JFRU5fSU5DTFVERUQKKyAKKy0jaW5jbHVkZSA8dGJiL3BhcmFs bGVsX2Zvci5oPgorLSNpbmNsdWRlIDxvcGVudmRiL1R5cGVzLmg+CistI2luY2x1ZGUgPG9wZW52 ZGIvbWF0aC9NYXRoLmg+CistI2luY2x1ZGUgPG9wZW52ZGIvbWF0aC9TdGVuY2lscy5oPgorLSNp bmNsdWRlIDxvcGVudmRiL21hdGgvVHJhbnNmb3JtLmg+CistI2luY2x1ZGUgPG9wZW52ZGIvdHJl ZS9Ob2RlTWFuYWdlci5oPgorLSNpbmNsdWRlIDxvcGVudmRiL3RyZWUvTGVhZk1hbmFnZXIuaD4K Ky0jaW5jbHVkZSA8b3BlbnZkYi91dGlsL051bGxJbnRlcnJ1cHRlci5oPgorLSNpbmNsdWRlIDxv cGVudmRiL3V0aWwvVXRpbC5oPgorLSNpbmNsdWRlIDxvcGVudmRiL0dyaWQuaD4KKysjaW5jbHVk ZSAib3BlbnZkYi9UeXBlcy5oIgorKyNpbmNsdWRlICJvcGVudmRiL0dyaWQuaCIKKysjaW5jbHVk ZSAib3BlbnZkYi9tYXRoL01hdGguaCIKKysjaW5jbHVkZSAib3BlbnZkYi9tYXRoL1N0ZW5jaWxz LmgiCisrI2luY2x1ZGUgIm9wZW52ZGIvbWF0aC9UcmFuc2Zvcm0uaCIKKysjaW5jbHVkZSAib3Bl bnZkYi90cmVlL05vZGVNYW5hZ2VyLmgiCisrI2luY2x1ZGUgIm9wZW52ZGIvdHJlZS9MZWFmTWFu YWdlci5oIgorKyNpbmNsdWRlICJvcGVudmRiL3V0aWwvTnVsbEludGVycnVwdGVyLmgiCisrI2lu Y2x1ZGUgIm9wZW52ZGIvdXRpbC9VdGlsLmgiCisrI2luY2x1ZGUgIm9wZW52ZGIvdGhyZWFkL1Ro cmVhZGluZy5oIgorICNpbmNsdWRlICJJbnRlcnBvbGF0aW9uLmgiCisrCisrI2luY2x1ZGUgPHRi Yi9wYXJhbGxlbF9mb3IuaD4KKysjaW5jbHVkZSA8dGJiL2NvbmN1cnJlbnRfdmVjdG9yLmg+Cisr CisgI2luY2x1ZGUgPGFsZ29yaXRobT4gLy8gZm9yIHN0ZDo6bWF4KCkKKyAjaW5jbHVkZSA8ZnVu Y3Rpb25hbD4KKyAjaW5jbHVkZSA8dHlwZV90cmFpdHM+CistI2luY2x1ZGUgPHRiYi9jb25jdXJy ZW50X3ZlY3Rvci5oPgorIAorIG5hbWVzcGFjZSBvcGVudmRiIHsKKyBPUEVOVkRCX1VTRV9WRVJT SU9OX05BTUVTUEFDRQorQEAgLTgzMyw3ICs4MzYsNyBAQCBpbmxpbmUgYm9vbAorIEZpbHRlcjxH cmlkVCwgTWFza1QsIEludGVycnVwdFQ+Ojp3YXNJbnRlcnJ1cHRlZCgpCisgeworICAgICBpZiAo dXRpbDo6d2FzSW50ZXJydXB0ZWQobUludGVycnVwdGVyKSkgeworLSAgICAgICAgdGJiOjp0YXNr OjpzZWxmKCkuY2FuY2VsX2dyb3VwX2V4ZWN1dGlvbigpOworKyAgICAgICAgdGhyZWFkOjpjYW5j ZWxHcm91cEV4ZWN1dGlvbigpOworICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgIH0KKyAgICAg cmV0dXJuIGZhbHNlOworZGlmZiAtLWdpdCBhL29wZW52ZGIvb3BlbnZkYi90b29scy9HcmlkT3Bl cmF0b3JzLmggYi9vcGVudmRiL29wZW52ZGIvdG9vbHMvR3JpZE9wZXJhdG9ycy5oCitpbmRleCAz MTMwNWExYWIuLjc4ZmFmZWFkOSAxMDA2NDQKKy0tLSBhL29wZW52ZGIvb3BlbnZkYi90b29scy9H cmlkT3BlcmF0b3JzLmgKKysrKyBiL29wZW52ZGIvb3BlbnZkYi90b29scy9HcmlkT3BlcmF0b3Jz LmgKK0BAIC05LDE0ICs5LDE1IEBACisgI2lmbmRlZiBPUEVOVkRCX1RPT0xTX0dSSURfT1BFUkFU T1JTX0hBU19CRUVOX0lOQ0xVREVECisgI2RlZmluZSBPUEVOVkRCX1RPT0xTX0dSSURfT1BFUkFU T1JTX0hBU19CRUVOX0lOQ0xVREVECisgCistI2luY2x1ZGUgPG9wZW52ZGIvR3JpZC5oPgorLSNp bmNsdWRlIDxvcGVudmRiL21hdGgvT3BlcmF0b3JzLmg+CistI2luY2x1ZGUgPG9wZW52ZGIvdXRp bC9OdWxsSW50ZXJydXB0ZXIuaD4KKy0jaW5jbHVkZSA8b3BlbnZkYi90cmVlL0xlYWZNYW5hZ2Vy Lmg+CistI2luY2x1ZGUgPG9wZW52ZGIvdHJlZS9WYWx1ZUFjY2Vzc29yLmg+CisrI2luY2x1ZGUg Im9wZW52ZGIvR3JpZC5oIgorKyNpbmNsdWRlICJvcGVudmRiL21hdGgvT3BlcmF0b3JzLmgiCisr I2luY2x1ZGUgIm9wZW52ZGIvdXRpbC9OdWxsSW50ZXJydXB0ZXIuaCIKKysjaW5jbHVkZSAib3Bl bnZkYi90aHJlYWQvVGhyZWFkaW5nLmgiCisrI2luY2x1ZGUgIm9wZW52ZGIvdHJlZS9MZWFmTWFu YWdlci5oIgorKyNpbmNsdWRlICJvcGVudmRiL3RyZWUvVmFsdWVBY2Nlc3Nvci5oIgorICNpbmNs dWRlICJWYWx1ZVRyYW5zZm9ybWVyLmgiIC8vIGZvciB0b29sczo6Zm9yZWFjaCgpCistI2luY2x1 ZGUgPHRiYi9wYXJhbGxlbF9mb3IuaD4KKyAKKysjaW5jbHVkZSA8dGJiL3BhcmFsbGVsX2Zvci5o PgorIAorIG5hbWVzcGFjZSBvcGVudmRiIHsKKyBPUEVOVkRCX1VTRV9WRVJTSU9OX05BTUVTUEFD RQorQEAgLTM4Myw3ICszODQsOSBAQCBjbGFzcyBHcmlkT3BlcmF0b3IKKyAgICAgLy8vIFRCQiB0 aHJlYWRzIG9ubHkhCisgICAgIHZvaWQgb3BlcmF0b3IoKShjb25zdCB0eXBlbmFtZSBMZWFmTWFu YWdlclQ6OkxlYWZSYW5nZSYgcmFuZ2UpIGNvbnN0CisgICAgIHsKKy0gICAgICAgIGlmICh1dGls Ojp3YXNJbnRlcnJ1cHRlZChtSW50ZXJydXB0KSkgdGJiOjp0YXNrOjpzZWxmKCkuY2FuY2VsX2dy b3VwX2V4ZWN1dGlvbigpOworKyAgICAgICAgaWYgKHV0aWw6Ondhc0ludGVycnVwdGVkKG1JbnRl cnJ1cHQpKSB7CisrICAgICAgICAgICAgdGhyZWFkOjpjYW5jZWxHcm91cEV4ZWN1dGlvbigpOwor KyAgICAgICAgfQorIAorICAgICAgICAgZm9yICh0eXBlbmFtZSBMZWFmTWFuYWdlclQ6OkxlYWZS YW5nZTo6SXRlcmF0b3IgbGVhZj1yYW5nZS5iZWdpbigpOyBsZWFmOyArK2xlYWYpIHsKKyAgICAg ICAgICAgICBmb3IgKHR5cGVuYW1lIE91dExlYWZUOjpWYWx1ZU9uSXRlciB2YWx1ZT1sZWFmLT5i ZWdpblZhbHVlT24oKTsgdmFsdWU7ICsrdmFsdWUpIHsKK2RpZmYgLS1naXQgYS9vcGVudmRiL29w ZW52ZGIvdG9vbHMvTGV2ZWxTZXRNZWFzdXJlLmggYi9vcGVudmRiL29wZW52ZGIvdG9vbHMvTGV2 ZWxTZXRNZWFzdXJlLmgKK2luZGV4IGVmZTE5MDc0ZC4uNTk5NjljZGNmIDEwMDY0NAorLS0tIGEv b3BlbnZkYi9vcGVudmRiL3Rvb2xzL0xldmVsU2V0TWVhc3VyZS5oCisrKysgYi9vcGVudmRiL29w ZW52ZGIvdG9vbHMvTGV2ZWxTZXRNZWFzdXJlLmgKK0BAIC04LDE4ICs4LDIxIEBACisgI2lmbmRl ZiBPUEVOVkRCX1RPT0xTX0xFVkVMU0VUTUVBU1VSRV9IQVNfQkVFTl9JTkNMVURFRAorICNkZWZp bmUgT1BFTlZEQl9UT09MU19MRVZFTFNFVE1FQVNVUkVfSEFTX0JFRU5fSU5DTFVERUQKKyAKKy0j aW5jbHVkZSA8b3BlbnZkYi9tYXRoL01hdGguaD4KKy0jaW5jbHVkZSA8b3BlbnZkYi9UeXBlcy5o PgorLSNpbmNsdWRlIDxvcGVudmRiL0dyaWQuaD4KKy0jaW5jbHVkZSA8b3BlbnZkYi90cmVlL0xl YWZNYW5hZ2VyLmg+CistI2luY2x1ZGUgPG9wZW52ZGIvdHJlZS9WYWx1ZUFjY2Vzc29yLmg+Cist I2luY2x1ZGUgPG9wZW52ZGIvbWF0aC9GaW5pdGVEaWZmZXJlbmNlLmg+CistI2luY2x1ZGUgPG9w ZW52ZGIvbWF0aC9PcGVyYXRvcnMuaD4KKy0jaW5jbHVkZSA8b3BlbnZkYi9tYXRoL1N0ZW5jaWxz Lmg+CistI2luY2x1ZGUgPG9wZW52ZGIvdXRpbC9OdWxsSW50ZXJydXB0ZXIuaD4KKysjaW5jbHVk ZSAib3BlbnZkYi9UeXBlcy5oIgorKyNpbmNsdWRlICJvcGVudmRiL0dyaWQuaCIKKysjaW5jbHVk ZSAib3BlbnZkYi90cmVlL0xlYWZNYW5hZ2VyLmgiCisrI2luY2x1ZGUgIm9wZW52ZGIvdHJlZS9W YWx1ZUFjY2Vzc29yLmgiCisrI2luY2x1ZGUgIm9wZW52ZGIvbWF0aC9NYXRoLmgiCisrI2luY2x1 ZGUgIm9wZW52ZGIvbWF0aC9GaW5pdGVEaWZmZXJlbmNlLmgiCisrI2luY2x1ZGUgIm9wZW52ZGIv bWF0aC9PcGVyYXRvcnMuaCIKKysjaW5jbHVkZSAib3BlbnZkYi9tYXRoL1N0ZW5jaWxzLmgiCisr I2luY2x1ZGUgIm9wZW52ZGIvdXRpbC9OdWxsSW50ZXJydXB0ZXIuaCIKKysjaW5jbHVkZSAib3Bl bnZkYi90aHJlYWQvVGhyZWFkaW5nLmgiCisrCisgI2luY2x1ZGUgPHRiYi9wYXJhbGxlbF9mb3Iu aD4KKyAjaW5jbHVkZSA8dGJiL3BhcmFsbGVsX3NvcnQuaD4KKyAjaW5jbHVkZSA8dGJiL3BhcmFs bGVsX2ludm9rZS5oPgorKworICNpbmNsdWRlIDx0eXBlX3RyYWl0cz4KKyAKKyBuYW1lc3BhY2Ug b3BlbnZkYiB7CitAQCAtMzI5LDcgKzMzMiw3IEBAIGlubGluZSBib29sCisgTGV2ZWxTZXRNZWFz dXJlPEdyaWRULCBJbnRlcnJ1cHRUPjo6Y2hlY2tJbnRlcnJ1cHRlcigpCisgeworICAgICBpZiAo dXRpbDo6d2FzSW50ZXJydXB0ZWQobUludGVycnVwdGVyKSkgeworLSAgICAgICAgdGJiOjp0YXNr OjpzZWxmKCkuY2FuY2VsX2dyb3VwX2V4ZWN1dGlvbigpOworKyAgICAgICAgdGhyZWFkOjpjYW5j ZWxHcm91cEV4ZWN1dGlvbigpOworICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICB9CisgICAg IHJldHVybiB0cnVlOworZGlmZiAtLWdpdCBhL29wZW52ZGIvb3BlbnZkYi90b29scy9MZXZlbFNl dFRyYWNrZXIuaCBiL29wZW52ZGIvb3BlbnZkYi90b29scy9MZXZlbFNldFRyYWNrZXIuaAoraW5k ZXggY2JkYzI2N2U4Li5iZmM4MDA0ZTcgMTAwNjQ0CistLS0gYS9vcGVudmRiL29wZW52ZGIvdG9v bHMvTGV2ZWxTZXRUcmFja2VyLmgKKysrKyBiL29wZW52ZGIvb3BlbnZkYi90b29scy9MZXZlbFNl dFRyYWNrZXIuaAorQEAgLTEyLDI0ICsxMiwyNiBAQAorICNpZm5kZWYgT1BFTlZEQl9UT09MU19M RVZFTF9TRVRfVFJBQ0tFUl9IQVNfQkVFTl9JTkNMVURFRAorICNkZWZpbmUgT1BFTlZEQl9UT09M U19MRVZFTF9TRVRfVFJBQ0tFUl9IQVNfQkVFTl9JTkNMVURFRAorIAorLSNpbmNsdWRlIDx0YmIv cGFyYWxsZWxfZm9yLmg+CistI2luY2x1ZGUgPG9wZW52ZGIvVHlwZXMuaD4KKy0jaW5jbHVkZSA8 b3BlbnZkYi9tYXRoL01hdGguaD4KKy0jaW5jbHVkZSA8b3BlbnZkYi9tYXRoL0Zpbml0ZURpZmZl cmVuY2UuaD4KKy0jaW5jbHVkZSA8b3BlbnZkYi9tYXRoL09wZXJhdG9ycy5oPgorLSNpbmNsdWRl IDxvcGVudmRiL21hdGgvU3RlbmNpbHMuaD4KKy0jaW5jbHVkZSA8b3BlbnZkYi9tYXRoL1RyYW5z Zm9ybS5oPgorLSNpbmNsdWRlIDxvcGVudmRiL0dyaWQuaD4KKy0jaW5jbHVkZSA8b3BlbnZkYi91 dGlsL051bGxJbnRlcnJ1cHRlci5oPgorLSNpbmNsdWRlIDxvcGVudmRiL3RyZWUvVmFsdWVBY2Nl c3Nvci5oPgorLSNpbmNsdWRlIDxvcGVudmRiL3RyZWUvTGVhZk1hbmFnZXIuaD4KKysjaW5jbHVk ZSAib3BlbnZkYi9UeXBlcy5oIgorKyNpbmNsdWRlICJvcGVudmRiL0dyaWQuaCIKKysjaW5jbHVk ZSAib3BlbnZkYi9tYXRoL01hdGguaCIKKysjaW5jbHVkZSAib3BlbnZkYi9tYXRoL0Zpbml0ZURp ZmZlcmVuY2UuaCIKKysjaW5jbHVkZSAib3BlbnZkYi9tYXRoL09wZXJhdG9ycy5oIgorKyNpbmNs dWRlICJvcGVudmRiL21hdGgvU3RlbmNpbHMuaCIKKysjaW5jbHVkZSAib3BlbnZkYi9tYXRoL1Ry YW5zZm9ybS5oIgorKyNpbmNsdWRlICJvcGVudmRiL3V0aWwvTnVsbEludGVycnVwdGVyLmgiCisr I2luY2x1ZGUgIm9wZW52ZGIvdGhyZWFkL1RocmVhZGluZy5oIgorKyNpbmNsdWRlICJvcGVudmRi L3RyZWUvVmFsdWVBY2Nlc3Nvci5oIgorKyNpbmNsdWRlICJvcGVudmRiL3RyZWUvTGVhZk1hbmFn ZXIuaCIKKyAjaW5jbHVkZSAiQ2hhbmdlQmFja2dyb3VuZC5oIi8vIGZvciBjaGFuZ2VMZXZlbFNl dEJhY2tncm91bmQKKyAjaW5jbHVkZSAiTW9ycGhvbG9neS5oIi8vZm9yIGRpbGF0ZUFjdGl2ZVZh bHVlcworICNpbmNsdWRlICJQcnVuZS5oIi8vIGZvciBwcnVuZUxldmVsU2V0CisrCisrI2luY2x1 ZGUgPHRiYi9wYXJhbGxlbF9mb3IuaD4KKysKKyAjaW5jbHVkZSA8ZnVuY3Rpb25hbD4KKyAjaW5j bHVkZSA8dHlwZV90cmFpdHM+CisgCistCisgbmFtZXNwYWNlIG9wZW52ZGIgeworIE9QRU5WREJf VVNFX1ZFUlNJT05fTkFNRVNQQUNFCisgbmFtZXNwYWNlIE9QRU5WREJfVkVSU0lPTl9OQU1FIHsK K0BAIC0zODMsNyArMzg1LDcgQEAgTGV2ZWxTZXRUcmFja2VyPEdyaWRULCBJbnRlcnJ1cHRUPjo6 CisgY2hlY2tJbnRlcnJ1cHRlcigpCisgeworICAgICBpZiAodXRpbDo6d2FzSW50ZXJydXB0ZWQo bUludGVycnVwdGVyKSkgeworLSAgICAgICAgdGJiOjp0YXNrOjpzZWxmKCkuY2FuY2VsX2dyb3Vw X2V4ZWN1dGlvbigpOworKyAgICAgICAgdGhyZWFkOjpjYW5jZWxHcm91cEV4ZWN1dGlvbigpOwor ICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICB9CisgICAgIHJldHVybiB0cnVlOworZGlmZiAt LWdpdCBhL29wZW52ZGIvb3BlbnZkYi90b29scy9NZXNoVG9Wb2x1bWUuaCBiL29wZW52ZGIvb3Bl bnZkYi90b29scy9NZXNoVG9Wb2x1bWUuaAoraW5kZXggNjY0M2M4ZjA1Li5kZTM0MDZlZGEgMTAw NjQ0CistLS0gYS9vcGVudmRiL29wZW52ZGIvdG9vbHMvTWVzaFRvVm9sdW1lLmgKKysrKyBiL29w ZW52ZGIvb3BlbnZkYi90b29scy9NZXNoVG9Wb2x1bWUuaAorQEAgLTE2LDEyICsxNiwxMyBAQAor ICNpZm5kZWYgT1BFTlZEQl9UT09MU19NRVNIX1RPX1ZPTFVNRV9IQVNfQkVFTl9JTkNMVURFRAor ICNkZWZpbmUgT1BFTlZEQl9UT09MU19NRVNIX1RPX1ZPTFVNRV9IQVNfQkVFTl9JTkNMVURFRAor IAorLSNpbmNsdWRlIDxvcGVudmRiL1BsYXRmb3JtLmg+IC8vIGZvciBPUEVOVkRCX0hBU19DWFgx MQorLSNpbmNsdWRlIDxvcGVudmRiL1R5cGVzLmg+CistI2luY2x1ZGUgPG9wZW52ZGIvbWF0aC9G aW5pdGVEaWZmZXJlbmNlLmg+IC8vIGZvciBHb2R1bm92c05vcm1TcXJkCistI2luY2x1ZGUgPG9w ZW52ZGIvbWF0aC9Qcm94aW1pdHkuaD4gLy8gZm9yIGNsb3Nlc3RQb2ludE9uVHJpYW5nbGVUb1Bv aW50CistI2luY2x1ZGUgPG9wZW52ZGIvdXRpbC9OdWxsSW50ZXJydXB0ZXIuaD4KKy0jaW5jbHVk ZSA8b3BlbnZkYi91dGlsL1V0aWwuaD4KKysjaW5jbHVkZSAib3BlbnZkYi9QbGF0Zm9ybS5oIiAv LyBmb3IgT1BFTlZEQl9IQVNfQ1hYMTEKKysjaW5jbHVkZSAib3BlbnZkYi9UeXBlcy5oIgorKyNp bmNsdWRlICJvcGVudmRiL21hdGgvRmluaXRlRGlmZmVyZW5jZS5oIiAvLyBmb3IgR29kdW5vdnNO b3JtU3FyZAorKyNpbmNsdWRlICJvcGVudmRiL21hdGgvUHJveGltaXR5LmgiIC8vIGZvciBjbG9z ZXN0UG9pbnRPblRyaWFuZ2xlVG9Qb2ludAorKyNpbmNsdWRlICJvcGVudmRiL3V0aWwvTnVsbElu dGVycnVwdGVyLmgiCisrI2luY2x1ZGUgIm9wZW52ZGIvdXRpbC9VdGlsLmgiCisrI2luY2x1ZGUg Im9wZW52ZGIvdGhyZWFkL1RocmVhZGluZy5oIgorIAorICNpbmNsdWRlICJDaGFuZ2VCYWNrZ3Jv dW5kLmgiCisgI2luY2x1ZGUgIlBydW5lLmgiIC8vIGZvciBwcnVuZUluYWN0aXZlIGFuZCBwcnVu ZUxldmVsU2V0CitAQCAtMzMsNyArMzQsNyBAQAorICNpbmNsdWRlIDx0YmIvcGFyYWxsZWxfcmVk dWNlLmg+CisgI2luY2x1ZGUgPHRiYi9wYXJ0aXRpb25lci5oPgorICNpbmNsdWRlIDx0YmIvdGFz a19ncm91cC5oPgorLSNpbmNsdWRlIDx0YmIvdGFza19zY2hlZHVsZXJfaW5pdC5oPgorKyNpbmNs dWRlIDx0YmIvdGFza19hcmVuYS5oPgorIAorICNpbmNsdWRlIDxhbGdvcml0aG0+IC8vIGZvciBz dGQ6OnNvcnQoKQorICNpbmNsdWRlIDxjbWF0aD4gLy8gZm9yIHN0ZDo6aXNmaW5pdGUoKSwgc3Rk Ojppc25hbigpCitAQCAtMTEzMiw3ICsxMTMzLDcgQEAgaW5saW5lIHZvaWQKKyBmaWxsQXJyYXko VmFsdWVUeXBlKiBhcnJheSwgY29uc3QgVmFsdWVUeXBlIHZhbCwgY29uc3Qgc2l6ZV90IGxlbmd0 aCkKKyB7CisgICAgIGNvbnN0IGF1dG8gZ3JhaW5TaXplID0gc3RkOjptYXg8c2l6ZV90PigKKy0g ICAgICAgIGxlbmd0aCAvIHRiYjo6dGFza19zY2hlZHVsZXJfaW5pdDo6ZGVmYXVsdF9udW1fdGhy ZWFkcygpLCAxMDI0KTsKKysgICAgICAgIGxlbmd0aCAvIHRiYjo6dGhpc190YXNrX2FyZW5hOjpt YXhfY29uY3VycmVuY3koKSwgMTAyNCk7CisgICAgIGNvbnN0IHRiYjo6YmxvY2tlZF9yYW5nZTxz aXplX3Q+IHJhbmdlKDAsIGxlbmd0aCwgZ3JhaW5TaXplKTsKKyAgICAgdGJiOjpwYXJhbGxlbF9m b3IocmFuZ2UsIEZpbGxBcnJheTxWYWx1ZVR5cGU+KGFycmF5LCB2YWwpLCB0YmI6OnNpbXBsZV9w YXJ0aXRpb25lcigpKTsKKyB9CitAQCAtMTk4OSw3ICsxOTkwLDcgQEAgY2xhc3MgVm94ZWxpemVQ b2x5Z29ucworICAgICAgICAgZm9yIChzaXplX3QgbiA9IHJhbmdlLmJlZ2luKCksIE4gPSByYW5n ZS5lbmQoKTsgbiA8IE47ICsrbikgeworIAorICAgICAgICAgICAgIGlmICh0aGlzLT53YXNJbnRl cnJ1cHRlZCgpKSB7CistICAgICAgICAgICAgICAgIHRiYjo6dGFzazo6c2VsZigpLmNhbmNlbF9n cm91cF9leGVjdXRpb24oKTsKKysgICAgICAgICAgICAgICAgdGhyZWFkOjpjYW5jZWxHcm91cEV4 ZWN1dGlvbigpOworICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICB9CisgCitA QCAtMjE0Myw3ICsyMTQ0LDcgQEAgY2xhc3MgVm94ZWxpemVQb2x5Z29ucworIAorICAgICAgICAg d2hpbGUgKCFjb29yZExpc3QuZW1wdHkoKSkgeworICAgICAgICAgICAgIGlmIChpbnRlcnJ1cHRl ciAmJiBpbnRlcnJ1cHRlci0+d2FzSW50ZXJydXB0ZWQoKSkgeworLSAgICAgICAgICAgICAgICB0 YmI6OnRhc2s6OnNlbGYoKS5jYW5jZWxfZ3JvdXBfZXhlY3V0aW9uKCk7CisrICAgICAgICAgICAg ICAgIHRocmVhZDo6Y2FuY2VsR3JvdXBFeGVjdXRpb24oKTsKKyAgICAgICAgICAgICAgICAgYnJl YWs7CisgICAgICAgICAgICAgfQorICAgICAgICAgICAgIGZvciAoSW50MzIgcGFzcyA9IDA7IHBh c3MgPCAxMDQ4NTc2ICYmICFjb29yZExpc3QuZW1wdHkoKTsgKytwYXNzKSB7CitkaWZmIC0tZ2l0 IGEvb3BlbnZkYi9vcGVudmRiL3Rvb2xzL01vcnBob2xvZ3kuaCBiL29wZW52ZGIvb3BlbnZkYi90 b29scy9Nb3JwaG9sb2d5LmgKK2luZGV4IDczNjk4MmVmNS4uMGExZTcxMDA5IDEwMDY0NAorLS0t IGEvb3BlbnZkYi9vcGVudmRiL3Rvb2xzL01vcnBob2xvZ3kuaAorKysrIGIvb3BlbnZkYi9vcGVu dmRiL3Rvb2xzL01vcnBob2xvZ3kuaAorQEAgLTI0LDcgKzI0LDcgQEAKKyAjaW5jbHVkZSAib3Bl bnZkYi90cmVlL1ZhbHVlQWNjZXNzb3IuaCIKKyAjaW5jbHVkZSAib3BlbnZkYi90cmVlL0xlYWZN YW5hZ2VyLmgiCisgCistI2luY2x1ZGUgPHRiYi90YXNrX3NjaGVkdWxlcl9pbml0Lmg+CisrI2lu Y2x1ZGUgPHRiYi90YXNrX2FyZW5hLmg+CisgI2luY2x1ZGUgPHRiYi9lbnVtZXJhYmxlX3RocmVh ZF9zcGVjaWZpYy5oPgorICNpbmNsdWRlIDx0YmIvcGFyYWxsZWxfZm9yLmg+CisgCitAQCAtNzI2 LDcgKzcyNiw3IEBAIHZvaWQgTW9ycGhvbG9neTxUcmVlVHlwZT46OmRpbGF0ZVZveGVscyhjb25z dCBzaXplX3QgaXRlciwKKyAgICAgICAgIH0KKyAKKyAgICAgICAgIC8vIEBub3RlIHRoaXMgZ3Jh aW4gc2l6ZSBpcyB1c2VkIGZvciBvcHRpbWFsIHRocmVhZGluZworLSAgICAgICAgY29uc3Qgc2l6 ZV90IG51bVRocmVhZHMgPSBzaXplX3QodGJiOjp0YXNrX3NjaGVkdWxlcl9pbml0OjpkZWZhdWx0 X251bV90aHJlYWRzKCkpOworKyAgICAgICAgY29uc3Qgc2l6ZV90IG51bVRocmVhZHMgPSBzaXpl X3QodGJiOjp0aGlzX3Rhc2tfYXJlbmE6Om1heF9jb25jdXJyZW5jeSgpKTsKKyAgICAgICAgIGNv bnN0IHNpemVfdCBzdWJUcmVlU2l6ZSA9IG1hdGg6Ok1heChzaXplX3QoMSksIGFycmF5LnNpemUo KS8oMipudW1UaHJlYWRzKSk7CisgCisgICAgICAgICAvLyBwZXJmb3JtIHJlY3Vyc2l2ZSBkaWxh dGlvbiB0byBzdWIgdHJlZXMKK2RpZmYgLS1naXQgYS9vcGVudmRiL29wZW52ZGIvdG9vbHMvUGFy dGljbGVzVG9MZXZlbFNldC5oIGIvb3BlbnZkYi9vcGVudmRiL3Rvb2xzL1BhcnRpY2xlc1RvTGV2 ZWxTZXQuaAoraW5kZXggNzM5YWYyYjY5Li5mOWMxOTkxMWMgMTAwNjQ0CistLS0gYS9vcGVudmRi L29wZW52ZGIvdG9vbHMvUGFydGljbGVzVG9MZXZlbFNldC5oCisrKysgYi9vcGVudmRiL29wZW52 ZGIvdG9vbHMvUGFydGljbGVzVG9MZXZlbFNldC5oCitAQCAtNjIsMTkgKzYyLDIzIEBACisgI2lm bmRlZiBPUEVOVkRCX1RPT0xTX1BBUlRJQ0xFU19UT19MRVZFTFNFVF9IQVNfQkVFTl9JTkNMVURF RAorICNkZWZpbmUgT1BFTlZEQl9UT09MU19QQVJUSUNMRVNfVE9fTEVWRUxTRVRfSEFTX0JFRU5f SU5DTFVERUQKKyAKKy0jaW5jbHVkZSA8dGJiL3BhcmFsbGVsX3JlZHVjZS5oPgorLSNpbmNsdWRl IDx0YmIvYmxvY2tlZF9yYW5nZS5oPgorLSNpbmNsdWRlIDxvcGVudmRiL1R5cGVzLmg+CistI2lu Y2x1ZGUgPG9wZW52ZGIvR3JpZC5oPgorLSNpbmNsdWRlIDxvcGVudmRiL21hdGgvTWF0aC5oPgor LSNpbmNsdWRlIDxvcGVudmRiL21hdGgvVHJhbnNmb3JtLmg+CistI2luY2x1ZGUgPG9wZW52ZGIv dHJlZS9MZWFmTWFuYWdlci5oPgorLSNpbmNsdWRlIDxvcGVudmRiL3V0aWwvbG9nZ2luZy5oPgor LSNpbmNsdWRlIDxvcGVudmRiL3V0aWwvTnVsbEludGVycnVwdGVyLmg+CisrI2luY2x1ZGUgIm9w ZW52ZGIvVHlwZXMuaCIKKysjaW5jbHVkZSAib3BlbnZkYi9HcmlkLmgiCisrI2luY2x1ZGUgIm9w ZW52ZGIvbWF0aC9NYXRoLmgiCisrI2luY2x1ZGUgIm9wZW52ZGIvbWF0aC9UcmFuc2Zvcm0uaCIK KysjaW5jbHVkZSAib3BlbnZkYi90cmVlL0xlYWZNYW5hZ2VyLmgiCisrI2luY2x1ZGUgIm9wZW52 ZGIvdXRpbC9sb2dnaW5nLmgiCisrI2luY2x1ZGUgIm9wZW52ZGIvdXRpbC9OdWxsSW50ZXJydXB0 ZXIuaCIKKysjaW5jbHVkZSAib3BlbnZkYi90aHJlYWQvVGhyZWFkaW5nLmgiCisrCisgI2luY2x1 ZGUgIkNvbXBvc2l0ZS5oIiAvLyBmb3IgY3NnVW5pb24oKQorICNpbmNsdWRlICJQb2ludFBhcnRp dGlvbmVyLmgiCisgI2luY2x1ZGUgIlBydW5lLmgiCisgI2luY2x1ZGUgIlNpZ25lZEZsb29kRmls bC5oIgorKworKyNpbmNsdWRlIDx0YmIvcGFyYWxsZWxfcmVkdWNlLmg+CisrI2luY2x1ZGUgPHRi Yi9ibG9ja2VkX3JhbmdlLmg+CisrCisgI2luY2x1ZGUgPGZ1bmN0aW9uYWw+CisgI2luY2x1ZGUg PGlvc3RyZWFtPgorICNpbmNsdWRlIDx0eXBlX3RyYWl0cz4KK0BAIC03MzgsNyArNzQyLDcgQEAg c3RydWN0IFBhcnRpY2xlc1RvTGV2ZWxTZXQ8U2RmR3JpZFQsIEF0dHJpYnV0ZVQsIEludGVycnVw dGVyVD46OlJhc3RlcgorICAgICAgICAgZm9yIChDb29yZCBjID0gbG87IGMueCgpIDw9IGhpLngo KTsgKytjLngoKSkgeworICAgICAgICAgICAgIC8vb25seSBjaGVjayBpbnRlcnJ1cHRlciBldmVy eSAzMid0aCBzY2FuIGluIHgKKyAgICAgICAgICAgICBpZiAoIShjb3VudCsrICYgKCgxPDw1KS0x KSkgJiYgdXRpbDo6d2FzSW50ZXJydXB0ZWQobVBhcmVudC5tSW50ZXJydXB0ZXIpKSB7CistICAg ICAgICAgICAgICAgIHRiYjo6dGFzazo6c2VsZigpLmNhbmNlbF9ncm91cF9leGVjdXRpb24oKTsK KysgICAgICAgICAgICAgICAgdGhyZWFkOjpjYW5jZWxHcm91cEV4ZWN1dGlvbigpOworICAgICAg ICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgfQorICAgICAgICAgICAgIGNv bnN0IFJlYWwgeDIgPSBtYXRoOjpQb3cyKGMueCgpIC0gUFswXSk7CitAQCAtODA0LDcgKzgwOCw3 IEBAIHN0cnVjdCBQYXJ0aWNsZXNUb0xldmVsU2V0PFNkZkdyaWRULCBBdHRyaWJ1dGVULCBJbnRl cnJ1cHRlclQ+OjpSYXN0ZXIKKyAgICAgICAgIC8vIERlbnNlbHkgZmlsbCB0aGUgcmVtYWluaW5n IHJlZ2lvbnMuCisgICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIGJib3g6IHBhZGRpbmcpIHsKKyAg ICAgICAgICAgICBpZiAodXRpbDo6d2FzSW50ZXJydXB0ZWQobVBhcmVudC5tSW50ZXJydXB0ZXIp KSB7CistICAgICAgICAgICAgICAgIHRiYjo6dGFzazo6c2VsZigpLmNhbmNlbF9ncm91cF9leGVj dXRpb24oKTsKKysgICAgICAgICAgICAgICAgdGhyZWFkOjpjYW5jZWxHcm91cEV4ZWN1dGlvbigp OworICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgfQorICAgICAg ICAgICAgIGNvbnN0IENvb3JkICZibWluID0gYmJveC5taW4oKSwgJmJtYXggPSBiYm94Lm1heCgp OworZGlmZiAtLWdpdCBhL29wZW52ZGIvb3BlbnZkYi90b29scy9Qb2ludEFkdmVjdC5oIGIvb3Bl bnZkYi9vcGVudmRiL3Rvb2xzL1BvaW50QWR2ZWN0LmgKK2luZGV4IDEyYjExNzdhZC4uZTQ4N2Jm YjNlIDEwMDY0NAorLS0tIGEvb3BlbnZkYi9vcGVudmRiL3Rvb2xzL1BvaW50QWR2ZWN0LmgKKysr KyBiL29wZW52ZGIvb3BlbnZkYi90b29scy9Qb2ludEFkdmVjdC5oCitAQCAtMTAsMTYgKzEwLDE5 IEBACisgI2lmbmRlZiBPUEVOVkRCX1RPT0xTX1BPSU5UX0FEVkVDVF9IQVNfQkVFTl9JTkNMVURF RAorICNkZWZpbmUgT1BFTlZEQl9UT09MU19QT0lOVF9BRFZFQ1RfSEFTX0JFRU5fSU5DTFVERUQK KyAKKy0jaW5jbHVkZSA8b3BlbnZkYi9vcGVudmRiLmg+CistI2luY2x1ZGUgPG9wZW52ZGIvbWF0 aC9NYXRoLmg+ICAgICAgICAgICAgIC8vIG1pbgorLSNpbmNsdWRlIDxvcGVudmRiL1R5cGVzLmg+ ICAgICAgICAgICAgICAgICAvLyBWZWMzIHR5cGVzIGFuZCB2ZXJzaW9uIG51bWJlcgorLSNpbmNs dWRlIDxvcGVudmRiL0dyaWQuaD4gICAgICAgICAgICAgICAgICAvLyBncmlkCistI2luY2x1ZGUg PG9wZW52ZGIvdXRpbC9OdWxsSW50ZXJydXB0ZXIuaD4KKysjaW5jbHVkZSAib3BlbnZkYi9vcGVu dmRiLmgiCisrI2luY2x1ZGUgIm9wZW52ZGIvVHlwZXMuaCIgICAgICAgICAgICAgICAgIC8vIFZl YzMgdHlwZXMgYW5kIHZlcnNpb24gbnVtYmVyCisrI2luY2x1ZGUgIm9wZW52ZGIvR3JpZC5oIiAg ICAgICAgICAgICAgICAgIC8vIGdyaWQKKysjaW5jbHVkZSAib3BlbnZkYi9tYXRoL01hdGguaCIg ICAgICAgICAgICAgLy8gbWluCisrI2luY2x1ZGUgIm9wZW52ZGIvdXRpbC9OdWxsSW50ZXJydXB0 ZXIuaCIKKysjaW5jbHVkZSAib3BlbnZkYi90aHJlYWQvVGhyZWFkaW5nLmgiCisgI2luY2x1ZGUg IkludGVycG9sYXRpb24uaCIgICAgICAgICAgICAgICAgIC8vIHNhbXBsaW5nCisgI2luY2x1ZGUg IlZlbG9jaXR5RmllbGRzLmgiICAgICAgICAgICAgICAgIC8vIFZlbG9jaXR5SW50ZWdyYXRvcgor KworICNpbmNsdWRlIDx0YmIvYmxvY2tlZF9yYW5nZS5oPiAgICAgICAgICAgICAvLyB0aHJlYWRp bmcKKyAjaW5jbHVkZSA8dGJiL3BhcmFsbGVsX2Zvci5oPiAgICAgICAgICAgICAgLy8gdGhyZWFk aW5nCisgI2luY2x1ZGUgPHRiYi90YXNrLmg+ICAgICAgICAgICAgICAgICAgICAgIC8vIGZvciBj YW5jZWwKKysKKyAjaW5jbHVkZSA8dmVjdG9yPgorIAorIAorQEAgLTE2Nyw3ICsxNzAsNyBAQCBj bGFzcyBQb2ludEFkdmVjdAorICAgICB2b2lkIG9wZXJhdG9yKCkgKGNvbnN0IHRiYjo6YmxvY2tl ZF9yYW5nZTxzaXplX3Q+ICZyYW5nZSkgY29uc3QKKyAgICAgeworICAgICAgICAgaWYgKG1JbnRl cnJ1cHRlciAmJiBtSW50ZXJydXB0ZXItPndhc0ludGVycnVwdGVkKCkpIHsKKy0gICAgICAgICAg ICB0YmI6OnRhc2s6OnNlbGYoKS5jYW5jZWxfZ3JvdXBfZXhlY3V0aW9uKCk7CisrICAgICAgICAg ICAgdGhyZWFkOjpjYW5jZWxHcm91cEV4ZWN1dGlvbigpOworICAgICAgICAgfQorIAorICAgICAg ICAgVmVsb2NpdHlGaWVsZEludGVncmF0b3IgIHZlbEZpZWxkKCptVmVsR3JpZCk7CitAQCAtMzA3 LDcgKzMxMCw3IEBAIGNsYXNzIENvbnN0cmFpbmVkUG9pbnRBZHZlY3QKKyAgICAgdm9pZCBvcGVy YXRvcigpIChjb25zdCB0YmI6OmJsb2NrZWRfcmFuZ2U8c2l6ZV90PiAmcmFuZ2UpIGNvbnN0Cisg ICAgIHsKKyAgICAgICAgIGlmIChtSW50ZXJydXB0ZXIgJiYgbUludGVycnVwdGVyLT53YXNJbnRl cnJ1cHRlZCgpKSB7CistICAgICAgICAgICAgdGJiOjp0YXNrOjpzZWxmKCkuY2FuY2VsX2dyb3Vw X2V4ZWN1dGlvbigpOworKyAgICAgICAgICAgIHRocmVhZDo6Y2FuY2VsR3JvdXBFeGVjdXRpb24o KTsKKyAgICAgICAgIH0KKyAKKyAgICAgICAgIFZlbG9jaXR5SW50ZWdyYXRvclR5cGUgdmVsRmll bGQoKm1WZWxHcmlkKTsKK2RpZmYgLS1naXQgYS9vcGVudmRiL29wZW52ZGIvdG9vbHMvUG9pbnRJ bmRleEdyaWQuaCBiL29wZW52ZGIvb3BlbnZkYi90b29scy9Qb2ludEluZGV4R3JpZC5oCitpbmRl eCBlOWViZjk2ZjcuLmIyZTM3OGE3OSAxMDA2NDQKKy0tLSBhL29wZW52ZGIvb3BlbnZkYi90b29s cy9Qb2ludEluZGV4R3JpZC5oCisrKysgYi9vcGVudmRiL29wZW52ZGIvdG9vbHMvUG9pbnRJbmRl eEdyaWQuaAorQEAgLTE2LDYgKzE2LDcgQEAKKyAjaWZuZGVmIE9QRU5WREJfVE9PTFNfUE9JTlRf SU5ERVhfR1JJRF9IQVNfQkVFTl9JTkNMVURFRAorICNkZWZpbmUgT1BFTlZEQl9UT09MU19QT0lO VF9JTkRFWF9HUklEX0hBU19CRUVOX0lOQ0xVREVECisgCisrI2luY2x1ZGUgIm9wZW52ZGIvdGhy ZWFkL1RocmVhZGluZy5oIgorICNpbmNsdWRlICJQb2ludFBhcnRpdGlvbmVyLmgiCisgCisgI2lu Y2x1ZGUgPG9wZW52ZGIvdmVyc2lvbi5oPgorQEAgLTM1NSw3ICszNTYsNyBAQCBzdHJ1Y3QgVmFs aWRQYXJ0aXRpb25pbmdPcAorICAgICB2b2lkIG9wZXJhdG9yKCkoTGVhZlQgJmxlYWYsIHNpemVf dCAvKmxlYWZJbmRleCovKSBjb25zdAorICAgICB7CisgICAgICAgICBpZiAoKCptSGFzQ2hhbmdl ZCkpIHsKKy0gICAgICAgICAgICB0YmI6OnRhc2s6OnNlbGYoKS5jYW5jZWxfZ3JvdXBfZXhlY3V0 aW9uKCk7CisrICAgICAgICAgICAgdGhyZWFkOjpjYW5jZWxHcm91cEV4ZWN1dGlvbigpOworICAg ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgIH0KKyAKK2RpZmYgLS1naXQgYS9vcGVudmRiL29w ZW52ZGIvdG9vbHMvUG9pbnRQYXJ0aXRpb25lci5oIGIvb3BlbnZkYi9vcGVudmRiL3Rvb2xzL1Bv aW50UGFydGl0aW9uZXIuaAoraW5kZXggY2NmNTBhYjA1Li5mN2Y2ZmMxM2QgMTAwNjQ0CistLS0g YS9vcGVudmRiL29wZW52ZGIvdG9vbHMvUG9pbnRQYXJ0aXRpb25lci5oCisrKysgYi9vcGVudmRi L29wZW52ZGIvdG9vbHMvUG9pbnRQYXJ0aXRpb25lci5oCitAQCAtMjMsNyArMjMsNyBAQAorIAor ICNpbmNsdWRlIDx0YmIvYmxvY2tlZF9yYW5nZS5oPgorICNpbmNsdWRlIDx0YmIvcGFyYWxsZWxf Zm9yLmg+CistI2luY2x1ZGUgPHRiYi90YXNrX3NjaGVkdWxlcl9pbml0Lmg+CisrI2luY2x1ZGUg PHRiYi90YXNrX2FyZW5hLmg+CisgCisgI2luY2x1ZGUgPGFsZ29yaXRobT4KKyAjaW5jbHVkZSA8 Y21hdGg+IC8vIGZvciBzdGQ6OmlzZmluaXRlKCkKK0BAIC03NjQsNyArNzY0LDcgQEAgaW5saW5l IHZvaWQgYmluQW5kU2VnbWVudCgKKyAgICAgdXNpbmcgSW5kZXhQYWlyTGlzdE1hcCA9IHN0ZDo6 bWFwPENvb3JkLCBJbmRleFBhaXJMaXN0UHRyPjsKKyAgICAgdXNpbmcgSW5kZXhQYWlyTGlzdE1h cFB0ciA9IHN0ZDo6c2hhcmVkX3B0cjxJbmRleFBhaXJMaXN0TWFwPjsKKyAKKy0gICAgc2l6ZV90 IG51bVRhc2tzID0gMSwgbnVtVGhyZWFkcyA9IHNpemVfdCh0YmI6OnRhc2tfc2NoZWR1bGVyX2lu aXQ6OmRlZmF1bHRfbnVtX3RocmVhZHMoKSk7CisrICAgIHNpemVfdCBudW1UYXNrcyA9IDEsIG51 bVRocmVhZHMgPSBzaXplX3QodGJiOjp0aGlzX3Rhc2tfYXJlbmE6Om1heF9jb25jdXJyZW5jeSgp KTsKKyAgICAgaWYgKHBvaW50cy5zaXplKCkgPiAobnVtVGhyZWFkcyAqIDIpKSBudW1UYXNrcyA9 IG51bVRocmVhZHMgKiAyOworICAgICBlbHNlIGlmIChwb2ludHMuc2l6ZSgpID4gbnVtVGhyZWFk cykgbnVtVGFza3MgPSBudW1UaHJlYWRzOworIAorZGlmZiAtLWdpdCBhL29wZW52ZGIvb3BlbnZk Yi90b29scy9Qb2ludHNUb01hc2suaCBiL29wZW52ZGIvb3BlbnZkYi90b29scy9Qb2ludHNUb01h c2suaAoraW5kZXggNTkyYWI3YTE1Li44YTI3NmZiMDQgMTAwNjQ0CistLS0gYS9vcGVudmRiL29w ZW52ZGIvdG9vbHMvUG9pbnRzVG9NYXNrLmgKKysrKyBiL29wZW52ZGIvb3BlbnZkYi90b29scy9Q b2ludHNUb01hc2suaAorQEAgLTQ2LDE0ICs0NiwxOCBAQAorICNpZm5kZWYgT1BFTlZEQl9UT09M U19QT0lOVFNUT01BU0tfSEFTX0JFRU5fSU5DTFVERUQKKyAjZGVmaW5lIE9QRU5WREJfVE9PTFNf UE9JTlRTVE9NQVNLX0hBU19CRUVOX0lOQ0xVREVECisgCisrCisrI2luY2x1ZGUgIm9wZW52ZGIv b3BlbnZkYi5oIiAvLyBmb3IgTWFza0dyaWQKKysjaW5jbHVkZSAib3BlbnZkYi9HcmlkLmgiCisr I2luY2x1ZGUgIm9wZW52ZGIvVHlwZXMuaCIKKysjaW5jbHVkZSAib3BlbnZkYi91dGlsL051bGxJ bnRlcnJ1cHRlci5oIgorKyNpbmNsdWRlICJvcGVudmRiL3RocmVhZC9UaHJlYWRpbmcuaCIKKysK KyAjaW5jbHVkZSA8dGJiL2VudW1lcmFibGVfdGhyZWFkX3NwZWNpZmljLmg+CisgI2luY2x1ZGUg PHRiYi9wYXJhbGxlbF9mb3IuaD4KKyAjaW5jbHVkZSA8dGJiL3BhcmFsbGVsX3JlZHVjZS5oPgor ICNpbmNsdWRlIDx0YmIvYmxvY2tlZF9yYW5nZS5oPgorLSNpbmNsdWRlIDxvcGVudmRiL29wZW52 ZGIuaD4gLy8gZm9yIE1hc2tHcmlkCistI2luY2x1ZGUgPG9wZW52ZGIvR3JpZC5oPgorLSNpbmNs dWRlIDxvcGVudmRiL1R5cGVzLmg+CistI2luY2x1ZGUgPG9wZW52ZGIvdXRpbC9OdWxsSW50ZXJy dXB0ZXIuaD4KKysKKyAjaW5jbHVkZSA8dmVjdG9yPgorIAorIAorQEAgLTE1MCw3ICsxNTQsNyBA QCBjbGFzcyBQb2ludHNUb01hc2sKKyAgICAgYm9vbCBpbnRlcnJ1cHQoKSBjb25zdAorICAgICB7 CisgICAgICAgICBpZiAobUludGVycnVwdGVyICYmIHV0aWw6Ondhc0ludGVycnVwdGVkKG1JbnRl cnJ1cHRlcikpIHsKKy0gICAgICAgICAgICB0YmI6OnRhc2s6OnNlbGYoKS5jYW5jZWxfZ3JvdXBf ZXhlY3V0aW9uKCk7CisrICAgICAgICAgICAgdGhyZWFkOjpjYW5jZWxHcm91cEV4ZWN1dGlvbigp OworICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgfQorICAgICAgICAgcmV0dXJu IGZhbHNlOworZGlmZiAtLWdpdCBhL29wZW52ZGIvb3BlbnZkYi90b29scy9Wb2x1bWVBZHZlY3Qu aCBiL29wZW52ZGIvb3BlbnZkYi90b29scy9Wb2x1bWVBZHZlY3QuaAoraW5kZXggZTdlZWM3NDBl Li5mMzhlYWE5YzIgMTAwNjQ0CistLS0gYS9vcGVudmRiL29wZW52ZGIvdG9vbHMvVm9sdW1lQWR2 ZWN0LmgKKysrKyBiL29wZW52ZGIvb3BlbnZkYi90b29scy9Wb2x1bWVBZHZlY3QuaAorQEAgLTEz LDE1ICsxMywxOCBAQAorICNpZm5kZWYgT1BFTlZEQl9UT09MU19WT0xVTUVfQURWRUNUX0hBU19C RUVOX0lOQ0xVREVECisgI2RlZmluZSBPUEVOVkRCX1RPT0xTX1ZPTFVNRV9BRFZFQ1RfSEFTX0JF RU5fSU5DTFVERUQKKyAKKy0jaW5jbHVkZSA8dGJiL3BhcmFsbGVsX2Zvci5oPgorLSNpbmNsdWRl IDxvcGVudmRiL1R5cGVzLmg+CistI2luY2x1ZGUgPG9wZW52ZGIvbWF0aC9NYXRoLmg+CistI2lu Y2x1ZGUgPG9wZW52ZGIvdXRpbC9OdWxsSW50ZXJydXB0ZXIuaD4KKysjaW5jbHVkZSAib3BlbnZk Yi9UeXBlcy5oIgorKyNpbmNsdWRlICJvcGVudmRiL21hdGgvTWF0aC5oIgorKyNpbmNsdWRlICJv cGVudmRiL3V0aWwvTnVsbEludGVycnVwdGVyLmgiCisrI2luY2x1ZGUgIm9wZW52ZGIvdGhyZWFk L1RocmVhZGluZy5oIgorICNpbmNsdWRlICJJbnRlcnBvbGF0aW9uLmgiLy8gZm9yIFNhbXBsZXIK KyAjaW5jbHVkZSAiVmVsb2NpdHlGaWVsZHMuaCIgLy8gZm9yIFZlbG9jaXR5SW50ZWdyYXRvcgor ICNpbmNsdWRlICJNb3JwaG9sb2d5LmgiLy9mb3IgZGlsYXRlQWN0aXZlVmFsdWVzCisgI2luY2x1 ZGUgIlBydW5lLmgiLy8gZm9yIHBydW5lCisgI2luY2x1ZGUgIlN0YXRpc3RpY3MuaCIgLy8gZm9y IGV4dHJlbWEKKysKKysjaW5jbHVkZSA8dGJiL3BhcmFsbGVsX2Zvci5oPgorKworICNpbmNsdWRl IDxmdW5jdGlvbmFsPgorIAorIAorQEAgLTI5NCw3ICsyOTcsNyBAQCBjbGFzcyBWb2x1bWVBZHZl Y3Rpb24KKyAgICAgYm9vbCBpbnRlcnJ1cHQoKSBjb25zdAorICAgICB7CisgICAgICAgICBpZiAo bUludGVycnVwdGVyICYmIHV0aWw6Ondhc0ludGVycnVwdGVkKG1JbnRlcnJ1cHRlcikpIHsKKy0g ICAgICAgICAgICB0YmI6OnRhc2s6OnNlbGYoKS5jYW5jZWxfZ3JvdXBfZXhlY3V0aW9uKCk7Cisr ICAgICAgICAgICAgdGhyZWFkOjpjYW5jZWxHcm91cEV4ZWN1dGlvbigpOworICAgICAgICAgICAg IHJldHVybiB0cnVlOworICAgICAgICAgfQorICAgICAgICAgcmV0dXJuIGZhbHNlOworZGlmZiAt LWdpdCBhL29wZW52ZGIvb3BlbnZkYi90b29scy9Wb2x1bWVUb01lc2guaCBiL29wZW52ZGIvb3Bl bnZkYi90b29scy9Wb2x1bWVUb01lc2guaAoraW5kZXggYTgzNGRkM2IzLi5hNDQ2ZjgwNmEgMTAw NjQ0CistLS0gYS9vcGVudmRiL29wZW52ZGIvdG9vbHMvVm9sdW1lVG9NZXNoLmgKKysrKyBiL29w ZW52ZGIvb3BlbnZkYi90b29scy9Wb2x1bWVUb01lc2guaAorQEAgLTE4LDcgKzE4LDcgQEAKKyAj aW5jbHVkZSA8dGJiL2Jsb2NrZWRfcmFuZ2UuaD4KKyAjaW5jbHVkZSA8dGJiL3BhcmFsbGVsX2Zv ci5oPgorICNpbmNsdWRlIDx0YmIvcGFyYWxsZWxfcmVkdWNlLmg+CistI2luY2x1ZGUgPHRiYi90 YXNrX3NjaGVkdWxlcl9pbml0Lmg+CisrI2luY2x1ZGUgPHRiYi90YXNrX2FyZW5hLmg+CisgCisg I2luY2x1ZGUgPGNtYXRoPiAvLyBmb3Igc3RkOjppc2Zpbml0ZSgpCisgI2luY2x1ZGUgPG1hcD4K K0BAIC0zODgsNyArMzg4LDcgQEAgaW5saW5lIHZvaWQKKyBmaWxsQXJyYXkoVmFsdWVUeXBlKiBh cnJheSwgY29uc3QgVmFsdWVUeXBlJiB2YWwsIGNvbnN0IHNpemVfdCBsZW5ndGgpCisgeworICAg ICBjb25zdCBhdXRvIGdyYWluU2l6ZSA9IHN0ZDo6bWF4PHNpemVfdD4oCistICAgICAgICBsZW5n dGggLyB0YmI6OnRhc2tfc2NoZWR1bGVyX2luaXQ6OmRlZmF1bHRfbnVtX3RocmVhZHMoKSwgMTAy NCk7CisrICAgICAgICBsZW5ndGggLyB0YmI6OnRoaXNfdGFza19hcmVuYTo6bWF4X2NvbmN1cnJl bmN5KCksIDEwMjQpOworICAgICBjb25zdCB0YmI6OmJsb2NrZWRfcmFuZ2U8c2l6ZV90PiByYW5n ZSgwLCBsZW5ndGgsIGdyYWluU2l6ZSk7CisgICAgIHRiYjo6cGFyYWxsZWxfZm9yKHJhbmdlLCBG aWxsQXJyYXk8VmFsdWVUeXBlPihhcnJheSwgdmFsKSwgdGJiOjpzaW1wbGVfcGFydGl0aW9uZXIo KSk7CisgfQorZGlmZiAtLWdpdCBhL29wZW52ZGIvb3BlbnZkYi91bml0dGVzdC9UZXN0Q29vcmQu Y2MgYi9vcGVudmRiL29wZW52ZGIvdW5pdHRlc3QvVGVzdENvb3JkLmNjCitpbmRleCBiZTFjMjRj ZWQuLjE0ODY5MDA0MSAxMDA2NDQKKy0tLSBhL29wZW52ZGIvb3BlbnZkYi91bml0dGVzdC9UZXN0 Q29vcmQuY2MKKysrKyBiL29wZW52ZGIvb3BlbnZkYi91bml0dGVzdC9UZXN0Q29vcmQuY2MKK0BA IC0yLDkgKzIsOSBAQAorIC8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wCisgCisg I2luY2x1ZGUgPG9wZW52ZGIvVHlwZXMuaD4KKysjaW5jbHVkZSA8b3BlbnZkYi9tYXRoL0Nvb3Jk Lmg+CisgCisgI2luY2x1ZGUgPGd0ZXN0L2d0ZXN0Lmg+CistI2luY2x1ZGUgPHRiYi90YmJfc3Rk ZGVmLmg+IC8vIGZvciB0YmI6OnNwbGl0CisgCisgI2luY2x1ZGUgPHVub3JkZXJlZF9tYXA+Cisg I2luY2x1ZGUgPHNzdHJlYW0+CitkaWZmIC0tZ2l0IGEvb3BlbnZkYi9vcGVudmRiL3VuaXR0ZXN0 L1Rlc3RGaWxlLmNjIGIvb3BlbnZkYi9vcGVudmRiL3VuaXR0ZXN0L1Rlc3RGaWxlLmNjCitpbmRl eCA4MDc0MTY2ZDIuLjA1MzQ0OGYzMCAxMDA2NDQKKy0tLSBhL29wZW52ZGIvb3BlbnZkYi91bml0 dGVzdC9UZXN0RmlsZS5jYworKysrIGIvb3BlbnZkYi9vcGVudmRiL3VuaXR0ZXN0L1Rlc3RGaWxl LmNjCitAQCAtMTMsOCArMTMsMTEgQEAKKyAjaW5jbHVkZSA8b3BlbnZkYi92ZXJzaW9uLmg+Cisg I2luY2x1ZGUgPG9wZW52ZGIvb3BlbnZkYi5oPgorICNpbmNsdWRlICJ1dGlsLmgiIC8vIGZvciB1 bml0dGVzdF91dGlsOjptYWtlU3BoZXJlKCkKKysKKyAjaW5jbHVkZSA8Z3Rlc3QvZ3Rlc3QuaD4K Ky0jaW5jbHVkZSA8dGJiL3RiYl90aHJlYWQuaD4gLy8gZm9yIHRiYjo6dGhpc190YmJfdGhyZWFk OjpzbGVlcCgpCisrCisrI2luY2x1ZGUgPHRocmVhZD4KKysjaW5jbHVkZSA8Y2hyb25vPgorICNp bmNsdWRlIDxhbGdvcml0aG0+IC8vIGZvciBzdGQ6OnNvcnQoKQorICNpbmNsdWRlIDxjc3RkaW8+ IC8vIGZvciByZW1vdmUoKSBhbmQgcmVuYW1lKCkKKyAjaW5jbHVkZSA8ZnN0cmVhbT4KK0BAIC0y MzQ1LDEyICsyMzQ4LDE0IEBAIFRFU1RfRihUZXN0RmlsZSwgdGVzdEFzeW5jKQorICAgICAgICAg ICAgIGhlbHBlci5pbnNlcnQoaWQsIGZpbGVuYW1lKTsKKyAgICAgICAgIH0KKyAKKy0gICAgICAg IHRiYjo6dGlja19jb3VudCBzdGFydCA9IHRiYjo6dGlja19jb3VudDo6bm93KCk7CisrICAgICAg ICBhdXRvIHN0YXJ0ID0gc3RkOjpjaHJvbm86OnN0ZWFkeV9jbG9jazo6bm93KCk7CisgICAgICAg ICB3aGlsZSAoIWhlbHBlci5pZHMuZW1wdHkoKSkgeworLSAgICAgICAgICAgIGlmICgodGJiOjp0 aWNrX2NvdW50Ojpub3coKSAtIHN0YXJ0KS5zZWNvbmRzKCkgPiA2MCkgYnJlYWs7IC8vIHRpbWUg b3V0IGFmdGVyIDEgbWludXRlCisrICAgICAgICAgICAgYXV0byBkdXJhdGlvbiA9IHN0ZDo6Y2hy b25vOjpkdXJhdGlvbl9jYXN0PHN0ZDo6Y2hyb25vOjpzZWNvbmRzPigKKysgICAgICAgICAgICAg ICAgc3RkOjpjaHJvbm86OnN0ZWFkeV9jbG9jazo6bm93KCkgLSBzdGFydCk7CisrICAgICAgICAg ICAgaWYgKHNpemVfdChkdXJhdGlvbi5jb3VudCgpKSA+IDYwKSAgYnJlYWs7IC8vIHRpbWUgb3V0 IGFmdGVyIDEgbWludXRlCisgCisgICAgICAgICAgICAgLy8gV2FpdCBvbmUgc2Vjb25kIGZvciB0 YXNrcyB0byBjb21wbGV0ZS4KKy0gICAgICAgICAgICB0YmI6OnRoaXNfdGJiX3RocmVhZDo6c2xl ZXAodGJiOjp0aWNrX2NvdW50OjppbnRlcnZhbF90KDEuMC8qc2VjKi8pKTsKKysgICAgICAgICAg ICBzdGQ6OnRoaXNfdGhyZWFkOjpzbGVlcF9mb3Ioc3RkOjpjaHJvbm86OnNlY29uZHMoMSkpOwor IAorICAgICAgICAgICAgIC8vIFBvbGwgZWFjaCB0YXNrIGluIHRoZSBwZW5kaW5nIG1hcC4KKyAg ICAgICAgICAgICBzdGQ6OnNldDxpbzo6UXVldWU6OklkPiBpZHMgPSBoZWxwZXIuaWRzOyAvLyBp dGVyYXRlIG92ZXIgYSBjb3B5CitAQCAtMjM4MCw3ICsyMzg1LDcgQEAgVEVTVF9GKFRlc3RGaWxl LCB0ZXN0QXN5bmMpCisgICAgICAgICAgICAgaGVscGVyLmluc2VydChpZCwgZmlsZW5hbWUpOwor ICAgICAgICAgfQorICAgICAgICAgd2hpbGUgKCFxdWV1ZS5lbXB0eSgpKSB7CistICAgICAgICAg ICAgdGJiOjp0aGlzX3RiYl90aHJlYWQ6OnNsZWVwKHRiYjo6dGlja19jb3VudDo6aW50ZXJ2YWxf dCgxLjAvKnNlYyovKSk7CisrICAgICAgICAgICAgc3RkOjp0aGlzX3RocmVhZDo6c2xlZXBfZm9y KHN0ZDo6Y2hyb25vOjpzZWNvbmRzKDEpKTsKKyAgICAgICAgIH0KKyAgICAgfQorICAgICB7CitA QCAtMjQwNSw3ICsyNDEwLDcgQEAgVEVTVF9GKFRlc3RGaWxlLCB0ZXN0QXN5bmMpCisgICAgICAg ICBFWFBFQ1RfVEhST1cocXVldWUud3JpdGUoZ3JpZHMsIGlvOjpTdHJlYW0oZmlsZTIpKSwgb3Bl bnZkYjo6UnVudGltZUVycm9yKTsKKyAKKyAgICAgICAgIHdoaWxlICghcXVldWUuZW1wdHkoKSkg eworLSAgICAgICAgICAgIHRiYjo6dGhpc190YmJfdGhyZWFkOjpzbGVlcCh0YmI6OnRpY2tfY291 bnQ6OmludGVydmFsX3QoMS4wLypzZWMqLykpOworKyAgICAgICAgICAgIHN0ZDo6dGhpc190aHJl YWQ6OnNsZWVwX2ZvcihzdGQ6OmNocm9ubzo6c2Vjb25kcygxKSk7CisgICAgICAgICB9CisgICAg IH0KKyB9CitkaWZmIC0tZ2l0IGEvb3BlbnZkYi9vcGVudmRiL3VuaXR0ZXN0L1Rlc3RVdGlsLmNj IGIvb3BlbnZkYi9vcGVudmRiL3VuaXR0ZXN0L1Rlc3RVdGlsLmNjCitpbmRleCA3MGU3ZGY1Zjcu LjZiMjIwNDc3MSAxMDA2NDQKKy0tLSBhL29wZW52ZGIvb3BlbnZkYi91bml0dGVzdC9UZXN0VXRp bC5jYworKysrIGIvb3BlbnZkYi9vcGVudmRiL3VuaXR0ZXN0L1Rlc3RVdGlsLmNjCitAQCAtOCw3 ICs4LDYgQEAKKyAKKyAjaW5jbHVkZSA8Z3Rlc3QvZ3Rlc3QuaD4KKyAKKy0jaW5jbHVkZSA8dGJi L3Rhc2tfc2NoZWR1bGVyX2luaXQuaD4KKyAjaW5jbHVkZSA8dGJiL2VudW1lcmFibGVfdGhyZWFk X3NwZWNpZmljLmg+CisgI2luY2x1ZGUgPHRiYi9wYXJhbGxlbF9mb3IuaD4KKyAjaW5jbHVkZSA8 dGJiL2Jsb2NrZWRfcmFuZ2UuaD4KK2RpZmYgLS1naXQgYS9vcGVudmRiL29wZW52ZGIvdW5pdHRl c3QvVGVzdFZhbHVlQWNjZXNzb3IuY2MgYi9vcGVudmRiL29wZW52ZGIvdW5pdHRlc3QvVGVzdFZh bHVlQWNjZXNzb3IuY2MKK2luZGV4IGZkMmRkNWQ4MS4uNWMxY2JiMThiIDEwMDY0NAorLS0tIGEv b3BlbnZkYi9vcGVudmRiL3VuaXR0ZXN0L1Rlc3RWYWx1ZUFjY2Vzc29yLmNjCisrKysgYi9vcGVu dmRiL29wZW52ZGIvdW5pdHRlc3QvVGVzdFZhbHVlQWNjZXNzb3IuY2MKK0BAIC02LDYgKzYsNyBA QAorIAorICNpbmNsdWRlIDxndGVzdC9ndGVzdC5oPgorICNpbmNsdWRlIDx0YmIvdGFzay5oPgor KyNpbmNsdWRlIDx0YmIvdGFza19ncm91cC5oPgorIAorICNpbmNsdWRlIDx0eXBlX3RyYWl0cz4K KyAKK0BAIC0zNzgsMjIgKzM3OSwyMSBAQCBURVNUX0YoVGVzdFZhbHVlQWNjZXNzb3IsIHRlc3RN dWx0aXRocmVhZGVkQWNjZXNzb3IpCisgICAgIC8vdXNpbmcgQWNjZXNzb3JUID0gb3BlbnZkYjo6 dHJlZTo6VmFsdWVBY2Nlc3NvcjxUcmVlNFR5cGU+OworIAorICAgICAvLyBUYXNrIHRvIHBlcmZv cm0gbXVsdGlwbGUgcmVhZHMgdGhyb3VnaCBhIHNoYXJlZCBhY2Nlc3NvcgorLSAgICBzdHJ1Y3Qg UmVhZFRhc2s6IHB1YmxpYyB0YmI6OnRhc2sgeworKyAgICBzdHJ1Y3QgUmVhZFRhc2sgeworICAg ICAgICAgQWNjZXNzb3JUJiBhY2M7CisgICAgICAgICBSZWFkVGFzayhBY2Nlc3NvclQmIGMpOiBh Y2MoYykge30KKy0gICAgICAgIHRiYjo6dGFzayogZXhlY3V0ZSgpCisrICAgICAgICB2b2lkIGV4 ZWN1dGUoKQorICAgICAgICAgeworICAgICAgICAgICAgIGZvciAoaW50IGkgPSAtTUFYX0NPT1JE OyBpIDwgTUFYX0NPT1JEOyArK2kpIHsKKyAgICAgICAgICAgICAgICAgQVNTRVJUX0RPVUJMRVNf RVhBQ1RMWV9FUVVBTChkb3VibGUoaSksIGFjYy5nZXRWYWx1ZShvcGVudmRiOjpDb29yZChpKSkp OworICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAg IH0KKyAgICAgfTsKKyAgICAgLy8gVGFzayB0byBwZXJmb3JtIG11bHRpcGxlIHdyaXRlcyB0aHJv dWdoIGEgc2hhcmVkIGFjY2Vzc29yCistICAgIHN0cnVjdCBXcml0ZVRhc2s6IHB1YmxpYyB0YmI6 OnRhc2sgeworKyAgICBzdHJ1Y3QgV3JpdGVUYXNrIHsKKyAgICAgICAgIEFjY2Vzc29yVCYgYWNj OworICAgICAgICAgV3JpdGVUYXNrKEFjY2Vzc29yVCYgYyk6IGFjYyhjKSB7fQorLSAgICAgICAg dGJiOjp0YXNrKiBleGVjdXRlKCkKKysgICAgICAgIHZvaWQgZXhlY3V0ZSgpCisgICAgICAgICB7 CisgICAgICAgICAgICAgZm9yIChpbnQgaSA9IC1NQVhfQ09PUkQ7IGkgPCBNQVhfQ09PUkQ7ICsr aSkgeworICAgICAgICAgICAgICAgICBmbG9hdCBmID0gYWNjLmdldFZhbHVlKG9wZW52ZGI6OkNv b3JkKGkpKTsKK0BAIC00MDEsMjYgKzQwMSwyMCBAQCBURVNUX0YoVGVzdFZhbHVlQWNjZXNzb3Is IHRlc3RNdWx0aXRocmVhZGVkQWNjZXNzb3IpCisgICAgICAgICAgICAgICAgIGFjYy5zZXRWYWx1 ZShvcGVudmRiOjpDb29yZChpKSwgZmxvYXQoaSkpOworICAgICAgICAgICAgICAgICBBU1NFUlRf RE9VQkxFU19FWEFDVExZX0VRVUFMKGZsb2F0KGkpLCBhY2MuZ2V0VmFsdWUob3BlbnZkYjo6Q29v cmQoaSkpKTsKKyAgICAgICAgICAgICB9CistICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7Cisg ICAgICAgICB9CisgICAgIH07CisgICAgIC8vIFBhcmVudCB0YXNrIHRvIHNwYXduIG11bHRpcGxl IHBhcmFsbGVsIHJlYWQgYW5kIHdyaXRlIHRhc2tzCistICAgIHN0cnVjdCBSb290VGFzazogcHVi bGljIHRiYjo6dGFzayB7CisrICAgIHN0cnVjdCBSb290VGFzayB7CisgICAgICAgICBBY2Nlc3Nv clQmIGFjYzsKKyAgICAgICAgIFJvb3RUYXNrKEFjY2Vzc29yVCYgYyk6IGFjYyhjKSB7fQorLSAg ICAgICAgdGJiOjp0YXNrKiBleGVjdXRlKCkKKysgICAgICAgIHZvaWQgZXhlY3V0ZSgpCisgICAg ICAgICB7CistICAgICAgICAgICAgUmVhZFRhc2sqIHJbM107IFdyaXRlVGFzayogd1szXTsKKysg ICAgICAgICAgICB0YmI6OnRhc2tfZ3JvdXAgdGFza3M7CisgICAgICAgICAgICAgZm9yIChpbnQg aSA9IDA7IGkgPCAzOyArK2kpIHsKKy0gICAgICAgICAgICAgICAgcltpXSA9IG5ldyhhbGxvY2F0 ZV9jaGlsZCgpKSBSZWFkVGFzayhhY2MpOworLSAgICAgICAgICAgICAgICB3W2ldID0gbmV3KGFs bG9jYXRlX2NoaWxkKCkpIFdyaXRlVGFzayhhY2MpOworKyAgICAgICAgICAgICAgICB0YXNrcy5y dW4oWyZdIHsgUmVhZFRhc2sgcihhY2MpOyByLmV4ZWN1dGUoKTsgfSk7CisrICAgICAgICAgICAg ICAgIHRhc2tzLnJ1bihbJl0geyBXcml0ZVRhc2sgdyhhY2MpOyB3LmV4ZWN1dGUoKTsgfSk7Cisg ICAgICAgICAgICAgfQorLSAgICAgICAgICAgIHNldF9yZWZfY291bnQoNiAvKmNoaWxkcmVuKi8g KyAxIC8qd2FpdCovKTsKKy0gICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IDM7ICsraSkg eworLSAgICAgICAgICAgICAgICBzcGF3bigqcltpXSk7IHNwYXduKCp3W2ldKTsKKy0gICAgICAg ICAgICB9CistICAgICAgICAgICAgd2FpdF9mb3JfYWxsKCk7CistICAgICAgICAgICAgcmV0dXJu IG51bGxwdHI7CisrICAgICAgICAgICAgdGFza3Mud2FpdCgpOworICAgICAgICAgfQorICAgICB9 OworIAorQEAgLTQzMiw4ICs0MjYsOCBAQCBURVNUX0YoVGVzdFZhbHVlQWNjZXNzb3IsIHRlc3RN dWx0aXRocmVhZGVkQWNjZXNzb3IpCisgICAgIH0KKyAKKyAgICAgLy8gUnVuIG11bHRpcGxlIHJl YWQgYW5kIHdyaXRlIHRhc2tzIGluIHBhcmFsbGVsLgorLSAgICBSb290VGFzayYgcm9vdCA9ICpu ZXcodGJiOjp0YXNrOjphbGxvY2F0ZV9yb290KCkpIFJvb3RUYXNrKGFjYyk7CistICAgIHRiYjo6 dGFzazo6c3Bhd25fcm9vdF9hbmRfd2FpdChyb290KTsKKysgICAgUm9vdFRhc2sgcm9vdChhY2Mp OworKyAgICByb290LmV4ZWN1dGUoKTsKKyAKKyAjdW5kZWYgTUFYX0NPT1JECisgfQorZGlmZiAt LWdpdCBhL29wZW52ZGJfaG91ZGluaS9vcGVudmRiX2hvdWRpbmkvU09QX09wZW5WREJfUmFzdGVy aXplX1BvaW50cy5jYyBiL29wZW52ZGJfaG91ZGluaS9vcGVudmRiX2hvdWRpbmkvU09QX09wZW5W REJfUmFzdGVyaXplX1BvaW50cy5jYworaW5kZXggMGUxYjRkODU1Li42ZDliYjUyOGIgMTAwNjQ0 CistLS0gYS9vcGVudmRiX2hvdWRpbmkvb3BlbnZkYl9ob3VkaW5pL1NPUF9PcGVuVkRCX1Jhc3Rl cml6ZV9Qb2ludHMuY2MKKysrKyBiL29wZW52ZGJfaG91ZGluaS9vcGVudmRiX2hvdWRpbmkvU09Q X09wZW5WREJfUmFzdGVyaXplX1BvaW50cy5jYworQEAgLTIwLDYgKzIwLDcgQEAKKyAjaW5jbHVk ZSA8b3BlbnZkYi90b29scy9HcmlkVHJhbnNmb3JtZXIuaD4KKyAjaW5jbHVkZSA8b3BlbnZkYi90 b29scy9Qb2ludEluZGV4R3JpZC5oPgorICNpbmNsdWRlIDxvcGVudmRiL3Rvb2xzL1BydW5lLmg+ CisrI2luY2x1ZGUgPG9wZW52ZGIvdGhyZWFkL1RocmVhZGluZy5oPgorIAorICNpbmNsdWRlIDxD SC9DSF9NYW5hZ2VyLmg+CisgI2luY2x1ZGUgPENWRVgvQ1ZFWF9Db250ZXh0Lmg+CitAQCAtNzg2 LDcgKzc4Nyw3IEBAIHN0cnVjdCBDb25zdHJ1Y3RDYW5kaWRhdGVWb3hlbE1hc2sKKyAgICAgICAg IGZvciAoc2l6ZV90IG4gPSByYW5nZS5iZWdpbigpLCBOID0gcmFuZ2UuZW5kKCk7IG4gIT0gTjsg KytuKSB7CisgCisgICAgICAgICAgICAgaWYgKHRoaXMtPndhc0ludGVycnVwdGVkKCkpIHsKKy0g ICAgICAgICAgICAgICAgdGJiOjp0YXNrOjpzZWxmKCkuY2FuY2VsX2dyb3VwX2V4ZWN1dGlvbigp OworKyAgICAgICAgICAgICAgICBvcGVudmRiOjp0aHJlYWQ6OmNhbmNlbEdyb3VwRXhlY3V0aW9u KCk7CisgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgIH0KKyAKK0BAIC0yMDky LDcgKzIwOTMsNyBAQCBzdHJ1Y3QgUmFzdGVyaXplUG9pbnRzCisgICAgICAgICBmb3IgKHNpemVf dCBuID0gcmFuZ2UuYmVnaW4oKSwgTiA9IHJhbmdlLmVuZCgpOyBuICE9IE47ICsrbikgeworIAor ICAgICAgICAgICAgIGlmICh0aGlzLT53YXNJbnRlcnJ1cHRlZCgpKSB7CistICAgICAgICAgICAg ICAgIHRiYjo6dGFzazo6c2VsZigpLmNhbmNlbF9ncm91cF9leGVjdXRpb24oKTsKKysgICAgICAg ICAgICAgICAgb3BlbnZkYjo6dGhyZWFkOjpjYW5jZWxHcm91cEV4ZWN1dGlvbigpOworICAgICAg ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICB9CisgCitkaWZmIC0tZ2l0IGEvb3BlbnZk Yl9ob3VkaW5pL29wZW52ZGJfaG91ZGluaS9TT1BfT3BlblZEQl9TYW1wbGVfUG9pbnRzLmNjIGIv b3BlbnZkYl9ob3VkaW5pL29wZW52ZGJfaG91ZGluaS9TT1BfT3BlblZEQl9TYW1wbGVfUG9pbnRz LmNjCitpbmRleCA3NTdmZGM4YzYuLmRiZWU3NGIzMiAxMDA2NDQKKy0tLSBhL29wZW52ZGJfaG91 ZGluaS9vcGVudmRiX2hvdWRpbmkvU09QX09wZW5WREJfU2FtcGxlX1BvaW50cy5jYworKysrIGIv b3BlbnZkYl9ob3VkaW5pL29wZW52ZGJfaG91ZGluaS9TT1BfT3BlblZEQl9TYW1wbGVfUG9pbnRz LmNjCitAQCAtMTYsMTMgKzE2LDExIEBACisgI2luY2x1ZGUgPG9wZW52ZGJfaG91ZGluaS9TT1Bf Tm9kZVZEQi5oPgorIAorICNpbmNsdWRlIDxvcGVudmRiL3Rvb2xzL0ludGVycG9sYXRpb24uaD4g IC8vIGZvciBib3ggc2FtcGxlcgorKyNpbmNsdWRlIDxvcGVudmRiL3RocmVhZC9UaHJlYWRpbmcu aD4KKyAjaW5jbHVkZSA8b3BlbnZkYi9wb2ludHMvUG9pbnRDb3VudC5oPgorICNpbmNsdWRlIDxv cGVudmRiL3BvaW50cy9Qb2ludFNhbXBsZS5oPgorICNpbmNsdWRlIDxvcGVudmRiL3BvaW50cy9J bmRleEZpbHRlci5oPiAgIC8vIGZvciBNdWx0aUdyb3VwRmlsdGVyCisgCistI2luY2x1ZGUgPHRi Yi90aWNrX2NvdW50Lmg+ICAgICAgICAgICAgICAgICAvLyBmb3IgdGltaW5nCistI2luY2x1ZGUg PHRiYi90YXNrLmg+ICAgICAgICAgICAgICAgICAgICAgICAvLyBmb3IgY2FuY2VsCistCisgI2lu Y2x1ZGUgPFVUL1VUX0ludGVycnVwdC5oPgorICNpbmNsdWRlIDxHQS9HQV9QYWdlSGFuZGxlLmg+ CisgI2luY2x1ZGUgPEdBL0dBX1BhZ2VJdGVyYXRvci5oPgorQEAgLTM4LDYgKzM2LDcgQEAKKyAj aW5jbHVkZSA8c3RkZXhjZXB0PgorICNpbmNsdWRlIDxzdHJpbmc+CisgI2luY2x1ZGUgPHZlY3Rv cj4KKysjaW5jbHVkZSA8Y2hyb25vPgorIAorIAorIAorQEAgLTMyNyw3ICszMjYsNyBAQCBjbGFz cyBQb2ludFNhbXBsZXIKKyAgICAgeworIAorICAgICAgICAgaWYgKG1JbnRlcnJ1cHRlci0+d2Fz SW50ZXJydXB0ZWQoKSkgeworLSAgICAgICAgICAgIHRiYjo6dGFzazo6c2VsZigpLmNhbmNlbF9n cm91cF9leGVjdXRpb24oKTsKKysgICAgICAgICAgICBvcGVudmRiOjp0aHJlYWQ6OmNhbmNlbEdy b3VwRXhlY3V0aW9uKCk7CisgICAgICAgICB9CisgICAgICAgICBjb25zdCBHcmlkVHlwZSYgZ3Jp ZCA9IFVUdmRiR3JpZENhc3Q8R3JpZFR5cGU+KG1HcmlkKTsKKyAgICAgICAgIC8vIHRhc2sgbG9j YWwgZ3JpZCBhY2Nlc3NvcgorQEAgLTQ4MSw3ICs0ODAsNyBAQCBTT1BfT3BlblZEQl9TYW1wbGVf UG9pbnRzOjpDYWNoZTo6Y29va1ZEQlNvcChPUF9Db250ZXh0JiBjb250ZXh0KQorICAgICAgICAg aW50IG51bVVubmFtZWRHcmlkcyA9IDA7CisgCisgICAgICAgICAvLyBzdGFydCB0aW1lCistICAg ICAgICB0YmI6OnRpY2tfY291bnQgdGltZV9zdGFydCA9IHRiYjo6dGlja19jb3VudDo6bm93KCk7 CisrICAgICAgICBhdXRvIHRpbWVfc3RhcnQgPSBzdGQ6OmNocm9ubzo6c3RlYWR5X2Nsb2NrOjpu b3coKTsKKyAgICAgICAgIFVUX0F1dG9JbnRlcnJ1cHQgcHJvZ3Jlc3MoIlNhbXBsaW5nIGZyb20g VkRCIGdyaWRzIik7CisgCisgICAgICAgICBmb3IgKGh2ZGI6OlZkYlByaW1DSXRlcmF0b3IgaXQo YkdkcCwgZ3JvdXApOyBpdDsgKytpdCkgeworQEAgLTcwNiwxNSArNzA1LDE2IEBAIFNPUF9PcGVu VkRCX1NhbXBsZV9Qb2ludHM6OkNhY2hlOjpjb29rVkRCU29wKE9QX0NvbnRleHQmIGNvbnRleHQp CisgICAgICAgICAgICAgfQorICAgICAgICAgfQorIAorLSAgICAgICAgLy8gdGltaW5nOiBlbmQg dGltZQorLSAgICAgICAgdGJiOjp0aWNrX2NvdW50IHRpbWVfZW5kID0gdGJiOjp0aWNrX2NvdW50 Ojpub3coKTsKKy0KKyAgICAgICAgIGlmICh2ZXJib3NlKSB7CisrICAgICAgICAgICAgLy8gdGlt aW5nOiBlbmQgdGltZQorKyAgICAgICAgICAgIGF1dG8gZHVyYXRpb24gPSBzdGQ6OmNocm9ubzo6 ZHVyYXRpb25fY2FzdDxzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzPigKKysgICAgICAgICAgICAg ICAgc3RkOjpjaHJvbm86OnN0ZWFkeV9jbG9jazo6bm93KCkgLSB0aW1lX3N0YXJ0KTsKKysgICAg ICAgICAgICBjb25zdCBkb3VibGUgc2Vjb25kcyA9IGRvdWJsZShkdXJhdGlvbi5jb3VudCgpKSAv IDEwMDAuMDsKKyAgICAgICAgICAgICBzdGQ6OmNvdXQgPDwgIlNhbXBsaW5nICIgPDwgblBvaW50 cyArIG5WREJQb2ludHMgPDwgIiBwb2ludHMgaW4gIgorICAgICAgICAgICAgICAgICAgICAgICA8 PCBudW1WZWN0b3JHcmlkcyA8PCAiIHZlY3RvciBncmlkIiA8PCAobnVtVmVjdG9yR3JpZHMgPT0g MSA/ICIiIDogInMiKQorICAgICAgICAgICAgICAgICAgICAgICA8PCAiIGFuZCAiIDw8IG51bVNj YWxhckdyaWRzIDw8ICIgc2NhbGFyIGdyaWQiCisgICAgICAgICAgICAgICAgICAgICAgICAgICA8 PCAobnVtU2NhbGFyR3JpZHMgPT0gMSA/ICIiIDogInMiKQorLSAgICAgICAgICAgICAgICAgICAg ICA8PCAiIHRvb2sgIiA8PCAodGltZV9lbmQgLSB0aW1lX3N0YXJ0KS5zZWNvbmRzKCkgPDwgIiBz ZWNvbmRzXG4gIgorKyAgICAgICAgICAgICAgICAgICAgICA8PCAiIHRvb2sgIiA8PCBzZWNvbmRz IDw8ICIgc2Vjb25kc1xuICIKKyAgICAgICAgICAgICAgICAgICAgICAgPDwgKHRocmVhZGVkID8g InRocmVhZGVkIiA6ICJub24tdGhyZWFkZWQiKSA8PCBzdGQ6OmVuZGw7CisgICAgICAgICB9Cisg CitkaWZmIC0tZ2l0IGEvb3BlbnZkYl9tYXlhL29wZW52ZGJfbWF5YS9PcGVuVkRCUGx1Z2luLmNj IGIvb3BlbnZkYl9tYXlhL29wZW52ZGJfbWF5YS9PcGVuVkRCUGx1Z2luLmNjCitpbmRleCAzZDU1 OWY4Y2MuLmQ2M2VkMTU5MSAxMDA2NDQKKy0tLSBhL29wZW52ZGJfbWF5YS9vcGVudmRiX21heWEv T3BlblZEQlBsdWdpbi5jYworKysrIGIvb3BlbnZkYl9tYXlhL29wZW52ZGJfbWF5YS9PcGVuVkRC UGx1Z2luLmNjCitAQCAtNDcsMTEgKzQ3LDggQEAgc3RydWN0IE5vZGVJbmZvIHsKKyAKKyB0eXBl ZGVmIHN0ZDo6dmVjdG9yPE5vZGVJbmZvPiBOb2RlTGlzdDsKKyAKKy10eXBlZGVmIHRiYjo6bXV0 ZXggTXV0ZXg7CistdHlwZWRlZiBNdXRleDo6c2NvcGVkX2xvY2sgTG9jazsKKy0KKyAvLyBEZWNs YXJlIHRoaXMgYXQgZmlsZSBzY29wZSB0byBlbnN1cmUgdGhyZWFkLXNhZmUgaW5pdGlhbGl6YXRp b24uCistTXV0ZXggc1JlZ2lzdHJ5TXV0ZXg7Cisrc3RkOjptdXRleCBzUmVnaXN0cnlNdXRleDsK KyAKKyBOb2RlTGlzdCAqIGdOb2RlcyA9IE5VTEw7CisgCitAQCAtNzAsNyArNjcsNyBAQCBOb2Rl UmVnaXN0cnk6Ok5vZGVSZWdpc3RyeShjb25zdCBNU3RyaW5nJiB0eXBlTmFtZSwgY29uc3QgTVR5 cGVJZCYgdHlwZUlkLAorICAgICBub2RlLnR5cGUgICAgICAgICAgICAgICA9IHR5cGU7CisgICAg IG5vZGUuY2xhc3NpZmljYXRpb24gICAgID0gY2xhc3NpZmljYXRpb247CisgCistICAgIExvY2sg bG9jayhzUmVnaXN0cnlNdXRleCk7CisrICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBs b2NrKHNSZWdpc3RyeU11dGV4KTsKKyAKKyAgICAgaWYgKCFnTm9kZXMpIHsKKyAgICAgICAgIE9Q RU5WREJfU1RBUlRfVEhSRUFEU0FGRV9TVEFUSUNfV1JJVEUKK0BAIC04NSw3ICs4Miw3IEBAIE5v ZGVSZWdpc3RyeTo6Tm9kZVJlZ2lzdHJ5KGNvbnN0IE1TdHJpbmcmIHR5cGVOYW1lLCBjb25zdCBN VHlwZUlkJiB0eXBlSWQsCisgdm9pZAorIE5vZGVSZWdpc3RyeTo6cmVnaXN0ZXJOb2RlcyhNRm5Q bHVnaW4mIHBsdWdpbiwgTVN0YXR1cyYgc3RhdHVzKQorIHsKKy0gICAgTG9jayBsb2NrKHNSZWdp c3RyeU11dGV4KTsKKysgICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+IGxvY2soc1JlZ2lz dHJ5TXV0ZXgpOworIAorICAgICBpZiAoZ05vZGVzKSB7CisgICAgICAgICBmb3IgKHNpemVfdCBu ID0gMCwgTiA9IGdOb2Rlcy0+c2l6ZSgpOyBuIDwgTjsgKytuKSB7CitAQCAtMTA5LDcgKzEwNiw3 IEBAIE5vZGVSZWdpc3RyeTo6cmVnaXN0ZXJOb2RlcyhNRm5QbHVnaW4mIHBsdWdpbiwgTVN0YXR1 cyYgc3RhdHVzKQorIHZvaWQKKyBOb2RlUmVnaXN0cnk6OmRlcmVnaXN0ZXJOb2RlcyhNRm5QbHVn aW4mIHBsdWdpbiwgTVN0YXR1cyYgc3RhdHVzKQorIHsKKy0gICAgTG9jayBsb2NrKHNSZWdpc3Ry eU11dGV4KTsKKysgICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+IGxvY2soc1JlZ2lzdHJ5 TXV0ZXgpOworIAorICAgICBpZiAoZ05vZGVzKSB7CisgICAgICAgICBmb3IgKHNpemVfdCBuID0g MCwgTiA9IGdOb2Rlcy0+c2l6ZSgpOyBuIDwgTjsgKytuKSB7CitkaWZmIC0tZ2l0IGEvb3BlbnZk Yl9tYXlhL29wZW52ZGJfbWF5YS9PcGVuVkRCVXRpbC5oIGIvb3BlbnZkYl9tYXlhL29wZW52ZGJf bWF5YS9PcGVuVkRCVXRpbC5oCitpbmRleCBiNThiZDZmMmMuLjZhMDRiMWVhZiAxMDA2NDQKKy0t LSBhL29wZW52ZGJfbWF5YS9vcGVudmRiX21heWEvT3BlblZEQlV0aWwuaAorKysrIGIvb3BlbnZk Yl9tYXlhL29wZW52ZGJfbWF5YS9PcGVuVkRCVXRpbC5oCitAQCAtMTQsOCArMTQsNyBAQAorICNp bmNsdWRlIDxvcGVudmRiL3RyZWUvTGVhZk1hbmFnZXIuaD4KKyAjaW5jbHVkZSA8b3BlbnZkYi90 b29scy9Wb2x1bWVUb01lc2guaD4KKyAjaW5jbHVkZSA8b3BlbnZkYi91dGlsL0Zvcm1hdHMuaD4g Ly8gcHJpbnRCeXRlcworLQorLSNpbmNsdWRlIDx0YmIvdGlja19jb3VudC5oPgorKyNpbmNsdWRl IDxvcGVudmRiL3RocmVhZC9UaHJlYWRpbmcuaD4KKyAKKyAjaW5jbHVkZSA8bWF5YS9NM2RWaWV3 Lmg+CisgI2luY2x1ZGUgPG1heWEvTVN0cmluZy5oPgorQEAgLTQwLDYgKzM5LDcgQEAKKyAjaW5j bHVkZSA8c3RyaW5nPgorICNpbmNsdWRlIDx0eXBlX3RyYWl0cz4KKyAjaW5jbHVkZSA8dmVjdG9y PgorKyNpbmNsdWRlIDxjaHJvbm8+CisgCisgCisgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLworQEAgLTExNiwxMSArMTE2LDE1IEBAIGluc2VydEZyYW1lTnVtYmVyKHN0 ZDo6c3RyaW5nJiBzdHIsIGNvbnN0IE1UaW1lJiB0aW1lLCBpbnQgbnVtYmVyaW5nU2NoZW1lID0g MCk7CisgCisgc3RydWN0IFRpbWVyCisgeworLSAgICBUaW1lcigpIDogbVN0YW1wKHRiYjo6dGlj a19jb3VudDo6bm93KCkpIHsgfQorKyAgICBUaW1lcigpIDogbVN0YW1wKHN0ZDo6Y2hyb25vOjpz dGVhZHlfY2xvY2s6Om5vdygpKSB7IH0KKyAKKy0gICAgdm9pZCByZXNldCgpIHsgbVN0YW1wID0g dGJiOjp0aWNrX2NvdW50Ojpub3coKTsgfQorKyAgICB2b2lkIHJlc2V0KCkgeyBtU3RhbXAgPSBz dGQ6OmNocm9ubzo6c3RlYWR5X2Nsb2NrOjpub3coKTsgfQorIAorLSAgICBkb3VibGUgc2Vjb25k cygpIGNvbnN0IHsgcmV0dXJuICh0YmI6OnRpY2tfY291bnQ6Om5vdygpIC0gbVN0YW1wKS5zZWNv bmRzKCk7IH0KKysgICAgZG91YmxlIHNlY29uZHMoKSBjb25zdCB7CisrICAgICAgICBhdXRvIGR1 cmF0aW9uID0gc3RkOjpjaHJvbm86OmR1cmF0aW9uX2Nhc3Q8c3RkOjpjaHJvbm86Om1pbGxpc2Vj b25kcz4oCisrICAgICAgICAgICAgc3RkOjpjaHJvbm86OnN0ZWFkeV9jbG9jazo6bm93KCkgLSBt U3RhbXApOworKyAgICAgICAgcmV0dXJuIGRvdWJsZShkdXJhdGlvbi5jb3VudCgpKSAvIDEwMDAu MDsKKysgICAgfQorIAorICAgICBzdGQ6OnN0cmluZyBlbGFwc2VkVGltZSgpIGNvbnN0IHsKKyAg ICAgICAgIGRvdWJsZSBzZWMgPSBzZWNvbmRzKCk7CitAQCAtMTI4LDcgKzEzMiw3IEBAIHN0cnVj dCBUaW1lcgorICAgICB9CisgCisgcHJpdmF0ZToKKy0gICAgdGJiOjp0aWNrX2NvdW50IG1TdGFt cDsKKysgICAgIHN0ZDo6Y2hyb25vOjp0aW1lX3BvaW50PHN0ZDo6Y2hyb25vOjpzdGVhZHlfY2xv Y2s+IG1TdGFtcDsKKyB9OworIAorIAorZGlmZiAtLWdpdCBhL3BlbmRpbmdjaGFuZ2VzL3RiYjIw MjEudHh0IGIvcGVuZGluZ2NoYW5nZXMvdGJiMjAyMS50eHQKK25ldyBmaWxlIG1vZGUgMTAwNjQ0 CitpbmRleCAwMDAwMDAwMDAuLjgxMDljMjU1MgorLS0tIC9kZXYvbnVsbAorKysrIGIvcGVuZGlu Z2NoYW5nZXMvdGJiMjAyMS50eHQKK0BAIC0wLDAgKzEsNiBAQAorK0ltcHJvdmVtZW50czoKKysg IC0gTW92ZWQgZnJvbSB0aGUgZGVwcmVjYXRlZCBUQkIgdGFzayBzY2hlZHVsZXIgdG8gVEJCIGFy ZW5hcy4gVmFyaW91cyBtZXRob2RzIG5vdyByZXNwZWN0IHRoZSBUQkIgYXJlbmEgc3RhdGUgdGhl eSB3ZXJlIGludm9rZWQgZnJvbS4KKysgIC0gSW50cm9kdWNlZCBhIG5ldyB0aHJlYWQvVGhyZWFk aW5nLmggaGVhZGVyIHRvIGNvbnNvbGlkYXRlIGNhbGxzIHRvIHRoaXJkLXBhcnR5IHRocmVhZGlu ZyBtZXRob2RzLgorKworK0J1aWxkOgorKyAgLSBBZGRlZCBzdXBwb3J0IGZvciBUQkIgMjAyMS4K ZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvb3BlbnZkYi90ZW1wbGF0ZSBiL3NyY3BrZ3Mvb3BlbnZkYi90 ZW1wbGF0ZQppbmRleCA3MmZkZTViYzYzNzUuLmQ0MjBhM2VlNWY1ZCAxMDA2NDQKLS0tIGEvc3Jj cGtncy9vcGVudmRiL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3Mvb3BlbnZkYi90ZW1wbGF0ZQpAQCAt MSwyNiArMSwxOCBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnb3BlbnZkYicKIHBrZ25hbWU9b3Bl bnZkYgotdmVyc2lvbj03LjAuMAordmVyc2lvbj04LjEuMAogcmV2aXNpb249MQogYnVpbGRfc3R5 bGU9Y21ha2UKIGNvbmZpZ3VyZV9hcmdzPSItRE9QRU5WREJfQlVJTERfVkRCX1ZJRVc9MSIKIGhv c3RtYWtlZGVwZW5kcz0icGtnLWNvbmZpZyIKLW1ha2VkZXBlbmRzPSJib29zdC1kZXZlbCB0YmIt ZGV2ZWwgaWxtYmFzZS1kZXZlbCBsaWJvcGVuZXhyLWRldmVsIGMtYmxvc2MtZGV2ZWwgZ2xmdy1k ZXZlbCIKK21ha2VkZXBlbmRzPSJib29zdC1kZXZlbCB0YmItZGV2ZWwgaWxtYmFzZS1kZXZlbCBs aWJvcGVuZXhyLWRldmVsIGMtYmxvc2MtZGV2ZWwKKyBnbGZ3LWRldmVsIGplbWFsbG9jLWRldmVs Igogc2hvcnRfZGVzYz0iU3BhcnNlIHZvbHVtZSBkYXRhIHN0cnVjdHVyZSBhbmQgdG9vbHMiCiBt YWludGFpbmVyPSJPcnBoYW5lZCA8b3JwaGFuQHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iTVBM LTIuMCIKIGhvbWVwYWdlPSJodHRwczovL29wZW52ZGIub3JnIgogZGlzdGZpbGVzPSJodHRwczov L2dpdGh1Yi5jb20vQWNhZGVteVNvZnR3YXJlRm91bmRhdGlvbi9vcGVudmRiL2FyY2hpdmUvdiR7 dmVyc2lvbn0udGFyLmd6IgotY2hlY2tzdW09OTdiYzhhZTM1ZWY3Y2NiZjQ5YTRlMjVjYjczZThj MmVjY2FlNmIyMzViYWM4NmYyMTUwNzA3ZWZjZDFlOTEwZAotCi1pZiBbICIkWEJQU19UQVJHRVRf Tk9fQVRPTUlDOCIgXTsgdGhlbgotCW1ha2VkZXBlbmRzKz0iIGxpYmF0b21pYy1kZXZlbCIKLWZp Ci0KLXBvc3RfcGF0Y2goKSB7Ci0JWyAiJFhCUFNfVEFSR0VUX05PX0FUT01JQzgiIF0gfHwgcmV0 dXJuIDAKLQl2c2VkIC1pICdzLFpMSUI6OlpMSUIsWkxJQjo6WkxJQiBhdG9taWMsJyBvcGVudmRi L0NNYWtlTGlzdHMudHh0Ci19CitjaGVja3N1bT0zZTA5ZDQ3MzMxNDI5YmU3NDA5YTNhM2MyN2Zk ZDNjMjk3Zjk2ZDMxZDIxNTNmZWJlMTk0ZTY2NGE5OWQ2MTgzCiAKIHBvc3RfaW5zdGFsbCgpIHsK IAl2bGljZW5zZSBMSUNFTlNFCgpGcm9tIGY1MmYxNGM3YzRkYmU5ODgxMTFiYWE2MTJlMjY5MjZj MTNjM2VkYmMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEFydHVyIFNpbmlsYSA8ZnJl ZXNvZnR3YXJlQGxvZ2FyaXRobXVzLmRldj4KRGF0ZTogU3VuLCAxOCBKdWwgMjAyMSAxODoyOTo0 MCArMDMwMApTdWJqZWN0OiBbUEFUQ0ggMTAvMTFdIHBhcmF2aWV3OiB1cGRhdGUgdG8gNS45LjEu CgotLS0KIHNyY3BrZ3MvcGFyYXZpZXcvdGVtcGxhdGUgfCA0ICsrLS0KIDEgZmlsZSBjaGFuZ2Vk LCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9w YXJhdmlldy90ZW1wbGF0ZSBiL3NyY3BrZ3MvcGFyYXZpZXcvdGVtcGxhdGUKaW5kZXggMjBhN2Y1 NTg5Njc3Li5lNmMzOTQxY2U5MGEgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvcGFyYXZpZXcvdGVtcGxh dGUKKysrIGIvc3JjcGtncy9wYXJhdmlldy90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVt cGxhdGUgZmlsZSBmb3IgJ3BhcmF2aWV3JwogcGtnbmFtZT1wYXJhdmlldwotdmVyc2lvbj01Ljgu MQotcmV2aXNpb249MwordmVyc2lvbj01LjkuMQorcmV2aXNpb249MQogd3Jrc3JjPVBhcmFWaWV3 LXYke3ZlcnNpb259CiBidWlsZF9zdHlsZT1jbWFrZQogY29uZmlndXJlX2FyZ3M9Ii1EQ01BS0Vf UFJFRklYX1BBVEg9JHtYQlBTX0NST1NTX0JBU0V9L3VzcgoKRnJvbSAwZDM0NDVjOWZjZDRmNmYy YTYzZGQ0MWVmNmNjMGRjN2I2ZTk0NmExIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBB cnR1ciBTaW5pbGEgPGZyZWVzb2Z0d2FyZUBsb2dhcml0aG11cy5kZXY+CkRhdGU6IFN1biwgMTgg SnVsIDIwMjEgMTg6Mjk6MzkgKzAzMDAKU3ViamVjdDogW1BBVENIIDExLzExXSBvY2N0OiByZXZi dW1wIGR1ZSB0byB0YmIgdXBkYXRlCgotLS0KIHNyY3BrZ3Mvb2NjdC90ZW1wbGF0ZSB8IDIgKy0K IDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdp dCBhL3NyY3BrZ3Mvb2NjdC90ZW1wbGF0ZSBiL3NyY3BrZ3Mvb2NjdC90ZW1wbGF0ZQppbmRleCA5 Mjk4ZWRjNzZlMDguLjAwNmY4OWViYjhjZSAxMDA2NDQKLS0tIGEvc3JjcGtncy9vY2N0L3RlbXBs YXRlCisrKyBiL3NyY3BrZ3Mvb2NjdC90ZW1wbGF0ZQpAQCAtMiw3ICsyLDcgQEAKIHBrZ25hbWU9 b2NjdAogcmV2ZXJ0cz03LjUuMF8xCiB2ZXJzaW9uPTcuNC4wcDEKLXJldmlzaW9uPTMKK3Jldmlz aW9uPTQKIF9naXR0YWc9IlYke3ZlcnNpb24vLy4vX30iCiB3cmtzcmM9b2NjdC0ke19naXR0YWd9 CiBidWlsZF9zdHlsZT1jbWFrZQo= --===============4315395511160169924==--