From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-1.0 required=5.0 tests=ALL_TRUSTED autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 21687 invoked from network); 14 May 2020 12:43:26 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 14 May 2020 12:43:26 -0000 Content-Type: multipart/mixed; boundary="===============9114203497453959257==" MIME-Version: 1.0 Subject: =?utf8?q?Re=3A_=5BPR_PATCH=5D_=5BUpdated=5D_New_package=3A_electron8-8=2E2=2E5?= To: ml@inbox.vuxu.org From: Johnnynator Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Thu, 14 May 2020 14:43:26 +0200 List-Id: Message-ID: <20200514124326.5BqfZeVmqyYF5ghasmlYhPTtT3jBOp_1jrWtG5Xwuko@z> GitHub notification mails are now in MIME to allow UTF8. --===============9114203497453959257== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgSm9obm55bmF0b3IgYWdhaW5zdCBt YXN0ZXIgb24gdGhlIHZvaWQtcGFja2FnZXMgcmVwb3NpdG9yeQoKaHR0cHM6Ly9naXRodWIuY29t L0pvaG5ueW5hdG9yL3ZvaWQtcGFja2FnZXMgZWxlY3Ryb244Cmh0dHBzOi8vZ2l0aHViLmNvbS92 b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvcHVsbC8yMTk1NAoKTmV3IHBhY2thZ2U6IGVsZWN0cm9u OC04LjIuNQoKCkEgcGF0Y2ggZmlsZSBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4 L3ZvaWQtcGFja2FnZXMvcHVsbC8yMTk1NC5wYXRjaCBpcyBhdHRhY2hlZA== --===============9114203497453959257== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-electron8-21954.patch" RnJvbSA4MTM4MzZiODRlNDExNTM0NDc4MzI2ZTlhOTY3ZTIzNGQ0YTJlMTYwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKb2huIDxtZUBqb2hubnluYXRvci5kZXY+CkRhdGU6IFN1biwg MTAgTWF5IDIwMjAgMTU6MDU6MTUgKzAyMDAKU3ViamVjdDogW1BBVENIIDEvMl0gTmV3IHBhY2th Z2U6IGVsZWN0cm9uOC04LjIuNQoKW2NpIHNraXBdCi0tLQogLi4uL211c2wtcGF0Y2hlcy9jaHJv bWl1bS1tdXNsLWNyYXNocGFkLnBhdGNoIHwgIDIzICsrCiAuLi5tdXNsLWRlZmF1bHQtcHRocmVh ZC1zdGFja3NpemUucGF0Y2gucGF0Y2ggfCAgMzEgKysKIC4uLi9jaHJvbWl1bS1tdXNsLXNhbmRi b3gucGF0Y2gucGF0Y2ggICAgICAgICB8IDE3NiArKysrKysrKysrKwogLi4udW0tbXVzbF9jYW5v bmljYWxpemVfZmlsZV9uYW1lLnBhdGNoLnBhdGNoIHwgIDEzICsKIC4uLi9jaHJvbWl1bS1tdXNs X2NkZWZzLnBhdGNoLnBhdGNoICAgICAgICAgICB8ICA0NSArKysKIC4uLm11c2xfZGVmaW5lX3Rl bXBfZmFpbHVyZV9yZXRyeS5wYXRjaC5wYXRjaCB8ICAxOCArKwogLi4uL2Nocm9taXVtLW11c2xf ZG5zLnBhdGNoLnBhdGNoICAgICAgICAgICAgIHwgIDYxICsrKysKIC4uLi9jaHJvbWl1bS1tdXNs X2V4ZWluZm8ucGF0Y2gucGF0Y2ggICAgICAgICB8ICA5NiArKysrKysKIC4uLi9jaHJvbWl1bS1t dXNsX2Zwc3RhdGVfdC5wYXRjaC5wYXRjaCAgICAgICB8ICA0OCArKysKIC4uLi9jaHJvbWl1bS1t dXNsX2dldGNvbnRleHQucGF0Y2gucGF0Y2ggICAgICB8ICAyNSArKwogLi4uL2Nocm9taXVtLW11 c2xfbWFsbGluZm8ucGF0Y2gucGF0Y2ggICAgICAgIHwgIDYxICsrKysKIC4uLi9jaHJvbWl1bS1t dXNsX3ByZWFkX3B3cml0ZTY0LnBhdGNoLnBhdGNoICB8ICAxOCArKwogLi4uL2Nocm9taXVtLW11 c2xfcHVzaF9iYWNrLnBhdGNoLnBhdGNoICAgICAgIHwgIDEzICsKIC4uLi9jaHJvbWl1bS1tdXNs X3NpX2ZpZWxkcy5wYXRjaC5wYXRjaCAgICAgICB8ICAxMyArCiAuLi4vY2hyb21pdW0tbXVzbF9z dGFja19zaXplLnBhdGNoLnBhdGNoICAgICAgfCAgNDEgKysrCiAuLi4vY2hyb21pdW0tbXVzbF9z dGFja190cmFjZS5wYXRjaC5wYXRjaCAgICAgfCAgNDQgKysrCiAuLi4vY2hyb21pdW0tbXVzbF90 Y3BfbGlzdGVuLnBhdGNoLnBhdGNoICAgICAgfCAgMTQgKwogLi4uL2Nocm9taXVtLW11c2xfd29y ZHNpemUucGF0Y2gucGF0Y2ggICAgICAgIHwgIDI0ICsrCiAuLi5jaHJvbWl1bS1jaHJvbWl1bV9h dGtfb3B0aW9uYWwucGF0Y2gucGF0Y2ggfCAgMTcgKysKIC4uLm0tZml4LWJ1aWxkaW5nLXdpdGgt dW5idW5kbGVkLWxpYnhtbC5wYXRjaCB8IDEyNyArKysrKysrKwogLi4uL2Nocm9taXVtLWZpeC1z dWNlc3MtZGVmaW5pdGlvbi5wYXRjaCAgICAgIHwgIDE1ICsKIC4uLi9wYXRjaGVzL2Nocm9taXVt LWduX2Jvb3RzdHJhcF9uaW5qYS5wYXRjaCB8ICAzMiArKwogLi4uL2ZpbGVzL3BhdGNoZXMvY2hy b21pdW0tbGliY19tYWxsb2MucGF0Y2ggIHwgIDI2ICsrCiAuLi5zLUltcGxlbWVudC1zaXplLWxp bWl0LWZvci11c2VyLWxvZ3MucGF0Y2ggfCAyNzUgKysrKysrKysrKysrKysrKysrCiAuLi5hLXNj cmlwdC10by1saXN0LXBhdGNoLXRhcmdldHMucGF0Y2gucGF0Y2ggfCAgNDIgKysrCiAuLi4vcGF0 Y2hlcy9lbGVjdHJvbi1CdWlsZC1maXhlcy5wYXRjaC5wYXRjaCAgfCAgNDcgKysrCiAuLi5lY3Ry b24tZG9udC1hc3N1bWUtcHl0aG9uLWlzLXB5dGhvbjIucGF0Y2ggfCAgMTcgKysKIHNyY3BrZ3Mv ZWxlY3Ryb244L3RlbXBsYXRlICAgICAgICAgICAgICAgICAgICB8IDI1OCArKysrKysrKysrKysr KysrCiAyOCBmaWxlcyBjaGFuZ2VkLCAxNjIwIGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEw MDY0NCBzcmNwa2dzL2VsZWN0cm9uOC9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbXVzbC1j cmFzaHBhZC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxlY3Ryb244L2ZpbGVz L211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsLWRlZmF1bHQtcHRocmVhZC1zdGFja3NpemUucGF0 Y2gucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2VsZWN0cm9uOC9maWxlcy9tdXNs LXBhdGNoZXMvY2hyb21pdW0tbXVzbC1zYW5kYm94LnBhdGNoLnBhdGNoCiBjcmVhdGUgbW9kZSAx MDA2NDQgc3JjcGtncy9lbGVjdHJvbjgvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2xf Y2Fub25pY2FsaXplX2ZpbGVfbmFtZS5wYXRjaC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNy Y3BrZ3MvZWxlY3Ryb244L2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsX2NkZWZzLnBh dGNoLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9lbGVjdHJvbjgvZmlsZXMvbXVz bC1wYXRjaGVzL2Nocm9taXVtLW11c2xfZGVmaW5lX3RlbXBfZmFpbHVyZV9yZXRyeS5wYXRjaC5w YXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxlY3Ryb244L2ZpbGVzL211c2wtcGF0 Y2hlcy9jaHJvbWl1bS1tdXNsX2Rucy5wYXRjaC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNy Y3BrZ3MvZWxlY3Ryb244L2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsX2V4ZWluZm8u cGF0Y2gucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2VsZWN0cm9uOC9maWxlcy9t dXNsLXBhdGNoZXMvY2hyb21pdW0tbXVzbF9mcHN0YXRlX3QucGF0Y2gucGF0Y2gKIGNyZWF0ZSBt b2RlIDEwMDY0NCBzcmNwa2dzL2VsZWN0cm9uOC9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0t bXVzbF9nZXRjb250ZXh0LnBhdGNoLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9l bGVjdHJvbjgvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2xfbWFsbGluZm8ucGF0Y2gu cGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2VsZWN0cm9uOC9maWxlcy9tdXNsLXBh dGNoZXMvY2hyb21pdW0tbXVzbF9wcmVhZF9wd3JpdGU2NC5wYXRjaC5wYXRjaAogY3JlYXRlIG1v ZGUgMTAwNjQ0IHNyY3BrZ3MvZWxlY3Ryb244L2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1t dXNsX3B1c2hfYmFjay5wYXRjaC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxl Y3Ryb244L2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsX3NpX2ZpZWxkcy5wYXRjaC5w YXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxlY3Ryb244L2ZpbGVzL211c2wtcGF0 Y2hlcy9jaHJvbWl1bS1tdXNsX3N0YWNrX3NpemUucGF0Y2gucGF0Y2gKIGNyZWF0ZSBtb2RlIDEw MDY0NCBzcmNwa2dzL2VsZWN0cm9uOC9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbXVzbF9z dGFja190cmFjZS5wYXRjaC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxlY3Ry b244L2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsX3RjcF9saXN0ZW4ucGF0Y2gucGF0 Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2VsZWN0cm9uOC9maWxlcy9tdXNsLXBhdGNo ZXMvY2hyb21pdW0tbXVzbF93b3Jkc2l6ZS5wYXRjaC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0 IHNyY3BrZ3MvZWxlY3Ryb244L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tY2hyb21pdW1fYXRrX29w dGlvbmFsLnBhdGNoLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9lbGVjdHJvbjgv ZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1maXgtYnVpbGRpbmctd2l0aC11bmJ1bmRsZWQtbGlieG1s LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9lbGVjdHJvbjgvZmlsZXMvcGF0Y2hl cy9jaHJvbWl1bS1maXgtc3VjZXNzLWRlZmluaXRpb24ucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0 NCBzcmNwa2dzL2VsZWN0cm9uOC9maWxlcy9wYXRjaGVzL2Nocm9taXVtLWduX2Jvb3RzdHJhcF9u aW5qYS5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxlY3Ryb244L2ZpbGVzL3Bh dGNoZXMvY2hyb21pdW0tbGliY19tYWxsb2MucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNw a2dzL2VsZWN0cm9uOC9maWxlcy9wYXRjaGVzL2Nocm9taXVtLXVwc3RyZWFtLTAwMDEtbG9ncy1J bXBsZW1lbnQtc2l6ZS1saW1pdC1mb3ItdXNlci1sb2dzLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2 NDQgc3JjcGtncy9lbGVjdHJvbjgvZmlsZXMvcGF0Y2hlcy9lbGVjdHJvbi1BZGQtYS1zY3JpcHQt dG8tbGlzdC1wYXRjaC10YXJnZXRzLnBhdGNoLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3Jj cGtncy9lbGVjdHJvbjgvZmlsZXMvcGF0Y2hlcy9lbGVjdHJvbi1CdWlsZC1maXhlcy5wYXRjaC5w YXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxlY3Ryb244L2ZpbGVzL3BhdGNoZXMv ZWxlY3Ryb24tZG9udC1hc3N1bWUtcHl0aG9uLWlzLXB5dGhvbjIucGF0Y2gKIGNyZWF0ZSBtb2Rl IDEwMDY0NCBzcmNwa2dzL2VsZWN0cm9uOC90ZW1wbGF0ZQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv ZWxlY3Ryb244L2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsLWNyYXNocGFkLnBhdGNo IGIvc3JjcGtncy9lbGVjdHJvbjgvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2wtY3Jh c2hwYWQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjcwY2Zm YTMwMDJiCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9lbGVjdHJvbjgvZmlsZXMvbXVzbC1w YXRjaGVzL2Nocm9taXVtLW11c2wtY3Jhc2hwYWQucGF0Y2gKQEAgLTAsMCArMSwyMyBAQAorLS0t IGEvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9saW51eC9wdHJhY2VyLmNjCisr KysgYi90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL2xpbnV4L3B0cmFjZXIuY2MK K0BAIC0yNiw2ICsyNiw3IEBACisgCisgI2lmIGRlZmluZWQoQVJDSF9DUFVfWDg2X0ZBTUlMWSkK KyAjaW5jbHVkZSA8YXNtL2xkdC5oPgorKyNpbmNsdWRlIDxhc20vcHRyYWNlLWFiaS5oPgorICNl bmRpZgorIAorIG5hbWVzcGFjZSBjcmFzaHBhZCB7CisKKy0tLSBhL3RoaXJkX3BhcnR5L2NyYXNo cGFkL2NyYXNocGFkL2NvbXBhdC9saW51eC9zeXMvcHRyYWNlLmgKKysrKyBiL3RoaXJkX3BhcnR5 L2NyYXNocGFkL2NyYXNocGFkL2NvbXBhdC9saW51eC9zeXMvcHRyYWNlLmgKK0BAIC0xNyw3ICsx Nyw5IEBACisgCisgI2luY2x1ZGVfbmV4dCA8c3lzL3B0cmFjZS5oPgorIAorKyNpZiBkZWZpbmVk KF9fR0xJQkNfXykKKyAjaW5jbHVkZSA8c3lzL2NkZWZzLmg+CisrI2VuZGlmCisgCisgLy8gaHR0 cHM6Ly9zb3VyY2V3YXJlLm9yZy9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9MjI0MzMKKyAjaWYg IWRlZmluZWQoUFRSQUNFX0dFVF9USFJFQURfQVJFQSkgJiYgIWRlZmluZWQoUFRfR0VUX1RIUkVB RF9BUkVBKSAmJiBcCmRpZmYgLS1naXQgYS9zcmNwa2dzL2VsZWN0cm9uOC9maWxlcy9tdXNsLXBh dGNoZXMvY2hyb21pdW0tbXVzbC1kZWZhdWx0LXB0aHJlYWQtc3RhY2tzaXplLnBhdGNoLnBhdGNo IGIvc3JjcGtncy9lbGVjdHJvbjgvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2wtZGVm YXVsdC1wdGhyZWFkLXN0YWNrc2l6ZS5wYXRjaC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAwMC4uZDBjMTM2MWI4ZWQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dz L2VsZWN0cm9uOC9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbXVzbC1kZWZhdWx0LXB0aHJl YWQtc3RhY2tzaXplLnBhdGNoLnBhdGNoCkBAIC0wLDAgKzEsMzEgQEAKK2RpZmYgLS1naXQgYS9i YXNlL3RocmVhZGluZy9wbGF0Zm9ybV90aHJlYWRfbGludXguY2MgYi9iYXNlL3RocmVhZGluZy9w bGF0Zm9ybV90aHJlYWRfbGludXguY2MKK2luZGV4IDA5NWM0OWIuLjUwNDRiYjggMTAwNjQ0Cist LS0gYS9iYXNlL3RocmVhZGluZy9wbGF0Zm9ybV90aHJlYWRfbGludXguY2MKKysrKyBiL2Jhc2Uv dGhyZWFkaW5nL3BsYXRmb3JtX3RocmVhZF9saW51eC5jYworQEAgLTE4Niw3ICsxODYsNyBAQCB2 b2lkIFRlcm1pbmF0ZU9uVGhyZWFkKCkge30KKyAKKyBzaXplX3QgR2V0RGVmYXVsdFRocmVhZFN0 YWNrU2l6ZShjb25zdCBwdGhyZWFkX2F0dHJfdCYgYXR0cmlidXRlcykgeworICNpZiAhZGVmaW5l ZChUSFJFQURfU0FOSVRJWkVSKQorLSAgcmV0dXJuIDA7CisrICByZXR1cm4gKDEgPDwgMjMpOwor ICNlbHNlCisgICAvLyBUaHJlYWRTYW5pdGl6ZXIgYmxvYXRzIHRoZSBzdGFjayBoZWF2aWx5LiBF dmlkZW5jZSBoYXMgYmVlbiB0aGF0IHRoZQorICAgLy8gZGVmYXVsdCBzdGFjayBzaXplIGlzbid0 IGVub3VnaCBmb3Igc29tZSBicm93c2VyIHRlc3RzLgorZGlmZiAtLWdpdCBhL2Nocm9tZS9hcHAv c2h1dGRvd25fc2lnbmFsX2hhbmRsZXJzX3Bvc2l4LmNjIGIvY2hyb21lL2FwcC9zaHV0ZG93bl9z aWduYWxfaGFuZGxlcnNfcG9zaXguY2MKK2luZGV4IDYyMWQ0NDEuLmJlMjExMDYgMTAwNjQ0Cist LS0gYS9jaHJvbWUvYXBwL3NodXRkb3duX3NpZ25hbF9oYW5kbGVyc19wb3NpeC5jYworKysrIGIv Y2hyb21lL2FwcC9zaHV0ZG93bl9zaWduYWxfaGFuZGxlcnNfcG9zaXguY2MKK0BAIC0xODcsMTEg KzE4NywxMSBAQCB2b2lkIEluc3RhbGxTaHV0ZG93blNpZ25hbEhhbmRsZXJzKAorICAgZ19zaHV0 ZG93bl9waXBlX3JlYWRfZmQgPSBwaXBlZmRbMF07CisgICBnX3NodXRkb3duX3BpcGVfd3JpdGVf ZmQgPSBwaXBlZmRbMV07CisgI2lmICFkZWZpbmVkKEFERFJFU1NfU0FOSVRJWkVSKQorLSAgY29u c3Qgc2l6ZV90IGtTaHV0ZG93bkRldGVjdG9yVGhyZWFkU3RhY2tTaXplID0gUFRIUkVBRF9TVEFD S19NSU4gKiAyOworKyAgY29uc3Qgc2l6ZV90IGtTaHV0ZG93bkRldGVjdG9yVGhyZWFkU3RhY2tT aXplID0gUFRIUkVBRF9TVEFDS19NSU4gKiAyICo4OworICNlbHNlCisgICAvLyBBU2FuIGluc3Ry dW1lbnRhdGlvbiBibG9hdHMgdGhlIHN0YWNrIGZyYW1lcywgc28gd2UgbmVlZCB0byBpbmNyZWFz ZSB0aGUKKyAgIC8vIHN0YWNrIHNpemUgdG8gYXZvaWQgaGl0dGluZyB0aGUgZ3VhcmQgcGFnZS4K Ky0gIGNvbnN0IHNpemVfdCBrU2h1dGRvd25EZXRlY3RvclRocmVhZFN0YWNrU2l6ZSA9IFBUSFJF QURfU1RBQ0tfTUlOICogNDsKKysgIGNvbnN0IHNpemVfdCBrU2h1dGRvd25EZXRlY3RvclRocmVh ZFN0YWNrU2l6ZSA9IFBUSFJFQURfU1RBQ0tfTUlOICogNCAqODsKKyAjZW5kaWYKKyAgIFNodXRk b3duRGV0ZWN0b3IqIGRldGVjdG9yID0gbmV3IFNodXRkb3duRGV0ZWN0b3IoCisgICAgICAgZ19z aHV0ZG93bl9waXBlX3JlYWRfZmQsIHN0ZDo6bW92ZShzaHV0ZG93bl9jYWxsYmFjayksIHRhc2tf cnVubmVyKTsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZWxlY3Ryb244L2ZpbGVzL211c2wtcGF0Y2hl cy9jaHJvbWl1bS1tdXNsLXNhbmRib3gucGF0Y2gucGF0Y2ggYi9zcmNwa2dzL2VsZWN0cm9uOC9m aWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbXVzbC1zYW5kYm94LnBhdGNoLnBhdGNoCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5mNDg1ZjZjYzc1YQotLS0gL2Rldi9u dWxsCisrKyBiL3NyY3BrZ3MvZWxlY3Ryb244L2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1t dXNsLXNhbmRib3gucGF0Y2gucGF0Y2gKQEAgLTAsMCArMSwxNzYgQEAKK2RpZmYgLS1naXQgYS9z YW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc3lzY2FsbF9wYXJhbWV0ZXJzX3Jlc3Ry aWN0aW9ucy5jYyBiL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9zeXNjYWxsX3Bh cmFtZXRlcnNfcmVzdHJpY3Rpb25zLmNjCitpbmRleCAzNDhhYjZlLi40NTUwZjllIDEwMDY0NAor LS0tIC4vc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5c2NhbGxfcGFyYW1ldGVy c19yZXN0cmljdGlvbnMuY2MKKysrKyAuL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVy cy9zeXNjYWxsX3BhcmFtZXRlcnNfcmVzdHJpY3Rpb25zLmNjCitAQCAtMTM5LDIxICsxMzksMTEg QEAgbmFtZXNwYWNlIHNhbmRib3ggeworIC8vIHByZXNlbnQgKGFzIGluIG5ld2VyIHZlcnNpb25z IG9mIHBvc2l4X3NwYXduKS4KKyBSZXN1bHRFeHByIFJlc3RyaWN0Q2xvbmVUb1RocmVhZHNBbmRF UEVSTUZvcmsoKSB7CisgICBjb25zdCBBcmc8dW5zaWduZWQgbG9uZz4gZmxhZ3MoMCk7CistCist ICAvLyBUT0RPKG1kZW1wc2t5KTogRXh0ZW5kIERTTCB0byBzdXBwb3J0IChmbGFncyAmIH5tYXNr MSkgPT0gbWFzazIuCistICBjb25zdCB1aW50NjRfdCBrQW5kcm9pZENsb25lTWFzayA9IENMT05F X1ZNIHwgQ0xPTkVfRlMgfCBDTE9ORV9GSUxFUyB8CistICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIENMT05FX1NJR0hBTkQgfCBDTE9ORV9USFJFQUQgfAorLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBDTE9ORV9TWVNWU0VNOworLSAgY29uc3QgdWludDY0 X3Qga09ic29sZXRlQW5kcm9pZENsb25lTWFzayA9IGtBbmRyb2lkQ2xvbmVNYXNrIHwgQ0xPTkVf REVUQUNIRUQ7CistCistICBjb25zdCB1aW50NjRfdCBrR2xpYmNQdGhyZWFkRmxhZ3MgPQorLSAg ICAgIENMT05FX1ZNIHwgQ0xPTkVfRlMgfCBDTE9ORV9GSUxFUyB8IENMT05FX1NJR0hBTkQgfCBD TE9ORV9USFJFQUQgfAorLSAgICAgIENMT05FX1NZU1ZTRU0gfCBDTE9ORV9TRVRUTFMgfCBDTE9O RV9QQVJFTlRfU0VUVElEIHwgQ0xPTkVfQ0hJTERfQ0xFQVJUSUQ7CistICBjb25zdCBCb29sRXhw ciBnbGliY190ZXN0ID0gZmxhZ3MgPT0ga0dsaWJjUHRocmVhZEZsYWdzOworLQorLSAgY29uc3Qg Qm9vbEV4cHIgYW5kcm9pZF90ZXN0ID0KKy0gICAgICBBbnlPZihmbGFncyA9PSBrQW5kcm9pZENs b25lTWFzaywgZmxhZ3MgPT0ga09ic29sZXRlQW5kcm9pZENsb25lTWFzaywKKy0gICAgICAgICAg ICBmbGFncyA9PSBrR2xpYmNQdGhyZWFkRmxhZ3MpOworKyAgY29uc3QgaW50IHJlcXVpcmVkID0g Q0xPTkVfVk0gfCBDTE9ORV9GUyB8IENMT05FX0ZJTEVTIHwgQ0xPTkVfU0lHSEFORCB8CisrICAg ICAgICAgICAgICAgICAgICAgICBDTE9ORV9USFJFQUQgfCBDTE9ORV9TWVNWU0VNOworKyAgY29u c3QgaW50IHNhZmUgPSBDTE9ORV9TRVRUTFMgfCBDTE9ORV9QQVJFTlRfU0VUVElEIHwgQ0xPTkVf Q0hJTERfQ0xFQVJUSUQgfAorKyAgICAgICAgICAgICAgICAgICBDTE9ORV9ERVRBQ0hFRDsKKysg IGNvbnN0IEJvb2xFeHByIHRocmVhZF9jbG9uZV9vayA9IChmbGFncyZ+c2FmZSk9PXJlcXVpcmVk OworIAorICAgLy8gVGhlIGZvbGxvd2luZyB0d28gZmxhZ3MgYXJlIHRoZSB0d28gaW1wb3J0YW50 IGZsYWdzIGluIGFueSB2Zm9yay1lbXVsYXRpbmcKKyAgIC8vIGNsb25lIGNhbGwuIEVQRVJNIGFu eSBjbG9uZSBjYWxsIHRoYXQgY29udGFpbnMgYm90aCBvZiB0aGVtLgorQEAgLTE2Myw3ICsxNTMs NyBAQCBSZXN1bHRFeHByIFJlc3RyaWN0Q2xvbmVUb1RocmVhZHNBbmRFUEVSTUZvcmsoKSB7Cisg ICAgICAgQW55T2YoKGZsYWdzICYgKENMT05FX1ZNIHwgQ0xPTkVfVEhSRUFEKSkgPT0gMCwKKyAg ICAgICAgICAgICAoZmxhZ3MgJiBrSW1wb3J0YW50Q2xvbmVWZm9ya0ZsYWdzKSA9PSBrSW1wb3J0 YW50Q2xvbmVWZm9ya0ZsYWdzKTsKKyAKKy0gIHJldHVybiBJZihJc0FuZHJvaWQoKSA/IGFuZHJv aWRfdGVzdCA6IGdsaWJjX3Rlc3QsIEFsbG93KCkpCisrICByZXR1cm4gSWYodGhyZWFkX2Nsb25l X29rLCBBbGxvdygpKQorICAgICAgIC5FbHNlSWYoaXNfZm9ya19vcl9jbG9uZV92Zm9yaywgRXJy b3IoRVBFUk0pKQorICAgICAgIC5FbHNlKENyYXNoU0lHU1lTQ2xvbmUoKSk7CisgfQorZGlmZiAt LWdpdCBhL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9zeXNjYWxsX3NldHMuY2Mg Yi9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc3lzY2FsbF9zZXRzLmNjCitpbmRl eCA3ZGJjYzg3Li41ODkyNjJmIDEwMDY0NAorLS0tIC4vc2FuZGJveC9saW51eC9zZWNjb21wLWJw Zi1oZWxwZXJzL3N5c2NhbGxfc2V0cy5jYworKysrIC4vc2FuZGJveC9saW51eC9zZWNjb21wLWJw Zi1oZWxwZXJzL3N5c2NhbGxfc2V0cy5jYworQEAgLTM5MSw2ICszOTEsNyBAQCBib29sIFN5c2Nh bGxTZXRzOjpJc0FsbG93ZWRQcm9jZXNzU3RhcnRPckRlYXRoKGludCBzeXNubykgeworICNpZiBk ZWZpbmVkKF9faTM4Nl9fKQorICAgICBjYXNlIF9fTlJfd2FpdHBpZDoKKyAjZW5kaWYKKysgICAg Y2FzZSBfX05SX3NldF90aWRfYWRkcmVzczoKKyAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgY2Fz ZSBfX05SX2Nsb25lOiAgLy8gU2hvdWxkIGJlIHBhcmFtZXRlci1yZXN0cmljdGVkLgorICAgICBj YXNlIF9fTlJfc2V0bnM6ICAvLyBQcml2aWxlZ2VkLgorQEAgLTQwMyw3ICs0MDQsNiBAQCBib29s IFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRQcm9jZXNzU3RhcnRPckRlYXRoKGludCBzeXNubykgewor ICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQo X19taXBzX18pCisgICAgIGNhc2UgX19OUl9zZXRfdGhyZWFkX2FyZWE6CisgI2VuZGlmCistICAg IGNhc2UgX19OUl9zZXRfdGlkX2FkZHJlc3M6CisgICAgIGNhc2UgX19OUl91bnNoYXJlOgorICNp ZiAhZGVmaW5lZChfX21pcHNfXykgJiYgIWRlZmluZWQoX19hYXJjaDY0X18pCisgICAgIGNhc2Ug X19OUl92Zm9yazoKK0BAIC01MTMsNiArNTEzLDggQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNBbGxv d2VkQWRkcmVzc1NwYWNlQWNjZXNzKGludCBzeXNubykgeworICAgICBjYXNlIF9fTlJfbWxvY2s6 CisgICAgIGNhc2UgX19OUl9tdW5sb2NrOgorICAgICBjYXNlIF9fTlJfbXVubWFwOgorKyAgICBj YXNlIF9fTlJfbXJlbWFwOgorKyAgICBjYXNlIF9fTlJfbWVtYmFycmllcjoKKyAgICAgICByZXR1 cm4gdHJ1ZTsKKyAgICAgY2FzZSBfX05SX21hZHZpc2U6CisgICAgIGNhc2UgX19OUl9taW5jb3Jl OgorQEAgLTUzMCw3ICs1MzIsNiBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRBZGRyZXNz U3BhY2VBY2Nlc3MoaW50IHN5c25vKSB7CisgICAgIGNhc2UgX19OUl9tb2RpZnlfbGR0OgorICNl bmRpZgorICAgICBjYXNlIF9fTlJfbXByb3RlY3Q6CistICAgIGNhc2UgX19OUl9tcmVtYXA6Cisg ICAgIGNhc2UgX19OUl9tc3luYzoKKyAgICAgY2FzZSBfX05SX211bmxvY2thbGw6CisgICAgIGNh c2UgX19OUl9yZWFkYWhlYWQ6CitkaWZmIC0tZ2l0IGEvc2FuZGJveC9saW51eC9zeXN0ZW1faGVh ZGVycy9hcm02NF9saW51eF9zeXNjYWxscy5oIGIvc2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVy cy9hcm02NF9saW51eF9zeXNjYWxscy5oCitpbmRleCA1OWQwZWFiLi43YWU3MDAyIDEwMDY0NAor LS0tIC4vc2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9hcm02NF9saW51eF9zeXNjYWxscy5o CisrKysgLi9zYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL2FybTY0X2xpbnV4X3N5c2NhbGxz LmgKK0BAIC0xMDYzLDQgKzEwNjMsOCBAQAorICNkZWZpbmUgX19OUl9tZW1mZF9jcmVhdGUgMjc5 CisgI2VuZGlmCisgCisrI2lmICFkZWZpbmVkKF9fTlJfbWVtYmFycmllcikKKysjZGVmaW5lIF9f TlJfbWVtYmFycmllciAyODMKKysjZW5kaWYKKysKKyAjZW5kaWYgIC8vIFNBTkRCT1hfTElOVVhf U1lTVEVNX0hFQURFUlNfQVJNNjRfTElOVVhfU1lTQ0FMTFNfSF8KK2RpZmYgLS1naXQgYS9zYW5k Ym94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL2FybV9saW51eF9zeXNjYWxscy5oIGIvc2FuZGJveC9s aW51eC9zeXN0ZW1faGVhZGVycy9hcm1fbGludXhfc3lzY2FsbHMuaAoraW5kZXggMWFkZGQ1My4u Nzg0M2I1ZSAxMDA2NDQKKy0tLSAuL3NhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvYXJtX2xp bnV4X3N5c2NhbGxzLmgKKysrKyAuL3NhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvYXJtX2xp bnV4X3N5c2NhbGxzLmgKK0BAIC0xMzg1LDYgKzEzODUsMTAgQEAKKyAjZGVmaW5lIF9fTlJfbWVt ZmRfY3JlYXRlIChfX05SX1NZU0NBTExfQkFTRSszODUpCisgI2VuZGlmCisgCisrI2lmICFkZWZp bmVkKF9fTlJfbWVtYmFycmllcikKKysjZGVmaW5lIF9fTlJfbWVtYmFycmllciAoX19OUl9TWVND QUxMX0JBU0UrMzg5KQorKyNlbmRpZgorKworIC8vIEFSTSBwcml2YXRlIHN5c2NhbGxzLgorICNp ZiAhZGVmaW5lZChfX0FSTV9OUl9CQVNFKQorICNkZWZpbmUgX19BUk1fTlJfQkFTRSAoX19OUl9T WVNDQUxMX0JBU0UgKyAweEYwMDAwKQorZGlmZiAtLWdpdCBhL3NhbmRib3gvbGludXgvc3lzdGVt X2hlYWRlcnMvbWlwczY0X2xpbnV4X3N5c2NhbGxzLmggYi9zYW5kYm94L2xpbnV4L3N5c3RlbV9o ZWFkZXJzL21pcHM2NF9saW51eF9zeXNjYWxscy5oCitpbmRleCBlYzc1ODE1Li42MTJmY2ZhIDEw MDY0NAorLS0tIC4vc2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9taXBzNjRfbGludXhfc3lz Y2FsbHMuaAorKysrIC4vc2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9taXBzNjRfbGludXhf c3lzY2FsbHMuaAorQEAgLTEyNzEsNCArMTI3MSw4IEBACisgI2RlZmluZSBfX05SX21lbWZkX2Ny ZWF0ZSAoX19OUl9MaW51eCArIDMxNCkKKyAjZW5kaWYKKyAKKysjaWYgIWRlZmluZWQoX19OUl9t ZW1iYXJyaWVyKQorKyNkZWZpbmUgX19OUl9tZW1iYXJyaWVyIChfX05SX0xpbnV4ICsgMzE4KQor KyNlbmRpZgorKworICNlbmRpZiAgLy8gU0FOREJPWF9MSU5VWF9TWVNURU1fSEVBREVSU19NSVBT NjRfTElOVVhfU1lTQ0FMTFNfSF8KK2RpZmYgLS1naXQgYS9zYW5kYm94L2xpbnV4L3N5c3RlbV9o ZWFkZXJzL21pcHNfbGludXhfc3lzY2FsbHMuaCBiL3NhbmRib3gvbGludXgvc3lzdGVtX2hlYWRl cnMvbWlwc19saW51eF9zeXNjYWxscy5oCitpbmRleCBkZGJmOTdmLi4xNzQyYWNkIDEwMDY0NAor LS0tIC4vc2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9taXBzX2xpbnV4X3N5c2NhbGxzLmgK KysrKyAuL3NhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvbWlwc19saW51eF9zeXNjYWxscy5o CitAQCAtMTQzMyw0ICsxNDMzLDggQEAKKyAjZGVmaW5lIF9fTlJfbWVtZmRfY3JlYXRlIChfX05S X0xpbnV4ICsgMzU0KQorICNlbmRpZgorIAorKyNpZiAhZGVmaW5lZChfX05SX21lbWJhcnJpZXIp CisrI2RlZmluZSBfX05SX21lbWJhcnJpZXIgKF9fTlJfTGludXggKyAzNTgpCisrI2VuZGlmCisr CisgI2VuZGlmICAvLyBTQU5EQk9YX0xJTlVYX1NZU1RFTV9IRUFERVJTX01JUFNfTElOVVhfU1lT Q0FMTFNfSF8KK2RpZmYgLS1naXQgYS9zYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL3g4Nl8z Ml9saW51eF9zeXNjYWxscy5oIGIvc2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy94ODZfMzJf bGludXhfc3lzY2FsbHMuaAoraW5kZXggYTZhZmM2Mi4uN2VkMGEzYiAxMDA2NDQKKy0tLSAuL3Nh bmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMveDg2XzMyX2xpbnV4X3N5c2NhbGxzLmgKKysrKyAu L3NhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMveDg2XzMyX2xpbnV4X3N5c2NhbGxzLmgKK0BA IC0xNDIyLDUgKzE0MjIsOSBAQAorICNkZWZpbmUgX19OUl9tZW1mZF9jcmVhdGUgMzU2CisgI2Vu ZGlmCisgCisrI2lmICFkZWZpbmVkKF9fTlJfbWVtYmFycmllcikKKysjZGVmaW5lIF9fTlJfbWVt YmFycmllciAzNzUKKysjZW5kaWYKKysKKyAjZW5kaWYgIC8vIFNBTkRCT1hfTElOVVhfU1lTVEVN X0hFQURFUlNfWDg2XzMyX0xJTlVYX1NZU0NBTExTX0hfCisgCitkaWZmIC0tZ2l0IGEvc2FuZGJv eC9saW51eC9zeXN0ZW1faGVhZGVycy94ODZfNjRfbGludXhfc3lzY2FsbHMuaCBiL3NhbmRib3gv bGludXgvc3lzdGVtX2hlYWRlcnMveDg2XzY0X2xpbnV4X3N5c2NhbGxzLmgKK2luZGV4IDM0OTUw NGEuLmVhM2M3YzkgMTAwNjQ0CistLS0gLi9zYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL3g4 Nl82NF9saW51eF9zeXNjYWxscy5oCisrKysgLi9zYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJz L3g4Nl82NF9saW51eF9zeXNjYWxscy5oCitAQCAtMTI5MCw1ICsxMjkwLDkgQEAKKyAjZGVmaW5l IF9fTlJfbWVtZmRfY3JlYXRlIDMxOQorICNlbmRpZgorIAorKyNpZiAhZGVmaW5lZChfX05SX21l bWJhcnJpZXIpCisrI2RlZmluZSBfX05SX21lbWJhcnJpZXIgMzI0CisrI2VuZGlmCisrCisgI2Vu ZGlmICAvLyBTQU5EQk9YX0xJTlVYX1NZU1RFTV9IRUFERVJTX1g4Nl82NF9MSU5VWF9TWVNDQUxM U19IXworIAorZGlmZiAtLWdpdCBhL3NlcnZpY2VzL3NlcnZpY2VfbWFuYWdlci9zYW5kYm94L2xp bnV4L2JwZl9yZW5kZXJlcl9wb2xpY3lfbGludXguY2MgYi9zZXJ2aWNlcy9zZXJ2aWNlX21hbmFn ZXIvc2FuZGJveC9saW51eC9icGZfcmVuZGVyZXJfcG9saWN5X2xpbnV4LmNjCitpbmRleCAwMTdm MTNjLi41MGFlZWMzIDEwMDY0NAorLS0tIC4vc2VydmljZXMvc2VydmljZV9tYW5hZ2VyL3NhbmRi b3gvbGludXgvYnBmX3JlbmRlcmVyX3BvbGljeV9saW51eC5jYworKysrIC4vc2VydmljZXMvc2Vy dmljZV9tYW5hZ2VyL3NhbmRib3gvbGludXgvYnBmX3JlbmRlcmVyX3BvbGljeV9saW51eC5jYwor QEAgLTg4LDEwICs4OCwxMCBAQCBSZXN1bHRFeHByIFJlbmRlcmVyUHJvY2Vzc1BvbGljeTo6RXZh bHVhdGVTeXNjYWxsKGludCBzeXNubykgY29uc3QgeworICAgICBjYXNlIF9fTlJfc3lzaW5mbzoK KyAgICAgY2FzZSBfX05SX3RpbWVzOgorICAgICBjYXNlIF9fTlJfdW5hbWU6CistICAgICAgcmV0 dXJuIEFsbG93KCk7CistICAgIGNhc2UgX19OUl9zY2hlZF9nZXRhZmZpbml0eToKKyAgICAgY2Fz ZSBfX05SX3NjaGVkX2dldHBhcmFtOgorICAgICBjYXNlIF9fTlJfc2NoZWRfZ2V0c2NoZWR1bGVy OgorKyAgICAgIHJldHVybiBBbGxvdygpOworKyAgICBjYXNlIF9fTlJfc2NoZWRfZ2V0YWZmaW5p dHk6CisgICAgIGNhc2UgX19OUl9zY2hlZF9zZXRzY2hlZHVsZXI6CisgICAgICAgcmV0dXJuIHNh bmRib3g6OlJlc3RyaWN0U2NoZWRUYXJnZXQoR2V0UG9saWN5UGlkKCksIHN5c25vKTsKKyAgICAg Y2FzZSBfX05SX3BybGltaXQ2NDoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZWxlY3Ryb244L2ZpbGVz L211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsX2Nhbm9uaWNhbGl6ZV9maWxlX25hbWUucGF0Y2gu cGF0Y2ggYi9zcmNwa2dzL2VsZWN0cm9uOC9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbXVz bF9jYW5vbmljYWxpemVfZmlsZV9uYW1lLnBhdGNoLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMDAwLi4wNTYxNGRhYTc1NwotLS0gL2Rldi9udWxsCisrKyBiL3NyY3Br Z3MvZWxlY3Ryb244L2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsX2Nhbm9uaWNhbGl6 ZV9maWxlX25hbWUucGF0Y2gucGF0Y2gKQEAgLTAsMCArMSwxMyBAQAorZGlmZiAtLWdpdCBhL3Ro aXJkX3BhcnR5L25hc20vY29uZmlnL2NvbmZpZy1saW51eC5oIGIvdGhpcmRfcGFydHkvbmFzbS9j b25maWcvY29uZmlnLWxpbnV4LmgKK2luZGV4IDdlYjdjMjAuLjg4MmI3MzYgMTAwNjQ0CistLS0g YS90aGlyZF9wYXJ0eS9uYXNtL2NvbmZpZy9jb25maWctbGludXguaAorKysrIGIvdGhpcmRfcGFy dHkvbmFzbS9jb25maWcvY29uZmlnLWxpbnV4LmgKK0BAIC0xMTcsNyArMTE3LDcgQEAKKyAjZGVm aW5lIEhBVkVfQUNDRVNTIDEKKyAKKyAvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGNh bm9uaWNhbGl6ZV9maWxlX25hbWUnIGZ1bmN0aW9uLiAqLworLSNkZWZpbmUgSEFWRV9DQU5PTklD QUxJWkVfRklMRV9OQU1FIDEKKysvKiAjdW5kZWYgSEFWRV9DQU5PTklDQUxJWkVfRklMRV9OQU1F ICovCisgCisgLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBjcHVfdG9fbGUxNicgaW50 cmluc2ljIGZ1bmN0aW9uLiAqLworIC8qICN1bmRlZiBIQVZFX0NQVV9UT19MRTE2ICovCmRpZmYg LS1naXQgYS9zcmNwa2dzL2VsZWN0cm9uOC9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbXVz bF9jZGVmcy5wYXRjaC5wYXRjaCBiL3NyY3BrZ3MvZWxlY3Ryb244L2ZpbGVzL211c2wtcGF0Y2hl cy9jaHJvbWl1bS1tdXNsX2NkZWZzLnBhdGNoLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAwLi5mYzdkYzA2ZmYyMQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mv ZWxlY3Ryb244L2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsX2NkZWZzLnBhdGNoLnBh dGNoCkBAIC0wLDAgKzEsNDUgQEAKK2RpZmYgLS1naXQgYS9iYXNlL2FsbG9jYXRvci9hbGxvY2F0 b3Jfc2hpbV9pbnRlcm5hbHMuaCBiL2Jhc2UvYWxsb2NhdG9yL2FsbG9jYXRvcl9zaGltX2ludGVy bmFsCitzLmgKK2luZGV4IDAxOTZmODkuLmJiNDJiNWQgMTAwNjQ0CistLS0gYS9iYXNlL2FsbG9j YXRvci9hbGxvY2F0b3Jfc2hpbV9pbnRlcm5hbHMuaAorKysrIGIvYmFzZS9hbGxvY2F0b3IvYWxs b2NhdG9yX3NoaW1faW50ZXJuYWxzLmgKK0BAIC03LDcgKzcsOSBAQAorCisgI2lmIGRlZmluZWQo X19HTlVDX18pCisKKysjaWYgZGVmaW5lZChfX0dMSUJDX18pCisgI2luY2x1ZGUgPHN5cy9jZGVm cy5oPiAgLy8gZm9yIF9fVEhST1cKKysjZW5kaWYKKworICNpZm5kZWYgX19USFJPVyAgLy8gTm90 IGEgZ2xpYmMgc3lzdGVtCisgI2lmZGVmIF9OT0VYQ0VQVCAgLy8gTExWTSBsaWJjKysgdXNlcyBu b2V4Y2VwdCBpbnN0ZWFkCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvbGlic3luYy9zcmMvaW5j bHVkZS9zeW5jL3N5bmMuaCBiL3RoaXJkX3BhcnR5L2xpYnN5bmMvc3JjL2luY2x1ZGUvc3luYy9z eW5jLmgKK2luZGV4IDUwZWQwYWMuLjc1NTJhNDkgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9s aWJzeW5jL3NyYy9pbmNsdWRlL3N5bmMvc3luYy5oCisrKysgYi90aGlyZF9wYXJ0eS9saWJzeW5j L3NyYy9pbmNsdWRlL3N5bmMvc3luYy5oCitAQCAtMTksMTIgKzE5LDEzIEBACisgI2lmbmRlZiBf X1NZU19DT1JFX1NZTkNfSAorICNkZWZpbmUgX19TWVNfQ09SRV9TWU5DX0gKKyAKKy0jaW5jbHVk ZSA8c3lzL2NkZWZzLmg+CisgI2luY2x1ZGUgPHN0ZGludC5oPgorIAorICNpbmNsdWRlIDxsaW51 eC90eXBlcy5oPgorIAorLV9fQkVHSU5fREVDTFMKKysjaWZkZWYgX19jcGx1c3BsdXMKKytleHRl cm4gIkMiIHsKKysjZW5kaWYgLyogX19jcGx1c3BsdXMgKi8KKyAKKyBzdHJ1Y3Qgc3luY19sZWdh Y3lfbWVyZ2VfZGF0YSB7CisgIGludDMyX3QgZmQyOworQEAgLTE1OCw2ICsxNTksOCBAQCBzdHJ1 Y3Qgc3luY19wdF9pbmZvICpzeW5jX3B0X2luZm8oc3RydWN0IHN5bmNfZmVuY2VfaW5mb19kYXRh ICppbmZvLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qgc3luY19w dF9pbmZvICppdHIpOworIHZvaWQgc3luY19mZW5jZV9pbmZvX2ZyZWUoc3RydWN0IHN5bmNfZmVu Y2VfaW5mb19kYXRhICppbmZvKTsKKyAKKy1fX0VORF9ERUNMUworKyNpZmRlZiBfX2NwbHVzcGx1 cworK30KKysjZW5kaWYgLyogX19jcGx1c3BsdXMgKi8KKyAKKyAjZW5kaWYgLyogX19TWVNfQ09S RV9TWU5DX0ggKi8KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZWxlY3Ryb244L2ZpbGVzL211c2wtcGF0 Y2hlcy9jaHJvbWl1bS1tdXNsX2RlZmluZV90ZW1wX2ZhaWx1cmVfcmV0cnkucGF0Y2gucGF0Y2gg Yi9zcmNwa2dzL2VsZWN0cm9uOC9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbXVzbF9kZWZp bmVfdGVtcF9mYWlsdXJlX3JldHJ5LnBhdGNoLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAwLi42MWRiNjU4Zjg0OQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mv ZWxlY3Ryb244L2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsX2RlZmluZV90ZW1wX2Zh aWx1cmVfcmV0cnkucGF0Y2gucGF0Y2gKQEAgLTAsMCArMSwxOCBAQAorLS0tIGEvc2FuZGJveC9s aW51eC9zdWlkL3NhbmRib3guYwkyMDE5LTExLTE5IDA5OjI4OjA1LjAwMDAwMDAwMCArMDgwMAor KysrIGIvc2FuZGJveC9saW51eC9zdWlkL3NhbmRib3guYwkyMDIwLTA0LTI0IDExOjUwOjEyLjcx OTg4MDcyOCArMDgwMAorQEAgLTQyLDYgKzQyLDE1IEBACisgI2RlZmluZSBDTE9ORV9ORVdORVQg MHg0MDAwMDAwMAorICNlbmRpZgorIAorKyNpZm5kZWYgVEVNUF9GQUlMVVJFX1JFVFJZCisrI2Rl ZmluZSBURU1QX0ZBSUxVUkVfUkVUUlkoZXhwcmVzc2lvbikgXAorKyAgKF9fZXh0ZW5zaW9uX18g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXAorKyAgICAoeyBsb25nIGludCBfX3Jlc3VsdDsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgICAgICBkbyBfX3Jlc3VsdCA9IChsb25n IGludCkgKGV4cHJlc3Npb24pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAg ICAgICB3aGlsZSAoX19yZXN1bHQgPT0gLTFMICYmIGVycm5vID09IEVJTlRSKTsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXAorKyAgICAgICBfX3Jlc3VsdDsgfSkpCisrI2VuZGlmCisrCisg c3RhdGljIGJvb2wgRHJvcFJvb3QoKTsKKyAKKyAjZGVmaW5lIEhBTkRMRV9FSU5UUih4KSBURU1Q X0ZBSUxVUkVfUkVUUlkoeCkKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZWxlY3Ryb244L2ZpbGVzL211 c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsX2Rucy5wYXRjaC5wYXRjaCBiL3NyY3BrZ3MvZWxlY3Ry b244L2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsX2Rucy5wYXRjaC5wYXRjaApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZjQ5ZDhiZDBhZmEKLS0tIC9kZXYv bnVsbAorKysgYi9zcmNwa2dzL2VsZWN0cm9uOC9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0t bXVzbF9kbnMucGF0Y2gucGF0Y2gKQEAgLTAsMCArMSw2MSBAQAorZGlmZiAtLWdpdCBhL25ldC9k bnMvZG5zX2NvbmZpZ19zZXJ2aWNlX3Bvc2l4LmNjIGIvbmV0L2Rucy9kbnNfY29uZmlnX3NlcnZp Y2VfcG9zaXguY2MKK2luZGV4IDJmOTQ4MzIuLjJkZDFhOTggMTAwNjQ0CistLS0gYS9uZXQvZG5z L2Ruc19jb25maWdfc2VydmljZV9wb3NpeC5jYworKysrIGIvbmV0L2Rucy9kbnNfY29uZmlnX3Nl cnZpY2VfcG9zaXguY2MKK0BAIC0xNTAsNyArMTUwLDcgQEAgQ29uZmlnUGFyc2VQb3NpeFJlc3Vs dCBSZWFkRG5zQ29uZmlnKERuc0NvbmZpZyogZG5zX2NvbmZpZykgeworICNpZiAhZGVmaW5lZChP U19BTkRST0lEKQorICAgQ29uZmlnUGFyc2VQb3NpeFJlc3VsdCByZXN1bHQ7CisgLy8gVE9ETyhm dWNoc2lhKTogVXNlIHJlc19uaW5pdCgpIHdoZW4gaXQncyBpbXBsZW1lbnRlZCBvbiBGdWNoc2lh LgorLSNpZiBkZWZpbmVkKE9TX09QRU5CU0QpIHx8IGRlZmluZWQoT1NfRlVDSFNJQSkKKysjaWYg ZGVmaW5lZChPU19PUEVOQlNEKSB8fCBkZWZpbmVkKE9TX0ZVQ0hTSUEpIHx8IChkZWZpbmVkKE9T X0xJTlVYKSAmJiAhZGVmaW5lZChfX0dMSUJDX18pKQorICAgLy8gTm90ZTogcmVzX25pbml0IGlu IGdsaWJjIGFsd2F5cyByZXR1cm5zIDAgYW5kIHNldHMgUkVTX0lOSVQuCisgICAvLyByZXNfaW5p dCBiZWhhdmVzIHRoZSBzYW1lIHdheS4KKyAgIG1lbXNldCgmX3JlcywgMCwgc2l6ZW9mKF9yZXMp KTsKK0BAIC0xNzMsNyArMTczLDcgQEAgQ29uZmlnUGFyc2VQb3NpeFJlc3VsdCBSZWFkRG5zQ29u ZmlnKERuc0NvbmZpZyogZG5zX2NvbmZpZykgeworICNlbHNlCisgICByZXNfbmNsb3NlKCZyZXMp OworICNlbmRpZiAgLy8gZGVmaW5lZChPU19NQUNPU1gpIHx8IGRlZmluZWQoT1NfRlJFRUJTRCkK Ky0jZW5kaWYgIC8vIGRlZmluZWQoT1NfT1BFTkJTRCkKKysjZW5kaWYgIC8vIGRlZmluZWQoT1Nf T1BFTkJTRCkgfHwgZGVmaW5lZChPU19GVUNIU0lBKSB8fCAoZGVmaW5lZChPU19MSU5VWCkgJiYg IWRlZmluZWQoX19HTElCQ19fKSkKKyAKKyAjaWYgZGVmaW5lZChPU19NQUNPU1gpICYmICFkZWZp bmVkKE9TX0lPUykKKyAgIENvbmZpZ1BhcnNlUG9zaXhSZXN1bHQgZXJyb3IgPSBEbnNDb25maWdX YXRjaGVyOjpDaGVja0Ruc0NvbmZpZygpOworZGlmZiAtLWdpdCBhL25ldC9kbnMvZG5zX3JlbG9h ZGVyLmNjIGIvbmV0L2Rucy9kbnNfcmVsb2FkZXIuY2MKK2luZGV4IDk1MmNmZjQuLjRiMzY2ZjQg MTAwNjQ0CistLS0gYS9uZXQvZG5zL2Ruc19yZWxvYWRlci5jYworKysrIGIvbmV0L2Rucy9kbnNf cmVsb2FkZXIuY2MKK0BAIC00LDcgKzQsNyBAQAorIAorICNpbmNsdWRlICJuZXQvZG5zL2Ruc19y ZWxvYWRlci5oIgorIAorLSNpZiBkZWZpbmVkKE9TX1BPU0lYKSAmJiAhZGVmaW5lZChPU19NQUNP U1gpICYmICFkZWZpbmVkKE9TX09QRU5CU0QpICYmIFwKKysjaWYgZGVmaW5lZChPU19QT1NJWCkg JiYgZGVmaW5lZChfX0dMSUJDX18pICYmICFkZWZpbmVkKE9TX01BQ09TWCkgJiYgIWRlZmluZWQo T1NfT1BFTkJTRCkgJiYgXAorICAgICAhZGVmaW5lZChPU19BTkRST0lEKSAmJiAhZGVmaW5lZChP U19GVUNIU0lBKQorIAorICNpbmNsdWRlIDxyZXNvbHYuaD4KK2RpZmYgLS1naXQgYS9uZXQvZG5z L2hvc3RfcmVzb2x2ZXJfbWFuYWdlci5jYyBiL25ldC9kbnMvaG9zdF9yZXNvbHZlcl9tYW5hZ2Vy LmNjCitpbmRleCBlOGRlYTQ2Li5jODZhODMwIDEwMDY0NAorLS0tIGEvbmV0L2Rucy9ob3N0X3Jl c29sdmVyX21hbmFnZXIuY2MKKysrKyBiL25ldC9kbnMvaG9zdF9yZXNvbHZlcl9tYW5hZ2VyLmNj CitAQCAtMjM4Niw3ICsyMzg2LDcgQEAgSG9zdFJlc29sdmVyTWFuYWdlcjo6SG9zdFJlc29sdmVy TWFuYWdlcigKKyAgIE5ldHdvcmtDaGFuZ2VOb3RpZmllcjo6QWRkQ29ubmVjdGlvblR5cGVPYnNl cnZlcih0aGlzKTsKKyAgIGlmIChzeXN0ZW1fZG5zX2NvbmZpZ19ub3RpZmllcl8pCisgICAgIHN5 c3RlbV9kbnNfY29uZmlnX25vdGlmaWVyXy0+QWRkT2JzZXJ2ZXIodGhpcyk7CistI2lmIGRlZmlu ZWQoT1NfUE9TSVgpICYmICFkZWZpbmVkKE9TX01BQ09TWCkgJiYgIWRlZmluZWQoT1NfT1BFTkJT RCkgJiYgXAorKyNpZiBkZWZpbmVkKE9TX1BPU0lYKSAmJiBkZWZpbmVkKF9fR0xJQkNfXykgJiYg IWRlZmluZWQoT1NfTUFDT1NYKSAmJiAhZGVmaW5lZChPU19PUEVOQlNEKSAmJiBcCisgICAgICFk ZWZpbmVkKE9TX0FORFJPSUQpCisgICBFbnN1cmVEbnNSZWxvYWRlckluaXQoKTsKKyAjZW5kaWYK K2RpZmYgLS1naXQgYS9uZXQvZG5zL2hvc3RfcmVzb2x2ZXJfcHJvYy5jYyBiL25ldC9kbnMvaG9z dF9yZXNvbHZlcl9wcm9jLmNjCitpbmRleCAwODI0NTQwLi4zMzg0OTc4IDEwMDY0NAorLS0tIGEv bmV0L2Rucy9ob3N0X3Jlc29sdmVyX3Byb2MuY2MKKysrKyBiL25ldC9kbnMvaG9zdF9yZXNvbHZl cl9wcm9jLmNjCitAQCAtMTk3LDcgKzE5Nyw3IEBAIGludCBTeXN0ZW1Ib3N0UmVzb2x2ZXJDYWxs KGNvbnN0IHN0ZDo6c3RyaW5nJiBob3N0LAorICAgYmFzZTo6U2NvcGVkQmxvY2tpbmdDYWxsIHNj b3BlZF9ibG9ja2luZ19jYWxsKEZST01fSEVSRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBiYXNlOjpCbG9ja2luZ1R5cGU6OldJTExfQkxPQ0spOwor IAorLSNpZiBkZWZpbmVkKE9TX1BPU0lYKSAmJiAhZGVmaW5lZChPU19NQUNPU1gpICYmICFkZWZp bmVkKE9TX09QRU5CU0QpICYmIFwKKysjaWYgZGVmaW5lZChPU19QT1NJWCkgJiYgZGVmaW5lZChf X0dMSUJDX18pICYmICFkZWZpbmVkKE9TX01BQ09TWCkgJiYgIWRlZmluZWQoT1NfT1BFTkJTRCkg JiYgXAorICAgICAhZGVmaW5lZChPU19BTkRST0lEKSAmJiAhZGVmaW5lZChPU19GVUNIU0lBKQor ICAgRG5zUmVsb2FkZXJNYXliZVJlbG9hZCgpOworICNlbmRpZgpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9lbGVjdHJvbjgvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2xfZXhlaW5mby5wYXRj aC5wYXRjaCBiL3NyY3BrZ3MvZWxlY3Ryb244L2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1t dXNsX2V4ZWluZm8ucGF0Y2gucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAwMDAuLmYxYWZjN2MxYjE3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9lbGVjdHJvbjgv ZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2xfZXhlaW5mby5wYXRjaC5wYXRjaApAQCAt MCwwICsxLDk2IEBACitkaWZmIC0tZ2l0IGEvYmFzZS9kZWJ1Zy9zdGFja190cmFjZV9wb3NpeC5j YyBiL2Jhc2UvZGVidWcvc3RhY2tfdHJhY2VfcG9zaXguY2MKK2luZGV4IGRlMmYzNTYuLmY2OTdj NjYgMTAwNjQ0CistLS0gYS9iYXNlL2RlYnVnL3N0YWNrX3RyYWNlX3Bvc2l4LmNjCisrKysgYi9i YXNlL2RlYnVnL3N0YWNrX3RyYWNlX3Bvc2l4LmNjCitAQCAtMjcsNyArMjcsNyBAQAorICNpZiAh ZGVmaW5lZChVU0VfU1lNQk9MSVpFKQorICNpbmNsdWRlIDxjeHhhYmkuaD4KKyAjZW5kaWYKKy0j aWYgIWRlZmluZWQoX19VQ0xJQkNfXykgJiYgIWRlZmluZWQoX0FJWCkKKysjaWYgZGVmaW5lZChf X0dMSUJDX18pICYmICFkZWZpbmVkKF9fVUNMSUJDX18pICYmICFkZWZpbmVkKF9BSVgpCisgI2lu Y2x1ZGUgPGV4ZWNpbmZvLmg+CisgI2VuZGlmCisgCitAQCAtODYsNyArODYsNyBAQCB2b2lkIERl bWFuZ2xlU3ltYm9scyhzdGQ6OnN0cmluZyogdGV4dCkgeworICAgLy8gTm90ZTogY29kZSBpbiB0 aGlzIGZ1bmN0aW9uIGlzIE5PVCBhc3luYy1zaWduYWwgc2FmZSAoc3RkOjpzdHJpbmcgdXNlcwor ICAgLy8gbWFsbG9jIGludGVybmFsbHkpLgorIAorLSNpZiAhZGVmaW5lZChfX1VDTElCQ19fKSAm JiAhZGVmaW5lZChfQUlYKQorKyNpZiBkZWZpbmVkKF9fR0xJQkNfXykgJiYgIWRlZmluZWQoX19V Q0xJQkNfXykgJiYgIWRlZmluZWQoX0FJWCkKKyAgIHN0ZDo6c3RyaW5nOjpzaXplX3R5cGUgc2Vh cmNoX2Zyb20gPSAwOworICAgd2hpbGUgKHNlYXJjaF9mcm9tIDwgdGV4dC0+c2l6ZSgpKSB7Cisg ICAgIC8vIExvb2sgZm9yIHRoZSBzdGFydCBvZiBhIG1hbmdsZWQgc3ltYm9sLCBmcm9tIHNlYXJj aF9mcm9tLgorQEAgLTEyMSw3ICsxMjEsNyBAQCB2b2lkIERlbWFuZ2xlU3ltYm9scyhzdGQ6OnN0 cmluZyogdGV4dCkgeworICAgICAgIHNlYXJjaF9mcm9tID0gbWFuZ2xlZF9zdGFydCArIDI7Cisg ICAgIH0KKyAgIH0KKy0jZW5kaWYgIC8vICFkZWZpbmVkKF9fVUNMSUJDX18pICYmICFkZWZpbmVk KF9BSVgpCisrI2VuZGlmICAvLyBkZWZpbmVkKF9fR0xJQkNfXykgJiYgIWRlZmluZWQoX19VQ0xJ QkNfXykgJiYgIWRlZmluZWQoX0FJWCkKKyB9CisgI2VuZGlmICAvLyAhZGVmaW5lZChVU0VfU1lN Qk9MSVpFKQorIAorQEAgLTEzMyw3ICsxMzMsNyBAQCBjbGFzcyBCYWNrdHJhY2VPdXRwdXRIYW5k bGVyIHsKKyAgIHZpcnR1YWwgfkJhY2t0cmFjZU91dHB1dEhhbmRsZXIoKSA9IGRlZmF1bHQ7Cisg fTsKKyAKKy0jaWYgIWRlZmluZWQoX19VQ0xJQkNfXykgJiYgIWRlZmluZWQoX0FJWCkKKysjaWYg ZGVmaW5lZChfX0dMSUJDX18pICYmICFkZWZpbmVkKF9fVUNMSUJDX18pICYmICFkZWZpbmVkKF9B SVgpCisgdm9pZCBPdXRwdXRQb2ludGVyKHZvaWQqIHBvaW50ZXIsIEJhY2t0cmFjZU91dHB1dEhh bmRsZXIqIGhhbmRsZXIpIHsKKyAgIC8vIFRoaXMgc2hvdWxkIGJlIG1vcmUgdGhhbiBlbm91Z2gg dG8gc3RvcmUgYSA2NC1iaXQgbnVtYmVyIGluIGhleDoKKyAgIC8vIDE2IGhleCBkaWdpdHMgKyAx IGZvciBudWxsLXRlcm1pbmF0b3IuCitAQCAtMjE2LDcgKzIxNiw3IEBAIHZvaWQgUHJvY2Vzc0Jh Y2t0cmFjZSh2b2lkKiBjb25zdCogdHJhY2UsCisgICB9CisgI2VuZGlmICAvLyBkZWZpbmVkKFVT RV9TWU1CT0xJWkUpCisgfQorLSNlbmRpZiAgLy8gIWRlZmluZWQoX19VQ0xJQkNfXykgJiYgIWRl ZmluZWQoX0FJWCkKKysjZW5kaWYgIC8vIGRlZmluZWQoX19HTElCQ19fKSAmJiAhZGVmaW5lZChf X1VDTElCQ19fKSAmJiAhZGVmaW5lZChfQUlYKQorIAorIHZvaWQgUHJpbnRUb1N0ZGVycihjb25z dCBjaGFyKiBvdXRwdXQpIHsKKyAgIC8vIE5PVEU6IFRoaXMgY29kZSBNVVNUIGJlIGFzeW5jLXNp Z25hbCBzYWZlIChpdCdzIHVzZWQgYnkgaW4tcHJvY2VzcworQEAgLTgyOCw3ICs4MjgsNyBAQCBz aXplX3QgQ29sbGVjdFN0YWNrVHJhY2Uodm9pZCoqIHRyYWNlLCBzaXplX3QgY291bnQpIHsKKyAg IC8vIE5PVEU6IFRoaXMgY29kZSBNVVNUIGJlIGFzeW5jLXNpZ25hbCBzYWZlIChpdCdzIHVzZWQg YnkgaW4tcHJvY2VzcworICAgLy8gc3RhY2sgZHVtcGluZyBzaWduYWwgaGFuZGxlcikuIE5PIG1h bGxvYyBvciBzdGRpbyBpcyBhbGxvd2VkIGhlcmUuCisgCistI2lmICFkZWZpbmVkKF9fVUNMSUJD X18pICYmICFkZWZpbmVkKF9BSVgpCisrI2lmIGRlZmluZWQoX19HTElCQ19fKSAmJiAhZGVmaW5l ZChfX1VDTElCQ19fKSAmJiAhZGVmaW5lZChfQUlYKQorICAgLy8gVGhvdWdoIHRoZSBiYWNrdHJh Y2UgQVBJIG1hbiBwYWdlIGRvZXMgbm90IGxpc3QgYW55IHBvc3NpYmxlIG5lZ2F0aXZlCisgICAv LyByZXR1cm4gdmFsdWVzLCB3ZSB0YWtlIG5vIGNoYW5jZS4KKyAgIHJldHVybiBiYXNlOjpzYXR1 cmF0ZWRfY2FzdDxzaXplX3Q+KGJhY2t0cmFjZSh0cmFjZSwgY291bnQpKTsKK0BAIC04NDEsMTMg Kzg0MSwxMyBAQCB2b2lkIFN0YWNrVHJhY2U6OlByaW50V2l0aFByZWZpeChjb25zdCBjaGFyKiBw cmVmaXhfc3RyaW5nKSBjb25zdCB7CisgLy8gTk9URTogVGhpcyBjb2RlIE1VU1QgYmUgYXN5bmMt c2lnbmFsIHNhZmUgKGl0J3MgdXNlZCBieSBpbi1wcm9jZXNzCisgLy8gc3RhY2sgZHVtcGluZyBz aWduYWwgaGFuZGxlcikuIE5PIG1hbGxvYyBvciBzdGRpbyBpcyBhbGxvd2VkIGhlcmUuCisgCist I2lmICFkZWZpbmVkKF9fVUNMSUJDX18pICYmICFkZWZpbmVkKF9BSVgpCisrI2lmIGRlZmluZWQo X19HTElCQ19fKSAmJiAhZGVmaW5lZChfX1VDTElCQ19fKSAmJiAhZGVmaW5lZChfQUlYKQorICAg UHJpbnRCYWNrdHJhY2VPdXRwdXRIYW5kbGVyIGhhbmRsZXI7CisgICBQcm9jZXNzQmFja3RyYWNl KHRyYWNlXywgY291bnRfLCBwcmVmaXhfc3RyaW5nLCAmaGFuZGxlcik7CisgI2VuZGlmCisgfQor IAorLSNpZiAhZGVmaW5lZChfX1VDTElCQ19fKSAmJiAhZGVmaW5lZChfQUlYKQorKyNpZiBkZWZp bmVkKF9fR0xJQkNfXykgJiYgIWRlZmluZWQoX19VQ0xJQkNfXykgJiYgIWRlZmluZWQoX0FJWCkK KyB2b2lkIFN0YWNrVHJhY2U6Ok91dHB1dFRvU3RyZWFtV2l0aFByZWZpeChzdGQ6Om9zdHJlYW0q IG9zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNo YXIqIHByZWZpeF9zdHJpbmcpIGNvbnN0IHsKKyAgIFN0cmVhbUJhY2t0cmFjZU91dHB1dEhhbmRs ZXIgaGFuZGxlcihvcyk7CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvc3dpZnRzaGFkZXIvdGhp cmRfcGFydHkvbGx2bS1zdWJ6ZXJvL2J1aWxkL0xpbnV4L2luY2x1ZGUvbGx2bS9Db25maWcvY29u ZmlnLmggYi90aGlyZF9wYXJ0eS9zd2lmdHNoYWRlci90aGlyZF9wYXJ0eS9sbHZtLXN1Ynplcm8v YnVpbGQvTGludXgvaW5jbHVkZS9sbHZtL0NvbmZpZy9jb25maWcuaAoraW5kZXggNzk4ZjE1MC4u OTdhY2M3YyAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3N3aWZ0c2hhZGVyL3RoaXJkX3BhcnR5 L2xsdm0tc3ViemVyby9idWlsZC9MaW51eC9pbmNsdWRlL2xsdm0vQ29uZmlnL2NvbmZpZy5oCisr KysgYi90aGlyZF9wYXJ0eS9zd2lmdHNoYWRlci90aGlyZF9wYXJ0eS9sbHZtLXN1Ynplcm8vYnVp bGQvTGludXgvaW5jbHVkZS9sbHZtL0NvbmZpZy9jb25maWcuaAorQEAgLTE0LDcgKzE0LDcgQEAK KyAjZGVmaW5lIEVOQUJMRV9DUkFTSF9PVkVSUklERVMgMQorIAorIC8qIERlZmluZSB0byAxIGlm IHlvdSBoYXZlIHRoZSBgYmFja3RyYWNlJyBmdW5jdGlvbi4gKi8KKy0jZGVmaW5lIEhBVkVfQkFD S1RSQUNFIDEKKysvKiAjdW5kZWYgSEFWRV9CQUNLVFJBQ0UgKi8KKyAKKyAvKiBEZWZpbmUgdG8g MSBpZiB5b3UgaGF2ZSB0aGUgPENyYXNoUmVwb3J0ZXJDbGllbnQuaD4gaGVhZGVyIGZpbGUuICov CisgLyogI3VuZGVmIEhBVkVfQ1JBU0hSRVBPUlRFUkNMSUVOVF9IICovCitAQCAtNTUsNyArNTUs NyBAQAorICNkZWZpbmUgSEFWRV9FUlJOT19IIDEKKyAKKyAvKiBEZWZpbmUgdG8gMSBpZiB5b3Ug aGF2ZSB0aGUgPGV4ZWNpbmZvLmg+IGhlYWRlciBmaWxlLiAqLworLSNkZWZpbmUgSEFWRV9FWEVD SU5GT19IIDEKKysvKiAjdW5kZWYgSEFWRV9FWEVDSU5GT19IICovCisgCisgLyogRGVmaW5lIHRv IDEgaWYgeW91IGhhdmUgdGhlIDxmY250bC5oPiBoZWFkZXIgZmlsZS4gKi8KKyAjZGVmaW5lIEhB VkVfRkNOVExfSCAxCmRpZmYgLS1naXQgYS9zcmNwa2dzL2VsZWN0cm9uOC9maWxlcy9tdXNsLXBh dGNoZXMvY2hyb21pdW0tbXVzbF9mcHN0YXRlX3QucGF0Y2gucGF0Y2ggYi9zcmNwa2dzL2VsZWN0 cm9uOC9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbXVzbF9mcHN0YXRlX3QucGF0Y2gucGF0 Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmQ4YzQxY2NkOWEwCi0t LSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9lbGVjdHJvbjgvZmlsZXMvbXVzbC1wYXRjaGVzL2No cm9taXVtLW11c2xfZnBzdGF0ZV90LnBhdGNoLnBhdGNoCkBAIC0wLDAgKzEsNDggQEAKK2RpZmYg LS1naXQgYS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1 bXBfd3JpdGVyX2NvbW1vbi91Y29udGV4dF9yZWFkZXIuY2MgYi90aGlyZF9wYXJ0eS9icmVha3Bh ZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1vbi91Y29udGV4dF9y ZWFkZXIuY2MKK2luZGV4IDZlZTZjYzEuLmE4ZjljY2MgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0 eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1vbi91 Y29udGV4dF9yZWFkZXIuY2MKKysrKyBiL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3Ny Yy9jbGllbnQvbGludXgvZHVtcF93cml0ZXJfY29tbW9uL3Vjb250ZXh0X3JlYWRlci5jYworQEAg LTQ5LDcgKzQ5LDcgQEAgdWludHB0cl90IFVDb250ZXh0UmVhZGVyOjpHZXRJbnN0cnVjdGlvblBv aW50ZXIoY29uc3QgdWNvbnRleHRfdCogdWMpIHsKKyB9CisgCisgdm9pZCBVQ29udGV4dFJlYWRl cjo6RmlsbENQVUNvbnRleHQoUmF3Q29udGV4dENQVSAqb3V0LCBjb25zdCB1Y29udGV4dF90ICp1 YywKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgX2xp YmNfZnBzdGF0ZSogZnApIHsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj b25zdCBzdHJ1Y3QgX2Zwc3RhdGUqIGZwKSB7CisgICBjb25zdCBncmVnX3QqIHJlZ3MgPSB1Yy0+ dWNfbWNvbnRleHQuZ3JlZ3M7CisgCisgICBvdXQtPmNvbnRleHRfZmxhZ3MgPSBNRF9DT05URVhU X1g4Nl9GVUxMIHwKK0BAIC05Nyw3ICs5Nyw3IEBAIHVpbnRwdHJfdCBVQ29udGV4dFJlYWRlcjo6 R2V0SW5zdHJ1Y3Rpb25Qb2ludGVyKGNvbnN0IHVjb250ZXh0X3QqIHVjKSB7CisgfQorIAorIHZv aWQgVUNvbnRleHRSZWFkZXI6OkZpbGxDUFVDb250ZXh0KFJhd0NvbnRleHRDUFUgKm91dCwgY29u c3QgdWNvbnRleHRfdCAqdWMsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y29uc3Qgc3RydWN0IF9saWJjX2Zwc3RhdGUqIGZwcmVncykgeworKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBfZnBzdGF0ZSogZnByZWdzKSB7CisgICBj b25zdCBncmVnX3QqIHJlZ3MgPSB1Yy0+dWNfbWNvbnRleHQuZ3JlZ3M7CisgCisgICBvdXQtPmNv bnRleHRfZmxhZ3MgPSBNRF9DT05URVhUX0FNRDY0X0ZVTEw7CitkaWZmIC0tZ2l0IGEvdGhpcmRf cGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21t b24vdWNvbnRleHRfcmVhZGVyLmggYi90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMv Y2xpZW50L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1vbi91Y29udGV4dF9yZWFkZXIuaAoraW5kZXgg ZjgzMDYxOC4uZjNkZGUxZiAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFr cGFkL3NyYy9jbGllbnQvbGludXgvZHVtcF93cml0ZXJfY29tbW9uL3Vjb250ZXh0X3JlYWRlci5o CisrKysgYi90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1 bXBfd3JpdGVyX2NvbW1vbi91Y29udGV4dF9yZWFkZXIuaAorQEAgLTUwLDcgKzUwLDcgQEAgc3Ry dWN0IFVDb250ZXh0UmVhZGVyIHsKKyAgIC8vICAgaW5mbzogdGhlIGNvbGxlY3Rpb24gb2YgcmVn aXN0ZXIgc3RydWN0dXJlcy4KKyAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4 Nl82NCkKKyAgIHN0YXRpYyB2b2lkIEZpbGxDUFVDb250ZXh0KFJhd0NvbnRleHRDUFUgKm91dCwg Y29uc3QgdWNvbnRleHRfdCAqdWMsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z dCBzdHJ1Y3QgX2xpYmNfZnBzdGF0ZSogZnApOworKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgY29uc3Qgc3RydWN0IF9mcHN0YXRlKiBmcCk7CisgI2VsaWYgZGVmaW5lZChfX2FhcmNoNjRf XykKKyAgIHN0YXRpYyB2b2lkIEZpbGxDUFVDb250ZXh0KFJhd0NvbnRleHRDUFUgKm91dCwgY29u c3QgdWNvbnRleHRfdCAqdWMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBz dHJ1Y3QgZnBzaW1kX2NvbnRleHQqIGZwcmVncyk7CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkv YnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbWluaWR1 bXBfd3JpdGVyLmggYi90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xp bnV4L21pbmlkdW1wX3dyaXRlci9taW5pZHVtcF93cml0ZXIuaAoraW5kZXggZDFkYzMzMS4uZDFj YzU2MiAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGll bnQvbGludXgvbWluaWR1bXBfd3JpdGVyL21pbmlkdW1wX3dyaXRlci5oCisrKysgYi90aGlyZF9w YXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9t aW5pZHVtcF93cml0ZXIuaAorQEAgLTQ4LDcgKzQ4LDcgQEAgY2xhc3MgRXhjZXB0aW9uSGFuZGxl cjsKKyAjaWYgZGVmaW5lZChfX2FhcmNoNjRfXykKKyB0eXBlZGVmIHN0cnVjdCBmcHNpbWRfY29u dGV4dCBmcHN0YXRlX3Q7CisgI2VsaWYgIWRlZmluZWQoX19BUk1fRUFCSV9fKSAmJiAhZGVmaW5l ZChfX21pcHNfXykKKy10eXBlZGVmIHN0cnVjdCBfbGliY19mcHN0YXRlIGZwc3RhdGVfdDsKKyt0 eXBlZGVmIHN0cnVjdCBfZnBzdGF0ZSBmcHN0YXRlX3Q7CisgI2VuZGlmCisgCisgLy8gVGhlc2Ug ZW50cmllcyBzdG9yZSBhIGxpc3Qgb2YgbWVtb3J5IHJlZ2lvbnMgdGhhdCB0aGUgY2xpZW50IHdh bnRzIGluY2x1ZGVkCmRpZmYgLS1naXQgYS9zcmNwa2dzL2VsZWN0cm9uOC9maWxlcy9tdXNsLXBh dGNoZXMvY2hyb21pdW0tbXVzbF9nZXRjb250ZXh0LnBhdGNoLnBhdGNoIGIvc3JjcGtncy9lbGVj dHJvbjgvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2xfZ2V0Y29udGV4dC5wYXRjaC5w YXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNzY5NzI0M2E5MTAK LS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2VsZWN0cm9uOC9maWxlcy9tdXNsLXBhdGNoZXMv Y2hyb21pdW0tbXVzbF9nZXRjb250ZXh0LnBhdGNoLnBhdGNoCkBAIC0wLDAgKzEsMjUgQEAKK2Rp ZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4 L2hhbmRsZXIvZXhjZXB0aW9uX2hhbmRsZXIuY2MgYi90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVh a3BhZC9zcmMvY2xpZW50L2xpbnV4L2hhbmRsZXIvZXhjZXB0aW9uX2hhbmRsZXIuY2MKK2luZGV4 IGI4OTVmNmQuLjRmMTMzNTIgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVh a3BhZC9zcmMvY2xpZW50L2xpbnV4L2hhbmRsZXIvZXhjZXB0aW9uX2hhbmRsZXIuY2MKKysrKyBi L3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvaGFuZGxlci9l eGNlcHRpb25faGFuZGxlci5jYworQEAgLTQ5MCw3ICs0OTAsOSBAQCBib29sIEV4Y2VwdGlvbkhh bmRsZXI6OlNpbXVsYXRlU2lnbmFsRGVsaXZlcnkoaW50IHNpZykgeworICAgc2lnaW5mby5zaV9j b2RlID0gU0lfVVNFUjsKKyAgIHNpZ2luZm8uc2lfcGlkID0gZ2V0cGlkKCk7CisgICB1Y29udGV4 dF90IGNvbnRleHQ7CisrI2lmIGRlZmluZWQoX19HTElCQ19fKQorICAgZ2V0Y29udGV4dCgmY29u dGV4dCk7CisrI2VuZGlmCisgICByZXR1cm4gSGFuZGxlU2lnbmFsKHNpZywgJnNpZ2luZm8sICZj b250ZXh0KTsKKyB9CisgCitAQCAtNjc1LDggKzY3NywxMCBAQCBib29sIEV4Y2VwdGlvbkhhbmRs ZXI6OldyaXRlTWluaWR1bXAoKSB7CisgICBzeXNfcHJjdGwoUFJfU0VUX0RVTVBBQkxFLCAxLCAw LCAwLCAwKTsKKyAKKyAgIENyYXNoQ29udGV4dCBjb250ZXh0OworKyNpZiBkZWZpbmVkKF9fR0xJ QkNfXykKKyAgIGludCBnZXRjb250ZXh0X3Jlc3VsdCA9IGdldGNvbnRleHQoJmNvbnRleHQuY29u dGV4dCk7CisgICBpZiAoZ2V0Y29udGV4dF9yZXN1bHQpCisrI2VuZGlmCisgICAgIHJldHVybiBm YWxzZTsKKyAKKyAjaWYgZGVmaW5lZChfX2kzODZfXykKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZWxl Y3Ryb244L2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsX21hbGxpbmZvLnBhdGNoLnBh dGNoIGIvc3JjcGtncy9lbGVjdHJvbjgvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2xf bWFsbGluZm8ucGF0Y2gucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw MDAuLjk0MTMxM2U0OTM5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9lbGVjdHJvbjgvZmls ZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2xfbWFsbGluZm8ucGF0Y2gucGF0Y2gKQEAgLTAs MCArMSw2MSBAQAorZGlmZiAtLWdpdCBhL2Jhc2UvcHJvY2Vzcy9wcm9jZXNzX21ldHJpY3NfcG9z aXguY2MgYi9iYXNlL3Byb2Nlc3MvcHJvY2Vzc19tZXRyaWNzX3Bvc2l4LmNjCitpbmRleCAwNDRi ZDhkLi4wNTIxMzIxIDEwMDY0NAorLS0tIGEvYmFzZS9wcm9jZXNzL3Byb2Nlc3NfbWV0cmljc19w b3NpeC5jYworKysrIGIvYmFzZS9wcm9jZXNzL3Byb2Nlc3NfbWV0cmljc19wb3NpeC5jYworQEAg LTExMCwxNCArMTEwLDE0IEBAIHNpemVfdCBQcm9jZXNzTWV0cmljczo6R2V0TWFsbG9jVXNhZ2Uo KSB7CisgICBtYWxsb2Nfc3RhdGlzdGljc190IHN0YXRzID0gezB9OworICAgbWFsbG9jX3pvbmVf c3RhdGlzdGljcyhudWxscHRyLCAmc3RhdHMpOworICAgcmV0dXJuIHN0YXRzLnNpemVfaW5fdXNl OworLSNlbGlmIGRlZmluZWQoT1NfTElOVVgpIHx8IGRlZmluZWQoT1NfQU5EUk9JRCkKKysjZWxp ZiAoZGVmaW5lZChPU19MSU5VWCkgJiYgZGVmaW5lZChfX0dMSUJDX18pKSB8fCBkZWZpbmVkKE9T X0FORFJPSUQpCisgICBzdHJ1Y3QgbWFsbGluZm8gbWluZm8gPSBtYWxsaW5mbygpOworICNpZiBC VUlMREZMQUcoVVNFX1RDTUFMTE9DKQorICAgcmV0dXJuIG1pbmZvLnVvcmRibGtzOworICNlbHNl CisgICByZXR1cm4gbWluZm8uaGJsa2hkICsgbWluZm8uYXJlbmE7CisgI2VuZGlmCistI2VsaWYg ZGVmaW5lZChPU19GVUNIU0lBKQorKyNlbHNlCisgICAvLyBUT0RPKGZ1Y2hzaWEpOiBOb3QgY3Vy cmVudGx5IGV4cG9zZWQuIGh0dHBzOi8vY3JidWcuY29tLzczNTA4Ny4KKyAgIHJldHVybiAwOwor ICNlbmRpZgorZGlmZiAtLWdpdCBhL2Jhc2UvdHJhY2VfZXZlbnQvbWFsbG9jX2R1bXBfcHJvdmlk ZXIuY2MgYi9iYXNlL3RyYWNlX2V2ZW50L21hbGxvY19kdW1wX3Byb3ZpZGVyLmNjCitpbmRleCBl ODk1OTdjLi5lY2EyNThjIDEwMDY0NAorLS0tIGEvYmFzZS90cmFjZV9ldmVudC9tYWxsb2NfZHVt cF9wcm92aWRlci5jYworKysrIGIvYmFzZS90cmFjZV9ldmVudC9tYWxsb2NfZHVtcF9wcm92aWRl ci5jYworQEAgLTEzMiw3ICsxMzIsNyBAQCBib29sIE1hbGxvY0R1bXBQcm92aWRlcjo6T25NZW1v cnlEdW1wKGNvbnN0IE1lbW9yeUR1bXBBcmdzJiBhcmdzLAorICAgfQorICNlbGlmIGRlZmluZWQo T1NfRlVDSFNJQSkKKyAvLyBUT0RPKGZ1Y2hzaWEpOiBQb3J0LCBzZWUgaHR0cHM6Ly9jcmJ1Zy5j b20vNzA2NTkyLgorLSNlbHNlCisrI2VsaWYgZGVmaW5lZChPU19MSU5VWCkgJiYgZGVmaW5lZChf X0dMSUJDX18pCisgICBzdHJ1Y3QgbWFsbGluZm8gaW5mbyA9IG1hbGxpbmZvKCk7CisgICBEQ0hF Q0tfR0UoaW5mby5hcmVuYSArIGluZm8uaGJsa2hkLCBpbmZvLnVvcmRibGtzKTsKKyAKK2RpZmYg LS1naXQgYS90aGlyZF9wYXJ0eS9zd2lmdHNoYWRlci90aGlyZF9wYXJ0eS9sbHZtLXN1Ynplcm8v YnVpbGQvTGludXgvaW5jbHVkZS9sbHZtL0NvbmZpZy9jb25maWcuaCBiL3RoaXJkX3BhcnR5L3N3 aWZ0c2hhZGVyL3RoaXJkX3BhcnR5L2xsdm0tc3ViemVyby9idWlsZC9MaW51eC9pbmNsdWRlL2xs dm0vQ29uZmlnL2NvbmZpZy5oCitpbmRleCBhYTk4MjQyLi45N2FjYzdjIDEwMDY0NAorLS0tIGEv dGhpcmRfcGFydHkvc3dpZnRzaGFkZXIvdGhpcmRfcGFydHkvbGx2bS1zdWJ6ZXJvL2J1aWxkL0xp bnV4L2luY2x1ZGUvbGx2bS9Db25maWcvY29uZmlnLmgKKysrKyBiL3RoaXJkX3BhcnR5L3N3aWZ0 c2hhZGVyL3RoaXJkX3BhcnR5L2xsdm0tc3ViemVyby9idWlsZC9MaW51eC9pbmNsdWRlL2xsdm0v Q29uZmlnL2NvbmZpZy5oCitAQCAtMTMwLDcgKzEzMCw3IEBACisgLyogI3VuZGVmIEhBVkVfTUFM TENUTCAqLworIAorIC8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgbWFsbGluZm8nIGZ1 bmN0aW9uLiAqLworLSNkZWZpbmUgSEFWRV9NQUxMSU5GTyAxCisrLyogI3VuZGVmIEhBVkVfTUFM TElORk8gKi8KKyAKKyAvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG1hbGxvYy5oPiBo ZWFkZXIgZmlsZS4gKi8KKyAjZGVmaW5lIEhBVkVfTUFMTE9DX0ggMQorZGlmZiAtLWdpdCBhL3Ro aXJkX3BhcnR5L3N3aWZ0c2hhZGVyL3RoaXJkX3BhcnR5L2xsdm0tNy4wL2NvbmZpZ3MvbGludXgv aW5jbHVkZS9sbHZtL0NvbmZpZy9jb25maWcuaCBiL3RoaXJkX3BhcnR5L3N3aWZ0c2hhZGVyL3Ro aXJkX3BhcnR5L2xsdm0tNy4wL2NvbmZpZ3MvbGludXgvaW5jbHVkZS9sbHZtL0NvbmZpZy9jb25m aWcuaAoraW5kZXggNmUxNzAyMC4uZDRhOWVkMCAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3N3 aWZ0c2hhZGVyL3RoaXJkX3BhcnR5L2xsdm0tNy4wL2NvbmZpZ3MvbGludXgvaW5jbHVkZS9sbHZt L0NvbmZpZy9jb25maWcuaAorKysrIGIvdGhpcmRfcGFydHkvc3dpZnRzaGFkZXIvdGhpcmRfcGFy dHkvbGx2bS03LjAvY29uZmlncy9saW51eC9pbmNsdWRlL2xsdm0vQ29uZmlnL2NvbmZpZy5oCitA QCAtMTIyLDcgKzEyMiw3IEBACisgLyogI3VuZGVmIEhBVkVfTUFMTENUTCAqLworCisgLyogRGVm aW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBtYWxsaW5mbycgZnVuY3Rpb24uICovCistI2RlZmlu ZSBIQVZFX01BTExJTkZPIDEKKysvKiAjdW5kZWYgSEFWRV9NQUxMSU5GTyAqLworCisgLyogRGVm aW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxtYWxsb2MuaD4gaGVhZGVyIGZpbGUuICovCisgI2Rl ZmluZSBIQVZFX01BTExPQ19IIDEKKwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9lbGVjdHJvbjgvZmls ZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2xfcHJlYWRfcHdyaXRlNjQucGF0Y2gucGF0Y2gg Yi9zcmNwa2dzL2VsZWN0cm9uOC9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbXVzbF9wcmVh ZF9wd3JpdGU2NC5wYXRjaC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwMC4uMmFlYWFlYjc1OTMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2VsZWN0cm9uOC9m aWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbXVzbF9wcmVhZF9wd3JpdGU2NC5wYXRjaC5wYXRj aApAQCAtMCwwICsxLDE4IEBACitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvbHNzL2xpbnV4X3N5 c2NhbGxfc3VwcG9ydC5oIGIvdGhpcmRfcGFydHkvbHNzL2xpbnV4X3N5c2NhbGxfc3VwcG9ydC5o CitpbmRleCA1ZDljMmU4Li4yNjgyMzQ5IDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvbHNzL2xp bnV4X3N5c2NhbGxfc3VwcG9ydC5oCisrKysgYi90aGlyZF9wYXJ0eS9sc3MvbGludXhfc3lzY2Fs bF9zdXBwb3J0LmgKK0BAIC0xNjYsNiArMTY2LDEzIEBAIGV4dGVybiAiQyIgeworICMgdW5kZWYg X19OUl93YWl0cGlkCisgI2VuZGlmCisgCisrI2lmZGVmIHByZWFkNjQKKysjdW5kZWYgcHJlYWQ2 NAorKyNlbmRpZgorKyNpZmRlZiBwd3JpdGU2NAorKyN1bmRlZiBwd3JpdGU2NAorKyNlbmRpZgor KworIC8qIEFzIGdsaWJjIG9mdGVuIHByb3ZpZGVzIHN1YnRseSBpbmNvbXBhdGlibGUgZGF0YSBz dHJ1Y3R1cmVzIChhbmQgaW1wbGljaXQKKyAgKiB3cmFwcGVyIGZ1bmN0aW9ucyB0aGF0IGNvbnZl cnQgdGhlbSksIHdlIHByb3ZpZGUgb3VyIG93biBrZXJuZWwgZGF0YQorICAqIHN0cnVjdHVyZXMg Zm9yIHVzZSBieSB0aGUgc3lzdGVtIGNhbGxzLgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9lbGVjdHJv bjgvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2xfcHVzaF9iYWNrLnBhdGNoLnBhdGNo IGIvc3JjcGtncy9lbGVjdHJvbjgvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2xfcHVz aF9iYWNrLnBhdGNoLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw Li5jZmYzNDAyODdkYQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZWxlY3Ryb244L2ZpbGVz L211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsX3B1c2hfYmFjay5wYXRjaC5wYXRjaApAQCAtMCww ICsxLDEzIEBACitkaWZmIC0tZ2l0IGEvbmV0L3NvY2tldC91ZHBfc29ja2V0X3Bvc2l4LmNjIGIv bmV0L3NvY2tldC91ZHBfc29ja2V0X3Bvc2l4LmNjCitpbmRleCAwOGJmNzljLi4zZWU1MzUzIDEw MDY0NAorLS0tIGEvbmV0L3NvY2tldC91ZHBfc29ja2V0X3Bvc2l4LmNjCisrKysgYi9uZXQvc29j a2V0L3VkcF9zb2NrZXRfcG9zaXguY2MKK0BAIC0xMTk0LDcgKzExOTQsNyBAQCBTZW5kUmVzdWx0 IFVEUFNvY2tldFBvc2l4U2VuZGVyOjpJbnRlcm5hbFNlbmRtbXNnQnVmZmVycygKKyAgICAgbXNn X2lvdi0+cHVzaF9iYWNrKHtjb25zdF9jYXN0PGNoYXIqPihidWZmZXItPmRhdGEoKSksIGJ1ZmZl ci0+bGVuZ3RoKCl9KTsKKyAgIG1zZ3ZlYy0+cmVzZXJ2ZShidWZmZXJzLnNpemUoKSk7CisgICBm b3IgKHNpemVfdCBqID0gMDsgaiA8IGJ1ZmZlcnMuc2l6ZSgpOyBqKyspCistICAgIG1zZ3ZlYy0+ cHVzaF9iYWNrKHt7bnVsbHB0ciwgMCwgJm1zZ19pb3Zbal0sIDEsIG51bGxwdHIsIDAsIDB9LCAw fSk7CisrICAgIG1zZ3ZlYy0+cHVzaF9iYWNrKHt7bnVsbHB0ciwgMCwgJm1zZ19pb3Zbal0sIDEs IDAsIG51bGxwdHIsIDAsIDAsIDB9LCAwfSk7CisgICBpbnQgcmVzdWx0ID0gSEFORExFX0VJTlRS KFNlbmRtbXNnKGZkLCAmbXNndmVjWzBdLCBidWZmZXJzLnNpemUoKSwgMCkpOworICAgU2VuZFJl c3VsdCBzZW5kX3Jlc3VsdCgwLCAwLCBzdGQ6Om1vdmUoYnVmZmVycykpOworICAgaWYgKHJlc3Vs dCA8IDApIHsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZWxlY3Ryb244L2ZpbGVzL211c2wtcGF0Y2hl cy9jaHJvbWl1bS1tdXNsX3NpX2ZpZWxkcy5wYXRjaC5wYXRjaCBiL3NyY3BrZ3MvZWxlY3Ryb244 L2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsX3NpX2ZpZWxkcy5wYXRjaC5wYXRjaApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZmRiZWZkMjdlMmIKLS0tIC9k ZXYvbnVsbAorKysgYi9zcmNwa2dzL2VsZWN0cm9uOC9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21p dW0tbXVzbF9zaV9maWVsZHMucGF0Y2gucGF0Y2gKQEAgLTAsMCArMSwxMyBAQAorZGlmZiAtLWdp dCBhL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYvdHJhcC5jYyBiL3NhbmRib3gvbGludXgvc2Vj Y29tcC1icGYvdHJhcC5jYworaW5kZXggMDAzNzA4ZC4uYjIxNDE0ZiAxMDA2NDQKKy0tLSBhL3Nh bmRib3gvbGludXgvc2VjY29tcC1icGYvdHJhcC5jYworKysrIGIvc2FuZGJveC9saW51eC9zZWNj b21wLWJwZi90cmFwLmNjCitAQCAtMTY4LDcgKzE2OCw3IEBAIHZvaWQgVHJhcDo6U2lnU3lzKGlu dCBuciwgTGludXhTaWdJbmZvKiBpbmZvLCB1Y29udGV4dF90KiBjdHgpIHsKKyAgIC8vIG1vc3Qg dmVyc2lvbnMgb2YgZ2xpYmMgZG9uJ3QgaW5jbHVkZSB0aGlzIGluZm9ybWF0aW9uIGluIHNpZ2lu Zm9fdC4gU28sCisgICAvLyB3ZSBuZWVkIHRvIGV4cGxpY2l0bHkgY29weSBpdCBpbnRvIGEgYXJj aF9zaWdzeXMgc3RydWN0dXJlLgorICAgc3RydWN0IGFyY2hfc2lnc3lzIHNpZ3N5czsKKy0gIG1l bWNweSgmc2lnc3lzLCAmaW5mby0+X3NpZmllbGRzLCBzaXplb2Yoc2lnc3lzKSk7CisrICBtZW1j cHkoJnNpZ3N5cywgJmluZm8tPl9fc2lfZmllbGRzLCBzaXplb2Yoc2lnc3lzKSk7CisgCisgI2lm IGRlZmluZWQoX19taXBzX18pCisgICAvLyBXaGVuIGluZGlyZWN0IHN5c2NhbGwgKHN5c2NhbGwo X19OUl9mb28sIC4uLikpIGlzIG1hZGUgb24gTWlwcywgdGhlCmRpZmYgLS1naXQgYS9zcmNwa2dz L2VsZWN0cm9uOC9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbXVzbF9zdGFja19zaXplLnBh dGNoLnBhdGNoIGIvc3JjcGtncy9lbGVjdHJvbjgvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVt LW11c2xfc3RhY2tfc2l6ZS5wYXRjaC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAwMC4uYTRkZjdhMzcyOWIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2VsZWN0 cm9uOC9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbXVzbF9zdGFja19zaXplLnBhdGNoLnBh dGNoCkBAIC0wLDAgKzEsNDEgQEAKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ibGluay9yZW5k ZXJlci9wbGF0Zm9ybS93dGYvc3RhY2tfdXRpbC5jYyBiL3RoaXJkX3BhcnR5L2JsaW5rL3JlbmRl cmVyL3BsYXRmb3JtL3d0Zi9zdGFja191dGlsLmNjCitpbmRleCBiMjQyMTY0Li4xYTBiNTE5IDEw MDY0NAorLS0tIGEvdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvcGxhdGZvcm0vd3RmL3N0YWNr X3V0aWwuY2MKKysrKyBiL3RoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL3BsYXRmb3JtL3d0Zi9z dGFja191dGlsLmNjCitAQCAtMjksNyArMjksNyBAQCBzaXplX3QgR2V0VW5kZXJlc3RpbWF0ZWRT dGFja1NpemUoKSB7CisgLy8gRklYTUU6IE9uIE1hYyBPU1ggYW5kIExpbnV4LCB0aGlzIG1ldGhv ZCBjYW5ub3QgZXN0aW1hdGUgc3RhY2sgc2l6ZQorIC8vIGNvcnJlY3RseSBmb3IgdGhlIG1haW4g dGhyZWFkLgorIAorLSNpZiBkZWZpbmVkKF9fR0xJQkNfXykgfHwgZGVmaW5lZChPU19BTkRST0lE KSB8fCBkZWZpbmVkKE9TX0ZSRUVCU0QpIHx8IFwKKysjaWYgZGVmaW5lZChPU19MSU5VWCkgfHwg ZGVmaW5lZChPU19BTkRST0lEKSB8fCBkZWZpbmVkKE9TX0ZSRUVCU0QpIHx8IFwKKyAgICAgZGVm aW5lZChPU19GVUNIU0lBKQorICAgLy8gcHRocmVhZF9nZXRhdHRyX25wKCkgY2FuIGZhaWwgaWYg dGhlIHRocmVhZCBpcyBub3QgaW52b2tlZCBieQorICAgLy8gcHRocmVhZF9jcmVhdGUoKSAoZS5n LiwgdGhlIG1haW4gdGhyZWFkIG9mIGJsaW5rX3VuaXR0ZXN0cykuCitAQCAtNTUsNiArNTUsOSBA QCBzaXplX3QgR2V0VW5kZXJlc3RpbWF0ZWRTdGFja1NpemUoKSB7CisgICBwdGhyZWFkX2F0dHJf ZGVzdHJveSgmYXR0cik7CisgI2VuZGlmCisgCisrI2lmIGRlZmluZWQoT1NfTElOVVgpICYmICFk ZWZpbmVkKF9fR0xJQkNfXykKKysgIHJldHVybiAwOworKyNlbHNlCisgICAvLyBSZXR1cm4gYSA1 MTJrIHN0YWNrIHNpemUsIChjb25zZXJ2YXRpdmVseSkgYXNzdW1pbmcgdGhlIGZvbGxvd2luZzoK KyAgIC8vICAtIHRoYXQgc2l6ZSBpcyBtdWNoIGxvd2VyIHRoYW4gdGhlIHB0aHJlYWRzIGRlZmF1 bHQgKHg4NiBwdGhyZWFkcyBoYXMgYSAyTQorICAgLy8gICAgZGVmYXVsdC4pCitAQCAtNjIsNiAr NjUsOCBAQCBzaXplX3QgR2V0VW5kZXJlc3RpbWF0ZWRTdGFja1NpemUoKSB7CisgICAvLyAgICBs b3cgYXMgNTEyay4KKyAgIC8vCisgICByZXR1cm4gNTEyICogMTAyNDsKKysjZW5kaWYKKysKKyAj ZWxpZiBkZWZpbmVkKE9TX01BQ09TWCkKKyAgIC8vIHB0aHJlYWRfZ2V0X3N0YWNrc2l6ZV9ucCgp IHJldHVybnMgdG9vIGxvdyBhIHZhbHVlIGZvciB0aGUgbWFpbiB0aHJlYWQgb24KKyAgIC8vIE9T WCAxMC45LAorQEAgLTk3LDcgKzEwMiw3IEBAIHJldHVybiBUaHJlYWRpbmc6OlRocmVhZFN0YWNr U2l6ZSgpOworIH0KKyAKKyB2b2lkKiBHZXRTdGFja1N0YXJ0KCkgeworLSNpZiBkZWZpbmVkKF9f R0xJQkNfXykgfHwgZGVmaW5lZChPU19BTkRST0lEKSB8fCBkZWZpbmVkKE9TX0ZSRUVCU0QpIHx8 IFwKKysjaWYgZGVmaW5lZChPU19MSU5VWCkgfHwgZGVmaW5lZChPU19BTkRST0lEKSB8fCBkZWZp bmVkKE9TX0ZSRUVCU0QpIHx8IFwKKyAgICAgZGVmaW5lZChPU19GVUNIU0lBKQorICAgcHRocmVh ZF9hdHRyX3QgYXR0cjsKKyAgIGludCBlcnJvcjsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZWxlY3Ry b244L2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsX3N0YWNrX3RyYWNlLnBhdGNoLnBh dGNoIGIvc3JjcGtncy9lbGVjdHJvbjgvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2xf c3RhY2tfdHJhY2UucGF0Y2gucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAwMDAuLjlhMWYyYjA0NDU4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9lbGVjdHJvbjgv ZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2xfc3RhY2tfdHJhY2UucGF0Y2gucGF0Y2gK QEAgLTAsMCArMSw0NCBAQAorZGlmZiAtLWdpdCBhL2Jhc2UvZGVidWcvc3RhY2tfdHJhY2UuY2Mg Yi9iYXNlL2RlYnVnL3N0YWNrX3RyYWNlLmNjCitpbmRleCBkOGNhODIyLi5mZmUxZjA4IDEwMDY0 NAorLS0tIGEvYmFzZS9kZWJ1Zy9zdGFja190cmFjZS5jYworKysrIGIvYmFzZS9kZWJ1Zy9zdGFj a190cmFjZS5jYworQEAgLTIyNSw3ICsyMjUsOSBAQCB2b2lkIFN0YWNrVHJhY2U6OlByaW50KCkg Y29uc3QgeworIH0KKworIHZvaWQgU3RhY2tUcmFjZTo6T3V0cHV0VG9TdHJlYW0oc3RkOjpvc3Ry ZWFtKiBvcykgY29uc3QgeworKyNpZiBkZWZpbmVkKF9fR0xJQkNfXykgJiYgIWRlZmluZWQoX19V Q0xJQkNfXykgJiYgIWRlZmluZWQoX0FJWCkKKyAgIE91dHB1dFRvU3RyZWFtV2l0aFByZWZpeChv cywgbnVsbHB0cik7CisrI2VuZGlmCisgfQorCisgc3RkOjpzdHJpbmcgU3RhY2tUcmFjZTo6VG9T dHJpbmcoKSBjb25zdCB7CitAQCAtMjMzLDE0ICsyMzMsMTQgQEAgc3RkOjpzdHJpbmcgU3RhY2tU cmFjZTo6VG9TdHJpbmcoKSBjb25zdCB7CisgfQorIHN0ZDo6c3RyaW5nIFN0YWNrVHJhY2U6OlRv U3RyaW5nV2l0aFByZWZpeChjb25zdCBjaGFyKiBwcmVmaXhfc3RyaW5nKSBjb25zdCB7CisgICBz dGQ6OnN0cmluZ3N0cmVhbSBzdHJlYW07CistI2lmICFkZWZpbmVkKF9fVUNMSUJDX18pICYmICFk ZWZpbmVkKF9BSVgpCisrI2lmIGRlZmluZWQoX19HTElCQ19fKSAmJiAhZGVmaW5lZChfX1VDTElC Q19fKSAmJiAhZGVmaW5lZChfQUlYKQorICAgT3V0cHV0VG9TdHJlYW1XaXRoUHJlZml4KCZzdHJl YW0sIHByZWZpeF9zdHJpbmcpOworICNlbmRpZgorICAgcmV0dXJuIHN0cmVhbS5zdHIoKTsKKyB9 CisgCisgc3RkOjpvc3RyZWFtJiBvcGVyYXRvcjw8KHN0ZDo6b3N0cmVhbSYgb3MsIGNvbnN0IFN0 YWNrVHJhY2UmIHMpIHsKKy0jaWYgIWRlZmluZWQoX19VQ0xJQkNfXykgJiAhZGVmaW5lZChfQUlY KQorKyNpZiBkZWZpbmVkKF9fR0xJQkNfXykgJiYgIWRlZmluZWQoX19VQ0xJQkNfXykgJiAhZGVm aW5lZChfQUlYKQorICAgcy5PdXRwdXRUb1N0cmVhbSgmb3MpOworICNlbHNlCisgICBvcyA8PCAi U3RhY2tUcmFjZTo6T3V0cHV0VG9TdHJlYW0gbm90IGltcGxlbWVudGVkLiI7CitkaWZmIC0tZ2l0 IGEvYmFzZS9sb2dnaW5nLmNjIGIvYmFzZS9sb2dnaW5nLmNjCitpbmRleCAzNmI4YmZjLi5kZDgz MGZlIDEwMDY0NAorLS0tIGEvYmFzZS9sb2dnaW5nLmNjCisrKysgYi9iYXNlL2xvZ2dpbmcuY2MK K0BAIC02MDcsNyArNjA3LDcgQEAgTG9nTWVzc2FnZTo6TG9nTWVzc2FnZShjb25zdCBjaGFyKiBm aWxlLCBpbnQgbGluZSwgTG9nU2V2ZXJpdHkgc2V2ZXJpdHksCisgTG9nTWVzc2FnZTo6fkxvZ01l c3NhZ2UoKSB7CisgICBzaXplX3Qgc3RhY2tfc3RhcnQgPSBzdHJlYW1fLnRlbGxwKCk7CisgI2lm ICFkZWZpbmVkKE9GRklDSUFMX0JVSUxEKSAmJiAhZGVmaW5lZChPU19OQUNMKSAmJiAhZGVmaW5l ZChfX1VDTElCQ19fKSAmJiBcCistICAgICFkZWZpbmVkKE9TX0FJWCkKKysgICAgIWRlZmluZWQo T1NfQUlYKSAmJiBkZWZpbmVkKF9fR0xJQkNfXykKKyAgIGlmIChzZXZlcml0eV8gPT0gTE9HX0ZB VEFMICYmICFiYXNlOjpkZWJ1Zzo6QmVpbmdEZWJ1Z2dlZCgpKSB7CisgICAgIC8vIEluY2x1ZGUg YSBzdGFjayB0cmFjZSBvbiBhIGZhdGFsLCB1bmxlc3MgYSBkZWJ1Z2dlciBpcyBhdHRhY2hlZC4K KyAgICAgYmFzZTo6ZGVidWc6OlN0YWNrVHJhY2Ugc3RhY2tfdHJhY2U7CmRpZmYgLS1naXQgYS9z cmNwa2dzL2VsZWN0cm9uOC9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbXVzbF90Y3BfbGlz dGVuLnBhdGNoLnBhdGNoIGIvc3JjcGtncy9lbGVjdHJvbjgvZmlsZXMvbXVzbC1wYXRjaGVzL2No cm9taXVtLW11c2xfdGNwX2xpc3Rlbi5wYXRjaC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAwMC4uZmE2MjMxN2IxMWEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dz L2VsZWN0cm9uOC9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbXVzbF90Y3BfbGlzdGVuLnBh dGNoLnBhdGNoCkBAIC0wLDAgKzEsMTQgQEAKK2RpZmYgLS1naXQgYS9jb250ZW50L3B1YmxpYy9j b21tb24vc29ja2V0X3Blcm1pc3Npb25fcmVxdWVzdC5oIGIvY29udGVudC9wdWJsaWMvY29tbW9u L3NvY2tldF9wZXJtaXNzaW9uX3JlcXVlc3QuaAoraW5kZXggNzMxNjYyMS4uNjE3MTIxOSAxMDA2 NDQKKy0tLSBhL2NvbnRlbnQvcHVibGljL2NvbW1vbi9zb2NrZXRfcGVybWlzc2lvbl9yZXF1ZXN0 LmgKKysrKyBiL2NvbnRlbnQvcHVibGljL2NvbW1vbi9zb2NrZXRfcGVybWlzc2lvbl9yZXF1ZXN0 LmgKK0BAIC05LDYgKzksOSBAQAorIAorICNpbmNsdWRlIDxzdHJpbmc+CisgCisrI2lmZGVmIFRD UF9MSVNURU4KKysjdW5kZWYgVENQX0xJU1RFTgorKyNlbmRpZgorIAorIG5hbWVzcGFjZSBjb250 ZW50IHsKKyAKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZWxlY3Ryb244L2ZpbGVzL211c2wtcGF0Y2hl cy9jaHJvbWl1bS1tdXNsX3dvcmRzaXplLnBhdGNoLnBhdGNoIGIvc3JjcGtncy9lbGVjdHJvbjgv ZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2xfd29yZHNpemUucGF0Y2gucGF0Y2gKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjYyMDhjZmZhZmJlCi0tLSAvZGV2 L251bGwKKysrIGIvc3JjcGtncy9lbGVjdHJvbjgvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVt LW11c2xfd29yZHNpemUucGF0Y2gucGF0Y2gKQEAgLTAsMCArMSwyNCBAQAorZGlmZiAtLWdpdCBh L3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jb21tb24vbGludXgvZWxmX2NvcmVf ZHVtcC5oIGIvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NvbW1vbi9saW51eC9l bGZfY29yZV9kdW1wLmgKK2luZGV4IGQwM2M3YTguLjc4Y2E5ZGQgMTAwNjQ0CistLS0gYS90aGly ZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY29tbW9uL2xpbnV4L2VsZl9jb3JlX2R1bXAu aAorKysrIGIvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NvbW1vbi9saW51eC9l bGZfY29yZV9kdW1wLmgKK0BAIC0zNiw2ICszNiw3IEBACisgI2luY2x1ZGUgPGVsZi5oPgorICNp bmNsdWRlIDxsaW5rLmg+CisgI2luY2x1ZGUgPHN0ZGRlZi5oPgorKyNpbmNsdWRlIDxsaW1pdHMu aD4KKyAKKyAjaW5jbHVkZSAiY29tbW9uL21lbW9yeV9yYW5nZS5oIgorIAorQEAgLTUxLDkgKzUy LDkgQEAgY2xhc3MgRWxmQ29yZUR1bXAgeworICAgdHlwZWRlZiBFbGZXKFBoZHIpIFBoZHI7Cisg ICB0eXBlZGVmIEVsZlcoV29yZCkgV29yZDsKKyAgIHR5cGVkZWYgRWxmVyhBZGRyKSBBZGRyOwor LSNpZiBfX1dPUkRTSVpFID09IDMyCisrI2lmIFVMT05HX01BWCA9PSAweGZmZmZmZmZmCisgICBz dGF0aWMgY29uc3QgaW50IGtDbGFzcyA9IEVMRkNMQVNTMzI7CistI2VsaWYgX19XT1JEU0laRSA9 PSA2NAorKyNlbGlmIFVMT05HX01BWCA9PSAweGZmZmZmZmZmZmZmZmZmZmYKKyAgIHN0YXRpYyBj b25zdCBpbnQga0NsYXNzID0gRUxGQ0xBU1M2NDsKKyAjZWxzZQorICNlcnJvciAiVW5zdXBwb3J0 ZWQgX19XT1JEU0laRSBmb3IgRWxmQ29yZUR1bXAuIgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9lbGVj dHJvbjgvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1jaHJvbWl1bV9hdGtfb3B0aW9uYWwucGF0Y2gu cGF0Y2ggYi9zcmNwa2dzL2VsZWN0cm9uOC9maWxlcy9wYXRjaGVzL2Nocm9taXVtLWNocm9taXVt X2F0a19vcHRpb25hbC5wYXRjaC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMDAwMC4uMjdiNTYyNTFlYzMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2VsZWN0cm9u OC9maWxlcy9wYXRjaGVzL2Nocm9taXVtLWNocm9taXVtX2F0a19vcHRpb25hbC5wYXRjaC5wYXRj aApAQCAtMCwwICsxLDE3IEBACitkaWZmIC0tZ2l0IGEvYnVpbGQvY29uZmlnL3VpLmduaSBiL2J1 aWxkL2NvbmZpZy91aS5nbmkKK2luZGV4IDU0N2I0MmYuLjk2NmIwMGMgMTAwNjQ0CistLS0gYS9i dWlsZC9jb25maWcvdWkuZ25pCisrKysgYi9idWlsZC9jb25maWcvdWkuZ25pCitAQCAtNTEsOCAr NTEsMTAgQEAgaWYgKHVzZV9vem9uZSkgeworICAgdXNlX2dsaWIgPSBmYWxzZQorIH0KKworLSMg V2hldGhlciB0byB1c2UgYXRrLCB0aGUgQWNjZXNzaWJpbGl0eSBUb29sS2l0IGxpYnJhcnkKKy11 c2VfYXRrID0gaXNfZGVza3RvcF9saW51eCAmJiB1c2VfeDExCisrZGVjbGFyZV9hcmdzKCkgewor KyAgIyBXaGV0aGVyIHRvIHVzZSBhdGssIHRoZSBBY2Nlc3NpYmlsaXR5IFRvb2xLaXQgbGlicmFy eQorKyAgdXNlX2F0ayA9IGlzX2Rlc2t0b3BfbGludXggJiYgdXNlX3gxMQorK30KKyAjID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICMgICBQTEVBU0UgRE8g Tk9UIEFERCBNT1JFIEZMQUdTIFRPIFRISVMgRklMRQorICMgPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09CmRpZmYgLS1naXQgYS9zcmNwa2dzL2VsZWN0cm9uOC9m aWxlcy9wYXRjaGVzL2Nocm9taXVtLWZpeC1idWlsZGluZy13aXRoLXVuYnVuZGxlZC1saWJ4bWwu cGF0Y2ggYi9zcmNwa2dzL2VsZWN0cm9uOC9maWxlcy9wYXRjaGVzL2Nocm9taXVtLWZpeC1idWls ZGluZy13aXRoLXVuYnVuZGxlZC1saWJ4bWwucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMDAwMDAuLjdiOTM0Mzc2ZTZlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9l bGVjdHJvbjgvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1maXgtYnVpbGRpbmctd2l0aC11bmJ1bmRs ZWQtbGlieG1sLnBhdGNoCkBAIC0wLDAgKzEsMTI3IEBACitGcm9tIGQzYWZhZGUyMjBkZGIzMDdl MTZhNmRkNGYyYjBlYzg4YjJhZjkxZTcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBT dGVwaGFuIEhhcnRtYW5uIDxzdGhhMDlAZ29vZ2xlbWFpbC5jb20+CitEYXRlOiBUdWUsIDI4IEph biAyMDIwIDE4OjE2OjU0ICswMDAwCitTdWJqZWN0OiBbUEFUQ0hdIEZpeCBidWlsZGluZyB3aXRo IHVuYnVuZGxlZCBsaWJ4bWwKKworQWRkIG5ldyB0YXJnZXRzIHRvIGxpYnhtbC5nbiB0aGF0IHdl cmUgYWRkZWQgaW4KKyBodHRwczovL2Nocm9taXVtLXJldmlldy5nb29nbGVzb3VyY2UuY29tL2Mv Y2hyb21pdW0vc3JjLysvMTg5NDg3NworQWRqdXN0IGluY2x1ZGVzIHRvIHVzZSBzeXN0ZW0gbGli eG1sIGhlYWRlcnMgdG9vCisKK0J1ZzogMTA0MzA0MgorQ2hhbmdlLUlkOiBJOTQ4YzA2M2UyMTJl NDliOWU3ZjQyZmVkMmI4YmY3ZjRhZjA0MmNhNworUmV2aWV3ZWQtb246IGh0dHBzOi8vY2hyb21p dW0tcmV2aWV3Lmdvb2dsZXNvdXJjZS5jb20vYy9jaHJvbWl1bS9zcmMvKy8yMDA3MTEwCitSZXZp ZXdlZC1ieTogUm9iZXJ0IFNlc2VrIDxyc2VzZWtAY2hyb21pdW0ub3JnPgorUmV2aWV3ZWQtYnk6 IERhbmllbCBDaGVuZyA8ZGNoZW5nQGNocm9taXVtLm9yZz4KK1Jldmlld2VkLWJ5OiBOaWNvIFdl YmVyIDx0aGFraXNAY2hyb21pdW0ub3JnPgorQ29tbWl0LVF1ZXVlOiBSb2JlcnQgU2VzZWsgPHJz ZXNla0BjaHJvbWl1bS5vcmc+CitDci1Db21taXQtUG9zaXRpb246IHJlZnMvaGVhZHMvbWFzdGVy QHsjNzM1OTU3fQorLS0tCisgYnVpbGQvbGludXgvdW5idW5kbGUvbGlieG1sLmduICAgICAgICAg ICAgIHwgNDEgKysrKysrKysrKysrKysrKysrKystLQorIHRoaXJkX3BhcnR5L2xpYnhtbC9jaHJv bWl1bS9saWJ4bWxfdXRpbHMuaCB8ICA0ICstLQorIHRoaXJkX3BhcnR5L2xpYnhtbC9jaHJvbWl1 bS94bWxfcmVhZGVyLmNjICB8ICAzICstCisgdGhpcmRfcGFydHkvbGlieG1sL2Nocm9taXVtL3ht bF93cml0ZXIuY2MgIHwgIDMgKy0KKyA0IGZpbGVzIGNoYW5nZWQsIDQ1IGluc2VydGlvbnMoKyks IDYgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9idWlsZC9saW51eC91bmJ1bmRsZS9saWJ4 bWwuZ24gYi9idWlsZC9saW51eC91bmJ1bmRsZS9saWJ4bWwuZ24KK2luZGV4IGM0ODFiZDM1NDdi Li4zNTg3ODgxZWVhOCAxMDA2NDQKKy0tLSBhL2J1aWxkL2xpbnV4L3VuYnVuZGxlL2xpYnhtbC5n bgorKysrIGIvYnVpbGQvbGludXgvdW5idW5kbGUvbGlieG1sLmduCitAQCAtOCwxMSArOCw0OCBA QCBwa2dfY29uZmlnKCJzeXN0ZW1fbGlieG1sIikgeworICAgcGFja2FnZXMgPSBbICJsaWJ4bWwt Mi4wIiBdCisgfQorIAorLXN0YXRpY19saWJyYXJ5KCJsaWJ4bWwiKSB7Cisrc291cmNlX3NldCgi bGlieG1sIikgeworKyAgcHVibGljX2NvbmZpZ3MgPSBbICI6c3lzdGVtX2xpYnhtbCIgXQorK30K KysKKytzdGF0aWNfbGlicmFyeSgibGlieG1sX3V0aWxzIikgeworKyAgIyBEbyBub3QgZXhwYW5k IHRoaXMgdmlzaWJpbGl0eSBsaXN0IHdpdGhvdXQgZmlyc3QgY29uc3VsdGluZyB3aXRoIHRoZQor KyAgIyBTZWN1cml0eSBUZWFtLgorKyAgdmlzaWJpbGl0eSA9IFsKKysgICAgIjp4bWxfcmVhZGVy IiwKKysgICAgIjp4bWxfd3JpdGVyIiwKKysgICAgIi8vYmFzZS90ZXN0OnRlc3Rfc3VwcG9ydCIs CisrICAgICIvL3NlcnZpY2VzL2RhdGFfZGVjb2Rlcjp4bWxfcGFyc2VyX2Z1enplciIsCisrICBd CisgICBzb3VyY2VzID0gWworICAgICAiY2hyb21pdW0vbGlieG1sX3V0aWxzLmNjIiwKKyAgICAg ImNocm9taXVtL2xpYnhtbF91dGlscy5oIiwKKyAgIF0KKy0KKyAgIHB1YmxpY19jb25maWdzID0g WyAiOnN5c3RlbV9saWJ4bWwiIF0KKyB9CisrCisrc3RhdGljX2xpYnJhcnkoInhtbF9yZWFkZXIi KSB7CisrICAjIERvIG5vdCBleHBhbmQgdGhpcyB2aXNpYmlsaXR5IGxpc3Qgd2l0aG91dCBmaXJz dCBjb25zdWx0aW5nIHdpdGggdGhlCisrICAjIFNlY3VyaXR5IFRlYW0uCisrICB2aXNpYmlsaXR5 ID0gWworKyAgICAiLy9iYXNlL3Rlc3Q6dGVzdF9zdXBwb3J0IiwKKysgICAgIi8vY29tcG9uZW50 cy9wb2xpY3kvY29yZS9jb21tb246dW5pdF90ZXN0cyIsCisrICAgICIvL3NlcnZpY2VzL2RhdGFf ZGVjb2RlcjoqIiwKKysgICAgIi8vdG9vbHMvdHJhZmZpY19hbm5vdGF0aW9uL2F1ZGl0b3I6YXVk aXRvcl9zb3VyY2VzIiwKKysgIF0KKysgIHNvdXJjZXMgPSBbCisrICAgICJjaHJvbWl1bS94bWxf cmVhZGVyLmNjIiwKKysgICAgImNocm9taXVtL3htbF9yZWFkZXIuaCIsCisrICBdCisrICBkZXBz ID0gWyAiOmxpYnhtbF91dGlscyIgXQorK30KKysKKytzdGF0aWNfbGlicmFyeSgieG1sX3dyaXRl ciIpIHsKKysgICMgVGhlIFhtbFdyaXRlciBpcyBjb25zaWRlcmVkIHNhZmUgdG8gdXNlIGZyb20g YW55IHRhcmdldC4KKysgIHZpc2liaWxpdHkgPSBbICIqIiBdCisrICBzb3VyY2VzID0gWworKyAg ICAiY2hyb21pdW0veG1sX3dyaXRlci5jYyIsCisrICAgICJjaHJvbWl1bS94bWxfd3JpdGVyLmgi LAorKyAgXQorKyAgZGVwcyA9IFsgIjpsaWJ4bWxfdXRpbHMiIF0KKyt9CitkaWZmIC0tZ2l0IGEv dGhpcmRfcGFydHkvbGlieG1sL2Nocm9taXVtL2xpYnhtbF91dGlscy5oIGIvdGhpcmRfcGFydHkv bGlieG1sL2Nocm9taXVtL2xpYnhtbF91dGlscy5oCitpbmRleCBmZjk2OWZhYjU0MC4uOGIyMzgz ZjljOGIgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9saWJ4bWwvY2hyb21pdW0vbGlieG1sX3V0 aWxzLmgKKysrKyBiL3RoaXJkX3BhcnR5L2xpYnhtbC9jaHJvbWl1bS9saWJ4bWxfdXRpbHMuaAor QEAgLTUsOSArNSw5IEBACisgI2lmbmRlZiBUSElSRF9QQVJUWV9MSUJYTUxfQ0hST01JVU1fTElC WE1MX1VUSUxTX0hfCisgI2RlZmluZSBUSElSRF9QQVJUWV9MSUJYTUxfQ0hST01JVU1fTElCWE1M X1VUSUxTX0hfCisgCistI2luY2x1ZGUgPHN0cmluZz4KKysjaW5jbHVkZSA8bGlieG1sL3htbHJl YWRlci5oPgorIAorLSNpbmNsdWRlICJ0aGlyZF9wYXJ0eS9saWJ4bWwvc3JjL2luY2x1ZGUvbGli eG1sL3htbHJlYWRlci5oIgorKyNpbmNsdWRlIDxzdHJpbmc+CisgCisgLy8gbGlieG1sIHVzZXMg YSBnbG9iYWwgZXJyb3IgZnVuY3Rpb24gcG9pbnRlciBmb3IgcmVwb3J0aW5nIGVycm9ycy4KKyAv LyBBIFNjb3BlZFhtbEVycm9yRnVuYyBvYmplY3QgbGV0cyB5b3UgY2hhbmdlIHRoZSBnbG9iYWwg ZXJyb3IgcG9pbnRlcgorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2xpYnhtbC9jaHJvbWl1bS94 bWxfcmVhZGVyLmNjIGIvdGhpcmRfcGFydHkvbGlieG1sL2Nocm9taXVtL3htbF9yZWFkZXIuY2MK K2luZGV4IDkyNDY0ZjRjYmNjLi44OTljY2VmYjdjOCAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5 L2xpYnhtbC9jaHJvbWl1bS94bWxfcmVhZGVyLmNjCisrKysgYi90aGlyZF9wYXJ0eS9saWJ4bWwv Y2hyb21pdW0veG1sX3JlYWRlci5jYworQEAgLTQsMTAgKzQsMTEgQEAKKyAKKyAjaW5jbHVkZSAi dGhpcmRfcGFydHkvbGlieG1sL2Nocm9taXVtL3htbF9yZWFkZXIuaCIKKyAKKysjaW5jbHVkZSA8 bGlieG1sL3htbHJlYWRlci5oPgorKworICNpbmNsdWRlIDx2ZWN0b3I+CisgCisgI2luY2x1ZGUg InRoaXJkX3BhcnR5L2xpYnhtbC9jaHJvbWl1bS9saWJ4bWxfdXRpbHMuaCIKKy0jaW5jbHVkZSAi dGhpcmRfcGFydHkvbGlieG1sL3NyYy9pbmNsdWRlL2xpYnhtbC94bWxyZWFkZXIuaCIKKyAKKyB1 c2luZyBpbnRlcm5hbDo6WG1sU3RyaW5nVG9TdGRTdHJpbmc7CisgCitkaWZmIC0tZ2l0IGEvdGhp cmRfcGFydHkvbGlieG1sL2Nocm9taXVtL3htbF93cml0ZXIuY2MgYi90aGlyZF9wYXJ0eS9saWJ4 bWwvY2hyb21pdW0veG1sX3dyaXRlci5jYworaW5kZXggNTFmY2U4ZWJlYjEuLjdjNTgwMzFmZTJk IDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvbGlieG1sL2Nocm9taXVtL3htbF93cml0ZXIuY2MK KysrKyBiL3RoaXJkX3BhcnR5L2xpYnhtbC9jaHJvbWl1bS94bWxfd3JpdGVyLmNjCitAQCAtNCw4 ICs0LDkgQEAKKyAKKyAjaW5jbHVkZSAidGhpcmRfcGFydHkvbGlieG1sL2Nocm9taXVtL3htbF93 cml0ZXIuaCIKKyAKKysjaW5jbHVkZSA8bGlieG1sL3htbHdyaXRlci5oPgorKworICNpbmNsdWRl ICJ0aGlyZF9wYXJ0eS9saWJ4bWwvY2hyb21pdW0vbGlieG1sX3V0aWxzLmgiCistI2luY2x1ZGUg InRoaXJkX3BhcnR5L2xpYnhtbC9zcmMvaW5jbHVkZS9saWJ4bWwveG1sd3JpdGVyLmgiCisgCisg WG1sV3JpdGVyOjpYbWxXcml0ZXIoKSA6IHdyaXRlcl8obnVsbHB0ciksIGJ1ZmZlcl8obnVsbHB0 cikge30KKyAKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZWxlY3Ryb244L2ZpbGVzL3BhdGNoZXMvY2hy b21pdW0tZml4LXN1Y2Vzcy1kZWZpbml0aW9uLnBhdGNoIGIvc3JjcGtncy9lbGVjdHJvbjgvZmls ZXMvcGF0Y2hlcy9jaHJvbWl1bS1maXgtc3VjZXNzLWRlZmluaXRpb24ucGF0Y2gKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjRkYzAyNDY5M2U2Ci0tLSAvZGV2L251bGwK KysrIGIvc3JjcGtncy9lbGVjdHJvbjgvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1maXgtc3VjZXNz LWRlZmluaXRpb24ucGF0Y2gKQEAgLTAsMCArMSwxNSBAQAorWDExLmggZGVmaW5lcyBhIG1hY3Jv IGNhbGxlZCAiU3VjY2VzcyIsIHdoaWNoIGlzIDAuIFRoaXMgYnJlYWtzIGFuIGVudW0KK3RoYXQg aXMgZ2VuZXJhdGVkIGluIENocm9taXVtIHRoYXQgaGFzIGEgbWVtYmVyICJTdWNjZXNzIiwgc28g dW5kZWZpbmUKK2l0LgorLS0tIGEvY2hyb21lL2Jyb3dzZXIvdWkvbGliZ3RrdWkvc2VsZWN0X2Zp bGVfZGlhbG9nX2ltcGxfa2RlLmNjLm9yaWcJMjAyMC0wNC0yNyAxODo0MjoxNS40NTcyOTc1NDQg KzAyMDAKKysrKyBiL2Nocm9tZS9icm93c2VyL3VpL2xpYmd0a3VpL3NlbGVjdF9maWxlX2RpYWxv Z19pbXBsX2tkZS5jYwkyMDIwLTA0LTI3IDE4OjQyOjIxLjc2MDQ1NDMwNCArMDIwMAorQEAgLTI0 LDcgKzI0LDkgQEAKKyAjaW5jbHVkZSAiYmFzZS90YXNrL3Bvc3RfdGFzay5oIgorICNpbmNsdWRl ICJiYXNlL3Rhc2svdGFza190cmFpdHMuaCIKKyAjaW5jbHVkZSAiYmFzZS90aHJlYWRpbmcvdGhy ZWFkX3Jlc3RyaWN0aW9ucy5oIgorKyN1bmRlZiBTdWNjZXNzCisgI2luY2x1ZGUgImNocm9tZS9i cm93c2VyL3VpL2xpYmd0a3VpL3NlbGVjdF9maWxlX2RpYWxvZ19pbXBsLmgiCisrI2RlZmluZSBT dWNjZXNzIDAKKyAjaW5jbHVkZSAiY29udGVudC9wdWJsaWMvYnJvd3Nlci9icm93c2VyX3RocmVh ZC5oIgorICNpbmNsdWRlICJ1aS9hdXJhL3dpbmRvd190cmVlX2hvc3QuaCIKKyAjaW5jbHVkZSAi dWkvYmFzZS9sMTBuL2wxMG5fdXRpbC5oIgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9lbGVjdHJvbjgv ZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1nbl9ib290c3RyYXBfbmluamEucGF0Y2ggYi9zcmNwa2dz L2VsZWN0cm9uOC9maWxlcy9wYXRjaGVzL2Nocm9taXVtLWduX2Jvb3RzdHJhcF9uaW5qYS5wYXRj aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZTlmOTVmMDljYWUKLS0t IC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2VsZWN0cm9uOC9maWxlcy9wYXRjaGVzL2Nocm9taXVt LWduX2Jvb3RzdHJhcF9uaW5qYS5wYXRjaApAQCAtMCwwICsxLDMyIEBACitQYXRjaCBieSBNaWNo YWVsIEZvcm5leSA8bWZvcm5leUBtZm9ybmV5Lm9yZz4KKworQWxyZWFkeSBtZXJnZWQgaHR0cHM6 Ly9jaHJvbWl1bS1yZXZpZXcuZ29vZ2xlc291cmNlLmNvbS9jL2Nocm9taXVtL3NyYy8rLzE5NzU0 NTMKKworLS0tIGEvdG9vbHMvZ24vYm9vdHN0cmFwL2Jvb3RzdHJhcC5weQorKysrIGIvdG9vbHMv Z24vYm9vdHN0cmFwL2Jvb3RzdHJhcC5weQorQEAgLTcwLDYgKzcwLDcgQEAKKyAgIG91dF9kaXIg PSBvcy5wYXRoLmpvaW4oU1JDX1JPT1QsIGJ1aWxkX3JlbCkKKyAgIGduX3BhdGggPSBvcHRpb25z Lm91dHB1dCBvciBvcy5wYXRoLmpvaW4ob3V0X2RpciwgJ2duJykKKyAgIGduX2J1aWxkX2RpciA9 IG9zLnBhdGguam9pbihvdXRfZGlyLCAnZ25fYnVpbGQnKQorKyAgbmluamFfYmluYXJ5ID0gb3Mu ZW52aXJvbi5nZXQoJ05JTkpBJywgJ25pbmphJykKKyAKKyAgICMgVE9ETyh0aG9tYXNhbmRlcnNv bik6IFJlbW92ZSB0aGlzIG9uY2UgVWJ1bnR1IFRydXN0eSByZWFjaGVzIEVPTCwgb3Igd2hlbgor ICAgIyBDaHJvbWl1bSdzIGluZnJhc3RydWN0dXJlIGlzIHVwZ3JhZGVkIGZyb20gVHJ1c3R5IHRv IFhlbmlhbCwgd2hpY2hldmVyIGNvbWVzCitAQCAtOTAsNyArOTEsNyBAQAorICAgICAgICAgICAg ICAgb3MuZW52aXJvbi5nZXQoJ0NGTEFHUycsICcnKS5zcGxpdCgpICsKKyAgICAgICAgICAgICAg IG9zLmVudmlyb24uZ2V0KCdDWFhGTEFHUycsICcnKS5zcGxpdCgpKSwKKyAgICAgICBdKSArICdc bicpCistICAgIHN1YnByb2Nlc3MuY2hlY2tfY2FsbChbJ25pbmphJywgJy1DJywgbGliY3h4X2Rp cl0pCisrICAgIHN1YnByb2Nlc3MuY2hlY2tfY2FsbChbbmluamFfYmluYXJ5LCAnLUMnLCBsaWJj eHhfZGlyXSkKKyAgICAgc2h1dGlsLmNvcHkyKG9zLnBhdGguam9pbihnbl9idWlsZF9kaXIsICds aWJjKysuZ24uc28nKSwgb3V0X2RpcikKKyAKKyAgICAgZGVmIGFwcGVuZF90b19lbnYodmFyLCB2 YWxzKToKK0BAIC0xMjAsNyArMTIxLDcgQEAKKyAgIHNodXRpbC5jb3B5MigKKyAgICAgICBvcy5w YXRoLmpvaW4oQk9PVFNUUkFQX0RJUiwgJ2xhc3RfY29tbWl0X3Bvc2l0aW9uLmgnKSwgZ25fYnVp bGRfZGlyKQorICAgc3VicHJvY2Vzcy5jaGVja19jYWxsKAorLSAgICAgIFsnbmluamEnLCAnLUMn LCBnbl9idWlsZF9kaXIsICdnbicsICctdycsICdkdXBidWlsZD1lcnInXSkKKysgICAgICBbbmlu amFfYmluYXJ5LCAnLUMnLCBnbl9idWlsZF9kaXIsICctdycsICdkdXBidWlsZD1lcnInLCAnZ24n XSkKKyAgIHNodXRpbC5jb3B5Mihvcy5wYXRoLmpvaW4oZ25fYnVpbGRfZGlyLCAnZ24nKSwgZ25f cGF0aCkKKyAKKyAgIGlmIG5vdCBvcHRpb25zLnNraXBfZ2VuZXJhdGVfYnVpbGRmaWxlczoKZGlm ZiAtLWdpdCBhL3NyY3BrZ3MvZWxlY3Ryb244L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tbGliY19t YWxsb2MucGF0Y2ggYi9zcmNwa2dzL2VsZWN0cm9uOC9maWxlcy9wYXRjaGVzL2Nocm9taXVtLWxp YmNfbWFsbG9jLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4y N2NkMmNlZmM0NgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZWxlY3Ryb244L2ZpbGVzL3Bh dGNoZXMvY2hyb21pdW0tbGliY19tYWxsb2MucGF0Y2gKQEAgLTAsMCArMSwyNiBAQAorLS0tIGEv YmFzZS9wcm9jZXNzL21lbW9yeV9saW51eC5jYy5vcmlnCTIwMTctMDktMTUgMDg6NDE6NDMuMDAw MDAwMDAwICswMDAwCisrKysgYi9iYXNlL3Byb2Nlc3MvbWVtb3J5X2xpbnV4LmNjCTIwMTctMDkt MTUgMDg6NDQ6MzkuODA0OTk1NDY5ICswMDAwCitAQCAtMjEsNiArMjEsMTIgQEAKKyAjaW5jbHVk ZSAidGhpcmRfcGFydHkvdGNtYWxsb2MvY2hyb21pdW0vc3JjL2dwZXJmdG9vbHMvdGNtYWxsb2Mu aCIKKyAjZW5kaWYKKyAKKysjaWYgZGVmaW5lZChMSUJDX0dMSUJDKQorK2V4dGVybiAiQyIgewor K2V4dGVybiB2b2lkICpfX2xpYmNfbWFsbG9jKHNpemVfdCBzaXplKTsKKyt9CisrI2VuZGlmCisr CisgbmFtZXNwYWNlIGJhc2UgeworIAorIHNpemVfdCBnX29vbV9zaXplID0gMFU7CistLS0gYS9i YXNlL3Byb2Nlc3MvbWVtb3J5X2xpbnV4LmNjLm9yaWcJMjAxNy0wOS0xNSAwODo0Njo1NS4wMDAw MDAwMDAgKzAwMDAKKysrKyBiL2Jhc2UvcHJvY2Vzcy9tZW1vcnlfbGludXguY2MJMjAxNy0wOS0x NSAwODo1MTozNC40MjIwMTY4NTggKzAwMDAKK0BAIC0xMDcsNyArMTA3LDcgQEAKKyAgICAgKCFk ZWZpbmVkKExJQkNfR0xJQkMpICYmICFkZWZpbmVkKFVTRV9UQ01BTExPQykpCisgICAqcmVzdWx0 ID0gbWFsbG9jKHNpemUpOworICNlbGlmIGRlZmluZWQoTElCQ19HTElCQykgJiYgIWRlZmluZWQo VVNFX1RDTUFMTE9DKQorLSAgKnJlc3VsdCA9IF9fbGliY19tYWxsb2Moc2l6ZSk7CisrICAqcmVz dWx0ID0gOjpfX2xpYmNfbWFsbG9jKHNpemUpOworICNlbGlmIGRlZmluZWQoVVNFX1RDTUFMTE9D KQorICAgKnJlc3VsdCA9IHRjX21hbGxvY19za2lwX25ld19oYW5kbGVyKHNpemUpOworICNlbmRp ZgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9lbGVjdHJvbjgvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS11 cHN0cmVhbS0wMDAxLWxvZ3MtSW1wbGVtZW50LXNpemUtbGltaXQtZm9yLXVzZXItbG9ncy5wYXRj aCBiL3NyY3BrZ3MvZWxlY3Ryb244L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tdXBzdHJlYW0tMDAw MS1sb2dzLUltcGxlbWVudC1zaXplLWxpbWl0LWZvci11c2VyLWxvZ3MucGF0Y2gKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjJkZDcyN2JlN2E4Ci0tLSAvZGV2L251bGwK KysrIGIvc3JjcGtncy9lbGVjdHJvbjgvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS11cHN0cmVhbS0w MDAxLWxvZ3MtSW1wbGVtZW50LXNpemUtbGltaXQtZm9yLXVzZXItbG9ncy5wYXRjaApAQCAtMCww ICsxLDI3NSBAQAorRnJvbSA1OTk3NTRlMTdjOTdiNzVkMWQ3YWM0YWFiMzdkYTQ0ODRhZWQwMDI0 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogSm9vbiBBaG4gPGpvb25idWdAY2hyb21p dW0ub3JnPgorRGF0ZTogU2F0LCAxOCBBcHIgMjAyMCAyMDowMzoxMiArMDAwMAorU3ViamVjdDog W1BBVENIXSBsb2dzOiBJbXBsZW1lbnQgc2l6ZSBsaW1pdCBmb3IgdXNlciBsb2dzCisKK0ltcG9z ZSAxTWlCIHNpemUgbGltaXQgZm9yIHVzZXIgbG9ncyBhbmQgcmVhZCB0aGUgbG9ncyBmcm9tIGJh Y2suCisKKyhjaGVycnkgcGlja2VkIGZyb20gY29tbWl0IGEwYjJlMGY4YmJhMjg5NDMyNTNlNmIz YWM0ZDExODI0MjE5YjYxNzgpCisKK0J1ZzogY2hyb21pdW06MTA2NjIwNQorQ2hhbmdlLUlkOiBJ NGM3YTJkZTZmOTNkODdlZTBhNWEyMjk1ZGQyNWIzMmVjMzcyYWM0NgorUmV2aWV3ZWQtb246IGh0 dHBzOi8vY2hyb21pdW0tcmV2aWV3Lmdvb2dsZXNvdXJjZS5jb20vYy9jaHJvbWl1bS9zcmMvKy8y MTMzNDI3CitSZXZpZXdlZC1ieTogQWhtZWQgRmFraHJ5IDxhZmFraHJ5QGNocm9taXVtLm9yZz4K K1Jldmlld2VkLWJ5OiBJYW4gQmFya2xleS1ZZXVuZyA8aWJ5QGNocm9taXVtLm9yZz4KK0NvbW1p dC1RdWV1ZTogSm9vbiBBaG4gPGpvb25idWdAY2hyb21pdW0ub3JnPgorQ3ItT3JpZ2luYWwtQ29t bWl0LVBvc2l0aW9uOiByZWZzL2hlYWRzL21hc3RlckB7Izc1NzY5M30KK1Jldmlld2VkLW9uOiBo dHRwczovL2Nocm9taXVtLXJldmlldy5nb29nbGVzb3VyY2UuY29tL2MvY2hyb21pdW0vc3JjLysv MjE1NTM2NAorUmV2aWV3ZWQtYnk6IEJlcm5pZSBUaG9tcHNvbiA8Ymh0aG9tcHNvbkBjaHJvbWl1 bS5vcmc+CitDb21taXQtUXVldWU6IEt5bGUgV2lsbGlhbXMgPGtkZ3dpbGxAY2hyb21pdW0ub3Jn PgorQ3ItQ29tbWl0LVBvc2l0aW9uOiByZWZzL2JyYW5jaC1oZWFkcy8zOTg3XzE1OEB7IzN9CitD ci1CcmFuY2hlZC1Gcm9tOiBhZjQ5Njg3NGQyN2M5MmExMzQxNWEzYTc3NmNjMjlmOWY1ZWU0ZTNl LXJlZnMvYnJhbmNoLWhlYWRzLzM5ODdAeyMxMDE5fQorQ3ItQnJhbmNoZWQtRnJvbTogYzRlOGRh OTg3MWNjMjY2YmU3NDQ4MWUyMTJmM2E1MjUyOTcyNTA5ZC1yZWZzL2hlYWRzL21hc3RlckB7Izcy MjI3NH0KKy0tLQorIGNocm9tZS9icm93c2VyL2Nocm9tZW9zL0JVSUxELmduICAgICAgICAgICAg ICB8ICAxICsKKyAuLi4vc3lzdGVtX2xvZ3MvZGVidWdfZGFlbW9uX2xvZ19zb3VyY2UuY2MgICAg fCA3NyArKysrKysrKysrKysrKy0KKyAuLi4vc3lzdGVtX2xvZ3MvZGVidWdfZGFlbW9uX2xvZ19z b3VyY2UuaCAgICAgfCAgOSArKworIC4uLi9kZWJ1Z19kYWVtb25fbG9nX3NvdXJjZV91bml0dGVz dC5jYyAgICAgICB8IDk1ICsrKysrKysrKysrKysrKysrKysKKyA0IGZpbGVzIGNoYW5nZWQsIDE3 OCBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQorIGNyZWF0ZSBtb2RlIDEwMDY0NCBjaHJv bWUvYnJvd3Nlci9jaHJvbWVvcy9zeXN0ZW1fbG9ncy9kZWJ1Z19kYWVtb25fbG9nX3NvdXJjZV91 bml0dGVzdC5jYworCitkaWZmIC0tZ2l0IGEvY2hyb21lL2Jyb3dzZXIvY2hyb21lb3MvQlVJTEQu Z24gYi9jaHJvbWUvYnJvd3Nlci9jaHJvbWVvcy9CVUlMRC5nbgoraW5kZXggN2UxN2ZhYjk2YzEu LjMyN2ZmYTBlYTRlIDEwMDY0NAorLS0tIGEvY2hyb21lL2Jyb3dzZXIvY2hyb21lb3MvQlVJTEQu Z24KKysrKyBiL2Nocm9tZS9icm93c2VyL2Nocm9tZW9zL0JVSUxELmduCitAQCAtMjk3MCw2ICsy OTcwLDcgQEAgc291cmNlX3NldCgidW5pdF90ZXN0cyIpIHsKKyAgICAgInN5c3RlbS9kZXZpY2Vf ZGlzYWJsaW5nX21hbmFnZXJfdW5pdHRlc3QuY2MiLAorICAgICAic3lzdGVtL3Byb2Nmc191dGls X3VuaXR0ZXN0LmNjIiwKKyAgICAgInN5c3RlbS91c2VyX3JlbW92YWxfbWFuYWdlcl91bml0dGVz dC5jYyIsCisrICAgICJzeXN0ZW1fbG9ncy9kZWJ1Z19kYWVtb25fbG9nX3NvdXJjZV91bml0dGVz dC5jYyIsCisgICAgICJzeXN0ZW1fbG9ncy9zaW5nbGVfZGVidWdfZGFlbW9uX2xvZ19zb3VyY2Vf dW5pdHRlc3QuY2MiLAorICAgICAic3lzdGVtX2xvZ3Mvc2luZ2xlX2xvZ19maWxlX2xvZ19zb3Vy Y2VfdW5pdHRlc3QuY2MiLAorICAgICAidGV0aGVyL3RldGhlcl9zZXJ2aWNlX3VuaXR0ZXN0LmNj IiwKK2RpZmYgLS1naXQgYS9jaHJvbWUvYnJvd3Nlci9jaHJvbWVvcy9zeXN0ZW1fbG9ncy9kZWJ1 Z19kYWVtb25fbG9nX3NvdXJjZS5jYyBiL2Nocm9tZS9icm93c2VyL2Nocm9tZW9zL3N5c3RlbV9s b2dzL2RlYnVnX2RhZW1vbl9sb2dfc291cmNlLmNjCitpbmRleCA3Y2Q3ZTgxZjAxZC4uMzg1Mzcx OGZlZjMgMTAwNjQ0CistLS0gYS9jaHJvbWUvYnJvd3Nlci9jaHJvbWVvcy9zeXN0ZW1fbG9ncy9k ZWJ1Z19kYWVtb25fbG9nX3NvdXJjZS5jYworKysrIGIvY2hyb21lL2Jyb3dzZXIvY2hyb21lb3Mv c3lzdGVtX2xvZ3MvZGVidWdfZGFlbW9uX2xvZ19zb3VyY2UuY2MKK0BAIC0zMSw2ICszMSw3IEBA IG5hbWVzcGFjZSB7CisgY29uc3RleHByIGNoYXIga05vdEF2YWlsYWJsZVtdID0gIjxub3QgYXZh aWxhYmxlPiI7CisgY29uc3RleHByIGNoYXIga1JvdXRlc0tleU5hbWVbXSA9ICJyb3V0ZXMiOwor IGNvbnN0ZXhwciBjaGFyIGtOZXR3b3JrU3RhdHVzS2V5TmFtZVtdID0gIm5ldHdvcmstc3RhdHVz IjsKKytjb25zdGV4cHIgY2hhciBrTG9nVHJ1bmNhdGVkW10gPSAiPGVhcmxpZXIgbG9ncyB0cnVu Y2F0ZWQ+XG4iOworIAorIC8vIExpc3Qgb2YgdXNlciBsb2cgZmlsZXMgdGhhdCBDaHJvbWUgcmVh ZHMgZGlyZWN0bHkgYXMgdGhlc2UgbG9ncyBhcmUgZ2VuZXJhdGVkCisgLy8gYnkgQ2hyb21lIGl0 c2VsZi4KK0BAIC00OCw2ICs0OSw2OCBAQCBjb25zdGV4cHIgc3RydWN0IFVzZXJMb2dzIHsKKyAg ICAgeyJsb2dvdXQtdGltZXMiLCAibG9nb3V0LXRpbWVzIn0sCisgfTsKKyAKKysvLyBCdWZmZXIg c2l6ZSBmb3IgdXNlciBsb2dzIGluIGJ5dGVzLiBHaXZlbiB0aGF0IG1heGltdW0gZmVlZGJhY2sg cmVwb3J0IHNpemUKKysvLyBpcyB+N00gYW5kIHRoYXQgbWFqb3JpdHkgb2YgbG9nIGZpbGVzIGFy ZSB1bmRlciAxTSwgd2Ugc2V0IGEgcGVyLWZpbGUgbGltaXQKKysvLyBvZiAxTWlCLgorK2NvbnN0 IGludDY0X3Qga01heExvZ1NpemUgPSAxMDI0ICogMTAyNDsKKysKKyt9ICAvLyBuYW1lc3BhY2UK KysKKytib29sIFJlYWRFbmRPZkZpbGUoY29uc3QgYmFzZTo6RmlsZVBhdGgmIHBhdGgsCisrICAg ICAgICAgICAgICAgICAgIHN0ZDo6c3RyaW5nKiBjb250ZW50cywKKysgICAgICAgICAgICAgICAg ICAgc2l6ZV90IG1heF9zaXplKSB7CisrICBpZiAoIWNvbnRlbnRzKSB7CisrICAgIExPRyhFUlJP UikgPDwgImNvbnRlbnRzIGJ1ZmZlciBpcyBudWxsLiI7CisrICAgIHJldHVybiBmYWxzZTsKKysg IH0KKysKKysgIGlmIChwYXRoLlJlZmVyZW5jZXNQYXJlbnQoKSkgeworKyAgICBMT0coRVJST1Ip IDw8ICJSZWFkRW5kT2ZGaWxlIGNhbid0IGJlIGNhbGxlZCBvbiBmaWxlIHBhdGhzIHdpdGggcGFy ZW50ICIKKysgICAgICAgICAgICAgICAgICAicmVmZXJlbmNlcy4iOworKyAgICByZXR1cm4gZmFs c2U7CisrICB9CisrCisrICBiYXNlOjpTY29wZWRGSUxFIGZwKGJhc2U6Ok9wZW5GaWxlKHBhdGgs ICJyIikpOworKyAgaWYgKCFmcCkgeworKyAgICBQTE9HKEVSUk9SKSA8PCAiRmFpbGVkIHRvIG9w ZW4gZmlsZSAiIDw8IHBhdGgudmFsdWUoKTsKKysgICAgcmV0dXJuIGZhbHNlOworKyAgfQorKwor KyAgc3RkOjp1bmlxdWVfcHRyPGNoYXJbXT4gY2h1bmsobmV3IGNoYXJbbWF4X3NpemVdKTsKKysg IHN0ZDo6dW5pcXVlX3B0cjxjaGFyW10+IGxhc3RfY2h1bmsobmV3IGNoYXJbbWF4X3NpemVdKTsK KysgIGNodW5rWzBdID0gJ1wwJzsKKysgIGxhc3RfY2h1bmtbMF0gPSAnXDAnOworKworKyAgc2l6 ZV90IGJ5dGVzX3JlYWQgPSAwOworKworKyAgLy8gU2luY2UgbW9zdCBsb2dzIGFyZSBub3Qgc2Vl a2FibGUsIHJlYWQgdW50aWwgdGhlIGVuZCBrZWVwaW5nIHRyYWNraW5nIG9mCisrICAvLyBsYXN0 IHR3byBjaHVua3MuCisrICB3aGlsZSAoKGJ5dGVzX3JlYWQgPSBmcmVhZChjaHVuay5nZXQoKSwg MSwgbWF4X3NpemUsIGZwLmdldCgpKSkgPT0gbWF4X3NpemUpIHsKKysgICAgbGFzdF9jaHVuay5z d2FwKGNodW5rKTsKKysgICAgY2h1bmtbMF0gPSAnXDAnOworKyAgfQorKworKyAgaWYgKGxhc3Rf Y2h1bmtbMF0gPT0gJ1wwJykgeworKyAgICAvLyBGaWxlIGlzIHNtYWxsZXIgdGhhbiBtYXhfc2l6 ZQorKyAgICBjb250ZW50cy0+YXNzaWduKGNodW5rLmdldCgpLCBieXRlc19yZWFkKTsKKysgIH0g ZWxzZSBpZiAoYnl0ZXNfcmVhZCA9PSAwKSB7CisrICAgIC8vIEZpbGUgaXMgZXhhY3RseSBtYXhf c2l6ZSBvciBhIG11bHRpcGxlIG9mIG1heF9zaXplCisrICAgIGNvbnRlbnRzLT5hc3NpZ24obGFz dF9jaHVuay5nZXQoKSwgbWF4X3NpemUpOworKyAgfSBlbHNlIHsKKysgICAgLy8gTnVtYmVyIG9m IGJ5dGVzIHRvIGtlZXAgZnJvbSBsYXN0X2NodW5rCisrICAgIHNpemVfdCBieXRlc19mcm9tX2xh c3QgPSBtYXhfc2l6ZSAtIGJ5dGVzX3JlYWQ7CisrCisrICAgIC8vIFNoaWZ0IGxlZnQgbGFzdF9j aHVuayBieSBzaXplIG9mIGNodW5rIGFuZCBmaXQgaXQgaW4gdGhlIGJhY2sgb2YKKysgICAgLy8g bGFzdF9jaHVuay4KKysgICAgbWVtbW92ZShsYXN0X2NodW5rLmdldCgpLCBsYXN0X2NodW5rLmdl dCgpICsgYnl0ZXNfcmVhZCwgYnl0ZXNfZnJvbV9sYXN0KTsKKysgICAgbWVtY3B5KGxhc3RfY2h1 bmsuZ2V0KCkgKyBieXRlc19mcm9tX2xhc3QsIGNodW5rLmdldCgpLCBieXRlc19yZWFkKTsKKysK KysgICAgY29udGVudHMtPmFzc2lnbihsYXN0X2NodW5rLmdldCgpLCBtYXhfc2l6ZSk7CisrICB9 CisrCisrICByZXR1cm4gdHJ1ZTsKKyt9CisrCisgLy8gUmVhZHMgdGhlIGNvbnRlbnRzIG9mIHRo ZSB1c2VyIGxvZyBmaWxlcyBsaXN0ZWQgaW4gfGtVc2VyTG9nc3wgYW5kIGFkZHMgdGhlbQorIC8v IHRvIHRoZSB8cmVzcG9uc2V8IHBhcmFtZXRlci4KKyB2b2lkIFJlYWRVc2VyTG9nRmlsZXMoY29u c3Qgc3RkOjp2ZWN0b3I8YmFzZTo6RmlsZVBhdGg+JiBwcm9maWxlX2RpcnMsCitAQCAtNTYsOCAr MTE5LDE2IEBAIHZvaWQgUmVhZFVzZXJMb2dGaWxlcyhjb25zdCBzdGQ6OnZlY3RvcjxiYXNlOjpG aWxlUGF0aD4mIHByb2ZpbGVfZGlycywKKyAgICAgc3RkOjpzdHJpbmcgcHJvZmlsZV9wcmVmaXgg PSAiUHJvZmlsZVsiICsgYmFzZTo6TnVtYmVyVG9TdHJpbmcoaSkgKyAiXSAiOworICAgICBmb3Ig KGNvbnN0IGF1dG8mIGxvZyA6IGtVc2VyTG9ncykgeworICAgICAgIHN0ZDo6c3RyaW5nIHZhbHVl OworLSAgICAgIGNvbnN0IGJvb2wgcmVhZF9zdWNjZXNzID0gYmFzZTo6UmVhZEZpbGVUb1N0cmlu ZygKKy0gICAgICAgICAgcHJvZmlsZV9kaXJzW2ldLkFwcGVuZChsb2cubG9nX2ZpbGVfcmVsYXRp dmVfcGF0aCksICZ2YWx1ZSk7CisrICAgICAgY29uc3QgYm9vbCByZWFkX3N1Y2Nlc3MgPQorKyAg ICAgICAgICBSZWFkRW5kT2ZGaWxlKHByb2ZpbGVfZGlyc1tpXS5BcHBlbmQobG9nLmxvZ19maWxl X3JlbGF0aXZlX3BhdGgpLAorKyAgICAgICAgICAgICAgICAgICAgICAgICZ2YWx1ZSwga01heExv Z1NpemUpOworKworKyAgICAgIGlmIChyZWFkX3N1Y2Nlc3MgJiYgdmFsdWUubGVuZ3RoKCkgPT0g a01heExvZ1NpemUpIHsKKysgICAgICAgIHZhbHVlLnJlcGxhY2UoMCwgc3RybGVuKGtMb2dUcnVu Y2F0ZWQpLCBrTG9nVHJ1bmNhdGVkKTsKKysKKysgICAgICAgIExPRyhXQVJOSU5HKSA8PCAiTGFy Z2UgbG9nIGZpbGUgd2FzIGxpa2VseSB0cnVuY2F0ZWQ6ICIKKysgICAgICAgICAgICAgICAgICAg ICA8PCBsb2cubG9nX2ZpbGVfcmVsYXRpdmVfcGF0aDsKKysgICAgICB9CisgCisgICAgICAgcmVz cG9uc2UtPmVtcGxhY2UoCisgICAgICAgICAgIHByb2ZpbGVfcHJlZml4ICsgbG9nLmxvZ19rZXks CitAQCAtNjYsOCArMTM3LDYgQEAgdm9pZCBSZWFkVXNlckxvZ0ZpbGVzKGNvbnN0IHN0ZDo6dmVj dG9yPGJhc2U6OkZpbGVQYXRoPiYgcHJvZmlsZV9kaXJzLAorICAgfQorIH0KKyAKKy19ICAvLyBu YW1lc3BhY2UKKy0KKyBEZWJ1Z0RhZW1vbkxvZ1NvdXJjZTo6RGVidWdEYWVtb25Mb2dTb3VyY2Uo Ym9vbCBzY3J1YikKKyAgICAgOiBTeXN0ZW1Mb2dzU291cmNlKCJEZWJ1Z0RlbW9uIiksCisgICAg ICAgcmVzcG9uc2VfKG5ldyBTeXN0ZW1Mb2dzUmVzcG9uc2UoKSksCitkaWZmIC0tZ2l0IGEvY2hy b21lL2Jyb3dzZXIvY2hyb21lb3Mvc3lzdGVtX2xvZ3MvZGVidWdfZGFlbW9uX2xvZ19zb3VyY2Uu aCBiL2Nocm9tZS9icm93c2VyL2Nocm9tZW9zL3N5c3RlbV9sb2dzL2RlYnVnX2RhZW1vbl9sb2df c291cmNlLmgKK2luZGV4IDAwOGZjMDRjZmIwLi5iNDIyOTgzM2Y1MiAxMDA2NDQKKy0tLSBhL2No cm9tZS9icm93c2VyL2Nocm9tZW9zL3N5c3RlbV9sb2dzL2RlYnVnX2RhZW1vbl9sb2dfc291cmNl LmgKKysrKyBiL2Nocm9tZS9icm93c2VyL2Nocm9tZW9zL3N5c3RlbV9sb2dzL2RlYnVnX2RhZW1v bl9sb2dfc291cmNlLmgKK0BAIC0xOCw2ICsxOCwxNSBAQAorIAorIG5hbWVzcGFjZSBzeXN0ZW1f bG9ncyB7CisgCisrLy8gUmVhZHMgdGhlIGZpbGUgYXQgfHBhdGh8IGludG8gfGNvbnRlbnRzfCBh bmQgcmV0dXJucyB0cnVlIG9uIHN1Y2Nlc3MgYW5kCisrLy8gZmFsc2Ugb24gZXJyb3IuIEZvciBz ZWN1cml0eSByZWFzb25zIGEgfHBhdGh8IGNvbnRhaW5pbmcgcGF0aCB0cmF2ZXJzYWwKKysvLyBj b21wb25lbnRzICgnLi4nKSBpcyB0cmVhdGVkIGFzIGEgcmVhZCBlcnJvciBhbmQgfGNvbnRlbnRz fCBpcyBub3QgY2hhbmdlZC4KKysvLyBXaGVuIHRoZSBmaWxlIGV4Y2VlZHMgfG1heF9zaXplfCBm dW5jdGlvbiByZXR1cm5zIHRydWUgd2l0aCB0aGUgbGFzdAorKy8vIHxtYXhfc2l6ZXwgYnl0ZXMg ZnJvbSB0aGUgZmlsZS4KKytib29sIFJlYWRFbmRPZkZpbGUoY29uc3QgYmFzZTo6RmlsZVBhdGgm IHBhdGgsCisrICAgICAgICAgICAgICAgICAgIHN0ZDo6c3RyaW5nKiBjb250ZW50cywKKysgICAg ICAgICAgICAgICAgICAgc2l6ZV90IG1heF9zaXplKTsKKysKKyAvLyBHYXRoZXJzIGxvZyBkYXRh IGZyb20gRGVidWcgRGFlbW9uLgorIGNsYXNzIERlYnVnRGFlbW9uTG9nU291cmNlIDogcHVibGlj IFN5c3RlbUxvZ3NTb3VyY2UgeworICBwdWJsaWM6CitkaWZmIC0tZ2l0IGEvY2hyb21lL2Jyb3dz ZXIvY2hyb21lb3Mvc3lzdGVtX2xvZ3MvZGVidWdfZGFlbW9uX2xvZ19zb3VyY2VfdW5pdHRlc3Qu Y2MgYi9jaHJvbWUvYnJvd3Nlci9jaHJvbWVvcy9zeXN0ZW1fbG9ncy9kZWJ1Z19kYWVtb25fbG9n X3NvdXJjZV91bml0dGVzdC5jYworbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAw MDAwLi4yMTE2YjljYzJiMworLS0tIC9kZXYvbnVsbAorKysrIGIvY2hyb21lL2Jyb3dzZXIvY2hy b21lb3Mvc3lzdGVtX2xvZ3MvZGVidWdfZGFlbW9uX2xvZ19zb3VyY2VfdW5pdHRlc3QuY2MKK0BA IC0wLDAgKzEsOTUgQEAKKysvLyBDb3B5cmlnaHQgKGMpIDIwMjAgVGhlIENocm9taXVtIEF1dGhv cnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisrLy8gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMg Z292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorKy8vIGZvdW5kIGlu IHRoZSBMSUNFTlNFIGZpbGUuCisrCisrI2luY2x1ZGUgImNocm9tZS9icm93c2VyL2Nocm9tZW9z L3N5c3RlbV9sb2dzL2RlYnVnX2RhZW1vbl9sb2dfc291cmNlLmgiCisrCisrI2luY2x1ZGUgPHN0 cmluZz4KKysKKysjaW5jbHVkZSAiYmFzZS9maWxlcy9maWxlX3V0aWwuaCIKKysjaW5jbHVkZSAi YmFzZS9maWxlcy9zY29wZWRfZmlsZS5oIgorKyNpbmNsdWRlICJiYXNlL2ZpbGVzL3Njb3BlZF90 ZW1wX2Rpci5oIgorKyNpbmNsdWRlICJiYXNlL3JhbmRfdXRpbC5oIgorKyNpbmNsdWRlICJ0ZXN0 aW5nL2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvZ3Rlc3QuaCIKKysKKytuYW1lc3BhY2Ugc3lzdGVtX2xv Z3MgeworKworK2NsYXNzIERlYnVnRGFlbW9uTG9nU291cmNlVGVzdCA6IHB1YmxpYyA6OnRlc3Rp bmc6OlRlc3QgeworKyBwdWJsaWM6CisrICB2b2lkIFNldFVwKCkgb3ZlcnJpZGUgeyBBU1NFUlRf VFJVRSh0ZW1wX2Rpcl8uQ3JlYXRlVW5pcXVlVGVtcERpcigpKTsgfQorKworKyAgYmFzZTo6U2Nv cGVkVGVtcERpciB0ZW1wX2Rpcl87CisrfTsKKysKKytURVNUX0YoRGVidWdEYWVtb25Mb2dTb3Vy Y2VUZXN0LCBSZWFkRW5kT2ZGaWxlRW1wdHkpIHsKKysgIHN0ZDo6c3RyaW5nIHJlYWRfZGF0YSgi c2hvdWxkIGJlIGVyYXNlZCIpOworKworKyAgYmFzZTo6RmlsZVBhdGggZmlsZV9wYXRoID0gdGVt cF9kaXJfLkdldFBhdGgoKS5BcHBlbmQoInRlc3RfZW1wdHkudHh0Iik7CisrCisrICBXcml0ZUZp bGUoZmlsZV9wYXRoLCAiIiwgMCk7CisrCisrICBFWFBFQ1RfVFJVRShSZWFkRW5kT2ZGaWxlKGZp bGVfcGF0aCwgJnJlYWRfZGF0YSwgMTApKTsKKysgIEVYUEVDVF9FUSgwdSwgcmVhZF9kYXRhLmxl bmd0aCgpKTsKKyt9CisrCisrVEVTVF9GKERlYnVnRGFlbW9uTG9nU291cmNlVGVzdCwgUmVhZEVu ZE9mRmlsZVNtYWxsKSB7CisrICBjb25zdCBjaGFyIGtUZXN0RGF0YVtdID0gIjAxMjM0NTY3ODki OyAgLy8gTGVuZ3RoIG9mIDEwCisrICBzdGQ6OnN0cmluZyByZWFkX2RhdGE7CisrCisrICBiYXNl OjpGaWxlUGF0aCBmaWxlX3BhdGggPSB0ZW1wX2Rpcl8uR2V0UGF0aCgpLkFwcGVuZCgidGVzdC50 eHQiKTsKKysKKysgIFdyaXRlRmlsZShmaWxlX3BhdGgsIGtUZXN0RGF0YSwgc3RybGVuKGtUZXN0 RGF0YSkpOworKworKyAgcmVhZF9kYXRhLmNsZWFyKCk7CisrICBFWFBFQ1RfVFJVRShSZWFkRW5k T2ZGaWxlKGZpbGVfcGF0aCwgJnJlYWRfZGF0YSwgMTUpKTsKKysgIEVYUEVDVF9FUShrVGVzdERh dGEsIHJlYWRfZGF0YSk7CisrCisrICByZWFkX2RhdGEuY2xlYXIoKTsKKysgIEVYUEVDVF9UUlVF KFJlYWRFbmRPZkZpbGUoZmlsZV9wYXRoLCAmcmVhZF9kYXRhLCAxMCkpOworKyAgRVhQRUNUX0VR KGtUZXN0RGF0YSwgcmVhZF9kYXRhKTsKKysKKysgIHJlYWRfZGF0YS5jbGVhcigpOworKyAgRVhQ RUNUX1RSVUUoUmVhZEVuZE9mRmlsZShmaWxlX3BhdGgsICZyZWFkX2RhdGEsIDIpKTsKKysgIEVY UEVDVF9FUSgiODkiLCByZWFkX2RhdGEpOworKworKyAgcmVhZF9kYXRhLmNsZWFyKCk7CisrICBF WFBFQ1RfVFJVRShSZWFkRW5kT2ZGaWxlKGZpbGVfcGF0aCwgJnJlYWRfZGF0YSwgMykpOworKyAg RVhQRUNUX0VRKCI3ODkiLCByZWFkX2RhdGEpOworKworKyAgcmVhZF9kYXRhLmNsZWFyKCk7Cisr ICBFWFBFQ1RfVFJVRShSZWFkRW5kT2ZGaWxlKGZpbGVfcGF0aCwgJnJlYWRfZGF0YSwgNSkpOwor KyAgRVhQRUNUX0VRKCI1Njc4OSIsIHJlYWRfZGF0YSk7CisrfQorKworK1RFU1RfRihEZWJ1Z0Rh ZW1vbkxvZ1NvdXJjZVRlc3QsIFJlYWRFbmRPZkZpbGVNZWRpdW0pIHsKKysgIHN0ZDo6c3RyaW5n IHRlc3RfZGF0YSA9IGJhc2U6OlJhbmRCeXRlc0FzU3RyaW5nKDEwMDAwKTsgIC8vIDEwS0IgZGF0 YQorKyAgc3RkOjpzdHJpbmcgcmVhZF9kYXRhOworKworKyAgY29uc3Qgc2l6ZV90IHRlc3Rfc2l6 ZSA9IHRlc3RfZGF0YS5sZW5ndGgoKTsKKysKKysgIGJhc2U6OkZpbGVQYXRoIGZpbGVfcGF0aCA9 IHRlbXBfZGlyXy5HZXRQYXRoKCkuQXBwZW5kKCJ0ZXN0X21lZC50eHQiKTsKKysKKysgIFdyaXRl RmlsZShmaWxlX3BhdGgsIHRlc3RfZGF0YS5kYXRhKCksIHRlc3Rfc2l6ZSk7CisrCisrICByZWFk X2RhdGEuY2xlYXIoKTsKKysgIEVYUEVDVF9UUlVFKFJlYWRFbmRPZkZpbGUoZmlsZV9wYXRoLCAm cmVhZF9kYXRhLCAxNTAwMCkpOworKyAgRVhQRUNUX0VRKHRlc3RfZGF0YSwgcmVhZF9kYXRhKTsK KysKKysgIHJlYWRfZGF0YS5jbGVhcigpOworKyAgRVhQRUNUX1RSVUUoUmVhZEVuZE9mRmlsZShm aWxlX3BhdGgsICZyZWFkX2RhdGEsIDEwMDAwKSk7CisrICBFWFBFQ1RfRVEodGVzdF9kYXRhLCBy ZWFkX2RhdGEpOworKworKyAgcmVhZF9kYXRhLmNsZWFyKCk7CisrICBFWFBFQ1RfVFJVRShSZWFk RW5kT2ZGaWxlKGZpbGVfcGF0aCwgJnJlYWRfZGF0YSwgMTAwMCkpOworKyAgRVhQRUNUX0VRKHRl c3RfZGF0YS5zdWJzdHIodGVzdF9zaXplIC0gMTAwMCwgMTAwMCksIHJlYWRfZGF0YSk7CisrCisr ICByZWFkX2RhdGEuY2xlYXIoKTsKKysgIEVYUEVDVF9UUlVFKFJlYWRFbmRPZkZpbGUoZmlsZV9w YXRoLCAmcmVhZF9kYXRhLCAzMDApKTsKKysgIEVYUEVDVF9FUSh0ZXN0X2RhdGEuc3Vic3RyKHRl c3Rfc2l6ZSAtIDMwMCwgMzAwKSwgcmVhZF9kYXRhKTsKKysKKysgIHJlYWRfZGF0YS5jbGVhcigp OworKyAgRVhQRUNUX1RSVUUoUmVhZEVuZE9mRmlsZShmaWxlX3BhdGgsICZyZWFkX2RhdGEsIDE3 NSkpOworKyAgRVhQRUNUX0VRKHRlc3RfZGF0YS5zdWJzdHIodGVzdF9zaXplIC0gMTc1LCAxNzUp LCByZWFkX2RhdGEpOworK30KKysKKyt9ICAvLyBuYW1lc3BhY2Ugc3lzdGVtX2xvZ3MKKy0tIAor Mi4yNi4yCisKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZWxlY3Ryb244L2ZpbGVzL3BhdGNoZXMvZWxl Y3Ryb24tQWRkLWEtc2NyaXB0LXRvLWxpc3QtcGF0Y2gtdGFyZ2V0cy5wYXRjaC5wYXRjaCBiL3Ny Y3BrZ3MvZWxlY3Ryb244L2ZpbGVzL3BhdGNoZXMvZWxlY3Ryb24tQWRkLWEtc2NyaXB0LXRvLWxp c3QtcGF0Y2gtdGFyZ2V0cy5wYXRjaC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAwMC4uOTE2ZGJhOWRjM2IKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2VsZWN0 cm9uOC9maWxlcy9wYXRjaGVzL2VsZWN0cm9uLUFkZC1hLXNjcmlwdC10by1saXN0LXBhdGNoLXRh cmdldHMucGF0Y2gucGF0Y2gKQEAgLTAsMCArMSw0MiBAQAorRnJvbSBmZjQxMjJmMjM2YjcwYzI3 MmM3NDZkMGMzMzZjZGJkNTg4ZDc4Y2QxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTog RWx2aXMgUHJhbnNrZXZpY2h1cyA8ZWx2aXNAbWFnaWMuaW8+CitEYXRlOiBUaHUsIDEyIERlYyAy MDE5IDE2OjEyOjE4IC0wNTAwCitTdWJqZWN0OiBbUEFUQ0hdIEFkZCBhIHNjcmlwdCB0byBsaXN0 IHBhdGNoIHRhcmdldHMKKworLS0tCisgc2NyaXB0L2xpc3RfcGF0Y2hfdGFyZ2V0cy5weSB8IDIz ICsrKysrKysrKysrKysrKysrKysrKysrCisgMSBmaWxlIGNoYW5nZWQsIDIzIGluc2VydGlvbnMo KykKKyBjcmVhdGUgbW9kZSAxMDA3NTUgc2NyaXB0L2xpc3RfcGF0Y2hfdGFyZ2V0cy5weQorCitk aWZmIC0tZ2l0IGEvc2NyaXB0L2xpc3RfcGF0Y2hfdGFyZ2V0cy5weSBiL3NjcmlwdC9saXN0X3Bh dGNoX3RhcmdldHMucHkKK25ldyBmaWxlIG1vZGUgMTAwNzU1CitpbmRleCAwMDAwMDAwMDAuLjU1 MTczYmFjOQorLS0tIC9kZXYvbnVsbAorKysrIGIvc2NyaXB0L2xpc3RfcGF0Y2hfdGFyZ2V0cy5w eQorQEAgLTAsMCArMSwyMyBAQAorKyMhL3Vzci9iaW4vZW52IHB5dGhvbgorKworK2ltcG9ydCBh cmdwYXJzZQorK2ltcG9ydCBqc29uCisrCisrCisrZGVmIHBhcnNlX2FyZ3MoKToKKysgIHBhcnNl ciA9IGFyZ3BhcnNlLkFyZ3VtZW50UGFyc2VyKGRlc2NyaXB0aW9uPSdBcHBseSBFbGVjdHJvbiBw YXRjaGVzJykKKysgIHBhcnNlci5hZGRfYXJndW1lbnQoJ2NvbmZpZycsIG5hcmdzPScrJywKKysg ICAgICAgICAgICAgICAgICAgICAgdHlwZT1hcmdwYXJzZS5GaWxlVHlwZSgncicpLAorKyAgICAg ICAgICAgICAgICAgICAgICBoZWxwPSdwYXRjaGVzXCcgY29uZmlnKHMpIGluIHRoZSBKU09OIGZv cm1hdCcpCisrICByZXR1cm4gcGFyc2VyLnBhcnNlX2FyZ3MoKQorKworKworK2RlZiBtYWluKCk6 CisrICBjb25maWdzID0gcGFyc2VfYXJncygpLmNvbmZpZworKyAgZm9yIGNvbmZpZ19qc29uIGlu IGNvbmZpZ3M6CisrICAgIGZvciBwYXRjaF9kaXIsIHJlcG8gaW4ganNvbi5sb2FkKGNvbmZpZ19q c29uKS5pdGVyaXRlbXMoKToKKysgICAgICBwcmludChyZXBvKQorKworKworK2lmIF9fbmFtZV9f ID09ICdfX21haW5fXyc6CisrICBtYWluKCkKKy0tIAorMi4yMy4wCisKZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MvZWxlY3Ryb244L2ZpbGVzL3BhdGNoZXMvZWxlY3Ryb24tQnVpbGQtZml4ZXMucGF0Y2gu cGF0Y2ggYi9zcmNwa2dzL2VsZWN0cm9uOC9maWxlcy9wYXRjaGVzL2VsZWN0cm9uLUJ1aWxkLWZp eGVzLnBhdGNoLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4y OThiZmE5YmNiMgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZWxlY3Ryb244L2ZpbGVzL3Bh dGNoZXMvZWxlY3Ryb24tQnVpbGQtZml4ZXMucGF0Y2gucGF0Y2gKQEAgLTAsMCArMSw0NyBAQAor ZGlmZiAtLWdpdCBhL2J1aWxkL2FyZ3MvcmVsZWFzZS5nbiBiL2J1aWxkL2FyZ3MvcmVsZWFzZS5n bgoraW5kZXggZTUwMTdmNmUxLi41OTIwN2IzODkgMTAwNjQ0CistLS0gYS9idWlsZC9hcmdzL3Jl bGVhc2UuZ24KKysrKyBiL2J1aWxkL2FyZ3MvcmVsZWFzZS5nbgorQEAgLTEsNiArMSw0IEBACisg aW1wb3J0KCJhbGwuZ24iKQorLWlzX2NvbXBvbmVudF9idWlsZCA9IGZhbHNlCistaXNfb2ZmaWNp YWxfYnVpbGQgPSB0cnVlCisgCisgIyBUaGlzIG1heSBiZSBndWFyZGVkIGJlaGluZCBpc19jaHJv bWVfYnJhbmRlZCBhbG9uZ3NpZGUKKyAjIHByb3ByaWV0YXJ5X2NvZGVjcyBodHRwczovL3dlYnJ0 Yy1yZXZpZXcuZ29vZ2xlc291cmNlLmNvbS9jL3NyYy8rLzM2MzIxLAorQEAgLTgsOSArNiwzIEBA IGlzX29mZmljaWFsX2J1aWxkID0gdHJ1ZQorICMgVGhlIGluaXRpYWxpemF0aW9uIG9mIHRoZSBk ZWNvZGVyIGRlcGVuZHMgb24gd2hldGhlciBmZm1wZWcgaGFzCisgIyBiZWVuIGJ1aWx0IHdpdGgg SC4yNjQgc3VwcG9ydC4KKyBydGNfdXNlX2gyNjQgPSBwcm9wcmlldGFyeV9jb2RlY3MKKy0KKy0j IEJ5IGRlZmF1bHQsIEVsZWN0cm9uIGJ1aWxkcyBmZm1wZWcgd2l0aCBwcm9wcmlldGFyeSBjb2Rl Y3MgZW5hYmxlZC4gSW4gb3JkZXIKKy0jIHRvIGZhY2lsaXRhdGUgdXNlcnMgd2hvIGRvbid0IHdh bnQgdG8gc2hpcCBwcm9wcmlldGFyeSBjb2RlY3MgaW4gZmZtcGVnLCBvcgorLSMgd2hvIGhhdmUg YW4gTEdQTCByZXF1aXJlbWVudCB0byBzaGlwIGZmbXBlZyBhcyBhIGR5bmFtaWNhbGx5IGxpbmtl ZCBsaWJyYXJ5LAorLSMgd2UgYnVpbGQgZmZtcGVnIGFzIGEgc2hhcmVkIGxpYnJhcnkuCistaXNf Y29tcG9uZW50X2ZmbXBlZyA9IHRydWUKK2RpZmYgLS1naXQgYS9idWlsZC9ucG0uZ25pIGIvYnVp bGQvbnBtLmduaQoraW5kZXggYTE5ODdkMDk1Li5mYjMzYTE0YzMgMTAwNjQ0CistLS0gYS9idWls ZC9ucG0uZ25pCisrKysgYi9idWlsZC9ucG0uZ25pCitAQCAtMzUsNyArMzUsNiBAQCB0ZW1wbGF0 ZSgibnBtX2FjdGlvbiIpIHsKKyAgICAgaWYgKCFkZWZpbmVkKGRlcHMpKSB7CisgICAgICAgZGVw cyA9IFtdCisgICAgIH0KKy0gICAgZGVwcyArPSBbICI6bnBtX3ByZV9mbGlnaHRfIiArIHRhcmdl dF9uYW1lIF0KKyAKKyAgICAgc2NyaXB0ID0gIi8vZWxlY3Ryb24vYnVpbGQvbnBtLXJ1bi5weSIK KyAgICAgYXJncyA9IFsKK2RpZmYgLS1naXQgYS9wYXRjaGVzL25vZGUvZml4X2FkZF9kZWZhdWx0 X3ZhbHVlc19mb3JfZW5hYmxlX2x0b19hbmRfYnVpbGRfdjhfd2l0aF9nbl9pbi5wYXRjaCBiL3Bh dGNoZXMvbm9kZS9maXhfYWRkX2RlZmF1bHRfdmFsdWVzX2Zvcl9lbmFibGVfbHRvX2FuZF9idWls ZF92OF93aXRoX2duX2luLnBhdGNoCitpbmRleCAwZGM5OTE2YmUuLjdlYWE0NmJmNSAxMDA2NDQK Ky0tLSBhL3BhdGNoZXMvbm9kZS9maXhfYWRkX2RlZmF1bHRfdmFsdWVzX2Zvcl9lbmFibGVfbHRv X2FuZF9idWlsZF92OF93aXRoX2duX2luLnBhdGNoCisrKysgYi9wYXRjaGVzL25vZGUvZml4X2Fk ZF9kZWZhdWx0X3ZhbHVlc19mb3JfZW5hYmxlX2x0b19hbmRfYnVpbGRfdjhfd2l0aF9nbl9pbi5w YXRjaAorQEAgLTMwLDcgKzMwLDcgQEAKKyArICAgICMgdGhlc2UgdmFsdWVzIGJlaW5nIGFjY3Vy YXRlLgorICsgICAgJ2J1aWxkX3Y4X3dpdGhfZ24nOiAnZmFsc2UnLAorICsgICAgJ2VuYWJsZV9s dG8lJzogJ2ZhbHNlJywKKy0rCisrKyAgICAnb3BlbnNzbF9maXBzJzogJycsCisgICAgICAnY29u ZGl0aW9ucyc6IFsKKyAgICAgICAgWyd0YXJnZXRfYXJjaD09ImFybTY0IicsIHsKKyAgICAgICAg ICAjIERpc2FibGVkIHBlbmRpbmcgaHR0cHM6Ly9naXRodWIuY29tL25vZGVqcy9ub2RlL2lzc3Vl cy8yMzkxMy4KKwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9lbGVjdHJvbjgvZmlsZXMvcGF0Y2hlcy9l bGVjdHJvbi1kb250LWFzc3VtZS1weXRob24taXMtcHl0aG9uMi5wYXRjaCBiL3NyY3BrZ3MvZWxl Y3Ryb244L2ZpbGVzL3BhdGNoZXMvZWxlY3Ryb24tZG9udC1hc3N1bWUtcHl0aG9uLWlzLXB5dGhv bjIucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmZiMTM0NzQ4 MDI1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9lbGVjdHJvbjgvZmlsZXMvcGF0Y2hlcy9l bGVjdHJvbi1kb250LWFzc3VtZS1weXRob24taXMtcHl0aG9uMi5wYXRjaApAQCAtMCwwICsxLDE3 IEBACistLS0gYS9idWlsZC96aXAucHkub3JpZwkyMDIwLTA0LTI3IDE3OjU5OjUzLjQ5OTI4MTY2 NyArMDIwMAorKysrIGIvYnVpbGQvemlwLnB5CTIwMjAtMDQtMjcgMTc6NTk6NTcuNjU1ODM5MTQz ICswMjAwCitAQCAtMSw0ICsxLDQgQEAKKy0jIS91c3IvYmluL2VudiBweXRob24KKysjIS91c3Iv YmluL2VudiBweXRob24yCisgZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBwcmludF9mdW5jdGlvbgor IGltcG9ydCBvcworIGltcG9ydCBzdWJwcm9jZXNzCisKKy0tLSBhL2J1aWxkL25wbS1ydW4ucHku b3JpZwkyMDIwLTA0LTI3IDE3OjU5OjUwLjgyOTM1MTgwNyArMDIwMAorKysrIGIvYnVpbGQvbnBt LXJ1bi5weQkyMDIwLTA0LTI3IDE4OjAwOjAyLjcwMjM3MzI1NiArMDIwMAorQEAgLTEsNCArMSw0 IEBACistIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCisrIyEvdXNyL2Jpbi9lbnYgcHl0aG9uMgorIGZy b20gX19mdXR1cmVfXyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24KKyBpbXBvcnQgb3MKKyBpbXBvcnQg c3VicHJvY2VzcwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9lbGVjdHJvbjgvdGVtcGxhdGUgYi9zcmNw a2dzL2VsZWN0cm9uOC90ZW1wbGF0ZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwMC4uNTRhMWY4NWM0ODQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2VsZWN0cm9uOC90 ZW1wbGF0ZQpAQCAtMCwwICsxLDI1OCBAQAorIyBUZW1wbGF0ZSBmaWxlIGZvciAnZWxlY3Ryb244 JworcGtnbmFtZT1lbGVjdHJvbjgKK3ZlcnNpb249OC4yLjUKK19ub2RldmVyPTEyLjEzLjAKK19j aHJvbWl1bXZlcj04MC4wLjM5ODcuMTU4CityZXZpc2lvbj0xCithcmNocz0ieDg2XzY0KiIKK2J1 aWxkX3dya3NyYz0ic3JjIgorY3JlYXRlX3dya3NyYz15ZXMKK2hvc3RtYWtlZGVwZW5kcz0iY2xh bmcgeWFzbSBweXRob24gcGtnY29uZiBwZXJsIGdwZXJmIGJpc29uIG5pbmphIG5vZGVqcyBod2lk cworIHdoaWNoIGdpdCBsaWJhdG9taWMtZGV2ZWwgbGliZXZlbnQtZGV2ZWwgbGliZ2xpYi1kZXZl bCB5YXJuIG9wZW5qZGsiCittYWtlZGVwZW5kcz0ibGlicG5nLWRldmVsIGd0aystZGV2ZWwgZ3Rr KzMtZGV2ZWwgbnNzLWRldmVsIHBjaXV0aWxzLWRldmVsCisgbGliWGktZGV2ZWwgbGliZ2NyeXB0 LWRldmVsIGxpYmdub21lLWtleXJpbmctZGV2ZWwgY3Vwcy1kZXZlbCBlbGZ1dGlscy1kZXZlbAor IGxpYlhjb21wb3NpdGUtZGV2ZWwgc3BlZWNoLWRpc3BhdGNoZXItZGV2ZWwgbGliWHJhbmRyLWRl dmVsIG1pdC1rcmI1LWRldmVsCisgbGliWFNjcm5TYXZlci1kZXZlbCBhbHNhLWxpYi1kZXZlbCBz bmFwcHktZGV2ZWwgbGliZHJtLWRldmVsCisgbGlieG1sMi1kZXZlbCBsaWJ4c2x0LWRldmVsIHB1 bHNlYXVkaW8tZGV2ZWwgbGliZXhpZi1kZXZlbAorIGxpYlhjdXJzb3ItZGV2ZWwgbGliZmxhYy1k ZXZlbCBzcGVleC1kZXZlbCBsaWJtdHAtZGV2ZWwgbGlid2VicC1kZXZlbAorIGxpYmpwZWctdHVy Ym8tZGV2ZWwgbGliZXZlbnQtZGV2ZWwganNvbi1jLWRldmVsIGhhcmZidXp6LWRldmVsCisgbWlu aXppcC1kZXZlbCBqc29uY3BwLWRldmVsIHpsaWItZGV2ZWwgbGliY2FwLWRldmVsIGxpYlhkYW1h Z2UtZGV2ZWwKKyByZTItZGV2ZWwgZm9udGNvbmZpZy1kZXZlbCBmcmVldHlwZS1kZXZlbCBvcHVz LWRldmVsCisgZmZtcGVnLWRldmVsIGxpYnZhLWRldmVsIGxpYnV2LWRldmVsIGMtYXJlcy1kZXZl bCBsaWJub3RpZnktZGV2ZWwiCitkZXBlbmRzPSIiCitzaG9ydF9kZXNjPSJDcm9zcyBwbGF0Zm9y bSBhcHBsaWNhdGlvbiBkZXZlbG9wbWVudCBmcmFtZXdvcmsgYmFzZWQgb24gd2ViIHRlY2hub2xv Z2llcyIKK21haW50YWluZXI9IkpvaG4gPG1lQGpvaG5ueW5hdG9yLmRldj4iCitsaWNlbnNlPSJC U0QtMy1DbGF1c2UiCitob21lcGFnZT0iaHR0cHM6Ly9lbGVjdHJvbmpzLm9yZyIKK2Rpc3RmaWxl cz0iaHR0cHM6Ly9naXRodWIuY29tL2VsZWN0cm9uL2VsZWN0cm9uL2FyY2hpdmUvdiR2ZXJzaW9u LnRhci5nej5lbGVjdHJvbi0ke3ZlcnNpb259LnRhci5negorIGh0dHBzOi8vY29tbW9uZGF0YXN0 b3JhZ2UuZ29vZ2xlYXBpcy5jb20vY2hyb21pdW0tYnJvd3Nlci1vZmZpY2lhbC9jaHJvbWl1bS0k X2Nocm9taXVtdmVyLnRhci54egorIGh0dHBzOi8vZ2l0aHViLmNvbS9ub2RlanMvbm9kZS9hcmNo aXZlL3YkX25vZGV2ZXIudGFyLmd6Pm5vZGUtJF9ub2RldmVyLnRhci5neiIKK2NoZWNrc3VtPSJi NDhjYzFlYTM4MGE1NTNjOGVjY2ZiMWI1YjE2M2I2ZjYwMzllZmI1YjM2YzhmMzJhNzQ5NzA0MmFm ZjVlYzM0CisgODRjMTEyNmNlNTFlM2FjOTBjNzBiYTk3YTUxZWI5OTcwNTY2YzUzMTY5NGZiZDhi MTdmMWMxMDQ3Yjc1MDk3OAorIDkxNTE4ZGMyNTA2ZTMzZDNhYzkxOWVkNzgxNjYxMDgyYzYyMGI4 ODhmYTc5YzI0ODNmNGY5MDI1ODRkMGUxZDkiCisKK2xpYjMyZGlzYWJsZWQ9eWVzCitub2RlYnVn PXllcworbm9waWU9eWVzICAjIGNvbnRhaW5zIHRvb2xzIHRoYXQgYXJlIG5vdCBQSUUsIGVuYWJs ZXMgUElFIGl0c2VsZgorCitidWlsZF9vcHRpb25zPSJwdWxzZWF1ZGlvIgorYnVpbGRfb3B0aW9u c19kZWZhdWx0PSJwdWxzZWF1ZGlvIgorCitfYnVpbGR0eXBlPVJlbGVhc2UKK19pc19kZWJ1Zz1m YWxzZQorCitDRkxBR1M9Ii1Xbm8tdW5rbm93bi13YXJuaW5nLW9wdGlvbiAtZlBJQyIKK0NYWEZM QUdTPSItV25vLXVua25vd24td2FybmluZy1vcHRpb24gLWZQSUMiCisKK3Bvc3RfZXh0cmFjdCgp IHsKKwlsbiAtcyBjaHJvbWl1bS0kX2Nocm9taXVtdmVyIHNyYworCW1rZGlyIC1wIHNyYy90aGly ZF9wYXJ0eS8KKwlsbiAtcyAuLi8uLi9ub2RlLSRfbm9kZXZlciBzcmMvdGhpcmRfcGFydHkvZWxl Y3Ryb25fbm9kZQorCWxuIC1zIC4uL2VsZWN0cm9uLSR7dmVyc2lvbn0gc3JjL2VsZWN0cm9uCisK K30KK3Bvc3RfcGF0Y2goKSB7CisJY2QgJHdya3NyYworCWZvciB4IGluICRGSUxFU0RJUi9wYXRj aGVzLyo7IGRvCisJCWNhc2UgIiR7eCMjKi99IiBpbgorCQkJY2hyb21pdW0qLnBhdGNoKQorCQkJ CWNkIHNyYworCQkJCWVjaG8gUGF0Y2hpbmcgJHgKKwkJCQlwYXRjaCAtcDEgLWkgIiR4IgorCQkJ CWNkICIkd3Jrc3JjIgorCQkJCTs7CisJCQllbGVjdHJvbioucGF0Y2gpCisJCQkJY2Qgc3JjL2Vs ZWN0cm9uCisJCQkJZWNobyBQYXRjaGluZyAkeAorCQkJCXBhdGNoIC1wMSAtaSAiJHgiCisJCQkJ Y2QgIiR3cmtzcmMiCisJCWVzYWMKKwlkb25lCisKKwlpZiBbICIkWEJQU19UQVJHRVRfTElCQyIg PSAibXVzbCIgXTsgdGhlbgorCWZvciB4IGluICRGSUxFU0RJUi9tdXNsLXBhdGNoZXMvKjsgZG8K KwkJY2FzZSAiJHt4IyMqL30iIGluCisJCQljaHJvbWl1bSoucGF0Y2gpCisJCQkJY2Qgc3JjCisJ CQkJZWNobyBQYXRjaGluZyAkeAorCQkJCXBhdGNoIC1wMSAtaSAiJHgiCisJCQkJY2QgIiR3cmtz cmMiCisJCQkJOzsKKwkJCWVsZWN0cm9uKi5wYXRjaCkKKwkJCQljZCBzcmMvZWxlY3Ryb24KKwkJ CQllY2hvIFBhdGNoaW5nICR4CisJCQkJcGF0Y2ggLXAxIC1pICIkeCIKKwkJCQljZCAiJHdya3Ny YyIKKwkJZXNhYworCWRvbmUKKwlmaQorfQorCitwcmVfY29uZmlndXJlKCkgeworCWNkICR3cmtz cmMKKwkjIFNpZ2gsIGVsZWN0cm9uIHVzZXMgZ2l0IGFtLi4uCisJcHl0aG9uMiBzcmMvZWxlY3Ry b24vc2NyaXB0L2xpc3RfcGF0Y2hfdGFyZ2V0cy5weSBzcmMvZWxlY3Ryb24vcGF0Y2hlcy9jb25m aWcuanNvbiB8IHdoaWxlIHJlYWQgLXIgcmVwb3BhdGg7IGRvCisJCWNkICIkd3Jrc3JjIi8iJHJl cG9wYXRoIgorCQlnaXQgaW5pdCAtcQorCQlnaXQgY29uZmlnICJnYy5hdXRvIiAwCisJCWlmIFsg IiRyZXBvcGF0aCIgIT0gInNyYyIgXTsgdGhlbgorCQkJZWNobyAiLyR7cmVwb3BhdGgjc3JjL30i ID4+ICIkd3Jrc3JjLyRidWlsZF93cmtzcmMvLmdpdGlnbm9yZSIKKwkJZmkKKwkJZ2l0IGFkZCAu CisJCWdpdCAtYyAndXNlci5uYW1lPUVsZWN0cm9uIGJ1aWxkJyAtYyAndXNlci5lbWFpbD1lbGVj dHJvbkBlYnVpbGQnIFwKKwkJCWNvbW1pdCAtcSAtbSAiLiIgfHwgdHJ1ZQorCWRvbmUKKworCXB5 dGhvbjIgc3JjL2VsZWN0cm9uL3NjcmlwdC9hcHBseV9hbGxfcGF0Y2hlcy5weSBzcmMvZWxlY3Ry b24vcGF0Y2hlcy9jb25maWcuanNvbgorCisJY2QgIiRidWlsZF93cmtzcmMiCisKKwkjIGh0dHBz Oi8vZ3JvdXBzLmdvb2dsZS5jb20vYS9jaHJvbWl1bS5vcmcvZC90b3BpYy9jaHJvbWl1bS1wYWNr YWdlcnMvOUpYMU4ybmY0UFUvZGlzY3Vzc2lvbgorCXRvdWNoIGNocm9tZS90ZXN0L2RhdGEvd2Vi dWkvaTE4bl9wcm9jZXNzX2Nzc190ZXN0Lmh0bWwKKwkjIFVzZSB0aGUgZmlsZSBhdCBydW4gdGlt ZSBpbnN0ZWFkIG9mIGVmZmVjdGl2ZWx5IGNvbXBpbGluZyBpdCBpbgorCXNlZCAnc3wvL3RoaXJk X3BhcnR5L3VzYl9pZHMvdXNiLmlkc3wvdXNyL3NoYXJlL2h3ZGF0YS91c2IuaWRzfGcnIFwKKwkJ LWkgc2VydmljZXMvZGV2aWNlL3B1YmxpYy9jcHAvdXNiL0JVSUxELmduCisKKwlta2RpciAtcCB0 aGlyZF9wYXJ0eS9ub2RlL2xpbnV4L25vZGUtbGludXgteDY0L2JpbgorCWxuIC1zIC91c3IvYmlu L25vZGUgdGhpcmRfcGFydHkvbm9kZS9saW51eC9ub2RlLWxpbnV4LXg2NC9iaW4vCisKKwkjIHJl dXNhYmxlIHN5c3RlbSBsaWJyYXJ5IHNldHRpbmdzCisJbG9jYWwgdXNlX3N5c3RlbT0iCisJCWZm bXBlZworCQlmbGFjCisJCWZvbnRjb25maWcKKwkJZnJlZXR5cGUKKwkJaGFyZmJ1enotbmcKKwkJ bGliZHJtCisJCWxpYmV2ZW50CisJCWxpYmpwZWcKKwkJbGlicG5nCisJCWxpYndlYnAKKwkJbGli eG1sCisJCWxpYnhzbHQKKwkJb3B1cworCQlyZTIKKwkJc25hcHB5CisJCXlhc20KKwkJIgorCWZv ciBfbGliIGluICR1c2Vfc3lzdGVtIGxpYmpwZWdfdHVyYm87IGRvCisJCW1zZ19ub3JtYWwgIlJl bW92aW5nIGJ1aWxkc2NyaXB0cyBmb3Igc3lzdGVtIHByb3ZpZGVkICRfbGliXG4iCisJCWZpbmQg LXR5cGUgZiAtcGF0aCAiKnRoaXJkX3BhcnR5LyRfbGliLyoiIFwKKwkJCVwhIC1wYXRoICIqdGhp cmRfcGFydHkvJF9saWIvY2hyb21pdW0vKiIgXAorCQkJXCEgLXBhdGggIip0aGlyZF9wYXJ0eS8k X2xpYi9nb29nbGUvKiIgXAorCQkJXCEgLXBhdGggJy4vYmFzZS90aGlyZF9wYXJ0eS9pY3UvKicg XAorCQkJXCEgLXBhdGggJy4vdGhpcmRfcGFydHkvcGRmaXVtL3RoaXJkX3BhcnR5L2ZyZWV0eXBl L2luY2x1ZGUvcHN0YWJsZXMuaCcgXAorCQkJXCEgLXBhdGggJy4vdGhpcmRfcGFydHkveWFzbS9y dW5feWFzbS5weScgXAorCQkJXCEgLXJlZ2V4ICcuKlwuXChnblx8Z25pXHxpc29sYXRlXHxweVwp JyBcCisJCQktZGVsZXRlCisJZG9uZQorCisKKwltc2dfbm9ybWFsICJSZXBsYWNpbmcgZ24gZmls ZXNcbiIKKwlweXRob24yIGJ1aWxkL2xpbnV4L3VuYnVuZGxlL3JlcGxhY2VfZ25fZmlsZXMucHkg LS1zeXN0ZW0tbGlicmFyaWVzIFwKKwkJJHVzZV9zeXN0ZW0KKwl0aGlyZF9wYXJ0eS9saWJhZGRy ZXNzaW5wdXQvY2hyb21pdW0vdG9vbHMvdXBkYXRlLXN0cmluZ3MucHkKK30KKworZG9fY29uZmln dXJlKCkgeworCWxvY2FsIGNvbmY9KCkKKwljZCB0aGlyZF9wYXJ0eS9lbGVjdHJvbl9ub2RlCisK KwkuL2NvbmZpZ3VyZSAtLXByZWZpeD0vdXNyIFwKKwkJLS1zaGFyZWQtemxpYiBcCisJCS0tc2hh cmVkLWxpYnV2IFwKKwkJLS1zaGFyZWQtb3BlbnNzbCBcCisJCS0tc2hhcmVkLWNhcmVzIFwKKwkJ LS1vcGVuc3NsLXVzZS1kZWYtY2Etc3RvcmUgXAorCQktLXdpdGhvdXQtbnBtIFwKKwkJLS13aXRo b3V0LWR0cmFjZSBcCisJCS0td2l0aG91dC1idW5kbGVkLXY4CisKKwljZCAiJHdya3NyYy8kYnVp bGRfd3Jrc3JjIi9lbGVjdHJvbgorCXlhcm4gaW5zdGFsbAorCWVjaG8gJHdya3NyYy8kYnVpbGRf d3Jrc3JjCisJY2QgIiR3cmtzcmMvJGJ1aWxkX3dya3NyYyIKKworCSMgR29vZ2xlIEFQSSBrZXlz IChzZWUgaHR0cDovL3d3dy5jaHJvbWl1bS5vcmcvZGV2ZWxvcGVycy9ob3ctdG9zL2FwaS1rZXlz KQorCSMgTm90ZTogVGhlc2UgYXJlIGZvciBWb2lkIExpbnV4IHVzZSBPTkxZLgorCWNvbmYrPSgK KwkJJ2dvb2dsZV9hcGlfa2V5PSJBSXphU3lBOWdXYXpLYUhhTklQUGcyaHJNajZfWlNHOEFGbXE3 MzgiJworCQknZ29vZ2xlX2RlZmF1bHRfY2xpZW50X2lkPSIxMjY2NTkxNDk0MjMtaG9vNmlja2Jr M3AxdTJxanNkc3AwZGRjaXVyZnZiNHQuYXBwcy5nb29nbGV1c2VyY29udGVudC5jb20iJworCQkn Z29vZ2xlX2RlZmF1bHRfY2xpZW50X3NlY3JldD0iX296SXgyRC1ES21fc2VfMk5Qd1Y0bDViIicK KwkpCisKKwljb25mKz0oCisJCSdibGlua19zeW1ib2xfbGV2ZWw9MCcKKwkJJ2NsYW5nX3VzZV9j aHJvbWVfcGx1Z2lucz1mYWxzZScKKwkJJ2Nsb3N1cmVfY29tcGlsZT10cnVlJworCQknY3VzdG9t X3Rvb2xjaGFpbj0iLy9idWlsZC90b29sY2hhaW4vbGludXgvdW5idW5kbGU6ZGVmYXVsdCInCisJ CSdob3N0X3Rvb2xjaGFpbj0iLy9idWlsZC90b29sY2hhaW4vbGludXgvdW5idW5kbGU6ZGVmYXVs dCInCisJCSdlbmFibGVfaGFuZ291dF9zZXJ2aWNlc19leHRlbnNpb249dHJ1ZScKKwkJJ2VuYWJs ZV9uYWNsX25vbnNmaT1mYWxzZScKKwkJJ2VuYWJsZV9uYWNsPWZhbHNlJworCQknZW5hYmxlX3By ZWNvbXBpbGVkX2hlYWRlcnM9ZmFsc2UnCisJCSdmYXRhbF9saW5rZXJfd2FybmluZ3M9ZmFsc2Un CisJCSdmZm1wZWdfYnJhbmRpbmc9IkNocm9tZSInCisJCSdmaWVsZHRyaWFsX3Rlc3RpbmdfbGlr ZV9vZmZpY2lhbF9idWlsZD10cnVlJworCQknZ29sZF9wYXRoPSIvdXNyL2Jpbi9sZC5nb2xkIicK KwkJJ2ljdV91c2VfZGF0YV9maWxlPXRydWUnCisJCSdpc19jbGFuZz10cnVlJworCQknaXNfY29t cG9uZW50X2J1aWxkPWZhbHNlJworCQkiaXNfZGVidWc9JF9pc19kZWJ1ZyIKKwkJJ2lzX2Rlc2t0 b3BfbGludXg9dHJ1ZScKKwkJJ2xpbnV4X3VzZV9idW5kbGVkX2JpbnV0aWxzPWZhbHNlJworCQkn cHJvcHJpZXRhcnlfY29kZWNzPXRydWUnCisJCSdzeW1ib2xfbGV2ZWw9MCcKKwkJJ3RyZWF0X3dh cm5pbmdzX2FzX2Vycm9ycz1mYWxzZScKKwkJJ3VzZV9hbGxvY2F0b3Jfc2hpbT1mYWxzZScKKwkJ J3VzZV9hbGxvY2F0b3I9Im5vbmUiJworCQkndXNlX2N1cHM9dHJ1ZScKKwkJJ3VzZV9jdXN0b21f bGliY3h4PWZhbHNlJworCQkndXNlX2dub21lX2tleXJpbmc9ZmFsc2UnCisJCSd1c2VfZ29sZD1m YWxzZScKKwkJJ3VzZV9sbGQ9ZmFsc2UnCisJCSJ1c2VfcHVsc2VhdWRpbz0kKHZvcHRfaWYgcHVs c2VhdWRpbyAndHJ1ZScgJ2ZhbHNlJykiCisJCSJsaW5rX3B1bHNlYXVkaW89JCh2b3B0X2lmIHB1 bHNlYXVkaW8gJ3RydWUnICdmYWxzZScpIgorCQkndXNlX3N5c3Jvb3Q9ZmFsc2UnCisJCSd1c2Vf c3lzdGVtX2hhcmZidXp6PXRydWUnCisJCSdpbXBvcnQoIi8vZWxlY3Ryb24vYnVpbGQvYXJncy9y ZWxlYXNlLmduIiknCisJKQorCisJbXNnX25vcm1hbCAiQm9vdHN0cmFwcGluZyBHTlxuIgorIwlB Uj0iYXIiIENDPSIke0NDOi1nY2N9IiBDWFg9IiR7Q1hYOi1nKyt9IiBMRD0iJHtDWFg6LWcrK30i IFwKKwlDQz0iJHtDQzotY2xhbmd9IiBDWFg9IiR7Q1hYOi1jbGFuZysrfSIgTEQ9IiR7Q1hYOi1j bGFuZysrfSIgXAorCQlweXRob24yIHRvb2xzL2duL2Jvb3RzdHJhcC9ib290c3RyYXAucHkgLXMg LXYgLS1nbi1nZW4tYXJncyAiJHtjb25mWypdfSIKKwkKKworCW1zZ19ub3JtYWwgIkNvbmZpZ3Vy aW5nIGJ1aWxkXG4iCisJQVI9ImFyIiBDQz0iY2xhbmciIENYWD0iY2xhbmcrKyIgTEQ9ImNsYW5n KysiIE5NPS91c3IvYmluL25tIFwKKwkJb3V0L1JlbGVhc2UvZ24gZ2VuIG91dC8kX2J1aWxkdHlw ZSAtLWFyZ3M9IiR7Y29uZlsqXX0iCit9CisKK2RvX2J1aWxkKCkgeworCW1zZ19ub3JtYWwgIk5p bmphIHR1cnRsZXMgR08hXG4iCisJbmluamEgJHttYWtlam9ic30gLUMgb3V0L1JlbGVhc2UgdGhp cmRfcGFydHkvZWxlY3Ryb25fbm9kZTpoZWFkZXJzCisKKworCW5pbmphICR7bWFrZWpvYnN9IC1D IG91dC8kX2J1aWxkdHlwZSBlbGVjdHJvbgorCSMgZmluaXNoIHJlc3Qgb2YgdGhlIGJ1aWxkCisJ c3RyaXAgLXMgb3V0LyRfYnVpbGR0eXBlL2VsZWN0cm9uCisJbmluamEgJHttYWtlam9ic30gLUMg b3V0LyRfYnVpbGR0eXBlIGVsZWN0cm9uX2Rpc3RfemlwCit9CisKK2RvX2luc3RhbGwoKSB7CisJ dm1rZGlyIC91c3IvbGliLyRwa2duYW1lIAorCXZta2RpciAvdXNyL2luY2x1ZGUvJHBrZ25hbWUK Kwlic2R0YXIgLXhmIG91dC8kX2J1aWxkdHlwZS9kaXN0LnppcCAtQyAiJERFU1RESVIvdXNyL2xp Yi8kcGtnbmFtZSIKKworCWNobW9kIHUrcyAiJERFU1RESVIvdXNyL2xpYi8kcGtnbmFtZS9jaHJv bWUtc2FuZGJveCIKKworCWNwIG91dC8kX2J1aWxkdHlwZS9nZW4vbm9kZV9oZWFkZXJzLnRhci5n eiAiJERFU1RESVIiL3Vzci9pbmNsdWRlLyRwa2duYW1lCisKKwl2bGljZW5zZSAke3dya3NyY30v c3JjL0xJQ0VOU0UgY2hyb21pdW0uTElDRU5TRQorCXZsaWNlbnNlICR7d3Jrc3JjfS9zcmMvZWxl Y3Ryb24vTElDRU5TRSBlbGVjdHJvbi5MSUNFTlNFCisJdmxpY2Vuc2UgJHt3cmtzcmN9L3NyYy90 aGlyZF9wYXJ0eS9lbGVjdHJvbl9ub2RlL0xJQ0VOU0Ugbm9kZS5MSUNFTlNFCisKKwl2bWtkaXIg L3Vzci9iaW4KKwlsbiAtcyAuLi9saWIvJHBrZ25hbWUvZWxlY3Ryb24gIiRERVNURElSIi91c3Iv YmluLyRwa2duYW1lCit9CgpGcm9tIDRkY2FjOTBiMGNiOGZlZmE4NjAwNTY4Mjk2MTU0NmM0MGNi MjczZGEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEpvaG4gPG1lQGpvaG5ueW5hdG9y LmRldj4KRGF0ZTogVGh1LCAxNCBNYXkgMjAyMCAwMTo0NjozMyArMDIwMApTdWJqZWN0OiBbUEFU Q0ggMi8yXSBlbGVjdHJvbjg6IGFkZCBzbmRpbyBwYXRjaGVzCgpbY2kgc2tpcF0KLS0tCiAuLi4v c25kaW8tZmlsZXMvYXVkaW9fbWFuYWdlcl9vcGVuYnNkLmNjICAgICAgfCAxNDggKysrKysrKysr KysrKwogLi4uL2ZpbGVzL3NuZGlvLWZpbGVzL2F1ZGlvX21hbmFnZXJfb3BlbmJzZC5oIHwgIDY1 ICsrKysrKwogLi4uL2ZpbGVzL3NuZGlvLWZpbGVzL3NuZGlvX2lucHV0LmNjICAgICAgICAgIHwg MjAxICsrKysrKysrKysrKysrKysrKwogLi4uL2VsZWN0cm9uOC9maWxlcy9zbmRpby1maWxlcy9z bmRpb19pbnB1dC5oIHwgIDkxICsrKysrKysrCiAuLi4vZmlsZXMvc25kaW8tZmlsZXMvc25kaW9f b3V0cHV0LmNjICAgICAgICAgfCAxODMgKysrKysrKysrKysrKysrKwogLi4uL2ZpbGVzL3NuZGlv LWZpbGVzL3NuZGlvX291dHB1dC5oICAgICAgICAgIHwgIDg2ICsrKysrKysrCiAuLi5hX2F1ZGlv X2xpbnV4X2F1ZGlvX21hbmFnZXJfbGludXguY2MucGF0Y2ggfCAgNDMgKysrKwogLi4uc3JjXzNy ZHBhcnR5X2Nocm9taXVtX21lZGlhX0JVSUxELmduLnBhdGNoIHwgIDEyICsrCiAuLi5kcGFydHlf Y2hyb21pdW1fbWVkaWFfYXVkaW9fQlVJTEQuZ24ucGF0Y2ggfCAgMjMgKysKIC4uLnR5X2Nocm9t aXVtX21lZGlhX21lZGlhX19vcHRpb25zLmduaS5wYXRjaCB8ICAxMiArKwogc3JjcGtncy9lbGVj dHJvbjgvdGVtcGxhdGUgICAgICAgICAgICAgICAgICAgIHwgIDMzICsrLQogc3JjcGtncy9lbGVj dHJvbjgvdXBkYXRlICAgICAgICAgICAgICAgICAgICAgIHwgICAyICsKIDEyIGZpbGVzIGNoYW5n ZWQsIDg4OSBpbnNlcnRpb25zKCspLCAxMCBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0 NCBzcmNwa2dzL2VsZWN0cm9uOC9maWxlcy9zbmRpby1maWxlcy9hdWRpb19tYW5hZ2VyX29wZW5i c2QuY2MKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2VsZWN0cm9uOC9maWxlcy9zbmRpby1m aWxlcy9hdWRpb19tYW5hZ2VyX29wZW5ic2QuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mv ZWxlY3Ryb244L2ZpbGVzL3NuZGlvLWZpbGVzL3NuZGlvX2lucHV0LmNjCiBjcmVhdGUgbW9kZSAx MDA2NDQgc3JjcGtncy9lbGVjdHJvbjgvZmlsZXMvc25kaW8tZmlsZXMvc25kaW9faW5wdXQuaAog Y3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxlY3Ryb244L2ZpbGVzL3NuZGlvLWZpbGVzL3Nu ZGlvX291dHB1dC5jYwogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxlY3Ryb244L2ZpbGVz L3NuZGlvLWZpbGVzL3NuZGlvX291dHB1dC5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9l bGVjdHJvbjgvZmlsZXMvc25kaW8tcGF0Y2hlcy9tZWRpYV9hdWRpb19saW51eF9hdWRpb19tYW5h Z2VyX2xpbnV4LmNjLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9lbGVjdHJvbjgv ZmlsZXMvc25kaW8tcGF0Y2hlcy9zcmNfM3JkcGFydHlfY2hyb21pdW1fbWVkaWFfQlVJTEQuZ24u cGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2VsZWN0cm9uOC9maWxlcy9zbmRpby1w YXRjaGVzL3NyY18zcmRwYXJ0eV9jaHJvbWl1bV9tZWRpYV9hdWRpb19CVUlMRC5nbi5wYXRjaAog Y3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxlY3Ryb244L2ZpbGVzL3NuZGlvLXBhdGNoZXMv c3JjXzNyZHBhcnR5X2Nocm9taXVtX21lZGlhX21lZGlhX19vcHRpb25zLmduaS5wYXRjaAogY3Jl YXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxlY3Ryb244L3VwZGF0ZQoKZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MvZWxlY3Ryb244L2ZpbGVzL3NuZGlvLWZpbGVzL2F1ZGlvX21hbmFnZXJfb3BlbmJzZC5j YyBiL3NyY3BrZ3MvZWxlY3Ryb244L2ZpbGVzL3NuZGlvLWZpbGVzL2F1ZGlvX21hbmFnZXJfb3Bl bmJzZC5jYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMmM3YWE4ZWZh NjYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2VsZWN0cm9uOC9maWxlcy9zbmRpby1maWxl cy9hdWRpb19tYW5hZ2VyX29wZW5ic2QuY2MKQEAgLTAsMCArMSwxNDggQEAKKy8vIENvcHlyaWdo dCAoYykgMjAxMiBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8v IFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vu c2UgdGhhdCBjYW4gYmUKKy8vIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisKKyNpbmNsdWRl ICJiYXNlL21ldHJpY3MvaGlzdG9ncmFtX21hY3Jvcy5oIgorI2luY2x1ZGUgImJhc2UvbWVtb3J5 L3B0cl91dGlsLmgiCisKKyNpbmNsdWRlICJtZWRpYS9hdWRpby9vcGVuYnNkL2F1ZGlvX21hbmFn ZXJfb3BlbmJzZC5oIgorCisjaW5jbHVkZSAibWVkaWEvYXVkaW8vYXVkaW9fZGV2aWNlX2Rlc2Ny aXB0aW9uLmgiCisjaW5jbHVkZSAibWVkaWEvYXVkaW8vYXVkaW9fb3V0cHV0X2Rpc3BhdGNoZXIu aCIKKyNpbmNsdWRlICJtZWRpYS9hdWRpby9zbmRpby9zbmRpb19pbnB1dC5oIgorI2luY2x1ZGUg Im1lZGlhL2F1ZGlvL3NuZGlvL3NuZGlvX291dHB1dC5oIgorI2luY2x1ZGUgIm1lZGlhL2Jhc2Uv bGltaXRzLmgiCisjaW5jbHVkZSAibWVkaWEvYmFzZS9tZWRpYV9zd2l0Y2hlcy5oIgorCituYW1l c3BhY2UgbWVkaWEgeworCisvLyBNYXhpbXVtIG51bWJlciBvZiBvdXRwdXQgc3RyZWFtcyB0aGF0 IGNhbiBiZSBvcGVuIHNpbXVsdGFuZW91c2x5Lgorc3RhdGljIGNvbnN0IGludCBrTWF4T3V0cHV0 U3RyZWFtcyA9IDQ7CisKKy8vIERlZmF1bHQgc2FtcGxlIHJhdGUgZm9yIGlucHV0IGFuZCBvdXRw dXQgc3RyZWFtcy4KK3N0YXRpYyBjb25zdCBpbnQga0RlZmF1bHRTYW1wbGVSYXRlID0gNDgwMDA7 CisKK3ZvaWQgQWRkRGVmYXVsdERldmljZShBdWRpb0RldmljZU5hbWVzKiBkZXZpY2VfbmFtZXMp IHsKKyAgRENIRUNLKGRldmljZV9uYW1lcy0+ZW1wdHkoKSk7CisgIGRldmljZV9uYW1lcy0+cHVz aF9mcm9udChBdWRpb0RldmljZU5hbWU6OkNyZWF0ZURlZmF1bHQoKSk7Cit9CisKK2Jvb2wgQXVk aW9NYW5hZ2VyT3BlbkJTRDo6SGFzQXVkaW9PdXRwdXREZXZpY2VzKCkgeworICByZXR1cm4gdHJ1 ZTsKK30KKworYm9vbCBBdWRpb01hbmFnZXJPcGVuQlNEOjpIYXNBdWRpb0lucHV0RGV2aWNlcygp IHsKKyAgcmV0dXJuIHRydWU7Cit9CisKK3ZvaWQgQXVkaW9NYW5hZ2VyT3BlbkJTRDo6R2V0QXVk aW9JbnB1dERldmljZU5hbWVzKAorICAgIEF1ZGlvRGV2aWNlTmFtZXMqIGRldmljZV9uYW1lcykg eworICBEQ0hFQ0soZGV2aWNlX25hbWVzLT5lbXB0eSgpKTsKKyAgQWRkRGVmYXVsdERldmljZShk ZXZpY2VfbmFtZXMpOworfQorCit2b2lkIEF1ZGlvTWFuYWdlck9wZW5CU0Q6OkdldEF1ZGlvT3V0 cHV0RGV2aWNlTmFtZXMoCisgICAgQXVkaW9EZXZpY2VOYW1lcyogZGV2aWNlX25hbWVzKSB7Cisg IEFkZERlZmF1bHREZXZpY2UoZGV2aWNlX25hbWVzKTsKK30KKworY29uc3QgY2hhciogQXVkaW9N YW5hZ2VyT3BlbkJTRDo6R2V0TmFtZSgpIHsKKyAgcmV0dXJuICJTTkRJTyI7Cit9CisKK0F1ZGlv UGFyYW1ldGVycyBBdWRpb01hbmFnZXJPcGVuQlNEOjpHZXRJbnB1dFN0cmVhbVBhcmFtZXRlcnMo CisgICAgY29uc3Qgc3RkOjpzdHJpbmcmIGRldmljZV9pZCkgeworICBzdGF0aWMgY29uc3QgaW50 IGtEZWZhdWx0SW5wdXRCdWZmZXJTaXplID0gMTAyNDsKKworICBpbnQgdXNlcl9idWZmZXJfc2l6 ZSA9IEdldFVzZXJCdWZmZXJTaXplKCk7CisgIGludCBidWZmZXJfc2l6ZSA9IHVzZXJfYnVmZmVy X3NpemUgPworICAgICAgdXNlcl9idWZmZXJfc2l6ZSA6IGtEZWZhdWx0SW5wdXRCdWZmZXJTaXpl OworCisgIHJldHVybiBBdWRpb1BhcmFtZXRlcnMoCisgICAgICBBdWRpb1BhcmFtZXRlcnM6OkFV RElPX1BDTV9MT1dfTEFURU5DWSwgQ0hBTk5FTF9MQVlPVVRfU1RFUkVPLAorICAgICAga0RlZmF1 bHRTYW1wbGVSYXRlLCBidWZmZXJfc2l6ZSk7Cit9CisKK0F1ZGlvTWFuYWdlck9wZW5CU0Q6OkF1 ZGlvTWFuYWdlck9wZW5CU0Qoc3RkOjp1bmlxdWVfcHRyPEF1ZGlvVGhyZWFkPiBhdWRpb190aHJl YWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEF1ZGlvTG9nRmFj dG9yeSogYXVkaW9fbG9nX2ZhY3RvcnkpCisgICAgOiBBdWRpb01hbmFnZXJCYXNlKHN0ZDo6bW92 ZShhdWRpb190aHJlYWQpLAorICAgICAgICAgICAgICAgICAgICAgICBhdWRpb19sb2dfZmFjdG9y eSkgeworICBETE9HKFdBUk5JTkcpIDw8ICJBdWRpb01hbmFnZXJPcGVuQlNEIjsKKyAgU2V0TWF4 T3V0cHV0U3RyZWFtc0FsbG93ZWQoa01heE91dHB1dFN0cmVhbXMpOworfQorCitBdWRpb01hbmFn ZXJPcGVuQlNEOjp+QXVkaW9NYW5hZ2VyT3BlbkJTRCgpIHsKKyAgU2h1dGRvd24oKTsKK30KKwor QXVkaW9PdXRwdXRTdHJlYW0qIEF1ZGlvTWFuYWdlck9wZW5CU0Q6Ok1ha2VMaW5lYXJPdXRwdXRT dHJlYW0oCisgICAgY29uc3QgQXVkaW9QYXJhbWV0ZXJzJiBwYXJhbXMsCisgICAgY29uc3QgTG9n Q2FsbGJhY2smIGxvZ19jYWxsYmFjaykgeworICBEQ0hFQ0tfRVEoQXVkaW9QYXJhbWV0ZXJzOjpB VURJT19QQ01fTElORUFSLCBwYXJhbXMuZm9ybWF0KCkpOworICByZXR1cm4gTWFrZU91dHB1dFN0 cmVhbShwYXJhbXMpOworfQorCitBdWRpb091dHB1dFN0cmVhbSogQXVkaW9NYW5hZ2VyT3BlbkJT RDo6TWFrZUxvd0xhdGVuY3lPdXRwdXRTdHJlYW0oCisgICAgY29uc3QgQXVkaW9QYXJhbWV0ZXJz JiBwYXJhbXMsCisgICAgY29uc3Qgc3RkOjpzdHJpbmcmIGRldmljZV9pZCwKKyAgICBjb25zdCBM b2dDYWxsYmFjayYgbG9nX2NhbGxiYWNrKSB7CisgIERMT0dfSUYoRVJST1IsICFkZXZpY2VfaWQu ZW1wdHkoKSkgPDwgIk5vdCBpbXBsZW1lbnRlZCEiOworICBEQ0hFQ0tfRVEoQXVkaW9QYXJhbWV0 ZXJzOjpBVURJT19QQ01fTE9XX0xBVEVOQ1ksIHBhcmFtcy5mb3JtYXQoKSk7CisgIHJldHVybiBN YWtlT3V0cHV0U3RyZWFtKHBhcmFtcyk7Cit9CisKK0F1ZGlvSW5wdXRTdHJlYW0qIEF1ZGlvTWFu YWdlck9wZW5CU0Q6Ok1ha2VMaW5lYXJJbnB1dFN0cmVhbSgKKyAgICBjb25zdCBBdWRpb1BhcmFt ZXRlcnMmIHBhcmFtcywKKyAgICBjb25zdCBzdGQ6OnN0cmluZyYgZGV2aWNlX2lkLAorICAgIGNv bnN0IExvZ0NhbGxiYWNrJiBsb2dfY2FsbGJhY2spIHsKKyAgRENIRUNLX0VRKEF1ZGlvUGFyYW1l dGVyczo6QVVESU9fUENNX0xJTkVBUiwgcGFyYW1zLmZvcm1hdCgpKTsKKyAgcmV0dXJuIE1ha2VJ bnB1dFN0cmVhbShwYXJhbXMpOworfQorCitBdWRpb0lucHV0U3RyZWFtKiBBdWRpb01hbmFnZXJP cGVuQlNEOjpNYWtlTG93TGF0ZW5jeUlucHV0U3RyZWFtKAorICAgIGNvbnN0IEF1ZGlvUGFyYW1l dGVycyYgcGFyYW1zLAorICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBkZXZpY2VfaWQsCisgICAgY29u c3QgTG9nQ2FsbGJhY2smIGxvZ19jYWxsYmFjaykgeworICBEQ0hFQ0tfRVEoQXVkaW9QYXJhbWV0 ZXJzOjpBVURJT19QQ01fTE9XX0xBVEVOQ1ksIHBhcmFtcy5mb3JtYXQoKSk7CisgIHJldHVybiBN YWtlSW5wdXRTdHJlYW0ocGFyYW1zKTsKK30KKworQXVkaW9QYXJhbWV0ZXJzIEF1ZGlvTWFuYWdl ck9wZW5CU0Q6OkdldFByZWZlcnJlZE91dHB1dFN0cmVhbVBhcmFtZXRlcnMoCisgICAgY29uc3Qg c3RkOjpzdHJpbmcmIG91dHB1dF9kZXZpY2VfaWQsCisgICAgY29uc3QgQXVkaW9QYXJhbWV0ZXJz JiBpbnB1dF9wYXJhbXMpIHsKKyAgLy8gVE9ETyh0b21taSk6IFN1cHBvcnQgfG91dHB1dF9kZXZp Y2VfaWR8LgorICBETE9HX0lGKEVSUk9SLCAhb3V0cHV0X2RldmljZV9pZC5lbXB0eSgpKSA8PCAi Tm90IGltcGxlbWVudGVkISI7CisgIHN0YXRpYyBjb25zdCBpbnQga0RlZmF1bHRPdXRwdXRCdWZm ZXJTaXplID0gMjA0ODsKKworICBDaGFubmVsTGF5b3V0IGNoYW5uZWxfbGF5b3V0ID0gQ0hBTk5F TF9MQVlPVVRfU1RFUkVPOworICBpbnQgc2FtcGxlX3JhdGUgPSBrRGVmYXVsdFNhbXBsZVJhdGU7 CisgIGludCBidWZmZXJfc2l6ZSA9IGtEZWZhdWx0T3V0cHV0QnVmZmVyU2l6ZTsKKyAgaWYgKGlu cHV0X3BhcmFtcy5Jc1ZhbGlkKCkpIHsKKyAgICBzYW1wbGVfcmF0ZSA9IGlucHV0X3BhcmFtcy5z YW1wbGVfcmF0ZSgpOworICAgIGNoYW5uZWxfbGF5b3V0ID0gaW5wdXRfcGFyYW1zLmNoYW5uZWxf bGF5b3V0KCk7CisgICAgYnVmZmVyX3NpemUgPSBzdGQ6Om1pbihidWZmZXJfc2l6ZSwgaW5wdXRf cGFyYW1zLmZyYW1lc19wZXJfYnVmZmVyKCkpOworICB9CisKKyAgaW50IHVzZXJfYnVmZmVyX3Np emUgPSBHZXRVc2VyQnVmZmVyU2l6ZSgpOworICBpZiAodXNlcl9idWZmZXJfc2l6ZSkKKyAgICBi dWZmZXJfc2l6ZSA9IHVzZXJfYnVmZmVyX3NpemU7CisKKyAgcmV0dXJuIEF1ZGlvUGFyYW1ldGVy cygKKyAgICAgIEF1ZGlvUGFyYW1ldGVyczo6QVVESU9fUENNX0xPV19MQVRFTkNZLCBjaGFubmVs X2xheW91dCwKKyAgICAgIHNhbXBsZV9yYXRlLCBidWZmZXJfc2l6ZSk7Cit9CisKK0F1ZGlvSW5w dXRTdHJlYW0qIEF1ZGlvTWFuYWdlck9wZW5CU0Q6Ok1ha2VJbnB1dFN0cmVhbSgKKyAgICBjb25z dCBBdWRpb1BhcmFtZXRlcnMmIHBhcmFtcykgeworICBETE9HKFdBUk5JTkcpIDw8ICJNYWtlSW5w dXRTdHJlYW0iOworICByZXR1cm4gbmV3IFNuZGlvQXVkaW9JbnB1dFN0cmVhbSh0aGlzLAorICAg ICAgICAgICAgIEF1ZGlvRGV2aWNlRGVzY3JpcHRpb246OmtEZWZhdWx0RGV2aWNlSWQsIHBhcmFt cyk7Cit9CisKK0F1ZGlvT3V0cHV0U3RyZWFtKiBBdWRpb01hbmFnZXJPcGVuQlNEOjpNYWtlT3V0 cHV0U3RyZWFtKAorICAgIGNvbnN0IEF1ZGlvUGFyYW1ldGVycyYgcGFyYW1zKSB7CisgIERMT0co V0FSTklORykgPDwgIk1ha2VPdXRwdXRTdHJlYW0iOworICByZXR1cm4gbmV3IFNuZGlvQXVkaW9P dXRwdXRTdHJlYW0ocGFyYW1zLCB0aGlzKTsKK30KKworfSAgLy8gbmFtZXNwYWNlIG1lZGlhCmRp ZmYgLS1naXQgYS9zcmNwa2dzL2VsZWN0cm9uOC9maWxlcy9zbmRpby1maWxlcy9hdWRpb19tYW5h Z2VyX29wZW5ic2QuaCBiL3NyY3BrZ3MvZWxlY3Ryb244L2ZpbGVzL3NuZGlvLWZpbGVzL2F1ZGlv X21hbmFnZXJfb3BlbmJzZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw Li44Yzk5ZGI5NjZkNgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZWxlY3Ryb244L2ZpbGVz L3NuZGlvLWZpbGVzL2F1ZGlvX21hbmFnZXJfb3BlbmJzZC5oCkBAIC0wLDAgKzEsNjUgQEAKKy8v IENvcHlyaWdodCAoYykgMjAxMiBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNl cnZlZC4KKy8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0 eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKKy8vIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisK KyNpZm5kZWYgTUVESUFfQVVESU9fT1BFTkJTRF9BVURJT19NQU5BR0VSX09QRU5CU0RfSF8KKyNk ZWZpbmUgTUVESUFfQVVESU9fT1BFTkJTRF9BVURJT19NQU5BR0VSX09QRU5CU0RfSF8KKworI2lu Y2x1ZGUgPHNldD4KKworI2luY2x1ZGUgImJhc2UvY29tcGlsZXJfc3BlY2lmaWMuaCIKKyNpbmNs dWRlICJiYXNlL21hY3Jvcy5oIgorI2luY2x1ZGUgImJhc2UvbWVtb3J5L3JlZl9jb3VudGVkLmgi CisjaW5jbHVkZSAiYmFzZS90aHJlYWRpbmcvdGhyZWFkLmgiCisjaW5jbHVkZSAibWVkaWEvYXVk aW8vYXVkaW9fbWFuYWdlcl9iYXNlLmgiCisKK25hbWVzcGFjZSBtZWRpYSB7CisKK2NsYXNzIE1F RElBX0VYUE9SVCBBdWRpb01hbmFnZXJPcGVuQlNEIDogcHVibGljIEF1ZGlvTWFuYWdlckJhc2Ug eworIHB1YmxpYzoKKyAgQXVkaW9NYW5hZ2VyT3BlbkJTRChzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9U aHJlYWQ+IGF1ZGlvX3RocmVhZCwKKyAgICAgICAgICAgICAgICAgICBBdWRpb0xvZ0ZhY3Rvcnkq IGF1ZGlvX2xvZ19mYWN0b3J5KTsKKyAgfkF1ZGlvTWFuYWdlck9wZW5CU0QoKSBvdmVycmlkZTsK KworICAvLyBJbXBsZW1lbnRhdGlvbiBvZiBBdWRpb01hbmFnZXIuCisgIGJvb2wgSGFzQXVkaW9P dXRwdXREZXZpY2VzKCkgb3ZlcnJpZGU7CisgIGJvb2wgSGFzQXVkaW9JbnB1dERldmljZXMoKSBv dmVycmlkZTsKKyAgdm9pZCBHZXRBdWRpb0lucHV0RGV2aWNlTmFtZXMoQXVkaW9EZXZpY2VOYW1l cyogZGV2aWNlX25hbWVzKSBvdmVycmlkZTsKKyAgdm9pZCBHZXRBdWRpb091dHB1dERldmljZU5h bWVzKEF1ZGlvRGV2aWNlTmFtZXMqIGRldmljZV9uYW1lcykgb3ZlcnJpZGU7CisgIEF1ZGlvUGFy YW1ldGVycyBHZXRJbnB1dFN0cmVhbVBhcmFtZXRlcnMoCisgICAgICBjb25zdCBzdGQ6OnN0cmlu ZyYgZGV2aWNlX2lkKSBvdmVycmlkZTsKKyAgY29uc3QgY2hhciogR2V0TmFtZSgpIG92ZXJyaWRl OworCisgIC8vIEltcGxlbWVudGF0aW9uIG9mIEF1ZGlvTWFuYWdlckJhc2UuCisgIEF1ZGlvT3V0 cHV0U3RyZWFtKiBNYWtlTGluZWFyT3V0cHV0U3RyZWFtKAorICAgICAgY29uc3QgQXVkaW9QYXJh bWV0ZXJzJiBwYXJhbXMsCisgICAgICBjb25zdCBMb2dDYWxsYmFjayYgbG9nX2NhbGxiYWNrKSBv dmVycmlkZTsKKyAgQXVkaW9PdXRwdXRTdHJlYW0qIE1ha2VMb3dMYXRlbmN5T3V0cHV0U3RyZWFt KAorICAgICAgY29uc3QgQXVkaW9QYXJhbWV0ZXJzJiBwYXJhbXMsCisgICAgICBjb25zdCBzdGQ6 OnN0cmluZyYgZGV2aWNlX2lkLAorICAgICAgY29uc3QgTG9nQ2FsbGJhY2smIGxvZ19jYWxsYmFj aykgb3ZlcnJpZGU7CisgIEF1ZGlvSW5wdXRTdHJlYW0qIE1ha2VMaW5lYXJJbnB1dFN0cmVhbSgK KyAgICAgIGNvbnN0IEF1ZGlvUGFyYW1ldGVycyYgcGFyYW1zLAorICAgICAgY29uc3Qgc3RkOjpz dHJpbmcmIGRldmljZV9pZCwKKyAgICAgIGNvbnN0IExvZ0NhbGxiYWNrJiBsb2dfY2FsbGJhY2sp IG92ZXJyaWRlOworICBBdWRpb0lucHV0U3RyZWFtKiBNYWtlTG93TGF0ZW5jeUlucHV0U3RyZWFt KAorICAgICAgY29uc3QgQXVkaW9QYXJhbWV0ZXJzJiBwYXJhbXMsCisgICAgICBjb25zdCBzdGQ6 OnN0cmluZyYgZGV2aWNlX2lkLAorICAgICAgY29uc3QgTG9nQ2FsbGJhY2smIGxvZ19jYWxsYmFj aykgb3ZlcnJpZGU7CisKKyBwcm90ZWN0ZWQ6CisgIEF1ZGlvUGFyYW1ldGVycyBHZXRQcmVmZXJy ZWRPdXRwdXRTdHJlYW1QYXJhbWV0ZXJzKAorICAgICAgY29uc3Qgc3RkOjpzdHJpbmcmIG91dHB1 dF9kZXZpY2VfaWQsCisgICAgICBjb25zdCBBdWRpb1BhcmFtZXRlcnMmIGlucHV0X3BhcmFtcykg b3ZlcnJpZGU7CisKKyBwcml2YXRlOgorICAvLyBDYWxsZWQgYnkgTWFrZUxpbmVhck91dHB1dFN0 cmVhbSBhbmQgTWFrZUxvd0xhdGVuY3lPdXRwdXRTdHJlYW0uCisgIEF1ZGlvT3V0cHV0U3RyZWFt KiBNYWtlT3V0cHV0U3RyZWFtKGNvbnN0IEF1ZGlvUGFyYW1ldGVycyYgcGFyYW1zKTsKKyAgQXVk aW9JbnB1dFN0cmVhbSogTWFrZUlucHV0U3RyZWFtKGNvbnN0IEF1ZGlvUGFyYW1ldGVycyYgcGFy YW1zKTsKKworICBESVNBTExPV19DT1BZX0FORF9BU1NJR04oQXVkaW9NYW5hZ2VyT3BlbkJTRCk7 Cit9OworCit9ICAvLyBuYW1lc3BhY2UgbWVkaWEKKworI2VuZGlmICAvLyBNRURJQV9BVURJT19P UEVOQlNEX0FVRElPX01BTkFHRVJfT1BFTkJTRF9IXwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9lbGVj dHJvbjgvZmlsZXMvc25kaW8tZmlsZXMvc25kaW9faW5wdXQuY2MgYi9zcmNwa2dzL2VsZWN0cm9u OC9maWxlcy9zbmRpby1maWxlcy9zbmRpb19pbnB1dC5jYwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAwMC4uNmM3YmM4YjgwMjUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dz L2VsZWN0cm9uOC9maWxlcy9zbmRpby1maWxlcy9zbmRpb19pbnB1dC5jYwpAQCAtMCwwICsxLDIw MSBAQAorLy8gQ29weXJpZ2h0IDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMg cmVzZXJ2ZWQuCisvLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJT RC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCisvLyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxl LgorCisjaW5jbHVkZSAiYmFzZS9iaW5kLmgiCisjaW5jbHVkZSAiYmFzZS9sb2dnaW5nLmgiCisj aW5jbHVkZSAiYmFzZS9tYWNyb3MuaCIKKyNpbmNsdWRlICJiYXNlL21lc3NhZ2VfbG9vcC9tZXNz YWdlX2xvb3AuaCIKKyNpbmNsdWRlICJtZWRpYS9iYXNlL2F1ZGlvX3RpbWVzdGFtcF9oZWxwZXIu aCIKKyNpbmNsdWRlICJtZWRpYS9hdWRpby9vcGVuYnNkL2F1ZGlvX21hbmFnZXJfb3BlbmJzZC5o IgorI2luY2x1ZGUgIm1lZGlhL2F1ZGlvL2F1ZGlvX21hbmFnZXIuaCIKKyNpbmNsdWRlICJtZWRp YS9hdWRpby9zbmRpby9zbmRpb19pbnB1dC5oIgorCituYW1lc3BhY2UgbWVkaWEgeworCitzdGF0 aWMgY29uc3QgU2FtcGxlRm9ybWF0IGtTYW1wbGVGb3JtYXQgPSBrU2FtcGxlRm9ybWF0UzE2Owor Cit2b2lkIFNuZGlvQXVkaW9JbnB1dFN0cmVhbTo6T25Nb3ZlQ2FsbGJhY2sodm9pZCAqYXJnLCBp bnQgZGVsdGEpCit7CisgIFNuZGlvQXVkaW9JbnB1dFN0cmVhbSogc2VsZiA9IHN0YXRpY19jYXN0 PFNuZGlvQXVkaW9JbnB1dFN0cmVhbSo+KGFyZyk7CisKKyAgc2VsZi0+aHdfZGVsYXkgKz0gZGVs dGE7Cit9CisKK3ZvaWQgKlNuZGlvQXVkaW9JbnB1dFN0cmVhbTo6VGhyZWFkRW50cnkodm9pZCAq YXJnKSB7CisgIFNuZGlvQXVkaW9JbnB1dFN0cmVhbSogc2VsZiA9IHN0YXRpY19jYXN0PFNuZGlv QXVkaW9JbnB1dFN0cmVhbSo+KGFyZyk7CisKKyAgc2VsZi0+VGhyZWFkTG9vcCgpOworICByZXR1 cm4gTlVMTDsKK30KKworU25kaW9BdWRpb0lucHV0U3RyZWFtOjpTbmRpb0F1ZGlvSW5wdXRTdHJl YW0oQXVkaW9NYW5hZ2VyQmFzZSogbWFuYWdlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBkZXZpY2VfbmFtZSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEF1ZGlvUGFyYW1l dGVycyYgcGFyYW1zKQorICAgIDogbWFuYWdlcihtYW5hZ2VyKSwKKyAgICAgIHBhcmFtcyhwYXJh bXMpLAorICAgICAgYXVkaW9fYnVzKEF1ZGlvQnVzOjpDcmVhdGUocGFyYW1zKSksCisgICAgICBz dGF0ZShrQ2xvc2VkKSB7Cit9CisKK1NuZGlvQXVkaW9JbnB1dFN0cmVhbTo6flNuZGlvQXVkaW9J bnB1dFN0cmVhbSgpIHsKKyAgaWYgKHN0YXRlICE9IGtDbG9zZWQpCisgICAgQ2xvc2UoKTsKK30K KworYm9vbCBTbmRpb0F1ZGlvSW5wdXRTdHJlYW06Ok9wZW4oKSB7CisgIHN0cnVjdCBzaW9fcGFy IHBhcjsKKyAgaW50IHNpZzsKKworICBpZiAoc3RhdGUgIT0ga0Nsb3NlZCkKKyAgICByZXR1cm4g ZmFsc2U7CisKKyAgaWYgKHBhcmFtcy5mb3JtYXQoKSAhPSBBdWRpb1BhcmFtZXRlcnM6OkFVRElP X1BDTV9MSU5FQVIgJiYKKyAgICAgIHBhcmFtcy5mb3JtYXQoKSAhPSBBdWRpb1BhcmFtZXRlcnM6 OkFVRElPX1BDTV9MT1dfTEFURU5DWSkgeworICAgIExPRyhXQVJOSU5HKSA8PCAiVW5zdXBwb3J0 ZWQgYXVkaW8gZm9ybWF0LiI7CisgICAgcmV0dXJuIGZhbHNlOworICB9CisKKyAgc2lvX2luaXRw YXIoJnBhcik7CisgIHBhci5yYXRlID0gcGFyYW1zLnNhbXBsZV9yYXRlKCk7CisgIHBhci5yY2hh biA9IHBhcmFtcy5jaGFubmVscygpOworICBwYXIuYml0cyA9IFNhbXBsZUZvcm1hdFRvQml0c1Bl ckNoYW5uZWwoa1NhbXBsZUZvcm1hdCk7CisgIHBhci5icHMgPSBwYXIuYml0cyAvIDg7CisgIHBh ci5zaWcgPSBzaWcgPSBwYXIuYml0cyAhPSA4ID8gMSA6IDA7CisgIHBhci5sZSA9IFNJT19MRV9O QVRJVkU7CisgIHBhci5hcHBidWZzeiA9IHBhcmFtcy5mcmFtZXNfcGVyX2J1ZmZlcigpOworCisg IGhkbCA9IHNpb19vcGVuKFNJT19ERVZBTlksIFNJT19SRUMsIDApOworCisgIGlmIChoZGwgPT0g TlVMTCkgeworICAgIExPRyhFUlJPUikgPDwgIkNvdWxkbid0IG9wZW4gYXVkaW8gZGV2aWNlLiI7 CisgICAgcmV0dXJuIGZhbHNlOworICB9CisKKyAgaWYgKCFzaW9fc2V0cGFyKGhkbCwgJnBhcikg fHwgIXNpb19nZXRwYXIoaGRsLCAmcGFyKSkgeworICAgIExPRyhFUlJPUikgPDwgIkNvdWxkbid0 IHNldCBhdWRpbyBwYXJhbWV0ZXJzLiI7CisgICAgZ290byBiYWRfY2xvc2U7CisgIH0KKworICBp ZiAocGFyLnJhdGUgICE9ICh1bnNpZ25lZCBpbnQpcGFyYW1zLnNhbXBsZV9yYXRlKCkgfHwKKyAg ICAgIHBhci5yY2hhbiAhPSAodW5zaWduZWQgaW50KXBhcmFtcy5jaGFubmVscygpIHx8CisgICAg ICBwYXIuYml0cyAgIT0gKHVuc2lnbmVkIGludClTYW1wbGVGb3JtYXRUb0JpdHNQZXJDaGFubmVs KGtTYW1wbGVGb3JtYXQpIHx8CisgICAgICBwYXIuc2lnICAgIT0gKHVuc2lnbmVkIGludClzaWcg fHwKKyAgICAgIChwYXIuYnBzID4gMSAmJiBwYXIubGUgIT0gU0lPX0xFX05BVElWRSkgfHwKKyAg ICAgIChwYXIuYml0cyAhPSBwYXIuYnBzICogOCkpIHsKKyAgICBMT0coRVJST1IpIDw8ICJVbnN1 cHBvcnRlZCBhdWRpbyBwYXJhbWV0ZXJzLiI7CisgICAgZ290byBiYWRfY2xvc2U7CisgIH0KKyAg c3RhdGUgPSBrU3RvcHBlZDsKKyAgYnVmZmVyID0gbmV3IGNoYXJbYXVkaW9fYnVzLT5mcmFtZXMo KSAqIHBhcmFtcy5HZXRCeXRlc1BlckZyYW1lKGtTYW1wbGVGb3JtYXQpXTsKKyAgc2lvX29ubW92 ZShoZGwsICZPbk1vdmVDYWxsYmFjaywgdGhpcyk7CisgIHJldHVybiB0cnVlOworYmFkX2Nsb3Nl OgorICBzaW9fY2xvc2UoaGRsKTsKKyAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIFNuZGlvQXVk aW9JbnB1dFN0cmVhbTo6U3RhcnQoQXVkaW9JbnB1dENhbGxiYWNrKiBjYikgeworCisgIFN0YXJ0 QWdjKCk7CisKKyAgc3RhdGUgPSBrUnVubmluZzsKKyAgaHdfZGVsYXkgPSAwOworICBjYWxsYmFj ayA9IGNiOworICBzaW9fc3RhcnQoaGRsKTsKKyAgaWYgKHB0aHJlYWRfY3JlYXRlKCZ0aHJlYWQs IE5VTEwsICZUaHJlYWRFbnRyeSwgdGhpcykgIT0gMCkgeworICAgIExPRyhFUlJPUikgPDwgIkZh aWxlZCB0byBjcmVhdGUgcmVhbC10aW1lIHRocmVhZCBmb3IgcmVjb3JkaW5nLiI7CisgICAgc2lv X3N0b3AoaGRsKTsKKyAgICBzdGF0ZSA9IGtTdG9wcGVkOworICB9Cit9CisKK3ZvaWQgU25kaW9B dWRpb0lucHV0U3RyZWFtOjpTdG9wKCkgeworCisgIGlmIChzdGF0ZSA9PSBrU3RvcHBlZCkKKyAg ICByZXR1cm47CisKKyAgc3RhdGUgPSBrU3RvcFdhaXQ7CisgIHB0aHJlYWRfam9pbih0aHJlYWQs IE5VTEwpOworICBzaW9fc3RvcChoZGwpOworICBzdGF0ZSA9IGtTdG9wcGVkOworCisgIFN0b3BB Z2MoKTsKK30KKwordm9pZCBTbmRpb0F1ZGlvSW5wdXRTdHJlYW06OkNsb3NlKCkgeworCisgIGlm IChzdGF0ZSA9PSBrQ2xvc2VkKQorICAgIHJldHVybjsKKworICBpZiAoc3RhdGUgPT0ga1J1bm5p bmcpCisgICAgU3RvcCgpOworCisgIHN0YXRlID0ga0Nsb3NlZDsKKyAgZGVsZXRlIFtdIGJ1ZmZl cjsKKyAgc2lvX2Nsb3NlKGhkbCk7CisKKyAgbWFuYWdlci0+UmVsZWFzZUlucHV0U3RyZWFtKHRo aXMpOworfQorCitkb3VibGUgU25kaW9BdWRpb0lucHV0U3RyZWFtOjpHZXRNYXhWb2x1bWUoKSB7 CisgIC8vIE5vdCBzdXBwb3J0ZWQKKyAgcmV0dXJuIDAuMDsKK30KKwordm9pZCBTbmRpb0F1ZGlv SW5wdXRTdHJlYW06OlNldFZvbHVtZShkb3VibGUgdm9sdW1lKSB7CisgIC8vIE5vdCBzdXBwb3J0 ZWQuIERvIG5vdGhpbmcuCit9CisKK2RvdWJsZSBTbmRpb0F1ZGlvSW5wdXRTdHJlYW06OkdldFZv bHVtZSgpIHsKKyAgLy8gTm90IHN1cHBvcnRlZC4KKyAgcmV0dXJuIDAuMDsKK30KKworYm9vbCBT bmRpb0F1ZGlvSW5wdXRTdHJlYW06OklzTXV0ZWQoKSB7CisgIC8vIE5vdCBzdXBwb3J0ZWQuCisg IHJldHVybiBmYWxzZTsKK30KKwordm9pZCBTbmRpb0F1ZGlvSW5wdXRTdHJlYW06OlNldE91dHB1 dERldmljZUZvckFlYygKKyAgICBjb25zdCBzdGQ6OnN0cmluZyYgb3V0cHV0X2RldmljZV9pZCkg eworICAvLyBOb3Qgc3VwcG9ydGVkLgorfQorCit2b2lkIFNuZGlvQXVkaW9JbnB1dFN0cmVhbTo6 VGhyZWFkTG9vcCh2b2lkKSB7CisgIHNpemVfdCB0b2RvLCBuOworICBjaGFyICpkYXRhOworICB1 bnNpZ25lZCBpbnQgbmZyYW1lczsKKyAgZG91YmxlIG5vcm1hbGl6ZWRfdm9sdW1lID0gMC4wOwor CisgIG5mcmFtZXMgPSBhdWRpb19idXMtPmZyYW1lcygpOworCisgIHdoaWxlIChzdGF0ZSA9PSBr UnVubmluZyAmJiAhc2lvX2VvZihoZGwpKSB7CisKKyAgICBHZXRBZ2NWb2x1bWUoJm5vcm1hbGl6 ZWRfdm9sdW1lKTsKKworICAgIC8vIHJlYWQgb25lIGJsb2NrCisgICAgdG9kbyA9IG5mcmFtZXMg KiBwYXJhbXMuR2V0Qnl0ZXNQZXJGcmFtZShrU2FtcGxlRm9ybWF0KTsKKyAgICBkYXRhID0gYnVm ZmVyOworICAgIHdoaWxlICh0b2RvID4gMCkgeworICAgICAgbiA9IHNpb19yZWFkKGhkbCwgZGF0 YSwgdG9kbyk7CisgICAgICBpZiAobiA9PSAwKQorICAgICAgICByZXR1cm47CS8vIHVucmVjb3Zl cmFibGUgSS9PIGVycm9yCisgICAgICB0b2RvIC09IG47CisgICAgICBkYXRhICs9IG47CisgICAg fQorICAgIGh3X2RlbGF5IC09IG5mcmFtZXM7CisKKyAgICAvLyBjb252ZXJ0IGZyYW1lcyBjb3Vu dCB0byBUaW1lRGVsdGEKKyAgICBjb25zdCBiYXNlOjpUaW1lRGVsdGEgZGVsYXkgPSBBdWRpb1Rp bWVzdGFtcEhlbHBlcjo6RnJhbWVzVG9UaW1lKGh3X2RlbGF5LAorICAgICAgcGFyYW1zLnNhbXBs ZV9yYXRlKCkpOworCisgICAgLy8gcHVzaCBpbnRvIGJ1cworICAgIGF1ZGlvX2J1cy0+RnJvbUlu dGVybGVhdmVkKGJ1ZmZlciwgbmZyYW1lcywgU2FtcGxlRm9ybWF0VG9CeXRlc1BlckNoYW5uZWwo a1NhbXBsZUZvcm1hdCkpOworCisgICAgLy8gaW52b2tlIGNhbGxiYWNrCisgICAgY2FsbGJhY2st Pk9uRGF0YShhdWRpb19idXMuZ2V0KCksIGJhc2U6OlRpbWVUaWNrczo6Tm93KCkgLSBkZWxheSwg MS4pOworICB9Cit9CisKK30gIC8vIG5hbWVzcGFjZSBtZWRpYQpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9lbGVjdHJvbjgvZmlsZXMvc25kaW8tZmlsZXMvc25kaW9faW5wdXQuaCBiL3NyY3BrZ3MvZWxl Y3Ryb244L2ZpbGVzL3NuZGlvLWZpbGVzL3NuZGlvX2lucHV0LmgKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwMDAuLmQ4NjhlMDQ2OWRiCi0tLSAvZGV2L251bGwKKysrIGIvc3Jj cGtncy9lbGVjdHJvbjgvZmlsZXMvc25kaW8tZmlsZXMvc25kaW9faW5wdXQuaApAQCAtMCwwICsx LDkxIEBACisvLyBDb3B5cmlnaHQgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0 cyByZXNlcnZlZC4KKy8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEg QlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKKy8vIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZp bGUuCisKKyNpZm5kZWYgTUVESUFfQVVESU9fU05ESU9fU05ESU9fSU5QVVRfSF8KKyNkZWZpbmUg TUVESUFfQVVESU9fU05ESU9fU05ESU9fSU5QVVRfSF8KKworI2luY2x1ZGUgPHN0ZGludC5oPgor I2luY2x1ZGUgPHN0cmluZz4KKyNpbmNsdWRlIDxzbmRpby5oPgorCisjaW5jbHVkZSAiYmFzZS9j b21waWxlcl9zcGVjaWZpYy5oIgorI2luY2x1ZGUgImJhc2UvbWFjcm9zLmgiCisjaW5jbHVkZSAi YmFzZS9tZW1vcnkvd2Vha19wdHIuaCIKKyNpbmNsdWRlICJiYXNlL3RpbWUvdGltZS5oIgorI2lu Y2x1ZGUgIm1lZGlhL2F1ZGlvL2FnY19hdWRpb19zdHJlYW0uaCIKKyNpbmNsdWRlICJtZWRpYS9h dWRpby9hdWRpb19pby5oIgorI2luY2x1ZGUgIm1lZGlhL2F1ZGlvL2F1ZGlvX2RldmljZV9kZXNj cmlwdGlvbi5oIgorI2luY2x1ZGUgIm1lZGlhL2Jhc2UvYXVkaW9fcGFyYW1ldGVycy5oIgorCitu YW1lc3BhY2UgbWVkaWEgeworCitjbGFzcyBBdWRpb01hbmFnZXJCYXNlOworCisvLyBJbXBsZW1l bnRhdGlvbiBvZiBBdWRpb091dHB1dFN0cmVhbSB1c2luZyBzbmRpbyg3KQorY2xhc3MgU25kaW9B dWRpb0lucHV0U3RyZWFtIDogcHVibGljIEFnY0F1ZGlvU3RyZWFtPEF1ZGlvSW5wdXRTdHJlYW0+ IHsKKyBwdWJsaWM6CisgIC8vIFBhc3MgdGhpcyB0byB0aGUgY29uc3RydWN0b3IgaWYgeW91IHdh bnQgdG8gYXR0ZW1wdCBhdXRvLXNlbGVjdGlvbgorICAvLyBvZiB0aGUgYXVkaW8gcmVjb3JkaW5n IGRldmljZS4KKyAgc3RhdGljIGNvbnN0IGNoYXIga0F1dG9TZWxlY3REZXZpY2VbXTsKKworICAv LyBDcmVhdGUgYSBQQ00gT3V0cHV0IHN0cmVhbSBmb3IgdGhlIFNORElPIGRldmljZSBpZGVudGlm aWVkIGJ5CisgIC8vIHxkZXZpY2VfbmFtZXwuIElmIHVuc3VyZSBvZiB3aGF0IHRvIHVzZSBmb3Ig fGRldmljZV9uYW1lfCwgdXNlCisgIC8vIHxrQXV0b1NlbGVjdERldmljZXwuCisgIFNuZGlvQXVk aW9JbnB1dFN0cmVhbShBdWRpb01hbmFnZXJCYXNlKiBhdWRpb19tYW5hZ2VyLAorICAgICAgICAg ICAgICAgICAgICAgY29uc3Qgc3RkOjpzdHJpbmcmIGRldmljZV9uYW1lLAorICAgICAgICAgICAg ICAgICAgICAgY29uc3QgQXVkaW9QYXJhbWV0ZXJzJiBwYXJhbXMpOworCisgIH5TbmRpb0F1ZGlv SW5wdXRTdHJlYW0oKSBvdmVycmlkZTsKKworICAvLyBJbXBsZW1lbnRhdGlvbiBvZiBBdWRpb0lu cHV0U3RyZWFtLgorICBib29sIE9wZW4oKSBvdmVycmlkZTsKKyAgdm9pZCBTdGFydChBdWRpb0lu cHV0Q2FsbGJhY2sqIGNhbGxiYWNrKSBvdmVycmlkZTsKKyAgdm9pZCBTdG9wKCkgb3ZlcnJpZGU7 CisgIHZvaWQgQ2xvc2UoKSBvdmVycmlkZTsKKyAgZG91YmxlIEdldE1heFZvbHVtZSgpIG92ZXJy aWRlOworICB2b2lkIFNldFZvbHVtZShkb3VibGUgdm9sdW1lKSBvdmVycmlkZTsKKyAgZG91Ymxl IEdldFZvbHVtZSgpIG92ZXJyaWRlOworICBib29sIElzTXV0ZWQoKSBvdmVycmlkZTsKKyAgdm9p ZCBTZXRPdXRwdXREZXZpY2VGb3JBZWMoY29uc3Qgc3RkOjpzdHJpbmcmIG91dHB1dF9kZXZpY2Vf aWQpIG92ZXJyaWRlOworCisgcHJpdmF0ZToKKworICBlbnVtIFN0cmVhbVN0YXRlIHsKKyAgICBr Q2xvc2VkLCAgICAgICAgICAgIC8vIE5vdCBvcGVuZWQgeWV0CisgICAga1N0b3BwZWQsICAgICAg ICAgICAvLyBEZXZpY2Ugb3BlbmVkLCBidXQgbm90IHN0YXJ0ZWQgeWV0CisgICAga1J1bm5pbmcs ICAgICAgICAgICAvLyBTdGFydGVkLCBkZXZpY2UgcGxheWluZworICAgIGtTdG9wV2FpdCAgICAg ICAgICAgLy8gU3RvcHBpbmcsIHdhaXRpbmcgZm9yIHRoZSByZWFsLXRpbWUgdGhyZWFkIHRvIGV4 aXQKKyAgfTsKKworICAvLyBDLXN0eWxlIGNhbGwtYmFja3MKKyAgc3RhdGljIHZvaWQgT25Nb3Zl Q2FsbGJhY2sodm9pZCAqYXJnLCBpbnQgZGVsdGEpOworICBzdGF0aWMgdm9pZCogVGhyZWFkRW50 cnkodm9pZCAqYXJnKTsKKworICAvLyBDb250aW51b3VzbHkgbW92ZXMgZGF0YSBmcm9tIHRoZSBk ZXZpY2UgdG8gdGhlIGNvbnN1bWVyCisgIHZvaWQgVGhyZWFkTG9vcCgpOworICAvLyBPdXIgY3Jl YXRvciwgdGhlIGF1ZGlvIG1hbmFnZXIgbmVlZHMgdG8gYmUgbm90aWZpZWQgd2hlbiB3ZSBjbG9z ZS4KKyAgQXVkaW9NYW5hZ2VyQmFzZSogbWFuYWdlcjsKKyAgLy8gUGFyYW1ldGVycyBvZiB0aGUg c291cmNlCisgIEF1ZGlvUGFyYW1ldGVycyBwYXJhbXM7CisgIC8vIFdlIHN0b3JlIGRhdGEgaGVy ZSBmb3IgY29uc3VtZXIKKyAgc3RkOjp1bmlxdWVfcHRyPEF1ZGlvQnVzPiBhdWRpb19idXM7Cisg IC8vIENhbGwtYmFjayB0aGF0IGNvbnN1bWVzIHJlY29yZGVkIGRhdGEKKyAgQXVkaW9JbnB1dENh bGxiYWNrKiBjYWxsYmFjazsgIC8vIFZhbGlkIGR1cmluZyBhIHJlY29yZGluZyBzZXNzaW9uLgor ICAvLyBIYW5kbGUgb2YgdGhlIGF1ZGlvIGRldmljZQorICBzdHJ1Y3Qgc2lvX2hkbCogaGRsOwor ICAvLyBDdXJyZW50IHN0YXRlIG9mIHRoZSBzdHJlYW0KKyAgZW51bSBTdHJlYW1TdGF0ZSBzdGF0 ZTsKKyAgLy8gSGlnaCBwcmlvcml0eSB0aHJlYWQgcnVubmluZyBUaHJlYWRMb29wKCkKKyAgcHRo cmVhZF90IHRocmVhZDsKKyAgLy8gTnVtYmVyIG9mIGZyYW1lcyBidWZmZXJlZCBpbiB0aGUgaGFy ZHdhcmUKKyAgaW50IGh3X2RlbGF5OworICAvLyBUZW1wb3JhcnkgYnVmZmVyIHdoZXJlIGRhdGEg aXMgc3RvcmVkIHNuZGlvLWNvbXBhdGlibGUgZm9ybWF0CisgIGNoYXIqIGJ1ZmZlcjsKKworICBE SVNBTExPV19DT1BZX0FORF9BU1NJR04oU25kaW9BdWRpb0lucHV0U3RyZWFtKTsKK307CisKK30g IC8vIG5hbWVzcGFjZSBtZWRpYQorCisjZW5kaWYgIC8vIE1FRElBX0FVRElPX1NORElPX1NORElP X0lOUFVUX0hfCmRpZmYgLS1naXQgYS9zcmNwa2dzL2VsZWN0cm9uOC9maWxlcy9zbmRpby1maWxl cy9zbmRpb19vdXRwdXQuY2MgYi9zcmNwa2dzL2VsZWN0cm9uOC9maWxlcy9zbmRpby1maWxlcy9z bmRpb19vdXRwdXQuY2MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmE2 NzE5ZjlhYWM4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9lbGVjdHJvbjgvZmlsZXMvc25k aW8tZmlsZXMvc25kaW9fb3V0cHV0LmNjCkBAIC0wLDAgKzEsMTgzIEBACisvLyBDb3B5cmlnaHQg KGMpIDIwMTIgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBV c2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNl IHRoYXQgY2FuIGJlCisvLyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorCisjaW5jbHVkZSAi YmFzZS9sb2dnaW5nLmgiCisjaW5jbHVkZSAiYmFzZS90aW1lL3RpbWUuaCIKKyNpbmNsdWRlICJi YXNlL3RpbWUvZGVmYXVsdF90aWNrX2Nsb2NrLmgiCisjaW5jbHVkZSAibWVkaWEvYXVkaW8vYXVk aW9fbWFuYWdlcl9iYXNlLmgiCisjaW5jbHVkZSAibWVkaWEvYmFzZS9hdWRpb190aW1lc3RhbXBf aGVscGVyLmgiCisjaW5jbHVkZSAibWVkaWEvYXVkaW8vc25kaW8vc25kaW9fb3V0cHV0LmgiCisK K25hbWVzcGFjZSBtZWRpYSB7CisKK3N0YXRpYyBjb25zdCBTYW1wbGVGb3JtYXQga1NhbXBsZUZv cm1hdCA9IGtTYW1wbGVGb3JtYXRTMTY7CisKK3ZvaWQgU25kaW9BdWRpb091dHB1dFN0cmVhbTo6 T25Nb3ZlQ2FsbGJhY2sodm9pZCAqYXJnLCBpbnQgZGVsdGEpIHsKKyAgU25kaW9BdWRpb091dHB1 dFN0cmVhbSogc2VsZiA9IHN0YXRpY19jYXN0PFNuZGlvQXVkaW9PdXRwdXRTdHJlYW0qPihhcmcp OworCisgIHNlbGYtPmh3X2RlbGF5IC09IGRlbHRhOworfQorCit2b2lkIFNuZGlvQXVkaW9PdXRw dXRTdHJlYW06Ok9uVm9sQ2FsbGJhY2sodm9pZCAqYXJnLCB1bnNpZ25lZCBpbnQgdm9sKSB7Cisg IFNuZGlvQXVkaW9PdXRwdXRTdHJlYW0qIHNlbGYgPSBzdGF0aWNfY2FzdDxTbmRpb0F1ZGlvT3V0 cHV0U3RyZWFtKj4oYXJnKTsKKworICBzZWxmLT52b2wgPSB2b2w7Cit9CisKK3ZvaWQgKlNuZGlv QXVkaW9PdXRwdXRTdHJlYW06OlRocmVhZEVudHJ5KHZvaWQgKmFyZykgeworICBTbmRpb0F1ZGlv T3V0cHV0U3RyZWFtKiBzZWxmID0gc3RhdGljX2Nhc3Q8U25kaW9BdWRpb091dHB1dFN0cmVhbSo+ KGFyZyk7CisKKyAgc2VsZi0+VGhyZWFkTG9vcCgpOworICByZXR1cm4gTlVMTDsKK30KKworU25k aW9BdWRpb091dHB1dFN0cmVhbTo6U25kaW9BdWRpb091dHB1dFN0cmVhbShjb25zdCBBdWRpb1Bh cmFtZXRlcnMmIHBhcmFtcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgQXVkaW9NYW5hZ2VyQmFzZSogbWFuYWdlcikKKyAgICA6IG1hbmFnZXIobWFuYWdl ciksCisgICAgICBwYXJhbXMocGFyYW1zKSwKKyAgICAgIGF1ZGlvX2J1cyhBdWRpb0J1czo6Q3Jl YXRlKHBhcmFtcykpLAorICAgICAgc3RhdGUoa0Nsb3NlZCksCisgICAgICBtdXRleChQVEhSRUFE X01VVEVYX0lOSVRJQUxJWkVSKSB7Cit9CisKK1NuZGlvQXVkaW9PdXRwdXRTdHJlYW06On5TbmRp b0F1ZGlvT3V0cHV0U3RyZWFtKCkgeworICBpZiAoc3RhdGUgIT0ga0Nsb3NlZCkKKyAgICBDbG9z ZSgpOworfQorCitib29sIFNuZGlvQXVkaW9PdXRwdXRTdHJlYW06Ok9wZW4oKSB7CisgIHN0cnVj dCBzaW9fcGFyIHBhcjsKKyAgaW50IHNpZzsKKworICBpZiAocGFyYW1zLmZvcm1hdCgpICE9IEF1 ZGlvUGFyYW1ldGVyczo6QVVESU9fUENNX0xJTkVBUiAmJgorICAgICAgcGFyYW1zLmZvcm1hdCgp ICE9IEF1ZGlvUGFyYW1ldGVyczo6QVVESU9fUENNX0xPV19MQVRFTkNZKSB7CisgICAgTE9HKFdB Uk5JTkcpIDw8ICJVbnN1cHBvcnRlZCBhdWRpbyBmb3JtYXQuIjsKKyAgICByZXR1cm4gZmFsc2U7 CisgIH0KKyAgc2lvX2luaXRwYXIoJnBhcik7CisgIHBhci5yYXRlID0gcGFyYW1zLnNhbXBsZV9y YXRlKCk7CisgIHBhci5wY2hhbiA9IHBhcmFtcy5jaGFubmVscygpOworICBwYXIuYml0cyA9IFNh bXBsZUZvcm1hdFRvQml0c1BlckNoYW5uZWwoa1NhbXBsZUZvcm1hdCk7CisgIHBhci5icHMgPSBw YXIuYml0cyAvIDg7CisgIHBhci5zaWcgPSBzaWcgPSBwYXIuYml0cyAhPSA4ID8gMSA6IDA7Cisg IHBhci5sZSA9IFNJT19MRV9OQVRJVkU7CisgIHBhci5hcHBidWZzeiA9IHBhcmFtcy5mcmFtZXNf cGVyX2J1ZmZlcigpOworCisgIGhkbCA9IHNpb19vcGVuKFNJT19ERVZBTlksIFNJT19QTEFZLCAw KTsKKyAgaWYgKGhkbCA9PSBOVUxMKSB7CisgICAgTE9HKEVSUk9SKSA8PCAiQ291bGRuJ3Qgb3Bl biBhdWRpbyBkZXZpY2UuIjsKKyAgICByZXR1cm4gZmFsc2U7CisgIH0KKyAgaWYgKCFzaW9fc2V0 cGFyKGhkbCwgJnBhcikgfHwgIXNpb19nZXRwYXIoaGRsLCAmcGFyKSkgeworICAgIExPRyhFUlJP UikgPDwgIkNvdWxkbid0IHNldCBhdWRpbyBwYXJhbWV0ZXJzLiI7CisgICAgZ290byBiYWRfY2xv c2U7CisgIH0KKyAgaWYgKHBhci5yYXRlICAhPSAodW5zaWduZWQgaW50KXBhcmFtcy5zYW1wbGVf cmF0ZSgpIHx8CisgICAgICBwYXIucGNoYW4gIT0gKHVuc2lnbmVkIGludClwYXJhbXMuY2hhbm5l bHMoKSB8fAorICAgICAgcGFyLmJpdHMgICE9ICh1bnNpZ25lZCBpbnQpU2FtcGxlRm9ybWF0VG9C aXRzUGVyQ2hhbm5lbChrU2FtcGxlRm9ybWF0KSB8fAorICAgICAgcGFyLnNpZyAgICE9ICh1bnNp Z25lZCBpbnQpc2lnIHx8CisgICAgICAocGFyLmJwcyA+IDEgJiYgcGFyLmxlICE9IFNJT19MRV9O QVRJVkUpIHx8CisgICAgICAocGFyLmJpdHMgIT0gcGFyLmJwcyAqIDgpKSB7CisgICAgTE9HKEVS Uk9SKSA8PCAiVW5zdXBwb3J0ZWQgYXVkaW8gcGFyYW1ldGVycy4iOworICAgIGdvdG8gYmFkX2Ns b3NlOworICB9CisgIHN0YXRlID0ga1N0b3BwZWQ7CisgIHZvbHBlbmRpbmcgPSAwOworICB2b2wg PSAwOworICBidWZmZXIgPSBuZXcgY2hhclthdWRpb19idXMtPmZyYW1lcygpICogcGFyYW1zLkdl dEJ5dGVzUGVyRnJhbWUoa1NhbXBsZUZvcm1hdCldOworICBzaW9fb25tb3ZlKGhkbCwgJk9uTW92 ZUNhbGxiYWNrLCB0aGlzKTsKKyAgc2lvX29udm9sKGhkbCwgJk9uVm9sQ2FsbGJhY2ssIHRoaXMp OworICByZXR1cm4gdHJ1ZTsKKyBiYWRfY2xvc2U6CisgIHNpb19jbG9zZShoZGwpOworICByZXR1 cm4gZmFsc2U7Cit9CisKK3ZvaWQgU25kaW9BdWRpb091dHB1dFN0cmVhbTo6Q2xvc2UoKSB7Cisg IGlmIChzdGF0ZSA9PSBrQ2xvc2VkKQorICAgIHJldHVybjsKKyAgaWYgKHN0YXRlID09IGtSdW5u aW5nKQorICAgIFN0b3AoKTsKKyAgc3RhdGUgPSBrQ2xvc2VkOworICBkZWxldGUgW10gYnVmZmVy OworICBzaW9fY2xvc2UoaGRsKTsKKyAgbWFuYWdlci0+UmVsZWFzZU91dHB1dFN0cmVhbSh0aGlz KTsgIC8vIENhbGxzIHRoZSBkZXN0cnVjdG9yCit9CisKK3ZvaWQgU25kaW9BdWRpb091dHB1dFN0 cmVhbTo6U3RhcnQoQXVkaW9Tb3VyY2VDYWxsYmFjayogY2FsbGJhY2spIHsKKyAgc3RhdGUgPSBr UnVubmluZzsKKyAgaHdfZGVsYXkgPSAwOworICBzb3VyY2UgPSBjYWxsYmFjazsKKyAgc2lvX3N0 YXJ0KGhkbCk7CisgIGlmIChwdGhyZWFkX2NyZWF0ZSgmdGhyZWFkLCBOVUxMLCAmVGhyZWFkRW50 cnksIHRoaXMpICE9IDApIHsKKyAgICBMT0coRVJST1IpIDw8ICJGYWlsZWQgdG8gY3JlYXRlIHJl YWwtdGltZSB0aHJlYWQuIjsKKyAgICBzaW9fc3RvcChoZGwpOworICAgIHN0YXRlID0ga1N0b3Bw ZWQ7CisgIH0KK30KKwordm9pZCBTbmRpb0F1ZGlvT3V0cHV0U3RyZWFtOjpTdG9wKCkgeworICBp ZiAoc3RhdGUgPT0ga1N0b3BwZWQpCisgICAgcmV0dXJuOworICBzdGF0ZSA9IGtTdG9wV2FpdDsK KyAgcHRocmVhZF9qb2luKHRocmVhZCwgTlVMTCk7CisgIHNpb19zdG9wKGhkbCk7CisgIHN0YXRl ID0ga1N0b3BwZWQ7Cit9CisKK3ZvaWQgU25kaW9BdWRpb091dHB1dFN0cmVhbTo6U2V0Vm9sdW1l KGRvdWJsZSB2KSB7CisgIHB0aHJlYWRfbXV0ZXhfbG9jaygmbXV0ZXgpOworICB2b2wgPSB2ICog U0lPX01BWFZPTDsKKyAgdm9scGVuZGluZyA9IDE7CisgIHB0aHJlYWRfbXV0ZXhfdW5sb2NrKCZt dXRleCk7Cit9CisKK3ZvaWQgU25kaW9BdWRpb091dHB1dFN0cmVhbTo6R2V0Vm9sdW1lKGRvdWJs ZSogdikgeworICBwdGhyZWFkX211dGV4X2xvY2soJm11dGV4KTsKKyAgKnYgPSB2b2wgKiAoMS4g LyBTSU9fTUFYVk9MKTsKKyAgcHRocmVhZF9tdXRleF91bmxvY2soJm11dGV4KTsKK30KKworLy8g VGhpcyBzdHJlYW0gaXMgYWx3YXlzIHVzZWQgd2l0aCBzdWIgc2Vjb25kIGJ1ZmZlciBzaXplcywg d2hlcmUgaXQncworLy8gc3VmZmljaWVudCB0byBzaW1wbHkgYWx3YXlzIGZsdXNoIHVwb24gU3Rh cnQoKS4KK3ZvaWQgU25kaW9BdWRpb091dHB1dFN0cmVhbTo6Rmx1c2goKSB7fQorCit2b2lkIFNu ZGlvQXVkaW9PdXRwdXRTdHJlYW06OlRocmVhZExvb3Aodm9pZCkgeworICBpbnQgYXZhaWwsIGNv dW50LCByZXN1bHQ7CisKKyAgd2hpbGUgKHN0YXRlID09IGtSdW5uaW5nKSB7CisgICAgLy8gVXBk YXRlIHZvbHVtZSBpZiBuZWVkZWQKKyAgICBwdGhyZWFkX211dGV4X2xvY2soJm11dGV4KTsKKyAg ICBpZiAodm9scGVuZGluZykgeworICAgICAgdm9scGVuZGluZyA9IDA7CisgICAgICBzaW9fc2V0 dm9sKGhkbCwgdm9sKTsKKyAgICB9CisgICAgcHRocmVhZF9tdXRleF91bmxvY2soJm11dGV4KTsK KworICAgIC8vIEdldCBkYXRhIHRvIHBsYXkKKyAgICBjb25zdCBiYXNlOjpUaW1lRGVsdGEgZGVs YXkgPSBBdWRpb1RpbWVzdGFtcEhlbHBlcjo6RnJhbWVzVG9UaW1lKGh3X2RlbGF5LAorCXBhcmFt cy5zYW1wbGVfcmF0ZSgpKTsKKyAgICBjb3VudCA9IHNvdXJjZS0+T25Nb3JlRGF0YShkZWxheSwg YmFzZTo6VGltZVRpY2tzOjpOb3coKSwgMCwgYXVkaW9fYnVzLmdldCgpKTsKKyAgICBhdWRpb19i dXMtPlRvSW50ZXJsZWF2ZWQoY291bnQsIFNhbXBsZUZvcm1hdFRvQnl0ZXNQZXJDaGFubmVsKGtT YW1wbGVGb3JtYXQpLCBidWZmZXIpOworICAgIGlmIChjb3VudCA9PSAwKSB7CisgICAgICAvLyBX ZSBoYXZlIHRvIHN1Ym1pdCBzb21ldGhpbmcgdG8gdGhlIGRldmljZQorICAgICAgY291bnQgPSBh dWRpb19idXMtPmZyYW1lcygpOworICAgICAgbWVtc2V0KGJ1ZmZlciwgMCwgY291bnQgKiBwYXJh bXMuR2V0Qnl0ZXNQZXJGcmFtZShrU2FtcGxlRm9ybWF0KSk7CisgICAgICBMT0coV0FSTklORykg PDwgIk5vIGRhdGEgdG8gcGxheSwgcnVubmluZyBlbXB0eSBjeWNsZS4iOworICAgIH0KKworICAg IC8vIFN1Ym1pdCBkYXRhIHRvIHRoZSBkZXZpY2UKKyAgICBhdmFpbCA9IGNvdW50ICogcGFyYW1z LkdldEJ5dGVzUGVyRnJhbWUoa1NhbXBsZUZvcm1hdCk7CisgICAgcmVzdWx0ID0gc2lvX3dyaXRl KGhkbCwgYnVmZmVyLCBhdmFpbCk7CisgICAgaWYgKHJlc3VsdCA9PSAwKSB7CisgICAgICBMT0co V0FSTklORykgPDwgIkF1ZGlvIGRldmljZSBkaXNjb25uZWN0ZWQuIjsKKyAgICAgIGJyZWFrOwor ICAgIH0KKworICAgIC8vIFVwZGF0ZSBoYXJkd2FyZSBwb2ludGVyCisgICAgaHdfZGVsYXkgKz0g Y291bnQ7CisgIH0KK30KKworfSAgLy8gbmFtZXNwYWNlIG1lZGlhCmRpZmYgLS1naXQgYS9zcmNw a2dzL2VsZWN0cm9uOC9maWxlcy9zbmRpby1maWxlcy9zbmRpb19vdXRwdXQuaCBiL3NyY3BrZ3Mv ZWxlY3Ryb244L2ZpbGVzL3NuZGlvLWZpbGVzL3NuZGlvX291dHB1dC5oCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5lYWQyMjBjYTk2ZQotLS0gL2Rldi9udWxsCisrKyBi L3NyY3BrZ3MvZWxlY3Ryb244L2ZpbGVzL3NuZGlvLWZpbGVzL3NuZGlvX291dHB1dC5oCkBAIC0w LDAgKzEsODYgQEAKKy8vIENvcHlyaWdodCAoYykgMjAxMiBUaGUgQ2hyb21pdW0gQXV0aG9ycy4g QWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVy bmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKKy8vIGZvdW5kIGluIHRoZSBM SUNFTlNFIGZpbGUuCisKKyNpZm5kZWYgTUVESUFfQVVESU9fU05ESU9fU05ESU9fT1VUUFVUX0hf CisjZGVmaW5lIE1FRElBX0FVRElPX1NORElPX1NORElPX09VVFBVVF9IXworCisjaW5jbHVkZSA8 cHRocmVhZC5oPgorI2luY2x1ZGUgPHNuZGlvLmg+CisKKyNpbmNsdWRlICJiYXNlL3RpbWUvdGlj a19jbG9jay5oIgorI2luY2x1ZGUgImJhc2UvdGltZS90aW1lLmgiCisjaW5jbHVkZSAibWVkaWEv YXVkaW8vYXVkaW9faW8uaCIKKworbmFtZXNwYWNlIG1lZGlhIHsKKworY2xhc3MgQXVkaW9NYW5h Z2VyQmFzZTsKKworLy8gSW1wbGVtZW50YXRpb24gb2YgQXVkaW9PdXRwdXRTdHJlYW0gdXNpbmcg c25kaW8oNykKK2NsYXNzIFNuZGlvQXVkaW9PdXRwdXRTdHJlYW0gOiBwdWJsaWMgQXVkaW9PdXRw dXRTdHJlYW0geworIHB1YmxpYzoKKyAgLy8gVGhlIG1hbmFnZXIgaXMgY3JlYXRpbmcgdGhpcyBv YmplY3QKKyAgU25kaW9BdWRpb091dHB1dFN0cmVhbShjb25zdCBBdWRpb1BhcmFtZXRlcnMmIHBh cmFtcywKKyAgICAgICAgICAgICAgICAgICAgICAgICBBdWRpb01hbmFnZXJCYXNlKiBtYW5hZ2Vy KTsKKyAgdmlydHVhbCB+U25kaW9BdWRpb091dHB1dFN0cmVhbSgpOworCisgIC8vIEltcGxlbWVu dGF0aW9uIG9mIEF1ZGlvT3V0cHV0U3RyZWFtLgorICBib29sIE9wZW4oKSBvdmVycmlkZTsKKyAg dm9pZCBDbG9zZSgpIG92ZXJyaWRlOworICB2b2lkIFN0YXJ0KEF1ZGlvU291cmNlQ2FsbGJhY2sq IGNhbGxiYWNrKSBvdmVycmlkZTsKKyAgdm9pZCBTdG9wKCkgb3ZlcnJpZGU7CisgIHZvaWQgU2V0 Vm9sdW1lKGRvdWJsZSB2b2x1bWUpIG92ZXJyaWRlOworICB2b2lkIEdldFZvbHVtZShkb3VibGUq IHZvbHVtZSkgb3ZlcnJpZGU7CisgIHZvaWQgRmx1c2goKSBvdmVycmlkZTsKKworICBmcmllbmQg dm9pZCBzbmRpb19vbm1vdmUodm9pZCAqYXJnLCBpbnQgZGVsdGEpOworICBmcmllbmQgdm9pZCBz bmRpb19vbnZvbCh2b2lkICphcmcsIHVuc2lnbmVkIGludCB2b2wpOworICBmcmllbmQgdm9pZCAq c25kaW9fdGhyZWFkc3RhcnQodm9pZCAqYXJnKTsKKworIHByaXZhdGU6CisgIGVudW0gU3RyZWFt U3RhdGUgeworICAgIGtDbG9zZWQsICAgICAgICAgICAgLy8gTm90IG9wZW5lZCB5ZXQKKyAgICBr U3RvcHBlZCwgICAgICAgICAgIC8vIERldmljZSBvcGVuZWQsIGJ1dCBub3Qgc3RhcnRlZCB5ZXQK KyAgICBrUnVubmluZywgICAgICAgICAgIC8vIFN0YXJ0ZWQsIGRldmljZSBwbGF5aW5nCisgICAg a1N0b3BXYWl0ICAgICAgICAgICAvLyBTdG9wcGluZywgd2FpdGluZyBmb3IgdGhlIHJlYWwtdGlt ZSB0aHJlYWQgdG8gZXhpdAorICB9OworCisgIC8vIEMtc3R5bGUgY2FsbC1iYWNrcworICBzdGF0 aWMgdm9pZCBPbk1vdmVDYWxsYmFjayh2b2lkICphcmcsIGludCBkZWx0YSk7CisgIHN0YXRpYyB2 b2lkIE9uVm9sQ2FsbGJhY2sodm9pZCAqYXJnLCB1bnNpZ25lZCBpbnQgdm9sKTsKKyAgc3RhdGlj IHZvaWQqIFRocmVhZEVudHJ5KHZvaWQgKmFyZyk7CisKKyAgLy8gQ29udGludW91c2x5IG1vdmVz IGRhdGEgZnJvbSB0aGUgcHJvZHVjZXIgdG8gdGhlIGRldmljZQorICB2b2lkIFRocmVhZExvb3Ao dm9pZCk7CisKKyAgLy8gT3VyIGNyZWF0b3IsIHRoZSBhdWRpbyBtYW5hZ2VyIG5lZWRzIHRvIGJl IG5vdGlmaWVkIHdoZW4gd2UgY2xvc2UuCisgIEF1ZGlvTWFuYWdlckJhc2UqIG1hbmFnZXI7Cisg IC8vIFBhcmFtZXRlcnMgb2YgdGhlIHNvdXJjZQorICBBdWRpb1BhcmFtZXRlcnMgcGFyYW1zOwor ICAvLyBTb3VyY2Ugc3RvcmVzIGRhdGEgaGVyZQorICBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9CdXM+ IGF1ZGlvX2J1czsKKyAgLy8gQ2FsbC1iYWNrIHRoYXQgcHJvZHVjZXMgZGF0YSB0byBwbGF5Cisg IEF1ZGlvU291cmNlQ2FsbGJhY2sqIHNvdXJjZTsKKyAgLy8gSGFuZGxlIG9mIHRoZSBhdWRpbyBk ZXZpY2UKKyAgc3RydWN0IHNpb19oZGwqIGhkbDsKKyAgLy8gQ3VycmVudCBzdGF0ZSBvZiB0aGUg c3RyZWFtCisgIGVudW0gU3RyZWFtU3RhdGUgc3RhdGU7CisgIC8vIEhpZ2ggcHJpb3JpdHkgdGhy ZWFkIHJ1bm5pbmcgVGhyZWFkTG9vcCgpCisgIHB0aHJlYWRfdCB0aHJlYWQ7CisgIC8vIFByb3Rl Y3RzIHZvbCwgdm9scGVuZGluZyBhbmQgaHdfZGVsYXkKKyAgcHRocmVhZF9tdXRleF90IG11dGV4 OworICAvLyBDdXJyZW50IHZvbHVtZSBpbiB0aGUgMC4uU0lPX01BWFZPTCByYW5nZQorICBpbnQg dm9sOworICAvLyBTZXQgdG8gMSBpZiB2b2x1bWVzIG11c3QgYmUgcmVmcmVzaGVkIGluIHRoZSBy ZWFsdGltZSB0aHJlYWQKKyAgaW50IHZvbHBlbmRpbmc7CisgIC8vIE51bWJlciBvZiBmcmFtZXMg YnVmZmVyZWQgaW4gdGhlIGhhcmR3YXJlCisgIGludCBod19kZWxheTsKKyAgLy8gVGVtcG9yYXJ5 IGJ1ZmZlciB3aGVyZSBkYXRhIGlzIHN0b3JlZCBzbmRpby1jb21wYXRpYmxlIGZvcm1hdAorICBj aGFyKiBidWZmZXI7CisKKyAgRElTQUxMT1dfQ09QWV9BTkRfQVNTSUdOKFNuZGlvQXVkaW9PdXRw dXRTdHJlYW0pOworfTsKKworfSAgLy8gbmFtZXNwYWNlIG1lZGlhCisKKyNlbmRpZiAgLy8gTUVE SUFfQVVESU9fU05ESU9fU05ESU9fT1VUUFVUX0hfCmRpZmYgLS1naXQgYS9zcmNwa2dzL2VsZWN0 cm9uOC9maWxlcy9zbmRpby1wYXRjaGVzL21lZGlhX2F1ZGlvX2xpbnV4X2F1ZGlvX21hbmFnZXJf bGludXguY2MucGF0Y2ggYi9zcmNwa2dzL2VsZWN0cm9uOC9maWxlcy9zbmRpby1wYXRjaGVzL21l ZGlhX2F1ZGlvX2xpbnV4X2F1ZGlvX21hbmFnZXJfbGludXguY2MucGF0Y2gKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmNmOGU4MWIxMWQ2Ci0tLSAvZGV2L251bGwKKysr IGIvc3JjcGtncy9lbGVjdHJvbjgvZmlsZXMvc25kaW8tcGF0Y2hlcy9tZWRpYV9hdWRpb19saW51 eF9hdWRpb19tYW5hZ2VyX2xpbnV4LmNjLnBhdGNoCkBAIC0wLDAgKzEsNDMgQEAKK2RpZmYgLS1n aXQgYS9jaHJvbWl1bS9tZWRpYS9hdWRpby9saW51eC9hdWRpb19tYW5hZ2VyX2xpbnV4LmNjIGIv Y2hyb21pdW0vbWVkaWEvYXVkaW8vbGludXgvYXVkaW9fbWFuYWdlcl9saW51eC5jYworaW5kZXgg NWQ3MDM1NDkzNzIuLjllNjBiNDBjNzQ5IDEwMDY0NAorLS0tIG1lZGlhL2F1ZGlvL2xpbnV4L2F1 ZGlvX21hbmFnZXJfbGludXguY2MKKysrKyBtZWRpYS9hdWRpby9saW51eC9hdWRpb19tYW5hZ2Vy X2xpbnV4LmNjCitAQCAtMjAsNiArMjAsMTAgQEAKKyAjaW5jbHVkZSAibWVkaWEvYXVkaW8vcHVs c2UvYXVkaW9fbWFuYWdlcl9wdWxzZS5oIgorICNpbmNsdWRlICJtZWRpYS9hdWRpby9wdWxzZS9w dWxzZV91dGlsLmgiCisgI2VuZGlmCisrI2lmIGRlZmluZWQoVVNFX1NORElPKQorKyNpbmNsdWRl IDxzbmRpby5oPgorKyNpbmNsdWRlICJtZWRpYS9hdWRpby9vcGVuYnNkL2F1ZGlvX21hbmFnZXJf b3BlbmJzZC5oIgorKyNlbmRpZgorIAorIG5hbWVzcGFjZSBtZWRpYSB7CisgCitAQCAtMjcsNyAr MzEsOCBAQCBlbnVtIExpbnV4QXVkaW9JTyB7CisgICBrUHVsc2UsCisgICBrQWxzYSwKKyAgIGtD cmFzLAorLSAga0F1ZGlvSU9NYXggPSBrQ3JhcyAgLy8gTXVzdCBhbHdheXMgYmUgZXF1YWwgdG8g bGFyZ2VzdCBsb2dnZWQgZW50cnkuCisrICBrU25kaW8sCisrICBrQXVkaW9JT01heCA9IGtTbmRp byAgLy8gTXVzdCBhbHdheXMgYmUgZXF1YWwgdG8gbGFyZ2VzdCBsb2dnZWQgZW50cnkuCisgfTsK KyAKKyBzdGQ6OnVuaXF1ZV9wdHI8bWVkaWE6OkF1ZGlvTWFuYWdlcj4gQ3JlYXRlQXVkaW9NYW5h Z2VyKAorQEAgLTQxLDYgKzQ2LDE3IEBAIHN0ZDo6dW5pcXVlX3B0cjxtZWRpYTo6QXVkaW9NYW5h Z2VyPiBDcmVhdGVBdWRpb01hbmFnZXIoCisgICB9CisgI2VuZGlmCisgCisrI2lmIGRlZmluZWQo VVNFX1NORElPKQorKyAgc3RydWN0IHNpb19oZGwgKiBoZGwgPSBOVUxMOworKyAgaWYgKChoZGw9 c2lvX29wZW4oU0lPX0RFVkFOWSwgU0lPX1BMQVksIDEpKSAhPSBOVUxMKSB7CisrICAgIHNpb19j bG9zZShoZGwpOworKyAgICBVTUFfSElTVE9HUkFNX0VOVU1FUkFUSU9OKCJNZWRpYS5MaW51eEF1 ZGlvSU8iLCBrU25kaW8sIGtBdWRpb0lPTWF4ICsxKTsKKysgICAgcmV0dXJuIHN0ZDo6bWFrZV91 bmlxdWU8QXVkaW9NYW5hZ2VyT3BlbkJTRD4oc3RkOjptb3ZlKGF1ZGlvX3RocmVhZCksCisrICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdWRpb19sb2dfZmFj dG9yeSk7CisrICB9CisrICBEVkxPRygxKSA8PCAiU25kaW8gaXMgbm90IGF2YWlsYWJsZSBvbiB0 aGUgT1MiOworKyNlbmRpZgorKworICNpZiBkZWZpbmVkKFVTRV9QVUxTRUFVRElPKQorICAgcGFf dGhyZWFkZWRfbWFpbmxvb3AqIHBhX21haW5sb29wID0gbnVsbHB0cjsKKyAgIHBhX2NvbnRleHQq IHBhX2NvbnRleHQgPSBudWxscHRyOwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9lbGVjdHJvbjgvZmls ZXMvc25kaW8tcGF0Y2hlcy9zcmNfM3JkcGFydHlfY2hyb21pdW1fbWVkaWFfQlVJTEQuZ24ucGF0 Y2ggYi9zcmNwa2dzL2VsZWN0cm9uOC9maWxlcy9zbmRpby1wYXRjaGVzL3NyY18zcmRwYXJ0eV9j aHJvbWl1bV9tZWRpYV9CVUlMRC5nbi5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAwMC4uZWM2MDQwMDI2NjgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2VsZWN0 cm9uOC9maWxlcy9zbmRpby1wYXRjaGVzL3NyY18zcmRwYXJ0eV9jaHJvbWl1bV9tZWRpYV9CVUlM RC5nbi5wYXRjaApAQCAtMCwwICsxLDEyIEBACistLS0gbWVkaWEvQlVJTEQuZ24JMjAyMC0wMy0y NCAxMDoxNjozMC4wMDAwMDAwMDAgKzAxMDAKKysrKyAtCTIwMjAtMDQtMDYgMTQ6MzI6MjcuOTYw ODE3NTEzICswMjAwCitAQCAtNjUsNiArNjUsOSBAQAorICAgaWYgKHVzZV9jcmFzKSB7CisgICAg IGRlZmluZXMgKz0gWyAiVVNFX0NSQVMiIF0KKyAgIH0KKysgIGlmICh1c2Vfc25kaW8pIHsKKysg ICAgZGVmaW5lcyArPSBbICJVU0VfU05ESU8iIF0KKysgIH0KKyB9CisgCisgIyBJbnRlcm5hbCBn cm91cGluZyBvZiB0aGUgY29uZmlncyBuZWNlc3NhcnkgdG8gc3VwcG9ydCBzdWItZm9sZGVycyBo YXZpbmcgdGhlaXIKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZWxlY3Ryb244L2ZpbGVzL3NuZGlvLXBh dGNoZXMvc3JjXzNyZHBhcnR5X2Nocm9taXVtX21lZGlhX2F1ZGlvX0JVSUxELmduLnBhdGNoIGIv c3JjcGtncy9lbGVjdHJvbjgvZmlsZXMvc25kaW8tcGF0Y2hlcy9zcmNfM3JkcGFydHlfY2hyb21p dW1fbWVkaWFfYXVkaW9fQlVJTEQuZ24ucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMDAuLmIzNzAwZWVmODk4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9lbGVj dHJvbjgvZmlsZXMvc25kaW8tcGF0Y2hlcy9zcmNfM3JkcGFydHlfY2hyb21pdW1fbWVkaWFfYXVk aW9fQlVJTEQuZ24ucGF0Y2gKQEAgLTAsMCArMSwyMyBAQAorLS0tIG1lZGlhL2F1ZGlvL0JVSUxE LmduCTIwMjAtMDMtMjQgMTA6MTY6MzAuMDAwMDAwMDAwICswMTAwCisrKysgLQkyMDIwLTA0LTA2 IDE0OjMxOjI4Ljg3MTQ1MDIxNyArMDIwMAorQEAgLTIzMiw5ICsyMzIsMTkgQEAKKyAgICAgZGVw cyArPSBbICIvL21lZGlhL2Jhc2UvYW5kcm9pZDptZWRpYV9qbmlfaGVhZGVycyIgXQorICAgfQor IAorLSAgaWYgKGlzX2xpbnV4KSB7CisrICBpZiAoaXNfbGludXggJiYgdXNlX3NuZGlvKSB7Cisg ICAgIHNvdXJjZXMgKz0gWyAibGludXgvYXVkaW9fbWFuYWdlcl9saW51eC5jYyIgXQorICAgfQor KyAgaWYgKHVzZV9zbmRpbykgeworKyAgICBsaWJzICs9IFsgInNuZGlvIiBdCisrICAgIHNvdXJj ZXMgKz0gWworKyAgICAgICJvcGVuYnNkL2F1ZGlvX21hbmFnZXJfb3BlbmJzZC5jYyIsCisrICAg ICAgInNuZGlvL3NuZGlvX2lucHV0LmNjIiwKKysgICAgICAic25kaW8vc25kaW9faW5wdXQuaCIs CisrICAgICAgInNuZGlvL3NuZGlvX291dHB1dC5jYyIsCisrICAgICAgInNuZGlvL3NuZGlvX291 dHB1dC5oIgorKyAgIF0KKysgfQorIAorICAgaWYgKHVzZV9hbHNhKSB7CisgICAgIGxpYnMgKz0g WyAiYXNvdW5kIiBdCmRpZmYgLS1naXQgYS9zcmNwa2dzL2VsZWN0cm9uOC9maWxlcy9zbmRpby1w YXRjaGVzL3NyY18zcmRwYXJ0eV9jaHJvbWl1bV9tZWRpYV9tZWRpYV9fb3B0aW9ucy5nbmkucGF0 Y2ggYi9zcmNwa2dzL2VsZWN0cm9uOC9maWxlcy9zbmRpby1wYXRjaGVzL3NyY18zcmRwYXJ0eV9j aHJvbWl1bV9tZWRpYV9tZWRpYV9fb3B0aW9ucy5nbmkucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwMDAuLjE0ODA3ZDhlMWQzCi0tLSAvZGV2L251bGwKKysrIGIvc3Jj cGtncy9lbGVjdHJvbjgvZmlsZXMvc25kaW8tcGF0Y2hlcy9zcmNfM3JkcGFydHlfY2hyb21pdW1f bWVkaWFfbWVkaWFfX29wdGlvbnMuZ25pLnBhdGNoCkBAIC0wLDAgKzEsMTIgQEAKKy0tLSBtZWRp YS9tZWRpYV9vcHRpb25zLmduaQkyMDIwLTAzLTI0IDEwOjE2OjMwLjAwMDAwMDAwMCArMDEwMAor KysrIC0JMjAyMC0wNC0wNiAxNDoyOToyMi45NTg2MzA3ODMgKzAyMDAKK0BAIC0xMTQsNiArMTE0 LDkgQEAKKyAgICMgRW5hYmxlcyBydW50aW1lIHNlbGVjdGlvbiBvZiBBTFNBIGxpYnJhcnkgZm9y IGF1ZGlvLgorICAgdXNlX2Fsc2EgPSBmYWxzZQorIAorKyAgIyBFbmFibGVzIHJ1bnRpbWUgc2Vs ZWN0aW9uIG9mIHNuZGlvIGxpYnJhcnkgZm9yIGF1ZGlvLgorKyAgdXNlX3NuZGlvID0gZmFsc2UK KysKKyAgICMgQWxzYSBzaG91bGQgYmUgdXNlZCBvbiBub24tQW5kcm9pZCwgbm9uLU1hYyBQT1NJ WCBzeXN0ZW1zLgorICAgIyBBbHNhIHNob3VsZCBiZSB1c2VkIG9uIGRlc2t0b3AgQ2hyb21lY2Fz dCBhbmQgYXVkaW8tb25seSBDaHJvbWVjYXN0IGJ1aWxkcy4KKyAgIGlmIChpc19wb3NpeCAmJiAh aXNfYW5kcm9pZCAmJiAhaXNfbWFjICYmCmRpZmYgLS1naXQgYS9zcmNwa2dzL2VsZWN0cm9uOC90 ZW1wbGF0ZSBiL3NyY3BrZ3MvZWxlY3Ryb244L3RlbXBsYXRlCmluZGV4IDU0YTFmODVjNDg0Li5h NGI2NjNlNzI2YSAxMDA2NDQKLS0tIGEvc3JjcGtncy9lbGVjdHJvbjgvdGVtcGxhdGUKKysrIGIv c3JjcGtncy9lbGVjdHJvbjgvdGVtcGxhdGUKQEAgLTE3LDcgKzE3LDcgQEAgbWFrZWRlcGVuZHM9 ImxpYnBuZy1kZXZlbCBndGsrLWRldmVsIGd0ayszLWRldmVsIG5zcy1kZXZlbCBwY2l1dGlscy1k ZXZlbAogIGxpYlhjdXJzb3ItZGV2ZWwgbGliZmxhYy1kZXZlbCBzcGVleC1kZXZlbCBsaWJtdHAt ZGV2ZWwgbGlid2VicC1kZXZlbAogIGxpYmpwZWctdHVyYm8tZGV2ZWwgbGliZXZlbnQtZGV2ZWwg anNvbi1jLWRldmVsIGhhcmZidXp6LWRldmVsCiAgbWluaXppcC1kZXZlbCBqc29uY3BwLWRldmVs IHpsaWItZGV2ZWwgbGliY2FwLWRldmVsIGxpYlhkYW1hZ2UtZGV2ZWwKLSByZTItZGV2ZWwgZm9u dGNvbmZpZy1kZXZlbCBmcmVldHlwZS1kZXZlbCBvcHVzLWRldmVsCisgcmUyLWRldmVsIGZvbnRj b25maWctZGV2ZWwgZnJlZXR5cGUtZGV2ZWwgb3B1cy1kZXZlbCAkKHZvcHRfaWYgc25kaW8gc25k aW8tZGV2ZWwpCiAgZmZtcGVnLWRldmVsIGxpYnZhLWRldmVsIGxpYnV2LWRldmVsIGMtYXJlcy1k ZXZlbCBsaWJub3RpZnktZGV2ZWwiCiBkZXBlbmRzPSIiCiBzaG9ydF9kZXNjPSJDcm9zcyBwbGF0 Zm9ybSBhcHBsaWNhdGlvbiBkZXZlbG9wbWVudCBmcmFtZXdvcmsgYmFzZWQgb24gd2ViIHRlY2hu b2xvZ2llcyIKQEAgLTM1LDggKzM1LDggQEAgbGliMzJkaXNhYmxlZD15ZXMKIG5vZGVidWc9eWVz CiBub3BpZT15ZXMgICMgY29udGFpbnMgdG9vbHMgdGhhdCBhcmUgbm90IFBJRSwgZW5hYmxlcyBQ SUUgaXRzZWxmCiAKLWJ1aWxkX29wdGlvbnM9InB1bHNlYXVkaW8iCi1idWlsZF9vcHRpb25zX2Rl ZmF1bHQ9InB1bHNlYXVkaW8iCitidWlsZF9vcHRpb25zPSJwdWxzZWF1ZGlvIHNuZGlvIgorYnVp bGRfb3B0aW9uc19kZWZhdWx0PSJwdWxzZWF1ZGlvIHNuZGlvIgogCiBfYnVpbGR0eXBlPVJlbGVh c2UKIF9pc19kZWJ1Zz1mYWxzZQpAQCAtNTcsMTMgKzU3LDEzIEBAIHBvc3RfcGF0Y2goKSB7CiAJ CWNhc2UgIiR7eCMjKi99IiBpbgogCQkJY2hyb21pdW0qLnBhdGNoKQogCQkJCWNkIHNyYwotCQkJ CWVjaG8gUGF0Y2hpbmcgJHgKKwkJCQllY2hvIEFwcGx5aW5nICR4CiAJCQkJcGF0Y2ggLXAxIC1p ICIkeCIKIAkJCQljZCAiJHdya3NyYyIKIAkJCQk7OwogCQkJZWxlY3Ryb24qLnBhdGNoKQogCQkJ CWNkIHNyYy9lbGVjdHJvbgotCQkJCWVjaG8gUGF0Y2hpbmcgJHgKKwkJCQllY2hvIEFwcGx5aW5n ICR4CiAJCQkJcGF0Y2ggLXAxIC1pICIkeCIKIAkJCQljZCAiJHdya3NyYyIKIAkJZXNhYwpAQCAt NzQsMTggKzc0LDMxIEBAIHBvc3RfcGF0Y2goKSB7CiAJCWNhc2UgIiR7eCMjKi99IiBpbgogCQkJ Y2hyb21pdW0qLnBhdGNoKQogCQkJCWNkIHNyYwotCQkJCWVjaG8gUGF0Y2hpbmcgJHgKKwkJCQll Y2hvIEFwcGx5aW5nICR4CiAJCQkJcGF0Y2ggLXAxIC1pICIkeCIKIAkJCQljZCAiJHdya3NyYyIK IAkJCQk7OwogCQkJZWxlY3Ryb24qLnBhdGNoKQogCQkJCWNkIHNyYy9lbGVjdHJvbgotCQkJCWVj aG8gUGF0Y2hpbmcgJHgKKwkJCQllY2hvIEFwcGx5aW5nICR4CiAJCQkJcGF0Y2ggLXAxIC1pICIk eCIKIAkJCQljZCAiJHdya3NyYyIKIAkJZXNhYwogCWRvbmUKIAlmaQorCWlmIFsgIiRidWlsZF9v cHRpb25fc25kaW8iIF07IHRoZW4KKwkJbWtkaXIgLXAgJHt3cmtzcmN9LyR7YnVpbGRfd3Jrc3Jj fS9tZWRpYS9hdWRpby97c25kaW8sb3BlbmJzZH0KKwkJY3AgJHtGSUxFU0RJUn0vc25kaW8tZmls ZXMvc25kaW9fKnB1dC4qIFwKKwkJCSR7d3Jrc3JjfS8ke2J1aWxkX3dya3NyY30vbWVkaWEvYXVk aW8vc25kaW8KKwkJY3AgJHtGSUxFU0RJUn0vc25kaW8tZmlsZXMvYXVkaW9fbWFuYWdlcl9vcGVu YnNkLiogXAorCQkJJHt3cmtzcmN9LyR7YnVpbGRfd3Jrc3JjfS9tZWRpYS9hdWRpby9vcGVuYnNk CisJCWZvciBmIGluICIke0ZJTEVTRElSfSIvc25kaW8tcGF0Y2hlcy8qLnBhdGNoOyBkbworCQkJ Y2Qgc3JjCisJCQllY2hvICJBcHBseWluZyAkZiIKKwkJCXBhdGNoIC1OcDAgLWkgIiRmIgorCQkJ Y2QgIiR3cmtzcmMiCisJCWRvbmUKKwlmaQogfQogCiBwcmVfY29uZmlndXJlKCkgewpAQCAtMTY4 LDkgKzE4MSw4IEBAIGRvX2NvbmZpZ3VyZSgpIHsKIAkJLS13aXRob3V0LWR0cmFjZSBcCiAJCS0t d2l0aG91dC1idW5kbGVkLXY4CiAKLQljZCAiJHdya3NyYy8kYnVpbGRfd3Jrc3JjIi9lbGVjdHJv bgotCXlhcm4gaW5zdGFsbAotCWVjaG8gJHdya3NyYy8kYnVpbGRfd3Jrc3JjCisJY2QgIiR3cmtz cmMvJGJ1aWxkX3dya3NyYy9lbGVjdHJvbiIKKwl5YXJuIGluc3RhbGwgLS1mcm96ZW4tbG9ja2Zp bGUKIAljZCAiJHdya3NyYy8kYnVpbGRfd3Jrc3JjIgogCiAJIyBHb29nbGUgQVBJIGtleXMgKHNl ZSBodHRwOi8vd3d3LmNocm9taXVtLm9yZy9kZXZlbG9wZXJzL2hvdy10b3MvYXBpLWtleXMpCkBA IC0yMTMsNiArMjI1LDcgQEAgZG9fY29uZmlndXJlKCkgewogCQkndXNlX2xsZD1mYWxzZScKIAkJ InVzZV9wdWxzZWF1ZGlvPSQodm9wdF9pZiBwdWxzZWF1ZGlvICd0cnVlJyAnZmFsc2UnKSIKIAkJ ImxpbmtfcHVsc2VhdWRpbz0kKHZvcHRfaWYgcHVsc2VhdWRpbyAndHJ1ZScgJ2ZhbHNlJykiCisJ CSJ1c2Vfc25kaW89JCh2b3B0X2lmIHNuZGlvICd0cnVlJyAnZmFsc2UnKSIKIAkJJ3VzZV9zeXNy b290PWZhbHNlJwogCQkndXNlX3N5c3RlbV9oYXJmYnV6ej10cnVlJwogCQknaW1wb3J0KCIvL2Vs ZWN0cm9uL2J1aWxkL2FyZ3MvcmVsZWFzZS5nbiIpJwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9lbGVj dHJvbjgvdXBkYXRlIGIvc3JjcGtncy9lbGVjdHJvbjgvdXBkYXRlCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4zYWY4ZTU4YjUzNQotLS0gL2Rldi9udWxsCisrKyBiL3Ny Y3BrZ3MvZWxlY3Ryb244L3VwZGF0ZQpAQCAtMCwwICsxLDIgQEAKK3NpdGU9aHR0cHM6Ly93d3cu ZWxlY3Ryb25qcy5vcmcvcmVsZWFzZXMvc3RhYmxlP3ZlcnNpb249JHt2ZXJzaW9uJSUuKn0KK3Bh dHRlcm49J3RhZy92XEtbXGRcLl0rKD89IiknCg== --===============9114203497453959257==--