From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-1.0 required=5.0 tests=ALL_TRUSTED autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 15683 invoked from network); 9 May 2020 17:04:37 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 9 May 2020 17:04:37 -0000 Content-Type: multipart/mixed; boundary="===============6122487606057044206==" MIME-Version: 1.0 Subject: =?utf8?q?Re=3A_=5BPR_PATCH=5D_=5BUpdated=5D_=5Breally_wip=5D_system_wide_electron_package?= To: ml@inbox.vuxu.org From: Johnnynator Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Sat, 09 May 2020 19:04:36 +0200 List-Id: Message-ID: <20200509170436.xJL1zLiYTbD5ZLC1gcxDx0l0lNcCB4CzHPhVZ9YqJVA@z> GitHub notification mails are now in MIME to allow UTF8. --===============6122487606057044206== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgSm9obm55bmF0b3IgYWdhaW5zdCBt YXN0ZXIgb24gdGhlIHZvaWQtcGFja2FnZXMgcmVwb3NpdG9yeQoKaHR0cHM6Ly9naXRodWIuY29t L0pvaG5ueW5hdG9yL3ZvaWQtcGFja2FnZXMgZWxlY3Ryb24KaHR0cHM6Ly9naXRodWIuY29tL3Zv aWQtbGludXgvdm9pZC1wYWNrYWdlcy9wdWxsLzIxNzU4CgpbcmVhbGx5IHdpcF0gc3lzdGVtIHdp ZGUgZWxlY3Ryb24gcGFja2FnZQpUZXN0IHJlcG86IGh0dHBzOi8vdm9pZC5qb2hubnluYXRvci5k ZXYvZWxlY3Ryb24vDQoNCnRvIGRvOiByZWludHJvZHVjZSBzeXN0ZW0gemxpYiBwYXRjaA0KdG8g ZG86IGVsZWN0cm9uOCBwYWNrYWdlIGZvciBhbGwgdGhlIG90aGVyIGVsZWN0cm9uIGFwcHMNCnRv IGRvOiBicmluZyB0aGUgdGVtcGxhdGUgbW9yZSBpbiBsaW5lIHdpdGggdGhlIGNocm9taXVtIG9u ZSBzdGlsZSB3aXNlDQoNClRoYW5rcyB0byBAQ29naXRyaSB3aG8gZGlkIHByZXBhcmUgbW9zdCBv ZiB0aGlzIHdvcmsNCg0KUC5zLiBJJ20gYWxyZWFkeSBzb3JyeSBmb3IgdGhlIGJ1aWxkIHNlcnZl ciB0byBnZXQgYSAzcmQgY2hyb21pdW0gcGFja2FnZSB0byBidWlsZCBvY2Nhc2lvbmFsbHkuCgpB IHBhdGNoIGZpbGUgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2th Z2VzL3B1bGwvMjE3NTgucGF0Y2ggaXMgYXR0YWNoZWQ= --===============6122487606057044206== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-electron-21758.patch" RnJvbSA0MTM4YjlkZDFiNDhhMWQ3NWYyMTlhOWEzNThiMWVjMzI2MWJmZTk1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKb2huIDxtZUBqb2hubnluYXRvci5kZXY+CkRhdGU6IEZyaSwg OCBNYXkgMjAyMCAxOToxNjozOSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMS8zXSBOZXcgcGFja2Fn ZTogZWxlY3Ryb243LTcuMi4zCgotLS0KIC4uLm11c2wtZGVmYXVsdC1wdGhyZWFkLXN0YWNrc2l6 ZS5wYXRjaC5wYXRjaCB8ICAzMSArCiAuLi4vY2hyb21pdW0tbXVzbC1zYW5kYm94LnBhdGNoLnBh dGNoICAgICAgICAgfCAxNzYgKysrKysKIC4uLnVtLW11c2xfY2Fub25pY2FsaXplX2ZpbGVfbmFt ZS5wYXRjaC5wYXRjaCB8ICAxMyArCiAuLi4vY2hyb21pdW0tbXVzbF9jZGVmcy5wYXRjaC5wYXRj aCAgICAgICAgICAgfCAgNDUgKysKIC4uLm11c2xfZGVmaW5lX3RlbXBfZmFpbHVyZV9yZXRyeS5w YXRjaC5wYXRjaCB8ICAxOCArCiAuLi4vY2hyb21pdW0tbXVzbF9kbnMucGF0Y2gucGF0Y2ggICAg ICAgICAgICAgfCAgNjEgKysKIC4uLi9jaHJvbWl1bS1tdXNsX2V4ZWluZm8ucGF0Y2gucGF0Y2gg ICAgICAgICB8ICA5NiArKysKIC4uLi9jaHJvbWl1bS1tdXNsX2Zwc3RhdGVfdC5wYXRjaC5wYXRj aCAgICAgICB8ICA0OCArKwogLi4uL2Nocm9taXVtLW11c2xfZ2V0Y29udGV4dC5wYXRjaC5wYXRj aCAgICAgIHwgIDI1ICsKIC4uLi9jaHJvbWl1bS1tdXNsX21hbGxpbmZvLnBhdGNoLnBhdGNoICAg ICAgICB8ICA2MSArKwogLi4uL2Nocm9taXVtLW11c2xfcHJlYWRfcHdyaXRlNjQucGF0Y2gucGF0 Y2ggIHwgIDE4ICsKIC4uLi9jaHJvbWl1bS1tdXNsX3B1c2hfYmFjay5wYXRjaC5wYXRjaCAgICAg ICB8ICAxMyArCiAuLi4vY2hyb21pdW0tbXVzbF9zaV9maWVsZHMucGF0Y2gucGF0Y2ggICAgICAg fCAgMTMgKwogLi4uL2Nocm9taXVtLW11c2xfc3RhY2tfc2l6ZS5wYXRjaC5wYXRjaCAgICAgIHwg IDQxICsKIC4uLi9jaHJvbWl1bS1tdXNsX3N0YWNrX3RyYWNlLnBhdGNoLnBhdGNoICAgICB8ICA0 NCArKwogLi4uL2Nocm9taXVtLW11c2xfdGNwX2xpc3Rlbi5wYXRjaC5wYXRjaCAgICAgIHwgIDE0 ICsKIC4uLi9jaHJvbWl1bS1tdXNsX3dvcmRzaXplLnBhdGNoLnBhdGNoICAgICAgICB8ICAyNCAr CiAuLi51bS0wMDEtdXBzdHJlYW1fY2hyb21lX2NsZWFuZXIucGF0Y2gucGF0Y2ggfCAgNzMgKysK IC4uLl9sb2dzX2Zyb21fdGVzdF9jaWxkX3Byb2Nlc3Nlcy5wYXRjaC5wYXRjaCB8IDM0MiArKysr KysrKwogLi4ucHN0cmVhbV9tb3ZlX2NoaWxkX3Byb2Nlc3NfbG9nLnBhdGNoLnBhdGNoIHwgNzMw ICsrKysrKysrKysrKysrKysrKwogLi4ucHN0cmVhbV91c2VfY2hpbGRwcm9jZXNzbG9nZ2VyLnBh dGNoLnBhdGNoIHwgMTg2ICsrKysrCiAuLi4tMDA1LXVwc3RyZWFtLWNocm9taXVtX3ZlcnNpb24u cGF0Y2gucGF0Y2ggfCAgMjYgKwogLi4uY2hyb21pdW0tY2hyb21pdW1fYXRrX29wdGlvbmFsLnBh dGNoLnBhdGNoIHwgIDE3ICsKIC4uLi9jaHJvbWl1bS1jbGFuZzEwX2dsc2xhbmcucGF0Y2gucGF0 Y2ggICAgICB8ICAyNSArCiAuLi4vY2hyb21pdW0tZml4LWNvbW1hbmRsaW5lLWluY2x1ZGUucGF0 Y2ggICAgfCAgNDQgKysKIC4uLi9jaHJvbWl1bS1maXgtc3VjZXNzLWRlZmluaXRpb24ucGF0Y2gg ICAgICB8ICAxNSArCiAuLi4vcGF0Y2hlcy9jaHJvbWl1bS1nbl9ib290c3RyYXBfbmluamEucGF0 Y2ggfCAgMzIgKwogLi4uL3BhdGNoZXMvY2hyb21pdW0taWN1X3UxNl9uZXh0LnBhdGNoLnBhdGNo IHwgIDEzICsKIC4uLi9maWxlcy9wYXRjaGVzL2Nocm9taXVtLWxpYmNfbWFsbG9jLnBhdGNoICB8 ICAyNiArCiAuLi5hLXNjcmlwdC10by1saXN0LXBhdGNoLXRhcmdldHMucGF0Y2gucGF0Y2ggfCAg NDIgKwogLi4uL3BhdGNoZXMvZWxlY3Ryb24tQnVpbGQtZml4ZXMucGF0Y2gucGF0Y2ggIHwgIDU3 ICsrCiAuLi5lY3Ryb24tZG9udC1hc3N1bWUtcHl0aG9uLWlzLXB5dGhvbjIucGF0Y2ggfCAgMTcg KwogLi4uL2ZpbGVzL3BhdGNoZXMvZWxlY3Ryb24tZml4LWluY2x1ZGVzLnBhdGNoIHwgIDE5ICsK IC4uLi9lbGVjdHJvbi1tanN1bml0LW5vdC1leHNpdC5wYXRjaC5wYXRjaCAgICB8ICA0NyArKwog c3JjcGtncy9lbGVjdHJvbjcvdGVtcGxhdGUgICAgICAgICAgICAgICAgICAgIHwgMjU3ICsrKysr KwogMzUgZmlsZXMgY2hhbmdlZCwgMjcwOSBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2 NDQgc3JjcGtncy9lbGVjdHJvbjcvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2wtZGVm YXVsdC1wdGhyZWFkLXN0YWNrc2l6ZS5wYXRjaC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNy Y3BrZ3MvZWxlY3Ryb243L2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsLXNhbmRib3gu cGF0Y2gucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2VsZWN0cm9uNy9maWxlcy9t dXNsLXBhdGNoZXMvY2hyb21pdW0tbXVzbF9jYW5vbmljYWxpemVfZmlsZV9uYW1lLnBhdGNoLnBh dGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9lbGVjdHJvbjcvZmlsZXMvbXVzbC1wYXRj aGVzL2Nocm9taXVtLW11c2xfY2RlZnMucGF0Y2gucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBz cmNwa2dzL2VsZWN0cm9uNy9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbXVzbF9kZWZpbmVf dGVtcF9mYWlsdXJlX3JldHJ5LnBhdGNoLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtn cy9lbGVjdHJvbjcvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2xfZG5zLnBhdGNoLnBh dGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9lbGVjdHJvbjcvZmlsZXMvbXVzbC1wYXRj aGVzL2Nocm9taXVtLW11c2xfZXhlaW5mby5wYXRjaC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0 IHNyY3BrZ3MvZWxlY3Ryb243L2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsX2Zwc3Rh dGVfdC5wYXRjaC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxlY3Ryb243L2Zp bGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsX2dldGNvbnRleHQucGF0Y2gucGF0Y2gKIGNy ZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2VsZWN0cm9uNy9maWxlcy9tdXNsLXBhdGNoZXMvY2hy b21pdW0tbXVzbF9tYWxsaW5mby5wYXRjaC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3Br Z3MvZWxlY3Ryb243L2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsX3ByZWFkX3B3cml0 ZTY0LnBhdGNoLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9lbGVjdHJvbjcvZmls ZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2xfcHVzaF9iYWNrLnBhdGNoLnBhdGNoCiBjcmVh dGUgbW9kZSAxMDA2NDQgc3JjcGtncy9lbGVjdHJvbjcvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9t aXVtLW11c2xfc2lfZmllbGRzLnBhdGNoLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtn cy9lbGVjdHJvbjcvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2xfc3RhY2tfc2l6ZS5w YXRjaC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxlY3Ryb243L2ZpbGVzL211 c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsX3N0YWNrX3RyYWNlLnBhdGNoLnBhdGNoCiBjcmVhdGUg bW9kZSAxMDA2NDQgc3JjcGtncy9lbGVjdHJvbjcvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVt LW11c2xfdGNwX2xpc3Rlbi5wYXRjaC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mv ZWxlY3Ryb243L2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsX3dvcmRzaXplLnBhdGNo LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9lbGVjdHJvbjcvZmlsZXMvcGF0Y2hl cy9jaHJvbWl1bS0wMDEtdXBzdHJlYW1fY2hyb21lX2NsZWFuZXIucGF0Y2gucGF0Y2gKIGNyZWF0 ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2VsZWN0cm9uNy9maWxlcy9wYXRjaGVzL2Nocm9taXVtLTAw Mi11cHN0cmVhbV9zYXZlX2xvZ3NfZnJvbV90ZXN0X2NpbGRfcHJvY2Vzc2VzLnBhdGNoLnBhdGNo CiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9lbGVjdHJvbjcvZmlsZXMvcGF0Y2hlcy9jaHJv bWl1bS0wMDMtdXBzdHJlYW1fbW92ZV9jaGlsZF9wcm9jZXNzX2xvZy5wYXRjaC5wYXRjaAogY3Jl YXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxlY3Ryb243L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0t MDA0LXVwc3RyZWFtX3VzZV9jaGlsZHByb2Nlc3Nsb2dnZXIucGF0Y2gucGF0Y2gKIGNyZWF0ZSBt b2RlIDEwMDY0NCBzcmNwa2dzL2VsZWN0cm9uNy9maWxlcy9wYXRjaGVzL2Nocm9taXVtLTAwNS11 cHN0cmVhbS1jaHJvbWl1bV92ZXJzaW9uLnBhdGNoLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQg c3JjcGtncy9lbGVjdHJvbjcvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1jaHJvbWl1bV9hdGtfb3B0 aW9uYWwucGF0Y2gucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2VsZWN0cm9uNy9m aWxlcy9wYXRjaGVzL2Nocm9taXVtLWNsYW5nMTBfZ2xzbGFuZy5wYXRjaC5wYXRjaAogY3JlYXRl IG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxlY3Ryb243L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tZml4 LWNvbW1hbmRsaW5lLWluY2x1ZGUucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2Vs ZWN0cm9uNy9maWxlcy9wYXRjaGVzL2Nocm9taXVtLWZpeC1zdWNlc3MtZGVmaW5pdGlvbi5wYXRj aAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxlY3Ryb243L2ZpbGVzL3BhdGNoZXMvY2hy b21pdW0tZ25fYm9vdHN0cmFwX25pbmphLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtn cy9lbGVjdHJvbjcvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1pY3VfdTE2X25leHQucGF0Y2gucGF0 Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2VsZWN0cm9uNy9maWxlcy9wYXRjaGVzL2No cm9taXVtLWxpYmNfbWFsbG9jLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9lbGVj dHJvbjcvZmlsZXMvcGF0Y2hlcy9lbGVjdHJvbi1BZGQtYS1zY3JpcHQtdG8tbGlzdC1wYXRjaC10 YXJnZXRzLnBhdGNoLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9lbGVjdHJvbjcv ZmlsZXMvcGF0Y2hlcy9lbGVjdHJvbi1CdWlsZC1maXhlcy5wYXRjaC5wYXRjaAogY3JlYXRlIG1v ZGUgMTAwNjQ0IHNyY3BrZ3MvZWxlY3Ryb243L2ZpbGVzL3BhdGNoZXMvZWxlY3Ryb24tZG9udC1h c3N1bWUtcHl0aG9uLWlzLXB5dGhvbjIucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dz L2VsZWN0cm9uNy9maWxlcy9wYXRjaGVzL2VsZWN0cm9uLWZpeC1pbmNsdWRlcy5wYXRjaAogY3Jl YXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxlY3Ryb243L2ZpbGVzL3BhdGNoZXMvZWxlY3Ryb24t bWpzdW5pdC1ub3QtZXhzaXQucGF0Y2gucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dz L2VsZWN0cm9uNy90ZW1wbGF0ZQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZWxlY3Ryb243L2ZpbGVz L211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsLWRlZmF1bHQtcHRocmVhZC1zdGFja3NpemUucGF0 Y2gucGF0Y2ggYi9zcmNwa2dzL2VsZWN0cm9uNy9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0t bXVzbC1kZWZhdWx0LXB0aHJlYWQtc3RhY2tzaXplLnBhdGNoLnBhdGNoCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5kMGMxMzYxYjhlZAotLS0gL2Rldi9udWxsCisrKyBi L3NyY3BrZ3MvZWxlY3Ryb243L2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsLWRlZmF1 bHQtcHRocmVhZC1zdGFja3NpemUucGF0Y2gucGF0Y2gKQEAgLTAsMCArMSwzMSBAQAorZGlmZiAt LWdpdCBhL2Jhc2UvdGhyZWFkaW5nL3BsYXRmb3JtX3RocmVhZF9saW51eC5jYyBiL2Jhc2UvdGhy ZWFkaW5nL3BsYXRmb3JtX3RocmVhZF9saW51eC5jYworaW5kZXggMDk1YzQ5Yi4uNTA0NGJiOCAx MDA2NDQKKy0tLSBhL2Jhc2UvdGhyZWFkaW5nL3BsYXRmb3JtX3RocmVhZF9saW51eC5jYworKysr IGIvYmFzZS90aHJlYWRpbmcvcGxhdGZvcm1fdGhyZWFkX2xpbnV4LmNjCitAQCAtMTg2LDcgKzE4 Niw3IEBAIHZvaWQgVGVybWluYXRlT25UaHJlYWQoKSB7fQorIAorIHNpemVfdCBHZXREZWZhdWx0 VGhyZWFkU3RhY2tTaXplKGNvbnN0IHB0aHJlYWRfYXR0cl90JiBhdHRyaWJ1dGVzKSB7CisgI2lm ICFkZWZpbmVkKFRIUkVBRF9TQU5JVElaRVIpCistICByZXR1cm4gMDsKKysgIHJldHVybiAoMSA8 PCAyMyk7CisgI2Vsc2UKKyAgIC8vIFRocmVhZFNhbml0aXplciBibG9hdHMgdGhlIHN0YWNrIGhl YXZpbHkuIEV2aWRlbmNlIGhhcyBiZWVuIHRoYXQgdGhlCisgICAvLyBkZWZhdWx0IHN0YWNrIHNp emUgaXNuJ3QgZW5vdWdoIGZvciBzb21lIGJyb3dzZXIgdGVzdHMuCitkaWZmIC0tZ2l0IGEvY2hy b21lL2FwcC9zaHV0ZG93bl9zaWduYWxfaGFuZGxlcnNfcG9zaXguY2MgYi9jaHJvbWUvYXBwL3No dXRkb3duX3NpZ25hbF9oYW5kbGVyc19wb3NpeC5jYworaW5kZXggNjIxZDQ0MS4uYmUyMTEwNiAx MDA2NDQKKy0tLSBhL2Nocm9tZS9hcHAvc2h1dGRvd25fc2lnbmFsX2hhbmRsZXJzX3Bvc2l4LmNj CisrKysgYi9jaHJvbWUvYXBwL3NodXRkb3duX3NpZ25hbF9oYW5kbGVyc19wb3NpeC5jYworQEAg LTE4NywxMSArMTg3LDExIEBAIHZvaWQgSW5zdGFsbFNodXRkb3duU2lnbmFsSGFuZGxlcnMoCisg ICBnX3NodXRkb3duX3BpcGVfcmVhZF9mZCA9IHBpcGVmZFswXTsKKyAgIGdfc2h1dGRvd25fcGlw ZV93cml0ZV9mZCA9IHBpcGVmZFsxXTsKKyAjaWYgIWRlZmluZWQoQUREUkVTU19TQU5JVElaRVIp CistICBjb25zdCBzaXplX3Qga1NodXRkb3duRGV0ZWN0b3JUaHJlYWRTdGFja1NpemUgPSBQVEhS RUFEX1NUQUNLX01JTiAqIDI7CisrICBjb25zdCBzaXplX3Qga1NodXRkb3duRGV0ZWN0b3JUaHJl YWRTdGFja1NpemUgPSBQVEhSRUFEX1NUQUNLX01JTiAqIDIgKjg7CisgI2Vsc2UKKyAgIC8vIEFT YW4gaW5zdHJ1bWVudGF0aW9uIGJsb2F0cyB0aGUgc3RhY2sgZnJhbWVzLCBzbyB3ZSBuZWVkIHRv IGluY3JlYXNlIHRoZQorICAgLy8gc3RhY2sgc2l6ZSB0byBhdm9pZCBoaXR0aW5nIHRoZSBndWFy ZCBwYWdlLgorLSAgY29uc3Qgc2l6ZV90IGtTaHV0ZG93bkRldGVjdG9yVGhyZWFkU3RhY2tTaXpl ID0gUFRIUkVBRF9TVEFDS19NSU4gKiA0OworKyAgY29uc3Qgc2l6ZV90IGtTaHV0ZG93bkRldGVj dG9yVGhyZWFkU3RhY2tTaXplID0gUFRIUkVBRF9TVEFDS19NSU4gKiA0ICo4OworICNlbmRpZgor ICAgU2h1dGRvd25EZXRlY3RvciogZGV0ZWN0b3IgPSBuZXcgU2h1dGRvd25EZXRlY3RvcigKKyAg ICAgICBnX3NodXRkb3duX3BpcGVfcmVhZF9mZCwgc3RkOjptb3ZlKHNodXRkb3duX2NhbGxiYWNr KSwgdGFza19ydW5uZXIpOwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9lbGVjdHJvbjcvZmlsZXMvbXVz bC1wYXRjaGVzL2Nocm9taXVtLW11c2wtc2FuZGJveC5wYXRjaC5wYXRjaCBiL3NyY3BrZ3MvZWxl Y3Ryb243L2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsLXNhbmRib3gucGF0Y2gucGF0 Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmY0ODVmNmNjNzVhCi0t LSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9lbGVjdHJvbjcvZmlsZXMvbXVzbC1wYXRjaGVzL2No cm9taXVtLW11c2wtc2FuZGJveC5wYXRjaC5wYXRjaApAQCAtMCwwICsxLDE3NiBAQAorZGlmZiAt LWdpdCBhL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9zeXNjYWxsX3BhcmFtZXRl cnNfcmVzdHJpY3Rpb25zLmNjIGIvc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5 c2NhbGxfcGFyYW1ldGVyc19yZXN0cmljdGlvbnMuY2MKK2luZGV4IDM0OGFiNmUuLjQ1NTBmOWUg MTAwNjQ0CistLS0gLi9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc3lzY2FsbF9w YXJhbWV0ZXJzX3Jlc3RyaWN0aW9ucy5jYworKysrIC4vc2FuZGJveC9saW51eC9zZWNjb21wLWJw Zi1oZWxwZXJzL3N5c2NhbGxfcGFyYW1ldGVyc19yZXN0cmljdGlvbnMuY2MKK0BAIC0xMzksMjEg KzEzOSwxMSBAQCBuYW1lc3BhY2Ugc2FuZGJveCB7CisgLy8gcHJlc2VudCAoYXMgaW4gbmV3ZXIg dmVyc2lvbnMgb2YgcG9zaXhfc3Bhd24pLgorIFJlc3VsdEV4cHIgUmVzdHJpY3RDbG9uZVRvVGhy ZWFkc0FuZEVQRVJNRm9yaygpIHsKKyAgIGNvbnN0IEFyZzx1bnNpZ25lZCBsb25nPiBmbGFncygw KTsKKy0KKy0gIC8vIFRPRE8obWRlbXBza3kpOiBFeHRlbmQgRFNMIHRvIHN1cHBvcnQgKGZsYWdz ICYgfm1hc2sxKSA9PSBtYXNrMi4KKy0gIGNvbnN0IHVpbnQ2NF90IGtBbmRyb2lkQ2xvbmVNYXNr ID0gQ0xPTkVfVk0gfCBDTE9ORV9GUyB8IENMT05FX0ZJTEVTIHwKKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgQ0xPTkVfU0lHSEFORCB8IENMT05FX1RIUkVBRCB8CistICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENMT05FX1NZU1ZTRU07CistICBjb25z dCB1aW50NjRfdCBrT2Jzb2xldGVBbmRyb2lkQ2xvbmVNYXNrID0ga0FuZHJvaWRDbG9uZU1hc2sg fCBDTE9ORV9ERVRBQ0hFRDsKKy0KKy0gIGNvbnN0IHVpbnQ2NF90IGtHbGliY1B0aHJlYWRGbGFn cyA9CistICAgICAgQ0xPTkVfVk0gfCBDTE9ORV9GUyB8IENMT05FX0ZJTEVTIHwgQ0xPTkVfU0lH SEFORCB8IENMT05FX1RIUkVBRCB8CistICAgICAgQ0xPTkVfU1lTVlNFTSB8IENMT05FX1NFVFRM UyB8IENMT05FX1BBUkVOVF9TRVRUSUQgfCBDTE9ORV9DSElMRF9DTEVBUlRJRDsKKy0gIGNvbnN0 IEJvb2xFeHByIGdsaWJjX3Rlc3QgPSBmbGFncyA9PSBrR2xpYmNQdGhyZWFkRmxhZ3M7CistCist ICBjb25zdCBCb29sRXhwciBhbmRyb2lkX3Rlc3QgPQorLSAgICAgIEFueU9mKGZsYWdzID09IGtB bmRyb2lkQ2xvbmVNYXNrLCBmbGFncyA9PSBrT2Jzb2xldGVBbmRyb2lkQ2xvbmVNYXNrLAorLSAg ICAgICAgICAgIGZsYWdzID09IGtHbGliY1B0aHJlYWRGbGFncyk7CisrICBjb25zdCBpbnQgcmVx dWlyZWQgPSBDTE9ORV9WTSB8IENMT05FX0ZTIHwgQ0xPTkVfRklMRVMgfCBDTE9ORV9TSUdIQU5E IHwKKysgICAgICAgICAgICAgICAgICAgICAgIENMT05FX1RIUkVBRCB8IENMT05FX1NZU1ZTRU07 CisrICBjb25zdCBpbnQgc2FmZSA9IENMT05FX1NFVFRMUyB8IENMT05FX1BBUkVOVF9TRVRUSUQg fCBDTE9ORV9DSElMRF9DTEVBUlRJRCB8CisrICAgICAgICAgICAgICAgICAgIENMT05FX0RFVEFD SEVEOworKyAgY29uc3QgQm9vbEV4cHIgdGhyZWFkX2Nsb25lX29rID0gKGZsYWdzJn5zYWZlKT09 cmVxdWlyZWQ7CisgCisgICAvLyBUaGUgZm9sbG93aW5nIHR3byBmbGFncyBhcmUgdGhlIHR3byBp bXBvcnRhbnQgZmxhZ3MgaW4gYW55IHZmb3JrLWVtdWxhdGluZworICAgLy8gY2xvbmUgY2FsbC4g RVBFUk0gYW55IGNsb25lIGNhbGwgdGhhdCBjb250YWlucyBib3RoIG9mIHRoZW0uCitAQCAtMTYz LDcgKzE1Myw3IEBAIFJlc3VsdEV4cHIgUmVzdHJpY3RDbG9uZVRvVGhyZWFkc0FuZEVQRVJNRm9y aygpIHsKKyAgICAgICBBbnlPZigoZmxhZ3MgJiAoQ0xPTkVfVk0gfCBDTE9ORV9USFJFQUQpKSA9 PSAwLAorICAgICAgICAgICAgIChmbGFncyAmIGtJbXBvcnRhbnRDbG9uZVZmb3JrRmxhZ3MpID09 IGtJbXBvcnRhbnRDbG9uZVZmb3JrRmxhZ3MpOworIAorLSAgcmV0dXJuIElmKElzQW5kcm9pZCgp ID8gYW5kcm9pZF90ZXN0IDogZ2xpYmNfdGVzdCwgQWxsb3coKSkKKysgIHJldHVybiBJZih0aHJl YWRfY2xvbmVfb2ssIEFsbG93KCkpCisgICAgICAgLkVsc2VJZihpc19mb3JrX29yX2Nsb25lX3Zm b3JrLCBFcnJvcihFUEVSTSkpCisgICAgICAgLkVsc2UoQ3Jhc2hTSUdTWVNDbG9uZSgpKTsKKyB9 CitkaWZmIC0tZ2l0IGEvc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5c2NhbGxf c2V0cy5jYyBiL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9zeXNjYWxsX3NldHMu Y2MKK2luZGV4IDdkYmNjODcuLjU4OTI2MmYgMTAwNjQ0CistLS0gLi9zYW5kYm94L2xpbnV4L3Nl Y2NvbXAtYnBmLWhlbHBlcnMvc3lzY2FsbF9zZXRzLmNjCisrKysgLi9zYW5kYm94L2xpbnV4L3Nl Y2NvbXAtYnBmLWhlbHBlcnMvc3lzY2FsbF9zZXRzLmNjCitAQCAtMzkxLDYgKzM5MSw3IEBAIGJv b2wgU3lzY2FsbFNldHM6OklzQWxsb3dlZFByb2Nlc3NTdGFydE9yRGVhdGgoaW50IHN5c25vKSB7 CisgI2lmIGRlZmluZWQoX19pMzg2X18pCisgICAgIGNhc2UgX19OUl93YWl0cGlkOgorICNlbmRp ZgorKyAgICBjYXNlIF9fTlJfc2V0X3RpZF9hZGRyZXNzOgorICAgICAgIHJldHVybiB0cnVlOwor ICAgICBjYXNlIF9fTlJfY2xvbmU6ICAvLyBTaG91bGQgYmUgcGFyYW1ldGVyLXJlc3RyaWN0ZWQu CisgICAgIGNhc2UgX19OUl9zZXRuczogIC8vIFByaXZpbGVnZWQuCitAQCAtNDAzLDcgKzQwNCw2 IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzQWxsb3dlZFByb2Nlc3NTdGFydE9yRGVhdGgoaW50IHN5 c25vKSB7CisgI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwg ZGVmaW5lZChfX21pcHNfXykKKyAgICAgY2FzZSBfX05SX3NldF90aHJlYWRfYXJlYToKKyAjZW5k aWYKKy0gICAgY2FzZSBfX05SX3NldF90aWRfYWRkcmVzczoKKyAgICAgY2FzZSBfX05SX3Vuc2hh cmU6CisgI2lmICFkZWZpbmVkKF9fbWlwc19fKSAmJiAhZGVmaW5lZChfX2FhcmNoNjRfXykKKyAg ICAgY2FzZSBfX05SX3Zmb3JrOgorQEAgLTUxMyw2ICs1MTMsOCBAQCBib29sIFN5c2NhbGxTZXRz OjpJc0FsbG93ZWRBZGRyZXNzU3BhY2VBY2Nlc3MoaW50IHN5c25vKSB7CisgICAgIGNhc2UgX19O Ul9tbG9jazoKKyAgICAgY2FzZSBfX05SX211bmxvY2s6CisgICAgIGNhc2UgX19OUl9tdW5tYXA6 CisrICAgIGNhc2UgX19OUl9tcmVtYXA6CisrICAgIGNhc2UgX19OUl9tZW1iYXJyaWVyOgorICAg ICAgIHJldHVybiB0cnVlOworICAgICBjYXNlIF9fTlJfbWFkdmlzZToKKyAgICAgY2FzZSBfX05S X21pbmNvcmU6CitAQCAtNTMwLDcgKzUzMiw2IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzQWxsb3dl ZEFkZHJlc3NTcGFjZUFjY2VzcyhpbnQgc3lzbm8pIHsKKyAgICAgY2FzZSBfX05SX21vZGlmeV9s ZHQ6CisgI2VuZGlmCisgICAgIGNhc2UgX19OUl9tcHJvdGVjdDoKKy0gICAgY2FzZSBfX05SX21y ZW1hcDoKKyAgICAgY2FzZSBfX05SX21zeW5jOgorICAgICBjYXNlIF9fTlJfbXVubG9ja2FsbDoK KyAgICAgY2FzZSBfX05SX3JlYWRhaGVhZDoKK2RpZmYgLS1naXQgYS9zYW5kYm94L2xpbnV4L3N5 c3RlbV9oZWFkZXJzL2FybTY0X2xpbnV4X3N5c2NhbGxzLmggYi9zYW5kYm94L2xpbnV4L3N5c3Rl bV9oZWFkZXJzL2FybTY0X2xpbnV4X3N5c2NhbGxzLmgKK2luZGV4IDU5ZDBlYWIuLjdhZTcwMDIg MTAwNjQ0CistLS0gLi9zYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL2FybTY0X2xpbnV4X3N5 c2NhbGxzLmgKKysrKyAuL3NhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvYXJtNjRfbGludXhf c3lzY2FsbHMuaAorQEAgLTEwNjMsNCArMTA2Myw4IEBACisgI2RlZmluZSBfX05SX21lbWZkX2Ny ZWF0ZSAyNzkKKyAjZW5kaWYKKyAKKysjaWYgIWRlZmluZWQoX19OUl9tZW1iYXJyaWVyKQorKyNk ZWZpbmUgX19OUl9tZW1iYXJyaWVyIDI4MworKyNlbmRpZgorKworICNlbmRpZiAgLy8gU0FOREJP WF9MSU5VWF9TWVNURU1fSEVBREVSU19BUk02NF9MSU5VWF9TWVNDQUxMU19IXworZGlmZiAtLWdp dCBhL3NhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvYXJtX2xpbnV4X3N5c2NhbGxzLmggYi9z YW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL2FybV9saW51eF9zeXNjYWxscy5oCitpbmRleCAx YWRkZDUzLi43ODQzYjVlIDEwMDY0NAorLS0tIC4vc2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVy cy9hcm1fbGludXhfc3lzY2FsbHMuaAorKysrIC4vc2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVy cy9hcm1fbGludXhfc3lzY2FsbHMuaAorQEAgLTEzODUsNiArMTM4NSwxMCBAQAorICNkZWZpbmUg X19OUl9tZW1mZF9jcmVhdGUgKF9fTlJfU1lTQ0FMTF9CQVNFKzM4NSkKKyAjZW5kaWYKKyAKKysj aWYgIWRlZmluZWQoX19OUl9tZW1iYXJyaWVyKQorKyNkZWZpbmUgX19OUl9tZW1iYXJyaWVyIChf X05SX1NZU0NBTExfQkFTRSszODkpCisrI2VuZGlmCisrCisgLy8gQVJNIHByaXZhdGUgc3lzY2Fs bHMuCisgI2lmICFkZWZpbmVkKF9fQVJNX05SX0JBU0UpCisgI2RlZmluZSBfX0FSTV9OUl9CQVNF IChfX05SX1NZU0NBTExfQkFTRSArIDB4RjAwMDApCitkaWZmIC0tZ2l0IGEvc2FuZGJveC9saW51 eC9zeXN0ZW1faGVhZGVycy9taXBzNjRfbGludXhfc3lzY2FsbHMuaCBiL3NhbmRib3gvbGludXgv c3lzdGVtX2hlYWRlcnMvbWlwczY0X2xpbnV4X3N5c2NhbGxzLmgKK2luZGV4IGVjNzU4MTUuLjYx MmZjZmEgMTAwNjQ0CistLS0gLi9zYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL21pcHM2NF9s aW51eF9zeXNjYWxscy5oCisrKysgLi9zYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL21pcHM2 NF9saW51eF9zeXNjYWxscy5oCitAQCAtMTI3MSw0ICsxMjcxLDggQEAKKyAjZGVmaW5lIF9fTlJf bWVtZmRfY3JlYXRlIChfX05SX0xpbnV4ICsgMzE0KQorICNlbmRpZgorIAorKyNpZiAhZGVmaW5l ZChfX05SX21lbWJhcnJpZXIpCisrI2RlZmluZSBfX05SX21lbWJhcnJpZXIgKF9fTlJfTGludXgg KyAzMTgpCisrI2VuZGlmCisrCisgI2VuZGlmICAvLyBTQU5EQk9YX0xJTlVYX1NZU1RFTV9IRUFE RVJTX01JUFM2NF9MSU5VWF9TWVNDQUxMU19IXworZGlmZiAtLWdpdCBhL3NhbmRib3gvbGludXgv c3lzdGVtX2hlYWRlcnMvbWlwc19saW51eF9zeXNjYWxscy5oIGIvc2FuZGJveC9saW51eC9zeXN0 ZW1faGVhZGVycy9taXBzX2xpbnV4X3N5c2NhbGxzLmgKK2luZGV4IGRkYmY5N2YuLjE3NDJhY2Qg MTAwNjQ0CistLS0gLi9zYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL21pcHNfbGludXhfc3lz Y2FsbHMuaAorKysrIC4vc2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9taXBzX2xpbnV4X3N5 c2NhbGxzLmgKK0BAIC0xNDMzLDQgKzE0MzMsOCBAQAorICNkZWZpbmUgX19OUl9tZW1mZF9jcmVh dGUgKF9fTlJfTGludXggKyAzNTQpCisgI2VuZGlmCisgCisrI2lmICFkZWZpbmVkKF9fTlJfbWVt YmFycmllcikKKysjZGVmaW5lIF9fTlJfbWVtYmFycmllciAoX19OUl9MaW51eCArIDM1OCkKKysj ZW5kaWYKKysKKyAjZW5kaWYgIC8vIFNBTkRCT1hfTElOVVhfU1lTVEVNX0hFQURFUlNfTUlQU19M SU5VWF9TWVNDQUxMU19IXworZGlmZiAtLWdpdCBhL3NhbmRib3gvbGludXgvc3lzdGVtX2hlYWRl cnMveDg2XzMyX2xpbnV4X3N5c2NhbGxzLmggYi9zYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJz L3g4Nl8zMl9saW51eF9zeXNjYWxscy5oCitpbmRleCBhNmFmYzYyLi43ZWQwYTNiIDEwMDY0NAor LS0tIC4vc2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy94ODZfMzJfbGludXhfc3lzY2FsbHMu aAorKysrIC4vc2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy94ODZfMzJfbGludXhfc3lzY2Fs bHMuaAorQEAgLTE0MjIsNSArMTQyMiw5IEBACisgI2RlZmluZSBfX05SX21lbWZkX2NyZWF0ZSAz NTYKKyAjZW5kaWYKKyAKKysjaWYgIWRlZmluZWQoX19OUl9tZW1iYXJyaWVyKQorKyNkZWZpbmUg X19OUl9tZW1iYXJyaWVyIDM3NQorKyNlbmRpZgorKworICNlbmRpZiAgLy8gU0FOREJPWF9MSU5V WF9TWVNURU1fSEVBREVSU19YODZfMzJfTElOVVhfU1lTQ0FMTFNfSF8KKyAKK2RpZmYgLS1naXQg YS9zYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL3g4Nl82NF9saW51eF9zeXNjYWxscy5oIGIv c2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy94ODZfNjRfbGludXhfc3lzY2FsbHMuaAoraW5k ZXggMzQ5NTA0YS4uZWEzYzdjOSAxMDA2NDQKKy0tLSAuL3NhbmRib3gvbGludXgvc3lzdGVtX2hl YWRlcnMveDg2XzY0X2xpbnV4X3N5c2NhbGxzLmgKKysrKyAuL3NhbmRib3gvbGludXgvc3lzdGVt X2hlYWRlcnMveDg2XzY0X2xpbnV4X3N5c2NhbGxzLmgKK0BAIC0xMjkwLDUgKzEyOTAsOSBAQAor ICNkZWZpbmUgX19OUl9tZW1mZF9jcmVhdGUgMzE5CisgI2VuZGlmCisgCisrI2lmICFkZWZpbmVk KF9fTlJfbWVtYmFycmllcikKKysjZGVmaW5lIF9fTlJfbWVtYmFycmllciAzMjQKKysjZW5kaWYK KysKKyAjZW5kaWYgIC8vIFNBTkRCT1hfTElOVVhfU1lTVEVNX0hFQURFUlNfWDg2XzY0X0xJTlVY X1NZU0NBTExTX0hfCisgCitkaWZmIC0tZ2l0IGEvc2VydmljZXMvc2VydmljZV9tYW5hZ2VyL3Nh bmRib3gvbGludXgvYnBmX3JlbmRlcmVyX3BvbGljeV9saW51eC5jYyBiL3NlcnZpY2VzL3NlcnZp Y2VfbWFuYWdlci9zYW5kYm94L2xpbnV4L2JwZl9yZW5kZXJlcl9wb2xpY3lfbGludXguY2MKK2lu ZGV4IDAxN2YxM2MuLjUwYWVlYzMgMTAwNjQ0CistLS0gLi9zZXJ2aWNlcy9zZXJ2aWNlX21hbmFn ZXIvc2FuZGJveC9saW51eC9icGZfcmVuZGVyZXJfcG9saWN5X2xpbnV4LmNjCisrKysgLi9zZXJ2 aWNlcy9zZXJ2aWNlX21hbmFnZXIvc2FuZGJveC9saW51eC9icGZfcmVuZGVyZXJfcG9saWN5X2xp bnV4LmNjCitAQCAtODgsMTAgKzg4LDEwIEBAIFJlc3VsdEV4cHIgUmVuZGVyZXJQcm9jZXNzUG9s aWN5OjpFdmFsdWF0ZVN5c2NhbGwoaW50IHN5c25vKSBjb25zdCB7CisgICAgIGNhc2UgX19OUl9z eXNpbmZvOgorICAgICBjYXNlIF9fTlJfdGltZXM6CisgICAgIGNhc2UgX19OUl91bmFtZToKKy0g ICAgICByZXR1cm4gQWxsb3coKTsKKy0gICAgY2FzZSBfX05SX3NjaGVkX2dldGFmZmluaXR5Ogor ICAgICBjYXNlIF9fTlJfc2NoZWRfZ2V0cGFyYW06CisgICAgIGNhc2UgX19OUl9zY2hlZF9nZXRz Y2hlZHVsZXI6CisrICAgICAgcmV0dXJuIEFsbG93KCk7CisrICAgIGNhc2UgX19OUl9zY2hlZF9n ZXRhZmZpbml0eToKKyAgICAgY2FzZSBfX05SX3NjaGVkX3NldHNjaGVkdWxlcjoKKyAgICAgICBy ZXR1cm4gc2FuZGJveDo6UmVzdHJpY3RTY2hlZFRhcmdldChHZXRQb2xpY3lQaWQoKSwgc3lzbm8p OworICAgICBjYXNlIF9fTlJfcHJsaW1pdDY0OgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9lbGVjdHJv bjcvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2xfY2Fub25pY2FsaXplX2ZpbGVfbmFt ZS5wYXRjaC5wYXRjaCBiL3NyY3BrZ3MvZWxlY3Ryb243L2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJv bWl1bS1tdXNsX2Nhbm9uaWNhbGl6ZV9maWxlX25hbWUucGF0Y2gucGF0Y2gKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjA1NjE0ZGFhNzU3Ci0tLSAvZGV2L251bGwKKysr IGIvc3JjcGtncy9lbGVjdHJvbjcvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2xfY2Fu b25pY2FsaXplX2ZpbGVfbmFtZS5wYXRjaC5wYXRjaApAQCAtMCwwICsxLDEzIEBACitkaWZmIC0t Z2l0IGEvdGhpcmRfcGFydHkvbmFzbS9jb25maWcvY29uZmlnLWxpbnV4LmggYi90aGlyZF9wYXJ0 eS9uYXNtL2NvbmZpZy9jb25maWctbGludXguaAoraW5kZXggN2ViN2MyMC4uODgyYjczNiAxMDA2 NDQKKy0tLSBhL3RoaXJkX3BhcnR5L25hc20vY29uZmlnL2NvbmZpZy1saW51eC5oCisrKysgYi90 aGlyZF9wYXJ0eS9uYXNtL2NvbmZpZy9jb25maWctbGludXguaAorQEAgLTExNyw3ICsxMTcsNyBA QAorICNkZWZpbmUgSEFWRV9BQ0NFU1MgMQorIAorIC8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZl IHRoZSBgY2Fub25pY2FsaXplX2ZpbGVfbmFtZScgZnVuY3Rpb24uICovCistI2RlZmluZSBIQVZF X0NBTk9OSUNBTElaRV9GSUxFX05BTUUgMQorKy8qICN1bmRlZiBIQVZFX0NBTk9OSUNBTElaRV9G SUxFX05BTUUgKi8KKyAKKyAvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGNwdV90b19s ZTE2JyBpbnRyaW5zaWMgZnVuY3Rpb24uICovCisgLyogI3VuZGVmIEhBVkVfQ1BVX1RPX0xFMTYg Ki8KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZWxlY3Ryb243L2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJv bWl1bS1tdXNsX2NkZWZzLnBhdGNoLnBhdGNoIGIvc3JjcGtncy9lbGVjdHJvbjcvZmlsZXMvbXVz bC1wYXRjaGVzL2Nocm9taXVtLW11c2xfY2RlZnMucGF0Y2gucGF0Y2gKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmZjN2RjMDZmZjIxCi0tLSAvZGV2L251bGwKKysrIGIv c3JjcGtncy9lbGVjdHJvbjcvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2xfY2RlZnMu cGF0Y2gucGF0Y2gKQEAgLTAsMCArMSw0NSBAQAorZGlmZiAtLWdpdCBhL2Jhc2UvYWxsb2NhdG9y L2FsbG9jYXRvcl9zaGltX2ludGVybmFscy5oIGIvYmFzZS9hbGxvY2F0b3IvYWxsb2NhdG9yX3No aW1faW50ZXJuYWwKK3MuaAoraW5kZXggMDE5NmY4OS4uYmI0MmI1ZCAxMDA2NDQKKy0tLSBhL2Jh c2UvYWxsb2NhdG9yL2FsbG9jYXRvcl9zaGltX2ludGVybmFscy5oCisrKysgYi9iYXNlL2FsbG9j YXRvci9hbGxvY2F0b3Jfc2hpbV9pbnRlcm5hbHMuaAorQEAgLTcsNyArNyw5IEBACisKKyAjaWYg ZGVmaW5lZChfX0dOVUNfXykKKworKyNpZiBkZWZpbmVkKF9fR0xJQkNfXykKKyAjaW5jbHVkZSA8 c3lzL2NkZWZzLmg+ICAvLyBmb3IgX19USFJPVworKyNlbmRpZgorCisgI2lmbmRlZiBfX1RIUk9X ICAvLyBOb3QgYSBnbGliYyBzeXN0ZW0KKyAjaWZkZWYgX05PRVhDRVBUICAvLyBMTFZNIGxpYmMr KyB1c2VzIG5vZXhjZXB0IGluc3RlYWQKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9saWJzeW5j L3NyYy9pbmNsdWRlL3N5bmMvc3luYy5oIGIvdGhpcmRfcGFydHkvbGlic3luYy9zcmMvaW5jbHVk ZS9zeW5jL3N5bmMuaAoraW5kZXggNTBlZDBhYy4uNzU1MmE0OSAxMDA2NDQKKy0tLSBhL3RoaXJk X3BhcnR5L2xpYnN5bmMvc3JjL2luY2x1ZGUvc3luYy9zeW5jLmgKKysrKyBiL3RoaXJkX3BhcnR5 L2xpYnN5bmMvc3JjL2luY2x1ZGUvc3luYy9zeW5jLmgKK0BAIC0xOSwxMiArMTksMTMgQEAKKyAj aWZuZGVmIF9fU1lTX0NPUkVfU1lOQ19ICisgI2RlZmluZSBfX1NZU19DT1JFX1NZTkNfSAorIAor LSNpbmNsdWRlIDxzeXMvY2RlZnMuaD4KKyAjaW5jbHVkZSA8c3RkaW50Lmg+CisgCisgI2luY2x1 ZGUgPGxpbnV4L3R5cGVzLmg+CisgCistX19CRUdJTl9ERUNMUworKyNpZmRlZiBfX2NwbHVzcGx1 cworK2V4dGVybiAiQyIgeworKyNlbmRpZiAvKiBfX2NwbHVzcGx1cyAqLworIAorIHN0cnVjdCBz eW5jX2xlZ2FjeV9tZXJnZV9kYXRhIHsKKyAgaW50MzJfdCBmZDI7CitAQCAtMTU4LDYgKzE1OSw4 IEBAIHN0cnVjdCBzeW5jX3B0X2luZm8gKnN5bmNfcHRfaW5mbyhzdHJ1Y3Qgc3luY19mZW5jZV9p bmZvX2RhdGEgKmluZm8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVj dCBzeW5jX3B0X2luZm8gKml0cik7Cisgdm9pZCBzeW5jX2ZlbmNlX2luZm9fZnJlZShzdHJ1Y3Qg c3luY19mZW5jZV9pbmZvX2RhdGEgKmluZm8pOworIAorLV9fRU5EX0RFQ0xTCisrI2lmZGVmIF9f Y3BsdXNwbHVzCisrfQorKyNlbmRpZiAvKiBfX2NwbHVzcGx1cyAqLworIAorICNlbmRpZiAvKiBf X1NZU19DT1JFX1NZTkNfSCAqLwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9lbGVjdHJvbjcvZmlsZXMv bXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2xfZGVmaW5lX3RlbXBfZmFpbHVyZV9yZXRyeS5wYXRj aC5wYXRjaCBiL3NyY3BrZ3MvZWxlY3Ryb243L2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1t dXNsX2RlZmluZV90ZW1wX2ZhaWx1cmVfcmV0cnkucGF0Y2gucGF0Y2gKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjYxZGI2NThmODQ5Ci0tLSAvZGV2L251bGwKKysrIGIv c3JjcGtncy9lbGVjdHJvbjcvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2xfZGVmaW5l X3RlbXBfZmFpbHVyZV9yZXRyeS5wYXRjaC5wYXRjaApAQCAtMCwwICsxLDE4IEBACistLS0gYS9z YW5kYm94L2xpbnV4L3N1aWQvc2FuZGJveC5jCTIwMTktMTEtMTkgMDk6Mjg6MDUuMDAwMDAwMDAw ICswODAwCisrKysgYi9zYW5kYm94L2xpbnV4L3N1aWQvc2FuZGJveC5jCTIwMjAtMDQtMjQgMTE6 NTA6MTIuNzE5ODgwNzI4ICswODAwCitAQCAtNDIsNiArNDIsMTUgQEAKKyAjZGVmaW5lIENMT05F X05FV05FVCAweDQwMDAwMDAwCisgI2VuZGlmCisgCisrI2lmbmRlZiBURU1QX0ZBSUxVUkVfUkVU UlkKKysjZGVmaW5lIFRFTVBfRkFJTFVSRV9SRVRSWShleHByZXNzaW9uKSBcCisrICAoX19leHRl bnNpb25fXyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBcCisrICAgICh7IGxvbmcgaW50IF9fcmVzdWx0OyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisrICAgICAgIGRvIF9fcmVzdWx0 ID0gKGxvbmcgaW50KSAoZXhwcmVzc2lvbik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBcCisrICAgICAgIHdoaWxlIChfX3Jlc3VsdCA9PSAtMUwgJiYgZXJybm8gPT0gRUlOVFIpOyAg ICAgICAgICAgICAgICAgICAgICAgICAgICBcCisrICAgICAgIF9fcmVzdWx0OyB9KSkKKysjZW5k aWYKKysKKyBzdGF0aWMgYm9vbCBEcm9wUm9vdCgpOworIAorICNkZWZpbmUgSEFORExFX0VJTlRS KHgpIFRFTVBfRkFJTFVSRV9SRVRSWSh4KQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9lbGVjdHJvbjcv ZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2xfZG5zLnBhdGNoLnBhdGNoIGIvc3JjcGtn cy9lbGVjdHJvbjcvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2xfZG5zLnBhdGNoLnBh dGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5mNDlkOGJkMGFmYQot LS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZWxlY3Ryb243L2ZpbGVzL211c2wtcGF0Y2hlcy9j aHJvbWl1bS1tdXNsX2Rucy5wYXRjaC5wYXRjaApAQCAtMCwwICsxLDYxIEBACitkaWZmIC0tZ2l0 IGEvbmV0L2Rucy9kbnNfY29uZmlnX3NlcnZpY2VfcG9zaXguY2MgYi9uZXQvZG5zL2Ruc19jb25m aWdfc2VydmljZV9wb3NpeC5jYworaW5kZXggMmY5NDgzMi4uMmRkMWE5OCAxMDA2NDQKKy0tLSBh L25ldC9kbnMvZG5zX2NvbmZpZ19zZXJ2aWNlX3Bvc2l4LmNjCisrKysgYi9uZXQvZG5zL2Ruc19j b25maWdfc2VydmljZV9wb3NpeC5jYworQEAgLTE1MCw3ICsxNTAsNyBAQCBDb25maWdQYXJzZVBv c2l4UmVzdWx0IFJlYWREbnNDb25maWcoRG5zQ29uZmlnKiBkbnNfY29uZmlnKSB7CisgI2lmICFk ZWZpbmVkKE9TX0FORFJPSUQpCisgICBDb25maWdQYXJzZVBvc2l4UmVzdWx0IHJlc3VsdDsKKyAv LyBUT0RPKGZ1Y2hzaWEpOiBVc2UgcmVzX25pbml0KCkgd2hlbiBpdCdzIGltcGxlbWVudGVkIG9u IEZ1Y2hzaWEuCistI2lmIGRlZmluZWQoT1NfT1BFTkJTRCkgfHwgZGVmaW5lZChPU19GVUNIU0lB KQorKyNpZiBkZWZpbmVkKE9TX09QRU5CU0QpIHx8IGRlZmluZWQoT1NfRlVDSFNJQSkgfHwgKGRl ZmluZWQoT1NfTElOVVgpICYmICFkZWZpbmVkKF9fR0xJQkNfXykpCisgICAvLyBOb3RlOiByZXNf bmluaXQgaW4gZ2xpYmMgYWx3YXlzIHJldHVybnMgMCBhbmQgc2V0cyBSRVNfSU5JVC4KKyAgIC8v IHJlc19pbml0IGJlaGF2ZXMgdGhlIHNhbWUgd2F5LgorICAgbWVtc2V0KCZfcmVzLCAwLCBzaXpl b2YoX3JlcykpOworQEAgLTE3Myw3ICsxNzMsNyBAQCBDb25maWdQYXJzZVBvc2l4UmVzdWx0IFJl YWREbnNDb25maWcoRG5zQ29uZmlnKiBkbnNfY29uZmlnKSB7CisgI2Vsc2UKKyAgIHJlc19uY2xv c2UoJnJlcyk7CisgI2VuZGlmICAvLyBkZWZpbmVkKE9TX01BQ09TWCkgfHwgZGVmaW5lZChPU19G UkVFQlNEKQorLSNlbmRpZiAgLy8gZGVmaW5lZChPU19PUEVOQlNEKQorKyNlbmRpZiAgLy8gZGVm aW5lZChPU19PUEVOQlNEKSB8fCBkZWZpbmVkKE9TX0ZVQ0hTSUEpIHx8IChkZWZpbmVkKE9TX0xJ TlVYKSAmJiAhZGVmaW5lZChfX0dMSUJDX18pKQorIAorICNpZiBkZWZpbmVkKE9TX01BQ09TWCkg JiYgIWRlZmluZWQoT1NfSU9TKQorICAgQ29uZmlnUGFyc2VQb3NpeFJlc3VsdCBlcnJvciA9IERu c0NvbmZpZ1dhdGNoZXI6OkNoZWNrRG5zQ29uZmlnKCk7CitkaWZmIC0tZ2l0IGEvbmV0L2Rucy9k bnNfcmVsb2FkZXIuY2MgYi9uZXQvZG5zL2Ruc19yZWxvYWRlci5jYworaW5kZXggOTUyY2ZmNC4u NGIzNjZmNCAxMDA2NDQKKy0tLSBhL25ldC9kbnMvZG5zX3JlbG9hZGVyLmNjCisrKysgYi9uZXQv ZG5zL2Ruc19yZWxvYWRlci5jYworQEAgLTQsNyArNCw3IEBACisgCisgI2luY2x1ZGUgIm5ldC9k bnMvZG5zX3JlbG9hZGVyLmgiCisgCistI2lmIGRlZmluZWQoT1NfUE9TSVgpICYmICFkZWZpbmVk KE9TX01BQ09TWCkgJiYgIWRlZmluZWQoT1NfT1BFTkJTRCkgJiYgXAorKyNpZiBkZWZpbmVkKE9T X1BPU0lYKSAmJiBkZWZpbmVkKF9fR0xJQkNfXykgJiYgIWRlZmluZWQoT1NfTUFDT1NYKSAmJiAh ZGVmaW5lZChPU19PUEVOQlNEKSAmJiBcCisgICAgICFkZWZpbmVkKE9TX0FORFJPSUQpICYmICFk ZWZpbmVkKE9TX0ZVQ0hTSUEpCisgCisgI2luY2x1ZGUgPHJlc29sdi5oPgorZGlmZiAtLWdpdCBh L25ldC9kbnMvaG9zdF9yZXNvbHZlcl9tYW5hZ2VyLmNjIGIvbmV0L2Rucy9ob3N0X3Jlc29sdmVy X21hbmFnZXIuY2MKK2luZGV4IGU4ZGVhNDYuLmM4NmE4MzAgMTAwNjQ0CistLS0gYS9uZXQvZG5z L2hvc3RfcmVzb2x2ZXJfbWFuYWdlci5jYworKysrIGIvbmV0L2Rucy9ob3N0X3Jlc29sdmVyX21h bmFnZXIuY2MKK0BAIC0yMzg2LDcgKzIzODYsNyBAQCBIb3N0UmVzb2x2ZXJNYW5hZ2VyOjpIb3N0 UmVzb2x2ZXJNYW5hZ2VyKAorICAgTmV0d29ya0NoYW5nZU5vdGlmaWVyOjpBZGRDb25uZWN0aW9u VHlwZU9ic2VydmVyKHRoaXMpOworICAgaWYgKHN5c3RlbV9kbnNfY29uZmlnX25vdGlmaWVyXykK KyAgICAgc3lzdGVtX2Ruc19jb25maWdfbm90aWZpZXJfLT5BZGRPYnNlcnZlcih0aGlzKTsKKy0j aWYgZGVmaW5lZChPU19QT1NJWCkgJiYgIWRlZmluZWQoT1NfTUFDT1NYKSAmJiAhZGVmaW5lZChP U19PUEVOQlNEKSAmJiBcCisrI2lmIGRlZmluZWQoT1NfUE9TSVgpICYmIGRlZmluZWQoX19HTElC Q19fKSAmJiAhZGVmaW5lZChPU19NQUNPU1gpICYmICFkZWZpbmVkKE9TX09QRU5CU0QpICYmIFwK KyAgICAgIWRlZmluZWQoT1NfQU5EUk9JRCkKKyAgIEVuc3VyZURuc1JlbG9hZGVySW5pdCgpOwor ICNlbmRpZgorZGlmZiAtLWdpdCBhL25ldC9kbnMvaG9zdF9yZXNvbHZlcl9wcm9jLmNjIGIvbmV0 L2Rucy9ob3N0X3Jlc29sdmVyX3Byb2MuY2MKK2luZGV4IDA4MjQ1NDAuLjMzODQ5NzggMTAwNjQ0 CistLS0gYS9uZXQvZG5zL2hvc3RfcmVzb2x2ZXJfcHJvYy5jYworKysrIGIvbmV0L2Rucy9ob3N0 X3Jlc29sdmVyX3Byb2MuY2MKK0BAIC0xOTcsNyArMTk3LDcgQEAgaW50IFN5c3RlbUhvc3RSZXNv bHZlckNhbGwoY29uc3Qgc3RkOjpzdHJpbmcmIGhvc3QsCisgICBiYXNlOjpTY29wZWRCbG9ja2lu Z0NhbGwgc2NvcGVkX2Jsb2NraW5nX2NhbGwoRlJPTV9IRVJFLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhc2U6OkJsb2NraW5nVHlwZTo6V0lMTF9C TE9DSyk7CisgCistI2lmIGRlZmluZWQoT1NfUE9TSVgpICYmICFkZWZpbmVkKE9TX01BQ09TWCkg JiYgIWRlZmluZWQoT1NfT1BFTkJTRCkgJiYgXAorKyNpZiBkZWZpbmVkKE9TX1BPU0lYKSAmJiBk ZWZpbmVkKF9fR0xJQkNfXykgJiYgIWRlZmluZWQoT1NfTUFDT1NYKSAmJiAhZGVmaW5lZChPU19P UEVOQlNEKSAmJiBcCisgICAgICFkZWZpbmVkKE9TX0FORFJPSUQpICYmICFkZWZpbmVkKE9TX0ZV Q0hTSUEpCisgICBEbnNSZWxvYWRlck1heWJlUmVsb2FkKCk7CisgI2VuZGlmCmRpZmYgLS1naXQg YS9zcmNwa2dzL2VsZWN0cm9uNy9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbXVzbF9leGVp bmZvLnBhdGNoLnBhdGNoIGIvc3JjcGtncy9lbGVjdHJvbjcvZmlsZXMvbXVzbC1wYXRjaGVzL2No cm9taXVtLW11c2xfZXhlaW5mby5wYXRjaC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwMDAwMC4uZjFhZmM3YzFiMTcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2Vs ZWN0cm9uNy9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbXVzbF9leGVpbmZvLnBhdGNoLnBh dGNoCkBAIC0wLDAgKzEsOTYgQEAKK2RpZmYgLS1naXQgYS9iYXNlL2RlYnVnL3N0YWNrX3RyYWNl X3Bvc2l4LmNjIGIvYmFzZS9kZWJ1Zy9zdGFja190cmFjZV9wb3NpeC5jYworaW5kZXggZGUyZjM1 Ni4uZjY5N2M2NiAxMDA2NDQKKy0tLSBhL2Jhc2UvZGVidWcvc3RhY2tfdHJhY2VfcG9zaXguY2MK KysrKyBiL2Jhc2UvZGVidWcvc3RhY2tfdHJhY2VfcG9zaXguY2MKK0BAIC0yNyw3ICsyNyw3IEBA CisgI2lmICFkZWZpbmVkKFVTRV9TWU1CT0xJWkUpCisgI2luY2x1ZGUgPGN4eGFiaS5oPgorICNl bmRpZgorLSNpZiAhZGVmaW5lZChfX1VDTElCQ19fKSAmJiAhZGVmaW5lZChfQUlYKQorKyNpZiBk ZWZpbmVkKF9fR0xJQkNfXykgJiYgIWRlZmluZWQoX19VQ0xJQkNfXykgJiYgIWRlZmluZWQoX0FJ WCkKKyAjaW5jbHVkZSA8ZXhlY2luZm8uaD4KKyAjZW5kaWYKKyAKK0BAIC04Niw3ICs4Niw3IEBA IHZvaWQgRGVtYW5nbGVTeW1ib2xzKHN0ZDo6c3RyaW5nKiB0ZXh0KSB7CisgICAvLyBOb3RlOiBj b2RlIGluIHRoaXMgZnVuY3Rpb24gaXMgTk9UIGFzeW5jLXNpZ25hbCBzYWZlIChzdGQ6OnN0cmlu ZyB1c2VzCisgICAvLyBtYWxsb2MgaW50ZXJuYWxseSkuCisgCistI2lmICFkZWZpbmVkKF9fVUNM SUJDX18pICYmICFkZWZpbmVkKF9BSVgpCisrI2lmIGRlZmluZWQoX19HTElCQ19fKSAmJiAhZGVm aW5lZChfX1VDTElCQ19fKSAmJiAhZGVmaW5lZChfQUlYKQorICAgc3RkOjpzdHJpbmc6OnNpemVf dHlwZSBzZWFyY2hfZnJvbSA9IDA7CisgICB3aGlsZSAoc2VhcmNoX2Zyb20gPCB0ZXh0LT5zaXpl KCkpIHsKKyAgICAgLy8gTG9vayBmb3IgdGhlIHN0YXJ0IG9mIGEgbWFuZ2xlZCBzeW1ib2wsIGZy b20gc2VhcmNoX2Zyb20uCitAQCAtMTIxLDcgKzEyMSw3IEBAIHZvaWQgRGVtYW5nbGVTeW1ib2xz KHN0ZDo6c3RyaW5nKiB0ZXh0KSB7CisgICAgICAgc2VhcmNoX2Zyb20gPSBtYW5nbGVkX3N0YXJ0 ICsgMjsKKyAgICAgfQorICAgfQorLSNlbmRpZiAgLy8gIWRlZmluZWQoX19VQ0xJQkNfXykgJiYg IWRlZmluZWQoX0FJWCkKKysjZW5kaWYgIC8vIGRlZmluZWQoX19HTElCQ19fKSAmJiAhZGVmaW5l ZChfX1VDTElCQ19fKSAmJiAhZGVmaW5lZChfQUlYKQorIH0KKyAjZW5kaWYgIC8vICFkZWZpbmVk KFVTRV9TWU1CT0xJWkUpCisgCitAQCAtMTMzLDcgKzEzMyw3IEBAIGNsYXNzIEJhY2t0cmFjZU91 dHB1dEhhbmRsZXIgeworICAgdmlydHVhbCB+QmFja3RyYWNlT3V0cHV0SGFuZGxlcigpID0gZGVm YXVsdDsKKyB9OworIAorLSNpZiAhZGVmaW5lZChfX1VDTElCQ19fKSAmJiAhZGVmaW5lZChfQUlY KQorKyNpZiBkZWZpbmVkKF9fR0xJQkNfXykgJiYgIWRlZmluZWQoX19VQ0xJQkNfXykgJiYgIWRl ZmluZWQoX0FJWCkKKyB2b2lkIE91dHB1dFBvaW50ZXIodm9pZCogcG9pbnRlciwgQmFja3RyYWNl T3V0cHV0SGFuZGxlciogaGFuZGxlcikgeworICAgLy8gVGhpcyBzaG91bGQgYmUgbW9yZSB0aGFu IGVub3VnaCB0byBzdG9yZSBhIDY0LWJpdCBudW1iZXIgaW4gaGV4OgorICAgLy8gMTYgaGV4IGRp Z2l0cyArIDEgZm9yIG51bGwtdGVybWluYXRvci4KK0BAIC0yMTYsNyArMjE2LDcgQEAgdm9pZCBQ cm9jZXNzQmFja3RyYWNlKHZvaWQqIGNvbnN0KiB0cmFjZSwKKyAgIH0KKyAjZW5kaWYgIC8vIGRl ZmluZWQoVVNFX1NZTUJPTElaRSkKKyB9CistI2VuZGlmICAvLyAhZGVmaW5lZChfX1VDTElCQ19f KSAmJiAhZGVmaW5lZChfQUlYKQorKyNlbmRpZiAgLy8gZGVmaW5lZChfX0dMSUJDX18pICYmICFk ZWZpbmVkKF9fVUNMSUJDX18pICYmICFkZWZpbmVkKF9BSVgpCisgCisgdm9pZCBQcmludFRvU3Rk ZXJyKGNvbnN0IGNoYXIqIG91dHB1dCkgeworICAgLy8gTk9URTogVGhpcyBjb2RlIE1VU1QgYmUg YXN5bmMtc2lnbmFsIHNhZmUgKGl0J3MgdXNlZCBieSBpbi1wcm9jZXNzCitAQCAtODI4LDcgKzgy OCw3IEBAIHNpemVfdCBDb2xsZWN0U3RhY2tUcmFjZSh2b2lkKiogdHJhY2UsIHNpemVfdCBjb3Vu dCkgeworICAgLy8gTk9URTogVGhpcyBjb2RlIE1VU1QgYmUgYXN5bmMtc2lnbmFsIHNhZmUgKGl0 J3MgdXNlZCBieSBpbi1wcm9jZXNzCisgICAvLyBzdGFjayBkdW1waW5nIHNpZ25hbCBoYW5kbGVy KS4gTk8gbWFsbG9jIG9yIHN0ZGlvIGlzIGFsbG93ZWQgaGVyZS4KKyAKKy0jaWYgIWRlZmluZWQo X19VQ0xJQkNfXykgJiYgIWRlZmluZWQoX0FJWCkKKysjaWYgZGVmaW5lZChfX0dMSUJDX18pICYm ICFkZWZpbmVkKF9fVUNMSUJDX18pICYmICFkZWZpbmVkKF9BSVgpCisgICAvLyBUaG91Z2ggdGhl IGJhY2t0cmFjZSBBUEkgbWFuIHBhZ2UgZG9lcyBub3QgbGlzdCBhbnkgcG9zc2libGUgbmVnYXRp dmUKKyAgIC8vIHJldHVybiB2YWx1ZXMsIHdlIHRha2Ugbm8gY2hhbmNlLgorICAgcmV0dXJuIGJh c2U6OnNhdHVyYXRlZF9jYXN0PHNpemVfdD4oYmFja3RyYWNlKHRyYWNlLCBjb3VudCkpOworQEAg LTg0MSwxMyArODQxLDEzIEBAIHZvaWQgU3RhY2tUcmFjZTo6UHJpbnRXaXRoUHJlZml4KGNvbnN0 IGNoYXIqIHByZWZpeF9zdHJpbmcpIGNvbnN0IHsKKyAvLyBOT1RFOiBUaGlzIGNvZGUgTVVTVCBi ZSBhc3luYy1zaWduYWwgc2FmZSAoaXQncyB1c2VkIGJ5IGluLXByb2Nlc3MKKyAvLyBzdGFjayBk dW1waW5nIHNpZ25hbCBoYW5kbGVyKS4gTk8gbWFsbG9jIG9yIHN0ZGlvIGlzIGFsbG93ZWQgaGVy ZS4KKyAKKy0jaWYgIWRlZmluZWQoX19VQ0xJQkNfXykgJiYgIWRlZmluZWQoX0FJWCkKKysjaWYg ZGVmaW5lZChfX0dMSUJDX18pICYmICFkZWZpbmVkKF9fVUNMSUJDX18pICYmICFkZWZpbmVkKF9B SVgpCisgICBQcmludEJhY2t0cmFjZU91dHB1dEhhbmRsZXIgaGFuZGxlcjsKKyAgIFByb2Nlc3NC YWNrdHJhY2UodHJhY2VfLCBjb3VudF8sIHByZWZpeF9zdHJpbmcsICZoYW5kbGVyKTsKKyAjZW5k aWYKKyB9CisgCistI2lmICFkZWZpbmVkKF9fVUNMSUJDX18pICYmICFkZWZpbmVkKF9BSVgpCisr I2lmIGRlZmluZWQoX19HTElCQ19fKSAmJiAhZGVmaW5lZChfX1VDTElCQ19fKSAmJiAhZGVmaW5l ZChfQUlYKQorIHZvaWQgU3RhY2tUcmFjZTo6T3V0cHV0VG9TdHJlYW1XaXRoUHJlZml4KHN0ZDo6 b3N0cmVhbSogb3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y29uc3QgY2hhciogcHJlZml4X3N0cmluZykgY29uc3QgeworICAgU3RyZWFtQmFja3RyYWNlT3V0 cHV0SGFuZGxlciBoYW5kbGVyKG9zKTsKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9zd2lmdHNo YWRlci90aGlyZF9wYXJ0eS9sbHZtLXN1Ynplcm8vYnVpbGQvTGludXgvaW5jbHVkZS9sbHZtL0Nv bmZpZy9jb25maWcuaCBiL3RoaXJkX3BhcnR5L3N3aWZ0c2hhZGVyL3RoaXJkX3BhcnR5L2xsdm0t c3ViemVyby9idWlsZC9MaW51eC9pbmNsdWRlL2xsdm0vQ29uZmlnL2NvbmZpZy5oCitpbmRleCA3 OThmMTUwLi45N2FjYzdjIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvc3dpZnRzaGFkZXIvdGhp cmRfcGFydHkvbGx2bS1zdWJ6ZXJvL2J1aWxkL0xpbnV4L2luY2x1ZGUvbGx2bS9Db25maWcvY29u ZmlnLmgKKysrKyBiL3RoaXJkX3BhcnR5L3N3aWZ0c2hhZGVyL3RoaXJkX3BhcnR5L2xsdm0tc3Vi emVyby9idWlsZC9MaW51eC9pbmNsdWRlL2xsdm0vQ29uZmlnL2NvbmZpZy5oCitAQCAtMTQsNyAr MTQsNyBAQAorICNkZWZpbmUgRU5BQkxFX0NSQVNIX09WRVJSSURFUyAxCisgCisgLyogRGVmaW5l IHRvIDEgaWYgeW91IGhhdmUgdGhlIGBiYWNrdHJhY2UnIGZ1bmN0aW9uLiAqLworLSNkZWZpbmUg SEFWRV9CQUNLVFJBQ0UgMQorKy8qICN1bmRlZiBIQVZFX0JBQ0tUUkFDRSAqLworIAorIC8qIERl ZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8Q3Jhc2hSZXBvcnRlckNsaWVudC5oPiBoZWFkZXIg ZmlsZS4gKi8KKyAvKiAjdW5kZWYgSEFWRV9DUkFTSFJFUE9SVEVSQ0xJRU5UX0ggKi8KK0BAIC01 NSw3ICs1NSw3IEBACisgI2RlZmluZSBIQVZFX0VSUk5PX0ggMQorIAorIC8qIERlZmluZSB0byAx IGlmIHlvdSBoYXZlIHRoZSA8ZXhlY2luZm8uaD4gaGVhZGVyIGZpbGUuICovCistI2RlZmluZSBI QVZFX0VYRUNJTkZPX0ggMQorKy8qICN1bmRlZiBIQVZFX0VYRUNJTkZPX0ggKi8KKyAKKyAvKiBE ZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGZjbnRsLmg+IGhlYWRlciBmaWxlLiAqLworICNk ZWZpbmUgSEFWRV9GQ05UTF9IIDEKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZWxlY3Ryb243L2ZpbGVz L211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsX2Zwc3RhdGVfdC5wYXRjaC5wYXRjaCBiL3NyY3Br Z3MvZWxlY3Ryb243L2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsX2Zwc3RhdGVfdC5w YXRjaC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZDhjNDFj Y2Q5YTAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2VsZWN0cm9uNy9maWxlcy9tdXNsLXBh dGNoZXMvY2hyb21pdW0tbXVzbF9mcHN0YXRlX3QucGF0Y2gucGF0Y2gKQEAgLTAsMCArMSw0OCBA QAorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQv bGludXgvZHVtcF93cml0ZXJfY29tbW9uL3Vjb250ZXh0X3JlYWRlci5jYyBiL3RoaXJkX3BhcnR5 L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvZHVtcF93cml0ZXJfY29tbW9uL3Vj b250ZXh0X3JlYWRlci5jYworaW5kZXggNmVlNmNjMS4uYThmOWNjYyAxMDA2NDQKKy0tLSBhL3Ro aXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvZHVtcF93cml0ZXJf Y29tbW9uL3Vjb250ZXh0X3JlYWRlci5jYworKysrIGIvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJl YWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21tb24vdWNvbnRleHRfcmVhZGVy LmNjCitAQCAtNDksNyArNDksNyBAQCB1aW50cHRyX3QgVUNvbnRleHRSZWFkZXI6OkdldEluc3Ry dWN0aW9uUG9pbnRlcihjb25zdCB1Y29udGV4dF90KiB1YykgeworIH0KKyAKKyB2b2lkIFVDb250 ZXh0UmVhZGVyOjpGaWxsQ1BVQ29udGV4dChSYXdDb250ZXh0Q1BVICpvdXQsIGNvbnN0IHVjb250 ZXh0X3QgKnVjLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0 cnVjdCBfbGliY19mcHN0YXRlKiBmcCkgeworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGNvbnN0IHN0cnVjdCBfZnBzdGF0ZSogZnApIHsKKyAgIGNvbnN0IGdyZWdfdCogcmVn cyA9IHVjLT51Y19tY29udGV4dC5ncmVnczsKKyAKKyAgIG91dC0+Y29udGV4dF9mbGFncyA9IE1E X0NPTlRFWFRfWDg2X0ZVTEwgfAorQEAgLTk3LDcgKzk3LDcgQEAgdWludHB0cl90IFVDb250ZXh0 UmVhZGVyOjpHZXRJbnN0cnVjdGlvblBvaW50ZXIoY29uc3QgdWNvbnRleHRfdCogdWMpIHsKKyB9 CisgCisgdm9pZCBVQ29udGV4dFJlYWRlcjo6RmlsbENQVUNvbnRleHQoUmF3Q29udGV4dENQVSAq b3V0LCBjb25zdCB1Y29udGV4dF90ICp1YywKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBjb25zdCBzdHJ1Y3QgX2xpYmNfZnBzdGF0ZSogZnByZWdzKSB7CisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IF9mcHN0YXRlKiBmcHJlZ3Mp IHsKKyAgIGNvbnN0IGdyZWdfdCogcmVncyA9IHVjLT51Y19tY29udGV4dC5ncmVnczsKKyAKKyAg IG91dC0+Y29udGV4dF9mbGFncyA9IE1EX0NPTlRFWFRfQU1ENjRfRlVMTDsKK2RpZmYgLS1naXQg YS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1bXBfd3Jp dGVyX2NvbW1vbi91Y29udGV4dF9yZWFkZXIuaCBiL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFr cGFkL3NyYy9jbGllbnQvbGludXgvZHVtcF93cml0ZXJfY29tbW9uL3Vjb250ZXh0X3JlYWRlci5o CitpbmRleCBmODMwNjE4Li5mM2RkZTFmIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvYnJlYWtw YWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21tb24vdWNvbnRleHRf cmVhZGVyLmgKKysrKyBiL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQv bGludXgvZHVtcF93cml0ZXJfY29tbW9uL3Vjb250ZXh0X3JlYWRlci5oCitAQCAtNTAsNyArNTAs NyBAQCBzdHJ1Y3QgVUNvbnRleHRSZWFkZXIgeworICAgLy8gICBpbmZvOiB0aGUgY29sbGVjdGlv biBvZiByZWdpc3RlciBzdHJ1Y3R1cmVzLgorICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZp bmVkKF9feDg2XzY0KQorICAgc3RhdGljIHZvaWQgRmlsbENQVUNvbnRleHQoUmF3Q29udGV4dENQ VSAqb3V0LCBjb25zdCB1Y29udGV4dF90ICp1YywKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGNvbnN0IHN0cnVjdCBfbGliY19mcHN0YXRlKiBmcCk7CisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBjb25zdCBzdHJ1Y3QgX2Zwc3RhdGUqIGZwKTsKKyAjZWxpZiBkZWZpbmVkKF9f YWFyY2g2NF9fKQorICAgc3RhdGljIHZvaWQgRmlsbENQVUNvbnRleHQoUmF3Q29udGV4dENQVSAq b3V0LCBjb25zdCB1Y29udGV4dF90ICp1YywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNvbnN0IHN0cnVjdCBmcHNpbWRfY29udGV4dCogZnByZWdzKTsKK2RpZmYgLS1naXQgYS90aGly ZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRl ci9taW5pZHVtcF93cml0ZXIuaCBiL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9j bGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL21pbmlkdW1wX3dyaXRlci5oCitpbmRleCBkMWRj MzMxLi5kMWNjNTYyIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQv c3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbWluaWR1bXBfd3JpdGVyLmgKKysrKyBi L3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBf d3JpdGVyL21pbmlkdW1wX3dyaXRlci5oCitAQCAtNDgsNyArNDgsNyBAQCBjbGFzcyBFeGNlcHRp b25IYW5kbGVyOworICNpZiBkZWZpbmVkKF9fYWFyY2g2NF9fKQorIHR5cGVkZWYgc3RydWN0IGZw c2ltZF9jb250ZXh0IGZwc3RhdGVfdDsKKyAjZWxpZiAhZGVmaW5lZChfX0FSTV9FQUJJX18pICYm ICFkZWZpbmVkKF9fbWlwc19fKQorLXR5cGVkZWYgc3RydWN0IF9saWJjX2Zwc3RhdGUgZnBzdGF0 ZV90OworK3R5cGVkZWYgc3RydWN0IF9mcHN0YXRlIGZwc3RhdGVfdDsKKyAjZW5kaWYKKyAKKyAv LyBUaGVzZSBlbnRyaWVzIHN0b3JlIGEgbGlzdCBvZiBtZW1vcnkgcmVnaW9ucyB0aGF0IHRoZSBj bGllbnQgd2FudHMgaW5jbHVkZWQKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZWxlY3Ryb243L2ZpbGVz L211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsX2dldGNvbnRleHQucGF0Y2gucGF0Y2ggYi9zcmNw a2dzL2VsZWN0cm9uNy9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbXVzbF9nZXRjb250ZXh0 LnBhdGNoLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi43Njk3 MjQzYTkxMAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZWxlY3Ryb243L2ZpbGVzL211c2wt cGF0Y2hlcy9jaHJvbWl1bS1tdXNsX2dldGNvbnRleHQucGF0Y2gucGF0Y2gKQEAgLTAsMCArMSwy NSBAQAorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGll bnQvbGludXgvaGFuZGxlci9leGNlcHRpb25faGFuZGxlci5jYyBiL3RoaXJkX3BhcnR5L2JyZWFr cGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvaGFuZGxlci9leGNlcHRpb25faGFuZGxlci5j YworaW5kZXggYjg5NWY2ZC4uNGYxMzM1MiAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L2JyZWFr cGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvaGFuZGxlci9leGNlcHRpb25faGFuZGxlci5j YworKysrIGIvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9o YW5kbGVyL2V4Y2VwdGlvbl9oYW5kbGVyLmNjCitAQCAtNDkwLDcgKzQ5MCw5IEBAIGJvb2wgRXhj ZXB0aW9uSGFuZGxlcjo6U2ltdWxhdGVTaWduYWxEZWxpdmVyeShpbnQgc2lnKSB7CisgICBzaWdp bmZvLnNpX2NvZGUgPSBTSV9VU0VSOworICAgc2lnaW5mby5zaV9waWQgPSBnZXRwaWQoKTsKKyAg IHVjb250ZXh0X3QgY29udGV4dDsKKysjaWYgZGVmaW5lZChfX0dMSUJDX18pCisgICBnZXRjb250 ZXh0KCZjb250ZXh0KTsKKysjZW5kaWYKKyAgIHJldHVybiBIYW5kbGVTaWduYWwoc2lnLCAmc2ln aW5mbywgJmNvbnRleHQpOworIH0KKyAKK0BAIC02NzUsOCArNjc3LDEwIEBAIGJvb2wgRXhjZXB0 aW9uSGFuZGxlcjo6V3JpdGVNaW5pZHVtcCgpIHsKKyAgIHN5c19wcmN0bChQUl9TRVRfRFVNUEFC TEUsIDEsIDAsIDAsIDApOworIAorICAgQ3Jhc2hDb250ZXh0IGNvbnRleHQ7CisrI2lmIGRlZmlu ZWQoX19HTElCQ19fKQorICAgaW50IGdldGNvbnRleHRfcmVzdWx0ID0gZ2V0Y29udGV4dCgmY29u dGV4dC5jb250ZXh0KTsKKyAgIGlmIChnZXRjb250ZXh0X3Jlc3VsdCkKKysjZW5kaWYKKyAgICAg cmV0dXJuIGZhbHNlOworIAorICNpZiBkZWZpbmVkKF9faTM4Nl9fKQpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9lbGVjdHJvbjcvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2xfbWFsbGluZm8u cGF0Y2gucGF0Y2ggYi9zcmNwa2dzL2VsZWN0cm9uNy9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21p dW0tbXVzbF9tYWxsaW5mby5wYXRjaC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAwMC4uOTQxMzEzZTQ5MzkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2VsZWN0 cm9uNy9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbXVzbF9tYWxsaW5mby5wYXRjaC5wYXRj aApAQCAtMCwwICsxLDYxIEBACitkaWZmIC0tZ2l0IGEvYmFzZS9wcm9jZXNzL3Byb2Nlc3NfbWV0 cmljc19wb3NpeC5jYyBiL2Jhc2UvcHJvY2Vzcy9wcm9jZXNzX21ldHJpY3NfcG9zaXguY2MKK2lu ZGV4IDA0NGJkOGQuLjA1MjEzMjEgMTAwNjQ0CistLS0gYS9iYXNlL3Byb2Nlc3MvcHJvY2Vzc19t ZXRyaWNzX3Bvc2l4LmNjCisrKysgYi9iYXNlL3Byb2Nlc3MvcHJvY2Vzc19tZXRyaWNzX3Bvc2l4 LmNjCitAQCAtMTEwLDE0ICsxMTAsMTQgQEAgc2l6ZV90IFByb2Nlc3NNZXRyaWNzOjpHZXRNYWxs b2NVc2FnZSgpIHsKKyAgIG1hbGxvY19zdGF0aXN0aWNzX3Qgc3RhdHMgPSB7MH07CisgICBtYWxs b2Nfem9uZV9zdGF0aXN0aWNzKG51bGxwdHIsICZzdGF0cyk7CisgICByZXR1cm4gc3RhdHMuc2l6 ZV9pbl91c2U7CistI2VsaWYgZGVmaW5lZChPU19MSU5VWCkgfHwgZGVmaW5lZChPU19BTkRST0lE KQorKyNlbGlmIChkZWZpbmVkKE9TX0xJTlVYKSAmJiBkZWZpbmVkKF9fR0xJQkNfXykpIHx8IGRl ZmluZWQoT1NfQU5EUk9JRCkKKyAgIHN0cnVjdCBtYWxsaW5mbyBtaW5mbyA9IG1hbGxpbmZvKCk7 CisgI2lmIEJVSUxERkxBRyhVU0VfVENNQUxMT0MpCisgICByZXR1cm4gbWluZm8udW9yZGJsa3M7 CisgI2Vsc2UKKyAgIHJldHVybiBtaW5mby5oYmxraGQgKyBtaW5mby5hcmVuYTsKKyAjZW5kaWYK Ky0jZWxpZiBkZWZpbmVkKE9TX0ZVQ0hTSUEpCisrI2Vsc2UKKyAgIC8vIFRPRE8oZnVjaHNpYSk6 IE5vdCBjdXJyZW50bHkgZXhwb3NlZC4gaHR0cHM6Ly9jcmJ1Zy5jb20vNzM1MDg3LgorICAgcmV0 dXJuIDA7CisgI2VuZGlmCitkaWZmIC0tZ2l0IGEvYmFzZS90cmFjZV9ldmVudC9tYWxsb2NfZHVt cF9wcm92aWRlci5jYyBiL2Jhc2UvdHJhY2VfZXZlbnQvbWFsbG9jX2R1bXBfcHJvdmlkZXIuY2MK K2luZGV4IGU4OTU5N2MuLmVjYTI1OGMgMTAwNjQ0CistLS0gYS9iYXNlL3RyYWNlX2V2ZW50L21h bGxvY19kdW1wX3Byb3ZpZGVyLmNjCisrKysgYi9iYXNlL3RyYWNlX2V2ZW50L21hbGxvY19kdW1w X3Byb3ZpZGVyLmNjCitAQCAtMTMyLDcgKzEzMiw3IEBAIGJvb2wgTWFsbG9jRHVtcFByb3ZpZGVy OjpPbk1lbW9yeUR1bXAoY29uc3QgTWVtb3J5RHVtcEFyZ3MmIGFyZ3MsCisgICB9CisgI2VsaWYg ZGVmaW5lZChPU19GVUNIU0lBKQorIC8vIFRPRE8oZnVjaHNpYSk6IFBvcnQsIHNlZSBodHRwczov L2NyYnVnLmNvbS83MDY1OTIuCistI2Vsc2UKKysjZWxpZiBkZWZpbmVkKE9TX0xJTlVYKSAmJiBk ZWZpbmVkKF9fR0xJQkNfXykKKyAgIHN0cnVjdCBtYWxsaW5mbyBpbmZvID0gbWFsbGluZm8oKTsK KyAgIERDSEVDS19HRShpbmZvLmFyZW5hICsgaW5mby5oYmxraGQsIGluZm8udW9yZGJsa3MpOwor IAorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3N3aWZ0c2hhZGVyL3RoaXJkX3BhcnR5L2xsdm0t c3ViemVyby9idWlsZC9MaW51eC9pbmNsdWRlL2xsdm0vQ29uZmlnL2NvbmZpZy5oIGIvdGhpcmRf cGFydHkvc3dpZnRzaGFkZXIvdGhpcmRfcGFydHkvbGx2bS1zdWJ6ZXJvL2J1aWxkL0xpbnV4L2lu Y2x1ZGUvbGx2bS9Db25maWcvY29uZmlnLmgKK2luZGV4IGFhOTgyNDIuLjk3YWNjN2MgMTAwNjQ0 CistLS0gYS90aGlyZF9wYXJ0eS9zd2lmdHNoYWRlci90aGlyZF9wYXJ0eS9sbHZtLXN1Ynplcm8v YnVpbGQvTGludXgvaW5jbHVkZS9sbHZtL0NvbmZpZy9jb25maWcuaAorKysrIGIvdGhpcmRfcGFy dHkvc3dpZnRzaGFkZXIvdGhpcmRfcGFydHkvbGx2bS1zdWJ6ZXJvL2J1aWxkL0xpbnV4L2luY2x1 ZGUvbGx2bS9Db25maWcvY29uZmlnLmgKK0BAIC0xMzAsNyArMTMwLDcgQEAKKyAvKiAjdW5kZWYg SEFWRV9NQUxMQ1RMICovCisgCisgLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBtYWxs aW5mbycgZnVuY3Rpb24uICovCistI2RlZmluZSBIQVZFX01BTExJTkZPIDEKKysvKiAjdW5kZWYg SEFWRV9NQUxMSU5GTyAqLworIAorIC8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bWFs bG9jLmg+IGhlYWRlciBmaWxlLiAqLworICNkZWZpbmUgSEFWRV9NQUxMT0NfSCAxCitkaWZmIC0t Z2l0IGEvdGhpcmRfcGFydHkvc3dpZnRzaGFkZXIvdGhpcmRfcGFydHkvbGx2bS03LjAvY29uZmln cy9saW51eC9pbmNsdWRlL2xsdm0vQ29uZmlnL2NvbmZpZy5oIGIvdGhpcmRfcGFydHkvc3dpZnRz aGFkZXIvdGhpcmRfcGFydHkvbGx2bS03LjAvY29uZmlncy9saW51eC9pbmNsdWRlL2xsdm0vQ29u ZmlnL2NvbmZpZy5oCitpbmRleCA2ZTE3MDIwLi5kNGE5ZWQwIDEwMDY0NAorLS0tIGEvdGhpcmRf cGFydHkvc3dpZnRzaGFkZXIvdGhpcmRfcGFydHkvbGx2bS03LjAvY29uZmlncy9saW51eC9pbmNs dWRlL2xsdm0vQ29uZmlnL2NvbmZpZy5oCisrKysgYi90aGlyZF9wYXJ0eS9zd2lmdHNoYWRlci90 aGlyZF9wYXJ0eS9sbHZtLTcuMC9jb25maWdzL2xpbnV4L2luY2x1ZGUvbGx2bS9Db25maWcvY29u ZmlnLmgKK0BAIC0xMjIsNyArMTIyLDcgQEAKKyAvKiAjdW5kZWYgSEFWRV9NQUxMQ1RMICovCisK KyAvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYG1hbGxpbmZvJyBmdW5jdGlvbi4gKi8K Ky0jZGVmaW5lIEhBVkVfTUFMTElORk8gMQorKy8qICN1bmRlZiBIQVZFX01BTExJTkZPICovCisK KyAvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG1hbGxvYy5oPiBoZWFkZXIgZmlsZS4g Ki8KKyAjZGVmaW5lIEhBVkVfTUFMTE9DX0ggMQorCmRpZmYgLS1naXQgYS9zcmNwa2dzL2VsZWN0 cm9uNy9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbXVzbF9wcmVhZF9wd3JpdGU2NC5wYXRj aC5wYXRjaCBiL3NyY3BrZ3MvZWxlY3Ryb243L2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1t dXNsX3ByZWFkX3B3cml0ZTY0LnBhdGNoLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMDAwLi4yYWVhYWViNzU5MwotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZWxl Y3Ryb243L2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsX3ByZWFkX3B3cml0ZTY0LnBh dGNoLnBhdGNoCkBAIC0wLDAgKzEsMTggQEAKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9sc3Mv bGludXhfc3lzY2FsbF9zdXBwb3J0LmggYi90aGlyZF9wYXJ0eS9sc3MvbGludXhfc3lzY2FsbF9z dXBwb3J0LmgKK2luZGV4IDVkOWMyZTguLjI2ODIzNDkgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0 eS9sc3MvbGludXhfc3lzY2FsbF9zdXBwb3J0LmgKKysrKyBiL3RoaXJkX3BhcnR5L2xzcy9saW51 eF9zeXNjYWxsX3N1cHBvcnQuaAorQEAgLTE2Niw2ICsxNjYsMTMgQEAgZXh0ZXJuICJDIiB7Cisg IyB1bmRlZiBfX05SX3dhaXRwaWQKKyAjZW5kaWYKKyAKKysjaWZkZWYgcHJlYWQ2NAorKyN1bmRl ZiBwcmVhZDY0CisrI2VuZGlmCisrI2lmZGVmIHB3cml0ZTY0CisrI3VuZGVmIHB3cml0ZTY0Cisr I2VuZGlmCisrCisgLyogQXMgZ2xpYmMgb2Z0ZW4gcHJvdmlkZXMgc3VidGx5IGluY29tcGF0aWJs ZSBkYXRhIHN0cnVjdHVyZXMgKGFuZCBpbXBsaWNpdAorICAqIHdyYXBwZXIgZnVuY3Rpb25zIHRo YXQgY29udmVydCB0aGVtKSwgd2UgcHJvdmlkZSBvdXIgb3duIGtlcm5lbCBkYXRhCisgICogc3Ry dWN0dXJlcyBmb3IgdXNlIGJ5IHRoZSBzeXN0ZW0gY2FsbHMuCmRpZmYgLS1naXQgYS9zcmNwa2dz L2VsZWN0cm9uNy9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbXVzbF9wdXNoX2JhY2sucGF0 Y2gucGF0Y2ggYi9zcmNwa2dzL2VsZWN0cm9uNy9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0t bXVzbF9wdXNoX2JhY2sucGF0Y2gucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMDAwMDAuLmNmZjM0MDI4N2RhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9lbGVjdHJv bjcvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2xfcHVzaF9iYWNrLnBhdGNoLnBhdGNo CkBAIC0wLDAgKzEsMTMgQEAKK2RpZmYgLS1naXQgYS9uZXQvc29ja2V0L3VkcF9zb2NrZXRfcG9z aXguY2MgYi9uZXQvc29ja2V0L3VkcF9zb2NrZXRfcG9zaXguY2MKK2luZGV4IDA4YmY3OWMuLjNl ZTUzNTMgMTAwNjQ0CistLS0gYS9uZXQvc29ja2V0L3VkcF9zb2NrZXRfcG9zaXguY2MKKysrKyBi L25ldC9zb2NrZXQvdWRwX3NvY2tldF9wb3NpeC5jYworQEAgLTExOTQsNyArMTE5NCw3IEBAIFNl bmRSZXN1bHQgVURQU29ja2V0UG9zaXhTZW5kZXI6OkludGVybmFsU2VuZG1tc2dCdWZmZXJzKAor ICAgICBtc2dfaW92LT5wdXNoX2JhY2soe2NvbnN0X2Nhc3Q8Y2hhcio+KGJ1ZmZlci0+ZGF0YSgp KSwgYnVmZmVyLT5sZW5ndGgoKX0pOworICAgbXNndmVjLT5yZXNlcnZlKGJ1ZmZlcnMuc2l6ZSgp KTsKKyAgIGZvciAoc2l6ZV90IGogPSAwOyBqIDwgYnVmZmVycy5zaXplKCk7IGorKykKKy0gICAg bXNndmVjLT5wdXNoX2JhY2soe3tudWxscHRyLCAwLCAmbXNnX2lvdltqXSwgMSwgbnVsbHB0ciwg MCwgMH0sIDB9KTsKKysgICAgbXNndmVjLT5wdXNoX2JhY2soe3tudWxscHRyLCAwLCAmbXNnX2lv dltqXSwgMSwgMCwgbnVsbHB0ciwgMCwgMCwgMH0sIDB9KTsKKyAgIGludCByZXN1bHQgPSBIQU5E TEVfRUlOVFIoU2VuZG1tc2coZmQsICZtc2d2ZWNbMF0sIGJ1ZmZlcnMuc2l6ZSgpLCAwKSk7Cisg ICBTZW5kUmVzdWx0IHNlbmRfcmVzdWx0KDAsIDAsIHN0ZDo6bW92ZShidWZmZXJzKSk7CisgICBp ZiAocmVzdWx0IDwgMCkgewpkaWZmIC0tZ2l0IGEvc3JjcGtncy9lbGVjdHJvbjcvZmlsZXMvbXVz bC1wYXRjaGVzL2Nocm9taXVtLW11c2xfc2lfZmllbGRzLnBhdGNoLnBhdGNoIGIvc3JjcGtncy9l bGVjdHJvbjcvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2xfc2lfZmllbGRzLnBhdGNo LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5mZGJlZmQyN2Uy YgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZWxlY3Ryb243L2ZpbGVzL211c2wtcGF0Y2hl cy9jaHJvbWl1bS1tdXNsX3NpX2ZpZWxkcy5wYXRjaC5wYXRjaApAQCAtMCwwICsxLDEzIEBACitk aWZmIC0tZ2l0IGEvc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi90cmFwLmNjIGIvc2FuZGJveC9s aW51eC9zZWNjb21wLWJwZi90cmFwLmNjCitpbmRleCAwMDM3MDhkLi5iMjE0MTRmIDEwMDY0NAor LS0tIGEvc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi90cmFwLmNjCisrKysgYi9zYW5kYm94L2xp bnV4L3NlY2NvbXAtYnBmL3RyYXAuY2MKK0BAIC0xNjgsNyArMTY4LDcgQEAgdm9pZCBUcmFwOjpT aWdTeXMoaW50IG5yLCBMaW51eFNpZ0luZm8qIGluZm8sIHVjb250ZXh0X3QqIGN0eCkgeworICAg Ly8gbW9zdCB2ZXJzaW9ucyBvZiBnbGliYyBkb24ndCBpbmNsdWRlIHRoaXMgaW5mb3JtYXRpb24g aW4gc2lnaW5mb190LiBTbywKKyAgIC8vIHdlIG5lZWQgdG8gZXhwbGljaXRseSBjb3B5IGl0IGlu dG8gYSBhcmNoX3NpZ3N5cyBzdHJ1Y3R1cmUuCisgICBzdHJ1Y3QgYXJjaF9zaWdzeXMgc2lnc3lz OworLSAgbWVtY3B5KCZzaWdzeXMsICZpbmZvLT5fc2lmaWVsZHMsIHNpemVvZihzaWdzeXMpKTsK KysgIG1lbWNweSgmc2lnc3lzLCAmaW5mby0+X19zaV9maWVsZHMsIHNpemVvZihzaWdzeXMpKTsK KyAKKyAjaWYgZGVmaW5lZChfX21pcHNfXykKKyAgIC8vIFdoZW4gaW5kaXJlY3Qgc3lzY2FsbCAo c3lzY2FsbChfX05SX2ZvbywgLi4uKSkgaXMgbWFkZSBvbiBNaXBzLCB0aGUKZGlmZiAtLWdpdCBh L3NyY3BrZ3MvZWxlY3Ryb243L2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsX3N0YWNr X3NpemUucGF0Y2gucGF0Y2ggYi9zcmNwa2dzL2VsZWN0cm9uNy9maWxlcy9tdXNsLXBhdGNoZXMv Y2hyb21pdW0tbXVzbF9zdGFja19zaXplLnBhdGNoLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMDAwLi5hNGRmN2EzNzI5YgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3Br Z3MvZWxlY3Ryb243L2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsX3N0YWNrX3NpemUu cGF0Y2gucGF0Y2gKQEAgLTAsMCArMSw0MSBAQAorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2Js aW5rL3JlbmRlcmVyL3BsYXRmb3JtL3d0Zi9zdGFja191dGlsLmNjIGIvdGhpcmRfcGFydHkvYmxp bmsvcmVuZGVyZXIvcGxhdGZvcm0vd3RmL3N0YWNrX3V0aWwuY2MKK2luZGV4IGIyNDIxNjQuLjFh MGI1MTkgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9wbGF0Zm9ybS93 dGYvc3RhY2tfdXRpbC5jYworKysrIGIvdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvcGxhdGZv cm0vd3RmL3N0YWNrX3V0aWwuY2MKK0BAIC0yOSw3ICsyOSw3IEBAIHNpemVfdCBHZXRVbmRlcmVz dGltYXRlZFN0YWNrU2l6ZSgpIHsKKyAvLyBGSVhNRTogT24gTWFjIE9TWCBhbmQgTGludXgsIHRo aXMgbWV0aG9kIGNhbm5vdCBlc3RpbWF0ZSBzdGFjayBzaXplCisgLy8gY29ycmVjdGx5IGZvciB0 aGUgbWFpbiB0aHJlYWQuCisgCistI2lmIGRlZmluZWQoX19HTElCQ19fKSB8fCBkZWZpbmVkKE9T X0FORFJPSUQpIHx8IGRlZmluZWQoT1NfRlJFRUJTRCkgfHwgXAorKyNpZiBkZWZpbmVkKE9TX0xJ TlVYKSB8fCBkZWZpbmVkKE9TX0FORFJPSUQpIHx8IGRlZmluZWQoT1NfRlJFRUJTRCkgfHwgXAor ICAgICBkZWZpbmVkKE9TX0ZVQ0hTSUEpCisgICAvLyBwdGhyZWFkX2dldGF0dHJfbnAoKSBjYW4g ZmFpbCBpZiB0aGUgdGhyZWFkIGlzIG5vdCBpbnZva2VkIGJ5CisgICAvLyBwdGhyZWFkX2NyZWF0 ZSgpIChlLmcuLCB0aGUgbWFpbiB0aHJlYWQgb2YgYmxpbmtfdW5pdHRlc3RzKS4KK0BAIC01NSw2 ICs1NSw5IEBAIHNpemVfdCBHZXRVbmRlcmVzdGltYXRlZFN0YWNrU2l6ZSgpIHsKKyAgIHB0aHJl YWRfYXR0cl9kZXN0cm95KCZhdHRyKTsKKyAjZW5kaWYKKyAKKysjaWYgZGVmaW5lZChPU19MSU5V WCkgJiYgIWRlZmluZWQoX19HTElCQ19fKQorKyAgcmV0dXJuIDA7CisrI2Vsc2UKKyAgIC8vIFJl dHVybiBhIDUxMmsgc3RhY2sgc2l6ZSwgKGNvbnNlcnZhdGl2ZWx5KSBhc3N1bWluZyB0aGUgZm9s bG93aW5nOgorICAgLy8gIC0gdGhhdCBzaXplIGlzIG11Y2ggbG93ZXIgdGhhbiB0aGUgcHRocmVh ZHMgZGVmYXVsdCAoeDg2IHB0aHJlYWRzIGhhcyBhIDJNCisgICAvLyAgICBkZWZhdWx0LikKK0BA IC02Miw2ICs2NSw4IEBAIHNpemVfdCBHZXRVbmRlcmVzdGltYXRlZFN0YWNrU2l6ZSgpIHsKKyAg IC8vICAgIGxvdyBhcyA1MTJrLgorICAgLy8KKyAgIHJldHVybiA1MTIgKiAxMDI0OworKyNlbmRp ZgorKworICNlbGlmIGRlZmluZWQoT1NfTUFDT1NYKQorICAgLy8gcHRocmVhZF9nZXRfc3RhY2tz aXplX25wKCkgcmV0dXJucyB0b28gbG93IGEgdmFsdWUgZm9yIHRoZSBtYWluIHRocmVhZCBvbgor ICAgLy8gT1NYIDEwLjksCitAQCAtOTcsNyArMTAyLDcgQEAgcmV0dXJuIFRocmVhZGluZzo6VGhy ZWFkU3RhY2tTaXplKCk7CisgfQorIAorIHZvaWQqIEdldFN0YWNrU3RhcnQoKSB7CistI2lmIGRl ZmluZWQoX19HTElCQ19fKSB8fCBkZWZpbmVkKE9TX0FORFJPSUQpIHx8IGRlZmluZWQoT1NfRlJF RUJTRCkgfHwgXAorKyNpZiBkZWZpbmVkKE9TX0xJTlVYKSB8fCBkZWZpbmVkKE9TX0FORFJPSUQp IHx8IGRlZmluZWQoT1NfRlJFRUJTRCkgfHwgXAorICAgICBkZWZpbmVkKE9TX0ZVQ0hTSUEpCisg ICBwdGhyZWFkX2F0dHJfdCBhdHRyOworICAgaW50IGVycm9yOwpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9lbGVjdHJvbjcvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2xfc3RhY2tfdHJhY2Uu cGF0Y2gucGF0Y2ggYi9zcmNwa2dzL2VsZWN0cm9uNy9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21p dW0tbXVzbF9zdGFja190cmFjZS5wYXRjaC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwMDAwMC4uOWExZjJiMDQ0NTgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2Vs ZWN0cm9uNy9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbXVzbF9zdGFja190cmFjZS5wYXRj aC5wYXRjaApAQCAtMCwwICsxLDQ0IEBACitkaWZmIC0tZ2l0IGEvYmFzZS9kZWJ1Zy9zdGFja190 cmFjZS5jYyBiL2Jhc2UvZGVidWcvc3RhY2tfdHJhY2UuY2MKK2luZGV4IGQ4Y2E4MjIuLmZmZTFm MDggMTAwNjQ0CistLS0gYS9iYXNlL2RlYnVnL3N0YWNrX3RyYWNlLmNjCisrKysgYi9iYXNlL2Rl YnVnL3N0YWNrX3RyYWNlLmNjCitAQCAtMjI1LDcgKzIyNSw5IEBAIHZvaWQgU3RhY2tUcmFjZTo6 UHJpbnQoKSBjb25zdCB7CisgfQorCisgdm9pZCBTdGFja1RyYWNlOjpPdXRwdXRUb1N0cmVhbShz dGQ6Om9zdHJlYW0qIG9zKSBjb25zdCB7CisrI2lmIGRlZmluZWQoX19HTElCQ19fKSAmJiAhZGVm aW5lZChfX1VDTElCQ19fKSAmJiAhZGVmaW5lZChfQUlYKQorICAgT3V0cHV0VG9TdHJlYW1XaXRo UHJlZml4KG9zLCBudWxscHRyKTsKKysjZW5kaWYKKyB9CisKKyBzdGQ6OnN0cmluZyBTdGFja1Ry YWNlOjpUb1N0cmluZygpIGNvbnN0IHsKK0BAIC0yMzMsMTQgKzIzMywxNCBAQCBzdGQ6OnN0cmlu ZyBTdGFja1RyYWNlOjpUb1N0cmluZygpIGNvbnN0IHsKKyB9Cisgc3RkOjpzdHJpbmcgU3RhY2tU cmFjZTo6VG9TdHJpbmdXaXRoUHJlZml4KGNvbnN0IGNoYXIqIHByZWZpeF9zdHJpbmcpIGNvbnN0 IHsKKyAgIHN0ZDo6c3RyaW5nc3RyZWFtIHN0cmVhbTsKKy0jaWYgIWRlZmluZWQoX19VQ0xJQkNf XykgJiYgIWRlZmluZWQoX0FJWCkKKysjaWYgZGVmaW5lZChfX0dMSUJDX18pICYmICFkZWZpbmVk KF9fVUNMSUJDX18pICYmICFkZWZpbmVkKF9BSVgpCisgICBPdXRwdXRUb1N0cmVhbVdpdGhQcmVm aXgoJnN0cmVhbSwgcHJlZml4X3N0cmluZyk7CisgI2VuZGlmCisgICByZXR1cm4gc3RyZWFtLnN0 cigpOworIH0KKyAKKyBzdGQ6Om9zdHJlYW0mIG9wZXJhdG9yPDwoc3RkOjpvc3RyZWFtJiBvcywg Y29uc3QgU3RhY2tUcmFjZSYgcykgeworLSNpZiAhZGVmaW5lZChfX1VDTElCQ19fKSAmICFkZWZp bmVkKF9BSVgpCisrI2lmIGRlZmluZWQoX19HTElCQ19fKSAmJiAhZGVmaW5lZChfX1VDTElCQ19f KSAmICFkZWZpbmVkKF9BSVgpCisgICBzLk91dHB1dFRvU3RyZWFtKCZvcyk7CisgI2Vsc2UKKyAg IG9zIDw8ICJTdGFja1RyYWNlOjpPdXRwdXRUb1N0cmVhbSBub3QgaW1wbGVtZW50ZWQuIjsKK2Rp ZmYgLS1naXQgYS9iYXNlL2xvZ2dpbmcuY2MgYi9iYXNlL2xvZ2dpbmcuY2MKK2luZGV4IDM2Yjhi ZmMuLmRkODMwZmUgMTAwNjQ0CistLS0gYS9iYXNlL2xvZ2dpbmcuY2MKKysrKyBiL2Jhc2UvbG9n Z2luZy5jYworQEAgLTYwNyw3ICs2MDcsNyBAQCBMb2dNZXNzYWdlOjpMb2dNZXNzYWdlKGNvbnN0 IGNoYXIqIGZpbGUsIGludCBsaW5lLCBMb2dTZXZlcml0eSBzZXZlcml0eSwKKyBMb2dNZXNzYWdl Ojp+TG9nTWVzc2FnZSgpIHsKKyAgIHNpemVfdCBzdGFja19zdGFydCA9IHN0cmVhbV8udGVsbHAo KTsKKyAjaWYgIWRlZmluZWQoT0ZGSUNJQUxfQlVJTEQpICYmICFkZWZpbmVkKE9TX05BQ0wpICYm ICFkZWZpbmVkKF9fVUNMSUJDX18pICYmIFwKKy0gICAgIWRlZmluZWQoT1NfQUlYKQorKyAgICAh ZGVmaW5lZChPU19BSVgpICYmIGRlZmluZWQoX19HTElCQ19fKQorICAgaWYgKHNldmVyaXR5XyA9 PSBMT0dfRkFUQUwgJiYgIWJhc2U6OmRlYnVnOjpCZWluZ0RlYnVnZ2VkKCkpIHsKKyAgICAgLy8g SW5jbHVkZSBhIHN0YWNrIHRyYWNlIG9uIGEgZmF0YWwsIHVubGVzcyBhIGRlYnVnZ2VyIGlzIGF0 dGFjaGVkLgorICAgICBiYXNlOjpkZWJ1Zzo6U3RhY2tUcmFjZSBzdGFja190cmFjZTsKZGlmZiAt LWdpdCBhL3NyY3BrZ3MvZWxlY3Ryb243L2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNs X3RjcF9saXN0ZW4ucGF0Y2gucGF0Y2ggYi9zcmNwa2dzL2VsZWN0cm9uNy9maWxlcy9tdXNsLXBh dGNoZXMvY2hyb21pdW0tbXVzbF90Y3BfbGlzdGVuLnBhdGNoLnBhdGNoCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5mYTYyMzE3YjExYQotLS0gL2Rldi9udWxsCisrKyBi L3NyY3BrZ3MvZWxlY3Ryb243L2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsX3RjcF9s aXN0ZW4ucGF0Y2gucGF0Y2gKQEAgLTAsMCArMSwxNCBAQAorZGlmZiAtLWdpdCBhL2NvbnRlbnQv cHVibGljL2NvbW1vbi9zb2NrZXRfcGVybWlzc2lvbl9yZXF1ZXN0LmggYi9jb250ZW50L3B1Ymxp Yy9jb21tb24vc29ja2V0X3Blcm1pc3Npb25fcmVxdWVzdC5oCitpbmRleCA3MzE2NjIxLi42MTcx MjE5IDEwMDY0NAorLS0tIGEvY29udGVudC9wdWJsaWMvY29tbW9uL3NvY2tldF9wZXJtaXNzaW9u X3JlcXVlc3QuaAorKysrIGIvY29udGVudC9wdWJsaWMvY29tbW9uL3NvY2tldF9wZXJtaXNzaW9u X3JlcXVlc3QuaAorQEAgLTksNiArOSw5IEBACisgCisgI2luY2x1ZGUgPHN0cmluZz4KKyAKKysj aWZkZWYgVENQX0xJU1RFTgorKyN1bmRlZiBUQ1BfTElTVEVOCisrI2VuZGlmCisgCisgbmFtZXNw YWNlIGNvbnRlbnQgeworIApkaWZmIC0tZ2l0IGEvc3JjcGtncy9lbGVjdHJvbjcvZmlsZXMvbXVz bC1wYXRjaGVzL2Nocm9taXVtLW11c2xfd29yZHNpemUucGF0Y2gucGF0Y2ggYi9zcmNwa2dzL2Vs ZWN0cm9uNy9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbXVzbF93b3Jkc2l6ZS5wYXRjaC5w YXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNjIwOGNmZmFmYmUK LS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2VsZWN0cm9uNy9maWxlcy9tdXNsLXBhdGNoZXMv Y2hyb21pdW0tbXVzbF93b3Jkc2l6ZS5wYXRjaC5wYXRjaApAQCAtMCwwICsxLDI0IEBACitkaWZm IC0tZ2l0IGEvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NvbW1vbi9saW51eC9l bGZfY29yZV9kdW1wLmggYi90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY29tbW9u L2xpbnV4L2VsZl9jb3JlX2R1bXAuaAoraW5kZXggZDAzYzdhOC4uNzhjYTlkZCAxMDA2NDQKKy0t LSBhL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jb21tb24vbGludXgvZWxmX2Nv cmVfZHVtcC5oCisrKysgYi90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY29tbW9u L2xpbnV4L2VsZl9jb3JlX2R1bXAuaAorQEAgLTM2LDYgKzM2LDcgQEAKKyAjaW5jbHVkZSA8ZWxm Lmg+CisgI2luY2x1ZGUgPGxpbmsuaD4KKyAjaW5jbHVkZSA8c3RkZGVmLmg+CisrI2luY2x1ZGUg PGxpbWl0cy5oPgorIAorICNpbmNsdWRlICJjb21tb24vbWVtb3J5X3JhbmdlLmgiCisgCitAQCAt NTEsOSArNTIsOSBAQCBjbGFzcyBFbGZDb3JlRHVtcCB7CisgICB0eXBlZGVmIEVsZlcoUGhkcikg UGhkcjsKKyAgIHR5cGVkZWYgRWxmVyhXb3JkKSBXb3JkOworICAgdHlwZWRlZiBFbGZXKEFkZHIp IEFkZHI7CistI2lmIF9fV09SRFNJWkUgPT0gMzIKKysjaWYgVUxPTkdfTUFYID09IDB4ZmZmZmZm ZmYKKyAgIHN0YXRpYyBjb25zdCBpbnQga0NsYXNzID0gRUxGQ0xBU1MzMjsKKy0jZWxpZiBfX1dP UkRTSVpFID09IDY0CisrI2VsaWYgVUxPTkdfTUFYID09IDB4ZmZmZmZmZmZmZmZmZmZmZgorICAg c3RhdGljIGNvbnN0IGludCBrQ2xhc3MgPSBFTEZDTEFTUzY0OworICNlbHNlCisgI2Vycm9yICJV bnN1cHBvcnRlZCBfX1dPUkRTSVpFIGZvciBFbGZDb3JlRHVtcC4iCmRpZmYgLS1naXQgYS9zcmNw a2dzL2VsZWN0cm9uNy9maWxlcy9wYXRjaGVzL2Nocm9taXVtLTAwMS11cHN0cmVhbV9jaHJvbWVf Y2xlYW5lci5wYXRjaC5wYXRjaCBiL3NyY3BrZ3MvZWxlY3Ryb243L2ZpbGVzL3BhdGNoZXMvY2hy b21pdW0tMDAxLXVwc3RyZWFtX2Nocm9tZV9jbGVhbmVyLnBhdGNoLnBhdGNoCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi41N2U5NDE4MGM1OQotLS0gL2Rldi9udWxsCisr KyBiL3NyY3BrZ3MvZWxlY3Ryb243L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tMDAxLXVwc3RyZWFt X2Nocm9tZV9jbGVhbmVyLnBhdGNoLnBhdGNoCkBAIC0wLDAgKzEsNzMgQEAKK0Zyb20gYzc1NWVj ODQ3NDU5ZDlkMzgwN2MyMmMyZDRkNmFhNmY5Yzg2ZGM3YyBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKK0Zyb206IEpvaG4gQnVkb3JpY2sgPGpidWRvcmlja0BjaHJvbWl1bS5vcmc+CitEYXRlOiBU dWUsIDE5IE5vdiAyMDE5IDIyOjI0OjIwICswMDAwCitTdWJqZWN0OiBbUEFUQ0hdIDM5MDQ6IGNo cm9tZV9jbGVhbmVyOiBlbnN1cmUgaW50ZXJuYWwgdGFyZ2V0cyBhcmUgcmVhY2hhYmxlCisgZnJv bSA6Z25fYWxsLgorCisoY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCBlZWU1MTNkZmM3ODBhZDRi Y2FhNzRiNjdmMmUwZWFlYmY1N2I1YzkzKQorCitCdWc6IDk4NDE2MiwgMTAwNDg0OAorQ2hhbmdl LUlkOiBJYmI3YzQ3ZjAxODhkZThlMDc3Y2QzMGFhOGQ2OGNhNjExMzNkMjAzNworUmV2aWV3ZWQt b246IGh0dHBzOi8vY2hyb21pdW0tcmV2aWV3Lmdvb2dsZXNvdXJjZS5jb20vYy9jaHJvbWl1bS9z cmMvKy8xOTA0NTQ5CitDb21taXQtUXVldWU6IEpvaG4gQnVkb3JpY2sgPGpidWRvcmlja0BjaHJv bWl1bS5vcmc+CitSZXZpZXdlZC1ieTogSm9lIE1hc29uIDxqb2Vub3RjaGFybGVzQGNocm9taXVt Lm9yZz4KK0NyLU9yaWdpbmFsLUNvbW1pdC1Qb3NpdGlvbjogcmVmcy9oZWFkcy9tYXN0ZXJAeyM3 MTM2ODN9CitSZXZpZXdlZC1vbjogaHR0cHM6Ly9jaHJvbWl1bS1yZXZpZXcuZ29vZ2xlc291cmNl LmNvbS9jL2Nocm9taXVtL3NyYy8rLzE5MjIyOTkKK0NyLUNvbW1pdC1Qb3NpdGlvbjogcmVmcy9i cmFuY2gtaGVhZHMvMzkwNEB7Izg5NX0KK0NyLUJyYW5jaGVkLUZyb206IDY3NTk2OGE4YzY1N2Ez YmQ5YzFjMmMyMGM1ZDI5MzU1NzdiYmM1ZTYtcmVmcy9oZWFkcy9tYXN0ZXJAeyM2OTM5NTR9Cist LS0KKyBCVUlMRC5nbiAgICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQorIGNocm9tZS9jaHJv bWVfY2xlYW5lci9CVUlMRC5nbiB8IDIzICsrKysrKysrKysrKysrKysrKysrLS0tCisgMiBmaWxl cyBjaGFuZ2VkLCAyMSBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0 IGEvQlVJTEQuZ24gYi9CVUlMRC5nbgoraW5kZXggNWUyZjZiOWIwZjQxYy4uYWMwMjk3NjA4NTk0 ZiAxMDA2NDQKKy0tLSBhL0JVSUxELmduCisrKysgYi9CVUlMRC5nbgorQEAgLTYwNCw3ICs2MDQs NyBAQCBncm91cCgiZ25fYWxsIikgeworICAgaWYgKGlzX3dpbikgeworICAgICBkZXBzICs9IFsK KyAgICAgICAiLy9iYXNlOnBlX2ltYWdlX3Rlc3QiLAorLSAgICAgICIvL2Nocm9tZS9jaHJvbWVf Y2xlYW5lcjpjaHJvbWVfY2xlYW5lcl91bml0dGVzdHMiLAorKyAgICAgICIvL2Nocm9tZS9jaHJv bWVfY2xlYW5lciIsCisgICAgICAgIi8vY2hyb21lL2Nocm9tZV9lbGY6Y2hyb21lX2VsZl91bml0 dGVzdHMiLAorICAgICAgICIvL2Nocm9tZS9jaHJvbWVfZWxmOmRsbF9oYXNoX21haW4iLAorICAg ICAgICIvL2Nocm9tZS9lbGV2YXRpb25fc2VydmljZTplbGV2YXRpb25fc2VydmljZV91bml0dGVz dHMiLAorZGlmZiAtLWdpdCBhL2Nocm9tZS9jaHJvbWVfY2xlYW5lci9CVUlMRC5nbiBiL2Nocm9t ZS9jaHJvbWVfY2xlYW5lci9CVUlMRC5nbgoraW5kZXggZmJkMmQ4ZDUzMDdhYS4uMTY3MWEzZjdk MDk3YyAxMDA2NDQKKy0tLSBhL2Nocm9tZS9jaHJvbWVfY2xlYW5lci9CVUlMRC5nbgorKysrIGIv Y2hyb21lL2Nocm9tZV9jbGVhbmVyL0JVSUxELmduCitAQCAtNjQsOSArNjQsNiBAQCBzdGF0aWNf bGlicmFyeSgib3RoZXJfZXhlY3V0YWJsZV9kZWZpbml0aW9ucyIpIHsKKyB9CisgCisgdGVzdCgi Y2hyb21lX2NsZWFuZXJfdW5pdHRlc3RzIikgeworLSAgIyBNYWtlIHRoaXMgdGFyZ2V0IGZpbmRh YmxlIGZyb20gdGhlICJhbGwiIHRhcmdldCB1c2VkIGJ5IHRoZSBidWlsZGVycy4KKy0gIHZpc2li aWxpdHkgKz0gWyAiLy8uOmduX2FsbCIgXQorLQorICAgc291cmNlcyA9IFsKKyAgICAgIi8vY2hy b21lL2Nocm9tZV9jbGVhbmVyL3Rlc3QvdGVzdF9tYWluLmNjIiwKKyAgIF0KK0BAIC0xMjYsMyAr MTIzLDIzIEBAIHRlc3QoImNocm9tZV9jbGVhbmVyX3VuaXR0ZXN0cyIpIHsKKyAgICAgXQorICAg fQorIH0KKysKKytncm91cCgiY2hyb21lX2NsZWFuZXIiKSB7CisrICB0ZXN0b25seSA9IHRydWUK KysKKysgICMgTWFrZSB0aGlzIHRhcmdldCBmaW5kYWJsZSBmcm9tIHRoZSAiYWxsIiB0YXJnZXQg dXNlZCBieSB0aGUgYnVpbGRlcnMuCisrICB2aXNpYmlsaXR5ICs9IFsgIi8vLjpnbl9hbGwiIF0K KysKKysgIGRlcHMgPSBbCisrICAgICI6Y2hyb21lX2NsZWFuZXJfdW5pdHRlc3RzIiwKKysgICAg Ii8vY2hyb21lL2Nocm9tZV9jbGVhbmVyL2V4ZWN1dGFibGVzOmNocm9tZV9jbGVhbnVwX3Rvb2wi LAorKyAgICAiLy9jaHJvbWUvY2hyb21lX2NsZWFuZXIvZXhlY3V0YWJsZXM6c29mdHdhcmVfcmVw b3J0ZXJfdG9vbCIsCisrICBdCisrCisrICBpZiAoaXNfaW50ZXJuYWxfY2hyb21lX2NsZWFuZXJf YnVpbGQpIHsKKysgICAgZGVwcyArPSBbCisrICAgICAgIiR7Y2hyb21lX2NsZWFuZXJfaW50ZXJu YWxfcm9vdH06YnVpbGRfdGFyZ2V0cyIsCisrICAgICAgIiR7Y2hyb21lX2NsZWFuZXJfaW50ZXJu YWxfcm9vdH06dGVzdF90YXJnZXRzIiwKKysgICAgXQorKyAgfQorK30KZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MvZWxlY3Ryb243L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tMDAyLXVwc3RyZWFtX3NhdmVf bG9nc19mcm9tX3Rlc3RfY2lsZF9wcm9jZXNzZXMucGF0Y2gucGF0Y2ggYi9zcmNwa2dzL2VsZWN0 cm9uNy9maWxlcy9wYXRjaGVzL2Nocm9taXVtLTAwMi11cHN0cmVhbV9zYXZlX2xvZ3NfZnJvbV90 ZXN0X2NpbGRfcHJvY2Vzc2VzLnBhdGNoLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMDAwLi43NGI5ZmVjNTlhNwotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZWxl Y3Ryb243L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tMDAyLXVwc3RyZWFtX3NhdmVfbG9nc19mcm9t X3Rlc3RfY2lsZF9wcm9jZXNzZXMucGF0Y2gucGF0Y2gKQEAgLTAsMCArMSwzNDIgQEAKK0Zyb20g ZGFlYzY2MWYyN2JkZmFiNzkxMzJkN2QyYzQ2MzdjYzE3ZmQ0YWEzNSBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKK0Zyb206IEpvZSBNYXNvbiA8am9lbm90Y2hhcmxlc0Bnb29nbGUuY29tPgorRGF0 ZTogV2VkLCA0IERlYyAyMDE5IDE4OjA0OjIxICswMDAwCitTdWJqZWN0OiBbUEFUQ0hdIFNhdmUg bG9ncyBmcm9tIHRlc3QgY2hpbGQgcHJvY2Vzc2VzIGJ5IHJlZGlyZWN0aW5nIHN0ZG91dCBhbmQK KyBzdGRlcnIuCisKK1RoZSBwcmV2aW91cyBzb2x1dGlvbiBjYW4gb25seSBjYXB0dXJlIGxvZ3Mg YWZ0ZXIgdGhlIGNoaWxkIHByb2Nlc3MKK2NyZWF0ZXMgYSBTY29wZWRMb2dnaW5nIG9iamVjdC4g V2Ugc2VlIGZsYWt5IGNyYXNoZXMgaW4gc2FuZGJveCBjcmVhdGlvbgordGhhdCBoYXBwZW4gYmVm b3JlIHRoYXQgc28gdGhpcyB3aWxsIGxldCB1cyBzZWUgdGhlIGNoaWxkIHByb2Nlc3Mgc3RhY2sK K3RyYWNlcy4KKworQWxzbyBtb3ZlcyBzb21lIGZ1bmN0aW9ucyB0aGF0IHdlcmUgZXhwb3J0ZWQg ZnJvbSBpcGNfdGVzdF91dGlsLmggdG8gYmUKK3ByaXZhdGUgdG8gcHJvdG9fY2hyb21lX3Byb21w dF9pcGNfdW5pdHRlc3QuY2MsIHdoaWNoIGlzIHRoZSBvbmx5IHRlc3QKK3RoYXQgc3RpbGwgdXNl cyB0aGVtLgorCisoY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCBlN2E3NTU0MjExMzZkN2ZjOWIz YTczYTVlNTQ2NDM2OGYzZWZhN2Y5KQorCitCdWc6IDEwMzAzMzMKK0NoYW5nZS1JZDogSWUzMGVl ZDNiMTY2MzE3MjFlODFhNDIwYjNiNzBmMWVjNWYwZDlhMGMKK1Jldmlld2VkLW9uOiBodHRwczov L2Nocm9taXVtLXJldmlldy5nb29nbGVzb3VyY2UuY29tL2MvY2hyb21pdW0vc3JjLysvMTk0ODQ4 MworUmV2aWV3ZWQtYnk6IHByb2JlcmdlIDxwcm9iZXJnZUBjaHJvbWl1bS5vcmc+CitDb21taXQt UXVldWU6IEpvZSBNYXNvbiA8am9lbm90Y2hhcmxlc0BjaHJvbWl1bS5vcmc+CitDci1PcmlnaW5h bC1Db21taXQtUG9zaXRpb246IHJlZnMvaGVhZHMvbWFzdGVyQHsjNzIxMDcxfQorUmV2aWV3ZWQt b246IGh0dHBzOi8vY2hyb21pdW0tcmV2aWV3Lmdvb2dsZXNvdXJjZS5jb20vYy9jaHJvbWl1bS9z cmMvKy8xOTUxMDg5CitSZXZpZXdlZC1ieTogSm9lIE1hc29uIDxqb2Vub3RjaGFybGVzQGNocm9t aXVtLm9yZz4KK0NyLUNvbW1pdC1Qb3NpdGlvbjogcmVmcy9icmFuY2gtaGVhZHMvMzkwNEB7Izkx M30KK0NyLUJyYW5jaGVkLUZyb206IDY3NTk2OGE4YzY1N2EzYmQ5YzFjMmMyMGM1ZDI5MzU1Nzdi YmM1ZTYtcmVmcy9oZWFkcy9tYXN0ZXJAeyM2OTM5NTR9CistLS0KKyBjaHJvbWUvY2hyb21lX2Ns ZWFuZXIvaXBjL2lwY190ZXN0X3V0aWwuY2MgICAgfCA5MiArKysrKysrKysrKystLS0tLS0tCisg Y2hyb21lL2Nocm9tZV9jbGVhbmVyL2lwYy9pcGNfdGVzdF91dGlsLmggICAgIHwgMTMgKystCisg Li4uL2lwYy9wcm90b19jaHJvbWVfcHJvbXB0X2lwY191bml0dGVzdC5jYyAgIHwgMTcgKystLQor IGNocm9tZS9jaHJvbWVfY2xlYW5lci9pcGMvc2FuZGJveC5jYyAgICAgICAgICB8ICA1ICstCisg NCBmaWxlcyBjaGFuZ2VkLCA3NyBpbnNlcnRpb25zKCspLCA1MCBkZWxldGlvbnMoLSkKKworZGlm ZiAtLWdpdCBhL2Nocm9tZS9jaHJvbWVfY2xlYW5lci9pcGMvaXBjX3Rlc3RfdXRpbC5jYyBiL2No cm9tZS9jaHJvbWVfY2xlYW5lci9pcGMvaXBjX3Rlc3RfdXRpbC5jYworaW5kZXggMDVmYzBkMDI3 ZWM0My4uMGQwM2E2ODcwZmIwNyAxMDA2NDQKKy0tLSBhL2Nocm9tZS9jaHJvbWVfY2xlYW5lci9p cGMvaXBjX3Rlc3RfdXRpbC5jYworKysrIGIvY2hyb21lL2Nocm9tZV9jbGVhbmVyL2lwYy9pcGNf dGVzdF91dGlsLmNjCitAQCAtMTMsNiArMTMsNyBAQAorICNpbmNsdWRlICJiYXNlL2NvbW1hbmRf bGluZS5oIgorICNpbmNsdWRlICJiYXNlL2ZpbGVzL2ZpbGVfcGF0aC5oIgorICNpbmNsdWRlICJi YXNlL2ZpbGVzL2ZpbGVfdXRpbC5oIgorKyNpbmNsdWRlICJiYXNlL2ZpbGVzL3Njb3BlZF90ZW1w X2Rpci5oIgorICNpbmNsdWRlICJiYXNlL2xvZ2dpbmcuaCIKKyAjaW5jbHVkZSAiYmFzZS9wcm9j ZXNzL2xhdW5jaC5oIgorICNpbmNsdWRlICJiYXNlL3JhbmRfdXRpbC5oIgorQEAgLTIzLDcgKzI0 LDYgQEAKKyAjaW5jbHVkZSAiYmFzZS90ZXN0L3Rlc3RfdGltZW91dHMuaCIKKyAjaW5jbHVkZSAi YmFzZS93aW4vd2luX3V0aWwuaCIKKyAjaW5jbHVkZSAiY2hyb21lL2Nocm9tZV9jbGVhbmVyL2lw Yy9zYW5kYm94LmgiCistI2luY2x1ZGUgImNocm9tZS9jaHJvbWVfY2xlYW5lci9sb2dnaW5nL3Nj b3BlZF9sb2dnaW5nLmgiCisgI2luY2x1ZGUgInNhbmRib3gvd2luL3NyYy9zYW5kYm94X2ZhY3Rv cnkuaCIKKyAKKyBuYW1lc3BhY2UgY2hyb21lX2NsZWFuZXIgeworQEAgLTMyLDEyICszMiwxMyBA QCBuYW1lc3BhY2UgeworIAorIGNvbnN0ZXhwciBjaGFyIGtNb2pvUGlwZVRva2VuU3dpdGNoW10g PSAibW9qby1waXBlLXRva2VuIjsKKyAKKy1jb25zdGV4cHIgd2NoYXJfdCBrSVBDVGVzdFV0aWxM b2dTdWZmaXhbXSA9IEwiaXBjLXRlc3QtdXRpbCI7CistCisgY2xhc3MgTW9qb1NhbmRib3hTZXR1 cEhvb2tzIDogcHVibGljIFNhbmRib3hTZXR1cEhvb2tzIHsKKyAgcHVibGljOgorLSAgZXhwbGlj aXQgTW9qb1NhbmRib3hTZXR1cEhvb2tzKFNhbmRib3hlZFBhcmVudFByb2Nlc3MqIHBhcmVudF9w cm9jZXNzKQorLSAgICAgIDogcGFyZW50X3Byb2Nlc3NfKHBhcmVudF9wcm9jZXNzKSB7fQorKyAg ZXhwbGljaXQgTW9qb1NhbmRib3hTZXR1cEhvb2tzKAorKyAgICAgIFNhbmRib3hlZFBhcmVudFBy b2Nlc3MqIHBhcmVudF9wcm9jZXNzLAorKyAgICAgIGJhc2U6Ondpbjo6U2NvcGVkSGFuZGxlIGNo aWxkX3N0ZG91dF93cml0ZV9oYW5kbGUpCisrICAgICAgOiBwYXJlbnRfcHJvY2Vzc18ocGFyZW50 X3Byb2Nlc3MpLAorKyAgICAgICAgY2hpbGRfc3Rkb3V0X3dyaXRlX2hhbmRsZV8oc3RkOjptb3Zl KGNoaWxkX3N0ZG91dF93cml0ZV9oYW5kbGUpKSB7fQorICAgfk1vam9TYW5kYm94U2V0dXBIb29r cygpIG92ZXJyaWRlID0gZGVmYXVsdDsKKyAKKyAgIC8vIFNhbmRib3hTZXR1cEhvb2tzCitAQCAt NDksNiArNTAsOCBAQCBjbGFzcyBNb2pvU2FuZGJveFNldHVwSG9va3MgOiBwdWJsaWMgU2FuZGJv eFNldHVwSG9va3MgeworICAgICBwYXJlbnRfcHJvY2Vzc18tPkNyZWF0ZU1vam9QaXBlKGNvbW1h bmRfbGluZSwgJmhhbmRsZXNfdG9faW5oZXJpdCk7CisgICAgIGZvciAoSEFORExFIGhhbmRsZSA6 IGhhbmRsZXNfdG9faW5oZXJpdCkKKyAgICAgICBwb2xpY3ktPkFkZEhhbmRsZVRvU2hhcmUoaGFu ZGxlKTsKKysgICAgcG9saWN5LT5TZXRTdGRvdXRIYW5kbGUoY2hpbGRfc3Rkb3V0X3dyaXRlX2hh bmRsZV8uR2V0KCkpOworKyAgICBwb2xpY3ktPlNldFN0ZGVyckhhbmRsZShjaGlsZF9zdGRvdXRf d3JpdGVfaGFuZGxlXy5HZXQoKSk7CisgICAgIHJldHVybiBSRVNVTFRfQ09ERV9TVUNDRVNTOwor ICAgfQorIAorQEAgLTYxLDMzICs2NCwxNCBAQCBjbGFzcyBNb2pvU2FuZGJveFNldHVwSG9va3Mg OiBwdWJsaWMgU2FuZGJveFNldHVwSG9va3MgeworIAorICBwcml2YXRlOgorICAgU2FuZGJveGVk UGFyZW50UHJvY2VzcyogcGFyZW50X3Byb2Nlc3NfOworKyAgYmFzZTo6d2luOjpTY29wZWRIYW5k bGUgY2hpbGRfc3Rkb3V0X3dyaXRlX2hhbmRsZV87CisgfTsKKyAKKyB9ICAvLyBuYW1lc3BhY2UK KyAKKyBuYW1lc3BhY2UgaW50ZXJuYWwgeworIAorLWJhc2U6OkZpbGVQYXRoOjpTdHJpbmdQaWVj ZVR5cGUgR2V0TG9nUGF0aFN1ZmZpeCgpIHsKKy0gIHJldHVybiBrSVBDVGVzdFV0aWxMb2dTdWZm aXg7CistfQorLQorLWJhc2U6OkZpbGVQYXRoIEdldExvZ1BhdGgoKSB7CistICByZXR1cm4gU2Nv cGVkTG9nZ2luZzo6R2V0TG9nRmlsZVBhdGgoa0lQQ1Rlc3RVdGlsTG9nU3VmZml4KTsKKy19Cist CistYm9vbCBEZWxldGVDaGlsZFByb2Nlc3NMb2dzKCkgeworLSAgLy8gRGVsZXRlIHRoZSBjaGls ZCBwcm9jZXNzIGxvZyBmaWxlIGlmIGV4aXN0aW5nLgorLSAgY29uc3QgYmFzZTo6RmlsZVBhdGgg bG9nX3BhdGggPSBHZXRMb2dQYXRoKCk7CistICBpZiAoIWJhc2U6OkRlbGV0ZUZpbGUobG9nX3Bh dGgsIGZhbHNlKSkgeworLSAgICBMT0coRVJST1IpIDw8ICJDYW4ndCBkZWxldGUgbG9nIGZpbGUg ZnJvbSBwcmV2aW91cyBydW46ICIKKy0gICAgICAgICAgICAgICA8PCBsb2dfcGF0aC52YWx1ZSgp OworLSAgICByZXR1cm4gZmFsc2U7CistICB9CistICByZXR1cm4gdHJ1ZTsKKy19CistCistdm9p ZCBQcmludENoaWxkUHJvY2Vzc0xvZ3MoKSB7CistICBjb25zdCBiYXNlOjpGaWxlUGF0aCBsb2df cGF0aCA9IEdldExvZ1BhdGgoKTsKKyt2b2lkIFByaW50Q2hpbGRQcm9jZXNzTG9ncyhjb25zdCBi YXNlOjpGaWxlUGF0aCYgbG9nX3BhdGgpIHsKKyAgIGlmIChsb2dfcGF0aC5lbXB0eSgpKSB7Cisg ICAgIExPRyhFUlJPUikgPDwgIkNoaWxkIHByb2Nlc3MgbG9nIHBhdGggaXMgZW1wdHkiOworICAg ICByZXR1cm47CitAQCAtMTc0LDExICsxNTgsMzggQEAgYm9vbCBQYXJlbnRQcm9jZXNzOjpMYXVu Y2hDb25uZWN0ZWRDaGlsZFByb2Nlc3MoCisgICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBjaGlsZF9t YWluX2Z1bmN0aW9uLAorICAgICBiYXNlOjpUaW1lRGVsdGEgdGltZW91dCwKKyAgICAgaW50MzJf dCogZXhpdF9jb2RlKSB7CistICBpZiAoIWludGVybmFsOjpEZWxldGVDaGlsZFByb2Nlc3NMb2dz KCkpCisrICAvLyBBZGFwdGVkIGZyb20KKysgIC8vIGh0dHBzOi8vY3MuY2hyb21pdW0ub3JnL2No cm9taXVtL3NyYy9zYW5kYm94L3dpbi9zcmMvaGFuZGxlX2luaGVyaXRhbmNlX3Rlc3QuY2MKKysg IGJhc2U6OlNjb3BlZFRlbXBEaXIgdGVtcF9kaXI7CisrICBpZiAoIXRlbXBfZGlyLkNyZWF0ZVVu aXF1ZVRlbXBEaXIoKSkgeworKyAgICBQTE9HKEVSUk9SKSA8PCAiQ291bGQgbm90IGNyZWF0ZSB0 ZW1wIGRpciBmb3IgY2hpbGQgc3Rkb3V0IjsKKysgICAgcmV0dXJuIGZhbHNlOworKyAgfQorKwor KyAgYmFzZTo6RmlsZVBhdGggdGVtcF9maWxlX25hbWU7CisrICBpZiAoIUNyZWF0ZVRlbXBvcmFy eUZpbGVJbkRpcih0ZW1wX2Rpci5HZXRQYXRoKCksICZ0ZW1wX2ZpbGVfbmFtZSkpIHsKKysgICAg UExPRyhFUlJPUikgPDwgIkNvdWxkIG5vdCBjcmVhdGUgdGVtcCBmaWxlIGZvciBjaGlsZCBzdGRv dXQiOworKyAgICByZXR1cm4gZmFsc2U7CisrICB9CisrCisrICBTRUNVUklUWV9BVFRSSUJVVEVT IGF0dHJzID0ge307CisrICBhdHRycy5uTGVuZ3RoID0gc2l6ZW9mKGF0dHJzKTsKKysgIGF0dHJz LmJJbmhlcml0SGFuZGxlID0gdHJ1ZTsKKysKKysgIGJhc2U6Ondpbjo6U2NvcGVkSGFuZGxlIGNo aWxkX3N0ZG91dF93cml0ZV9oYW5kbGUoCisrICAgICAgOjpDcmVhdGVGaWxlKHRlbXBfZmlsZV9u YW1lLnZhbHVlKCkuY19zdHIoKSwgR0VORVJJQ19XUklURSwKKysgICAgICAgICAgICAgICAgICAg RklMRV9TSEFSRV9XUklURSB8IEZJTEVfU0hBUkVfUkVBRCB8IEZJTEVfU0hBUkVfREVMRVRFLAor KyAgICAgICAgICAgICAgICAgICAmYXR0cnMsIE9QRU5fRVhJU1RJTkcsIDAsIG51bGxwdHIpKTsK KysgIGlmICghY2hpbGRfc3Rkb3V0X3dyaXRlX2hhbmRsZS5Jc1ZhbGlkKCkpIHsKKysgICAgUExP RyhFUlJPUikgPDwgIkNvdWxkIG5vdCBvcGVuIGNoaWxkIHN0ZG91dCBmaWxlIjsKKyAgICAgcmV0 dXJuIGZhbHNlOworKyAgfQorIAorLSAgaWYgKCFQcmVwYXJlQW5kTGF1bmNoVGVzdENoaWxkUHJv Y2VzcyhjaGlsZF9tYWluX2Z1bmN0aW9uKSkKKysgIGlmICghUHJlcGFyZUFuZExhdW5jaFRlc3RD aGlsZFByb2Nlc3MoY2hpbGRfbWFpbl9mdW5jdGlvbiwKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc3RkOjptb3ZlKGNoaWxkX3N0ZG91dF93cml0ZV9oYW5kbGUpKSkg eworKyAgICBpbnRlcm5hbDo6UHJpbnRDaGlsZFByb2Nlc3NMb2dzKHRlbXBfZmlsZV9uYW1lKTsK KyAgICAgcmV0dXJuIGZhbHNlOworKyAgfQorIAorICAgQ3JlYXRlSW1wbE9uSVBDVGhyZWFkKHN0 ZDo6bW92ZShtb2pvX3BpcGVfKSk7CisgICBjb25zdCBib29sIHN1Y2Nlc3MgPSBiYXNlOjpXYWl0 Rm9yTXVsdGlwcm9jZXNzVGVzdENoaWxkRXhpdCgKK0BAIC0xODksMjEgKzIwMCwzMiBAQCBib29s IFBhcmVudFByb2Nlc3M6OkxhdW5jaENvbm5lY3RlZENoaWxkUHJvY2VzcygKKyAgIH0KKyAgIERl c3Ryb3lJbXBsT25JUENUaHJlYWQoKTsKKyAKKy0gIGlmICghc3VjY2VzcyB8fCAqZXhpdF9jb2Rl ICE9IDApCistICAgIGludGVybmFsOjpQcmludENoaWxkUHJvY2Vzc0xvZ3MoKTsKKysgIGlmICgh c3VjY2VzcyB8fCAqZXhpdF9jb2RlICE9IDApIHsKKysgICAgaW50ZXJuYWw6OlByaW50Q2hpbGRQ cm9jZXNzTG9ncyh0ZW1wX2ZpbGVfbmFtZSk7CisrICB9CisgCisgICByZXR1cm4gc3VjY2VzczsK KyB9CisgCisgYm9vbCBQYXJlbnRQcm9jZXNzOjpQcmVwYXJlQW5kTGF1bmNoVGVzdENoaWxkUHJv Y2VzcygKKy0gICAgY29uc3Qgc3RkOjpzdHJpbmcmIGNoaWxkX21haW5fZnVuY3Rpb24pIHsKKysg ICAgY29uc3Qgc3RkOjpzdHJpbmcmIGNoaWxkX21haW5fZnVuY3Rpb24sCisrICAgIGJhc2U6Ondp bjo6U2NvcGVkSGFuZGxlIGNoaWxkX3N0ZG91dF93cml0ZV9oYW5kbGUpIHsKKyAgIGJhc2U6Okxh dW5jaE9wdGlvbnMgbGF1bmNoX29wdGlvbnM7CisgICBsYXVuY2hfb3B0aW9ucy5oYW5kbGVzX3Rv X2luaGVyaXQgPSBleHRyYV9oYW5kbGVzX3RvX2luaGVyaXRfOworKyAgbGF1bmNoX29wdGlvbnMu aGFuZGxlc190b19pbmhlcml0LnB1c2hfYmFjayhjaGlsZF9zdGRvdXRfd3JpdGVfaGFuZGxlLkdl dCgpKTsKKysgIGxhdW5jaF9vcHRpb25zLnN0ZGluX2hhbmRsZSA9IElOVkFMSURfSEFORExFX1ZB TFVFOworKyAgbGF1bmNoX29wdGlvbnMuc3Rkb3V0X2hhbmRsZSA9IGNoaWxkX3N0ZG91dF93cml0 ZV9oYW5kbGUuR2V0KCk7CisrICBsYXVuY2hfb3B0aW9ucy5zdGRlcnJfaGFuZGxlID0gY2hpbGRf c3Rkb3V0X3dyaXRlX2hhbmRsZS5HZXQoKTsKKysKKyAgIENyZWF0ZU1vam9QaXBlKCZjb21tYW5k X2xpbmVfLCAmbGF1bmNoX29wdGlvbnMuaGFuZGxlc190b19pbmhlcml0KTsKKyAKKyAgIGJhc2U6 OlByb2Nlc3MgY2hpbGRfcHJvY2VzcyA9IGJhc2U6OlNwYXduTXVsdGlQcm9jZXNzVGVzdENoaWxk KAorICAgICAgIGNoaWxkX21haW5fZnVuY3Rpb24sIGNvbW1hbmRfbGluZV8sIGxhdW5jaF9vcHRp b25zKTsKKyAKKysgIC8vIE5vdyB0aGF0IGl0J3MgYmVlbiBwYXNzZWQgdG8gdGhlIGNoaWxkIHBy b2Nlc3MsCisrICAvLyB8Y2hpbGRfc3Rkb3V0X3dyaXRlX2hhbmRsZXwgY2FuIGJlIGNsb3NlZCBp biB0aGlzIHByb2Nlc3MgYXMgaXQgZ29lcyBvdXQKKysgIC8vIG9mIHNjb3BlLgorKworICAgQ29u bmVjdE1vam9QaXBlKHN0ZDo6bW92ZShjaGlsZF9wcm9jZXNzKSk7CisgICByZXR1cm4gdHJ1ZTsK KyB9CitAQCAtMjM1LDggKzI1Nyw5IEBAIFNhbmRib3hlZFBhcmVudFByb2Nlc3M6OlNhbmRib3hl ZFBhcmVudFByb2Nlc3MoCisgU2FuZGJveGVkUGFyZW50UHJvY2Vzczo6flNhbmRib3hlZFBhcmVu dFByb2Nlc3MoKSB7fQorIAorIGJvb2wgU2FuZGJveGVkUGFyZW50UHJvY2Vzczo6UHJlcGFyZUFu ZExhdW5jaFRlc3RDaGlsZFByb2Nlc3MoCistICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBjaGlsZF9t YWluX2Z1bmN0aW9uKSB7CistICBNb2pvU2FuZGJveFNldHVwSG9va3MgaG9va3ModGhpcyk7Cisr ICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBjaGlsZF9tYWluX2Z1bmN0aW9uLAorKyAgICBiYXNlOjp3 aW46OlNjb3BlZEhhbmRsZSBjaGlsZF9zdGRvdXRfd3JpdGVfaGFuZGxlKSB7CisrICBNb2pvU2Fu ZGJveFNldHVwSG9va3MgaG9va3ModGhpcywgc3RkOjptb3ZlKGNoaWxkX3N0ZG91dF93cml0ZV9o YW5kbGUpKTsKKyAKKyAgIC8vIFRoaXMgc3dpdGNoIHVzYWdlIGlzIGNvcGllZCBmcm9tIFNwYXdu TXVsdGlQcm9jZXNzVGVzdENoaWxkLgorICAgLy8KK0BAIC0yNTgsOCArMjgxLDcgQEAgYm9vbCBT YW5kYm94ZWRQYXJlbnRQcm9jZXNzOjpQcmVwYXJlQW5kTGF1bmNoVGVzdENoaWxkUHJvY2VzcygK KyAKKyBDaGlsZFByb2Nlc3M6OkNoaWxkUHJvY2VzcyhzY29wZWRfcmVmcHRyPE1vam9UYXNrUnVu bmVyPiBtb2pvX3Rhc2tfcnVubmVyKQorICAgICA6IG1vam9fdGFza19ydW5uZXJfKG1vam9fdGFz a19ydW5uZXIpLAorLSAgICAgIGNvbW1hbmRfbGluZV8oYmFzZTo6Q29tbWFuZExpbmU6OkZvckN1 cnJlbnRQcm9jZXNzKCkpLAorLSAgICAgIHNjb3BwZWRfbG9nZ2luZ18obmV3IFNjb3BlZExvZ2dp bmcoa0lQQ1Rlc3RVdGlsTG9nU3VmZml4KSkgeworKyAgICAgIGNvbW1hbmRfbGluZV8oYmFzZTo6 Q29tbWFuZExpbmU6OkZvckN1cnJlbnRQcm9jZXNzKCkpIHsKKyAgIHNhbmRib3g6OlRhcmdldFNl cnZpY2VzKiB0YXJnZXRfc2VydmljZXMgPQorICAgICAgIHNhbmRib3g6OlNhbmRib3hGYWN0b3J5 OjpHZXRUYXJnZXRTZXJ2aWNlcygpOworICAgaWYgKCF0YXJnZXRfc2VydmljZXMpCitkaWZmIC0t Z2l0IGEvY2hyb21lL2Nocm9tZV9jbGVhbmVyL2lwYy9pcGNfdGVzdF91dGlsLmggYi9jaHJvbWUv Y2hyb21lX2NsZWFuZXIvaXBjL2lwY190ZXN0X3V0aWwuaAoraW5kZXggOTdmMjA3MmEwOTE2NS4u MWIyZTU1OThlZDUyYSAxMDA2NDQKKy0tLSBhL2Nocm9tZS9jaHJvbWVfY2xlYW5lci9pcGMvaXBj X3Rlc3RfdXRpbC5oCisrKysgYi9jaHJvbWUvY2hyb21lX2NsZWFuZXIvaXBjL2lwY190ZXN0X3V0 aWwuaAorQEAgLTE0LDkgKzE0LDkgQEAKKyAjaW5jbHVkZSAiYmFzZS9wcm9jZXNzL2xhdW5jaC5o IgorICNpbmNsdWRlICJiYXNlL3Byb2Nlc3MvcHJvY2Vzcy5oIgorICNpbmNsdWRlICJiYXNlL3Rp bWUvdGltZS5oIgorKyNpbmNsdWRlICJiYXNlL3dpbi9zY29wZWRfaGFuZGxlLmgiCisgI2luY2x1 ZGUgImNocm9tZS9jaHJvbWVfY2xlYW5lci9pcGMvY2hyb21lX3Byb21wdF9pcGMuaCIKKyAjaW5j bHVkZSAiY2hyb21lL2Nocm9tZV9jbGVhbmVyL2lwYy9tb2pvX3Rhc2tfcnVubmVyLmgiCistI2lu Y2x1ZGUgImNocm9tZS9jaHJvbWVfY2xlYW5lci9sb2dnaW5nL3Njb3BlZF9sb2dnaW5nLmgiCisg I2luY2x1ZGUgIm1vam8vcHVibGljL2NwcC9wbGF0Zm9ybS9wbGF0Zm9ybV9jaGFubmVsLmgiCisg I2luY2x1ZGUgIm1vam8vcHVibGljL2NwcC9zeXN0ZW0vaW52aXRhdGlvbi5oIgorICNpbmNsdWRl ICJtb2pvL3B1YmxpYy9jcHAvc3lzdGVtL21lc3NhZ2VfcGlwZS5oIgorQEAgLTcwLDcgKzcwLDgg QEAgY2xhc3MgUGFyZW50UHJvY2VzcyA6IHB1YmxpYyBiYXNlOjpSZWZDb3VudGVkVGhyZWFkU2Fm ZTxQYXJlbnRQcm9jZXNzPiB7CisgICAvLyBhcyBpbiB0aGUgc2FuZGJveC4gU3ViY2xhc3NlcyBz aG91bGQgY2FsbCBDcmVhdGVNb2pvUGlwZSBiZWZvcmUgdGhlCisgICAvLyBzdWJwcm9jZXNzIGlz IHNwYXduZWQgYW5kIENvbm5lY3RNb2pvUGlwZSBhZnRlcndhcmQuCisgICB2aXJ0dWFsIGJvb2wg UHJlcGFyZUFuZExhdW5jaFRlc3RDaGlsZFByb2Nlc3MoCistICAgICAgY29uc3Qgc3RkOjpzdHJp bmcmIGNoaWxkX21haW5fZnVuY3Rpb24pOworKyAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBjaGls ZF9tYWluX2Z1bmN0aW9uLAorKyAgICAgIGJhc2U6Ondpbjo6U2NvcGVkSGFuZGxlIGNoaWxkX3N0 ZG91dF93cml0ZV9oYW5kbGUpOworIAorICAgc2NvcGVkX3JlZnB0cjxNb2pvVGFza1J1bm5lcj4g bW9qb190YXNrX3J1bm5lcigpOworIAorQEAgLTk1LDcgKzk2LDggQEAgY2xhc3MgU2FuZGJveGVk UGFyZW50UHJvY2VzcyA6IHB1YmxpYyBQYXJlbnRQcm9jZXNzIHsKKyAgIH5TYW5kYm94ZWRQYXJl bnRQcm9jZXNzKCkgb3ZlcnJpZGU7CisgCisgICBib29sIFByZXBhcmVBbmRMYXVuY2hUZXN0Q2hp bGRQcm9jZXNzKAorLSAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBjaGlsZF9tYWluX2Z1bmN0aW9u KSBvdmVycmlkZTsKKysgICAgICBjb25zdCBzdGQ6OnN0cmluZyYgY2hpbGRfbWFpbl9mdW5jdGlv biwKKysgICAgICBiYXNlOjp3aW46OlNjb3BlZEhhbmRsZSBjaGlsZF9zdGRvdXRfd3JpdGVfaGFu ZGxlKSBvdmVycmlkZTsKKyB9OworIAorIGNsYXNzIENoaWxkUHJvY2VzcyA6IHB1YmxpYyBiYXNl OjpSZWZDb3VudGVkVGhyZWFkU2FmZTxDaGlsZFByb2Nlc3M+IHsKK0BAIC0xMjAsNyArMTIyLDYg QEAgY2xhc3MgQ2hpbGRQcm9jZXNzIDogcHVibGljIGJhc2U6OlJlZkNvdW50ZWRUaHJlYWRTYWZl PENoaWxkUHJvY2Vzcz4geworIAorICBwcml2YXRlOgorICAgYmFzZTo6Q29tbWFuZExpbmUqIGNv bW1hbmRfbGluZV87CistICBzdGQ6OnVuaXF1ZV9wdHI8U2NvcGVkTG9nZ2luZz4gc2NvcHBlZF9s b2dnaW5nXzsKKyAKKyAgIC8vIFRoaXMgd2lsbCBiZSB0cnVlIGlmZiB0aGUgcHJvY2VzcyBpcyBy dW5uaW5nIGluIGEgc2FuZGJveCBhbmQKKyAgIC8vIFRhcmdldFNlcnZpY2VzIHdhcyBpbml0aWFs aXplZCBzdWNjZXNzZnVsbHkuCitAQCAtMTQzLDkgKzE0NCw3IEBAIGNsYXNzIENocm9tZVByb21w dElQQ1Rlc3RFcnJvckhhbmRsZXIgOiBwdWJsaWMgQ2hyb21lUHJvbXB0SVBDOjpFcnJvckhhbmRs ZXIgeworIH07CisgCisgbmFtZXNwYWNlIGludGVybmFsIHsKKy1iYXNlOjpGaWxlUGF0aDo6U3Ry aW5nUGllY2VUeXBlIEdldExvZ1BhdGhTdWZmaXgoKTsKKy1ib29sIERlbGV0ZUNoaWxkUHJvY2Vz c0xvZ3MoKTsKKy12b2lkIFByaW50Q2hpbGRQcm9jZXNzTG9ncygpOworK3ZvaWQgUHJpbnRDaGls ZFByb2Nlc3NMb2dzKGNvbnN0IGJhc2U6OkZpbGVQYXRoJiBsb2dfZmlsZSk7CisgfSAgLy8gbmFt ZXNwYWNlIGludGVybmFsCisgCisgfSAgLy8gbmFtZXNwYWNlIGNocm9tZV9jbGVhbmVyCitkaWZm IC0tZ2l0IGEvY2hyb21lL2Nocm9tZV9jbGVhbmVyL2lwYy9wcm90b19jaHJvbWVfcHJvbXB0X2lw Y191bml0dGVzdC5jYyBiL2Nocm9tZS9jaHJvbWVfY2xlYW5lci9pcGMvcHJvdG9fY2hyb21lX3By b21wdF9pcGNfdW5pdHRlc3QuY2MKK2luZGV4IDFjN2I0YzU3NWViM2QuLmY4NjdkZjU4Zjk2ZWEg MTAwNjQ0CistLS0gYS9jaHJvbWUvY2hyb21lX2NsZWFuZXIvaXBjL3Byb3RvX2Nocm9tZV9wcm9t cHRfaXBjX3VuaXR0ZXN0LmNjCisrKysgYi9jaHJvbWUvY2hyb21lX2NsZWFuZXIvaXBjL3Byb3Rv X2Nocm9tZV9wcm9tcHRfaXBjX3VuaXR0ZXN0LmNjCitAQCAtNSw2ICs1LDcgQEAKKyAjaW5jbHVk ZSA8d2luZG93cy5oPgorIAorICNpbmNsdWRlICJiYXNlL2NvbW1hbmRfbGluZS5oIgorKyNpbmNs dWRlICJiYXNlL2ZpbGVzL2ZpbGVfdXRpbC5oIgorICNpbmNsdWRlICJiYXNlL3Byb2Nlc3MvcHJv Y2Vzcy5oIgorICNpbmNsdWRlICJiYXNlL3N0cmluZ3Mvc3RyY2F0LmgiCisgI2luY2x1ZGUgImJh c2Uvc3RyaW5ncy9zdHJpbmdfbnVtYmVyX2NvbnZlcnNpb25zLmgiCitAQCAtNDEsOCArNDIsOSBA QCBjb25zdGV4cHIgY2hhciBrRXhwZWN0ZWRQcm9tcHRSZXN1bHRTd2l0Y2hbXSA9ICJleHBlY3Rl ZC1wcm9tcHQtcmVzdWx0IjsKKyBjb25zdGV4cHIgY2hhciBrRXhwZWN0ZWRDaHJvbWVEaXNjb25u ZWN0UG9pbnRTd2l0Y2hbXSA9CisgICAgICJleHBlY3RlZC1wYXJlbnQtZGlzY29ubmVjdGVkIjsK KyAKKy1jb25zdCBiYXNlOjpjaGFyMTYga0ludmFsaWRVVEYxNlN0cmluZ1tdID0gezB4REMwMCwg MHhEODAwLCAweEQ4MDAsIDB4REZGRiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDB4REZGRiwgMHhEQkZGLCAwfTsKKytjb25zdGV4cHIgYmFzZTo6Y2hhcjE2 IGtMb2dTdWZmaXhbXSA9IEwicHJvbXB0LWlwYy10ZXN0IjsKKytjb25zdGV4cHIgYmFzZTo6Y2hh cjE2IGtJbnZhbGlkVVRGMTZTdHJpbmdbXSA9IHsweERDMDAsIDB4RDgwMCwgMHhEODAwLCAweERG RkYsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhE RkZGLCAweERCRkYsIDB9OworIGNvbnN0IGJhc2U6OkZpbGVQYXRoIGtJbnZhbGlkRmlsZVBhdGgo a0ludmFsaWRVVEYxNlN0cmluZyk7CisgY29uc3QgYmFzZTo6RmlsZVBhdGgga05vbkFTQ0lJRmls ZVBhdGgoTCLDqcOpw6DDoMOnw6ciKTsKKyBjb25zdCBiYXNlOjpzdHJpbmcxNiBrSW52YWxpZFJl Z2lzdHJ5S2V5KGtJbnZhbGlkVVRGMTZTdHJpbmcpOworQEAgLTQyMCw4ICs0MjIsNyBAQCBjbGFz cyBNb2NrQ2hyb21lIHsKKyBjbGFzcyBDaGlsZFByb2Nlc3MgeworICBwdWJsaWM6CisgICBDaGls ZFByb2Nlc3MoKQorLSAgICAgIDogc2NvcHBlZF9sb2dnaW5nXygKKy0gICAgICAgICAgICBzdGQ6 Om1ha2VfdW5pcXVlPFNjb3BlZExvZ2dpbmc+KGludGVybmFsOjpHZXRMb2dQYXRoU3VmZml4KCkp KSB7CisrICAgICAgOiBzY29wcGVkX2xvZ2dpbmdfKHN0ZDo6bWFrZV91bmlxdWU8U2NvcGVkTG9n Z2luZz4oa0xvZ1N1ZmZpeCkpIHsKKyAgICAgbW9ja19jaHJvbWVfID0gc3RkOjptYWtlX3VuaXF1 ZTxNb2NrQ2hyb21lPigKKyAgICAgICAgIEV4dHJhY3RIYW5kbGVGcm9tQ29tbWFuZExpbmUoY2hy b21lX2NsZWFuZXI6OmtDaHJvbWVSZWFkSGFuZGxlU3dpdGNoKSwKKyAgICAgICAgIEV4dHJhY3RI YW5kbGVGcm9tQ29tbWFuZExpbmUoY2hyb21lX2NsZWFuZXI6OmtDaHJvbWVXcml0ZUhhbmRsZVN3 aXRjaCkpOworQEAgLTYzMCw3ICs2MzEsMTAgQEAgY2xhc3MgUGFyZW50UHJvY2VzcyB7CisgICB9 CisgCisgICB2b2lkIFJ1bigpIHsKKy0gICAgQVNTRVJUX1RSVUUoaW50ZXJuYWw6OkRlbGV0ZUNo aWxkUHJvY2Vzc0xvZ3MoKSk7CisrICAgIC8vIERlbGV0ZSB0aGUgY2hpbGQgcHJvY2VzcyBsb2cg ZmlsZSBpZiBleGlzdGluZy4KKysgICAgY29uc3QgYmFzZTo6RmlsZVBhdGggbG9nX3BhdGggPSBT Y29wZWRMb2dnaW5nOjpHZXRMb2dGaWxlUGF0aChrTG9nU3VmZml4KTsKKysgICAgQVNTRVJUX1RS VUUoYmFzZTo6RGVsZXRlRmlsZShsb2dfcGF0aCwgZmFsc2UpKQorKyAgICAgICAgPDwgIkNhbid0 IGRlbGV0ZSBsb2cgZmlsZSBmcm9tIHByZXZpb3VzIHJ1bjogIiA8PCBsb2dfcGF0aC52YWx1ZSgp OworIAorICAgICAvLyBQYXNzIHRoZSBjb21tYW5kIHRvIHRoZSBjaGlsZCBwcm9jZXNzIGFuZCBs YXVuY2ggdGhlIGNoaWxkIHByb2Nlc3MuCisgICAgIGJhc2U6OlByb2Nlc3MgY2hpbGRfcHJvY2Vz cyA9IGJhc2U6OlNwYXduTXVsdGlQcm9jZXNzVGVzdENoaWxkKAorQEAgLTcwMiw3ICs3MDYsOCBA QCBjbGFzcyBQYXJlbnRQcm9jZXNzIHsKKyAgICAgRVhQRUNUX0VRKGV4cGVjdGVkX2V4aXRfY29k ZSwgcnYpOworIAorICAgICBpZiAoIXN1Y2Nlc3MgfHwgcnYgIT0gMCkgeworLSAgICAgIGludGVy bmFsOjpQcmludENoaWxkUHJvY2Vzc0xvZ3MoKTsKKysgICAgICBpbnRlcm5hbDo6UHJpbnRDaGls ZFByb2Nlc3NMb2dzKAorKyAgICAgICAgICBTY29wZWRMb2dnaW5nOjpHZXRMb2dGaWxlUGF0aChr TG9nU3VmZml4KSk7CisgICAgIH0KKyAgIH0KKyAKK2RpZmYgLS1naXQgYS9jaHJvbWUvY2hyb21l X2NsZWFuZXIvaXBjL3NhbmRib3guY2MgYi9jaHJvbWUvY2hyb21lX2NsZWFuZXIvaXBjL3NhbmRi b3guY2MKK2luZGV4IDE1NGJkMDVjNTEwNjYuLmZhZmFkNGYwYzYxODggMTAwNjQ0CistLS0gYS9j aHJvbWUvY2hyb21lX2NsZWFuZXIvaXBjL3NhbmRib3guY2MKKysrKyBiL2Nocm9tZS9jaHJvbWVf Y2xlYW5lci9pcGMvc2FuZGJveC5jYworQEAgLTI4MCw4ICsyODAsOSBAQCBSZXN1bHRDb2RlIFN0 YXJ0U2FuZGJveFRhcmdldChjb25zdCBiYXNlOjpDb21tYW5kTGluZSYgc2FuZGJveF9jb21tYW5k X2xpbmUsCisgICAgICAgJmxhc3Rfd2luX2Vycm9yLCAmdGVtcF9wcm9jZXNzX2luZm8pOworICAg aWYgKHNhbmRib3hfcmVzdWx0ICE9IHNhbmRib3g6OlNCT1hfQUxMX09LKSB7CisgICAgIExPRyhE RkFUQUwpIDw8ICJGYWlsZWQgdG8gc3Bhd24gc2FuZGJveCB0YXJnZXQ6ICIgPDwgc2FuZGJveF9y ZXN1bHQKKy0gICAgICAgICAgICAgICAgPDwgIiAsIGxhc3Qgc2FuZGJveCB3YXJuaW5nIDogIiA8 PCBsYXN0X3Nib3hfd2FybmluZworLSAgICAgICAgICAgICAgICA8PCAiICwgbGFzdCB3aW5kb3dz IGVycm9yOiAiIDw8IGxhc3Rfd2luX2Vycm9yOworKyAgICAgICAgICAgICAgICA8PCAiLCBsYXN0 IHNhbmRib3ggd2FybmluZzogIiA8PCBsYXN0X3Nib3hfd2FybmluZworKyAgICAgICAgICAgICAg ICA8PCAiLCBsYXN0IHdpbmRvd3MgZXJyb3I6ICIKKysgICAgICAgICAgICAgICAgPDwgbG9nZ2lu Zzo6U3lzdGVtRXJyb3JDb2RlVG9TdHJpbmcobGFzdF93aW5fZXJyb3IpOworICAgICByZXR1cm4g UkVTVUxUX0NPREVfRkFJTEVEX1RPX1NUQVJUX1NBTkRCT1hfUFJPQ0VTUzsKKyAgIH0KKyAKZGlm ZiAtLWdpdCBhL3NyY3BrZ3MvZWxlY3Ryb243L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tMDAzLXVw c3RyZWFtX21vdmVfY2hpbGRfcHJvY2Vzc19sb2cucGF0Y2gucGF0Y2ggYi9zcmNwa2dzL2VsZWN0 cm9uNy9maWxlcy9wYXRjaGVzL2Nocm9taXVtLTAwMy11cHN0cmVhbV9tb3ZlX2NoaWxkX3Byb2Nl c3NfbG9nLnBhdGNoLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw Li41MThiOTU1YTBiMAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZWxlY3Ryb243L2ZpbGVz L3BhdGNoZXMvY2hyb21pdW0tMDAzLXVwc3RyZWFtX21vdmVfY2hpbGRfcHJvY2Vzc19sb2cucGF0 Y2gucGF0Y2gKQEAgLTAsMCArMSw3MzAgQEAKK0Zyb20gNzI2Y2JmY2ZhYTUyMWU5ZTUwOTg4Mjkx OTVhN2Q5YTljMTljYTM5MSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEpvZSBNYXNv biA8am9lbm90Y2hhcmxlc0Bnb29nbGUuY29tPgorRGF0ZTogV2VkLCA0IERlYyAyMDE5IDE4OjE1 OjM2ICswMDAwCitTdWJqZWN0OiBbUEFUQ0hdIE1vdmUgY2hpbGQgcHJvY2VzcyBsb2cgY2FwdHVy ZSB0byBhIENoaWxkUHJvY2Vzc0xvZ2dlciBjbGFzcy4KK01JTUUtVmVyc2lvbjogMS4wCitDb250 ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKK0NvbnRlbnQtVHJhbnNmZXItRW5j b2Rpbmc6IDhiaXQKKworVXBkYXRlIGNvbW1lbnRzIHRvIGNsYXJpZnkgaG93IHRoZSBjaGlsZCBw cm9jZXNzIGxvZyBpbnRlcmFjdHMgd2l0aAorU2NvcGVkTG9nZ2luZy4KKworVXNlIHRoZSBuZXcg Y2xhc3MgdG8gY2FwdHVyZSBsb2dzIGluIGNsZWFuZXJfdGVzdC5jYywKK3NlY3VyZV9kbGxfbG9h ZGluZ190ZXN0LmNjIGFuZCBwcm90b19jaHJvbWVfcHJvbXB0X2lwY191bml0dGVzdC5jYy4KKwor Uj3igItwcm9iZXJnZQorCisoY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCAwNjM2MDAyMjlmYjdk YzQ3MmZmNjY4MzliYTI2NTdiZjk5Yjk4ODUwKQorCitCdWc6IDEwMzAzMzMKK0NoYW5nZS1JZDog STg4ZjUzOGZmMzYwYmI4ZWQ5ZGE2NzQzZGM1ZDZjNGIyNjNhZjk5MmMKK1Jldmlld2VkLW9uOiBo dHRwczovL2Nocm9taXVtLXJldmlldy5nb29nbGVzb3VyY2UuY29tL2MvY2hyb21pdW0vc3JjLysv MTk0Nzk4NgorQ29tbWl0LVF1ZXVlOiBKb2UgTWFzb24gPGpvZW5vdGNoYXJsZXNAY2hyb21pdW0u b3JnPgorUmV2aWV3ZWQtYnk6IHByb2JlcmdlIDxwcm9iZXJnZUBjaHJvbWl1bS5vcmc+CitDci1P cmlnaW5hbC1Db21taXQtUG9zaXRpb246IHJlZnMvaGVhZHMvbWFzdGVyQHsjNzIxMTg0fQorUmV2 aWV3ZWQtb246IGh0dHBzOi8vY2hyb21pdW0tcmV2aWV3Lmdvb2dsZXNvdXJjZS5jb20vYy9jaHJv bWl1bS9zcmMvKy8xOTQ5NjMxCitSZXZpZXdlZC1ieTogSm9lIE1hc29uIDxqb2Vub3RjaGFybGVz QGNocm9taXVtLm9yZz4KK0NyLUNvbW1pdC1Qb3NpdGlvbjogcmVmcy9icmFuY2gtaGVhZHMvMzkw NEB7IzkxNH0KK0NyLUJyYW5jaGVkLUZyb206IDY3NTk2OGE4YzY1N2EzYmQ5YzFjMmMyMGM1ZDI5 MzU1NzdiYmM1ZTYtcmVmcy9oZWFkcy9tYXN0ZXJAeyM2OTM5NTR9CistLS0KKyBjaHJvbWUvY2hy b21lX2NsZWFuZXIvaXBjL0JVSUxELmduICAgICAgICAgICAgfCAgMSArCisgY2hyb21lL2Nocm9t ZV9jbGVhbmVyL2lwYy9pcGNfdGVzdF91dGlsLmNjICAgIHwgOTggKysrLS0tLS0tLS0tLS0tLS0t LQorIGNocm9tZS9jaHJvbWVfY2xlYW5lci9pcGMvaXBjX3Rlc3RfdXRpbC5oICAgICB8IDE3ICsr LS0KKyAuLi4vaXBjL3Byb3RvX2Nocm9tZV9wcm9tcHRfaXBjX3VuaXR0ZXN0LmNjICAgfCAyNiAr KystLQorIGNocm9tZS9jaHJvbWVfY2xlYW5lci90ZXN0L0JVSUxELmduICAgICAgICAgICB8ICAz ICsKKyAuLi4vdGVzdC9jaGlsZF9wcm9jZXNzX2xvZ2dlci5jYyAgICAgICAgICAgICAgfCA5MCAr KysrKysrKysrKysrKysrKworIC4uLi90ZXN0L2NoaWxkX3Byb2Nlc3NfbG9nZ2VyLmggICAgICAg ICAgICAgICB8IDYyICsrKysrKysrKysrKworIGNocm9tZS9jaHJvbWVfY2xlYW5lci90ZXN0L2Ns ZWFuZXJfdGVzdC5jYyAgICB8IDE0ICsrLQorIC4uLi90ZXN0L3NlY3VyZV9kbGxfbG9hZGluZ190 ZXN0LmNjICAgICAgICAgICB8IDU3ICsrLS0tLS0tLS0tCisgOSBmaWxlcyBjaGFuZ2VkLCAyMDcg aW5zZXJ0aW9ucygrKSwgMTYxIGRlbGV0aW9ucygtKQorIGNyZWF0ZSBtb2RlIDEwMDY0NCBjaHJv bWUvY2hyb21lX2NsZWFuZXIvdGVzdC9jaGlsZF9wcm9jZXNzX2xvZ2dlci5jYworIGNyZWF0ZSBt b2RlIDEwMDY0NCBjaHJvbWUvY2hyb21lX2NsZWFuZXIvdGVzdC9jaGlsZF9wcm9jZXNzX2xvZ2dl ci5oCisKK2RpZmYgLS1naXQgYS9jaHJvbWUvY2hyb21lX2NsZWFuZXIvaXBjL0JVSUxELmduIGIv Y2hyb21lL2Nocm9tZV9jbGVhbmVyL2lwYy9CVUlMRC5nbgoraW5kZXggMDNmZGRmZDg3MzZlMS4u NGQ4MTgwM2EyNGRmNiAxMDA2NDQKKy0tLSBhL2Nocm9tZS9jaHJvbWVfY2xlYW5lci9pcGMvQlVJ TEQuZ24KKysrKyBiL2Nocm9tZS9jaHJvbWVfY2xlYW5lci9pcGMvQlVJTEQuZ24KK0BAIC03Nyw2 ICs3Nyw3IEBAIHNvdXJjZV9zZXQoImlwY190ZXN0X3V0aWwiKSB7CisgICAgICIvL2Jhc2UvdGVz dDp0ZXN0X3N1cHBvcnQiLAorICAgICAiLy9jaHJvbWUvY2hyb21lX2NsZWFuZXIvaXBjOnNhbmRi b3giLAorICAgICAiLy9jaHJvbWUvY2hyb21lX2NsZWFuZXIvbG9nZ2luZzpjb21tb24iLAorKyAg ICAiLy9jaHJvbWUvY2hyb21lX2NsZWFuZXIvdGVzdDp0ZXN0X3V0aWwiLAorICAgICAiLy9tb2pv L3B1YmxpYy9jcHAvc3lzdGVtIiwKKyAgICAgIi8vc2FuZGJveC93aW46c2FuZGJveCIsCisgICAg ICIvL3Rlc3RpbmcvZ3Rlc3QiLAorZGlmZiAtLWdpdCBhL2Nocm9tZS9jaHJvbWVfY2xlYW5lci9p cGMvaXBjX3Rlc3RfdXRpbC5jYyBiL2Nocm9tZS9jaHJvbWVfY2xlYW5lci9pcGMvaXBjX3Rlc3Rf dXRpbC5jYworaW5kZXggMGQwM2E2ODcwZmIwNy4uZWEyYmIyMTQ1YmZkZCAxMDA2NDQKKy0tLSBh L2Nocm9tZS9jaHJvbWVfY2xlYW5lci9pcGMvaXBjX3Rlc3RfdXRpbC5jYworKysrIGIvY2hyb21l L2Nocm9tZV9jbGVhbmVyL2lwYy9pcGNfdGVzdF91dGlsLmNjCitAQCAtMTIsMTQgKzEyLDEwIEBA CisgI2luY2x1ZGUgImJhc2UvYmluZF9oZWxwZXJzLmgiCisgI2luY2x1ZGUgImJhc2UvY29tbWFu ZF9saW5lLmgiCisgI2luY2x1ZGUgImJhc2UvZmlsZXMvZmlsZV9wYXRoLmgiCistI2luY2x1ZGUg ImJhc2UvZmlsZXMvZmlsZV91dGlsLmgiCistI2luY2x1ZGUgImJhc2UvZmlsZXMvc2NvcGVkX3Rl bXBfZGlyLmgiCisgI2luY2x1ZGUgImJhc2UvbG9nZ2luZy5oIgorICNpbmNsdWRlICJiYXNlL3By b2Nlc3MvbGF1bmNoLmgiCisgI2luY2x1ZGUgImJhc2UvcmFuZF91dGlsLmgiCisgI2luY2x1ZGUg ImJhc2Uvc3RyaW5ncy9zdHJpbmdfbnVtYmVyX2NvbnZlcnNpb25zLmgiCistI2luY2x1ZGUgImJh c2Uvc3RyaW5ncy9zdHJpbmdfcGllY2UuaCIKKy0jaW5jbHVkZSAiYmFzZS9zdHJpbmdzL3N0cmlu Z19zcGxpdC5oIgorICNpbmNsdWRlICJiYXNlL3Rlc3QvbXVsdGlwcm9jZXNzX3Rlc3QuaCIKKyAj aW5jbHVkZSAiYmFzZS90ZXN0L3Rlc3RfdGltZW91dHMuaCIKKyAjaW5jbHVkZSAiYmFzZS93aW4v d2luX3V0aWwuaCIKK0BAIC0zNCwxMSArMzAsOCBAQCBjb25zdGV4cHIgY2hhciBrTW9qb1BpcGVU b2tlblN3aXRjaFtdID0gIm1vam8tcGlwZS10b2tlbiI7CisgCisgY2xhc3MgTW9qb1NhbmRib3hT ZXR1cEhvb2tzIDogcHVibGljIFNhbmRib3hTZXR1cEhvb2tzIHsKKyAgcHVibGljOgorLSAgZXhw bGljaXQgTW9qb1NhbmRib3hTZXR1cEhvb2tzKAorLSAgICAgIFNhbmRib3hlZFBhcmVudFByb2Nl c3MqIHBhcmVudF9wcm9jZXNzLAorLSAgICAgIGJhc2U6Ondpbjo6U2NvcGVkSGFuZGxlIGNoaWxk X3N0ZG91dF93cml0ZV9oYW5kbGUpCistICAgICAgOiBwYXJlbnRfcHJvY2Vzc18ocGFyZW50X3By b2Nlc3MpLAorLSAgICAgICAgY2hpbGRfc3Rkb3V0X3dyaXRlX2hhbmRsZV8oc3RkOjptb3ZlKGNo aWxkX3N0ZG91dF93cml0ZV9oYW5kbGUpKSB7fQorKyAgZXhwbGljaXQgTW9qb1NhbmRib3hTZXR1 cEhvb2tzKFNhbmRib3hlZFBhcmVudFByb2Nlc3MqIHBhcmVudF9wcm9jZXNzKQorKyAgICAgIDog cGFyZW50X3Byb2Nlc3NfKHBhcmVudF9wcm9jZXNzKSB7fQorICAgfk1vam9TYW5kYm94U2V0dXBI b29rcygpIG92ZXJyaWRlID0gZGVmYXVsdDsKKyAKKyAgIC8vIFNhbmRib3hTZXR1cEhvb2tzCitA QCAtNTAsOCArNDMsNyBAQCBjbGFzcyBNb2pvU2FuZGJveFNldHVwSG9va3MgOiBwdWJsaWMgU2Fu ZGJveFNldHVwSG9va3MgeworICAgICBwYXJlbnRfcHJvY2Vzc18tPkNyZWF0ZU1vam9QaXBlKGNv bW1hbmRfbGluZSwgJmhhbmRsZXNfdG9faW5oZXJpdCk7CisgICAgIGZvciAoSEFORExFIGhhbmRs ZSA6IGhhbmRsZXNfdG9faW5oZXJpdCkKKyAgICAgICBwb2xpY3ktPkFkZEhhbmRsZVRvU2hhcmUo aGFuZGxlKTsKKy0gICAgcG9saWN5LT5TZXRTdGRvdXRIYW5kbGUoY2hpbGRfc3Rkb3V0X3dyaXRl X2hhbmRsZV8uR2V0KCkpOworLSAgICBwb2xpY3ktPlNldFN0ZGVyckhhbmRsZShjaGlsZF9zdGRv dXRfd3JpdGVfaGFuZGxlXy5HZXQoKSk7CisrICAgIHBhcmVudF9wcm9jZXNzXy0+Y2hpbGRfcHJv Y2Vzc19sb2dnZXIoKS5VcGRhdGVTYW5kYm94UG9saWN5KHBvbGljeSk7CisgICAgIHJldHVybiBS RVNVTFRfQ09ERV9TVUNDRVNTOworICAgfQorIAorQEAgLTY5LDM4ICs2MSw2IEBAIGNsYXNzIE1v am9TYW5kYm94U2V0dXBIb29rcyA6IHB1YmxpYyBTYW5kYm94U2V0dXBIb29rcyB7CisgCisgfSAg Ly8gbmFtZXNwYWNlCisgCistbmFtZXNwYWNlIGludGVybmFsIHsKKy0KKy12b2lkIFByaW50Q2hp bGRQcm9jZXNzTG9ncyhjb25zdCBiYXNlOjpGaWxlUGF0aCYgbG9nX3BhdGgpIHsKKy0gIGlmIChs b2dfcGF0aC5lbXB0eSgpKSB7CistICAgIExPRyhFUlJPUikgPDwgIkNoaWxkIHByb2Nlc3MgbG9n IHBhdGggaXMgZW1wdHkiOworLSAgICByZXR1cm47CistICB9CistCistICBpZiAoIWJhc2U6OlBh dGhFeGlzdHMobG9nX3BhdGgpKSB7CistICAgIExPRyhFUlJPUikgPDwgIkNoaWxkIHByb2Nlc3Mg bG9nIGZpbGUgZG9lc24ndCBleGlzdCI7CistICAgIHJldHVybjsKKy0gIH0KKy0KKy0gIC8vIENv bGxlY3QgdGhlIGNoaWxkIHByb2Nlc3MgbG9nIGZpbGUsIGFuZCBkdW1wIHRoZSBjb250ZW50cywg dG8gaGVscAorLSAgLy8gZGVidWdnaW5nIGZhaWx1cmVzLgorLSAgc3RkOjpzdHJpbmcgbG9nX2Zp bGVfY29udGVudHM7CistICBpZiAoIWJhc2U6OlJlYWRGaWxlVG9TdHJpbmcobG9nX3BhdGgsICZs b2dfZmlsZV9jb250ZW50cykpIHsKKy0gICAgTE9HKEVSUk9SKSA8PCAiRmFpbGVkIHRvIHJlYWQg Y2hpbGQgcHJvY2VzcyBsb2cgZmlsZSI7CistICAgIHJldHVybjsKKy0gIH0KKy0KKy0gIHN0ZDo6 dmVjdG9yPGJhc2U6OlN0cmluZ1BpZWNlPiBsaW5lcyA9CistICAgICAgYmFzZTo6U3BsaXRTdHJp bmdQaWVjZShsb2dfZmlsZV9jb250ZW50cywgIlxuIiwgYmFzZTo6VFJJTV9XSElURVNQQUNFLAor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFzZTo6U1BMSVRfV0FOVF9OT05FTVBUWSk7 CistICBMT0coRVJST1IpIDw8ICJEdW1waW5nIGNoaWxkIHByb2Nlc3MgbG9ncyI7CistICBmb3Ig KGNvbnN0IGF1dG8mIGxpbmUgOiBsaW5lcykgeworLSAgICBMT0coRVJST1IpIDw8ICJDaGlsZCBw cm9jZXNzOiAiIDw8IGxpbmU7CistICB9CistfQorLQorLX0gIC8vIG5hbWVzcGFjZSBpbnRlcm5h bAorLQorIFBhcmVudFByb2Nlc3M6OlBhcmVudFByb2Nlc3Moc2NvcGVkX3JlZnB0cjxNb2pvVGFz a1J1bm5lcj4gbW9qb190YXNrX3J1bm5lcikKKyAgICAgOiBjb21tYW5kX2xpbmVfKGJhc2U6Okdl dE11bHRpUHJvY2Vzc1Rlc3RDaGlsZEJhc2VDb21tYW5kTGluZSgpKSwKKyAgICAgICBtb2pvX3Rh c2tfcnVubmVyXyhtb2pvX3Rhc2tfcnVubmVyKSB7fQorQEAgLTE1OCwzNiArMTE4LDEwIEBAIGJv b2wgUGFyZW50UHJvY2Vzczo6TGF1bmNoQ29ubmVjdGVkQ2hpbGRQcm9jZXNzKAorICAgICBjb25z dCBzdGQ6OnN0cmluZyYgY2hpbGRfbWFpbl9mdW5jdGlvbiwKKyAgICAgYmFzZTo6VGltZURlbHRh IHRpbWVvdXQsCisgICAgIGludDMyX3QqIGV4aXRfY29kZSkgeworLSAgLy8gQWRhcHRlZCBmcm9t CistICAvLyBodHRwczovL2NzLmNocm9taXVtLm9yZy9jaHJvbWl1bS9zcmMvc2FuZGJveC93aW4v c3JjL2hhbmRsZV9pbmhlcml0YW5jZV90ZXN0LmNjCistICBiYXNlOjpTY29wZWRUZW1wRGlyIHRl bXBfZGlyOworLSAgaWYgKCF0ZW1wX2Rpci5DcmVhdGVVbmlxdWVUZW1wRGlyKCkpIHsKKy0gICAg UExPRyhFUlJPUikgPDwgIkNvdWxkIG5vdCBjcmVhdGUgdGVtcCBkaXIgZm9yIGNoaWxkIHN0ZG91 dCI7CisrICBpZiAoIWNoaWxkX3Byb2Nlc3NfbG9nZ2VyXy5Jbml0aWFsaXplKCkpCisgICAgIHJl dHVybiBmYWxzZTsKKy0gIH0KKy0KKy0gIGJhc2U6OkZpbGVQYXRoIHRlbXBfZmlsZV9uYW1lOwor LSAgaWYgKCFDcmVhdGVUZW1wb3JhcnlGaWxlSW5EaXIodGVtcF9kaXIuR2V0UGF0aCgpLCAmdGVt cF9maWxlX25hbWUpKSB7CistICAgIFBMT0coRVJST1IpIDw8ICJDb3VsZCBub3QgY3JlYXRlIHRl bXAgZmlsZSBmb3IgY2hpbGQgc3Rkb3V0IjsKKy0gICAgcmV0dXJuIGZhbHNlOworLSAgfQorLQor LSAgU0VDVVJJVFlfQVRUUklCVVRFUyBhdHRycyA9IHt9OworLSAgYXR0cnMubkxlbmd0aCA9IHNp emVvZihhdHRycyk7CistICBhdHRycy5iSW5oZXJpdEhhbmRsZSA9IHRydWU7CistCistICBiYXNl Ojp3aW46OlNjb3BlZEhhbmRsZSBjaGlsZF9zdGRvdXRfd3JpdGVfaGFuZGxlKAorLSAgICAgIDo6 Q3JlYXRlRmlsZSh0ZW1wX2ZpbGVfbmFtZS52YWx1ZSgpLmNfc3RyKCksIEdFTkVSSUNfV1JJVEUs CistICAgICAgICAgICAgICAgICAgIEZJTEVfU0hBUkVfV1JJVEUgfCBGSUxFX1NIQVJFX1JFQUQg fCBGSUxFX1NIQVJFX0RFTEVURSwKKy0gICAgICAgICAgICAgICAgICAgJmF0dHJzLCBPUEVOX0VY SVNUSU5HLCAwLCBudWxscHRyKSk7CistICBpZiAoIWNoaWxkX3N0ZG91dF93cml0ZV9oYW5kbGUu SXNWYWxpZCgpKSB7CistICAgIFBMT0coRVJST1IpIDw8ICJDb3VsZCBub3Qgb3BlbiBjaGlsZCBz dGRvdXQgZmlsZSI7CistICAgIHJldHVybiBmYWxzZTsKKy0gIH0KKy0KKy0gIGlmICghUHJlcGFy ZUFuZExhdW5jaFRlc3RDaGlsZFByb2Nlc3MoY2hpbGRfbWFpbl9mdW5jdGlvbiwKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjptb3ZlKGNoaWxkX3N0ZG91dF93 cml0ZV9oYW5kbGUpKSkgeworLSAgICBpbnRlcm5hbDo6UHJpbnRDaGlsZFByb2Nlc3NMb2dzKHRl bXBfZmlsZV9uYW1lKTsKKysgIGlmICghUHJlcGFyZUFuZExhdW5jaFRlc3RDaGlsZFByb2Nlc3Mo Y2hpbGRfbWFpbl9mdW5jdGlvbikpIHsKKysgICAgY2hpbGRfcHJvY2Vzc19sb2dnZXJfLkR1bXBM b2dzKCk7CisgICAgIHJldHVybiBmYWxzZTsKKyAgIH0KKyAKK0BAIC0yMDEsMzEgKzEzNSwyMiBA QCBib29sIFBhcmVudFByb2Nlc3M6OkxhdW5jaENvbm5lY3RlZENoaWxkUHJvY2VzcygKKyAgIERl c3Ryb3lJbXBsT25JUENUaHJlYWQoKTsKKyAKKyAgIGlmICghc3VjY2VzcyB8fCAqZXhpdF9jb2Rl ICE9IDApIHsKKy0gICAgaW50ZXJuYWw6OlByaW50Q2hpbGRQcm9jZXNzTG9ncyh0ZW1wX2ZpbGVf bmFtZSk7CisrICAgIGNoaWxkX3Byb2Nlc3NfbG9nZ2VyXy5EdW1wTG9ncygpOworICAgfQorIAor ICAgcmV0dXJuIHN1Y2Nlc3M7CisgfQorIAorIGJvb2wgUGFyZW50UHJvY2Vzczo6UHJlcGFyZUFu ZExhdW5jaFRlc3RDaGlsZFByb2Nlc3MoCistICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBjaGlsZF9t YWluX2Z1bmN0aW9uLAorLSAgICBiYXNlOjp3aW46OlNjb3BlZEhhbmRsZSBjaGlsZF9zdGRvdXRf d3JpdGVfaGFuZGxlKSB7CisrICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBjaGlsZF9tYWluX2Z1bmN0 aW9uKSB7CisgICBiYXNlOjpMYXVuY2hPcHRpb25zIGxhdW5jaF9vcHRpb25zOworICAgbGF1bmNo X29wdGlvbnMuaGFuZGxlc190b19pbmhlcml0ID0gZXh0cmFfaGFuZGxlc190b19pbmhlcml0XzsK Ky0gIGxhdW5jaF9vcHRpb25zLmhhbmRsZXNfdG9faW5oZXJpdC5wdXNoX2JhY2soY2hpbGRfc3Rk b3V0X3dyaXRlX2hhbmRsZS5HZXQoKSk7CistICBsYXVuY2hfb3B0aW9ucy5zdGRpbl9oYW5kbGUg PSBJTlZBTElEX0hBTkRMRV9WQUxVRTsKKy0gIGxhdW5jaF9vcHRpb25zLnN0ZG91dF9oYW5kbGUg PSBjaGlsZF9zdGRvdXRfd3JpdGVfaGFuZGxlLkdldCgpOworLSAgbGF1bmNoX29wdGlvbnMuc3Rk ZXJyX2hhbmRsZSA9IGNoaWxkX3N0ZG91dF93cml0ZV9oYW5kbGUuR2V0KCk7CistCisrICBjaGls ZF9wcm9jZXNzX2xvZ2dlcl8uVXBkYXRlTGF1bmNoT3B0aW9ucygmbGF1bmNoX29wdGlvbnMpOwor ICAgQ3JlYXRlTW9qb1BpcGUoJmNvbW1hbmRfbGluZV8sICZsYXVuY2hfb3B0aW9ucy5oYW5kbGVz X3RvX2luaGVyaXQpOworIAorICAgYmFzZTo6UHJvY2VzcyBjaGlsZF9wcm9jZXNzID0gYmFzZTo6 U3Bhd25NdWx0aVByb2Nlc3NUZXN0Q2hpbGQoCisgICAgICAgY2hpbGRfbWFpbl9mdW5jdGlvbiwg Y29tbWFuZF9saW5lXywgbGF1bmNoX29wdGlvbnMpOworIAorLSAgLy8gTm93IHRoYXQgaXQncyBi ZWVuIHBhc3NlZCB0byB0aGUgY2hpbGQgcHJvY2VzcywKKy0gIC8vIHxjaGlsZF9zdGRvdXRfd3Jp dGVfaGFuZGxlfCBjYW4gYmUgY2xvc2VkIGluIHRoaXMgcHJvY2VzcyBhcyBpdCBnb2VzIG91dAor LSAgLy8gb2Ygc2NvcGUuCistCisgICBDb25uZWN0TW9qb1BpcGUoc3RkOjptb3ZlKGNoaWxkX3By b2Nlc3MpKTsKKyAgIHJldHVybiB0cnVlOworIH0KK0BAIC0yNTcsOSArMTgyLDggQEAgU2FuZGJv eGVkUGFyZW50UHJvY2Vzczo6U2FuZGJveGVkUGFyZW50UHJvY2VzcygKKyBTYW5kYm94ZWRQYXJl bnRQcm9jZXNzOjp+U2FuZGJveGVkUGFyZW50UHJvY2VzcygpIHt9CisgCisgYm9vbCBTYW5kYm94 ZWRQYXJlbnRQcm9jZXNzOjpQcmVwYXJlQW5kTGF1bmNoVGVzdENoaWxkUHJvY2VzcygKKy0gICAg Y29uc3Qgc3RkOjpzdHJpbmcmIGNoaWxkX21haW5fZnVuY3Rpb24sCistICAgIGJhc2U6Ondpbjo6 U2NvcGVkSGFuZGxlIGNoaWxkX3N0ZG91dF93cml0ZV9oYW5kbGUpIHsKKy0gIE1vam9TYW5kYm94 U2V0dXBIb29rcyBob29rcyh0aGlzLCBzdGQ6Om1vdmUoY2hpbGRfc3Rkb3V0X3dyaXRlX2hhbmRs ZSkpOworKyAgICBjb25zdCBzdGQ6OnN0cmluZyYgY2hpbGRfbWFpbl9mdW5jdGlvbikgeworKyAg TW9qb1NhbmRib3hTZXR1cEhvb2tzIGhvb2tzKHRoaXMpOworIAorICAgLy8gVGhpcyBzd2l0Y2gg dXNhZ2UgaXMgY29waWVkIGZyb20gU3Bhd25NdWx0aVByb2Nlc3NUZXN0Q2hpbGQuCisgICAvLwor ZGlmZiAtLWdpdCBhL2Nocm9tZS9jaHJvbWVfY2xlYW5lci9pcGMvaXBjX3Rlc3RfdXRpbC5oIGIv Y2hyb21lL2Nocm9tZV9jbGVhbmVyL2lwYy9pcGNfdGVzdF91dGlsLmgKK2luZGV4IDFiMmU1NTk4 ZWQ1MmEuLjE1MjZhNDI3MDEzNTMgMTAwNjQ0CistLS0gYS9jaHJvbWUvY2hyb21lX2NsZWFuZXIv aXBjL2lwY190ZXN0X3V0aWwuaAorKysrIGIvY2hyb21lL2Nocm9tZV9jbGVhbmVyL2lwYy9pcGNf dGVzdF91dGlsLmgKK0BAIC0xNCw5ICsxNCw5IEBACisgI2luY2x1ZGUgImJhc2UvcHJvY2Vzcy9s YXVuY2guaCIKKyAjaW5jbHVkZSAiYmFzZS9wcm9jZXNzL3Byb2Nlc3MuaCIKKyAjaW5jbHVkZSAi YmFzZS90aW1lL3RpbWUuaCIKKy0jaW5jbHVkZSAiYmFzZS93aW4vc2NvcGVkX2hhbmRsZS5oIgor ICNpbmNsdWRlICJjaHJvbWUvY2hyb21lX2NsZWFuZXIvaXBjL2Nocm9tZV9wcm9tcHRfaXBjLmgi CisgI2luY2x1ZGUgImNocm9tZS9jaHJvbWVfY2xlYW5lci9pcGMvbW9qb190YXNrX3J1bm5lci5o IgorKyNpbmNsdWRlICJjaHJvbWUvY2hyb21lX2NsZWFuZXIvdGVzdC9jaGlsZF9wcm9jZXNzX2xv Z2dlci5oIgorICNpbmNsdWRlICJtb2pvL3B1YmxpYy9jcHAvcGxhdGZvcm0vcGxhdGZvcm1fY2hh bm5lbC5oIgorICNpbmNsdWRlICJtb2pvL3B1YmxpYy9jcHAvc3lzdGVtL2ludml0YXRpb24uaCIK KyAjaW5jbHVkZSAibW9qby9wdWJsaWMvY3BwL3N5c3RlbS9tZXNzYWdlX3BpcGUuaCIKK0BAIC01 OCw2ICs1OCwxMCBAQCBjbGFzcyBQYXJlbnRQcm9jZXNzIDogcHVibGljIGJhc2U6OlJlZkNvdW50 ZWRUaHJlYWRTYWZlPFBhcmVudFByb2Nlc3M+IHsKKyAgICAgcmV0dXJuIGV4dHJhX2hhbmRsZXNf dG9faW5oZXJpdF87CisgICB9CisgCisrICBjb25zdCBDaGlsZFByb2Nlc3NMb2dnZXImIGNoaWxk X3Byb2Nlc3NfbG9nZ2VyKCkgY29uc3QgeworKyAgICByZXR1cm4gY2hpbGRfcHJvY2Vzc19sb2dn ZXJfOworKyAgfQorKworICBwcm90ZWN0ZWQ6CisgICBmcmllbmQgYmFzZTo6UmVmQ291bnRlZFRo cmVhZFNhZmU8UGFyZW50UHJvY2Vzcz47CisgICB2aXJ0dWFsIH5QYXJlbnRQcm9jZXNzKCk7CitA QCAtNzAsMTMgKzc0LDEzIEBAIGNsYXNzIFBhcmVudFByb2Nlc3MgOiBwdWJsaWMgYmFzZTo6UmVm Q291bnRlZFRocmVhZFNhZmU8UGFyZW50UHJvY2Vzcz4geworICAgLy8gYXMgaW4gdGhlIHNhbmRi b3guIFN1YmNsYXNzZXMgc2hvdWxkIGNhbGwgQ3JlYXRlTW9qb1BpcGUgYmVmb3JlIHRoZQorICAg Ly8gc3VicHJvY2VzcyBpcyBzcGF3bmVkIGFuZCBDb25uZWN0TW9qb1BpcGUgYWZ0ZXJ3YXJkLgor ICAgdmlydHVhbCBib29sIFByZXBhcmVBbmRMYXVuY2hUZXN0Q2hpbGRQcm9jZXNzKAorLSAgICAg IGNvbnN0IHN0ZDo6c3RyaW5nJiBjaGlsZF9tYWluX2Z1bmN0aW9uLAorLSAgICAgIGJhc2U6Ondp bjo6U2NvcGVkSGFuZGxlIGNoaWxkX3N0ZG91dF93cml0ZV9oYW5kbGUpOworKyAgICAgIGNvbnN0 IHN0ZDo6c3RyaW5nJiBjaGlsZF9tYWluX2Z1bmN0aW9uKTsKKyAKKyAgIHNjb3BlZF9yZWZwdHI8 TW9qb1Rhc2tSdW5uZXI+IG1vam9fdGFza19ydW5uZXIoKTsKKyAKKyAgIGJhc2U6OkNvbW1hbmRM aW5lIGNvbW1hbmRfbGluZV87CisgICBiYXNlOjpIYW5kbGVzVG9Jbmhlcml0VmVjdG9yIGV4dHJh X2hhbmRsZXNfdG9faW5oZXJpdF87CisrICBDaGlsZFByb2Nlc3NMb2dnZXIgY2hpbGRfcHJvY2Vz c19sb2dnZXJfOworIAorICBwcml2YXRlOgorICAgc2NvcGVkX3JlZnB0cjxNb2pvVGFza1J1bm5l cj4gbW9qb190YXNrX3J1bm5lcl87CitAQCAtOTYsOCArMTAwLDcgQEAgY2xhc3MgU2FuZGJveGVk UGFyZW50UHJvY2VzcyA6IHB1YmxpYyBQYXJlbnRQcm9jZXNzIHsKKyAgIH5TYW5kYm94ZWRQYXJl bnRQcm9jZXNzKCkgb3ZlcnJpZGU7CisgCisgICBib29sIFByZXBhcmVBbmRMYXVuY2hUZXN0Q2hp bGRQcm9jZXNzKAorLSAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBjaGlsZF9tYWluX2Z1bmN0aW9u LAorLSAgICAgIGJhc2U6Ondpbjo6U2NvcGVkSGFuZGxlIGNoaWxkX3N0ZG91dF93cml0ZV9oYW5k bGUpIG92ZXJyaWRlOworKyAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBjaGlsZF9tYWluX2Z1bmN0 aW9uKSBvdmVycmlkZTsKKyB9OworIAorIGNsYXNzIENoaWxkUHJvY2VzcyA6IHB1YmxpYyBiYXNl OjpSZWZDb3VudGVkVGhyZWFkU2FmZTxDaGlsZFByb2Nlc3M+IHsKK0BAIC0xNDMsMTAgKzE0Niw2 IEBAIGNsYXNzIENocm9tZVByb21wdElQQ1Rlc3RFcnJvckhhbmRsZXIgOiBwdWJsaWMgQ2hyb21l UHJvbXB0SVBDOjpFcnJvckhhbmRsZXIgeworICAgYmFzZTo6T25jZUNsb3N1cmUgb25fY2xvc2Vk X2FmdGVyX2RvbmVfOworIH07CisgCistbmFtZXNwYWNlIGludGVybmFsIHsKKy12b2lkIFByaW50 Q2hpbGRQcm9jZXNzTG9ncyhjb25zdCBiYXNlOjpGaWxlUGF0aCYgbG9nX2ZpbGUpOworLX0gIC8v IG5hbWVzcGFjZSBpbnRlcm5hbAorLQorIH0gIC8vIG5hbWVzcGFjZSBjaHJvbWVfY2xlYW5lcgor IAorICNlbmRpZiAgLy8gQ0hST01FX0NIUk9NRV9DTEVBTkVSX0lQQ19JUENfVEVTVF9VVElMX0hf CitkaWZmIC0tZ2l0IGEvY2hyb21lL2Nocm9tZV9jbGVhbmVyL2lwYy9wcm90b19jaHJvbWVfcHJv bXB0X2lwY191bml0dGVzdC5jYyBiL2Nocm9tZS9jaHJvbWVfY2xlYW5lci9pcGMvcHJvdG9fY2hy b21lX3Byb21wdF9pcGNfdW5pdHRlc3QuY2MKK2luZGV4IGY4NjdkZjU4Zjk2ZWEuLmUzY2UyYWI2 YzI3ZmUgMTAwNjQ0CistLS0gYS9jaHJvbWUvY2hyb21lX2NsZWFuZXIvaXBjL3Byb3RvX2Nocm9t ZV9wcm9tcHRfaXBjX3VuaXR0ZXN0LmNjCisrKysgYi9jaHJvbWUvY2hyb21lX2NsZWFuZXIvaXBj L3Byb3RvX2Nocm9tZV9wcm9tcHRfaXBjX3VuaXR0ZXN0LmNjCitAQCAtNSw3ICs1LDYgQEAKKyAj aW5jbHVkZSA8d2luZG93cy5oPgorIAorICNpbmNsdWRlICJiYXNlL2NvbW1hbmRfbGluZS5oIgor LSNpbmNsdWRlICJiYXNlL2ZpbGVzL2ZpbGVfdXRpbC5oIgorICNpbmNsdWRlICJiYXNlL3Byb2Nl c3MvcHJvY2Vzcy5oIgorICNpbmNsdWRlICJiYXNlL3N0cmluZ3Mvc3RyY2F0LmgiCisgI2luY2x1 ZGUgImJhc2Uvc3RyaW5ncy9zdHJpbmdfbnVtYmVyX2NvbnZlcnNpb25zLmgiCitAQCAtMTksNyAr MTgsNyBAQAorICNpbmNsdWRlICJiYXNlL3dpbi93aW5fdXRpbC5oIgorICNpbmNsdWRlICJjaHJv bWUvY2hyb21lX2NsZWFuZXIvaXBjL2lwY190ZXN0X3V0aWwuaCIKKyAjaW5jbHVkZSAiY2hyb21l L2Nocm9tZV9jbGVhbmVyL2lwYy9wcm90b19jaHJvbWVfcHJvbXB0X2lwYy5oIgorLSNpbmNsdWRl ICJjaHJvbWUvY2hyb21lX2NsZWFuZXIvbG9nZ2luZy9zY29wZWRfbG9nZ2luZy5oIgorKyNpbmNs dWRlICJjaHJvbWUvY2hyb21lX2NsZWFuZXIvdGVzdC9jaGlsZF9wcm9jZXNzX2xvZ2dlci5oIgor ICNpbmNsdWRlICJjb21wb25lbnRzL2Nocm9tZV9jbGVhbmVyL3B1YmxpYy9jb25zdGFudHMvY29u c3RhbnRzLmgiCisgI2luY2x1ZGUgImNvbXBvbmVudHMvY2hyb21lX2NsZWFuZXIvcHVibGljL3By b3RvL2Nocm9tZV9wcm9tcHQucGIuaCIKKyAjaW5jbHVkZSAiY29tcG9uZW50cy9jaHJvbWVfY2xl YW5lci9wdWJsaWMvcHJvdG8vY2hyb21lX3Byb21wdF9mb3JfdGVzdHMucGIuaCIKK0BAIC00Miw3 ICs0MSw2IEBAIGNvbnN0ZXhwciBjaGFyIGtFeHBlY3RlZFByb21wdFJlc3VsdFN3aXRjaFtdID0g ImV4cGVjdGVkLXByb21wdC1yZXN1bHQiOworIGNvbnN0ZXhwciBjaGFyIGtFeHBlY3RlZENocm9t ZURpc2Nvbm5lY3RQb2ludFN3aXRjaFtdID0KKyAgICAgImV4cGVjdGVkLXBhcmVudC1kaXNjb25u ZWN0ZWQiOworIAorLWNvbnN0ZXhwciBiYXNlOjpjaGFyMTYga0xvZ1N1ZmZpeFtdID0gTCJwcm9t cHQtaXBjLXRlc3QiOworIGNvbnN0ZXhwciBiYXNlOjpjaGFyMTYga0ludmFsaWRVVEYxNlN0cmlu Z1tdID0gezB4REMwMCwgMHhEODAwLCAweEQ4MDAsIDB4REZGRiwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweERGRkYsIDB4REJGRiwgMH07CisgY29u c3QgYmFzZTo6RmlsZVBhdGgga0ludmFsaWRGaWxlUGF0aChrSW52YWxpZFVURjE2U3RyaW5nKTsK K0BAIC00MjEsOCArNDE5LDcgQEAgY2xhc3MgTW9ja0Nocm9tZSB7CisgLy8gR3Rlc3QgdG8gbG9n LgorIGNsYXNzIENoaWxkUHJvY2VzcyB7CisgIHB1YmxpYzoKKy0gIENoaWxkUHJvY2VzcygpCist ICAgICAgOiBzY29wcGVkX2xvZ2dpbmdfKHN0ZDo6bWFrZV91bmlxdWU8U2NvcGVkTG9nZ2luZz4o a0xvZ1N1ZmZpeCkpIHsKKysgIENoaWxkUHJvY2VzcygpIHsKKyAgICAgbW9ja19jaHJvbWVfID0g c3RkOjptYWtlX3VuaXF1ZTxNb2NrQ2hyb21lPigKKyAgICAgICAgIEV4dHJhY3RIYW5kbGVGcm9t Q29tbWFuZExpbmUoY2hyb21lX2NsZWFuZXI6OmtDaHJvbWVSZWFkSGFuZGxlU3dpdGNoKSwKKyAg ICAgICAgIEV4dHJhY3RIYW5kbGVGcm9tQ29tbWFuZExpbmUoY2hyb21lX2NsZWFuZXI6OmtDaHJv bWVXcml0ZUhhbmRsZVN3aXRjaCkpOworQEAgLTU3MSw3ICs1NjgsNiBAQCBjbGFzcyBDaGlsZFBy b2Nlc3MgeworIAorICBwcml2YXRlOgorICAgc3RkOjp1bmlxdWVfcHRyPE1vY2tDaHJvbWU+IG1v Y2tfY2hyb21lXzsKKy0gIHN0ZDo6dW5pcXVlX3B0cjxTY29wZWRMb2dnaW5nPiBzY29wcGVkX2xv Z2dpbmdfOworIAorICAgQ2hyb21lRGlzY29ubmVjdFBvaW50IGV4cGVjdGVkX2Rpc2Nvbm5lY3Rf cG9pbnRfID0KKyAgICAgICBDaHJvbWVEaXNjb25uZWN0UG9pbnQ6OmtVbnNwZWNpZmllZDsKK0BA IC02MDMsNiArNTk5LDkgQEAgY2xhc3MgUHJvdG9DaHJvbWVQcm9tcHRJUENUZXN0CisgY2xhc3Mg UGFyZW50UHJvY2VzcyB7CisgIHB1YmxpYzoKKyAgIGJvb2wgSW5pdGlhbGl6ZSgpIHsKKysgICAg aWYgKCFjaGlsZF9wcm9jZXNzX2xvZ2dlcl8uSW5pdGlhbGl6ZSgpKQorKyAgICAgIHJldHVybiBm YWxzZTsKKysKKyAgICAgLy8gSW5qZWN0IHRoZSBmbGFncyByZWxhdGVkIHRvIHRoZSB0aGUgY29u ZmlnIGluIHRoZSBjb21tYW5kIGxpbmUuCisgICAgIHRlc3RfY29uZmlnXy5FbmhhbmNlQ29tbWFu ZExpbmUoJmNvbW1hbmRfbGluZV8pOworIAorQEAgLTYzMSwxNCArNjMwLDEzIEBAIGNsYXNzIFBh cmVudFByb2Nlc3MgeworICAgfQorIAorICAgdm9pZCBSdW4oKSB7CistICAgIC8vIERlbGV0ZSB0 aGUgY2hpbGQgcHJvY2VzcyBsb2cgZmlsZSBpZiBleGlzdGluZy4KKy0gICAgY29uc3QgYmFzZTo6 RmlsZVBhdGggbG9nX3BhdGggPSBTY29wZWRMb2dnaW5nOjpHZXRMb2dGaWxlUGF0aChrTG9nU3Vm Zml4KTsKKy0gICAgQVNTRVJUX1RSVUUoYmFzZTo6RGVsZXRlRmlsZShsb2dfcGF0aCwgZmFsc2Up KQorLSAgICAgICAgPDwgIkNhbid0IGRlbGV0ZSBsb2cgZmlsZSBmcm9tIHByZXZpb3VzIHJ1bjog IiA8PCBsb2dfcGF0aC52YWx1ZSgpOworKyAgICBjaGlsZF9wcm9jZXNzX2xvZ2dlcl8uVXBkYXRl TGF1bmNoT3B0aW9ucygmbGF1bmNoX29wdGlvbnNfKTsKKyAKKyAgICAgLy8gUGFzcyB0aGUgY29t bWFuZCB0byB0aGUgY2hpbGQgcHJvY2VzcyBhbmQgbGF1bmNoIHRoZSBjaGlsZCBwcm9jZXNzLgor ICAgICBiYXNlOjpQcm9jZXNzIGNoaWxkX3Byb2Nlc3MgPSBiYXNlOjpTcGF3bk11bHRpUHJvY2Vz c1Rlc3RDaGlsZCgKKyAgICAgICAgICJQcm90b0Nocm9tZVByb21wdElQQ0NsaWVudE1haW4iLCBj b21tYW5kX2xpbmVfLCBsYXVuY2hfb3B0aW9uc18pOworKyAgICBpZiAoIWNoaWxkX3Byb2Nlc3Mu SXNSdW5uaW5nKCkpCisrICAgICAgY2hpbGRfcHJvY2Vzc19sb2dnZXJfLkR1bXBMb2dzKCk7Cisg ICAgIEFTU0VSVF9UUlVFKGNoaWxkX3Byb2Nlc3MuSXNSdW5uaW5nKCkpOworIAorICAgICAvLyBD bG9zZSBvdXIgcmVmZXJlbmNlcyB0byB0aGUgaGFuZGxlcyBhcyB0aGV5IGFyZSBub3cgaGFuZGxl ZCBieSB0aGUgY2hpbGQKK0BAIC03MDUsMTAgKzcwMyw4IEBAIGNsYXNzIFBhcmVudFByb2Nlc3Mg eworIAorICAgICBFWFBFQ1RfRVEoZXhwZWN0ZWRfZXhpdF9jb2RlLCBydik7CisgCistICAgIGlm ICghc3VjY2VzcyB8fCBydiAhPSAwKSB7CistICAgICAgaW50ZXJuYWw6OlByaW50Q2hpbGRQcm9j ZXNzTG9ncygKKy0gICAgICAgICAgU2NvcGVkTG9nZ2luZzo6R2V0TG9nRmlsZVBhdGgoa0xvZ1N1 ZmZpeCkpOworLSAgICB9CisrICAgIGlmICghc3VjY2VzcyB8fCBydiAhPSAwKQorKyAgICAgIGNo aWxkX3Byb2Nlc3NfbG9nZ2VyXy5EdW1wTG9ncygpOworICAgfQorIAorICAgVGVzdENvbmZpZyYg R2V0VGVzdENvbmZpZygpIHsgcmV0dXJuIHRlc3RfY29uZmlnXzsgfQorQEAgLTczMiw2ICs3Mjgs OCBAQCBjbGFzcyBQYXJlbnRQcm9jZXNzIHsKKyAgIC8vIEJsb2NrcyB1bnRpbCB3ZSByZWNlaXZl IHRoZSByZXNwb25zZSBmcm9tIENocm9tZSBvciBhbiBlcnJvciBvY2N1cnMuCisgICBiYXNlOjpS dW5Mb29wIG1haW5fcnVubG9vcF87CisgICBib29sIGVycm9yX29jY3VycmVkXyA9IGZhbHNlOwor KworKyAgQ2hpbGRQcm9jZXNzTG9nZ2VyIGNoaWxkX3Byb2Nlc3NfbG9nZ2VyXzsKKyB9OworIAor IC8vIFRoaXMgY29udGFpbnMgY2FsbHMgdG8gdGhlIGNocm9tZV9jbGVhbmVyX2lwYyBpbXBsZW1l bnRhdGlvbi4KK2RpZmYgLS1naXQgYS9jaHJvbWUvY2hyb21lX2NsZWFuZXIvdGVzdC9CVUlMRC5n biBiL2Nocm9tZS9jaHJvbWVfY2xlYW5lci90ZXN0L0JVSUxELmduCitpbmRleCAxMTg0NTRjMmJk Y2QyLi40YjA1M2ZkY2FmMTgyIDEwMDY0NAorLS0tIGEvY2hyb21lL2Nocm9tZV9jbGVhbmVyL3Rl c3QvQlVJTEQuZ24KKysrKyBiL2Nocm9tZS9jaHJvbWVfY2xlYW5lci90ZXN0L0JVSUxELmduCitA QCAtMTQ4LDYgKzE0OCw4IEBAIHNvdXJjZV9zZXQoInRlc3RfdXRpbCIpIHsKKyAgIHRlc3Rvbmx5 ID0gdHJ1ZQorIAorICAgc291cmNlcyA9IFsKKysgICAgImNoaWxkX3Byb2Nlc3NfbG9nZ2VyLmNj IiwKKysgICAgImNoaWxkX3Byb2Nlc3NfbG9nZ2VyLmgiLAorICAgICAiZmlsZV9yZW1vdmVyX3Rl c3RfdXRpbC5jYyIsCisgICAgICJmaWxlX3JlbW92ZXJfdGVzdF91dGlsLmgiLAorICAgICAicmVi b290X2RlbGV0aW9uX2hlbHBlci5jYyIsCitAQCAtMjI4LDYgKzIzMCw3IEBAIHNvdXJjZV9zZXQo ImludGVncmF0aW9uX3Rlc3Rfc291cmNlcyIpIHsKKyAgICAgIi8vY2hyb21lL2Nocm9tZV9jbGVh bmVyL29zOmNvbW1vbl9vcyIsCisgICAgICIvL2Nocm9tZS9jaHJvbWVfY2xlYW5lci9wdXBfZGF0 YTpwdXBfZGF0YV9iYXNlIiwKKyAgICAgIi8vY2hyb21lL2Nocm9tZV9jbGVhbmVyL3B1cF9kYXRh OnRlc3RfdXdzIiwKKysgICAgIi8vY2hyb21lL2Nocm9tZV9jbGVhbmVyL3Rlc3Q6dGVzdF91dGls IiwKKyAgICAgIi8vY2hyb21lL2Nocm9tZV9jbGVhbmVyL3ppcF9hcmNoaXZlcjpjb21tb24iLAor ICAgICAiLy9jb21wb25lbnRzL2Nocm9tZV9jbGVhbmVyL3B1YmxpYy9jb25zdGFudHMiLAorICAg ICAiLy9jb21wb25lbnRzL2Nocm9tZV9jbGVhbmVyL3Rlc3Q6dGVzdF9uYW1lX2hlbHBlciIsCitk aWZmIC0tZ2l0IGEvY2hyb21lL2Nocm9tZV9jbGVhbmVyL3Rlc3QvY2hpbGRfcHJvY2Vzc19sb2dn ZXIuY2MgYi9jaHJvbWUvY2hyb21lX2NsZWFuZXIvdGVzdC9jaGlsZF9wcm9jZXNzX2xvZ2dlci5j YworbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAwMDAwMDAuLjlmNDgzNjI2N2Fl YTYKKy0tLSAvZGV2L251bGwKKysrKyBiL2Nocm9tZS9jaHJvbWVfY2xlYW5lci90ZXN0L2NoaWxk X3Byb2Nlc3NfbG9nZ2VyLmNjCitAQCAtMCwwICsxLDkwIEBACisrLy8gQ29weXJpZ2h0IDIwMTkg VGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisrLy8gVXNlIG9mIHRo aXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNh biBiZQorKy8vIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisrCisrI2luY2x1ZGUgImNocm9t ZS9jaHJvbWVfY2xlYW5lci90ZXN0L2NoaWxkX3Byb2Nlc3NfbG9nZ2VyLmgiCisrCisrI2luY2x1 ZGUgPHZlY3Rvcj4KKysKKysjaW5jbHVkZSAiYmFzZS9maWxlcy9maWxlX3V0aWwuaCIKKysjaW5j bHVkZSAiYmFzZS9sb2dnaW5nLmgiCisrI2luY2x1ZGUgImJhc2Uvc3RyaW5ncy9zdHJpbmdfcGll Y2UuaCIKKysjaW5jbHVkZSAiYmFzZS9zdHJpbmdzL3N0cmluZ19zcGxpdC5oIgorKworK25hbWVz cGFjZSBjaHJvbWVfY2xlYW5lciB7CisrCisrQ2hpbGRQcm9jZXNzTG9nZ2VyOjpDaGlsZFByb2Nl c3NMb2dnZXIoKSA9IGRlZmF1bHQ7CisrCisrQ2hpbGRQcm9jZXNzTG9nZ2VyOjp+Q2hpbGRQcm9j ZXNzTG9nZ2VyKCkgPSBkZWZhdWx0OworKworK2Jvb2wgQ2hpbGRQcm9jZXNzTG9nZ2VyOjpJbml0 aWFsaXplKCkgeworKyAgLy8gQWRhcHRlZCBmcm9tCisrICAvLyBodHRwczovL2NzLmNocm9taXVt Lm9yZy9jaHJvbWl1bS9zcmMvc2FuZGJveC93aW4vc3JjL2hhbmRsZV9pbmhlcml0YW5jZV90ZXN0 LmNjCisrICBpZiAoIXRlbXBfZGlyXy5DcmVhdGVVbmlxdWVUZW1wRGlyKCkpIHsKKysgICAgUExP RyhFUlJPUikgPDwgIkNvdWxkIG5vdCBjcmVhdGUgdGVtcCBkaXIgZm9yIGNoaWxkIHN0ZG91dCI7 CisrICAgIHJldHVybiBmYWxzZTsKKysgIH0KKysKKysgIGlmICghQ3JlYXRlVGVtcG9yYXJ5Rmls ZUluRGlyKHRlbXBfZGlyXy5HZXRQYXRoKCksICZ0ZW1wX2ZpbGVfbmFtZV8pKSB7CisrICAgIFBM T0coRVJST1IpIDw8ICJDb3VsZCBub3QgY3JlYXRlIHRlbXAgZmlsZSBmb3IgY2hpbGQgc3Rkb3V0 IjsKKysgICAgcmV0dXJuIGZhbHNlOworKyAgfQorKworKyAgU0VDVVJJVFlfQVRUUklCVVRFUyBh dHRycyA9IHt9OworKyAgYXR0cnMubkxlbmd0aCA9IHNpemVvZihhdHRycyk7CisrICBhdHRycy5i SW5oZXJpdEhhbmRsZSA9IHRydWU7CisrCisrICBjaGlsZF9zdGRvdXRfaGFuZGxlXy5TZXQoCisr ICAgICAgOjpDcmVhdGVGaWxlKHRlbXBfZmlsZV9uYW1lXy52YWx1ZSgpLmNfc3RyKCksIEdFTkVS SUNfV1JJVEUsCisrICAgICAgICAgICAgICAgICAgIEZJTEVfU0hBUkVfV1JJVEUgfCBGSUxFX1NI QVJFX1JFQUQgfCBGSUxFX1NIQVJFX0RFTEVURSwKKysgICAgICAgICAgICAgICAgICAgJmF0dHJz LCBPUEVOX0VYSVNUSU5HLCAwLCBudWxscHRyKSk7CisrICBpZiAoIWNoaWxkX3N0ZG91dF9oYW5k bGVfLklzVmFsaWQoKSkgeworKyAgICBQTE9HKEVSUk9SKSA8PCAiQ291bGQgbm90IG9wZW4gY2hp bGQgc3Rkb3V0IGZpbGUiOworKyAgICByZXR1cm4gZmFsc2U7CisrICB9CisrCisrICByZXR1cm4g dHJ1ZTsKKyt9CisrCisrdm9pZCBDaGlsZFByb2Nlc3NMb2dnZXI6OlVwZGF0ZUxhdW5jaE9wdGlv bnMoCisrICAgIGJhc2U6OkxhdW5jaE9wdGlvbnMqIG9wdGlvbnMpIGNvbnN0IHsKKysgIERDSEVD SyhjaGlsZF9zdGRvdXRfaGFuZGxlXy5Jc1ZhbGlkKCkpOworKyAgb3B0aW9ucy0+aGFuZGxlc190 b19pbmhlcml0LnB1c2hfYmFjayhjaGlsZF9zdGRvdXRfaGFuZGxlXy5HZXQoKSk7CisrICBvcHRp b25zLT5zdGRpbl9oYW5kbGUgPSBJTlZBTElEX0hBTkRMRV9WQUxVRTsKKysgIG9wdGlvbnMtPnN0 ZG91dF9oYW5kbGUgPSBjaGlsZF9zdGRvdXRfaGFuZGxlXy5HZXQoKTsKKysgIG9wdGlvbnMtPnN0 ZGVycl9oYW5kbGUgPSBjaGlsZF9zdGRvdXRfaGFuZGxlXy5HZXQoKTsKKyt9CisrCisrdm9pZCBD aGlsZFByb2Nlc3NMb2dnZXI6OlVwZGF0ZVNhbmRib3hQb2xpY3koCisrICAgIHNhbmRib3g6OlRh cmdldFBvbGljeSogcG9saWN5KSBjb25zdCB7CisrICBEQ0hFQ0soY2hpbGRfc3Rkb3V0X2hhbmRs ZV8uSXNWYWxpZCgpKTsKKysgIHBvbGljeS0+U2V0U3Rkb3V0SGFuZGxlKGNoaWxkX3N0ZG91dF9o YW5kbGVfLkdldCgpKTsKKysgIHBvbGljeS0+U2V0U3RkZXJySGFuZGxlKGNoaWxkX3N0ZG91dF9o YW5kbGVfLkdldCgpKTsKKyt9CisrCisrdm9pZCBDaGlsZFByb2Nlc3NMb2dnZXI6OkR1bXBMb2dz KCkgY29uc3QgeworKyAgRENIRUNLKCF0ZW1wX2ZpbGVfbmFtZV8uZW1wdHkoKSk7CisrCisrICBp ZiAoIWJhc2U6OlBhdGhFeGlzdHModGVtcF9maWxlX25hbWVfKSkgeworKyAgICBMT0coRVJST1Ip IDw8ICJDaGlsZCBwcm9jZXNzIGxvZyBmaWxlIGRvZXNuJ3QgZXhpc3QiOworKyAgICByZXR1cm47 CisrICB9CisrCisrICAvLyBDb2xsZWN0IHRoZSBjaGlsZCBwcm9jZXNzIGxvZyBmaWxlLCBhbmQg ZHVtcCB0aGUgY29udGVudHMsIHRvIGhlbHAKKysgIC8vIGRlYnVnZ2luZyBmYWlsdXJlcy4KKysg IHN0ZDo6c3RyaW5nIGxvZ19maWxlX2NvbnRlbnRzOworKyAgaWYgKCFiYXNlOjpSZWFkRmlsZVRv U3RyaW5nKHRlbXBfZmlsZV9uYW1lXywgJmxvZ19maWxlX2NvbnRlbnRzKSkgeworKyAgICBMT0co RVJST1IpIDw8ICJGYWlsZWQgdG8gcmVhZCBjaGlsZCBwcm9jZXNzIGxvZyBmaWxlIjsKKysgICAg cmV0dXJuOworKyAgfQorKworKyAgc3RkOjp2ZWN0b3I8YmFzZTo6U3RyaW5nUGllY2U+IGxpbmVz ID0KKysgICAgICBiYXNlOjpTcGxpdFN0cmluZ1BpZWNlKGxvZ19maWxlX2NvbnRlbnRzLCAiXG4i LCBiYXNlOjpUUklNX1dISVRFU1BBQ0UsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICBi YXNlOjpTUExJVF9XQU5UX05PTkVNUFRZKTsKKysgIExPRyhFUlJPUikgPDwgIkR1bXBpbmcgY2hp bGQgcHJvY2VzcyBsb2dzIjsKKysgIGZvciAoY29uc3QgYXV0byYgbGluZSA6IGxpbmVzKSB7Cisr ICAgIExPRyhFUlJPUikgPDwgIkNoaWxkIHByb2Nlc3M6ICIgPDwgbGluZTsKKysgIH0KKyt9Cisr CisrfSAgLy8gbmFtZXNwYWNlIGNocm9tZV9jbGVhbmVyCitkaWZmIC0tZ2l0IGEvY2hyb21lL2No cm9tZV9jbGVhbmVyL3Rlc3QvY2hpbGRfcHJvY2Vzc19sb2dnZXIuaCBiL2Nocm9tZS9jaHJvbWVf Y2xlYW5lci90ZXN0L2NoaWxkX3Byb2Nlc3NfbG9nZ2VyLmgKK25ldyBmaWxlIG1vZGUgMTAwNjQ0 CitpbmRleCAwMDAwMDAwMDAwMDAwLi4yMTVmYTkxMWQ3ODk5CistLS0gL2Rldi9udWxsCisrKysg Yi9jaHJvbWUvY2hyb21lX2NsZWFuZXIvdGVzdC9jaGlsZF9wcm9jZXNzX2xvZ2dlci5oCitAQCAt MCwwICsxLDYyIEBACisrLy8gQ29weXJpZ2h0IDIwMTkgVGhlIENocm9taXVtIEF1dGhvcnMuIEFs bCByaWdodHMgcmVzZXJ2ZWQuCisrLy8gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJu ZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorKy8vIGZvdW5kIGluIHRoZSBM SUNFTlNFIGZpbGUuCisrCisrI2lmbmRlZiBDSFJPTUVfQ0hST01FX0NMRUFORVJfVEVTVF9DSElM RF9QUk9DRVNTX0xPR0dFUl9IXworKyNkZWZpbmUgQ0hST01FX0NIUk9NRV9DTEVBTkVSX1RFU1Rf Q0hJTERfUFJPQ0VTU19MT0dHRVJfSF8KKysKKysjaW5jbHVkZSAiYmFzZS9maWxlcy9zY29wZWRf dGVtcF9kaXIuaCIKKysjaW5jbHVkZSAiYmFzZS9wcm9jZXNzL2xhdW5jaC5oIgorKyNpbmNsdWRl ICJiYXNlL3dpbi9zY29wZWRfaGFuZGxlLmgiCisrI2luY2x1ZGUgInNhbmRib3gvd2luL3NyYy9z YW5kYm94X3BvbGljeS5oIgorKworK25hbWVzcGFjZSBjaHJvbWVfY2xlYW5lciB7CisrCisrLy8g UmVkaXJlY3RzIHN0ZGluIGFuZCBzdGRvdXQgb2YgYSBjaGlsZCBwcm9jZXNzIHRvIGEgdGVtcCBm aWxlLiBUZXN0cyB0aGF0CisrLy8gc3Bhd24gY2hpbGRyZW4gY2FuIGFkZCB0aGUgY29udGVudHMg b2YgdGhlIHRlbXAgZmlsZSB0byB0aGUgdGVzdCBvdXRwdXQuCisrLy8KKysvLyBOb3RlIHRoYXQg aWYgdGhlIGNoaWxkIHByb2Nlc3Mgc2V0cyB1cCBTY29wZWRMb2dnaW5nLCBFUlJPUiBhbmQgRkFU QUwgbGV2ZWwKKysvLyBsb2dzIHdpbGwgc3RpbGwgYmUgY2FwdHVyZWQgYnkgdGhpcywgYnV0IG90 aGVyIGxvZ3Mgd2lsbCBzdGFydCBnb2luZyB0byB0aGUKKysvLyBTY29wZWRMb2dnaW5nIGxvZyBm aWxlLiB0ZXN0X21haW4uY2Mgc2V0cyB1cCBTY29wZWRMb2dnaW5nIHNvIHVzdWFsbHkgdGhpcwor Ky8vIGNsYXNzIHdpbGwgY2FwdHVyZToKKysvLworKy8vIDEuIEFsbCBsb2cgbGluZXMgZnJvbSBi ZWZvcmUgdGhlIFNjb3BlZExvZ2dpbmcgY29uc3RydWN0b3IuCisrLy8gMi4gRVJST1IgYW5kIEZB VEFMIGxvZyBsaW5lcyBmcm9tIGFmdGVyIHRoYXQuCisrLy8gMy4gc3Rkb3V0IGFuZCBzdGRlcnIg b3V0cHV0IHRoYXQgZG9lc24ndCBnbyB0aHJvdWdoIHRoZSBsb2dnaW5nIHN5c3RlbS4KKysvLyA0 LiBTdGFjayB0cmFjZXMgZnJvbSBhbnkgY3Jhc2hlcy4KKysvLworKy8vIFRoaXMgc2hvdWxkIGJl IGFsbCB0aGF0J3MgbmVlZGVkIHRvIGRpYWdub3NlIGVycm9ycyBpbiB0ZXN0cy4KKytjbGFzcyBD aGlsZFByb2Nlc3NMb2dnZXIgeworKyBwdWJsaWM6CisrICBDaGlsZFByb2Nlc3NMb2dnZXIoKTsK KysgIH5DaGlsZFByb2Nlc3NMb2dnZXIoKTsKKysKKysgIC8vIENyZWF0ZXMgYSB0ZW1wIGZpbGUg Zm9yIGNoaWxkIHByb2Nlc3NlcyB0byBsb2cgdG8uIExvZ3MgYW4gZXJyb3IgYW5kCisrICAvLyBy ZXR1cm5zIGZhbHNlIG9uIGZhaWx1cmUuCisrICBib29sIEluaXRpYWxpemUoKTsKKysKKysgIC8v IFVwZGF0ZXMgfG9wdGlvbnN8IHRvIGRpcmVjdCB0aGUgY2hpbGQgc3Rkb3V0IGFuZCBzdGRlcnIg dG8gdGhlIHRlbXAgZmlsZS4KKysgIC8vIEZvciB1c2Ugd2l0aCBiYXNlOjpMYXVuY2hQcm9jZXNz IGFuZCBiYXNlOjpTcGF3bk11bHRpUHJvY2Vzc1Rlc3RDaGlsZC4KKysgIHZvaWQgVXBkYXRlTGF1 bmNoT3B0aW9ucyhiYXNlOjpMYXVuY2hPcHRpb25zKiBvcHRpb25zKSBjb25zdDsKKysKKysgIC8v IFVwZGF0ZXMgfHBvbGljeXwgdG8gZGlyZWN0IHRoZSBjaGlsZCBzdGRvdXQgYW5kIHN0ZGVyciB0 byB0aGUgdGVtcCBmaWxlLgorKyAgLy8gRm9yIHVzZSB3aXRoIHNhbmRib3g6OkJyb2tlclNlcnZp Y2VzOjpTcGF3blRhcmdldC4KKysgIHZvaWQgVXBkYXRlU2FuZGJveFBvbGljeShzYW5kYm94OjpU YXJnZXRQb2xpY3kqIHBvbGljeSkgY29uc3Q7CisrCisrICAvLyBXcml0ZXMgZXZlcnkgbGluZSBp biB0aGUgdGVtcCBmaWxlIHVzaW5nIExPRyhFUlJPUikgc28gdGhhdCBhbGwgbGluZXMgYXJlCisr ICAvLyBjYXB0dXJlZCBpbiB0aGUgdGVzdCBzdWl0ZSBvdXRwdXQuIFRoZSBjbGFzcy1sZXZlbCBj b21tZW50IGFib3ZlIGRlc2NyaWJlcworKyAgLy8gd2hpY2ggbG9nIGxpbmVzIGZyb20gdGhlIGNo aWxkIHdpbGwgYmUgY2FwdHVyZWQuCisrICB2b2lkIER1bXBMb2dzKCkgY29uc3Q7CisrCisrIHBy aXZhdGU6CisrICBDaGlsZFByb2Nlc3NMb2dnZXIoY29uc3QgQ2hpbGRQcm9jZXNzTG9nZ2VyJiBv dGhlcikgPSBkZWxldGU7CisrICBDaGlsZFByb2Nlc3NMb2dnZXImIG9wZXJhdG9yPShjb25zdCBD aGlsZFByb2Nlc3NMb2dnZXImIG90aGVyKSA9IGRlbGV0ZTsKKysKKysgIGJhc2U6OlNjb3BlZFRl bXBEaXIgdGVtcF9kaXJfOworKyAgYmFzZTo6RmlsZVBhdGggdGVtcF9maWxlX25hbWVfOworKyAg YmFzZTo6d2luOjpTY29wZWRIYW5kbGUgY2hpbGRfc3Rkb3V0X2hhbmRsZV87CisrfTsKKysKKyt9 ICAvLyBuYW1lc3BhY2UgY2hyb21lX2NsZWFuZXIKKysKKysjZW5kaWYgIC8vIENIUk9NRV9DSFJP TUVfQ0xFQU5FUl9URVNUX0NISUxEX1BST0NFU1NfTE9HR0VSX0hfCitkaWZmIC0tZ2l0IGEvY2hy b21lL2Nocm9tZV9jbGVhbmVyL3Rlc3QvY2xlYW5lcl90ZXN0LmNjIGIvY2hyb21lL2Nocm9tZV9j bGVhbmVyL3Rlc3QvY2xlYW5lcl90ZXN0LmNjCitpbmRleCBkNmRmMTdlMzUxNmYxLi5mNzc4MTAz YmZkYWQzIDEwMDY0NAorLS0tIGEvY2hyb21lL2Nocm9tZV9jbGVhbmVyL3Rlc3QvY2xlYW5lcl90 ZXN0LmNjCisrKysgYi9jaHJvbWUvY2hyb21lX2NsZWFuZXIvdGVzdC9jbGVhbmVyX3Rlc3QuY2MK K0BAIC0yNCw2ICsyNCw3IEBACisgI2luY2x1ZGUgImNocm9tZS9jaHJvbWVfY2xlYW5lci9vcy9w cmVfZmV0Y2hlZF9wYXRocy5oIgorICNpbmNsdWRlICJjaHJvbWUvY2hyb21lX2NsZWFuZXIvcHVw X2RhdGEvcHVwX2RhdGEuaCIKKyAjaW5jbHVkZSAiY2hyb21lL2Nocm9tZV9jbGVhbmVyL3B1cF9k YXRhL3Rlc3RfdXdzLmgiCisrI2luY2x1ZGUgImNocm9tZS9jaHJvbWVfY2xlYW5lci90ZXN0L2No aWxkX3Byb2Nlc3NfbG9nZ2VyLmgiCisgI2luY2x1ZGUgImNocm9tZS9jaHJvbWVfY2xlYW5lci90 ZXN0L3Rlc3RfdXRpbC5oIgorICNpbmNsdWRlICJjaHJvbWUvY2hyb21lX2NsZWFuZXIvemlwX2Fy Y2hpdmVyL3NhbmRib3hlZF96aXBfYXJjaGl2ZXIuaCIKKyAjaW5jbHVkZSAiY29tcG9uZW50cy9j aHJvbWVfY2xlYW5lci9wdWJsaWMvY29uc3RhbnRzL2NvbnN0YW50cy5oIgorQEAgLTMxMSw4ICsz MTIsMTQgQEAgY2xhc3MgQ2xlYW5lclRlc3QKKyAKKyAgIHZvaWQgRXhwZWN0RXhpdENvZGUoY29u c3QgYmFzZTo6Q29tbWFuZExpbmUmIGNvbW1hbmRfbGluZSwKKyAgICAgICAgICAgICAgICAgICAg ICAgaW50IGV4cGVjdGVkX2V4aXRfY29kZSkgeworLSAgICBiYXNlOjpQcm9jZXNzIHByb2Nlc3Mo CistICAgICAgICBiYXNlOjpMYXVuY2hQcm9jZXNzKGNvbW1hbmRfbGluZSwgYmFzZTo6TGF1bmNo T3B0aW9ucygpKSk7CisrICAgIGNocm9tZV9jbGVhbmVyOjpDaGlsZFByb2Nlc3NMb2dnZXIgbG9n Z2VyOworKyAgICBBU1NFUlRfVFJVRShsb2dnZXIuSW5pdGlhbGl6ZSgpKTsKKysKKysgICAgYmFz ZTo6TGF1bmNoT3B0aW9ucyBvcHRpb25zOworKyAgICBsb2dnZXIuVXBkYXRlTGF1bmNoT3B0aW9u cygmb3B0aW9ucyk7CisrICAgIGJhc2U6OlByb2Nlc3MgcHJvY2VzcyhiYXNlOjpMYXVuY2hQcm9j ZXNzKGNvbW1hbmRfbGluZSwgb3B0aW9ucykpOworKyAgICBpZiAoIXByb2Nlc3MuSXNWYWxpZCgp KQorKyAgICAgIGxvZ2dlci5EdW1wTG9ncygpOworICAgICBBU1NFUlRfVFJVRShwcm9jZXNzLklz VmFsaWQoKSk7CisgCisgICAgIGludCBleGl0X2NvZGUgPSAtMTsKK0BAIC0zMjAsNyArMzI3LDgg QEAgY2xhc3MgQ2xlYW5lclRlc3QKKyAgICAgICAgIGJhc2U6OlRpbWVEZWx0YTo6RnJvbU1pbnV0 ZXMoMTApLCAmZXhpdF9jb2RlKTsKKyAgICAgRVhQRUNUX1RSVUUoZXhpdGVkX3dpdGhpbl90aW1l b3V0KTsKKyAgICAgRVhQRUNUX0VRKGV4cGVjdGVkX2V4aXRfY29kZSwgZXhpdF9jb2RlKTsKKy0K KysgICAgaWYgKCFleGl0ZWRfd2l0aGluX3RpbWVvdXQgfHwgZXhwZWN0ZWRfZXhpdF9jb2RlICE9 IGV4aXRfY29kZSkKKysgICAgICBsb2dnZXIuRHVtcExvZ3MoKTsKKyAgICAgaWYgKCFleGl0ZWRf d2l0aGluX3RpbWVvdXQpCisgICAgICAgcHJvY2Vzcy5UZXJtaW5hdGUoLypleGl0X2NvZGU9Ki8t MSwgLyp3YWl0PSovZmFsc2UpOworICAgfQorZGlmZiAtLWdpdCBhL2Nocm9tZS9jaHJvbWVfY2xl YW5lci90ZXN0L3NlY3VyZV9kbGxfbG9hZGluZ190ZXN0LmNjIGIvY2hyb21lL2Nocm9tZV9jbGVh bmVyL3Rlc3Qvc2VjdXJlX2RsbF9sb2FkaW5nX3Rlc3QuY2MKK2luZGV4IGZlMTBjNDQzNDZiNWUu LjkyZTJkYjE5ZmRlNmMgMTAwNjQ0CistLS0gYS9jaHJvbWUvY2hyb21lX2NsZWFuZXIvdGVzdC9z ZWN1cmVfZGxsX2xvYWRpbmdfdGVzdC5jYworKysrIGIvY2hyb21lL2Nocm9tZV9jbGVhbmVyL3Rl c3Qvc2VjdXJlX2RsbF9sb2FkaW5nX3Rlc3QuY2MKK0BAIC04LDIyICs4LDE3IEBACisgCisgI2lu Y2x1ZGUgPG1lbW9yeT4KKyAjaW5jbHVkZSA8c2V0PgorLSNpbmNsdWRlIDxzdHJpbmc+CisgI2lu Y2x1ZGUgPHZlY3Rvcj4KKyAKKyAjaW5jbHVkZSAiYmFzZS9iYXNlX3BhdGhzLmgiCisgI2luY2x1 ZGUgImJhc2UvY29tbWFuZF9saW5lLmgiCisgI2luY2x1ZGUgImJhc2UvZmlsZXMvZmlsZV9wYXRo LmgiCistI2luY2x1ZGUgImJhc2UvZmlsZXMvZmlsZV91dGlsLmgiCistI2luY2x1ZGUgImJhc2Uv ZmlsZXMvc2NvcGVkX3RlbXBfZGlyLmgiCisgI2luY2x1ZGUgImJhc2UvbG9nZ2luZy5oIgorICNp bmNsdWRlICJiYXNlL3BhdGhfc2VydmljZS5oIgorICNpbmNsdWRlICJiYXNlL3Byb2Nlc3MvbGF1 bmNoLmgiCisgI2luY2x1ZGUgImJhc2UvcHJvY2Vzcy9wcm9jZXNzLmgiCisgI2luY2x1ZGUgImJh c2Uvc3RyaW5ncy9zdHJpbmcxNi5oIgorICNpbmNsdWRlICJiYXNlL3N0cmluZ3Mvc3RyaW5nX251 bWJlcl9jb252ZXJzaW9ucy5oIgorLSNpbmNsdWRlICJiYXNlL3N0cmluZ3Mvc3RyaW5nX3BpZWNl LmgiCistI2luY2x1ZGUgImJhc2Uvc3RyaW5ncy9zdHJpbmdfc3BsaXQuaCIKKyAjaW5jbHVkZSAi YmFzZS9zdHJpbmdzL3N0cmluZ191dGlsLmgiCisgI2luY2x1ZGUgImJhc2Uvc3luY2hyb25pemF0 aW9uL3dhaXRhYmxlX2V2ZW50LmgiCisgI2luY2x1ZGUgImJhc2UvdGVzdC90ZXN0X3RpbWVvdXRz LmgiCitAQCAtMzIsNTQgKzI3LDE2IEBACisgI2luY2x1ZGUgImNocm9tZS9jaHJvbWVfY2xlYW5l ci9jb25zdGFudHMvY2hyb21lX2NsZWFuZXJfc3dpdGNoZXMuaCIKKyAjaW5jbHVkZSAiY2hyb21l L2Nocm9tZV9jbGVhbmVyL29zL2luaGVyaXRhYmxlX2V2ZW50LmgiCisgI2luY2x1ZGUgImNocm9t ZS9jaHJvbWVfY2xlYW5lci9vcy9wcm9jZXNzLmgiCisrI2luY2x1ZGUgImNocm9tZS9jaHJvbWVf Y2xlYW5lci90ZXN0L2NoaWxkX3Byb2Nlc3NfbG9nZ2VyLmgiCisgI2luY2x1ZGUgImNocm9tZS9j aHJvbWVfY2xlYW5lci90ZXN0L3Rlc3RfdXRpbC5oIgorICNpbmNsdWRlICJjb21wb25lbnRzL2No cm9tZV9jbGVhbmVyL3B1YmxpYy9jb25zdGFudHMvY29uc3RhbnRzLmgiCisgI2luY2x1ZGUgImNv bXBvbmVudHMvY2hyb21lX2NsZWFuZXIvdGVzdC90ZXN0X25hbWVfaGVscGVyLmgiCisgI2luY2x1 ZGUgInRlc3RpbmcvZ3Rlc3QvaW5jbHVkZS9ndGVzdC9ndGVzdC5oIgorIAorLW5hbWVzcGFjZSB7 CistCistdm9pZCBQcmludENoaWxkUHJvY2Vzc0xvZ3MoY29uc3QgYmFzZTo6RmlsZVBhdGgmIGxv Z19kaXIsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFzZTo6U3RyaW5nUGllY2UxNiBm aWxlX25hbWUpIHsKKy0gIGJhc2U6OnN0cmluZzE2IGJhc2VfbmFtZTsKKy0gIGlmIChmaWxlX25h bWUgPT0gTCJzb2Z0d2FyZV9yZXBvcnRlcl90b29sIikgeworLSAgICBiYXNlX25hbWUgPSBMInNv ZnR3YXJlX3JlcG9ydGVyX3Rvb2wiOworLSAgfSBlbHNlIGlmIChmaWxlX25hbWUgPT0gTCJjaHJv bWVfY2xlYW51cF90b29sIikgeworLSAgICBiYXNlX25hbWUgPSBMImNocm9tZV9jbGVhbnVwIjsK Ky0gIH0gZWxzZSB7CistICAgIExPRyhFUlJPUikgPDwgIlVua25vd24gZmlsZSBuYW1lICIgPDwg ZmlsZV9uYW1lLmRhdGEoKTsKKy0gICAgcmV0dXJuOworLSAgfQorLQorLSAgYmFzZTo6RmlsZVBh dGggbG9nX3BhdGggPSBsb2dfZGlyLkFwcGVuZChiYXNlX25hbWUpLkFkZEV4dGVuc2lvbihMImxv ZyIpOworLQorLSAgaWYgKCFiYXNlOjpQYXRoRXhpc3RzKGxvZ19wYXRoKSkgeworLSAgICBMT0co RVJST1IpIDw8ICJDaGlsZCBwcm9jZXNzIGxvZyBmaWxlIGRvZXNuJ3QgZXhpc3QiOworLSAgICBy ZXR1cm47CistICB9CistCistICAvLyBDb2xsZWN0IHRoZSBjaGlsZCBwcm9jZXNzIGxvZyBmaWxl LCBhbmQgZHVtcCB0aGUgY29udGVudHMsIHRvIGhlbHAKKy0gIC8vIGRlYnVnZ2luZyBmYWlsdXJl cy4KKy0gIHN0ZDo6c3RyaW5nIGxvZ19maWxlX2NvbnRlbnRzOworLSAgaWYgKCFiYXNlOjpSZWFk RmlsZVRvU3RyaW5nKGxvZ19wYXRoLCAmbG9nX2ZpbGVfY29udGVudHMpKSB7CistICAgIExPRyhF UlJPUikgPDwgIkZhaWxlZCB0byByZWFkIGNoaWxkIHByb2Nlc3MgbG9nIGZpbGUiOworLSAgICBy ZXR1cm47CistICB9CistCistICBzdGQ6OnZlY3RvcjxiYXNlOjpTdHJpbmdQaWVjZT4gbGluZXMg PQorLSAgICAgIGJhc2U6OlNwbGl0U3RyaW5nUGllY2UobG9nX2ZpbGVfY29udGVudHMsICJcbiIs IGJhc2U6OlRSSU1fV0hJVEVTUEFDRSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJh c2U6OlNQTElUX1dBTlRfTk9ORU1QVFkpOworLSAgTE9HKEVSUk9SKSA8PCAiRHVtcGluZyBjaGls ZCBwcm9jZXNzIGxvZ3MiOworLSAgZm9yIChjb25zdCBhdXRvJiBsaW5lIDogbGluZXMpIHsKKy0g ICAgTE9HKEVSUk9SKSA8PCAiQ2hpbGQgcHJvY2VzczogIiA8PCBsaW5lOworLSAgfQorLX0KKy0K Ky19ICAvLyBuYW1lc3BhY2UKKy0KKyBjbGFzcyBTZWN1cmVETExMb2FkaW5nVGVzdCA6IHB1Ymxp YyB0ZXN0aW5nOjpUZXN0V2l0aFBhcmFtPGJhc2U6OnN0cmluZzE2PiB7CisgIHByb3RlY3RlZDoK KyAgIHZvaWQgU2V0VXAoKSBvdmVycmlkZSB7CisrICAgIEFTU0VSVF9UUlVFKGNoaWxkX3Byb2Nl c3NfbG9nZ2VyXy5Jbml0aWFsaXplKCkpOworICAgICBiYXNlOjpGaWxlUGF0aCBvdXRfZGlyOwor ICAgICBBU1NFUlRfVFJVRShiYXNlOjpQYXRoU2VydmljZTo6R2V0KGJhc2U6OkRJUl9FWEUsICZv dXRfZGlyKSk7CisgICAgIGV4ZV9wYXRoXyA9IG91dF9kaXIuQXBwZW5kKEdldFBhcmFtKCkgKyBM Ii5leGUiKTsKK0BAIC0xMDQsOCArNjEsNiBAQCBjbGFzcyBTZWN1cmVETExMb2FkaW5nVGVzdCA6 IHB1YmxpYyB0ZXN0aW5nOjpUZXN0V2l0aFBhcmFtPGJhc2U6OnN0cmluZzE2PiB7CisgICAgICAg ICBiYXNlOjpOdW1iZXJUb1N0cmluZzE2KAorICAgICAgICAgICAgIGJhc2U6Ondpbjo6SGFuZGxl VG9VaW50MzIoaW5pdF9kb25lX25vdGlmaWVyLT5oYW5kbGUoKSkpKTsKKyAgICAgY29tbWFuZF9s aW5lLkFwcGVuZFN3aXRjaChjaHJvbWVfY2xlYW5lcjo6a0xvYWRFbXB0eURMTFN3aXRjaCk7Cist ICAgIGNvbW1hbmRfbGluZS5BcHBlbmRTd2l0Y2hQYXRoKGNocm9tZV9jbGVhbmVyOjprVGVzdExv Z2dpbmdQYXRoU3dpdGNoLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2df ZGlyLkdldFBhdGgoKSk7CisgCisgI2lmICFCVUlMREZMQUcoSVNfT0ZGSUNJQUxfQ0hST01FX0NM RUFORVJfQlVJTEQpCisgICAgIGlmIChkaXNhYmxlX3NlY3VyZV9kbGxfbG9hZGluZykKK0BAIC0x MjEsNyArNzYsMTIgQEAgY2xhc3MgU2VjdXJlRExMTG9hZGluZ1Rlc3QgOiBwdWJsaWMgdGVzdGlu Zzo6VGVzdFdpdGhQYXJhbTxiYXNlOjpzdHJpbmcxNj4geworIAorICAgICBiYXNlOjpMYXVuY2hP cHRpb25zIG9wdGlvbnM7CisgICAgIG9wdGlvbnMuaGFuZGxlc190b19pbmhlcml0LnB1c2hfYmFj ayhpbml0X2RvbmVfbm90aWZpZXItPmhhbmRsZSgpKTsKKysgICAgY2hpbGRfcHJvY2Vzc19sb2dn ZXJfLlVwZGF0ZUxhdW5jaE9wdGlvbnMoJm9wdGlvbnMpOworICAgICBiYXNlOjpQcm9jZXNzIHBy b2Nlc3MgPSBiYXNlOjpMYXVuY2hQcm9jZXNzKGNvbW1hbmRfbGluZSwgb3B0aW9ucyk7CisrICAg IGlmICghcHJvY2Vzcy5Jc1ZhbGlkKCkpIHsKKysgICAgICBjaGlsZF9wcm9jZXNzX2xvZ2dlcl8u RHVtcExvZ3MoKTsKKysgICAgICByZXR1cm4gcHJvY2VzczsKKysgICAgfQorIAorICAgICAvLyBN YWtlIHN1cmUgdGhlIHByb2Nlc3MgaGFzIGZpbmlzaGVkIGl0cyBpbml0aWFsaXphdGlvbiAoaW5j bHVkaW5nIGxvYWRpbmcKKyAgICAgLy8gRExMcykuIEFsc28gY2hlY2sgdGhlIHByb2Nlc3MgaGFu ZGxlIGluIGNhc2UgaXQgZXhpdHMgd2l0aCBhbiBlcnJvci4KK0BAIC0xMzYsNyArOTYsNyBAQCBj bGFzcyBTZWN1cmVETExMb2FkaW5nVGVzdCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0V2l0aFBhcmFt PGJhc2U6OnN0cmluZzE2PiB7CisgICAgICAgUExPR19JRihFUlJPUiwgITo6R2V0RXhpdENvZGVQ cm9jZXNzKHByb2Nlc3MuSGFuZGxlKCksICZleGl0X2NvZGUpKTsKKyAgICAgICBBRERfRkFJTFVS RSgpIDw8ICJQcm9jZXNzIGV4aXRlZCB3aXRoICIgPDwgZXhpdF9jb2RlCisgICAgICAgICAgICAg ICAgICAgICA8PCAiIGJlZm9yZSBzaWduYWxsaW5nIGluaXRfZG9uZV9ub3RpZmllciI7CistICAg ICAgUHJpbnRDaGlsZFByb2Nlc3NMb2dzKGxvZ19kaXIuR2V0UGF0aCgpLCBHZXRQYXJhbSgpKTsK KysgICAgICBjaGlsZF9wcm9jZXNzX2xvZ2dlcl8uRHVtcExvZ3MoKTsKKyAgICAgfSBlbHNlIHsK KyAgICAgICBFWFBFQ1RfRVEod2FpdF9yZXN1bHQsIFdBSVRfT0JKRUNUXzApOworICAgICB9CitA QCAtMTU3LDYgKzExNyw3IEBAIGNsYXNzIFNlY3VyZURMTExvYWRpbmdUZXN0IDogcHVibGljIHRl c3Rpbmc6OlRlc3RXaXRoUGFyYW08YmFzZTo6c3RyaW5nMTY+IHsKKyAgIH0KKyAKKyAgcHJpdmF0 ZToKKysgIGNocm9tZV9jbGVhbmVyOjpDaGlsZFByb2Nlc3NMb2dnZXIgY2hpbGRfcHJvY2Vzc19s b2dnZXJfOworICAgYmFzZTo6RmlsZVBhdGggZXhlX3BhdGhfOworICAgYmFzZTo6RmlsZVBhdGgg ZW1wdHlfZGxsX3BhdGhfOworIH07CmRpZmYgLS1naXQgYS9zcmNwa2dzL2VsZWN0cm9uNy9maWxl cy9wYXRjaGVzL2Nocm9taXVtLTAwNC11cHN0cmVhbV91c2VfY2hpbGRwcm9jZXNzbG9nZ2VyLnBh dGNoLnBhdGNoIGIvc3JjcGtncy9lbGVjdHJvbjcvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS0wMDQt dXBzdHJlYW1fdXNlX2NoaWxkcHJvY2Vzc2xvZ2dlci5wYXRjaC5wYXRjaApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNmEyYTQ4OTNkNDQKLS0tIC9kZXYvbnVsbAorKysg Yi9zcmNwa2dzL2VsZWN0cm9uNy9maWxlcy9wYXRjaGVzL2Nocm9taXVtLTAwNC11cHN0cmVhbV91 c2VfY2hpbGRwcm9jZXNzbG9nZ2VyLnBhdGNoLnBhdGNoCkBAIC0wLDAgKzEsMTg2IEBACitGcm9t IDg5MDk1NmJlMTQ5NmI2MjU5NjdkZjBiYmY2MjBlOGZjNGFlZmIzOTAgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCitGcm9tOiBKb2UgTWFzb24gPGpvZW5vdGNoYXJsZXNAZ29vZ2xlLmNvbT4KK0Rh dGU6IFdlZCwgNCBEZWMgMjAxOSAxODoyMjozNCArMDAwMAorU3ViamVjdDogW1BBVENIXSBVc2Ug Q2hpbGRQcm9jZXNzTG9nZ2VyIGluIEZpbGVSZW1vdmVyUXVhcmFudGluZVRlc3QgYW5kCisgU2Fu ZGJveGVkU2hvcnRjdXRQYXJzZXJUZXN0CitNSU1FLVZlcnNpb246IDEuMAorQ29udGVudC1UeXBl OiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CitDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4 Yml0CisKK1I94oCLcHJvYmVyZ2UKKworKGNoZXJyeSBwaWNrZWQgZnJvbSBjb21taXQgODE0NTgz ODM0ZWJmMzVlZGU1ZGFkMGJhMzU3NDM0Mzg1MWIxYThiZCkKKworQnVnOiAxMDMwMzMzCitDaGFu Z2UtSWQ6IEk2NmI5YjNkYzczOTgwZThlZDAzZWUzN2Q4OWViMTcyYjUzMzBjOTEzCitSZXZpZXdl ZC1vbjogaHR0cHM6Ly9jaHJvbWl1bS1yZXZpZXcuZ29vZ2xlc291cmNlLmNvbS9jL2Nocm9taXVt L3NyYy8rLzE5NDgyMzUKK0NvbW1pdC1RdWV1ZTogSm9lIE1hc29uIDxqb2Vub3RjaGFybGVzQGNo cm9taXVtLm9yZz4KK1Jldmlld2VkLWJ5OiBwcm9iZXJnZSA8cHJvYmVyZ2VAY2hyb21pdW0ub3Jn PgorQ3ItT3JpZ2luYWwtQ29tbWl0LVBvc2l0aW9uOiByZWZzL2hlYWRzL21hc3RlckB7IzcyMTE5 M30KK1Jldmlld2VkLW9uOiBodHRwczovL2Nocm9taXVtLXJldmlldy5nb29nbGVzb3VyY2UuY29t L2MvY2hyb21pdW0vc3JjLysvMTk0ODEwMgorUmV2aWV3ZWQtYnk6IEpvZSBNYXNvbiA8am9lbm90 Y2hhcmxlc0BjaHJvbWl1bS5vcmc+CitDci1Db21taXQtUG9zaXRpb246IHJlZnMvYnJhbmNoLWhl YWRzLzM5MDRAeyM5MTV9CitDci1CcmFuY2hlZC1Gcm9tOiA2NzU5NjhhOGM2NTdhM2JkOWMxYzJj MjBjNWQyOTM1NTc3YmJjNWU2LXJlZnMvaGVhZHMvbWFzdGVyQHsjNjkzOTU0fQorLS0tCisgLi4u L29zL2ZpbGVfcmVtb3Zlcl91bml0dGVzdC5jYyAgICAgICAgICAgICAgIHwgMzkgKysrKysrKysr KysrKysrKy0tLQorIC4uLi9wYXJzZXJzL3Nob3J0Y3V0X3BhcnNlci9icm9rZXIvQlVJTEQuZ24g ICB8ICAxICsKKyAuLi4vc2FuZGJveGVkX3Nob3J0Y3V0X3BhcnNlcl91bml0dGVzdC5jYyAgICAg fCAzNSArKysrKysrKysrKysrKystLQorIDMgZmlsZXMgY2hhbmdlZCwgNjcgaW5zZXJ0aW9ucygr KSwgOCBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2Nocm9tZS9jaHJvbWVfY2xlYW5lci9v cy9maWxlX3JlbW92ZXJfdW5pdHRlc3QuY2MgYi9jaHJvbWUvY2hyb21lX2NsZWFuZXIvb3MvZmls ZV9yZW1vdmVyX3VuaXR0ZXN0LmNjCitpbmRleCA1MmM5YjRmMWM1MDg5Li5jNTc5ODNlODNjNmI5 IDEwMDY0NAorLS0tIGEvY2hyb21lL2Nocm9tZV9jbGVhbmVyL29zL2ZpbGVfcmVtb3Zlcl91bml0 dGVzdC5jYworKysrIGIvY2hyb21lL2Nocm9tZV9jbGVhbmVyL29zL2ZpbGVfcmVtb3Zlcl91bml0 dGVzdC5jYworQEAgLTMwLDYgKzMwLDcgQEAKKyAjaW5jbHVkZSAiY2hyb21lL2Nocm9tZV9jbGVh bmVyL29zL3ByZV9mZXRjaGVkX3BhdGhzLmgiCisgI2luY2x1ZGUgImNocm9tZS9jaHJvbWVfY2xl YW5lci9vcy9zeXN0ZW1fdXRpbC5oIgorICNpbmNsdWRlICJjaHJvbWUvY2hyb21lX2NsZWFuZXIv b3Mvd2hpdGVsaXN0ZWRfZGlyZWN0b3J5LmgiCisrI2luY2x1ZGUgImNocm9tZS9jaHJvbWVfY2xl YW5lci90ZXN0L2NoaWxkX3Byb2Nlc3NfbG9nZ2VyLmgiCisgI2luY2x1ZGUgImNocm9tZS9jaHJv bWVfY2xlYW5lci90ZXN0L2ZpbGVfcmVtb3Zlcl90ZXN0X3V0aWwuaCIKKyAjaW5jbHVkZSAiY2hy b21lL2Nocm9tZV9jbGVhbmVyL3Rlc3QvcmVib290X2RlbGV0aW9uX2hlbHBlci5oIgorICNpbmNs dWRlICJjaHJvbWUvY2hyb21lX2NsZWFuZXIvdGVzdC9yZXNvdXJjZXMvZ3JpdC90ZXN0X3Jlc291 cmNlcy5oIgorQEAgLTM5OCwyMCArMzk5LDQ3IEBAIGNvbnN0ZXhwciB3Y2hhcl90IGtUZXN0RXhw ZWN0QXJjaGl2ZU5hbWVbXSA9CisgICAgIEwidGVtcF9maWxlLmV4ZV8iCisgICAgIEwiQTU5MUE2 RDQwQkY0MjA0MDRBMDExNzMzQ0ZCN0IxOTBENjJDNjVCRjBCQ0RBMzJCNTdCMjc3RDlBRDlGMTQ2 RS56aXAiOworIAorK2NsYXNzIExvZ2dlZFppcEFyY2hpdmVyU2FuZGJveFNldHVwSG9va3MgOiBw dWJsaWMgWmlwQXJjaGl2ZXJTYW5kYm94U2V0dXBIb29rcyB7CisrIHB1YmxpYzoKKysgIGV4cGxp Y2l0IExvZ2dlZFppcEFyY2hpdmVyU2FuZGJveFNldHVwSG9va3MoCisrICAgICAgc2NvcGVkX3Jl ZnB0cjxNb2pvVGFza1J1bm5lcj4gbW9qb190YXNrX3J1bm5lciwKKysgICAgICBiYXNlOjpPbmNl Q2xvc3VyZSBjb25uZWN0aW9uX2Vycm9yX2hhbmRsZXIsCisrICAgICAgY2hyb21lX2NsZWFuZXI6 OkNoaWxkUHJvY2Vzc0xvZ2dlciogY2hpbGRfcHJvY2Vzc19sb2dnZXIpCisrICAgICAgOiBaaXBB cmNoaXZlclNhbmRib3hTZXR1cEhvb2tzKHN0ZDo6bW92ZShtb2pvX3Rhc2tfcnVubmVyKSwKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjptb3ZlKGNvbm5lY3Rpb25f ZXJyb3JfaGFuZGxlcikpLAorKyAgICAgICAgY2hpbGRfcHJvY2Vzc19sb2dnZXJfKGNoaWxkX3By b2Nlc3NfbG9nZ2VyKSB7fQorKworKyAgUmVzdWx0Q29kZSBVcGRhdGVTYW5kYm94UG9saWN5KHNh bmRib3g6OlRhcmdldFBvbGljeSogcG9saWN5LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGJhc2U6OkNvbW1hbmRMaW5lKiBjb21tYW5kX2xpbmUpIG92ZXJyaWRlIHsKKysgICAg Y2hpbGRfcHJvY2Vzc19sb2dnZXJfLT5VcGRhdGVTYW5kYm94UG9saWN5KHBvbGljeSk7CisrICAg IHJldHVybiBaaXBBcmNoaXZlclNhbmRib3hTZXR1cEhvb2tzOjpVcGRhdGVTYW5kYm94UG9saWN5 KHBvbGljeSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgY29tbWFuZF9saW5lKTsKKysgIH0KKysKKysgcHJpdmF0ZToKKysgIGNo cm9tZV9jbGVhbmVyOjpDaGlsZFByb2Nlc3NMb2dnZXIqIGNoaWxkX3Byb2Nlc3NfbG9nZ2VyXzsK Kyt9OworKworIGNsYXNzIEZpbGVSZW1vdmVyUXVhcmFudGluZVRlc3QgOiBwdWJsaWMgYmFzZTo6 TXVsdGlQcm9jZXNzVGVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVi bGljIDo6dGVzdGluZzo6V2l0aFBhcmFtSW50ZXJmYWNlPGJvb2w+IHsKKyAgcHVibGljOgorICAg dm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsKKyAgICAgdXNlX3JlYm9vdF9yZW1vdmFsXyA9IEdldFBh cmFtKCk7CisgCisrICAgIEFTU0VSVF9UUlVFKGNoaWxkX3Byb2Nlc3NfbG9nZ2VyXy5Jbml0aWFs aXplKCkpOworKworICAgICBzY29wZWRfcmVmcHRyPE1vam9UYXNrUnVubmVyPiBtb2pvX3Rhc2tf cnVubmVyID0gTW9qb1Rhc2tSdW5uZXI6OkNyZWF0ZSgpOworLSAgICBaaXBBcmNoaXZlclNhbmRi b3hTZXR1cEhvb2tzIHNldHVwX2hvb2tzKAorKyAgICBMb2dnZWRaaXBBcmNoaXZlclNhbmRib3hT ZXR1cEhvb2tzIHNldHVwX2hvb2tzKAorICAgICAgICAgbW9qb190YXNrX3J1bm5lci5nZXQoKSwg YmFzZTo6QmluZE9uY2UoW10geworICAgICAgICAgICBGQUlMKCkgPDwgIlppcEFyY2hpdmVyIHNh bmRib3ggY29ubmVjdGlvbiBlcnJvciI7CistICAgICAgICB9KSk7CistICAgIEFTU0VSVF9FUShS RVNVTFRfQ09ERV9TVUNDRVNTLAorLSAgICAgICAgICAgICAgU3RhcnRTYW5kYm94VGFyZ2V0KE1h a2VDbWRMaW5lKCJGaWxlUmVtb3ZlclF1YXJhbnRpbmVUYXJnZXRNYWluIiksCistICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgJnNldHVwX2hvb2tzLCBTYW5kYm94VHlwZTo6a1Rlc3Qp KTsKKysgICAgICAgIH0pLAorKyAgICAgICAgJmNoaWxkX3Byb2Nlc3NfbG9nZ2VyXyk7CisrICAg IFJlc3VsdENvZGUgcmVzdWx0X2NvZGUgPQorKyAgICAgICAgU3RhcnRTYW5kYm94VGFyZ2V0KE1h a2VDbWRMaW5lKCJGaWxlUmVtb3ZlclF1YXJhbnRpbmVUYXJnZXRNYWluIiksCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgJnNldHVwX2hvb2tzLCBTYW5kYm94VHlwZTo6a1Rlc3QpOworKyAg ICBpZiAocmVzdWx0X2NvZGUgIT0gUkVTVUxUX0NPREVfU1VDQ0VTUykKKysgICAgICBjaGlsZF9w cm9jZXNzX2xvZ2dlcl8uRHVtcExvZ3MoKTsKKysgICAgQVNTRVJUX0VRKFJFU1VMVF9DT0RFX1NV Q0NFU1MsIHJlc3VsdF9jb2RlKTsKKyAKKyAgICAgQVNTRVJUX1RSVUUodGVtcF9kaXJfLkNyZWF0 ZVVuaXF1ZVRlbXBEaXIoKSk7CisgCitAQCAtNDQ3LDYgKzQ3NSw3IEBAIGNsYXNzIEZpbGVSZW1v dmVyUXVhcmFudGluZVRlc3QgOiBwdWJsaWMgYmFzZTo6TXVsdGlQcm9jZXNzVGVzdCwKKyAgIGJh c2U6OnRlc3Q6OlNpbmdsZVRocmVhZFRhc2tFbnZpcm9ubWVudCB0YXNrX2Vudmlyb25tZW50XzsK KyAgIGJhc2U6OlNjb3BlZFRlbXBEaXIgdGVtcF9kaXJfOworICAgc3RkOjp1bmlxdWVfcHRyPEZp bGVSZW1vdmVyPiBmaWxlX3JlbW92ZXJfOworKyAgY2hyb21lX2NsZWFuZXI6OkNoaWxkUHJvY2Vz c0xvZ2dlciBjaGlsZF9wcm9jZXNzX2xvZ2dlcl87CisgfTsKKyAKKyB9ICAvLyBuYW1lc3BhY2UK K2RpZmYgLS1naXQgYS9jaHJvbWUvY2hyb21lX2NsZWFuZXIvcGFyc2Vycy9zaG9ydGN1dF9wYXJz ZXIvYnJva2VyL0JVSUxELmduIGIvY2hyb21lL2Nocm9tZV9jbGVhbmVyL3BhcnNlcnMvc2hvcnRj dXRfcGFyc2VyL2Jyb2tlci9CVUlMRC5nbgoraW5kZXggYmM3YmE4MTg4YzgzYi4uMDllZDA3Yjc2 MWE0ZSAxMDA2NDQKKy0tLSBhL2Nocm9tZS9jaHJvbWVfY2xlYW5lci9wYXJzZXJzL3Nob3J0Y3V0 X3BhcnNlci9icm9rZXIvQlVJTEQuZ24KKysrKyBiL2Nocm9tZS9jaHJvbWVfY2xlYW5lci9wYXJz ZXJzL3Nob3J0Y3V0X3BhcnNlci9icm9rZXIvQlVJTEQuZ24KK0BAIC02Nyw2ICs2Nyw3IEBAIHNv dXJjZV9zZXQoInVuaXR0ZXN0X3NvdXJjZXMiKSB7CisgICAgICIvL2Nocm9tZS9jaHJvbWVfY2xl YW5lci9wYXJzZXJzL3Nob3J0Y3V0X3BhcnNlcjpzYW5kYm94ZWRfbG5rX3BhcnNlcl90ZXN0X3V0 aWwiLAorICAgICAiLy9jaHJvbWUvY2hyb21lX2NsZWFuZXIvcGFyc2Vycy9zaG9ydGN1dF9wYXJz ZXIvdGFyZ2V0Omxua19wYXJzZXIiLAorICAgICAiLy9jaHJvbWUvY2hyb21lX2NsZWFuZXIvcGFy c2Vycy90YXJnZXQ6cGFyc2VyX3NhbmRib3hfdGFyZ2V0IiwKKysgICAgIi8vY2hyb21lL2Nocm9t ZV9jbGVhbmVyL3Rlc3Q6dGVzdF91dGlsIiwKKyAgICAgIi8vbW9qby9wdWJsaWMvY3BwL2JpbmRp bmdzOmJpbmRpbmdzIiwKKyAgICAgIi8vc2FuZGJveC93aW46c2FuZGJveCIsCisgICAgICIvL3Rl c3RpbmcvZ3Rlc3QiLAorZGlmZiAtLWdpdCBhL2Nocm9tZS9jaHJvbWVfY2xlYW5lci9wYXJzZXJz L3Nob3J0Y3V0X3BhcnNlci9icm9rZXIvc2FuZGJveGVkX3Nob3J0Y3V0X3BhcnNlcl91bml0dGVz dC5jYyBiL2Nocm9tZS9jaHJvbWVfY2xlYW5lci9wYXJzZXJzL3Nob3J0Y3V0X3BhcnNlci9icm9r ZXIvc2FuZGJveGVkX3Nob3J0Y3V0X3BhcnNlcl91bml0dGVzdC5jYworaW5kZXggNjRhYzkxZWQ5 MjAxNi4uNGMwMzNmMjFjNzdjMyAxMDA2NDQKKy0tLSBhL2Nocm9tZS9jaHJvbWVfY2xlYW5lci9w YXJzZXJzL3Nob3J0Y3V0X3BhcnNlci9icm9rZXIvc2FuZGJveGVkX3Nob3J0Y3V0X3BhcnNlcl91 bml0dGVzdC5jYworKysrIGIvY2hyb21lL2Nocm9tZV9jbGVhbmVyL3BhcnNlcnMvc2hvcnRjdXRf cGFyc2VyL2Jyb2tlci9zYW5kYm94ZWRfc2hvcnRjdXRfcGFyc2VyX3VuaXR0ZXN0LmNjCitAQCAt MTgsNiArMTgsNyBAQAorICNpbmNsdWRlICJjaHJvbWUvY2hyb21lX2NsZWFuZXIvcGFyc2Vycy9i cm9rZXIvc2FuZGJveF9zZXR1cF9ob29rcy5oIgorICNpbmNsdWRlICJjaHJvbWUvY2hyb21lX2Ns ZWFuZXIvcGFyc2Vycy9zaG9ydGN1dF9wYXJzZXIvc2FuZGJveGVkX2xua19wYXJzZXJfdGVzdF91 dGlsLmgiCisgI2luY2x1ZGUgImNocm9tZS9jaHJvbWVfY2xlYW5lci9wYXJzZXJzL3RhcmdldC9z YW5kYm94X3NldHVwLmgiCisrI2luY2x1ZGUgImNocm9tZS9jaHJvbWVfY2xlYW5lci90ZXN0L2No aWxkX3Byb2Nlc3NfbG9nZ2VyLmgiCisgI2luY2x1ZGUgIm1vam8vcHVibGljL2NwcC9iaW5kaW5n cy9pbnRlcmZhY2VfcmVxdWVzdC5oIgorICNpbmNsdWRlICJtb2pvL3B1YmxpYy9jcHAvc3lzdGVt L3BsYXRmb3JtX2hhbmRsZS5oIgorICNpbmNsdWRlICJzYW5kYm94L3dpbi9zcmMvc2FuZGJveF9m YWN0b3J5LmgiCitAQCAtMzEsNiArMzIsMjYgQEAgY29uc3RleHByIHVuc2lnbmVkIGludCBrRGly UXVhbnRpdHkgPSA1OworIAorIGNvbnN0IGJhc2U6OnN0cmluZzE2IGtMbmtBcmd1bWVudHMgPSBM Ii1hIC1iIC1jIC1kIEdlbmVyaWNFeGFtcGxlIjsKKyAKKytjbGFzcyBMb2dnZWRQYXJzZXJTYW5k Ym94U2V0dXBIb29rcyA6IHB1YmxpYyBQYXJzZXJTYW5kYm94U2V0dXBIb29rcyB7CisrIHB1Ymxp YzoKKysgIGV4cGxpY2l0IExvZ2dlZFBhcnNlclNhbmRib3hTZXR1cEhvb2tzKAorKyAgICAgIHNj b3BlZF9yZWZwdHI8TW9qb1Rhc2tSdW5uZXI+IG1vam9fdGFza19ydW5uZXIsCisrICAgICAgYmFz ZTo6T25jZUNsb3N1cmUgY29ubmVjdGlvbl9lcnJvcl9oYW5kbGVyLAorKyAgICAgIGNocm9tZV9j bGVhbmVyOjpDaGlsZFByb2Nlc3NMb2dnZXIqIGNoaWxkX3Byb2Nlc3NfbG9nZ2VyKQorKyAgICAg IDogUGFyc2VyU2FuZGJveFNldHVwSG9va3Moc3RkOjptb3ZlKG1vam9fdGFza19ydW5uZXIpLAor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjptb3ZlKGNvbm5lY3Rpb25fZXJy b3JfaGFuZGxlcikpLAorKyAgICAgICAgY2hpbGRfcHJvY2Vzc19sb2dnZXJfKGNoaWxkX3Byb2Nl c3NfbG9nZ2VyKSB7fQorKworKyAgUmVzdWx0Q29kZSBVcGRhdGVTYW5kYm94UG9saWN5KHNhbmRi b3g6OlRhcmdldFBvbGljeSogcG9saWN5LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGJhc2U6OkNvbW1hbmRMaW5lKiBjb21tYW5kX2xpbmUpIG92ZXJyaWRlIHsKKysgICAgY2hp bGRfcHJvY2Vzc19sb2dnZXJfLT5VcGRhdGVTYW5kYm94UG9saWN5KHBvbGljeSk7CisrICAgIHJl dHVybiBQYXJzZXJTYW5kYm94U2V0dXBIb29rczo6VXBkYXRlU2FuZGJveFBvbGljeShwb2xpY3ks IGNvbW1hbmRfbGluZSk7CisrICB9CisrCisrIHByaXZhdGU6CisrICBjaHJvbWVfY2xlYW5lcjo6 Q2hpbGRQcm9jZXNzTG9nZ2VyKiBjaGlsZF9wcm9jZXNzX2xvZ2dlcl87CisrfTsKKysKKyB9ICAv LyBuYW1lc3BhY2UKKyAKKyBjbGFzcyBTYW5kYm94ZWRTaG9ydGN1dFBhcnNlclRlc3QgOiBwdWJs aWMgYmFzZTo6TXVsdGlQcm9jZXNzVGVzdCB7CitAQCAtNDAsMTQgKzYxLDIwIEBAIGNsYXNzIFNh bmRib3hlZFNob3J0Y3V0UGFyc2VyVGVzdCA6IHB1YmxpYyBiYXNlOjpNdWx0aVByb2Nlc3NUZXN0 IHsKKyAgICAgICAgIHRlbXBfZGlyc193aXRoX2Nocm9tZV9sbmtfKGtEaXJRdWFudGl0eSkge30K KyAKKyAgIHZvaWQgU2V0VXAoKSBvdmVycmlkZSB7CisrICAgIEFTU0VSVF9UUlVFKGNoaWxkX3By b2Nlc3NfbG9nZ2VyXy5Jbml0aWFsaXplKCkpOworKworICAgICBtb2pvX3Rhc2tfcnVubmVyXyA9 IE1vam9UYXNrUnVubmVyOjpDcmVhdGUoKTsKKyAgICAgUGFyc2VyU2FuZGJveFNldHVwSG9va3Mg c2V0dXBfaG9va3MoCisgICAgICAgICBtb2pvX3Rhc2tfcnVubmVyXy5nZXQoKSwKKyAgICAgICAg IGJhc2U6OkJpbmRPbmNlKFtdIHsgRkFJTCgpIDw8ICJQYXJzZXIgc2FuZGJveCBjb25uZWN0aW9u IGVycm9yIjsgfSkpOworLSAgICBBU1NFUlRfRVEoCistICAgICAgICBSRVNVTFRfQ09ERV9TVUND RVNTLAorKworKyAgICBSZXN1bHRDb2RlIHJlc3VsdF9jb2RlID0KKyAgICAgICAgIFN0YXJ0U2Fu ZGJveFRhcmdldChNYWtlQ21kTGluZSgiU2FuZGJveGVkU2hvcnRjdXRQYXJzZXJUYXJnZXRNYWlu IiksCistICAgICAgICAgICAgICAgICAgICAgICAgICAgJnNldHVwX2hvb2tzLCBTYW5kYm94VHlw ZTo6a1Rlc3QpKTsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAmc2V0dXBfaG9va3MsIFNh bmRib3hUeXBlOjprVGVzdCk7CisrICAgIGlmIChyZXN1bHRfY29kZSAhPSBSRVNVTFRfQ09ERV9T VUNDRVNTKQorKyAgICAgIGNoaWxkX3Byb2Nlc3NfbG9nZ2VyXy5EdW1wTG9ncygpOworKyAgICBB U1NFUlRfRVEoUkVTVUxUX0NPREVfU1VDQ0VTUywgcmVzdWx0X2NvZGUpOworKworICAgICBwYXJz ZXJfcHRyXyA9IHNldHVwX2hvb2tzLlRha2VQYXJzZXJQdHIoKTsKKyAgICAgc2hvcnRjdXRfcGFy c2VyXyA9IHN0ZDo6bWFrZV91bmlxdWU8U2FuZGJveGVkU2hvcnRjdXRQYXJzZXI+KAorICAgICAg ICAgbW9qb190YXNrX3J1bm5lcl8uZ2V0KCksIHBhcnNlcl9wdHJfLmdldCgpKTsKK0BAIC05OCw2 ICsxMjUsOCBAQCBjbGFzcyBTYW5kYm94ZWRTaG9ydGN1dFBhcnNlclRlc3QgOiBwdWJsaWMgYmFz ZTo6TXVsdGlQcm9jZXNzVGVzdCB7CisgICBiYXNlOjpGaWxlUGF0aCBub3RfbG5rX2ZpbGVfcGF0 aF87CisgCisgICBiYXNlOjp0ZXN0OjpUYXNrRW52aXJvbm1lbnQgdGFza19lbnZpcm9ubWVudF87 CisrCisrICBjaHJvbWVfY2xlYW5lcjo6Q2hpbGRQcm9jZXNzTG9nZ2VyIGNoaWxkX3Byb2Nlc3Nf bG9nZ2VyXzsKKyB9OworIAorIE1VTFRJUFJPQ0VTU19URVNUX01BSU4oU2FuZGJveGVkU2hvcnRj dXRQYXJzZXJUYXJnZXRNYWluKSB7CmRpZmYgLS1naXQgYS9zcmNwa2dzL2VsZWN0cm9uNy9maWxl cy9wYXRjaGVzL2Nocm9taXVtLTAwNS11cHN0cmVhbS1jaHJvbWl1bV92ZXJzaW9uLnBhdGNoLnBh dGNoIGIvc3JjcGtncy9lbGVjdHJvbjcvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS0wMDUtdXBzdHJl YW0tY2hyb21pdW1fdmVyc2lvbi5wYXRjaC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwMDAwMC4uNjViOGVmNGRmMGEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2Vs ZWN0cm9uNy9maWxlcy9wYXRjaGVzL2Nocm9taXVtLTAwNS11cHN0cmVhbS1jaHJvbWl1bV92ZXJz aW9uLnBhdGNoLnBhdGNoCkBAIC0wLDAgKzEsMjYgQEAKK0Zyb20gYzExMDliNzA3YjFlZGE1ZDk4 ZWIyZWQ2YmQ3NDA4M2JjMzUyZjQ4MiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IGNo cm9tZS1yZWxlYXNlLWJvdCA8Y2hyb21lLXJlbGVhc2UtYm90QGNocm9taXVtLm9yZz4KK0RhdGU6 IEZyaSwgNiBEZWMgMjAxOSAwMTowOTo1MCArMDAwMAorU3ViamVjdDogW1BBVENIXSBJbmNyZW1l bnRpbmcgVkVSU0lPTiB0byA3OC4wLjM5MDQuMTMwCisKK1RCUj1nb3ZpbmRAY2hyb21pdW0ub3Jn CisKK0NoYW5nZS1JZDogSWI2NzU2NTNlMjYwNWNmMmMxNWViZGJkMTMyMDQ2NWIwOGE0OTk5NGQK K1Jldmlld2VkLW9uOiBodHRwczovL2Nocm9taXVtLXJldmlldy5nb29nbGVzb3VyY2UuY29tL2Mv Y2hyb21pdW0vc3JjLysvMTk1NDcwOQorUmV2aWV3ZWQtYnk6IENocm9tZSBSZWxlYXNlIEJvdCAo TFVDSSkgPGNocm9tZS1vZmZpY2lhbC1icmFuY2hlckBjaG9wcy1zZXJ2aWNlLWFjY291bnRzLmlh bS5nc2VydmljZWFjY291bnQuY29tPgorQ3ItQ29tbWl0LVBvc2l0aW9uOiByZWZzL2JyYW5jaC1o ZWFkcy8zOTA0QHsjOTE3fQorQ3ItQnJhbmNoZWQtRnJvbTogNjc1OTY4YThjNjU3YTNiZDljMWMy YzIwYzVkMjkzNTU3N2JiYzVlNi1yZWZzL2hlYWRzL21hc3RlckB7IzY5Mzk1NH0KKy0tLQorIGNo cm9tZS9WRVJTSU9OIHwgMiArLQorIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBk ZWxldGlvbigtKQorCitkaWZmIC0tZ2l0IGEvY2hyb21lL1ZFUlNJT04gYi9jaHJvbWUvVkVSU0lP TgoraW5kZXggN2E0MzgzYTFjY2I3Zi4uNTBmODg3Zjc0NjIyNyAxMDA2NDQKKy0tLSBhL2Nocm9t ZS9WRVJTSU9OCisrKysgYi9jaHJvbWUvVkVSU0lPTgorQEAgLTEsNCArMSw0IEBACisgTUFKT1I9 NzgKKyBNSU5PUj0wCisgQlVJTEQ9MzkwNAorLVBBVENIPTEwOAorK1BBVENIPTEzMApkaWZmIC0t Z2l0IGEvc3JjcGtncy9lbGVjdHJvbjcvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1jaHJvbWl1bV9h dGtfb3B0aW9uYWwucGF0Y2gucGF0Y2ggYi9zcmNwa2dzL2VsZWN0cm9uNy9maWxlcy9wYXRjaGVz L2Nocm9taXVtLWNocm9taXVtX2F0a19vcHRpb25hbC5wYXRjaC5wYXRjaApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMjdiNTYyNTFlYzMKLS0tIC9kZXYvbnVsbAorKysg Yi9zcmNwa2dzL2VsZWN0cm9uNy9maWxlcy9wYXRjaGVzL2Nocm9taXVtLWNocm9taXVtX2F0a19v cHRpb25hbC5wYXRjaC5wYXRjaApAQCAtMCwwICsxLDE3IEBACitkaWZmIC0tZ2l0IGEvYnVpbGQv Y29uZmlnL3VpLmduaSBiL2J1aWxkL2NvbmZpZy91aS5nbmkKK2luZGV4IDU0N2I0MmYuLjk2NmIw MGMgMTAwNjQ0CistLS0gYS9idWlsZC9jb25maWcvdWkuZ25pCisrKysgYi9idWlsZC9jb25maWcv dWkuZ25pCitAQCAtNTEsOCArNTEsMTAgQEAgaWYgKHVzZV9vem9uZSkgeworICAgdXNlX2dsaWIg PSBmYWxzZQorIH0KKworLSMgV2hldGhlciB0byB1c2UgYXRrLCB0aGUgQWNjZXNzaWJpbGl0eSBU b29sS2l0IGxpYnJhcnkKKy11c2VfYXRrID0gaXNfZGVza3RvcF9saW51eCAmJiB1c2VfeDExCisr ZGVjbGFyZV9hcmdzKCkgeworKyAgIyBXaGV0aGVyIHRvIHVzZSBhdGssIHRoZSBBY2Nlc3NpYmls aXR5IFRvb2xLaXQgbGlicmFyeQorKyAgdXNlX2F0ayA9IGlzX2Rlc2t0b3BfbGludXggJiYgdXNl X3gxMQorK30KKyAjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQorICMgICBQTEVBU0UgRE8gTk9UIEFERCBNT1JFIEZMQUdTIFRPIFRISVMgRklMRQorICMgPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CmRpZmYgLS1naXQgYS9z cmNwa2dzL2VsZWN0cm9uNy9maWxlcy9wYXRjaGVzL2Nocm9taXVtLWNsYW5nMTBfZ2xzbGFuZy5w YXRjaC5wYXRjaCBiL3NyY3BrZ3MvZWxlY3Ryb243L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tY2xh bmcxMF9nbHNsYW5nLnBhdGNoLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwMDAwLi45MWVmODRjYTdlNgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZWxlY3Ryb243 L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tY2xhbmcxMF9nbHNsYW5nLnBhdGNoLnBhdGNoCkBAIC0w LDAgKzEsMjUgQEAKK0Zyb20gMjRiM2U4Mzg0ZTkzZjNlNzNiNmFhMTRlYTAwYTMwNTc0MTEyZjli YSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFJlaWQgS2xlY2tuZXIgPHJua0Bnb29n bGUuY29tPgorRGF0ZTogV2VkLCA0IERlYyAyMDE5IDE0OjA5OjAzIC0wODAwCitTdWJqZWN0OiBb UEFUQ0hdIFJlbW92ZSBnbHNsYW5nOjpwb29sX2FsbG9jYXRvcjo6c2V0QWxsb2NhdG9yCisKK1RQ b29sQWxsb2NhdG9yIGlzIG5vdCBjb3B5IGFzc2lnbmFibGUsIHNvIHRoaXMgc2V0dGVyIGNvdWxk IG5ldmVyIGhhdmUKK2JlZW4gdXNlZC4gQWZ0ZXIgYSByZWNlbnQgY2hhbmdlICg4NzhhMjRlZTIp LCBuZXcgdmVyc2lvbnMgb2YgQ2xhbmcKK3JlamVjdCB0aGlzIGNvZGUgb3V0cmlnaHQuCistLS0K KyBnbHNsYW5nL0luY2x1ZGUvUG9vbEFsbG9jLmggfCAxIC0KKyAxIGZpbGUgY2hhbmdlZCwgMSBk ZWxldGlvbigtKQorCitkaWZmIC0tZ2l0IGEvZ2xzbGFuZy9JbmNsdWRlL1Bvb2xBbGxvYy5oIGIv Z2xzbGFuZy9JbmNsdWRlL1Bvb2xBbGxvYy5oCitpbmRleCAwZTIzN2E2YTIuLmI4ZWNjYjg4MyAx MDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L2dsc2xhbmcvc3JjL2dsc2xhbmcvSW5jbHVkZS9Qb29s QWxsb2MuaAorKysrIGIvdGhpcmRfcGFydHkvZ2xzbGFuZy9zcmMvZ2xzbGFuZy9JbmNsdWRlL1Bv b2xBbGxvYy5oCitAQCAtMzA0LDcgKzMwNCw2IEBAIGNsYXNzIHBvb2xfYWxsb2NhdG9yIHsKKyAg ICAgc2l6ZV90eXBlIG1heF9zaXplKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8c2l6ZV90 eXBlPigtMSkgLyBzaXplb2YoVCk7IH0KKyAgICAgc2l6ZV90eXBlIG1heF9zaXplKGludCBzaXpl KSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxzaXplX3R5cGU+KC0xKSAvIHNpemU7IH0KKyAK Ky0gICAgdm9pZCBzZXRBbGxvY2F0b3IoVFBvb2xBbGxvY2F0b3IqIGEpIHsgYWxsb2NhdG9yID0g KmE7IH0KKyAgICAgVFBvb2xBbGxvY2F0b3ImIGdldEFsbG9jYXRvcigpIGNvbnN0IHsgcmV0dXJu IGFsbG9jYXRvcjsgfQorIAorIHByb3RlY3RlZDoKKwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9lbGVj dHJvbjcvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1maXgtY29tbWFuZGxpbmUtaW5jbHVkZS5wYXRj aCBiL3NyY3BrZ3MvZWxlY3Ryb243L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tZml4LWNvbW1hbmRs aW5lLWluY2x1ZGUucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAu LjE1ZGE3OTRjYmJhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9lbGVjdHJvbjcvZmlsZXMv cGF0Y2hlcy9jaHJvbWl1bS1maXgtY29tbWFuZGxpbmUtaW5jbHVkZS5wYXRjaApAQCAtMCwwICsx LDQ0IEBACitFbGVjdHJvbiBwYXRjaGVzIHRoZSBmaWxlIHRvIHVzZSBiYXNlOjpDb21tYW5kTGlu ZSwgYnV0IGZvcmdvdCB0byBpbmNsdWRlCit0aGUgbmVjZXNzYXJ5IGhlYWRlciBmb3IgaXQuCist LS0gYS90aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9wbGF0Zm9ybS9ncmFwaGljcy9jYW52YXNf Y29sb3JfcGFyYW1zLmNjLm9yaWcJMjAyMC0wNC0yNyAxMzo0OTo0MS40MDg1OTI5NDEgKzAyMDAK KysrKyBiL3RoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL3BsYXRmb3JtL2dyYXBoaWNzL2NhbnZh c19jb2xvcl9wYXJhbXMuY2MJMjAyMC0wNC0yNyAxMzo0OTo1My44NDEwNzE4MzAgKzAyMDAKK0BA IC00LDYgKzQsNyBAQAorIAorICNpbmNsdWRlICJ0aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9w bGF0Zm9ybS9ncmFwaGljcy9jYW52YXNfY29sb3JfcGFyYW1zLmgiCisgCisrI2luY2x1ZGUgImJh c2UvY29tbWFuZF9saW5lLmgiCisgI2luY2x1ZGUgImNjL3BhaW50L3NraWFfcGFpbnRfY2FudmFz LmgiCisgI2luY2x1ZGUgImNvbXBvbmVudHMvdml6L2NvbW1vbi9yZXNvdXJjZXMvcmVzb3VyY2Vf Zm9ybWF0X3V0aWxzLmgiCisgI2luY2x1ZGUgInRoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL3Bs YXRmb3JtL3J1bnRpbWVfZW5hYmxlZF9mZWF0dXJlcy5oIgorLS0tIGEvdGhpcmRfcGFydHkvYmxp bmsvcHVibGljL3BsYXRmb3JtL3dlYl9ydGNfcnRwX3NvdXJjZS5oLm9yaWcJMjAyMC0wNC0yNyAx NDoxNjowNS4zMjMwODU4MTQgKzAyMDAKKysrKyBiL3RoaXJkX3BhcnR5L2JsaW5rL3B1YmxpYy9w bGF0Zm9ybS93ZWJfcnRjX3J0cF9zb3VyY2UuaAkyMDIwLTA0LTI3IDE0OjE2OjE3LjI3OTQ4MDgz OCArMDIwMAorQEAgLTcsNiArNyw3IEBACisgCisgI2luY2x1ZGUgImJhc2Uvb3B0aW9uYWwuaCIK KyAjaW5jbHVkZSAidGhpcmRfcGFydHkvYmxpbmsvcHVibGljL3BsYXRmb3JtL3dlYl9jb21tb24u aCIKKysjaW5jbHVkZSA8bWVtb3J5PgorIAorIG5hbWVzcGFjZSBiYXNlIHsKKyBjbGFzcyBUaW1l VGlja3M7CistLS0gYS9jaHJvbWUvYnJvd3Nlci9jaHJvbWVfY29udGVudF9icm93c2VyX2NsaWVu dC5jYy5vcmlnCTIwMjAtMDQtMjcgMTY6MTY6MjcuMjkxMjA4Mzk0ICswMjAwCisrKysgYi9jaHJv bWUvYnJvd3Nlci9jaHJvbWVfY29udGVudF9icm93c2VyX2NsaWVudC5jYwkyMDIwLTA0LTI3IDE2 OjE2OjQ5LjI4Mzk4NDIxNyArMDIwMAorQEAgLTI4OTYsNiArMjg5Niw4IEBACisgICAgIGNvbnN0 IHN0ZDo6c3RyaW5nJiBmcmFtZV9uYW1lLAorICAgICBXaW5kb3dPcGVuRGlzcG9zaXRpb24gZGlz cG9zaXRpb24sCisgICAgIGNvbnN0IGJsaW5rOjptb2pvbTo6V2luZG93RmVhdHVyZXMmIGZlYXR1 cmVzLAorKyAgICBjb25zdCBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4mIGFkZGl0aW9uYWxfZmVh dHVyZXMsCisrICAgIGNvbnN0IHNjb3BlZF9yZWZwdHI8bmV0d29yazo6UmVzb3VyY2VSZXF1ZXN0 Qm9keT4mIGJvZHksCisgICAgIGJvb2wgdXNlcl9nZXN0dXJlLAorICAgICBib29sIG9wZW5lcl9z dXBwcmVzc2VkLAorICAgICBib29sKiBub19qYXZhc2NyaXB0X2FjY2VzcykgeworLS0tIGEvY2hy b21lL2Jyb3dzZXIvY2hyb21lX2NvbnRlbnRfYnJvd3Nlcl9jbGllbnQuaC5vcmlnCTIwMjAtMDQt MjcgMTY6MTU6NDEuOTMyMzU5NzUzICswMjAwCisrKysgYi9jaHJvbWUvYnJvd3Nlci9jaHJvbWVf Y29udGVudF9icm93c2VyX2NsaWVudC5oCTIwMjAtMDQtMjcgMTY6MTY6MDkuNzk4MzE4ODQ1ICsw MjAwCitAQCAtMzAzLDYgKzMwMyw4IEBACisgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBz dGQ6OnN0cmluZyYgZnJhbWVfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIFdpbmRvd09w ZW5EaXNwb3NpdGlvbiBkaXNwb3NpdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0 IGJsaW5rOjptb2pvbTo6V2luZG93RmVhdHVyZXMmIGZlYXR1cmVzLAorKyAgICAgICAgICAgICAg ICAgICAgICAgY29uc3Qgc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+JiBhZGRpdGlvbmFsX2ZlYXR1 cmVzLAorKyAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2NvcGVkX3JlZnB0cjxuZXR3b3Jr OjpSZXNvdXJjZVJlcXVlc3RCb2R5PiYgYm9keSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGJv b2wgdXNlcl9nZXN0dXJlLAorICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBvcGVuZXJfc3Vw cHJlc3NlZCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wqIG5vX2phdmFzY3JpcHRfYWNj ZXNzKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZWxlY3Ryb243L2ZpbGVzL3BhdGNo ZXMvY2hyb21pdW0tZml4LXN1Y2Vzcy1kZWZpbml0aW9uLnBhdGNoIGIvc3JjcGtncy9lbGVjdHJv bjcvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1maXgtc3VjZXNzLWRlZmluaXRpb24ucGF0Y2gKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjRkYzAyNDY5M2U2Ci0tLSAvZGV2 L251bGwKKysrIGIvc3JjcGtncy9lbGVjdHJvbjcvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1maXgt c3VjZXNzLWRlZmluaXRpb24ucGF0Y2gKQEAgLTAsMCArMSwxNSBAQAorWDExLmggZGVmaW5lcyBh IG1hY3JvIGNhbGxlZCAiU3VjY2VzcyIsIHdoaWNoIGlzIDAuIFRoaXMgYnJlYWtzIGFuIGVudW0K K3RoYXQgaXMgZ2VuZXJhdGVkIGluIENocm9taXVtIHRoYXQgaGFzIGEgbWVtYmVyICJTdWNjZXNz Iiwgc28gdW5kZWZpbmUKK2l0LgorLS0tIGEvY2hyb21lL2Jyb3dzZXIvdWkvbGliZ3RrdWkvc2Vs ZWN0X2ZpbGVfZGlhbG9nX2ltcGxfa2RlLmNjLm9yaWcJMjAyMC0wNC0yNyAxODo0MjoxNS40NTcy OTc1NDQgKzAyMDAKKysrKyBiL2Nocm9tZS9icm93c2VyL3VpL2xpYmd0a3VpL3NlbGVjdF9maWxl X2RpYWxvZ19pbXBsX2tkZS5jYwkyMDIwLTA0LTI3IDE4OjQyOjIxLjc2MDQ1NDMwNCArMDIwMAor QEAgLTI0LDcgKzI0LDkgQEAKKyAjaW5jbHVkZSAiYmFzZS90YXNrL3Bvc3RfdGFzay5oIgorICNp bmNsdWRlICJiYXNlL3Rhc2svdGFza190cmFpdHMuaCIKKyAjaW5jbHVkZSAiYmFzZS90aHJlYWRp bmcvdGhyZWFkX3Jlc3RyaWN0aW9ucy5oIgorKyN1bmRlZiBTdWNjZXNzCisgI2luY2x1ZGUgImNo cm9tZS9icm93c2VyL3VpL2xpYmd0a3VpL3NlbGVjdF9maWxlX2RpYWxvZ19pbXBsLmgiCisrI2Rl ZmluZSBTdWNjZXNzIDAKKyAjaW5jbHVkZSAiY29udGVudC9wdWJsaWMvYnJvd3Nlci9icm93c2Vy X3RocmVhZC5oIgorICNpbmNsdWRlICJ1aS9hdXJhL3dpbmRvd190cmVlX2hvc3QuaCIKKyAjaW5j bHVkZSAidWkvYmFzZS9sMTBuL2wxMG5fdXRpbC5oIgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9lbGVj dHJvbjcvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1nbl9ib290c3RyYXBfbmluamEucGF0Y2ggYi9z cmNwa2dzL2VsZWN0cm9uNy9maWxlcy9wYXRjaGVzL2Nocm9taXVtLWduX2Jvb3RzdHJhcF9uaW5q YS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZTlmOTVmMDlj YWUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2VsZWN0cm9uNy9maWxlcy9wYXRjaGVzL2No cm9taXVtLWduX2Jvb3RzdHJhcF9uaW5qYS5wYXRjaApAQCAtMCwwICsxLDMyIEBACitQYXRjaCBi eSBNaWNoYWVsIEZvcm5leSA8bWZvcm5leUBtZm9ybmV5Lm9yZz4KKworQWxyZWFkeSBtZXJnZWQg aHR0cHM6Ly9jaHJvbWl1bS1yZXZpZXcuZ29vZ2xlc291cmNlLmNvbS9jL2Nocm9taXVtL3NyYy8r LzE5NzU0NTMKKworLS0tIGEvdG9vbHMvZ24vYm9vdHN0cmFwL2Jvb3RzdHJhcC5weQorKysrIGIv dG9vbHMvZ24vYm9vdHN0cmFwL2Jvb3RzdHJhcC5weQorQEAgLTcwLDYgKzcwLDcgQEAKKyAgIG91 dF9kaXIgPSBvcy5wYXRoLmpvaW4oU1JDX1JPT1QsIGJ1aWxkX3JlbCkKKyAgIGduX3BhdGggPSBv cHRpb25zLm91dHB1dCBvciBvcy5wYXRoLmpvaW4ob3V0X2RpciwgJ2duJykKKyAgIGduX2J1aWxk X2RpciA9IG9zLnBhdGguam9pbihvdXRfZGlyLCAnZ25fYnVpbGQnKQorKyAgbmluamFfYmluYXJ5 ID0gb3MuZW52aXJvbi5nZXQoJ05JTkpBJywgJ25pbmphJykKKyAKKyAgICMgVE9ETyh0aG9tYXNh bmRlcnNvbik6IFJlbW92ZSB0aGlzIG9uY2UgVWJ1bnR1IFRydXN0eSByZWFjaGVzIEVPTCwgb3Ig d2hlbgorICAgIyBDaHJvbWl1bSdzIGluZnJhc3RydWN0dXJlIGlzIHVwZ3JhZGVkIGZyb20gVHJ1 c3R5IHRvIFhlbmlhbCwgd2hpY2hldmVyIGNvbWVzCitAQCAtOTAsNyArOTEsNyBAQAorICAgICAg ICAgICAgICAgb3MuZW52aXJvbi5nZXQoJ0NGTEFHUycsICcnKS5zcGxpdCgpICsKKyAgICAgICAg ICAgICAgIG9zLmVudmlyb24uZ2V0KCdDWFhGTEFHUycsICcnKS5zcGxpdCgpKSwKKyAgICAgICBd KSArICdcbicpCistICAgIHN1YnByb2Nlc3MuY2hlY2tfY2FsbChbJ25pbmphJywgJy1DJywgbGli Y3h4X2Rpcl0pCisrICAgIHN1YnByb2Nlc3MuY2hlY2tfY2FsbChbbmluamFfYmluYXJ5LCAnLUMn LCBsaWJjeHhfZGlyXSkKKyAgICAgc2h1dGlsLmNvcHkyKG9zLnBhdGguam9pbihnbl9idWlsZF9k aXIsICdsaWJjKysuZ24uc28nKSwgb3V0X2RpcikKKyAKKyAgICAgZGVmIGFwcGVuZF90b19lbnYo dmFyLCB2YWxzKToKK0BAIC0xMjAsNyArMTIxLDcgQEAKKyAgIHNodXRpbC5jb3B5MigKKyAgICAg ICBvcy5wYXRoLmpvaW4oQk9PVFNUUkFQX0RJUiwgJ2xhc3RfY29tbWl0X3Bvc2l0aW9uLmgnKSwg Z25fYnVpbGRfZGlyKQorICAgc3VicHJvY2Vzcy5jaGVja19jYWxsKAorLSAgICAgIFsnbmluamEn LCAnLUMnLCBnbl9idWlsZF9kaXIsICdnbicsICctdycsICdkdXBidWlsZD1lcnInXSkKKysgICAg ICBbbmluamFfYmluYXJ5LCAnLUMnLCBnbl9idWlsZF9kaXIsICctdycsICdkdXBidWlsZD1lcnIn LCAnZ24nXSkKKyAgIHNodXRpbC5jb3B5Mihvcy5wYXRoLmpvaW4oZ25fYnVpbGRfZGlyLCAnZ24n KSwgZ25fcGF0aCkKKyAKKyAgIGlmIG5vdCBvcHRpb25zLnNraXBfZ2VuZXJhdGVfYnVpbGRmaWxl czoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZWxlY3Ryb243L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0t aWN1X3UxNl9uZXh0LnBhdGNoLnBhdGNoIGIvc3JjcGtncy9lbGVjdHJvbjcvZmlsZXMvcGF0Y2hl cy9jaHJvbWl1bS1pY3VfdTE2X25leHQucGF0Y2gucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwMDAuLjRlZDRjMDM4ZGU3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtn cy9lbGVjdHJvbjcvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1pY3VfdTE2X25leHQucGF0Y2gucGF0 Y2gKQEAgLTAsMCArMSwxMyBAQAorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2JsaW5rL3JlbmRl cmVyL2NvcmUvZG9tL2RvY3VtZW50LmNjIGIvdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvY29y ZS9kb20vZG9jdW1lbnQuY2MKK2luZGV4IDQ0ZDVhNDkuLmMyYTdhMmYgMTAwNjQ0CistLS0gYS90 aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9jb3JlL2RvbS9kb2N1bWVudC5jYworKysrIGIvdGhp cmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvY29yZS9kb20vZG9jdW1lbnQuY2MKK0BAIC02MjE2LDcg KzYyMTYsNyBAQCBzdGF0aWMgUGFyc2VRdWFsaWZpZWROYW1lUmVzdWx0IFBhcnNlUXVhbGlmaWVk TmFtZUludGVybmFsKAorIAorICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxlbmd0aDspIHsK KyAgICAgVUNoYXIzMiBjOworLSAgICBVMTZfTkVYVChjaGFyYWN0ZXJzLCBpLCBsZW5ndGgsIGMp CisrICAgIFUxNl9ORVhUKGNoYXJhY3RlcnMsIGksIGxlbmd0aCwgYyk7CisgICAgIGlmIChjID09 ICc6JykgeworICAgICAgIGlmIChzYXdfY29sb24pCisgICAgICAgICByZXR1cm4gUGFyc2VRdWFs aWZpZWROYW1lUmVzdWx0KGtRTk11bHRpcGxlQ29sb25zKTsKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv ZWxlY3Ryb243L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tbGliY19tYWxsb2MucGF0Y2ggYi9zcmNw a2dzL2VsZWN0cm9uNy9maWxlcy9wYXRjaGVzL2Nocm9taXVtLWxpYmNfbWFsbG9jLnBhdGNoCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4yN2NkMmNlZmM0NgotLS0gL2Rl di9udWxsCisrKyBiL3NyY3BrZ3MvZWxlY3Ryb243L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tbGli Y19tYWxsb2MucGF0Y2gKQEAgLTAsMCArMSwyNiBAQAorLS0tIGEvYmFzZS9wcm9jZXNzL21lbW9y eV9saW51eC5jYy5vcmlnCTIwMTctMDktMTUgMDg6NDE6NDMuMDAwMDAwMDAwICswMDAwCisrKysg Yi9iYXNlL3Byb2Nlc3MvbWVtb3J5X2xpbnV4LmNjCTIwMTctMDktMTUgMDg6NDQ6MzkuODA0OTk1 NDY5ICswMDAwCitAQCAtMjEsNiArMjEsMTIgQEAKKyAjaW5jbHVkZSAidGhpcmRfcGFydHkvdGNt YWxsb2MvY2hyb21pdW0vc3JjL2dwZXJmdG9vbHMvdGNtYWxsb2MuaCIKKyAjZW5kaWYKKyAKKysj aWYgZGVmaW5lZChMSUJDX0dMSUJDKQorK2V4dGVybiAiQyIgeworK2V4dGVybiB2b2lkICpfX2xp YmNfbWFsbG9jKHNpemVfdCBzaXplKTsKKyt9CisrI2VuZGlmCisrCisgbmFtZXNwYWNlIGJhc2Ug eworIAorIHNpemVfdCBnX29vbV9zaXplID0gMFU7CistLS0gYS9iYXNlL3Byb2Nlc3MvbWVtb3J5 X2xpbnV4LmNjLm9yaWcJMjAxNy0wOS0xNSAwODo0Njo1NS4wMDAwMDAwMDAgKzAwMDAKKysrKyBi L2Jhc2UvcHJvY2Vzcy9tZW1vcnlfbGludXguY2MJMjAxNy0wOS0xNSAwODo1MTozNC40MjIwMTY4 NTggKzAwMDAKK0BAIC0xMDcsNyArMTA3LDcgQEAKKyAgICAgKCFkZWZpbmVkKExJQkNfR0xJQkMp ICYmICFkZWZpbmVkKFVTRV9UQ01BTExPQykpCisgICAqcmVzdWx0ID0gbWFsbG9jKHNpemUpOwor ICNlbGlmIGRlZmluZWQoTElCQ19HTElCQykgJiYgIWRlZmluZWQoVVNFX1RDTUFMTE9DKQorLSAg KnJlc3VsdCA9IF9fbGliY19tYWxsb2Moc2l6ZSk7CisrICAqcmVzdWx0ID0gOjpfX2xpYmNfbWFs bG9jKHNpemUpOworICNlbGlmIGRlZmluZWQoVVNFX1RDTUFMTE9DKQorICAgKnJlc3VsdCA9IHRj X21hbGxvY19za2lwX25ld19oYW5kbGVyKHNpemUpOworICNlbmRpZgpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9lbGVjdHJvbjcvZmlsZXMvcGF0Y2hlcy9lbGVjdHJvbi1BZGQtYS1zY3JpcHQtdG8tbGlz dC1wYXRjaC10YXJnZXRzLnBhdGNoLnBhdGNoIGIvc3JjcGtncy9lbGVjdHJvbjcvZmlsZXMvcGF0 Y2hlcy9lbGVjdHJvbi1BZGQtYS1zY3JpcHQtdG8tbGlzdC1wYXRjaC10YXJnZXRzLnBhdGNoLnBh dGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi45MTZkYmE5ZGMzYgot LS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZWxlY3Ryb243L2ZpbGVzL3BhdGNoZXMvZWxlY3Ry b24tQWRkLWEtc2NyaXB0LXRvLWxpc3QtcGF0Y2gtdGFyZ2V0cy5wYXRjaC5wYXRjaApAQCAtMCww ICsxLDQyIEBACitGcm9tIGZmNDEyMmYyMzZiNzBjMjcyYzc0NmQwYzMzNmNkYmQ1ODhkNzhjZDEg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBFbHZpcyBQcmFuc2tldmljaHVzIDxlbHZp c0BtYWdpYy5pbz4KK0RhdGU6IFRodSwgMTIgRGVjIDIwMTkgMTY6MTI6MTggLTA1MDAKK1N1Ympl Y3Q6IFtQQVRDSF0gQWRkIGEgc2NyaXB0IHRvIGxpc3QgcGF0Y2ggdGFyZ2V0cworCistLS0KKyBz Y3JpcHQvbGlzdF9wYXRjaF90YXJnZXRzLnB5IHwgMjMgKysrKysrKysrKysrKysrKysrKysrKysK KyAxIGZpbGUgY2hhbmdlZCwgMjMgaW5zZXJ0aW9ucygrKQorIGNyZWF0ZSBtb2RlIDEwMDc1NSBz Y3JpcHQvbGlzdF9wYXRjaF90YXJnZXRzLnB5CisKK2RpZmYgLS1naXQgYS9zY3JpcHQvbGlzdF9w YXRjaF90YXJnZXRzLnB5IGIvc2NyaXB0L2xpc3RfcGF0Y2hfdGFyZ2V0cy5weQorbmV3IGZpbGUg bW9kZSAxMDA3NTUKK2luZGV4IDAwMDAwMDAwMC4uNTUxNzNiYWM5CistLS0gL2Rldi9udWxsCisr KysgYi9zY3JpcHQvbGlzdF9wYXRjaF90YXJnZXRzLnB5CitAQCAtMCwwICsxLDIzIEBACisrIyEv dXNyL2Jpbi9lbnYgcHl0aG9uCisrCisraW1wb3J0IGFyZ3BhcnNlCisraW1wb3J0IGpzb24KKysK KysKKytkZWYgcGFyc2VfYXJncygpOgorKyAgcGFyc2VyID0gYXJncGFyc2UuQXJndW1lbnRQYXJz ZXIoZGVzY3JpcHRpb249J0FwcGx5IEVsZWN0cm9uIHBhdGNoZXMnKQorKyAgcGFyc2VyLmFkZF9h cmd1bWVudCgnY29uZmlnJywgbmFyZ3M9JysnLAorKyAgICAgICAgICAgICAgICAgICAgICB0eXBl PWFyZ3BhcnNlLkZpbGVUeXBlKCdyJyksCisrICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J3Bh dGNoZXNcJyBjb25maWcocykgaW4gdGhlIEpTT04gZm9ybWF0JykKKysgIHJldHVybiBwYXJzZXIu cGFyc2VfYXJncygpCisrCisrCisrZGVmIG1haW4oKToKKysgIGNvbmZpZ3MgPSBwYXJzZV9hcmdz KCkuY29uZmlnCisrICBmb3IgY29uZmlnX2pzb24gaW4gY29uZmlnczoKKysgICAgZm9yIHBhdGNo X2RpciwgcmVwbyBpbiBqc29uLmxvYWQoY29uZmlnX2pzb24pLml0ZXJpdGVtcygpOgorKyAgICAg IHByaW50KHJlcG8pCisrCisrCisraWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKKysgIG1haW4o KQorLS0gCisyLjIzLjAKKwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9lbGVjdHJvbjcvZmlsZXMvcGF0 Y2hlcy9lbGVjdHJvbi1CdWlsZC1maXhlcy5wYXRjaC5wYXRjaCBiL3NyY3BrZ3MvZWxlY3Ryb243 L2ZpbGVzL3BhdGNoZXMvZWxlY3Ryb24tQnVpbGQtZml4ZXMucGF0Y2gucGF0Y2gKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmE1OTFjMmVkZjYyCi0tLSAvZGV2L251bGwK KysrIGIvc3JjcGtncy9lbGVjdHJvbjcvZmlsZXMvcGF0Y2hlcy9lbGVjdHJvbi1CdWlsZC1maXhl cy5wYXRjaC5wYXRjaApAQCAtMCwwICsxLDU3IEBACitkaWZmIC0tZ2l0IGEvYnVpbGQvYXJncy9h bGwuZ24gYi9idWlsZC9hcmdzL2FsbC5nbgoraW5kZXggOGJiYjg2ZTI4Li44NDc2ZDA5ZWEgMTAw NjQ0CistLS0gYS9idWlsZC9hcmdzL2FsbC5nbgorKysrIGIvYnVpbGQvYXJncy9hbGwuZ24KK0BA IC0xLDUgKzEsNCBAQAorIGlzX2VsZWN0cm9uX2J1aWxkID0gdHJ1ZQorLXVzZV9qdW1ib19idWls ZCA9IHRydWUKKyByb290X2V4dHJhX2RlcHMgPSBbICIvL2VsZWN0cm9uIiBdCisgCisgIyBSZWdp c3RyeSBvZiBOTVZzIC0tPiBodHRwczovL2dpdGh1Yi5jb20vbm9kZWpzL25vZGUvYmxvYi9tYXN0 ZXIvZG9jL2FiaV92ZXJzaW9uX3JlZ2lzdHJ5Lmpzb24KK2RpZmYgLS1naXQgYS9idWlsZC9hcmdz L3JlbGVhc2UuZ24gYi9idWlsZC9hcmdzL3JlbGVhc2UuZ24KK2luZGV4IGU1MDE3ZjZlMS4uNTky MDdiMzg5IDEwMDY0NAorLS0tIGEvYnVpbGQvYXJncy9yZWxlYXNlLmduCisrKysgYi9idWlsZC9h cmdzL3JlbGVhc2UuZ24KK0BAIC0xLDYgKzEsNCBAQAorIGltcG9ydCgiYWxsLmduIikKKy1pc19j b21wb25lbnRfYnVpbGQgPSBmYWxzZQorLWlzX29mZmljaWFsX2J1aWxkID0gdHJ1ZQorIAorICMg VGhpcyBtYXkgYmUgZ3VhcmRlZCBiZWhpbmQgaXNfY2hyb21lX2JyYW5kZWQgYWxvbmdzaWRlCisg IyBwcm9wcmlldGFyeV9jb2RlY3MgaHR0cHM6Ly93ZWJydGMtcmV2aWV3Lmdvb2dsZXNvdXJjZS5j b20vYy9zcmMvKy8zNjMyMSwKK0BAIC04LDkgKzYsMyBAQCBpc19vZmZpY2lhbF9idWlsZCA9IHRy dWUKKyAjIFRoZSBpbml0aWFsaXphdGlvbiBvZiB0aGUgZGVjb2RlciBkZXBlbmRzIG9uIHdoZXRo ZXIgZmZtcGVnIGhhcworICMgYmVlbiBidWlsdCB3aXRoIEguMjY0IHN1cHBvcnQuCisgcnRjX3Vz ZV9oMjY0ID0gcHJvcHJpZXRhcnlfY29kZWNzCistCistIyBCeSBkZWZhdWx0LCBFbGVjdHJvbiBi dWlsZHMgZmZtcGVnIHdpdGggcHJvcHJpZXRhcnkgY29kZWNzIGVuYWJsZWQuIEluIG9yZGVyCist IyB0byBmYWNpbGl0YXRlIHVzZXJzIHdobyBkb24ndCB3YW50IHRvIHNoaXAgcHJvcHJpZXRhcnkg Y29kZWNzIGluIGZmbXBlZywgb3IKKy0jIHdobyBoYXZlIGFuIExHUEwgcmVxdWlyZW1lbnQgdG8g c2hpcCBmZm1wZWcgYXMgYSBkeW5hbWljYWxseSBsaW5rZWQgbGlicmFyeSwKKy0jIHdlIGJ1aWxk IGZmbXBlZyBhcyBhIHNoYXJlZCBsaWJyYXJ5LgorLWlzX2NvbXBvbmVudF9mZm1wZWcgPSB0cnVl CitkaWZmIC0tZ2l0IGEvYnVpbGQvbnBtLmduaSBiL2J1aWxkL25wbS5nbmkKK2luZGV4IGExOTg3 ZDA5NS4uZmIzM2ExNGMzIDEwMDY0NAorLS0tIGEvYnVpbGQvbnBtLmduaQorKysrIGIvYnVpbGQv bnBtLmduaQorQEAgLTM1LDcgKzM1LDYgQEAgdGVtcGxhdGUoIm5wbV9hY3Rpb24iKSB7CisgICAg IGlmICghZGVmaW5lZChkZXBzKSkgeworICAgICAgIGRlcHMgPSBbXQorICAgICB9CistICAgIGRl cHMgKz0gWyAiOm5wbV9wcmVfZmxpZ2h0XyIgKyB0YXJnZXRfbmFtZSBdCisgCisgICAgIHNjcmlw dCA9ICIvL2VsZWN0cm9uL2J1aWxkL25wbS1ydW4ucHkiCisgICAgIGFyZ3MgPSBbCitkaWZmIC0t Z2l0IGEvcGF0Y2hlcy9ub2RlL2ZpeF9hZGRfZGVmYXVsdF92YWx1ZXNfZm9yX2VuYWJsZV9sdG9f YW5kX2J1aWxkX3Y4X3dpdGhfZ25faW4ucGF0Y2ggYi9wYXRjaGVzL25vZGUvZml4X2FkZF9kZWZh dWx0X3ZhbHVlc19mb3JfZW5hYmxlX2x0b19hbmRfYnVpbGRfdjhfd2l0aF9nbl9pbi5wYXRjaAor aW5kZXggMGRjOTkxNmJlLi43ZWFhNDZiZjUgMTAwNjQ0CistLS0gYS9wYXRjaGVzL25vZGUvZml4 X2FkZF9kZWZhdWx0X3ZhbHVlc19mb3JfZW5hYmxlX2x0b19hbmRfYnVpbGRfdjhfd2l0aF9nbl9p bi5wYXRjaAorKysrIGIvcGF0Y2hlcy9ub2RlL2ZpeF9hZGRfZGVmYXVsdF92YWx1ZXNfZm9yX2Vu YWJsZV9sdG9fYW5kX2J1aWxkX3Y4X3dpdGhfZ25faW4ucGF0Y2gKK0BAIC0zMCw3ICszMCw3IEBA CisgKyAgICAjIHRoZXNlIHZhbHVlcyBiZWluZyBhY2N1cmF0ZS4KKyArICAgICdidWlsZF92OF93 aXRoX2duJzogJ2ZhbHNlJywKKyArICAgICdlbmFibGVfbHRvJSc6ICdmYWxzZScsCistKworKysg ICAgJ29wZW5zc2xfZmlwcyc6ICcnLAorICAgICAgJ2NvbmRpdGlvbnMnOiBbCisgICAgICAgIFsn dGFyZ2V0X2FyY2g9PSJhcm02NCInLCB7CisgICAgICAgICAgIyBEaXNhYmxlZCBwZW5kaW5nIGh0 dHBzOi8vZ2l0aHViLmNvbS9ub2RlanMvbm9kZS9pc3N1ZXMvMjM5MTMuCisKZGlmZiAtLWdpdCBh L3NyY3BrZ3MvZWxlY3Ryb243L2ZpbGVzL3BhdGNoZXMvZWxlY3Ryb24tZG9udC1hc3N1bWUtcHl0 aG9uLWlzLXB5dGhvbjIucGF0Y2ggYi9zcmNwa2dzL2VsZWN0cm9uNy9maWxlcy9wYXRjaGVzL2Vs ZWN0cm9uLWRvbnQtYXNzdW1lLXB5dGhvbi1pcy1weXRob24yLnBhdGNoCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5mYjEzNDc0ODAyNQotLS0gL2Rldi9udWxsCisrKyBi L3NyY3BrZ3MvZWxlY3Ryb243L2ZpbGVzL3BhdGNoZXMvZWxlY3Ryb24tZG9udC1hc3N1bWUtcHl0 aG9uLWlzLXB5dGhvbjIucGF0Y2gKQEAgLTAsMCArMSwxNyBAQAorLS0tIGEvYnVpbGQvemlwLnB5 Lm9yaWcJMjAyMC0wNC0yNyAxNzo1OTo1My40OTkyODE2NjcgKzAyMDAKKysrKyBiL2J1aWxkL3pp cC5weQkyMDIwLTA0LTI3IDE3OjU5OjU3LjY1NTgzOTE0MyArMDIwMAorQEAgLTEsNCArMSw0IEBA CistIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCisrIyEvdXNyL2Jpbi9lbnYgcHl0aG9uMgorIGZyb20g X19mdXR1cmVfXyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24KKyBpbXBvcnQgb3MKKyBpbXBvcnQgc3Vi cHJvY2VzcworCistLS0gYS9idWlsZC9ucG0tcnVuLnB5Lm9yaWcJMjAyMC0wNC0yNyAxNzo1OTo1 MC44MjkzNTE4MDcgKzAyMDAKKysrKyBiL2J1aWxkL25wbS1ydW4ucHkJMjAyMC0wNC0yNyAxODow MDowMi43MDIzNzMyNTYgKzAyMDAKK0BAIC0xLDQgKzEsNCBAQAorLSMhL3Vzci9iaW4vZW52IHB5 dGhvbgorKyMhL3Vzci9iaW4vZW52IHB5dGhvbjIKKyBmcm9tIF9fZnV0dXJlX18gaW1wb3J0IHBy aW50X2Z1bmN0aW9uCisgaW1wb3J0IG9zCisgaW1wb3J0IHN1YnByb2Nlc3MKZGlmZiAtLWdpdCBh L3NyY3BrZ3MvZWxlY3Ryb243L2ZpbGVzL3BhdGNoZXMvZWxlY3Ryb24tZml4LWluY2x1ZGVzLnBh dGNoIGIvc3JjcGtncy9lbGVjdHJvbjcvZmlsZXMvcGF0Y2hlcy9lbGVjdHJvbi1maXgtaW5jbHVk ZXMucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjlkZjFmZDY5 NDZkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9lbGVjdHJvbjcvZmlsZXMvcGF0Y2hlcy9l bGVjdHJvbi1maXgtaW5jbHVkZXMucGF0Y2gKQEAgLTAsMCArMSwxOSBAQAorLS0tIGEvcGF0Y2hl cy9jaHJvbWl1bS9mZWF0X29mZnNjcmVlbl9yZW5kZXJpbmdfd2l0aF92aXpfY29tcG9zaXRvci5w YXRjaC5vcmlnCTIwMjAtMDQtMjcgMTY6Mzc6MDkuOTM0MjcxMjI3ICswMjAwCisrKysgYi9wYXRj aGVzL2Nocm9taXVtL2ZlYXRfb2Zmc2NyZWVuX3JlbmRlcmluZ193aXRoX3Zpel9jb21wb3NpdG9y LnBhdGNoCTIwMjAtMDQtMjcgMTY6Mzc6NTAuOTAzMjA3MTY2ICswMjAwCitAQCAtMzUwLDcgKzM1 MCw3IEBACisgaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u Mzg2NTkzOWQwNDQ1YTIzYTQ2ODc3MGY1NzIwN2JhNWVmMjMyNzdlZAorIC0tLSAvZGV2L251bGwK KyArKysgYi9jb21wb25lbnRzL3Zpei9zZXJ2aWNlL2Rpc3BsYXlfZW1iZWRkZXIvc29mdHdhcmVf b3V0cHV0X2RldmljZV9wcm94eS5oCistQEAgLTAsMCArMSw4OCBAQAorK0BAIC0wLDAgKzEsODkg QEAKKyArLy8gQ29weXJpZ2h0IDIwMTQgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMg cmVzZXJ2ZWQuCisgKy8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEg QlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKKyArLy8gZm91bmQgaW4gdGhlIExJQ0VOU0Ug ZmlsZS4KK0BAIC0zNjQsNiArMzY0LDcgQEAKKyArCisgKyNpbmNsdWRlIDxtZW1vcnk+CisgKwor KysjaW5jbHVkZSAiYmFzZS90aHJlYWRpbmcvdGhyZWFkX2NoZWNrZXIuaCIKKyArI2luY2x1ZGUg ImNvbXBvbmVudHMvdml6L2hvc3QvaG9zdF9kaXNwbGF5X2NsaWVudC5oIgorICsjaW5jbHVkZSAi Y29tcG9uZW50cy92aXovc2VydmljZS9kaXNwbGF5L3NvZnR3YXJlX291dHB1dF9kZXZpY2UuaCIK KyArI2luY2x1ZGUgImNvbXBvbmVudHMvdml6L3NlcnZpY2Uvdml6X3NlcnZpY2VfZXhwb3J0Lmgi CmRpZmYgLS1naXQgYS9zcmNwa2dzL2VsZWN0cm9uNy9maWxlcy9wYXRjaGVzL2VsZWN0cm9uLW1q c3VuaXQtbm90LWV4c2l0LnBhdGNoLnBhdGNoIGIvc3JjcGtncy9lbGVjdHJvbjcvZmlsZXMvcGF0 Y2hlcy9lbGVjdHJvbi1tanN1bml0LW5vdC1leHNpdC5wYXRjaC5wYXRjaApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMjU2NzU0MDg2OWMKLS0tIC9kZXYvbnVsbAorKysg Yi9zcmNwa2dzL2VsZWN0cm9uNy9maWxlcy9wYXRjaGVzL2VsZWN0cm9uLW1qc3VuaXQtbm90LWV4 c2l0LnBhdGNoLnBhdGNoCkBAIC0wLDAgKzEsNDcgQEAKK2RpZmYgLS1naXQgYS9wYXRjaGVzL3Y4 L21ha2VfY3JlYXRlZHluYW1pY2Z1bmN0aW9uX3Rocm93X2lmX2Rpc2FsbG93ZWQucGF0Y2ggYi9w YXRjaGVzL3Y4L21ha2VfY3JlYXRlZHluYW1pY2Z1bmN0aW9uX3Rocm93X2lmX2Rpc2FsbG93ZWQu cGF0Y2gKK2luZGV4IGJhZmQwYjAuLjk0OWNiMmQgMTAwNjQ0CistLS0gYS9wYXRjaGVzL3Y4L21h a2VfY3JlYXRlZHluYW1pY2Z1bmN0aW9uX3Rocm93X2lmX2Rpc2FsbG93ZWQucGF0Y2gKKysrKyBi L3BhdGNoZXMvdjgvbWFrZV9jcmVhdGVkeW5hbWljZnVuY3Rpb25fdGhyb3dfaWZfZGlzYWxsb3dl ZC5wYXRjaAorQEAgLTI1LDQyICsyNSwzIEBAIGluZGV4IGY3NTAxNGQwMzQ2MjY2NDNhZTgzZGM4 ZjE2N2E0NzNiNzI5MTUyMmMuLmI1YzJlOGIyNWYxMGYyZmZmOTAxMWEwYTFiZDFhZWVmCisgICAg fQorICAKKyAgICAvLyBCdWlsZCB0aGUgc291cmNlIHN0cmluZy4KKy1kaWZmIC0tZ2l0IGEvdGVz dC9tanN1bml0L21qc3VuaXQuc3RhdHVzIGIvdGVzdC9tanN1bml0L21qc3VuaXQuc3RhdHVzCist aW5kZXggMTM0YTQ5Zjc0ODBjODdhY2JiMDgxMzNhMmQ2YTRkMDI4YmJkZDA5MC4uN2RjYWE0MTIx OTk3NzBkN2M0ZjY4OGQ3ZjhhNjZkODg3MTMwYmY4MiAxMDA2NDQKKy0tLS0gYS90ZXN0L21qc3Vu aXQvbWpzdW5pdC5zdGF0dXMKKy0rKysgYi90ZXN0L21qc3VuaXQvbWpzdW5pdC5zdGF0dXMKKy1A QCAtMjMyLDYgKzIzMiw5IEBACistICAgIyBCVUcodjg6NjMwNikuCistICAgJ3dhc20vaHVnZS1t ZW1vcnknOiBbU0tJUF0sCistIAorLSsgICMgTmVlZHMgdG8gYmUgYWRhcHRlZCBhZnRlciBjaGFu Z2VzIHRvIEZ1bmN0aW9uIGNvbnN0cnVjdG9yLiBjaHJvbWl1bToxMDY1MDk0CistKyAgJ2Nyb3Nz LXJlYWxtLWZpbHRlcmluZyc6IFtTS0lQXSwKKy0rCistICAgIyBBbGxvY2F0ZXMgYSBodWdlIHN0 cmluZyBhbmQgdGhlbiBmbGF0dGVucyBpdCwgdmVyeSBzbG93IGluIGRlYnVnIG1vZGUuCistICAg J3JlZ3Jlc3MvcmVncmVzcy03NTI3NjQnOiBbUEFTUywgWydtb2RlID09IGRlYnVnJywgU0xPV11d LAorLSAKKy1kaWZmIC0tZ2l0IGEvdGVzdC9tanN1bml0L3JlZ3Jlc3MtMTA2NTA5NC5qcyBiL3Rl c3QvbWpzdW5pdC9yZWdyZXNzLTEwNjUwOTQuanMKKy1uZXcgZmlsZSBtb2RlIDEwMDY0NAorLWlu ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM2NWUyMDI4NWJi MDUwNWRlYzNmODRjNGRmNTdkYjA1MjVlN2FjYzMKKy0tLS0gL2Rldi9udWxsCistKysrIGIvdGVz dC9tanN1bml0L3JlZ3Jlc3MtMTA2NTA5NC5qcworLUBAIC0wLDAgKzEsMTkgQEAKKy0rLy8gQ29w eXJpZ2h0IDIwMjAgdGhlIFY4IHByb2plY3QgYXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K Ky0rLy8gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUg bGljZW5zZSB0aGF0IGNhbiBiZQorLSsvLyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLSsK Ky0rLy8gRmxhZ3M6IC0tYWxsb3ctbmF0aXZlcy1zeW50YXgKKy0rCistK2Z1bmN0aW9uIGYoZm5D b25zdHJ1Y3RvcikgeworLSsgICAgcmV0dXJuIE9iamVjdC5pcyhuZXcgZm5Db25zdHJ1Y3Rvcigp LCB1bmRlZmluZWQpOworLSt9CistKworLStjb25zdCByZWFsbUluZGV4ID0gUmVhbG0uY3JlYXRl QWxsb3dDcm9zc1JlYWxtQWNjZXNzKCk7CistK2NvbnN0IG90aGVyRnVuY3Rpb24gPSBSZWFsbS5n bG9iYWwocmVhbG1JbmRleCkuRnVuY3Rpb247CistK1JlYWxtLmRldGFjaEdsb2JhbChyZWFsbUlu ZGV4KTsKKy0rCistKyVQcmVwYXJlRnVuY3Rpb25Gb3JPcHRpbWl6YXRpb24oZik7CistK2Fzc2Vy dEZhbHNlKGYoRnVuY3Rpb24pKTsKKy0rYXNzZXJ0VGhyb3dzKF8gPT4gZihvdGhlckZ1bmN0aW9u KSk7CistKyVPcHRpbWl6ZUZ1bmN0aW9uT25OZXh0Q2FsbChmKTsKKy0rYXNzZXJ0VGhyb3dzKF8g PT4gZihvdGhlckZ1bmN0aW9uKSk7CmRpZmYgLS1naXQgYS9zcmNwa2dzL2VsZWN0cm9uNy90ZW1w bGF0ZSBiL3NyY3BrZ3MvZWxlY3Ryb243L3RlbXBsYXRlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAwLi5jMTUwNzA3NTIzYgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mv ZWxlY3Ryb243L3RlbXBsYXRlCkBAIC0wLDAgKzEsMjU3IEBACisjIFRlbXBsYXRlIGZpbGUgZm9y ICdlbGVjdHJvbjcnCitwa2duYW1lPWVsZWN0cm9uNwordmVyc2lvbj03LjIuMworcmV2aXNpb249 MQorX25vZGV2ZXI9MTIuOC4xCitfY2hyb21pdW12ZXI9NzguMC4zOTA0LjEwOAorYXJjaHM9Ing4 Nl82NCoiCitjcmVhdGVfd3Jrc3JjPXllcworYnVpbGRfd3Jrc3JjPSJzcmMiCitob3N0bWFrZWRl cGVuZHM9ImNsYW5nIHlhc20gcHl0aG9uIHBrZ2NvbmYgcGVybCBncGVyZiBiaXNvbiBuaW5qYSBu b2RlanMgaHdpZHMKKyB3aGljaCBnaXQgbGliYXRvbWljLWRldmVsIGxpYmV2ZW50LWRldmVsIGxp YmdsaWItZGV2ZWwgeWFybiBvcGVuamRrIgorbWFrZWRlcGVuZHM9ImxpYnBuZy1kZXZlbCBndGsr LWRldmVsIGd0ayszLWRldmVsIG5zcy1kZXZlbCBwY2l1dGlscy1kZXZlbAorIGxpYlhpLWRldmVs IGxpYmdjcnlwdC1kZXZlbCBsaWJnbm9tZS1rZXlyaW5nLWRldmVsIGN1cHMtZGV2ZWwgZWxmdXRp bHMtZGV2ZWwKKyBsaWJYY29tcG9zaXRlLWRldmVsIHNwZWVjaC1kaXNwYXRjaGVyLWRldmVsIGxp YlhyYW5kci1kZXZlbCBtaXQta3JiNS1kZXZlbAorIGxpYlhTY3JuU2F2ZXItZGV2ZWwgYWxzYS1s aWItZGV2ZWwgc25hcHB5LWRldmVsIGxpYmRybS1kZXZlbAorIGxpYnhtbDItZGV2ZWwgbGlieHNs dC1kZXZlbCBwdWxzZWF1ZGlvLWRldmVsIGxpYmV4aWYtZGV2ZWwKKyBsaWJYY3Vyc29yLWRldmVs IGxpYmZsYWMtZGV2ZWwgc3BlZXgtZGV2ZWwgbGlibXRwLWRldmVsIGxpYndlYnAtZGV2ZWwKKyBs aWJqcGVnLXR1cmJvLWRldmVsIGxpYmV2ZW50LWRldmVsIGpzb24tYy1kZXZlbCBoYXJmYnV6ei1k ZXZlbAorIG1pbml6aXAtZGV2ZWwganNvbmNwcC1kZXZlbCB6bGliLWRldmVsIGxpYmNhcC1kZXZl bCBsaWJYZGFtYWdlLWRldmVsCisgcmUyLWRldmVsIGZvbnRjb25maWctZGV2ZWwgZnJlZXR5cGUt ZGV2ZWwgb3B1cy1kZXZlbAorIGZmbXBlZy1kZXZlbCBsaWJ2YS1kZXZlbCBsaWJ1di1kZXZlbCBj LWFyZXMtZGV2ZWwgbGlibm90aWZ5LWRldmVsIgorc2hvcnRfZGVzYz0iQXBwbGljYXRpb24gZGV2 ZWxvcG1lbnQgZnJhbWV3b3JrIGJhc2VkIG9uIHdlYiB0ZWNobm9sb2dpZXMiCittYWludGFpbmVy PSJKb2huIDxtZUBqb2hubnluYXRvci5kZXY+IgorbGljZW5zZT0iQlNELTMtQ2xhdXNlIgoraG9t ZXBhZ2U9Imh0dHBzOi8vZWxlY3Ryb25qcy5vcmciCitkaXN0ZmlsZXM9Imh0dHBzOi8vZ2l0aHVi LmNvbS9lbGVjdHJvbi9lbGVjdHJvbi9hcmNoaXZlL3YkdmVyc2lvbi50YXIuZ3o+ZWxlY3Ryb24t JHt2ZXJzaW9ufS50YXIuZ3oKKyBodHRwczovL2NvbW1vbmRhdGFzdG9yYWdlLmdvb2dsZWFwaXMu Y29tL2Nocm9taXVtLWJyb3dzZXItb2ZmaWNpYWwvY2hyb21pdW0tJF9jaHJvbWl1bXZlci50YXIu eHoKKyBodHRwczovL2dpdGh1Yi5jb20vbm9kZWpzL25vZGUvYXJjaGl2ZS92JF9ub2RldmVyLnRh ci5nej5ub2RlLSRfbm9kZXZlci50YXIuZ3oiCitjaGVja3N1bT0iZTNmYzJlMTVjNjA1NTE1MTJl MjZmMWU5NmUwMmUzMzk1NDA1NzgxOGNlYjhjZDhhYjZkMTk5Y2JiODc1MWVlMworIGY5YzUzODM5 ZjMwNmQyOTczZGUyNzcyMzM2MDAyNGY3OTA0MTAxZDQyNmI5ZTdlOWNkYjU2ZThiY2M3NzViMGUK KyAxMTY0OGQ1ODZmNjhlZTVmYzM4ZTRjYWRmMzk3NDU0MWFhYzRhNjc3MDlmYTAyOGU5MDc1YWZm NDJlMjhkOWI5IgorCitsaWIzMmRpc2FibGVkPXllcworbm9kZWJ1Zz15ZXMKK25vcGllPXllcyAg IyBjb250YWlucyB0b29scyB0aGF0IGFyZSBub3QgUElFLCBlbmFibGVzIFBJRSBpdHNlbGYKKwor IyBYWFg6IHB1bHNlYXVkaW8gYnJva2VuIGF0IGNvbXBpbGUgdGltZQorYnVpbGRfb3B0aW9ucz0i cHVsc2VhdWRpbyIKK2J1aWxkX29wdGlvbnNfZGVmYXVsdD0iIgorCitfYnVpbGR0eXBlPVJlbGVh c2UKK19pc19kZWJ1Zz1mYWxzZQorCitDRkxBR1M9Ii1Xbm8tdW5rbm93bi13YXJuaW5nLW9wdGlv biAtZlBJQyIKK0NYWEZMQUdTPSItV25vLXVua25vd24td2FybmluZy1vcHRpb24gLWZQSUMiCisK K3Bvc3RfZXh0cmFjdCgpIHsKKwlsbiAtcyBjaHJvbWl1bS0kX2Nocm9taXVtdmVyIHNyYworCW1r ZGlyIC1wIHNyYy90aGlyZF9wYXJ0eS8KKwlsbiAtcyAuLi8uLi9ub2RlLSRfbm9kZXZlciBzcmMv dGhpcmRfcGFydHkvZWxlY3Ryb25fbm9kZQorCWxuIC1zIC4uL2VsZWN0cm9uLSR7dmVyc2lvbn0g c3JjL2VsZWN0cm9uCisKK30KK3Bvc3RfcGF0Y2goKSB7CisJY2QgJHdya3NyYworCWZvciB4IGlu ICRGSUxFU0RJUi9wYXRjaGVzLyo7IGRvCisJCWNhc2UgIiR7eCMjKi99IiBpbgorCQkJY2hyb21p dW0qLnBhdGNoKQorCQkJCWNkIHNyYworCQkJCWVjaG8gUGF0Y2hpbmcgJHgKKwkJCQlwYXRjaCAt cDEgLWkgIiR4IgorCQkJCWNkICIkd3Jrc3JjIgorCQkJCTs7CisJCQllbGVjdHJvbioucGF0Y2gp CisJCQkJY2Qgc3JjL2VsZWN0cm9uCisJCQkJZWNobyBQYXRjaGluZyAkeAorCQkJCXBhdGNoIC1w MSAtaSAiJHgiCisJCQkJY2QgIiR3cmtzcmMiCisJCWVzYWMKKwlkb25lCisKKwlpZiBbICIkWEJQ U19UQVJHRVRfTElCQyIgPSAibXVzbCIgXTsgdGhlbgorCWZvciB4IGluICRGSUxFU0RJUi9tdXNs LXBhdGNoZXMvKjsgZG8KKwkJY2FzZSAiJHt4IyMqL30iIGluCisJCQljaHJvbWl1bSoucGF0Y2gp CisJCQkJY2Qgc3JjCisJCQkJZWNobyBQYXRjaGluZyAkeAorCQkJCXBhdGNoIC1wMSAtaSAiJHgi CisJCQkJY2QgIiR3cmtzcmMiCisJCQkJOzsKKwkJCWVsZWN0cm9uKi5wYXRjaCkKKwkJCQljZCBz cmMvZWxlY3Ryb24KKwkJCQllY2hvIFBhdGNoaW5nICR4CisJCQkJcGF0Y2ggLXAxIC1pICIkeCIK KwkJCQljZCAiJHdya3NyYyIKKwkJZXNhYworCWRvbmUKKwlmaQorfQorCitwcmVfY29uZmlndXJl KCkgeworCWNkICR3cmtzcmMKKwkjIFNpZ2gsIGVsZWN0cm9uIHVzZXMgZ2l0IGFtLi4uCisJcHl0 aG9uMiBzcmMvZWxlY3Ryb24vc2NyaXB0L2xpc3RfcGF0Y2hfdGFyZ2V0cy5weSBzcmMvZWxlY3Ry b24vcGF0Y2hlcy9jb25maWcuanNvbiB8IHdoaWxlIHJlYWQgLXIgcmVwb3BhdGg7IGRvCisJCWNk ICIkd3Jrc3JjIi8iJHJlcG9wYXRoIgorCQlnaXQgaW5pdCAtcQorCQlnaXQgY29uZmlnICJnYy5h dXRvIiAwCisJCWlmIFsgIiRyZXBvcGF0aCIgIT0gInNyYyIgXTsgdGhlbgorCQkJZWNobyAiLyR7 cmVwb3BhdGgjc3JjL30iID4+ICIkd3Jrc3JjLyRidWlsZF93cmtzcmMvLmdpdGlnbm9yZSIKKwkJ ZmkKKwkJZ2l0IGFkZCAuCisJCWdpdCAtYyAndXNlci5uYW1lPUVsZWN0cm9uIGJ1aWxkJyAtYyAn dXNlci5lbWFpbD1lbGVjdHJvbkBlYnVpbGQnIFwKKwkJCWNvbW1pdCAtcSAtbSAiLiIgfHwgdHJ1 ZQorCWRvbmUKKworCXB5dGhvbjIgc3JjL2VsZWN0cm9uL3NjcmlwdC9hcHBseV9hbGxfcGF0Y2hl cy5weSBzcmMvZWxlY3Ryb24vcGF0Y2hlcy9jb25maWcuanNvbgorCisJY2QgIiRidWlsZF93cmtz cmMiCisKKwkjIGh0dHBzOi8vZ3JvdXBzLmdvb2dsZS5jb20vYS9jaHJvbWl1bS5vcmcvZC90b3Bp Yy9jaHJvbWl1bS1wYWNrYWdlcnMvOUpYMU4ybmY0UFUvZGlzY3Vzc2lvbgorCXRvdWNoIGNocm9t ZS90ZXN0L2RhdGEvd2VidWkvaTE4bl9wcm9jZXNzX2Nzc190ZXN0Lmh0bWwKKwkjIFVzZSB0aGUg ZmlsZSBhdCBydW4gdGltZSBpbnN0ZWFkIG9mIGVmZmVjdGl2ZWx5IGNvbXBpbGluZyBpdCBpbgor CXNlZCAnc3wvL3RoaXJkX3BhcnR5L3VzYl9pZHMvdXNiLmlkc3wvdXNyL3NoYXJlL2h3ZGF0YS91 c2IuaWRzfGcnIFwKKwkJLWkgc2VydmljZXMvZGV2aWNlL3B1YmxpYy9jcHAvdXNiL0JVSUxELmdu CisKKwlta2RpciAtcCB0aGlyZF9wYXJ0eS9ub2RlL2xpbnV4L25vZGUtbGludXgteDY0L2Jpbgor CWxuIC1zIC91c3IvYmluL25vZGUgdGhpcmRfcGFydHkvbm9kZS9saW51eC9ub2RlLWxpbnV4LXg2 NC9iaW4vCisKKwkjIHJldXNhYmxlIHN5c3RlbSBsaWJyYXJ5IHNldHRpbmdzCisJbG9jYWwgdXNl X3N5c3RlbT0iCisJCWZmbXBlZworCQlmbGFjCisJCWZvbnRjb25maWcKKwkJZnJlZXR5cGUKKwkJ aGFyZmJ1enotbmcKKwkJbGliZHJtCisJCWxpYmV2ZW50CisJCWxpYmpwZWcKKwkJbGlicG5nCisJ CWxpYndlYnAKKwkJbGlieG1sCisJCWxpYnhzbHQKKwkJb3B1cworCQlyZTIKKwkJc25hcHB5CisJ CXlhc20KKwkJIgorCWZvciBfbGliIGluICR1c2Vfc3lzdGVtIGxpYmpwZWdfdHVyYm87IGRvCisJ CW1zZ19ub3JtYWwgIlJlbW92aW5nIGJ1aWxkc2NyaXB0cyBmb3Igc3lzdGVtIHByb3ZpZGVkICRf bGliXG4iCisJCWZpbmQgLXR5cGUgZiAtcGF0aCAiKnRoaXJkX3BhcnR5LyRfbGliLyoiIFwKKwkJ CVwhIC1wYXRoICIqdGhpcmRfcGFydHkvJF9saWIvY2hyb21pdW0vKiIgXAorCQkJXCEgLXBhdGgg Iip0aGlyZF9wYXJ0eS8kX2xpYi9nb29nbGUvKiIgXAorCQkJXCEgLXBhdGggJy4vYmFzZS90aGly ZF9wYXJ0eS9pY3UvKicgXAorCQkJXCEgLXBhdGggJy4vdGhpcmRfcGFydHkvbGlieG1sLyonIFwK KwkJCVwhIC1wYXRoICcuL3RoaXJkX3BhcnR5L3BkZml1bS90aGlyZF9wYXJ0eS9mcmVldHlwZS9p bmNsdWRlL3BzdGFibGVzLmgnIFwKKwkJCVwhIC1wYXRoICcuL3RoaXJkX3BhcnR5L3lhc20vcnVu X3lhc20ucHknIFwKKwkJCVwhIC1yZWdleCAnLipcLlwoZ25cfGduaVx8aXNvbGF0ZVx8cHlcKScg XAorCQkJLWRlbGV0ZQorCWRvbmUKKworCisJbXNnX25vcm1hbCAiUmVwbGFjaW5nIGduIGZpbGVz XG4iCisJcHl0aG9uMiBidWlsZC9saW51eC91bmJ1bmRsZS9yZXBsYWNlX2duX2ZpbGVzLnB5IC0t c3lzdGVtLWxpYnJhcmllcyBcCisJCSR1c2Vfc3lzdGVtCisJdGhpcmRfcGFydHkvbGliYWRkcmVz c2lucHV0L2Nocm9taXVtL3Rvb2xzL3VwZGF0ZS1zdHJpbmdzLnB5Cit9CisKK2RvX2NvbmZpZ3Vy ZSgpIHsKKwlsb2NhbCBjb25mPSgpCisJY2QgdGhpcmRfcGFydHkvZWxlY3Ryb25fbm9kZQorCisJ Li9jb25maWd1cmUgLS1wcmVmaXg9L3VzciBcCisJCS0tc2hhcmVkLXpsaWIgXAorCQktLXNoYXJl ZC1saWJ1diBcCisJCS0tc2hhcmVkLW9wZW5zc2wgXAorCQktLXNoYXJlZC1jYXJlcyBcCisJCS0t b3BlbnNzbC11c2UtZGVmLWNhLXN0b3JlIFwKKwkJLS13aXRob3V0LW5wbSBcCisJCS0td2l0aG91 dC1kdHJhY2UgXAorCQktLXdpdGhvdXQtYnVuZGxlZC12OAorCisJY2QgIiR3cmtzcmMvJGJ1aWxk X3dya3NyYyIvZWxlY3Ryb24KKwl5YXJuIGluc3RhbGwKKwllY2hvICR3cmtzcmMvJGJ1aWxkX3dy a3NyYworCWNkICIkd3Jrc3JjLyRidWlsZF93cmtzcmMiCisKKwkjIEdvb2dsZSBBUEkga2V5cyAo c2VlIGh0dHA6Ly93d3cuY2hyb21pdW0ub3JnL2RldmVsb3BlcnMvaG93LXRvcy9hcGkta2V5cykK KwkjIE5vdGU6IFRoZXNlIGFyZSBmb3IgVm9pZCBMaW51eCB1c2UgT05MWS4KKwljb25mKz0oCisJ CSdnb29nbGVfYXBpX2tleT0iQUl6YVN5QTlnV2F6S2FIYU5JUFBnMmhyTWo2X1pTRzhBRm1xNzM4 IicKKwkJJ2dvb2dsZV9kZWZhdWx0X2NsaWVudF9pZD0iMTI2NjU5MTQ5NDIzLWhvbzZpY2tiazNw MXUycWpzZHNwMGRkY2l1cmZ2YjR0LmFwcHMuZ29vZ2xldXNlcmNvbnRlbnQuY29tIicKKwkJJ2dv b2dsZV9kZWZhdWx0X2NsaWVudF9zZWNyZXQ9Il9vekl4MkQtREttX3NlXzJOUHdWNGw1YiInCisJ KQorCisJY29uZis9KAorCQknYmxpbmtfc3ltYm9sX2xldmVsPTAnCisJCSdjbGFuZ191c2VfY2hy b21lX3BsdWdpbnM9ZmFsc2UnCisJCSdjbG9zdXJlX2NvbXBpbGU9dHJ1ZScKKwkJJ2N1c3RvbV90 b29sY2hhaW49Ii8vYnVpbGQvdG9vbGNoYWluL2xpbnV4L3VuYnVuZGxlOmRlZmF1bHQiJworCQkn aG9zdF90b29sY2hhaW49Ii8vYnVpbGQvdG9vbGNoYWluL2xpbnV4L3VuYnVuZGxlOmRlZmF1bHQi JworCQknZW5hYmxlX2hhbmdvdXRfc2VydmljZXNfZXh0ZW5zaW9uPXRydWUnCisJCSdlbmFibGVf bmFjbF9ub25zZmk9ZmFsc2UnCisJCSdlbmFibGVfbmFjbD1mYWxzZScKKwkJJ2VuYWJsZV9wcmVj b21waWxlZF9oZWFkZXJzPWZhbHNlJworCQknZmF0YWxfbGlua2VyX3dhcm5pbmdzPWZhbHNlJwor CQknZmZtcGVnX2JyYW5kaW5nPSJDaHJvbWUiJworCQknZmllbGR0cmlhbF90ZXN0aW5nX2xpa2Vf b2ZmaWNpYWxfYnVpbGQ9dHJ1ZScKKwkJJ2dvbGRfcGF0aD0iL3Vzci9iaW4vbGQuZ29sZCInCisJ CSdpY3VfdXNlX2RhdGFfZmlsZT10cnVlJworCQknaXNfY2xhbmc9dHJ1ZScKKwkJJ2lzX2NvbXBv bmVudF9idWlsZD1mYWxzZScKKwkJImlzX2RlYnVnPSRfaXNfZGVidWciCisJCSdpc19kZXNrdG9w X2xpbnV4PXRydWUnCisJCSdsaW51eF91c2VfYnVuZGxlZF9iaW51dGlscz1mYWxzZScKKwkJJ3By b3ByaWV0YXJ5X2NvZGVjcz10cnVlJworCQknc3ltYm9sX2xldmVsPTAnCisJCSd0cmVhdF93YXJu aW5nc19hc19lcnJvcnM9ZmFsc2UnCisJCSd1c2VfYWxsb2NhdG9yX3NoaW09ZmFsc2UnCisJCSd1 c2VfYWxsb2NhdG9yPSJub25lIicKKwkJJ3VzZV9jdXBzPXRydWUnCisJCSd1c2VfY3VzdG9tX2xp YmN4eD1mYWxzZScKKwkJJ3VzZV9nbm9tZV9rZXlyaW5nPWZhbHNlJworCQkndXNlX2dvbGQ9ZmFs c2UnCisJCSd1c2VfbGxkPWZhbHNlJworCQkidXNlX3B1bHNlYXVkaW89JCh2b3B0X2lmIHB1bHNl YXVkaW8gJ3RydWUnICdmYWxzZScpIgorCQkndXNlX3N5c3Jvb3Q9ZmFsc2UnCisJCSd1c2Vfc3lz dGVtX2hhcmZidXp6PXRydWUnCisJCSdpbXBvcnQoIi8vZWxlY3Ryb24vYnVpbGQvYXJncy9yZWxl YXNlLmduIiknCisJKQorCisJbXNnX25vcm1hbCAiQm9vdHN0cmFwcGluZyBHTlxuIgorIwlBUj0i YXIiIENDPSIke0NDOi1nY2N9IiBDWFg9IiR7Q1hYOi1nKyt9IiBMRD0iJHtDWFg6LWcrK30iIFwK KwlDQz0iJHtDQzotY2xhbmd9IiBDWFg9IiR7Q1hYOi1jbGFuZysrfSIgTEQ9IiR7Q1hYOi1jbGFu ZysrfSIgXAorCQlweXRob24yIHRvb2xzL2duL2Jvb3RzdHJhcC9ib290c3RyYXAucHkgLXMgLXYg LS1nbi1nZW4tYXJncyAiJHtjb25mWypdfSIKKworCW1zZ19ub3JtYWwgIkNvbmZpZ3VyaW5nIGJ1 aWxkXG4iCisKKwlBUj0iYXIiIENDPSJjbGFuZyIgQ1hYPSJjbGFuZysrIiBMRD0iY2xhbmcrKyIg Tk09L3Vzci9iaW4vbm0gXAorCQlvdXQvUmVsZWFzZS9nbiBnZW4gb3V0LyRfYnVpbGR0eXBlIC0t YXJncz0iJHtjb25mWypdfSIKK30KKworZG9fYnVpbGQoKSB7CisJbXNnX25vcm1hbCAiTmluamEg dHVydGxlcyBHTyFcbiIKKwluaW5qYSAke21ha2Vqb2JzfSAtQyBvdXQvUmVsZWFzZSB0aGlyZF9w YXJ0eS9lbGVjdHJvbl9ub2RlOmhlYWRlcnMKKworCW5pbmphICR7bWFrZWpvYnN9IC1DIG91dC8k X2J1aWxkdHlwZSBlbGVjdHJvbgorCSMgZmluaXNoIHJlc3Qgb2YgdGhlIGJ1aWxkCisJc3RyaXAg LXMgb3V0LyRfYnVpbGR0eXBlL2VsZWN0cm9uCisJbmluamEgJHttYWtlam9ic30gLUMgb3V0LyRf YnVpbGR0eXBlIGVsZWN0cm9uX2Rpc3RfemlwCit9CisKK2RvX2luc3RhbGwoKSB7CisJdm1rZGly IC91c3IvbGliLyRwa2duYW1lCisJdm1rZGlyIC91c3IvaW5jbHVkZS8kcGtnbmFtZQorCWJzZHRh ciAteGYgb3V0LyRfYnVpbGR0eXBlL2Rpc3QuemlwIC1DICIkREVTVERJUi91c3IvbGliLyRwa2du YW1lIgorCisJY2htb2QgdStzICIkREVTVERJUi91c3IvbGliLyRwa2duYW1lL2Nocm9tZS1zYW5k Ym94IgorCisJY3Agb3V0LyRfYnVpbGR0eXBlL2dlbi9ub2RlX2hlYWRlcnMudGFyLmd6ICIkREVT VERJUiIvdXNyL2luY2x1ZGUvJHBrZ25hbWUKKworCXZsaWNlbnNlICR7d3Jrc3JjfS9zcmMvTElD RU5TRSBjaHJvbWl1bS5MSUNFTlNFCisJdmxpY2Vuc2UgJHt3cmtzcmN9L3NyYy9lbGVjdHJvbi9M SUNFTlNFIGVsZWN0cm9uLkxJQ0VOU0UKKwl2bGljZW5zZSAke3dya3NyY30vc3JjL3RoaXJkX3Bh cnR5L2VsZWN0cm9uX25vZGUvTElDRU5TRSBub2RlLkxJQ0VOU0UKKworCXZta2RpciAvdXNyL2Jp bgorCWxuIC1zIC4uL2xpYi8kcGtnbmFtZS9lbGVjdHJvbiAiJERFU1RESVIiL3Vzci9iaW4KK30K CkZyb20gYjY3ZmNkMzQ2MDI0OWJhMjU1YWI3YmZlMzkwYjM3NGVjYjYyZGFjOCBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogSm9obiA8bWVAam9obm55bmF0b3IuZGV2PgpEYXRlOiBGcmks IDggTWF5IDIwMjAgMTk6MTc6MDkgKzAyMDAKU3ViamVjdDogW1BBVENIIDIvM10gdnNjb2RlOiBi dWlsdCBhZ2FpbnN0IHN5c3RlbSBlbGVjdHJvbgoKW2NpIHNraXBdCi0tLQogY29tbW9uL3NobGli cyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDEgLQogLi4uL3ZzY29kZS9wYXRj aGVzL2RvbnQtZG93bmxvYWQtZmZtcGVnLnBhdGNoIHwgMTQgKysrKysrKysrKysKIHNyY3BrZ3Mv dnNjb2RlL3BhdGNoZXMvZml4X2Rpci5wYXRjaCAgICAgICAgICB8ICA2ICsrLS0tCiBzcmNwa2dz L3ZzY29kZS90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgICAgICAgfCAyNSArKysrKysrKysrKysr KystLS0tCiA0IGZpbGVzIGNoYW5nZWQsIDM3IGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25zKC0p CiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy92c2NvZGUvcGF0Y2hlcy9kb250LWRvd25sb2Fk LWZmbXBlZy5wYXRjaAoKZGlmZiAtLWdpdCBhL2NvbW1vbi9zaGxpYnMgYi9jb21tb24vc2hsaWJz CmluZGV4IDgzNDJlMTE3MDkyLi44ZjFlMDIyMjA3ZiAxMDA2NDQKLS0tIGEvY29tbW9uL3NobGli cworKysgYi9jb21tb24vc2hsaWJzCkBAIC0xMjksNyArMTI5LDYgQEAgbGliR0xFU3YyLnNvIGRp c2NvcmQtMC4wLjdfMQogbGliR0xFU3YyLnNvIGtleWJhc2UtZGVza3RvcC0zLjEuMl8xCiBsaWJH TEVTdjIuc28gcmlvdC1kZXNrdG9wLTAuMTcuOV8yCiBsaWJHTEVTdjIuc28gd2lyZS1kZXNrdG9w LTMuNi4yODg1XzEKLWxpYkdMRVN2Mi5zbyB2c2NvZGUtMS4zNi4xXzEKIGxpYkdMRVN2Mi5zbyBT aWduYWwtRGVza3RvcC0xLjIzLjJfMQogbGliR0xFU3YyLnNvIHNsYWNrLWRlc2t0b3AtMy40LjJf MQogbGliYnJjbUVHTC5zbyBycGktdXNlcmxhbmQtMjAxODAxMDNfMgpkaWZmIC0tZ2l0IGEvc3Jj cGtncy92c2NvZGUvcGF0Y2hlcy9kb250LWRvd25sb2FkLWZmbXBlZy5wYXRjaCBiL3NyY3BrZ3Mv dnNjb2RlL3BhdGNoZXMvZG9udC1kb3dubG9hZC1mZm1wZWcucGF0Y2gKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjk1ZWVlMzYxZTFiCi0tLSAvZGV2L251bGwKKysrIGIv c3JjcGtncy92c2NvZGUvcGF0Y2hlcy9kb250LWRvd25sb2FkLWZmbXBlZy5wYXRjaApAQCAtMCww ICsxLDE0IEBACitkaWZmIC0tZ2l0IGEvYnVpbGQvZ3VscGZpbGUudnNjb2RlLmpzIGIvYnVpbGQv Z3VscGZpbGUudnNjb2RlLmpzCitpbmRleCAzNDg4ZDdiNTFjLi43MzEyODJhODgxIDEwMDY0NAor LS0tIGEvYnVpbGQvZ3VscGZpbGUudnNjb2RlLmpzCisrKysgYi9idWlsZC9ndWxwZmlsZS52c2Nv ZGUuanMKK0BAIC0yNjcsNyArMjY3LDcgQEAgZnVuY3Rpb24gcGFja2FnZVRhc2socGxhdGZvcm0s IGFyY2gsIHNvdXJjZUZvbGRlck5hbWUsIGRlc3RpbmF0aW9uRm9sZGVyTmFtZSwgb3AKKyAJCWxl dCByZXN1bHQgPSBhbGwKKyAJCQkucGlwZSh1dGlsLnNraXBEaXJlY3RvcmllcygpKQorIAkJCS5w aXBlKHV0aWwuZml4V2luMzJEaXJlY3RvcnlQZXJtaXNzaW9ucygpKQorLQkJCS5waXBlKGVsZWN0 cm9uKF8uZXh0ZW5kKHt9LCBjb25maWcsIHsgcGxhdGZvcm0sIGFyY2gsIGZmbXBlZ0Nocm9taXVt OiB0cnVlIH0pKSkKKysJCQkucGlwZShlbGVjdHJvbihfLmV4dGVuZCh7fSwgY29uZmlnLCB7IHBs YXRmb3JtLCBhcmNoLCBmZm1wZWdDaHJvbWl1bTogZmFsc2UgfSkpKQorIAkJCS5waXBlKGZpbHRl cihbJyoqJywgJyFMSUNFTlNFJywgJyFMSUNFTlNFUy5jaHJvbWl1bS5odG1sJywgJyF2ZXJzaW9u J10sIHsgZG90OiB0cnVlIH0pKTsKKyAKKyAJCWlmIChwbGF0Zm9ybSA9PT0gJ2xpbnV4Jykgewor IApkaWZmIC0tZ2l0IGEvc3JjcGtncy92c2NvZGUvcGF0Y2hlcy9maXhfZGlyLnBhdGNoIGIvc3Jj cGtncy92c2NvZGUvcGF0Y2hlcy9maXhfZGlyLnBhdGNoCmluZGV4IDc5OWY3ZWM5MTU5Li5jZTAy MGM3ZWRmOSAxMDA2NDQKLS0tIGEvc3JjcGtncy92c2NvZGUvcGF0Y2hlcy9maXhfZGlyLnBhdGNo CisrKyBiL3NyY3BrZ3MvdnNjb2RlL3BhdGNoZXMvZml4X2Rpci5wYXRjaApAQCAtMjAsNyArMjAs NyBAQCBpbmRleCBiODU1MjVmYmQwNDIuLmRjNzYxNzA1MWI5NSAxMDA2NDQKICBDb21tZW50PUNv ZGUgRWRpdGluZy4gUmVkZWZpbmVkLgogIEdlbmVyaWNOYW1lPVRleHQgRWRpdG9yCiAtRXhlYz1A QEVYRUNAQCAtLW5vLXNhbmRib3ggLS1vcGVuLXVybCAlVQotK0V4ZWM9L3Vzci9saWIvQEBOQU1F QEAvQEBOQU1FQEAgLS1uby1zYW5kYm94IC0tb3Blbi11cmwgJVUKKytFeGVjPS91c3IvbGliL0BA TkFNRUBAL2Jpbi9AQE5BTUVAQCAtLW5vLXNhbmRib3ggLS1vcGVuLXVybCAlVQogIEljb249QEBJ Q09OQEAKICBUeXBlPUFwcGxpY2F0aW9uCiAgTm9EaXNwbGF5PXRydWUKQEAgLTMzLDcgKzMzLDcg QEAgaW5kZXggYjk3NWUxMDk0YTJjLi5hMDk0Y2MzNmU4MTAgMTAwNjQ0CiAgQ29tbWVudD1Db2Rl IEVkaXRpbmcuIFJlZGVmaW5lZC4KICBHZW5lcmljTmFtZT1UZXh0IEVkaXRvcgogLUV4ZWM9QEBF WEVDQEAgLS1uby1zYW5kYm94IC0tdW5pdHktbGF1bmNoICVGCi0rRXhlYz0vdXNyL2xpYi9AQE5B TUVAQC9AQE5BTUVAQCAtLW5vLXNhbmRib3ggLS11bml0eS1sYXVuY2ggJUYKKytFeGVjPS91c3Iv bGliL0BATkFNRUBAL2Jpbi9AQE5BTUVAQCAtLW5vLXNhbmRib3ggLS11bml0eS1sYXVuY2ggJUYK ICBJY29uPUBASUNPTkBACiAgVHlwZT1BcHBsaWNhdGlvbgogIFN0YXJ0dXBOb3RpZnk9ZmFsc2UK QEAgLTQyLDUgKzQyLDUgQEAgaW5kZXggYjk3NWUxMDk0YTJjLi5hMDk0Y2MzNmU4MTAgMTAwNjQ0 CiAgW0Rlc2t0b3AgQWN0aW9uIG5ldy1lbXB0eS13aW5kb3ddCiAgTmFtZT1OZXcgRW1wdHkgV2lu ZG93CiAtRXhlYz1AQEVYRUNAQCAtLW5vLXNhbmRib3ggLS1uZXctd2luZG93ICVGCi0rRXhlYz0v dXNyL2xpYi9AQE5BTUVAQC9AQE5BTUVAQCAtLW5vLXNhbmRib3ggLS1uZXctd2luZG93ICVGCisr RXhlYz0vdXNyL2xpYi9AQE5BTUVAQC9iaW4vQEBOQU1FQEAgLS1uby1zYW5kYm94IC0tbmV3LXdp bmRvdyAlRgogIEljb249QEBJQ09OQEAKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvdnNjb2RlL3RlbXBs YXRlIGIvc3JjcGtncy92c2NvZGUvdGVtcGxhdGUKaW5kZXggZmFlOTZiMWUzMzIuLjdmM2NkMTg2 NzVmIDEwMDY0NAotLS0gYS9zcmNwa2dzL3ZzY29kZS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3Zz Y29kZS90ZW1wbGF0ZQpAQCAtMiw5ICsyLDExIEBACiBwa2duYW1lPXZzY29kZQogdmVyc2lvbj0x LjQ0LjIKIHJldmlzaW9uPTEKK19lbGVjdHJvbnZlcj03LjIuMwogaG9zdG1ha2VkZXBlbmRzPSJw a2ctY29uZmlnIHB5dGhvbiBub2RlanMtbHRzLTEwIHlhcm4gdGFyIgotbWFrZWRlcGVuZHM9Imxp YnhrYmZpbGUtZGV2ZWwgbGlic2VjcmV0LWRldmVsIgotZGVwZW5kcz0ibGliWHRzdCBsaWJ4a2Jm aWxlIG5zcyBkZWphdnUtZm9udHMtdHRmIHhkZy11dGlscyIKK21ha2VkZXBlbmRzPSJsaWJ4a2Jm aWxlLWRldmVsIGxpYnNlY3JldC1kZXZlbCBlbGVjdHJvbjciCitkZXBlbmRzPSJyaXBncmVwIGVs ZWN0cm9uNyIKK2RlcGVuZHM9ImxpYlh0c3QgbGlieGtiZmlsZSBuc3MgZGVqYXZ1LWZvbnRzLXR0 ZiB4ZGctdXRpbHMgZWxlY3Ryb243Igogc2hvcnRfZGVzYz0iTWljcm9zb2Z0IENvZGUgZm9yIExp bnV4IgogbWFpbnRhaW5lcj0ic2hpem9uaWMgPHJlYWx0aWF6QGdtYWlsLmNvbT4iCiBsaWNlbnNl PSJNSVQiCkBAIC0xNCw3ICsxNiw3IEBAIGNoZWNrc3VtPTk4ZDRkNDhmMGZkMjg3Yzg0YWE0MGNm N2M4MGM2ZGM2ODIyMjBjZWY3ZTk3MjU3YThhNWM5ZGM3NGQwNWZhOTcKIHBhdGNoX2FyZ3M9Ii1O cDEiCiAKICMgRHVlIHRvIGVsZWN0cm9uCi1hcmNocz0ieDg2XzY0IgorYXJjaHM9Ing4Nl82NCoi CiBub3N0cmlwX2ZpbGVzPSJjb2RlLW9zcyIKIAogcHJlX2J1aWxkKCkgewpAQCAtMjYsNiArMjgs OSBAQCBwcmVfYnVpbGQoKSB7CiAJX1RFTEVNRVRSWV9VUkxTPSIoZGNcLnNlcnZpY2VzXC52aXN1 YWxzdHVkaW9cLmNvbSl8KHZvcnRleFwuZGF0YVwubWljcm9zb2Z0XC5jb20pIgogCV9SRVBMQUNF TUVOVD0icy8kX1RFTEVNRVRSWV9VUkxTLzBcLjBcLjBcLjAvZyIKIAlncmVwIC1ybCAtLWV4Y2x1 ZGUtZGlyPS5naXQgLUUgJF9URUxFTUVUUllfVVJMUyB8IHhhcmdzIHNlZCAtaSAtRSAkX1JFUExB Q0VNRU5UCisKKwkjIHNldCB1c2VkIGVsZWN0cm9uIHZlcnNpb24KKwlzZWQgLWkgInMvXnRhcmdl dCAuKi90YXJnZXQgXCIke19lbGVjdHJvbnZlcn1cIi8iIC55YXJucmMKIH0KIAogZG9fYnVpbGQo KSB7CkBAIC0zNSwxOCArNDAsMjggQEAgZG9fYnVpbGQoKSB7CiAJX21lbV9saW1pdD0iLS1tYXhf b2xkX3NwYWNlX3NpemU9NDA5NSIKIAogCWV4cG9ydCBOT0RFX09QVElPTlM9IiR7X21lbV9saW1p dH0iCi0JeWFybiBpbnN0YWxsIC0taWdub3JlLWVuZ2luZXMgLS1hcmNoPXg2NAorCS91c3IvbGli L25vZGVfbW9kdWxlcy9ucG0vYmluL25vZGUtZ3lwLWJpbi9ub2RlLWd5cCBpbnN0YWxsIFwKKwkJ LS10YXJnZXQ9JF9lbGVjdHJvbnZlciBcCisJCS0tdGFyYmFsbD0vdXNyL2luY2x1ZGUvZWxlY3Ry b243L25vZGVfaGVhZGVycy50YXIuZ3oKKwl5YXJuIGluc3RhbGwgLS1pZ25vcmUtZW5naW5lcyAt LWZyb3plbi1sb2NrZmlsZSAtLWFyY2g9eDY0CisJZXhwb3J0IENGTEFHUz0iJENGTEFHUyAtSS91 c3IvaW5jbHVkZS9ub2RlIgogCXlhcm4gcnVuIGd1bHAgdnNjb2RlLWxpbnV4LXg2NC1taW4KIH0K IAogZG9faW5zdGFsbCgpIHsKIAl2bWtkaXIgdXNyL2xpYi9jb2RlLW9zcwotCXZjb3B5IC4uL1ZT Q29kZS1saW51eC14NjQvKiB1c3IvbGliL2NvZGUtb3NzCisJdmNvcHkgLi4vVlNDb2RlLWxpbnV4 LXg2NC9yZXNvdXJjZXMgdXNyL2xpYi9jb2RlLW9zcworCXZjb3B5IC4uL1ZTQ29kZS1saW51eC14 NjQvYmluIHVzci9saWIvY29kZS1vc3MKIAl2bWtkaXIgdXNyL2JpbgogCWxuIC1zZiAvdXNyL2xp Yi9jb2RlLW9zcy9iaW4vY29kZS1vc3MgJHtERVNURElSfS91c3IvYmluLwogCXZta2RpciB1c3Iv c2hhcmUvYXBwbGljYXRpb25zCiAJbG4gLXNmIC91c3IvbGliL2NvZGUtb3NzL3Jlc291cmNlcy9h cHAvcmVzb3VyY2VzL2xpbnV4L2NvZGUuZGVza3RvcCAke0RFU1RESVJ9L3Vzci9zaGFyZS9hcHBs aWNhdGlvbnMvY29kZS1vc3MuZGVza3RvcAogCXZta2RpciB1c3Ivc2hhcmUvcGl4bWFwcwogCWxu IC1zZiAvdXNyL2xpYi9jb2RlLW9zcy9yZXNvdXJjZXMvYXBwL3Jlc291cmNlcy9saW51eC9jb2Rl LnBuZyAke0RFU1RESVJ9L3Vzci9zaGFyZS9waXhtYXBzL2NvZGUtb3NzLnBuZworCWxuIC1zZiAv dXNyL2Jpbi9yZyAke0RFU1RESVJ9L3Vzci9saWIvY29kZS1vc3MvcmVzb3VyY2VzL2FwcC9ub2Rl X21vZHVsZXMuYXNhci51bnBhY2tlZC92c2NvZGUtcmlwZ3JlcC9iaW4vcmcKKwl2c2VkIFwKKwkJ LWUgInN8RUxFQ1RST049Lip8RUxFQ1RST049L3Vzci9saWIvZWxlY3Ryb24ke19lbGVjdHJvbnZl ciUlLip9L2VsZWN0cm9ufGciIFwKKwkJLWUgJ3N8IiRDTEkifCIkQ0xJIiAtLWFwcD0iJHtWU0NP REVfUEFUSH0vcmVzb3VyY2VzL2FwcCJ8ZycgXAorCQktaSAiJERFU1RESVIiL3Vzci9saWIvY29k ZS1vc3MvYmluL2NvZGUtb3NzCiAJdmxpY2Vuc2UgTElDRU5TRS50eHQKIH0KCkZyb20gYTYwZTY5 NzMzODdhM2Y0ZTFhZWRkZDQ0OTc5ZmRjYjI0ZDZhM2VkYSBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogSm9obiA8bWVAam9obm55bmF0b3IuZGV2PgpEYXRlOiBTYXQsIDkgTWF5IDIwMjAg MTg6NDQ6MjIgKzAyMDAKU3ViamVjdDogW1BBVENIIDMvM10gdnNjb2RlOiBvdmVycmlkZSBDTFJf T1BFTlNTTF9WRVJTSU9OX09WRVJSSURFIGZvcgogbGlicmVzc2wKCnJlc29sdmVzICMxMTkyNgoK W2NpIHNraXBdCi0tLQogc3JjcGtncy92c2NvZGUvcGF0Y2hlcy9vcGVuc3NsLXZlcnNpb24tb3Zl cnJpZGUucGF0Y2ggfCA5ICsrKysrKysrKwogMSBmaWxlIGNoYW5nZWQsIDkgaW5zZXJ0aW9ucygr KQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvdnNjb2RlL3BhdGNoZXMvb3BlbnNzbC12ZXJz aW9uLW92ZXJyaWRlLnBhdGNoCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy92c2NvZGUvcGF0Y2hlcy9v cGVuc3NsLXZlcnNpb24tb3ZlcnJpZGUucGF0Y2ggYi9zcmNwa2dzL3ZzY29kZS9wYXRjaGVzL29w ZW5zc2wtdmVyc2lvbi1vdmVycmlkZS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAwMC4uN2YyOWJkMzQ2NzIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3ZzY29k ZS9wYXRjaGVzL29wZW5zc2wtdmVyc2lvbi1vdmVycmlkZS5wYXRjaApAQCAtMCwwICsxLDkgQEAK Ky0tLSByZXNvdXJjZXMvbGludXgvYmluL2NvZGUuc2gJMjAyMC0wNC0xNiAxNzo1OToxMS4wMDAw MDAwMDAgKzAyMDAKKysrKyAtCTIwMjAtMDUtMDkgMTg6NDM6MjkuOTI0ODQxODA4ICswMjAwCitA QCAtNDEsNSArNDEsNSBAQAorIAorIEVMRUNUUk9OPSIkVlNDT0RFX1BBVEgvQEBOQU1FQEAiCisg Q0xJPSIkVlNDT0RFX1BBVEgvcmVzb3VyY2VzL2FwcC9vdXQvY2xpLmpzIgorLUVMRUNUUk9OX1JV Tl9BU19OT0RFPTEgIiRFTEVDVFJPTiIgIiRDTEkiICIkQCIKKytDTFJfT1BFTlNTTF9WRVJTSU9O X09WRVJSSURFPTQ3IEVMRUNUUk9OX1JVTl9BU19OT0RFPTEgIiRFTEVDVFJPTiIgIiRDTEkiICIk QCIKKyBleGl0ICQ/Cg== --===============6122487606057044206==--