From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) 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.2 Received: (qmail 30328 invoked from network); 8 May 2020 19:40:24 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 8 May 2020 19:40:24 -0000 Content-Type: multipart/mixed; boundary="===============3935803761597429809==" MIME-Version: 1.0 Subject: =?utf8?q?=5BPR_PATCH=5D_=5Breally_wip=5D_system_wide_electron_package?= To: ml@inbox.vuxu.org From: Johnnynator Reply-to: ml@inbox.vuxu.org Message-ID: Date: Fri, 08 May 2020 21:40:21 +0200 List-Id: GitHub notification mails are now in MIME to allow UTF8. --===============3935803761597429809== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYSBuZXcgcHVsbCByZXF1ZXN0IGJ5IEpvaG5ueW5hdG9yIGFnYWluc3QgbWFzdGVy IG9uIHRoZSB2b2lkLXBhY2thZ2VzIHJlcG9zaXRvcnkKCmh0dHBzOi8vZ2l0aHViLmNvbS9Kb2hu bnluYXRvci92b2lkLXBhY2thZ2VzIGVsZWN0cm9uCmh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxp bnV4L3ZvaWQtcGFja2FnZXMvcHVsbC8yMTc1OAoKW3JlYWxseSB3aXBdIHN5c3RlbSB3aWRlIGVs ZWN0cm9uIHBhY2thZ2UKdG8gZG86IHJlaW50cm9kdWNlIHN5c3RlbSB6bGliIHBhdGNoDQp0byBk bzogZWxlY3Ryb244IHBhY2thZ2UgZm9yIGFsbCB0aGUgb3RoZXIgZWxlY3Ryb24gYXBwcw0KDQpU aGFua3MgdG8gQENvZ2l0cmkgd2hvIGRpZCBwcmVwYXJlIG1vc3Qgb2YgdGhpcyB3b3JrDQoNClAu cy4gSSdtIGFscmVhZHkgc29ycnkgZm9yIHRoZSBidWlsZCBzZXJ2ZXIgdG8gZ2V0IGEgM3JkIGNo cm9taXVtIHBhY2thZ2UgdG8gYnVpbGQgb2NjYXNpb25hbGx5LgoKQSBwYXRjaCBmaWxlIGZyb20g aHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9pZC1wYWNrYWdlcy9wdWxsLzIxNzU4LnBh dGNoIGlzIGF0dGFjaGVk --===============3935803761597429809== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-electron-21758.patch" RnJvbSA5ZmQ5ZjAxM2E4Zjc4M2I2ZjVmYmUwNmZiMGE2NWNjZGE4ZTg2N2UwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKb2huIDxtZUBqb2hubnluYXRvci5kZXY+CkRhdGU6IEZyaSwg OCBNYXkgMjAyMCAxNjowOTo0OCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMS8zXSB4YnBzLXNyYzog YWxsb3cgbG9hZGluZyB4YnAtc3JjLmNvbmYgZnJvbSBYREcgY29tcGxpYW50CiBkaXJzCgotLS0K IFJFQURNRS5tZCB8IDIgKy0KIHhicHMtc3JjICB8IDIgKysKIDIgZmlsZXMgY2hhbmdlZCwgMyBp bnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvUkVBRE1FLm1kIGIvUkVB RE1FLm1kCmluZGV4IDc1MmZiM2Q0ZmRjLi4zZGZmZDJiNDUxMSAxMDA2NDQKLS0tIGEvUkVBRE1F Lm1kCisrKyBiL1JFQURNRS5tZApAQCAtMTY1LDcgKzE2NSw3IEBAIElmIHlvdSBkb24ndCB3YW50 IHRvIHdhc3RlIHlvdXIgdGltZSBidWlsZGluZyBldmVyeXRoaW5nIGZyb20gc2NyYXRjaCBwcm9i YWJseSBpCiAKIFRoZSBgZXRjL2RlZmF1bHRzLmNvbmZgIGZpbGUgY29udGFpbnMgdGhlIHBvc3Np YmxlIHNldHRpbmdzIHRoYXQgY2FuIGJlIG92ZXJyaWRkZW4KIHRocm91Z2ggdGhlIGBldGMvY29u ZmAgY29uZmlndXJhdGlvbiBmaWxlIGZvciB0aGUgYHhicHMtc3JjYCB1dGlsaXR5OyBpZiB0aGF0 IGZpbGUKLWRvZXMgbm90IGV4aXN0LCB3aWxsIHRyeSB0byByZWFkIGNvbmZpZ3VyYXRpb24gc2V0 dGluZ3MgZnJvbSBgfi8ueGJwcy1zcmMuY29uZmAuCitkb2VzIG5vdCBleGlzdCwgd2lsbCB0cnkg dG8gcmVhZCBjb25maWd1cmF0aW9uIHNldHRpbmdzIGZyb20gYCRYREdfQ09ORklHX0hPTUUveGJw cy1zcmMuY29uZmAsIGB+Ly5jb25maWcveGJwcy1zcmMuY29uZmAsIGB+Ly54YnBzLXNyYy5jb25m YC4KIAogSWYgeW91IHdhbnQgdG8gY3VzdG9taXplIGRlZmF1bHQgYENGTEFHU2AsIGBDWFhGTEFH U2AgYW5kIGBMREZMQUdTYCwgZG9uJ3Qgb3ZlcnJpZGUKIHRob3NlIGRlZmluZWQgaW4gYGV0Yy9k ZWZhdWx0cy5jb25mYCwgc2V0IHRoZW0gb24gYGV0Yy9jb25mYCBpbnN0ZWFkIGkuZToKZGlmZiAt LWdpdCBhL3hicHMtc3JjIGIveGJwcy1zcmMKaW5kZXggNjg3NjViNmMyNDguLjg4OGJjM2M0NzRh IDEwMDc1NQotLS0gYS94YnBzLXNyYworKysgYi94YnBzLXNyYwpAQCAtNDI4LDYgKzQyOCw4IEBA IGVsc2UKICAgICBlbGlmIFsgLXMgJFhCUFNfRElTVERJUi9ldGMvY29uZiBdOyB0aGVuCiAgICAg ICAgICMgLi4uIG90aGVyd2lzZSByZWFkIGdlbmVyaWMgdXNlciBjb25maWd1cmF0aW9uLi4uCiAg ICAgICAgIHJlYWRvbmx5IFhCUFNfQ09ORklHX0ZJTEU9JFhCUFNfRElTVERJUi9ldGMvY29uZgor ICAgIGVsaWYgWyAtcyAke1hER19DT05GSUdfSE9NRTotJEhPTUUvLmNvbmZpZ30veGJwcy1zcmMu Y29uZiBdOyB0aGVuCisgICAgICAgIHJlYWRvbmx5IFhCUFNfQ09ORklHX0ZJTEU9JHtYREdfQ09O RklHX0hPTUU6LSRIT01FLy5jb25maWd9L3hicHMtc3JjLmNvbmYKICAgICBlbGlmIFsgLXMgJEhP TUUvLnhicHMtc3JjLmNvbmYgXTsgdGhlbgogICAgICAgICAjIC4uLiBmYWxsYmFjayB0byB+Ly54 YnBzLXNyYy5jb25mIG90aGVyd2lzZS4KICAgICAgICAgcmVhZG9ubHkgWEJQU19DT05GSUdfRklM RT0kSE9NRS8ueGJwcy1zcmMuY29uZgoKRnJvbSA1OWJlMjY1M2MzMWFlODFhMjc0NjNjYjVmY2Nk MDg4ZDE5Yzg4NDg0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKb2huIDxtZUBqb2hu bnluYXRvci5kZXY+CkRhdGU6IEZyaSwgOCBNYXkgMjAyMCAxOToxNjozOSArMDIwMApTdWJqZWN0 OiBbUEFUQ0ggMi8zXSBOZXcgcGFja2FnZTogZWxlY3Ryb243LTcuMi4zCgotLS0KIC4uLm11c2wt ZGVmYXVsdC1wdGhyZWFkLXN0YWNrc2l6ZS5wYXRjaC5wYXRjaCB8ICAzMSArCiAuLi4vY2hyb21p dW0tbXVzbC1zYW5kYm94LnBhdGNoLnBhdGNoICAgICAgICAgfCAxNzYgKysrKysKIC4uLnVtLW11 c2xfY2Fub25pY2FsaXplX2ZpbGVfbmFtZS5wYXRjaC5wYXRjaCB8ICAxMyArCiAuLi4vY2hyb21p dW0tbXVzbF9jZGVmcy5wYXRjaC5wYXRjaCAgICAgICAgICAgfCAgNDUgKysKIC4uLm11c2xfZGVm aW5lX3RlbXBfZmFpbHVyZV9yZXRyeS5wYXRjaC5wYXRjaCB8ICAxOCArCiAuLi4vY2hyb21pdW0t bXVzbF9kbnMucGF0Y2gucGF0Y2ggICAgICAgICAgICAgfCAgNjEgKysKIC4uLi9jaHJvbWl1bS1t dXNsX2V4ZWluZm8ucGF0Y2gucGF0Y2ggICAgICAgICB8ICA5NiArKysKIC4uLi9jaHJvbWl1bS1t dXNsX2Zwc3RhdGVfdC5wYXRjaC5wYXRjaCAgICAgICB8ICA0OCArKwogLi4uL2Nocm9taXVtLW11 c2xfZ2V0Y29udGV4dC5wYXRjaC5wYXRjaCAgICAgIHwgIDI1ICsKIC4uLi9jaHJvbWl1bS1tdXNs X21hbGxpbmZvLnBhdGNoLnBhdGNoICAgICAgICB8ICA2MSArKwogLi4uL2Nocm9taXVtLW11c2xf cHJlYWRfcHdyaXRlNjQucGF0Y2gucGF0Y2ggIHwgIDE4ICsKIC4uLi9jaHJvbWl1bS1tdXNsX3B1 c2hfYmFjay5wYXRjaC5wYXRjaCAgICAgICB8ICAxMyArCiAuLi4vY2hyb21pdW0tbXVzbF9zaV9m aWVsZHMucGF0Y2gucGF0Y2ggICAgICAgfCAgMTMgKwogLi4uL2Nocm9taXVtLW11c2xfc3RhY2tf c2l6ZS5wYXRjaC5wYXRjaCAgICAgIHwgIDQxICsKIC4uLi9jaHJvbWl1bS1tdXNsX3N0YWNrX3Ry YWNlLnBhdGNoLnBhdGNoICAgICB8ICA0NCArKwogLi4uL2Nocm9taXVtLW11c2xfdGNwX2xpc3Rl bi5wYXRjaC5wYXRjaCAgICAgIHwgIDE0ICsKIC4uLi9jaHJvbWl1bS1tdXNsX3dvcmRzaXplLnBh dGNoLnBhdGNoICAgICAgICB8ICAyNCArCiAuLi51bS0wMDEtdXBzdHJlYW1fY2hyb21lX2NsZWFu ZXIucGF0Y2gucGF0Y2ggfCAgNzMgKysKIC4uLl9sb2dzX2Zyb21fdGVzdF9jaWxkX3Byb2Nlc3Nl cy5wYXRjaC5wYXRjaCB8IDM0MiArKysrKysrKwogLi4ucHN0cmVhbV9tb3ZlX2NoaWxkX3Byb2Nl c3NfbG9nLnBhdGNoLnBhdGNoIHwgNzMwICsrKysrKysrKysrKysrKysrKwogLi4ucHN0cmVhbV91 c2VfY2hpbGRwcm9jZXNzbG9nZ2VyLnBhdGNoLnBhdGNoIHwgMTg2ICsrKysrCiAuLi4tMDA1LXVw c3RyZWFtLWNocm9taXVtX3ZlcnNpb24ucGF0Y2gucGF0Y2ggfCAgMjYgKwogLi4uY2hyb21pdW0t Y2hyb21pdW1fYXRrX29wdGlvbmFsLnBhdGNoLnBhdGNoIHwgIDE3ICsKIC4uLi9jaHJvbWl1bS1j bGFuZzEwX2dsc2xhbmcucGF0Y2gucGF0Y2ggICAgICB8ICAyNSArCiAuLi4vY2hyb21pdW0tZml4 LWNvbW1hbmRsaW5lLWluY2x1ZGUucGF0Y2ggICAgfCAgNDQgKysKIC4uLi9jaHJvbWl1bS1maXgt c3VjZXNzLWRlZmluaXRpb24ucGF0Y2ggICAgICB8ICAxNSArCiAuLi4vcGF0Y2hlcy9jaHJvbWl1 bS1nbl9ib290c3RyYXBfbmluamEucGF0Y2ggfCAgMzIgKwogLi4uL3BhdGNoZXMvY2hyb21pdW0t aWN1X3UxNl9uZXh0LnBhdGNoLnBhdGNoIHwgIDEzICsKIC4uLi9maWxlcy9wYXRjaGVzL2Nocm9t aXVtLWxpYmNfbWFsbG9jLnBhdGNoICB8ICAyNiArCiAuLi5hLXNjcmlwdC10by1saXN0LXBhdGNo LXRhcmdldHMucGF0Y2gucGF0Y2ggfCAgNDIgKwogLi4uL3BhdGNoZXMvZWxlY3Ryb24tQnVpbGQt Zml4ZXMucGF0Y2gucGF0Y2ggIHwgIDU3ICsrCiAuLi5lY3Ryb24tZG9udC1hc3N1bWUtcHl0aG9u LWlzLXB5dGhvbjIucGF0Y2ggfCAgMTcgKwogLi4uL2ZpbGVzL3BhdGNoZXMvZWxlY3Ryb24tZml4 LWluY2x1ZGVzLnBhdGNoIHwgIDE5ICsKIC4uLi9lbGVjdHJvbi1tanN1bml0LW5vdC1leHNpdC5w YXRjaC5wYXRjaCAgICB8ICA0NyArKwogc3JjcGtncy9lbGVjdHJvbjcvdGVtcGxhdGUgICAgICAg ICAgICAgICAgICAgIHwgMjY0ICsrKysrKysKIDM1IGZpbGVzIGNoYW5nZWQsIDI3MTYgaW5zZXJ0 aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxlY3Ryb243L2ZpbGVzL211c2wt cGF0Y2hlcy9jaHJvbWl1bS1tdXNsLWRlZmF1bHQtcHRocmVhZC1zdGFja3NpemUucGF0Y2gucGF0 Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2VsZWN0cm9uNy9maWxlcy9tdXNsLXBhdGNo ZXMvY2hyb21pdW0tbXVzbC1zYW5kYm94LnBhdGNoLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQg c3JjcGtncy9lbGVjdHJvbjcvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2xfY2Fub25p Y2FsaXplX2ZpbGVfbmFtZS5wYXRjaC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mv ZWxlY3Ryb243L2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsX2NkZWZzLnBhdGNoLnBh dGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9lbGVjdHJvbjcvZmlsZXMvbXVzbC1wYXRj aGVzL2Nocm9taXVtLW11c2xfZGVmaW5lX3RlbXBfZmFpbHVyZV9yZXRyeS5wYXRjaC5wYXRjaAog Y3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxlY3Ryb243L2ZpbGVzL211c2wtcGF0Y2hlcy9j aHJvbWl1bS1tdXNsX2Rucy5wYXRjaC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mv ZWxlY3Ryb243L2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsX2V4ZWluZm8ucGF0Y2gu cGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2VsZWN0cm9uNy9maWxlcy9tdXNsLXBh dGNoZXMvY2hyb21pdW0tbXVzbF9mcHN0YXRlX3QucGF0Y2gucGF0Y2gKIGNyZWF0ZSBtb2RlIDEw MDY0NCBzcmNwa2dzL2VsZWN0cm9uNy9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbXVzbF9n ZXRjb250ZXh0LnBhdGNoLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9lbGVjdHJv bjcvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2xfbWFsbGluZm8ucGF0Y2gucGF0Y2gK IGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2VsZWN0cm9uNy9maWxlcy9tdXNsLXBhdGNoZXMv Y2hyb21pdW0tbXVzbF9wcmVhZF9wd3JpdGU2NC5wYXRjaC5wYXRjaAogY3JlYXRlIG1vZGUgMTAw NjQ0IHNyY3BrZ3MvZWxlY3Ryb243L2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsX3B1 c2hfYmFjay5wYXRjaC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxlY3Ryb243 L2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsX3NpX2ZpZWxkcy5wYXRjaC5wYXRjaAog Y3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxlY3Ryb243L2ZpbGVzL211c2wtcGF0Y2hlcy9j aHJvbWl1bS1tdXNsX3N0YWNrX3NpemUucGF0Y2gucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBz cmNwa2dzL2VsZWN0cm9uNy9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbXVzbF9zdGFja190 cmFjZS5wYXRjaC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxlY3Ryb243L2Zp bGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsX3RjcF9saXN0ZW4ucGF0Y2gucGF0Y2gKIGNy ZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2VsZWN0cm9uNy9maWxlcy9tdXNsLXBhdGNoZXMvY2hy b21pdW0tbXVzbF93b3Jkc2l6ZS5wYXRjaC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3Br Z3MvZWxlY3Ryb243L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tMDAxLXVwc3RyZWFtX2Nocm9tZV9j bGVhbmVyLnBhdGNoLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9lbGVjdHJvbjcv ZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS0wMDItdXBzdHJlYW1fc2F2ZV9sb2dzX2Zyb21fdGVzdF9j aWxkX3Byb2Nlc3Nlcy5wYXRjaC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxl Y3Ryb243L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tMDAzLXVwc3RyZWFtX21vdmVfY2hpbGRfcHJv Y2Vzc19sb2cucGF0Y2gucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2VsZWN0cm9u Ny9maWxlcy9wYXRjaGVzL2Nocm9taXVtLTAwNC11cHN0cmVhbV91c2VfY2hpbGRwcm9jZXNzbG9n Z2VyLnBhdGNoLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9lbGVjdHJvbjcvZmls ZXMvcGF0Y2hlcy9jaHJvbWl1bS0wMDUtdXBzdHJlYW0tY2hyb21pdW1fdmVyc2lvbi5wYXRjaC5w YXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxlY3Ryb243L2ZpbGVzL3BhdGNoZXMv Y2hyb21pdW0tY2hyb21pdW1fYXRrX29wdGlvbmFsLnBhdGNoLnBhdGNoCiBjcmVhdGUgbW9kZSAx MDA2NDQgc3JjcGtncy9lbGVjdHJvbjcvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1jbGFuZzEwX2ds c2xhbmcucGF0Y2gucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2VsZWN0cm9uNy9m aWxlcy9wYXRjaGVzL2Nocm9taXVtLWZpeC1jb21tYW5kbGluZS1pbmNsdWRlLnBhdGNoCiBjcmVh dGUgbW9kZSAxMDA2NDQgc3JjcGtncy9lbGVjdHJvbjcvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1m aXgtc3VjZXNzLWRlZmluaXRpb24ucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2Vs ZWN0cm9uNy9maWxlcy9wYXRjaGVzL2Nocm9taXVtLWduX2Jvb3RzdHJhcF9uaW5qYS5wYXRjaAog Y3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxlY3Ryb243L2ZpbGVzL3BhdGNoZXMvY2hyb21p dW0taWN1X3UxNl9uZXh0LnBhdGNoLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9l bGVjdHJvbjcvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1saWJjX21hbGxvYy5wYXRjaAogY3JlYXRl IG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxlY3Ryb243L2ZpbGVzL3BhdGNoZXMvZWxlY3Ryb24tQWRk LWEtc2NyaXB0LXRvLWxpc3QtcGF0Y2gtdGFyZ2V0cy5wYXRjaC5wYXRjaAogY3JlYXRlIG1vZGUg MTAwNjQ0IHNyY3BrZ3MvZWxlY3Ryb243L2ZpbGVzL3BhdGNoZXMvZWxlY3Ryb24tQnVpbGQtZml4 ZXMucGF0Y2gucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2VsZWN0cm9uNy9maWxl cy9wYXRjaGVzL2VsZWN0cm9uLWRvbnQtYXNzdW1lLXB5dGhvbi1pcy1weXRob24yLnBhdGNoCiBj cmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9lbGVjdHJvbjcvZmlsZXMvcGF0Y2hlcy9lbGVjdHJv bi1maXgtaW5jbHVkZXMucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2VsZWN0cm9u Ny9maWxlcy9wYXRjaGVzL2VsZWN0cm9uLW1qc3VuaXQtbm90LWV4c2l0LnBhdGNoLnBhdGNoCiBj cmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9lbGVjdHJvbjcvdGVtcGxhdGUKCmRpZmYgLS1naXQg YS9zcmNwa2dzL2VsZWN0cm9uNy9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbXVzbC1kZWZh dWx0LXB0aHJlYWQtc3RhY2tzaXplLnBhdGNoLnBhdGNoIGIvc3JjcGtncy9lbGVjdHJvbjcvZmls ZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2wtZGVmYXVsdC1wdGhyZWFkLXN0YWNrc2l6ZS5w YXRjaC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZDBjMTM2 MWI4ZWQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2VsZWN0cm9uNy9maWxlcy9tdXNsLXBh dGNoZXMvY2hyb21pdW0tbXVzbC1kZWZhdWx0LXB0aHJlYWQtc3RhY2tzaXplLnBhdGNoLnBhdGNo CkBAIC0wLDAgKzEsMzEgQEAKK2RpZmYgLS1naXQgYS9iYXNlL3RocmVhZGluZy9wbGF0Zm9ybV90 aHJlYWRfbGludXguY2MgYi9iYXNlL3RocmVhZGluZy9wbGF0Zm9ybV90aHJlYWRfbGludXguY2MK K2luZGV4IDA5NWM0OWIuLjUwNDRiYjggMTAwNjQ0CistLS0gYS9iYXNlL3RocmVhZGluZy9wbGF0 Zm9ybV90aHJlYWRfbGludXguY2MKKysrKyBiL2Jhc2UvdGhyZWFkaW5nL3BsYXRmb3JtX3RocmVh ZF9saW51eC5jYworQEAgLTE4Niw3ICsxODYsNyBAQCB2b2lkIFRlcm1pbmF0ZU9uVGhyZWFkKCkg e30KKyAKKyBzaXplX3QgR2V0RGVmYXVsdFRocmVhZFN0YWNrU2l6ZShjb25zdCBwdGhyZWFkX2F0 dHJfdCYgYXR0cmlidXRlcykgeworICNpZiAhZGVmaW5lZChUSFJFQURfU0FOSVRJWkVSKQorLSAg cmV0dXJuIDA7CisrICByZXR1cm4gKDEgPDwgMjMpOworICNlbHNlCisgICAvLyBUaHJlYWRTYW5p dGl6ZXIgYmxvYXRzIHRoZSBzdGFjayBoZWF2aWx5LiBFdmlkZW5jZSBoYXMgYmVlbiB0aGF0IHRo ZQorICAgLy8gZGVmYXVsdCBzdGFjayBzaXplIGlzbid0IGVub3VnaCBmb3Igc29tZSBicm93c2Vy IHRlc3RzLgorZGlmZiAtLWdpdCBhL2Nocm9tZS9hcHAvc2h1dGRvd25fc2lnbmFsX2hhbmRsZXJz X3Bvc2l4LmNjIGIvY2hyb21lL2FwcC9zaHV0ZG93bl9zaWduYWxfaGFuZGxlcnNfcG9zaXguY2MK K2luZGV4IDYyMWQ0NDEuLmJlMjExMDYgMTAwNjQ0CistLS0gYS9jaHJvbWUvYXBwL3NodXRkb3du X3NpZ25hbF9oYW5kbGVyc19wb3NpeC5jYworKysrIGIvY2hyb21lL2FwcC9zaHV0ZG93bl9zaWdu YWxfaGFuZGxlcnNfcG9zaXguY2MKK0BAIC0xODcsMTEgKzE4NywxMSBAQCB2b2lkIEluc3RhbGxT aHV0ZG93blNpZ25hbEhhbmRsZXJzKAorICAgZ19zaHV0ZG93bl9waXBlX3JlYWRfZmQgPSBwaXBl ZmRbMF07CisgICBnX3NodXRkb3duX3BpcGVfd3JpdGVfZmQgPSBwaXBlZmRbMV07CisgI2lmICFk ZWZpbmVkKEFERFJFU1NfU0FOSVRJWkVSKQorLSAgY29uc3Qgc2l6ZV90IGtTaHV0ZG93bkRldGVj dG9yVGhyZWFkU3RhY2tTaXplID0gUFRIUkVBRF9TVEFDS19NSU4gKiAyOworKyAgY29uc3Qgc2l6 ZV90IGtTaHV0ZG93bkRldGVjdG9yVGhyZWFkU3RhY2tTaXplID0gUFRIUkVBRF9TVEFDS19NSU4g KiAyICo4OworICNlbHNlCisgICAvLyBBU2FuIGluc3RydW1lbnRhdGlvbiBibG9hdHMgdGhlIHN0 YWNrIGZyYW1lcywgc28gd2UgbmVlZCB0byBpbmNyZWFzZSB0aGUKKyAgIC8vIHN0YWNrIHNpemUg dG8gYXZvaWQgaGl0dGluZyB0aGUgZ3VhcmQgcGFnZS4KKy0gIGNvbnN0IHNpemVfdCBrU2h1dGRv d25EZXRlY3RvclRocmVhZFN0YWNrU2l6ZSA9IFBUSFJFQURfU1RBQ0tfTUlOICogNDsKKysgIGNv bnN0IHNpemVfdCBrU2h1dGRvd25EZXRlY3RvclRocmVhZFN0YWNrU2l6ZSA9IFBUSFJFQURfU1RB Q0tfTUlOICogNCAqODsKKyAjZW5kaWYKKyAgIFNodXRkb3duRGV0ZWN0b3IqIGRldGVjdG9yID0g bmV3IFNodXRkb3duRGV0ZWN0b3IoCisgICAgICAgZ19zaHV0ZG93bl9waXBlX3JlYWRfZmQsIHN0 ZDo6bW92ZShzaHV0ZG93bl9jYWxsYmFjayksIHRhc2tfcnVubmVyKTsKZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MvZWxlY3Ryb243L2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsLXNhbmRib3gu cGF0Y2gucGF0Y2ggYi9zcmNwa2dzL2VsZWN0cm9uNy9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21p dW0tbXVzbC1zYW5kYm94LnBhdGNoLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMDAwLi5mNDg1ZjZjYzc1YQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZWxlY3Ry b243L2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsLXNhbmRib3gucGF0Y2gucGF0Y2gK QEAgLTAsMCArMSwxNzYgQEAKK2RpZmYgLS1naXQgYS9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBm LWhlbHBlcnMvc3lzY2FsbF9wYXJhbWV0ZXJzX3Jlc3RyaWN0aW9ucy5jYyBiL3NhbmRib3gvbGlu dXgvc2VjY29tcC1icGYtaGVscGVycy9zeXNjYWxsX3BhcmFtZXRlcnNfcmVzdHJpY3Rpb25zLmNj CitpbmRleCAzNDhhYjZlLi40NTUwZjllIDEwMDY0NAorLS0tIC4vc2FuZGJveC9saW51eC9zZWNj b21wLWJwZi1oZWxwZXJzL3N5c2NhbGxfcGFyYW1ldGVyc19yZXN0cmljdGlvbnMuY2MKKysrKyAu L3NhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9zeXNjYWxsX3BhcmFtZXRlcnNfcmVz dHJpY3Rpb25zLmNjCitAQCAtMTM5LDIxICsxMzksMTEgQEAgbmFtZXNwYWNlIHNhbmRib3ggewor IC8vIHByZXNlbnQgKGFzIGluIG5ld2VyIHZlcnNpb25zIG9mIHBvc2l4X3NwYXduKS4KKyBSZXN1 bHRFeHByIFJlc3RyaWN0Q2xvbmVUb1RocmVhZHNBbmRFUEVSTUZvcmsoKSB7CisgICBjb25zdCBB cmc8dW5zaWduZWQgbG9uZz4gZmxhZ3MoMCk7CistCistICAvLyBUT0RPKG1kZW1wc2t5KTogRXh0 ZW5kIERTTCB0byBzdXBwb3J0IChmbGFncyAmIH5tYXNrMSkgPT0gbWFzazIuCistICBjb25zdCB1 aW50NjRfdCBrQW5kcm9pZENsb25lTWFzayA9IENMT05FX1ZNIHwgQ0xPTkVfRlMgfCBDTE9ORV9G SUxFUyB8CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENMT05FX1NJR0hB TkQgfCBDTE9ORV9USFJFQUQgfAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBDTE9ORV9TWVNWU0VNOworLSAgY29uc3QgdWludDY0X3Qga09ic29sZXRlQW5kcm9pZENsb25l TWFzayA9IGtBbmRyb2lkQ2xvbmVNYXNrIHwgQ0xPTkVfREVUQUNIRUQ7CistCistICBjb25zdCB1 aW50NjRfdCBrR2xpYmNQdGhyZWFkRmxhZ3MgPQorLSAgICAgIENMT05FX1ZNIHwgQ0xPTkVfRlMg fCBDTE9ORV9GSUxFUyB8IENMT05FX1NJR0hBTkQgfCBDTE9ORV9USFJFQUQgfAorLSAgICAgIENM T05FX1NZU1ZTRU0gfCBDTE9ORV9TRVRUTFMgfCBDTE9ORV9QQVJFTlRfU0VUVElEIHwgQ0xPTkVf Q0hJTERfQ0xFQVJUSUQ7CistICBjb25zdCBCb29sRXhwciBnbGliY190ZXN0ID0gZmxhZ3MgPT0g a0dsaWJjUHRocmVhZEZsYWdzOworLQorLSAgY29uc3QgQm9vbEV4cHIgYW5kcm9pZF90ZXN0ID0K Ky0gICAgICBBbnlPZihmbGFncyA9PSBrQW5kcm9pZENsb25lTWFzaywgZmxhZ3MgPT0ga09ic29s ZXRlQW5kcm9pZENsb25lTWFzaywKKy0gICAgICAgICAgICBmbGFncyA9PSBrR2xpYmNQdGhyZWFk RmxhZ3MpOworKyAgY29uc3QgaW50IHJlcXVpcmVkID0gQ0xPTkVfVk0gfCBDTE9ORV9GUyB8IENM T05FX0ZJTEVTIHwgQ0xPTkVfU0lHSEFORCB8CisrICAgICAgICAgICAgICAgICAgICAgICBDTE9O RV9USFJFQUQgfCBDTE9ORV9TWVNWU0VNOworKyAgY29uc3QgaW50IHNhZmUgPSBDTE9ORV9TRVRU TFMgfCBDTE9ORV9QQVJFTlRfU0VUVElEIHwgQ0xPTkVfQ0hJTERfQ0xFQVJUSUQgfAorKyAgICAg ICAgICAgICAgICAgICBDTE9ORV9ERVRBQ0hFRDsKKysgIGNvbnN0IEJvb2xFeHByIHRocmVhZF9j bG9uZV9vayA9IChmbGFncyZ+c2FmZSk9PXJlcXVpcmVkOworIAorICAgLy8gVGhlIGZvbGxvd2lu ZyB0d28gZmxhZ3MgYXJlIHRoZSB0d28gaW1wb3J0YW50IGZsYWdzIGluIGFueSB2Zm9yay1lbXVs YXRpbmcKKyAgIC8vIGNsb25lIGNhbGwuIEVQRVJNIGFueSBjbG9uZSBjYWxsIHRoYXQgY29udGFp bnMgYm90aCBvZiB0aGVtLgorQEAgLTE2Myw3ICsxNTMsNyBAQCBSZXN1bHRFeHByIFJlc3RyaWN0 Q2xvbmVUb1RocmVhZHNBbmRFUEVSTUZvcmsoKSB7CisgICAgICAgQW55T2YoKGZsYWdzICYgKENM T05FX1ZNIHwgQ0xPTkVfVEhSRUFEKSkgPT0gMCwKKyAgICAgICAgICAgICAoZmxhZ3MgJiBrSW1w b3J0YW50Q2xvbmVWZm9ya0ZsYWdzKSA9PSBrSW1wb3J0YW50Q2xvbmVWZm9ya0ZsYWdzKTsKKyAK Ky0gIHJldHVybiBJZihJc0FuZHJvaWQoKSA/IGFuZHJvaWRfdGVzdCA6IGdsaWJjX3Rlc3QsIEFs bG93KCkpCisrICByZXR1cm4gSWYodGhyZWFkX2Nsb25lX29rLCBBbGxvdygpKQorICAgICAgIC5F bHNlSWYoaXNfZm9ya19vcl9jbG9uZV92Zm9yaywgRXJyb3IoRVBFUk0pKQorICAgICAgIC5FbHNl KENyYXNoU0lHU1lTQ2xvbmUoKSk7CisgfQorZGlmZiAtLWdpdCBhL3NhbmRib3gvbGludXgvc2Vj Y29tcC1icGYtaGVscGVycy9zeXNjYWxsX3NldHMuY2MgYi9zYW5kYm94L2xpbnV4L3NlY2NvbXAt YnBmLWhlbHBlcnMvc3lzY2FsbF9zZXRzLmNjCitpbmRleCA3ZGJjYzg3Li41ODkyNjJmIDEwMDY0 NAorLS0tIC4vc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5c2NhbGxfc2V0cy5j YworKysrIC4vc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5c2NhbGxfc2V0cy5j YworQEAgLTM5MSw2ICszOTEsNyBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRQcm9jZXNz U3RhcnRPckRlYXRoKGludCBzeXNubykgeworICNpZiBkZWZpbmVkKF9faTM4Nl9fKQorICAgICBj YXNlIF9fTlJfd2FpdHBpZDoKKyAjZW5kaWYKKysgICAgY2FzZSBfX05SX3NldF90aWRfYWRkcmVz czoKKyAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgY2FzZSBfX05SX2Nsb25lOiAgLy8gU2hvdWxk IGJlIHBhcmFtZXRlci1yZXN0cmljdGVkLgorICAgICBjYXNlIF9fTlJfc2V0bnM6ICAvLyBQcml2 aWxlZ2VkLgorQEAgLTQwMyw3ICs0MDQsNiBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRQ cm9jZXNzU3RhcnRPckRlYXRoKGludCBzeXNubykgeworICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8 fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19taXBzX18pCisgICAgIGNhc2UgX19O Ul9zZXRfdGhyZWFkX2FyZWE6CisgI2VuZGlmCistICAgIGNhc2UgX19OUl9zZXRfdGlkX2FkZHJl c3M6CisgICAgIGNhc2UgX19OUl91bnNoYXJlOgorICNpZiAhZGVmaW5lZChfX21pcHNfXykgJiYg IWRlZmluZWQoX19hYXJjaDY0X18pCisgICAgIGNhc2UgX19OUl92Zm9yazoKK0BAIC01MTMsNiAr NTEzLDggQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNBbGxvd2VkQWRkcmVzc1NwYWNlQWNjZXNzKGlu dCBzeXNubykgeworICAgICBjYXNlIF9fTlJfbWxvY2s6CisgICAgIGNhc2UgX19OUl9tdW5sb2Nr OgorICAgICBjYXNlIF9fTlJfbXVubWFwOgorKyAgICBjYXNlIF9fTlJfbXJlbWFwOgorKyAgICBj YXNlIF9fTlJfbWVtYmFycmllcjoKKyAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgY2FzZSBfX05S X21hZHZpc2U6CisgICAgIGNhc2UgX19OUl9taW5jb3JlOgorQEAgLTUzMCw3ICs1MzIsNiBAQCBi b29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRBZGRyZXNzU3BhY2VBY2Nlc3MoaW50IHN5c25vKSB7 CisgICAgIGNhc2UgX19OUl9tb2RpZnlfbGR0OgorICNlbmRpZgorICAgICBjYXNlIF9fTlJfbXBy b3RlY3Q6CistICAgIGNhc2UgX19OUl9tcmVtYXA6CisgICAgIGNhc2UgX19OUl9tc3luYzoKKyAg ICAgY2FzZSBfX05SX211bmxvY2thbGw6CisgICAgIGNhc2UgX19OUl9yZWFkYWhlYWQ6CitkaWZm IC0tZ2l0IGEvc2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9hcm02NF9saW51eF9zeXNjYWxs cy5oIGIvc2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9hcm02NF9saW51eF9zeXNjYWxscy5o CitpbmRleCA1OWQwZWFiLi43YWU3MDAyIDEwMDY0NAorLS0tIC4vc2FuZGJveC9saW51eC9zeXN0 ZW1faGVhZGVycy9hcm02NF9saW51eF9zeXNjYWxscy5oCisrKysgLi9zYW5kYm94L2xpbnV4L3N5 c3RlbV9oZWFkZXJzL2FybTY0X2xpbnV4X3N5c2NhbGxzLmgKK0BAIC0xMDYzLDQgKzEwNjMsOCBA QAorICNkZWZpbmUgX19OUl9tZW1mZF9jcmVhdGUgMjc5CisgI2VuZGlmCisgCisrI2lmICFkZWZp bmVkKF9fTlJfbWVtYmFycmllcikKKysjZGVmaW5lIF9fTlJfbWVtYmFycmllciAyODMKKysjZW5k aWYKKysKKyAjZW5kaWYgIC8vIFNBTkRCT1hfTElOVVhfU1lTVEVNX0hFQURFUlNfQVJNNjRfTElO VVhfU1lTQ0FMTFNfSF8KK2RpZmYgLS1naXQgYS9zYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJz L2FybV9saW51eF9zeXNjYWxscy5oIGIvc2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9hcm1f bGludXhfc3lzY2FsbHMuaAoraW5kZXggMWFkZGQ1My4uNzg0M2I1ZSAxMDA2NDQKKy0tLSAuL3Nh bmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvYXJtX2xpbnV4X3N5c2NhbGxzLmgKKysrKyAuL3Nh bmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvYXJtX2xpbnV4X3N5c2NhbGxzLmgKK0BAIC0xMzg1 LDYgKzEzODUsMTAgQEAKKyAjZGVmaW5lIF9fTlJfbWVtZmRfY3JlYXRlIChfX05SX1NZU0NBTExf QkFTRSszODUpCisgI2VuZGlmCisgCisrI2lmICFkZWZpbmVkKF9fTlJfbWVtYmFycmllcikKKysj ZGVmaW5lIF9fTlJfbWVtYmFycmllciAoX19OUl9TWVNDQUxMX0JBU0UrMzg5KQorKyNlbmRpZgor KworIC8vIEFSTSBwcml2YXRlIHN5c2NhbGxzLgorICNpZiAhZGVmaW5lZChfX0FSTV9OUl9CQVNF KQorICNkZWZpbmUgX19BUk1fTlJfQkFTRSAoX19OUl9TWVNDQUxMX0JBU0UgKyAweEYwMDAwKQor ZGlmZiAtLWdpdCBhL3NhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvbWlwczY0X2xpbnV4X3N5 c2NhbGxzLmggYi9zYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL21pcHM2NF9saW51eF9zeXNj YWxscy5oCitpbmRleCBlYzc1ODE1Li42MTJmY2ZhIDEwMDY0NAorLS0tIC4vc2FuZGJveC9saW51 eC9zeXN0ZW1faGVhZGVycy9taXBzNjRfbGludXhfc3lzY2FsbHMuaAorKysrIC4vc2FuZGJveC9s aW51eC9zeXN0ZW1faGVhZGVycy9taXBzNjRfbGludXhfc3lzY2FsbHMuaAorQEAgLTEyNzEsNCAr MTI3MSw4IEBACisgI2RlZmluZSBfX05SX21lbWZkX2NyZWF0ZSAoX19OUl9MaW51eCArIDMxNCkK KyAjZW5kaWYKKyAKKysjaWYgIWRlZmluZWQoX19OUl9tZW1iYXJyaWVyKQorKyNkZWZpbmUgX19O Ul9tZW1iYXJyaWVyIChfX05SX0xpbnV4ICsgMzE4KQorKyNlbmRpZgorKworICNlbmRpZiAgLy8g U0FOREJPWF9MSU5VWF9TWVNURU1fSEVBREVSU19NSVBTNjRfTElOVVhfU1lTQ0FMTFNfSF8KK2Rp ZmYgLS1naXQgYS9zYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL21pcHNfbGludXhfc3lzY2Fs bHMuaCBiL3NhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvbWlwc19saW51eF9zeXNjYWxscy5o CitpbmRleCBkZGJmOTdmLi4xNzQyYWNkIDEwMDY0NAorLS0tIC4vc2FuZGJveC9saW51eC9zeXN0 ZW1faGVhZGVycy9taXBzX2xpbnV4X3N5c2NhbGxzLmgKKysrKyAuL3NhbmRib3gvbGludXgvc3lz dGVtX2hlYWRlcnMvbWlwc19saW51eF9zeXNjYWxscy5oCitAQCAtMTQzMyw0ICsxNDMzLDggQEAK KyAjZGVmaW5lIF9fTlJfbWVtZmRfY3JlYXRlIChfX05SX0xpbnV4ICsgMzU0KQorICNlbmRpZgor IAorKyNpZiAhZGVmaW5lZChfX05SX21lbWJhcnJpZXIpCisrI2RlZmluZSBfX05SX21lbWJhcnJp ZXIgKF9fTlJfTGludXggKyAzNTgpCisrI2VuZGlmCisrCisgI2VuZGlmICAvLyBTQU5EQk9YX0xJ TlVYX1NZU1RFTV9IRUFERVJTX01JUFNfTElOVVhfU1lTQ0FMTFNfSF8KK2RpZmYgLS1naXQgYS9z YW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL3g4Nl8zMl9saW51eF9zeXNjYWxscy5oIGIvc2Fu ZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy94ODZfMzJfbGludXhfc3lzY2FsbHMuaAoraW5kZXgg YTZhZmM2Mi4uN2VkMGEzYiAxMDA2NDQKKy0tLSAuL3NhbmRib3gvbGludXgvc3lzdGVtX2hlYWRl cnMveDg2XzMyX2xpbnV4X3N5c2NhbGxzLmgKKysrKyAuL3NhbmRib3gvbGludXgvc3lzdGVtX2hl YWRlcnMveDg2XzMyX2xpbnV4X3N5c2NhbGxzLmgKK0BAIC0xNDIyLDUgKzE0MjIsOSBAQAorICNk ZWZpbmUgX19OUl9tZW1mZF9jcmVhdGUgMzU2CisgI2VuZGlmCisgCisrI2lmICFkZWZpbmVkKF9f TlJfbWVtYmFycmllcikKKysjZGVmaW5lIF9fTlJfbWVtYmFycmllciAzNzUKKysjZW5kaWYKKysK KyAjZW5kaWYgIC8vIFNBTkRCT1hfTElOVVhfU1lTVEVNX0hFQURFUlNfWDg2XzMyX0xJTlVYX1NZ U0NBTExTX0hfCisgCitkaWZmIC0tZ2l0IGEvc2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy94 ODZfNjRfbGludXhfc3lzY2FsbHMuaCBiL3NhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMveDg2 XzY0X2xpbnV4X3N5c2NhbGxzLmgKK2luZGV4IDM0OTUwNGEuLmVhM2M3YzkgMTAwNjQ0CistLS0g Li9zYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL3g4Nl82NF9saW51eF9zeXNjYWxscy5oCisr KysgLi9zYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL3g4Nl82NF9saW51eF9zeXNjYWxscy5o CitAQCAtMTI5MCw1ICsxMjkwLDkgQEAKKyAjZGVmaW5lIF9fTlJfbWVtZmRfY3JlYXRlIDMxOQor ICNlbmRpZgorIAorKyNpZiAhZGVmaW5lZChfX05SX21lbWJhcnJpZXIpCisrI2RlZmluZSBfX05S X21lbWJhcnJpZXIgMzI0CisrI2VuZGlmCisrCisgI2VuZGlmICAvLyBTQU5EQk9YX0xJTlVYX1NZ U1RFTV9IRUFERVJTX1g4Nl82NF9MSU5VWF9TWVNDQUxMU19IXworIAorZGlmZiAtLWdpdCBhL3Nl cnZpY2VzL3NlcnZpY2VfbWFuYWdlci9zYW5kYm94L2xpbnV4L2JwZl9yZW5kZXJlcl9wb2xpY3lf bGludXguY2MgYi9zZXJ2aWNlcy9zZXJ2aWNlX21hbmFnZXIvc2FuZGJveC9saW51eC9icGZfcmVu ZGVyZXJfcG9saWN5X2xpbnV4LmNjCitpbmRleCAwMTdmMTNjLi41MGFlZWMzIDEwMDY0NAorLS0t IC4vc2VydmljZXMvc2VydmljZV9tYW5hZ2VyL3NhbmRib3gvbGludXgvYnBmX3JlbmRlcmVyX3Bv bGljeV9saW51eC5jYworKysrIC4vc2VydmljZXMvc2VydmljZV9tYW5hZ2VyL3NhbmRib3gvbGlu dXgvYnBmX3JlbmRlcmVyX3BvbGljeV9saW51eC5jYworQEAgLTg4LDEwICs4OCwxMCBAQCBSZXN1 bHRFeHByIFJlbmRlcmVyUHJvY2Vzc1BvbGljeTo6RXZhbHVhdGVTeXNjYWxsKGludCBzeXNubykg Y29uc3QgeworICAgICBjYXNlIF9fTlJfc3lzaW5mbzoKKyAgICAgY2FzZSBfX05SX3RpbWVzOgor ICAgICBjYXNlIF9fTlJfdW5hbWU6CistICAgICAgcmV0dXJuIEFsbG93KCk7CistICAgIGNhc2Ug X19OUl9zY2hlZF9nZXRhZmZpbml0eToKKyAgICAgY2FzZSBfX05SX3NjaGVkX2dldHBhcmFtOgor ICAgICBjYXNlIF9fTlJfc2NoZWRfZ2V0c2NoZWR1bGVyOgorKyAgICAgIHJldHVybiBBbGxvdygp OworKyAgICBjYXNlIF9fTlJfc2NoZWRfZ2V0YWZmaW5pdHk6CisgICAgIGNhc2UgX19OUl9zY2hl ZF9zZXRzY2hlZHVsZXI6CisgICAgICAgcmV0dXJuIHNhbmRib3g6OlJlc3RyaWN0U2NoZWRUYXJn ZXQoR2V0UG9saWN5UGlkKCksIHN5c25vKTsKKyAgICAgY2FzZSBfX05SX3BybGltaXQ2NDoKZGlm ZiAtLWdpdCBhL3NyY3BrZ3MvZWxlY3Ryb243L2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1t dXNsX2Nhbm9uaWNhbGl6ZV9maWxlX25hbWUucGF0Y2gucGF0Y2ggYi9zcmNwa2dzL2VsZWN0cm9u Ny9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbXVzbF9jYW5vbmljYWxpemVfZmlsZV9uYW1l LnBhdGNoLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4wNTYx NGRhYTc1NwotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZWxlY3Ryb243L2ZpbGVzL211c2wt cGF0Y2hlcy9jaHJvbWl1bS1tdXNsX2Nhbm9uaWNhbGl6ZV9maWxlX25hbWUucGF0Y2gucGF0Y2gK QEAgLTAsMCArMSwxMyBAQAorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L25hc20vY29uZmlnL2Nv bmZpZy1saW51eC5oIGIvdGhpcmRfcGFydHkvbmFzbS9jb25maWcvY29uZmlnLWxpbnV4LmgKK2lu ZGV4IDdlYjdjMjAuLjg4MmI3MzYgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9uYXNtL2NvbmZp Zy9jb25maWctbGludXguaAorKysrIGIvdGhpcmRfcGFydHkvbmFzbS9jb25maWcvY29uZmlnLWxp bnV4LmgKK0BAIC0xMTcsNyArMTE3LDcgQEAKKyAjZGVmaW5lIEhBVkVfQUNDRVNTIDEKKyAKKyAv KiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGNhbm9uaWNhbGl6ZV9maWxlX25hbWUnIGZ1 bmN0aW9uLiAqLworLSNkZWZpbmUgSEFWRV9DQU5PTklDQUxJWkVfRklMRV9OQU1FIDEKKysvKiAj dW5kZWYgSEFWRV9DQU5PTklDQUxJWkVfRklMRV9OQU1FICovCisgCisgLyogRGVmaW5lIHRvIDEg aWYgeW91IGhhdmUgdGhlIGBjcHVfdG9fbGUxNicgaW50cmluc2ljIGZ1bmN0aW9uLiAqLworIC8q ICN1bmRlZiBIQVZFX0NQVV9UT19MRTE2ICovCmRpZmYgLS1naXQgYS9zcmNwa2dzL2VsZWN0cm9u Ny9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbXVzbF9jZGVmcy5wYXRjaC5wYXRjaCBiL3Ny Y3BrZ3MvZWxlY3Ryb243L2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsX2NkZWZzLnBh dGNoLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5mYzdkYzA2 ZmYyMQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZWxlY3Ryb243L2ZpbGVzL211c2wtcGF0 Y2hlcy9jaHJvbWl1bS1tdXNsX2NkZWZzLnBhdGNoLnBhdGNoCkBAIC0wLDAgKzEsNDUgQEAKK2Rp ZmYgLS1naXQgYS9iYXNlL2FsbG9jYXRvci9hbGxvY2F0b3Jfc2hpbV9pbnRlcm5hbHMuaCBiL2Jh c2UvYWxsb2NhdG9yL2FsbG9jYXRvcl9zaGltX2ludGVybmFsCitzLmgKK2luZGV4IDAxOTZmODku LmJiNDJiNWQgMTAwNjQ0CistLS0gYS9iYXNlL2FsbG9jYXRvci9hbGxvY2F0b3Jfc2hpbV9pbnRl cm5hbHMuaAorKysrIGIvYmFzZS9hbGxvY2F0b3IvYWxsb2NhdG9yX3NoaW1faW50ZXJuYWxzLmgK K0BAIC03LDcgKzcsOSBAQAorCisgI2lmIGRlZmluZWQoX19HTlVDX18pCisKKysjaWYgZGVmaW5l ZChfX0dMSUJDX18pCisgI2luY2x1ZGUgPHN5cy9jZGVmcy5oPiAgLy8gZm9yIF9fVEhST1cKKysj ZW5kaWYKKworICNpZm5kZWYgX19USFJPVyAgLy8gTm90IGEgZ2xpYmMgc3lzdGVtCisgI2lmZGVm IF9OT0VYQ0VQVCAgLy8gTExWTSBsaWJjKysgdXNlcyBub2V4Y2VwdCBpbnN0ZWFkCitkaWZmIC0t Z2l0IGEvdGhpcmRfcGFydHkvbGlic3luYy9zcmMvaW5jbHVkZS9zeW5jL3N5bmMuaCBiL3RoaXJk X3BhcnR5L2xpYnN5bmMvc3JjL2luY2x1ZGUvc3luYy9zeW5jLmgKK2luZGV4IDUwZWQwYWMuLjc1 NTJhNDkgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9saWJzeW5jL3NyYy9pbmNsdWRlL3N5bmMv c3luYy5oCisrKysgYi90aGlyZF9wYXJ0eS9saWJzeW5jL3NyYy9pbmNsdWRlL3N5bmMvc3luYy5o CitAQCAtMTksMTIgKzE5LDEzIEBACisgI2lmbmRlZiBfX1NZU19DT1JFX1NZTkNfSAorICNkZWZp bmUgX19TWVNfQ09SRV9TWU5DX0gKKyAKKy0jaW5jbHVkZSA8c3lzL2NkZWZzLmg+CisgI2luY2x1 ZGUgPHN0ZGludC5oPgorIAorICNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgorIAorLV9fQkVHSU5f REVDTFMKKysjaWZkZWYgX19jcGx1c3BsdXMKKytleHRlcm4gIkMiIHsKKysjZW5kaWYgLyogX19j cGx1c3BsdXMgKi8KKyAKKyBzdHJ1Y3Qgc3luY19sZWdhY3lfbWVyZ2VfZGF0YSB7CisgIGludDMy X3QgZmQyOworQEAgLTE1OCw2ICsxNTksOCBAQCBzdHJ1Y3Qgc3luY19wdF9pbmZvICpzeW5jX3B0 X2luZm8oc3RydWN0IHN5bmNfZmVuY2VfaW5mb19kYXRhICppbmZvLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qgc3luY19wdF9pbmZvICppdHIpOworIHZvaWQgc3lu Y19mZW5jZV9pbmZvX2ZyZWUoc3RydWN0IHN5bmNfZmVuY2VfaW5mb19kYXRhICppbmZvKTsKKyAK Ky1fX0VORF9ERUNMUworKyNpZmRlZiBfX2NwbHVzcGx1cworK30KKysjZW5kaWYgLyogX19jcGx1 c3BsdXMgKi8KKyAKKyAjZW5kaWYgLyogX19TWVNfQ09SRV9TWU5DX0ggKi8KZGlmZiAtLWdpdCBh L3NyY3BrZ3MvZWxlY3Ryb243L2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsX2RlZmlu ZV90ZW1wX2ZhaWx1cmVfcmV0cnkucGF0Y2gucGF0Y2ggYi9zcmNwa2dzL2VsZWN0cm9uNy9maWxl cy9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbXVzbF9kZWZpbmVfdGVtcF9mYWlsdXJlX3JldHJ5LnBh dGNoLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi42MWRiNjU4 Zjg0OQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZWxlY3Ryb243L2ZpbGVzL211c2wtcGF0 Y2hlcy9jaHJvbWl1bS1tdXNsX2RlZmluZV90ZW1wX2ZhaWx1cmVfcmV0cnkucGF0Y2gucGF0Y2gK QEAgLTAsMCArMSwxOCBAQAorLS0tIGEvc2FuZGJveC9saW51eC9zdWlkL3NhbmRib3guYwkyMDE5 LTExLTE5IDA5OjI4OjA1LjAwMDAwMDAwMCArMDgwMAorKysrIGIvc2FuZGJveC9saW51eC9zdWlk L3NhbmRib3guYwkyMDIwLTA0LTI0IDExOjUwOjEyLjcxOTg4MDcyOCArMDgwMAorQEAgLTQyLDYg KzQyLDE1IEBACisgI2RlZmluZSBDTE9ORV9ORVdORVQgMHg0MDAwMDAwMAorICNlbmRpZgorIAor KyNpZm5kZWYgVEVNUF9GQUlMVVJFX1JFVFJZCisrI2RlZmluZSBURU1QX0ZBSUxVUkVfUkVUUlko ZXhwcmVzc2lvbikgXAorKyAgKF9fZXh0ZW5zaW9uX18gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgICAoeyBsb25nIGludCBf X3Jlc3VsdDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXAorKyAgICAgICBkbyBfX3Jlc3VsdCA9IChsb25nIGludCkgKGV4cHJlc3Npb24pOyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgICAgICB3aGlsZSAoX19yZXN1bHQgPT0g LTFMICYmIGVycm5vID09IEVJTlRSKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAg ICAgICBfX3Jlc3VsdDsgfSkpCisrI2VuZGlmCisrCisgc3RhdGljIGJvb2wgRHJvcFJvb3QoKTsK KyAKKyAjZGVmaW5lIEhBTkRMRV9FSU5UUih4KSBURU1QX0ZBSUxVUkVfUkVUUlkoeCkKZGlmZiAt LWdpdCBhL3NyY3BrZ3MvZWxlY3Ryb243L2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNs X2Rucy5wYXRjaC5wYXRjaCBiL3NyY3BrZ3MvZWxlY3Ryb243L2ZpbGVzL211c2wtcGF0Y2hlcy9j aHJvbWl1bS1tdXNsX2Rucy5wYXRjaC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAwMC4uZjQ5ZDhiZDBhZmEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2VsZWN0 cm9uNy9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbXVzbF9kbnMucGF0Y2gucGF0Y2gKQEAg LTAsMCArMSw2MSBAQAorZGlmZiAtLWdpdCBhL25ldC9kbnMvZG5zX2NvbmZpZ19zZXJ2aWNlX3Bv c2l4LmNjIGIvbmV0L2Rucy9kbnNfY29uZmlnX3NlcnZpY2VfcG9zaXguY2MKK2luZGV4IDJmOTQ4 MzIuLjJkZDFhOTggMTAwNjQ0CistLS0gYS9uZXQvZG5zL2Ruc19jb25maWdfc2VydmljZV9wb3Np eC5jYworKysrIGIvbmV0L2Rucy9kbnNfY29uZmlnX3NlcnZpY2VfcG9zaXguY2MKK0BAIC0xNTAs NyArMTUwLDcgQEAgQ29uZmlnUGFyc2VQb3NpeFJlc3VsdCBSZWFkRG5zQ29uZmlnKERuc0NvbmZp ZyogZG5zX2NvbmZpZykgeworICNpZiAhZGVmaW5lZChPU19BTkRST0lEKQorICAgQ29uZmlnUGFy c2VQb3NpeFJlc3VsdCByZXN1bHQ7CisgLy8gVE9ETyhmdWNoc2lhKTogVXNlIHJlc19uaW5pdCgp IHdoZW4gaXQncyBpbXBsZW1lbnRlZCBvbiBGdWNoc2lhLgorLSNpZiBkZWZpbmVkKE9TX09QRU5C U0QpIHx8IGRlZmluZWQoT1NfRlVDSFNJQSkKKysjaWYgZGVmaW5lZChPU19PUEVOQlNEKSB8fCBk ZWZpbmVkKE9TX0ZVQ0hTSUEpIHx8IChkZWZpbmVkKE9TX0xJTlVYKSAmJiAhZGVmaW5lZChfX0dM SUJDX18pKQorICAgLy8gTm90ZTogcmVzX25pbml0IGluIGdsaWJjIGFsd2F5cyByZXR1cm5zIDAg YW5kIHNldHMgUkVTX0lOSVQuCisgICAvLyByZXNfaW5pdCBiZWhhdmVzIHRoZSBzYW1lIHdheS4K KyAgIG1lbXNldCgmX3JlcywgMCwgc2l6ZW9mKF9yZXMpKTsKK0BAIC0xNzMsNyArMTczLDcgQEAg Q29uZmlnUGFyc2VQb3NpeFJlc3VsdCBSZWFkRG5zQ29uZmlnKERuc0NvbmZpZyogZG5zX2NvbmZp ZykgeworICNlbHNlCisgICByZXNfbmNsb3NlKCZyZXMpOworICNlbmRpZiAgLy8gZGVmaW5lZChP U19NQUNPU1gpIHx8IGRlZmluZWQoT1NfRlJFRUJTRCkKKy0jZW5kaWYgIC8vIGRlZmluZWQoT1Nf T1BFTkJTRCkKKysjZW5kaWYgIC8vIGRlZmluZWQoT1NfT1BFTkJTRCkgfHwgZGVmaW5lZChPU19G VUNIU0lBKSB8fCAoZGVmaW5lZChPU19MSU5VWCkgJiYgIWRlZmluZWQoX19HTElCQ19fKSkKKyAK KyAjaWYgZGVmaW5lZChPU19NQUNPU1gpICYmICFkZWZpbmVkKE9TX0lPUykKKyAgIENvbmZpZ1Bh cnNlUG9zaXhSZXN1bHQgZXJyb3IgPSBEbnNDb25maWdXYXRjaGVyOjpDaGVja0Ruc0NvbmZpZygp OworZGlmZiAtLWdpdCBhL25ldC9kbnMvZG5zX3JlbG9hZGVyLmNjIGIvbmV0L2Rucy9kbnNfcmVs b2FkZXIuY2MKK2luZGV4IDk1MmNmZjQuLjRiMzY2ZjQgMTAwNjQ0CistLS0gYS9uZXQvZG5zL2Ru c19yZWxvYWRlci5jYworKysrIGIvbmV0L2Rucy9kbnNfcmVsb2FkZXIuY2MKK0BAIC00LDcgKzQs NyBAQAorIAorICNpbmNsdWRlICJuZXQvZG5zL2Ruc19yZWxvYWRlci5oIgorIAorLSNpZiBkZWZp bmVkKE9TX1BPU0lYKSAmJiAhZGVmaW5lZChPU19NQUNPU1gpICYmICFkZWZpbmVkKE9TX09QRU5C U0QpICYmIFwKKysjaWYgZGVmaW5lZChPU19QT1NJWCkgJiYgZGVmaW5lZChfX0dMSUJDX18pICYm ICFkZWZpbmVkKE9TX01BQ09TWCkgJiYgIWRlZmluZWQoT1NfT1BFTkJTRCkgJiYgXAorICAgICAh ZGVmaW5lZChPU19BTkRST0lEKSAmJiAhZGVmaW5lZChPU19GVUNIU0lBKQorIAorICNpbmNsdWRl IDxyZXNvbHYuaD4KK2RpZmYgLS1naXQgYS9uZXQvZG5zL2hvc3RfcmVzb2x2ZXJfbWFuYWdlci5j YyBiL25ldC9kbnMvaG9zdF9yZXNvbHZlcl9tYW5hZ2VyLmNjCitpbmRleCBlOGRlYTQ2Li5jODZh ODMwIDEwMDY0NAorLS0tIGEvbmV0L2Rucy9ob3N0X3Jlc29sdmVyX21hbmFnZXIuY2MKKysrKyBi L25ldC9kbnMvaG9zdF9yZXNvbHZlcl9tYW5hZ2VyLmNjCitAQCAtMjM4Niw3ICsyMzg2LDcgQEAg SG9zdFJlc29sdmVyTWFuYWdlcjo6SG9zdFJlc29sdmVyTWFuYWdlcigKKyAgIE5ldHdvcmtDaGFu Z2VOb3RpZmllcjo6QWRkQ29ubmVjdGlvblR5cGVPYnNlcnZlcih0aGlzKTsKKyAgIGlmIChzeXN0 ZW1fZG5zX2NvbmZpZ19ub3RpZmllcl8pCisgICAgIHN5c3RlbV9kbnNfY29uZmlnX25vdGlmaWVy Xy0+QWRkT2JzZXJ2ZXIodGhpcyk7CistI2lmIGRlZmluZWQoT1NfUE9TSVgpICYmICFkZWZpbmVk KE9TX01BQ09TWCkgJiYgIWRlZmluZWQoT1NfT1BFTkJTRCkgJiYgXAorKyNpZiBkZWZpbmVkKE9T X1BPU0lYKSAmJiBkZWZpbmVkKF9fR0xJQkNfXykgJiYgIWRlZmluZWQoT1NfTUFDT1NYKSAmJiAh ZGVmaW5lZChPU19PUEVOQlNEKSAmJiBcCisgICAgICFkZWZpbmVkKE9TX0FORFJPSUQpCisgICBF bnN1cmVEbnNSZWxvYWRlckluaXQoKTsKKyAjZW5kaWYKK2RpZmYgLS1naXQgYS9uZXQvZG5zL2hv c3RfcmVzb2x2ZXJfcHJvYy5jYyBiL25ldC9kbnMvaG9zdF9yZXNvbHZlcl9wcm9jLmNjCitpbmRl eCAwODI0NTQwLi4zMzg0OTc4IDEwMDY0NAorLS0tIGEvbmV0L2Rucy9ob3N0X3Jlc29sdmVyX3By b2MuY2MKKysrKyBiL25ldC9kbnMvaG9zdF9yZXNvbHZlcl9wcm9jLmNjCitAQCAtMTk3LDcgKzE5 Nyw3IEBAIGludCBTeXN0ZW1Ib3N0UmVzb2x2ZXJDYWxsKGNvbnN0IHN0ZDo6c3RyaW5nJiBob3N0 LAorICAgYmFzZTo6U2NvcGVkQmxvY2tpbmdDYWxsIHNjb3BlZF9ibG9ja2luZ19jYWxsKEZST01f SEVSRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBi YXNlOjpCbG9ja2luZ1R5cGU6OldJTExfQkxPQ0spOworIAorLSNpZiBkZWZpbmVkKE9TX1BPU0lY KSAmJiAhZGVmaW5lZChPU19NQUNPU1gpICYmICFkZWZpbmVkKE9TX09QRU5CU0QpICYmIFwKKysj aWYgZGVmaW5lZChPU19QT1NJWCkgJiYgZGVmaW5lZChfX0dMSUJDX18pICYmICFkZWZpbmVkKE9T X01BQ09TWCkgJiYgIWRlZmluZWQoT1NfT1BFTkJTRCkgJiYgXAorICAgICAhZGVmaW5lZChPU19B TkRST0lEKSAmJiAhZGVmaW5lZChPU19GVUNIU0lBKQorICAgRG5zUmVsb2FkZXJNYXliZVJlbG9h ZCgpOworICNlbmRpZgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9lbGVjdHJvbjcvZmlsZXMvbXVzbC1w YXRjaGVzL2Nocm9taXVtLW11c2xfZXhlaW5mby5wYXRjaC5wYXRjaCBiL3NyY3BrZ3MvZWxlY3Ry b243L2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsX2V4ZWluZm8ucGF0Y2gucGF0Y2gK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmYxYWZjN2MxYjE3Ci0tLSAv ZGV2L251bGwKKysrIGIvc3JjcGtncy9lbGVjdHJvbjcvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9t aXVtLW11c2xfZXhlaW5mby5wYXRjaC5wYXRjaApAQCAtMCwwICsxLDk2IEBACitkaWZmIC0tZ2l0 IGEvYmFzZS9kZWJ1Zy9zdGFja190cmFjZV9wb3NpeC5jYyBiL2Jhc2UvZGVidWcvc3RhY2tfdHJh Y2VfcG9zaXguY2MKK2luZGV4IGRlMmYzNTYuLmY2OTdjNjYgMTAwNjQ0CistLS0gYS9iYXNlL2Rl YnVnL3N0YWNrX3RyYWNlX3Bvc2l4LmNjCisrKysgYi9iYXNlL2RlYnVnL3N0YWNrX3RyYWNlX3Bv c2l4LmNjCitAQCAtMjcsNyArMjcsNyBAQAorICNpZiAhZGVmaW5lZChVU0VfU1lNQk9MSVpFKQor ICNpbmNsdWRlIDxjeHhhYmkuaD4KKyAjZW5kaWYKKy0jaWYgIWRlZmluZWQoX19VQ0xJQkNfXykg JiYgIWRlZmluZWQoX0FJWCkKKysjaWYgZGVmaW5lZChfX0dMSUJDX18pICYmICFkZWZpbmVkKF9f VUNMSUJDX18pICYmICFkZWZpbmVkKF9BSVgpCisgI2luY2x1ZGUgPGV4ZWNpbmZvLmg+CisgI2Vu ZGlmCisgCitAQCAtODYsNyArODYsNyBAQCB2b2lkIERlbWFuZ2xlU3ltYm9scyhzdGQ6OnN0cmlu ZyogdGV4dCkgeworICAgLy8gTm90ZTogY29kZSBpbiB0aGlzIGZ1bmN0aW9uIGlzIE5PVCBhc3lu Yy1zaWduYWwgc2FmZSAoc3RkOjpzdHJpbmcgdXNlcworICAgLy8gbWFsbG9jIGludGVybmFsbHkp LgorIAorLSNpZiAhZGVmaW5lZChfX1VDTElCQ19fKSAmJiAhZGVmaW5lZChfQUlYKQorKyNpZiBk ZWZpbmVkKF9fR0xJQkNfXykgJiYgIWRlZmluZWQoX19VQ0xJQkNfXykgJiYgIWRlZmluZWQoX0FJ WCkKKyAgIHN0ZDo6c3RyaW5nOjpzaXplX3R5cGUgc2VhcmNoX2Zyb20gPSAwOworICAgd2hpbGUg KHNlYXJjaF9mcm9tIDwgdGV4dC0+c2l6ZSgpKSB7CisgICAgIC8vIExvb2sgZm9yIHRoZSBzdGFy dCBvZiBhIG1hbmdsZWQgc3ltYm9sLCBmcm9tIHNlYXJjaF9mcm9tLgorQEAgLTEyMSw3ICsxMjEs NyBAQCB2b2lkIERlbWFuZ2xlU3ltYm9scyhzdGQ6OnN0cmluZyogdGV4dCkgeworICAgICAgIHNl YXJjaF9mcm9tID0gbWFuZ2xlZF9zdGFydCArIDI7CisgICAgIH0KKyAgIH0KKy0jZW5kaWYgIC8v ICFkZWZpbmVkKF9fVUNMSUJDX18pICYmICFkZWZpbmVkKF9BSVgpCisrI2VuZGlmICAvLyBkZWZp bmVkKF9fR0xJQkNfXykgJiYgIWRlZmluZWQoX19VQ0xJQkNfXykgJiYgIWRlZmluZWQoX0FJWCkK KyB9CisgI2VuZGlmICAvLyAhZGVmaW5lZChVU0VfU1lNQk9MSVpFKQorIAorQEAgLTEzMyw3ICsx MzMsNyBAQCBjbGFzcyBCYWNrdHJhY2VPdXRwdXRIYW5kbGVyIHsKKyAgIHZpcnR1YWwgfkJhY2t0 cmFjZU91dHB1dEhhbmRsZXIoKSA9IGRlZmF1bHQ7CisgfTsKKyAKKy0jaWYgIWRlZmluZWQoX19V Q0xJQkNfXykgJiYgIWRlZmluZWQoX0FJWCkKKysjaWYgZGVmaW5lZChfX0dMSUJDX18pICYmICFk ZWZpbmVkKF9fVUNMSUJDX18pICYmICFkZWZpbmVkKF9BSVgpCisgdm9pZCBPdXRwdXRQb2ludGVy KHZvaWQqIHBvaW50ZXIsIEJhY2t0cmFjZU91dHB1dEhhbmRsZXIqIGhhbmRsZXIpIHsKKyAgIC8v IFRoaXMgc2hvdWxkIGJlIG1vcmUgdGhhbiBlbm91Z2ggdG8gc3RvcmUgYSA2NC1iaXQgbnVtYmVy IGluIGhleDoKKyAgIC8vIDE2IGhleCBkaWdpdHMgKyAxIGZvciBudWxsLXRlcm1pbmF0b3IuCitA QCAtMjE2LDcgKzIxNiw3IEBAIHZvaWQgUHJvY2Vzc0JhY2t0cmFjZSh2b2lkKiBjb25zdCogdHJh Y2UsCisgICB9CisgI2VuZGlmICAvLyBkZWZpbmVkKFVTRV9TWU1CT0xJWkUpCisgfQorLSNlbmRp ZiAgLy8gIWRlZmluZWQoX19VQ0xJQkNfXykgJiYgIWRlZmluZWQoX0FJWCkKKysjZW5kaWYgIC8v IGRlZmluZWQoX19HTElCQ19fKSAmJiAhZGVmaW5lZChfX1VDTElCQ19fKSAmJiAhZGVmaW5lZChf QUlYKQorIAorIHZvaWQgUHJpbnRUb1N0ZGVycihjb25zdCBjaGFyKiBvdXRwdXQpIHsKKyAgIC8v IE5PVEU6IFRoaXMgY29kZSBNVVNUIGJlIGFzeW5jLXNpZ25hbCBzYWZlIChpdCdzIHVzZWQgYnkg aW4tcHJvY2VzcworQEAgLTgyOCw3ICs4MjgsNyBAQCBzaXplX3QgQ29sbGVjdFN0YWNrVHJhY2Uo dm9pZCoqIHRyYWNlLCBzaXplX3QgY291bnQpIHsKKyAgIC8vIE5PVEU6IFRoaXMgY29kZSBNVVNU IGJlIGFzeW5jLXNpZ25hbCBzYWZlIChpdCdzIHVzZWQgYnkgaW4tcHJvY2VzcworICAgLy8gc3Rh Y2sgZHVtcGluZyBzaWduYWwgaGFuZGxlcikuIE5PIG1hbGxvYyBvciBzdGRpbyBpcyBhbGxvd2Vk IGhlcmUuCisgCistI2lmICFkZWZpbmVkKF9fVUNMSUJDX18pICYmICFkZWZpbmVkKF9BSVgpCisr I2lmIGRlZmluZWQoX19HTElCQ19fKSAmJiAhZGVmaW5lZChfX1VDTElCQ19fKSAmJiAhZGVmaW5l ZChfQUlYKQorICAgLy8gVGhvdWdoIHRoZSBiYWNrdHJhY2UgQVBJIG1hbiBwYWdlIGRvZXMgbm90 IGxpc3QgYW55IHBvc3NpYmxlIG5lZ2F0aXZlCisgICAvLyByZXR1cm4gdmFsdWVzLCB3ZSB0YWtl IG5vIGNoYW5jZS4KKyAgIHJldHVybiBiYXNlOjpzYXR1cmF0ZWRfY2FzdDxzaXplX3Q+KGJhY2t0 cmFjZSh0cmFjZSwgY291bnQpKTsKK0BAIC04NDEsMTMgKzg0MSwxMyBAQCB2b2lkIFN0YWNrVHJh Y2U6OlByaW50V2l0aFByZWZpeChjb25zdCBjaGFyKiBwcmVmaXhfc3RyaW5nKSBjb25zdCB7Cisg Ly8gTk9URTogVGhpcyBjb2RlIE1VU1QgYmUgYXN5bmMtc2lnbmFsIHNhZmUgKGl0J3MgdXNlZCBi eSBpbi1wcm9jZXNzCisgLy8gc3RhY2sgZHVtcGluZyBzaWduYWwgaGFuZGxlcikuIE5PIG1hbGxv YyBvciBzdGRpbyBpcyBhbGxvd2VkIGhlcmUuCisgCistI2lmICFkZWZpbmVkKF9fVUNMSUJDX18p ICYmICFkZWZpbmVkKF9BSVgpCisrI2lmIGRlZmluZWQoX19HTElCQ19fKSAmJiAhZGVmaW5lZChf X1VDTElCQ19fKSAmJiAhZGVmaW5lZChfQUlYKQorICAgUHJpbnRCYWNrdHJhY2VPdXRwdXRIYW5k bGVyIGhhbmRsZXI7CisgICBQcm9jZXNzQmFja3RyYWNlKHRyYWNlXywgY291bnRfLCBwcmVmaXhf c3RyaW5nLCAmaGFuZGxlcik7CisgI2VuZGlmCisgfQorIAorLSNpZiAhZGVmaW5lZChfX1VDTElC Q19fKSAmJiAhZGVmaW5lZChfQUlYKQorKyNpZiBkZWZpbmVkKF9fR0xJQkNfXykgJiYgIWRlZmlu ZWQoX19VQ0xJQkNfXykgJiYgIWRlZmluZWQoX0FJWCkKKyB2b2lkIFN0YWNrVHJhY2U6Ok91dHB1 dFRvU3RyZWFtV2l0aFByZWZpeChzdGQ6Om9zdHJlYW0qIG9zLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIHByZWZpeF9zdHJpbmcpIGNvbnN0 IHsKKyAgIFN0cmVhbUJhY2t0cmFjZU91dHB1dEhhbmRsZXIgaGFuZGxlcihvcyk7CitkaWZmIC0t Z2l0IGEvdGhpcmRfcGFydHkvc3dpZnRzaGFkZXIvdGhpcmRfcGFydHkvbGx2bS1zdWJ6ZXJvL2J1 aWxkL0xpbnV4L2luY2x1ZGUvbGx2bS9Db25maWcvY29uZmlnLmggYi90aGlyZF9wYXJ0eS9zd2lm dHNoYWRlci90aGlyZF9wYXJ0eS9sbHZtLXN1Ynplcm8vYnVpbGQvTGludXgvaW5jbHVkZS9sbHZt L0NvbmZpZy9jb25maWcuaAoraW5kZXggNzk4ZjE1MC4uOTdhY2M3YyAxMDA2NDQKKy0tLSBhL3Ro aXJkX3BhcnR5L3N3aWZ0c2hhZGVyL3RoaXJkX3BhcnR5L2xsdm0tc3ViemVyby9idWlsZC9MaW51 eC9pbmNsdWRlL2xsdm0vQ29uZmlnL2NvbmZpZy5oCisrKysgYi90aGlyZF9wYXJ0eS9zd2lmdHNo YWRlci90aGlyZF9wYXJ0eS9sbHZtLXN1Ynplcm8vYnVpbGQvTGludXgvaW5jbHVkZS9sbHZtL0Nv bmZpZy9jb25maWcuaAorQEAgLTE0LDcgKzE0LDcgQEAKKyAjZGVmaW5lIEVOQUJMRV9DUkFTSF9P VkVSUklERVMgMQorIAorIC8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgYmFja3RyYWNl JyBmdW5jdGlvbi4gKi8KKy0jZGVmaW5lIEhBVkVfQkFDS1RSQUNFIDEKKysvKiAjdW5kZWYgSEFW RV9CQUNLVFJBQ0UgKi8KKyAKKyAvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPENyYXNo UmVwb3J0ZXJDbGllbnQuaD4gaGVhZGVyIGZpbGUuICovCisgLyogI3VuZGVmIEhBVkVfQ1JBU0hS RVBPUlRFUkNMSUVOVF9IICovCitAQCAtNTUsNyArNTUsNyBAQAorICNkZWZpbmUgSEFWRV9FUlJO T19IIDEKKyAKKyAvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGV4ZWNpbmZvLmg+IGhl YWRlciBmaWxlLiAqLworLSNkZWZpbmUgSEFWRV9FWEVDSU5GT19IIDEKKysvKiAjdW5kZWYgSEFW RV9FWEVDSU5GT19IICovCisgCisgLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxmY250 bC5oPiBoZWFkZXIgZmlsZS4gKi8KKyAjZGVmaW5lIEhBVkVfRkNOVExfSCAxCmRpZmYgLS1naXQg YS9zcmNwa2dzL2VsZWN0cm9uNy9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbXVzbF9mcHN0 YXRlX3QucGF0Y2gucGF0Y2ggYi9zcmNwa2dzL2VsZWN0cm9uNy9maWxlcy9tdXNsLXBhdGNoZXMv Y2hyb21pdW0tbXVzbF9mcHN0YXRlX3QucGF0Y2gucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwMDAuLmQ4YzQxY2NkOWEwCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtn cy9lbGVjdHJvbjcvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2xfZnBzdGF0ZV90LnBh dGNoLnBhdGNoCkBAIC0wLDAgKzEsNDggQEAKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9icmVh a3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1vbi91Y29udGV4 dF9yZWFkZXIuY2MgYi90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xp bnV4L2R1bXBfd3JpdGVyX2NvbW1vbi91Y29udGV4dF9yZWFkZXIuY2MKK2luZGV4IDZlZTZjYzEu LmE4ZjljY2MgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMv Y2xpZW50L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1vbi91Y29udGV4dF9yZWFkZXIuY2MKKysrKyBi L3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvZHVtcF93cml0 ZXJfY29tbW9uL3Vjb250ZXh0X3JlYWRlci5jYworQEAgLTQ5LDcgKzQ5LDcgQEAgdWludHB0cl90 IFVDb250ZXh0UmVhZGVyOjpHZXRJbnN0cnVjdGlvblBvaW50ZXIoY29uc3QgdWNvbnRleHRfdCog dWMpIHsKKyB9CisgCisgdm9pZCBVQ29udGV4dFJlYWRlcjo6RmlsbENQVUNvbnRleHQoUmF3Q29u dGV4dENQVSAqb3V0LCBjb25zdCB1Y29udGV4dF90ICp1YywKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgX2xpYmNfZnBzdGF0ZSogZnApIHsKKysgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgX2Zwc3RhdGUqIGZw KSB7CisgICBjb25zdCBncmVnX3QqIHJlZ3MgPSB1Yy0+dWNfbWNvbnRleHQuZ3JlZ3M7CisgCisg ICBvdXQtPmNvbnRleHRfZmxhZ3MgPSBNRF9DT05URVhUX1g4Nl9GVUxMIHwKK0BAIC05Nyw3ICs5 Nyw3IEBAIHVpbnRwdHJfdCBVQ29udGV4dFJlYWRlcjo6R2V0SW5zdHJ1Y3Rpb25Qb2ludGVyKGNv bnN0IHVjb250ZXh0X3QqIHVjKSB7CisgfQorIAorIHZvaWQgVUNvbnRleHRSZWFkZXI6OkZpbGxD UFVDb250ZXh0KFJhd0NvbnRleHRDUFUgKm91dCwgY29uc3QgdWNvbnRleHRfdCAqdWMsCistICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IF9saWJjX2Zwc3Rh dGUqIGZwcmVncykgeworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0 IHN0cnVjdCBfZnBzdGF0ZSogZnByZWdzKSB7CisgICBjb25zdCBncmVnX3QqIHJlZ3MgPSB1Yy0+ dWNfbWNvbnRleHQuZ3JlZ3M7CisgCisgICBvdXQtPmNvbnRleHRfZmxhZ3MgPSBNRF9DT05URVhU X0FNRDY0X0ZVTEw7CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQv c3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21tb24vdWNvbnRleHRfcmVhZGVyLmggYi90 aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1bXBfd3JpdGVy X2NvbW1vbi91Y29udGV4dF9yZWFkZXIuaAoraW5kZXggZjgzMDYxOC4uZjNkZGUxZiAxMDA2NDQK Ky0tLSBhL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvZHVt cF93cml0ZXJfY29tbW9uL3Vjb250ZXh0X3JlYWRlci5oCisrKysgYi90aGlyZF9wYXJ0eS9icmVh a3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1vbi91Y29udGV4 dF9yZWFkZXIuaAorQEAgLTUwLDcgKzUwLDcgQEAgc3RydWN0IFVDb250ZXh0UmVhZGVyIHsKKyAg IC8vICAgaW5mbzogdGhlIGNvbGxlY3Rpb24gb2YgcmVnaXN0ZXIgc3RydWN0dXJlcy4KKyAjaWYg ZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NCkKKyAgIHN0YXRpYyB2b2lkIEZp bGxDUFVDb250ZXh0KFJhd0NvbnRleHRDUFUgKm91dCwgY29uc3QgdWNvbnRleHRfdCAqdWMsCist ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgX2xpYmNfZnBzdGF0ZSog ZnApOworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IF9mcHN0YXRl KiBmcCk7CisgI2VsaWYgZGVmaW5lZChfX2FhcmNoNjRfXykKKyAgIHN0YXRpYyB2b2lkIEZpbGxD UFVDb250ZXh0KFJhd0NvbnRleHRDUFUgKm91dCwgY29uc3QgdWNvbnRleHRfdCAqdWMsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgZnBzaW1kX2NvbnRleHQqIGZw cmVncyk7CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2Ns aWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbWluaWR1bXBfd3JpdGVyLmggYi90aGlyZF9wYXJ0 eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9taW5p ZHVtcF93cml0ZXIuaAoraW5kZXggZDFkYzMzMS4uZDFjYzU2MiAxMDA2NDQKKy0tLSBhL3RoaXJk X3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVy L21pbmlkdW1wX3dyaXRlci5oCisrKysgYi90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9z cmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9taW5pZHVtcF93cml0ZXIuaAorQEAgLTQ4 LDcgKzQ4LDcgQEAgY2xhc3MgRXhjZXB0aW9uSGFuZGxlcjsKKyAjaWYgZGVmaW5lZChfX2FhcmNo NjRfXykKKyB0eXBlZGVmIHN0cnVjdCBmcHNpbWRfY29udGV4dCBmcHN0YXRlX3Q7CisgI2VsaWYg IWRlZmluZWQoX19BUk1fRUFCSV9fKSAmJiAhZGVmaW5lZChfX21pcHNfXykKKy10eXBlZGVmIHN0 cnVjdCBfbGliY19mcHN0YXRlIGZwc3RhdGVfdDsKKyt0eXBlZGVmIHN0cnVjdCBfZnBzdGF0ZSBm cHN0YXRlX3Q7CisgI2VuZGlmCisgCisgLy8gVGhlc2UgZW50cmllcyBzdG9yZSBhIGxpc3Qgb2Yg bWVtb3J5IHJlZ2lvbnMgdGhhdCB0aGUgY2xpZW50IHdhbnRzIGluY2x1ZGVkCmRpZmYgLS1naXQg YS9zcmNwa2dzL2VsZWN0cm9uNy9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbXVzbF9nZXRj b250ZXh0LnBhdGNoLnBhdGNoIGIvc3JjcGtncy9lbGVjdHJvbjcvZmlsZXMvbXVzbC1wYXRjaGVz L2Nocm9taXVtLW11c2xfZ2V0Y29udGV4dC5wYXRjaC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAwMC4uNzY5NzI0M2E5MTAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNw a2dzL2VsZWN0cm9uNy9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbXVzbF9nZXRjb250ZXh0 LnBhdGNoLnBhdGNoCkBAIC0wLDAgKzEsMjUgQEAKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9i cmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2hhbmRsZXIvZXhjZXB0aW9uX2hhbmRs ZXIuY2MgYi90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2hh bmRsZXIvZXhjZXB0aW9uX2hhbmRsZXIuY2MKK2luZGV4IGI4OTVmNmQuLjRmMTMzNTIgMTAwNjQ0 CistLS0gYS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2hh bmRsZXIvZXhjZXB0aW9uX2hhbmRsZXIuY2MKKysrKyBiL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2Jy ZWFrcGFkL3NyYy9jbGllbnQvbGludXgvaGFuZGxlci9leGNlcHRpb25faGFuZGxlci5jYworQEAg LTQ5MCw3ICs0OTAsOSBAQCBib29sIEV4Y2VwdGlvbkhhbmRsZXI6OlNpbXVsYXRlU2lnbmFsRGVs aXZlcnkoaW50IHNpZykgeworICAgc2lnaW5mby5zaV9jb2RlID0gU0lfVVNFUjsKKyAgIHNpZ2lu Zm8uc2lfcGlkID0gZ2V0cGlkKCk7CisgICB1Y29udGV4dF90IGNvbnRleHQ7CisrI2lmIGRlZmlu ZWQoX19HTElCQ19fKQorICAgZ2V0Y29udGV4dCgmY29udGV4dCk7CisrI2VuZGlmCisgICByZXR1 cm4gSGFuZGxlU2lnbmFsKHNpZywgJnNpZ2luZm8sICZjb250ZXh0KTsKKyB9CisgCitAQCAtNjc1 LDggKzY3NywxMCBAQCBib29sIEV4Y2VwdGlvbkhhbmRsZXI6OldyaXRlTWluaWR1bXAoKSB7Cisg ICBzeXNfcHJjdGwoUFJfU0VUX0RVTVBBQkxFLCAxLCAwLCAwLCAwKTsKKyAKKyAgIENyYXNoQ29u dGV4dCBjb250ZXh0OworKyNpZiBkZWZpbmVkKF9fR0xJQkNfXykKKyAgIGludCBnZXRjb250ZXh0 X3Jlc3VsdCA9IGdldGNvbnRleHQoJmNvbnRleHQuY29udGV4dCk7CisgICBpZiAoZ2V0Y29udGV4 dF9yZXN1bHQpCisrI2VuZGlmCisgICAgIHJldHVybiBmYWxzZTsKKyAKKyAjaWYgZGVmaW5lZChf X2kzODZfXykKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZWxlY3Ryb243L2ZpbGVzL211c2wtcGF0Y2hl cy9jaHJvbWl1bS1tdXNsX21hbGxpbmZvLnBhdGNoLnBhdGNoIGIvc3JjcGtncy9lbGVjdHJvbjcv ZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2xfbWFsbGluZm8ucGF0Y2gucGF0Y2gKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjk0MTMxM2U0OTM5Ci0tLSAvZGV2 L251bGwKKysrIGIvc3JjcGtncy9lbGVjdHJvbjcvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVt LW11c2xfbWFsbGluZm8ucGF0Y2gucGF0Y2gKQEAgLTAsMCArMSw2MSBAQAorZGlmZiAtLWdpdCBh L2Jhc2UvcHJvY2Vzcy9wcm9jZXNzX21ldHJpY3NfcG9zaXguY2MgYi9iYXNlL3Byb2Nlc3MvcHJv Y2Vzc19tZXRyaWNzX3Bvc2l4LmNjCitpbmRleCAwNDRiZDhkLi4wNTIxMzIxIDEwMDY0NAorLS0t IGEvYmFzZS9wcm9jZXNzL3Byb2Nlc3NfbWV0cmljc19wb3NpeC5jYworKysrIGIvYmFzZS9wcm9j ZXNzL3Byb2Nlc3NfbWV0cmljc19wb3NpeC5jYworQEAgLTExMCwxNCArMTEwLDE0IEBAIHNpemVf dCBQcm9jZXNzTWV0cmljczo6R2V0TWFsbG9jVXNhZ2UoKSB7CisgICBtYWxsb2Nfc3RhdGlzdGlj c190IHN0YXRzID0gezB9OworICAgbWFsbG9jX3pvbmVfc3RhdGlzdGljcyhudWxscHRyLCAmc3Rh dHMpOworICAgcmV0dXJuIHN0YXRzLnNpemVfaW5fdXNlOworLSNlbGlmIGRlZmluZWQoT1NfTElO VVgpIHx8IGRlZmluZWQoT1NfQU5EUk9JRCkKKysjZWxpZiAoZGVmaW5lZChPU19MSU5VWCkgJiYg ZGVmaW5lZChfX0dMSUJDX18pKSB8fCBkZWZpbmVkKE9TX0FORFJPSUQpCisgICBzdHJ1Y3QgbWFs bGluZm8gbWluZm8gPSBtYWxsaW5mbygpOworICNpZiBCVUlMREZMQUcoVVNFX1RDTUFMTE9DKQor ICAgcmV0dXJuIG1pbmZvLnVvcmRibGtzOworICNlbHNlCisgICByZXR1cm4gbWluZm8uaGJsa2hk ICsgbWluZm8uYXJlbmE7CisgI2VuZGlmCistI2VsaWYgZGVmaW5lZChPU19GVUNIU0lBKQorKyNl bHNlCisgICAvLyBUT0RPKGZ1Y2hzaWEpOiBOb3QgY3VycmVudGx5IGV4cG9zZWQuIGh0dHBzOi8v Y3JidWcuY29tLzczNTA4Ny4KKyAgIHJldHVybiAwOworICNlbmRpZgorZGlmZiAtLWdpdCBhL2Jh c2UvdHJhY2VfZXZlbnQvbWFsbG9jX2R1bXBfcHJvdmlkZXIuY2MgYi9iYXNlL3RyYWNlX2V2ZW50 L21hbGxvY19kdW1wX3Byb3ZpZGVyLmNjCitpbmRleCBlODk1OTdjLi5lY2EyNThjIDEwMDY0NAor LS0tIGEvYmFzZS90cmFjZV9ldmVudC9tYWxsb2NfZHVtcF9wcm92aWRlci5jYworKysrIGIvYmFz ZS90cmFjZV9ldmVudC9tYWxsb2NfZHVtcF9wcm92aWRlci5jYworQEAgLTEzMiw3ICsxMzIsNyBA QCBib29sIE1hbGxvY0R1bXBQcm92aWRlcjo6T25NZW1vcnlEdW1wKGNvbnN0IE1lbW9yeUR1bXBB cmdzJiBhcmdzLAorICAgfQorICNlbGlmIGRlZmluZWQoT1NfRlVDSFNJQSkKKyAvLyBUT0RPKGZ1 Y2hzaWEpOiBQb3J0LCBzZWUgaHR0cHM6Ly9jcmJ1Zy5jb20vNzA2NTkyLgorLSNlbHNlCisrI2Vs aWYgZGVmaW5lZChPU19MSU5VWCkgJiYgZGVmaW5lZChfX0dMSUJDX18pCisgICBzdHJ1Y3QgbWFs bGluZm8gaW5mbyA9IG1hbGxpbmZvKCk7CisgICBEQ0hFQ0tfR0UoaW5mby5hcmVuYSArIGluZm8u aGJsa2hkLCBpbmZvLnVvcmRibGtzKTsKKyAKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9zd2lm dHNoYWRlci90aGlyZF9wYXJ0eS9sbHZtLXN1Ynplcm8vYnVpbGQvTGludXgvaW5jbHVkZS9sbHZt L0NvbmZpZy9jb25maWcuaCBiL3RoaXJkX3BhcnR5L3N3aWZ0c2hhZGVyL3RoaXJkX3BhcnR5L2xs dm0tc3ViemVyby9idWlsZC9MaW51eC9pbmNsdWRlL2xsdm0vQ29uZmlnL2NvbmZpZy5oCitpbmRl eCBhYTk4MjQyLi45N2FjYzdjIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvc3dpZnRzaGFkZXIv dGhpcmRfcGFydHkvbGx2bS1zdWJ6ZXJvL2J1aWxkL0xpbnV4L2luY2x1ZGUvbGx2bS9Db25maWcv Y29uZmlnLmgKKysrKyBiL3RoaXJkX3BhcnR5L3N3aWZ0c2hhZGVyL3RoaXJkX3BhcnR5L2xsdm0t c3ViemVyby9idWlsZC9MaW51eC9pbmNsdWRlL2xsdm0vQ29uZmlnL2NvbmZpZy5oCitAQCAtMTMw LDcgKzEzMCw3IEBACisgLyogI3VuZGVmIEhBVkVfTUFMTENUTCAqLworIAorIC8qIERlZmluZSB0 byAxIGlmIHlvdSBoYXZlIHRoZSBgbWFsbGluZm8nIGZ1bmN0aW9uLiAqLworLSNkZWZpbmUgSEFW RV9NQUxMSU5GTyAxCisrLyogI3VuZGVmIEhBVkVfTUFMTElORk8gKi8KKyAKKyAvKiBEZWZpbmUg dG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG1hbGxvYy5oPiBoZWFkZXIgZmlsZS4gKi8KKyAjZGVmaW5l IEhBVkVfTUFMTE9DX0ggMQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3N3aWZ0c2hhZGVyL3Ro aXJkX3BhcnR5L2xsdm0tNy4wL2NvbmZpZ3MvbGludXgvaW5jbHVkZS9sbHZtL0NvbmZpZy9jb25m aWcuaCBiL3RoaXJkX3BhcnR5L3N3aWZ0c2hhZGVyL3RoaXJkX3BhcnR5L2xsdm0tNy4wL2NvbmZp Z3MvbGludXgvaW5jbHVkZS9sbHZtL0NvbmZpZy9jb25maWcuaAoraW5kZXggNmUxNzAyMC4uZDRh OWVkMCAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3N3aWZ0c2hhZGVyL3RoaXJkX3BhcnR5L2xs dm0tNy4wL2NvbmZpZ3MvbGludXgvaW5jbHVkZS9sbHZtL0NvbmZpZy9jb25maWcuaAorKysrIGIv dGhpcmRfcGFydHkvc3dpZnRzaGFkZXIvdGhpcmRfcGFydHkvbGx2bS03LjAvY29uZmlncy9saW51 eC9pbmNsdWRlL2xsdm0vQ29uZmlnL2NvbmZpZy5oCitAQCAtMTIyLDcgKzEyMiw3IEBACisgLyog I3VuZGVmIEhBVkVfTUFMTENUTCAqLworCisgLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhl IGBtYWxsaW5mbycgZnVuY3Rpb24uICovCistI2RlZmluZSBIQVZFX01BTExJTkZPIDEKKysvKiAj dW5kZWYgSEFWRV9NQUxMSU5GTyAqLworCisgLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhl IDxtYWxsb2MuaD4gaGVhZGVyIGZpbGUuICovCisgI2RlZmluZSBIQVZFX01BTExPQ19IIDEKKwpk aWZmIC0tZ2l0IGEvc3JjcGtncy9lbGVjdHJvbjcvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVt LW11c2xfcHJlYWRfcHdyaXRlNjQucGF0Y2gucGF0Y2ggYi9zcmNwa2dzL2VsZWN0cm9uNy9maWxl cy9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbXVzbF9wcmVhZF9wd3JpdGU2NC5wYXRjaC5wYXRjaApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMmFlYWFlYjc1OTMKLS0tIC9k ZXYvbnVsbAorKysgYi9zcmNwa2dzL2VsZWN0cm9uNy9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21p dW0tbXVzbF9wcmVhZF9wd3JpdGU2NC5wYXRjaC5wYXRjaApAQCAtMCwwICsxLDE4IEBACitkaWZm IC0tZ2l0IGEvdGhpcmRfcGFydHkvbHNzL2xpbnV4X3N5c2NhbGxfc3VwcG9ydC5oIGIvdGhpcmRf cGFydHkvbHNzL2xpbnV4X3N5c2NhbGxfc3VwcG9ydC5oCitpbmRleCA1ZDljMmU4Li4yNjgyMzQ5 IDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvbHNzL2xpbnV4X3N5c2NhbGxfc3VwcG9ydC5oCisr KysgYi90aGlyZF9wYXJ0eS9sc3MvbGludXhfc3lzY2FsbF9zdXBwb3J0LmgKK0BAIC0xNjYsNiAr MTY2LDEzIEBAIGV4dGVybiAiQyIgeworICMgdW5kZWYgX19OUl93YWl0cGlkCisgI2VuZGlmCisg CisrI2lmZGVmIHByZWFkNjQKKysjdW5kZWYgcHJlYWQ2NAorKyNlbmRpZgorKyNpZmRlZiBwd3Jp dGU2NAorKyN1bmRlZiBwd3JpdGU2NAorKyNlbmRpZgorKworIC8qIEFzIGdsaWJjIG9mdGVuIHBy b3ZpZGVzIHN1YnRseSBpbmNvbXBhdGlibGUgZGF0YSBzdHJ1Y3R1cmVzIChhbmQgaW1wbGljaXQK KyAgKiB3cmFwcGVyIGZ1bmN0aW9ucyB0aGF0IGNvbnZlcnQgdGhlbSksIHdlIHByb3ZpZGUgb3Vy IG93biBrZXJuZWwgZGF0YQorICAqIHN0cnVjdHVyZXMgZm9yIHVzZSBieSB0aGUgc3lzdGVtIGNh bGxzLgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9lbGVjdHJvbjcvZmlsZXMvbXVzbC1wYXRjaGVzL2No cm9taXVtLW11c2xfcHVzaF9iYWNrLnBhdGNoLnBhdGNoIGIvc3JjcGtncy9lbGVjdHJvbjcvZmls ZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2xfcHVzaF9iYWNrLnBhdGNoLnBhdGNoCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5jZmYzNDAyODdkYQotLS0gL2Rldi9u dWxsCisrKyBiL3NyY3BrZ3MvZWxlY3Ryb243L2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1t dXNsX3B1c2hfYmFjay5wYXRjaC5wYXRjaApAQCAtMCwwICsxLDEzIEBACitkaWZmIC0tZ2l0IGEv bmV0L3NvY2tldC91ZHBfc29ja2V0X3Bvc2l4LmNjIGIvbmV0L3NvY2tldC91ZHBfc29ja2V0X3Bv c2l4LmNjCitpbmRleCAwOGJmNzljLi4zZWU1MzUzIDEwMDY0NAorLS0tIGEvbmV0L3NvY2tldC91 ZHBfc29ja2V0X3Bvc2l4LmNjCisrKysgYi9uZXQvc29ja2V0L3VkcF9zb2NrZXRfcG9zaXguY2MK K0BAIC0xMTk0LDcgKzExOTQsNyBAQCBTZW5kUmVzdWx0IFVEUFNvY2tldFBvc2l4U2VuZGVyOjpJ bnRlcm5hbFNlbmRtbXNnQnVmZmVycygKKyAgICAgbXNnX2lvdi0+cHVzaF9iYWNrKHtjb25zdF9j YXN0PGNoYXIqPihidWZmZXItPmRhdGEoKSksIGJ1ZmZlci0+bGVuZ3RoKCl9KTsKKyAgIG1zZ3Zl Yy0+cmVzZXJ2ZShidWZmZXJzLnNpemUoKSk7CisgICBmb3IgKHNpemVfdCBqID0gMDsgaiA8IGJ1 ZmZlcnMuc2l6ZSgpOyBqKyspCistICAgIG1zZ3ZlYy0+cHVzaF9iYWNrKHt7bnVsbHB0ciwgMCwg Jm1zZ19pb3Zbal0sIDEsIG51bGxwdHIsIDAsIDB9LCAwfSk7CisrICAgIG1zZ3ZlYy0+cHVzaF9i YWNrKHt7bnVsbHB0ciwgMCwgJm1zZ19pb3Zbal0sIDEsIDAsIG51bGxwdHIsIDAsIDAsIDB9LCAw fSk7CisgICBpbnQgcmVzdWx0ID0gSEFORExFX0VJTlRSKFNlbmRtbXNnKGZkLCAmbXNndmVjWzBd LCBidWZmZXJzLnNpemUoKSwgMCkpOworICAgU2VuZFJlc3VsdCBzZW5kX3Jlc3VsdCgwLCAwLCBz dGQ6Om1vdmUoYnVmZmVycykpOworICAgaWYgKHJlc3VsdCA8IDApIHsKZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MvZWxlY3Ryb243L2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsX3NpX2ZpZWxk cy5wYXRjaC5wYXRjaCBiL3NyY3BrZ3MvZWxlY3Ryb243L2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJv bWl1bS1tdXNsX3NpX2ZpZWxkcy5wYXRjaC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwMDAwMC4uZmRiZWZkMjdlMmIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2Vs ZWN0cm9uNy9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbXVzbF9zaV9maWVsZHMucGF0Y2gu cGF0Y2gKQEAgLTAsMCArMSwxMyBAQAorZGlmZiAtLWdpdCBhL3NhbmRib3gvbGludXgvc2VjY29t cC1icGYvdHJhcC5jYyBiL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYvdHJhcC5jYworaW5kZXgg MDAzNzA4ZC4uYjIxNDE0ZiAxMDA2NDQKKy0tLSBhL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYv dHJhcC5jYworKysrIGIvc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi90cmFwLmNjCitAQCAtMTY4 LDcgKzE2OCw3IEBAIHZvaWQgVHJhcDo6U2lnU3lzKGludCBuciwgTGludXhTaWdJbmZvKiBpbmZv LCB1Y29udGV4dF90KiBjdHgpIHsKKyAgIC8vIG1vc3QgdmVyc2lvbnMgb2YgZ2xpYmMgZG9uJ3Qg aW5jbHVkZSB0aGlzIGluZm9ybWF0aW9uIGluIHNpZ2luZm9fdC4gU28sCisgICAvLyB3ZSBuZWVk IHRvIGV4cGxpY2l0bHkgY29weSBpdCBpbnRvIGEgYXJjaF9zaWdzeXMgc3RydWN0dXJlLgorICAg c3RydWN0IGFyY2hfc2lnc3lzIHNpZ3N5czsKKy0gIG1lbWNweSgmc2lnc3lzLCAmaW5mby0+X3Np ZmllbGRzLCBzaXplb2Yoc2lnc3lzKSk7CisrICBtZW1jcHkoJnNpZ3N5cywgJmluZm8tPl9fc2lf ZmllbGRzLCBzaXplb2Yoc2lnc3lzKSk7CisgCisgI2lmIGRlZmluZWQoX19taXBzX18pCisgICAv LyBXaGVuIGluZGlyZWN0IHN5c2NhbGwgKHN5c2NhbGwoX19OUl9mb28sIC4uLikpIGlzIG1hZGUg b24gTWlwcywgdGhlCmRpZmYgLS1naXQgYS9zcmNwa2dzL2VsZWN0cm9uNy9maWxlcy9tdXNsLXBh dGNoZXMvY2hyb21pdW0tbXVzbF9zdGFja19zaXplLnBhdGNoLnBhdGNoIGIvc3JjcGtncy9lbGVj dHJvbjcvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2xfc3RhY2tfc2l6ZS5wYXRjaC5w YXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYTRkZjdhMzcyOWIK LS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2VsZWN0cm9uNy9maWxlcy9tdXNsLXBhdGNoZXMv Y2hyb21pdW0tbXVzbF9zdGFja19zaXplLnBhdGNoLnBhdGNoCkBAIC0wLDAgKzEsNDEgQEAKK2Rp ZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9wbGF0Zm9ybS93dGYvc3RhY2tf dXRpbC5jYyBiL3RoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL3BsYXRmb3JtL3d0Zi9zdGFja191 dGlsLmNjCitpbmRleCBiMjQyMTY0Li4xYTBiNTE5IDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkv YmxpbmsvcmVuZGVyZXIvcGxhdGZvcm0vd3RmL3N0YWNrX3V0aWwuY2MKKysrKyBiL3RoaXJkX3Bh cnR5L2JsaW5rL3JlbmRlcmVyL3BsYXRmb3JtL3d0Zi9zdGFja191dGlsLmNjCitAQCAtMjksNyAr MjksNyBAQCBzaXplX3QgR2V0VW5kZXJlc3RpbWF0ZWRTdGFja1NpemUoKSB7CisgLy8gRklYTUU6 IE9uIE1hYyBPU1ggYW5kIExpbnV4LCB0aGlzIG1ldGhvZCBjYW5ub3QgZXN0aW1hdGUgc3RhY2sg c2l6ZQorIC8vIGNvcnJlY3RseSBmb3IgdGhlIG1haW4gdGhyZWFkLgorIAorLSNpZiBkZWZpbmVk KF9fR0xJQkNfXykgfHwgZGVmaW5lZChPU19BTkRST0lEKSB8fCBkZWZpbmVkKE9TX0ZSRUVCU0Qp IHx8IFwKKysjaWYgZGVmaW5lZChPU19MSU5VWCkgfHwgZGVmaW5lZChPU19BTkRST0lEKSB8fCBk ZWZpbmVkKE9TX0ZSRUVCU0QpIHx8IFwKKyAgICAgZGVmaW5lZChPU19GVUNIU0lBKQorICAgLy8g cHRocmVhZF9nZXRhdHRyX25wKCkgY2FuIGZhaWwgaWYgdGhlIHRocmVhZCBpcyBub3QgaW52b2tl ZCBieQorICAgLy8gcHRocmVhZF9jcmVhdGUoKSAoZS5nLiwgdGhlIG1haW4gdGhyZWFkIG9mIGJs aW5rX3VuaXR0ZXN0cykuCitAQCAtNTUsNiArNTUsOSBAQCBzaXplX3QgR2V0VW5kZXJlc3RpbWF0 ZWRTdGFja1NpemUoKSB7CisgICBwdGhyZWFkX2F0dHJfZGVzdHJveSgmYXR0cik7CisgI2VuZGlm CisgCisrI2lmIGRlZmluZWQoT1NfTElOVVgpICYmICFkZWZpbmVkKF9fR0xJQkNfXykKKysgIHJl dHVybiAwOworKyNlbHNlCisgICAvLyBSZXR1cm4gYSA1MTJrIHN0YWNrIHNpemUsIChjb25zZXJ2 YXRpdmVseSkgYXNzdW1pbmcgdGhlIGZvbGxvd2luZzoKKyAgIC8vICAtIHRoYXQgc2l6ZSBpcyBt dWNoIGxvd2VyIHRoYW4gdGhlIHB0aHJlYWRzIGRlZmF1bHQgKHg4NiBwdGhyZWFkcyBoYXMgYSAy TQorICAgLy8gICAgZGVmYXVsdC4pCitAQCAtNjIsNiArNjUsOCBAQCBzaXplX3QgR2V0VW5kZXJl c3RpbWF0ZWRTdGFja1NpemUoKSB7CisgICAvLyAgICBsb3cgYXMgNTEyay4KKyAgIC8vCisgICBy ZXR1cm4gNTEyICogMTAyNDsKKysjZW5kaWYKKysKKyAjZWxpZiBkZWZpbmVkKE9TX01BQ09TWCkK KyAgIC8vIHB0aHJlYWRfZ2V0X3N0YWNrc2l6ZV9ucCgpIHJldHVybnMgdG9vIGxvdyBhIHZhbHVl IGZvciB0aGUgbWFpbiB0aHJlYWQgb24KKyAgIC8vIE9TWCAxMC45LAorQEAgLTk3LDcgKzEwMiw3 IEBAIHJldHVybiBUaHJlYWRpbmc6OlRocmVhZFN0YWNrU2l6ZSgpOworIH0KKyAKKyB2b2lkKiBH ZXRTdGFja1N0YXJ0KCkgeworLSNpZiBkZWZpbmVkKF9fR0xJQkNfXykgfHwgZGVmaW5lZChPU19B TkRST0lEKSB8fCBkZWZpbmVkKE9TX0ZSRUVCU0QpIHx8IFwKKysjaWYgZGVmaW5lZChPU19MSU5V WCkgfHwgZGVmaW5lZChPU19BTkRST0lEKSB8fCBkZWZpbmVkKE9TX0ZSRUVCU0QpIHx8IFwKKyAg ICAgZGVmaW5lZChPU19GVUNIU0lBKQorICAgcHRocmVhZF9hdHRyX3QgYXR0cjsKKyAgIGludCBl cnJvcjsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZWxlY3Ryb243L2ZpbGVzL211c2wtcGF0Y2hlcy9j aHJvbWl1bS1tdXNsX3N0YWNrX3RyYWNlLnBhdGNoLnBhdGNoIGIvc3JjcGtncy9lbGVjdHJvbjcv ZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2xfc3RhY2tfdHJhY2UucGF0Y2gucGF0Y2gK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjlhMWYyYjA0NDU4Ci0tLSAv ZGV2L251bGwKKysrIGIvc3JjcGtncy9lbGVjdHJvbjcvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9t aXVtLW11c2xfc3RhY2tfdHJhY2UucGF0Y2gucGF0Y2gKQEAgLTAsMCArMSw0NCBAQAorZGlmZiAt LWdpdCBhL2Jhc2UvZGVidWcvc3RhY2tfdHJhY2UuY2MgYi9iYXNlL2RlYnVnL3N0YWNrX3RyYWNl LmNjCitpbmRleCBkOGNhODIyLi5mZmUxZjA4IDEwMDY0NAorLS0tIGEvYmFzZS9kZWJ1Zy9zdGFj a190cmFjZS5jYworKysrIGIvYmFzZS9kZWJ1Zy9zdGFja190cmFjZS5jYworQEAgLTIyNSw3ICsy MjUsOSBAQCB2b2lkIFN0YWNrVHJhY2U6OlByaW50KCkgY29uc3QgeworIH0KKworIHZvaWQgU3Rh Y2tUcmFjZTo6T3V0cHV0VG9TdHJlYW0oc3RkOjpvc3RyZWFtKiBvcykgY29uc3QgeworKyNpZiBk ZWZpbmVkKF9fR0xJQkNfXykgJiYgIWRlZmluZWQoX19VQ0xJQkNfXykgJiYgIWRlZmluZWQoX0FJ WCkKKyAgIE91dHB1dFRvU3RyZWFtV2l0aFByZWZpeChvcywgbnVsbHB0cik7CisrI2VuZGlmCisg fQorCisgc3RkOjpzdHJpbmcgU3RhY2tUcmFjZTo6VG9TdHJpbmcoKSBjb25zdCB7CitAQCAtMjMz LDE0ICsyMzMsMTQgQEAgc3RkOjpzdHJpbmcgU3RhY2tUcmFjZTo6VG9TdHJpbmcoKSBjb25zdCB7 CisgfQorIHN0ZDo6c3RyaW5nIFN0YWNrVHJhY2U6OlRvU3RyaW5nV2l0aFByZWZpeChjb25zdCBj aGFyKiBwcmVmaXhfc3RyaW5nKSBjb25zdCB7CisgICBzdGQ6OnN0cmluZ3N0cmVhbSBzdHJlYW07 CistI2lmICFkZWZpbmVkKF9fVUNMSUJDX18pICYmICFkZWZpbmVkKF9BSVgpCisrI2lmIGRlZmlu ZWQoX19HTElCQ19fKSAmJiAhZGVmaW5lZChfX1VDTElCQ19fKSAmJiAhZGVmaW5lZChfQUlYKQor ICAgT3V0cHV0VG9TdHJlYW1XaXRoUHJlZml4KCZzdHJlYW0sIHByZWZpeF9zdHJpbmcpOworICNl bmRpZgorICAgcmV0dXJuIHN0cmVhbS5zdHIoKTsKKyB9CisgCisgc3RkOjpvc3RyZWFtJiBvcGVy YXRvcjw8KHN0ZDo6b3N0cmVhbSYgb3MsIGNvbnN0IFN0YWNrVHJhY2UmIHMpIHsKKy0jaWYgIWRl ZmluZWQoX19VQ0xJQkNfXykgJiAhZGVmaW5lZChfQUlYKQorKyNpZiBkZWZpbmVkKF9fR0xJQkNf XykgJiYgIWRlZmluZWQoX19VQ0xJQkNfXykgJiAhZGVmaW5lZChfQUlYKQorICAgcy5PdXRwdXRU b1N0cmVhbSgmb3MpOworICNlbHNlCisgICBvcyA8PCAiU3RhY2tUcmFjZTo6T3V0cHV0VG9TdHJl YW0gbm90IGltcGxlbWVudGVkLiI7CitkaWZmIC0tZ2l0IGEvYmFzZS9sb2dnaW5nLmNjIGIvYmFz ZS9sb2dnaW5nLmNjCitpbmRleCAzNmI4YmZjLi5kZDgzMGZlIDEwMDY0NAorLS0tIGEvYmFzZS9s b2dnaW5nLmNjCisrKysgYi9iYXNlL2xvZ2dpbmcuY2MKK0BAIC02MDcsNyArNjA3LDcgQEAgTG9n TWVzc2FnZTo6TG9nTWVzc2FnZShjb25zdCBjaGFyKiBmaWxlLCBpbnQgbGluZSwgTG9nU2V2ZXJp dHkgc2V2ZXJpdHksCisgTG9nTWVzc2FnZTo6fkxvZ01lc3NhZ2UoKSB7CisgICBzaXplX3Qgc3Rh Y2tfc3RhcnQgPSBzdHJlYW1fLnRlbGxwKCk7CisgI2lmICFkZWZpbmVkKE9GRklDSUFMX0JVSUxE KSAmJiAhZGVmaW5lZChPU19OQUNMKSAmJiAhZGVmaW5lZChfX1VDTElCQ19fKSAmJiBcCistICAg ICFkZWZpbmVkKE9TX0FJWCkKKysgICAgIWRlZmluZWQoT1NfQUlYKSAmJiBkZWZpbmVkKF9fR0xJ QkNfXykKKyAgIGlmIChzZXZlcml0eV8gPT0gTE9HX0ZBVEFMICYmICFiYXNlOjpkZWJ1Zzo6QmVp bmdEZWJ1Z2dlZCgpKSB7CisgICAgIC8vIEluY2x1ZGUgYSBzdGFjayB0cmFjZSBvbiBhIGZhdGFs LCB1bmxlc3MgYSBkZWJ1Z2dlciBpcyBhdHRhY2hlZC4KKyAgICAgYmFzZTo6ZGVidWc6OlN0YWNr VHJhY2Ugc3RhY2tfdHJhY2U7CmRpZmYgLS1naXQgYS9zcmNwa2dzL2VsZWN0cm9uNy9maWxlcy9t dXNsLXBhdGNoZXMvY2hyb21pdW0tbXVzbF90Y3BfbGlzdGVuLnBhdGNoLnBhdGNoIGIvc3JjcGtn cy9lbGVjdHJvbjcvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2xfdGNwX2xpc3Rlbi5w YXRjaC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZmE2MjMx N2IxMWEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2VsZWN0cm9uNy9maWxlcy9tdXNsLXBh dGNoZXMvY2hyb21pdW0tbXVzbF90Y3BfbGlzdGVuLnBhdGNoLnBhdGNoCkBAIC0wLDAgKzEsMTQg QEAKK2RpZmYgLS1naXQgYS9jb250ZW50L3B1YmxpYy9jb21tb24vc29ja2V0X3Blcm1pc3Npb25f cmVxdWVzdC5oIGIvY29udGVudC9wdWJsaWMvY29tbW9uL3NvY2tldF9wZXJtaXNzaW9uX3JlcXVl c3QuaAoraW5kZXggNzMxNjYyMS4uNjE3MTIxOSAxMDA2NDQKKy0tLSBhL2NvbnRlbnQvcHVibGlj L2NvbW1vbi9zb2NrZXRfcGVybWlzc2lvbl9yZXF1ZXN0LmgKKysrKyBiL2NvbnRlbnQvcHVibGlj L2NvbW1vbi9zb2NrZXRfcGVybWlzc2lvbl9yZXF1ZXN0LmgKK0BAIC05LDYgKzksOSBAQAorIAor ICNpbmNsdWRlIDxzdHJpbmc+CisgCisrI2lmZGVmIFRDUF9MSVNURU4KKysjdW5kZWYgVENQX0xJ U1RFTgorKyNlbmRpZgorIAorIG5hbWVzcGFjZSBjb250ZW50IHsKKyAKZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MvZWxlY3Ryb243L2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsX3dvcmRzaXpl LnBhdGNoLnBhdGNoIGIvc3JjcGtncy9lbGVjdHJvbjcvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9t aXVtLW11c2xfd29yZHNpemUucGF0Y2gucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMDAuLjYyMDhjZmZhZmJlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9lbGVj dHJvbjcvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2xfd29yZHNpemUucGF0Y2gucGF0 Y2gKQEAgLTAsMCArMSwyNCBAQAorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2Jy ZWFrcGFkL3NyYy9jb21tb24vbGludXgvZWxmX2NvcmVfZHVtcC5oIGIvdGhpcmRfcGFydHkvYnJl YWtwYWQvYnJlYWtwYWQvc3JjL2NvbW1vbi9saW51eC9lbGZfY29yZV9kdW1wLmgKK2luZGV4IGQw M2M3YTguLjc4Y2E5ZGQgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3Bh ZC9zcmMvY29tbW9uL2xpbnV4L2VsZl9jb3JlX2R1bXAuaAorKysrIGIvdGhpcmRfcGFydHkvYnJl YWtwYWQvYnJlYWtwYWQvc3JjL2NvbW1vbi9saW51eC9lbGZfY29yZV9kdW1wLmgKK0BAIC0zNiw2 ICszNiw3IEBACisgI2luY2x1ZGUgPGVsZi5oPgorICNpbmNsdWRlIDxsaW5rLmg+CisgI2luY2x1 ZGUgPHN0ZGRlZi5oPgorKyNpbmNsdWRlIDxsaW1pdHMuaD4KKyAKKyAjaW5jbHVkZSAiY29tbW9u L21lbW9yeV9yYW5nZS5oIgorIAorQEAgLTUxLDkgKzUyLDkgQEAgY2xhc3MgRWxmQ29yZUR1bXAg eworICAgdHlwZWRlZiBFbGZXKFBoZHIpIFBoZHI7CisgICB0eXBlZGVmIEVsZlcoV29yZCkgV29y ZDsKKyAgIHR5cGVkZWYgRWxmVyhBZGRyKSBBZGRyOworLSNpZiBfX1dPUkRTSVpFID09IDMyCisr I2lmIFVMT05HX01BWCA9PSAweGZmZmZmZmZmCisgICBzdGF0aWMgY29uc3QgaW50IGtDbGFzcyA9 IEVMRkNMQVNTMzI7CistI2VsaWYgX19XT1JEU0laRSA9PSA2NAorKyNlbGlmIFVMT05HX01BWCA9 PSAweGZmZmZmZmZmZmZmZmZmZmYKKyAgIHN0YXRpYyBjb25zdCBpbnQga0NsYXNzID0gRUxGQ0xB U1M2NDsKKyAjZWxzZQorICNlcnJvciAiVW5zdXBwb3J0ZWQgX19XT1JEU0laRSBmb3IgRWxmQ29y ZUR1bXAuIgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9lbGVjdHJvbjcvZmlsZXMvcGF0Y2hlcy9jaHJv bWl1bS0wMDEtdXBzdHJlYW1fY2hyb21lX2NsZWFuZXIucGF0Y2gucGF0Y2ggYi9zcmNwa2dzL2Vs ZWN0cm9uNy9maWxlcy9wYXRjaGVzL2Nocm9taXVtLTAwMS11cHN0cmVhbV9jaHJvbWVfY2xlYW5l ci5wYXRjaC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNTdl OTQxODBjNTkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2VsZWN0cm9uNy9maWxlcy9wYXRj aGVzL2Nocm9taXVtLTAwMS11cHN0cmVhbV9jaHJvbWVfY2xlYW5lci5wYXRjaC5wYXRjaApAQCAt MCwwICsxLDczIEBACitGcm9tIGM3NTVlYzg0NzQ1OWQ5ZDM4MDdjMjJjMmQ0ZDZhYTZmOWM4NmRj N2MgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBKb2huIEJ1ZG9yaWNrIDxqYnVkb3Jp Y2tAY2hyb21pdW0ub3JnPgorRGF0ZTogVHVlLCAxOSBOb3YgMjAxOSAyMjoyNDoyMCArMDAwMAor U3ViamVjdDogW1BBVENIXSAzOTA0OiBjaHJvbWVfY2xlYW5lcjogZW5zdXJlIGludGVybmFsIHRh cmdldHMgYXJlIHJlYWNoYWJsZQorIGZyb20gOmduX2FsbC4KKworKGNoZXJyeSBwaWNrZWQgZnJv bSBjb21taXQgZWVlNTEzZGZjNzgwYWQ0YmNhYTc0YjY3ZjJlMGVhZWJmNTdiNWM5MykKKworQnVn OiA5ODQxNjIsIDEwMDQ4NDgKK0NoYW5nZS1JZDogSWJiN2M0N2YwMTg4ZGU4ZTA3N2NkMzBhYThk NjhjYTYxMTMzZDIwMzcKK1Jldmlld2VkLW9uOiBodHRwczovL2Nocm9taXVtLXJldmlldy5nb29n bGVzb3VyY2UuY29tL2MvY2hyb21pdW0vc3JjLysvMTkwNDU0OQorQ29tbWl0LVF1ZXVlOiBKb2hu IEJ1ZG9yaWNrIDxqYnVkb3JpY2tAY2hyb21pdW0ub3JnPgorUmV2aWV3ZWQtYnk6IEpvZSBNYXNv biA8am9lbm90Y2hhcmxlc0BjaHJvbWl1bS5vcmc+CitDci1PcmlnaW5hbC1Db21taXQtUG9zaXRp b246IHJlZnMvaGVhZHMvbWFzdGVyQHsjNzEzNjgzfQorUmV2aWV3ZWQtb246IGh0dHBzOi8vY2hy b21pdW0tcmV2aWV3Lmdvb2dsZXNvdXJjZS5jb20vYy9jaHJvbWl1bS9zcmMvKy8xOTIyMjk5CitD ci1Db21taXQtUG9zaXRpb246IHJlZnMvYnJhbmNoLWhlYWRzLzM5MDRAeyM4OTV9CitDci1CcmFu Y2hlZC1Gcm9tOiA2NzU5NjhhOGM2NTdhM2JkOWMxYzJjMjBjNWQyOTM1NTc3YmJjNWU2LXJlZnMv aGVhZHMvbWFzdGVyQHsjNjkzOTU0fQorLS0tCisgQlVJTEQuZ24gICAgICAgICAgICAgICAgICAg ICAgIHwgIDIgKy0KKyBjaHJvbWUvY2hyb21lX2NsZWFuZXIvQlVJTEQuZ24gfCAyMyArKysrKysr KysrKysrKysrKysrKy0tLQorIDIgZmlsZXMgY2hhbmdlZCwgMjEgaW5zZXJ0aW9ucygrKSwgNCBk ZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL0JVSUxELmduIGIvQlVJTEQuZ24KK2luZGV4IDVl MmY2YjliMGY0MWMuLmFjMDI5NzYwODU5NGYgMTAwNjQ0CistLS0gYS9CVUlMRC5nbgorKysrIGIv QlVJTEQuZ24KK0BAIC02MDQsNyArNjA0LDcgQEAgZ3JvdXAoImduX2FsbCIpIHsKKyAgIGlmIChp c193aW4pIHsKKyAgICAgZGVwcyArPSBbCisgICAgICAgIi8vYmFzZTpwZV9pbWFnZV90ZXN0IiwK Ky0gICAgICAiLy9jaHJvbWUvY2hyb21lX2NsZWFuZXI6Y2hyb21lX2NsZWFuZXJfdW5pdHRlc3Rz IiwKKysgICAgICAiLy9jaHJvbWUvY2hyb21lX2NsZWFuZXIiLAorICAgICAgICIvL2Nocm9tZS9j aHJvbWVfZWxmOmNocm9tZV9lbGZfdW5pdHRlc3RzIiwKKyAgICAgICAiLy9jaHJvbWUvY2hyb21l X2VsZjpkbGxfaGFzaF9tYWluIiwKKyAgICAgICAiLy9jaHJvbWUvZWxldmF0aW9uX3NlcnZpY2U6 ZWxldmF0aW9uX3NlcnZpY2VfdW5pdHRlc3RzIiwKK2RpZmYgLS1naXQgYS9jaHJvbWUvY2hyb21l X2NsZWFuZXIvQlVJTEQuZ24gYi9jaHJvbWUvY2hyb21lX2NsZWFuZXIvQlVJTEQuZ24KK2luZGV4 IGZiZDJkOGQ1MzA3YWEuLjE2NzFhM2Y3ZDA5N2MgMTAwNjQ0CistLS0gYS9jaHJvbWUvY2hyb21l X2NsZWFuZXIvQlVJTEQuZ24KKysrKyBiL2Nocm9tZS9jaHJvbWVfY2xlYW5lci9CVUlMRC5nbgor QEAgLTY0LDkgKzY0LDYgQEAgc3RhdGljX2xpYnJhcnkoIm90aGVyX2V4ZWN1dGFibGVfZGVmaW5p dGlvbnMiKSB7CisgfQorIAorIHRlc3QoImNocm9tZV9jbGVhbmVyX3VuaXR0ZXN0cyIpIHsKKy0g ICMgTWFrZSB0aGlzIHRhcmdldCBmaW5kYWJsZSBmcm9tIHRoZSAiYWxsIiB0YXJnZXQgdXNlZCBi eSB0aGUgYnVpbGRlcnMuCistICB2aXNpYmlsaXR5ICs9IFsgIi8vLjpnbl9hbGwiIF0KKy0KKyAg IHNvdXJjZXMgPSBbCisgICAgICIvL2Nocm9tZS9jaHJvbWVfY2xlYW5lci90ZXN0L3Rlc3RfbWFp bi5jYyIsCisgICBdCitAQCAtMTI2LDMgKzEyMywyMyBAQCB0ZXN0KCJjaHJvbWVfY2xlYW5lcl91 bml0dGVzdHMiKSB7CisgICAgIF0KKyAgIH0KKyB9CisrCisrZ3JvdXAoImNocm9tZV9jbGVhbmVy IikgeworKyAgdGVzdG9ubHkgPSB0cnVlCisrCisrICAjIE1ha2UgdGhpcyB0YXJnZXQgZmluZGFi bGUgZnJvbSB0aGUgImFsbCIgdGFyZ2V0IHVzZWQgYnkgdGhlIGJ1aWxkZXJzLgorKyAgdmlzaWJp bGl0eSArPSBbICIvLy46Z25fYWxsIiBdCisrCisrICBkZXBzID0gWworKyAgICAiOmNocm9tZV9j bGVhbmVyX3VuaXR0ZXN0cyIsCisrICAgICIvL2Nocm9tZS9jaHJvbWVfY2xlYW5lci9leGVjdXRh YmxlczpjaHJvbWVfY2xlYW51cF90b29sIiwKKysgICAgIi8vY2hyb21lL2Nocm9tZV9jbGVhbmVy L2V4ZWN1dGFibGVzOnNvZnR3YXJlX3JlcG9ydGVyX3Rvb2wiLAorKyAgXQorKworKyAgaWYgKGlz X2ludGVybmFsX2Nocm9tZV9jbGVhbmVyX2J1aWxkKSB7CisrICAgIGRlcHMgKz0gWworKyAgICAg ICIke2Nocm9tZV9jbGVhbmVyX2ludGVybmFsX3Jvb3R9OmJ1aWxkX3RhcmdldHMiLAorKyAgICAg ICIke2Nocm9tZV9jbGVhbmVyX2ludGVybmFsX3Jvb3R9OnRlc3RfdGFyZ2V0cyIsCisrICAgIF0K KysgIH0KKyt9CmRpZmYgLS1naXQgYS9zcmNwa2dzL2VsZWN0cm9uNy9maWxlcy9wYXRjaGVzL2No cm9taXVtLTAwMi11cHN0cmVhbV9zYXZlX2xvZ3NfZnJvbV90ZXN0X2NpbGRfcHJvY2Vzc2VzLnBh dGNoLnBhdGNoIGIvc3JjcGtncy9lbGVjdHJvbjcvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS0wMDIt dXBzdHJlYW1fc2F2ZV9sb2dzX2Zyb21fdGVzdF9jaWxkX3Byb2Nlc3Nlcy5wYXRjaC5wYXRjaApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNzRiOWZlYzU5YTcKLS0tIC9k ZXYvbnVsbAorKysgYi9zcmNwa2dzL2VsZWN0cm9uNy9maWxlcy9wYXRjaGVzL2Nocm9taXVtLTAw Mi11cHN0cmVhbV9zYXZlX2xvZ3NfZnJvbV90ZXN0X2NpbGRfcHJvY2Vzc2VzLnBhdGNoLnBhdGNo CkBAIC0wLDAgKzEsMzQyIEBACitGcm9tIGRhZWM2NjFmMjdiZGZhYjc5MTMyZDdkMmM0NjM3Y2Mx N2ZkNGFhMzUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBKb2UgTWFzb24gPGpvZW5v dGNoYXJsZXNAZ29vZ2xlLmNvbT4KK0RhdGU6IFdlZCwgNCBEZWMgMjAxOSAxODowNDoyMSArMDAw MAorU3ViamVjdDogW1BBVENIXSBTYXZlIGxvZ3MgZnJvbSB0ZXN0IGNoaWxkIHByb2Nlc3NlcyBi eSByZWRpcmVjdGluZyBzdGRvdXQgYW5kCisgc3RkZXJyLgorCitUaGUgcHJldmlvdXMgc29sdXRp b24gY2FuIG9ubHkgY2FwdHVyZSBsb2dzIGFmdGVyIHRoZSBjaGlsZCBwcm9jZXNzCitjcmVhdGVz IGEgU2NvcGVkTG9nZ2luZyBvYmplY3QuIFdlIHNlZSBmbGFreSBjcmFzaGVzIGluIHNhbmRib3gg Y3JlYXRpb24KK3RoYXQgaGFwcGVuIGJlZm9yZSB0aGF0IHNvIHRoaXMgd2lsbCBsZXQgdXMgc2Vl IHRoZSBjaGlsZCBwcm9jZXNzIHN0YWNrCit0cmFjZXMuCisKK0Fsc28gbW92ZXMgc29tZSBmdW5j dGlvbnMgdGhhdCB3ZXJlIGV4cG9ydGVkIGZyb20gaXBjX3Rlc3RfdXRpbC5oIHRvIGJlCitwcml2 YXRlIHRvIHByb3RvX2Nocm9tZV9wcm9tcHRfaXBjX3VuaXR0ZXN0LmNjLCB3aGljaCBpcyB0aGUg b25seSB0ZXN0Cit0aGF0IHN0aWxsIHVzZXMgdGhlbS4KKworKGNoZXJyeSBwaWNrZWQgZnJvbSBj b21taXQgZTdhNzU1NDIxMTM2ZDdmYzliM2E3M2E1ZTU0NjQzNjhmM2VmYTdmOSkKKworQnVnOiAx MDMwMzMzCitDaGFuZ2UtSWQ6IEllMzBlZWQzYjE2NjMxNzIxZTgxYTQyMGIzYjcwZjFlYzVmMGQ5 YTBjCitSZXZpZXdlZC1vbjogaHR0cHM6Ly9jaHJvbWl1bS1yZXZpZXcuZ29vZ2xlc291cmNlLmNv bS9jL2Nocm9taXVtL3NyYy8rLzE5NDg0ODMKK1Jldmlld2VkLWJ5OiBwcm9iZXJnZSA8cHJvYmVy Z2VAY2hyb21pdW0ub3JnPgorQ29tbWl0LVF1ZXVlOiBKb2UgTWFzb24gPGpvZW5vdGNoYXJsZXNA Y2hyb21pdW0ub3JnPgorQ3ItT3JpZ2luYWwtQ29tbWl0LVBvc2l0aW9uOiByZWZzL2hlYWRzL21h c3RlckB7IzcyMTA3MX0KK1Jldmlld2VkLW9uOiBodHRwczovL2Nocm9taXVtLXJldmlldy5nb29n bGVzb3VyY2UuY29tL2MvY2hyb21pdW0vc3JjLysvMTk1MTA4OQorUmV2aWV3ZWQtYnk6IEpvZSBN YXNvbiA8am9lbm90Y2hhcmxlc0BjaHJvbWl1bS5vcmc+CitDci1Db21taXQtUG9zaXRpb246IHJl ZnMvYnJhbmNoLWhlYWRzLzM5MDRAeyM5MTN9CitDci1CcmFuY2hlZC1Gcm9tOiA2NzU5NjhhOGM2 NTdhM2JkOWMxYzJjMjBjNWQyOTM1NTc3YmJjNWU2LXJlZnMvaGVhZHMvbWFzdGVyQHsjNjkzOTU0 fQorLS0tCisgY2hyb21lL2Nocm9tZV9jbGVhbmVyL2lwYy9pcGNfdGVzdF91dGlsLmNjICAgIHwg OTIgKysrKysrKysrKysrLS0tLS0tLQorIGNocm9tZS9jaHJvbWVfY2xlYW5lci9pcGMvaXBjX3Rl c3RfdXRpbC5oICAgICB8IDEzICsrLQorIC4uLi9pcGMvcHJvdG9fY2hyb21lX3Byb21wdF9pcGNf dW5pdHRlc3QuY2MgICB8IDE3ICsrLS0KKyBjaHJvbWUvY2hyb21lX2NsZWFuZXIvaXBjL3NhbmRi b3guY2MgICAgICAgICAgfCAgNSArLQorIDQgZmlsZXMgY2hhbmdlZCwgNzcgaW5zZXJ0aW9ucygr KSwgNTAgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9jaHJvbWUvY2hyb21lX2NsZWFuZXIv aXBjL2lwY190ZXN0X3V0aWwuY2MgYi9jaHJvbWUvY2hyb21lX2NsZWFuZXIvaXBjL2lwY190ZXN0 X3V0aWwuY2MKK2luZGV4IDA1ZmMwZDAyN2VjNDMuLjBkMDNhNjg3MGZiMDcgMTAwNjQ0CistLS0g YS9jaHJvbWUvY2hyb21lX2NsZWFuZXIvaXBjL2lwY190ZXN0X3V0aWwuY2MKKysrKyBiL2Nocm9t ZS9jaHJvbWVfY2xlYW5lci9pcGMvaXBjX3Rlc3RfdXRpbC5jYworQEAgLTEzLDYgKzEzLDcgQEAK KyAjaW5jbHVkZSAiYmFzZS9jb21tYW5kX2xpbmUuaCIKKyAjaW5jbHVkZSAiYmFzZS9maWxlcy9m aWxlX3BhdGguaCIKKyAjaW5jbHVkZSAiYmFzZS9maWxlcy9maWxlX3V0aWwuaCIKKysjaW5jbHVk ZSAiYmFzZS9maWxlcy9zY29wZWRfdGVtcF9kaXIuaCIKKyAjaW5jbHVkZSAiYmFzZS9sb2dnaW5n LmgiCisgI2luY2x1ZGUgImJhc2UvcHJvY2Vzcy9sYXVuY2guaCIKKyAjaW5jbHVkZSAiYmFzZS9y YW5kX3V0aWwuaCIKK0BAIC0yMyw3ICsyNCw2IEBACisgI2luY2x1ZGUgImJhc2UvdGVzdC90ZXN0 X3RpbWVvdXRzLmgiCisgI2luY2x1ZGUgImJhc2Uvd2luL3dpbl91dGlsLmgiCisgI2luY2x1ZGUg ImNocm9tZS9jaHJvbWVfY2xlYW5lci9pcGMvc2FuZGJveC5oIgorLSNpbmNsdWRlICJjaHJvbWUv Y2hyb21lX2NsZWFuZXIvbG9nZ2luZy9zY29wZWRfbG9nZ2luZy5oIgorICNpbmNsdWRlICJzYW5k Ym94L3dpbi9zcmMvc2FuZGJveF9mYWN0b3J5LmgiCisgCisgbmFtZXNwYWNlIGNocm9tZV9jbGVh bmVyIHsKK0BAIC0zMiwxMiArMzIsMTMgQEAgbmFtZXNwYWNlIHsKKyAKKyBjb25zdGV4cHIgY2hh ciBrTW9qb1BpcGVUb2tlblN3aXRjaFtdID0gIm1vam8tcGlwZS10b2tlbiI7CisgCistY29uc3Rl eHByIHdjaGFyX3Qga0lQQ1Rlc3RVdGlsTG9nU3VmZml4W10gPSBMImlwYy10ZXN0LXV0aWwiOwor LQorIGNsYXNzIE1vam9TYW5kYm94U2V0dXBIb29rcyA6IHB1YmxpYyBTYW5kYm94U2V0dXBIb29r cyB7CisgIHB1YmxpYzoKKy0gIGV4cGxpY2l0IE1vam9TYW5kYm94U2V0dXBIb29rcyhTYW5kYm94 ZWRQYXJlbnRQcm9jZXNzKiBwYXJlbnRfcHJvY2VzcykKKy0gICAgICA6IHBhcmVudF9wcm9jZXNz XyhwYXJlbnRfcHJvY2Vzcykge30KKysgIGV4cGxpY2l0IE1vam9TYW5kYm94U2V0dXBIb29rcygK KysgICAgICBTYW5kYm94ZWRQYXJlbnRQcm9jZXNzKiBwYXJlbnRfcHJvY2VzcywKKysgICAgICBi YXNlOjp3aW46OlNjb3BlZEhhbmRsZSBjaGlsZF9zdGRvdXRfd3JpdGVfaGFuZGxlKQorKyAgICAg IDogcGFyZW50X3Byb2Nlc3NfKHBhcmVudF9wcm9jZXNzKSwKKysgICAgICAgIGNoaWxkX3N0ZG91 dF93cml0ZV9oYW5kbGVfKHN0ZDo6bW92ZShjaGlsZF9zdGRvdXRfd3JpdGVfaGFuZGxlKSkge30K KyAgIH5Nb2pvU2FuZGJveFNldHVwSG9va3MoKSBvdmVycmlkZSA9IGRlZmF1bHQ7CisgCisgICAv LyBTYW5kYm94U2V0dXBIb29rcworQEAgLTQ5LDYgKzUwLDggQEAgY2xhc3MgTW9qb1NhbmRib3hT ZXR1cEhvb2tzIDogcHVibGljIFNhbmRib3hTZXR1cEhvb2tzIHsKKyAgICAgcGFyZW50X3Byb2Nl c3NfLT5DcmVhdGVNb2pvUGlwZShjb21tYW5kX2xpbmUsICZoYW5kbGVzX3RvX2luaGVyaXQpOwor ICAgICBmb3IgKEhBTkRMRSBoYW5kbGUgOiBoYW5kbGVzX3RvX2luaGVyaXQpCisgICAgICAgcG9s aWN5LT5BZGRIYW5kbGVUb1NoYXJlKGhhbmRsZSk7CisrICAgIHBvbGljeS0+U2V0U3Rkb3V0SGFu ZGxlKGNoaWxkX3N0ZG91dF93cml0ZV9oYW5kbGVfLkdldCgpKTsKKysgICAgcG9saWN5LT5TZXRT dGRlcnJIYW5kbGUoY2hpbGRfc3Rkb3V0X3dyaXRlX2hhbmRsZV8uR2V0KCkpOworICAgICByZXR1 cm4gUkVTVUxUX0NPREVfU1VDQ0VTUzsKKyAgIH0KKyAKK0BAIC02MSwzMyArNjQsMTQgQEAgY2xh c3MgTW9qb1NhbmRib3hTZXR1cEhvb2tzIDogcHVibGljIFNhbmRib3hTZXR1cEhvb2tzIHsKKyAK KyAgcHJpdmF0ZToKKyAgIFNhbmRib3hlZFBhcmVudFByb2Nlc3MqIHBhcmVudF9wcm9jZXNzXzsK KysgIGJhc2U6Ondpbjo6U2NvcGVkSGFuZGxlIGNoaWxkX3N0ZG91dF93cml0ZV9oYW5kbGVfOwor IH07CisgCisgfSAgLy8gbmFtZXNwYWNlCisgCisgbmFtZXNwYWNlIGludGVybmFsIHsKKyAKKy1i YXNlOjpGaWxlUGF0aDo6U3RyaW5nUGllY2VUeXBlIEdldExvZ1BhdGhTdWZmaXgoKSB7CistICBy ZXR1cm4ga0lQQ1Rlc3RVdGlsTG9nU3VmZml4OworLX0KKy0KKy1iYXNlOjpGaWxlUGF0aCBHZXRM b2dQYXRoKCkgeworLSAgcmV0dXJuIFNjb3BlZExvZ2dpbmc6OkdldExvZ0ZpbGVQYXRoKGtJUENU ZXN0VXRpbExvZ1N1ZmZpeCk7CistfQorLQorLWJvb2wgRGVsZXRlQ2hpbGRQcm9jZXNzTG9ncygp IHsKKy0gIC8vIERlbGV0ZSB0aGUgY2hpbGQgcHJvY2VzcyBsb2cgZmlsZSBpZiBleGlzdGluZy4K Ky0gIGNvbnN0IGJhc2U6OkZpbGVQYXRoIGxvZ19wYXRoID0gR2V0TG9nUGF0aCgpOworLSAgaWYg KCFiYXNlOjpEZWxldGVGaWxlKGxvZ19wYXRoLCBmYWxzZSkpIHsKKy0gICAgTE9HKEVSUk9SKSA8 PCAiQ2FuJ3QgZGVsZXRlIGxvZyBmaWxlIGZyb20gcHJldmlvdXMgcnVuOiAiCistICAgICAgICAg ICAgICAgPDwgbG9nX3BhdGgudmFsdWUoKTsKKy0gICAgcmV0dXJuIGZhbHNlOworLSAgfQorLSAg cmV0dXJuIHRydWU7CistfQorLQorLXZvaWQgUHJpbnRDaGlsZFByb2Nlc3NMb2dzKCkgeworLSAg Y29uc3QgYmFzZTo6RmlsZVBhdGggbG9nX3BhdGggPSBHZXRMb2dQYXRoKCk7Cisrdm9pZCBQcmlu dENoaWxkUHJvY2Vzc0xvZ3MoY29uc3QgYmFzZTo6RmlsZVBhdGgmIGxvZ19wYXRoKSB7CisgICBp ZiAobG9nX3BhdGguZW1wdHkoKSkgeworICAgICBMT0coRVJST1IpIDw8ICJDaGlsZCBwcm9jZXNz IGxvZyBwYXRoIGlzIGVtcHR5IjsKKyAgICAgcmV0dXJuOworQEAgLTE3NCwxMSArMTU4LDM4IEBA IGJvb2wgUGFyZW50UHJvY2Vzczo6TGF1bmNoQ29ubmVjdGVkQ2hpbGRQcm9jZXNzKAorICAgICBj b25zdCBzdGQ6OnN0cmluZyYgY2hpbGRfbWFpbl9mdW5jdGlvbiwKKyAgICAgYmFzZTo6VGltZURl bHRhIHRpbWVvdXQsCisgICAgIGludDMyX3QqIGV4aXRfY29kZSkgeworLSAgaWYgKCFpbnRlcm5h bDo6RGVsZXRlQ2hpbGRQcm9jZXNzTG9ncygpKQorKyAgLy8gQWRhcHRlZCBmcm9tCisrICAvLyBo dHRwczovL2NzLmNocm9taXVtLm9yZy9jaHJvbWl1bS9zcmMvc2FuZGJveC93aW4vc3JjL2hhbmRs ZV9pbmhlcml0YW5jZV90ZXN0LmNjCisrICBiYXNlOjpTY29wZWRUZW1wRGlyIHRlbXBfZGlyOwor KyAgaWYgKCF0ZW1wX2Rpci5DcmVhdGVVbmlxdWVUZW1wRGlyKCkpIHsKKysgICAgUExPRyhFUlJP UikgPDwgIkNvdWxkIG5vdCBjcmVhdGUgdGVtcCBkaXIgZm9yIGNoaWxkIHN0ZG91dCI7CisrICAg IHJldHVybiBmYWxzZTsKKysgIH0KKysKKysgIGJhc2U6OkZpbGVQYXRoIHRlbXBfZmlsZV9uYW1l OworKyAgaWYgKCFDcmVhdGVUZW1wb3JhcnlGaWxlSW5EaXIodGVtcF9kaXIuR2V0UGF0aCgpLCAm dGVtcF9maWxlX25hbWUpKSB7CisrICAgIFBMT0coRVJST1IpIDw8ICJDb3VsZCBub3QgY3JlYXRl IHRlbXAgZmlsZSBmb3IgY2hpbGQgc3Rkb3V0IjsKKysgICAgcmV0dXJuIGZhbHNlOworKyAgfQor KworKyAgU0VDVVJJVFlfQVRUUklCVVRFUyBhdHRycyA9IHt9OworKyAgYXR0cnMubkxlbmd0aCA9 IHNpemVvZihhdHRycyk7CisrICBhdHRycy5iSW5oZXJpdEhhbmRsZSA9IHRydWU7CisrCisrICBi YXNlOjp3aW46OlNjb3BlZEhhbmRsZSBjaGlsZF9zdGRvdXRfd3JpdGVfaGFuZGxlKAorKyAgICAg IDo6Q3JlYXRlRmlsZSh0ZW1wX2ZpbGVfbmFtZS52YWx1ZSgpLmNfc3RyKCksIEdFTkVSSUNfV1JJ VEUsCisrICAgICAgICAgICAgICAgICAgIEZJTEVfU0hBUkVfV1JJVEUgfCBGSUxFX1NIQVJFX1JF QUQgfCBGSUxFX1NIQVJFX0RFTEVURSwKKysgICAgICAgICAgICAgICAgICAgJmF0dHJzLCBPUEVO X0VYSVNUSU5HLCAwLCBudWxscHRyKSk7CisrICBpZiAoIWNoaWxkX3N0ZG91dF93cml0ZV9oYW5k bGUuSXNWYWxpZCgpKSB7CisrICAgIFBMT0coRVJST1IpIDw8ICJDb3VsZCBub3Qgb3BlbiBjaGls ZCBzdGRvdXQgZmlsZSI7CisgICAgIHJldHVybiBmYWxzZTsKKysgIH0KKyAKKy0gIGlmICghUHJl cGFyZUFuZExhdW5jaFRlc3RDaGlsZFByb2Nlc3MoY2hpbGRfbWFpbl9mdW5jdGlvbikpCisrICBp ZiAoIVByZXBhcmVBbmRMYXVuY2hUZXN0Q2hpbGRQcm9jZXNzKGNoaWxkX21haW5fZnVuY3Rpb24s CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6bW92ZShjaGls ZF9zdGRvdXRfd3JpdGVfaGFuZGxlKSkpIHsKKysgICAgaW50ZXJuYWw6OlByaW50Q2hpbGRQcm9j ZXNzTG9ncyh0ZW1wX2ZpbGVfbmFtZSk7CisgICAgIHJldHVybiBmYWxzZTsKKysgIH0KKyAKKyAg IENyZWF0ZUltcGxPbklQQ1RocmVhZChzdGQ6Om1vdmUobW9qb19waXBlXykpOworICAgY29uc3Qg Ym9vbCBzdWNjZXNzID0gYmFzZTo6V2FpdEZvck11bHRpcHJvY2Vzc1Rlc3RDaGlsZEV4aXQoCitA QCAtMTg5LDIxICsyMDAsMzIgQEAgYm9vbCBQYXJlbnRQcm9jZXNzOjpMYXVuY2hDb25uZWN0ZWRD aGlsZFByb2Nlc3MoCisgICB9CisgICBEZXN0cm95SW1wbE9uSVBDVGhyZWFkKCk7CisgCistICBp ZiAoIXN1Y2Nlc3MgfHwgKmV4aXRfY29kZSAhPSAwKQorLSAgICBpbnRlcm5hbDo6UHJpbnRDaGls ZFByb2Nlc3NMb2dzKCk7CisrICBpZiAoIXN1Y2Nlc3MgfHwgKmV4aXRfY29kZSAhPSAwKSB7Cisr ICAgIGludGVybmFsOjpQcmludENoaWxkUHJvY2Vzc0xvZ3ModGVtcF9maWxlX25hbWUpOworKyAg fQorIAorICAgcmV0dXJuIHN1Y2Nlc3M7CisgfQorIAorIGJvb2wgUGFyZW50UHJvY2Vzczo6UHJl cGFyZUFuZExhdW5jaFRlc3RDaGlsZFByb2Nlc3MoCistICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBj aGlsZF9tYWluX2Z1bmN0aW9uKSB7CisrICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBjaGlsZF9tYWlu X2Z1bmN0aW9uLAorKyAgICBiYXNlOjp3aW46OlNjb3BlZEhhbmRsZSBjaGlsZF9zdGRvdXRfd3Jp dGVfaGFuZGxlKSB7CisgICBiYXNlOjpMYXVuY2hPcHRpb25zIGxhdW5jaF9vcHRpb25zOworICAg bGF1bmNoX29wdGlvbnMuaGFuZGxlc190b19pbmhlcml0ID0gZXh0cmFfaGFuZGxlc190b19pbmhl cml0XzsKKysgIGxhdW5jaF9vcHRpb25zLmhhbmRsZXNfdG9faW5oZXJpdC5wdXNoX2JhY2soY2hp bGRfc3Rkb3V0X3dyaXRlX2hhbmRsZS5HZXQoKSk7CisrICBsYXVuY2hfb3B0aW9ucy5zdGRpbl9o YW5kbGUgPSBJTlZBTElEX0hBTkRMRV9WQUxVRTsKKysgIGxhdW5jaF9vcHRpb25zLnN0ZG91dF9o YW5kbGUgPSBjaGlsZF9zdGRvdXRfd3JpdGVfaGFuZGxlLkdldCgpOworKyAgbGF1bmNoX29wdGlv bnMuc3RkZXJyX2hhbmRsZSA9IGNoaWxkX3N0ZG91dF93cml0ZV9oYW5kbGUuR2V0KCk7CisrCisg ICBDcmVhdGVNb2pvUGlwZSgmY29tbWFuZF9saW5lXywgJmxhdW5jaF9vcHRpb25zLmhhbmRsZXNf dG9faW5oZXJpdCk7CisgCisgICBiYXNlOjpQcm9jZXNzIGNoaWxkX3Byb2Nlc3MgPSBiYXNlOjpT cGF3bk11bHRpUHJvY2Vzc1Rlc3RDaGlsZCgKKyAgICAgICBjaGlsZF9tYWluX2Z1bmN0aW9uLCBj b21tYW5kX2xpbmVfLCBsYXVuY2hfb3B0aW9ucyk7CisgCisrICAvLyBOb3cgdGhhdCBpdCdzIGJl ZW4gcGFzc2VkIHRvIHRoZSBjaGlsZCBwcm9jZXNzLAorKyAgLy8gfGNoaWxkX3N0ZG91dF93cml0 ZV9oYW5kbGV8IGNhbiBiZSBjbG9zZWQgaW4gdGhpcyBwcm9jZXNzIGFzIGl0IGdvZXMgb3V0Cisr ICAvLyBvZiBzY29wZS4KKysKKyAgIENvbm5lY3RNb2pvUGlwZShzdGQ6Om1vdmUoY2hpbGRfcHJv Y2VzcykpOworICAgcmV0dXJuIHRydWU7CisgfQorQEAgLTIzNSw4ICsyNTcsOSBAQCBTYW5kYm94 ZWRQYXJlbnRQcm9jZXNzOjpTYW5kYm94ZWRQYXJlbnRQcm9jZXNzKAorIFNhbmRib3hlZFBhcmVu dFByb2Nlc3M6On5TYW5kYm94ZWRQYXJlbnRQcm9jZXNzKCkge30KKyAKKyBib29sIFNhbmRib3hl ZFBhcmVudFByb2Nlc3M6OlByZXBhcmVBbmRMYXVuY2hUZXN0Q2hpbGRQcm9jZXNzKAorLSAgICBj b25zdCBzdGQ6OnN0cmluZyYgY2hpbGRfbWFpbl9mdW5jdGlvbikgeworLSAgTW9qb1NhbmRib3hT ZXR1cEhvb2tzIGhvb2tzKHRoaXMpOworKyAgICBjb25zdCBzdGQ6OnN0cmluZyYgY2hpbGRfbWFp bl9mdW5jdGlvbiwKKysgICAgYmFzZTo6d2luOjpTY29wZWRIYW5kbGUgY2hpbGRfc3Rkb3V0X3dy aXRlX2hhbmRsZSkgeworKyAgTW9qb1NhbmRib3hTZXR1cEhvb2tzIGhvb2tzKHRoaXMsIHN0ZDo6 bW92ZShjaGlsZF9zdGRvdXRfd3JpdGVfaGFuZGxlKSk7CisgCisgICAvLyBUaGlzIHN3aXRjaCB1 c2FnZSBpcyBjb3BpZWQgZnJvbSBTcGF3bk11bHRpUHJvY2Vzc1Rlc3RDaGlsZC4KKyAgIC8vCitA QCAtMjU4LDggKzI4MSw3IEBAIGJvb2wgU2FuZGJveGVkUGFyZW50UHJvY2Vzczo6UHJlcGFyZUFu ZExhdW5jaFRlc3RDaGlsZFByb2Nlc3MoCisgCisgQ2hpbGRQcm9jZXNzOjpDaGlsZFByb2Nlc3Mo c2NvcGVkX3JlZnB0cjxNb2pvVGFza1J1bm5lcj4gbW9qb190YXNrX3J1bm5lcikKKyAgICAgOiBt b2pvX3Rhc2tfcnVubmVyXyhtb2pvX3Rhc2tfcnVubmVyKSwKKy0gICAgICBjb21tYW5kX2xpbmVf KGJhc2U6OkNvbW1hbmRMaW5lOjpGb3JDdXJyZW50UHJvY2VzcygpKSwKKy0gICAgICBzY29wcGVk X2xvZ2dpbmdfKG5ldyBTY29wZWRMb2dnaW5nKGtJUENUZXN0VXRpbExvZ1N1ZmZpeCkpIHsKKysg ICAgICBjb21tYW5kX2xpbmVfKGJhc2U6OkNvbW1hbmRMaW5lOjpGb3JDdXJyZW50UHJvY2Vzcygp KSB7CisgICBzYW5kYm94OjpUYXJnZXRTZXJ2aWNlcyogdGFyZ2V0X3NlcnZpY2VzID0KKyAgICAg ICBzYW5kYm94OjpTYW5kYm94RmFjdG9yeTo6R2V0VGFyZ2V0U2VydmljZXMoKTsKKyAgIGlmICgh dGFyZ2V0X3NlcnZpY2VzKQorZGlmZiAtLWdpdCBhL2Nocm9tZS9jaHJvbWVfY2xlYW5lci9pcGMv aXBjX3Rlc3RfdXRpbC5oIGIvY2hyb21lL2Nocm9tZV9jbGVhbmVyL2lwYy9pcGNfdGVzdF91dGls LmgKK2luZGV4IDk3ZjIwNzJhMDkxNjUuLjFiMmU1NTk4ZWQ1MmEgMTAwNjQ0CistLS0gYS9jaHJv bWUvY2hyb21lX2NsZWFuZXIvaXBjL2lwY190ZXN0X3V0aWwuaAorKysrIGIvY2hyb21lL2Nocm9t ZV9jbGVhbmVyL2lwYy9pcGNfdGVzdF91dGlsLmgKK0BAIC0xNCw5ICsxNCw5IEBACisgI2luY2x1 ZGUgImJhc2UvcHJvY2Vzcy9sYXVuY2guaCIKKyAjaW5jbHVkZSAiYmFzZS9wcm9jZXNzL3Byb2Nl c3MuaCIKKyAjaW5jbHVkZSAiYmFzZS90aW1lL3RpbWUuaCIKKysjaW5jbHVkZSAiYmFzZS93aW4v c2NvcGVkX2hhbmRsZS5oIgorICNpbmNsdWRlICJjaHJvbWUvY2hyb21lX2NsZWFuZXIvaXBjL2No cm9tZV9wcm9tcHRfaXBjLmgiCisgI2luY2x1ZGUgImNocm9tZS9jaHJvbWVfY2xlYW5lci9pcGMv bW9qb190YXNrX3J1bm5lci5oIgorLSNpbmNsdWRlICJjaHJvbWUvY2hyb21lX2NsZWFuZXIvbG9n Z2luZy9zY29wZWRfbG9nZ2luZy5oIgorICNpbmNsdWRlICJtb2pvL3B1YmxpYy9jcHAvcGxhdGZv cm0vcGxhdGZvcm1fY2hhbm5lbC5oIgorICNpbmNsdWRlICJtb2pvL3B1YmxpYy9jcHAvc3lzdGVt L2ludml0YXRpb24uaCIKKyAjaW5jbHVkZSAibW9qby9wdWJsaWMvY3BwL3N5c3RlbS9tZXNzYWdl X3BpcGUuaCIKK0BAIC03MCw3ICs3MCw4IEBAIGNsYXNzIFBhcmVudFByb2Nlc3MgOiBwdWJsaWMg YmFzZTo6UmVmQ291bnRlZFRocmVhZFNhZmU8UGFyZW50UHJvY2Vzcz4geworICAgLy8gYXMgaW4g dGhlIHNhbmRib3guIFN1YmNsYXNzZXMgc2hvdWxkIGNhbGwgQ3JlYXRlTW9qb1BpcGUgYmVmb3Jl IHRoZQorICAgLy8gc3VicHJvY2VzcyBpcyBzcGF3bmVkIGFuZCBDb25uZWN0TW9qb1BpcGUgYWZ0 ZXJ3YXJkLgorICAgdmlydHVhbCBib29sIFByZXBhcmVBbmRMYXVuY2hUZXN0Q2hpbGRQcm9jZXNz KAorLSAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBjaGlsZF9tYWluX2Z1bmN0aW9uKTsKKysgICAg ICBjb25zdCBzdGQ6OnN0cmluZyYgY2hpbGRfbWFpbl9mdW5jdGlvbiwKKysgICAgICBiYXNlOjp3 aW46OlNjb3BlZEhhbmRsZSBjaGlsZF9zdGRvdXRfd3JpdGVfaGFuZGxlKTsKKyAKKyAgIHNjb3Bl ZF9yZWZwdHI8TW9qb1Rhc2tSdW5uZXI+IG1vam9fdGFza19ydW5uZXIoKTsKKyAKK0BAIC05NSw3 ICs5Niw4IEBAIGNsYXNzIFNhbmRib3hlZFBhcmVudFByb2Nlc3MgOiBwdWJsaWMgUGFyZW50UHJv Y2VzcyB7CisgICB+U2FuZGJveGVkUGFyZW50UHJvY2VzcygpIG92ZXJyaWRlOworIAorICAgYm9v bCBQcmVwYXJlQW5kTGF1bmNoVGVzdENoaWxkUHJvY2VzcygKKy0gICAgICBjb25zdCBzdGQ6OnN0 cmluZyYgY2hpbGRfbWFpbl9mdW5jdGlvbikgb3ZlcnJpZGU7CisrICAgICAgY29uc3Qgc3RkOjpz dHJpbmcmIGNoaWxkX21haW5fZnVuY3Rpb24sCisrICAgICAgYmFzZTo6d2luOjpTY29wZWRIYW5k bGUgY2hpbGRfc3Rkb3V0X3dyaXRlX2hhbmRsZSkgb3ZlcnJpZGU7CisgfTsKKyAKKyBjbGFzcyBD aGlsZFByb2Nlc3MgOiBwdWJsaWMgYmFzZTo6UmVmQ291bnRlZFRocmVhZFNhZmU8Q2hpbGRQcm9j ZXNzPiB7CitAQCAtMTIwLDcgKzEyMiw2IEBAIGNsYXNzIENoaWxkUHJvY2VzcyA6IHB1YmxpYyBi YXNlOjpSZWZDb3VudGVkVGhyZWFkU2FmZTxDaGlsZFByb2Nlc3M+IHsKKyAKKyAgcHJpdmF0ZToK KyAgIGJhc2U6OkNvbW1hbmRMaW5lKiBjb21tYW5kX2xpbmVfOworLSAgc3RkOjp1bmlxdWVfcHRy PFNjb3BlZExvZ2dpbmc+IHNjb3BwZWRfbG9nZ2luZ187CisgCisgICAvLyBUaGlzIHdpbGwgYmUg dHJ1ZSBpZmYgdGhlIHByb2Nlc3MgaXMgcnVubmluZyBpbiBhIHNhbmRib3ggYW5kCisgICAvLyBU YXJnZXRTZXJ2aWNlcyB3YXMgaW5pdGlhbGl6ZWQgc3VjY2Vzc2Z1bGx5LgorQEAgLTE0Myw5ICsx NDQsNyBAQCBjbGFzcyBDaHJvbWVQcm9tcHRJUENUZXN0RXJyb3JIYW5kbGVyIDogcHVibGljIENo cm9tZVByb21wdElQQzo6RXJyb3JIYW5kbGVyIHsKKyB9OworIAorIG5hbWVzcGFjZSBpbnRlcm5h bCB7CistYmFzZTo6RmlsZVBhdGg6OlN0cmluZ1BpZWNlVHlwZSBHZXRMb2dQYXRoU3VmZml4KCk7 CistYm9vbCBEZWxldGVDaGlsZFByb2Nlc3NMb2dzKCk7Cistdm9pZCBQcmludENoaWxkUHJvY2Vz c0xvZ3MoKTsKKyt2b2lkIFByaW50Q2hpbGRQcm9jZXNzTG9ncyhjb25zdCBiYXNlOjpGaWxlUGF0 aCYgbG9nX2ZpbGUpOworIH0gIC8vIG5hbWVzcGFjZSBpbnRlcm5hbAorIAorIH0gIC8vIG5hbWVz cGFjZSBjaHJvbWVfY2xlYW5lcgorZGlmZiAtLWdpdCBhL2Nocm9tZS9jaHJvbWVfY2xlYW5lci9p cGMvcHJvdG9fY2hyb21lX3Byb21wdF9pcGNfdW5pdHRlc3QuY2MgYi9jaHJvbWUvY2hyb21lX2Ns ZWFuZXIvaXBjL3Byb3RvX2Nocm9tZV9wcm9tcHRfaXBjX3VuaXR0ZXN0LmNjCitpbmRleCAxYzdi NGM1NzVlYjNkLi5mODY3ZGY1OGY5NmVhIDEwMDY0NAorLS0tIGEvY2hyb21lL2Nocm9tZV9jbGVh bmVyL2lwYy9wcm90b19jaHJvbWVfcHJvbXB0X2lwY191bml0dGVzdC5jYworKysrIGIvY2hyb21l L2Nocm9tZV9jbGVhbmVyL2lwYy9wcm90b19jaHJvbWVfcHJvbXB0X2lwY191bml0dGVzdC5jYwor QEAgLTUsNiArNSw3IEBACisgI2luY2x1ZGUgPHdpbmRvd3MuaD4KKyAKKyAjaW5jbHVkZSAiYmFz ZS9jb21tYW5kX2xpbmUuaCIKKysjaW5jbHVkZSAiYmFzZS9maWxlcy9maWxlX3V0aWwuaCIKKyAj aW5jbHVkZSAiYmFzZS9wcm9jZXNzL3Byb2Nlc3MuaCIKKyAjaW5jbHVkZSAiYmFzZS9zdHJpbmdz L3N0cmNhdC5oIgorICNpbmNsdWRlICJiYXNlL3N0cmluZ3Mvc3RyaW5nX251bWJlcl9jb252ZXJz aW9ucy5oIgorQEAgLTQxLDggKzQyLDkgQEAgY29uc3RleHByIGNoYXIga0V4cGVjdGVkUHJvbXB0 UmVzdWx0U3dpdGNoW10gPSAiZXhwZWN0ZWQtcHJvbXB0LXJlc3VsdCI7CisgY29uc3RleHByIGNo YXIga0V4cGVjdGVkQ2hyb21lRGlzY29ubmVjdFBvaW50U3dpdGNoW10gPQorICAgICAiZXhwZWN0 ZWQtcGFyZW50LWRpc2Nvbm5lY3RlZCI7CisgCistY29uc3QgYmFzZTo6Y2hhcjE2IGtJbnZhbGlk VVRGMTZTdHJpbmdbXSA9IHsweERDMDAsIDB4RDgwMCwgMHhEODAwLCAweERGRkYsCistICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweERGRkYsIDB4REJGRiwgMH07 CisrY29uc3RleHByIGJhc2U6OmNoYXIxNiBrTG9nU3VmZml4W10gPSBMInByb21wdC1pcGMtdGVz dCI7CisrY29uc3RleHByIGJhc2U6OmNoYXIxNiBrSW52YWxpZFVURjE2U3RyaW5nW10gPSB7MHhE QzAwLCAweEQ4MDAsIDB4RDgwMCwgMHhERkZGLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDB4REZGRiwgMHhEQkZGLCAwfTsKKyBjb25zdCBiYXNlOjpG aWxlUGF0aCBrSW52YWxpZEZpbGVQYXRoKGtJbnZhbGlkVVRGMTZTdHJpbmcpOworIGNvbnN0IGJh c2U6OkZpbGVQYXRoIGtOb25BU0NJSUZpbGVQYXRoKEwiw6nDqcOgw6DDp8OnIik7CisgY29uc3Qg YmFzZTo6c3RyaW5nMTYga0ludmFsaWRSZWdpc3RyeUtleShrSW52YWxpZFVURjE2U3RyaW5nKTsK K0BAIC00MjAsOCArNDIyLDcgQEAgY2xhc3MgTW9ja0Nocm9tZSB7CisgY2xhc3MgQ2hpbGRQcm9j ZXNzIHsKKyAgcHVibGljOgorICAgQ2hpbGRQcm9jZXNzKCkKKy0gICAgICA6IHNjb3BwZWRfbG9n Z2luZ18oCistICAgICAgICAgICAgc3RkOjptYWtlX3VuaXF1ZTxTY29wZWRMb2dnaW5nPihpbnRl cm5hbDo6R2V0TG9nUGF0aFN1ZmZpeCgpKSkgeworKyAgICAgIDogc2NvcHBlZF9sb2dnaW5nXyhz dGQ6Om1ha2VfdW5pcXVlPFNjb3BlZExvZ2dpbmc+KGtMb2dTdWZmaXgpKSB7CisgICAgIG1vY2tf Y2hyb21lXyA9IHN0ZDo6bWFrZV91bmlxdWU8TW9ja0Nocm9tZT4oCisgICAgICAgICBFeHRyYWN0 SGFuZGxlRnJvbUNvbW1hbmRMaW5lKGNocm9tZV9jbGVhbmVyOjprQ2hyb21lUmVhZEhhbmRsZVN3 aXRjaCksCisgICAgICAgICBFeHRyYWN0SGFuZGxlRnJvbUNvbW1hbmRMaW5lKGNocm9tZV9jbGVh bmVyOjprQ2hyb21lV3JpdGVIYW5kbGVTd2l0Y2gpKTsKK0BAIC02MzAsNyArNjMxLDEwIEBAIGNs YXNzIFBhcmVudFByb2Nlc3MgeworICAgfQorIAorICAgdm9pZCBSdW4oKSB7CistICAgIEFTU0VS VF9UUlVFKGludGVybmFsOjpEZWxldGVDaGlsZFByb2Nlc3NMb2dzKCkpOworKyAgICAvLyBEZWxl dGUgdGhlIGNoaWxkIHByb2Nlc3MgbG9nIGZpbGUgaWYgZXhpc3RpbmcuCisrICAgIGNvbnN0IGJh c2U6OkZpbGVQYXRoIGxvZ19wYXRoID0gU2NvcGVkTG9nZ2luZzo6R2V0TG9nRmlsZVBhdGgoa0xv Z1N1ZmZpeCk7CisrICAgIEFTU0VSVF9UUlVFKGJhc2U6OkRlbGV0ZUZpbGUobG9nX3BhdGgsIGZh bHNlKSkKKysgICAgICAgIDw8ICJDYW4ndCBkZWxldGUgbG9nIGZpbGUgZnJvbSBwcmV2aW91cyBy dW46ICIgPDwgbG9nX3BhdGgudmFsdWUoKTsKKyAKKyAgICAgLy8gUGFzcyB0aGUgY29tbWFuZCB0 byB0aGUgY2hpbGQgcHJvY2VzcyBhbmQgbGF1bmNoIHRoZSBjaGlsZCBwcm9jZXNzLgorICAgICBi YXNlOjpQcm9jZXNzIGNoaWxkX3Byb2Nlc3MgPSBiYXNlOjpTcGF3bk11bHRpUHJvY2Vzc1Rlc3RD aGlsZCgKK0BAIC03MDIsNyArNzA2LDggQEAgY2xhc3MgUGFyZW50UHJvY2VzcyB7CisgICAgIEVY UEVDVF9FUShleHBlY3RlZF9leGl0X2NvZGUsIHJ2KTsKKyAKKyAgICAgaWYgKCFzdWNjZXNzIHx8 IHJ2ICE9IDApIHsKKy0gICAgICBpbnRlcm5hbDo6UHJpbnRDaGlsZFByb2Nlc3NMb2dzKCk7Cisr ICAgICAgaW50ZXJuYWw6OlByaW50Q2hpbGRQcm9jZXNzTG9ncygKKysgICAgICAgICAgU2NvcGVk TG9nZ2luZzo6R2V0TG9nRmlsZVBhdGgoa0xvZ1N1ZmZpeCkpOworICAgICB9CisgICB9CisgCitk aWZmIC0tZ2l0IGEvY2hyb21lL2Nocm9tZV9jbGVhbmVyL2lwYy9zYW5kYm94LmNjIGIvY2hyb21l L2Nocm9tZV9jbGVhbmVyL2lwYy9zYW5kYm94LmNjCitpbmRleCAxNTRiZDA1YzUxMDY2Li5mYWZh ZDRmMGM2MTg4IDEwMDY0NAorLS0tIGEvY2hyb21lL2Nocm9tZV9jbGVhbmVyL2lwYy9zYW5kYm94 LmNjCisrKysgYi9jaHJvbWUvY2hyb21lX2NsZWFuZXIvaXBjL3NhbmRib3guY2MKK0BAIC0yODAs OCArMjgwLDkgQEAgUmVzdWx0Q29kZSBTdGFydFNhbmRib3hUYXJnZXQoY29uc3QgYmFzZTo6Q29t bWFuZExpbmUmIHNhbmRib3hfY29tbWFuZF9saW5lLAorICAgICAgICZsYXN0X3dpbl9lcnJvciwg JnRlbXBfcHJvY2Vzc19pbmZvKTsKKyAgIGlmIChzYW5kYm94X3Jlc3VsdCAhPSBzYW5kYm94OjpT Qk9YX0FMTF9PSykgeworICAgICBMT0coREZBVEFMKSA8PCAiRmFpbGVkIHRvIHNwYXduIHNhbmRi b3ggdGFyZ2V0OiAiIDw8IHNhbmRib3hfcmVzdWx0CistICAgICAgICAgICAgICAgIDw8ICIgLCBs YXN0IHNhbmRib3ggd2FybmluZyA6ICIgPDwgbGFzdF9zYm94X3dhcm5pbmcKKy0gICAgICAgICAg ICAgICAgPDwgIiAsIGxhc3Qgd2luZG93cyBlcnJvcjogIiA8PCBsYXN0X3dpbl9lcnJvcjsKKysg ICAgICAgICAgICAgICAgPDwgIiwgbGFzdCBzYW5kYm94IHdhcm5pbmc6ICIgPDwgbGFzdF9zYm94 X3dhcm5pbmcKKysgICAgICAgICAgICAgICAgPDwgIiwgbGFzdCB3aW5kb3dzIGVycm9yOiAiCisr ICAgICAgICAgICAgICAgIDw8IGxvZ2dpbmc6OlN5c3RlbUVycm9yQ29kZVRvU3RyaW5nKGxhc3Rf d2luX2Vycm9yKTsKKyAgICAgcmV0dXJuIFJFU1VMVF9DT0RFX0ZBSUxFRF9UT19TVEFSVF9TQU5E Qk9YX1BST0NFU1M7CisgICB9CisgCmRpZmYgLS1naXQgYS9zcmNwa2dzL2VsZWN0cm9uNy9maWxl cy9wYXRjaGVzL2Nocm9taXVtLTAwMy11cHN0cmVhbV9tb3ZlX2NoaWxkX3Byb2Nlc3NfbG9nLnBh dGNoLnBhdGNoIGIvc3JjcGtncy9lbGVjdHJvbjcvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS0wMDMt dXBzdHJlYW1fbW92ZV9jaGlsZF9wcm9jZXNzX2xvZy5wYXRjaC5wYXRjaApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNTE4Yjk1NWEwYjAKLS0tIC9kZXYvbnVsbAorKysg Yi9zcmNwa2dzL2VsZWN0cm9uNy9maWxlcy9wYXRjaGVzL2Nocm9taXVtLTAwMy11cHN0cmVhbV9t b3ZlX2NoaWxkX3Byb2Nlc3NfbG9nLnBhdGNoLnBhdGNoCkBAIC0wLDAgKzEsNzMwIEBACitGcm9t IDcyNmNiZmNmYWE1MjFlOWU1MDk4ODI5MTk1YTdkOWE5YzE5Y2EzOTEgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCitGcm9tOiBKb2UgTWFzb24gPGpvZW5vdGNoYXJsZXNAZ29vZ2xlLmNvbT4KK0Rh dGU6IFdlZCwgNCBEZWMgMjAxOSAxODoxNTozNiArMDAwMAorU3ViamVjdDogW1BBVENIXSBNb3Zl IGNoaWxkIHByb2Nlc3MgbG9nIGNhcHR1cmUgdG8gYSBDaGlsZFByb2Nlc3NMb2dnZXIgY2xhc3Mu CitNSU1FLVZlcnNpb246IDEuMAorQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVU Ri04CitDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CisKK1VwZGF0ZSBjb21tZW50cyB0 byBjbGFyaWZ5IGhvdyB0aGUgY2hpbGQgcHJvY2VzcyBsb2cgaW50ZXJhY3RzIHdpdGgKK1Njb3Bl ZExvZ2dpbmcuCisKK1VzZSB0aGUgbmV3IGNsYXNzIHRvIGNhcHR1cmUgbG9ncyBpbiBjbGVhbmVy X3Rlc3QuY2MsCitzZWN1cmVfZGxsX2xvYWRpbmdfdGVzdC5jYyBhbmQgcHJvdG9fY2hyb21lX3By b21wdF9pcGNfdW5pdHRlc3QuY2MuCisKK1I94oCLcHJvYmVyZ2UKKworKGNoZXJyeSBwaWNrZWQg ZnJvbSBjb21taXQgMDYzNjAwMjI5ZmI3ZGM0NzJmZjY2ODM5YmEyNjU3YmY5OWI5ODg1MCkKKwor QnVnOiAxMDMwMzMzCitDaGFuZ2UtSWQ6IEk4OGY1MzhmZjM2MGJiOGVkOWRhNjc0M2RjNWQ2YzRi MjYzYWY5OTJjCitSZXZpZXdlZC1vbjogaHR0cHM6Ly9jaHJvbWl1bS1yZXZpZXcuZ29vZ2xlc291 cmNlLmNvbS9jL2Nocm9taXVtL3NyYy8rLzE5NDc5ODYKK0NvbW1pdC1RdWV1ZTogSm9lIE1hc29u IDxqb2Vub3RjaGFybGVzQGNocm9taXVtLm9yZz4KK1Jldmlld2VkLWJ5OiBwcm9iZXJnZSA8cHJv YmVyZ2VAY2hyb21pdW0ub3JnPgorQ3ItT3JpZ2luYWwtQ29tbWl0LVBvc2l0aW9uOiByZWZzL2hl YWRzL21hc3RlckB7IzcyMTE4NH0KK1Jldmlld2VkLW9uOiBodHRwczovL2Nocm9taXVtLXJldmll dy5nb29nbGVzb3VyY2UuY29tL2MvY2hyb21pdW0vc3JjLysvMTk0OTYzMQorUmV2aWV3ZWQtYnk6 IEpvZSBNYXNvbiA8am9lbm90Y2hhcmxlc0BjaHJvbWl1bS5vcmc+CitDci1Db21taXQtUG9zaXRp b246IHJlZnMvYnJhbmNoLWhlYWRzLzM5MDRAeyM5MTR9CitDci1CcmFuY2hlZC1Gcm9tOiA2NzU5 NjhhOGM2NTdhM2JkOWMxYzJjMjBjNWQyOTM1NTc3YmJjNWU2LXJlZnMvaGVhZHMvbWFzdGVyQHsj NjkzOTU0fQorLS0tCisgY2hyb21lL2Nocm9tZV9jbGVhbmVyL2lwYy9CVUlMRC5nbiAgICAgICAg ICAgIHwgIDEgKworIGNocm9tZS9jaHJvbWVfY2xlYW5lci9pcGMvaXBjX3Rlc3RfdXRpbC5jYyAg ICB8IDk4ICsrKy0tLS0tLS0tLS0tLS0tLS0KKyBjaHJvbWUvY2hyb21lX2NsZWFuZXIvaXBjL2lw Y190ZXN0X3V0aWwuaCAgICAgfCAxNyArKy0tCisgLi4uL2lwYy9wcm90b19jaHJvbWVfcHJvbXB0 X2lwY191bml0dGVzdC5jYyAgIHwgMjYgKysrLS0KKyBjaHJvbWUvY2hyb21lX2NsZWFuZXIvdGVz dC9CVUlMRC5nbiAgICAgICAgICAgfCAgMyArCisgLi4uL3Rlc3QvY2hpbGRfcHJvY2Vzc19sb2dn ZXIuY2MgICAgICAgICAgICAgIHwgOTAgKysrKysrKysrKysrKysrKysKKyAuLi4vdGVzdC9jaGls ZF9wcm9jZXNzX2xvZ2dlci5oICAgICAgICAgICAgICAgfCA2MiArKysrKysrKysrKysKKyBjaHJv bWUvY2hyb21lX2NsZWFuZXIvdGVzdC9jbGVhbmVyX3Rlc3QuY2MgICAgfCAxNCArKy0KKyAuLi4v dGVzdC9zZWN1cmVfZGxsX2xvYWRpbmdfdGVzdC5jYyAgICAgICAgICAgfCA1NyArKy0tLS0tLS0t LQorIDkgZmlsZXMgY2hhbmdlZCwgMjA3IGluc2VydGlvbnMoKyksIDE2MSBkZWxldGlvbnMoLSkK KyBjcmVhdGUgbW9kZSAxMDA2NDQgY2hyb21lL2Nocm9tZV9jbGVhbmVyL3Rlc3QvY2hpbGRfcHJv Y2Vzc19sb2dnZXIuY2MKKyBjcmVhdGUgbW9kZSAxMDA2NDQgY2hyb21lL2Nocm9tZV9jbGVhbmVy L3Rlc3QvY2hpbGRfcHJvY2Vzc19sb2dnZXIuaAorCitkaWZmIC0tZ2l0IGEvY2hyb21lL2Nocm9t ZV9jbGVhbmVyL2lwYy9CVUlMRC5nbiBiL2Nocm9tZS9jaHJvbWVfY2xlYW5lci9pcGMvQlVJTEQu Z24KK2luZGV4IDAzZmRkZmQ4NzM2ZTEuLjRkODE4MDNhMjRkZjYgMTAwNjQ0CistLS0gYS9jaHJv bWUvY2hyb21lX2NsZWFuZXIvaXBjL0JVSUxELmduCisrKysgYi9jaHJvbWUvY2hyb21lX2NsZWFu ZXIvaXBjL0JVSUxELmduCitAQCAtNzcsNiArNzcsNyBAQCBzb3VyY2Vfc2V0KCJpcGNfdGVzdF91 dGlsIikgeworICAgICAiLy9iYXNlL3Rlc3Q6dGVzdF9zdXBwb3J0IiwKKyAgICAgIi8vY2hyb21l L2Nocm9tZV9jbGVhbmVyL2lwYzpzYW5kYm94IiwKKyAgICAgIi8vY2hyb21lL2Nocm9tZV9jbGVh bmVyL2xvZ2dpbmc6Y29tbW9uIiwKKysgICAgIi8vY2hyb21lL2Nocm9tZV9jbGVhbmVyL3Rlc3Q6 dGVzdF91dGlsIiwKKyAgICAgIi8vbW9qby9wdWJsaWMvY3BwL3N5c3RlbSIsCisgICAgICIvL3Nh bmRib3gvd2luOnNhbmRib3giLAorICAgICAiLy90ZXN0aW5nL2d0ZXN0IiwKK2RpZmYgLS1naXQg YS9jaHJvbWUvY2hyb21lX2NsZWFuZXIvaXBjL2lwY190ZXN0X3V0aWwuY2MgYi9jaHJvbWUvY2hy b21lX2NsZWFuZXIvaXBjL2lwY190ZXN0X3V0aWwuY2MKK2luZGV4IDBkMDNhNjg3MGZiMDcuLmVh MmJiMjE0NWJmZGQgMTAwNjQ0CistLS0gYS9jaHJvbWUvY2hyb21lX2NsZWFuZXIvaXBjL2lwY190 ZXN0X3V0aWwuY2MKKysrKyBiL2Nocm9tZS9jaHJvbWVfY2xlYW5lci9pcGMvaXBjX3Rlc3RfdXRp bC5jYworQEAgLTEyLDE0ICsxMiwxMCBAQAorICNpbmNsdWRlICJiYXNlL2JpbmRfaGVscGVycy5o IgorICNpbmNsdWRlICJiYXNlL2NvbW1hbmRfbGluZS5oIgorICNpbmNsdWRlICJiYXNlL2ZpbGVz L2ZpbGVfcGF0aC5oIgorLSNpbmNsdWRlICJiYXNlL2ZpbGVzL2ZpbGVfdXRpbC5oIgorLSNpbmNs dWRlICJiYXNlL2ZpbGVzL3Njb3BlZF90ZW1wX2Rpci5oIgorICNpbmNsdWRlICJiYXNlL2xvZ2dp bmcuaCIKKyAjaW5jbHVkZSAiYmFzZS9wcm9jZXNzL2xhdW5jaC5oIgorICNpbmNsdWRlICJiYXNl L3JhbmRfdXRpbC5oIgorICNpbmNsdWRlICJiYXNlL3N0cmluZ3Mvc3RyaW5nX251bWJlcl9jb252 ZXJzaW9ucy5oIgorLSNpbmNsdWRlICJiYXNlL3N0cmluZ3Mvc3RyaW5nX3BpZWNlLmgiCistI2lu Y2x1ZGUgImJhc2Uvc3RyaW5ncy9zdHJpbmdfc3BsaXQuaCIKKyAjaW5jbHVkZSAiYmFzZS90ZXN0 L211bHRpcHJvY2Vzc190ZXN0LmgiCisgI2luY2x1ZGUgImJhc2UvdGVzdC90ZXN0X3RpbWVvdXRz LmgiCisgI2luY2x1ZGUgImJhc2Uvd2luL3dpbl91dGlsLmgiCitAQCAtMzQsMTEgKzMwLDggQEAg Y29uc3RleHByIGNoYXIga01vam9QaXBlVG9rZW5Td2l0Y2hbXSA9ICJtb2pvLXBpcGUtdG9rZW4i OworIAorIGNsYXNzIE1vam9TYW5kYm94U2V0dXBIb29rcyA6IHB1YmxpYyBTYW5kYm94U2V0dXBI b29rcyB7CisgIHB1YmxpYzoKKy0gIGV4cGxpY2l0IE1vam9TYW5kYm94U2V0dXBIb29rcygKKy0g ICAgICBTYW5kYm94ZWRQYXJlbnRQcm9jZXNzKiBwYXJlbnRfcHJvY2VzcywKKy0gICAgICBiYXNl Ojp3aW46OlNjb3BlZEhhbmRsZSBjaGlsZF9zdGRvdXRfd3JpdGVfaGFuZGxlKQorLSAgICAgIDog cGFyZW50X3Byb2Nlc3NfKHBhcmVudF9wcm9jZXNzKSwKKy0gICAgICAgIGNoaWxkX3N0ZG91dF93 cml0ZV9oYW5kbGVfKHN0ZDo6bW92ZShjaGlsZF9zdGRvdXRfd3JpdGVfaGFuZGxlKSkge30KKysg IGV4cGxpY2l0IE1vam9TYW5kYm94U2V0dXBIb29rcyhTYW5kYm94ZWRQYXJlbnRQcm9jZXNzKiBw YXJlbnRfcHJvY2VzcykKKysgICAgICA6IHBhcmVudF9wcm9jZXNzXyhwYXJlbnRfcHJvY2Vzcykg e30KKyAgIH5Nb2pvU2FuZGJveFNldHVwSG9va3MoKSBvdmVycmlkZSA9IGRlZmF1bHQ7CisgCisg ICAvLyBTYW5kYm94U2V0dXBIb29rcworQEAgLTUwLDggKzQzLDcgQEAgY2xhc3MgTW9qb1NhbmRi b3hTZXR1cEhvb2tzIDogcHVibGljIFNhbmRib3hTZXR1cEhvb2tzIHsKKyAgICAgcGFyZW50X3By b2Nlc3NfLT5DcmVhdGVNb2pvUGlwZShjb21tYW5kX2xpbmUsICZoYW5kbGVzX3RvX2luaGVyaXQp OworICAgICBmb3IgKEhBTkRMRSBoYW5kbGUgOiBoYW5kbGVzX3RvX2luaGVyaXQpCisgICAgICAg cG9saWN5LT5BZGRIYW5kbGVUb1NoYXJlKGhhbmRsZSk7CistICAgIHBvbGljeS0+U2V0U3Rkb3V0 SGFuZGxlKGNoaWxkX3N0ZG91dF93cml0ZV9oYW5kbGVfLkdldCgpKTsKKy0gICAgcG9saWN5LT5T ZXRTdGRlcnJIYW5kbGUoY2hpbGRfc3Rkb3V0X3dyaXRlX2hhbmRsZV8uR2V0KCkpOworKyAgICBw YXJlbnRfcHJvY2Vzc18tPmNoaWxkX3Byb2Nlc3NfbG9nZ2VyKCkuVXBkYXRlU2FuZGJveFBvbGlj eShwb2xpY3kpOworICAgICByZXR1cm4gUkVTVUxUX0NPREVfU1VDQ0VTUzsKKyAgIH0KKyAKK0BA IC02OSwzOCArNjEsNiBAQCBjbGFzcyBNb2pvU2FuZGJveFNldHVwSG9va3MgOiBwdWJsaWMgU2Fu ZGJveFNldHVwSG9va3MgeworIAorIH0gIC8vIG5hbWVzcGFjZQorIAorLW5hbWVzcGFjZSBpbnRl cm5hbCB7CistCistdm9pZCBQcmludENoaWxkUHJvY2Vzc0xvZ3MoY29uc3QgYmFzZTo6RmlsZVBh dGgmIGxvZ19wYXRoKSB7CistICBpZiAobG9nX3BhdGguZW1wdHkoKSkgeworLSAgICBMT0coRVJS T1IpIDw8ICJDaGlsZCBwcm9jZXNzIGxvZyBwYXRoIGlzIGVtcHR5IjsKKy0gICAgcmV0dXJuOwor LSAgfQorLQorLSAgaWYgKCFiYXNlOjpQYXRoRXhpc3RzKGxvZ19wYXRoKSkgeworLSAgICBMT0co RVJST1IpIDw8ICJDaGlsZCBwcm9jZXNzIGxvZyBmaWxlIGRvZXNuJ3QgZXhpc3QiOworLSAgICBy ZXR1cm47CistICB9CistCistICAvLyBDb2xsZWN0IHRoZSBjaGlsZCBwcm9jZXNzIGxvZyBmaWxl LCBhbmQgZHVtcCB0aGUgY29udGVudHMsIHRvIGhlbHAKKy0gIC8vIGRlYnVnZ2luZyBmYWlsdXJl cy4KKy0gIHN0ZDo6c3RyaW5nIGxvZ19maWxlX2NvbnRlbnRzOworLSAgaWYgKCFiYXNlOjpSZWFk RmlsZVRvU3RyaW5nKGxvZ19wYXRoLCAmbG9nX2ZpbGVfY29udGVudHMpKSB7CistICAgIExPRyhF UlJPUikgPDwgIkZhaWxlZCB0byByZWFkIGNoaWxkIHByb2Nlc3MgbG9nIGZpbGUiOworLSAgICBy ZXR1cm47CistICB9CistCistICBzdGQ6OnZlY3RvcjxiYXNlOjpTdHJpbmdQaWVjZT4gbGluZXMg PQorLSAgICAgIGJhc2U6OlNwbGl0U3RyaW5nUGllY2UobG9nX2ZpbGVfY29udGVudHMsICJcbiIs IGJhc2U6OlRSSU1fV0hJVEVTUEFDRSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJh c2U6OlNQTElUX1dBTlRfTk9ORU1QVFkpOworLSAgTE9HKEVSUk9SKSA8PCAiRHVtcGluZyBjaGls ZCBwcm9jZXNzIGxvZ3MiOworLSAgZm9yIChjb25zdCBhdXRvJiBsaW5lIDogbGluZXMpIHsKKy0g ICAgTE9HKEVSUk9SKSA8PCAiQ2hpbGQgcHJvY2VzczogIiA8PCBsaW5lOworLSAgfQorLX0KKy0K Ky19ICAvLyBuYW1lc3BhY2UgaW50ZXJuYWwKKy0KKyBQYXJlbnRQcm9jZXNzOjpQYXJlbnRQcm9j ZXNzKHNjb3BlZF9yZWZwdHI8TW9qb1Rhc2tSdW5uZXI+IG1vam9fdGFza19ydW5uZXIpCisgICAg IDogY29tbWFuZF9saW5lXyhiYXNlOjpHZXRNdWx0aVByb2Nlc3NUZXN0Q2hpbGRCYXNlQ29tbWFu ZExpbmUoKSksCisgICAgICAgbW9qb190YXNrX3J1bm5lcl8obW9qb190YXNrX3J1bm5lcikge30K K0BAIC0xNTgsMzYgKzExOCwxMCBAQCBib29sIFBhcmVudFByb2Nlc3M6OkxhdW5jaENvbm5lY3Rl ZENoaWxkUHJvY2VzcygKKyAgICAgY29uc3Qgc3RkOjpzdHJpbmcmIGNoaWxkX21haW5fZnVuY3Rp b24sCisgICAgIGJhc2U6OlRpbWVEZWx0YSB0aW1lb3V0LAorICAgICBpbnQzMl90KiBleGl0X2Nv ZGUpIHsKKy0gIC8vIEFkYXB0ZWQgZnJvbQorLSAgLy8gaHR0cHM6Ly9jcy5jaHJvbWl1bS5vcmcv Y2hyb21pdW0vc3JjL3NhbmRib3gvd2luL3NyYy9oYW5kbGVfaW5oZXJpdGFuY2VfdGVzdC5jYwor LSAgYmFzZTo6U2NvcGVkVGVtcERpciB0ZW1wX2RpcjsKKy0gIGlmICghdGVtcF9kaXIuQ3JlYXRl VW5pcXVlVGVtcERpcigpKSB7CistICAgIFBMT0coRVJST1IpIDw8ICJDb3VsZCBub3QgY3JlYXRl IHRlbXAgZGlyIGZvciBjaGlsZCBzdGRvdXQiOworKyAgaWYgKCFjaGlsZF9wcm9jZXNzX2xvZ2dl cl8uSW5pdGlhbGl6ZSgpKQorICAgICByZXR1cm4gZmFsc2U7CistICB9CistCistICBiYXNlOjpG aWxlUGF0aCB0ZW1wX2ZpbGVfbmFtZTsKKy0gIGlmICghQ3JlYXRlVGVtcG9yYXJ5RmlsZUluRGly KHRlbXBfZGlyLkdldFBhdGgoKSwgJnRlbXBfZmlsZV9uYW1lKSkgeworLSAgICBQTE9HKEVSUk9S KSA8PCAiQ291bGQgbm90IGNyZWF0ZSB0ZW1wIGZpbGUgZm9yIGNoaWxkIHN0ZG91dCI7CistICAg IHJldHVybiBmYWxzZTsKKy0gIH0KKy0KKy0gIFNFQ1VSSVRZX0FUVFJJQlVURVMgYXR0cnMgPSB7 fTsKKy0gIGF0dHJzLm5MZW5ndGggPSBzaXplb2YoYXR0cnMpOworLSAgYXR0cnMuYkluaGVyaXRI YW5kbGUgPSB0cnVlOworLQorLSAgYmFzZTo6d2luOjpTY29wZWRIYW5kbGUgY2hpbGRfc3Rkb3V0 X3dyaXRlX2hhbmRsZSgKKy0gICAgICA6OkNyZWF0ZUZpbGUodGVtcF9maWxlX25hbWUudmFsdWUo KS5jX3N0cigpLCBHRU5FUklDX1dSSVRFLAorLSAgICAgICAgICAgICAgICAgICBGSUxFX1NIQVJF X1dSSVRFIHwgRklMRV9TSEFSRV9SRUFEIHwgRklMRV9TSEFSRV9ERUxFVEUsCistICAgICAgICAg ICAgICAgICAgICZhdHRycywgT1BFTl9FWElTVElORywgMCwgbnVsbHB0cikpOworLSAgaWYgKCFj aGlsZF9zdGRvdXRfd3JpdGVfaGFuZGxlLklzVmFsaWQoKSkgeworLSAgICBQTE9HKEVSUk9SKSA8 PCAiQ291bGQgbm90IG9wZW4gY2hpbGQgc3Rkb3V0IGZpbGUiOworLSAgICByZXR1cm4gZmFsc2U7 CistICB9CistCistICBpZiAoIVByZXBhcmVBbmRMYXVuY2hUZXN0Q2hpbGRQcm9jZXNzKGNoaWxk X21haW5fZnVuY3Rpb24sCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHN0ZDo6bW92ZShjaGlsZF9zdGRvdXRfd3JpdGVfaGFuZGxlKSkpIHsKKy0gICAgaW50ZXJuYWw6 OlByaW50Q2hpbGRQcm9jZXNzTG9ncyh0ZW1wX2ZpbGVfbmFtZSk7CisrICBpZiAoIVByZXBhcmVB bmRMYXVuY2hUZXN0Q2hpbGRQcm9jZXNzKGNoaWxkX21haW5fZnVuY3Rpb24pKSB7CisrICAgIGNo aWxkX3Byb2Nlc3NfbG9nZ2VyXy5EdW1wTG9ncygpOworICAgICByZXR1cm4gZmFsc2U7CisgICB9 CisgCitAQCAtMjAxLDMxICsxMzUsMjIgQEAgYm9vbCBQYXJlbnRQcm9jZXNzOjpMYXVuY2hDb25u ZWN0ZWRDaGlsZFByb2Nlc3MoCisgICBEZXN0cm95SW1wbE9uSVBDVGhyZWFkKCk7CisgCisgICBp ZiAoIXN1Y2Nlc3MgfHwgKmV4aXRfY29kZSAhPSAwKSB7CistICAgIGludGVybmFsOjpQcmludENo aWxkUHJvY2Vzc0xvZ3ModGVtcF9maWxlX25hbWUpOworKyAgICBjaGlsZF9wcm9jZXNzX2xvZ2dl cl8uRHVtcExvZ3MoKTsKKyAgIH0KKyAKKyAgIHJldHVybiBzdWNjZXNzOworIH0KKyAKKyBib29s IFBhcmVudFByb2Nlc3M6OlByZXBhcmVBbmRMYXVuY2hUZXN0Q2hpbGRQcm9jZXNzKAorLSAgICBj b25zdCBzdGQ6OnN0cmluZyYgY2hpbGRfbWFpbl9mdW5jdGlvbiwKKy0gICAgYmFzZTo6d2luOjpT Y29wZWRIYW5kbGUgY2hpbGRfc3Rkb3V0X3dyaXRlX2hhbmRsZSkgeworKyAgICBjb25zdCBzdGQ6 OnN0cmluZyYgY2hpbGRfbWFpbl9mdW5jdGlvbikgeworICAgYmFzZTo6TGF1bmNoT3B0aW9ucyBs YXVuY2hfb3B0aW9uczsKKyAgIGxhdW5jaF9vcHRpb25zLmhhbmRsZXNfdG9faW5oZXJpdCA9IGV4 dHJhX2hhbmRsZXNfdG9faW5oZXJpdF87CistICBsYXVuY2hfb3B0aW9ucy5oYW5kbGVzX3RvX2lu aGVyaXQucHVzaF9iYWNrKGNoaWxkX3N0ZG91dF93cml0ZV9oYW5kbGUuR2V0KCkpOworLSAgbGF1 bmNoX29wdGlvbnMuc3RkaW5faGFuZGxlID0gSU5WQUxJRF9IQU5ETEVfVkFMVUU7CistICBsYXVu Y2hfb3B0aW9ucy5zdGRvdXRfaGFuZGxlID0gY2hpbGRfc3Rkb3V0X3dyaXRlX2hhbmRsZS5HZXQo KTsKKy0gIGxhdW5jaF9vcHRpb25zLnN0ZGVycl9oYW5kbGUgPSBjaGlsZF9zdGRvdXRfd3JpdGVf aGFuZGxlLkdldCgpOworLQorKyAgY2hpbGRfcHJvY2Vzc19sb2dnZXJfLlVwZGF0ZUxhdW5jaE9w dGlvbnMoJmxhdW5jaF9vcHRpb25zKTsKKyAgIENyZWF0ZU1vam9QaXBlKCZjb21tYW5kX2xpbmVf LCAmbGF1bmNoX29wdGlvbnMuaGFuZGxlc190b19pbmhlcml0KTsKKyAKKyAgIGJhc2U6OlByb2Nl c3MgY2hpbGRfcHJvY2VzcyA9IGJhc2U6OlNwYXduTXVsdGlQcm9jZXNzVGVzdENoaWxkKAorICAg ICAgIGNoaWxkX21haW5fZnVuY3Rpb24sIGNvbW1hbmRfbGluZV8sIGxhdW5jaF9vcHRpb25zKTsK KyAKKy0gIC8vIE5vdyB0aGF0IGl0J3MgYmVlbiBwYXNzZWQgdG8gdGhlIGNoaWxkIHByb2Nlc3Ms CistICAvLyB8Y2hpbGRfc3Rkb3V0X3dyaXRlX2hhbmRsZXwgY2FuIGJlIGNsb3NlZCBpbiB0aGlz IHByb2Nlc3MgYXMgaXQgZ29lcyBvdXQKKy0gIC8vIG9mIHNjb3BlLgorLQorICAgQ29ubmVjdE1v am9QaXBlKHN0ZDo6bW92ZShjaGlsZF9wcm9jZXNzKSk7CisgICByZXR1cm4gdHJ1ZTsKKyB9CitA QCAtMjU3LDkgKzE4Miw4IEBAIFNhbmRib3hlZFBhcmVudFByb2Nlc3M6OlNhbmRib3hlZFBhcmVu dFByb2Nlc3MoCisgU2FuZGJveGVkUGFyZW50UHJvY2Vzczo6flNhbmRib3hlZFBhcmVudFByb2Nl c3MoKSB7fQorIAorIGJvb2wgU2FuZGJveGVkUGFyZW50UHJvY2Vzczo6UHJlcGFyZUFuZExhdW5j aFRlc3RDaGlsZFByb2Nlc3MoCistICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBjaGlsZF9tYWluX2Z1 bmN0aW9uLAorLSAgICBiYXNlOjp3aW46OlNjb3BlZEhhbmRsZSBjaGlsZF9zdGRvdXRfd3JpdGVf aGFuZGxlKSB7CistICBNb2pvU2FuZGJveFNldHVwSG9va3MgaG9va3ModGhpcywgc3RkOjptb3Zl KGNoaWxkX3N0ZG91dF93cml0ZV9oYW5kbGUpKTsKKysgICAgY29uc3Qgc3RkOjpzdHJpbmcmIGNo aWxkX21haW5fZnVuY3Rpb24pIHsKKysgIE1vam9TYW5kYm94U2V0dXBIb29rcyBob29rcyh0aGlz KTsKKyAKKyAgIC8vIFRoaXMgc3dpdGNoIHVzYWdlIGlzIGNvcGllZCBmcm9tIFNwYXduTXVsdGlQ cm9jZXNzVGVzdENoaWxkLgorICAgLy8KK2RpZmYgLS1naXQgYS9jaHJvbWUvY2hyb21lX2NsZWFu ZXIvaXBjL2lwY190ZXN0X3V0aWwuaCBiL2Nocm9tZS9jaHJvbWVfY2xlYW5lci9pcGMvaXBjX3Rl c3RfdXRpbC5oCitpbmRleCAxYjJlNTU5OGVkNTJhLi4xNTI2YTQyNzAxMzUzIDEwMDY0NAorLS0t IGEvY2hyb21lL2Nocm9tZV9jbGVhbmVyL2lwYy9pcGNfdGVzdF91dGlsLmgKKysrKyBiL2Nocm9t ZS9jaHJvbWVfY2xlYW5lci9pcGMvaXBjX3Rlc3RfdXRpbC5oCitAQCAtMTQsOSArMTQsOSBAQAor ICNpbmNsdWRlICJiYXNlL3Byb2Nlc3MvbGF1bmNoLmgiCisgI2luY2x1ZGUgImJhc2UvcHJvY2Vz cy9wcm9jZXNzLmgiCisgI2luY2x1ZGUgImJhc2UvdGltZS90aW1lLmgiCistI2luY2x1ZGUgImJh c2Uvd2luL3Njb3BlZF9oYW5kbGUuaCIKKyAjaW5jbHVkZSAiY2hyb21lL2Nocm9tZV9jbGVhbmVy L2lwYy9jaHJvbWVfcHJvbXB0X2lwYy5oIgorICNpbmNsdWRlICJjaHJvbWUvY2hyb21lX2NsZWFu ZXIvaXBjL21vam9fdGFza19ydW5uZXIuaCIKKysjaW5jbHVkZSAiY2hyb21lL2Nocm9tZV9jbGVh bmVyL3Rlc3QvY2hpbGRfcHJvY2Vzc19sb2dnZXIuaCIKKyAjaW5jbHVkZSAibW9qby9wdWJsaWMv Y3BwL3BsYXRmb3JtL3BsYXRmb3JtX2NoYW5uZWwuaCIKKyAjaW5jbHVkZSAibW9qby9wdWJsaWMv Y3BwL3N5c3RlbS9pbnZpdGF0aW9uLmgiCisgI2luY2x1ZGUgIm1vam8vcHVibGljL2NwcC9zeXN0 ZW0vbWVzc2FnZV9waXBlLmgiCitAQCAtNTgsNiArNTgsMTAgQEAgY2xhc3MgUGFyZW50UHJvY2Vz cyA6IHB1YmxpYyBiYXNlOjpSZWZDb3VudGVkVGhyZWFkU2FmZTxQYXJlbnRQcm9jZXNzPiB7Cisg ICAgIHJldHVybiBleHRyYV9oYW5kbGVzX3RvX2luaGVyaXRfOworICAgfQorIAorKyAgY29uc3Qg Q2hpbGRQcm9jZXNzTG9nZ2VyJiBjaGlsZF9wcm9jZXNzX2xvZ2dlcigpIGNvbnN0IHsKKysgICAg cmV0dXJuIGNoaWxkX3Byb2Nlc3NfbG9nZ2VyXzsKKysgIH0KKysKKyAgcHJvdGVjdGVkOgorICAg ZnJpZW5kIGJhc2U6OlJlZkNvdW50ZWRUaHJlYWRTYWZlPFBhcmVudFByb2Nlc3M+OworICAgdmly dHVhbCB+UGFyZW50UHJvY2VzcygpOworQEAgLTcwLDEzICs3NCwxMyBAQCBjbGFzcyBQYXJlbnRQ cm9jZXNzIDogcHVibGljIGJhc2U6OlJlZkNvdW50ZWRUaHJlYWRTYWZlPFBhcmVudFByb2Nlc3M+ IHsKKyAgIC8vIGFzIGluIHRoZSBzYW5kYm94LiBTdWJjbGFzc2VzIHNob3VsZCBjYWxsIENyZWF0 ZU1vam9QaXBlIGJlZm9yZSB0aGUKKyAgIC8vIHN1YnByb2Nlc3MgaXMgc3Bhd25lZCBhbmQgQ29u bmVjdE1vam9QaXBlIGFmdGVyd2FyZC4KKyAgIHZpcnR1YWwgYm9vbCBQcmVwYXJlQW5kTGF1bmNo VGVzdENoaWxkUHJvY2VzcygKKy0gICAgICBjb25zdCBzdGQ6OnN0cmluZyYgY2hpbGRfbWFpbl9m dW5jdGlvbiwKKy0gICAgICBiYXNlOjp3aW46OlNjb3BlZEhhbmRsZSBjaGlsZF9zdGRvdXRfd3Jp dGVfaGFuZGxlKTsKKysgICAgICBjb25zdCBzdGQ6OnN0cmluZyYgY2hpbGRfbWFpbl9mdW5jdGlv bik7CisgCisgICBzY29wZWRfcmVmcHRyPE1vam9UYXNrUnVubmVyPiBtb2pvX3Rhc2tfcnVubmVy KCk7CisgCisgICBiYXNlOjpDb21tYW5kTGluZSBjb21tYW5kX2xpbmVfOworICAgYmFzZTo6SGFu ZGxlc1RvSW5oZXJpdFZlY3RvciBleHRyYV9oYW5kbGVzX3RvX2luaGVyaXRfOworKyAgQ2hpbGRQ cm9jZXNzTG9nZ2VyIGNoaWxkX3Byb2Nlc3NfbG9nZ2VyXzsKKyAKKyAgcHJpdmF0ZToKKyAgIHNj b3BlZF9yZWZwdHI8TW9qb1Rhc2tSdW5uZXI+IG1vam9fdGFza19ydW5uZXJfOworQEAgLTk2LDgg KzEwMCw3IEBAIGNsYXNzIFNhbmRib3hlZFBhcmVudFByb2Nlc3MgOiBwdWJsaWMgUGFyZW50UHJv Y2VzcyB7CisgICB+U2FuZGJveGVkUGFyZW50UHJvY2VzcygpIG92ZXJyaWRlOworIAorICAgYm9v bCBQcmVwYXJlQW5kTGF1bmNoVGVzdENoaWxkUHJvY2VzcygKKy0gICAgICBjb25zdCBzdGQ6OnN0 cmluZyYgY2hpbGRfbWFpbl9mdW5jdGlvbiwKKy0gICAgICBiYXNlOjp3aW46OlNjb3BlZEhhbmRs ZSBjaGlsZF9zdGRvdXRfd3JpdGVfaGFuZGxlKSBvdmVycmlkZTsKKysgICAgICBjb25zdCBzdGQ6 OnN0cmluZyYgY2hpbGRfbWFpbl9mdW5jdGlvbikgb3ZlcnJpZGU7CisgfTsKKyAKKyBjbGFzcyBD aGlsZFByb2Nlc3MgOiBwdWJsaWMgYmFzZTo6UmVmQ291bnRlZFRocmVhZFNhZmU8Q2hpbGRQcm9j ZXNzPiB7CitAQCAtMTQzLDEwICsxNDYsNiBAQCBjbGFzcyBDaHJvbWVQcm9tcHRJUENUZXN0RXJy b3JIYW5kbGVyIDogcHVibGljIENocm9tZVByb21wdElQQzo6RXJyb3JIYW5kbGVyIHsKKyAgIGJh c2U6Ok9uY2VDbG9zdXJlIG9uX2Nsb3NlZF9hZnRlcl9kb25lXzsKKyB9OworIAorLW5hbWVzcGFj ZSBpbnRlcm5hbCB7Cistdm9pZCBQcmludENoaWxkUHJvY2Vzc0xvZ3MoY29uc3QgYmFzZTo6Rmls ZVBhdGgmIGxvZ19maWxlKTsKKy19ICAvLyBuYW1lc3BhY2UgaW50ZXJuYWwKKy0KKyB9ICAvLyBu YW1lc3BhY2UgY2hyb21lX2NsZWFuZXIKKyAKKyAjZW5kaWYgIC8vIENIUk9NRV9DSFJPTUVfQ0xF QU5FUl9JUENfSVBDX1RFU1RfVVRJTF9IXworZGlmZiAtLWdpdCBhL2Nocm9tZS9jaHJvbWVfY2xl YW5lci9pcGMvcHJvdG9fY2hyb21lX3Byb21wdF9pcGNfdW5pdHRlc3QuY2MgYi9jaHJvbWUvY2hy b21lX2NsZWFuZXIvaXBjL3Byb3RvX2Nocm9tZV9wcm9tcHRfaXBjX3VuaXR0ZXN0LmNjCitpbmRl eCBmODY3ZGY1OGY5NmVhLi5lM2NlMmFiNmMyN2ZlIDEwMDY0NAorLS0tIGEvY2hyb21lL2Nocm9t ZV9jbGVhbmVyL2lwYy9wcm90b19jaHJvbWVfcHJvbXB0X2lwY191bml0dGVzdC5jYworKysrIGIv Y2hyb21lL2Nocm9tZV9jbGVhbmVyL2lwYy9wcm90b19jaHJvbWVfcHJvbXB0X2lwY191bml0dGVz dC5jYworQEAgLTUsNyArNSw2IEBACisgI2luY2x1ZGUgPHdpbmRvd3MuaD4KKyAKKyAjaW5jbHVk ZSAiYmFzZS9jb21tYW5kX2xpbmUuaCIKKy0jaW5jbHVkZSAiYmFzZS9maWxlcy9maWxlX3V0aWwu aCIKKyAjaW5jbHVkZSAiYmFzZS9wcm9jZXNzL3Byb2Nlc3MuaCIKKyAjaW5jbHVkZSAiYmFzZS9z dHJpbmdzL3N0cmNhdC5oIgorICNpbmNsdWRlICJiYXNlL3N0cmluZ3Mvc3RyaW5nX251bWJlcl9j b252ZXJzaW9ucy5oIgorQEAgLTE5LDcgKzE4LDcgQEAKKyAjaW5jbHVkZSAiYmFzZS93aW4vd2lu X3V0aWwuaCIKKyAjaW5jbHVkZSAiY2hyb21lL2Nocm9tZV9jbGVhbmVyL2lwYy9pcGNfdGVzdF91 dGlsLmgiCisgI2luY2x1ZGUgImNocm9tZS9jaHJvbWVfY2xlYW5lci9pcGMvcHJvdG9fY2hyb21l X3Byb21wdF9pcGMuaCIKKy0jaW5jbHVkZSAiY2hyb21lL2Nocm9tZV9jbGVhbmVyL2xvZ2dpbmcv c2NvcGVkX2xvZ2dpbmcuaCIKKysjaW5jbHVkZSAiY2hyb21lL2Nocm9tZV9jbGVhbmVyL3Rlc3Qv Y2hpbGRfcHJvY2Vzc19sb2dnZXIuaCIKKyAjaW5jbHVkZSAiY29tcG9uZW50cy9jaHJvbWVfY2xl YW5lci9wdWJsaWMvY29uc3RhbnRzL2NvbnN0YW50cy5oIgorICNpbmNsdWRlICJjb21wb25lbnRz L2Nocm9tZV9jbGVhbmVyL3B1YmxpYy9wcm90by9jaHJvbWVfcHJvbXB0LnBiLmgiCisgI2luY2x1 ZGUgImNvbXBvbmVudHMvY2hyb21lX2NsZWFuZXIvcHVibGljL3Byb3RvL2Nocm9tZV9wcm9tcHRf Zm9yX3Rlc3RzLnBiLmgiCitAQCAtNDIsNyArNDEsNiBAQCBjb25zdGV4cHIgY2hhciBrRXhwZWN0 ZWRQcm9tcHRSZXN1bHRTd2l0Y2hbXSA9ICJleHBlY3RlZC1wcm9tcHQtcmVzdWx0IjsKKyBjb25z dGV4cHIgY2hhciBrRXhwZWN0ZWRDaHJvbWVEaXNjb25uZWN0UG9pbnRTd2l0Y2hbXSA9CisgICAg ICJleHBlY3RlZC1wYXJlbnQtZGlzY29ubmVjdGVkIjsKKyAKKy1jb25zdGV4cHIgYmFzZTo6Y2hh cjE2IGtMb2dTdWZmaXhbXSA9IEwicHJvbXB0LWlwYy10ZXN0IjsKKyBjb25zdGV4cHIgYmFzZTo6 Y2hhcjE2IGtJbnZhbGlkVVRGMTZTdHJpbmdbXSA9IHsweERDMDAsIDB4RDgwMCwgMHhEODAwLCAw eERGRkYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg MHhERkZGLCAweERCRkYsIDB9OworIGNvbnN0IGJhc2U6OkZpbGVQYXRoIGtJbnZhbGlkRmlsZVBh dGgoa0ludmFsaWRVVEYxNlN0cmluZyk7CitAQCAtNDIxLDggKzQxOSw3IEBAIGNsYXNzIE1vY2tD aHJvbWUgeworIC8vIEd0ZXN0IHRvIGxvZy4KKyBjbGFzcyBDaGlsZFByb2Nlc3MgeworICBwdWJs aWM6CistICBDaGlsZFByb2Nlc3MoKQorLSAgICAgIDogc2NvcHBlZF9sb2dnaW5nXyhzdGQ6Om1h a2VfdW5pcXVlPFNjb3BlZExvZ2dpbmc+KGtMb2dTdWZmaXgpKSB7CisrICBDaGlsZFByb2Nlc3Mo KSB7CisgICAgIG1vY2tfY2hyb21lXyA9IHN0ZDo6bWFrZV91bmlxdWU8TW9ja0Nocm9tZT4oCisg ICAgICAgICBFeHRyYWN0SGFuZGxlRnJvbUNvbW1hbmRMaW5lKGNocm9tZV9jbGVhbmVyOjprQ2hy b21lUmVhZEhhbmRsZVN3aXRjaCksCisgICAgICAgICBFeHRyYWN0SGFuZGxlRnJvbUNvbW1hbmRM aW5lKGNocm9tZV9jbGVhbmVyOjprQ2hyb21lV3JpdGVIYW5kbGVTd2l0Y2gpKTsKK0BAIC01NzEs NyArNTY4LDYgQEAgY2xhc3MgQ2hpbGRQcm9jZXNzIHsKKyAKKyAgcHJpdmF0ZToKKyAgIHN0ZDo6 dW5pcXVlX3B0cjxNb2NrQ2hyb21lPiBtb2NrX2Nocm9tZV87CistICBzdGQ6OnVuaXF1ZV9wdHI8 U2NvcGVkTG9nZ2luZz4gc2NvcHBlZF9sb2dnaW5nXzsKKyAKKyAgIENocm9tZURpc2Nvbm5lY3RQ b2ludCBleHBlY3RlZF9kaXNjb25uZWN0X3BvaW50XyA9CisgICAgICAgQ2hyb21lRGlzY29ubmVj dFBvaW50OjprVW5zcGVjaWZpZWQ7CitAQCAtNjAzLDYgKzU5OSw5IEBAIGNsYXNzIFByb3RvQ2hy b21lUHJvbXB0SVBDVGVzdAorIGNsYXNzIFBhcmVudFByb2Nlc3MgeworICBwdWJsaWM6CisgICBi b29sIEluaXRpYWxpemUoKSB7CisrICAgIGlmICghY2hpbGRfcHJvY2Vzc19sb2dnZXJfLkluaXRp YWxpemUoKSkKKysgICAgICByZXR1cm4gZmFsc2U7CisrCisgICAgIC8vIEluamVjdCB0aGUgZmxh Z3MgcmVsYXRlZCB0byB0aGUgdGhlIGNvbmZpZyBpbiB0aGUgY29tbWFuZCBsaW5lLgorICAgICB0 ZXN0X2NvbmZpZ18uRW5oYW5jZUNvbW1hbmRMaW5lKCZjb21tYW5kX2xpbmVfKTsKKyAKK0BAIC02 MzEsMTQgKzYzMCwxMyBAQCBjbGFzcyBQYXJlbnRQcm9jZXNzIHsKKyAgIH0KKyAKKyAgIHZvaWQg UnVuKCkgeworLSAgICAvLyBEZWxldGUgdGhlIGNoaWxkIHByb2Nlc3MgbG9nIGZpbGUgaWYgZXhp c3RpbmcuCistICAgIGNvbnN0IGJhc2U6OkZpbGVQYXRoIGxvZ19wYXRoID0gU2NvcGVkTG9nZ2lu Zzo6R2V0TG9nRmlsZVBhdGgoa0xvZ1N1ZmZpeCk7CistICAgIEFTU0VSVF9UUlVFKGJhc2U6OkRl bGV0ZUZpbGUobG9nX3BhdGgsIGZhbHNlKSkKKy0gICAgICAgIDw8ICJDYW4ndCBkZWxldGUgbG9n IGZpbGUgZnJvbSBwcmV2aW91cyBydW46ICIgPDwgbG9nX3BhdGgudmFsdWUoKTsKKysgICAgY2hp bGRfcHJvY2Vzc19sb2dnZXJfLlVwZGF0ZUxhdW5jaE9wdGlvbnMoJmxhdW5jaF9vcHRpb25zXyk7 CisgCisgICAgIC8vIFBhc3MgdGhlIGNvbW1hbmQgdG8gdGhlIGNoaWxkIHByb2Nlc3MgYW5kIGxh dW5jaCB0aGUgY2hpbGQgcHJvY2Vzcy4KKyAgICAgYmFzZTo6UHJvY2VzcyBjaGlsZF9wcm9jZXNz ID0gYmFzZTo6U3Bhd25NdWx0aVByb2Nlc3NUZXN0Q2hpbGQoCisgICAgICAgICAiUHJvdG9DaHJv bWVQcm9tcHRJUENDbGllbnRNYWluIiwgY29tbWFuZF9saW5lXywgbGF1bmNoX29wdGlvbnNfKTsK KysgICAgaWYgKCFjaGlsZF9wcm9jZXNzLklzUnVubmluZygpKQorKyAgICAgIGNoaWxkX3Byb2Nl c3NfbG9nZ2VyXy5EdW1wTG9ncygpOworICAgICBBU1NFUlRfVFJVRShjaGlsZF9wcm9jZXNzLklz UnVubmluZygpKTsKKyAKKyAgICAgLy8gQ2xvc2Ugb3VyIHJlZmVyZW5jZXMgdG8gdGhlIGhhbmRs ZXMgYXMgdGhleSBhcmUgbm93IGhhbmRsZWQgYnkgdGhlIGNoaWxkCitAQCAtNzA1LDEwICs3MDMs OCBAQCBjbGFzcyBQYXJlbnRQcm9jZXNzIHsKKyAKKyAgICAgRVhQRUNUX0VRKGV4cGVjdGVkX2V4 aXRfY29kZSwgcnYpOworIAorLSAgICBpZiAoIXN1Y2Nlc3MgfHwgcnYgIT0gMCkgeworLSAgICAg IGludGVybmFsOjpQcmludENoaWxkUHJvY2Vzc0xvZ3MoCistICAgICAgICAgIFNjb3BlZExvZ2dp bmc6OkdldExvZ0ZpbGVQYXRoKGtMb2dTdWZmaXgpKTsKKy0gICAgfQorKyAgICBpZiAoIXN1Y2Nl c3MgfHwgcnYgIT0gMCkKKysgICAgICBjaGlsZF9wcm9jZXNzX2xvZ2dlcl8uRHVtcExvZ3MoKTsK KyAgIH0KKyAKKyAgIFRlc3RDb25maWcmIEdldFRlc3RDb25maWcoKSB7IHJldHVybiB0ZXN0X2Nv bmZpZ187IH0KK0BAIC03MzIsNiArNzI4LDggQEAgY2xhc3MgUGFyZW50UHJvY2VzcyB7CisgICAv LyBCbG9ja3MgdW50aWwgd2UgcmVjZWl2ZSB0aGUgcmVzcG9uc2UgZnJvbSBDaHJvbWUgb3IgYW4g ZXJyb3Igb2NjdXJzLgorICAgYmFzZTo6UnVuTG9vcCBtYWluX3J1bmxvb3BfOworICAgYm9vbCBl cnJvcl9vY2N1cnJlZF8gPSBmYWxzZTsKKysKKysgIENoaWxkUHJvY2Vzc0xvZ2dlciBjaGlsZF9w cm9jZXNzX2xvZ2dlcl87CisgfTsKKyAKKyAvLyBUaGlzIGNvbnRhaW5zIGNhbGxzIHRvIHRoZSBj aHJvbWVfY2xlYW5lcl9pcGMgaW1wbGVtZW50YXRpb24uCitkaWZmIC0tZ2l0IGEvY2hyb21lL2No cm9tZV9jbGVhbmVyL3Rlc3QvQlVJTEQuZ24gYi9jaHJvbWUvY2hyb21lX2NsZWFuZXIvdGVzdC9C VUlMRC5nbgoraW5kZXggMTE4NDU0YzJiZGNkMi4uNGIwNTNmZGNhZjE4MiAxMDA2NDQKKy0tLSBh L2Nocm9tZS9jaHJvbWVfY2xlYW5lci90ZXN0L0JVSUxELmduCisrKysgYi9jaHJvbWUvY2hyb21l X2NsZWFuZXIvdGVzdC9CVUlMRC5nbgorQEAgLTE0OCw2ICsxNDgsOCBAQCBzb3VyY2Vfc2V0KCJ0 ZXN0X3V0aWwiKSB7CisgICB0ZXN0b25seSA9IHRydWUKKyAKKyAgIHNvdXJjZXMgPSBbCisrICAg ICJjaGlsZF9wcm9jZXNzX2xvZ2dlci5jYyIsCisrICAgICJjaGlsZF9wcm9jZXNzX2xvZ2dlci5o IiwKKyAgICAgImZpbGVfcmVtb3Zlcl90ZXN0X3V0aWwuY2MiLAorICAgICAiZmlsZV9yZW1vdmVy X3Rlc3RfdXRpbC5oIiwKKyAgICAgInJlYm9vdF9kZWxldGlvbl9oZWxwZXIuY2MiLAorQEAgLTIy OCw2ICsyMzAsNyBAQCBzb3VyY2Vfc2V0KCJpbnRlZ3JhdGlvbl90ZXN0X3NvdXJjZXMiKSB7Cisg ICAgICIvL2Nocm9tZS9jaHJvbWVfY2xlYW5lci9vczpjb21tb25fb3MiLAorICAgICAiLy9jaHJv bWUvY2hyb21lX2NsZWFuZXIvcHVwX2RhdGE6cHVwX2RhdGFfYmFzZSIsCisgICAgICIvL2Nocm9t ZS9jaHJvbWVfY2xlYW5lci9wdXBfZGF0YTp0ZXN0X3V3cyIsCisrICAgICIvL2Nocm9tZS9jaHJv bWVfY2xlYW5lci90ZXN0OnRlc3RfdXRpbCIsCisgICAgICIvL2Nocm9tZS9jaHJvbWVfY2xlYW5l ci96aXBfYXJjaGl2ZXI6Y29tbW9uIiwKKyAgICAgIi8vY29tcG9uZW50cy9jaHJvbWVfY2xlYW5l ci9wdWJsaWMvY29uc3RhbnRzIiwKKyAgICAgIi8vY29tcG9uZW50cy9jaHJvbWVfY2xlYW5lci90 ZXN0OnRlc3RfbmFtZV9oZWxwZXIiLAorZGlmZiAtLWdpdCBhL2Nocm9tZS9jaHJvbWVfY2xlYW5l ci90ZXN0L2NoaWxkX3Byb2Nlc3NfbG9nZ2VyLmNjIGIvY2hyb21lL2Nocm9tZV9jbGVhbmVyL3Rl c3QvY2hpbGRfcHJvY2Vzc19sb2dnZXIuY2MKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAw MDAwMDAwMDAwMDAwLi45ZjQ4MzYyNjdhZWE2CistLS0gL2Rldi9udWxsCisrKysgYi9jaHJvbWUv Y2hyb21lX2NsZWFuZXIvdGVzdC9jaGlsZF9wcm9jZXNzX2xvZ2dlci5jYworQEAgLTAsMCArMSw5 MCBAQAorKy8vIENvcHlyaWdodCAyMDE5IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRz IHJlc2VydmVkLgorKy8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEg QlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKKysvLyBmb3VuZCBpbiB0aGUgTElDRU5TRSBm aWxlLgorKworKyNpbmNsdWRlICJjaHJvbWUvY2hyb21lX2NsZWFuZXIvdGVzdC9jaGlsZF9wcm9j ZXNzX2xvZ2dlci5oIgorKworKyNpbmNsdWRlIDx2ZWN0b3I+CisrCisrI2luY2x1ZGUgImJhc2Uv ZmlsZXMvZmlsZV91dGlsLmgiCisrI2luY2x1ZGUgImJhc2UvbG9nZ2luZy5oIgorKyNpbmNsdWRl ICJiYXNlL3N0cmluZ3Mvc3RyaW5nX3BpZWNlLmgiCisrI2luY2x1ZGUgImJhc2Uvc3RyaW5ncy9z dHJpbmdfc3BsaXQuaCIKKysKKytuYW1lc3BhY2UgY2hyb21lX2NsZWFuZXIgeworKworK0NoaWxk UHJvY2Vzc0xvZ2dlcjo6Q2hpbGRQcm9jZXNzTG9nZ2VyKCkgPSBkZWZhdWx0OworKworK0NoaWxk UHJvY2Vzc0xvZ2dlcjo6fkNoaWxkUHJvY2Vzc0xvZ2dlcigpID0gZGVmYXVsdDsKKysKKytib29s IENoaWxkUHJvY2Vzc0xvZ2dlcjo6SW5pdGlhbGl6ZSgpIHsKKysgIC8vIEFkYXB0ZWQgZnJvbQor KyAgLy8gaHR0cHM6Ly9jcy5jaHJvbWl1bS5vcmcvY2hyb21pdW0vc3JjL3NhbmRib3gvd2luL3Ny Yy9oYW5kbGVfaW5oZXJpdGFuY2VfdGVzdC5jYworKyAgaWYgKCF0ZW1wX2Rpcl8uQ3JlYXRlVW5p cXVlVGVtcERpcigpKSB7CisrICAgIFBMT0coRVJST1IpIDw8ICJDb3VsZCBub3QgY3JlYXRlIHRl bXAgZGlyIGZvciBjaGlsZCBzdGRvdXQiOworKyAgICByZXR1cm4gZmFsc2U7CisrICB9CisrCisr ICBpZiAoIUNyZWF0ZVRlbXBvcmFyeUZpbGVJbkRpcih0ZW1wX2Rpcl8uR2V0UGF0aCgpLCAmdGVt cF9maWxlX25hbWVfKSkgeworKyAgICBQTE9HKEVSUk9SKSA8PCAiQ291bGQgbm90IGNyZWF0ZSB0 ZW1wIGZpbGUgZm9yIGNoaWxkIHN0ZG91dCI7CisrICAgIHJldHVybiBmYWxzZTsKKysgIH0KKysK KysgIFNFQ1VSSVRZX0FUVFJJQlVURVMgYXR0cnMgPSB7fTsKKysgIGF0dHJzLm5MZW5ndGggPSBz aXplb2YoYXR0cnMpOworKyAgYXR0cnMuYkluaGVyaXRIYW5kbGUgPSB0cnVlOworKworKyAgY2hp bGRfc3Rkb3V0X2hhbmRsZV8uU2V0KAorKyAgICAgIDo6Q3JlYXRlRmlsZSh0ZW1wX2ZpbGVfbmFt ZV8udmFsdWUoKS5jX3N0cigpLCBHRU5FUklDX1dSSVRFLAorKyAgICAgICAgICAgICAgICAgICBG SUxFX1NIQVJFX1dSSVRFIHwgRklMRV9TSEFSRV9SRUFEIHwgRklMRV9TSEFSRV9ERUxFVEUsCisr ICAgICAgICAgICAgICAgICAgICZhdHRycywgT1BFTl9FWElTVElORywgMCwgbnVsbHB0cikpOwor KyAgaWYgKCFjaGlsZF9zdGRvdXRfaGFuZGxlXy5Jc1ZhbGlkKCkpIHsKKysgICAgUExPRyhFUlJP UikgPDwgIkNvdWxkIG5vdCBvcGVuIGNoaWxkIHN0ZG91dCBmaWxlIjsKKysgICAgcmV0dXJuIGZh bHNlOworKyAgfQorKworKyAgcmV0dXJuIHRydWU7CisrfQorKworK3ZvaWQgQ2hpbGRQcm9jZXNz TG9nZ2VyOjpVcGRhdGVMYXVuY2hPcHRpb25zKAorKyAgICBiYXNlOjpMYXVuY2hPcHRpb25zKiBv cHRpb25zKSBjb25zdCB7CisrICBEQ0hFQ0soY2hpbGRfc3Rkb3V0X2hhbmRsZV8uSXNWYWxpZCgp KTsKKysgIG9wdGlvbnMtPmhhbmRsZXNfdG9faW5oZXJpdC5wdXNoX2JhY2soY2hpbGRfc3Rkb3V0 X2hhbmRsZV8uR2V0KCkpOworKyAgb3B0aW9ucy0+c3RkaW5faGFuZGxlID0gSU5WQUxJRF9IQU5E TEVfVkFMVUU7CisrICBvcHRpb25zLT5zdGRvdXRfaGFuZGxlID0gY2hpbGRfc3Rkb3V0X2hhbmRs ZV8uR2V0KCk7CisrICBvcHRpb25zLT5zdGRlcnJfaGFuZGxlID0gY2hpbGRfc3Rkb3V0X2hhbmRs ZV8uR2V0KCk7CisrfQorKworK3ZvaWQgQ2hpbGRQcm9jZXNzTG9nZ2VyOjpVcGRhdGVTYW5kYm94 UG9saWN5KAorKyAgICBzYW5kYm94OjpUYXJnZXRQb2xpY3kqIHBvbGljeSkgY29uc3QgeworKyAg RENIRUNLKGNoaWxkX3N0ZG91dF9oYW5kbGVfLklzVmFsaWQoKSk7CisrICBwb2xpY3ktPlNldFN0 ZG91dEhhbmRsZShjaGlsZF9zdGRvdXRfaGFuZGxlXy5HZXQoKSk7CisrICBwb2xpY3ktPlNldFN0 ZGVyckhhbmRsZShjaGlsZF9zdGRvdXRfaGFuZGxlXy5HZXQoKSk7CisrfQorKworK3ZvaWQgQ2hp bGRQcm9jZXNzTG9nZ2VyOjpEdW1wTG9ncygpIGNvbnN0IHsKKysgIERDSEVDSyghdGVtcF9maWxl X25hbWVfLmVtcHR5KCkpOworKworKyAgaWYgKCFiYXNlOjpQYXRoRXhpc3RzKHRlbXBfZmlsZV9u YW1lXykpIHsKKysgICAgTE9HKEVSUk9SKSA8PCAiQ2hpbGQgcHJvY2VzcyBsb2cgZmlsZSBkb2Vz bid0IGV4aXN0IjsKKysgICAgcmV0dXJuOworKyAgfQorKworKyAgLy8gQ29sbGVjdCB0aGUgY2hp bGQgcHJvY2VzcyBsb2cgZmlsZSwgYW5kIGR1bXAgdGhlIGNvbnRlbnRzLCB0byBoZWxwCisrICAv LyBkZWJ1Z2dpbmcgZmFpbHVyZXMuCisrICBzdGQ6OnN0cmluZyBsb2dfZmlsZV9jb250ZW50czsK KysgIGlmICghYmFzZTo6UmVhZEZpbGVUb1N0cmluZyh0ZW1wX2ZpbGVfbmFtZV8sICZsb2dfZmls ZV9jb250ZW50cykpIHsKKysgICAgTE9HKEVSUk9SKSA8PCAiRmFpbGVkIHRvIHJlYWQgY2hpbGQg cHJvY2VzcyBsb2cgZmlsZSI7CisrICAgIHJldHVybjsKKysgIH0KKysKKysgIHN0ZDo6dmVjdG9y PGJhc2U6OlN0cmluZ1BpZWNlPiBsaW5lcyA9CisrICAgICAgYmFzZTo6U3BsaXRTdHJpbmdQaWVj ZShsb2dfZmlsZV9jb250ZW50cywgIlxuIiwgYmFzZTo6VFJJTV9XSElURVNQQUNFLAorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgYmFzZTo6U1BMSVRfV0FOVF9OT05FTVBUWSk7CisrICBM T0coRVJST1IpIDw8ICJEdW1waW5nIGNoaWxkIHByb2Nlc3MgbG9ncyI7CisrICBmb3IgKGNvbnN0 IGF1dG8mIGxpbmUgOiBsaW5lcykgeworKyAgICBMT0coRVJST1IpIDw8ICJDaGlsZCBwcm9jZXNz OiAiIDw8IGxpbmU7CisrICB9CisrfQorKworK30gIC8vIG5hbWVzcGFjZSBjaHJvbWVfY2xlYW5l cgorZGlmZiAtLWdpdCBhL2Nocm9tZS9jaHJvbWVfY2xlYW5lci90ZXN0L2NoaWxkX3Byb2Nlc3Nf bG9nZ2VyLmggYi9jaHJvbWUvY2hyb21lX2NsZWFuZXIvdGVzdC9jaGlsZF9wcm9jZXNzX2xvZ2dl ci5oCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMDAwMDAwMC4uMjE1ZmE5MTFk Nzg5OQorLS0tIC9kZXYvbnVsbAorKysrIGIvY2hyb21lL2Nocm9tZV9jbGVhbmVyL3Rlc3QvY2hp bGRfcHJvY2Vzc19sb2dnZXIuaAorQEAgLTAsMCArMSw2MiBAQAorKy8vIENvcHlyaWdodCAyMDE5 IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorKy8vIFVzZSBvZiB0 aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBj YW4gYmUKKysvLyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorKworKyNpZm5kZWYgQ0hST01F X0NIUk9NRV9DTEVBTkVSX1RFU1RfQ0hJTERfUFJPQ0VTU19MT0dHRVJfSF8KKysjZGVmaW5lIENI Uk9NRV9DSFJPTUVfQ0xFQU5FUl9URVNUX0NISUxEX1BST0NFU1NfTE9HR0VSX0hfCisrCisrI2lu Y2x1ZGUgImJhc2UvZmlsZXMvc2NvcGVkX3RlbXBfZGlyLmgiCisrI2luY2x1ZGUgImJhc2UvcHJv Y2Vzcy9sYXVuY2guaCIKKysjaW5jbHVkZSAiYmFzZS93aW4vc2NvcGVkX2hhbmRsZS5oIgorKyNp bmNsdWRlICJzYW5kYm94L3dpbi9zcmMvc2FuZGJveF9wb2xpY3kuaCIKKysKKytuYW1lc3BhY2Ug Y2hyb21lX2NsZWFuZXIgeworKworKy8vIFJlZGlyZWN0cyBzdGRpbiBhbmQgc3Rkb3V0IG9mIGEg Y2hpbGQgcHJvY2VzcyB0byBhIHRlbXAgZmlsZS4gVGVzdHMgdGhhdAorKy8vIHNwYXduIGNoaWxk cmVuIGNhbiBhZGQgdGhlIGNvbnRlbnRzIG9mIHRoZSB0ZW1wIGZpbGUgdG8gdGhlIHRlc3Qgb3V0 cHV0LgorKy8vCisrLy8gTm90ZSB0aGF0IGlmIHRoZSBjaGlsZCBwcm9jZXNzIHNldHMgdXAgU2Nv cGVkTG9nZ2luZywgRVJST1IgYW5kIEZBVEFMIGxldmVsCisrLy8gbG9ncyB3aWxsIHN0aWxsIGJl IGNhcHR1cmVkIGJ5IHRoaXMsIGJ1dCBvdGhlciBsb2dzIHdpbGwgc3RhcnQgZ29pbmcgdG8gdGhl CisrLy8gU2NvcGVkTG9nZ2luZyBsb2cgZmlsZS4gdGVzdF9tYWluLmNjIHNldHMgdXAgU2NvcGVk TG9nZ2luZyBzbyB1c3VhbGx5IHRoaXMKKysvLyBjbGFzcyB3aWxsIGNhcHR1cmU6CisrLy8KKysv LyAxLiBBbGwgbG9nIGxpbmVzIGZyb20gYmVmb3JlIHRoZSBTY29wZWRMb2dnaW5nIGNvbnN0cnVj dG9yLgorKy8vIDIuIEVSUk9SIGFuZCBGQVRBTCBsb2cgbGluZXMgZnJvbSBhZnRlciB0aGF0Lgor Ky8vIDMuIHN0ZG91dCBhbmQgc3RkZXJyIG91dHB1dCB0aGF0IGRvZXNuJ3QgZ28gdGhyb3VnaCB0 aGUgbG9nZ2luZyBzeXN0ZW0uCisrLy8gNC4gU3RhY2sgdHJhY2VzIGZyb20gYW55IGNyYXNoZXMu CisrLy8KKysvLyBUaGlzIHNob3VsZCBiZSBhbGwgdGhhdCdzIG5lZWRlZCB0byBkaWFnbm9zZSBl cnJvcnMgaW4gdGVzdHMuCisrY2xhc3MgQ2hpbGRQcm9jZXNzTG9nZ2VyIHsKKysgcHVibGljOgor KyAgQ2hpbGRQcm9jZXNzTG9nZ2VyKCk7CisrICB+Q2hpbGRQcm9jZXNzTG9nZ2VyKCk7CisrCisr ICAvLyBDcmVhdGVzIGEgdGVtcCBmaWxlIGZvciBjaGlsZCBwcm9jZXNzZXMgdG8gbG9nIHRvLiBM b2dzIGFuIGVycm9yIGFuZAorKyAgLy8gcmV0dXJucyBmYWxzZSBvbiBmYWlsdXJlLgorKyAgYm9v bCBJbml0aWFsaXplKCk7CisrCisrICAvLyBVcGRhdGVzIHxvcHRpb25zfCB0byBkaXJlY3QgdGhl IGNoaWxkIHN0ZG91dCBhbmQgc3RkZXJyIHRvIHRoZSB0ZW1wIGZpbGUuCisrICAvLyBGb3IgdXNl IHdpdGggYmFzZTo6TGF1bmNoUHJvY2VzcyBhbmQgYmFzZTo6U3Bhd25NdWx0aVByb2Nlc3NUZXN0 Q2hpbGQuCisrICB2b2lkIFVwZGF0ZUxhdW5jaE9wdGlvbnMoYmFzZTo6TGF1bmNoT3B0aW9ucyog b3B0aW9ucykgY29uc3Q7CisrCisrICAvLyBVcGRhdGVzIHxwb2xpY3l8IHRvIGRpcmVjdCB0aGUg Y2hpbGQgc3Rkb3V0IGFuZCBzdGRlcnIgdG8gdGhlIHRlbXAgZmlsZS4KKysgIC8vIEZvciB1c2Ug d2l0aCBzYW5kYm94OjpCcm9rZXJTZXJ2aWNlczo6U3Bhd25UYXJnZXQuCisrICB2b2lkIFVwZGF0 ZVNhbmRib3hQb2xpY3koc2FuZGJveDo6VGFyZ2V0UG9saWN5KiBwb2xpY3kpIGNvbnN0OworKwor KyAgLy8gV3JpdGVzIGV2ZXJ5IGxpbmUgaW4gdGhlIHRlbXAgZmlsZSB1c2luZyBMT0coRVJST1Ip IHNvIHRoYXQgYWxsIGxpbmVzIGFyZQorKyAgLy8gY2FwdHVyZWQgaW4gdGhlIHRlc3Qgc3VpdGUg b3V0cHV0LiBUaGUgY2xhc3MtbGV2ZWwgY29tbWVudCBhYm92ZSBkZXNjcmliZXMKKysgIC8vIHdo aWNoIGxvZyBsaW5lcyBmcm9tIHRoZSBjaGlsZCB3aWxsIGJlIGNhcHR1cmVkLgorKyAgdm9pZCBE dW1wTG9ncygpIGNvbnN0OworKworKyBwcml2YXRlOgorKyAgQ2hpbGRQcm9jZXNzTG9nZ2VyKGNv bnN0IENoaWxkUHJvY2Vzc0xvZ2dlciYgb3RoZXIpID0gZGVsZXRlOworKyAgQ2hpbGRQcm9jZXNz TG9nZ2VyJiBvcGVyYXRvcj0oY29uc3QgQ2hpbGRQcm9jZXNzTG9nZ2VyJiBvdGhlcikgPSBkZWxl dGU7CisrCisrICBiYXNlOjpTY29wZWRUZW1wRGlyIHRlbXBfZGlyXzsKKysgIGJhc2U6OkZpbGVQ YXRoIHRlbXBfZmlsZV9uYW1lXzsKKysgIGJhc2U6Ondpbjo6U2NvcGVkSGFuZGxlIGNoaWxkX3N0 ZG91dF9oYW5kbGVfOworK307CisrCisrfSAgLy8gbmFtZXNwYWNlIGNocm9tZV9jbGVhbmVyCisr CisrI2VuZGlmICAvLyBDSFJPTUVfQ0hST01FX0NMRUFORVJfVEVTVF9DSElMRF9QUk9DRVNTX0xP R0dFUl9IXworZGlmZiAtLWdpdCBhL2Nocm9tZS9jaHJvbWVfY2xlYW5lci90ZXN0L2NsZWFuZXJf dGVzdC5jYyBiL2Nocm9tZS9jaHJvbWVfY2xlYW5lci90ZXN0L2NsZWFuZXJfdGVzdC5jYworaW5k ZXggZDZkZjE3ZTM1MTZmMS4uZjc3ODEwM2JmZGFkMyAxMDA2NDQKKy0tLSBhL2Nocm9tZS9jaHJv bWVfY2xlYW5lci90ZXN0L2NsZWFuZXJfdGVzdC5jYworKysrIGIvY2hyb21lL2Nocm9tZV9jbGVh bmVyL3Rlc3QvY2xlYW5lcl90ZXN0LmNjCitAQCAtMjQsNiArMjQsNyBAQAorICNpbmNsdWRlICJj aHJvbWUvY2hyb21lX2NsZWFuZXIvb3MvcHJlX2ZldGNoZWRfcGF0aHMuaCIKKyAjaW5jbHVkZSAi Y2hyb21lL2Nocm9tZV9jbGVhbmVyL3B1cF9kYXRhL3B1cF9kYXRhLmgiCisgI2luY2x1ZGUgImNo cm9tZS9jaHJvbWVfY2xlYW5lci9wdXBfZGF0YS90ZXN0X3V3cy5oIgorKyNpbmNsdWRlICJjaHJv bWUvY2hyb21lX2NsZWFuZXIvdGVzdC9jaGlsZF9wcm9jZXNzX2xvZ2dlci5oIgorICNpbmNsdWRl ICJjaHJvbWUvY2hyb21lX2NsZWFuZXIvdGVzdC90ZXN0X3V0aWwuaCIKKyAjaW5jbHVkZSAiY2hy b21lL2Nocm9tZV9jbGVhbmVyL3ppcF9hcmNoaXZlci9zYW5kYm94ZWRfemlwX2FyY2hpdmVyLmgi CisgI2luY2x1ZGUgImNvbXBvbmVudHMvY2hyb21lX2NsZWFuZXIvcHVibGljL2NvbnN0YW50cy9j b25zdGFudHMuaCIKK0BAIC0zMTEsOCArMzEyLDE0IEBAIGNsYXNzIENsZWFuZXJUZXN0CisgCisg ICB2b2lkIEV4cGVjdEV4aXRDb2RlKGNvbnN0IGJhc2U6OkNvbW1hbmRMaW5lJiBjb21tYW5kX2xp bmUsCisgICAgICAgICAgICAgICAgICAgICAgIGludCBleHBlY3RlZF9leGl0X2NvZGUpIHsKKy0g ICAgYmFzZTo6UHJvY2VzcyBwcm9jZXNzKAorLSAgICAgICAgYmFzZTo6TGF1bmNoUHJvY2Vzcyhj b21tYW5kX2xpbmUsIGJhc2U6OkxhdW5jaE9wdGlvbnMoKSkpOworKyAgICBjaHJvbWVfY2xlYW5l cjo6Q2hpbGRQcm9jZXNzTG9nZ2VyIGxvZ2dlcjsKKysgICAgQVNTRVJUX1RSVUUobG9nZ2VyLklu aXRpYWxpemUoKSk7CisrCisrICAgIGJhc2U6OkxhdW5jaE9wdGlvbnMgb3B0aW9uczsKKysgICAg bG9nZ2VyLlVwZGF0ZUxhdW5jaE9wdGlvbnMoJm9wdGlvbnMpOworKyAgICBiYXNlOjpQcm9jZXNz IHByb2Nlc3MoYmFzZTo6TGF1bmNoUHJvY2Vzcyhjb21tYW5kX2xpbmUsIG9wdGlvbnMpKTsKKysg ICAgaWYgKCFwcm9jZXNzLklzVmFsaWQoKSkKKysgICAgICBsb2dnZXIuRHVtcExvZ3MoKTsKKyAg ICAgQVNTRVJUX1RSVUUocHJvY2Vzcy5Jc1ZhbGlkKCkpOworIAorICAgICBpbnQgZXhpdF9jb2Rl ID0gLTE7CitAQCAtMzIwLDcgKzMyNyw4IEBAIGNsYXNzIENsZWFuZXJUZXN0CisgICAgICAgICBi YXNlOjpUaW1lRGVsdGE6OkZyb21NaW51dGVzKDEwKSwgJmV4aXRfY29kZSk7CisgICAgIEVYUEVD VF9UUlVFKGV4aXRlZF93aXRoaW5fdGltZW91dCk7CisgICAgIEVYUEVDVF9FUShleHBlY3RlZF9l eGl0X2NvZGUsIGV4aXRfY29kZSk7CistCisrICAgIGlmICghZXhpdGVkX3dpdGhpbl90aW1lb3V0 IHx8IGV4cGVjdGVkX2V4aXRfY29kZSAhPSBleGl0X2NvZGUpCisrICAgICAgbG9nZ2VyLkR1bXBM b2dzKCk7CisgICAgIGlmICghZXhpdGVkX3dpdGhpbl90aW1lb3V0KQorICAgICAgIHByb2Nlc3Mu VGVybWluYXRlKC8qZXhpdF9jb2RlPSovLTEsIC8qd2FpdD0qL2ZhbHNlKTsKKyAgIH0KK2RpZmYg LS1naXQgYS9jaHJvbWUvY2hyb21lX2NsZWFuZXIvdGVzdC9zZWN1cmVfZGxsX2xvYWRpbmdfdGVz dC5jYyBiL2Nocm9tZS9jaHJvbWVfY2xlYW5lci90ZXN0L3NlY3VyZV9kbGxfbG9hZGluZ190ZXN0 LmNjCitpbmRleCBmZTEwYzQ0MzQ2YjVlLi45MmUyZGIxOWZkZTZjIDEwMDY0NAorLS0tIGEvY2hy b21lL2Nocm9tZV9jbGVhbmVyL3Rlc3Qvc2VjdXJlX2RsbF9sb2FkaW5nX3Rlc3QuY2MKKysrKyBi L2Nocm9tZS9jaHJvbWVfY2xlYW5lci90ZXN0L3NlY3VyZV9kbGxfbG9hZGluZ190ZXN0LmNjCitA QCAtOCwyMiArOCwxNyBAQAorIAorICNpbmNsdWRlIDxtZW1vcnk+CisgI2luY2x1ZGUgPHNldD4K Ky0jaW5jbHVkZSA8c3RyaW5nPgorICNpbmNsdWRlIDx2ZWN0b3I+CisgCisgI2luY2x1ZGUgImJh c2UvYmFzZV9wYXRocy5oIgorICNpbmNsdWRlICJiYXNlL2NvbW1hbmRfbGluZS5oIgorICNpbmNs dWRlICJiYXNlL2ZpbGVzL2ZpbGVfcGF0aC5oIgorLSNpbmNsdWRlICJiYXNlL2ZpbGVzL2ZpbGVf dXRpbC5oIgorLSNpbmNsdWRlICJiYXNlL2ZpbGVzL3Njb3BlZF90ZW1wX2Rpci5oIgorICNpbmNs dWRlICJiYXNlL2xvZ2dpbmcuaCIKKyAjaW5jbHVkZSAiYmFzZS9wYXRoX3NlcnZpY2UuaCIKKyAj aW5jbHVkZSAiYmFzZS9wcm9jZXNzL2xhdW5jaC5oIgorICNpbmNsdWRlICJiYXNlL3Byb2Nlc3Mv cHJvY2Vzcy5oIgorICNpbmNsdWRlICJiYXNlL3N0cmluZ3Mvc3RyaW5nMTYuaCIKKyAjaW5jbHVk ZSAiYmFzZS9zdHJpbmdzL3N0cmluZ19udW1iZXJfY29udmVyc2lvbnMuaCIKKy0jaW5jbHVkZSAi YmFzZS9zdHJpbmdzL3N0cmluZ19waWVjZS5oIgorLSNpbmNsdWRlICJiYXNlL3N0cmluZ3Mvc3Ry aW5nX3NwbGl0LmgiCisgI2luY2x1ZGUgImJhc2Uvc3RyaW5ncy9zdHJpbmdfdXRpbC5oIgorICNp bmNsdWRlICJiYXNlL3N5bmNocm9uaXphdGlvbi93YWl0YWJsZV9ldmVudC5oIgorICNpbmNsdWRl ICJiYXNlL3Rlc3QvdGVzdF90aW1lb3V0cy5oIgorQEAgLTMyLDU0ICsyNywxNiBAQAorICNpbmNs dWRlICJjaHJvbWUvY2hyb21lX2NsZWFuZXIvY29uc3RhbnRzL2Nocm9tZV9jbGVhbmVyX3N3aXRj aGVzLmgiCisgI2luY2x1ZGUgImNocm9tZS9jaHJvbWVfY2xlYW5lci9vcy9pbmhlcml0YWJsZV9l dmVudC5oIgorICNpbmNsdWRlICJjaHJvbWUvY2hyb21lX2NsZWFuZXIvb3MvcHJvY2Vzcy5oIgor KyNpbmNsdWRlICJjaHJvbWUvY2hyb21lX2NsZWFuZXIvdGVzdC9jaGlsZF9wcm9jZXNzX2xvZ2dl ci5oIgorICNpbmNsdWRlICJjaHJvbWUvY2hyb21lX2NsZWFuZXIvdGVzdC90ZXN0X3V0aWwuaCIK KyAjaW5jbHVkZSAiY29tcG9uZW50cy9jaHJvbWVfY2xlYW5lci9wdWJsaWMvY29uc3RhbnRzL2Nv bnN0YW50cy5oIgorICNpbmNsdWRlICJjb21wb25lbnRzL2Nocm9tZV9jbGVhbmVyL3Rlc3QvdGVz dF9uYW1lX2hlbHBlci5oIgorICNpbmNsdWRlICJ0ZXN0aW5nL2d0ZXN0L2luY2x1ZGUvZ3Rlc3Qv Z3Rlc3QuaCIKKyAKKy1uYW1lc3BhY2UgeworLQorLXZvaWQgUHJpbnRDaGlsZFByb2Nlc3NMb2dz KGNvbnN0IGJhc2U6OkZpbGVQYXRoJiBsb2dfZGlyLAorLSAgICAgICAgICAgICAgICAgICAgICAg ICAgIGJhc2U6OlN0cmluZ1BpZWNlMTYgZmlsZV9uYW1lKSB7CistICBiYXNlOjpzdHJpbmcxNiBi YXNlX25hbWU7CistICBpZiAoZmlsZV9uYW1lID09IEwic29mdHdhcmVfcmVwb3J0ZXJfdG9vbCIp IHsKKy0gICAgYmFzZV9uYW1lID0gTCJzb2Z0d2FyZV9yZXBvcnRlcl90b29sIjsKKy0gIH0gZWxz ZSBpZiAoZmlsZV9uYW1lID09IEwiY2hyb21lX2NsZWFudXBfdG9vbCIpIHsKKy0gICAgYmFzZV9u YW1lID0gTCJjaHJvbWVfY2xlYW51cCI7CistICB9IGVsc2UgeworLSAgICBMT0coRVJST1IpIDw8 ICJVbmtub3duIGZpbGUgbmFtZSAiIDw8IGZpbGVfbmFtZS5kYXRhKCk7CistICAgIHJldHVybjsK Ky0gIH0KKy0KKy0gIGJhc2U6OkZpbGVQYXRoIGxvZ19wYXRoID0gbG9nX2Rpci5BcHBlbmQoYmFz ZV9uYW1lKS5BZGRFeHRlbnNpb24oTCJsb2ciKTsKKy0KKy0gIGlmICghYmFzZTo6UGF0aEV4aXN0 cyhsb2dfcGF0aCkpIHsKKy0gICAgTE9HKEVSUk9SKSA8PCAiQ2hpbGQgcHJvY2VzcyBsb2cgZmls ZSBkb2Vzbid0IGV4aXN0IjsKKy0gICAgcmV0dXJuOworLSAgfQorLQorLSAgLy8gQ29sbGVjdCB0 aGUgY2hpbGQgcHJvY2VzcyBsb2cgZmlsZSwgYW5kIGR1bXAgdGhlIGNvbnRlbnRzLCB0byBoZWxw CistICAvLyBkZWJ1Z2dpbmcgZmFpbHVyZXMuCistICBzdGQ6OnN0cmluZyBsb2dfZmlsZV9jb250 ZW50czsKKy0gIGlmICghYmFzZTo6UmVhZEZpbGVUb1N0cmluZyhsb2dfcGF0aCwgJmxvZ19maWxl X2NvbnRlbnRzKSkgeworLSAgICBMT0coRVJST1IpIDw8ICJGYWlsZWQgdG8gcmVhZCBjaGlsZCBw cm9jZXNzIGxvZyBmaWxlIjsKKy0gICAgcmV0dXJuOworLSAgfQorLQorLSAgc3RkOjp2ZWN0b3I8 YmFzZTo6U3RyaW5nUGllY2U+IGxpbmVzID0KKy0gICAgICBiYXNlOjpTcGxpdFN0cmluZ1BpZWNl KGxvZ19maWxlX2NvbnRlbnRzLCAiXG4iLCBiYXNlOjpUUklNX1dISVRFU1BBQ0UsCistICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBiYXNlOjpTUExJVF9XQU5UX05PTkVNUFRZKTsKKy0gIExP RyhFUlJPUikgPDwgIkR1bXBpbmcgY2hpbGQgcHJvY2VzcyBsb2dzIjsKKy0gIGZvciAoY29uc3Qg YXV0byYgbGluZSA6IGxpbmVzKSB7CistICAgIExPRyhFUlJPUikgPDwgIkNoaWxkIHByb2Nlc3M6 ICIgPDwgbGluZTsKKy0gIH0KKy19CistCistfSAgLy8gbmFtZXNwYWNlCistCisgY2xhc3MgU2Vj dXJlRExMTG9hZGluZ1Rlc3QgOiBwdWJsaWMgdGVzdGluZzo6VGVzdFdpdGhQYXJhbTxiYXNlOjpz dHJpbmcxNj4geworICBwcm90ZWN0ZWQ6CisgICB2b2lkIFNldFVwKCkgb3ZlcnJpZGUgeworKyAg ICBBU1NFUlRfVFJVRShjaGlsZF9wcm9jZXNzX2xvZ2dlcl8uSW5pdGlhbGl6ZSgpKTsKKyAgICAg YmFzZTo6RmlsZVBhdGggb3V0X2RpcjsKKyAgICAgQVNTRVJUX1RSVUUoYmFzZTo6UGF0aFNlcnZp Y2U6OkdldChiYXNlOjpESVJfRVhFLCAmb3V0X2RpcikpOworICAgICBleGVfcGF0aF8gPSBvdXRf ZGlyLkFwcGVuZChHZXRQYXJhbSgpICsgTCIuZXhlIik7CitAQCAtMTA0LDggKzYxLDYgQEAgY2xh c3MgU2VjdXJlRExMTG9hZGluZ1Rlc3QgOiBwdWJsaWMgdGVzdGluZzo6VGVzdFdpdGhQYXJhbTxi YXNlOjpzdHJpbmcxNj4geworICAgICAgICAgYmFzZTo6TnVtYmVyVG9TdHJpbmcxNigKKyAgICAg ICAgICAgICBiYXNlOjp3aW46OkhhbmRsZVRvVWludDMyKGluaXRfZG9uZV9ub3RpZmllci0+aGFu ZGxlKCkpKSk7CisgICAgIGNvbW1hbmRfbGluZS5BcHBlbmRTd2l0Y2goY2hyb21lX2NsZWFuZXI6 OmtMb2FkRW1wdHlETExTd2l0Y2gpOworLSAgICBjb21tYW5kX2xpbmUuQXBwZW5kU3dpdGNoUGF0 aChjaHJvbWVfY2xlYW5lcjo6a1Rlc3RMb2dnaW5nUGF0aFN3aXRjaCwKKy0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgbG9nX2Rpci5HZXRQYXRoKCkpOworIAorICNpZiAhQlVJTERG TEFHKElTX09GRklDSUFMX0NIUk9NRV9DTEVBTkVSX0JVSUxEKQorICAgICBpZiAoZGlzYWJsZV9z ZWN1cmVfZGxsX2xvYWRpbmcpCitAQCAtMTIxLDcgKzc2LDEyIEBAIGNsYXNzIFNlY3VyZURMTExv YWRpbmdUZXN0IDogcHVibGljIHRlc3Rpbmc6OlRlc3RXaXRoUGFyYW08YmFzZTo6c3RyaW5nMTY+ IHsKKyAKKyAgICAgYmFzZTo6TGF1bmNoT3B0aW9ucyBvcHRpb25zOworICAgICBvcHRpb25zLmhh bmRsZXNfdG9faW5oZXJpdC5wdXNoX2JhY2soaW5pdF9kb25lX25vdGlmaWVyLT5oYW5kbGUoKSk7 CisrICAgIGNoaWxkX3Byb2Nlc3NfbG9nZ2VyXy5VcGRhdGVMYXVuY2hPcHRpb25zKCZvcHRpb25z KTsKKyAgICAgYmFzZTo6UHJvY2VzcyBwcm9jZXNzID0gYmFzZTo6TGF1bmNoUHJvY2Vzcyhjb21t YW5kX2xpbmUsIG9wdGlvbnMpOworKyAgICBpZiAoIXByb2Nlc3MuSXNWYWxpZCgpKSB7CisrICAg ICAgY2hpbGRfcHJvY2Vzc19sb2dnZXJfLkR1bXBMb2dzKCk7CisrICAgICAgcmV0dXJuIHByb2Nl c3M7CisrICAgIH0KKyAKKyAgICAgLy8gTWFrZSBzdXJlIHRoZSBwcm9jZXNzIGhhcyBmaW5pc2hl ZCBpdHMgaW5pdGlhbGl6YXRpb24gKGluY2x1ZGluZyBsb2FkaW5nCisgICAgIC8vIERMTHMpLiBB bHNvIGNoZWNrIHRoZSBwcm9jZXNzIGhhbmRsZSBpbiBjYXNlIGl0IGV4aXRzIHdpdGggYW4gZXJy b3IuCitAQCAtMTM2LDcgKzk2LDcgQEAgY2xhc3MgU2VjdXJlRExMTG9hZGluZ1Rlc3QgOiBwdWJs aWMgdGVzdGluZzo6VGVzdFdpdGhQYXJhbTxiYXNlOjpzdHJpbmcxNj4geworICAgICAgIFBMT0df SUYoRVJST1IsICE6OkdldEV4aXRDb2RlUHJvY2Vzcyhwcm9jZXNzLkhhbmRsZSgpLCAmZXhpdF9j b2RlKSk7CisgICAgICAgQUREX0ZBSUxVUkUoKSA8PCAiUHJvY2VzcyBleGl0ZWQgd2l0aCAiIDw8 IGV4aXRfY29kZQorICAgICAgICAgICAgICAgICAgICAgPDwgIiBiZWZvcmUgc2lnbmFsbGluZyBp bml0X2RvbmVfbm90aWZpZXIiOworLSAgICAgIFByaW50Q2hpbGRQcm9jZXNzTG9ncyhsb2dfZGly LkdldFBhdGgoKSwgR2V0UGFyYW0oKSk7CisrICAgICAgY2hpbGRfcHJvY2Vzc19sb2dnZXJfLkR1 bXBMb2dzKCk7CisgICAgIH0gZWxzZSB7CisgICAgICAgRVhQRUNUX0VRKHdhaXRfcmVzdWx0LCBX QUlUX09CSkVDVF8wKTsKKyAgICAgfQorQEAgLTE1Nyw2ICsxMTcsNyBAQCBjbGFzcyBTZWN1cmVE TExMb2FkaW5nVGVzdCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0V2l0aFBhcmFtPGJhc2U6OnN0cmlu ZzE2PiB7CisgICB9CisgCisgIHByaXZhdGU6CisrICBjaHJvbWVfY2xlYW5lcjo6Q2hpbGRQcm9j ZXNzTG9nZ2VyIGNoaWxkX3Byb2Nlc3NfbG9nZ2VyXzsKKyAgIGJhc2U6OkZpbGVQYXRoIGV4ZV9w YXRoXzsKKyAgIGJhc2U6OkZpbGVQYXRoIGVtcHR5X2RsbF9wYXRoXzsKKyB9OwpkaWZmIC0tZ2l0 IGEvc3JjcGtncy9lbGVjdHJvbjcvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS0wMDQtdXBzdHJlYW1f dXNlX2NoaWxkcHJvY2Vzc2xvZ2dlci5wYXRjaC5wYXRjaCBiL3NyY3BrZ3MvZWxlY3Ryb243L2Zp bGVzL3BhdGNoZXMvY2hyb21pdW0tMDA0LXVwc3RyZWFtX3VzZV9jaGlsZHByb2Nlc3Nsb2dnZXIu cGF0Y2gucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjZhMmE0 ODkzZDQ0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9lbGVjdHJvbjcvZmlsZXMvcGF0Y2hl cy9jaHJvbWl1bS0wMDQtdXBzdHJlYW1fdXNlX2NoaWxkcHJvY2Vzc2xvZ2dlci5wYXRjaC5wYXRj aApAQCAtMCwwICsxLDE4NiBAQAorRnJvbSA4OTA5NTZiZTE0OTZiNjI1OTY3ZGYwYmJmNjIwZThm YzRhZWZiMzkwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogSm9lIE1hc29uIDxqb2Vu b3RjaGFybGVzQGdvb2dsZS5jb20+CitEYXRlOiBXZWQsIDQgRGVjIDIwMTkgMTg6MjI6MzQgKzAw MDAKK1N1YmplY3Q6IFtQQVRDSF0gVXNlIENoaWxkUHJvY2Vzc0xvZ2dlciBpbiBGaWxlUmVtb3Zl clF1YXJhbnRpbmVUZXN0IGFuZAorIFNhbmRib3hlZFNob3J0Y3V0UGFyc2VyVGVzdAorTUlNRS1W ZXJzaW9uOiAxLjAKK0NvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOAorQ29u dGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAorCitSPeKAi3Byb2JlcmdlCisKKyhjaGVycnkg cGlja2VkIGZyb20gY29tbWl0IDgxNDU4MzgzNGViZjM1ZWRlNWRhZDBiYTM1NzQzNDM4NTFiMWE4 YmQpCisKK0J1ZzogMTAzMDMzMworQ2hhbmdlLUlkOiBJNjZiOWIzZGM3Mzk4MGU4ZWQwM2VlMzdk ODllYjE3MmI1MzMwYzkxMworUmV2aWV3ZWQtb246IGh0dHBzOi8vY2hyb21pdW0tcmV2aWV3Lmdv b2dsZXNvdXJjZS5jb20vYy9jaHJvbWl1bS9zcmMvKy8xOTQ4MjM1CitDb21taXQtUXVldWU6IEpv ZSBNYXNvbiA8am9lbm90Y2hhcmxlc0BjaHJvbWl1bS5vcmc+CitSZXZpZXdlZC1ieTogcHJvYmVy Z2UgPHByb2JlcmdlQGNocm9taXVtLm9yZz4KK0NyLU9yaWdpbmFsLUNvbW1pdC1Qb3NpdGlvbjog cmVmcy9oZWFkcy9tYXN0ZXJAeyM3MjExOTN9CitSZXZpZXdlZC1vbjogaHR0cHM6Ly9jaHJvbWl1 bS1yZXZpZXcuZ29vZ2xlc291cmNlLmNvbS9jL2Nocm9taXVtL3NyYy8rLzE5NDgxMDIKK1Jldmll d2VkLWJ5OiBKb2UgTWFzb24gPGpvZW5vdGNoYXJsZXNAY2hyb21pdW0ub3JnPgorQ3ItQ29tbWl0 LVBvc2l0aW9uOiByZWZzL2JyYW5jaC1oZWFkcy8zOTA0QHsjOTE1fQorQ3ItQnJhbmNoZWQtRnJv bTogNjc1OTY4YThjNjU3YTNiZDljMWMyYzIwYzVkMjkzNTU3N2JiYzVlNi1yZWZzL2hlYWRzL21h c3RlckB7IzY5Mzk1NH0KKy0tLQorIC4uLi9vcy9maWxlX3JlbW92ZXJfdW5pdHRlc3QuY2MgICAg ICAgICAgICAgICB8IDM5ICsrKysrKysrKysrKysrKystLS0KKyAuLi4vcGFyc2Vycy9zaG9ydGN1 dF9wYXJzZXIvYnJva2VyL0JVSUxELmduICAgfCAgMSArCisgLi4uL3NhbmRib3hlZF9zaG9ydGN1 dF9wYXJzZXJfdW5pdHRlc3QuY2MgICAgIHwgMzUgKysrKysrKysrKysrKysrLS0KKyAzIGZpbGVz IGNoYW5nZWQsIDY3IGluc2VydGlvbnMoKyksIDggZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQg YS9jaHJvbWUvY2hyb21lX2NsZWFuZXIvb3MvZmlsZV9yZW1vdmVyX3VuaXR0ZXN0LmNjIGIvY2hy b21lL2Nocm9tZV9jbGVhbmVyL29zL2ZpbGVfcmVtb3Zlcl91bml0dGVzdC5jYworaW5kZXggNTJj OWI0ZjFjNTA4OS4uYzU3OTgzZTgzYzZiOSAxMDA2NDQKKy0tLSBhL2Nocm9tZS9jaHJvbWVfY2xl YW5lci9vcy9maWxlX3JlbW92ZXJfdW5pdHRlc3QuY2MKKysrKyBiL2Nocm9tZS9jaHJvbWVfY2xl YW5lci9vcy9maWxlX3JlbW92ZXJfdW5pdHRlc3QuY2MKK0BAIC0zMCw2ICszMCw3IEBACisgI2lu Y2x1ZGUgImNocm9tZS9jaHJvbWVfY2xlYW5lci9vcy9wcmVfZmV0Y2hlZF9wYXRocy5oIgorICNp bmNsdWRlICJjaHJvbWUvY2hyb21lX2NsZWFuZXIvb3Mvc3lzdGVtX3V0aWwuaCIKKyAjaW5jbHVk ZSAiY2hyb21lL2Nocm9tZV9jbGVhbmVyL29zL3doaXRlbGlzdGVkX2RpcmVjdG9yeS5oIgorKyNp bmNsdWRlICJjaHJvbWUvY2hyb21lX2NsZWFuZXIvdGVzdC9jaGlsZF9wcm9jZXNzX2xvZ2dlci5o IgorICNpbmNsdWRlICJjaHJvbWUvY2hyb21lX2NsZWFuZXIvdGVzdC9maWxlX3JlbW92ZXJfdGVz dF91dGlsLmgiCisgI2luY2x1ZGUgImNocm9tZS9jaHJvbWVfY2xlYW5lci90ZXN0L3JlYm9vdF9k ZWxldGlvbl9oZWxwZXIuaCIKKyAjaW5jbHVkZSAiY2hyb21lL2Nocm9tZV9jbGVhbmVyL3Rlc3Qv cmVzb3VyY2VzL2dyaXQvdGVzdF9yZXNvdXJjZXMuaCIKK0BAIC0zOTgsMjAgKzM5OSw0NyBAQCBj b25zdGV4cHIgd2NoYXJfdCBrVGVzdEV4cGVjdEFyY2hpdmVOYW1lW10gPQorICAgICBMInRlbXBf ZmlsZS5leGVfIgorICAgICBMIkE1OTFBNkQ0MEJGNDIwNDA0QTAxMTczM0NGQjdCMTkwRDYyQzY1 QkYwQkNEQTMyQjU3QjI3N0Q5QUQ5RjE0NkUuemlwIjsKKyAKKytjbGFzcyBMb2dnZWRaaXBBcmNo aXZlclNhbmRib3hTZXR1cEhvb2tzIDogcHVibGljIFppcEFyY2hpdmVyU2FuZGJveFNldHVwSG9v a3MgeworKyBwdWJsaWM6CisrICBleHBsaWNpdCBMb2dnZWRaaXBBcmNoaXZlclNhbmRib3hTZXR1 cEhvb2tzKAorKyAgICAgIHNjb3BlZF9yZWZwdHI8TW9qb1Rhc2tSdW5uZXI+IG1vam9fdGFza19y dW5uZXIsCisrICAgICAgYmFzZTo6T25jZUNsb3N1cmUgY29ubmVjdGlvbl9lcnJvcl9oYW5kbGVy LAorKyAgICAgIGNocm9tZV9jbGVhbmVyOjpDaGlsZFByb2Nlc3NMb2dnZXIqIGNoaWxkX3Byb2Nl c3NfbG9nZ2VyKQorKyAgICAgIDogWmlwQXJjaGl2ZXJTYW5kYm94U2V0dXBIb29rcyhzdGQ6Om1v dmUobW9qb190YXNrX3J1bm5lciksCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHN0ZDo6bW92ZShjb25uZWN0aW9uX2Vycm9yX2hhbmRsZXIpKSwKKysgICAgICAgIGNoaWxk X3Byb2Nlc3NfbG9nZ2VyXyhjaGlsZF9wcm9jZXNzX2xvZ2dlcikge30KKysKKysgIFJlc3VsdENv ZGUgVXBkYXRlU2FuZGJveFBvbGljeShzYW5kYm94OjpUYXJnZXRQb2xpY3kqIHBvbGljeSwKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNlOjpDb21tYW5kTGluZSogY29tbWFu ZF9saW5lKSBvdmVycmlkZSB7CisrICAgIGNoaWxkX3Byb2Nlc3NfbG9nZ2VyXy0+VXBkYXRlU2Fu ZGJveFBvbGljeShwb2xpY3kpOworKyAgICByZXR1cm4gWmlwQXJjaGl2ZXJTYW5kYm94U2V0dXBI b29rczo6VXBkYXRlU2FuZGJveFBvbGljeShwb2xpY3ksCisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbW1hbmRfbGluZSk7Cisr ICB9CisrCisrIHByaXZhdGU6CisrICBjaHJvbWVfY2xlYW5lcjo6Q2hpbGRQcm9jZXNzTG9nZ2Vy KiBjaGlsZF9wcm9jZXNzX2xvZ2dlcl87CisrfTsKKysKKyBjbGFzcyBGaWxlUmVtb3ZlclF1YXJh bnRpbmVUZXN0IDogcHVibGljIGJhc2U6Ok11bHRpUHJvY2Vzc1Rlc3QsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyA6OnRlc3Rpbmc6OldpdGhQYXJhbUludGVyZmFj ZTxib29sPiB7CisgIHB1YmxpYzoKKyAgIHZvaWQgU2V0VXAoKSBvdmVycmlkZSB7CisgICAgIHVz ZV9yZWJvb3RfcmVtb3ZhbF8gPSBHZXRQYXJhbSgpOworIAorKyAgICBBU1NFUlRfVFJVRShjaGls ZF9wcm9jZXNzX2xvZ2dlcl8uSW5pdGlhbGl6ZSgpKTsKKysKKyAgICAgc2NvcGVkX3JlZnB0cjxN b2pvVGFza1J1bm5lcj4gbW9qb190YXNrX3J1bm5lciA9IE1vam9UYXNrUnVubmVyOjpDcmVhdGUo KTsKKy0gICAgWmlwQXJjaGl2ZXJTYW5kYm94U2V0dXBIb29rcyBzZXR1cF9ob29rcygKKysgICAg TG9nZ2VkWmlwQXJjaGl2ZXJTYW5kYm94U2V0dXBIb29rcyBzZXR1cF9ob29rcygKKyAgICAgICAg IG1vam9fdGFza19ydW5uZXIuZ2V0KCksIGJhc2U6OkJpbmRPbmNlKFtdIHsKKyAgICAgICAgICAg RkFJTCgpIDw8ICJaaXBBcmNoaXZlciBzYW5kYm94IGNvbm5lY3Rpb24gZXJyb3IiOworLSAgICAg ICAgfSkpOworLSAgICBBU1NFUlRfRVEoUkVTVUxUX0NPREVfU1VDQ0VTUywKKy0gICAgICAgICAg ICAgIFN0YXJ0U2FuZGJveFRhcmdldChNYWtlQ21kTGluZSgiRmlsZVJlbW92ZXJRdWFyYW50aW5l VGFyZ2V0TWFpbiIpLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZzZXR1cF9o b29rcywgU2FuZGJveFR5cGU6OmtUZXN0KSk7CisrICAgICAgICB9KSwKKysgICAgICAgICZjaGls ZF9wcm9jZXNzX2xvZ2dlcl8pOworKyAgICBSZXN1bHRDb2RlIHJlc3VsdF9jb2RlID0KKysgICAg ICAgIFN0YXJ0U2FuZGJveFRhcmdldChNYWtlQ21kTGluZSgiRmlsZVJlbW92ZXJRdWFyYW50aW5l VGFyZ2V0TWFpbiIpLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICZzZXR1cF9ob29rcywg U2FuZGJveFR5cGU6OmtUZXN0KTsKKysgICAgaWYgKHJlc3VsdF9jb2RlICE9IFJFU1VMVF9DT0RF X1NVQ0NFU1MpCisrICAgICAgY2hpbGRfcHJvY2Vzc19sb2dnZXJfLkR1bXBMb2dzKCk7CisrICAg IEFTU0VSVF9FUShSRVNVTFRfQ09ERV9TVUNDRVNTLCByZXN1bHRfY29kZSk7CisgCisgICAgIEFT U0VSVF9UUlVFKHRlbXBfZGlyXy5DcmVhdGVVbmlxdWVUZW1wRGlyKCkpOworIAorQEAgLTQ0Nyw2 ICs0NzUsNyBAQCBjbGFzcyBGaWxlUmVtb3ZlclF1YXJhbnRpbmVUZXN0IDogcHVibGljIGJhc2U6 Ok11bHRpUHJvY2Vzc1Rlc3QsCisgICBiYXNlOjp0ZXN0OjpTaW5nbGVUaHJlYWRUYXNrRW52aXJv bm1lbnQgdGFza19lbnZpcm9ubWVudF87CisgICBiYXNlOjpTY29wZWRUZW1wRGlyIHRlbXBfZGly XzsKKyAgIHN0ZDo6dW5pcXVlX3B0cjxGaWxlUmVtb3Zlcj4gZmlsZV9yZW1vdmVyXzsKKysgIGNo cm9tZV9jbGVhbmVyOjpDaGlsZFByb2Nlc3NMb2dnZXIgY2hpbGRfcHJvY2Vzc19sb2dnZXJfOwor IH07CisgCisgfSAgLy8gbmFtZXNwYWNlCitkaWZmIC0tZ2l0IGEvY2hyb21lL2Nocm9tZV9jbGVh bmVyL3BhcnNlcnMvc2hvcnRjdXRfcGFyc2VyL2Jyb2tlci9CVUlMRC5nbiBiL2Nocm9tZS9jaHJv bWVfY2xlYW5lci9wYXJzZXJzL3Nob3J0Y3V0X3BhcnNlci9icm9rZXIvQlVJTEQuZ24KK2luZGV4 IGJjN2JhODE4OGM4M2IuLjA5ZWQwN2I3NjFhNGUgMTAwNjQ0CistLS0gYS9jaHJvbWUvY2hyb21l X2NsZWFuZXIvcGFyc2Vycy9zaG9ydGN1dF9wYXJzZXIvYnJva2VyL0JVSUxELmduCisrKysgYi9j aHJvbWUvY2hyb21lX2NsZWFuZXIvcGFyc2Vycy9zaG9ydGN1dF9wYXJzZXIvYnJva2VyL0JVSUxE LmduCitAQCAtNjcsNiArNjcsNyBAQCBzb3VyY2Vfc2V0KCJ1bml0dGVzdF9zb3VyY2VzIikgewor ICAgICAiLy9jaHJvbWUvY2hyb21lX2NsZWFuZXIvcGFyc2Vycy9zaG9ydGN1dF9wYXJzZXI6c2Fu ZGJveGVkX2xua19wYXJzZXJfdGVzdF91dGlsIiwKKyAgICAgIi8vY2hyb21lL2Nocm9tZV9jbGVh bmVyL3BhcnNlcnMvc2hvcnRjdXRfcGFyc2VyL3RhcmdldDpsbmtfcGFyc2VyIiwKKyAgICAgIi8v Y2hyb21lL2Nocm9tZV9jbGVhbmVyL3BhcnNlcnMvdGFyZ2V0OnBhcnNlcl9zYW5kYm94X3Rhcmdl dCIsCisrICAgICIvL2Nocm9tZS9jaHJvbWVfY2xlYW5lci90ZXN0OnRlc3RfdXRpbCIsCisgICAg ICIvL21vam8vcHVibGljL2NwcC9iaW5kaW5nczpiaW5kaW5ncyIsCisgICAgICIvL3NhbmRib3gv d2luOnNhbmRib3giLAorICAgICAiLy90ZXN0aW5nL2d0ZXN0IiwKK2RpZmYgLS1naXQgYS9jaHJv bWUvY2hyb21lX2NsZWFuZXIvcGFyc2Vycy9zaG9ydGN1dF9wYXJzZXIvYnJva2VyL3NhbmRib3hl ZF9zaG9ydGN1dF9wYXJzZXJfdW5pdHRlc3QuY2MgYi9jaHJvbWUvY2hyb21lX2NsZWFuZXIvcGFy c2Vycy9zaG9ydGN1dF9wYXJzZXIvYnJva2VyL3NhbmRib3hlZF9zaG9ydGN1dF9wYXJzZXJfdW5p dHRlc3QuY2MKK2luZGV4IDY0YWM5MWVkOTIwMTYuLjRjMDMzZjIxYzc3YzMgMTAwNjQ0CistLS0g YS9jaHJvbWUvY2hyb21lX2NsZWFuZXIvcGFyc2Vycy9zaG9ydGN1dF9wYXJzZXIvYnJva2VyL3Nh bmRib3hlZF9zaG9ydGN1dF9wYXJzZXJfdW5pdHRlc3QuY2MKKysrKyBiL2Nocm9tZS9jaHJvbWVf Y2xlYW5lci9wYXJzZXJzL3Nob3J0Y3V0X3BhcnNlci9icm9rZXIvc2FuZGJveGVkX3Nob3J0Y3V0 X3BhcnNlcl91bml0dGVzdC5jYworQEAgLTE4LDYgKzE4LDcgQEAKKyAjaW5jbHVkZSAiY2hyb21l L2Nocm9tZV9jbGVhbmVyL3BhcnNlcnMvYnJva2VyL3NhbmRib3hfc2V0dXBfaG9va3MuaCIKKyAj aW5jbHVkZSAiY2hyb21lL2Nocm9tZV9jbGVhbmVyL3BhcnNlcnMvc2hvcnRjdXRfcGFyc2VyL3Nh bmRib3hlZF9sbmtfcGFyc2VyX3Rlc3RfdXRpbC5oIgorICNpbmNsdWRlICJjaHJvbWUvY2hyb21l X2NsZWFuZXIvcGFyc2Vycy90YXJnZXQvc2FuZGJveF9zZXR1cC5oIgorKyNpbmNsdWRlICJjaHJv bWUvY2hyb21lX2NsZWFuZXIvdGVzdC9jaGlsZF9wcm9jZXNzX2xvZ2dlci5oIgorICNpbmNsdWRl ICJtb2pvL3B1YmxpYy9jcHAvYmluZGluZ3MvaW50ZXJmYWNlX3JlcXVlc3QuaCIKKyAjaW5jbHVk ZSAibW9qby9wdWJsaWMvY3BwL3N5c3RlbS9wbGF0Zm9ybV9oYW5kbGUuaCIKKyAjaW5jbHVkZSAi c2FuZGJveC93aW4vc3JjL3NhbmRib3hfZmFjdG9yeS5oIgorQEAgLTMxLDYgKzMyLDI2IEBAIGNv bnN0ZXhwciB1bnNpZ25lZCBpbnQga0RpclF1YW50aXR5ID0gNTsKKyAKKyBjb25zdCBiYXNlOjpz dHJpbmcxNiBrTG5rQXJndW1lbnRzID0gTCItYSAtYiAtYyAtZCBHZW5lcmljRXhhbXBsZSI7Cisg CisrY2xhc3MgTG9nZ2VkUGFyc2VyU2FuZGJveFNldHVwSG9va3MgOiBwdWJsaWMgUGFyc2VyU2Fu ZGJveFNldHVwSG9va3MgeworKyBwdWJsaWM6CisrICBleHBsaWNpdCBMb2dnZWRQYXJzZXJTYW5k Ym94U2V0dXBIb29rcygKKysgICAgICBzY29wZWRfcmVmcHRyPE1vam9UYXNrUnVubmVyPiBtb2pv X3Rhc2tfcnVubmVyLAorKyAgICAgIGJhc2U6Ok9uY2VDbG9zdXJlIGNvbm5lY3Rpb25fZXJyb3Jf aGFuZGxlciwKKysgICAgICBjaHJvbWVfY2xlYW5lcjo6Q2hpbGRQcm9jZXNzTG9nZ2VyKiBjaGls ZF9wcm9jZXNzX2xvZ2dlcikKKysgICAgICA6IFBhcnNlclNhbmRib3hTZXR1cEhvb2tzKHN0ZDo6 bW92ZShtb2pvX3Rhc2tfcnVubmVyKSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHN0ZDo6bW92ZShjb25uZWN0aW9uX2Vycm9yX2hhbmRsZXIpKSwKKysgICAgICAgIGNoaWxkX3By b2Nlc3NfbG9nZ2VyXyhjaGlsZF9wcm9jZXNzX2xvZ2dlcikge30KKysKKysgIFJlc3VsdENvZGUg VXBkYXRlU2FuZGJveFBvbGljeShzYW5kYm94OjpUYXJnZXRQb2xpY3kqIHBvbGljeSwKKysgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNlOjpDb21tYW5kTGluZSogY29tbWFuZF9s aW5lKSBvdmVycmlkZSB7CisrICAgIGNoaWxkX3Byb2Nlc3NfbG9nZ2VyXy0+VXBkYXRlU2FuZGJv eFBvbGljeShwb2xpY3kpOworKyAgICByZXR1cm4gUGFyc2VyU2FuZGJveFNldHVwSG9va3M6OlVw ZGF0ZVNhbmRib3hQb2xpY3kocG9saWN5LCBjb21tYW5kX2xpbmUpOworKyAgfQorKworKyBwcml2 YXRlOgorKyAgY2hyb21lX2NsZWFuZXI6OkNoaWxkUHJvY2Vzc0xvZ2dlciogY2hpbGRfcHJvY2Vz c19sb2dnZXJfOworK307CisrCisgfSAgLy8gbmFtZXNwYWNlCisgCisgY2xhc3MgU2FuZGJveGVk U2hvcnRjdXRQYXJzZXJUZXN0IDogcHVibGljIGJhc2U6Ok11bHRpUHJvY2Vzc1Rlc3QgeworQEAg LTQwLDE0ICs2MSwyMCBAQCBjbGFzcyBTYW5kYm94ZWRTaG9ydGN1dFBhcnNlclRlc3QgOiBwdWJs aWMgYmFzZTo6TXVsdGlQcm9jZXNzVGVzdCB7CisgICAgICAgICB0ZW1wX2RpcnNfd2l0aF9jaHJv bWVfbG5rXyhrRGlyUXVhbnRpdHkpIHt9CisgCisgICB2b2lkIFNldFVwKCkgb3ZlcnJpZGUgewor KyAgICBBU1NFUlRfVFJVRShjaGlsZF9wcm9jZXNzX2xvZ2dlcl8uSW5pdGlhbGl6ZSgpKTsKKysK KyAgICAgbW9qb190YXNrX3J1bm5lcl8gPSBNb2pvVGFza1J1bm5lcjo6Q3JlYXRlKCk7CisgICAg IFBhcnNlclNhbmRib3hTZXR1cEhvb2tzIHNldHVwX2hvb2tzKAorICAgICAgICAgbW9qb190YXNr X3J1bm5lcl8uZ2V0KCksCisgICAgICAgICBiYXNlOjpCaW5kT25jZShbXSB7IEZBSUwoKSA8PCAi UGFyc2VyIHNhbmRib3ggY29ubmVjdGlvbiBlcnJvciI7IH0pKTsKKy0gICAgQVNTRVJUX0VRKAor LSAgICAgICAgUkVTVUxUX0NPREVfU1VDQ0VTUywKKysKKysgICAgUmVzdWx0Q29kZSByZXN1bHRf Y29kZSA9CisgICAgICAgICBTdGFydFNhbmRib3hUYXJnZXQoTWFrZUNtZExpbmUoIlNhbmRib3hl ZFNob3J0Y3V0UGFyc2VyVGFyZ2V0TWFpbiIpLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICZzZXR1cF9ob29rcywgU2FuZGJveFR5cGU6OmtUZXN0KSk7CisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgJnNldHVwX2hvb2tzLCBTYW5kYm94VHlwZTo6a1Rlc3QpOworKyAgICBpZiAocmVz dWx0X2NvZGUgIT0gUkVTVUxUX0NPREVfU1VDQ0VTUykKKysgICAgICBjaGlsZF9wcm9jZXNzX2xv Z2dlcl8uRHVtcExvZ3MoKTsKKysgICAgQVNTRVJUX0VRKFJFU1VMVF9DT0RFX1NVQ0NFU1MsIHJl c3VsdF9jb2RlKTsKKysKKyAgICAgcGFyc2VyX3B0cl8gPSBzZXR1cF9ob29rcy5UYWtlUGFyc2Vy UHRyKCk7CisgICAgIHNob3J0Y3V0X3BhcnNlcl8gPSBzdGQ6Om1ha2VfdW5pcXVlPFNhbmRib3hl ZFNob3J0Y3V0UGFyc2VyPigKKyAgICAgICAgIG1vam9fdGFza19ydW5uZXJfLmdldCgpLCBwYXJz ZXJfcHRyXy5nZXQoKSk7CitAQCAtOTgsNiArMTI1LDggQEAgY2xhc3MgU2FuZGJveGVkU2hvcnRj dXRQYXJzZXJUZXN0IDogcHVibGljIGJhc2U6Ok11bHRpUHJvY2Vzc1Rlc3QgeworICAgYmFzZTo6 RmlsZVBhdGggbm90X2xua19maWxlX3BhdGhfOworIAorICAgYmFzZTo6dGVzdDo6VGFza0Vudmly b25tZW50IHRhc2tfZW52aXJvbm1lbnRfOworKworKyAgY2hyb21lX2NsZWFuZXI6OkNoaWxkUHJv Y2Vzc0xvZ2dlciBjaGlsZF9wcm9jZXNzX2xvZ2dlcl87CisgfTsKKyAKKyBNVUxUSVBST0NFU1Nf VEVTVF9NQUlOKFNhbmRib3hlZFNob3J0Y3V0UGFyc2VyVGFyZ2V0TWFpbikgewpkaWZmIC0tZ2l0 IGEvc3JjcGtncy9lbGVjdHJvbjcvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS0wMDUtdXBzdHJlYW0t Y2hyb21pdW1fdmVyc2lvbi5wYXRjaC5wYXRjaCBiL3NyY3BrZ3MvZWxlY3Ryb243L2ZpbGVzL3Bh dGNoZXMvY2hyb21pdW0tMDA1LXVwc3RyZWFtLWNocm9taXVtX3ZlcnNpb24ucGF0Y2gucGF0Y2gK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjY1YjhlZjRkZjBhCi0tLSAv ZGV2L251bGwKKysrIGIvc3JjcGtncy9lbGVjdHJvbjcvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS0w MDUtdXBzdHJlYW0tY2hyb21pdW1fdmVyc2lvbi5wYXRjaC5wYXRjaApAQCAtMCwwICsxLDI2IEBA CitGcm9tIGMxMTA5YjcwN2IxZWRhNWQ5OGViMmVkNmJkNzQwODNiYzM1MmY0ODIgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCitGcm9tOiBjaHJvbWUtcmVsZWFzZS1ib3QgPGNocm9tZS1yZWxlYXNl LWJvdEBjaHJvbWl1bS5vcmc+CitEYXRlOiBGcmksIDYgRGVjIDIwMTkgMDE6MDk6NTAgKzAwMDAK K1N1YmplY3Q6IFtQQVRDSF0gSW5jcmVtZW50aW5nIFZFUlNJT04gdG8gNzguMC4zOTA0LjEzMAor CitUQlI9Z292aW5kQGNocm9taXVtLm9yZworCitDaGFuZ2UtSWQ6IEliNjc1NjUzZTI2MDVjZjJj MTVlYmRiZDEzMjA0NjViMDhhNDk5OTRkCitSZXZpZXdlZC1vbjogaHR0cHM6Ly9jaHJvbWl1bS1y ZXZpZXcuZ29vZ2xlc291cmNlLmNvbS9jL2Nocm9taXVtL3NyYy8rLzE5NTQ3MDkKK1Jldmlld2Vk LWJ5OiBDaHJvbWUgUmVsZWFzZSBCb3QgKExVQ0kpIDxjaHJvbWUtb2ZmaWNpYWwtYnJhbmNoZXJA Y2hvcHMtc2VydmljZS1hY2NvdW50cy5pYW0uZ3NlcnZpY2VhY2NvdW50LmNvbT4KK0NyLUNvbW1p dC1Qb3NpdGlvbjogcmVmcy9icmFuY2gtaGVhZHMvMzkwNEB7IzkxN30KK0NyLUJyYW5jaGVkLUZy b206IDY3NTk2OGE4YzY1N2EzYmQ5YzFjMmMyMGM1ZDI5MzU1NzdiYmM1ZTYtcmVmcy9oZWFkcy9t YXN0ZXJAeyM2OTM5NTR9CistLS0KKyBjaHJvbWUvVkVSU0lPTiB8IDIgKy0KKyAxIGZpbGUgY2hh bmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKKworZGlmZiAtLWdpdCBhL2Nocm9t ZS9WRVJTSU9OIGIvY2hyb21lL1ZFUlNJT04KK2luZGV4IDdhNDM4M2ExY2NiN2YuLjUwZjg4N2Y3 NDYyMjcgMTAwNjQ0CistLS0gYS9jaHJvbWUvVkVSU0lPTgorKysrIGIvY2hyb21lL1ZFUlNJT04K K0BAIC0xLDQgKzEsNCBAQAorIE1BSk9SPTc4CisgTUlOT1I9MAorIEJVSUxEPTM5MDQKKy1QQVRD SD0xMDgKKytQQVRDSD0xMzAKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZWxlY3Ryb243L2ZpbGVzL3Bh dGNoZXMvY2hyb21pdW0tY2hyb21pdW1fYXRrX29wdGlvbmFsLnBhdGNoLnBhdGNoIGIvc3JjcGtn cy9lbGVjdHJvbjcvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1jaHJvbWl1bV9hdGtfb3B0aW9uYWwu cGF0Y2gucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjI3YjU2 MjUxZWMzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9lbGVjdHJvbjcvZmlsZXMvcGF0Y2hl cy9jaHJvbWl1bS1jaHJvbWl1bV9hdGtfb3B0aW9uYWwucGF0Y2gucGF0Y2gKQEAgLTAsMCArMSwx NyBAQAorZGlmZiAtLWdpdCBhL2J1aWxkL2NvbmZpZy91aS5nbmkgYi9idWlsZC9jb25maWcvdWku Z25pCitpbmRleCA1NDdiNDJmLi45NjZiMDBjIDEwMDY0NAorLS0tIGEvYnVpbGQvY29uZmlnL3Vp LmduaQorKysrIGIvYnVpbGQvY29uZmlnL3VpLmduaQorQEAgLTUxLDggKzUxLDEwIEBAIGlmICh1 c2Vfb3pvbmUpIHsKKyAgIHVzZV9nbGliID0gZmFsc2UKKyB9CisKKy0jIFdoZXRoZXIgdG8gdXNl IGF0aywgdGhlIEFjY2Vzc2liaWxpdHkgVG9vbEtpdCBsaWJyYXJ5CistdXNlX2F0ayA9IGlzX2Rl c2t0b3BfbGludXggJiYgdXNlX3gxMQorK2RlY2xhcmVfYXJncygpIHsKKysgICMgV2hldGhlciB0 byB1c2UgYXRrLCB0aGUgQWNjZXNzaWJpbGl0eSBUb29sS2l0IGxpYnJhcnkKKysgIHVzZV9hdGsg PSBpc19kZXNrdG9wX2xpbnV4ICYmIHVzZV94MTEKKyt9CisgIyA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAjICAgUExFQVNFIERPIE5PVCBBREQgTU9SRSBG TEFHUyBUTyBUSElTIEZJTEUKKyAjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9lbGVjdHJvbjcvZmlsZXMvcGF0Y2hlcy9j aHJvbWl1bS1jbGFuZzEwX2dsc2xhbmcucGF0Y2gucGF0Y2ggYi9zcmNwa2dzL2VsZWN0cm9uNy9m aWxlcy9wYXRjaGVzL2Nocm9taXVtLWNsYW5nMTBfZ2xzbGFuZy5wYXRjaC5wYXRjaApuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uOTFlZjg0Y2E3ZTYKLS0tIC9kZXYvbnVs bAorKysgYi9zcmNwa2dzL2VsZWN0cm9uNy9maWxlcy9wYXRjaGVzL2Nocm9taXVtLWNsYW5nMTBf Z2xzbGFuZy5wYXRjaC5wYXRjaApAQCAtMCwwICsxLDI1IEBACitGcm9tIDI0YjNlODM4NGU5M2Yz ZTczYjZhYTE0ZWEwMGEzMDU3NDExMmY5YmEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9t OiBSZWlkIEtsZWNrbmVyIDxybmtAZ29vZ2xlLmNvbT4KK0RhdGU6IFdlZCwgNCBEZWMgMjAxOSAx NDowOTowMyAtMDgwMAorU3ViamVjdDogW1BBVENIXSBSZW1vdmUgZ2xzbGFuZzo6cG9vbF9hbGxv Y2F0b3I6OnNldEFsbG9jYXRvcgorCitUUG9vbEFsbG9jYXRvciBpcyBub3QgY29weSBhc3NpZ25h YmxlLCBzbyB0aGlzIHNldHRlciBjb3VsZCBuZXZlciBoYXZlCitiZWVuIHVzZWQuIEFmdGVyIGEg cmVjZW50IGNoYW5nZSAoODc4YTI0ZWUyKSwgbmV3IHZlcnNpb25zIG9mIENsYW5nCityZWplY3Qg dGhpcyBjb2RlIG91dHJpZ2h0LgorLS0tCisgZ2xzbGFuZy9JbmNsdWRlL1Bvb2xBbGxvYy5oIHwg MSAtCisgMSBmaWxlIGNoYW5nZWQsIDEgZGVsZXRpb24oLSkKKworZGlmZiAtLWdpdCBhL2dsc2xh bmcvSW5jbHVkZS9Qb29sQWxsb2MuaCBiL2dsc2xhbmcvSW5jbHVkZS9Qb29sQWxsb2MuaAoraW5k ZXggMGUyMzdhNmEyLi5iOGVjY2I4ODMgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9nbHNsYW5n L3NyYy9nbHNsYW5nL0luY2x1ZGUvUG9vbEFsbG9jLmgKKysrKyBiL3RoaXJkX3BhcnR5L2dsc2xh bmcvc3JjL2dsc2xhbmcvSW5jbHVkZS9Qb29sQWxsb2MuaAorQEAgLTMwNCw3ICszMDQsNiBAQCBj bGFzcyBwb29sX2FsbG9jYXRvciB7CisgICAgIHNpemVfdHlwZSBtYXhfc2l6ZSgpIGNvbnN0IHsg cmV0dXJuIHN0YXRpY19jYXN0PHNpemVfdHlwZT4oLTEpIC8gc2l6ZW9mKFQpOyB9CisgICAgIHNp emVfdHlwZSBtYXhfc2l6ZShpbnQgc2l6ZSkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8c2l6 ZV90eXBlPigtMSkgLyBzaXplOyB9CisgCistICAgIHZvaWQgc2V0QWxsb2NhdG9yKFRQb29sQWxs b2NhdG9yKiBhKSB7IGFsbG9jYXRvciA9ICphOyB9CisgICAgIFRQb29sQWxsb2NhdG9yJiBnZXRB bGxvY2F0b3IoKSBjb25zdCB7IHJldHVybiBhbGxvY2F0b3I7IH0KKyAKKyBwcm90ZWN0ZWQ6CisK ZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZWxlY3Ryb243L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tZml4 LWNvbW1hbmRsaW5lLWluY2x1ZGUucGF0Y2ggYi9zcmNwa2dzL2VsZWN0cm9uNy9maWxlcy9wYXRj aGVzL2Nocm9taXVtLWZpeC1jb21tYW5kbGluZS1pbmNsdWRlLnBhdGNoCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4xNWRhNzk0Y2JiYQotLS0gL2Rldi9udWxsCisrKyBi L3NyY3BrZ3MvZWxlY3Ryb243L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tZml4LWNvbW1hbmRsaW5l LWluY2x1ZGUucGF0Y2gKQEAgLTAsMCArMSw0NCBAQAorRWxlY3Ryb24gcGF0Y2hlcyB0aGUgZmls ZSB0byB1c2UgYmFzZTo6Q29tbWFuZExpbmUsIGJ1dCBmb3Jnb3QgdG8gaW5jbHVkZQordGhlIG5l Y2Vzc2FyeSBoZWFkZXIgZm9yIGl0LgorLS0tIGEvdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIv cGxhdGZvcm0vZ3JhcGhpY3MvY2FudmFzX2NvbG9yX3BhcmFtcy5jYy5vcmlnCTIwMjAtMDQtMjcg MTM6NDk6NDEuNDA4NTkyOTQxICswMjAwCisrKysgYi90aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJl ci9wbGF0Zm9ybS9ncmFwaGljcy9jYW52YXNfY29sb3JfcGFyYW1zLmNjCTIwMjAtMDQtMjcgMTM6 NDk6NTMuODQxMDcxODMwICswMjAwCitAQCAtNCw2ICs0LDcgQEAKKyAKKyAjaW5jbHVkZSAidGhp cmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvcGxhdGZvcm0vZ3JhcGhpY3MvY2FudmFzX2NvbG9yX3Bh cmFtcy5oIgorIAorKyNpbmNsdWRlICJiYXNlL2NvbW1hbmRfbGluZS5oIgorICNpbmNsdWRlICJj Yy9wYWludC9za2lhX3BhaW50X2NhbnZhcy5oIgorICNpbmNsdWRlICJjb21wb25lbnRzL3Zpei9j b21tb24vcmVzb3VyY2VzL3Jlc291cmNlX2Zvcm1hdF91dGlscy5oIgorICNpbmNsdWRlICJ0aGly ZF9wYXJ0eS9ibGluay9yZW5kZXJlci9wbGF0Zm9ybS9ydW50aW1lX2VuYWJsZWRfZmVhdHVyZXMu aCIKKy0tLSBhL3RoaXJkX3BhcnR5L2JsaW5rL3B1YmxpYy9wbGF0Zm9ybS93ZWJfcnRjX3J0cF9z b3VyY2UuaC5vcmlnCTIwMjAtMDQtMjcgMTQ6MTY6MDUuMzIzMDg1ODE0ICswMjAwCisrKysgYi90 aGlyZF9wYXJ0eS9ibGluay9wdWJsaWMvcGxhdGZvcm0vd2ViX3J0Y19ydHBfc291cmNlLmgJMjAy MC0wNC0yNyAxNDoxNjoxNy4yNzk0ODA4MzggKzAyMDAKK0BAIC03LDYgKzcsNyBAQAorIAorICNp bmNsdWRlICJiYXNlL29wdGlvbmFsLmgiCisgI2luY2x1ZGUgInRoaXJkX3BhcnR5L2JsaW5rL3B1 YmxpYy9wbGF0Zm9ybS93ZWJfY29tbW9uLmgiCisrI2luY2x1ZGUgPG1lbW9yeT4KKyAKKyBuYW1l c3BhY2UgYmFzZSB7CisgY2xhc3MgVGltZVRpY2tzOworLS0tIGEvY2hyb21lL2Jyb3dzZXIvY2hy b21lX2NvbnRlbnRfYnJvd3Nlcl9jbGllbnQuY2Mub3JpZwkyMDIwLTA0LTI3IDE2OjE2OjI3LjI5 MTIwODM5NCArMDIwMAorKysrIGIvY2hyb21lL2Jyb3dzZXIvY2hyb21lX2NvbnRlbnRfYnJvd3Nl cl9jbGllbnQuY2MJMjAyMC0wNC0yNyAxNjoxNjo0OS4yODM5ODQyMTcgKzAyMDAKK0BAIC0yODk2 LDYgKzI4OTYsOCBAQAorICAgICBjb25zdCBzdGQ6OnN0cmluZyYgZnJhbWVfbmFtZSwKKyAgICAg V2luZG93T3BlbkRpc3Bvc2l0aW9uIGRpc3Bvc2l0aW9uLAorICAgICBjb25zdCBibGluazo6bW9q b206OldpbmRvd0ZlYXR1cmVzJiBmZWF0dXJlcywKKysgICAgY29uc3Qgc3RkOjp2ZWN0b3I8c3Rk OjpzdHJpbmc+JiBhZGRpdGlvbmFsX2ZlYXR1cmVzLAorKyAgICBjb25zdCBzY29wZWRfcmVmcHRy PG5ldHdvcms6OlJlc291cmNlUmVxdWVzdEJvZHk+JiBib2R5LAorICAgICBib29sIHVzZXJfZ2Vz dHVyZSwKKyAgICAgYm9vbCBvcGVuZXJfc3VwcHJlc3NlZCwKKyAgICAgYm9vbCogbm9famF2YXNj cmlwdF9hY2Nlc3MpIHsKKy0tLSBhL2Nocm9tZS9icm93c2VyL2Nocm9tZV9jb250ZW50X2Jyb3dz ZXJfY2xpZW50Lmgub3JpZwkyMDIwLTA0LTI3IDE2OjE1OjQxLjkzMjM1OTc1MyArMDIwMAorKysr IGIvY2hyb21lL2Jyb3dzZXIvY2hyb21lX2NvbnRlbnRfYnJvd3Nlcl9jbGllbnQuaAkyMDIwLTA0 LTI3IDE2OjE2OjA5Ljc5ODMxODg0NSArMDIwMAorQEAgLTMwMyw2ICszMDMsOCBAQAorICAgICAg ICAgICAgICAgICAgICAgICAgY29uc3Qgc3RkOjpzdHJpbmcmIGZyYW1lX25hbWUsCisgICAgICAg ICAgICAgICAgICAgICAgICBXaW5kb3dPcGVuRGlzcG9zaXRpb24gZGlzcG9zaXRpb24sCisgICAg ICAgICAgICAgICAgICAgICAgICBjb25zdCBibGluazo6bW9qb206OldpbmRvd0ZlYXR1cmVzJiBm ZWF0dXJlcywKKysgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0ZDo6dmVjdG9yPHN0ZDo6 c3RyaW5nPiYgYWRkaXRpb25hbF9mZWF0dXJlcywKKysgICAgICAgICAgICAgICAgICAgICAgIGNv bnN0IHNjb3BlZF9yZWZwdHI8bmV0d29yazo6UmVzb3VyY2VSZXF1ZXN0Qm9keT4mIGJvZHksCisg ICAgICAgICAgICAgICAgICAgICAgICBib29sIHVzZXJfZ2VzdHVyZSwKKyAgICAgICAgICAgICAg ICAgICAgICAgIGJvb2wgb3BlbmVyX3N1cHByZXNzZWQsCisgICAgICAgICAgICAgICAgICAgICAg ICBib29sKiBub19qYXZhc2NyaXB0X2FjY2Vzcykgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9zcmNw a2dzL2VsZWN0cm9uNy9maWxlcy9wYXRjaGVzL2Nocm9taXVtLWZpeC1zdWNlc3MtZGVmaW5pdGlv bi5wYXRjaCBiL3NyY3BrZ3MvZWxlY3Ryb243L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tZml4LXN1 Y2Vzcy1kZWZpbml0aW9uLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw MDAwLi40ZGMwMjQ2OTNlNgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZWxlY3Ryb243L2Zp bGVzL3BhdGNoZXMvY2hyb21pdW0tZml4LXN1Y2Vzcy1kZWZpbml0aW9uLnBhdGNoCkBAIC0wLDAg KzEsMTUgQEAKK1gxMS5oIGRlZmluZXMgYSBtYWNybyBjYWxsZWQgIlN1Y2Nlc3MiLCB3aGljaCBp cyAwLiBUaGlzIGJyZWFrcyBhbiBlbnVtCit0aGF0IGlzIGdlbmVyYXRlZCBpbiBDaHJvbWl1bSB0 aGF0IGhhcyBhIG1lbWJlciAiU3VjY2VzcyIsIHNvIHVuZGVmaW5lCitpdC4KKy0tLSBhL2Nocm9t ZS9icm93c2VyL3VpL2xpYmd0a3VpL3NlbGVjdF9maWxlX2RpYWxvZ19pbXBsX2tkZS5jYy5vcmln CTIwMjAtMDQtMjcgMTg6NDI6MTUuNDU3Mjk3NTQ0ICswMjAwCisrKysgYi9jaHJvbWUvYnJvd3Nl ci91aS9saWJndGt1aS9zZWxlY3RfZmlsZV9kaWFsb2dfaW1wbF9rZGUuY2MJMjAyMC0wNC0yNyAx ODo0MjoyMS43NjA0NTQzMDQgKzAyMDAKK0BAIC0yNCw3ICsyNCw5IEBACisgI2luY2x1ZGUgImJh c2UvdGFzay9wb3N0X3Rhc2suaCIKKyAjaW5jbHVkZSAiYmFzZS90YXNrL3Rhc2tfdHJhaXRzLmgi CisgI2luY2x1ZGUgImJhc2UvdGhyZWFkaW5nL3RocmVhZF9yZXN0cmljdGlvbnMuaCIKKysjdW5k ZWYgU3VjY2VzcworICNpbmNsdWRlICJjaHJvbWUvYnJvd3Nlci91aS9saWJndGt1aS9zZWxlY3Rf ZmlsZV9kaWFsb2dfaW1wbC5oIgorKyNkZWZpbmUgU3VjY2VzcyAwCisgI2luY2x1ZGUgImNvbnRl bnQvcHVibGljL2Jyb3dzZXIvYnJvd3Nlcl90aHJlYWQuaCIKKyAjaW5jbHVkZSAidWkvYXVyYS93 aW5kb3dfdHJlZV9ob3N0LmgiCisgI2luY2x1ZGUgInVpL2Jhc2UvbDEwbi9sMTBuX3V0aWwuaCIK ZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZWxlY3Ryb243L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tZ25f Ym9vdHN0cmFwX25pbmphLnBhdGNoIGIvc3JjcGtncy9lbGVjdHJvbjcvZmlsZXMvcGF0Y2hlcy9j aHJvbWl1bS1nbl9ib290c3RyYXBfbmluamEucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMDAwMDAuLmU5Zjk1ZjA5Y2FlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9l bGVjdHJvbjcvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1nbl9ib290c3RyYXBfbmluamEucGF0Y2gK QEAgLTAsMCArMSwzMiBAQAorUGF0Y2ggYnkgTWljaGFlbCBGb3JuZXkgPG1mb3JuZXlAbWZvcm5l eS5vcmc+CisKK0FscmVhZHkgbWVyZ2VkIGh0dHBzOi8vY2hyb21pdW0tcmV2aWV3Lmdvb2dsZXNv dXJjZS5jb20vYy9jaHJvbWl1bS9zcmMvKy8xOTc1NDUzCisKKy0tLSBhL3Rvb2xzL2duL2Jvb3Rz dHJhcC9ib290c3RyYXAucHkKKysrKyBiL3Rvb2xzL2duL2Jvb3RzdHJhcC9ib290c3RyYXAucHkK K0BAIC03MCw2ICs3MCw3IEBACisgICBvdXRfZGlyID0gb3MucGF0aC5qb2luKFNSQ19ST09ULCBi dWlsZF9yZWwpCisgICBnbl9wYXRoID0gb3B0aW9ucy5vdXRwdXQgb3Igb3MucGF0aC5qb2luKG91 dF9kaXIsICdnbicpCisgICBnbl9idWlsZF9kaXIgPSBvcy5wYXRoLmpvaW4ob3V0X2RpciwgJ2du X2J1aWxkJykKKysgIG5pbmphX2JpbmFyeSA9IG9zLmVudmlyb24uZ2V0KCdOSU5KQScsICduaW5q YScpCisgCisgICAjIFRPRE8odGhvbWFzYW5kZXJzb24pOiBSZW1vdmUgdGhpcyBvbmNlIFVidW50 dSBUcnVzdHkgcmVhY2hlcyBFT0wsIG9yIHdoZW4KKyAgICMgQ2hyb21pdW0ncyBpbmZyYXN0cnVj dHVyZSBpcyB1cGdyYWRlZCBmcm9tIFRydXN0eSB0byBYZW5pYWwsIHdoaWNoZXZlciBjb21lcwor QEAgLTkwLDcgKzkxLDcgQEAKKyAgICAgICAgICAgICAgIG9zLmVudmlyb24uZ2V0KCdDRkxBR1Mn LCAnJykuc3BsaXQoKSArCisgICAgICAgICAgICAgICBvcy5lbnZpcm9uLmdldCgnQ1hYRkxBR1Mn LCAnJykuc3BsaXQoKSksCisgICAgICAgXSkgKyAnXG4nKQorLSAgICBzdWJwcm9jZXNzLmNoZWNr X2NhbGwoWyduaW5qYScsICctQycsIGxpYmN4eF9kaXJdKQorKyAgICBzdWJwcm9jZXNzLmNoZWNr X2NhbGwoW25pbmphX2JpbmFyeSwgJy1DJywgbGliY3h4X2Rpcl0pCisgICAgIHNodXRpbC5jb3B5 Mihvcy5wYXRoLmpvaW4oZ25fYnVpbGRfZGlyLCAnbGliYysrLmduLnNvJyksIG91dF9kaXIpCisg CisgICAgIGRlZiBhcHBlbmRfdG9fZW52KHZhciwgdmFscyk6CitAQCAtMTIwLDcgKzEyMSw3IEBA CisgICBzaHV0aWwuY29weTIoCisgICAgICAgb3MucGF0aC5qb2luKEJPT1RTVFJBUF9ESVIsICds YXN0X2NvbW1pdF9wb3NpdGlvbi5oJyksIGduX2J1aWxkX2RpcikKKyAgIHN1YnByb2Nlc3MuY2hl Y2tfY2FsbCgKKy0gICAgICBbJ25pbmphJywgJy1DJywgZ25fYnVpbGRfZGlyLCAnZ24nLCAnLXcn LCAnZHVwYnVpbGQ9ZXJyJ10pCisrICAgICAgW25pbmphX2JpbmFyeSwgJy1DJywgZ25fYnVpbGRf ZGlyLCAnLXcnLCAnZHVwYnVpbGQ9ZXJyJywgJ2duJ10pCisgICBzaHV0aWwuY29weTIob3MucGF0 aC5qb2luKGduX2J1aWxkX2RpciwgJ2duJyksIGduX3BhdGgpCisgCisgICBpZiBub3Qgb3B0aW9u cy5za2lwX2dlbmVyYXRlX2J1aWxkZmlsZXM6CmRpZmYgLS1naXQgYS9zcmNwa2dzL2VsZWN0cm9u Ny9maWxlcy9wYXRjaGVzL2Nocm9taXVtLWljdV91MTZfbmV4dC5wYXRjaC5wYXRjaCBiL3NyY3Br Z3MvZWxlY3Ryb243L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0taWN1X3UxNl9uZXh0LnBhdGNoLnBh dGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi40ZWQ0YzAzOGRlNwot LS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZWxlY3Ryb243L2ZpbGVzL3BhdGNoZXMvY2hyb21p dW0taWN1X3UxNl9uZXh0LnBhdGNoLnBhdGNoCkBAIC0wLDAgKzEsMTMgQEAKK2RpZmYgLS1naXQg YS90aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9jb3JlL2RvbS9kb2N1bWVudC5jYyBiL3RoaXJk X3BhcnR5L2JsaW5rL3JlbmRlcmVyL2NvcmUvZG9tL2RvY3VtZW50LmNjCitpbmRleCA0NGQ1YTQ5 Li5jMmE3YTJmIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvY29yZS9k b20vZG9jdW1lbnQuY2MKKysrKyBiL3RoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL2NvcmUvZG9t L2RvY3VtZW50LmNjCitAQCAtNjIxNiw3ICs2MjE2LDcgQEAgc3RhdGljIFBhcnNlUXVhbGlmaWVk TmFtZVJlc3VsdCBQYXJzZVF1YWxpZmllZE5hbWVJbnRlcm5hbCgKKyAKKyAgIGZvciAodW5zaWdu ZWQgaSA9IDA7IGkgPCBsZW5ndGg7KSB7CisgICAgIFVDaGFyMzIgYzsKKy0gICAgVTE2X05FWFQo Y2hhcmFjdGVycywgaSwgbGVuZ3RoLCBjKQorKyAgICBVMTZfTkVYVChjaGFyYWN0ZXJzLCBpLCBs ZW5ndGgsIGMpOworICAgICBpZiAoYyA9PSAnOicpIHsKKyAgICAgICBpZiAoc2F3X2NvbG9uKQor ICAgICAgICAgcmV0dXJuIFBhcnNlUXVhbGlmaWVkTmFtZVJlc3VsdChrUU5NdWx0aXBsZUNvbG9u cyk7CmRpZmYgLS1naXQgYS9zcmNwa2dzL2VsZWN0cm9uNy9maWxlcy9wYXRjaGVzL2Nocm9taXVt LWxpYmNfbWFsbG9jLnBhdGNoIGIvc3JjcGtncy9lbGVjdHJvbjcvZmlsZXMvcGF0Y2hlcy9jaHJv bWl1bS1saWJjX21hbGxvYy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwMC4uMjdjZDJjZWZjNDYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2VsZWN0cm9uNy9m aWxlcy9wYXRjaGVzL2Nocm9taXVtLWxpYmNfbWFsbG9jLnBhdGNoCkBAIC0wLDAgKzEsMjYgQEAK Ky0tLSBhL2Jhc2UvcHJvY2Vzcy9tZW1vcnlfbGludXguY2Mub3JpZwkyMDE3LTA5LTE1IDA4OjQx OjQzLjAwMDAwMDAwMCArMDAwMAorKysrIGIvYmFzZS9wcm9jZXNzL21lbW9yeV9saW51eC5jYwky MDE3LTA5LTE1IDA4OjQ0OjM5LjgwNDk5NTQ2OSArMDAwMAorQEAgLTIxLDYgKzIxLDEyIEBACisg I2luY2x1ZGUgInRoaXJkX3BhcnR5L3RjbWFsbG9jL2Nocm9taXVtL3NyYy9ncGVyZnRvb2xzL3Rj bWFsbG9jLmgiCisgI2VuZGlmCisgCisrI2lmIGRlZmluZWQoTElCQ19HTElCQykKKytleHRlcm4g IkMiIHsKKytleHRlcm4gdm9pZCAqX19saWJjX21hbGxvYyhzaXplX3Qgc2l6ZSk7CisrfQorKyNl bmRpZgorKworIG5hbWVzcGFjZSBiYXNlIHsKKyAKKyBzaXplX3QgZ19vb21fc2l6ZSA9IDBVOwor LS0tIGEvYmFzZS9wcm9jZXNzL21lbW9yeV9saW51eC5jYy5vcmlnCTIwMTctMDktMTUgMDg6NDY6 NTUuMDAwMDAwMDAwICswMDAwCisrKysgYi9iYXNlL3Byb2Nlc3MvbWVtb3J5X2xpbnV4LmNjCTIw MTctMDktMTUgMDg6NTE6MzQuNDIyMDE2ODU4ICswMDAwCitAQCAtMTA3LDcgKzEwNyw3IEBACisg ICAgICghZGVmaW5lZChMSUJDX0dMSUJDKSAmJiAhZGVmaW5lZChVU0VfVENNQUxMT0MpKQorICAg KnJlc3VsdCA9IG1hbGxvYyhzaXplKTsKKyAjZWxpZiBkZWZpbmVkKExJQkNfR0xJQkMpICYmICFk ZWZpbmVkKFVTRV9UQ01BTExPQykKKy0gICpyZXN1bHQgPSBfX2xpYmNfbWFsbG9jKHNpemUpOwor KyAgKnJlc3VsdCA9IDo6X19saWJjX21hbGxvYyhzaXplKTsKKyAjZWxpZiBkZWZpbmVkKFVTRV9U Q01BTExPQykKKyAgICpyZXN1bHQgPSB0Y19tYWxsb2Nfc2tpcF9uZXdfaGFuZGxlcihzaXplKTsK KyAjZW5kaWYKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZWxlY3Ryb243L2ZpbGVzL3BhdGNoZXMvZWxl Y3Ryb24tQWRkLWEtc2NyaXB0LXRvLWxpc3QtcGF0Y2gtdGFyZ2V0cy5wYXRjaC5wYXRjaCBiL3Ny Y3BrZ3MvZWxlY3Ryb243L2ZpbGVzL3BhdGNoZXMvZWxlY3Ryb24tQWRkLWEtc2NyaXB0LXRvLWxp c3QtcGF0Y2gtdGFyZ2V0cy5wYXRjaC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAwMC4uOTE2ZGJhOWRjM2IKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2VsZWN0 cm9uNy9maWxlcy9wYXRjaGVzL2VsZWN0cm9uLUFkZC1hLXNjcmlwdC10by1saXN0LXBhdGNoLXRh cmdldHMucGF0Y2gucGF0Y2gKQEAgLTAsMCArMSw0MiBAQAorRnJvbSBmZjQxMjJmMjM2YjcwYzI3 MmM3NDZkMGMzMzZjZGJkNTg4ZDc4Y2QxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTog RWx2aXMgUHJhbnNrZXZpY2h1cyA8ZWx2aXNAbWFnaWMuaW8+CitEYXRlOiBUaHUsIDEyIERlYyAy MDE5IDE2OjEyOjE4IC0wNTAwCitTdWJqZWN0OiBbUEFUQ0hdIEFkZCBhIHNjcmlwdCB0byBsaXN0 IHBhdGNoIHRhcmdldHMKKworLS0tCisgc2NyaXB0L2xpc3RfcGF0Y2hfdGFyZ2V0cy5weSB8IDIz ICsrKysrKysrKysrKysrKysrKysrKysrCisgMSBmaWxlIGNoYW5nZWQsIDIzIGluc2VydGlvbnMo KykKKyBjcmVhdGUgbW9kZSAxMDA3NTUgc2NyaXB0L2xpc3RfcGF0Y2hfdGFyZ2V0cy5weQorCitk aWZmIC0tZ2l0IGEvc2NyaXB0L2xpc3RfcGF0Y2hfdGFyZ2V0cy5weSBiL3NjcmlwdC9saXN0X3Bh dGNoX3RhcmdldHMucHkKK25ldyBmaWxlIG1vZGUgMTAwNzU1CitpbmRleCAwMDAwMDAwMDAuLjU1 MTczYmFjOQorLS0tIC9kZXYvbnVsbAorKysrIGIvc2NyaXB0L2xpc3RfcGF0Y2hfdGFyZ2V0cy5w eQorQEAgLTAsMCArMSwyMyBAQAorKyMhL3Vzci9iaW4vZW52IHB5dGhvbgorKworK2ltcG9ydCBh cmdwYXJzZQorK2ltcG9ydCBqc29uCisrCisrCisrZGVmIHBhcnNlX2FyZ3MoKToKKysgIHBhcnNl ciA9IGFyZ3BhcnNlLkFyZ3VtZW50UGFyc2VyKGRlc2NyaXB0aW9uPSdBcHBseSBFbGVjdHJvbiBw YXRjaGVzJykKKysgIHBhcnNlci5hZGRfYXJndW1lbnQoJ2NvbmZpZycsIG5hcmdzPScrJywKKysg ICAgICAgICAgICAgICAgICAgICAgdHlwZT1hcmdwYXJzZS5GaWxlVHlwZSgncicpLAorKyAgICAg ICAgICAgICAgICAgICAgICBoZWxwPSdwYXRjaGVzXCcgY29uZmlnKHMpIGluIHRoZSBKU09OIGZv cm1hdCcpCisrICByZXR1cm4gcGFyc2VyLnBhcnNlX2FyZ3MoKQorKworKworK2RlZiBtYWluKCk6 CisrICBjb25maWdzID0gcGFyc2VfYXJncygpLmNvbmZpZworKyAgZm9yIGNvbmZpZ19qc29uIGlu IGNvbmZpZ3M6CisrICAgIGZvciBwYXRjaF9kaXIsIHJlcG8gaW4ganNvbi5sb2FkKGNvbmZpZ19q c29uKS5pdGVyaXRlbXMoKToKKysgICAgICBwcmludChyZXBvKQorKworKworK2lmIF9fbmFtZV9f ID09ICdfX21haW5fXyc6CisrICBtYWluKCkKKy0tIAorMi4yMy4wCisKZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MvZWxlY3Ryb243L2ZpbGVzL3BhdGNoZXMvZWxlY3Ryb24tQnVpbGQtZml4ZXMucGF0Y2gu cGF0Y2ggYi9zcmNwa2dzL2VsZWN0cm9uNy9maWxlcy9wYXRjaGVzL2VsZWN0cm9uLUJ1aWxkLWZp eGVzLnBhdGNoLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5h NTkxYzJlZGY2MgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZWxlY3Ryb243L2ZpbGVzL3Bh dGNoZXMvZWxlY3Ryb24tQnVpbGQtZml4ZXMucGF0Y2gucGF0Y2gKQEAgLTAsMCArMSw1NyBAQAor ZGlmZiAtLWdpdCBhL2J1aWxkL2FyZ3MvYWxsLmduIGIvYnVpbGQvYXJncy9hbGwuZ24KK2luZGV4 IDhiYmI4NmUyOC4uODQ3NmQwOWVhIDEwMDY0NAorLS0tIGEvYnVpbGQvYXJncy9hbGwuZ24KKysr KyBiL2J1aWxkL2FyZ3MvYWxsLmduCitAQCAtMSw1ICsxLDQgQEAKKyBpc19lbGVjdHJvbl9idWls ZCA9IHRydWUKKy11c2VfanVtYm9fYnVpbGQgPSB0cnVlCisgcm9vdF9leHRyYV9kZXBzID0gWyAi Ly9lbGVjdHJvbiIgXQorIAorICMgUmVnaXN0cnkgb2YgTk1WcyAtLT4gaHR0cHM6Ly9naXRodWIu Y29tL25vZGVqcy9ub2RlL2Jsb2IvbWFzdGVyL2RvYy9hYmlfdmVyc2lvbl9yZWdpc3RyeS5qc29u CitkaWZmIC0tZ2l0IGEvYnVpbGQvYXJncy9yZWxlYXNlLmduIGIvYnVpbGQvYXJncy9yZWxlYXNl LmduCitpbmRleCBlNTAxN2Y2ZTEuLjU5MjA3YjM4OSAxMDA2NDQKKy0tLSBhL2J1aWxkL2FyZ3Mv cmVsZWFzZS5nbgorKysrIGIvYnVpbGQvYXJncy9yZWxlYXNlLmduCitAQCAtMSw2ICsxLDQgQEAK KyBpbXBvcnQoImFsbC5nbiIpCistaXNfY29tcG9uZW50X2J1aWxkID0gZmFsc2UKKy1pc19vZmZp Y2lhbF9idWlsZCA9IHRydWUKKyAKKyAjIFRoaXMgbWF5IGJlIGd1YXJkZWQgYmVoaW5kIGlzX2No cm9tZV9icmFuZGVkIGFsb25nc2lkZQorICMgcHJvcHJpZXRhcnlfY29kZWNzIGh0dHBzOi8vd2Vi cnRjLXJldmlldy5nb29nbGVzb3VyY2UuY29tL2Mvc3JjLysvMzYzMjEsCitAQCAtOCw5ICs2LDMg QEAgaXNfb2ZmaWNpYWxfYnVpbGQgPSB0cnVlCisgIyBUaGUgaW5pdGlhbGl6YXRpb24gb2YgdGhl IGRlY29kZXIgZGVwZW5kcyBvbiB3aGV0aGVyIGZmbXBlZyBoYXMKKyAjIGJlZW4gYnVpbHQgd2l0 aCBILjI2NCBzdXBwb3J0LgorIHJ0Y191c2VfaDI2NCA9IHByb3ByaWV0YXJ5X2NvZGVjcworLQor LSMgQnkgZGVmYXVsdCwgRWxlY3Ryb24gYnVpbGRzIGZmbXBlZyB3aXRoIHByb3ByaWV0YXJ5IGNv ZGVjcyBlbmFibGVkLiBJbiBvcmRlcgorLSMgdG8gZmFjaWxpdGF0ZSB1c2VycyB3aG8gZG9uJ3Qg d2FudCB0byBzaGlwIHByb3ByaWV0YXJ5IGNvZGVjcyBpbiBmZm1wZWcsIG9yCistIyB3aG8gaGF2 ZSBhbiBMR1BMIHJlcXVpcmVtZW50IHRvIHNoaXAgZmZtcGVnIGFzIGEgZHluYW1pY2FsbHkgbGlu a2VkIGxpYnJhcnksCistIyB3ZSBidWlsZCBmZm1wZWcgYXMgYSBzaGFyZWQgbGlicmFyeS4KKy1p c19jb21wb25lbnRfZmZtcGVnID0gdHJ1ZQorZGlmZiAtLWdpdCBhL2J1aWxkL25wbS5nbmkgYi9i dWlsZC9ucG0uZ25pCitpbmRleCBhMTk4N2QwOTUuLmZiMzNhMTRjMyAxMDA2NDQKKy0tLSBhL2J1 aWxkL25wbS5nbmkKKysrKyBiL2J1aWxkL25wbS5nbmkKK0BAIC0zNSw3ICszNSw2IEBAIHRlbXBs YXRlKCJucG1fYWN0aW9uIikgeworICAgICBpZiAoIWRlZmluZWQoZGVwcykpIHsKKyAgICAgICBk ZXBzID0gW10KKyAgICAgfQorLSAgICBkZXBzICs9IFsgIjpucG1fcHJlX2ZsaWdodF8iICsgdGFy Z2V0X25hbWUgXQorIAorICAgICBzY3JpcHQgPSAiLy9lbGVjdHJvbi9idWlsZC9ucG0tcnVuLnB5 IgorICAgICBhcmdzID0gWworZGlmZiAtLWdpdCBhL3BhdGNoZXMvbm9kZS9maXhfYWRkX2RlZmF1 bHRfdmFsdWVzX2Zvcl9lbmFibGVfbHRvX2FuZF9idWlsZF92OF93aXRoX2duX2luLnBhdGNoIGIv cGF0Y2hlcy9ub2RlL2ZpeF9hZGRfZGVmYXVsdF92YWx1ZXNfZm9yX2VuYWJsZV9sdG9fYW5kX2J1 aWxkX3Y4X3dpdGhfZ25faW4ucGF0Y2gKK2luZGV4IDBkYzk5MTZiZS4uN2VhYTQ2YmY1IDEwMDY0 NAorLS0tIGEvcGF0Y2hlcy9ub2RlL2ZpeF9hZGRfZGVmYXVsdF92YWx1ZXNfZm9yX2VuYWJsZV9s dG9fYW5kX2J1aWxkX3Y4X3dpdGhfZ25faW4ucGF0Y2gKKysrKyBiL3BhdGNoZXMvbm9kZS9maXhf YWRkX2RlZmF1bHRfdmFsdWVzX2Zvcl9lbmFibGVfbHRvX2FuZF9idWlsZF92OF93aXRoX2duX2lu LnBhdGNoCitAQCAtMzAsNyArMzAsNyBAQAorICsgICAgIyB0aGVzZSB2YWx1ZXMgYmVpbmcgYWNj dXJhdGUuCisgKyAgICAnYnVpbGRfdjhfd2l0aF9nbic6ICdmYWxzZScsCisgKyAgICAnZW5hYmxl X2x0byUnOiAnZmFsc2UnLAorLSsKKysrICAgICdvcGVuc3NsX2ZpcHMnOiAnJywKKyAgICAgICdj b25kaXRpb25zJzogWworICAgICAgICBbJ3RhcmdldF9hcmNoPT0iYXJtNjQiJywgeworICAgICAg ICAgICMgRGlzYWJsZWQgcGVuZGluZyBodHRwczovL2dpdGh1Yi5jb20vbm9kZWpzL25vZGUvaXNz dWVzLzIzOTEzLgorCmRpZmYgLS1naXQgYS9zcmNwa2dzL2VsZWN0cm9uNy9maWxlcy9wYXRjaGVz L2VsZWN0cm9uLWRvbnQtYXNzdW1lLXB5dGhvbi1pcy1weXRob24yLnBhdGNoIGIvc3JjcGtncy9l bGVjdHJvbjcvZmlsZXMvcGF0Y2hlcy9lbGVjdHJvbi1kb250LWFzc3VtZS1weXRob24taXMtcHl0 aG9uMi5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZmIxMzQ3 NDgwMjUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2VsZWN0cm9uNy9maWxlcy9wYXRjaGVz L2VsZWN0cm9uLWRvbnQtYXNzdW1lLXB5dGhvbi1pcy1weXRob24yLnBhdGNoCkBAIC0wLDAgKzEs MTcgQEAKKy0tLSBhL2J1aWxkL3ppcC5weS5vcmlnCTIwMjAtMDQtMjcgMTc6NTk6NTMuNDk5Mjgx NjY3ICswMjAwCisrKysgYi9idWlsZC96aXAucHkJMjAyMC0wNC0yNyAxNzo1OTo1Ny42NTU4Mzkx NDMgKzAyMDAKK0BAIC0xLDQgKzEsNCBAQAorLSMhL3Vzci9iaW4vZW52IHB5dGhvbgorKyMhL3Vz ci9iaW4vZW52IHB5dGhvbjIKKyBmcm9tIF9fZnV0dXJlX18gaW1wb3J0IHByaW50X2Z1bmN0aW9u CisgaW1wb3J0IG9zCisgaW1wb3J0IHN1YnByb2Nlc3MKKworLS0tIGEvYnVpbGQvbnBtLXJ1bi5w eS5vcmlnCTIwMjAtMDQtMjcgMTc6NTk6NTAuODI5MzUxODA3ICswMjAwCisrKysgYi9idWlsZC9u cG0tcnVuLnB5CTIwMjAtMDQtMjcgMTg6MDA6MDIuNzAyMzczMjU2ICswMjAwCitAQCAtMSw0ICsx LDQgQEAKKy0jIS91c3IvYmluL2VudiBweXRob24KKysjIS91c3IvYmluL2VudiBweXRob24yCisg ZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBwcmludF9mdW5jdGlvbgorIGltcG9ydCBvcworIGltcG9y dCBzdWJwcm9jZXNzCmRpZmYgLS1naXQgYS9zcmNwa2dzL2VsZWN0cm9uNy9maWxlcy9wYXRjaGVz L2VsZWN0cm9uLWZpeC1pbmNsdWRlcy5wYXRjaCBiL3NyY3BrZ3MvZWxlY3Ryb243L2ZpbGVzL3Bh dGNoZXMvZWxlY3Ryb24tZml4LWluY2x1ZGVzLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAwLi45ZGYxZmQ2OTQ2ZAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mv ZWxlY3Ryb243L2ZpbGVzL3BhdGNoZXMvZWxlY3Ryb24tZml4LWluY2x1ZGVzLnBhdGNoCkBAIC0w LDAgKzEsMTkgQEAKKy0tLSBhL3BhdGNoZXMvY2hyb21pdW0vZmVhdF9vZmZzY3JlZW5fcmVuZGVy aW5nX3dpdGhfdml6X2NvbXBvc2l0b3IucGF0Y2gub3JpZwkyMDIwLTA0LTI3IDE2OjM3OjA5Ljkz NDI3MTIyNyArMDIwMAorKysrIGIvcGF0Y2hlcy9jaHJvbWl1bS9mZWF0X29mZnNjcmVlbl9yZW5k ZXJpbmdfd2l0aF92aXpfY29tcG9zaXRvci5wYXRjaAkyMDIwLTA0LTI3IDE2OjM3OjUwLjkwMzIw NzE2NiArMDIwMAorQEAgLTM1MCw3ICszNTAsNyBAQAorIGluZGV4IDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM4NjU5MzlkMDQ0NWEyM2E0Njg3NzBmNTcyMDdiYTVl ZjIzMjc3ZWQKKyAtLS0gL2Rldi9udWxsCisgKysrIGIvY29tcG9uZW50cy92aXovc2VydmljZS9k aXNwbGF5X2VtYmVkZGVyL3NvZnR3YXJlX291dHB1dF9kZXZpY2VfcHJveHkuaAorLUBAIC0wLDAg KzEsODggQEAKKytAQCAtMCwwICsxLDg5IEBACisgKy8vIENvcHlyaWdodCAyMDE0IFRoZSBDaHJv bWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICsvLyBVc2Ugb2YgdGhpcyBzb3Vy Y2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCisg Ky8vIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCitAQCAtMzY0LDYgKzM2NCw3IEBACisgKwor ICsjaW5jbHVkZSA8bWVtb3J5PgorICsKKysrI2luY2x1ZGUgImJhc2UvdGhyZWFkaW5nL3RocmVh ZF9jaGVja2VyLmgiCisgKyNpbmNsdWRlICJjb21wb25lbnRzL3Zpei9ob3N0L2hvc3RfZGlzcGxh eV9jbGllbnQuaCIKKyArI2luY2x1ZGUgImNvbXBvbmVudHMvdml6L3NlcnZpY2UvZGlzcGxheS9z b2Z0d2FyZV9vdXRwdXRfZGV2aWNlLmgiCisgKyNpbmNsdWRlICJjb21wb25lbnRzL3Zpei9zZXJ2 aWNlL3Zpel9zZXJ2aWNlX2V4cG9ydC5oIgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9lbGVjdHJvbjcv ZmlsZXMvcGF0Y2hlcy9lbGVjdHJvbi1tanN1bml0LW5vdC1leHNpdC5wYXRjaC5wYXRjaCBiL3Ny Y3BrZ3MvZWxlY3Ryb243L2ZpbGVzL3BhdGNoZXMvZWxlY3Ryb24tbWpzdW5pdC1ub3QtZXhzaXQu cGF0Y2gucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjI1Njc1 NDA4NjljCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9lbGVjdHJvbjcvZmlsZXMvcGF0Y2hl cy9lbGVjdHJvbi1tanN1bml0LW5vdC1leHNpdC5wYXRjaC5wYXRjaApAQCAtMCwwICsxLDQ3IEBA CitkaWZmIC0tZ2l0IGEvcGF0Y2hlcy92OC9tYWtlX2NyZWF0ZWR5bmFtaWNmdW5jdGlvbl90aHJv d19pZl9kaXNhbGxvd2VkLnBhdGNoIGIvcGF0Y2hlcy92OC9tYWtlX2NyZWF0ZWR5bmFtaWNmdW5j dGlvbl90aHJvd19pZl9kaXNhbGxvd2VkLnBhdGNoCitpbmRleCBiYWZkMGIwLi45NDljYjJkIDEw MDY0NAorLS0tIGEvcGF0Y2hlcy92OC9tYWtlX2NyZWF0ZWR5bmFtaWNmdW5jdGlvbl90aHJvd19p Zl9kaXNhbGxvd2VkLnBhdGNoCisrKysgYi9wYXRjaGVzL3Y4L21ha2VfY3JlYXRlZHluYW1pY2Z1 bmN0aW9uX3Rocm93X2lmX2Rpc2FsbG93ZWQucGF0Y2gKK0BAIC0yNSw0MiArMjUsMyBAQCBpbmRl eCBmNzUwMTRkMDM0NjI2NjQzYWU4M2RjOGYxNjdhNDczYjcyOTE1MjJjLi5iNWMyZThiMjVmMTBm MmZmZjkwMTFhMGExYmQxYWVlZgorICAgIH0KKyAgCisgICAgLy8gQnVpbGQgdGhlIHNvdXJjZSBz dHJpbmcuCistZGlmZiAtLWdpdCBhL3Rlc3QvbWpzdW5pdC9tanN1bml0LnN0YXR1cyBiL3Rlc3Qv bWpzdW5pdC9tanN1bml0LnN0YXR1cworLWluZGV4IDEzNGE0OWY3NDgwYzg3YWNiYjA4MTMzYTJk NmE0ZDAyOGJiZGQwOTAuLjdkY2FhNDEyMTk5NzcwZDdjNGY2ODhkN2Y4YTY2ZDg4NzEzMGJmODIg MTAwNjQ0CistLS0tIGEvdGVzdC9tanN1bml0L21qc3VuaXQuc3RhdHVzCistKysrIGIvdGVzdC9t anN1bml0L21qc3VuaXQuc3RhdHVzCistQEAgLTIzMiw2ICsyMzIsOSBAQAorLSAgICMgQlVHKHY4 OjYzMDYpLgorLSAgICd3YXNtL2h1Z2UtbWVtb3J5JzogW1NLSVBdLAorLSAKKy0rICAjIE5lZWRz IHRvIGJlIGFkYXB0ZWQgYWZ0ZXIgY2hhbmdlcyB0byBGdW5jdGlvbiBjb25zdHJ1Y3Rvci4gY2hy b21pdW06MTA2NTA5NAorLSsgICdjcm9zcy1yZWFsbS1maWx0ZXJpbmcnOiBbU0tJUF0sCistKwor LSAgICMgQWxsb2NhdGVzIGEgaHVnZSBzdHJpbmcgYW5kIHRoZW4gZmxhdHRlbnMgaXQsIHZlcnkg c2xvdyBpbiBkZWJ1ZyBtb2RlLgorLSAgICdyZWdyZXNzL3JlZ3Jlc3MtNzUyNzY0JzogW1BBU1Ms IFsnbW9kZSA9PSBkZWJ1ZycsIFNMT1ddXSwKKy0gCistZGlmZiAtLWdpdCBhL3Rlc3QvbWpzdW5p dC9yZWdyZXNzLTEwNjUwOTQuanMgYi90ZXN0L21qc3VuaXQvcmVncmVzcy0xMDY1MDk0LmpzCist bmV3IGZpbGUgbW9kZSAxMDA2NDQKKy1pbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwLi4zNjVlMjAyODViYjA1MDVkZWMzZjg0YzRkZjU3ZGIwNTI1ZTdhY2MzCist LS0tIC9kZXYvbnVsbAorLSsrKyBiL3Rlc3QvbWpzdW5pdC9yZWdyZXNzLTEwNjUwOTQuanMKKy1A QCAtMCwwICsxLDE5IEBACistKy8vIENvcHlyaWdodCAyMDIwIHRoZSBWOCBwcm9qZWN0IGF1dGhv cnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCistKy8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlz IGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKKy0rLy8gZm91bmQg aW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0rCistKy8vIEZsYWdzOiAtLWFsbG93LW5hdGl2ZXMtc3lu dGF4CistKworLStmdW5jdGlvbiBmKGZuQ29uc3RydWN0b3IpIHsKKy0rICAgIHJldHVybiBPYmpl Y3QuaXMobmV3IGZuQ29uc3RydWN0b3IoKSwgdW5kZWZpbmVkKTsKKy0rfQorLSsKKy0rY29uc3Qg cmVhbG1JbmRleCA9IFJlYWxtLmNyZWF0ZUFsbG93Q3Jvc3NSZWFsbUFjY2VzcygpOworLStjb25z dCBvdGhlckZ1bmN0aW9uID0gUmVhbG0uZ2xvYmFsKHJlYWxtSW5kZXgpLkZ1bmN0aW9uOworLStS ZWFsbS5kZXRhY2hHbG9iYWwocmVhbG1JbmRleCk7CistKworLSslUHJlcGFyZUZ1bmN0aW9uRm9y T3B0aW1pemF0aW9uKGYpOworLSthc3NlcnRGYWxzZShmKEZ1bmN0aW9uKSk7CistK2Fzc2VydFRo cm93cyhfID0+IGYob3RoZXJGdW5jdGlvbikpOworLSslT3B0aW1pemVGdW5jdGlvbk9uTmV4dENh bGwoZik7CistK2Fzc2VydFRocm93cyhfID0+IGYob3RoZXJGdW5jdGlvbikpOwpkaWZmIC0tZ2l0 IGEvc3JjcGtncy9lbGVjdHJvbjcvdGVtcGxhdGUgYi9zcmNwa2dzL2VsZWN0cm9uNy90ZW1wbGF0 ZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZjIwNDAxZmVkNTEKLS0t IC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2VsZWN0cm9uNy90ZW1wbGF0ZQpAQCAtMCwwICsxLDI2 NCBAQAorIyBUZW1wbGF0ZSBmaWxlIGZvciAnZWxlY3Ryb243JworcGtnbmFtZT1lbGVjdHJvbjcK K3ZlcnNpb249Ny4yLjMKK19ub2RldmVyPTEyLjguMQorX2Nocm9taXVtdmVyPTc4LjAuMzkwNC4x MDgKK3JldmlzaW9uPTEKK2FyY2hzPSJ4ODZfNjQqIgorYnVpbGRfd3Jrc3JjPSJzcmMiCitjcmVh dGVfd3Jrc3JjPXllcworaG9zdG1ha2VkZXBlbmRzPSJjbGFuZyB5YXNtIHB5dGhvbiBwa2djb25m IHBlcmwgZ3BlcmYgYmlzb24gbmluamEgbm9kZWpzIGh3aWRzCisgd2hpY2ggZ2l0IGxpYmF0b21p Yy1kZXZlbCBsaWJldmVudC1kZXZlbCBsaWJnbGliLWRldmVsIHlhcm4gb3BlbmpkayIKK21ha2Vk ZXBlbmRzPSJsaWJwbmctZGV2ZWwgZ3RrKy1kZXZlbCBndGsrMy1kZXZlbCBuc3MtZGV2ZWwgcGNp dXRpbHMtZGV2ZWwKKyBsaWJYaS1kZXZlbCBsaWJnY3J5cHQtZGV2ZWwgbGliZ25vbWUta2V5cmlu Zy1kZXZlbCBjdXBzLWRldmVsIGVsZnV0aWxzLWRldmVsCisgbGliWGNvbXBvc2l0ZS1kZXZlbCBz cGVlY2gtZGlzcGF0Y2hlci1kZXZlbCBsaWJYcmFuZHItZGV2ZWwgbWl0LWtyYjUtZGV2ZWwKKyBs aWJYU2NyblNhdmVyLWRldmVsIGFsc2EtbGliLWRldmVsIHNuYXBweS1kZXZlbCBsaWJkcm0tZGV2 ZWwKKyBsaWJ4bWwyLWRldmVsIGxpYnhzbHQtZGV2ZWwgcHVsc2VhdWRpby1kZXZlbCBsaWJleGlm LWRldmVsCisgbGliWGN1cnNvci1kZXZlbCBsaWJmbGFjLWRldmVsIHNwZWV4LWRldmVsIGxpYm10 cC1kZXZlbCBsaWJ3ZWJwLWRldmVsCisgbGlianBlZy10dXJiby1kZXZlbCBsaWJldmVudC1kZXZl bCBqc29uLWMtZGV2ZWwgaGFyZmJ1enotZGV2ZWwKKyBtaW5pemlwLWRldmVsIGpzb25jcHAtZGV2 ZWwgemxpYi1kZXZlbCBsaWJjYXAtZGV2ZWwgbGliWGRhbWFnZS1kZXZlbAorIHJlMi1kZXZlbCBm b250Y29uZmlnLWRldmVsIGZyZWV0eXBlLWRldmVsIG9wdXMtZGV2ZWwKKyBmZm1wZWctZGV2ZWwg bGlidmEtZGV2ZWwgbGlidXYtZGV2ZWwgYy1hcmVzLWRldmVsIGxpYm5vdGlmeS1kZXZlbCIKK2Rl cGVuZHM9IiIKK3Nob3J0X2Rlc2M9IkNyb3NzIHBsYXRmb3JtIGFwcGxpY2F0aW9uIGRldmVsb3Bt ZW50IGZyYW1ld29yayBiYXNlZCBvbiB3ZWIgdGVjaG5vbG9naWVzIgorbWFpbnRhaW5lcj0iSm9o biA8bWVAam9obm55bmF0b3IuZGV2PiIKK2xpY2Vuc2U9IkJTRC0zLUNsYXVzZSIKK2hvbWVwYWdl PSJodHRwczovL2VsZWN0cm9uanMub3JnIgorZGlzdGZpbGVzPSJodHRwczovL2dpdGh1Yi5jb20v ZWxlY3Ryb24vZWxlY3Ryb24vYXJjaGl2ZS92JHZlcnNpb24udGFyLmd6PmVsZWN0cm9uLSR7dmVy c2lvbn0udGFyLmd6CisgaHR0cHM6Ly9jb21tb25kYXRhc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9j aHJvbWl1bS1icm93c2VyLW9mZmljaWFsL2Nocm9taXVtLSRfY2hyb21pdW12ZXIudGFyLnh6Cisg aHR0cHM6Ly9naXRodWIuY29tL25vZGVqcy9ub2RlL2FyY2hpdmUvdiRfbm9kZXZlci50YXIuZ3o+ bm9kZS0kX25vZGV2ZXIudGFyLmd6IgorY2hlY2tzdW09ImUzZmMyZTE1YzYwNTUxNTEyZTI2ZjFl OTZlMDJlMzM5NTQwNTc4MThjZWI4Y2Q4YWI2ZDE5OWNiYjg3NTFlZTMKKyBmOWM1MzgzOWYzMDZk Mjk3M2RlMjc3MjMzNjAwMjRmNzkwNDEwMWQ0MjZiOWU3ZTljZGI1NmU4YmNjNzc1YjBlCisgMTE2 NDhkNTg2ZjY4ZWU1ZmMzOGU0Y2FkZjM5NzQ1NDFhYWM0YTY3NzA5ZmEwMjhlOTA3NWFmZjQyZTI4 ZDliOSIKKworbGliMzJkaXNhYmxlZD15ZXMKK25vZGVidWc9eWVzCitub3BpZT15ZXMgICMgY29u dGFpbnMgdG9vbHMgdGhhdCBhcmUgbm90IFBJRSwgZW5hYmxlcyBQSUUgaXRzZWxmCisKK19idWls ZHR5cGU9UmVsZWFzZQorX2lzX2RlYnVnPWZhbHNlCisKK0NGTEFHUz0iLVduby11bmtub3duLXdh cm5pbmctb3B0aW9uIC1mUElDIgorQ1hYRkxBR1M9Ii1Xbm8tdW5rbm93bi13YXJuaW5nLW9wdGlv biAtZlBJQyIKKworcG9zdF9leHRyYWN0KCkgeworCWxuIC1zIGNocm9taXVtLSRfY2hyb21pdW12 ZXIgc3JjCisJbWtkaXIgLXAgc3JjL3RoaXJkX3BhcnR5LworCWxuIC1zIC4uLy4uL25vZGUtJF9u b2RldmVyIHNyYy90aGlyZF9wYXJ0eS9lbGVjdHJvbl9ub2RlCisJbG4gLXMgLi4vZWxlY3Ryb24t JHt2ZXJzaW9ufSBzcmMvZWxlY3Ryb24KKworfQorcG9zdF9wYXRjaCgpIHsKKwljZCAkd3Jrc3Jj CisJZm9yIHggaW4gJEZJTEVTRElSL3BhdGNoZXMvKjsgZG8KKwkJY2FzZSAiJHt4IyMqL30iIGlu CisJCQljaHJvbWl1bSoucGF0Y2gpCisJCQkJY2Qgc3JjCisJCQkJZWNobyBQYXRjaGluZyAkeAor CQkJCXBhdGNoIC1wMSAtaSAiJHgiCisJCQkJY2QgIiR3cmtzcmMiCisJCQkJOzsKKwkJCWVsZWN0 cm9uKi5wYXRjaCkKKwkJCQljZCBzcmMvZWxlY3Ryb24KKwkJCQllY2hvIFBhdGNoaW5nICR4CisJ CQkJcGF0Y2ggLXAxIC1pICIkeCIKKwkJCQljZCAiJHdya3NyYyIKKwkJZXNhYworCWRvbmUKKwor CWlmIFsgIiRYQlBTX1RBUkdFVF9MSUJDIiA9ICJtdXNsIiBdOyB0aGVuCisJZm9yIHggaW4gJEZJ TEVTRElSL211c2wtcGF0Y2hlcy8qOyBkbworCQljYXNlICIke3gjIyovfSIgaW4KKwkJCWNocm9t aXVtKi5wYXRjaCkKKwkJCQljZCBzcmMKKwkJCQllY2hvIFBhdGNoaW5nICR4CisJCQkJcGF0Y2gg LXAxIC1pICIkeCIKKwkJCQljZCAiJHdya3NyYyIKKwkJCQk7OworCQkJZWxlY3Ryb24qLnBhdGNo KQorCQkJCWNkIHNyYy9lbGVjdHJvbgorCQkJCWVjaG8gUGF0Y2hpbmcgJHgKKwkJCQlwYXRjaCAt cDEgLWkgIiR4IgorCQkJCWNkICIkd3Jrc3JjIgorCQllc2FjCisJZG9uZQorCWZpCit9CisKK3By ZV9jb25maWd1cmUoKSB7CisJY2QgJHdya3NyYworCSMgU2lnaCwgZWxlY3Ryb24gdXNlcyBnaXQg YW0uLi4KKwlweXRob24yIHNyYy9lbGVjdHJvbi9zY3JpcHQvbGlzdF9wYXRjaF90YXJnZXRzLnB5 IHNyYy9lbGVjdHJvbi9wYXRjaGVzL2NvbmZpZy5qc29uIHwgd2hpbGUgcmVhZCAtciByZXBvcGF0 aDsgZG8KKwkJY2QgIiR3cmtzcmMiLyIkcmVwb3BhdGgiCisJCWdpdCBpbml0IC1xCisJCWdpdCBj b25maWcgImdjLmF1dG8iIDAKKwkJaWYgWyAiJHJlcG9wYXRoIiAhPSAic3JjIiBdOyB0aGVuCisJ CQllY2hvICIvJHtyZXBvcGF0aCNzcmMvfSIgPj4gIiR3cmtzcmMvJGJ1aWxkX3dya3NyYy8uZ2l0 aWdub3JlIgorCQlmaQorCQlnaXQgYWRkIC4KKwkJZ2l0IC1jICd1c2VyLm5hbWU9RWxlY3Ryb24g YnVpbGQnIC1jICd1c2VyLmVtYWlsPWVsZWN0cm9uQGVidWlsZCcgXAorCQkJY29tbWl0IC1xIC1t ICIuIiB8fCB0cnVlCisJZG9uZQorCisJcHl0aG9uMiBzcmMvZWxlY3Ryb24vc2NyaXB0L2FwcGx5 X2FsbF9wYXRjaGVzLnB5IHNyYy9lbGVjdHJvbi9wYXRjaGVzL2NvbmZpZy5qc29uCisKKwljZCAi JGJ1aWxkX3dya3NyYyIKKworCSMgaHR0cHM6Ly9ncm91cHMuZ29vZ2xlLmNvbS9hL2Nocm9taXVt Lm9yZy9kL3RvcGljL2Nocm9taXVtLXBhY2thZ2Vycy85SlgxTjJuZjRQVS9kaXNjdXNzaW9uCisJ dG91Y2ggY2hyb21lL3Rlc3QvZGF0YS93ZWJ1aS9pMThuX3Byb2Nlc3NfY3NzX3Rlc3QuaHRtbAor CSMgVXNlIHRoZSBmaWxlIGF0IHJ1biB0aW1lIGluc3RlYWQgb2YgZWZmZWN0aXZlbHkgY29tcGls aW5nIGl0IGluCisJc2VkICdzfC8vdGhpcmRfcGFydHkvdXNiX2lkcy91c2IuaWRzfC91c3Ivc2hh cmUvaHdkYXRhL3VzYi5pZHN8ZycgXAorCQktaSBzZXJ2aWNlcy9kZXZpY2UvcHVibGljL2NwcC91 c2IvQlVJTEQuZ24KKworCW1rZGlyIC1wIHRoaXJkX3BhcnR5L25vZGUvbGludXgvbm9kZS1saW51 eC14NjQvYmluCisJbG4gLXMgL3Vzci9iaW4vbm9kZSB0aGlyZF9wYXJ0eS9ub2RlL2xpbnV4L25v ZGUtbGludXgteDY0L2Jpbi8KKworCSMgcmV1c2FibGUgc3lzdGVtIGxpYnJhcnkgc2V0dGluZ3MK Kwlsb2NhbCB1c2Vfc3lzdGVtPSIKKwkJZmZtcGVnCisJCWZsYWMKKwkJZm9udGNvbmZpZworCQlm cmVldHlwZQorCQloYXJmYnV6ei1uZworCQlsaWJkcm0KKwkJbGliZXZlbnQKKwkJbGlianBlZwor CQlsaWJwbmcKKwkJbGlid2VicAorCQlsaWJ4bWwKKwkJbGlieHNsdAorCQlvcHVzCisJCXJlMgor CQlzbmFwcHkKKwkJeWFzbQorCQkiCisJZm9yIF9saWIgaW4gJHVzZV9zeXN0ZW0gbGlianBlZ190 dXJibzsgZG8KKwkJbXNnX25vcm1hbCAiUmVtb3ZpbmcgYnVpbGRzY3JpcHRzIGZvciBzeXN0ZW0g cHJvdmlkZWQgJF9saWJcbiIKKwkJZmluZCAtdHlwZSBmIC1wYXRoICIqdGhpcmRfcGFydHkvJF9s aWIvKiIgXAorCQkJXCEgLXBhdGggIip0aGlyZF9wYXJ0eS8kX2xpYi9jaHJvbWl1bS8qIiBcCisJ CQlcISAtcGF0aCAiKnRoaXJkX3BhcnR5LyRfbGliL2dvb2dsZS8qIiBcCisJCQlcISAtcGF0aCAn Li9iYXNlL3RoaXJkX3BhcnR5L2ljdS8qJyBcCisJCQlcISAtcGF0aCAnLi90aGlyZF9wYXJ0eS9s aWJ4bWwvKicgXAorCQkJXCEgLXBhdGggJy4vdGhpcmRfcGFydHkvcGRmaXVtL3RoaXJkX3BhcnR5 L2ZyZWV0eXBlL2luY2x1ZGUvcHN0YWJsZXMuaCcgXAorCQkJXCEgLXBhdGggJy4vdGhpcmRfcGFy dHkveWFzbS9ydW5feWFzbS5weScgXAorCQkJXCEgLXJlZ2V4ICcuKlwuXChnblx8Z25pXHxpc29s YXRlXHxweVwpJyBcCisJCQktZGVsZXRlCisJZG9uZQorCisKKwltc2dfbm9ybWFsICJSZXBsYWNp bmcgZ24gZmlsZXNcbiIKKwlweXRob24yIGJ1aWxkL2xpbnV4L3VuYnVuZGxlL3JlcGxhY2VfZ25f ZmlsZXMucHkgLS1zeXN0ZW0tbGlicmFyaWVzIFwKKwkJJHVzZV9zeXN0ZW0KKwl0aGlyZF9wYXJ0 eS9saWJhZGRyZXNzaW5wdXQvY2hyb21pdW0vdG9vbHMvdXBkYXRlLXN0cmluZ3MucHkKK30KKwor X2duX2ZsYWdzKCkgeworCWVjaG8gJCoKK30KKworZG9fY29uZmlndXJlKCkgeworCWNkIHRoaXJk X3BhcnR5L2VsZWN0cm9uX25vZGUKKworCS4vY29uZmlndXJlIC0tcHJlZml4PS91c3IgXAorCQkt LXNoYXJlZC16bGliIFwKKwkJLS1zaGFyZWQtbGlidXYgXAorCQktLXNoYXJlZC1vcGVuc3NsIFwK KwkJLS1zaGFyZWQtY2FyZXMgXAorCQktLW9wZW5zc2wtdXNlLWRlZi1jYS1zdG9yZSBcCisJCS0t d2l0aG91dC1ucG0gXAorCQktLXdpdGhvdXQtZHRyYWNlIFwKKwkJLS13aXRob3V0LWJ1bmRsZWQt djgKKworCWNkICIkd3Jrc3JjLyRidWlsZF93cmtzcmMiL2VsZWN0cm9uCisJeWFybiBpbnN0YWxs CisJZWNobyAkd3Jrc3JjLyRidWlsZF93cmtzcmMKKwljZCAiJHdya3NyYy8kYnVpbGRfd3Jrc3Jj IgorCisJbXNnX25vcm1hbCAiQm9vdHN0cmFwcGluZyBHTlxuIgorCWxvY2FsIF9jPSQoX2duX2Zs YWdzIGlzX2NsYW5nPXRydWUgXAorCQl1c2Vfc3lzcm9vdD1mYWxzZSBcCisJCXRyZWF0X3dhcm5p bmdzX2FzX2Vycm9ycz1mYWxzZSBcCisJCWZhdGFsX2xpbmtlcl93YXJuaW5ncz1mYWxzZSBcCisJ CWJpbnV0aWxzX3BhdGg9XCIvdXNyL2JpblwiIFwKKwkJdXNlX2N1c3RvbV9saWJjeHg9ZmFsc2Ug XAorCQl1c2VfZ29sZD1mYWxzZSBcCisJCXVzZV9hbGxvY2F0b3I9XCJub25lXCIgXAorCQl1c2Vf YWxsb2NhdG9yX3NoaW09ZmFsc2UgXAorCQl1c2VfdmFhcGk9dHJ1ZSBcCisJKQorCisjCUFSPSJh ciIgQ0M9IiR7Q0M6LWdjY30iIENYWD0iJHtDWFg6LWcrK30iIExEPSIke0NYWDotZysrfSIgXAor CUNDPSIke0NDOi1jbGFuZ30iIENYWD0iJHtDWFg6LWNsYW5nKyt9IiBMRD0iJHtDWFg6LWNsYW5n Kyt9IiBcCisJCXB5dGhvbjIgdG9vbHMvZ24vYm9vdHN0cmFwL2Jvb3RzdHJhcC5weSAtcyAtdiAt LWduLWdlbi1hcmdzICIkX2MiCisJCisJIyBHb29nbGUgQVBJIGtleXMgKHNlZSBodHRwOi8vd3d3 LmNocm9taXVtLm9yZy9kZXZlbG9wZXJzL2hvdy10b3MvYXBpLWtleXMpCisJIyBOb3RlOiBUaGVz ZSBhcmUgZm9yIFZvaWQgTGludXggdXNlIE9OTFkuCisJbXNnX25vcm1hbCAiQ29uZmlndXJpbmcg YnVpbGRcbiIKKwlfYz0kKF9nbl9mbGFncyBcCisJCWJsaW5rX3N5bWJvbF9sZXZlbD0wIFwKKwkJ Y2xhbmdfdXNlX2Nocm9tZV9wbHVnaW5zPWZhbHNlIFwKKwkJY2xvc3VyZV9jb21waWxlPXRydWUg XAorCQljdXN0b21fdG9vbGNoYWluPVwiLy9idWlsZC90b29sY2hhaW4vbGludXgvdW5idW5kbGU6 ZGVmYXVsdFwiIFwKKwkJZW5hYmxlX2hhbmdvdXRfc2VydmljZXNfZXh0ZW5zaW9uPXRydWUgXAor CQllbmFibGVfbmFjbF9ub25zZmk9ZmFsc2UgXAorCQllbmFibGVfbmFjbD1mYWxzZSBcCisJCWVu YWJsZV9wcmVjb21waWxlZF9oZWFkZXJzPWZhbHNlIFwKKwkJZmF0YWxfbGlua2VyX3dhcm5pbmdz PWZhbHNlIFwKKwkJZmZtcGVnX2JyYW5kaW5nPVwiQ2hyb21lXCIgXAorCQlmaWVsZHRyaWFsX3Rl c3RpbmdfbGlrZV9vZmZpY2lhbF9idWlsZD10cnVlIFwKKwkJZ29sZF9wYXRoPVwiL3Vzci9iaW4v bGQuZ29sZFwiIFwKKwkJZ29vZ2xlX2FwaV9rZXk9XCJBSXphU3lBOWdXYXpLYUhhTklQUGcyaHJN ajZfWlNHOEFGbXE3MzhcIiBcCisJCWdvb2dsZV9kZWZhdWx0X2NsaWVudF9pZD1cIjEyNjY1OTE0 OTQyMy1ob282aWNrYmszcDF1MnFqc2RzcDBkZGNpdXJmdmI0dC5hcHBzLmdvb2dsZXVzZXJjb250 ZW50LmNvbVwiIFwKKwkJZ29vZ2xlX2RlZmF1bHRfY2xpZW50X3NlY3JldD1cIl9vekl4MkQtREtt X3NlXzJOUHdWNGw1YlwiIFwKKwkJaG9zdF90b29sY2hhaW49XCIvL2J1aWxkL3Rvb2xjaGFpbi9s aW51eC91bmJ1bmRsZTpkZWZhdWx0XCIgXAorCQlpY3VfdXNlX2RhdGFfZmlsZT10cnVlIFwKKwkJ aXNfY2xhbmc9dHJ1ZSBcCisJCWlzX2NvbXBvbmVudF9idWlsZD1mYWxzZSBcCisJCWlzX2RlYnVn PSRfaXNfZGVidWcgXAorCQlpc19kZXNrdG9wX2xpbnV4PXRydWUgXAorCQlsaW51eF91c2VfYnVu ZGxlZF9iaW51dGlscz1mYWxzZSBcCisJCXByb3ByaWV0YXJ5X2NvZGVjcz10cnVlIFwKKwkJc3lt Ym9sX2xldmVsPTAgXAorCQl0cmVhdF93YXJuaW5nc19hc19lcnJvcnM9ZmFsc2UgXAorCQl1c2Vf YWxsb2NhdG9yX3NoaW09ZmFsc2UgXAorCQl1c2VfYWxsb2NhdG9yPVwibm9uZVwiIFwKKwkJdXNl X2N1cHM9dHJ1ZSBcCisJCXVzZV9jdXN0b21fbGliY3h4PWZhbHNlIFwKKwkJdXNlX2dub21lX2tl eXJpbmc9ZmFsc2UgXAorCQl1c2VfZ29sZD1mYWxzZSBcCisJCXVzZV9sbGQ9ZmFsc2UgXAorCQl1 c2VfcHVsc2VhdWRpbz1mYWxzZSBcCisJCXVzZV9zeXNyb290PWZhbHNlIFwKKwkJdXNlX3N5c3Rl bV9oYXJmYnV6ej10cnVlIFwKKwkJaW1wb3J0XChcIi8vZWxlY3Ryb24vYnVpbGQvYXJncy9yZWxl YXNlLmduXCJcKSBcCisJKQorCisJQVI9ImFyIiBDQz0iY2xhbmciIENYWD0iY2xhbmcrKyIgTEQ9 ImNsYW5nKysiIE5NPS91c3IvYmluL25tIFwKKwkJb3V0L1JlbGVhc2UvZ24gZ2VuIG91dC8kX2J1 aWxkdHlwZSAtLWFyZ3M9IiRfYyIKK30KKworZG9fYnVpbGQoKSB7CisJbXNnX25vcm1hbCAiTmlu amEgdHVydGxlcyBHTyFcbiIKKwluaW5qYSAtQyBvdXQvUmVsZWFzZSB0aGlyZF9wYXJ0eS9lbGVj dHJvbl9ub2RlOmhlYWRlcnMKKworCSMgZmluYWwgbGluayBuZWVkcyBsb3RzIG9mIGZpbGUgZGVz Y3JpcHRvcnMKKwl1bGltaXQgLW4gMjA0OAorCisJbmluamEgLUMgb3V0LyRfYnVpbGR0eXBlIGVs ZWN0cm9uCisJIyBmaW5pc2ggcmVzdCBvZiB0aGUgYnVpbGQKKwlzdHJpcCAtcyBvdXQvJF9idWls ZHR5cGUvZWxlY3Ryb24KKwluaW5qYSAtQyBvdXQvJF9idWlsZHR5cGUgZWxlY3Ryb25fZGlzdF96 aXAKK30KKworZG9faW5zdGFsbCgpIHsKKwl2bWtkaXIgL3Vzci9saWIvJHBrZ25hbWUgCisJdm1r ZGlyIC91c3IvaW5jbHVkZS8kcGtnbmFtZQorCWJzZHRhciAteGYgb3V0LyRfYnVpbGR0eXBlL2Rp c3QuemlwIC1DICIkREVTVERJUi91c3IvbGliLyRwa2duYW1lIgorCisJY2htb2QgdStzICIkREVT VERJUi91c3IvbGliLyRwa2duYW1lL2Nocm9tZS1zYW5kYm94IgorCisJY3Agb3V0LyRfYnVpbGR0 eXBlL2dlbi9ub2RlX2hlYWRlcnMudGFyLmd6ICIkREVTVERJUiIvdXNyL2luY2x1ZGUvJHBrZ25h bWUKKworCXZta2RpciAvdXNyL2JpbgorCWxuIC1zIC4uL2xpYi8kcGtnbmFtZS9lbGVjdHJvbiAi JERFU1RESVIiL3Vzci9iaW4KK30KCkZyb20gZmUxZDVhMTdhNTFkNzdhOTgyYTE1NjZjYmQxNzVm NDNhNmQ3ZjZkYiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSm9obiA8bWVAam9obm55 bmF0b3IuZGV2PgpEYXRlOiBGcmksIDggTWF5IDIwMjAgMTk6MTc6MDkgKzAyMDAKU3ViamVjdDog W1BBVENIIDMvM10gdnNjb2RlOiBidWlsdCBhZ2FpbnN0IHN5c3RlbSBlbGVjdHJvbgoKLS0tCiAu Li4vdnNjb2RlL3BhdGNoZXMvZG9udC1kb3dubG9hZC1mZm1wZWcucGF0Y2ggfCAxNCArKysrKysr KysrCiBzcmNwa2dzL3ZzY29kZS9wYXRjaGVzL2ZpeF9kaXIucGF0Y2ggICAgICAgICAgfCAgNiAr Ky0tLQogc3JjcGtncy92c2NvZGUvdGVtcGxhdGUgICAgICAgICAgICAgICAgICAgICAgIHwgMjYg KysrKysrKysrKysrKysrLS0tLQogMyBmaWxlcyBjaGFuZ2VkLCAzOCBpbnNlcnRpb25zKCspLCA4 IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvdnNjb2RlL3BhdGNoZXMv ZG9udC1kb3dubG9hZC1mZm1wZWcucGF0Y2gKCmRpZmYgLS1naXQgYS9zcmNwa2dzL3ZzY29kZS9w YXRjaGVzL2RvbnQtZG93bmxvYWQtZmZtcGVnLnBhdGNoIGIvc3JjcGtncy92c2NvZGUvcGF0Y2hl cy9kb250LWRvd25sb2FkLWZmbXBlZy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAwMC4uOTVlZWUzNjFlMWIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3ZzY29k ZS9wYXRjaGVzL2RvbnQtZG93bmxvYWQtZmZtcGVnLnBhdGNoCkBAIC0wLDAgKzEsMTQgQEAKK2Rp ZmYgLS1naXQgYS9idWlsZC9ndWxwZmlsZS52c2NvZGUuanMgYi9idWlsZC9ndWxwZmlsZS52c2Nv ZGUuanMKK2luZGV4IDM0ODhkN2I1MWMuLjczMTI4MmE4ODEgMTAwNjQ0CistLS0gYS9idWlsZC9n dWxwZmlsZS52c2NvZGUuanMKKysrKyBiL2J1aWxkL2d1bHBmaWxlLnZzY29kZS5qcworQEAgLTI2 Nyw3ICsyNjcsNyBAQCBmdW5jdGlvbiBwYWNrYWdlVGFzayhwbGF0Zm9ybSwgYXJjaCwgc291cmNl Rm9sZGVyTmFtZSwgZGVzdGluYXRpb25Gb2xkZXJOYW1lLCBvcAorIAkJbGV0IHJlc3VsdCA9IGFs bAorIAkJCS5waXBlKHV0aWwuc2tpcERpcmVjdG9yaWVzKCkpCisgCQkJLnBpcGUodXRpbC5maXhX aW4zMkRpcmVjdG9yeVBlcm1pc3Npb25zKCkpCistCQkJLnBpcGUoZWxlY3Ryb24oXy5leHRlbmQo e30sIGNvbmZpZywgeyBwbGF0Zm9ybSwgYXJjaCwgZmZtcGVnQ2hyb21pdW06IHRydWUgfSkpKQor KwkJCS5waXBlKGVsZWN0cm9uKF8uZXh0ZW5kKHt9LCBjb25maWcsIHsgcGxhdGZvcm0sIGFyY2gs IGZmbXBlZ0Nocm9taXVtOiBmYWxzZSB9KSkpCisgCQkJLnBpcGUoZmlsdGVyKFsnKionLCAnIUxJ Q0VOU0UnLCAnIUxJQ0VOU0VTLmNocm9taXVtLmh0bWwnLCAnIXZlcnNpb24nXSwgeyBkb3Q6IHRy dWUgfSkpOworIAorIAkJaWYgKHBsYXRmb3JtID09PSAnbGludXgnKSB7CisgCmRpZmYgLS1naXQg YS9zcmNwa2dzL3ZzY29kZS9wYXRjaGVzL2ZpeF9kaXIucGF0Y2ggYi9zcmNwa2dzL3ZzY29kZS9w YXRjaGVzL2ZpeF9kaXIucGF0Y2gKaW5kZXggNzk5ZjdlYzkxNTkuLjdhMGU2MDkxYTRjIDEwMDY0 NAotLS0gYS9zcmNwa2dzL3ZzY29kZS9wYXRjaGVzL2ZpeF9kaXIucGF0Y2gKKysrIGIvc3JjcGtn cy92c2NvZGUvcGF0Y2hlcy9maXhfZGlyLnBhdGNoCkBAIC0yMCw3ICsyMCw3IEBAIGluZGV4IGI4 NTUyNWZiZDA0Mi4uZGM3NjE3MDUxYjk1IDEwMDY0NAogIENvbW1lbnQ9Q29kZSBFZGl0aW5nLiBS ZWRlZmluZWQuCiAgR2VuZXJpY05hbWU9VGV4dCBFZGl0b3IKIC1FeGVjPUBARVhFQ0BAIC0tbm8t c2FuZGJveCAtLW9wZW4tdXJsICVVCi0rRXhlYz0vdXNyL2xpYi9AQE5BTUVAQC9AQE5BTUVAQCAt LW5vLXNhbmRib3ggLS1vcGVuLXVybCAlVQorK0V4ZWM9L3Vzci9saWIvQEBOQU1FQEAvYmluL0BA TkFNRUBAIC0tbm8tc2FuZGJveCAtLW9wZW4tdXJsICVVCiAgSWNvbj1AQElDT05AQAogIFR5cGU9 QXBwbGljYXRpb24KICBOb0Rpc3BsYXk9dHJ1ZQpAQCAtMzMsNyArMzMsNyBAQCBpbmRleCBiOTc1 ZTEwOTRhMmMuLmEwOTRjYzM2ZTgxMCAxMDA2NDQKICBDb21tZW50PUNvZGUgRWRpdGluZy4gUmVk ZWZpbmVkLgogIEdlbmVyaWNOYW1lPVRleHQgRWRpdG9yCiAtRXhlYz1AQEVYRUNAQCAtLW5vLXNh bmRib3ggLS11bml0eS1sYXVuY2ggJUYKLStFeGVjPS91c3IvbGliL0BATkFNRUBAL0BATkFNRUBA IC0tbm8tc2FuZGJveCAtLXVuaXR5LWxhdW5jaCAlRgorK0V4ZWM9L3Vzci9saWIvQEBOQU1FQEAv YmluL0BATkFNRUBAIC0tbm8tc2FuZGJveCAtLXVuaXR5LWxhdW5jaCAlRgogIEljb249QEBJQ09O QEAKICBUeXBlPUFwcGxpY2F0aW9uCiAgU3RhcnR1cE5vdGlmeT1mYWxzZQpAQCAtNDIsNSArNDIs NSBAQCBpbmRleCBiOTc1ZTEwOTRhMmMuLmEwOTRjYzM2ZTgxMCAxMDA2NDQKICBbRGVza3RvcCBB Y3Rpb24gbmV3LWVtcHR5LXdpbmRvd10KICBOYW1lPU5ldyBFbXB0eSBXaW5kb3cKIC1FeGVjPUBA RVhFQ0BAIC0tbm8tc2FuZGJveCAtLW5ldy13aW5kb3cgJUYKLStFeGVjPS91c3IvbGliL0BATkFN RUBAL0BATkFNRUBAIC0tbm8tc2FuZGJveCAtLW5ldy13aW5kb3cgJUYKKytFeGVjPS91c3IvbGli L2Jpbi9AQE5BTUVAQC9AQE5BTUVAQCAtLW5vLXNhbmRib3ggLS1uZXctd2luZG93ICVGCiAgSWNv bj1AQElDT05AQApkaWZmIC0tZ2l0IGEvc3JjcGtncy92c2NvZGUvdGVtcGxhdGUgYi9zcmNwa2dz L3ZzY29kZS90ZW1wbGF0ZQppbmRleCBmYWU5NmIxZTMzMi4uZTI3ZTFjMWY4ZDggMTAwNjQ0Ci0t LSBhL3NyY3BrZ3MvdnNjb2RlL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvdnNjb2RlL3RlbXBsYXRl CkBAIC0yLDkgKzIsMTEgQEAKIHBrZ25hbWU9dnNjb2RlCiB2ZXJzaW9uPTEuNDQuMgogcmV2aXNp b249MQorX2VsZWN0cm9udmVyPTcuMi4zCiBob3N0bWFrZWRlcGVuZHM9InBrZy1jb25maWcgcHl0 aG9uIG5vZGVqcy1sdHMtMTAgeWFybiB0YXIiCi1tYWtlZGVwZW5kcz0ibGlieGtiZmlsZS1kZXZl bCBsaWJzZWNyZXQtZGV2ZWwiCi1kZXBlbmRzPSJsaWJYdHN0IGxpYnhrYmZpbGUgbnNzIGRlamF2 dS1mb250cy10dGYgeGRnLXV0aWxzIgorbWFrZWRlcGVuZHM9ImxpYnhrYmZpbGUtZGV2ZWwgbGli c2VjcmV0LWRldmVsIGVsZWN0cm9uNyIKK2RlcGVuZHM9InJpcGdyZXAgZWxlY3Ryb243IgorZGVw ZW5kcz0ibGliWHRzdCBsaWJ4a2JmaWxlIG5zcyBkZWphdnUtZm9udHMtdHRmIHhkZy11dGlscyBl bGVjdHJvbjciCiBzaG9ydF9kZXNjPSJNaWNyb3NvZnQgQ29kZSBmb3IgTGludXgiCiBtYWludGFp bmVyPSJzaGl6b25pYyA8cmVhbHRpYXpAZ21haWwuY29tPiIKIGxpY2Vuc2U9Ik1JVCIKQEAgLTE0 LDcgKzE2LDcgQEAgY2hlY2tzdW09OThkNGQ0OGYwZmQyODdjODRhYTQwY2Y3YzgwYzZkYzY4MjIy MGNlZjdlOTcyNTdhOGE1YzlkYzc0ZDA1ZmE5NwogcGF0Y2hfYXJncz0iLU5wMSIKIAogIyBEdWUg dG8gZWxlY3Ryb24KLWFyY2hzPSJ4ODZfNjQiCithcmNocz0ieDg2XzY0KiIKIG5vc3RyaXBfZmls ZXM9ImNvZGUtb3NzIgogCiBwcmVfYnVpbGQoKSB7CkBAIC0yNiw2ICsyOCw5IEBAIHByZV9idWls ZCgpIHsKIAlfVEVMRU1FVFJZX1VSTFM9IihkY1wuc2VydmljZXNcLnZpc3VhbHN0dWRpb1wuY29t KXwodm9ydGV4XC5kYXRhXC5taWNyb3NvZnRcLmNvbSkiCiAJX1JFUExBQ0VNRU5UPSJzLyRfVEVM RU1FVFJZX1VSTFMvMFwuMFwuMFwuMC9nIgogCWdyZXAgLXJsIC0tZXhjbHVkZS1kaXI9LmdpdCAt RSAkX1RFTEVNRVRSWV9VUkxTIHwgeGFyZ3Mgc2VkIC1pIC1FICRfUkVQTEFDRU1FTlQKKworCSMg c2V0IHVzZWQgZWxlY3Ryb24gdmVyc2lvbgorCXNlZCAtaSAicy9edGFyZ2V0IC4qL3RhcmdldCBc IiR7X2VsZWN0cm9udmVyfVwiLyIgLnlhcm5yYwogfQogCiBkb19idWlsZCgpIHsKQEAgLTM1LDE4 ICs0MCwyOSBAQCBkb19idWlsZCgpIHsKIAlfbWVtX2xpbWl0PSItLW1heF9vbGRfc3BhY2Vfc2l6 ZT00MDk1IgogCiAJZXhwb3J0IE5PREVfT1BUSU9OUz0iJHtfbWVtX2xpbWl0fSIKLQl5YXJuIGlu c3RhbGwgLS1pZ25vcmUtZW5naW5lcyAtLWFyY2g9eDY0CisJL3Vzci9saWIvbm9kZV9tb2R1bGVz L25wbS9iaW4vbm9kZS1neXAtYmluL25vZGUtZ3lwIGluc3RhbGwgXAorCQktLXRhcmdldD0kX2Vs ZWN0cm9udmVyIFwKKwkJLS10YXJiYWxsPS91c3IvaW5jbHVkZS9lbGVjdHJvbjcvbm9kZV9oZWFk ZXJzLnRhci5negorCXlhcm4gaW5zdGFsbCAtLWlnbm9yZS1lbmdpbmVzIC0tZnJvemVuLWxvY2tm aWxlIC0tYXJjaD14NjQKKwlleHBvcnQgQ0ZMQUdTPSIkQ0ZMQUdTIC1JL3Vzci9pbmNsdWRlL25v ZGUiCiAJeWFybiBydW4gZ3VscCB2c2NvZGUtbGludXgteDY0LW1pbgogfQogCiBkb19pbnN0YWxs KCkgewogCXZta2RpciB1c3IvbGliL2NvZGUtb3NzCi0JdmNvcHkgLi4vVlNDb2RlLWxpbnV4LXg2 NC8qIHVzci9saWIvY29kZS1vc3MKKwl2Y29weSAuLi9WU0NvZGUtbGludXgteDY0L3Jlc291cmNl cyB1c3IvbGliL2NvZGUtb3NzCisJdmNvcHkgLi4vVlNDb2RlLWxpbnV4LXg2NC9iaW4gdXNyL2xp Yi9jb2RlLW9zcwogCXZta2RpciB1c3IvYmluCiAJbG4gLXNmIC91c3IvbGliL2NvZGUtb3NzL2Jp bi9jb2RlLW9zcyAke0RFU1RESVJ9L3Vzci9iaW4vCiAJdm1rZGlyIHVzci9zaGFyZS9hcHBsaWNh dGlvbnMKIAlsbiAtc2YgL3Vzci9saWIvY29kZS1vc3MvcmVzb3VyY2VzL2FwcC9yZXNvdXJjZXMv bGludXgvY29kZS5kZXNrdG9wICR7REVTVERJUn0vdXNyL3NoYXJlL2FwcGxpY2F0aW9ucy9jb2Rl LW9zcy5kZXNrdG9wCiAJdm1rZGlyIHVzci9zaGFyZS9waXhtYXBzCiAJbG4gLXNmIC91c3IvbGli L2NvZGUtb3NzL3Jlc291cmNlcy9hcHAvcmVzb3VyY2VzL2xpbnV4L2NvZGUucG5nICR7REVTVERJ Un0vdXNyL3NoYXJlL3BpeG1hcHMvY29kZS1vc3MucG5nCisJbG4gLXNmIC91c3IvYmluL3JnICR7 REVTVERJUn0vdXNyL2xpYi9jb2RlLW9zcy9yZXNvdXJjZXMvYXBwL25vZGVfbW9kdWxlcy5hc2Fy LnVucGFja2VkL3ZzY29kZS1yaXBncmVwL2Jpbi9yZworCXZzZWQgXAorCQktZSAic3xWU0NPREVf UEFUSD0vdXNyL3NoYXJlL3ZzY29kZXxWU0NPREVfUEFUSD0vdXNyL2xpYi92c2NvZGV8ZyIgXAor CQktZSAic3xFTEVDVFJPTj0uKnxFTEVDVFJPTj0vdXNyL2xpYi9lbGVjdHJvbiR7X2VsZWN0cm9u dmVyJSUuKn0vZWxlY3Ryb258ZyIgXAorCQktZSAnc3wiJENMSSJ8IiRDTEkiIC0tYXBwPSIke1ZT Q09ERV9QQVRIfS9yZXNvdXJjZXMvYXBwInxnJyBcCisJCS1pICIkREVTVERJUiIvdXNyL2xpYi9j b2RlLW9zcy9iaW4vY29kZS1vc3MKIAl2bGljZW5zZSBMSUNFTlNFLnR4dAogfQo= --===============3935803761597429809==--