From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-1.0 required=5.0 tests=ALL_TRUSTED, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.4 Received: from inbox.vuxu.org (inbox.vuxu.org [IPv6:::1]) by inbox.vuxu.org (Postfix) with ESMTP id 88F23267B9 for ; Thu, 29 Feb 2024 21:51:01 +0100 (CET) Content-Type: multipart/mixed; boundary="===============4148974119421179174==" MIME-Version: 1.0 Subject: =?utf8?q?Re=3A_=5BPR_PATCH=5D_=5BUpdated=5D_chromium=3A_update_to_122=2E0=2E6261=2E94=2E?= To: ml@inbox.vuxu.org From: Duncaen Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Thu, 29 Feb 2024 21:51:01 +0100 List-Id: Message-Id: <20240229205101.88F23267B9@inbox.vuxu.org> GitHub notification mails are now in MIME to allow UTF8. --===============4148974119421179174== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgRHVuY2FlbiBhZ2FpbnN0IG1hc3Rl ciBvbiB0aGUgdm9pZC1wYWNrYWdlcyByZXBvc2l0b3J5CgpodHRwczovL2dpdGh1Yi5jb20vRHVu Y2Flbi92b2lkLXBhY2thZ2VzIGNocm9taXVtLTEyMgpodHRwczovL2dpdGh1Yi5jb20vdm9pZC1s aW51eC92b2lkLXBhY2thZ2VzL3B1bGwvNDkwMDYKCmNocm9taXVtOiB1cGRhdGUgdG8gMTIyLjAu NjI2MS45NC4KW2NpIHNraXBdDQoNCiogWyBdIHg4Nl82NC1nbGliYw0KKiBbIF0geDg2XzY0LW11 c2wNCiogWyBdIGFhcmNoNjQtbXVzbA0KKiBbIF0gaTY4NgoKQSBwYXRjaCBmaWxlIGZyb20gaHR0 cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9pZC1wYWNrYWdlcy9wdWxsLzQ5MDA2LnBhdGNo IGlzIGF0dGFjaGVk --===============4148974119421179174== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-chromium-122-49006.patch" RnJvbSBjNTllZmJjYTUzMWNkZTVmZmNlMjIzNDI2YzIwOWQ5NjAyNzRhYzAzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEdW5jYWVuIDxkdW5jYWVuQHZvaWRsaW51eC5vcmc+CkRhdGU6 IFRodSwgMjkgRmViIDIwMjQgMTU6NDU6NTggKzAxMDAKU3ViamVjdDogW1BBVENIXSBjaHJvbWl1 bTogdXBkYXRlIHRvIDEyMi4wLjYyNjEuOTQuCgotLS0KIC4uLi9wYXRjaGVzL2FybTY0LW1lbW1v cnktdGFnZ2luZy5wYXRjaCAgICAgICB8ICAyMCAtCiAuLi5taXVtLTEwNS4wLjUxOTUuNTItcHl0 aG9uLXNpeC0xLjE2LjAucGF0Y2ggfCAxMzQgLS0tCiAuLi5ocm9taXVtLTEyMC1kaXNhYmxlLUZG bXBlZ0FsbG93TGlzdHMucGF0Y2ggfCAgMTIgLQogLi4uYmxlLUdsb2JhbE1lZGlhQ29udHJvbHND YXN0U3RhcnRTdG9wLnBhdGNoIHwgIDE0IC0KIC4uLmNocm9taXVtLTEyMC1lbDctY2xhbmctYnVp bGQtZmFpbHVyZS5wYXRjaCB8IDIzMCAtLS0tLQogLi4uaXVtLTEyMC1lbDctY2xhbmctYnVpbGQt ZmFpbHVyZS5wYXRjaC5hcmdzIHwgICAxIC0KIC4uLi9wYXRjaGVzL2Nocm9taXVtLTEyMS1jb25z dGV4cHIucGF0Y2ggICAgICB8ICAxMiAtCiAuLi5yb21pdW0tMTIxLWVsNy1jbGFuZy12ZXJzaW9u LXdhcm5pbmcucGF0Y2ggfCAgMTUgLQogLi4ub25zdHJ1Y3Rvci1pbnZvbHZpbmctYW5vbnltb3Vz LXVuaW9uLnBhdGNoIHwgIDEyIC0KIC4uLi9jaHJvbWl1bS0xMjEtbWlzc2luZy1oZWFkZXItZmls ZXMucGF0Y2ggICB8IDQ1OSAtLS0tLS0tLS0KIC4uLmNocm9taXVtLTEyMS1ub19tYXRjaGluZ19j b25zdHJ1Y3Rvci5wYXRjaCB8IDk0NSAtLS0tLS0tLS0tLS0tLS0tLS0KIC4uLi0xMjEtcHl0aG9u My1pbnZhbGlkLWVzY2FwZS1zZXF1ZW5jZS5wYXRjaCB8ICA3NyAtLQogLi4uL3BhdGNoZXMvY2hy b21pdW0tMTIxLXR5cGVuYW1lLnBhdGNoICAgICAgIHwgMjU5IC0tLS0tCiAuLi5rYXJvdW5kX2Ns YW5nX2J1Zy1zdHJ1Y3R1cmVkX2JpbmRpbmcucGF0Y2ggfCAgNTMgLQogLi4uL3BhdGNoZXMvY2hy b21pdW0tMTIyLWNvbnN0ZXhwci5wYXRjaCAgICAgIHwgIDQ1ICsKIC4uLmhyb21pdW0tMTIyLWRp c2FibGUtRkZtcGVnQWxsb3dMaXN0cy5wYXRjaCB8ICAxMiArCiAuLi4vY2hyb21pdW0tMTIyLW1p c3NpbmctaGVhZGVyLWZpbGVzLnBhdGNoICAgfCAxOTEgKysrKwogc3JjcGtncy9jaHJvbWl1bS9w YXRjaGVzL29sZC1jbGFuZy5wYXRjaCAgICAgIHwgIDExIC0KIHNyY3BrZ3MvY2hyb21pdW0vdGVt cGxhdGUgICAgICAgICAgICAgICAgICAgICB8ICAgNCArLQogMTkgZmlsZXMgY2hhbmdlZCwgMjUw IGluc2VydGlvbnMoKyksIDIyNTYgZGVsZXRpb25zKC0pCiBkZWxldGUgbW9kZSAxMDA2NDQgc3Jj cGtncy9jaHJvbWl1bS9wYXRjaGVzL2FybTY0LW1lbW1vcnktdGFnZ2luZy5wYXRjaAogZGVsZXRl IG1vZGUgMTAwNjQ0IHNyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9jaHJvbWl1bS0xMDUuMC41MTk1 LjUyLXB5dGhvbi1zaXgtMS4xNi4wLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9j aHJvbWl1bS9wYXRjaGVzL2Nocm9taXVtLTEyMC1kaXNhYmxlLUZGbXBlZ0FsbG93TGlzdHMucGF0 Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvY2hyb21pdW0t MTIwLWRpc2FibGUtR2xvYmFsTWVkaWFDb250cm9sc0Nhc3RTdGFydFN0b3AucGF0Y2gKIGRlbGV0 ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvY2hyb21pdW0tMTIwLWVsNy1j bGFuZy1idWlsZC1mYWlsdXJlLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9jaHJv bWl1bS9wYXRjaGVzL2Nocm9taXVtLTEyMC1lbDctY2xhbmctYnVpbGQtZmFpbHVyZS5wYXRjaC5h cmdzCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2Nocm9taXVt LTEyMS1jb25zdGV4cHIucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2Nocm9taXVt L3BhdGNoZXMvY2hyb21pdW0tMTIxLWVsNy1jbGFuZy12ZXJzaW9uLXdhcm5pbmcucGF0Y2gKIGRl bGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvY2hyb21pdW0tMTIxLWVs Ny1kZWZhdWx0LWNvbnN0cnVjdG9yLWludm9sdmluZy1hbm9ueW1vdXMtdW5pb24ucGF0Y2gKIGRl bGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvY2hyb21pdW0tMTIxLW1p c3NpbmctaGVhZGVyLWZpbGVzLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9jaHJv bWl1bS9wYXRjaGVzL2Nocm9taXVtLTEyMS1ub19tYXRjaGluZ19jb25zdHJ1Y3Rvci5wYXRjaAog ZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9jaHJvbWl1bS0xMjEt cHl0aG9uMy1pbnZhbGlkLWVzY2FwZS1zZXF1ZW5jZS5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0 IHNyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9jaHJvbWl1bS0xMjEtdHlwZW5hbWUucGF0Y2gKIGRl bGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvY2hyb21pdW0tMTIxLXdv cmthcm91bmRfY2xhbmdfYnVnLXN0cnVjdHVyZWRfYmluZGluZy5wYXRjaAogY3JlYXRlIG1vZGUg MTAwNjQ0IHNyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9jaHJvbWl1bS0xMjItY29uc3RleHByLnBh dGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2Nocm9taXVt LTEyMi1kaXNhYmxlLUZGbXBlZ0FsbG93TGlzdHMucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBz cmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvY2hyb21pdW0tMTIyLW1pc3NpbmctaGVhZGVyLWZpbGVz LnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL29sZC1j bGFuZy5wYXRjaAoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9hcm02NC1t ZW1tb3J5LXRhZ2dpbmcucGF0Y2ggYi9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvYXJtNjQtbWVt bW9yeS10YWdnaW5nLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyNmM3MmJl ODlmYzRmZC4uMDAwMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2Fy bTY0LW1lbW1vcnktdGFnZ2luZy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDIwICswLDAgQEAK LS0tLSBhL2Jhc2UvYWxsb2NhdG9yL3BhcnRpdGlvbl9hbGxvY2F0b3Ivc3JjL3BhcnRpdGlvbl9h bGxvYy9wYXJ0aXRpb25fYWxsb2NfY29uZmlnLmgKLSsrKyBiL2Jhc2UvYWxsb2NhdG9yL3BhcnRp dGlvbl9hbGxvY2F0b3Ivc3JjL3BhcnRpdGlvbl9hbGxvYy9wYXJ0aXRpb25fYWxsb2NfY29uZmln LmgKLUBAIC0xNjIsMTEgKzE2MiwxNiBAQAotIAotICNpZiBkZWZpbmVkKEFSQ0hfQ1BVX0FSTTY0 KSAmJiBkZWZpbmVkKF9fY2xhbmdfXykgJiYgXAotICAgICAhZGVmaW5lZChBRERSRVNTX1NBTklU SVpFUikgJiYgICAgICAgICAgICAgICAgICAgXAotLSAgICAoQlVJTERGTEFHKElTX0xJTlVYKSB8 fCBCVUlMREZMQUcoSVNfQU5EUk9JRCkpCi0rICAgIChCVUlMREZMQUcoSVNfTElOVVgpIHx8IEJV SUxERkxBRyhJU19BTkRST0lEKSkgJiYgXAotKyAgICBkZWZpbmVkKF9fR0xJQkNfXykgJiYgZGVm aW5lZChfX0dMSUJDX1BSRVJFUSkKLSsjaWYgX19HTElCQ19QUkVSRVEoMiwgMjkpCi0gI2RlZmlu ZSBQQV9DT05GSUdfSEFTX01FTU9SWV9UQUdHSU5HKCkgMQotICNlbHNlCi0gI2RlZmluZSBQQV9D T05GSUdfSEFTX01FTU9SWV9UQUdHSU5HKCkgMAotICNlbmRpZgotKyNlbHNlCi0rI2RlZmluZSBQ QV9DT05GSUdfSEFTX01FTU9SWV9UQUdHSU5HKCkgMAotKyNlbmRpZgotIAotICNpZiBQQV9DT05G SUcoSEFTX01FTU9SWV9UQUdHSU5HKQotIHN0YXRpY19hc3NlcnQoc2l6ZW9mKHZvaWQqKSA9PSA4 KTsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9jaHJvbWl1bS0xMDUuMC41 MTk1LjUyLXB5dGhvbi1zaXgtMS4xNi4wLnBhdGNoIGIvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVz L2Nocm9taXVtLTEwNS4wLjUxOTUuNTItcHl0aG9uLXNpeC0xLjE2LjAucGF0Y2gKZGVsZXRlZCBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ5N2MyZGY0MGIzMjEwLi4wMDAwMDAwMDAwMDAwMAotLS0g YS9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvY2hyb21pdW0tMTA1LjAuNTE5NS41Mi1weXRob24t c2l4LTEuMTYuMC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDEzNCArMCwwIEBACi1kaWZmIC11 cCBjaHJvbWl1bS0xMDMuMC41MDYwLjUzL3RoaXJkX3BhcnR5L2NhdGFwdWx0L3RoaXJkX3BhcnR5 L3NpeC9zaXgucHkuMTE2IGNocm9taXVtLTEwMy4wLjUwNjAuNTMvdGhpcmRfcGFydHkvY2F0YXB1 bHQvdGhpcmRfcGFydHkvc2l4L3NpeC5weQotLS0tIGNocm9taXVtLTEwMy4wLjUwNjAuNTMvdGhp cmRfcGFydHkvY2F0YXB1bHQvdGhpcmRfcGFydHkvc2l4L3NpeC5weS4xMTYJMjAyMi0wNy0wNSAx MzozMToyOS40MzQ2NzM2MzggKzAwMDAKLSsrKyBjaHJvbWl1bS0xMDMuMC41MDYwLjUzL3RoaXJk X3BhcnR5L2NhdGFwdWx0L3RoaXJkX3BhcnR5L3NpeC9zaXgucHkJMjAyMi0wNy0wNSAyMTo1Mjow MS44ODQ1Nzg3NDggKzAwMDAKLUBAIC0yOSw3ICsyOSw3IEBAIGltcG9ydCBzeXMKLSBpbXBvcnQg dHlwZXMKLSAKLSBfX2F1dGhvcl9fID0gIkJlbmphbWluIFBldGVyc29uIDxiZW5qYW1pbkBweXRo b24ub3JnPiIKLS1fX3ZlcnNpb25fXyA9ICIxLjE1LjAiCi0rX192ZXJzaW9uX18gPSAiMS4xNi4w IgotIAotIAotICMgVXNlZnVsIGZvciB2ZXJ5IGNvYXJzZSB2ZXJzaW9uIGRpZmZlcmVudGlhdGlv bi4KLUBAIC03MSw2ICs3MSwxMSBAQCBlbHNlOgotICAgICAgICAgICAgIE1BWFNJWkUgPSBpbnQo KDEgPDwgNjMpIC0gMSkKLSAgICAgICAgIGRlbCBYCi0gCi0raWYgUFkzNDoKLSsgICAgZnJvbSBp bXBvcnRsaWIudXRpbCBpbXBvcnQgc3BlY19mcm9tX2xvYWRlcgotK2Vsc2U6Ci0rICAgIHNwZWNf ZnJvbV9sb2FkZXIgPSBOb25lCi0rCi0gCi0gZGVmIF9hZGRfZG9jKGZ1bmMsIGRvYyk6Ci0gICAg ICIiIkFkZCBkb2N1bWVudGF0aW9uIHRvIGEgZnVuY3Rpb24uIiIiCi1AQCAtMTg2LDYgKzE5MSwx MSBAQCBjbGFzcyBfU2l4TWV0YVBhdGhJbXBvcnRlcihvYmplY3QpOgotICAgICAgICAgICAgIHJl dHVybiBzZWxmCi0gICAgICAgICByZXR1cm4gTm9uZQotIAotKyAgICBkZWYgZmluZF9zcGVjKHNl bGYsIGZ1bGxuYW1lLCBwYXRoLCB0YXJnZXQ9Tm9uZSk6Ci0rICAgICAgICBpZiBmdWxsbmFtZSBp biBzZWxmLmtub3duX21vZHVsZXM6Ci0rICAgICAgICAgICAgcmV0dXJuIHNwZWNfZnJvbV9sb2Fk ZXIoZnVsbG5hbWUsIHNlbGYpCi0rICAgICAgICByZXR1cm4gTm9uZQotKwotICAgICBkZWYgX19n ZXRfbW9kdWxlKHNlbGYsIGZ1bGxuYW1lKToKLSAgICAgICAgIHRyeToKLSAgICAgICAgICAgICBy ZXR1cm4gc2VsZi5rbm93bl9tb2R1bGVzW2Z1bGxuYW1lXQotQEAgLTIyMyw2ICsyMzMsMTIgQEAg Y2xhc3MgX1NpeE1ldGFQYXRoSW1wb3J0ZXIob2JqZWN0KToKLSAgICAgICAgIHJldHVybiBOb25l Ci0gICAgIGdldF9zb3VyY2UgPSBnZXRfY29kZSAgIyBzYW1lIGFzIGdldF9jb2RlCi0gCi0rICAg IGRlZiBjcmVhdGVfbW9kdWxlKHNlbGYsIHNwZWMpOgotKyAgICAgICAgcmV0dXJuIHNlbGYubG9h ZF9tb2R1bGUoc3BlYy5uYW1lKQotKwotKyAgICBkZWYgZXhlY19tb2R1bGUoc2VsZiwgbW9kdWxl KToKLSsgICAgICAgIHBhc3MKLSsKLSBfaW1wb3J0ZXIgPSBfU2l4TWV0YVBhdGhJbXBvcnRlcihf X25hbWVfXykKLSAKLSAKLWRpZmYgLXVwIGNocm9taXVtLTEwMy4wLjUwNjAuNTMvdGhpcmRfcGFy dHkvc2l4L3NyYy9zaXgucHkuMTE2IGNocm9taXVtLTEwMy4wLjUwNjAuNTMvdGhpcmRfcGFydHkv c2l4L3NyYy9zaXgucHkKLS0tLSBjaHJvbWl1bS0xMDMuMC41MDYwLjUzL3RoaXJkX3BhcnR5L3Np eC9zcmMvc2l4LnB5LjExNgkyMDIyLTA3LTA1IDEzOjMyOjI4LjkxNjY4NzY1OCArMDAwMAotKysr IGNocm9taXVtLTEwMy4wLjUwNjAuNTMvdGhpcmRfcGFydHkvc2l4L3NyYy9zaXgucHkJMjAyMi0w Ny0wNSAyMTo1OTo0Mi41NjEyNDA0MDcgKzAwMDAKLUBAIC0yOSw3ICsyOSw3IEBAIGltcG9ydCBz eXMKLSBpbXBvcnQgdHlwZXMKLSAKLSBfX2F1dGhvcl9fID0gIkJlbmphbWluIFBldGVyc29uIDxi ZW5qYW1pbkBweXRob24ub3JnPiIKLS1fX3ZlcnNpb25fXyA9ICIxLjE0LjAiCi0rX192ZXJzaW9u X18gPSAiMS4xNi4wIgotIAotIAotICMgVXNlZnVsIGZvciB2ZXJ5IGNvYXJzZSB2ZXJzaW9uIGRp ZmZlcmVudGlhdGlvbi4KLUBAIC03MSw2ICs3MSwxMSBAQCBlbHNlOgotICAgICAgICAgICAgIE1B WFNJWkUgPSBpbnQoKDEgPDwgNjMpIC0gMSkKLSAgICAgICAgIGRlbCBYCi0gCi0raWYgUFkzNDoK LSsgICAgZnJvbSBpbXBvcnRsaWIudXRpbCBpbXBvcnQgc3BlY19mcm9tX2xvYWRlcgotK2Vsc2U6 Ci0rICAgIHNwZWNfZnJvbV9sb2FkZXIgPSBOb25lCi0rCi0gCi0gZGVmIF9hZGRfZG9jKGZ1bmMs IGRvYyk6Ci0gICAgICIiIkFkZCBkb2N1bWVudGF0aW9uIHRvIGEgZnVuY3Rpb24uIiIiCi1AQCAt MTg2LDYgKzE5MSwxMSBAQCBjbGFzcyBfU2l4TWV0YVBhdGhJbXBvcnRlcihvYmplY3QpOgotICAg ICAgICAgICAgIHJldHVybiBzZWxmCi0gICAgICAgICByZXR1cm4gTm9uZQotIAotKyAgICBkZWYg ZmluZF9zcGVjKHNlbGYsIGZ1bGxuYW1lLCBwYXRoLCB0YXJnZXQ9Tm9uZSk6Ci0rICAgICAgICBp ZiBmdWxsbmFtZSBpbiBzZWxmLmtub3duX21vZHVsZXM6Ci0rICAgICAgICAgICAgcmV0dXJuIHNw ZWNfZnJvbV9sb2FkZXIoZnVsbG5hbWUsIHNlbGYpCi0rICAgICAgICByZXR1cm4gTm9uZQotKwot ICAgICBkZWYgX19nZXRfbW9kdWxlKHNlbGYsIGZ1bGxuYW1lKToKLSAgICAgICAgIHRyeToKLSAg ICAgICAgICAgICByZXR1cm4gc2VsZi5rbm93bl9tb2R1bGVzW2Z1bGxuYW1lXQotQEAgLTIyMyw2 ICsyMzMsMTIgQEAgY2xhc3MgX1NpeE1ldGFQYXRoSW1wb3J0ZXIob2JqZWN0KToKLSAgICAgICAg IHJldHVybiBOb25lCi0gICAgIGdldF9zb3VyY2UgPSBnZXRfY29kZSAgIyBzYW1lIGFzIGdldF9j b2RlCi0gCi0rICAgIGRlZiBjcmVhdGVfbW9kdWxlKHNlbGYsIHNwZWMpOgotKyAgICAgICAgcmV0 dXJuIHNlbGYubG9hZF9tb2R1bGUoc3BlYy5uYW1lKQotKwotKyAgICBkZWYgZXhlY19tb2R1bGUo c2VsZiwgbW9kdWxlKToKLSsgICAgICAgIHBhc3MKLSsKLSBfaW1wb3J0ZXIgPSBfU2l4TWV0YVBh dGhJbXBvcnRlcihfX25hbWVfXykKLSAKLSAKLUBAIC04OTAsMTIgKzkwNiwxMSBAQCBkZWYgZW5z dXJlX2JpbmFyeShzLCBlbmNvZGluZz0ndXRmLTgnLCBlCi0gICAgICAgLSBgc3RyYCAtPiBlbmNv ZGVkIHRvIGBieXRlc2AKLSAgICAgICAtIGBieXRlc2AgLT4gYGJ5dGVzYAotICAgICAiIiIKLSsg ICAgaWYgaXNpbnN0YW5jZShzLCBiaW5hcnlfdHlwZSk6Ci0rICAgICAgICByZXR1cm4gcwotICAg ICBpZiBpc2luc3RhbmNlKHMsIHRleHRfdHlwZSk6Ci0gICAgICAgICByZXR1cm4gcy5lbmNvZGUo ZW5jb2RpbmcsIGVycm9ycykKLS0gICAgZWxpZiBpc2luc3RhbmNlKHMsIGJpbmFyeV90eXBlKToK LS0gICAgICAgIHJldHVybiBzCi0tICAgIGVsc2U6Ci0tICAgICAgICByYWlzZSBUeXBlRXJyb3Io Im5vdCBleHBlY3RpbmcgdHlwZSAnJXMnIiAlIHR5cGUocykpCi0rICAgIHJhaXNlIFR5cGVFcnJv cigibm90IGV4cGVjdGluZyB0eXBlICclcyciICUgdHlwZShzKSkKLSAKLSAKLSBkZWYgZW5zdXJl X3N0cihzLCBlbmNvZGluZz0ndXRmLTgnLCBlcnJvcnM9J3N0cmljdCcpOgotQEAgLTkwOSwxMiAr OTI0LDE1IEBAIGRlZiBlbnN1cmVfc3RyKHMsIGVuY29kaW5nPSd1dGYtOCcsIGVycm8KLSAgICAg ICAtIGBzdHJgIC0+IGBzdHJgCi0gICAgICAgLSBgYnl0ZXNgIC0+IGRlY29kZWQgdG8gYHN0cmAK LSAgICAgIiIiCi0tICAgIGlmIG5vdCBpc2luc3RhbmNlKHMsICh0ZXh0X3R5cGUsIGJpbmFyeV90 eXBlKSk6Ci0tICAgICAgICByYWlzZSBUeXBlRXJyb3IoIm5vdCBleHBlY3RpbmcgdHlwZSAnJXMn IiAlIHR5cGUocykpCi0rICAgICMgT3B0aW1pemF0aW9uOiBGYXN0IHJldHVybiBmb3IgdGhlIGNv bW1vbiBjYXNlLgotKyAgICBpZiB0eXBlKHMpIGlzIHN0cjoKLSsgICAgICAgIHJldHVybiBzCi0g ICAgIGlmIFBZMiBhbmQgaXNpbnN0YW5jZShzLCB0ZXh0X3R5cGUpOgotLSAgICAgICAgcyA9IHMu ZW5jb2RlKGVuY29kaW5nLCBlcnJvcnMpCi0rICAgICAgICByZXR1cm4gcy5lbmNvZGUoZW5jb2Rp bmcsIGVycm9ycykKLSAgICAgZWxpZiBQWTMgYW5kIGlzaW5zdGFuY2UocywgYmluYXJ5X3R5cGUp OgotLSAgICAgICAgcyA9IHMuZGVjb2RlKGVuY29kaW5nLCBlcnJvcnMpCi0rICAgICAgICByZXR1 cm4gcy5kZWNvZGUoZW5jb2RpbmcsIGVycm9ycykKLSsgICAgZWxpZiBub3QgaXNpbnN0YW5jZShz LCAodGV4dF90eXBlLCBiaW5hcnlfdHlwZSkpOgotKyAgICAgICAgcmFpc2UgVHlwZUVycm9yKCJu b3QgZXhwZWN0aW5nIHR5cGUgJyVzJyIgJSB0eXBlKHMpKQotICAgICByZXR1cm4gcwotIAotIApk aWZmIC0tZ2l0IGEvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2Nocm9taXVtLTEyMC1kaXNhYmxl LUZGbXBlZ0FsbG93TGlzdHMucGF0Y2ggYi9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvY2hyb21p dW0tMTIwLWRpc2FibGUtRkZtcGVnQWxsb3dMaXN0cy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggOTgyMTZkZGI0NjVjYTMuLjAwMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3Mv Y2hyb21pdW0vcGF0Y2hlcy9jaHJvbWl1bS0xMjAtZGlzYWJsZS1GRm1wZWdBbGxvd0xpc3RzLnBh dGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTIgKzAsMCBAQAotZGlmZiAtdXAgY2hyb21pdW0tMTIw LjAuNjA5OS41Ni9tZWRpYS9iYXNlL21lZGlhX3N3aXRjaGVzLmNjLm1lIGNocm9taXVtLTEyMC4w LjYwOTkuNTYvbWVkaWEvYmFzZS9tZWRpYV9zd2l0Y2hlcy5jYwotLS0tIGNocm9taXVtLTEyMC4w LjYwOTkuNTYvbWVkaWEvYmFzZS9tZWRpYV9zd2l0Y2hlcy5jYy5tZQkyMDIzLTEyLTAyIDExOjQz OjIxLjk5MDc3NTg5NyArMDEwMAotKysrIGNocm9taXVtLTEyMC4wLjYwOTkuNTYvbWVkaWEvYmFz ZS9tZWRpYV9zd2l0Y2hlcy5jYwkyMDIzLTEyLTAyIDExOjQ1OjIzLjI0ODAwNjM3NyArMDEwMAot QEAgLTE2MzYsNyArMTYzNiw3IEBAIEJBU0VfRkVBVFVSRShrVXNlU2hhcmVkSW1hZ2VzRm9yUGVw cGVyVmkKLSAvLyBFbmFibGVzIEZGbXBlZyBhbGxvdyBsaXN0cyBmb3Igc3VwcG9ydGVkIGNvZGVj cyAvIGNvbnRhaW5lcnMuCi0gQkFTRV9GRUFUVVJFKGtGRm1wZWdBbGxvd0xpc3RzLAotICAgICAg ICAgICAgICAiRkZtcGVnQWxsb3dMaXN0cyIsCi0tICAgICAgICAgICAgIGJhc2U6OkZFQVRVUkVf RU5BQkxFRF9CWV9ERUZBVUxUKTsKLSsgICAgICAgICAgICAgYmFzZTo6RkVBVFVSRV9ESVNBQkxF RF9CWV9ERUZBVUxUKTsKLSAKLSAjaWYgQlVJTERGTEFHKEVOQUJMRV9GRk1QRUdfVklERU9fREVD T0RFUlMpCi0gLy8gQWxsb3dzIGRlY29kaW5nIG9mIHRoZW9yYSAvIHZwMyBjb250ZW50LgpkaWZm IC0tZ2l0IGEvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2Nocm9taXVtLTEyMC1kaXNhYmxlLUds b2JhbE1lZGlhQ29udHJvbHNDYXN0U3RhcnRTdG9wLnBhdGNoIGIvc3JjcGtncy9jaHJvbWl1bS9w YXRjaGVzL2Nocm9taXVtLTEyMC1kaXNhYmxlLUdsb2JhbE1lZGlhQ29udHJvbHNDYXN0U3RhcnRT dG9wLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2YTI1ODViOTUzYzNiZC4u MDAwMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2Nocm9taXVtLTEy MC1kaXNhYmxlLUdsb2JhbE1lZGlhQ29udHJvbHNDYXN0U3RhcnRTdG9wLnBhdGNoCisrKyAvZGV2 L251bGwKQEAgLTEsMTQgKzAsMCBAQAotLS0tIGNocm9taXVtLTEyMC4wLjYwOTkuMzUvY2hyb21l L2Jyb3dzZXIvbWVkaWEvcm91dGVyL21lZGlhX3JvdXRlcl9mZWF0dXJlLmNjLm9yaWcJMjAyMy0x MS0yNiAxMzoyNTozNC43MjQyMjg3NTUgKzAxMDAKLSsrKyBjaHJvbWl1bS0xMjAuMC42MDk5LjM1 L2Nocm9tZS9icm93c2VyL21lZGlhL3JvdXRlci9tZWRpYV9yb3V0ZXJfZmVhdHVyZS5jYwkyMDIz LTExLTI2IDEzOjI4OjI2LjQ1MjM1OTE0NiArMDEwMAotQEAgLTcxLDExICs3MSw3IEBACi0gLy8g VE9ETyhiLzIwMjI5NDk0Nik6IFJlbW92ZSB3aGVuIGVuYWJsZWQgYnkgZGVmYXVsdCBvbiBDaHJv bWVPUy4KLSBCQVNFX0ZFQVRVUkUoa0dsb2JhbE1lZGlhQ29udHJvbHNDYXN0U3RhcnRTdG9wLAot ICAgICAgICAgICAgICAiR2xvYmFsTWVkaWFDb250cm9sc0Nhc3RTdGFydFN0b3AiLAotLSNpZiBC VUlMREZMQUcoSVNfQ0hST01FT1MpCi0gICAgICAgICAgICAgIGJhc2U6OkZFQVRVUkVfRElTQUJM RURfQllfREVGQVVMVCk7Ci0tI2Vsc2UKLS0gICAgICAgICAgICAgYmFzZTo6RkVBVFVSRV9FTkFC TEVEX0JZX0RFRkFVTFQpOwotLSNlbmRpZiAgLy8gQlVJTERGTEFHKElTX0NIUk9NRU9TKQotICNl bmRpZiAgLy8gIUJVSUxERkxBRyhJU19BTkRST0lEKQotIAotIG5hbWVzcGFjZSB7CmRpZmYgLS1n aXQgYS9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvY2hyb21pdW0tMTIwLWVsNy1jbGFuZy1idWls ZC1mYWlsdXJlLnBhdGNoIGIvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2Nocm9taXVtLTEyMC1l bDctY2xhbmctYnVpbGQtZmFpbHVyZS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggOTYyNThlNjdhYWViYmMuLjAwMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvY2hyb21pdW0v cGF0Y2hlcy9jaHJvbWl1bS0xMjAtZWw3LWNsYW5nLWJ1aWxkLWZhaWx1cmUucGF0Y2gKKysrIC9k ZXYvbnVsbApAQCAtMSwyMzAgKzAsMCBAQAotY29tbWl0IDU3NTI2YjhkYzQ1YjJlNmM2N2JiYTcz MDZmMWRkZTczYjFmMjkxMGMKLUF1dGhvcjogc2lzaWRvdnNraSA8c2lzaWRvdnNraUBjaHJvbWl1 bS5vcmc+Ci1EYXRlOiAgIFR1ZSBPY3QgMjQgMDk6MzI6NDkgMjAyMyArMDAwMAotCi0gICAgUmVt b3ZlIHVudXNlZCBpdGVtcyBmcm9tIHRoZSBSYWNlTmV0d29ya1JlcXVlc3QgaGFzaG1hcAotICAg IAotICAgIFdoZW4gdGhlIEF1dG9QcmVsb2FkIG9yIHRoZSByYWNlLW5ldHdvcmstYW5kLWZldGNo LWhhbmRsZXIgb3B0aW9uIGluIHRoZQotICAgIHN0YXRpYyByb3V0aW5nIEFQSSBpcyBlbmFibGVk LCBuZXR3b3JrIHJlcXVlc3RzIGFyZSBkaXNwYXRjaGVkIGFuZAotICAgIFVSTExvYWRlckZhY3Rv cmllcyBhcmUgaGVsZCBpbiBhIGhhc2htYXAgaW4gU2VydmljZVdvcmtlckdsb2JhbFNjb3BlLgot ICAgIFRob3NlIGFyZSBjb25zdW1lZCBpbnNpZGUgdGhlIGZldGNoIGhhbmRsZXIgd2hlbiBmZXRj aChlLnJlcXVlc3QpIGlzCi0gICAgY2FsbGVkLiBCdXQgaWYgdGhlIGZldGNoIGhhbmRsZXIgZG9l c24ndCBjYWxsIGZldGNoKCkgZS5nLiBmYWxsYmFjaywKLSAgICB0aG9zZSBoYXNobWFwIGl0ZW1z IGRvZXMgbm90IGhhdmUgYSBjaGFuY2UgdG8gYmUgcmVtb3ZlZC4KLSAgICAKLSAgICBUaGlzIENM IGNoYW5nZXMgdGhlIGhhc2htYXAgaXRlbXMgdG8gYmUgcmVtb3ZlZCB3aGVuIHRoZSBmZXRjaCBl dmVudAotICAgIGZpbmlzaGVzLCBhbmQgdGhlIFVSTExvYWRlckZhY3RvcnkgaXMgc3RpbGwgbm90 IGNvbnN1bWVkIGF0IHRoYXQgdGltZS4KLSAgICBUaGlzIG1heSBsb29zZSB0aGUgZGVkdXBlIGNh cGFiaWxpdHkgaWYgZmV0Y2goKSBpcyBjYWxsZWQgbGF0ZXIgZS5nLgotICAgIHNldFRpbWVvdXQo KCkgPT4gZmV0Y2goKSksIGJ1dCBpdCBtYWtlcyBzZW5zZSB0byBwcmlvcml0aXplIGtlZXBpbmcg dGhlCi0gICAgaGFzaG1hcCBzbWFsbC4KLSAgICAKLSAgICBDaGFuZ2UtSWQ6IEk1MWJkYzlkNWVi NTE4NWYyYjViNGRmNmVlNzg1NzE1YjExODBjODQ4Ci0gICAgQnVnOiAxNDkyNjQwCi0gICAgUmV2 aWV3ZWQtb246IGh0dHBzOi8vY2hyb21pdW0tcmV2aWV3Lmdvb2dsZXNvdXJjZS5jb20vYy9jaHJv bWl1bS9zcmMvKy80OTY0ODQwCi0gICAgUmV2aWV3ZWQtYnk6IE1pbm9ydSBDaGlrYW11bmUgPGNo aWthbXVuZUBjaHJvbWl1bS5vcmc+Ci0gICAgQ29tbWl0LVF1ZXVlOiBZb3NoaXNhdG8gWWFuYWdp c2F3YSA8eXlhbmFnaXNhd2FAY2hyb21pdW0ub3JnPgotICAgIFJldmlld2VkLWJ5OiBZb3NoaXNh dG8gWWFuYWdpc2F3YSA8eXlhbmFnaXNhd2FAY2hyb21pdW0ub3JnPgotICAgIENyLUNvbW1pdC1Q b3NpdGlvbjogcmVmcy9oZWFkcy9tYWluQHsjMTIxNDA2NH0KLQotZGlmZiAtLWdpdCBhL3RoaXJk X3BhcnR5L2JsaW5rL3JlbmRlcmVyL21vZHVsZXMvc2VydmljZV93b3JrZXIvc2VydmljZV93b3Jr ZXJfZ2xvYmFsX3Njb3BlLmNjIGIvdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvbW9kdWxlcy9z ZXJ2aWNlX3dvcmtlci9zZXJ2aWNlX3dvcmtlcl9nbG9iYWxfc2NvcGUuY2MKLWluZGV4IDAyODg3 ZWRjMTA4ODMuLmIzNjI0ZmMwMTYyZGYgMTAwNjQ0Ci0tLS0gYS90aGlyZF9wYXJ0eS9ibGluay9y ZW5kZXJlci9tb2R1bGVzL3NlcnZpY2Vfd29ya2VyL3NlcnZpY2Vfd29ya2VyX2dsb2JhbF9zY29w ZS5jYwotKysrIGIvdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvbW9kdWxlcy9zZXJ2aWNlX3dv cmtlci9zZXJ2aWNlX3dvcmtlcl9nbG9iYWxfc2NvcGUuY2MKLUBAIC00Niw2ICs0Niw3IEBACi0g I2luY2x1ZGUgInNlcnZpY2VzL25ldHdvcmsvcHVibGljL2NwcC9jcm9zc19vcmlnaW5fZW1iZWRk ZXJfcG9saWN5LmgiCi0gI2luY2x1ZGUgInNlcnZpY2VzL25ldHdvcmsvcHVibGljL21vam9tL2Nv b2tpZV9tYW5hZ2VyLm1vam9tLWJsaW5rLmgiCi0gI2luY2x1ZGUgInNlcnZpY2VzL25ldHdvcmsv cHVibGljL21vam9tL2Nyb3NzX29yaWdpbl9lbWJlZGRlcl9wb2xpY3kubW9qb20uaCIKLSsjaW5j bHVkZSAic2VydmljZXMvbmV0d29yay9wdWJsaWMvbW9qb20vdXJsX2xvYWRlcl9mYWN0b3J5Lm1v am9tLWJsaW5rLmgiCi0gI2luY2x1ZGUgInRoaXJkX3BhcnR5L2JsaW5rL3B1YmxpYy9jb21tb24v ZmVhdHVyZXMuaCIKLSAjaW5jbHVkZSAidGhpcmRfcGFydHkvYmxpbmsvcHVibGljL21vam9tL2Zl dGNoL2ZldGNoX2FwaV9yZXF1ZXN0Lm1vam9tLWJsaW5rLmgiCi0gI2luY2x1ZGUgInRoaXJkX3Bh cnR5L2JsaW5rL3B1YmxpYy9tb2pvbS9ub3RpZmljYXRpb25zL25vdGlmaWNhdGlvbi5tb2pvbS1i bGluay5oIgotQEAgLTEwOTYsNiArMTA5NywxMCBAQCB2b2lkIFNlcnZpY2VXb3JrZXJHbG9iYWxT Y29wZTo6RGlkSGFuZGxlRmV0Y2hFdmVudCgKLSAgICAgICBUUkFDRV9JRF9XSVRIX1NDT1BFKGtT ZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVUcmFjZVNjb3BlLAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgVFJBQ0VfSURfTE9DQUwoZXZlbnRfaWQpKSwKLSAgICAgICBUUkFDRV9FVkVOVF9GTEFH X0ZMT1dfSU4sICJzdGF0dXMiLCBNb2pvRW51bVRvU3RyaW5nKHN0YXR1cykpOwotKwotKyAgLy8g RGVsZXRlIHRoZSBVUkxMb2FkZXJGYWN0b3J5IGZvciB0aGUgUmFjZU5ldHdvcmtSZXF1ZXN0IGlm IGl0J3Mgbm90IHVzZWQuCi0rICBSZW1vdmVJdGVtRnJvbVJhY2VOZXR3b3JrUmVxdWVzdHMoZXZl bnRfaWQpOwotKwotICAgaWYgKCFSdW5FdmVudENhbGxiYWNrKCZmZXRjaF9ldmVudF9jYWxsYmFj a3NfLCBldmVudF9xdWV1ZV8uZ2V0KCksIGV2ZW50X2lkLAotICAgICAgICAgICAgICAgICAgICAg ICAgIHN0YXR1cykpIHsKLSAgICAgLy8gVGhlIGV2ZW50IG1heSBoYXZlIGJlZW4gYWJvcnRlZC4g SXRzIHJlc3BvbnNlIGNhbGxiYWNrIGFsc28gbmVlZHMgdG8gYmUKLUBAIC0xNDk1LDYgKzE1MDAs NyBAQCB2b2lkIFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZTo6QWJvcnRDYWxsYmFja0ZvckZldGNo RXZlbnQoCi0gICAgIHJlc3BvbnNlX2NhbGxiYWNrX2l0ZXItPnZhbHVlLT5UYWtlVmFsdWUoKS5y ZXNldCgpOwotICAgICBmZXRjaF9yZXNwb25zZV9jYWxsYmFja3NfLmVyYXNlKHJlc3BvbnNlX2Nh bGxiYWNrX2l0ZXIpOwotICAgfQotKyAgUmVtb3ZlSXRlbUZyb21SYWNlTmV0d29ya1JlcXVlc3Rz KGV2ZW50X2lkKTsKLSAKLSAgIC8vIFJ1biB0aGUgZXZlbnQgY2FsbGJhY2sgd2l0aCB0aGUgZXJy b3IgY29kZS4KLSAgIGF1dG8gZXZlbnRfY2FsbGJhY2tfaXRlciA9IGZldGNoX2V2ZW50X2NhbGxi YWNrc18uZmluZChldmVudF9pZCk7Ci1AQCAtMTU1MSw1MiArMTU1NywxMSBAQCB2b2lkIFNlcnZp Y2VXb3JrZXJHbG9iYWxTY29wZTo6U3RhcnRGZXRjaEV2ZW50KAotIAotICAgaWYgKHBhcmFtcy0+ cmFjZV9uZXR3b3JrX3JlcXVlc3RfbG9hZGVyX2ZhY3RvcnkgJiYKLSAgICAgICBwYXJhbXMtPnJl cXVlc3QtPnNlcnZpY2Vfd29ya2VyX3JhY2VfbmV0d29ya19yZXF1ZXN0X3Rva2VuKSB7Ci0tICAg IGF1dG8gaW5zZXJ0X3Jlc3VsdCA9IHJhY2VfbmV0d29ya19yZXF1ZXN0X2xvYWRlcl9mYWN0b3Jp ZXNfLmluc2VydCgKLS0gICAgICAgIFN0cmluZyhwYXJhbXMtPnJlcXVlc3QtPnNlcnZpY2Vfd29y a2VyX3JhY2VfbmV0d29ya19yZXF1ZXN0X3Rva2VuCi0tICAgICAgICAgICAgICAgICAgIC0+VG9T dHJpbmcoKSksCi0tICAgICAgICBzdGQ6Om1vdmUocGFyYW1zLT5yYWNlX25ldHdvcmtfcmVxdWVz dF9sb2FkZXJfZmFjdG9yeSkpOwotLQotLSAgICAvLyBEdW1wV2l0aG91dENyYXNoaW5nIGlmIHRo ZSB0b2tlbiBpcyBlbXB0eSwgb3Igbm90IGluc2VydGVkIGFzIGEgbmV3IGVudHJ5Ci0tICAgIC8v IHRvIHxyYWNlX25ldHdvcmtfcmVxdWVzdF9sb2FkZXJfZmFjdG9yaWVzX3wuCi0tICAgIC8vIFRP RE8oY3JidWcuY29tLzE0OTI2NDApIFJlbW92ZSBEdW1wV2l0aG91dENyYXNoaW5nIG9uY2Ugd2Ug Y29sbGVjdCBkYXRhCi0tICAgIC8vIGFuZCBpZGVudGlmeSB0aGUgY2F1c2UuCi0tICAgIHN0YXRp YyBib29sIGhhc19kdW1wZWRfd2l0aG91dF9jcmFzaGluZ19mb3JfZW1wdHlfdG9rZW4gPSBmYWxz ZTsKLS0gICAgc3RhdGljIGJvb2wgaGFzX2R1bXBlZF93aXRob3V0X2NyYXNoaW5nX2Zvcl9ub3Rf bmV3X2VudHJ5ID0gZmFsc2U7Ci0tICAgIGlmICghaGFzX2R1bXBlZF93aXRob3V0X2NyYXNoaW5n X2Zvcl9lbXB0eV90b2tlbiAmJgotLSAgICAgICAgcGFyYW1zLT5yZXF1ZXN0LT5zZXJ2aWNlX3dv cmtlcl9yYWNlX25ldHdvcmtfcmVxdWVzdF90b2tlbgotLSAgICAgICAgICAgIC0+aXNfZW1wdHko KSkgewotLSAgICAgIGhhc19kdW1wZWRfd2l0aG91dF9jcmFzaGluZ19mb3JfZW1wdHlfdG9rZW4g PSB0cnVlOwotLSAgICAgIFNDT1BFRF9DUkFTSF9LRVlfQk9PTCgKLS0gICAgICAgICAgIlNXR2xv YmFsU2NvcGUiLCAiZW1wdHlfcmFjZV90b2tlbiIsCi0tICAgICAgICAgIHBhcmFtcy0+cmVxdWVz dC0+c2VydmljZV93b3JrZXJfcmFjZV9uZXR3b3JrX3JlcXVlc3RfdG9rZW4KLS0gICAgICAgICAg ICAgIC0+aXNfZW1wdHkoKSk7Ci0tICAgICAgU0NPUEVEX0NSQVNIX0tFWV9TVFJJTkc2NCgKLS0g ICAgICAgICAgIlNXR2xvYmFsU2NvcGUiLCAicmFjZV90b2tlbl9zdHJpbmciLAotLSAgICAgICAg ICBwYXJhbXMtPnJlcXVlc3QtPnNlcnZpY2Vfd29ya2VyX3JhY2VfbmV0d29ya19yZXF1ZXN0X3Rv a2VuCi0tICAgICAgICAgICAgICAtPlRvU3RyaW5nKCkpOwotLSAgICAgIFNDT1BFRF9DUkFTSF9L RVlfQk9PTCgiU1dHbG9iYWxTY29wZSIsICJyYWNlX2luc2VydF9uZXdfZW50cnkiLAotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICBpbnNlcnRfcmVzdWx0LmlzX25ld19lbnRyeSk7Ci0tICAg ICAgU0NPUEVEX0NSQVNIX0tFWV9TVFJJTkcyNTYoIlNXR2xvYmFsU2NvcGUiLCAicmFjZV9yZXF1 ZXN0X3VybCIsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zLT5yZXF1 ZXN0LT51cmwuR2V0U3RyaW5nKCkuVXRmOCgpKTsKLS0gICAgICBiYXNlOjpkZWJ1Zzo6RHVtcFdp dGhvdXRDcmFzaGluZygpOwotLSAgICB9Ci0tICAgIGlmICghaGFzX2R1bXBlZF93aXRob3V0X2Ny YXNoaW5nX2Zvcl9ub3RfbmV3X2VudHJ5ICYmCi0tICAgICAgICAhaW5zZXJ0X3Jlc3VsdC5pc19u ZXdfZW50cnkpIHsKLS0gICAgICBoYXNfZHVtcGVkX3dpdGhvdXRfY3Jhc2hpbmdfZm9yX25vdF9u ZXdfZW50cnkgPSB0cnVlOwotLSAgICAgIFNDT1BFRF9DUkFTSF9LRVlfQk9PTCgKLS0gICAgICAg ICAgIlNXR2xvYmFsU2NvcGUiLCAiZW1wdHlfcmFjZV90b2tlbiIsCi0tICAgICAgICAgIHBhcmFt cy0+cmVxdWVzdC0+c2VydmljZV93b3JrZXJfcmFjZV9uZXR3b3JrX3JlcXVlc3RfdG9rZW4KLS0g ICAgICAgICAgICAgIC0+aXNfZW1wdHkoKSk7Ci0tICAgICAgU0NPUEVEX0NSQVNIX0tFWV9TVFJJ Tkc2NCgKLS0gICAgICAgICAgIlNXR2xvYmFsU2NvcGUiLCAicmFjZV90b2tlbl9zdHJpbmciLAot LSAgICAgICAgICBwYXJhbXMtPnJlcXVlc3QtPnNlcnZpY2Vfd29ya2VyX3JhY2VfbmV0d29ya19y ZXF1ZXN0X3Rva2VuCi0tICAgICAgICAgICAgICAtPlRvU3RyaW5nKCkpOwotLSAgICAgIFNDT1BF RF9DUkFTSF9LRVlfQk9PTCgiU1dHbG9iYWxTY29wZSIsICJyYWNlX2luc2VydF9uZXdfZW50cnki LAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnNlcnRfcmVzdWx0LmlzX25ld19lbnRy eSk7Ci0tICAgICAgU0NPUEVEX0NSQVNIX0tFWV9TVFJJTkcyNTYoIlNXR2xvYmFsU2NvcGUiLCAi cmFjZV9yZXF1ZXN0X3VybCIsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFy YW1zLT5yZXF1ZXN0LT51cmwuR2V0U3RyaW5nKCkuVXRmOCgpKTsKLS0gICAgICBiYXNlOjpkZWJ1 Zzo6RHVtcFdpdGhvdXRDcmFzaGluZygpOwotLSAgICB9Ci0rICAgIEluc2VydE5ld0l0ZW1Ub1Jh Y2VOZXR3b3JrUmVxdWVzdHMoCi0rICAgICAgICBldmVudF9pZCwKLSsgICAgICAgIHBhcmFtcy0+ cmVxdWVzdC0+c2VydmljZV93b3JrZXJfcmFjZV9uZXR3b3JrX3JlcXVlc3RfdG9rZW4udmFsdWUo KSwKLSsgICAgICAgIHN0ZDo6bW92ZShwYXJhbXMtPnJhY2VfbmV0d29ya19yZXF1ZXN0X2xvYWRl cl9mYWN0b3J5KSwKLSsgICAgICAgIHBhcmFtcy0+cmVxdWVzdC0+dXJsKTsKLSAgIH0KLSAKLSAg IFJlcXVlc3QqIHJlcXVlc3QgPSBSZXF1ZXN0OjpDcmVhdGUoCi1AQCAtMjgwOCwxMiArMjc3Myw3 MSBAQCBib29sIFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZTo6U2V0QXR0cmlidXRlRXZlbnRMaXN0 ZW5lcigKLSBhYnNsOjpvcHRpb25hbDxtb2pvOjpQZW5kaW5nUmVtb3RlPG5ldHdvcms6Om1vam9t OjpibGluazo6VVJMTG9hZGVyRmFjdG9yeT4+Ci0gU2VydmljZVdvcmtlckdsb2JhbFNjb3BlOjpG aW5kUmFjZU5ldHdvcmtSZXF1ZXN0VVJMTG9hZGVyRmFjdG9yeSgKLSAgICAgY29uc3QgYmFzZTo6 VW5ndWVzc2FibGVUb2tlbiYgdG9rZW4pIHsKLS0gIG1vam86OlBlbmRpbmdSZW1vdGU8bmV0d29y azo6bW9qb206OmJsaW5rOjpVUkxMb2FkZXJGYWN0b3J5PiByZXN1bHQgPQotLSAgICAgIHJhY2Vf bmV0d29ya19yZXF1ZXN0X2xvYWRlcl9mYWN0b3JpZXNfLlRha2UoU3RyaW5nKHRva2VuLlRvU3Ry aW5nKCkpKTsKLSsgIHN0ZDo6dW5pcXVlX3B0cjxSYWNlTmV0d29ya1JlcXVlc3RJbmZvPiByZXN1 bHQgPQotKyAgICAgIHJhY2VfbmV0d29ya19yZXF1ZXN0c18uVGFrZShTdHJpbmcodG9rZW4uVG9T dHJpbmcoKSkpOwotICAgaWYgKHJlc3VsdCkgewotLSAgICByZXR1cm4gcmVzdWx0OwotKyAgICBy YWNlX25ldHdvcmtfcmVxdWVzdF9mZXRjaF9ldmVudF9pZHNfLmVyYXNlKHJlc3VsdC0+ZmV0Y2hf ZXZlbnRfaWQpOwotKyAgICByZXR1cm4gYWJzbDo6b3B0aW9uYWw8Ci0rICAgICAgICBtb2pvOjpQ ZW5kaW5nUmVtb3RlPG5ldHdvcms6Om1vam9tOjpibGluazo6VVJMTG9hZGVyRmFjdG9yeT4+KAot KyAgICAgICAgc3RkOjptb3ZlKHJlc3VsdC0+dXJsX2xvYWRlcl9mYWN0b3J5KSk7Ci0gICB9Ci0g ICByZXR1cm4gYWJzbDo6bnVsbG9wdDsKLSB9Ci0gCi0rdm9pZCBTZXJ2aWNlV29ya2VyR2xvYmFs U2NvcGU6Okluc2VydE5ld0l0ZW1Ub1JhY2VOZXR3b3JrUmVxdWVzdHMoCi0rICAgIGludCBmZXRj aF9ldmVudF9pZCwKLSsgICAgY29uc3QgYmFzZTo6VW5ndWVzc2FibGVUb2tlbiYgdG9rZW4sCi0r ICAgIG1vam86OlBlbmRpbmdSZW1vdGU8bmV0d29yazo6bW9qb206OmJsaW5rOjpVUkxMb2FkZXJG YWN0b3J5PgotKyAgICAgICAgdXJsX2xvYWRlcl9mYWN0b3J5LAotKyAgICBjb25zdCBLVVJMJiBy ZXF1ZXN0X3VybCkgewotKyAgYXV0byByYWNlX25ldHdvcmtfcmVxdWVzdF90b2tlbiA9IFN0cmlu Zyh0b2tlbi5Ub1N0cmluZygpKTsKLSsgIGF1dG8gaW5mbyA9IHN0ZDo6bWFrZV91bmlxdWU8UmFj ZU5ldHdvcmtSZXF1ZXN0SW5mbz4oCi0rICAgICAgZmV0Y2hfZXZlbnRfaWQsIHJhY2VfbmV0d29y a19yZXF1ZXN0X3Rva2VuLAotKyAgICAgIHN0ZDo6bW92ZSh1cmxfbG9hZGVyX2ZhY3RvcnkpKTsK LSsgIHJhY2VfbmV0d29ya19yZXF1ZXN0X2ZldGNoX2V2ZW50X2lkc18uaW5zZXJ0KGZldGNoX2V2 ZW50X2lkLCBpbmZvLmdldCgpKTsKLSsgIGF1dG8gaW5zZXJ0X3Jlc3VsdCA9IHJhY2VfbmV0d29y a19yZXF1ZXN0c18uaW5zZXJ0KHJhY2VfbmV0d29ya19yZXF1ZXN0X3Rva2VuLAotKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjptb3ZlKGlu Zm8pKTsKLSsKLSsgIC8vIER1bXBXaXRob3V0Q3Jhc2hpbmcgaWYgdGhlIHRva2VuIGlzIGVtcHR5 LCBvciBub3QgaW5zZXJ0ZWQgYXMgYSBuZXcgZW50cnkKLSsgIC8vIHRvIHxyYWNlX25ldHdvcmtf cmVxdWVzdF9sb2FkZXJfZmFjdG9yaWVzX3wuCi0rICAvLyBUT0RPKGNyYnVnLmNvbS8xNDkyNjQw KSBSZW1vdmUgRHVtcFdpdGhvdXRDcmFzaGluZyBvbmNlIHdlIGNvbGxlY3QgZGF0YQotKyAgLy8g YW5kIGlkZW50aWZ5IHRoZSBjYXVzZS4KLSsgIHN0YXRpYyBib29sIGhhc19kdW1wZWRfd2l0aG91 dF9jcmFzaGluZ19mb3JfZW1wdHlfdG9rZW4gPSBmYWxzZTsKLSsgIHN0YXRpYyBib29sIGhhc19k dW1wZWRfd2l0aG91dF9jcmFzaGluZ19mb3Jfbm90X25ld19lbnRyeSA9IGZhbHNlOwotKyAgaWYg KCFoYXNfZHVtcGVkX3dpdGhvdXRfY3Jhc2hpbmdfZm9yX2VtcHR5X3Rva2VuICYmIHRva2VuLmlz X2VtcHR5KCkpIHsKLSsgICAgaGFzX2R1bXBlZF93aXRob3V0X2NyYXNoaW5nX2Zvcl9lbXB0eV90 b2tlbiA9IHRydWU7Ci0rICAgIFNDT1BFRF9DUkFTSF9LRVlfQk9PTCgiU1dHbG9iYWxTY29wZSIs ICJlbXB0eV9yYWNlX3Rva2VuIiwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgIHRva2VuLmlz X2VtcHR5KCkpOwotKyAgICBTQ09QRURfQ1JBU0hfS0VZX1NUUklORzY0KCJTV0dsb2JhbFNjb3Bl IiwgInJhY2VfdG9rZW5fc3RyaW5nIiwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0 b2tlbi5Ub1N0cmluZygpKTsKLSsgICAgU0NPUEVEX0NSQVNIX0tFWV9CT09MKCJTV0dsb2JhbFNj b3BlIiwgInJhY2VfaW5zZXJ0X25ld19lbnRyeSIsCi0rICAgICAgICAgICAgICAgICAgICAgICAg ICBpbnNlcnRfcmVzdWx0LmlzX25ld19lbnRyeSk7Ci0rICAgIFNDT1BFRF9DUkFTSF9LRVlfU1RS SU5HMjU2KCJTV0dsb2JhbFNjb3BlIiwgInJhY2VfcmVxdWVzdF91cmwiLAotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICByZXF1ZXN0X3VybC5HZXRTdHJpbmcoKS5VdGY4KCkpOwotKyAg ICBiYXNlOjpkZWJ1Zzo6RHVtcFdpdGhvdXRDcmFzaGluZygpOwotKyAgfQotKyAgaWYgKCFoYXNf ZHVtcGVkX3dpdGhvdXRfY3Jhc2hpbmdfZm9yX25vdF9uZXdfZW50cnkgJiYKLSsgICAgICAhaW5z ZXJ0X3Jlc3VsdC5pc19uZXdfZW50cnkpIHsKLSsgICAgaGFzX2R1bXBlZF93aXRob3V0X2NyYXNo aW5nX2Zvcl9ub3RfbmV3X2VudHJ5ID0gdHJ1ZTsKLSsgICAgU0NPUEVEX0NSQVNIX0tFWV9CT09M KCJTV0dsb2JhbFNjb3BlIiwgImVtcHR5X3JhY2VfdG9rZW4iLAotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgdG9rZW4uaXNfZW1wdHkoKSk7Ci0rICAgIFNDT1BFRF9DUkFTSF9LRVlfU1RSSU5H NjQoIlNXR2xvYmFsU2NvcGUiLCAicmFjZV90b2tlbl9zdHJpbmciLAotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHRva2VuLlRvU3RyaW5nKCkpOwotKyAgICBTQ09QRURfQ1JBU0hfS0VZ X0JPT0woIlNXR2xvYmFsU2NvcGUiLCAicmFjZV9pbnNlcnRfbmV3X2VudHJ5IiwKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgIGluc2VydF9yZXN1bHQuaXNfbmV3X2VudHJ5KTsKLSsgICAgU0NP UEVEX0NSQVNIX0tFWV9TVFJJTkcyNTYoIlNXR2xvYmFsU2NvcGUiLCAicmFjZV9yZXF1ZXN0X3Vy bCIsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3RfdXJsLkdldFN0cmlu ZygpLlV0ZjgoKSk7Ci0rICAgIGJhc2U6OmRlYnVnOjpEdW1wV2l0aG91dENyYXNoaW5nKCk7Ci0r ICB9Ci0rfQotKwotK3ZvaWQgU2VydmljZVdvcmtlckdsb2JhbFNjb3BlOjpSZW1vdmVJdGVtRnJv bVJhY2VOZXR3b3JrUmVxdWVzdHMoCi0rICAgIGludCBmZXRjaF9ldmVudF9pZCkgewotKyAgUmFj ZU5ldHdvcmtSZXF1ZXN0SW5mbyogaW5mbyA9Ci0rICAgICAgcmFjZV9uZXR3b3JrX3JlcXVlc3Rf ZmV0Y2hfZXZlbnRfaWRzXy5UYWtlKGZldGNoX2V2ZW50X2lkKTsKLSsgIGlmIChpbmZvKSB7Ci0r ICAgIHJhY2VfbmV0d29ya19yZXF1ZXN0c18uZXJhc2UoaW5mby0+dG9rZW4pOwotKyAgfQotK30K LSsKLSB9ICAvLyBuYW1lc3BhY2UgYmxpbmsKLWRpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ibGlu ay9yZW5kZXJlci9tb2R1bGVzL3NlcnZpY2Vfd29ya2VyL3NlcnZpY2Vfd29ya2VyX2dsb2JhbF9z Y29wZS5oIGIvdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvbW9kdWxlcy9zZXJ2aWNlX3dvcmtl ci9zZXJ2aWNlX3dvcmtlcl9nbG9iYWxfc2NvcGUuaAotaW5kZXggNDZjNDMxYjM5NTgyNS4uYWM0 Y2FjMGIxZDhmYiAxMDA2NDQKLS0tLSBhL3RoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL21vZHVs ZXMvc2VydmljZV93b3JrZXIvc2VydmljZV93b3JrZXJfZ2xvYmFsX3Njb3BlLmgKLSsrKyBiL3Ro aXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL21vZHVsZXMvc2VydmljZV93b3JrZXIvc2VydmljZV93 b3JrZXJfZ2xvYmFsX3Njb3BlLmgKLUBAIC02MjMsNiArNjIzLDE0IEBAIGNsYXNzIE1PRFVMRVNf RVhQT1JUIFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSBmaW5hbAotICAgLy8gU2VydmljZVdvcmtl ci5GZXRjaEV2ZW50LlF1ZXVpbmdUaW1lIGhpc3RvZ3JhbS4KLSAgIHZvaWQgUmVjb3JkUXVldWlu Z1RpbWUoYmFzZTo6VGltZVRpY2tzIGNyZWF0ZWRfdGltZSk7Ci0gCi0rICB2b2lkIEluc2VydE5l d0l0ZW1Ub1JhY2VOZXR3b3JrUmVxdWVzdHMoCi0rICAgICAgaW50IGZldGNoX2V2ZW50X2lkLAot KyAgICAgIGNvbnN0IGJhc2U6OlVuZ3Vlc3NhYmxlVG9rZW4mIHRva2VuLAotKyAgICAgIG1vam86 OlBlbmRpbmdSZW1vdGU8bmV0d29yazo6bW9qb206OmJsaW5rOjpVUkxMb2FkZXJGYWN0b3J5Pgot KyAgICAgICAgICB1cmxfbG9hZGVyX2ZhY3RvcnksCi0rICAgICAgY29uc3QgS1VSTCYgcmVxdWVz dF91cmwpOwotKyAgdm9pZCBSZW1vdmVJdGVtRnJvbVJhY2VOZXR3b3JrUmVxdWVzdHMoaW50IGZl dGNoX2V2ZW50X2lkKTsKLSsKLSAgIE1lbWJlcjxTZXJ2aWNlV29ya2VyQ2xpZW50cz4gY2xpZW50 c187Ci0gICBNZW1iZXI8U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbj4gcmVnaXN0cmF0aW9uXzsK LSAgIE1lbWJlcjw6OmJsaW5rOjpTZXJ2aWNlV29ya2VyPiBzZXJ2aWNlX3dvcmtlcl87Ci1AQCAt NzY4LDEwICs3NzYsMTcgQEAgY2xhc3MgTU9EVUxFU19FWFBPUlQgU2VydmljZVdvcmtlckdsb2Jh bFNjb3BlIGZpbmFsCi0gCi0gICBibGluazo6QmxpbmtTdG9yYWdlS2V5IHN0b3JhZ2Vfa2V5XzsK LSAKLSsgIHN0cnVjdCBSYWNlTmV0d29ya1JlcXVlc3RJbmZvIHsKLSsgICAgaW50IGZldGNoX2V2 ZW50X2lkOwotKyAgICBTdHJpbmcgdG9rZW47Ci0rICAgIG1vam86OlBlbmRpbmdSZW1vdGU8bmV0 d29yazo6bW9qb206OmJsaW5rOjpVUkxMb2FkZXJGYWN0b3J5PgotKyAgICAgICAgdXJsX2xvYWRl cl9mYWN0b3J5OwotKyAgfTsKLSAgIC8vIFRPRE8oY3JidWcuY29tLzkxODcwMikgV1RGOjpIYXNo TWFwIGNhbm5vdCB1c2UgYmFzZTo6VW5ndWVzc2FibGVUb2tlbiBhcyBhCi0gICAvLyBrZXkuIEFz IGEgd29ya2Fyb3VuZCB1c2VzIFdURjo6U3RyaW5nIGFzIGEga2V5IGluc3RlYWQuCi0tICBIYXNo TWFwPFN0cmluZywgbW9qbzo6UGVuZGluZ1JlbW90ZTxuZXR3b3JrOjptb2pvbTo6Ymxpbms6OlVS TExvYWRlckZhY3Rvcnk+PgotLSAgICAgIHJhY2VfbmV0d29ya19yZXF1ZXN0X2xvYWRlcl9mYWN0 b3JpZXNfOwotKyAgSGFzaE1hcDxTdHJpbmcsIHN0ZDo6dW5pcXVlX3B0cjxSYWNlTmV0d29ya1Jl cXVlc3RJbmZvPj4KLSsgICAgICByYWNlX25ldHdvcmtfcmVxdWVzdHNfOwotKyAgSGFzaE1hcDxp bnQsIFJhY2VOZXR3b3JrUmVxdWVzdEluZm8qPiByYWNlX25ldHdvcmtfcmVxdWVzdF9mZXRjaF9l dmVudF9pZHNfOwotIAotICAgSGVhcE1vam9Bc3NvY2lhdGVkUmVtb3RlPG1vam9tOjpibGluazo6 QXNzb2NpYXRlZEludGVyZmFjZVByb3ZpZGVyPgotICAgICAgIHJlbW90ZV9hc3NvY2lhdGVkX2lu dGVyZmFjZXNfe3RoaXN9OwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2No cm9taXVtLTEyMC1lbDctY2xhbmctYnVpbGQtZmFpbHVyZS5wYXRjaC5hcmdzIGIvc3JjcGtncy9j aHJvbWl1bS9wYXRjaGVzL2Nocm9taXVtLTEyMC1lbDctY2xhbmctYnVpbGQtZmFpbHVyZS5wYXRj aC5hcmdzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4YmJiYmU5NDgzNjMyNC4uMDAw MDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2Nocm9taXVtLTEyMC1l bDctY2xhbmctYnVpbGQtZmFpbHVyZS5wYXRjaC5hcmdzCisrKyAvZGV2L251bGwKQEAgLTEgKzAs MCBAQAotLVJOcDEKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9jaHJvbWl1 bS0xMjEtY29uc3RleHByLnBhdGNoIGIvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2Nocm9taXVt LTEyMS1jb25zdGV4cHIucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGEwYjcx NjZhNWM4Zjg2Li4wMDAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMv Y2hyb21pdW0tMTIxLWNvbnN0ZXhwci5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDEyICswLDAg QEAKLWRpZmYgLXVwIGNocm9taXVtLTEyMS4wLjYxNjcuNTcvY29tcG9uZW50cy9wZXJmb3JtYW5j ZV9tYW5hZ2VyL3Jlc291cmNlX2F0dHJpYnV0aW9uL3F1ZXJ5X3BhcmFtcy5oLm1lIGNocm9taXVt LTEyMS4wLjYxNjcuNTcvY29tcG9uZW50cy9wZXJmb3JtYW5jZV9tYW5hZ2VyL3Jlc291cmNlX2F0 dHJpYnV0aW9uL3F1ZXJ5X3BhcmFtcy5oCi0tLS0gY2hyb21pdW0tMTIxLjAuNjE2Ny41Ny9jb21w b25lbnRzL3BlcmZvcm1hbmNlX21hbmFnZXIvcmVzb3VyY2VfYXR0cmlidXRpb24vcXVlcnlfcGFy YW1zLmgubWUJMjAyNC0wMS0xOCAxNzowMDoyNC43OTE1ODI0MjIgKzAxMDAKLSsrKyBjaHJvbWl1 bS0xMjEuMC42MTY3LjU3L2NvbXBvbmVudHMvcGVyZm9ybWFuY2VfbWFuYWdlci9yZXNvdXJjZV9h dHRyaWJ1dGlvbi9xdWVyeV9wYXJhbXMuaAkyMDI0LTAxLTE4IDE3OjIyOjIxLjUyMTY4Mjg0NSAr MDEwMAotQEAgLTI3LDcgKzI3LDcgQEAgc3RydWN0IFF1ZXJ5UGFyYW1zIHsKLSAgIFF1ZXJ5UGFy YW1zKGNvbnN0IFF1ZXJ5UGFyYW1zJiBvdGhlcik7Ci0gICBRdWVyeVBhcmFtcyYgb3BlcmF0b3I9 KGNvbnN0IFF1ZXJ5UGFyYW1zJiBvdGhlcik7Ci0gCi0tICBmcmllbmQgY29uc3RleHByIGJvb2wg b3BlcmF0b3I9PShjb25zdCBRdWVyeVBhcmFtcyYsCi0rICBmcmllbmQgYm9vbCBvcGVyYXRvcj09 KGNvbnN0IFF1ZXJ5UGFyYW1zJiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNvbnN0IFF1ZXJ5UGFyYW1zJikgPSBkZWZhdWx0OwotIAotICAgLy8gSW5kaXZpZHVhbCByZXNv dXJjZSBjb250ZXh0cyB0byBtZWFzdXJlLgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9jaHJvbWl1bS9w YXRjaGVzL2Nocm9taXVtLTEyMS1lbDctY2xhbmctdmVyc2lvbi13YXJuaW5nLnBhdGNoIGIvc3Jj cGtncy9jaHJvbWl1bS9wYXRjaGVzL2Nocm9taXVtLTEyMS1lbDctY2xhbmctdmVyc2lvbi13YXJu aW5nLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiYzg2ZWIyMzU1ODc0Ny4u MDAwMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2Nocm9taXVtLTEy MS1lbDctY2xhbmctdmVyc2lvbi13YXJuaW5nLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTUg KzAsMCBAQAotLS0tIGNocm9taXVtLTEyMS4wLjYxNjcuNTcvdGhpcmRfcGFydHkvbGliYysrL3Ny Yy9pbmNsdWRlL19fY29uZmlnLm9yaWcJMjAyNC0wMS0xNiAxODozODowMC45OTU5MzA3NzQgKzAx MDAKLSsrKyBjaHJvbWl1bS0xMjEuMC42MTY3LjU3L3RoaXJkX3BhcnR5L2xpYmMrKy9zcmMvaW5j bHVkZS9fX2NvbmZpZwkyMDI0LTAxLTE2IDE4OjQzOjQ3LjA1NjUxNzI4OSArMDEwMAotQEAgLTMy LDExICszMiw3IEBACi0gCi0gLy8gV2FybiBpZiBhIGNvbXBpbGVyIHZlcnNpb24gaXMgdXNlZCB0 aGF0IGlzIG5vdCBzdXBwb3J0ZWQgYW55bW9yZQotIC8vIExMVk0gUkVMRUFTRSBVcGRhdGUgdGhl IG1pbmltdW0gY29tcGlsZXIgdmVyc2lvbnMKLS0jICBpZiBkZWZpbmVkKF9MSUJDUFBfQ0xBTkdf VkVSKQotLSMgICAgaWYgX0xJQkNQUF9DTEFOR19WRVIgPCAxNjAwCi0tIyAgICAgIHdhcm5pbmcg IkxpYmMrKyBvbmx5IHN1cHBvcnRzIENsYW5nIDE2IGFuZCBsYXRlciIKLS0jICAgIGVuZGlmCi0t IyAgZWxpZiBkZWZpbmVkKF9MSUJDUFBfQVBQTEVfQ0xBTkdfVkVSKQotKyMgIGlmIGRlZmluZWQo X0xJQkNQUF9BUFBMRV9DTEFOR19WRVIpCi0gIyAgICBpZiBfTElCQ1BQX0FQUExFX0NMQU5HX1ZF UiA8IDE1MDAKLSAjICAgICAgd2FybmluZyAiTGliYysrIG9ubHkgc3VwcG9ydHMgQXBwbGVDbGFu ZyAxNSBhbmQgbGF0ZXIiCi0gIyAgICBlbmRpZgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9jaHJvbWl1 bS9wYXRjaGVzL2Nocm9taXVtLTEyMS1lbDctZGVmYXVsdC1jb25zdHJ1Y3Rvci1pbnZvbHZpbmct YW5vbnltb3VzLXVuaW9uLnBhdGNoIGIvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2Nocm9taXVt LTEyMS1lbDctZGVmYXVsdC1jb25zdHJ1Y3Rvci1pbnZvbHZpbmctYW5vbnltb3VzLXVuaW9uLnBh dGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwYTJhYzFkZTM1NjFkOS4uMDAwMDAw MDAwMDAwMDAKLS0tIGEvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2Nocm9taXVtLTEyMS1lbDct ZGVmYXVsdC1jb25zdHJ1Y3Rvci1pbnZvbHZpbmctYW5vbnltb3VzLXVuaW9uLnBhdGNoCisrKyAv ZGV2L251bGwKQEAgLTEsMTIgKzAsMCBAQAotZGlmZiAtdXAgY2hyb21pdW0tMTIxLjAuNjE2Ny41 Ny9jb250ZW50L2Jyb3dzZXIvaW50ZXJlc3RfZ3JvdXAvaGVhZGVyX2RpcmVjdF9mcm9tX3NlbGxl cl9zaWduYWxzLmNjLm1lIGNocm9taXVtLTEyMS4wLjYxNjcuNTcvY29udGVudC9icm93c2VyL2lu dGVyZXN0X2dyb3VwL2hlYWRlcl9kaXJlY3RfZnJvbV9zZWxsZXJfc2lnbmFscy5jYwotLS0tIGNo cm9taXVtLTEyMS4wLjYxNjcuNTcvY29udGVudC9icm93c2VyL2ludGVyZXN0X2dyb3VwL2hlYWRl cl9kaXJlY3RfZnJvbV9zZWxsZXJfc2lnbmFscy5jYy5tZQkyMDI0LTAxLTIzIDE1OjEzOjExLjQ2 OTEwNDY5NCArMDEwMAotKysrIGNocm9taXVtLTEyMS4wLjYxNjcuNTcvY29udGVudC9icm93c2Vy L2ludGVyZXN0X2dyb3VwL2hlYWRlcl9kaXJlY3RfZnJvbV9zZWxsZXJfc2lnbmFscy5jYwkyMDI0 LTAxLTIzIDE1OjExOjQwLjExNzg0MjAxNSArMDEwMAotQEAgLTQ2LDcgKzQ2LDcgQEAgc2l6ZV90 IEdldFJlc3VsdFNpemVCeXRlcyhjb25zdCBIZWFkZXJEaQotIAotIH0gIC8vIG5hbWVzcGFjZQot IAotLUhlYWRlckRpcmVjdEZyb21TZWxsZXJTaWduYWxzOjpSZXN1bHQ6OlJlc3VsdCgpID0gZGVm YXVsdDsKLStIZWFkZXJEaXJlY3RGcm9tU2VsbGVyU2lnbmFsczo6UmVzdWx0OjpSZXN1bHQoKSB7 fQotIAotIEhlYWRlckRpcmVjdEZyb21TZWxsZXJTaWduYWxzOjpSZXN1bHQ6OlJlc3VsdCgKLSAg ICAgYWJzbDo6b3B0aW9uYWw8c3RkOjpzdHJpbmc+IHNlbGxlcl9zaWduYWxzLApkaWZmIC0tZ2l0 IGEvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2Nocm9taXVtLTEyMS1taXNzaW5nLWhlYWRlci1m aWxlcy5wYXRjaCBiL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9jaHJvbWl1bS0xMjEtbWlzc2lu Zy1oZWFkZXItZmlsZXMucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM3N2Rl MGQxMTQwY2I5Li4wMDAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMv Y2hyb21pdW0tMTIxLW1pc3NpbmctaGVhZGVyLWZpbGVzLnBhdGNoCisrKyAvZGV2L251bGwKQEAg LTEsNDU5ICswLDAgQEAKLWRpZmYgLXVwIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L2Jhc2UvY2hl Y2tfb3AuaC5taXNzaW5nLWhlYWRlci1maWxlcyBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS9iYXNl L2NoZWNrX29wLmgKLS0tLSBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS9iYXNlL2NoZWNrX29wLmgu bWlzc2luZy1oZWFkZXItZmlsZXMJMjAyMy0xMS0wMSAxOToxMDowNS4wMDAwMDAwMDAgKzAxMDAK LSsrKyBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS9iYXNlL2NoZWNrX29wLmgJMjAyMy0xMS0wNiAx NDozNDowMS44MDg4Njg5ODIgKzAxMDAKLUBAIC01LDYgKzUsNyBAQAotICNpZm5kZWYgQkFTRV9D SEVDS19PUF9IXwotICNkZWZpbmUgQkFTRV9DSEVDS19PUF9IXwotIAotKyNpbmNsdWRlIDxjc3Rk aW50PgotICNpbmNsdWRlIDxjc3RkZGVmPgotICNpbmNsdWRlIDxzdHJpbmc+Ci0gI2luY2x1ZGUg PHN0cmluZ192aWV3PgotZGlmZiAtdXAgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvYmFzZS9jb250 YWluZXJzL2ZsYXRfbWFwLmgubWlzc2luZy1oZWFkZXItZmlsZXMgY2hyb21pdW0tMTE5LjAuNjA0 NS4xMDUvYmFzZS9jb250YWluZXJzL2ZsYXRfbWFwLmgKLS0tLSBjaHJvbWl1bS0xMTkuMC42MDQ1 LjEwNS9iYXNlL2NvbnRhaW5lcnMvZmxhdF9tYXAuaC5taXNzaW5nLWhlYWRlci1maWxlcwkyMDIz LTExLTAxIDE5OjEwOjA1LjAwMDAwMDAwMCArMDEwMAotKysrIGNocm9taXVtLTExOS4wLjYwNDUu MTA1L2Jhc2UvY29udGFpbmVycy9mbGF0X21hcC5oCTIwMjMtMTEtMDYgMTQ6MzQ6MDEuODEzODY5 MDg5ICswMTAwCi1AQCAtNSw2ICs1LDcgQEAKLSAjaWZuZGVmIEJBU0VfQ09OVEFJTkVSU19GTEFU X01BUF9IXwotICNkZWZpbmUgQkFTRV9DT05UQUlORVJTX0ZMQVRfTUFQX0hfCi0gCi0rI2luY2x1 ZGUgPGNzdGRpbnQ+Ci0gI2luY2x1ZGUgPGZ1bmN0aW9uYWw+Ci0gI2luY2x1ZGUgPHR1cGxlPgot ICNpbmNsdWRlIDx0eXBlX3RyYWl0cz4KLWRpZmYgLXVwIGNocm9taXVtLTExOS4wLjYwNDUuMTA1 L2Jhc2UvZGVidWcvcHJvZmlsZXIuaC5taXNzaW5nLWhlYWRlci1maWxlcyBjaHJvbWl1bS0xMTku MC42MDQ1LjEwNS9iYXNlL2RlYnVnL3Byb2ZpbGVyLmgKLS0tLSBjaHJvbWl1bS0xMTkuMC42MDQ1 LjEwNS9iYXNlL2RlYnVnL3Byb2ZpbGVyLmgubWlzc2luZy1oZWFkZXItZmlsZXMJMjAyMy0xMS0w MSAxOToxMDowNS4wMDAwMDAwMDAgKzAxMDAKLSsrKyBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS9i YXNlL2RlYnVnL3Byb2ZpbGVyLmgJMjAyMy0xMS0wNiAxNDozNDowMS44MDk4NjkwMDQgKzAxMDAK LUBAIC04LDYgKzgsNyBAQAotICNpbmNsdWRlIDxzdGRkZWYuaD4KLSAjaW5jbHVkZSA8c3RkaW50 Lmg+Ci0gCi0rI2luY2x1ZGUgPGNzdGRpbnQ+Ci0gI2luY2x1ZGUgPHN0cmluZz4KLSAKLSAjaW5j bHVkZSAiYmFzZS9iYXNlX2V4cG9ydC5oIgotZGlmZiAtdXAgY2hyb21pdW0tMTE5LjAuNjA0NS4x MDUvYmFzZS9tZW1vcnkvcmVmX2NvdW50ZWQuaC5taXNzaW5nLWhlYWRlci1maWxlcyBjaHJvbWl1 bS0xMTkuMC42MDQ1LjEwNS9iYXNlL21lbW9yeS9yZWZfY291bnRlZC5oCi0tLS0gY2hyb21pdW0t MTE5LjAuNjA0NS4xMDUvYmFzZS9tZW1vcnkvcmVmX2NvdW50ZWQuaC5taXNzaW5nLWhlYWRlci1m aWxlcwkyMDIzLTExLTAxIDE5OjEwOjA1LjAwMDAwMDAwMCArMDEwMAotKysrIGNocm9taXVtLTEx OS4wLjYwNDUuMTA1L2Jhc2UvbWVtb3J5L3JlZl9jb3VudGVkLmgJMjAyMy0xMS0wNiAxNDozNDow MS44MDg4Njg5ODIgKzAxMDAKLUBAIC02LDYgKzYsNyBAQAotICNkZWZpbmUgQkFTRV9NRU1PUllf UkVGX0NPVU5URURfSF8KLSAKLSAjaW5jbHVkZSA8c3RkZGVmLmg+Ci0rI2luY2x1ZGUgPGxpbWl0 cz4KLSAKLSAjaW5jbHVkZSA8bGltaXRzPgotICNpbmNsdWRlIDx1dGlsaXR5PgotZGlmZiAtdXAg Y2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvY2hyb21lL2Jyb3dzZXIvcHJpdmFjeV9idWRnZXQvZW5j b3VudGVyZWRfc3VyZmFjZV90cmFja2VyLmgubWlzc2luZy1oZWFkZXItZmlsZXMgY2hyb21pdW0t MTE5LjAuNjA0NS4xMDUvY2hyb21lL2Jyb3dzZXIvcHJpdmFjeV9idWRnZXQvZW5jb3VudGVyZWRf c3VyZmFjZV90cmFja2VyLmgKLS0tLSBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS9jaHJvbWUvYnJv d3Nlci9wcml2YWN5X2J1ZGdldC9lbmNvdW50ZXJlZF9zdXJmYWNlX3RyYWNrZXIuaC5taXNzaW5n LWhlYWRlci1maWxlcwkyMDIzLTExLTAxIDE5OjEwOjEzLjAwMDAwMDAwMCArMDEwMAotKysrIGNo cm9taXVtLTExOS4wLjYwNDUuMTA1L2Nocm9tZS9icm93c2VyL3ByaXZhY3lfYnVkZ2V0L2VuY291 bnRlcmVkX3N1cmZhY2VfdHJhY2tlci5oCTIwMjMtMTEtMDYgMTQ6MzQ6MDEuODE0ODY5MTEwICsw MTAwCi1AQCAtNyw2ICs3LDcgQEAKLSAKLSAjaW5jbHVkZSA8c3RkaW50Lmg+Ci0gCi0rI2luY2x1 ZGUgPGNzdGRpbnQ+Ci0gI2luY2x1ZGUgPG1hcD4KLSAKLSAjaW5jbHVkZSAiYmFzZS9jb250YWlu ZXJzL2ZsYXRfc2V0LmgiCi1kaWZmIC11cCBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS9jaHJvbWUv YnJvd3Nlci93ZWJhdXRobi9hdXRoZW50aWNhdG9yX3JlcXVlc3RfZGlhbG9nX21vZGVsLmgubWlz c2luZy1oZWFkZXItZmlsZXMgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvY2hyb21lL2Jyb3dzZXIv d2ViYXV0aG4vYXV0aGVudGljYXRvcl9yZXF1ZXN0X2RpYWxvZ19tb2RlbC5oCi0tLS0gY2hyb21p dW0tMTE5LjAuNjA0NS4xMDUvY2hyb21lL2Jyb3dzZXIvd2ViYXV0aG4vYXV0aGVudGljYXRvcl9y ZXF1ZXN0X2RpYWxvZ19tb2RlbC5oLm1pc3NpbmctaGVhZGVyLWZpbGVzCTIwMjMtMTEtMDEgMTk6 MTA6MTYuMDAwMDAwMDAwICswMTAwCi0rKysgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvY2hyb21l L2Jyb3dzZXIvd2ViYXV0aG4vYXV0aGVudGljYXRvcl9yZXF1ZXN0X2RpYWxvZ19tb2RlbC5oCTIw MjMtMTEtMDYgMTQ6MzQ6MDEuODE3ODY5MTc0ICswMTAwCi1AQCAtOCw2ICs4LDcgQEAKLSAjaW5j bHVkZSA8bWVtb3J5PgotICNpbmNsdWRlIDxzdHJpbmc+Ci0gI2luY2x1ZGUgPHZlY3Rvcj4KLSsj aW5jbHVkZSA8dmFyaWFudD4KLSAKLSAjaW5jbHVkZSAiYmFzZS9jb250YWluZXJzL3NwYW4uaCIK LSAjaW5jbHVkZSAiYmFzZS9mdW5jdGlvbmFsL2NhbGxiYWNrX2ZvcndhcmQuaCIKLWRpZmYgLXVw IGNocm9taXVtLTExOS4wLjYwNDUuMTA1L2Nocm9tZS90ZXN0L2Nocm9tZWRyaXZlci9jaHJvbWUv d2ViX3ZpZXdfaW1wbC5jYy5taXNzaW5nLWhlYWRlci1maWxlcyBjaHJvbWl1bS0xMTkuMC42MDQ1 LjEwNS9jaHJvbWUvdGVzdC9jaHJvbWVkcml2ZXIvY2hyb21lL3dlYl92aWV3X2ltcGwuY2MKLS0t LSBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS9jaHJvbWUvdGVzdC9jaHJvbWVkcml2ZXIvY2hyb21l L3dlYl92aWV3X2ltcGwuY2MubWlzc2luZy1oZWFkZXItZmlsZXMJMjAyMy0xMS0wMSAxOToxMDox Ni4wMDAwMDAwMDAgKzAxMDAKLSsrKyBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS9jaHJvbWUvdGVz dC9jaHJvbWVkcml2ZXIvY2hyb21lL3dlYl92aWV3X2ltcGwuY2MJMjAyMy0xMS0wNiAxNDozNDow MS44MTg4NjkxOTYgKzAxMDAKLUBAIC0xMSw2ICsxMSw3IEBACi0gI2luY2x1ZGUgPHF1ZXVlPgot ICNpbmNsdWRlIDx1dGlsaXR5PgotICNpbmNsdWRlIDx2ZWN0b3I+Ci0rI2luY2x1ZGUgPGNzdHJp bmc+Ci0gCi0gI2luY2x1ZGUgImJhc2UvY2hlY2suaCIKLSAjaW5jbHVkZSAiYmFzZS9maWxlcy9m aWxlX3BhdGguaCIKLWRpZmYgLXVwIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L2NvbXBvbmVudHMv YXV0b2ZpbGwvY29yZS9icm93c2VyL2F1dG9maWxsX2FibGF0aW9uX3N0dWR5LmgubWlzc2luZy1o ZWFkZXItZmlsZXMgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvY29tcG9uZW50cy9hdXRvZmlsbC9j b3JlL2Jyb3dzZXIvYXV0b2ZpbGxfYWJsYXRpb25fc3R1ZHkuaAotLS0tIGNocm9taXVtLTExOS4w LjYwNDUuMTA1L2NvbXBvbmVudHMvYXV0b2ZpbGwvY29yZS9icm93c2VyL2F1dG9maWxsX2FibGF0 aW9uX3N0dWR5LmgubWlzc2luZy1oZWFkZXItZmlsZXMJMjAyMy0xMS0wMSAxOToxMDoxOS4wMDAw MDAwMDAgKzAxMDAKLSsrKyBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS9jb21wb25lbnRzL2F1dG9m aWxsL2NvcmUvYnJvd3Nlci9hdXRvZmlsbF9hYmxhdGlvbl9zdHVkeS5oCTIwMjMtMTEtMDYgMTQ6 MzQ6MDEuODE1ODY5MTMyICswMTAwCi1AQCAtNyw2ICs3LDcgQEAKLSAKLSAjaW5jbHVkZSA8c3Rk aW50Lmg+Ci0gCi0rI2luY2x1ZGUgPGNzdGRpbnQ+Ci0gI2luY2x1ZGUgPHN0cmluZz4KLSAKLSBj bGFzcyBHVVJMOwotZGlmZiAtdXAgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvY29tcG9uZW50cy9j cmFzaC9jb3JlL2FwcC9jcmFzaF9yZXBvcnRlcl9jbGllbnQuaC5taXNzaW5nLWhlYWRlci1maWxl cyBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS9jb21wb25lbnRzL2NyYXNoL2NvcmUvYXBwL2NyYXNo X3JlcG9ydGVyX2NsaWVudC5oCi0tLS0gY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvY29tcG9uZW50 cy9jcmFzaC9jb3JlL2FwcC9jcmFzaF9yZXBvcnRlcl9jbGllbnQuaC5taXNzaW5nLWhlYWRlci1m aWxlcwkyMDIzLTExLTAxIDE5OjEwOjIwLjAwMDAwMDAwMCArMDEwMAotKysrIGNocm9taXVtLTEx OS4wLjYwNDUuMTA1L2NvbXBvbmVudHMvY3Jhc2gvY29yZS9hcHAvY3Jhc2hfcmVwb3J0ZXJfY2xp ZW50LmgJMjAyMy0xMS0wNiAxNDozNDowMS44MTM4NjkwODkgKzAxMDAKLUBAIC03LDYgKzcsNyBA QAotIAotICNpbmNsdWRlIDxzdGRpbnQuaD4KLSAKLSsjaW5jbHVkZSA8Y3N0ZGludD4KLSAjaW5j bHVkZSA8c3RyaW5nPgotIAotICNpbmNsdWRlICJidWlsZC9idWlsZF9jb25maWcuaCIKLWRpZmYg LXVwIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L2NvbXBvbmVudHMvZmVhdHVyZV9lbmdhZ2VtZW50 L2ludGVybmFsL2V2ZW50X3N0b3JhZ2VfdmFsaWRhdG9yLmgubWlzc2luZy1oZWFkZXItZmlsZXMg Y2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvY29tcG9uZW50cy9mZWF0dXJlX2VuZ2FnZW1lbnQvaW50 ZXJuYWwvZXZlbnRfc3RvcmFnZV92YWxpZGF0b3IuaAotLS0tIGNocm9taXVtLTExOS4wLjYwNDUu MTA1L2NvbXBvbmVudHMvZmVhdHVyZV9lbmdhZ2VtZW50L2ludGVybmFsL2V2ZW50X3N0b3JhZ2Vf dmFsaWRhdG9yLmgubWlzc2luZy1oZWFkZXItZmlsZXMJMjAyMy0xMS0wMSAxOToxMDoyMS4wMDAw MDAwMDAgKzAxMDAKLSsrKyBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS9jb21wb25lbnRzL2ZlYXR1 cmVfZW5nYWdlbWVudC9pbnRlcm5hbC9ldmVudF9zdG9yYWdlX3ZhbGlkYXRvci5oCTIwMjMtMTEt MDYgMTQ6MzQ6MDEuODE0ODY5MTEwICswMTAwCi1AQCAtNyw2ICs3LDcgQEAKLSAKLSAjaW5jbHVk ZSA8c3RkaW50Lmg+Ci0gCi0rI2luY2x1ZGUgPGNzdGRpbnQ+Ci0gI2luY2x1ZGUgPHN0cmluZz4K LSAKLSBuYW1lc3BhY2UgZmVhdHVyZV9lbmdhZ2VtZW50IHsKLWRpZmYgLXVwIGNocm9taXVtLTEx OS4wLjYwNDUuMTA1L2NvbXBvbmVudHMvZmVhdHVyZV9lbmdhZ2VtZW50L2ludGVybmFsL25ldmVy X2V2ZW50X3N0b3JhZ2VfdmFsaWRhdG9yLmgubWlzc2luZy1oZWFkZXItZmlsZXMgY2hyb21pdW0t MTE5LjAuNjA0NS4xMDUvY29tcG9uZW50cy9mZWF0dXJlX2VuZ2FnZW1lbnQvaW50ZXJuYWwvbmV2 ZXJfZXZlbnRfc3RvcmFnZV92YWxpZGF0b3IuaAotLS0tIGNocm9taXVtLTExOS4wLjYwNDUuMTA1 L2NvbXBvbmVudHMvZmVhdHVyZV9lbmdhZ2VtZW50L2ludGVybmFsL25ldmVyX2V2ZW50X3N0b3Jh Z2VfdmFsaWRhdG9yLmgubWlzc2luZy1oZWFkZXItZmlsZXMJMjAyMy0xMS0wMSAxOToxMDoyMS4w MDAwMDAwMDAgKzAxMDAKLSsrKyBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS9jb21wb25lbnRzL2Zl YXR1cmVfZW5nYWdlbWVudC9pbnRlcm5hbC9uZXZlcl9ldmVudF9zdG9yYWdlX3ZhbGlkYXRvci5o CTIwMjMtMTEtMDYgMTQ6MzQ6MDEuODE0ODY5MTEwICswMTAwCi1AQCAtNSw2ICs1LDcgQEAKLSAj aWZuZGVmIENPTVBPTkVOVFNfRkVBVFVSRV9FTkdBR0VNRU5UX0lOVEVSTkFMX05FVkVSX0VWRU5U X1NUT1JBR0VfVkFMSURBVE9SX0hfCi0gI2RlZmluZSBDT01QT05FTlRTX0ZFQVRVUkVfRU5HQUdF TUVOVF9JTlRFUk5BTF9ORVZFUl9FVkVOVF9TVE9SQUdFX1ZBTElEQVRPUl9IXwotIAotKyNpbmNs dWRlIDxjc3RkaW50PgotICNpbmNsdWRlIDxzdHJpbmc+Ci0gCi0gI2luY2x1ZGUgImNvbXBvbmVu dHMvZmVhdHVyZV9lbmdhZ2VtZW50L2ludGVybmFsL2V2ZW50X3N0b3JhZ2VfdmFsaWRhdG9yLmgi Ci1kaWZmIC11cCBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS9jb21wb25lbnRzL29tbmlib3gvYnJv d3Nlci9vbl9kZXZpY2VfaGVhZF9tb2RlbC5oLm1pc3NpbmctaGVhZGVyLWZpbGVzIGNocm9taXVt LTExOS4wLjYwNDUuMTA1L2NvbXBvbmVudHMvb21uaWJveC9icm93c2VyL29uX2RldmljZV9oZWFk X21vZGVsLmgKLS0tLSBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS9jb21wb25lbnRzL29tbmlib3gv YnJvd3Nlci9vbl9kZXZpY2VfaGVhZF9tb2RlbC5oLm1pc3NpbmctaGVhZGVyLWZpbGVzCTIwMjMt MTEtMDEgMTk6MTA6MjEuMDAwMDAwMDAwICswMTAwCi0rKysgY2hyb21pdW0tMTE5LjAuNjA0NS4x MDUvY29tcG9uZW50cy9vbW5pYm94L2Jyb3dzZXIvb25fZGV2aWNlX2hlYWRfbW9kZWwuaAkyMDIz LTExLTA2IDE0OjM0OjAxLjgxNTg2OTEzMiArMDEwMAotQEAgLTcsNiArNyw3IEBACi0gCi0gI2lu Y2x1ZGUgPHN0ZGludC5oPgotIAotKyNpbmNsdWRlIDxjc3RkaW50PgotICNpbmNsdWRlIDxzdHJp bmc+Ci0gI2luY2x1ZGUgPHV0aWxpdHk+Ci0gI2luY2x1ZGUgPHZlY3Rvcj4KLWRpZmYgLXVwIGNo cm9taXVtLTExOS4wLjYwNDUuMTA1L2NvbXBvbmVudHMvcGFzc3dvcmRfbWFuYWdlci9jb3JlL2Jy b3dzZXIvZ2VuZXJhdGlvbi9wYXNzd29yZF9nZW5lcmF0b3IuaC5taXNzaW5nLWhlYWRlci1maWxl cyBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS9jb21wb25lbnRzL3Bhc3N3b3JkX21hbmFnZXIvY29y ZS9icm93c2VyL2dlbmVyYXRpb24vcGFzc3dvcmRfZ2VuZXJhdG9yLmgKLS0tLSBjaHJvbWl1bS0x MTkuMC42MDQ1LjEwNS9jb21wb25lbnRzL3Bhc3N3b3JkX21hbmFnZXIvY29yZS9icm93c2VyL2dl bmVyYXRpb24vcGFzc3dvcmRfZ2VuZXJhdG9yLmgubWlzc2luZy1oZWFkZXItZmlsZXMJMjAyMy0x MS0wMSAxOToxMDoyMS4wMDAwMDAwMDAgKzAxMDAKLSsrKyBjaHJvbWl1bS0xMTkuMC42MDQ1LjEw NS9jb21wb25lbnRzL3Bhc3N3b3JkX21hbmFnZXIvY29yZS9icm93c2VyL2dlbmVyYXRpb24vcGFz c3dvcmRfZ2VuZXJhdG9yLmgJMjAyMy0xMS0wNiAxNDozNDowMS44MTQ4NjkxMTAgKzAxMDAKLUBA IC03LDYgKzcsNyBAQAotIAotICNpbmNsdWRlIDxzdGRpbnQuaD4KLSAKLSsjaW5jbHVkZSA8Y3N0 ZGludD4KLSAjaW5jbHVkZSA8c3RyaW5nPgotIAotIAotZGlmZiAtdXAgY2hyb21pdW0tMTE5LjAu NjA0NS4xMDUvY29tcG9uZW50cy9wYXltZW50cy9jb250ZW50L3V0aWxpdHkvZmluZ2VycHJpbnRf cGFyc2VyLmgubWlzc2luZy1oZWFkZXItZmlsZXMgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvY29t cG9uZW50cy9wYXltZW50cy9jb250ZW50L3V0aWxpdHkvZmluZ2VycHJpbnRfcGFyc2VyLmgKLS0t LSBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS9jb21wb25lbnRzL3BheW1lbnRzL2NvbnRlbnQvdXRp bGl0eS9maW5nZXJwcmludF9wYXJzZXIuaC5taXNzaW5nLWhlYWRlci1maWxlcwkyMDIzLTExLTAx IDE5OjEwOjIxLjAwMDAwMDAwMCArMDEwMAotKysrIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L2Nv bXBvbmVudHMvcGF5bWVudHMvY29udGVudC91dGlsaXR5L2ZpbmdlcnByaW50X3BhcnNlci5oCTIw MjMtMTEtMDYgMTQ6MzQ6MDEuODE1ODY5MTMyICswMTAwCi1AQCAtNSw2ICs1LDcgQEAKLSAjaWZu ZGVmIENPTVBPTkVOVFNfUEFZTUVOVFNfQ09OVEVOVF9VVElMSVRZX0ZJTkdFUlBSSU5UX1BBUlNF Ul9IXwotICNkZWZpbmUgQ09NUE9ORU5UU19QQVlNRU5UU19DT05URU5UX1VUSUxJVFlfRklOR0VS UFJJTlRfUEFSU0VSX0hfCi0gCi0rI2luY2x1ZGUgPGNzdGRpbnQ+Ci0gI2luY2x1ZGUgPHN0ZGRl Zi5oPgotICNpbmNsdWRlIDxzdGRpbnQuaD4KLSAKLWRpZmYgLXVwIGNocm9taXVtLTExOS4wLjYw NDUuMTA1L2dpbi90aW1lX2NsYW1wZXIuaC5taXNzaW5nLWhlYWRlci1maWxlcyBjaHJvbWl1bS0x MTkuMC42MDQ1LjEwNS9naW4vdGltZV9jbGFtcGVyLmgKLS0tLSBjaHJvbWl1bS0xMTkuMC42MDQ1 LjEwNS9naW4vdGltZV9jbGFtcGVyLmgubWlzc2luZy1oZWFkZXItZmlsZXMJMjAyMy0xMS0wMSAx OToxMDoyOC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS9naW4v dGltZV9jbGFtcGVyLmgJMjAyMy0xMS0wNiAxNDozNDowMS44MTg4NjkxOTYgKzAxMDAKLUBAIC00 OCw3ICs0OCw3IEBAIGNsYXNzIEdJTl9FWFBPUlQgVGltZUNsYW1wZXIgewotICAgICBjb25zdCBp bnQ2NF90IG1pY3JvcyA9IG5vd19taWNyb3MgJSAxMDAwOwotICAgICAvLyBhYnMoKSBpcyBuZWNl c3NhcnkgZm9yIGRldmljZXMgd2l0aCB0aW1lcyBiZWZvcmUgdW5peC1lcG9jaCAobW9zdCBsaWtl bHkKLSAgICAgLy8gY29uZmlndXJlZCBpbmNvcnJlY3RseSkuCi0tICAgIGlmIChhYnMobWljcm9z KSArIGtSZXNvbHV0aW9uTWljcm9zIDwgMTAwMCkgewotKyAgICBpZiAoc3RkOjphYnMobWljcm9z KSArIGtSZXNvbHV0aW9uTWljcm9zIDwgMTAwMCkgewotICAgICAgIHJldHVybiBub3dfbWljcm9z IC8gMTAwMDsKLSAgICAgfQotICAgICByZXR1cm4gQ2xhbXBUaW1lUmVzb2x1dGlvbihub3dfbWlj cm9zKSAvIDEwMDA7Ci1kaWZmIC11cCBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS9ncHUvY29uZmln L2dwdV9mZWF0dXJlX2luZm8uaC5taXNzaW5nLWhlYWRlci1maWxlcyBjaHJvbWl1bS0xMTkuMC42 MDQ1LjEwNS9ncHUvY29uZmlnL2dwdV9mZWF0dXJlX2luZm8uaAotLS0tIGNocm9taXVtLTExOS4w LjYwNDUuMTA1L2dwdS9jb25maWcvZ3B1X2ZlYXR1cmVfaW5mby5oLm1pc3NpbmctaGVhZGVyLWZp bGVzCTIwMjMtMTEtMDEgMTk6MTA6MjguMDAwMDAwMDAwICswMTAwCi0rKysgY2hyb21pdW0tMTE5 LjAuNjA0NS4xMDUvZ3B1L2NvbmZpZy9ncHVfZmVhdHVyZV9pbmZvLmgJMjAyMy0xMS0wNiAxNDoz NDowMS44MDk4NjkwMDQgKzAxMDAKLUBAIC03LDYgKzcsNyBAQAotIAotICNpbmNsdWRlIDxzdGRp bnQuaD4KLSAKLSsjaW5jbHVkZSA8Y3N0ZGludD4KLSAjaW5jbHVkZSA8c3RyaW5nPgotICNpbmNs dWRlIDx2ZWN0b3I+Ci0gCi1kaWZmIC11cCBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS9uZXQvYmFz ZS9uZXRfZXhwb3J0LmgubWlzc2luZy1oZWFkZXItZmlsZXMgY2hyb21pdW0tMTE5LjAuNjA0NS4x MDUvbmV0L2Jhc2UvbmV0X2V4cG9ydC5oCi0tLS0gY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvbmV0 L2Jhc2UvbmV0X2V4cG9ydC5oLm1pc3NpbmctaGVhZGVyLWZpbGVzCTIwMjMtMTEtMDEgMTk6MTA6 MzIuMDAwMDAwMDAwICswMTAwCi0rKysgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvbmV0L2Jhc2Uv bmV0X2V4cG9ydC5oCTIwMjMtMTEtMDYgMTQ6MzQ6MDEuODA5ODY5MDA0ICswMTAwCi1AQCAtNSw2 ICs1LDggQEAKLSAjaWZuZGVmIE5FVF9CQVNFX05FVF9FWFBPUlRfSF8KLSAjZGVmaW5lIE5FVF9C QVNFX05FVF9FWFBPUlRfSF8KLSAKLSsjaW5jbHVkZSA8Y3N0ZGludD4KLSsKLSAvLyBEZWZpbmVz IE5FVF9FWFBPUlQgc28gdGhhdCBmdW5jdGlvbmFsaXR5IGltcGxlbWVudGVkIGJ5IHRoZSBuZXQg bW9kdWxlIGNhbgotIC8vIGJlIGV4cG9ydGVkIHRvIGNvbnN1bWVycywgYW5kIE5FVF9FWFBPUlRf UFJJVkFURSB0aGF0IGFsbG93cyB1bml0IHRlc3RzIHRvCi0gLy8gYWNjZXNzIGZlYXR1cmVzIG5v dCBpbnRlbmRlZCB0byBiZSB1c2VkIGRpcmVjdGx5IGJ5IHJlYWwgY29uc3VtZXJzLgotZGlmZiAt dXAgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvcGRmL2RvY3VtZW50X2F0dGFjaG1lbnRfaW5mby5o Lm1pc3NpbmctaGVhZGVyLWZpbGVzIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L3BkZi9kb2N1bWVu dF9hdHRhY2htZW50X2luZm8uaAotLS0tIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L3BkZi9kb2N1 bWVudF9hdHRhY2htZW50X2luZm8uaC5taXNzaW5nLWhlYWRlci1maWxlcwkyMDIzLTExLTAxIDE5 OjEwOjM0LjAwMDAwMDAwMCArMDEwMAotKysrIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L3BkZi9k b2N1bWVudF9hdHRhY2htZW50X2luZm8uaAkyMDIzLTExLTA2IDE0OjM0OjAxLjgxNTg2OTEzMiAr MDEwMAotQEAgLTcsNiArNyw3IEBACi0gCi0gI2luY2x1ZGUgPHN0ZGludC5oPgotIAotKyNpbmNs dWRlIDxjc3RkaW50PgotICNpbmNsdWRlIDxzdHJpbmc+Ci0gCi0gCi1kaWZmIC11cCBjaHJvbWl1 bS0xMTkuMC42MDQ1LjEwNS9zYW5kYm94L2xpbnV4L3N5c2NhbGxfYnJva2VyL2Jyb2tlcl9maWxl X3Blcm1pc3Npb24uaC5taXNzaW5nLWhlYWRlci1maWxlcyBjaHJvbWl1bS0xMTkuMC42MDQ1LjEw NS9zYW5kYm94L2xpbnV4L3N5c2NhbGxfYnJva2VyL2Jyb2tlcl9maWxlX3Blcm1pc3Npb24uaAot LS0tIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L3NhbmRib3gvbGludXgvc3lzY2FsbF9icm9rZXIv YnJva2VyX2ZpbGVfcGVybWlzc2lvbi5oLm1pc3NpbmctaGVhZGVyLWZpbGVzCTIwMjMtMTEtMDEg MTk6MTA6MzQuMDAwMDAwMDAwICswMTAwCi0rKysgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvc2Fu ZGJveC9saW51eC9zeXNjYWxsX2Jyb2tlci9icm9rZXJfZmlsZV9wZXJtaXNzaW9uLmgJMjAyMy0x MS0wNiAxNDozNDowMS44MDk4NjkwMDQgKzAxMDAKLUBAIC01LDYgKzUsNyBAQAotICNpZm5kZWYg U0FOREJPWF9MSU5VWF9TWVNDQUxMX0JST0tFUl9CUk9LRVJfRklMRV9QRVJNSVNTSU9OX0hfCi0g I2RlZmluZSBTQU5EQk9YX0xJTlVYX1NZU0NBTExfQlJPS0VSX0JST0tFUl9GSUxFX1BFUk1JU1NJ T05fSF8KLSAKLSsjaW5jbHVkZSA8Y3N0ZGludD4KLSAjaW5jbHVkZSA8Yml0c2V0PgotICNpbmNs dWRlIDxjc3RkaW50PgotICNpbmNsdWRlIDxzdHJpbmc+Ci1kaWZmIC11cCBjaHJvbWl1bS0xMTku MC42MDQ1LjEwNS9zZXJ2aWNlcy9kZXZpY2UvcHVibGljL2NwcC9nZW5lcmljX3NlbnNvci9zZW5z b3JfcmVhZGluZy5oLm1pc3NpbmctaGVhZGVyLWZpbGVzIGNocm9taXVtLTExOS4wLjYwNDUuMTA1 L3NlcnZpY2VzL2RldmljZS9wdWJsaWMvY3BwL2dlbmVyaWNfc2Vuc29yL3NlbnNvcl9yZWFkaW5n LmgKLS0tLSBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS9zZXJ2aWNlcy9kZXZpY2UvcHVibGljL2Nw cC9nZW5lcmljX3NlbnNvci9zZW5zb3JfcmVhZGluZy5oLm1pc3NpbmctaGVhZGVyLWZpbGVzCTIw MjMtMTEtMDEgMTk6MTA6MzUuMDAwMDAwMDAwICswMTAwCi0rKysgY2hyb21pdW0tMTE5LjAuNjA0 NS4xMDUvc2VydmljZXMvZGV2aWNlL3B1YmxpYy9jcHAvZ2VuZXJpY19zZW5zb3Ivc2Vuc29yX3Jl YWRpbmcuaAkyMDIzLTExLTA2IDE0OjM0OjAxLjgyMDg2OTIzOCArMDEwMAotQEAgLTgsNiArOCw5 IEBACi0gI2luY2x1ZGUgPHN0ZGRlZi5oPgotICNpbmNsdWRlIDxzdGRpbnQuaD4KLSAKLSsjaW5j bHVkZSA8Y3N0ZGRlZj4KLSsjaW5jbHVkZSA8Y3N0ZGludD4KLSsKLSAjaW5jbHVkZSA8dHlwZV90 cmFpdHM+Ci0gCi0gbmFtZXNwYWNlIGRldmljZSB7Ci1kaWZmIC11cCBjaHJvbWl1bS0xMTkuMC42 MDQ1LjEwNS9za2lhL2V4dC9za2NvbG9yc3BhY2VfdHJmbi5jYy5taXNzaW5nLWhlYWRlci1maWxl cyBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS9za2lhL2V4dC9za2NvbG9yc3BhY2VfdHJmbi5jYwot LS0tIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L3NraWEvZXh0L3NrY29sb3JzcGFjZV90cmZuLmNj Lm1pc3NpbmctaGVhZGVyLWZpbGVzCTIwMjMtMTEtMDEgMTk6MTA6MzUuMDAwMDAwMDAwICswMTAw Ci0rKysgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvc2tpYS9leHQvc2tjb2xvcnNwYWNlX3RyZm4u Y2MJMjAyMy0xMS0wNiAxNDozNDowMS44MTg4NjkxOTYgKzAxMDAKLUBAIC0zLDYgKzMsNyBAQAot IC8vIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0gCi0gI2luY2x1ZGUgInNraWEvZXh0L3Nr Y29sb3JzcGFjZV90cmZuLmgiCi0rI2luY2x1ZGUgPGNtYXRoPgotIAotICNpbmNsdWRlIDxjbWF0 aD4KLSAKLWRpZmYgLXVwIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L3RoaXJkX3BhcnR5L2Fic2Vp bC1jcHAvYWJzbC9zdHJpbmdzL3N0cmluZ192aWV3LmgubWlzc2luZy1oZWFkZXItZmlsZXMgY2hy b21pdW0tMTE5LjAuNjA0NS4xMDUvdGhpcmRfcGFydHkvYWJzZWlsLWNwcC9hYnNsL3N0cmluZ3Mv c3RyaW5nX3ZpZXcuaAotLS0tIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L3RoaXJkX3BhcnR5L2Fi c2VpbC1jcHAvYWJzbC9zdHJpbmdzL3N0cmluZ192aWV3LmgubWlzc2luZy1oZWFkZXItZmlsZXMJ MjAyMy0xMS0wMSAxOToxMDozNi4wMDAwMDAwMDAgKzAxMDAKLSsrKyBjaHJvbWl1bS0xMTkuMC42 MDQ1LjEwNS90aGlyZF9wYXJ0eS9hYnNlaWwtY3BwL2Fic2wvc3RyaW5ncy9zdHJpbmdfdmlldy5o CTIwMjMtMTEtMDYgMTQ6MzQ6MDEuODA5ODY5MDA0ICswMTAwCi1AQCAtMjcsNiArMjcsNyBAQAot ICNpZm5kZWYgQUJTTF9TVFJJTkdTX1NUUklOR19WSUVXX0hfCi0gI2RlZmluZSBBQlNMX1NUUklO R1NfU1RSSU5HX1ZJRVdfSF8KLSAKLSsjaW5jbHVkZSA8Y3N0ZGludD4KLSAjaW5jbHVkZSA8YWxn b3JpdGhtPgotICNpbmNsdWRlIDxjYXNzZXJ0PgotICNpbmNsdWRlIDxjc3RkZGVmPgotZGlmZiAt dXAgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvdGhpcmRfcGFydHkvYW5nbGUvaW5jbHVkZS9HTFNM QU5HL1NoYWRlclZhcnMuaC5taXNzaW5nLWhlYWRlci1maWxlcyBjaHJvbWl1bS0xMTkuMC42MDQ1 LjEwNS90aGlyZF9wYXJ0eS9hbmdsZS9pbmNsdWRlL0dMU0xBTkcvU2hhZGVyVmFycy5oCi0tLS0g Y2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvdGhpcmRfcGFydHkvYW5nbGUvaW5jbHVkZS9HTFNMQU5H L1NoYWRlclZhcnMuaC5taXNzaW5nLWhlYWRlci1maWxlcwkyMDIzLTExLTAxIDE5OjExOjU5LjAw MDAwMDAwMCArMDEwMAotKysrIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L3RoaXJkX3BhcnR5L2Fu Z2xlL2luY2x1ZGUvR0xTTEFORy9TaGFkZXJWYXJzLmgJMjAyMy0xMS0wNiAxNDozNDowMS44MTA4 NjkwMjUgKzAxMDAKLUBAIC0xMCw2ICsxMCw3IEBACi0gI2lmbmRlZiBHTFNMQU5HX1NIQURFUlZB UlNfSF8KLSAjZGVmaW5lIEdMU0xBTkdfU0hBREVSVkFSU19IXwotIAotKyNpbmNsdWRlIDxjc3Rk aW50PgotICNpbmNsdWRlIDxhbGdvcml0aG0+Ci0gI2luY2x1ZGUgPGFycmF5PgotICNpbmNsdWRl IDxjc3RkaW50PgotZGlmZiAtdXAgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvdGhpcmRfcGFydHkv YmxpbmsvcHVibGljL2NvbW1vbi9ibHVldG9vdGgvd2ViX2JsdWV0b290aF9kZXZpY2VfaWQuaC5t aXNzaW5nLWhlYWRlci1maWxlcyBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS90aGlyZF9wYXJ0eS9i bGluay9wdWJsaWMvY29tbW9uL2JsdWV0b290aC93ZWJfYmx1ZXRvb3RoX2RldmljZV9pZC5oCi0t LS0gY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvdGhpcmRfcGFydHkvYmxpbmsvcHVibGljL2NvbW1v bi9ibHVldG9vdGgvd2ViX2JsdWV0b290aF9kZXZpY2VfaWQuaC5taXNzaW5nLWhlYWRlci1maWxl cwkyMDIzLTExLTAxIDE5OjEwOjM3LjAwMDAwMDAwMCArMDEwMAotKysrIGNocm9taXVtLTExOS4w LjYwNDUuMTA1L3RoaXJkX3BhcnR5L2JsaW5rL3B1YmxpYy9jb21tb24vYmx1ZXRvb3RoL3dlYl9i bHVldG9vdGhfZGV2aWNlX2lkLmgJMjAyMy0xMS0wNiAxNDozNDowMS44MTA4NjkwMjUgKzAxMDAK LUBAIC03LDYgKzcsNyBAQAotIAotICNpbmNsdWRlIDxzdGRpbnQuaD4KLSAKLSsjaW5jbHVkZSA8 Y3N0ZGludD4KLSAjaW5jbHVkZSA8YXJyYXk+Ci0gI2luY2x1ZGUgPGNzdGRpbnQ+Ci0gI2luY2x1 ZGUgPGZ1bmN0aW9uYWw+Ci1kaWZmIC11cCBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS90aGlyZF9w YXJ0eS9kYXduL3NyYy90aW50L2xhbmcvc3BpcnYvcmVhZGVyL2FzdF9wYXJzZXIvbmFtZXIuaC5t aXNzaW5nLWhlYWRlci1maWxlcyBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS90aGlyZF9wYXJ0eS9k YXduL3NyYy90aW50L2xhbmcvc3BpcnYvcmVhZGVyL2FzdF9wYXJzZXIvbmFtZXIuaAotLS0tIGNo cm9taXVtLTExOS4wLjYwNDUuMTA1L3RoaXJkX3BhcnR5L2Rhd24vc3JjL3RpbnQvbGFuZy9zcGly di9yZWFkZXIvYXN0X3BhcnNlci9uYW1lci5oLm1pc3NpbmctaGVhZGVyLWZpbGVzCTIwMjMtMTEt MDEgMTk6MTM6NTAuMDAwMDAwMDAwICswMTAwCi0rKysgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUv dGhpcmRfcGFydHkvZGF3bi9zcmMvdGludC9sYW5nL3NwaXJ2L3JlYWRlci9hc3RfcGFyc2VyL25h bWVyLmgJMjAyMy0xMS0wNiAxNDozNDowMS44MTA4NjkwMjUgKzAxMDAKLUBAIC0xNSw2ICsxNSw3 IEBACi0gI2lmbmRlZiBTUkNfVElOVF9MQU5HX1NQSVJWX1JFQURFUl9BU1RfUEFSU0VSX05BTUVS X0hfCi0gI2RlZmluZSBTUkNfVElOVF9MQU5HX1NQSVJWX1JFQURFUl9BU1RfUEFSU0VSX05BTUVS X0hfCi0gCi0rI2luY2x1ZGUgPGNzdGRpbnQ+Ci0gI2luY2x1ZGUgPHN0cmluZz4KLSAjaW5jbHVk ZSA8dW5vcmRlcmVkX21hcD4KLSAjaW5jbHVkZSA8dmVjdG9yPgotZGlmZiAtdXAgY2hyb21pdW0t MTE5LjAuNjA0NS4xMDUvdGhpcmRfcGFydHkvaXBjei9zcmMvaXBjei9yb3V0ZXJfbGluay5oLm1p c3NpbmctaGVhZGVyLWZpbGVzIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L3RoaXJkX3BhcnR5L2lw Y3ovc3JjL2lwY3ovcm91dGVyX2xpbmsuaAotLS0tIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L3Ro aXJkX3BhcnR5L2lwY3ovc3JjL2lwY3ovcm91dGVyX2xpbmsuaC5taXNzaW5nLWhlYWRlci1maWxl cwkyMDIzLTExLTAxIDE5OjExOjIwLjAwMDAwMDAwMCArMDEwMAotKysrIGNocm9taXVtLTExOS4w LjYwNDUuMTA1L3RoaXJkX3BhcnR5L2lwY3ovc3JjL2lwY3ovcm91dGVyX2xpbmsuaAkyMDIzLTEx LTA2IDE0OjM0OjAxLjgxOTg2OTIxNyArMDEwMAotQEAgLTUsNiArNSw3IEBACi0gI2lmbmRlZiBJ UENaX1NSQ19JUENaX1JPVVRFUl9MSU5LX0hfCi0gI2RlZmluZSBJUENaX1NSQ19JUENaX1JPVVRF Ul9MSU5LX0hfCi0gCi0rI2luY2x1ZGUgPG1lbW9yeT4KLSAjaW5jbHVkZSA8Y3N0ZGRlZj4KLSAj aW5jbHVkZSA8ZnVuY3Rpb25hbD4KLSAjaW5jbHVkZSA8bWVtb3J5PgotZGlmZiAtdXAgY2hyb21p dW0tMTE5LjAuNjA0NS4xMDUvdGhpcmRfcGFydHkvbWF0ZXJpYWxfY29sb3JfdXRpbGl0aWVzL3Ny Yy9jcHAvcGFsZXR0ZXMvdG9uZXMuY2MubWlzc2luZy1oZWFkZXItZmlsZXMgY2hyb21pdW0tMTE5 LjAuNjA0NS4xMDUvdGhpcmRfcGFydHkvbWF0ZXJpYWxfY29sb3JfdXRpbGl0aWVzL3NyYy9jcHAv cGFsZXR0ZXMvdG9uZXMuY2MKLS0tLSBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS90aGlyZF9wYXJ0 eS9tYXRlcmlhbF9jb2xvcl91dGlsaXRpZXMvc3JjL2NwcC9wYWxldHRlcy90b25lcy5jYy5taXNz aW5nLWhlYWRlci1maWxlcwkyMDIzLTExLTAxIDE5OjExOjUzLjAwMDAwMDAwMCArMDEwMAotKysr IGNocm9taXVtLTExOS4wLjYwNDUuMTA1L3RoaXJkX3BhcnR5L21hdGVyaWFsX2NvbG9yX3V0aWxp dGllcy9zcmMvY3BwL3BhbGV0dGVzL3RvbmVzLmNjCTIwMjMtMTEtMDYgMTQ6MzQ6MDEuODE5ODY5 MjE3ICswMTAwCi1AQCAtMTQsNiArMTQsNyBAQAotICAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBM aWNlbnNlLgotICAqLwotIAotKyNpbmNsdWRlIDxjbWF0aD4KLSAjaW5jbHVkZSAiY3BwL3BhbGV0 dGVzL3RvbmVzLmgiCi0gCi0gI2luY2x1ZGUgImNwcC9jYW0vY2FtLmgiCi1kaWZmIC11cCBjaHJv bWl1bS0xMTkuMC42MDQ1LjEwNS90aGlyZF9wYXJ0eS9vcGVuc2NyZWVuL3NyYy9kaXNjb3Zlcnkv ZG5zc2QvcHVibGljL2Ruc19zZF90eHRfcmVjb3JkLmgubWlzc2luZy1oZWFkZXItZmlsZXMgY2hy b21pdW0tMTE5LjAuNjA0NS4xMDUvdGhpcmRfcGFydHkvb3BlbnNjcmVlbi9zcmMvZGlzY292ZXJ5 L2Ruc3NkL3B1YmxpYy9kbnNfc2RfdHh0X3JlY29yZC5oCi0tLS0gY2hyb21pdW0tMTE5LjAuNjA0 NS4xMDUvdGhpcmRfcGFydHkvb3BlbnNjcmVlbi9zcmMvZGlzY292ZXJ5L2Ruc3NkL3B1YmxpYy9k bnNfc2RfdHh0X3JlY29yZC5oLm1pc3NpbmctaGVhZGVyLWZpbGVzCTIwMjMtMTEtMDEgMTk6MTE6 NTkuMDAwMDAwMDAwICswMTAwCi0rKysgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvdGhpcmRfcGFy dHkvb3BlbnNjcmVlbi9zcmMvZGlzY292ZXJ5L2Ruc3NkL3B1YmxpYy9kbnNfc2RfdHh0X3JlY29y ZC5oCTIwMjMtMTEtMDYgMTQ6MzQ6MDEuODEwODY5MDI1ICswMTAwCi1AQCAtNyw2ICs3LDcgQEAK LSAKLSAjaW5jbHVkZSA8c3RkaW50Lmg+Ci0gCi0rI2luY2x1ZGUgPGNzdGRpbnQ+Ci0gI2luY2x1 ZGUgPGZ1bmN0aW9uYWw+Ci0gI2luY2x1ZGUgPG1hcD4KLSAjaW5jbHVkZSA8c2V0PgotZGlmZiAt dXAgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvdGhpcmRfcGFydHkvcGRmaXVtL2NvbnN0YW50cy9h bm5vdGF0aW9uX2ZsYWdzLmgubWlzc2luZy1oZWFkZXItZmlsZXMgY2hyb21pdW0tMTE5LjAuNjA0 NS4xMDUvdGhpcmRfcGFydHkvcGRmaXVtL2NvbnN0YW50cy9hbm5vdGF0aW9uX2ZsYWdzLmgKLS0t LSBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS90aGlyZF9wYXJ0eS9wZGZpdW0vY29uc3RhbnRzL2Fu bm90YXRpb25fZmxhZ3MuaC5taXNzaW5nLWhlYWRlci1maWxlcwkyMDIzLTExLTAxIDE5OjE0OjQ4 LjAwMDAwMDAwMCArMDEwMAotKysrIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L3RoaXJkX3BhcnR5 L3BkZml1bS9jb25zdGFudHMvYW5ub3RhdGlvbl9mbGFncy5oCTIwMjMtMTEtMDYgMTQ6MzQ6MDEu ODE1ODY5MTMyICswMTAwCi1AQCAtNyw2ICs3LDggQEAKLSAKLSAjaW5jbHVkZSA8c3RkaW50Lmg+ Ci0gCi0rI2luY2x1ZGUgPGNzdGRpbnQ+Ci0rCi0gbmFtZXNwYWNlIHBkZml1bSB7Ci0gbmFtZXNw YWNlIGFubm90YXRpb25fZmxhZ3MgewotIAotZGlmZiAtdXAgY2hyb21pdW0tMTE5LjAuNjA0NS4x MDUvdGhpcmRfcGFydHkvcnV5L3NyYy9ydXkvcHJvZmlsZXIvaW5zdHJ1bWVudGF0aW9uLmgubWlz c2luZy1oZWFkZXItZmlsZXMgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvdGhpcmRfcGFydHkvcnV5 L3NyYy9ydXkvcHJvZmlsZXIvaW5zdHJ1bWVudGF0aW9uLmgKLS0tLSBjaHJvbWl1bS0xMTkuMC42 MDQ1LjEwNS90aGlyZF9wYXJ0eS9ydXkvc3JjL3J1eS9wcm9maWxlci9pbnN0cnVtZW50YXRpb24u aC5taXNzaW5nLWhlYWRlci1maWxlcwkyMDIzLTExLTAxIDE5OjEyOjAyLjAwMDAwMDAwMCArMDEw MAotKysrIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L3RoaXJkX3BhcnR5L3J1eS9zcmMvcnV5L3By b2ZpbGVyL2luc3RydW1lbnRhdGlvbi5oCTIwMjMtMTEtMDYgMTQ6MzQ6MDEuODEzODY5MDg5ICsw MTAwCi1AQCAtMTcsNiArMTcsNyBAQCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLSAj ZGVmaW5lIFJVWV9SVVlfUFJPRklMRVJfSU5TVFJVTUVOVEFUSU9OX0hfCi0gCi0gI2lmZGVmIFJV WV9QUk9GSUxFUgotKyNpbmNsdWRlIDxzdHJpbmc+Ci0gI2luY2x1ZGUgPGNzdGRpbz4KLSAjaW5j bHVkZSA8bXV0ZXg+Ci0gI2luY2x1ZGUgPHZlY3Rvcj4KLWRpZmYgLXVwIGNocm9taXVtLTExOS4w LjYwNDUuMTA1L3RoaXJkX3BhcnR5L3N3aWZ0c2hhZGVyL3NyYy9TeXN0ZW0vTFJVQ2FjaGUuaHBw Lm1pc3NpbmctaGVhZGVyLWZpbGVzIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L3RoaXJkX3BhcnR5 L3N3aWZ0c2hhZGVyL3NyYy9TeXN0ZW0vTFJVQ2FjaGUuaHBwCi0tLS0gY2hyb21pdW0tMTE5LjAu NjA0NS4xMDUvdGhpcmRfcGFydHkvc3dpZnRzaGFkZXIvc3JjL1N5c3RlbS9MUlVDYWNoZS5ocHAu bWlzc2luZy1oZWFkZXItZmlsZXMJMjAyMy0xMS0wMSAxOToxMjoxNS4wMDAwMDAwMDAgKzAxMDAK LSsrKyBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS90aGlyZF9wYXJ0eS9zd2lmdHNoYWRlci9zcmMv U3lzdGVtL0xSVUNhY2hlLmhwcAkyMDIzLTExLTA2IDE0OjM0OjAxLjgxMDg2OTAyNSArMDEwMAot QEAgLTE3LDYgKzE3LDcgQEAKLSAKLSAjaW5jbHVkZSAiU3lzdGVtL0RlYnVnLmhwcCIKLSAKLSsj aW5jbHVkZSA8Y3N0ZGludD4KLSAjaW5jbHVkZSA8Y3N0ZGRlZj4KLSAjaW5jbHVkZSA8Y3N0ZGlu dD4KLSAjaW5jbHVkZSA8ZnVuY3Rpb25hbD4KLWRpZmYgLXVwIGNocm9taXVtLTExOS4wLjYwNDUu MTA1L3RoaXJkX3BhcnR5L3N3aWZ0c2hhZGVyL3RoaXJkX3BhcnR5L2xsdm0tMTAuMC9sbHZtL2xp Yi9TdXBwb3J0L1VuaXgvU2lnbmFscy5pbmMubWlzc2luZy1oZWFkZXItZmlsZXMgY2hyb21pdW0t MTE5LjAuNjA0NS4xMDUvdGhpcmRfcGFydHkvc3dpZnRzaGFkZXIvdGhpcmRfcGFydHkvbGx2bS0x MC4wL2xsdm0vbGliL1N1cHBvcnQvVW5peC9TaWduYWxzLmluYwotLS0tIGNocm9taXVtLTExOS4w LjYwNDUuMTA1L3RoaXJkX3BhcnR5L3N3aWZ0c2hhZGVyL3RoaXJkX3BhcnR5L2xsdm0tMTAuMC9s bHZtL2xpYi9TdXBwb3J0L1VuaXgvU2lnbmFscy5pbmMubWlzc2luZy1oZWFkZXItZmlsZXMJMjAy My0xMS0wMSAxOToxMjo0Mi4wMDAwMDAwMDAgKzAxMDAKLSsrKyBjaHJvbWl1bS0xMTkuMC42MDQ1 LjEwNS90aGlyZF9wYXJ0eS9zd2lmdHNoYWRlci90aGlyZF9wYXJ0eS9sbHZtLTEwLjAvbGx2bS9s aWIvU3VwcG9ydC9Vbml4L1NpZ25hbHMuaW5jCTIwMjMtMTEtMDYgMTQ6MzQ6MDEuODE0ODY5MTEw ICswMTAwCi1AQCAtNDUsNiArNDUsNyBAQAotICNpbmNsdWRlICJsbHZtL1N1cHBvcnQvU2F2ZUFu ZFJlc3RvcmUuaCIKLSAjaW5jbHVkZSAibGx2bS9TdXBwb3J0L3Jhd19vc3RyZWFtLmgiCi0gI2lu Y2x1ZGUgPGFsZ29yaXRobT4KLSsjaW5jbHVkZSA8Y3N0ZGludD4KLSAjaW5jbHVkZSA8c3RyaW5n PgotICNpbmNsdWRlIDxzeXNleGl0cy5oPgotICNpZmRlZiBIQVZFX0JBQ0tUUkFDRQotZGlmZiAt dXAgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvdGhpcmRfcGFydHkvdGZsaXRlL3NyYy90ZW5zb3Jm bG93L2xpdGUva2VybmVscy9pbnRlcm5hbC9zcGVjdHJvZ3JhbS5oLm1pc3NpbmctaGVhZGVyLWZp bGVzIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L3RoaXJkX3BhcnR5L3RmbGl0ZS9zcmMvdGVuc29y Zmxvdy9saXRlL2tlcm5lbHMvaW50ZXJuYWwvc3BlY3Ryb2dyYW0uaAotLS0tIGNocm9taXVtLTEx OS4wLjYwNDUuMTA1L3RoaXJkX3BhcnR5L3RmbGl0ZS9zcmMvdGVuc29yZmxvdy9saXRlL2tlcm5l bHMvaW50ZXJuYWwvc3BlY3Ryb2dyYW0uaC5taXNzaW5nLWhlYWRlci1maWxlcwkyMDIzLTExLTAx IDE5OjEzOjIwLjAwMDAwMDAwMCArMDEwMAotKysrIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L3Ro aXJkX3BhcnR5L3RmbGl0ZS9zcmMvdGVuc29yZmxvdy9saXRlL2tlcm5lbHMvaW50ZXJuYWwvc3Bl Y3Ryb2dyYW0uaAkyMDIzLTExLTA2IDE0OjM0OjAxLjgxMzg2OTA4OSArMDEwMAotQEAgLTMxLDYg KzMxLDcgQEAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gI2lmbmRlZiBURU5TT1JG TE9XX0xJVEVfS0VSTkVMU19JTlRFUk5BTF9TUEVDVFJPR1JBTV9IXwotICNkZWZpbmUgVEVOU09S RkxPV19MSVRFX0tFUk5FTFNfSU5URVJOQUxfU1BFQ1RST0dSQU1fSF8KLSAKLSsjaW5jbHVkZSA8 Y3N0ZGludD4KLSAjaW5jbHVkZSA8Y29tcGxleD4KLSAjaW5jbHVkZSA8ZGVxdWU+Ci0gI2luY2x1 ZGUgPHZlY3Rvcj4KLWRpZmYgLXVwIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L3RoaXJkX3BhcnR5 L3Z1bGthbi1kZXBzL3Z1bGthbi12YWxpZGF0aW9uLWxheWVycy9zcmMvbGF5ZXJzL2V4dGVybmFs L3ZtYS92a19tZW1fYWxsb2MuaC5taXNzaW5nLWhlYWRlci1maWxlcyBjaHJvbWl1bS0xMTkuMC42 MDQ1LjEwNS90aGlyZF9wYXJ0eS92dWxrYW4tZGVwcy92dWxrYW4tdmFsaWRhdGlvbi1sYXllcnMv c3JjL2xheWVycy9leHRlcm5hbC92bWEvdmtfbWVtX2FsbG9jLmgKLS0tLSBjaHJvbWl1bS0xMTku MC42MDQ1LjEwNS90aGlyZF9wYXJ0eS92dWxrYW4tZGVwcy92dWxrYW4tdmFsaWRhdGlvbi1sYXll cnMvc3JjL2xheWVycy9leHRlcm5hbC92bWEvdmtfbWVtX2FsbG9jLmgubWlzc2luZy1oZWFkZXIt ZmlsZXMJMjAyMy0xMS0wMSAxOToxMjo0NS4wMDAwMDAwMDAgKzAxMDAKLSsrKyBjaHJvbWl1bS0x MTkuMC42MDQ1LjEwNS90aGlyZF9wYXJ0eS92dWxrYW4tZGVwcy92dWxrYW4tdmFsaWRhdGlvbi1s YXllcnMvc3JjL2xheWVycy9leHRlcm5hbC92bWEvdmtfbWVtX2FsbG9jLmgJMjAyMy0xMS0wNiAx NDozNDowMS44MTc4NjkxNzQgKzAxMDAKLUBAIC0yODg0LDYgKzI4ODQsNyBAQCBzdGF0aWMgdm9p ZCB2bWFfYWxpZ25lZF9mcmVlKHZvaWQqIFZNQV9OCi0gCi0gLy8gRGVmaW5lIHRoaXMgbWFjcm8g dG8gMSB0byBlbmFibGUgZnVuY3Rpb25zOiB2bWFCdWlsZFN0YXRzU3RyaW5nLCB2bWFGcmVlU3Rh dHNTdHJpbmcuCi0gI2lmIFZNQV9TVEFUU19TVFJJTkdfRU5BQkxFRAotKyNpbmNsdWRlIDxzdGRp by5oPgotICAgICBzdGF0aWMgaW5saW5lIHZvaWQgVm1hVWludDMyVG9TdHIoY2hhciogVk1BX05P VF9OVUxMIG91dFN0ciwgc2l6ZV90IHN0ckxlbiwgdWludDMyX3QgbnVtKQotICAgICB7Ci0gICAg ICAgICBzbnByaW50ZihvdXRTdHIsIHN0ckxlbiwgIiV1Iiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQg aW50PihudW0pKTsKLWRpZmYgLXVwIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L3RoaXJkX3BhcnR5 L3dlYnJ0Yy9hdWRpby91dGlsaXR5L2NoYW5uZWxfbWl4ZXIuY2MubWlzc2luZy1oZWFkZXItZmls ZXMgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvdGhpcmRfcGFydHkvd2VicnRjL2F1ZGlvL3V0aWxp dHkvY2hhbm5lbF9taXhlci5jYwotLS0tIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L3RoaXJkX3Bh cnR5L3dlYnJ0Yy9hdWRpby91dGlsaXR5L2NoYW5uZWxfbWl4ZXIuY2MubWlzc2luZy1oZWFkZXIt ZmlsZXMJMjAyMy0xMS0wMSAxOToxNDowNS4wMDAwMDAwMDAgKzAxMDAKLSsrKyBjaHJvbWl1bS0x MTkuMC42MDQ1LjEwNS90aGlyZF9wYXJ0eS93ZWJydGMvYXVkaW8vdXRpbGl0eS9jaGFubmVsX21p eGVyLmNjCTIwMjMtMTEtMDYgMTQ6MzQ6MDEuODE5ODY5MjE3ICswMTAwCi1AQCAtOCw2ICs4LDgg QEAKLSAgKiAgYmUgZm91bmQgaW4gdGhlIEFVVEhPUlMgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUg c291cmNlIHRyZWUuCi0gICovCi0gCi0rI2luY2x1ZGUgPGNzdHJpbmc+Ci0rCi0gI2luY2x1ZGUg ImF1ZGlvL3V0aWxpdHkvY2hhbm5lbF9taXhlci5oIgotIAotICNpbmNsdWRlICJhdWRpby91dGls aXR5L2NoYW5uZWxfbWl4aW5nX21hdHJpeC5oIgotZGlmZiAtdXAgY2hyb21pdW0tMTE5LjAuNjA0 NS4xMDUvdGhpcmRfcGFydHkvd2VicnRjL2NvbW1vbl92aWRlby9oMjY0L3Nwc19wYXJzZXIuaC5t aXNzaW5nLWhlYWRlci1maWxlcyBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS90aGlyZF9wYXJ0eS93 ZWJydGMvY29tbW9uX3ZpZGVvL2gyNjQvc3BzX3BhcnNlci5oCi0tLS0gY2hyb21pdW0tMTE5LjAu NjA0NS4xMDUvdGhpcmRfcGFydHkvd2VicnRjL2NvbW1vbl92aWRlby9oMjY0L3Nwc19wYXJzZXIu aC5taXNzaW5nLWhlYWRlci1maWxlcwkyMDIzLTExLTAxIDE5OjE0OjA2LjAwMDAwMDAwMCArMDEw MAotKysrIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L3RoaXJkX3BhcnR5L3dlYnJ0Yy9jb21tb25f dmlkZW8vaDI2NC9zcHNfcGFyc2VyLmgJMjAyMy0xMS0wNiAxNDozNDowMS44MTk4NjkyMTcgKzAx MDAKLUBAIC0xMSw2ICsxMSw3IEBACi0gI2lmbmRlZiBDT01NT05fVklERU9fSDI2NF9TUFNfUEFS U0VSX0hfCi0gI2RlZmluZSBDT01NT05fVklERU9fSDI2NF9TUFNfUEFSU0VSX0hfCi0gCi0rI2lu Y2x1ZGUgPGNzdGRpbnQ+Ci0gI2luY2x1ZGUgImFic2wvdHlwZXMvb3B0aW9uYWwuaCIKLSAjaW5j bHVkZSAicnRjX2Jhc2UvYml0c3RyZWFtX3JlYWRlci5oIgotIAotZGlmZiAtdXAgY2hyb21pdW0t MTE5LjAuNjA0NS4xMDUvdGhpcmRfcGFydHkvd2VicnRjL21vZHVsZXMvaW5jbHVkZS9tb2R1bGVf Y29tbW9uX3R5cGVzX3B1YmxpYy5oLm1pc3NpbmctaGVhZGVyLWZpbGVzIGNocm9taXVtLTExOS4w LjYwNDUuMTA1L3RoaXJkX3BhcnR5L3dlYnJ0Yy9tb2R1bGVzL2luY2x1ZGUvbW9kdWxlX2NvbW1v bl90eXBlc19wdWJsaWMuaAotLS0tIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L3RoaXJkX3BhcnR5 L3dlYnJ0Yy9tb2R1bGVzL2luY2x1ZGUvbW9kdWxlX2NvbW1vbl90eXBlc19wdWJsaWMuaC5taXNz aW5nLWhlYWRlci1maWxlcwkyMDIzLTExLTAxIDE5OjE0OjExLjAwMDAwMDAwMCArMDEwMAotKysr IGNocm9taXVtLTExOS4wLjYwNDUuMTA1L3RoaXJkX3BhcnR5L3dlYnJ0Yy9tb2R1bGVzL2luY2x1 ZGUvbW9kdWxlX2NvbW1vbl90eXBlc19wdWJsaWMuaAkyMDIzLTExLTA2IDE0OjM0OjAxLjgxOTg2 OTIxNyArMDEwMAotQEAgLTExLDYgKzExLDcgQEAKLSAjaWZuZGVmIE1PRFVMRVNfSU5DTFVERV9N T0RVTEVfQ09NTU9OX1RZUEVTX1BVQkxJQ19IXwotICNkZWZpbmUgTU9EVUxFU19JTkNMVURFX01P RFVMRV9DT01NT05fVFlQRVNfUFVCTElDX0hfCi0gCi0rI2luY2x1ZGUgPGNzdGRpbnQ+Ci0gI2lu Y2x1ZGUgPGxpbWl0cz4KLSAKLSAjaW5jbHVkZSAiYWJzbC90eXBlcy9vcHRpb25hbC5oIgotZGlm ZiAtdXAgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvdGhpcmRfcGFydHkvd2VicnRjL21vZHVsZXMv dmlkZW9fY29kaW5nL3V0aWxpdHkvaXZmX2ZpbGVfcmVhZGVyLmNjLm1pc3NpbmctaGVhZGVyLWZp bGVzIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L3RoaXJkX3BhcnR5L3dlYnJ0Yy9tb2R1bGVzL3Zp ZGVvX2NvZGluZy91dGlsaXR5L2l2Zl9maWxlX3JlYWRlci5jYwotLS0tIGNocm9taXVtLTExOS4w LjYwNDUuMTA1L3RoaXJkX3BhcnR5L3dlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy91dGlsaXR5 L2l2Zl9maWxlX3JlYWRlci5jYy5taXNzaW5nLWhlYWRlci1maWxlcwkyMDIzLTExLTAxIDE5OjE0 OjEyLjAwMDAwMDAwMCArMDEwMAotKysrIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L3RoaXJkX3Bh cnR5L3dlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy91dGlsaXR5L2l2Zl9maWxlX3JlYWRlci5j YwkyMDIzLTExLTA2IDE0OjM0OjAxLjgxOTg2OTIxNyArMDEwMAotQEAgLTEwLDYgKzEwLDcgQEAK LSAKLSAjaW5jbHVkZSAibW9kdWxlcy92aWRlb19jb2RpbmcvdXRpbGl0eS9pdmZfZmlsZV9yZWFk ZXIuaCIKLSAKLSsjaW5jbHVkZSA8Y3N0cmluZz4KLSAjaW5jbHVkZSA8c3RyaW5nPgotICNpbmNs dWRlIDx2ZWN0b3I+Ci0gCi1kaWZmIC11cCBjaHJvbWl1bS0xMTkuMC42MDQ1LjEwNS91aS9iYXNl L3ByZWRpY3Rpb24va2FsbWFuX2ZpbHRlci5oLm1pc3NpbmctaGVhZGVyLWZpbGVzIGNocm9taXVt LTExOS4wLjYwNDUuMTA1L3VpL2Jhc2UvcHJlZGljdGlvbi9rYWxtYW5fZmlsdGVyLmgKLS0tLSBj aHJvbWl1bS0xMTkuMC42MDQ1LjEwNS91aS9iYXNlL3ByZWRpY3Rpb24va2FsbWFuX2ZpbHRlci5o Lm1pc3NpbmctaGVhZGVyLWZpbGVzCTIwMjMtMTEtMDEgMTk6MTE6MjguMDAwMDAwMDAwICswMTAw Ci0rKysgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUvdWkvYmFzZS9wcmVkaWN0aW9uL2thbG1hbl9m aWx0ZXIuaAkyMDIzLTExLTA2IDE0OjM0OjAxLjgxNDg2OTExMCArMDEwMAotQEAgLTcsNiArNyw4 IEBACi0gCi0gI2luY2x1ZGUgPHN0ZGludC5oPgotIAotKyNpbmNsdWRlIDxjc3RkaW50PgotKwot ICNpbmNsdWRlICJiYXNlL2NvbXBvbmVudF9leHBvcnQuaCIKLSAjaW5jbHVkZSAidWkvZ2Z4L2dl b21ldHJ5L21hdHJpeDNfZi5oIgotIAotZGlmZiAtdXAgY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUv dWkvZ2Z4L2dlb21ldHJ5L2xpbmVhcl9ncmFkaWVudC5oLm1pc3NpbmctaGVhZGVyLWZpbGVzIGNo cm9taXVtLTExOS4wLjYwNDUuMTA1L3VpL2dmeC9nZW9tZXRyeS9saW5lYXJfZ3JhZGllbnQuaAot LS0tIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L3VpL2dmeC9nZW9tZXRyeS9saW5lYXJfZ3JhZGll bnQuaC5taXNzaW5nLWhlYWRlci1maWxlcwkyMDIzLTExLTAxIDE5OjExOjI4LjAwMDAwMDAwMCAr MDEwMAotKysrIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L3VpL2dmeC9nZW9tZXRyeS9saW5lYXJf Z3JhZGllbnQuaAkyMDIzLTExLTA2IDE0OjM0OjAxLjgxMjg2OTA2OCArMDEwMAotQEAgLTcsNiAr Nyw3IEBACi0gCi0gI2luY2x1ZGUgPHN0ZGludC5oPgotIAotKyNpbmNsdWRlIDxjc3RkaW50Pgot ICNpbmNsdWRlIDxhcnJheT4KLSAjaW5jbHVkZSA8Y3N0ZGRlZj4KLSAjaW5jbHVkZSA8Y3N0ZGlu dD4KLWRpZmYgLXVwIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L3VpL2dmeC9saW51eC9kcm1fdXRp bF9saW51eC5oLm1pc3NpbmctaGVhZGVyLWZpbGVzIGNocm9taXVtLTExOS4wLjYwNDUuMTA1L3Vp L2dmeC9saW51eC9kcm1fdXRpbF9saW51eC5oCi0tLS0gY2hyb21pdW0tMTE5LjAuNjA0NS4xMDUv dWkvZ2Z4L2xpbnV4L2RybV91dGlsX2xpbnV4LmgubWlzc2luZy1oZWFkZXItZmlsZXMJMjAyMy0x MS0wMSAxOToxMToyOC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBjaHJvbWl1bS0xMTkuMC42MDQ1LjEw NS91aS9nZngvbGludXgvZHJtX3V0aWxfbGludXguaAkyMDIzLTExLTA2IDE0OjM0OjAxLjgxOTg2 OTIxNyArMDEwMAotQEAgLTksNiArOSw4IEBACi0gCi0gI2luY2x1ZGUgInVpL2dmeC9idWZmZXJf dHlwZXMuaCIKLSAKLSsjaW5jbHVkZSA8Y3N0ZGludD4KLSsKLSBuYW1lc3BhY2UgdWkgewotIAot IGludCBHZXRGb3VyQ0NGb3JtYXRGcm9tQnVmZmVyRm9ybWF0KGdmeDo6QnVmZmVyRm9ybWF0IGZv cm1hdCk7CmRpZmYgLS1naXQgYS9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvY2hyb21pdW0tMTIx LW5vX21hdGNoaW5nX2NvbnN0cnVjdG9yLnBhdGNoIGIvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVz L2Nocm9taXVtLTEyMS1ub19tYXRjaGluZ19jb25zdHJ1Y3Rvci5wYXRjaApkZWxldGVkIGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMzMyYTkxYWQwNmIzZDQuLjAwMDAwMDAwMDAwMDAwCi0tLSBhL3Ny Y3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9jaHJvbWl1bS0xMjEtbm9fbWF0Y2hpbmdfY29uc3RydWN0 b3IucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw5NDUgKzAsMCBAQAotZGlmZiAtdXAgY2hyb21p dW0tMTIwLjAuNjA5OS41Ni9iYXNlL21ldHJpY3MvcGVyc2lzdGVudF9oaXN0b2dyYW1fYWxsb2Nh dG9yLmNjLm5vX21hdGNoaW5nX2NvbnN0cnVjdG9yIGNocm9taXVtLTEyMC4wLjYwOTkuNTYvYmFz ZS9tZXRyaWNzL3BlcnNpc3RlbnRfaGlzdG9ncmFtX2FsbG9jYXRvci5jYwotLS0tIGNocm9taXVt LTEyMC4wLjYwOTkuNTYvYmFzZS9tZXRyaWNzL3BlcnNpc3RlbnRfaGlzdG9ncmFtX2FsbG9jYXRv ci5jYy5ub19tYXRjaGluZ19jb25zdHJ1Y3RvcgkyMDIzLTExLTI5IDIyOjM5OjQwLjAwMDAwMDAw MCArMDEwMAotKysrIGNocm9taXVtLTEyMC4wLjYwOTkuNTYvYmFzZS9tZXRyaWNzL3BlcnNpc3Rl bnRfaGlzdG9ncmFtX2FsbG9jYXRvci5jYwkyMDIzLTEyLTAzIDE3OjMxOjI1Ljc0ODQyMDE4OSAr MDEwMAotQEAgLTIxOCwxMyArMjE4LDEzIEBAIFBlcnNpc3RlbnRTcGFyc2VIaXN0b2dyYW1EYXRh TWFuYWdlcjo6TG8KLSAgICAgLy8gVGhlIHNhbXBsZS1yZWNvcmQgY291bGQgYmUgZm9yIGFueSBz cGFyc2UgaGlzdG9ncmFtLiBBZGQgdGhlIHJlZmVyZW5jZQotICAgICAvLyB0byB0aGUgYXBwcm9w cmlhdGUgY29sbGVjdGlvbiBmb3IgbGF0ZXIgdXNlLgotICAgICBpZiAoZm91bmRfaWQgPT0gbWF0 Y2hfaWQpIHsKLS0gICAgICBmb3VuZF9yZWNvcmRzLmVtcGxhY2VfYmFjayhyZWYsIHZhbHVlKTsK LSsgICAgICBmb3VuZF9yZWNvcmRzLmVtcGxhY2VfYmFjaygpID0ge3JlZiwgdmFsdWV9OwotICAg ICAgIGZvdW5kID0gdHJ1ZTsKLSAgICAgfSBlbHNlIHsKLSAgICAgICBzdGQ6OnZlY3RvcjxSZWZl cmVuY2VBbmRTYW1wbGU+KiBzYW1wbGVzID0KLSAgICAgICAgICAgR2V0U2FtcGxlTWFwUmVjb3Jk c1doaWxlTG9ja2VkKGZvdW5kX2lkKTsKLSAgICAgICBDSEVDSyhzYW1wbGVzKTsKLS0gICAgICBz YW1wbGVzLT5lbXBsYWNlX2JhY2socmVmLCB2YWx1ZSk7Ci0rICAgICAgc2FtcGxlcy0+ZW1wbGFj ZV9iYWNrKCkgPSB7cmVmLCB2YWx1ZX07Ci0gICAgIH0KLSAgIH0KLSAKLWRpZmYgLXVwIGNocm9t aXVtLTEyMC4wLjYwOTkuNTYvYmFzZS90cmFjZV9ldmVudC90cmFjZV9sb2cuY2Mubm9fbWF0Y2hp bmdfY29uc3RydWN0b3IgY2hyb21pdW0tMTIwLjAuNjA5OS41Ni9iYXNlL3RyYWNlX2V2ZW50L3Ry YWNlX2xvZy5jYwotLS0tIGNocm9taXVtLTEyMC4wLjYwOTkuNTYvYmFzZS90cmFjZV9ldmVudC90 cmFjZV9sb2cuY2Mubm9fbWF0Y2hpbmdfY29uc3RydWN0b3IJMjAyMy0xMS0yOSAyMjozOTo0MC4w MDAwMDAwMDAgKzAxMDAKLSsrKyBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L2Jhc2UvdHJhY2VfZXZl bnQvdHJhY2VfbG9nLmNjCTIwMjMtMTItMDMgMTc6MzE6MjUuNzQ5NDIwMjA4ICswMTAwCi1AQCAt MjE5MSw4ICsyMTkxLDggQEAgdm9pZCBUcmFjZUxvZzo6U2V0VHJhY2VCdWZmZXJGb3JUZXN0aW5n KAotICNpZiBCVUlMREZMQUcoVVNFX1BFUkZFVFRPX0NMSUVOVF9MSUJSQVJZKQotIHZvaWQgVHJh Y2VMb2c6Ok9uU2V0dXAoY29uc3QgcGVyZmV0dG86OkRhdGFTb3VyY2VCYXNlOjpTZXR1cEFyZ3Mm IGFyZ3MpIHsKLSAgIEF1dG9Mb2NrIGxvY2sodHJhY2tfZXZlbnRfbG9ja18pOwotLSAgdHJhY2tf ZXZlbnRfc2Vzc2lvbnNfLmVtcGxhY2VfYmFjayhhcmdzLmludGVybmFsX2luc3RhbmNlX2luZGV4 LCAqYXJncy5jb25maWcsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFy Z3MuYmFja2VuZF90eXBlKTsKLSsgIHRyYWNrX2V2ZW50X3Nlc3Npb25zXy5lbXBsYWNlX2JhY2so KSA9IHthcmdzLmludGVybmFsX2luc3RhbmNlX2luZGV4LCAqYXJncy5jb25maWcsCi0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3MuYmFja2VuZF90eXBlfTsKLSB9Ci0g Ci0gdm9pZCBUcmFjZUxvZzo6T25TdGFydChjb25zdCBwZXJmZXR0bzo6RGF0YVNvdXJjZUJhc2U6 OlN0YXJ0QXJncyYpIHsKLWRpZmYgLXVwIGNocm9taXVtLTEyMC4wLjYwOTkuNTYvY2hyb21lL2Jy b3dzZXIvY29udGVudF9zZXR0aW5ncy9vbmVfdGltZV9wZXJtaXNzaW9uX3Byb3ZpZGVyLmNjLm5v X21hdGNoaW5nX2NvbnN0cnVjdG9yIGNocm9taXVtLTEyMC4wLjYwOTkuNTYvY2hyb21lL2Jyb3dz ZXIvY29udGVudF9zZXR0aW5ncy9vbmVfdGltZV9wZXJtaXNzaW9uX3Byb3ZpZGVyLmNjCi0tLS0g Y2hyb21pdW0tMTIwLjAuNjA5OS41Ni9jaHJvbWUvYnJvd3Nlci9jb250ZW50X3NldHRpbmdzL29u ZV90aW1lX3Blcm1pc3Npb25fcHJvdmlkZXIuY2Mubm9fbWF0Y2hpbmdfY29uc3RydWN0b3IJMjAy My0xMS0yOSAyMjozOTo0Ny4wMDAwMDAwMDAgKzAxMDAKLSsrKyBjaHJvbWl1bS0xMjAuMC42MDk5 LjU2L2Nocm9tZS9icm93c2VyL2NvbnRlbnRfc2V0dGluZ3Mvb25lX3RpbWVfcGVybWlzc2lvbl9w cm92aWRlci5jYwkyMDIzLTEyLTAzIDE3OjMxOjI1Ljc0OTQyMDIwOCArMDEwMAotQEAgLTIyNiw4 ICsyMjYsOCBAQCB2b2lkIE9uZVRpbWVQZXJtaXNzaW9uUHJvdmlkZXI6Ok9uU3VzcGVuCi0gCi0g ICAgICAgd2hpbGUgKHJ1bGVfaXRlcmF0b3IgJiYgcnVsZV9pdGVyYXRvci0+SGFzTmV4dCgpKSB7 Ci0gICAgICAgICBhdXRvIHJ1bGUgPSBydWxlX2l0ZXJhdG9yLT5OZXh0KCk7Ci0tICAgICAgICBw YXR0ZXJuc190b19kZWxldGUuZW1wbGFjZV9iYWNrKHNldHRpbmdfdHlwZSwgcnVsZS0+cHJpbWFy eV9wYXR0ZXJuLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydWxl LT5zZWNvbmRhcnlfcGF0dGVybik7Ci0rICAgICAgICBwYXR0ZXJuc190b19kZWxldGUuZW1wbGFj ZV9iYWNrKCkgPSB7c2V0dGluZ190eXBlLCBydWxlLT5wcmltYXJ5X3BhdHRlcm4sCi0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bGUtPnNlY29uZGFyeV9wYXR0ZXJu fTsKLSAgICAgICAgIHBlcm1pc3Npb25zOjpQZXJtaXNzaW9uVW1hVXRpbDo6UmVjb3JkT25lVGlt ZVBlcm1pc3Npb25FdmVudCgKLSAgICAgICAgICAgICBzZXR0aW5nX3R5cGUsCi0gICAgICAgICAg ICAgcGVybWlzc2lvbnM6Ok9uZVRpbWVQZXJtaXNzaW9uRXZlbnQ6OkVYUElSRURfT05fU1VTUEVO RCk7Ci1AQCAtMzI5LDggKzMyOSw4IEBAIHZvaWQgT25lVGltZVBlcm1pc3Npb25Qcm92aWRlcjo6 RGVsZXRlRW4KLSAgICAgYXV0byBydWxlID0gcnVsZV9pdGVyYXRvci0+TmV4dCgpOwotICAgICBp ZiAocnVsZS0+cHJpbWFyeV9wYXR0ZXJuLk1hdGNoZXMob3JpZ2luX2d1cmwpICYmCi0gICAgICAg ICBydWxlLT5zZWNvbmRhcnlfcGF0dGVybi5NYXRjaGVzKG9yaWdpbl9ndXJsKSkgewotLSAgICAg IHBhdHRlcm5zX3RvX2RlbGV0ZS5lbXBsYWNlX2JhY2soCi0tICAgICAgICAgIGNvbnRlbnRfc2V0 dGluZ190eXBlLCBydWxlLT5wcmltYXJ5X3BhdHRlcm4sIHJ1bGUtPnNlY29uZGFyeV9wYXR0ZXJu KTsKLSsgICAgICBwYXR0ZXJuc190b19kZWxldGUuZW1wbGFjZV9iYWNrKCkgPSB7Ci0rICAgICAg ICAgIGNvbnRlbnRfc2V0dGluZ190eXBlLCBydWxlLT5wcmltYXJ5X3BhdHRlcm4sIHJ1bGUtPnNl Y29uZGFyeV9wYXR0ZXJufTsKLSAgICAgICBwZXJtaXNzaW9uczo6UGVybWlzc2lvblVtYVV0aWw6 OlJlY29yZE9uZVRpbWVQZXJtaXNzaW9uRXZlbnQoCi0gICAgICAgICAgIGNvbnRlbnRfc2V0dGlu Z190eXBlLCB0cmlnZ2VyX2V2ZW50KTsKLSAgICAgfQotZGlmZiAtdXAgY2hyb21pdW0tMTIwLjAu NjA5OS41Ni9jaHJvbWUvYnJvd3Nlci9lbnRlcnByaXNlL3Byb2ZpbGVfbWFuYWdlbWVudC9wcm9m aWxlX21hbmFnZW1lbnRfbmF2aWdhdGlvbl90aHJvdHRsZS5jYy5ub19tYXRjaGluZ19jb25zdHJ1 Y3RvciBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L2Nocm9tZS9icm93c2VyL2VudGVycHJpc2UvcHJv ZmlsZV9tYW5hZ2VtZW50L3Byb2ZpbGVfbWFuYWdlbWVudF9uYXZpZ2F0aW9uX3Rocm90dGxlLmNj Ci0tLS0gY2hyb21pdW0tMTIwLjAuNjA5OS41Ni9jaHJvbWUvYnJvd3Nlci9lbnRlcnByaXNlL3By b2ZpbGVfbWFuYWdlbWVudC9wcm9maWxlX21hbmFnZW1lbnRfbmF2aWdhdGlvbl90aHJvdHRsZS5j Yy5ub19tYXRjaGluZ19jb25zdHJ1Y3RvcgkyMDIzLTExLTI5IDIyOjM5OjQ4LjAwMDAwMDAwMCAr MDEwMAotKysrIGNocm9taXVtLTEyMC4wLjYwOTkuNTYvY2hyb21lL2Jyb3dzZXIvZW50ZXJwcmlz ZS9wcm9maWxlX21hbmFnZW1lbnQvcHJvZmlsZV9tYW5hZ2VtZW50X25hdmlnYXRpb25fdGhyb3R0 bGUuY2MJMjAyMy0xMi0wMyAxNzozMToyNS43NDk0MjAyMDggKzAxMDAKLUBAIC02Nyw4ICs2Nyw4 IEBAIGJhc2U6OmZsYXRfbWFwPHN0ZDo6c3RyaW5nLCBTQU1MUHJvZmlsZUEKLSAgIC8vIFRPRE8o Y3JidWcuY29tLzE0NDUwNzIpOiBBZGQgYWN0dWFsIGRvbWFpbnMgd2l0aCBhdHRyaWJ1dGUgbmFt ZXMuCi0gICBwcm9maWxlX2F0dHJpYnV0ZXMtPmluc2VydChzdGQ6Om1ha2VfcGFpcigKLSAgICAg ICAic3VwcG9ydGVkLnRlc3QiLAotLSAgICAgIFNBTUxQcm9maWxlQXR0cmlidXRlcygicGxhY2Vo b2xkZXJOYW1lIiwgInBsYWNlaG9sZGVyRG9tYWluIiwKLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgInBsYWNlaG9sZGVyVG9rZW4iKSkpOwotKyAgICAgIFNBTUxQcm9maWxlQXR0cmlidXRl c3sicGxhY2Vob2xkZXJOYW1lIiwgInBsYWNlaG9sZGVyRG9tYWluIiwKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgInBsYWNlaG9sZGVyVG9rZW4ifSkpOwotIAotICAgLy8gRXh0cmFjdCBk b21haW5zIGFuZCBhdHRyaWJ1dGVzIGZyb20gdGhlIGNvbW1hbmQgbGluZSBzd2l0Y2guCi0gICBj b25zdCBiYXNlOjpDb21tYW5kTGluZSYgY29tbWFuZF9saW5lID0KLWRpZmYgLXVwIGNocm9taXVt LTEyMC4wLjYwOTkuNTYvY2hyb21lL2Jyb3dzZXIvdWkvb21uaWJveC9jaHJvbWVfb21uaWJveF9j bGllbnQuY2Mubm9fbWF0Y2hpbmdfY29uc3RydWN0b3IgY2hyb21pdW0tMTIwLjAuNjA5OS41Ni9j aHJvbWUvYnJvd3Nlci91aS9vbW5pYm94L2Nocm9tZV9vbW5pYm94X2NsaWVudC5jYwotLS0tIGNo cm9taXVtLTEyMC4wLjYwOTkuNTYvY2hyb21lL2Jyb3dzZXIvdWkvb21uaWJveC9jaHJvbWVfb21u aWJveF9jbGllbnQuY2Mubm9fbWF0Y2hpbmdfY29uc3RydWN0b3IJMjAyMy0xMS0yOSAyMjozOTo1 Mi4wMDAwMDAwMDAgKzAxMDAKLSsrKyBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L2Nocm9tZS9icm93 c2VyL3VpL29tbmlib3gvY2hyb21lX29tbmlib3hfY2xpZW50LmNjCTIwMjMtMTItMDMgMTc6MzE6 MjUuNzQ5NDIwMjA4ICswMTAwCi1AQCAtNDc0LDEwICs0NzQsMTAgQEAgdm9pZCBDaHJvbWVPbW5p Ym94Q2xpZW50OjpPbkF1dG9jb21wbGV0ZQotICAgICAgICAgICAgICAgYWx0ZXJuYXRpdmVfbmF2 X21hdGNoKTsKLSAKLSAgIC8vIFN0b3JlIHRoZSBkZXRhaWxzIG5lY2Vzc2FyeSB0byBvcGVuIHRo ZSBvbW5pYm94IG1hdGNoIHZpYSBicm93c2VyIGNvbW1hbmRzLgotLSAgbG9jYXRpb25fYmFyXy0+ c2V0X25hdmlnYXRpb25fcGFyYW1zKExvY2F0aW9uQmFyOjpOYXZpZ2F0aW9uUGFyYW1zKAotKyAg bG9jYXRpb25fYmFyXy0+c2V0X25hdmlnYXRpb25fcGFyYW1zKExvY2F0aW9uQmFyOjpOYXZpZ2F0 aW9uUGFyYW1zewotICAgICAgIGRlc3RpbmF0aW9uX3VybCwgZGlzcG9zaXRpb24sIHRyYW5zaXRp b24sIG1hdGNoX3NlbGVjdGlvbl90aW1lc3RhbXAsCi0gICAgICAgZGVzdGluYXRpb25fdXJsX2Vu dGVyZWRfd2l0aG91dF9zY2hlbWUsCi0tICAgICAgZGVzdGluYXRpb25fdXJsX2VudGVyZWRfd2l0 aF9odHRwX3NjaGVtZSkpOwotKyAgICAgIGRlc3RpbmF0aW9uX3VybF9lbnRlcmVkX3dpdGhfaHR0 cF9zY2hlbWV9KTsKLSAKLSAgIGlmIChicm93c2VyXykgewotICAgICBhdXRvIG5hdmlnYXRpb24g PSBjaHJvbWU6Ok9wZW5DdXJyZW50VVJMKGJyb3dzZXJfKTsKLWRpZmYgLXVwIGNocm9taXVtLTEy MC4wLjYwOTkuNTYvY2hyb21lL2Jyb3dzZXIvdWkvc2FmZXR5X2h1Yi9tZW51X25vdGlmaWNhdGlv bl9zZXJ2aWNlLmNjLm5vX21hdGNoaW5nX2NvbnN0cnVjdG9yIGNocm9taXVtLTEyMC4wLjYwOTku NTYvY2hyb21lL2Jyb3dzZXIvdWkvc2FmZXR5X2h1Yi9tZW51X25vdGlmaWNhdGlvbl9zZXJ2aWNl LmNjCi0tLS0gY2hyb21pdW0tMTIwLjAuNjA5OS41Ni9jaHJvbWUvYnJvd3Nlci91aS9zYWZldHlf aHViL21lbnVfbm90aWZpY2F0aW9uX3NlcnZpY2UuY2Mubm9fbWF0Y2hpbmdfY29uc3RydWN0b3IJ MjAyMy0xMS0yOSAyMjozOTo1Mi4wMDAwMDAwMDAgKzAxMDAKLSsrKyBjaHJvbWl1bS0xMjAuMC42 MDk5LjU2L2Nocm9tZS9icm93c2VyL3VpL3NhZmV0eV9odWIvbWVudV9ub3RpZmljYXRpb25fc2Vy dmljZS5jYwkyMDIzLTEyLTAzIDE3OjMxOjI1Ljc1NjQyMDM0MiArMDEwMAotQEAgLTE0OCw4ICsx NDgsOCBAQCBTYWZldHlIdWJNZW51Tm90aWZpY2F0aW9uU2VydmljZTo6R2V0Tm90Ci0gICAvLyBU aGUgaW5mb3JtYXRpb24gcmVsYXRlZCB0byBzaG93aW5nIHRoZSBub3RpZmljYXRpb24gbmVlZHMg dG8gYmUgcGVyc2lzdGVkCi0gICAvLyBhcyB3ZWxsLgotICAgU2F2ZU5vdGlmaWNhdGlvbnNUb1By ZWZzKCk7Ci0tICByZXR1cm4gTWVudU5vdGlmaWNhdGlvbkVudHJ5KG5vdGlmaWNhdGlvbl90b19z aG93LT5HZXROb3RpZmljYXRpb25Db21tYW5kSWQoKSwKLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgbm90aWZpY2F0aW9uX3RvX3Nob3ctPkdldE5vdGlmaWNhdGlvblN0cmluZygpKTsK LSsgIHJldHVybiBNZW51Tm90aWZpY2F0aW9uRW50cnl7bm90aWZpY2F0aW9uX3RvX3Nob3ctPkdl dE5vdGlmaWNhdGlvbkNvbW1hbmRJZCgpLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBub3RpZmljYXRpb25fdG9fc2hvdy0+R2V0Tm90aWZpY2F0aW9uU3RyaW5nKCl9OwotIH0KLSAK LSBhYnNsOjpvcHRpb25hbDxSZXN1bHRNYXA+Ci1kaWZmIC11cCBjaHJvbWl1bS0xMjAuMC42MDk5 LjU2L2Nocm9tZS9icm93c2VyL3VpL3ZpZXdzL3Blcm1pc3Npb25zL2VtYmVkZGVkX3Blcm1pc3Np b25fcHJvbXB0X2Fza192aWV3LmNjLm5vX21hdGNoaW5nX2NvbnN0cnVjdG9yIGNocm9taXVtLTEy MC4wLjYwOTkuNTYvY2hyb21lL2Jyb3dzZXIvdWkvdmlld3MvcGVybWlzc2lvbnMvZW1iZWRkZWRf cGVybWlzc2lvbl9wcm9tcHRfYXNrX3ZpZXcuY2MKLS0tLSBjaHJvbWl1bS0xMjAuMC42MDk5LjU2 L2Nocm9tZS9icm93c2VyL3VpL3ZpZXdzL3Blcm1pc3Npb25zL2VtYmVkZGVkX3Blcm1pc3Npb25f cHJvbXB0X2Fza192aWV3LmNjLm5vX21hdGNoaW5nX2NvbnN0cnVjdG9yCTIwMjMtMTEtMjkgMjI6 Mzk6NTMuMDAwMDAwMDAwICswMTAwCi0rKysgY2hyb21pdW0tMTIwLjAuNjA5OS41Ni9jaHJvbWUv YnJvd3Nlci91aS92aWV3cy9wZXJtaXNzaW9ucy9lbWJlZGRlZF9wZXJtaXNzaW9uX3Byb21wdF9h c2tfdmlldy5jYwkyMDIzLTEyLTAzIDE3OjMxOjI1Ljc0OTQyMDIwOCArMDEwMAotQEAgLTU1LDEy ICs1NSwxMiBAQCBzdGQ6OnZlY3RvcjxFbWJlZGRlZFBlcm1pc3Npb25Qcm9tcHRBc2tWCi0gRW1i ZWRkZWRQZXJtaXNzaW9uUHJvbXB0QXNrVmlldzo6R2V0QnV0dG9uc0NvbmZpZ3VyYXRpb24oKSBj b25zdCB7Ci0gICBzdGQ6OnZlY3RvcjxCdXR0b25Db25maWd1cmF0aW9uPiBidXR0b25zOwotICAg aWYgKGJhc2U6OkZlYXR1cmVMaXN0OjpJc0VuYWJsZWQocGVybWlzc2lvbnM6OmZlYXR1cmVzOjpr T25lVGltZVBlcm1pc3Npb24pKSB7Ci0tICAgIGJ1dHRvbnMuZW1wbGFjZV9iYWNrKAotKyAgICBi dXR0b25zLmVtcGxhY2VfYmFjaygpID0gewotICAgICAgICAgbDEwbl91dGlsOjpHZXRTdHJpbmdV VEYxNihJRFNfUEVSTUlTU0lPTl9BTExPV19USElTX1RJTUUpLAotLSAgICAgICAgQnV0dG9uVHlw ZTo6a0FsbG93VGhpc1RpbWUsIHVpOjpCdXR0b25TdHlsZTo6a1RvbmFsKTsKLSsgICAgICAgIEJ1 dHRvblR5cGU6OmtBbGxvd1RoaXNUaW1lLCB1aTo6QnV0dG9uU3R5bGU6OmtUb25hbH07Ci0gICB9 Ci0tICBidXR0b25zLmVtcGxhY2VfYmFjayhsMTBuX3V0aWw6OkdldFN0cmluZ1VURjE2KElEU19Q RVJNSVNTSU9OX0FMTE9XKSwKLS0gICAgICAgICAgICAgICAgICAgICAgIEJ1dHRvblR5cGU6OmtB bGxvdywgdWk6OkJ1dHRvblN0eWxlOjprVG9uYWwsIGtBbGxvd0lkKTsKLSsgIGJ1dHRvbnMuZW1w bGFjZV9iYWNrKCkgPSB7bDEwbl91dGlsOjpHZXRTdHJpbmdVVEYxNihJRFNfUEVSTUlTU0lPTl9B TExPVyksCi0rICAgICAgICAgICAgICAgICAgICAgICBCdXR0b25UeXBlOjprQWxsb3csIHVpOjpC dXR0b25TdHlsZTo6a1RvbmFsLCBrQWxsb3dJZH07Ci0gICByZXR1cm4gYnV0dG9uczsKLSB9Ci0g Ci1kaWZmIC11cCBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L2Nocm9tZS9icm93c2VyL3VpL3ZpZXdz L3Blcm1pc3Npb25zL2VtYmVkZGVkX3Blcm1pc3Npb25fcHJvbXB0X2Jhc2Vfdmlldy5oLm5vX21h dGNoaW5nX2NvbnN0cnVjdG9yIGNocm9taXVtLTEyMC4wLjYwOTkuNTYvY2hyb21lL2Jyb3dzZXIv dWkvdmlld3MvcGVybWlzc2lvbnMvZW1iZWRkZWRfcGVybWlzc2lvbl9wcm9tcHRfYmFzZV92aWV3 LmgKLS0tLSBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L2Nocm9tZS9icm93c2VyL3VpL3ZpZXdzL3Bl cm1pc3Npb25zL2VtYmVkZGVkX3Blcm1pc3Npb25fcHJvbXB0X2Jhc2Vfdmlldy5oLm5vX21hdGNo aW5nX2NvbnN0cnVjdG9yCTIwMjMtMTEtMjkgMjI6Mzk6NTMuMDAwMDAwMDAwICswMTAwCi0rKysg Y2hyb21pdW0tMTIwLjAuNjA5OS41Ni9jaHJvbWUvYnJvd3Nlci91aS92aWV3cy9wZXJtaXNzaW9u cy9lbWJlZGRlZF9wZXJtaXNzaW9uX3Byb21wdF9iYXNlX3ZpZXcuaAkyMDIzLTEyLTAzIDE3OjMx OjI1Ljc1MDQyMDIyNyArMDEwMAotQEAgLTg2LDYgKzg2LDcgQEAgY2xhc3MgRW1iZWRkZWRQZXJt aXNzaW9uUHJvbXB0QmFzZVZpZXcgOgotICAgc3RydWN0IFJlcXVlc3RMaW5lQ29uZmlndXJhdGlv biB7Ci0gICAgIGNvbnN0IHJhd19wdHI8Y29uc3QgZ2Z4OjpWZWN0b3JJY29uPiBpY29uOwotICAg ICBzdGQ6OnUxNnN0cmluZyBtZXNzYWdlOwotKyAgICBSZXF1ZXN0TGluZUNvbmZpZ3VyYXRpb24o YXV0byBpLCBhdXRvIG0pIDogaWNvbihpKSwgbWVzc2FnZShtKSB7IH0KLSAgIH07Ci0gCi0gICBz dHJ1Y3QgQnV0dG9uQ29uZmlndXJhdGlvbiB7Ci1kaWZmIC11cCBjaHJvbWl1bS0xMjAuMC42MDk5 LjU2L2Nocm9tZS9icm93c2VyL3VpL3ZpZXdzL3Blcm1pc3Npb25zL2VtYmVkZGVkX3Blcm1pc3Np b25fcHJvbXB0X3BvbGljeV92aWV3LmNjLm5vX21hdGNoaW5nX2NvbnN0cnVjdG9yIGNocm9taXVt LTEyMC4wLjYwOTkuNTYvY2hyb21lL2Jyb3dzZXIvdWkvdmlld3MvcGVybWlzc2lvbnMvZW1iZWRk ZWRfcGVybWlzc2lvbl9wcm9tcHRfcG9saWN5X3ZpZXcuY2MKLS0tLSBjaHJvbWl1bS0xMjAuMC42 MDk5LjU2L2Nocm9tZS9icm93c2VyL3VpL3ZpZXdzL3Blcm1pc3Npb25zL2VtYmVkZGVkX3Blcm1p c3Npb25fcHJvbXB0X3BvbGljeV92aWV3LmNjLm5vX21hdGNoaW5nX2NvbnN0cnVjdG9yCTIwMjMt MTEtMjkgMjI6Mzk6NTMuMDAwMDAwMDAwICswMTAwCi0rKysgY2hyb21pdW0tMTIwLjAuNjA5OS41 Ni9jaHJvbWUvYnJvd3Nlci91aS92aWV3cy9wZXJtaXNzaW9ucy9lbWJlZGRlZF9wZXJtaXNzaW9u X3Byb21wdF9wb2xpY3lfdmlldy5jYwkyMDIzLTEyLTAzIDE3OjMxOjI1Ljc1MDQyMDIyNyArMDEw MAotQEAgLTQ4LDggKzQ4LDggQEAgRW1iZWRkZWRQZXJtaXNzaW9uUHJvbXB0UG9saWN5Vmlldzo6 R2V0UgotIHN0ZDo6dmVjdG9yPEVtYmVkZGVkUGVybWlzc2lvblByb21wdFBvbGljeVZpZXc6OkJ1 dHRvbkNvbmZpZ3VyYXRpb24+Ci0gRW1iZWRkZWRQZXJtaXNzaW9uUHJvbXB0UG9saWN5Vmlldzo6 R2V0QnV0dG9uc0NvbmZpZ3VyYXRpb24oKSBjb25zdCB7Ci0gICBzdGQ6OnZlY3RvcjxCdXR0b25D b25maWd1cmF0aW9uPiBidXR0b25zOwotLSAgYnV0dG9ucy5lbXBsYWNlX2JhY2sobDEwbl91dGls OjpHZXRTdHJpbmdVVEYxNihJRFNfRU1CRURERURfUFJPTVBUX09LX0xBQkVMKSwKLS0gICAgICAg ICAgICAgICAgICAgICAgIEJ1dHRvblR5cGU6OmtQb2xpY3lPSywgdWk6OkJ1dHRvblN0eWxlOjpr VG9uYWwpOwotKyAgYnV0dG9ucy5lbXBsYWNlX2JhY2soKSA9IHtsMTBuX3V0aWw6OkdldFN0cmlu Z1VURjE2KElEU19FTUJFRERFRF9QUk9NUFRfT0tfTEFCRUwpLAotKyAgICAgICAgICAgICAgICAg ICAgICAgQnV0dG9uVHlwZTo6a1BvbGljeU9LLCB1aTo6QnV0dG9uU3R5bGU6OmtUb25hbH07Ci0g ICByZXR1cm4gYnV0dG9uczsKLSB9Ci0gCi1kaWZmIC11cCBjaHJvbWl1bS0xMjAuMC42MDk5LjU2 L2Nocm9tZS90ZXN0L2Nocm9tZWRyaXZlci9jYXBhYmlsaXRpZXMuY2Mubm9fbWF0Y2hpbmdfY29u c3RydWN0b3IgY2hyb21pdW0tMTIwLjAuNjA5OS41Ni9jaHJvbWUvdGVzdC9jaHJvbWVkcml2ZXIv Y2FwYWJpbGl0aWVzLmNjCi0tLS0gY2hyb21pdW0tMTIwLjAuNjA5OS41Ni9jaHJvbWUvdGVzdC9j aHJvbWVkcml2ZXIvY2FwYWJpbGl0aWVzLmNjLm5vX21hdGNoaW5nX2NvbnN0cnVjdG9yCTIwMjMt MTEtMjkgMjI6Mzk6NTQuMDAwMDAwMDAwICswMTAwCi0rKysgY2hyb21pdW0tMTIwLjAuNjA5OS41 Ni9jaHJvbWUvdGVzdC9jaHJvbWVkcml2ZXIvY2FwYWJpbGl0aWVzLmNjCTIwMjMtMTItMDMgMTc6 MzE6MjUuNzUwNDIwMjI3ICswMTAwCi1AQCAtMzQ2LDcgKzM0Niw3IEBAIFN0YXR1cyBQYXJzZU1v YmlsZUVtdWxhdGlvbihjb25zdCBiYXNlOjoKLSAgICAgICAgICAgICAgICAgICAgICAgICAiJ3Zl cnNpb24nIGZpZWxkIG9mIHR5cGUgc3RyaW5nIik7Ci0gICAgICAgICB9Ci0gCi0tICAgICAgICBi cmFuZHMuZW1wbGFjZV9iYWNrKCpicmFuZCwgKnZlcnNpb24pOwotKyAgICAgICAgYnJhbmRzLmVt cGxhY2VfYmFjaygpID0geypicmFuZCwgKnZlcnNpb259OwotICAgICAgIH0KLSAKLSAgICAgICBj bGllbnRfaGludHMuYnJhbmRzID0gc3RkOjptb3ZlKGJyYW5kcyk7Ci1AQCAtMzg0LDcgKzM4NCw3 IEBAIFN0YXR1cyBQYXJzZU1vYmlsZUVtdWxhdGlvbihjb25zdCBiYXNlOjoKLSAgICAgICAgICAg ICAgICAgICAgICAgICAiYSAndmVyc2lvbicgZmllbGQgb2YgdHlwZSBzdHJpbmciKTsKLSAgICAg ICAgIH0KLSAKLS0gICAgICAgIGZ1bGxfdmVyc2lvbl9saXN0LmVtcGxhY2VfYmFjaygqYnJhbmQs ICp2ZXJzaW9uKTsKLSsgICAgICAgIGZ1bGxfdmVyc2lvbl9saXN0LmVtcGxhY2VfYmFjaygpID0g eypicmFuZCwgKnZlcnNpb259OwotICAgICAgIH0KLSAKLSAgICAgICBjbGllbnRfaGludHMuZnVs bF92ZXJzaW9uX2xpc3QgPSBzdGQ6Om1vdmUoZnVsbF92ZXJzaW9uX2xpc3QpOwotZGlmZiAtdXAg Y2hyb21pdW0tMTIwLjAuNjA5OS41Ni9jb21wb25lbnRzL2F1dG9maWxsL2NvcmUvYnJvd3Nlci9j b250YWN0X2luZm9fc3luY191dGlsLmNjLm5vX21hdGNoaW5nX2NvbnN0cnVjdG9yIGNocm9taXVt LTEyMC4wLjYwOTkuNTYvY29tcG9uZW50cy9hdXRvZmlsbC9jb3JlL2Jyb3dzZXIvY29udGFjdF9p bmZvX3N5bmNfdXRpbC5jYwotLS0tIGNocm9taXVtLTEyMC4wLjYwOTkuNTYvY29tcG9uZW50cy9h dXRvZmlsbC9jb3JlL2Jyb3dzZXIvY29udGFjdF9pbmZvX3N5bmNfdXRpbC5jYy5ub19tYXRjaGlu Z19jb25zdHJ1Y3RvcgkyMDIzLTExLTI5IDIyOjM5OjU3LjAwMDAwMDAwMCArMDEwMAotKysrIGNo cm9taXVtLTEyMC4wLjYwOTkuNTYvY29tcG9uZW50cy9hdXRvZmlsbC9jb3JlL2Jyb3dzZXIvY29u dGFjdF9pbmZvX3N5bmNfdXRpbC5jYwkyMDIzLTEyLTAzIDE3OjMxOjI1Ljc1MDQyMDIyNyArMDEw MAotQEAgLTE5Nyw5ICsxOTcsOSBAQCBjbGFzcyBDb250YWN0SW5mb1Byb2ZpbGVTZXR0ZXIgewot ICAgICAgIENIRUNLKG9ic2VydmF0aW9ucy5lbXB0eSgpKTsKLSAgICAgICBmb3IgKGNvbnN0IHN5 bmNfcGI6OkNvbnRhY3RJbmZvU3BlY2lmaWNzOjpPYnNlcnZhdGlvbiYgcHJvdG9fb2JzZXJ2YXRp b24gOgotICAgICAgICAgICAgbWV0YWRhdGEub2JzZXJ2YXRpb25zKCkpIHsKLS0gICAgICAgIG9i c2VydmF0aW9ucy5lbXBsYWNlX2JhY2socHJvdG9fb2JzZXJ2YXRpb24udHlwZSgpLAotKyAgICAg ICAgb2JzZXJ2YXRpb25zLmVtcGxhY2VfYmFjaygpID0ge3N0YXRpY19jYXN0PHVuc2lnbmVkIGNo YXI+KHByb3RvX29ic2VydmF0aW9uLnR5cGUoKSksCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFByb2ZpbGVUb2tlblF1YWxpdHk6OkZvcm1TaWduYXR1cmVIYXNoKAotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvdG9fb2JzZXJ2YXRpb24uZm9ybV9o YXNoKCkpKTsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3RvX29i c2VydmF0aW9uLmZvcm1faGFzaCgpKX07Ci0gICAgICAgfQotICAgICB9Ci0gICB9Ci1kaWZmIC11 cCBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L2NvbXBvbmVudHMvYXV0b2ZpbGwvY29yZS9icm93c2Vy L3dlYmRhdGEvYXV0b2ZpbGxfdGFibGUuY2Mubm9fbWF0Y2hpbmdfY29uc3RydWN0b3IgY2hyb21p dW0tMTIwLjAuNjA5OS41Ni9jb21wb25lbnRzL2F1dG9maWxsL2NvcmUvYnJvd3Nlci93ZWJkYXRh L2F1dG9maWxsX3RhYmxlLmNjCi0tLS0gY2hyb21pdW0tMTIwLjAuNjA5OS41Ni9jb21wb25lbnRz L2F1dG9maWxsL2NvcmUvYnJvd3Nlci93ZWJkYXRhL2F1dG9maWxsX3RhYmxlLmNjLm5vX21hdGNo aW5nX2NvbnN0cnVjdG9yCTIwMjMtMTEtMjkgMjI6Mzk6NTcuMDAwMDAwMDAwICswMTAwCi0rKysg Y2hyb21pdW0tMTIwLjAuNjA5OS41Ni9jb21wb25lbnRzL2F1dG9maWxsL2NvcmUvYnJvd3Nlci93 ZWJkYXRhL2F1dG9maWxsX3RhYmxlLmNjCTIwMjMtMTItMDMgMTc6MzE6MjUuNzUxNDIwMjQ2ICsw MTAwCi1AQCAtMTc2MywxMCArMTc2MywxMCBAQCBzdGQ6OnVuaXF1ZV9wdHI8QXV0b2ZpbGxQcm9m aWxlPiBBdXRvZmlsCi0gICAgIH0KLSAKLSAgICAgYmFzZTo6c3Bhbjxjb25zdCB1aW50OF90PiBv YnNlcnZhdGlvbnNfZGF0YSA9IHMuQ29sdW1uQmxvYigzKTsKLS0gICAgZmllbGRfdHlwZV92YWx1 ZXMuZW1wbGFjZV9iYWNrKAotKyAgICBmaWVsZF90eXBlX3ZhbHVlcy5lbXBsYWNlX2JhY2soKSA9 IHsKLSAgICAgICAgIHR5cGUsIHMuQ29sdW1uU3RyaW5nMTYoMSksIHMuQ29sdW1uSW50KDIpLAot ICAgICAgICAgc3RkOjp2ZWN0b3I8dWludDhfdD4ob2JzZXJ2YXRpb25zX2RhdGEuYmVnaW4oKSwK LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9ic2VydmF0aW9uc19kYXRhLmVuZCgpKSk7 Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvYnNlcnZhdGlvbnNfZGF0YS5lbmQoKSl9 OwotIAotICAgICBpZiAodHlwZSA9PSBBRERSRVNTX0hPTUVfQ09VTlRSWSkgewotICAgICAgIGNv dW50cnlfY29kZSA9IGJhc2U6OlVURjE2VG9VVEY4KHMuQ29sdW1uU3RyaW5nMTYoMSkpOwotZGlm ZiAtdXAgY2hyb21pdW0tMTIwLjAuNjA5OS41Ni9jb21wb25lbnRzL3Zpei9zZXJ2aWNlL2Rpc3Bs YXlfZW1iZWRkZXIvc2tpYV9vdXRwdXRfc3VyZmFjZV9pbXBsX29uX2dwdS5jYy5ub19tYXRjaGlu Z19jb25zdHJ1Y3RvciBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L2NvbXBvbmVudHMvdml6L3NlcnZp Y2UvZGlzcGxheV9lbWJlZGRlci9za2lhX291dHB1dF9zdXJmYWNlX2ltcGxfb25fZ3B1LmNjCi0t LS0gY2hyb21pdW0tMTIwLjAuNjA5OS41Ni9jb21wb25lbnRzL3Zpei9zZXJ2aWNlL2Rpc3BsYXlf ZW1iZWRkZXIvc2tpYV9vdXRwdXRfc3VyZmFjZV9pbXBsX29uX2dwdS5jYy5ub19tYXRjaGluZ19j b25zdHJ1Y3RvcgkyMDIzLTExLTI5IDIyOjQwOjAxLjAwMDAwMDAwMCArMDEwMAotKysrIGNocm9t aXVtLTEyMC4wLjYwOTkuNTYvY29tcG9uZW50cy92aXovc2VydmljZS9kaXNwbGF5X2VtYmVkZGVy L3NraWFfb3V0cHV0X3N1cmZhY2VfaW1wbF9vbl9ncHUuY2MJMjAyMy0xMi0wMyAxNzozMToyNS43 NTE0MjAyNDYgKzAxMDAKLUBAIC0xNTY3LDcgKzE1NjcsNyBAQCB2b2lkIFNraWFPdXRwdXRTdXJm YWNlSW1wbE9uR3B1OjpDb3B5T3V0Ci0gCi0gICAgICAgLy8gSXNzdWUgcmVhZGJhY2tzIGZyb20g dGhlIHN1cmZhY2VzOgotICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgQ29weU91dHB1dFJl c3VsdDo6a05WMTJNYXhQbGFuZXM7ICsraSkgewotLSAgICAgICAgU2tJU2l6ZSBzaXplKHBsYW5l X3N1cmZhY2VzW2ldLT53aWR0aCgpLCBwbGFuZV9zdXJmYWNlc1tpXS0+aGVpZ2h0KCkpOwotKyAg ICAgICAgU2tJU2l6ZSBzaXple3BsYW5lX3N1cmZhY2VzW2ldLT53aWR0aCgpLCBwbGFuZV9zdXJm YWNlc1tpXS0+aGVpZ2h0KCl9OwotICAgICAgICAgU2tJbWFnZUluZm8gZHN0X2luZm8gPSBTa0lt YWdlSW5mbzo6TWFrZSgKLSAgICAgICAgICAgICBzaXplLCAoaSA9PSAwKSA/IGtBbHBoYV84X1Nr Q29sb3JUeXBlIDoga1I4RzhfdW5vcm1fU2tDb2xvclR5cGUsCi0gICAgICAgICAgICAga1VucHJl bXVsX1NrQWxwaGFUeXBlKTsKLWRpZmYgLXVwIGNocm9taXVtLTEyMC4wLjYwOTkuNTYvY29udGVu dC9icm93c2VyL2Rvd25sb2FkL3NhdmVfcGFja2FnZS5jYy5ub19tYXRjaGluZ19jb25zdHJ1Y3Rv ciBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L2NvbnRlbnQvYnJvd3Nlci9kb3dubG9hZC9zYXZlX3Bh Y2thZ2UuY2MKLS0tLSBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L2NvbnRlbnQvYnJvd3Nlci9kb3du bG9hZC9zYXZlX3BhY2thZ2UuY2Mubm9fbWF0Y2hpbmdfY29uc3RydWN0b3IJMjAyMy0xMS0yOSAy Mjo0MDowMS4wMDAwMDAwMDAgKzAxMDAKLSsrKyBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L2NvbnRl bnQvYnJvd3Nlci9kb3dubG9hZC9zYXZlX3BhY2thZ2UuY2MJMjAyMy0xMi0wMyAxNzozMToyNS43 NTI0MjAyNjUgKzAxMDAKLUBAIC03NjcsOCArNzY3LDggQEAgdm9pZCBTYXZlUGFja2FnZTo6Rmlu aXNoKCkgewotICAgaWYgKGRvd25sb2FkXykgewotICAgICBzdGQ6OnZlY3Rvcjxkb3dubG9hZDo6 RG93bmxvYWRTYXZlSXRlbURhdGE6Okl0ZW1JbmZvPiBmaWxlczsKLSAgICAgZm9yIChhdXRvJiBp dGVtIDogc2F2ZWRfc3VjY2Vzc19pdGVtc18pIHsKLS0gICAgICBmaWxlcy5lbXBsYWNlX2JhY2so aXRlbS5zZWNvbmQtPmZ1bGxfcGF0aCgpLCBpdGVtLnNlY29uZC0+dXJsKCksCi0tICAgICAgICAg ICAgICAgICAgICAgICAgIGl0ZW0uc2Vjb25kLT5yZWZlcnJlcigpLnVybCk7Ci0rICAgICAgZmls ZXMuZW1wbGFjZV9iYWNrKCkgPSB7aXRlbS5zZWNvbmQtPmZ1bGxfcGF0aCgpLCBpdGVtLnNlY29u ZC0+dXJsKCksCi0rICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0uc2Vjb25kLT5yZWZlcnJl cigpLnVybH07Ci0gICAgIH0KLSAgICAgZG93bmxvYWQ6OkRvd25sb2FkU2F2ZUl0ZW1EYXRhOjpB dHRhY2hJdGVtRGF0YShkb3dubG9hZF8sIHN0ZDo6bW92ZShmaWxlcykpOwotICAgfQotZGlmZiAt dXAgY2hyb21pdW0tMTIwLjAuNjA5OS41Ni9jb250ZW50L2Jyb3dzZXIvaW50ZXJlc3RfZ3JvdXAv aW50ZXJlc3RfZ3JvdXBfc3RvcmFnZS5jYy5ub19tYXRjaGluZ19jb25zdHJ1Y3RvciBjaHJvbWl1 bS0xMjAuMC42MDk5LjU2L2NvbnRlbnQvYnJvd3Nlci9pbnRlcmVzdF9ncm91cC9pbnRlcmVzdF9n cm91cF9zdG9yYWdlLmNjCi0tLS0gY2hyb21pdW0tMTIwLjAuNjA5OS41Ni9jb250ZW50L2Jyb3dz ZXIvaW50ZXJlc3RfZ3JvdXAvaW50ZXJlc3RfZ3JvdXBfc3RvcmFnZS5jYy5ub19tYXRjaGluZ19j b25zdHJ1Y3RvcgkyMDIzLTExLTI5IDIyOjQwOjAxLjAwMDAwMDAwMCArMDEwMAotKysrIGNocm9t aXVtLTEyMC4wLjYwOTkuNTYvY29udGVudC9icm93c2VyL2ludGVyZXN0X2dyb3VwL2ludGVyZXN0 X2dyb3VwX3N0b3JhZ2UuY2MJMjAyMy0xMi0wMyAxNzozMToyNS43NTI0MjAyNjUgKzAxMDAKLUBA IC0zMDAyLDEwICszMDAyLDEwIEBAIERvR2V0S0Fub255bWl0eURhdGEoc3FsOjpEYXRhYmFzZSYg ZGIsCi0gCi0gICBzdGQ6OnZlY3RvcjxTdG9yYWdlSW50ZXJlc3RHcm91cDo6S0Fub255bWl0eURh dGE+IGtfYW5vbl9kYXRhOwotICAgd2hpbGUgKGludGVyZXN0X2dyb3VwX2thbm9uX3F1ZXJ5LlN0 ZXAoKSkgewotLSAgICBrX2Fub25fZGF0YS5lbXBsYWNlX2JhY2soCi0rICAgIGtfYW5vbl9kYXRh LmVtcGxhY2VfYmFjaygpID0gewotICAgICAgICAgLyprZXk9Ki9pbnRlcmVzdF9ncm91cF9rYW5v bl9xdWVyeS5Db2x1bW5TdHJpbmcoMCksCi0gICAgICAgICAvKmlzX2tfYW5vbnltb3VzPSovaW50 ZXJlc3RfZ3JvdXBfa2Fub25fcXVlcnkuQ29sdW1uQm9vbCgxKSwKLS0gICAgICAgIC8qbGFzdF91 cGRhdGVkPSovaW50ZXJlc3RfZ3JvdXBfa2Fub25fcXVlcnkuQ29sdW1uVGltZSgyKSk7Ci0rICAg ICAgICAvKmxhc3RfdXBkYXRlZD0qL2ludGVyZXN0X2dyb3VwX2thbm9uX3F1ZXJ5LkNvbHVtblRp bWUoMil9OwotICAgfQotICAgaWYgKCFpbnRlcmVzdF9ncm91cF9rYW5vbl9xdWVyeS5TdWNjZWVk ZWQoKSkgewotICAgICByZXR1cm4gYWJzbDo6bnVsbG9wdDsKLWRpZmYgLXVwIGNocm9taXVtLTEy MC4wLjYwOTkuNTYvbmV0L2Rucy9ob3N0X3Jlc29sdmVyX2NhY2hlLmNjLm5vX21hdGNoaW5nX2Nv bnN0cnVjdG9yIGNocm9taXVtLTEyMC4wLjYwOTkuNTYvbmV0L2Rucy9ob3N0X3Jlc29sdmVyX2Nh Y2hlLmNjCi0tLS0gY2hyb21pdW0tMTIwLjAuNjA5OS41Ni9uZXQvZG5zL2hvc3RfcmVzb2x2ZXJf Y2FjaGUuY2Mubm9fbWF0Y2hpbmdfY29uc3RydWN0b3IJMjAyMy0xMS0yOSAyMjo0MDowNy4wMDAw MDAwMDAgKzAxMDAKLSsrKyBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L25ldC9kbnMvaG9zdF9yZXNv bHZlcl9jYWNoZS5jYwkyMDIzLTEyLTAzIDE3OjMxOjI1Ljc1NDQyMDMwMyArMDEwMAotQEAgLTM2 OCw3ICszNjgsNyBAQCB2b2lkIEhvc3RSZXNvbHZlckNhY2hlOjpTZXQoCi0gCi0gICBzdGQ6OnN0 cmluZyBkb21haW5fbmFtZSA9IHJlc3VsdC0+ZG9tYWluX25hbWUoKTsKLSAgIGVudHJpZXNfLmVt cGxhY2UoCi0tICAgICAgS2V5KHN0ZDo6bW92ZShkb21haW5fbmFtZSksIG5ldHdvcmtfYW5vbnlt aXphdGlvbl9rZXkpLAotKyAgICAgIEtleXtzdGQ6Om1vdmUoZG9tYWluX25hbWUpLCBuZXR3b3Jr X2Fub255bWl6YXRpb25fa2V5fSwKLSAgICAgICBFbnRyeShzdGQ6Om1vdmUocmVzdWx0KSwgc291 cmNlLCBzZWN1cmUsIHN0YWxlbmVzc19nZW5lcmF0aW9uKSk7Ci0gCi0gICBpZiAoZW50cmllc18u c2l6ZSgpID4gbWF4X2VudHJpZXNfKSB7Ci1kaWZmIC11cCBjaHJvbWl1bS0xMjAuMC42MDk5LjU2 L3RoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL3BsYXRmb3JtL2ZvbnRzL2ZvbnRfcGFsZXR0ZS5o Lm5vX21hdGNoaW5nX2NvbnN0cnVjdG9yIGNocm9taXVtLTEyMC4wLjYwOTkuNTYvdGhpcmRfcGFy dHkvYmxpbmsvcmVuZGVyZXIvcGxhdGZvcm0vZm9udHMvZm9udF9wYWxldHRlLmgKLS0tLSBjaHJv bWl1bS0xMjAuMC42MDk5LjU2L3RoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL3BsYXRmb3JtL2Zv bnRzL2ZvbnRfcGFsZXR0ZS5oLm5vX21hdGNoaW5nX2NvbnN0cnVjdG9yCTIwMjMtMTEtMjkgMjI6 NDA6MTIuMDAwMDAwMDAwICswMTAwCi0rKysgY2hyb21pdW0tMTIwLjAuNjA5OS41Ni90aGlyZF9w YXJ0eS9ibGluay9yZW5kZXJlci9wbGF0Zm9ybS9mb250cy9mb250X3BhbGV0dGUuaAkyMDIzLTEy LTAzIDE3OjMxOjI1Ljc1NDQyMDMwMyArMDEwMAotQEAgLTk2LDcgKzk2LDcgQEAgY2xhc3MgUExB VEZPUk1fRVhQT1JUIEZvbnRQYWxldHRlIDogcHVibAotICAgICAgIENvbG9yOjpDb2xvclNwYWNl IGNvbG9yX2ludGVycG9sYXRpb25fc3BhY2UsCi0gICAgICAgYWJzbDo6b3B0aW9uYWw8Q29sb3I6 Okh1ZUludGVycG9sYXRpb25NZXRob2Q+IGh1ZV9pbnRlcnBvbGF0aW9uX21ldGhvZCkgewotICAg ICByZXR1cm4gYmFzZTo6QWRvcHRSZWYobmV3IEZvbnRQYWxldHRlKAotLSAgICAgICAgc3RhcnQs IGVuZCwgTm9uTm9ybWFsaXplZFBlcmNlbnRhZ2VzKHN0YXJ0X3BlcmNlbnRhZ2UsIGVuZF9wZXJj ZW50YWdlKSwKLSsgICAgICAgIHN0YXJ0LCBlbmQsIE5vbk5vcm1hbGl6ZWRQZXJjZW50YWdlc3tz dGFydF9wZXJjZW50YWdlLCBlbmRfcGVyY2VudGFnZX0sCi0gICAgICAgICBub3JtYWxpemVkX3Bl cmNlbnRhZ2UsIGFscGhhX211bHRpcGxpZXIsIGNvbG9yX2ludGVycG9sYXRpb25fc3BhY2UsCi0g ICAgICAgICBodWVfaW50ZXJwb2xhdGlvbl9tZXRob2QpKTsKLSAgIH0KLUBAIC0xNzAsNyArMTcw LDcgQEAgY2xhc3MgUExBVEZPUk1fRVhQT1JUIEZvbnRQYWxldHRlIDogcHVibAotICAgICAgIGRv dWJsZSBub3JtYWxpemVkX3BlcmNlbnRhZ2UpIHsKLSAgICAgZG91YmxlIGVuZF9wZXJjZW50YWdl ID0gbm9ybWFsaXplZF9wZXJjZW50YWdlICogMTAwLjA7Ci0gICAgIGRvdWJsZSBzdGFydF9wZXJj ZW50YWdlID0gMTAwLjAgLSBlbmRfcGVyY2VudGFnZTsKLS0gICAgcmV0dXJuIE5vbk5vcm1hbGl6 ZWRQZXJjZW50YWdlcyhzdGFydF9wZXJjZW50YWdlLCBlbmRfcGVyY2VudGFnZSk7Ci0rICAgIHJl dHVybiBOb25Ob3JtYWxpemVkUGVyY2VudGFnZXN7c3RhcnRfcGVyY2VudGFnZSwgZW5kX3BlcmNl bnRhZ2V9OwotICAgfQotIAotICAgZG91YmxlIEdldEFscGhhTXVsdGlwbGllcigpIGNvbnN0IHsK LWRpZmYgLXVwIGNocm9taXVtLTEyMC4wLjYwOTkuNTYvdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVy ZXIvcGxhdGZvcm0vZm9udHMvcGFsZXR0ZV9pbnRlcnBvbGF0aW9uLmNjLm5vX21hdGNoaW5nX2Nv bnN0cnVjdG9yIGNocm9taXVtLTEyMC4wLjYwOTkuNTYvdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVy ZXIvcGxhdGZvcm0vZm9udHMvcGFsZXR0ZV9pbnRlcnBvbGF0aW9uLmNjCi0tLS0gY2hyb21pdW0t MTIwLjAuNjA5OS41Ni90aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9wbGF0Zm9ybS9mb250cy9w YWxldHRlX2ludGVycG9sYXRpb24uY2Mubm9fbWF0Y2hpbmdfY29uc3RydWN0b3IJMjAyMy0xMS0y OSAyMjo0MDoxMi4wMDAwMDAwMDAgKzAxMDAKLSsrKyBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L3Ro aXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL3BsYXRmb3JtL2ZvbnRzL3BhbGV0dGVfaW50ZXJwb2xh dGlvbi5jYwkyMDIzLTEyLTAzIDE3OjMxOjI1Ljc1NTQyMDMyMyArMDEwMAotQEAgLTMxLDcgKzMx LDcgQEAgVmVjdG9yPEZvbnRQYWxldHRlOjpGb250UGFsZXR0ZU92ZXJyaWRlPgotICAgICAgICAg Y29sb3JfaW50ZXJwb2xhdGlvbl9zcGFjZSwgaHVlX2ludGVycG9sYXRpb25fbWV0aG9kLCBzdGFy dF9jb2xvciwKLSAgICAgICAgIGVuZF9jb2xvciwgcGVyY2VudGFnZSwgYWxwaGFfbXVsdGlwbGll cik7Ci0gCi0tICAgIEZvbnRQYWxldHRlOjpGb250UGFsZXR0ZU92ZXJyaWRlIHJlc3VsdF9jb2xv cl9yZWNvcmQoaSwgcmVzdWx0X2NvbG9yKTsKLSsgICAgRm9udFBhbGV0dGU6OkZvbnRQYWxldHRl T3ZlcnJpZGUgcmVzdWx0X2NvbG9yX3JlY29yZHtzdGF0aWNfY2FzdDxpbnQ+KGkpLCByZXN1bHRf Y29sb3J9OwotICAgICByZXN1bHRfY29sb3JfcmVjb3Jkcy5wdXNoX2JhY2socmVzdWx0X2NvbG9y X3JlY29yZCk7Ci0gICB9Ci0gICByZXR1cm4gcmVzdWx0X2NvbG9yX3JlY29yZHM7Ci1kaWZmIC11 cCBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L3RoaXJkX3BhcnR5L3BkZml1bS9jb3JlL2ZwZGZhcGkv cmVuZGVyL2NwZGZfcmVuZGVyc3RhdHVzLmNwcC5ub19tYXRjaGluZ19jb25zdHJ1Y3RvciBjaHJv bWl1bS0xMjAuMC42MDk5LjU2L3RoaXJkX3BhcnR5L3BkZml1bS9jb3JlL2ZwZGZhcGkvcmVuZGVy L2NwZGZfcmVuZGVyc3RhdHVzLmNwcAotLS0tIGNocm9taXVtLTEyMC4wLjYwOTkuNTYvdGhpcmRf cGFydHkvcGRmaXVtL2NvcmUvZnBkZmFwaS9yZW5kZXIvY3BkZl9yZW5kZXJzdGF0dXMuY3BwLm5v X21hdGNoaW5nX2NvbnN0cnVjdG9yCTIwMjMtMTEtMjkgMjI6NDE6NDYuMDAwMDAwMDAwICswMTAw Ci0rKysgY2hyb21pdW0tMTIwLjAuNjA5OS41Ni90aGlyZF9wYXJ0eS9wZGZpdW0vY29yZS9mcGRm YXBpL3JlbmRlci9jcGRmX3JlbmRlcnN0YXR1cy5jcHAJMjAyMy0xMi0wMyAxNzozMToyNS43NTY0 MjAzNDIgKzAxMDAKLUBAIC00OTEsNyArNDkxLDcgQEAgdm9pZCBDUERGX1JlbmRlclN0YXR1czo6 UHJvY2Vzc0NsaXBQYXRoKAotICAgICB9IGVsc2UgewotICAgICAgIG1fcERldmljZS0+U2V0Q2xp cF9QYXRoRmlsbCgKLSAgICAgICAgICAgKnBQYXRoLCAmbXRPYmoyRGV2aWNlLAotLSAgICAgICAg ICBDRlhfRmlsbFJlbmRlck9wdGlvbnMoQ2xpcFBhdGguR2V0Q2xpcFR5cGUoaSkpKTsKLSsgICAg ICAgICAgQ0ZYX0ZpbGxSZW5kZXJPcHRpb25ze0NsaXBQYXRoLkdldENsaXBUeXBlKGkpfSk7Ci0g ICAgIH0KLSAgIH0KLSAKLWRpZmYgLXVwIGNocm9taXVtLTEyMC4wLjYwOTkuNTYvdWkvYmFzZS93 YXlsYW5kL2NvbG9yX21hbmFnZXJfdXRpbC5oLm5vX21hdGNoaW5nX2NvbnN0cnVjdG9yIGNocm9t aXVtLTEyMC4wLjYwOTkuNTYvdWkvYmFzZS93YXlsYW5kL2NvbG9yX21hbmFnZXJfdXRpbC5oCi0t LS0gY2hyb21pdW0tMTIwLjAuNjA5OS41Ni91aS9iYXNlL3dheWxhbmQvY29sb3JfbWFuYWdlcl91 dGlsLmgubm9fbWF0Y2hpbmdfY29uc3RydWN0b3IJMjAyMy0xMS0yOSAyMjo0MDo0NC4wMDAwMDAw MDAgKzAxMDAKLSsrKyBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L3VpL2Jhc2Uvd2F5bGFuZC9jb2xv cl9tYW5hZ2VyX3V0aWwuaAkyMDIzLTEyLTAzIDE3OjMxOjI1Ljc1NTQyMDMyMyArMDEwMAotQEAg LTUyLDUzICs1Miw1MyBAQCBjb25zdGV4cHIgYXV0byBrQ2hyb21hdGljaXR5TWFwID0gYmFzZTo6 Ci0gICAgIHpjcl9jb2xvcl9tYW5hZ2VyX3YxX2Nocm9tYXRpY2l0eV9uYW1lcywKLSAgICAgUHJp bWFyeVZlcnNpb24+KAotICAgICB7e1pDUl9DT0xPUl9NQU5BR0VSX1YxX0NIUk9NQVRJQ0lUWV9O QU1FU19CVDYwMV81MjVfTElORSwKLS0gICAgICBQcmltYXJ5VmVyc2lvbihnZng6OkNvbG9yU3Bh Y2U6OlByaW1hcnlJRDo6U01QVEUxNzBNLAotLSAgICAgICAgICAgICAgICAgICAgIGtEZWZhdWx0 U2luY2VWZXJzaW9uKX0sCi0rICAgICAgUHJpbWFyeVZlcnNpb257Z2Z4OjpDb2xvclNwYWNlOjpQ cmltYXJ5SUQ6OlNNUFRFMTcwTSwKLSsgICAgICAgICAgICAgICAgICAgICBrRGVmYXVsdFNpbmNl VmVyc2lvbn19LAotICAgICAge1pDUl9DT0xPUl9NQU5BR0VSX1YxX0NIUk9NQVRJQ0lUWV9OQU1F U19CVDYwMV82MjVfTElORSwKLS0gICAgICBQcmltYXJ5VmVyc2lvbihnZng6OkNvbG9yU3BhY2U6 OlByaW1hcnlJRDo6QlQ0NzBCRywKLS0gICAgICAgICAgICAgICAgICAgICBrRGVmYXVsdFNpbmNl VmVyc2lvbil9LAotKyAgICAgIFByaW1hcnlWZXJzaW9ue2dmeDo6Q29sb3JTcGFjZTo6UHJpbWFy eUlEOjpCVDQ3MEJHLAotKyAgICAgICAgICAgICAgICAgICAgIGtEZWZhdWx0U2luY2VWZXJzaW9u fX0sCi0gICAgICB7WkNSX0NPTE9SX01BTkFHRVJfVjFfQ0hST01BVElDSVRZX05BTUVTX1NNUFRF MTcwTSwKLS0gICAgICBQcmltYXJ5VmVyc2lvbihnZng6OkNvbG9yU3BhY2U6OlByaW1hcnlJRDo6 U01QVEUxNzBNLAotLSAgICAgICAgICAgICAgICAgICAgIGtEZWZhdWx0U2luY2VWZXJzaW9uKX0s Ci0rICAgICAgUHJpbWFyeVZlcnNpb257Z2Z4OjpDb2xvclNwYWNlOjpQcmltYXJ5SUQ6OlNNUFRF MTcwTSwKLSsgICAgICAgICAgICAgICAgICAgICBrRGVmYXVsdFNpbmNlVmVyc2lvbn19LAotICAg ICAge1pDUl9DT0xPUl9NQU5BR0VSX1YxX0NIUk9NQVRJQ0lUWV9OQU1FU19CVDcwOSwKLS0gICAg ICBQcmltYXJ5VmVyc2lvbihnZng6OkNvbG9yU3BhY2U6OlByaW1hcnlJRDo6QlQ3MDksIGtEZWZh dWx0U2luY2VWZXJzaW9uKX0sCi0rICAgICAgUHJpbWFyeVZlcnNpb257Z2Z4OjpDb2xvclNwYWNl OjpQcmltYXJ5SUQ6OkJUNzA5LCBrRGVmYXVsdFNpbmNlVmVyc2lvbn19LAotICAgICAge1pDUl9D T0xPUl9NQU5BR0VSX1YxX0NIUk9NQVRJQ0lUWV9OQU1FU19CVDIwMjAsCi0tICAgICAgUHJpbWFy eVZlcnNpb24oZ2Z4OjpDb2xvclNwYWNlOjpQcmltYXJ5SUQ6OkJUMjAyMCwga0RlZmF1bHRTaW5j ZVZlcnNpb24pfSwKLSsgICAgICBQcmltYXJ5VmVyc2lvbntnZng6OkNvbG9yU3BhY2U6OlByaW1h cnlJRDo6QlQyMDIwLCBrRGVmYXVsdFNpbmNlVmVyc2lvbn19LAotICAgICAge1pDUl9DT0xPUl9N QU5BR0VSX1YxX0NIUk9NQVRJQ0lUWV9OQU1FU19TUkdCLAotLSAgICAgIFByaW1hcnlWZXJzaW9u KGdmeDo6Q29sb3JTcGFjZTo6UHJpbWFyeUlEOjpCVDcwOSwga0RlZmF1bHRTaW5jZVZlcnNpb24p fSwKLSsgICAgICBQcmltYXJ5VmVyc2lvbntnZng6OkNvbG9yU3BhY2U6OlByaW1hcnlJRDo6QlQ3 MDksIGtEZWZhdWx0U2luY2VWZXJzaW9ufX0sCi0gICAgICB7WkNSX0NPTE9SX01BTkFHRVJfVjFf Q0hST01BVElDSVRZX05BTUVTX0RJU1BMQVlQMywKLS0gICAgICBQcmltYXJ5VmVyc2lvbihnZng6 OkNvbG9yU3BhY2U6OlByaW1hcnlJRDo6UDMsIGtEZWZhdWx0U2luY2VWZXJzaW9uKX0sCi0rICAg ICAgUHJpbWFyeVZlcnNpb257Z2Z4OjpDb2xvclNwYWNlOjpQcmltYXJ5SUQ6OlAzLCBrRGVmYXVs dFNpbmNlVmVyc2lvbn19LAotICAgICAge1pDUl9DT0xPUl9NQU5BR0VSX1YxX0NIUk9NQVRJQ0lU WV9OQU1FU19BRE9CRVJHQiwKLS0gICAgICBQcmltYXJ5VmVyc2lvbihnZng6OkNvbG9yU3BhY2U6 OlByaW1hcnlJRDo6QURPQkVfUkdCLAotLSAgICAgICAgICAgICAgICAgICAgIGtEZWZhdWx0U2lu Y2VWZXJzaW9uKX0sCi0rICAgICAgUHJpbWFyeVZlcnNpb257Z2Z4OjpDb2xvclNwYWNlOjpQcmlt YXJ5SUQ6OkFET0JFX1JHQiwKLSsgICAgICAgICAgICAgICAgICAgICBrRGVmYXVsdFNpbmNlVmVy c2lvbn19LAotICAgICAge1pDUl9DT0xPUl9NQU5BR0VSX1YxX0NIUk9NQVRJQ0lUWV9OQU1FU19X SURFX0dBTVVUX0NPTE9SX1NQSU4sCi0tICAgICAgUHJpbWFyeVZlcnNpb24oCi0rICAgICAgUHJp bWFyeVZlcnNpb257Ci0gICAgICAgICAgIGdmeDo6Q29sb3JTcGFjZTo6UHJpbWFyeUlEOjpXSURF X0dBTVVUX0NPTE9SX1NQSU4sCi0tICAgICAgICAgIFpDUl9DT0xPUl9NQU5BR0VSX1YxX0NIUk9N QVRJQ0lUWV9OQU1FU19XSURFX0dBTVVUX0NPTE9SX1NQSU5fU0lOQ0VfVkVSU0lPTil9LAotKyAg ICAgICAgICBaQ1JfQ09MT1JfTUFOQUdFUl9WMV9DSFJPTUFUSUNJVFlfTkFNRVNfV0lERV9HQU1V VF9DT0xPUl9TUElOX1NJTkNFX1ZFUlNJT059fSwKLSAgICAgIHtaQ1JfQ09MT1JfTUFOQUdFUl9W MV9DSFJPTUFUSUNJVFlfTkFNRVNfQlQ0NzBNLAotLSAgICAgIFByaW1hcnlWZXJzaW9uKAotKyAg ICAgIFByaW1hcnlWZXJzaW9uewotICAgICAgICAgICBnZng6OkNvbG9yU3BhY2U6OlByaW1hcnlJ RDo6QlQ0NzBNLAotLSAgICAgICAgICBaQ1JfQ09MT1JfTUFOQUdFUl9WMV9DSFJPTUFUSUNJVFlf TkFNRVNfQlQ0NzBNX1NJTkNFX1ZFUlNJT04pfSwKLSsgICAgICAgICAgWkNSX0NPTE9SX01BTkFH RVJfVjFfQ0hST01BVElDSVRZX05BTUVTX0JUNDcwTV9TSU5DRV9WRVJTSU9OfX0sCi0gICAgICB7 WkNSX0NPTE9SX01BTkFHRVJfVjFfQ0hST01BVElDSVRZX05BTUVTX1NNUFRFMjQwTSwKLS0gICAg ICBQcmltYXJ5VmVyc2lvbigKLSsgICAgICBQcmltYXJ5VmVyc2lvbnsKLSAgICAgICAgICAgZ2Z4 OjpDb2xvclNwYWNlOjpQcmltYXJ5SUQ6OlNNUFRFMjQwTSwKLS0gICAgICAgICAgWkNSX0NPTE9S X01BTkFHRVJfVjFfQ0hST01BVElDSVRZX05BTUVTX1NNUFRFMjQwTV9TSU5DRV9WRVJTSU9OKX0s Ci0rICAgICAgICAgIFpDUl9DT0xPUl9NQU5BR0VSX1YxX0NIUk9NQVRJQ0lUWV9OQU1FU19TTVBU RTI0ME1fU0lOQ0VfVkVSU0lPTn19LAotICAgICAge1pDUl9DT0xPUl9NQU5BR0VSX1YxX0NIUk9N QVRJQ0lUWV9OQU1FU19YWVpfRDUwLAotLSAgICAgIFByaW1hcnlWZXJzaW9uKAotKyAgICAgIFBy aW1hcnlWZXJzaW9uewotICAgICAgICAgICBnZng6OkNvbG9yU3BhY2U6OlByaW1hcnlJRDo6WFla X0Q1MCwKLS0gICAgICAgICAgWkNSX0NPTE9SX01BTkFHRVJfVjFfQ0hST01BVElDSVRZX05BTUVT X1hZWl9ENTBfU0lOQ0VfVkVSU0lPTil9LAotKyAgICAgICAgICBaQ1JfQ09MT1JfTUFOQUdFUl9W MV9DSFJPTUFUSUNJVFlfTkFNRVNfWFlaX0Q1MF9TSU5DRV9WRVJTSU9OfX0sCi0gICAgICB7WkNS X0NPTE9SX01BTkFHRVJfVjFfQ0hST01BVElDSVRZX05BTUVTX1NNUFRFU1Q0MjhfMSwKLS0gICAg ICBQcmltYXJ5VmVyc2lvbigKLSsgICAgICBQcmltYXJ5VmVyc2lvbnsKLSAgICAgICAgICAgZ2Z4 OjpDb2xvclNwYWNlOjpQcmltYXJ5SUQ6OlNNUFRFU1Q0MjhfMSwKLS0gICAgICAgICAgWkNSX0NP TE9SX01BTkFHRVJfVjFfQ0hST01BVElDSVRZX05BTUVTX1NNUFRFU1Q0MjhfMV9TSU5DRV9WRVJT SU9OKX0sCi0rICAgICAgICAgIFpDUl9DT0xPUl9NQU5BR0VSX1YxX0NIUk9NQVRJQ0lUWV9OQU1F U19TTVBURVNUNDI4XzFfU0lOQ0VfVkVSU0lPTn19LAotICAgICAge1pDUl9DT0xPUl9NQU5BR0VS X1YxX0NIUk9NQVRJQ0lUWV9OQU1FU19TTVBURVNUNDMxXzIsCi0tICAgICAgUHJpbWFyeVZlcnNp b24oCi0rICAgICAgUHJpbWFyeVZlcnNpb257Ci0gICAgICAgICAgIGdmeDo6Q29sb3JTcGFjZTo6 UHJpbWFyeUlEOjpTTVBURVNUNDMxXzIsCi0tICAgICAgICAgIFpDUl9DT0xPUl9NQU5BR0VSX1Yx X0NIUk9NQVRJQ0lUWV9OQU1FU19TTVBURVNUNDMxXzJfU0lOQ0VfVkVSU0lPTil9LAotKyAgICAg ICAgICBaQ1JfQ09MT1JfTUFOQUdFUl9WMV9DSFJPTUFUSUNJVFlfTkFNRVNfU01QVEVTVDQzMV8y X1NJTkNFX1ZFUlNJT059fSwKLSAgICAgIHtaQ1JfQ09MT1JfTUFOQUdFUl9WMV9DSFJPTUFUSUNJ VFlfTkFNRVNfRklMTSwKLS0gICAgICBQcmltYXJ5VmVyc2lvbigKLSsgICAgICBQcmltYXJ5VmVy c2lvbnsKLSAgICAgICAgICAgZ2Z4OjpDb2xvclNwYWNlOjpQcmltYXJ5SUQ6OkZJTE0sCi0tICAg ICAgICAgIFpDUl9DT0xPUl9NQU5BR0VSX1YxX0NIUk9NQVRJQ0lUWV9OQU1FU19GSUxNX1NJTkNF X1ZFUlNJT04pfX0pOwotKyAgICAgICAgICBaQ1JfQ09MT1JfTUFOQUdFUl9WMV9DSFJPTUFUSUNJ VFlfTkFNRVNfRklMTV9TSU5DRV9WRVJTSU9OfX19KTsKLSAKLSAvLyBBIG1hcCBmcm9tIHRoZSB6 Y3JfY29sb3JfbWFuYWdlcl92MSBlb3RmX25hbWVzIGVudW0gdmFsdWVzCi0gLy8gcmVwcmVzZW50 aW5nIHdlbGwta25vd24gRU9URnMsIHRvIHRoZWlyIGVxdWl2YWxlbnQgVHJhbnNmZXJJRHMuCi1A QCAtMTA3LDY4ICsxMDcsNjggQEAgY29uc3RleHByIGF1dG8ga0VvdGZNYXAgPSBiYXNlOjpNYWtl Rml4ZQotICAgICB6Y3JfY29sb3JfbWFuYWdlcl92MV9lb3RmX25hbWVzLAotICAgICBUcmFuc2Zl clZlcnNpb24+KHsKLSAgICAge1pDUl9DT0xPUl9NQU5BR0VSX1YxX0VPVEZfTkFNRVNfTElORUFS LAotLSAgICAgVHJhbnNmZXJWZXJzaW9uKGdmeDo6Q29sb3JTcGFjZTo6VHJhbnNmZXJJRDo6TElO RUFSLAotLSAgICAgICAgICAgICAgICAgICAgIGtEZWZhdWx0U2luY2VWZXJzaW9uKX0sCi0rICAg ICBUcmFuc2ZlclZlcnNpb257Z2Z4OjpDb2xvclNwYWNlOjpUcmFuc2ZlcklEOjpMSU5FQVIsCi0r ICAgICAgICAgICAgICAgICAgICAga0RlZmF1bHRTaW5jZVZlcnNpb259fSwKLSAgICAge1pDUl9D T0xPUl9NQU5BR0VSX1YxX0VPVEZfTkFNRVNfU1JHQiwKLS0gICAgIFRyYW5zZmVyVmVyc2lvbihn Zng6OkNvbG9yU3BhY2U6OlRyYW5zZmVySUQ6OlNSR0IsIGtEZWZhdWx0U2luY2VWZXJzaW9uKX0s Ci0rICAgICBUcmFuc2ZlclZlcnNpb257Z2Z4OjpDb2xvclNwYWNlOjpUcmFuc2ZlcklEOjpTUkdC LCBrRGVmYXVsdFNpbmNlVmVyc2lvbn19LAotICAgICB7WkNSX0NPTE9SX01BTkFHRVJfVjFfRU9U Rl9OQU1FU19TUkdCX0hEUiwKLS0gICAgIFRyYW5zZmVyVmVyc2lvbihnZng6OkNvbG9yU3BhY2U6 OlRyYW5zZmVySUQ6OlNSR0JfSERSLAotLSAgICAgICAgICAgICAgICAgICAgIFpDUl9DT0xPUl9N QU5BR0VSX1YxX0VPVEZfTkFNRVNfU1JHQl9IRFJfU0lOQ0VfVkVSU0lPTil9LAotKyAgICAgVHJh bnNmZXJWZXJzaW9ue2dmeDo6Q29sb3JTcGFjZTo6VHJhbnNmZXJJRDo6U1JHQl9IRFIsCi0rICAg ICAgICAgICAgICAgICAgICAgWkNSX0NPTE9SX01BTkFHRVJfVjFfRU9URl9OQU1FU19TUkdCX0hE Ul9TSU5DRV9WRVJTSU9OfX0sCi0gICAgIHtaQ1JfQ09MT1JfTUFOQUdFUl9WMV9FT1RGX05BTUVT X0JUNzA5LAotLSAgICAgVHJhbnNmZXJWZXJzaW9uKGdmeDo6Q29sb3JTcGFjZTo6VHJhbnNmZXJJ RDo6QlQ3MDksCi0tICAgICAgICAgICAgICAgICAgICAgWkNSX0NPTE9SX01BTkFHRVJfVjFfRU9U Rl9OQU1FU19CVDcwOV9TSU5DRV9WRVJTSU9OKX0sCi0rICAgICBUcmFuc2ZlclZlcnNpb257Z2Z4 OjpDb2xvclNwYWNlOjpUcmFuc2ZlcklEOjpCVDcwOSwKLSsgICAgICAgICAgICAgICAgICAgICBa Q1JfQ09MT1JfTUFOQUdFUl9WMV9FT1RGX05BTUVTX0JUNzA5X1NJTkNFX1ZFUlNJT059fSwKLSAg ICAge1pDUl9DT0xPUl9NQU5BR0VSX1YxX0VPVEZfTkFNRVNfQlQyMDg3LAotLSAgICAgVHJhbnNm ZXJWZXJzaW9uKGdmeDo6Q29sb3JTcGFjZTo6VHJhbnNmZXJJRDo6R0FNTUEyNCwKLS0gICAgICAg ICAgICAgICAgICAgICBrRGVmYXVsdFNpbmNlVmVyc2lvbil9LAotKyAgICAgVHJhbnNmZXJWZXJz aW9ue2dmeDo6Q29sb3JTcGFjZTo6VHJhbnNmZXJJRDo6R0FNTUEyNCwKLSsgICAgICAgICAgICAg ICAgICAgICBrRGVmYXVsdFNpbmNlVmVyc2lvbn19LAotICAgICB7WkNSX0NPTE9SX01BTkFHRVJf VjFfRU9URl9OQU1FU19BRE9CRVJHQiwKLSAgICAgIC8vIFRoaXMgaXMgZXZlciBzbyBzbGlnaHRs eSBpbmFjY3VyYXRlLiBUaGUgbnVtYmVyIG91Z2h0IHRvIGJlCi0gICAgICAvLyAyLjE5OTIxODc1 Ziwgbm90IDIuMgotLSAgICAgVHJhbnNmZXJWZXJzaW9uKGdmeDo6Q29sb3JTcGFjZTo6VHJhbnNm ZXJJRDo6R0FNTUEyMiwKLS0gICAgICAgICAgICAgICAgICAgICBrRGVmYXVsdFNpbmNlVmVyc2lv bil9LAotKyAgICAgVHJhbnNmZXJWZXJzaW9ue2dmeDo6Q29sb3JTcGFjZTo6VHJhbnNmZXJJRDo6 R0FNTUEyMiwKLSsgICAgICAgICAgICAgICAgICAgICBrRGVmYXVsdFNpbmNlVmVyc2lvbn19LAot ICAgICB7WkNSX0NPTE9SX01BTkFHRVJfVjFfRU9URl9OQU1FU19QUSwKLS0gICAgIFRyYW5zZmVy VmVyc2lvbihnZng6OkNvbG9yU3BhY2U6OlRyYW5zZmVySUQ6OlBRLCBrRGVmYXVsdFNpbmNlVmVy c2lvbil9LAotKyAgICAgVHJhbnNmZXJWZXJzaW9ue2dmeDo6Q29sb3JTcGFjZTo6VHJhbnNmZXJJ RDo6UFEsIGtEZWZhdWx0U2luY2VWZXJzaW9ufX0sCi0gICAgIHtaQ1JfQ09MT1JfTUFOQUdFUl9W MV9FT1RGX05BTUVTX0hMRywKLS0gICAgIFRyYW5zZmVyVmVyc2lvbihnZng6OkNvbG9yU3BhY2U6 OlRyYW5zZmVySUQ6OkhMRywKLS0gICAgICAgICAgICAgICAgICAgICBaQ1JfQ09MT1JfTUFOQUdF Ul9WMV9FT1RGX05BTUVTX0hMR19TSU5DRV9WRVJTSU9OKX0sCi0rICAgICBUcmFuc2ZlclZlcnNp b257Z2Z4OjpDb2xvclNwYWNlOjpUcmFuc2ZlcklEOjpITEcsCi0rICAgICAgICAgICAgICAgICAg ICAgWkNSX0NPTE9SX01BTkFHRVJfVjFfRU9URl9OQU1FU19ITEdfU0lOQ0VfVkVSU0lPTn19LAot ICAgICB7WkNSX0NPTE9SX01BTkFHRVJfVjFfRU9URl9OQU1FU19TTVBURTE3ME0sCi0tICAgICBU cmFuc2ZlclZlcnNpb24oZ2Z4OjpDb2xvclNwYWNlOjpUcmFuc2ZlcklEOjpTTVBURTE3ME0sCi0t ICAgICAgICAgICAgICAgICAgICAgWkNSX0NPTE9SX01BTkFHRVJfVjFfRU9URl9OQU1FU19TTVBU RTE3ME1fU0lOQ0VfVkVSU0lPTil9LAotKyAgICAgVHJhbnNmZXJWZXJzaW9ue2dmeDo6Q29sb3JT cGFjZTo6VHJhbnNmZXJJRDo6U01QVEUxNzBNLAotKyAgICAgICAgICAgICAgICAgICAgIFpDUl9D T0xPUl9NQU5BR0VSX1YxX0VPVEZfTkFNRVNfU01QVEUxNzBNX1NJTkNFX1ZFUlNJT059fSwKLSAg ICAge1pDUl9DT0xPUl9NQU5BR0VSX1YxX0VPVEZfTkFNRVNfU01QVEUyNDBNLAotLSAgICAgVHJh bnNmZXJWZXJzaW9uKGdmeDo6Q29sb3JTcGFjZTo6VHJhbnNmZXJJRDo6U01QVEUyNDBNLAotLSAg ICAgICAgICAgICAgICAgICAgIFpDUl9DT0xPUl9NQU5BR0VSX1YxX0VPVEZfTkFNRVNfU01QVEUy NDBNX1NJTkNFX1ZFUlNJT04pfSwKLSsgICAgIFRyYW5zZmVyVmVyc2lvbntnZng6OkNvbG9yU3Bh Y2U6OlRyYW5zZmVySUQ6OlNNUFRFMjQwTSwKLSsgICAgICAgICAgICAgICAgICAgICBaQ1JfQ09M T1JfTUFOQUdFUl9WMV9FT1RGX05BTUVTX1NNUFRFMjQwTV9TSU5DRV9WRVJTSU9OfX0sCi0gICAg IHtaQ1JfQ09MT1JfTUFOQUdFUl9WMV9FT1RGX05BTUVTX1NNUFRFU1Q0MjhfMSwKLS0gICAgIFRy YW5zZmVyVmVyc2lvbigKLSsgICAgIFRyYW5zZmVyVmVyc2lvbnsKLSAgICAgICAgICBnZng6OkNv bG9yU3BhY2U6OlRyYW5zZmVySUQ6OlNNUFRFU1Q0MjhfMSwKLS0gICAgICAgICBaQ1JfQ09MT1Jf TUFOQUdFUl9WMV9FT1RGX05BTUVTX1NNUFRFU1Q0MjhfMV9TSU5DRV9WRVJTSU9OKX0sCi0rICAg ICAgICAgWkNSX0NPTE9SX01BTkFHRVJfVjFfRU9URl9OQU1FU19TTVBURVNUNDI4XzFfU0lOQ0Vf VkVSU0lPTn19LAotICAgICB7WkNSX0NPTE9SX01BTkFHRVJfVjFfRU9URl9OQU1FU19MT0csCi0t ICAgICBUcmFuc2ZlclZlcnNpb24oZ2Z4OjpDb2xvclNwYWNlOjpUcmFuc2ZlcklEOjpMT0csCi0t ICAgICAgICAgICAgICAgICAgICAgWkNSX0NPTE9SX01BTkFHRVJfVjFfRU9URl9OQU1FU19MT0df U0lOQ0VfVkVSU0lPTil9LAotKyAgICAgVHJhbnNmZXJWZXJzaW9ue2dmeDo6Q29sb3JTcGFjZTo6 VHJhbnNmZXJJRDo6TE9HLAotKyAgICAgICAgICAgICAgICAgICAgIFpDUl9DT0xPUl9NQU5BR0VS X1YxX0VPVEZfTkFNRVNfTE9HX1NJTkNFX1ZFUlNJT059fSwKLSAgICAge1pDUl9DT0xPUl9NQU5B R0VSX1YxX0VPVEZfTkFNRVNfTE9HX1NRUlQsCi0tICAgICBUcmFuc2ZlclZlcnNpb24oZ2Z4OjpD b2xvclNwYWNlOjpUcmFuc2ZlcklEOjpMT0dfU1FSVCwKLS0gICAgICAgICAgICAgICAgICAgICBa Q1JfQ09MT1JfTUFOQUdFUl9WMV9FT1RGX05BTUVTX0xPR19TUVJUX1NJTkNFX1ZFUlNJT04pfSwK LSsgICAgIFRyYW5zZmVyVmVyc2lvbntnZng6OkNvbG9yU3BhY2U6OlRyYW5zZmVySUQ6OkxPR19T UVJULAotKyAgICAgICAgICAgICAgICAgICAgIFpDUl9DT0xPUl9NQU5BR0VSX1YxX0VPVEZfTkFN RVNfTE9HX1NRUlRfU0lOQ0VfVkVSU0lPTn19LAotICAgICB7WkNSX0NPTE9SX01BTkFHRVJfVjFf RU9URl9OQU1FU19JRUM2MTk2Nl8yXzQsCi0tICAgICBUcmFuc2ZlclZlcnNpb24oCi0rICAgICBU cmFuc2ZlclZlcnNpb257Ci0gICAgICAgICAgZ2Z4OjpDb2xvclNwYWNlOjpUcmFuc2ZlcklEOjpJ RUM2MTk2Nl8yXzQsCi0tICAgICAgICAgWkNSX0NPTE9SX01BTkFHRVJfVjFfRU9URl9OQU1FU19J RUM2MTk2Nl8yXzRfU0lOQ0VfVkVSU0lPTil9LAotKyAgICAgICAgIFpDUl9DT0xPUl9NQU5BR0VS X1YxX0VPVEZfTkFNRVNfSUVDNjE5NjZfMl80X1NJTkNFX1ZFUlNJT059fSwKLSAgICAge1pDUl9D T0xPUl9NQU5BR0VSX1YxX0VPVEZfTkFNRVNfQlQxMzYxX0VDRywKLS0gICAgIFRyYW5zZmVyVmVy c2lvbihnZng6OkNvbG9yU3BhY2U6OlRyYW5zZmVySUQ6OkJUMTM2MV9FQ0csCi0tICAgICAgICAg ICAgICAgICAgICAgWkNSX0NPTE9SX01BTkFHRVJfVjFfRU9URl9OQU1FU19CVDEzNjFfRUNHX1NJ TkNFX1ZFUlNJT04pfSwKLSsgICAgIFRyYW5zZmVyVmVyc2lvbntnZng6OkNvbG9yU3BhY2U6OlRy YW5zZmVySUQ6OkJUMTM2MV9FQ0csCi0rICAgICAgICAgICAgICAgICAgICAgWkNSX0NPTE9SX01B TkFHRVJfVjFfRU9URl9OQU1FU19CVDEzNjFfRUNHX1NJTkNFX1ZFUlNJT059fSwKLSAgICAge1pD Ul9DT0xPUl9NQU5BR0VSX1YxX0VPVEZfTkFNRVNfQlQyMDIwXzEwLAotLSAgICAgVHJhbnNmZXJW ZXJzaW9uKGdmeDo6Q29sb3JTcGFjZTo6VHJhbnNmZXJJRDo6QlQyMDIwXzEwLAotLSAgICAgICAg ICAgICAgICAgICAgIFpDUl9DT0xPUl9NQU5BR0VSX1YxX0VPVEZfTkFNRVNfQlQyMDIwXzEwX1NJ TkNFX1ZFUlNJT04pfSwKLSsgICAgIFRyYW5zZmVyVmVyc2lvbntnZng6OkNvbG9yU3BhY2U6OlRy YW5zZmVySUQ6OkJUMjAyMF8xMCwKLSsgICAgICAgICAgICAgICAgICAgICBaQ1JfQ09MT1JfTUFO QUdFUl9WMV9FT1RGX05BTUVTX0JUMjAyMF8xMF9TSU5DRV9WRVJTSU9OfX0sCi0gICAgIHtaQ1Jf Q09MT1JfTUFOQUdFUl9WMV9FT1RGX05BTUVTX0JUMjAyMF8xMiwKLS0gICAgIFRyYW5zZmVyVmVy c2lvbihnZng6OkNvbG9yU3BhY2U6OlRyYW5zZmVySUQ6OkJUMjAyMF8xMiwKLS0gICAgICAgICAg ICAgICAgICAgICBaQ1JfQ09MT1JfTUFOQUdFUl9WMV9FT1RGX05BTUVTX0JUMjAyMF8xMl9TSU5D RV9WRVJTSU9OKX0sCi0rICAgICBUcmFuc2ZlclZlcnNpb257Z2Z4OjpDb2xvclNwYWNlOjpUcmFu c2ZlcklEOjpCVDIwMjBfMTIsCi0rICAgICAgICAgICAgICAgICAgICAgWkNSX0NPTE9SX01BTkFH RVJfVjFfRU9URl9OQU1FU19CVDIwMjBfMTJfU0lOQ0VfVkVSU0lPTn19LAotICAgICB7WkNSX0NP TE9SX01BTkFHRVJfVjFfRU9URl9OQU1FU19TQ1JHQl9MSU5FQVJfODBfTklUUywKLS0gICAgIFRy YW5zZmVyVmVyc2lvbigKLSsgICAgIFRyYW5zZmVyVmVyc2lvbnsKLSAgICAgICAgICBnZng6OkNv bG9yU3BhY2U6OlRyYW5zZmVySUQ6OlNDUkdCX0xJTkVBUl84MF9OSVRTLAotLSAgICAgICAgIFpD Ul9DT0xPUl9NQU5BR0VSX1YxX0VPVEZfTkFNRVNfU0NSR0JfTElORUFSXzgwX05JVFNfU0lOQ0Vf VkVSU0lPTil9LAotKyAgICAgICAgIFpDUl9DT0xPUl9NQU5BR0VSX1YxX0VPVEZfTkFNRVNfU0NS R0JfTElORUFSXzgwX05JVFNfU0lOQ0VfVkVSU0lPTn19LAotICAgICB7WkNSX0NPTE9SX01BTkFH RVJfVjFfRU9URl9OQU1FU19HQU1NQTE4LAotLSAgICAgVHJhbnNmZXJWZXJzaW9uKGdmeDo6Q29s b3JTcGFjZTo6VHJhbnNmZXJJRDo6R0FNTUExOCwKLS0gICAgICAgICAgICAgICAgICAgICBaQ1Jf Q09MT1JfTUFOQUdFUl9WMV9FT1RGX05BTUVTX0dBTU1BMThfU0lOQ0VfVkVSU0lPTil9LAotKyAg ICAgVHJhbnNmZXJWZXJzaW9ue2dmeDo6Q29sb3JTcGFjZTo6VHJhbnNmZXJJRDo6R0FNTUExOCwK LSsgICAgICAgICAgICAgICAgICAgICBaQ1JfQ09MT1JfTUFOQUdFUl9WMV9FT1RGX05BTUVTX0dB TU1BMThfU0lOQ0VfVkVSU0lPTn19LAotICAgICB7WkNSX0NPTE9SX01BTkFHRVJfVjFfRU9URl9O QU1FU19HQU1NQTI4LAotLSAgICAgVHJhbnNmZXJWZXJzaW9uKGdmeDo6Q29sb3JTcGFjZTo6VHJh bnNmZXJJRDo6R0FNTUEyOCwKLS0gICAgICAgICAgICAgICAgICAgICBaQ1JfQ09MT1JfTUFOQUdF Ul9WMV9FT1RGX05BTUVTX0dBTU1BMjhfU0lOQ0VfVkVSU0lPTil9LAotKyAgICAgVHJhbnNmZXJW ZXJzaW9ue2dmeDo6Q29sb3JTcGFjZTo6VHJhbnNmZXJJRDo6R0FNTUEyOCwKLSsgICAgICAgICAg ICAgICAgICAgICBaQ1JfQ09MT1JfTUFOQUdFUl9WMV9FT1RGX05BTUVTX0dBTU1BMjhfU0lOQ0Vf VkVSU0lPTn19LAotIH0pOwotIAotIC8vIEEgbWFwIGZyb20gdGhlIFNEUiB6Y3JfY29sb3JfbWFu YWdlcl92MSBlb3RmX25hbWVzIGVudW0gdmFsdWVzCi1AQCAtMTc3LDE4ICsxNzcsMTggQEAgY29u c3RleHByIGF1dG8ga0VvdGZNYXAgPSBiYXNlOjpNYWtlRml4ZQotIGNvbnN0ZXhwciBhdXRvIGtU cmFuc2Zlck1hcCA9Ci0gICAgIGJhc2U6Ok1ha2VGaXhlZEZsYXRNYXA8emNyX2NvbG9yX21hbmFn ZXJfdjFfZW90Zl9uYW1lcywgVHJhbnNmZXJGblZlcnNpb24+KHsKLSAgICAgICAgIHtaQ1JfQ09M T1JfTUFOQUdFUl9WMV9FT1RGX05BTUVTX0xJTkVBUiwKLS0gICAgICAgICBUcmFuc2ZlckZuVmVy c2lvbihTa05hbWVkVHJhbnNmZXJGbjo6a0xpbmVhciwga0RlZmF1bHRTaW5jZVZlcnNpb24pfSwK LSsgICAgICAgICBUcmFuc2ZlckZuVmVyc2lvbntTa05hbWVkVHJhbnNmZXJGbjo6a0xpbmVhciwg a0RlZmF1bHRTaW5jZVZlcnNpb259fSwKLSAgICAgICAgIHtaQ1JfQ09MT1JfTUFOQUdFUl9WMV9F T1RGX05BTUVTX1NSR0IsCi0tICAgICAgICAgVHJhbnNmZXJGblZlcnNpb24oU2tOYW1lZFRyYW5z ZmVyRm5FeHQ6OmtTUkdCLCBrRGVmYXVsdFNpbmNlVmVyc2lvbil9LAotKyAgICAgICAgIFRyYW5z ZmVyRm5WZXJzaW9ue1NrTmFtZWRUcmFuc2ZlckZuRXh0OjprU1JHQiwga0RlZmF1bHRTaW5jZVZl cnNpb259fSwKLSAgICAgICAgIHtaQ1JfQ09MT1JfTUFOQUdFUl9WMV9FT1RGX05BTUVTX0JUNzA5 LAotLSAgICAgICAgIFRyYW5zZmVyRm5WZXJzaW9uKAotKyAgICAgICAgIFRyYW5zZmVyRm5WZXJz aW9uewotICAgICAgICAgICAgICBTa05hbWVkVHJhbnNmZXJGbkV4dDo6a1JlYzcwOSwKLS0gICAg ICAgICAgICAgWkNSX0NPTE9SX01BTkFHRVJfVjFfRU9URl9OQU1FU19CVDcwOV9TSU5DRV9WRVJT SU9OKX0sCi0rICAgICAgICAgICAgIFpDUl9DT0xPUl9NQU5BR0VSX1YxX0VPVEZfTkFNRVNfQlQ3 MDlfU0lOQ0VfVkVSU0lPTn19LAotICAgICAgICAge1pDUl9DT0xPUl9NQU5BR0VSX1YxX0VPVEZf TkFNRVNfQlQyMDg3LAotLSAgICAgICAgIFRyYW5zZmVyRm5WZXJzaW9uKGdhbW1hMjQsIGtEZWZh dWx0U2luY2VWZXJzaW9uKX0sCi0rICAgICAgICAgVHJhbnNmZXJGblZlcnNpb257Z2FtbWEyNCwg a0RlZmF1bHRTaW5jZVZlcnNpb259fSwKLSAgICAgICAgIHtaQ1JfQ09MT1JfTUFOQUdFUl9WMV9F T1RGX05BTUVTX0FET0JFUkdCLAotLSAgICAgICAgIFRyYW5zZmVyRm5WZXJzaW9uKFNrTmFtZWRU cmFuc2ZlckZuRXh0OjprQTk4UkdCLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGtEZWZh dWx0U2luY2VWZXJzaW9uKX0sCi0rICAgICAgICAgVHJhbnNmZXJGblZlcnNpb257U2tOYW1lZFRy YW5zZmVyRm5FeHQ6OmtBOThSR0IsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAga0RlZmF1 bHRTaW5jZVZlcnNpb259fSwKLSAgICAgfSk7Ci0gCi0gLy8gQSBtYXAgZnJvbSB0aGUgSERSIHpj cl9jb2xvcl9tYW5hZ2VyX3YxIGVvdGZfbmFtZXMgZW51bSB2YWx1ZXMKLUBAIC0xOTcsNzAgKzE5 Nyw3MCBAQCBjb25zdGV4cHIgYXV0byBrVHJhbnNmZXJNYXAgPQotIGNvbnN0ZXhwciBhdXRvIGtI RFJUcmFuc2Zlck1hcCA9Ci0gICAgIGJhc2U6Ok1ha2VGaXhlZEZsYXRNYXA8emNyX2NvbG9yX21h bmFnZXJfdjFfZW90Zl9uYW1lcywgVHJhbnNmZXJGblZlcnNpb24+KAotICAgICAgICAge3taQ1Jf Q09MT1JfTUFOQUdFUl9WMV9FT1RGX05BTUVTX0xJTkVBUiwKLS0gICAgICAgICAgVHJhbnNmZXJG blZlcnNpb24oU2tOYW1lZFRyYW5zZmVyRm46OmtMaW5lYXIsIGtEZWZhdWx0U2luY2VWZXJzaW9u KX0sCi0rICAgICAgICAgIFRyYW5zZmVyRm5WZXJzaW9ue1NrTmFtZWRUcmFuc2ZlckZuOjprTGlu ZWFyLCBrRGVmYXVsdFNpbmNlVmVyc2lvbn19LAotICAgICAgICAgIHtaQ1JfQ09MT1JfTUFOQUdF Ul9WMV9FT1RGX05BTUVTX1NSR0JfSERSLAotLSAgICAgICAgICBUcmFuc2ZlckZuVmVyc2lvbigK LSsgICAgICAgICAgVHJhbnNmZXJGblZlcnNpb257Ci0gICAgICAgICAgICAgICBTa05hbWVkVHJh bnNmZXJGbkV4dDo6a1NSR0IsCi0tICAgICAgICAgICAgICBaQ1JfQ09MT1JfTUFOQUdFUl9WMV9F T1RGX05BTUVTX1NSR0JfSERSX1NJTkNFX1ZFUlNJT04pfSwKLSsgICAgICAgICAgICAgIFpDUl9D T0xPUl9NQU5BR0VSX1YxX0VPVEZfTkFNRVNfU1JHQl9IRFJfU0lOQ0VfVkVSU0lPTn19LAotICAg ICAgICAgIHtaQ1JfQ09MT1JfTUFOQUdFUl9WMV9FT1RGX05BTUVTX1BRLAotLSAgICAgICAgICBU cmFuc2ZlckZuVmVyc2lvbihTa05hbWVkVHJhbnNmZXJGbjo6a1BRLCBrRGVmYXVsdFNpbmNlVmVy c2lvbil9LAotKyAgICAgICAgICBUcmFuc2ZlckZuVmVyc2lvbntTa05hbWVkVHJhbnNmZXJGbjo6 a1BRLCBrRGVmYXVsdFNpbmNlVmVyc2lvbn19LAotICAgICAgICAgIHtaQ1JfQ09MT1JfTUFOQUdF Ul9WMV9FT1RGX05BTUVTX0hMRywKLS0gICAgICAgICAgVHJhbnNmZXJGblZlcnNpb24oU2tOYW1l ZFRyYW5zZmVyRm46OmtITEcsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIFpDUl9DT0xP Ul9NQU5BR0VSX1YxX0VPVEZfTkFNRVNfSExHX1NJTkNFX1ZFUlNJT04pfSwKLSsgICAgICAgICAg VHJhbnNmZXJGblZlcnNpb257U2tOYW1lZFRyYW5zZmVyRm46OmtITEcsCi0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFpDUl9DT0xPUl9NQU5BR0VSX1YxX0VPVEZfTkFNRVNfSExHX1NJTkNF X1ZFUlNJT059fSwKLSAgICAgICAgICB7WkNSX0NPTE9SX01BTkFHRVJfVjFfRU9URl9OQU1FU19F WFRFTkRFRFNSR0IxMCwKLS0gICAgICAgICAgVHJhbnNmZXJGblZlcnNpb24oCi0rICAgICAgICAg IFRyYW5zZmVyRm5WZXJzaW9uewotICAgICAgICAgICAgICAgU2tOYW1lZFRyYW5zZmVyRm5FeHQ6 OmtTUkdCRXh0ZW5kZWQxMDIzT3ZlcjUxMCwKLS0gICAgICAgICAgICAgIFpDUl9DT0xPUl9NQU5B R0VSX1YxX0VPVEZfTkFNRVNfRVhURU5ERURTUkdCMTBfU0lOQ0VfVkVSU0lPTil9fSk7Ci0rICAg ICAgICAgICAgICBaQ1JfQ09MT1JfTUFOQUdFUl9WMV9FT1RGX05BTUVTX0VYVEVOREVEU1JHQjEw X1NJTkNFX1ZFUlNJT059fX0pOwotIAotIC8vIEEgbWFwIGZyb20gemNyX2NvbG9yX21hbmFnZXJf djEgbWF0cml4X25hbWVzIGVudW0gdmFsdWVzIHRvCi0gLy8gZ2Z4OjpDb2xvclNwYWNlOjpNYXRy aXhJRHMuCi0gY29uc3RleHByIGF1dG8ga01hdHJpeE1hcCA9Ci0gICAgIGJhc2U6Ok1ha2VGaXhl ZEZsYXRNYXA8emNyX2NvbG9yX21hbmFnZXJfdjFfbWF0cml4X25hbWVzLCBNYXRyaXhWZXJzaW9u PigKLSAgICAgICAgIHt7WkNSX0NPTE9SX01BTkFHRVJfVjFfTUFUUklYX05BTUVTX1JHQiwKLS0g ICAgICAgICAgTWF0cml4VmVyc2lvbihnZng6OkNvbG9yU3BhY2U6Ok1hdHJpeElEOjpSR0IsIGtE ZWZhdWx0U2luY2VWZXJzaW9uKX0sCi0rICAgICAgICAgIE1hdHJpeFZlcnNpb257Z2Z4OjpDb2xv clNwYWNlOjpNYXRyaXhJRDo6UkdCLCBrRGVmYXVsdFNpbmNlVmVyc2lvbn19LAotICAgICAgICAg IHtaQ1JfQ09MT1JfTUFOQUdFUl9WMV9NQVRSSVhfTkFNRVNfQlQ3MDksCi0tICAgICAgICAgIE1h dHJpeFZlcnNpb24oZ2Z4OjpDb2xvclNwYWNlOjpNYXRyaXhJRDo6QlQ3MDksCi0tICAgICAgICAg ICAgICAgICAgICAgICAga0RlZmF1bHRTaW5jZVZlcnNpb24pfSwKLSsgICAgICAgICAgTWF0cml4 VmVyc2lvbntnZng6OkNvbG9yU3BhY2U6Ok1hdHJpeElEOjpCVDcwOSwKLSsgICAgICAgICAgICAg ICAgICAgICAgICBrRGVmYXVsdFNpbmNlVmVyc2lvbn19LAotICAgICAgICAgIHtaQ1JfQ09MT1Jf TUFOQUdFUl9WMV9NQVRSSVhfTkFNRVNfQlQ0NzBCRywKLS0gICAgICAgICAgTWF0cml4VmVyc2lv bigKLSsgICAgICAgICAgTWF0cml4VmVyc2lvbnsKLSAgICAgICAgICAgICAgIGdmeDo6Q29sb3JT cGFjZTo6TWF0cml4SUQ6OkJUNDcwQkcsCi0tICAgICAgICAgICAgICBaQ1JfQ09MT1JfTUFOQUdF Ul9WMV9NQVRSSVhfTkFNRVNfQlQ0NzBCR19TSU5DRV9WRVJTSU9OKX0sCi0rICAgICAgICAgICAg ICBaQ1JfQ09MT1JfTUFOQUdFUl9WMV9NQVRSSVhfTkFNRVNfQlQ0NzBCR19TSU5DRV9WRVJTSU9O fX0sCi0gICAgICAgICAge1pDUl9DT0xPUl9NQU5BR0VSX1YxX01BVFJJWF9OQU1FU19CVDIwMjBf TkNMLAotLSAgICAgICAgICBNYXRyaXhWZXJzaW9uKGdmeDo6Q29sb3JTcGFjZTo6TWF0cml4SUQ6 OkJUMjAyMF9OQ0wsCi0tICAgICAgICAgICAgICAgICAgICAgICAga0RlZmF1bHRTaW5jZVZlcnNp b24pfSwKLSsgICAgICAgICAgTWF0cml4VmVyc2lvbntnZng6OkNvbG9yU3BhY2U6Ok1hdHJpeElE OjpCVDIwMjBfTkNMLAotKyAgICAgICAgICAgICAgICAgICAgICAgIGtEZWZhdWx0U2luY2VWZXJz aW9ufX0sCi0gICAgICAgICAge1pDUl9DT0xPUl9NQU5BR0VSX1YxX01BVFJJWF9OQU1FU19CVDIw MjBfQ0wsCi0tICAgICAgICAgIE1hdHJpeFZlcnNpb24oZ2Z4OjpDb2xvclNwYWNlOjpNYXRyaXhJ RDo6QlQyMDIwX0NMLAotLSAgICAgICAgICAgICAgICAgICAgICAgIGtEZWZhdWx0U2luY2VWZXJz aW9uKX0sCi0rICAgICAgICAgIE1hdHJpeFZlcnNpb257Z2Z4OjpDb2xvclNwYWNlOjpNYXRyaXhJ RDo6QlQyMDIwX0NMLAotKyAgICAgICAgICAgICAgICAgICAgICAgIGtEZWZhdWx0U2luY2VWZXJz aW9ufX0sCi0gICAgICAgICAge1pDUl9DT0xPUl9NQU5BR0VSX1YxX01BVFJJWF9OQU1FU19GQ0Ms Ci0tICAgICAgICAgIE1hdHJpeFZlcnNpb24oZ2Z4OjpDb2xvclNwYWNlOjpNYXRyaXhJRDo6RkND LCBrRGVmYXVsdFNpbmNlVmVyc2lvbil9LAotKyAgICAgICAgICBNYXRyaXhWZXJzaW9ue2dmeDo6 Q29sb3JTcGFjZTo6TWF0cml4SUQ6OkZDQywga0RlZmF1bHRTaW5jZVZlcnNpb259fSwKLSAgICAg ICAgICB7WkNSX0NPTE9SX01BTkFHRVJfVjFfTUFUUklYX05BTUVTX1lDT0NHLAotLSAgICAgICAg ICBNYXRyaXhWZXJzaW9uKGdmeDo6Q29sb3JTcGFjZTo6TWF0cml4SUQ6OllDT0NHLAotLSAgICAg ICAgICAgICAgICAgICAgICAgIFpDUl9DT0xPUl9NQU5BR0VSX1YxX01BVFJJWF9OQU1FU19ZQ09D R19TSU5DRV9WRVJTSU9OKX0sCi0rICAgICAgICAgIE1hdHJpeFZlcnNpb257Z2Z4OjpDb2xvclNw YWNlOjpNYXRyaXhJRDo6WUNPQ0csCi0rICAgICAgICAgICAgICAgICAgICAgICAgWkNSX0NPTE9S X01BTkFHRVJfVjFfTUFUUklYX05BTUVTX1lDT0NHX1NJTkNFX1ZFUlNJT059fSwKLSAgICAgICAg ICB7WkNSX0NPTE9SX01BTkFHRVJfVjFfTUFUUklYX05BTUVTX1lEWkRYLAotLSAgICAgICAgICBN YXRyaXhWZXJzaW9uKGdmeDo6Q29sb3JTcGFjZTo6TWF0cml4SUQ6OllEWkRYLAotLSAgICAgICAg ICAgICAgICAgICAgICAgIFpDUl9DT0xPUl9NQU5BR0VSX1YxX01BVFJJWF9OQU1FU19ZRFpEWF9T SU5DRV9WRVJTSU9OKX0sCi0rICAgICAgICAgIE1hdHJpeFZlcnNpb257Z2Z4OjpDb2xvclNwYWNl OjpNYXRyaXhJRDo6WURaRFgsCi0rICAgICAgICAgICAgICAgICAgICAgICAgWkNSX0NPTE9SX01B TkFHRVJfVjFfTUFUUklYX05BTUVTX1lEWkRYX1NJTkNFX1ZFUlNJT059fSwKLSAgICAgICAgICB7 WkNSX0NPTE9SX01BTkFHRVJfVjFfTUFUUklYX05BTUVTX0dCUiwKLS0gICAgICAgICAgTWF0cml4 VmVyc2lvbihnZng6OkNvbG9yU3BhY2U6Ok1hdHJpeElEOjpHQlIsCi0tICAgICAgICAgICAgICAg ICAgICAgICAgWkNSX0NPTE9SX01BTkFHRVJfVjFfTUFUUklYX05BTUVTX0dCUl9TSU5DRV9WRVJT SU9OKX0sCi0rICAgICAgICAgIE1hdHJpeFZlcnNpb257Z2Z4OjpDb2xvclNwYWNlOjpNYXRyaXhJ RDo6R0JSLAotKyAgICAgICAgICAgICAgICAgICAgICAgIFpDUl9DT0xPUl9NQU5BR0VSX1YxX01B VFJJWF9OQU1FU19HQlJfU0lOQ0VfVkVSU0lPTn19LAotICAgICAgICAgIHtaQ1JfQ09MT1JfTUFO QUdFUl9WMV9NQVRSSVhfTkFNRVNfU01QVEUxNzBNLAotLSAgICAgICAgICBNYXRyaXhWZXJzaW9u KGdmeDo6Q29sb3JTcGFjZTo6TWF0cml4SUQ6OlNNUFRFMTcwTSwKLS0gICAgICAgICAgICAgICAg ICAgICAgICBrRGVmYXVsdFNpbmNlVmVyc2lvbil9LAotKyAgICAgICAgICBNYXRyaXhWZXJzaW9u e2dmeDo6Q29sb3JTcGFjZTo6TWF0cml4SUQ6OlNNUFRFMTcwTSwKLSsgICAgICAgICAgICAgICAg ICAgICAgICBrRGVmYXVsdFNpbmNlVmVyc2lvbn19LAotICAgICAgICAgIHtaQ1JfQ09MT1JfTUFO QUdFUl9WMV9NQVRSSVhfTkFNRVNfU01QVEUyNDBNLAotLSAgICAgICAgICBNYXRyaXhWZXJzaW9u KGdmeDo6Q29sb3JTcGFjZTo6TWF0cml4SUQ6OlNNUFRFMjQwTSwKLS0gICAgICAgICAgICAgICAg ICAgICAgICBrRGVmYXVsdFNpbmNlVmVyc2lvbil9fSk7Ci0rICAgICAgICAgIE1hdHJpeFZlcnNp b257Z2Z4OjpDb2xvclNwYWNlOjpNYXRyaXhJRDo6U01QVEUyNDBNLAotKyAgICAgICAgICAgICAg ICAgICAgICAgIGtEZWZhdWx0U2luY2VWZXJzaW9ufX19KTsKLSAKLSAvLyBBIG1hcCBmcm9tIHpj cl9jb2xvcl9tYW5hZ2VyX3YxIHJhbmdlX25hbWVzIGVudW0gdmFsdWVzIHRvCi0gLy8gZ2Z4OjpD b2xvclNwYWNlOjpSYW5nZUlEcy4KLSBjb25zdGV4cHIgYXV0byBrUmFuZ2VNYXAgPQotICAgICBi YXNlOjpNYWtlRml4ZWRGbGF0TWFwPHpjcl9jb2xvcl9tYW5hZ2VyX3YxX3JhbmdlX25hbWVzLCBS YW5nZVZlcnNpb24+KAotICAgICAgICAge3taQ1JfQ09MT1JfTUFOQUdFUl9WMV9SQU5HRV9OQU1F U19MSU1JVEVELAotLSAgICAgICAgICBSYW5nZVZlcnNpb24oZ2Z4OjpDb2xvclNwYWNlOjpSYW5n ZUlEOjpMSU1JVEVELAotLSAgICAgICAgICAgICAgICAgICAgICAga0RlZmF1bHRTaW5jZVZlcnNp b24pfSwKLSsgICAgICAgICAgUmFuZ2VWZXJzaW9ue2dmeDo6Q29sb3JTcGFjZTo6UmFuZ2VJRDo6 TElNSVRFRCwKLSsgICAgICAgICAgICAgICAgICAgICAgIGtEZWZhdWx0U2luY2VWZXJzaW9ufX0s Ci0gICAgICAgICAge1pDUl9DT0xPUl9NQU5BR0VSX1YxX1JBTkdFX05BTUVTX0ZVTEwsCi0tICAg ICAgICAgIFJhbmdlVmVyc2lvbihnZng6OkNvbG9yU3BhY2U6OlJhbmdlSUQ6OkZVTEwsIGtEZWZh dWx0U2luY2VWZXJzaW9uKX0sCi0rICAgICAgICAgIFJhbmdlVmVyc2lvbntnZng6OkNvbG9yU3Bh Y2U6OlJhbmdlSUQ6OkZVTEwsIGtEZWZhdWx0U2luY2VWZXJzaW9ufX0sCi0gICAgICAgICAge1pD Ul9DT0xPUl9NQU5BR0VSX1YxX1JBTkdFX05BTUVTX0RFUklWRUQsCi0tICAgICAgICAgIFJhbmdl VmVyc2lvbihnZng6OkNvbG9yU3BhY2U6OlJhbmdlSUQ6OkRFUklWRUQsCi0tICAgICAgICAgICAg ICAgICAgICAgICBrRGVmYXVsdFNpbmNlVmVyc2lvbil9fSk7Ci0rICAgICAgICAgIFJhbmdlVmVy c2lvbntnZng6OkNvbG9yU3BhY2U6OlJhbmdlSUQ6OkRFUklWRUQsCi0rICAgICAgICAgICAgICAg ICAgICAgICBrRGVmYXVsdFNpbmNlVmVyc2lvbn19fSk7Ci0gCi0gemNyX2NvbG9yX21hbmFnZXJf djFfY2hyb21hdGljaXR5X25hbWVzIFRvQ29sb3JNYW5hZ2VyQ2hyb21hdGljaXR5KAotICAgICBn Zng6OkNvbG9yU3BhY2U6OlByaW1hcnlJRCBwcmltYXJ5SUQsCi1AQCAtMjgzLDQgKzI4Myw0IEBA IHpjcl9jb2xvcl9tYW5hZ2VyX3YxX2VvdGZfbmFtZXMgVG9Db2xvck0KLSAKLSB9ICAvLyBuYW1l c3BhY2UgdWk6OndheWxhbmQKLSAKLS0jZW5kaWYgIC8vIFVJX0JBU0VfV0FZTEFORF9DT0xPUl9N QU5BR0VSX1VUSUxfSF8KLVwgS2VpbiBaZWlsZW51bWJydWNoIGFtIERhdGVpZW5kZS4KLSsjZW5k aWYgIC8vIFVJX0JBU0VfV0FZTEFORF9DT0xPUl9NQU5BR0VSX1VUSUxfSF8KLWRpZmYgLXVwIGNo cm9taXVtLTEyMC4wLjYwOTkuNTYvdWkvZ3RrL2d0a191aS5jYy5ub19tYXRjaGluZ19jb25zdHJ1 Y3RvciBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L3VpL2d0ay9ndGtfdWkuY2MKLS0tLSBjaHJvbWl1 bS0xMjAuMC42MDk5LjU2L3VpL2d0ay9ndGtfdWkuY2Mubm9fbWF0Y2hpbmdfY29uc3RydWN0b3IJ MjAyMy0xMS0yOSAyMjo0MDo0NC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBjaHJvbWl1bS0xMjAuMC42 MDk5LjU2L3VpL2d0ay9ndGtfdWkuY2MJMjAyMy0xMi0wMyAxNzozMToyNS43NTY0MjAzNDIgKzAx MDAKLUBAIC0xMDEzLDExICsxMDEzLDExIEBAIHVpOjpEaXNwbGF5Q29uZmlnIEd0a1VpOjpHZXRE aXNwbGF5Q29uZmkKLSAgICAgR2RrUmVjdGFuZ2xlIGdlb21ldHJ5OwotICAgICBnZGtfbW9uaXRv cl9nZXRfZ2VvbWV0cnkobW9uaXRvciwgJmdlb21ldHJ5KTsKLSAgICAgaW50IG1vbml0b3Jfc2Nh bGUgPSBzdGQ6Om1heCgxLCBnZGtfbW9uaXRvcl9nZXRfc2NhbGVfZmFjdG9yKG1vbml0b3IpKTsK LS0gICAgY29uZmlnLmRpc3BsYXlfZ2VvbWV0cmllcy5lbXBsYWNlX2JhY2soCi0rICAgIGNvbmZp Zy5kaXNwbGF5X2dlb21ldHJpZXMuZW1wbGFjZV9iYWNrKCkgPSB7Ci0gICAgICAgICBnZng6OlJl Y3QobW9uaXRvcl9zY2FsZSAqIGdlb21ldHJ5LngsIG1vbml0b3Jfc2NhbGUgKiBnZW9tZXRyeS55 LAotICAgICAgICAgICAgICAgICAgIG1vbml0b3Jfc2NhbGUgKiBnZW9tZXRyeS53aWR0aCwKLSAg ICAgICAgICAgICAgICAgICBtb25pdG9yX3NjYWxlICogZ2VvbWV0cnkuaGVpZ2h0KSwKLS0gICAg ICAgIG1vbml0b3Jfc2NhbGUgKiBmb250X3NjYWxlKTsKLSsgICAgICAgIHN0YXRpY19jYXN0PGZs b2F0Pihtb25pdG9yX3NjYWxlICogZm9udF9zY2FsZSl9OwotICAgfQotICAgcmV0dXJuIGNvbmZp ZzsKLSB9Ci1kaWZmIC11cCBjaHJvbWl1bS0xMjEuMC42MTY3LjE2L2Nocm9tZS9icm93c2VyL3Vp L3ZpZXdzL3Blcm1pc3Npb25zL2VtYmVkZGVkX3Blcm1pc3Npb25fcHJvbXB0X3ByZXZpb3VzbHlf ZGVuaWVkX3ZpZXcuY2MudGhhbiBjaHJvbWl1bS0xMjEuMC42MTY3LjE2L2Nocm9tZS9icm93c2Vy L3VpL3ZpZXdzL3Blcm1pc3Npb25zL2VtYmVkZGVkX3Blcm1pc3Npb25fcHJvbXB0X3ByZXZpb3Vz bHlfZGVuaWVkX3ZpZXcuY2MKLS0tLSBjaHJvbWl1bS0xMjEuMC42MTY3LjE2L2Nocm9tZS9icm93 c2VyL3VpL3ZpZXdzL3Blcm1pc3Npb25zL2VtYmVkZGVkX3Blcm1pc3Npb25fcHJvbXB0X3ByZXZp b3VzbHlfZGVuaWVkX3ZpZXcuY2MudGhhbgkyMDIzLTEyLTE5IDE3OjEzOjE1LjExNjk0OTgxNCAr MDEwMAotKysrIGNocm9taXVtLTEyMS4wLjYxNjcuMTYvY2hyb21lL2Jyb3dzZXIvdWkvdmlld3Mv cGVybWlzc2lvbnMvZW1iZWRkZWRfcGVybWlzc2lvbl9wcm9tcHRfcHJldmlvdXNseV9kZW5pZWRf dmlldy5jYwkyMDIzLTEyLTE5IDE3OjI3OjE4LjgwNzEwMjcxNiArMDEwMAotQEAgLTY2LDE3ICs2 NiwxNyBAQCBFbWJlZGRlZFBlcm1pc3Npb25Qcm9tcHRQcmV2aW91c2x5RGVuaWVkCi0gc3RkOjp2 ZWN0b3I8RW1iZWRkZWRQZXJtaXNzaW9uUHJvbXB0UHJldmlvdXNseURlbmllZFZpZXc6OkJ1dHRv bkNvbmZpZ3VyYXRpb24+Ci0gRW1iZWRkZWRQZXJtaXNzaW9uUHJvbXB0UHJldmlvdXNseURlbmll ZFZpZXc6OkdldEJ1dHRvbnNDb25maWd1cmF0aW9uKCkgY29uc3QgewotICAgc3RkOjp2ZWN0b3I8 QnV0dG9uQ29uZmlndXJhdGlvbj4gYnV0dG9uczsKLS0gIGJ1dHRvbnMuZW1wbGFjZV9iYWNrKAot KyAgYnV0dG9ucy5lbXBsYWNlX2JhY2soKSA9IHsKLSAgICAgICBsMTBuX3V0aWw6OkdldFN0cmlu Z1VURjE2KElEU19FTUJFRERFRF9QUk9NUFRfQ09OVElOVUVfTk9UX0FMTE9XSU5HKSwKLS0gICAg ICBCdXR0b25UeXBlOjprQ29udGludWVOb3RBbGxvd2luZywgdWk6OkJ1dHRvblN0eWxlOjprVG9u YWwpOwotKyAgICAgIEJ1dHRvblR5cGU6OmtDb250aW51ZU5vdEFsbG93aW5nLCB1aTo6QnV0dG9u U3R5bGU6OmtUb25hbH07Ci0gCi0gICBpZiAoYmFzZTo6RmVhdHVyZUxpc3Q6OklzRW5hYmxlZChw ZXJtaXNzaW9uczo6ZmVhdHVyZXM6OmtPbmVUaW1lUGVybWlzc2lvbikpIHsKLS0gICAgYnV0dG9u cy5lbXBsYWNlX2JhY2soCi0rICAgIGJ1dHRvbnMuZW1wbGFjZV9iYWNrKCkgPSB7Ci0gICAgICAg ICBsMTBuX3V0aWw6OkdldFN0cmluZ1VURjE2KElEU19QRVJNSVNTSU9OX0FMTE9XX1RISVNfVElN RSksCi0tICAgICAgICBCdXR0b25UeXBlOjprQWxsb3dUaGlzVGltZSwgdWk6OkJ1dHRvblN0eWxl OjprVG9uYWwsIGtBbGxvd1RoaXNUaW1lSWQpOwotKyAgICAgICAgQnV0dG9uVHlwZTo6a0FsbG93 VGhpc1RpbWUsIHVpOjpCdXR0b25TdHlsZTo6a1RvbmFsLCBrQWxsb3dUaGlzVGltZUlkfTsKLSAg IH0gZWxzZSB7Ci0tICAgIGJ1dHRvbnMuZW1wbGFjZV9iYWNrKGwxMG5fdXRpbDo6R2V0U3RyaW5n VVRGMTYoSURTX1BFUk1JU1NJT05fQUxMT1cpLAotLSAgICAgICAgICAgICAgICAgICAgICAgICBC dXR0b25UeXBlOjprQWxsb3csIHVpOjpCdXR0b25TdHlsZTo6a1RvbmFsKTsKLSsgICAgYnV0dG9u cy5lbXBsYWNlX2JhY2soKSA9IHtsMTBuX3V0aWw6OkdldFN0cmluZ1VURjE2KElEU19QRVJNSVNT SU9OX0FMTE9XKSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgQnV0dG9uVHlwZTo6a0FsbG93 LCB1aTo6QnV0dG9uU3R5bGU6OmtUb25hbH07Ci0gICB9Ci0gICByZXR1cm4gYnV0dG9uczsKLSB9 Ci1kaWZmIC11cCBjaHJvbWl1bS0xMjEuMC42MTY3LjE2L2Nocm9tZS9icm93c2VyL3VpL3ZpZXdz L3Blcm1pc3Npb25zL2VtYmVkZGVkX3Blcm1pc3Npb25fcHJvbXB0X3ByZXZpb3VzbHlfZ3JhbnRl ZF92aWV3LmNjLnRoYW4gY2hyb21pdW0tMTIxLjAuNjE2Ny4xNi9jaHJvbWUvYnJvd3Nlci91aS92 aWV3cy9wZXJtaXNzaW9ucy9lbWJlZGRlZF9wZXJtaXNzaW9uX3Byb21wdF9wcmV2aW91c2x5X2dy YW50ZWRfdmlldy5jYwotLS0tIGNocm9taXVtLTEyMS4wLjYxNjcuMTYvY2hyb21lL2Jyb3dzZXIv dWkvdmlld3MvcGVybWlzc2lvbnMvZW1iZWRkZWRfcGVybWlzc2lvbl9wcm9tcHRfcHJldmlvdXNs eV9ncmFudGVkX3ZpZXcuY2MudGhhbgkyMDIzLTEyLTE5IDE3OjM5OjE3LjgxODgzNDAyMCArMDEw MAotKysrIGNocm9taXVtLTEyMS4wLjYxNjcuMTYvY2hyb21lL2Jyb3dzZXIvdWkvdmlld3MvcGVy bWlzc2lvbnMvZW1iZWRkZWRfcGVybWlzc2lvbl9wcm9tcHRfcHJldmlvdXNseV9ncmFudGVkX3Zp ZXcuY2MJMjAyMy0xMi0xOSAxNzo0NDoxNS4zNDYzMzc4NzYgKzAxMDAKLUBAIC02MSwxMyArNjEs MTMgQEAgRW1iZWRkZWRQZXJtaXNzaW9uUHJvbXB0UHJldmlvdXNseUdyYW50ZQotIHN0ZDo6dmVj dG9yPEVtYmVkZGVkUGVybWlzc2lvblByb21wdFByZXZpb3VzbHlHcmFudGVkVmlldzo6QnV0dG9u Q29uZmlndXJhdGlvbj4KLSBFbWJlZGRlZFBlcm1pc3Npb25Qcm9tcHRQcmV2aW91c2x5R3JhbnRl ZFZpZXc6OkdldEJ1dHRvbnNDb25maWd1cmF0aW9uKCkgY29uc3QgewotICAgc3RkOjp2ZWN0b3I8 QnV0dG9uQ29uZmlndXJhdGlvbj4gYnV0dG9uczsKLS0gIGJ1dHRvbnMuZW1wbGFjZV9iYWNrKAot KyAgYnV0dG9ucy5lbXBsYWNlX2JhY2soKSA9IHsKLSAgICAgICBsMTBuX3V0aWw6OkdldFN0cmlu Z1VURjE2KElEU19FTUJFRERFRF9QUk9NUFRfQ09OVElOVUVfQUxMT1dJTkcpLAotLSAgICAgIEJ1 dHRvblR5cGU6OmtDb250aW51ZUFsbG93aW5nLCB1aTo6QnV0dG9uU3R5bGU6OmtUb25hbCk7Ci0r ICAgICAgQnV0dG9uVHlwZTo6a0NvbnRpbnVlQWxsb3dpbmcsIHVpOjpCdXR0b25TdHlsZTo6a1Rv bmFsfTsKLSAKLS0gIGJ1dHRvbnMuZW1wbGFjZV9iYWNrKAotKyAgYnV0dG9ucy5lbXBsYWNlX2Jh Y2soKSA9IHsKLSAgICAgICBsMTBuX3V0aWw6OkdldFN0cmluZ1VURjE2KElEU19FTUJFRERFRF9Q Uk9NUFRfU1RPUF9BTExPV0lORyksCi0tICAgICAgQnV0dG9uVHlwZTo6a1N0b3BBbGxvd2luZywg dWk6OkJ1dHRvblN0eWxlOjprVG9uYWwsIGtTdG9wQWxsb3dpbmdJZCk7Ci0rICAgICAgQnV0dG9u VHlwZTo6a1N0b3BBbGxvd2luZywgdWk6OkJ1dHRvblN0eWxlOjprVG9uYWwsIGtTdG9wQWxsb3dp bmdJZH07Ci0gICByZXR1cm4gYnV0dG9uczsKLSB9Ci0gCi1kaWZmIC11cCBjaHJvbWl1bS0xMjEu MC42MTY3LjE2L2NvbXBvbmVudHMvcGFzc3dvcmRfbWFuYWdlci9jb3JlL2Jyb3dzZXIvcGFzc3dv cmRfbWFuYWdlci5jYy50aGFuIGNocm9taXVtLTEyMS4wLjYxNjcuMTYvY29tcG9uZW50cy9wYXNz d29yZF9tYW5hZ2VyL2NvcmUvYnJvd3Nlci9wYXNzd29yZF9tYW5hZ2VyLmNjCi0tLS0gY2hyb21p dW0tMTIxLjAuNjE2Ny4xNi9jb21wb25lbnRzL3Bhc3N3b3JkX21hbmFnZXIvY29yZS9icm93c2Vy L3Bhc3N3b3JkX21hbmFnZXIuY2MudGhhbgkyMDIzLTEyLTE5IDE3OjM5OjE3LjgxOTgzNDAzOSAr MDEwMAotKysrIGNocm9taXVtLTEyMS4wLjYxNjcuMTYvY29tcG9uZW50cy9wYXNzd29yZF9tYW5h Z2VyL2NvcmUvYnJvd3Nlci9wYXNzd29yZF9tYW5hZ2VyLmNjCTIwMjMtMTItMTkgMTc6NDg6MzMu MTQ0Mzg5MDgxICswMTAwCi1AQCAtNjY2LDcgKzY2Niw3IEBAIHZvaWQgUGFzc3dvcmRNYW5hZ2Vy OjpPblVzZXJNb2RpZmllZE5vblAKLSAgICAgaXQtPnNlY29uZC5sYXN0X2NoYW5nZSA9IGJhc2U6 OlRpbWU6Ok5vdygpOwotICAgfSBlbHNlIHsKLSAgICAgcG9zc2libGVfdXNlcm5hbWVzXy5QdXQo Ci0tICAgICAgICBQb3NzaWJsZVVzZXJuYW1lRmllbGRJZGVudGlmaWVyKGRyaXZlcl9pZCwgcmVu ZGVyZXJfaWQpLAotKyAgICAgICAgUG9zc2libGVVc2VybmFtZUZpZWxkSWRlbnRpZmllcntkcml2 ZXJfaWQsIHJlbmRlcmVyX2lkfSwKLSAgICAgICAgIFBvc3NpYmxlVXNlcm5hbWVEYXRhKEdldFNp Z25vblJlYWxtKGRyaXZlci0+R2V0TGFzdENvbW1pdHRlZFVSTCgpKSwKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHJlbmRlcmVyX2lkLCB2YWx1ZSwgYmFzZTo6VGltZTo6Tm93KCksIGRy aXZlcl9pZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG9jb21wbGV0ZV9hdHRy aWJ1dGVfaGFzX3VzZXJuYW1lLAotZGlmZiAtdXAgY2hyb21pdW0tMTIxLjAuNjE2Ny4xNi9jb250 ZW50L2Jyb3dzZXIvcmVuZGVyZXJfaG9zdC9yZW5kZXJfZnJhbWVfaG9zdF9pbXBsLmNjLnRoYW4g Y2hyb21pdW0tMTIxLjAuNjE2Ny4xNi9jb250ZW50L2Jyb3dzZXIvcmVuZGVyZXJfaG9zdC9yZW5k ZXJfZnJhbWVfaG9zdF9pbXBsLmNjCi0tLS0gY2hyb21pdW0tMTIxLjAuNjE2Ny4xNi9jb250ZW50 L2Jyb3dzZXIvcmVuZGVyZXJfaG9zdC9yZW5kZXJfZnJhbWVfaG9zdF9pbXBsLmNjLnRoYW4JMjAy My0xMi0xOSAxNzozOToxNy44MjU4MzQxNTYgKzAxMDAKLSsrKyBjaHJvbWl1bS0xMjEuMC42MTY3 LjE2L2NvbnRlbnQvYnJvd3Nlci9yZW5kZXJlcl9ob3N0L3JlbmRlcl9mcmFtZV9ob3N0X2ltcGwu Y2MJMjAyMy0xMi0xOSAxNzo1Mzo0My4xNTMyODM4NDcgKzAxMDAKLUBAIC04NTYxLDcgKzg1NjEs NyBAQCB2b2lkIFJlbmRlckZyYW1lSG9zdEltcGw6OlNlbmRGZW5jZWRGcmFtCi0gICBmb3IgKGNv bnN0IGJsaW5rOjpGZW5jZWRGcmFtZTo6UmVwb3J0aW5nRGVzdGluYXRpb24mIGRlc3RpbmF0aW9u IDoKLSAgICAgICAgZGVzdGluYXRpb25zKSB7Ci0gICAgIFNlbmRGZW5jZWRGcmFtZVJlcG9ydGlu Z0JlYWNvbkludGVybmFsKAotLSAgICAgICAgRGVzdGluYXRpb25FbnVtRXZlbnQoZXZlbnRfdHlw ZSwgZXZlbnRfZGF0YSksIGRlc3RpbmF0aW9uLAotKyAgICAgICAgRGVzdGluYXRpb25FbnVtRXZl bnR7ZXZlbnRfdHlwZSwgZXZlbnRfZGF0YX0sIGRlc3RpbmF0aW9uLAotICAgICAgICAgYXR0cmli dXRpb25fcmVwb3J0aW5nX3J1bnRpbWVfZmVhdHVyZXMpOwotICAgfQotIH0KLUBAIC04NTkzLDcg Kzg1OTMsNyBAQCB2b2lkIFJlbmRlckZyYW1lSG9zdEltcGw6OlNlbmRGZW5jZWRGcmFtCi0gICB9 Ci0gCi0gICBTZW5kRmVuY2VkRnJhbWVSZXBvcnRpbmdCZWFjb25JbnRlcm5hbCgKLS0gICAgICBE ZXN0aW5hdGlvblVSTEV2ZW50KGRlc3RpbmF0aW9uX3VybCksCi0rICAgICAgRGVzdGluYXRpb25V UkxFdmVudHtkZXN0aW5hdGlvbl91cmx9LAotICAgICAgIGJsaW5rOjpGZW5jZWRGcmFtZTo6UmVw b3J0aW5nRGVzdGluYXRpb246OmtCdXllciwKLSAgICAgICBhdHRyaWJ1dGlvbl9yZXBvcnRpbmdf cnVudGltZV9mZWF0dXJlcyk7Ci0gfQotQEAgLTg3MzAsNyArODczMCw3IEBAIHZvaWQgUmVuZGVy RnJhbWVIb3N0SW1wbDo6TWF5YmVTZW5kRmVuY2UKLSAgICAgICAgIGRhdGEgPSBpbmZvLT5kYXRh OwotICAgICAgIH0KLSAgICAgICBpbml0aWF0b3JfcmZoLT5TZW5kRmVuY2VkRnJhbWVSZXBvcnRp bmdCZWFjb25JbnRlcm5hbCgKLS0gICAgICAgICAgQXV0b21hdGljQmVhY29uRXZlbnQoZXZlbnRf dHlwZSwgZGF0YSksIGRlc3RpbmF0aW9uLAotKyAgICAgICAgICBBdXRvbWF0aWNCZWFjb25FdmVu dHtldmVudF90eXBlLCBkYXRhfSwgZGVzdGluYXRpb24sCi0gICAgICAgICAgIGF0dHJpYnV0aW9u X3JlcG9ydGluZ19mZWF0dXJlcywgbmF2aWdhdGlvbl9yZXF1ZXN0LkdldE5hdmlnYXRpb25JZCgp KTsKLSAgICAgfQotICAgfSBlbHNlIHsKLUBAIC04NzQxLDcgKzg3NDEsNyBAQCB2b2lkIFJlbmRl ckZyYW1lSG9zdEltcGw6Ok1heWJlU2VuZEZlbmNlCi0gICAgIGZvciAoYmxpbms6OkZlbmNlZEZy YW1lOjpSZXBvcnRpbmdEZXN0aW5hdGlvbiBkZXN0aW5hdGlvbiA6Ci0gICAgICAgICAgaW5mby0+ ZGVzdGluYXRpb25zKSB7Ci0gICAgICAgaW5pdGlhdG9yX3JmaC0+U2VuZEZlbmNlZEZyYW1lUmVw b3J0aW5nQmVhY29uSW50ZXJuYWwoCi0tICAgICAgICAgIEF1dG9tYXRpY0JlYWNvbkV2ZW50KGV2 ZW50X3R5cGUsIGluZm8tPmRhdGEpLCBkZXN0aW5hdGlvbiwKLSsgICAgICAgICAgQXV0b21hdGlj QmVhY29uRXZlbnR7ZXZlbnRfdHlwZSwgaW5mby0+ZGF0YX0sIGRlc3RpbmF0aW9uLAotICAgICAg ICAgICBpbmZvLT5hdHRyaWJ1dGlvbl9yZXBvcnRpbmdfcnVudGltZV9mZWF0dXJlcywKLSAgICAg ICAgICAgbmF2aWdhdGlvbl9yZXF1ZXN0LkdldE5hdmlnYXRpb25JZCgpKTsKLSAgICAgfQotZGlm ZiAtdXAgY2hyb21pdW0tMTIxLjAuNjE2Ny41Ny9iYXNlL25peC9taW1lX3V0aWxfeGRnLmNjLm1l IGNocm9taXVtLTEyMS4wLjYxNjcuNTcvYmFzZS9uaXgvbWltZV91dGlsX3hkZy5jYwotLS0tIGNo cm9taXVtLTEyMS4wLjYxNjcuNTcvYmFzZS9uaXgvbWltZV91dGlsX3hkZy5jYy5tZQkyMDI0LTAx LTIxIDE2OjU0OjE1LjI2MTg0NDQ0OCArMDEwMAotKysrIGNocm9taXVtLTEyMS4wLjYxNjcuNTcv YmFzZS9uaXgvbWltZV91dGlsX3hkZy5jYwkyMDI0LTAxLTIxIDE2OjU1OjQ4LjcwNTU3NzQyNCAr MDEwMAotQEAgLTU2LDcgKzU2LDcgQEAgdm9pZCBMb2FkQWxsTWltZUNhY2hlRmlsZXMoTWltZVR5 cGVNYXAmCi0gICBmb3IgKGNvbnN0IGF1dG8mIHBhdGggOiBHZXRYREdEYXRhU2VhcmNoTG9jYXRp b25zKGVudi5nZXQoKSkpIHsKLSAgICAgRmlsZVBhdGggbWltZV9jYWNoZSA9IHBhdGguQXBwZW5k KCJtaW1lL21pbWUuY2FjaGUiKTsKLSAgICAgaWYgKEdldEZpbGVJbmZvKG1pbWVfY2FjaGUsICZp bmZvKSAmJiBQYXJzZU1pbWVUeXBlcyhtaW1lX2NhY2hlLCBtYXApKSB7Ci0tICAgICAgZmlsZXMu ZW1wbGFjZV9iYWNrKG1pbWVfY2FjaGUsIGluZm8ubGFzdF9tb2RpZmllZCk7Ci0rICAgICAgZmls ZXMuZW1wbGFjZV9iYWNrKCkgPSB7bWltZV9jYWNoZSwgaW5mby5sYXN0X21vZGlmaWVkfTsKLSAg ICAgfQotICAgfQotIH0KLWRpZmYgLXVwIGNocm9taXVtLTEyMS4wLjYxNjcuNTcvY29tcG9uZW50 cy9wZXJmb3JtYW5jZV9tYW5hZ2VyL3dvcmtlcl93YXRjaGVyLmNjLm1lIGNocm9taXVtLTEyMS4w LjYxNjcuNTcvY29tcG9uZW50cy9wZXJmb3JtYW5jZV9tYW5hZ2VyL3dvcmtlcl93YXRjaGVyLmNj Ci0tLS0gY2hyb21pdW0tMTIxLjAuNjE2Ny41Ny9jb21wb25lbnRzL3BlcmZvcm1hbmNlX21hbmFn ZXIvd29ya2VyX3dhdGNoZXIuY2MubWUJMjAyNC0wMS0yMSAxODoxMTozMS4zOTc4NTk2MDggKzAx MDAKLSsrKyBjaHJvbWl1bS0xMjEuMC42MTY3LjU3L2NvbXBvbmVudHMvcGVyZm9ybWFuY2VfbWFu YWdlci93b3JrZXJfd2F0Y2hlci5jYwkyMDI0LTAxLTIxIDE4OjIwOjA3LjcxNTQxNTAzNyArMDEw MAotQEAgLTIzOSw3ICsyMzksNyBAQCB2b2lkIFdvcmtlcldhdGNoZXI6Ok9uV29ya2VyQ3JlYXRl ZCgKLSAgIERDSEVDSyhpbnNlcnRpb25fcmVzdWx0LnNlY29uZCk7Ci0gCi0gICBhYnNsOjp2aXNp dCgKLS0gICAgICBiYXNlOjpPdmVybG9hZGVkKAotKyAgICAgIGJhc2U6Ok92ZXJsb2FkZWR7Ci0g ICAgICAgICAgIFsmLAotICAgICAgICAgICAgdGhpc10oY29uc3QgY29udGVudDo6R2xvYmFsUmVu ZGVyRnJhbWVIb3N0SWQmIHJlbmRlcl9mcmFtZV9ob3N0X2lkKSB7Ci0gICAgICAgICAgICAgQWRk RnJhbWVDbGllbnRDb25uZWN0aW9uKGluc2VydGlvbl9yZXN1bHQuZmlyc3QtPnNlY29uZC5nZXQo KSwKLUBAIC0yNDgsNyArMjQ4LDcgQEAgdm9pZCBXb3JrZXJXYXRjaGVyOjpPbldvcmtlckNyZWF0 ZWQoCi0gICAgICAgICAgIFsmLCB0aGlzXShibGluazo6RGVkaWNhdGVkV29ya2VyVG9rZW4gZGVk aWNhdGVkX3dvcmtlcl90b2tlbikgewotICAgICAgICAgICAgIENvbm5lY3REZWRpY2F0ZWRXb3Jr ZXJDbGllbnQoaW5zZXJ0aW9uX3Jlc3VsdC5maXJzdC0+c2Vjb25kLmdldCgpLAotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVkaWNhdGVkX3dvcmtlcl90b2tlbik7 Ci0tICAgICAgICAgIH0pLAotKyAgICAgICAgICB9fSwKLSAgICAgICBjcmVhdG9yKTsKLSB9Ci0g Ci1AQCAtMjY1LDcgKzI2NSw3IEBAIHZvaWQgV29ya2VyV2F0Y2hlcjo6T25CZWZvcmVXb3JrZXJE ZXN0cm8KLSAgIC8vIEZpcnN0IGRpc2Nvbm5lY3QgdGhlIGNyZWF0b3IncyBub2RlIGZyb20gdGhp cyB3b3JrZXIgbm9kZS4KLSAKLSAgIGFic2w6OnZpc2l0KAotLSAgICAgIGJhc2U6Ok92ZXJsb2Fk ZWQoCi0rICAgICAgYmFzZTo6T3ZlcmxvYWRlZHsKLSAgICAgICAgICAgWyYsCi0gICAgICAgICAg ICB0aGlzXShjb25zdCBjb250ZW50OjpHbG9iYWxSZW5kZXJGcmFtZUhvc3RJZCYgcmVuZGVyX2Zy YW1lX2hvc3RfaWQpIHsKLSAgICAgICAgICAgICBSZW1vdmVGcmFtZUNsaWVudENvbm5lY3Rpb24o d29ya2VyX25vZGUuZ2V0KCksCi1AQCAtMjc0LDcgKzI3NCw3IEBAIHZvaWQgV29ya2VyV2F0Y2hl cjo6T25CZWZvcmVXb3JrZXJEZXN0cm8KLSAgICAgICAgICAgWyYsIHRoaXNdKGJsaW5rOjpEZWRp Y2F0ZWRXb3JrZXJUb2tlbiBkZWRpY2F0ZWRfd29ya2VyX3Rva2VuKSB7Ci0gICAgICAgICAgICAg RGlzY29ubmVjdERlZGljYXRlZFdvcmtlckNsaWVudCh3b3JrZXJfbm9kZS5nZXQoKSwKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZGljYXRlZF93b3JrZXJf dG9rZW4pOwotLSAgICAgICAgICB9KSwKLSsgICAgICAgICAgfX0sCi0gICAgICAgY3JlYXRvcik7 Ci0gCi0gICAvLyBEaXNjb25uZWN0IGFsbCBjaGlsZCB3b3JrZXJzIGJlZm9yZSBkZXN0cm95aW5n IHRoZSBub2RlLgotQEAgLTQ0Niw3ICs0NDYsNyBAQCB2b2lkIFdvcmtlcldhdGNoZXI6Ok9uQ29u dHJvbGxlZUFkZGVkKAotICAgICBjb25zdCBzdGQ6OnN0cmluZyYgY2xpZW50X3V1aWQsCi0gICAg IGNvbnN0IGNvbnRlbnQ6OlNlcnZpY2VXb3JrZXJDbGllbnRJbmZvJiBjbGllbnRfaW5mbykgewot ICAgYWJzbDo6dmlzaXQoCi0tICAgICAgYmFzZTo6T3ZlcmxvYWRlZCgKLSsgICAgICBiYXNlOjpP dmVybG9hZGVkewotICAgICAgICAgICBbJiwgdGhpc10oY29udGVudDo6R2xvYmFsUmVuZGVyRnJh bWVIb3N0SWQgcmVuZGVyX2ZyYW1lX2hvc3RfaWQpIHsKLSAgICAgICAgICAgICAvLyBGb3Igd2lu ZG93IGNsaWVudHMsIGl0IGlzIG5lY2Vzc2FyeSB0byB3YWl0IHVudGlsIHRoZSBuYXZpZ2F0aW9u Ci0gICAgICAgICAgICAgLy8gaGFzIGNvbW1pdHRlZCB0byBhIFJlbmRlckZyYW1lSG9zdC4KLUBA IC00ODQsNyArNDg0LDcgQEAgdm9pZCBXb3JrZXJXYXRjaGVyOjpPbkNvbnRyb2xsZWVBZGRlZCgK LSAgICAgICAgICAgICAgIENvbm5lY3RTaGFyZWRXb3JrZXJDbGllbnQoc2VydmljZV93b3JrZXJf bm9kZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hhcmVkX3dv cmtlcl90b2tlbik7Ci0gICAgICAgICAgICAgfQotLSAgICAgICAgICB9KSwKLSsgICAgICAgICAg fX0sCi0gICAgICAgY2xpZW50X2luZm8pOwotIH0KLSAKLUBAIC01MjQsNyArNTI0LDcgQEAgdm9p ZCBXb3JrZXJXYXRjaGVyOjpPbkNvbnRyb2xsZWVSZW1vdmVkKAotICAgICByZXR1cm47Ci0gCi0g ICBhYnNsOjp2aXNpdCgKLS0gICAgICBiYXNlOjpPdmVybG9hZGVkKAotKyAgICAgIGJhc2U6Ok92 ZXJsb2FkZWR7Ci0gICAgICAgICAgIFsmLCB0aGlzXShjb250ZW50OjpHbG9iYWxSZW5kZXJGcmFt ZUhvc3RJZCByZW5kZXJfZnJhbWVfaG9zdF9pZCkgewotICAgICAgICAgICAgIFJlbW92ZUZyYW1l Q2xpZW50Q29ubmVjdGlvbih3b3JrZXJfbm9kZSwgcmVuZGVyX2ZyYW1lX2hvc3RfaWQpOwotICAg ICAgICAgICB9LAotQEAgLTUzNCw3ICs1MzQsNyBAQCB2b2lkIFdvcmtlcldhdGNoZXI6Ok9uQ29u dHJvbGxlZVJlbW92ZWQoCi0gICAgICAgICAgIH0sCi0gICAgICAgICAgIFsmLCB0aGlzXShibGlu azo6U2hhcmVkV29ya2VyVG9rZW4gc2hhcmVkX3dvcmtlcl90b2tlbikgewotICAgICAgICAgICAg IERpc2Nvbm5lY3RTaGFyZWRXb3JrZXJDbGllbnQod29ya2VyX25vZGUsIHNoYXJlZF93b3JrZXJf dG9rZW4pOwotLSAgICAgICAgICB9KSwKLSsgICAgICAgICAgfX0sCi0gICAgICAgY2xpZW50KTsK LSB9Ci0gCi1AQCAtODEwLDcgKzgxMCw3IEBAIHZvaWQgV29ya2VyV2F0Y2hlcjo6Q29ubmVjdEFs bFNlcnZpY2VXb3IKLSAKLSAgIGZvciAoY29uc3QgYXV0byYga3YgOiBpdC0+c2Vjb25kKSB7Ci0g ICAgIGFic2w6OnZpc2l0KAotLSAgICAgICAgYmFzZTo6T3ZlcmxvYWRlZCgKLSsgICAgICAgIGJh c2U6Ok92ZXJsb2FkZWR7Ci0gICAgICAgICAgICAgWyYsIHRoaXNdKGNvbnRlbnQ6Okdsb2JhbFJl bmRlckZyYW1lSG9zdElkIHJlbmRlcl9mcmFtZV9ob3N0X2lkKSB7Ci0gICAgICAgICAgICAgICBB ZGRGcmFtZUNsaWVudENvbm5lY3Rpb24oc2VydmljZV93b3JrZXJfbm9kZSwKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZW5kZXJfZnJhbWVfaG9zdF9pZCk7Ci1AQCAt ODIyLDcgKzgyMiw3IEBAIHZvaWQgV29ya2VyV2F0Y2hlcjo6Q29ubmVjdEFsbFNlcnZpY2VXb3IK LSAgICAgICAgICAgICBbJiwgdGhpc10oYmxpbms6OlNoYXJlZFdvcmtlclRva2VuIHNoYXJlZF93 b3JrZXJfdG9rZW4pIHsKLSAgICAgICAgICAgICAgIENvbm5lY3RTaGFyZWRXb3JrZXJDbGllbnQo c2VydmljZV93b3JrZXJfbm9kZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2hhcmVkX3dvcmtlcl90b2tlbik7Ci0tICAgICAgICAgICAgfSksCi0rICAgICAgICAg ICAgfX0sCi0gICAgICAgICBrdi5zZWNvbmQpOwotICAgfQotIH0KLUBAIC04MzcsNyArODM3LDcg QEAgdm9pZCBXb3JrZXJXYXRjaGVyOjpEaXNjb25uZWN0QWxsU2VydmljZQotIAotICAgZm9yIChj b25zdCBhdXRvJiBrdiA6IGl0LT5zZWNvbmQpIHsKLSAgICAgYWJzbDo6dmlzaXQoCi0tICAgICAg ICBiYXNlOjpPdmVybG9hZGVkKAotKyAgICAgICAgYmFzZTo6T3ZlcmxvYWRlZHsKLSAgICAgICAg ICAgICBbJiwgdGhpc10oCi0gICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRlbnQ6Okdsb2JhbFJl bmRlckZyYW1lSG9zdElkJiByZW5kZXJfZnJhbWVfaG9zdF9pZCkgewotICAgICAgICAgICAgICAg UmVtb3ZlRnJhbWVDbGllbnRDb25uZWN0aW9uKHNlcnZpY2Vfd29ya2VyX25vZGUsCi1AQCAtODUx LDcgKzg1MSw3IEBAIHZvaWQgV29ya2VyV2F0Y2hlcjo6RGlzY29ubmVjdEFsbFNlcnZpY2UKLSAg ICAgICAgICAgICBbJiwgdGhpc10oY29uc3QgYmxpbms6OlNoYXJlZFdvcmtlclRva2VuJiBzaGFy ZWRfd29ya2VyX3Rva2VuKSB7Ci0gICAgICAgICAgICAgICBEaXNjb25uZWN0U2hhcmVkV29ya2Vy Q2xpZW50KHNlcnZpY2Vfd29ya2VyX25vZGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHNoYXJlZF93b3JrZXJfdG9rZW4pOwotLSAgICAgICAgICAgIH0pLAot KyAgICAgICAgICAgIH19LAotICAgICAgICAga3Yuc2Vjb25kKTsKLSAgIH0KLSB9Ci1kaWZmIC11 cCBjaHJvbWl1bS0xMjEuMC42MTY3LjU3L2NvbnRlbnQvYnJvd3Nlci9maXJzdF9wYXJ0eV9zZXRz L2ZpcnN0X3BhcnR5X3NldF9wYXJzZXIuY2MubWUgY2hyb21pdW0tMTIxLjAuNjE2Ny41Ny9jb250 ZW50L2Jyb3dzZXIvZmlyc3RfcGFydHlfc2V0cy9maXJzdF9wYXJ0eV9zZXRfcGFyc2VyLmNjCi0t LS0gY2hyb21pdW0tMTIxLjAuNjE2Ny41Ny9jb250ZW50L2Jyb3dzZXIvZmlyc3RfcGFydHlfc2V0 cy9maXJzdF9wYXJ0eV9zZXRfcGFyc2VyLmNjLm1lCTIwMjQtMDEtMjEgMTg6NDA6NTIuMjg0Mzg5 Mjg2ICswMTAwCi0rKysgY2hyb21pdW0tMTIxLjAuNjE2Ny41Ny9jb250ZW50L2Jyb3dzZXIvZmly c3RfcGFydHlfc2V0cy9maXJzdF9wYXJ0eV9zZXRfcGFyc2VyLmNjCTIwMjQtMDEtMjEgMTg6NDE6 MTcuMjc2ODQwMjIyICswMTAwCi1AQCAtNzY0LDcgKzc2NCw3IEBAIEZpcnN0UGFydHlTZXRQYXJz ZXI6OlBhcnNlU2V0c0Zyb21FbnRlcnAKLSAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0Lkdl dFBvbGljeVNldHNGcm9tTGlzdCgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgcG9saWN5LkZp bmRMaXN0KGtGaXJzdFBhcnR5U2V0UG9saWN5QWRkaXRpb25zRmllbGQpLAotICAgICAgICAgICAg ICAgICAgICAgICAgICBQb2xpY3lTZXRUeXBlOjprQWRkaXRpb24pKTsKLS0gICAgcmV0dXJuIFBh cnNlZFBvbGljeVNldExpc3RzKHN0ZDo6bW92ZShyZXBsYWNlbWVudHMpLCBzdGQ6Om1vdmUoYWRk aXRpb25zKSk7Ci0rICAgIHJldHVybiBQYXJzZWRQb2xpY3lTZXRMaXN0c3tzdGQ6Om1vdmUocmVw bGFjZW1lbnRzKSwgc3RkOjptb3ZlKGFkZGl0aW9ucyl9OwotICAgfSgpOwotIAotICAgY29udGV4 dC5Qb3N0UHJvY2Vzc1NldExpc3RzKHNldF9saXN0cyk7Ci1kaWZmIC11cCBjaHJvbWl1bS0xMjEu MC42MTY3LjU3L2NvbnRlbnQvYnJvd3Nlci9pbnRlcmVzdF9ncm91cC9oZWFkZXJfZGlyZWN0X2Zy b21fc2VsbGVyX3NpZ25hbHMuaC5tZSBjaHJvbWl1bS0xMjEuMC42MTY3LjU3L2NvbnRlbnQvYnJv d3Nlci9pbnRlcmVzdF9ncm91cC9oZWFkZXJfZGlyZWN0X2Zyb21fc2VsbGVyX3NpZ25hbHMuaAot LS0tIGNocm9taXVtLTEyMS4wLjYxNjcuNTcvY29udGVudC9icm93c2VyL2ludGVyZXN0X2dyb3Vw L2hlYWRlcl9kaXJlY3RfZnJvbV9zZWxsZXJfc2lnbmFscy5oLm1lCTIwMjQtMDEtMjEgMTk6MzA6 MDAuNTM2Mzg3ODQ0ICswMTAwCi0rKysgY2hyb21pdW0tMTIxLjAuNjE2Ny41Ny9jb250ZW50L2Jy b3dzZXIvaW50ZXJlc3RfZ3JvdXAvaGVhZGVyX2RpcmVjdF9mcm9tX3NlbGxlcl9zaWduYWxzLmgJ MjAyNC0wMS0yMSAyMDoyOTo1MC4yMzYyODc1MTQgKzAxMDAKLUBAIC0xMzMsNiArMTMzLDcgQEAg Y2xhc3MgQ09OVEVOVF9FWFBPUlQgSGVhZGVyRGlyZWN0RnJvbVNlbAotIAotICAgICAvLyBUaGUg QWQtQXVjdGlvbi1TaWduYWxzIHJlc3BvbnNlIHNlcnZlZCBieSBgb3JpZ2luYC4KLSAgICAgc3Rk OjpzdHJpbmcgcmVzcG9uc2VfanNvbjsKLSsgICAgVW5wcm9jZXNzZWRSZXNwb25zZShhdXRvIHUs IGF1dG8gcykgOiBvcmlnaW4odSksIHJlc3BvbnNlX2pzb24ocykgeyB9Ci0gICB9OwotIAotICAg Ly8gSW5mb3JtYXRpb24gZnJvbSBQYXJzZUFuZEZpbmQoKSBjYWxscyB1c2VkIGJ5IFBhcnNlQW5k RmluZENvbXBsZXRlZC4KLWRpZmYgLXVwIGNocm9taXVtLTEyMS4wLjYxNjcuNTcvY29udGVudC9i cm93c2VyL3NlcnZpY2Vfd29ya2VyL3NlcnZpY2Vfd29ya2VyX21haW5fcmVzb3VyY2VfbG9hZGVy X2ludGVyY2VwdG9yLmNjLm1lIGNocm9taXVtLTEyMS4wLjYxNjcuNTcvY29udGVudC9icm93c2Vy L3NlcnZpY2Vfd29ya2VyL3NlcnZpY2Vfd29ya2VyX21haW5fcmVzb3VyY2VfbG9hZGVyX2ludGVy Y2VwdG9yLmNjCi0tLS0gY2hyb21pdW0tMTIxLjAuNjE2Ny41Ny9jb250ZW50L2Jyb3dzZXIvc2Vy dmljZV93b3JrZXIvc2VydmljZV93b3JrZXJfbWFpbl9yZXNvdXJjZV9sb2FkZXJfaW50ZXJjZXB0 b3IuY2MubWUJMjAyNC0wMS0yMSAyMTo1ODo0OC43NzMzNjYzMDEgKzAxMDAKLSsrKyBjaHJvbWl1 bS0xMjEuMC42MTY3LjU3L2NvbnRlbnQvYnJvd3Nlci9zZXJ2aWNlX3dvcmtlci9zZXJ2aWNlX3dv cmtlcl9tYWluX3Jlc291cmNlX2xvYWRlcl9pbnRlcmNlcHRvci5jYwkyMDI0LTAxLTIxIDIyOjAy OjE3Ljk1NjA4NjE2NyArMDEwMAotQEAgLTM2MCwxMCArMzYwLDEwIEBAIFNlcnZpY2VXb3JrZXJN YWluUmVzb3VyY2VMb2FkZXJJbnRlcmNlcHQKLSAgIH0KLSAgIGF1dG8qIHN0b3JhZ2VfcGFydGl0 aW9uID0gcHJvY2Vzcy0+R2V0U3RvcmFnZVBhcnRpdGlvbigpOwotIAotLSAgcmV0dXJuIGFic2w6 OnZpc2l0KGJhc2U6Ok92ZXJsb2FkZWQoWyYsIHRoaXNdKGF1dG8gdG9rZW4pIHsKLSsgIHJldHVy biBhYnNsOjp2aXNpdChiYXNlOjpPdmVybG9hZGVke1smLCB0aGlzXShhdXRvIHRva2VuKSB7Ci0g ICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gR2V0U3RvcmFnZUtleUZyb21Xb3JrZXJIb3N0 KHN0b3JhZ2VfcGFydGl0aW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB0b2tlbiwgb3JpZ2luKTsKLS0gICAgICAgICAgICAgICAg ICAgICB9KSwKLSsgICAgICAgICAgICAgICAgICAgICB9fSwKLSAgICAgICAgICAgICAgICAgICAg ICAqd29ya2VyX3Rva2VuXyk7Ci0gfQotIAotZGlmZiAtdXAgY2hyb21pdW0tMTIxLjAuNjE2Ny41 Ny9jb250ZW50L2Jyb3dzZXIvc2VydmljZV93b3JrZXIvc2VydmljZV93b3JrZXJfY29udGFpbmVy X2hvc3QuY2MubWUgY2hyb21pdW0tMTIxLjAuNjE2Ny41Ny9jb250ZW50L2Jyb3dzZXIvc2Vydmlj ZV93b3JrZXIvc2VydmljZV93b3JrZXJfY29udGFpbmVyX2hvc3QuY2MKLS0tLSBjaHJvbWl1bS0x MjEuMC42MTY3LjU3L2NvbnRlbnQvYnJvd3Nlci9zZXJ2aWNlX3dvcmtlci9zZXJ2aWNlX3dvcmtl cl9jb250YWluZXJfaG9zdC5jYy5tZQkyMDI0LTAxLTIxIDIyOjA0OjMwLjQ0NjQ1NDY5NyArMDEw MAotKysrIGNocm9taXVtLTEyMS4wLjYxNjcuNTcvY29udGVudC9icm93c2VyL3NlcnZpY2Vfd29y a2VyL3NlcnZpY2Vfd29ya2VyX2NvbnRhaW5lcl9ob3N0LmNjCTIwMjQtMDEtMjEgMjI6MDU6MjIu ODQ3MzkxNDgxICswMTAwCi1AQCAtODcwLDcgKzg3MCw3IEBAIFNlcnZpY2VXb3JrZXJDb250YWlu ZXJIb3N0OjpHZXRDbGllbnRUeXAKLSAgIERDSEVDS19DQUxMRURfT05fVkFMSURfU0VRVUVOQ0Uo c2VxdWVuY2VfY2hlY2tlcl8pOwotICAgRENIRUNLKGNsaWVudF9pbmZvXyk7Ci0gICByZXR1cm4g YWJzbDo6dmlzaXQoCi0tICAgICAgYmFzZTo6T3ZlcmxvYWRlZCgKLSsgICAgICBiYXNlOjpPdmVy bG9hZGVkewotICAgICAgICAgICBbXShHbG9iYWxSZW5kZXJGcmFtZUhvc3RJZCByZW5kZXJfZnJh bWVfaG9zdF9pZCkgewotICAgICAgICAgICAgIHJldHVybiBibGluazo6bW9qb206OlNlcnZpY2VX b3JrZXJDbGllbnRUeXBlOjprV2luZG93OwotICAgICAgICAgICB9LAotQEAgLTg3OSw3ICs4Nzks NyBAQCBTZXJ2aWNlV29ya2VyQ29udGFpbmVySG9zdDo6R2V0Q2xpZW50VHlwCi0gICAgICAgICAg IH0sCi0gICAgICAgICAgIFtdKGJsaW5rOjpTaGFyZWRXb3JrZXJUb2tlbiBzaGFyZWRfd29ya2Vy X3Rva2VuKSB7Ci0gICAgICAgICAgICAgcmV0dXJuIGJsaW5rOjptb2pvbTo6U2VydmljZVdvcmtl ckNsaWVudFR5cGU6OmtTaGFyZWRXb3JrZXI7Ci0tICAgICAgICAgIH0pLAotKyAgICAgICAgICB9 fSwKLSAgICAgICAqY2xpZW50X2luZm9fKTsKLSB9Ci0gCi1kaWZmIC11cCBjaHJvbWl1bS0xMjEu MC42MTY3LjU3L2NvbnRlbnQvYnJvd3Nlci93b3JrZXJfaG9zdC9kZWRpY2F0ZWRfd29ya2VyX2hv c3QuY2MubWUgY2hyb21pdW0tMTIxLjAuNjE2Ny41Ny9jb250ZW50L2Jyb3dzZXIvd29ya2VyX2hv c3QvZGVkaWNhdGVkX3dvcmtlcl9ob3N0LmNjCi0tLS0gY2hyb21pdW0tMTIxLjAuNjE2Ny41Ny9j b250ZW50L2Jyb3dzZXIvd29ya2VyX2hvc3QvZGVkaWNhdGVkX3dvcmtlcl9ob3N0LmNjLm1lCTIw MjQtMDEtMjEgMjI6Mzc6MDAuOTY5NDE2MTQ4ICswMTAwCi0rKysgY2hyb21pdW0tMTIxLjAuNjE2 Ny41Ny9jb250ZW50L2Jyb3dzZXIvd29ya2VyX2hvc3QvZGVkaWNhdGVkX3dvcmtlcl9ob3N0LmNj CTIwMjQtMDEtMjEgMjI6Mzg6MDcuNzU0NTI4MzM1ICswMTAwCi1AQCAtMjUxLDcgKzI1MSw3IEBA IHZvaWQgRGVkaWNhdGVkV29ya2VySG9zdDo6U3RhcnRTY3JpcHRMb2EKLSAgIFJlbmRlckZyYW1l SG9zdEltcGwqIGNyZWF0b3JfcmVuZGVyX2ZyYW1lX2hvc3QgPSBudWxscHRyOwotICAgRGVkaWNh dGVkV29ya2VySG9zdCogY3JlYXRvcl93b3JrZXIgPSBudWxscHRyOwotIAotLSAgYWJzbDo6dmlz aXQoYmFzZTo6T3ZlcmxvYWRlZCgKLSsgIGFic2w6OnZpc2l0KGJhc2U6Ok92ZXJsb2FkZWR7Ci0g ICAgICAgICAgICAgICAgICAgWyZdKGNvbnN0IEdsb2JhbFJlbmRlckZyYW1lSG9zdElkJiByZW5k ZXJfZnJhbWVfaG9zdF9pZCkgewotICAgICAgICAgICAgICAgICAgICAgY3JlYXRvcl9yZW5kZXJf ZnJhbWVfaG9zdCA9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgUmVuZGVyRnJhbWVIb3N0SW1w bDo6RnJvbUlEKHJlbmRlcl9mcmFtZV9ob3N0X2lkKTsKLUBAIC0yNTksNyArMjU5LDcgQEAgdm9p ZCBEZWRpY2F0ZWRXb3JrZXJIb3N0OjpTdGFydFNjcmlwdExvYQotICAgICAgICAgICAgICAgICAg IFsmXShibGluazo6RGVkaWNhdGVkV29ya2VyVG9rZW4gZGVkaWNhdGVkX3dvcmtlcl90b2tlbikg ewotICAgICAgICAgICAgICAgICAgICAgY3JlYXRvcl93b3JrZXIgPSBzZXJ2aWNlXy0+R2V0RGVk aWNhdGVkV29ya2VySG9zdEZyb21Ub2tlbigKLSAgICAgICAgICAgICAgICAgICAgICAgICBkZWRp Y2F0ZWRfd29ya2VyX3Rva2VuKTsKLS0gICAgICAgICAgICAgICAgICB9KSwKLSsgICAgICAgICAg ICAgICAgICB9fSwKLSAgICAgICAgICAgICAgIGNyZWF0b3JfKTsKLSAKLSAgIGlmICghY3JlYXRv cl9yZW5kZXJfZnJhbWVfaG9zdCAmJiAhY3JlYXRvcl93b3JrZXIpIHsKZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9jaHJvbWl1bS0xMjEtcHl0aG9uMy1pbnZhbGlkLWVzY2Fw ZS1zZXF1ZW5jZS5wYXRjaCBiL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9jaHJvbWl1bS0xMjEt cHl0aG9uMy1pbnZhbGlkLWVzY2FwZS1zZXF1ZW5jZS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggYzJiZjViNDg5ZjdhMTkuLjAwMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3Mv Y2hyb21pdW0vcGF0Y2hlcy9jaHJvbWl1bS0xMjEtcHl0aG9uMy1pbnZhbGlkLWVzY2FwZS1zZXF1 ZW5jZS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDc3ICswLDAgQEAKLWRpZmYgLXVwIGNocm9t aXVtLTEyMS4wLjYxNjcuNTcvdGhpcmRfcGFydHkvY2F0YXB1bHQvY29tbW9uL3B5X3Z1bGNhbml6 ZS9weV92dWxjYW5pemUvaHRtbF9nZW5lcmF0aW9uX2NvbnRyb2xsZXIucHkubWUgY2hyb21pdW0t MTIxLjAuNjE2Ny41Ny90aGlyZF9wYXJ0eS9jYXRhcHVsdC9jb21tb24vcHlfdnVsY2FuaXplL3B5 X3Z1bGNhbml6ZS9odG1sX2dlbmVyYXRpb25fY29udHJvbGxlci5weQotLS0tIGNocm9taXVtLTEy MS4wLjYxNjcuNTcvdGhpcmRfcGFydHkvY2F0YXB1bHQvY29tbW9uL3B5X3Z1bGNhbml6ZS9weV92 dWxjYW5pemUvaHRtbF9nZW5lcmF0aW9uX2NvbnRyb2xsZXIucHkubWUJMjAyNC0wMS0xNSAyMDo0 ODoyOC4xNzczOTcxMDIgKzAxMDAKLSsrKyBjaHJvbWl1bS0xMjEuMC42MTY3LjU3L3RoaXJkX3Bh cnR5L2NhdGFwdWx0L2NvbW1vbi9weV92dWxjYW5pemUvcHlfdnVsY2FuaXplL2h0bWxfZ2VuZXJh dGlvbl9jb250cm9sbGVyLnB5CTIwMjQtMDEtMTUgMjA6NDg6NDYuNDI3NzY4MzI4ICswMTAwCi1A QCAtMTgsNyArMTgsNyBAQCBjbGFzcyBIVE1MR2VuZXJhdGlvbkNvbnRyb2xsZXIob2JqZWN0KToK LSAKLSAgIGRlZiBHZXRIVE1MRm9ySW5saW5lU3R5bGVzaGVldChzZWxmLCBjb250ZW50cyk6Ci0g ICAgIGlmIHNlbGYuY3VycmVudF9tb2R1bGUgaXMgTm9uZToKLS0gICAgICBpZiByZS5zZWFyY2go J3VybFwoLitcKScsIGNvbnRlbnRzKToKLSsgICAgICBpZiByZS5zZWFyY2gocid1cmxcKC4rXCkn LCBjb250ZW50cyk6Ci0gICAgICAgICByYWlzZSBFeGNlcHRpb24oCi0gICAgICAgICAgICAgJ0Rl ZmF1bHQgSFRNTEdlbmVyYXRpb25Db250cm9sbGVyIGNhbm5vdCBoYW5kbGUgaW5saW5lIHN0eWxl IHVybHMnKQotICAgICAgIHJldHVybiBjb250ZW50cwotZGlmZiAtdXAgY2hyb21pdW0tMTIxLjAu NjE2Ny41Ny90aGlyZF9wYXJ0eS9jYXRhcHVsdC9jb21tb24vcHlfdnVsY2FuaXplL3B5X3Z1bGNh bml6ZS9qc191dGlscy5weS5tZSBjaHJvbWl1bS0xMjEuMC42MTY3LjU3L3RoaXJkX3BhcnR5L2Nh dGFwdWx0L2NvbW1vbi9weV92dWxjYW5pemUvcHlfdnVsY2FuaXplL2pzX3V0aWxzLnB5Ci0tLS0g Y2hyb21pdW0tMTIxLjAuNjE2Ny41Ny90aGlyZF9wYXJ0eS9jYXRhcHVsdC9jb21tb24vcHlfdnVs Y2FuaXplL3B5X3Z1bGNhbml6ZS9qc191dGlscy5weS5tZQkyMDI0LTAxLTE1IDIwOjQ5OjM5LjM2 Mzg0NTA4MyArMDEwMAotKysrIGNocm9taXVtLTEyMS4wLjYxNjcuNTcvdGhpcmRfcGFydHkvY2F0 YXB1bHQvY29tbW9uL3B5X3Z1bGNhbml6ZS9weV92dWxjYW5pemUvanNfdXRpbHMucHkJMjAyNC0w MS0xNSAyMDo0OTo1Ny40MDcyMTIwOTggKzAxMDAKLUBAIC00LDQgKzQsNCBAQAotIAotIAotIGRl ZiBFc2NhcGVKU0lmTmVlZGVkKGpzKToKLS0gIHJldHVybiBqcy5yZXBsYWNlKCc8L3NjcmlwdD4n LCAnPFwvc2NyaXB0PicpCi0rICByZXR1cm4ganMucmVwbGFjZShyJzwvc2NyaXB0PicsIHInPFwv c2NyaXB0PicpCi1kaWZmIC11cCBjaHJvbWl1bS0xMjEuMC42MTY3LjU3L3RoaXJkX3BhcnR5L2Nh dGFwdWx0L2NvbW1vbi9weV92dWxjYW5pemUvcHlfdnVsY2FuaXplL3BhcnNlX2h0bWxfZGVwcy5w eS5tZSBjaHJvbWl1bS0xMjEuMC42MTY3LjU3L3RoaXJkX3BhcnR5L2NhdGFwdWx0L2NvbW1vbi9w eV92dWxjYW5pemUvcHlfdnVsY2FuaXplL3BhcnNlX2h0bWxfZGVwcy5weQotLS0tIGNocm9taXVt LTEyMS4wLjYxNjcuNTcvdGhpcmRfcGFydHkvY2F0YXB1bHQvY29tbW9uL3B5X3Z1bGNhbml6ZS9w eV92dWxjYW5pemUvcGFyc2VfaHRtbF9kZXBzLnB5Lm1lCTIwMjQtMDEtMTUgMjA6NTA6MTEuODE5 NTA1MjU0ICswMTAwCi0rKysgY2hyb21pdW0tMTIxLjAuNjE2Ny41Ny90aGlyZF9wYXJ0eS9jYXRh cHVsdC9jb21tb24vcHlfdnVsY2FuaXplL3B5X3Z1bGNhbml6ZS9wYXJzZV9odG1sX2RlcHMucHkJ MjAyNC0wMS0xNSAyMDo1MDozOC42MTEwNTAyMTMgKzAxMDAKLUBAIC0yOTMsNiArMjkzLDYgQEAg Y2xhc3MgSFRNTE1vZHVsZVBhcnNlcigpOgotICAgICAgIGh0bWwgPSAnJwotICAgICBlbHNlOgot ICAgICAgIGlmIGh0bWwuZmluZCgnPCAvc2NyaXB0PicpICE9IC0xOgotLSAgICAgICAgcmFpc2Ug RXhjZXB0aW9uKCdFc2NhcGUgc2NyaXB0IHRhZ3Mgd2l0aCA8XC9zY3JpcHQ+JykKLSsgICAgICAg IHJhaXNlIEV4Y2VwdGlvbihyJ0VzY2FwZSBzY3JpcHQgdGFncyB3aXRoIDxcL3NjcmlwdD4nKQot IAotICAgICByZXR1cm4gSFRNTE1vZHVsZVBhcnNlclJlc3VsdHMoaHRtbCkKLWRpZmYgLXVwIGNo cm9taXVtLTEyMS4wLjYxNjcuNTcvdGhpcmRfcGFydHkvY2F0YXB1bHQvY29tbW9uL3B5X3Z1bGNh bml6ZS9weV92dWxjYW5pemUvc3R5bGVfc2hlZXQucHkubWUgY2hyb21pdW0tMTIxLjAuNjE2Ny41 Ny90aGlyZF9wYXJ0eS9jYXRhcHVsdC9jb21tb24vcHlfdnVsY2FuaXplL3B5X3Z1bGNhbml6ZS9z dHlsZV9zaGVldC5weQotLS0tIGNocm9taXVtLTEyMS4wLjYxNjcuNTcvdGhpcmRfcGFydHkvY2F0 YXB1bHQvY29tbW9uL3B5X3Z1bGNhbml6ZS9weV92dWxjYW5pemUvc3R5bGVfc2hlZXQucHkubWUJ MjAyNC0wMS0xNSAyMDo0ODo1OS45MTcwNDI3MDkgKzAxMDAKLSsrKyBjaHJvbWl1bS0xMjEuMC42 MTY3LjU3L3RoaXJkX3BhcnR5L2NhdGFwdWx0L2NvbW1vbi9weV92dWxjYW5pemUvcHlfdnVsY2Fu aXplL3N0eWxlX3NoZWV0LnB5CTIwMjQtMDEtMTUgMjA6NDk6MjQuNDAyNTQwNzYxICswMTAwCi1A QCAtNjAsNyArNjAsNyBAQCBjbGFzcyBQYXJzZWRTdHlsZVNoZWV0KG9iamVjdCk6Ci0gICAgICAg cmV0dXJuICd1cmwoZGF0YTppbWFnZS8lcztiYXNlNjQsJXMpJyAlIChleHRbMTpdLCBkYXRhLmRl Y29kZSgndXRmLTgnKSkKLSAKLSAgICAgIyBJJ20gYXNzdW1pbmcgd2Ugb25seSBoYXZlIHVybCgp J3MgYXNzb2NpYXRlZCB3aXRoIGltYWdlcwotLSAgICByZXR1cm4gcmUuc3ViKCd1cmxcKCg/UDxx dW90ZT4ifFwnfCkoP1A8dXJsPlteIlwnKCldKikoP1A9cXVvdGUpXCknLAotKyAgICByZXR1cm4g cmUuc3ViKHIndXJsXCgoP1A8cXVvdGU+InxcJ3wpKD9QPHVybD5bXiJcJygpXSopKD9QPXF1b3Rl KVwpJywKLSAgICAgICAgICAgICAgICAgICBJbmxpbmVVcmwsIHNlbGYuY29udGVudHMpCi0gCi0g ICBkZWYgQXBwZW5kRGlyZWN0bHlEZXBlbmRlbnRGaWxlbmFtZXNUbyhzZWxmLCBkZXBlbmRlbnRf ZmlsZW5hbWVzKToKLUBAIC03Miw3ICs3Miw3IEBAIGNsYXNzIFBhcnNlZFN0eWxlU2hlZXQob2Jq ZWN0KToKLSAgICAgICByYWlzZSBFeGNlcHRpb24oJ0BpbXBvcnRzIGFyZSBub3Qgc3VwcG9ydGVk JykKLSAKLSAgICAgbWF0Y2hlcyA9IHJlLmZpbmRhbGwoCi0tICAgICAgICAndXJsXCgoPzpbInxc J10/KShbXiJcJygpXSopKD86WyJ8XCddPylcKScsCi0rICAgICAgICByJ3VybFwoKD86WyJ8XCdd PykoW14iXCcoKV0qKSg/OlsifFwnXT8pXCknLAotICAgICAgICAgc2VsZi5jb250ZW50cykKLSAK LSAgICAgZGVmIHJlc29sdmVfdXJsKHVybCk6Ci1kaWZmIC11cCBjaHJvbWl1bS0xMjEuMC42MTY3 LjU3L3RoaXJkX3BhcnR5L3Z1bGthbi1kZXBzL3Z1bGthbi10b29scy9zcmMvc2NyaXB0cy9nbi9n ZW5lcmF0ZV92dWxrYW5faWNkX2pzb24ucHkubWUgY2hyb21pdW0tMTIxLjAuNjE2Ny41Ny90aGly ZF9wYXJ0eS92dWxrYW4tZGVwcy92dWxrYW4tdG9vbHMvc3JjL3NjcmlwdHMvZ24vZ2VuZXJhdGVf dnVsa2FuX2ljZF9qc29uLnB5Ci0tLS0gY2hyb21pdW0tMTIxLjAuNjE2Ny41Ny90aGlyZF9wYXJ0 eS92dWxrYW4tZGVwcy92dWxrYW4tdG9vbHMvc3JjL3NjcmlwdHMvZ24vZ2VuZXJhdGVfdnVsa2Fu X2ljZF9qc29uLnB5Lm1lCTIwMjQtMDEtMTUgMjA6NTA6NTYuODEwNDIwNDAwICswMTAwCi0rKysg Y2hyb21pdW0tMTIxLjAuNjE2Ny41Ny90aGlyZF9wYXJ0eS92dWxrYW4tZGVwcy92dWxrYW4tdG9v bHMvc3JjL3NjcmlwdHMvZ24vZ2VuZXJhdGVfdnVsa2FuX2ljZF9qc29uLnB5CTIwMjQtMDEtMTUg MjA6NTI6MzMuNTA2Mzg3MjYxICswMTAwCi1AQCAtMjgsNyArMjgsNyBAQCBpbXBvcnQgcGxhdGZv cm0KLSBpbXBvcnQgc3lzCi0gCi0gZGVmIGdsb2Jfc2xhc2goZGlybmFtZSk6Ci0tICAgICIiIkxp a2UgcmVndWxhciBnbG9iIGJ1dCByZXBsYWNlcyBcIHdpdGggLyBpbiByZXR1cm5lZCBwYXRocy4i IiIKLSsgICAgIiIiTGlrZSByZWd1bGFyIGdsb2IgYnV0IHJlcGxhY2VzIFxcIHdpdGggLyBpbiBy ZXR1cm5lZCBwYXRocy4iIiIKLSAgICAgcmV0dXJuIFtzLnJlcGxhY2UoJ1xcJywgJy8nKSBmb3Ig cyBpbiBnbG9iLmdsb2IoZGlybmFtZSldCi0gCi0gZGVmIG1haW4oKToKLWRpZmYgLXVwIGNocm9t aXVtLTEyMS4wLjYxNjcuNTcvdGhpcmRfcGFydHkvdnVsa2FuLWRlcHMvdnVsa2FuLXZhbGlkYXRp b24tbGF5ZXJzL3NyYy9zY3JpcHRzL2duL2dlbmVyYXRlX3Z1bGthbl9sYXllcnNfanNvbi5weS5t ZSBjaHJvbWl1bS0xMjEuMC42MTY3LjU3L3RoaXJkX3BhcnR5L3Z1bGthbi1kZXBzL3Z1bGthbi12 YWxpZGF0aW9uLWxheWVycy9zcmMvc2NyaXB0cy9nbi9nZW5lcmF0ZV92dWxrYW5fbGF5ZXJzX2pz b24ucHkKLS0tLSBjaHJvbWl1bS0xMjEuMC42MTY3LjU3L3RoaXJkX3BhcnR5L3Z1bGthbi1kZXBz L3Z1bGthbi12YWxpZGF0aW9uLWxheWVycy9zcmMvc2NyaXB0cy9nbi9nZW5lcmF0ZV92dWxrYW5f bGF5ZXJzX2pzb24ucHkubWUJMjAyNC0wMS0xNSAyMDo1MjozOC4wMTY0NzkwMDAgKzAxMDAKLSsr KyBjaHJvbWl1bS0xMjEuMC42MTY3LjU3L3RoaXJkX3BhcnR5L3Z1bGthbi1kZXBzL3Z1bGthbi12 YWxpZGF0aW9uLWxheWVycy9zcmMvc2NyaXB0cy9nbi9nZW5lcmF0ZV92dWxrYW5fbGF5ZXJzX2pz b24ucHkJMjAyNC0wMS0xNSAyMDo1Mjo0OC44NjM2OTk2NDAgKzAxMDAKLUBAIC0yOCw3ICsyOCw3 IEBAIGltcG9ydCBwbGF0Zm9ybQotIGltcG9ydCBzeXMKLSAKLSBkZWYgZ2xvYl9zbGFzaChkaXJu YW1lKToKLS0gICAgIiIiTGlrZSByZWd1bGFyIGdsb2IgYnV0IHJlcGxhY2VzIFwgd2l0aCAvIGlu IHJldHVybmVkIHBhdGhzLiIiIgotKyAgICAiIiJMaWtlIHJlZ3VsYXIgZ2xvYiBidXQgcmVwbGFj ZXMgXFwgd2l0aCAvIGluIHJldHVybmVkIHBhdGhzLiIiIgotICAgICByZXR1cm4gW3MucmVwbGFj ZSgnXFwnLCAnLycpIGZvciBzIGluIGdsb2IuZ2xvYihkaXJuYW1lKV0KLSAKLSBkZWYgbWFpbigp OgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2Nocm9taXVtLTEyMS10eXBl bmFtZS5wYXRjaCBiL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9jaHJvbWl1bS0xMjEtdHlwZW5h bWUucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU4M2U2MmM2MGE1NGViLi4w MDAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvY2hyb21pdW0tMTIx LXR5cGVuYW1lLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMjU5ICswLDAgQEAKLS0tLSBjaHJv bWl1bS0xMjAuMC42MDk5LjU2L2Jhc2UvY29udGFpbmVycy9tYXBfdXRpbC5oLm1lCTIwMjMtMTIt MDIgMTk6MDA6MTkuNjk2ODAxNTYzICswMTAwCi0rKysgY2hyb21pdW0tMTIwLjAuNjA5OS41Ni9i YXNlL2NvbnRhaW5lcnMvbWFwX3V0aWwuaAkyMDIzLTEyLTAyIDE5OjAwOjQ3LjA0OTMzNzU0NyAr MDEwMAotQEAgLTQyLDcgKzQyLDcgQEAKLSB0ZW1wbGF0ZSA8dHlwZW5hbWUgTWFwLAotICAgICAg ICAgICB0eXBlbmFtZSBLZXksCi0gICAgICAgICAgIHR5cGVuYW1lIE1hcHBlZEVsZW1lbnRUeXBl ID0KLS0gICAgICAgICAgICAgIHN0ZDo6cG9pbnRlcl90cmFpdHM8aW50ZXJuYWw6Ok1hcHBlZFR5 cGU8TWFwPj46OmVsZW1lbnRfdHlwZT4KLSsgICAgICAgICAgICAgIHR5cGVuYW1lIHN0ZDo6cG9p bnRlcl90cmFpdHM8aW50ZXJuYWw6Ok1hcHBlZFR5cGU8TWFwPj46OmVsZW1lbnRfdHlwZT4KLSBj b25zdGV4cHIgY29uc3QgTWFwcGVkRWxlbWVudFR5cGUqIEZpbmRQdHJPck51bGwoY29uc3QgTWFw JiBtYXAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNvbnN0IEtleSYga2V5KSB7Ci0gICBhdXRvIGl0ID0gbWFwLmZpbmQoa2V5KTsKLUBAIC01OCw3 ICs1OCw3IEBACi0gdGVtcGxhdGUgPHR5cGVuYW1lIE1hcCwKLSAgICAgICAgICAgdHlwZW5hbWUg S2V5LAotICAgICAgICAgICB0eXBlbmFtZSBNYXBwZWRFbGVtZW50VHlwZSA9Ci0tICAgICAgICAg ICAgICBzdGQ6OnBvaW50ZXJfdHJhaXRzPGludGVybmFsOjpNYXBwZWRUeXBlPE1hcD4+OjplbGVt ZW50X3R5cGU+Ci0rICAgICAgICAgICAgICB0eXBlbmFtZSBzdGQ6OnBvaW50ZXJfdHJhaXRzPGlu dGVybmFsOjpNYXBwZWRUeXBlPE1hcD4+OjplbGVtZW50X3R5cGU+Ci0gY29uc3RleHByIE1hcHBl ZEVsZW1lbnRUeXBlKiBGaW5kUHRyT3JOdWxsKE1hcCYgbWFwLCBjb25zdCBLZXkmIGtleSkgewot ICAgYXV0byBpdCA9IG1hcC5maW5kKGtleSk7Ci0gICByZXR1cm4gaXQgIT0gbWFwLmVuZCgpID8g c3RkOjp0b19hZGRyZXNzKGl0LT5zZWNvbmQpIDogbnVsbHB0cjsKLWRpZmYgLXVwIGNocm9taXVt LTExNS4wLjU3OTAuMjQvY2hyb21lL2Jyb3dzZXIvZG93bmxvYWQvYnViYmxlL2Rvd25sb2FkX2J1 YmJsZV91cGRhdGVfc2VydmljZS5jYy5tZSBjaHJvbWl1bS0xMTUuMC41NzkwLjI0L2Nocm9tZS9i cm93c2VyL2Rvd25sb2FkL2J1YmJsZS9kb3dubG9hZF9idWJibGVfdXBkYXRlX3NlcnZpY2UuY2MK LS0tLSBjaHJvbWl1bS0xMTUuMC41NzkwLjI0L2Nocm9tZS9icm93c2VyL2Rvd25sb2FkL2J1YmJs ZS9kb3dubG9hZF9idWJibGVfdXBkYXRlX3NlcnZpY2UuY2MubWUJMjAyMy0wNi0xNyAxNDo1MDo1 Ni4zNDI1OTE3MDIgKzAyMDAKLSsrKyBjaHJvbWl1bS0xMTUuMC41NzkwLjI0L2Nocm9tZS9icm93 c2VyL2Rvd25sb2FkL2J1YmJsZS9kb3dubG9hZF9idWJibGVfdXBkYXRlX3NlcnZpY2UuY2MJMjAy My0wNi0xNyAxNDo1Nzo0OC4wMjQzNzczNzUgKzAyMDAKLUBAIC05MSw3ICs5MSw3IEBAIEl0ZW1T b3J0S2V5IEdldFNvcnRLZXkoY29uc3QgSXRlbSYgaXRlbSkKLSAvLyBIZWxwZXIgdG8gZ2V0IGFu IGl0ZXJhdG9yIHRvIHRoZSBsYXN0IGVsZW1lbnQgaW4gdGhlIGNhY2hlLiBUaGUgY2FjaGUKLSAv LyBtdXN0IG5vdCBiZSBlbXB0eS4KLSB0ZW1wbGF0ZSA8dHlwZW5hbWUgSXRlbT4KLS1Tb3J0ZWRJ dGVtczxJdGVtPjo6Y29uc3RfaXRlcmF0b3IgR2V0TGFzdEl0ZXIoY29uc3QgU29ydGVkSXRlbXM8 SXRlbT4mIGNhY2hlKSB7Ci0rdHlwZW5hbWUgU29ydGVkSXRlbXM8SXRlbT46OmNvbnN0X2l0ZXJh dG9yIEdldExhc3RJdGVyKGNvbnN0IFNvcnRlZEl0ZW1zPEl0ZW0+JiBjYWNoZSkgewotICAgQ0hF Q0soIWNhY2hlLmVtcHR5KCkpOwotICAgYXV0byBpdCA9IGNhY2hlLmVuZCgpOwotICAgcmV0dXJu IHN0ZDo6cHJldihpdCk7Ci1AQCAtOTY3LDkgKzk2Nyw5IEBAIGJvb2wgRG93bmxvYWRCdWJibGVV cGRhdGVTZXJ2aWNlOjpDYWNoZU0KLSB9Ci0gCi0gdGVtcGxhdGUgPHR5cGVuYW1lIElkLCB0eXBl bmFtZSBJdGVtPgotLVNvcnRlZEl0ZW1zPEl0ZW0+OjppdGVyYXRvcgotK3R5cGVuYW1lIFNvcnRl ZEl0ZW1zPEl0ZW0+OjppdGVyYXRvcgotIERvd25sb2FkQnViYmxlVXBkYXRlU2VydmljZTo6Q2Fj aGVNYW5hZ2VyOjpSZW1vdmVJdGVtRnJvbUNhY2hlQnlJdGVyKAotLSAgICBTb3J0ZWRJdGVtczxJ dGVtPjo6aXRlcmF0b3IgaXRlciwKLSsgICAgdHlwZW5hbWUgU29ydGVkSXRlbXM8SXRlbT46Oml0 ZXJhdG9yIGl0ZXIsCi0gICAgIFNvcnRlZEl0ZW1zPEl0ZW0+JiBjYWNoZSwKLSAgICAgSXRlck1h cDxJZCwgSXRlbT4mIGl0ZXJfbWFwKSB7Ci0gICBDSEVDSyhpdGVyICE9IGNhY2hlLmVuZCgpKTsK LWRpZmYgLXVwIGNocm9taXVtLTExNS4wLjU3OTAuMzIvY29tcG9uZW50cy9vcHRpbWl6YXRpb25f Z3VpZGUvY29yZS90ZmxpdGVfbW9kZWxfZXhlY3V0b3IuaC5tZSBjaHJvbWl1bS0xMTUuMC41Nzkw LjMyL2NvbXBvbmVudHMvb3B0aW1pemF0aW9uX2d1aWRlL2NvcmUvdGZsaXRlX21vZGVsX2V4ZWN1 dG9yLmgKLS0tLSBjaHJvbWl1bS0xMTUuMC41NzkwLjMyL2NvbXBvbmVudHMvb3B0aW1pemF0aW9u X2d1aWRlL2NvcmUvdGZsaXRlX21vZGVsX2V4ZWN1dG9yLmgubWUJMjAyMy0wNi0xOCAyMTo1Mjo1 My41MTU2MjUyMzcgKzAyMDAKLSsrKyBjaHJvbWl1bS0xMTUuMC41NzkwLjMyL2NvbXBvbmVudHMv b3B0aW1pemF0aW9uX2d1aWRlL2NvcmUvdGZsaXRlX21vZGVsX2V4ZWN1dG9yLmgJMjAyMy0wNi0x OCAyMTo1MzowNi44ODE4ODEyOTMgKzAyMDAKLUBAIC0xODksNyArMTg5LDcgQEAgY2xhc3MgVEZM aXRlTW9kZWxFeGVjdXRvciA6IHB1YmxpYyBNb2RlbAotICAgdm9pZCBTZW5kRm9yQmF0Y2hFeGVj dXRpb24oCi0gICAgICAgQmF0Y2hFeGVjdXRpb25DYWxsYmFjayBjYWxsYmFja19vbl9jb21wbGV0 ZSwKLSAgICAgICBiYXNlOjpUaW1lVGlja3Mgc3RhcnRfdGltZSwKLS0gICAgICBNb2RlbEV4ZWN1 dG9yPE91dHB1dFR5cGUsIElucHV0VHlwZT46OkNvbnN0UmVmSW5wdXRWZWN0b3IgaW5wdXRzKQot KyAgICAgIHR5cGVuYW1lIE1vZGVsRXhlY3V0b3I8T3V0cHV0VHlwZSwgSW5wdXRUeXBlPjo6Q29u c3RSZWZJbnB1dFZlY3RvciBpbnB1dHMpCi0gICAgICAgb3ZlcnJpZGUgewotICAgICBEQ0hFQ0so ZXhlY3V0aW9uX3Rhc2tfcnVubmVyXy0+UnVuc1Rhc2tzSW5DdXJyZW50U2VxdWVuY2UoKSk7Ci0g ICAgIERDSEVDS19DQUxMRURfT05fVkFMSURfU0VRVUVOQ0Uoc2VxdWVuY2VfY2hlY2tlcl8pOwot ZGlmZiAtdXAgY2hyb21pdW0tMTE1LjAuNTc5MC4zMi90aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJl ci9jb3JlL2h0bWwvcGFyc2VyL2h0bWxfZG9jdW1lbnRfcGFyc2VyX2Zhc3RwYXRoLmNjLm1lIGNo cm9taXVtLTExNS4wLjU3OTAuMzIvdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvY29yZS9odG1s L3BhcnNlci9odG1sX2RvY3VtZW50X3BhcnNlcl9mYXN0cGF0aC5jYwotLS0tIGNocm9taXVtLTEx NS4wLjU3OTAuMzIvdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvY29yZS9odG1sL3BhcnNlci9o dG1sX2RvY3VtZW50X3BhcnNlcl9mYXN0cGF0aC5jYy5tZQkyMDIzLTA2LTE5IDEwOjAzOjMyLjMx OTIxODY3OCArMDIwMAotKysrIGNocm9taXVtLTExNS4wLjU3OTAuMzIvdGhpcmRfcGFydHkvYmxp bmsvcmVuZGVyZXIvY29yZS9odG1sL3BhcnNlci9odG1sX2RvY3VtZW50X3BhcnNlcl9mYXN0cGF0 aC5jYwkyMDIzLTA2LTE5IDEwOjA0OjEyLjAyMzk0MjIzMiArMDIwMAotQEAgLTE2OSw3ICsxNjks NyBAQCBjbGFzcyBIVE1MRmFzdFBhdGhQYXJzZXIgewotICAgdXNpbmcgU3BhbiA9IGJhc2U6OnNw YW48Y29uc3QgQ2hhcj47Ci0gICB1c2luZyBVU3BhbiA9IGJhc2U6OnNwYW48Y29uc3QgVUNoYXI+ OwotICAgLy8gMzIgbWF0Y2hlcyB0aGF0IHVzZWQgYnkgSFRNTFRva2VuOjpBdHRyaWJ1dGUuCi0t ICB0eXBlZGVmIHN0ZDo6Y29uZGl0aW9uYWw8c3RkOjppc19zYW1lX3Y8Q2hhciwgVUNoYXI+LAot KyAgdHlwZWRlZiB0eXBlbmFtZSBzdGQ6OmNvbmRpdGlvbmFsPHN0ZDo6aXNfc2FtZV92PENoYXIs IFVDaGFyPiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBVQ2hhckxpdGVyYWxCdWZmZXI8 MzI+LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIExDaGFyTGl0ZXJhbEJ1ZmZlcjwzMj4+ Ojp0eXBlIExpdGVyYWxCdWZmZXJUeXBlOwotICAgdHlwZWRlZiBVQ2hhckxpdGVyYWxCdWZmZXI8 MzI+IFVDaGFyTGl0ZXJhbEJ1ZmZlclR5cGU7Ci1kaWZmIC11cCBjaHJvbWl1bS0xMTYuMC41ODQ1 LjUwL2NvbnRlbnQvcHVibGljL2Jyb3dzZXIvd2ViX3VpX2Jyb3dzZXJfaW50ZXJmYWNlX2Jyb2tl cl9yZWdpc3RyeS5oLm1lIGNocm9taXVtLTExNi4wLjU4NDUuNTAvY29udGVudC9wdWJsaWMvYnJv d3Nlci93ZWJfdWlfYnJvd3Nlcl9pbnRlcmZhY2VfYnJva2VyX3JlZ2lzdHJ5LmgKLS0tLSBjaHJv bWl1bS0xMTYuMC41ODQ1LjUwL2NvbnRlbnQvcHVibGljL2Jyb3dzZXIvd2ViX3VpX2Jyb3dzZXJf aW50ZXJmYWNlX2Jyb2tlcl9yZWdpc3RyeS5oLm1lCTIwMjMtMDgtMDIgMTY6MTg6MzAuMzgwMTA4 MTI1ICswMjAwCi0rKysgY2hyb21pdW0tMTE2LjAuNTg0NS41MC9jb250ZW50L3B1YmxpYy9icm93 c2VyL3dlYl91aV9icm93c2VyX2ludGVyZmFjZV9icm9rZXJfcmVnaXN0cnkuaAkyMDIzLTA4LTAy IDE2OjIwOjU5LjY2MDAyNDU3OCArMDIwMAotQEAgLTEyNywxMCArMTI3LDEwIEBAIGNsYXNzIENP TlRFTlRfRVhQT1JUIFdlYlVJQnJvd3NlckludGVyZmEKLSAgIC8vCi0gICAvLyBUT0RPKGNyYnVn LmNvbS8xNDA3OTM2KTogUG9pbnQgdG8gV2ViVUlKc0JyaWRnZSBkb2N1bWVudGF0aW9uLgotICAg dGVtcGxhdGUgPHR5cGVuYW1lIENvbnRyb2xsZXJUeXBlPgotLSAgSnNCcmlkZ2VUcmFpdHM8Q29u dHJvbGxlclR5cGU+OjpCaW5kZXJJbml0aWFsaXplciYgRm9yV2ViVUlXaXRoSnNCcmlkZ2UoKSB7 Ci0rICB0eXBlbmFtZSBKc0JyaWRnZVRyYWl0czxDb250cm9sbGVyVHlwZT46OkJpbmRlckluaXRp YWxpemVyJiBGb3JXZWJVSVdpdGhKc0JyaWRnZSgpIHsKLSAgICAgdXNpbmcgVHJhaXRzID0gSnNC cmlkZ2VUcmFpdHM8Q29udHJvbGxlclR5cGU+OwotLSAgICB1c2luZyBJbnRlcmZhY2UgPSBUcmFp dHM6OkludGVyZmFjZTsKLS0gICAgdXNpbmcgSnNCcmlkZ2VCaW5kZXJJbml0aWFsaXplciA9IFRy YWl0czo6QmluZGVySW5pdGlhbGl6ZXI7Ci0rICAgIHVzaW5nIEludGVyZmFjZSA9IHR5cGVuYW1l IFRyYWl0czo6SW50ZXJmYWNlOwotKyAgICB1c2luZyBKc0JyaWRnZUJpbmRlckluaXRpYWxpemVy ID0gdHlwZW5hbWUgVHJhaXRzOjpCaW5kZXJJbml0aWFsaXplcjsKLSAKLSAgICAgLy8gV2ViVUlD b250cm9sbGVyOjpHZXRUeXBlKCkgcmVxdWlyZXMgYW4gaW5zdGFudGlhdGVkIFdlYlVJQ29udHJv bGxlcgotICAgICAvLyAoYmVjYXVzZSBpdCdzIGEgdmlydHVhbCBtZXRob2QgYW5kIGNhbid0IGJl IHN0YXRpYykuIEhlcmUgd2Ugb25seSBoYXZlCi1kaWZmIC11cCBjaHJvbWl1bS0xMTYuMC41ODQ1 LjUwL3RoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL2NvcmUvcGFpbnQvb2JqZWN0X3BhaW50X3By b3BlcnRpZXNfc3BhcnNlLmgubWUgY2hyb21pdW0tMTE2LjAuNTg0NS41MC90aGlyZF9wYXJ0eS9i bGluay9yZW5kZXJlci9jb3JlL3BhaW50L29iamVjdF9wYWludF9wcm9wZXJ0aWVzX3NwYXJzZS5o Ci0tLS0gY2hyb21pdW0tMTE2LjAuNTg0NS41MC90aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9j b3JlL3BhaW50L29iamVjdF9wYWludF9wcm9wZXJ0aWVzX3NwYXJzZS5oLm1lCTIwMjMtMDgtMDIg MjA6NDE6MjMuOTg0NzI5NDYyICswMjAwCi0rKysgY2hyb21pdW0tMTE2LjAuNTg0NS41MC90aGly ZF9wYXJ0eS9ibGluay9yZW5kZXJlci9jb3JlL3BhaW50L29iamVjdF9wYWludF9wcm9wZXJ0aWVz X3NwYXJzZS5oCTIwMjMtMDgtMDIgMjA6NDE6NTMuNzM3NTgzMDkzICswMjAwCi1AQCAtMjcwLDgg KzI3MCw4IEBAIGNsYXNzIENPUkVfRVhQT1JUIE9iamVjdFBhaW50UHJvcGVydGllc1MKLSAgICAg ICBOb2RlTGlzdCYgbm9kZXMsCi0gICAgICAgTm9kZUlkIG5vZGVfaWQsCi0gICAgICAgY29uc3Qg UGFyZW50VHlwZSYgcGFyZW50LAotLSAgICAgIE5vZGVUeXBlOjpTdGF0ZSYmIHN0YXRlLAotLSAg ICAgIGNvbnN0IE5vZGVUeXBlOjpBbmltYXRpb25TdGF0ZSYgYW5pbWF0aW9uX3N0YXRlID0KLSsg ICAgICB0eXBlbmFtZSBOb2RlVHlwZTo6U3RhdGUmJiBzdGF0ZSwKLSsgICAgICBjb25zdCB0eXBl bmFtZSBOb2RlVHlwZTo6QW5pbWF0aW9uU3RhdGUmIGFuaW1hdGlvbl9zdGF0ZSA9Ci0gICAgICAg ICAgIE5vZGVUeXBlOjpBbmltYXRpb25TdGF0ZSgpKSB7Ci0gICAgIC8vIEZpcnN0LCBjaGVjayBp ZiB3ZSBuZWVkIHRvIGFkZCBhIG5ldyBub2RlLgotICAgICBpZiAoIW5vZGVzLkhhc0ZpZWxkKG5v ZGVfaWQpKSB7Ci1kaWZmIC11cCBjaHJvbWl1bS0xMTcuMC41OTM4LjYyL2NvbXBvbmVudHMvb3B0 aW1pemF0aW9uX2d1aWRlL2NvcmUvdGZsaXRlX21vZGVsX2V4ZWN1dG9yLmgubWUgY2hyb21pdW0t MTE3LjAuNTkzOC42Mi9jb21wb25lbnRzL29wdGltaXphdGlvbl9ndWlkZS9jb3JlL3RmbGl0ZV9t b2RlbF9leGVjdXRvci5oCi0tLS0gY2hyb21pdW0tMTE3LjAuNTkzOC42Mi9jb21wb25lbnRzL29w dGltaXphdGlvbl9ndWlkZS9jb3JlL3RmbGl0ZV9tb2RlbF9leGVjdXRvci5oLm1lCTIwMjMtMDkt MTUgMTA6MjI6NTEuODg5Njk4NDAyICswMjAwCi0rKysgY2hyb21pdW0tMTE3LjAuNTkzOC42Mi9j b21wb25lbnRzL29wdGltaXphdGlvbl9ndWlkZS9jb3JlL3RmbGl0ZV9tb2RlbF9leGVjdXRvci5o CTIwMjMtMDktMTUgMTA6Mjg6MjYuNzAyNzE2MjI0ICswMjAwCi1AQCAtMjM0LDcgKzIzNCw3IEBA IGNsYXNzIFRGTGl0ZU1vZGVsRXhlY3V0b3IgOiBwdWJsaWMgTW9kZWwKLSAgIC8vIFN0YXJ0cyB0 aGUgc3luY2hyb25vdXMgZXhlY3V0aW9uIG9mIHRoZSBtb2RlbC4gUmV0dXJucyBtb2RlbCBvdXRw dXRzLgotICAgLy8gTW9kZWwgbmVlZHMgdG8gYmUgbG9hZGVkLiBTeW5jaHJvbm91cyBjYWxscyBk byBub3QgbG9hZCBvciB1bmxvYWQgbW9kZWwuCi0gICBzdGQ6OnZlY3RvcjxhYnNsOjpvcHRpb25h bDxPdXRwdXRUeXBlPj4gU2VuZEZvckJhdGNoRXhlY3V0aW9uU3luYygKLS0gICAgICBNb2RlbEV4 ZWN1dG9yPE91dHB1dFR5cGUsIElucHV0VHlwZT46OkNvbnN0UmVmSW5wdXRWZWN0b3IgaW5wdXRz KQotKyAgICAgIHR5cGVuYW1lIE1vZGVsRXhlY3V0b3I8T3V0cHV0VHlwZSwgSW5wdXRUeXBlPjo6 Q29uc3RSZWZJbnB1dFZlY3RvciBpbnB1dHMpCi0gICAgICAgb3ZlcnJpZGUgewotICAgICBEQ0hF Q0soZXhlY3V0aW9uX3Rhc2tfcnVubmVyXy0+UnVuc1Rhc2tzSW5DdXJyZW50U2VxdWVuY2UoKSk7 Ci0gICAgIERDSEVDS19DQUxMRURfT05fVkFMSURfU0VRVUVOQ0Uoc2VxdWVuY2VfY2hlY2tlcl8p OwotQEAgLTM4OSw3ICszODksNyBAQCBjbGFzcyBURkxpdGVNb2RlbEV4ZWN1dG9yIDogcHVibGlj IE1vZGVsCi0gICAvLyBleGVjdXRlcyBpdCBvbiB0aGUgbW9kZWwgZXhlY3V0aW9uIHRocmVhZC4K LSAgIHZvaWQgTG9hZE1vZGVsRmlsZUFuZEJhdGNoRXhlY3V0ZSgKLSAgICAgICBCYXRjaEV4ZWN1 dGlvbkNhbGxiYWNrIGNhbGxiYWNrX29uX2NvbXBsZXRlLAotLSAgICAgIE1vZGVsRXhlY3V0b3I8 T3V0cHV0VHlwZSwgSW5wdXRUeXBlPjo6Q29uc3RSZWZJbnB1dFZlY3RvciBpbnB1dHMpIHsKLSsg ICAgICB0eXBlbmFtZSBNb2RlbEV4ZWN1dG9yPE91dHB1dFR5cGUsIElucHV0VHlwZT46OkNvbnN0 UmVmSW5wdXRWZWN0b3IgaW5wdXRzKSB7Ci0gICAgIERDSEVDSyhleGVjdXRpb25fdGFza19ydW5u ZXJfLT5SdW5zVGFza3NJbkN1cnJlbnRTZXF1ZW5jZSgpKTsKLSAgICAgRENIRUNLX0NBTExFRF9P Tl9WQUxJRF9TRVFVRU5DRShzZXF1ZW5jZV9jaGVja2VyXyk7Ci0gCi1AQCAtNDA2LDcgKzQwNiw3 IEBAIGNsYXNzIFRGTGl0ZU1vZGVsRXhlY3V0b3IgOiBwdWJsaWMgTW9kZWwKLSAKLSAgIC8vIEJh dGNoIGV4ZWN1dGVzIHRoZSBsb2FkZWQgbW9kZWwgZm9yIGlucHV0cy4KLSAgIHZvaWQgQmF0Y2hF eGVjdXRlTG9hZGVkTW9kZWwoCi0tICAgICAgTW9kZWxFeGVjdXRvcjxPdXRwdXRUeXBlLCBJbnB1 dFR5cGU+OjpDb25zdFJlZklucHV0VmVjdG9yIGlucHV0cywKLSsgICAgICB0eXBlbmFtZSBNb2Rl bEV4ZWN1dG9yPE91dHB1dFR5cGUsIElucHV0VHlwZT46OkNvbnN0UmVmSW5wdXRWZWN0b3IgaW5w dXRzLAotICAgICAgIHN0ZDo6dmVjdG9yPGFic2w6Om9wdGlvbmFsPE91dHB1dFR5cGU+Piogb3V0 cHV0cykgewotICAgICBEQ0hFQ0soZXhlY3V0aW9uX3Rhc2tfcnVubmVyXy0+UnVuc1Rhc2tzSW5D dXJyZW50U2VxdWVuY2UoKSk7Ci0gICAgIERDSEVDS19DQUxMRURfT05fVkFMSURfU0VRVUVOQ0Uo c2VxdWVuY2VfY2hlY2tlcl8pOwotQEAgLTQ2Niw3ICs0NjYsNyBAQCBjbGFzcyBURkxpdGVNb2Rl bEV4ZWN1dG9yIDogcHVibGljIE1vZGVsCi0gICAvLyBVbmxvYWRzIHRoZSBtb2RlbCBpZiBuZWVk ZWQuCi0gICB2b2lkIEJhdGNoRXhlY3V0ZUxvYWRlZE1vZGVsQW5kUnVuQ2FsbGJhY2soCi0gICAg ICAgQmF0Y2hFeGVjdXRpb25DYWxsYmFjayBjYWxsYmFja19vbl9jb21wbGV0ZSwKLS0gICAgICBN b2RlbEV4ZWN1dG9yPE91dHB1dFR5cGUsIElucHV0VHlwZT46OkNvbnN0UmVmSW5wdXRWZWN0b3Ig aW5wdXRzLAotKyAgICAgIHR5cGVuYW1lIE1vZGVsRXhlY3V0b3I8T3V0cHV0VHlwZSwgSW5wdXRU eXBlPjo6Q29uc3RSZWZJbnB1dFZlY3RvciBpbnB1dHMsCi0gICAgICAgRXhlY3V0aW9uU3RhdHVz IGV4ZWN1dGlvbl9zdGF0dXMpIHsKLSAgICAgRENIRUNLKGV4ZWN1dGlvbl90YXNrX3J1bm5lcl8t PlJ1bnNUYXNrc0luQ3VycmVudFNlcXVlbmNlKCkpOwotICAgICBEQ0hFQ0tfQ0FMTEVEX09OX1ZB TElEX1NFUVVFTkNFKHNlcXVlbmNlX2NoZWNrZXJfKTsKLWRpZmYgLXVwIGNocm9taXVtLTExNy4w LjU5MzguNjIvY29tcG9uZW50cy9zdXBlcnZpc2VkX3VzZXIvY29yZS9icm93c2VyL3Byb3RvX2Zl dGNoZXIuY2MubWUgY2hyb21pdW0tMTE3LjAuNTkzOC42Mi9jb21wb25lbnRzL3N1cGVydmlzZWRf dXNlci9jb3JlL2Jyb3dzZXIvcHJvdG9fZmV0Y2hlci5jYwotLS0tIGNocm9taXVtLTExNy4wLjU5 MzguNjIvY29tcG9uZW50cy9zdXBlcnZpc2VkX3VzZXIvY29yZS9icm93c2VyL3Byb3RvX2ZldGNo ZXIuY2MubWUJMjAyMy0wOS0xNSAxNzoyMDoyMi41NTA2NTc1ODYgKzAyMDAKLSsrKyBjaHJvbWl1 bS0xMTcuMC41OTM4LjYyL2NvbXBvbmVudHMvc3VwZXJ2aXNlZF91c2VyL2NvcmUvYnJvd3Nlci9w cm90b19mZXRjaGVyLmNjCTIwMjMtMDktMTUgMTc6MjQ6MTEuMzk2NzE2NzM0ICswMjAwCi1AQCAt Mzk5LDcgKzM5OSw3IEBAIGNsYXNzIFJldHJ5aW5nRmV0Y2hlckltcGwgZmluYWwgOiBwdWJsaWMK LSAgIFJldHJ5aW5nRmV0Y2hlckltcGwoY29uc3QgUmV0cnlpbmdGZXRjaGVySW1wbCYpID0gZGVs ZXRlOwotICAgUmV0cnlpbmdGZXRjaGVySW1wbCYgb3BlcmF0b3I9KGNvbnN0IFJldHJ5aW5nRmV0 Y2hlckltcGwmKSA9IGRlbGV0ZTsKLSAKLS0gIHZvaWQgU3RhcnQoUHJvdG9GZXRjaGVyPFJlc3Bv bnNlPjo6Q2FsbGJhY2sgY2FsbGJhY2spIG92ZXJyaWRlIHsKLSsgIHZvaWQgU3RhcnQodHlwZW5h bWUgUHJvdG9GZXRjaGVyPFJlc3BvbnNlPjo6Q2FsbGJhY2sgY2FsbGJhY2spIG92ZXJyaWRlIHsK LSAgICAgY2FsbGJhY2tfID0gc3RkOjptb3ZlKGNhbGxiYWNrKTsKLSAgICAgUmV0cnkoKTsKLSAg IH0KLUBAIC00MzUsNyArNDM1LDcgQEAgY2xhc3MgUmV0cnlpbmdGZXRjaGVySW1wbCBmaW5hbCA6 IHB1YmxpYwotICAgfQotIAotICAgLy8gQ2xpZW50IGNhbGxiYWNrLgotLSAgUHJvdG9GZXRjaGVy PFJlc3BvbnNlPjo6Q2FsbGJhY2sgY2FsbGJhY2tfOwotKyAgdHlwZW5hbWUgUHJvdG9GZXRjaGVy PFJlc3BvbnNlPjo6Q2FsbGJhY2sgY2FsbGJhY2tfOwotIAotICAgLy8gUmV0cnkgY29udHJvbHMu Ci0gICBiYXNlOjpPbmVTaG90VGltZXIgdGltZXJfOwotQEAgLTU3OCw3ICs1NzgsNyBAQCBQYXJh bGxlbEZldGNoTWFuYWdlcjxSZXF1ZXN0LCBSZXNwb25zZT46Ci0gdGVtcGxhdGUgPHR5cGVuYW1l IFJlcXVlc3QsIHR5cGVuYW1lIFJlc3BvbnNlPgotIHZvaWQgUGFyYWxsZWxGZXRjaE1hbmFnZXI8 UmVxdWVzdCwgUmVzcG9uc2U+OjpGZXRjaCgKLSAgICAgY29uc3QgUmVxdWVzdCYgcmVxdWVzdCwK LS0gICAgRmV0Y2hlcjo6Q2FsbGJhY2sgY2FsbGJhY2spIHsKLSsgICAgdHlwZW5hbWUgRmV0Y2hl cjo6Q2FsbGJhY2sgY2FsbGJhY2spIHsKLSAgIENIRUNLKGNhbGxiYWNrKSA8PCAiVXNlIGJhc2U6 OkRvTm90aGluZygpIGluc3RlYWQgb2YgZW1wdHkgY2FsbGJhY2suIjsKLSAgIEtleVR5cGUga2V5 ID0gcmVxdWVzdHNfaW5fZmxpZ2h0Xy5BZGQoTWFrZUZldGNoZXIocmVxdWVzdCkpOwotICAgcmVx dWVzdHNfaW5fZmxpZ2h0Xy5Mb29rdXAoa2V5KS0+U3RhcnQoCi1kaWZmIC11cCBjaHJvbWl1bS0x MTcuMC41OTM4LjYyL2NvbXBvbmVudHMvc3VwZXJ2aXNlZF91c2VyL2NvcmUvYnJvd3Nlci9wcm90 b19mZXRjaGVyLmgubWUgY2hyb21pdW0tMTE3LjAuNTkzOC42Mi9jb21wb25lbnRzL3N1cGVydmlz ZWRfdXNlci9jb3JlL2Jyb3dzZXIvcHJvdG9fZmV0Y2hlci5oCi0tLS0gY2hyb21pdW0tMTE3LjAu NTkzOC42Mi9jb21wb25lbnRzL3N1cGVydmlzZWRfdXNlci9jb3JlL2Jyb3dzZXIvcHJvdG9fZmV0 Y2hlci5oLm1lCTIwMjMtMDktMTUgMTc6MjA6NTYuNTQwNDYwMzkxICswMjAwCi0rKysgY2hyb21p dW0tMTE3LjAuNTkzOC42Mi9jb21wb25lbnRzL3N1cGVydmlzZWRfdXNlci9jb3JlL2Jyb3dzZXIv cHJvdG9fZmV0Y2hlci5oCTIwMjMtMDktMTUgMTc6MjI6MTguMjQ2MjM3ODE3ICswMjAwCi1AQCAt MTY1LDEwICsxNjUsMTAgQEAgY2xhc3MgUGFyYWxsZWxGZXRjaE1hbmFnZXIgewotIAotICAgLy8g U3RhcnRzIHRoZSBmZXRjaC4gVW5kZXJseWluZyBmZXRjaGVyIGlzIHN0b3JlZCBpbnRlcm5hbGx5 LCBhbmQgd2lsbCBiZQotICAgLy8gY2xlYW5lZCB1cCBhZnRlciBmaW5pc2ggb3Igd2hlbiB0aGlz IG1hbmFnZXIgaXMgZGVzdHJveWVkLgotLSAgdm9pZCBGZXRjaChjb25zdCBSZXF1ZXN0JiByZXF1 ZXN0LCBGZXRjaGVyOjpDYWxsYmFjayBjYWxsYmFjayk7Ci0rICB2b2lkIEZldGNoKGNvbnN0IFJl cXVlc3QmIHJlcXVlc3QsIHR5cGVuYW1lIEZldGNoZXI6OkNhbGxiYWNrIGNhbGxiYWNrKTsKLSAK LSAgcHJpdmF0ZToKLS0gIHVzaW5nIEtleVR5cGUgPSBiYXNlOjpJRE1hcDxzdGQ6OnVuaXF1ZV9w dHI8RmV0Y2hlcj4+OjpLZXlUeXBlOwotKyAgdXNpbmcgS2V5VHlwZSA9IHR5cGVuYW1lIGJhc2U6 OklETWFwPHN0ZDo6dW5pcXVlX3B0cjxGZXRjaGVyPj46OktleVR5cGU7Ci0gCi0gICAvLyBSZW1v dmUgZmV0Y2hlciB1bmRlciBrZXkgZnJvbSByZXF1ZXN0c19pbl9mbGlnaHRfLgotICAgdm9pZCBS ZW1vdmUoS2V5VHlwZSBrZXkpOwotZGlmZiAtdXAgY2hyb21pdW0tMTIwLjAuNjA5OS41Ni90aGly ZF9wYXJ0eS9ibGluay9yZW5kZXJlci9iaW5kaW5ncy9jb3JlL3Y4L2FzeW5jX2l0ZXJhYmxlLmgu bWUgY2hyb21pdW0tMTIwLjAuNjA5OS41Ni90aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9iaW5k aW5ncy9jb3JlL3Y4L2FzeW5jX2l0ZXJhYmxlLmgKLS0tLSBjaHJvbWl1bS0xMjAuMC42MDk5LjU2 L3RoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL2JpbmRpbmdzL2NvcmUvdjgvYXN5bmNfaXRlcmFi bGUuaC5tZQkyMDIzLTEyLTA0IDAwOjI5OjM1LjE5NzIwOTUzOCArMDEwMAotKysrIGNocm9taXVt LTEyMC4wLjYwOTkuNTYvdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvYmluZGluZ3MvY29yZS92 OC9hc3luY19pdGVyYWJsZS5oCTIwMjMtMTItMDQgMDA6MzA6MjQuNDM2MjMzMjQ5ICswMTAwCi1A QCAtMjIwLDcgKzIyMCw3IEBAIGNsYXNzIFBhaXJBc3luY0l0ZXJhYmxlIHsKLSAgcHJpdmF0ZToK LSAgIHZpcnR1YWwgSXRlcmF0aW9uU291cmNlKiBDcmVhdGVJdGVyYXRpb25Tb3VyY2UoCi0gICAg ICAgU2NyaXB0U3RhdGUqIHNjcmlwdF9zdGF0ZSwKLS0gICAgICBJdGVyYXRpb25Tb3VyY2U6Oktp bmQga2luZCwKLSsgICAgICB0eXBlbmFtZSBJdGVyYXRpb25Tb3VyY2U6OktpbmQga2luZCwKLSAg ICAgICBFeGNlcHRpb25TdGF0ZSYgZXhjZXB0aW9uX3N0YXRlKSA9IDA7Ci0gfTsKLSAKLUBAIC0y NjIsNyArMjYyLDcgQEAgY2xhc3MgVmFsdWVBc3luY0l0ZXJhYmxlIHsKLSAgcHJpdmF0ZToKLSAg IHZpcnR1YWwgSXRlcmF0aW9uU291cmNlKiBDcmVhdGVJdGVyYXRpb25Tb3VyY2UoCi0gICAgICAg U2NyaXB0U3RhdGUqIHNjcmlwdF9zdGF0ZSwKLS0gICAgICBJdGVyYXRpb25Tb3VyY2U6OktpbmQg a2luZCwKLSsgICAgICB0eXBlbmFtZSBJdGVyYXRpb25Tb3VyY2U6OktpbmQga2luZCwKLSAgICAg ICBFeGNlcHRpb25TdGF0ZSYgZXhjZXB0aW9uX3N0YXRlKSA9IDA7Ci0gfTsKLSAKLWRpZmYgLXVw IGNocm9taXVtLTEyMS4wLjYxNjcuNTcvYmFzZS9mdW5jdGlvbmFsL2JpbmRfaW50ZXJuYWwuaC5t ZSBjaHJvbWl1bS0xMjEuMC42MTY3LjU3L2Jhc2UvZnVuY3Rpb25hbC9iaW5kX2ludGVybmFsLmgK LS0tLSBjaHJvbWl1bS0xMjEuMC42MTY3LjU3L2Jhc2UvZnVuY3Rpb25hbC9iaW5kX2ludGVybmFs LmgubWUJMjAyNC0wMS0yMSAxNjoxMDowOS44MDkwMzc1ODEgKzAxMDAKLSsrKyBjaHJvbWl1bS0x MjEuMC42MTY3LjU3L2Jhc2UvZnVuY3Rpb25hbC9iaW5kX2ludGVybmFsLmgJMjAyNC0wMS0yMSAx Njo0NjozMy43NTkzOTczMDMgKzAxMDAKLUBAIC0xNTMzLDExICsxNTMzLDExIEBAIHRlbXBsYXRl IDxpbnQgaSwKLSAgICAgICAgICAgdHlwZW5hbWUgUGFyYW0+Ci0gc3RydWN0IFBhcmFtQ2FuQmVC b3VuZCB7Ci0gIHByaXZhdGU6Ci0tICB1c2luZyBVbndyYXBwZWRQYXJhbSA9IEJpbmRBcmd1bWVu dDxpPjo6dGVtcGxhdGUgRm9yd2FyZGVkQXM8Ci0rICB1c2luZyBVbndyYXBwZWRQYXJhbSA9IHR5 cGVuYW1lIEJpbmRBcmd1bWVudDxpPjo6dGVtcGxhdGUgRm9yd2FyZGVkQXM8Ci0gICAgICAgVW53 cmFwcGVkPjo6dGVtcGxhdGUgVG9QYXJhbVdpdGhUeXBlPFBhcmFtPjsKLS0gIHVzaW5nIFBhcmFt U3RvcmFnZSA9IEJpbmRBcmd1bWVudDxpPjo6dGVtcGxhdGUgVG9QYXJhbVdpdGhUeXBlPAotKyAg dXNpbmcgUGFyYW1TdG9yYWdlID0gdHlwZW5hbWUgQmluZEFyZ3VtZW50PGk+Ojp0ZW1wbGF0ZSBU b1BhcmFtV2l0aFR5cGU8Ci0gICAgICAgUGFyYW0+Ojp0ZW1wbGF0ZSBTdG9yZWRBczxTdG9yYWdl PjsKLS0gIHVzaW5nIEJvdW5kU3RvcmFnZSA9Ci0rICB1c2luZyBCb3VuZFN0b3JhZ2UgPSB0eXBl bmFtZQotICAgICAgIEJpbmRBcmd1bWVudDxpPjo6dGVtcGxhdGUgQm91bmRBczxBcmc+Ojp0ZW1w bGF0ZSBTdG9yZWRBczxTdG9yYWdlPjsKLSAKLSAgIC8vIFdlIGZvcmJpZCBjYWxsYmFja3MgZnJv bSB1c2luZyByYXdfcHRyIGFzIGEgcGFyYW1ldGVyLiBIb3dldmVyLCB3ZSBhbGxvdwotZGlmZiAt dXAgY2hyb21pdW0tMTIxLjAuNjE2Ny41Ny9tb2pvL3B1YmxpYy9jcHAvYmluZGluZ3MvYXJyYXlf dHJhaXRzLmgubWUgY2hyb21pdW0tMTIxLjAuNjE2Ny41Ny9tb2pvL3B1YmxpYy9jcHAvYmluZGlu Z3MvYXJyYXlfdHJhaXRzLmgKLS0tLSBjaHJvbWl1bS0xMjEuMC42MTY3LjU3L21vam8vcHVibGlj L2NwcC9iaW5kaW5ncy9hcnJheV90cmFpdHMuaC5tZQkyMDI0LTAxLTIxIDE3OjIzOjM3Ljc4NjYw NjQyOCArMDEwMAotKysrIGNocm9taXVtLTEyMS4wLjYxNjcuNTcvbW9qby9wdWJsaWMvY3BwL2Jp bmRpbmdzL2FycmF5X3RyYWl0cy5oCTIwMjQtMDEtMjEgMTc6MjM6NTguNTgyMTI3MTAzICswMTAw Ci1AQCAtOTAsNyArOTAsNyBAQCB0ZW1wbGF0ZSA8dHlwZW5hbWUgQ29udGFpbmVyPgotICAgICB7 IGNbaV0gfSAtPiBzdGQ6OnNhbWVfYXM8dHlwZW5hbWUgQ29udGFpbmVyOjpyZWZlcmVuY2U+Owot ICAgfQotIHN0cnVjdCBBcnJheVRyYWl0czxDb250YWluZXI+IHsKLS0gIHVzaW5nIEVsZW1lbnQg PSBDb250YWluZXI6OnZhbHVlX3R5cGU7Ci0rICB1c2luZyBFbGVtZW50ID0gdHlwZW5hbWUgQ29u dGFpbmVyOjp2YWx1ZV90eXBlOwotIAotICAgLy8gdmVjdG9yLWxpa2UgY29udGFpbmVycyBoYXZl IG5vIGJ1aWx0LWluIG51bGwuCi0gICBzdGF0aWMgYm9vbCBJc051bGwoY29uc3QgQ29udGFpbmVy JiBjKSB7IHJldHVybiBmYWxzZTsgfQotZGlmZiAtdXAgY2hyb21pdW0tMTIxLjAuNjE2Ny41Ny9j b21wb25lbnRzL29wdGltaXphdGlvbl9ndWlkZS9jb3JlL21vZGVsX2V4ZWN1dGlvbi9tb2RlbF9l eGVjdXRpb25fdXRpbC5oLm1lIGNocm9taXVtLTEyMS4wLjYxNjcuNTcvY29tcG9uZW50cy9vcHRp bWl6YXRpb25fZ3VpZGUvY29yZS9tb2RlbF9leGVjdXRpb24vbW9kZWxfZXhlY3V0aW9uX3V0aWwu aAotLS0tIGNocm9taXVtLTEyMS4wLjYxNjcuNTcvY29tcG9uZW50cy9vcHRpbWl6YXRpb25fZ3Vp ZGUvY29yZS9tb2RlbF9leGVjdXRpb24vbW9kZWxfZXhlY3V0aW9uX3V0aWwuaC5tZQkyMDI0LTAx LTIxIDE3OjMzOjQwLjAzMDg5NzgzOCArMDEwMAotKysrIGNocm9taXVtLTEyMS4wLjYxNjcuNTcv Y29tcG9uZW50cy9vcHRpbWl6YXRpb25fZ3VpZGUvY29yZS9tb2RlbF9leGVjdXRpb24vbW9kZWxf ZXhlY3V0aW9uX3V0aWwuaAkyMDI0LTAxLTIxIDE3OjM0OjExLjUxODcwNTI2NiArMDEwMAotQEAg LTI1LDcgKzI1LDcgQEAgdm9pZCBTZXRFeGVjdXRpb25SZXF1ZXN0VGVtcGxhdGUoCi0gCi0gICAv LyBSZXF1ZXN0IGlzIHNldCBieSB0aGUgZmVhdHVyZSBhbmQgc2hvdWxkIGFsd2F5cyBiZSB0eXBl ZC4KLSAgIGF1dG8gdHlwZWRfcmVxdWVzdCA9Ci0tICAgICAgc3RhdGljX2Nhc3Q8Y29uc3QgRmVh dHVyZVR5cGU6OlJlcXVlc3QmPihyZXF1ZXN0X21ldGFkYXRhKTsKLSsgICAgICBzdGF0aWNfY2Fz dDxjb25zdCB0eXBlbmFtZSBGZWF0dXJlVHlwZTo6UmVxdWVzdCY+KHJlcXVlc3RfbWV0YWRhdGEp OwotICAgKihsb2dnaW5nX2RhdGEtPm11dGFibGVfcmVxdWVzdF9kYXRhKCkpID0gdHlwZWRfcmVx dWVzdDsKLSB9Ci0gCi1kaWZmIC11cCBjaHJvbWl1bS0xMjEuMC42MTY3LjU3L2NvbXBvbmVudHMv b3B0aW1pemF0aW9uX2d1aWRlL2NvcmUvbW9kZWxfcXVhbGl0eS9tb2RlbF9xdWFsaXR5X2xvZ19l bnRyeS5oLm1lIGNocm9taXVtLTEyMS4wLjYxNjcuNTcvY29tcG9uZW50cy9vcHRpbWl6YXRpb25f Z3VpZGUvY29yZS9tb2RlbF9xdWFsaXR5L21vZGVsX3F1YWxpdHlfbG9nX2VudHJ5LmgKLS0tLSBj aHJvbWl1bS0xMjEuMC42MTY3LjU3L2NvbXBvbmVudHMvb3B0aW1pemF0aW9uX2d1aWRlL2NvcmUv bW9kZWxfcXVhbGl0eS9tb2RlbF9xdWFsaXR5X2xvZ19lbnRyeS5oLm1lCTIwMjQtMDEtMjEgMTc6 MzI6NDIuMzY3NDE3NjE5ICswMTAwCi0rKysgY2hyb21pdW0tMTIxLjAuNjE2Ny41Ny9jb21wb25l bnRzL29wdGltaXphdGlvbl9ndWlkZS9jb3JlL21vZGVsX3F1YWxpdHkvbW9kZWxfcXVhbGl0eV9s b2dfZW50cnkuaAkyMDI0LTAxLTIxIDE3OjMzOjI1LjczMjUzMTE5OCArMDEwMAotQEAgLTI5LDcg KzI5LDcgQEAgY2xhc3MgTW9kZWxRdWFsaXR5TG9nRW50cnkgewotICAgfQotIAotICAgdGVtcGxh dGUgPHR5cGVuYW1lIEZlYXR1cmVUeXBlPgotLSAgRmVhdHVyZVR5cGU6OlF1YWxpdHkqIHF1YWxp dHlfZGF0YSgpIHsKLSsgIHR5cGVuYW1lIEZlYXR1cmVUeXBlOjpRdWFsaXR5KiBxdWFsaXR5X2Rh dGEoKSB7Ci0gICAgIHJldHVybiBGZWF0dXJlVHlwZTo6R2V0TG9nZ2luZ0RhdGEoKmxvZ19haV9k YXRhX3JlcXVlc3RfKQotICAgICAgICAgLT5tdXRhYmxlX3F1YWxpdHlfZGF0YSgpOwotICAgfQpk aWZmIC0tZ2l0IGEvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2Nocm9taXVtLTEyMS13b3JrYXJv dW5kX2NsYW5nX2J1Zy1zdHJ1Y3R1cmVkX2JpbmRpbmcucGF0Y2ggYi9zcmNwa2dzL2Nocm9taXVt L3BhdGNoZXMvY2hyb21pdW0tMTIxLXdvcmthcm91bmRfY2xhbmdfYnVnLXN0cnVjdHVyZWRfYmlu ZGluZy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTkyYjA2OTJmYmY3M2Iu LjAwMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9jaHJvbWl1bS0x MjEtd29ya2Fyb3VuZF9jbGFuZ19idWctc3RydWN0dXJlZF9iaW5kaW5nLnBhdGNoCisrKyAvZGV2 L251bGwKQEAgLTEsNTMgKzAsMCBAQAotZGlmZiAtdXAgY2hyb21pdW0tMTE1LjAuNTc5MC4yNC9t ZWRpYS9iYXNlL2NkbV9wcm9taXNlX2FkYXB0ZXIuY2Mud29ya2Fyb3VuZF9jbGFuZ19idWctc3Ry dWN0dXJlZF9iaW5kaW5nIGNocm9taXVtLTExNS4wLjU3OTAuMjQvbWVkaWEvYmFzZS9jZG1fcHJv bWlzZV9hZGFwdGVyLmNjCi0tLS0gY2hyb21pdW0tMTE1LjAuNTc5MC4yNC9tZWRpYS9iYXNlL2Nk bV9wcm9taXNlX2FkYXB0ZXIuY2Mud29ya2Fyb3VuZF9jbGFuZ19idWctc3RydWN0dXJlZF9iaW5k aW5nCTIwMjMtMDYtMDcgMjE6NDg6MzcuMDAwMDAwMDAwICswMjAwCi0rKysgY2hyb21pdW0tMTE1 LjAuNTc5MC4yNC9tZWRpYS9iYXNlL2NkbV9wcm9taXNlX2FkYXB0ZXIuY2MJMjAyMy0wNi0xNyAx Njo1MzoyMC4yMTY2Mjg1NTcgKzAyMDAKLUBAIC05NCw3ICs5NCw5IEBAIHZvaWQgQ2RtUHJvbWlz ZUFkYXB0ZXI6OlJlamVjdFByb21pc2UodWkKLSB2b2lkIENkbVByb21pc2VBZGFwdGVyOjpDbGVh cihDbGVhclJlYXNvbiByZWFzb24pIHsKLSAgIC8vIFJlamVjdCBhbGwgb3V0c3RhbmRpbmcgcHJv bWlzZXMuCi0gICBEQ0hFQ0sodGhyZWFkX2NoZWNrZXJfLkNhbGxlZE9uVmFsaWRUaHJlYWQoKSk7 Ci0tICBmb3IgKGF1dG8mIFtwcm9taXNlX2lkLCBwcm9taXNlXSA6IHByb21pc2VzXykgewotKyAg Zm9yIChhdXRvJiBbcF9pLCBwX2VdIDogcHJvbWlzZXNfKSB7Ci0rICAgIGF1dG8mIHByb21pc2Vf aWQgPSBwX2k7Ci0rICAgIGF1dG8mIHByb21pc2UgPSBwX2U7Ci0gICAgIFRSQUNFX0VWRU5UX05F U1RBQkxFX0FTWU5DX0VORDEoCi0gICAgICAgICAibWVkaWEiLCAiQ2RtUHJvbWlzZSIsIFRSQUNF X0lEX1dJVEhfU0NPUEUoIkNkbVByb21pc2UiLCBwcm9taXNlX2lkKSwKLSAgICAgICAgICJzdGF0 dXMiLCAiY2xlYXJlZCIpOwotZGlmZiAtdXAgY2hyb21pdW0tMTE1LjAuNTc5MC4zMi9jb250ZW50 L2Jyb3dzZXIvc2VydmljZV93b3JrZXIvc2VydmljZV93b3JrZXJfY29udGV4dF93cmFwcGVyLmNj Lm1lIGNocm9taXVtLTExNS4wLjU3OTAuMzIvY29udGVudC9icm93c2VyL3NlcnZpY2Vfd29ya2Vy L3NlcnZpY2Vfd29ya2VyX2NvbnRleHRfd3JhcHBlci5jYwotLS0tIGNocm9taXVtLTExNS4wLjU3 OTAuMzIvY29udGVudC9icm93c2VyL3NlcnZpY2Vfd29ya2VyL3NlcnZpY2Vfd29ya2VyX2NvbnRl eHRfd3JhcHBlci5jYy5tZQkyMDIzLTA2LTE5IDA4OjA0OjAyLjI4NzA3MjcyMiArMDIwMAotKysr IGNocm9taXVtLTExNS4wLjU3OTAuMzIvY29udGVudC9icm93c2VyL3NlcnZpY2Vfd29ya2VyL3Nl cnZpY2Vfd29ya2VyX2NvbnRleHRfd3JhcHBlci5jYwkyMDIzLTA2LTE5IDA4OjE4OjI0LjU3Njgx NDk1MCArMDIwMAotQEAgLTEzOTMsNyArMTM5Myw4IEBAIHZvaWQgU2VydmljZVdvcmtlckNvbnRl eHRXcmFwcGVyOjpNYXliZVAKLSAgICAgcmV0dXJuOwotICAgfQotIAotLSAgYXV0byBbZG9jdW1l bnRfdXJsLCBrZXksIGNhbGxiYWNrXSA9IHN0ZDo6bW92ZSgqcmVxdWVzdCk7Ci0rICBhdXRvIFtk X3UsIGtleSwgY2FsbGJhY2tdID0gc3RkOjptb3ZlKCpyZXF1ZXN0KTsKLSsgIGF1dG8gZG9jdW1l bnRfdXJsID0gZF91OwotIAotICAgRENIRUNLKGRvY3VtZW50X3VybC5pc192YWxpZCgpKTsKLSAg IFRSQUNFX0VWRU5UMSgiU2VydmljZVdvcmtlciIsCi1kaWZmIC11cCBjaHJvbWl1bS0xMjEuMC42 MTY3LjE2L3RoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL2NvcmUvbGF5b3V0L2dyaWQvZ3JpZF9s YXlvdXRfYWxnb3JpdGhtLmNjLnRoYW4gY2hyb21pdW0tMTIxLjAuNjE2Ny4xNi90aGlyZF9wYXJ0 eS9ibGluay9yZW5kZXJlci9jb3JlL2xheW91dC9ncmlkL2dyaWRfbGF5b3V0X2FsZ29yaXRobS5j YwotLS0tIGNocm9taXVtLTEyMS4wLjYxNjcuMTYvdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIv Y29yZS9sYXlvdXQvZ3JpZC9ncmlkX2xheW91dF9hbGdvcml0aG0uY2MudGhhbgkyMDIzLTEyLTE5 IDE3OjU3OjU2LjIwNTE5NzI0NiArMDEwMAotKysrIGNocm9taXVtLTEyMS4wLjYxNjcuMTYvdGhp cmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvY29yZS9sYXlvdXQvZ3JpZC9ncmlkX2xheW91dF9hbGdv cml0aG0uY2MJMjAyMy0xMi0xOSAxODoxMDoxMy43Nzg2MzQ1MzEgKzAxMDAKLUBAIC0zNTI3LDgg KzM1MjcsOCBAQCB2b2lkIEdyaWRMYXlvdXRBbGdvcml0aG06OlBsYWNlR3JpZEl0ZW1zCi0gICBE Q0hFQ0sob3V0X3Jvd19icmVha19iZXR3ZWVuKTsKLSAKLSAgIGNvbnN0IGF1dG8mIGNvbnRhaW5l cl9zcGFjZSA9IEdldENvbnN0cmFpbnRTcGFjZSgpOwotLSAgY29uc3QgYXV0byYgW2dyaWRfaXRl bXMsIGxheW91dF9kYXRhLCB0cmVlX3NpemVdID0gc2l6aW5nX3RyZWUuVHJlZVJvb3REYXRhKCk7 Ci0tCi0rICBjb25zdCBhdXRvJiBbZ3JpZF9pdGVtcywgbF9kLCB0cmVlX3NpemVdID0gc2l6aW5n X3RyZWUuVHJlZVJvb3REYXRhKCk7Ci0rICBjb25zdCBhdXRvJiBsYXlvdXRfZGF0YSA9IGxfZDsK LSAgIGNvbnN0IGF1dG8qIGNhY2hlZF9sYXlvdXRfc3VidHJlZSA9IGNvbnRhaW5lcl9zcGFjZS5H ZXRHcmlkTGF5b3V0U3VidHJlZSgpOwotICAgY29uc3QgYXV0byBjb250YWluZXJfd3JpdGluZ19k aXJlY3Rpb24gPQotICAgICAgIGNvbnRhaW5lcl9zcGFjZS5HZXRXcml0aW5nRGlyZWN0aW9uKCk7 Ci1AQCAtMzY5MSw4ICszNjkxLDkgQEAgdm9pZCBHcmlkTGF5b3V0QWxnb3JpdGhtOjpQbGFjZUdy aWRJdGVtcwotIAotICAgLy8gVE9ETyhpa2lscGF0cmljayk6IFVwZGF0ZSB8U2V0SGFzU2VlbkFs bENoaWxkcmVufCBhbmQgZWFybHkgZXhpdCBpZiB0cnVlLgotICAgY29uc3QgYXV0byYgY29uc3Ry YWludF9zcGFjZSA9IEdldENvbnN0cmFpbnRTcGFjZSgpOwotLSAgY29uc3QgYXV0byYgW2dyaWRf aXRlbXMsIGxheW91dF9kYXRhLCB0cmVlX3NpemVdID0gc2l6aW5nX3RyZWUuVHJlZVJvb3REYXRh KCk7Ci0tCi0rICBjb25zdCBhdXRvJiBbZ19pLCBsX2QsIHRyZWVfc2l6ZV0gPSBzaXppbmdfdHJl ZS5UcmVlUm9vdERhdGEoKTsKLSsgIGNvbnN0IGF1dG8mIGdyaWRfaXRlbXMgPSBnX2k7Ci0rICBj b25zdCBhdXRvJiBsYXlvdXRfZGF0YSA9IGxfZDsKLSAgIGNvbnN0IGF1dG8qIGNhY2hlZF9sYXlv dXRfc3VidHJlZSA9IGNvbnN0cmFpbnRfc3BhY2UuR2V0R3JpZExheW91dFN1YnRyZWUoKTsKLSAg IGNvbnN0IGF1dG8gY29udGFpbmVyX3dyaXRpbmdfZGlyZWN0aW9uID0KLSAgICAgICBjb25zdHJh aW50X3NwYWNlLkdldFdyaXRpbmdEaXJlY3Rpb24oKTsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY2hy b21pdW0vcGF0Y2hlcy9jaHJvbWl1bS0xMjItY29uc3RleHByLnBhdGNoIGIvc3JjcGtncy9jaHJv bWl1bS9wYXRjaGVzL2Nocm9taXVtLTEyMi1jb25zdGV4cHIucGF0Y2gKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAuLjI4MjA2NmNjNGVhYjI2Ci0tLSAvZGV2L251bGwK KysrIGIvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2Nocm9taXVtLTEyMi1jb25zdGV4cHIucGF0 Y2gKQEAgLTAsMCArMSw0NSBAQAorZGlmZiAtdXAgY2hyb21pdW0tMTIyLjAuNjI2MS4yOS9jb21w b25lbnRzL2F1dG9maWxsL2NvcmUvY29tbW9uL3VuaXF1ZV9pZHMuaC5tZSBjaHJvbWl1bS0xMjIu MC42MjYxLjI5L2NvbXBvbmVudHMvYXV0b2ZpbGwvY29yZS9jb21tb24vdW5pcXVlX2lkcy5oCist LS0gY2hyb21pdW0tMTIyLjAuNjI2MS4yOS9jb21wb25lbnRzL2F1dG9maWxsL2NvcmUvY29tbW9u L3VuaXF1ZV9pZHMuaC5tZQkyMDI0LTAyLTEzIDEzOjA3OjI0Ljk4MjE4NDQ4NSArMDEwMAorKysr IGNocm9taXVtLTEyMi4wLjYyNjEuMjkvY29tcG9uZW50cy9hdXRvZmlsbC9jb3JlL2NvbW1vbi91 bmlxdWVfaWRzLmgJMjAyNC0wMi0xMyAxMzowNzo0NS41MTA1NTE1ODkgKzAxMDAKK0BAIC0xMzcs NyArMTM3LDcgQEAgc3RydWN0IEdsb2JhbElkIHsKKyAKKyAgIGZyaWVuZCBjb25zdGV4cHIgYXV0 byBvcGVyYXRvcjw9Pihjb25zdCBHbG9iYWxJZDxSZW5kZXJlcklkPiYgbGhzLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEdsb2JhbElkPFJlbmRlcmVySWQ+JiBy aHMpID0gZGVmYXVsdDsKKy0gIGZyaWVuZCBjb25zdGV4cHIgYm9vbCBvcGVyYXRvcj09KGNvbnN0 IEdsb2JhbElkPFJlbmRlcmVySWQ+JiBsaHMsCisrICBmcmllbmQgYm9vbCBvcGVyYXRvcj09KGNv bnN0IEdsb2JhbElkPFJlbmRlcmVySWQ+JiBsaHMsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBjb25zdCBHbG9iYWxJZDxSZW5kZXJlcklkPiYgcmhzKSA9IGRlZmF1bHQ7Cisg fTsKKyAKK2RpZmYgLXVwIGNocm9taXVtLTEyMi4wLjYyNjEuMjkvYmFzZS90eXBlcy9zdHJvbmdf YWxpYXMuaC5tZSBjaHJvbWl1bS0xMjIuMC42MjYxLjI5L2Jhc2UvdHlwZXMvc3Ryb25nX2FsaWFz LmgKKy0tLSBjaHJvbWl1bS0xMjIuMC42MjYxLjI5L2Jhc2UvdHlwZXMvc3Ryb25nX2FsaWFzLmgu bWUJMjAyNC0wMi0xMyAxNDoxMzoyMC4zMTEzNzQyODggKzAxMDAKKysrKyBjaHJvbWl1bS0xMjIu MC42MjYxLjI5L2Jhc2UvdHlwZXMvc3Ryb25nX2FsaWFzLmgJMjAyNC0wMi0xMyAxMjozMDozOC41 OTY5MTM5NTEgKzAxMDAKK0BAIC0xMTAsNyArMTEwLDcgQEAgY2xhc3MgU3Ryb25nQWxpYXMgewor ICAgLy8gYSBgU3Ryb25nQWxpYXM8Vz5gLgorICAgZnJpZW5kIGNvbnN0ZXhwciBhdXRvIG9wZXJh dG9yPD0+KGNvbnN0IFN0cm9uZ0FsaWFzJiBsaHMsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgY29uc3QgU3Ryb25nQWxpYXMmIHJocykgPSBkZWZhdWx0OworLSAgZnJpZW5k IGNvbnN0ZXhwciBib29sIG9wZXJhdG9yPT0oY29uc3QgU3Ryb25nQWxpYXMmIGxocywKKysgIGZy aWVuZCBib29sIG9wZXJhdG9yPT0oY29uc3QgU3Ryb25nQWxpYXMmIGxocywKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFN0cm9uZ0FsaWFzJiByaHMpID0gZGVmYXVs dDsKKyAKKyAgIC8vIEhhc2hlciB0byB1c2UgaW4gc3RkOjp1bm9yZGVyZWRfbWFwLCBzdGQ6OnVu b3JkZXJlZF9zZXQsIGV0Yy4KK2RpZmYgLXVwIGNocm9taXVtLTEyMi4wLjYyNjEuMjkvY29tcG9u ZW50cy9wZXJmb3JtYW5jZV9tYW5hZ2VyL3Jlc291cmNlX2F0dHJpYnV0aW9uL3F1ZXJ5X3BhcmFt cy5oLmNvbnN0ZXhwciBjaHJvbWl1bS0xMjIuMC42MjYxLjI5L2NvbXBvbmVudHMvcGVyZm9ybWFu Y2VfbWFuYWdlci9yZXNvdXJjZV9hdHRyaWJ1dGlvbi9xdWVyeV9wYXJhbXMuaAorLS0tIGNocm9t aXVtLTEyMi4wLjYyNjEuMjkvY29tcG9uZW50cy9wZXJmb3JtYW5jZV9tYW5hZ2VyL3Jlc291cmNl X2F0dHJpYnV0aW9uL3F1ZXJ5X3BhcmFtcy5oLmNvbnN0ZXhwcgkyMDI0LTAyLTA3IDE5OjQ5OjMx LjAwMDAwMDAwMCArMDEwMAorKysrIGNocm9taXVtLTEyMi4wLjYyNjEuMjkvY29tcG9uZW50cy9w ZXJmb3JtYW5jZV9tYW5hZ2VyL3Jlc291cmNlX2F0dHJpYnV0aW9uL3F1ZXJ5X3BhcmFtcy5oCTIw MjQtMDItMTMgMTE6MTI6NTIuOTEzMzM4Njk5ICswMTAwCitAQCAtMjksNyArMjksNyBAQCBjbGFz cyBDb250ZXh0Q29sbGVjdGlvbiB7CisgICBDb250ZXh0Q29sbGVjdGlvbihjb25zdCBDb250ZXh0 Q29sbGVjdGlvbiYgb3RoZXIpOworICAgQ29udGV4dENvbGxlY3Rpb24mIG9wZXJhdG9yPShjb25z dCBDb250ZXh0Q29sbGVjdGlvbiYgb3RoZXIpOworIAorLSAgZnJpZW5kIGNvbnN0ZXhwciBib29s IG9wZXJhdG9yPT0oY29uc3QgQ29udGV4dENvbGxlY3Rpb24mLAorKyAgZnJpZW5kIGJvb2wgb3Bl cmF0b3I9PShjb25zdCBDb250ZXh0Q29sbGVjdGlvbiYsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBjb25zdCBDb250ZXh0Q29sbGVjdGlvbiYpID0gZGVmYXVsdDsKKyAKKyAg IC8vIEFkZHMgYGNvbnRleHRgIHRvIHRoZSBjb2xsZWN0aW9uLgorQEAgLTY3LDcgKzY3LDcgQEAg c3RydWN0IFF1ZXJ5UGFyYW1zIHsKKyAgIFF1ZXJ5UGFyYW1zKGNvbnN0IFF1ZXJ5UGFyYW1zJiBv dGhlcik7CisgICBRdWVyeVBhcmFtcyYgb3BlcmF0b3I9KGNvbnN0IFF1ZXJ5UGFyYW1zJiBvdGhl cik7CisgCistICBmcmllbmQgY29uc3RleHByIGJvb2wgb3BlcmF0b3I9PShjb25zdCBRdWVyeVBh cmFtcyYsCisrICBmcmllbmQgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFF1ZXJ5UGFyYW1zJiwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFF1ZXJ5UGFyYW1zJikgPSBk ZWZhdWx0OworIAorICAgLy8gUmVzb3VyY2UgdHlwZXMgdG8gbWVhc3VyZS4KZGlmZiAtLWdpdCBh L3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9jaHJvbWl1bS0xMjItZGlzYWJsZS1GRm1wZWdBbGxv d0xpc3RzLnBhdGNoIGIvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2Nocm9taXVtLTEyMi1kaXNh YmxlLUZGbXBlZ0FsbG93TGlzdHMucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMDAwMDAwMDAuLmMzZmI2MDZkNmU3MTQyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9j aHJvbWl1bS9wYXRjaGVzL2Nocm9taXVtLTEyMi1kaXNhYmxlLUZGbXBlZ0FsbG93TGlzdHMucGF0 Y2gKQEAgLTAsMCArMSwxMiBAQAorZGlmZiAtdXAgY2hyb21pdW0tMTIyLjAuNjI2MS4yOS9tZWRp YS9iYXNlL21lZGlhX3N3aXRjaGVzLmNjLmRpc2FibGUtRkZtcGVnQWxsb3dMaXN0cyBjaHJvbWl1 bS0xMjIuMC42MjYxLjI5L21lZGlhL2Jhc2UvbWVkaWFfc3dpdGNoZXMuY2MKKy0tLSBjaHJvbWl1 bS0xMjIuMC42MjYxLjI5L21lZGlhL2Jhc2UvbWVkaWFfc3dpdGNoZXMuY2MuZGlzYWJsZS1GRm1w ZWdBbGxvd0xpc3RzCTIwMjQtMDItMTIgMTU6NTY6NTAuNzAzMTk2NDcxICswMTAwCisrKysgY2hy b21pdW0tMTIyLjAuNjI2MS4yOS9tZWRpYS9iYXNlL21lZGlhX3N3aXRjaGVzLmNjCTIwMjQtMDIt MTIgMTc6MDg6NDIuMjY2MDc2NDAxICswMTAwCitAQCAtMTY4Nyw3ICsxNjg3LDcgQEAgQkFTRV9G RUFUVVJFKGtVc2VXaW5kb3dCb3VuZHNGb3JQaXAsCisgLy8gRW5hYmxlcyBGRm1wZWcgYWxsb3cg bGlzdHMgZm9yIHN1cHBvcnRlZCBjb2RlY3MgLyBjb250YWluZXJzLgorIEJBU0VfRkVBVFVSRShr RkZtcGVnQWxsb3dMaXN0cywKKyAgICAgICAgICAgICAgIkZGbXBlZ0FsbG93TGlzdHMiLAorLSAg ICAgICAgICAgICBiYXNlOjpGRUFUVVJFX0VOQUJMRURfQllfREVGQVVMVCk7CisrICAgICAgICAg ICAgIGJhc2U6OkZFQVRVUkVfRElTQUJMRURfQllfREVGQVVMVCk7CisgCisgLy8gRW5hYmxlcyBz ZW5kaW5nIE1lZGlhTG9nIHRvIHRoZSBsb2cgc3RyZWFtLCB3aGljaCBpcyB1c2VmdWwgZm9yIGVh c2llcgorIC8vIGRldmVsb3BtZW50IGJ5IGVuc3VyaW5nIGxvZ3MgY2FuIGJlIHNlZW4gd2l0aG91 dCBhIHJlbW90ZSBkZXNrdG9wIHNlc3Npb24uCmRpZmYgLS1naXQgYS9zcmNwa2dzL2Nocm9taXVt L3BhdGNoZXMvY2hyb21pdW0tMTIyLW1pc3NpbmctaGVhZGVyLWZpbGVzLnBhdGNoIGIvc3JjcGtn cy9jaHJvbWl1bS9wYXRjaGVzL2Nocm9taXVtLTEyMi1taXNzaW5nLWhlYWRlci1maWxlcy5wYXRj aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMC4uYWE2YmQ3MGQ3ZGI1 NjcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvY2hyb21pdW0t MTIyLW1pc3NpbmctaGVhZGVyLWZpbGVzLnBhdGNoCkBAIC0wLDAgKzEsMTkxIEBACitkaWZmIC11 cCBjaHJvbWl1bS0xMjIuMC42MjYxLjI5L2Jhc2UvY2hlY2tfb3AuaC5taXNzaW5nLWhlYWRlci1m aWxlcyBjaHJvbWl1bS0xMjIuMC42MjYxLjI5L2Jhc2UvY2hlY2tfb3AuaAorLS0tIGNocm9taXVt LTEyMi4wLjYyNjEuMjkvYmFzZS9jaGVja19vcC5oLm1pc3NpbmctaGVhZGVyLWZpbGVzCTIwMjQt MDItMDcgMTk6NDk6MjAuMDAwMDAwMDAwICswMTAwCisrKysgY2hyb21pdW0tMTIyLjAuNjI2MS4y OS9iYXNlL2NoZWNrX29wLmgJMjAyNC0wMi0xMiAxNDo1OTo0OC4xMzY0MTUwNjAgKzAxMDAKK0BA IC01LDYgKzUsNyBAQAorICNpZm5kZWYgQkFTRV9DSEVDS19PUF9IXworICNkZWZpbmUgQkFTRV9D SEVDS19PUF9IXworIAorKyNpbmNsdWRlIDxjc3RkaW50PgorICNpbmNsdWRlIDxjc3RkZGVmPgor ICNpbmNsdWRlIDxzdHJpbmc+CisgI2luY2x1ZGUgPHN0cmluZ192aWV3PgorZGlmZiAtdXAgY2hy b21pdW0tMTIyLjAuNjI2MS4yOS9iYXNlL2NvbnRhaW5lcnMvZmxhdF9tYXAuaC5taXNzaW5nLWhl YWRlci1maWxlcyBjaHJvbWl1bS0xMjIuMC42MjYxLjI5L2Jhc2UvY29udGFpbmVycy9mbGF0X21h cC5oCistLS0gY2hyb21pdW0tMTIyLjAuNjI2MS4yOS9iYXNlL2NvbnRhaW5lcnMvZmxhdF9tYXAu aC5taXNzaW5nLWhlYWRlci1maWxlcwkyMDI0LTAyLTA3IDE5OjQ5OjIwLjAwMDAwMDAwMCArMDEw MAorKysrIGNocm9taXVtLTEyMi4wLjYyNjEuMjkvYmFzZS9jb250YWluZXJzL2ZsYXRfbWFwLmgJ MjAyNC0wMi0xMiAxNDo1OTo0OC4xMzY0MTUwNjAgKzAxMDAKK0BAIC01LDYgKzUsNyBAQAorICNp Zm5kZWYgQkFTRV9DT05UQUlORVJTX0ZMQVRfTUFQX0hfCisgI2RlZmluZSBCQVNFX0NPTlRBSU5F UlNfRkxBVF9NQVBfSF8KKyAKKysjaW5jbHVkZSA8Y3N0ZGludD4KKyAjaW5jbHVkZSA8ZnVuY3Rp b25hbD4KKyAjaW5jbHVkZSA8dHVwbGU+CisgI2luY2x1ZGUgPHR5cGVfdHJhaXRzPgorZGlmZiAt dXAgY2hyb21pdW0tMTIyLjAuNjI2MS4yOS9jaHJvbWUvYnJvd3Nlci93ZWJhdXRobi9hdXRoZW50 aWNhdG9yX3JlcXVlc3RfZGlhbG9nX21vZGVsLmgubWlzc2luZy1oZWFkZXItZmlsZXMgY2hyb21p dW0tMTIyLjAuNjI2MS4yOS9jaHJvbWUvYnJvd3Nlci93ZWJhdXRobi9hdXRoZW50aWNhdG9yX3Jl cXVlc3RfZGlhbG9nX21vZGVsLmgKKy0tLSBjaHJvbWl1bS0xMjIuMC42MjYxLjI5L2Nocm9tZS9i cm93c2VyL3dlYmF1dGhuL2F1dGhlbnRpY2F0b3JfcmVxdWVzdF9kaWFsb2dfbW9kZWwuaC5taXNz aW5nLWhlYWRlci1maWxlcwkyMDI0LTAyLTEyIDE0OjU5OjQ4LjEzNzQxNTA3OSArMDEwMAorKysr IGNocm9taXVtLTEyMi4wLjYyNjEuMjkvY2hyb21lL2Jyb3dzZXIvd2ViYXV0aG4vYXV0aGVudGlj YXRvcl9yZXF1ZXN0X2RpYWxvZ19tb2RlbC5oCTIwMjQtMDItMTIgMTU6Mjg6MTcuMTY4Mzk1Nzg3 ICswMTAwCitAQCAtOSw2ICs5LDcgQEAKKyAjaW5jbHVkZSA8b3B0aW9uYWw+CisgI2luY2x1ZGUg PHN0cmluZz4KKyAjaW5jbHVkZSA8dmVjdG9yPgorKyNpbmNsdWRlIDx2YXJpYW50PgorIAorICNp bmNsdWRlICJiYXNlL2NvbnRhaW5lcnMvc3Bhbi5oIgorICNpbmNsdWRlICJiYXNlL2Z1bmN0aW9u YWwvY2FsbGJhY2tfZm9yd2FyZC5oIgorZGlmZiAtdXAgY2hyb21pdW0tMTIyLjAuNjI2MS4yOS9j aHJvbWUvdGVzdC9jaHJvbWVkcml2ZXIvY2hyb21lL3dlYl92aWV3X2ltcGwuY2MubWlzc2luZy1o ZWFkZXItZmlsZXMgY2hyb21pdW0tMTIyLjAuNjI2MS4yOS9jaHJvbWUvdGVzdC9jaHJvbWVkcml2 ZXIvY2hyb21lL3dlYl92aWV3X2ltcGwuY2MKKy0tLSBjaHJvbWl1bS0xMjIuMC42MjYxLjI5L2No cm9tZS90ZXN0L2Nocm9tZWRyaXZlci9jaHJvbWUvd2ViX3ZpZXdfaW1wbC5jYy5taXNzaW5nLWhl YWRlci1maWxlcwkyMDI0LTAyLTA3IDE5OjQ5OjI3LjAwMDAwMDAwMCArMDEwMAorKysrIGNocm9t aXVtLTEyMi4wLjYyNjEuMjkvY2hyb21lL3Rlc3QvY2hyb21lZHJpdmVyL2Nocm9tZS93ZWJfdmll d19pbXBsLmNjCTIwMjQtMDItMTIgMTQ6NTk6NDguMTM3NDE1MDc5ICswMTAwCitAQCAtMTEsNiAr MTEsNyBAQAorICNpbmNsdWRlIDxxdWV1ZT4KKyAjaW5jbHVkZSA8dXRpbGl0eT4KKyAjaW5jbHVk ZSA8dmVjdG9yPgorKyNpbmNsdWRlIDxjc3RyaW5nPgorIAorICNpbmNsdWRlICJiYXNlL2NoZWNr LmgiCisgI2luY2x1ZGUgImJhc2UvZmlsZXMvZmlsZV9wYXRoLmgiCitkaWZmIC11cCBjaHJvbWl1 bS0xMjIuMC42MjYxLjI5L2NvbXBvbmVudHMvZmVhdHVyZV9lbmdhZ2VtZW50L2ludGVybmFsL25l dmVyX2V2ZW50X3N0b3JhZ2VfdmFsaWRhdG9yLmgubWlzc2luZy1oZWFkZXItZmlsZXMgY2hyb21p dW0tMTIyLjAuNjI2MS4yOS9jb21wb25lbnRzL2ZlYXR1cmVfZW5nYWdlbWVudC9pbnRlcm5hbC9u ZXZlcl9ldmVudF9zdG9yYWdlX3ZhbGlkYXRvci5oCistLS0gY2hyb21pdW0tMTIyLjAuNjI2MS4y OS9jb21wb25lbnRzL2ZlYXR1cmVfZW5nYWdlbWVudC9pbnRlcm5hbC9uZXZlcl9ldmVudF9zdG9y YWdlX3ZhbGlkYXRvci5oLm1pc3NpbmctaGVhZGVyLWZpbGVzCTIwMjQtMDItMDcgMTk6NDk6MzAu MDAwMDAwMDAwICswMTAwCisrKysgY2hyb21pdW0tMTIyLjAuNjI2MS4yOS9jb21wb25lbnRzL2Zl YXR1cmVfZW5nYWdlbWVudC9pbnRlcm5hbC9uZXZlcl9ldmVudF9zdG9yYWdlX3ZhbGlkYXRvci5o CTIwMjQtMDItMTIgMTQ6NTk6NDguMTM4NDE1MDk3ICswMTAwCitAQCAtNSw2ICs1LDcgQEAKKyAj aWZuZGVmIENPTVBPTkVOVFNfRkVBVFVSRV9FTkdBR0VNRU5UX0lOVEVSTkFMX05FVkVSX0VWRU5U X1NUT1JBR0VfVkFMSURBVE9SX0hfCisgI2RlZmluZSBDT01QT05FTlRTX0ZFQVRVUkVfRU5HQUdF TUVOVF9JTlRFUk5BTF9ORVZFUl9FVkVOVF9TVE9SQUdFX1ZBTElEQVRPUl9IXworIAorKyNpbmNs dWRlIDxjc3RkaW50PgorICNpbmNsdWRlIDxzdHJpbmc+CisgCisgI2luY2x1ZGUgImNvbXBvbmVu dHMvZmVhdHVyZV9lbmdhZ2VtZW50L2ludGVybmFsL2V2ZW50X3N0b3JhZ2VfdmFsaWRhdG9yLmgi CitkaWZmIC11cCBjaHJvbWl1bS0xMjIuMC42MjYxLjI5L2dpbi90aW1lX2NsYW1wZXIuaC5taXNz aW5nLWhlYWRlci1maWxlcyBjaHJvbWl1bS0xMjIuMC42MjYxLjI5L2dpbi90aW1lX2NsYW1wZXIu aAorLS0tIGNocm9taXVtLTEyMi4wLjYyNjEuMjkvZ2luL3RpbWVfY2xhbXBlci5oLm1pc3Npbmct aGVhZGVyLWZpbGVzCTIwMjQtMDItMDcgMTk6NDk6MzUuMDAwMDAwMDAwICswMTAwCisrKysgY2hy b21pdW0tMTIyLjAuNjI2MS4yOS9naW4vdGltZV9jbGFtcGVyLmgJMjAyNC0wMi0xMiAxNDo1OTo0 OC4xMzg0MTUwOTcgKzAxMDAKK0BAIC00OCw3ICs0OCw3IEBAIGNsYXNzIEdJTl9FWFBPUlQgVGlt ZUNsYW1wZXIgeworICAgICBjb25zdCBpbnQ2NF90IG1pY3JvcyA9IG5vd19taWNyb3MgJSAxMDAw OworICAgICAvLyBhYnMoKSBpcyBuZWNlc3NhcnkgZm9yIGRldmljZXMgd2l0aCB0aW1lcyBiZWZv cmUgdW5peC1lcG9jaCAobW9zdCBsaWtlbHkKKyAgICAgLy8gY29uZmlndXJlZCBpbmNvcnJlY3Rs eSkuCistICAgIGlmIChhYnMobWljcm9zKSArIGtSZXNvbHV0aW9uTWljcm9zIDwgMTAwMCkgewor KyAgICBpZiAoc3RkOjphYnMobWljcm9zKSArIGtSZXNvbHV0aW9uTWljcm9zIDwgMTAwMCkgewor ICAgICAgIHJldHVybiBub3dfbWljcm9zIC8gMTAwMDsKKyAgICAgfQorICAgICByZXR1cm4gQ2xh bXBUaW1lUmVzb2x1dGlvbihub3dfbWljcm9zKSAvIDEwMDA7CitkaWZmIC11cCBjaHJvbWl1bS0x MjIuMC42MjYxLjI5L25ldC9iYXNlL25ldF9leHBvcnQuaC5taXNzaW5nLWhlYWRlci1maWxlcyBj aHJvbWl1bS0xMjIuMC42MjYxLjI5L25ldC9iYXNlL25ldF9leHBvcnQuaAorLS0tIGNocm9taXVt LTEyMi4wLjYyNjEuMjkvbmV0L2Jhc2UvbmV0X2V4cG9ydC5oLm1pc3NpbmctaGVhZGVyLWZpbGVz CTIwMjQtMDItMDcgMTk6NDk6MzguMDAwMDAwMDAwICswMTAwCisrKysgY2hyb21pdW0tMTIyLjAu NjI2MS4yOS9uZXQvYmFzZS9uZXRfZXhwb3J0LmgJMjAyNC0wMi0xMiAxNDo1OTo0OC4xMzk0MTUx MTYgKzAxMDAKK0BAIC01LDYgKzUsOCBAQAorICNpZm5kZWYgTkVUX0JBU0VfTkVUX0VYUE9SVF9I XworICNkZWZpbmUgTkVUX0JBU0VfTkVUX0VYUE9SVF9IXworIAorKyNpbmNsdWRlIDxjc3RkaW50 PgorKworIC8vIERlZmluZXMgTkVUX0VYUE9SVCBzbyB0aGF0IGZ1bmN0aW9uYWxpdHkgaW1wbGVt ZW50ZWQgYnkgdGhlIG5ldCBtb2R1bGUgY2FuCisgLy8gYmUgZXhwb3J0ZWQgdG8gY29uc3VtZXJz LCBhbmQgTkVUX0VYUE9SVF9QUklWQVRFIHRoYXQgYWxsb3dzIHVuaXQgdGVzdHMgdG8KKyAvLyBh Y2Nlc3MgZmVhdHVyZXMgbm90IGludGVuZGVkIHRvIGJlIHVzZWQgZGlyZWN0bHkgYnkgcmVhbCBj b25zdW1lcnMuCitkaWZmIC11cCBjaHJvbWl1bS0xMjIuMC42MjYxLjI5L3RoaXJkX3BhcnR5L2Fi c2VpbC1jcHAvYWJzbC9zdHJpbmdzL3N0cmluZ192aWV3LmgubWlzc2luZy1oZWFkZXItZmlsZXMg Y2hyb21pdW0tMTIyLjAuNjI2MS4yOS90aGlyZF9wYXJ0eS9hYnNlaWwtY3BwL2Fic2wvc3RyaW5n cy9zdHJpbmdfdmlldy5oCistLS0gY2hyb21pdW0tMTIyLjAuNjI2MS4yOS90aGlyZF9wYXJ0eS9h YnNlaWwtY3BwL2Fic2wvc3RyaW5ncy9zdHJpbmdfdmlldy5oLm1pc3NpbmctaGVhZGVyLWZpbGVz CTIwMjQtMDItMDcgMTk6NDk6NDAuMDAwMDAwMDAwICswMTAwCisrKysgY2hyb21pdW0tMTIyLjAu NjI2MS4yOS90aGlyZF9wYXJ0eS9hYnNlaWwtY3BwL2Fic2wvc3RyaW5ncy9zdHJpbmdfdmlldy5o CTIwMjQtMDItMTIgMTQ6NTk6NDguMTQyNDE1MTcyICswMTAwCitAQCAtMjcsNiArMjcsNyBAQAor ICNpZm5kZWYgQUJTTF9TVFJJTkdTX1NUUklOR19WSUVXX0hfCisgI2RlZmluZSBBQlNMX1NUUklO R1NfU1RSSU5HX1ZJRVdfSF8KKyAKKysjaW5jbHVkZSA8Y3N0ZGludD4KKyAjaW5jbHVkZSA8YWxn b3JpdGhtPgorICNpbmNsdWRlIDxjYXNzZXJ0PgorICNpbmNsdWRlIDxjc3RkZGVmPgorZGlmZiAt dXAgY2hyb21pdW0tMTIyLjAuNjI2MS4yOS90aGlyZF9wYXJ0eS9kYXduL3NyYy90aW50L2xhbmcv c3BpcnYvcmVhZGVyL2FzdF9wYXJzZXIvbmFtZXIuaC5taXNzaW5nLWhlYWRlci1maWxlcyBjaHJv bWl1bS0xMjIuMC42MjYxLjI5L3RoaXJkX3BhcnR5L2Rhd24vc3JjL3RpbnQvbGFuZy9zcGlydi9y ZWFkZXIvYXN0X3BhcnNlci9uYW1lci5oCistLS0gY2hyb21pdW0tMTIyLjAuNjI2MS4yOS90aGly ZF9wYXJ0eS9kYXduL3NyYy90aW50L2xhbmcvc3BpcnYvcmVhZGVyL2FzdF9wYXJzZXIvbmFtZXIu aC5taXNzaW5nLWhlYWRlci1maWxlcwkyMDI0LTAyLTA3IDE5OjUwOjQ0LjAwMDAwMDAwMCArMDEw MAorKysrIGNocm9taXVtLTEyMi4wLjYyNjEuMjkvdGhpcmRfcGFydHkvZGF3bi9zcmMvdGludC9s YW5nL3NwaXJ2L3JlYWRlci9hc3RfcGFyc2VyL25hbWVyLmgJMjAyNC0wMi0xMiAxNDo1OTo0OC4x NDI0MTUxNzIgKzAxMDAKK0BAIC0yOCw2ICsyOCw3IEBACisgI2lmbmRlZiBTUkNfVElOVF9MQU5H X1NQSVJWX1JFQURFUl9BU1RfUEFSU0VSX05BTUVSX0hfCisgI2RlZmluZSBTUkNfVElOVF9MQU5H X1NQSVJWX1JFQURFUl9BU1RfUEFSU0VSX05BTUVSX0hfCisgCisrI2luY2x1ZGUgPGNzdGRpbnQ+ CisgI2luY2x1ZGUgPHN0cmluZz4KKyAjaW5jbHVkZSA8dW5vcmRlcmVkX21hcD4KKyAjaW5jbHVk ZSA8dmVjdG9yPgorZGlmZiAtdXAgY2hyb21pdW0tMTIyLjAuNjI2MS4yOS90aGlyZF9wYXJ0eS9t YXRlcmlhbF9jb2xvcl91dGlsaXRpZXMvc3JjL2NwcC9wYWxldHRlcy90b25lcy5jYy5taXNzaW5n LWhlYWRlci1maWxlcyBjaHJvbWl1bS0xMjIuMC42MjYxLjI5L3RoaXJkX3BhcnR5L21hdGVyaWFs X2NvbG9yX3V0aWxpdGllcy9zcmMvY3BwL3BhbGV0dGVzL3RvbmVzLmNjCistLS0gY2hyb21pdW0t MTIyLjAuNjI2MS4yOS90aGlyZF9wYXJ0eS9tYXRlcmlhbF9jb2xvcl91dGlsaXRpZXMvc3JjL2Nw cC9wYWxldHRlcy90b25lcy5jYy5taXNzaW5nLWhlYWRlci1maWxlcwkyMDI0LTAyLTA3IDE5OjUy OjM0LjAwMDAwMDAwMCArMDEwMAorKysrIGNocm9taXVtLTEyMi4wLjYyNjEuMjkvdGhpcmRfcGFy dHkvbWF0ZXJpYWxfY29sb3JfdXRpbGl0aWVzL3NyYy9jcHAvcGFsZXR0ZXMvdG9uZXMuY2MJMjAy NC0wMi0xMiAxNDo1OTo0OC4xNDM0MTUxOTAgKzAxMDAKK0BAIC0xNCw2ICsxNCw3IEBACisgICog bGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgICovCisgCisrI2luY2x1ZGUgPGNtYXRo PgorICNpbmNsdWRlICJjcHAvcGFsZXR0ZXMvdG9uZXMuaCIKKyAKKyAjaW5jbHVkZSAiY3BwL2Nh bS9jYW0uaCIKK2RpZmYgLXVwIGNocm9taXVtLTEyMi4wLjYyNjEuMjkvdGhpcmRfcGFydHkvcnV5 L3NyYy9ydXkvcHJvZmlsZXIvaW5zdHJ1bWVudGF0aW9uLmgubWlzc2luZy1oZWFkZXItZmlsZXMg Y2hyb21pdW0tMTIyLjAuNjI2MS4yOS90aGlyZF9wYXJ0eS9ydXkvc3JjL3J1eS9wcm9maWxlci9p bnN0cnVtZW50YXRpb24uaAorLS0tIGNocm9taXVtLTEyMi4wLjYyNjEuMjkvdGhpcmRfcGFydHkv cnV5L3NyYy9ydXkvcHJvZmlsZXIvaW5zdHJ1bWVudGF0aW9uLmgubWlzc2luZy1oZWFkZXItZmls ZXMJMjAyNC0wMi0wNyAxOTo1Mjo1OS4wMDAwMDAwMDAgKzAxMDAKKysrKyBjaHJvbWl1bS0xMjIu MC42MjYxLjI5L3RoaXJkX3BhcnR5L3J1eS9zcmMvcnV5L3Byb2ZpbGVyL2luc3RydW1lbnRhdGlv bi5oCTIwMjQtMDItMTIgMTQ6NTk6NDguMTQzNDE1MTkwICswMTAwCitAQCAtMTcsNiArMTcsNyBA QCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAjZGVmaW5lIFJVWV9SVVlfUFJPRklM RVJfSU5TVFJVTUVOVEFUSU9OX0hfCisgCisgI2lmZGVmIFJVWV9QUk9GSUxFUgorKyNpbmNsdWRl IDxzdHJpbmc+CisgI2luY2x1ZGUgPGNzdGRpbz4KKyAjaW5jbHVkZSA8bXV0ZXg+CisgI2luY2x1 ZGUgPHZlY3Rvcj4KK2RpZmYgLXVwIGNocm9taXVtLTEyMi4wLjYyNjEuMjkvdGhpcmRfcGFydHkv c3dpZnRzaGFkZXIvdGhpcmRfcGFydHkvbGx2bS0xMC4wL2xsdm0vbGliL1N1cHBvcnQvVW5peC9T aWduYWxzLmluYy5taXNzaW5nLWhlYWRlci1maWxlcyBjaHJvbWl1bS0xMjIuMC42MjYxLjI5L3Ro aXJkX3BhcnR5L3N3aWZ0c2hhZGVyL3RoaXJkX3BhcnR5L2xsdm0tMTAuMC9sbHZtL2xpYi9TdXBw b3J0L1VuaXgvU2lnbmFscy5pbmMKKy0tLSBjaHJvbWl1bS0xMjIuMC42MjYxLjI5L3RoaXJkX3Bh cnR5L3N3aWZ0c2hhZGVyL3RoaXJkX3BhcnR5L2xsdm0tMTAuMC9sbHZtL2xpYi9TdXBwb3J0L1Vu aXgvU2lnbmFscy5pbmMubWlzc2luZy1oZWFkZXItZmlsZXMJMjAyNC0wMi0wNyAxOTo1NDo0NS4w MDAwMDAwMDAgKzAxMDAKKysrKyBjaHJvbWl1bS0xMjIuMC42MjYxLjI5L3RoaXJkX3BhcnR5L3N3 aWZ0c2hhZGVyL3RoaXJkX3BhcnR5L2xsdm0tMTAuMC9sbHZtL2xpYi9TdXBwb3J0L1VuaXgvU2ln bmFscy5pbmMJMjAyNC0wMi0xMiAxNDo1OTo0OC4xNDM0MTUxOTAgKzAxMDAKK0BAIC00NSw2ICs0 NSw3IEBACisgI2luY2x1ZGUgImxsdm0vU3VwcG9ydC9TYXZlQW5kUmVzdG9yZS5oIgorICNpbmNs dWRlICJsbHZtL1N1cHBvcnQvcmF3X29zdHJlYW0uaCIKKyAjaW5jbHVkZSA8YWxnb3JpdGhtPgor KyNpbmNsdWRlIDxjc3RkaW50PgorICNpbmNsdWRlIDxzdHJpbmc+CisgI2luY2x1ZGUgPHN5c2V4 aXRzLmg+CisgI2lmZGVmIEhBVkVfQkFDS1RSQUNFCitkaWZmIC11cCBjaHJvbWl1bS0xMjIuMC42 MjYxLjI5L3RoaXJkX3BhcnR5L3RmbGl0ZS9zcmMvdGVuc29yZmxvdy9saXRlL2tlcm5lbHMvaW50 ZXJuYWwvc3BlY3Ryb2dyYW0uaC5taXNzaW5nLWhlYWRlci1maWxlcyBjaHJvbWl1bS0xMjIuMC42 MjYxLjI5L3RoaXJkX3BhcnR5L3RmbGl0ZS9zcmMvdGVuc29yZmxvdy9saXRlL2tlcm5lbHMvaW50 ZXJuYWwvc3BlY3Ryb2dyYW0uaAorLS0tIGNocm9taXVtLTEyMi4wLjYyNjEuMjkvdGhpcmRfcGFy dHkvdGZsaXRlL3NyYy90ZW5zb3JmbG93L2xpdGUva2VybmVscy9pbnRlcm5hbC9zcGVjdHJvZ3Jh bS5oLm1pc3NpbmctaGVhZGVyLWZpbGVzCTIwMjQtMDItMDcgMTk6NTM6MTcuMDAwMDAwMDAwICsw MTAwCisrKysgY2hyb21pdW0tMTIyLjAuNjI2MS4yOS90aGlyZF9wYXJ0eS90ZmxpdGUvc3JjL3Rl bnNvcmZsb3cvbGl0ZS9rZXJuZWxzL2ludGVybmFsL3NwZWN0cm9ncmFtLmgJMjAyNC0wMi0xMiAx NDo1OTo0OC4xNDM0MTUxOTAgKzAxMDAKK0BAIC0zMSw2ICszMSw3IEBAIGxpbWl0YXRpb25zIHVu ZGVyIHRoZSBMaWNlbnNlLgorICNpZm5kZWYgVEVOU09SRkxPV19MSVRFX0tFUk5FTFNfSU5URVJO QUxfU1BFQ1RST0dSQU1fSF8KKyAjZGVmaW5lIFRFTlNPUkZMT1dfTElURV9LRVJORUxTX0lOVEVS TkFMX1NQRUNUUk9HUkFNX0hfCisgCisrI2luY2x1ZGUgPGNzdGRpbnQ+CisgI2luY2x1ZGUgPGNv bXBsZXg+CisgI2luY2x1ZGUgPGRlcXVlPgorICNpbmNsdWRlIDx2ZWN0b3I+CitkaWZmIC11cCBj aHJvbWl1bS0xMjIuMC42MjYxLjI5L3RoaXJkX3BhcnR5L3Z1bGthbi1kZXBzL3Z1bGthbi12YWxp ZGF0aW9uLWxheWVycy9zcmMvbGF5ZXJzL2V4dGVybmFsL3ZtYS92a19tZW1fYWxsb2MuaC5taXNz aW5nLWhlYWRlci1maWxlcyBjaHJvbWl1bS0xMjIuMC42MjYxLjI5L3RoaXJkX3BhcnR5L3Z1bGth bi1kZXBzL3Z1bGthbi12YWxpZGF0aW9uLWxheWVycy9zcmMvbGF5ZXJzL2V4dGVybmFsL3ZtYS92 a19tZW1fYWxsb2MuaAorLS0tIGNocm9taXVtLTEyMi4wLjYyNjEuMjkvdGhpcmRfcGFydHkvdnVs a2FuLWRlcHMvdnVsa2FuLXZhbGlkYXRpb24tbGF5ZXJzL3NyYy9sYXllcnMvZXh0ZXJuYWwvdm1h L3ZrX21lbV9hbGxvYy5oLm1pc3NpbmctaGVhZGVyLWZpbGVzCTIwMjQtMDItMDcgMTk6NTQ6MjAu MDAwMDAwMDAwICswMTAwCisrKysgY2hyb21pdW0tMTIyLjAuNjI2MS4yOS90aGlyZF9wYXJ0eS92 dWxrYW4tZGVwcy92dWxrYW4tdmFsaWRhdGlvbi1sYXllcnMvc3JjL2xheWVycy9leHRlcm5hbC92 bWEvdmtfbWVtX2FsbG9jLmgJMjAyNC0wMi0xMiAxNDo1OTo0OC4xNDU0MTUyMjggKzAxMDAKK0BA IC0yODg0LDYgKzI4ODQsNyBAQCBzdGF0aWMgdm9pZCB2bWFfYWxpZ25lZF9mcmVlKHZvaWQqIFZN QV9OCisgCisgLy8gRGVmaW5lIHRoaXMgbWFjcm8gdG8gMSB0byBlbmFibGUgZnVuY3Rpb25zOiB2 bWFCdWlsZFN0YXRzU3RyaW5nLCB2bWFGcmVlU3RhdHNTdHJpbmcuCisgI2lmIFZNQV9TVEFUU19T VFJJTkdfRU5BQkxFRAorKyNpbmNsdWRlIDxzdGRpby5oPgorICAgICBzdGF0aWMgaW5saW5lIHZv aWQgVm1hVWludDMyVG9TdHIoY2hhciogVk1BX05PVF9OVUxMIG91dFN0ciwgc2l6ZV90IHN0ckxl biwgdWludDMyX3QgbnVtKQorICAgICB7CisgICAgICAgICBzbnByaW50ZihvdXRTdHIsIHN0ckxl biwgIiV1Iiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQgaW50PihudW0pKTsKK2RpZmYgLXVwIGNocm9t aXVtLTEyMi4wLjYyNjEuMjkvdGhpcmRfcGFydHkvd2VicnRjL2F1ZGlvL3V0aWxpdHkvY2hhbm5l bF9taXhlci5jYy5taXNzaW5nLWhlYWRlci1maWxlcyBjaHJvbWl1bS0xMjIuMC42MjYxLjI5L3Ro aXJkX3BhcnR5L3dlYnJ0Yy9hdWRpby91dGlsaXR5L2NoYW5uZWxfbWl4ZXIuY2MKKy0tLSBjaHJv bWl1bS0xMjIuMC42MjYxLjI5L3RoaXJkX3BhcnR5L3dlYnJ0Yy9hdWRpby91dGlsaXR5L2NoYW5u ZWxfbWl4ZXIuY2MubWlzc2luZy1oZWFkZXItZmlsZXMJMjAyNC0wMi0wNyAxOTo1MzoxNy4wMDAw MDAwMDAgKzAxMDAKKysrKyBjaHJvbWl1bS0xMjIuMC42MjYxLjI5L3RoaXJkX3BhcnR5L3dlYnJ0 Yy9hdWRpby91dGlsaXR5L2NoYW5uZWxfbWl4ZXIuY2MJMjAyNC0wMi0xMiAxNDo1OTo0OC4xNDU0 MTUyMjggKzAxMDAKK0BAIC04LDYgKzgsOCBAQAorICAqICBiZSBmb3VuZCBpbiB0aGUgQVVUSE9S UyBmaWxlIGluIHRoZSByb290IG9mIHRoZSBzb3VyY2UgdHJlZS4KKyAgKi8KKyAKKysjaW5jbHVk ZSA8Y3N0cmluZz4KKysKKyAjaW5jbHVkZSAiYXVkaW8vdXRpbGl0eS9jaGFubmVsX21peGVyLmgi CisgCisgI2luY2x1ZGUgImF1ZGlvL3V0aWxpdHkvY2hhbm5lbF9taXhpbmdfbWF0cml4LmgiCitk aWZmIC11cCBjaHJvbWl1bS0xMjIuMC42MjYxLjI5L3RoaXJkX3BhcnR5L3dlYnJ0Yy9tb2R1bGVz L2luY2x1ZGUvbW9kdWxlX2NvbW1vbl90eXBlc19wdWJsaWMuaC5taXNzaW5nLWhlYWRlci1maWxl cyBjaHJvbWl1bS0xMjIuMC42MjYxLjI5L3RoaXJkX3BhcnR5L3dlYnJ0Yy9tb2R1bGVzL2luY2x1 ZGUvbW9kdWxlX2NvbW1vbl90eXBlc19wdWJsaWMuaAorLS0tIGNocm9taXVtLTEyMi4wLjYyNjEu MjkvdGhpcmRfcGFydHkvd2VicnRjL21vZHVsZXMvaW5jbHVkZS9tb2R1bGVfY29tbW9uX3R5cGVz X3B1YmxpYy5oLm1pc3NpbmctaGVhZGVyLWZpbGVzCTIwMjQtMDItMDcgMTk6NTM6MTcuMDAwMDAw MDAwICswMTAwCisrKysgY2hyb21pdW0tMTIyLjAuNjI2MS4yOS90aGlyZF9wYXJ0eS93ZWJydGMv bW9kdWxlcy9pbmNsdWRlL21vZHVsZV9jb21tb25fdHlwZXNfcHVibGljLmgJMjAyNC0wMi0xMiAx NDo1OTo0OC4xNDU0MTUyMjggKzAxMDAKK0BAIC0xMSw2ICsxMSw3IEBACisgI2lmbmRlZiBNT0RV TEVTX0lOQ0xVREVfTU9EVUxFX0NPTU1PTl9UWVBFU19QVUJMSUNfSF8KKyAjZGVmaW5lIE1PRFVM RVNfSU5DTFVERV9NT0RVTEVfQ09NTU9OX1RZUEVTX1BVQkxJQ19IXworIAorKyNpbmNsdWRlIDxj c3RkaW50PgorICNpbmNsdWRlIDxsaW1pdHM+CisgCisgI2luY2x1ZGUgImFic2wvdHlwZXMvb3B0 aW9uYWwuaCIKK2RpZmYgLXVwIGNocm9taXVtLTEyMi4wLjYyNjEuMjkvdWkvZ2Z4L2xpbnV4L2Ry bV91dGlsX2xpbnV4LmgubWlzc2luZy1oZWFkZXItZmlsZXMgY2hyb21pdW0tMTIyLjAuNjI2MS4y OS91aS9nZngvbGludXgvZHJtX3V0aWxfbGludXguaAorLS0tIGNocm9taXVtLTEyMi4wLjYyNjEu MjkvdWkvZ2Z4L2xpbnV4L2RybV91dGlsX2xpbnV4LmgubWlzc2luZy1oZWFkZXItZmlsZXMJMjAy NC0wMi0wNyAxOTo1MDowNS4wMDAwMDAwMDAgKzAxMDAKKysrKyBjaHJvbWl1bS0xMjIuMC42MjYx LjI5L3VpL2dmeC9saW51eC9kcm1fdXRpbF9saW51eC5oCTIwMjQtMDItMTIgMTQ6NTk6NDguMTQ3 NDE1MjY1ICswMTAwCitAQCAtOSw2ICs5LDggQEAKKyAKKyAjaW5jbHVkZSAidWkvZ2Z4L2J1ZmZl cl90eXBlcy5oIgorIAorKyNpbmNsdWRlIDxjc3RkaW50PgorKworIG5hbWVzcGFjZSB1aSB7Cisg CisgaW50IEdldEZvdXJDQ0Zvcm1hdEZyb21CdWZmZXJGb3JtYXQoZ2Z4OjpCdWZmZXJGb3JtYXQg Zm9ybWF0KTsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9vbGQtY2xhbmcu cGF0Y2ggYi9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvb2xkLWNsYW5nLnBhdGNoCmRlbGV0ZWQg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiNzczZDA5ZmJkN2RmNi4uMDAwMDAwMDAwMDAwMDAKLS0t IGEvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL29sZC1jbGFuZy5wYXRjaAorKysgL2Rldi9udWxs CkBAIC0xLDExICswLDAgQEAKLS0tLSBhL2J1aWxkL2NvbmZpZy9jb21waWxlci9CVUlMRC5nbgot KysrIGIvYnVpbGQvY29uZmlnL2NvbXBpbGVyL0JVSUxELmduCi1AQCAtMTI4OCw3ICsxMjg4LDcg QEAKLSAgICAgfSBlbHNlIHsKLSAgICAgICAjIC1mZmlsZS1jb21waWxhdGlvbi1kaXIgaXMgYW4g YWxpYXMgZm9yIGJvdGggLWZkZWJ1Zy1jb21waWxhdGlvbi1kaXI9Ci0gICAgICAgIyBhbmQgLWZj b3ZlcmFnZS1jb21waWxhdGlvbi1kaXI9LgotLSAgICAgIGNmbGFncyArPSBbICItZmZpbGUtY29t cGlsYXRpb24tZGlyPS4iIF0KLSsgICAgICBjZmxhZ3MgKz0gWyAiLWZkZWJ1Zy1jb21waWxhdGlv bi1kaXI9LiIgXQotICAgICAgIHN3aWZ0ZmxhZ3MgKz0gWyAiLWZpbGUtY29tcGlsYXRpb24tZGly PS4iIF0KLSAgICAgfQotICAgICBpZiAoIWlzX3dpbikgewpkaWZmIC0tZ2l0IGEvc3JjcGtncy9j aHJvbWl1bS90ZW1wbGF0ZSBiL3NyY3BrZ3MvY2hyb21pdW0vdGVtcGxhdGUKaW5kZXggMjI5NDdl ODNjYjUyYzMuLjUzOTgxZjdjZDM2N2Y4IDEwMDY0NAotLS0gYS9zcmNwa2dzL2Nocm9taXVtL3Rl bXBsYXRlCisrKyBiL3NyY3BrZ3MvY2hyb21pdW0vdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAj IFRlbXBsYXRlIGZpbGUgZm9yICdjaHJvbWl1bScKIHBrZ25hbWU9Y2hyb21pdW0KICMgU2VlIGh0 dHBzOi8vY2hyb21pdW1kYXNoLmFwcHNwb3QuY29tL3JlbGVhc2VzP3BsYXRmb3JtPUxpbnV4IGZv ciB0aGUgbGF0ZXN0IHZlcnNpb24KLXZlcnNpb249MTIxLjAuNjE2Ny4xNjAKK3ZlcnNpb249MTIy LjAuNjI2MS45NAogcmV2aXNpb249MQogYXJjaHM9Imk2ODYqIHg4Nl82NCogYWFyY2g2NCogYXJt djdsKiIKIGhvc3RtYWtlZGVwZW5kcz0iCkBAIC0yOCw3ICsyOCw3IEBAIG1haW50YWluZXI9IkR1 bmNhZW4gPGR1bmNhZW5Adm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJCU0QtMy1DbGF1c2UiCiBo b21lcGFnZT0iaHR0cHM6Ly93d3cuY2hyb21pdW0ub3JnLyIKIGRpc3RmaWxlcz0iaHR0cHM6Ly9j b21tb25kYXRhc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9jaHJvbWl1bS1icm93c2VyLW9mZmljaWFs LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT00NTg2NjczODk5MzgzZDMw ZTlkOTVmYTNhOWM1ZjgxNjBmMzJhOWQ1Nzg5ZTQwYmU4MmFiZjNlNGRkOWNjM2RmCitjaGVja3N1 bT0yZDAyOTRkOWJhZjk0YzkyMWU0ZTEwYWY3ODQxY2M2YzExZTM4ODBmMTIwZTgzZmQ1NzQwOWU4 N2NlM2NiMWU3CiAKIGxpYjMyZGlzYWJsZWQ9eWVzCiAK --===============4148974119421179174==--